JP2870207B2 - 延滞キャッシュ・ロードを有するデータプロセッサ - Google Patents
延滞キャッシュ・ロードを有するデータプロセッサInfo
- Publication number
- JP2870207B2 JP2870207B2 JP3073570A JP7357091A JP2870207B2 JP 2870207 B2 JP2870207 B2 JP 2870207B2 JP 3073570 A JP3073570 A JP 3073570A JP 7357091 A JP7357091 A JP 7357091A JP 2870207 B2 JP2870207 B2 JP 2870207B2
- 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.)
- Expired - Lifetime
Links
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)
Description
ッサに関する。さらに詳しくはキャッシュを有するデー
タプロセッサに関する。
ロセッサでは、各命令は、次の命令が始まる前に最後ま
で実行される。全体の性能を高めながら、機械操作の効
率を向上させるためには、従来のデータプロセッサ設計
にパイプラインを有するデータ処理装置が実現された。
これらのパイプラインをもつデータプロセッサは、継続
する命令のサブ操作を重ね合わせることにより、いくつ
かの命令を平行に実行することができる。パイプライン
をもつデータプロセッサが1つの新しい命令を取り出
し、クロック・サイクル毎に他の命令の実行を完了させ
ることが最適である。このため、複雑な命令に必要な実
際の実行時間は変化するが、全体的な実行速度はクロッ
ク・サイクル毎の1個の命令に近づくことになる。その
結果、パイプラインを有するプロセッサを用いることに
より、データプロセッサの全体的な性能が著しく向上す
る。
行を行うためには、命令先取り(プリフェッチ)ユニッ
ト(IPU:Instruction Prefetc
h Unit)は、クロック・サイクル毎に必要な数の
命令を命令パイプラインにロードすることのできる命令
の流れを保たなければならない。もしIPUが、必要な
命令の流れを維持することができなければ、そして命令
パイプラインに必要な数の命令語がロードされなけれ
ば、パイプラインの機能停止が起こる。一般的に、今日
の高性能なパイプラインを有するデータプロセッサで
は、命令キャッシュを用いてIPUが命令データ(オペ
ランド)に迅速にアクセスできるようになっている。典
型的なものとしては、命令キャッシュがキャッシュ・コ
ントローラによって維持されて、キャッシュ・コントロ
ーラがIPUと連動して命令を検索(先取り)し、命令
バッファ(キュー)をロードされた状態に保つ。従っ
て、プロセッサが命令先取りをリクエストすると、キャ
ッシュ・コントローラは先取りリクエストを受信して、
その命令が命令キャッシュ内にあるか否かを判定する。
リクエストされた命令がキャッシュ内にある場合は、先
取りの「ヒット」が起こり、キャッシュ・コントローラ
は命令キャッシュから直接命令バッファをロードする。
もしリクエストされた命令がキャッシュ内にない場合
は、先取りの「ミス」が起こり、キャッシュ・コントロ
ーラは、バス転送をリクエストして外部メモリから必要
なキャッシュ・ラインを検索する。
ト・モード転送を用いて、1回のメモリ・アクセスでキ
ャッシュ・ライン(たとえば16バイト)を転送する。
バースト・モードでは、開始アドレスの16バイトのみ
がメモリに転送されるのが普通で、そのため必要なメモ
リ・アクセスは1回で済む。通常は、データが有効にな
った直後に、キャッシュ・コントローラが命令キャッシ
ュに必要なキャッシュ・ラインをロードする。そのた
め、プロセッサからの次の先取りは1回のキャッシュ・
ロード・サイクルの間中断される。命令キャッシュ・ロ
ードに必要とされるプロセッサの中断の結果として、パ
フォーマンス・ペナルティ(Performance
Penalty)が起こる。データ・バスからのキャッ
シュ書き込みに帰するパフォーマンス・ペナルティを改
善するための努力は、一時的にデータを記憶してキャッ
シュ・ロードを保留するためのバッファを用いることに
集中していた。これらのバッファ(普通は「プッシュ」
バッファと呼ばれる)は、内部バスを介して整数ユニッ
トにリクエストされたデータを送るのが普通である。通
常、以前のシステムは、同一のキャッシュ・ラインに対
する次の先取りリクエスト中にプッシュ・バッファ内に
記憶されているキャッシュ・ラインに直接アクセスする
ための機構を設けていなかった。このため、プッシュ・
バッファを用いることによって1回のキャッシュ・ロー
ド・サイクル中にプロセッサが停止する問題を軽減する
ことはできても、これらのプッシュ・バッファは命令キ
ャッシュと平行にアクセスすることはできない。その結
果、プッシュ・バッファ内に記憶されているキャッシュ
・ラインにあるデータに対して、プロセッサからの先取
りリクエストがあると、他のバス転送によって外部メモ
リから必要なデータを検索することになる。このように
バス転送が重複することにより、新たなパフォーマンス
・ペナルティの問題が起きてくる。
ードと命令先取りとに関連するパフォーマンス・ペナル
ティををなくすることのできる改良されたデータプロセ
ッサを提供することである。
ードを有する改良されたデータプロセッサを提供するこ
とである。
インの中断を起こさずに、命令キャッシュ・ロードを延
滞させることのできるデータプロセッサを提供すること
である。
目的は、パイプラインをもつデータプロセッサを有する
改良されたデータ処理システムによって実現される。こ
のデータプロセッサには、複数のデータ・エントリを二
次的なメモリから先取りする命令先取りユニットが備え
られ、各エントリは、メモリ・アドレスによって識別さ
れ、さらにこのユニットは複数のデータ・エントリをパ
イプラインをもつデータプロセッサ内の命令パイプライ
ン内に供給する。データ処理システムは:外部メモリに
結合され、バス転送リクエスト信号に応答して、外部メ
モリからのメモリ・アドレスによって識別される複数の
データ・エントリを含むリクエストされたキャッシュ・
ラインを検索し、内部データ・バスに複数のデータ・エ
ントリを含むキャッシュ・ラインを転送するバス・コン
トローラから構成される。二次キャッシュは、バス・コ
ントローラと命令パイプラインとに結合され、バス・コ
ントローラからリクエストされたキャッシュ・ラインを
受け取り、第1制御信号に応答してリクエストされたキ
ャッシュ・ライン内の所定数の複数のデータ・エントリ
を命令パイプライン内にロードし、さらに第2制御信号
に応答して、一次キャッシュ・メモリにリクエストされ
たキャッシュ・ラインをロードする。メモリ・コントロ
ーラは、パイプラインをもつデータプロセッサ,バス・
コントローラ,一次キャッシュおよび二次キャッシュに
結合され、キャッシュ・メモリおよび二次キャッシュ内
の先取りアドレス・ミスが起こるとバス転送リクエスト
信号が発生して、第1制御信号を発して二次キャッシュ
にリクエストされたキャッシュ・ラインをロードする。
メモリ・コントローラは第2制御信号を発生して、一次
キャッシュに二次キャッシュからのリクエストされたキ
ャッシュ・ラインがロードされるのを延滞させる。これ
は、二次キャッシュ内にあるリクエストされたキャッシ
ュ・ライン以外のキャッシュ・ラインに対する先取りア
ドレス・ミスが一次キャッシュメモリ内で次に起こるま
で続き、さらに第3制御信号を発生する。メモリ・コン
トローラに結合されたアドレス・ロジックは、二次キャ
ッシュ内に格納されているリクエストされたキャッシュ
・ラインに対応するメモリ・アドレスを格納して、メモ
リ・コントローラからの第3制御信号に応答して、その
メモリ・アドレスを、命令先取りユニットからの次の先
取りリクエストに対応する次のメモリ・アドレスと比較
する。アドレス・ロジックはメモリ・コントローラへの
マッチ信号を設け、それによって次の先取りリクエスト
が二次キャッシュ内に格納されているキャッシュ・ライ
ンに対するものであるか否かを示す。
を用いて、「高論理で活性(Active Hig
h)」と「低論理で活性(Active Low)」の
信号が混合したものを扱う場合の混乱を回避する。「ア
サート」は、信号が活性状態であるかまたは論理的に真
であることを示すために用いる。「ネゲート」は、信号
が不活性状態であるかまたは論理的に偽であることを示
すために用いる。
よるデータ処理システム10の構造を示すブロック図で
ある。データ処理システム10は、整数ユニット12,
命令メモリユニット14,バス・インターフェース・コ
ントローラ(BIC:BusInterface Co
ntroller)16,システム・バス18およびメ
モリ20とから構成されている。本発明の好適な実施例
においては、命令メモリ・ユニット14は、命令キャッ
シュ・コントローラ22,命令キャッシュ・アドレス・
メモリ管理ユニット(CAMMU:Insuructi
onCache Address Memory Ma
nagement Unit)24,命令キャッシュ2
6,第1ラッチ(LATCHA)28,第2ラッチ(L
ATCHB)30,コンパレータ(COMP:Comp
arator)32,二次キャッシュ34,命令キャッ
シュ保持レジスタ36,マルチプレクサ40およびラッ
チ42とから構成されている。命令キャッシュ26は、
4方向設定連想キャッシュで、4個の16バイトからな
る64組のキャッシュ・ラインを持ち、各キャッシュ・
ラインは4個の長語(LW0−LW3:Long Wo
rd0−3)からなり、各長語(LW)は、2個の連続
ビットからなっている。従って、命令キャッシュ26
は、合計4KBの記憶容量を有している。
2はパイプラインをもつ実行ユニットで、命令先取り、
有効アドレス計算および有効アドレス先取りサブ操作を
パイプラインでつなぐことのできる命令パイプライン
(PIPE)を備えている。整数ユニット12には、命
令メモリ・ユニット14と連動する命令先取りユニット
が含まれ、キャッシュ・ライン保持レジスタ36をロー
ド状態に保っている。これは同時出願され、本出願の譲
渡人に譲渡されているRussell Reining
er他による「1,2または3語の命令を順次先取りす
る方法」という標題の米国特許第SC−00770Aに
開示されているのと同様である。命令先取りサイクル中
に、整数ユニット12は命令メモリ・ユニット14から
64ビット(キャッシュ半直線)の先取りをリクエスト
して、それによってPIPEまでの命令の安定した流れ
を確保する。従って、動作中は整数ユニット12は命令
メモリ・ユニット14に対してPREFETCH RE
QUEST(先取りリクエスト)信号を発する。命令メ
モリ・ユニット14が先取りリクエストを受け取ると、
整数ユニット12はリクエストされた命令に対する論理
アドレスをCAMMU24に転送する。CAMMU24
は、その論理アドレスを対応する物理アドレスに変換し
て、物理アドレス・バス(PA:Physical A
ddressBUS)上に置く。好適な実施例において
は、命令キャッシュ26はCAMMU24によって変換
されない所定数のアドレス・ビットを用いてアクセスさ
れる。このためCAMMU24は、命令キャッシュ26
アクセスと同時にアドレス変換を行う。先取りの「ヒッ
ト」が起こると、先取りリクエストに対応する命令キャ
ッシュ26半直線は、レジスタ36に転送される。同じ
サイクル中に、整数ユニット12からのFETCH R
EQUEST信号に応答して、所定数の命令語がMUX
40を介してPIPEに転送される。
の先取りが命令キャッシュ26と二次キャッシュ34内
とでミスすると、命令キャッシュ・コントローラ22は
先取りの「ミス」を検出して、BURST REQUE
ST(バースト・リクエスト)信号をBIC16に対し
て発して、それによりバースト転送をリクエストし、メ
モリ20からキャッシュ・ライン(128ビット)を検
索する。命令キャッシュ・コントローラ22はまた、B
IC16に対して物理アドレスを転送する。BIC16
がBURST REQUEST信号を認定すると、命令
キャッシュ・コントローラ22はLOAD信号をアサー
トし、それによってLATCHA28はPA BUS上
の物理アドレスをラッチすることができる。LATCH
B30は、次の機械サイクル、たとえば図2および図3
に示されるように、8番目の機械サイクルの最後でLA
TCHA28の内容をラッチすることができる。BIC
16はメモリ20から、システム・バス18を介して、
リクエストされたキャッシュ・ライン(先取りリクエス
トに対するデータを含む)を検索する。1組のSTAT
US(ステータス)信号により、命令キャッシュ・コン
トローラ22に、命令キャッシュ・コントローラ22に
よりリクエストされたバス転送のステータスを知らせ
る。BIC16がデータ・バス上にリクエストされたキ
ャッシュ・ラインを転送すると、128ビットの二次キ
ャッシュ34にデータがロードされる。同時に命令キャ
ッシュ・コントローラ22はWRITE CONTRO
L(書き込み制御)信号をアサートして、それにより二
次キャッシュ34は、長語がデータ・バス上で有効にな
るのと同じサイクル中に、先取りリクエストされたキャ
ッシュ半直線(たとえばLW0,LW1)をキャッシュ
・ライン保持レジスタ36内に書き込む。
に対する第2長語(LW1)がデータ・バスから受信さ
れると、命令キャッシュ・コントローラ22は次のサイ
クルで、整数ユニット12から次の先取りリクエストを
受け取る。この先取りと平行して、命令キャッシュ・コ
ントローラ22は二次キャッシュ34が、前回のバース
ト・リクエストに対応するデータを、データ・バスから
引続きロードすることを可能にする。二次キャッシュ3
4がレジスタ36内にキャッシュ半直線の書き込みを完
了した後、命令メモリ・コントローラ14は整数ユニッ
ト12から次の先取りを受け取り、二次キャッシュ34
に、データバスから残りの2個の長語をロードする。キ
ャッシュ・ラインは、二次キャッシュ34内に格納され
たもの以外のキャッシュ・ラインに対する先取り「ミ
ス」が、命令キャッシュ26内で起こるまでは、二次キ
ャッシュ34に格納されたままになっている。このた
め、命令キャッシュ26内で先取りリクエストがミス
し、リクエストに対応する命令データが二次キャッシュ
34内にあるときは、整数ユニット12は二次キャッシ
ュ34から命令データを得る。本来、命令キャッシュ・
コントローラ22はLATCHA28,LATCHB3
0およびCOMP32を用いて、二次キャッシュ34の
内容を確認する。
論理アドレスと共に先取りリクエストを命令メモリユニ
ット14に発する。先取りリクエストが命令メモリ・ユ
ニット14に受け取られると、CAMMU24は論理ア
ドレスを対応する物理アドレスに変換して、PA BU
S上に置く。物理アドレスは、命令キャッシュ26を経
由して、命令キャッシュ26内のインデックス・エント
リと比較され、同時にCOMP32を経由する。COM
P32は、今回の先取りの物理アドレスをLATCHB
30内の物理アドレスと比較する。これは、二次キャッ
シュ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 RE
QUEST信号をアサートする(このキャッシュ・ライ
ンには、先取りリクエスト半直線が含まれる)。二次キ
ャッシュ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 REQU
EST信号を発して、16進アドレス$00に格納され
た命令データを検索する。命令キャッシュ・コントロー
ラ22は、先取りミスが起こったために、BIC16に
対してBURST REQUEST信号を発する。その
結果BIC16は二次キャッシュ34にアドレス$00
に格納されている命令のキャッシュ・ラインをロードす
る。
IC16に対してBURST REQUEST信号を発
し、BIC16にアドレス$00を転送することによ
り、命令キャッシュ・コントローラ22はアドレス$0
0の先取りを開始する。第1機械サイクル中にBIC1
6はアドレス$00に対してバス転送を開始する。一
方、整数ユニット12は次の順次アドレス$08に対し
て命令キャッシュ・コントローラ22にPREFETC
H 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,LW
3)をロードする。同じキャッシュ・ラインが先取りさ
れているので、二次キャッシュ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のローディングによって整数ユニッ
ト12からの次の先取りが中断することはない。従っ
て、整数ユニット12からの先取りリクエストに応答し
て、命令キャッシュ・コントローラ22は第1機械サイ
クルの前半でアドレス$00のキャッシュ先取りを開始
する。本発明においては、命令キャッシュ・コントロー
ラ22は第1機械サイクルでアドレス$00に対する先
取りサイクルを開始し、同時にLATCHA28内にア
ドレス$00をロードする。リクエストされたアドレス
($00)が命令キャッシュ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のロードを行
う。本発明においては、命令キャッシュ・コントローラ
22は前回の先取り($00)の終了直後に次のアドレ
ス($10)に対する先取りリクエストを受け取るの
で、キャッシュ・ロード・サイクルによって整数ユニッ
ト12が中断することはない。BIC16は第8機械サ
イクルT8の後半で、リクエストされたデータ(アドレ
ス$10からの)のデータ・バス上への転送を開始す
る。一方、命令キャッシュ・コントローラ22はLAT
CHA28からLATCHB30へアドレス$10を転
送する。
・スヌープ・リクエスト(BusSnoop Requ
est)は二次キャッシュ34内にあるキャッシュ・ラ
インを無効にする。この点は、William B.
Ledbetter他による、本出願の譲渡人に譲渡さ
れた、同時出願「A Data Bus Snoop
Controller for Concurrent
ReadandInvalidate Memory
Operation」、番号07/351,898に
示されている。さらに、整数ユニット12により発生し
たキャッシュ無効リクエスト信号は、二次キャッシュ3
4内にあるキャッシュ・ラインをも無効にする。このた
め、二次キャッシュ34はキャッシュ構造の機能特性の
全てを備える。
いるが、開示された発明がさまざまな方法に改良され、
上記に特定され説明されたもの以外の多くの実施例が想
定されることは、当業者には明白であろう。たとえば、
本発明は、命令メモリユニット14と同様の機能的な対
応部分を有するデータ・メモリ・ユニット(図示され
ず)を組み込んだシステムに用いることもできる。これ
により、二次キャッシュ34はデータのキャッシュ・ラ
インを格納し、データ・キャッシュ・コントローラと連
動して、延滞データ・キャッシュ・ロードを実行するこ
とができる。さらに、代替の実施例に示されたように、
整数ユニット12を改良して、各先取りサイクル毎に命
令データのキャッシュ・ライン全体にアクセスさせた
り、二次キャッシュ34を改良してその記憶容量を拡大
または縮小させることもできる。従って、添付された請
求項は、本発明の信念と範囲内に当てはまる全ての修正
を含むものとする。
である。
イミング図である。
図である。
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 JPH04218835A (ja) | 1992-08-10 |
JP2870207B2 true 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 |
EP0439025B1 (en) | 1998-08-05 |
JPH04218835A (ja) | 1992-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2870207B2 (ja) | 延滞キャッシュ・ロードを有するデータプロセッサ | |
US6519682B2 (en) | Pipelined non-blocking level two cache system with inherent transaction collision-avoidance | |
US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
JP4045062B2 (ja) | ロード命令を実行する方法、プロセッサ、およびシステム | |
US5524220A (en) | Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems | |
US7921275B2 (en) | Method for enabling direct prefetching of data during asychronous memory move operation | |
US7930504B2 (en) | Handling of address conflicts during asynchronous memory move operations | |
US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
KR100228940B1 (ko) | 메모리 일관성 유지 방법 | |
US20090198897A1 (en) | Cache management during asynchronous memory move operations | |
EP1782184B1 (en) | Selectively performing fetches for store operations during speculative execution | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
US20090198937A1 (en) | Mechanisms for communicating with an asynchronous memory mover to perform amm operations | |
JPH0962573A (ja) | データ・キャッシュ・システム及び方法 | |
JPH04232549A (ja) | キャッシュメモリシステム | |
US20090106498A1 (en) | Coherent dram prefetcher | |
KR100234647B1 (ko) | 인스트럭션 프리페치 방법 및 데이터 처리 시스템 | |
JP2737820B2 (ja) | メモリアクセス方法およびシステム | |
WO2007099598A1 (ja) | プリフェッチ機能を有するプロセッサ | |
US6237066B1 (en) | Supporting multiple outstanding requests to multiple targets in a pipelined memory system | |
JPH02239331A (ja) | データ処理システム及びその命令実行を促進する方法 | |
JPH0340047A (ja) | キヤツシユ・ライン・ストア方法 | |
JPH04251352A (ja) | マイクロプロセサのオンチップキャッシュ内のメモリ位置の選択的ロック | |
US6389527B1 (en) | Microprocessor allowing simultaneous instruction execution and DMA transfer | |
JPH08328950A (ja) | プロセッサシステムにおいてメモリ源から取込まれたバイトをキャッシュメモリに与える方法、およびプロセッサシステムにおいてキャッシュメモリをプロセッサバスにインタフェースさせるバスインタフェース回路 |
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 |