JPH044617B2 - - Google Patents

Info

Publication number
JPH044617B2
JPH044617B2 JP60104140A JP10414085A JPH044617B2 JP H044617 B2 JPH044617 B2 JP H044617B2 JP 60104140 A JP60104140 A JP 60104140A JP 10414085 A JP10414085 A JP 10414085A JP H044617 B2 JPH044617 B2 JP H044617B2
Authority
JP
Japan
Prior art keywords
cache
block
line
memory
address
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
JP60104140A
Other languages
English (en)
Other versions
JPS6154547A (ja
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 filed Critical
Publication of JPS6154547A publication Critical patent/JPS6154547A/ja
Publication of JPH044617B2 publication Critical patent/JPH044617B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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 開示の概要 C 従来の技術 D 発明が解決しようとする問題点 E 問題点を解決するための手段 F 作用 G 実施例 G1 一般的構成の説明(第1図、第2図) G2 メモリ・アドレス及びエントリの説明(第
3図〜第6図) G3 L2キヤツシユの詳細な説明(第7図) G4 WSHTの詳細な説明(第8図) G5 ライン有効ビツト更新論理及びライン使用
ビツト更新論理の説明(第9図、第10図) H 発明の効果 A 産業上の利用分野 本発明はデータ処理システムに係り、更に詳細
に説明すれば階層メモリを備えた高性能データ処
理システムのメモリ・アクセス時間及びメモリ・
アクセス・トラヒツクを改善することに係る。
B 開示の概要 本発明は、第1レベル(L1)のキヤツシユ、
第2レベル(L2)のキヤツシユ及び第3レベル
(L3)のメイン・メモリから成る階層メモリを備
えたデータ処理システムに関する。このような階
層メモリを備えたデータ処理システムでは、一般
に、メインメモリとL2キヤツシユの間の情報転
送単位は、L2キヤツシユとL1キヤツシユの間の
それよりも大きい。本願明細書では、前者の単位
で転送される情報の集りを情報セツトと呼び、後
者の単位で転送される情報の集りを情報サブセツ
トと呼ぶ。1つの情報セツトは、複数の情報サブ
セツトから構成される。以下の説明は、後述の
IBMテクニカル・デイスクロージヤー・ブレテ
ンで開示されたアーキテクチヤーの用語に即して
行うが、情報セツトに対応するものはブロツクで
あり、情報サブセツトに対応するものは、ライン
である。本発明は、L2キヤツシユに保持されて
いる各ブロツクのうち実際に使用されたラインを
識別するためのワーキング・セツト履歴テーブル
(WSHT)を設け、L2キヤツシユ中の所与のブロ
ツクがメイン・メモリへ戻され且つその後にこの
ブロツクが要求される場合、このブロツクが以前
にL2キヤツシユに保持されている間に使用され
たラインだけをL2キヤツシユへ転送することに
より、この種のデータ処理システムの性能を改善
するようにしたものである。
C 従来の技術 高性能の多重処理システムでは、複数のプロセ
ツサが1つの階層メモリを共有するか、又は各プ
ロセツサがそれ自身の階層メモリを備えている。
ここで、階層メモリとは、キヤツシユと呼ばれる
高速小容量のバツフアと、低速大容量のメイン・
メモリを含むものである。キヤツシユはプロセツ
サが最近に使用した一部のデータを保持するにす
ぎないが、そのヒツト率は非常に高く、これによ
りプロセツサの平均メモリ・アクセス時間が著し
く短縮されている。しかしながら、キヤツシユの
性能は、依然としてそのサイズによつて制約され
るのである。すなわち、メイン・メモリが比較的
遠い位置に設けられている場合は、所謂キヤツシ
ユ・ミスが極く僅かしか生じないとしても、プロ
セツサはその必要とするデータがメイン・メモリ
から取出されるまで長時間の間これを待機しなけ
ればならないからである。キヤツシユ・ミスを補
償するための1つの方法は、キヤツシユとメイ
ン・メモリの間に第2レベルのキヤツシユを設け
ることである。IBMテクニカル・デイスクロー
ジヤ・ブレテン(Technical Disclosure
Bulletin)、第21巻、第6号、1978年11月発行、
第2468頁−第2469頁には、第2レベルのキヤツシ
ユが記述されている。ここで、プロセツサに最も
近いキヤツシユは第1レベルのキヤツシユ(L1
キヤツシユ)と呼ばれ、L1キヤツシユとメイ
ン・メモリの間にあるキヤツシユは第2レベルの
キヤツシユ(L2キヤツシユ)と呼ばれる。
L2キヤツシユはL1キヤツシユよりも低速であ
るが、比較的大きな容量を有する。従つて、L1
キヤツシユ及びL2キヤツシユの記憶単位をそれ
ぞれライン及びブロツクと呼ぶことにすれば、1
ブロツクを1ラインよりも相当大きく取るのが有
利である。このようにすれば、L2キヤツシユの
デイレクトリ空間が節約できるだけでなく、プロ
セツサがメモリ位置を逐次にアクセスすることが
非常に多いという特性を有効に活用することがで
きるからである。フル・ブロツク型のL2キヤツ
シユでキヤツシユ・ミスが生ずる場合、すなわち
プロセツサによつて要求されたデータを含むブロ
ツクがL2キヤツシユに置かれていない場合、メ
イン・メモリからL2キヤツシユへブロツク転送
が行われなければならない。しかしながら、L2
キヤツシユにおける2つ以上のキヤツシユ・ミス
が連続的に生ずるような場合には、プロセツサは
長い遅延に遭遇することになる。この種の現象
は、L2キヤツシユのために選ばれた大きなブロ
ツク・サイズに起因するものである。
デイレクトリ空間を増加することなくこの種の
現象に起因する遅延を最小にするための1つの方
法は、IBMシステム/360モデル85で使用され
た、セクタ型キヤツシユの概念を使用することで
ある。この概念によれば、L2キヤツシユにおけ
る記憶割振りは依然としてブロツク単位で行われ
るが、ブロツクの一部(通常はキヤツシユ・ミス
を生ぜしめたL1ライン)だけをメイン・メモリ
から取出して、これをL2キヤツシユへロードす
ればよい。L1キヤツシユに比べると、セクタ型
のL2キヤツシユはプロセツサで実行されている
プログラムの一層大きなワーキング・セツトを保
持しうることは明らかである。しかしながら、プ
ロセツサが新しいプログラム、従つて新しいワー
キング・セツトへ切換わる場合には、両キヤツシ
ユとも同数のキヤツシユ・ミスを生ぜしめること
になる。セクタ型のL2キヤツシユはキヤツシ
ユ・ミス発生時にL1キヤツシユと同じ量のデー
タを取出すから、もしL2キヤツシユが各キヤツ
シユ・ミスごとに1又は2ラインのみを常に取出
すように制限されていなければ、L2キヤツシユ
に新しいワーキング・セツトが先にロードされる
ことがありうる。
プロセツサとメイン・メモリの間に設けられた
通常のL1キヤツシユと比べると、L2キヤツシユ
の構成、動作様式及びメイン・メモリとの相互作
用には、実質的な違いはない。すなわち、L1キ
ヤツシユについて使用されるすべての概念は、
L2キヤツシユにも同様に適用することができる
のである。メイン・メモリからL1キヤツシユへ
データをロードする方法には、多くのものがあ
る。たとえば、米国特許第3588829号に記述され
た階層メモリでは、キヤツシユとメイン・メモリ
の間のバスをバツフアとして使用し且つインタリ
ーブ式メモリを使用することによつて、階層メモ
リに対する複数の取出又は書込動作を並列に行わ
せるようにしている。また米国特許第4317168号
に記述されたキヤツシユ・システムでは、メイ
ン・メモリからのライン取出とキヤツシユからの
変更ラインの置換を並列に行わせるようにしてい
る。これらの特許に記述されたものは、いずれも
階層メモリに対するアクセスの同時性に重きを置
いている。一方、これまでに提案されたすべての
ローデイング方式は、キヤツシユ・ミスが生じた
場合にだけキヤツシユへのロードを行うという意
味で、デマンド式のものであると云うことができ
る。たとえば、米国特許第3735360号及び第
3771137号に記述されたストア・イン型のキヤツ
シユでは、キヤツシユ・ミスの発生時に任意のラ
インをキヤツシユへロードするとともに、変更ラ
インをその置換が必要となるまでキヤツシユ中に
保持させるようにしている。
また米国特許第4442487号に記述された多重処
理システムにおける3レベルの階層メモリでは、
各プロセツサは、それ自身のL1キヤツシユ及び
L2キヤツシユに加えて、各レベルにおける共有
キヤツシユを備えている。ここで強調されている
のは、多重処理システムにおける複数のプロセツ
サによつてデータを有効に共有するということで
ある。
D 発明が解決しようとする問題点 前記特許のいずれにも、プロセツサがそのワー
キング・セツトを構築することを助けるように、
キヤツシユとメイン・メモリの間のトラヒツクを
考慮しつつ、複数のラインをキヤツシユへロード
することについては、全く示されていない。
従つて、本発明の目的は、3レベルの階層メモ
リを備えたデータ処理システムのメモリ・アクセ
ス時間を改善することにある。
本発明の他の目的は、3レベルの階層メモリを
備えたデータ処理システムにおいて、L2キヤツ
シユに保持されている各ブロツクのうち過去に使
用されたラインを識別するためのワーキング・セ
ツト履歴テーブルを設け、L2キヤツシユ中の所
与のブロツクがメイン・メモリへ戻され且つその
後にこのブロツクが要求される場合、このブロツ
クがL2キヤツシユに以前に保持されている間に
使用されたラインだけをL2キヤツシユへ転送す
ることにより、当該データ処理システムのメモ
リ・アクセス時間を改善することにある。
E 問題点を解決するための手段 本発明は、メイン・メモリからL2キヤツシユ
へデータを取出すための巧妙な方法を提供するも
のである。この概念は、各ブロツク中のどのライ
ンが過去に使用されたかを記録することに基いて
いる。云いかえれば、所与のブロツクをメイン・
メモリに戻した後に該当するブロツク・ミス(キ
ヤツシユ・ミス)が生ずる場合、このブロツクが
L2キヤツシユに保持されている間に使用された
ラインだけをL2キヤツシユへ転送するのである。
この概念を実現するため、セクタ型のL2キヤツ
シユに関連してワーキング・セツト履歴テーブル
(WSHT)が設けられる。L2キヤツシユの編成及
び動作は、WSHTとのインタフエースを除けば、
通常のセクタ型キヤツシユと同じである。
WSHTの構成は、L2キヤツシユのデイレクトリ
と同様であるが、それより大きいサイズを有す
る。WSHTはプロセツサによつて最近に使用さ
れたブロツクの識別子を保持し、また各ブロツク
中のラインごとに使用ビツトを保持する。
WSHTは有限のテーブルであるから、LRU
(Least Recently Used)アルゴリズムに従つた
置換を行うことが必要である。L2キヤツシユに
対するアクセス要求のアドレスは、アクセスされ
たブロツク中の使用ラインを更新するために、
WSHTにも並列に送られる。L2キヤツシユでブ
ロツク・ミスが生ずる場合、もしそのブロツク識
別子がWSHT中で検出されるならば、当該ブロ
ツクのうち使用ビツトがオンとなつている任意の
ラインがメイン・メモリからL2キヤツシユへロ
ードされる。
さもなければ、ブロツク識別子がWSHTに書
込まれ、そしてブロツク・ミスを生ぜしめたライ
ンだけがL2キヤツシユへロードされる。
F 作用 本発明はセクタ型のL2キヤツシユに基礎を置
いている。L2キヤツシユでブロツク・ミスが生
ずる場合、このブロツクがL2キヤツシユに保持
されている間の過去の使用状況に従つて、当該ブ
ロツク中のラインがメイン・メモリから取出され
る。プロセツサで実行中のプログラムはメモリ・
セグメントにおける1組の位置を反復的に使用す
る傾向があるから、本発明によれば、ブロツク・
ミスが生じた際にプロセツサが将来使用するであ
ろう当該ブロツク中のラインを正確に推定するこ
とができる。本発明に従つたL2キヤツシユは、
各ブロツクにおけるラインの使用状況を記録する
ワーキング・セツト履歴テーブル(WSHT)を
備えている。このため、ブロツク中のすべてのラ
インを取出すことが不要となるから、メモリ・ト
ラヒツクを著しく減少させることができる。一
方、所与のブロツクが再び有効になると、プロセ
ツサは直ちにそのワーキング・セツトを再構築す
ることができる。この結果、メモリ・アクセス時
間が著しく減少することになる。
G 実施例 G1 一般的構成の説明(第1図、第2図) 第2図のデータ処理システムは、プロセツサ1
00とその関連する3レベルの階層メモリ、すな
わち第1レベル(L1)のキヤツシユ200及び
そのデイレクトリ250、第2レベル(L2)の
キヤツシユ300及びそのデイレクトリ350、
並びにメイン・メモリ500を含んでいる。これ
らのメモリはアクセス要求のアドレスを転送する
1つ以上のアドレス・バス110を介して接続さ
れ、また変更データ又は要求データを転送するデ
ータ・バス120を介して接続されている。一般
に、アクセス要求(書込み又は取出し)はアドレ
ス・バス110を介してまずL1キヤツシユ・デ
イレクトリ250へ送られ、次にL2キヤツシ
ユ・デイレクトリ350へ送られ、最後にメイ
ン・メモリ500へ送られる。この階層メモリに
おける探索は、要求データが検出されたレベルで
終了する。
このシステムの動作を説明する前に、本明細書
で使用する用語を説明しておく。メモリ中の一定
数のバイトを参照するアクセス要求のサイズは一
定であり、「アクセス単位」と呼ばれる。本発明
は特定のアクセス単位を必要としないが、説明の
便宜上、以下ではすべてのアクセス要求がダブル
ワード単位で行われると仮定する。L1キヤツシ
ユ200の記憶単位は「ライン」と呼ばれ、これ
はメモリ中の連続データを保持することができ
る。L1キヤツシユ・デイレクトリ250は、L1
キヤツシユ200に現に保持されている各ライン
ごとに1つのエントリを有する。またこのデイレ
クトリはL1キヤツシユ200に保持されている
各ラインの置換順序も維持しているので、L1キ
ヤツシユ200が充満状態にある間に所与のライ
ンをロードしようとする場合には、最も長い間使
用されなかつたラインを決定してこれを置換する
ことができる。L2キヤツシユ300の記憶単位
は「ブロツク」と呼ばれ、これはL1キヤツシユ
200中の1ラインよりも相当大きいものと仮定
する。現にアクセスを要求されているダブルワー
ドを含むライン及びブロツクは、それぞれ「アク
セス・ライン」及び「アクセス・ブロツク」と呼
ばれる。ブロツク・ミス発生時にブロツク全体を
出し入れするようなフル・ブロツク型L2キヤツ
シユの構成及び動作は、L1キヤツシユ200の
それと同じである。しかしながら、セクタ型の
L2キヤツシユ300はこれとは若干異なる。す
なわち、データの記憶割振り及び置換は依然とし
てブロツク単位で行われるが、データのロードは
ライン単位で行われるからである。もしアクセ
ス・ブロツクがL2キヤツシユ300に現に保持
されていなければ、当該ブロツクのうち極く僅か
なラインだけがL2キヤツシユ300へロードさ
れる。これは「ブロツク・ミス」と呼ばれる。ブ
ロツク・ミスが存在する場合か、或いはアクセ
ス・ブロツクがL2キヤツシユ300で検出され
るとしても、要求されているダブルワードを含む
ラインがL2キヤツシユ300に保持されていな
い場合には、現アクセス要求は「ライン・ミス」
を発生する。
当該技術分野では周知のように、キヤツシユと
その上位レベルのメモリに置かれたデータのコピ
ーを一致させるためには、2つの方法を使用する
ことができる。すなわち、ストア・イン型キヤツ
シユでは、キヤツシユからその上位レベルのメモ
リへの置換が必要となるまで、変更ラインの最新
コピーをキヤツシユにだけ保持させるようにして
いる。一方、ストア・スルー型キヤツシユでは、
プロセツサによつて変更されたすべてのデータの
最新コピーをキヤツシユ及びその上位レベルのメ
モリに同時に保持させるようにしている。後者の
方法はデータ書込みの際にキヤツシユ及びその上
位レベルのメモリを同時に更新することを必要と
するが、前者の方法ではキヤツシユ中にデータが
保持されている場合でもその上位レベルのメモリ
を更新する必要はない。説明の便宜上、以下では
ストア・スルー型のL1キヤツシユ200とスト
ア・イン型のL2キヤツシユ300が使用される
ものと仮定する。ストア・イン型キヤツシユ及び
その置換論理については、米国特許第3735360号
及び第3771137号に詳細に記述されている。スト
ア・スルー型キヤツシユの詳細は、シー・ジエ
ー・コンテイによる論文「バツフア記憶装置の概
念」、アイ・イー・イー・イー コンピユータ・
グループ・ニユース(C.J.Conti、“Concepts for
Buffer Storage”、IEEE Computer Group
News)、1969年3月発行、第9頁−第13頁に記
述されている。さらにセクタ型キヤツシユの構成
及び動作は、IBMシステムズ・ジヤーナル
(IBM Systems Journal)、第7巻、第1号、
1968年、第15頁−第21頁に記述されている。従つ
て、これらのキヤツシユの詳細については、本明
細書では省略する。
第1図は本発明に従つたワーキング・セツト履
歴テーブル(以下「WSHT」と略す。」400の
実現模式を示す。WSHT400は通常のデー
タ・メモリを備えていないが、最近に使用された
ブロツクのすべての識別子を保持するテーブルを
備えており、そこに以下で説明するラインの使用
ビツトを記憶している。WSHT400は、L2キ
ヤツシユ・デイレクトリ350に対するインタフ
エース450を除けば、このデイレクトリと実質
的に同様のものである。L2キヤツシユ300の
アクセスが行われるたびに、これと同じアドレス
がWSHT400にも送られる。もしアクセス・
ブロツクの識別子がWSHT400で検出される
ならば、当該ブロツクにおけるアクセス・ライン
の使用ビツトが更新される。さもなければ、最も
長い間使用されなかつたブロツクの識別子を現ア
クセス・ブロツクの識別子と置換し、そして当該
ブロツクにおけるアクセス・ラインの使用ビツト
をオンに転ずる。L2キヤツシユ・デイレクトリ
350がブロツク・ミスを検出する場合は、これ
はインタフエース450を介してWSHT400
に信号を送ることにより、WSHT400に当該
ブロツクの識別子が存在するか否かを調べさせ
る。もしこのブロツクの識別子がWSHT400
で検出されるならば、使用ビツトがオンとなつて
いるすべてのラインがL2キヤツシユ300へ取
出される。但し、このブロツク・ミスを生ぜしめ
たラインについては、L2キヤツシユの通常の動
作を通して既に取出要求が送出されているので、
これは新たな取出しの対象とならない。
G2 メモリ・アドレス及びエントリの説明(第
3図〜第6図) 第3図は、L2キヤツシユ300及びそのデイ
レクトリ350をアドレスするために使用され
る、アクセス要求の24ビツト・アドレスを示す。
説明の便宜上、ここではL1キヤツシユ200及
びL2キヤツシユ300の構成について下記の事
項を仮定している。
●24ビツト・アドレツシング(ビツト0−23) ●アクセス単位=8バイト(1ダブルワード) ●L1キヤツシユ ストア・スルー型 1ライン=128バイト ●L2キヤツシユ 1ブロツク=512バイト(4ラ
イン) 4ウエイのセツト・アソシアテイブ 512コラム セクタ型 容量=1024ブロツク(1Mバイト) 第3図を再び参照するに、フイールドA(ビツ
ト0−5)は、現アクセス・ブロツクの識別子
(ID)である。これはL2キヤツシユ・デイレクト
リ350中のブロツク識別子と比較され、当該ブ
ロツクがL2キヤツシユ300に保持されていな
い場合には、L2キヤツシユ・デイレクトリ35
0へ書込まれる。フイールドB(ビツト6−14)
は、L2キヤツシユ300のコラム・アドレスで
ある。フイールドC(ビツト15−16)は、当該ブ
ロツクにおけるアクセス・ラインのライン識別子
である。フイールドD(ビツト17−20)は、この
ラインにおける要求中ダブルワードの識別子であ
る。
第4図は、WSHT400をアドレスするため
に使用される、24ビツト・アドレスを示す。但
し、WSHT400のサイズはL2キヤツシユ30
0と異なるから、第4図のアドレスは第3図とは
異なるフイールドへ分割されている。WSHT4
00については、下記の事項を除き、L2キヤツ
シユ300と同じ事項が仮定されている。
●2048コラム ●容量=8192ブロツク(すなわち、8192ブロツク
の履歴を保持) 第4図を参照するに、フイールドA′(ビツト0
−3)はブロツク識別子であり、フイールト
B′(ビツト4−14)はWSHT400におけるコラ
ム・アドレスである。フイールドA′及びB′は、
L2キヤツシユ300中の現アクセス・ブロツク
を参照する。フイールドC(ビツト15−16)は、
第3図と同じライン識別子である。
第5図は、L2キヤツシユ・デイレクトリ35
0の1エントリを表わす。これは第3図のフイー
ルドAに対応するブロツク識別子(フイールド
A)を保持し、また当該ブロツク中の各ラインご
とに1つの有効ビツトを保持する。各有効ビツト
は、これに対応するラインがL2キヤツシユ30
0に現にロードされているか否かを指示するため
のものである。第6図は、WSHF400の1エ
ントリを表わす。これは第4図のフイールド
A′に対応するブロツク識別子(フイールドA′)
を保持し、また当該ブロツク中の各ラインごとに
1つの使用ビツトを保持する。各使用ビツトは、
これに対応するラインがL2キヤツシユ300に
置かれている間にプロセツサ100によつて使用
されたことがあるか否かを指示するためのもので
ある。
G3 L2キヤツシユの詳細な説明(第7図) 次に、L2キヤツシユ300及びL2キヤツシ
ユ・デイレクトリ350の詳細な動作を説明す
る。第7図には、L2キヤツシユ300、L2キヤ
ツシユ・デイレクトリ350及びWSHT400
とのインタフエース450が詳細ブロツク図の形
式で示されている。図示されたシステムは4ウエ
イのセツト・アソシアテイブ式キヤツシユであつ
て、デイレクトリ、更新/置換アレイ及び制御論
理を含む。L2キヤツシユ300は、入力ゲート
回路301、出力ゲート回路302、ORゲート
303及びデータ入力バス305を含む。キヤツ
シユ・デイレクトリ350は、アドレス入力ゲー
ト回路351、アドレス比較論理352及びライ
ン・インジケータ353を含む。更新/置換アレ
イは、置換アレイ355、更新/置換論理35
6、アドレス・ゲート回路357及び358、並
びにライン有効ビツト更新論理(LVUL)370
から成る。
プロセツサ100からバス110に与えられる
アクセス要求のアドレスは、第3図に関連して既
に説明したフイールドA及びBに従つて、デイレ
クトリ350及び置換アレイ355をアドレスす
るために使用される。ブロツク識別子Aはアドレ
ス入力ゲート路351へ供給され、またアドレス
比較論理352にも供給される。コラム・アドレ
スBは、比較すべきブロツク識別子の特定のコラ
ムを選択するために、図示のようにデイレクトリ
350へ供給される。ライン・インジケータ35
3は、2のべき乗演算を遂行することにより、ラ
イン識別子Cを所与のブロツク中のライン位置
C′へ変換する。すなわち、C′=2Cである。前述の
内容から明らかなように、1ブロツクを構成する
4ラインのライン識別子は、C=‘00'、‘01'、
‘10'及び‘11'にそれぞれ等しい。これらのライ
ン識別子は、当該ブロツクにおける各ラインの位
置をそれぞれ表わすために、C′=‘0001'、‘
0010'、‘0100'及び‘1000'となるようにそれぞれ
変換される。このC′を当該ブロツクの有効ビツト
(第5図参照)と比較して両者が一致すれば、ラ
インCは現に当該ブロツク中に存在することがわ
かる。まず、コラム・アドレスBによつて指定さ
れたエントリEないしHをアドレス比較論理35
2へ同時に読出して、これをブロツク識別子Aと
比較する。もし1つのエントリが一致すれば、ア
ドレス比較論理352はブロツク・ヒツトを発生
する。また有効ビツトとC′の論理演算結果が非ゼ
ロであれば、アドレス比較論理352はライン・
ビツトを発生する。これと同時に、ブロツクEな
いしHに対応するデータが出力ゲート回路302
へ読出される。アドレス比較論理352の比較結
果はバス361を介してL2キヤツシユ300の
出力ゲート回路302へ送られ、そしてこれが取
出しアクセスに対するライン・ヒツトであれば、
ブロツクAのラインCにおけるダブルワードが選
択され、かくてORゲート303、データ出力バ
ス306及びデータ・バス120(第1図)を介
してL1キヤツシユ200又はプロセツサ100
へ送られる。一方、データ書込みの場合は、書込
むべきダブルワードはバス120及びデータ入力
バス305を介して入力ゲート回路301に供給
され、最終的にL2キヤツシユ300へ書込まれ
る。変更ブロツクはL2キヤツシユ300へ戻さ
れる。もしブロツクAがL2キヤツシユ300に
置かれているが、アクセス・ラインCがL2キヤ
ツシユ300に置かれていなければ、すなわちラ
インCの有効ビツトがキヤツシユ・デイレクトリ
350中でオフとなつているならば、ライン・ミ
スが発生され、そして当該要求はメイン・メモリ
500(第1図)へ送られる。この場合、当該ラ
イン・ミスを生ぜしめたラインは、入力ゲート回
路301を介してL2キヤツシユ300へロード
される。もしいずれのブロツクについてもアドレ
ス一致が検出されなければ、ブロツク・ミスが発
生され、そしてアクセス・ラインのロード要求が
メイン・メモリへ送られる。これと同時に、イン
タフエース450を介してWSHT400へブロ
ツク・ミス信号が送られ、これに応じて当該ブロ
ツク中の他のラインをL2キヤツシユ300へロ
ードすべきか否かが検査される。
LRU置換論理の詳細は米国特許第4008460号に
記述されているから、ここではその詳細な説明を
省略する。更新/置換論理356は、フイールド
Bによつて指定されたコラムにおいて、各ブロツ
クの現置換ステータス355を読出す。もしブロ
ツクAがL2キヤツシユ300に置かれていなけ
れば(ブロツク・ミス)、このステータスはブロ
ツクAの空間を作るために置換すべき特定のブロ
ツクを指示する。このコラムにおける更新済みの
ブロツク識別子は、WSHT400からの使用ビ
ツトがバス451を通してライン有効ビツト更新
論理(LVUL)370で受取られるまで、アドレ
ス・ゲート回路357に記憶される。このように
して有効ビツトを作成されたブロツクAの新しい
エントリはアドレス・ゲート回路358に記憶さ
れ、そこからアドレス入力ゲート回路351を経
由してキヤツシユ・デイレクトリ350へ送られ
てその内容を更新するのである。従つて、ブロツ
クAがミスしているか否かに拘わらず、ブロツク
Aが当該コラムにおける一番最近に使用されたブ
ロツクとなるように、置換アレイが更新されるこ
とになる。
G4 WSHTの詳細な説明(第8図) 第8図には、本発明に従つたWSHT400が
示されている。その主たる構成要素は、L2キヤ
ツシユ・デイレクトリ350に対するインタフエ
ース論理を除けば、第7図に示した該デイレクト
リのそれと実質的に同じである。図示のように、
最近に使用されたブロツクのすべての識別子を保
持するWSHT400が設けられている。第6図
に示すように、WSHT400の各エントリは1
つのブロツク識別子を保持し、また当該ブロツク
中の各ラインごとに1つの使用ビツトを保持して
いる。L2キヤツシユ300のアクセスを行なう
場合、そのアドレスはバス110を介して
WSHT400にも送られる。フイールドB′によ
つて指定されたコラム中のすべてのブロツク識別
子はアドレス比較論理405へ同時に読出され、
そこでフイールドA′と比較される。第8図に示
したフイールドC、ライン・インジケータ403
及びライン位置C′は、第7図に示したものと同じ
である。もし当該コラムにブロツク識別子A′が
置かれており、しかもラインCの使用ビツトがオ
ンであれば、当該エントリは不変のままに留ま
る。もし当該コラムにブロツク識別子A′が置か
れているが、ラインCの使用ビツトがオフであれ
ば、ライン・ミスが発生される。もし当該コラム
におけるいずれのブロツク識別子も一致しなけれ
ば、ブロツク・ミスが発生され、そしてその結果
がバス407を介して更新/置換論理420へ送
られる。この場合、更新/置換論理420は、フ
イールドB′によつて指定されたコラムの現置換
ステータスを置換アレイ410に読取る。もしブ
ロツクA′のエントリがWSHT400に置かれて
いなければ(ブロツク・ミス)、更新/置換論理
420は置換アレイ410の内容に従つて最も長
い間使用されなかつたブロツクのエントリをブロ
ツクA′のエントリと置換し、ブロツクA′のエン
トリにおけるラインCの有効ビツトをオンに転ず
るとともに、新しく使用されたブロツクA′のエ
ントリをアドレス・ゲート回路421へ書込む。
もし当該アクセスがライン・ミスだけを生ぜしめ
るのであれば、更新/置換論理420はブロツク
A′のエントリにおけるラインCの使用ビツトを
オンに転ずるにすぎない。もし同時的なL2キヤ
ツシユ300のアクセスが該キヤツシユのブロツ
ク・ミスを生ぜしめるならば、L2キヤツシユ・
デイレクトリ350中のインタフエース450は
このブロツク・ミスをWSHTに通知して、当該
ブロツクの使用ビツトをバス451を介してL2
キヤツシユ・デイレクトリ350へ送るように指
示する。ライン使用ビツト更新論理(LUUL)4
30の詳細は以下で説明する。ブロツクA′のエ
ントリ、すなわちブロツク識別子A′及びそのラ
イン・使用ビツトはアドレス・ゲート回路422
に記憶され、次いでWSHT400を更新するた
めにアドレス入力ゲート回路400へ送られる。
かくて、WSHT400のブロツク・ミスが存在
するか否かに拘わらず、置換アレイ410におけ
るコラムのうちでブロツクA′が一番最近に使用
されたブロツクとなるように、更新動作が行われ
るのである。
G5 ライン有効ビツト更新論理及びライン使用
ビツト更新論理の説明(第9図、第10図) 第9図は、第7図に概略的に示したライン有効
ビツト更新論理(LVUL)370を一層詳細に示
しており、特にライン又はブロツク・ミス発生時
に各ブロツクの有効ビツトがどのようにして更新
されるかを示している。すべてのアドレスは、第
7図のアドレス・ゲート回路357から与えられ
る。ライン・ミスが発生する場合、ブロツクAの
1組の有効ビツトVはORゲート372によつて
ミスしたラインのCのC′と併合され、その結果が
有効ビツト(V′)バツフア373に書込まれる。
L2キヤツシユ300のブロツク・ミスが生ずる
場合、有効ビツト・バツフア373の内容はバス
451を介して与えられる使用ビツトUによつて
重ね書きされる。いずれの場合にも、有効ビツ
ト・バツフア373の内容はL2キヤツシユ・デ
イレクトリ350のエントリ374を形成するた
めにブロツク識別子Aと併合され、その結果が第
7図のアドレス・ゲート回路358へ送られる。
第10図は、第6図に概略的に示したライン使
用ビツト更新論理(LUUL)430を一層詳細に
示しており、特にWSHT400のライン又はブ
ロツク・ミス発生時に各ブロツクの使用ビツトが
どのように更新されるかを示している。すべての
アドレスは、第8図のアドレス・ゲート回路42
1から与えられる。まず、ブロツク識別子A′が
WSHT400に置かれていなければ、その1組
の使用ビツトUはANDゲート432によつてゼ
ロに設定され、その結果が使用ビツト(U′)バ
ツフア433に書込まれる。さもなければ、これ
らの使用ビツトUは直接的に使用ビツト・バツフ
ア433へ送られる。次いで、このバツフア43
3の内容はORゲート434によつてアクセス・
ラインのCのC′と併合され、その結果が他の使用
ビツト(U′)バツフア435に書込まれる。も
しブロツクAがミスしていることを指示する信号
がL2キヤツシユから受取られなければ、使用ビ
ツト・バツフア435の内容はブロツク識別子
A′と併合され、その結果が第8図のアドレス・
ゲート回路422へ送られる。もしブロツクAが
L2キヤツシユでミスしているならば、使用ビツ
ト・バツフア435中の1組の使用ビツトはバス
451を介してL2キヤツシユ・デイレクトリ3
50中のライン有効ビツト更新論理(LVUL)3
70へ送られる。ブロツク識別子A′及びC′を併
合することによつてWSHT400のエントリが
形成され、第8図のアドレス・ゲート回路422
へ送られる。
H 発明の効果 以上詳述したように、本発明によれば、L2キ
ヤツシユ中のブロツクのうち以前に使用されたラ
インの識別子をワーキング・セツト履歴テーブル
に記録するようにしているので、キヤツシユのヒ
ツト率を実質的に改善することができ、ひいては
メイン・メモリとL2キヤツシユの間のトラヒツ
クを実質的に減少させることができる。
【図面の簡単な説明】
第1図は3レベルの階層メモリを備え、第2レ
ベル(L2)のキヤツシユに関連するワーキン
グ・セツト履歴テーブル(WSHT)を有する、
本発明に従つたデータ処理システムを示すブロツ
ク図、第2図は3レベルの階層メモリを備えたデ
ータ処理システムを示すブロツク図、第3図は
L2キヤツシユをアクセスするために使用される
24ビツト・アドレスの様式を示す図、第4図は
WSHTをアクセスするために使用される24ビツ
ト・アドレスの様式を示す図、第5図はL2キヤ
ツシユ・デイレクトリにおけるエントリの様式を
示す図、第6図はWSHTデイレクトリにおける
エントリの様式を示す図、第7図はWSHTとの
インタフエースを備えたL2キヤツシユを示すブ
ロツク図、第8図はWSHT及びL2キヤツシユ・
デイレクトリとのインタフエースを示すブロツク
図、第9図はL2キヤツシユにおけるライン有効
ビツト更新論理を示す図、第10図はWSHTに
おけるライン使用ビツト更新論理を示す図であ
る。 100……プロセツサ、200……第1レベル
(L1)キヤツシユ、250……L1キヤツシユ・デ
イレクトリ、300……第2レベル(L2)キヤ
ツシユ、350……L2キヤツシユ・デイレクト
リ、400……ワーキング・セツト履歴テーブル
(WSHT)、450……インタフエース、500
……メイン・メモリ。

Claims (1)

  1. 【特許請求の範囲】 1 プロセツサと3レベルの階層メモリとを備
    え、該階層メモリは第1レベルのキヤツシユ、第
    2レベルのキヤシユ及び第3レベルのメイン・メ
    モリから成り、該メイン・メモリは複数の情報セ
    ツトを記憶し、前記第2レベルのキヤツシユは各
    情報セツトを構成する複数の情報サブセツトを記
    憶するように編成されているデータ処理システム
    において、 各情報セツトの情報サブセツトが前記第2レベ
    ルのキヤツシユに置かれている間に実際に使用さ
    れたか否かを指示する使用情報を各情報サブセツ
    トごとに記憶するための履歴テーブルを前記メイ
    ン・メモリ及び前記第2レベルのキヤツシユに関
    連して設け、 所与の情報セツトが前記第2レベルのキヤツシ
    ユから前記メイン・メモリへ戻された後に該情報
    セツトを前記第2レベルのキヤツシユへ転送する
    ように要求される場合、該情報セツトが前記第2
    レベルのキヤツシユに置かれている間に使用され
    た特定の情報サブセツトだけを前記メイン・メモ
    リから前記第2レベルのキヤツシユへ転送するよ
    うにしたことを特徴とする、3レベルの階層メモ
    リを備えたデータ処理システム。
JP60104140A 1984-08-24 1985-05-17 3レベルの階層メモリを備えたデ−タ処理システム Granted JPS6154547A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US64393184A 1984-08-24 1984-08-24
US643931 1984-08-24

Publications (2)

Publication Number Publication Date
JPS6154547A JPS6154547A (ja) 1986-03-18
JPH044617B2 true JPH044617B2 (ja) 1992-01-28

Family

ID=24582749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60104140A Granted JPS6154547A (ja) 1984-08-24 1985-05-17 3レベルの階層メモリを備えたデ−タ処理システム

Country Status (4)

Country Link
EP (1) EP0173893B1 (ja)
JP (1) JPS6154547A (ja)
CA (1) CA1228171A (ja)
DE (1) DE3583639D1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2965987B2 (ja) * 1988-02-22 1999-10-18 株式会社日立製作所 データ処理システム
IT1238313B (it) * 1990-01-18 1993-07-12 Memoria tampone in tandem
JPH0544466U (ja) * 1991-11-25 1993-06-15 日立工機株式会社 インパクトレンチのスチールボール脱落防止構造
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
US7334088B2 (en) 2002-12-20 2008-02-19 International Business Machines Corporation Page descriptors for prefetching and memory management
US7337278B2 (en) 2004-04-15 2008-02-26 International Business Machines Corporation System, method and storage medium for prefetching via memory block tags
US7386679B2 (en) 2004-04-15 2008-06-10 International Business Machines Corporation System, method and storage medium for memory management
US9569364B1 (en) 2016-02-08 2017-02-14 International Business Machines Corporation Multiple history based micro partition prefetch optimization

Also Published As

Publication number Publication date
DE3583639D1 (de) 1991-09-05
EP0173893A2 (en) 1986-03-12
CA1228171A (en) 1987-10-13
EP0173893A3 (en) 1988-08-17
EP0173893B1 (en) 1991-07-31
JPS6154547A (ja) 1986-03-18

Similar Documents

Publication Publication Date Title
EP0185867B1 (en) A memory hierarchy and its method of operation
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
EP0077453B1 (en) Storage subsystems with arrangements for limiting data occupancy in caches thereof
US5530829A (en) Track and record mode caching scheme for a storage system employing a scatter index table with pointer and a track directory
US5584013A (en) Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
US5684976A (en) Method and system for reduced address tags storage within a directory having a tree-like data structure
JPS624745B2 (ja)
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JP3236287B2 (ja) マルチプロセッサシステム
CN1181544A (zh) 通过去除二级超高速缓冲存储器中的过时行增强处理器的存储器性能
JPS63186348A (ja) 1回書込み多数回読取記憶媒体の効用を高める装置および方法
JP2788836B2 (ja) ディジタルコンピュータシステム
JPH044617B2 (ja)
CA1202426A (en) Buffer storage including a swapping circuit
JPS6326417B2 (ja)
US6901450B1 (en) Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors
EP0170525B1 (en) Cache hierarchy design for use in a memory management unit
JP2000285022A (ja) ディスク制御装置
JPS644214B2 (ja)
JP3335919B2 (ja) ディスクキャッシュ制御装置
JP3078303B2 (ja) キャッシュメモリ制御回路
JPH08137753A (ja) ディスクキャッシュ装置
JPH05120139A (ja) キヤツシユメモリ装置
JPH08328960A (ja) キャッシュメモリ装置
JPS61296450A (ja) キヤツシユメモリ制御方法