JPS60500187A - データ処理システム - Google Patents
データ処理システムInfo
- Publication number
- JPS60500187A JPS60500187A JP58500671A JP50067182A JPS60500187A JP S60500187 A JPS60500187 A JP S60500187A JP 58500671 A JP58500671 A JP 58500671A JP 50067182 A JP50067182 A JP 50067182A JP S60500187 A JPS60500187 A JP S60500187A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- line
- storage
- main memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/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/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
データ及び命令を記憶するために別個のキャッシュ記憶を含む階層記憶システム
〔技術分野〕
本発明は、それぞれ命令記憶用およびデータ記憶用の別個のキャッシュを有する
。独特のキャッシュ・アーキテクチャを用いた階層記憶構成に関するものである
。どの階層記憶構成は、メモリ・アクセスによるCPUの待ち時間をできるだけ
減らすことが特に望まれる、高速電子計算システム用に特 −に適している。
現代の高速電子データ処理システムは、処理装置あるいはCPUと階層記憶シス
テムとから構成されることが多い。後者は、サイクル・タイムが処理装置のサイ
クル・タイムよりも、ずっと長い相対的に大容量で低速のメモリと1通常はキャ
ッシュと呼ばれているサイクル・タイムが処理装置のサイクル・タイムに匹敵す
る、相対的にはるかに小容量で高速のメモリとを含んでいる。合理的なコストで
実効メモリ・アクセス時間を?ti、らすためのこのようなキャッシュ・メモリ
・システムは、当技術分野でよく知られている。CPUが情報を必要とする時、
情報は主記憶装置から読取られ、処理装置に与えられ、キャッシュ記憶に書込ま
れる。その後に同じ情報を処理装置が必要とする場合には、その情報がキャッシ
ュがら直接読取られて、普通なら主記憶装置を読取る際に生じるはずの時間遅延
を避けることができる。
しかし、キャッシュ記憶装置が一杯の場合には、必要な情報は主記憶装置から得
なければならず、この新しい情報を記憶するためのキャッシュ中の記憶位置が識
別されなければならない。しかしながら、古い記憶位置が新しいデータの記憶に
使用できるようになる前に、現在キャッシュ中にあるデニタがプログラムによっ
て変更されているかどうかの判定が行われなければならず、変更されている場合
には、(必要ならば)主記憶装置が現在のデータの状態を適切に反映するよ・・
うに、データが主記憶装置に書戻されなければならない。現在の大部分のキャッ
シュ・アーキテクチャは、そのような書戻しを必要としているが1.その変更さ
れた形のデータが再びプログラムによって必要とされることがない場合には、あ
るいはデータが決して変更されない場合には、この書戻し機能を削除すれば、明
らかに有利であろう。
既存の多くのキャッシュ・アーキテクチャにみられるもう1つの共通な特徴は、
それらがシステム・ソフトウェアに対して基本的に透明なことである。即ち、コ
ンパイラ、オペレーティング・システム等を含めたシステム・ソフトウェアは、
キャッシュが存在しないかのようにメモリの取出しおよび記憶の動作を行う。こ
のようなシステムでは、キャッシュのハードウェアが本質的にCPUと主記憶装
置との間に介在する。
かかるシステムでは、キャッシュの存在によって実効メモリ・アクセス時間が大
幅にスピード・アップされるが、かかる高速の記憶装置から得られるはすの利益
の多くは、使用されるアーキテクチャおよび規約のせいで失われる。
ACM 5IGPLAN Noしice、Vol、17. No、4. Apr
il、I’982. pp、39−47所載のGeorge Radin によ
る”The 801 Mj、nicompuLer ”と題する論文は、本発明
の技術思想を利用した、命令用1およびデータ用の別個のキャッシュ記憶を含む
階層記憶構成を組込んだ実験的なミニコンピユータの概説である。
米国特許第41.4223’4号、および:rBM TechnicalDis
closure Bull、ieシin 、Vol、18 N(112,May
1976、および米国特許第405684.4号は、一般にキャッシュ記憶を
含む階層記憶構成を開示しているが、それらのキャッシュは別個のデータ部およ
び命令部に分割されてもいなければ、メモリ・システムの動作を制御するための
プログラムにアクセス可能な特別の制御フィールドを含んでもいない。
米国特許第41.61024号および第4195342号は、当技術分野で一般
に知られているように、CPUがらキャッシュへの直接のインターフェースを含
むFDPシステムを記載している。
米国特許第4070706号は、キャッシュがデータ部とアドレス部(ディレク
トリではない)に分割されたキャッシュ記憶システムを開示しているが、このキ
ャッシュはデータ部と命令部には分割されていない。
米国特許第4245304号は動作を2つの半サイクルに分け、キャッシュから
の命令のアクセスまたはキャッシュへのデータの書込みが同じ半サイクル中に行
えるようにした、スプリット・キャッシュ・システムについて記載している。
この特許は、キャッシュ/主記憶装置の動作を制御するためのキャッシュ・ディ
レクトリ中の特殊な制御ビットについては開示も示唆もしていない。
米国特許第4075.686号は、メモリ・アクセス動作の際に特定の命令ビッ
トのコーディングに従ってキャッシュを選択的にバイパスし、それによっである
種類の動作の実行時間を短縮する、キャッシュ記憶システムについて記載してい
る。
米国特許第4142234号は、キャッシュ・ディレクトリの特定の質問を除去
して、スペックのサイズを減少させた、キャッシュ・システムを開示している。
米国特許第3618041号およびIBM TechnicalDisclos
ure Bulleしin、Vol、22 N(111,April 1980
. p、5183は、キャッシュ・サブシステムを別個の命令部とデータ部に分
割し、2つの別個のキャッシュのオーバーラツプ動作のために、複雑なオペレー
ティング・システムのサポートを与える、基本的な概念を大まかに開示している
。
米国特許第4197580号は、特殊な有効ビットおよびある種の読取り一書込
み動作制御用の「タグ」を用いた、単一キャッシュ・サブシステムを大まかに開
示している。このビットは、不必要な主記憶サイクルではなく、不必要なキャッ
シュ・サイクルを避けるために使われるが、本発明は不要な主記憶サイクルを避
けることを意図したものである。
本発明の目的は大容量の主記憶装置ならびに、それぞれデータおよび命令の記憶
専用の2つの別個の部分に分割された小容量のキャッシュ記憶装置を有する、改
良された階層記憶構成を提供することである。
本発明によれば、かかるキャッシュ記憶構成はキャッシュ・ディレクトリ中に各
ラインについてキャッシュの動作に影響を与える少なくとも1つの特殊な制御ビ
ットを有する。
本発明によれば、かかるキャッシュ記憶装置は、キャッシュ・ライン置き換え過
程において用いられる少なくとも1つの特殊な制御ビットを有する。
本発明によれば、かかるキャッシュ記憶システムは、データ・キャッシュ中のラ
インが当初そこに記憶されて以来、変更されたかどうかを制御ビットが指示する
。
本発明によれば、所定のキャッシュ・ラインが有効か否かを指示するような制御
ビットが提供される。
本発明によれば、主記憶に対する照会を必要とすることなく、スクラッチ・パッ
ド記憶等のために一時的データ記憶スペースが与えられるようなキャッシュ・サ
ブシステムが提供される。
本発明によれば、全てのマス制御がシステム・ソフトウェアによって制御され、
データ・キャッシュに記憶されたデ−夕に対して変更が加えられたときに命令キ
ャッシュに通報するための制御装置が必要でないようなキャッシュ・サブシステ
ムが提供される。
本発明の目的は、一般に大容量で比較的低速の主記憶装置および遥かに小容量で
高速のキャッシュ記憶装置を含む、高速データ処理装置と共に用いられる階層記
憶システムによって達成される。キャッシュ記憶装置は、それぞれデータおよび
命令の記憶専用の2つの別個の部分から成る。各部分は、上記キャッシュに記憶
された各ラインに関する記憶位置を有する1つのキャッシュ・ディレクトリを備
えている。両ディレクトリのそれぞれの上記位置は、各々のキャッシュ・ライン
に記憶されているデータの主記憶アドレスの高位ビットを記憶するための手段、
および特定のラインへのメモリ・アクセスが要求される度に、上記キャッシュ記
憶装置の動作を制御するためのシステムによってセット可能な、特殊制御ビット
を記憶するための手段を有する。上記のどちらのキャッシュ・ディレクトリも、
キャッシュ・ミスが生じた時に複数のキャッシュ・サブセット・ラインのどれが
置き換えられるべきかを指示するための制御ビットを各ディレクトリ・エントリ
に含んでいる。また、上記のどちらのディレクトリも特定のキャッシュ・ディレ
クトリ記憶位置によって指定される所定のキャッシュ・2ラインが無効である事
を示すための、複数の制御ビットを各記憶位置に含んでいる。また、データ・キ
ャッシュのためのキャッシュ・ディレクトリの各記憶位置は、記憶位置に記憶さ
れた特定のアドレスによって指定される所定のキャッシュ・ライン力5、以前の
CPU動作によって変更されたこと、およびキャッシュ中の特定のラインが置き
換えできるようになる前に、主記憶中の対応するラインが「書き戻しJ動作によ
って更新されなければならないことを示すための複数のビットをも含んでいる。
また、キャッシュ・ディレクトリ中に種々の、制御ビットをセットするための手
段ならびにCPUによるメモリ・アクセス動作とは独立に主記憶装置から特定の
キャッシュ・ラインをロードして記憶し、またその逆の動作を行うための手段が
キャッシュ制御システムに設けられている。
第1図は、本階層記憶構成の高レベル組織図である。
的ハードウェア構成の詳細を示す、第1図に記した記憶階層の機能ブロック図で
ある。
第3.1図および第3.2図は、キャッシュ・ディレクトリの基本要素およびそ
れに付随する制御要素を示す、データ・キャッシュ・アドレッシングの細部の機
能ブロック図である。
第4図は、異なる3種のキャッシュ・サイズ(4K、8K、および16K)の場
合の4キヤツシユ・アドレッシング、ディレクトリ項目およびキャッシュ・パラ
メータの図である。
第5図は、命令キャッシュ取出しハードウェアの動作中にキャッシュ・サブシス
テムで行われる動作をまとめたものである。
第6図は、データ・キャッシュ取出しハードウェアの動作中にキャッシュ・サブ
システムで行われる動作をまとめたものである。
第7図は、データ・キャッシュ記憶ハードウェアの動作中にキャッシュ・サブシ
ステムで行われる動作をまとめたものである。
第8図は、命令またはデータ・キャッシュ・ライン無効化の動作中にキャッシュ
・サブシステム・ハードウェアで行われる動作をまとめたものである。
第9図は、データ・キャッシュ・ライン・ロードの動作中にキャッシュ・サブシ
ステム・ハードウェアで行われる動作をまとめたものである。
第10図は、データ・キャッシュ・ライン・セットの動作中にキャッシュ・サブ
システム・ハードウェアで行われる動作をまとめたものである。
第11図は、データ・キャッシュ・ライン記憶の動作中にキャッシュ・サブシス
テム・ハードウェアで行われる動作をまとめたものである。
第12図は、「キャッシュ・ライン無効化」命令の実施中にキャッシュ・サブシ
ステム・ハードウェアで行われる動作の詳細な流れ図である。
第13図は、「命令キャッシュ取出し」命令の実施中にキャッシュ・サブシステ
ム・ハードウェアで行われる動作の詳細な流れ図である。
第14図は、丁データ・キャッシュ取出し」命令の実施中にキャッシュ・サブシ
ステム・ハードウェアで行われる動作の詳細な流れ図である。
第15図は、「データーキャッシュ記憶」命令の実施中にキャッシュ・サブシス
テム・ハードウェアで行われる動作の詳細な流れ図である。
第16図は、「データ・キャッシュ・ライン・ロード」命令の実施中にキャッシ
ュ・サブシステム・ハードウェアで行われる動作の詳細な流れ図である。
第17図は、「データ・キャシュ・ライン・セット」命令の実施中にキャッシュ
・サブシステム・ハードウェアで行われる動作の詳細な流れ図である。
第18図は、「データ・キャッシュ・ライン記憶」命令の実施中にキャッシュ・
サブシステム・バー1〜ウエアで行われる動作の詳細な流れ図である。
(a)記憶階層の一般的説明
きわめて高速に動作するシステム(CP U)の性能は、記憶サブシステムの性
能に大きく依存する。現在の技術によれば、アクセス・タイムが60ナノ秒のキ
ャッシュおよびアクセス・タイムが約115の速さの即ち約300ナノ秒のパラ
キンク記憶装置を製造することか可能である。記憶サブシステムの性能の改善は
、システム全体の性能の点で非常に良好な結果を与える。
本発明は、2つの領域の動作においてキャッシュ・サブシステムの性能を改善す
ることを目標とする。その第1はキャッシュ・ヒツト率を改善すること、即ちキ
ャッシュ中に見い出され、従って主記憶装置へのアクセスおよびそれに伴う遅延
を要しない記憶装置参照のパーセンテージを増加させることである。第2はキャ
ッシュ参照が失敗したときに、バッキング記憶装置からラインをアクセスする時
間を改善することである。
第1の目的について考えると、バッキング記憶装置への頻繁なアクセスは、プロ
グラムの正しい実行にとって必ずしも必要でないことがわかる。バッキング記憶
装置への頻繁なアクセスが行われるのは、ハードウェアがソフトウェアの意味を
推測できないためである。一般にこの不必要な参照は2つの類に分けられる。
第1はプログラムが新たな記憶のブロックを望むことである。これはプロシージ
ャが呼び出され一時的な(即ちAUT○MAT、ICの)記憶域を必要とすると
き、第ルベル割込みハンドラがレジスタ保存領域を必要とするとき、アクセス方
式がバッファを必要とするとき、またはプログラムがGETMAIN要求を出す
とき等に起こり得る。これら全ての場合に類似しているのは、プログラムが、記
憶装置の古い内容に対して関心を持たない事である。プログラムは、ただ、若干
の記憶域を望んでいるだけである。しかし、現行の大多数の記憶サブシステムは
、かかる記憶装置の最初の参照が起きたとき、バッキング記憶装置からキャッシ
ュへ古いラインを取り出す。そのようにするのは、(CPUとキャッシュとの間
のアクセスの単位はワードなので)最初の参照がせいぜいライン中の1つのワー
ドに対するものであり、そして後続す要としないという事をサブシステムが知る
ことができないためである。
第2の場合は、その内容が変更されていたとしてもプログラムがもはや記憶装置
のブロックを必要としない場合である。
これはプロシージャからのリターン時に一時的記憶域が解放されるとき、バッフ
ァが解放されるとき、一般にプログラムがFREE MAINを出すとき等に起
こり得る。変更されたラインのかかる書き戻しが不必要であると判定するための
機構を有する現在利用可能な記憶サブシステムは当技術分野で知られていない。
従って、ソフトウェアがそのような情報をハードウェア即ちキャッシュ制御機構
に与えるために用いることのできる(命令の形の)ハードウェアの基本的機構を
CPUが提供すると有利である。より具体的には、一般にキャッシュ動作のかか
るソフトウェア制御を可能にする、キャッシュ制御ハードウェアによって実行さ
れる2つの命令が定義される。それらは次のように定義される。
(1)データ・キャッシュ・ライン・セット(2)データ・キャッシュ・ライン
無効化これらの命令は制御プログラムによって出され、コンパイラによって適用
業務プログラムのために生成される。これらの命令は、かかる不必要なバッキン
グ記憶アクセスが起きないことを保証する。事実、プロシージャによって必要と
される一時的記憶域はスタックで管理され、またスーパーバイザ呼び出しさえも
要求に応じて呼び出されるので、ディスパッチされたプロセス・データが持続的
(即ち5RATIC的)であるか、またはスタックの深さがキャッシュ・サイズ
と比較して大きくならない限り、ディスパッチされたプロセス・データに対して
バッキング記憶装置がアクセスされることはない。従ってバッキング記憶は、2
次記憶装W(即ちファイル空間およびページング領域)によって演じられる役割
に類似した役割を演じ始める。かかる戦略を用いれば、割り込み時のCPUのア
クティビイティは「優先レベル割り込み」システムがそのハイ・エンドで実施す
るアクティビイティ以上ではない。この「優先レベル割り込み」システムも、そ
の内部レジスタを高速メモリ(即ちレジスタ空間)に記憶しなければならない。
前述のCPU構成の相違点は、そ九が高速メモリをこの目的専用にしないこと、
従って費用を節約できることである。かかるアーキテクチャのCPUは「再ディ
スパッチ」時にキャッシュ・ミスを見つけることができるが、それは経路の応答
クリティカル部分にはない。
大部分のシステムの場合と同様に、CPUは命令の実行を見越してキャッシュか
ら命令を取出す。CPUは「事前取出しバッファ」 (ここで開示するシステム
では3ワードのバッファが想定されている)を有し、CPUはそれを一杯に保つ
ように試みる。このバッファを一杯にするとキャッシュ・ミスが生じて、バッキ
ング記憶装置からの命令取出しを開始させることがある。しかし取出される命令
の前に、既にバッファ中に存在するがまだ実行されていない分岐命令があること
があり得る。本発明のアーキテクチャにおいては、CPUの事前取出し機構がO
Pコードを走査し、かかる不必要なバッキング記憶装置の取出しを禁止すること
が想定されている。
実際、この目的のために○Pコードを走査する間に、N。
○P(ノー・オペレーション)を認識して削除することもでき、従ってその実行
時間はで口になる。
本発明の教示にもとづいて記憶サブシステムの性能を改善する第2の方法は、バ
ンキング記憶装置のアクセスをより高速にすることに関係するものである。
データであれ命令であれキャッシュ・ミスを生じるワードが記憶サブシステムか
ら要求される時、要求されたワードで始まる必要なラインをめてバッキング記憶
装置がアクセスされる。次にこのワードはキャッシュをバイパスして直接CPU
に送られ、CPUが命令の実行を続ける間、ラインがキャッシュに記憶される。
従って、例えばキャッシュ・ミスを生じるロード命令を完了するのに340ナノ
秒(から命令がロードとオーバーラツプできる分を差し引いたもの)しかか命令
の事前取出し機構は本質的にデータ取出し機構に対して非同期的なので、キャッ
シュを命令用とデータ用の2つの別個の部分に分雛すると有利なことが判明した
。その結果、各キャッシュによってバッキング記憶装置を独立的にそしてオーバ
ーラツプ方式でアクセスすることが可能となる。この特徴は、実行中の特定の命
令ストリームが許す場合、アクセス速度を事実上2倍にすることができる。かか
る全体的キャッシュ・サブシステム・アーキテクチャを用いれば、他の利、点も
可能である。
このキャッシュ・サブシステムは、命令キャッシュ中の命令の変更が許されない
ように構成され定義されている。従って命令ラインの取出しは決して書戻しを必
要とせず、命令キャッシュ・ミス時の遅延を伴わない。
各キャッシュ部分(命令部およびデータ部)は2ウエイ・セット・アソシアティ
ブ方式に設計される。従って4ウエイ・セット・アソシアティブ方式の利点の一
部が費用を要することなしに、得られる。以後L RU (least rec
ently used)ビットと呼ぶ特殊な制御ビットまたはフィールドはミス
の後にキャッシュのアドレスされた領域において、2つのラインのどちらが置き
換えられるべきかを判定する通常の置換手続きを、現在の2ウェイ〜セット−ア
ソシアティブ・キャッシュがtつこt番可能↓;する。
全体の寸法、探さ、ラインの寸法およジそ(の他の物理的パ″′ 持表昭EiO
−500187(5)ラメータ等の各キャッシュ特性は、キャッシュが意図して
いる特定の目的に即ち命令またはデータに適合するように選択することができる
。同様に別々の置換アルゴリズムを使用して命令とデータとの間のアクセス特性
またはアクセス・パターンの相違を利用することができる。本システムの原型で
、両方のキャッシュに類似の置換アルゴリズムを用いて満足な結果が得られたが
、アルゴリズムを特定のキャッシュに適合させると一定の改善が生じるはずであ
る。
「背景技術」の章で述べたように、スプリット・キャッシュは当技術分野で数年
前から知られているが、従来のアーキテクチャを用いてそれを実施すると、深刻
な問題が生じていた。命令はデータ・キャッシュで合法的に変更でき、その後そ
こに分岐できるので、全ての変更は命令キャッシュに通知されなければならず、
またそれが、変更されたラインを無効化することを保証しなければならない。し
かし実際は、今日のより洗練されたシステムでは命令は殆んど変更されない。
従ってこの機能、即ち命令の変更は、データの変更が起きる度にこの機能を反復
して実行するための機構をハードウェアに設けるよりも(必要な時に)ソフトウ
ェアで実行する方がずっと効率的なものであると判断された。
先に述べたように、このシステムでは変更が必要な時には命令をデータ・キャッ
シュに入れ、それをデータとして扱うためのソフトウェアが設けられていると想
定する。明らかにこれは容易に行うことができる。しかし、データ・キャッシュ
は変更されたラインを命令キャッシュに知らせない。従ってそれらの変更は、変
更された命令への次の分岐中には反映されない。かかる制御を達成するために、
ここで開示するスプリット・キャッシュ・サブシステム・アーキテクチャは[命
令キャッシュ・ライン無効化」と呼ばれる命令を提供する。ソフトウェアは古い
命令を掃き出すために、この命令を出さなければならない。また上記アーキテク
チャは「データキャッシュ・ライン記憶」と呼ばれる命令を提供する。この命令
は変更された命令が゛バッキング記憶装置中に反映されることを保証する。最も
ありふれた場合であるが、ディスクからのロードによりプログラムの変更が生じ
るとき、最初の命令のみが出されなければならない。
このキャッシュ・サブシステム・アーキテクチャの追加的な利点は、別個に独立
して動作するキャッシュにより、命令用およびデータ用の別個の仮想記憶装置を
自然にサポートできることである。従って例えばAPLインタープリタの単一の
再入可能コピーが反復的なメモリ動作によって、最小限のバス時間で多くの異な
ったユーザー領域のために実行できるような、ソフトウェア・ストラテジーが可
能になる。
このアーキテクチャは仮想記憶装置間でのページの共有が可能でない。この制限
はハードウェアおよびソフトウェアのどちらの観点からも、大きな単純化をもた
らす。第1にそれはキャッシュが仮゛想モードで動作することを可能にする。言
い換えると実アドレスではなく仮想アドレスを用いてキャッシュにアクセスする
ことができる。明らかに、ラインがキャッシュ中に(90%以上の時間)見い出
される時、再配置アルゴリズムを実行することによる時間損失や品質低下は全く
生じない。
従来の再配置システムはかなりの量の高速記憶装置をページ・テーブル上のルッ
ク・アサイド・テーブル(DLAT)専用にしている。記憶装置は一般にキャッ
シュと同じ技術であり、従って非常に高価である。このアーキテクチャではペー
ジ・テーブルは通常はキャッシュを通してアクセスすることができ、その期待さ
れる使用頻度が高いために、一般にキャッシュ・ヒツトの確率が非常に高くなる
。従って追加的な費用なしで、性能DLATを近似することが可能である。従っ
てシステムの性能に大幅に影響を与えることなしに、通常のDLATへの投資を
キャッシュ・サイズの増大に適切に振り向けることもまた全く削除することもで
きる。
ハードウェアの実施例、与えられる特殊なハードウェア命令、およびこのキャッ
シュ・サブシステム内で実行できる各種の動作についての詳細な説明を始める前
に、次に図面の簡単な説明とその相互の関係を述べる。
第1図は、CPU、命令キャッシュ、データ・キャッシュおよび主記憶装置の関
係をはっきりと示した、階層記憶構成の全体構成図である。直接記憶アダプタ(
DMA)も主記憶装置に直接接続されたものとして示されている。先に述べたよ
うに、キャッシュをベースとする大部分のシステムでは、入出力はキャッシュ・
サブシステムを通過して、主記憶装置に記憶され、システム・スループットの低
下を伴う。本システムでは、入出力がキャッシュを通過することを禁じられてお
り、実際にも大部分は直接DMAを通過する。事実、後述のように入出力動作が
キャッシュによって開始される記憶と読取りを中断することを防止するための措
置がとられている。
キャッシュにより開始される記憶と読取りは「ストア・スルー型」動作を伴うキ
ャッシュ・ミスが起こった場合に生じる。
また後で図面を参照する際に指摘するが、データ・キャッシュから主記憶装置へ
のデータの流れのラインはあるが、命令キャッシュから主記憶装置への流れのラ
インは存在しない。
キャッシュの命令部を「ストア・スルー」する必要はないため、命令キャッシュ
中での命令の変更は許されないので、このことは銘記しておくべきである。
第2図(第2.1図および第2.2図)は、主記憶装置。
キャッシュおよびCPUの間のデータ経路をより詳しく示した、第1図の拡張で
ある。図のマルチプレクサ(MUX)は、このは−ドウエア実施例で設けられて
いる各種のデータ転送のためのゲート機能を実行する、通常の論理回路である。
ブタ1バイト当たり1つのパリティ−・ビットが入出力、主記憶装置および両キ
ャッシュ中を通って運ばれるが、パリティ−・ビットはCP”Uに転送されたり
、CPUから受け取られることはないことに注意すること。
第2図は、主記憶装置からC’P’Uへの4バイトの目的デー二″ 符表昭GO
−500187(6)り・ワードに直接データ経路を与える、ワード・バイパス
機構を図示したものである。キャッシュと主記憶装置のrのデータ転送の基本サ
イズは、32バイトのラインである。このデータは、主記憶装置からそれぞれ8
バイトからなる一連の4個の二重ワードとして受け取られ、この記憶アーキテク
チャによって受け取られた最初の二重ワードが必ず目的ワードを含むことが保証
される。目的ワードはキャッジ丑に記憶されるのと同時に、CPUにバイパスさ
れる。キャッシュがら圭記憶装置へのデータ書戻し経路は、1F戻しマルチプレ
クサを通るそれぞれ4バイトからなる一連の8個のワードとしてデータ・キャッ
シュのみに設けられていることに注意すること。
第2図の命令キャッシュとデータ・キャッシュを参照すると、2つのサブセット
AとBの存在が示されていることに気づく。先に述べたように、この2つのサブ
セットの存在はアドレッシング・アーキテクチャの2ウエイ・セット・アソシア
ティブの要件である。
次に第2図のデータ流れ図について簡単に説明する。図を参照する際、データ流
れの方向は基本的に図の上方から下方に向かっている。命令キャッシュ10とデ
ータ・キャッシュ12は、ともに主記憶装置14がらデータを受取ることができ
る。しかし、CPUからデータを受取ることができるのはデータ・キャッシュだ
けである。このことは先に述べた゛。これはこのアーキテクチャでは命令キャッ
シュでの命令の変更が可能でなく、従って命令キャッシュの出力はCPUに向か
うだけであるためである。同様に、そのキャッシュ中の命令は直@CPUによっ
て変更できないので、命令キャッシュはローディングのために取出しラッチ20
と、入力マルチプレクサ22を経て主記憶装置14に接続しさえすればよい。従
って、命令キャッシュ10に命令を記憶するため、命令データのラインが取出し
ランチ20を経て、最終的には命令キャッシュの選択されたセクション(ライン
)に転送させられる。
同様に、命令キャッシュからCPUに命令を転送するため、データ・ワードが命
令キャッシュの選択されたセクションから読取られて、出力マルチプレクサ16
、およびバイパス・マルチプレクサ18に送られる。
それぞれ命令キャッシュ10とデータ・キャッシュ12用の連関されたディレク
トリ11と13(第3図(第3.1図と第3.2図)に詳しく示す)が、キャッ
シュに(機能的に)接続されたものとして示されている。これらのディレクトリ
はキャッシュ・データ流れ経路に含まれているのではなく、物理的にキャッシュ
の動作と密接に関連づけられて1することを理解すべきである。後でさらに詳し
く説明するように、所与のキャッシュ・アクセスの場合、アドレスのDフィール
ドに対して決定された同じラインによって、両キャッシュ′・サブセットの同じ
ラインおよび連関されたディレクトリ項目が並列にアクセスされる。さらに、こ
のアクセスによって、両キャッシュ・サブセットAおよびBのデータがシステム
にとつて使用可能となる。
これらのディレクトリは、通常はエミッタ結合論理回路など適当な高速回路ファ
ミリー中の別個の極めて速い記憶装置として作られる。ここに開示する実施例で
は、キャシュのアクセス時間が30ナノ秒であるのに対して、ディレクト1りの
アクセス時間は約12ナノ秒であった。これはキャッシュからの2つのデータ・
サブセットが使用可能なとき、ディレクトリ項目にもとづいて行うべき論理判断
を可能にするためである。
先に述べたように、データ・キャッシュは主記憶装置14からもCPU30から
もロードできる。データ・ラインを主記憶装置14から記憶すべき場合、データ
流れは両キャッシュ共用の取出しランチ20を通り、次いでデータ・キャッシュ
用のバイト入力マルチプレクサ48を通ってデータ・キャツシュ12自体に入る
。データ・ラインをCPU30から転送すべき場合、データ経路は図に示すよう
にバイト入力マルチプレクサ48を通って、次にデータ・キャッシュ12に入る
。データ・キャッシュ12からCPUにデータを転送するには、データは出力マ
ルチプレクサ32、バイパス・マルチプレクサ34を通ってCPUのデータ・レ
ジスタに入る。
データ・キャッシュのミスが起こった場合、そのラインが有効であり、かつ変更
を示すと仮定すると、新しいデータ・ラインをデータ・キャッシュのその特定ラ
インにロードできるようになる前に、データ・キャッシュ中のこのデータ・うイ
ンを記憶装置14に書き戻さなければならない。このために書き戻しラッチ/マ
ルチプレクサ52が付勢される。
バイト選択機構49およびバイト書込みゲート5oは、データ・キャッシュへの
データの記憶を制御する。
ディレクトリ・ミスを伴うCPUロート○Pのとき、バイト選択機構49は主記
憶データの二重ワードのみがバイト入力マルチプレクサ48を通るようにゲート
し、すべてのバイト書込みゲート50が活動化される。
ディレクトリ・ヒツトを伴うCPU記憶OPのとき、バイト選択機構49は、C
PUデータ・ワードのみがバイト入力マルチプレクサ48を通るようにゲートし
、書込みゲート50は、データ・キャッシュのサブセット中に記憶されるバイト
数を制御するのに使用される。このCPUアーキテクチャは、1.2または3バ
イトのデータを記憶することができる。
ディレクトリ・ミスを伴うCPU記憶○Pのとき、バイト選択機構49は1.2
または3バイトのCPUデータを主記憶装置からの最初のミス二重ワードに組み
合わせ、バイト入力マルチプレクサ48を通過させる。すべての4バイト書込み
ゲート50が活動化される。ミスを生じたラインの残りの3つの二重ワードにつ
いては、バイト選択機構49は主記憶装置の二重ワードのみがバイト入力マルチ
プレクサ48を通過できるようにする。
どちらのキャッシュもバイパス機構を備えており、どちらhlのキャッシュに対
してキャッシュ・ミスを生じる取出し要゛25 特表昭GO−500187(7
)求があったとき、データが主記憶装置から使用可能になっている場合、それぞ
れ命令キャッシュおよびデータ・キャッシュについてワード選択マルチプレクサ
38または40を通して、そのデータをキャッシュおよびCPUに同時に送るこ
とができる。こうしてデータ(または命令)がまずキャッシュに完全に記憶され
るのを待つ間、CPUが停止する必要はない。
後でさらに詳しく述べるように、命令またはデータ・ラインの目的ワードのみが
直接CPUにバイパスされる。
従って、本スプリット・キャッシュ・サブシステムの全体アーキテクチャは、基
本的に通常の性格のものであることがわかる。すなわち、主記憶装置から命令キ
ャッシュおよびデータ・キャッシュをロードするためのデータ経路が設けられて
いる。追加手段がCPUからデータ・キャッシュをロートする。同様に両方のキ
ャッシュがそれぞれ命令とデータをCPUに転送することができ、データ・キャ
ッシュはまたデータを主記憶装置に書戻すことができなければならない。最後に
、どちらのキャッシュにもバイパス機構が備えられており、それによってライン
中のアドレスされたワードが直ちにcPUに送られ、そのラインはCPU遅延を
最小にするため、同時にキャッシュに記憶される。従って、本スプリット・キャ
ッシュ・サブシステムの実際のハードウェア構成は、全く簡明であることが認め
られる。ここに開示するキャッシュ・サブシステムの改善された機能をもたらす
のは、キャッシュの実際の使い方およびキャッシュ・ディレクトリとその中に設
けら机た特殊な制御ビットの独特の槌、戒である。
ちょっと第2面に戻ると、どち”らのキャッシュも晒のような別個のライン選択
機m↓こよって2つのサブセクションAとB$二分けられていることが気付かれ
る。このことは後の説明でさらにはっきり認められるはずである。このキャッシ
ュ・サブシステムは、2ウエイ・セット・アソシアティブである。
キャッシュ・ディレクトリ中の所与のラインがアドレスされると、2つのデータ
・ラインの各々からキャッシュ内で異なる2つのページ(AとB)に属する1ワ
ードが実際にアドレスされる。最終的に選択されるラインは後で説明するように
、目的ページ・アドレスPtとキャッシュ・ディレクトリに含まれる2つのペー
ジ参照PAおよびPBとの比較によって決定される。選択されたラインからアド
レスされたワードは、出力マルチプレクサ16または32によってCPUにゲー
トされる。
また、第2図を参照すると、キャッシュ・サブシステムの各ユニットを接続する
各種の多重ビット・ケーブルは32または36ビツトを含むものとして示されて
いることが気付かれる。32ビツト・ケーブルと36ビツト・ケーブルの違いは
、この実施例の範囲内では36ビツト・ケーブルは32個のデータ・ビットと4
個のパリティ・ビットを含むということである。一般に4パリテイ・ビットは、
キャッシュ・サブシステムからCPTJにデータ(または命令)を転送する際に
除去ないし削除される。また、主記憶装置14と取出しラッ2.5
チ20の間のケーブルが72ビツトを含むことも気付かれる。
すぐ認められるように、主記憶装置は二重ワードを読出して転送するように編成
されているので、このケーブルは2つの36ビツト・ワードを含むだけである。
これで、スプリット−キャッシュ・サブシステム・ハードウェア全体の一般的説
明は終わる。このハードウェアの一般的構成および動作は単純明解であり、当技
術では周知のものであると考えられる。
第3図(第3.1図および第3.2図)を参照すると、16にバイトのデータ・
キャッシュ・ディレクトリとそれに関連する論理および制御回路の詳細な機能ブ
ロック図が示されている。ここで開示される実施例では、24ビツトのCPUア
ドレスがレジスタ6oに配置されていると仮定されている。
この24ビツト・アドレス全体のうちで、左側の11ビツト(Pt)は記憶参照
のページ・アドレスを含んでいる。8ビツトからなるDフィールドは、指定され
たページ内の特定の記憶参照のライン・アドレスを含んでいる。このアドレスは
キャッシュ・ディレクトリの(従ってまたキャッシュ自身の内部の)256個の
ラインの1つを実際にアドレスするのに利用されることが指摘される。最後に右
側5ヒツトのWフィールドは32バイトのライン全体の中のワードまたはバイト
・オフセットである。そのアドレスすなわちセグメントは、全体アドレスによっ
て指示される所期のハイドをアドレスするのに実際に利用される。
図からはっきりわかるように、キャッシュ・ディレクトリは256の項目を含ん
でおり、(0〜255)の各項目は全体で7つの情報フィールドPA、PB、V
A、VB、MA、MB、LRUを含んでいる。後でさらに詳しく説明するように
、PA、VAおよびMAは、サブセットAに属するキャッシュ内の各ラインを指
し、要素PB、VBおよびMBはサブセットBに関係している。LRUビットは
2つのサブセット・ラインのどちらが最も最近にアクセスされたかを示し、従っ
てキャッシュ内の(サブセットAまたはB中の)特定ラインの置換を制御する。
動作の際には、キャッシュ・アクセスを行う場合、CPUアドレスのDフィール
ドによって指示される特定のラインが、ディレクトリ内の256の項目の1つを
アクセスさせる。次にページPAとPBのどちらがCPUアドレス中の目的ペー
ジ・アドレスPtと一致するかを決定しなければならない。
この比較は、2つの比較回路62と64で実行される。ページ・アドレスPAと
PBのどちらかがPtと一致する場合、「ヒツト=AJ ラインまたは「ヒツト
=BJラインが活動化される。次にアクセスが継続できるかどうか知るため、当
該の妥当性ピッドVまたは変更ビットMが問い合わせられる。
この動作の詳細については、後でより詳しく述べる。2つのページ・アドレスP
AまたはPBのどちらもPtと一致したい場合、N’AND回路66が「ミス」
ラインを活動化させ、ディレクトリ更新論理回路68がシステムに、「ミス」が
生じ、新しいデータ・ラインをキャッシュ・システムに持ち込まなければならな
いことを示す。2つのサブセ゛ット・ラインのどちらが置換されるかは、LRU
ビットによって決定される。「書込みストローブ」として示されている7ビツト
・ラインは後で詳しく説明するように、新しいデータぜ選択されたフィールドな
いしキャッシュ・ディレクトリの特定項目のビット位置に入力できるようにする
。もちろんどのビットが変更され、いつ新しいページ・アドレスがPAまたはP
Bフィールドに挿入されるかはCPU命令解読機構70によって解読される特定
の命令によって決定される。
キャッシュ・ディレクトリおよびそれに関連する制御装置の動作および構成は、
単純明解であると考えられ、ここに開示される機能説明とブロック図を与えられ
れば、コンピュータ技術の専門家が容易に実現できるものである。
第4図はキャッシュ・サブシステムのアドレッシングおよび構造を図示した一連
の表を含んでいる。それに加えて、この図はキャッシュ・サブシステムのサイズ
のアドレッシング・フィールドなど各種のパラメータに対する影響を示している
。
要するに、異なる3種のキャッシュ・サイズを4K、8におよび16にと仮定す
ると、ディレクトリ項目は2つのページ識別子PaおよびPbと5つの特殊制御
ビットV a 、 ’V b、Ma、Mb、LRUを含むことが気付かれる。こ
れらの特別制御ビットが利用される特殊な方法については、後で詳しく説明する
。
キャッシュ中のディレクトリのアドレッシングは、図の上部にもはっきり示され
ている。ここで24ビツトのCP’U目的アドレスは、P(ページ)、D(ライ
ン)、およびW(バイト)の3つのフィールドを含んでいる。図から明らかなよ
うに、キャッシュ自体はDフィールドとWフィールドを用いてアドレスされるが
、ディレクトリはかかる2ウエイ・セット・アソシアティブ式キャッシュではD
フィールドのみを利用してアドレスされる。当該技術の専門家なら理解できるよ
うに、ディレクトリがアクセスされ、次に目的アドレスのPフィールリドがディ
レクトリ項目Paまたはpbのどちらかと一致するかどうか決定される。この図
については後でより詳しく説明する。
第5図から第11図までは、それぞれ特定のハードウェア動作の結果としてキャ
ッシュ・サブシステムのハードウェア内部で起こる動作を表の形でまとめたもの
である。「ハードウェア・プロシージャ」の表現はキャッシュ・サブシステム・
ハードウェアの動作の結果としてシステムで起こることをリス1−にしたものと
いう意味である。
第12図から第18図まではすべて流れ図であり、各図につけたラベルで示され
るような第5図ないし第11図に記される各種のキャッシュ・サブシステム動作
と密接に関係している。言い換えれば、列挙された各ハードウェア・プロシーシ
ャに対する流れ図があり、例えば第6図のデータ・キャッシュ取出しハードウェ
ア・プロシージャは第14図にずっと詳しく示されている。このようにこれらの
流れ図では、詳しいテスト操作および分岐操作および様々な分岐に沿って進むと
き、列挙された様々なブロックで起こる特定の操作が明確に記載されている。こ
れらの操作については後でさらに詳しく説明するが、基本的にキャッシュ・サブ
システムの動作を半ば説明すると考えられている。
かかるキャッシュ・サブシステムでおこる事象5、ならびに第一2図と第3図で
特別に示したすべてのハードウェア構成要素の機能と目的は、当技術で周知のも
のであると考えられる。
当技術の専門家なら、第2図と第3図および詳細な流れ図に記載された全体キャ
ッシュ・サブシステム構成を用いて、本発明のキャッシュ・サブシステムを作成
するのに困難はない以下の説明は、本発明の階層記憶が特に有用なミニコンピユ
ータのあるバージョンに適用される。これは、16メガバイトまでの実主記憶装
置を含む、該階層記憶システムへの24ビツトのアドレッシングを実現する。2
4ビツトの主CPUアーキテクチャは、ここで詳しく述べる適正な記憶命令を供
給しなければならないこと以外は、本発明にとって決定的条件ではない。
ここに開示する記憶階層の実施例は、CPU速度で動作するキャッシュ・サブシ
ステムおよびCPU速度の115の速度で動作する最大16メガバイトのFET
主記憶装置からなる。
CPUは、キャッシュ・サブシステムと直接に連絡し、一方、後者は主記憶装置
と連絡する(第1図を参照する)。入出力データは、直接記憶アタツク(DMA
)を介して主記憶装置に送ることができるが、キャッシュ・サブシステムに直接
連絡することはできない。
CP’Uとキャッシュ・サブシステムの間のデータ転送の単位は、4ハイド・ワ
ードである。主記憶装置とキャッシュ・サブシステムの間の転送単位は、32バ
イト・ラインである。
ライン転送は、主記憶装置から4つの8ハイド2重ワードを経て、また主記憶装
置へ8つの4バイト・ワードを経て行われる(第1図を参照のこと)。主記憶装
置からまたはそこへの入出力データ転送は、DMAアダプタの制御下で4ハイド
・ワードを介して行われる。
データ・バイト当り1つのパリティ・ビットが、記憶階層中を運ばれることに注
意すること。パリティ・ビットは、CPU八またはCPUからは転送されない。
(c)キャッシュ管理
ここに開示される階層記憶サブシステムは、記憶階層への参照によって生じるC
PU遊休時間を最小限に抑えるように設計された、システム・アーキテクチャを
基礎にしている。
この記憶アーキテクチャは、サイクル毎に新しい命令を利用できるCPU用に設
計されているので、CPU速度に合致する別個の命令キャッシュは、命令の取出
しが記憶階層中でのデータ取出しとは独立に進行できるようにする。また、この
アーキテクチャは、キャッシュ・サブシステムとの直接の入出力通信を禁止し、
従って入出力妨害雑音によってCPUがロックアウトされる可能性を除外する。
同様に、主記憶装置に対する過剰の参照によるパフォーマンスの低下を避けるた
め、すべての記憶は、データ・キャッシュに向けられ、主記憶装置に自動的に「
ストア・スルー」されることはない、。
この2−キテクチャ型式のために、入出力操作による主記憶装置の内容の変更が
C,PtJに直ちに知られることはなく、また、CPUによって実施されたデー
タ・キャッシュの内容の変更か入出力または命令キャッシュに直ちに知られるこ
とはないかもしれない。
しかし、この上位システム・アーキテクチャは、プログラムが主記憶装置とキャ
ッシュ・サブシステムの内容の間の関係を制御することを可能□にする、限られ
た組のキャッシュ管理命令を供給する。これらの管理命令は、32バイトのキャ
ッシュ・ラインのみを扱い、システムがより低速の主記憶装置に対する不必要な
キャッシュ参照を避けることを可能にする。例えは、一時記憶域が、もはや必要
でなくなったとき、キャッシュ中のラインが以前のCPU記憶によって変更され
ていた場合でも、データーキャッシュ・ライン無効化命令の使用が、主記憶装置
に対する不必要な書戻しを防止する。
(d) キャッシュ・サブシステム
キャッシュ・サブシステムは、16にの命令キャッシュと16にのデータ・キャ
ッシュから構成される。各キャッシュは一2ウェイ・セット−アソシアティブと
して編成されている。
従って、各キャッシュは、8にのサブセットA、七8にのサブセットBから構成
される。一つのキャッシュは、最大脹32バイトのラインを512本含むことが
できる。サブセットA中のライン256本とサブセットB中のライン256本で
ある。
のディレクトリは、アクセス時間が全キャッシュ・サイクル時間の約115の超
高速バイポーラ・ランダム・アクセス記憶装置に含まれている。
ディレクトリ中の各項目は、各連関サブセット中に一つずつ、2つの可能なキャ
ッシュ・ラインの存在および状況を記載する。従って、このディレクトリは、1
つのキャッシュ・サブセット中に物理的に存在できる最大ライン数と同じ項目を
含めるだけの大きさでなければならない。各キャッシュ・サブセットは、256
本までのラインを含むことができるので、ディレクトリは256の項目を含まな
ければならなし)。
この構造は、第2,1図にはっきりと示されてし)る。
(e−1)アドレス・フィールド
本実施例に関しては、上位システムは24ヒツト・アドレスを利用することが仮
定される。概念的には、アドレスはページ・アドレス、ページ中のラインのアド
レスおよびライン中のバイトのアドレスの3つのフィールドに再分割できる。
これらのサブフィールドは、ここではそれぞれP、Dお、よびWと呼ぶことにす
る。この構成は、第3図に詳しく記されている。第3図のテーブル(は、キャッ
シュ・サイズの範囲(4に→16K)およびキャッシュおよびディレクトリの各
種パbラメータに対するサイズの影響をも示している。
各ディレクトリ項目は、2つのキャッシュ・サブセット(PAおよびPB)に記
憶されているラインのページ・アドレスを含む2つのアドレス・フィールドと、
処理されているキャッシュ命令のためのハードウェア・アルゴリズムに指命する
制御ビット・フィールドを持っている。ディレクトリは、目的アドレスのライン
・アドレス・サブフィールドによってアドレスされる。キャッシュ・サイズか小
さくなるとラインアドレス・サブフィールドのサイズが減少するが、ページ・ア
ドレス・サブフィールドのサイズは増大する。(第3図を参照)事実、この時、
サイズのより小さい(1ページ当りのラインの数がより少ない)ページがより多
く形成される。
(e −2)制御ビット・フィールド
命令キャッシュ・ディレクトリは、各項目毎に3つの制御ビットを含み、データ
・キャッシュ・ディレクトリは5つの制御ビットを含む。どちらのキャッシュ・
ディレクトリもその各項目が各サブセットについて1つずつ、合計2つの有効ビ
ット(VAおよびVB)ならびに1つのLRUピッ1〜、を含む。その上、デー
タ・キャッシュ・ディレクトリは各サブセットについて1つずつ、合計2つの変
更ビット(MAおよびMB)を含む(第3図を参照のこと)。
有効ビットは、キャッシュと主記憶装置の内容の間の関係を制御するために使用
される。それらは、キャッシュのラインが現在主記憶装置に常駐するバージョン
によって置換されたとき、「1」にセットされる。あるラインに対する有効なビ
ットは、プロセッサからのキャッシュ管理命令によってターンオフすることがで
きる。無効化された(V=O)ラインをプログラムが参照すると、無効ラインは
主記憶装置中に存在するその現バージョンによって置換させられる。
LRUビットは、どちらのサブセットが主記憶装置から置換ラインを受取るかを
決定する。LRUビットの状態は、キャッシュ・ハードウェア・プロシージャに
よって制御され、プロセッサがプログラム制御下で管理することはてきない。
LRU置換プロシージャは、キャッシュのあるラインを主記憶装置からの新しい
ラインで置換することが必要になったとき、従うべき有効な戦略は、最近もつと
も使われなかったアソシアティブ・セット中のラインを置換することであるとい
う前提条件にもとづいている。キャッシュは、正に2ウエイセツト・アソシアテ
ィブであるので、単一制御ビットを開いてこの判断を下すことができ、最近もつ
とも使用されなかったものは最近にもつとも使用されたものになる。
データ・キャッシュ・ディレクトリ中の変更ビットは、プロセッサ記憶命令か生
じたとき、「1」にセットされる。これは、キャッシュ中のラインのバージョン
か更新済みであることをキャッシュ制御ハードウェアに指示し、このラインを置
換すべき場合は主記憶装置にそれを帯戻さなければならない。しかし、ラインが
無効化(V=O)された場合には、書戻しは禁止される。命令キャッシュでは、
書戻しは可能でないことを再度指摘しておく。
(f)プロトタイプの′″″−
上、記の記憶階層を、プロトタイプとして実現した。主記憶装置は、サイクル時
間が300ナノ秒の1.0メガバイトのFE前前記製装置用いて設計した。2重
キャッシュは、それぞれサイクル時間がCPUのサイクル時間と符合する60ナ
ノ秒の16にバイトのバイポーラ記憶装置を用いて設計した。
各キャッシュは、2つのアソシアティブ・セラ1〜それぞれに256本のライン
、すなわち最大限512本のラインを含んでいる。その上、各キャッシュの最大
サイズを手動で8Kまたは4にバイトに減らすことができ、それによって全体内
容をそれぞれ256本または128本のラインに減らすことができる(第3図を
参照のこと)。
(f−1)物理パンケージ
命令キャッシュでもデータ・キャッシュでもキャッシュ・アレイはバイポーラ・
トランジスタ記憶技術を利用して、4枚のカードにパッケージした。各カードは
2KX18ビツトを含み、1キャッシュ当りのカードは4枚であった。ここで述
べる実施例は例示のためだけのものである。かかるキャッシュの一般構造は当技
術の専門家なら、ここに記載するアーキテクチャ定義・制御機能および命令書式
から充分にわかると考えられる。
(g)夫タ1シュ編成
CPUに対するキャッシュ・インターフェースは、幅32ヒツ1〜(lワード)
であり、主記憶装置に対するインターフェースは取出し用で幅72ビット(パリ
ティを含めた二重ワード)または記憶用で36ビツトである。初期取出しには目
的アドレスてAおよびBサブセットに同時にアクセスできることが望ましい。目
的アドレスのワードを両方のアソシアティブ・サンセットから同時に読取れると
仮定すれば、様々なキャッシュ記憶編成が可能である。
そうするのは、キャッシュ・サイクル中の後の方でブイレフ1−リ・アクセスに
よってその情報が与えられるまでは、目的物が存在するサブセットがわからない
ためである。この理由から、また時間を節約するためにディレクトリとキャッシ
ュは同時にアクセスされる。
ディレクトリ・アクセスでAとBのどちらのサブセットにも目的物が存在しない
こと(ミス)が示された場合、キャッシュ・アクセスからのデータは無視され、
目的データを含むラインをめて主記憶装置がアクセスされる。データ・キャッシ
ュ・ミスの場合、現在キャッシュ中に存在するラインを主記憶装置からの新しい
ラインで置換する前に書戻することか必要になる場合もある。
目的ページ・アドレスがAまたはBのサブセットに対するディレクトリ項目と符
合する(ヒツト)場合、正しいサブセットが直ちに知られ、キャッシュからの目
的データをヒラ1〜サブセツトからCPUに直接ゲートすることができる。この
戦略を用いると、データをCPUに送るのに必要な合計時間が最小限に抑えられ
る。
キャッシュ・ミスによる主記憶装置へのアクセスは、32バイトのラインを生成
し、そのラインが連続する4つの二重ワードとしてキャッシュに多重化される。
この記憶システムアーキテクチャはキャッシュ・ミスの場合に目的ワードを含む
二重ワードが、まず記憶制御装置によって返送されることを指定している。残り
の3つの二重ワードは、そのラインに含まれる4つの二重ワードか丁へて返送さ
れるまで、目的アドレスを二重ワードずつ増分することによって生成される、順
次隣接するアドレスから返送される。
この最初の二重ワードが常に目的ワー1〜を含むので、データ・キャッシュ中で
はCPUデータを主記憶装置からの最初の二重ワードに組み合わせることによっ
て記憶ミスが処理される。
(h)命令キャッシュの取出し
命令キャッシュ取出しハードウェア操作順序の流れ図か第13図に示され、第5
図に表にしてまとめられている。両キャッシュのデータ流れのブロック・ダイア
グラムが第2.1図に示されている。
命令キャッシュ取出し要求がキャッシュ・アレイとディレクトリへのアクセスを
開始する。ディレクトリ・アクセスはキャッシュ・アクセスとオーバラップされ
ている。両キャッシュは取出しの目的ワードかAとBのどちらのサブセットから
も同時にアクセスされるように編成されている。
これはどちらのサブセットに目的データが存在するかを知らずに、あるいは目的
物がどちらのサブセットにも全く存在しない場合にも行われる。
(h−1)ヒツト
目的アドレスがAまたはBのサブセットのディレクトリ項目と符合する場合その
ディレクトリへのアクセスはヒツトとなる。正しいサブセットが直ちに知られ1
、そのラインが有効ン
な場合には目的データをヒツト・サブセットがらCPUにゲートできる。キャッ
シュ・アレイへのアクセスに追加的時間は不要である。そのブイレフ1−り項目
に対するLRUビットは、次に逆のサブセットに切り替えられる。もちろんLR
Uが以前の操作の結果として既に逆のサブセットを示していることもある。
(h −2) ミスまたは無交ヒツト
目的アドレスがAとBのどちらのサフ゛セットのディレクトリ項目とも符合しな
い場合、そのディレクトへのアクセスはミスとなる。キャッシュ・アレイがらア
クセスされたデータは無視され、取出し要求が(目的アドレスと一緒に)主記憶
装置へ転送され、主記憶装置が32バイトのラインを4つの8バイト二重ワード
として返送する。返送される最初の二重ワードは(前述のように)目的アドレス
によって指示された特定の4バイト・ワードを必ず含む。速度を上げるため、こ
のワードは二重ワードがキャッシュに記憶される間に同時にCPUヘバイパスさ
れる。このデータ経路が第2.1図にはっきり示されている。次の3つの二重ワ
ー1くは順次主記憶装置から返送され、致着するとキャッシュに記憶される。
主記憶装置によって返送される、目的物を含む最初の二重ワードが実際にはその
ラインのIAの二重ワードであることがあり得る。この場合、そのラインの残り
の3つの二重ワードも、やはり順次返送されるが、ラインのlから始まる。
このようにどの二重ワードが最初に到着するかにかかわらず、他の3つの二重ワ
ードが順次受取られる。
また、主記憶装置から取出されるラインがCPUに対する一連の命令をデータと
して含んでいることにも注意すべきである。CPUは深さ4レベルの事前取出ス
タックを含んでいると仮定される。この事前取出しスタックは、自身を充填され
た状態に保とうと試みて絶えず取出し要求を命令キャッシュに送り、それによっ
て各機械サイクル毎に全CPUアーキテクチャの要件にもとづいて新しい命令を
与える。命令キャッシュ・ミスの場合は、この事前取出レベルが2つ以上空にな
ることもあり得る。新しいラインが主記憶装置から到着したとき、キャッシュ・
ラインの最後に達するまで、またはCPU事前取出し機構が一杯になってバイパ
ス・アクションを停止するまで、キャッシュはデータをCPUにバイパスし続け
る。こうしてCPUにバイパスされるワード数は、最低1ワードから最高でその
ライン中の8ワードすべてまでのどんな数となることもありうる。
(h −3)ディレクトリの更新
ミスの後、ディレクトリは新しい目的アドレス(Pt)で更新され、新しいライ
ンが記憶されたサブセットに対する有効ヒツトが「1」にセットされ、LRUビ
ットは逆のサブセットに切り替えられる。
目的アドレスが無効な(V=O)ディレクトリ項目と符合した場合、その結果は
、無効ヒツトであり、ハードウェア・アクションは下記の2点を除いてはミスが
発生した場合と同じである。第1にLRUヒツトの状態とはかかわりなく、新し
いラインが符合したサブセットに入り、第2にディレクトリ中のアドレスは更新
されない。これはアドレスは有効符合を生したが、データは無効で置換しなけれ
ばならないからである。新しいラインのロートに続いて、ディレクトリLRUヒ
シ1〜は逆のサブセットに切り替えられ、記憶されたサブセットに対する有効ビ
ットが(「1」に)セットオンされる。
この場合も、「有効jビット(VAまたはVB)がゼロになり得る唯一の経路は
、[命令キャッシュ・ライン無効化」命令を用いてCPUを介するものであるこ
とに注意すべきである。
第5図は上述のこの命令キャッシュ取出しハードウェア順序をまと叱たものであ
る。
(1)データ・キャッシュ取出し
データ・キャッシュ取出しハードウェアの操作順序が第14図に示され、第6図
にまとめられている。全体のデータ流、れ図は第2.1図に出ている。
(i−])ヒツト
有効ヒツトに対するデータ・キャッシュ取出しプロシージャは、上記命令キャッ
シュ取出しプロシージャと同一であり、繰返す必要はない。
(i −2)ミスまたは無効ヒツト
ミスまたは無効ヒツトの場合のデータ・キャッシュ取出し操作順序は、2つの例
外を除いては上記の命令キャッシュ取出し順序と類似している。
第1にミスのとき、CPU記憶装置によって変更されている有効ラインをそれが
置換される前に主記憶装置に書き戻さなければならない。第2にミスが生じると
、8つまでのワードをCPU事前取出しスタックにバイパスできる命令キャッシ
ュとは違って、データ・キャッシュはミスのとき1ワードしかCPUにバイパス
しない。
取出しミスが起こったとき、変更ビットおよび有効ビットについて置換すべきラ
インがチェックされる。AとBのどちらのサブセットを置換すべきかは、LRU
ビットによって決定される。そのラインが無効または変更されていない場合には
、書戻しは起こらず、目的ラインに対する取出し要求が主記憶装置に送られる。
主記憶装置によって返送されたラインの最初の二重ワードは、目的ワードを含み
、最初の二重ワードがキャッシュに記憶されている間に同時にキャッシュ・ハー
ドウェアがこのワードをス1〜リップアウトして、それをCPUに直接バイパス
する。新しいラインの記憶に続いて、命令キャッシュ取出しについて説明したよ
うにディレクトリは更新される。
(i−3)書戻し
置換すべきラインが有効でかつ変更済みの場合、その置換ラインについて取出し
要求が出される前にそれを主記憶装置に書戻さなければならない。書戻すにきラ
インのページ・アドレスはディレクトリ項目に含まれ、そのアドレスが書戻しの
ため主記憶装置に供給される。キャッシュは書戻しラインの4つの二重ワードを
読出すのに4サイクルかかり、マルチプレクサ52がそれらを一連の8ワードに
分けて主記憶装置の記憶入力レジスタ(SIR,)に転送する(第2.1図を参
照のこと)。
通常の場合、入出力が書戻しと新しいラインに対する取出し要求の発行との間に
主記憶装置に対するアクセスを得、それによって入出力操作時にデータ・キャッ
シュを停止させることが起こり得る。これが起こることを防止するため、特に書
戻しを伴うデータ・キャッシュ・ミスの場合には、データキャッシュから特に高
い優先順位の取出し要求を主記憶装置に出すことができる。この高い優先順位の
要求の効果は、旧特表昭GO−500187(12)
(書戻し)ラインをSIR中にロードしながら主記憶装置に新しいラインの自動
取出しを開示させることである。これによってデータ・キャッシュ専用のバック
・ツー・バック主記憶装置サイクルがもたらされ、旧ラインの記憶前に主記憶装
置の新しいラインに対する取出しが起こることができるようになる。旧ラインは
一時的にSIRに保管される。
この戦略を具体化するため、データ・キャッシュが書戻すべきうオンの最初の二
重ワードについてアクセスされ、データ・キャッシュ制御装置に書戻しアドレス
、最初の帯戻しワードおよび高い優先順位の要求を送る。主記憶装置が要求の受
取りを認めると、データ・キャッシュはただちに旧ラインの残りの3つの二重ワ
ードの取出しを始め、主記憶装置へのアドレスを旧(書戻し)アドレスがら新(
目的)アドレスに変更する。書戻しラインは一度に1ワードずつ主記憶装置SI
Rに転送される。主記憶装置が新しいライン・データを返送すると、新しいライ
ンが記憶されている間にデータ・キャッシュで一連の4つの二重ワードの記憶が
開始され、目的データがCPUにバイパスされる。次に、ティレフ1へり情報が
更新される。
第6図は先に述べたようにデータ・キャッシュ取出しハードウェアの操作順序を
まとめたものであり、第14図は操作の順次的詳細を流れ図の形で示したもので
ある。
(j)データ・キャッシュ叩
データ・キャッシュ記憶ハードウェアの操作順序の流れ図が第15図に示してあ
り、第71図にまとめである。データ流れ図については、やはり第2.1図を参
照すべきである。
第14図と第15図の流れ図をちょっと比較してみると、データ・キャッシュ取
出し、記憶アルゴリズムは全く類似していることがわかる。主な違いは、単にC
PUとキャッシュの間のデータ流れの方向である。下記の記憶プロセスについて
の議論は、取出しプロセスをよく知っていることを前提にしたもので、この2つ
の違いを重点に置いている。
取出し要求とは違って、データ・キャッシュに対する記憶要求はキャッシュ・ア
レイのアクセスを自動的には開始しない。キャッシュ・アレイの両サブセットは
取出し操作から同時に読取ることができるが、記憶操作の場合は1つのサブセッ
トしか書込めない。従ってディレクトリ・アクセスの結果が、目的物がキャッシ
ュ中に存在するか否か、および存在する場合はどのサブセットに存在するかを示
すまで記憶操作は開始できない。キャッシュ・アレイへのアクセスは、取出し操
作の場合のようにディレクトリへのアクセスとオーバーラツプできないので、す
べての記憶操作にはキャッシュ・サイクルを拡大することが必要である。必要と
されるディレクトリおよびキャッシュ・アレイへの順次アクセスを収容するには
、記憶サイクルを50%だけ拡大しなければならない。
記憶装置は32ビツト・ワードの列として編成される。各ワードは2つの16ビ
ツト半ワードまたは4つの8ビツト文字に再分割できる。プロセッサ記憶命令は
、1.2または3文字のエンティティに対して働く。この3種のプロセッサ記憶
は、キャッシュ・ハードウェアによって記憶8(1バイ・ト)、記憶16(2バ
イト)および記憶24 (3バイト)の3つの異なる記憶指令として区別される
。第14図のデータ・キャッシュ記憶の流れ図は、この3つの記憶指令のすべて
に適用される。CPUは各記憶指令と共に32ビツトのデータ・ワードを供給し
、書込むべきバイトをワード内で事前位置合わせする。記憶目的アドレスの最下
位2ビット+特定型式の記憶指令が4つのバイト書込みゲート(第2.1図の5
0)(W o −W 3 )のうちのどれが活動化するがを決定するのに充分な
情報をデータ・キャッシュ制御ハードウェアに与える。
(j −1)ヒツト
記憶目的アドレスがディレクトリに存在する場合、書込むべきサブセットが識別
され、キャッシュ・サイクルがその記憶を収容できるように拡大される。32ビ
ツトの記憶データワード+生成されたパリティ(4ビツト)が、全てのアレイカ
ートに同時に印加される。バイト書込みゲートのサブセット選択交差が、どのバ
イトが書込まれるかを決定する。記憶に続いて、ヒツト・ラインに対する変更ビ
ットをターンオンしLRUビットを逆のサブセラ1へに切替えることによってデ
ィレクトリが更新される。
(j −2) ミスまたは熱交ヒツト
記憶目的ラインが無効またはキャッシュ中にない場合、キャッシュ・サイクルは
拡大されず、そのラインを主記憶装置から検索しなければならない。置換すべき
ラインが有効でかつ変更済みの場合、書戻しが必要であり、データ・キャッシュ
取出しについて説明したのと全く同様に書戻し機構が動作する。
データ・キャッシュは8バイト二重ワードのどこにでもバイトを挿入できる、入
力バイトマルチプレクサ48 (第2゜1図を参照のこと)を備えている。ミス
があるとこのマルチプレクサがセットアツプされて、CPUからのデータを主記
憶装置によって返送された取出しデータに組合わせる。この記憶の目的物は、主
記憶装置によって返送されるライン・データの最初の二重ワードに含まれるので
、CPUデータの組合わせは4つの二重ワードのうちの最初のものがキャッシュ
に記憶されたときしか起こらない。後の3つの二重ワードおよびCP tJによ
って選択されなかった最初の二重ワードのすべてのバイトは、入力マルチプレク
サによって主記憶装置取出しデータ経路に切り換えられる。4つの二重ワード記
憶中にすべてのバイト書込みゲートはターンオンされ、1つのサブセットが選択
される。従ってこの記憶によって変更されるバイトは専ら入力マルチプレクサと
サブセット選択によって制御される。
記憶ミス(または無効ヒツト)に続いて置換ラインがその記憶を受取った場合に
変更ビットがターンオンされる点を除いては、命令キャッシュ取出しゃデータ・
キャッシュ取出しの場合と同様に、ディレクトリが更新される。
符表昭GO−500187(13)
第7図はデータ・キャッシュ記憶ハードウェア・プロシージャをまとめたもので
ある。
序の流れ図は、第12図にみられ、第8図にまとめられ【いる。
(第2.1図および第2.2図に示す)命令、キャッシュ制御ハードウェアは、
プロセッサからの1つのキャッシュ管理命令に応答するように設計されている。
この命令は、命令キャッシュ・ライン無効化(INICL)と呼ばれ、その目的
はディレクトリの有効ビットを目的アドレスによって識別されるラインに対して
ゼロにセットすることである。命令が主記憶装置中で変更された場合、更新され
た情報をめてキャッシュが主記憶装置にアクセスするように、ラインを無効化し
なければならない。データ・キャッシュは、同しやり方でデータ・キャッシュ・
ライン無効化(INDCI)キャッシュ管理命令に応答する。この管理命令に関
係するのはディレクトリだけなので、キャッシュ・アレイはアクセスされない。
目的アドレスは、キャッシュ・サブセットAまたはBのどちらかに存在し得るが
、両方に存在することはない、単一ラインのみを識別することに注意すべきであ
る。従って、目的アドレスに対するブイレフ1〜り項目の2つの有効ビットのう
ちの1つのみが影響を受ける。すなわち、Vaまたはvbが影響を受ける。
無効1ヒ命令は、プログラムがキャッシュ中のラインを主記憶装置からの最も最
近のバージョンで置換できるようにする。
L RUピッ1−は、ハードウェアによって無効化ラインを含むザブ七ノ1−を
指すように強いられ、従って、置換ラインがそのモマッシュ位置に入る。
目的物のページ・アドレス・サブフィールドが、キャッシュ・サブセットAとB
のいずれに関するディレクトリにも存在しないことがあり得る。これは、キャッ
シュ・ミスとして定義され、ハードウェア・プロシージャによって扱われなけれ
ばならない。どちらかの(データまたは命令)キャッシュ・ライン無効化命令の
場合、ミスは、有効ビットを変更する必要をなくし、ハードウェアは単に何もし
ないだけである。
第8回は、I N I CLおよびTNDCLハードウェア操で乍順序をまとめ
たものである。
<0.)2二l二きタラシュ・ライン・ロードデータ・キャッシュ・ライン・ロ
ード(LDCL)キャッシュ管理命令の流れ図は、第16図にみることかでき、
第9図にまとめられている。この命令の目的は、単に、あるラインかキャッシュ
中にまたない場合には、それを主記憶装置からキャッシュにロー1〜することで
ある。
(+1−1.) ヒラ1−
そのラインかすてにキャッシュ中にあり有効な場合、ロー1−は起こらす、ブイ
レフ1−りのLRUビットが逆のサブセットに切替えられる。
(Q−2) ミスまたは無効ヒツト
ミスないし無効ヒツトの場合、この命令はデータ・キャッシュ取出しについて先
に述べたのと同様の挙動を示す。不在ラインに対する取出し要求が、主記憶装置
に転送される。ミスがあり、置換すべきラインが有効でかつ変更済みである場合
、最初に書戻しが起こる。主記憶装置から返送されたラインはキャッシュ中にロ
ードされるが、データ゛がCPUにバイパスされることはない。新しいラインの
ロードに続いて、記憶されたサブセットに対する有効ビットが「オン」に(すな
わち「0」に)セットされ、LRUビットが逆のサブセットに切替えられる。新
しいラインがミスのためにロードされた場合、ディレクトリも新しいラインのペ
ージ・アドレスで更新される。
第9図は、データ・キャッシュ・ライン・ロードのハードウェア・プロシージャ
をまとめたものである。
(m)データ・キャッシュ・ライン・セットデータ・キャッシュ・ライン・セッ
ト(SETDCL)キャッシュ管理命令は、第17図にみることができ、第10
図にまとめられている。この命令の目的は、ラインに対するディレクトリ項目が
まだそこにない場合、それを確立することであり、そのラインを主記憶装置から
キャッシュ中にロードすることではない。これは、ラインをその後の記憶によっ
て変更すべき場合に、主記憶装置からの不必要な取出しを防止するために使用で
きる。
(m−1)ヒツト
ラインがキャッシュ中に既に存在する場合、有効ビットを「オン」にセットし、
変更ビットを「オフ」にセラ1〜することによって、そのディレクトリ項目が更
新される。
(m−2)9囚
ミスのとき、現在存在するラインが有効でかつ変更済みである場合、この命令は
書戻しを強いる。(書戻しを伴うまたは伴わない)ミスに続いて、ディレクトリ
は新しい目的ページ・アドレスで更新され、有効ビットがオンにセットされ、変
更ビットはオフにセットされ、LRUビットは逆のサブセットに切替えられる。
書戻しが必要でない限り、データ転送は起こらない。
第10図はデータ・キャッシュ・ライン・セットのハードウェア操作順序をまと
めたものである。
(n)データ・キャッシュ・ライン記憶データ・キャッシュ・ライン記憶(ST
DCL)キャッシュ管理命令の流れ図は、第18図に詳しくみることができ、第
11図にまとめられている。この命令の目的は、有効でかつ変更済みであるライ
ンを書戻させて、主記憶装置がラインの最近のバージョンを反映するようにする
ことである。明らかなように、データ・キャッシュ・ラインのこの記憶は、正常
な「取出し」または「記憶」操作の結果ではない。
ラインがキャッシュ中にあり、有効でかつ変更済みである場合、書戻しが起こり
、変更ビットをオフにすることによってディレクトリは更新される。ラインは将
来使用できるようになおキャッシュに保持される。
(n −2) ミスまたは無効ヒツト
ラインがキキャッシュ中にない場合、またはキャッシュ中この命令は、主記憶装
置に書戻されるラインが、次の入出力命令または命令キャッシュ・ミスに使用で
きる時間には完了できないことに注意すること。この命令の特別の同期バージョ
ンがこの目的に使用できるが、それついては後述する。
第11図は、データ・キャッシュ・ライン記憶ハードウェア操作順序をまとめた
ものである。
(0)データ・キャッシュ・ライン記憶・同期化この命令(S T S DCL
)は、キャッシュ中で上述のデータ・キャッシュ・ライン記憶(STDCL)と
全く同様に動作する。しかし、プロセッサは、命令ストリームに進む前に、この
命令が完了するまで待つ。従って、この命令の実行後に起こる入出力活動または
命令キャッシュ活動は主記憶装置で利用可能なラインの最新バージョンをもっこ
とになる。
以上要約すると、ここで開示したキャッシュ・サブシステム・アーキテクチャは
、記憶装置への参照によって生じるCPU遊休時間を最小限に抑えることができ
るので、ユニークである。多数の特殊なキャッシュ管理命令とキャッシュ・ディ
レクトリ中のいくつかの特別な制御ビットとを独特のやり方で使用してかかる主
記憶装置への参照を最小限にすることができるのが新規な点である。
これらのキャッシュ管理命令およびディレクトリ制御ビットは、ソフトウェアが
キャッシュ・サブシステムの内容と主記憶装置の内容の関係を制御できるように
する。この能力のため、有効キャッシュ・ヒツト率が改善され、それによってシ
ステムがより低速の主記憶装置を不必要に参照することを避けることができる。
その上、このキャッシュ・サブシステムのアーキテクチャは、主記憶装置への参
照が避けられない場合にアクセス時間を改善できる点が新規である。この能力は
、命令とデータに対して、独立にオーバーラツプして、主記憶にアクセスできる
別個のキャッシュを使用するという独特のやり方および主記憶装置からCPUへ
の目的情報の流れをスピードアップするためのキャッシュ・バイパス機構の使用
によって生じたものである。
命令取出しを記憶階層中でデータ取出しとは独立に進行させることが可能なこと
、CPUから主記憶装置への自動的「ストア・スルー」を禁止したこと、および
キャッシュ・ハードウェアによって処理される特別のキャッシュ管理命令のソフ
トウェアを使用することがあいまって、ハードウェアとソフトウェアの機能が新
規なやり方で調和して相互作用できうにすることによって、システムのパフォー
マンスが改善される。
FIG、 1
3/16
FIG、 3.1
FIG、4
(1ライン=32バイト)
FIG、 5
FIG、ll
11716
12/16
(CPUf求)
(CPU瞥事)
(CPLI早求)
国際調査報告
Claims (1)
- 【特許請求の範囲】 主記憶装置とキャッシュ記憶サブシステムとを含む、高速データ処理システム用 の階層記憶システムにおいて、該キャッシュ記憶サブシステムはそれぞれデータ の記憶および命令の記憶専用の別個の2つのアドレス可能セクションを含み。 該各セクションは、関連するキャッシュに記憶された各ライン毎にアドレス可能 な記憶位置を含むディレクトリを備え、主記憶アドレスの「ライン」フィールド を利用して望みのキャッシュ・ディレクトリにアクセスすることができ、上記デ ィレクトリは、各キャッシュ・ラインに記憶されている情報の主記憶アドレスの 高位ビットを上記記憶位置に記憶するための手段と、アクセスされたキャッシュ ・ディレクトリ記憶位置に記憶さおでいる該高位ビットを、要求されたアドレス の高位ヒツトと比較して、関連するキャッシュの要求されたアドレスに情報が存 在するかどかを決定するための手段と、システム制御下でアクセス可能な該キャ ッシュに記憶されている各ラインと関連する、キャッシュに記憶さ′れでいるデ ータの関連するラインが無効であることを示すための少くとも1つの制御ビット と、要求されたアドレスが存在する場合でも主記憶取出しが起こらなければなら ないことを示すために、かかるビットに質問するための手段と、該キャッシュ・ サブシステムの命令キャッシュ部分に記憶されているラインを主記憶装置に書戻 すことを禁止するための手段とを含む高速データ処理システム用階層記憶システ ム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US1982/001830 WO1984002799A1 (en) | 1982-12-30 | 1982-12-30 | A hierarchical memory system including separate cache memories for storing data and instructions |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60500187A true JPS60500187A (ja) | 1985-02-07 |
| JPH0347540B2 JPH0347540B2 (ja) | 1991-07-19 |
Family
ID=22168504
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58500671A Granted JPS60500187A (ja) | 1982-12-30 | 1982-12-30 | データ処理システム |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4719568A (ja) |
| EP (1) | EP0115036B1 (ja) |
| JP (1) | JPS60500187A (ja) |
| CA (1) | CA1199420A (ja) |
| DE (1) | DE3382179D1 (ja) |
| HK (1) | HK7695A (ja) |
| WO (1) | WO1984002799A1 (ja) |
Families Citing this family (96)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0630075B2 (ja) * | 1984-08-31 | 1994-04-20 | 株式会社日立製作所 | キャッシュメモリを有するデータ処理装置 |
| US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
| JP2539357B2 (ja) * | 1985-03-15 | 1996-10-02 | 株式会社日立製作所 | デ−タ処理装置 |
| US5206945A (en) * | 1985-03-15 | 1993-04-27 | Hitachi, Ltd. | Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses |
| AU5634086A (en) * | 1985-05-06 | 1986-11-13 | Wang Laboratories, Inc. | Information processing system with enhanced instruction execution and support control |
| US5349672A (en) * | 1986-03-17 | 1994-09-20 | Hitachi, Ltd. | Data processor having logical address memories and purge capabilities |
| JPS62222344A (ja) * | 1986-03-25 | 1987-09-30 | Hitachi Ltd | アドレス変換機構 |
| US5010476A (en) * | 1986-06-20 | 1991-04-23 | International Business Machines Corporation | Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units |
| US4992934A (en) * | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
| GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
| US5136692A (en) * | 1987-02-13 | 1992-08-04 | International Business Machines Corporation | Memory disk buffer manager |
| US4912636A (en) * | 1987-03-13 | 1990-03-27 | Magar Surendar S | Data processing device with multiple on chip memory buses |
| US5179689A (en) * | 1987-03-13 | 1993-01-12 | Texas Instruments Incorporated | Dataprocessing device with instruction cache |
| US4851993A (en) * | 1987-04-20 | 1989-07-25 | Amdahl Corporation | Cache move-in bypass |
| US5155833A (en) * | 1987-05-11 | 1992-10-13 | At&T Bell Laboratories | Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory |
| US5168560A (en) * | 1987-05-29 | 1992-12-01 | Amdahl Corporation | Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line |
| JPH0648461B2 (ja) * | 1987-07-09 | 1994-06-22 | 日本電気株式会社 | マイクロプログラムの転送レジスタ指定方式 |
| US4910656A (en) * | 1987-09-21 | 1990-03-20 | Motorola, Inc. | Bus master having selective burst initiation |
| US5091850A (en) * | 1987-09-28 | 1992-02-25 | Compaq Computer Corporation | System for fast selection of non-cacheable address ranges using programmed array logic |
| US5157774A (en) * | 1987-09-28 | 1992-10-20 | Compaq Computer Corporation | System for fast selection of non-cacheable address ranges using programmed array logic |
| US4980816A (en) * | 1987-12-18 | 1990-12-25 | Nec Corporation | Translation look-aside buffer control system with multiple prioritized buffers |
| US5553262B1 (en) * | 1988-01-21 | 1999-07-06 | Mitsubishi Electric Corp | Memory apparatus and method capable of setting attribute of information to be cached |
| JP2617974B2 (ja) * | 1988-03-08 | 1997-06-11 | 富士通株式会社 | データ処理装置 |
| JPH03505793A (ja) * | 1988-07-04 | 1991-12-12 | スウェーディッシュ インスティテュート オブ コンピューター サイエンス | 階層構造を有するキャッシュメモリシステムを含むマルチプロセッサシステム |
| US5317716A (en) * | 1988-08-16 | 1994-05-31 | International Business Machines Corporation | Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line |
| US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
| US6092153A (en) * | 1988-11-14 | 2000-07-18 | Lass; Stanley Edwin | Subsettable top level cache |
| US5187793A (en) * | 1989-01-09 | 1993-02-16 | Intel Corporation | Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache |
| JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
| EP0389175A3 (en) * | 1989-03-15 | 1992-11-19 | Fujitsu Limited | Data prefetch system |
| JPH0740247B2 (ja) * | 1989-06-20 | 1995-05-01 | 松下電器産業株式会社 | キャッシュメモリ装置 |
| US5155828A (en) * | 1989-07-05 | 1992-10-13 | Hewlett-Packard Company | Computing system with a cache memory and an additional look-aside cache memory |
| JPH0661068B2 (ja) * | 1989-07-18 | 1994-08-10 | 株式会社日立製作所 | 記憶再配置方法および階層化記憶システム |
| US7610452B1 (en) * | 1989-10-31 | 2009-10-27 | Canon Kabushiki Kaisha | Data processing system wherein data is stored in a memory and an external storage in parallel |
| US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
| JPH0748190B2 (ja) * | 1990-01-22 | 1995-05-24 | 株式会社東芝 | キャッシュメモリ内蔵マイクロプロセッサ |
| US5206941A (en) * | 1990-01-22 | 1993-04-27 | International Business Machines Corporation | Fast store-through cache memory |
| US5467460A (en) * | 1990-02-14 | 1995-11-14 | Intel Corporation | M&A for minimizing data transfer to main memory from a writeback cache during a cache miss |
| US5014195A (en) * | 1990-05-10 | 1991-05-07 | Digital Equipment Corporation, Inc. | Configurable set associative cache with decoded data element enable lines |
| US5784711A (en) * | 1990-05-18 | 1998-07-21 | Philips Electronics North America Corporation | Data cache prefetching under control of instruction cache |
| DE69127773T2 (de) * | 1990-06-15 | 1998-04-02 | Compaq Computer Corp | Vorrichtung zur echten LRU-Ersetzung |
| US5276832A (en) * | 1990-06-19 | 1994-01-04 | Dell U.S.A., L.P. | Computer system having a selectable cache subsystem |
| FR2664719A1 (fr) * | 1990-07-10 | 1992-01-17 | Philips Electronique Lab | Dispositif de controle pour une memoire tampon a partitionnement reconfigurable. |
| JP2774862B2 (ja) * | 1990-07-16 | 1998-07-09 | 株式会社日立製作所 | Dma制御装置および情報処理装置 |
| US5530941A (en) * | 1990-08-06 | 1996-06-25 | Ncr Corporation | System and method for prefetching data from a main computer memory into a cache memory |
| DE69130967T2 (de) * | 1990-08-06 | 1999-10-21 | Ncr International, Inc. | Rechnerspeicheranordnung |
| DE69224084T2 (de) * | 1991-01-15 | 1998-07-23 | Koninkl Philips Electronics Nv | Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür |
| US5367659A (en) * | 1991-09-30 | 1994-11-22 | Intel Corporation | Tag initialization in a controller for two-way set associative cache |
| US5375216A (en) * | 1992-02-28 | 1994-12-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
| DE4391002T1 (de) * | 1992-03-06 | 1995-02-23 | Rambus Inc | Vor-heranholen in einen Cache-Speicher zum minimieren der Hauptspeicherzugriffszeit und der Cache-Speichergröße in einen Computersystem |
| US5491811A (en) * | 1992-04-20 | 1996-02-13 | International Business Machines Corporation | Cache system using mask bits to recorder the sequences for transfers of data through cache to system memory |
| US5450563A (en) * | 1992-10-30 | 1995-09-12 | International Business Machines Corporation | Storage protection keys in two level cache system |
| EP0624844A2 (en) * | 1993-05-11 | 1994-11-17 | International Business Machines Corporation | Fully integrated cache architecture |
| US5809525A (en) * | 1993-09-17 | 1998-09-15 | International Business Machines Corporation | Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories |
| TW228580B (en) * | 1993-10-01 | 1994-08-21 | Ibm | Information processing system and method of operation |
| US5634108A (en) * | 1993-11-30 | 1997-05-27 | Unisys Corporation | Single chip processing system utilizing general cache and microcode cache enabling simultaneous multiple functions |
| US5574883A (en) * | 1993-11-30 | 1996-11-12 | Unisys Corporation | Single chip processing unit providing immediate availability of frequently used microcode instruction words |
| JP2634141B2 (ja) * | 1994-01-19 | 1997-07-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・システム |
| US5584007A (en) * | 1994-02-09 | 1996-12-10 | Ballard Synergy Corporation | Apparatus and method for discriminating among data to be stored in cache |
| JP3030229B2 (ja) * | 1994-06-20 | 2000-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データを転送する方法及びデータ記憶システム |
| US5630056A (en) * | 1994-09-20 | 1997-05-13 | Stratus Computer, Inc. | Digital data processing methods and apparatus for fault detection and fault tolerance |
| JP3127796B2 (ja) * | 1994-10-07 | 2001-01-29 | 松下電器産業株式会社 | 情報記録再生装置 |
| US5732243A (en) * | 1994-10-18 | 1998-03-24 | Cyrix Corporation | Branch processing unit with target cache using low/high banking to support split prefetching |
| US5651134A (en) * | 1994-10-26 | 1997-07-22 | Ncr Corporation | Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program |
| JP3132749B2 (ja) * | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ・データ処理システム |
| US5774685A (en) * | 1995-04-21 | 1998-06-30 | International Business Machines Corporation | Method and apparatus for biasing cache LRU for prefetched instructions/data based upon evaluation of speculative conditions |
| US5680571A (en) * | 1995-12-28 | 1997-10-21 | Unisys Corporation | Multi-processor data processing system with multiple, separate instruction and operand second level caches |
| US5737749A (en) * | 1996-05-20 | 1998-04-07 | International Business Machines Corporation | Method and system for dynamically sharing cache capacity in a microprocessor |
| US6134631A (en) * | 1996-08-19 | 2000-10-17 | Hyundai Electronics America, Inc. | Non-volatile memory with embedded programmable controller |
| US5875201A (en) * | 1996-12-30 | 1999-02-23 | Unisys Corporation | Second level cache having instruction cache parity error control |
| US5960455A (en) * | 1996-12-30 | 1999-09-28 | Unisys Corporation | Scalable cross bar type storage controller |
| US6122711A (en) | 1997-01-07 | 2000-09-19 | Unisys Corporation | Method of and apparatus for store-in second level cache flush |
| US5860093A (en) * | 1997-01-21 | 1999-01-12 | Unisys Corporation | Reduced instruction processor/storage controller interface |
| US6401167B1 (en) | 1997-10-10 | 2002-06-04 | Rambus Incorporated | High performance cost optimized memory |
| GB9723654D0 (en) * | 1997-11-10 | 1998-01-07 | Philips Electronics Nv | Distributed database access via virtual environment browser |
| US6609174B1 (en) * | 1999-10-19 | 2003-08-19 | Motorola, Inc. | Embedded MRAMs including dual read ports |
| US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
| US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
| US6948010B2 (en) * | 2000-12-20 | 2005-09-20 | Stratus Technologies Bermuda Ltd. | Method and apparatus for efficiently moving portions of a memory block |
| US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
| US6874102B2 (en) * | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
| US6516387B1 (en) * | 2001-07-30 | 2003-02-04 | Lsi Logic Corporation | Set-associative cache having a configurable split and unified mode |
| US6545906B1 (en) * | 2001-10-16 | 2003-04-08 | Motorola, Inc. | Method of writing to scalable magnetoresistance random access memory element |
| EP1383339A1 (en) * | 2002-07-15 | 2004-01-21 | Matsushita Electric Industrial Co., Ltd. | Memory management method for video sequence motion estimation and compensation |
| US7095646B2 (en) * | 2002-07-17 | 2006-08-22 | Freescale Semiconductor, Inc. | Multi-state magnetoresistance random access cell with improved memory storage density |
| US7493480B2 (en) * | 2002-07-18 | 2009-02-17 | International Business Machines Corporation | Method and apparatus for prefetching branch history information |
| US6956763B2 (en) * | 2003-06-27 | 2005-10-18 | Freescale Semiconductor, Inc. | MRAM element and methods for writing the MRAM element |
| US6967366B2 (en) * | 2003-08-25 | 2005-11-22 | Freescale Semiconductor, Inc. | Magnetoresistive random access memory with reduced switching field variation |
| US7129098B2 (en) * | 2004-11-24 | 2006-10-31 | Freescale Semiconductor, Inc. | Reduced power magnetoresistive random access memory elements |
| US8131936B2 (en) * | 2005-02-11 | 2012-03-06 | International Business Machines Corporation | Method and apparatus for implementing a combined data/coherency cache |
| US7552283B2 (en) * | 2006-01-20 | 2009-06-23 | Qualcomm Incorporated | Efficient memory hierarchy management |
| WO2007099643A1 (ja) * | 2006-03-03 | 2007-09-07 | Fujitsu Limited | マルチプロセッサシステム及びマルチプロセッサシステムの動作方法 |
| US8738863B2 (en) * | 2009-09-25 | 2014-05-27 | Intel Corporation | Configurable multi-level buffering in media and pipelined processing components |
| US10140219B2 (en) | 2012-11-02 | 2018-11-27 | Blackberry Limited | Multi-port shared cache apparatus |
| JP6155723B2 (ja) * | 2013-03-18 | 2017-07-05 | 富士通株式会社 | レーダ装置及びプログラム |
| CN107038125B (zh) * | 2017-04-25 | 2020-11-24 | 上海兆芯集成电路有限公司 | 具有加速预取请求的独立流水线的处理器高速缓存 |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3618041A (en) * | 1968-10-31 | 1971-11-02 | Hitachi Ltd | Memory control system |
| US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
| GB1354827A (en) * | 1971-08-25 | 1974-06-05 | Ibm | Data processing systems |
| JPS5440182B2 (ja) * | 1974-02-26 | 1979-12-01 | ||
| US4212058A (en) * | 1975-09-27 | 1980-07-08 | National Research Development Corporation | Computer store mechanism |
| DE2547488C2 (de) * | 1975-10-23 | 1982-04-15 | Ibm Deutschland Gmbh, 7000 Stuttgart | Mikroprogrammierte Datenverarbeitungsanlage |
| US4055851A (en) * | 1976-02-13 | 1977-10-25 | Digital Equipment Corporation | Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle |
| US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
| US4214303A (en) * | 1977-12-22 | 1980-07-22 | Honeywell Information Systems Inc. | Word oriented high speed buffer memory system connected to a system bus |
| US4197580A (en) * | 1978-06-08 | 1980-04-08 | Bell Telephone Laboratories, Incorporated | Data processing system including a cache memory |
| US4312036A (en) * | 1978-12-11 | 1982-01-19 | Honeywell Information Systems Inc. | Instruction buffer apparatus of a cache unit |
| US4268907A (en) * | 1979-01-22 | 1981-05-19 | Honeywell Information Systems Inc. | Cache unit bypass apparatus |
| DE3068498D1 (en) * | 1979-05-09 | 1984-08-16 | Int Computers Ltd | Hierarchical data storage system |
| JPS5687282A (en) * | 1979-12-14 | 1981-07-15 | Nec Corp | Data processor |
| US4345309A (en) * | 1980-01-28 | 1982-08-17 | Digital Equipment Corporation | Relating to cached multiprocessor system with pipeline timing |
| US4467414A (en) * | 1980-08-22 | 1984-08-21 | Nippon Electric Co., Ltd. | Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories |
| US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
| US4530050A (en) * | 1981-08-26 | 1985-07-16 | Hitachi, Ltd. | Central processing unit for executing instructions of variable length having end information for operand specifiers |
| US4472774A (en) * | 1982-09-27 | 1984-09-18 | Data General Corp. | Encachement apparatus |
| US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
| US4597044A (en) * | 1982-10-14 | 1986-06-24 | Honeywell Information Systems, Inc. | Apparatus and method for providing a composite descriptor in a data processing system |
| US4527238A (en) * | 1983-02-28 | 1985-07-02 | Honeywell Information Systems Inc. | Cache with independent addressable data and directory arrays |
| US4612612A (en) * | 1983-08-30 | 1986-09-16 | Amdahl Corporation | Virtually addressed cache |
-
1982
- 1982-12-30 US US06/862,348 patent/US4719568A/en not_active Expired - Lifetime
- 1982-12-30 WO PCT/US1982/001830 patent/WO1984002799A1/en not_active Ceased
- 1982-12-30 JP JP58500671A patent/JPS60500187A/ja active Granted
-
1983
- 1983-12-19 CA CA000443643A patent/CA1199420A/en not_active Expired
- 1983-12-21 DE DE8383112890T patent/DE3382179D1/de not_active Expired - Lifetime
- 1983-12-21 EP EP83112890A patent/EP0115036B1/en not_active Expired
-
1995
- 1995-01-19 HK HK7695A patent/HK7695A/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| DE3382179D1 (de) | 1991-04-04 |
| JPH0347540B2 (ja) | 1991-07-19 |
| CA1199420A (en) | 1986-01-14 |
| EP0115036B1 (en) | 1991-02-27 |
| EP0115036A3 (en) | 1986-10-15 |
| WO1984002799A1 (en) | 1984-07-19 |
| US4719568A (en) | 1988-01-12 |
| EP0115036A2 (en) | 1984-08-08 |
| HK7695A (en) | 1995-01-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS60500187A (ja) | データ処理システム | |
| US9311246B2 (en) | Cache memory system | |
| EP0604139B1 (en) | Computer system including a prefetch cache | |
| US4774654A (en) | Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory | |
| US7203815B2 (en) | Multi-level page cache for enhanced file system performance via read ahead | |
| US5813031A (en) | Caching tag for a large scale cache computer memory system | |
| EP0301211B1 (en) | Cache management for a peripheral data storage subsystem | |
| JP4298800B2 (ja) | キャッシュメモリにおけるプリフェッチ管理 | |
| US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
| JP2007011523A (ja) | データの先読み方法及び計算機システム | |
| JP3262519B2 (ja) | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム | |
| US6202128B1 (en) | Method and system for pre-fetch cache interrogation using snoop port | |
| US5732409A (en) | Caching disk controller implemented by hardwired logic | |
| US5367657A (en) | Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems | |
| US6314494B1 (en) | Dynamically size configurable data buffer for data cache and prefetch cache memory | |
| JPH04253240A (ja) | コンピューターメモリシステムにおけるデータ統合方法 | |
| US6598124B1 (en) | System and method for identifying streaming-data | |
| EP0741356A1 (en) | Cache architecture and method of operation | |
| US5619673A (en) | Virtual access cache protection bits handling method and apparatus | |
| US6934810B1 (en) | Delayed leaky write system and method for a cache memory | |
| JP2943896B2 (ja) | 計算機システム及びディスク・データの制御方法 | |
| WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
| JPH04250543A (ja) | コンピューターメモリシステム | |
| EP0474356A1 (en) | Cache memory and operating method | |
| US8214597B2 (en) | Cache tentative read buffer |