JPH03194632A - 変換予見にもとづくキャッシュアクセス - Google Patents
変換予見にもとづくキャッシュアクセスInfo
- Publication number
- JPH03194632A JPH03194632A JP2251670A JP25167090A JPH03194632A JP H03194632 A JPH03194632 A JP H03194632A JP 2251670 A JP2251670 A JP 2251670A JP 25167090 A JP25167090 A JP 25167090A JP H03194632 A JPH03194632 A JP H03194632A
- Authority
- JP
- Japan
- Prior art keywords
- address
- real address
- real
- predicted
- cache memory
- 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
- 238000013519 translation Methods 0.000 title claims description 54
- 230000015654 memory Effects 0.000 claims abstract description 118
- 239000000872 buffer Substances 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims description 23
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 9
- 102100041023 Coronin-2A Human genes 0.000 description 4
- 101000748858 Homo sapiens Coronin-2A Proteins 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 108010063678 Indole-3-Glycerol-Phosphate Synthase Proteins 0.000 description 1
- GVBNSPFBYXGREE-UHFFFAOYSA-N Visnadine Natural products C1=CC(=O)OC2=C1C=CC1=C2C(OC(C)=O)C(OC(=O)C(C)CC)C(C)(C)O1 GVBNSPFBYXGREE-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- AHLBNYSZXLDEJQ-FWEHEUNISA-N orlistat Chemical compound CCCCCCCCCCC[C@H](OC(=O)[C@H](CC(C)C)NC=O)C[C@@H]1OC(=O)[C@H]1CCCCCC AHLBNYSZXLDEJQ-FWEHEUNISA-N 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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/1054—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 physically addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、ディジタルコンピュータシステムのキャッ
シュメモリからの情報のアクセス方式における改良に関
する。
シュメモリからの情報のアクセス方式における改良に関
する。
ディジタルコンピュータのキャッシュメモリアクセスシ
ステムは、通常、変換バッファ、キャッシュディレクト
リおよびキャッシュメモリを含んでいる。変換バッファ
は、そのメモリ内に含まれるデータの論理アドレス(仮
想アドレスともいう)と組み合わされた全部の物理アド
レス(実アドレスともいう)のリストを含んでいる。コ
ンピュータがキャッシュからデータを要求すると、コン
ピュータはそのキャッシュ変換バッファに論理アドレス
を送り、その後変換バッファはその論理アドレスをキャ
ッシュディレクトリの論理アドレスのリストと比較する
。変換バッファが一致を確認すると、変換バッファはそ
の論理アドレスに対応する物理アドレスをディレクトリ
およびキャッシュメモリに送る。キャッシュディレクト
リは、キャッシュメモリ内に現在あるデータバイトの全
部のライン(例えば、■ライン当たり 128バイトに
分けられている2にのライン)およびそれらの関係する
実アドレスのリストを含んでいる。ディレクトリは実ア
ドレスを受け取り、命令によって要求されたそのデータ
がキャッシュ内に現在あるかどうかを判断する。データ
がキャッシュ内になければ、キャッシュアクセスシステ
ムは直接にはキャッシュにアクセスせず、要求されたデ
ータはこの発明の範囲外である別の独立した機構によっ
て検索される。データがキャッシュ内にあれば、キャッ
シュメモリはそのデータを実アドレスから検索し、デー
タを要求しているコンピュータシステムの適切な部分に
送る。
ステムは、通常、変換バッファ、キャッシュディレクト
リおよびキャッシュメモリを含んでいる。変換バッファ
は、そのメモリ内に含まれるデータの論理アドレス(仮
想アドレスともいう)と組み合わされた全部の物理アド
レス(実アドレスともいう)のリストを含んでいる。コ
ンピュータがキャッシュからデータを要求すると、コン
ピュータはそのキャッシュ変換バッファに論理アドレス
を送り、その後変換バッファはその論理アドレスをキャ
ッシュディレクトリの論理アドレスのリストと比較する
。変換バッファが一致を確認すると、変換バッファはそ
の論理アドレスに対応する物理アドレスをディレクトリ
およびキャッシュメモリに送る。キャッシュディレクト
リは、キャッシュメモリ内に現在あるデータバイトの全
部のライン(例えば、■ライン当たり 128バイトに
分けられている2にのライン)およびそれらの関係する
実アドレスのリストを含んでいる。ディレクトリは実ア
ドレスを受け取り、命令によって要求されたそのデータ
がキャッシュ内に現在あるかどうかを判断する。データ
がキャッシュ内になければ、キャッシュアクセスシステ
ムは直接にはキャッシュにアクセスせず、要求されたデ
ータはこの発明の範囲外である別の独立した機構によっ
て検索される。データがキャッシュ内にあれば、キャッ
シュメモリはそのデータを実アドレスから検索し、デー
タを要求しているコンピュータシステムの適切な部分に
送る。
コンピュータシステムが論理アドレスをキャッシュアク
セスシステムに送るためには、初めに、論理アドレスを
生成し、その生成アドレスがいつ有効であるかを判断し
なければならない。論理アドレスは、コンピュータシス
テムからの命令が解読され、それが引き続いて、データ
および論理アドレス生成を要求する時に生成される。論
理アドレス生成は、要求データのアドレスを持つ解読さ
れた命令の部分を受け取り、対応する論理アドレスを生
成するキャッシュアクセスシステムによって行われる。
セスシステムに送るためには、初めに、論理アドレスを
生成し、その生成アドレスがいつ有効であるかを判断し
なければならない。論理アドレスは、コンピュータシス
テムからの命令が解読され、それが引き続いて、データ
および論理アドレス生成を要求する時に生成される。論
理アドレス生成は、要求データのアドレスを持つ解読さ
れた命令の部分を受け取り、対応する論理アドレスを生
成するキャッシュアクセスシステムによって行われる。
アドレスの有効性のタイミング、従ってキャッシュメモ
リアクセスシステムの速度は、パイプライン構造として
知られる一連のコンピュータシステムのマシンサイクル
によって決まる。
リアクセスシステムの速度は、パイプライン構造として
知られる一連のコンピュータシステムのマシンサイクル
によって決まる。
このようなサイクルは、様々な命令に対する共通段がデ
ィジタルコンピュータの各種部分をアイドル状態にさせ
ることなく迅速に完了できるように、ディジタルコンピ
ュータのオペレーションを分割する。キャッシュメモリ
アクセスシステムの通常のパイプライン構造は、命令解
読サイクル、アドレス生成サイクル、キャッシュアクセ
スサイクル、実行サイクルという順になっている。こう
したサイクルはキャッシュメモリアクセスシステムのオ
ペレーションを分割するのに役立つ。第2図は、特にこ
の発明で用いている一般的なパイプライン構造を示す(
また、各段で実行される主な動作を要約しである)。
ィジタルコンピュータの各種部分をアイドル状態にさせ
ることなく迅速に完了できるように、ディジタルコンピ
ュータのオペレーションを分割する。キャッシュメモリ
アクセスシステムの通常のパイプライン構造は、命令解
読サイクル、アドレス生成サイクル、キャッシュアクセ
スサイクル、実行サイクルという順になっている。こう
したサイクルはキャッシュメモリアクセスシステムのオ
ペレーションを分割するのに役立つ。第2図は、特にこ
の発明で用いている一般的なパイプライン構造を示す(
また、各段で実行される主な動作を要約しである)。
キャッシュアクセスシステムの速度は、2通りの方法で
速めることができる。第1に、アドレス生成サイクルは
論理アドレスの生成を速めることによって短縮すること
ができる。アドレス生成は、通常、加算器によって行わ
れるので、これは、より高速の加算器を実施することを
意味する。しかし、これは、キャッシュのすべてのアク
セス方法にとって同一のハードウェア上の解決であり、
いずれのシステムでも実施できる。加算器が高速であっ
ても、アドレス要求が増えるにつれて増す加算器に関係
した遅延が必ずある。第2に、キャッシュアクセスのマ
シンサイクルは、ディレクトリが特定のデータバイトの
アドレスを発見し、そのバイトが完全にキャッシュ内に
あるかどうかを判断する前に行わなければならない比較
回数を減らすことによって短縮できる。これは、一般に
、メモリのキャッシュサイズが拡大するたびに、より大
きく複雑な論理回路を必要としている。論理回路が大き
くなればなるほど、そして、設計が複雑になればなるほ
ど、システムの設計時間は長くかかる。
速めることができる。第1に、アドレス生成サイクルは
論理アドレスの生成を速めることによって短縮すること
ができる。アドレス生成は、通常、加算器によって行わ
れるので、これは、より高速の加算器を実施することを
意味する。しかし、これは、キャッシュのすべてのアク
セス方法にとって同一のハードウェア上の解決であり、
いずれのシステムでも実施できる。加算器が高速であっ
ても、アドレス要求が増えるにつれて増す加算器に関係
した遅延が必ずある。第2に、キャッシュアクセスのマ
シンサイクルは、ディレクトリが特定のデータバイトの
アドレスを発見し、そのバイトが完全にキャッシュ内に
あるかどうかを判断する前に行わなければならない比較
回数を減らすことによって短縮できる。これは、一般に
、メモリのキャッシュサイズが拡大するたびに、より大
きく複雑な論理回路を必要としている。論理回路が大き
くなればなるほど、そして、設計が複雑になればなるほ
ど、システムの設計時間は長くかかる。
キャッシュメモリの速度を上げるための先行技術の試み
は、キャッシュメモリアクセスシステムがセットアソシ
エイティブという概念にもとづいて作動できるという事
実に頼っている。すなわち、キャッシュメモリおよびデ
ィレクトリは、複数の組またはコングルエンスフラスに
分割される。例えば、256にバイトのキャッシュメモ
リは、それぞれが128バイトの4ラインを含む512
のコングルエンスフラスに分割できる。その後、キャッ
シュメモリは、■コングルエンスフラスのすべての4ラ
インを同時にアドレス指定し、そのコングルエンスフラ
スから選択されたラインが正しいものであるかどうかを
順次判断することによってアクセスされる。この方法は
、キャッシュディレクトリ(つまり大きな組)の全部の
アドレスを探索する従来の方法に比べ、必要な比較回数
が少なくなるので、高速になる。■ライン128バイト
の2にのラインを比較する代わりに、そのディレクトリ
は5】2ラインを比較するだけである。
は、キャッシュメモリアクセスシステムがセットアソシ
エイティブという概念にもとづいて作動できるという事
実に頼っている。すなわち、キャッシュメモリおよびデ
ィレクトリは、複数の組またはコングルエンスフラスに
分割される。例えば、256にバイトのキャッシュメモ
リは、それぞれが128バイトの4ラインを含む512
のコングルエンスフラスに分割できる。その後、キャッ
シュメモリは、■コングルエンスフラスのすべての4ラ
インを同時にアドレス指定し、そのコングルエンスフラ
スから選択されたラインが正しいものであるかどうかを
順次判断することによってアクセスされる。この方法は
、キャッシュディレクトリ(つまり大きな組)の全部の
アドレスを探索する従来の方法に比べ、必要な比較回数
が少なくなるので、高速になる。■ライン128バイト
の2にのラインを比較する代わりに、そのディレクトリ
は5】2ラインを比較するだけである。
上記の方法の問題は、この方法が、キャッシュアクセス
システムによって生成され、メモリにアクセスするため
の変換バッファに送られる論理アドレスにもとづいてい
ることである。これは、同一の物理アドレスに対して2
つの論理アドレスが割り当てられることが可能なので問
題となる。これはシノニムの問題と呼ばれる。従って、
セットアソシエイティブ方式は、論理アドレスを使用す
る以上、(命令によって要求されたデータとは異なるデ
ータにアクセスする)潜在的なエラーを含んでいる。こ
の潜在的なエラーは検査しなければならない。検査によ
ってエラーが発見されると、その解決法は正しいアドレ
スのメモリに再アクセスすることである。選択が十分な
回数圧しい(正しくない場合の“ミス”に対して“ヒツ
ト″である)としても、無駄な時間が多数の命令に対し
て均分にされ、この問題は依然として論理アドレス生成
の性質上存在する。さらに、この問題のために検査する
ための論理は、キャッシュメモリが大きくなるにつれて
、より大きくなり、その機能を果たすのにかかる時間も
長くなる。ディレクトリおよび論理アドレスに関するヒ
ツト/ミス率を高めることは、キャッシュメモリアクセ
スシステムの速度を増すが、キャッシュアクセスシステ
ムに関する設計を単純にすることには役立たない。
システムによって生成され、メモリにアクセスするため
の変換バッファに送られる論理アドレスにもとづいてい
ることである。これは、同一の物理アドレスに対して2
つの論理アドレスが割り当てられることが可能なので問
題となる。これはシノニムの問題と呼ばれる。従って、
セットアソシエイティブ方式は、論理アドレスを使用す
る以上、(命令によって要求されたデータとは異なるデ
ータにアクセスする)潜在的なエラーを含んでいる。こ
の潜在的なエラーは検査しなければならない。検査によ
ってエラーが発見されると、その解決法は正しいアドレ
スのメモリに再アクセスすることである。選択が十分な
回数圧しい(正しくない場合の“ミス”に対して“ヒツ
ト″である)としても、無駄な時間が多数の命令に対し
て均分にされ、この問題は依然として論理アドレス生成
の性質上存在する。さらに、この問題のために検査する
ための論理は、キャッシュメモリが大きくなるにつれて
、より大きくなり、その機能を果たすのにかかる時間も
長くなる。ディレクトリおよび論理アドレスに関するヒ
ツト/ミス率を高めることは、キャッシュメモリアクセ
スシステムの速度を増すが、キャッシュアクセスシステ
ムに関する設計を単純にすることには役立たない。
その問題を例示するキャッシュメモリにアクセスする先
行技術の方法は、1つのコングルエンスフラス内にライ
ンの選択が、そのコングルエンスフラスから使用された
最後のラインにもとづいている時間である。この選択は
、コングルエンスフラスから使用された最後のラインが
やはりそこにデータバイトを持っている最も確実性の高
いラインであるという(すぐれた推n1ではあるが)推
測にすぎない。この推測はその時間の相当部分歪しいが
、推測はやはりキャッシュアクセスシステムのアドレス
生成部分からの論理(仮想)アドレスにもとづいて行わ
れる。このことは、この技法が、2つの論理アドレスが
同一の物理アドレスに関係し得る(シノニムの問題)と
いう事実に関するエラーを排除できないことを意味する
。その検査論理はやはり、このエラーのために、キャッ
シュメモリが大きくなるたびに拡大せざるをえない。こ
のシノニムの問題を解決する他の先行技術の方法は、潜
在的なシノニムが生じた場合、潜在的なアドレスにフラ
グを立て、そのアドレスを格納することを中心としてい
る。システムはその後、物理アドレスを一度検索するだ
けである。この手法は、シノニムの問題を避けているだ
けで、解決してはおらず、依然としてキャッシュメモリ
が大きくなるごとに拡大しなければならない論理を必要
とする。
行技術の方法は、1つのコングルエンスフラス内にライ
ンの選択が、そのコングルエンスフラスから使用された
最後のラインにもとづいている時間である。この選択は
、コングルエンスフラスから使用された最後のラインが
やはりそこにデータバイトを持っている最も確実性の高
いラインであるという(すぐれた推n1ではあるが)推
測にすぎない。この推測はその時間の相当部分歪しいが
、推測はやはりキャッシュアクセスシステムのアドレス
生成部分からの論理(仮想)アドレスにもとづいて行わ
れる。このことは、この技法が、2つの論理アドレスが
同一の物理アドレスに関係し得る(シノニムの問題)と
いう事実に関するエラーを排除できないことを意味する
。その検査論理はやはり、このエラーのために、キャッ
シュメモリが大きくなるたびに拡大せざるをえない。こ
のシノニムの問題を解決する他の先行技術の方法は、潜
在的なシノニムが生じた場合、潜在的なアドレスにフラ
グを立て、そのアドレスを格納することを中心としてい
る。システムはその後、物理アドレスを一度検索するだ
けである。この手法は、シノニムの問題を避けているだ
けで、解決してはおらず、依然としてキャッシュメモリ
が大きくなるごとに拡大しなければならない論理を必要
とする。
この発明の目的は、アドレスにアクセスできる速度を増
すキャッシュメモリアクセスシステムを提供することに
ある。
すキャッシュメモリアクセスシステムを提供することに
ある。
この発明の第2の目的は、キャッシュメモリに関係した
コンピュータのマシンサイクルを短縮することによって
、アドレスにアクセスできる速度を増すキャッシュメモ
リアクセスシステムを提供することにある。
コンピュータのマシンサイクルを短縮することによって
、アドレスにアクセスできる速度を増すキャッシュメモ
リアクセスシステムを提供することにある。
この発明の第3の目的は、セットアソシエイティブキャ
ッシュメモリに関係したシノニムの問題を避けるキャッ
シュメモリアクセスシステムを提供することにある。
ッシュメモリに関係したシノニムの問題を避けるキャッ
シュメモリアクセスシステムを提供することにある。
この発明の第4の目的は、命令に応答してアクセスされ
たアドレスがその命令によって選択されるアドレスの一
部のみにもとづいて予測される、キャッシュメモリアク
セスシステムを提供することにある。
たアドレスがその命令によって選択されるアドレスの一
部のみにもとづいて予測される、キャッシュメモリアク
セスシステムを提供することにある。
この発明の第5の目的は、予測されたアドレスが迅速に
かつ低水準の間違った予測によって生成される、キャッ
シュメモリアクセスシステムを提供することにある。
かつ低水準の間違った予測によって生成される、キャッ
シュメモリアクセスシステムを提供することにある。
この発明の第6の目的は、予測された実アドレスが、キ
ャッシュメモリがその予測された実アドレスに関係した
データを検索している間に検査される、キャッシュメモ
リアクセスシステムを提供することにある。
ャッシュメモリがその予測された実アドレスに関係した
データを検索している間に検査される、キャッシュメモ
リアクセスシステムを提供することにある。
この発明の第7の目的は、予測された実アドレスの検査
が、次に正確な実アドレスの表にアクセスするために使
用される仮想アドレスにもとづいている、キャッシュメ
モリアクセスシステムを提供することにある。
が、次に正確な実アドレスの表にアクセスするために使
用される仮想アドレスにもとづいている、キャッシュメ
モリアクセスシステムを提供することにある。
この発明の第8の目的は、予測された実アドレスの出所
が間違った予測実アドレスの頻度を最小限にするために
更新される、キャッシュメモリアクセスシステムを提供
することにある。
が間違った予測実アドレスの頻度を最小限にするために
更新される、キャッシュメモリアクセスシステムを提供
することにある。
この発明は、ハードウェアの改良とは関係なく、アドレ
ス生成マシンサイクルを短縮し、キャッシュアクセスマ
シンサイクルを短縮しながら論理アドレス指定のシノニ
ムの間違を避けるキャッシュアクセスシステムを実施す
るものである。この発明は、論理アドレスの生成とは無
関係に実アドレスがいずれになるかを予測するという概
念にもとづいている。これにより、キャッシュメモリは
、仮想アドレスが生成させるのを待ち、その仮想アドレ
スを実アドレスを変換するよりも高速に情報を検索する
ことができる。これは、第1に、アト4レス生成の加算
器がバイパスされるので遅延を生じず、変換バッファお
よびディレクトリもバイパスされるので遅延を生じない
という2点で高速になる。
ス生成マシンサイクルを短縮し、キャッシュアクセスマ
シンサイクルを短縮しながら論理アドレス指定のシノニ
ムの間違を避けるキャッシュアクセスシステムを実施す
るものである。この発明は、論理アドレスの生成とは無
関係に実アドレスがいずれになるかを予測するという概
念にもとづいている。これにより、キャッシュメモリは
、仮想アドレスが生成させるのを待ち、その仮想アドレ
スを実アドレスを変換するよりも高速に情報を検索する
ことができる。これは、第1に、アト4レス生成の加算
器がバイパスされるので遅延を生じず、変換バッファお
よびディレクトリもバイパスされるので遅延を生じない
という2点で高速になる。
実アドレスの予測は、たとえ極めて良好なものであって
も、予測にすぎないので、検査を必要とする。この検査
は、キャッシュメモリの予測アドレスからのデータの検
索と平行して行われる。検査経路は、加算器、変換バッ
ファおよびディレクトリに関係した機能を実行するが、
これらの機能はキャッシュアクセスと平行して実行され
るので、予測アドレスが正しければディレクトリ検索を
遅らせることはない。予測アドレスが正しくない場合、
キャッシュは再びアクセスされ、■マシンサイクルが無
駄になる。このキャッシュの再アクセスは、予測実アド
レスを検査するために以前のマシンサイクルで正しいア
ドレスがすでに生成されているので、2の余分なマシン
サイクル(正しいアドレスを生成するためのサイクルと
キャッシュメモリを再アクセスするためのサイクル)を
必要とすることはない。さらに、キャッシュが1マシン
サイクルを無駄にしなければならないとしても、こうし
た無駄なサイクルの発生は、予測実アドレスの推測を仮
想アドレスにもとづかせないことによって最低限に抑え
られる。これによってシノニムの問題は避けられ、無駄
になった各サイクルは多数の正確な推測に均分にするこ
とができ、従って、キャッシュアクセスシステムの全体
の速度は高まる。
も、予測にすぎないので、検査を必要とする。この検査
は、キャッシュメモリの予測アドレスからのデータの検
索と平行して行われる。検査経路は、加算器、変換バッ
ファおよびディレクトリに関係した機能を実行するが、
これらの機能はキャッシュアクセスと平行して実行され
るので、予測アドレスが正しければディレクトリ検索を
遅らせることはない。予測アドレスが正しくない場合、
キャッシュは再びアクセスされ、■マシンサイクルが無
駄になる。このキャッシュの再アクセスは、予測実アド
レスを検査するために以前のマシンサイクルで正しいア
ドレスがすでに生成されているので、2の余分なマシン
サイクル(正しいアドレスを生成するためのサイクルと
キャッシュメモリを再アクセスするためのサイクル)を
必要とすることはない。さらに、キャッシュが1マシン
サイクルを無駄にしなければならないとしても、こうし
た無駄なサイクルの発生は、予測実アドレスの推測を仮
想アドレスにもとづかせないことによって最低限に抑え
られる。これによってシノニムの問題は避けられ、無駄
になった各サイクルは多数の正確な推測に均分にするこ
とができ、従って、キャッシュアクセスシステムの全体
の速度は高まる。
この発明のキャッシュアクセスシステムは、アクセス部
と検査部の2つの部分に分かれる。キャッシュアクセス
システムは、コンピュータシステム内のプロセッサから
命令を受け取り、解読する。
と検査部の2つの部分に分かれる。キャッシュアクセス
システムは、コンピュータシステム内のプロセッサから
命令を受け取り、解読する。
解読された命令はキャッシュメモリ内のデー′タビット
にアクセスするために使用されるアドレス情報を含むも
のである。解読された命令からの情報は、レジスタイン
ジケータの形式をしている。これらのインジケータは、
コンピュータ内部のどのレジスタがキャッシュメモリに
アクセスするために必要なアドレス情報を含んでいるか
をキャッシュアクセスシステムに指示する。この発明の
キャッシュアクセスシステムには、1Bの汎用レジスタ
がある。解読された命令によって指示されたレジスタの
1つは、基底レジスタと呼ばれ、現在のアドレスを含ん
でいる。キャッシュアクセスシステムのアクセス部は、
予測実アドレスを生成するために基底レジスタの内容の
一部(現在のアドレス)を使用する。この予測実アドレ
スは、名目上、キャッシュアクセスシステムの検査部が
生成するアドレスと同一であり、解読された命令によっ
て与えられた全部のアドレス情報にもとづく実アドレス
と呼ばれる。予測実アドレス力ぐ検査部によって生成さ
れたアドレスと同一でない場合、その予測実アドレスは
実アドレスに置き換えられ、キャッシュメモリは再アク
セスされる。予測実アドレスが実アドレスと同一である
場合は、予測実アドレスによってアクセスされたデータ
が、解読された命令による要求通りに実行されるために
算術論理演算装置(ALU)に送られる。
にアクセスするために使用されるアドレス情報を含むも
のである。解読された命令からの情報は、レジスタイン
ジケータの形式をしている。これらのインジケータは、
コンピュータ内部のどのレジスタがキャッシュメモリに
アクセスするために必要なアドレス情報を含んでいるか
をキャッシュアクセスシステムに指示する。この発明の
キャッシュアクセスシステムには、1Bの汎用レジスタ
がある。解読された命令によって指示されたレジスタの
1つは、基底レジスタと呼ばれ、現在のアドレスを含ん
でいる。キャッシュアクセスシステムのアクセス部は、
予測実アドレスを生成するために基底レジスタの内容の
一部(現在のアドレス)を使用する。この予測実アドレ
スは、名目上、キャッシュアクセスシステムの検査部が
生成するアドレスと同一であり、解読された命令によっ
て与えられた全部のアドレス情報にもとづく実アドレス
と呼ばれる。予測実アドレス力ぐ検査部によって生成さ
れたアドレスと同一でない場合、その予測実アドレスは
実アドレスに置き換えられ、キャッシュメモリは再アク
セスされる。予測実アドレスが実アドレスと同一である
場合は、予測実アドレスによってアクセスされたデータ
が、解読された命令による要求通りに実行されるために
算術論理演算装置(ALU)に送られる。
予測実アドレスは、キャッシュアクセスシステムのアク
セス部において、ヒストリテーブルから生成される。ヒ
ストリテーブルは、最も新しく使用された現在アドレス
および、それらの現在アドレスについてキャッシュメモ
リアクセスシステムの検査部によって生成された対応す
る実アドレスのリストである。現在アドレスの一部は、
ヒストリテーブルの現在アドレスのリストの各アドレス
の対応する部分と比較される。現在アドレスのその部分
がヒストリテーブルの現在アドレスの部分と一致した場
合、対応する最も新しく使用された実アドレスが予測実
アドレスになる。このアドレスはその後、キャッシュア
クセスシステムの検査部が解読された命令によって要求
された実アドレスを生成している間に、キャッシュメモ
リにアクセスするために使用される。
セス部において、ヒストリテーブルから生成される。ヒ
ストリテーブルは、最も新しく使用された現在アドレス
および、それらの現在アドレスについてキャッシュメモ
リアクセスシステムの検査部によって生成された対応す
る実アドレスのリストである。現在アドレスの一部は、
ヒストリテーブルの現在アドレスのリストの各アドレス
の対応する部分と比較される。現在アドレスのその部分
がヒストリテーブルの現在アドレスの部分と一致した場
合、対応する最も新しく使用された実アドレスが予測実
アドレスになる。このアドレスはその後、キャッシュア
クセスシステムの検査部が解読された命令によって要求
された実アドレスを生成している間に、キャッシュメモ
リにアクセスするために使用される。
キャッシュメモリアクセスシステムの検査部は、現在ア
ドレスの全部から仮想アドレスを生成するために加算器
を使用する。この仮想アドレスはその後、変換索引緩衝
機構(TLB)の仮想アドレスのリストと比較される。
ドレスの全部から仮想アドレスを生成するために加算器
を使用する。この仮想アドレスはその後、変換索引緩衝
機構(TLB)の仮想アドレスのリストと比較される。
このTLBアドレスリストは、ヒストリテーブルが加算
器によって処理されていない現在アドレスの部分によっ
てアクセスされるのに対し、TLBが加算器によって生
成された仮想アドレスによってアクセスされることから
、ヒストリテーブルとは異なるものである。TLBは、
各仮想アドレスについて対応する実アドレスを含んでお
り、加算器からの仮想アドレスとTLBの仮想アドレス
との間に一致が見られた場合、対応する実アドレスはそ
の後、キャッシュアクセスシステムのアクセス部ですで
に生成されている予測実アドレスと比較される。予測実
アドレスが実アドレスと一致すれば、アクセスシステム
は、キャッシュアクセスマシンサイクルの後に再アクセ
スされない。予測実アドレスが実アドレスと一致しない
場合、キャッシュメモリは、そのキャッシュアクセスの
マシンサイクルの後のマシンサイクルで再アクセスされ
る。
器によって処理されていない現在アドレスの部分によっ
てアクセスされるのに対し、TLBが加算器によって生
成された仮想アドレスによってアクセスされることから
、ヒストリテーブルとは異なるものである。TLBは、
各仮想アドレスについて対応する実アドレスを含んでお
り、加算器からの仮想アドレスとTLBの仮想アドレス
との間に一致が見られた場合、対応する実アドレスはそ
の後、キャッシュアクセスシステムのアクセス部ですで
に生成されている予測実アドレスと比較される。予測実
アドレスが実アドレスと一致すれば、アクセスシステム
は、キャッシュアクセスマシンサイクルの後に再アクセ
スされない。予測実アドレスが実アドレスと一致しない
場合、キャッシュメモリは、そのキャッシュアクセスの
マシンサイクルの後のマシンサイクルで再アクセスされ
る。
予測実アドレスと実アドレスとの比較が一致しない場合
、キャッシュアクセスシステムは、2つの機能を実行し
なければならない。第1が、前述の通りキャッシュへの
再アクセスであり、第2が、予測実アドレスの出所の更
新である。これは、予測実アドレスの出所が命令の最新
状態を反映させるためである。予測実アドレスの出所の
更新は、ヒストリテーブルが、ヒストリテーブルで比較
される現在アドレスの部分に対応する最新の実アドレス
を反映しなければならないことを意味する。
、キャッシュアクセスシステムは、2つの機能を実行し
なければならない。第1が、前述の通りキャッシュへの
再アクセスであり、第2が、予測実アドレスの出所の更
新である。これは、予測実アドレスの出所が命令の最新
状態を反映させるためである。予測実アドレスの出所の
更新は、ヒストリテーブルが、ヒストリテーブルで比較
される現在アドレスの部分に対応する最新の実アドレス
を反映しなければならないことを意味する。
従って、ヒストリテーブルは、ヒストリテーブルの現在
アドレスの部分に対応する実アドレスをTLBからの実
アドレスと置き換えるか、または、ヒストリテーブルは
、現在アドレスおよび対応する実アドレスの画部分をT
LBおよび基底レジスタからの値に置き換える。エラー
があるたびにヒストリテーブルを更新することは、誤っ
た予測実アドレスの発生を低水準に維持し、それによっ
て、再アクセス状態の必要が少なくなるので、キャッシ
ュメモリアクセス速度を高めるのに役立つ。
アドレスの部分に対応する実アドレスをTLBからの実
アドレスと置き換えるか、または、ヒストリテーブルは
、現在アドレスおよび対応する実アドレスの画部分をT
LBおよび基底レジスタからの値に置き換える。エラー
があるたびにヒストリテーブルを更新することは、誤っ
た予測実アドレスの発生を低水準に維持し、それによっ
て、再アクセス状態の必要が少なくなるので、キャッシ
ュメモリアクセス速度を高めるのに役立つ。
予測実アドレスの出所は、ヒストリテーブルと組み合わ
せて変換予見テーブル(TLAT)とすることもできる
。TLATは、ヒストリテーブルと同様、最も新しく使
用された現在アドレスおよび、TLBによって生成され
た対応する実アドレスのリストである。しかし、ヒスト
リテーブルに比べて小さく、予測実アドレスと実アドレ
スとの間の比較における各エラーではなく各命令解読マ
シンサイクルで更新されるという点で、ヒストリテーブ
ルと異なっている。TLATは、現在アドレスの部分と
TLATの現在アドレスを比較し、一致すれば、TLA
Tの対応する実アドレスが予測実アドレスになる。TL
ATは、最も確からしい最新アドレスだけがTLATに
あることを保証するためにヒストリテーブルとともに作
業する(すなわち、TLATはヒストリテーブルの窓で
ある)。これは、TLATがヒストリテーブルよりも小
さいためであり、このことはTLATが少ない比較を行
い、高速の予測実アドレス生成をもたらすことを意味し
ている。しかし、小さいTLATもやはり、誤った予測
実アドレスの生成数が増えるのを避けるために高められ
た正確さを要求する。TLATが現在アドレスの部分と
その現在アドレスを比較している間、ヒストリテーブル
も同じ比較を行っている。ヒストリテーブルの出力はそ
の後、次の解読マシンサイクルの最後にTl、ATに置
かれる。これは、TLATが各解読マシンサイクルで更
新され、それによってその正確さを最大にしている。大
きなヒストリテーブルは、実アドレスと予測実アドレス
との間で誤った比較があった場合にのみ更新される。ヒ
ストリテーブルと組み合わせたTLATは、予測実アド
レスの高速生成を可能にすると同時に、誤った予測実ア
ドレスを最小にし、それによってキャッシュアクセスシ
ステムの全体の速度を高める。
せて変換予見テーブル(TLAT)とすることもできる
。TLATは、ヒストリテーブルと同様、最も新しく使
用された現在アドレスおよび、TLBによって生成され
た対応する実アドレスのリストである。しかし、ヒスト
リテーブルに比べて小さく、予測実アドレスと実アドレ
スとの間の比較における各エラーではなく各命令解読マ
シンサイクルで更新されるという点で、ヒストリテーブ
ルと異なっている。TLATは、現在アドレスの部分と
TLATの現在アドレスを比較し、一致すれば、TLA
Tの対応する実アドレスが予測実アドレスになる。TL
ATは、最も確からしい最新アドレスだけがTLATに
あることを保証するためにヒストリテーブルとともに作
業する(すなわち、TLATはヒストリテーブルの窓で
ある)。これは、TLATがヒストリテーブルよりも小
さいためであり、このことはTLATが少ない比較を行
い、高速の予測実アドレス生成をもたらすことを意味し
ている。しかし、小さいTLATもやはり、誤った予測
実アドレスの生成数が増えるのを避けるために高められ
た正確さを要求する。TLATが現在アドレスの部分と
その現在アドレスを比較している間、ヒストリテーブル
も同じ比較を行っている。ヒストリテーブルの出力はそ
の後、次の解読マシンサイクルの最後にTl、ATに置
かれる。これは、TLATが各解読マシンサイクルで更
新され、それによってその正確さを最大にしている。大
きなヒストリテーブルは、実アドレスと予測実アドレス
との間で誤った比較があった場合にのみ更新される。ヒ
ストリテーブルと組み合わせたTLATは、予測実アド
レスの高速生成を可能にすると同時に、誤った予測実ア
ドレスを最小にし、それによってキャッシュアクセスシ
ステムの全体の速度を高める。
開示されたこの発明の好ましい実施態様を第1図に示す
。ディジタルコンピュータシステムが命令レジスタ(I
R)10に命令を送ると、第1の記憶装置がその命令を
IRIOに格納する。この第1の記憶装置は、命令が格
納された時を確実に規定するためのラッチまたは同様の
標準形式の装置である。
。ディジタルコンピュータシステムが命令レジスタ(I
R)10に命令を送ると、第1の記憶装置がその命令を
IRIOに格納する。この第1の記憶装置は、命令が格
納された時を確実に規定するためのラッチまたは同様の
標準形式の装置である。
命令は、通常、コンピュータに記憶され、処理のために
命令レジスタに順に送られる命令のスタックからのいく
つかの命令のうちの一つである。命令は一連の連結され
たビットから構成される。また、命令コード部とオペラ
ンド部の2つの部分に分かれる。命令の上位ビットは命
令の命令コード部に割り当てられる。命令は解読され、
解読された命令コード部は算術論理演算装置(ALLI
) 500に何らかの機能を実行するように要求する。
命令レジスタに順に送られる命令のスタックからのいく
つかの命令のうちの一つである。命令は一連の連結され
たビットから構成される。また、命令コード部とオペラ
ンド部の2つの部分に分かれる。命令の上位ビットは命
令の命令コード部に割り当てられる。命令は解読され、
解読された命令コード部は算術論理演算装置(ALLI
) 500に何らかの機能を実行するように要求する。
その機能がコンピュータの記憶装置からデータを要求す
る場合、コンピュータはその機能を実行する前にそのデ
ータを検索しなければならない。命令のオペランド部は
、コンピュータのメモリまたは記憶装置内にあって、オ
ペランドによって要求されたデータの位置を指示するア
ドレス情報を含んでいる。
る場合、コンピュータはその機能を実行する前にそのデ
ータを検索しなければならない。命令のオペランド部は
、コンピュータのメモリまたは記憶装置内にあって、オ
ペランドによって要求されたデータの位置を指示するア
ドレス情報を含んでいる。
命令のオペランドは、3区分に分けられる一連のビット
であり、これらの区分のうちの2つがキャッシュメモリ
内のデータの希望のアドレスを生成する際に使用される
情報を保持するコンピュータ内のレジスタを指定する。
であり、これらの区分のうちの2つがキャッシュメモリ
内のデータの希望のアドレスを生成する際に使用される
情報を保持するコンピュータ内のレジスタを指定する。
第3の区分はそれ自体で希望のアドレスの生成に使用さ
れる。上位ビットは指標レジスタを指定し、中間部のビ
ットは基底レジスタを指定する。指標レジスタおよび基
底レジスタは、コンピュータの汎用レジスタ(GRP)
320の一部である。下位群は変位ビット16と呼ばれ
る。指標レジスタおよび基底レジスタの内容は、仮想ア
ドレスを生成するために加算器310によって変位アド
レス16に加算される。仮想アドレスは、仮想アドレス
レジスタ(VAR) 40に入れられ、キャッシュメモ
リのデータの希望のまたは実アドレスを内容とする変換
索引緩衝機構(TLB) 420と呼ばれる表に指標を
付けるために使用される。
れる。上位ビットは指標レジスタを指定し、中間部のビ
ットは基底レジスタを指定する。指標レジスタおよび基
底レジスタは、コンピュータの汎用レジスタ(GRP)
320の一部である。下位群は変位ビット16と呼ばれ
る。指標レジスタおよび基底レジスタの内容は、仮想ア
ドレスを生成するために加算器310によって変位アド
レス16に加算される。仮想アドレスは、仮想アドレス
レジスタ(VAR) 40に入れられ、キャッシュメモ
リのデータの希望のまたは実アドレスを内容とする変換
索引緩衝機構(TLB) 420と呼ばれる表に指標を
付けるために使用される。
キャッシュメモリアクセスシステム5は、命令が解読さ
れた後、要求されたデータがコンピュータのキャッシュ
メモリ410内にあるかどうかを判断する。データは通
常、ワードと呼ばれる一部のデータビットとしてアクセ
スされる。データがキャッシュメモリ410にある場合
、キャッシュメモリアクセスシステム5は、命令の解読
の後のマシンサイクルでALU 500によって使用さ
れるデータを検索する。データがコンピュータのキャッ
シュメモリにない場合、Altl 500は、主記憶装
置アクセスシステムからデータを受け取るが、それはこ
の出願の範囲ではない。キャッシュメモリアクセスシス
テム5は、アクセス部と検査部の2つの部分に分かれる
。アクセス部はキャッシュディレクトリ430、キャッ
シュメモリ装置400およびALU500を含んでいる
。アクセス部は、予測アドレス生成装置200の使用に
よって、キャッシュメモリ410からデータを直接検索
する。検査部は、キャッシュメモリによって検索された
データが命令によって要求されたデータであることを保
証する。
れた後、要求されたデータがコンピュータのキャッシュ
メモリ410内にあるかどうかを判断する。データは通
常、ワードと呼ばれる一部のデータビットとしてアクセ
スされる。データがキャッシュメモリ410にある場合
、キャッシュメモリアクセスシステム5は、命令の解読
の後のマシンサイクルでALU 500によって使用さ
れるデータを検索する。データがコンピュータのキャッ
シュメモリにない場合、Altl 500は、主記憶装
置アクセスシステムからデータを受け取るが、それはこ
の出願の範囲ではない。キャッシュメモリアクセスシス
テム5は、アクセス部と検査部の2つの部分に分かれる
。アクセス部はキャッシュディレクトリ430、キャッ
シュメモリ装置400およびALU500を含んでいる
。アクセス部は、予測アドレス生成装置200の使用に
よって、キャッシュメモリ410からデータを直接検索
する。検査部は、キャッシュメモリによって検索された
データが命令によって要求されたデータであることを保
証する。
検査部は、仮想アドレス生成装置300、変換索引緩衝
機構(TLB) 420および、(キャッシュシステム
のアクセス部によって生成された)予測実アドレスを検
査部内でTLB 420によって生成された実アドレス
と比較するための比較装置440とを含んでいる。
機構(TLB) 420および、(キャッシュシステム
のアクセス部によって生成された)予測実アドレスを検
査部内でTLB 420によって生成された実アドレス
と比較するための比較装置440とを含んでいる。
キャッシュメモリアレイ410は、それぞれ4ラインの
512のコングルエンスフラスに分かれており、各ライ
ンは128バイトのデータを含み、従って、256にバ
イトのキャッシュメモリアレイとなる。
512のコングルエンスフラスに分かれており、各ライ
ンは128バイトのデータを含み、従って、256にバ
イトのキャッシュメモリアレイとなる。
すべてのコングルエンスフラスのうちの1ラインは1組
を成し、従って、メモリは、組、コングルエンスフラス
およびライン内のバイトに対応したビットを選択するこ
とによってアクセスされる。
を成し、従って、メモリは、組、コングルエンスフラス
およびライン内のバイトに対応したビットを選択するこ
とによってアクセスされる。
予測実アドレス生成装置(PRAGM) 200は、そ
の組、コングルエンスフラスの部分、アドレスの識別を
保持するためのアドレスタグに関係したビットを選択す
る。これらの19ビツトは予測実アドレスの上位部分を
成し、予測実アドレスレジスタ(PRAR)30の上位
部分に置かれる。仮想アドレス生成装置(VAGM)
300は仮想アドレスを生成し、その仮想アドレスの一
部12ビット(ページオフセットビット)は、そのライ
ン内のデータバイトおよびコングルエンスフラスの部分
に関係したビットを内容としている。これらのビットは
予測実アドレスの下位部分を成し、予測実アドレスレジ
スタ(PRAR)30の下位部分に置かれる。予測実ア
ドレス生成装置および仮想アドレス生成装置の両方とも
、−その結果を命令解読マシンサイクル中にPRAR3
0に入れる。キャッシュメモリ装置(CMM) 400
は、キャッシュメモリアレイ410内部で、PRAR3
0にあるその予測実アドレスの位置からデータを順に検
索する。データの検索は、命令解読サイクルの後の、キ
ャッシュアクセスマシンサイクルとも呼ばれる、マシン
サイクルで実行される。
の組、コングルエンスフラスの部分、アドレスの識別を
保持するためのアドレスタグに関係したビットを選択す
る。これらの19ビツトは予測実アドレスの上位部分を
成し、予測実アドレスレジスタ(PRAR)30の上位
部分に置かれる。仮想アドレス生成装置(VAGM)
300は仮想アドレスを生成し、その仮想アドレスの一
部12ビット(ページオフセットビット)は、そのライ
ン内のデータバイトおよびコングルエンスフラスの部分
に関係したビットを内容としている。これらのビットは
予測実アドレスの下位部分を成し、予測実アドレスレジ
スタ(PRAR)30の下位部分に置かれる。予測実ア
ドレス生成装置および仮想アドレス生成装置の両方とも
、−その結果を命令解読マシンサイクル中にPRAR3
0に入れる。キャッシュメモリ装置(CMM) 400
は、キャッシュメモリアレイ410内部で、PRAR3
0にあるその予測実アドレスの位置からデータを順に検
索する。データの検索は、命令解読サイクルの後の、キ
ャッシュアクセスマシンサイクルとも呼ばれる、マシン
サイクルで実行される。
キャッシュメモリ装置(CMM) 400が予測実アド
レスを生成し、その予測実アドレスによって指定された
位置のデータを検索している間、キャッシュメモリアク
セスシステム5は、その予測実アドレスが命令によって
要求されたアドレスであることを検査する。この検査は
、命令解読マシンサイクルにおいて、仮想アドレス生成
装置(VAGM) 300によって仮想アドレスを生成
することによって行われる。この仮想アドレスは仮想ア
ドレスレジスタ(VAR) 40に入れられ、そのレジ
スタの内容は変換索引緩衝機構(TLB) 420のエ
ントリと順次比較される。 TLB420ハ、VAG
M 3001: ヨッテ生成すした潜在的アドレスおよ
び、各潜在的仮想アドレスについての対応する実アドレ
ス(命令によって要求された実際のアドレス)を含んで
いる。潜在的仮想アドレスがVAR40の仮想アドレス
と一致した場合、TLB 420は、一致した潜在的仮
想アドレスに対応した実アドレスを選択する。仮想アド
レスに対応する実アドレスのTLB 420のエントリ
からの選択は、キャッシュアクセスマシンサイクルにお
いて行われる。
レスを生成し、その予測実アドレスによって指定された
位置のデータを検索している間、キャッシュメモリアク
セスシステム5は、その予測実アドレスが命令によって
要求されたアドレスであることを検査する。この検査は
、命令解読マシンサイクルにおいて、仮想アドレス生成
装置(VAGM) 300によって仮想アドレスを生成
することによって行われる。この仮想アドレスは仮想ア
ドレスレジスタ(VAR) 40に入れられ、そのレジ
スタの内容は変換索引緩衝機構(TLB) 420のエ
ントリと順次比較される。 TLB420ハ、VAG
M 3001: ヨッテ生成すした潜在的アドレスおよ
び、各潜在的仮想アドレスについての対応する実アドレ
ス(命令によって要求された実際のアドレス)を含んで
いる。潜在的仮想アドレスがVAR40の仮想アドレス
と一致した場合、TLB 420は、一致した潜在的仮
想アドレスに対応した実アドレスを選択する。仮想アド
レスに対応する実アドレスのTLB 420のエントリ
からの選択は、キャッシュアクセスマシンサイクルにお
いて行われる。
TLB 42Gによって選択された実アドレスは、CM
M 400内の比較装置に順次送られる。C朋480の
比較装置は、PRAR30の予測実アドレスをTLB4
20によって生成された実アドレスと比較するためのも
のである。比較装置は、その2つのアドレスをそれらが
同一であるかどうかを判断するためにビットごとに比較
する。予測実アドレスと実アドレスの比較は、TLB
420の実アドレス選択の後のキャッシュアクセスマシ
ンサイクルにおいて行われる。実アドレスと予測実アド
レスとの比較は、キャッシュアクセスマシンサイクルに
おいてキャッシュメモリアレイにアクセスするために使
用される予測実アドレスの検査となる。予測実アドレス
と実アドレスの比較が一致した場合、CMM 400は
そのデータを検索し、キャッシュアクセスマシンサイク
ル後の実行のためにALυ500に送る。比較が一致し
ない場合は、 CMM 400は、キャッシュメモリア
レイ410内の、TLB 420から得た実アドレスの
位置からデータを検索する。CMM 400は、キャッ
シュアクセスマシンサイクルの次のマシンサイクルでT
LBの実アドレスからデータを検索する。CMM 40
0がTLB 420の実アドレスからデータを検索する
と、CMM 400は実行のためにAltl 500に
そのデータを送る。
M 400内の比較装置に順次送られる。C朋480の
比較装置は、PRAR30の予測実アドレスをTLB4
20によって生成された実アドレスと比較するためのも
のである。比較装置は、その2つのアドレスをそれらが
同一であるかどうかを判断するためにビットごとに比較
する。予測実アドレスと実アドレスの比較は、TLB
420の実アドレス選択の後のキャッシュアクセスマシ
ンサイクルにおいて行われる。実アドレスと予測実アド
レスとの比較は、キャッシュアクセスマシンサイクルに
おいてキャッシュメモリアレイにアクセスするために使
用される予測実アドレスの検査となる。予測実アドレス
と実アドレスの比較が一致した場合、CMM 400は
そのデータを検索し、キャッシュアクセスマシンサイク
ル後の実行のためにALυ500に送る。比較が一致し
ない場合は、 CMM 400は、キャッシュメモリア
レイ410内の、TLB 420から得た実アドレスの
位置からデータを検索する。CMM 400は、キャッ
シュアクセスマシンサイクルの次のマシンサイクルでT
LBの実アドレスからデータを検索する。CMM 40
0がTLB 420の実アドレスからデータを検索する
と、CMM 400は実行のためにAltl 500に
そのデータを送る。
CMM 400は、図示されていないが受信装置を有し
ており、これが実アドレスまたは予測実アドレスを受け
取る。CMM 400は、自己に送られたアドレスの形
式(予測実アドレスまたは実アドレス)にかかわらず、
同一の機能を実行する。受信装置は、受け取ったアドレ
スをキャッシュディレクトリ430内に含まれるアドレ
スと比較する。キャッシュディレクトリは、このディレ
クトリに登録された2にの実アドレスに対応する512
のコングルエンスフラスを含んでいる。フングルエンス
フラスは、各フングルエンスフラス内に含まれる4の実
アドレスの同一の9ビツト部分によって識別される。受
信装置は、ディレクトリ430内の4の実アドレスの9
ビツト部分を、受け取ったアドレスの対応する9ビツト
部分と比較する。その後、受信装置は、ディレクトリで
選択された4のアドレス値を、受け取ったアドレスがい
ずれの組に含まれているかを判断するために、受け取っ
た(実または予測実)アドレスと比較する。
ており、これが実アドレスまたは予測実アドレスを受け
取る。CMM 400は、自己に送られたアドレスの形
式(予測実アドレスまたは実アドレス)にかかわらず、
同一の機能を実行する。受信装置は、受け取ったアドレ
スをキャッシュディレクトリ430内に含まれるアドレ
スと比較する。キャッシュディレクトリは、このディレ
クトリに登録された2にの実アドレスに対応する512
のコングルエンスフラスを含んでいる。フングルエンス
フラスは、各フングルエンスフラス内に含まれる4の実
アドレスの同一の9ビツト部分によって識別される。受
信装置は、ディレクトリ430内の4の実アドレスの9
ビツト部分を、受け取ったアドレスの対応する9ビツト
部分と比較する。その後、受信装置は、ディレクトリで
選択された4のアドレス値を、受け取ったアドレスがい
ずれの組に含まれているかを判断するために、受け取っ
た(実または予測実)アドレスと比較する。
受信装置が受け取ったアドレスがいずれの組に含まれて
いるかを判断している間に、キャッシュメモリは、受け
取ったアドレスの一部によってアクセスされている。キ
ャッシュメモリは、■コングルエンスフラス内部の関係
する全部のアドレス内のデータを検索する検索装置を有
している。この検索装置は、ディレクトリが潜在的な4
組のうちのいずれにデータが実際に存在するかを判断し
ている間に、すべての4のデータ位置にアクセスする。
いるかを判断している間に、キャッシュメモリは、受け
取ったアドレスの一部によってアクセスされている。キ
ャッシュメモリは、■コングルエンスフラス内部の関係
する全部のアドレス内のデータを検索する検索装置を有
している。この検索装置は、ディレクトリが潜在的な4
組のうちのいずれにデータが実際に存在するかを判断し
ている間に、すべての4のデータ位置にアクセスする。
これは、256にのアドレスの最初の16ビツトにアク
セスすることによって行われる。この16ビツトは、9
ビツトのコングルエンスフラス情報および、コングルエ
ンスフラスの各要素内のバイトアドレスの7ビツトから
成っている。組を判断するための比較が完了すると、受
信装置は選択信号を検索装置に送る。その後、検索装置
がディレクトリから4の実アドレス位置内のデータを検
索すると、検索装置は、受け取った(実または予測実)
アドレスについて正しいデータを検索する。選択装置4
15を含んでいる検索装置に送られた選択信号は、デー
タの4バイトのうちのいずれを選択するかを決定する。
セスすることによって行われる。この16ビツトは、9
ビツトのコングルエンスフラス情報および、コングルエ
ンスフラスの各要素内のバイトアドレスの7ビツトから
成っている。組を判断するための比較が完了すると、受
信装置は選択信号を検索装置に送る。その後、検索装置
がディレクトリから4の実アドレス位置内のデータを検
索すると、検索装置は、受け取った(実または予測実)
アドレスについて正しいデータを検索する。選択装置4
15を含んでいる検索装置に送られた選択信号は、デー
タの4バイトのうちのいずれを選択するかを決定する。
この選択はキャッシュアクセスサイクル後のマシンサイ
クルで行われ、選択信号は、受信装置によって検索装置
に送られた4のアドレスから独立して送信される。選択
されたデータは、キャッシュアクセスマシンサイクル後
の第2のマシンサイクルで機能を実行する際にそのデー
タを使用するALU 500に送られる。
クルで行われ、選択信号は、受信装置によって検索装置
に送られた4のアドレスから独立して送信される。選択
されたデータは、キャッシュアクセスマシンサイクル後
の第2のマシンサイクルで機能を実行する際にそのデー
タを使用するALU 500に送られる。
CMM 400は、PRAGM 200およびVAGM
300から予測実アドレスを構成するビットを受け取
っていたPI?AR30から予測実アドレスを受け取る
。PRAGM200は、ヒストリテーブル210からP
RAR30のためのビットを生成する。ヒストリテーブ
ル210は、最近の命令によって要求された多数の最新
の実アドレス(ここでは128アドレス)を、命令レジ
スタに指定された基底レジスタの対応する内容とともに
格納する。PRAGM 200は、lR10に指定され
た基底レジスタの内容を、使用後にセーブされたヒスト
リテーブル210に格納された最も新しく使用された基
底レジスタの内容と比較する。比較がヒストリテーブル
210のこれらのエントリのうちの一つに一致した場合
、一致した基底レジスタの内容に対応する、ヒストリテ
ーブル210に格納された19ビツトは、第3の記憶装
置によってPRAR30の上位部分に格納される。この
第3の記憶装置は、データをレジスタに転送するための
ラッチまたは類似形式の装置である。これらの上位19
ビツトは、アドレスタグのほか、組の選択に関係したビ
ットおよび、予1111実アドレスに関係したコングル
エンスフラスビット9ビツトのうちの4ビツトを含む。
300から予測実アドレスを構成するビットを受け取
っていたPI?AR30から予測実アドレスを受け取る
。PRAGM200は、ヒストリテーブル210からP
RAR30のためのビットを生成する。ヒストリテーブ
ル210は、最近の命令によって要求された多数の最新
の実アドレス(ここでは128アドレス)を、命令レジ
スタに指定された基底レジスタの対応する内容とともに
格納する。PRAGM 200は、lR10に指定され
た基底レジスタの内容を、使用後にセーブされたヒスト
リテーブル210に格納された最も新しく使用された基
底レジスタの内容と比較する。比較がヒストリテーブル
210のこれらのエントリのうちの一つに一致した場合
、一致した基底レジスタの内容に対応する、ヒストリテ
ーブル210に格納された19ビツトは、第3の記憶装
置によってPRAR30の上位部分に格納される。この
第3の記憶装置は、データをレジスタに転送するための
ラッチまたは類似形式の装置である。これらの上位19
ビツトは、アドレスタグのほか、組の選択に関係したビ
ットおよび、予1111実アドレスに関係したコングル
エンスフラスビット9ビツトのうちの4ビツトを含む。
VAGM 300は、加算器310および汎用レジスタ
(GPR) 320によって予11’FJ実アドレスに
関係したビットを生成する。加算器310は、IR10
で指定されたアドレスの3の部分を加算する装置である
。
(GPR) 320によって予11’FJ実アドレスに
関係したビットを生成する。加算器310は、IR10
で指定されたアドレスの3の部分を加算する装置である
。
変位ビットと、基底レジスタの内容およびlR10で指
定された指標レジスタの内容との加算は、仮想アドレス
レジスタ(VAR) 40に入れられる31ビツトの仮
想アドレスを生成する。この仮想アドレスの下位12ビ
ツトはページオフセットビットであり、次の上位6ビツ
トは仮想アドレスのページアドレスビットである。加算
器310は、lR10から命令レジスタ(現在アドレス
)の変位ビットを直接受け取り、GPR320からは基
底レジスタおよび指標レジスタの内容を受け取る。PR
AGMもまた、汎用レジスタ(GPR)である基底レジ
スタの内容を受け取る。加算器は初めに、■ライン内の
バイトを選択する全7ビツトと、コングルエンスフラス
の選択に関係した9ビツトのうちの5ビツトにも対応す
る下位12ビツトを分解する。これらの12ビツトはP
RAR30に送られ、第2の記憶装置は予測実アドレス
の下位部分のビットを格納する。第2の記憶装置は、デ
ータをレジスタに転送するための標準のラッチまたは類
似の標準装置である。
定された指標レジスタの内容との加算は、仮想アドレス
レジスタ(VAR) 40に入れられる31ビツトの仮
想アドレスを生成する。この仮想アドレスの下位12ビ
ツトはページオフセットビットであり、次の上位6ビツ
トは仮想アドレスのページアドレスビットである。加算
器310は、lR10から命令レジスタ(現在アドレス
)の変位ビットを直接受け取り、GPR320からは基
底レジスタおよび指標レジスタの内容を受け取る。PR
AGMもまた、汎用レジスタ(GPR)である基底レジ
スタの内容を受け取る。加算器は初めに、■ライン内の
バイトを選択する全7ビツトと、コングルエンスフラス
の選択に関係した9ビツトのうちの5ビツトにも対応す
る下位12ビツトを分解する。これらの12ビツトはP
RAR30に送られ、第2の記憶装置は予測実アドレス
の下位部分のビットを格納する。第2の記憶装置は、デ
ータをレジスタに転送するための標準のラッチまたは類
似の標準装置である。
キャッシュアクセスシステム5の効率的な動作は、ヒス
トリテーブル210が最も新しく使用された実アドレス
および対応する基底レジスタの内容を持っていることを
必要とする。これは、キャッシュアクセスシステム5の
ヒストリテーブルの更新によって得られる。TLB 4
20によって生成された予測実アドレスがPRAR30
の予測実アドレスと一致しない場合、更新装置がヒスト
リテーブル210を更新する。これは、そうした状態が
最新の予測アドレスが間違っており、従ってヒストリテ
ーブル210から生成された値が誤っていたことになる
からである。ヒストリテーブル210が更新を必要とす
る状況は2つある。第1は、IR10によって指定され
た基底レジスタの内容がヒストリテーブルのエントリと
一致するが、対応する実アドレスがTLB 420によ
って与えられたアドレスと一致しないというヒストリテ
ーブル210のエントリをPRAGM 200が発見し
た場合である。この場合、ヒストリテーブルの対応する
実アドレスはTLB420によって生成された実アドレ
スを反映するために更新される。ヒストリテーブルの更
新を要求する第2の状況は、ヒストリテーブル210の
エントリのいずれも基底レジスタの内容と一致しない場
合である。この状況では、ヒストリテーブル210の最
低使用頻度エンドリカ月R10で指定された基底レジス
タの内容およびTLB 420によって生成された対応
する実アドレスで置き換えられる。
トリテーブル210が最も新しく使用された実アドレス
および対応する基底レジスタの内容を持っていることを
必要とする。これは、キャッシュアクセスシステム5の
ヒストリテーブルの更新によって得られる。TLB 4
20によって生成された予測実アドレスがPRAR30
の予測実アドレスと一致しない場合、更新装置がヒスト
リテーブル210を更新する。これは、そうした状態が
最新の予測アドレスが間違っており、従ってヒストリテ
ーブル210から生成された値が誤っていたことになる
からである。ヒストリテーブル210が更新を必要とす
る状況は2つある。第1は、IR10によって指定され
た基底レジスタの内容がヒストリテーブルのエントリと
一致するが、対応する実アドレスがTLB 420によ
って与えられたアドレスと一致しないというヒストリテ
ーブル210のエントリをPRAGM 200が発見し
た場合である。この場合、ヒストリテーブルの対応する
実アドレスはTLB420によって生成された実アドレ
スを反映するために更新される。ヒストリテーブルの更
新を要求する第2の状況は、ヒストリテーブル210の
エントリのいずれも基底レジスタの内容と一致しない場
合である。この状況では、ヒストリテーブル210の最
低使用頻度エンドリカ月R10で指定された基底レジス
タの内容およびTLB 420によって生成された対応
する実アドレスで置き換えられる。
ヒストリテーブル210を更新する上記の方法は、ヒス
トリテーブル210が完全に連想型であること、すなわ
ち唯一の組を含むことを前提とする。ヒストリテーブル
210が複数の組を含むセットアソシエイティブであり
、さらに、基底レジスタとヒストリテーブル210の内
容の間にまったく一致が見られない場合、基底レジスタ
の部分的な内容によって選択された組の最低使用頻度エ
ントリは、むしろ全体のヒストリテーブル210の最低
使用頻度エントリで置き換えられる。
トリテーブル210が完全に連想型であること、すなわ
ち唯一の組を含むことを前提とする。ヒストリテーブル
210が複数の組を含むセットアソシエイティブであり
、さらに、基底レジスタとヒストリテーブル210の内
容の間にまったく一致が見られない場合、基底レジスタ
の部分的な内容によって選択された組の最低使用頻度エ
ントリは、むしろ全体のヒストリテーブル210の最低
使用頻度エントリで置き換えられる。
開示された発明のこの実施態様は、キャッシュメモリア
レイ 410に2つの別なアドレスによってアクセスす
る。第1は、命令が要求するデータの位置の“最善の推
測°である予測実アドレスである。この推IP1は、ヒ
ストリテーブル210および加算器310によって生成
される。ヒストリテーブル210は、実アドレスおよび
、GPR320からのその対応する基底レジスタ内容を
リストにする。ヒストリテーブル210は、最近使用さ
れた基底レジスタのリストからの最近使用された基底レ
ジスタの内容を、IR10で指定された現在の基底レジ
スタの内容と突き合わせる。ヒストリテーブル21(l
はその後、その最近使用された基底レジスタの内容に対
応する実アドレスを選択し、それをPI?AR30の上
位ビットに入れる。加算器310は、現在の基底レジス
タの内容、指標レジスタの内容および、IR10からの
変位ビットを加算し、これらの31ビツトをVAR20
に入れる。これはまた、加算器からの、初期に分解され
た下位12ビツトも受け取り、それらをPRAR30の
下位12ビツトに入れる。PRAI?のこの31ビツト
はその後、キャッシュアレイにアクセスするために使用
される。“推f#J”が正しければ、キャッシュメモリ
はそのデータを実行のためにALU 500に送る。推
測が間違っている場合、TLB 210から生成された
実アドレスがキャッシュアレイにアクセスするために使
用される。
レイ 410に2つの別なアドレスによってアクセスす
る。第1は、命令が要求するデータの位置の“最善の推
測°である予測実アドレスである。この推IP1は、ヒ
ストリテーブル210および加算器310によって生成
される。ヒストリテーブル210は、実アドレスおよび
、GPR320からのその対応する基底レジスタ内容を
リストにする。ヒストリテーブル210は、最近使用さ
れた基底レジスタのリストからの最近使用された基底レ
ジスタの内容を、IR10で指定された現在の基底レジ
スタの内容と突き合わせる。ヒストリテーブル21(l
はその後、その最近使用された基底レジスタの内容に対
応する実アドレスを選択し、それをPI?AR30の上
位ビットに入れる。加算器310は、現在の基底レジス
タの内容、指標レジスタの内容および、IR10からの
変位ビットを加算し、これらの31ビツトをVAR20
に入れる。これはまた、加算器からの、初期に分解され
た下位12ビツトも受け取り、それらをPRAR30の
下位12ビツトに入れる。PRAI?のこの31ビツト
はその後、キャッシュアレイにアクセスするために使用
される。“推f#J”が正しければ、キャッシュメモリ
はそのデータを実行のためにALU 500に送る。推
測が間違っている場合、TLB 210から生成された
実アドレスがキャッシュアレイにアクセスするために使
用される。
PRAR30からの推測は、比較装置425において、
予測実アドレスとTLB 210によって生成された実
アドレスを比較することによって検査される。この比較
は、キャッシュアレイが予測実アドレス位置にあるデー
タを検索している間に行われる。実アドレスは、VAR
40の仮想アドレスを、VAGM 300によって生成
される可能な仮想アドレスおよびその対応する実アドレ
スを含むTLBのエントリと突き合わせることによって
生成される。VAR40の仮想アドレスがTLB 42
0のエントリと一致しない場合、対応する実アドレスを
コンパイルするために処理が開始されなければならない
。これは仮想記憶装置計算機における従来の段階であり
、この出願の範囲ではない。ALU 500に送られた
データは、“推測”が間違っていた場合、■マシンサイ
クル遅れる。メモリアレイがその間違った“推測”(予
測実)アドレスでアクセスされた後に、実アドレスによ
ってメモリが再アクセスされなければならないためであ
る。間違った推測は、TLB420からの新しい現在ア
ドレスおよび対応する実アドレスによってヒストリテー
ブル210を更新することによって最低限に抑えられる
。ヒストリテーブルは、推n1が間違っていると判断さ
れた場合に更新される。ヒストリテーブルにすでにある
現在アドレスは、単にその置き換えられた実アドレスを
持っているにすぎず、一方、ヒストリテーブルにない現
在アドレスは、ヒストリテーブルが更新されなければな
らない場合、存在する現在の命令およびその対応する実
アドレスを置き換える。
予測実アドレスとTLB 210によって生成された実
アドレスを比較することによって検査される。この比較
は、キャッシュアレイが予測実アドレス位置にあるデー
タを検索している間に行われる。実アドレスは、VAR
40の仮想アドレスを、VAGM 300によって生成
される可能な仮想アドレスおよびその対応する実アドレ
スを含むTLBのエントリと突き合わせることによって
生成される。VAR40の仮想アドレスがTLB 42
0のエントリと一致しない場合、対応する実アドレスを
コンパイルするために処理が開始されなければならない
。これは仮想記憶装置計算機における従来の段階であり
、この出願の範囲ではない。ALU 500に送られた
データは、“推測”が間違っていた場合、■マシンサイ
クル遅れる。メモリアレイがその間違った“推測”(予
測実)アドレスでアクセスされた後に、実アドレスによ
ってメモリが再アクセスされなければならないためであ
る。間違った推測は、TLB420からの新しい現在ア
ドレスおよび対応する実アドレスによってヒストリテー
ブル210を更新することによって最低限に抑えられる
。ヒストリテーブルは、推n1が間違っていると判断さ
れた場合に更新される。ヒストリテーブルにすでにある
現在アドレスは、単にその置き換えられた実アドレスを
持っているにすぎず、一方、ヒストリテーブルにない現
在アドレスは、ヒストリテーブルが更新されなければな
らない場合、存在する現在の命令およびその対応する実
アドレスを置き換える。
この発明の別な実施態様を第3図に示す。この実施態様
は、PRAGM 200が変換予見テーブル(TLAT
) 22Gも有していることを除き、第1の実施態様と
同様である。このTLAT 220は、コンピュータシ
ステムで使用可能な、この発明では16ある、各GPH
について最近使用された実アドレスエントリを有する小
さいヒストリテーブルである。基底レジスタがIR10
によって指定されると、指定された基底レジスタに対応
する、TLAT 220の最近使用された実アドレスエ
ントリに関係する19ビツトは、PRAR30の上位位
置に置かれる。これは、4ビットの基底レジスタ識別子
にもTLAT 220のエントリを指定させることによ
って、第3図に示す。
は、PRAGM 200が変換予見テーブル(TLAT
) 22Gも有していることを除き、第1の実施態様と
同様である。このTLAT 220は、コンピュータシ
ステムで使用可能な、この発明では16ある、各GPH
について最近使用された実アドレスエントリを有する小
さいヒストリテーブルである。基底レジスタがIR10
によって指定されると、指定された基底レジスタに対応
する、TLAT 220の最近使用された実アドレスエ
ントリに関係する19ビツトは、PRAR30の上位位
置に置かれる。これは、4ビットの基底レジスタ識別子
にもTLAT 220のエントリを指定させることによ
って、第3図に示す。
これらの19ビツトは、PRAR30の予測実アドレス
を形成するために、加算器310からの(PRAR30
の下位位置に置かれた)12ビツトのページオフセット
ビットと連結される。
を形成するために、加算器310からの(PRAR30
の下位位置に置かれた)12ビツトのページオフセット
ビットと連結される。
この実施態様では、より大きなヒストリテーブル210
は、マシンサイクルごとにTLAT 220を更新する
ために使用される。TLATは、そのサイクルにおいて
更新できるように、解読マシンサイクルの期間内で読み
書きできるアレイを必要とする。
は、マシンサイクルごとにTLAT 220を更新する
ために使用される。TLATは、そのサイクルにおいて
更新できるように、解読マシンサイクルの期間内で読み
書きできるアレイを必要とする。
GPR(潜在的な基底レジスタ)の内容が命令の実行の
結果として修正された場合、この変更されたGPRの新
しい内容は、ヒストリテーブル210の対応する予測実
アドレスエントリを検索するために使用される。この予
測実アドレスはその後、このGPHに対応するTLAT
220のエントリを置き換えるために使用される。ヒ
ストリテーブル220の更新処理は、第1の実施態様に
説明した処理と同様である。予測実アドレスがTLB
420からの実アドレスと一致しない場合、ヒストリテ
ーブルはTLB420からの実アドレスによって更新さ
れなければならない。TLAT 220もまた、ヒスト
リテーブル210の変更を反映するために、上述の処理
と同様に更新されなければならない。
結果として修正された場合、この変更されたGPRの新
しい内容は、ヒストリテーブル210の対応する予測実
アドレスエントリを検索するために使用される。この予
測実アドレスはその後、このGPHに対応するTLAT
220のエントリを置き換えるために使用される。ヒ
ストリテーブル220の更新処理は、第1の実施態様に
説明した処理と同様である。予測実アドレスがTLB
420からの実アドレスと一致しない場合、ヒストリテ
ーブルはTLB420からの実アドレスによって更新さ
れなければならない。TLAT 220もまた、ヒスト
リテーブル210の変更を反映するために、上述の処理
と同様に更新されなければならない。
TLAT 220は、本質的に、大きなヒストリテーブ
ル210への窓として作用する。計算機は固定された組
(7)GPR820を持つコとしかできず、TLAT
220は必ず各GPI?についての予測実アドレスを持
っているので、この技法は、いずれのGPRが現在の基
底レジスタとして使用されているかにかかわらず、第1
の実施態様で説明した方法と同じ正確さで実アドレスを
予測できる。さらに、TLATは非常に小さいアレイで
あり、そのアクセスはGPHのアクセスと平行して行わ
れるので、アレイへのアクセスを極めて高速に可能にす
る。従って、この実施態様で説明された二重テーブル(
TLATおよびヒストリテーブル)方式は、同じ正確さ
をもって、第1の実施態様で説明した技法よりも高速の
実アドレス予alJ方法を提供する。
ル210への窓として作用する。計算機は固定された組
(7)GPR820を持つコとしかできず、TLAT
220は必ず各GPI?についての予測実アドレスを持
っているので、この技法は、いずれのGPRが現在の基
底レジスタとして使用されているかにかかわらず、第1
の実施態様で説明した方法と同じ正確さで実アドレスを
予測できる。さらに、TLATは非常に小さいアレイで
あり、そのアクセスはGPHのアクセスと平行して行わ
れるので、アレイへのアクセスを極めて高速に可能にす
る。従って、この実施態様で説明された二重テーブル(
TLATおよびヒストリテーブル)方式は、同じ正確さ
をもって、第1の実施態様で説明した技法よりも高速の
実アドレス予alJ方法を提供する。
第1図は、この発明に従ったキャッシュアクセスシステ
ムの第1の実施態様を示す図、第2図は、この発明のデ
ィジタルコンピュータシステムで実施される一般的なバ
イブライン構造を示す図、 第3図は、この発明に従ったキャッシュアクセスシステ
ムの別な実施態様を示す図である。 5・・・キャッシュメモリアクセスシステム、lO・・
・命令レジスタ、30・・・予測実アドレスレジスタ、
40・・・仮想アドレスレジスタ、200・・・予測実
アドレス生成装置、210・・化ストリテーブル、22
0 変換予見テーブル、300・・・仮想アドレス生成
装置、310・・・加算器、320・・・汎用レジスタ
、400・・・キャッシュメモリ装置、41O・・・キ
ャッシュメモリ、415・・・選択装置、420・・・
変換索引緩衝機構、425・・・比較装置、430・・
・キャッシュディレクトリ、500・・・算術論理演算
装置。 第1図
ムの第1の実施態様を示す図、第2図は、この発明のデ
ィジタルコンピュータシステムで実施される一般的なバ
イブライン構造を示す図、 第3図は、この発明に従ったキャッシュアクセスシステ
ムの別な実施態様を示す図である。 5・・・キャッシュメモリアクセスシステム、lO・・
・命令レジスタ、30・・・予測実アドレスレジスタ、
40・・・仮想アドレスレジスタ、200・・・予測実
アドレス生成装置、210・・化ストリテーブル、22
0 変換予見テーブル、300・・・仮想アドレス生成
装置、310・・・加算器、320・・・汎用レジスタ
、400・・・キャッシュメモリ装置、41O・・・キ
ャッシュメモリ、415・・・選択装置、420・・・
変換索引緩衝機構、425・・・比較装置、430・・
・キャッシュディレクトリ、500・・・算術論理演算
装置。 第1図
Claims (1)
- 【特許請求の範囲】 1、メモリからデータビットを検索するためのアドレス
生成の方法であって、 基底レジスタ識別子、指標レジスタ識別子および変位ビ
ットを含み、前記メモリからデータを要求する命令をプ
ロセッサから受け取ることと、ページアドレスビットお
よびページオフセットビットを有する仮想アドレスを生
じる加算であって、前記指標レジスタ識別子によって指
定された指標レジスタ内に含まれた値および、前記基底
レジスタ識別子によって指定された基底レジスタに含ま
れた現在アドレスに前記変位ビットを加算することと、 多数の現在アドレスに対応する第1の多数の実アドレス
を有するヒストリテーブルに多数の現在アドレスを格納
することと、 前記基底レジスタからの前記現在アドレスを前記ヒスト
リテーブルに含まれた前記多数の現在アドレスのうちの
一つと突き合わせることと、前記ヒストリテーブルから
前記の一致した現在アドレスに対応する第1の実アドレ
スを選択することと、 予測実アドレスを形成するために前記第1の実アドレス
を前記仮想アドレスの前記ページオフセットビットと連
結することと、 前記メモリ内の前記予測実アドレス位置から第1の多数
のデータビットを検索することと、多数の仮想アドレス
に対応する第2の多数の実アドレスを有する変換索引緩
衝機構であって、前記変換索引緩衝機構に含まれる多数
の仮想アドレスのうちの一つと前記仮想アドレスを突き
合わせることと、 前記変換索引緩衝機構から前記の一致した仮想アドレス
に対応する第2の実アドレスを選択することと、 前記予測実アドレスを前記第2の実アドレスと比較する
ことと、 前記予測実アドレスと前記第2の実アドレスとの前記比
較が一致した場合、前記第1の多数のデータビットを算
術論理演算装置に転送することと、前記予測実アドレス
と前記第2の実アドレスとの前記比較が一致しない場合
、前記第2の実アドレスによって指定された記憶場所か
ら第2の多数のデータビットを検索することと、 前記予測実アドレスと前記第2の実アドレスとの前記比
較が一致しない場合、前記第2の多数のデータビットを
算術論理演算装置に転送することと、 前記予測実アドレスと前記第2の実アドレスとの前記比
較が一致しない場合、前記ヒストリテーブルを更新する
ことを含む、メモリからデータビットを検索するための
アドレス生成の方法。 2、メモリからデータビットを検索するためのアドレス
生成の方法であって、 基底レジスタ識別子、指標レジスタ識別子および変位ビ
ットを含み、前記メモリからデータを要求する命令をプ
ロセッサから受け取ることと、ページアドレスビットお
よびページオフセットビットを有する仮想アドレスを生
じる加算であって、前記指標レジスタ識別子によって指
定された指標レジスタ内に含まれた値および、前記基底
レジスタ識別子によって指定された基底レジスタに含ま
れた現在アドレスに前記変位ビットを加算することと、 第1の多数の現在アドレスに対応する第1の多数の実ア
ドレスを有するヒストリテーブルに第1の多数の現在ア
ドレスを格納することと、 多数の現在アドレスに対応する第1の多数の実アドレス
を有するヒストリテーブルに多数の現在アドレスを格納
することと、 第2の多数の現在アドレスに対応する第2の多数の実ア
ドレスを有する変換予見テーブルであって、前記変換予
見テーブルの第2の多数の現在アドレスを格納すること
と、 前記変換予見テーブルの第2の多数の実アドレスから前
記基底レジスタ識別子によって指定された前記基底レジ
スタに対応する第1の実アドレスを選択することと、 予測実アドレスを形成するために前記第1の実アドレス
を前記仮想アドレスの前記ページオフセットビットと連
結することと、 前記メモリ内の前記予測実アドレス位置から第1の多数
のデータビットを検索することと、多数の仮想アドレス
に対応する第3の多数の実アドレスを有する変換索引緩
衝機構であって、前記変換索引緩衝機構に含まれる多数
の仮想アドレスのうちの一つと前記仮想アドレスを突き
合わせることと、 前記変換索引緩衝機構から前記の一致した仮想アドレス
に対応する第2の実アドレスを選択することと、 前記予測実アドレスを前記第2の実アドレスと比較する
ことと、 前記変換予見テーブルを更新することと、 前記予測実アドレスと前記第2の実アドレスとの前記比
較が一致した場合、前記第1の多数のデータビットを算
術論理演算装置に転送することと、前記予測実アドレス
と前記第2の実アドレスとの前記比較が一致しない場合
、前記第2の実アドレスによって指定された記憶場所か
ら第2の多数のデータビットを検索することと、 前記予測実アドレスと前記第2の実アドレスとの前記比
較が一致しない場合、前記第2の多数のデータビットを
算術論理演算装置に転送することと、 前記予測実アドレスと前記第2の実アドレスとの前記比
較が一致しない場合、前記ヒストリテーブルを更新する
ことを含む、メモリからデータビットを検索するための
アドレス生成の方法。 3、ディジタルコンピュータのためのキャッシュメモリ
アクセスシステムであって、 命令レジスタ、仮想アドレスレジスタ、予測実アドレス
レジスタ、変換索引緩衝機構、算術論理演算装置および
多数の汎用レジスタと、 前記ディジタルコンピュータにデータを格納し供給する
ためのキャッシュメモリ装置と、 基底レジスタおよび指標レジスタとして使用できる前記
多数の汎用レジスタと、 前記命令レジスタによって受け取った前記命令から仮想
アドレスを生成するための仮想アドレス生成装置と、 前記基底レジスタ内の現在アドレス、指標レジスタの内
容、前記命令レジスタの変位ビットから前記仮想アドレ
スを生成する前記仮想アドレス生成装置と、 前記基底レジスタから以前に使用された第1の多数の現
在アドレスに対応する第1の多数の実アドレスを含むヒ
ストリテーブルを有する予測実アドレスを生成するため
の予測実アドレス生成装置と、前記基底レジスタの前記
現在アドレスを前記ヒストリテーブル内に含まれた前記
の以前に使用された第1の多数の現在アドレスと比較す
るための比較装置と、前記ヒストリテーブルを更新する
ための更新装置と、 前記予測実アドレス生成装置が前記基底レジスタからの
前記現在アドレスを前記ヒストリテーブル内に含まれた
前記の以前に使用された第1の多数の現在アドレスの一
つと一致した場合、前記ヒストリテーブルから、前記予
測実アドレスレジスタに格納されている前記実アドレス
と、 第1のマシンサイクルにおいて前記予測実アドレスレジ
スタから前記予測実アドレスを受け取るための受信装置
を有し、また、前記第1のマシンサイクルが終了する前
に前記予測実アドレス位置から前記格納データを検索す
るための検索装置を有する前記キャッシュメモリ装置と
、 第1の多数の仮想アドレスに対応する第2の多数の実ア
ドレスを有し、また、前記仮想アドレスレジスタに格納
された前記仮想アドレスに対応する実アドレスを選択す
る、ための選択装置を有する前期変換索引緩衝機構と、 前記変換索引緩衝機構によって選択された前記実アドレ
スと前記予測実アドレスを比較するための比較装置であ
って、前記予測実アドレスが前記実アドレスと一致した
場合、前記算術論理演算装置が第2のマシンサイクルに
おいて前記キャッシュメモリ装置の前記予測実アドレス
位置から検索された前記格納データを受け取り、前記予
測実アドレスが前記実アドレスと一致しない場合、前記
キャッシュメモリ装置は前記変換索引緩衝機構から前記
実アドレスを受け取り、前記キャッシュメモリ装置は第
2のマシンサイクルにおいて前記実アドレス位置から前
記格納データを検索し、前記算術論理演算装置は第3の
マシンサイクルにおいて前記キャッシュメモリ装置の前
記実アドレス位置から検索された前記格納データを受け
取る、前記比較装置とを含む、ディジタルコンピュータ
のためのキャッシュメモリアクセスシステム。 4、請求項3記載のキャッシュメモリアクセスシステム
であって、 前記更新装置は、前記予測実アドレスが前記変換索引緩
衝機構内に含まれた前記仮想アドレスに対応する前記実
アドレスに一致しない場合、前記ヒストリテーブルを更
新し、 前記更新装置は、前記変換索引緩衝機構から前記仮想ア
ドレスに対応する前記実アドレスを検索し、 前記更新装置は、前記基底レジスタから前記現在アドレ
スを検索し、 前記更新装置は、前記現在アドレスおよび前記実アドレ
スを前記ヒストリテーブルに入れる、前記キャッシュメ
モリアクセスシステム。 5、請求項3記載のキャッシュメモリアクセスシステム
であって、 前記更新装置は、前記予測実アドレスが前記変換索引緩
衝機構内に含まれた前記仮想アドレスに対応する前記実
アドレスに一致しない場合、前記ヒストリテーブルを更
新し、 前記更新装置は、前記変換索引緩衝機構から前記仮想ア
ドレスに対応する前記実アドレスを検索し、 前記更新装置は、前記現在アドレスに対応する前記実ア
ドレスを前記ヒストリテーブルに入れる、前記キャッシ
ュメモリアクセスシステム。 6、請求項3記載のキャッシュメモリアクセスシステム
であって、 前記予測実アドレス生成装置の前記比較装置は、前記現
在アドレスからの多数のビットを前記第1の多数の現在
アドレス内に含まれる現在アドレスからの多数のビット
と比較する、前記キャッシュメモリアクセスシステム。 7、請求項3記載のキャッシュメモリアクセスシステム
であって、 前記予測実アドレスレジスタは、前記第1のマシンサイ
クルが始まる前に前記予測実アドレスを受け取り、 前記仮想アドレスレジスタは、前記第1のマシンサイク
ルが始まる前に前記仮想アドレスを受け取る、前記キャ
ッシュメモリアクセスシステム。 8、請求項3記載のキャッシュメモリアクセスシステム
であって、 前記変換索引緩衝機構による前記仮想アドレスに対応す
る前記実アドレスの前記選択は、前記予測実アドレスを
受け取る前記キャッシュメモリアレイとは無関係に終了
する、前記キャッシュメモリアクセスシステム。 9、請求項3記載のキャッシュメモリアクセスシステム
であって、 前記予測実アドレスと前記実アドレスとの前記比較は、
前記予測実アドレスを受け取る前記キャッシュメモリア
レイとは無関係に終了する、前記キャッシュメモリアク
セスシステム。 10、請求項6記載のキャッシュメモリアクセスシステ
ムであって、 前記更新装置は、前記予測実アドレスが前記変換索引緩
衝機構内に含まれた前記仮想アドレスに対応する前記実
アドレスに一致しない場合、前記ヒストリテーブルを更
新し、 前記更新装置は、前記変換索引緩衝機構から前記仮想ア
ドレスに対応する前記実アドレスを検索し、 前記更新装置は、前記現在アドレスから多数のビットを
検索し、 前記更新装置は、前記多数のビットおよび前記実アドレ
スを前記ヒストリテーブルに入れる、前記キャッシュメ
モリアクセスシステム。 11、ディジタルコンピュータのためのキャッシュメモ
リアクセスシステムであって、 仮想アドレスレジスタ、下位ビットおよび上位ビットを
含む予測実アドレスレジスタ、変換索引緩衝機構、算術
論理演算装置および多数の汎用レジスタと、 前記ディジタルコンピュータにデータを格納し供給する
ためのキャッシュメモリ装置と、 基底レジスタおよび指標レジスタとして使用できる前記
多数の汎用レジスタと、 前記命令レジスタによって受け取った前記命令から仮想
アドレスを生成するための仮想アドレス生成装置と、 前記命令レジスタの変位ビットを、前記命令によって指
定された前記基底レジスタ内に含まれる現在アドレスお
よび、前記命令によって指定された前記指標レジスタの
内容に加算するための加算器装置を有する前記仮想アド
レス生成装置と、前記基底レジスタから以前に使用され
た第1の多数の現在アドレスに対応する第1の多数の実
アドレスを含むヒストリテーブルおよび、前記基底レジ
スタから以前に使用された第2の多数の現在アドレスに
対応する第2の多数の実アドレスを含む変換予見テーブ
ルを有する、予測実アドレスを生成するための予測実ア
ドレス生成装置と、前記命令によって指定された前記基
底レジスタに対応する前記変換予見テーブルから実アド
レスを選択するための選択装置と、前記ヒストリテーブ
ルおよび前記変換予見テーブルを更新するための更新装
置と、 前記予測実アドレス生成装置が前記変換予見テーブルか
ら前記実アドレスを選択した場合、前記変換予見テーブ
ルから、前記予測実アドレスレジスタに格納される前記
実アドレスと、 キャッシュ記憶装置、多数の実アドレスを含むキャッシ
ュディレクトリ、第1のマシンサイクルにおいて前記予
測実アドレスレジスタから前記予測実アドレスを受け取
り選択信号を持つための受信装置および、前記第1のマ
シンサイクルが終了する前に前記予測実アドレス位置か
ら前記格納データを検索するための検索装置とを有する
前記キャッシュメモリ装置と、 前記キャッシュメモリ受信装置は前記予測実アドレスを
受け取り、順次多数の実アドレスおよび前記選択信号を
前記キャッシュメモリ検索装置に転送し、前記多数のア
ドレスは前記キャッシュディレクトリに含まれており、
前記選択信号は前記予測実アドレスから前記受信装置に
よって生成され、前記選択信号は前記多数のアドレスと
は無関係に転送される前記キャッシュメモリ受信装置と
、前記キャッシュメモリ検索装置は前記キャッシュ記憶
装置から前記受信装置によって転送された前記多数の実
アドレスのそれぞれに格納されたデータを検索し、前記
検索装置は前記多数のアドレスのうちの一つに関係した
前記データを選択し、前記選択信号は前記検索装置によ
って行われる前記選択を指示する前記キャッシュメモリ
検索装置と、 前記選択されたデータを前記算術論理演算装置に転送す
る前記キャッシュメモリ検索装置と、第1の多数の仮想
アドレスに対応する第3の多数の実アドレスを有し、ま
た、前記仮想アドレスレジスタに格納された前記仮想ア
ドレスに対応する実アドレスを選択するための選択装置
を有する変換索引緩衝機構と、 前記変換索引緩衝機構によって選択された前記実アドレ
スと前記予測実アドレスを比較するための比較装置であ
って、前記予測実アドレスが前記実アドレスと一致した
場合、前記算術論理演算装置が第2のマシンサイクルに
おいて前記キャッシュメモリ装置の前記予測実アドレス
位置から検索された前記格納データを受け取り、前記予
測実アドレスが前記実アドレスと一致しない場合、前記
キャッシュメモリ装置は前記変換索引緩衝機構から前記
実アドレスを受け取り、前記キャッシュメモリ装置は第
2のマシンサイクルにおいて前記実アドレス位置から前
記格納データを検索し、前記算術論理演算装置は第3の
マシンサイクルにおいて前記キャッシュメモリ装置の前
記実アドレス位置から検索された前記格納データを受け
取る、前記比較装置とを含む、ディジタルコンピュータ
のためのキャッシュメモリアクセスシステム。 12、請求項11記載のキャッシュメモリアクセスシス
テムであって、 前記更新装置は、前記予測実アドレスが前記変換索引緩
衝機構内に含まれた前記仮想アドレスに対応する前記実
アドレスに一致しない場合、前記ヒストリテーブルを更
新し、 前記更新装置は、前記変換索引緩衝機構から前記仮想ア
ドレスに対応する前記実アドレスを検索し、 前記更新装置は、前記基底レジスタから前記現在アドレ
スを検索し、 前記更新装置は、前記現在アドレスおよび前記実アドレ
スを前記ヒストリテーブルに入れる、前記キャッシュメ
モリアクセスシステム。 13、請求項11記載のキャッシュメモリアクセスシス
テムであって、 前記更新装置は、前記予測実アドレスが前記変換索引緩
衝機構内に含まれた前記仮想アドレスに対応する前記実
アドレスに一致しない場合、前記ヒストリテーブルを更
新し、 前記更新装置は、前記変換索引緩衝機構から前記仮想ア
ドレスに対応する前記実アドレスを検索し、 前記更新装置は、前記現在アドレスに対応する前記ヒス
トリテーブルに前記実アドレスを入れる、前記キャッシ
ュメモリアクセスシステム。 14、請求項11記載のキャッシュメモリアクセスシス
テムであって、 前記予測実アドレス生成装置は、汎用レジスタの内容の
いずれかの修正の後、前記変換予見テーブルを更新し、 前記更新装置は、修正された汎用レジスタからのアドレ
スを、前記ヒストリテーブルからの前記の多数の以前に
使用された現在アドレスの一つと突き合わせ、 前記更新装置は、前記ヒストリテーブルから、前記の一
致した以前に使用された現在アドレスに対応する前記実
アドレスを前記変換予見テーブルに入れ、 前記ヒストリテーブルからの前記実アドレスは、前記更
新装置による配置後、前記変換予見テーブルの前記の修
正された汎用レジスタに対応する、前記キャッシュメモ
リアクセスシステム。 15、請求項11記載のキャッシュメモリアクセスシス
テムであって、 前記予測実アドレス生成装置は、前記予測実アドレスが
前記変換索引緩衝機構内に含まれた前記仮想アドレスに
対応する前記実アドレスに一致しない場合、前記ヒスト
リテーブルを更新し、前記更新装置は前記変換索引緩衝
機構から前記仮想アドレスに対応する前記実アドレスを
検索し、前記更新装置は前記現在アドレスから多数のビ
ットを検索し、 前記更新装置は前記基底レジスタおよび前記実アドレス
からの前記多数のビットを前記ヒストリテーブルに入れ
る、前記キャッシュメモリアクセスシステム。 16、請求項11記載のキャッシュメモリアクセスシス
テムであって、 前記予測実アドレス生成装置は、前記予測実アドレスが
前記変換索引緩衝機構内に含まれた前記仮想アドレスに
対応する前記実アドレスに一致しない場合、前記ヒスト
リテーブルを更新し、前記更新装置は前記変換索引緩衝
機構から前記仮想アドレスに対応する前記実アドレスを
検索し、前記更新装置は前記実アドレスを前記ヒストリ
テーブルに入れ、前記実アドレスは前記ヒストリテーブ
ルの前記現在アドレスに対応する、前記キャッシュメモ
リアクセスシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/424,496 US5148538A (en) | 1989-10-20 | 1989-10-20 | Translation look ahead based cache access |
US424496 | 1989-10-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03194632A true JPH03194632A (ja) | 1991-08-26 |
JPH0564816B2 JPH0564816B2 (ja) | 1993-09-16 |
Family
ID=23682835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2251670A Granted JPH03194632A (ja) | 1989-10-20 | 1990-09-20 | 変換予見にもとづくキャッシュアクセス |
Country Status (3)
Country | Link |
---|---|
US (1) | US5148538A (ja) |
EP (1) | EP0424163A3 (ja) |
JP (1) | JPH03194632A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0619793A (ja) * | 1992-04-30 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル |
JPH0619794A (ja) * | 1992-04-30 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | データのセット位置の予測装置 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247653A (en) * | 1990-08-17 | 1993-09-21 | Seagate Technology, Inc. | Adaptive segment control and method for simulating a multi-segment cache |
JP2514292B2 (ja) * | 1991-04-25 | 1996-07-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オペランドペ―ジメモリ及び命令ペ―ジメモリを有するコンピュ―タシステム |
JPH0546475A (ja) * | 1991-08-15 | 1993-02-26 | Fujitsu Ltd | バツフア記憶制御方式 |
DE4391002T1 (de) * | 1992-03-06 | 1995-02-23 | Rambus Inc | Vor-heranholen in einen Cache-Speicher zum minimieren der Hauptspeicherzugriffszeit und der Cache-Speichergröße in einen Computersystem |
US5361391A (en) * | 1992-06-22 | 1994-11-01 | Sun Microsystems, Inc. | Intelligent cache memory and prefetch method based on CPU data fetching characteristics |
US5392414A (en) * | 1992-06-30 | 1995-02-21 | Sun Microsystems, Inc. | Rapid data retrieval from data storage structures using prior access predictive annotations |
JP3199465B2 (ja) * | 1992-07-22 | 2001-08-20 | 株式会社日立製作所 | 情報処理装置 |
JPH0659972A (ja) * | 1992-08-05 | 1994-03-04 | Oki Electric Ind Co Ltd | メモリ制御装置 |
GB2270791B (en) * | 1992-09-21 | 1996-07-17 | Grass Valley Group | Disk-based digital video recorder |
US5442766A (en) * | 1992-10-09 | 1995-08-15 | International Business Machines Corporation | Method and system for distributed instruction address translation in a multiscalar data processing system |
US5386534A (en) * | 1992-10-27 | 1995-01-31 | Motorola, Inc. | Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value |
US5651130A (en) * | 1993-03-22 | 1997-07-22 | Compaq Computer Corporation | Memory controller that dynamically predicts page misses |
US5548739A (en) * | 1993-11-04 | 1996-08-20 | Sun Microsystems, Inc. | Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations |
US5422837A (en) * | 1993-12-14 | 1995-06-06 | Bull Hn Information Systems Inc. | Apparatus for detecting differences between double precision results produced by dual processing units operating in parallel |
JPH07287668A (ja) * | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
US5890221A (en) * | 1994-10-05 | 1999-03-30 | International Business Machines Corporation | Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit |
US5933860A (en) * | 1995-02-10 | 1999-08-03 | Digital Equipment Corporation | Multiprobe instruction cache with instruction-based probe hint generation and training whereby the cache bank or way to be accessed next is predicted |
US5778436A (en) * | 1995-03-06 | 1998-07-07 | Duke University | Predictive caching system and method based on memory access which previously followed a cache miss |
US6813699B1 (en) * | 1995-06-02 | 2004-11-02 | Transmeta Corporation | Speculative address translation for processor using segmentation and optional paging |
US5860104A (en) * | 1995-08-31 | 1999-01-12 | Advanced Micro Devices, Inc. | Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates |
US5752069A (en) * | 1995-08-31 | 1998-05-12 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing away prediction structure |
US5987561A (en) | 1995-08-31 | 1999-11-16 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle |
US5596735A (en) * | 1996-02-23 | 1997-01-21 | Cyrix Corporation | Circuit and method for addressing segment descriptor tables |
US5838943A (en) * | 1996-03-26 | 1998-11-17 | Advanced Micro Devices, Inc. | Apparatus for speculatively storing and restoring data to a cache memory |
US5893930A (en) * | 1996-07-12 | 1999-04-13 | International Business Machines Corporation | Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer |
US5956752A (en) * | 1996-12-16 | 1999-09-21 | Intel Corporation | Method and apparatus for accessing a cache using index prediction |
US5956746A (en) * | 1997-08-13 | 1999-09-21 | Intel Corporation | Computer system having tag information in a processor and cache memory |
US6134643A (en) * | 1997-11-26 | 2000-10-17 | Intel Corporation | Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history |
US6138215A (en) * | 1998-04-30 | 2000-10-24 | International Business Machines Corporation | Method for absolute address history table synonym resolution |
US6138223A (en) * | 1998-04-30 | 2000-10-24 | International Business Machines Corporation | Absolute address history table index generation for predicting instruction and operand cache accesses |
US6230260B1 (en) | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
US6418525B1 (en) * | 1999-01-29 | 2002-07-09 | International Business Machines Corporation | Method and apparatus for reducing latency in set-associative caches using set prediction |
KR100343940B1 (ko) * | 1999-02-26 | 2002-07-20 | 삼성전자 주식회사 | 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지 |
JP2001034537A (ja) | 1999-07-23 | 2001-02-09 | Toshiba Corp | アドレス変換回路 |
US6425058B1 (en) | 1999-09-07 | 2002-07-23 | International Business Machines Corporation | Cache management mechanism to enable information-type dependent cache policies |
US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
US6598128B1 (en) | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6421761B1 (en) * | 1999-11-09 | 2002-07-16 | International Business Machines Corporation | Partitioned cache and management method for selectively caching data by type |
WO2001042927A1 (fr) * | 1999-12-09 | 2001-06-14 | Fujitsu Limited | Dispositif d'acces memoire et methode utilisant une table d'historique des traductions d'adresses |
US7707397B2 (en) * | 2001-05-04 | 2010-04-27 | Via Technologies, Inc. | Variable group associativity branch target address cache delivering multiple target addresses per cache line |
US7310706B1 (en) * | 2001-06-01 | 2007-12-18 | Mips Technologies, Inc. | Random cache line refill |
US6745313B2 (en) * | 2002-01-09 | 2004-06-01 | International Business Machines Corporation | Absolute address bits kept in branch history table |
US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
JP4818919B2 (ja) * | 2003-08-28 | 2011-11-16 | ミップス テクノロジーズ インコーポレイテッド | プロセッサ内での実行の計算スレッドを一時停止して割り当て解除するための統合されたメカニズム |
US20050050278A1 (en) * | 2003-09-03 | 2005-03-03 | Advanced Micro Devices, Inc. | Low power way-predicted cache |
US7117290B2 (en) * | 2003-09-03 | 2006-10-03 | Advanced Micro Devices, Inc. | MicroTLB and micro tag for reducing power in a processor |
US7237098B2 (en) * | 2003-09-08 | 2007-06-26 | Ip-First, Llc | Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence |
US7328429B2 (en) * | 2003-11-13 | 2008-02-05 | Intel Corporation | Instruction operand tracing for software debug |
US20080114940A1 (en) * | 2004-09-30 | 2008-05-15 | Renesas Technology Corp. | Data Processor |
US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US7594079B2 (en) * | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US8255634B2 (en) * | 2010-08-11 | 2012-08-28 | Lsi Corporation | Apparatus and methods for look-ahead virtual volume meta-data processing in a storage controller |
US8176218B2 (en) | 2010-08-11 | 2012-05-08 | Lsi Corporation | Apparatus and methods for real-time routing of received commands in a split-path architecture storage controller |
US8261003B2 (en) | 2010-08-11 | 2012-09-04 | Lsi Corporation | Apparatus and methods for managing expanded capacity of virtual volumes in a storage system |
US9804969B2 (en) | 2012-12-20 | 2017-10-31 | Qualcomm Incorporated | Speculative addressing using a virtual address-to-physical address page crossing buffer |
US10275256B2 (en) * | 2016-02-22 | 2019-04-30 | International Business Machines Corporation | Branch prediction in a computer processor |
US10579522B2 (en) | 2016-09-13 | 2020-03-03 | Andes Technology Corporation | Method and device for accessing a cache memory |
US12111772B2 (en) * | 2020-12-23 | 2024-10-08 | Intel Corporation | Device, system and method for selectively dropping software prefetch instructions |
EP4384919A1 (en) * | 2022-08-01 | 2024-06-19 | Qualcomm Incorporated | Using retired pages history for instruction translation lookaside buffer (tlb) prefetching in processor-based devices |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60123946A (ja) * | 1983-12-09 | 1985-07-02 | Hitachi Ltd | アドレス変換装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4332010A (en) * | 1980-03-17 | 1982-05-25 | International Business Machines Corporation | Cache synonym detection and handling mechanism |
US4400774A (en) * | 1981-02-02 | 1983-08-23 | Bell Telephone Laboratories, Incorporated | Cache addressing arrangement in a computer system |
JPS57143782A (en) * | 1981-03-03 | 1982-09-06 | Toshiba Corp | Information processor |
US4441155A (en) * | 1981-11-23 | 1984-04-03 | International Business Machines Corporation | Page controlled cache directory addressing |
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 |
US4774659A (en) * | 1986-04-16 | 1988-09-27 | Astronautics Corporation Of America | Computer system employing virtual memory |
US4757447A (en) * | 1986-07-28 | 1988-07-12 | Amdahl Corporation | Virtual memory system having identity marking for common address space |
-
1989
- 1989-10-20 US US07/424,496 patent/US5148538A/en not_active Expired - Fee Related
-
1990
- 1990-09-20 JP JP2251670A patent/JPH03194632A/ja active Granted
- 1990-10-18 EP EP19900311473 patent/EP0424163A3/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60123946A (ja) * | 1983-12-09 | 1985-07-02 | Hitachi Ltd | アドレス変換装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0619793A (ja) * | 1992-04-30 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル |
JPH0619794A (ja) * | 1992-04-30 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | データのセット位置の予測装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0424163A3 (en) | 1991-12-04 |
EP0424163A2 (en) | 1991-04-24 |
JPH0564816B2 (ja) | 1993-09-16 |
US5148538A (en) | 1992-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03194632A (ja) | 変換予見にもとづくキャッシュアクセス | |
US5123101A (en) | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss | |
JP3936378B2 (ja) | アドレス変換装置 | |
US6145064A (en) | Method of efficiently updating hashed page tables | |
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
US5230045A (en) | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus | |
US5493660A (en) | Software assisted hardware TLB miss handler | |
US6560690B2 (en) | System and method for employing a global bit for page sharing in a linear-addressed cache | |
JPH0749812A (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
US11403222B2 (en) | Cache structure using a logical directory | |
JPH11203199A (ja) | キャッシュ・メモリ | |
US11775445B2 (en) | Translation support for a virtual cache | |
US10810134B2 (en) | Sharing virtual and real translations in a virtual cache | |
JPH0822415A (ja) | 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成 | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
EP0173909A2 (en) | Look-aside buffer least recently used marker controller | |
JPS623354A (ja) | キヤツシユメモリ・アクセス方式 | |
US10747681B1 (en) | Invalidation of entries in address translation storage | |
JPS6324337A (ja) | キャッシュ・メモリ管理方式 | |
JPH0235543A (ja) | ページテーブルエントリ無効化装置 | |
JPH09223071A (ja) | アドレス変換制御回路 | |
JPH0588981A (ja) | データ処理装置 | |
JPH0652057A (ja) | アドレス変換方式 |