JPH0564816B2 - - Google Patents
Info
- Publication number
- JPH0564816B2 JPH0564816B2 JP2251670A JP25167090A JPH0564816B2 JP H0564816 B2 JPH0564816 B2 JP H0564816B2 JP 2251670 A JP2251670 A JP 2251670A JP 25167090 A JP25167090 A JP 25167090A JP H0564816 B2 JPH0564816 B2 JP H0564816B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- real address
- register
- data
- predicted
- 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.)
- Expired - Lifetime
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/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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、デイジタルコンピユータシステム
のキヤツシユメモリからの情報のアクセス方式に
おける改良に関する。
のキヤツシユメモリからの情報のアクセス方式に
おける改良に関する。
デイジタルコンピユータのキヤツシユメモリア
クセスシステムは、通常、変換バツフア、キヤツ
シユデイレクトリおよびキヤツシユメモリを含ん
でいる。変換バツフアは、そのメモリ内に含まれ
るデータの論理アドレス(仮想アドレスともい
う)と組み合わされた全部の物理アドレス(実ア
ドレスともいう)のリストを含んでいる。コンピ
ユータがキヤツシユからデータを要求すると、コ
ンピユータはそのキヤツシユ変換バツフアに論理
アドレスを送り、その後変換バツフアはその論理
アドレスをキヤツシユデイレクトリの論理アドレ
スのリストと比較する。変換バツフアが一致を確
認すると、変換バツフアはその論理アドレスに対
応する物理アドレスをデイレクトリおよびキヤツ
シユメモリに送る。キヤツシユデイレクトリは、
キヤツシユメモリ内に現在あるデータバイトの全
部のライン(例えば、1ライン当たり128バイト
に分けられている2Kのライン)およびそれらの
関係する実アドレスのリストを含んでいる。デイ
レクトリは実アドレスを受け取り、命令によつて
要求されたそのデータがキヤツシユ内に現在ある
かどうかを判断する。データがキヤツシユ内にな
ければ、キヤツシユアクセスシステムは直接には
キヤツシユにアクセスせず、要求されたデータは
この発明の範囲外である別の独立した機構によつ
て検索される。データがキヤツシユ内にあれば、
キヤツシユメモリはそのデータを実アドレスから
検索し、データを要求しているコンピユータシス
テムの適切な部分に送る。
クセスシステムは、通常、変換バツフア、キヤツ
シユデイレクトリおよびキヤツシユメモリを含ん
でいる。変換バツフアは、そのメモリ内に含まれ
るデータの論理アドレス(仮想アドレスともい
う)と組み合わされた全部の物理アドレス(実ア
ドレスともいう)のリストを含んでいる。コンピ
ユータがキヤツシユからデータを要求すると、コ
ンピユータはそのキヤツシユ変換バツフアに論理
アドレスを送り、その後変換バツフアはその論理
アドレスをキヤツシユデイレクトリの論理アドレ
スのリストと比較する。変換バツフアが一致を確
認すると、変換バツフアはその論理アドレスに対
応する物理アドレスをデイレクトリおよびキヤツ
シユメモリに送る。キヤツシユデイレクトリは、
キヤツシユメモリ内に現在あるデータバイトの全
部のライン(例えば、1ライン当たり128バイト
に分けられている2Kのライン)およびそれらの
関係する実アドレスのリストを含んでいる。デイ
レクトリは実アドレスを受け取り、命令によつて
要求されたそのデータがキヤツシユ内に現在ある
かどうかを判断する。データがキヤツシユ内にな
ければ、キヤツシユアクセスシステムは直接には
キヤツシユにアクセスせず、要求されたデータは
この発明の範囲外である別の独立した機構によつ
て検索される。データがキヤツシユ内にあれば、
キヤツシユメモリはそのデータを実アドレスから
検索し、データを要求しているコンピユータシス
テムの適切な部分に送る。
コンピユータシステムが論理アドレスをキヤツ
シユアクセスシステムに送るためには、初めに、
論理アドレスを生成し、その生成アドレスがいつ
有効であるかを判断しなければならない。論理ア
ドレスは、コンピユータシステムからの命令が解
読され、それが引き続いて、データおよび論理ア
ドレス生成を要求する時に生成される。論理アド
レス生成は、要求データのアドレスを持つ解読さ
れた命令の部分を受け取り、対応する論理アドレ
スを生成するキヤツシユアクセスシステムによつ
て行われる。アドレスの有効性のタイミング、従
つてキヤツシユメモリアクセスシステムの速度
は、パイプライン構造として知られる一連のコン
ピユータシステムのマシンサイクルによつて決ま
る。このようなサイクルは、様々な命令に対する
共通段がデイジタルコンピユータの各種部分をア
イドル状態にさせることなく迅速に完了できるよ
うに、デイジタルコンピユータのオペレーシヨン
を分割する。キヤツシユメモリアクセスシステム
の通常のパイプライン構造は、命令解読サイク
ル、アドレス生成サイクル、キヤツシユアクセス
サイクル、実行サイクルという順になつている。
こうしたサイクルはキヤツシユメモリアクセスシ
ステムのオペレーシヨンを分割するのに役立つ、
第2図は、特にこの発明で用いている一般的なパ
イプライン構造を示す(また、各段で実行される
主な動作を要約してある)。
シユアクセスシステムに送るためには、初めに、
論理アドレスを生成し、その生成アドレスがいつ
有効であるかを判断しなければならない。論理ア
ドレスは、コンピユータシステムからの命令が解
読され、それが引き続いて、データおよび論理ア
ドレス生成を要求する時に生成される。論理アド
レス生成は、要求データのアドレスを持つ解読さ
れた命令の部分を受け取り、対応する論理アドレ
スを生成するキヤツシユアクセスシステムによつ
て行われる。アドレスの有効性のタイミング、従
つてキヤツシユメモリアクセスシステムの速度
は、パイプライン構造として知られる一連のコン
ピユータシステムのマシンサイクルによつて決ま
る。このようなサイクルは、様々な命令に対する
共通段がデイジタルコンピユータの各種部分をア
イドル状態にさせることなく迅速に完了できるよ
うに、デイジタルコンピユータのオペレーシヨン
を分割する。キヤツシユメモリアクセスシステム
の通常のパイプライン構造は、命令解読サイク
ル、アドレス生成サイクル、キヤツシユアクセス
サイクル、実行サイクルという順になつている。
こうしたサイクルはキヤツシユメモリアクセスシ
ステムのオペレーシヨンを分割するのに役立つ、
第2図は、特にこの発明で用いている一般的なパ
イプライン構造を示す(また、各段で実行される
主な動作を要約してある)。
キヤツシユアクセスシステムの速度は、2通り
の方法で速めることができる。第1に、アドレス
生成サイクルは論理アドレスの生成を速めること
によつて短縮することができる。アドレス生成
は、通常、加算器によつて行われるので、これ
は、より高速の加算器を実施することを意味す
る。しかし、これは、キヤツシユのすべてのアク
セス方法にとつて同一のハードウエア上の解決で
あり、いずれのシステムでも実施できる。加算器
が高速であつても、アドレス要求が増えるにつれ
て増す加算器に関係した遅延が必ずある。第2
に、キヤツシユアクセスのマシンサイクルは、デ
イレクトリが特定のデータバイトのアドレスを発
見し、そのバイトが完全にキヤツシユ内にあるか
どうかを判断する前に行わなければならない比較
回数を減らすことによつて短縮できる。これは、
一般に、メモリのキヤツシユサイズが拡大するた
びに、より大きく複雑な論理回路を必要としてい
る。論理回路が大きくなればなるほど、そして、
設計が複雑になればなるほど、システムの設計時
間は長くかかる。
の方法で速めることができる。第1に、アドレス
生成サイクルは論理アドレスの生成を速めること
によつて短縮することができる。アドレス生成
は、通常、加算器によつて行われるので、これ
は、より高速の加算器を実施することを意味す
る。しかし、これは、キヤツシユのすべてのアク
セス方法にとつて同一のハードウエア上の解決で
あり、いずれのシステムでも実施できる。加算器
が高速であつても、アドレス要求が増えるにつれ
て増す加算器に関係した遅延が必ずある。第2
に、キヤツシユアクセスのマシンサイクルは、デ
イレクトリが特定のデータバイトのアドレスを発
見し、そのバイトが完全にキヤツシユ内にあるか
どうかを判断する前に行わなければならない比較
回数を減らすことによつて短縮できる。これは、
一般に、メモリのキヤツシユサイズが拡大するた
びに、より大きく複雑な論理回路を必要としてい
る。論理回路が大きくなればなるほど、そして、
設計が複雑になればなるほど、システムの設計時
間は長くかかる。
キヤツシユメモリの速度を上げるための先行技
術の試みは、キヤツシユメモリアクセスシステム
がセツトアソシエイテイブという概念にもとづい
て作動できるという事実に頼つている。すなわ
ち、キヤツシユメモリおよびデイレクトリは、複
数の組またはコングルエンスクラスに分割され
る。例えば、256Kバイトのキヤツシユメモリは、
それぞれが128バイトの4ラインを含む512のコン
グルエンスクラスに分割できる。その後、キヤツ
シユメモリは、1コングルエンスクラスのすべて
の4ラインを同時にアドレス指定し、そのコング
ルエンスクラスから選択されたラインが正しいも
のであるかどうかを順次判断することによつてア
クセスされる。この方法は、キヤツシユデイレク
トリ(つまり大きな組)の全部のアドレスを探索
する従来の方法に比べ、必要な比較回数が少なく
なるので、高速になる。1ライン128バイトの2K
のラインを比較する代わりに、そのデイレクトリ
は512ラインを比較するだけである。
術の試みは、キヤツシユメモリアクセスシステム
がセツトアソシエイテイブという概念にもとづい
て作動できるという事実に頼つている。すなわ
ち、キヤツシユメモリおよびデイレクトリは、複
数の組またはコングルエンスクラスに分割され
る。例えば、256Kバイトのキヤツシユメモリは、
それぞれが128バイトの4ラインを含む512のコン
グルエンスクラスに分割できる。その後、キヤツ
シユメモリは、1コングルエンスクラスのすべて
の4ラインを同時にアドレス指定し、そのコング
ルエンスクラスから選択されたラインが正しいも
のであるかどうかを順次判断することによつてア
クセスされる。この方法は、キヤツシユデイレク
トリ(つまり大きな組)の全部のアドレスを探索
する従来の方法に比べ、必要な比較回数が少なく
なるので、高速になる。1ライン128バイトの2K
のラインを比較する代わりに、そのデイレクトリ
は512ラインを比較するだけである。
上記の方法の問題は、この方法が、キヤツシユ
アクセスシステムによつて生成され、メモリにア
クセスするための変換バツフアに送られる論理ア
ドレスにもとづいていることである。これは、同
一の物理アドレスに対して2つの論理アドレスが
割り当てられることが可能なので問題となる。こ
れはシノニムの問題と呼ばれる。従つて、セツト
アソシエイテイブ方式は、論理アドレスを使用す
る以上、(命令によつて要求されたデータとは異
なるデータにアクセスする)潜在的なエラーを含
んでいる。この潜在的なエラーは検査しなければ
ならない。検査によつてエラーが発見されると、
その解決法は正しいアドレスのメモリに再アクセ
スすることである。選択が十分な回数正しい(正
しくない場合の“ミス”に対して“ヒツト”であ
る)としても、無駄な時間が多数の命令に対して
均分にされ、この問題は依然として論理アドレス
生成の性質上存在する。さらに、この問題のため
に検査するための論理は、キヤツシユメモリが大
きくなるにつれて、より大きくなり、その機能を
果たすのにかかる時間も長くなる。デイレクトリ
および論理アドレスに関するヒツト/ミス率を高
めることは、キヤツシユメモリアクセスシステム
の速度を増すが、キヤツシユアクセスシステムに
関する設計を単純にすることには役立たない。
アクセスシステムによつて生成され、メモリにア
クセスするための変換バツフアに送られる論理ア
ドレスにもとづいていることである。これは、同
一の物理アドレスに対して2つの論理アドレスが
割り当てられることが可能なので問題となる。こ
れはシノニムの問題と呼ばれる。従つて、セツト
アソシエイテイブ方式は、論理アドレスを使用す
る以上、(命令によつて要求されたデータとは異
なるデータにアクセスする)潜在的なエラーを含
んでいる。この潜在的なエラーは検査しなければ
ならない。検査によつてエラーが発見されると、
その解決法は正しいアドレスのメモリに再アクセ
スすることである。選択が十分な回数正しい(正
しくない場合の“ミス”に対して“ヒツト”であ
る)としても、無駄な時間が多数の命令に対して
均分にされ、この問題は依然として論理アドレス
生成の性質上存在する。さらに、この問題のため
に検査するための論理は、キヤツシユメモリが大
きくなるにつれて、より大きくなり、その機能を
果たすのにかかる時間も長くなる。デイレクトリ
および論理アドレスに関するヒツト/ミス率を高
めることは、キヤツシユメモリアクセスシステム
の速度を増すが、キヤツシユアクセスシステムに
関する設計を単純にすることには役立たない。
その問題を例示するキヤツシユメモリにアクセ
スする先行技術の方法は、1つのコングルエンス
クラス内にラインの選択が、そのコングルエンス
クラスから使用された最後のラインにもとづいて
いる時間である。この選択は、コングルエンスク
ラスから使用された最後のラインがやはりそこに
データバイトを持つている最も確実性の高いライ
ンであるという(すぐれた推測ではあるが)推測
にすぎない。この推測はその時間の相当部分正し
いが、推測はやはりキヤツシユアクセスシステム
のアドレス生成部分からの論理(仮想)アドレス
にもとづいて行われる。このことは、この技法
が、2つの論理アドレスが同一の物理アドレスに
関係し得る(シノニムの問題)という事実に関す
るエラーを排除できないことを意味する。その検
査論理はやはり、このエラーのために、キヤツシ
ユメモリが大きくなるたびに拡大せざるをえな
い。このシノニムの問題を解決する他の先行技術
の方法は、潜在的なシノニムが生じた場合、潜在
的なアドレスにフラグを立て、そのアドレスを格
納することを中心としている。システムはその
後、物理アドレスを一度検索するだけである。こ
の手法は、シノニムの問題を避けているだけで、
解決してはおらず、依然としてキヤツシユメモリ
が大きくなるごとに拡大しなければならない論理
を必要とする。
スする先行技術の方法は、1つのコングルエンス
クラス内にラインの選択が、そのコングルエンス
クラスから使用された最後のラインにもとづいて
いる時間である。この選択は、コングルエンスク
ラスから使用された最後のラインがやはりそこに
データバイトを持つている最も確実性の高いライ
ンであるという(すぐれた推測ではあるが)推測
にすぎない。この推測はその時間の相当部分正し
いが、推測はやはりキヤツシユアクセスシステム
のアドレス生成部分からの論理(仮想)アドレス
にもとづいて行われる。このことは、この技法
が、2つの論理アドレスが同一の物理アドレスに
関係し得る(シノニムの問題)という事実に関す
るエラーを排除できないことを意味する。その検
査論理はやはり、このエラーのために、キヤツシ
ユメモリが大きくなるたびに拡大せざるをえな
い。このシノニムの問題を解決する他の先行技術
の方法は、潜在的なシノニムが生じた場合、潜在
的なアドレスにフラグを立て、そのアドレスを格
納することを中心としている。システムはその
後、物理アドレスを一度検索するだけである。こ
の手法は、シノニムの問題を避けているだけで、
解決してはおらず、依然としてキヤツシユメモリ
が大きくなるごとに拡大しなければならない論理
を必要とする。
この発明の目的は、アドレスにアクセスできる
速度を増すキヤツシユメモリアクセスシステムを
提供することにある。
速度を増すキヤツシユメモリアクセスシステムを
提供することにある。
この発明の第2の目的は、キヤツシユメモリに
関係したコンピユータのマシンサイクルを短縮す
ることによつて、アドレスにアクセスできる速度
を増すキヤツシユメモリアクセスシステムを提供
することにある。
関係したコンピユータのマシンサイクルを短縮す
ることによつて、アドレスにアクセスできる速度
を増すキヤツシユメモリアクセスシステムを提供
することにある。
この発明の第3の目的は、セツトアソシエイテ
イブキヤツシユメモリに関係したシノニムの問題
を避けるキヤツシユメモリアクセスシステムを提
供することにある。
イブキヤツシユメモリに関係したシノニムの問題
を避けるキヤツシユメモリアクセスシステムを提
供することにある。
この発明の第4の目的は、命令に応答してアク
セスされたアドレスがその命令によつて選択され
るアドレスの一部のみにもとづいて予測される、
キヤツシユメモリアクセスシステムを提供するこ
とにある。
セスされたアドレスがその命令によつて選択され
るアドレスの一部のみにもとづいて予測される、
キヤツシユメモリアクセスシステムを提供するこ
とにある。
この発明の第5目的は、予測されたアドレスが
迅速にかつ低水準の間違つた予測によつて生成さ
れる、キヤツシユメモリアクセスシステムを提供
することにある。
迅速にかつ低水準の間違つた予測によつて生成さ
れる、キヤツシユメモリアクセスシステムを提供
することにある。
この発明の第6の目的は、予測された実アドレ
スが、キヤツシユメモリがその予測された実アド
レスに関係したデータを検索している間に検査さ
れる、キヤツシユメモリアクセスシステムを提供
することにある。
スが、キヤツシユメモリがその予測された実アド
レスに関係したデータを検索している間に検査さ
れる、キヤツシユメモリアクセスシステムを提供
することにある。
この発明の第7の目的は、予測された実アドレ
スの検査が、次に正確な実アドレスの表にアクセ
スするために使用される仮想アドレスにもとづい
ている、キヤツシユメモリアクセスシステムを提
供することにある。
スの検査が、次に正確な実アドレスの表にアクセ
スするために使用される仮想アドレスにもとづい
ている、キヤツシユメモリアクセスシステムを提
供することにある。
この発明の第8の目的は、予測された実アドレ
スの出所が間違つた予測実アドレスの頻度を最小
限にするために更新される、キヤツシユメモリア
クセスシステムを提供することにある。
スの出所が間違つた予測実アドレスの頻度を最小
限にするために更新される、キヤツシユメモリア
クセスシステムを提供することにある。
この発明は、ハードウエアの改良とは関係な
く、アドレス生成マシンサイクルを短縮し、キヤ
ツシユアクセスマシンサイクルを短縮しながら論
理アドレス指定のシノニムの問題を避けるキヤツ
シユアクセスシステムを実施するものである。こ
の発明は、論理アドレスの生成とは無関係に実ア
ドレスがいずれになるかを予測するという概念に
もとづいている。これにより、キヤツシユメモリ
は、仮想アドレスが生成させるのを待ち、その仮
想アドレスを実アドレスを変換するよりも高速に
情報を検索することができる。これは、第1に、
アドレス生成の加算器がバイパスされるので遅延
を生じず、変換バツフアおよびデイレクトリもバ
イパスされるので遅延を生じないという2点で高
速になる。
く、アドレス生成マシンサイクルを短縮し、キヤ
ツシユアクセスマシンサイクルを短縮しながら論
理アドレス指定のシノニムの問題を避けるキヤツ
シユアクセスシステムを実施するものである。こ
の発明は、論理アドレスの生成とは無関係に実ア
ドレスがいずれになるかを予測するという概念に
もとづいている。これにより、キヤツシユメモリ
は、仮想アドレスが生成させるのを待ち、その仮
想アドレスを実アドレスを変換するよりも高速に
情報を検索することができる。これは、第1に、
アドレス生成の加算器がバイパスされるので遅延
を生じず、変換バツフアおよびデイレクトリもバ
イパスされるので遅延を生じないという2点で高
速になる。
実アドレスの予測は、たとえ極めて良好なもの
であつても、予測にすぎないので、検査を必要と
する。この検査は、キヤツシユメモリの予測アド
レスからのデータの検索と平行して行われる。検
査経路は、加算器、変換バツフアおよびデイレク
トリに関係した機能を実行するが、これらの機能
はキヤツシユアクセスと平行して実行されるの
で、予測アドレスが正しければデイレクトリ検索
を遅らせることはない。予測アドレスが正しくな
い場合、キヤツシユは再びアクセスされ、1マシ
ンサイクルが無駄になる。このキヤツシユの再ア
クセスは、予測実アドレスを検査するために以前
のマシンサイクルで正しいアドレスがすでに生成
されているので、2の余分なマシンサイクル(正
しいアドレスを生成するためのサイクルとキヤツ
シユメモリを再アクセスするためのサイクル)を
必要とすることはない。さらに、キヤツシユが1
マシンサイクルを無駄にしなければならないとし
ても、こうした無駄なサイクルの発生は、予測実
アドレスの推測を仮想アドレスにもとづかせない
ことによつて最低限に抑えられる。これによつて
シノニムの問題は避けられ、無駄になつた各サイ
クルは多数の正確な推測に均分にすることがで
き、従つて、キヤツシユアクセスシステムの全体
の速度は高まる。
であつても、予測にすぎないので、検査を必要と
する。この検査は、キヤツシユメモリの予測アド
レスからのデータの検索と平行して行われる。検
査経路は、加算器、変換バツフアおよびデイレク
トリに関係した機能を実行するが、これらの機能
はキヤツシユアクセスと平行して実行されるの
で、予測アドレスが正しければデイレクトリ検索
を遅らせることはない。予測アドレスが正しくな
い場合、キヤツシユは再びアクセスされ、1マシ
ンサイクルが無駄になる。このキヤツシユの再ア
クセスは、予測実アドレスを検査するために以前
のマシンサイクルで正しいアドレスがすでに生成
されているので、2の余分なマシンサイクル(正
しいアドレスを生成するためのサイクルとキヤツ
シユメモリを再アクセスするためのサイクル)を
必要とすることはない。さらに、キヤツシユが1
マシンサイクルを無駄にしなければならないとし
ても、こうした無駄なサイクルの発生は、予測実
アドレスの推測を仮想アドレスにもとづかせない
ことによつて最低限に抑えられる。これによつて
シノニムの問題は避けられ、無駄になつた各サイ
クルは多数の正確な推測に均分にすることがで
き、従つて、キヤツシユアクセスシステムの全体
の速度は高まる。
〔実施態様」
この発明のキヤツシユアクセスシステムは、ア
クセス部と検査部の2つの部分に分かれる。キヤ
ツシユアクセスシステムは、コンピユータシステ
ム内のプロセツサから命令を受け取り、解読す
る。解読された命令はキヤツシユメモリ内のデー
タビツトにアクセスするために使用されるアドレ
ス情報を含むものである。解読された命令からの
情報は、レジスタインジケータの形式をしてい
る。これらのインジケータは、コンピユータ内部
のどのレジスタがキヤツシユメモリにアクセスす
るために必要なアドレス情報を含んでいるかをキ
ヤツシユアクセスシステムに指示する。この発明
のキヤツシユアクセスシステムには、16の汎用レ
ジスタがある。解読された命令によつて指示され
たレジスタの1つは、基底レジスタと呼ばれ、現
在のアドレスを含んでいる。キヤツシユアクセス
システムのアクセス部は、予測実アドレスを生成
するために基底レジスタの内容の一部(現在のア
ドレス)を使用する。この予測実アドレスは、名
目上、キヤツシユアクセスシステムの検査部が生
成するアドレスと同一であり、解読された命令に
よつて与えられた全部のアドレス情報にもとづく
実アドレスと呼ばれる。予測実アドレスが検査部
によつて生成されたアドレスと同一でない場合、
その予測実アドレスは実アドレスに置き換えら
れ、キヤツシユメモリは再アクセスされる。予測
実アドレスが実アドレスと同一である場合は、予
測実アドレスによつてアクセスされたデータが、
解読された命令による要求通りに実行されるため
に算術論理演算装置(ALU)に送られる。
クセス部と検査部の2つの部分に分かれる。キヤ
ツシユアクセスシステムは、コンピユータシステ
ム内のプロセツサから命令を受け取り、解読す
る。解読された命令はキヤツシユメモリ内のデー
タビツトにアクセスするために使用されるアドレ
ス情報を含むものである。解読された命令からの
情報は、レジスタインジケータの形式をしてい
る。これらのインジケータは、コンピユータ内部
のどのレジスタがキヤツシユメモリにアクセスす
るために必要なアドレス情報を含んでいるかをキ
ヤツシユアクセスシステムに指示する。この発明
のキヤツシユアクセスシステムには、16の汎用レ
ジスタがある。解読された命令によつて指示され
たレジスタの1つは、基底レジスタと呼ばれ、現
在のアドレスを含んでいる。キヤツシユアクセス
システムのアクセス部は、予測実アドレスを生成
するために基底レジスタの内容の一部(現在のア
ドレス)を使用する。この予測実アドレスは、名
目上、キヤツシユアクセスシステムの検査部が生
成するアドレスと同一であり、解読された命令に
よつて与えられた全部のアドレス情報にもとづく
実アドレスと呼ばれる。予測実アドレスが検査部
によつて生成されたアドレスと同一でない場合、
その予測実アドレスは実アドレスに置き換えら
れ、キヤツシユメモリは再アクセスされる。予測
実アドレスが実アドレスと同一である場合は、予
測実アドレスによつてアクセスされたデータが、
解読された命令による要求通りに実行されるため
に算術論理演算装置(ALU)に送られる。
予測実アドレスは、キヤツシユアクセスシステ
ムのアクセス部において、ヒストリテーブルから
生成される。ヒストリテーブルは、最も新しく使
用された現在アドレスおよび、それらの現在アド
レスについてキヤツシユメモリアクセスシステム
の検査部によつて生成された対応する実アドレス
のリストである。現在アドレスの一部は、ヒスト
リテーブルの現在アドレスのリストの各アドレス
の対応する部分と比較される。現在アドレスのそ
の部分がヒストリテーブルの現在アドレスの部分
と一致した場合、対応する最も新しく使用された
実アドレスが予測実アドレスになる。このアドレ
スはその後、キヤツシユアクセスシステムの検査
部が解読された命令によつて要求された実アドレ
スを生成している間に、キヤツシユメモリにアク
セスするために使用される。
ムのアクセス部において、ヒストリテーブルから
生成される。ヒストリテーブルは、最も新しく使
用された現在アドレスおよび、それらの現在アド
レスについてキヤツシユメモリアクセスシステム
の検査部によつて生成された対応する実アドレス
のリストである。現在アドレスの一部は、ヒスト
リテーブルの現在アドレスのリストの各アドレス
の対応する部分と比較される。現在アドレスのそ
の部分がヒストリテーブルの現在アドレスの部分
と一致した場合、対応する最も新しく使用された
実アドレスが予測実アドレスになる。このアドレ
スはその後、キヤツシユアクセスシステムの検査
部が解読された命令によつて要求された実アドレ
スを生成している間に、キヤツシユメモリにアク
セスするために使用される。
キヤツシユメモリアクセスシステムの検査部
は、現在アドレスの全部から仮想アドレスを生成
するために加算器を使用する。この仮想アドレス
はその後、変換索引緩衝機構(TLB)の仮想ア
ドレスのリストと比較される。このTLBアドレ
スリストは、ヒストリテーブルが加算器によつて
処理されていない現在アドレスの部分によつてア
クセスされるのに対し、TLBが加算器によつて
生成された仮想アドレスによつてアクセスされる
ことから、ヒストリテーブルとは異なるものであ
る。TLBは、各仮想アドレスについて対応する
実アドレスを含んでおり、加算器からの仮想アド
レスとTLBの仮想アドレスとの間に一致が見ら
れた場合、対応する実アドレスはその後、キヤツ
シユアクセスシステムのアクセス部ですでに生成
されている予測実アドレスと比較される。予測実
アドレスが実アドレスと一致すれば、アクセスシ
ステムは、キヤツシユアクセスマシンサイクルの
後に再アクセスされない。予測実アドレスが実ア
ドレスと一致しない場合、キヤツシユメモリは、
そのキヤツシユアクセスのマシンサイクルの後の
マシンサイクルで再アクセスされる。
は、現在アドレスの全部から仮想アドレスを生成
するために加算器を使用する。この仮想アドレス
はその後、変換索引緩衝機構(TLB)の仮想ア
ドレスのリストと比較される。このTLBアドレ
スリストは、ヒストリテーブルが加算器によつて
処理されていない現在アドレスの部分によつてア
クセスされるのに対し、TLBが加算器によつて
生成された仮想アドレスによつてアクセスされる
ことから、ヒストリテーブルとは異なるものであ
る。TLBは、各仮想アドレスについて対応する
実アドレスを含んでおり、加算器からの仮想アド
レスとTLBの仮想アドレスとの間に一致が見ら
れた場合、対応する実アドレスはその後、キヤツ
シユアクセスシステムのアクセス部ですでに生成
されている予測実アドレスと比較される。予測実
アドレスが実アドレスと一致すれば、アクセスシ
ステムは、キヤツシユアクセスマシンサイクルの
後に再アクセスされない。予測実アドレスが実ア
ドレスと一致しない場合、キヤツシユメモリは、
そのキヤツシユアクセスのマシンサイクルの後の
マシンサイクルで再アクセスされる。
予測実アドレスと実アドレスとの比較が一致し
ない場合、キヤツシユアクセスシステムは、2つ
の機能を実行しなければならない。第1が、前述
の通りキヤツシユへの再アクセスであり、第2
が、予測実アドレスの出所の更新である。これ
は、予測実アドレスの出所が命令の最新状態を反
映させるためである。予測実アドレスの出所の更
新は、ヒストリテーブルが、ヒストリテーブルで
比較される現在アドレスの部分に対応する最新の
実アドレスを反映しなければならないことを意味
する。従つて、ヒストリテーブルは、ヒストリテ
ーブルの現在アドレスの部分に対応する実アドレ
スをTLBからの実アドレスと置き換えるか、ま
たは、ヒストリテーブルは、現在アドレスおよび
対応する実アドレスの両部分をTLBおよび基底
レジスタからの値に置き換える。エラーがあるた
びにヒストリテーブルを更新することは、誤つた
予測実アドレスの発生を低水準に維持し、それに
よつて、再アクセス状態の必要が少なくなるの
で、キヤツシユメモリアクセス速度を高めるのに
役立つ。
ない場合、キヤツシユアクセスシステムは、2つ
の機能を実行しなければならない。第1が、前述
の通りキヤツシユへの再アクセスであり、第2
が、予測実アドレスの出所の更新である。これ
は、予測実アドレスの出所が命令の最新状態を反
映させるためである。予測実アドレスの出所の更
新は、ヒストリテーブルが、ヒストリテーブルで
比較される現在アドレスの部分に対応する最新の
実アドレスを反映しなければならないことを意味
する。従つて、ヒストリテーブルは、ヒストリテ
ーブルの現在アドレスの部分に対応する実アドレ
スをTLBからの実アドレスと置き換えるか、ま
たは、ヒストリテーブルは、現在アドレスおよび
対応する実アドレスの両部分をTLBおよび基底
レジスタからの値に置き換える。エラーがあるた
びにヒストリテーブルを更新することは、誤つた
予測実アドレスの発生を低水準に維持し、それに
よつて、再アクセス状態の必要が少なくなるの
で、キヤツシユメモリアクセス速度を高めるのに
役立つ。
予測実アドレスの出所は、ヒストリテーブルと
組み合わせて変換予見テーブル(TLAT)とす
ることもできる。TLATは、ヒストリテーブル
と同様、最も新しく使用された現在アドレスおよ
び、TLBによつて生成された対応する実アドレ
スのリストである。しかし、ヒストリテーブルに
比べて小さく、予測実アドレスと実アドレスとの
間の比較における各エラーではなく各命令解読マ
シンサイクルで更新されるという点で、ヒストリ
テーブルと異なつている。TLATは、現在アド
レスの部分とTLATの現在アドレスを比較し、
一致すれば、TLATの対応する実アドレスが予
測実アドレスになる。TLATは、最も確からし
い最新アドレスだけがTLATにあることを保証
するためにヒストリテーブルとともに作業する
(すなわち、TLATはヒストリテーブルの窓であ
る)。これは、TLATがヒストリテーブルよりも
小さいためであり、このことはTLATが少ない
比較を行い、高速の予測実アドレス生成をもたら
すことを意味している。しかし、小さいTLAT
もやはり、誤つた予測実アドレスの生成数が増え
るのを避けるために高められた正確さを要求す
る。TLATが現在アドレスの部分とその現在ア
ドレスを比較している間、ヒストリテーブルも同
じ比較を行つている。ヒストリテーブルの出力は
その後、次の解読マシンサイクルの最後に
TLATに置かれる。これは、TLATが各解読マ
シンサイクルで更新され、それによつてその正確
さを最大にしている。大きなヒストリテーブル
は、実アドレスと予測実アドレスとの間で誤つた
比較があつた場合にのみ更新される。ヒストリテ
ーブルと組み合わせたTLATは、予測実アドレ
スの高速生成を可能にすると同時に、誤つた予測
実アドレスを最小にし、それによつてキヤツシユ
アクセスシステムの全体の速度を高める。
組み合わせて変換予見テーブル(TLAT)とす
ることもできる。TLATは、ヒストリテーブル
と同様、最も新しく使用された現在アドレスおよ
び、TLBによつて生成された対応する実アドレ
スのリストである。しかし、ヒストリテーブルに
比べて小さく、予測実アドレスと実アドレスとの
間の比較における各エラーではなく各命令解読マ
シンサイクルで更新されるという点で、ヒストリ
テーブルと異なつている。TLATは、現在アド
レスの部分とTLATの現在アドレスを比較し、
一致すれば、TLATの対応する実アドレスが予
測実アドレスになる。TLATは、最も確からし
い最新アドレスだけがTLATにあることを保証
するためにヒストリテーブルとともに作業する
(すなわち、TLATはヒストリテーブルの窓であ
る)。これは、TLATがヒストリテーブルよりも
小さいためであり、このことはTLATが少ない
比較を行い、高速の予測実アドレス生成をもたら
すことを意味している。しかし、小さいTLAT
もやはり、誤つた予測実アドレスの生成数が増え
るのを避けるために高められた正確さを要求す
る。TLATが現在アドレスの部分とその現在ア
ドレスを比較している間、ヒストリテーブルも同
じ比較を行つている。ヒストリテーブルの出力は
その後、次の解読マシンサイクルの最後に
TLATに置かれる。これは、TLATが各解読マ
シンサイクルで更新され、それによつてその正確
さを最大にしている。大きなヒストリテーブル
は、実アドレスと予測実アドレスとの間で誤つた
比較があつた場合にのみ更新される。ヒストリテ
ーブルと組み合わせたTLATは、予測実アドレ
スの高速生成を可能にすると同時に、誤つた予測
実アドレスを最小にし、それによつてキヤツシユ
アクセスシステムの全体の速度を高める。
開示されたこの発明の好ましい実施態様を第1
図に示す。デイジタルコンピユータシステムが命
令レジスタ(IR)10に命令を送ると、第1の
記憶装置がその命令をIR10に格納する。この
第1の記憶装置は、命令が格納された時を確実に
規定するためのラツチまたは同様の標準形式の装
置である。命令は、通常、コンピユータに記憶さ
れ、処理のために命令レジスタに順に送られる命
令のスタツクからのいくつかの命令のうちの一つ
である。命令は一連の連結されたビツトから構成
される。また、命令コード部とオペランド部の2
つの部分に分かれる。命令の上位ビツトは命令の
命令コード部に割り当てられる。命令は解読さ
れ、解読された命令コード部は算術論理演算装置
(ALU)500に何らかの機能を実行するように
要求する。その機能がコンピユータの記憶装置か
らデータを要求する場合、コンピユータはその機
能を実行する前にそのデータを検索しなければな
らない。命令のオペランド部は、コンピユータの
メモリまたは記憶装置内にあつて、オペランドに
よつて要求されたデータの位置を指示するアドレ
ス情報を含んでいる。
図に示す。デイジタルコンピユータシステムが命
令レジスタ(IR)10に命令を送ると、第1の
記憶装置がその命令をIR10に格納する。この
第1の記憶装置は、命令が格納された時を確実に
規定するためのラツチまたは同様の標準形式の装
置である。命令は、通常、コンピユータに記憶さ
れ、処理のために命令レジスタに順に送られる命
令のスタツクからのいくつかの命令のうちの一つ
である。命令は一連の連結されたビツトから構成
される。また、命令コード部とオペランド部の2
つの部分に分かれる。命令の上位ビツトは命令の
命令コード部に割り当てられる。命令は解読さ
れ、解読された命令コード部は算術論理演算装置
(ALU)500に何らかの機能を実行するように
要求する。その機能がコンピユータの記憶装置か
らデータを要求する場合、コンピユータはその機
能を実行する前にそのデータを検索しなければな
らない。命令のオペランド部は、コンピユータの
メモリまたは記憶装置内にあつて、オペランドに
よつて要求されたデータの位置を指示するアドレ
ス情報を含んでいる。
命令のオペランドは、3区分に分けられる一連
のビツトであり、これらの区分のうちの2つがキ
ヤツシユメモリ内のデータの希望のアドレスを生
成する際に使用される情報を保持するコンピユー
タ内のレジスタを指定する。第3の区分はそれ自
体で希望のアドレスの生成に使用される。上位ビ
ツトは指標レジスタを指定し、中間部のビツトは
基底レジスタを指定する。指標レジスタおよび基
底レジスタは、コンピユータの汎用レジスタ
(GRP)320の一部である。下位群は変位ビツ
ト16と呼ばれる。指標レジスタおよび基底レジ
スタの内容は、仮想アドレスを生成するために加
算器310によつて変位アドレス16に加算され
る。仮想アドレスは、仮想アドレスレジスタ
(VAR)40に入れられ、キヤツシユメモリのデ
ータの希望のまたは実アドレスを内容とする変換
索引緩衝機構(TLB)420と呼ばれる表に指
標を付けるために使用される。
のビツトであり、これらの区分のうちの2つがキ
ヤツシユメモリ内のデータの希望のアドレスを生
成する際に使用される情報を保持するコンピユー
タ内のレジスタを指定する。第3の区分はそれ自
体で希望のアドレスの生成に使用される。上位ビ
ツトは指標レジスタを指定し、中間部のビツトは
基底レジスタを指定する。指標レジスタおよび基
底レジスタは、コンピユータの汎用レジスタ
(GRP)320の一部である。下位群は変位ビツ
ト16と呼ばれる。指標レジスタおよび基底レジ
スタの内容は、仮想アドレスを生成するために加
算器310によつて変位アドレス16に加算され
る。仮想アドレスは、仮想アドレスレジスタ
(VAR)40に入れられ、キヤツシユメモリのデ
ータの希望のまたは実アドレスを内容とする変換
索引緩衝機構(TLB)420と呼ばれる表に指
標を付けるために使用される。
キヤツシユメモリアクセスシステム5は、命令
が解読された後、要求されたデータがコンピユー
タのキヤツシユメモリ410内にあるかどうかを
判断する。データは通常、ワードと呼ばれる一群
のデータビツトとしてアクセスされる。データが
キヤツシユメモリ410にある場合、キヤツシユ
メモリアクセスシステム5は、命令の解読の後の
マシンサイクルでALU500によつて使用され
るデータを検索する。データがコンピユータのキ
ヤツシユメモリにない場合、ALU500は、主
記憶装置アクセスシステムからデータを受け取る
が、それはこの出願の範囲ではない。キヤツシユ
メモリアクセスシステム5は、アクセス部と検査
部の2つの部分に分かれる。アクセス部はキヤツ
シユデイレクトリ430、キヤツシユメモリ装置
400およびALU500を含んでいる。アクセ
ス部は、予測アドレス生成装置200の使用によ
つて、キヤツシユメモリ410からデータを直接
検索する。検査部は、キヤツシユメモリによつて
検索されたデータが命令によつて要求されたデー
タであることを保証する。検査部は、仮想アドレ
ス生成装置300、変換索引緩衝機構(TLB)
420および、(キヤツシユシステムのアクセス
部によつて生成された)予測実アドレスを検査部
内でTLB420によつて生成された実アドレス
と比較するための比較装置440とを含んでい
る。
が解読された後、要求されたデータがコンピユー
タのキヤツシユメモリ410内にあるかどうかを
判断する。データは通常、ワードと呼ばれる一群
のデータビツトとしてアクセスされる。データが
キヤツシユメモリ410にある場合、キヤツシユ
メモリアクセスシステム5は、命令の解読の後の
マシンサイクルでALU500によつて使用され
るデータを検索する。データがコンピユータのキ
ヤツシユメモリにない場合、ALU500は、主
記憶装置アクセスシステムからデータを受け取る
が、それはこの出願の範囲ではない。キヤツシユ
メモリアクセスシステム5は、アクセス部と検査
部の2つの部分に分かれる。アクセス部はキヤツ
シユデイレクトリ430、キヤツシユメモリ装置
400およびALU500を含んでいる。アクセ
ス部は、予測アドレス生成装置200の使用によ
つて、キヤツシユメモリ410からデータを直接
検索する。検査部は、キヤツシユメモリによつて
検索されたデータが命令によつて要求されたデー
タであることを保証する。検査部は、仮想アドレ
ス生成装置300、変換索引緩衝機構(TLB)
420および、(キヤツシユシステムのアクセス
部によつて生成された)予測実アドレスを検査部
内でTLB420によつて生成された実アドレス
と比較するための比較装置440とを含んでい
る。
キヤツシユメモリアレイ410は、それぞれ4
ラインの512のコングルエンスクラスに分かれ
ており、各ラインは、128バイトのデータを含み、
従つて、256Kバイトのキヤツシユメモリアレイ
となる。すべてのコングルエンスクラスのうちの
1ラインは1組を成し、従つて、メモリは、組、
コングルエンスクラスおよびライン内のバイトに
対応したビツトを選択することによつてアクセス
される。予測実アドレス生成装置(PRAGM)
200は、その組、コングルエンスクラスの部
分、アドレスの識別を保持するためのアドレスタ
グに関係したビツトを選択する。これらの19ビツ
トは予測実アドレスの上位部分を成し、予測実ア
ドレスレジスタ(PRAR)30の上位部分に置
かれる。仮想アドレス生成装置(VAGM)30
0は仮想アドレスを生成し、その仮想アドレスの
一部12ビツト(ページオフセツトビツト)は、そ
のライン内のデータバイトおよびコングルエンス
クラスの部分に関係したビツトを内容としてい
る。これらのビツトは予測実アドレスの下位部分
を成し、予測実アドレスレジスタ(PRAR)3
0の下位部分に置かれる。予測実アドレス生成装
置および仮想アドレス生成装置の両方とも、その
結果を命令解読マシンサイクル中にPRAR30
に入れる。キヤツシユメモリ装置(CMM)40
0は、キヤツシユメモリアレイ410内部で、
PRAR30にあるその予測実アドレスの位置か
らデータを順に検索する。データの検索は、命令
解読サイクルの後の、キヤツシユアクセスマシン
サイクルとも呼ばれる、マシンサイクルで実行さ
れる。
ラインの512のコングルエンスクラスに分かれ
ており、各ラインは、128バイトのデータを含み、
従つて、256Kバイトのキヤツシユメモリアレイ
となる。すべてのコングルエンスクラスのうちの
1ラインは1組を成し、従つて、メモリは、組、
コングルエンスクラスおよびライン内のバイトに
対応したビツトを選択することによつてアクセス
される。予測実アドレス生成装置(PRAGM)
200は、その組、コングルエンスクラスの部
分、アドレスの識別を保持するためのアドレスタ
グに関係したビツトを選択する。これらの19ビツ
トは予測実アドレスの上位部分を成し、予測実ア
ドレスレジスタ(PRAR)30の上位部分に置
かれる。仮想アドレス生成装置(VAGM)30
0は仮想アドレスを生成し、その仮想アドレスの
一部12ビツト(ページオフセツトビツト)は、そ
のライン内のデータバイトおよびコングルエンス
クラスの部分に関係したビツトを内容としてい
る。これらのビツトは予測実アドレスの下位部分
を成し、予測実アドレスレジスタ(PRAR)3
0の下位部分に置かれる。予測実アドレス生成装
置および仮想アドレス生成装置の両方とも、その
結果を命令解読マシンサイクル中にPRAR30
に入れる。キヤツシユメモリ装置(CMM)40
0は、キヤツシユメモリアレイ410内部で、
PRAR30にあるその予測実アドレスの位置か
らデータを順に検索する。データの検索は、命令
解読サイクルの後の、キヤツシユアクセスマシン
サイクルとも呼ばれる、マシンサイクルで実行さ
れる。
キヤツシユメモリ装置(CMM)400が予測
実アドレスを生成し、その予測実アドレスによつ
て指定された位置のデータを検索している間、キ
ヤツシユメモリアクセスシステム5は、その予測
実アドレスが命令によつて要求されたアドレスで
あることを検査する。この検査は、命令解読マシ
ンサイクルにおいて、仮想アドレス生成装置
(VAGM)300によつて仮想アドレスを生成す
ることによつて行われる。この仮想アドレスは仮
想アドレスレジスタ(VAR)40に入れられ、
そのレジスタの内容は変換索引緩衝機構(TLB)
420のエントリと順次比較される。TLB42
0は、VAGM300によつて生成された潜在的
アドレスおよび、各潜在的仮想アドレスについて
の対応する実アドレス(命令によつて要求された
実際のアドレス)を含んでいる。潜在的仮想アド
レスがVAR40の仮想アドレスと一致した場合、
TLB420は、一致した潜在的仮想アドレスに
対応した実アドレスを選択する。仮想アドレスに
対応する実アドレスのTLB420のエントリか
らの選択は、キヤツシユアクセスマシンサイクル
において行われる。
実アドレスを生成し、その予測実アドレスによつ
て指定された位置のデータを検索している間、キ
ヤツシユメモリアクセスシステム5は、その予測
実アドレスが命令によつて要求されたアドレスで
あることを検査する。この検査は、命令解読マシ
ンサイクルにおいて、仮想アドレス生成装置
(VAGM)300によつて仮想アドレスを生成す
ることによつて行われる。この仮想アドレスは仮
想アドレスレジスタ(VAR)40に入れられ、
そのレジスタの内容は変換索引緩衝機構(TLB)
420のエントリと順次比較される。TLB42
0は、VAGM300によつて生成された潜在的
アドレスおよび、各潜在的仮想アドレスについて
の対応する実アドレス(命令によつて要求された
実際のアドレス)を含んでいる。潜在的仮想アド
レスがVAR40の仮想アドレスと一致した場合、
TLB420は、一致した潜在的仮想アドレスに
対応した実アドレスを選択する。仮想アドレスに
対応する実アドレスのTLB420のエントリか
らの選択は、キヤツシユアクセスマシンサイクル
において行われる。
TLB420によつて選択された実アドレスは、
CMM400内の比較装置に順次送られる。
CMM400の比較装置は、PRAR30の予測実
アドレスをTLB420によつて生成された実ア
ドレスと比較するためのものである。比較装置
は、その2つのアドレスをそれらが同一であるか
どうかを判断するためにビツトごとに比較する。
予測実アドレスと実アドレスの比較は、TLB4
20の実アドレス選択の後のキヤツシユアクセス
マシンサイクルにおいて行われる。実アドレスと
予測実アドレスとの比較は、キヤツシユアクセス
マシンサイクルにおいてキヤツシユメモリアレイ
にアクセスするために使用される予測実アドレス
の検査となる。予測実アドレスと実アドレスの比
較が一致した場合、CMM400はそのデータを
検索し、キヤツシユアクセスマシンサイクル後の
実行のためにALU500に送る。比較が一致し
ない場合は、CMM400は、キヤツシユメモリ
アレイ410内の、TLB420から得た実アド
レスの位置からデータを検索する。CMM400
は、キヤツシユアクセスマシンサイクルの次のマ
シンサイクルでTLBの実アドレスからデータを
検索する。CMM400がTLB420の実アドレ
スからデータを検索すると、CMM400は実行
のためにALU500にそのデータを送る。
CMM400内の比較装置に順次送られる。
CMM400の比較装置は、PRAR30の予測実
アドレスをTLB420によつて生成された実ア
ドレスと比較するためのものである。比較装置
は、その2つのアドレスをそれらが同一であるか
どうかを判断するためにビツトごとに比較する。
予測実アドレスと実アドレスの比較は、TLB4
20の実アドレス選択の後のキヤツシユアクセス
マシンサイクルにおいて行われる。実アドレスと
予測実アドレスとの比較は、キヤツシユアクセス
マシンサイクルにおいてキヤツシユメモリアレイ
にアクセスするために使用される予測実アドレス
の検査となる。予測実アドレスと実アドレスの比
較が一致した場合、CMM400はそのデータを
検索し、キヤツシユアクセスマシンサイクル後の
実行のためにALU500に送る。比較が一致し
ない場合は、CMM400は、キヤツシユメモリ
アレイ410内の、TLB420から得た実アド
レスの位置からデータを検索する。CMM400
は、キヤツシユアクセスマシンサイクルの次のマ
シンサイクルでTLBの実アドレスからデータを
検索する。CMM400がTLB420の実アドレ
スからデータを検索すると、CMM400は実行
のためにALU500にそのデータを送る。
CMM400は、図示されていないが受信装置
を有しており、これが実アドレスまたは予測実ア
ドレスを受け取る。CMM400は、自己に送ら
れたアドレスの形式(予測実アドレスまたは実ア
ドレス)にかかわらず、同一の機能を実行する。
受信装置は、受け取つたアドレスをキヤツシユデ
イレクトリ430内に含まれるアドレスと比較す
る。キヤツシユデイレクトリは、このデイレクト
リに登録された2Kの実アドレスに対応する512の
コングルエンスクラスを含んでいる。コングルエ
ンスクラスは、各コングルエンスクラス内に含ま
れる4の実アドレスの同一の9ビツト部分によつ
て識別される。受信装置は、デイレクトリ430
内の4の実アドレスの9ビツト部分を、受け取つ
たアドレスの対応する9ビツト部分と比較する。
その後、受信装置は、デイレクトリで選択された
4のアドレス値を、受け取つたアドレスがいずれ
の組に含まれているかを判断するために、受け取
つた(実または予測実)アドレスと比較する。
を有しており、これが実アドレスまたは予測実ア
ドレスを受け取る。CMM400は、自己に送ら
れたアドレスの形式(予測実アドレスまたは実ア
ドレス)にかかわらず、同一の機能を実行する。
受信装置は、受け取つたアドレスをキヤツシユデ
イレクトリ430内に含まれるアドレスと比較す
る。キヤツシユデイレクトリは、このデイレクト
リに登録された2Kの実アドレスに対応する512の
コングルエンスクラスを含んでいる。コングルエ
ンスクラスは、各コングルエンスクラス内に含ま
れる4の実アドレスの同一の9ビツト部分によつ
て識別される。受信装置は、デイレクトリ430
内の4の実アドレスの9ビツト部分を、受け取つ
たアドレスの対応する9ビツト部分と比較する。
その後、受信装置は、デイレクトリで選択された
4のアドレス値を、受け取つたアドレスがいずれ
の組に含まれているかを判断するために、受け取
つた(実または予測実)アドレスと比較する。
受信装置が受け取つたアドレスがいずれの組に
含まれているかを判断している間に、キヤツシユ
メモリは、受け取つたアドレスの一部によつてア
クセスされている。キヤツシユメモリは、1コン
グルエンスクラス内部の関係する全部のアドレス
内のデータを検索する検索装置を有している。こ
の検索装置は、デイレクトリが潜在的な4組のう
ちのいずれにデータが実際に存在するかを判断し
ている間に、すべての4のデータ位置にアクセス
する。これは、256Kのアドレスの最初の16ビツ
トにアクセスすることによつて行われる。この16
ビツトは、9ビツトのコングルエンスクラス情報
および、コングルエンスクラスの各要素内のバイ
トアドレスの7ビツトから成つている。組を判断
するための比較が完了すると、受信装置は選択信
号を検索装置に送る。その後、検索装置がデイレ
クトリから4の実アドレス位置内のデータを検索
すると、検索装置は、受け取つた(実または予測
実)アドレスについて正しいデータを検索する。
選択装置415を含んでいる検索装置に送られた
選択信号は、データの4バイトのうちのいずれを
選択するかを決定する。この選択はキヤツシユア
クセスサイクル後のマシンサイクルで行われ、選
択信号は、受信装置によつて検索装置に送られた
4のアドレスから独立して送信される。選択され
たデータは、キヤツシユアクセスマシンサイクル
後の第2のマシンサイクルで機能を実行する際に
そのデータを使用するALU500に送られる。
含まれているかを判断している間に、キヤツシユ
メモリは、受け取つたアドレスの一部によつてア
クセスされている。キヤツシユメモリは、1コン
グルエンスクラス内部の関係する全部のアドレス
内のデータを検索する検索装置を有している。こ
の検索装置は、デイレクトリが潜在的な4組のう
ちのいずれにデータが実際に存在するかを判断し
ている間に、すべての4のデータ位置にアクセス
する。これは、256Kのアドレスの最初の16ビツ
トにアクセスすることによつて行われる。この16
ビツトは、9ビツトのコングルエンスクラス情報
および、コングルエンスクラスの各要素内のバイ
トアドレスの7ビツトから成つている。組を判断
するための比較が完了すると、受信装置は選択信
号を検索装置に送る。その後、検索装置がデイレ
クトリから4の実アドレス位置内のデータを検索
すると、検索装置は、受け取つた(実または予測
実)アドレスについて正しいデータを検索する。
選択装置415を含んでいる検索装置に送られた
選択信号は、データの4バイトのうちのいずれを
選択するかを決定する。この選択はキヤツシユア
クセスサイクル後のマシンサイクルで行われ、選
択信号は、受信装置によつて検索装置に送られた
4のアドレスから独立して送信される。選択され
たデータは、キヤツシユアクセスマシンサイクル
後の第2のマシンサイクルで機能を実行する際に
そのデータを使用するALU500に送られる。
CMM400は、PRAGM200および
VAGM300から予測実アドレスを構成するビ
ツトを受け取つていたPRAR30から予測実ア
ドレスを受け取る。PRAGM200は、ヒスト
リテーブル210からPRAR30のためのビツ
トを生成する。ヒストリテーブル210は、最近
の命令によつて要求された多数の最新の実アドレ
ス(ここでは128アドレス)を、命令レジスタに
指定された基底レジスタの対応する内容とともに
格納する。PRAGM200は、IR10に指定さ
れた基底レジスタの内容を、使用後にセーブされ
たヒストリテーブル210に格納された最も新し
く使用された基底レジスタの内容と比較する。比
較がヒストリテーブル210のこれらのエントリ
のうちの一つに一致した場合、一致した基底レジ
スタの内容に対応する、ヒストリテーブル210
に格納された19ビツトは、第3の記憶装置によつ
てPRAR30の上位部分に格納される。この第
3の記憶装置は、データをレジスタに転送するた
めのラツチまたは類似形式の装置である。これら
の上位19ビツトは、アドレスタグのほか、組の選
択に関係したビツトおよび、予測実アドレスに関
係したコングルエンスクラスビツト9ビツトのう
ちの4ビツトを含む。
VAGM300から予測実アドレスを構成するビ
ツトを受け取つていたPRAR30から予測実ア
ドレスを受け取る。PRAGM200は、ヒスト
リテーブル210からPRAR30のためのビツ
トを生成する。ヒストリテーブル210は、最近
の命令によつて要求された多数の最新の実アドレ
ス(ここでは128アドレス)を、命令レジスタに
指定された基底レジスタの対応する内容とともに
格納する。PRAGM200は、IR10に指定さ
れた基底レジスタの内容を、使用後にセーブされ
たヒストリテーブル210に格納された最も新し
く使用された基底レジスタの内容と比較する。比
較がヒストリテーブル210のこれらのエントリ
のうちの一つに一致した場合、一致した基底レジ
スタの内容に対応する、ヒストリテーブル210
に格納された19ビツトは、第3の記憶装置によつ
てPRAR30の上位部分に格納される。この第
3の記憶装置は、データをレジスタに転送するた
めのラツチまたは類似形式の装置である。これら
の上位19ビツトは、アドレスタグのほか、組の選
択に関係したビツトおよび、予測実アドレスに関
係したコングルエンスクラスビツト9ビツトのう
ちの4ビツトを含む。
VAGM300は、加算器310および汎用レ
ジスタ(GPR)320によつて予測実アドレス
に関係したビツトを生成する。加算器310は、
IR10で指定されたアドレスの3の部分を加算
する装置である。変位ビツトと、基底レジスタの
内容およびIR10で指定された指標レジスタの
内容との加算は、仮想アドレスレジスタ(VAR)
40に入れられる31ビツトの仮想アドレスを生成
する。この仮想アドレスの下位12ビツトはページ
オフセツトビツトであり、次の上位6ビツトは仮
想アドレスのページアドレスビツトである。加算
器310は、IR10から命令レジスタ(現在ア
ドレス)の変位ビツトを直接受け取り、GPR3
20からは基底レジスタおよび指標レジスタの内
容を受け取る。PRAGMもまた、汎用レジスタ
(GPR)である基底レジスタの内容を受け取る。
加算器は初めに、1ライン内のバイトを選択する
全7ビツトと、コングルエンスクラスの選択に関
係した9ビツトのうちの5ビツトにも対応する下
位12ビツトを分解する。これらの12ビツトは
PRAR30に送られ、第2の記憶装置は予測実
アドレスの下位部分のビツトを格納する。第2の
記憶装置は、データをレジスタに転送するための
標準のラツチまたは類似の標準装置である。
ジスタ(GPR)320によつて予測実アドレス
に関係したビツトを生成する。加算器310は、
IR10で指定されたアドレスの3の部分を加算
する装置である。変位ビツトと、基底レジスタの
内容およびIR10で指定された指標レジスタの
内容との加算は、仮想アドレスレジスタ(VAR)
40に入れられる31ビツトの仮想アドレスを生成
する。この仮想アドレスの下位12ビツトはページ
オフセツトビツトであり、次の上位6ビツトは仮
想アドレスのページアドレスビツトである。加算
器310は、IR10から命令レジスタ(現在ア
ドレス)の変位ビツトを直接受け取り、GPR3
20からは基底レジスタおよび指標レジスタの内
容を受け取る。PRAGMもまた、汎用レジスタ
(GPR)である基底レジスタの内容を受け取る。
加算器は初めに、1ライン内のバイトを選択する
全7ビツトと、コングルエンスクラスの選択に関
係した9ビツトのうちの5ビツトにも対応する下
位12ビツトを分解する。これらの12ビツトは
PRAR30に送られ、第2の記憶装置は予測実
アドレスの下位部分のビツトを格納する。第2の
記憶装置は、データをレジスタに転送するための
標準のラツチまたは類似の標準装置である。
キヤツシユアクセスシステム5の効率的な動作
は、ヒストリテーブル210が最も新しく使用さ
れた実アドレスおよび対応する基底レジスタの内
容を持つていることを必要とする。これは、キヤ
ツシユアクセスシステム5のヒストリテーブルの
更新によつて得られる。TLB420によつて生
成された予測実アドレスがPRAR30の予測実
アドレスと一致しない場合、更新装置がヒストリ
テーブル210を更新する。これは、そうした状
態が最新の予測アドレスが間違つており、従つて
ヒストリテーブル210から生成された値が誤つ
ていたことになるからである。ヒストリテーブル
210が更新を必要とする状況は2つある。第1
は、IR10によつて指定された基底レジスタの
内容がヒストリテーブルのエントリと一致する
が、対応する実アドレスがTLB420によつて
与えられたアドレスと一致しないというヒストリ
テーブル210のエントリをPRAGM200が
発見した場合である。この場合、ヒストリテーブ
ルの対応する実アドレスはTLB420によつて
生成された実アドレスを反映するために更新され
る。ヒストリテーブルの更新を要求する第2の状
況は、ヒストリテーブル210のエントリのいず
れも基底レジスタの内容と一致しない場合であ
る。この状況では、ヒストリテーブル210の最
低使用頻度エントリがIR10で指定された基底
レジスタの内容およびTLB420によつて生成
された対応する実アドレスで置き換えられる。ヒ
ストリテーブル210を更新する上記の方法は、
ヒストリテーブル210が完全に連想型であるこ
と、すなわち唯一の組を含むことを前提とする。
ヒストリテーブル210が複数の組を含むセツト
アソシエイテイブであり、さらに、基底レジスタ
とヒストリテーブル210の内容の間にまつたく
一致が見られない場合、基底レジスタの部分的な
内容によつて選択された組の最低使用頻度エント
リは、むしろ全体のヒストリテーブル210の最
低使用頻度エントリで置き換えられる。
は、ヒストリテーブル210が最も新しく使用さ
れた実アドレスおよび対応する基底レジスタの内
容を持つていることを必要とする。これは、キヤ
ツシユアクセスシステム5のヒストリテーブルの
更新によつて得られる。TLB420によつて生
成された予測実アドレスがPRAR30の予測実
アドレスと一致しない場合、更新装置がヒストリ
テーブル210を更新する。これは、そうした状
態が最新の予測アドレスが間違つており、従つて
ヒストリテーブル210から生成された値が誤つ
ていたことになるからである。ヒストリテーブル
210が更新を必要とする状況は2つある。第1
は、IR10によつて指定された基底レジスタの
内容がヒストリテーブルのエントリと一致する
が、対応する実アドレスがTLB420によつて
与えられたアドレスと一致しないというヒストリ
テーブル210のエントリをPRAGM200が
発見した場合である。この場合、ヒストリテーブ
ルの対応する実アドレスはTLB420によつて
生成された実アドレスを反映するために更新され
る。ヒストリテーブルの更新を要求する第2の状
況は、ヒストリテーブル210のエントリのいず
れも基底レジスタの内容と一致しない場合であ
る。この状況では、ヒストリテーブル210の最
低使用頻度エントリがIR10で指定された基底
レジスタの内容およびTLB420によつて生成
された対応する実アドレスで置き換えられる。ヒ
ストリテーブル210を更新する上記の方法は、
ヒストリテーブル210が完全に連想型であるこ
と、すなわち唯一の組を含むことを前提とする。
ヒストリテーブル210が複数の組を含むセツト
アソシエイテイブであり、さらに、基底レジスタ
とヒストリテーブル210の内容の間にまつたく
一致が見られない場合、基底レジスタの部分的な
内容によつて選択された組の最低使用頻度エント
リは、むしろ全体のヒストリテーブル210の最
低使用頻度エントリで置き換えられる。
開示された発明のこの実施態様は、キヤツシユ
メモリアレイ410に2つの別なアドレスによつ
てアクセスする。第1は、命令が要求するデータ
の位置の“最善の推測”である予測実アドレスで
ある。この推測は、ヒストリテーブル210およ
び加算器310によつて生成される。ヒストリテ
ーブル210は、実アドレスおよび、GPR32
0からのその対応する基底レジスタ内容をリスト
にする。ヒストリテーブル210は、最近使用さ
れた基底レジスタのリストからの最近使用された
基底レジスタの内容を、IR10で指定された現
在の基底レジスタの内容と突き合わせる。ヒスト
リテーブル210はその後、その最近使用された
基底レジスタの内容に対応する実アドレスを選択
し、それをPRAR30の上位ビツトに入れる。
加算器310は、現在の基底レジスタの内容、指
標レジスタの内容および、IR10からの変位ビ
ツトを加算し、これらの31ビツトをVAR20に
入れる。これはまた、加算器からの、初期に分解
された下位12ビツトも受け取り、それらを
PRAR30の下位12ビツトに入れる。PRARの
この31ビツトはその後、キヤツシユアレイにアク
セスするために使用される。“推測”が正しけれ
ば、キヤツシユメモリはそのデータを実行のため
にALU500に送る。推測が間違つている場合、
TLB210から生成された実アドレスがキヤツ
シユアレイにアクセスするために使用される。
メモリアレイ410に2つの別なアドレスによつ
てアクセスする。第1は、命令が要求するデータ
の位置の“最善の推測”である予測実アドレスで
ある。この推測は、ヒストリテーブル210およ
び加算器310によつて生成される。ヒストリテ
ーブル210は、実アドレスおよび、GPR32
0からのその対応する基底レジスタ内容をリスト
にする。ヒストリテーブル210は、最近使用さ
れた基底レジスタのリストからの最近使用された
基底レジスタの内容を、IR10で指定された現
在の基底レジスタの内容と突き合わせる。ヒスト
リテーブル210はその後、その最近使用された
基底レジスタの内容に対応する実アドレスを選択
し、それをPRAR30の上位ビツトに入れる。
加算器310は、現在の基底レジスタの内容、指
標レジスタの内容および、IR10からの変位ビ
ツトを加算し、これらの31ビツトをVAR20に
入れる。これはまた、加算器からの、初期に分解
された下位12ビツトも受け取り、それらを
PRAR30の下位12ビツトに入れる。PRARの
この31ビツトはその後、キヤツシユアレイにアク
セスするために使用される。“推測”が正しけれ
ば、キヤツシユメモリはそのデータを実行のため
にALU500に送る。推測が間違つている場合、
TLB210から生成された実アドレスがキヤツ
シユアレイにアクセスするために使用される。
PRAR30からの推測は、比較装置425に
おいて、予測実アドレスとTLB210によつて
生成された実アドレスを比較することによつて検
査される。この比較は、キヤツシユアレイが予測
実アドレス位置にあるデータを検索している間に
行われる。実アドレスは、VAR40の仮想アド
レスを、VAGM300によつて生成される可能
な仮想アドレスおよびその対応する実アドレスを
含むTLBのエントリと突き合わせることによつ
て生成される。VAR40の仮想アドレスがTLB
420のエントリと一致しない場合、対応する実
アドレスをコンパイルするために処理が開始され
なければならない。これは仮想記憶装置計算機に
おける従来の段階であり、この出願の範囲ではな
い。ALU500に送られたデータは、“推測”が
間違つていた場合、1マシンサイクル遅れる。メ
モリアレイがその間違つた“推測”(予測実)ア
ドレスでアクセスされた後に、実アドレスによつ
てメモリが再アクセスされなければならないため
である。間違つた推測は、TLB420からの新
しい現在アドレスおよび対応する実アドレスによ
つてヒストリテーブル210を更新することによ
つて最低限に抑えられる。ヒストリテーブルは、
推測が間違つていると判断された場合に更新され
る。ヒストリテーブルにすでにある現在アドレス
は、単にその置き換えられた実アドレスを持つて
いるにすぎず、一方、ヒストリテーブルにない現
在アドレスは、ヒストリテーブルが更新されなけ
ればならない場合、存在する現在の命令およびそ
の対応する実アドレスを置き換える。
おいて、予測実アドレスとTLB210によつて
生成された実アドレスを比較することによつて検
査される。この比較は、キヤツシユアレイが予測
実アドレス位置にあるデータを検索している間に
行われる。実アドレスは、VAR40の仮想アド
レスを、VAGM300によつて生成される可能
な仮想アドレスおよびその対応する実アドレスを
含むTLBのエントリと突き合わせることによつ
て生成される。VAR40の仮想アドレスがTLB
420のエントリと一致しない場合、対応する実
アドレスをコンパイルするために処理が開始され
なければならない。これは仮想記憶装置計算機に
おける従来の段階であり、この出願の範囲ではな
い。ALU500に送られたデータは、“推測”が
間違つていた場合、1マシンサイクル遅れる。メ
モリアレイがその間違つた“推測”(予測実)ア
ドレスでアクセスされた後に、実アドレスによつ
てメモリが再アクセスされなければならないため
である。間違つた推測は、TLB420からの新
しい現在アドレスおよび対応する実アドレスによ
つてヒストリテーブル210を更新することによ
つて最低限に抑えられる。ヒストリテーブルは、
推測が間違つていると判断された場合に更新され
る。ヒストリテーブルにすでにある現在アドレス
は、単にその置き換えられた実アドレスを持つて
いるにすぎず、一方、ヒストリテーブルにない現
在アドレスは、ヒストリテーブルが更新されなけ
ればならない場合、存在する現在の命令およびそ
の対応する実アドレスを置き換える。
この発明の別な実施態様を第3図に示す。この
実施態様は、PRAGM200が変換予見テーブ
ル(TLAT)220も有していることを除き、
第1の実施態様と同様である。このTLAT22
0は、コンピユータシステムで使用可能な、この
発明では16ある、各GPRについて最近使用され
た実アドレスエントリを有する小さいヒストリテ
ーブルである。基底レジスタがIR10によつて
指定されると、指定された基底レジスタに対応す
る、TLAT220の最近使用された実アドレス
エントリに関係する19ビツトは、PRAR30の
上位位置に置かれる。これは、4ビツトの基底レ
ジスタ識別子にもTLAT220のエントリを指
定させることによつて、第3図に示す。これらの
19ビツトは、PRAR30の予測実アドレスを形
成するために、加算器310からの(PRAR3
0の下位位置に置かれた)12ビツトのページオフ
セツトビツトと連結される。
実施態様は、PRAGM200が変換予見テーブ
ル(TLAT)220も有していることを除き、
第1の実施態様と同様である。このTLAT22
0は、コンピユータシステムで使用可能な、この
発明では16ある、各GPRについて最近使用され
た実アドレスエントリを有する小さいヒストリテ
ーブルである。基底レジスタがIR10によつて
指定されると、指定された基底レジスタに対応す
る、TLAT220の最近使用された実アドレス
エントリに関係する19ビツトは、PRAR30の
上位位置に置かれる。これは、4ビツトの基底レ
ジスタ識別子にもTLAT220のエントリを指
定させることによつて、第3図に示す。これらの
19ビツトは、PRAR30の予測実アドレスを形
成するために、加算器310からの(PRAR3
0の下位位置に置かれた)12ビツトのページオフ
セツトビツトと連結される。
この実施態様では、より大きなヒストリテーブ
ル210は、マシンサイクルごとにTLAT22
0を更新するために使用される。TLATは、そ
のサイクルにおいて更新できるように、解読マシ
ンサイクルの期間内で読み書きできるアレイを必
要とする。GPR(潜在的な基底レジスタ)の内容
が命令の実行の結果として修正された場合、この
変更されたGPRの新しい内容は、ヒストリテー
ブル210の対応する予測実アドレスエントリを
検索するために使用される。この予測実アドレス
はその後、このGPRに対応するTLAT220の
エントリを置き換えるために使用される。ヒスト
リテーブル220の更新処理は、第1の実施態様
に説明した処理と同様である。予測実アドレスが
TLB420からの実アドレスと一致しない場合、
ヒストリテーブルはTLB420からの実アドレ
スによつて更新されなければならない。TLAT
220もまた、ヒストリテーブル210の変更を
反映するために、上述の処理と同様に更新されな
ければならない。
ル210は、マシンサイクルごとにTLAT22
0を更新するために使用される。TLATは、そ
のサイクルにおいて更新できるように、解読マシ
ンサイクルの期間内で読み書きできるアレイを必
要とする。GPR(潜在的な基底レジスタ)の内容
が命令の実行の結果として修正された場合、この
変更されたGPRの新しい内容は、ヒストリテー
ブル210の対応する予測実アドレスエントリを
検索するために使用される。この予測実アドレス
はその後、このGPRに対応するTLAT220の
エントリを置き換えるために使用される。ヒスト
リテーブル220の更新処理は、第1の実施態様
に説明した処理と同様である。予測実アドレスが
TLB420からの実アドレスと一致しない場合、
ヒストリテーブルはTLB420からの実アドレ
スによつて更新されなければならない。TLAT
220もまた、ヒストリテーブル210の変更を
反映するために、上述の処理と同様に更新されな
ければならない。
TLAT220は、本質的に、大きなヒストリ
テーブル210への窓として作用する。計算機は
固定された組のGPR320を持つことしかでき
ず、TLAT220は必ず各GPRについての予測
実アドレスを持つているので、この技法は、いず
れのGPRが現在の基底レジスタとして使用され
ているかにかかわらず、第1の実施態様で説明し
た方法と同じ正確さで実アドレスを予測できる。
さらに、TLATは非常に小さいアレイであり、
そのアクセスはGPRのアクセスと平行して行わ
れるので、アレイへのアクセスを極めて高速に可
能にする。従つて、この実施態様で説明された二
重テーブル(TLATおよびヒストリテーブル)
方式は、同じ正確さをもつて、第1の実施態様で
説明した技法よりも高速の実アドレス予測方法を
提供する。
テーブル210への窓として作用する。計算機は
固定された組のGPR320を持つことしかでき
ず、TLAT220は必ず各GPRについての予測
実アドレスを持つているので、この技法は、いず
れのGPRが現在の基底レジスタとして使用され
ているかにかかわらず、第1の実施態様で説明し
た方法と同じ正確さで実アドレスを予測できる。
さらに、TLATは非常に小さいアレイであり、
そのアクセスはGPRのアクセスと平行して行わ
れるので、アレイへのアクセスを極めて高速に可
能にする。従つて、この実施態様で説明された二
重テーブル(TLATおよびヒストリテーブル)
方式は、同じ正確さをもつて、第1の実施態様で
説明した技法よりも高速の実アドレス予測方法を
提供する。
第1図は、この発明に従つたキヤツシユアクセ
スシステムの第1の実施態様を示す図、第2図
は、この発明のデイジタルコンピユータシステム
で実施される一般的なパイプライン構造を示す
図、第3図は、この発明に従つたキヤツシユアク
セスシステムの別な実施態様を示す図である。 5……キヤツシユメモリアクセスシステム、1
0……命令レジスタ、30……予測実アドレスレ
ジスタ、40……仮想アドレスレジスタ、200
……予測実アドレス生成装置、210……ヒスト
リテーブル、220……変換予見テーブル、30
0……仮想アドレス生成装置、310……加算
器、320……汎用レジスタ、400……キヤツ
シユメモリ装置、410……キヤツシユメモリ、
415……選択装置、420……変換索引緩衝機
構、425……比較装置、430……キヤツシユ
デイレクトリ、500……算術論理演算装置。
スシステムの第1の実施態様を示す図、第2図
は、この発明のデイジタルコンピユータシステム
で実施される一般的なパイプライン構造を示す
図、第3図は、この発明に従つたキヤツシユアク
セスシステムの別な実施態様を示す図である。 5……キヤツシユメモリアクセスシステム、1
0……命令レジスタ、30……予測実アドレスレ
ジスタ、40……仮想アドレスレジスタ、200
……予測実アドレス生成装置、210……ヒスト
リテーブル、220……変換予見テーブル、30
0……仮想アドレス生成装置、310……加算
器、320……汎用レジスタ、400……キヤツ
シユメモリ装置、410……キヤツシユメモリ、
415……選択装置、420……変換索引緩衝機
構、425……比較装置、430……キヤツシユ
デイレクトリ、500……算術論理演算装置。
Claims (1)
- 【特許請求の範囲】 1 キヤツシユメモリと、命令レジスタと、仮想
アドレスレジスタと、予測実アドレスレジスタ
と、算術論理回路と、ベースレジスタとインデツ
クスレジスタの用途で用いることができる複数の
汎用レジスタと、を具備するキヤツシユメモリア
クセスシステムであつて、 前記命令レジスタに受け入れられた命令を解読
して、前記ベースレジスタに含まれる現在アドレ
スと前記インデツクスレジスタと前記命令レジス
タの変位ビツトから前記仮想アドレスを生成し、
それを前記仮想アドレスレジスタに記憶する仮想
アドレス生成手段と、 前記ベースレジスタにおいてすでに使用された
現在アドレスの一群とそれに対応する実アドレス
の一群を格納するヒストリーテーブルと、前記ベ
ースレジスタに含まれる前記現在アドレスと前記
すでに使用された現在アドレスの一群とを比較す
る第一の比較手段と、を有する予測実アドレス発
生手段であつて、前記第一の比較手段による比較
の結果前記一致した時には、対応する実アドレス
を予測実アドレスとして前記予測実アドレスレジ
スタに格納し、 第一マシンサイクル中に前記予測実アドレスレ
ジスタから前記予測実アドレスを受取り、第一マ
シンサイクルが終了する以前に前記予測実アドレ
スの位置にあるデータをアクセスするキヤツシユ
メモリ手段と、 第一の仮想アドレス群に対応する第二の実アド
レス群を有し、前記仮想アドレスレジスタに格納
された仮想アドレスを第一の実アドレスに変換す
る変換索引バツフア機構と、 前記第一の実アドレスを前記予測実アドレスと
比較する第二の比較手段と、 を含み、 前記キヤツシユメモリ手段は前記第二の比較手
段による比較の結果、一致した時には前記予測実
アドレスに基づいてアクセスしたデータを前記算
術論理回路に送り、一致しなかつた場合には前記
第一の実アドレスを受け取つて第二のマシンサイ
クル中に前記実アドレスに基づいてデータをアク
セスし、該データを第三のマシンサイクル中に前
記算術論理回路に送ることを特徴としたキヤツシ
ユメモリアクセスシステム。 2 キヤツシユメモリアクセスシステムをアクセ
スする方法であつて、 与えられた命令を解読して前記命令に関するア
ドレス情報を含んでいる汎用レジスタを特定する
ステツプと、 前記汎用レジスタに記憶された内容の一部であ
る現在アドレスと最近使用された前記現在アドレ
スおよびそれに対応する実アドレスを含むヒスト
リーテーブルの内容とを比較して予測実アドレス
を生成するステツプと、 前記予測実アドレスに基づいて第一のマシンサ
イクル中に前記キヤツシユメモリをアクセスして
第一のデータを得るステツプと、 前記アドレス情報に基づいて仮想アドレスを生
成し、加算器・変換索引バツフア機構を介してそ
れに対応する実アドレスを生成するステツプと、 前記予測実アドレスと前記実アドレスを比較
し、一致を見た場合においては前記第一のデータ
を前記命令の実行に使用するデータとして採用
し、一致しない場合においては第二のマシンサイ
クル中に前記実アドレスに基づいて前記キヤツシ
ユメモリをアクセスし、そのデータを前記命令の
実行に使用するデータとして採用するステツプ
と、 を具備する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US424496 | 1989-10-20 | ||
| US07/424,496 US5148538A (en) | 1989-10-20 | 1989-10-20 | Translation look ahead based cache access |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03194632A JPH03194632A (ja) | 1991-08-26 |
| JPH0564816B2 true 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) |
Families Citing this family (65)
| 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 | バツフア記憶制御方式 |
| WO1993018459A1 (en) * | 1992-03-06 | 1993-09-16 | Rambus Inc. | Prefetching into a cache to minimize main memory access time and cache size in a computer system |
| US5392410A (en) * | 1992-04-30 | 1995-02-21 | International Business Machines Corporation | History table for prediction of virtual address translation for cache access |
| US5418922A (en) * | 1992-04-30 | 1995-05-23 | International Business Machines Corporation | History table for set prediction for accessing a set associative cache |
| 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 |
| 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 |
| 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 |
| 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 |
| US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
| US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
| US6598128B1 (en) | 1999-10-01 | 2003-07-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 |
| JP3848161B2 (ja) * | 1999-12-09 | 2006-11-22 | 富士通株式会社 | アドレス変換履歴テーブルを用いたメモリアクセス装置及び方法 |
| 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 |
| EP1658563B1 (en) * | 2003-08-28 | 2013-06-05 | MIPS Technologies, Inc. | Apparatus, and method for initiation of concurrent instruction streams in a multithreading microprocessor |
| US7117290B2 (en) * | 2003-09-03 | 2006-10-03 | Advanced Micro Devices, Inc. | MicroTLB and micro tag for reducing power in a processor |
| US20050050278A1 (en) * | 2003-09-03 | 2005-03-03 | Advanced Micro Devices, Inc. | Low power way-predicted cache |
| 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 |
| EP4384919B1 (en) * | 2022-08-01 | 2025-12-03 | Qualcomm Incorporated | Using retired pages history for instruction translation lookaside buffer (tlb) prefetching in processor-based devices |
| US12579075B2 (en) | 2022-08-01 | 2026-03-17 | Qualcomm Incorporated | Using retired pages history for instruction translation lookaside buffer (TLB) prefetching in processor-based devices |
Family Cites Families (9)
| 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 |
| JPS60123946A (ja) * | 1983-12-09 | 1985-07-02 | Hitachi Ltd | アドレス変換装置 |
| 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
Also Published As
| Publication number | Publication date |
|---|---|
| EP0424163A2 (en) | 1991-04-24 |
| EP0424163A3 (en) | 1991-12-04 |
| US5148538A (en) | 1992-09-15 |
| JPH03194632A (ja) | 1991-08-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0564816B2 (ja) | ||
| US4807110A (en) | Prefetching system for a cache having a second directory for sequentially accessed blocks | |
| JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
| US5230045A (en) | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus | |
| US4587610A (en) | Address translation systems for high speed computer memories | |
| JP3640978B2 (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
| US6963964B2 (en) | Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses | |
| EP0036110A2 (en) | Cache addressing mechanism | |
| JPH11203199A (ja) | キャッシュ・メモリ | |
| KR100335672B1 (ko) | 메모리페이지크로싱예측주석을사용하는실제주소지정데이타기억구조로부터의빠른데이타검색 | |
| US11403222B2 (en) | Cache structure using a logical directory | |
| US12141076B2 (en) | Translation support for a virtual cache | |
| US10810134B2 (en) | Sharing virtual and real translations in a virtual cache | |
| US6581140B1 (en) | Method and apparatus for improving access time in set-associative cache systems | |
| EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
| US6138223A (en) | Absolute address history table index generation for predicting instruction and operand cache accesses | |
| Hua et al. | Early resolution of address translation in cache design | |
| EP0206050A2 (en) | Virtually addressed cache memory with physical tags | |
| KR930002314B1 (ko) | 캐쉬 메모리 유닛을 액세스하기 위해 가상 어드레스를 실제 어드레스로 번역하는 장치 및 방법 | |
| CN119862135A (zh) | 虚实地址转换系统、方法及虚实地址转换单元 | |
| JP3697990B2 (ja) | ベクトル処理装置のオペランドキャッシュ | |
| JP2797961B2 (ja) | 検索システム | |
| JPH0235543A (ja) | ページテーブルエントリ無効化装置 | |
| JPH052608A (ja) | データ検索装置 |