JP2002032265A - キャッシュ・アクセス制御方式およびデータ処理システム - Google Patents
キャッシュ・アクセス制御方式およびデータ処理システムInfo
- Publication number
- JP2002032265A JP2002032265A JP2000213803A JP2000213803A JP2002032265A JP 2002032265 A JP2002032265 A JP 2002032265A JP 2000213803 A JP2000213803 A JP 2000213803A JP 2000213803 A JP2000213803 A JP 2000213803A JP 2002032265 A JP2002032265 A JP 2002032265A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- control unit
- attribute
- information
- state
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
Abstract
供し、それにより、常に最適なキャッシュ一致制御を行
うことにある。 【解決手段】 処理装置IP0〜IPnには、L1 data(データ
アレイ)とdir(ディレクトリ)からなるL1キャッシュが設
けられ、各L1キャッシュには複数のL2キャッシュが接続
され、L2キャッシュは主メモリL3に接続される。SCHC(L
2キャッシュ参照履歴制御部)はL2キャッシュからL2キャ
ッシュ状態情報360とL2キャッシュアクセス要求370を入
力し、L2の各ラインごとに、その属性(専用領域か共用
領域)を判断する。SCCC(一致制御部)はこの属性に基づ
き各L2キャッシュの一致制御を無効型プロトコルまたは
更新型プロトコルで行う。上記属性を共用領域と判断す
るのは、過去に複数のL2キャッシュで共用されていたラ
インが、一旦、無効型プロトコルによりキャンセルされ
た後、再びアクセスされた場合に限る。
Description
におけるキャッシュメモリの高速参照方法とこれを用い
たデータ処理システムに係わり、とくに、複数の処理装
置がメモリシステムを共有するシステムに好適なキャッ
シュメモリ参照制御方式およびデータ処理システムに関
する。
数備えるデータ処理装置においては、各処理装置間でキ
ャッシュメモリの内容が矛盾を起こさないよう、キャッ
シュ一致制御を行う必要がある。従来より良く知られて
いるようにキャッシュ一致制御の方法は、ストアスルー
(ライトスルーとも言う)プロトコルとストアイン(ラ
イトバック・コピーバック等とも言う)プロトコルの2
つに大別される。ストアスルー・プロトコルとは、処理
装置においてキャッシュメモリに書き込みが行われた場
合、下位階層メモリ(主記憶など)も更新する方法であ
る。ストアイン・プロトコルとは、処理装置においてキ
ャッシュメモリに書き込みが行われた場合でも、他の処
理装置からアクセス要求が発生するまで下位階層メモリ
の更新をおこなわないように制御する。ストアスルーの
ほうが、制御が簡単で実現が容易であるが、下位階層メ
モリへのアクセス頻度が増加するために、処理装置の台
数が増えてくると、競合による性能低下が問題となる。
逆に、ストアインのほうが、制御は複雑になるが、下位
階層メモリへの書き込みアクセス頻度を減らすことがで
きるので、ストアパス・スループットが同じであれば、
ストアスルーより性能が高くなる。ストアインの制御の
複雑さは、キャッシュに書き込み時の一致制御に起因す
るので、一致制御が不要な場合、ストアイン制御は、ス
トアスルー制御と同等の複雑さになる。
共有しキャッシュ一致制御が必要な共用領域と、単独の
処理装置で専有しキャッシュ一致制御が不要な専用領域
とに分割し、共用領域に関してはストアスルー・プロト
コルを、専用領域に関してはストアイン・プロトコルを
使用する方式が考案されている。例えば、特開平1−2
6643号公報では、アクセスされるメモリ領域によっ
て、全プロセッサから共通にアクセスされる共通領域と
各プロセッサで個別にアクセスする個別領域とに分割
し、共通領域に関してはライトスルー(ストアスルー)
方式を、個別領域に関してはライトバック(ストアイ
ン)方式を用いるキャッシュ一致制御方式が開示されて
いる。この種の装置として関連するものには、例えば、
他に特開平2−50237号、特開平2−226449
号、特開平3−40046号、特開平4−123151
号、特開平4−296950号、特開平5−73416
号、特開平7−28670号が挙げられる。
トアイン・プロトコルとストアスルー・プロトコルの区
分とは別に、無効型プロトコルと更新型プロトコルの2
つに分類することもできる。無効型プロトコルとは、あ
るキャッシュメモリに書き込みが行われた際、変更の加
えられたのと同じデータのコピーが他のキャッシュメモ
リにもあった場合、コピーデータを無効化することによ
って矛盾を解消する方法をいう。更新型プロトコルと
は、上記キャッシュ一致制御が必要になった際に、変更
されたデータでコピーを更新することにより矛盾を解消
するように制御をおこなう。無効型プロトコルのほうが
制御が簡単で実現が容易である。性能は、メモリ・アク
セス・パターンなどに依存し、一概にどちらが有利だと
は言えないが、各処理装置のキャッシュ・メモリの内容
を同じ状態にするには、更新型プロトコルの方が、下位
階層メモリを経由しない分、高速に行える。一般的に
は、無効型プロトコルが採用されることが多いが、両プ
ロトコルの混在するシステムも考案されている。たとえ
ば、特開平8−95862号公報ではメモリ空間を、高
信頼化領域と通常領域とに分割し、高信頼化領域に関し
ては、更新型プロトコルを、通常領域に関しては無効型
プロトコルを用いて制御を行う方式が開示されている。
プロトコルの切り替えを行う従来技術において、その切
り替えの基準となる共用領域と専用領域の特定は、メモ
リアドレス範囲、もしくは、処理装置の区別に基づいて
おり、2つの領域への分割は固定的であった。また、無
効型プロトコルと更新型プロトコルの切り替えを行う従
来技術においても、その切り替えは、アドレス範囲を元
にした固定的な領域区分に基づいていた。
よるキャッシュ一致制御プロトコルの切替では、プログ
ラムを実行するまで領域区分を決定できない場合、十分
な機能を発揮できない。例えば、あるデータが専用領域
であるか、共用領域であるかを、プログラムの実行前の
静的解析だけでは判別できない時は、実際には専用に使
用し、ストアイン・プロトコルで処理すべきであって
も、共用データとして、ストアスルー・プロトコルで扱
わざるを得ず、そのための性能低下を生じる。また、専
用領域と共用領域が明確に区分されていない既存のプロ
グラムに対して、その分割を静的に行う事は、事実上困
難である。従来技術では、キャッシュ一致制御の切替の
基準となる領域分割が固定的に行われていたため、プロ
グラムの動的な振る舞いや、上記領域分割を考慮してい
ない既存プログラムへの対応が十分行えないという問題
を持っていた。
の実現の容易さから無効型プロトコルが広く用いられて
いたが、共用領域に対して無効型プロトコルを適用した
場合、相互無効化による性能低下が顕著にあらわれると
いう問題があった。これは、複数の処理装置が、それぞ
れ、共用領域への書き込みを行う事によって、相互にデ
ータの無効化が行われ、頻繁に下位階層メモリへのアク
セスが起きる事で性能低下が生じる現象である。従来技
術では、頻繁に同じ領域に対してアクセスが繰り返され
るという共用領域の参照形態を考慮せず、共用・専用領
域とも無効型プロトコルを用いていたために、共有領域
での相互無効化による性能低下を起こすという問題があ
った。本発明の目的は、専用・共用領域の特定を動的に
行う方法を提供し、それにより、常に最適なキャッシュ
一致制御を行うことで、従来技術での固定的領域分割に
起因する問題を解決することである。さらに本発明の別
の目的は、共用領域に最適な制御方式を用いる事で、従
来技術での相互無効化に関する問題を解消することにあ
る。
め、本発明では、複数のキャッシュメモリを備えるデー
タ処理システム、例えば、複数の処理装置を備え、各処
理装置がキャッシュメモリを有するようなデータ処理シ
ステムに、各キャッシュに接続されるキャッシュ参照履
歴制御部と、各キャッシュの一致制御をする一致制御部
を設ける。各キャッシュにはキャッシュデータアレイと
キャッシュディレクトリがあり、キャッシュディレクト
リにはライン(あるいはブロックなど)状態情報が格納
される。キャッシュアクセス要求のあったキャッシュか
らキャッシュアクセス要求とキャッシュ状態情報がキャ
ッシュ参照履歴制御部に出力されると、キャッシュ参照
履歴制御部は、キャッシュからの入力によりアクセスさ
れたラインの新たなキャッシュ状態情報を生成し、キャ
ッシュに戻し、生成したキャッシュ状態情報によりライ
ンの属性(専用領域か共用領域か)判定をし、判定結果
の属性を一致制御部に渡す。上記属性を共用領域と判定
するのは、過去に複数のL2キャッシュで共用されていた
ラインが、一旦、無効型プロトコルによりキャンセルさ
れた後、再びアクセスされた場合であり、それ以外は専
用領域と判定する。一致制御部は、属性が共用領域の場
合には、更新型プロトコルあるいはストアスルー・プロ
トコルを用い、属性が専用領域の場合には、無効型プロ
トコルあるいはストアイン・プロトコルを用いるように
している。
る動的領域分割に基づくキャッシュ一致制御法およびそ
れを用いたマルチプロセッサ・システムについて詳細に
説明する。図1に、本発明の一実施例であるマルチプロ
セッサ・システムのメモリ構成図を示す。L1〜L3の
3階層構造となっており、L1メモリ装置20とL2メ
モリ装置30は、複数個設けられている。L1メモリ装
置20は、複数個ある処理装置(IP0〜IPn)10に、そ
れぞれ設けられており、L1キャッシュ・データアレイ
220とL1キャッシュ・ディレクトリ230とから構
成されている。同様に、L2メモリ装置(SC0、SC1)3
0にも、L2キャッシュ・データアレイ320とL2キ
ャッシュ・ディレクトリ(dir)330が存在する。
また、L3メモリ装置40は、L3データアレイ420
とその制御部430とからなる。キャッシュ・データア
レイには、下位階層メモリから読み込んだデータが蓄え
られている。キャッシュ・ディレクトリは、データアレ
イ内の位置とメモリアドレスとの関係を記憶している。
キャッシュは、あらかじめ定められた大きさの連続アド
レス領域を、データ管理単位としている。キャッシュ・
ディレクトリには、データ管理単位ごとの情報が登録さ
れる。便宜上、L1キャッシュでのデータ管理単位を、
ブロック(Block)、L2キャッシュでのデータ管
理単位を、ライン(Line)と呼ぶことにする。
C)310は、L2メモリ装置の状態を監視しており、
L3からのライン読み込み(フェッチ、Fetch)、
L1からのライン書き込み(ストア、Store)、L
3へのライン書き戻し(ライトバック、Write B
ack)、ライン登録抹消(パージ、Purge)の要
求を、L2キャッシュ・アクセス要求370によって知
る。また、L2キャッシュの各ラインが、どのL2メモ
リ装置に登録されているかなどのライン状態情報を、L
2キャッシュ状態情報360を通して知ることができ
る。これら、L2メモリ装置の内部状態に影響を及ぼす
情報を監視することにより、L2キャッシュ参照履歴制
御部(SCHC)310は、L2の各ラインごとに、そ
の属性(専用領域か共用領域か)を判断する。その結果
は、L2キャッシュ・属性情報380として、L2キャ
ッシュ一致制御部(SCCC)300に伝えられ、そこ
で、属性380に基づいて、最適なL2キャッシュ一致
制御法が行われる。具体的には、共用領域に属するライ
ンに対してL1キャッシュからストア要求があった場
合、380の属性情報をもとに、該当ラインを使用して
いる他のL2メモリ装置に対して更新型プロトコルの適
用を行うが、専用領域に属するラインに対しては、無効
型プロトコルによる一致制御を行う。このように、ライ
ンの属性に応じて、L2キャッシュ一致制御を切り替え
ることで、専用領域へのストア要求に対してもL2メモ
リ装置間での相互無効化による性能低下を抑止すること
ができる。
ッシュ・ディレクトリ330内に格納される。以下、キ
ャッシュ・ディレクトリ330の実現方法について説明
する。図3は、その一例であって、通常のキャッシュ・
ディレクトリと同等の構成になっている。アクセス要求
のあったラインは、ラインアドレス510により、ディ
レクトリ500内を検索される。テーブルを効率良く使
用するために、その構造をセットアソシアティブとして
いる。すなわち、ラインアドレスの上位ビット(コラム
アドレス)が同じラインに対して、複数の領域(ロウ5
35)を共有する。どのロウを使用するかは、LRU等
の通常のリプレースメント・アルゴリズムで決定する。
より詳細には、ラインアドレス上位ビットのコラムアド
レス520をもとに、コラムアドレスセレクタ521に
よって、テーブル内コラムが選択され、また、リプレー
スメント・アルゴリズムで決まるロウアドレス530を
もとに、ロウアドレスセレクタ531によって、テーブ
ル内ロウが選択される。コラムアドレスとロウアドレス
とによって指定されるディレクトリ(参照履歴ディレク
トリ)内の一領域(エントリ560)には、各ラインの
情報が符号化されて入っている。
トリ内には、ラインアドレス(LADDR)とそのライ
ンを使用しているL2メモリ装置の識別番号(SCI
D)とそのラインの参照履歴情報(LSTAT)などが
格納されている。ここで、SCIDは、L2メモリ装置
ごとに1ビットの情報を蓄えており、そのL2装置が当
該ラインを使用しているか否かを記憶している。LST
ATは、そのラインの参照履歴情報を符号化したもので
あり、後に詳細に説明される。
読み出す場合は、コラムアドレスで指定された一コラム
全体が同時に読み出される。読み出された各エントリに
は、図4で説明したように、ラインアドレス511が格
納されており、これを実際のラインアドレス510と比
較器570で比較することにより、当該ラインに対応す
るエントリを知ることができる。比較の結果、対応する
エントリが見つかれば(HIT)、そのHITしたロウ
アドレス540とライン状態(SCIDとLSTAT)
551を、出力する。
320の構造は、1対1に対応している。すなわち、デー
タアレイ320にアクセスを行う場合、HITしたディ
レクトリ・エントリのコラムアドレスとロウアドレス5
40とを用いることで、所望のラインデータにアクセス
することができる。一方、HITしたライン状態551
は、当該ラインに対するアクセス要求とともに、36
0、370を通して参照履歴制御部310に伝えられ
て、ラインの属性判定(専用領域か共用領域か)に用い
られるとともに、次のライン状態を決定する。新たな状
態遷移が起こった場合は、その結果が、再び360を通
して当該ディレクトリ・エントリにも反映される。
を、図5〜図7を用いて説明する。上記説明したよう
に、参照履歴制御部は、現在のライン状態と当該ライン
に対するアクセス要求を知っている。それを、もとに、
次のライン状態を状態遷移図をもとに決定する。図5
は、従来の無効型プロトコルでキャッシュ一致制御を行
う場合の状態遷移図を示している。なお、ここでは、説
明を簡単にするために、ストアは、フェッチ後に行われ
るものとするが、そうでない場合でも同様の状態遷移図
を作ることができる。当該ラインが未使用(キャッシュ
に無い)の場合、ラインはI(Invalid)状態700に
ある。ここで、フェッチ(F)要求により、キャッシュに
登録されると、EC(Exclusive Clean)(専有未変
更)状態710に遷移する。ここで、同じL2メモリ装
置によりフェッチされている限り、EC状態にとどまる
が、他のL2メモリ装置からフェッチ要求があると、S
C(Shared Clean)(共有未変更)状態720に遷移す
る。また、EC状態710で、同じL2メモリ装置にL
1メモリからストア(S)要求があると、EM(Exclusive
Modified)(専有変更)状態730に遷移する。さら
に、EC状態で、当該ラインがパージ(P)されるとI状
態にもどる。SC状態720で、フェッチされている限
りは、SC状態にとどまるが、いずれかのL1装置が当
該ラインにストア要求を出した場合、要求先L2メモリ
装置以外のキャッシュの当該ラインが無効化されるの
で、ライン状態としては、EM(専有変更状態)730
に遷移する。EM状態では、同じL2装置にアクセスす
る限り、EM状態にとどまるが、他のL2装置にアクセ
ス要求があれば、当該ラインをライトバック(WB)し、ラ
イン状態を一旦I状態に戻す。
キャッシュ一致制御を行う場合の状態遷移図を示す。図
5と違うのは、SM(Shared Modified)(共有変更)
状態741ができた点で、状態741への遷移が付加さ
れている。すなわち、SC(共有未変更)状態でL1メ
モリからストア要求があった場合、ライン状態は、SM
状態741に遷移する。更新型プロトコルにおいては、
SM状態でのストア要求によって、当該ラインを使用し
ている全てのL2メモリ装置の内容が更新されるので、
SM状態でのフェッチ・ストア要求で、ライン状態はS
M状態にとどまる。パージ要求により当該ラインを使用
しているL2メモリ装置が1つになった場合、ライン状
態はEM状態731に遷移する。また、EM状態で、別
のL2メモリ装置からフェッチがあった場合、SM状態
に遷移する。
を検出して、複数の装置間でのキャッシュ一致制御が必
要となる「共用領域」と、それ以外の「専用領域」とを
判別するという案が考えられる。すなわち、図6におい
て、SM状態に遷移するまでは、仮にラインに変更が加
えられたとしても、それは一つのメモリ装置内での変更
に限られ、キャッシュ一致制御に関しては、ストアイン
・プロトコル、もしくは、無効型プロトコルで効率良く
制御できる。また、SM状態は、複数のメモリ装置間で
のキャッシュ一致制御が必要となるため、ストアスルー
・プロトコル、もしくは、更新型プロトコルが適してい
る。しかし、上記の方法は、多くの場合十分でない。な
ぜなら、SM状態をもって、ただちに、更新型キャッシ
ュ一致制御の必要となる「共用領域」と判定することは
できないからである。それは、OSがシステム性能向上
のために、ユーザ・プロセスの実行される処理装置を、
頻繁に切り替えること(コンテクスト・スイッチ)があ
るためで、このような場合、複数のメモリ装置に同じラ
インが登録される可能性があるが、それらを再利用する
可能性は、通常低い。
用いることによって、回避することができる。それを、
図7を用いて説明する。図7は、本発明の動的キャッシ
ュ一致制御変更プロトコルにおいて用いられる状態遷移
図と動的領域区分の判定方法を示している。図5との相
違は、SC(共有未変更)状態からの遷移で、SC状態
722でストア要求があった場合、無効型プロトコルに
準じた処理をおこない、要求元以外のL2メモリ装置の
当該ラインを無効化するが、EM状態ではなく、CEM
(Cancelled Exclusive Modified)状態(キャンセルさ
れたEM状態)752に遷移させる。CEM状態は、更
新型プロトコルでのEM状態として機能し、ここで別の
L2メモリ装置からフェッチ要求があれば、SM状態7
42に遷移する。つまり、CEM状態を介して、図5の
無効型状態遷移と図6の更新型状態遷移を結合させた形
になっている。これにより、過去に共有されていた(S
C状態)ラインが、一旦、無効型プロトコルによりキャ
ンセルされた後、再びアクセスされた場合に限り、SM
状態742に移ることになる。これにより、当該ライン
が「共用領域」である可能性が高くなり、上記OSによ
るコンテクスト・スイッチの問題を回避できる。したが
って、状態742のラインを「共用領域」と判別し、当
該ラインに対して、更新型プロトコル、もしくは、スト
アスルー・プロトコルを適用するのが妥当である。以上
説明したように、参照履歴制御部では、現在のライン状
態とアクセス要求をもとに、「専用領域」と「共用領
域」の判別(ライン属性)と次のライン状態とを決定す
る。
で求められたライン属性に基づいて、ラインの一致制御
を行う。キャッシュ一致制御では、公知の技術で実現さ
れた、複数のキャッシュ一致制御プロトコルの切替が行
われる。基本的には、無効型プロトコルもしくはストア
イン・プロトコルから始めて、「共用領域」と判定され
てから、更新型プロトコルもしくはストアスルー・プロ
トコルに切り替えればよい。このように、参照履歴情報
を解析することにより、より詳細に領域属性を判定する
ことが可能となる。例えば、この判定をソフトウェアで
制御することによって、アプリケーションに依存したキ
ャッシュ一致制御方式の最適化も可能になる。
チ・プロセッサシステムのメモリ構成図を示す。第1の
実施例と同様、L1〜L3メモリ装置の3階層構造とな
っている。L1メモリ装置21は、L1キャッシュ・デ
ータアレイ(L2 data)221とL1キャッシュ
・ディレクトリ(dir)231とから構成されてお
り、複数個ある処理装置(IP0〜IPn)11内それぞれ
に、設けられている。L2メモリ装置31にも、L2キ
ャッシュ・データアレイ321とL2キャッシュ・ディ
レクトリ331が存在する。L3メモリ装置41は、L
3データアレイ421とその制御部431とからなる。
L1キャッシュ参照履歴制御部211は、L1メモリ装
置の状態を監視しており、L2からのブロック読み込み
(フェッチ)、処理装置からのブロック書き込み(スト
ア)、L2へのブロック書き戻し(ライトバック)、ブ
ロック登録抹消(パージ)の要求を、L1キャッシュ・
アクセス要求271によって知る。また、L1キャッシ
ュの各ブロックが、どのL1メモリ装置に登録されてい
るかなどのブロック状態情報を、L1キャッシュ状態情
報261を通して知ることができる。
を及ぼす情報を監視することにより、L1キャッシュ参
照履歴制御部211は、ブロックごとに、その属性(専
用領域か共用領域か)を判断する。その結果は、L1キ
ャッシュ・属性情報281として、L1キャッシュ一致
制御部201に伝えられ、そこで、属性281に基づい
て、最適なL1キャッシュ一致制御法が行われる。具体
的には、共用領域に属するブロックに対してストア要求
があった場合、該当ブロックを使用している他のL1メ
モリ装置に対して更新型プロトコルの適用を行うが、専
用領域に属するブロックに対しては、無効型プロトコル
による一致制御を行う。このように、ブロックの属性に
応じて、L1キャッシュ一致制御を切り替えることで、
専用領域へのストア要求に対してもL1メモリ装置間で
の相互無効化による性能低下を抑止することができる。
1キャッシュ・ディレクトリ231、L1キャッシュ参
照履歴制御部211、L1キャッシュ一致制御部201
は、第1の実施例におけるL2キャッシュ対応回路と同
様の構成で実現することができる。ただし、L1キャッ
シュ参照履歴制御部211に入力されるL1キャッシュ
状態情報261は、参照装置識別番号(IPID、図4
のSCIDに対応)とブロック状態(BSTAT、図4
のLSTATに対応)とからなるブロック状態情報を含
むことになる。
ャッシュを内包するという制約を設けることにより、参
照履歴制御部211をL2メモリ装置31内に取りこむ
ことができる点である。その場合、L2キャッシュのデ
ィレクトリ・エントリ内に、上記ブロック状態情報を格
納すれば良い。これは、L1に登録されている全てのブ
ロックが、L2にも登録されていることにより可能とな
る。L2ディレクトリ1箇所で、L1ブロックの状態を
知り得ることにより、図2における261の通信オーバ
ヘッドを削減することができる。なお、L2ディレクト
リの管理単位であるラインの大きさは、L1ディレクト
リの管理単位であるブロックの大きさより、通常の場合
大きいが、その場合でもL2ディレクトリ・エントリ内
にブロックに対応させたサブエントリを設けることで、
上記ブロック状態情報のL2ディレクトリ・エントリへ
の格納は可能である。
チプロセッサ・システムのメモリ構成図を示す。L1メ
モリ装置22には、複数の処理装置12a、12bが接
続している。各処理装置は、個別に上位のキャッシュメ
モリ(L0メモリ装置)を持っている場合もあり、複数
の処理装置と、それらで共有されているL1メモリ装置
とを、1チップに集積する場合もありえる。複数のL1
メモリ装置22が、L2メモリ装置32に接続してお
り、32は、L3メモリ装置42に接続している。32
は、L2キャッシュ制御部352とL2データアレイ3
22とからなっている。ここで、L2キャッシュ制御部
352は、L2ディレクトリとL1参照履歴制御部21
2を含む。また、L2データアレイ322は、スループ
ット向上のため、複数個設けられており、アドレスイン
ターリーブして使用される。それに対応して、L3メモ
リ装置42内でも複数個のL3メモリ制御装置432が
設けられている。
の第2実施例において説明したように、L2ディレクト
リ内にブロック状態情報を格納することで、効率的にブ
ロック属性を決定する。ブロック属性は、L1メモリ装
置内に分散して配置されたL1キャッシュ一致制御部2
02に通知される。望ましくは、通知された属性は、各
L1メモリ装置のディレクトリ内の該当ブロック・エン
トリに格納される。各メモリ装置では、ブロック属性
(「専用領域」か「共用領域」)の判定にしたがって、
当該ブロックの一致制御を行う。とくに、更新型プロト
コルを適用する場合、分散配置されたキャッシュ一致制
御部202は、L2キャッシュ制御部352を仲介にし
て、別のL1キャッシュの更新を行う。無効型プロトコ
ルの場合は、352から直接、当該L1メモリ装置にキ
ャンセル要求を出す。
らL2へのストアを必要最小限に抑えることができ、L
1メモリ装置とL2メモリ装置との間の通信を大幅に削
減することができる。とくに、1チップに複数の処理装
置を集積するオンチップ・マルチプロセッサの場合、従
来は、チップあたりのメモリスループットの上限のた
め、処理装置に十分なデータを供給することができず、
性能低下を招いていた。本発明により、L1−L2間ス
ループットを大幅に抑えることができ、オンチップ・マ
ルチプロセッサの性能を改善することができる。
チプロセッサ・システムのメモリ構成図を示す。L2メ
モリ装置33aは、L2キャッシュ制御部353aとL
2データアレイ323とからなっている。L2キャッシ
ュ制御部353aは、L2ディレクトリ(L2参照履歴
ディレクトリ)とL2参照履歴制御部313とL2キャ
ッシュ一致制御部303を含む。L2データアレイ32
3とL3メモリ装置43(L3メモリ制御装置433と
L3メモリデータアレイ)の部分は、本発明の第3の実
施例と同じ構成である。
は、各L2キャッシュ制御部353a、353bに分散
配置した構成になっている。これは、L2全体のディレ
クトリ情報を、353a、353bで持つことにより可
能になる。L2キャッシュのライン状態に変化が生じた
場合は、363を通して、ライン状態を更新する。35
3a、353bは、それぞれ、ライン状態とL2アクセ
ス要求とからライン属性(「専用領域」と「共用領
域」)の判定をし、その結果にもとづいて、一致制御を
行う。
らL3へのストア要求を大幅に削減することができる。
とくに、図9のようなL2メモリ装置を複数個設けたマ
ルチL2システムにおいて、L2間のスループットとL
2−L3間のスループットを、両立させることが可能と
なる。それに伴い、従来では、大きな性能低下を招いて
いた複数のL2間をまたがる処理が、高速に行えるよう
になる。
の処理装置に用いられる「専用領域」か、複数の処理装
置で使用される「共用領域」かを、動的に判定し、それ
により、常に最適なキャッシュ一致制御を行うことで、
キャッシュ一致制御に伴う性能低下を最小限に抑えるこ
とができる。特に、共用領域に対する相互無効化のオー
バーヘッドを、大幅に改善することができる。また、そ
の結果として、オンチップ・マルチシステムやマルチL
2システムでの性能改善を行うことができる。
ムのメモリ構成を示す図である。
ムのメモリ構成を示す図である。
られるキャッシュ・ディレクトリの構成を示す図であ
る。
られるキャッシュ・ディレクトリのエントリ構成を示す
図である。
られる状態遷移図である。
られる他の状態遷移図である。
られるさらに他の状態遷移図である。
ムのメモリ構成を示す図である。
ステムのメモリ構成を示す図である。
ータアレイ 330、331 L2キャッシュ・ディレクトリ 420、421、422、423 L3メモリ・データ
アレイ 430、431、432、433 L3メモリ制御装置 352、353a、353b L2キャッシュ制御部 261 L1キャッシュ状態情報 271 L1キャッシュ・アクセス要求 281 L1キャッシュ属性情報 291 L2キャッシュ・アクセス要求 360、363 L2キャッシュ状態情報 370 L2キャッシュ・アクセス要求 380 L2キャッシュ属性情報 390 L3キャッシュ・アクセス要求 500 ディレクトリ 510、511 ラインアドレス 520 コラムアドレス 521 コラムアドレス・セレクタ 530 ロウアドレス 531 ロウアドレス・セレクタ 535 ロウ 540 ヒットロウアドレス 550、551 ライン状態情報 560、561 エントリ 570 比較回路 700、701、702 未使用状態 710、711、712 専有未変更(EC)状態 720、721、722 共有未変更(SC)状態 730、731、732 専有変更(EM)状態 741、742 共有変更(SM)状態 752 キャンセルされた専有変更(CEM)状態
Claims (6)
- 【請求項1】 複数の処理装置と、複数の階層メモリと
を備え、前記階層メモリは、少なくとも、キャッシュ・
メモリ装置と主記憶装置とを含み、前記主記憶装置に
は、複数の情報セットを記憶するようにし、前記キャッ
シュ・メモリ装置には情報セットを分割した情報サブセ
ットを記憶するように構成したデータ処理システムにお
いて、 複数のキャッシュ・メモリ装置と、該キャッシュ・メモ
リ装置間でキャッシュ一致制御を行うキャッシュ一致制
御部と、該一致制御部の動作モードを切り替える参照履
歴制御部とを有し、 前記参照履歴制御部は、キャッシュ・メモリ装置内に記
憶されている情報サブセットの状態と、該情報サブセッ
トへのアクセス要求とから、該情報サブセットの状態遷
移と、該情報サブセットが複数の処理装置で共有される
「共用領域」か単独の処理装置で専有される「専用領
域」であるかの属性とを決定し、前記キャッシュ一致制
御部は、該属性をもとに、キャッシュ・ストア要求時の
一致制御処理を、動的に変更することを特徴とするキャ
ッシュ・アクセス制御方式。 - 【請求項2】 請求項1記載のキャッシュ・アクセス制
御方式において、 前記参照履歴制御部において行われる状態遷移におい
て、ある情報サブセットが、キャッシュ一致制御によっ
て一旦、無効化された後、再度アクセスされた場合に、
前記属性を、複数の処理装置で共有する「共用領域」と
判定し、前記場合以外のとき、前記属性を、単独の処理
装置で専有する「専用領域」と判定することを特徴とす
るキャッシュ・アクセス制御方式。 - 【請求項3】 請求項1記載のキャッシュ・アクセス制
御方式において、 前記属性が「共用領域」の場合、前記キャッシュ一致制
御部は更新型プロトコルを用いて一致制御を行い、前記
属性が「専用領域」の場合は、前記キャッシュ一致制御
部は無効型プロトコルを用いて一致制御を行うことを特
徴とするキャッシュ・アクセス制御方式。 - 【請求項4】 請求項1記載のキャッシュ・アクセス制
御方式において、 前記属性が「共用領域」の場合、前記キャッシュ一致制
御部はストアスルー・プロトコルを用いて一致制御を行
い、前記属性が「専用領域」の場合は、前記キャッシュ
一致制御部はストアイン・プロトコルを用いて一致制御
を行うことを特徴とするキャッシュ・アクセス制御方
式。 - 【請求項5】 複数の処理装置と、複数の階層メモリと
を備え、前記階層メモリは、少なくとも、キャッシュ・
メモリ装置と主記憶装置とを含み、前記主記憶装置に
は、複数の情報セットを記憶するようにし、前記キャッ
シュ・メモリ装置には情報セットを分割した情報サブセ
ットを記憶するように構成したデータ処理システムにお
いて、 複数のエントリを有し、前記エントリの各々は、前記情
報サブセットを特定するためのアドレス表示と、前記情
報サブセットを使用している処理装置を識別する番号
と、前記情報サブセットの現在の状態とを特定する状態
情報とを有する参照履歴ディレクトリと、 複数の前記キャッシュ・メモリ装置からのアクセス要求
と、前記参照履歴ディレクトリ内の状態情報とから、当
該情報サブセットの属性を判定する参照履歴制御部と、 前記参照履歴制御部の判定した属性をもとに、各キャッ
シュのストア要求時の一致制御処理を、動的に変更する
キャッシュ一致制御部を備え、 前記参照履歴制御部が、複数の前記キャッシュ一致制御
部に接続されていることを特徴とするデータ処理装置。 - 【請求項6】 複数の処理装置と、複数の階層メモリと
を備え、前記階層メモリは、少なくとも、キャッシュ・
メモリ装置と主記憶装置とを含み、前記主記憶装置に
は、複数の情報セットを記憶するようにし、前記キャッ
シュ・メモリ装置には情報セットを分割した情報サブセ
ットを記憶するように構成したデータ処理システムにお
いて、 複数のエントリを有し、前記エントリの各々は、前記情
報サブセットを特定するためのアドレス表示と、前記情
報サブセットを使用している処理装置を識別する番号
と、前記情報サブセットの現在の状態とを特定する状態
情報とを有する参照履歴ディレクトリと、 複数の前記キャッシュ・メモリ装置からのアクセス要求
と、前記参照履歴ディレクトリ内の状態情報とから、当
該情報サブセットの属性を判定する参照履歴制御部と、 前記参照履歴制御部の判定した属性をもとに、各キャッ
シュのストア要求時の一致制御処理を、動的に変更する
キャッシュ一致制御部を備え、 前記参照履歴ディレクトリと前記参照履歴制御部と前記
キャッシュ一致制御部とを前記キャッシュ・メモリ装置
にそれぞれ設けたことを特徴とするデータ処理システ
ム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000213803A JP2002032265A (ja) | 2000-07-14 | 2000-07-14 | キャッシュ・アクセス制御方式およびデータ処理システム |
| US09/809,217 US6484242B2 (en) | 2000-07-14 | 2001-03-16 | Cache access control system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000213803A JP2002032265A (ja) | 2000-07-14 | 2000-07-14 | キャッシュ・アクセス制御方式およびデータ処理システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2002032265A true JP2002032265A (ja) | 2002-01-31 |
Family
ID=18709499
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000213803A Pending JP2002032265A (ja) | 2000-07-14 | 2000-07-14 | キャッシュ・アクセス制御方式およびデータ処理システム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6484242B2 (ja) |
| JP (1) | JP2002032265A (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005149290A (ja) * | 2003-11-18 | 2005-06-09 | Seiko Epson Corp | 情報処理装置およびキャッシュメモリ制御方法 |
| JP2006285992A (ja) * | 2005-03-31 | 2006-10-19 | Internatl Business Mach Corp <Ibm> | タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法 |
| EP2224343A1 (en) | 2009-02-26 | 2010-09-01 | Fujitsu Limited | Data processing system |
| US8472278B2 (en) | 2010-04-09 | 2013-06-25 | Qualcomm Incorporated | Circuits, systems and methods for adjusting clock signals based on measured performance characteristics |
| JP2015121945A (ja) * | 2013-12-24 | 2015-07-02 | Necプラットフォームズ株式会社 | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 |
| JP2021527283A (ja) * | 2018-09-12 | 2021-10-11 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 領域ベースのキャッシュディレクトリスキームにおけるプライベート領域へのアクセスの加速 |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3288304B2 (ja) * | 1998-07-01 | 2002-06-04 | 富士通株式会社 | キャッシュ試験装置およびキャッシュ試験方法 |
| US6678799B2 (en) * | 2001-10-18 | 2004-01-13 | Hewlett-Packard Development Company, Lp. | Aggregation of cache-updates in a multi-processor, shared-memory system |
| US20030115402A1 (en) * | 2001-11-16 | 2003-06-19 | Fredrik Dahlgren | Multiprocessor system |
| US7802058B1 (en) * | 2003-04-30 | 2010-09-21 | Silicon Graphics International | Method for performing cache coherency in a computer system |
| GB0315504D0 (en) * | 2003-07-02 | 2003-08-06 | Advanced Risc Mach Ltd | Coherent multi-processing system |
| US20050120182A1 (en) * | 2003-12-02 | 2005-06-02 | Koster Michael J. | Method and apparatus for implementing cache coherence with adaptive write updates |
| JP4612461B2 (ja) * | 2004-06-24 | 2011-01-12 | 株式会社東芝 | マイクロプロセッサ |
| US7596661B2 (en) * | 2005-09-01 | 2009-09-29 | Mediatek Inc. | Processing modules with multilevel cache architecture |
| US9852079B2 (en) * | 2006-08-01 | 2017-12-26 | Massachusetts Institute Of Technology | EXtreme virtual memory |
| US20080320233A1 (en) * | 2007-06-22 | 2008-12-25 | Mips Technologies Inc. | Reduced Handling of Writeback Data |
| US7769957B2 (en) * | 2007-06-22 | 2010-08-03 | Mips Technologies, Inc. | Preventing writeback race in multiple core processors |
| US9035959B2 (en) * | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
| US8527710B2 (en) * | 2009-02-17 | 2013-09-03 | Hitachi, Ltd. | Storage controller and method of controlling storage controller |
| JP5936152B2 (ja) | 2014-05-17 | 2016-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | メモリアクセストレース方法 |
| US10705964B2 (en) * | 2015-04-28 | 2020-07-07 | Intel Corporation | Controlling displacement in a co-operative and adaptive multiple-level memory system |
| CN109213694B (zh) | 2017-06-30 | 2023-04-25 | 伊姆西Ip控股有限责任公司 | 用于缓存管理的方法和设备 |
| US12425371B2 (en) * | 2022-09-16 | 2025-09-23 | Cisco Technology, Inc. | System and method for providing SCHC-based edge firewalling |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6426643A (en) | 1987-04-13 | 1989-01-27 | Kanegafuchi Chemical Ind | Method for improving powder characteristic of synthetic polymer powder |
| EP0343567A3 (en) | 1988-05-25 | 1991-01-09 | Hitachi, Ltd. | Multi-processing system and cache apparatus for use in the same |
| JPH0340046A (ja) | 1989-07-06 | 1991-02-20 | Hitachi Ltd | キャッシュメモリ制御方式および情報処理装置 |
| JPH061463B2 (ja) * | 1990-01-16 | 1994-01-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 |
| JPH0625984B2 (ja) * | 1990-02-20 | 1994-04-06 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | マルチプロセツサ・システム |
| JPH04123151A (ja) | 1990-09-13 | 1992-04-23 | Fujitsu Ltd | システムバス |
| JPH04296950A (ja) | 1991-03-06 | 1992-10-21 | Mitsubishi Electric Corp | キャッシュメモリ装置 |
| JPH0573416A (ja) | 1991-09-17 | 1993-03-26 | Nec Corp | キヤツシユ制御回路 |
| US5301298A (en) * | 1991-10-11 | 1994-04-05 | Intel Corporation | Processor for multiple cache coherent protocols |
| US5469555A (en) * | 1991-12-19 | 1995-11-21 | Opti, Inc. | Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system |
| US5553266A (en) * | 1992-04-24 | 1996-09-03 | Digital Equipment Corporation | Update vs. invalidate policy for a snoopy bus protocol |
| US5664149A (en) * | 1992-11-13 | 1997-09-02 | Cyrix Corporation | Coherency for write-back cache in a system designed for write-through cache using an export/invalidate protocol |
| JP2513417B2 (ja) | 1993-07-05 | 1996-07-03 | 日本電気株式会社 | 情報処理装置 |
| FR2707776B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé. |
| JPH0895862A (ja) | 1994-09-28 | 1996-04-12 | Hitachi Ltd | スヌープキャッシュを用いたデータ処理装置 |
-
2000
- 2000-07-14 JP JP2000213803A patent/JP2002032265A/ja active Pending
-
2001
- 2001-03-16 US US09/809,217 patent/US6484242B2/en not_active Expired - Fee Related
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005149290A (ja) * | 2003-11-18 | 2005-06-09 | Seiko Epson Corp | 情報処理装置およびキャッシュメモリ制御方法 |
| JP2006285992A (ja) * | 2005-03-31 | 2006-10-19 | Internatl Business Mach Corp <Ibm> | タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法 |
| EP2224343A1 (en) | 2009-02-26 | 2010-09-01 | Fujitsu Limited | Data processing system |
| US8472278B2 (en) | 2010-04-09 | 2013-06-25 | Qualcomm Incorporated | Circuits, systems and methods for adjusting clock signals based on measured performance characteristics |
| JP2015121945A (ja) * | 2013-12-24 | 2015-07-02 | Necプラットフォームズ株式会社 | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 |
| JP2021527283A (ja) * | 2018-09-12 | 2021-10-11 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 領域ベースのキャッシュディレクトリスキームにおけるプライベート領域へのアクセスの加速 |
| JP7036988B2 (ja) | 2018-09-12 | 2022-03-15 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 領域ベースのキャッシュディレクトリスキームにおけるプライベート領域へのアクセスの加速 |
Also Published As
| Publication number | Publication date |
|---|---|
| US6484242B2 (en) | 2002-11-19 |
| US20020007440A1 (en) | 2002-01-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2002032265A (ja) | キャッシュ・アクセス制御方式およびデータ処理システム | |
| US5228136A (en) | Method and apparatus to maintain cache coherency in a multiprocessor system with each processor's private cache updating or invalidating its contents based upon set activity | |
| US6088769A (en) | Multiprocessor cache coherence directed by combined local and global tables | |
| US5802582A (en) | Explicit coherence using split-phase controls | |
| US8700863B2 (en) | Computer system having a cache memory and control method of the same | |
| US7577794B2 (en) | Low latency coherency protocol for a multi-chip multiprocessor system | |
| EP0378399A2 (en) | Cache content control in multi-processor networks | |
| JPH0415736A (ja) | キャッシュメモリ装置 | |
| JP4043225B2 (ja) | キャッシュ装置および方法 | |
| JPH0340046A (ja) | キャッシュメモリ制御方式および情報処理装置 | |
| US20030115402A1 (en) | Multiprocessor system | |
| US7159079B2 (en) | Multiprocessor system | |
| US6952761B2 (en) | Bus interface selection by page table attributes | |
| KR100851738B1 (ko) | 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리 | |
| JP4409619B2 (ja) | 情報処理装置、制御装置および制御方法 | |
| JPH04230549A (ja) | 多重レベル・キャッシュ | |
| US6477622B1 (en) | Simplified writeback handling | |
| US6678800B1 (en) | Cache apparatus and control method having writable modified state | |
| US20060294319A1 (en) | Managing snoop operations in a data processing apparatus | |
| JP2020003959A (ja) | 情報処理装置、演算処理装置及び情報処理装置の制御方法 | |
| JP3626609B2 (ja) | マルチプロセッサシステム | |
| KR20080089622A (ko) | 메모리 액세스 제어 장치 및 메모리 액세스 제어 방법 | |
| JP6213366B2 (ja) | 演算処理装置とその制御方法 | |
| JPH06103244A (ja) | 並列計算機 | |
| JP4904802B2 (ja) | キャッシュメモリ及びプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040318 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051214 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081029 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090428 |