(57)【要約】  一実施例によるシステムが開示される。本システムは、中央処理ユニット（ＣＰＵ）と、ＣＰＵに接続され、ＣＰＵにおいて即時に処理されるバイタルロードについてのデータのみを格納する第１キャッシュメモリと、ＣＰＵに接続され、ＣＰＵにおいて処理されるセミバイタルロードについてのデータを格納する第２キャッシュメモリと、ＣＰＵ並びに第１及び第２キャッシュメモリに接続され、ＣＰＵにおいて処理されるノンバイタルロードを格納する第３キャッシュメモリとを有する。
2007528082.tif 000002
【特許請求の範囲】
【請求項１】
中央処理ユニット（ＣＰＵ）と、
前記ＣＰＵに接続されるキャッシュメモリと、
を有するシステムであって、
各キャッシュメモリは、該キャッシュメモリに係る遅延に適合したバイタリティを有する前記ＣＰＵによって処理されるロードについてのデータのみを格納することを特徴とするシステム。
【請求項２】
請求項１記載のシステムであって、
前記１以上のキャッシュメモリは、
前記ＣＰＵに接続され、前記ＣＰＵにおいて即時に処理されるバイタルロードについてのデータのみを格納する第１キャッシュメモリと、
前記ＣＰＵ及び前記第１キャッシュに接続され、前記ＣＰＵにおいて処理されるノンバイタルロードを格納する第２キャッシュメモリと、
を有することを特徴とするシステム。
【請求項３】
請求項２記載のシステムであって、
前記１以上のキャッシュメモリはさらに、前記ＣＰＵ及び前記第２キャッシュメモリに接続され、前記ＣＰＵにおいて処理されるセミバイタルロードについてのデータを格納する第３キャッシュメモリを有することを特徴とするシステム。
【請求項４】
請求項３記載のシステムであって、
前記ＣＰＵは、前記第１キャッシュメモリと、前記第２キャッシュメモリと、前記第３キャッシュメモリとにパラレルにアクセスすることを特徴とするシステム。
【請求項５】
請求項３記載のシステムであって、
バイタルロードは、前記第１キャッシュメモリに直接割り当てられ、
セミバイタルロードは、前記第３キャッシュメモリに直接割り当てられ、
ノンバイタルロードは、前記第２キャッシュメモリに直接割り当てられる、
ことを特徴とするシステム。
【請求項６】
請求項５記載のシステムであって、
前記ロードの各キャッシュへの割当ては、静的に実行されることを特徴とするシステム。
【請求項７】
請求項６記載のシステムであって、
前記ロードの割当ては、コンパイラにおいて実行されることを特徴とするシステム。
【請求項８】
請求項３記載のシステムであって、
バイタルロードは、前記ＣＰＵにおいて１クロックサイクル内に処理されることを特徴とするシステム。
【請求項９】
請求項８記載のシステムであって、
セミバイタルロードは、前記ＣＰＵにおいて３クロックサイクル内に処理されることを特徴とするシステム。
【請求項１０】
請求項９記載のシステムであって、
ノンバイタルロードは、前記ＣＰＵにおいて少なくとも４クロックサイクルは処理されないことを特徴とするシステム。
【請求項１１】
請求項３記載のシステムであって、
前記第１キャッシュメモリは、２６５Ｂキャッシュであり、
前記第３キャッシュメモリは、１ＫＢキャッシュである、
ことを特徴とするシステム。
【請求項１２】
請求項１１記載のシステムであって、
前記第２キャッシュメモリは、前記第３キャッシュメモリより物理的に大きいことを特徴とするシステム。
【請求項１３】
請求項３記載のシステムであって、
前記第１キャッシュメモリと前記第３キャッシュメモリとは、キャッシュ階層において同一レベルにより動作することを特徴とするシステム。
【請求項１４】
請求項３記載のシステムであって、
バイタルロードは、前記第１及び第２キャッシュメモリを更新することを特徴とするシステム。
【請求項１５】
請求項１４記載のシステムであって、
セミバイタルロードは、前記第３及び第２キャッシュメモリを更新することを特徴とするシステム。
【請求項１６】
請求項１５記載のシステムであって、
ノンバイタルロードは、前記第２キャッシュメモリを更新することを特徴とするシステム。
【請求項１７】
所定のクロックサイクルより大きな従属距離を有するロード命令をフィルタリングすることによって、第１バイタリティレベルを有するロード命令を特定するステップと、
第２バイタリティレベルを有するロード命令を特定するステップと、
前記第１バイタリティレベルを有するロード命令を第１キャッシュメモリに格納されるよう割り当てるステップと、
前記第２バイタリティレベルを有するロード命令を第２キャッシュメモリに割り当てるステップと、
を有することを特徴とする方法。
【請求項１８】
請求項１７記載の方法であって、さらに、
前記第１バイタリティレベルを有するロード命令を特定した後、第３バイタリティレベルを有するロード命令を特定するステップと、
前記第３バイタリティレベルを有するロード命令を第３キャッシュメモリに格納するよう割り当てるステップと、
を有することを特徴とする方法。
【請求項１９】
請求項１８記載の方法であって、さらに、
前記第１キャッシュメモリにおいて頻繁にミスする残りのロード命令と、使用されていないラインとを特定するため、前記第１バイタリティレベルを有するロード命令を特定した後、プロファイルを実行するステップを有することを特徴とする方法。
【請求項２０】
請求項１８記載の方法であって、さらに、
前記第３キャッシュメモリにおいて頻繁にミスする残りのロード命令と、使用されていないラインとを特定するため、前記第３バイタリティレベルを有するロード命令を特定した後、プロファイルを実行するステップを有することを特徴とする方法。
【請求項２１】
中央処理ユニット（ＣＰＵ）と、
前記ＣＰＵに接続され、前記ＣＰＵにおいて即時に処理されるバイタルロードについてのデータのみを格納する第１キャッシュメモリと、
前記ＣＰＵに接続され、前記ＣＰＵにおいて処理されるセミバイタルロードについてのデータを格納する第２キャッシュメモリと、
前記ＣＰＵ、前記第１キャッシュメモリ及び前記第２キャッシュメモリに接続され、前記ＣＰＵにおいて処理されるノンバイタルロードを格納する第３キャッシュメモリと、
前記ＣＰＵに接続されるチップセットと、
前記チップセットに接続されるメインメモリ装置と、
を有することを特徴とするコンピュータシステム。
【請求項２２】
請求項２１記載のシステムであって、
前記ＣＰＵは、前記第１キャッシュメモリと、前記第２キャッシュメモリと、前記第３キャッシュメモリとにパラレルにアクセスすることを特徴とするシステム。
【請求項２３】
請求項２２記載のシステムであって、
バイタルロードは、前記第１キャッシュメモリに直接割り当てられ、
セミバイタルロードは、前記第３キャッシュメモリに直接割り当てられ、
ノンバイタルロードは、前記第２キャッシュメモリに直接割り当てられる、
ことを特徴とするシステム。
【請求項２４】
請求項２３記載のシステムであって、
バイタルロードは、前記ＣＰＵにおいて１クロックサイクル内に処理され、
セミバイタルロードは、前記ＣＰＵにおいて３クロックサイクル内に処理され、
ノンバイタルロードは、前記ＣＰＵにおいて少なくとも４サイクルクロックは処理されない、
ことを特徴とするシステム。
【請求項２５】
請求項２３記載のシステムであって、
前記第１及び第２キャッシュメモリは、キャッシュ階層の同一レベルにおいて動作することを特徴とするシステム。
【請求項２６】
請求項２３記載のシステムであって、
バイタルロードは、前記第１及び第３キャッシュメモリを更新することを特徴とするシステム。
【請求項２７】
請求項２６記載のシステムであって、
セミバイタルロードは、前記第２及び第３キャッシュメモリを更新することを特徴とするシステム。
【請求項２８】
請求項２７記載のシステムであって、
ノンバイタルロードは、前記第３キャッシュメモリを更新することを特徴とするシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の技術分野］
本発明は、集積回路に関し、より詳細には、インタフェーシング集積回路に関する。
【０００２】
［背景］
現在あるほとんどすべてのコンピュータは、キャッシュメモリシステムを実現している。キャッシュメモリは、典型的には、コンピュータマイクロプロセッサがメインメモリにアクセスするよりも高速にアクセス可能なランダムアクセスメモリ（ＲＡＭ）である。マイクロプロセッサがデータを処理するとき、それはまずキャッシュを確認し、当該データをキャッシュに検出すると、マイクロプロセッサは、より大きなメインメモリからデータを読み出すのにより多くの時間を消費する必要がない。
【０００３】
典型的には、コンピュータシステムは、キャッシュＬ１〜Ｌ３を実現する従来のキャッシュ階層を実現する。データを処理する際、マイクロプロセッサはまず、Ｌ１キャッシュにおいて当該データを確認する。Ｌ１キャッシュにデータが検出されない場合、Ｌ２キャッシュが検索される。最終的に、Ｌ２キャッシュにデータが検出されない場合、Ｌ３キャッシュが検索される。
【０００４】
従来のキャッシュ階層による問題点は、各種命令に関するデータが他のものより重要であり、従って、より高速に処理される必要がある（例えば、１遅延サイクルなど）ということである。しかしながら、従来のキャッシュ処理は、そのような重要なデータをキャッシュシステムから迅速に抽出することを考慮していない。例えば、重要データと非重要データ（例えば、４遅延サイクルまで求めるデータなど）の両方が、Ｌ１キャッシュに格納されるかもしれない。非重要データを高速なＬ１キャッシュに格納することは、それがＬ１キャッシュに格納可能な重要なデータの個数を低減させるため非効率となる。従って、より大きく低速なＬ２又はＬ３キャッシュは、Ｌ１キャッシュ内に格納されていない重要データを抽出するため、１遅延サイクル以上検索されなければならない。
【０００５】
［詳細な説明］
キャッシュ機構が説明される。一実施例によると、キャッシュ機構は、セミバイタル（ｓｅｍｉ−ｖｉｔａｌ）及びノンバイタル（ｎｏｎ−ｖｉｔａｌ）ロードについてデータをキャッシュしないバイタルキャッシュレット（ｖｉｔａｌ  ｃｈａｃｈｅｌｅｔ）を含む改良されたキャッシュ階層を特徴とする。これは、バイタルキャッシュレットがより小さなロードセット（バイタルロードなど）によって、より効率的に利用されることを可能にする。同様に、セミバイタルキャッシュレットは、ノンバイタルロードについてデータをキャッシュしない。さらなる実施例では、各ロードは、異なるロードによってパラレルにアクセスされる各種キャッシュレットに直接割り当てられる。さらに、ロード割当てが静的に実行され、ロード／ストアユニットが、キャッシュレットに直接付属することが可能である。
【０００６】
本明細書において、「一実施例」又は「ある実施例」という表現は、当該実施例に関して説明される特定の特徴又は構成が、本発明の少なくとも１つの実施例に含まれることを意味する。本明細書の各所に出現する「一実施例では」というフレーズは、必ずしもすべてが同一の実施例を参照しているとは限らない。
【０００７】
以下の説明では、多数の詳細が与えられる。しかしながら、本発明がこれらの具体的な詳細なしに実現可能であるということは、当業者に明らかであろう。他の例では、周知の構成及び装置は、本発明を不明りょうにすることを回避するため、詳細にではなくブロック図の形式により示される。
【０００８】
図１は、コンピュータシステム１００の一実施例のブロック図である。コンピュータシステム１００は、バス１０５に接続された中央処理ユニット（ＣＰＵ）１０２を有する。一実施例では、ＣＰＵ１０２は、カリフォルニア州サンタクララのインテルコーポレイションから入手可能なＰｅｎｔｉｎｕｍ（登録商標）ＩＩプロセッサ群、Ｐｅｎｔｉｕｍ（登録商標）ＩＩＩプロセッサ及びＰｅｎｔｉｕｍ（登録商標）ＩＶプロセッサを含むＰｅｎｔｉｕｍ（登録商標）プロセッサ群のプロセッサである。あるいは、他のＣＰＵが使用されてもよい。
【０００９】
チップセット１０７がさらに、バス１０５に接続されている。チップセット１０７は、メモリコントロールハブ（ＭＣＨ）１１０を有する。一実施例では、ＭＣＨ１１０は、ハブインタフェースを介し入出力コントロールハブ（ＩＣＨ）１４０に接続される。ＩＣＨ１４０は、コンピュータシステム１００内の入出力（Ｉ／Ｏ）装置とのインタフェースを提供する。例えば、ＩＣＨ１４０は、オレゴン州ポートランドのＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐによって開発された仕様書改訂２．１バスに従うＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスに接続されてもよい。
【００１０】
一実施例では、ＭＣＨ１１０は、メインシステムメモリ１１５に接続されるメモリコントローラ１１２を有する。メインシステムメモリ１１５は、ＣＰＵ１０２又はシステム１００に含まれる他の何れかの装置によって実現可能なデータ信号によって表される命令及びコードのデータ及びシーケンスを格納する。一実施例では、メインシステムメモリ１１５は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を有するが、メインシステムメモリ１１５は、他のメモリタイプを用いて実現されてもよい。
【００１１】
一実施例によると、キャッシュメモリ１５２、１５４及び１５６は、ＣＰＵ１０２に接続される。さらなる実施例では、キャッシュ１５２、１５４及び１５６は、データが従属する命令によって必要とされるとき、ＣＰＵ１０２にロードデータを提供する新規なキャッシュ階層を実現する。従って、ＣＰＵ１０２への遅延したデータ到着の回数が低減され、キャッシュがより効率的に利用され、ＣＰＵパフォーマンスを向上させる。
【００１２】
一実施例では、ロードはバイタリティ（ｖｉｔａｌｉｔｙ）によって分類され、キャッシュレットと呼ばれる小型で高速なキャッシュであるキャッシュ１５２、１５４及び１５６に直接割り当てられる。さらなる実施例では、より良好なトラックロード動作について異なる遅延を有するキャッシュレットが構成される。ロードバイタリティは、ロードとそれの使用との間の距離に基づき規定される（ロード・使用距離など）。
【００１３】
一実施例によると、ロードは、バイタル（即時に使用）、セミバイタル（２〜３サイクルで使用）及びノンバイタル（少なくとも４サイクルでは使用されない）の３つのクラスに分類される。その後、これらのロードは、キャッシュ１５２（バイタルキャッシュレット（シングルサイクル）など）、キャッシュ１５４（セミバイタルキャッシュレット（２サイクル）など）及びキャッシュ１５６（ノンバイタルキャッシュ（４サイクル）など）の適切に時間処理されるキャッシュレットに割り当てられる。３つのキャッシュレットに関して説明されたが、当業者は、他の個数のキャッシュレット（例えば、４、５、６など）が実現可能であるということを理解するであろう。
【００１４】
一実施例では、キャッシュ１５２は、バイタルロードのみについてデータを格納する大変高速であって（例えば、１サイクル遅延など）、大変小型な（２５６Ｂなど）キャッシュである。キャッシュ１５２は、高速（２サイクル遅延など）かつ小型（１ＫＢなど）のキャッシュであるキャッシュ１５４とパラレルに配置される。即時に必要とされるロードデータが、シングルサイクルキャッシュ１５２に割り当てられる。セミバイタルなロードは、キャッシュ１５４に直接割り当てられる。一実施例では、キャッシュ１５２と１５４は共に、キャッシュ階層の同一レベルにおいて動作する。すべてのノンバイタルロードが、４サイクル遅延を有するキャッシュ１５６に割り当てられる。バイタルロードがキャッシュ１５２にない場合、その後、それはキャッシュ１５６にアクセスする。
【００１５】
一実施例によると、データの割当てはロード分類に従って実行される。従って、バイタルロードは、キャッシュ１５２と１５６を更新し、セミバイタルロードは、キャッシュ１５４と１５６を更新する。ノンバイタルロードは、キャッシュ１５６のデータを割り当てる。キャッシュ１５２と１５４との間のコヒーレンスの問題は、両者が同じデータを同時に有する可能性があることから発生する可能性があるということに留意されたい。
【００１６】
これを解消するため、ストアがキャッシュ１５２と１５４の両方と共にキャッシュ１５６に配信される。このようなストア帯域幅は、パフォーマンスを制約するものとはならない。このオンデマンドな割当て及び複製は、キャッシュがより効率的に利用されることを可能にする。従来のキャッシュ階層において明らかな包含原理は、キャッシュ１５２と１５４の間では実施されない。従って、従来のキャッシュ階層と比較するとき、開示されたシステムにはより効果的なキャッシュスペースが存在する。
【００１７】
開示されたキャッシュ機構を実現するため、キャッシュアクセス前にロード分類が実行される。一実施例では、コンパイラが、ロード分類を実行する。しかしながら、他の実施例では、ロード分類は、他のソフトウェア又はハードウェア機構を用いて実行されてもよい。コンパイラは、大部分のロードとそれらの使用との間の距離を知っている。この結果、コンパイラは、バイタリティ分類において効果的なジョブを実行する。
【００１８】
図２は、ロード分類の一実施例のフロー図である。処理ブロック２１０では、バイタルロードが特定される。一実施例では、バイタルロードは、１サイクルより大きな従属距離によりすべてのロードをフィルタリングすることによって特定される。このプロセス中に、ノンバイタルな分類を最大化するためのプレスケジューリング段階とポストスケジューリング段階が存在する。その後、キャッシュ１５２において頻繁にミスする残りのロードと、再使用されていないラインを特定するため、プロファイリングが実行される。
【００１９】
処理ブロック２２０において、セミバイタルロードが特定される。一実施例では、バイタルロード特定及びプロファイリングからの情報が、セミバイタルロードを決定するのに使用される。再び、キャッシュ１５４において頻繁にミスするロードと、再使用されていないラインを特定するため、プロファイリングが実行される。処理ブロック２３０において、ノンバイタルロードが特定される。一実施例では、バイタルロード及びセミバイタル特定からのプロファイル情報が、キャッシュ１５４において頻繁にミスするロードと、再使用されていないキャッシュラインを決定するのに使用される。
【００２０】
図３は、キャッシュメモリ１５２、１５４及び１５６の内部のロード配置の一実施例を示す。図３に示されるように、バイタルロードはキャッシュ１５２に格納され、セミバイタル及びノンバイタルロードはそれぞれキャッシュ１５４と１５６に格納される。
【００２１】
上述のキャッシュ機構は、すべてのロードデータが即時に必要であるとは限らないという事実を利用する再構成され、最適化されるデータキャッシュ階層を特徴とする。従って、ロードのキャッシュ階層への割当ては、従来のトップダウンアプローチによっては実行されない。代わりに、ロードの割当てとそれのデータの配分は、バイタリティクラシファイアによって実行される。ノンバイタルロードは、最も低速なキャッシュに割り当てられ、よりバイタルなロードは、高速かつ小型のキャッシュに割り当てられる。高速かつ小型のキャッシュは、よりバイタルなロードに対するデータのみを配分し、これらのロードに対する高いヒットレートを提供する。
【００２２】
キャッシュ機構は、ロードの各種キャッシュレットへの直接的な割当てを利用し、キャッシュレットが異なるロードによってパラレルにアクセスされるため、より大きな帯域幅をＣＰＵコアに提供する。キャッシュ機構の他の効果は、キャッシュアクセス遅延である。ロード割当ては静的に実行され、ロード／ストアユニットは、キャッシュレットに直接付属させることができる。
【００２３】
本発明の多数の変更及び改良が、上記記載を参照した後に当業者に疑いもなく明らかとなるが、例示的に図示及び記載された実施例は何れも限定的なものとみなされることを意図するものではないということが理解されるべきである。従って、各種実施例の詳細への参照は、本発明としてみなされる特徴のみを記載する請求項の範囲を限定することを意図するものではない。
【図面の簡単な説明】
【００２４】
【図１】図１は、コンピュータシステムの一実施例を示す。
【図２】図２は、ロード分類の一実施例のフロー図である。
【図３】図３は、キャッシュメモリ内部のロード配置の一実施例を示す。
【図１】
2007528082.tif 000003
【図２】
2007528082.tif 000004
【図３】
2007528082.tif 000005
【国際調査報告】
2007528082.tif 000006
2007528082.tif 000007