JPH0477344B2 - - Google Patents

Info

Publication number
JPH0477344B2
JPH0477344B2 JP63119437A JP11943788A JPH0477344B2 JP H0477344 B2 JPH0477344 B2 JP H0477344B2 JP 63119437 A JP63119437 A JP 63119437A JP 11943788 A JP11943788 A JP 11943788A JP H0477344 B2 JPH0477344 B2 JP H0477344B2
Authority
JP
Japan
Prior art keywords
cache
row
bit
memory
accessed
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
Application number
JP63119437A
Other languages
English (en)
Other versions
JPS648458A (en
Inventor
Ryuu Riishiingu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS648458A publication Critical patent/JPS648458A/ja
Publication of JPH0477344B2 publication Critical patent/JPH0477344B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
A 産業上の利用分野 本発明は一般的に云つて、コンピユータのメモ
リ管理技術に関し、さらに具体的にはキヤツシ
ユ・メモリ中で簡単な順次プリフエツチング・ア
ルゴリズムを与えるための技術に関する。 B 従来の技術 現在の高パホーマンス・プログラム内蔵デジタ
ルコンピユータは通常主メモリから命令をフエツ
チ(取出し)て、フエツチした命令をキヤツシ
ユ・メモリ中に記憶している。キヤツシユ・メモ
リはコンピユータの中央処理ユニツト(CPU)
とインターフエイスする比較的小さな高速ハード
ウエア・バツフアである。キヤツシユ中の命令は
直ちにCPUによつてアクセスされるので、キヤ
ツシユはコンピユータの処理能力をスピード・ア
ツプするのに使用されている。基本的な着想は予
測アルゴリズムに基ずいて主メモリから命令をプ
リフエツチ(先取り)し、プリフエツチした命令
をキヤツシユ・メモリに記憶するというものであ
る。命令のシーケンス中の次の命令がCPUによ
つて要求される時は、先ず命令がキヤツシユ・メ
モリ中にすでに存在するか(キヤツシユ・ヒツ
ト)もしくは存在しない(キヤツシユ・ミス)か
についての判断がなされる。もしこれが存在する
時は命令をキヤツシユからCPUに読出し、そう
でない時は主メモリから読出している。このプロ
セスは数CPUサイクルを要し、コンピユータの
処理能力を著しく低化する。プリフエツチ・アル
ゴリズムをでるだけ正確にし、これによつて過度
のプリフエツチ・トラフイツクを必要としないで
キヤツシユ・ミスを最小にすることが望まれる。 キヤツシユは通常第2図に示したように2次元
の表として組織化されている。CPUの命令もし
くは実行(I/E)ユニツトからの各メモリ・ア
クセスはキヤツシユ6の合同(コングルエンス)
クラスと呼ばれる特定の列にインデツクスされ
る。このようなインデツクスはメモリ・アクセ
ス・アドレス8中のある一定ビツトによつて行わ
れる。各合同クラス内には、一定数の行が存在す
る。各合同クラス中の行数はキヤツシユの集合連
想性(セツト・アソシアテイビテイ)と呼ばれ
る。もし行が合同クラス内に見出されない時はこ
のようなキヤツシユ・アクセスによつてキヤツシ
ユ・ミスを生じる。キヤツシユ・デイレクトリ制
御装置は各合同クラスのためのある優先順位を管
理し、これによつて合同クラス中の各行が相対的
にどの程度最近アクセスされたかヾ示される。合
同クラス内で、最後にアクセスされた行はMRU
(最も最近使用された)と呼ばれ、最も過去にア
クセスされた行はLRU(最も過去に使用された)
と呼ばれる。通常、置換が合同クラス中に必要な
時、たとえば新らしい行を挿入する時は、LRU
項目が選択されて置換される。キヤツシユ中で行
がアクセスされるたびに、このことはその合同ク
ラス内でMRUとして適切に反映される。 高速プロセツサの処理能力はキヤツシユに対す
る高いヒツト率に強く依存する。キヤツシユ・ヒ
ツト率を高める1つの方法はある行のアクセスを
前もつて予測して、これ等がI/Eユニツトによ
つて要求される前にでもキヤツシユ中にフエツチ
することである。このようにして、キヤツシユ・
ミスによる主メモリ・フエツチに関連する遅延サ
イクルは減少する。しかしながら、予測アクセス
は、特に予測機構に高い精度が望まれる時は、容
易ではない。 プリフエツチ・アルゴリズムは一般にコンピユ
ータ・プログラムの観測された振舞いに基ずいて
いる。たとえば、局所性はほとんどすべてのプロ
グラムでみられる強い性質である。局所性とはメ
モリ・アクセスが短かい時間内では比較的少ない
データ・ブロツクに集中する傾向があることを云
う。 本発明は局所性の振舞いの特定のタイプに基ず
く予測機構を使用する、キヤツシユの行の順次プ
リフエツチに関連する。この動作を本明細書では
順次性と呼ぶ。順次性とは、行がプロセツサによ
つてアクセスされた時に、次の順番の行が常にで
はないが、その後まもなくアクセスされる傾向が
あることを意味する。たとえば、アドレスに従つ
て集合{Li}として順序付けられたメモリ中の行
の集合を考える。Liをアクセスする時に、Li+1
がキヤツシユ中に存在しない時は、Li+1をキヤ
ツシユにプリフエツチするかどうかについての判
断がなされる。しかしながら、トラフイツク及び
キヤツシユの置換に対する負担あるいはペナルテ
イを減少するためには、プリフエツチされた行が
参照される可能性があるかどうかを認識すること
も重要であることが知られている。したがつて、
もし物理的に次順の行が現在のアクセスによつて
キヤツシユ中にプリフエツチされるとしても、主
メモリ・アクセスに関連するキヤツシユ・ミスに
よるペナルテイは、プリフエツチされた行が実際
にその後まもなくI/Eユニツトによつてアクセ
スされるならば減少すると云える。本発明は予測
の正確さを改良し、実現することを意図するもの
である。 C 発明が解決しようとする問題点 本発明の目的はプログラム内蔵デイジタル・コ
ンピユータ中の命令を順次にプリフエツチし、キ
ヤツシユ・ミスをかなり減少し、プリフエツチの
精度を高め、コンピユータのパホーマンスを改良
する技術を与えることにある。 本発明に従えば、簡単な活動記録にもとづいて
アクセスの順次性を正確に予測する安価で容易に
具体化可能な命令プリフエツチ技術が与えられ
る。 D 問題点を解決するための手段 本発明は、メモリ行の順次性に基いてプリフエ
ツチを制御する。例えば、命令行(I行)の順次
プリフエツチについて説明すると、各メモリ行Li
にはSビツト(Si)が割当てられ、このSビツト
は、行Liがアクセスされた時に、字順の行Li+1
をプリフエツチすべきかどうかを示す。最初Sビ
ツトはオンにされ、順次性があるものとして設定
される。I/Eユニツトから行Liに対してアクセ
スが行われた時に、Si=オンで、行Li+1がキヤ
ツシユ存在しなければ、行Li+1をキヤツシユに
プリフエツチするように判断が行なわれる(第1
図、第5図)。このように本発明は、各行Liに対
して、順次性を示すSビツトを割当てて、プリフ
エツチを制御することが基本の思想である。 Sビツト、即ち、順次性の判断は種々の態様で
制御できるが、簡単にいえば、Sビツトは1Sビ
ツトがオンにされていてプリフエツチしたにもか
かわらずキヤツシユ・ミスが生じ、プリフエツチ
した行Li+1を置換する場合にオフにされ(第6
図)、2プリフエツチした行でキヤツシユ・ヒツ
トが生じ、順次性が確認された場合(第9図、第
11図)、又はプリフエツチを行なえばキヤツシ
ユ・ミスがなくなる可能性がある場合(第7図、
第8図)にオンにされる。順次性の判断の制御を
補助するために、キヤツシユの各行項目に対して
Rビツト(参照ビツト)を設け、Rビツトをオン
(初期設定状態)からオフにすることによつて行
項目へのプリフエツチを表わし、オフからオンに
することによつてその行項目へのアクセス(参
照)を表わすことができる。(第1図、第5図、
第6図、第9図)。しかし、Rビツトなしで制御
することもできる(第11図)。 E 実施例 本発明に従うキヤツシユ管理機構では、第3図
に示したメモリは連続的なブロツクもしくは行Li
−1、Li、Li+1…として示されている。その目
的は順番に次の行をキヤツシユにプリフエツチす
ることである。本発明の方法は順次性のフラグと
して、Sビツトと呼ばれるビツトを各行に1ビツ
トずつ与え、順次性の適否を判断することによつ
て順次性フラグを管理する。 第4図を参照すると、本発明に従うキヤツシ
ユ・メモリ10のアーキテクチユアを示す上位レ
ベルのブロツク図が示されている。キヤツシユ・
メモリ10はI/Eユニツト12と第2のレベル
メモリもしくはキヤツシユ14との間に配置され
ている。第2のレベルのメモリは簡単な場合は、
主メモリであるが、より複雑なシステムでは、他
のレベルのキヤツシユ・メモリでもよい。いずれ
にしても、メモリ14はキヤツシユ・メモリ10
よりも速いメモリである。キヤツシユ・メモリ1
0は第2図に示されたキヤツシユ6に対応するキ
ヤツシユ・アレイ及び第2図に示したアクセス・
アドレス・ビツト8を含むキヤツシユ・デイレク
トリ18を含む。本発明は順次性を制御するアル
ゴリズムに使用するSベクトル20を加える。 次の表はキヤツシユ・アレイ中の特定の行を識
別するアドレス、妥当性タグ(Vタグ)及び参照
タグ(Rタグ)ならびに本発明とは関係のない他
のビツトより成るキヤツシユ・デイレクトリ項目
を示す。
【表】 本発明に従つて、RビツトはSビツトの活動記
録を処理するのを助けるのに用いられるが、以下
明らかになるように、本発明によるプリフエツチ
機構はキヤツシユ・デイレクトリ中にRビツトを
使用することなく具体化できる。Sベクトルは数
が主メモリ中の行数と等しい複数のビツトより成
り、主メモリの物理行Liに対して1ビツトSiが存
在する。次の説明から明らかなように、Sベクト
ルはキヤツシユ・メモリ中の行の順次性の活動記
録を与える。 基本的なキヤツシユ・アクセスの流れ図を第1
図に示す。最初、キヤツシユは空であり、すべて
のVビツトがオフであり、すべてのSビツトがオ
ンである。この流れ図はブロツク100でI/E
ユニツトからのキヤツシユ・アクセスが存在する
時にスタートする。判断ブロツク110でテスト
がなされキヤツシユ・ヒツトが存在するかどうか
が判断される。キヤツシユが空であるという初期
条件を仮定しているのでキヤツシユ・ミスが存在
し、従つて制御はブロツク130に分岐し、ここ
で、要求された行がミス・ハンドラを介してフエ
ツチされる。この行は機能ブロツク160でミ
ス・ハンドラによりMRU行にされる。次に判断
ブロツク200において、プリフエツチのための
テストがなされる。このテストについては第5図
で詳細に説明する。 一方判断ブロツク110のテストの結果が
YES、即ちキヤツシユ・ヒツトが存在すると仮
定する。この場合は、キヤツシユ中の行が機能ブ
ロツク120中でアクセスされ、データは直接、
要求したI/Eユニツトに送られる。テストが判
断ブロツク140中でなされ、アクセスした行が
キヤツシユのMRU位置に存在するかどうかゞ決
定される。もし存在するならば、キヤツシユ・ア
クセス手順が完了し、そうでない時は機能ブロツ
ク150でRビツトがオンにされ、この行は機能
ブロツク160中でMRU行にされる。 第5図はプリフエツチのためのテストの流れ図
を示す。この流れ図は判断ブロツク205でスタ
ートし、この行に関連するSビツトがオンである
かどうかのテストがなされる。もしNOならば、
プリフエツチしない。Sビツトがオンならば、判
断ブロツク210でテストがなされ、次の順番の
行がキヤツシユに現在存在するかどうかゞ判断さ
れる。もし存在する時はプリフエツチは不要であ
る。しかしながら次順の行がキヤツシユ中に現在
存在しないと、これは機能ブロツク220中でキ
ヤツシユにプリフエツチされ、これに関連する合
同クラスのLRU項目が置換される。同時に新ら
しい項目のRビツトがオフに転じられ、新らしい
行がキヤツシユ中のLRU位置に保存される。 本発明の動作の重要な点はSベクトルを構成す
るSビツトの管理である。Sビツトをリセツトす
るための基本動作を示す流れ図を第6図に示す。
この流れ図はキヤツシユから行Li+1が置換され
る時に機能ブロツク300でスタートする。テス
トが判断ブロツク310でなされ、この行のため
のRビツトがオンであるかどうかの判断がなされ
る。もしオンならば、設計時の選択に依存して、
Siビツトには変更がなされないか、又はSiビツト
がオンにされる。他方Rビツトがオンなら、Siビ
ツトがオフにされる。 Sビツトをリセツトする代替方法を第7図に示
す。この流れ図には、I/Eユニツトから行Li+
1をアクセスした時にミスが生じた時に機能ブロ
ツク400で導入する。判断ブロツク410でテ
ストがなされ、行Liがキヤツシユ中にあるかどう
かのテストがなされる。もしこれが存在する時は
機能ブロツク420中でSiビツトがオンに転じら
れ、存在しない時は機能ブロツク430中に示し
たようにSiビツトには変更はない。 Sビツトのリセツトに対する第20の代替方法第
8図に示す。この方法では、テストが判断ブロツ
ク450でなされ、この方法では、テストが判断
ブロツク450でなされ、行Liが最近アクセスさ
れたかどうかが判断される。もしこれがアクセス
されている時には、Siビツトが機能ブロツク46
0でオンにされ、そうでない時には機能ブロツク
470でSiビツトに変更はなされない。 第1図に示した基本的キヤツシウ・アクセス手
順は機能ブロツク150を第9図に示した流れ図
で置換することによつて修正される。判断ブロツ
ク140からのNO出力は判断ブロツク152で
テストされ、Rビツトがオンであるかどうかの判
断がなされる。オンならば流れは従前のように機
能ブロツク160に進行し、そうでない時は、R
ビツト及びSiビツトはともに機能ブロツク154
でオンにされ、順次性が一時的に確認される。即
ち、プリフエツチされた行の順次性が再び判断ブ
ロツク152中のテストで検出される時は、Sビ
ツトが再びオンにされる。 第10図は第9図に示した基本的キヤツシユ・
アクセス論理の修正とともに使用するための第5
図に示したプリフエツチングの判断に対する修正
を示す。この修正は機能ブロツク220を220
aに変更したものである。ブロツク220aでは
次順の行が従前のようにキヤツシユにプリフエツ
チされるが、新しい項目のRビツトをオフにし、
新らしい行をLRU位置に保存する以外に、Sビ
ツトもオフに転ずる。 本発明はRビツトなしで動作させることも可能
であり、この場合に必要な修正が第11図及び第
12図に示されている。第11図は第1図に示し
た基本的キヤツシユ・アクセス流れ図の修正を示
し、第9図と同様に機能ブロツク150を置換す
るものである。この場合は、判断ブロツク156
中でテストがなされ、行がキヤツシユ中のLRU
位置にあるかどうかの判断がなされる。もし存在
しない時は、制御は従前のように機能ブロツク1
60に渡され、そうでない時はSiビツトが機能ブ
ロツク158でオンにされ、次に制御が機能ブロ
ツク160に渡される。 第12図はRビツトを使用しないプリフエツチ
の判断方法の修正を示し、第5図の示した流れ図
の修正を示す。この場合は、機能ブロツク220
は機能ブロツク220bに置換され、新らしい項
目のRビツトをオフにする代りに、Sビツトがオ
フにされている。 実験により、命令の行はキヤツシユ合同クラス
のMRU位置でなくLRU位置にプリフエツチする
ことが望ましいことがわかつた。この場合は非
LRU行がアクセスされ時はRビツトをオンに転
ずることは実際上必要とされない。 順次性が再び検出された時にSビツトをオンに
戻すことも可能である。強い順次性テストと呼ば
れる1つの方法は、Liが依然キヤツシユ中に見出
される時にLi+1のキヤツシユ・ミスが生じた時
にSiをオンにすることである。この方法は第7図
に示されている。他の代替方法は第8図に示すよ
うに前のアクセスがLiであることが見出されて、
Li+1のキヤツシユ・ミスが生じた時にSiをオン
にする方法である。 Sビツトはメモリ中の丁度1行に対応する必要
はない。デイレクトリ・スペースとパホーマンス
間でトレード・オフがなされる。Sビツトは別個
のデイレクトリもしくは表により具体化できる。
そのための必要条件は、所与の行アドレスにおい
て、ビツトの固定座標が識別されて順次性を記録
し、テストできることである。 Rビツトはキヤツシユ・デイレクトリ自体に物
理的に存在する必要はない。プリフエツチが
LRU位置になされる時は、キヤツシユの1行の
項目当りに1つのRビツトを関連付ける必要はな
い。この場合はLRUに位置する行のための参照
状態に対応して、1つの合同クラス当り1つのR
ビツトだけが必要である。合同クラスのRビツト
は行が合同クラスのLRU位置にプリフエツチさ
れた時にだけオフにされる。合同クラスのRビツ
トはその中のLRU行が実際にアクセスされた時
にだけオンに転ぜられる。行がキヤツシユから異
動される時は、対応する合同クラスのRビツトが
依然としてオフであれば先行行に関連するSビツ
トがオフにされ、Rビツトはその検出後にオンさ
れる。この動作を第6図の基本アルゴリズムの流
れ図に示す。Rビツト・ベクトルは物理的にキヤ
ツシユ・デイレクトリに存在する必要はなく、プ
リフエツチ論理装置に関連してもよい。キヤツシ
ユ・デイレクトリ制御装置とプリフエツチ制御装
置の間の通信は比較的簡単な信号で具体化でき
る。 制御及び通信を簡単にするために、Liのアクセ
ス時に、Li+1がプリフエツチされるべきであ
る。と判断された時にSiをオフにすることが有利
である。このようなSiはプリフエツチされたLi+
1が、最初に、関連するRビツトがオフの状態で
実際にアクセスされる時にオンされる。このRビ
ツトはその後オンにすべきである。このようにし
て、置換された行のアドレスをプリフエツチ制御
装置に送つて適切なSビツトを見出し、オンもし
くはオフにする必要がなくなる。 順次的プリフエツチ・テスト及び他の関連動作
は次順の行のためのRビツトがオンの時だけキヤ
ツシユ行のアクセスについてなされる。これによ
つてプリフエツチ条件についての冗長な再テスト
が減少する。プリフエツチ制御が競合を生ずる時
には、キヤツシユ・ミスの時にだけプリフエツチ
を遂行することも可能である。 他のプリフエツチ条件についての冗長な再テス
トが減少する。プリフエツチ制御機構を本発明と
組合すことも可能である。たとえば現在アクセス
されているワードが最後の3/4の部分内にある時
にだけ次の行を(Sビツトがオンの時に)プリフ
エツチすることがプリフエツチの正確さを改良す
るのに有用であることがわかつている。 以上で考察されたことは、LRU行が参照もし
くは置換される迄LRUに留まる純粋なLRU置換
である。PLRU(分割LRU)置換の場合は、Rベ
クトルのための1つの合同クラス当り余分のビツ
トを使用しして、プリフエツサされる余分の座標
を記録することも可能である。 本発明の中心の思想は簡単な活動記録に基ずい
てアクセスの順次性を予測することである。端的
に云つて、活動記録はLiが前回アクセスされた時
に次順の行Li+1が参照されたかによつて行Liの
ための順次性を示すことができる。Sベクトルは
このような活動記録を記録するためのものであ
る。各メモリ行は行のSビツトと呼ばれるSベク
トルのビツトに関連する。Sビツトがオンの時
は、順次性が予測され次順の行がまだキヤツシユ
中にないならば、これがプリフエツサのための良
好な候補であるとみなされる。本発明の動作の重
要な点はSビツトの処理(オン、オフ)である。
第6図に示した基本的なアルゴリズムはこの処理
がどのように達成されるかを示している。第7図
及び第8図はこの基本的アルゴリズムに対する代
替方法を示す。 処理能力の研究によつて、本発明は79%乃至94
%以上の正確さでIキヤツシユ・ミスの39−52%
が減少することがわかつた。 本発明のI行の順次的プリフエツチについて説
明したが、本発明の原理は種々のキヤツシユ組織
及び異なる型の行の順次プリフエツチングにも応
用できる。 F 発明の効果 本発明に従い。プログラム内蔵デジタル・コン
ピユータ中の命令を順次にプリフエツチし、キヤ
ツシユ・ミスをかなり減少し、プリフエツチの精
度を高め、コンピユータのパホーマンスを改良す
る方法が与えられる。
【図面の簡単な説明】
第1図は本発明に従う基本的キヤツシユ・アク
セス論理を示した流れ図である。第2図は合同ク
ラスの選択を示す、キヤツシユ・メモリの通常の
2次元組織を示すブロツク図である。第3図は連
続するブロツクもしくは行より成るメモリとキヤ
ツシユ及びI/Eユニツトの関連を示した図であ
る。第4図はSベクトルを含むように改良したキ
ヤツシユ・メモリ制御装置のブロツク図である。
第5図は第1図のキヤツシユ・アクセス論理装置
に使用するプリフエツチの判断論理を示す流れ図
である。第6図は本発明従うSビツトをリセツト
するための論理を示す流れ図である。第7図は本
発明に従うSベクトルのSビツトをリセツトする
ための代替論理の流れ図を示す。第8図は本発明
に従うSベクトルのSビツトをリセツトするため
の代替論理を示す流れ図である。第9図は第1図
に示した基本的キヤツシユ・アクセス論理の改良
を示す流れ図である。第10図は第9図に示した
改良基本的キヤツシユ・アクセス論理に使用され
る流れ図である。第11図はRビツトを使用しな
い、第1図の基本的キヤツシユ・アクセス論理へ
の他の改良を示す流れ図である。第12図は、R
ビツトを使用しない、第11図に示した改良基本
的キヤツシユ・アクセス論理とともに使用され
る、プリフエツチの判断論理の流れ図である。 6……キヤツシユ、8……アクセス・アドレ
ス・ビツト、10……キヤツシユ・メモリ、12
……I/Eユニツト、14……第2レベルのメモ
リ/キヤツシユ、16……キヤツシユ・アレイ、
18……キヤツシユ・デイレクトリ、20……S
ベクトル。

Claims (1)

  1. 【特許請求の範囲】 1 コンピユータのキヤツシユ・メモリへ主メモ
    リから順次に行をプリフエツチする方法におい
    て、 (a) 各キヤツシユの行に、このキヤツシユの行が
    アクセスされた時に次順のキヤツシユの行をプ
    リフエツチすべきかどうかを示す、最初オンに
    セツトされるSビツトを割当て、 (b) キヤツシユ・メモリへのアクセスをテストし
    て、アクセスされる行がキヤツシユ・メモリ中
    にあるかどうかを判断し、存在する時は、この
    行をアクセスし、 (c) 存在しない時は、アクセスされる行を主メモ
    リからフエツチし、 (d) キヤツシユ・メモリ中でアクセスされる行を
    テストして、それが最も最近使用した位置にあ
    るかどうかを判断し、ない時には、その行を最
    も最近使用した行にし、 (e) アクセスされる行のための上記Sビツトをテ
    ストして、オンであるかどうかを判断し、もし
    オンならば次順の行がキヤツシユ・メモリ中に
    あるかどうかを判断するためのテストを行い、 (f) 上記次順の行がキヤツシユ・メモリ中にない
    時は、この次順の行をキヤツシユ・メモリへ新
    らしい行としてプリフエツチし、この新らしい
    行をキヤツシユ・メモリ中の最も過去に使用し
    た位置に保存する段階を有する、 コンピユータのキヤツシユ・メモリへ主メモ
    リから順次に行をプリフエツチする方法。
JP63119437A 1987-06-22 1988-05-18 Prefetching of line sequentially to cache memory of computer from main memory Granted JPS648458A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US6523887A 1987-06-22 1987-06-22

Publications (2)

Publication Number Publication Date
JPS648458A JPS648458A (en) 1989-01-12
JPH0477344B2 true JPH0477344B2 (ja) 1992-12-08

Family

ID=22061296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63119437A Granted JPS648458A (en) 1987-06-22 1988-05-18 Prefetching of line sequentially to cache memory of computer from main memory

Country Status (2)

Country Link
EP (1) EP0296430A3 (ja)
JP (1) JPS648458A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2247546B (en) * 1990-08-31 1995-03-01 Sun Microsystems Inc Method and apparatus for predictive caching
JPH04340637A (ja) * 1991-05-17 1992-11-27 Mitsubishi Electric Corp キャッシュ制御方式
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.
US5537573A (en) * 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
US6912650B2 (en) 2000-03-21 2005-06-28 Fujitsu Limited Pre-prefetching target of following branch instruction based on past history

Also Published As

Publication number Publication date
JPS648458A (en) 1989-01-12
EP0296430A3 (en) 1990-07-18
EP0296430A2 (en) 1988-12-28

Similar Documents

Publication Publication Date Title
US4980823A (en) Sequential prefetching with deconfirmation
US5694568A (en) Prefetch system applicable to complex memory access schemes
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US6240488B1 (en) Prefetching hints
EP0604139B1 (en) Computer system including a prefetch cache
US6560693B1 (en) Branch history guided instruction/data prefetching
US5941981A (en) System for using a data history table to select among multiple data prefetch algorithms
KR100274327B1 (ko) 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
US5875472A (en) Address conflict detection system employing address indirection for use in a high-speed multi-processor system
US6317810B1 (en) Microprocessor having a prefetch cache
US5996061A (en) Method for invalidating data identified by software compiler
JP3640355B2 (ja) キャッシュ制御の命令プリフェッチ方法及びシステム
US6243791B1 (en) Method and architecture for data coherency in set-associative caches including heterogeneous cache sets having different characteristics
EP0097790A2 (en) Apparatus for controlling storage access in a multilevel storage system
US5701426A (en) Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
JPH0628180A (ja) プリフェッチバッファ
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
US6321328B1 (en) Processor having data buffer for speculative loads
WO2005088455A2 (en) Cache memory prefetcher
KR100234647B1 (ko) 인스트럭션 프리페치 방법 및 데이터 처리 시스템
US5367657A (en) Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
US7346741B1 (en) Memory latency of processors with configurable stride based pre-fetching technique
US5860150A (en) Instruction pre-fetching of a cache line within a processor
JPH0743671B2 (ja) キャッシュ・メモリ制御方式
JPH08314802A (ja) キャッシュシステム、キャッシュメモリアドレスユニット、およびキャッシュメモリを動作させる方法