JPS6154547A - 3レベルの階層メモリを備えたデ−タ処理システム - Google Patents

3レベルの階層メモリを備えたデ−タ処理システム

Info

Publication number
JPS6154547A
JPS6154547A JP60104140A JP10414085A JPS6154547A JP S6154547 A JPS6154547 A JP S6154547A JP 60104140 A JP60104140 A JP 60104140A JP 10414085 A JP10414085 A JP 10414085A JP S6154547 A JPS6154547 A JP S6154547A
Authority
JP
Japan
Prior art keywords
cache
block
line
memory
level
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
Application number
JP60104140A
Other languages
English (en)
Other versions
JPH044617B2 (ja
Inventor
フイリツプ・ルイス・ローゼンフエルド
キミング・ソウ
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 JPS6154547A publication Critical patent/JPS6154547A/ja
Publication of JPH044617B2 publication Critical patent/JPH044617B2/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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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

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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A、産業上の利用分野 B、開示の概要 C0従来の技術 り1発明が解決しようとする問題点 E1問題点を解決するための手段 20作 用 G、実施例 G1. 一般的構成の説明(第1図、第2図)G2. 
 メモリ・アドレス及びエントリの説明(第6図〜第6
図) G3.L2キャッシュの詳細な説明(第7図)G4. 
 WSI(Tの詳細な説明(第8図)G5.  ライン
有効ピット更新論理及びライン使用ビット更新論理の説
明 (第9図、第’io図) ■1発明の効果 A、産業上の利用分野 本発明はデータ処理システムに係り、更に詳細に説明す
れば階層メモリを備えた高性能データ処理システムのメ
モリ・アクセス時間及びメモリ・アクセス・トラヒック
を改善する。ことに係る。
B、開示の概要 本発明ハ、第1レベル(Ll)のキャッシュ、第2レベ
ル(L2)のキャッシュ及(jME3レベル(L3)の
メイン・メモリから成る階層メモリを備えたデータ処理
システムにおいて、L2キャッシュに保持されている各
ブロックのうち実際に使用されたラインを識別するため
のワーキング・セット履歴テーブル(WS)IT)を設
置I、L2キャッシュ中の所与のブロックがメイン・メ
モリへ戻され且つその後にこのブロックが要求される場
合、このブロックが以前にL2キャッシュに保持されて
いる間に使用されたラインだけをL2キャッシュへ転送
することにより、この種のデータ処理システムの性能を
改善するようにしたものである。
C0従来の技術 高性能の多重処理システムでは、複数のプロセッサが1
つの階層メモリを共有するか、又は各プロセッサがそれ
自身の階層メモリを備えている。
ここで、階層メモリとは、キャッシュと呼ばれる高速小
容量のバッファと、低速大容量のメイン・メモリを含む
ものである。キャッシュはプロセッサが最近に使用した
一部のデータを保持するにすぎないが、そのヒツト率は
非常に高(、これによりプロセッサの平均メモリ・アク
セス時間が著しく短縮されている。しかしながら、キャ
ッシュの性能は、依然としてそのサイズによって制約さ
れるのである。すなわち、メイン・メモリが比較的遠い
位置に設けられている場合は、所謂キャッシュ・ミスが
極べ僅かしか生じないとしても、プロセッサはその必要
とするデータがメイン・メモリから取出されるまで長時
間の間これを待機しなければならないからである。キャ
ッシュ・ミスを補償するだめの1つの方法は、キャッシ
ュとメイン・メモリの間に第2レベルのキャッシュを設
けることである。IBMテクニカル・ディスクロージャ
・プレテン(Technical Disclosur
eBulletin )、第21巻、第6号、1978
年11月発行、第2468頁−第2469頁には、第2
レベルのキャッシュが記述されている。ここで、プロセ
ッサに最も近いキャッシュは第1レベルのキャッシュ(
Ellキャラシュン呼ばれ、L1キャッシュとメイン・
メモリの間にあるキャッシュは第2レベルのキャッシュ
(L2+ヤッシュ)ト呼ばれる。
L2キャッシュはL1キャッシュよりも低速であるが、
比較的大きな容量を有する。従って、L1キャッシュ及
びL2キャッシュの記憶単位’Yそれぞれライン及びブ
ロックと呼ぶことにすれば、−1ブロツクを1ラインよ
りも相当大きく取るのが有利である。このようにすれば
、L2キャッシュのディレクトリ空間が節約できるだけ
でなく、プロセッサがメモリ位置を逐次にアクセスする
ことが非常に多いという特性を有効に活用することがで
きるからである。フル・ブロック似のL2キャツシュで
キャッシュ・ミスが生ずる場合、すなわちプロセッサに
よって要求されたデータを含むブロックがL2キャッシ
ュに置かれていない場合、メイン・メモリからL2キャ
ッシュへブロック転送が行われなければならない。しか
しながら、L2キャッシュにおける2つ以上のキャッシ
ュ・ミスが連続的に生ずるような場合には1.プロセッ
サは長い遅延に遭遇することになる。この種の現象は、
L2キャッシュのために選ばれた大きなブロック・サイ
ズに起因するものである。 −ブイレフ) IJ窓空間
増加することなくこの種の現象に起因する遅延を最小に
するための1つの方法は、IBMシステム/660モデ
ル85で使用された、セクタ型キャッシュの概念を使用
することである。この概念によれば、L2キャッシュに
おける記憶割振りは依然としてブロック単位で行われる
が、ブロックの一部(通常はキャッシュ・ミスを生ぜし
めたL1ライン)だけをメイン・メモリから取出して、
これをL2キャッシュヘロードすればよい。L1キャッ
シュに比べると、セクタ型のL2キャッシュはプロセッ
サで実行されているプログラムの一層大きなワーキング
・セットを保持しうることは明らかである。しかしなが
ら、プロセッサが新しいプログラム、従って新しいワー
キング・セットへ切換わる場合には、両キャッシュとも
同数のキャッシュ・ミスを生せしめることになる。セク
タ型のL2キャッシュはキャッシュ・ミス発生時にL1
キャッシュと同じ量のデータを取出すから、もしL2キ
ャッシュが各キャッシュ・ミスごとに1又は2ラインの
みを常に取出すように制限されていなければ、L2キャ
ッシュに新しいワーキング・セットが先にロードされる
ことがありうる。
プロセッサとメイン・メモリの間に設けられた通常のL
1キャッシュと比べると、L2キャッシュの構成、動作
様式及びメイン・メモリとの相互作用には、実質的な違
いはない。すなわち、L1キャッシュについて使用され
るすべての概念は、L2キャッシュにも同様に適用する
ことができるのである。メイン・メモリからL1キャッ
シュヘデータをロードする方法には、多(のものがある
たとえば、米国特許第3588829号に記述された階
層メモリでは、キャッシュとメイン・メモリの間のバス
をバッファとして使用し且つインタリープ式メモリを使
用することによって、階層メモリに対する複数の取出又
は書込動作を並列に行わせるようにしている。また米国
特許第4317168号に記述されたキャッシュ・シス
テムでは、メイン・メモリからのライン取出とキャッシ
ュからの変更ラインの置換を並列に行わせるようにして
いる。これらの特許に記述されたものは、いずれも階層
メモリに対するアクセスの同時性に重きを置いている。
一方、これまでに提案されたすべてのローディング方式
は、キャッシュ・ミスが生じた場合にだけキャッシュへ
のロード火行うという意味で、デマンド式のものである
と云うことができる。たとえば、米国特許第37353
60号及び第3771137号に記述されたストア・イ
ン型のキャッシュでは、キャッシュ・ミスの発生時に任
意のラインをキャッシュへロードするとともに、変更ラ
インをその置換が必要となるまでキャッシュ中に保持さ
せるようにしている。
また米国特許第4442487号に記述された多重処理
システムにおける3レベルの階層メモリでは、各プロセ
ッサは、それ自身のL1キャッシュ及びL2キャッシュ
に加えて、各レベルにおける共有キャッシュを備えてい
る。ここで強調されているのは、多重処理システムにお
ける複数のプロセッサによってデータを有効に共有する
ということである。
D1発明が解決しようとする問題点 前記特許のいずれにも、プロセッサがそのワーキング・
セットを構築することを助けるように、キャッシュとメ
イン・メモリの間のトラヒック乞考慮しつつ、複数のラ
インをキャッシュヘロードすることについては、全く示
されていない。
従って、本発明の目的は、3レベルの階層メモリを備え
たデータ処理システムのメモリ・アクセス時間を改善す
ることにある。
本発明の他の目的は、6レベルの階層メモリY備えたデ
ータ処理システムにおいて、L2キャッシュに保持され
ている各ブロックのうち過去に使用されたラインを識別
するためのワーキング・セット履歴テーブルを設け、L
2キャツンユ中の所与のブロックがメイン・メモリへ戻
され且つその後にこのブロックが要求される場合、この
ブロックがL2キャッシュに以前に保持されている間に
使用されたラインだけをL2キャッシュへ転送すること
により、当該データ処理システムのメモリ・アクセス時
間を改善することにある。
E1問題点を解決するための手段 本発明は、メイン・メモリからL2キャッシュへデータ
を取出すための巧妙な方法を提供するものである。この
概念は、各ブロック中のどのラインが過去に使用された
かを記録することに基いている。云いかえれば、所与の
ブロックをメイン・メモリに戻した後に該当するブロッ
ク・ミス(キャッシュ・ミス)が生ずる場合、このブロ
ックがL2キャッシュに保持されている間に使用された
ラインだl、−j”4L2キヤツシユへ転送するのであ
る。
この概念を実現するだめ、セクタ型のL2キャッシュに
関連してワーキング・セット履歴テーブル(WSHT)
が設けられる。L2キャッシュの編成及び動作は、WS
HTとのインタフェースを除けば、通常のセクタ型キャ
ッシュと同じである。
WSHTの構成は、L2キャッシュのディレクトリと同
様であるが、それより大きいサイズを有する。WSHT
はプロセッサによって最近に使用されたブロックの識別
子を保持し、また各ブロック中のラインごとに使用ビッ
トを保持する。WSHTは有限のテーブルであるから、
L RU (LeastRecently Used 
)  アルゴリズムに従った置換を行うことが必要であ
る。L2キャッシュに対するアクセス要求のアドレスは
、アクセスされたブロック中の使用ラインを更新するた
めに、WSI−ITにも並列に送られる。L2キャッシ
ュでブロック・ミスが生ずる場合、もしそのブロック識
別子がWSHT中で検出されるならば、当該ブロックの
うち使用ビットがオンとなっている任意のラインがメイ
ン・メモリからL2キャッシュヘロードされる。
さもなければ、ブロック識別子がWSHTに書込まれ、
そしてブロック・ミスを生せしめたラインタItfがL
2キャッシュヘロードされる。
21作用 本発明はセクタ型のL2キャッシュに基礎を置いている
。L2キャッシュでブロック・ミスが生ずる場合、この
ブロックがL2キャッシュに保持されている間の過去の
使用状況に従って、当該ブロック中のラインがメイン・
メモリから取出される。プロセッサで実行中のプログラ
ムはメモリ・セグメントにおける1組の位置を反復的に
使用する傾向があるから、本発明によれば、ブロック・
ミスが生じた際にプロセッサが将来使用するであろう当
該ブロック中のラインを正確に推定することができる。
本発明に従ったL2キャッシュは、各ブロックにおける
ラインの使用状況を記録するワーキング・セット履歴テ
ーブル(WS )(T )を備えている。このため、ブ
ロック中のすべてのラインを取出すことが不要となるか
ら、メモリ・トラヒックを著しく減少させることができ
る。一方、所与のブロックが再び有効になると、プロセ
ッサは直ちにそのワーキング・セットを再構築すること
ができる。この結果、メモリ・アクセス時間が著しく減
少することになる。
G、実施例 G1・ 一般的構成の説明(第1図、第2図)第2図の
データ処理システムは、プロセッサ100とその関連す
る6レベルの階層メモリ、すなわち第1レベル(Ll)
のキャッシュ200及びそのディレクトリ250、第2
レベル(L2)のキャッシュ300及びそのディレクト
リ650、並びにメイン・メモリ500を含んでいる。
これらのメモリはアクセス要求のアドレスを転送する1
つ以上のアドレス・バス110を介して接続され、また
変更データ又は要求データを転送するデ−タ・バス12
0を介して接続されている。一般に、アクセス要求(書
込み又は取出し)はアドレス・バス110を介してまず
L1キャッシュ・ディレクトリ250へ送られ、次にL
2キャッシュ・ディレクトリ350へ送られ、最後にメ
イン・メモリ500へ送られる。この階層メモリにおけ
る探索は、要求データが検出されたレベルで終了する。
このシステムの動作を説明する前に、本明細書で使用す
る用語を説明しておく。メモリ中の一定数のバイトを参
照す−るアクセス要求のサイズは一定であり、「アクセ
ス単位」と呼ばれる。本発明は特定のアクセス単位を必
要としないが、説明の便宜上、以下ではすべてのアクセ
ス要求がダブルワード単位で行われると仮定する。L1
キャッシュ200の記憶単位は「ライン」と呼ばれ、こ
れはメモリ中の連続データを保持することができる。
L1キャッシュ・ディレクトリ250は、L1キャッシ
ュ200に現に保持されている各ラインごとに1つのエ
ントリを有する。またこのディレクラインの置換順序も
維持しているので、L1キャッシュ200が充満状態に
ある間に所与のラインをロードしようとする場合には、
最も長い間使用されなかったラインを決定してこれを置
換することができる。L2キャッシュ301)の記憶単
位は「ブロック」と呼ばれ、これはL1キャッシュ20
0中の1ラインよりも相当大きいものと仮定する。現に
アクセスを要求されているダブルワードな含むライン及
びブロックは、それぞれ「アクセス・ライン」及び「ア
クセス・ブロック」と呼ばれる。ブロック・ミス発生時
にブロック全体を出し入れするようなフル・ブロック型
L2キャッシュの構成及び動作は、L1キャッシュ20
0のそれと同じである。しかしながら、セクタ型のL2
キャッシュ300はこれとは若干異なる。すなわち、デ
ータの記憶割振り及び置換は依然としてブロック単位で
行われるが、データのロードはライン単位で行われるか
らである。もしアクセス・ブロックがL2キャッシュ6
00に現に保持されていなければ、当該ブロックの5ち
極く僅かなラインだけがL2キャッシュ300ヘロード
される。
これは「ブロック・ミスJと呼ばれる。ブロック・ミス
が存在する場合か、或いはアクセス・ブロックがL2キ
ャッシュ600で検出されるとしても、要求されている
ダブルワードな含むラインがL2キャッシュ500に保
持されていない場合には、現アクセス要求は「ライン・
ミス」を発生する。
当該技術分野では周知のように、キャッシュとその上位
レベルのメモリに置かれたデータのコピーを一致させる
ためには、2つの方法を使用することができる。すなわ
ち、ストア・イン型キャッシュでは、キャッシュからそ
の上位レベルのメモリへの置換が必要となるまで、変更
ラインの最新コピーをキャッシュにだけ保持させるよう
にしている。一方、ストア・スルー型キャッシュでは、
プロセッサによって変更されたすべてのデータの最新コ
ピーをキャッシュ及びその上位レベルのメモリに同時に
保持させるようにしている。後者の方法はデータ書込み
の際にキャッシュ及びその上位レベルのメモリを同時に
更新することを必要とするが、前者の方法ではキャッシ
ュ中にデータが保持されている場合でもその上位レベル
のメモリを更新する必要はない。説明の便宜上、以下で
はストア・スルー型のL1キャッシュ200とストア・
イン型のL2キャッシュ300が使用されるものと仮定
する。ストア・イン型キャツ7ユ及びその置換論理につ
いては、米国特許第3735360号及び第37711
37号に詳細に記述されている。ストア・スルー型キャ
ッシュの詳細は、シー・ジエー・コンティによる論文「
バッファ記憶装置の概念」、アイ・イー・イー・イー 
コンピュータ・グループ・ニュース(C,J、 Con
ti。
”Concepts for Buffer Stor
age”夕I EEE  Computer Grou
p News )、 1969年6月発行、第9頁−第
16頁に記述されている。
さらにセクタ型キャッシュの構成及び動作は、IBMシ
ステムズ・ジャーナル(IBM  SystemsJo
urnal ) 、第7巻、第1号、1968年、第1
5頁−第21頁に記述されている。従って、これらのキ
ャッシュの詳細については、本明細書では省略する。
第1図は本発明に従ったツーキング・セット履歴テーブ
ル(以下 rWsHTJと略す。)400の実現様式を
示す。WSHT  400は通常のデータ・メモリを備
えていないが、最近に使用されたブロックのすべての識
別子を保持するテーブルを備えており、そこに以下で説
明するラインの使用ビットを記憶している。WSHT 
 400は、L2キャッシュ・ディレクトリ650に対
するインタフェース450を除けば、このディレクトリ
と実質的に同様のものである。L2キャッシュ300の
アクセスが行われるたびに、これと同じアドレスがWS
HT  400にも送られる。もしアクセス・ブロック
の識別子がWSHT  400で検出されるならば、当
該ブロックにおけるアクセス・ラインの使用ビットが更
新される。さもなければ、最も長い間使用されなかった
ブロックの識別子を現アクセス・ブロックの識別子と置
換し、そして当該ブロックにおけるアクセス・ラインの
使用ビットをオンに転する。L2キャッシュ・ディレク
トリ550がブロック・ミスを検出する場合、これはイ
ンタフェース450を介してWSHT  400に信号
を送ることにより、WSHT  400に当該ブロック
の識別子が存在するか否かを調べさせる。
もしこのブロックの識別子がWSHT  400で検出
されるならば、使用ビットがオンとなっているすべての
ラインがL2キャッシュ300へ取出される。但し、こ
のブロック・ミスを生せしめたラインについては、L2
キャッシュの通常の動作を通して既に取出要求が送出さ
れているので、これは新たな取出しの対象とならない。
G2.  メモリ・アドレス及びエントリの説明(第5
図〜第6図) 第5図は、L2キャッシュ300及ヒソノディレクトリ
650をアドレスするために使用される、アクセス要求
の24ビツト・アドレスを示す。説明の便宜上、ここで
はL1キャッシュ2DO及びL2キャッシュ600の構
成について下記の事項を仮定している。
・24ビツト・アドレッシング(ビット0−23)・ア
クセス単位=8バイト(1ダブルワード)・L1キャッ
シュ  ストア・スルー型1ライン=128バイト ・L2キャッシュ  1ブロツク=512バイト(4ラ
イン)4ウエイのセット・アソシアティブ 512コラム セクタ型 容量=1024ブロック(1Mバイト)第6図を再び参
照するに、フィールドA(ビットo−s )は、現アク
セス・ブロックの識別子(ID)である。これはL2キ
ャッシュ・ブイレフ) リ350中のブロック識別子と
比較され、当該ブロックがL2キャッシュ300に保持
されていない場合には、L2キャッシュ・ディレクトリ
650へ書込まれる。フィールドB(ビア)6−149
は、L2キャッシュろOOのコラム・アドレスである。
フィールドC(ピッl−15−16)は、当該ブロック
におけるアクセス・ラインのライン識別子である。フィ
ールドD(ビット17−20)は、このラインにおけ、
る要求中ダブルワードの識別子である。
第4図は、WSHT  400をアドレスするために使
用される、24ビツト・アドレスを示す。但し、WSH
T  400のサイズはL2キャッシュ600と異なる
から、第4図のアドレスは第6図とは異なるフィールド
へ分割されている。WSHT4[]0については、下記
の事項を除き、L2キャッシュ600と同じ事項が仮定
されている。
・2048コラム ・容量=8192ブロック (すなわち、8192ブロ
ツクの履歴を保持) 第4図を参照するに、フィールドA’(ビットO−6ン
はブロック識別子であり、フィールドB’(ビット4−
14)はWS)(T  400におけるコラム・アドレ
スである。フィールドA・及びB・は、L2キヤツシユ
300中の現アクセス・ブロックを参照する。フィール
ドC(ビット15−16)は、第6図と同じライン識別
子である。
第5図は、L2キャッシュ・ディレクトIJ 550の
1エントリを表わす。これは第6図のフィールドAに対
応するブロック識別子(フィールドA)を保持し、また
当該ブロック中の各ラインごとに1つの有効ビットを保
持する。各有効ビットは、これに対応するラインがL2
キャッシュ300に現にロードされているか否かを指示
するだめのものである。第6図は、WSHF  400
の1エントリを表わす。これは第4図のフィールドA’
に対応するブロック識別子(フィールドA・)を保持し
、まだ当該ブロック中の各ラインごとに1つの使用ビッ
トを保持する。各使用ビットは、これに対応するライン
がL2キャッシュ300に置かれている間にプロセッサ
100によって使用されたことがあるか否かを指示する
ためのものである。
G3.  L2キャッシュの詳細な説明(187図)次
に、L2キャッシュ600及びL2キャッシュ・ディレ
クトIJ 350の詳細な動作を説明する。
第7図には、L2キャッシュ300.L2−1ヤソシユ
・ディレクトリ650及びW S HT  400との
インタフェース450が詳細ブロック図の形式で示され
ている。図示されたシステムは4ウエイのセット・アソ
シアティブ式キャッシュであって、ディレクトリ、更新
/置換アレイ及び制御論理を含ム。L2キャッシュ′5
00は、入力ゲート回路601、出力ゲート回路502
、ORゲート303及びデータ入力バス605を含む。
キャッシュ・ディレクトリ350は、アドレス入力ゲー
ト回路551、アドレス比較論理352及びライン・イ
ンジケータ656を含む。更新/置換アレイは、置換ア
レイ355、更新/置換論理356、アドレス・ゲート
回路357及び658、並びにライン有効ビット更新論
理(LVUL)570がら成る。
プロセッサ100からバス110に与えられるアクセス
要求のアドレスは、第6図に関連して既に説明したフィ
ールドA及びBに従って、ディレクトリ650及び置換
アレイ555をアドレスするために使用される。ブロッ
ク識別子Aはアドレス入力ゲート回路651へ供給され
、またアドレス比較論理652にも供給される。コラム
・アドレスBは、比較すべきブロック識別子の特定のコ
ラムを選択するために、図示のようにディレクトリ65
0へ供給される。ライン・インジケータ653は、2の
べき乗演算を遂行することにより、ライン識別子Cを所
与のブロック中のライン位置C’へ変換する。たとえば
、成るブロックの第6ラインについては、C=’10’
であり、C’=’01(10ずである。まず、コラム・
アドレスBによって指定されたエントリEないしHなア
ドレス比較論理652へ同時に読出して、これをブロッ
ク識別子Aと比較する。もし1つのエントリが一致すれ
ば、アドレス比較論理652はブロック・ヒツトを発生
する。またラインC′の有効ビットがオンであれば、ア
ドレス比較論理652はライン・ヒツトを発生する。こ
れと同時に、ブロックEな(・しHに対応するデータが
出力ゲート回路502へ読出される。アドレス比較論理
352の比較結果はバス361を介してL2キャッシュ
600の出力ゲート回路602へ送られ、そしてこれが
取出しアクセスに対するライン・ヒツトであれば、ブロ
ックAのラインCにおけるダブルワードが選択され、か
くてORゲート60′5、データ出力バス606及びデ
ータ・バス120(第1図)を介してL1キャッシュ2
00又はプロセッサ100へ送られる。一方、データ書
込みの場合は、鉗込むべきダブルワードはバス120及
びデータ入力バス305を介して入力ゲート回路301
に供給され、最終的にL2キャッシュ300へ書込まれ
る。変莢ブロックはL2キャッシュ600へ戻される。
もしブロックAがL2キャッシュ500に置かれている
が、アクセス・ラインCがL2キャッシュ600に置か
れていなげれば、すなわちラインCの有効ビットがキャ
ッシュ・ディレクトリ350中でオフとなっているなら
ば、ライン・ミスが発生され、そして当該要求はメイン
・メモリ500(第1図)へ送られる。この場合、当該
ライン・ミスを生せしめたラインは、入力ゲート回路6
01を介してL2キャッシュ300ヘロードサレル。
もしいずれのブロックについてもアドレス一致が検出さ
れなげれば、ブロック・ミスが発生され、そしてアクセ
ス・ラインのロード要求がメイン・メモリへ送られる。
これと同時に、インタフェース450を介してWSHT
  400へブロック・ミス信号が送られ、これに応じ
て当該ブロック中の他のラインをL2キャッシュ300
ヘロードすべきか否かが検査される。
LRU置換論理の詳細は米国特許第4008460号に
記述されているから、ここではその詳細な説明を省略す
る。更新/(+2換論理356は、フィールドBによっ
て指定されたコラムにおいて、各ブロックの現置換ステ
ータス655を読出す。
もしブロックAがL2キャッシュ300に置かれていな
ければ(ブロック・ミス)、このステータスはブロック
Aの空間を作るために置換すべき特新済みのブロック識
別子は、WSHT  400かもの使用ビットがバス4
51を通してライン有効ビット更新論理(LVUL)3
70で受取られるまヤ、アドレス・ゲート回路657に
記憶される。このようにして有効ビットを作成されたブ
ロックAの新しいエントリはアドレス・ゲート回路65
8に記憶され、そこからアドレス入力ゲート回路351
を経由してキャッシュ・ディレクトリ350へ送られて
その内容を更新するのである。従って、ブロックAがミ
スしているか否かに拘わらず、ブロックAが当該コラム
における一番最近に使用されたブロックとなるように、
置換アレイが更新されることになる。
G4.  WSHTの詳細な説明(第8図)第8図には
、本発明に従ったWSHT  400が示されている。
その主たる構成要素は、L2キャッシュ・ディレクトリ
650に対するインタフェース論理を除けば、第7図に
示した該ディレクトリのそれと実質的に同じである。図
示のように、最近に使用されたブロックのすべての識別
子を保持するWSHT  400が設けられている。第
6図に示すように、WSHT  400の各エントリは
1つのブロック識別子を保持し、また当該ブロック中の
各ラインごとに1つの使用ビラトラ保持している。L2
キャッシュ600のアクセスを行なう場合、そのアドレ
スはバス110を介してWSHT  400にも送られ
る。フィールドB′によって指定されたコラム中のすべ
てのブロック識別子はアドレス比較論理405へ同時に
読出され、そこでフィールドA・と比較される。第8図
に示したフィールドC1ライン・インジケータ403及
びライン位置C゛は、第7図に示したものと同じである
もし当該コラムにブロック識別子A・が置かれており、
しかもラインCの使用ビットがオンであれば、当該エン
トリは不変のままに留まる。もし当該コラムにブロック
識別子A゛が置かれているが、ラインCの使用ビットが
オフであれば、ライン・ミスが発生される。もし当該コ
ラムにおけるいずれのブロック識別子も一致しなげれば
、ブロック・ミスが発生され、そしてその結果がバス4
07を介して更新/置換論理420へ送られる。この場
合、更新/置換論理420は、フィールドB′によって
指定されたコラムの現置換ステータスを置換アレイ41
0に読取る。もしブロックA″のエントリがWSHT 
 400に置かれていなければ(ブロック・ミス)、更
新/置換論理4.20は置換プレイ410の内容に従っ
て最も長い間使用されなかったブロックのエントリをブ
ロックA′のエントリと置換し、ブロックA・のエント
リにおけるラインCの使用ビットをオンに転するととも
に、新しく使用されたブロックA°のエントリをアドレ
ス・ゲート回路421へ書込む。もし当該アクセスがラ
イン・ミスだけを生せしめるのであれば、更新/置換論
理420はブロックA’のエントリにおけるラインC′
の使用ビットをオンに転するにすぎない。もし同時的な
L2キャッシュ600のアクセスが該キャッシュのブロ
ック・ミスを生ぜしめるならば、L2キャッシュ・ディ
レクトリ350中のインクフェース450はこのブロッ
ク・ミスをWsHTに通知して、当該ブロックの使用ビ
ットをバス451を介してL2キャッシュ・ディレクト
リ350へ送るように指示する。ライン使用ビット更新
論理(LUUL)430の詳細は以下で説明する。
ブロックA′のエントリ、すなわちブロック識別子A′
及びそのライン・使用ビットはアドレス・ゲート回路4
22に記憶され、次いでWSHT  400を更新する
ためにアドレス入力ゲート回路400へ送られる。かく
て、WSHT  400のブロック・ミスが存在するか
否かに拘わらず、置換アレイ410におけるコラムのう
ちでブロックA′が一番最近に使用されたブロックとな
るように、更新動作が行われるのである。
G5.  ライン有効ビット更新論理及びライン使用ビ
ット更新論理の説明(第9図、第10図)第9図は、第
7図に概略的に示したライン有効ビット更新論理(LV
UL) 37 Cl’、(一層詳細に示しており、特に
ライン又はブロック・ミス発生時に各ブロックの有効ビ
ットがどのようにして更新されるかを示している。すべ
てのアドレスは、第7図のアドレス・ゲート回路357
から与えられる。ライン・ミスが発生する場合、ブロッ
クAの1組の有効ビットvはORゲート672によって
ミスしたラインのC゛と併合され、その結果が有効ビッ
ト(V′)バッファ673に書込まれる。L2キャッシ
ュ300のブロック・ミスが生ずる場合、有効ビット・
バッファ373の内容はバス451を介して与えられる
使用ビットUによって重ね書きされる。いずれの場合に
も、有効ビット・バッファ675の内容はL2キャッシ
ュ・ディレクトリ350のエントリ374を形成するた
めにブロック識別子Aと併合され、その結果が第7図の
アドレス・ゲート回路658へ送られる。
第10図は、第6図に概略的に示したライン使用ビット
更新論理(LUUL)430を一層詳細に示しており、
特にWSHT  400のライン又はブロック・ミス発
生時に各ブロックの使用ビットがどのように更新される
かを示している。すべてのアドレスは、第8図のアドレ
ス・ゲート回路421かも与えられる。まず、ブロック
識別千人′がWSHT  400に置かれていなければ
、その1組の使用ビットUはANDゲート462によっ
てゼロに設定され、その結果が使用ビット(U’)バッ
ファ466に書込まれる。さもなげれば、これらの使用
ピッ)Uは直接的に使用ビット・バッファ433へ送ら
れる。次いで、このバッファ466の内容はORゲート
434によってアクセス・ラインのC′と併合され、そ
の結果が他の使用ビット(U・)バッファ435に書込
まれる。もしブロックAがミスしていることを指示する
信号がL2キャッシュから受取られなければ、使用ビッ
ト・バッファ435の内容はブロック識別子A′と併合
され、その結果が第8図のアドレス・ゲート回路422
へ送られる。もしブロックAがL2キャッシュでミスし
ているならば、使用ビット・バッファ4ろ5中の1組の
使用ビットはバス451を介してL2キャッシュ・ディ
レクトリ650中のライン有効ビット更新論理(LVU
L )570へ送られる。
ブロック識別子A″及びC′を併合することによってW
SHT  400のエン) IJが形成され、第8図の
アドレス・ゲート回路422へ送られる。
H1発明の効果 以上詳述したように、本発明によれば、L2キャッシュ
中のブロックのうち以前に使用されたラインの識別子を
ワーキング・セット履歴テーブルに記憶するようにして
いるので、キャッシュのヒツト率を実質的に改善するこ
とができ、ひいてはメイン・メモリとL2キャッシュの
間のトラヒックを実質的に減少させることができる。
(以下余白ン
【図面の簡単な説明】
第1図は6レベルの階層メモリを備え、第2レベル(L
2)のキャッシュに関連するワーキング・セット履歴テ
ーブル(WSHT )’f有する、本発明に従ったデー
タ処理システムを示すブロック図、第2図は3レベルの
階層メモリを備えたデータ処理システムを示すブロック
図、第3図はL2キャッシュをアクセスするために使用
される24ビツト・アドレスの様式を示す図、第4図は
WS)(Tをアクセスするために使用される24ピツト
・アドレスの様式を示す図、第5図はL2キャッシュ・
ディレクトリにおけるエントリの様式を示す図、第6図
はW S HTディレクトリにおける工 ・ントリの様
式を示す図、第7図はWSHTとのインタフェースを備
えたL2キャッシュを示スブロック図、第8図はWSH
T及びL2キャッシュ・ディレクトリとのインクフェー
スを示すブロック図、第9図はL2キャッシュにおける
ライン有効ピット更新論理を示す図、第10図はWSH
Tにおけるライン使用ピット更新論理を示す図である。 100・・・・プロセッサ、200・・・・εルルベル
(Ll)キャッシュ、250・・・・L1キャツンユ・
ディレクトリ、300・・・・第2レベル(L2ンキャ
ッシュ、350・・・・L2キャッシュ・ディレクトリ
、400・・・・ワーキング・セット履歴テーブル(W
SHT)、450・・・・インタフェース、500・・
・・メイン・メモリ。 出願人インタづ5佃ナル・ヒ々ス・マシーンズ・コーポ
レーシタン代理人 弁理士  頓   宮   孝  
 −(外1名) A: プロ・νり10 B:コラム・アμ°レス C: ラインIO D ニゲプル・ワードID L2キャッジ1mのアドレス様式図 Bl: コラム・アドレス C: ライ′JID WSHT用のアドレス様式図 第4図 A; ブロック10 ■i: 有効ヒツト L2キセッレユ・ティしクトリのエコトリ様式図第5図 A1:  ブロック ID uH:4吏用ピ゛ツト WSHTのエントリ様13図 第6図 A                     A  
   VILVULのフ゛ロッワ図 第9図 手続補正魯(自発) 昭和60年 7月II)日

Claims (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 true JPS6154547A (ja) 1986-03-18
JPH044617B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0544466U (ja) * 1991-11-25 1993-06-15 日立工機株式会社 インパクトレンチのスチールボール脱落防止構造

Families Citing this family (7)

* 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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0544466U (ja) * 1991-11-25 1993-06-15 日立工機株式会社 インパクトレンチのスチールボール脱落防止構造

Also Published As

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

Similar Documents

Publication Publication Date Title
US5717893A (en) Method for managing a cache hierarchy having a least recently used (LRU) global cache and a plurality of LRU destaging local caches containing counterpart datatype partitions
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US4466059A (en) Method and apparatus for limiting data occupancy in a cache
EP0185867B1 (en) A memory hierarchy and its method of operation
US20180275899A1 (en) Hardware based map acceleration using forward and reverse cache tables
US5684976A (en) Method and system for reduced address tags storage within a directory having a tree-like data structure
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
EP0708404A2 (en) Interleaved data cache array having multiple content addressable fields per cache line
CN110968269A (zh) 基于scm与ssd的键值存储***及读写请求处理方法
JPS6111865A (ja) メモリアクセス制御方式
JPS6154547A (ja) 3レベルの階層メモリを備えたデ−タ処理システム
JPS6326417B2 (ja)
CA1202426A (en) Buffer storage including a swapping circuit
JP2001195197A (ja) 記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ・サブシステム
US6842843B1 (en) Digital data storage subsystem including arrangement for increasing cache memory addressability
JP2013222434A (ja) キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム
JPS6194159A (ja) メモリ装置
US6996675B2 (en) Retrieval of all tag entries of cache locations for memory address and determining ECC based on same
JP3335919B2 (ja) ディスクキャッシュ制御装置
US6397295B1 (en) Cache mechanism for shared resources in a multibus data processing system
JP2854668B2 (ja) ディスク・キャッシュ制御方式
JP3532977B2 (ja) キャッシュメモリ装置
WO2010098152A1 (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法
JPH08328960A (ja) キャッシュメモリ装置
JPH01102662A (ja) 記憶装置