JP3095831B2 - 計算機の作動方法及び計算機 - Google Patents
計算機の作動方法及び計算機Info
- Publication number
- JP3095831B2 JP3095831B2 JP03277896A JP27789691A JP3095831B2 JP 3095831 B2 JP3095831 B2 JP 3095831B2 JP 03277896 A JP03277896 A JP 03277896A JP 27789691 A JP27789691 A JP 27789691A JP 3095831 B2 JP3095831 B2 JP 3095831B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- cache
- prefetch
- prefetched
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 26
- 230000015654 memory Effects 0.000 claims description 47
- 230000008859 change Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 238000011017 operating method Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
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)
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は電子計算機のシステムに
関するものである。特に、相対的に高速で動作する処理
装置と相対的に低速なメモリとの間でデータを効率よく
交換できる計算機アーキテクチャに関するものである。
関するものである。特に、相対的に高速で動作する処理
装置と相対的に低速なメモリとの間でデータを効率よく
交換できる計算機アーキテクチャに関するものである。
【0002】
【従来の技術】集積回路技術及び計算機アーキテクチャ
が急速に発展した結果、相対的に高速で動作する処理ユ
ニットと相対的に低速で動作するメモリとの間で生ずる
“メモリ参照遅延ギャップ(memory referemce delay ga
p)”が増大している。100MIPSに亘る最大スループット
の高性能プロセッサチィップが商品として市販されてい
る。これらのプロセッサチィップを処理ユニットとして
用いるマルチプロセッサシステムも実用化されている。
一方、これら高性能なシステムをそのピーク速度で実行
させるために必要なメモリ装置は、構成上複雑すぎ又は
高価になりすぎてしまう。この結果、現在の高性能な計
算機システムの性能上の課題は、メモリ装置の効率では
なく処理ユニットの速度となる。この課題を解決するも
のとして、米国特許第4811215 号公報には、データ用及
び命令用のキャッシュメモリを有する計算機が開示され
ている。
が急速に発展した結果、相対的に高速で動作する処理ユ
ニットと相対的に低速で動作するメモリとの間で生ずる
“メモリ参照遅延ギャップ(memory referemce delay ga
p)”が増大している。100MIPSに亘る最大スループット
の高性能プロセッサチィップが商品として市販されてい
る。これらのプロセッサチィップを処理ユニットとして
用いるマルチプロセッサシステムも実用化されている。
一方、これら高性能なシステムをそのピーク速度で実行
させるために必要なメモリ装置は、構成上複雑すぎ又は
高価になりすぎてしまう。この結果、現在の高性能な計
算機システムの性能上の課題は、メモリ装置の効率では
なく処理ユニットの速度となる。この課題を解決するも
のとして、米国特許第4811215 号公報には、データ用及
び命令用のキャッシュメモリを有する計算機が開示され
ている。
【0003】キャッシュメモリは、計算機システムの中
央処理装置と主記憶装置の間の高速バッファメモリであ
り、プロセッサからのメモリアクセスに応答し、アクセ
スされたデータがキャッシュメモリで使用可能になる
と、主記憶装置を待機させることなく処理を実行する。
アクセスされるべきデータが使用可能な場合だけキャッ
シュ誤りが生じたことが表示され、このデータは主記憶
装置から先取りされ、その後このデータはキャッシュメ
モリに記憶される。この計算機システムの目的は、全体
として高速技術を用いる1次メモリの構築が高価になる
とこなく高速なデータ/命令アクセスを達成することに
ある。キャッシュメモリは、マイクロプロセッサチィッ
プからスーパーコンピュータの範囲に亘る多くの計算機
システムにおいて広く使用されている。プロセッサの処
理速度はメモリのアクセス時間よりも一層高速であるた
め、将来の計算システムにおいてキャッシュの有効性は
一層重要になる。
央処理装置と主記憶装置の間の高速バッファメモリであ
り、プロセッサからのメモリアクセスに応答し、アクセ
スされたデータがキャッシュメモリで使用可能になる
と、主記憶装置を待機させることなく処理を実行する。
アクセスされるべきデータが使用可能な場合だけキャッ
シュ誤りが生じたことが表示され、このデータは主記憶
装置から先取りされ、その後このデータはキャッシュメ
モリに記憶される。この計算機システムの目的は、全体
として高速技術を用いる1次メモリの構築が高価になる
とこなく高速なデータ/命令アクセスを達成することに
ある。キャッシュメモリは、マイクロプロセッサチィッ
プからスーパーコンピュータの範囲に亘る多くの計算機
システムにおいて広く使用されている。プロセッサの処
理速度はメモリのアクセス時間よりも一層高速であるた
め、将来の計算システムにおいてキャッシュの有効性は
一層重要になる。
【0004】高速な処理ユニットと低速なメモリとの間
の大きなメモリ参照遅延ギャップを解消するため、前述
した文献には“キャッシュ先取”として、既知の技術が
開示されている。この既知の技術において、メモリ参照
は、実際に必要になる前にキャッシュメモリに入力され
る。この先取が正しい場合、長時間に亘るメモリ参照遅
延時間はプログラムの実行とオーバラップ(部分的に又
は全体的に)させることができる。従って、処理装置を
待機させてしまうキャッシュ誤りの発生回数を低減させ
ることができる。
の大きなメモリ参照遅延ギャップを解消するため、前述
した文献には“キャッシュ先取”として、既知の技術が
開示されている。この既知の技術において、メモリ参照
は、実際に必要になる前にキャッシュメモリに入力され
る。この先取が正しい場合、長時間に亘るメモリ参照遅
延時間はプログラムの実行とオーバラップ(部分的に又
は全体的に)させることができる。従って、処理装置を
待機させてしまうキャッシュ誤りの発生回数を低減させ
ることができる。
【0005】キャッシュ先取メモリにおいて、活動停止
のサイクルはデータ及び命令をキャッシュに書込むため
に用いられる。最も一般的に用いられる従来のキャッシ
ュ先取技術として以下のものがある。 〔ONE BLOCK LOOK-AHEAD〕キャッシュブロックiが参照
されこのブロックがキャッシュ中にない場合(すなわ
ち、キャッシュ誤りが生じたとき)、キャッシュブロッ
クi及びi+1を共にキャッシュ中に先取りする。 〔CACHE BLOCK SIZE GREATER THAN ONE 〕1以上のブロ
ックサイズのキャッシュを用いる場合、先取りされるブ
ロック中でただ1個の項目の参照によってキャッシュ誤
りが生じた際、1以上の項目をキャッシュに先取りす
る。 〔ALWAYS PREFETCHING〕ブロックiの各メモリについて
参照する場合、ブロックi+1がすでにキャッシュにな
い場合このブロックi+1をキャッシュに先取りする。
のサイクルはデータ及び命令をキャッシュに書込むため
に用いられる。最も一般的に用いられる従来のキャッシ
ュ先取技術として以下のものがある。 〔ONE BLOCK LOOK-AHEAD〕キャッシュブロックiが参照
されこのブロックがキャッシュ中にない場合(すなわ
ち、キャッシュ誤りが生じたとき)、キャッシュブロッ
クi及びi+1を共にキャッシュ中に先取りする。 〔CACHE BLOCK SIZE GREATER THAN ONE 〕1以上のブロ
ックサイズのキャッシュを用いる場合、先取りされるブ
ロック中でただ1個の項目の参照によってキャッシュ誤
りが生じた際、1以上の項目をキャッシュに先取りす
る。 〔ALWAYS PREFETCHING〕ブロックiの各メモリについて
参照する場合、ブロックi+1がすでにキャッシュにな
い場合このブロックi+1をキャッシュに先取りする。
【0006】ここで、“キャッシュブロックサイズ”
は、キャッシュと主記憶装置との間の情報伝達の基本単
位として規定する。“基本ブロック”は、1個の入力点
と1個の出力点を有する順次コード命令として規定す
る。
は、キャッシュと主記憶装置との間の情報伝達の基本単
位として規定する。“基本ブロック”は、1個の入力点
と1個の出力点を有する順次コード命令として規定す
る。
【0007】これら全ての先取技術の基本原理は参照ブ
ロックの空間位置、すなわちプログラムの後で用いられ
る参照ブロックの位置は現在の参照ブロックの位置の近
傍にあるものとみなすことに基いている。これらの先取
技術は、メモリアクセスが順次の番号に従って参照を行
なう特性を有しているものとみなしている。命令キャッ
シュにおいて、これらの先取技術は良好な性能を達成し
ている。この理由は、命令の参照は一般的に順番に行な
われるためである。例えば、基本ブロック内において命
令は常に順序に従って行なわれる。通常、このキャッシ
ュヒット率は改善され、バストラフィックは命令キャッ
シュ先取において増大する。ここで、キャッシュヒット
率は、プログラムユニットからのデータアイテム要求が
キャッシュメモリで発見される可能性を意味する。
ロックの空間位置、すなわちプログラムの後で用いられ
る参照ブロックの位置は現在の参照ブロックの位置の近
傍にあるものとみなすことに基いている。これらの先取
技術は、メモリアクセスが順次の番号に従って参照を行
なう特性を有しているものとみなしている。命令キャッ
シュにおいて、これらの先取技術は良好な性能を達成し
ている。この理由は、命令の参照は一般的に順番に行な
われるためである。例えば、基本ブロック内において命
令は常に順序に従って行なわれる。通常、このキャッシ
ュヒット率は改善され、バストラフィックは命令キャッ
シュ先取において増大する。ここで、キャッシュヒット
率は、プログラムユニットからのデータアイテム要求が
キャッシュメモリで発見される可能性を意味する。
【0008】
【発明が解決しようとする課題】しかしながら、順次先
取スキムはデータキャッシュの設計においては有効性が
ない。この理由は、これらの技術の全ては原理的に命令
キャッシュ用に設計されており、これらの基本原理は命
令の参照動作に基いているからである。データ参照動作
はどちらかというとランダムな参照動作であり、順次動
作である命令参照動作とは全く相異している。従って、
順次参照用に設計されている順次先取スキムをデータキ
ャッシュに適用することはほとんど有効性がないもので
ある。先取りされたデータが参照される機会は、命令キ
ャッシュにおいてよりもデータキャッシュにおける方が
一層低い。このため、参照されなかったデータはキャッ
シュに対して有害なものとなり、有用なキャッシュ空間
を不必要に占有することにより並びにバストラフィック
を増大させることによりシステムの全体性能を低下させ
てしまう。バスの帯域幅が限定されたリゾース(resourc
e)のシステムにおいて、バス接続(すなわち、データバ
スを使用しようとする要求がより多くある状態)性能が
一層悪化してしまう。参照されないデータを先取するこ
とによりバスラインがビジーな状態になると、バスを用
いる他の要求(例えば、命令先取)の処理が遅延してし
まう。高性能プロセッサチィップの場合処理速度が極め
て高速であるが、バスの帯域幅が物理的制約例えばチィ
ップのピンの全数により制限されているため、上述した
状態がしばしば生じてしまう。さらに、データキャッシ
ュの空間には制限があるため参照されようとしているキ
ャッシュ中のデータが非参照先取データで置換されてし
まうような不都合が生じ、この結果キャッシュ誤りが生
じてしまう。従って、データをいかにして参照するかに
ついて一層有効な思想が得られない限り、キャッシュデ
ータ先取を有効に活用することができなくなってしま
う。
取スキムはデータキャッシュの設計においては有効性が
ない。この理由は、これらの技術の全ては原理的に命令
キャッシュ用に設計されており、これらの基本原理は命
令の参照動作に基いているからである。データ参照動作
はどちらかというとランダムな参照動作であり、順次動
作である命令参照動作とは全く相異している。従って、
順次参照用に設計されている順次先取スキムをデータキ
ャッシュに適用することはほとんど有効性がないもので
ある。先取りされたデータが参照される機会は、命令キ
ャッシュにおいてよりもデータキャッシュにおける方が
一層低い。このため、参照されなかったデータはキャッ
シュに対して有害なものとなり、有用なキャッシュ空間
を不必要に占有することにより並びにバストラフィック
を増大させることによりシステムの全体性能を低下させ
てしまう。バスの帯域幅が限定されたリゾース(resourc
e)のシステムにおいて、バス接続(すなわち、データバ
スを使用しようとする要求がより多くある状態)性能が
一層悪化してしまう。参照されないデータを先取するこ
とによりバスラインがビジーな状態になると、バスを用
いる他の要求(例えば、命令先取)の処理が遅延してし
まう。高性能プロセッサチィップの場合処理速度が極め
て高速であるが、バスの帯域幅が物理的制約例えばチィ
ップのピンの全数により制限されているため、上述した
状態がしばしば生じてしまう。さらに、データキャッシ
ュの空間には制限があるため参照されようとしているキ
ャッシュ中のデータが非参照先取データで置換されてし
まうような不都合が生じ、この結果キャッシュ誤りが生
じてしまう。従って、データをいかにして参照するかに
ついて一層有効な思想が得られない限り、キャッシュデ
ータ先取を有効に活用することができなくなってしま
う。
【0009】上述した米国特許公報に記載されている別
の技術として、ロードされたデータが実際に到達する前
にロード命令の後プロセッサの実行を続行する技術があ
る。この技術を用いて実行速度を増大させるため、コン
パイラを用いてプログラムのLOAD命令をスケジューリン
クすることによりプログラムの実行からメモリアクセス
時間を潜在させる試みがなされている。あるRISC (Redu
ced Instruction SetComputir) の設計思想において、
コンパイラは、データiのLOAD命令を適切にスケジュー
リンクし、iについてのロードとデータiの最初の使用
との間の時間を少なくともメモリからデータiを先取り
するために必要な時よりも長くなるように設定してい
る。理想状態において、全てのLOAD命令はこのようにし
てスケジュールすることができ、プログラムの実行にお
ける全てのメモリ参照遅延時間を潜在化することができ
る。(データキャッシュとは異なり)コンパイラの助け
によりデータが必要になる前にデータはレジスタに先取
され、データキャッシュ及びその先取スムキは共に不要
になるようになる。しかしながら、以下の理由により、
これは実際には真実ではない。
の技術として、ロードされたデータが実際に到達する前
にロード命令の後プロセッサの実行を続行する技術があ
る。この技術を用いて実行速度を増大させるため、コン
パイラを用いてプログラムのLOAD命令をスケジューリン
クすることによりプログラムの実行からメモリアクセス
時間を潜在させる試みがなされている。あるRISC (Redu
ced Instruction SetComputir) の設計思想において、
コンパイラは、データiのLOAD命令を適切にスケジュー
リンクし、iについてのロードとデータiの最初の使用
との間の時間を少なくともメモリからデータiを先取り
するために必要な時よりも長くなるように設定してい
る。理想状態において、全てのLOAD命令はこのようにし
てスケジュールすることができ、プログラムの実行にお
ける全てのメモリ参照遅延時間を潜在化することができ
る。(データキャッシュとは異なり)コンパイラの助け
によりデータが必要になる前にデータはレジスタに先取
され、データキャッシュ及びその先取スムキは共に不要
になるようになる。しかしながら、以下の理由により、
これは実際には真実ではない。
【0010】第1に、たとえコンパイラが、データiに
ついてのLOADとデータiの最初の使用との間の時間がデ
ータiについてのメモリアクセス時間よりも長くなるよ
うに全てのLOAD命令をスケジュールすることができて
も、バストラフィックの問題は依然として残存する。シ
ステムに有用なレジスタの数が制限されているため、レ
ジスタを再使用してその後直ちに参照されるデータ値だ
けをレジスタに記憶する必要がある。すなわち、データ
が必要になったときにデータを主記憶装置から先取りす
る必要がある。良好なレジスタ割当スキムを用いればメ
モリアクセス遅延時間をプログラム実行時間とオーバラ
ップさせることができるが、バストラフィックの大部分
を除去することはできない。レジスタファイルを、現在
の実行点からはるかに離れて参照されるデータに対して
バックアップメモリとして作用させるには小さすぎてし
まうので、バストラフィックを低減させるためにはデー
タキャッシュが依然として必要である。
ついてのLOADとデータiの最初の使用との間の時間がデ
ータiについてのメモリアクセス時間よりも長くなるよ
うに全てのLOAD命令をスケジュールすることができて
も、バストラフィックの問題は依然として残存する。シ
ステムに有用なレジスタの数が制限されているため、レ
ジスタを再使用してその後直ちに参照されるデータ値だ
けをレジスタに記憶する必要がある。すなわち、データ
が必要になったときにデータを主記憶装置から先取りす
る必要がある。良好なレジスタ割当スキムを用いればメ
モリアクセス遅延時間をプログラム実行時間とオーバラ
ップさせることができるが、バストラフィックの大部分
を除去することはできない。レジスタファイルを、現在
の実行点からはるかに離れて参照されるデータに対して
バックアップメモリとして作用させるには小さすぎてし
まうので、バストラフィックを低減させるためにはデー
タキャッシュが依然として必要である。
【0011】第2に、LOAD命令のメモリアクセス遅延時
間をプログラムの実行とオーバラップさせることが常に
可能であるとは限らない。限られた数のレジスタを再使
用すること及びデータ中に依存性があることから、命令
のスケジューリングについて重要な制約がある。レジス
タ Ri についてのLOAD命令はレジスタ Ri の古い値を用
いる命令を超えて移動させることができない。つまり、
レジスタ Ri についてのLOAD命令とレジスタ Ri の最初
の使用との間のギャップの大きさに制限があり、この制
限はメモリアクセス時間よりも常に大きいとは限らな
い。プロセスサイクル時間に対してメモリアクセス時間
が増大するため、メモリアクセス時間がプログラムの実
行から完全にかくれる機会は減少する。しかしながら、
この課題はキャッシュ管理には存在しない。レジスタ R
i に入力されようとしているデータのキャッシュへの先
取はレジスタ Ri のアクセスと平行して行なうことがで
きる。従って、メモリアクセスによって生じるプロセッ
サのアイドル時間に対してデータの先取は依然として有
用である。
間をプログラムの実行とオーバラップさせることが常に
可能であるとは限らない。限られた数のレジスタを再使
用すること及びデータ中に依存性があることから、命令
のスケジューリングについて重要な制約がある。レジス
タ Ri についてのLOAD命令はレジスタ Ri の古い値を用
いる命令を超えて移動させることができない。つまり、
レジスタ Ri についてのLOAD命令とレジスタ Ri の最初
の使用との間のギャップの大きさに制限があり、この制
限はメモリアクセス時間よりも常に大きいとは限らな
い。プロセスサイクル時間に対してメモリアクセス時間
が増大するため、メモリアクセス時間がプログラムの実
行から完全にかくれる機会は減少する。しかしながら、
この課題はキャッシュ管理には存在しない。レジスタ R
i に入力されようとしているデータのキャッシュへの先
取はレジスタ Ri のアクセスと平行して行なうことがで
きる。従って、メモリアクセスによって生じるプロセッ
サのアイドル時間に対してデータの先取は依然として有
用である。
【0012】第3に、LOAD命令を基本ブロックを超えて
移動させることにより、図1のプログラムの実行におい
て正確さに問題が生ずるおそれがある。命令をある基本
ブロック Bi から別の基本ブロック Bj に移動させる場
合、ブロック Bi ではなく B j だけを実行するプログラ
ムの制御経路の実行に誤った解答が生じてしまう。一
方、このような問題はキャッシュ管理においては生じな
い。キャッシュ管理スキムがあるプログラムの実行経路
に基いてデータの先取りを行ない実際のプログラムの実
行は別の経路に基いて行なう場合、プログラムの実行の
正確さに問題はなく、機械の性能が影響を受けるおそれ
がある。
移動させることにより、図1のプログラムの実行におい
て正確さに問題が生ずるおそれがある。命令をある基本
ブロック Bi から別の基本ブロック Bj に移動させる場
合、ブロック Bi ではなく B j だけを実行するプログラ
ムの制御経路の実行に誤った解答が生じてしまう。一
方、このような問題はキャッシュ管理においては生じな
い。キャッシュ管理スキムがあるプログラムの実行経路
に基いてデータの先取りを行ない実際のプログラムの実
行は別の経路に基いて行なう場合、プログラムの実行の
正確さに問題はなく、機械の性能が影響を受けるおそれ
がある。
【0013】第4に、プロセッサの命令組が限定されて
いるため、データiについてのLOAD命令をデータiにつ
いての最初の使用から分離することは常に可能なもので
はない。例えば、CISC(Complex Instructions Set Com
puuter) の設計思想において、あるアリスメティック操
作すなわち論理操作のオペランドはメモリ直接アクセス
型のものとすることができる。この結果、メモリオペラ
ンドアクセス時間をプログラムの実行とオーバラップさ
せるコンパイラ使用スケジューリンクは不可能になる。
いるため、データiについてのLOAD命令をデータiにつ
いての最初の使用から分離することは常に可能なもので
はない。例えば、CISC(Complex Instructions Set Com
puuter) の設計思想において、あるアリスメティック操
作すなわち論理操作のオペランドはメモリ直接アクセス
型のものとすることができる。この結果、メモリオペラ
ンドアクセス時間をプログラムの実行とオーバラップさ
せるコンパイラ使用スケジューリンクは不可能になる。
【0014】本発明の目的は、後で用いられるデータを
先取りするデータキャッシュ先取スキムを提供すること
にある。
先取りするデータキャッシュ先取スキムを提供すること
にある。
【0015】本発明の別の目的は、明白なキャッシュ制
御命令を用いることなく且つキャッシュ誤りがあっても
待機することなく自動的に初期化され得るデータキャッ
シュ先取スキムを提供することにある。
御命令を用いることなく且つキャッシュ誤りがあっても
待機することなく自動的に初期化され得るデータキャッ
シュ先取スキムを提供することにある。
【0016】本発明の別の目的は、平均データキャッシ
ュ誤りを減少させると共に、キャッシュ誤りを回避でき
ない場合でもメモリアクセス遅延時間をプログラムの実
行にオーバラップさせることにある。
ュ誤りを減少させると共に、キャッシュ誤りを回避でき
ない場合でもメモリアクセス遅延時間をプログラムの実
行にオーバラップさせることにある。
【0017】本発明の別の目的は、キャッシュ中に存在
する期間中参照されないデータの先取を回避させること
にある。
する期間中参照されないデータの先取を回避させること
にある。
【0018】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、処理ユニットと主記憶装置を有するデジ
タル計算機を作動させるに当たり、処理ユニット命令を
命令キャッシュに先取りさせ、先取りされた命令を前記
命令キャッシュで復調し、この命令によりいかなるデー
タが参照されるかを決定し、前記命令キャッシュで復調
された先取命令に基いて前記主記憶装置からデータを先
取りすることを特徴とする。
め、本発明は、処理ユニットと主記憶装置を有するデジ
タル計算機を作動させるに当たり、処理ユニット命令を
命令キャッシュに先取りさせ、先取りされた命令を前記
命令キャッシュで復調し、この命令によりいかなるデー
タが参照されるかを決定し、前記命令キャッシュで復調
された先取命令に基いて前記主記憶装置からデータを先
取りすることを特徴とする。
【0019】新しい命令キャッシュの設計(コンパイラ
駆動キャッシュ制御やチィップ命令キャッシュのマルチ
バッファ)並びにブランチターゲット述語技術(brancht
arget prediction techneque)の開発に伴ない、命令キ
ャッシュの先取は極めて正確に、且つ参照されるよりも
一層早く実行することができる。この結果、後で参照さ
れる可能性の高い先取りされた命令からデータがいかに
して参照されるかについてのヒントが取り出される可能
性が生ずる。すなわち、キャッシュ中の命令は実行され
る高性能が高く、命令の実行によって参照されるデータ
が使用される可能性も高い。この情報はデータキャッシ
ュ先取については極めて重要である。この理由は、ブロ
ック先取や常時先取のような単純な推量機構よりも一層
良好なデータ先取参照動作が実現されるからである。
尚、上記ブロック先取や常時先取は順次参照の場合だけ
良好な作用を発揮するにすぎない。
駆動キャッシュ制御やチィップ命令キャッシュのマルチ
バッファ)並びにブランチターゲット述語技術(brancht
arget prediction techneque)の開発に伴ない、命令キ
ャッシュの先取は極めて正確に、且つ参照されるよりも
一層早く実行することができる。この結果、後で参照さ
れる可能性の高い先取りされた命令からデータがいかに
して参照されるかについてのヒントが取り出される可能
性が生ずる。すなわち、キャッシュ中の命令は実行され
る高性能が高く、命令の実行によって参照されるデータ
が使用される可能性も高い。この情報はデータキャッシ
ュ先取については極めて重要である。この理由は、ブロ
ック先取や常時先取のような単純な推量機構よりも一層
良好なデータ先取参照動作が実現されるからである。
尚、上記ブロック先取や常時先取は順次参照の場合だけ
良好な作用を発揮するにすぎない。
【0020】この技術は、“現行窓データキャッシュ先
取(current window data cacheprefetching)”又は“CW
D 先取”と称することにする。
取(current window data cacheprefetching)”又は“CW
D 先取”と称することにする。
【0021】“インテリジェント”命令キャッシュ先取
スキム(例えば、欧州特許出願第91201135.0号公報に記
載されているスキム)を用いて次の数サイクルで実行さ
れることが予期される命令を高精度に先取する。特別な
ハードウェアを用いて、これら先取された命令をプリデ
コードして先取された命令によって参照される全ての
(数個の)データを見い出す。先取りされた命令に関連
する予期されたデータは順次データキャッシュに先取り
される。従って、データがキャッシュ中にすでにない場
合このデータは命令が実際に実行される前にキャッシュ
に入力される。
スキム(例えば、欧州特許出願第91201135.0号公報に記
載されているスキム)を用いて次の数サイクルで実行さ
れることが予期される命令を高精度に先取する。特別な
ハードウェアを用いて、これら先取された命令をプリデ
コードして先取された命令によって参照される全ての
(数個の)データを見い出す。先取りされた命令に関連
する予期されたデータは順次データキャッシュに先取り
される。従って、データがキャッシュ中にすでにない場
合このデータは命令が実際に実行される前にキャッシュ
に入力される。
【0022】従って、プロセッサが命令を実行するため
にデータを先取りしたとき、ほとんど常時キャッシュヒ
ットが存在する。この理由は、このデータは直前にキャ
ッシュに先取りされているからである。データキャッシ
ュを構築することにより、データがキャッシュに先取り
された後変更されても、このデータは確実に一致する。
例えば命令流中の予期しないブランチにより生ずる適切
なデータの先取の失敗によりキャッシュ誤りが生ずるお
それがある。このキャッシュ誤りは正しい命令の実行を
犠牲にしてではなくデータ先取の遅延を犠牲にしてデー
タキャッシュにより処理される。
にデータを先取りしたとき、ほとんど常時キャッシュヒ
ットが存在する。この理由は、このデータは直前にキャ
ッシュに先取りされているからである。データキャッシ
ュを構築することにより、データがキャッシュに先取り
された後変更されても、このデータは確実に一致する。
例えば命令流中の予期しないブランチにより生ずる適切
なデータの先取の失敗によりキャッシュ誤りが生ずるお
それがある。このキャッシュ誤りは正しい命令の実行を
犠牲にしてではなくデータ先取の遅延を犠牲にしてデー
タキャッシュにより処理される。
【0023】次の数サイクルで実行される予定の命令が
命令キャッシュの先取ユニットで決定されると、この命
令はキャッシュ制御ユニットに送出され、ここでプリデ
コードされてデータのアドレスが決定される。CWD 先取
スキムにおいて、参照すべきデータのアドレスモードは
3個のカテゴリーに分類される。IMMEDIATE ADDRESSING
MODE このアドレスモードにおいて、オペランドの値は
命令中で指定される。このアドレスモードのもとではオ
ペランドアドレスはない。DIRECT ADDRESSING MODEこの
アドレスモードにおいて、オペランドのアドレスは命令
中に指定される。非自己変更命令であるとすると、オペ
ランドのアドレスはプログラムの実行中に変更されな
い。INDIRECTING ADDRESSING MODE このアドレスモー
ドにおいて、オペランドのアドレスはあるレジスタ( 例
えば、インデックス又は基準化されたレジスタ) 及び/
又はメモリ位置の関数となる。レジスタの値はプログラ
ムの実行中に変更され得るので、この種のデータのオペ
ランドアドレスは固定されない。通常、アドレスの実行
に際し、オペランドアドレスは種々のメモリ位置を指示
する。
命令キャッシュの先取ユニットで決定されると、この命
令はキャッシュ制御ユニットに送出され、ここでプリデ
コードされてデータのアドレスが決定される。CWD 先取
スキムにおいて、参照すべきデータのアドレスモードは
3個のカテゴリーに分類される。IMMEDIATE ADDRESSING
MODE このアドレスモードにおいて、オペランドの値は
命令中で指定される。このアドレスモードのもとではオ
ペランドアドレスはない。DIRECT ADDRESSING MODEこの
アドレスモードにおいて、オペランドのアドレスは命令
中に指定される。非自己変更命令であるとすると、オペ
ランドのアドレスはプログラムの実行中に変更されな
い。INDIRECTING ADDRESSING MODE このアドレスモー
ドにおいて、オペランドのアドレスはあるレジスタ( 例
えば、インデックス又は基準化されたレジスタ) 及び/
又はメモリ位置の関数となる。レジスタの値はプログラ
ムの実行中に変更され得るので、この種のデータのオペ
ランドアドレスは固定されない。通常、アドレスの実行
に際し、オペランドアドレスは種々のメモリ位置を指示
する。
【0024】データ参照におけるこれら種類のアドレス
モードの各々は、CWD 先取スキムにおけるデータ参照用
のアドレス計算するためのハードウエア( 先取された命
令をプリデコードするためのハードウエア以外のもの)
に対して種々の要求を有している。
モードの各々は、CWD 先取スキムにおけるデータ参照用
のアドレス計算するためのハードウエア( 先取された命
令をプリデコードするためのハードウエア以外のもの)
に対して種々の要求を有している。
【0025】本発明による計算機を作動させる方法の一
実施例においては、さらに、前記命令キャッシュで先取
りされた命令がデータを直接参照されるものかを決定
し、データを直接参照させている場合前記主記憶装置に
データ要求を送出する工程を有する。
実施例においては、さらに、前記命令キャッシュで先取
りされた命令がデータを直接参照されるものかを決定
し、データを直接参照させている場合前記主記憶装置に
データ要求を送出する工程を有する。
【0026】別の実施例においては、さらに、前記命令
キャッシュで先取りされた命令がデータを間接的に参照
されるものかを前記処理ユニットのレジスタに基いて決
定し、処理ユニットの各レジスタに対して、レジスタが
使用され得る前に通過すべきプロセッササイクルの数の
計数を続行して正確な間接アドレス計算を行なう工程を
有する。
キャッシュで先取りされた命令がデータを間接的に参照
されるものかを前記処理ユニットのレジスタに基いて決
定し、処理ユニットの各レジスタに対して、レジスタが
使用され得る前に通過すべきプロセッササイクルの数の
計数を続行して正確な間接アドレス計算を行なう工程を
有する。
【0027】このように構成すると、間接的なデータ参
照でさえも先取りすることができ、しかも命令の実行が
順次行なわれる限りキャッシュ誤りはほとんど全て回避
される。
照でさえも先取りすることができ、しかも命令の実行が
順次行なわれる限りキャッシュ誤りはほとんど全て回避
される。
【0028】本発明による計算機を作動させる方法の別
の実施例においては、さらに、各先取り要求が実行され
得る前に通過すべきプロセスサイクルの数を表示するカ
ウンタと間連して、データ先取要求をキューメモリに保
持する工程を有する。このように構成すれば、先取は復
調命令と同期しないで行なうことができる。さらに、本
発明による方法の実施例においては、前記先取キューの
データ先取要求に関連するカウンタが、データを要求す
る先取された命令によって間接アドレス計算に用いられ
るレジスタ用に維持されているカウンタフィールドの最
上位に最初にセットされる。
の実施例においては、さらに、各先取り要求が実行され
得る前に通過すべきプロセスサイクルの数を表示するカ
ウンタと間連して、データ先取要求をキューメモリに保
持する工程を有する。このように構成すれば、先取は復
調命令と同期しないで行なうことができる。さらに、本
発明による方法の実施例においては、前記先取キューの
データ先取要求に関連するカウンタが、データを要求す
る先取された命令によって間接アドレス計算に用いられ
るレジスタ用に維持されているカウンタフィールドの最
上位に最初にセットされる。
【0029】本発明による方法を実施するため、本発明
による計算機は、処理ユニットと、主記憶装置と、前記
主記憶装置から処理ユニットに対する命令を先取し及び
保持するように構成した命令キャッシュ手段と、先取り
された命令を復調して先取りされた命令についてデータ
参照を行うか否かを決定すると共に、データの先取を発
生させ、このデータを保持するように構成したデータキ
ャッシュ制御手段と、前記主記憶装置に対する表示とし
てキャッシュされたデータを保持するデータキャッシュ
手段とを具える計算機において、前記データキャッシュ
手段を、前記先取りされた命令が、前記処理ユニットに
含まれている1個又はそれ以上のレジスタに保持されて
いる情報を用いる間接アドスモードでデータの参照を行
うか否かを決定すると共に、この際前記レジスタに保持
されている情報からデータの参照を決定するように構成
し、第1のカウンタ手段が前記各レジスタとそれぞれ関
連し、現在の処理ユニット命令と処理ユニットによる各
レジスタの将来の内容変更との間の処理サイクルの各計
数を維持し、前記データキャッシュ制御手段が、前記デ
ータの参照が間接アドレスモードの場合、先取キューの
要求を送出し、第2のカウンタ手段が前記先取キューの
先取要求と関連してデータの先取を正確に実行する前に
通過すべき処理サイクルの数を表示し、前記データキャ
ッシュ手段が、前記処理サイクルの数を、前記データの
参照を決定するために用いた1個又はそれ以上のレジス
タと関連する各計数値の最大値に初期設定することを特
徴とする。このように構成することにより、プロセッサ
は別の操作を行うことなく有効なデータキャッシングを
達成することができる。
による計算機は、処理ユニットと、主記憶装置と、前記
主記憶装置から処理ユニットに対する命令を先取し及び
保持するように構成した命令キャッシュ手段と、先取り
された命令を復調して先取りされた命令についてデータ
参照を行うか否かを決定すると共に、データの先取を発
生させ、このデータを保持するように構成したデータキ
ャッシュ制御手段と、前記主記憶装置に対する表示とし
てキャッシュされたデータを保持するデータキャッシュ
手段とを具える計算機において、前記データキャッシュ
手段を、前記先取りされた命令が、前記処理ユニットに
含まれている1個又はそれ以上のレジスタに保持されて
いる情報を用いる間接アドスモードでデータの参照を行
うか否かを決定すると共に、この際前記レジスタに保持
されている情報からデータの参照を決定するように構成
し、第1のカウンタ手段が前記各レジスタとそれぞれ関
連し、現在の処理ユニット命令と処理ユニットによる各
レジスタの将来の内容変更との間の処理サイクルの各計
数を維持し、前記データキャッシュ制御手段が、前記デ
ータの参照が間接アドレスモードの場合、先取キューの
要求を送出し、第2のカウンタ手段が前記先取キューの
先取要求と関連してデータの先取を正確に実行する前に
通過すべき処理サイクルの数を表示し、前記データキャ
ッシュ手段が、前記処理サイクルの数を、前記データの
参照を決定するために用いた1個又はそれ以上のレジス
タと関連する各計数値の最大値に初期設定することを特
徴とする。このように構成することにより、プロセッサ
は別の操作を行うことなく有効なデータキャッシングを
達成することができる。
【0030】本発明による計算機の一実施例は、前記デ
ータキャッシュ制御手段が、データ先取の要求を先取キ
ューにバッファリングするキュー手段を具える。この場
合、回線の競合を緩和するためデータ先取を遅延させる
ことができる。
ータキャッシュ制御手段が、データ先取の要求を先取キ
ューにバッファリングするキュー手段を具える。この場
合、回線の競合を緩和するためデータ先取を遅延させる
ことができる。
【0031】緊急アドレスモードでデータ参照を行なう
場合、オペランドアドレスがないため、付加的なハード
ウエアは不要である。直接アドレスモードでデータ参照
を行なう場合も同様に付加的なハードウエアは不要であ
る。この理由は、オペランドのアドレスは命令で特定さ
れ、CWD 先取スキムにおいてはアドレス計算が不要にな
るからである。
場合、オペランドアドレスがないため、付加的なハード
ウエアは不要である。直接アドレスモードでデータ参照
を行なう場合も同様に付加的なハードウエアは不要であ
る。この理由は、オペランドのアドレスは命令で特定さ
れ、CWD 先取スキムにおいてはアドレス計算が不要にな
るからである。
【0032】本発明による計算機の別の実施例は、前記
データキャッシュ制御手段が、命令が、前記処理ユニッ
トに具えられている1又はそれ以上のレジスタに保持さ
れている情報を用いる間接アドレスモードでデータの参
照を行なうかを決定すると共に、この際前記レジスタに
保持されている情報からデータの参照を決定するように
構成されていることを特徴とする。この場合、間接アド
レスシングを用いるデータ参照の多くは、キャッシュ誤
りの発生から阻止される。先取の後レジスタが変更され
た場合だけ、プロセッサがデータをアクセスした時プロ
セッサはデータキャッシュ手段においてキャッシュ誤り
を発生することができる。
データキャッシュ制御手段が、命令が、前記処理ユニッ
トに具えられている1又はそれ以上のレジスタに保持さ
れている情報を用いる間接アドレスモードでデータの参
照を行なうかを決定すると共に、この際前記レジスタに
保持されている情報からデータの参照を決定するように
構成されていることを特徴とする。この場合、間接アド
レスシングを用いるデータ参照の多くは、キャッシュ誤
りの発生から阻止される。先取の後レジスタが変更され
た場合だけ、プロセッサがデータをアクセスした時プロ
セッサはデータキャッシュ手段においてキャッシュ誤り
を発生することができる。
【0033】本発明による計算機の実施例において、各
レジスタは2個のアクセスポートと、処理ユニットをア
クセスさせる第1ポートと、データキャッシュ制御手段
をアクセスする第2ポートとを有する。
レジスタは2個のアクセスポートと、処理ユニットをア
クセスさせる第1ポートと、データキャッシュ制御手段
をアクセスする第2ポートとを有する。
【0034】間接アドレスモードでデータの参照を行な
う場合、アドレスのオペランドはレジスタ例えばベース
レジスタやインデックスレジスタのようなレジスタの値
の関数となるから、CWD 先取スキムはアドレス計算にお
いてレジスタをアクセスする必要がある。この結果、処
理ユニットは、データキャッシュ制御ユニットが予期し
たデータのアドレス計算するためレジスタファイルを読
出そうとすると同時にレジスタファイルをアクセスする
必要があるため、マルチーリード−ポート型レジスタフ
ァイルが有用である。さらに、読出要求と書込要求とが
レジスタに同時に入力した場合、これら2個の要求を順
次処理する必要がある。はじめに書込要求を作動させそ
の次に読出要求を作動させる。アドレス計算を実行する
必要があるため、データキャッシュ制御ユニトにおいて
は相当な計算容量が必要である。先取りされた命令I中
の参照データのアドレス Ai が見い出されると、位置 A
i の内容に対するデータ先取要求は直ちに送出されるの
で、データ先取を実行するためのより長い時間がある。
一方、メモリ位置 Ai の内容を先取することにより得ら
れたデータが命令Iの実行中に実際に参照されるデータ
でない場合がある。
う場合、アドレスのオペランドはレジスタ例えばベース
レジスタやインデックスレジスタのようなレジスタの値
の関数となるから、CWD 先取スキムはアドレス計算にお
いてレジスタをアクセスする必要がある。この結果、処
理ユニットは、データキャッシュ制御ユニットが予期し
たデータのアドレス計算するためレジスタファイルを読
出そうとすると同時にレジスタファイルをアクセスする
必要があるため、マルチーリード−ポート型レジスタフ
ァイルが有用である。さらに、読出要求と書込要求とが
レジスタに同時に入力した場合、これら2個の要求を順
次処理する必要がある。はじめに書込要求を作動させそ
の次に読出要求を作動させる。アドレス計算を実行する
必要があるため、データキャッシュ制御ユニトにおいて
は相当な計算容量が必要である。先取りされた命令I中
の参照データのアドレス Ai が見い出されると、位置 A
i の内容に対するデータ先取要求は直ちに送出されるの
で、データ先取を実行するためのより長い時間がある。
一方、メモリ位置 Ai の内容を先取することにより得ら
れたデータが命令Iの実行中に実際に参照されるデータ
でない場合がある。
【0035】データの参照に間接アドレスモードを用い
る場合、先取りされた命令I中の参照データのアドレス
Ai の計算はインデックスの値及びレジスタ Ri ---- R
n の値に基いて行なう。データを先取りするための十分
な時間を確実に得るため、先取要求は数個の命令の前に
生じさせる必要がある。すなわち、メモリ位置A i の内
容についての先取要求の発生と命令Iの実行との間にあ
る時間ギャップがある。一方、この時間ギャップ中に、
レジスタ R1 ---- Rn の値が変更されない保証はない。
アドレス Ai の計算に用いた全てのレジスタの値が変更
されない場合、先取りされたデータは命令Iの実行に必
要なデータとなる。一方、アドレス Ai の計算に用いた
レジスタのうちの数個は時間ギャップ中に変更すること
も可能である。この場合、先取されたデータは命令Iの
実行に必要なデータではなくなる。この理由は、レジス
タ R1 ---- Rn の新しい値はデータのアドレス計算に用
いられ、レジスタ R1 ---- Rn の新しい値は位置 Ai の
実際の参照データのアドレス計算に用いられるためであ
る。
る場合、先取りされた命令I中の参照データのアドレス
Ai の計算はインデックスの値及びレジスタ Ri ---- R
n の値に基いて行なう。データを先取りするための十分
な時間を確実に得るため、先取要求は数個の命令の前に
生じさせる必要がある。すなわち、メモリ位置A i の内
容についての先取要求の発生と命令Iの実行との間にあ
る時間ギャップがある。一方、この時間ギャップ中に、
レジスタ R1 ---- Rn の値が変更されない保証はない。
アドレス Ai の計算に用いた全てのレジスタの値が変更
されない場合、先取りされたデータは命令Iの実行に必
要なデータとなる。一方、アドレス Ai の計算に用いた
レジスタのうちの数個は時間ギャップ中に変更すること
も可能である。この場合、先取されたデータは命令Iの
実行に必要なデータではなくなる。この理由は、レジス
タ R1 ---- Rn の新しい値はデータのアドレス計算に用
いられ、レジスタ R1 ---- Rn の新しい値は位置 Ai の
実際の参照データのアドレス計算に用いられるためであ
る。
【0036】上記課題を解消する実施例は、第1のカウ
ンタ手段が前記各レジスタとそれぞれ関連し、現在の処
理ユニット命令と将来の処理ユニットによる各レジスタ
の内容変更との間の処理サイクルの各計数を持続する。
ンタ手段が前記各レジスタとそれぞれ関連し、現在の処
理ユニット命令と将来の処理ユニットによる各レジスタ
の内容変更との間の処理サイクルの各計数を持続する。
【0037】前記先取キューの先取要求と関連する第2
のカウンタ手段を具え、データ先取りを正確に実行する
前に通過すべき処理サイクルの数を表示するように構成
した本発明による計算機により、間接アドレシングの課
題は解決される。
のカウンタ手段を具え、データ先取りを正確に実行する
前に通過すべき処理サイクルの数を表示するように構成
した本発明による計算機により、間接アドレシングの課
題は解決される。
【0038】
【実施例】図2は本発明の正確な実施例を示す。計算機
の処理ユニット10はレジスタファイル20を含み、このレ
ジスタファイルはレジスタセル R1 ---- Rn を有する。
レジスタファイル20の各レジスタセルは2個のフィール
ド、すなわちデータフィールドとカウンタフィールドを
有する。一般的なように、各レジスタセルのデータフィ
ールドはこのレジスタに記憶されている値を含んでい
る。アドレス計算においてデータ先取要求がレジスタを
用いる必要がある場合、レジスタのカウンタフィールド
を用いて送出する前にデータ先取要求を待機させる必要
のあるサイクルの数を表示する。カウンタフィールドは
キャッシュ制御ユニット30により更新すなわちセットす
る。先取りされた命令中にレジスタに対する書込操作が
ある場合には必ずカウンタフィールドを Tahead にセッ
トする。ここで、Tahead は、CWD 先取スキムが先取り
する命令の数である。すなわち、この Tahead は、 T
ahed個のサイクル後ににだけ新しいレジスタの値が有用
になることを表示する。レジスタのカウンタフィールド
中の零値は、データの先取に必要なアドレス計算のため
に使用されるために用意されることを意味する。各命令
が実行された後、レジスタファイルのレジスタの各々の
カウンタフィールドは、このカウンタフィールドを1だ
けデクリメントすることにより(零でない場合)更新さ
れる必要がある。先取キュー40を用いて、送出されるた
め待機ししているデータ先取要求をホールドする。この
理由は、アドレス計算に必要なレジスタの値が用意され
ず又はバスラインが使用中のためである。アドレス計算
に必要なレジスタの値が用意されていないため、データ
先取要求が先取キュー40に入力されると、先取キューの
カウンタフィールドはアドレス計算に用いられるレジス
タのカウンタフィールドの値の最大値に設定される。こ
れにより、アドレスするまで先取要求を待機させる時間
が再計算され得ることを意味する。一旦先取キューの先
取要求のカウンタが零になると、その先取りアドレスが
再計算されこの先取要求が送出されることになる。各命
令が実行された後、先取キューの各先取要求のカウンタ
フィールドは1だけデクリメントすることにより更新さ
れる必要があり(零でない場合)、レジスタのカウンタ
フィールドについても同様な操作を行なう。
の処理ユニット10はレジスタファイル20を含み、このレ
ジスタファイルはレジスタセル R1 ---- Rn を有する。
レジスタファイル20の各レジスタセルは2個のフィール
ド、すなわちデータフィールドとカウンタフィールドを
有する。一般的なように、各レジスタセルのデータフィ
ールドはこのレジスタに記憶されている値を含んでい
る。アドレス計算においてデータ先取要求がレジスタを
用いる必要がある場合、レジスタのカウンタフィールド
を用いて送出する前にデータ先取要求を待機させる必要
のあるサイクルの数を表示する。カウンタフィールドは
キャッシュ制御ユニット30により更新すなわちセットす
る。先取りされた命令中にレジスタに対する書込操作が
ある場合には必ずカウンタフィールドを Tahead にセッ
トする。ここで、Tahead は、CWD 先取スキムが先取り
する命令の数である。すなわち、この Tahead は、 T
ahed個のサイクル後ににだけ新しいレジスタの値が有用
になることを表示する。レジスタのカウンタフィールド
中の零値は、データの先取に必要なアドレス計算のため
に使用されるために用意されることを意味する。各命令
が実行された後、レジスタファイルのレジスタの各々の
カウンタフィールドは、このカウンタフィールドを1だ
けデクリメントすることにより(零でない場合)更新さ
れる必要がある。先取キュー40を用いて、送出されるた
め待機ししているデータ先取要求をホールドする。この
理由は、アドレス計算に必要なレジスタの値が用意され
ず又はバスラインが使用中のためである。アドレス計算
に必要なレジスタの値が用意されていないため、データ
先取要求が先取キュー40に入力されると、先取キューの
カウンタフィールドはアドレス計算に用いられるレジス
タのカウンタフィールドの値の最大値に設定される。こ
れにより、アドレスするまで先取要求を待機させる時間
が再計算され得ることを意味する。一旦先取キューの先
取要求のカウンタが零になると、その先取りアドレスが
再計算されこの先取要求が送出されることになる。各命
令が実行された後、先取キューの各先取要求のカウンタ
フィールドは1だけデクリメントすることにより更新さ
れる必要があり(零でない場合)、レジスタのカウンタ
フィールドについても同様な操作を行なう。
【0039】ブランチが形成される場合必ず全てのレジ
スタのカウンタフィールドがリセットされ、ブランチの
前の先取キューに配置されている全ての先取要求が除去
される。すなわち、プログラムの実行がブランチに後続
する経路に沿って続行される場合、これら全てのカウン
タフィールド及び先取要求は将来のデータ基準に関する
正しいヒントを示すにすぎないためである。従って、ブ
ランチが一旦形成されると、これら全てのヒントは不要
になり除去する必要がある。
スタのカウンタフィールドがリセットされ、ブランチの
前の先取キューに配置されている全ての先取要求が除去
される。すなわち、プログラムの実行がブランチに後続
する経路に沿って続行される場合、これら全てのカウン
タフィールド及び先取要求は将来のデータ基準に関する
正しいヒントを示すにすぎないためである。従って、ブ
ランチが一旦形成されると、これら全てのヒントは不要
になり除去する必要がある。
【0040】CWD 先取操作の第1実施例の制御機構は以
下のように要約される。次のT ahead 番目のサイクルで
実行される予定の命令Iは、命令キャッシュ50(命令キ
ャッシュ先取ヒントがある場合) 又は主記憶装置60 (命
令キャッシュ先取誤りがある場合) のいずれかからキャ
ッシュ制御ユニットに送出される。
下のように要約される。次のT ahead 番目のサイクルで
実行される予定の命令Iは、命令キャッシュ50(命令キ
ャッシュ先取ヒントがある場合) 又は主記憶装置60 (命
令キャッシュ先取誤りがある場合) のいずれかからキャ
ッシュ制御ユニットに送出される。
【0041】先取りされた命令Iはキャッシュ制御ユニ
ット30においてプリデコードされ、更新されようとして
いるレジスタ及び命令Iが実行される場合に参照される
べきデータを検索する。
ット30においてプリデコードされ、更新されようとして
いるレジスタ及び命令Iが実行される場合に参照される
べきデータを検索する。
【0042】先取された命令Iの実行により更新されよ
うとしているレジスタRi がある場合、レジスタ Ri の
カウンタフィールドを Tahead に設定する。ここで、 T
ahea d は、CWD 先取スキムが先取りするサイクルの数で
ある。先取りされた命令Iによって参照されるデータが
ある場合、データ先取要求が発生する。予期された参照
すべきデータが最も近いアドレスモードの場合、先取要
求は送出しない。予期された参照データ Di が直接的な
アドレスモードの場合、データキャッシュをチェックし
て参照データ Di がキャッシュ60にすでにあるか否かを
確認する。参照データ Di について先取キャッシュ誤り
がある場合だけDi の先取り要求を送出する。予期した
参照データ Di が間接的なアドレスモードの場合並びに
Di のアドレス計算に用いた全てのレジスタのカウンタ
フィールドが零の場合、データキャッシュ60をチェック
して参照データ Di がキャッシュ60にすでにあるか否か
を調べる。参照データ Di がすでにキャッシュ60に存在
する場合、参照データ Di についての先取要求が打ち切
られる。一方、キャッシュ中に存在しない場合、参照デ
ータ Di についての先取要求は、バスラインがフリーに
なりしだい主記憶装置に送出される。
うとしているレジスタRi がある場合、レジスタ Ri の
カウンタフィールドを Tahead に設定する。ここで、 T
ahea d は、CWD 先取スキムが先取りするサイクルの数で
ある。先取りされた命令Iによって参照されるデータが
ある場合、データ先取要求が発生する。予期された参照
すべきデータが最も近いアドレスモードの場合、先取要
求は送出しない。予期された参照データ Di が直接的な
アドレスモードの場合、データキャッシュをチェックし
て参照データ Di がキャッシュ60にすでにあるか否かを
確認する。参照データ Di について先取キャッシュ誤り
がある場合だけDi の先取り要求を送出する。予期した
参照データ Di が間接的なアドレスモードの場合並びに
Di のアドレス計算に用いた全てのレジスタのカウンタ
フィールドが零の場合、データキャッシュ60をチェック
して参照データ Di がキャッシュ60にすでにあるか否か
を調べる。参照データ Di がすでにキャッシュ60に存在
する場合、参照データ Di についての先取要求が打ち切
られる。一方、キャッシュ中に存在しない場合、参照デ
ータ Di についての先取要求は、バスラインがフリーに
なりしだい主記憶装置に送出される。
【0043】先取りされた命令Iに係る参照データ Di
が存在するか又は Di のアドレス計算に用いたレジスタ
のカウンタフィールドの数個が零でない場合、 Di につ
いての先取要求は先取キューに配置され、そのカウンタ
フィールドは Di のアドレス計算に用いたレジスタの非
零値である最大値にセットする。
が存在するか又は Di のアドレス計算に用いたレジスタ
のカウンタフィールドの数個が零でない場合、 Di につ
いての先取要求は先取キューに配置され、そのカウンタ
フィールドは Di のアドレス計算に用いたレジスタの非
零値である最大値にセットする。
【0044】各命令の後、レジスタファイル20及び先取
キュー40の全てのカウンタは1だけデクリメントする
(カウンタがすでに零になっている場合)。先取キュー
における先取要求のカウンタフィールドが零の場合、そ
の有効アドレスは再計算され、バスラインがフリーにな
りしだい、新しく計算されたアドレスを用いてデータ先
取要求を送出する。
キュー40の全てのカウンタは1だけデクリメントする
(カウンタがすでに零になっている場合)。先取キュー
における先取要求のカウンタフィールドが零の場合、そ
の有効アドレスは再計算され、バスラインがフリーにな
りしだい、新しく計算されたアドレスを用いてデータ先
取要求を送出する。
【0045】データ先取の進行中に、システムの機能的
ユニットに対してバスラインを使用する新たな要求があ
る場合において、以下の状況が生じた場合にはデータの
先取は打ち切られる。 1.新しい要求が命令キャッシュ誤りの場合。 2.新しい要求が命令データキャッシュ誤りであり且つこ
の新しい要求が現行のデータ先取要求と同一でない場合
(制御ユニット30はどのデータ先取要求が供給されてい
るかを考慮し、2個の要求を比較してこれらの要求が同
一か否かを確認する)。 3.トラップ又はマスク不可能な割込のような一層高い割
込優先を有する他の要求が生じた場合。 ブランチが生ずると、ブランチ命令が実行される前に先
取キューに存在する全ての先取要求は先取キューから除
去される。
ユニットに対してバスラインを使用する新たな要求があ
る場合において、以下の状況が生じた場合にはデータの
先取は打ち切られる。 1.新しい要求が命令キャッシュ誤りの場合。 2.新しい要求が命令データキャッシュ誤りであり且つこ
の新しい要求が現行のデータ先取要求と同一でない場合
(制御ユニット30はどのデータ先取要求が供給されてい
るかを考慮し、2個の要求を比較してこれらの要求が同
一か否かを確認する)。 3.トラップ又はマスク不可能な割込のような一層高い割
込優先を有する他の要求が生じた場合。 ブランチが生ずると、ブランチ命令が実行される前に先
取キューに存在する全ての先取要求は先取キューから除
去される。
【0046】図3はCWD 先取機構を有する計算機の簡単
化した実施例を示す。図3の実施例の図2に示す実施例
に勝る主要な利点は、制御機構及びハードウエアが一層
簡単になることである。図2と比較して、図3の実施例
の主要な特徴は、レジスタが更新されようとする時及び
先取要求が送出され得る時にブックキーピング操作が全
くないことである。図3の実施例は、先取られた命令I
に参照データがあるか否かを確認しようとするだけであ
る。命令中に参照データがある場合、必要な場合にはそ
のアドレス Ai はレジスタファイル中のレジスタの現在
の値を用いて直ちに計算される。次に、キャシュがチェ
ックされてアドレス Ai の内容がすでにキャッシュ中に
存在するか否かを確認する。先取誤りがある場合、アド
レス Ai についての先取要求は先取キューに入力されバ
スラインがフリーになると送出される。図3の実施例に
ついての制御機構は以下のように要約することができ
る。
化した実施例を示す。図3の実施例の図2に示す実施例
に勝る主要な利点は、制御機構及びハードウエアが一層
簡単になることである。図2と比較して、図3の実施例
の主要な特徴は、レジスタが更新されようとする時及び
先取要求が送出され得る時にブックキーピング操作が全
くないことである。図3の実施例は、先取られた命令I
に参照データがあるか否かを確認しようとするだけであ
る。命令中に参照データがある場合、必要な場合にはそ
のアドレス Ai はレジスタファイル中のレジスタの現在
の値を用いて直ちに計算される。次に、キャシュがチェ
ックされてアドレス Ai の内容がすでにキャッシュ中に
存在するか否かを確認する。先取誤りがある場合、アド
レス Ai についての先取要求は先取キューに入力されバ
スラインがフリーになると送出される。図3の実施例に
ついての制御機構は以下のように要約することができ
る。
【0047】次の Tahead 番目のサイクルで実行される
予定の命令Iは、命令キャッシュ(命令キャッシュ先取
ヒットがある場合)又は主記憶装置(命令キャッシュ先
取誤りがある場合)からデータキャッシュ制御ユニット
に送出する。ここで、 Tahea d はCWD 先取スキムが先取
りするサイクルの番号である。
予定の命令Iは、命令キャッシュ(命令キャッシュ先取
ヒットがある場合)又は主記憶装置(命令キャッシュ先
取誤りがある場合)からデータキャッシュ制御ユニット
に送出する。ここで、 Tahea d はCWD 先取スキムが先取
りするサイクルの番号である。
【0048】命令Iはキャッシュ制御ユニット30におい
てプリデコードされ、命令Iに係る参照データ Di のア
ドレスは、必要な場合レジスタファイル20のあるレジス
タの現在値を用いて検索する。命令Iに参照すべきデー
タ Di がある場合、データキャッシュ60をチェックして
データ Di が存在するか否かを確認する。データ Di が
すでにデータキャッシュ60に存在する場合、先取要求は
無視する。一方、データ Di がキャッシュメモリに存在
しない場合、データ Di についての先取要求を先取キュ
ー40に入力させる。データ Di の先取は、バスラインが
フリーになったとき開始する。
てプリデコードされ、命令Iに係る参照データ Di のア
ドレスは、必要な場合レジスタファイル20のあるレジス
タの現在値を用いて検索する。命令Iに参照すべきデー
タ Di がある場合、データキャッシュ60をチェックして
データ Di が存在するか否かを確認する。データ Di が
すでにデータキャッシュ60に存在する場合、先取要求は
無視する。一方、データ Di がキャッシュメモリに存在
しない場合、データ Di についての先取要求を先取キュ
ー40に入力させる。データ Di の先取は、バスラインが
フリーになったとき開始する。
【0049】データの先取操作の進行中に、システムの
機能しているユニットに対してバスラインを使用する新
たな要求がある場合、以下の状態が生じたときデータの
先取を打ち切る。 1.新しい要求が命令キャッシュ誤りの場合。 2.新しい要求がデータキャッシュ誤りであり、この新し
い要求が現在のデータ先取要求と同一でない場合。 3.トラップ又はマスク不可能な割込のような高い割込優
先を有する他の要求がシステムに生じた場合。 ブランチが生ずると、ブランチの実行前に先取キューに
ある全ての先取要求は先取キューから除去される。
機能しているユニットに対してバスラインを使用する新
たな要求がある場合、以下の状態が生じたときデータの
先取を打ち切る。 1.新しい要求が命令キャッシュ誤りの場合。 2.新しい要求がデータキャッシュ誤りであり、この新し
い要求が現在のデータ先取要求と同一でない場合。 3.トラップ又はマスク不可能な割込のような高い割込優
先を有する他の要求がシステムに生じた場合。 ブランチが生ずると、ブランチの実行前に先取キューに
ある全ての先取要求は先取キューから除去される。
【0050】図3の実施例において、レジスタが更新さ
れようとしているとき並びに先取要求を送出することが
できるときにおいて全てのブックキーピングが存在しな
いから、命令Iにより先取されたデータは、命令Iの実
行中に実際に参照される同一のデータではない。しかし
ながら、この状況はさほど悪いものではない。データD
i の先取りとデータ Di の実際の参照との間の時間的ギ
ャップ Tahead は数個の命令にすぎないからである。こ
の正しくないデータ先取の機会はさほど高くない。この
コンパィラは、CWD 先取スキムのアドレス計算に用いた
レジスタを更新させる命令を移動させて一層早く発生さ
せることにより、この状態を回避し続けることもでき
る。さらに、データ参照ポインタは通常一定時間で更新
される。従って、アドレス計算にレジスタの古い値を用
いてCWD スキムのデータ先取を行なう場合、生ずる参照
アドレスはすでにデータキャッシュに先取りされている
データを指示しなければならない。この場合、先取は何
んら送出されずデータキャッシュ混乱も全く生じない。
れようとしているとき並びに先取要求を送出することが
できるときにおいて全てのブックキーピングが存在しな
いから、命令Iにより先取されたデータは、命令Iの実
行中に実際に参照される同一のデータではない。しかし
ながら、この状況はさほど悪いものではない。データD
i の先取りとデータ Di の実際の参照との間の時間的ギ
ャップ Tahead は数個の命令にすぎないからである。こ
の正しくないデータ先取の機会はさほど高くない。この
コンパィラは、CWD 先取スキムのアドレス計算に用いた
レジスタを更新させる命令を移動させて一層早く発生さ
せることにより、この状態を回避し続けることもでき
る。さらに、データ参照ポインタは通常一定時間で更新
される。従って、アドレス計算にレジスタの古い値を用
いてCWD スキムのデータ先取を行なう場合、生ずる参照
アドレスはすでにデータキャッシュに先取りされている
データを指示しなければならない。この場合、先取は何
んら送出されずデータキャッシュ混乱も全く生じない。
【図1】図1は従来のレジスタプレローデング技術によ
る課題を説明するための線図である。
る課題を説明するための線図である。
【図2】図2は本発明の正確な実施例を示すブロック図
である。
である。
【図3】図3は一層簡単化した本発明の実施例を示すブ
ロック図である。
ロック図である。
10 処理ユニット 20 レジスタファイル 30 制御ユニット 40 先取キュー 50 命令キャッシュ 60 主記憶装置
フロントページの続き (73)特許権者 590000248 Groenewoudseweg 1, 5621 BA Eindhoven, T he Netherlands (56)参考文献 特開 昭62−88043(JP,A) 特開 昭61−210431(JP,A) 特開 昭62−235658(JP,A) 特開 平2−239331(JP,A) 特表 昭63−500688(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 G06F 12/08
Claims (5)
- 【請求項1】 処理ユニットと、 主記憶装置と、 前記主記憶装置から処理ユニットに対する命令を先取し
及び保持するように構成した命令キャッシュ手段と、 先取りされた命令を復調して先取りされた命令について
データ参照を行うか否かを決定すると共に、データの先
取を発生させ、このデータを保持するように構成したデ
ータキャッシュ制御手段と、 前記主記憶装置に対する表示としてキャッシュされたデ
ータを保持するデータキャッシュ手段とを具える計算機
において、 前記データキャッシュ手段を、前記先取りされた命令
が、前記処理ユニットに含まれている1個又はそれ以上
のレジスタに保持されている情報を用いる間接アドスモ
ードでデータの参照を行うか否かを決定すると共に、こ
の際前記レジスタに保持されている情報からデータの参
照を決定するように構成し、 第1のカウンタ手段が前記各レジスタとそれぞれ関連
し、現在の処理ユニット命令と処理ユニットによる各レ
ジスタの将来の内容変更との間の処理サイクルの各計数
を維持し、 前記データキャッシュ制御手段が、前記データの参照が
間接アドレスモードの場合、先取キューの要求を送出
し、 第2のカウンタ手段が前記先取キューの先取要求と関連
してデータの先取を正確に実行する前に通過すべき処理
サイクルの数を表示し、 前記データキャッシュ手段が、前記処理サイクルの数
を、前記データの参照を決定するために用いた1個又は
それ以上のレジスタと関連する各計数値の最大値に初期
設定することを特徴とする計算機。 - 【請求項2】 請求項1に記載の計算機において、前記
データキャッシュ手段が、命令についての決定を、前記
処理ユニットのプログラムカウンタに続く順次アドレス
で実行するように構成されていることを特徴とする計算
機。 - 【請求項3】 前記主記憶装置から処理ユニットに対す
る命令を先取りし保持するように構成したた命令キャッ
シュ手段を具え、この命令キャッシュ手段が、実行すべ
き命令を予期した場合、データの参照を行うか否かを決
定する命令をデータキャッシュ制御手段に送出すること
を特徴とする請求項1又は2に記載の計算機。 - 【請求項4】 処理ユニット及び主記憶装置を有するデ
ィジタル計算機を動作させる方法であって、 処理命令を先取し、 次の数個のサイクルで実行されることが予期される先取
りされた命令を復調し、この命令についてデータの参照
が行われるか否かを決定し、 データ先取要求の発生して、データの参照が行われる場
合参照されるデータを先取する計算機の動作方法におい
て、 前記処理ユニットのレジスタのカウンタフィールドを維
持し、間接アドレス計算を行うために各レジスタが使用
される前に通過すべき処理サイクルの数を保持する工程
と、 命令キャッシュの先取りされた命令が、間接データ参照
されるものか否かを前記処理ユニットのレジスタに基づ
いて決定する工程と、 発生したデータ先取要求のキューを維持する工程と、 前記キューの各データ先取要求を、その先取要求が実行
される前に通過すべき処理サイクルの数を表示するカウ
ンタと関連させ、前記処理サイクル数をデータを要求す
る先取りされた命令により間接アドレス計算のために用
いられるレジスタのために維持されるカウンタフィール
ドの最大値に初期設定する工程と、 前記サイクル数が先取要求を実行できることを表示する
場合、前記キューの要求に基づいて前記主記憶装置から
データを先取りする工程とを具えることを特徴とする計
算機の動作方法。 - 【請求項5】 請求項4に記載の方法において、前記命
令が命令キャッシュに先取りされ復調されて、データの
参照が命令キャッシュへの先取に応じて行われるか否か
を決定することを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60521290A | 1990-10-24 | 1990-10-24 | |
US07/605212 | 1990-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04299737A JPH04299737A (ja) | 1992-10-22 |
JP3095831B2 true JP3095831B2 (ja) | 2000-10-10 |
Family
ID=24422692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03277896A Expired - Fee Related JP3095831B2 (ja) | 1990-10-24 | 1991-10-24 | 計算機の作動方法及び計算機 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0482706B1 (ja) |
JP (1) | JP3095831B2 (ja) |
KR (1) | KR100262234B1 (ja) |
DE (1) | DE69130726T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013138826A (ja) * | 2011-12-28 | 2013-07-18 | Taeyang Ets Co Ltd | 乾燥機用遠赤外線ヒーター |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4371927A (en) * | 1977-11-22 | 1983-02-01 | Honeywell Information Systems Inc. | Data processing system programmable pre-read capability |
DE3650578T2 (de) * | 1985-06-17 | 1997-03-06 | Nippon Electric Co | Informationsverarbeitungssystem mit einer Steuerschaltung zum Abwarten einer Registererneuerung und einem Aufnahmemittel des zu erneuernden Registers |
GB8817912D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
-
1991
- 1991-10-17 DE DE69130726T patent/DE69130726T2/de not_active Expired - Fee Related
- 1991-10-17 EP EP91202698A patent/EP0482706B1/en not_active Expired - Lifetime
- 1991-10-21 KR KR1019910018507A patent/KR100262234B1/ko not_active IP Right Cessation
- 1991-10-24 JP JP03277896A patent/JP3095831B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013138826A (ja) * | 2011-12-28 | 2013-07-18 | Taeyang Ets Co Ltd | 乾燥機用遠赤外線ヒーター |
Also Published As
Publication number | Publication date |
---|---|
KR100262234B1 (ko) | 2000-07-15 |
KR920008588A (ko) | 1992-05-28 |
EP0482706B1 (en) | 1999-01-07 |
EP0482706A2 (en) | 1992-04-29 |
DE69130726T2 (de) | 1999-07-22 |
EP0482706A3 (en) | 1993-02-10 |
DE69130726D1 (de) | 1999-02-18 |
JPH04299737A (ja) | 1992-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0747816B1 (en) | Method and system for high performance multithread operation in a data processing system | |
EP0604139B1 (en) | Computer system including a prefetch cache | |
US5944815A (en) | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access | |
CA1322058C (en) | Multi-processor computer systems having shared memory and private cache memories | |
US5375216A (en) | Apparatus and method for optimizing performance of a cache memory in a data processing system | |
KR100204741B1 (ko) | 제1및 제2캐시 메모리 사용방법 | |
US6496902B1 (en) | Vector and scalar data cache for a vector multiprocessor | |
US5802569A (en) | Computer system having cache prefetching amount based on CPU request types | |
US6085291A (en) | System and method for selectively controlling fetching and prefetching of data to a processor | |
JP3425158B2 (ja) | マルチバッファデータキャッシュを具えているコンピュータシステム | |
US6665749B1 (en) | Bus protocol for efficiently transferring vector data | |
US5784711A (en) | Data cache prefetching under control of instruction cache | |
US7246204B2 (en) | Pre-fetch control device, data processing apparatus and pre-fetch control method | |
US6813701B1 (en) | Method and apparatus for transferring vector data between memory and a register file | |
US7610469B2 (en) | Vector transfer system for packing dis-contiguous vector elements together into a single bus transfer | |
EP0097790A2 (en) | Apparatus for controlling storage access in a multilevel storage system | |
US20090106499A1 (en) | Processor with prefetch function | |
KR20040045035A (ko) | 힌트 버퍼를 이용한 메모리 액세스 대기시간 숨김 | |
JPH0962572A (ja) | ストリーム・フィルタ装置及び方法 | |
US5214766A (en) | Data prefetching based on store information in multi-processor caches | |
EP1576466A2 (en) | Generating prefetches by speculatively executing code through hardware scout threading | |
US6553486B1 (en) | Context switching for vector transfer unit | |
US20040059854A1 (en) | Dynamic priority external transaction system | |
EP0888587A1 (en) | A data cache configured to store stack data in a stack data storage | |
US20060149940A1 (en) | Implementation to save and restore processor registers on a context switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |