JP4298800B2 - キャッシュメモリにおけるプリフェッチ管理 - Google Patents
キャッシュメモリにおけるプリフェッチ管理 Download PDFInfo
- Publication number
- JP4298800B2 JP4298800B2 JP52577399A JP52577399A JP4298800B2 JP 4298800 B2 JP4298800 B2 JP 4298800B2 JP 52577399 A JP52577399 A JP 52577399A JP 52577399 A JP52577399 A JP 52577399A JP 4298800 B2 JP4298800 B2 JP 4298800B2
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- memory
- address
- cache
- information
- 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
- 238000012545 processing Methods 0.000 claims description 47
- 230000006870 function Effects 0.000 claims description 19
- 238000002347 injection Methods 0.000 claims description 2
- 239000007924 injection Substances 0.000 claims description 2
- 238000012216 screening Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 12
- 238000000034 method Methods 0.000 description 9
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、キャッシュメモリを利用したり、実装するためのシステム、装置、及び方法に関するものである。より明確に言えば、本発明はキャッシュメモリにおいてプリフェッチを管理するためのシステム、装置、及び方法に関するものである。
キャッシュメモリは、一般に、記憶システムの一部分を構成するものであり、また、この記憶システムは、典型的には、パーソナル・コンピュータまたはテレビ用のセット・トップ・ボックスのようなコンピュータシステムの一部分を構成するものである。このコンピュータシステムは、更に、演算処理装置を含むものである。コンピュータシステムでは、この記憶システムは演算処理装置が書き込み操作、読み出し操作でアクセスする際の情報を格納する。
記憶システムは、一般に、階層構造となっている。階層記憶システムは、一般に、各階層におけるスピード、容量、費用をうまく調整させるためと、全体として許容できる性能と経済性を達成し得るように、物理的に区分けされた階層の技術を組み合わせるものである。最低位の階層では、階層記憶システムは典型的には演算処理装置に欠かせない限定された数のレジスタを有し、このレジスタは極めて高速であり、演算処理装置の演算ブロック(例えば、演算論理装置)の近くに配置される:同時に、このレジスタは、他のメモリ技術で使われるものに比べて高価である。また、階層記憶システムは上位の階層のメモリも有する:このメモリは典型的には、
(i)一般に揮発性メモリ技術(例えば、様々な形態のランダム・アクセス・メモリ)からなるメインメモリ
(ii)より恒久的な記憶装置(例えば、コンパクトディスク、フロッピーディスク、ハードディスク、磁気テープ装置)。
を含むものである。
レジスタと上位階層のメモリとの間にキャッシュメモリが配置される。このキャッシュメモリは、演算処理装置の集積回路(オンチップ)の部品として存在する第1階層と、オンチップではないが演算処理装置の筐体内に存在するか、さもなければこのような装置の近くに設けられる第2階層とを含む階層で使用することができる。このキャッシュメモリは、一般に、高速の技術を使用する比較的上位の階層のメモリとして実装される。このキャッシュメモリの高速技術は、典型的には演算処理装置に物理的に接近させることによって強化される。これらの技術及び配置では、ビットあたりのコストは高くなる傾向がある。しかしながら、このキャッシュメモリは典型的には小容量であるため、全体としてコンピュータシステムの費用は許容し得るものである。
このキャッシュメモリは、演算処理装置が近い将来にシーク操作をするであろう情報を保持するために、一般に実装される。この点については、もしもシークされた情報(例えば、データ、命令、またはこの両者)がキャッシュメモリ内で見つかった場合(ヒット)、この情報はきわめて高速に装置に与えられることとなるので、演算処理装置は先ず最初にキャッシュメモリを経由して情報アクセスのためのシークを行うものとなるであろう。しかしながら、もしもこの情報がキャッシュメモリ内で見つからなかった場合(ミス)、この演算処理装置は、記憶システムのより上位の階層である以下の1つを経由してその情報にアクセスする。これらの次−階層のアクセスは、典型的には、キャッシュヒットした場合に比べて、情報の有効率においてだんだんと大きな遅延を生じさせる(ミスペナルティ)。
キャッシュメモリ内に、演算処理装置が近い内にシーク操作を行いそうな情報を保持するために、キャッシュメモリの内容を連続的に更新することが普通である。この更新機構は、アクセスされた情報、例えばキャッシュミスした情報を、上位の階層のメモリからキャッシュメモリ内に複製するものである。一般に、この更新機構は、アクセスされた情報のみを入れるだけではなく、そのメモリアドレスの近隣の情報も入れるものである。更に、この更新機構は、典型的にはこの情報を、キャッシュメモリ内の他の情報と置き換えるものであるが、この置き換えは予め選ばれた置換規則に従う。このような規則の1つは、更新に関しては、最も昔の使用された情報を置き換えるというものである--このような情報は、近い内に使用される可能性が最も低いと考えられ、従って、入れ替えても良いものである。
更新は、アクセスされそうであるという情報に対して行なわれるが、一方、他のアプローチは、演算処理装置によって近い将来にアクセスされることが判っている情報をキャッシュメモリにロードするものである。このようにするためには、この演算処理装置は、キャッシュメモリに対してプリフェッチ命令を発行する。この命令の発行は、命令によって指示される情報に演算処理装置がアクセスする必要があるときよりも以前に行なわれる。更に、この発行は、一般に、プログラマのコーディング、演算処理装置のオペレーティングシステムまたはコンパイラのようなソフトウェアで記述されたものに対して応答するものである。
幾つかのプリフェッチ機構は提案されてきたが、その用途は様々な制限によって抑制されてきた。このような制限の典型的なものは、プリフェッチ可能な情報の識別に関する困難性である。更に、プリフェッチ可能な情報が識別できたとしても、関連するプリフェッチ機構は、この情報についての演算処理装置のアクセス操作の始動の前に、普通に情報をプリフェッチするためには不十分な期間しか許されない傾向がある。この時間不足は、プリフェッチ命令をアクセスよりもかなり前以て発行するプログラミングによって解決することもできるが、このようなプログラミングは、2次的な問題を招くことになるため好ましくない。このような2次的な問題の1つは、プリフェッチした情報を入れてから最終的に使用するまでの期間、キャッシュメモリの資源を浪費する可能性があることであり、この浪費はキャッシュメモリの性能を悪くし得るものである。その他の2次的な問題は、置換規則の下での置き換えのために、プリフェッチした情報が除去される可能性があることである。
この時間不足は、一連のプリフェッチ命令へのセグメント方式によるプリフェッチによって解決することも可能である。しかしながら、一連の命令を利用することは、2次的な問題を招くことになるため好ましくない。2次的な問題の1つは、隣接したプリフェッチ命令の間で最適な時間の間隔を達成することの困難性である:(i)各プリフェッチ命令は、そのプリフェッチ命令が次の操作、隣接した命令と衝突しないように発行されるべきである。(ii)隣接した命令は、プリフェッチ操作の間の時間間隔を最少化するように、発行されるべきである。
従って、これらの操作に典型的に関連する問題を克服するプリフェッチ機能を備えるキャッシュメモリを提供することが望ましい。
発明の概要
この発明の一般的な目的は、プリフェッチ操作に関連する典型的な問題を克服するキャッシュメモリのプリフェッチ機能をサポートすることである。これらの及びその他の目的に合わせて、本発明の特徴の1つは、プリフェッチ操作を備えるキャッシュメモリと、演算処理装置によって使用するために上位階層のメモリから複製された情報を格納するためのキャッシュアクセス操作と、プリフェッチアドレス及びキャッシュアクセスアドレスを含むアドレスを発行する演算処理装置と、を含むものである。このキャッシュメモリは、情報を格納するためのメモリ資源及びプリフェッチ資源を含むものである。このプリフェッチ資源は、受け取り、及び演算処理装置からのプリフェッチアドレスを受け取って記憶するためと、キャッシュアクセス操作のプリフェッチ操作を調整するために受け取ったプリフェッチアドレスの挿入管理(injection management)をするために、メモリ資源、及び演算処理装置に接続される。
本発明の他の特徴は、コンピュータシステムを含み、このコンピュータシステムは演算処理装置、記憶システム、プリフェッチ資源を含むものである。この記憶システムは、上位階層メモリとキャッシュメモリを含み、この上位階層のメモリは情報の記憶装置として提供され、キャッシュメモリはプリフェッチ及びキャッシュアクセスアドレスと関連して、上位階層のメモリから複製された情報の記憶装置を提供するものである。
本発明の更に他の特徴は、演算処理装置によって発行されたプリフェッチアドレスを受け取るステップと:このプリフェッチアドレスをプリフェッチメモリに格納するステップと;プリフェッチアドレスに関する情報をキャッシュメモリに運び込むために、プリフェッチアドレスをプリフェッチメモリから予め選択された順番に挿入するステップを含むものである。
本発明を特徴づける新規の様々な機能が、本明細書の一部を構成し付随する請求項で個別に指摘される。本発明及びその操作の利点、その使用によって達成される特定の目的を、添付図面を参照して説明するが、その好適実施例の説明では、同じまたは同様の要素は同じ参照番号で示す。
【図面の簡単な説明】
図面では:
図1は、本発明による一般的なコンピュータシステムを図示する。
図2は、本発明によるキャッシュメモリのプリフェッチについて図示する。
図3は、図2におけるキャッシュメモリのプリフェッチについての一部分をより詳細に図示する。
図4は、図2におけるキャッシュメモリのプリフェッチについての一部分をより詳細に図示する
図5は、本発明によるプリフェッチアドレスの発行に関するステップの実施例を示すフローチャートである。
図6は、本発明によるプリフェッチアドレスの挿入に関するステップの実施例を示すフローチャートである。
詳細な説明
本発明は、プリフェッチの管理を、特に複数のプリフェッチ命令に関するプリフェッチの管理を可能にするものである。以下の説明では、本発明の徹底した理解を提供するために、専門用語及びその他の詳細について説明する。しかしながら、当業者は、本発明を実践するためには全ての詳細は必要でないと理解すべきである。更に、本発明を不明瞭にするのを避けるために、詳細な説明では、ブロック図の形態で示されるような良く知られた要素、装置、プロセスのステップ、及び同様の情報は省略するかもしれない。
更に、当業者は、以下の詳細な説明が本発明の幾つかの実施例からなること、本発明の全ての実施例を説明するわけではなく、また説明する意図もないと理解すべきである。このような説明の点に関して、当業者は、本発明の原理から外れることなく、1つのあるいは複数の特徴を、説明しなくても良いと理解すべきである(または、幾つかの場合は全て省略しても良い)。
図1は、本発明によるコンピュータシステム10を図示する。このコンピュータシステム10は、
(i)演算処理装置12
(ii)ソフトウェア13
(iii)プリフェッチ資源15、キャッシュメモリ16、及び上位階層メモリ18を含む記憶システム14、
を含むものである。この演算処理装置12は、情報の処理に関する幾つかの構成を含むものである。そのようなものとして、この演算処理装置12は、例外なく、中央演算処理装置(CPU)、またはデジタル・シグナル・プロセッサ(DSP)、またはこれを組み合わせた装置(DSP/CPU)を含むことができる。この演算処理装置は、マイクロプロセッサ、マイクロコントローラ、または同じもののグループを使用して、あるいは使用しなくとも、機能を提供することが可能である。
このソフトウェア13は、コンピュータシステム10の処理を実現するために、一般にはアプリケーションプログラム、コンパイラその他のソフトウェアツール、オペレーティングシステム、ファームウェア、及びその他のソフトウェア、同様にこれらの組み合わせを含むものであり、特別の場合は、ここで述べているプリフェッチ技術をも含むものである。例として、好ましいオペレーティングシステム、またはメモリ管理ソフトウェアは、キャッシュメモリ16と上位階層メモリ18との間に一貫性を提供する。その他の例では、好ましくはソフトウェア13は上位階層メモリ18に対して命令及びデータをロードさせる機能を提供する。
この上位階層メモリ18は、全体として、キャッシュメモリ16以外のコンピュータシステム10のメモリ機構を含むものである。例えば、この上位階層メモリ18は、メインメモリ、より永久的な記憶装置を含み、同様にキャッシュメモリ16とメインメモリとの間に入れられたその他のキャッシング機構をも含むものである。この上位階層メモリ18は、典型的には、演算処理装置の集積回路または筐体の中には存在しない。しかしながら、コンピュータシステム10の技術要求によって、上位階層メモリ18の一部分(ある場合は、全部)は演算処理装置12と一緒に集積されることもある。いずれの場合でも、好ましくは上位階層メモリ18を何らかの形態で設けるが、その階層は、キャッシュメモリ16に比べて演算処理装置からより遠くに存在し、複製された情報をキャッシュメモリ16内に格納するようなものである。
このキャッシュメモリ16は、典型的には、演算処理装置の集積回路、またはその筐体内に位置するが、さもなければ、本発明の原理を外れることなく配置される。幾つかの場合(キャッシュメモリで構成されるコピーバックでキャッシュブロックが修正され易い場合)、このキャッシュメモリ16は上位階層メモリ18に格納される情報の複製を含むものである。1つまたは複数の階層のメモリが、キャッシュメモリ16及び演算処理装置12の間に配置されるものと認識すべきである。この点で、このキャッシュメモリ16は、実際のシステム、装置、方法で使用されるようなラベルで表さないで、一般的に、本明細書では機能及び機構によって説明されるものである。
情報を読み込み、書き出しするために、この記憶システム14は、処理用バス20を介して演算処理装置12に接続し、そしてキャッシュメモリ16はメモリバス22を介して上位階層メモリ18に接続する。各々のバス20、22は、アドレスの幾つか、または全て、情報、及び接続された構成部品の制御信号の通信のために提供される。それにも拘わらず、図示された接続では、本発明の原理を外れることなく挿入された機構を含むその他の接続と認識される。
一般にこのコンピュータシステム10は、周辺機器24をも含むものである。1つまたはそれ以上の周辺機器が、本発明の原理から外れること無く、どのような組み合わせでも提供され、または省略されるが、周辺機器24は典型的には、キーボード、ポインティング装置、プリンタ、その他のデータ獲得及びシグナル出力装置を含む様々なI/O装置を有するものである。
図2は、本発明による、集積されたプリフェッチ資源15及びキャッシュメモリ16の実施例を図示するものである。時々、本明細書でプリフェッチングキャッシュメモリ38と呼ばれる、この実施例は、メモリ資源40、セレクタ42、プリフェッチメモリ44、キャッシュ制御装置46、マルチプレクサ48を含むものである。キャッシュ制御装置46は、演算処理装置12及びメモリ資源40に接続され、これらの機構からそれぞれ、OPシグナル、MR_STATUSシグナルを受け取る。この中でも特に、このOPシグナルは、演算処理装置12からプリフェッチングキャッシュメモリ38に送られるその他の信号が(i)プリフェッチ操作(例えば、メモリ資源40に入れられる情報のプリフェッチ)、または(ii)キャッシュアクセス操作(メモリ資源40に存在するかもしれない情報へのシーク)を含むその他の操作に、関連するか否かについて、キャッシュ制御装置46に示すものである。このMR_STATUSシグナルは、中でもとりわけ、メモリ資源40内に特定の情報があるか否かを、及び、このメモリ資源40はプリフェッチングに使用できるか否かを、キャッシュ制御装置46に示すものである。OPシグナル、MR_STATUSシグナルに応答して、このキャッシュ制御装置46は、制御線47を介して、セレクタ42、プリフェッチメモリ44、マルチプレクサ48、及びメモリ資源40の操作を制御する。このキャッシュ制御装置46は、PCM_STATUSシグナルをも生成し、このシグナルは演算処理装置12に、例えばキャッシュアクセス及びプリフェッチ操作に関するプリフェッチングキャッシュメモリ38の状態を示すために提供される。
このセレクタ42は、受け取りのために演算制御装置12に接続され、好ましくは、アドレスシグナル--PD_ADDをロックする。このセレクタ42は、各々のプリフェッチメモリ44及びメモリ資源40(後者については、マルチプレクサ48を介して)にも接続する。キャッシュアクセスに関連する特定のPD_ADDシグナルの場合、このセレクタ42はPD_ADDシグナルをメモリ資源40に送る(即ち、マルチプレクサ48にSELECT_ADDシグナルとして)。プリフェッチ操作に関連するPD_ADDシグナルの場合、このセレクタ42はPD_ADDシグナルをプリフェッチメモリ44に、PF_ADDシグナルとして送る。どちらの場合も、この送付はキャッシュ制御装置46によって制御され、OPシグナル、MR_STATUSシグナルに応答するものである。
プリフェッチ操作に対しても、このセレクタ42は、好ましくはPD_ADDシグナルをプリフェッチメモリ44に送り、ある状況の下、セレクタ42はこのようなシグナルを、マルチプレクサ48を介してメモリ資源に送付する機能を提供することも可能であると理解できる。例として、プリフェッチメモリ44が空であり、PD_ADDシグナルのプリフェッチ操作のサービスを即座に、メモリ資源40が利用可能である場合に、メモリ資源40への送付の機能を提供することも可能である。他の例では、メモリ資源40へのこの送付はプリフェッチに関する情報が既にメモリ資源40内に存在するか否かを検査するように機能を提供することも可能である。もしもヒットした場合、そこで、このキャッシュ制御装置46はMR_STATUSシグナルを介して制御され、キャッシュ制御装置46の制御下、セレクタ42はロックされたアドレスを廃棄する。もしも、MR_STATUSシグナルがミスを示す場合、前に説明したように、キャッシュ制御装置46の制御下、セレクタ42は、PD_ADDシグナルをプリフェッチメモリ44に送る。その他の例では、上記2例の操作は、両方とも機能を提供することができる。1つの機能提供では、このPD_ADDシグナルは、検査のためにメモリ資源40に送られ、もしも、検査がミスを示す場合、プリフェッチが開始する。
ある状況下、メモリ資源40への送付が機能提供されているとしても、このような送付は、好ましくはプリフェッチメモリ44へのPD_ADDの送付の追加であると理解する必要がある。前に説明したように、例えば、シグナルに関する情報がメモリ資源40に存在しない場合、最初にPD_ADDシグナルがメモリ資源40に送られ、続いてプリフェッチメモリ44に送られる。更に、このPD_ADDシグナルは、メモリ資源40への送付とは関連しないタイミングで、例えば同時にあるいは先に、プリフェッチメモリ44に送られる。このような全ての場合で、PD_ADDシグナルは、直接そこにアクセスすることによりプリフェッチメモリ44から廃棄可能な状態で提供されることが好ましく、このような廃棄はプリフェッチメモリのキューに穴を残さないか、さもなければプリフェッチメモリ44のその他の内容物の邪魔にならないような機能を提供するのが好ましい。このような廃棄は、中でも、シグナルに関する情報がメモリ資源40内に存在すること、及びまたは演算処理装置12が特定のプリフェッチPD_ADDシグナルに関する操作の完了を進めることをメモリ資源40が判断した場合であると考えられる。
このセレクタ42は、好ましくは、PD_ADDシグナルの送付を制御するキャッシュ制御装置46と一緒に、非マルチプレクサとして提供される。しかしながら、このセレクタ42は別の場合は特定の機能のために提供することも可能である。例として、このセレクタ42は、上で説明したように、PD_ADDシグナルをプリフェッチメモリ44とマルチプレクサ48とに同時に送付するための非マルチプレクサ以外の組み合わせ論理回路で機能を提供しても良い。
このプリフェッチメモリ44はマルチプレクサ48に接続される。このプリフェッチメモリ44は、選択された機構に選択された深さでプリフェッチアドレスを格納する。好ましくは、このプリフェッチメモリ44は、16個のアドレスの深さまでの機能をサポートし、キュー構造を持つことを提供する。
このプリフェッチメモリ44は、好ましくは、アドレスに関する情報が既にメモリ資源40に存在するか否か(「イシュー・スクリーニング」)について入ってくるアドレスを検査する機能を提供する。ヒットした場合、このキャッシュ制御装置46は、そこでMR_STATUSシグナルを介して管理され、キャッシュ制御装置46の制御下、このプリフェッチメモリ44は、ロックされたアドレスを廃棄する。もしも、MR_STATUSシグナルがミスを示す場合、キャッシュ制御装置46の制御下、このプリフェッチメモリ44は、キューの最後のアドレスを格納する。(もしも、プリフェッチングキャッシュメモリ38が、セレクタ42からのPF_ADDを介してプリフェッチメモリのアドレスを受け取る前にイシュー・スクリーニングの機能を提供する場合、イシュー・スクリーニングはプリフェッチメモリにおいて実行されないほうが好ましい。)このプリフェッチメモリ44は、好ましくは、キューの先頭の各アドレス(例えば、挿入の直前)に関して検査する機能と、アドレスに関する情報がメモリ資源40内に存在するか否かを検査する機能を提供する。もしも、ヒットした場合、このキャッシュ制御装置46は、そこでMR_STATUSシグナルを介して管理され、キャッシュ制御装置46の制御下、このプリフェッチメモリ44はアドレスを廃棄する(挿入スクリーニング)。もしも、ミスした場合、またキャッシュ制御装置46の制御下、関連する情報のプリフェッチのために、ADD_INPUTシグナル内のアドレスをメモリ資源40に送る。
1つの実施例では、このプリフェッチメモリ44は、その内容物のオンゴーイング・スクリーニングの機能が提供されると考えられる。例としては、このプリフェッチメモリ44は、好ましくは、プリフェッチメモリ44内にプリフェッチアドレスが係属中に、メモリ資源40に存在するようになったプリフェッチアドレス(内容物が置換方式によって更新されるように、キャッシュアクセス操作のため)を廃棄する機能を提供する。その他の例では、このプリフェッチメモリ44は、好ましくは、プリフェッチメモリ44からアドレスの挿入がされる前に、演算処理装置によって実行される操作に関連するプリフェッチアドレスの廃棄する機能を提供する(例えば、全部結合できるプリフェッチメモリ44を使用するように、キャッシュアクセス操作のアドレスとプリフェッチメモリ44に保持されるアドレスを比較する)。その他の実施例では、上で説明したオンゴーイング・スクリーニングの機能を提供せずに、このプリフェッチメモリ44は、その内容物を保持するものと考えられている。この実施例では、時々、アドレスがプリフェッチメモリ44に格納され、情報が一時的にメモリ資源に存在するとしても、プリフェッチ情報を提供する(例えば、この情報はキャッシュアクセス操作の部分としてフェッチされ、しかし、その後、リースト−リセントリィ−ユースト(least-recently-used)置換方式が作用する状態での置き換えのために除去される)。しかしながら、もしも、演算処理装置12がプリフェッチに関する操作を終了させた場合、プリフェッチのアドレスは挿入されるよりもむしろ廃棄されたほうが好ましい。
オンゴーイング・スクリーニングと挿入スクリーニングは、どんな実施例でもすべて機能を提供できるが、本発明の原理から外れることなく、これらのスクリーニングのどれか1つまたは全て、またはこれの組み合わせは省略が可能である。
このプリフェッチメモリ44は、好ましくは、メモリ44が満杯の場合に受け取られる発行されたアドレスを廃棄する機能を提供する。この場合、廃棄は、好ましくは、PD_ADDシグナルを介して次のアドレスを受け取ることによって開始する。このような機能提供は、廃棄の前にプリフェッチメモリ44のスペースを空けさせることとなり、アドレスは廃棄されるよりむしろメモリ44に送られる。例えば、オンゴーイングスクリーニング操作の結果として、空きスペースが生じるかもしれない。
このマルチプレクサ48は、各々SELECT_ADDシグナル、PF_ADDシグナルを受け取るために、セレクタ42及びプリフェッチメモリ44に接続される。キャッシュ制御装置46の制御下、このマルチプレクサ48は、ADD_INPUTシグナルをメモリ資源40に送付する場合、この2つの信号から選択する。このメモリ資源40は、関連するアドレスのタグのように、中でも上位階層メモリから複製された情報を格納するために構成される。この情報は、好ましくはデータを含むものである。しかしながら、本発明の原理から外れることなく、この情報は命令及びデータ/命令を含んでも良いと理解すべきである。この情報は、それぞれ結合60及び62を介して、演算処理装置12及び上位階層メモリ18からメモリ資源40内に受け取る。
図3に示すように、このメモリ資源40は、好ましくはフェッチユニット50、コピーバックユニット52、タグ/データRAM54及びコンパレータ56を含むものである。このタグ/データRAM54は、マルチプレクサ48によって選択されたアドレス情報を含むADD_INPUTシグナルを受け取る(即ち、キャッシュアクセス操作用のSELECT_ADDシグナルまたはキューされたプリフェッチ操作用のPF_ADDシグナル)。ADD_INPUTシグナルに応答して、タグ/データRAM54は、格納された情報に関連する1つまたは複数のタグを含むTAGシグナルを出力する。このTAGシグナルは、コンパレータ56に提供される。このコンパレータ56は、TAGシグナルとADD_INPUTシグナルを比較し、HITシグナルを生成し、HITシグナルはヒットかミスかを示す。このHITシグナルは、制御装置46がその制御操作を実行できるように、中でもキャッシュ制御装置46にMR_STATUSシグナルの部分として応用される(例えば、プリフェッチ操作やキャッシュアクセス操作等を制御するように、ヒットしたか否かを演算処理装置12に示すこと)。
このタグ/データRAM54は、MR_STATUSシグナル、TDR_STATUSシグナルの部分として、キャッシュ制御装置46に提供する。このTDR_STATUSシグナルは、タグ/データRAM54がプリフェッチ操作に使用可能か否かを含むRAM54の状態を示す。プリフェッチアドレスは、TDR_STATUSシグナルがRAM54について使用不可能と示す場合、好ましくは、ADD_INPUTシグナルとしては挿入されない。
コピーバックユニット52は、好ましくは、プリフェッチングキャッシュメモリ38がコピーバック操作を機能提供する場合に提供されるものである。このコピーバックユニット52は、上位階層メモリ18の関連するブロックを更新するために修正されたキャッシュブロックをバッファに保留し、特にキャッシュミスが発生した場合にこのような修正されたキャッシュブロックはタグ/データRAM54内で置き換えられる。このコピーバックユニット52は、好ましくは1つまたは複数のバッファを含み、各バッファは1つのキャッシュブロックが入る大きさであり、接続62を介して上位階層メモリと通信する。このコピーバックユニット52は、好ましくはキャッシュ制御装置に接続する:制御線47を介して制御シグナルを受け取り、CBU_STATUSシグナルを介してキャッシュ制御装置46に状態シグナルを提供する(CBU_STATUSシグナルはMR_STATUS信号の部分を含む)。
このフェッチユニット50は、タグ/データRAM54に関してプリフェッチを実行するように、好ましくはタグ/データRAM54及び上位階層メモリ18の間に配置される。このフェッチユニット50は接続62を介して上位階層メモリと通信する。このフェッチユニット50は、キャッシュ制御装置46にも接続される:制御線47を介して制御シグナルを受け取り、FU_STATUSシグナルを介して状態シグナルを提供する。このFU_STATUSシグナルは、MR_STATUSシグナルの部分を含むものであり、ユニット50がプリフェッチ操作を実行可能か否かを含むフェッチユニット50の状態をキャッシュ制御装置46に示す。FU_STATUSシグナルがフェッチユニット50が利用不可能を示す場合、アドレスは、好ましくはADD_INPUTシグナルとして挿入されない。しかしながら、挿入が発生し、フェッチユニット50が利用不可能な状況では、挿入されたアドレスは、好ましくは廃棄される。
1つのみのフェッチユニット50が示されるが、このような複数のユニット50が、好ましくは使用されると理解すべきである。複数のフェッチユニット50では、1つのまたは複数のこのようなフェッチユニット50が、好ましくはキャッシュミスした場合の取り扱いを含むキャッシュアクセス操作を実行するための専用となる。複数のフェッチユニット50では、このような1つのまたは複数のユニット50プリフェッチ操作をするために専用とされると理解すべきである。1つの実施例では、4つのフェッチユニット50は、このようなユニット50の2つはキャッシュアクセス操作の専用として、2つは必要に応じてキャッシュアクセス操作もプリフェッチ操作も取り扱えるように意図されている。
図4に示すように、プリフェッチングキャッシュメモリ38の実施例は、シャドウ−タグRAM70及びプリフェッチ命令のアドレスのスクリーニングに接続するコンパレータ72を使用することが意図される。このシャドウ−タグRAM70は、(a)そこに格納されるタグについての更新を受け取るために、タグ/データRAM54に接続され(b)また、タグ/データRAM54に情報が存在するか否かを示す状態シグナル「STR_STATUS」を提供するために、キャッシュ制御装置46にも接続される。タイプとスクリーニングの供給源に基づく、このシャドウ−タグRAM70は、スクリーニングされるアドレスを受け取るために接続され、このような受け取りはADDRESSシグナルの形態である。スクリーニングの発行では、この結合はPD_ADDシグナルを受け取るためである:(i)直接、演算処理装置12から、または(ii)セレクタ42を介して、PF_ADD、ADD_INPUT、あるいはSELECT_ADDシグナルとして(iii)そこでアドレスがロックされた後に、プリフェッチメモリ44からのシグナルを受け取るために、または(iv)これ以外。オンゴーイング・スクリーニングでは、この結合は、プリフェッチメモリ44に存在するアドレスを受け取るためであり、好ましくは、直接そこから読むためである。挿入スクリーニングでは、タグ/データRAM54及びコンパレータ56の使用が有利な場合、この結合を省略することも可能である。しかしながら、もしも、プリフェッチされた情報が、タグ/データRAM54の事前に選択され、制限された部分に格納される場合には、シャドウ−RAM54の使用が望ましいこともあり、このような場合、スクリーニングをより効率的とすることも可能である(実際、このような構成では、小さいサイズのシャドウ−RAM70とすることができ、キャッシュロッキング機構との関連性を改善できる)。
このシャドウ−タグRAM70及びコンパレータ72は、様々な形で提供することが可能である。1つの提供の形態は、シャドウ−タグRAM70及びコンパレータ72は、メモリ資源40の部分からなり、コンパレータ72から提供されるSTR_STATUSシグナルは、MR_STATUSシグナルの部分からなる。しかしながら、RAM70及びコンパレータ72は、本発明の原理から外れること無く、これ以外の形態でも提供可能であると理解すべきである。
図5、6を参照すると、本発明による、プリフェッチングに関する発行及び挿入操作の実施例がそれぞれ示されている。図5に示すように、ステップ100において、演算処理装置12はプリフェッチ命令を発行し、ステップ102で、この命令のアドレスをスクリーニングして、アドレスと関連する情報がメモリ資源40に存在するか否かを判断する。もしも、ヒットした場合、ステップ104で、このアドレスは廃棄される。このステップ104では、ヒットされた情報をメモリ資源40内に強制的に保有させるのが好ましい。このような保有は、好ましくは、情報が演算処理装置12によってアクセスされる時まで引き伸ばされる。もしも、ロックが可能であれば、幾つかのまたは全ての情報がロック可能とされることが望ましい。もしも、ロックが可能でないなら、当該情報に関しては置換動作が行なわれないように調整することが望ましい。例として、アクセスされたのが最も古い情報から置き換える方式では、プリフェッチ命令の情報に最も新しくアクセスされたことを表す印を付けるように方式を更新するのが望ましい。
もしも、ステップ102でミスになった場合、ステップ106で、資源が即座にプリフェッチすることが可能か否かを判断する。例えば、この判断をするためには、タグ/データRAM54及びフェッチユニット50の状態を観察するのが望ましい。タグ/データRAM54のTDR_STATUSシグナル及びフェッチユニット50のFU_STATUSシグナルのそれぞれによって、このような状態が示される。もしも、これらのシグナルが、コンポーネントはそれぞれ使用可能であると示した場合、操作はステップ108に進行し、そこでプリフェッチメモリ44が空か否かを判断する。もしも、メモリ44が空であれば、現在のアドレスに関するプリフェッチが、ステップ110で開始する。しかしながら、前に説明しているが、本発明の原理を外れることなく、この発行プロセスはステップ106、108、110を省略することができる。
もしも、プリフェッチメモリ44が空でないか、あるいはタグ/データRAM54またはフェッチユニット50が利用可能でない場合、そこでプリフェッチは開始しない。代わりに、操作はステップ112に進行し、そこでプリフェッチメモリ44は満杯か否かを判断する。もしも、このメモリ44が満杯の場合は、ステップ114でこのアドレスは廃棄される。もしも、メモリ44が満杯でなければ、ステップ116でこのアドレスはプリフェッチメモリ44に格納される。
ステップ118−122は、格納されたアドレスのオンゴーイング・スクリーニングを図示するものである。ステップ118では、格納されたアドレスが古くなっているか否かを判断する、即ち、アドレスに関する情報がタグ/データRAM54に存在するようになったか否か、あるいは、演算処理装置12がアドレスに関する処理を実行したか否かを判断する。もしも、このアドレスが古い場合、ステップ120では、このアドレスはプリフェッチメモリ44から廃棄され、ステップ122では、プリフェッチメモリ44において、この廃棄はプリフェッチメモリ44に穴を残さないものと認識されている。その後、操作は、その他のアドレスについてのスクリーニングを続行するためにステップ118に返される。
もしも、アドレスが古くない場合、ステップ118は、その他の格納されたアドレスが古いか否かを判断するために繰り返され、最後には全てのアドレス等についての判断を繰り返す。図6は、プリフェッチメモリ44からのアドレスの挿入に関連する操作を図示する。ステップ200では、資源がプリフェッチに利用可能か否かを判断する。例えば、このような判断をするためには、タグ/データRAM54及びフェッチユニット50の状態を観察するのが望ましい。タグ/データRAM54のTDR_STATUSシグナル及びフェッチユニット50のFU_STATUSシグナルのそれぞれによって、このような状態が示される。これらのシグナルが、コンポーネントはそれぞれ使用可能であると示すまで、操作はその他のステップに進行しない。しかしながら、両方のコンポーネントが使用可能になると、操作はステップ204に進行し、そこでプリフェッチメモリ44が挿入用のアドレスを含んでいるか否かを判断する。
もしも、ステップ204でアドレスが見つからない場合、操作はステップ200に返される。もしも、アドレスが見つかった場合、操作はステップ206に進行し、そこでアドレスに関連する情報がメモリ資源40内に存在するか否かを判断する。もしも、ヒットした場合、操作はステップ208に進行し、そこでこのアドレスはプリフェッチメモリ44から廃棄され、ステップ210では、このプリフェッチメモリ44において、廃棄はメモリ44に穴を残さないものと認識されている。もしも、ステップ206でミスした場合、操作は(i)ステップ212に進行し、そこでこのアドレスはメモリ資源40に挿入され、そして(ii)ステップ214に進行し、そこでこのメモリ資源44は更新される。この更新は、アドレスに間連する情報のフェッチを含むものである(例えば、フェッチユニット50の活動状態にさせること)。この更新は、典型的には、実施例に依存して、例えば置換方式の実行を含むその他のタスクをも含むものであり(例えば、キャッシュブロックについて、一番最近に使われたという方式でフェッチした情報の置き換え、設置するため)、もしも、コピーバック操作が機能提供されている場合、上位階層メモリ18に修正されたキャッシュブロックを複製して戻すことになる。
もしも、ロックが機能提供されている場合、操作はステップ210及び214からステップ216に進行する。ステップ216は決定ブロックであり、プリフェッチされる情報の全てまたはその一部をロックする場合を含めて、種々の状態でのロックを決める。
どのような場合でも、操作はステップ200に返される。
図5及び図6のこのステップは、本発明の原理から外れること無く示された以外の順番でも実行可能である。例として、図5、6のステップは同時に実行可能である。他の例では、図5、6のステップは組み合わせることが可能である:その他のアドレスが挿入可能なときに、もしもアドレスが同時に記憶装置に到着した場合、この記憶装置の操作は、挿入操作に優先して完了させることが望ましい。
本発明は好適実施例との間連で説明してきたが、上で概説した範囲内での変更は当業者には明白なものであると理解すべきであり、そして本発明は好適実施例に限定するものではなく、これらの変更も包含することを意図するものである。
Claims (4)
- 情報のプリフェッチ機能を提供するコンピュータ装置であって、
プリフェッチアドレス及びキャッシュアクセスアドレスを含むアドレスを発行する演算処理装置と、
この演算処理装置に、発行されたアドレスを受け取るように結合された記憶システムであって、情報記憶用の上位階層メモリへの接続を含むとともに、前記プリフェッチアドレス及びキャッシュアクセスアドレスと関連して前記上位階層メモリから複製された情報を格納するためのキャッシュメモリを含む記憶システムと、
前記演算処理装置および記憶システムと関連し、前記演算処理装置からのプリフェッチアドレスを格納するためのプリフェッチメモリを含み、格納されたプリフェッチアドレスの注入管理を行ってプリフェッチ操作をキャッシュアクセス操作と連携させるプリフェッチ資源とを具え、
プリフェッチアドレスと関連する情報がメモリ資源に既に存在するかどうかについてプリフェッチアドレスを試験する機能を提供するように構成されたコンピュータ装置において、
前記プリフェッチメモリは、当該プリフェッチメモリ内に係属中のプリフェッチアドレスと関連する情報が前記メモリ資源に存在するようになったら、当該プリフェッチアドレスを当該プリフェッチメモリから破棄することを特徴とするコンピュータ装置。 - 前記キャッシュメモリから前記キャッシュメモリの使用可能性を示す第2シグナルを受け取ってプリフェッチアドレスと関連する情報をプリフェッチするキャッシュ制御装置を含む、請求項1に記載するコンピュータ装置。
- 前記プリフェッチ資源は、前記プリフェッチメモリ及び前記メモリ資源に接続されたセレクタを含み、このセレクタは前記プリフェッチメモリにプリフェッチアドレスを送り、前記メモリ資源にキャッシュアクセスアドレスを送る、請求項2に記載するコンピュータ装置。
- 複数のフェッチ装置を含み、それらの少なくとも1つのフェッチ装置はプリフェッチ操作またはキャッシュアクセス操作の1つに専用とする、請求項3に記載するコンピュータ装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/961,963 | 1997-10-31 | ||
US08/961,963 US6134633A (en) | 1997-10-31 | 1997-10-31 | Prefetch management in cache memory |
PCT/IB1998/001479 WO1999023564A1 (en) | 1997-10-31 | 1998-09-24 | Prefetch management in cache memory |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001507845A JP2001507845A (ja) | 2001-06-12 |
JP2001507845A5 JP2001507845A5 (ja) | 2006-02-02 |
JP4298800B2 true JP4298800B2 (ja) | 2009-07-22 |
Family
ID=25505240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52577399A Expired - Fee Related JP4298800B2 (ja) | 1997-10-31 | 1998-09-24 | キャッシュメモリにおけるプリフェッチ管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6134633A (ja) |
EP (1) | EP0950222B1 (ja) |
JP (1) | JP4298800B2 (ja) |
KR (1) | KR100593582B1 (ja) |
DE (1) | DE69841640D1 (ja) |
WO (1) | WO1999023564A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3439350B2 (ja) * | 1998-10-02 | 2003-08-25 | Necエレクトロニクス株式会社 | キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置 |
US6314494B1 (en) * | 1999-04-15 | 2001-11-06 | Agilent Technologies, Inc. | Dynamically size configurable data buffer for data cache and prefetch cache memory |
US6651088B1 (en) * | 1999-07-20 | 2003-11-18 | Hewlett-Packard Development Company, L.P. | Method for reducing coherent misses in shared-memory multiprocessors utilizing lock-binding prefetchs |
JP3922844B2 (ja) * | 1999-09-02 | 2007-05-30 | 富士通株式会社 | キャッシュtag制御方法及びこの制御方法を用いた情報処理装置 |
JP2001125829A (ja) * | 1999-10-28 | 2001-05-11 | Internatl Business Mach Corp <Ibm> | コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法 |
JP4680340B2 (ja) * | 1999-12-14 | 2011-05-11 | 独立行政法人科学技術振興機構 | プロセッサ |
US6643743B1 (en) * | 2000-03-31 | 2003-11-04 | Intel Corporation | Stream-down prefetching cache |
WO2002061574A1 (en) * | 2001-01-30 | 2002-08-08 | Koninklijke Philips Electronics N.V. | Computer instruction with instruction fetch control bits |
US6886091B1 (en) | 2001-06-29 | 2005-04-26 | Koninklijke Philips Electronics N.V. | Replacing VLIW operation with equivalent operation requiring fewer issue slots |
US6851010B1 (en) | 2001-06-29 | 2005-02-01 | Koninklijke Philips Electronics N.V. | Cache management instructions |
US6889242B1 (en) | 2001-06-29 | 2005-05-03 | Koninklijke Philips Electronics N.V. | Rounding operations in computer processor |
US6848030B2 (en) | 2001-07-20 | 2005-01-25 | Freescale Semiconductor, Inc. | Method and apparatus for filling lines in a cache |
WO2003055294A1 (en) * | 2001-12-21 | 2003-07-10 | UNIVERSITé LAVAL | Plant pot and soil watering system |
KR100546403B1 (ko) * | 2004-02-19 | 2006-01-26 | 삼성전자주식회사 | 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러 |
JP4504134B2 (ja) * | 2004-08-16 | 2010-07-14 | 富士通株式会社 | システム制御装置、投機フェッチ方法および情報処理装置 |
US7587580B2 (en) | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
US7840761B2 (en) * | 2005-04-01 | 2010-11-23 | Stmicroelectronics, Inc. | Apparatus and method for supporting execution of prefetch threads |
US7886112B2 (en) * | 2006-05-24 | 2011-02-08 | Sony Computer Entertainment Inc. | Methods and apparatus for providing simultaneous software/hardware cache fill |
US8510509B2 (en) * | 2007-12-18 | 2013-08-13 | International Business Machines Corporation | Data transfer to memory over an input/output (I/O) interconnect |
US7958314B2 (en) * | 2007-12-18 | 2011-06-07 | International Business Machines Corporation | Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources |
US7925865B2 (en) * | 2008-06-02 | 2011-04-12 | Oracle America, Inc. | Accuracy of correlation prefetching via block correlation and adaptive prefetch degree selection |
US8244978B2 (en) * | 2010-02-17 | 2012-08-14 | Advanced Micro Devices, Inc. | IOMMU architected TLB support |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US9201796B2 (en) * | 2012-09-27 | 2015-12-01 | Apple Inc. | System cache with speculative read engine |
US9223705B2 (en) * | 2013-04-01 | 2015-12-29 | Advanced Micro Devices, Inc. | Cache access arbitration for prefetch requests |
US9218291B2 (en) | 2013-07-25 | 2015-12-22 | International Business Machines Corporation | Implementing selective cache injection |
JP6252348B2 (ja) * | 2014-05-14 | 2017-12-27 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US10387320B2 (en) | 2017-05-12 | 2019-08-20 | Samsung Electronics Co., Ltd. | Integrated confirmation queues |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4583165A (en) * | 1982-06-30 | 1986-04-15 | International Business Machines Corporation | Apparatus and method for controlling storage access in a multilevel storage system |
US5357618A (en) * | 1991-04-15 | 1994-10-18 | International Business Machines Corporation | Cache prefetch and bypass using stride registers |
JP2744882B2 (ja) * | 1993-01-15 | 1998-04-28 | インターナショナル・ビジネス・マシーンズ・コーポレイション | キューにより命令の実行を制御する装置及び方法 |
TW228580B (en) * | 1993-10-01 | 1994-08-21 | Ibm | Information processing system and method of operation |
US5634025A (en) * | 1993-12-09 | 1997-05-27 | International Business Machines Corporation | Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units |
US5649144A (en) * | 1994-06-13 | 1997-07-15 | Hewlett-Packard Co. | Apparatus, systems and methods for improving data cache hit rates |
JPH08263424A (ja) * | 1995-03-20 | 1996-10-11 | Fujitsu Ltd | コンピュータ装置 |
US5778435A (en) * | 1996-05-30 | 1998-07-07 | Lucent Technologies, Inc. | History-based prefetch cache including a time queue |
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 |
US5854911A (en) | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Data buffer prefetch apparatus and method |
JP3554208B2 (ja) * | 1998-10-29 | 2004-08-18 | キヤノン株式会社 | 現像剤供給装置 |
-
1997
- 1997-10-31 US US08/961,963 patent/US6134633A/en not_active Expired - Lifetime
-
1998
- 1998-09-24 JP JP52577399A patent/JP4298800B2/ja not_active Expired - Fee Related
- 1998-09-24 EP EP98941658A patent/EP0950222B1/en not_active Expired - Lifetime
- 1998-09-24 DE DE69841640T patent/DE69841640D1/de not_active Expired - Lifetime
- 1998-09-24 WO PCT/IB1998/001479 patent/WO1999023564A1/en active IP Right Grant
- 1998-09-24 KR KR1019997005941A patent/KR100593582B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2001507845A (ja) | 2001-06-12 |
EP0950222A1 (en) | 1999-10-20 |
US6134633A (en) | 2000-10-17 |
KR100593582B1 (ko) | 2006-06-28 |
EP0950222B1 (en) | 2010-04-28 |
DE69841640D1 (ja) | 2010-06-10 |
WO1999023564A1 (en) | 1999-05-14 |
KR20000069797A (ko) | 2000-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4298800B2 (ja) | キャッシュメモリにおけるプリフェッチ管理 | |
US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
US5958040A (en) | Adaptive stream buffers | |
US6317811B1 (en) | Method and system for reissuing load requests in a multi-stream prefetch design | |
US6339813B1 (en) | Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory | |
EP0667580B1 (en) | Cache System for a memory | |
KR100240912B1 (ko) | 데이터 프리페치 장치 및 시스템, 캐시 라인 프리페치 방법 | |
US6192458B1 (en) | High performance cache directory addressing scheme for variable cache sizes utilizing associativity | |
US5555392A (en) | Method and apparatus for a line based non-blocking data cache | |
KR100567099B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
CN101446923B (zh) | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 | |
US6212605B1 (en) | Eviction override for larx-reserved addresses | |
EP1399823B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
US7447845B2 (en) | Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
EP0817067A2 (en) | Integrated processor/memory device with victim data cache | |
JP4218820B2 (ja) | ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体 | |
EP0817066A2 (en) | Integrated processor/memory device with full width cache | |
US6157980A (en) | Cache directory addressing scheme for variable cache sizes | |
US20060036811A1 (en) | Method for software controllable dynamically lockable cache line replacement system | |
JPH09190382A (ja) | コンピュータメモリシステムの競合キャッシュ | |
US20070288694A1 (en) | Data processing system, processor and method of data processing having controllable store gather windows | |
US6449698B1 (en) | Method and system for bypass prefetch data path | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
US5471602A (en) | System and method of scoreboarding individual cache line segments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050922 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050922 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080404 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080507 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080423 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080806 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090121 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090407 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090416 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130424 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130424 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130424 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |