JP2004030574A - 動的にキャッシュ・メモリの割り当てを行うプロセッサ集積回路 - Google Patents
動的にキャッシュ・メモリの割り当てを行うプロセッサ集積回路 Download PDFInfo
- Publication number
- JP2004030574A JP2004030574A JP2003058097A JP2003058097A JP2004030574A JP 2004030574 A JP2004030574 A JP 2004030574A JP 2003058097 A JP2003058097 A JP 2003058097A JP 2003058097 A JP2003058097 A JP 2003058097A JP 2004030574 A JP2004030574 A JP 2004030574A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- cache memory
- processor
- controller
- integrated circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
【課題】プロセッサおよびキャッシュを動的分割するプロセッサ集積回路を提供すること。
【解決手段】2以上の命令ストリームを実行するプロセッサ集積回路は、2以上のプロセッサを有する。各プロセッサは、キャッシュコントローラを介して、命令とデータにアクセスする。また、キャッシュメモリの複数ブロックも存在する。キャッシュメモリのいくつかのブロックは、任意に特定のキャッシュコントローラに直接接続される。キャッシュコントローラは、高速相互接続装置を介して、少なくともいくつかのキャッシュメモリの複数ブロックにアクセスする。これらのブロックの少なくとも1つは動的に、2以上のキャッシュコントローラに割り当て可能である。リソース割り当てコントローラは、少なくとも一つの動的割り当て可能キャッシュメモリブロックにアクセス用メモリコントローラを決定する。
【選択図】図1
【解決手段】2以上の命令ストリームを実行するプロセッサ集積回路は、2以上のプロセッサを有する。各プロセッサは、キャッシュコントローラを介して、命令とデータにアクセスする。また、キャッシュメモリの複数ブロックも存在する。キャッシュメモリのいくつかのブロックは、任意に特定のキャッシュコントローラに直接接続される。キャッシュコントローラは、高速相互接続装置を介して、少なくともいくつかのキャッシュメモリの複数ブロックにアクセスする。これらのブロックの少なくとも1つは動的に、2以上のキャッシュコントローラに割り当て可能である。リソース割り当てコントローラは、少なくとも一つの動的割り当て可能キャッシュメモリブロックにアクセス用メモリコントローラを決定する。
【選択図】図1
Description
【0001】
【発明の属する技術分野】
本発明は、マルチプロセッサ回路のような大規模で複雑な集積回路の設計及び実装の分野に関するものである。とりわけ、本発明は、複数CPU集積回路を動的に再分割して、クリティカル・パス・スレッドが、必要とするリソースを入手することができ、それによって、システム性能の最適化が可能になるようにするための装置及び方法に関するものである。
【0002】
【従来の技術】
高性能な最新のプロセッサ集積回路は、プロセッサ集積回路上に少なくともいくつかのキャッシュ・メモリを設けることによって製作される。一般に、キャッシュは、制御論理回路と共に、複数のブロックをなすメモリ・セルとして設計される。これらの回路の中には、製品の差別化並びに部分的に欠陥のある回路の販売を可能にする技法であって、キャッシュの一部をディスエーブルできるようにする、ボンディング・オプションを伴う設計を施されたものもあった。これらの回路の中には、キャッシュの欠陥セクションの代わりに利用することが可能なメモリの予備ブロックも備えている。一般に、キャッシュは、制御論理回路と共に、複数ブロックをなすメモリ・セルとして設計される。
【0003】
多くの最新ソフトウェアは、複数プロセッサ・マシンを利用するように書かれている。このソフトウェアは、一般に、複数スレッドを利用するように書かれている。各スレッドは、個別に実行スケジュールを決めることが可能な一連の命令を備えている。一般に、スレッドには、任意の特定の時間において、他のスレッドのアクションが完了するか、または、外部事象が生じるまで、実行を遅延する「待機」モードにあるものもあれば、すぐにでも実行可能になっているものもあり得る。
【0004】
ソフトウェアは、頻繁にスレッドに優先順位を付けることによって、ある特定の時間において、どのスレッドがほとんどのリソースを与えられるべきかを決定することも可能である。例えば、ウィンドウズ2000(マイクロソフト社の登録商標)、VMS(ヒューレットパッカード社の登録商標)、及び、UNIXオペレーティング・システムは、全て、スレッドの優先順位を維持(アドミニストレータによって設定された基準優先順位から導き出される場合が多い)する。これらのオペレーティング・システムは、これらの優先順位を利用して、どのスレッドを実行すべきかを決定したり、別のスレッドによって取って代わられる前に、各スレッドの実行時間量を決定する。
【0005】
複数プロセッサ・マシンの場合、各プロセッサ毎に、実行準備の整ったスレッドの中から異なるスレッドを実行するタスクを課すことが可能である。これらのスレッドは、同じか、または、異なるアプリケーション・プログラムに属する場合もあれば、システム・タスクに関連している場合もある。こうしたマシンは、単一プロセッサを備えたマシンよりも有用な作業を行うことが可能である場合が多い。
【0006】
マルチスレッド式プロセッサは、2つ以上の命令カウンタを備え、一般に、各命令カウンタに関連したレジスタ・セットを備え、2つ以上の命令ストリームを実行することが可能なプロセッサである。例えば、いくつかの命令ストリーム間において、単一パイプライン式実行装置に時分割を施すことが可能なマシンが知られている。実行装置が時分割されるので、各命令ストリームの実行は幾分遅くなりがちである。時分割される単一実行装置を備えたマルチスレッド・マシンは、ソフトウェアにとって、複数の独立したプロセッサのように見える。
【0007】
単一集積回路上に、それぞれ、数サイクル単位の複数命令をディスパッチすることが可能な複数プロセッサを備える、スーパ・スカラ性能のマシンが知られている。このタイプのマシンには、IBM Power−4及びPA8800が含まれる。一般に、これらの集積回路上の各プロセッサは、それ自体の専用セットをなす実行装置パイプライン及びキャッシュを備えている。これらの実行装置の場合、そのダイ面積、それ故のコストは、一般に、時分割マルチスレッド式マシンをはるかに超えることになる。これらのスーパ・スカラ複数プロセッサ回路は、やはり、複数スレッドを実行することが可能であり、高性能マルチスレッド・マシンの一形態とみなすことが可能である。
【0008】
集積回路をなす最新のプロセッサは、キャッシュ・メモリを備えるように製作される場合が多い。キャッシュ・メモリは、メイン・メモリに比べてかなり速いアクセスを可能にする。しかし、それはキャッシュ内で見つかる情報にのみ速いアクセスを可能にする。キャッシュにおいてメモリ参照が見つかる場合、キャッシュにおける「ヒット」と呼ばれ、一方、キャッシュにおいて参照が見つからない場合、キャッシュ「ミス」と呼ばれる。キャッシュ・ヒット数対全メモリ参照回数の比率は、「ヒット率」であり、キャッシュ・サイズ、キャッシュの連想「方式(ways)」数を含むキャッシュ・アーキテクチャ、及び、実行スレッドの性質の関数であることが分っている。
【0009】
既知のように、キャッシュ・ヒット率は、カウンタを用いて、キャッシュ・ヒットと、メモリ参照をカウントすることによって測定可能である。こうしたカウンタの値を読み取って、ヒット率を計算することができる。やはり既知のように、ヒット率が低いと、システム性能をひどく損なう可能性がある。
【0010】
既知のように、スレッドには、他のスレッドより高いヒット率を実現するのに、キャッシュ・サイズの拡大を必要とするものもある。やはり、既知のように、プロセッサの性能は、キャッシュにおけるヒット率が低いと、時折、深刻な悪影響を受ける可能性がある。従って、プロセッサの性能を最大限に発揮すべき場合には、全てのまたは大部分のスレッドについて、高ヒット率を支えるのに十分なキャッシュを設けることが必要になる。しかし、キャッシュ・サイズが大きくなると、コストが高くなる。従って、メーカは、アプリケーション・プログラム、及び、キャッシュ要件が異なると予想される、それぞれに異なる市場に対してキャッシュ・サイズの異なる同様のプロセッサを備えた集積回路を出している。
【0011】
複数プロセッサ集積回路のキャッシュは、一般に、処理コストによってサイズが制限される。大規模集積回路の製作コストは、一般に、その回路面積の指数関数であり、回路によっては、集積回路面積のほとんど半分が、キャッシュ、及び、キャッシュ・メモリ制御回路要素という場合もある。
【0012】
複数プロセッサ集積回路は、一般に、各プロセッサ毎に所定のキャッシュ量が割り当てられている。従って、これらの回路は、一般に、プロセッサ数に、実行が予測される最もキャッシュ集約的なスレッドにおいて高ヒット率を達成するのに必要とされるキャッシュ量を掛けた値に等しい、全キャッシュ量を必要とする。
【0013】
複数のオペレーティング・システムを同時に実行することが可能な、複数プロセッサ及びマルチスレッドによるマシンが知られている。これらは、分割可能マシンである。一般に、各オペレーティング・システムは、ある区画で実行されるが、この場合、1つの区画には、1つ以上のプロセッサ、メイン・メモリの適合するセクション、及び、他のシステムリソースが割り当てられている。各区画は、一般に、専用ディスクスペースを備えることができるか、または、ディスクスペースを他の区画と共用することが可能な、仮想マシンとして構成される。1つの区画ではウィンドウズNT(マイクロソフト社の商標)を実行し、一方、もう1つの区画ではUNIXを実行することが可能なマシンが存在する。各コピーを独立した区画で個別に実行するようにして、同じオペレーティング・システムのいくつかのコピーを同時に実行することが可能なマシンも存在する。これらのマシンは、各区画を特定のユーザ及びアプリケーション専用とすることが可能であり、また、ある区画で生じる問題(システム・クラッシュを含む)が、他の区画における操作に悪影響を及ぼすとは限らないという点において有利である。
【0014】
既知のように、複数プロセッサ及びマルチスレッドによるマシンにおける実行時間は、各区画に割り当てられたプロセッサ数、メモリ量、及び、ディスクスペース量に基づいて課金することが可能である。やはり既知のように、分割可能マシンにおいて、1つ以上の複数プロセッサまたはマルチスレッドによる集積回路をプロセッサとして利用することも可能である。
【0015】
【発明が解決しようとする課題】
本発明の目的は、分割可能マシンの一部をなす複数プロセッサ集積回路を含む、複数プロセッサ集積回路のプロセッサに動的にキャッシュを割り当てることにより、システムにおいて実行する各スレッドまたは区画毎に適切なキャッシュ量が与えられるようにすることにある。
【0016】
【課題を解決するための手段】
高性能複数プロセッサ集積回路は、複数キャッシュ装置と、複数命令取り出し及び解読装置を備えており、各命令取り出し及び解読装置は、実プロセッサまたは仮想プロセッサに対応している。集積回路は、少なくとも1つの動的に割り当て可能なキャッシュ装置を備えており、特定のプロセッサに直接接続することが可能な追加キャッシュ装置を備えることも可能である。
【0017】
集積回路は、2つ以上の実プロセッサまたは仮想プロセッサによる動的割り当て可能なキャッシュ装置の利用を可能にする高速相互接続装置、及び、キャッシュ割り当てレジスタも備えている。キャッシュ割り当てレジスタのフィールドによって、動的割り当て可能キャッシュ装置に対するアクセスを許される実プロセッサまたは仮想プロセッサが決定される。
【0018】
実施態様の1つでは、動的割り当て可能キャッシュ装置は、システムにおける第2レベルのキャッシュの一部を形成している。この実施態様の場合、4つのプロセッサと、それぞれ、1つのプロセッサに対応する4つのサイズが固定された第1レベルのキャッシュと、4つの割り当てが固定された第2レベルのキャッシュ・ブロックと、4つの動的割り当て可能な第2レベルのキャッシュ・ブロックが設けられている。
【0019】
第2レベルの・キャッシュ・システムは、各プロセッサに関連したヒット率モニタ装置が設けられている。オペレーティング・システム・ドライバは、各プロセッサに関連したヒット率をモニタし、ヒット率を追跡する。モニタされるヒット率は、追加割り当てによって恩恵を受けることができるスレッド区画の判定に役立つ。
【0020】
ある特定の実施態様の場合、動的割り当て可能な第2レベルのキャッシュ・ブロックが、分割可能マシンのある特定の区画のプロセッサに割り当てられる。このマシンにおけるマシン時間は、各区画毎に動的割り当て可能キャッシュがどれだけ割り当てられるかに基づいて課金される。この実施態様の場合、動的割り当てキャッシュは、ブート時、または、区画の再構成時に割り当てられる;区画は、スケジュール並びにブート時間に従って再構成可能である。
【0021】
きめ細かい代替実施態様の場合、各スレッドは、要求されるキャッシュ割り当てに関連している。この実施態様の場合、動的に割り当てられたキャッシュ・ブロックが、コンテキスト・スイッチ時に、その性能が最適化されるように再割り当てされる。この実施態様の場合、オペレーティング・システムは、前に割り当てられたキャッシュ割り当てで得られた、各スレッドに関連したヒット率を追跡し、各スレッド毎に、最適キャッシュ・サイズに基づいて要求されるキャッシュ割り当てを設定する。
【0022】
動的に割り当てられたキャッシュが、1つの区画すなわちスレッドから割り当て解除されて、もう1つの区画に割り当てられる場合、まず、全ての「汚れた(dirty)」キャッシュ・ラインをメモリに書き込み、各キャッシュ・ライン毎に、「有効」ビットをクリアすることによって消去される。こうして、ある区画に関連したデータが別の区画で利用できないことを保証するため、キャッシュが有効に空にされる。
【0023】
【発明の実施の形態】
分割可能複数プロセッサ集積回路98(図1)は、いくつかのプロセッサ100を備えている。各プロセッサは、第1レベル・キャッシュ102を介して、命令データについてメモリ参照を実施する。第1レベル・キャッシュでミスした参照は、第2レベル・キャッシュ・コントローラ110に振り当てられる。
【0024】
各第2レベル・キャッシュ・コントローラ110は、高速相互接続装置120に接続されている。高速相互接続装置120によって、第2レベル・キャッシュ・コントローラ110は、それぞれ、複数のキャッシュ・メモリ・ブロック122及び124の1つ以上にアクセスできるようになる。これらのメモリ・ブロックのうちの少なくとも1つが、任意のキャッシュ・コントローラ110に割り当てることができる、割り当て可能キャッシュ・メモリ・ブロック124である。必要というわけではないが、割り当てが固定された1つ以上のキャッシュ・メモリ・ブロック122を設けることが可能である。割り当てコントローラ130は、もしあれば、動的に割り当てられるキャッシュ・メモリ・ブロック124のうちのどれが、各キャッシュ・コントローラ110によるアクセスを受けるかを決定する。区画制御装置132は、各システム区画に対応付けられるプロセッサを決定する働きをする。区画制御装置132及び割り当てコントローラ130は、従って、各割り当て可能キャッシュ・メモリ・ブロック122及び124が対応付けられる、第2レベル・キャッシュ・コントローラ110、プロセッサ100、及び、システム区画を決定する。
【0025】
第1レベル・キャッシュ102内において見つからず、第2レベル・キャッシュ内でも見つからないキャッシュ参照は、メモリ・インタフェース140を介してオフ・チップ・メイン・メモリ(不図示)に振り向けられる。
【0026】
集積回路196の代替実施態様では、各動的割り当て可能キャッシュ・メモリ・ブロック198(図2)毎に、データ・メモリ200、タグ・メモリ202、及び、相互接続装置206に対するインタフェース204が組み込まれている。各キャッシュ・コントローラ210は、下位レベルのキャッシュでミスしたメモリ参照を受け取るためのインタフェース212を備えている。各キャッシュ・コントローラ210は、キャッシュ書き込みを追跡し、上位レベルのメモリ・インタフェース215を介して、メイン・メモリまたはより高レベルのキャッシュに対するライトバックを制御するためのライトバック待ち行列214を含む、当該技術分野において既知のキャッシュ制御論理回路、並びに、キャッシュ内で捜し出す参照を決定するためのタグ論理回路218及びヒット論理回路216も備えている。各キャッシュ・コントローラには、ヒット率を含むキャッシュ性能を測定するためのヒット率モニタ論理回路219も組み込まれている。キャッシュ・コントローラ210は、局部タグ・メモリ220及びデータ・メモリ222を備えている。タグ・メモリ220及びデータ・メモリ222は、十分に大きいので、小容量キャッシュを要求する命令ストリームについて、高いヒット率をもたらすことが可能である。
【0027】
キャッシュ・コントローラ210は、割り当て制御装置230の制御下において、動的に割り当てられるキャッシュ・メモリ・ブロック198と連絡がとれるようにする、相互接続装置206に接続されている。割り当て制御装置230及び相互接続装置206は、ソフトウェアによって、ゼロまたは1つ以上の動的割り当てキャッシュ・メモリ・ブロック198を各キャッシュ・コントローラ210に接続するように構成されている。どの所定の時間においても、各動的割り当てキャッシュ・メモリ・ブロック198へのアクセスは、ただ1つのキャッシュ・コントローラ210だけしか実施することができない。
【0028】
ある代替実施態様の場合、各キャッシュ・コントローラ110には、4つものキャッシュ・メモリ・ブロック122及び124を制御するのに十分なタグが与えられている。この実施態様の場合、動的割り当てキャッシュ・メモリ・ブロック124には、キャッシュ・データ・メモリが含まれている。
【0029】
1つ以上のマルチプロセッサ集積回路98(図1)を中心として構築されたコンピュータ・システムを管理するための方法300(図3)には、キャッシュの性能をモニタするステップ302が含まれている(図3)。モニタ・ステップでは、図2に示すヒット率モニタ219、及び、集積回路に組み込むことができるような他のキャッシュ性能モニタ装置を利用して、区画、アプリケーション、及び、従来のキャッシュ割り当てに関する過去のキャッシュ性能が記録される。さまざまな条件下におけるこの過去の性能の記録は、1つ以上のマルチプロセッサ集積回路98におけるキャッシュの可用性を考慮して、所望のシステム分割の決定304に利用される。ある特定の実施態様では、過去のプロセッサ間通信量も、各システム区画に配置すべきプロセッサの決定において考慮される。決定された分割は、区画割り当てテーブルをなすように構成される(306)。
【0030】
システムは、各ブート時毎に再分割されるが、再分割がシステム性能全体の向上に適したものであれば、他の時点において、動的に再分割することも可能である。再分割には、影響を受ける各区画において実行されるオペレーティング・システムを停止する(308)ことが必要になる。各集積回路98のプロセッサ100は、区画割り当てテーブルに基づいて、区画に割り当てられる(310)。次に、動的割り当て可能キャッシュ・ブロック124が、各割り当てテーブルに基づいて、各区画のプロセッサ100に割り当てられる(312)。次に、各区画のオペレーティング・システムが、ブート、すなわち、再起動され(314)、マシン時間、システム分割、及び、キャッシュ割り当ての課金レコードが、保持される(316)。これらの課金レコードによって、プロセッサ数、及び、そのアプリケーションに割り当てられたキャッシュ量に基づいて、顧客への請求が可能になる。この発明は、例として次のような実施形態を含む。
【0031】
(1)2つ以上の命令ストリームを実行することが可能なプロセッサ集積回路98であって、
第1のキャッシュ・メモリ・コントローラを110介して命令を取り出し、データにアクセスするように接続された第1のプロセッサ100と、
第2のキャッシュ・メモリ・コントローラを110介して命令を取り出し、データにアクセスするように接続された第2のプロセッサ100と、
それぞれがキャッシュ・データ・メモリを含む、複数のキャッシュ・メモリ・ブロック122、124と、
前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・コントローラ110が、少なくとも1つの割り当て可能なキャッシュ・メモリ・ブロックの利用をイネーブルできるように、前記複数のキャッシュ・メモリ・ブロックを前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・コントローラ110に接続する高速相互接続装置120と、
前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・メモリ・コントローラ110からなる群からアクセス用キャッシュ・メモリ・コントローラ110を選択するように接続したリソース割り当てコントローラ130を含み、前記アクセス用キャッシュ・メモリ・コントローラ110が、前記割り当て可能なキャッシュ・メモリ・ブロック124にアクセスする、
プロセッサ集積回路。
【0032】
(2)さらに、複数の第1レベルのキャッシュ・システム102を含み、前記第1のプロセッサ100が、第1の第1レベル・キャッシュ・システム102を介して、前記第1のキャッシュ・メモリ・コントローラ110から命令を取り出し、データにアクセスし、前記第2のプロセッサ100が、第2の第1レベル・キャッシュ・システム102を介して、前記第2のキャッシュ・メモリ・コントローラ110から命令を取り出し、データにアクセスする、(1)に記載のプロセッサ集積回路。
【0033】
(3)前記キャッシュ・メモリ・ブロック198が、さらに、キャッシュ・タグ・メモリ202を有する、(1)に記載のプロセッサ集積回路。
【0034】
(4)各キャッシュ・メモリ・コントローラ210が、キャッシュ・ヒット率モニタ装置219を有する、(1)に記載のプロセッサ集積回路。
【0035】
(5)分割可能な複数プロセッサ・システムに用いられる複数プロセッサ集積回路98であって、
それぞれ、関連する第1レベルのキャッシュ102から命令を受信するように接続されている、複数のプロセッサ100と、
複数の割り当て可能上位レベル・キャッシュ・メモリ・ブロック124と、
各第1レベルのキャッシュ102におけるキャッシュ・ミスを、割り当てられた上位レベル・キャッシュ・メモリ・ブロック124に伝える相互接続装置120と、
上位レベル・キャッシュ・メモリ・ブロック124をプロセッサ100に割り当てるための割り当て装置130を含む、
複数プロセッサ集積回路98において、キャッシュを動的に割り当てる方法であって、
プロセッサ及び分割に関連した過去のキャッシュ性能をモニタするステップ302と、
分割するのが望ましいプロセッサ100、及び、プロセッサ100に対する上位レベル・キャッシュ・ブロック124の割り当てを決定するステップ304と、
前記システム310を再分割するステップを含み、前記システム310を再分割するステップは、前記複数プロセッサ集積回路98の少なくとも1つにおけるプロセッサ100への上位レベル・キャッシュ・ブロック124の割り当てを含む、
方法。
【0036】
(6)前記上位レベル・キャッシュ・ブロック124が、第2レベルのキャッシュ・ブロックである、(5)に記載の方法。
【0037】
(7)さらに、プロセッサ時間及び割り当てられたキャッシュに基づいて、顧客に請求するステップを含む、(5)に記載の方法。
【0038】
(8)前記複数プロセッサ集積回路98が、さらに、複数の割り当て不能キャッシュ・メモリ・ブロック222を含む、(5)に記載の方法。
【0039】
(9)各上位レベル割り当て可能キャッシュ・ブロック124が、さらに、タグ・メモリ202と、キャッシュ・データ・メモリ200を含む、(5)に記載の方法。
【0040】
(10)前記相互接続装置120が、さらに、複数の上位レベル・キャッシュ・コントローラ110を含み、各上位レベル・キャッシュ・コントローラ110が、ライトバック・キャッシュとして、前記割り当て可能キャッシュ・メモリ・ブロック124の動作を制御可能である、(5)に記載の方法。
【0041】
本発明は、とりわけ、その特定の実施態様に関連して図示され、解説されてきたが、当業者には明らかなように、本発明の精神及び範囲を逸脱することなく、形態及び細部に関して他のさまざまな変更を加えることも可能である。もちろん、本明細書に開示され、付属の請求項に包含されている本発明のより一般的な概念から逸脱することなく、本発明をさまざまな実施態様に適応させる上において、さまざまな変更を加えることが可能である。
【図面の簡単な説明】
【図1】動的割り当て可能キャッシュの複数ブロックを備えた複数プロセッサ集積回路のブロック図である。
【図2】複数プロセッサ集積回路の用いられる動的割り当てキャッシュの複数ブロックを備えたキャッシュ・システムのブロック図である。
【図3】集積回路を利用するシステムにおけるキャッシュ・メモリの割り当て、及び、プロセッサ時間の課金を例示したフローチャートである。
【発明の属する技術分野】
本発明は、マルチプロセッサ回路のような大規模で複雑な集積回路の設計及び実装の分野に関するものである。とりわけ、本発明は、複数CPU集積回路を動的に再分割して、クリティカル・パス・スレッドが、必要とするリソースを入手することができ、それによって、システム性能の最適化が可能になるようにするための装置及び方法に関するものである。
【0002】
【従来の技術】
高性能な最新のプロセッサ集積回路は、プロセッサ集積回路上に少なくともいくつかのキャッシュ・メモリを設けることによって製作される。一般に、キャッシュは、制御論理回路と共に、複数のブロックをなすメモリ・セルとして設計される。これらの回路の中には、製品の差別化並びに部分的に欠陥のある回路の販売を可能にする技法であって、キャッシュの一部をディスエーブルできるようにする、ボンディング・オプションを伴う設計を施されたものもあった。これらの回路の中には、キャッシュの欠陥セクションの代わりに利用することが可能なメモリの予備ブロックも備えている。一般に、キャッシュは、制御論理回路と共に、複数ブロックをなすメモリ・セルとして設計される。
【0003】
多くの最新ソフトウェアは、複数プロセッサ・マシンを利用するように書かれている。このソフトウェアは、一般に、複数スレッドを利用するように書かれている。各スレッドは、個別に実行スケジュールを決めることが可能な一連の命令を備えている。一般に、スレッドには、任意の特定の時間において、他のスレッドのアクションが完了するか、または、外部事象が生じるまで、実行を遅延する「待機」モードにあるものもあれば、すぐにでも実行可能になっているものもあり得る。
【0004】
ソフトウェアは、頻繁にスレッドに優先順位を付けることによって、ある特定の時間において、どのスレッドがほとんどのリソースを与えられるべきかを決定することも可能である。例えば、ウィンドウズ2000(マイクロソフト社の登録商標)、VMS(ヒューレットパッカード社の登録商標)、及び、UNIXオペレーティング・システムは、全て、スレッドの優先順位を維持(アドミニストレータによって設定された基準優先順位から導き出される場合が多い)する。これらのオペレーティング・システムは、これらの優先順位を利用して、どのスレッドを実行すべきかを決定したり、別のスレッドによって取って代わられる前に、各スレッドの実行時間量を決定する。
【0005】
複数プロセッサ・マシンの場合、各プロセッサ毎に、実行準備の整ったスレッドの中から異なるスレッドを実行するタスクを課すことが可能である。これらのスレッドは、同じか、または、異なるアプリケーション・プログラムに属する場合もあれば、システム・タスクに関連している場合もある。こうしたマシンは、単一プロセッサを備えたマシンよりも有用な作業を行うことが可能である場合が多い。
【0006】
マルチスレッド式プロセッサは、2つ以上の命令カウンタを備え、一般に、各命令カウンタに関連したレジスタ・セットを備え、2つ以上の命令ストリームを実行することが可能なプロセッサである。例えば、いくつかの命令ストリーム間において、単一パイプライン式実行装置に時分割を施すことが可能なマシンが知られている。実行装置が時分割されるので、各命令ストリームの実行は幾分遅くなりがちである。時分割される単一実行装置を備えたマルチスレッド・マシンは、ソフトウェアにとって、複数の独立したプロセッサのように見える。
【0007】
単一集積回路上に、それぞれ、数サイクル単位の複数命令をディスパッチすることが可能な複数プロセッサを備える、スーパ・スカラ性能のマシンが知られている。このタイプのマシンには、IBM Power−4及びPA8800が含まれる。一般に、これらの集積回路上の各プロセッサは、それ自体の専用セットをなす実行装置パイプライン及びキャッシュを備えている。これらの実行装置の場合、そのダイ面積、それ故のコストは、一般に、時分割マルチスレッド式マシンをはるかに超えることになる。これらのスーパ・スカラ複数プロセッサ回路は、やはり、複数スレッドを実行することが可能であり、高性能マルチスレッド・マシンの一形態とみなすことが可能である。
【0008】
集積回路をなす最新のプロセッサは、キャッシュ・メモリを備えるように製作される場合が多い。キャッシュ・メモリは、メイン・メモリに比べてかなり速いアクセスを可能にする。しかし、それはキャッシュ内で見つかる情報にのみ速いアクセスを可能にする。キャッシュにおいてメモリ参照が見つかる場合、キャッシュにおける「ヒット」と呼ばれ、一方、キャッシュにおいて参照が見つからない場合、キャッシュ「ミス」と呼ばれる。キャッシュ・ヒット数対全メモリ参照回数の比率は、「ヒット率」であり、キャッシュ・サイズ、キャッシュの連想「方式(ways)」数を含むキャッシュ・アーキテクチャ、及び、実行スレッドの性質の関数であることが分っている。
【0009】
既知のように、キャッシュ・ヒット率は、カウンタを用いて、キャッシュ・ヒットと、メモリ参照をカウントすることによって測定可能である。こうしたカウンタの値を読み取って、ヒット率を計算することができる。やはり既知のように、ヒット率が低いと、システム性能をひどく損なう可能性がある。
【0010】
既知のように、スレッドには、他のスレッドより高いヒット率を実現するのに、キャッシュ・サイズの拡大を必要とするものもある。やはり、既知のように、プロセッサの性能は、キャッシュにおけるヒット率が低いと、時折、深刻な悪影響を受ける可能性がある。従って、プロセッサの性能を最大限に発揮すべき場合には、全てのまたは大部分のスレッドについて、高ヒット率を支えるのに十分なキャッシュを設けることが必要になる。しかし、キャッシュ・サイズが大きくなると、コストが高くなる。従って、メーカは、アプリケーション・プログラム、及び、キャッシュ要件が異なると予想される、それぞれに異なる市場に対してキャッシュ・サイズの異なる同様のプロセッサを備えた集積回路を出している。
【0011】
複数プロセッサ集積回路のキャッシュは、一般に、処理コストによってサイズが制限される。大規模集積回路の製作コストは、一般に、その回路面積の指数関数であり、回路によっては、集積回路面積のほとんど半分が、キャッシュ、及び、キャッシュ・メモリ制御回路要素という場合もある。
【0012】
複数プロセッサ集積回路は、一般に、各プロセッサ毎に所定のキャッシュ量が割り当てられている。従って、これらの回路は、一般に、プロセッサ数に、実行が予測される最もキャッシュ集約的なスレッドにおいて高ヒット率を達成するのに必要とされるキャッシュ量を掛けた値に等しい、全キャッシュ量を必要とする。
【0013】
複数のオペレーティング・システムを同時に実行することが可能な、複数プロセッサ及びマルチスレッドによるマシンが知られている。これらは、分割可能マシンである。一般に、各オペレーティング・システムは、ある区画で実行されるが、この場合、1つの区画には、1つ以上のプロセッサ、メイン・メモリの適合するセクション、及び、他のシステムリソースが割り当てられている。各区画は、一般に、専用ディスクスペースを備えることができるか、または、ディスクスペースを他の区画と共用することが可能な、仮想マシンとして構成される。1つの区画ではウィンドウズNT(マイクロソフト社の商標)を実行し、一方、もう1つの区画ではUNIXを実行することが可能なマシンが存在する。各コピーを独立した区画で個別に実行するようにして、同じオペレーティング・システムのいくつかのコピーを同時に実行することが可能なマシンも存在する。これらのマシンは、各区画を特定のユーザ及びアプリケーション専用とすることが可能であり、また、ある区画で生じる問題(システム・クラッシュを含む)が、他の区画における操作に悪影響を及ぼすとは限らないという点において有利である。
【0014】
既知のように、複数プロセッサ及びマルチスレッドによるマシンにおける実行時間は、各区画に割り当てられたプロセッサ数、メモリ量、及び、ディスクスペース量に基づいて課金することが可能である。やはり既知のように、分割可能マシンにおいて、1つ以上の複数プロセッサまたはマルチスレッドによる集積回路をプロセッサとして利用することも可能である。
【0015】
【発明が解決しようとする課題】
本発明の目的は、分割可能マシンの一部をなす複数プロセッサ集積回路を含む、複数プロセッサ集積回路のプロセッサに動的にキャッシュを割り当てることにより、システムにおいて実行する各スレッドまたは区画毎に適切なキャッシュ量が与えられるようにすることにある。
【0016】
【課題を解決するための手段】
高性能複数プロセッサ集積回路は、複数キャッシュ装置と、複数命令取り出し及び解読装置を備えており、各命令取り出し及び解読装置は、実プロセッサまたは仮想プロセッサに対応している。集積回路は、少なくとも1つの動的に割り当て可能なキャッシュ装置を備えており、特定のプロセッサに直接接続することが可能な追加キャッシュ装置を備えることも可能である。
【0017】
集積回路は、2つ以上の実プロセッサまたは仮想プロセッサによる動的割り当て可能なキャッシュ装置の利用を可能にする高速相互接続装置、及び、キャッシュ割り当てレジスタも備えている。キャッシュ割り当てレジスタのフィールドによって、動的割り当て可能キャッシュ装置に対するアクセスを許される実プロセッサまたは仮想プロセッサが決定される。
【0018】
実施態様の1つでは、動的割り当て可能キャッシュ装置は、システムにおける第2レベルのキャッシュの一部を形成している。この実施態様の場合、4つのプロセッサと、それぞれ、1つのプロセッサに対応する4つのサイズが固定された第1レベルのキャッシュと、4つの割り当てが固定された第2レベルのキャッシュ・ブロックと、4つの動的割り当て可能な第2レベルのキャッシュ・ブロックが設けられている。
【0019】
第2レベルの・キャッシュ・システムは、各プロセッサに関連したヒット率モニタ装置が設けられている。オペレーティング・システム・ドライバは、各プロセッサに関連したヒット率をモニタし、ヒット率を追跡する。モニタされるヒット率は、追加割り当てによって恩恵を受けることができるスレッド区画の判定に役立つ。
【0020】
ある特定の実施態様の場合、動的割り当て可能な第2レベルのキャッシュ・ブロックが、分割可能マシンのある特定の区画のプロセッサに割り当てられる。このマシンにおけるマシン時間は、各区画毎に動的割り当て可能キャッシュがどれだけ割り当てられるかに基づいて課金される。この実施態様の場合、動的割り当てキャッシュは、ブート時、または、区画の再構成時に割り当てられる;区画は、スケジュール並びにブート時間に従って再構成可能である。
【0021】
きめ細かい代替実施態様の場合、各スレッドは、要求されるキャッシュ割り当てに関連している。この実施態様の場合、動的に割り当てられたキャッシュ・ブロックが、コンテキスト・スイッチ時に、その性能が最適化されるように再割り当てされる。この実施態様の場合、オペレーティング・システムは、前に割り当てられたキャッシュ割り当てで得られた、各スレッドに関連したヒット率を追跡し、各スレッド毎に、最適キャッシュ・サイズに基づいて要求されるキャッシュ割り当てを設定する。
【0022】
動的に割り当てられたキャッシュが、1つの区画すなわちスレッドから割り当て解除されて、もう1つの区画に割り当てられる場合、まず、全ての「汚れた(dirty)」キャッシュ・ラインをメモリに書き込み、各キャッシュ・ライン毎に、「有効」ビットをクリアすることによって消去される。こうして、ある区画に関連したデータが別の区画で利用できないことを保証するため、キャッシュが有効に空にされる。
【0023】
【発明の実施の形態】
分割可能複数プロセッサ集積回路98(図1)は、いくつかのプロセッサ100を備えている。各プロセッサは、第1レベル・キャッシュ102を介して、命令データについてメモリ参照を実施する。第1レベル・キャッシュでミスした参照は、第2レベル・キャッシュ・コントローラ110に振り当てられる。
【0024】
各第2レベル・キャッシュ・コントローラ110は、高速相互接続装置120に接続されている。高速相互接続装置120によって、第2レベル・キャッシュ・コントローラ110は、それぞれ、複数のキャッシュ・メモリ・ブロック122及び124の1つ以上にアクセスできるようになる。これらのメモリ・ブロックのうちの少なくとも1つが、任意のキャッシュ・コントローラ110に割り当てることができる、割り当て可能キャッシュ・メモリ・ブロック124である。必要というわけではないが、割り当てが固定された1つ以上のキャッシュ・メモリ・ブロック122を設けることが可能である。割り当てコントローラ130は、もしあれば、動的に割り当てられるキャッシュ・メモリ・ブロック124のうちのどれが、各キャッシュ・コントローラ110によるアクセスを受けるかを決定する。区画制御装置132は、各システム区画に対応付けられるプロセッサを決定する働きをする。区画制御装置132及び割り当てコントローラ130は、従って、各割り当て可能キャッシュ・メモリ・ブロック122及び124が対応付けられる、第2レベル・キャッシュ・コントローラ110、プロセッサ100、及び、システム区画を決定する。
【0025】
第1レベル・キャッシュ102内において見つからず、第2レベル・キャッシュ内でも見つからないキャッシュ参照は、メモリ・インタフェース140を介してオフ・チップ・メイン・メモリ(不図示)に振り向けられる。
【0026】
集積回路196の代替実施態様では、各動的割り当て可能キャッシュ・メモリ・ブロック198(図2)毎に、データ・メモリ200、タグ・メモリ202、及び、相互接続装置206に対するインタフェース204が組み込まれている。各キャッシュ・コントローラ210は、下位レベルのキャッシュでミスしたメモリ参照を受け取るためのインタフェース212を備えている。各キャッシュ・コントローラ210は、キャッシュ書き込みを追跡し、上位レベルのメモリ・インタフェース215を介して、メイン・メモリまたはより高レベルのキャッシュに対するライトバックを制御するためのライトバック待ち行列214を含む、当該技術分野において既知のキャッシュ制御論理回路、並びに、キャッシュ内で捜し出す参照を決定するためのタグ論理回路218及びヒット論理回路216も備えている。各キャッシュ・コントローラには、ヒット率を含むキャッシュ性能を測定するためのヒット率モニタ論理回路219も組み込まれている。キャッシュ・コントローラ210は、局部タグ・メモリ220及びデータ・メモリ222を備えている。タグ・メモリ220及びデータ・メモリ222は、十分に大きいので、小容量キャッシュを要求する命令ストリームについて、高いヒット率をもたらすことが可能である。
【0027】
キャッシュ・コントローラ210は、割り当て制御装置230の制御下において、動的に割り当てられるキャッシュ・メモリ・ブロック198と連絡がとれるようにする、相互接続装置206に接続されている。割り当て制御装置230及び相互接続装置206は、ソフトウェアによって、ゼロまたは1つ以上の動的割り当てキャッシュ・メモリ・ブロック198を各キャッシュ・コントローラ210に接続するように構成されている。どの所定の時間においても、各動的割り当てキャッシュ・メモリ・ブロック198へのアクセスは、ただ1つのキャッシュ・コントローラ210だけしか実施することができない。
【0028】
ある代替実施態様の場合、各キャッシュ・コントローラ110には、4つものキャッシュ・メモリ・ブロック122及び124を制御するのに十分なタグが与えられている。この実施態様の場合、動的割り当てキャッシュ・メモリ・ブロック124には、キャッシュ・データ・メモリが含まれている。
【0029】
1つ以上のマルチプロセッサ集積回路98(図1)を中心として構築されたコンピュータ・システムを管理するための方法300(図3)には、キャッシュの性能をモニタするステップ302が含まれている(図3)。モニタ・ステップでは、図2に示すヒット率モニタ219、及び、集積回路に組み込むことができるような他のキャッシュ性能モニタ装置を利用して、区画、アプリケーション、及び、従来のキャッシュ割り当てに関する過去のキャッシュ性能が記録される。さまざまな条件下におけるこの過去の性能の記録は、1つ以上のマルチプロセッサ集積回路98におけるキャッシュの可用性を考慮して、所望のシステム分割の決定304に利用される。ある特定の実施態様では、過去のプロセッサ間通信量も、各システム区画に配置すべきプロセッサの決定において考慮される。決定された分割は、区画割り当てテーブルをなすように構成される(306)。
【0030】
システムは、各ブート時毎に再分割されるが、再分割がシステム性能全体の向上に適したものであれば、他の時点において、動的に再分割することも可能である。再分割には、影響を受ける各区画において実行されるオペレーティング・システムを停止する(308)ことが必要になる。各集積回路98のプロセッサ100は、区画割り当てテーブルに基づいて、区画に割り当てられる(310)。次に、動的割り当て可能キャッシュ・ブロック124が、各割り当てテーブルに基づいて、各区画のプロセッサ100に割り当てられる(312)。次に、各区画のオペレーティング・システムが、ブート、すなわち、再起動され(314)、マシン時間、システム分割、及び、キャッシュ割り当ての課金レコードが、保持される(316)。これらの課金レコードによって、プロセッサ数、及び、そのアプリケーションに割り当てられたキャッシュ量に基づいて、顧客への請求が可能になる。この発明は、例として次のような実施形態を含む。
【0031】
(1)2つ以上の命令ストリームを実行することが可能なプロセッサ集積回路98であって、
第1のキャッシュ・メモリ・コントローラを110介して命令を取り出し、データにアクセスするように接続された第1のプロセッサ100と、
第2のキャッシュ・メモリ・コントローラを110介して命令を取り出し、データにアクセスするように接続された第2のプロセッサ100と、
それぞれがキャッシュ・データ・メモリを含む、複数のキャッシュ・メモリ・ブロック122、124と、
前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・コントローラ110が、少なくとも1つの割り当て可能なキャッシュ・メモリ・ブロックの利用をイネーブルできるように、前記複数のキャッシュ・メモリ・ブロックを前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・コントローラ110に接続する高速相互接続装置120と、
前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・メモリ・コントローラ110からなる群からアクセス用キャッシュ・メモリ・コントローラ110を選択するように接続したリソース割り当てコントローラ130を含み、前記アクセス用キャッシュ・メモリ・コントローラ110が、前記割り当て可能なキャッシュ・メモリ・ブロック124にアクセスする、
プロセッサ集積回路。
【0032】
(2)さらに、複数の第1レベルのキャッシュ・システム102を含み、前記第1のプロセッサ100が、第1の第1レベル・キャッシュ・システム102を介して、前記第1のキャッシュ・メモリ・コントローラ110から命令を取り出し、データにアクセスし、前記第2のプロセッサ100が、第2の第1レベル・キャッシュ・システム102を介して、前記第2のキャッシュ・メモリ・コントローラ110から命令を取り出し、データにアクセスする、(1)に記載のプロセッサ集積回路。
【0033】
(3)前記キャッシュ・メモリ・ブロック198が、さらに、キャッシュ・タグ・メモリ202を有する、(1)に記載のプロセッサ集積回路。
【0034】
(4)各キャッシュ・メモリ・コントローラ210が、キャッシュ・ヒット率モニタ装置219を有する、(1)に記載のプロセッサ集積回路。
【0035】
(5)分割可能な複数プロセッサ・システムに用いられる複数プロセッサ集積回路98であって、
それぞれ、関連する第1レベルのキャッシュ102から命令を受信するように接続されている、複数のプロセッサ100と、
複数の割り当て可能上位レベル・キャッシュ・メモリ・ブロック124と、
各第1レベルのキャッシュ102におけるキャッシュ・ミスを、割り当てられた上位レベル・キャッシュ・メモリ・ブロック124に伝える相互接続装置120と、
上位レベル・キャッシュ・メモリ・ブロック124をプロセッサ100に割り当てるための割り当て装置130を含む、
複数プロセッサ集積回路98において、キャッシュを動的に割り当てる方法であって、
プロセッサ及び分割に関連した過去のキャッシュ性能をモニタするステップ302と、
分割するのが望ましいプロセッサ100、及び、プロセッサ100に対する上位レベル・キャッシュ・ブロック124の割り当てを決定するステップ304と、
前記システム310を再分割するステップを含み、前記システム310を再分割するステップは、前記複数プロセッサ集積回路98の少なくとも1つにおけるプロセッサ100への上位レベル・キャッシュ・ブロック124の割り当てを含む、
方法。
【0036】
(6)前記上位レベル・キャッシュ・ブロック124が、第2レベルのキャッシュ・ブロックである、(5)に記載の方法。
【0037】
(7)さらに、プロセッサ時間及び割り当てられたキャッシュに基づいて、顧客に請求するステップを含む、(5)に記載の方法。
【0038】
(8)前記複数プロセッサ集積回路98が、さらに、複数の割り当て不能キャッシュ・メモリ・ブロック222を含む、(5)に記載の方法。
【0039】
(9)各上位レベル割り当て可能キャッシュ・ブロック124が、さらに、タグ・メモリ202と、キャッシュ・データ・メモリ200を含む、(5)に記載の方法。
【0040】
(10)前記相互接続装置120が、さらに、複数の上位レベル・キャッシュ・コントローラ110を含み、各上位レベル・キャッシュ・コントローラ110が、ライトバック・キャッシュとして、前記割り当て可能キャッシュ・メモリ・ブロック124の動作を制御可能である、(5)に記載の方法。
【0041】
本発明は、とりわけ、その特定の実施態様に関連して図示され、解説されてきたが、当業者には明らかなように、本発明の精神及び範囲を逸脱することなく、形態及び細部に関して他のさまざまな変更を加えることも可能である。もちろん、本明細書に開示され、付属の請求項に包含されている本発明のより一般的な概念から逸脱することなく、本発明をさまざまな実施態様に適応させる上において、さまざまな変更を加えることが可能である。
【図面の簡単な説明】
【図1】動的割り当て可能キャッシュの複数ブロックを備えた複数プロセッサ集積回路のブロック図である。
【図2】複数プロセッサ集積回路の用いられる動的割り当てキャッシュの複数ブロックを備えたキャッシュ・システムのブロック図である。
【図3】集積回路を利用するシステムにおけるキャッシュ・メモリの割り当て、及び、プロセッサ時間の課金を例示したフローチャートである。
Claims (1)
- 2つ以上の命令ストリームを実行することが可能なプロセッサ集積回路であって、
第1のキャッシュ・メモリ・コントローラを介して命令を取り出し、データにアクセスするように接続された第1のプロセッサと、
第2のキャッシュ・メモリ・コントローラを介して命令を取り出し、データにアクセスするように接続された第2のプロセッサと、
それぞれがキャッシュ・データ・メモリを含む、複数のキャッシュ・メモリ・ブロックと、
前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・メモリ・コントローラが、少なくとも1つの割り当て可能なキャッシュ・メモリ・ブロックの利用をイネーブルできるように、前記複数のキャッシュ・メモリ・ブロックを前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・メモリ・コントローラに接続する高速相互接続装置と、
前記第1のキャッシュ・メモリ・コントローラおよび第2のキャッシュ・メモリ・コントローラからなる群からアクセス用キャッシュ・メモリ・コントローラを選択するように接続したリソース割り当てコントローラを含み、前記アクセス用キャッシュ・メモリ・コントローラが、前記割り当て可能なキャッシュ・メモリ・ブロックにアクセスする、
プロセッサ集積回路。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/092,645 US6871264B2 (en) | 2002-03-06 | 2002-03-06 | System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004030574A true JP2004030574A (ja) | 2004-01-29 |
JP2004030574A5 JP2004030574A5 (ja) | 2006-04-06 |
Family
ID=29548049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003058097A Withdrawn JP2004030574A (ja) | 2002-03-06 | 2003-03-05 | 動的にキャッシュ・メモリの割り当てを行うプロセッサ集積回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6871264B2 (ja) |
JP (1) | JP2004030574A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011523745A (ja) * | 2008-05-30 | 2011-08-18 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 分散型レベル1キャッシュシステム及び集中型レベル2キャッシュを有するシェーダ複合体 |
US9477601B2 (en) | 2014-05-22 | 2016-10-25 | Fujitsu Limited | Apparatus and method for determining a sector division ratio of a shared cache memory |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6859399B1 (en) | 2000-05-17 | 2005-02-22 | Marvell International, Ltd. | Memory architecture and system and multiport interface protocol |
US7565398B2 (en) * | 2002-06-27 | 2009-07-21 | International Business Machines Corporation | Procedure for dynamic reconfiguration of resources of logical partitions |
US7900017B2 (en) * | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US20050076179A1 (en) * | 2003-10-02 | 2005-04-07 | International Business Machines Corporation | Cache optimized logical partitioning a symmetric multi-processor data processing system |
US7434000B1 (en) | 2004-06-30 | 2008-10-07 | Sun Microsystems, Inc. | Handling duplicate cache misses in a multithreaded/multi-core processor |
US7685354B1 (en) | 2004-06-30 | 2010-03-23 | Sun Microsystems, Inc. | Multiple-core processor with flexible mapping of processor cores to cache banks |
US7873776B2 (en) * | 2004-06-30 | 2011-01-18 | Oracle America, Inc. | Multiple-core processor with support for multiple virtual processors |
US7383403B1 (en) | 2004-06-30 | 2008-06-03 | Sun Microsystems, Inc. | Concurrent bypass to instruction buffers in a fine grain multithreaded processor |
US7571188B1 (en) * | 2004-09-23 | 2009-08-04 | Sun Microsystems, Inc. | Cache abstraction for modeling database performance |
US8037250B1 (en) * | 2004-12-09 | 2011-10-11 | Oracle America, Inc. | Arbitrating cache misses in a multithreaded/multi-core processor |
US8766995B2 (en) * | 2006-04-26 | 2014-07-01 | Qualcomm Incorporated | Graphics system with configurable caches |
US20070268289A1 (en) * | 2006-05-16 | 2007-11-22 | Chun Yu | Graphics system with dynamic reposition of depth engine |
US8884972B2 (en) | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
US8869147B2 (en) * | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8644643B2 (en) | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) * | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
US8035650B2 (en) * | 2006-07-25 | 2011-10-11 | Qualcomm Incorporated | Tiled cache for multiple software programs |
US7814301B2 (en) * | 2007-04-11 | 2010-10-12 | Hewlett-Packard Development Company, L.P. | Clock architecture for multi-processor systems |
US20080270653A1 (en) * | 2007-04-26 | 2008-10-30 | Balle Susanne M | Intelligent resource management in multiprocessor computer systems |
US7861038B2 (en) * | 2007-07-17 | 2010-12-28 | International Business Machines Corporation | Method and apparatus for managing data in a hybrid drive system |
CN101196928A (zh) * | 2007-12-29 | 2008-06-11 | 杭州华三通信技术有限公司 | 一种内容搜索方法、系统以及引擎分发单元 |
US8370577B2 (en) | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
US8489864B2 (en) * | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
US8812796B2 (en) | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
US8161247B2 (en) | 2009-06-26 | 2012-04-17 | Microsoft Corporation | Wait loss synchronization |
US8356166B2 (en) * | 2009-06-26 | 2013-01-15 | Microsoft Corporation | Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers |
US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
US8229907B2 (en) * | 2009-06-30 | 2012-07-24 | Microsoft Corporation | Hardware accelerated transactional memory system with open nested transactions |
US9311245B2 (en) | 2009-08-13 | 2016-04-12 | Intel Corporation | Dynamic cache sharing based on power state |
US8533440B2 (en) * | 2009-12-15 | 2013-09-10 | Microsoft Corporation | Accelerating parallel transactions using cache resident transactions |
US8539465B2 (en) | 2009-12-15 | 2013-09-17 | Microsoft Corporation | Accelerating unbounded memory transactions using nested cache resident transactions |
US8402218B2 (en) | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
US9092253B2 (en) * | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
US8364903B2 (en) * | 2009-12-22 | 2013-01-29 | Verizon Patent And Licensing Inc. | Field level concurrency and transaction control for out-of-process object caching |
US20130054896A1 (en) * | 2011-08-25 | 2013-02-28 | STMicroelectronica Inc. | System memory controller having a cache |
US8924644B2 (en) | 2011-12-28 | 2014-12-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Extending cache in a multi-processor computer |
US9223709B1 (en) * | 2012-03-06 | 2015-12-29 | Marvell International Ltd. | Thread-aware cache memory management |
US9824013B2 (en) | 2012-05-08 | 2017-11-21 | Qualcomm Incorporated | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
US9529719B2 (en) | 2012-08-05 | 2016-12-27 | Advanced Micro Devices, Inc. | Dynamic multithreaded cache allocation |
US9223710B2 (en) | 2013-03-16 | 2015-12-29 | Intel Corporation | Read-write partitioning of cache memory |
GB2517453B (en) * | 2013-08-20 | 2017-12-20 | Imagination Tech Ltd | Improved use of memory resources |
KR102161689B1 (ko) * | 2013-12-10 | 2020-10-05 | 삼성전자 주식회사 | L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들 |
US10282299B2 (en) | 2017-06-23 | 2019-05-07 | Cavium, Llc | Managing cache partitions based on cache usage information |
US10678690B2 (en) * | 2017-08-29 | 2020-06-09 | Qualcomm Incorporated | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems |
US11093403B2 (en) | 2018-12-04 | 2021-08-17 | Vmware, Inc. | System and methods of a self-tuning cache sizing system in a cache partitioning system |
US11489940B2 (en) | 2021-01-28 | 2022-11-01 | Arm Limited | Data processing systems |
GB2603211B (en) * | 2021-01-28 | 2023-03-29 | Advanced Risc Mach Ltd | Data Processing systems |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809537A (en) * | 1995-12-08 | 1998-09-15 | International Business Machines Corp. | Method and system for simultaneous processing of snoop and cache operations |
US6381682B2 (en) * | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
JP2000010860A (ja) * | 1998-06-16 | 2000-01-14 | Hitachi Ltd | キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム |
US6460122B1 (en) * | 1999-03-31 | 2002-10-01 | International Business Machine Corporation | System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment |
US6859862B1 (en) * | 2000-04-07 | 2005-02-22 | Nintendo Co., Ltd. | Method and apparatus for software management of on-chip cache |
US6604174B1 (en) * | 2000-11-10 | 2003-08-05 | International Business Machines Corporation | Performance based system and method for dynamic allocation of a unified multiport cache |
-
2002
- 2002-03-06 US US10/092,645 patent/US6871264B2/en not_active Expired - Lifetime
-
2003
- 2003-03-05 JP JP2003058097A patent/JP2004030574A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011523745A (ja) * | 2008-05-30 | 2011-08-18 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 分散型レベル1キャッシュシステム及び集中型レベル2キャッシュを有するシェーダ複合体 |
US9477601B2 (en) | 2014-05-22 | 2016-10-25 | Fujitsu Limited | Apparatus and method for determining a sector division ratio of a shared cache memory |
Also Published As
Publication number | Publication date |
---|---|
US20030172234A1 (en) | 2003-09-11 |
US6871264B2 (en) | 2005-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004030574A (ja) | 動的にキャッシュ・メモリの割り当てを行うプロセッサ集積回路 | |
US8271989B2 (en) | Method and apparatus for virtual processor dispatching to a partition based on shared memory pages | |
JP5058970B2 (ja) | シーケンサー・アドレス管理 | |
Kim et al. | A coordinated approach for practical OS-level cache management in multi-core real-time systems | |
US8756605B2 (en) | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline | |
US8489904B2 (en) | Allocating computing system power levels responsive to service level agreements | |
JP5413001B2 (ja) | キャッシュメモリ | |
US7290261B2 (en) | Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor | |
US8291430B2 (en) | Optimizing system performance using spare cores in a virtualized environment | |
US7996346B2 (en) | Method for autonomic workload distribution on a multicore processor | |
US8386726B2 (en) | SMT/ECO mode based on cache miss rate | |
US7577770B2 (en) | System and method for performance monitoring and reconfiguring computer system with hardware monitor | |
Azimi et al. | Enhancing operating system support for multicore processors by using hardware performance monitoring | |
US20070124568A1 (en) | Digital data processing apparatus having asymmetric hardware multithreading support for different threads | |
JP4949157B2 (ja) | Numaコンピュータシステムにおけるローカリティドメインおよびスレッドアフィニティに基づいてコードを再コンパイルするためのシステムおよび方法 | |
US20090217283A1 (en) | System utilization through dedicated uncapped partitions | |
WO2005001693A2 (en) | Multiprocessor system with dynamic cache coherency regions | |
KR20060108711A (ko) | 액티비티 정보를 이용한 가상 머신 관리 | |
KR20040028805A (ko) | 프로세서로 산출하기 위한 시스템 | |
CN101276293A (zh) | 在逻辑分区之间平衡物理系统资源访问的方法和系统 | |
US20110055831A1 (en) | Program execution with improved power efficiency | |
US9323640B2 (en) | Method and system for measuring the performance of a computer system on a per logical partition basis | |
JP5243822B2 (ja) | 仮想化されたデータ処理環境におけるワークロード管理 | |
He et al. | NUMA-Aware Contention Scheduling on Multicore Systems | |
CN116745748A (zh) | 通用寄存器分级结构系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060221 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060221 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20070313 |