JPS629942B2 - - Google Patents
Info
- Publication number
- JPS629942B2 JPS629942B2 JP57187666A JP18766682A JPS629942B2 JP S629942 B2 JPS629942 B2 JP S629942B2 JP 57187666 A JP57187666 A JP 57187666A JP 18766682 A JP18766682 A JP 18766682A JP S629942 B2 JPS629942 B2 JP S629942B2
- 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.)
- Expired
Links
- 230000015654 memory Effects 0.000 claims description 153
- 238000000034 method Methods 0.000 claims description 79
- 230000004044 response Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 description 78
- 238000010586 diagram Methods 0.000 description 33
- 238000012546 transfer Methods 0.000 description 29
- 238000012545 processing Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 230000003213 activating effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 206010016531 fetishism Diseases 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency 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)
Description
本発明の技術分野
本発明はデータ処理に関し、更に具体的には多
重処理、多重レベル・メモリ構成に関する。この
メモリ構成において、各プロセツサはレベル1及
びレベル2で2個の私用キヤツシユを有し、かつ
各プロセツサはレベル1及びレベル2で共通のキ
ヤツシユを共用し、メモリ・レベル3で共通のメ
イン・メモリを共用する。 背景の技術 大部分の高能率プロセツサは、メイン・メモリ
の前方に私用の高速ハードウエア管理バツフア・
メモリを有する。それは、プロセツサ(CPU)
に対する平均メモリ・アクセス・タイムを改善す
るためである。この高速バツフアは、時には「キ
ヤツシユ」と呼ばれる。何故ならば、それは通常
プログラマに対して透明(transparent)である
からである。 共用メモリ多重処理構成において、各キヤツシ
ユが所与のCPUに対して私的であるため、各プ
ロセツサがメイン・メモリ情報の最新のコピーを
如何にして得るかという問題が存在する。或る場
合には、これはメイン・メモリに対して通過記憶
(store through)を実行し、全てのプロセツサに
対してそれを最新に保つことによつて解決され
る。この通過記憶型(ST)キヤツシユは、現在
大部分の大型CPUに採用されている。STキヤツ
シユの欠点は、全ての通過記憶(これは平均して
全てのリフアレンスの10%から20%の間にあ
る。)がメイン・メモリへ送られ、従つて顕著な
効率の低下を避けるため、大きなメイン・メモリ
帯域を必要とすることである。その結果、多重処
理(MP)のレベル(即ち、メイン・メモリを共
用するプロセツサの数)は、比較的高能率のメイ
ン・メモリが使用されない限り、概してSTキヤ
ツシユに関して非常に制限されることになる。 通過記憶によつて問題を解決するには、メイ
ン・メモリの帯域が不十分であるシステム設計に
おいては、バツフア記憶(SIB)キヤツシユが使
用される。SIBキヤツシユは、米国特許第
3735360号及び第3771137号に説明されている。 STキヤツシユは、記憶をフエツチとは異つた
ように処理する。即ち、全ての記憶は、キヤツシ
ユ中にあるアドレスされたライン(目標ライン)
から独立してメイン・メモリへ行くので、記憶ミ
スが生じる余地はない。これに対し、SIBキヤツ
シユは記憶とフエツチを同じように処理する。ラ
インは、記憶又はフエツチを実行する前に、キヤ
ツシユ中になければならない。もし目標ラインが
キヤツシユ中になければ(キヤツシユ・ミス)、
そのラインは、フエツチ又は記憶を実行する前
に、メイン・メモリからキヤツシユへ転送され
る。ラインへの全ての後の記憶はキヤツシユ中で
起るので、SIBキヤツシユは、STキヤツシユ方
式と比較して、CPUによつて必要とされるメイ
ン・メモリ帯域幅を大きく減少させる。 多重処理システムのSIBキヤツシユに伴う問題
点は、メイン・メモリが最新に維持されないこと
である。最新の情報は、しばしばキヤツシユ中に
存在する。従つて、各プロセツサが確実に最新の
メモリ情報を受取るようにするため、プロセツサ
がその私用キヤツシユへフエツチ又は記憶のリク
エストを発生し、目標ラインがキヤツシユ中に存
在しない時(ライン・ミス)、そのラインが他の
キヤツシユ(リモート・キヤツシユ)に存在する
かどうかを決定し、かつそのラインが変更された
(即ち、記憶された)かどうかを決定するため、
全てのCPUキヤツシユが質問されねばならな
い。もしラインがリモート・キヤツシユになれ
ば、そのラインはメイン・メモリからリクエスト
を出しているプロセツサのキヤツシユへフエツチ
される。もしラインがリモート・キヤツシユにあ
り、かつ変更されていなければ、そのラインはリ
モート・キヤツシユで無効にされ、有効フラグが
0へセツトされ、そのラインはメイン・メモリか
らリクエストを出しているプロセツサのキヤツシ
ユへ転送される。もしラインがリモート・キヤツ
シユにあり、かつ変更されていれば、リモート・
キヤツシユ中でラインを無効にする前に、そのラ
インは、先ずキヤツシユからメイン・メモリへ転
送されねばならない。ラインがメイン・メモリへ
転送された後に、リクエストCPUはラインをそ
のキヤツシユへフエツチし、次いで記憶又はフエ
ツチを実行する。 このようにして交差質問ヒツトの場合に起る変
更されたラインの移動は、大きなオーバヘツドを
要することとなる。何故ならば、リモート・プロ
セツサはラインをメイン・メモリへ(又は、或る
種のシステムでは、直接に他のキヤツシユへ)送
らなければならず、次いでリクエスト・プロセツ
サはそのラインをその私用キヤツシユへセツトし
なければならないからである。かくて、2つのプ
ロセツサは干渉に遭遇し、時間の損失を生じるこ
とになる。更に悪いことに、多くの場合、リモー
ト・プロセツサはラインを放棄した後、すぐにそ
のラインを要求し、プロセツサ間でラインのやり
取りが起る。 当技術分野において、いくつかの多重処理シス
テムが知られている。それらのシステムは、それ
ぞれ利点及び欠点を有する。Iwamotoその他によ
る米国特許第3581291号は、各プロセツサが私用
キヤツシユを有し、2つのプロセツサがメイン・
メモリを共用するマルチプロセツサ・システムを
開示している。メイン・メモリはキーメモリを有
し、このキーメモリは、メイン・メモリにある情
報が、各プロセツサにおいて、メモリ容量の所定
量だけ読出されかつ記憶されたかどうかを示すイ
ンデイケータを記憶している。 米国特許出願第6249526号はバツフア・キヤツ
シユを私用キヤツシユとして使用し、かつ共通の
キヤツシユ及びメイン・メモリを共用する多重処
理システムを提案している。このシステムにおい
て、私用キヤツシユによつて共用されかつ変更さ
れる情報ラインは、自動的に検出され、かつメイ
ン・メモリへ転送されることなく、共通キヤツシ
ユへ送られる。 IBM技術開示社報(IBM Technical
Disclosure Bulletin)、第22巻第2号(1979年7
月)の851頁―852頁には、非対称的マルチプロセ
ツサのための区分化されたメモリ及びスプリツト
SCEが開示される。このシステムでは、各プロ
セツサは別個の私用キヤツシユを有する。 IBM技術開示社報、第18巻第8号(1976年1
月)の2609頁―2610頁には、「2レベル記憶階層
における2ループ設計」が開示される。このシス
テムにおいて、1つの記憶ループはシステム・ク
ロツクをオフにするように動作し、他の記憶ルー
プはシステム・クロツクから独立して動作する。 IBM技術開示社報、第16巻第6号(1973年11
月)の1847頁、及び第21巻第3号(1978年8月)
の998頁には、各プロセツサが私用キヤツシユを
有するが、メイン・メモリの外に共用メモリを有
しないマルチプロセツサ・システムが開示され
る。 多重処理の技術分野で、本発明と関連のある米
国特許として、第3848324号、第3735360号、第
3845474号などがある。 本発明に従う多重処理システムは、3レベルの
メモリを含む。レベル1及びレベル2の各々に
は、各プロセツサのために私用キヤツシユが設け
られ、かつ各プロセツサによつて共用される共通
キヤツシユが設けられる。レベル3には、各プロ
セツサによつて共用されるメイン・メモリが設け
られる。ページごとに、書込フラグ及び共用フラ
グが使用される。書込まれるとともに共用される
ことのできるページは、レベル2の共用キヤツシ
ユへ移動され、次いでレベル1の共用キヤツシユ
へ移動され、各プロセツサはレベル1の共用キヤ
ツシユから実行する。他の全てのページは、リク
エストしているプロセツサのレベル1及びレベル
2の私用キヤツシユへ移動する。かくて、プロセ
ツサは、私用又は共用のレベル1キヤツシユから
実行する。このシステム設計によつて、複数のプ
ロセツサは、従来型の多重キヤツシユ・システム
に伴う交差質問オーバヘツドを生じることなく、
共通のメイン・メモリを共用することができる。
2つのキヤツシユ・レベルを利用することによつ
て、高効率プロセツサの1つ又はそれ以上の群
が、比較的低コストかつ低効率のメイン・メモリ
を共用することができる。その結果、デイスク記
憶装置へのリフアレンス率を減少するため、大容
量メイン・メモリを使用することが経済的に可能
となり、リアル・タイム対話式アプリケーシヨン
において、良好なターミナル応答時間を達成する
ことができる。 本発明の要約 本発明は、ページごとに書込フラグ及び共用フ
ラグを使用する多重処理3レベル・メモリ階層に
関する。これら2つのフラグ(フラグ・ビツト)
はソフトウエアによつてセツトされ、ソフトウエ
アは、ハードウエアによつて管理されるメモリ階
層へ、どのようにページが使用されるかというソ
フトウエアの知識を伝達することができる。基本
的には、書込まれかつ共用されることのできるペ
ージは、レベル2の共用キヤツシユへ移動させら
れ、次いでレベル1の共用キヤツシユへ移動させ
られ、プロセツサはレベル1の共用キヤツシユか
ら実行する。他の全てのページは、リクエストし
ているプロセツサのレベル2及びレベル1の私用
キヤツシユへ移動させられる。かくて、プロセツ
サは、その私用又は共用のレベル1キヤツシユか
ら実行する。これによつて、複数のプロセツサ
は、交差質問オーバヘツドを生じることなく、レ
ベル3の共通のメイン・メモリを共用することが
できる。2つのキヤツシユ・レベルによつて、高
効率プロセツサの1つ又はそれ以上の群が、比較
的低コスト及び低効率のメイン・メモリを共用す
ることができる。その結果、デイスク記憶装置へ
のリフアレンス率を減少するため、大容量のメイ
ン・メモリを使用することが経済的に可能とな
り、リアル・タイム対話式アプリケーシヨンにお
いて、良好なターミナル応答時間を達成すること
ができる。 実施例の説明 レベル1(L1)、レベル2(L2)、レベル3
(L3)より成る3レベル・メモリ階層を含む多重
処理システム2が第1図に含まれる。システム動
作を説明する前に、本発明の説明で使用される用
語の定義を以下に掲げておく。2進の1又は0
は、本明細書を通して互換的に使用される。 ページ メイン・メモリとL2キヤツシユとの間の転送
単位。L2デイレクトリイは、L2キヤツシユ中の
各ページのためにエントリイを含む。仮想記憶シ
ステムにおいては、ページは、仮想アドレスを実
アドレスへ割当てる場合、ソフトウエアによつて
管理されるブロツク・サイズである。 キヤツシユ・ライン L2キヤツシユとL1キヤツシユとの間の転送単
位。通常は、多くのCPUワードを含む。キヤツ
シユ・デイレクトリイは、キヤツシユ中の各ライ
ンのために、どのメイン・メモリ・ラインが現在
キヤツシユ中に存在するかを示すエントリイを保
持している。 キヤツシユ・ヒツト もしCPUによつてアドレスされたワードを含
むラインがキヤツシユ中に存在していれば、それ
は、リクエストの種類に従つて、フエツチ・ヒツ
ト又は記憶ヒツトと呼ばれる。キヤツシユ・ヒツ
トは、デイレクトリイ・アドレスが一致し、かつ
有効フラグが1に等しいことを要する。 キヤツシユ・ミス もしCPUによつてアドレスされたワードを含
むラインがキヤツシユ中に存在していなければ、
CPUリクエストは、リクエストの種類に応じて
フエツチ・ミス又は記憶ミスを生じる。アドレス
の不一致、又は有効ビツトがゼロに等しいとライ
ン・ミスを生じる。 ミスの場合、リフアレンスが完了される前に、
先ずリクエストされたラインがキヤツシユへ転送
されねばならない。或る種の設計では、同時に目
標ワードが直接CPUへ送られ、処理を直ちに再
開することができる。 無効化 キヤツシユから有効なラインを除去するプロセ
ツサは「無効化」と呼ばれ、有効ビツトをゼロへ
セツトすることによつて達成される。ラインが変
更されていれば(変更フラグが1に等しいことに
よつて示される)、先ずラインは、無効化(即
ち、有効フラグをゼロへセツトする)の前に、キ
ヤツシユから除去されねばならない。 交差質問 リクエストしているCPUでライン・ミスが生
じた時、他の(リモートの)CPUキヤツシユを
質問する動作を、交差質問(XI)と呼ぶ。リモ
ート・キヤツシユに目標ラインが存在すること、
又は不在であることは、それぞれXIヒツト又は
XIミスと呼ばれる。 ライン状況ビツト キヤツシユにある各ラインは、デイレクトリイ
中に、関連したエントリイを有する。このエント
リイは、現在キヤツシユにあるラインのメイン・
メモリ・アドレスを含む外に、キヤツシユに存在
するラインの状況を示すいくつかのフラグ・ビツ
トを含む。 有効(V) もしキヤツシユが、このロケーシヨンで有効な
ラインを含まなければ、Vビツトがゼロへセツト
される。例えば「電源オン」の場合、全てのVビ
ツトはゼロへリセツトされ、全てのラインが無効
であることを示す。ゼロの有効ビツトは、常にラ
イン・ミスを生じる。ライン・ミスが生じると、
適当な有効ビツトがオフにされ(それはすでにオ
フになつているかも知れない)、新しいラインが
キヤツシユへ持つて来られると、上記有効ビツト
はオンにされる。全てのキヤツシユはラインごと
に有効ビツトを有し、L2キヤツシユの場合、ペ
ージごとにVビツトが存在する。 変更(CH) もし私用キヤツシユ中のラインが記憶される
と、そのCHビツトが1へセツトされ、それがメ
イン・メモリの内容に関して変更されたことを示
す。キヤツシユ中の全てのラインが変更されるた
め、キヤツシユ中には、ラインごとの変更ビツト
は必要とされない。CHビツトがゼロへセツトさ
れるのは、ラインがメモリから私用キヤツシユへ
持つて来られた時である。「電源オン」のような
主たるリセツトは、全てのCHビツトをゼロへリ
セツトする。変更されたラインがL1キヤツシユ
からL2キヤツシユへ動かされた時、関連したペ
ージのための変更フラグが1へセツトされる。 多重処理システム2は、オペランド及び命令
を、レベル3の共用メイン・メモリ4に含んでい
る。メイン・メモリ4は、システム制御エレメン
ト6を介して、複数のプロセツサ群との間で、命
令及びオペランドを交換する。入出力バス8は、
システム制御エレメント6を、直接アクセス記憶
装置(DASD)のような複数の周辺装置へ接続す
る。更に、システム制御エレメント6は、L2及
びL1の私用キヤツシユ及び共用キヤツシユを介
して、プロセツサA及びBより成る第1のプロセ
ツサ群へ接続される。システム制御エレメント6
は、バス10を介して他の同様なプロセツサ群へ
接続される。プロセツサ群の各々は、2個を超え
るプロセツサを含んでよいが、説明を簡単にする
ため、2個のプロセツサが示される。追加的プロ
セツサをどのように付加するかの判断基準は、共
用されるL1及びL2キヤツシユの帯域幅の利用状
況による。利用状況が50%を超えるまでは、プロ
セツサを単一のL1共用キヤツシユへ付加するの
が、一般的に安価であり効率的である。 各プロセツサは、情報交換の目的で、L1の私
用キヤツシユ及び共用キヤツシユと直接に通信す
る。レベル1の共用キヤツシユは、多重処理プロ
セツサ群の各プロセツサによつて共用される。情
報のラインはL1のキヤツシユの各々に記憶され
ているが、L2における私用キヤツシユ及び共用
キヤツシユは、情報のページを含む。プロセツサ
Aは、L1でその私用キヤツシユ12及び共用キ
ヤツシユ14と通信し、データ交換は線16及び
18を介して実行される。もしリクエストされた
情報ラインがキヤツシユ12又は14のいずれに
も存在しなければ、L2における私用キヤツシユ
20及び共用キヤツシユ22が、それぞれ線24
及び26を介して質問される。それは、リクエス
トされたラインを含む情報ページが、それらのキ
ヤツシユに存在しているかどうかを調べるためで
ある。もし情報ページがそれらのキヤツシユに存
在していれば、リクエストされた情報ラインが、
L1のキヤツシユ12又は14へ転送される。他
方、もし情報ページがL2の私用キヤツシユ又は
共用キヤツシユに存在していなければ、L3のメ
イン・メモリから私用キヤツシユ20又は共用キ
ヤツシユ22へ情報ページの転送をリクエストす
るため、システム制御エレメント6が質問され
る。メイン・メモリ4に存在する情報ページの
各々は、書込フラグ及び共用フラグを含む。これ
らのフラグは、リクエストされた情報ページが
L2の私用キヤツシユ又は共用キヤツシユへ与え
られるべきか否かを決定する。もしリクエストさ
れた情報が書込可能及び共用可能であれば(書込
フラグ及び共用フラグの各々が2進の1、即ち
(1.1)である)、リクエストされた情報ページ
は、メイン・メモリ4からシステム制御エレメン
ト6を介して共用キヤツシユ22へ転送される。
他の全ての場合、リクエストされた情報ページ
は、L2の私用キヤツシユ20へ転送される。こ
れが起るのは、(1)情報ページが読出専用かつ共用
可能でなく、書込フラグ及び共用フラグの双方が
共に2進の0である時(即ち(0、0))、(2)書込
フラグ及び共用フラグが読出専用かつ共用可能で
あつて、書込フラグが2進の0であり、共用フラ
グが2進の1である時(即ち、(0、1))、(3)情
報ページが書込可能及び共同可能でなく、書込フ
ラグが2進の1であり、共用フラグが2進の0で
ある時(即ち、(1、0))である。ここで、カツ
コの中の最初の2進値は書込フラグ・ビツトを示
し、次の2進値は共用フラグ・ビツトを示す。 プロセツサBは、線28及び31を介して、
L1の私用キヤツシユ27及び共用キヤツシユ1
4とデータを交換する。もしリクエストされた情
報ラインが共用キヤツシユ14又は私用キヤツシ
ユ27のいずれにも存在していなければ、リクエ
ストされたラインを含む情報ページが、線32及
び26を介してL2におけるプロセツサBの私用
キヤツシユ30及び共用キヤツシユ22からリク
エストされる。もしリクエストされた情報ページ
が共用キヤツシユ22又は私用キヤツシユ30の
いずれにも存在していなければ、L2の私用キヤ
ツシユ30又は共用キヤツシユ22のいずれかへ
リクエストされた情報ページを転送するため、
L3のメイン・メモリ4がシステム制御エレメン
ト6を介して質問される。情報ページは、プロセ
ツサAについて説明したように、書込フラグ及び
共用フラグの状態により決定されたところに従つ
て転送される。 第2図は、多重処理システム2のためのシステ
ム・レベル・バス接続を示す詳細ブロツク図であ
る。第2図は、L1及びL2における私用キヤツシ
ユ及び共用キヤツシユの各々に関連したキヤツシ
ユ・コントロール兼デイレクトリイを示してい
る。L1の私用キヤツシユ12に対するキヤツシ
ユ・コントロール兼デイレクトリイ34は、線3
6を介してプロセツサAへ接続され、かつ線40
を介してL2の私用キヤツシユ20のためのキヤ
ツシユ・コントロール兼デイレクトリイ38へ接
続され、線42を介してシステム制御エレメント
6へ接続される。プロセツサAは、線46を介し
てL1の共用キヤツシユ14に対するキヤツシ
ユ・コントロール兼デイレクトリイ44へ接続さ
れ、線50を介してL2の共用キヤツシユ22に
対するキヤツシユ・コントロール兼デイレクトリ
イ48へ接続され、線52を介してシステム制御
エレメント6へ接続される。 プロセツサBは、線56を介してL1の私用キ
ヤツシユ27に対するキヤツシユ・コントロール
兼デイレクトリイ54へ接続され、かつ線58を
介してL1の共用キヤツシユ14に対するキヤツ
シユ・コントロール兼デイレクトリイ44へ接続
される。キヤツシユ・コントロール兼デイレクト
リイ54は、線62を介してL2の私用キヤツシ
ユ30に対するキヤツシユ・コントロール兼デイ
レクトリイ60へ接続され、かつ線64を介して
システム制御エレメント6へ接続される。キヤツ
シユ・コントロール兼デイレクトリイは読出指令
及び書込指令に応答するが、それは、リクエスト
された情報ライン又は情報ページがキヤツシユに
存在するかどうかを決定し、又は第1図を参照し
て説明したように、情報ページがメイン・メモリ
からフエツチされねばならないかどうかを決定す
るためである。第2図のはデータ・バスを示
し、はアドレス兼制御線を示す。 次の表は、システム制御エレメント6に存在す
るキヤツシユ制御アルゴリズムが、どのようにし
てメイン・メモリ4からフエツチされた情報ペー
ジにある書込ビツト(書込フラグ)及び共用ビツ
ト(共用フラグ)のセツトを解釈し使用するかを
示す。もし双方のビツトがゼロであれば、要求に
応じて、ページがリクエストしているプロセツサ
のL2私用キヤツシユへ移動され、プロセツサに
よつてリクエストされたライン(これはこの情報
ページに存在し目標ラインと呼ばれる)がL1私
用キヤツシユへ移動され、プロセツサはL1私用
キヤツシユからリクエストしたワード(目標ワー
ド)をアクセスする。
重処理、多重レベル・メモリ構成に関する。この
メモリ構成において、各プロセツサはレベル1及
びレベル2で2個の私用キヤツシユを有し、かつ
各プロセツサはレベル1及びレベル2で共通のキ
ヤツシユを共用し、メモリ・レベル3で共通のメ
イン・メモリを共用する。 背景の技術 大部分の高能率プロセツサは、メイン・メモリ
の前方に私用の高速ハードウエア管理バツフア・
メモリを有する。それは、プロセツサ(CPU)
に対する平均メモリ・アクセス・タイムを改善す
るためである。この高速バツフアは、時には「キ
ヤツシユ」と呼ばれる。何故ならば、それは通常
プログラマに対して透明(transparent)である
からである。 共用メモリ多重処理構成において、各キヤツシ
ユが所与のCPUに対して私的であるため、各プ
ロセツサがメイン・メモリ情報の最新のコピーを
如何にして得るかという問題が存在する。或る場
合には、これはメイン・メモリに対して通過記憶
(store through)を実行し、全てのプロセツサに
対してそれを最新に保つことによつて解決され
る。この通過記憶型(ST)キヤツシユは、現在
大部分の大型CPUに採用されている。STキヤツ
シユの欠点は、全ての通過記憶(これは平均して
全てのリフアレンスの10%から20%の間にあ
る。)がメイン・メモリへ送られ、従つて顕著な
効率の低下を避けるため、大きなメイン・メモリ
帯域を必要とすることである。その結果、多重処
理(MP)のレベル(即ち、メイン・メモリを共
用するプロセツサの数)は、比較的高能率のメイ
ン・メモリが使用されない限り、概してSTキヤ
ツシユに関して非常に制限されることになる。 通過記憶によつて問題を解決するには、メイ
ン・メモリの帯域が不十分であるシステム設計に
おいては、バツフア記憶(SIB)キヤツシユが使
用される。SIBキヤツシユは、米国特許第
3735360号及び第3771137号に説明されている。 STキヤツシユは、記憶をフエツチとは異つた
ように処理する。即ち、全ての記憶は、キヤツシ
ユ中にあるアドレスされたライン(目標ライン)
から独立してメイン・メモリへ行くので、記憶ミ
スが生じる余地はない。これに対し、SIBキヤツ
シユは記憶とフエツチを同じように処理する。ラ
インは、記憶又はフエツチを実行する前に、キヤ
ツシユ中になければならない。もし目標ラインが
キヤツシユ中になければ(キヤツシユ・ミス)、
そのラインは、フエツチ又は記憶を実行する前
に、メイン・メモリからキヤツシユへ転送され
る。ラインへの全ての後の記憶はキヤツシユ中で
起るので、SIBキヤツシユは、STキヤツシユ方
式と比較して、CPUによつて必要とされるメイ
ン・メモリ帯域幅を大きく減少させる。 多重処理システムのSIBキヤツシユに伴う問題
点は、メイン・メモリが最新に維持されないこと
である。最新の情報は、しばしばキヤツシユ中に
存在する。従つて、各プロセツサが確実に最新の
メモリ情報を受取るようにするため、プロセツサ
がその私用キヤツシユへフエツチ又は記憶のリク
エストを発生し、目標ラインがキヤツシユ中に存
在しない時(ライン・ミス)、そのラインが他の
キヤツシユ(リモート・キヤツシユ)に存在する
かどうかを決定し、かつそのラインが変更された
(即ち、記憶された)かどうかを決定するため、
全てのCPUキヤツシユが質問されねばならな
い。もしラインがリモート・キヤツシユになれ
ば、そのラインはメイン・メモリからリクエスト
を出しているプロセツサのキヤツシユへフエツチ
される。もしラインがリモート・キヤツシユにあ
り、かつ変更されていなければ、そのラインはリ
モート・キヤツシユで無効にされ、有効フラグが
0へセツトされ、そのラインはメイン・メモリか
らリクエストを出しているプロセツサのキヤツシ
ユへ転送される。もしラインがリモート・キヤツ
シユにあり、かつ変更されていれば、リモート・
キヤツシユ中でラインを無効にする前に、そのラ
インは、先ずキヤツシユからメイン・メモリへ転
送されねばならない。ラインがメイン・メモリへ
転送された後に、リクエストCPUはラインをそ
のキヤツシユへフエツチし、次いで記憶又はフエ
ツチを実行する。 このようにして交差質問ヒツトの場合に起る変
更されたラインの移動は、大きなオーバヘツドを
要することとなる。何故ならば、リモート・プロ
セツサはラインをメイン・メモリへ(又は、或る
種のシステムでは、直接に他のキヤツシユへ)送
らなければならず、次いでリクエスト・プロセツ
サはそのラインをその私用キヤツシユへセツトし
なければならないからである。かくて、2つのプ
ロセツサは干渉に遭遇し、時間の損失を生じるこ
とになる。更に悪いことに、多くの場合、リモー
ト・プロセツサはラインを放棄した後、すぐにそ
のラインを要求し、プロセツサ間でラインのやり
取りが起る。 当技術分野において、いくつかの多重処理シス
テムが知られている。それらのシステムは、それ
ぞれ利点及び欠点を有する。Iwamotoその他によ
る米国特許第3581291号は、各プロセツサが私用
キヤツシユを有し、2つのプロセツサがメイン・
メモリを共用するマルチプロセツサ・システムを
開示している。メイン・メモリはキーメモリを有
し、このキーメモリは、メイン・メモリにある情
報が、各プロセツサにおいて、メモリ容量の所定
量だけ読出されかつ記憶されたかどうかを示すイ
ンデイケータを記憶している。 米国特許出願第6249526号はバツフア・キヤツ
シユを私用キヤツシユとして使用し、かつ共通の
キヤツシユ及びメイン・メモリを共用する多重処
理システムを提案している。このシステムにおい
て、私用キヤツシユによつて共用されかつ変更さ
れる情報ラインは、自動的に検出され、かつメイ
ン・メモリへ転送されることなく、共通キヤツシ
ユへ送られる。 IBM技術開示社報(IBM Technical
Disclosure Bulletin)、第22巻第2号(1979年7
月)の851頁―852頁には、非対称的マルチプロセ
ツサのための区分化されたメモリ及びスプリツト
SCEが開示される。このシステムでは、各プロ
セツサは別個の私用キヤツシユを有する。 IBM技術開示社報、第18巻第8号(1976年1
月)の2609頁―2610頁には、「2レベル記憶階層
における2ループ設計」が開示される。このシス
テムにおいて、1つの記憶ループはシステム・ク
ロツクをオフにするように動作し、他の記憶ルー
プはシステム・クロツクから独立して動作する。 IBM技術開示社報、第16巻第6号(1973年11
月)の1847頁、及び第21巻第3号(1978年8月)
の998頁には、各プロセツサが私用キヤツシユを
有するが、メイン・メモリの外に共用メモリを有
しないマルチプロセツサ・システムが開示され
る。 多重処理の技術分野で、本発明と関連のある米
国特許として、第3848324号、第3735360号、第
3845474号などがある。 本発明に従う多重処理システムは、3レベルの
メモリを含む。レベル1及びレベル2の各々に
は、各プロセツサのために私用キヤツシユが設け
られ、かつ各プロセツサによつて共用される共通
キヤツシユが設けられる。レベル3には、各プロ
セツサによつて共用されるメイン・メモリが設け
られる。ページごとに、書込フラグ及び共用フラ
グが使用される。書込まれるとともに共用される
ことのできるページは、レベル2の共用キヤツシ
ユへ移動され、次いでレベル1の共用キヤツシユ
へ移動され、各プロセツサはレベル1の共用キヤ
ツシユから実行する。他の全てのページは、リク
エストしているプロセツサのレベル1及びレベル
2の私用キヤツシユへ移動する。かくて、プロセ
ツサは、私用又は共用のレベル1キヤツシユから
実行する。このシステム設計によつて、複数のプ
ロセツサは、従来型の多重キヤツシユ・システム
に伴う交差質問オーバヘツドを生じることなく、
共通のメイン・メモリを共用することができる。
2つのキヤツシユ・レベルを利用することによつ
て、高効率プロセツサの1つ又はそれ以上の群
が、比較的低コストかつ低効率のメイン・メモリ
を共用することができる。その結果、デイスク記
憶装置へのリフアレンス率を減少するため、大容
量メイン・メモリを使用することが経済的に可能
となり、リアル・タイム対話式アプリケーシヨン
において、良好なターミナル応答時間を達成する
ことができる。 本発明の要約 本発明は、ページごとに書込フラグ及び共用フ
ラグを使用する多重処理3レベル・メモリ階層に
関する。これら2つのフラグ(フラグ・ビツト)
はソフトウエアによつてセツトされ、ソフトウエ
アは、ハードウエアによつて管理されるメモリ階
層へ、どのようにページが使用されるかというソ
フトウエアの知識を伝達することができる。基本
的には、書込まれかつ共用されることのできるペ
ージは、レベル2の共用キヤツシユへ移動させら
れ、次いでレベル1の共用キヤツシユへ移動させ
られ、プロセツサはレベル1の共用キヤツシユか
ら実行する。他の全てのページは、リクエストし
ているプロセツサのレベル2及びレベル1の私用
キヤツシユへ移動させられる。かくて、プロセツ
サは、その私用又は共用のレベル1キヤツシユか
ら実行する。これによつて、複数のプロセツサ
は、交差質問オーバヘツドを生じることなく、レ
ベル3の共通のメイン・メモリを共用することが
できる。2つのキヤツシユ・レベルによつて、高
効率プロセツサの1つ又はそれ以上の群が、比較
的低コスト及び低効率のメイン・メモリを共用す
ることができる。その結果、デイスク記憶装置へ
のリフアレンス率を減少するため、大容量のメイ
ン・メモリを使用することが経済的に可能とな
り、リアル・タイム対話式アプリケーシヨンにお
いて、良好なターミナル応答時間を達成すること
ができる。 実施例の説明 レベル1(L1)、レベル2(L2)、レベル3
(L3)より成る3レベル・メモリ階層を含む多重
処理システム2が第1図に含まれる。システム動
作を説明する前に、本発明の説明で使用される用
語の定義を以下に掲げておく。2進の1又は0
は、本明細書を通して互換的に使用される。 ページ メイン・メモリとL2キヤツシユとの間の転送
単位。L2デイレクトリイは、L2キヤツシユ中の
各ページのためにエントリイを含む。仮想記憶シ
ステムにおいては、ページは、仮想アドレスを実
アドレスへ割当てる場合、ソフトウエアによつて
管理されるブロツク・サイズである。 キヤツシユ・ライン L2キヤツシユとL1キヤツシユとの間の転送単
位。通常は、多くのCPUワードを含む。キヤツ
シユ・デイレクトリイは、キヤツシユ中の各ライ
ンのために、どのメイン・メモリ・ラインが現在
キヤツシユ中に存在するかを示すエントリイを保
持している。 キヤツシユ・ヒツト もしCPUによつてアドレスされたワードを含
むラインがキヤツシユ中に存在していれば、それ
は、リクエストの種類に従つて、フエツチ・ヒツ
ト又は記憶ヒツトと呼ばれる。キヤツシユ・ヒツ
トは、デイレクトリイ・アドレスが一致し、かつ
有効フラグが1に等しいことを要する。 キヤツシユ・ミス もしCPUによつてアドレスされたワードを含
むラインがキヤツシユ中に存在していなければ、
CPUリクエストは、リクエストの種類に応じて
フエツチ・ミス又は記憶ミスを生じる。アドレス
の不一致、又は有効ビツトがゼロに等しいとライ
ン・ミスを生じる。 ミスの場合、リフアレンスが完了される前に、
先ずリクエストされたラインがキヤツシユへ転送
されねばならない。或る種の設計では、同時に目
標ワードが直接CPUへ送られ、処理を直ちに再
開することができる。 無効化 キヤツシユから有効なラインを除去するプロセ
ツサは「無効化」と呼ばれ、有効ビツトをゼロへ
セツトすることによつて達成される。ラインが変
更されていれば(変更フラグが1に等しいことに
よつて示される)、先ずラインは、無効化(即
ち、有効フラグをゼロへセツトする)の前に、キ
ヤツシユから除去されねばならない。 交差質問 リクエストしているCPUでライン・ミスが生
じた時、他の(リモートの)CPUキヤツシユを
質問する動作を、交差質問(XI)と呼ぶ。リモ
ート・キヤツシユに目標ラインが存在すること、
又は不在であることは、それぞれXIヒツト又は
XIミスと呼ばれる。 ライン状況ビツト キヤツシユにある各ラインは、デイレクトリイ
中に、関連したエントリイを有する。このエント
リイは、現在キヤツシユにあるラインのメイン・
メモリ・アドレスを含む外に、キヤツシユに存在
するラインの状況を示すいくつかのフラグ・ビツ
トを含む。 有効(V) もしキヤツシユが、このロケーシヨンで有効な
ラインを含まなければ、Vビツトがゼロへセツト
される。例えば「電源オン」の場合、全てのVビ
ツトはゼロへリセツトされ、全てのラインが無効
であることを示す。ゼロの有効ビツトは、常にラ
イン・ミスを生じる。ライン・ミスが生じると、
適当な有効ビツトがオフにされ(それはすでにオ
フになつているかも知れない)、新しいラインが
キヤツシユへ持つて来られると、上記有効ビツト
はオンにされる。全てのキヤツシユはラインごと
に有効ビツトを有し、L2キヤツシユの場合、ペ
ージごとにVビツトが存在する。 変更(CH) もし私用キヤツシユ中のラインが記憶される
と、そのCHビツトが1へセツトされ、それがメ
イン・メモリの内容に関して変更されたことを示
す。キヤツシユ中の全てのラインが変更されるた
め、キヤツシユ中には、ラインごとの変更ビツト
は必要とされない。CHビツトがゼロへセツトさ
れるのは、ラインがメモリから私用キヤツシユへ
持つて来られた時である。「電源オン」のような
主たるリセツトは、全てのCHビツトをゼロへリ
セツトする。変更されたラインがL1キヤツシユ
からL2キヤツシユへ動かされた時、関連したペ
ージのための変更フラグが1へセツトされる。 多重処理システム2は、オペランド及び命令
を、レベル3の共用メイン・メモリ4に含んでい
る。メイン・メモリ4は、システム制御エレメン
ト6を介して、複数のプロセツサ群との間で、命
令及びオペランドを交換する。入出力バス8は、
システム制御エレメント6を、直接アクセス記憶
装置(DASD)のような複数の周辺装置へ接続す
る。更に、システム制御エレメント6は、L2及
びL1の私用キヤツシユ及び共用キヤツシユを介
して、プロセツサA及びBより成る第1のプロセ
ツサ群へ接続される。システム制御エレメント6
は、バス10を介して他の同様なプロセツサ群へ
接続される。プロセツサ群の各々は、2個を超え
るプロセツサを含んでよいが、説明を簡単にする
ため、2個のプロセツサが示される。追加的プロ
セツサをどのように付加するかの判断基準は、共
用されるL1及びL2キヤツシユの帯域幅の利用状
況による。利用状況が50%を超えるまでは、プロ
セツサを単一のL1共用キヤツシユへ付加するの
が、一般的に安価であり効率的である。 各プロセツサは、情報交換の目的で、L1の私
用キヤツシユ及び共用キヤツシユと直接に通信す
る。レベル1の共用キヤツシユは、多重処理プロ
セツサ群の各プロセツサによつて共用される。情
報のラインはL1のキヤツシユの各々に記憶され
ているが、L2における私用キヤツシユ及び共用
キヤツシユは、情報のページを含む。プロセツサ
Aは、L1でその私用キヤツシユ12及び共用キ
ヤツシユ14と通信し、データ交換は線16及び
18を介して実行される。もしリクエストされた
情報ラインがキヤツシユ12又は14のいずれに
も存在しなければ、L2における私用キヤツシユ
20及び共用キヤツシユ22が、それぞれ線24
及び26を介して質問される。それは、リクエス
トされたラインを含む情報ページが、それらのキ
ヤツシユに存在しているかどうかを調べるためで
ある。もし情報ページがそれらのキヤツシユに存
在していれば、リクエストされた情報ラインが、
L1のキヤツシユ12又は14へ転送される。他
方、もし情報ページがL2の私用キヤツシユ又は
共用キヤツシユに存在していなければ、L3のメ
イン・メモリから私用キヤツシユ20又は共用キ
ヤツシユ22へ情報ページの転送をリクエストす
るため、システム制御エレメント6が質問され
る。メイン・メモリ4に存在する情報ページの
各々は、書込フラグ及び共用フラグを含む。これ
らのフラグは、リクエストされた情報ページが
L2の私用キヤツシユ又は共用キヤツシユへ与え
られるべきか否かを決定する。もしリクエストさ
れた情報が書込可能及び共用可能であれば(書込
フラグ及び共用フラグの各々が2進の1、即ち
(1.1)である)、リクエストされた情報ページ
は、メイン・メモリ4からシステム制御エレメン
ト6を介して共用キヤツシユ22へ転送される。
他の全ての場合、リクエストされた情報ページ
は、L2の私用キヤツシユ20へ転送される。こ
れが起るのは、(1)情報ページが読出専用かつ共用
可能でなく、書込フラグ及び共用フラグの双方が
共に2進の0である時(即ち(0、0))、(2)書込
フラグ及び共用フラグが読出専用かつ共用可能で
あつて、書込フラグが2進の0であり、共用フラ
グが2進の1である時(即ち、(0、1))、(3)情
報ページが書込可能及び共同可能でなく、書込フ
ラグが2進の1であり、共用フラグが2進の0で
ある時(即ち、(1、0))である。ここで、カツ
コの中の最初の2進値は書込フラグ・ビツトを示
し、次の2進値は共用フラグ・ビツトを示す。 プロセツサBは、線28及び31を介して、
L1の私用キヤツシユ27及び共用キヤツシユ1
4とデータを交換する。もしリクエストされた情
報ラインが共用キヤツシユ14又は私用キヤツシ
ユ27のいずれにも存在していなければ、リクエ
ストされたラインを含む情報ページが、線32及
び26を介してL2におけるプロセツサBの私用
キヤツシユ30及び共用キヤツシユ22からリク
エストされる。もしリクエストされた情報ページ
が共用キヤツシユ22又は私用キヤツシユ30の
いずれにも存在していなければ、L2の私用キヤ
ツシユ30又は共用キヤツシユ22のいずれかへ
リクエストされた情報ページを転送するため、
L3のメイン・メモリ4がシステム制御エレメン
ト6を介して質問される。情報ページは、プロセ
ツサAについて説明したように、書込フラグ及び
共用フラグの状態により決定されたところに従つ
て転送される。 第2図は、多重処理システム2のためのシステ
ム・レベル・バス接続を示す詳細ブロツク図であ
る。第2図は、L1及びL2における私用キヤツシ
ユ及び共用キヤツシユの各々に関連したキヤツシ
ユ・コントロール兼デイレクトリイを示してい
る。L1の私用キヤツシユ12に対するキヤツシ
ユ・コントロール兼デイレクトリイ34は、線3
6を介してプロセツサAへ接続され、かつ線40
を介してL2の私用キヤツシユ20のためのキヤ
ツシユ・コントロール兼デイレクトリイ38へ接
続され、線42を介してシステム制御エレメント
6へ接続される。プロセツサAは、線46を介し
てL1の共用キヤツシユ14に対するキヤツシ
ユ・コントロール兼デイレクトリイ44へ接続さ
れ、線50を介してL2の共用キヤツシユ22に
対するキヤツシユ・コントロール兼デイレクトリ
イ48へ接続され、線52を介してシステム制御
エレメント6へ接続される。 プロセツサBは、線56を介してL1の私用キ
ヤツシユ27に対するキヤツシユ・コントロール
兼デイレクトリイ54へ接続され、かつ線58を
介してL1の共用キヤツシユ14に対するキヤツ
シユ・コントロール兼デイレクトリイ44へ接続
される。キヤツシユ・コントロール兼デイレクト
リイ54は、線62を介してL2の私用キヤツシ
ユ30に対するキヤツシユ・コントロール兼デイ
レクトリイ60へ接続され、かつ線64を介して
システム制御エレメント6へ接続される。キヤツ
シユ・コントロール兼デイレクトリイは読出指令
及び書込指令に応答するが、それは、リクエスト
された情報ライン又は情報ページがキヤツシユに
存在するかどうかを決定し、又は第1図を参照し
て説明したように、情報ページがメイン・メモリ
からフエツチされねばならないかどうかを決定す
るためである。第2図のはデータ・バスを示
し、はアドレス兼制御線を示す。 次の表は、システム制御エレメント6に存在す
るキヤツシユ制御アルゴリズムが、どのようにし
てメイン・メモリ4からフエツチされた情報ペー
ジにある書込ビツト(書込フラグ)及び共用ビツ
ト(共用フラグ)のセツトを解釈し使用するかを
示す。もし双方のビツトがゼロであれば、要求に
応じて、ページがリクエストしているプロセツサ
のL2私用キヤツシユへ移動され、プロセツサに
よつてリクエストされたライン(これはこの情報
ページに存在し目標ラインと呼ばれる)がL1私
用キヤツシユへ移動され、プロセツサはL1私用
キヤツシユからリクエストしたワード(目標ワー
ド)をアクセスする。
【表】
もし他のプロセツサがこの情報ページへアクセ
スしようと試みると、共用ビツトのゼロ状態は、
「プログラム・チエツク」信号をリクエスト・プ
ロセツサへ送り、ページ又はラインは転送されな
い。もしプロセツサがこの情報ページへの書込み
(記憶)を試みると、その書込みはブロツクさ
れ、プログラム・チエツク信号がリクエスト・プ
ロセツサへ送られる。本来、これは、1個だけの
プロセツサの私用キヤツシユに存在することので
きる「非共用」かつ「読出専用」のページであ
る。もし書込ビツトがゼロであり、共用ビツトが
1であれば、ページ及び目標ラインがリクエス
ト・プロセツサのL2及びL1の私用キヤツシユへ
動かされる。もし他のプロセツサがこの同じペー
ジをリクエストすると、それはそのプロセツサの
L2キヤツシユへ移され、目標ラインはそのL1の
私用キヤツシユへ移される。しかし、もしいずれ
かのプロセツサがページへの書込み(記憶)を試
みると、その書込みはブロツクされ、プログラ
ム・チエツク信号がリクエスト・プロセツサへ送
られる。これは、共用されることのできる「読出
専用」ページであり、従つてコピーの各プロセツ
サの私用キヤツシユに存在することができるが、
記憶は許されない。一般的には、命令はそのよう
に(即ち、共用可能、読出専用)とマークされ
る。 もし書込ビツトが1であり、共用ビツトが0で
あれば、このページはリクエスト・プロセツサの
L2の私用キヤツシユへ移され、次いで目標ライ
ンがそのL1の私用キヤツシユへ転送される。も
し他のプロセツサがこのページへのアクセスを試
みると、そのアクセスはブロツクされ、プログラ
ム・チエツク信号がリクエスト・プロセツサへ送
られる。しかし、この情報ページに対する記憶は
許される。 もし書込ビツト及び共用ビツトの双方が1であ
れば、この情報ページはL2の共用キヤツシユへ
移され、この情報ページからの目標ラインがL1
の共用キヤツシユへ転送される。全てのプロセツ
サはそこからラインをフエツチするか、又はそこ
へラインを記憶してよい。 同じプロセツサ群に属する他のプロセツサか
ら、この情報ページに対してリクエストがなされ
ると、L2の共用キヤツシユ中にリクエストされ
たページが発見され、L1の共用キヤツシユ中に
目標ライン及びワードが発見される。その結果、
共用及び書込みが許される。 第4・1図、第4・2図、第5・1図、第5・
2図は、フエツチ・リクエスト及び記憶リクエス
トに関してシステム動作を詳細に示すプロセツ
サ・メモリの論理フローを示す。 ここで、プロセツサ・メモリ「フエツチ・リク
エスト」の論理フロー図である第44・1図及び
第4・2図を参照する。所与のプロセツサからの
「フエツチ・リクエスト」に応答して、プロセツ
サは線68を介して論理ブロツク70及び72へ
「フエツチ・リクエスト」を出す。それは、リク
エストされた情報ラインが、リクエスト・プロセ
ツサのL1私用キヤツシユ又はL1共用キヤツシユ
中に存在するかどうかを決定するためである。論
理ブロツク70で、「L1私用キヤツシユでライ
ン・ヒツトが生じるか」の質問がなされる。もし
答がイエスであれば、論理ブロツク73で示され
るように、リクエスト・プロセツサのL1私用キ
ヤツシユからラインがフエツチされ、そのライン
がリクエスト・プロセツサへ転送され、線74で
示されるように、メモリ・フエツチ・リクエスト
の終りが起る。他方、線76で示されるように、
L1私用キヤツシユでライン・ヒツトが生じなけ
れば、論理プロセスは、論理ブロツク72におけ
る「フエツチ・リクエスト」の出力を待機する論
理ブロツク78へ行く。論理ブロツク72では、
「L1共用キヤツシユでライン・ヒツトが生じる
か」の質問がなされる。もし答がイエスであれ
ば、論理ブロツク80で示されるように、そのラ
インがL1共用キヤツシユからフエツチされ、L1
共用キヤツシユからリクエスト・プロセツサへラ
インが転送され、線74で示されるように、メモ
リ・フエツチ・リクエストの終りが起る。他方、
答がノーであれば、論理プロセスは線82を介し
て論理ブロツク78へ進む。 論理ブロツク70及び72でなされた論理質問
への答が共にノーであれば、これはリクエストさ
れたラインがL1に存在しないことを示し、論理
プロセスは論理ブロツク78から論理ブロツク8
4及び86へ進む。それは、リクエストされたラ
インを含む情報ページが、L2の私用又は共用キ
ヤツシユに記憶されているかどうかを決定するた
めである。論理ブロツク84で、「L2の私用キヤ
ツシユでライン・ヒツトが生じるか」の質問がな
される。もし答がイエスであれば、論理プロセス
は論理ブロツク88へ進む。論理ブロツク88
は、リクエストされた情報ラインをL2私用キヤ
ツシユ(P―L2)からL1私用キヤツシユ(P―
L1)へ移し、次いで論理プロセスは論理ブロツ
ク73へ進み、次いでシステム論理は前に説明し
たように進行する。もし答が線90で示されるよ
うにノーであれば、論理プロセスは論理ブロツク
92へ進み、論理ブロツク86における論理プロ
セスの出力を待機する。 論理ブロツク86で、「L2共用キヤツシユでラ
イン・ヒツトが生じるか」の質問がなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク94へ進む。論理ブロツク94は、リクエス
トされたラインがL2共用キヤツシユ(S―L2)
からL1共用キヤツシユ(S―L1)へ移されるこ
とを示し、次いで論理プロセスは前述したように
進行する。もし答が線96で示されるようにノー
であれば、論理プロセスは論理ブロツク92へ進
む。もしラインがL2の私用又は共用キヤツシユ
中に存在しなければ、論理プロセスは論理ブロツ
ク92から論理ブロツク98へ進む。それは、メ
イン・メモリ及びシステム制御エレメント中のタ
グ・アレイにアクセスするためである。 タグ・アレイは、メイン・メモリ情報のページ
ごとに8ビツトを含む。最左方からの2ビツト
は、書込フラグ(書込ビツト)及び共用フラグ
(共用ビツト)である。残りの6ビツトはプロセ
ツサ識別フラグ(識別ビツト)であつて、これは
関連したプロセツサの私用のL2又はL1のキヤツ
シユにページが存在するかどうかを示す。もしペ
ージがプロセツサの私用キヤツシユにあれば、ビ
ツトは1であり、そうでなければ、それはゼロで
ある。かくて定義されたタグ・ビツトは6つの多
重処理を実行するのに十分である。次いで論理プ
ロセスは論理ブロツク100へ進む。論理ブロツ
ク1000では、「共用フラグは1に等しいか」
の質問がなされる。もし答がイエスであれば、論
理プロセスは論理ブロツク102へ進み、答がノ
ーがあれば、論理プロセスは論理ブロツク104
へ進む。 論理ブロツク100でなされた質問への答がイ
エスであれば、論理ブロツク102で「書込フラ
グは1に等しいか」の質問がなされる。もし答が
イエスであれば、論理プロセスは論理ブロツク1
06へ進む。論理ブロツク106は、目標ライン
を含む情報ページをメイン・メモリからL2共用
キヤツシユ(S―L2)へ移すことを示す。次い
で、論理プロセスは、論理ブロツク94で示され
るように、リクエストされたページのラインを、
L2共用キヤツシユからL1共用キヤツシユへ移
し、次いで論理プロセスは前述したように進行す
る。 書込フラグ及び共用フラグの双方が1である
時、情報ページはL2共用キヤツシユへ移され、
次いでそこに含まれる目標ラインがL1共用キヤ
ツシユへ移され、そこから目標ラインがリクエス
ト・プロセツサへフエツチされることに注意され
たい。もし論理ブロツク102の質問に対する答
が、線108に示されるようにノーであれば、論
理ブロツク110で示されるように、リクエスト
された情報ページはメイン・メモリからL2私用
キヤツシユへ移される。そしてCPUビツトがオ
ンにされ、論理プロセスは前述したように進行す
る。 もし論理ブロツク100でなされた質問に対す
る答がノーであれば、論理プロセスは論理ブロツ
ク104へ進行し、そこで「CPUビツトが1に
等しいか」の質問がなされる。もしいずれかの
CPUビツトが1であれば、論理ブロツク112
で示されるように、「プログラム・チエツク」信
号がリクエスト・プロセツサへ転送される。もし
全てのCPUビツトがゼロであれば、論理ブロツ
ク110で示されるように、ページがL2私用キ
ヤツシユへ移され、CPUビツトがオンにされ
る。次いで、論理ブロツク88で示されるよう
に、目標ラインがL1私用キヤツシユへ移され、
次いで論理ブロツク73で示されるように、フエ
ツチが実行される。 ここで、プロセツサ・メモリ「記憶リクエス
ト」の論理フロー図である第5・1図及び第5・
2図を参照する。線114に示されるような所与
のプロセツサ・メモリ「記憶リクエスト」に応答
して、論理プロセスは論理ブロツク116及び1
18へ進む。それは、目標ラインがL1の私用又
は共用キヤツシユにあるかどうかを決定するため
である。論理ブロツク116で、「目標ラインが
L1私用キヤツシユに存在するか」の質問がなさ
れる。もし答がイエスであれば、論理プロセスは
論理ブロツク120へ進み、答がノーであれば、
線122で示されるように論理ブロツク124へ
進む。もし論理ブロツク116の質問に対する答
がイエスであれば、「書込フラグは1に等しい
か」の質問が論理ブロツク120でなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク126へ進み、L1私用キヤツシユへ記憶が
なされ、次いでプロセツサは、線128で示され
るように、メモリ記憶リクエストの終りが存在す
ることを知らされる。もし答がノーであれば、論
理プロセスは論理ブロツク130へ進む。論理ブ
ロツク130は、プログラム・チエツク信号を転
送する。 論理ブロツク118で、「L1共用キヤツシユに
ラインが存在するか」の質問がなされる。もし答
がイエスであれば、論理プロセスは、論理ブロツ
ク132へ進む。論理ブロツク132はL1共用
キヤツシユへ記憶がなされることを示し、次いで
線128で示されるように、メモリ記憶リクエス
トの終了がリクエストしたプロセツサへ知らされ
る。他方、論理ブロツク118における答がノー
であれば、論理プロセスは論理ブロツク124へ
進む。そこで、論理ブロツク116でなされた質
問への答がノーであつたならば(これは、リクエ
ストされたラインがP―L1にないことを示す)
論理プロセスは論理ブロツク136及び138へ
進む。それは、目標ラインがL2の2つのキヤツ
シユの1つに記憶されたページに存在するかどう
かを決定するためである。 論理ブロツク136で、「目標ラインはL2私用
キヤツシユに存在するか」の質問がなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク140へ進み、もし答がノーであれば線14
2で示されるように論理ブロツク144へ進む。
論理ブロツク140で、「書込フラグは1に等し
いか」の質問がなされる。もし答がイエスであれ
ば、論理プロセスは論理ブロツク146へ進み、
目標ラインがL2私用キヤツシユからL1私用キヤ
ツシユへ移される。次いで論理プロセスは論理ブ
ロツク120へ進み、次いで論理ブロツクは前述
したように進行する。もし論理ブロツク140に
おける質問への答がノーであれば、線148で示
されるように、論理プロセスはプログラム・チエ
ツクを知らせるため、論理ブロツク130へ進
む。 論理ブロツク138で、「目標ラインがL2共用
キヤツシユに存在するか」の質問がなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク150へ進む。論理ブロツク150は、目標
ラインがL2共用キヤツシユからL1共用キヤツシ
ユへ移されることを示し、次いで論理ブロツク1
32で示されるように、目標ラインがL1共用キ
ヤツシユへ記憶される。次いで線128で示され
るように、メモリ記憶リクエストの終りを示す信
号が、リクエストしたプロセツサへ与えられる。
もし論理ブロツク138でなされた質問への答が
ノーであれば、152で示されるように、論理プ
ロセスは論理ブロツク144へ進む。もし論理ブ
ロツク136でなされた質問への答がノーであれ
ば(これは、目標ラインがL1又はL2のキヤツシ
ユにないことを示す)、論理ブロツク154で示
されるように、メイン・メモリ及びシステム制御
エレメント中のタグ・アレイがアクセスされる。 次いで論理プロセスは論理ブロツク156へ進
み、「書込フラグは1に等しいか」の質問がなさ
れる。もし答がイエスであれば、論理プロセスは
論理ブロツク158へ進み、もし答がノーであれ
ば、論理プロセスは、プログラム・チエツクを知
らせるため、論理ブロツク130へ進む。論理ブ
ロツク158で、「共用フラグは1に等しいか」
の質問がなされる。もし答がイエスであれば、論
理ブロツク160で示されるように、リクエスト
された情報ページがメイン・メモリからL2共用
キヤツシユへ転送され、次いで論理プロセスは前
述したように論理ブロツク150及び132へ進
む。もし論理ブロツク158でなされた質問への
答がノーであれば、線162で示されるように、
論理プロセスは論理ブロツク164へ進み、
「CPUビツトが1に等しいか」の質問がなされ
る。もし答がイエスであれば、論理プロセスは、
プログラム・チエツクを知らせるため、論理ブロ
ツク130へ進む。もし答がノーであれば、論理
プロセスは論理ブロツク166へ進む。論理ブロ
ツク166は、リクエストされた情報ページをメ
イン・メモリからリクエスト・プロセツサのL2
私用キヤツシユへ移し、かつCPUビツトをオン
にする。次いで論理プロセスは、前述したように
論理ブロツク146,120,126へ進む。 IBM/370の如く記憶保護キーを含むプロセ
ツサでは、タグ・アレイは記憶保護メモリの1部
として設けられてよく、仮想アドレスを採用する
プロセツサでは、タグ・アレイは再配置ページ・
テーブルの1部として設けられてよい。 しかし、本実施例では、それはシステム制御エ
レメントにある別個のアレイとして仮定され、
「タグ・アレイ設定」命令によつて書込まれる。
それは、「タグ・アレイ挿入」命令によつて、汎
用レジスタへ読出される(ソフトウエアによつて
検査するため)。これら2つの命令は、IBM/3
70の2つの記憶保護命令(記憶キー設定命令及
び記憶キー挿入命令)と同じように働く。もつと
も、前者2つの命令は、記憶保護アレイではな
く、タグ・アレイ上で動作する点が異なる。 第6・1図及び第6・2図は、単一のプロセツ
サ(この場合、プロセツサA)がどのようにして
その私用キヤツシユ及び共用キヤツシユへアクセ
スするかを示すブロツク図である。メモリ・リク
エストは、L1私用キヤツシユのデイレクトリイ
(L1私用デイレクトリイ)及びL1共用キヤツシユ
のデイレクトリイ(L1共用デイレクトリイ)へ
メモリ・リクエスト及びアドレスを送ることによ
つて開始される。もしいずれかのデイレクトリイ
でアドレスの一致が起り、かつラインが有効であ
れば(V=1)、関連したL1キヤツシユがアクセ
スされる。L1私用キヤツシユ及びL1共用キヤツ
シユが4ウエイ・セツトの連想キヤツシユである
と仮定すると、4個のワードがキヤツシユから並
列に読出され、リクエストされたワードがプロセ
ツサへ(又はプロセツサから)ゲートされる。 もしL1私用キヤツシユ又はL1共用キヤツシユ
のいずれにおいても比較の一致が起らなければ、
目標ラインを含むページがL2にあるかどうかを
決定するため、L2私用キヤツシユ及びL2共用キ
ヤツシユのデイレクトリイがアクセスされる。こ
れらL2キヤツシユのいずれかで比較の一致が生
じると、目標ラインがL1キヤツシユへ移され、
プロセツサによるワード・アクセスが実行され
る。 ライン又はページは私用キヤツシユ又は共用キ
ヤツシユのいずれかにあり、これら双方に同時に
存在することはない。L1又はL2にある2つのキ
ヤツシユは並列にアクセスすることができる。 以下に述べる説明は、プロセツサAによるキヤ
ツシユ・アクセスの詳細な説明である。プロセツ
サBによるキヤツシユ・アクセスも同様に動作す
る。 代表的なメモリ・リクエストの動作シーケンス
を考察すると、目標ラインのアドレスは、線36
及び46を介してL1私用デイレクトリイ34及
びL1共用デイレクトリイ44へ与えられ、かつ
ANDゲート164及び170へ与えられる。も
し目標ラインがL1私用キヤツシユ12に存在す
れば、デイレクトリイ34は、アクセス信号を線
166を介してL1私用キヤツシユ12へ与え、
リクエストされた情報ラインは線16を介してプ
ロセツサAへ与えられる。目標ラインがL1私用
キヤツシユ12中に存在しなければ、L1私用デ
イレクトリイの一致信号がANDゲート164及
びANDゲート170の最初の入力へ与えられ
る。 もし目標ラインがL1共用キヤツシユ14中に
存在すれば、L1共用デイレクトリイ44は線1
72を介してアクセス信号をL1共用キヤツシユ
14へ与え、そこから目標ラインが線18を介し
てプロセツサAへ読出される。他方、もし目標ラ
インがL1共用キヤツシユ14に存在しなけれ
ば、一致信号が線174を介してANDゲート1
64及び170の第2入力へ与えられる。これら
信号の双方が存在すると、目標ラインがL1キヤ
ツシユのいずれにも存在しなかつたことを示す。
その場合、ANDゲート164は、線176を介
して線46上のライン・アドレスをL2共用デイ
レクトリイ48へ通し、ANDゲート170は、
線178を介して、線36上のライン・アドレス
をL2私用デイレクトリイ38へ通す。 更に、線168及び174上の一致信号は、
ANDゲート180へ印加される。ANDゲート1
80は、線182上のアクセス信号を、L2共用
デイレクトリイ48及びL2私用デイレクトリイ
38へ与える。もし目標ラインを含む情報ページ
がL2私用キヤツシユ20に存在すれば、一致信
号が線186を介してL2私用キヤツシユ20へ
与えられる。それは、線188上のアドレスに従
つて目標ラインを線24を介してL1私用キヤツ
シユ12へゲート・アウトし、次いでそこから線
18を介してプロセツサAへゲート・アウトする
ためである。他方、もしデイレクトリイ38中で
デイレクトリイの一致が生じなかつたならば、一
致信号が線190を介してANDゲート192へ
与えられる。 L2共用デイレクトリイ48がアクセスされ、
かつS―L2デイレクトリイ一致信号が存在すれ
ば、このゲート信号は線194を介してL2共用
キヤツシユ22へ与えられる。それは、線188
上のライン・アドレスに従つて目標ラインを線2
6を介してL1共用キヤツシユ14へゲートし、
次いで線18を介してプロセツサAへゲートする
ためである。他方、デイレクトリイ48からデイ
レクトリイ一致信号が生じなければ、S―L2デ
イレクトリイ一致信号が線196を介してAND
ゲート192へ与えられる。 ANDゲート192へ至る入力線190及び1
96上にある一致信号の同時発生は、目標ライン
がL1又はL2に存在しないことを示し、メイン・
メモリ・アクセス信号が線198を介してシステ
ム制御エレメント6へ与えられる。それは、目標
ラインを含む情報ページをメイン・メモリからフ
エツチするためである。次に、この信号は、前述
したように、このページのための書込フラグ・ビ
ツト及び共用フラグ・ビツトの状態に従つて、
L2の私用又は共用キヤツシユへ与えられる。 第7図は、私用キヤツシユ又は共用キヤツシユ
にアクセスするための、24ビツト・メモリ・アド
レスのアドレシング構造を示す。キヤツシユ及び
その関連したハードウエアが私用キヤツシユであ
ろうと共用キヤツシユであろうと、同一のアドレ
ス・ビツトが使用される。 アドレスAはビツト(0―4)で構成され、ペ
ージがL2キヤツシユへ書込まれる時L2デイレク
トリイへ書込まれる。アドレスBはビツト(5―
11)で構成され、L2デイレクトリイをアドレス
するために使用される。アドレスCはビツト(0
―4)で構成され、L2デイレクトリイの出力と
比較される。アドレスDはビツト(5―16)で構
成され、L2キヤツシユをアドレスするために使
用される。アドレスEはビツト(5―11)で構成
され、置換アレイをアドレスするために使用され
る。アドレスFはビツト(0―9)で構成され、
新しいラインがL1キヤツシユへ置かれる時L1デ
イレクトリイへ書込まれる。アドレスGはビツト
(10―16)で構成され、L1デイレクトリイをアド
レスするために使用される。アドレスHはビツト
(0―9)で構成され、L1デイレクトリイの出力
と比較される。アドレスIはビツト(10―20)で
構成され、L1キヤツシユはアドレスするために
使用される。アドレスJはビツト(10―16)で構
成されL1置換アレイをアドレスするために使用
される。 ここで第8図を参照すると、そこにはプロセツ
サAのためのL1私用キヤツシユ12及びそれに
関連したキヤツシユ・コントロール兼デイレクト
リイ34(第2図参照)の詳細なブロツク図が示
される。プロセツサBのためのL1私用キヤツシ
ユ27及び関連したキヤツシユ・コントロール兼
デイレクトリイ54は、同じような構成を有し、
かつ同じように動作する。示されるシステムは、
典型的な4ウエイ・セツト連想キヤツシユ、デイ
レクトリイ、更新/置換アレイ及び論理を含む。
L1私用キヤツシユ12は、ワード入力ゲーテイ
ング・ネツトワーク200、ワード出力ゲーテイ
ング・ネツトワーク202、及びORゲート20
4を含む。キヤツシユ・コントロール兼デイレク
トリイ34は、アドレス・アレイ206、アドレ
ス入力ゲーテイング・ネツトワーク208、及び
アドレス比較ネツトワーク210を含む。更新置
換アレイは、置換アレイ212、更新/置換論理
214、及びアドレス・ゲーテイング・ネツトワ
ーク216を含む。プロセツサAから来る線36
上のアドレスは、デイレクトリイ/キヤツシユ及
び置換アレイをアドレスするために使用される。 前記の第7図は、24ビツト・メモリ・アドレス
の各ビツトが、第8図に示される主たるエレメン
トへどのように割当てられるかを示す。アドレス
入力ゲーテイング・ネツトワーク208へアドレ
スFが与えられ、アドレス・アレイ206へアド
レスGが与えられ、アドレス比較ネツトワーク2
10へアドレスHが与えられる。アドレス・アレ
イ206からアドレス比較ネツトワーク210へ
同時に読出された4つのアドレスは、アドレスH
の適当なビツトと比較される。それは、4つのア
ドレスのどれが一致するかを決定するためであ
る。例えば、もしアドレスAが一致し、かつその
有効ビツトが1に等しければ、Aワードがキヤツ
シユから読出される。これは、線220を介して
ワード出力ゲーテイング・ネツトワーク202へ
与えられるA選択線218上のゲート信号によつ
て達成される。更にA選択信号はプロセツサAへ
与えられる。ワード出力ゲーテイング・ネツトワ
ーク202からの線222は、リクエストされた
データをORゲート204及びデータ・バス・ア
ウト224へ与える。もし4つのワードのいずれ
も一致しなければ、ミス信号が発生される。もし
記憶動作が実行されるべきであれば、データ・バ
ス・イン226上のデータがワード入力ゲーテイ
ング・ネツトワーク200へ与えられ、線220
上のA選択信号がワード入力ゲーテイング・ネツ
トワーク200をしてデータをキヤツシユ12へ
与えさせる。 置換アレイ212及びそれに関連した論理21
4は、連想キヤツシユの各セツトにある4つのラ
インのいずれが最も古い時点に参照又は使用され
たかを追跡する。最も古い時点に使用された
(LRU)ものの置換論理は、米国特許第4008460
号に説明されているので、論理動作の詳細は説明
しない。 ここでL1私用キヤツシユのためのデイレクト
リイ・レジスタの詳細な図である第9図を参照す
る。デイレクトリイが線228を介して特定のア
ドレスでアクセスされる時、デイレクトリイ・レ
ジスタ229はそのアドレス内容、即ち4つのア
ドレスA,B,C,D及び関連した有効(V)、
変更(CH)、書込(WR)の各状況フラグを受取
る。これら4つのアドレスは、リクエストされた
ラインがキヤツシユ中にあるかどうかを決定する
ため、アドレス比較ネツトワーク210の中で線
228上のリクエスト・アドレスと並列に比較さ
れる。もし比較が等しく、関連した有効フラグが
1であれば、比較回路はキヤツシユに対する適当
な選択線を能動化する。即ち、A選択線、B選択
線、C選択線、D選択線のいずれかがその上に1
を有し、これが230で示されるようにL1私用
キヤツシユへ印加される。更にこれらに選択信号
はORゲート232へ印加される。ORゲート23
2はP―L1ヒツト信号を線234に与える。更
にこの信号はインバータ236へ印加され、イン
バータ236は線238へP―L1ミス信号を与
える。 更に、線240上の有効フラグは置換論理へ与
えられる。何故ならば、ミスの場合、有効フラグ
が0に等しい(無効)ラインは、常に使用時点の
最も古い(LRU)ラインの前に置換されるから
である。 前述したように、それぞれのラインはCHフラ
グ及びWRフラグを有する。これらのフラグは線
242及び224を介して制御論理回路へ入力さ
れる。記憶を許すため、WRフラグは1でなけれ
ばならず、もしCHフラグが1であれば、ライン
はミスの場合にL2私用キヤツシユへ移され(読
出され)ねばならない。 ここでL1共用キヤツシユのためのデイレクト
リイ・レジスタを示す第10図を参照する。アド
レス比較ネツトワーク246は線248を介して
リクエスト・アドレスを受取り、かつレジスタ2
50からアドレスA,B,C,Dを受取る。レジ
スタ250は第9図のレジスタ229と同様なも
のであるが、WRフラグがないことが異る。これ
は、L1共用キヤツシユ中の全てのラインが1に
等しい書込フラグ及び共用フラグを有しなければ
ならないからである。L1共用デイレクトリイ中
の各ラインについて、変更フラグが必要である。
それは、記憶が実際に生じるかどうか、従つてラ
インがミスの場合にカースト・アウトされねばな
らないかどうかを示すためである。もしアドレス
がネツトワーク246中で比較の一致を生じ、関
連した有効フラグが1であれば、252で示され
るように、比較ネツトワーク246はキヤツシユ
に対する適当な選択線を能動化する。 更に選択信号はORゲート254へ与えられ
る。S―L1ヒツト信号は線256及びインバー
タ258へ与えられる。そして線260上にS―
L1ミス信号が生じる。レジスタ250から出る
線262上の変更信号は、第9図に関して説明し
たように、制御論理回路へ与えられる。 キヤツシユの全ては、4ウエア・セツトの連想
キヤツシユであると仮定する。4つのアドレス
は、並列にデイレクトリイから読出される。もし
デイレクトリイから読出された4つのアドレス
(A,B,C,D)の1つがリクエスト・アドレ
スと一致し、その有効ビツトが1に等しければ、
キヤツシユがアクセスされ、4個のワードが並列
に読出される。これらのワードは、デイレクトリ
イから読出されたライン・アドレスと同じように
A,B,C,Dで表わす。デイレクトリイ比較回
路の出力は、選択されたワードを、キヤツシユの
ワード・レジスタからデータ・バス・アウトへ
(又はデータ・バス・インからワード・レジスタ
へ)ゲートする。例えば、もしアドレスCが一致
すれば、ワードCがプロセツサへ(又はプロセツ
サから)ゲートされる。選択されたラインが最も
新しい使用時点のものであることを示すため、
LRU置換アレイが更新される。 もしL1デイレクトリイで一致が生じなけれ
ば、これはライン・ミスであり、その時、リクエ
スト・アドレスはメモリ中の次のレベルへ(実施
例ではレベル2のキヤツシユへ)送られる。もし
L2デイレクトリイの一致が起れば(キヤツシ
ユ・ヒツト)、目標ラインがL1キヤツシユへ持つ
て来られ、そのアドレスがデイレクトリイに記憶
される。置換されるラインは、更新/置換論理に
よつて示される。前述したように、L1私用キヤ
ツシユは各キヤツシユ・ラインのために3つのフ
ラグを含む。それらは次のように限定される。V
フラグは、「電源オン」及び主たるリセツトでオ
フにされ、新しいラインがキヤツシユへ持つて来
られた時オンにされる。多重処理システムにおい
て、Vフラグは交差質問ヒツトの場合にオフされ
る。 CHフラグは、ラインが変更される(即ち、そ
こへ書込まれる)時オンにされる。WRビツト
は、ラインがL2からフエツチされ、かつL2ペー
ジ書込フラグが1である時オンにされる。L1共
用キヤツシユはラインごとにVフラグ及びCHフ
ラグを有する。それは、L1私用キヤツシユにお
けると同じような機能を有する。 ここで第11図を参照する。第11図はL2私
用キヤツシユ及びそのデイレクトリイと、第8図
に関連してL1論理について説明した場合と同じ
ように動作する更新/置換論理を示すブロツク図
である。L2デイレクトリイの場合、その記憶さ
れたアドレスは、どのページがL2私用キヤツシ
ユにあるかを示す。L2キヤツシユそれ自体はラ
イン・レベルまで下つてアドレスされる。何故な
らば、これはL2キヤツシユから読出され、かつ
L2キヤツシユとL1キヤツシユとの間を転送され
る単位だからである。 第11図はプロセツサAのためのL2私用キヤ
ツシユ20、及びそれに関連したキヤツシユ・コ
ントロール兼デイレクトリイ38を含む。プロセ
ツサBのためのL2私用キヤツシユ、及びそれに
関連したキヤツシユ・コントロール兼デイレクト
リイはプロセツサAに対するものと同様のもので
あり、同じように動作する。示されるシステム
は、典型的な4ウエイ・セツト連想キヤツシユ、
デイレクトリイ、更新/置換アレイ及び論理を含
む。L2私用キヤツシユ20はワード入力ゲーテ
イング・ネツトワーク264、ワード出力ゲーテ
イング・ネツトワーク266、ORゲート268
を含む。キヤツシユ・コントロール兼デイレクト
リイ38はアドレス・アレイ270、アドレス入
力ゲーテイング・ネツトワーク272、及びアド
レス比較ネツトワーク274を含む。更新置換ア
レイは置換アレイ276、更新/置換論理278
及びアドレス・ゲーテイング・ネツトワーク28
0を含む。 プロセツサAから来る線24上のアドレスは、
デイレクトリイ、キヤツシユ及び置換アレイをア
ドレスするために使用される。第7図は、24ビ
ツトのメモリ・アドレスが、どのように第11図
に示される主たるエレメントへ割当てられるかを
示す。アドレスAはアドレス入力ゲーテイング・
ネツトワーク272へ与えられ、アドレスBはア
ドレス・アレイ270へ与えられ、アドレスCは
アドレス比較ネツトワーク274へ与えられる。
デイレクトリイ・アレイ270からアドレス比較
ネツトワーク274へ同時に読出される4つのア
ドレスは、どれが比較の一致を生じるかを決定す
るため、アドレスCの適当なビツトと比較され
る。例えば、もしアドレスAの比較が一致し、そ
の有効ビツトが1に等しければ、ワードAがキヤ
ツシユから読出される。これは、A選択線282
上にあるゲート信号を、線284を介して、ワー
ド出力ゲーテイング・ネツトワーク266へ与え
ることによつて達成される。ワード出力ゲーテイ
ング・ネツトワーク266から来る線286は、
リクエストされたデータをORゲート268及び
データ・バス・アウト288へ与える。もし4つ
のワードのいずれも比較の不一致となれば、ミス
信号が発生される。もし記憶動作が達成されるべ
きであれば、バス290上のデータ・イン信号が
ワード入力ゲーテイング・ネツトワーク264へ
与えられ、線284上のA選択信号がワード入力
ゲーテイング・ネツトワーク264を能動化す
る。それは、L2キヤツシユ20へデータ・イン
信号を与えるためである。 置換アレイ276及びそれに関連した更新/置
換論理278及びアドレス・ゲーテイング・ネツ
トワーク280は、連想キヤツシユにおける4本
の線のいずれが最も古い時点で参照(又は使用)
されたかを追跡する。最旧時使用(LRU)置換
論理の詳細は米国特許第4008460号に説明されて
いるので、論理動作の詳細はここでは説明しな
い。 第12図はL2私用デイレクトリイ・レジスタ
のブロツク図である。このレジスタは、第9図に
示されるL1私用デイレクトリイ・レジスタと同
様のものである。ページごとのフラグは、L1私
用デイレクトリイが各ラインについて有するもの
と同じであることに注意されたい。実際の記憶は
L2で起らず、L1で起るので、ラインがL2私用キ
ヤツシユからL1私用キヤツシユへ移る時、L2に
おけるWRフラグはL1デイレクトリイへ通され
る。変更されたラインがL1私用キヤツシユから
L2私用キヤツシユへ転送される時、L2のCHフラ
グが1へセツトされる。L2私用デイレクトリイ
から来るアドレスA,B,C,Dはデイレクトリ
イ・レジスタ292へ与えられ、それぞれのアド
レスはアドレス比較ネツトワーク294へ与えら
れる。更にネツトワーク294は線296を介し
てプロセツサからリクエスト・アドレスを受取
る。アドレスの一致が生じ、関連したVビツトが
1であれば、A選択、B選択、C選択、D選択の
各信号が、298で示されるようにL2私用キヤ
ツシユへ与えられる。これらの信号はORゲート
300へも与えられ、ORゲート300はその出
力線302上にP―L2ヒツト信号を与える。こ
の信号はインバータ304へ与えられ、インバー
タ304は出力線306上にP―L2ミス信号を
与える。レジスタ292に記憶されたアドレスに
関連した線308上のVビツト信号は、線308
を介して置換論理へ与えられ、CHビツト信号及
びWRビツト信号は線310及び312を介して
制御論理及びL1私用キヤツシユへ与えられる。 第13図はL2共用デイレクトリイ・レジスタ
のブロツク図である。このレジスタは、第10図
に示されるL1共用デイレクトリイ・レジスタと
同様のものである。L2共用デイレクトリイはWR
フラグを含まない。記憶が実際に起り、従つてミ
スの場合にラインをカースト・アウトしなければ
ならないかどうかを示すため、L2共用デイレク
トリイ中の各ラインについてCHフラグが必要と
される。アドレスA,B,C,Dはレジスタ31
4へ与えられ、アドレス及びそれに関連した有効
ビツトはアドレス比較ネツトワーク316へ印加
される。ネツトワーク316は、線318を介し
てプロセツサから来るリクエスト・アドレス信号
を印加される。アドレスの一致が生じ、関連した
有効ビツトが1である時、A選択線、B選択線、
C選択線、又はD選択線の1つが1レベルにあ
り、その信号は320で示されるようにL2共用
キヤツシユへ印加される。更にその信号はORゲ
ート324へ印加され、ORゲート324はその
出力線326上にS―L2デイレクトリイ一致信
号を与える。この信号はインバータ328の入力
へも印加され、インバータ328は、アドレスの
一致が生じない時、その出力線330上にS―
L2デイレクトリイ一致信号を与える。レジスタ
314から来るCHビツト信号は、前述した理由
により、制御論理へ至る線332へ与えられる。 第14図はシステム制御エレメント6の中にあ
るタグ・アレイのブロツク図である。システム制
御エレメントがメイン・メモリからページをリク
エストする時、それは同時にシステム制御エレメ
ント6の中にあるタグ・アレイ334にアクセス
する。タグ・アレイは、タグ・アレイ・ワード3
36で示されるように、メイン・メモリのページ
ごとに8ビツトを含む。左方から2つのビツトは
書込みフラグ及び共用フラグである。残りの6ビ
ツトはプロセツサ識別フラグ(CPUビツト)で
あり、ページが関連したプロセツサのL2又はL1
の私用キヤツシユにあるかどうかを示す。もしペ
ージがプロセツサの私用キヤツシユ中にあれば、
ビツトは1である。そうでなければ、それはゼロ
である。かくてタグ・アレイ・ワード336は6
つの多重処理を実行するために使用される。 もし書込フラグ及び共用フラグの双方が1状態
にあれば、リクエストされたページはL2共用キ
ヤツシユへ移動され、目標ラインがL1共用キヤ
ツシユへ移動され、そこで目標ワードがフエツチ
される。 もし共用フラグがゼロであれば、CPUフラグ
がテストされ、それらが全てゼロかどうかが決定
される。もしいずれかのCPUビツトが1であれ
ば、「プログラム・チエツク」信号がリクエスト
したプロセツサへ戻される。もし全てのCPUビ
ツトがゼロであれば、ページがL2私用キヤツシ
ユへ移動され、目標ラインがL1私用キヤツシユ
へ移動され、そこでフエツチが実行される。ペー
ジが私用キヤツシユへ移される時、タグ・アレイ
の中にあるリクエストしたプロセツサのCPUビ
ツトも1へセツトされる。 WR及びSHビツトは、CPU汎用レジスタから
線338を介して入力ANDゲーテイング・ネツ
トワーク340へ与えられる。ネツトワーク34
0は、WR及びSHビツトをタグ・アレイ334
へゲートするため、線342上のタグ・アレイ設
定信号によつて能動化される。WR、SH及び
CPUビツトをタグ・アレイ334からワード・
レジスタ341へ読出すため、所与の情報ページ
に対するメモリ・アドレスが線337を介してア
ドレス・レジスタ339へ印加される。上記のビ
ツトは、線343を介して制御回路及び出力
ANDゲーテイング・ネツトワーク344へ印加
される。ネツトワーク344は線346上のタ
グ・アレイ挿入信号によつて能動化される。それ
は、ネツトワーク344を能動化して、WR、
SHの各ビツトを、線348を介してCPU汎用レ
ジスタへ印加するためである。 IBM/370のように記憶保護キーを含むプロ
セツサでは、タグ・アレイ334は記憶保護メモ
リの1部として構成することができ、仮想アドレ
ス方式を採用するプロセツサでは、タグ・アレイ
334は再配置ページ・テーブルの1部として構
成することができる。 しかし、本実施例においては、それはシステム
制御エレメント6に設けられた別個のアレイであ
るとし、タグ・アレイ設定命令によつて書込まれ
るものと仮定する。それは、タグ・アレイ挿入命
令によつて、汎用レジスタへ読出される(ソフト
ウエアによる検査のため)。これら2つの命令は
IBM/370における2つの記憶保護命令(記憶
キー設定命令及び記憶キー挿入命令)と同じよう
に働く。勿論、前者2つの命令は、記憶保護アレ
イではなくタグ・アレイ上で動作する。 第15図はタグ・アレイへ書込むための論理を
示す。ソフトウエアが特定のページのために書込
フラグ及び共用フラグをセツトしたいと望む時、
線350上のタグ・アレイ設定信号が、ANDゲ
ート352及び354の第1の入力へ印加され
る。ANDゲート352の第2入力へ印加される
線356上の書込ビツト=1信号が1である時、
線358を介して書込フラグ=1設定信号がタ
グ・アレイへ印加される。線360上の共用ビツ
ト=1信号が1である時、ゲート354から来る
線362上の共用フラグ=1設定信号は1であ
り、これはタグ・アレイへ印加される。書込及び
共用フラグの設定は、命令によつてアドレスされ
る汎用レジスタ中でなされる(IBM/370のア
ーキテクチヤであると仮定する)。これらの設定
信号は、プロセツサによるタグ・アレイ設定信号
及びメモリ・ページ・アドレス信号と共に、タ
グ・アレイへゲートされる。タグ・アレイはペー
ジ・アドレスを使用して読出され、書込フラグ及
び共用フラグは、書込ビツト線及び共用ビツト線
の設定ごとに書込まれる。 情報ページがメイン・メモリからプロセツサの
L2私用キヤツシユへゲートされる時、線364
上にあるP―L2ページ・ゲート信号がANDゲー
ト366,368,370の第1入力へ印加さ
れ、そのページ及びプロセツサのためのタグ・ア
レイへ1が書込まれる。例えば、線372上の
CPU1―L2ミス信号が1である時、ゲート36
6から出る出力線374上のCPU1=1設定信
号は1であり、これはタグ・アレイへ印加され
る。ANDゲート368の第2入力へ印加される
線376上のCPU2―L2ミス信号が1である
時、その出力線378上のCPU2=1設定信号
は1であり、それがタグ・アレイへ印加される。
線380上の1のCPU6―L2ミス信号がANDゲ
ート370の第2入力へ印加された時、その出力
線382上のCPU6=1設定信号が1となり、
それがタグ・アレイへ印加される。 第16図は書込フラグ及び共用フラグ制御論理
を示す。第15図で発生されたCPU1=1設定
信号乃至CPU6=1設定信号は、ORゲート38
4の入力へ印加され、ORゲート384の出力は
ANDゲート386の第1入力及びインバータ3
88の入力へ印加され、インバータ388の出力
はANDゲート390の第1入力へ印加される。
共用フラグ=0信号はANDゲート386及び3
90の第2入力へ印加される。書込フラグ=0信
号は線388を介してANDゲート390′の第1
入力へ印加される。ANDゲート390′は、線3
92を介してCPU記憶リクエスト信号をその第
2入力へ印加される。ANDゲート386及び3
90の出力信号は、ORゲート392の第1及び
第2入力へ印加される。ANDゲート390の出
力信号はORゲート394の第1入力へ印加され
る。ANDゲート396は、その第1入力へ書込
フラグ=0信号を印加され、その第2入力へ共用
フラグ=1信号を印加される。ゲート396の出
力信号はORゲート394の第2入力へ印加され
る。ANDゲート398は、その第1入力へ書込
フラグ=1信号を印加され、その第2入力へ共用
フラグ=1信号を印加される。もしANDゲート
386及び390の第1入力へ印加される共用フ
ラグ=0信号が1であり、かつORゲート384
の出力が1であれば、ORゲート392はメモ
リ・キヤンセル信号を与える。それによつて、リ
クエストしたプロセツサへ行くメモリ・キヤンセ
ル信号及びプログラム・チエツク・ターン・オン
信号は、他のコピーが他のプロセツサへ送られる
のを防止する。更に、もしANDゲート390′が
「2進の1」出力信号を与えていれば、メモリ・
リクエストはキヤンセルされ、プログラム・チエ
ツクがオンにされる。 もし共用フラグがゼロであり、CPUがその私
用キヤツシユ中に関連するページを含んでいなけ
れば(これは、1出力を与えるインバータ388
によつて表示される)、ANDゲート390はOR
ゲート394へ1の入力を与え、リクエスト・プ
ロセツサのP―L2ページ・ゲート信号が、リク
エスト・プロセツサのL2私用キヤツシユへ送ら
れる。もし共用フラグが1に等しく、かつ書込フ
ラグがゼロに等しければ、同一事象のシーケンス
が起る。書込フラグのゼロは、ANDゲート39
6をして、ORゲート394の第2入力へ1の入
力を与えさせる。 ページがL2共用キヤツシユへ送られるのは、
書込フラグ及び共用フラグの双方が1に等しい時
である。この場合、ANDゲート398によつ
て、S―L2ページ・ゲート信号が、リクエス
ト・プロセツサのL2共用キヤツシユへ与えられ
る。 これまで説明したフラグを利用するキヤツシユ
構成は、全てのプロセツサへ共通であり、かつ
L1私用キヤツシユを交差質問して、変更された
ラインに対するカースト・アウトを必要とする
L2キヤツシユに優る。しかし、ページを適切に
マークするに当り、アプリケーシヨンによつて
は、ソフトウエアがページの使用について十分な
知識を有しない場合があるかも知れない。このよ
うな場合、ソフトウエアはこれらページを書込可
能及び共用可能とマークするように強制される。
その結果、アプリケーシヨンによつては、ページ
及びラインの大きい割合いが共用キヤツシユへ移
動される場合もある。更に、共用及び書込みの双
方を受けるページについて、共用及び書込みが共
に生じない比較的長い時間も存在する。そのよう
な時間中、それらのページは私用キヤツシユにあ
る方がよい。このような場合のために、代替的実
施例を以下に説明する。この実施例は、全てのペ
ージ及びラインをL2及びL1の私用キヤツシユへ
移動させ、書込可能及び共用可能(1,1)とマ
ークされたページ/ラインの共用及び書込みをダ
イナミツクに調整する。 第17図は多重処理システム400を示す。こ
のシステムは、L3の共用されるメイン・メモリ
402に含まれたオペランド及び命令を有する。
メイン・メモリ402は、システム制御エレメン
ト404を介して複数のプロセツサ群と命令及び
オペランドを交換する。入出力バス406は、シ
ステム制御エレメント404を、直接アクセス記
憶装置(DASD)のような複数の周辺装置へ接続
する。更に、システム制御エレメント404は、
L2及びL1の私用キヤツシユ及びL1の共用キヤツ
シユを介して、プロセツサA及びBを含む第1の
プロセツサ群へ接続される。L2の共用キヤツシ
ユはないことに注意されたい。システム制御エレ
メント404は、バス408を介して他の同様な
プロセツサ群へ接続される。各プロセツサ群は2
個を超えるプロセツサを含んでよいが、説明を簡
単にするため、2個のプロセツサの場合を示す。 各プロセツサは、情報交換のため、L1私用キ
ヤツシユ及びL1共用キヤツシユと直接に通信す
る。L1共用キヤツシユは、多重プロセツサ群の
各プロセツサによつて共用される。情報ラインは
L1の各キヤツシユに記憶され、L2の私用キヤツ
シユは情報ページを含む。プロセツサAはL1で
その私用キヤツシユ410及び共用キヤツシユ4
12と通信し、プロセツサA及びキヤツシユ間の
データ交換は線414及び416を介して行われ
る。もしリクエストされた情報ラインがキヤツシ
ユ410又は412のいずれにおいても存在して
いなければ、L2私用キヤツシユ418が線42
0を介してL1私用キヤツシユ410から質問さ
れる。それは、リクエストされたラインを含む情
報ページがそこに存在しているかどうかを調べる
ためである。もし情報ページがそこに存在してい
れば、リクエストされた情報ラインは、キヤツシ
ユ410又は412へ転送される。他方、情報ペ
ージがL2私用キヤツシユ418に存在していな
ければ、システム制御エレメント404が、L3
のメイン・メモリからL2私用キヤツシユ418
へ情報ページを転送するよう信号を受ける。書込
フラグ及び共用フラグがどのようにセツトされて
いても、全てのページがメイン・メモリ402か
らL2私用キヤツシユ418へ移される。ページ
がメイン・メモリからL2私用キヤツシユへ移さ
れた時、関連した書込フラグ及び共用フラグがタ
グ・アレイからL2私用デイレクトリイへ移され
る。更に、ページからの各ラインがL1私用キヤ
ツシユへ転送されると、2個のフラグ・ビツトが
ライン・アドレスと共にL1私用デイレクトリイ
に記憶される。以下に説明するように、書込フラ
グ及び共用フラグが階層コントロールを変更する
のは、L1においてである。リクエストされた情
報ラインが、1度L2私用キヤツシユ418へ転
送されると、それは、書込フラグ及び共用フラグ
の双方が共に1であるとき、L1共用キヤツシユ
へ転送される。他の全ての場合、リクエストされ
た情報ラインはL1私用キヤツシユ410へ転送
される。 プロセツサBは、線426及び428を介し
て、L1におけるその私用キヤツシユ424、及
びL1共用キヤツシユ412とデータを交換す
る。もしリクエストされた情報ラインが共用キヤ
ツシユ412又は私用キヤツシユ424に存在し
ていなければ、リクエストされたラインを含む情
報ページが、線432を介して、プロセツサBの
L2私用キヤツシユ430からリクエストされ
る。もしリクエストされた情報ページが私用キヤ
ツシユ430に存在していなければ、リクエスト
された情報ページをL2私用キヤツシユ430へ
転送するように、L3のメイン・メモリ402が
システム制御エレメント404を介して信号を受
ける。私用キヤツシユ430中のリクエストされ
た情報ラインは、プロセツサAについて説明した
ように、書込フラグ及び共用フラグのセツト状態
に従つてL1共用キヤツシユ412又はL1私用キ
ヤツシユ424のいずれかへ転送される。 第18図は第17図に示した多重処理システム
400の詳細なブロツク図である。第18図は
L1共用キヤツシユ及びL1及びL2の私用キヤツシ
ユに関連したキヤツシユ・コントロール兼デイレ
クトリイを示す。L1私用キヤツシユ410のた
めのキヤツシユ・コントロール兼デイレクトリイ
434は、線436を介してプロセツサAへ接続
され、線440を介してL2私用キヤツシユ41
8のためのキヤツシユ・コントロール兼デイレク
トリイ438へ接続され、線442を介してシス
テム制御エレメント404へ接続される。はデ
ータ・バスを示し、はアドレス兼制御バスを示
す。プロセツサAは、線446を介してL1共用
キヤツシユ412のためのキヤツシユ・コントロ
ール兼デイレクトリイ444へ接続され、線44
8を介してL2私用キヤツシユ418のためのキ
ヤツシユ・コントロール兼デイレクトリイ438
へ接続される。 プロセツサBは、線452を介してL1私用キ
ヤツシユ424のためのキヤツシユ・コントロー
ル兼デイレクトリイ450へ接続され、線454
を介してL1共用キヤツシユ412のためのキヤ
ツシユ・コントロール兼デイレクトリイ444へ
接続される。 キヤツシユ・コントロール兼デイレクトリイ4
44は、線458を介してL2私用キヤツシユ4
30のためのキヤツシユ・コントロール兼デイレ
クトリイ456へ接続され、線460を介してシ
ステム制御エレメント404へ接続される。これ
らのキヤツシユ・コントロール兼デイレクトリイ
は、リクエストされた情報ライン又は情報ページ
がキヤツシユに存在するかどうかを決定し、又は
情報ページがメイン・メモリからフエツチされね
ばならないかどうかを決定するため、読出指令又
は書込指令に応答する。 書込フラグ及び共用フラグのセツト状態がどの
ようなものであれ、全てのページはメイン・メモ
リからL2私用キヤツシユへ移される。ページが
メイン・メモリからL2私用キヤツシユへ移され
る時、関連した書込フラグ及び共用フラグがタ
グ・アレイからL2私用デイレクトリイへ移され
る。更に、ページからの各ラインがL1私用キヤ
ツシユへ転送されると、2個のフラグがライン・
アドレスと共にL1私用デイレクトリイに記憶さ
れる。以下に説明するように、書込フラグ及び共
用フラグが階層コントロールを変更するのは、
L1においてである。 書込フラグがゼロであるラインは、そこに書込
まれることができず、交差質問は必要でない。共
用フラグは読出専用ラインについてL1で影響を
有しない(書込フラグはゼロに等しい)。書込可
能とマークされたラインについては(書込フラグ
は1に等しい)、共用フラグは、実質的に次のよ
うにしてL1で動作を変更する。書込可能とマー
クされているが共用可能とマークされていない
(1,0)ラインについて、記憶がリクエストさ
れると、記憶はL1私用キヤツシユに対して起
り、交差質問は必要とされない。何故ならば、ラ
インの1つのコピーのみがL1及びL2に存在する
ことができるからである。もしラインが(1,
1)とマークされていれば、記憶が起る前に、ラ
インがL1共用キヤツシユへ移され、L1私用キヤ
ツシユの交差質問が達成される。もしラインが他
のプロセツサのキヤツシユにあれば、それは無効
にされる。 もし(1,1)のラインがL1共用キヤツシユ
にあれば、2つのプロセツサがそこからフエツチ
しかつそこへ記憶することができる。従つて、も
しページがL2の1つの私用キヤツシユ中にあ
り、他のプロセツサがそのページのラインからミ
スを有すれば、他のプロセツサが記憶しなかつた
のはそのラインについてであるに違いない。従つ
て、L2に達するライン・ミスは、他のプロセツ
サによつて変更されなかつたラインのためであ
る。 かくて、(1,1)ページのコピーはそれぞれ
のL2私用キヤツシユ中に存在することができ、
そのページの変更されないラインのコピーはそれ
ぞれのL1キヤツシユ中に存在することができ
る。プロセツサがラインを変更するや否や、それ
は先ずラインを共用キヤツシユへ移し、もしその
ラインが他のプロセツサの私用キヤツシユ中に存
在していれば、それを無効する。それによつて、
このラインを後に使用する場合、私用キヤツシユ
からではなく共用キヤツシユからそのラインを取
ることが可能となる。大切なことは、実際の記憶
が起るまでは、ラインは共用の読出専用として処
理されることである。 変更された(1,0)ライン(書込可能、共用
不可能)は、L1の1個の私用キヤツシユ中にの
み存在し、最終的にはL1私用キヤツシユからL2
私用キヤツシユへ移される。変更された(1,
1)ラインは、L1共用キヤツシユ中にのみ存在
し、ページがL2キヤツシユ中にあるかどうかに
従つて、1つ又は2つのL2キヤツシユへ移され
る。 第19図はプロセツサ・メモリ「フエツチ・リ
クエスト」に対する論理フローチヤートである。
プロセツサは線462を介して論理ブロツク46
4及び466へ「フエツチ・リクエスト」を出
す。それは、リクエストされた情報ラインが、
L1私用キヤツシユ中に存在するのか、L1共用キ
ヤツシユ中に存在するのかを決定するためであ
る。論理ブロツク464で、「L1私用キヤツシユ
でライン・ヒツトが生じるか」の質問がなされ
る。もし答がイエスであれば、論理ブロツク46
8で示されるように、リクエストしたプロセツサ
のL1私用キヤツシユから、ラインがフエツチさ
れる。そのラインはリクエストしたプロセツサへ
転送され、線470で示されるようにメモリ・フ
エツチの終りが起る。他方、464で示されるよ
うに、L1私用キヤツシユでライン・ヒツトが起
らなければ、プロセスは論理ブロツク472へ進
み、論理ブロツク466における論理プロセスの
結果を待機する。論理ブロツク466では、「L1
共用キヤツシユ中にライン・ヒツトが生じるか」
の質問がなされる。もし答がイエスでああれば、
論理ブロツク474で示されるように、ラインが
L1共用キヤツシユからフエツチされ、そのライ
ンはL1共用キヤツシユからリクエストしたプロ
セツサへ転送され、線470で示されるように、
メモリ・フエツチの終りが起る。他方、もし答が
ノーであれば、論理プロセスは論理ブロツク46
6から論理ブロツク472へ進む。 論理ブロツク464及び466でなされた論理
質問に対する答が共にノーであれば、これはリク
エストされたラインがL1に存在しないことを示
す。その場合、論理プロセスは論理ブロツク47
2から論理ブロツク476へ進むが、それはリク
エストされたラインを含む情報ページがL2に記
憶されているかどうかを決定するためである。論
理ブロツク476で、「L2私用キヤツシユでライ
ン・ヒツトが生じるか」の質問がなされる。もし
答がイエスであれば、論理プロセスは論理ブロツ
ク478へ進む。論理ブロツク478は、L2私
用キヤツシユからL1私用キヤツシユへ、リクエ
ストされた情報ラインを移すことを示す。次い
で、論理プロセスは論理ブロツク468へ進み、
前述したように進行する。 もし答がノーであれば、メイン・メモリ及びシ
ステム制御エレメント中のタグ・アレイにアクセ
スするため、論理プロセスは論理ブロツク480
へ進む。次に論理プロセスは論理ブロツク482
へ進み、そこで「共用フラグは1に等しいか」の
質問がなされる。もし答がイエスであれば、論理
プロセスは論理ブロツク484へ進み、もし答が
ノーであれば、論理プロセスは論理ブロツク48
6へ進む。 もし論理ブロツク482でなされた質問に対す
る答がイエスであれば、メイン・メモリからL2
私用キヤツシユへページが移され、CPUビツト
がオンにされる。次に論理プロセスは論理ブロツ
ク478へ進み、前述したように進行する。もし
論理ブロツク482における答がノーであれば、
論理プロセスは論理ブロツク486へ進み、そこ
で「CPUビツトが1に等しいか」の質問がなさ
れる。もし答がイエスであれば、プログラム・チ
エツク信号を発生するため、論理プロセスは論理
ブロツク488へ進む。もし答がノーであれば、
論理プロセスは論理ブロツク484へ進み、前述
したように進行する。 第20・1図及び第20・2図はプロセツサ・
メモリ「記憶リクエスト」の論理フローチヤート
を示す。線490で示されるように、所与のプロ
セツサ・メモリ「記憶リクエスト」に応答して、
目標ラインがL1私用キヤツシユ又はL1共用キヤ
ツシユに存在しているかどうかを決定するため、
論理プロセスは論理ブロツク492及び494へ
進む。論理ブロツク492で、「目標ラインがL1
共用キヤツシユに存在するか」の質問がなされ
る。もし答がイエスであれば、論理プロセスは論
理ブロツク496へ進み、もし答がノーであれ
ば、論理ブロツク494の論理判断を待機するた
め、論理プロセスは論理ブロツク498へ進む。 もしL1共用キヤツシユでデイレクトリイの比
較一致が生じると(即ち、論理ブロツク492で
なされた質問への答がイエスであれば)、論理ブ
ロツク496で示されるように、L1共用キヤツ
シユ中で記憶が起り、プロセスは記憶の終りを示
す線500へ進む。書込可能及び共用可能(1,
1)であるラインのみがL1共用キヤツシユ中に
存在するので、書込フラグ及び共用フラグのテス
トは必要でない。従つて、共用キヤツシユのデイ
レクトリイは書込フラグ又は共用フラグを含まな
い。更に、共用キヤツシユ中の全てのラインが変
更されるので、変更フラグは必要でない。 メモリ「記憶リクエスト」に応答して、論理ブ
ロツク494で、「目標ラインはL1私用キヤツシ
ユ中に存在するか」の質問がなされる。もし答が
イエスであれば、論理プロセスは論理ブロツク5
02へ進み、もし答がノーであれば、論理ブロツ
クは論理ブロツク498へ進む。もしL1私用キ
ヤツシユでデイレクトリイの比較一致が生じれ
ば、書込(WR)フラグ及び共用(SH)フラグ
がテストされねばならない。もし書込フラグが1
に等しく、共用フラグがゼロに等しければ、記憶
はL1私用キヤツシユで起る。そこで「書込フラ
グは1に等しく共用フラグはゼロに等しいか」の
質問が論理ブロツク502でなされる。もし答が
イエスであれば、論理プロセスは論理ブロツク5
04へ進み、もし答がノーであれば、論理プロセ
スは論理ブロツク506へ進む。もし答がイエス
であれば、論理ブロツク504で示されるように
目標ラインはL1私用キヤツシユ中に記憶され、
論理プロセスは線500で示されるように記憶の
終りへ進む。他方、論理ブロツク502における
答がノーであれば、論理ブロツク506で、「書
込フラグはゼロに等しいか」の質問がなされる。
もし答がイエスであれば、論理プロセスは論理ブ
ロツク508へ進み、もし答がノーであれば、論
理プロセスは論理ブロツク510へ進む。もし書
込フラグがゼロに等しければ、記憶は起らず、論
理ブロツク508で示されるように、プログラ
ム・チエツク信号がプロセツサへ与えられ、線5
12で示されるように、記憶リクエストの終りが
起る。上記2つの条件のいずれも存在しなけれ
ば、書込フラグ及び共用フラグは共に1でなけれ
ばならない。従つて、論理ブロツク510で示さ
れるように、目標ラインはL1私用キヤツシユか
らL1共用キヤツシユへ転送され、その後論理プ
ロセスは論理ブロツク514へ進む。論理ブロツ
ク514はラインがリモートのL1私用キヤツシ
ユの中で無効にされることを示す。次に論理プロ
セスは、記憶がL1共用キヤツシユ中で起ること
を示す論理ブロツク496へ進む。リモートの
L1私用キヤツシユは交差質問され(XI)、もしラ
インがリモートのL1私用キヤツシユ中にあれば
無効にされる。 ブロツク492及び494でなされた論理質問
への答が共にノーである場合、目標ラインはL1
共用キヤツシユ及びL1私用キヤツシユ中に存在
せず、論理プロセスは論理ブロツク498次いで
論理ブロツク516へ進む。論理ブロツク516
では、「目標ラインはL2私用キヤツシユに存在す
るか」の質問がなされる。もし答がイエスであれ
ば、論理プロセスは論理ブロツク518へ進み、
答がノーであれば、論理プロセスは論理ブロツク
520へ進む。論理ブロツク516でなされた質
問の応答がイエスであれば、それはL2私用デイ
レクトリイの比較一致を示し、次に書込フラグ及
び共用フラグが検査されねばならない。それは、
ラインがL1私用キヤツシユ又はL1共用キヤツシ
ユへ移動されるべきか否かを決定するためであ
る。論理ブロツク518では、「書込フラグが1
に等しく、共用フラグがゼロに等しいか」の質問
がなされる。もし答がイエスであれば、論理プロ
セスは論理ブロツク522へ進み、答がノーであ
れば、論理プロセスは論理ブロツク524へ進
む。もし論理ブロツク518における質問への答
がイエスであれば、論理ブロツク522で
「CPUビツトは1に等しいか」の質問がなされ
る。もし答がイエスであれば、論理プロセスは論
理ブロツク508へ進み、プログラム・チエツク
信号が発生され、記憶リクエストの終りが線51
2で示される。もし答がノーであれば、論理ブロ
ツク526で示されるように、論理プロセスは、
リクエストされた情報ページをメイン・メモリか
らL2私用キヤツシユへ移すように進行し、CPU
ビツトがオンにされる。次に、論理ブロツク52
8で示されるように、目標ラインがL2私用キヤ
ツシユからL1私用キヤツシユへ移され、論理ブ
ロツク504で示されるように、記憶がL1私用
キヤツシユで起り、次いで線500で示されるよ
うに、記憶の終りが起る。 論理ブロツク524で示されるように、もし書
込フラグがゼロに等しければ、論理プロセスは論
理ブロツク508へ進んでプログラム・チエツク
信号を発生し、線512で示されるように記憶リ
クエストの終りが生じる。もし答がノーであれ
ば、L2私用キヤツシユからL1共用キヤツシユへ
目標ラインを移すため、論理プロセスは論理ブロ
ツク530へ進む。次いで、論理ブロツク496
で示されるように記憶がL1共用キヤツシユで起
り、線500で示されるように、記憶の終りが起
る。論理ブロツク516でなされた質問へのノー
によつて示されるように、もし目標ラインがL2
私用キヤツシユ中に存在しなければ、論理プロセ
スは論理ブロツク520へ進む。論理ブロツク5
20はメイン・メモリ及びタグ・アレイのアクセ
スを示す。次いで論理プロセスはそこから論理ブ
ロツク518へ進み、そして前述したように進行
する。 第21図はL1私用キヤツシユのためのメモ
リ・リクエスト論理を示す。もし線498上にP
―L1ヒツト信号が存在し、かつANDゲート50
2の入力へ行く線500上にプロセツサからのフ
エツチ・リクエスト信号が存在すれば、ORゲー
ト504がアクチブとなり、「P―L1からのフエ
ツチ」信号をL1私用キヤツシユへ与える。線5
08上のフエツチ・リクエスト信号と、線510
上の「P―L2からP―L1への転送完了」信号と
が一致した時、ANDゲート506はアクチブと
なる。線510上の転送完了信号は、「P―L1か
らのフエツチ」信号を再びL1私用キヤツシユへ
与えるため、ORゲート504を能動化する。 線512上の記憶リクエスト信号、及び線51
4上のP―L1ヒツト信号に応答して、ANDゲー
ト516はアクチブとなり、ANDゲート52
4,526,528の第1入力518,520,
522が条件ずけられる。それは、目標ラインに
関連した書込フラグ及び共用フラグの状態をテス
トするためである。もしANDゲート524の残
りの2つの入力上で、書込フラグ=1及び共用フ
ラグ=0であれば、その出力はアクチブとなり、
ORゲート530は、出力線532を介して、P
―L1記憶信号をL1私用キヤツシユへ与える。も
し書込フラグ=0であれば、ANDゲート526
がアクチブとなり、プログラム・チエツク信号が
CPUへの出力線534へ与えられる。もしAND
ゲート528の残りの2つの入力へ印加される書
込フラグ=1及び共用フラグ=1信号がアクチブ
であれば、ANDゲート528は、その出力線5
36上に、L1私用キヤツシユ及びL1共用キヤツ
シユへ与えられる「P―L1からS―L1へのライ
ン転送」信号を発生し、かつ線538上に、シス
テム制御エレメントへ与えられるリモートP―
L1無効信号を発生する。ANDゲート540は、
線510上の「P―L2からP―L1への転送完
了」信号と、線512上の記憶リクエスト信号と
に応答してアクチブとなり、ORゲート530を
して、線532上に、P―L1記憶信号を発生さ
せる。この信号は、目標ラインをL2私用キヤツ
シユからL1私用キヤツシユへ転送させる。 各キヤツシユはライン・カウンタを有する。ラ
イン・カウンタは、ライン転送の始めにゼロへリ
セツトされ、或る数のワードがキヤツシユへ(又
はキヤツシユから)転送された時、ライン転送完
了信号を発生する。 第22図はL1共用キヤツシユのためのメモ
リ・リクエスト論理のブロツク図である。AND
ゲート542は、線544上のS―L1ヒツト信
号と、線546上のフエツチ・リクエスト信号と
に応答してアクチブとなる。線546上の信号
は、線550を介してL1共用キヤツシユへ「S
―L1からのフエツチ」信号を与えるため、ORゲ
ート548を能動化する。ANDゲート552
は、線546上のフエツチ・リクエスト信号と、
線554上の「P―L2からS―L1への転送完
了」信号とに応答してアクチブとなる。線554
上の信号はANDゲート552の第2入力へ印加
される。ANDゲート552の能動化はORゲート
548を能動化して、線550を介してL1共用
キヤツシユへ与えられる「S―L1からのフエツ
チ」信号を発生する。 ANDゲート556は、その第1入力へ印加さ
れる線558上の「P―L1からS―L1への転送
完了」信号と、第2入力へ印加される線560上
のリモートP―L1無効完了信号と、第3入力へ
印加される線562上の記憶リクエスト信号に応
答してアクチブとなる。ANDゲート556のア
クチブ状態は、ORゲート564を能動化して、
L1共用キヤツシユへ与えられるS―L1記憶信号
を線556上に発生する。ANDゲート568
は、その第1入力へ印加される線562上の記憶
リクエスト信号と、第2入力へ印加される線57
0上のS―L1ヒツト信号とに応答してアクチブ
となる。ANDゲート568の能動化はORゲート
564を能動化し、その出力線566を介して
L1共用キヤツシユへ与えられるS―L1記憶信号
を発生する。 ORゲート572及び574、及びANDゲート
576はL1共用キヤツシユのための転送論理を
構成する。L1共用キヤツシユにある全てのライ
ンが変更されるので、新しいラインがL1共用キ
ヤツシユへ転送される時、置換されたラインは
L1共用キヤツシユから読出され、1つ又はそれ
以上のL2私用キヤツシユへ移されねばならな
い。古いラインをL1共用キヤツシユへ読出し、
次いでそれをL2キヤツシユへ転送する動作は、
ライン・カースト・アウト動作と呼ばれる。カー
スト・アウトされるべきラインは、共用キヤツシ
ユのLRU置換論理によつて決定される。 もしラインがL1共用キヤツシユへ転送される
べき時、入力線578又は580の1つがアクチ
ブとなり、置換されるべきラインが共用キヤツシ
ユから出力ライン・バツフアへ読出されるべきで
あることを知らせる。線578上の信号は、「P
―L1からS―L1へのライン転送完了」信号であ
り、線580上の信号は、「P―L2からS―L1へ
のライン転送完了」信号である。これら線のいず
れかがアクチブであれば、それに応答してORゲ
ート572はアクチブとなり、ANDゲート57
6への第1入力をアクチブにする。ORゲート5
74は、線582上の「P―L1からS―L1への
ライン転送」信号がアクチブであるか、線584
上の「P―L2からS―L1へのライン転送」信号
がアクチブであることに応答してアクチブとな
り、ORゲート574をして、その出力線586
上に「S―L1からS―L1出力ライン・バツフア
へのライン読出」信号を発生せしめる。この信号
はL1共用キヤツシユへ与えられる。この信号は
ANDゲート576の第2入力へも与えられる。
ANDゲート576は、ORゲート572から来る
アクチブな出力信号を受取つた時、その出力線5
88上に、「P―L2へのカースト・アウト」信号
を発生する。この信号は、L2私用キヤツシユへ
与えられる。 これまで説明した動作シーケンスを再び繰返し
て説明すると、目標ラインはL2キヤツシユから
その出力ライン・バツフアへ読出され、同時に
L1共用キヤツシユ中で置換されるべきラインが
そこから読出されてその出力ライン・バツフアへ
入れられる。次いで、目標ラインはL1共用キヤ
ツシユの入力ライン・バツフアへ転送される。こ
の入力ライン・バツフアが一杯である時、それは
「P―L2からS―L1へのライン転送完了」信号を
発生する。この時点で、L1共用キヤツシユは、
全てのL2私用キヤツシユへカースト・アウト信
号を送る。このラインがL2私用キヤツシユへ転
送されている間、プロセツサはL1共用キヤツシ
ユにアクセスすることができる。 第3・1図及び第3・2図はL2私用キヤツシ
ユのためのメモリ・リクエスト論理を示す。フエ
ツチ・リクエストの場合、書込フラグ又は共用フ
ラグをL2でテストする必要はない。記憶リクエ
ストの場合、これら2つのフラグは次のような重
要な役割を演ずる。ANDゲート590は、その
第1入力への線592上にあるP―L1ミス信号
と、第2入力への線594上にあるS―L1ミス
信号とに応答してアクチブとなり、ANDゲート
596と598の第1入力を条件ずける。AND
ゲート598への第2入力線は線600上のフエ
ツチ・リクエスト信号である。この信号はAND
ゲート598をアクチブにして、線602上にP
―L2キヤツシユへのフエツチ信号を発生させ
る。この信号はL2私用キヤツシユへ与えられる
とともに、線604を介してANDゲート606
及び608の第1入力へ与えられ、これらのゲー
トを条件ずける。線610上のP―L2ヒツト信
号がANDゲート606の第2入力へ与えられ、
このゲートをアクチブにして、ORゲート61
0′の第1入力へアクチブな入力信号を与える。
ORゲート610′の出力線612上には、「P―
L2からP―L1へのライン転送」信号が与えら
れ、その信号はL2及びL1の私用キヤツシユへ送
られる。線614上のP―L2ミス信号は、AND
ゲート608の第2入力へ与えられ、このゲート
を能動化する。それによつてORゲート616が
能動化されて、その出力線618上に「メモリへ
のフエツチ」信号が与えられ、それがシステム制
御エレメントへ送られる。更に、ANDゲート6
08からのアクチブな出力信号は、ANDゲート
620の第1入力へ与えられる。ANDゲート6
20の第2入力へは、線622上の「メモリから
P―L1へのページ転送完了」信号が印加され
て、このゲートをアクチブにし、アクチブ信号が
ORゲート610′の第2入力へ与えられて、前述
したように線612上にライン転送信号を発生す
る。 線624上の記憶リクエスト信号は、ANDゲ
ート596の第2入力へ与えられて、このゲート
をアクチブにする。その出力線626上には、
「P―L2への記憶」信が発生され、この信号はL2
私用キヤツシユへ送られるとともに、線628を
介して、ANDゲート630及び632の第1入
力へ与えられる。ANDゲート596の出力信号
は、L1私用キヤツシユ又はL1共用キヤツシユの
いずれにも存在しないラインに対する記憶リクエ
ストを意味する。もし目標ラインがL2私用キヤ
ツシユにあれば、線634上のP―L2ヒツト信
号がアクチブとなり、これはANDゲート630
及びORゲート636をアクチブにする。ORゲー
ト636の出力はANDゲート638,640,
642の第1入力へ印加されて、これらのゲート
を条件ずける。ゲート638,640,642は
書込フラグ及び共用フラグの状態をテストするた
めに使用される。 もしANDゲート638の残りの2つの入力で
書込フラグ=1及び共用フラグ=0であれば、こ
のゲートはアクチブとなり、その出力線644上
にアクチブ信号を発生する。この信号はORゲー
ト610′の第3入力へ与えられ、前述したよう
に出力線612上にライン転送信号が発生され
る。もしANDゲート640の第2入力で書込フ
ラグ=0であれば、このゲートはアクチブとな
り、出力線646を介して、プログラム・チエツ
ク信号がプロセツサへ与えられる。もしANDゲ
ート642の残りの2つの入力で書込フラグ=1
及び共用フラグ=1であれば、このゲートはアク
チブとなり、その出力線648上に「P―L2及
びS―L1からのライン転送」信号が発生され
る。この信号はL2私用キヤツシユ及びL1共用キ
ヤツシユへ送られる。 もし目標ラインがL2私用キヤツシユ中に存在
しなければ、線650上のP―L2ミス信号が
ANDゲート632の第2入力へ印加され、この
ゲートをアクチブにする。出力線652上のアク
チブ信号はORゲート616の第2入力へ与えら
れ、その出力線618上にメモリへのフエツチ信
号を発生する。ANDゲート632からのアクチ
ブ信号は、ANDゲート654の第1入力へも与
えられる。ANDゲート654は、その第2入力
へ接続される線656上に「メモリからP―L2
へのページ転送完了」信号を有する。ゲート65
4からのアクチブ信号はORゲート636の第2
入力へ印加され、このゲートをアクチブにする。
ゲート636からのアクチブ信号は、前述したよ
うに、ANDゲート638,640,642の入
力で書込フラグ及び共用フラグの状態をテストす
るために使用される。 これまでの説明から、L2私用キヤツシユに対
するフエツチ・リクエストは、常にラインがL1
私用キヤツシユへ転送される結果となることがわ
かる。しかし、L2私用キヤツシユへの記憶リク
エストの場合、常に書込フラグ及び共用フラグを
テストして、記憶が許されるかどうかを決定する
とともに、ラインがL1私用キヤツシユ又はL1共
用キヤツシユへ転送されるべきか否かを決定しな
ければならない。 要約するに、本明細書において、メイン・メモ
リからの目標ページが、第1及び第2メモリ・レ
ベルの私用キヤツシユ又は共用キヤツシユのどこ
に再配置されるかを、書込フラグ及び共用フラグ
の状態が決定する3レベル・メモリ階層を含む多
重処理システムが開示された。 産業上の応用性 本発明の目的は、改善された多重処理システム
を提供することである。 本発明の他の目的は、改善された多重処理、多
重レベルのメモリ階層を提供することである。 本発明の他の目的は、メモリ階層中に記憶され
た情報ページごとに書込フラグ及び共用フラグを
有する、改善された多重処理3レベル・メモリ階
層を提供することである。上記のフラグは、レベ
ル3の共通メイン・メモリからレベル1及び2の
私用キヤツシユ及び共用キヤツシユへ、関連する
情報ページがどのように使用されるべきかを知ら
せるために利用される。
スしようと試みると、共用ビツトのゼロ状態は、
「プログラム・チエツク」信号をリクエスト・プ
ロセツサへ送り、ページ又はラインは転送されな
い。もしプロセツサがこの情報ページへの書込み
(記憶)を試みると、その書込みはブロツクさ
れ、プログラム・チエツク信号がリクエスト・プ
ロセツサへ送られる。本来、これは、1個だけの
プロセツサの私用キヤツシユに存在することので
きる「非共用」かつ「読出専用」のページであ
る。もし書込ビツトがゼロであり、共用ビツトが
1であれば、ページ及び目標ラインがリクエス
ト・プロセツサのL2及びL1の私用キヤツシユへ
動かされる。もし他のプロセツサがこの同じペー
ジをリクエストすると、それはそのプロセツサの
L2キヤツシユへ移され、目標ラインはそのL1の
私用キヤツシユへ移される。しかし、もしいずれ
かのプロセツサがページへの書込み(記憶)を試
みると、その書込みはブロツクされ、プログラ
ム・チエツク信号がリクエスト・プロセツサへ送
られる。これは、共用されることのできる「読出
専用」ページであり、従つてコピーの各プロセツ
サの私用キヤツシユに存在することができるが、
記憶は許されない。一般的には、命令はそのよう
に(即ち、共用可能、読出専用)とマークされ
る。 もし書込ビツトが1であり、共用ビツトが0で
あれば、このページはリクエスト・プロセツサの
L2の私用キヤツシユへ移され、次いで目標ライ
ンがそのL1の私用キヤツシユへ転送される。も
し他のプロセツサがこのページへのアクセスを試
みると、そのアクセスはブロツクされ、プログラ
ム・チエツク信号がリクエスト・プロセツサへ送
られる。しかし、この情報ページに対する記憶は
許される。 もし書込ビツト及び共用ビツトの双方が1であ
れば、この情報ページはL2の共用キヤツシユへ
移され、この情報ページからの目標ラインがL1
の共用キヤツシユへ転送される。全てのプロセツ
サはそこからラインをフエツチするか、又はそこ
へラインを記憶してよい。 同じプロセツサ群に属する他のプロセツサか
ら、この情報ページに対してリクエストがなされ
ると、L2の共用キヤツシユ中にリクエストされ
たページが発見され、L1の共用キヤツシユ中に
目標ライン及びワードが発見される。その結果、
共用及び書込みが許される。 第4・1図、第4・2図、第5・1図、第5・
2図は、フエツチ・リクエスト及び記憶リクエス
トに関してシステム動作を詳細に示すプロセツ
サ・メモリの論理フローを示す。 ここで、プロセツサ・メモリ「フエツチ・リク
エスト」の論理フロー図である第44・1図及び
第4・2図を参照する。所与のプロセツサからの
「フエツチ・リクエスト」に応答して、プロセツ
サは線68を介して論理ブロツク70及び72へ
「フエツチ・リクエスト」を出す。それは、リク
エストされた情報ラインが、リクエスト・プロセ
ツサのL1私用キヤツシユ又はL1共用キヤツシユ
中に存在するかどうかを決定するためである。論
理ブロツク70で、「L1私用キヤツシユでライ
ン・ヒツトが生じるか」の質問がなされる。もし
答がイエスであれば、論理ブロツク73で示され
るように、リクエスト・プロセツサのL1私用キ
ヤツシユからラインがフエツチされ、そのライン
がリクエスト・プロセツサへ転送され、線74で
示されるように、メモリ・フエツチ・リクエスト
の終りが起る。他方、線76で示されるように、
L1私用キヤツシユでライン・ヒツトが生じなけ
れば、論理プロセスは、論理ブロツク72におけ
る「フエツチ・リクエスト」の出力を待機する論
理ブロツク78へ行く。論理ブロツク72では、
「L1共用キヤツシユでライン・ヒツトが生じる
か」の質問がなされる。もし答がイエスであれ
ば、論理ブロツク80で示されるように、そのラ
インがL1共用キヤツシユからフエツチされ、L1
共用キヤツシユからリクエスト・プロセツサへラ
インが転送され、線74で示されるように、メモ
リ・フエツチ・リクエストの終りが起る。他方、
答がノーであれば、論理プロセスは線82を介し
て論理ブロツク78へ進む。 論理ブロツク70及び72でなされた論理質問
への答が共にノーであれば、これはリクエストさ
れたラインがL1に存在しないことを示し、論理
プロセスは論理ブロツク78から論理ブロツク8
4及び86へ進む。それは、リクエストされたラ
インを含む情報ページが、L2の私用又は共用キ
ヤツシユに記憶されているかどうかを決定するた
めである。論理ブロツク84で、「L2の私用キヤ
ツシユでライン・ヒツトが生じるか」の質問がな
される。もし答がイエスであれば、論理プロセス
は論理ブロツク88へ進む。論理ブロツク88
は、リクエストされた情報ラインをL2私用キヤ
ツシユ(P―L2)からL1私用キヤツシユ(P―
L1)へ移し、次いで論理プロセスは論理ブロツ
ク73へ進み、次いでシステム論理は前に説明し
たように進行する。もし答が線90で示されるよ
うにノーであれば、論理プロセスは論理ブロツク
92へ進み、論理ブロツク86における論理プロ
セスの出力を待機する。 論理ブロツク86で、「L2共用キヤツシユでラ
イン・ヒツトが生じるか」の質問がなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク94へ進む。論理ブロツク94は、リクエス
トされたラインがL2共用キヤツシユ(S―L2)
からL1共用キヤツシユ(S―L1)へ移されるこ
とを示し、次いで論理プロセスは前述したように
進行する。もし答が線96で示されるようにノー
であれば、論理プロセスは論理ブロツク92へ進
む。もしラインがL2の私用又は共用キヤツシユ
中に存在しなければ、論理プロセスは論理ブロツ
ク92から論理ブロツク98へ進む。それは、メ
イン・メモリ及びシステム制御エレメント中のタ
グ・アレイにアクセスするためである。 タグ・アレイは、メイン・メモリ情報のページ
ごとに8ビツトを含む。最左方からの2ビツト
は、書込フラグ(書込ビツト)及び共用フラグ
(共用ビツト)である。残りの6ビツトはプロセ
ツサ識別フラグ(識別ビツト)であつて、これは
関連したプロセツサの私用のL2又はL1のキヤツ
シユにページが存在するかどうかを示す。もしペ
ージがプロセツサの私用キヤツシユにあれば、ビ
ツトは1であり、そうでなければ、それはゼロで
ある。かくて定義されたタグ・ビツトは6つの多
重処理を実行するのに十分である。次いで論理プ
ロセスは論理ブロツク100へ進む。論理ブロツ
ク1000では、「共用フラグは1に等しいか」
の質問がなされる。もし答がイエスであれば、論
理プロセスは論理ブロツク102へ進み、答がノ
ーがあれば、論理プロセスは論理ブロツク104
へ進む。 論理ブロツク100でなされた質問への答がイ
エスであれば、論理ブロツク102で「書込フラ
グは1に等しいか」の質問がなされる。もし答が
イエスであれば、論理プロセスは論理ブロツク1
06へ進む。論理ブロツク106は、目標ライン
を含む情報ページをメイン・メモリからL2共用
キヤツシユ(S―L2)へ移すことを示す。次い
で、論理プロセスは、論理ブロツク94で示され
るように、リクエストされたページのラインを、
L2共用キヤツシユからL1共用キヤツシユへ移
し、次いで論理プロセスは前述したように進行す
る。 書込フラグ及び共用フラグの双方が1である
時、情報ページはL2共用キヤツシユへ移され、
次いでそこに含まれる目標ラインがL1共用キヤ
ツシユへ移され、そこから目標ラインがリクエス
ト・プロセツサへフエツチされることに注意され
たい。もし論理ブロツク102の質問に対する答
が、線108に示されるようにノーであれば、論
理ブロツク110で示されるように、リクエスト
された情報ページはメイン・メモリからL2私用
キヤツシユへ移される。そしてCPUビツトがオ
ンにされ、論理プロセスは前述したように進行す
る。 もし論理ブロツク100でなされた質問に対す
る答がノーであれば、論理プロセスは論理ブロツ
ク104へ進行し、そこで「CPUビツトが1に
等しいか」の質問がなされる。もしいずれかの
CPUビツトが1であれば、論理ブロツク112
で示されるように、「プログラム・チエツク」信
号がリクエスト・プロセツサへ転送される。もし
全てのCPUビツトがゼロであれば、論理ブロツ
ク110で示されるように、ページがL2私用キ
ヤツシユへ移され、CPUビツトがオンにされ
る。次いで、論理ブロツク88で示されるよう
に、目標ラインがL1私用キヤツシユへ移され、
次いで論理ブロツク73で示されるように、フエ
ツチが実行される。 ここで、プロセツサ・メモリ「記憶リクエス
ト」の論理フロー図である第5・1図及び第5・
2図を参照する。線114に示されるような所与
のプロセツサ・メモリ「記憶リクエスト」に応答
して、論理プロセスは論理ブロツク116及び1
18へ進む。それは、目標ラインがL1の私用又
は共用キヤツシユにあるかどうかを決定するため
である。論理ブロツク116で、「目標ラインが
L1私用キヤツシユに存在するか」の質問がなさ
れる。もし答がイエスであれば、論理プロセスは
論理ブロツク120へ進み、答がノーであれば、
線122で示されるように論理ブロツク124へ
進む。もし論理ブロツク116の質問に対する答
がイエスであれば、「書込フラグは1に等しい
か」の質問が論理ブロツク120でなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク126へ進み、L1私用キヤツシユへ記憶が
なされ、次いでプロセツサは、線128で示され
るように、メモリ記憶リクエストの終りが存在す
ることを知らされる。もし答がノーであれば、論
理プロセスは論理ブロツク130へ進む。論理ブ
ロツク130は、プログラム・チエツク信号を転
送する。 論理ブロツク118で、「L1共用キヤツシユに
ラインが存在するか」の質問がなされる。もし答
がイエスであれば、論理プロセスは、論理ブロツ
ク132へ進む。論理ブロツク132はL1共用
キヤツシユへ記憶がなされることを示し、次いで
線128で示されるように、メモリ記憶リクエス
トの終了がリクエストしたプロセツサへ知らされ
る。他方、論理ブロツク118における答がノー
であれば、論理プロセスは論理ブロツク124へ
進む。そこで、論理ブロツク116でなされた質
問への答がノーであつたならば(これは、リクエ
ストされたラインがP―L1にないことを示す)
論理プロセスは論理ブロツク136及び138へ
進む。それは、目標ラインがL2の2つのキヤツ
シユの1つに記憶されたページに存在するかどう
かを決定するためである。 論理ブロツク136で、「目標ラインはL2私用
キヤツシユに存在するか」の質問がなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク140へ進み、もし答がノーであれば線14
2で示されるように論理ブロツク144へ進む。
論理ブロツク140で、「書込フラグは1に等し
いか」の質問がなされる。もし答がイエスであれ
ば、論理プロセスは論理ブロツク146へ進み、
目標ラインがL2私用キヤツシユからL1私用キヤ
ツシユへ移される。次いで論理プロセスは論理ブ
ロツク120へ進み、次いで論理ブロツクは前述
したように進行する。もし論理ブロツク140に
おける質問への答がノーであれば、線148で示
されるように、論理プロセスはプログラム・チエ
ツクを知らせるため、論理ブロツク130へ進
む。 論理ブロツク138で、「目標ラインがL2共用
キヤツシユに存在するか」の質問がなされる。も
し答がイエスであれば、論理プロセスは論理ブロ
ツク150へ進む。論理ブロツク150は、目標
ラインがL2共用キヤツシユからL1共用キヤツシ
ユへ移されることを示し、次いで論理ブロツク1
32で示されるように、目標ラインがL1共用キ
ヤツシユへ記憶される。次いで線128で示され
るように、メモリ記憶リクエストの終りを示す信
号が、リクエストしたプロセツサへ与えられる。
もし論理ブロツク138でなされた質問への答が
ノーであれば、152で示されるように、論理プ
ロセスは論理ブロツク144へ進む。もし論理ブ
ロツク136でなされた質問への答がノーであれ
ば(これは、目標ラインがL1又はL2のキヤツシ
ユにないことを示す)、論理ブロツク154で示
されるように、メイン・メモリ及びシステム制御
エレメント中のタグ・アレイがアクセスされる。 次いで論理プロセスは論理ブロツク156へ進
み、「書込フラグは1に等しいか」の質問がなさ
れる。もし答がイエスであれば、論理プロセスは
論理ブロツク158へ進み、もし答がノーであれ
ば、論理プロセスは、プログラム・チエツクを知
らせるため、論理ブロツク130へ進む。論理ブ
ロツク158で、「共用フラグは1に等しいか」
の質問がなされる。もし答がイエスであれば、論
理ブロツク160で示されるように、リクエスト
された情報ページがメイン・メモリからL2共用
キヤツシユへ転送され、次いで論理プロセスは前
述したように論理ブロツク150及び132へ進
む。もし論理ブロツク158でなされた質問への
答がノーであれば、線162で示されるように、
論理プロセスは論理ブロツク164へ進み、
「CPUビツトが1に等しいか」の質問がなされ
る。もし答がイエスであれば、論理プロセスは、
プログラム・チエツクを知らせるため、論理ブロ
ツク130へ進む。もし答がノーであれば、論理
プロセスは論理ブロツク166へ進む。論理ブロ
ツク166は、リクエストされた情報ページをメ
イン・メモリからリクエスト・プロセツサのL2
私用キヤツシユへ移し、かつCPUビツトをオン
にする。次いで論理プロセスは、前述したように
論理ブロツク146,120,126へ進む。 IBM/370の如く記憶保護キーを含むプロセ
ツサでは、タグ・アレイは記憶保護メモリの1部
として設けられてよく、仮想アドレスを採用する
プロセツサでは、タグ・アレイは再配置ページ・
テーブルの1部として設けられてよい。 しかし、本実施例では、それはシステム制御エ
レメントにある別個のアレイとして仮定され、
「タグ・アレイ設定」命令によつて書込まれる。
それは、「タグ・アレイ挿入」命令によつて、汎
用レジスタへ読出される(ソフトウエアによつて
検査するため)。これら2つの命令は、IBM/3
70の2つの記憶保護命令(記憶キー設定命令及
び記憶キー挿入命令)と同じように働く。もつと
も、前者2つの命令は、記憶保護アレイではな
く、タグ・アレイ上で動作する点が異なる。 第6・1図及び第6・2図は、単一のプロセツ
サ(この場合、プロセツサA)がどのようにして
その私用キヤツシユ及び共用キヤツシユへアクセ
スするかを示すブロツク図である。メモリ・リク
エストは、L1私用キヤツシユのデイレクトリイ
(L1私用デイレクトリイ)及びL1共用キヤツシユ
のデイレクトリイ(L1共用デイレクトリイ)へ
メモリ・リクエスト及びアドレスを送ることによ
つて開始される。もしいずれかのデイレクトリイ
でアドレスの一致が起り、かつラインが有効であ
れば(V=1)、関連したL1キヤツシユがアクセ
スされる。L1私用キヤツシユ及びL1共用キヤツ
シユが4ウエイ・セツトの連想キヤツシユである
と仮定すると、4個のワードがキヤツシユから並
列に読出され、リクエストされたワードがプロセ
ツサへ(又はプロセツサから)ゲートされる。 もしL1私用キヤツシユ又はL1共用キヤツシユ
のいずれにおいても比較の一致が起らなければ、
目標ラインを含むページがL2にあるかどうかを
決定するため、L2私用キヤツシユ及びL2共用キ
ヤツシユのデイレクトリイがアクセスされる。こ
れらL2キヤツシユのいずれかで比較の一致が生
じると、目標ラインがL1キヤツシユへ移され、
プロセツサによるワード・アクセスが実行され
る。 ライン又はページは私用キヤツシユ又は共用キ
ヤツシユのいずれかにあり、これら双方に同時に
存在することはない。L1又はL2にある2つのキ
ヤツシユは並列にアクセスすることができる。 以下に述べる説明は、プロセツサAによるキヤ
ツシユ・アクセスの詳細な説明である。プロセツ
サBによるキヤツシユ・アクセスも同様に動作す
る。 代表的なメモリ・リクエストの動作シーケンス
を考察すると、目標ラインのアドレスは、線36
及び46を介してL1私用デイレクトリイ34及
びL1共用デイレクトリイ44へ与えられ、かつ
ANDゲート164及び170へ与えられる。も
し目標ラインがL1私用キヤツシユ12に存在す
れば、デイレクトリイ34は、アクセス信号を線
166を介してL1私用キヤツシユ12へ与え、
リクエストされた情報ラインは線16を介してプ
ロセツサAへ与えられる。目標ラインがL1私用
キヤツシユ12中に存在しなければ、L1私用デ
イレクトリイの一致信号がANDゲート164及
びANDゲート170の最初の入力へ与えられ
る。 もし目標ラインがL1共用キヤツシユ14中に
存在すれば、L1共用デイレクトリイ44は線1
72を介してアクセス信号をL1共用キヤツシユ
14へ与え、そこから目標ラインが線18を介し
てプロセツサAへ読出される。他方、もし目標ラ
インがL1共用キヤツシユ14に存在しなけれ
ば、一致信号が線174を介してANDゲート1
64及び170の第2入力へ与えられる。これら
信号の双方が存在すると、目標ラインがL1キヤ
ツシユのいずれにも存在しなかつたことを示す。
その場合、ANDゲート164は、線176を介
して線46上のライン・アドレスをL2共用デイ
レクトリイ48へ通し、ANDゲート170は、
線178を介して、線36上のライン・アドレス
をL2私用デイレクトリイ38へ通す。 更に、線168及び174上の一致信号は、
ANDゲート180へ印加される。ANDゲート1
80は、線182上のアクセス信号を、L2共用
デイレクトリイ48及びL2私用デイレクトリイ
38へ与える。もし目標ラインを含む情報ページ
がL2私用キヤツシユ20に存在すれば、一致信
号が線186を介してL2私用キヤツシユ20へ
与えられる。それは、線188上のアドレスに従
つて目標ラインを線24を介してL1私用キヤツ
シユ12へゲート・アウトし、次いでそこから線
18を介してプロセツサAへゲート・アウトする
ためである。他方、もしデイレクトリイ38中で
デイレクトリイの一致が生じなかつたならば、一
致信号が線190を介してANDゲート192へ
与えられる。 L2共用デイレクトリイ48がアクセスされ、
かつS―L2デイレクトリイ一致信号が存在すれ
ば、このゲート信号は線194を介してL2共用
キヤツシユ22へ与えられる。それは、線188
上のライン・アドレスに従つて目標ラインを線2
6を介してL1共用キヤツシユ14へゲートし、
次いで線18を介してプロセツサAへゲートする
ためである。他方、デイレクトリイ48からデイ
レクトリイ一致信号が生じなければ、S―L2デ
イレクトリイ一致信号が線196を介してAND
ゲート192へ与えられる。 ANDゲート192へ至る入力線190及び1
96上にある一致信号の同時発生は、目標ライン
がL1又はL2に存在しないことを示し、メイン・
メモリ・アクセス信号が線198を介してシステ
ム制御エレメント6へ与えられる。それは、目標
ラインを含む情報ページをメイン・メモリからフ
エツチするためである。次に、この信号は、前述
したように、このページのための書込フラグ・ビ
ツト及び共用フラグ・ビツトの状態に従つて、
L2の私用又は共用キヤツシユへ与えられる。 第7図は、私用キヤツシユ又は共用キヤツシユ
にアクセスするための、24ビツト・メモリ・アド
レスのアドレシング構造を示す。キヤツシユ及び
その関連したハードウエアが私用キヤツシユであ
ろうと共用キヤツシユであろうと、同一のアドレ
ス・ビツトが使用される。 アドレスAはビツト(0―4)で構成され、ペ
ージがL2キヤツシユへ書込まれる時L2デイレク
トリイへ書込まれる。アドレスBはビツト(5―
11)で構成され、L2デイレクトリイをアドレス
するために使用される。アドレスCはビツト(0
―4)で構成され、L2デイレクトリイの出力と
比較される。アドレスDはビツト(5―16)で構
成され、L2キヤツシユをアドレスするために使
用される。アドレスEはビツト(5―11)で構成
され、置換アレイをアドレスするために使用され
る。アドレスFはビツト(0―9)で構成され、
新しいラインがL1キヤツシユへ置かれる時L1デ
イレクトリイへ書込まれる。アドレスGはビツト
(10―16)で構成され、L1デイレクトリイをアド
レスするために使用される。アドレスHはビツト
(0―9)で構成され、L1デイレクトリイの出力
と比較される。アドレスIはビツト(10―20)で
構成され、L1キヤツシユはアドレスするために
使用される。アドレスJはビツト(10―16)で構
成されL1置換アレイをアドレスするために使用
される。 ここで第8図を参照すると、そこにはプロセツ
サAのためのL1私用キヤツシユ12及びそれに
関連したキヤツシユ・コントロール兼デイレクト
リイ34(第2図参照)の詳細なブロツク図が示
される。プロセツサBのためのL1私用キヤツシ
ユ27及び関連したキヤツシユ・コントロール兼
デイレクトリイ54は、同じような構成を有し、
かつ同じように動作する。示されるシステムは、
典型的な4ウエイ・セツト連想キヤツシユ、デイ
レクトリイ、更新/置換アレイ及び論理を含む。
L1私用キヤツシユ12は、ワード入力ゲーテイ
ング・ネツトワーク200、ワード出力ゲーテイ
ング・ネツトワーク202、及びORゲート20
4を含む。キヤツシユ・コントロール兼デイレク
トリイ34は、アドレス・アレイ206、アドレ
ス入力ゲーテイング・ネツトワーク208、及び
アドレス比較ネツトワーク210を含む。更新置
換アレイは、置換アレイ212、更新/置換論理
214、及びアドレス・ゲーテイング・ネツトワ
ーク216を含む。プロセツサAから来る線36
上のアドレスは、デイレクトリイ/キヤツシユ及
び置換アレイをアドレスするために使用される。 前記の第7図は、24ビツト・メモリ・アドレス
の各ビツトが、第8図に示される主たるエレメン
トへどのように割当てられるかを示す。アドレス
入力ゲーテイング・ネツトワーク208へアドレ
スFが与えられ、アドレス・アレイ206へアド
レスGが与えられ、アドレス比較ネツトワーク2
10へアドレスHが与えられる。アドレス・アレ
イ206からアドレス比較ネツトワーク210へ
同時に読出された4つのアドレスは、アドレスH
の適当なビツトと比較される。それは、4つのア
ドレスのどれが一致するかを決定するためであ
る。例えば、もしアドレスAが一致し、かつその
有効ビツトが1に等しければ、Aワードがキヤツ
シユから読出される。これは、線220を介して
ワード出力ゲーテイング・ネツトワーク202へ
与えられるA選択線218上のゲート信号によつ
て達成される。更にA選択信号はプロセツサAへ
与えられる。ワード出力ゲーテイング・ネツトワ
ーク202からの線222は、リクエストされた
データをORゲート204及びデータ・バス・ア
ウト224へ与える。もし4つのワードのいずれ
も一致しなければ、ミス信号が発生される。もし
記憶動作が実行されるべきであれば、データ・バ
ス・イン226上のデータがワード入力ゲーテイ
ング・ネツトワーク200へ与えられ、線220
上のA選択信号がワード入力ゲーテイング・ネツ
トワーク200をしてデータをキヤツシユ12へ
与えさせる。 置換アレイ212及びそれに関連した論理21
4は、連想キヤツシユの各セツトにある4つのラ
インのいずれが最も古い時点に参照又は使用され
たかを追跡する。最も古い時点に使用された
(LRU)ものの置換論理は、米国特許第4008460
号に説明されているので、論理動作の詳細は説明
しない。 ここでL1私用キヤツシユのためのデイレクト
リイ・レジスタの詳細な図である第9図を参照す
る。デイレクトリイが線228を介して特定のア
ドレスでアクセスされる時、デイレクトリイ・レ
ジスタ229はそのアドレス内容、即ち4つのア
ドレスA,B,C,D及び関連した有効(V)、
変更(CH)、書込(WR)の各状況フラグを受取
る。これら4つのアドレスは、リクエストされた
ラインがキヤツシユ中にあるかどうかを決定する
ため、アドレス比較ネツトワーク210の中で線
228上のリクエスト・アドレスと並列に比較さ
れる。もし比較が等しく、関連した有効フラグが
1であれば、比較回路はキヤツシユに対する適当
な選択線を能動化する。即ち、A選択線、B選択
線、C選択線、D選択線のいずれかがその上に1
を有し、これが230で示されるようにL1私用
キヤツシユへ印加される。更にこれらに選択信号
はORゲート232へ印加される。ORゲート23
2はP―L1ヒツト信号を線234に与える。更
にこの信号はインバータ236へ印加され、イン
バータ236は線238へP―L1ミス信号を与
える。 更に、線240上の有効フラグは置換論理へ与
えられる。何故ならば、ミスの場合、有効フラグ
が0に等しい(無効)ラインは、常に使用時点の
最も古い(LRU)ラインの前に置換されるから
である。 前述したように、それぞれのラインはCHフラ
グ及びWRフラグを有する。これらのフラグは線
242及び224を介して制御論理回路へ入力さ
れる。記憶を許すため、WRフラグは1でなけれ
ばならず、もしCHフラグが1であれば、ライン
はミスの場合にL2私用キヤツシユへ移され(読
出され)ねばならない。 ここでL1共用キヤツシユのためのデイレクト
リイ・レジスタを示す第10図を参照する。アド
レス比較ネツトワーク246は線248を介して
リクエスト・アドレスを受取り、かつレジスタ2
50からアドレスA,B,C,Dを受取る。レジ
スタ250は第9図のレジスタ229と同様なも
のであるが、WRフラグがないことが異る。これ
は、L1共用キヤツシユ中の全てのラインが1に
等しい書込フラグ及び共用フラグを有しなければ
ならないからである。L1共用デイレクトリイ中
の各ラインについて、変更フラグが必要である。
それは、記憶が実際に生じるかどうか、従つてラ
インがミスの場合にカースト・アウトされねばな
らないかどうかを示すためである。もしアドレス
がネツトワーク246中で比較の一致を生じ、関
連した有効フラグが1であれば、252で示され
るように、比較ネツトワーク246はキヤツシユ
に対する適当な選択線を能動化する。 更に選択信号はORゲート254へ与えられ
る。S―L1ヒツト信号は線256及びインバー
タ258へ与えられる。そして線260上にS―
L1ミス信号が生じる。レジスタ250から出る
線262上の変更信号は、第9図に関して説明し
たように、制御論理回路へ与えられる。 キヤツシユの全ては、4ウエア・セツトの連想
キヤツシユであると仮定する。4つのアドレス
は、並列にデイレクトリイから読出される。もし
デイレクトリイから読出された4つのアドレス
(A,B,C,D)の1つがリクエスト・アドレ
スと一致し、その有効ビツトが1に等しければ、
キヤツシユがアクセスされ、4個のワードが並列
に読出される。これらのワードは、デイレクトリ
イから読出されたライン・アドレスと同じように
A,B,C,Dで表わす。デイレクトリイ比較回
路の出力は、選択されたワードを、キヤツシユの
ワード・レジスタからデータ・バス・アウトへ
(又はデータ・バス・インからワード・レジスタ
へ)ゲートする。例えば、もしアドレスCが一致
すれば、ワードCがプロセツサへ(又はプロセツ
サから)ゲートされる。選択されたラインが最も
新しい使用時点のものであることを示すため、
LRU置換アレイが更新される。 もしL1デイレクトリイで一致が生じなけれ
ば、これはライン・ミスであり、その時、リクエ
スト・アドレスはメモリ中の次のレベルへ(実施
例ではレベル2のキヤツシユへ)送られる。もし
L2デイレクトリイの一致が起れば(キヤツシ
ユ・ヒツト)、目標ラインがL1キヤツシユへ持つ
て来られ、そのアドレスがデイレクトリイに記憶
される。置換されるラインは、更新/置換論理に
よつて示される。前述したように、L1私用キヤ
ツシユは各キヤツシユ・ラインのために3つのフ
ラグを含む。それらは次のように限定される。V
フラグは、「電源オン」及び主たるリセツトでオ
フにされ、新しいラインがキヤツシユへ持つて来
られた時オンにされる。多重処理システムにおい
て、Vフラグは交差質問ヒツトの場合にオフされ
る。 CHフラグは、ラインが変更される(即ち、そ
こへ書込まれる)時オンにされる。WRビツト
は、ラインがL2からフエツチされ、かつL2ペー
ジ書込フラグが1である時オンにされる。L1共
用キヤツシユはラインごとにVフラグ及びCHフ
ラグを有する。それは、L1私用キヤツシユにお
けると同じような機能を有する。 ここで第11図を参照する。第11図はL2私
用キヤツシユ及びそのデイレクトリイと、第8図
に関連してL1論理について説明した場合と同じ
ように動作する更新/置換論理を示すブロツク図
である。L2デイレクトリイの場合、その記憶さ
れたアドレスは、どのページがL2私用キヤツシ
ユにあるかを示す。L2キヤツシユそれ自体はラ
イン・レベルまで下つてアドレスされる。何故な
らば、これはL2キヤツシユから読出され、かつ
L2キヤツシユとL1キヤツシユとの間を転送され
る単位だからである。 第11図はプロセツサAのためのL2私用キヤ
ツシユ20、及びそれに関連したキヤツシユ・コ
ントロール兼デイレクトリイ38を含む。プロセ
ツサBのためのL2私用キヤツシユ、及びそれに
関連したキヤツシユ・コントロール兼デイレクト
リイはプロセツサAに対するものと同様のもので
あり、同じように動作する。示されるシステム
は、典型的な4ウエイ・セツト連想キヤツシユ、
デイレクトリイ、更新/置換アレイ及び論理を含
む。L2私用キヤツシユ20はワード入力ゲーテ
イング・ネツトワーク264、ワード出力ゲーテ
イング・ネツトワーク266、ORゲート268
を含む。キヤツシユ・コントロール兼デイレクト
リイ38はアドレス・アレイ270、アドレス入
力ゲーテイング・ネツトワーク272、及びアド
レス比較ネツトワーク274を含む。更新置換ア
レイは置換アレイ276、更新/置換論理278
及びアドレス・ゲーテイング・ネツトワーク28
0を含む。 プロセツサAから来る線24上のアドレスは、
デイレクトリイ、キヤツシユ及び置換アレイをア
ドレスするために使用される。第7図は、24ビ
ツトのメモリ・アドレスが、どのように第11図
に示される主たるエレメントへ割当てられるかを
示す。アドレスAはアドレス入力ゲーテイング・
ネツトワーク272へ与えられ、アドレスBはア
ドレス・アレイ270へ与えられ、アドレスCは
アドレス比較ネツトワーク274へ与えられる。
デイレクトリイ・アレイ270からアドレス比較
ネツトワーク274へ同時に読出される4つのア
ドレスは、どれが比較の一致を生じるかを決定す
るため、アドレスCの適当なビツトと比較され
る。例えば、もしアドレスAの比較が一致し、そ
の有効ビツトが1に等しければ、ワードAがキヤ
ツシユから読出される。これは、A選択線282
上にあるゲート信号を、線284を介して、ワー
ド出力ゲーテイング・ネツトワーク266へ与え
ることによつて達成される。ワード出力ゲーテイ
ング・ネツトワーク266から来る線286は、
リクエストされたデータをORゲート268及び
データ・バス・アウト288へ与える。もし4つ
のワードのいずれも比較の不一致となれば、ミス
信号が発生される。もし記憶動作が達成されるべ
きであれば、バス290上のデータ・イン信号が
ワード入力ゲーテイング・ネツトワーク264へ
与えられ、線284上のA選択信号がワード入力
ゲーテイング・ネツトワーク264を能動化す
る。それは、L2キヤツシユ20へデータ・イン
信号を与えるためである。 置換アレイ276及びそれに関連した更新/置
換論理278及びアドレス・ゲーテイング・ネツ
トワーク280は、連想キヤツシユにおける4本
の線のいずれが最も古い時点で参照(又は使用)
されたかを追跡する。最旧時使用(LRU)置換
論理の詳細は米国特許第4008460号に説明されて
いるので、論理動作の詳細はここでは説明しな
い。 第12図はL2私用デイレクトリイ・レジスタ
のブロツク図である。このレジスタは、第9図に
示されるL1私用デイレクトリイ・レジスタと同
様のものである。ページごとのフラグは、L1私
用デイレクトリイが各ラインについて有するもの
と同じであることに注意されたい。実際の記憶は
L2で起らず、L1で起るので、ラインがL2私用キ
ヤツシユからL1私用キヤツシユへ移る時、L2に
おけるWRフラグはL1デイレクトリイへ通され
る。変更されたラインがL1私用キヤツシユから
L2私用キヤツシユへ転送される時、L2のCHフラ
グが1へセツトされる。L2私用デイレクトリイ
から来るアドレスA,B,C,Dはデイレクトリ
イ・レジスタ292へ与えられ、それぞれのアド
レスはアドレス比較ネツトワーク294へ与えら
れる。更にネツトワーク294は線296を介し
てプロセツサからリクエスト・アドレスを受取
る。アドレスの一致が生じ、関連したVビツトが
1であれば、A選択、B選択、C選択、D選択の
各信号が、298で示されるようにL2私用キヤ
ツシユへ与えられる。これらの信号はORゲート
300へも与えられ、ORゲート300はその出
力線302上にP―L2ヒツト信号を与える。こ
の信号はインバータ304へ与えられ、インバー
タ304は出力線306上にP―L2ミス信号を
与える。レジスタ292に記憶されたアドレスに
関連した線308上のVビツト信号は、線308
を介して置換論理へ与えられ、CHビツト信号及
びWRビツト信号は線310及び312を介して
制御論理及びL1私用キヤツシユへ与えられる。 第13図はL2共用デイレクトリイ・レジスタ
のブロツク図である。このレジスタは、第10図
に示されるL1共用デイレクトリイ・レジスタと
同様のものである。L2共用デイレクトリイはWR
フラグを含まない。記憶が実際に起り、従つてミ
スの場合にラインをカースト・アウトしなければ
ならないかどうかを示すため、L2共用デイレク
トリイ中の各ラインについてCHフラグが必要と
される。アドレスA,B,C,Dはレジスタ31
4へ与えられ、アドレス及びそれに関連した有効
ビツトはアドレス比較ネツトワーク316へ印加
される。ネツトワーク316は、線318を介し
てプロセツサから来るリクエスト・アドレス信号
を印加される。アドレスの一致が生じ、関連した
有効ビツトが1である時、A選択線、B選択線、
C選択線、又はD選択線の1つが1レベルにあ
り、その信号は320で示されるようにL2共用
キヤツシユへ印加される。更にその信号はORゲ
ート324へ印加され、ORゲート324はその
出力線326上にS―L2デイレクトリイ一致信
号を与える。この信号はインバータ328の入力
へも印加され、インバータ328は、アドレスの
一致が生じない時、その出力線330上にS―
L2デイレクトリイ一致信号を与える。レジスタ
314から来るCHビツト信号は、前述した理由
により、制御論理へ至る線332へ与えられる。 第14図はシステム制御エレメント6の中にあ
るタグ・アレイのブロツク図である。システム制
御エレメントがメイン・メモリからページをリク
エストする時、それは同時にシステム制御エレメ
ント6の中にあるタグ・アレイ334にアクセス
する。タグ・アレイは、タグ・アレイ・ワード3
36で示されるように、メイン・メモリのページ
ごとに8ビツトを含む。左方から2つのビツトは
書込みフラグ及び共用フラグである。残りの6ビ
ツトはプロセツサ識別フラグ(CPUビツト)で
あり、ページが関連したプロセツサのL2又はL1
の私用キヤツシユにあるかどうかを示す。もしペ
ージがプロセツサの私用キヤツシユ中にあれば、
ビツトは1である。そうでなければ、それはゼロ
である。かくてタグ・アレイ・ワード336は6
つの多重処理を実行するために使用される。 もし書込フラグ及び共用フラグの双方が1状態
にあれば、リクエストされたページはL2共用キ
ヤツシユへ移動され、目標ラインがL1共用キヤ
ツシユへ移動され、そこで目標ワードがフエツチ
される。 もし共用フラグがゼロであれば、CPUフラグ
がテストされ、それらが全てゼロかどうかが決定
される。もしいずれかのCPUビツトが1であれ
ば、「プログラム・チエツク」信号がリクエスト
したプロセツサへ戻される。もし全てのCPUビ
ツトがゼロであれば、ページがL2私用キヤツシ
ユへ移動され、目標ラインがL1私用キヤツシユ
へ移動され、そこでフエツチが実行される。ペー
ジが私用キヤツシユへ移される時、タグ・アレイ
の中にあるリクエストしたプロセツサのCPUビ
ツトも1へセツトされる。 WR及びSHビツトは、CPU汎用レジスタから
線338を介して入力ANDゲーテイング・ネツ
トワーク340へ与えられる。ネツトワーク34
0は、WR及びSHビツトをタグ・アレイ334
へゲートするため、線342上のタグ・アレイ設
定信号によつて能動化される。WR、SH及び
CPUビツトをタグ・アレイ334からワード・
レジスタ341へ読出すため、所与の情報ページ
に対するメモリ・アドレスが線337を介してア
ドレス・レジスタ339へ印加される。上記のビ
ツトは、線343を介して制御回路及び出力
ANDゲーテイング・ネツトワーク344へ印加
される。ネツトワーク344は線346上のタ
グ・アレイ挿入信号によつて能動化される。それ
は、ネツトワーク344を能動化して、WR、
SHの各ビツトを、線348を介してCPU汎用レ
ジスタへ印加するためである。 IBM/370のように記憶保護キーを含むプロ
セツサでは、タグ・アレイ334は記憶保護メモ
リの1部として構成することができ、仮想アドレ
ス方式を採用するプロセツサでは、タグ・アレイ
334は再配置ページ・テーブルの1部として構
成することができる。 しかし、本実施例においては、それはシステム
制御エレメント6に設けられた別個のアレイであ
るとし、タグ・アレイ設定命令によつて書込まれ
るものと仮定する。それは、タグ・アレイ挿入命
令によつて、汎用レジスタへ読出される(ソフト
ウエアによる検査のため)。これら2つの命令は
IBM/370における2つの記憶保護命令(記憶
キー設定命令及び記憶キー挿入命令)と同じよう
に働く。勿論、前者2つの命令は、記憶保護アレ
イではなくタグ・アレイ上で動作する。 第15図はタグ・アレイへ書込むための論理を
示す。ソフトウエアが特定のページのために書込
フラグ及び共用フラグをセツトしたいと望む時、
線350上のタグ・アレイ設定信号が、ANDゲ
ート352及び354の第1の入力へ印加され
る。ANDゲート352の第2入力へ印加される
線356上の書込ビツト=1信号が1である時、
線358を介して書込フラグ=1設定信号がタ
グ・アレイへ印加される。線360上の共用ビツ
ト=1信号が1である時、ゲート354から来る
線362上の共用フラグ=1設定信号は1であ
り、これはタグ・アレイへ印加される。書込及び
共用フラグの設定は、命令によつてアドレスされ
る汎用レジスタ中でなされる(IBM/370のア
ーキテクチヤであると仮定する)。これらの設定
信号は、プロセツサによるタグ・アレイ設定信号
及びメモリ・ページ・アドレス信号と共に、タ
グ・アレイへゲートされる。タグ・アレイはペー
ジ・アドレスを使用して読出され、書込フラグ及
び共用フラグは、書込ビツト線及び共用ビツト線
の設定ごとに書込まれる。 情報ページがメイン・メモリからプロセツサの
L2私用キヤツシユへゲートされる時、線364
上にあるP―L2ページ・ゲート信号がANDゲー
ト366,368,370の第1入力へ印加さ
れ、そのページ及びプロセツサのためのタグ・ア
レイへ1が書込まれる。例えば、線372上の
CPU1―L2ミス信号が1である時、ゲート36
6から出る出力線374上のCPU1=1設定信
号は1であり、これはタグ・アレイへ印加され
る。ANDゲート368の第2入力へ印加される
線376上のCPU2―L2ミス信号が1である
時、その出力線378上のCPU2=1設定信号
は1であり、それがタグ・アレイへ印加される。
線380上の1のCPU6―L2ミス信号がANDゲ
ート370の第2入力へ印加された時、その出力
線382上のCPU6=1設定信号が1となり、
それがタグ・アレイへ印加される。 第16図は書込フラグ及び共用フラグ制御論理
を示す。第15図で発生されたCPU1=1設定
信号乃至CPU6=1設定信号は、ORゲート38
4の入力へ印加され、ORゲート384の出力は
ANDゲート386の第1入力及びインバータ3
88の入力へ印加され、インバータ388の出力
はANDゲート390の第1入力へ印加される。
共用フラグ=0信号はANDゲート386及び3
90の第2入力へ印加される。書込フラグ=0信
号は線388を介してANDゲート390′の第1
入力へ印加される。ANDゲート390′は、線3
92を介してCPU記憶リクエスト信号をその第
2入力へ印加される。ANDゲート386及び3
90の出力信号は、ORゲート392の第1及び
第2入力へ印加される。ANDゲート390の出
力信号はORゲート394の第1入力へ印加され
る。ANDゲート396は、その第1入力へ書込
フラグ=0信号を印加され、その第2入力へ共用
フラグ=1信号を印加される。ゲート396の出
力信号はORゲート394の第2入力へ印加され
る。ANDゲート398は、その第1入力へ書込
フラグ=1信号を印加され、その第2入力へ共用
フラグ=1信号を印加される。もしANDゲート
386及び390の第1入力へ印加される共用フ
ラグ=0信号が1であり、かつORゲート384
の出力が1であれば、ORゲート392はメモ
リ・キヤンセル信号を与える。それによつて、リ
クエストしたプロセツサへ行くメモリ・キヤンセ
ル信号及びプログラム・チエツク・ターン・オン
信号は、他のコピーが他のプロセツサへ送られる
のを防止する。更に、もしANDゲート390′が
「2進の1」出力信号を与えていれば、メモリ・
リクエストはキヤンセルされ、プログラム・チエ
ツクがオンにされる。 もし共用フラグがゼロであり、CPUがその私
用キヤツシユ中に関連するページを含んでいなけ
れば(これは、1出力を与えるインバータ388
によつて表示される)、ANDゲート390はOR
ゲート394へ1の入力を与え、リクエスト・プ
ロセツサのP―L2ページ・ゲート信号が、リク
エスト・プロセツサのL2私用キヤツシユへ送ら
れる。もし共用フラグが1に等しく、かつ書込フ
ラグがゼロに等しければ、同一事象のシーケンス
が起る。書込フラグのゼロは、ANDゲート39
6をして、ORゲート394の第2入力へ1の入
力を与えさせる。 ページがL2共用キヤツシユへ送られるのは、
書込フラグ及び共用フラグの双方が1に等しい時
である。この場合、ANDゲート398によつ
て、S―L2ページ・ゲート信号が、リクエス
ト・プロセツサのL2共用キヤツシユへ与えられ
る。 これまで説明したフラグを利用するキヤツシユ
構成は、全てのプロセツサへ共通であり、かつ
L1私用キヤツシユを交差質問して、変更された
ラインに対するカースト・アウトを必要とする
L2キヤツシユに優る。しかし、ページを適切に
マークするに当り、アプリケーシヨンによつて
は、ソフトウエアがページの使用について十分な
知識を有しない場合があるかも知れない。このよ
うな場合、ソフトウエアはこれらページを書込可
能及び共用可能とマークするように強制される。
その結果、アプリケーシヨンによつては、ページ
及びラインの大きい割合いが共用キヤツシユへ移
動される場合もある。更に、共用及び書込みの双
方を受けるページについて、共用及び書込みが共
に生じない比較的長い時間も存在する。そのよう
な時間中、それらのページは私用キヤツシユにあ
る方がよい。このような場合のために、代替的実
施例を以下に説明する。この実施例は、全てのペ
ージ及びラインをL2及びL1の私用キヤツシユへ
移動させ、書込可能及び共用可能(1,1)とマ
ークされたページ/ラインの共用及び書込みをダ
イナミツクに調整する。 第17図は多重処理システム400を示す。こ
のシステムは、L3の共用されるメイン・メモリ
402に含まれたオペランド及び命令を有する。
メイン・メモリ402は、システム制御エレメン
ト404を介して複数のプロセツサ群と命令及び
オペランドを交換する。入出力バス406は、シ
ステム制御エレメント404を、直接アクセス記
憶装置(DASD)のような複数の周辺装置へ接続
する。更に、システム制御エレメント404は、
L2及びL1の私用キヤツシユ及びL1の共用キヤツ
シユを介して、プロセツサA及びBを含む第1の
プロセツサ群へ接続される。L2の共用キヤツシ
ユはないことに注意されたい。システム制御エレ
メント404は、バス408を介して他の同様な
プロセツサ群へ接続される。各プロセツサ群は2
個を超えるプロセツサを含んでよいが、説明を簡
単にするため、2個のプロセツサの場合を示す。 各プロセツサは、情報交換のため、L1私用キ
ヤツシユ及びL1共用キヤツシユと直接に通信す
る。L1共用キヤツシユは、多重プロセツサ群の
各プロセツサによつて共用される。情報ラインは
L1の各キヤツシユに記憶され、L2の私用キヤツ
シユは情報ページを含む。プロセツサAはL1で
その私用キヤツシユ410及び共用キヤツシユ4
12と通信し、プロセツサA及びキヤツシユ間の
データ交換は線414及び416を介して行われ
る。もしリクエストされた情報ラインがキヤツシ
ユ410又は412のいずれにおいても存在して
いなければ、L2私用キヤツシユ418が線42
0を介してL1私用キヤツシユ410から質問さ
れる。それは、リクエストされたラインを含む情
報ページがそこに存在しているかどうかを調べる
ためである。もし情報ページがそこに存在してい
れば、リクエストされた情報ラインは、キヤツシ
ユ410又は412へ転送される。他方、情報ペ
ージがL2私用キヤツシユ418に存在していな
ければ、システム制御エレメント404が、L3
のメイン・メモリからL2私用キヤツシユ418
へ情報ページを転送するよう信号を受ける。書込
フラグ及び共用フラグがどのようにセツトされて
いても、全てのページがメイン・メモリ402か
らL2私用キヤツシユ418へ移される。ページ
がメイン・メモリからL2私用キヤツシユへ移さ
れた時、関連した書込フラグ及び共用フラグがタ
グ・アレイからL2私用デイレクトリイへ移され
る。更に、ページからの各ラインがL1私用キヤ
ツシユへ転送されると、2個のフラグ・ビツトが
ライン・アドレスと共にL1私用デイレクトリイ
に記憶される。以下に説明するように、書込フラ
グ及び共用フラグが階層コントロールを変更する
のは、L1においてである。リクエストされた情
報ラインが、1度L2私用キヤツシユ418へ転
送されると、それは、書込フラグ及び共用フラグ
の双方が共に1であるとき、L1共用キヤツシユ
へ転送される。他の全ての場合、リクエストされ
た情報ラインはL1私用キヤツシユ410へ転送
される。 プロセツサBは、線426及び428を介し
て、L1におけるその私用キヤツシユ424、及
びL1共用キヤツシユ412とデータを交換す
る。もしリクエストされた情報ラインが共用キヤ
ツシユ412又は私用キヤツシユ424に存在し
ていなければ、リクエストされたラインを含む情
報ページが、線432を介して、プロセツサBの
L2私用キヤツシユ430からリクエストされ
る。もしリクエストされた情報ページが私用キヤ
ツシユ430に存在していなければ、リクエスト
された情報ページをL2私用キヤツシユ430へ
転送するように、L3のメイン・メモリ402が
システム制御エレメント404を介して信号を受
ける。私用キヤツシユ430中のリクエストされ
た情報ラインは、プロセツサAについて説明した
ように、書込フラグ及び共用フラグのセツト状態
に従つてL1共用キヤツシユ412又はL1私用キ
ヤツシユ424のいずれかへ転送される。 第18図は第17図に示した多重処理システム
400の詳細なブロツク図である。第18図は
L1共用キヤツシユ及びL1及びL2の私用キヤツシ
ユに関連したキヤツシユ・コントロール兼デイレ
クトリイを示す。L1私用キヤツシユ410のた
めのキヤツシユ・コントロール兼デイレクトリイ
434は、線436を介してプロセツサAへ接続
され、線440を介してL2私用キヤツシユ41
8のためのキヤツシユ・コントロール兼デイレク
トリイ438へ接続され、線442を介してシス
テム制御エレメント404へ接続される。はデ
ータ・バスを示し、はアドレス兼制御バスを示
す。プロセツサAは、線446を介してL1共用
キヤツシユ412のためのキヤツシユ・コントロ
ール兼デイレクトリイ444へ接続され、線44
8を介してL2私用キヤツシユ418のためのキ
ヤツシユ・コントロール兼デイレクトリイ438
へ接続される。 プロセツサBは、線452を介してL1私用キ
ヤツシユ424のためのキヤツシユ・コントロー
ル兼デイレクトリイ450へ接続され、線454
を介してL1共用キヤツシユ412のためのキヤ
ツシユ・コントロール兼デイレクトリイ444へ
接続される。 キヤツシユ・コントロール兼デイレクトリイ4
44は、線458を介してL2私用キヤツシユ4
30のためのキヤツシユ・コントロール兼デイレ
クトリイ456へ接続され、線460を介してシ
ステム制御エレメント404へ接続される。これ
らのキヤツシユ・コントロール兼デイレクトリイ
は、リクエストされた情報ライン又は情報ページ
がキヤツシユに存在するかどうかを決定し、又は
情報ページがメイン・メモリからフエツチされね
ばならないかどうかを決定するため、読出指令又
は書込指令に応答する。 書込フラグ及び共用フラグのセツト状態がどの
ようなものであれ、全てのページはメイン・メモ
リからL2私用キヤツシユへ移される。ページが
メイン・メモリからL2私用キヤツシユへ移され
る時、関連した書込フラグ及び共用フラグがタ
グ・アレイからL2私用デイレクトリイへ移され
る。更に、ページからの各ラインがL1私用キヤ
ツシユへ転送されると、2個のフラグがライン・
アドレスと共にL1私用デイレクトリイに記憶さ
れる。以下に説明するように、書込フラグ及び共
用フラグが階層コントロールを変更するのは、
L1においてである。 書込フラグがゼロであるラインは、そこに書込
まれることができず、交差質問は必要でない。共
用フラグは読出専用ラインについてL1で影響を
有しない(書込フラグはゼロに等しい)。書込可
能とマークされたラインについては(書込フラグ
は1に等しい)、共用フラグは、実質的に次のよ
うにしてL1で動作を変更する。書込可能とマー
クされているが共用可能とマークされていない
(1,0)ラインについて、記憶がリクエストさ
れると、記憶はL1私用キヤツシユに対して起
り、交差質問は必要とされない。何故ならば、ラ
インの1つのコピーのみがL1及びL2に存在する
ことができるからである。もしラインが(1,
1)とマークされていれば、記憶が起る前に、ラ
インがL1共用キヤツシユへ移され、L1私用キヤ
ツシユの交差質問が達成される。もしラインが他
のプロセツサのキヤツシユにあれば、それは無効
にされる。 もし(1,1)のラインがL1共用キヤツシユ
にあれば、2つのプロセツサがそこからフエツチ
しかつそこへ記憶することができる。従つて、も
しページがL2の1つの私用キヤツシユ中にあ
り、他のプロセツサがそのページのラインからミ
スを有すれば、他のプロセツサが記憶しなかつた
のはそのラインについてであるに違いない。従つ
て、L2に達するライン・ミスは、他のプロセツ
サによつて変更されなかつたラインのためであ
る。 かくて、(1,1)ページのコピーはそれぞれ
のL2私用キヤツシユ中に存在することができ、
そのページの変更されないラインのコピーはそれ
ぞれのL1キヤツシユ中に存在することができ
る。プロセツサがラインを変更するや否や、それ
は先ずラインを共用キヤツシユへ移し、もしその
ラインが他のプロセツサの私用キヤツシユ中に存
在していれば、それを無効する。それによつて、
このラインを後に使用する場合、私用キヤツシユ
からではなく共用キヤツシユからそのラインを取
ることが可能となる。大切なことは、実際の記憶
が起るまでは、ラインは共用の読出専用として処
理されることである。 変更された(1,0)ライン(書込可能、共用
不可能)は、L1の1個の私用キヤツシユ中にの
み存在し、最終的にはL1私用キヤツシユからL2
私用キヤツシユへ移される。変更された(1,
1)ラインは、L1共用キヤツシユ中にのみ存在
し、ページがL2キヤツシユ中にあるかどうかに
従つて、1つ又は2つのL2キヤツシユへ移され
る。 第19図はプロセツサ・メモリ「フエツチ・リ
クエスト」に対する論理フローチヤートである。
プロセツサは線462を介して論理ブロツク46
4及び466へ「フエツチ・リクエスト」を出
す。それは、リクエストされた情報ラインが、
L1私用キヤツシユ中に存在するのか、L1共用キ
ヤツシユ中に存在するのかを決定するためであ
る。論理ブロツク464で、「L1私用キヤツシユ
でライン・ヒツトが生じるか」の質問がなされ
る。もし答がイエスであれば、論理ブロツク46
8で示されるように、リクエストしたプロセツサ
のL1私用キヤツシユから、ラインがフエツチさ
れる。そのラインはリクエストしたプロセツサへ
転送され、線470で示されるようにメモリ・フ
エツチの終りが起る。他方、464で示されるよ
うに、L1私用キヤツシユでライン・ヒツトが起
らなければ、プロセスは論理ブロツク472へ進
み、論理ブロツク466における論理プロセスの
結果を待機する。論理ブロツク466では、「L1
共用キヤツシユ中にライン・ヒツトが生じるか」
の質問がなされる。もし答がイエスでああれば、
論理ブロツク474で示されるように、ラインが
L1共用キヤツシユからフエツチされ、そのライ
ンはL1共用キヤツシユからリクエストしたプロ
セツサへ転送され、線470で示されるように、
メモリ・フエツチの終りが起る。他方、もし答が
ノーであれば、論理プロセスは論理ブロツク46
6から論理ブロツク472へ進む。 論理ブロツク464及び466でなされた論理
質問に対する答が共にノーであれば、これはリク
エストされたラインがL1に存在しないことを示
す。その場合、論理プロセスは論理ブロツク47
2から論理ブロツク476へ進むが、それはリク
エストされたラインを含む情報ページがL2に記
憶されているかどうかを決定するためである。論
理ブロツク476で、「L2私用キヤツシユでライ
ン・ヒツトが生じるか」の質問がなされる。もし
答がイエスであれば、論理プロセスは論理ブロツ
ク478へ進む。論理ブロツク478は、L2私
用キヤツシユからL1私用キヤツシユへ、リクエ
ストされた情報ラインを移すことを示す。次い
で、論理プロセスは論理ブロツク468へ進み、
前述したように進行する。 もし答がノーであれば、メイン・メモリ及びシ
ステム制御エレメント中のタグ・アレイにアクセ
スするため、論理プロセスは論理ブロツク480
へ進む。次に論理プロセスは論理ブロツク482
へ進み、そこで「共用フラグは1に等しいか」の
質問がなされる。もし答がイエスであれば、論理
プロセスは論理ブロツク484へ進み、もし答が
ノーであれば、論理プロセスは論理ブロツク48
6へ進む。 もし論理ブロツク482でなされた質問に対す
る答がイエスであれば、メイン・メモリからL2
私用キヤツシユへページが移され、CPUビツト
がオンにされる。次に論理プロセスは論理ブロツ
ク478へ進み、前述したように進行する。もし
論理ブロツク482における答がノーであれば、
論理プロセスは論理ブロツク486へ進み、そこ
で「CPUビツトが1に等しいか」の質問がなさ
れる。もし答がイエスであれば、プログラム・チ
エツク信号を発生するため、論理プロセスは論理
ブロツク488へ進む。もし答がノーであれば、
論理プロセスは論理ブロツク484へ進み、前述
したように進行する。 第20・1図及び第20・2図はプロセツサ・
メモリ「記憶リクエスト」の論理フローチヤート
を示す。線490で示されるように、所与のプロ
セツサ・メモリ「記憶リクエスト」に応答して、
目標ラインがL1私用キヤツシユ又はL1共用キヤ
ツシユに存在しているかどうかを決定するため、
論理プロセスは論理ブロツク492及び494へ
進む。論理ブロツク492で、「目標ラインがL1
共用キヤツシユに存在するか」の質問がなされ
る。もし答がイエスであれば、論理プロセスは論
理ブロツク496へ進み、もし答がノーであれ
ば、論理ブロツク494の論理判断を待機するた
め、論理プロセスは論理ブロツク498へ進む。 もしL1共用キヤツシユでデイレクトリイの比
較一致が生じると(即ち、論理ブロツク492で
なされた質問への答がイエスであれば)、論理ブ
ロツク496で示されるように、L1共用キヤツ
シユ中で記憶が起り、プロセスは記憶の終りを示
す線500へ進む。書込可能及び共用可能(1,
1)であるラインのみがL1共用キヤツシユ中に
存在するので、書込フラグ及び共用フラグのテス
トは必要でない。従つて、共用キヤツシユのデイ
レクトリイは書込フラグ又は共用フラグを含まな
い。更に、共用キヤツシユ中の全てのラインが変
更されるので、変更フラグは必要でない。 メモリ「記憶リクエスト」に応答して、論理ブ
ロツク494で、「目標ラインはL1私用キヤツシ
ユ中に存在するか」の質問がなされる。もし答が
イエスであれば、論理プロセスは論理ブロツク5
02へ進み、もし答がノーであれば、論理ブロツ
クは論理ブロツク498へ進む。もしL1私用キ
ヤツシユでデイレクトリイの比較一致が生じれ
ば、書込(WR)フラグ及び共用(SH)フラグ
がテストされねばならない。もし書込フラグが1
に等しく、共用フラグがゼロに等しければ、記憶
はL1私用キヤツシユで起る。そこで「書込フラ
グは1に等しく共用フラグはゼロに等しいか」の
質問が論理ブロツク502でなされる。もし答が
イエスであれば、論理プロセスは論理ブロツク5
04へ進み、もし答がノーであれば、論理プロセ
スは論理ブロツク506へ進む。もし答がイエス
であれば、論理ブロツク504で示されるように
目標ラインはL1私用キヤツシユ中に記憶され、
論理プロセスは線500で示されるように記憶の
終りへ進む。他方、論理ブロツク502における
答がノーであれば、論理ブロツク506で、「書
込フラグはゼロに等しいか」の質問がなされる。
もし答がイエスであれば、論理プロセスは論理ブ
ロツク508へ進み、もし答がノーであれば、論
理プロセスは論理ブロツク510へ進む。もし書
込フラグがゼロに等しければ、記憶は起らず、論
理ブロツク508で示されるように、プログラ
ム・チエツク信号がプロセツサへ与えられ、線5
12で示されるように、記憶リクエストの終りが
起る。上記2つの条件のいずれも存在しなけれ
ば、書込フラグ及び共用フラグは共に1でなけれ
ばならない。従つて、論理ブロツク510で示さ
れるように、目標ラインはL1私用キヤツシユか
らL1共用キヤツシユへ転送され、その後論理プ
ロセスは論理ブロツク514へ進む。論理ブロツ
ク514はラインがリモートのL1私用キヤツシ
ユの中で無効にされることを示す。次に論理プロ
セスは、記憶がL1共用キヤツシユ中で起ること
を示す論理ブロツク496へ進む。リモートの
L1私用キヤツシユは交差質問され(XI)、もしラ
インがリモートのL1私用キヤツシユ中にあれば
無効にされる。 ブロツク492及び494でなされた論理質問
への答が共にノーである場合、目標ラインはL1
共用キヤツシユ及びL1私用キヤツシユ中に存在
せず、論理プロセスは論理ブロツク498次いで
論理ブロツク516へ進む。論理ブロツク516
では、「目標ラインはL2私用キヤツシユに存在す
るか」の質問がなされる。もし答がイエスであれ
ば、論理プロセスは論理ブロツク518へ進み、
答がノーであれば、論理プロセスは論理ブロツク
520へ進む。論理ブロツク516でなされた質
問の応答がイエスであれば、それはL2私用デイ
レクトリイの比較一致を示し、次に書込フラグ及
び共用フラグが検査されねばならない。それは、
ラインがL1私用キヤツシユ又はL1共用キヤツシ
ユへ移動されるべきか否かを決定するためであ
る。論理ブロツク518では、「書込フラグが1
に等しく、共用フラグがゼロに等しいか」の質問
がなされる。もし答がイエスであれば、論理プロ
セスは論理ブロツク522へ進み、答がノーであ
れば、論理プロセスは論理ブロツク524へ進
む。もし論理ブロツク518における質問への答
がイエスであれば、論理ブロツク522で
「CPUビツトは1に等しいか」の質問がなされ
る。もし答がイエスであれば、論理プロセスは論
理ブロツク508へ進み、プログラム・チエツク
信号が発生され、記憶リクエストの終りが線51
2で示される。もし答がノーであれば、論理ブロ
ツク526で示されるように、論理プロセスは、
リクエストされた情報ページをメイン・メモリか
らL2私用キヤツシユへ移すように進行し、CPU
ビツトがオンにされる。次に、論理ブロツク52
8で示されるように、目標ラインがL2私用キヤ
ツシユからL1私用キヤツシユへ移され、論理ブ
ロツク504で示されるように、記憶がL1私用
キヤツシユで起り、次いで線500で示されるよ
うに、記憶の終りが起る。 論理ブロツク524で示されるように、もし書
込フラグがゼロに等しければ、論理プロセスは論
理ブロツク508へ進んでプログラム・チエツク
信号を発生し、線512で示されるように記憶リ
クエストの終りが生じる。もし答がノーであれ
ば、L2私用キヤツシユからL1共用キヤツシユへ
目標ラインを移すため、論理プロセスは論理ブロ
ツク530へ進む。次いで、論理ブロツク496
で示されるように記憶がL1共用キヤツシユで起
り、線500で示されるように、記憶の終りが起
る。論理ブロツク516でなされた質問へのノー
によつて示されるように、もし目標ラインがL2
私用キヤツシユ中に存在しなければ、論理プロセ
スは論理ブロツク520へ進む。論理ブロツク5
20はメイン・メモリ及びタグ・アレイのアクセ
スを示す。次いで論理プロセスはそこから論理ブ
ロツク518へ進み、そして前述したように進行
する。 第21図はL1私用キヤツシユのためのメモ
リ・リクエスト論理を示す。もし線498上にP
―L1ヒツト信号が存在し、かつANDゲート50
2の入力へ行く線500上にプロセツサからのフ
エツチ・リクエスト信号が存在すれば、ORゲー
ト504がアクチブとなり、「P―L1からのフエ
ツチ」信号をL1私用キヤツシユへ与える。線5
08上のフエツチ・リクエスト信号と、線510
上の「P―L2からP―L1への転送完了」信号と
が一致した時、ANDゲート506はアクチブと
なる。線510上の転送完了信号は、「P―L1か
らのフエツチ」信号を再びL1私用キヤツシユへ
与えるため、ORゲート504を能動化する。 線512上の記憶リクエスト信号、及び線51
4上のP―L1ヒツト信号に応答して、ANDゲー
ト516はアクチブとなり、ANDゲート52
4,526,528の第1入力518,520,
522が条件ずけられる。それは、目標ラインに
関連した書込フラグ及び共用フラグの状態をテス
トするためである。もしANDゲート524の残
りの2つの入力上で、書込フラグ=1及び共用フ
ラグ=0であれば、その出力はアクチブとなり、
ORゲート530は、出力線532を介して、P
―L1記憶信号をL1私用キヤツシユへ与える。も
し書込フラグ=0であれば、ANDゲート526
がアクチブとなり、プログラム・チエツク信号が
CPUへの出力線534へ与えられる。もしAND
ゲート528の残りの2つの入力へ印加される書
込フラグ=1及び共用フラグ=1信号がアクチブ
であれば、ANDゲート528は、その出力線5
36上に、L1私用キヤツシユ及びL1共用キヤツ
シユへ与えられる「P―L1からS―L1へのライ
ン転送」信号を発生し、かつ線538上に、シス
テム制御エレメントへ与えられるリモートP―
L1無効信号を発生する。ANDゲート540は、
線510上の「P―L2からP―L1への転送完
了」信号と、線512上の記憶リクエスト信号と
に応答してアクチブとなり、ORゲート530を
して、線532上に、P―L1記憶信号を発生さ
せる。この信号は、目標ラインをL2私用キヤツ
シユからL1私用キヤツシユへ転送させる。 各キヤツシユはライン・カウンタを有する。ラ
イン・カウンタは、ライン転送の始めにゼロへリ
セツトされ、或る数のワードがキヤツシユへ(又
はキヤツシユから)転送された時、ライン転送完
了信号を発生する。 第22図はL1共用キヤツシユのためのメモ
リ・リクエスト論理のブロツク図である。AND
ゲート542は、線544上のS―L1ヒツト信
号と、線546上のフエツチ・リクエスト信号と
に応答してアクチブとなる。線546上の信号
は、線550を介してL1共用キヤツシユへ「S
―L1からのフエツチ」信号を与えるため、ORゲ
ート548を能動化する。ANDゲート552
は、線546上のフエツチ・リクエスト信号と、
線554上の「P―L2からS―L1への転送完
了」信号とに応答してアクチブとなる。線554
上の信号はANDゲート552の第2入力へ印加
される。ANDゲート552の能動化はORゲート
548を能動化して、線550を介してL1共用
キヤツシユへ与えられる「S―L1からのフエツ
チ」信号を発生する。 ANDゲート556は、その第1入力へ印加さ
れる線558上の「P―L1からS―L1への転送
完了」信号と、第2入力へ印加される線560上
のリモートP―L1無効完了信号と、第3入力へ
印加される線562上の記憶リクエスト信号に応
答してアクチブとなる。ANDゲート556のア
クチブ状態は、ORゲート564を能動化して、
L1共用キヤツシユへ与えられるS―L1記憶信号
を線556上に発生する。ANDゲート568
は、その第1入力へ印加される線562上の記憶
リクエスト信号と、第2入力へ印加される線57
0上のS―L1ヒツト信号とに応答してアクチブ
となる。ANDゲート568の能動化はORゲート
564を能動化し、その出力線566を介して
L1共用キヤツシユへ与えられるS―L1記憶信号
を発生する。 ORゲート572及び574、及びANDゲート
576はL1共用キヤツシユのための転送論理を
構成する。L1共用キヤツシユにある全てのライ
ンが変更されるので、新しいラインがL1共用キ
ヤツシユへ転送される時、置換されたラインは
L1共用キヤツシユから読出され、1つ又はそれ
以上のL2私用キヤツシユへ移されねばならな
い。古いラインをL1共用キヤツシユへ読出し、
次いでそれをL2キヤツシユへ転送する動作は、
ライン・カースト・アウト動作と呼ばれる。カー
スト・アウトされるべきラインは、共用キヤツシ
ユのLRU置換論理によつて決定される。 もしラインがL1共用キヤツシユへ転送される
べき時、入力線578又は580の1つがアクチ
ブとなり、置換されるべきラインが共用キヤツシ
ユから出力ライン・バツフアへ読出されるべきで
あることを知らせる。線578上の信号は、「P
―L1からS―L1へのライン転送完了」信号であ
り、線580上の信号は、「P―L2からS―L1へ
のライン転送完了」信号である。これら線のいず
れかがアクチブであれば、それに応答してORゲ
ート572はアクチブとなり、ANDゲート57
6への第1入力をアクチブにする。ORゲート5
74は、線582上の「P―L1からS―L1への
ライン転送」信号がアクチブであるか、線584
上の「P―L2からS―L1へのライン転送」信号
がアクチブであることに応答してアクチブとな
り、ORゲート574をして、その出力線586
上に「S―L1からS―L1出力ライン・バツフア
へのライン読出」信号を発生せしめる。この信号
はL1共用キヤツシユへ与えられる。この信号は
ANDゲート576の第2入力へも与えられる。
ANDゲート576は、ORゲート572から来る
アクチブな出力信号を受取つた時、その出力線5
88上に、「P―L2へのカースト・アウト」信号
を発生する。この信号は、L2私用キヤツシユへ
与えられる。 これまで説明した動作シーケンスを再び繰返し
て説明すると、目標ラインはL2キヤツシユから
その出力ライン・バツフアへ読出され、同時に
L1共用キヤツシユ中で置換されるべきラインが
そこから読出されてその出力ライン・バツフアへ
入れられる。次いで、目標ラインはL1共用キヤ
ツシユの入力ライン・バツフアへ転送される。こ
の入力ライン・バツフアが一杯である時、それは
「P―L2からS―L1へのライン転送完了」信号を
発生する。この時点で、L1共用キヤツシユは、
全てのL2私用キヤツシユへカースト・アウト信
号を送る。このラインがL2私用キヤツシユへ転
送されている間、プロセツサはL1共用キヤツシ
ユにアクセスすることができる。 第3・1図及び第3・2図はL2私用キヤツシ
ユのためのメモリ・リクエスト論理を示す。フエ
ツチ・リクエストの場合、書込フラグ又は共用フ
ラグをL2でテストする必要はない。記憶リクエ
ストの場合、これら2つのフラグは次のような重
要な役割を演ずる。ANDゲート590は、その
第1入力への線592上にあるP―L1ミス信号
と、第2入力への線594上にあるS―L1ミス
信号とに応答してアクチブとなり、ANDゲート
596と598の第1入力を条件ずける。AND
ゲート598への第2入力線は線600上のフエ
ツチ・リクエスト信号である。この信号はAND
ゲート598をアクチブにして、線602上にP
―L2キヤツシユへのフエツチ信号を発生させ
る。この信号はL2私用キヤツシユへ与えられる
とともに、線604を介してANDゲート606
及び608の第1入力へ与えられ、これらのゲー
トを条件ずける。線610上のP―L2ヒツト信
号がANDゲート606の第2入力へ与えられ、
このゲートをアクチブにして、ORゲート61
0′の第1入力へアクチブな入力信号を与える。
ORゲート610′の出力線612上には、「P―
L2からP―L1へのライン転送」信号が与えら
れ、その信号はL2及びL1の私用キヤツシユへ送
られる。線614上のP―L2ミス信号は、AND
ゲート608の第2入力へ与えられ、このゲート
を能動化する。それによつてORゲート616が
能動化されて、その出力線618上に「メモリへ
のフエツチ」信号が与えられ、それがシステム制
御エレメントへ送られる。更に、ANDゲート6
08からのアクチブな出力信号は、ANDゲート
620の第1入力へ与えられる。ANDゲート6
20の第2入力へは、線622上の「メモリから
P―L1へのページ転送完了」信号が印加され
て、このゲートをアクチブにし、アクチブ信号が
ORゲート610′の第2入力へ与えられて、前述
したように線612上にライン転送信号を発生す
る。 線624上の記憶リクエスト信号は、ANDゲ
ート596の第2入力へ与えられて、このゲート
をアクチブにする。その出力線626上には、
「P―L2への記憶」信が発生され、この信号はL2
私用キヤツシユへ送られるとともに、線628を
介して、ANDゲート630及び632の第1入
力へ与えられる。ANDゲート596の出力信号
は、L1私用キヤツシユ又はL1共用キヤツシユの
いずれにも存在しないラインに対する記憶リクエ
ストを意味する。もし目標ラインがL2私用キヤ
ツシユにあれば、線634上のP―L2ヒツト信
号がアクチブとなり、これはANDゲート630
及びORゲート636をアクチブにする。ORゲー
ト636の出力はANDゲート638,640,
642の第1入力へ印加されて、これらのゲート
を条件ずける。ゲート638,640,642は
書込フラグ及び共用フラグの状態をテストするた
めに使用される。 もしANDゲート638の残りの2つの入力で
書込フラグ=1及び共用フラグ=0であれば、こ
のゲートはアクチブとなり、その出力線644上
にアクチブ信号を発生する。この信号はORゲー
ト610′の第3入力へ与えられ、前述したよう
に出力線612上にライン転送信号が発生され
る。もしANDゲート640の第2入力で書込フ
ラグ=0であれば、このゲートはアクチブとな
り、出力線646を介して、プログラム・チエツ
ク信号がプロセツサへ与えられる。もしANDゲ
ート642の残りの2つの入力で書込フラグ=1
及び共用フラグ=1であれば、このゲートはアク
チブとなり、その出力線648上に「P―L2及
びS―L1からのライン転送」信号が発生され
る。この信号はL2私用キヤツシユ及びL1共用キ
ヤツシユへ送られる。 もし目標ラインがL2私用キヤツシユ中に存在
しなければ、線650上のP―L2ミス信号が
ANDゲート632の第2入力へ印加され、この
ゲートをアクチブにする。出力線652上のアク
チブ信号はORゲート616の第2入力へ与えら
れ、その出力線618上にメモリへのフエツチ信
号を発生する。ANDゲート632からのアクチ
ブ信号は、ANDゲート654の第1入力へも与
えられる。ANDゲート654は、その第2入力
へ接続される線656上に「メモリからP―L2
へのページ転送完了」信号を有する。ゲート65
4からのアクチブ信号はORゲート636の第2
入力へ印加され、このゲートをアクチブにする。
ゲート636からのアクチブ信号は、前述したよ
うに、ANDゲート638,640,642の入
力で書込フラグ及び共用フラグの状態をテストす
るために使用される。 これまでの説明から、L2私用キヤツシユに対
するフエツチ・リクエストは、常にラインがL1
私用キヤツシユへ転送される結果となることがわ
かる。しかし、L2私用キヤツシユへの記憶リク
エストの場合、常に書込フラグ及び共用フラグを
テストして、記憶が許されるかどうかを決定する
とともに、ラインがL1私用キヤツシユ又はL1共
用キヤツシユへ転送されるべきか否かを決定しな
ければならない。 要約するに、本明細書において、メイン・メモ
リからの目標ページが、第1及び第2メモリ・レ
ベルの私用キヤツシユ又は共用キヤツシユのどこ
に再配置されるかを、書込フラグ及び共用フラグ
の状態が決定する3レベル・メモリ階層を含む多
重処理システムが開示された。 産業上の応用性 本発明の目的は、改善された多重処理システム
を提供することである。 本発明の他の目的は、改善された多重処理、多
重レベルのメモリ階層を提供することである。 本発明の他の目的は、メモリ階層中に記憶され
た情報ページごとに書込フラグ及び共用フラグを
有する、改善された多重処理3レベル・メモリ階
層を提供することである。上記のフラグは、レベ
ル3の共通メイン・メモリからレベル1及び2の
私用キヤツシユ及び共用キヤツシユへ、関連する
情報ページがどのように使用されるべきかを知ら
せるために利用される。
第1図は3レベル・メモリ階層を含む多重処理
システムのブロツク図、第2図は3レベル・メモ
リ階層を含む多重処理システムのバス構成を示す
ブロツク図、第3図は第3・1図と第3・2図と
の配置関係を示す図、第3・1図及び第3・2図
は第17図に示される多重処理システムのL2私
用キヤツシユに対するメモリ・リクエスト論理を
示すブロツク図、第4図は第4・1図と第4・2
図との配置関係を示す図、第4・1図及び第4・
2図は本発明に従う多重処理システムにおけるプ
ロセツサ・メモリ・フエツチ・リクエストの流れ
図、第5図は第5・1図と第5・2図の配置関係
を示す図、第5・1図及び第5・2図は本発明に
従う多重処理システムにおけるプロセツサ・メモ
リ記憶リクエストの流れ図、第6図は第6・1図
と第6・2図の配置関係を示す図、第6・1図及
び第6・2図は単一プロセツサのためのキヤツシ
ユ・アクセス論理を示すブロツク図、第7図は本
発明に従う多重処理システムにおけるアドレシン
グ構造を示す図、第8図は本発明に従う多重処理
システムにおけるレベル1私用キヤツシユ・デイ
レクトリイ及び置換論理を示すブロツク図、第9
図は本発明に従う多重処理システムにおけるレベ
ル1私用デイレクトリイ・レジスタを示すブロツ
ク図、第10図は本発明に従う多重処理システム
におけるレベル1共用デイレクトリイ・レジスタ
を示すブロツク図、第11図は本発明に従う多重
処理システムにおけるレベル2私用キヤツシユ・
デイレクトリイ及び置換論理を示すブロツク図、
第12図は本発明に従う多重処理システムにおけ
るレベル2私用デイレクトリイ・レジスタを示す
ブロツク図、第13図は本発明に従う多重処理シ
ステムにおけるレベル2共用デイレクトリイ・レ
ジスタを示すブロツク図、第14図は本発明に従
う多重処理システムのシステム制御エレメントの
中にあるタグ・アレイのブロツク図、第15図は
本発明に従う多重処理システムにおけるタグ・ア
レイ書込論理を示すブロツク図、第16図は本発
明に従う多重処理システムにおける書込フラグ及
び共用フラグ制御論理を示すブロツク図、第17
図は3レベル・メモリ階層を含む多重処理システ
ムの代替実施例を示すブロツク図、第18図は第
17図に示された多重処理システムのシステム・
バス構成を示すブロツク図、第19図は第17図
の多重処理システムにおけるプロセツサ・メモ
リ・フエツチ・リクエストの流れ図、第20図は
第20・1図と第20・2図の配置関係を示す
図、第20・1図及び第20・2図は第17図に
示された多重処理システムにおける記憶リクエス
トの流れ図、第21図は第17図に示される多重
処理システムにおいてL1私用キヤツシユに対す
るメモリ・リクエスト論理を示すブロツク図、第
22図は第17図に示される多重処理システムに
おいてL1共用キヤツシユに対するメモリ・リク
エスト論理を示すブロツク図である。 2……多重処理システム、4……メイン・メモ
リ、6……システム制御エレメント、12,27
……L1私用キヤツシユ、14……L1共用キヤツ
シユ、20,30……L2私用キヤツシユ、22
……L2共用キヤツシユ。
システムのブロツク図、第2図は3レベル・メモ
リ階層を含む多重処理システムのバス構成を示す
ブロツク図、第3図は第3・1図と第3・2図と
の配置関係を示す図、第3・1図及び第3・2図
は第17図に示される多重処理システムのL2私
用キヤツシユに対するメモリ・リクエスト論理を
示すブロツク図、第4図は第4・1図と第4・2
図との配置関係を示す図、第4・1図及び第4・
2図は本発明に従う多重処理システムにおけるプ
ロセツサ・メモリ・フエツチ・リクエストの流れ
図、第5図は第5・1図と第5・2図の配置関係
を示す図、第5・1図及び第5・2図は本発明に
従う多重処理システムにおけるプロセツサ・メモ
リ記憶リクエストの流れ図、第6図は第6・1図
と第6・2図の配置関係を示す図、第6・1図及
び第6・2図は単一プロセツサのためのキヤツシ
ユ・アクセス論理を示すブロツク図、第7図は本
発明に従う多重処理システムにおけるアドレシン
グ構造を示す図、第8図は本発明に従う多重処理
システムにおけるレベル1私用キヤツシユ・デイ
レクトリイ及び置換論理を示すブロツク図、第9
図は本発明に従う多重処理システムにおけるレベ
ル1私用デイレクトリイ・レジスタを示すブロツ
ク図、第10図は本発明に従う多重処理システム
におけるレベル1共用デイレクトリイ・レジスタ
を示すブロツク図、第11図は本発明に従う多重
処理システムにおけるレベル2私用キヤツシユ・
デイレクトリイ及び置換論理を示すブロツク図、
第12図は本発明に従う多重処理システムにおけ
るレベル2私用デイレクトリイ・レジスタを示す
ブロツク図、第13図は本発明に従う多重処理シ
ステムにおけるレベル2共用デイレクトリイ・レ
ジスタを示すブロツク図、第14図は本発明に従
う多重処理システムのシステム制御エレメントの
中にあるタグ・アレイのブロツク図、第15図は
本発明に従う多重処理システムにおけるタグ・ア
レイ書込論理を示すブロツク図、第16図は本発
明に従う多重処理システムにおける書込フラグ及
び共用フラグ制御論理を示すブロツク図、第17
図は3レベル・メモリ階層を含む多重処理システ
ムの代替実施例を示すブロツク図、第18図は第
17図に示された多重処理システムのシステム・
バス構成を示すブロツク図、第19図は第17図
の多重処理システムにおけるプロセツサ・メモ
リ・フエツチ・リクエストの流れ図、第20図は
第20・1図と第20・2図の配置関係を示す
図、第20・1図及び第20・2図は第17図に
示された多重処理システムにおける記憶リクエス
トの流れ図、第21図は第17図に示される多重
処理システムにおいてL1私用キヤツシユに対す
るメモリ・リクエスト論理を示すブロツク図、第
22図は第17図に示される多重処理システムに
おいてL1共用キヤツシユに対するメモリ・リク
エスト論理を示すブロツク図である。 2……多重処理システム、4……メイン・メモ
リ、6……システム制御エレメント、12,27
……L1私用キヤツシユ、14……L1共用キヤツ
シユ、20,30……L2私用キヤツシユ、22
……L2共用キヤツシユ。
Claims (1)
- 1 第1及び第2のプロセツサ及びnレベルのメ
モリ階層を含み(nは2より大きい整数)、上記
メモリ階層は第n番目のレベルにメイン・メモリ
を含み、その他のレベルの各々に上記第1及び第
2のプロセツサによりそれぞれ専用される第1及
び第2の私用キヤツシユ並びに上記第1及び第2
のプロセツサによつて共用される共用キヤツシユ
を含み、かつ、上記メイン・メモリに記憶されて
いる複数組の情報の各々には、当該組の情報の書
込可能性及び共用可能性をそれぞれ示す書込フラ
グ及び共用フラグが含まれているマルチプロセツ
サシステムの動作方式であつて、上記第1又は第
2のプロセツサのメモリ・アクセスに関連して第
(n−1)番目のレベルでキヤツシユ・ミスが生
じたことに応じて上記メイン・メモリから所望の
組の情報を取り出す段階と、取り出された情報に
含まれている上記書込フラグ及び共用フラグが所
定の状態にある時、取り出された情報を第(n―
1)番目のレベルの上記共用キヤツシユに転送す
る段階と、取り出された情報に含まれている上記
書込フラグ及び共用フラグが上記所定の状態にな
い時、取り出された情報を第(n−1)番目のレ
ベルの上記第1又は第2の私用キヤツシユに転送
する段階とを含むマルチプロセツサ・システムの
動作方式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US336521 | 1981-12-31 | ||
US06/336,521 US4442487A (en) | 1981-12-31 | 1981-12-31 | Three level memory hierarchy using write and share flags |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS58123151A JPS58123151A (ja) | 1983-07-22 |
JPS629942B2 true 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) | ES8405533A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0510682Y2 (ja) * | 1989-06-28 | 1993-03-16 |
Families Citing this family (141)
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 |
US5255369A (en) * | 1984-03-10 | 1993-10-19 | Encore Computer U.S., Inc. | Multiprocessor system with reflective memory data transfer device |
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 |
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 | バツフアメモリ |
US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
US4860192A (en) * | 1985-02-22 | 1989-08-22 | Intergraph Corporation | Quadword boundary cache system |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache 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 |
US5136691A (en) * | 1988-01-20 | 1992-08-04 | Advanced Micro Devices, Inc. | Methods and apparatus for caching interlock variables in an integrated cache memory |
ATE109910T1 (de) * | 1988-01-20 | 1994-08-15 | Advanced Micro Devices Inc | Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen. |
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 |
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 |
US4939641A (en) * | 1988-06-30 | 1990-07-03 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
US5029070A (en) * | 1988-08-25 | 1991-07-02 | Edge Computer Corporation | Coherent cache structures and methods |
US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | 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 |
EP0392184A3 (en) * | 1989-04-12 | 1992-07-15 | International Business Machines Corporation | Hierarchical memory organization |
US5253358A (en) * | 1989-05-19 | 1993-10-12 | Compaq Computer Corporation | Cache memory expansion and transparent interconnection |
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 |
DE69130086T2 (de) * | 1990-06-15 | 1999-01-21 | Compaq Computer Corp., Houston, Tex. 77070 | Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien |
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 |
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 |
US5293603A (en) * | 1991-06-04 | 1994-03-08 | Intel Corporation | Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path |
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 |
ATE390788T1 (de) * | 1999-10-14 | 2008-04-15 | Bluearc Uk Ltd | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen |
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 |
US6928517B1 (en) | 2000-08-30 | 2005-08-09 | Unisys Corporation | Method for avoiding delays during snoop requests |
US6857049B1 (en) | 2000-08-30 | 2005-02-15 | Unisys Corporation | Method for managing flushes with the cache |
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 |
US8041735B1 (en) | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
US20040148489A1 (en) * | 2003-01-28 | 2004-07-29 | Sun Microsystems, Inc. | Sideband VLIW processor |
US7502910B2 (en) * | 2003-01-28 | 2009-03-10 | Sun Microsystems, Inc. | Sideband scout thread processor for reducing latency associated with a main 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 |
US8812796B2 (en) * | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
US8489864B2 (en) * | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
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 |
US8370577B2 (en) * | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
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 | 格兰菲智能科技有限公司 | 人工智能集成电路 |
US11593108B2 (en) * | 2021-06-07 | 2023-02-28 | International Business Machines Corporation | Sharing instruction cache footprint between multiple threads |
US11593109B2 (en) | 2021-06-07 | 2023-02-28 | International Business Machines Corporation | Sharing instruction cache lines between multiple threads |
CN117971718B (zh) * | 2024-03-28 | 2024-06-28 | 北京微核芯科技有限公司 | 一种多核处理器的缓存替换方法及其装置 |
Citations (2)
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)
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 |
-
1981
- 1981-12-31 US US06/336,521 patent/US4442487A/en not_active Expired - Lifetime
-
1982
- 1982-10-26 EP EP82109881A patent/EP0083400B1/en not_active Expired
- 1982-10-26 DE DE8282109881T patent/DE3278948D1/de not_active Expired
- 1982-10-27 JP JP57187666A patent/JPS58123151A/ja active Granted
- 1982-12-30 ES ES518678A patent/ES8405533A1/es not_active Expired
Patent Citations (2)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0510682Y2 (ja) * | 1989-06-28 | 1993-03-16 |
Also Published As
Publication number | Publication date |
---|---|
EP0083400A3 (en) | 1986-06-04 |
EP0083400A2 (en) | 1983-07-13 |
US4442487A (en) | 1984-04-10 |
JPS58123151A (ja) | 1983-07-22 |
DE3278948D1 (en) | 1988-09-29 |
ES518678A0 (es) | 1984-06-01 |
EP0083400B1 (en) | 1988-08-24 |
ES8405533A1 (es) | 1984-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS629942B2 (ja) | ||
US5095424A (en) | Computer system architecture implementing split instruction and operand cache line-pair-state management | |
US4445174A (en) | Multiprocessing system including a shared cache | |
US4831520A (en) | Bus interface circuit for digital data processor | |
US6760819B2 (en) | Symmetric multiprocessor coherence mechanism | |
US4583165A (en) | Apparatus and method for controlling storage access in a multilevel storage system | |
US4851991A (en) | Central processor unit for digital data processing system including write buffer management mechanism | |
US4831581A (en) | Central processor unit for digital data processing system including cache management mechanism | |
US6920521B2 (en) | Method and system of managing virtualized physical memory in a data processing system | |
JPH03142644A (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
US5168560A (en) | Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line | |
US5091845A (en) | System for controlling the storage of information in a cache memory | |
US5119484A (en) | Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction | |
US5226170A (en) | Interface between processor and special instruction processor in digital data processing system | |
US5809537A (en) | Method and system for simultaneous processing of snoop and cache operations | |
US5339397A (en) | Hardware primary directory lock | |
US5987544A (en) | System interface protocol with optional module cache | |
US5675765A (en) | Cache memory system with independently accessible subdivided cache tag arrays | |
JPH0519176B2 (ja) | ||
KR100380674B1 (ko) | 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템 | |
EP0271187B1 (en) | Split instruction and operand cache management | |
US5276892A (en) | Destination control logic for arithmetic and logic unit for digital data processor | |
JPS644214B2 (ja) | ||
EP0302926B1 (en) | Control signal generation circuit for arithmetic and logic unit for digital processor | |
EP0418220B1 (en) | Destination control logic for arithmetic and logic unit for digital data processor |