JP2001265652A - キャッシュディレクトリ構成方法および情報処理装置 - Google Patents

キャッシュディレクトリ構成方法および情報処理装置

Info

Publication number
JP2001265652A
JP2001265652A JP2000076699A JP2000076699A JP2001265652A JP 2001265652 A JP2001265652 A JP 2001265652A JP 2000076699 A JP2000076699 A JP 2000076699A JP 2000076699 A JP2000076699 A JP 2000076699A JP 2001265652 A JP2001265652 A JP 2001265652A
Authority
JP
Japan
Prior art keywords
cache
cache directory
directory
storage unit
main storage
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
Application number
JP2000076699A
Other languages
English (en)
Inventor
Yasuhiro Teramoto
康弘 寺本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000076699A priority Critical patent/JP2001265652A/ja
Priority to US09/741,980 priority patent/US6848023B2/en
Publication of JP2001265652A publication Critical patent/JP2001265652A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories

Abstract

(57)【要約】 【課題】 キャッシュ一致保証制御のためのキャッシュ
ディレクトリのハードウエア物量を抑え、かつ、高いキ
ャッシュディレクトリ検索性能を実現する。 【解決手段】 本来のキャッシュディレクトリ200を
構成する各エントリのアドレスタグを2分割して、各々
独立に並列動作が可能なキャッシュディレクトリ21
0、220とする。キャッシュディレクトリ210、2
20を用いて、各々、検索要求を同時に処理し、不一致
であれば、当該検索処理を終了し、一致した場合のみ、
他のキャッシュディレクトリの検索を行う。各処理装置
が主記憶のアドレスを局所的に使用する場合、一方のキ
ャッシュディレクトリでほとんど不一致と判断されるた
め、キャッシュディレクトリの物量は従来のままで、従
来より高いキャッシュディレクトリ検索性能が実現す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の処理装置と
該複数の処理装置が共有する主記憶装置からなる情報処
理装置において、各処理装置が内蔵するキャッシュ記憶
部と主記憶装置との間の一致(コヒーレンス)を保証す
るためのキャッシュディレクトリ構成方法およびそれを
適用した情報処理装置に関する。
【0002】
【従来の技術】複数の処理装置で主記憶装置を共有し、
各処理装置が各々主記憶装置の一部の写しを保持するキ
ャッシュ記憶部を具備するマルチプロセッサ構成の情報
処理装置においては、一般に各処理装置が内蔵するキャ
ッシュ記憶部と主記憶装置との間の一致(コヒーレン
ス)を保証するためにコヒーレンス制御装置を備えてい
る。コヒーレンス制御装置は、各処理装置ごとに、当該
処理装置のキャッシュ記憶部が保持しているアドレスタ
グ(キャッシュタグ)のコピーであるキャッシュディレ
クトリを備え、他処理装置が主記憶装置に対し書込みを
行った場合、該書込みを行った処理装置以外の処理装置
のキャッシュディレクトリを検索し、もし書込みアドレ
スと一致するアドレスタグが登録されていれば、当該処
理装置に対してキャッシュ記憶部の該当エントリの無効
化を報告する。
【0003】図6に、従来のキャッシュディレクトリの
構成例を示す。ここで、キャッシュディレクトリ600
は、一つの処理装置のキャッシュ記憶部が保持している
アドレスタグのコピーであり、コヒーレンス制御装置内
には、該キャッシュディレクトリ600が処理装置の数
だけ存在する。処理装置が主記憶装置からキャッシュ記
憶部へブロック転送を行い、新たにアドレスタグを登録
する場合、キャッシュディレクトリインデックスインタ
ーフェース601を介し、リード/ライトポインタ61
1の指し示すキャッシュディレクトリ600の該当エン
トリに、キャッシュディレクトリ登録アドレスインター
フェース602を介し、同じアドレスタグを登録する。
一方、他処理装置が主記憶装置に対して書き込みを行っ
た場合、キャッシュディレクトリインデックスインター
フェース601を介し、リード/ライトポインタ611
の指し示すキャッシュディレクトリ600の内容を読み
出し、読出しレジスタ612に格納し、該読出しレジス
タ612の内容とストアアドレスインターフェース60
3を介し格納されたストアアドレスレジスタ613の内
容を比較器614で比較し、一致した場合、インターフ
ェース604を介し、当該処理装置にキャッシュエント
リの無効化を報告する。
【0004】
【発明が解決しようとする課題】複数の処理装置で共有
される主記憶装置は、一般に各々異ったアドレス空間を
有して独立に並列動作が可能なバンク構成をとり、処理
装置との間で高いスループットを有しており、近年のさ
らなる高速化の要求に伴い、キャッシュディレクトリも
主記憶装置と同等のスループットを持つことが必要とな
ってきている。しかし、図6に示したような従来のキャ
ッシュディレクトリ構成では、キャッシュディレクトリ
の読出しパスは1本しか存在しないので、キャッシュデ
ィレクトリの検索性能は1であり、スループットの向上
は期待できない。
【0005】キャッシュディレクトリ検索性能を2倍に
するためには、図7に示すように、図6のキャッシュデ
ィレクトリ600と同じ内容を登録しているキャッシュ
ディレクトリ700をもう一つ用意することが考えられ
る。処理装置が主記憶装置からキャッシュ記憶部へブロ
ック転送を行い、新たにアドレスタグを登録する場合、
キャッシュディレクトリインデックスインターフェース
721を介し、各々、リード/ライトポインタ611、
711の指し示すキャッシュディレクトリ600、70
0の該当エントリに、キャッシュディレクトリ登録アド
レスインターフェース722を介し、同じアドレスタグ
を登録する。一方、2つのキャッシュディレクトリ検索
要求に対しては、各々独立に、キャッシュディレクトリ
インデックスインターフェース601、701を介し、
リード/ライトポインタ611、711の指し示すキャ
ッシュディレクトリ600、700の内容を読み出し、
読出しレジスタ612、712に格納し、これら読出し
レジスタ612、712の内容とストアアドレスインタ
ーフェース603、703を介し格納されたストアアド
レスレジスタ613、713の内容とを比較器614、
714で比較し、比較結果をインターフェース604、
704に出力する。
【0006】図7のキャッシュディレクトリ構成をとる
ことにより、キャッシュディレクトリの検索性能は2倍
になるが、キャッシュディレクトリの物量も2倍必要と
なる。しかも、これは各処理装置ごとに必要となる。
【0007】処理装置のキャッシュ記憶部はますます大
容量の傾向にあり、高いキャッシュディレクトリの検索
性を実現するためには、大きなハードウエア物理を投入
する必要がある。かたや、キャッシュディレクトリのハ
ードウエア物理は、昨今の大容量キャッシュ構成で複数
の処理装置を接続する情報処理装置においては、無視で
きないものであり、ハードウエア物理を押さえて高いキ
ャッシュディレクトリ検索性を実現する必要がある。
【0008】本発明の目的は、複数の処理装置のキャッ
シュ記憶部と主記憶装置との間の一致保証するためのキ
ャッシュディレクトリのハードウェアの物量を抑え、か
つ高いキャッシュディレクトリ検索性能を実現するキャ
ッシュディレクトリ構成方法およびそれを適用した情報
処理装置を提供することである。
【0009】
【課題を解決するための手段】本発明は、複数の処理装
置のキャッシュ記憶部と主記憶装置間の一致を保証する
ための各処理装置のキャッシュ記憶部を保持するアドレ
スタグの写しである本来の各キャッシュディレクトリ
を、各々、複数に分割して独立に並列動作が可能な構成
として、各キャッシュディレクトリに対し、複数の検索
要求を同時に処理できるようにしたことである。これに
より、キャッシュディレクトリのハードウエアの物理を
抑え、従来より高いキャッシュディレクトリ検索性能が
実現する。
【0010】
【発明の実施の形態】以下、本発明の一実施例を図面を
用いて具体的に説明する。なお、実施例では処理装置は
2つとするが、勿論、本発明はこれに限定されるもので
ないことは云うまでもない。
【0011】図1は、本発明の一実施例にかかる情報処
理装置のシステム構成図である。本実施例の情報処理装
置は、2台の処理装置110、120と、主記憶制御装
置130と主記憶装置140とコヒーレンス制御装置1
50から構成される。各処理装置110、120は、各
々主記憶装置140の一部の写し(コピー)を保持する
キャッシュ記憶部111、121と該キャッシュ記憶部
111、121に記憶されているブロックの主記憶領域
のアドレスを保持するキャッシュタグ112、122を
有する。さらに、各処理装置110、120のキャッシ
ュ記憶部111、121と主記憶装置140間の一致
(コヒーレンス)を保証するために、コヒーレンス制御
装置150は、各処理装置110、120のキャッシュ
記憶部111、121が保持しているキャッシュタグ1
12、122のコピーであるキャッシュディレクトリ1
51、152を備えている。各処理装置110、120
は主記憶制御装置130との間をインターフェース16
1、162により接続され、主記憶制御装置130は、
主記憶装置140、コヒーレンス制御装置150との間
を各々インターフェース170、180により接続され
ている。コヒーレンス制御装置150は、各処理装置1
10、120との間をインターフェース191、192
により接続されている。
【0012】処理装置110は、リード要求が発生する
と、キャッシュ記憶部111を参照し、目的のデータが
キャッシュ記憶部111に存在すれば、該キャッシュ記
憶部111から直接目的のデータを読み出す。一方、目
的のデータがキャッシュ記憶部111に存在しないと、
処理装置110は、インターフェース161、主記憶制
御装置130、インターフェース170を介して、目的
のデータを含むブロックを主記憶装置140からキャッ
シュ記憶部111へ転送し、あらためてキャッシュ記憶
部111から目的のデータを読み出すとともに、キャッ
シュ記憶部111に格納した当該ブロックの主記憶領域
のアドレス(アドレスタグ)をキャッシュタグ112に
登録する。また、処理装置110は、ライト要求が発生
すると、インターフェース161、主記憶制御装置13
0、インターフェース170を介して、主記憶装置14
0に書き込みを行うとともに、キャッシュ記憶部111
に旧データが存在すれば、それを書き替える。処理装置
120の動作も、この処理装置110の動作と同様であ
る。
【0013】主記憶制御装置130は、各処理装置11
0、120からの主記憶アクセスのプライオリティをと
り、インターフェース170を介し順次、主記憶装置1
40に対しアクセスを行なうと共に、インターフェース
180を介し、コヒーレンス制御装置150に対して処
理装置IDを付加して主記憶アクセス情報を転送する。
【0014】主記憶装置140は、主記憶制御装置13
0からの主記憶アクセスに従い、所定領域に新しい内容
の書き込み(ライト)を行い、また、所定領域から内容
の読み出し(リード)を行なう。主記憶装置140は、
各々異ったアドレス空間を有し、独立に並列動作が可能
なバンク構成をとる。
【0015】コヒーレンス制御装置150は、各処理装
置110、120が持つキャッシュ記憶部111、12
1と主記憶装置140間の一致を保証するために、主記
憶制御装置130から転送される各処理装置110、1
20の主記憶アクセス情報を常に監視し、各処理装置1
10、120のキャッシュ記憶部111、121が保持
しているキャッシュタグ112、122のコピーである
キャッシュディレクトリ151、152を更新したり、
検索する。具体的には、例えば、処理装置110が主記
憶装置140からブロックを読み出し、キャッシュ記憶
部111に格納し、キャッシュタグ112に新たにアド
レスタグを登録する場合は、コヒーレンス制御装置15
0は、該処理装置110のキャッシュディレクトリ15
1に同じアドレスタグを登録する。また、他処理装置1
20が主記憶装置170に対し書込みを行なった場合に
は、コヒーレンス制御装置150は、該処理装置120
以外の処理装置110のキャッシュディレクトリ151
を検索し、もし書込みのアドレスと一致するアドレスタ
グが、処理装置110内のキャッシュ記憶部111のキ
ャッシュタグ112に登録されていることが判明したな
らば、そのキャッシュエントリを無効化する要求を処理
装置110に対しインターフェース191を介して行な
う。処理装置120に対応するキャッシュディレクトリ
152の更新、検索についても同様である。
【0016】キャッシュディレクトリにより、各処理装
置内のキャッシュ記憶部と主記憶装置との間の一致が常
に保証されていることとなり、ソフトウェアはコヒーレ
ンス制御に関する処理を行なわず、高速にマルチプロセ
ッサでの処理が可能となる。本発明は、このキャッシュ
ディレクトリの構成に関する。
【0017】図2は、本発明の一実施例のキャッシュデ
ィレクトリ周辺の構成図であり、便宜上、図2は処理装
置110のキャッシュ記憶部が保持するキャッシュタグ
112のコピーであるキャッシュディレクトリ151に
対応するとする。本実施例のキャッシュディレクトリ周
辺は、キャッシュディレクトリ210、220と、キャ
ッシュディレクトリ210、220のリード/ライトポ
インタ211、221と、読出しレジスタ212、22
2と、ストアアドレスレジスタ213、223と、比較
器214、224と、比較結果ディレイヤ215、22
5と、アンド回路216、226と、インデックスディ
レイヤ217、227と、ストアアドレスディレイヤ2
18、228と、インデックスのセレクタ219−1、
229−1と、ストアアドレスのセレクタ219−2、
229−2などから構成される。201と202は主記
憶ストアアクセス情報のキャッシュディレクトリインデ
ックスインターフェース、203と204は主記憶スト
アアクセス情報のストアアドレスインターフェース、2
05は主記憶リードアクセス情報のキャッシュディレク
トリインデックスインターフェース、206は主記憶リ
ードアクセス情報のアドレスタグインターフェースであ
る。
【0018】キャッシュディレクトリ210、220
は、一つの処理装置(ここでは、処理装置110)のキ
ャッシュ記憶部が保持するキャッシュタグの写しを保持
するものである。ただし、本実施例では、キャッシュタ
グを構成する各エントリのアドレスタグの全ビットを論
理的に半分に分割し、キャッシュディレクトリ210と
キャッシュディレクトリ220に各々登録する。すなわ
ち、キャッシュディレクトリ210とキャッシュディレ
クトリ220は同じ内容を登録しているわけではなく、
アドレスタグとして必要な全ビットの半分ずつを記憶し
ている。
【0019】キャッシュディレクトリ210、220の
リード/ライトポインタ211、221は、各々キャッ
シュディレクトリ210、220の内容を読み書きする
エントリのポインタである。読出しレジスタ212、2
22は、各リード/ライトポインタ211、221が指
し示した個所のキャッシュディレクトリ210、220
のエントリから読み出された内容を格納するレジスタで
ある。ストアアドレスレジスタ213、223は、各キ
ャッシュディレクトリ210、220の検索を行なうア
ドレス、すなわち、他処理装置が主記憶装置に対し行な
った書込みのアドレスの半分ずつを格納するレジスタで
ある。比較器214、224は、各々読出しレジスタ2
12、222とストアアドレスレジスタ213、223
の内容を比較する論理である。比較結果ディレイヤ21
5、225は、比較器214、224の出力結果を一時
的にディレイするものである。アンド回路216、22
6は、比較結果ディレヤと他方の比較結果との論理積を
とるものであり、比較最終結果はインターフェース19
1により処理装置(ここでは、処理装置110)に報告
される。このアンド回路216、226の結果がキャッ
シュディレクトリ210、220の該当エントリの全ビ
ットを比較した最終結果となる。インデックスディレイ
ヤ217、227は、各々、一方のキャッシュディレク
トリの内容と一致した場合に反対のキャッシュディレク
トリの内容を検索するためのインデックスの一時的なデ
ィレイヤである。同様に、ストアアドレスディレイヤ2
18、228は、各々、一方のキャッシュディレクトリ
の内容と一致した場合に反対のキャッシュディレクトリ
の内容を検索するためのストアアドレスの一時的なディ
レイヤである。セレクタ219−1、229−1は、リ
ード/ライトポインタ211、221へ送る内容(キャ
ッシュディレクトリインデックス)を通常のパスかディ
レイヤのパスかに切り替えるためのセレクタである。セ
レクタ219−2、229−2は、各々ストアアドレス
レジスタ213、223へ送る内容(ストアアドレスの
半分)を通常のパスかディレイヤのパスかに切り替える
ためのセレクタである。
【0020】図3は、キャッシュディレクトリ210、
220に分割して登録されるアドレスタグの具体的イメ
ージを説明する図である。キャッシュディレクトリ20
0は本来キャッシュディレクトリとして必要な全ての情
報を有している。すなわち、キャッシュディレクトリ2
00内の任意のエントリ2001は、当該処理装置のア
ドレス記憶部が保持するキャッシュタグ内の1つのアド
レスタグのコピーであり、ここでは20ビットの情報を
有しているとする。本実施例では、このキャッシュディ
レクトリ200の各エントリを構成するビット(アドレ
スタグ)を、奇数ビットと偶数ビットで2つに分けて、
各々、キャッシュディレクトリ210とキャッシュディ
レクトリ220としている。すなわち、一方のキャッシ
ュディレクトリ210内の該当するエントリ2101
は、キャッシュディレクトリ200内のエントリ200
1の情報のうち偶数ビットのみを有し、他方のキャッシ
ュディレクトリ220内の同じく該当するエントリ22
01は、キャッシュディレクトリ200内のエントリ2
001の情報のうち奇数ビットのみを有するようにす
る。これにより、キャッシュディレクトリのハードウェ
ア物量は同じで、お互いは本来のキャッシュディレクト
リとして必要な半分の情報しか有していないが、お互い
が独立に動作可能である利点をもつ。なお、図3では、
アドレスタグを奇数ビットと偶数ビットに分けるとした
が、分け方は、アドレスタグの前半と後半、2ビットや
3ビット単位など、どのように分けてもよい。
【0021】図1において、コヒーレンス制御装置15
0は、主記憶制御装置130から転送される処理装置1
10、120の主記憶リードアクセス情報、主記憶スト
アアクセス情報をキューイングして、主記憶リードアク
セス情報のキャッシュディレクトリインデックスとリー
ドアドレスの組は自処理装置に対応するキャッシュディ
レクトリに送り、主記憶ストアアクセス情報のキャッシ
ュディレクトリインデックスとストアアドレスの組は他
処理装置に対応するキャッシュディレクトリに送る。こ
こで、特に主記憶ストアアクセス情報のインデックスと
ストアアドレスの組については、複数の主記憶ストアア
クセス情報がキューイングされている場合、2組のイン
デックスとストアアドレスを該当するキャッシュディレ
クトリに送る。キャッシュディレクトリは、この2組の
インデックスとストアアドレスを同時に処理する。すな
わち、実施例では、キャッシュディレクトリは最大で同
時に2つの検索リクエストを処理し、二つのキャッシュ
ディレクトリ151、152では、最大で同時に合計4
つの検索リクエストを処理できる。
【0022】以下では、処理装置110側のキャッシュ
ディレクトリ151であるキャッシュディレクトリ21
0、220に着目し、図2の動作について詳述する。
【0023】はじめ、キャッシュディレクトリ210、
220を更新(登録)する動作について説明する。自処
理装置110の主記憶リードアクセス情報のキャッシュ
ディレクトリインデックス(以下、単にインデックスと
いう)は、インターフェース205を介してリード/ラ
イトポインタ211、221に格納され、主記憶リード
アドレス(アドレスタグ)は、インターフェース206
を介して、その半分(例えば偶数ビット)はキャッシュ
ディレクトリ210に入力し、残りの半分(例えば奇数
ビット)はキャッシュディレクトリ220に入力され
る。この結果、キャッシュディレクトリ210では、リ
ード/ライトポインタ211が指し示すエントリにアド
レスタグの半分が格納され、キャッシュディレクトリ2
20では、リード/ライトポインタ221が指し示す同
じエントリにアドレスタグの残り半分が格納される。
【0024】次に、キャッシュディレクトリ210、2
20を検索する動作について説明する。通常、セレクタ
219−1、229−1はインターフェース201、2
02を選択し、セレクタ219−2、229−2はイン
ターフェース203、204を選択している。他処理装
置120の主記憶ライトアクセス情報のインデックスは
インターフェース201を介して与えられ、そのライト
アドレスはインターフェース203を介して与えられ
る。この時、さらに、他処理装置120の主記憶ライト
アクセス情報が存在する場合、そのインデックスはイン
ターフェース202を介して与えられ、ライトアドレス
はインターフェース204を介して与えられる。以下で
は、インターフェース201、203のパスのインデッ
クスとライトアドレスの組を例に動作を説明するが、イ
ンターフェース202、204のパスのインデックスと
ライトアドレスの組の動作も、検索するキャッシュディ
レクトリの関係が逆になるだけで基本的には同様であ
る。
【0025】インターフェース201からのインデック
スは、インデックスディレイャ227に退避されると共
に、セレクタ219−1を通過してリード/ライトポイ
ンタ211に格納される。この結果、キャッシュディレ
クトリ210において、リード/ライトポインタ211
が指し示すエントリの内容(例えば、アドレスタグの偶
数ビット)が読み出され、読出しレジスタ212に格納
される。一方、インターフェース203からのストアア
ドレスは、その半分(例えば奇数ビット)がストアアド
レスディレイャ228に退避されると共に、その残りの
半分(例えば偶数ビット)はセレクタ219−2を通過
し、ストアアドレスレジスタ213に格納される。該ス
トアアドレスレジスタ213の内容と読出しレジスタ2
12の内容を比較器214で比較し、一致していなけれ
ば、当該ライトリクエストに対するキャッシュディレク
トリの検索処理は終了する。
【0026】もし、一致していた場合には、この一致は
図3のキャッシュディレクトリ200のエントリの半分
の内容との一致でしかないため、残りの半分との比較を
行なうために、反対側のキャッシュディレクトリ220
の検索を行なう。この場合、インターフェース202、
204のパスに対するキャッシュディレクトリ220の
検索終了をまって、比較器214の比較結果(論理1)
を比較結果ディレイャ225に設定すると共に、該比較
結果の信号を受けて、反対側のセレクタ229−1とセ
レクタ229−2を切り替える。これにより、インデッ
クスディレイヤ227に退避してあるインデックスがセ
レクタ229−1を通過し、リード/ライトポインタ2
21に格納され、キャッシュディレクトリ220におい
て、該リード/ライトポインタ221が指し示すエント
リの内容(例えばアドレスタグの奇数ビット)が読み出
され、読出しレジスタ222に格納される。さらに、ス
トアアドレスディレイヤ228に退避してあるストアア
ドレスの半分(例えば、奇数ビット)がセレクタ229
−2を通過し、ストアアドレスレジスタ223に格納さ
れる。該ストアアドレスレジスタ223の内容と読出し
レジスタ222の内容を比較器224で比較し、その比
較結果と前記比較器214の比較結果を一時的に比較結
果ディレイヤ225でディレイしたものと、アンド回路
226で論理積をとる。この結果が図3のキャッシュデ
ィレクトリ200の該当エントリの全ビットの比較した
最終結果となる。この最終結果が真の時、ストアアドレ
スとキャッシュディレクトリの内容とが一致したという
ことで、インターフェース191を介し、処理装置11
0に対してキャッシュ記憶部111の該当エントリの無
効化を報告する。
【0027】本実施例は、キャッシュディレクトリの内
容、すなわち、各処理装置がもつキャッシュのアドレス
タグと、各処理装置が主記憶装置に対して行なう書込み
動作において、お互いのアドレスが似ている場合には、
同時に2つのキャッシュディレクトリ検索ができるが、
処理に2サイクルかかるので、あまりメリットはない。
しかし、今般の大容量の主記憶装置を備え、各処理装置
がなるべく主記憶のアドレスを局所的に使用する場合に
おいては、キャッシュディレクトリのアドレスタグの半
分のビット比較でもストアアドレスとは不一致と判断で
きる場合が多く、コヒーレンス制御装置は、ほとんどの
時間において、処理装置ごとに同時に2つのキャッシュ
ディレクトリの検索リクエストを処理できるメリットが
ある。また、図1では、便宜上、処理装置は2台とした
が、処理装置が3台以上になると、そのメリットはさら
に向上する。
【0028】図4は、本発明の他の実施例のキャッシュ
ディレクトリ周辺の構成図であり、図2と同様に、図1
の処理装置110キャッシュ記憶部111が保持するキ
ャッシュタグ111のコピーである一つのキャッシュデ
ィレクトリ151に対応するものである。本実施例のキ
ャッシュディレクトリ周辺は、キャッシュディレクトリ
410、420と、各キャッシュディレクトリ410、
420のリードライトポインタ411、421と、読出
しレジスタ412、422と、ストアアドレスレジスタ
413、423と、比較器414、424から構成され
る。401と402は主記憶リードアクセス情報や主記
憶ストアアクセス情報のインデックスインターフェー
ス、403と404は主記憶リードアクセス情報のリー
ドアドレスインターフェース、405と406は主記憶
ストアアクセス情報のアドレスインターフェースであ
る。
【0029】キャッシュディレクトリ410、420
は、一つの処理装置のキャッシュ記憶部が保持するキャ
ッシュタグの写しである一つのキャッシュディレクトリ
(ここでは、図1の151)に対応する。ただし、本実
施例では、該キャッシュディレクトリのエントリを半分
ずつに分割し、キャッシュディレクトリ410とキャッ
シュディレクトリ420に分割して登録することで、各
キャッシュディレクトリ410、420を独立に動作可
能なバンク構成として、キャッシュディレクトリの登録
・検索性能を向上させるものである。すなわち、キャッ
シュディレクトリ410とキャッシュディレクトリ42
0は同じ内容を登録しているわけではなく、エントリ毎
で半分ずつを記憶している。
【0030】キャッシュディレクトリ410、420の
リード/ライトポインタ411、421は、キャッシュ
ディレクトリ410、420の内容を読み書きする場合
のポインタである。読出しレジスタ412、422は、
キャッシュディレクトリ410、420のリード/ライ
トポインタ411、421が指し示した個所のエントリ
の内容を格納するレジスタである。ストアアドレスレジ
スタ413、423は、キャッシュディレクトリの検索
を行なうアドレス、すなわち、他処理装置が主記憶装置
に対し行なった書込みのアドレスを格納するレジスタで
ある。比較器414、424各々読出しレジスタ41
2、422とストアアドレスレジスタ413、423の
内容を比較する論理である。
【0031】図5は、キャッシュディレクトリ410、
420に分割して登録するエントリの具体的イメージを
説明する図である。キャッシュディレクトリ400は本
来キャッシュディレクトリとして必要な全ての情報を有
している。ここでは、キャッシュディレクトリ400は
処理装置のキャッシュ記憶部が保持するキャッシュタグ
のコピーとして10個のエントリを有している。先の実
施例では、エントリのアドレスタグのビットにより分割
したが、本実施例では、キャッシュディレクトリのエン
トリ400を、奇数エントリと偶数エントリで2つに分
けて、各々キャッシュディレクトリ410とキャッシュ
ディレクトリ420としている。これにより、キャッシ
ュディレクトリのハードウェア物量は同じで、お互いは
本来のキャッシュディレクトリとして必要な半分のエン
トリしか有していないが、お互いが独立に動作可能であ
る利点をもつ。なお、図5では、奇数エントリと偶数エ
ントリで2つに分けたが、例えば前半エントリと後半エ
ントリで分けることでもよい。
【0032】図4では、エントリによりキャッシュディ
レクトリを2つに分割しているため、キャッシュディレ
クトリの検索において、検索先のエントリが、例えば、
一方が奇数エントリで他方が偶数エントリと異なれば、
2つのキャッシュディレクトリ検索リクエストを、キャ
ッシュディレクトリ410とキャッシュディレクトリ4
20で同時に処理することが可能であり、分割する前の
構成と比較し、キャッシュディレクトリの物量は同じな
がらキャッシュディレクトリの検索性能は2倍得ること
ができる。さらに、キャッシュディレクトリの登録にお
いても、登録先のエントリが同様に異なれば、2つのキ
ャッシュディレクトリ登録リクエストをキャッシュディ
レクトリ410とキャッシュディレクトリ420で同時
に処理することが可能である。また、検索先のエントリ
と登録先のエントリが異なれば、キャッシュディレクト
リ検索リクエストとキャッシュディレクトリ登録リクエ
ストを同時に処理することも可能である。図4の動作
は、お互いが独立に動作可能なメモリのバンク構成の動
作と基本的に同様であるため省略する。
【0033】以上、図2や図4では、キャッシュディレ
クトリを2つに分割するとしたが、これは単なる一実施
例であり、勿論、原理的に3つあるいはそれ以上に分割
してもよいことは云うまでもない。
【0034】
【発明の効果】以上述べたように、本発明によれば、大
容量のキャッシュ記憶部を備えた複数の処理装置が主記
憶装置に接続されたマルチプロセッサシステムにおい
て、ハードウェアによるキャッシュ一致保証を行うため
の装置として、複数処理装置のキャッシュ記憶部が保持
するアドレスタグの写しであるキャッシュディレイクト
リを用意するコヒーレンス制御装置を備える場合、キャ
ッシュディレクトリの物量を抑え、かつ高いキャッシュ
ディレクトリ検索性能を実現することが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施例の情報処理装置に係わる全体
的ブロック図である。
【図2】本発明の第1の実施例のキャッシュディレクト
リ周辺のブロック図である。
【図3】図2のキャッシュディレクトリのビット分割に
関する説明図である。
【図4】本発明の第2の実施例のキャッシュディレクト
リ周辺のブロック図である。
【図5】図4のキャッシュディレクトリのエントリ分割
に関する説明図である。
【図6】従来のコヒーレンス制御装置に係わる要部ブロ
ック図である。
【図7】キャッシュディレクトリをコピーで持つ場合
の、従来のコヒーレンス制御装置に係わる要部ブロック
図である。
【符号の説明】
110、120 処理装置 111、121 キャッシュ記憶部 112、122 キャッシュタグ 130 主記憶制御装置 140 主記憶装置 150 コヒーレンス制御装置 151、152 キャッシュディレクトリ 211、220 ビット分割のキャッシュディレクトリ 410、420 エントリ分割のキャッシュディレクト

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数の処理装置で主記憶装置を共有し、
    各処理装置が主記憶装置の一部の写しを保持するキャッ
    シュ記憶部を具備する情報処理装置において、処理装置
    のキャッシュ記憶部と主記憶装置との間の一致を保証す
    るための、処理装置のキャッシュ記憶部が保持するアド
    レスタグの写しを保持するキャッシュディレクトリの構
    成方法であって、 キャッシュディレクトリを複数に分割し、該分割した複
    数のキャッシュディレクトリを用いて、複数の検索要求
    を同時に処理可能としたことを特徴とするキャッシュデ
    ィレクトリ構成方法。
  2. 【請求項2】 請求項1記載のキャッシュディレクトリ
    構成方法において、キャッシュディレクトリを構成する
    各エントリのアドレスタグを複数に分割し、検索要求に
    対して、該当エントリの分割したアドレスタグビット部
    分で不一致であれば、該検索処理を終了し、一致した場
    合に、該当エントリの分割した他のアドレスタグビット
    部分を検索することを特徴とするキャッシュディレクト
    リ構成方法。
  3. 【請求項3】 請求項1記載のキャッシュディレクトリ
    構成方法において、キャッシュディレクトリを複数の異
    ったエントリ群に分割し、該分割した各エントリ群を独
    立に動作可能としたことを特徴とするキャッシュディレ
    クトリ構成方法。
  4. 【請求項4】 主記憶装置の一部の写しを保持するキャ
    ッシュ記憶部を各々内蔵する複数の処理装置と、 各々異なるアドレス空間を有して独立に並列動作が可能
    な複数バンク構成をとり、複数の処理装置で共有される
    主記憶装置と、 複数の処理装置のキャッシュ記憶部と主記憶装置との間
    の一致を保証するための、各処理装置のキャッシュ記憶
    部が保持するアドレスタグの写しを保持する複数のキャ
    ッシュディレクトリとして、各々、複数に分割された独
    立に並列動作が可能な構成のキャッシュディレクトリを
    備え、各キャッシュディレクトリに対し、複数の検索要
    求を同時に処理するコヒーレンス制御装置と、を具備す
    ることを特徴とする情報処理装置。
JP2000076699A 2000-03-17 2000-03-17 キャッシュディレクトリ構成方法および情報処理装置 Pending JP2001265652A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000076699A JP2001265652A (ja) 2000-03-17 2000-03-17 キャッシュディレクトリ構成方法および情報処理装置
US09/741,980 US6848023B2 (en) 2000-03-17 2000-12-19 Cache directory configuration method and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000076699A JP2001265652A (ja) 2000-03-17 2000-03-17 キャッシュディレクトリ構成方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2001265652A true JP2001265652A (ja) 2001-09-28

Family

ID=18594400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000076699A Pending JP2001265652A (ja) 2000-03-17 2000-03-17 キャッシュディレクトリ構成方法および情報処理装置

Country Status (2)

Country Link
US (1) US6848023B2 (ja)
JP (1) JP2001265652A (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681292B2 (en) * 2001-08-27 2004-01-20 Intel Corporation Distributed read and write caching implementation for optimized input/output applications
JP2003107594A (ja) * 2001-09-28 2003-04-09 Fuji Photo Optical Co Ltd 画像処理装置の振動減衰機構
WO2003038669A1 (en) * 2001-11-01 2003-05-08 Sun Microsystems, Inc. Directory request caching in distributed computer systems
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7546422B2 (en) * 2002-08-28 2009-06-09 Intel Corporation Method and apparatus for the synchronization of distributed caches
US7039762B2 (en) * 2003-05-12 2006-05-02 International Business Machines Corporation Parallel cache interleave accesses with address-sliced directories
US20050108481A1 (en) * 2003-11-17 2005-05-19 Iyengar Arun K. System and method for achieving strong data consistency
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7685354B1 (en) 2004-06-30 2010-03-23 Sun Microsystems, Inc. Multiple-core processor with flexible mapping of processor cores to cache banks
US7240160B1 (en) * 2004-06-30 2007-07-03 Sun Microsystems, Inc. Multiple-core processor with flexible cache directory scheme
US7340568B2 (en) * 2005-02-11 2008-03-04 International Business Machines Corporation Reducing number of rejected snoop requests by extending time to respond to snoop request
US7386682B2 (en) * 2005-02-11 2008-06-10 International Business Machines Corporation Reducing number of rejected snoop requests by extending time to respond to snoop request
US7386681B2 (en) * 2005-02-11 2008-06-10 International Business Machines Corporation Reducing number of rejected snoop requests by extending time to respond to snoop request
US8135910B2 (en) * 2005-02-11 2012-03-13 International Business Machines Corporation Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory
US7475193B2 (en) * 2006-01-18 2009-01-06 International Business Machines Corporation Separate data and coherency cache directories in a shared cache in a multiprocessor system
US20070168620A1 (en) * 2006-01-19 2007-07-19 Sicortex, Inc. System and method of multi-core cache coherency
US9002872B2 (en) * 2007-10-30 2015-04-07 Novell, Inc. Techniques for parallel processing of directory searches
US20100217952A1 (en) * 2009-02-26 2010-08-26 Iyer Rahul N Remapping of Data Addresses for a Large Capacity Victim Cache
US9058334B2 (en) * 2010-02-11 2015-06-16 Emc Corporation Parallel file system processing
US8521960B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Mitigating busy time in a high performance cache
US8484418B2 (en) * 2010-10-22 2013-07-09 Intel Corporation Methods and apparatuses for idle-prioritized memory ranks
WO2014006656A1 (en) * 2012-07-05 2014-01-09 Hitachi, Ltd. Computer system, cache control method and computer program
CN103942205B (zh) * 2013-01-18 2018-06-05 深圳市腾讯计算机系统有限公司 存储、读取目录索引的方法、装置及系统
US10592424B2 (en) * 2017-07-14 2020-03-17 Arm Limited Range-based memory system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265232A (en) * 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data
EP0747826B1 (en) * 1995-06-06 2001-09-19 Hewlett-Packard Company, A Delaware Corporation Cache system with simultaneous tag comparison
US5909697A (en) * 1997-09-30 1999-06-01 Sun Microsystems, Inc. Reducing cache misses by snarfing writebacks in non-inclusive memory systems
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
US6480927B1 (en) * 1997-12-31 2002-11-12 Unisys Corporation High-performance modular memory system with crossbar connections
JP2000172564A (ja) 1998-12-10 2000-06-23 Hitachi Ltd キャッシュ一致保証制御を行う情報処理装置
US6311253B1 (en) * 1999-06-21 2001-10-30 International Business Machines Corporation Methods for caching cache tags

Also Published As

Publication number Publication date
US6848023B2 (en) 2005-01-25
US20010032299A1 (en) 2001-10-18

Similar Documents

Publication Publication Date Title
JP2001265652A (ja) キャッシュディレクトリ構成方法および情報処理装置
US4876643A (en) Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
EP0009938B1 (en) Computing systems having high-speed cache memories
US5095424A (en) Computer system architecture implementing split instruction and operand cache line-pair-state management
US6816947B1 (en) System and method for memory arbitration
US4881163A (en) Computer system architecture employing cache data line move-out queue buffer
US7953953B2 (en) Method and apparatus for reducing page replacement time in system using demand paging technique
KR100828869B1 (ko) 사이클당 다중 캐시 라인 무효화 지원 장치 및 방법
US7058049B2 (en) Load store queue applied to processor
EP1537485B1 (en) Reverse directory for facilitating accesses involving a lower-level cache
EP0531123B1 (en) A dynamic address translation processing apparatus in a data processing system
US6393515B1 (en) Multi-stream associative memory architecture for computer telephony
JP2523814B2 (ja) ム―ブアウト・システム
US6820170B1 (en) Context based cache indexing
US20230400985A1 (en) Pim computing system and pim computation offloading method thereof
US7406554B1 (en) Queue circuit and method for memory arbitration employing same
EP0271187B1 (en) Split instruction and operand cache management
JPH05143451A (ja) データ処理装置
WO2015067195A1 (zh) 一种可重构缓存组织结构
JPH05158793A (ja) 並列キャッシュメモリ
JP2002032251A (ja) データ処理システム
US20230333984A1 (en) Systems and methods for a cross-layer key-value store with a computational storage device
JP2636485B2 (ja) キャッシュ記憶装置