JPH04218835A - 延滞キャッシュ・ロードを有するデータプロセッサ - Google Patents
延滞キャッシュ・ロードを有するデータプロセッサInfo
- Publication number
- JPH04218835A JPH04218835A JP3073570A JP7357091A JPH04218835A JP H04218835 A JPH04218835 A JP H04218835A JP 3073570 A JP3073570 A JP 3073570A JP 7357091 A JP7357091 A JP 7357091A JP H04218835 A JPH04218835 A JP H04218835A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- address
- controller
- prefetch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000003111 delayed effect Effects 0.000 title description 3
- 238000012546 transfer Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 29
- 238000013479 data entry Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 22
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 230000011664 signaling Effects 0.000 claims 2
- 239000000872 buffer Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- KDPSGIFCBZTBEZ-UHFFFAOYSA-N 1-[2-(1h-benzimidazol-2-ylsulfanyl)ethyl]-3-methylbenzimidazole-2-thione Chemical compound C1=CC=C2NC(SCCN3C4=CC=CC=C4N(C3=S)C)=NC2=C1 KDPSGIFCBZTBEZ-UHFFFAOYSA-N 0.000 description 3
- 101100058337 Arabidopsis thaliana BIC1 gene Proteins 0.000 description 3
- 101100204264 Arabidopsis thaliana STR4 gene Proteins 0.000 description 1
- 101150076149 TROL gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
め要約のデータは記録されません。
Description
ッサに関する。さらに詳しくはキャッシュを有するデー
タプロセッサに関する。
ロセッサでは、各命令は、次の命令が始まる前に最後ま
で実行される。全体の性能を高めながら、機械操作の効
率を向上させるためには、従来のデータプロセッサ設計
にパイプラインを有するデータ処理装置が実現された。 これらのパイプラインをもつデータプロセッサは、継続
する命令のサブ操作を重ね合わせることにより、いくつ
かの命令を平行に実行することができる。パイプライン
をもつデータプロセッサが1つの新しい命令を取り出し
、クロック・サイクル毎に他の命令の実行を完了させる
ことが最適である。このため、複雑な命令に必要な実際
の実行時間は変化するが、全体的な実行速度はクロック
・サイクル毎の1個の命令に近づくことになる。その結
果、パイプラインを有するプロセッサを用いることによ
り、データプロセッサの全体的な性能が著しく向上する
。
行を行うためには、命令先取り(プリフェッチ)ユニッ
ト(IPU:Instruction Prefet
ch Unit)は、クロック・サイクル毎に必要な
数の命令を命令パイプラインにロードすることのできる
命令の流れを保たなければならない。もしIPUが、必
要な命令の流れを維持することができなければ、そして
命令パイプラインに必要な数の命令語がロードされなけ
れば、パイプラインの機能停止が起こる。一般的に、今
日の高性能なパイプラインを有するデータプロセッサで
は、命令キャッシュを用いてIPUが命令データ(オペ
ランド)に迅速にアクセスできるようになっている。典
型的なものとしては、命令キャッシュがキャッシュ・コ
ントローラによって維持されて、キャッシュ・コントロ
ーラがIPUと連動して命令を検索(先取り)し、命令
バッファ(キュー)をロードされた状態に保つ。従って
、プロセッサが命令先取りをリクエストすると、キャッ
シュ・コントローラは先取りリクエストを受信して、そ
の命令が命令キャッシュ内にあるか否かを判定する。 リクエストされた命令がキャッシュ内にある場合は、先
取りの「ヒット」が起こり、キャッシュ・コントローラ
は命令キャッシュから直接命令バッファをロードする。 もしリクエストされた命令がキャッシュ内にない場合は
、先取りの「ミス」が起こり、キャッシュ・コントロー
ラは、バス転送をリクエストして外部メモリから必要な
キャッシュ・ラインを検索する。
ト・モード転送を用いて、1回のメモリ・アクセスでキ
ャッシュ・ライン(たとえば16バイト)を転送する。 バースト・モードでは、開始アドレスの16バイトのみ
がメモリに転送されるのが普通で、そのため必要なメモ
リ・アクセスは1回で済む。通常は、データが有効にな
った直後に、キャッシュ・コントローラが命令キャッシ
ュに必要なキャッシュ・ラインをロードする。そのため
、プロセッサからの次の先取りは1回のキャッシュ・ロ
ード・サイクルの間中断される。命令キャッシュ・ロー
ドに必要とされるプロセッサの中断の結果として、パフ
ォーマンス・ペナルティ(Performance
Penalty)が起こる。データ・バスからのキャッ
シュ書き込みに帰するパフォーマンス・ペナルティを改
善するための努力は、一時的にデータを記憶してキャッ
シュ・ロードを保留するためのバッファを用いることに
集中していた。これらのバッファ(普通は「プッシュ」
バッファと呼ばれる)は、内部バスを介して整数ユニッ
トにリクエストされたデータを送るのが普通である。通
常、以前のシステムは、同一のキャッシュ・ラインに対
する次の先取りリクエスト中にプッシュ・バッファ内に
記憶されているキャッシュ・ラインに直接アクセスする
ための機構を設けていなかった。このため、プッシュ・
バッファを用いることによって1回のキャッシュ・ロー
ド・サイクル中にプロセッサが停止する問題を軽減する
ことはできても、これらのプッシュ・バッファは命令キ
ャッシュと平行にアクセスすることはできない。その結
果、プッシュ・バッファ内に記憶されているキャッシュ
・ラインにあるデータに対して、プロセッサからの先取
りリクエストがあると、他のバス転送によって外部メモ
リから必要なデータを検索することになる。このように
バス転送が重複することにより、新たなパフォーマンス
・ペナルティの問題が起きてくる。
ードと命令先取りとに関連するパフォーマンス・ペナル
ティををなくすることのできる改良されたデータプロセ
ッサを提供することである。
ードを有する改良されたデータプロセッサを提供するこ
とである。
インの中断を起こさずに、命令キャッシュ・ロードを延
滞させることのできるデータプロセッサを提供すること
である。
目的は、パイプラインをもつデータプロセッサを有する
改良されたデータ処理システムによって実現される。こ
のデータプロセッサには、複数のデータ・エントリを二
次的なメモリから先取りする命令先取りユニットが備え
られ、各エントリは、メモリ・アドレスによって識別さ
れ、さらにこのユニットは複数のデータ・エントリをパ
イプラインをもつデータプロセッサ内の命令パイプライ
ン内に供給する。データ処理システムは:外部メモリに
結合され、バス転送リクエスト信号に応答して、外部メ
モリからのメモリ・アドレスによって識別される複数の
データ・エントリを含むリクエストされたキャッシュ・
ラインを検索し、内部データ・バスに複数のデータ・エ
ントリを含むキャッシュ・ラインを転送するバス・コン
トローラから構成される。二次キャッシュは、バス・コ
ントローラと命令パイプラインとに結合され、バス・コ
ントローラからリクエストされたキャッシュ・ラインを
受け取り、第1制御信号に応答してリクエストされたキ
ャッシュ・ライン内の所定数の複数のデータ・エントリ
を命令パイプライン内にロードし、さらに第2制御信号
に応答して、一次キャッシュ・メモリにリクエストされ
たキャッシュ・ラインをロードする。メモリ・コントロ
ーラは、パイプラインをもつデータプロセッサ,バス・
コントローラ,一次キャッシュおよび二次キャッシュに
結合され、キャッシュ・メモリおよび二次キャッシュ内
の先取りアドレス・ミスが起こるとバス転送リクエスト
信号が発生して、第1制御信号を発して二次キャッシュ
にリクエストされたキャッシュ・ラインをロードする。 メモリ・コントローラは第2制御信号を発生して、一次
キャッシュに二次キャッシュからのリクエストされたキ
ャッシュ・ラインがロードされるのを延滞させる。これ
は、二次キャッシュ内にあるリクエストされたキャッシ
ュ・ライン以外のキャッシュ・ラインに対する先取りア
ドレス・ミスが一次キャッシュメモリ内で次に起こるま
で続き、さらに第3制御信号を発生する。メモリ・コン
トローラに結合されたアドレス・ロジックは、二次キャ
ッシュ内に格納されているリクエストされたキャッシュ
・ラインに対応するメモリ・アドレスを格納して、メモ
リ・コントローラからの第3制御信号に応答して、その
メモリ・アドレスを、命令先取りユニットからの次の先
取りリクエストに対応する次のメモリ・アドレスと比較
する。アドレス・ロジックはメモリ・コントローラへの
マッチ信号を設け、それによって次の先取りリクエスト
が二次キャッシュ内に格納されているキャッシュ・ライ
ンに対するものであるか否かを示す。
を用いて、「高論理で活性(Active High
)」と「低論理で活性(Active Low)」の
信号が混合したものを扱う場合の混乱を回避する。「ア
サート」は、信号が活性状態であるかまたは論理的に真
であることを示すために用いる。「ネゲート」は、信号
が不活性状態であるかまたは論理的に偽であることを示
すために用いる。
よるデータ処理システム10の構造を示すブロック図で
ある。データ処理システム10は、整数ユニット12,
命令メモリユニット14,バス・インターフェース・コ
ントローラ(BIC:BusInterface C
ontroller)16,システム・バス18および
メモリ20とから構成されている。本発明の好適な実施
例においては、命令メモリ・ユニット14は、命令キャ
ッシュ・コントローラ22,命令キャッシュ・アドレス
・メモリ管理ユニット(CAMMU:Insuruct
ionCache Address Memory
Management Unit)24,命令キ
ャッシュ26,第1ラッチ(LATCHA)28,第2
ラッチ(LATCHB)30,コンパレータ(COMP
:Comparator)32,二次キャッシュ34,
命令キャッシュ保持レジスタ36,マルチプレクサ40
およびラッチ42とから構成されている。命令キャッシ
ュ26は、4方向設定連想キャッシュで、4個の16バ
イトからなる64組のキャッシュ・ラインを持ち、各キ
ャッシュ・ラインは4個の長語(LW0−LW3:Lo
ng Word0−3)からなり、各長語(LW)は
、2個の連続ビットからなっている。従って、命令キャ
ッシュ26は、合計4KBの記憶容量を有している。
2はパイプラインをもつ実行ユニットで、命令先取り、
有効アドレス計算および有効アドレス先取りサブ操作を
パイプラインでつなぐことのできる命令パイプライン(
PIPE)を備えている。整数ユニット12には、命令
メモリ・ユニット14と連動する命令先取りユニットが
含まれ、キャッシュ・ライン保持レジスタ36をロード
状態に保っている。これは同時出願され、本出願の譲渡
人に譲渡されているRussellReininger
他による「1,2または3語の命令を順次先取りする方
法」という標題の米国特許第SC−00770Aに開示
されているのと同様である。命令先取りサイクル中に、
整数ユニット12は命令メモリ・ユニット14から64
ビット(キャッシュ半直線)の先取りをリクエストして
、それによってPIPEまでの命令の安定した流れを確
保する。従って、動作中は整数ユニット12は命令メモ
リ・ユニット14に対してPREFETCH REQ
UEST(先取りリクエスト)信号を発する。命令メモ
リ・ユニット14が先取りリクエストを受け取ると、整
数ユニット12はリクエストされた命令に対する論理ア
ドレスをCAMMU24に転送する。CAMMU24は
、その論理アドレスを対応する物理アドレスに変換して
、物理アドレス・バス(PA:Physical A
ddressBUS)上に置く。好適な実施例において
は、命令キャッシュ26はCAMMU24によって変換
されない所定数のアドレス・ビットを用いてアクセスさ
れる。このためCAMMU24は、命令キャッシュ26
アクセスと同時にアドレス変換を行う。先取りの「ヒッ
ト」が起こると、先取りリクエストに対応する命令キャ
ッシュ26半直線は、レジスタ30に転送される。同じ
サイクル中に、整数ユニット12からのFETCH
REQUEST信号に応答して、所定数の命令語がMU
X40を介してPIPEに転送される。
の先取りが命令キャッシュ26と二次キャッシュ34内
とでミスすると、命令キャッシュ・コントローラ22は
先取りの「ミス」を検出して、BURST REQU
EST(バースト・リクエスト)信号をBIC16に対
して発して、それによりバースト転送をリクエストし、
メモリ20からキャッシュ・ライン(128ビット)を
検索する。命令キャッシュ・コントローラ22はまた、
BIC16に対して物理アドレスを転送する。BIC1
6がBURST REQUEST信号を認定すると、
命令キャッシュ・コントローラ22はLOAD信号をア
サートし、それによってLATCHA28はPA B
US上の物理アドレスをラッチすることができる。LA
TCHB30は、次の機械サイクル、たとえば図2およ
び図3に示されるように、8番目の機械サイクルの最後
でLATCHA28の内容をラッチすることができる。 BIC16はメモリ20から、システム・バス18を介
して、リクエストされたキャッシュ・ライン(先取りリ
クエストに対するデータを含む)を検索する。1組のS
TATUS(ステータス)信号により、命令キャッシュ
・コントローラ22に、命令キャッシュ・コントローラ
22によりリクエストされたバス転送のステータスを知
らせる。BIC16がデータ・バス上にリクエストされ
たキャッシュ・ラインを転送すると、128ビットの二
次キャッシュ34にデータがロードされる。同時に命令
キャッシュ・コントローラ22はWRITE CON
TROL(書き込み制御)信号をアサートして、それに
より二次キャッシュ34は、長語がデータ・バス上で有
効になるのと同じサイクル中に、先取りリクエストされ
たキャッシュ半直線(たとえばLW0,LW1)をキャ
ッシュ・ライン保持レジスタ36内に書き込む。
に対する第2長語(LW1)がデータ・バスから受信さ
れると、命令キャッシュ・コントローラ22は次のサイ
クルで、整数ユニット12から次の先取りリクエストを
受け取る。この先取りと平行して、命令キャッシュ・コ
ントローラ22は二次キャッシュ28が、前回のバース
ト・リクエストに対応するデータを、データ・バスから
引続きロードすることを可能にする。二次キャッシュ3
4がレジスタ36内にキャッシュ半直線の書き込みを完
了した後、命令メモリ・コントローラ44は整数ユニッ
ト12から次の先取りを受け取り、二次キャッシュ34
に、データバスから残りの2個の長語をロードする。キ
ャッシュ・ラインは、二次キャッシュ34内に格納され
たもの以外のキャッシュ・ラインに対する先取り「ミス
」が、命令キャッシュ26内で起こるまでは、二次キャ
ッシュ34に格納されたままになっている。このため、
命令キャッシュ26内で先取りリクエストがミスし、リ
クエストに対応する命令データが二次キャッシュ34内
にあるときは、整数ユニット12は二次キャッシュ34
から命令データを得る。本来、命令キャッシュ・コント
ローラ22はLATCHA28,LATCHB30およ
びCOMP32を用いて、二次キャッシュ28の内容を
確認する。
論理アドレスと共に先取りリクエストを命令メモリユニ
ット14に発する。先取りリクエストが命令メモリ・ユ
ニット14に受け取られると、CAMMU42は論理ア
ドレスを対応する物理アドレスに変換して、PA B
US上に置く。物理アドレスは、命令キャッシュ26を
経由して、命令キャッシュ26内のインデックス・エン
トリと比較され、同時にCOMP32を経由する。CO
MP32は、今回の先取りの物理アドレスをLATCH
B30内の物理アドレスと比較する。これは、二次キャ
ッシュ34内に現在あるラインに対応するものである。 このように、COMP32は、先取りリクエストに対し
て、二次キャッシュ34内でヒットが起こっているのか
、またはミスが起こっているのかを判定する。命令キャ
ッシュ26内で先取りリクエストがヒットすると、命令
キャッシュ26は、レジスタ36内に転送される命令デ
ータのソースとなる。二次キャッシュ34内で先取りリ
クエストがヒットすると、リクエストされた半直線のソ
ースは、二次キャッシュ34となるので、二次キャッシ
ュ34が命令データをレジスタ36に転送する。そのた
め、二次キャッシュ34内のデータは、命令キャッシュ
26内に実在するかのように、整数ユニット12に対し
てアクセス可能となる。
、二次キャッシュ34の両方でミスすると、命令キャッ
シュ・コントローラ22は、上記のようにBIC16に
対してBURST REQUEST信号を発する。B
IC16がバス転送を実行中に、命令キャッシュ・コン
トローラ22は命令キャッシュ26に、現在二次キャッ
シュ34に格納されているキャッシュ・ラインをロード
する。このため、先取り「ミス」の後でも、命令キャッ
シュ26のローディングは、整数ユニット12からの先
取りを中断することはない。
ニット12は半直線毎に、命令メモリユニット14から
の先取りをリクエストする。その結果、命令メモリユニ
ット14は、先取りサイクル毎に、キャッシュ・ライン
保持レジスタ36に、64ビット(キャッシュ半直線)
をロードする。BIC16は、データのキャッシュ・ラ
イン全体のバースト転送を実行することができるので、
先取り「ミス」により命令キャッシュ・コントローラ2
2はキャッシュ・ライン全体に対してBURST R
EQUEST信号をアサートする(このキャッシュ・ラ
インには、先取りリクエスト半直線が含まれる)。二次
キャッシュ34は、128ビット(キャッシュ・ライン
全体)の記憶容量を有しており、そのため、バースト転
送からの4個の長語(LW0−LW3)の全てが二次キ
ャッシュ34に格納される。従って命令キャッシュ・コ
ントローラ22は二次キャッシュ34に、データ・バス
から2個の長語(たとえばLW0,LW1)をロードす
る。BIC16は、二次キャッシュ34にロードされた
各長語に対して、有効ビットをラッチ42に転送する。 第2有効ビット(LW1に対応する)を受け取った後、
ラッチ42はラッチ制御信号を介して、命令キャッシュ
・コントローラ22に、BIC16が二次キャッシュ3
4に2個の有効な長語をロードしたことを知らせる。ラ
ッチ制御信号に応答して、命令キャッシュ・コントロー
ラ22は整数ユニット12からの次の先取りリクエスト
を受け取る。このように本発明においては、BIC16
がバースト転送を完了する前に、命令キャッシュ・コン
トローラ22は現在の先取りリクエストを満足させ、整
数ユニット12からの次の先取りリクエストを受け取る
ことができる。次の先取りリクエスト中に、BIC16
は二次キャッシュ34に前回のバースト・リクエストか
らの入来データ(LW2,LW3)を引続きロードする
。
令キャッシュ26のオーバーラップした、延滞ロードの
タイミングを表す。ゼロ番目の機械サイクル(前T1)
中に、整数ユニット12はPREFETCH REQ
UEST信号を発して、16進アドレス$00に格納さ
れた命令データを検索する。命令キャッシュ・コントロ
ーラ22は、先取りミスが起こったために、BIC16
に対してBURST REQUEST信号を発する。 その結果BIC16は二次キャッシュ34にアドレス$
00に格納されている命令のキャッシュ・ラインをロー
ドする。
IC16に対してBURST REQUEST信号を
発し、BIC16にアドレス$00を転送することによ
り、命令キャッシュ・コントローラ22はアドレス$0
0の先取りを開始する。第1機械サイクル中にBIC1
6はアドレス$00に対してバス転送を開始する。一方
、整数ユニット12は次の順次アドレス$08に対して
命令キャッシュ・コントローラ22にPREFETCH
REQUEST信号を発する。第2機械サイクルで
は、BIC16は、リクエストされたキャッシュ・ライ
ン(LW0−LW3)に対応するデータのデータ・バス
上への転送を開始する。第3および第4機械サイクルT
3&T4中は、BIC16は二次キャッシュ34に、最
初の2個の長語(たとえばLW0,LW1)をロードす
るが、これらは前述したように、キャッシュ・ライン保
持レジスタ36にロードされる。二次キャッシュ34が
レジスタ36にキャッシュ半直線の書き込みを終了した
後、命令キャッシュ・コントローラ22は次の先取り(
アドレス$08)を整数ユニット12から受取る。また
第5および第6機械サイクルT5&T6中に二次キャッ
シュ34に残りの2個の長語(たとえばLW2,LW3
)をロードする。同じキャッシュ・ラインが先取りされ
ているので、二次キャッシュ34はリクエストされたデ
ータ(たとえばLW2,LW3)を供給する。その結果
、命令キャッシュ・コントローラ22はバス転送をリク
エストせず、アドレス$08に格納されているデータを
メモリ20から検索する。
5中に、次の順次アドレス$10に対するPREFET
CH REQUEST信号を発する。第6機械サイク
ルT6中には、アドレス$08に対する先取りリクエス
トの最後の長語がレジスタ36にロードされ、先取りリ
クエストは満足される。同様に第7機械サイクルT7中
に、アドレス$120に対する次の先取りリクエストが
受け取られる。整数ユニット12からの先取りリクエス
トは、二次キャッシュ34内に格納されているもの以外
のキャッシュ・ラインに対するものであるので、先取り
「ミス」が起こり、他のバス転送がリクエストされたキ
ャッシュ・ラインを検索することが必要になる。従って
、命令キャッシュ・コントローラ22はBIC16に対
してBURST REQUEST信号を発し、第7機
械サイクルT7中にリクエストされたキャッシュ・ライ
ンの先取りを開始する。BIC16は第7機械サイクル
T7の後半でバス転送を開始するが、一方整数ユニット
12は次の順次アドレス$18に対してPREFETC
H REQUEST信号を発する。
れたキャッシュ・ラインを検索する間、命令キャッシュ
・コントローラ22は命令キャッシュ26に、二次キャ
ッシュ34に格納されているアドレス$00におけるデ
ータ(LW0−LW3)をロードする。このため、先取
り「ミス」が起こると、命令キャッシュ26のロードは
、第8機械サイクルT8が開始されるまで延滞する。 第6機械サイクルT6中に整数ユニット12は、アドレ
ス$10に対して先取りリクエストを発しているので、
キャッシュのロード画題8機械サイクルまで延滞しても
、整数ユニット12は中断しない。BIC16は、第8
機械サイクルT8の後半で、リクエストされた命令デー
タのデータ・バス上への転送を開始する。
ニット12は全キャッシュ・ライン毎に命令キャッシュ
26にアクセスするために、命令メモリユニット14は
、先取りサイクル毎にキャッシュ・ライン保持レジスタ
36に4個の長語(128ビット)をロードする。従っ
て、命令先取りサイクルは重なることはない。図3は、
本発明の代替の実施例による、命令キャッシュ26の重
ならない延滞ロードに対するタイミングを示す。図3に
示されるように、二次キャッシュ34を用いると、命令
キャッシュ26のローディングによって整数ユニット1
2からの次の先取りが中断することはない。従って、整
数ユニット12からの先取りリクエストに応答して、命
令キャッシュ・コントローラ22は第1機械サイクルの
前半でアドレス$00のキャッシュ先取りを開始する。 本発明においては、命令キャッシュ・コントローラ22
は第1機械サイクルでアドレス$00に対する先取りサ
イクルを開始し、同時にLATCHA28内にアドレス
$00をロードする。リクエストされたアドレス($0
0)が命令キャッシュ26または二次キャッシュ34内
にないことを判定するとすぐに、命令キャッシュ・コン
トローラ22はBIC16に対してデータ・バス変換の
リクエストを発する。第1機械サイクルT1の後半で、
BIC16はバス転送を開始して、メモリ20からリク
エストされたキャッシュ・ラインの間作を行う。 また整数ユニット12は次のアドレス$10に対する先
取りリクエストを発する。命令キャッシュ・コントロー
ラ22は、第1機械サイクルT1の後半で、LATCH
128からLATCHB30にアドレス$00を転送す
る。一方、BIC16はリクエストされたデータ(LW
0−LW3)のデータ・バス上への転送を開始する。命
令データ(LW0−LW3)がデータ・バス上で有効に
なると、BIC16は第3機械サイクルT3の前半で、
二次キャッシュ34のロードを開始する。データにVA
LIDとマーキングした後、BIC16はSTATUS
信号を命令キャッシュ・コントローラ22に転送し、そ
れによって第6機械サイクルT6の後半で、バス転送が
終了したことを示す。
ローディングは、二次キャッシュ34内に格納されてい
るもの以外のキャッシュ・ラインに対しては、次の先取
り「ミス」が起こるまで延滞される。従って、BIC1
6からSTATUS信号を受け取ると、命令キャッシュ
・コントローラ22はアドレス$10の先取りを開始し
て、同時に第7機械サイクルT7のはじめに、アドレス
($10)をLATCHA28にラッチする。$10は
命令キャッシュ26または二次キャッシュ34内にはな
いので、次の先取り「ミス」が起こる。その結果命令キ
ャッシュ・コントローラ22はBIC16に対して、バ
ス転送のリクエスト信号を発して、メモリ20からリク
エストされたキャッシュ・ライン(アドレス$10のは
じめ)を検索する。従って、BIC16は第7機械サイ
クルT7の後半でアドレス$10に格納されている命令
データのバス転送を開始する。一方、整数ユニット12
は次のアドレス$20に対する先取りリクエストを発す
る。BIC16がバス転送を実行中に、命令キャッシュ
・コントローラ22は第8機械サイクルT8中に、二次
キャッシュ34から命令キャッシュ26のロードを行う
。本発明においては、命令キャッシュ・コントローラ2
2は前回の先取り($00)の終了直後に次のアドレス
($10)に対する先取りリクエストを受け取るので、
キャッシュ・ロード・サイクルによって整数ユニット1
2が中断することはない。BIC16は第8機械サイク
ルT8の後半で、リクエストされたデータ(アドレス$
10からの)のデータ・バス上への転送を開始する。一
方、命令キャッシュ・コントローラ22はLATCHA
28からLATCHB30へアドレス$10を転送する
。
・スヌープ・リクエスト(BusSnoop Req
uest)は二次キャッシュ34内にあるキャッシュ・
ラインを無効にする。この点は、William B
. Ledbetter他による、本出願の譲渡人に
譲渡された、同時出願「A Data Bus
Snoop Controller for C
oncurrent ReadandInvalid
ate Memory Operation」、番
号07/351,898に示されている。さらに、整数
ユニット12により発生したキャッシュ無効リクエスト
信号は、二次キャッシュ34内にあるキャッシュ・ライ
ンをも無効にする。このため、二次キャッシュ34はキ
ャッシュ構造の機能特性の全てを備える。
いるが、開示された発明がさまざまな方法に改良され、
上記に特定され説明されたもの以外の多くの実施例が想
定されることは、当業者には明白であろう。たとえば、
本発明は、命令メモリユニット14と同様の機能的な対
応部分を有するデータ・メモリ・ユニット(図示されず
)を組み込んだシステムに用いることもできる。これに
より、二次キャッシュ34はデータのキャッシュ・ライ
ンを格納し、データ・キャッシュ・コントローラと連動
して、延滞データ・キャッシュ・ロードを実行すること
ができる。さらに、代替の実施例に示されたように、整
数ユニット12を改良して、各先取りサイクル毎に命令
データのキャッシュ・ライン全体にアクセスさせたり、
二次キャッシュ34を改良してその記憶容量を拡大また
は縮小させることもできる。従って、添付された請求項
は、本発明の信念と範囲内に当てはまる全ての修正を含
むものとする。
である。
イミング図である。
図である。
システム・バス 20 メモリ 22 命令キャッシュ・コントローラ24 命令キ
ャッシュ・アドレス・メモリ管理ユニット26 命令
キャッシュ 28,30,42 ラッチ 32 コンパレータ 34 二次キャッシュ 36 命令キャッシュ保持レジスタ 40 マルチプレクサ
Claims (14)
- 【請求項1】メモリから複数のデータ・エントリを先取
りする命令先取りユニットを備えたパイプラインをもつ
データプロセッサを有するデータ処理システムであって
、各エントリはメモリ・アドレスによって識別され、か
つ前記命令先取りユニットは、前記複数のデータ・エン
トリを前記パイプラインをもつデータプロセッサ内の命
令パイプラインに供給するところのデータ処理システム
であって:外部メモリに結合され、前記複数のデータ・
エントリを含むリクエストされたキャッシュ・ラインを
検索するバス・コントローラであって、前記データ・エ
ントリはバス転送リクエスト信号に応答して前記外部メ
モリからのメモリ・アドレスによって識別され、さらに
前記複数のデータ・エントリを含む前記キャッシュ・ラ
インを内部データ・バス上に転送するところのバス・コ
ントローラ;一次キャッシュ;前記バス・コントローラ
,前記命令パイプラインおよび前記一次キャッシュに結
合された二次キャッシュであって、前記バス・コントロ
ーラからの前記リクエストされたキャッシュ・ラインを
検索し、第1制御信号に応答して、前記リクエストされ
たキャッシュ・ライン内の所定数の前記複数のデータ・
エントリを前記命令パイプライン内にロードし、さらに
、第2制御信号に応答して、前記一次キャッシュ・メモ
リに前記リクエストされたキャッシュ・ラインをロード
するところの二次キャッシュ;前記パイプラインをもつ
データプロセッサ,前記バス・コントローラ,前記一次
キャッシュおよび前記二次キャッシュに結合されたメモ
リ・コントローラであって、前記一次キャッシュおよび
前記二次キャッシュの両方で先取りアドレス・ミスが起
こった場合に前記バス転送リクエスト信号を発し、前記
第1制御信号を発生して前記二次キャッシュに前記リク
エストされたキャッシュ・ラインをロードさせ、前記第
2制御信号を発生して、前記二次キャッシュ内にある前
記リクエストされたキャッシュ・ライン以外のキャッシ
ュ・ラインに対する、先取りアドレス・ミスが前記一次
キャッシュ・メモリ内で次に起こるまで、前記二次キャ
ッシュからの前記リクエストされたキャッシュ・ライン
の前記一次キャッシュ・メモリへのローディングを延滞
させ、および第3制御信号を発生するところのメモリ・
コントローラ;および前記メモリ・コントローラに結合
されたアドレス手段であって、前記二次キャッシュ内に
格納されている前記リクエストされたキャッシュ・ライ
ンに対応する前記メモリ・アドレスを格納し、前記第3
制御信号に応答して、前記メモリ・アドレスを前記命令
先取りユニットからの次の先取りリクエストに対応する
次のメモリ・アドレスと比較しおよび前記メモリ・コン
トローラにマッチ信号を発生してこれにより、前記次の
先取りリクエストが、前記二次キャッシュ内に格納され
ている前記キャッシュ・ラインに対するものであるか否
かを示すところのアドレス手段;とから構成されること
を特徴とするデータ処理システム。 - 【請求項2】前記バス・コントローラ手段と前記二次キ
ャッシュとに結合され、前記二次キャッシュ内にロード
された前記複数のデータ・エントリのそれぞれに対応す
る有効ビットを、前記内部データバスから受け取るラッ
チ手段からさらに構成されることを特徴とする、請求項
1記載のデータ処理システム。 - 【請求項3】前記命令先取りユニットから前記次の先取
りリクエストを受け取った後、前記メモリ・コントロー
ラが前記一次キャッシュに、前記二次キャッシュからの
前記リクエストされたキャッシュ・ラインをロードする
ところの請求項2記載のデータ処理システム。 - 【請求項4】前記アドレス手段が:前記二次キャッシュ
内に格納されている前記リクエストされたキャッシュ・
ラインに対応する前記メモリ・アドレスを記憶する記憶
手段:および前記二次キャッシュに格納された前記リク
エストされたキャッシュ・ラインに対応する前記メモリ
・アドレスと、前記命令先取りユニットからの前記次の
先取りリクエストに対応する前記次のメモリ・アドレス
とを比較するコンパレータ手段;とから構成されること
を特徴とする、請求項3記載のデータ処理システム。 - 【請求項5】前記メモリ・コントローラが:前記一次キ
ャッシュおよび前記命令先取りユニットに結合されたメ
モリ管理ユニットであって、先取りアドレスを受け取っ
て前記先取りアドレスを前記メモリ・アドレスに変換し
、前記メモリ・アドレスが前記複数のキャッシュ・ライ
ンの1つのキャッシュアドレスに合致したときに第4制
御信号を発生し、さらに前記メモリ・アドレスが前記複
数のキャッシュ・ラインの1つの前記キャッシュ・アド
レスと合致しなかった場合に第5制御信号を発生すると
ころのメモリ管理ユニット;および前記一次キャッシュ
と前記メモリ管理ユニットとに結合されたキャッシュ・
コントローラであって、前記第4制御信号を受け取って
、レジスタに応答して前記複数のキャッシュ・ラインの
うち前記の合致する信号をレジスタに結合させ、前記第
5制御信号を受け取って前記転送リクエスト信号を前記
バス・コントローラに応答して前記バス・コントローラ
に転送するところのキャッシュ・コントローラ;とから
構成されることを特徴とする、請求項4記載のデータ処
理システム。 - 【請求項6】前記メモリ・コントローラが前記レジスタ
に第6制御信号を与えて、それにより前記レジスタが、
前記リクエストされたキャッシュ・ライン内の前記複数
のデータ・エントリのうち所定数のものを前記命令パイ
プラインにロードさせるところの、請求項5記載のデー
タ処理システム。 - 【請求項7】メモリから複数のデータ・エントリを先取
りする命令先取りユニットを備えたパイプラインをもつ
データプロセッサを有するデータ処理システムであって
、各エントリはメモリ・アドレスによって識別され、か
つ前記命令先取りユニットは、前記複数のデータ・エン
トリを前記パイプラインをもつデータプロセッサ内の命
令パイプラインに供給するところのデータ処理システム
であって:外部メモリに結合され、前記複数のデータ・
エントリを含むリクエストされたキャッシュ・ラインを
検索するバス・コントローラであって、前記データ・エ
ントリはバス転送リクエスト信号に応答して前記外部メ
モリからのメモリ・アドレスによって識別され、さらに
前記複数のデータ・エントリを含む前記キャッシュ・ラ
インを内部データ・バス上に転送するところのバス・コ
ントローラ;一次キャッシュ;前記バス・コントローラ
,前記命令パイプラインおよび前記一次キャッシュに結
合された二次キャッシュであって、前記バス・コントロ
ーラからの前記リクエストされたキャッシュ・ラインを
検索し、第1制御信号に応答して、前記リクエストされ
たキャッシュ・ライン内の所定数の前記複数のデータ・
エントリを前記命令パイプライン内にロードし、さらに
第2制御信号に応答して、前記一次キャッシュ・メモリ
に前記リクエストされたキャッシュ・ラインをロードす
るところの二次キャッシュ;前記パイプラインでつなが
れたデータプロセッサ,前記バス・コントローラ,前記
一次キャッシュ・メモリおよび前記二次キャッシュに結
合されたメモリ・コントローラであって、前記一次キャ
ッシュおよび前記二次キャッシュの両方で先取りアドレ
ス・ミスが起こった場合に前記バス転送リクエスト信号
を発生し、前記第1制御信号を発生させて前記二次キャ
ッシュに前記リクエストされたキャッシュ・ラインをロ
ードさせ、前記第2制御信号を発生して、前記二次キャ
ッシュ内に格納されている前記リクエストされたキャッ
シュ・ライン以外のキャッシュ・ラインに対する先取り
アドレス・ミスが、前記一次キャッシュ・メモリ内で次
に起こるまで、前記二次キャッシュからの前記リクエス
トされたキャッシュ・ラインの前記一次キャッシュ・メ
モリへのローディングを延滞させ、および第3制御信号
を発生するところのメモリ・コントローラであって、前
記メモリ・コントローラは:前記一次キャッシュおよび
前記命令先取りユニットに結合されたメモリ管理ユニッ
トであって、前記命令先取りユニットからの先取りアド
レスを前記メモリ・アドレスに変換し、前記メモリ・ア
ドレスが前記複数のキャッシュ・ラインの1つのキャッ
シュアドレスに合致したときに第3制御信号を発生し、
さらに前記メモリ・アドレスが前記複数のキャッシュ・
ラインの1つの前記キャッシュ・アドレスと合致しなか
った場合に第4制御信号を発生するところの、メモリ管
理ユニット;および前記一次キャッシュと前記メモリ管
理ユニットとに結合されたキャッシュ・コントローラで
あって、前記第4制御信号を受け取って、レジスタに応
答して前記複数のキャッシュ・ラインのうち前記の合致
する信号をレジスタに結合させ、前記第5制御信号を受
け取って前記転送リクエスト信号を前記バス・コントロ
ーラに応答して前記バス・コントローラに転送するとこ
ろのキャッシュ・コントローラ;とから構成されるとこ
ろのメモリ・コントローラ;および前記メモリ・コント
ローラに結合されたアドレス手段であって、前記二次キ
ャッシュ内に格納されている前記リクエストされたキャ
ッシュ・ラインに対応する前記メモリ・アドレスを格納
し、前記メモリ・コントローラからの第3制御信号に応
答して、前記メモリ・アドレスを次の先取りリクエスト
に対応する次の先取りアドレスと比較しおよび前記メモ
リ・コントローラにマッチ信号を発生して、前記次の先
取りリクエストが、前記二次キャッシュ内に格納されて
いる前記キャッシュ・ラインに対するものであるか否か
を示すところのアドレス手段;とから構成されることを
特徴とするデータ処理システム。 - 【請求項8】前記バス・コントローラ手段と前記二次キ
ャッシュとに結合され、前記二次キャッシュ内にロード
された前記複数のデータ・エントリのそれぞれに対応す
る有効ビットを、前記内部データバスから受け取るラッ
チ手段からさらに構成されることを特徴とする、請求項
7記載のデータ処理システム。 - 【請求項9】前記命令先取りユニットから前記次の先取
りリクエストを受け取った後、前記メモリ・コントロー
ラが前記一次キャッシュに、前記二次キャッシュからの
前記リクエストされたキャッシュ・ラインをロードする
ところの、請求項8記載のデータ処理システム。 - 【請求項10】前記アドレス手段が:前記二次キャッシ
ュ内に格納されている前記リクエストされたキャッシュ
・ラインに対応する前記メモリ・アドレスを記憶する記
憶手段:および前記二次キャッシュに格納された前記リ
クエストされたキャッシュ・ラインに対応する前記メモ
リ・アドレスと、前記命令先取りユニットからの前記次
の先取りリクエストに対応する前記次のメモリ・アドレ
スとを比較するコンパレータ手段;とから構成されるこ
とを特徴とする、請求項9記載のデータ処理システム。 - 【請求項11】メモリから複数のデータ・エントリを先
取りする命令先取りユニットを備えたパイプラインをも
つデータプロセッサを有するデータ処理システムであっ
て、各エントリはメモリ・アドレスによって識別され、
かつ前記命令先取りユニットは、前記複数のデータ・エ
ントリを前記パイプラインをもつデータプロセッサ内の
命令パイプラインに供給するところのデータ処理システ
ムであって:外部メモリに結合され、バス転送信号に応
答して、メモリ・アドレスによって識別される前記複数
のデータ・エントリを前記外部メモリから検索し、前記
複数データ・エントリを内部データ・バス上に転送する
バス・コントローラ;一次キャッシュ;前記バス・コン
トローラ,前記命令パイプラインおよび前記一次キャッ
シュに結合された二次キャッシュであって、前記バス・
コントローラからの前記複数データ・エントリを受け取
り、第1制御信号に応答して、所定数の前記複数のデー
タ・エントリを前記命令パイプライン内にロードし、さ
らに、第2制御信号に応答して、一次キャッシュ・メモ
リに前記複数データ・エントリをロードするところの二
次キャッシュ;前記パイプラインをもつデータプロセッ
サ,前記バス・コントローラ,前記一次キャッシュ・メ
モリおよび前記二次キャッシュに結合されたメモリ・コ
ントローラであって、前記命令先取りユニットからの先
取りアドレスを受け取り、前記先取りアドレスを対応す
るメモリ・アドレスに変換し、前記一次キャッシュ内で
先取りアドレス・ヒットが起こった場合に、前記対応メ
モリ・アドレスに記憶されている前記複数のデータ・エ
ントリを前記一次キャッシュから検索して、前記一次キ
ャッシュおよび前記二次キャッシュ内に先取りアドレス
・ミスが起こったときに前記バス転送リクエスト信号を
発生するメモリ・コントローラであって、前記メモリ・
コントローラは:前記一次キャッシュおよび前記命令先
取リユニットに結合されたメモリ管理ユニットであって
、前記先取りアドレスを対応するメモリ・アドレスに変
換し、前記メモリ・アドレスが複数のアドレス可能なキ
ャッシュ・ラインの1つのキャッシュアドレスに合致し
たときに第3制御信号を発生し、さらに前記メモリ・ア
ドレスが前記複数のアドレス可能なキャッシュ・ライン
の1つの前記キャッシュ・アドレスと合致しなかった場
合に第4制御信号を発生するところのメモリ管理ユニッ
ト;および前記一次キャッシュと前記メモリ管理ユニッ
トとに結合されたキャッシュ・コントローラであって、
前記第3制御信号を受け取って、レジスタに応答して前
記複数のアドレス可能なキャッシュ・ラインのうち前記
の合致する信号をレジスタに結合させ、前記第2制御信
号を受け取って前記転送リクエスト信号を前記バス・コ
ントローラに応答して前記バス・コントローラに転送し
、前記第1制御信号を発生して前記二次キャッシュにリ
クエストされたキャッシュ・ラインをロードし、さらに
前記第2制御信号を発生して前記一次キャッシュに前記
二次キャッシュ内にある前記リクエストされたキャッシ
ュ・ラインをロードするところのキャッシュ・コントロ
ーラ;とから構成されるところのメモリ・コントローラ
;および前記メモリ・コントローラに結合されたアドレ
ス手段であって、前記二次キャッシュ内に格納されてい
る前記リクエストされたキャッシュ・ラインに対応する
前記メモリ・アドレスを格納し、前記メモリ・コントロ
ーラからの第5制御信号に応答して、前記メモリ・アド
レスを次の先取りリクエストに対応する次のメモリ・ア
ドレスと比較しおよび前記メモリ・コントローラにマッ
チ信号を発して、前記次の先取りリクエストが、前記二
次キャッシュ内に格納されている前記複数データ・エン
トリに対するものであるか否かを示すところのアドレス
手段;とから構成されることを特徴とするデータ処理シ
ステム。 - 【請求項12】前記バス・コントローラ手段と前記二次
キャッシュとに結合され、前記二次キャッシュ内にロー
ドされた前記複数のデータ・エントリのそれぞれに対応
する有効ビットを、前記内部データバスから受け取るラ
ッチ手段からさらに構成されることを特徴とする、請求
項11記載のデータ処理システム。 - 【請求項13】前記命令先取りユニットから前記次の先
取りリクエストを受け取った後、前記メモリ・コントロ
ーラが前記一次キャッシュに、前記二次キャッシュから
の前記リクエストされたキャッシュ・ラインをロードす
るところの請求項12記載のデータ処理システム。 - 【請求項14】前記アドレス手段が:前記二次キャッシ
ュ内に格納されている前記リクエストされたキャッシュ
・ラインに対応する前記メモリ・アドレスを記憶する記
憶手段:および前記メモリ・アドレスと前記命令先取り
ユニットからの次の先取りリクエストに対応する次のメ
モリ・アドレスとを比較するコンパレータ手段;とから
構成されることを特徴とする、請求項13記載のデータ
処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US468,021 | 1990-01-22 | ||
US07/468,021 US5170476A (en) | 1990-01-22 | 1990-01-22 | Data processor having a deferred cache load |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04218835A true JPH04218835A (ja) | 1992-08-10 |
JP2870207B2 JP2870207B2 (ja) | 1999-03-17 |
Family
ID=23858121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3073570A Expired - Lifetime JP2870207B2 (ja) | 1990-01-22 | 1991-01-18 | 延滞キャッシュ・ロードを有するデータプロセッサ |
Country Status (5)
Country | Link |
---|---|
US (1) | US5170476A (ja) |
EP (1) | EP0439025B1 (ja) |
JP (1) | JP2870207B2 (ja) |
KR (1) | KR910014818A (ja) |
DE (1) | DE69129913T2 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247632A (en) * | 1989-01-23 | 1993-09-21 | Eastman Kodak Company | Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system |
US5335335A (en) * | 1991-08-30 | 1994-08-02 | Compaq Computer Corporation | Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed |
GB2260628A (en) * | 1991-10-11 | 1993-04-21 | Intel Corp | Line buffer for cache memory |
US5649154A (en) * | 1992-02-27 | 1997-07-15 | Hewlett-Packard Company | Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits |
JP2737820B2 (ja) * | 1992-09-24 | 1998-04-08 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メモリアクセス方法およびシステム |
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
GB2273181A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache/non-cache access control. |
US5590368A (en) * | 1993-03-31 | 1996-12-31 | Intel Corporation | Method and apparatus for dynamically expanding the pipeline of a microprocessor |
JP2596712B2 (ja) * | 1993-07-01 | 1997-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 |
US5515521A (en) * | 1994-02-08 | 1996-05-07 | Meridian Semiconductor, Inc. | Circuit and method for reducing delays associated with contention interference between code fetches and operand accesses of a microprocessor |
US5551001A (en) * | 1994-06-29 | 1996-08-27 | Exponential Technology, Inc. | Master-slave cache system for instruction and data cache memories |
US5692152A (en) * | 1994-06-29 | 1997-11-25 | Exponential Technology, Inc. | Master-slave cache system with de-coupled data and tag pipelines and loop-back |
SE515718C2 (sv) * | 1994-10-17 | 2001-10-01 | Ericsson Telefon Ab L M | System och förfarande för behandling av minnesdata samt kommunikationssystem |
SE503506C2 (sv) * | 1994-10-17 | 1996-06-24 | Ericsson Telefon Ab L M | System och förfarande för behandling av data samt kommunikationssystem med dylikt system |
US5577228A (en) * | 1994-12-08 | 1996-11-19 | Sony Corporation Of Japan | Digital circuit for performing multicycle addressing in a digital memory |
US5586291A (en) * | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
US5835949A (en) * | 1994-12-27 | 1998-11-10 | National Semiconductor Corporation | Method of identifying and self-modifying code |
US5809529A (en) * | 1995-08-23 | 1998-09-15 | International Business Machines Corporation | Prefetching of committed instructions from a memory to an instruction cache |
US5860150A (en) * | 1995-10-06 | 1999-01-12 | International Business Machines Corporation | Instruction pre-fetching of a cache line within a processor |
US6085291A (en) * | 1995-11-06 | 2000-07-04 | International Business Machines Corporation | System and method for selectively controlling fetching and prefetching of data to a processor |
US5835946A (en) * | 1996-04-18 | 1998-11-10 | International Business Machines Corporation | High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations |
US5835947A (en) * | 1996-05-31 | 1998-11-10 | Sun Microsystems, Inc. | Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses |
US5983321A (en) * | 1997-03-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Cache holding register for receiving instruction packets and for providing the instruction packets to a predecode unit and instruction cache |
US6122729A (en) | 1997-05-13 | 2000-09-19 | Advanced Micro Devices, Inc. | Prefetch buffer which stores a pointer indicating an initial predecode position |
US6470444B1 (en) * | 1999-06-16 | 2002-10-22 | Intel Corporation | Method and apparatus for dividing a store operation into pre-fetch and store micro-operations |
US6898694B2 (en) * | 2001-06-28 | 2005-05-24 | Intel Corporation | High instruction fetch bandwidth in multithread processor using temporary instruction cache to deliver portion of cache line in subsequent clock cycle |
KR100546403B1 (ko) * | 2004-02-19 | 2006-01-26 | 삼성전자주식회사 | 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러 |
US8055821B2 (en) * | 2004-11-17 | 2011-11-08 | International Business Machines Corporation | Apparatus, system, and method for converting a synchronous interface into an asynchronous interface |
WO2007099582A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プリフェッチ制御装置 |
US9086889B2 (en) * | 2010-04-27 | 2015-07-21 | Oracle International Corporation | Reducing pipeline restart penalty |
US10210090B1 (en) * | 2017-10-12 | 2019-02-19 | Texas Instruments Incorporated | Servicing CPU demand requests with inflight prefetchs |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4701844A (en) * | 1984-03-30 | 1987-10-20 | Motorola Computer Systems, Inc. | Dual cache for independent prefetch and execution units |
DE3650584T2 (de) * | 1985-02-22 | 1997-06-26 | Intergraph Corp | Anordnung von Cachespeicherverwaltungseinheiten |
US4853846A (en) * | 1986-07-29 | 1989-08-01 | Intel Corporation | Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors |
US4888689A (en) * | 1986-10-17 | 1989-12-19 | Amdahl Corporation | Apparatus and method for improving cache access throughput in pipelined processors |
ATE63011T1 (de) * | 1987-02-16 | 1991-05-15 | Siemens Ag | Verfahren zur steuerung des datenaustausches zwischen verarbeitungseinheiten und einem speichersystem mit cachespeicher in datenverarbeitungsanlagen, sowie ein entsprechend arbeitender cachespeicher. |
-
1990
- 1990-01-22 US US07/468,021 patent/US5170476A/en not_active Expired - Fee Related
-
1991
- 1991-01-10 EP EP91100263A patent/EP0439025B1/en not_active Expired - Lifetime
- 1991-01-10 DE DE69129913T patent/DE69129913T2/de not_active Expired - Fee Related
- 1991-01-18 JP JP3073570A patent/JP2870207B2/ja not_active Expired - Lifetime
- 1991-01-21 KR KR1019910000937A patent/KR910014818A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
US5170476A (en) | 1992-12-08 |
DE69129913T2 (de) | 1999-03-04 |
EP0439025A3 (en) | 1992-09-09 |
EP0439025A2 (en) | 1991-07-31 |
KR910014818A (ko) | 1991-08-31 |
DE69129913D1 (de) | 1998-09-10 |
JP2870207B2 (ja) | 1999-03-17 |
EP0439025B1 (en) | 1998-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2870207B2 (ja) | 延滞キャッシュ・ロードを有するデータプロセッサ | |
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
US5828860A (en) | Data processing device equipped with cache memory and a storage unit for storing data between a main storage or CPU cache memory | |
US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
US5345576A (en) | Microprocessor simultaneously issues an access to an external cache over an external cache bus and to an internal cache, cancels the external cache access on an internal cache hit, and reissues the access over a main memory bus on an external cache miss | |
US5249286A (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
KR100228940B1 (ko) | 메모리 일관성 유지 방법 | |
US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
JPH08272682A (ja) | ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置 | |
EP1782184B1 (en) | Selectively performing fetches for store operations during speculative execution | |
JPH0526215B2 (ja) | ||
US7047362B2 (en) | Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer | |
JP2001195303A (ja) | 機能が並列に分散された変換索引バッファ | |
WO2007099598A1 (ja) | プリフェッチ機能を有するプロセッサ | |
US11500779B1 (en) | Vector prefetching for computing systems | |
JPH09160827A (ja) | コールド・キャッシュ命令のプリフェッチ | |
JPH02239331A (ja) | データ処理システム及びその命令実行を促進する方法 | |
EP0459233A2 (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
US8117400B2 (en) | System and method for fetching an information unit | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
US6389527B1 (en) | Microprocessor allowing simultaneous instruction execution and DMA transfer | |
KR0128272B1 (ko) | 보조 메모리를 포함하는 정보 처리 시스템 및 그 동작 방법 | |
JPH02242429A (ja) | パイプライン浮動小数点ロード・インストラクシヨン回路 | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
US11379379B1 (en) | Differential cache block sizing for computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090108 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100108 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110108 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110108 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120108 Year of fee payment: 13 |