JPH0364893B2 - - Google Patents
Info
- Publication number
- JPH0364893B2 JPH0364893B2 JP60253013A JP25301385A JPH0364893B2 JP H0364893 B2 JPH0364893 B2 JP H0364893B2 JP 60253013 A JP60253013 A JP 60253013A JP 25301385 A JP25301385 A JP 25301385A JP H0364893 B2 JPH0364893 B2 JP H0364893B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- storage
- block
- data
- level storage
- 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
- 230000007246 mechanism Effects 0.000 description 7
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- 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
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History based prefetching
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)
Description
【発明の詳細な説明】
A 産業上の利用分野
本発明はプロセツサの各々が複数レベルの記憶
装置を有するデータ処理システムに係り、更に詳
細に説明すれば記憶階層におけるプロセツサの記
憶アクセス時間を短縮することに係る。
装置を有するデータ処理システムに係り、更に詳
細に説明すれば記憶階層におけるプロセツサの記
憶アクセス時間を短縮することに係る。
B 従来の技術
データ処理システムの分野では、プロセツサ
(CPU)が記憶装置よりもずつと高速であること
は周知である。従つて、CPUが可能な限り速や
かにかつ円滑にデータをアクセスすることができ
るように、CPUの記憶装置を、キヤツシユ、主
記憶装置、ドラム、DASD(直接アクセス記憶装
置)等の異種記憶装置の階層構成とするのが普通
である。論理的には、CPUから記憶アクセスを
行う場合、必要なデータをあるレベルで発見する
まで、記憶階層をレベル順に探索し、次いでこの
データをすべての上位レベルにロードしなければ
ならない。このように、要求に基づいてCPUに
データを供給する方法は、記憶階層を実現する最
も簡単で基本的なものである。
(CPU)が記憶装置よりもずつと高速であること
は周知である。従つて、CPUが可能な限り速や
かにかつ円滑にデータをアクセスすることができ
るように、CPUの記憶装置を、キヤツシユ、主
記憶装置、ドラム、DASD(直接アクセス記憶装
置)等の異種記憶装置の階層構成とするのが普通
である。論理的には、CPUから記憶アクセスを
行う場合、必要なデータをあるレベルで発見する
まで、記憶階層をレベル順に探索し、次いでこの
データをすべての上位レベルにロードしなければ
ならない。このように、要求に基づいてCPUに
データを供給する方法は、記憶階層を実現する最
も簡単で基本的なものである。
米国特許第3670309号は、キヤツシユおよび主
記憶装置から成る2レベルの記憶装置を有するデ
ータ処理システムの記憶コントローラを開示して
いる。この特許は、CPUがキヤツシユおよび主
記憶装置のデイレクトリを同時に質問することを
可能にする。
記憶装置から成る2レベルの記憶装置を有するデ
ータ処理システムの記憶コントローラを開示して
いる。この特許は、CPUがキヤツシユおよび主
記憶装置のデイレクトリを同時に質問することを
可能にする。
米国特許第4290103号はマルチプロセツサ・シ
ステムにおけるキヤツシユの管理手法を開示して
いる。このシステムの各CPUはローカル・キヤ
ツシユを有し、また第2レベル(L2)のキヤツ
シユおよび主記憶装置を共有している。L2キヤ
ツシユでは、フラグまたはタグが使用されている
が、これらはL2ブロツク内のキヤツシユ・ライ
ンを指示するためのものである。その目的は、キ
ヤツシユ・ラインを含むL2ブロツクがL2から置
換されるような場合に、キヤツシユ・ラインの不
要な無効化を避けることである。
ステムにおけるキヤツシユの管理手法を開示して
いる。このシステムの各CPUはローカル・キヤ
ツシユを有し、また第2レベル(L2)のキヤツ
シユおよび主記憶装置を共有している。L2キヤ
ツシユでは、フラグまたはタグが使用されている
が、これらはL2ブロツク内のキヤツシユ・ライ
ンを指示するためのものである。その目的は、キ
ヤツシユ・ラインを含むL2ブロツクがL2から置
換されるような場合に、キヤツシユ・ラインの不
要な無効化を避けることである。
米国特許第3670307号は、2レベルの記憶装置
を使用するシステムを開示している。この特許で
は、高速記憶装置用のタグ記憶装置および主記憶
装置用のデイレクトリ記憶装置が使用されてい
る。所要のデータは主記憶装置から検索されて高
速記憶装置に入れられ、これに応じてタグ索引が
更新される。タグは、高速記憶装置内の対応する
アドレスが取出されたことをすビツトを含む。
を使用するシステムを開示している。この特許で
は、高速記憶装置用のタグ記憶装置および主記憶
装置用のデイレクトリ記憶装置が使用されてい
る。所要のデータは主記憶装置から検索されて高
速記憶装置に入れられ、これに応じてタグ索引が
更新される。タグは、高速記憶装置内の対応する
アドレスが取出されたことをすビツトを含む。
米国特許第4344130号は、マイクロプロセツサ
でデータ転送機能を実行するためのブロツク移動
命令を開示している。
でデータ転送機能を実行するためのブロツク移動
命令を開示している。
米国特許第3839704号は、背景記憶装置からバ
ツフア記憶装置へデータ・ブロツクを転送するた
めにダミー要求を利用するようにした計算システ
ムを開示している。
ツフア記憶装置へデータ・ブロツクを転送するた
めにダミー要求を利用するようにした計算システ
ムを開示している。
前述の特許の大部分は、システム中の各CPU
から複数レベルの記憶装置への同時アクセスを扱
うか、または異なつた記憶レベル間の矛盾のない
データ移動を扱つている。CPUが実際にデータ
を必要とする以前に、記憶階層における記憶レベ
ル間でデータを予めロードすることに関する特許
はほとんどない。
から複数レベルの記憶装置への同時アクセスを扱
うか、または異なつた記憶レベル間の矛盾のない
データ移動を扱つている。CPUが実際にデータ
を必要とする以前に、記憶階層における記憶レベ
ル間でデータを予めロードすることに関する特許
はほとんどない。
米国特許第3292153号は、低速記憶装置および
高速キヤツシユを含む記憶システムを開示してい
る。この記憶システムは先回りスキヤンすなわち
‘プログラム・ルツクアヘツド’機構を有してお
り、これによりCPUが命令を実行中で使用状態
にあり且つ、記憶システムが使用状態にない場
合、次のいくつかの命令を記憶装置からキヤツシ
ユに先取りするようにしている。
高速キヤツシユを含む記憶システムを開示してい
る。この記憶システムは先回りスキヤンすなわち
‘プログラム・ルツクアヘツド’機構を有してお
り、これによりCPUが命令を実行中で使用状態
にあり且つ、記憶システムが使用状態にない場
合、次のいくつかの命令を記憶装置からキヤツシ
ユに先取りするようにしている。
米国特許第3898624号は、次のラインを主記憶
装置から高速キヤツシユに先取りし、この先取り
中にキヤツシユ内の既存ラインを置換えるための
アルゴリズムを開示している。
装置から高速キヤツシユに先取りし、この先取り
中にキヤツシユ内の既存ラインを置換えるための
アルゴリズムを開示している。
C 発明が解決しようとする問題点
しかし、これらの従来知られた先取り方法で
は、高速キヤツシユを効率的に使用し、先取りデ
ータの高いヒツト率を得ることができない。
は、高速キヤツシユを効率的に使用し、先取りデ
ータの高いヒツト率を得ることができない。
本発明の目的は、CPUがデータを実際に要求
する前に、記憶階層中の或る記憶レベル、例えば
L2からその直近上位の記憶レベル、例えばL1へ
データを効率良く先取りするようにした、簡単か
つ有効な先取り機構を提供することである。
する前に、記憶階層中の或る記憶レベル、例えば
L2からその直近上位の記憶レベル、例えばL1へ
データを効率良く先取りするようにした、簡単か
つ有効な先取り機構を提供することである。
D 問題点を解決するための手段
本発明による先取り機構は少なくとも2レベル
を有する記憶階層用のものである。連続する2レ
ベルの記憶装置をそれぞれL1およびL2とし、L1
を高速小容量の記憶装置、L2を低速大容量の記
憶装置とする。L2およびL1のデータの単位を、
それぞれブロツクおよびサブブロツクとする。各
ブロツクはその連続アドレスに複数のサブブロツ
クを保持する。本発明の先取り機構は、 L2に記憶された各サブブロツクが、L1に以前
記憶されたことを示す1状態と以前記憶されたこ
とのないことを示す0状態とから成り、L1内で
の該サブブロツクの使用履歴を記録する置換ビツ
トを有し、 L2に複数のサブブロツクのデータをロードす
るとき各サブブロツクの置換ビツトを0状態にセ
ツトし、L1からL2にサブブロツクのデータを転
送するとき置換ビツトを1状態にセツトする手段
と、 プロセツサがL1に対して所与のブロツクに含
まれるある特定のサブブロツクを参照した際に、
該特定のサブブロツクがL1に記憶されていない
場合、前記所与のブロツクに含まれる複数のサブ
ブロツクのうち置換ビツトが1状態にセツトされ
ているすべてのサブブロツクのデータをL2から
L1へ先取りする手段、 とを備えている。
を有する記憶階層用のものである。連続する2レ
ベルの記憶装置をそれぞれL1およびL2とし、L1
を高速小容量の記憶装置、L2を低速大容量の記
憶装置とする。L2およびL1のデータの単位を、
それぞれブロツクおよびサブブロツクとする。各
ブロツクはその連続アドレスに複数のサブブロツ
クを保持する。本発明の先取り機構は、 L2に記憶された各サブブロツクが、L1に以前
記憶されたことを示す1状態と以前記憶されたこ
とのないことを示す0状態とから成り、L1内で
の該サブブロツクの使用履歴を記録する置換ビツ
トを有し、 L2に複数のサブブロツクのデータをロードす
るとき各サブブロツクの置換ビツトを0状態にセ
ツトし、L1からL2にサブブロツクのデータを転
送するとき置換ビツトを1状態にセツトする手段
と、 プロセツサがL1に対して所与のブロツクに含
まれるある特定のサブブロツクを参照した際に、
該特定のサブブロツクがL1に記憶されていない
場合、前記所与のブロツクに含まれる複数のサブ
ブロツクのうち置換ビツトが1状態にセツトされ
ているすべてのサブブロツクのデータをL2から
L1へ先取りする手段、 とを備えている。
E 作用
本発明の先取り機構は、(1)各ブロツクがL2に
駐在する時間は一般にそのサブブロツクがL1に
駐在する時間よりもずつと長く、そして(2)CPU
は常に近接したデータ群を参照する傾向(一般
に、局所性という)を有する、ということに基づ
いている。ブロツクがL2に駐在する時間は、そ
のサブブロツクを反復して取出し、取出したサブ
ブロツクをL1でどのように置換するかを決定す
るのに十分な時間でなければならない。本発明
は、サブブロツクの使用履歴を記録することによ
りCPUがサブブロツクを実際に必要とする前に、
これらのサブブロツクをL1に先取りすることが
できるようにした、簡単かつ有効な方法を開示す
る。
駐在する時間は一般にそのサブブロツクがL1に
駐在する時間よりもずつと長く、そして(2)CPU
は常に近接したデータ群を参照する傾向(一般
に、局所性という)を有する、ということに基づ
いている。ブロツクがL2に駐在する時間は、そ
のサブブロツクを反復して取出し、取出したサブ
ブロツクをL1でどのように置換するかを決定す
るのに十分な時間でなければならない。本発明
は、サブブロツクの使用履歴を記録することによ
りCPUがサブブロツクを実際に必要とする前に、
これらのサブブロツクをL1に先取りすることが
できるようにした、簡単かつ有効な方法を開示す
る。
この先取り機構は、記憶階層における通常の要
求時取出しに加えて、通常の要求時取出しに伴う
記憶アクセスの遅延を少なくするという効果を有
する。本発明の実施に際し、L2デイレクトリに
は、ブロツク内の各サブブロツクに関連するrビ
ツト(置換ビツトを意味する)と呼ばれる追加ビ
ツトが設けられる。このrビツトは、当該サブブ
ロツクがL1にロードされた後、L1からL2に置換
されたことを表わす。本発明にしたがつてL1に
設けられた置換ロジツクは、サブブロツクが置換
されるような場合に、そのアドレスをL2に送つ
て、rビツトを更新させるように動作する。L1
でサブブロツクミスが生じた場合、L2はミスし
たサブブロツクを保持するブロツク内のrビツト
を使用することにより、CPUによつて以前に使
用され且つL1から置換えられた残りのサブブロ
ツクを先取りすることができる。先取り動作は、
L1の記憶容量のより効率的な使用ならびに記憶
アクセス時間の短縮を生じる。
求時取出しに加えて、通常の要求時取出しに伴う
記憶アクセスの遅延を少なくするという効果を有
する。本発明の実施に際し、L2デイレクトリに
は、ブロツク内の各サブブロツクに関連するrビ
ツト(置換ビツトを意味する)と呼ばれる追加ビ
ツトが設けられる。このrビツトは、当該サブブ
ロツクがL1にロードされた後、L1からL2に置換
されたことを表わす。本発明にしたがつてL1に
設けられた置換ロジツクは、サブブロツクが置換
されるような場合に、そのアドレスをL2に送つ
て、rビツトを更新させるように動作する。L1
でサブブロツクミスが生じた場合、L2はミスし
たサブブロツクを保持するブロツク内のrビツト
を使用することにより、CPUによつて以前に使
用され且つL1から置換えられた残りのサブブロ
ツクを先取りすることができる。先取り動作は、
L1の記憶容量のより効率的な使用ならびに記憶
アクセス時間の短縮を生じる。
F 実施例
以下、第1図及び第2図の実施例を説明する前
に、第3図ないし第8図を参照して本発明の背景
技術を説明する。
に、第3図ないし第8図を参照して本発明の背景
技術を説明する。
第3図に示すようにL1およびL2という記号は、
コンピユータシステムの記憶階層における連続す
る任意の2レベルを指すものとする。本発明は連
続する任意の2レベルに適用可能であるが、本発
明の詳細な説明を容易にするため、以下では、
L1およびL2をレベル1キヤツシユおよびレベル
2キヤツシユと仮定する。
コンピユータシステムの記憶階層における連続す
る任意の2レベルを指すものとする。本発明は連
続する任意の2レベルに適用可能であるが、本発
明の詳細な説明を容易にするため、以下では、
L1およびL2をレベル1キヤツシユおよびレベル
2キヤツシユと仮定する。
第4図はデータ処理システムのブロツク図であ
つて、プロセツサ(CPU)100とその3レベ
ルの記憶階層装置:すなわちレベル1(L1)キヤ
ツシユ200、レベル2(L2)キヤツシユ300
および主記憶400を示している。このシステム
は、記憶要求のアドレスを転送する単一または複
数のアドレス・バス110、並びに要求されたデ
ータを転送するデータ・バス120により接続さ
れている。一般に記憶要求(書込みまたは取出し
要求)は、まずアドレス・バス110を介して
L1キヤツシユ200に転送され、次にL2キヤツ
シユ300に、最後に主記憶装置400に転送さ
れる。このような記憶階層の順次探索は、要求し
たデータが発見されたレベルで終了する。
つて、プロセツサ(CPU)100とその3レベ
ルの記憶階層装置:すなわちレベル1(L1)キヤ
ツシユ200、レベル2(L2)キヤツシユ300
および主記憶400を示している。このシステム
は、記憶要求のアドレスを転送する単一または複
数のアドレス・バス110、並びに要求されたデ
ータを転送するデータ・バス120により接続さ
れている。一般に記憶要求(書込みまたは取出し
要求)は、まずアドレス・バス110を介して
L1キヤツシユ200に転送され、次にL2キヤツ
シユ300に、最後に主記憶装置400に転送さ
れる。このような記憶階層の順次探索は、要求し
たデータが発見されたレベルで終了する。
詳細なシステム動作の説明に入る前に、本発明
に関連する用語の定義について述べる。アクセス
単位とは、記憶要求の大きさ(サイズ)を表わ
し、記憶装置中の一定のバイト数で示す。本発明
は特定のアクセス単位を必要としないが、説明の
便宜上、記憶アクセスはすべてダブルワード
(DW)単位であると仮定する。L1キヤツシユ2
00の記憶位置はラインと呼ばれ、記憶装置内の
連続するデータ部分を保持することができる。
L1キヤツシユ・デイレクトリは、現にL1キヤツ
シユ200内にある各ラインごとに1つのエント
リを保持する。このデイレクトリは、キヤツシユ
内にある複数ラインの置換順序も維持している。
かくて、キヤツシユが一杯のときに或るラインを
ロードしようとする場合には、LRU(least−
recently−used)ラインが置換されることにな
る。L2キヤツシユ300の記憶単位はブロツク
とよばれ、これはL1キヤツシユ200内の1ラ
インよりも何倍も大きいものと仮定する。現在の
DW記憶アクセスを保持するラインおよびブロツ
クはそれぞれ、アクセス・ラインおよびアクセ
ス・ブロツクと呼ばれる。キヤツシユ・ミス時
に、ブロツク全体のデータをキヤツシユに送入し
たり、キヤツシユから送出したりする全ブロツク
L2キヤツシユ300は、構造上も動作上もL1キ
ヤツシユ200と同じである。
に関連する用語の定義について述べる。アクセス
単位とは、記憶要求の大きさ(サイズ)を表わ
し、記憶装置中の一定のバイト数で示す。本発明
は特定のアクセス単位を必要としないが、説明の
便宜上、記憶アクセスはすべてダブルワード
(DW)単位であると仮定する。L1キヤツシユ2
00の記憶位置はラインと呼ばれ、記憶装置内の
連続するデータ部分を保持することができる。
L1キヤツシユ・デイレクトリは、現にL1キヤツ
シユ200内にある各ラインごとに1つのエント
リを保持する。このデイレクトリは、キヤツシユ
内にある複数ラインの置換順序も維持している。
かくて、キヤツシユが一杯のときに或るラインを
ロードしようとする場合には、LRU(least−
recently−used)ラインが置換されることにな
る。L2キヤツシユ300の記憶単位はブロツク
とよばれ、これはL1キヤツシユ200内の1ラ
インよりも何倍も大きいものと仮定する。現在の
DW記憶アクセスを保持するラインおよびブロツ
クはそれぞれ、アクセス・ラインおよびアクセ
ス・ブロツクと呼ばれる。キヤツシユ・ミス時
に、ブロツク全体のデータをキヤツシユに送入し
たり、キヤツシユから送出したりする全ブロツク
L2キヤツシユ300は、構造上も動作上もL1キ
ヤツシユ200と同じである。
キヤツシユおよびその次の記憶レベルの双方に
おけるデータのコピーの整合性を維持するには、
2つの方法がある。ストアイン(Store−in)キ
ヤツシユでは、変更されたライン全体をキヤツシ
ユから次のレベルに置換するまで、変更されたラ
インの最新のコピーをキヤツシユだけに保持す
る。ストアスルー(Store−thru)キヤツシユで
は、キヤツシユおよびその次のレベルの両者は、
プロセツサにより変更されたあらゆるデータの最
新のコピーを保持するようにされる。これは、す
べての書込み時にキヤツシユおよびその次のレベ
ルの両者を更新することを必要とする。これに対
し、ストアイン・キヤツシユでは、このような場
合に次のレベルを更新しなくてもよい。説明の便
宜上、以下ではL1キヤツシユ200をストアス
ルー・キヤツシユ、L2キヤツシユ300をスト
アイン・キヤツシユと仮定する。ストアイン・キ
ヤツシユおよびその置換ロジツクの詳細な説明
は、米国特許第3735360号、同第3771137号に記載
されている。ストアスルー・キヤツシユの詳細な
説明は、コンチの論文“バツフア記憶装置の概
念”(C.J.Conti“Concepts for Buffer
Storage”)、IEEEコンピユータ・グループ・ニ
ユース、1969年3月、9〜13頁に記載されてい
る。従つて、これらの装置の詳細な説明は本明細
書では省略する。
おけるデータのコピーの整合性を維持するには、
2つの方法がある。ストアイン(Store−in)キ
ヤツシユでは、変更されたライン全体をキヤツシ
ユから次のレベルに置換するまで、変更されたラ
インの最新のコピーをキヤツシユだけに保持す
る。ストアスルー(Store−thru)キヤツシユで
は、キヤツシユおよびその次のレベルの両者は、
プロセツサにより変更されたあらゆるデータの最
新のコピーを保持するようにされる。これは、す
べての書込み時にキヤツシユおよびその次のレベ
ルの両者を更新することを必要とする。これに対
し、ストアイン・キヤツシユでは、このような場
合に次のレベルを更新しなくてもよい。説明の便
宜上、以下ではL1キヤツシユ200をストアス
ルー・キヤツシユ、L2キヤツシユ300をスト
アイン・キヤツシユと仮定する。ストアイン・キ
ヤツシユおよびその置換ロジツクの詳細な説明
は、米国特許第3735360号、同第3771137号に記載
されている。ストアスルー・キヤツシユの詳細な
説明は、コンチの論文“バツフア記憶装置の概
念”(C.J.Conti“Concepts for Buffer
Storage”)、IEEEコンピユータ・グループ・ニ
ユース、1969年3月、9〜13頁に記載されてい
る。従つて、これらの装置の詳細な説明は本明細
書では省略する。
本発明は既存のL1キヤツシユおよびL2キヤツ
シユの設計に基づいているので、既存の構成に変
更または新しい構成要素を必要とすることがあつ
てもその影響は最小限で済む。
シユの設計に基づいているので、既存の構成に変
更または新しい構成要素を必要とすることがあつ
てもその影響は最小限で済む。
ここで、CPU100(第4図)からの記憶ア
クセスが24ビツトのアドレスで行われるものと仮
定する。L1キヤツシユ200は128カラム(コン
グルエンス・クラスCCとも呼ぶ)を有し、各CC
に4行(4ウエイのセツト・アソシアテイビテイ
と呼ぶ)を有し、そして128バイトのライン・サ
イズを有する。第5図は、L1キヤツシユ200
内の異なつた部分をアドレスするために24ビツ
ト・アドレスのフイールドがどのように使用され
るかを示す。L2キヤツシユ300も、128のCC、
4ウエイのセツト・アソシアテイビテイを有し、
そして1024バイトのブロツク・サイズを有する。
従つて、1つのL2ブロツクは、8個のL1ライン
を連続アドレスに保持することができる。第6図
は、L2キヤツシユ300をアドレスするために
前記と同じ24ビツト・アドレスのフイールドがど
のように使用されるかを示す。L1キヤツシユ2
00とL2キヤツシユ300のサイズはそれぞれ
異なつているのでそれぞれのフイールドも異なつ
ていることに注意されたい。
クセスが24ビツトのアドレスで行われるものと仮
定する。L1キヤツシユ200は128カラム(コン
グルエンス・クラスCCとも呼ぶ)を有し、各CC
に4行(4ウエイのセツト・アソシアテイビテイ
と呼ぶ)を有し、そして128バイトのライン・サ
イズを有する。第5図は、L1キヤツシユ200
内の異なつた部分をアドレスするために24ビツ
ト・アドレスのフイールドがどのように使用され
るかを示す。L2キヤツシユ300も、128のCC、
4ウエイのセツト・アソシアテイビテイを有し、
そして1024バイトのブロツク・サイズを有する。
従つて、1つのL2ブロツクは、8個のL1ライン
を連続アドレスに保持することができる。第6図
は、L2キヤツシユ300をアドレスするために
前記と同じ24ビツト・アドレスのフイールドがど
のように使用されるかを示す。L1キヤツシユ2
00とL2キヤツシユ300のサイズはそれぞれ
異なつているのでそれぞれのフイールドも異なつ
ていることに注意されたい。
第7図はL1キヤツシユ・デイレクトリ内の1
エントリを示す。このエントリは、第5図のフイ
ールドAに相当するライン識別子Aおよび使用ビ
ツトを有する。使用ビツトは、当該ラインがL2
からL1に最後に転送されて以来、使用されたこ
とがあるかどうかを示す。
エントリを示す。このエントリは、第5図のフイ
ールドAに相当するライン識別子Aおよび使用ビ
ツトを有する。使用ビツトは、当該ラインがL2
からL1に最後に転送されて以来、使用されたこ
とがあるかどうかを示す。
第8図はL2キヤツシユ・デイレクトリ内の1
エントリを示す。このエントリは、第6図のフイ
ールドA′に相当するブロツク識別子A′、および
当該ブロツク内の格ラインごとに1つのrビツト
(置換ビツト)を保持する。rビツトは、そのラ
インがL1にロードされてから(L2に)置換えら
れたかどうかを示す。次に、第2図および第1図
を参照して、L1キヤツシユおよびL2キヤツシユ
の動作の詳細を説明する。
エントリを示す。このエントリは、第6図のフイ
ールドA′に相当するブロツク識別子A′、および
当該ブロツク内の格ラインごとに1つのrビツト
(置換ビツト)を保持する。rビツトは、そのラ
インがL1にロードされてから(L2に)置換えら
れたかどうかを示す。次に、第2図および第1図
を参照して、L1キヤツシユおよびL2キヤツシユ
の動作の詳細を説明する。
第2図は、L1キヤツシユ200(第4図)内
のL1キヤツシユ・デイレクトリ201と、L2キ
ヤツシユ300に対する新しいインタフエース2
10と、先取りされたラインの確認ロジツク22
0の詳細ブロツク図を示す。図示のシステムは、
4ウエイ式キヤツシユ・システムであつて、L1
キヤツシユ・デイレクトリ201、更新/置換ア
レイ制御ロジツクおよびL1キヤツシユ・データ
アレイ250をふくむ。L1キヤツシユ・デイレ
クトリ201は、アドレス入力ゲート209およ
びアドレス比較ロジツク205を含む。更新/置
換アレイは、置換アレイ207、更新/置換ロジ
ツク206、確認ロジツク220、ラインを置換
する際のL2キヤツシユ300とのインターフエ
ース210、およびアドレス・ゲート208から
成る。
のL1キヤツシユ・デイレクトリ201と、L2キ
ヤツシユ300に対する新しいインタフエース2
10と、先取りされたラインの確認ロジツク22
0の詳細ブロツク図を示す。図示のシステムは、
4ウエイ式キヤツシユ・システムであつて、L1
キヤツシユ・デイレクトリ201、更新/置換ア
レイ制御ロジツクおよびL1キヤツシユ・データ
アレイ250をふくむ。L1キヤツシユ・デイレ
クトリ201は、アドレス入力ゲート209およ
びアドレス比較ロジツク205を含む。更新/置
換アレイは、置換アレイ207、更新/置換ロジ
ツク206、確認ロジツク220、ラインを置換
する際のL2キヤツシユ300とのインターフエ
ース210、およびアドレス・ゲート208から
成る。
CPU100からアドレス・バス110に与え
られる記憶アクセスのアドレスは、第5図のAお
よびBデイレクトリ201および置換アレイ20
7をアドレスするために使用される。ライン識別
子aは、アドレス入力ゲート209およびアドレ
ス比較ジツク205に供給される。(コングルエ
ンス・クラス)アドレスBは線202からL1キ
ヤツシユ・デイレクトリ201に供給され、ライ
ン識別子のうちどのCCを比較すべきかを選定す
る。最初、Bにより指定されたCC内のエントリ
E、F、GおよびHをアドレス比較ロジツク20
5に同時に読出してAと比較する。それらの中の
1つが一致した場合、当該アクセスはライン・ヒ
ツトを生じる。アクセスの種類(取出しまたは書
込み)に応うじて、L1キヤツシユ・データアレ
イ250は所要の動作をする。取出しの場合、も
し一致するラインがなかつたなら、ライン・ミス
が生じ、アクセス・ラインの要求がL2キヤツシ
ユ300に送られる。書込みミスの場合には、変
更すべきデータをL2キヤツシユ300に単に転
送する。
られる記憶アクセスのアドレスは、第5図のAお
よびBデイレクトリ201および置換アレイ20
7をアドレスするために使用される。ライン識別
子aは、アドレス入力ゲート209およびアドレ
ス比較ジツク205に供給される。(コングルエ
ンス・クラス)アドレスBは線202からL1キ
ヤツシユ・デイレクトリ201に供給され、ライ
ン識別子のうちどのCCを比較すべきかを選定す
る。最初、Bにより指定されたCC内のエントリ
E、F、GおよびHをアドレス比較ロジツク20
5に同時に読出してAと比較する。それらの中の
1つが一致した場合、当該アクセスはライン・ヒ
ツトを生じる。アクセスの種類(取出しまたは書
込み)に応うじて、L1キヤツシユ・データアレ
イ250は所要の動作をする。取出しの場合、も
し一致するラインがなかつたなら、ライン・ミス
が生じ、アクセス・ラインの要求がL2キヤツシ
ユ300に送られる。書込みミスの場合には、変
更すべきデータをL2キヤツシユ300に単に転
送する。
更新/置換ロジツク206および置換アレイ2
07におけるLRU置換論理の説明は米国特許第
4008460号に記載されているので、その詳細な説
明は省略する。更新/置換ロジツク206は、線
204のフイールドBにより指定されたCC中の
ラインの現在の置換ステータスを置換アレイ20
7から読取る。L1キヤツシユ200のアクセス
がヒツトの場合、ラインAがL1キヤツシユ20
0に転送されてから始めて使用されたことを条件
として、確認ロジツク220はAのライン・エン
トリ中の使用ビツトをオンに転ずる。一方、ライ
ンAがミスの場合、置換ステータスは、ラインA
の空間を作るためにどのラインを置換するかを示
し、またインタフエース210は置換すべきライ
ンの使用ビツトを検査する。このラインが使用さ
れている場合そのライン識別子がL2キヤツシユ
300に送られるので、L2キヤツシユ300は
そのrビツトを更新することができる。さもなけ
れば、すなわち置換されるラインが以前に全く使
用されていない場合には、インタフエース210
からL2キヤツシユ300へ特別なアクセス要求
は行わない。CC内の更新されたライン識別子は
アドレス・ゲート208に書込まれる。つまり、
使用ビツトをオンにされたラインAの新しいエン
トリは、アドレス・ゲート208に書込まれた
後、アドレス入力ゲート209に送られ、次いで
L1キヤツシユ・デイレクトリ201を更新する
ために使用されるのである。置換アレイ207の
更新は、ラインAがミスしているかどうかに無関
係に、ラインAがそのCC内のMRU(most−
recently−used)ラインになるようにして行われ
る。
07におけるLRU置換論理の説明は米国特許第
4008460号に記載されているので、その詳細な説
明は省略する。更新/置換ロジツク206は、線
204のフイールドBにより指定されたCC中の
ラインの現在の置換ステータスを置換アレイ20
7から読取る。L1キヤツシユ200のアクセス
がヒツトの場合、ラインAがL1キヤツシユ20
0に転送されてから始めて使用されたことを条件
として、確認ロジツク220はAのライン・エン
トリ中の使用ビツトをオンに転ずる。一方、ライ
ンAがミスの場合、置換ステータスは、ラインA
の空間を作るためにどのラインを置換するかを示
し、またインタフエース210は置換すべきライ
ンの使用ビツトを検査する。このラインが使用さ
れている場合そのライン識別子がL2キヤツシユ
300に送られるので、L2キヤツシユ300は
そのrビツトを更新することができる。さもなけ
れば、すなわち置換されるラインが以前に全く使
用されていない場合には、インタフエース210
からL2キヤツシユ300へ特別なアクセス要求
は行わない。CC内の更新されたライン識別子は
アドレス・ゲート208に書込まれる。つまり、
使用ビツトをオンにされたラインAの新しいエン
トリは、アドレス・ゲート208に書込まれた
後、アドレス入力ゲート209に送られ、次いで
L1キヤツシユ・デイレクトリ201を更新する
ために使用されるのである。置換アレイ207の
更新は、ラインAがミスしているかどうかに無関
係に、ラインAがそのCC内のMRU(most−
recently−used)ラインになるようにして行われ
る。
第1図は本発明のL2キヤツシユの構成を示す。
rビツト更新ロジツク320および先取りロジツ
ク310をのぞくと、その主要な部分は第2図の
11キヤツシユ・デイレクトリに類似している。
第8図に示すように、L2キヤツシユ・デイレク
トリ301内の各エントリは、ブロツク識別子お
よび当該ブロツク中にある各ラインのrビツトか
らなる。L1キヤツシユ・ミスに応じてL2キヤツ
シユ・アクセスが行われる場合、線302のフイ
ールドB′により指定されたCC内のすべてのブロ
ツク識別子を同時に読出し、これらの識別子をア
ドレス比較ロジツク305でフイールドA′と比
較する。ブロツクA′がCC内にある場合、ブロツ
クA′内の全てのrビツトを先取りロジツク31
0で検査する。先取りロジツク310はL2キヤ
ツシユ・データアレイ350に対し、rビツトが
オンになつているラインおよびミスしたラインを
L1キヤツシユ200にロードするように指示す
る。それと同時に、L1キヤツシユ・デイレクト
リ201は先取されているラインを更新するよう
に通知される。これはL1キヤツシユ200への
特別な要求であつてL1キヤツシユ・デイレクト
リ201だけを更新するとともに、第2図の確認
ロジツク220がこれらの先取りされたラインの
使用ビツトをオンにすることを禁止する。CC内
のブロツク識別子が一致しない場合、ブロツク・
ミスが生じ、その結果が更新/置換ロジツク30
6に送られる。更新/置換ロジツク306は、い
つたん活動状態になると、フイールドB′により
指定されたCCの現在の置換ステータスを読取り
該置換ステータスにより指示されたLRUブロツ
ク識別子を置換えるとともに、新たに使用された
ブロツクA′をアドレスゲート308に書込む。
前述のどちらの場合においても、rビツト更新ロ
ジツク320はA′のすべてのrビツトをオフに
転ずる。
rビツト更新ロジツク320および先取りロジツ
ク310をのぞくと、その主要な部分は第2図の
11キヤツシユ・デイレクトリに類似している。
第8図に示すように、L2キヤツシユ・デイレク
トリ301内の各エントリは、ブロツク識別子お
よび当該ブロツク中にある各ラインのrビツトか
らなる。L1キヤツシユ・ミスに応じてL2キヤツ
シユ・アクセスが行われる場合、線302のフイ
ールドB′により指定されたCC内のすべてのブロ
ツク識別子を同時に読出し、これらの識別子をア
ドレス比較ロジツク305でフイールドA′と比
較する。ブロツクA′がCC内にある場合、ブロツ
クA′内の全てのrビツトを先取りロジツク31
0で検査する。先取りロジツク310はL2キヤ
ツシユ・データアレイ350に対し、rビツトが
オンになつているラインおよびミスしたラインを
L1キヤツシユ200にロードするように指示す
る。それと同時に、L1キヤツシユ・デイレクト
リ201は先取されているラインを更新するよう
に通知される。これはL1キヤツシユ200への
特別な要求であつてL1キヤツシユ・デイレクト
リ201だけを更新するとともに、第2図の確認
ロジツク220がこれらの先取りされたラインの
使用ビツトをオンにすることを禁止する。CC内
のブロツク識別子が一致しない場合、ブロツク・
ミスが生じ、その結果が更新/置換ロジツク30
6に送られる。更新/置換ロジツク306は、い
つたん活動状態になると、フイールドB′により
指定されたCCの現在の置換ステータスを読取り
該置換ステータスにより指示されたLRUブロツ
ク識別子を置換えるとともに、新たに使用された
ブロツクA′をアドレスゲート308に書込む。
前述のどちらの場合においても、rビツト更新ロ
ジツク320はA′のすべてのrビツトをオフに
転ずる。
使用されたL1ラインの置換は特別なL2アクセ
スを生じるので、L2キヤツシユ・デイレクトリ
301だけに関連する。置換されたラインを保持
するブロツクがL2キヤツシユ300内にある場
合、そのrビツトはrビツト更新ロジツク320
でオンに切替えられ、そして、更新されたエント
リはゲート308および309を介してL2キヤ
ツシユ・デイレクトリ301に回帰する。この場
合、このブロツク内のライン位置は2の冪の計算
から求められる。行指示器330はライン記号C
を取出してこれをブロツク内のライン位置C′に変
換する。例えば、或るブロツクの第3のラインに
ついては、 C=′010′、C′=′00000100′である。
スを生じるので、L2キヤツシユ・デイレクトリ
301だけに関連する。置換されたラインを保持
するブロツクがL2キヤツシユ300内にある場
合、そのrビツトはrビツト更新ロジツク320
でオンに切替えられ、そして、更新されたエント
リはゲート308および309を介してL2キヤ
ツシユ・デイレクトリ301に回帰する。この場
合、このブロツク内のライン位置は2の冪の計算
から求められる。行指示器330はライン記号C
を取出してこれをブロツク内のライン位置C′に変
換する。例えば、或るブロツクの第3のラインに
ついては、 C=′010′、C′=′00000100′である。
本発明はデータをL2からL1に先取りする方法
を開示する。前述の説明にはいくつかの仮定があ
る。例えば、先取の′時機′、先取りしたデータを
置くL1キヤツシユ内の′場所′、高い先取り精度
を維持する方法である。前述の説明では、先取り
機構はL1キヤツシユ・ミスに応じて活動状態と
なること、先取されたデータをL1キヤツシユ内
のCCのMRUステータスの位置に置くこと、先取
りされたが未使用のラインがL1キヤツシユから
置換えられようとしている場合にはL2キヤツシ
ユ内のrビツトをオンに切替えないことにより精
度を維持刷ることを仮定している。本発明では前
記以外の仮定を設けることも可能である。
を開示する。前述の説明にはいくつかの仮定があ
る。例えば、先取の′時機′、先取りしたデータを
置くL1キヤツシユ内の′場所′、高い先取り精度
を維持する方法である。前述の説明では、先取り
機構はL1キヤツシユ・ミスに応じて活動状態と
なること、先取されたデータをL1キヤツシユ内
のCCのMRUステータスの位置に置くこと、先取
りされたが未使用のラインがL1キヤツシユから
置換えられようとしている場合にはL2キヤツシ
ユ内のrビツトをオンに切替えないことにより精
度を維持刷ることを仮定している。本発明では前
記以外の仮定を設けることも可能である。
G 発明の効果
以上では、記憶階層のある記憶レベルL2から
別の記憶レベルL1に記憶単位を取出す方式を説
明した。この方式は、L2ブロツク内にあるL1サ
ブブロツクの置換履歴に基づいており、L1およ
びL2を、ロジツクが若干異なる2つのレベルの
キヤツシユと仮定している。要求に基づいた従来
の記憶階層と異なり、本発明による構成はL1記
憶装置を一層効率的に利用することにより、
CPUの記憶アクセス時間をかなり短縮すること
ができる。
別の記憶レベルL1に記憶単位を取出す方式を説
明した。この方式は、L2ブロツク内にあるL1サ
ブブロツクの置換履歴に基づいており、L1およ
びL2を、ロジツクが若干異なる2つのレベルの
キヤツシユと仮定している。要求に基づいた従来
の記憶階層と異なり、本発明による構成はL1記
憶装置を一層効率的に利用することにより、
CPUの記憶アクセス時間をかなり短縮すること
ができる。
第1図はL1キヤツシユとのインタフエースを
備えたL2キヤツシユのブロツク図、第2図はL2
キヤツシユとのインタフエースを備えたL1キヤ
ツシユのブロツク図、第3図は通常の記憶階層に
おけるL1およびL2の記憶レベルの例を示す図、
第4図は3レベルの記憶階層を有するコンピユー
タシステムのブロツク図、第5図はL1キヤツシ
ユの24ビツト・アドレスを示す図、第6図はL2
キヤツシユの24ビツト・アドレスを示す図、第7
図はL1キヤツシユ・デイレクトリの1エントリ
を示す図、第8図はL2キヤツシユ・デイレクト
リの1エントリを示す図である。 100……CPU、200……L1キヤツシユ、
201……L1キヤツシユ・デイレクトリ、20
5……アドレス比較ロジツク、206……更新/
置換ロジツク、207……置換アレイ、210…
…インタフエース、220……確認ロジツク、2
50L1キヤツシユ・データアレイ、300……
L2キヤツシユ、301……L2キヤツシユ・デイ
レクトリ、305……アドレス比較ロジツク、3
06……更新/置換ロジツク、310……先取り
ロジツク、320……rビツト更新ロジツク、3
30……行指示器、350……L2キヤツシユ・
データアレイ、400……主記憶装置。
備えたL2キヤツシユのブロツク図、第2図はL2
キヤツシユとのインタフエースを備えたL1キヤ
ツシユのブロツク図、第3図は通常の記憶階層に
おけるL1およびL2の記憶レベルの例を示す図、
第4図は3レベルの記憶階層を有するコンピユー
タシステムのブロツク図、第5図はL1キヤツシ
ユの24ビツト・アドレスを示す図、第6図はL2
キヤツシユの24ビツト・アドレスを示す図、第7
図はL1キヤツシユ・デイレクトリの1エントリ
を示す図、第8図はL2キヤツシユ・デイレクト
リの1エントリを示す図である。 100……CPU、200……L1キヤツシユ、
201……L1キヤツシユ・デイレクトリ、20
5……アドレス比較ロジツク、206……更新/
置換ロジツク、207……置換アレイ、210…
…インタフエース、220……確認ロジツク、2
50L1キヤツシユ・データアレイ、300……
L2キヤツシユ、301……L2キヤツシユ・デイ
レクトリ、305……アドレス比較ロジツク、3
06……更新/置換ロジツク、310……先取り
ロジツク、320……rビツト更新ロジツク、3
30……行指示器、350……L2キヤツシユ・
データアレイ、400……主記憶装置。
Claims (1)
- 【特許請求の範囲】 1 少なくとも1つのプロセツサと、少なくとも
2レベルの記憶階層とを備え、前記記憶階層は高
速小容量の第1レベル記憶装置および低速大容量
の第2レベル記憶装置を含み、前記第1レベル記
憶装置は複数のサブブロツクのデータを記憶し、
前記第2レベル記憶装置は各々が複数のサブブロ
ツクから成る複数のブロツクのデータを記憶し、
前記第2レベル記憶装置から前記第1レベル記憶
装置へデータを先取りするようにした計算機シス
テムにおいて、 前記第2レベル記憶装置に記憶された各サブブ
ロツクが、前記第1レベル記憶装置に以前記憶さ
れたことを示す1状態と以前記憶されたことのな
いことを示す0状態とから成り、前記第1レベル
記憶装置内での該サブブロツクの使用履歴を記録
する置換ビツトを有し、 前記第2レベル記憶装置に前記複数のサブブロ
ツクのデータをロードするとき各サブブロツクの
前記置換ビツトを0状態にセツトし、前記第1レ
ベル記憶装置から前記第2レベル記憶装置に前記
サブブロツクのデータを転送するとき前記置換ビ
ツトを1状態にセツトする手段と、 前記プロセツサが前記第1レベル記憶装置に対
して所与のブロツクに含まれるある特定のサブブ
ロツクを参照した際に、該特定のサブブロツクが
前記第1レベル記憶装置に記憶されていない場
合、前記所与のブロツクに含まれる前記複数のサ
ブブロツクのうち前記置換ビツトが1状態にセツ
トされているすべてのサブブロツクのデータを前
記第2レベル記憶装置から前記第1レベル記憶装
置へ先取りする手段、 とを備えたことを特徴とする、記憶階層の先取り
装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US685527 | 1984-12-24 | ||
US06/685,527 US4774654A (en) | 1984-12-24 | 1984-12-24 | 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 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61156346A JPS61156346A (ja) | 1986-07-16 |
JPH0364893B2 true JPH0364893B2 (ja) | 1991-10-08 |
Family
ID=24752584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60253013A Granted JPS61156346A (ja) | 1984-12-24 | 1985-11-13 | 記憶階層の先取り装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4774654A (ja) |
EP (1) | EP0185867B1 (ja) |
JP (1) | JPS61156346A (ja) |
CA (1) | CA1238984A (ja) |
DE (1) | DE3583593D1 (ja) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62194563A (ja) * | 1986-02-21 | 1987-08-27 | Hitachi Ltd | バツフア記憶装置 |
FR2609195A1 (fr) * | 1986-12-31 | 1988-07-01 | Thomson Csf | Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede |
US4980823A (en) * | 1987-06-22 | 1990-12-25 | International Business Machines Corporation | Sequential prefetching with deconfirmation |
US5113511A (en) * | 1989-06-02 | 1992-05-12 | Atari Corporation | System for dynamically providing predicted high/slow speed accessing memory to a processing unit based on instructions |
US5155832A (en) * | 1989-07-05 | 1992-10-13 | Hewlett-Packard Company | Method to increase performance in a multi-level cache system by the use of forced cache misses |
US5125085A (en) * | 1989-09-01 | 1992-06-23 | Bull Hn Information Systems Inc. | Least recently used replacement level generating apparatus and method |
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
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 |
EP0461926B1 (en) * | 1990-06-15 | 1998-09-02 | Compaq Computer Corporation | Multilevel inclusion in multilevel cache hierarchies |
US5392417A (en) * | 1991-06-05 | 1995-02-21 | Intel Corporation | Processor cycle tracking in a controller for two-way set associative cache |
US6453388B1 (en) | 1992-06-17 | 2002-09-17 | Intel Corporation | Computer system having a bus interface unit for prefetching data from system memory |
US5787475A (en) * | 1992-07-21 | 1998-07-28 | Digital Equipment Corporation | Controlled prefetching of data requested by a peripheral |
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
DE69327981T2 (de) * | 1993-01-21 | 2000-10-05 | Advanced Micro Devices, Inc. | Kombinierte Speicheranordnung mit einem Vorausholungspuffer und einem Cachespeicher und Verfahren zur Befehlenversorgung für eine Prozessoreinheit, das diese Anordnung benutzt. |
US5539914A (en) * | 1993-06-14 | 1996-07-23 | International Business Machines Corporation | Method and system for preprocessing data block headers during access of data in a data storage system |
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 |
US5530832A (en) * | 1993-10-14 | 1996-06-25 | International Business Machines Corporation | System and method for practicing essential inclusion in a multiprocessor and cache hierarchy |
US5721854A (en) * | 1993-11-02 | 1998-02-24 | International Business Machines Corporation | Method and apparatus for dynamic conversion of computer instructions |
US5603004A (en) * | 1994-02-14 | 1997-02-11 | Hewlett-Packard Company | Method for decreasing time penalty resulting from a cache miss in a multi-level cache system |
US5539895A (en) * | 1994-05-12 | 1996-07-23 | International Business Machines Corporation | Hierarchical computer cache system |
US5577227A (en) * | 1994-08-04 | 1996-11-19 | Finnell; James S. | Method for decreasing penalty resulting from a cache miss in multi-level cache system |
US5860096A (en) * | 1994-10-17 | 1999-01-12 | Hewlett-Packard Company | Multi-level instruction cache for a computer |
US5734731A (en) * | 1994-11-29 | 1998-03-31 | Marx; Elliot S. | Real time audio mixer |
US5790823A (en) * | 1995-07-13 | 1998-08-04 | International Business Machines Corporation | Operand prefetch table |
US5758119A (en) * | 1995-08-23 | 1998-05-26 | International Business Machines Corp. | System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache |
US5740399A (en) * | 1995-08-23 | 1998-04-14 | International Business Machines Corporation | Modified L1/L2 cache inclusion for aggressive prefetch |
US5787466A (en) * | 1996-05-01 | 1998-07-28 | Sun Microsystems, Inc. | Multi-tier cache and method for implementing such a system |
US5802563A (en) * | 1996-07-01 | 1998-09-01 | Sun Microsystems, Inc. | Efficient storage of data in computer system with multiple cache levels |
US6065097A (en) * | 1996-08-29 | 2000-05-16 | Sun Microsystems, Inc. | Apparatus and method for sharing a unified memory bus between external cache memory and primary memory |
US5937429A (en) * | 1997-04-21 | 1999-08-10 | International Business Machines Corporation | Cache memory having a selectable cache-line replacement scheme using cache-line registers in a ring configuration with a token indicator |
US6535961B2 (en) * | 1997-11-21 | 2003-03-18 | Intel Corporation | Spatial footprint prediction |
US6457105B1 (en) * | 1999-01-15 | 2002-09-24 | Hewlett-Packard Company | System and method for managing data in an asynchronous I/O cache memory |
US6823430B2 (en) * | 2002-10-10 | 2004-11-23 | International Business Machines Corporation | Directoryless L0 cache for stall reduction |
US7380047B2 (en) * | 2004-09-30 | 2008-05-27 | International Business Machines Corporation | Apparatus and method for filtering unused sub-blocks in cache memories |
US7313656B1 (en) * | 2004-12-27 | 2007-12-25 | Emc Corporation | Pre-fetch prediction method for disk drives |
US8046538B1 (en) * | 2005-08-04 | 2011-10-25 | Oracle America, Inc. | Method and mechanism for cache compaction and bandwidth reduction |
US9559889B1 (en) * | 2012-10-31 | 2017-01-31 | Amazon Technologies, Inc. | Cache population optimization for storage gateways |
US9501796B2 (en) | 2013-09-18 | 2016-11-22 | Chicago Mercantile Exchange Inc. | Dataset intersection determination |
US10025796B2 (en) * | 2015-04-29 | 2018-07-17 | Box, Inc. | Operation mapping in a virtual file system for cloud-based shared content |
KR102653852B1 (ko) * | 2019-05-07 | 2024-04-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
EP3669268A4 (en) * | 2019-09-12 | 2020-12-23 | Alibaba Group Holding Limited | NEWSPAPER STRUCTURE STORAGE SYSTEMS |
WO2019228574A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
US10942852B1 (en) | 2019-09-12 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
WO2019228571A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
CN116756110A (zh) | 2019-09-12 | 2023-09-15 | 创新先进技术有限公司 | 日志结构存储*** |
SG11202002614XA (en) | 2019-09-12 | 2020-04-29 | Alibaba Group Holding Ltd | Log-structured storage systems |
CN115398874A (zh) | 2019-09-12 | 2022-11-25 | 创新先进技术有限公司 | 日志结构存储*** |
SG11202002027TA (en) * | 2019-09-12 | 2020-04-29 | Alibaba Group Holding Ltd | Log-structured storage systems |
WO2019228570A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5971183A (ja) * | 1982-10-15 | 1984-04-21 | Hitachi Ltd | 記憶制御方式 |
JPS59180877A (ja) * | 1983-03-31 | 1984-10-15 | Fanuc Ltd | メモリの読出し制御方式 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3928857A (en) * | 1973-08-30 | 1975-12-23 | Ibm | Instruction fetch apparatus with combined look-ahead and look-behind capability |
US4370710A (en) * | 1980-08-26 | 1983-01-25 | Control Data Corporation | Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses |
US4437155A (en) * | 1980-11-14 | 1984-03-13 | Sperry Corporation | Cache/disk subsystem with dual aging of cache entries |
US4490782A (en) * | 1981-06-05 | 1984-12-25 | International Business Machines Corporation | I/O Storage controller cache system with prefetch determined by requested record's position within data block |
US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
US4533995A (en) * | 1981-08-03 | 1985-08-06 | International Business Machines Corporation | Method and system for handling sequential data in a hierarchical store |
-
1984
- 1984-12-24 US US06/685,527 patent/US4774654A/en not_active Expired - Fee Related
-
1985
- 1985-10-11 DE DE8585112902T patent/DE3583593D1/de not_active Expired - Fee Related
- 1985-10-11 EP EP85112902A patent/EP0185867B1/en not_active Expired
- 1985-11-06 CA CA000494698A patent/CA1238984A/en not_active Expired
- 1985-11-13 JP JP60253013A patent/JPS61156346A/ja active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5971183A (ja) * | 1982-10-15 | 1984-04-21 | Hitachi Ltd | 記憶制御方式 |
JPS59180877A (ja) * | 1983-03-31 | 1984-10-15 | Fanuc Ltd | メモリの読出し制御方式 |
Also Published As
Publication number | Publication date |
---|---|
EP0185867A3 (en) | 1988-08-17 |
JPS61156346A (ja) | 1986-07-16 |
CA1238984A (en) | 1988-07-05 |
US4774654A (en) | 1988-09-27 |
EP0185867A2 (en) | 1986-07-02 |
EP0185867B1 (en) | 1991-07-24 |
DE3583593D1 (de) | 1991-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0364893B2 (ja) | ||
US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
JP4486750B2 (ja) | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 | |
US6912623B2 (en) | Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy | |
EP0695996B1 (en) | Multi-level cache system | |
US6990557B2 (en) | Method and apparatus for multithreaded cache with cache eviction based on thread identifier | |
US4583165A (en) | Apparatus and method for controlling storage access in a multilevel storage system | |
JP4298800B2 (ja) | キャッシュメモリにおけるプリフェッチ管理 | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
JPH0962572A (ja) | ストリーム・フィルタ装置及び方法 | |
US7237067B2 (en) | Managing a multi-way associative cache | |
KR930022222A (ko) | 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법 | |
JP2735781B2 (ja) | キャッシュ・メモリ制御システム及び方法 | |
US20100217937A1 (en) | Data processing apparatus and method | |
KR19980079433A (ko) | 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템 | |
US20140143499A1 (en) | Methods and apparatus for data cache way prediction based on classification as stack data | |
US5809526A (en) | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation | |
US7356650B1 (en) | Cache apparatus and method for accesses lacking locality | |
JPS638851A (ja) | キャッシュ・メモリ制御方式 | |
JPH08314802A (ja) | キャッシュシステム、キャッシュメモリアドレスユニット、およびキャッシュメモリを動作させる方法 | |
EP0173893B1 (en) | Computing system and method providing working set prefetch for level two caches | |
US20010032297A1 (en) | Cache memory apparatus and data processing system | |
US6934810B1 (en) | Delayed leaky write system and method for a cache memory | |
WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
JP3078303B2 (ja) | キャッシュメモリ制御回路 |