JPS58123151A - マルチプロセツサ・システムの動作方式 - Google Patents

マルチプロセツサ・システムの動作方式

Info

Publication number
JPS58123151A
JPS58123151A JP57187666A JP18766682A JPS58123151A JP S58123151 A JPS58123151 A JP S58123151A JP 57187666 A JP57187666 A JP 57187666A JP 18766682 A JP18766682 A JP 18766682A JP S58123151 A JPS58123151 A JP S58123151A
Authority
JP
Japan
Prior art keywords
cache
line
shared
private
signal
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
JP57187666A
Other languages
English (en)
Other versions
JPS629942B2 (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 JPS58123151A publication Critical patent/JPS58123151A/ja
Publication of JPS629942B2 publication Critical patent/JPS629942B2/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

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)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

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

Description

【発明の詳細な説明】 本発明の技術分野 本発明はデータ処理に関U7、更に具体的には各軍処理
、多重レベル・メモリ構成に関する。このメモリ構成に
おいて、各プロセッサにレベル1及びレベル2で2個の
私用キャラシュラ有し、かつ各プロセッサはレベル1及
びレベル2で共通のキャッシュを共用し、メモリ・レベ
ル3で共通のメイン・メモリを共用する。
背景の技術 大部分の高能率プロセッサは、メイン・メモリの前方に
私用の尚速ノ・−ドウニア管理ノ<ソファ・メモ’J’
&Th−する。それは、プロセッサ(CPU)に対する
平均メモリ・アクセス・タイムを改善するためである。
この高速バッファは、時には「キャッシュ」と呼ばれる
。何故ならば、それは通常プログラマに対して透明(t
ransparent)であるからである。
共用メモリ多重処理構成において、各キャッシュが所与
のCPUに対して私的であるため、各プロセッサがメイ
ン・メモリ情報の最新のコピーを=’−+1 fl’T
にして愕るかという問題が存在する。成る場合(では、
これはメイン・メモリに対して通過記憶(5tore 
 through )を実行し、全てのプロセッサに対
してそれを最新に保つことによって解決される。この通
過記憶型(S T 、、)キャッシュは、現在大部分の
大型CPUに採用されている。STキャッシュの欠点は
、全ての通過記憶(これは平均して全てのリファレンス
の410%から20%の1・“にある。)がメイン・メ
モリへ送られ、従って顕著な効率の低下を避けるため、
大きなメイン・メモリ帯域を必要とすることである。そ
の結果、多重処理(MP)のレベル(即ち、メイン・メ
モリを共用するプロセッサの数)は、比軟的高能率のメ
イン・メモリが使用されない限り、概してSTキャッシ
ュに関して非常に制限されることになる。
通過記憶によって、問題を解決するには、メイン・メモ
リの帯域が不十分であるシステム設計においては、バッ
ファ記憶(SIB)キャッシュが使用される。SIBキ
ャッシュは、米国特許第37′5536[1号及び第3
771137号に説明されている。
STキャッシュは、記憶をフェッチとは異ったように処
理する。即ち、全ての記憶は、キャッシュ中にあるアド
レスされたライン(目標ライン)から独立してメイン・
メモリへ行くので、記憶ミスが生じる余地娃、ない。こ
れに対し、SIBキャッジ−は記憶とフエレチケ同じよ
うに処理する。
ラインは、記憶又はフェッチを実行する前に、キャッシ
ュ中になければならない。もし目標ラインがキャッシュ
中になげれば(キャッシュ・ミス)、そのラインは、フ
ェッチ又は記憶を実行する前に、メイン・メモリからキ
ャッシュへ転送される。ラインへの全ての後の記憶はキ
ャッシュ中で起るので、SIBキャッシュは、STキャ
ッシュ方式と比較して、CPUによって必要とされるメ
イン・メモリ帯域幅を大きく減少させる。
多重処理システムのSIBキャッシュに伴う間:頂点は
、メイン・メモリが最新に維持されないことである。最
新の情報は、しばしばキャッシュ中に存在する。従って
、各プロセッサが確実に最新のメモリ情報を受取るよう
にするため、プロセッサがその私用キャッシュへフェッ
チ又は記憶のリクエストを発生し、目標ラインがキャッ
シュ中にイf在し′f、「い時(ライン・ミス)、その
ラインが他のキャッシュ(リモート・キャッシュ)に存
在するかどうかを決定し、かつそのラインが変更された
(即ち、記憶された)かどうかを決定するため、全ての
CPUキャッシュが質問されねばならない。
もしラインがリモート・キャッシュになければ、そのラ
インはメイン・メモリからリクエストを出しているフ:
ロセツサのキャッシュヘフエツチされる。もしラインが
リモート・キャッシュにあり、かつ変更されていなげれ
ば、そのラインハリモート・キャッシュで)11F効に
され、有効フラグがDヘセットされ、そのラインはメイ
ン・メモリからリクエストを出しているプロセッサのキ
ャッシュへ転送される。もしラインがリモート・キャッ
シュにあり、かつ変更されていれば、リモート・キャッ
シュ中でラインを無効にする前に、そのラインは、先ず
キャッシュからメイン・メモリへ転送されねばならない
。ラインがメイン・メモリへ転送された後に、リフニス
)CPUはラインをそのキャッシュヘフエツチし、次い
で記憶又はフェッチを実行する。
このようにして交差質問ヒツトの場合に起る変更された
ラインの移動は、大きなオーバヘッドを要することとな
る。何故ならば、リモート・プロセッサはラインをメイ
ン・メモリへ(又は、成る棟のシステムでは、直接に他
のキャッシュへり送らなければならず、次いでリクエス
ト・グロセツザζ寸そのラインをその私用キャッシュへ
セットシなけれはなら1rいからである−が(て、2つ
のズ0−t=ソサに干渉に遭遇し、時17jlの損失を
生じることVζなる。更に悪いことに、多くの場合、リ
モート・ノロセッサはラインを放棄した後、すぐにその
ラインを要求し、プロセッサ間でラインのやり取りが起
る。
当技術分野において、いくつかの多重処理システムが知
られている。それらのシステムは、それぞれ利点及び欠
点を有する。Iwamoto  その他ItCよる米国
特許第3581291号は、各プロセッサが私用キャッ
シュを有し、2つのプロセッサがメイン・メモリを共用
するマルチプロセッサ・システムを開示している。メイ
ン・メモリはキーメモリを有し、このキーメモリは、メ
イン・メモリにある情報が、各プロセッサにおいて、メ
モリ容量の所定量だけ読出されかつ記憶されたがどうか
を示すインディケータを記憶している。
米国特許量i+′)11第一6249526号はバッフ
ァ・キャッシュを私用キャッシュとして使用し、がっ共
通のキャッシュ及びメイン・メモリを共用する多重処理
システムを提案している。このシステムにおいて、私用
キャッシュによって共用されかつ変更される情報ライン
は、自動的に検出され、がつメイン・メモリへ転送され
ることなく、共通キャッシュへ送られる。
IBM技術開示社報(IBM  TechnicalD
isclosure Bulletin)、第22巻第
2号(1979年7月)の851頁−852頁には、非
対称的マルチプロセッサのための区分化されたメモリ反
びスグリッ)SCEが開示される。このシステム設計、
各プロセッサは別個の私用キャッシュを有する。
IBM技術開示社報、第18巻第8号(1976年1月
)の2609頁−261o頁には、[2レベル記憶階層
における2ループ設計」が開示される。このシステムに
おいて、: 1つの記憶ループはシステム・クロックを
オフにするように動作し、′1他の記憶ループはシステ
ム・クロックから独立して動作する。
IBM技術開示社報、第16巻第6号(197’3年1
1月)の1847頁、及び第21巻第6号(1978年
8月)の998頁には、各プロセッサが私用キャッシュ
f ii−するが、メイン・メモリの外に共用メモリを
有しないマルチプロセッサ・システムが開示される。
多進Jカ埋の技術分野で、本発明と関連のある米国特許
として、第3848324号、第3765660号、第
3845474号などがある。
本発明に従う多重処理システムは、6レベルのメモリを
含む。レベル1及びレベル2の各々には、各プロセッサ
のために私用キャッシュが設けられ、かつ各プロセッサ
によって共用される共通キャッシュが設けられる。レベ
ル乙には、各プロセッサによって共用されるメイン・メ
モリが設けられる。
ページごとに、書込フラグ及び共用フラグが使用される
。−書込まれるとともに共用されることのでキルページ
は、レベル2の共用キャッシュへ移動され、次いでレベ
ル1の共用キャッシュへ移動され、各プロセッサはレベ
ル1の共用キャッシュから実行する。他の全てのページ
は、リクエストしているプロセッサのレベル1及びレベ
ル2の私用キャッシュへ移動する。かくて、プロセッサ
は、私用又は共用のレベル1キヤツシユから実行する。
このシステム設計によって、複数のプロセッサは、従来
型の多重キャッシュ・システムに伴う交差質問オーバヘ
ッドを生じることなく、共通のメイン・メモリを共用す
ることができる。2つのキャッシュ・レベルを利用する
ことによって、高効率プロセッサの1つ又はそれ以上の
群が、比較的低コストかつ低効率のメイン・メモリを共
用することができる。その結果、ディスク記憶装置への
リファレンス率を減少するため、大容量メイン・メモリ
を使用することが経済的に可能となり、リアル・タイム
対話式アプリケーションにおいて、良好なターミナル応
答時間を達成することができる。
本発明の要約 本発明は、ページごとに書込フラグ及び共用フラグを使
用する多重処理6レベル・メモリ階層に関する。これら
2つのフラグ(フラグ・ビット)はソフトウェアによっ
てセットされ、ソフトウェアは、ハードウェアによって
管理されるメモリ階層へ、どのようにページが使用され
るかというソフトウェアの知識を伝達することができる
。基本的には、ν・込まれかつ共用されることのできる
ページは、レベル2の共用キャッシュへ移動させられ、
次いでレベル1の共用キャッシュへ移動させられ、プロ
セッサはレベル1の共用キャッシュから実行する。他の
全てのページは、リクエストしているプロセッサのレベ
ル2及びレベル1の私用キャッシュへ移動させられる。
かくて、プロセッサは、その私用又は共用のレベル1キ
ヤツシユから実行する。これによって、複数のプロセッ
サは、交差質問オーバヘッドを生じることす<、レベル
6の共通のメイン・メモリを共用することができる。2
つのキャッシュ・レベルによって、高効率プロセッサの
1つ又はそれ以、Fの群が、比較的低コス)7tび低効
率のメイン・メモリを共用することができる。その結果
、ディスク記憶装置へのリファレンス率を減少するため
、大容量のメイン・メモリを使用することが経済的に可
能となり、リアル・タイム対話式アプリケーションにお
いて、良好なターミナル応答時間を達成することができ
る。
実施例の説明 レベル1(Ll)、ビベル2(L2)、レベル6(L3
)より成る6レベル・メモリ階層を含む多重処理システ
ム2が第1図に含まれる。システム動作を説明する前に
、本発明の説明で使用される用語の定義を以下に掲げて
おく。2進の1又は0は、本明細書を通して互換的に使
用される。
ゴニj二 メイン・メモリとL2キャッシュとのmlの転送単位。
L2ディレクトリイは、L2キャッシュ中の各ページの
ためにエントリイを含む。仮想記憶システムにおいては
、ページは、仮想アドレスを実アドレスへ割当てる場合
、ソフトウェアによって管理されるブロック・サイズで
ある。
キャッシュ・ライン L2−M’ツシュとL1キャッシュとの間ノ転送単位。
通常に、多くのCPUワードを含む。キャッシュ・ディ
レクトリイは、キャッシュ中の各ラインのために、どの
メイン・メモリ・ラインが現在キャッシュ中に存在する
かを示すエントリイを保持している。
キャッシュ・ヒツト もしCPUによってアドレスされたワードを含むライン
がキャッシュ中に存在していれば、それは、リクエスト
の種類に従って、フェッチ・ヒツト又は記憶ヒツトと呼
ばれる。キャッシュ・ヒツトは、ディレクトリイ・アド
レスが一致し、かつイf効フラグが1に等しいことを要
する。
キャッシュ・ミス もしCPUによってアドレスされたワードな含むライン
がキャッシュ中に存在していなげれば、CPUリクエス
トに、リクエストの種類に応じてフェッチ・ミス又は記
憶ミスを生じる。アドレスの不一致、又は有効ビットが
ゼロに等しいとライン・ミスを生じる。
ミスの場合、リファレンスが完了される前に、先ずリク
エストされたラインがキャッシュへ転送されねばならな
い。成る種の設計では、同時に目標ワードが直[9CP
Uへ送られ、処理を直ちに再開することができる。
無効化 キャッシュから有効なラインを除去するプロセスは「無
効化」と呼ばれ、有効ビットをゼロヘセットすることに
よって達成される。ラインが変更されていれば(変更フ
ラグが1に等しいことによって示される)、先ずライン
は、無効化(即ち、有効フラグをゼロヘセットする)の
前に、キャッシュから除去されねばならない。
交差質問 リクエストしているCPUでライン・ミスが生じた時、
他の(リモートの)CPUキャッシュを質問する1作を
、交差質問(xr )と呼ぶ。リモート・キャッシュに
目標ラインが存在すること、又はスイ[であることは、
それぞれXIヒツト又はXIミスと呼ばれる。
ライン状況ビット キャッシュにある各ラインは、ディレクトリイ中に、関
連したエントリイを有する。このエントリイlq1、現
在キャッシュにあるラインのメイン・メモリ・アドレス
を含む外に、キャッシュに存在するラインの状況を示す
いくつかのフラグ・ビットを含む。
イV効 (V) もしキャッシュが、このロケーションで有効なラインを
含まなければ、Vビットがゼロへセットされる。例えば
、「電源オン1の場合、全てのVビットはゼロへリセッ
トされ、全てのラインが4jjE効であることを示す。
ゼロの有効ビットは、常にライン・ミスを生じる。ライ
ン・ミスが生じると。
適当な有効ビットがオフにされ(それはすてにオフにな
っているかも知れない)、新しいラインがキャッシュへ
持って来られると、上記有効ビットはオンにされる。全
てのキャッシュにラインごとに有効ビットを有し、L2
キャッシュの場合、ページごとにVビットが存在する。
変更(CH) もし私用キャッシュ中のラインが記憶されると、そのC
Hビットが1ヘセツトされ、それがメイン・メモリの内
容に関して変更されたことを示す。
キャッシュ中の全てのラインが変更されるため、キャッ
シュ中にニに、ラインご:・との変更ビットは必要とさ
れない。CHビットがゼロヘセットされる      
   1のは、ラインがメモリから私用キャッシュへ持
つて来られた時である。「電源オンJのような主だるリ
セットは、全てのCHピットをゼロへリセットする。変
更されたラインがL1キャッシュからL2キャッシュへ
動かされた時、関連したページのだめの変更フラグが1
ヘセツトされる。
多℃I卯11コシステム2は、オペランド及び命令を、
レベル乙の共用メイン・メモリ4に含んでいる。
メイン・メモリ4は、システム制御エレメント6を介し
て、複数のプロセッサ群との閂で、命令及びオペランド
を交換する。入出力バス8は、システム制弔°エレメン
ト6を、直接アクセス記憶装置(DASD)のような複
数の周辺装置へ接続する。
更に、システム制御エレメント6は、L2及びLlの私
用キャッシュ及び共用キャッシュを介して、フーロセツ
サAqびBより成る第1のプロセッサ群へ接続される。
システム制御1エレメント6は、バス10を介して他の
同様なプロセッサ群へ接続される。フ”ロセツサ群の各
々は、2個を超えるプロセッサをざんでよいが、説明を
簡単にするため、2個のプロセッサが示される。追加的
プロセッサをどのように付加するかの判断基準は、共用
されるLl及びL2キャッシュの帯域幅の利用状況によ
る。利用状況が50係を超えるまでは、プロセッサを単
一のL 1 、!:l−用キャッシュへ付加するのが、
〜般的に安価であり効率的である。
各プロセッサは、情報交換の目的で、Llの私用キャッ
シュ及び共用キャッシュと直接に通信する。レベル1の
共用キャッシュは、多重処理プロセッサ群の各プロセッ
サによって共用される。情報のラインはLlのキャッシ
ュの各々に記憶されているが、L2における私用キャッ
シュ及び共用キャッシュは、情報のページを含む。プロ
セッサAは、Llでその私用キャッシュ12及び共用キ
ャッシュ14と通信し、データ交換は線16及び18を
介して実行される。もしリクエストされた情部ラインが
キャッシュ12又は14のいずれにもイf在しなければ
、L2における私用キャッシュ20及び共用キヤ、ツシ
ュ22が、それぞれ線24及び26を介して質問される
。それは、リクエストされたラインを含む情報ページが
、それらのキャッシュに存在しているかどうかを調べる
ためである。もし情報ページがそれらのキーヤツシュに
存在してし・れば、リクエストされた情報ラインが、L
lのキ1゛ツシュ12又け14へ転送される。他方 も
し情報ページがH2の私用キャッシュ又は十二用キャッ
シュに存在していなければ、H3わメイン・メモリから
私用キャッシュ20又は・共用キャッシュ22へ情報ペ
ージの転送をリクエストするため、システム制御エレメ
ント6が質問される。
メイン・メモリ4に存在する情報ページの各々は、卆・
込フラグ及び共用フラグを含む。これらのフラグは、リ
クエストされた情報ページがH2の私用キャッシュ又は
共用キャッシュへ与えられるべきか否かを決定する。も
しリクエストされた情報か÷込白丁能1えび共用可能で
あれば(書込フラグ汐−び共用フラグの各々が2進の1
、即ち(1,1)である)、リクエストされた情報ペー
ジは、メイン・メモリ4からシステム制御エレメント6
を介してJj−用キャッシュ22へ躯−送される。他の
全ての賜金、リクエストされた情報ページは、H2の私
用キャッシュ20へ転送される。これが起るのは、(1
)情報ページが(先出専用かつ共用可能でなく、書込フ
ラグ及び共用フラグの双方が共に2進のOである時(即
ち(0,0) )、(2)書込フラグ及び共用フラグが
読出専用かつ共用可能であって、書込フラグが2進のO
であり、共用フラグが2進の1である時(即ち、(0,
1))、(3)情報ページが書込可能及び共同可能でな
く、書込フラグが2進の1であり、共用フラグが2進の
0である時(即ち、(1、D))である。ここで、カッ
コの中の最初の2進値は書込フラグ・ビットを示し、次
の2進値(ri共用フラグ・ビットを示す。
プロセッサBは、線28及び31を介して、Llの私用
キャッシュ27及び共用キャッシュ14とデータを交換
する。もしリクエストされた情報ラインが共用キャッシ
ュ14又は私用キャッシュ27のいずれにも存在してい
なければ、リクエストされたラインを含む情報ページが
、!32及び26を介してH2におけるプロセッサBの
私用キャッシュ30及び共用キャッシュ22からリクエ
ストされる。もしリクエストされた情報ページが実用キ
ャッシュ22又は私用キャッシュ30のいずれにも存在
していなければ、H2の私用キャッシュろ0又に共用キ
ャッシュ22のいずれかヘリクエストされた情報ページ
を転送するため、H3・ハメイン・メモリ4がシステム
制御エレメント6を介して物量される。情報ページは、
プロセッサAにつし・て説明したように、書込フラグ及
び共用フラグの状態により決定されたところに従って転
送される。
312図は、多重処理システム2のだめのシステム・レ
ベル・バス接続を示す詳細ブロック図である。力・、2
図は、Ll及びH2における私用キャツンユ央び共用キ
ャッシュの各々に関連したキャッシュ・コントロール兼
ディレクトリイを示している。Llの私用キャッシュ1
2に対するキャッシュ・コントロール兼ディレクトリイ
64は、線66を介してプロセッサAへ接続され、かつ
1i140を介してH2の私用キャッシュ20のだめの
キャッシュ・コントロール兼ディレクトリイ38へ接エ
ノーされ、緑42を介してシステム制御エレメント6へ
接続される。プロセッサAは、線46を介してLlの共
用キャッシュ14に対するキャッシュ・コントロール兼
ディレクトリイ44へ接続され、線50を介してH2の
共用キャッシュ22に対するキャッシュ・コントロール
兼ディレクトリイ48へ接続され、線52を介してシス
テム制御エレメント6へ接続される。
プロセッサBは、線56を介してLlの私用キャッシュ
27に対するキャッシュ・コントロール兼ディレクトリ
イ54へ接続され、かつ線58を介してLlの共用キャ
ッシュ14に対するキャッシュ・コントロール兼ディレ
クトリイ44へ接続される。キャッシュ・コントロール
兼ディレクトリイ541d、H62?介してH2の私用
キャッシュ60に対するキャッシュ・コントロール兼デ
ィレクトリイ60へ接続され、かつ線64を介してシス
テム制促1エレメント6へ接続される。キャッシュ・コ
ントロール兼ディレクトリイilS′1.読出指令及び
書込指令に応答するが、それは、リクエストされた情報
ライン又は情報ページがキャッシュに存在するかどうか
を決定し、又は多゛z1図を参照して説明したように、
情報ページがメイン・メモリからフェッチされねばなら
ないかどうかを決定するためである。第2図の■はデー
タ・バスを示し、■はアドレス兼制御線を示す。
次の表(は、システム制マ・11エレメント乙に存在す
るキャッシュ匍j御アルゴリズムが、どのようにしてメ
イン・メモリ4からフェッチされた情報ページにある書
込ビット(書込フラグ)及び共用ビット(共用フラグ)
のセットを解釈し使用するかを示す。もし双方のビット
がセロであれば、要求にjうじて、ページがリクエスト
しているプロセッサのL2私用キャッシュへ移動され、
プロセッサによってリクエストされたライン(これはこ
の情報ページに一μ在し目板ラインと呼ばれる)がL1
私)11キヤツシユへ移動され、プロセッサはL1私用
キャッシュからリクエストしたワード(目標ワード)を
アクセスする。
rXIJは、ミスの場合に、他のプロセッサ群における
他の共用キャッシュの交差質問を示す。
*1つを超えるプロセッサ群の基金(即ち、複数の共用
キャッシュの場合〕、共用キャッシュのj用でXIが必
要である。
もし他のプロセッサがこの情報ページヘアクセ1 スしようと試みると、共用ビットのゼロ状態は、1.7
、。7,4.ヵ、2.Jヶ9ヶヮz−r−xh−,;”
ロセツサへ送り、ページ又はラインは転送されない。も
しプロセッサがこの情報、ページへの書込み(言・=t
=)を試みると、その書込みはブロックされ、フ゛ログ
ラム・チェック信号がリクエスト・プロセッサへ送られ
る。本来、これは、1個だけのプロセッサの私用キャッ
シュに存在することのできる「夕「共用」かつ「読出専
用−1のページである。もし書込ビットがゼロであり、
共用ビットが1であれば、ページ及び目標ラインがリク
エスト・プロセッサのし2及びLlの私用キャッシュへ
動かされる。もし他のプロセッサがこの同じページをリ
クエストすると、それはそのプロセッサのL2キャッシ
ュへ移され、目標ラインはそのLlの私用キーどツシュ
ヘ移される。しかし、もしいずれかのプロセッサがペー
ジへの書込み(記憶)を試みると、その杏込みはブロッ
クされ、プログラム・チェック信号がリクエスト・プロ
セッサへ送られる。
これは、共用されることのできる「読出専用」ページで
アリ、従ってコピーが各プロセッサの私用ヤヤソシュに
存在することができるが、記憶は許されなし・。一般的
には、命令はそのように(即ち、共用可能、読出専用)
とマークされる。
もし書込ビットが1であり、共用ビットが0であれば、
このページはリクエスト・プロセッサのL2の私用キャ
ッシュへ移され、次いで目標ラインがそのLlの私用キ
ャッシュへ転送される。もし他のプロセッサがこのペー
ジへのアクセスを試みると、そのアクセスはブロックさ
れ、プログラム・チェック信号がリクエスト・プロセッ
サへ送られる。しかし、この情報ページに対する記憶は
許される。
もし■−込ビット!丸び抜用ビットの双方が1であれば
、この情報ヘ−iンはL2の共用キャッシュへ移され、
この情報ページからの目標ラインがLl、7) J4用
キャッシュへ転送される。全てのプロセッサ娃゛そこか
らラインを゛7エツチするか、又はそこへラインを記憶
してよい。
同じプロセッサ群に属する他のプロセッサから、この情
報ページに対してリクエストがなされると、L2の共力
」キャッシュ中にリクエストされたページが発見され、
Llの共用キャッシュ中に目標うイン)+びワードが発
見される。その1果、共用及び書込みが許ちれる。
第4.1図、多’:4.2図、第5.1図、第5.2図
は、フェッチ・リクエスト及び記憶リクエストに関して
システム動作を詳細に示すプロセッサ・メモリの論理フ
ローを示す。
ここで、プロセッサ・メモリ「フェッチ・リクエストl
の論理フロー図である第4.1図1(び第4゜2図を参
照する。所与のプロセッサからの「フェッチ・リクエス
ト」に応答(7て、プロセッサは線68を介して論理ブ
ロック70及び72へ「フェッチ・リクエスト1を出す
。それは、リクエストされた″ff4%iff4%ミラ
インスト・プロセッサのL1私用キャッシュ又はL1共
用キャッシュ中にイi在するかどうかを決定するためで
ある。論理ブロック70で、[L1私用キャッシュでラ
イン・ヒツトが生じるか]の質問がなされる。もし答が
イエスであれば、論理ブロッ多73で示されるように、
リクエスト・プロセッサのL1私用キャッシュからライ
ンがフェッチされ、そのラインがすれるように、メモリ
・フェッチ・リクエストの終りが起る。他方、線76で
示されるように、L1私用キャッシュでライン・ヒツト
が生じなければ、論理プロセスは、論理ブロック72に
おける「フェッチ・リクエスト」の出力を待機する論理
ブロック78へ行く。論理ブロック72では、「L1共
用キャッシュでライン・ヒツトが生じるが」の質問がな
される。もし答がイエスであれば、論理ブロック80で
示されるように、そのラインがL1共用キャッシュから
フェッチされ、L1共用キャッシュからリクエスト・プ
ロセッサへラインが転送され、線74で示されるように
、メモリ・フェッチ・リクエストの終りが起る。他方、
答がノーであれば、論理プロセスは線82を介して論理
ブロック78へ進む。
論理ブロック707tび72でなされた論理質問への答
が共にノーであれば、これはリクエストされたラインが
Llに存在しないことを示し、論理フーロセスはF?R
%iブロック78がら論理ブロック84文び86へ進む
。それハ、リクエストされたラインを含む情報ページが
、L2の私用又は共用キャッシュに記憶されているかど
うかを決定するためである。hVブロック84で、「L
2の私用キャッシュでライン・ヒツトが生じるか」の質
問がなされる。もし答がイエスであれば、論理プロセス
は論理ブロック88へ進む。論理ブロック88は、リク
エストされた情報ラインなL2私川キャッシュ(P−L
2)からL1私用キャッシュ(P−Ll)へ移し、次い
で論理プロセスは論理ブロック76へ進み、次いでシス
テム論理は前に説明したように進行する。もし答が線9
0で示されるようにノーであれば、論理プロセスは論理
ブロック92へ茂み、論理ブロック86における論理プ
ロセスの出力を待機する。
論理ブロック86で、「L2共用キャッシュでライン・
ヒツトが生じるか」の質問がなされる。
もし答がイエスであれば、論理プロセスは論理ブロック
94へ進む。論理ブロック94は、リクエストされたラ
インがL2共用キャッシュ(S−L2)からL1共用キ
ーヤツシュ(S−Ll)へ移すれることを示し、次いで
論理プロセスは前述したように進行する。もし答が線9
6で示されるようにノーであれば、論理プロセスは論理
ブロック92へ進む。もしラインがL2の私用又は共用
キャッシュ中に存在しなければ、論理プロセスは論理ブ
ロック92かも論理ブロック98へ進む。それは、メイ
ン・メモリ及びシステム制御エレメント中のタグ・アレ
イにアクセスするためである。
タグ・アレイb二、メイン・メモリ情報のページごとに
8ビツトを含む。最左方からの2ビツトは、書込フラグ
(書込ビット)及び共用フラグ(共用ビット)である。
残りの6ビツトはプロセッサ識別フラグ(識別ビット)
であって、これは関連したプロセッサの私用のL2又は
Llのキャッシュにページが存在するかどうかを示す。
もしページ′がプロセッサの私用キャッシュにあれば、
ビットは1であり、そうでなげれは、それはゼロである
か(て定義されたタグ・ビットは6つの多重処理を実行
するのに十分である。次いで論理プロセスは桧理ブロッ
ク100へ進む。論理ブロック1゜Oでは、「共用フラ
グは1に等しいか」の質問がなされる。もし答がイエス
であれば、論理プロセスは論理ブロック102・\進み
、答がノーであれば、論理プロセスは論理ブロック10
4へ進む。
論理フロック100でなされた質問への答がイエスであ
れば、論理ブロック102で[書込フラグは1に号しい
か」の質問がなされる。もし答がイエスであれば、論理
プロセスは論理ブロック106へ進む。ト埋)゛ロック
106娃ニ、目標ラインを含む情報ページを゛メイン・
1.lモリからL2共用キャッシュ(S−L2ンへ移す
ことを示す。次いで、論理)−ロセスは、論理ブロック
94で示されるように、リクエストされたページのライ
ンを、L2共用キャッシュからL1共用キャッシュへ移
し、次(・で論理プロセスは前述したように進行する。
書込フラグ及び共用フラグの双方が1である時、情報ペ
ージはL2共用キャッシュへ移され、次いでそこに含ま
れる目標ラインがL1共用キャッシュへ移され、そこか
ら目標ラインがリクエスト・ 。
プロセッサヘフエッチされることに注窮されたい。
もし論理ブロック102の質問に対する答が、線108
に示されるようにノーであれば、論理ブロック110で
示されるように、リクエストされた情報ページはメイン
・メモリからL2私用キャッシュへ移される。セしてC
PUビットがオンにされ、論理プロセスは前述したよう
に進行する。
もし論理ブロック100でなされた質問に対する答がノ
ーであれば、論理プロセスは論理ブロック104へ進行
し、そこでrCPUビットが1に等しいか−1の質問が
なされる。もしいずれかのCPUビットが1であれば、
論理ブロック112で示されるよ5に、 「プログラム
・チェック」信号が11クエスト・プロセッサへ転送さ
れる。もし全てのCPUビットがゼロであれば、論理ブ
ロック110で示されるように、ページがL2私用キャ
ッシュへ移され、CPUビットがオンにされる。
W・。
次いで、倫理ブロック8′8で示されるように、目標ラ
インがL1私用キャッシュへ移され、次いで論理ブロッ
ク73で示されるように、フェッチが′入行される。
ここで、プロセッサ・メモリ 「記憶リクエスト」のめ
環フロー図である第5.1図及び第5.2図を参照する
。・体114に示されるような所与のプロセッサ・メモ
リ「記憶リクエスト」に応答して、論理プロセスは論理
ブロック116及び118へ進む。それは、目標ライン
がLlの私用又は共用キャッシュにあるかどうかケ決定
するためである。
論理ブロック116で、 「目標ラインがL1私用キャ
ッシュに存在するか」の質問がなされる。もし答がイエ
スであれば、論理プロセスは論理ブロック120へ進み
、答がノーであれば、線122で示されるように論理ブ
ロック124へ進む。もしくざ埋ブロック116の質問
に対する答がイエスであれば、「書込フラグは1に等し
いか」の質問が論理ブロック120でなされる。もし答
がイエスで、あれば、論理プロセスは論理ブロック12
6へ進み、L1私用キャッシュへ記憶がなされ、次いで
プロセッサは、線128で示されるように、メモリ記憶
リクエストの終りが存在することな知らされる。もし答
がノーであれば、論理プロセスは論理ブロック160へ
進む。論理ブロック130は、プログラム・チェック信
号を転送する。
論理ブロック118で、「L1共用キャッシュにライン
が存在するか」の質問がなされる。もし答がイエスであ
れば、論理プロセスは、論理ブロック132へ進む。論
理ブロック132はL1共用キャッシュへ記憶がなされ
ることを示し、次いで線128で示されるように、メモ
リ記・障リクエストの終了がリクエストしたプロセッサ
へ知らされる。他方、論理ブロック118における答が
ノーであれば、論理プロセスは論理ブロック124へ進
む。そこで、論理ブロック116でなされた質問への答
がノーであったならば(これは、リクエストされたライ
ンがP−Llにないことを示す)論理プロセスは論理ブ
ロック166反び168へ進む。それは、目標ラインが
L2の2つのキャッシュの1つに記憶されたページに存
在するかどうかを決定するためである。
論理ブロック136で、 「目樟ラインはL2私用キャ
ッシュに存在するが」の質問がなされる。
もし答がイエスであれば、論理プロセスは論理ブロック
140へ進み、もし答がノーであれば線142で示され
るように論理ブロック144へ進む。
詫埋ブロック140で、「書込フラグは1に等しく・か
Jの質問がなされる。もし答がイエスであれ(六鳩埋プ
ロセスは論理ブロック146へ進み、目標ラインがL2
私用キャッシュからL1私用キャッシュへ移される。次
いで論理アクセスは論理ブロック120へ進み、次いで
論理ブロックは前述したように進行する。もし論理ブロ
ック140における質問への答がノーであれば、線14
8で示されるように、論理プロセスは、プログラム・チ
ェックを知らせるため、論理ブロックi30へ進む。
論理ブロック138で、 「目標ラインがL2共用キャ
ッシュに存在するか、1の質問がなされる。
もし答がイエスであれば、論理プロセスは論理ブロック
150へ進む。論理ブロック150は、目1票ラインが
L2共用キャッシュがらL1共用キャク132で示され
るように、目標ラインがL1共用キャッシュへ記せ・、
される。次いで線128で示されるように、メモリ記憶
リクエストの終りを示す信号が、リクエストしたプロセ
ッサへ与えられる。もし論理ブロック168でなされた
質問への答がノーであれば、152で示されるように、
論理プロセスは論理ブロック144へ進む。もし論理ブ
ロック166でなされた質問への答がノーであれば(こ
れは、目標ラインがLl又はL2のキャッシュにないこ
とを示す)、論理ブロック154で示されるように、メ
イン・メモリ及びシステム匍tエレメント中のタグ・ア
レイがアクセスされる。
次いで論理プロセスは論理ブロック156へ進み、「書
込フラグば1に等しいが」の質問がなされる。もし答が
イエ不であれば、論理プロセスは論理ブロック158へ
進み、もし答がノーであれば、論理プロセスは、プログ
ラム・チェックを知らせるため、論理ブロック130へ
進む。倫理ブロック158で、「共用フラグは1に等し
いが」の質問がなされる。もし答えがイエスであれば、
゛−理プロック160で示されるように、リクエストさ
れた情報ページがメイン・メモリからL2共用キャッシ
ュへ転送され、次いで論理プロセスは前述したように論
理ブロック150及び132へ進む。もし論理ブロック
158でなされた質問への答がノーであれば、線162
で示されるように、論理プロセスは論理ブロック164
へ進ミ「CPUビットが1に等しいか」の質問がなされ
る。
もし答がイエスであれば、論理プロセスは、プログラム
・チェックを知らせるため、論理ブロック160へ進む
。もし答がノーであれば、論理プロセスは論理ブロック
166へ進む。論理ブロック166は、リクエストされ
た情報ページをメイン・メモリからリクエスト・プロセ
ッサのL2私用キャッシュへ移し、かつCPUビットを
オンにする。次いで論理プロセスは、前述したように論
理ブロック146.120.126へ進む。
IBM/370の如く記憶保護キーを含むプロセッサで
は、タグ・アレイは記憶保護メモリの1部として設けら
れてよく、仮想アドレスを採用するプロセッサでは、タ
グ・アレイは再配置ページ・テーブルの1部として設け
られてよい。
しかし、本実於i例では、それはシステム制i・Piエ
レメントにある別個のプレイとして仮定され、「タグ・
アレイ設定」命令によって書込まれる。それハ、「タグ
・アレイ挿入」命令によって、汎用レジスタへ読出され
る(ソフトウェアによって検査するため)。これら2つ
の命令は、IBM/37002つの記憶保護命令(記憶
キー設定命令及び記憶キー挿入命令)と同じように働く
。もつとも、前者2つの命令は、記憶保護アレイではな
(、タグ・アレイ上で動作する点が異なる。
第6.1図及び第6.2図は、単一のプロセッサ(この
場合、プロセッサA)がどのようにしてその私用キャッ
シュ及び共用キャッシュへアクセスするかを示すブロッ
ク図である。メモリ・リクエストは、L1私用キャッシ
ュのディレクト!J イ(L1私用ディレクトリイ)及
びL1共用キャッシュのテイレクトリイ(L1共用ディ
レクトリイ)へメモリ・リクエスト7tびアドレスを送
ることによって開始さ机る。もしいずれかのディレクト
リイでアドレスの一致が起り、かつラインが有効であれ
ば(■−1)、関連したL1キャッシュがアクセスされ
る。L1私用キャッシュ及びL1共用キャッシュが4ウ
エイ・セットの連想キャッシュであると仮定すると、4
個のワードがキャッシュから並列に読出され、リクエス
トされたワードがプロセッサへ(又はプロセッサから)
ゲートされる。
もしL1私用キャッシュ又1d、L、1共用キヤツシユ
のいずれにおいても比較の一致が起らなければ、目標ラ
インを含むページがL2にあるがどうかを決定するため
、L2私用キャッシュ及びL2共用ギャツシュのディレ
クトリイがアクセスされる。
これらL2キャッシュのいずれかで比較の一致が生じる
と、目標ラインがL1キ1ヤツシュへ移され、プロセッ
サによるワード・アクセスが実行される。
ライン又はページは私用キャッシュ又は共用キャッシュ
のいずれかにあり、これら双方に同時にキャッシュは並
列にアクセスすることができる。
以下に述べる説明は、プロセッサAによるキャッシュ・
アクセスの詳細な説明である。プロセッサBによるキャ
ッシュ・アクセスも同様に動作する。
代表的なメモリ・リクエストの動作シーケンスを考察す
ると、目標ラインのアドレスは、線66反び46を介し
てL1私用ディレクトリイ64反びL1共用デイレク)
 IJイ44へ与えられ、かつANDゲート164及び
170へ与えられる。もし目標ラインがLIjiW用キ
ャッシュ12に存在すれば、ディレクトリイ64は、ア
クセス信号を線166を介してI、 1私用キヤツシユ
12へ与え、リクエストされた情報ラインは線16を介
してプロセッサAへ与えられる。目標ラインがL1私用
キャッシュ12中に存在しなければ、L1私用デ′j イレクトリイの一穴信号がANDゲー)1647(びA
NDゲート170の最初の入力へ与えられる。
もし目標ラインがL1共用キャッシュ14中に存在すれ
ば、L1共用ディレクトリイ44は線172?介してア
クセス信号YL1共用キャッシュ14へ与え、そこから
目標ラインが線18を介してフーロセツサAへ読出され
る。他方、もし目標ラインがL1共用キャッシュ14に
存在しなければ、″′−1信号が線174を介してAN
Dゲート164文び170の第2人力へ与えられる。こ
れら信号の双方が存在すると、目標ラインがL1キャッ
シュのいずれにも存在しなかったことを示す。その場合
、ANDゲート164は、線176を介してs;ff4
6上のライン・アドレスをL2共用ディレクトリイ48
へ通し、ANDゲート170は、線17Bを介して、線
36−ヒのライン・アドレス4L2私用デイレクトリイ
68へ通す。
更に、線168及び174上の=負信号は、ANDゲー
ト180へ印加される。ANDゲート180ば、緑18
2上のアクセス信号を、L2共用ディレクトリイ48及
びL2私用ディレクトリイ6Bへ与える。もし目標ライ
ンを含む情報ページの;L2.Fム用キャッシュ20に
存在すれば、−f、:信号が線186を介してL2私用
キャッシュ20へ与えられる。それは、線188上のア
ドレスに従って目標ラインを線24を介してL1私用キ
ャッシュ12ヘゲート・アウトし、次いでそこから線1
8を介してプロセーツサAへゲート・アウトするためで
ある。他方、もしディレクトソイ38中でディレクトリ
イの一致が生じなかったならば、一致信号が線190を
介してANDゲート192へ与えられる。
L2共用ディレクトリイ48がアクセスされ、かつ5−
L2デイレク) IJイ一致信号が存在すれば、このゲ
ート信号は線194を介してL2共用キャッシュ22へ
与えられる。それは、線188上のライン・アドレスに
従って目標ラインを線26を介してL1共用キャッシュ
14ヘゲートし、次いで線18を介してプロセッサAヘ
ゲートするためである。他方、ディレクトリイ48から
ブイレフ) IJイ一致(N号が生じなければ、5−L
2ディレクトリイ゛1信号が線196を介してANDゲ
ート192へ与えられる。
ANDゲート192へ至る入力線190及び196−F
にある一致信号の同時発生は、目標ラインがLl又はL
2に存在しないことを示し、メイン・メモリ・アクセス
信号が線198を介してシステム制御・・1エレメント
6へ与えられる。それは、目標ラインを含む情報ページ
をメイン・メモリからフェッチするためである。次に、
この信号は、前述したように、このページのための書込
フラグ・ビット及び共用フラグ・ビットの状態に従って
、L2の私用又は共用キャッシュへ与えられる。
第7図は、私用キャッシュ又は共用キャッシュにアクセ
スするだめの、24ビツト・メモリ・アドレスのアドレ
シング構造を示す。キャッシュ及びその関連したハード
ウェアが私用キャッシュであろうと共用キャッシュであ
ろうと、同一のアドレス・ビットが使用される。
アドレスAはビット(0−4)で構成され、ページがL
2キャッシュへ書込まれる時L2ディレ・ノトリイヘ書
込まれる。アドレスBはビット(5−11)で構成され
、L2ディレクトリイなアドレスするために使用される
。アドレスCはビット(0−4)で構r>12.され、
L2ディレクトリイの出力と比較される。アドレスDは
ビット(5−16)で構成され、L2キャッシュをアド
レスするために使用される。アドレスEはビット(5−
11)で構成され、置換アレイをアドレスするために使
用される。アドレスFはビット(0−9)で構成され、
新しいラインがL1キャッシュへ置かれる時L1ディレ
クトリイヘ書込まれる。アドレスGはビット(10−1
6)で構成され、L1ディレクトリイをアドレスするた
めに使用される。アドレスHはビット(0−9)で構成
され、L1ディレクトリイの出力と比較される。アドレ
スエはビット(10−20)で構成され、L1キャッシ
ュをアドレスするために使用される。アドレスJはピッ
)(10−16)で構成されL1置換アレイをアドレス
するために使用される。
ここで第8図を参照すると、そこにはプロセッサAのた
めのL1私用キャッシュ12及びそれに関連したキャッ
シュ・コントロール兼デイレクトリイろ4(第2図参照
)の詳細なブロック図力玉示される。プロセッサBのた
めのL1私用キャッシュ27反び関連したキャッシュ・
コントロール兼テイレクトリイ54は、同じような構成
を有し、かつ同じように動作する。示されるシステムは
、典型的な4ウエイ・セット連想キャッシュ、ブイレフ
) IJイ、更新/置換アレイ及び論理を含む。
L1私用キャッシュ12は、ワード入力ゲーテインク・
ネットワーク200、ワード出力ゲーティング・ネット
ワーク202.7tびORゲート204を含む。キャッ
シュ・コントロール兼ディレクトリイ34は、アドレス
・アレイ206、アドレス入カゲーテイング・ネットワ
ーク20B、Nびアドレス比較ネットワーク210を含
む。更新置換アレイ(r′i、、置換アレイ212、更
新/置換論理2141.7tびアドレス・ゲーティング
・ネットワーク216を含む。プロセッサAかも来る線
36Lのアドレスは、ディレクトリイ/キャッシュ反び
heアレイをアドレスするために使用される。
前記の第7図は、24ビツト・メモI)・アドレスの各
ビットが、Q゛S8図に示される主たるエレメントへど
のように割当てられるかを示す。アドレス入カゲーテイ
ング・ネットワーク208ヘアドレスFが与えられ、ア
ドレス・アレイ206ヘアドレスGが与えられ、アドレ
ス比較ネットワーク208アドレスHが与えられる。ア
ドレス・アレイ206からアドレス比較ネットワーク2
10へ同時に読出された4つのアドレス(ハ、アドレス
Hの適当なビットと比較される。それは、4つのアドレ
スのどれが一致するかを決定するためである。例えば、
もしアドレスAが一致し、力\つその有効ピットが1に
等しけれレエ、Aワード°力;キャッシュから詩1出さ
れる。これは、線220を介してワード出力ゲーティン
グ・ネットワーク202へ与えられるA選択線218上
のゲート信号によって達成される。更にA選択信号はプ
ロセッサAへ与えられる。ワード出力ゲーティング・ネ
ットワーク202かもの&1222は、リクエストされ
たデータをORゲー)204&びデータ・ノくス・アウ
ト224へ与える。もし4つのワードの℃・ずれも−′
ヤしなければ、ミス信号が発生される。もし記暗動作が
実行されるべきであれば、データ・バス・イン226上
のデータがワード入力ゲーティング・ネットワーク20
0へ与えられ、線220−FのA選択信号がワード入力
ゲーティング・ネットワーク200をしてデータをキャ
ッシュ12へ与えさせる。
置換アレイ212及びそれに関連した論理214は、連
想キャッシュの各セットにある4つのラインのいずれが
最も古い時点に参照又は使用されたかを追跡する。最も
古い時点に使用された(LRU)ものの置換論理は、米
国特許第4008460号に説明されているので、論理
動作の詳細は説明しない。
ここでL1私用キャッシュのだめのディレクトリイ・レ
ジスタの詳細な図である第9図を参照する。ディレクト
リイが線228を介して特別のアドレスでアクセスされ
る時、ディレクトリイ・レジスタ229はそのアドレス
の内容、即ち4つのアドレスA、 B、 C,D 及び
関連した有効(V)、る。これら4つのアドレス(ハ、
リクエストされたラインがキャッシュ中にあるがどうか
を決定するため、アドレス比較ネットワーク210の中
で線228上のリクエスト・アドレスと並列に比較され
る。もし比較が等しく、関連した有効フラグが1であれ
ば、比較回路はキャッシュに対する適当な遼択線を能動
化する。即ち、A選択線、B選択線、C選択線、D選択
線のいずれがかその上に1を有し、これが230で示さ
れるようにL1私用キャッシュへ印加される。更にこれ
らの選択信号l1ORゲート262へ印加される。OR
ゲート232はP−L1ヒツト信号を線234に与える
更にこの信号はインバータ236へ印加され、インバー
タ236は線238へP−I、1ミス信号を与える。
更に、線−240fの有効フラグは置換論理へ与えられ
る。何故ならば、ミスの場合、有効フラグが0に等しい
(無効)ラインは、常に使用時点の最も古い(LRU)
ラインの前に置換されるがらである。
前述したように、それぞれのラインはCHフラグ及びW
Rフラグを有する。これらのフラグは線242反び22
4を介して制御論理回路へ入力される。記憶な許すため
、WRフラグは1でなけれはならず、もしCHフラグが
1であれば、ラインはミスの場合にL2私用キャッシュ
へ移され(読出され)ねばならない。
ここでL1共用キャッシュのためのディレクトリイ・レ
ジスタを示す第10図を参照する。アドレス比較ネット
ワーク246は線248を介してリクエスト・アドレス
を受取り、かつレジスタ250かもアドレスA、B、C
,D を受取る。レジスタ250は計9図のレジスタ2
29と同様なものであるが、WRフラグがないことが異
る。これは、I、1共用キヤツシユ中の全てのラインが
1に与しい書込フラグ沈び共用フラグな臀しなければな
らないからである。L1共用ディレクトリイ中の各ライ
ンについて、変更フラグが必要である。
それは、記憶が実際に生じるかどうか、従ってラインが
ミスの場合にカースト・アウトされねばならないかどう
かを示すためである。もしアドレスがネットワーク24
6中で比較の一致を生じ、関連した有効フラグが1であ
れば、252で示されるように、比較ネットワーク24
6はキャッシュに対する適当な選択線を能動化する。
更に選択信号はORゲート254へ与えられる。
5−Llヒツト信号は線256及びインバータ258へ
与えられる。そして線260上に5−L1ミス信号が生
じる。レジスタ250かも出る線262−Lの変更信号
は、第9図に関して説明したように、制御論理回路へ与
えられる。
キャッシュの全ては、4ウエイ・セットの連想キャッシ
ュであると仮定する。4つのアドレスは、並列にディレ
クトリイから読出される。もしディレクトリイから読出
された4つのアドレス(A、B。
C%D)の1つがリクエスト・アドレスと一致し、その
有効ビットが1に等しければ、キャッシュがアクセスさ
れ、4個のワードが並列に読出される。
これらのワードは、ディレクトリイから読出されたライ
ン・アドレスと同じようにA%B、C%D で餞わす。
ディレクトリイ比較回路の出力は、選択されたワードを
、キャッシュのワード・レジスタからデータ・バス・ア
ウトへ(又はデータ・バス・インからワード・レジスタ
へ)ゲートする。例えば、もしアドレスCが一致すれば
、ワードCがプロセッサへ(又はプロセッサから)ゲー
トされる。選択されたラインが最も新しい使用時点のも
のでちることを示すため、LRU置換アレイが更新され
る。
も1.、L1ディレクトリイで一致が生じなければ、こ
れはライン・ミスであり、その時、リクエスト・アr゛
レスはメモリ中の次のレベルへ(笑施例ではレベル2の
キャッシュへ)送られる。もしL2ディレクトリイの一
致が起れば(キャッシュ・ヒント)、目縁ラインがL1
キャッシュへ持って来られ、そのアドレスかディレクト
リイに記憶される。誰俣されるラインは、更新/置換論
理によって示される。前述したように、L1私用キャッ
シュは各キャッシュ・ラインのために3つのフラグを含
む。それらは次のように限定される。■フラグは、「電
源オン」及び主たるリセットでオフにされ、新しいライ
ンがキャッシュへ持って来られた時オンにされる。多重
処理システムにおいて、■フラグは交差質問ヒツトの場
合にオフにされる。
CHフラグは、ラインが変更される(即ち、そこへ書込
まれる)時オンにされる。WRビットは、ラインがL2
かもフェッチされ、かつL2ページ書込フラグが1であ
る時オンにされる。L1共用キャッシュはラインごとに
Vフラグ及びCHフラグ火有する。それは、L1私用キ
ャッシュにおけると同じような機能を有する。
ここで第11図を参照する。り311図はL2私用キャ
ッシュ反びそのディレクトリイと、第8図に関連してL
1論理について説明し7た場合と同じように動作する更
新/置換論理を示すブロック図である。L2ディレクト
vイの場合、その記憶されたアドレスは、どのページが
L2私用キャッシュにあるかを示す。L2キャッシュそ
れ自体はライン・レベルまでFつでアドレスされる。何
故ならば、これil′iL2キャッシュから読出され、
かつL2キャッシュとL1キャッシュとの間を転送すれ
る卑位だからである。
第11図はプロセッサAのためのL2私用キャッシュ2
0、Ft7:’それに関連したキャッシュ・コントロー
ル兼ディレクトリイ38を含む。プロセッサBのための
L2私用キャッシュ、及びそれに関連したキャッシュ・
コントロール兼ディレクトリイはプロセッサAに対する
ものと同様のものであり、同じように動作する。示され
るシステムは、典型的な4ウエイ・セット連想キャッシ
ュ、ブイレフ) IJイ、更新/置換アレイ及び論理を
含む。
L2私用キャッシュ20はワード入力ゲーテインク・ネ
ットワーク264、ワード出力ゲーティング・ネットワ
ーク266、ORゲート26B’4(含む。キャッシュ
・コントロール兼ディレクトリイ38はアドレス・アレ
イ270、アドレス入力ゲーテインク・ネットワーク2
72、及びアドレス比較ネットワーク274を含む。更
新置換アレイに(i・4アレイ276、更新/置換論理
278及びアドレス・ゲーティング・ネットワーク28
0?含む。
プロセッサAから米る線24上のアドレスは、ディレク
トリイ、キャツシュノ(び置換アレイをアドレスするた
めに使用される。、第7図は、24ビツトのメモリ・ア
ドレスが、どのように第11図に示される主たるエレメ
ントへ割当てられるかを示す。アドレスA[アドレス入
力ゲーテインク・ネットワーク272へ与えられ、アド
レスBはアドレス・アレイ270へ与えられ、アドレス
Cはアドレス比較ネットワーク274へ与えられる。
ディレクトリイ・アレイ270かもアドレス比較ネット
ワーク274へ同時に読出される4つのアドレスは、ど
れが比較の一致を生じるかを決定するため、アドレスC
の適当なビットと比較される。
例えは、もしアドレスAの比較が一致し、その有効ビッ
トが1に等しければ、ワードAがキャッシュから続出さ
れる。これは、A選択線282−ヒにあるゲート信号を
、+vI!284を介して、ワード出力ゲーティング・
ネットワーク266へ与えること1でよって達成される
。ワード出力ゲーティング・ネットワーク266から来
る線286は、リクエストされたデータをORゲート2
6B及びデータ・バス・アウト28Bへ与える。もし4
つのワードのいずれも比較の不一致・となれば、ミス信
号が発生される。もし記憶動作が達成されるべきであれ
ば、バス290上のデータ・イン信号がワード入ノ・ゲ
ーティング・ネットワーク264へ与えられ、緑284
上のA選択信号がワード入力ゲーテインク・夕、ットワ
ーク264を能動化する。それは、L2キャッシュ20
ヘデータ・イン信号を与えるためである。
?147レイ276反ひそれに関連した更新/置T″4
.論理278及びアドレス・ゲーティング・ネットワー
ク280は、連想キャッシュにおける4本の糾のいずれ
が最も古い時点で参照(又は使用)された・ノ、を追跡
するっ最旧時使用(LRTJ )置換1鳴埋の詳細は米
国特許第4008460号に説明されて℃・るので、論
理動作の詳細はここでは説す」1、汀い。
のブロック図である。このレジスタは、汗;9図に示さ
れるL1私用ディレクトリイ・レジスタと同様のもので
ある。ページごとのフラグは、L1私用ディレクトリイ
が各ラインについて有するものと同じであることに注意
されたい。実際の言弓憶はL2で起らず、Llで起るの
で、ラインがL2私用キャッシュからL1私用キャッシ
ュへ移る時、L2におけるWRフラグはL1ディレクト
リイヘ通される。変更されたラインがL1私用キャッシ
ュからL2私用キャッシュへ転送される時、L2のCH
フラグが1ヘセツトされる。I、2私用デイレクトリイ
から来るアドレスA、B、C,Dはディレクトリイ・レ
ジスタ292へ与えられ、それぞれのアドレスはアドレ
ス比較ネットワーク294へ与えられる。丈にネットワ
ーク294は線29″1 6を介してプロセッサからリクエスト・アドレス   
  、jを受取る。アドレスの一致が生じ、関連したV
ビットが1であれば、A選択、B鋲’、t’択、C選択
、D選択の各信号が、298で示されるようにL2私用
キャッシュへ与えられる。これらの信号はORゲート3
00へ転与えられ、ORゲート300はその出力線30
2上にP−L2ヒツト信号を与える−この信号はインバ
ータ604へ与えられ、インバータ304は出力線60
6上にP−L2ミス信号を与える。レジスタ292に記
憶されたアドレスに関連した線608上のVビット信号
は、線308を介して良換論理へ与えられ、CHビット
惰号反びWRビット信号は線310及び312を介(,
7て制前輪理反びL1私用キャッシュへ与えられる。
第13図はL2共用ディレクトリイ・レジスタのブロッ
ク図である。このレジスタは、第10図に示されるL1
共用ディレクトリイ・レジスタと旧12°(のく・ので
あるっL2共用ディレクトリイはWRフラグを含まない
。記憶が実際に起り、従ってミスの場合にラインをカー
スト・アウトしなければならないかどうかを示すため、
L2共用ディレクトリイ中の各ラインについてC)(フ
ラグが必要とされる。アドレスA、B%C,Dはレジス
タ614へ与えられ、アドレス及びそれに関連したq効
ビットはアドレス比較ネットワーク316へ印加される
。ネットワーク316は、線318を介してプロセッサ
から来るリクエスト・アドレス信号を印加される。アド
レスの一致が生じ、関連した有効ビットが1である時、
A選択線、B選択線、C選択線、又はD選択線の1つが
ルベルにあり、その信号は620で示されるようにL2
共用キャッシュへ印加される。更にその信号はORゲー
ト624へ印加され、ORゲート624けその出力線3
26上に5−L2デイレク) IJイ一致信号を与える
。この信号はインバータ328の入力へも印加され、イ
ンバータ628は、アドレスの一致が生じない時、その
出力線330上に5−L2デ、イレクトリイ一致信号を
与える。レジスタ614から来るCHビット信号は、前
述した理由により、制御M+論理へ至る線632へ与え
られる。
第14図はシステム制シ1エレメント6の中にあるタグ
・アレイのブロック図である。システム制御ニレメン゛
トがメイン・メモリからページをリクエストする時、そ
れは同時にシステム制御エレメント6の中にあるタグ・
アレイ664にアクセスする。タグ・アレイは、タグ・
アレイ・ワード336で示されるように、メイン・メモ
リのページごとに8ビツトを含む。左方から2つのビッ
トは枦込みフラグ反び共用フラグである。残りの6ビツ
トはプロセッサ識別フラグ(CPUビット)であり、ペ
ージが関連したプロセッサのL2又はLlの私用キャッ
シュにあるかどうかを示す。もしページがプロセッサの
私用キャッシュ中にあれば、ビットは1である。そうで
なげれば、それはゼロである。かくてタグ・アレイ・ワ
ード666は6つの多重処理を実行するために使用され
る。
もし書込フラグ及び共用フラグの双方が1状態にあれば
、リクエストされたページはL2共用キャッシュへ移動
され、目標ラインがL1共用キャッシュへ移動され、そ
こで目標?−ドカフェッチされる。
もし共用フラグがゼロであれば、cPUフラグがテスト
され、それらが全てゼロがどうがが決冗される。もしい
ずれかのCPUビットが1であれば、「プログラム・チ
ェック」信号がリクエストしたプロセッサへ戻される。
もし全てのCPUビットがゼロでちれば、ページがL2
私用キャッシュへ移動され、目標ラインがL1私用キャ
ッシュへ移動され、そこでフェッチが実行される。ペー
ジが私用キャッシュへ移される時、タグ・アレイの中に
あるリクエストしたプロセッサのCPUビットも1ヘセ
ツトされる。
WR及びSHビットは、CPU汎用レジスタがらffR
658を介して入力ANDゲーティング・ネットワーク
340へ与えられる。ネットワーク640は、WR及び
S Hビットをタグ・アレイ334ヘゲートするため、
線3424のタグ・アレイ設定信号によって能動化され
る。WR,SH及びCPUビットをタグ・アレイ334
からワード・レジスタ341へ読出す・、、・ため、所
与の情報ページに対するメモリ・アドレスが線337を
介してアドレス・レジスタ369へ印加される。上記の
ビットは、線346を介して制イ・用回路及び出方AN
Dゲーティング・ネットワーク644へ印加される。ネ
ットワーク344は線346上のタグ・アレイ挿入信号
によって能動化される。それは、ネットワーク344を
能動化して、WR,SHの各ピントを、線348を介し
てCPU汎用レジスタへ印加するためである。
IBM/370のように記憶保護キーを含むプロセッサ
では、タグ・アレイ634は記憶保護メモリの1)i(
、′、とじて構成することができ、仮想アドレス方式を
採用するプロセッサでは、タグ・アレイ364は貴装置
ページ・テーブルの1部として構yi+、−することが
できる。
しかし、本実施例においては、それはシステム制イ・用
エレメント6に設けられた別個のアレイであるとし、タ
グ・アレイ設定命令によって書込まれるものと仮定する
。それは、タグ・アレイ挿入命令によって、汎用レジス
タへ読出される(ソフトウェアによる検企のため)。こ
れら2つの命令は18M157[]における2つの記憶
保護命令(記憶ギー眩定命令反び記憶キー挿入命令)と
同じように働く。勿論、前+;、°2つの命令は、記憶
保護アレイではなくタグ・アレイ−Fで動作する。
第15図はタグ・アレイへ舎込むだめの論理を示す。ソ
フトウェアが特定のページのだめに書込フラグ及び共用
フラグをセットしたいと望む時、練650上のタグ・ア
レイ設定信号が、ANDゲ−)352及び354の第1
の入力へ印加される。
ANDゲート652の第2人力へ印加されるil!14
′556上の書込ビット=1信号が1である時、線35
8を介して書込フラグ−1設定信号がタグ・アレイへ印
加される。線360上の共用ピット=1信号が1である
時、ゲート354から来る線662上の共用フラグ−1
設定信号は1であり、これはタグ・アレイへ印加される
。書込及び共用フラグの設定は、命令によってアドレス
される汎用レジスタ中でなされる( IBM/370の
アーキテクチャであると仮定する)。これらの設定信号
は、プロセッサによるタグ・アレイ設定信号反びメモリ
・ページ・アドレス信号と共に、タグ・アレイヘゲート
される。タグ・プレイはページ・アドレスを使用して読
出され、書込フラグ及び共用フラグは、裏込ピット線及
び共用ビット線の設定ごとにト込まれる。
情報ページがメイン・メモリからプロセッサのL2私用
キャッシュヘゲートされる時、線664−1−にあるP
−L2ページ・ゲート信号がANDゲート366.66
8.370の第1人力へ印加され、そのページ及びプロ
セッサのだめのタグ・アレイへ1が書込まれる。例えば
、線372上のCPU 1−L2ミス信号が1である時
、ゲート666から出る出力線374−JlのCPU1
=1設定信テをは1であり、これはタグ・アレイへ印加
される。
ANDゲート′568の第2人力へ印加される線676
−FのCPU2−L2ミス信号が1である時、その出力
線578上のCPU2=1設定信号は1であり、それが
タグ・アレイへ印加される。線380上の1のCPU6
−L2ミス信号がANDゲート370の第2人力へ印加
された時、その出力線382−1のCPU6=1設定信
号が1となり、それがタグ・アレイへ印加される。
第16図は書込フラグ及び共用フラグ制御論理を示す。
第15図で発生されたCPU1=1設定信号乃至CPU
6−1設定信号は、ORケート3840入力へ印加され
、ORゲート384の出力はANDゲート686の第1
人力反びインバータ′588の入力へ印加され、インバ
ータ388の出力はANDゲート390の第1人力へ印
加される。
共用フラグ二〇信号はANDゲート386及び690の
第2人力へ印加される。書込フラグ−〇信号は線688
を介してANDゲート390′の第1人力へ印加される
。ANDゲー) 390’は、線692を介してCPU
記憶記憶リクエスト信士の第2人力へ印加される。AN
Dゲート386及び690の出力信号は、ORゲート3
92の第1反びダニ2人力へ印加される。ANDゲート
390の出力信号はORゲート394の第1人力へ印加
される。ANDゲー)39..6は、その第1人カヘ包
:込フラグー〇信号を印加され、その第2人力へ共用フ
ラグ−1信号を印加される。ゲート69乙の出力信号は
ORゲート394の第2人力へ印加される。ANDゲー
ト698は、その第1人カヘ書込フラグー1信号を印加
され、その第2人力へ共用フラグ−1信号を印加される
。もしANDゲート586 ノLび390の第1人力へ
印加される共用フラグ=0信号が1であり、かつORゲ
ート684の出力が1でちれば、ORゲート392はメ
モリ・キャンセル信号を与える。それによって、リクエ
ストしたプロセッサへ行くメモリ・キャンセル化M−7
&、−びフ′ログラム・チェック・ターン・オン信号は
、他のコピーが他のプロセッサへ送られるのを防止する
。更に、もしANDゲート390’が「2進の11出力
信号を与えていれば、メモリ・リクエストハキャンセル
され、プログラム・チェックがオンにされる。
もし共用フラグがゼロであり、CPUがその私用キャッ
シュ中に関連するページを含んでいなければ(これは、
1出力を与えるインノ(−夕388によって表示される
)、ANDゲート390はORゲート694へ1の入力
を与え、リクエスト・プロセッサのP−L2ページ・ゲ
ート信号が、リクエスト・プロセッサのL2私用キャッ
シュへ送られる。もし共用フラグが1に等しく、かつ書
込フラグがゼロに等しげれば、同−事象のシーケンスが
起る。書込フラグのゼロは、ANDゲート696ケして
、ORゲート694の第2人力へ1の入力を与えさせる
ページがL2井用キャッシュへ送られるのは、書込フラ
グ及び共用フラグの双方が1に等しい時である。この場
合、ANDゲート698によって、5−L2ページ・ゲ
ート信号が、リクエスト・プロセッサのL2共用キャッ
シュへ与えられる。
これまで説明1−だフラグを利用するキャッシュ構成は
、全てのプロセッサへ共通であり、かつL1私用キャッ
シュを交差質問して、変更されたラインに対するカース
ト・アウトを必要とするL2キャッシュに優る。しかし
、ページを適切にマークするに当り、アプリケーション
によっては、ソフトウェアがページの使用について十分
な知識を有しtc、い場合があるかも知れない。このよ
うな場合、ソフトウェアはこれらページを書込可能及び
J4.用可能とマークするように強制される。その納入
、アプリケーションによっては、ページ及びラインの大
きな割合いが共用キャッシュへ移動される場合もある。
更に、共用及び書込みの双方を受:するページについて
、共用反び書込みが共に生じない比較的長い時間も存在
する。そのような時間中、それらのページは私用キャッ
シュにある方がよい。このような場合のために、代替的
実施例を以下に説明する。この実施例は、全てのページ
及びラインをL27jびLlの私用キャッシュへ移動さ
せ、畳込可能7x〜び共用可能(1,1)とマークされ
たページ/ラインの共用反び書込みをダイナミックに調
整する。
に17図は多重処理システム400を示す。このシステ
ムは、L3の共用されるメイン・メモリ1102に含ま
れたオペランド及び命令を有する。
メイン・メモリ402は、システム制御エレメント40
4’9介して複数のプロセッサ群と命令及びオペランド
を交換する。入出力バス406は、システム制御用エレ
メント404を、直接アクセス記憶装置(D A S 
D ) CI)ような複数の周辺装置へ接続する。更に
、システム制ζc′liエレメント404は、L2及び
Llの私用キャッシュ及びLlの共用キャッシュを介し
て、プロセッサA及びBY含む第1のプロセッサ群へ接
続される。L2の共用キャッシュはないことに注慧され
たい。システム制御エレメント404は、バス408を
介して他の同様なプロセッサ群へ接続される。各プロセ
ッサ群は2個ケ超えるプロセラサケ含んでよいが、説明
を簡単にするため、2個のプロセッサの場合な示す。
各プロセッサは、情報交換のため、L1私用キャッシュ
及びL1共用キャッシュと直接に通信する、L1共用キ
ャッシュは、多重プロセッサ群の各プロセッサによって
共用される。情報ラインはLlの各キャッシュに記憶さ
れ、L2の私用キャッシュは情報ページを含む。プロセ
ッサAはLlでその私用キャッシュ410及び共用キャ
ッシュ412と通信し、プロセッサA及びキャッシュ間
のデータ交換は緋414及び416を介して行われる。
もしリクエストされた情報ラインがキャツンユ410又
は412のいずれにおいても存在していなければ、L2
私用キャッシュ418が線420を介してL1私用キャ
ッシュ410かも質問される。それは、リクエストされ
たラインを含む情報ページがそこに存在しているかどう
かを調べるためである。もし情報ページがそこに存在し
て〜・れは、リクエストされた情報ラインは、キャッシ
ュ410又は412へ転送される。他方、情報ページが
L2私用キャッシュ418に存在して℃・7:、:けれ
は、システム制御1ニレメン)404が、L6のメイン
・メモリからL2私用キャッシュ418へ情報ページを
転送するよう信号を受ける。書込フラグ及び共用フラグ
がどのようにセットされていても、全てのページがメイ
ン・メモリ402からL2私用キャッシュ418へ移さ
れる。ぺ−iンがメイン・メモリからL2私用キャッシ
ュへ移された時、関連した書込フラグ及び共用フラグ〃
エタグ・アレイからL2私用ディレクトリイヘ移される
。更に、ページからの各ラインがL1私用キャッシュへ
転送されると、2個のフラグ・ピットがライン・アドレ
スと共にL1私用ディレクト1ノイに記憶される。以下
に説明するように、書込フラグ及び共用フラグが階層コ
ントロールを変更するのは、Llにおいてである。リク
エストされた情報ラインが、1度し2私用キャッシュ4
18へ転送されると、それは、書込フラグ及び共用フラ
グの双方が共に1であるとき、L1共用キャッシュへ転
送される。他の全ての場合、リクエストされた情報ライ
ンはL1私用キャッシュ410へ転送される。
プロセッサBは、線426及び428を介して、Llに
おけるその私用キャッシュ424、及びL1共用キャッ
シュ412とデータを交換する。もしリクエストされた
情報ラインが共用キャッシュ412又は私用キャッシュ
424に存在して(・なげれば、リクエストされたライ
ンを含む情報ページが、細432’&介して、プロセッ
サBのL2私用キャッシュ460かもリクエストされる
。もしリクエストされた情報ページが私用キャッシュ4
30に存在していなければ、リクエストされた情報ペー
ジをL2私用キャッシュ450へ転送するように、L3
のメイン・メモリ402がシステム%l+%ilニレメ
ン)404を介して信号を受ける。私用キャッシュ43
0中のリクエストされた情報ラインは、プロセッサAに
ついて説明したように、や°込フラグ及び共用フラグの
セット状態に従ってL1共用キャッシュ412又はL1
私用キャッシュ424のいずれかへ転送される。
第18図は第17図に示1〜だ多重処理システム400
の詳細なブロック図である。第18図はL1共用キャッ
シュ及びLl及びL2の私用キャッンユに関連したキャ
ッシュ・コン)0−ル兼−Fイレクトリイを示す。L1
私用キャッシュ410のためのキャッシュ・コントロー
ル兼ディレクトリイ434は、線436を介してプロセ
ッサAへ接続され、組440を介してL2私用キャッシ
ュ418のだめのキャッシュ・コントロール兼ディレク
トリイ468へ接続され、線442を介してシステム制
御lll!エレメ・ント404へ接続される。■はデー
タ・バスを示し、■はアドレス兼10す御バスを示す。
プロセッサAは、線446を介してL1共用キャッシュ
412のためのキャッシュ・コントロール兼ディレクト
リイ444へ接続され、線448を介してL2私用キャ
ッシュ418のだめのキャッシュ・コントロール兼ティ
レクトリイ438へ接続される。
プロセッサBは、線452を介してL1私用キャッシュ
424のためのキャッシュ・コントロール兼ディレク)
 IJイ450へ接続され、線454を介1.てL1共
用キャッシュ412のだめのキャッシュ・コントロール
兼ティレクトリイ444へ接続される。
キャッシュ・コントロール兼ディレクトリイ444は、
線458を介してL2私用キャッシュ430のだめのキ
ャッシュ・コントロール兼ティレクトリイ456へ接続
され、線460’&介してシステム制(@−レメント4
04へ接続される。こしiものキャッシュ・コントロー
ル兼ディレクトリイは、リクエストされた情報ライン又
は情報ページがキャッシュに存在するかどうかを決定し
、又はT(=t Nページがメイン・メモリからフェッ
チされねば7i″ら7fいかどうかを決定するだめ、読
出指令又は杏込指令に応答する。
書込フラグ及び共用フラグのセット状態がどのようtc
ものであれ、全てのページはメイン・メモリからL2私
用キャッシュへ移される。ページがメイン・メモリから
L2私用キャッシュへ移される時、関連した書込フラグ
及び共用フラグがタグ・アレイからL2私用ディレクト
リイヘ移される。
舅に、ページからの各ラインがL1私用キャッシュへ転
送されると、2個のフラグがライン・アドレスと一″−
にL1私用ディレクトリイに記憶される。
以ドに説1明するように、書込フラグ及び共用フラグが
階層コントロールを変更するのは、Llにお(・てであ
る。
1:込フラグがゼロであるラインは、そこに書込兄れる
ことができず、交差質問は必要でない。共]11フラグ
は読出専用ラインについてLlで影響をイ+L’−c’
・(書込フラグはゼロに等しい)。書込可能とマークさ
れたラインについては<V込フラグは1に等しい)、共
用フラグは、実動的に次のようにしてLlで動作を変更
する。書込可能とマークされているが共用可能とマーク
されていない(1,0)ラインについて、記憶がリクエ
ストされると、記憶はL1私用キャッシュに対して起り
、交差質問は必要とされない。何故ならば、ラインの1
つのコピーのみがLl及びL2に存在することができる
からである。もしラインが(i、i )とマークされて
いれば、記憶が起る前に、ラインがL1共用キャッシュ
へ移され、L1私用キャッシュの交差質問が達517.
される。もしラインが他のプロセッサのキャッシュにあ
れば、それは無効にされる。
もしく 1.1 )のラインがL1共用キャッシュにあ
れば、2つのプロセッサがそこからフェッチしかつそこ
へ記憶することかできる。従って、もしページがL2の
1つの私用キャッシュ中にメジ、他のプロセッサがその
ページのラインからミスを有すれば、他の7”ロセツサ
が記憶しなかったのはそのうインについてであるに違い
ない。従って、L2に珂すみライン・ミスは、イ+17
のプロセッサによって変更されなかったラインのためで
ある。
かくて、(1,1)ページのコピーはそれぞれのL2私
用キャッシュ中に存在することができ、そのぺ−fンの
変更されないラインのコピーはそれぞれのL1キャッシ
ュ中に存在することができる。
ノロセッサがラインを変更するや否や、それば先−4−
ラインを共用キャッシュへ移し、もしそのラインが他の
プロセッサの私用キャッシュ中に存在していれは、それ
を無効にする。それによって、このラインを後に使用す
る場合、私用キャッシュが1°)ではt′、「<共用キ
ャッシュからそのライン欠取ることが可能となる。大切
なことは、実際の紀憧が+iiるまでは、ラインは共用
の読出専用として処理さJしることである。
変更された(1.0)ライン(省:込可能、共用不1m
J能)は、L101個の私用キャッシュ中にのみt−仕
し、最終的に1riL 17;ム用キャッシュからL2
払月4キャッシュへ移される。変更された(1.1)ラ
インは、Li−41−用キャッシュ中にのみ存在し、ペ
ージがL2キャッシュ中にあるがどうかに従って、1つ
又1d2つのL2キャッシュへ移される。
第19図はプロセッサ・メモリ「フェッチ・リクエスト
1に対する論理フローチャートである。
プロセッサは線462を介して論理ブロック464及び
466へ「フェッチ・リクエスト」を出す。
それは、リクエストされた情報ラインが、L1私用キャ
ッシュ中に存在するのが、L1共用キャッシュ中に存在
するのかを決定するためである。論Wブoツク464で
、「L1私用キャッシュfフィン・ヒツトが生じるが−
1の質問がなされる。もし答がイエスであれは、論理ブ
ロック468で示されるように、リクエストしたプロセ
ッサのL1私月4キャッシュから、ラインがフェッチさ
れる。
そのラインはリクエストしたノロセッサへ転送され、線
470で示されるようにメモリ・フェッチの終りが起る
。他方、464で示されるように、L1私用キャッシュ
でライン・ヒツトが起らなければ、ン”ロセスはNM 
B!ブロック472へ進ミ、論理ブロック466におけ
る論理プロセスの結果を待機する。論理ブロック466
では、[L1共用キャッシュ中にライン・ヒツトが生じ
るか−1の質問がなされる。もし答がイエスであれば、
論理ブロック474で示されるように、ラインがL1共
川キャッシュからフェッチされ、そのラインはL1共片
キャッシュからリクエストしたプロセッサへ転送され、
線470で示されるように、メモリ・フェッチの終りが
起る。他方、もし答がノーで、bれば、論理プロセスは
論理ブロック466かも論理ブロック472へ進む。
もし物理ブロック464及び466でなされたえ哨坤仙
間に対する答が井にノーであれば、これはリクエストさ
れたラインがLlに存在しないことを示す。その場合、
論理プロセスは論理ブロック472かも論理ブロック4
76へ進むが、それはリクエストされたラインを含む情
報ページがL2にWjl M、されているかどうかを決
定するためである。
1−4埋ブロック476で、[L2私用キャッシュでラ
イン・ヒツトが生じるか」の質問がなされる。
もし答がイエスであれば、&“う理プロセスは論理ブロ
ック478へ進む。論理ブロック478は、L2私用キ
ャッシュからL1私用キャッシュへ、リクエストされた
情報ラインを移すことを示す。次いで、論理プロセスは
論理ブロック468へ進み、前述したように進行する。
もし答がノーであれば、メイン・メモリ及びシステム制
御エレメント中のタグ・アレイにアクセスするため、論
理プロセスは論理ブロック480へ進む。次に論理プロ
セスは論理ブロック482へ進み、そこで[共用フラグ
は1に等しいか」の質問がなされる。もし答がイエスで
あれば、論理プロセスは論理ブロック484へ進み、も
し答がノーであれば、論理プロセスは論理ブロック48
6へ進む。
もし論理ブロック482でなされた質問に対する答がイ
エスであれば、メイン・メモリからL2私用キャッシュ
へページが移され、CPUビットがオンにされる。次に
論理プロセスは論理ブロック478へ進み、前述したよ
うに進行する。もし論理ブロック482における答がノ
ーであれば、論理プロセスは論理ブロック486へ進み
、そこでrcPUビットが1に等しいか」の質問、がな
される。もし答がイエスであれば、プログラム・チェッ
ク信号を発生するため、論理プロセスは論理ブロック4
88へ進む。もし答がノーであれば、論理フ”ロセスは
論理ブロック484へ進み、前述したように進行する。
g2o、1図及び第20.2図はプロセッサ・メモリ「
記憶リクエスト」の論理フローチャートを示す。線49
0で示されるように、所与のプロセッサ・メモリ「記憶
リクエスト」に応答して、目標ラインがL1私用キャッ
シュ又はL1共用キャッシュに存在しているかどうかを
決定するため、論理プロセスは論理ブロック492及び
494へ進む。論理ブロック492で、 [目標ライン
がL1共用キャッシュに存在するか」の質問がなされる
もし答がイエスであれば、論理プロセスは論理ブロック
496へ進み、もし答がノーであれば、論理ブロック4
94の論理判断を待機するため、論理プロセスは論理ブ
ロック498へ進む。
もしL1共用キャッシュでディレクトリイの比較一致が
生じ乙と(即ち、論理ブロック492でなされた旬間へ
の答がイエスでカ)れば)、論理ブロック496で示さ
gるように、L1共用キャッシュ中で記憶が起り、プロ
セスは記憶の終りを示す1sooへ進む。書込可能及び
共用可能(1,1)であるラインのみがL1共用キャッ
シュ中に存在するので、書込フラグ及び共用フラグのテ
ストは会戦でない。従って、共用キャッシュのデイレク
トリイは書込フラグ又は共用フラグを含まない。
更に、共用キャッシュ中の全てのラインが変更されるの
で、変更フラグは必散でない。
メモリ「記憶リクエスト」に応答して、論理ブロック4
94で、[目標ラインはL1私用キャッシュ中に存在す
るか」の質問がなされる。もし答がイエスであれば、論
理プロセスは論理ブロック502へ進み、もし答がノー
であれば、論理フーロ     ゛セスは論理ブロック
498へ進む。もしL1私用キャッシュでディレクトリ
イの比較一致が生じれば、φ込(WR)フラグ及び共用
(SH)フラグがテストされねばならない。もし書込フ
ラグが1に慎しく、共用フラグがゼロに等しければ、記
憶!4L1私用キャッシュで起る。そこで「書込フラグ
は1に等しく共用フラグはゼロに等しいか」の質問が論
理ブロック502でなされる。もし答がイエスであれば
、論理プロセスは論理ブロック504へ進み、もし答が
ノーであれば、論理プロセスは論理ブロック506へ進
む。もし答がイエスであれば、論理ブロック504で示
されるように目・くラインiL1私用キャッシュ中に記
憶され、綱埋プロセスは線500で示されるように記憶
の終りへ進む。伯方、論理ブロック502における答が
ノーであれば、論理ブロック506で、[書込フラグは
ゼロに等しいか、1の質問がなされる。
もし答がイエスであれば、論理プロセスは論理ブロック
508へ進み、もし答がノーであれば、論理プロセスは
論理ブロック510へ進む。もし1゛込フラグがゼロに
等しげれば、記憶は起らず、論理・ブロック508で示
されるように、プログラム・チェック侶°号がプロセッ
サへ与えられ、線512で示されるように、記憶リクエ
ストの終りが起る。−F記憶つの条件のいずれも存在し
なければ、書込フラグ及び共用フラグは共に1でなけれ
ばならない。従って、論理ブロック510で示されるよ
うに、目標ラインはL1私用キャッシュからLl−1t
用キヤツシユへ転送され、その後論理プロセスは論理ブ
ロック514へ進む。論理ブロック514はラインがリ
モートのL1私用キャッシュの中で無効にされることを
示す。次に論理プロセスは、記憶がL1共用キャッシュ
中で起ることを示す論理ブロック496へ進む。リモー
トのL1私用キャッシュは交差質問され(XI)、もし
ラインがリモートのL1私用キャッシュ中にあれば無効
にされる。
ブロック492文び494でなされた論理質問への答が
共にノーである場合、目標ラインはL11共用キヤツシ
ユびL1私用キャッシュ中に存在せず、論理プロセスは
論理ブロック498次いで論理ブロック516へ進む。
論理ブロック516でハ、「1柳ラインはL2私用キャ
ッシュに存在する力・−1の質問がたされる。もし答が
イエスであれば、と埋プロセスは論理ブロック518へ
進み、答かノーであれば、論理プロセスは論理ブロック
520へ進む。論理ブロック516でなされた質問の応
答がイエスであれば、それはL2私用ディレクトリイの
比較一致を示し、次に書込フラグ反びづ1−用フラグが
検貸されねばならない。それは、ラインかL1私用キャ
ッシュ又はL1共用キャッシュへ移動されるべきか否か
を決定するためである。論理ブロック518でハ、「書
込フラグが1に等しく 共用フラグがゼロに等しいか」
の質問がたされる。もし答がイエスであれは、論理プロ
ー1−、スは論理ブロック5;22へ進み、答がノーで
あれは、論理プロセスは論理ブロック524へ進む。
もし険坤フロック51Bにおける質問への答がイエスで
あ→tば、論理ブロック522でrCPUビットは1に
等しいか」の質問がなさ□れるっもし答がイエスであれ
ば、詫埋フ゛ロセスはh3iJj−ブロック508へ進
み、プログラム・チェック信号が発生され、記憶リクエ
ストの終りが練512で示される。もし答がノーであれ
ば、論理ブロック526で示されるように、論理フ”ロ
セスは、リクエストされた情報ページをメイン・メモリ
からL2私用キャッシュへ移すように進行し、CPUビ
ットがオンにされる。次に、論理ブロック528で示さ
勲、るよ5に、目標ラインがL2私用キャッシュからL
1私用キャッシュへ移され、論理ブロック504で示さ
れるように、記憶がL1私用キャッシュで起り、次いで
150Dで示されるように、記憶の終りが起る。
%iWブロック524で示されるように、もし書込フラ
グがゼロに等しけれは、論理プロセスは論理ブロック5
08へ進んでプログラム・チェック信号を発生し、線5
12で示されるように記憶リクエストの終りが生じる。
もし答がノーであわば、L2私用キャッシュからL l
 共用キャッシュへ目標ラインを移すため、論理プロセ
スは論理ブロック560へ進む。次いで、論理ブロック
496で示されるように記憶がL1共用キャッシュで起
り、?4500で示されるように、記憶の終りが起る。
真理ブロック516でなされた質問へのノーによって示
されるように、もし目標ラインがL2私用キャッシュ中
に存在しなければ、論理プロセスは論理ブロック520
へ進む。論理ブロック520はメイン・メモリ及びタグ
・アレイのアクセスを示す。次いで論理プロセスはそこ
から論理ブロック518へ進み、そして前述したように
進行する。
p!:21図はL1私用キャッシュのだめのメモリ・リ
クエスト論理を示す。もし線498上にP−L1ヒツト
信号が存在し、かつANDゲート502の入力へ行く線
5001にプロセッサからのフェッチ・リクエスト信号
が存在すれば、ORゲート504がアクチブとなり、 
「P−Llからのフェッチ」信号をL1私用キャッシュ
へ与える。線5081のフェッチ・リクエスト信号と、
線5101−の「P−L 、2からP−Llへの転送完
了」信j;−とが一τブした時、ANDゲート506は
アクチブとなる。、糺510上の転送完了信号は、[P
−L175・ものフェッチ−1信号ケ再びL1私用キャ
ッシュへ篠えるたy)、ORゲート504を能動化する
線512上の記憶リクエスト信号、反び@514上のP
−I、1ヒツト信号に応答して、ANDゲート516は
アクチブとにCす、A N Dゲート524.526.
528のシ、1人力518.520゜522が条件ずけ
ら旭、る。それは、1札jラインに関連した(込フラグ
及び共用フラグの状態をテストするためである。もしA
NDゲート524の残りの2つの入力上で、書込フラグ
=1及び共用フラグ−〇であれ)f、その出力はアクチ
ブとなり、ORゲート530i1Tt、、出力#562
を介して、P−LI記1ν信号をL1私用キャッシュへ
与える。
もし書込フラグ=0であれば、ANDゲート526がア
クチブと7.(す、プログラム・チェック信号がCPU
への出力線564へ与、えもれる。もしANDゲート5
28の残りの2つの入力へ印加される書込フラグ=1ル
ーび共用フラグ−1信号がアクチブであれば、ANDゲ
ート528Fi、、七の出方路536上に、L1私用キ
ャッシュ及びL1共用キャノ/ユヘ与えられるrp−L
lからS −L ’1へのライン転送1信号を発生し、
かっ線538上に、ンステム制御エレメントへ与えられ
るリモートP−L1無効信号を発生する。A N−Dゲ
ート540け、捜510上のrP−L2からP−Llへ
の転送完了」信号と、糾512上の記憶リクエスト信ち
゛とに応答してアクチブとなり、ORゲート530をし
て、線532−)に、P−L11記憶信を発生させる。
この信号は、目標ラインをL2私用キャッシュからL1
私用キャッシュへ転送させる。
各キャッシュはライン・カウンタを有する。ライン・カ
ウンタは、ライン転送の始めにゼロヘリセットされ、成
る数のワードがキャッシュへ(又はキャッシュから)転
送された時、ライン転送完了1信を発生する。
i:> 22図はL1共用キャッシュのためのメモリ・
リクエスト論理のブロック図である。ANDゲート54
2は、線5441の5−L1ヒツト信号と、吻546上
のフェッチ・リクエスト信号とに応答し7てアクチブと
なる。線546上の信号は、森550を介してL1共用
キャッシュへrS−Llかものフェッチ、1信号を与え
るため、ORゲート548な能動化する。ANDゲート
552は、線546上のフェッチ・リクエスト信号と、
線554上のrP=L2からS−L 1への転送完了、
1信号とに応答してアクチブとなる。線554上の信号
はANDゲート552の第2人力へ印加される。AND
ゲート552の能動化はORゲート548を能動化して
、7w b 50?介j7てL1共用キャッシュへ与え
られるrs−Llからのフェッチ」信号を発生する。
ANDゲー) 556jは、その紀1人カへ印加される
線558−ヒのrP−Llから5−Llへの転送完了1
信号と、泥22人力印加される線560上のリモー )
P−L1無効完了信号と、第6人力へ印加される線56
2上の記fN ’Jクエスト信号に応答してアクチブと
なる。ANDゲート556のアクチブ状態は、ORグー
)’564V能動化して、L1共用キトツシュヘ与えら
れるS−L、1記憶信′j:゛を茫づ566上に発生す
る。ANDゲート568は、その2−づ入力へ印加され
る線562上の記憶リフニス) 信4”7と、負・:2
人力へ印加される線570十、のS−I、1ヒツト信号
とに応答してアクチブと1〔る。ANDゲート568の
能動化はORゲート564を能動化し、その出力線56
6ケ介してL1共川キャッシュへ与えられる5−L1記
憶信はケ発生する。
ORケート572及び574、及びANDゲート576
はL1共用キャッシュのだめの転送論理な構灰、する。
L 1井用キヤツシユにある全てのラインがりi更され
るので、新しいラインがL1共用キャッシュへ転送され
る時、置俟されたラインはL1共川キャッシュから読出
され、1つ又はそれ以上のL2私用キャッシュへ移され
ねばならない。
古いラインW<−Ll、L″二用キャッシュへ読出し、
次いで;、’l itf L 2キヤツシユへ転送する
動作は、ライン・7)−スト・アウト動作と呼ばれる。
カースト・アウトされるべきラインは、共用キャッシュ
のL a U tr<換病理によって決定される。
もしラインがL 1 、Lt:#4キャッシュへ転送さ
れるべき時、入力1K578又は580の1つがアクチ
ブとなり、憧換されるべきラインが共用キャッシュから
出力ライン・バッファへ読出されるべきであることを知
らせる。線578上の信号は、[P−Llから5−Ll
へのライン転送完了1信号であり、線580上の信号は
、IP−L2から5−Llへのライン転送完了」信号で
ある。これら線のいずれかがアクチブであれば、それに
応答してORゲート572にアクチブとなり、ANDゲ
ート576へのン冨1人力をアクチブにする。ORグー
)574.iは、線l382上のrP−Llから5−L
lへのライン転送−1信号がアクチブであるか、線58
4上のrP−L2から5−Llへのライン転送l信刊が
アクチブであることに応答してアクチブとなり、ORグ
ー) 574’&して、その出力組586−1ニーにr
S−Llから5−Ll出カライン・バッファへのライン
読出」信号を発生せしめる。
この信号?′iL1共用キャッシュへ与えられる。この
信号はANDゲート576の’+’y 2人力へも与え
られる。A N Dゲート576は、ORゲート572
からうるアクチブな出力信号を受取った時、その出力−
588上に、IP −L 2へのカースト・アウト1信
号〉・発生する。この信号は、L2私用キマッシュへ与
えられる。
こ机までト明した動作シーケンスを択び繰返して泌1頃
j了ると、目標ラインはL2キャッシュからその出力ラ
イン・バッファへ読出され、同時にL1炭゛用鎗−キッ
シュ中で置換されるべきラインがそこから読出されてそ
の出力ライン・バッファへ入れられる。次いで、1槓ラ
インはL1共用キャッシュの入力ライン・バッファへ転
送される。この人力ライン・バッファが一杯である時、
それは「P−L2から5−Llへのライン転送完了」信
号を発生する。この時点で、L1共用キャッシュに、全
てのL2私用キャッシュへカースト・アウト信!−; 
’%’送る。このラインがL2私用キャッシュへ転送さ
れている1−1、プロセッサはL1共用キャッシュにア
クセスすることができる。
第3.1図及びD<3.2図はL2私用キャッシュのた
めのメモリ・リクエスト諭坤を示す。フェッチリクエス
トの場合、ノ;込フラグ又は共用フラグをL2でテスト
する盛装はない。記憶リクエストの場合、これら2つの
フラグは次のような重要な役割を演する。ANDゲート
590は、その第1人力への線59]LにあるP−L1
ミス信号と、第2人力への線594−1・にある5−L
1ミス信号とに応答してアクチブとなり、ANDゲート
596と598の第1人力を条件ずける。ANDゲート
598への第2人力は#600上のフェッチ・リクエス
ト信号である。この信号はANDゲート598をアクチ
ブにして、線6021CP−L2キャッシュへのフェッ
チ信号を発生させる。この信号はL2私用キャッシュへ
与えられるとともに、線604を介してANDゲート6
06及び608の第1人力へ与えられ、これらのゲート
を条件ずける。線61 D−F−のP(−L2ヒツト信
号がANDゲート606の第2人力へ与えられ、このゲ
ートをアクチブにして、ORゲート610’の第1人力
ヘアクチブな入力信号を与える。・ORグー) 61 
D’の出力線612上には、 rP−L2からP−Ll
・\のライン転送1信号が与えられ、その信号+dL2
及びLlの私用キャッシュへ送られる。線6141のP
−L2ミス信号は、ANDゲート608のλ゛、2,2
人カられ、このゲートを能動化する。
それによってORゲート616が能動化されて、その出
力線61トドに[メモリへのフェッチ1信弓が与えられ
、それかシステム制御エレメントへ送られる。更に、A
NDゲート608からのアクチブな出力信号は、AND
ゲート620の郵1人力へ与えられる。ANDゲート6
20の第2人力へ(/:「、線622上の「メモリから
P−Llへのべ一ミ2転送児了」信号が印加されて、こ
のゲートをアクチブにし、アクチブ信号がORゲート6
10′の第2人力へ与えられて、前述したように線61
21にライン転送信号を発生する。
聰624−ヒの記憶リクエスト信号は、ANDゲート5
96の第2人力へ与えられて、このゲートをアクチブに
する。その出力4!メロ26上には、「P−L2への記
憶」信号が発生され、この信号はL2私用キャッシュへ
送られるとともに、+%!62Bを介して、ANDゲー
) 650反ヒ632(f)7t:1人力へ与えられる
。ANDゲート596の出力信号は、L1私用キャッシ
ュ又はL 1共用キヤツシユのいずれにも存在しないラ
インに対する記1i′1リクエストを慧味する。もし目
標ラインがL2私用キャッシュにあれば、線634−h
−のP−L2ヒツト信号がアクチブとなり、これはAN
Dゲート660及びORゲート666をアクチブにする
ORゲート666の出力はANDゲート638.640
.642のダ・、1人力へ印加されて、これらのゲート
を条件ずける。ゲート638.640.642は書込フ
ラグ及び共用フラグの状態をテストするために使月1さ
れる。
もしANDゲート638の残りの2つの入力で徊・込フ
ラグ= 1−L(び共用フラグ−〇であれは、このゲー
トはアクチブとなり、その出力線644上にアクチブ信
号を発生する。この信号はORゲート610’の舶:3
人力へ与えられ、前述したように出力線612上にライ
ン転送信号が発生される。
シ1しANDゲート640の第2人力で書込フラグ= 
07Jあれば、このゲートはアクチブとなり、出力線6
46を介して、プログラム・チェック信号が10セツサ
へ辱えもれる。もしANDゲート6−12の残りの2つ
の入力で書込フラグ=1及び共ノ:フラグ−1であれば
、このゲートはアクチブとICす、その出力線648上
にrP−L2及び5−Llからのライン転送1信号が発
生される。この何升!riL2私用キャッシュ及びL1
共用キャッシュへ送られる。
もし7目標ラインがL2私用キャッシュ中に存在しなけ
れば、線65010P−L2ミス信号がANDケ〜トロ
62の第2人力へ印加され、このゲートヲアクチブにす
る。出力線652−ヒのアクチブ信号1dORゲート6
16の第2人力へ与えられ、その出力線618上にメモ
リへのフェッチ信号を発4.三する。ANDゲート66
2からのアクチブ信号は、A N Dゲート654の鉛
1人力へも与えられる。ANDゲート654は、その第
2人力へ接Fr’iされる線656上に[メモリからP
−L2へのページ転送完了1信号を有する。ゲート65
4からのアクチブ信号はORゲート636の第2人力へ
印加され、このゲートをアクチブにする。ゲート666
からのアクチブ信号は、前述したように、ANDゲート
638.640.642の入力で書込フラグ及び共用フ
ラグの状態ケチストするだめ忙使用される。
これまでの説明から、L2私用キャッシュに対するフェ
ッチ・リクエストは、常にラインがL1私用キャッシュ
へ転送される結果となることがわかる。しかし、L2私
用キャッシュへの記憶リクエストの場合、常に書込フラ
グ及び共用フラグをテストして、記憶が許されるかどう
かを決定するとともに、ラインがL1私用キャッシュ又
はL1共用キャッシュへ転送されるべきか否かを決定し
なければならない。
要約するに、本明細¥二、において、メイン・メモ11 りかもの目標6−ジが・第1及び第2バリ°V    
  )ベルの私用キャッシュ又は共用キャッシュのどこ
に再配置されるかを、書込フラグ及び共用フラグの状寒
か決定する6レベル・メモリ階層を含む多重りrL埋フ
システム開示された。
産業Fの応用性 本発明の目的は、改善された多1!、処理システムを提
供することである。
本発明の他の目的に、改善された多電処理、多重レベル
のメモリ階層を提供することである。
本発明の他の目的は、メモリ階層中に記憶された稍゛¥
゛・ページごとに書込フラグ及び共用フラグを、1.す
る、改善された多重処理3レベル・メモリ階層を提供す
ることである。−F記のフラグは、レベル3のj4:、
帥メイン・メモリからレベル1反び2の私用キャッシュ
反び共用キャッシュへ、関連する’bI」’報ペー・ン
がどのよ5に使用されるべきかを知らせるために利用さ
れる。
【図面の簡単な説明】
第1図は6レベル・メモリ階層を含む多重処理7ステム
のブロック図、第2図は6レベル・メモリ1刊−を含む
各軍処理システムのバス構成を示すブロック図、436
図は第6.1図と@3.2図との配置関係を示す図、外
、6.1図及び2「・、3.2図は第17図に示される
多1ケ)・、環システムのL2私用キャッシュに対する
メモリ・リクエスト論理ヲ示すブロック図、第4図は第
4.1図と第4.2図との配置関係を示す図、第4.1
図反び第4.2図は本発明に従う多重処理システムにお
けるプロセッサ・メモリ・フェッチ・リクエストの流れ
図、第5図は第5゜1図と杭5.2図の配置関係を示す
図、a丁5.1図及びi<5.2図は本発明に従う多重
処理システムにおけるプロセッサ・メそり記憶リクエス
トの流れ区1.416図は躯6.1図と第6.2図の配
置関係を示す図、g、ス6.1図及び第6.2図は単一
プロセッサのだめのキャッシュ・アクセス論理を示すブ
ロック図、第7図は本発明に従う多重処理システムにお
けるアドレシング構造を示す図、第8図は本発明に従う
多重処理システムにおけるレベル1私用キヤツシユ・デ
ィレクトリイ及び置換論理を示すブロック図、第9図は
本発明に従5多沖°与′l埋システムにおける【′ベル
1私用ディレクトリイ・レジスタな示−rブロック図、
第10図は本発明に従う多重処理/ステムトCおけ7)
レベル1井用デイレクトリイ・レジスタを示すブロック
図、第11図は本発明に従う多、!!−処枦システムに
おけるレベル2私用キヤツシユ・ティレクトリイ及び置
換論理を示すブロック図、心−12図は本発明に従う多
重処理システムにおけるレベル2私用デイレクトリイ・
レジスタを示すブロックνl、第13図は本発明に従う
多重り(裡システムにおけるレベル2共用デイレクトリ
イ・レジスタを示すブロック図、第14図は本うj:明
ニ従5 多M々l[埋システムのシステム制徊1エレメ
ントの中にあるタグ・アレイのブロック図、第15図的
r本発明に従う多重処理システムにおけるタグ・アレイ
書込論理を示すブロック図、第16図は本発明に従う多
重処理システムにおける書込フラグ/?−び共用フラグ
制御論理を示すブロック図、・l’:17図は6レベル
・メモリ階層を含む多重処理システムの代替実施例を示
すブロック図、第18図1”:J、第17図に示された
多重処理システムのシステム・バス構成を示すブロック
図、第19図は第メモリ・フェッチ・l)′クエストの
流れ図、第20図は第20.1図とダ<20.2図の配
ff、関係を示す図、@20.1図及び第20.2図は
第17図に示された多凍処理システムにおける記憶リク
エストの流れ図、第21図は第17図に示される多重処
理システムにおいてL1私用キャッシュに対するメモリ
・リクエスト論理を示すブロック図、第22図はi’1
7図に示される多重処理システムにおいてL1共用キャ
ッシュに対するメモリ・リクエスト論理ヲ示すブロック
図である。 2・・・・多重処把システム、4・・・・メイン・メモ
リ、6・・・・システム1lJ9川エレメント、12.
27・・・・L1私用キャッシュ、14・・・・L1共
用キャッシュ、20,30・・・・L2私用キャッシュ
、22・・・・L2共用キャッシュ。 l。 出ILM人  インターすβナル・62ネス・マシーン
ズ・コ−jルージョン代理人 弁理士  頓   宮 
  孝   −(外1名) o     66−−J

Claims (1)

    【特許請求の範囲】
  1. 第1及び第2のプロセッサ文びnレベルのメモリ階層を
    含み(nは2より大きい整数)、上記メモリ1階層は第
    n番目のレベルにメイン・メモリを含み、その他のレベ
    ルの各々に上記第1及び第2のプロセッサによりそれぞ
    れ専用される第1及びaI2の私用キャッシュを含むと
    ともに、上記その%tI)レベルの少な(とも1つのレ
    ベルに上記第1及び第2のプロセッサによって共用され
    る共用キャッシュを含み、上記メイン・メモリには情報
    の書込可能性及び共用可能性をそれぞれ示す書込フラグ
    及び共用フラグが記憶されているマルチプロセッサ・シ
    ステムの動作方式であって、上記書込フラグ及び共用フ
    ラグが所定の状態にある時、それらのフラグに関連した
    情報を上記メイン・メモリから上記共用キャッシュへ記
    憶する段階と、上記畳込フラグ及び共用フラグが上記所
    定の状態にない時、それらのフラグに関連した情報ケ上
    記メイン・メモリから第(n−1)番目のレベルにある
    上記第1又は第2の私用キャッシュへ記憶する段階とを
    含むマルチプロセッサ・システムの動作方式。
JP57187666A 1981-12-31 1982-10-27 マルチプロセツサ・システムの動作方式 Granted JPS58123151A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/336,521 US4442487A (en) 1981-12-31 1981-12-31 Three level memory hierarchy using write and share flags
US336521 1981-12-31

Publications (2)

Publication Number Publication Date
JPS58123151A true JPS58123151A (ja) 1983-07-22
JPS629942B2 JPS629942B2 (ja) 1987-03-03

Family

ID=23316475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57187666A Granted JPS58123151A (ja) 1981-12-31 1982-10-27 マルチプロセツサ・システムの動作方式

Country Status (5)

Country Link
US (1) US4442487A (ja)
EP (1) EP0083400B1 (ja)
JP (1) JPS58123151A (ja)
DE (1) DE3278948D1 (ja)
ES (1) ES518678A0 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02294762A (ja) * 1989-04-12 1990-12-05 Internatl Business Mach Corp <Ibm> マルチプロセツサ・コンピユータ・システムおよびそのメモリ・アクセス方法

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525777A (en) * 1981-08-03 1985-06-25 Honeywell Information Systems Inc. Split-cycle cache system with SCU controlled cache clearing during cache store access period
JPS58147879A (ja) * 1982-02-26 1983-09-02 Toshiba Corp キヤツシユメモリ制御方式
US4661900A (en) * 1983-04-25 1987-04-28 Cray Research, Inc. Flexible chaining in vector processor with selective use of vector registers as operand and result registers
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4881164A (en) * 1983-12-30 1989-11-14 International Business Machines Corporation Multi-microprocessor for controlling shared memory
GB2156554B (en) * 1984-03-10 1987-07-29 Rediffusion Simulation Ltd Processing system with shared data
US5581732A (en) * 1984-03-10 1996-12-03 Encore Computer, U.S., Inc. Multiprocessor system with reflective memory data transfer device
US5255369A (en) * 1984-03-10 1993-10-19 Encore Computer U.S., Inc. Multiprocessor system with reflective memory data transfer device
JPS60254346A (ja) * 1984-05-31 1985-12-16 Toshiba Corp マルチプロセツサシステム
US4823259A (en) * 1984-06-29 1989-04-18 International Business Machines Corporation High speed buffer store arrangement for quick wide transfer of data
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
JPS6184753A (ja) * 1984-10-01 1986-04-30 Hitachi Ltd バツフアメモリ
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4745545A (en) * 1985-06-28 1988-05-17 Cray Research, Inc. Memory reference control in a multiprocessor
US4754398A (en) * 1985-06-28 1988-06-28 Cray Research, Inc. System for multiprocessor communication using local and common semaphore and information registers
US4794523A (en) * 1985-09-30 1988-12-27 Manolito Adan Cache memory architecture for microcomputer speed-up board
JPS6286407A (ja) * 1985-10-11 1987-04-20 Omron Tateisi Electronics Co プログラマブル・コントロ−ラ
US4730249A (en) * 1986-01-16 1988-03-08 International Business Machines Corporation Method to operate on large segments of data in a virtual memory data processing system
DE3688136T2 (de) * 1986-04-04 1993-10-07 Ibm Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.
US5146607A (en) * 1986-06-30 1992-09-08 Encore Computer Corporation Method and apparatus for sharing information between a plurality of processing units
US4872111A (en) * 1986-08-27 1989-10-03 Amdahl Corporation Monolithic semi-custom IC having standard LSI sections and coupling gate array sections
CH672816A5 (ja) * 1986-10-03 1989-12-29 Pantex Stahl Ag
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
JP2514208B2 (ja) * 1987-07-15 1996-07-10 富士通株式会社 ホットスタンドバイメモリ−コピ−方式
US5008816A (en) * 1987-11-06 1991-04-16 International Business Machines Corporation Data processing system with multi-access memory
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
DE68917326T2 (de) * 1988-01-20 1995-03-02 Advanced Micro Devices Inc Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen.
US5136691A (en) * 1988-01-20 1992-08-04 Advanced Micro Devices, Inc. Methods and apparatus for caching interlock variables in an integrated cache memory
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
JP2965987B2 (ja) * 1988-02-22 1999-10-18 株式会社日立製作所 データ処理システム
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
JPH0752399B2 (ja) * 1988-06-30 1995-06-05 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 記憶システム
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5043886A (en) * 1988-09-16 1991-08-27 Digital Equipment Corporation Load/store with write-intent for write-back caches
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5202972A (en) * 1988-12-29 1993-04-13 International Business Machines Corporation Store buffer apparatus in a multiprocessor system
US5201041A (en) * 1988-12-29 1993-04-06 International Business Machines Corporation Cache bypass apparatus
US5161219A (en) * 1989-01-13 1992-11-03 International Business Machines Corporation Computer system with input/output cache
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5202970A (en) * 1989-02-07 1993-04-13 Cray Research, Inc. Method for sharing memory in a multiprocessor system
US5404476A (en) * 1989-02-10 1995-04-04 Nec Corporation Multiprocessing system having a single translation lookaside buffer with reduced processor overhead
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5253358A (en) * 1989-05-19 1993-10-12 Compaq Computer Corporation Cache memory expansion and transparent interconnection
JPH0510682Y2 (ja) * 1989-06-28 1993-03-16
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
EP0438011A3 (en) * 1990-01-18 1993-05-19 International Business Machines Corporation Logic on main storage memory cards for insertion and extraction of tag bits
US5363498A (en) * 1990-02-09 1994-11-08 Hitachi, Ltd. Method of controlling shared data among computers
US5247637A (en) * 1990-06-01 1993-09-21 Cray Research, Inc. Method and apparatus for sharing memory in a multiprocessor system
CA2044689A1 (en) * 1990-06-15 1991-12-16 Roger E. Tipley Multilevel inclusion in multilevel cache hierarchies
US5263144A (en) * 1990-06-29 1993-11-16 Digital Equipment Corporation Method and apparatus for sharing data between processors in a computer system
CA2047888A1 (en) * 1990-07-27 1992-01-28 Hirosada Tone Hierarchical memory control system
US5483645A (en) * 1990-10-26 1996-01-09 Advanced Micro Devices, Inc. Cache access system for multiple requestors providing independent access to the cache arrays
JPH04195577A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd マルチプロセッサにおけるタスクスケジューリング方式
CA2051222C (en) * 1990-11-30 1998-05-05 Pradeep S. Sindhu Consistent packet switched memory bus for shared memory multiprocessors
US5287473A (en) * 1990-12-14 1994-02-15 International Business Machines Corporation Non-blocking serialization for removing data from a shared cache
US5454093A (en) * 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5511226A (en) * 1992-08-25 1996-04-23 Intel Corporation System for generating snoop addresses and conditionally generating source addresses whenever there is no snoop hit, the source addresses lagging behind the corresponding snoop addresses
US5689679A (en) * 1993-04-28 1997-11-18 Digital Equipment Corporation Memory system and method for selective multi-level caching using a cache level code
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
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
JP3487641B2 (ja) * 1993-11-10 2004-01-19 富士通株式会社 並列計算機システムにおける記憶装置アクセス方式
US5561779A (en) * 1994-05-04 1996-10-01 Compaq Computer Corporation Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
JP3030229B2 (ja) * 1994-06-20 2000-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを転送する方法及びデータ記憶システム
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
US5577212A (en) * 1994-12-09 1996-11-19 Unisys Corporation Method for reporting file write status in a shared file system
US5717942A (en) * 1994-12-27 1998-02-10 Unisys Corporation Reset for independent partitions within a computer system
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed
US6047357A (en) * 1995-01-27 2000-04-04 Digital Equipment Corporation High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
US5701313A (en) * 1995-02-24 1997-12-23 Unisys Corporation Method and apparatus for removing soft errors from a memory
US5511164A (en) * 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
US5778434A (en) 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
US5680571A (en) * 1995-12-28 1997-10-21 Unisys Corporation Multi-processor data processing system with multiple, separate instruction and operand second level caches
US5875462A (en) * 1995-12-28 1999-02-23 Unisys Corporation Multi-processor data processing system with multiple second level caches mapable to all of addressable memory
US6279098B1 (en) 1996-12-16 2001-08-21 Unisys Corporation Method of and apparatus for serial dynamic system partitioning
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control
US5960455A (en) * 1996-12-30 1999-09-28 Unisys Corporation Scalable cross bar type storage controller
US6122711A (en) 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US5970253A (en) * 1997-01-09 1999-10-19 Unisys Corporation Priority logic for selecting and stacking data
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
US5860093A (en) * 1997-01-21 1999-01-12 Unisys Corporation Reduced instruction processor/storage controller interface
US5950228A (en) * 1997-02-03 1999-09-07 Digital Equipment Corporation Variable-grained memory sharing for clusters of symmetric multi-processors using private and shared state tables
US5956754A (en) * 1997-03-03 1999-09-21 Data General Corporation Dynamic shared user-mode mapping of shared memory
US5987581A (en) * 1997-04-02 1999-11-16 Intel Corporation Configurable address line inverter for remapping memory
FR2762420B1 (fr) * 1997-04-16 1999-05-21 Thomson Multimedia Sa Methode et dispositif d'obtention d'une selection adaptative d'ensembles de donnees stockes dans une memoire de masse
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
JP5220974B2 (ja) * 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
FR2801695B1 (fr) * 1999-11-29 2003-08-22 Suisse Electronique Microtech Dispositif de memoire
US6591341B1 (en) * 2000-03-31 2003-07-08 Intel Corporation Multilevel cache system and method having a merged tag array to store tags for multiple data arrays
US7069391B1 (en) 2000-08-30 2006-06-27 Unisys Corporation Method for improved first level cache coherency
US6857049B1 (en) 2000-08-30 2005-02-15 Unisys Corporation Method for managing flushes with the cache
US6928517B1 (en) 2000-08-30 2005-08-09 Unisys Corporation Method for avoiding delays during snoop requests
US6697925B1 (en) 2000-12-22 2004-02-24 Unisys Corporation Use of a cache ownership mechanism to synchronize multiple dayclocks
US6789168B2 (en) * 2001-07-13 2004-09-07 Micron Technology, Inc. Embedded DRAM cache
US6785775B1 (en) 2002-03-19 2004-08-31 Unisys Corporation Use of a cache coherency mechanism as a doorbell indicator for input/output hardware queues
TW591526B (en) * 2002-04-09 2004-06-11 Via Tech Inc Data maintenance method of DSM system
US7457822B1 (en) * 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7502910B2 (en) * 2003-01-28 2009-03-10 Sun Microsystems, Inc. Sideband scout thread processor for reducing latency associated with a main processor
US20040148489A1 (en) * 2003-01-28 2004-07-29 Sun Microsystems, Inc. Sideband VLIW processor
US7552277B2 (en) * 2003-08-20 2009-06-23 International Business Machines Corporation Distributed buffer integrated cache memory organization and method for reducing energy consumption thereof
US7711901B2 (en) * 2004-02-13 2010-05-04 Intel Corporation Method, system, and apparatus for an hierarchical cache line replacement
JP4813843B2 (ja) * 2005-08-04 2011-11-09 株式会社日立製作所 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
US20070143546A1 (en) 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
US8250331B2 (en) 2009-06-26 2012-08-21 Microsoft Corporation Operating system virtual memory management for hardware transactional memory
US8489864B2 (en) * 2009-06-26 2013-07-16 Microsoft Corporation Performing escape actions in transactions
US8370577B2 (en) * 2009-06-26 2013-02-05 Microsoft Corporation Metaphysically addressed cache metadata
US8356166B2 (en) * 2009-06-26 2013-01-15 Microsoft Corporation Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers
US8812796B2 (en) * 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US8738863B2 (en) * 2009-09-25 2014-05-27 Intel Corporation Configurable multi-level buffering in media and pipelined processing components
US8539465B2 (en) * 2009-12-15 2013-09-17 Microsoft Corporation Accelerating unbounded memory transactions using nested cache resident transactions
US8402218B2 (en) * 2009-12-15 2013-03-19 Microsoft Corporation Efficient garbage collection and exception handling in a hardware accelerated transactional memory system
US8533440B2 (en) * 2009-12-15 2013-09-10 Microsoft Corporation Accelerating parallel transactions using cache resident transactions
US9092253B2 (en) * 2009-12-15 2015-07-28 Microsoft Technology Licensing, Llc Instrumentation of hardware assisted transactional memory system
US8799583B2 (en) * 2010-05-25 2014-08-05 International Business Machines Corporation Atomic execution over accesses to multiple memory locations in a multiprocessor system
KR20140075370A (ko) * 2012-12-11 2014-06-19 한국전자통신연구원 계층적 캐시 구조를 가지는 멀티코어 프로세서
US20150370707A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated Disunited shared-information and private-information caches
CN105740164B (zh) * 2014-12-10 2020-03-17 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
US10324861B2 (en) * 2015-02-05 2019-06-18 Eta Scale Ab Systems and methods for coherence in clustered cache hierarchies
US20170031601A1 (en) * 2015-07-30 2017-02-02 Kabushiki Kaisha Toshiba Memory system and storage system
US20170220466A1 (en) * 2016-01-30 2017-08-03 Intel Corporation Sharing a guest physical address space among virtualized contexts
KR20210013397A (ko) * 2019-07-24 2021-02-04 삼성전자주식회사 스토리지 장치
CN111240743B (zh) * 2020-01-03 2022-06-03 格兰菲智能科技有限公司 人工智能集成电路
US11593109B2 (en) 2021-06-07 2023-02-28 International Business Machines Corporation Sharing instruction cache lines between multiple threads
US11593108B2 (en) * 2021-06-07 2023-02-28 International Business Machines Corporation Sharing instruction cache footprint between multiple threads
CN117971718A (zh) * 2024-03-28 2024-05-03 北京微核芯科技有限公司 一种多核处理器的缓存替换方法及其装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51118349A (en) * 1975-04-11 1976-10-18 Hitachi Ltd Multiproussor system
JPS51118350A (en) * 1975-04-11 1976-10-18 Hitachi Ltd Multiproussor system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581291A (en) * 1968-10-31 1971-05-25 Hitachi Ltd Memory control system in multiprocessing system
US3685020A (en) * 1970-05-25 1972-08-15 Cogar Corp Compound and multilevel memories
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
US3848234A (en) * 1973-04-04 1974-11-12 Sperry Rand Corp Multi-processor system with multiple cache memories
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3938097A (en) * 1974-04-01 1976-02-10 Xerox Corporation Memory and buffer arrangement for digital computers
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
US4056845A (en) * 1975-04-25 1977-11-01 Data General Corporation Memory access technique
FR2361718A1 (fr) * 1976-08-11 1978-03-10 Adersa Processeur parallele associatif a hierarchie de memoire, notamment pour l'acquisition et le traitement rapides des signaux
US4096567A (en) * 1976-08-13 1978-06-20 Millard William H Information storage facility with multiple level processors
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
JPS5849945B2 (ja) * 1977-12-29 1983-11-08 富士通株式会社 バツフア合せ方式
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51118349A (en) * 1975-04-11 1976-10-18 Hitachi Ltd Multiproussor system
JPS51118350A (en) * 1975-04-11 1976-10-18 Hitachi Ltd Multiproussor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02294762A (ja) * 1989-04-12 1990-12-05 Internatl Business Mach Corp <Ibm> マルチプロセツサ・コンピユータ・システムおよびそのメモリ・アクセス方法

Also Published As

Publication number Publication date
ES8405533A1 (es) 1984-06-01
JPS629942B2 (ja) 1987-03-03
EP0083400B1 (en) 1988-08-24
EP0083400A2 (en) 1983-07-13
DE3278948D1 (en) 1988-09-29
ES518678A0 (es) 1984-06-01
US4442487A (en) 1984-04-10
EP0083400A3 (en) 1986-06-04

Similar Documents

Publication Publication Date Title
JPS58123151A (ja) マルチプロセツサ・システムの動作方式
US4707784A (en) Prioritized secondary use of a cache with simultaneous access
US5095424A (en) Computer system architecture implementing split instruction and operand cache line-pair-state management
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
US4527238A (en) Cache with independent addressable data and directory arrays
US4551799A (en) Verification of real page numbers of stack stored prefetched instructions from instruction cache
EP0144121B1 (en) Virtually addressed cache
US8832415B2 (en) Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests
CN109240945B (zh) 一种数据处理方法及处理器
US5168560A (en) Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JPS62260248A (ja) データ処理システム
US4831581A (en) Central processor unit for digital data processing system including cache management mechanism
JPH09506729A (ja) 浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム
JP2003067357A (ja) 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
US6950909B2 (en) System and method for reducing contention in a multi-sectored cache
US5091845A (en) System for controlling the storage of information in a cache memory
US4695951A (en) Computer hierarchy control
EP0284751B1 (en) Cache memory
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
JP2930071B2 (ja) 情報処理装置およびプロセッサ
US5197145A (en) Buffer storage system using parallel buffer storage units and move-out buffer registers
KR100373576B1 (ko) 변환 장치의 엔트리를 무효로 하는 시스템 및 방법
JPS62202247A (ja) キヤツシユメモリ内容一致処理方式
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템