JPH0371355A - キヤツシユ検索装置および検索方法 - Google Patents
キヤツシユ検索装置および検索方法Info
- Publication number
- JPH0371355A JPH0371355A JP2205332A JP20533290A JPH0371355A JP H0371355 A JPH0371355 A JP H0371355A JP 2205332 A JP2205332 A JP 2205332A JP 20533290 A JP20533290 A JP 20533290A JP H0371355 A JPH0371355 A JP H0371355A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- line
- address
- directory
- page
- 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.)
- Granted
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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
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
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は情報ハンドリング・システムにおいてキャッシ
ュ装置にミスが発生した際、主記憶装置からデータを得
るに必要なサイクル数を減少させようとするものである
。
ュ装置にミスが発生した際、主記憶装置からデータを得
るに必要なサイクル数を減少させようとするものである
。
B、従来技術および課題
一般的な多重レベル・データ記憶装置ではキャッシュ・
ディレクトリはコラムおよび行からなるハードウェア配
列として構成されている。ディレクトリの行はクラスの
適合を示し、行中のコラム数はキャッシュの関連性を示
す。キャッシュ・ディレクトリの各エントリはキャッシ
ュ・メモリ中の記憶データのラインについての情報を含
む。仮想アドレス・キャッシュにおいては、ディレクト
リは仮想アドレスの最上位ビット、主記憶装置中のデー
タ入力位置を示すページ・アドレスおよび記憶保護ビッ
ト等を含む。
ディレクトリはコラムおよび行からなるハードウェア配
列として構成されている。ディレクトリの行はクラスの
適合を示し、行中のコラム数はキャッシュの関連性を示
す。キャッシュ・ディレクトリの各エントリはキャッシ
ュ・メモリ中の記憶データのラインについての情報を含
む。仮想アドレス・キャッシュにおいては、ディレクト
リは仮想アドレスの最上位ビット、主記憶装置中のデー
タ入力位置を示すページ・アドレスおよび記憶保護ビッ
ト等を含む。
仮想アドレス・キャッシュにおいてデータ要求があった
場合、キャッシュ・ディレクトリのアドレスには仮想ア
ドレス位置が使用される。適当なコングルエンド・クラ
スがディレクトリから選択され、現アドレスの最上位ビ
ットとディレクトリ中の対応仮想アドレス・ビットとの
比較が実行される。一致がない場合はキャッシュにデー
タがなく、主記憶装置からのフェッチが必要となる。
場合、キャッシュ・ディレクトリのアドレスには仮想ア
ドレス位置が使用される。適当なコングルエンド・クラ
スがディレクトリから選択され、現アドレスの最上位ビ
ットとディレクトリ中の対応仮想アドレス・ビットとの
比較が実行される。一致がない場合はキャッシュにデー
タがなく、主記憶装置からのフェッチが必要となる。
主記憶装置からのフェッチにはキャッシュのアドレスに
使用される仮想アドレスを実アドレスに変換することが
必要となる。変換処理は一般的に主記憶装置からのアク
セスが可能となる以前に1つ、あるいはそれ以上のテー
ブル検索を必要とする。
使用される仮想アドレスを実アドレスに変換することが
必要となる。変換処理は一般的に主記憶装置からのアク
セスが可能となる以前に1つ、あるいはそれ以上のテー
ブル検索を必要とする。
キャッシュにおける処理の改善の1つとして変換索引緩
衝機構(TLB)の使用がある。これはキャッシュにお
けるミスの発生の際にTLBが所望データの変換アドレ
スを有しているというものである。これによればアドレ
ス変換に要する時間を削減でき、データは即座に主記憶
装置からフェッチできる。しかし、TLBはハードウェ
ア・コストの増大を招くこととなり、常に望ましい形態
であるとは言えない。
衝機構(TLB)の使用がある。これはキャッシュにお
けるミスの発生の際にTLBが所望データの変換アドレ
スを有しているというものである。これによればアドレ
ス変換に要する時間を削減でき、データは即座に主記憶
装置からフェッチできる。しかし、TLBはハードウェ
ア・コストの増大を招くこととなり、常に望ましい形態
であるとは言えない。
C6発明の概要および解決n題
本発明はTLBを使用せずにキュツシュの実効を改善す
るものである。
るものである。
本発明の1つの実施例はキャッシュ・ディレクトリの各
エントリがデータの入力された主記憶装置のページの実
アドレスおよび仮想アドレスの最上位ビット両者を含む
仮想アドレス・キャッシュを用いたコンピュータ・シス
テムである。キャッシュのパフォーマンスは所定のシー
ケンスに従って主記憶装置の同一ページからのラインを
エントリとして置くことで、ページごとのライン検索を
可能として改善したものである。これによって希望のラ
インが発見できなくても、すでにキャッシュ中にある同
じページの異なるラインを検索することが可能となる。
エントリがデータの入力された主記憶装置のページの実
アドレスおよび仮想アドレスの最上位ビット両者を含む
仮想アドレス・キャッシュを用いたコンピュータ・シス
テムである。キャッシュのパフォーマンスは所定のシー
ケンスに従って主記憶装置の同一ページからのラインを
エントリとして置くことで、ページごとのライン検索を
可能として改善したものである。これによって希望のラ
インが発見できなくても、すでにキャッシュ中にある同
じページの異なるラインを検索することが可能となる。
この場合、第2ラインの実アドレスが第1ラインのアド
レス形成に使用され、これによってアドレス変換処理が
省略できる。その後、希望データが主記憶装置から直接
フェッチされる。
レス形成に使用され、これによってアドレス変換処理が
省略できる。その後、希望データが主記憶装置から直接
フェッチされる。
D、実施例
第1図に2レベル・キャッシュを持つ従来のプロセッサ
・システム10のブロック図を示す。プロセッサCPU
14はL1キャッシュ13とL2キャッシュ12を介し
て主記憶装置(MS)11に接続されている。主記憶装
置11はさらにI10装置15に接続されている。L2
キャッシュ12はアレイ12aとコントロール部12b
とを含む。主記憶装置11とL2キャッシュ間には制御
パスおよびデータ・バスがある。CPU14がデータ要
求をする時は仮想アドレスを持っL1キャッシュ13ヘ
データ要求を行う。L1キャッシュ13では要求データ
の検索がなされる。データがL1キャッシュ13中に存
在するときはCPUに転送され処理が再開される。デー
タがL1キャッシュ13に無いときはL1キャッシュ1
3はL2キャッシュ12にデータ要求を行う。仮想アド
レスL2キャッシュ12においてデータ検索が実行され
る。データが見つかるとL1キャッシュ13に戻され、
ここからCPLI 14に送られる。L2キャッシュ中
にデータが無いときは主記憶装置11からのフェッチが
必要となる。主記憶装置11からのフェッチに際しては
L2キャッシュ12で使用した仮想アドレスの実アドレ
スへの変換が必要となる。変換処理は一般的に主記憶装
置からデータ・アクセスが実行される前に1つ、あるい
はそれ以上のテーブル検索を必要とする。
・システム10のブロック図を示す。プロセッサCPU
14はL1キャッシュ13とL2キャッシュ12を介し
て主記憶装置(MS)11に接続されている。主記憶装
置11はさらにI10装置15に接続されている。L2
キャッシュ12はアレイ12aとコントロール部12b
とを含む。主記憶装置11とL2キャッシュ間には制御
パスおよびデータ・バスがある。CPU14がデータ要
求をする時は仮想アドレスを持っL1キャッシュ13ヘ
データ要求を行う。L1キャッシュ13では要求データ
の検索がなされる。データがL1キャッシュ13中に存
在するときはCPUに転送され処理が再開される。デー
タがL1キャッシュ13に無いときはL1キャッシュ1
3はL2キャッシュ12にデータ要求を行う。仮想アド
レスL2キャッシュ12においてデータ検索が実行され
る。データが見つかるとL1キャッシュ13に戻され、
ここからCPLI 14に送られる。L2キャッシュ中
にデータが無いときは主記憶装置11からのフェッチが
必要となる。主記憶装置11からのフェッチに際しては
L2キャッシュ12で使用した仮想アドレスの実アドレ
スへの変換が必要となる。変換処理は一般的に主記憶装
置からデータ・アクセスが実行される前に1つ、あるい
はそれ以上のテーブル検索を必要とする。
第2図はプロセッサ14(CPU)に接続された第1レ
ベルL1キヤツシユ13と、これに対するサービスを実
行する1メガバイト(IMB )の第2レベル・キャッ
シュ上2に基づく本発明の動作を示す図である。L2キ
ャッシュ12は1キロバイト(IKB)の大きさを有し
、キャッシュ中のデータの各1キロブロツクに対応する
のは仮想アドレス21(0:29)および主記憶装置か
らのデータアドレスである実4KBページアドレス23
(18:35)の最上位ビットを含むディレクトリ20
のエントリとなる。
ベルL1キヤツシユ13と、これに対するサービスを実
行する1メガバイト(IMB )の第2レベル・キャッ
シュ上2に基づく本発明の動作を示す図である。L2キ
ャッシュ12は1キロバイト(IKB)の大きさを有し
、キャッシュ中のデータの各1キロブロツクに対応する
のは仮想アドレス21(0:29)および主記憶装置か
らのデータアドレスである実4KBページアドレス23
(18:35)の最上位ビットを含むディレクトリ20
のエントリとなる。
ディレクトリ20の1024個のエントリは256のア
ドレスのアレイ、および4セツト(A。
ドレスのアレイ、および4セツト(A。
B、C,D)のコングルエンド・クラスに整理される。
ディレクトリは仮想アドレスのビット30から37によ
ってアドレスされているので、どの仮想アドレスがディ
レクトリ中のどの列あるいはコングルエンド・クラスに
置かれているかを判別するのは容易である。仮想アドレ
ス領域の最初のIKBブロックの仮想アドレスは最初の
列あるいはコングルエンド・クラス(クラス0またはア
ドレスO)に配置されている。仮想アドレス領域の第2
のIKBブロックの仮想アドレスは第2コングルエンド
・クラスに配置される。同様に仮想アドレス領域の25
5番目のIKBブロックまでがコングルエンド・クラス
255まで配される。マツピングはその後ブロック25
6がコングルエンド・クラスOとなるように繰り返され
る。これを第3図に示す。
ってアドレスされているので、どの仮想アドレスがディ
レクトリ中のどの列あるいはコングルエンド・クラスに
置かれているかを判別するのは容易である。仮想アドレ
ス領域の最初のIKBブロックの仮想アドレスは最初の
列あるいはコングルエンド・クラス(クラス0またはア
ドレスO)に配置されている。仮想アドレス領域の第2
のIKBブロックの仮想アドレスは第2コングルエンド
・クラスに配置される。同様に仮想アドレス領域の25
5番目のIKBブロックまでがコングルエンド・クラス
255まで配される。マツピングはその後ブロック25
6がコングルエンド・クラスOとなるように繰り返され
る。これを第3図に示す。
アドレスが特定のコングルエンド・クラスに配分される
と、仮想アドレスはセットA、セットB5セットCおよ
びセットDの4つの場所のいずれかに置かれる。これは
このキャッシュが4つの関連セットからなることに基づ
く。コングルエンド・クラスの1つあるいはそれ以上が
空または無効であるとき、セットはそれらすべてが使用
可能となるまで予め定められた順序に満たされる。セッ
トがすべて満たされているとき、あるいは使用されてい
るときは最新の使用セットは追い出され(データは主記
憶装置に戻される)、仮想アドレスがセット中に置かれ
る。
と、仮想アドレスはセットA、セットB5セットCおよ
びセットDの4つの場所のいずれかに置かれる。これは
このキャッシュが4つの関連セットからなることに基づ
く。コングルエンド・クラスの1つあるいはそれ以上が
空または無効であるとき、セットはそれらすべてが使用
可能となるまで予め定められた順序に満たされる。セッ
トがすべて満たされているとき、あるいは使用されてい
るときは最新の使用セットは追い出され(データは主記
憶装置に戻される)、仮想アドレスがセット中に置かれ
る。
L1キャッシュ13がL2キャッシュ12の要求を生じ
させるときの通常のシーケンスはL2キャッシュ12の
ディレクトリ20のエントリ検索である。L2キャッシ
ュ・ディレクトリ20は48ビツト仮想アドレス中の3
0から37までのビットで第1アドレツシングによって
検索される。
させるときの通常のシーケンスはL2キャッシュ12の
ディレクトリ20のエントリ検索である。L2キャッシ
ュ・ディレクトリ20は48ビツト仮想アドレス中の3
0から37までのビットで第1アドレツシングによって
検索される。
アドレス・クラスの4つのセットが読み取られ、クラス
中の各セットの記憶仮想アドレスである3Oビツトが保
護ビットとともに比較される。一致があれば、所望デー
タはキャッシュ中に存在し、「ヒツト」信号がヒツト/
ミス・ロジック66から送られる。一致が無い場合は「
ミス」信号が送られ、L2キャッシュ12は主記憶装置
へのデータ要求を続行する。
中の各セットの記憶仮想アドレスである3Oビツトが保
護ビットとともに比較される。一致があれば、所望デー
タはキャッシュ中に存在し、「ヒツト」信号がヒツト/
ミス・ロジック66から送られる。一致が無い場合は「
ミス」信号が送られ、L2キャッシュ12は主記憶装置
へのデータ要求を続行する。
L2キャッシュ12の主記憶装置11へのデータ要求に
際しては、L2キャッシュ12でのアドレスに使用した
仮想アドレスをアドレス変換アルゴリズムを介して実ア
ドレスへ変換することが必要となる。このアルゴリズム
は、まず主記憶装置に対してページ・テーブル・エント
リに続くハツシュ・テーブル・エントリを要求する。ペ
ージ・フレーム・テーブルの要求の数はページ・テーブ
ル・エントリの連鎖が発生したかどうかに依存する。最
終的にデータが主記憶装置に存在するときは、所望のI
Kライン・データの要求が主記憶装置になされる。
際しては、L2キャッシュ12でのアドレスに使用した
仮想アドレスをアドレス変換アルゴリズムを介して実ア
ドレスへ変換することが必要となる。このアルゴリズム
は、まず主記憶装置に対してページ・テーブル・エント
リに続くハツシュ・テーブル・エントリを要求する。ペ
ージ・フレーム・テーブルの要求の数はページ・テーブ
ル・エントリの連鎖が発生したかどうかに依存する。最
終的にデータが主記憶装置に存在するときは、所望のI
Kライン・データの要求が主記憶装置になされる。
本発明の第1、第2L2キヤツシユ・ディレクトリ検索
方法および装置においては、同じ4にページからの他の
IKラインがL2キャッシュ12に存在するとき、主記
憶装置に対するハツシュ・テーブル・エントリおよびペ
ージ・フレーム・テーブル・エントリの要求を省略でき
る。L2キャッシュ12中の各エントリは主記憶装置1
1に対して有効な4にページの実アドレスを含んでいる
。従って、所望ラインがL2キャッシュ12中にある同
一ページの異なるラインであるときは、主記憶装置11
に対してハツシュ・テーブルおよびページ・フレーム・
テーブル・エントリの要求を発する必要がないのである
。これはL2キャッシュ・ディレクトリ20中に互いに
特定の関連を持つ実記憶の同一4にページからのライン
・エントリを置くことで達成される。
方法および装置においては、同じ4にページからの他の
IKラインがL2キャッシュ12に存在するとき、主記
憶装置に対するハツシュ・テーブル・エントリおよびペ
ージ・フレーム・テーブル・エントリの要求を省略でき
る。L2キャッシュ12中の各エントリは主記憶装置1
1に対して有効な4にページの実アドレスを含んでいる
。従って、所望ラインがL2キャッシュ12中にある同
一ページの異なるラインであるときは、主記憶装置11
に対してハツシュ・テーブルおよびページ・フレーム・
テーブル・エントリの要求を発する必要がないのである
。これはL2キャッシュ・ディレクトリ20中に互いに
特定の関連を持つ実記憶の同一4にページからのライン
・エントリを置くことで達成される。
この特定の関連とは、例えば検索される順番の列にコン
グルエンド・クラス中の同一の4にページからのIKラ
インを配置することである0例えば、所定ページの第1
1にラインは第1列21aに、ベージOの第21KBラ
インは第2列21bに、ベージOの第3ラインは第3列
21cに、べ一ジOの第4ラインは列21dに配置され
る。
グルエンド・クラス中の同一の4にページからのIKラ
インを配置することである0例えば、所定ページの第1
1にラインは第1列21aに、ベージOの第21KBラ
インは第2列21bに、ベージOの第3ラインは第3列
21cに、べ一ジOの第4ラインは列21dに配置され
る。
第4図は同一の4にページからのIKバイト・ラインが
いかにしてディレクトリのAセットに配置されるかを示
すディレクトリの1つのタイプの詳細を示したものであ
る。各セットには64(O〜63)ページがある。ペー
ジの4つのIKバイト・ラインは同時にデコード・ロジ
ック41〜44およびコンパレータ51〜54の出力へ
供給される。
いかにしてディレクトリのAセットに配置されるかを示
すディレクトリの1つのタイプの詳細を示したものであ
る。各セットには64(O〜63)ページがある。ペー
ジの4つのIKバイト・ラインは同時にデコード・ロジ
ック41〜44およびコンパレータ51〜54の出力へ
供給される。
例えば、ビット30〜35がすべてゼロのページゼロの
ライン110.210.310および410はデコード
・ロジック41〜44およびコンパレータ51〜54の
出力へ供給される。このディレクトリにおけるデータの
配置はディレクトリの他のセット(B、CおよびD)に
おいても同様である。第4図から、L2ディレクトリに
おいて所望のIKバイト・ラインの検索がされる際、デ
ィレクトリに存在するであろうデータの同じ4にバイト
・ページからの他のIKバイト・ラインがあるすべての
コングルエンド・クラスは同時に検索されることが分か
る。これらの検索対象となる他のコングルエンド・クラ
スは他の4にバイト・ページからのデータを含むもので
ある。しかし、同じ4にバイト・ページからの他のライ
ンがキャッシュ中に存在するときは、そのラインに関す
る情報はディレクトリ中において検索されるディレクト
リ位置の1つにのみ存在しうることとなる。仮想アドレ
スの36および37ビツトは検索対象となる第1ライン
・アドレスを決定する。残りの3つのコングルエンド・
クラスは同じ4にページからの他の可能なライン(第2
ライン)が配置される位置を示す。
ライン110.210.310および410はデコード
・ロジック41〜44およびコンパレータ51〜54の
出力へ供給される。このディレクトリにおけるデータの
配置はディレクトリの他のセット(B、CおよびD)に
おいても同様である。第4図から、L2ディレクトリに
おいて所望のIKバイト・ラインの検索がされる際、デ
ィレクトリに存在するであろうデータの同じ4にバイト
・ページからの他のIKバイト・ラインがあるすべての
コングルエンド・クラスは同時に検索されることが分か
る。これらの検索対象となる他のコングルエンド・クラ
スは他の4にバイト・ページからのデータを含むもので
ある。しかし、同じ4にバイト・ページからの他のライ
ンがキャッシュ中に存在するときは、そのラインに関す
る情報はディレクトリ中において検索されるディレクト
リ位置の1つにのみ存在しうることとなる。仮想アドレ
スの36および37ビツトは検索対象となる第1ライン
・アドレスを決定する。残りの3つのコングルエンド・
クラスは同じ4にページからの他の可能なライン(第2
ライン)が配置される位置を示す。
キャッシュ中に記憶された仮想アドレス・ビットはコン
パレータ51〜54のディレクトリ・アドレス・レジス
タ(DAR)中に記憶された仮想アドレス・ビット(0
:29)と比較される。もしこれら2つのビットのセッ
トが一致すれば、比較出力は活性化され、データの希望
のIKバイト・ラインがキャッシュ中に存在し、および
/またはデータの同一4にページからのIKラインがキ
ャッシュ中に存在することを示す。この情報は第2図に
示すヒツト/ミス・ロジック66に転送される。第1ク
ラスにおいてヒツトがあると「ヒツト第1クラス」ライ
ンが活性化される。「ヒツト第1クラス」の制動に必要
なロジックの詳細については第6図で示す。第6図から
、ヒツト・クラス0,1.2または3ラインが活性化さ
れ、対応アドレス・ビット(36および37)が活性化
されると、「ヒツト第1クラス」ラインが活性化される
ことが理解される。
パレータ51〜54のディレクトリ・アドレス・レジス
タ(DAR)中に記憶された仮想アドレス・ビット(0
:29)と比較される。もしこれら2つのビットのセッ
トが一致すれば、比較出力は活性化され、データの希望
のIKバイト・ラインがキャッシュ中に存在し、および
/またはデータの同一4にページからのIKラインがキ
ャッシュ中に存在することを示す。この情報は第2図に
示すヒツト/ミス・ロジック66に転送される。第1ク
ラスにおいてヒツトがあると「ヒツト第1クラス」ライ
ンが活性化される。「ヒツト第1クラス」の制動に必要
なロジックの詳細については第6図で示す。第6図から
、ヒツト・クラス0,1.2または3ラインが活性化さ
れ、対応アドレス・ビット(36および37)が活性化
されると、「ヒツト第1クラス」ラインが活性化される
ことが理解される。
もし、第1クラスに関してミスとなり、コンパレータ5
1〜54(第2クラス・ビット)関してヒツトとなった
ときは第2図に示す「ヒツト第2クラス」のラインが活
性化される。この「ヒツト第2クラス」の活性化に必要
なロジックについては第6図に詳細を示す。第2ライン
の実アドレスは第1のIKラインのアドレスの構成に使
用され、これによってハツシュ・テーブルおよびページ
・フレーム・テーブルのエントリのために主記憶装置に
おいて実行される2つあるいはそれ以上のアクセスが省
略できる。主記憶装置に対する唯一のアクセスは所望の
データのIKラインのために実行される。
1〜54(第2クラス・ビット)関してヒツトとなった
ときは第2図に示す「ヒツト第2クラス」のラインが活
性化される。この「ヒツト第2クラス」の活性化に必要
なロジックについては第6図に詳細を示す。第2ライン
の実アドレスは第1のIKラインのアドレスの構成に使
用され、これによってハツシュ・テーブルおよびページ
・フレーム・テーブルのエントリのために主記憶装置に
おいて実行される2つあるいはそれ以上のアクセスが省
略できる。主記憶装置に対する唯一のアクセスは所望の
データのIKラインのために実行される。
以下は本発明で適用されるフェッチ処理の詳細例である
。この例のハードウェアについては第2図で、タイミン
グ相関については第5図で理解できる。
。この例のハードウェアについては第2図で、タイミン
グ相関については第5図で理解できる。
ディレクトリ・アドレス・レジスタ(DAR)31およ
びキャッシュ・アドレス・レジスタ(CAR)33はロ
ー・レベルL1キャッシュの要求によって第1仮想アド
レスとともにロードされる。
びキャッシュ・アドレス・レジスタ(CAR)33はロ
ー・レベルL1キャッシュの要求によって第1仮想アド
レスとともにロードされる。
第1クラスの4つのセットのディレクトリ20中の仮想
アドレス・ビット(0:29’)および第2クラスの1
2セツトはDAFL31中の仮想アドレス・ビット(0
:29)とコンパレータ50〜65において比較される
。
アドレス・ビット(0:29’)および第2クラスの1
2セツトはDAFL31中の仮想アドレス・ビット(0
:29)とコンパレータ50〜65において比較される
。
もし、L2ディレクトリ比較・サイクル(第5図におけ
るクロック3)において、ミス(一致なし)が第1クラ
スにおいて発生し、ヒツト(一致あり)が第2クラスに
おいて発生した場合は、CARレジスタ33における第
1アドレスは第2りラス・アドレスに更新(例えばビッ
ト36.37が第1アドレスに更新)される。第2クラ
ス・アドレスのビット36.87は第7図の構成により
、以下の表に示すように決定される。
るクロック3)において、ミス(一致なし)が第1クラ
スにおいて発生し、ヒツト(一致あり)が第2クラスに
おいて発生した場合は、CARレジスタ33における第
1アドレスは第2りラス・アドレスに更新(例えばビッ
ト36.37が第1アドレスに更新)される。第2クラ
ス・アドレスのビット36.87は第7図の構成により
、以下の表に示すように決定される。
第1クラスからの2つのビット36.37は再使用のた
めに2つのビット・ラッチ68に保持される。クロック
4において、CAFtレジスタ33に関する制御ビット
は、CAR33が優先権を確認したときに線701:介
してDAR31にロードされる第2クラス・アドレスを
発生させる。上述のラッチに保持された2つの第1ビツ
ト36.37はCARレジスタ33に再ロードされる。
めに2つのビット・ラッチ68に保持される。クロック
4において、CAFtレジスタ33に関する制御ビット
は、CAR33が優先権を確認したときに線701:介
してDAR31にロードされる第2クラス・アドレスを
発生させる。上述のラッチに保持された2つの第1ビツ
ト36.37はCARレジスタ33に再ロードされる。
CARレジスタ33は主記憶装置11からL2キャッシ
ュ12ヘデータをロードするため使用される第1クラス
の仮想アドレスを有することとなる。
ュ12ヘデータをロードするため使用される第1クラス
の仮想アドレスを有することとなる。
DAR31の第2クラス・アドレスはディレクトリ20
のアドレスに使用される。ヒツト第1クラスおよびヒツ
ト第2クラスラインは除かれる。
のアドレスに使用される。ヒツト第1クラスおよびヒツ
ト第2クラスラインは除かれる。
クロック5において、ディレクトリからの実アドレス(
R,A)ビット(18〜35)がメモリ・アドレス・レ
ジスタ(MAR)71に置かれる。ビット(36〜43
)はCAR33からMAR71にロードされる。最初の
データ組がL2キャッシュ12のアレイ12aに到着す
ると、第1ページ・アドレスを含むCARは63回イン
クリメントされる。これはデータのIKバイト・ライン
がL2キャッシュ・アレイ12a中に読み取られること
を意味する。
R,A)ビット(18〜35)がメモリ・アドレス・レ
ジスタ(MAR)71に置かれる。ビット(36〜43
)はCAR33からMAR71にロードされる。最初の
データ組がL2キャッシュ12のアレイ12aに到着す
ると、第1ページ・アドレスを含むCARは63回イン
クリメントされる。これはデータのIKバイト・ライン
がL2キャッシュ・アレイ12a中に読み取られること
を意味する。
本発明は他のキャッシュ構成(任意のライン・サイズ、
仮想アドレス)においても適用できる。
仮想アドレス)においても適用できる。
また、主記憶装置のページ・サイズにも制限されるもの
ではない。第1および第2ラインの検索は同時でなく連
続的でもよいが同時実行のほうがキャッシュ・パフォー
マンスの向上に役立つ。
ではない。第1および第2ラインの検索は同時でなく連
続的でもよいが同時実行のほうがキャッシュ・パフォー
マンスの向上に役立つ。
E0発明の効果
以上のように本発明によればTLBe使用せずにキャッ
シュ効率を向上させることが可能となる。
シュ効率を向上させることが可能となる。
第1図は第2レベル(L2)キャッシュを持つ一般的な
コンピュータのブロック図、第2図は第1図のシステム
において第2レベル(L2)キャッシュ・ディレクトリ
を採用した本発明の構成を示すブロック図、第3図はL
2キャッシュのアドレスとして使用される仮想アドレス
・ビットをL2キヤツシユ・ディレクトリに配置する方
法を示す図、第4図は同一の4にバイト・ページからの
IKバイト・ラインのキャッシュ・ディレクトリでの処
理態様を示す図、第5図はフェッチ処理における第1/
第2検索実行のタイミングを示す図、第6図は第2図の
ヒツト/ミス・ロジックの論理図、第7図は第6図の第
2アドレス部の論理図である。 11・・・・主記憶装置、12・・・・L2キャッシュ
、13・・・・L1キャッシュ、14・・・・CPU、
20・・・・L2キャッシュ・ディレクトリ、31・・
・・ディレクトリ・アドレス・レジスタ(DAR)、3
3・・・・キャッシュ・アドレス・レジスタ(CAR)
、66・・・・ヒツト/ミス・ロジック、71・・・・
メモリ・アドレスメレジスタ。
コンピュータのブロック図、第2図は第1図のシステム
において第2レベル(L2)キャッシュ・ディレクトリ
を採用した本発明の構成を示すブロック図、第3図はL
2キャッシュのアドレスとして使用される仮想アドレス
・ビットをL2キヤツシユ・ディレクトリに配置する方
法を示す図、第4図は同一の4にバイト・ページからの
IKバイト・ラインのキャッシュ・ディレクトリでの処
理態様を示す図、第5図はフェッチ処理における第1/
第2検索実行のタイミングを示す図、第6図は第2図の
ヒツト/ミス・ロジックの論理図、第7図は第6図の第
2アドレス部の論理図である。 11・・・・主記憶装置、12・・・・L2キャッシュ
、13・・・・L1キャッシュ、14・・・・CPU、
20・・・・L2キャッシュ・ディレクトリ、31・・
・・ディレクトリ・アドレス・レジスタ(DAR)、3
3・・・・キャッシュ・アドレス・レジスタ(CAR)
、66・・・・ヒツト/ミス・ロジック、71・・・・
メモリ・アドレスメレジスタ。
Claims (8)
- (1)キャッシュ・ディレクトリ中の各エントリがデー
タを取り出す主記憶装置中のページの実アドレスおよび
仮想アドレス最上位ビットを含む仮想アドレス・キャッ
シュを使用するコンピュータ装置におけるキャッシュ・
アクセス方法であり、 (イ)ページごとのライン検索を可能とする所定順序に
従つてキャッシュのディレクトリ中に主記憶装置の同一
ページからライン・エントリを配置し、 (ロ)同一ページからの所望ラインおよび第2ライン両
者のディレクトリ検索を行ない、所望ラインがキャッシ
ュ中に存在せず、同一ページからのラインに一致がある
場合、主記憶装置から直接データをフエツチするに際し
てアドレス変換をすることなく第2ラインの実アドレス
を使用することを特徴とするキャッシュ検索方法。 - (2)同一ページの上記ラインはディレクトリの連続的
配列に従つて配置されていることを特徴とする請求項1
のキャッシュ検索方法。 - (3)キャッシュ・ディレクトリ中の各エントリがデー
タを取り出す主記憶装置中のページの実アドレスおよび
仮想アドレス最上位ビットを含む仮想アドレス・キャッ
シュを使用するコンピュータ装置におけるキャッシュ検
索方法であり、 (イ)同時に検索されるキャッシュのディレクトリ中に
連続的に主記憶装置の同一ページからのライン・エント
リを配置し、 (ロ)同一ページからの所望ラインおよび第2ライン両
者のディレクトリ検索を行ない、所望ラインがキャッシ
ュ中に存在せず、同一ページからのラインに一致がある
場合、主記憶装置から直接データをフエツチするに際し
てアドレス変換をすることなく第2ラインの実アドレス
を使用することを特徴とするキャッシュ検索方法。 - (4)プロセッサ、 主記憶装置、 仮想アドレスの最上位ビット、実記憶装置中からのデー
タ読み取り用の実ページ・アドレスを持つディレクトリ
を有する仮想アドレス・キャッシュ、 および仮想アドレスを実アドレスに変換する手段とを有
し、 (イ)上記キャッシュ・ディレクトリは記憶装置の同一
ページからのライン・エントリをページごとのライン検
索可能な順序に有し、さらに、 (ロ)同一ページからの所望ラインと第2ライン両者の
キャッシュ・ディレクトリ検索を実行する手段と、 (ハ)キャッシュ・ディレクトリ・データを使用して所
望ラインにおける一致の識別を実行する手段と、 (ニ)アドレス変換を行うことなく第2ラインの実アド
レスを使用して主記憶装置から直接所望データをフエツ
チする第2ラインの一致を識別する手段と、 を有することを特徴とするキャッシュ検索装置。 - (5)プロセッサ、 主記憶装置、 仮想アドレスの最上位ビット、実記憶装置中からのデー
タ読み取り用の実ページ・アドレスを持つディレクトリ
を有する仮想アドレス・キャッシュ、 および仮想アドレスを実アドレスに変換する手段とを有
し、 (イ)上記キャッシュ・ディレクトリは記憶装置の同一
ページからのライン・エントリを同時にライン検索可能
な順序に有し、さらに、 (ロ)同一ページからの所望ラインと第2ライン両者の
キャッシュ・ディレクトリ検索を実行する手段と、 (ハ)キャッシュ・ディレクトリ・データを使用して所
望ラインにおける一致の識別を実行する手段と、 (ニ)アドレス変換を行うことなく第2ラインの実アド
レスを使用して主記憶装置から直接所望データをフエツ
チする第2ラインの一致を識別する手段と、 を有することを特徴とするキャッシュ検索装置。 - (6)同一ページからのラインは連続的配列に従つて配
置されていることを特徴とする請求項5のキャッシュ検
索装置。 - (7)上記キャッシュは受領アドレス・ビットをディレ
クトリ中の仮想アドレス・ビットと比較する比較手段を
有し、第2ラインとの一致があるときに主記憶装置のア
ドレスとして記憶装置の同一ページからの実アドレスを
第2ラインからの仮想アドレス・ビットともに使用する
ように構成されていることを特徴とする請求項6のキャ
ッシュ検索装置。 - (8)上記キャッシュはディレクトリ・アドレス・レジ
スタ(DAR)、キャッシュ・アドレス・レジスタ(C
AR)、メモリ・アドレス・レジスタ(MAR)および
ロジック手段とを含み、上記受領ビットは上記DARに
保持され、上記比較手段によつてディレクトリ内の比較
が実行され、DAR中の第2ラインに関して一致があつ
た場合に、CARおよびMARビットが該第2ライン・
アドレスに置き換えられるように構成されていることを
特徴とする請求項7のキャッシュ検索装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US391763 | 1989-08-09 | ||
| US07/391,763 US5077826A (en) | 1989-08-09 | 1989-08-09 | Cache performance in an information handling system employing page searching |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0371355A true JPH0371355A (ja) | 1991-03-27 |
| JPH0529942B2 JPH0529942B2 (ja) | 1993-05-06 |
Family
ID=23547835
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2205332A Granted JPH0371355A (ja) | 1989-08-09 | 1990-08-03 | キヤツシユ検索装置および検索方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5077826A (ja) |
| EP (1) | EP0412949A3 (ja) |
| JP (1) | JPH0371355A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008268386A (ja) * | 2007-04-18 | 2008-11-06 | Tokyo Electric Power Co Inc:The | 立体模型 |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02205953A (ja) * | 1989-02-03 | 1990-08-15 | Nec Corp | アドレス変換装置 |
| US5249282A (en) * | 1990-11-21 | 1993-09-28 | Benchmarq Microelectronics, Inc. | Integrated cache memory system with primary and secondary cache memories |
| US5479630A (en) * | 1991-04-03 | 1995-12-26 | Silicon Graphics Inc. | Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same |
| GB9205551D0 (en) * | 1992-03-13 | 1992-04-29 | Inmos Ltd | Cache memory |
| US5446854A (en) * | 1993-10-20 | 1995-08-29 | Sun Microsystems, Inc. | Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes |
| US5721863A (en) * | 1996-01-29 | 1998-02-24 | International Business Machines Corporation | Method and structure for accessing semi-associative cache memory using multiple memories to store different components of the address |
| US5781922A (en) * | 1996-11-19 | 1998-07-14 | International Business Machines Corporation | Page boundary caches |
| US6279082B1 (en) * | 1998-10-14 | 2001-08-21 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient use of cache to improve access to memory of page type |
| US7257279B2 (en) * | 2004-09-20 | 2007-08-14 | 3M Innovative Properties Company | Systems and methods for biosensing and microresonator sensors for same |
| US11561906B2 (en) * | 2017-12-12 | 2023-01-24 | Advanced Micro Devices, Inc. | Rinsing cache lines from a common memory page to memory |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4441155A (en) * | 1981-11-23 | 1984-04-03 | International Business Machines Corporation | Page controlled cache directory addressing |
| JPS5898893A (ja) * | 1981-12-09 | 1983-06-11 | Toshiba Corp | 情報処理装置 |
| US4612612A (en) * | 1983-08-30 | 1986-09-16 | Amdahl Corporation | Virtually addressed cache |
| US4577293A (en) * | 1984-06-01 | 1986-03-18 | International Business Machines Corporation | Distributed, on-chip cache |
| US4985829A (en) * | 1984-07-31 | 1991-01-15 | Texas Instruments Incorporated | Cache hierarchy design for use in a memory management unit |
| US4991081A (en) * | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
| US4737909A (en) * | 1985-04-01 | 1988-04-12 | National Semiconductor Corp. | Cache memory address apparatus |
| US4785398A (en) * | 1985-12-19 | 1988-11-15 | Honeywell Bull Inc. | Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page |
| US4953073A (en) * | 1986-02-06 | 1990-08-28 | Mips Computer Systems, Inc. | Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories |
| US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
| JPH07120312B2 (ja) * | 1987-10-07 | 1995-12-20 | 株式会社日立製作所 | バッファメモリ制御装置 |
-
1989
- 1989-08-09 US US07/391,763 patent/US5077826A/en not_active Expired - Fee Related
-
1990
- 1990-07-04 EP EP19900850262 patent/EP0412949A3/en not_active Withdrawn
- 1990-08-03 JP JP2205332A patent/JPH0371355A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008268386A (ja) * | 2007-04-18 | 2008-11-06 | Tokyo Electric Power Co Inc:The | 立体模型 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5077826A (en) | 1991-12-31 |
| EP0412949A2 (en) | 1991-02-13 |
| JPH0529942B2 (ja) | 1993-05-06 |
| EP0412949A3 (en) | 1992-02-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4785398A (en) | Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page | |
| EP0036110B1 (en) | Cache addressing mechanism | |
| US5956756A (en) | Virtual address to physical address translation of pages with unknown and variable sizes | |
| JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
| US5426750A (en) | Translation lookaside buffer apparatus and method with input/output entries, page table entries and page table pointers | |
| US5475827A (en) | Dynamic look-aside table for multiple size pages | |
| JP3666689B2 (ja) | 仮想アドレス変換方法 | |
| JP2014078248A (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
| JPH02189659A (ja) | 仮想記憶動的アドレス変換システム | |
| JP7062695B2 (ja) | 論理ディレクトリを使用したキャッシュ構造 | |
| US6901540B1 (en) | TLB parity error recovery | |
| US5539892A (en) | Address translation lookaside buffer replacement apparatus and method with user override | |
| JPH0371355A (ja) | キヤツシユ検索装置および検索方法 | |
| US8015361B2 (en) | Memory-centric page table walker | |
| US5479629A (en) | Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address | |
| JPH0695972A (ja) | ディジタルコンピュータシステム | |
| CN101326499A (zh) | 更新多级翻译旁视缓冲器(tlb)字段 | |
| US7171540B1 (en) | Object-addressed memory hierarchy that facilitates accessing objects stored outside of main memory | |
| JPH03211643A (ja) | 並行例外検査及び更新バイパスを有する変換索引バッファ | |
| US20030149858A1 (en) | Object addressed memory hierarchy | |
| JPH035851A (ja) | バッファ記憶装置 | |
| JPS623354A (ja) | キヤツシユメモリ・アクセス方式 | |
| JP2507785B2 (ja) | ペ―ジテ―ブルエントリ無効化装置 | |
| JPS6324337A (ja) | キャッシュ・メモリ管理方式 | |
| JPH02113355A (ja) | キャッシュメモリ |