JPS63173147A - シングルバスマルチプロセツサアーキテクチヤのプロセツサに関連したキヤシュメモリの管理方法及び該方法により作動するデータ処理システム - Google Patents

シングルバスマルチプロセツサアーキテクチヤのプロセツサに関連したキヤシュメモリの管理方法及び該方法により作動するデータ処理システム

Info

Publication number
JPS63173147A
JPS63173147A JP62336749A JP33674987A JPS63173147A JP S63173147 A JPS63173147 A JP S63173147A JP 62336749 A JP62336749 A JP 62336749A JP 33674987 A JP33674987 A JP 33674987A JP S63173147 A JPS63173147 A JP S63173147A
Authority
JP
Japan
Prior art keywords
cache memory
level
block
modified
memory
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.)
Pending
Application number
JP62336749A
Other languages
English (en)
Inventor
ミシエル・セクレオブ
テイエリ・フルリ
クリステイアン・エンツ
フィリップ・メチュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thomson CSF SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson CSF SA filed Critical Thomson CSF SA
Publication of JPS63173147A publication Critical patent/JPS63173147A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 本発明は、シングルバスマルチプロセッサアーキテクチ
ャのプロセッサに関連したキャッシュメモリの管理方法
及び該方法に従って作動するデータ処理システムに係る
本発明はより特定的には、プロセッサがシングルパスに
接続されており且つ各プロセッサが専用キャッシュメモ
リを有するような高水準リンク型マルチプロセッサコン
ピュータシステムに係る。
キャッシュメモリはコンピュータの中央処理装置と主メ
モリとの間のバッファとして機能する高速アクセスメモ
リである。中央処理装置の参照がこのバッファメモリに
より満足される毎に、主メモリから又は主メモリへの転
送は省略される。キャッシュメモリは一般に主メモリよ
りも著しく高速であるので、参照メモリをアクセスする
ための平均時間はこのバッファメモリを使用しない場合
に比較して短い。
キャッシュメモリの有効性は、中央処理装置により標識
される可能性が最も大きいデータを保存する能力にある
。この可能性は一般に成功率と呼称され、その値はプロ
グラムのロケーション及びキャッシュメモリの各特徴に
より決定される。
【東皮直些1i キャッシュメモリの使用は比較的古い着想に基づいてお
り、1968年に設計されたIB8360785システ
ムにさかのぼる。それ以降、ミニコンピユータからメイ
ンフレームコンピュータに及ぶほぼあらゆるコンピュー
タにキャッシュメモリが具備されている。
キャッシュメモリの利点は、単に中央処理装置へ又は中
央処理装置からの入力及び出力データの転送速度の増加
に止どまらない。高水準リンク型マルチプロセッサシス
テムではプロセッサは同一の物理的アドレシングスペー
ス、即ち同一の主メモリを有しており、全プロセッサ及
び全入力/出力装置は単一の相互接続ネットワークによ
り共通主メモリに接続されている。相互接続ネットワー
ク及び主メモリは共有手段であるので、数個の装置がこ
れらの手段に同時にアクセスする場合に生じ得る衝突の
結果として性能が低下する。各プロセッサにローカルキ
ャッシュメモリを追加すると、各プロセッサに固有の主
メモリとのトラフィックが著しく減少し、対応する好適
数のプロセッサをシングルパスに接続することができ、
従って、特に有利な費用/効率比が得られる。
しかしながら、この型のアーキテクチャには物理的スペ
ースに格納されているデータの一致(co−heren
ce又はconsistency)を維持するという問
題がある。例えば2つのプロセッサが同一のアドレシン
グゾーンで書込オペレーションを実施する場合、これら
の変更は夫々のキャッシュメモリに存在するコピーで物
理的に実行される。こり場合注意しないとシステム中に
同一データの異なるコピーが共存するといった状態が生
じ得る。この場合、データの不一致が生じる。このよう
な問題は、主メモリに直接アクセスすることが可能なり
MA(dir−eat meIlory access
)型のインテリジェント入力/出力装置の存在によても
生じ得る。この場合、データの不一致の問題はシングル
プロセッサ環境でも生じ得ることに留意すべきである。
更に、プロセスの実行中にあるプロセッサから他のプロ
セッサにプロセスが移動することによっても不一致は生
じ得る。
不一致が生じると、システムで実行されているアプリケ
ーションにエラーが生じる可能性があり、これらのエラ
ーを位置づけすることは非常に困難であり、不可能でさ
えある。
この問題は古くから知られており、多くの解決方法が提
案されている。これらの解決方法によりシステムを構築
した例もある。これらの方法の大部分は、雑誌Cow 
utin  5urve 5(vol、 14. No
、 3゜September 1982)に所収の^f
an Jay Sm1thによる論文″Cache M
e悄ories’に記載されている。
最近では、高水準リンク型シングルパスマルチプロセッ
サシステムにおいてデータの一致を維持する多くのプロ
トコールが提案されている。これらのプロトコールにつ
いては、シアトル市に所在のワシントン大学コンピュー
ター学部の技術報告書No、 85−10−05に所収
のJ、^rchibald及びJ、L。
Bearによる”An Evaluation of 
Cache CoherenceSolutions 
in 5hared−Bus Multiproces
sors″に詳細に記載されている。
これらのプロトコールの物理的実現は、バスの本質的特
徴、即ちその放送能力に基づいている。
実際に、バスの通信原理はラインの一時的多重化である
。これらのラインに電気的に接続されたシステムの全装
置は交換されたデータを「観測(observe)」L
得る。中央処理装置がキャッシュメモリ中に必要なデー
タを見いださない場合、バスを通して主メモリに要求が
送られる。データをキャッシュメモリにロードするため
のこの要求は他の全キャッシュメモリ、より特定的には
これらのキャッシュメモリに関連した全コントローラに
よす試験され得る。キャッシュメモリは要求されたデー
タの更新データを含んでいると、このことを即座に主メ
モリに知らせる。この時、主メモリは要求を考處せず、
該キャッシュメモリは主メモリでなくプロセッサに応答
する。更に、中央処理装置が数個のプロセッサにより動
的に共有され得るデータをそのキャッシュメモリ中で変
更する場合、中央処理装置は他のコピーを有効化する要
求をバスに送る。あるいは、システムの全キャッシュメ
モリに変更が送られる。
データの一致がハードウェアにより完全に維持されると
、マルチプロセッサアーキテクチャは「透過(tran
sparent)」状態又はオペレータにより知覚され
ないと言われる。この場合、存在するプロセッサの数に
関係なく、数個のプロセスから成るアプリケーションが
実行される。実行時間のみが変化する。「透過」マルチ
プロセッサアーキテクチャは次のように作成される。こ
れらのシステムでキャッシュメモリはその内部構造が他
の技術に基づいているとしても連想メモリと同様に論理
的に機能する。各入力は「アドレス/データ」対を含ん
でおり、中央処理装置によるアクセスオペレーション中
、呈示されるアドレスは全入力に含まれるアドレスと比
較される。比較で正が認められれば、「データ」部分又
はサブセットは中央処理装置に与えられる。
通常ブロックと呼称される「データj部分は、中央処理
装置と交換されるデータの[ブレーン(grain)J
に対応する。ブロックは一般に数個のメモリ話の寸法を
有する。従って、中央処理装置のアクセス中、ブロック
の一部のみが実際に読出又は書込される。
キャッシュメモリの入力の全「アドレス」部分により形
成されるセットは、所謂登録簿(directory)
を構成する。該登録簿はキャッシュメモリに格納された
全データのアドレスを明記している。これらのアドレス
は一般には実際のアドレスであるが。
仮想のアドレスであってもよい。
主メモリによる転送中に1つ以上のキャッシュメモリが
関与しているか否がをチェックできるようにするために
は、バスに配置されたアドレスでキャッシュメモリをア
クセスしなければならない。
即ち、要求されたデータのコピーが存在しているか否か
をチェックするためには、バスを通る各転送で全キャッ
シュメモリをアクセスしなければならない。自明のこと
ながら、バスのインターフェースからのキャッシュメモ
リの参照のフローは、中央処理装置からくるキャッシュ
メモリの参照の正規フローと干渉する。一般に、中央処
理装置及び、/又はバスのインターフェースを減速する
のでなければ、キャッシュメモリはこの二重の参照のフ
ローを支持するのに十分迅速にすることができない。こ
の問題を解決するための倚単な方法は、バスのインター
フェースにキャッシュメモリ登録簿のコピーを設けるこ
とである。この第2の登録簿はバスでを通る転送中にア
クセスされ、コピーが存在する場合には対応するキャッ
シュメモリでこのコピーの存在を検出するよう。こうし
てキャッシュメモリとの不要な全アクセスはこの登録簿
により一過される。しかしながら、ポテンシャルの不一
致が検出されると、バスのインターフェースはキャッシ
ュメモリをアクセスして入力を有効化、更新又は読み出
す。
この型のマルチプロセッサシステムでは、(電荷の問題
を取り除くことにより)キャッシュメモリの成功率が非
常に高い場合に、非常に多数のプロセッサを同一のバス
に接続することが可能である。純粋に理論的な無限寸法
のキャッシュメモリの場合、成功率は100%に達し、
従って無限数のプロセッサを同一バスに接続することが
可能である。実際に、成功率は90〜97%であり、換
言するならプロセッサと中央処理装置とのデータ転送速
度は決してゼロにならない。
プロセッサから中央処理装置への参照の転送速度の主要
な因子である成功率の外に、この転送速度に直接影響す
るキャッシュメモリの主要な特徴は、使用される主メモ
リを更新するためのプロセスにより規定される。ブロッ
クがキャッシュメモリで変更されると、主メモリは更新
されなければならない、この更新、即ちバスを通る書込
要求の送信は、即座に実施され得る。この場合、主メモ
リの更新はライトスルー(write−through
)オペレーションにより実施される。従って、中央処理
装置により実施される全回込オペレーションはバス及び
主メモリとのアクセスを生じる。
一般に、中央処理装置の書込率は送出されるメモリ要求
の約15〜20%に対応する。従って、読出オペレーシ
ョンのみを8M化するためにはライトスルーキャッシュ
メモリを使用するばよいと仮定することができる。実際
に、中央処理装置は1回の書込オペレーションではブロ
ックされないのでこのことは厳密には真実ではない、バ
スインター・フェースで書込オペレーションが干渉され
るなら、中央処理装置は減速されない。これに対してマ
ルチプロセッサ環境では、全書込オペレーションは欠陥
処理意外にバスへのアクセスをもたらすので、この主メ
モリの更新プロセスは総合性能の面からいうと高価であ
る。上述とは逆に、バスは書込要求で飽和されるので、
この型のマルチプロセッサシステムの計算能力は理論的
に無限ではあり得ない。
別の更新プロセスでは、変更されたブロックは取り出し
時に中央メモリにコピーされる。定常状態ではキャッシ
ュメモリは完全に使用される。障害が発生すると、不足
ブロックは置換アルゴリズムにより指定される入力にロ
ードされる。置換アルゴリズムにより指定された入力が
変更されたデータを含んでいるなら、このデータは新し
いデータをロードすることによりキャッシュメモリ中で
新しいデータを重ねられる以前に主メモリにコピーされ
る。主メモリの更新は、これらの場合、ライトバック(
write−back)オペレーションにより実施され
る。この場合、同一ブロックの数個の変更はバス及び主
メモリにただ1つのアクセスしか生じないので、書込オ
ペレーションの局限現象を使用することが可能である。
しかしながら、現在のブロックが変更されている場合に
はこのブロックをコピーするためには1回以上の追加ア
クセシングオペレーションを実施すべ′きであるので、
欠陥処理はライトスルーオペレーションによる更新プロ
セスよりも時間がかかるぞあろう、一般に、ライトパッ
クキャッシュメモリのローディング時間から変更された
ブロックの割合は35〜50%である。
自明のことであるが、ライ1−バックオペレーションに
より主メモリを更新するプロセスを使用すると、ライト
スルーキャッシュメモリで得られるよりも著しくすぐれ
た総合性能のマルチプロセッサ環境が得られる。実際に
、プロセッサにより使用されるバスの通過帯域がキャッ
シュメモリの欠陥率に正比例する(II害率は成功率の
1の補数である)ことは知られている。成功率が100
%に達するなら、理論的に無限の総合性能が得られる。
同様に自明のことであるが、高性能シングルパスマルチ
プロセッサシステムを作成するには、各プロセッサにロ
ーカルキャッシュメモリを配置し、その主メモリ更新プ
ロセスをライトバックオペレーションにより実施する。
しかしながら、最近のマイクロプロセッサアーキテクチ
ャの発展は最適なマルチプロセッサシステムを作成する
に至っていない。現状では、新世代の32ビツトマイク
ロプロセツサが登場している。
これらの32ビツトマイクロプロセツサはもはや汎用電
子構成要素ではなく、ミニコンピユータの実際の中央処
理装置である。32ビツトマイクロプロセツサは固有性
能特徴が高いため、キャッシュメモリでオペレーション
しなければならない、これらの新製品は、例えばエンジ
ニアリング用のワークステーションのように高い計算能
力が必要とされるコンピュータ市場を対象とされている
これらの構成要素が使用される全用途において、該構成
要素は旧世代の8ビット及び16ビツトマイクロプロセ
ツサよりも「開放性(open)」の低いアーキテクチ
ャを有する必要がある。実際に、これらの部品は固定し
た構成及び主特徴を有するキャッシュメモリでしか作動
し得ない、これらの新規マイクロプロセッサはCl1p
per、 R2000及びMC68030として知られ
ており、夫々Fairchild、 MIPS及びMo
torola社から販売されている。
R2000及びMC68030マイクロプロセツサでは
、一般に主メモリであるメモリヒエラルキーのより高い
レベルはライトスルーオペレーションにより更新される
。 C11pperの論理アーキテクチャは各ページの
更新プロセスを規定することができ、ページは主メモリ
とディスクとの間の交換の「ブレーン」である、仮想の
メモリシステムでは、ページは仮想のアドレスを実際の
アドレスに関連したオペレーションシステムにより管理
されるデータブロックの寸法を有する。しかしながら、
分別され且つ変更され得るデータはライトスルー更新プ
ロセスで管理しなければならない。
略称CAMMU(Cache and Memory 
Management Unit)として知られている
キャッシュメモリ及び仮想のアドレスを実際のアドレス
に変換するための2つの回路は、C11pperの中央
処理装置に関連付けられる。これらの2つの回路は他の
プロセッサ及び入力/出力装置からくる書込要求及びこ
れらの同一の入力/出力装置からくる読出要求を観測す
ることが可能である。従って、中央処理装置及びC11
pperを形成する2つのCAMMU回路により制御さ
れるバスの周囲にマルチプロセッサアーキテクチャを構
築することが可能である。しかしながら、キャッシュメ
モリの寸法が制限されである(4にバイトの命令キャッ
シュメモリ及び4にバイトのデータキャッシュメモリ)
ので、多数のプロセッサを相互に接続するのに十分な成
功率を得ることはできない。
更に、ソフトウェアが書込に使用されるデータを含むペ
ージを標識しなければならないので、このマルチプロセ
ッサアーキテクチャは実際には透過性でないことに留意
すべきである。
更に、この新世代の32ビツトマイクロプロセツサを使
用して高性能シングルバスマルチプロセッサアーキテク
チャを実現することが可能なプロセッサの2つの特徴、
即ち −高い平均成功率を確保するために使用され得る大寸法
のキャッシュメモリ、 一プロセッサを共通の主メモリに接続するバスを通るト
ラヒックを最小限に減少するライトバックオペレーショ
ンによる主メモリの更新プロセス、という2つの特徴を
直接骨ることはできない。
実際に、キャッシュメモリが中央処理装置と同一の回路
又は付随回路に直接集積されているためにその寸法が固
定していないとしても、中央処理装置を減速させないよ
うに十分短いアクセスタイムを有する大寸法のキャッシ
ュメモリを搭載することは困難である。キャッシュメモ
リが1個以上の回路から作成されていないとき、キャッ
シュメモリは標準高速アクセスメモリ回路を使用して構
成される。従って、回路中の通信費用(時間)はその固
有速度に関連して増加するので、アクセスタイムはメモ
リの寸法に従って増加する。回路技術は電子システムの
パッケージング技術よりも著しい速さで進歩しているの
で、この問題はますます重大になっている。この問題は
、中央処理装置の唯1回のサイクルでキャッシュメモリ
をアクセスしなければならないような命令実行パイプラ
インを有するR2000型の将来型の32ビツトマイク
ロプロセツサの将来型を使用する場合に付随するであろ
う。
几朋m叛 本発明の目的は上記の欠点を解消することである。
このために、本発明の目的は夫々中央データ処理装置及
びキャッシュメモリを備える各ブロッセッサを共通中央
メモリに接続するシングルバスマルチプロセッサアーキ
テクチャでプロッセッサに関連したキャッシュメモリの
管理方法を提供することであり、該方法においてキャッ
シュメモリは2つのレベルに分割されており、中央処理
装置により送られた書込命令は、第1のレベルに含まれ
るデータの更新コピーを第2のレベルで保持するように
第1のレベルに関連付けられたライトスループロセスに
よりキャッシュメモリの両方のレベルで実施され、対応
するデータはライトバックプロセスにより第2のキャッ
シュメモリレベルから主メモリに更新される。
本発明の主な利点は、マルチプロセッサ環境に7おける
上記新規型の中央処理装置の固有性能の低下を阻止する
ことである。具体的にいうと、本発明は処理装置のすぐ
近傍、場合によっては同一の集積回路に制限された寸法
のキャッシュメモリを搭載することが可能である。実際
にメモリ階層のより高いレベルに対応する第2のキャッ
シュメモリレベルは、従来のより廉価なメモリ回路で作
成される。
こうして作成された2レベルキヤツシユメモリアーキテ
クチヤは、効率的なシングルバスマルチプロセッサアー
キテクチャを構築するために費用と性能との理想的な妥
協を示す。
この構成はキャッシュメモリが満たすべき主要件、即ち
最小アクセスタイム及び最大成功率を満足することが可
能である。第26レベルよりも小サイ寸法を有する第1
のレベルは、総費用を禁止的な値にすることなく高性能
技術を使用する回路(特定であってもなくてもよい)に
より作成され得る。更に、第1のキャッシュメモリレベ
ルのキャパシティが制限されているため、中央処理装置
との通信による時間的な費用の追加を過度にすることな
しにテクノロジーにより得られる速度を使用することが
できる。
第1のレベルのアクセス時に生じる障害は、第1のレベ
ルに含まれるデータの追加紙を構成するデータを含む第
2のレベルをアクセスすることにより解消される。従っ
て、より大きいキャパシティを有する第2のキャッシュ
メモリレベルは、低性能、即ちそれほど費用のかからな
いテクノロジーを使用する回路で作成することができる
。このようにレベルを2つに分けることにより、中央処
理装置からみたアクセスタイムを固有性能に適合し得る
ようにすることが可能である。第2のレベルは第1のレ
ベルに障害があるときしかアクセスされないので、速度
の制約は第2のレベルではさほど重大でなく、中央処理
装置により実施される全書込オペレーションについても
それほど重大でない、中央処理装置は書込オペレーショ
ンでブロックされないので、これらのオペレーションは
緩衝され得、第1のレベルと非同期的に実行され得る。
従って、対応する好適寸法(64にバイト以上)のキャ
ッシュメモリを第2のレベルに搭載することは非常に容
易である。
プロセッサの成功率、即ち両方のキャッシュメモリレベ
ルの成功率は、中央処理装置からみた平均アクセス時間
に悪影響を及ぼすことなく非常に高くなる。従って、バ
スにおけるトラヒックは最小に減少する。
第1のレベルは、中央処理装置(マイクロプロセッサ)
のアーキテクチャにより課せられる避けられない制約に
よりライトスルー更新プロセスを使用するとしても、ラ
イトバックオペレーションにより第2のレベルを管理す
ることは全く可能である。中央処理装置により実施され
る全書込オペレーションは両方のレベルで実施されるの
で、第2のキャッシュメモリレベルはプロセッサに格納
されたデータの更新コピーを常に含んでいる。従って、
上記原理に従ってデータの一致を維持することが可能で
ある。別のプロセッサ又は入力/出力装置により読出又
は書込要求が送られると、バスインターフェースは第2
のレベルのみをアクセスすることにより要求されたデー
タのコピーの存在を確認することができる。このように
して、まず最初に第1のキャッシュメモリレベルに関係
する中央処理装置からのメモリ参照の70−との間の干
渉が最小になる。一方、データの一致を維持するための
プロトコールが第2のレベルのブロックの有効化又は更
新を生じるとき、該有効化も第1のレベルで実施されな
ければならない。
更に、性能を最適化するためには、登録簿が第2のキャ
ッシュメモリレベルの登録簿の実際のコピーであるとい
う条件で、バスインターフェースに登録簿を搭載するこ
とが可能である。
(以下余白) 添付図面を参照しながら行なう以下の詳細な説明から、
本発明のその他の特徴および利点が明らかになろう。
具体例 各プロセッサが本発明による2レベルキヤツシユメモリ
を備えたシングルパス式マルチプロセッサシステムを第
1図に示す。
このシステムはP1〜Poの参照符号で示される複数の
プロセッサを備えているが、そのうちの2つのみを図示
している(破線枠内)、各プロセッサは第2図にも示す
ように、第1キヤツシユメモリレベル2と、書込みバッ
ファ3と、第2キヤツシユメモリレベル4と、登録簿メ
モリ5と、インタフェースブロック6とを含んで成る。
インタフェースブロック6は内部バス7によって書込み
バッファ3に接続されている。インタフェースブロック
6はaus−sと示されているシステムバス8にも接続
されている。システムはこの他にも、91〜9にの符号
で示されるに個のメモリバンク(そのうちバンク9 と
9 のみ図示)から成る1に 主メモリ9(破線枠内)と、101〜10.の符号で示
されるP個の入出カプロセッサ(プロセッサ1o1と1
0.のみ図示)とを含んでいる。第1キVシユメモリレ
ベル2の各々が、アドレスバス11とデータバス12に
より中央処理装置1と書込みバッファ3にそれぞれ接続
されている。第2キャッシュメモリレベル4の各々が、
内部バス刊に接続されている。内部バスはアドレスバス
13とデータバス14とを含んで成る。各インタフェー
スブロック6がアドレス・データバス15により登録簿
メモリ5に接続されている。
第1図の例では、プロセッサ101と10.が周辺装置
に接続される。例えば、プロセッサ1o1がキーボード
端末16およびテープハンドラ17に接続される一方、
プロセッサ10pがディスクメモリ見。
19に接続されている。システムの全体的なアーキテク
チVのレベルでこの構成を見た場合、効率上の理由(ま
たおそらくは実行可能性の理由)から2つのレベルを含
むキャッシュメモリを1つずつ各プロセッサに設けてい
ると考えられる。これに対して第2図に示したプロセッ
サのアーキテクチャを見ると、メモリ階層の2つの連続
レベルにある2つの別個のキャッシュメモリから成ると
も考えられる。従って以下の説明では、キャッシュメモ
リの第ルベルという用詔と、第ルベルのキャッシュメモ
リという用語を区別することなく使テムバス8に接続さ
れるバンク91〜9kから成る並列構成である。並列構
成の利点を十分に活かすため、メモリバンクの語は連続
アドレスに対応させず、有意性の小さいビットの構成が
同じであるアドレ・“に対応させて飛越し番地付は形式
の構成とする。
本発明のキャッシュメモリを配置する高結合のマルチブ
Oセッサ環境においては、各プロセッサに処理を非同期
的に実行させ、プロセッサ全部からのメモリ参照の流れ
を全てのバンクに均等に配分する(かなり長期の観察期
間に亘ることは勿論である)。もし各メモリがシステム
バス8とのインタフェースに1つまたはそれ以上の読取
り要求または書込み要求を記憶することができれば、い
くつかのメモリアクセス動作を平行して行なうことがで
きる。これによって、メモリバンクの数と直接関係する
主メモリの転送速度を速くすることが可能になる(第1
位に)。主メモリの転送速度によりシステム全体の性能
が制限されるのを防止するためには、システムの中にそ
の転送速度をシステムバス8の転送速度より大きくなる
よう充分の数のバンク91〜9kを設けるだけでよい。
短かい時間にメモリバンクに要求が累積される場合があ
るが、これを防止するためには幾つかのバンクを用いて
主メモリの転送速度をシステムバスの転送速度よりはる
かに大きくすることにより、主メモリをオーバインタレ
ースすると効果がある。
周辺装置から記憶システムへのデータ入力の中には、周
辺装置が取付けられている入出カプロセッサ10.(1
>i>P)による主メモリ9への書込み要求が1つまた
はそれ以上含まれる。同様にデータの出力は入出カプロ
セッサによる主メモリ9での1回またはそれ以上の読取
りに相当する。
ここで使用する入出カプロセッサという用語は、周辺装
置をマルチプロセッサシステムのコアに接続するために
使用される種類の装置を厳密に指すものではなく、これ
らの装置がある程度の「知能]を有するという事実を特
徴付けたものである。具体的に云うと、周辺Illと主
メモリ9の間でのデータ転送が、それ自体でデータの処
理を役割付けられているプロセッサの動作と独立して行
なえることを意味する。さらにこれらの入出力プロセッ
サは所謂ダイレクトメモIJアクセス(DMA)装置の
ように機能を限定された入出力装置と異なり、複数の転
送を連鎖的に行なうことができ、複数の周辺装置を同時
に監視することもできる。
システムバス8は伝送チャネル、即ちシステム内の機能
装置全部に共有される1組の伝送線である。
ソフトウェアに分かり易いシステムデータの一致を維持
するプロトコールを支持するためには、バス論理的特性
を下記の2つの要件を満たすものにする必要がある。
あるプロセッサがシステムバスに要求を出した時、関係
データを各プロセッサで共有することができる、即ち各
プロセッサのキャッシュメモリに複数のコピーが存在す
る。データが有効に共有されていることは、関連する登
録簿メモリ5の各プロセッサP1〜P、のシステムバス
インタフェース6によってアクセスを通じて検出される
。読取り要求または書込み要求が送られたことが、この
システムではメモリバンク91〜9にの何れかに相当す
る送り先によって確認される他、プロセッサP、〜Po
の全部によっても確認される必要がある。システムバス
8は周知の方法(不図示)により、要求が主メモリ9お
よび全プロセッサP。
う。後に説明するように、この全般的確認によって、各
プロセッサP1・・・・・・P、の2つのキャッシュメ
モリレベル2.4およびlit録簿メモリ5の入力に付
随させた種々のF!識に割当てる数値を決定することが
可能になる。
プロセッサのキャッシュメモリ(2,4)に新しいブロ
ックが0−ドされた時に(プロセッサのキャッシュメモ
リの語は両方のレベルを含むセットを意味する)、主メ
モリ9に、要求データの更新コピーが無ければ、読取り
要求およびそれにも関わらず送られて来る要求を処理し
なければならない。従って送られて来る各要求に関して
、メモリバンク9のシステムバス8のインタフェース(
不図示)は、全てのプロセッサP1〜P2によって決定
された確認値を解釈しなければならない。もう1つの可
能性として、データの更新コピーを有するプロセッサに
よって作動される特定信号を用いてメベたように、応答
してデータを与えねばならないのは、更新コピーを有す
るプロセッサP1・・・・・・Pnである。
もしシステムバス8にある書込み要求が共有データに関
係するものの場合は、主メモリ9においする方法と、デ
ータのコピーを含むキャッシュメモリ2.4に直接書込
む方法の2つの方法がある。
上記のようなシステムバスに必要な特性は、システムデ
ータの一致性を維持するプロトコールを支持するのに必
要かつ十分な条件である。複雑化されたプロトコールを
使用する場合は、性能上の理由からキャッシュメモリに
ある情報の更新コピーを読取りながら、同時にそれらを
主メモリにコピーすることが必要になる場合もあり得る
。しかし、このようなトランザクシコンは読取り要求の
後に再込み要求を出す方法で代替させ得る。中古長! 本発明の好適実施銀様の理解という点で、バスシステム
に関する詳細な説明は不必要であろう。
システムバスに上記の2つの特性を獲得すれば、その他
の周知の機械的、電気的特性は第1図に示したマルチプ
ロセッサのアーキテクチャと両立しないことはない。但
し、接続できるプロセッサの最大数を制限するのはバス
の通過帯域であるため、要求に対する応答時間を犠牲に
しても転送速度を最適化することが推奨される。この点
から見て、パケット交換による転送方法が非常に望まし
いと言える。また使用する汎用アルゴリズムが特定の装
置に有利に作用しないようにして、通過帯域の配分を平
等にすることも重要である。
現在のバス規格では、所謂[)蔦−チャバス(F ut
urebus”>(IEEE規格、 p896.1)を
例外として明快なマルチプロセッサのアーキテクチャを
支援することは不可能である。このようヤ向けのシステ
ムバスについて詳細な説明を与えている「ツユ−チャバ
ス」規格をあらゆる実用目的で参照することになろう。
第2図に示したプロセッサの機能に関して次に行なうよ
り詳細な説明においては、キャッシュメたにないにせよ
、第1キヤツシユメモリレベル2が連想記憶装置の機能
を有するとみなす。本発明の実施態様に関しては、キャ
ッシュメモリの構成に最もよく使用される2種類の構成
、すなわちダイレクトマツピング構成とセット連想構成
の何れかを選択することができる。これらの構成につぃ
は、上にあげたA fan J ay  S with
論文「キャッシュメモリ」に記載されている通りである
読取り、書込み動作は全て、中央処理袋′t!11が第
ルベルのキャッシュメモリ2にアクセスして行なう。中
央処理袋ra1の読取り動作において、バス11に呈示
されているアドレスがキャッシュメモリ2の入力のアド
レス部分と比較され、合致した場合には要求されたデー
タをバス12に配置する。
第ルベルキャッシュメモリのブロックの大きさを比較的
小さくして障害の処理時間をできるだけ短縮する。第2
レベルのキャッシュメモリ4へ1回のアクセスするだけ
で第ルベルでの障害を解決〒きるようにするためには、
内部バスの幅を第ルベルのキャッシュメモリブロックの
幅と同じにする必要がある。32ビット幅が妥当な線で
ある。
第ルベルキャッシュメモリ2の各入力に有効性の標識V
を付随させる。この標識が1である場合には、入力の内
容が有意味のものと判新される。
しかしこの標識がゼロになっていれば、ブロックに含ま
れるデータはそれ以上連想方式でアクセスされなくなる
。たとえバス11に呈示されているアドレスがこの種類
の入力のアドレス部分に含まれるアドレスと同じであっ
ても、読取りまたは書込みアクセスは障害として処理さ
れる。
中央処理装置1によって第1キヤツシユメモリレベルに
有効に書込みアドレスが行なわれている間に、2つのバ
ス11.12が配置されて変更が行なわれる。また、キ
ャッシュメモリの第2レベル4に送られる書込み要求が
、書込みバッファ3に記憶される。従って中央処理装置
1は、キャッシュメモリの第2レベル4において書込み
を行なうのに必要な時間その動作を阻止されることはな
い。
キャッシュメモリの第ルベル2の内容がキャッシュメモ
リの第2レベル4の中に含まれているため、第ルベル2
での書込み動作が成功すれば必然的に第2レベル4での
書込み動作も成功する。
自込みバッファ3の深さ、即ち書込みバッファ3の記憶
できる珈込み要求の数は、中央処理装置が頻繁に動作阻
止されるのを防止できる程度にする必要がある。Jou
rnal or the As5ociationfo
r  C0IIDtltin!II  vachtne
ry”、Vol、2G。
更新に与える効果」の記載によると、書込みバッファ3
は、無限大のバッファから与えられる性能利得のほとん
ど全部を獲得できる深さ4とする。
またこれは、コンピュータメーカによって一般的に採用
されている大きさでもある。
自込みバッファ3はその名の示唆するところと異なり、
第2キヤツシユメモリレベルに対する占込み要求を記憶
するだけに使用されるのではない。
それは内部バス7でインタフェースというもつと一般的
な役割も果す。また、後述するように、第1キヤツシユ
メモリレベルでの障害を解決し、無能化動作を行なう際
にも畠込みバッファ3が使用される。
中央処理装置1がキャッシュメモリの第ルベル2におい
て書込み動作する際に障害が生じた場合、書込み要求は
占込みバッファに記憶される。
しかし、中央処理装置は、第ルベルキャッシュメモリの
中の不足ブロックにロードされるのを待機する状態とは
ならない。第ルベルキャッシュメモリ2の使用する更新
プロセスは、書込み障害の存在する場合には入力の割当
てを行なうことなくメモリ階層のより高いレベルでのラ
イトスルー(書込み継続、 write−throug
h−without−allocation)によって
行なわれる。ライトスルー機能のあるキャッシュメモリ
を備えたコンピュータシステムでは、はとんどの場合書
込み障害が生じても不足データのO−ディングを行なわ
ないのが6通である。
従って内部バス7を通って第2キヤツシユメモそれらの
書込み動作が、第2キヤツシユメモリレベルにおいて処
理される方法について以下に説明することにする。
中央処理装置1が第ルベルのキャッシュメモリ2におい
て読取り動作を行なう際に障害が発生すると、読取り要
求が1込みバッファ3に記憶され、中央処理装置はこの
障害が解決されるまで、即ち不足ブロックがロードされ
るまで待機したままとなる。不足ブロックのローディン
グが行なわれた時点で、中央処理vZtif21の読取
り動作が再実施される。書込みバッファ3は書込み動作
だけでなく読取り動作でも内部バス1のインタフェース
として作用する。中央処理袋!!1がデータを欠く場合
は動作阻止されているため、読取り要求が一時記憶され
ないのは勿論である。
このアーキテクチャにおいては、キャッシュメモリの第
ルベル2の障害の処理を行なうのは書込みバッファ3で
ある。書込みバッファはアドレスバス11の不定ブロッ
クのアドレスを回復し、内部バス1の点検を要求し、第
2キヤツシユメモリレベル4への読取り要求を送る。第
2キヤツシユメモリレベルによって書込みバッファ3へ
要求データが戻されると(障害もこのレベルで解決され
た後に生じるように)、書込みバッファは、FIFO(
先入れ先出し)やLRtJ (最低使用傾度)等の周知
のアルゴリズムによって指定される新しい「アドレス/
データ」対を第ルベルキャッシュメモリ2の入力にロー
ドする。このローディングによって有効データをオーバ
レイするが、この有効データはなお第2レベルのキャッ
シュメモリに存在する。
従って内部バスから第2レベルのキャッシュメモリに送
られる要求は下記のものとなる。
−第ルベルの障害処理に相当する読取り要求−関連デー
タが存在すれば第ルベルで実行される中央処理装置から
の書込み要求。
次に第2レベルキヤツシユメモリ4による要求の処理方
法、およびこのキャッシュメモリの障害力゛1 を解決しゃイステムデータの一致を維持する働きをする
システムバスのインタフェースの機能について説明する
第ルベルのキャッシュメモリ2と同様に、第一シ 2レベルのキャッジメモリ4も連想記憶装置の機能を有
する。成功率を高くするためには、このキャッシュメモ
リの大きさを比較的大きくL(128または256キロ
バイトが適当である)、従って内部構成をセット連想形
式とする。
第ルベルのキャッシュメモリ2で生じた障害の処理が第
2レベルのキャッシュメモリ4へ複数回のアクセスを生
じるのを防止するために、ブロックの大きさを少なくと
も第ルベルのブロックと等しくする。ブロックの大ぎさ
を256ビツトに固定するのが妥当であると思われるが
、この点でキャッシュメモリに関する各種の研究から証
明されているように、ブロックを大きくする(128〜
512ビツト)ことによって事前O−ディング効果によ
る成功率の最適化が可能になる(前出のAlan  J
aV  Sm1th論文「キャッシュメモリ」参照)。
データの一致を実現するために、3つのlFi識P。
M、Vを各入力に付随させる。これらの標識が第2レベ
ルのキャッシュメモリ4に関して5つの状態を指定する
。これらの状態には、次のものがある。
−「インバリド(無効)」 (v=o、pとMは無有息
)キャッシュメモリの入力に含まれるデータは無関係で
ある。この入力でのアクセスは障害につながP=O,M
−0):他のブロックコピーが他のキャッシュメモリに
存在し得る。置換中に主メモリにブロックをコピーする
必要はない。データは必−O,M−1):他のブロック
コピーが他のキャッシュメモリに存在し得る。主メモリ
が更新されていないため、置換中に主メモリにブロック
をコ1、P−1,M−0):(I!1のキャッシュメモ
リでこのブロックのコピーを含むものはない。データP
=1.M=1):他のキャッシュメモリでこのブロック
コピーを含むものはない。
ブロックは第2レベルのキャッシュメモリにロードされ
て以来変更されており、主メモリとの間に不一致または
不整合が存在する。置換中に主メモリにコピーする必要
がある。
標識■(有効)は(第2レベルのキャッシュメモリ2に
関して)、入力が関連データを含むかどうかを特定する
。標識M(変更2は、ブロックが第2レベルのキャッシ
ュメモリ4にロードされてから変更されたかどうかを特
定する。このビットが配置されると、新しいブロックに
よる置換中にメモリにブロックのコピーが行なわれる。
第3の最後の標RP(プライベート)は、ブロックが他
のプロセッサと共有されている可能性があるかどうかを
特定する。このビットが2進値の1になると、システム
のプロセッサの中で他にコピーを有しているものはない
システムデータの一致を維持するプロトコールは、登録
簿メモリ5の関連するシステムバス8のインタフェース
6によって維持される。この登録簿メモリ5は、データ
の共有状況を動的に、かつソフトウェアに関して完全に
明瞭な方法で検出すす ることI可能にする。登録簿メモリ5の各入力が、第2
レベルのキャッシュメモリ4の対応入力のアドレス部分
を含み、これにR(レスポンダ)の標識と有効性標識(
V)を付随させている。これら2つの標識が、この連想
記憶装置の入力の「データ」部分を構成する。
標識Rの数値が、第2レベルキヤツシユメモリの対応ブ
ロックの411PおよびMが表わす数値のrORJ論理
を表わす。
次に記載するデータの一致またはデータの整合性実現方
法は、「ツユ−チャバス」規格により支持されるrMO
EsIJと呼ばれるプロトコールのセットに基くもので
ある。このプロトコールのセットについては、1986
年5月3日〜5日に東京において開催された「第13@
コンピユータアーキテクチヤに関するシンポジウム」の
「会議録」に発表されたPaul Sweazey  
並びにA+anJayS withの論文[コンパヂプ
ルキャッシュの−hロトコールとIEEEフユーチャバ
スによる支援」の中に記載されている。
第3図に示した流れ図の段階20〜26は、有効な読取
り動作と関連する第2キヤツシユメモリレベルの動作モ
ードを表すものである。
この流れ図および後続の流れ図において、書込みバッフ
ァ3と、第1キヤツシユメモリレベル2と第2キヤツシ
ユメモリレベル4とはそれぞれTE、、A1.A2と示
されている。
第1キヤツシユメモリレベル2の障害を解決すべく書込
みバッファ3によって内部バス1へ読取り命令が出され
る時、求められるデータのアドレスADがアドレス副バ
ス13に配置される。段階20においてこのアドレスA
Dを第2キヤツシユメモリレベル4の入力のアドレス部
分ADiと比較し、成功した場合には(段階21.22
)、第1キヤツシユメモリレベルの不足ブロックに対応
するデータを内部バスのデーターlバス14に配置して
、段階23において書込みバッフ?3にロードする。
第2レベルのキャッシュメモリのアクセスされたブロッ
クに付随するwrap、M、Vは変更されない。
書込みバッファ3が第1キヤツシユメモリレベル2の新
しいブロックのローディングを行ない、段階24におい
てビットVを1にする。中央処理装置1の動作が中断中
であるために、自込みバッファ3が7ドレスバス11お
よびデータバス12の制御を引き継ぎ、周知の種類の置
換アルゴリズム(FIFOまたはLRLJ)によって指
定された場所でローディングを行なう。ローディングを
終わると、中央処理装置に対して読取リサイクルを再開
できることを知らせる。段1!I!22に示したように
、第1キヤツシユメモリレベル2のアクセスされたブロ
ックのビット■が1であれば、段階23〜25は実施さ
れず、そのブロックは無いものとみなされて障害を解決
しなければならない(段N26)のは当然である。
第4図の流れ図の段l@26〜41は、第2キヤツシユ
メモリレベル4の読取り障害に関連する動作モードを表
すものである。この流れ図およびその後に示す流れ図に
おいて、MCおよびREの文字符号はそれぞれ主メモリ
9と登録簿メモリ5とを示す。
この流れ図は、第2キヤツシユメモリレベルの障害を解
決するためにとられる色々な動作を詳しく説明する。障
害の発生したプロセッサのシステムバスのインタフェー
ス66役割、およびその他のプロセッサP1・・・・・
・Pnのシステムバス8のインタフェース6の役割が詳
細に示されている。
書込みバッファ3により内部バス7へ読取り動作が送ら
れる場合障害を生じ、それを解決するのはシステムバス
−のインタフェース6である。次にシステムバスのイン
タフェースが主メモリ9に読取り要求を出し、その他の
プロセッサP1・・・・・・P のシステムバス8の全
インタフェースによつて段l1M27.28が実施され
る。プロセッサP1・・・・・・P はシステムバス8
に配置されているアドレスADを有する登録簿メモリ5
にアクセスして、要求されたデータのコピーがプロセッ
サ内に存在しているかどうかを点検する。
障害の発生したプロセンナにおいては、不足ブス計算が
行なわれる。この入力は、周知の梗類の置換アルゴリズ
ム(FIFOまたはLRU)によって指定される。成功
率を最適化するために、置換アルゴリズムはすぐ後で再
びアクセスされる可能性の低い入力を指定しなければな
らない。
置換の犠牲となる入力の中に8!!識Mが1である関連
データ(V−1)が含まれていることがあるため、主メ
モリ3が更新されていなければ、不足情報のローディン
グを行なう前にまずこのブロックを主メモリ9にコピー
する必要がある。しかし第2レベル4の障害の処理時間
が長(なるのを避けるために、コピーすべきブロックお
よびそのアドレスはバスシステムのインタフェース6に
一時的に記憶させる必要がある(この段階は不図示)。
このようにして新しいブロックのローディングと第2キ
ヤツシユメモリレベルにおった間に変更された置換ブロ
ックのアンローディングとの間に並行関係が生まれる。
変更の終わったブロックをアンローディングするのは再
書込み更新プロセスの直接の結果である。
第2キヤツシユメモリレベル4のブロック全体またはこ
のブロックの一部が第1キヤシユメモリレベル2に存在
する場合がある。第2キヤツシユメモリレベル4のブロ
ックの置換を行なう間に、このデータのコピーが第1キ
ヤツシユメモリレベル2に残らないことを見越しておか
ねばならない(この段階は不図示)。ここに記載したマ
ルチプロセッサシステムでは、第2キヤツシユメモリレ
ベル4の各ブロックに付随させた標識の中で、ブロック
全体またはブロックの一部のコピーが第1キヤツシユメ
モリレベル2に存在するかどうかを特定するものは特に
ない。
第2レベル4のブロックがアンロードされると、対応す
る第ルベル2のブロック全部が機械的に無効化される。
例えば第ルベル2のブロックの大きさが第2レベル4の
ブロックの8分の1であると仮定すると、第2レベル2
へのアクセスは8回行なわれる。第ルベル2にこのよう
なアクセスを行なうのは書込みバッファ3である。中央
処理装置の動作が中断されているため、書込みバッファ
がアドレスバス11およびデータバス12の制御を引継
いで無効化を行なう。無効化サイクル、は、連想式にア
ドレスされる入力のビットVをゼロにすることから成る
もし無効化すべきブロックが第ルベルのキャッシュメモ
リ2に存在しない場合は、書込みバッファ3により行な
われる無効化サイクルが障害になり、それ以上の動作が
引起こされないことは勿論である。関連データが置換を
受けている場合があるため、一定数の無効化アクセスが
不要になることは明白である。
しかし冗長無効化に関連する時間的な余剰コストは第2
キヤツシユメモリレベルでの「存在」標識の処理から生
じるコストによりは小さいものである。
第2キヤツシユメモリレベル4が要求されたブロックの
コピーを所有している場合、段階30を実からロードさ
れる。登録簿メモリ5には段1ii31においてブロッ
クのアドレスをロードされ、2つの標gKR%Vが1に
なる。先にも述べたように、標SIRの数値が標識Pと
MのrORJ論理になっているためである。
[パブリック/ノンモディファイド」状態において要求
ブロックのコピーが存在する場合、段階32〜35が実
行されて、主メモリがシステムバスがら送られて来る読
取り要求に応答する。ブロックが[パブリック/ノンモ
ディファイド]状態でロードされる。
プロセッサがシステムバス8のインタフェースと関連す
る登録簿メモリ5においてビットRが1になるような状
態で要求ブロックのコピーを所有しているとすると、そ
のプロセッサはシステムバスから送られる読取り要求に
応答しなければならない。この場合はこのプロセッサが
応答する。要求プロセッサへ情報を提供する前に、主メ
モリに対して読取り要求またはこのブロックに関する要
求を考慮しないように指示する。
応答プロセッサの主メモリの要求ブロックのコピーは、
[プライベート/モディファイド」状態、「プライベー
ト/ノンモディファイドj状態、[プライベート/モデ
ィファイド」状態の3つの状態のうちいずれかを取る。
3つのいずれの場合にも、応答プロセッサの第2キヤツ
シユメモリレベルのブロックと関連する状態ビットPが
ゼロになる(段階39)。従って状態が「パブリック/
モディファイド」状態または「プライベート/モディフ
ァイド」状態の場合は、[パブリック/モディファイド
」状態のままかあるいはこの状態になり、標識Rは変更
されない。ブロックのコピーが応答プロセッサの[プラ
イベート/ノンモディファイド」状態にある時は、その
状態が[パブリック/ノンモディファイド」状態となり
、対応する標識Rをリセットする必要がある(段階38
)。
応答プロセッサにおいて、要求データを提供できるよう
に第2キヤツシユメモリレベル4にアクセスするのはシ
ステムバス8のインタフェース6である。そのため、シ
ステムバスのインタフェースは、内部バス8の制御を受
ける。汎用アルゴリズムが、書込みバッファとシステム
バスのインタフェースとの間で生じ得る内部バスへのア
クセスの衝突を解決するために使用される。システムバ
スのインタフェースは、書込みバッファより高い優先度
をもつ必要がある。
要求プロセッサにおいては、応答プロセッサの状態と関
係なく「パブリック/モディファイド」状態でブロック
がロードされる(段階40)。登録簿についても標識を
、R=0.V−1としてシステムバスのインタフェース
により更新する必要がある(段ra41)。
第2キヤツシユメモリレベルにブロックが一度ロードさ
れると、害込みバッファがシステムバスのインタフェー
スから信号を受信し、ために第3図に関して説明したよ
うに、その読取り動作を再実行する。
第5図の流れ図の段階42〜54は、第2キヤツシユメ
モリレベル4の有効書込み動作と関連する動作モードを
表わす。
書込みバッファ3によって内部バス7へ書込み動作が送
られると、第2キヤツシユメモリレベル4の中に関連ブ
ロックが実際に存在し、このブロックの状態が「プライ
ベート/モディファイド」状態であれば、その書込み動
作が直ちに実行される(段階42〜46)。標識は、第
2キヤツシユメモリレベルと登録簿では変更されない。
ブロックが「プライベート/ノンモディファイド]状態
にあるとすると、変更はやはり直ちに行なうことができ
るが、ブロックの状態は「プライベート/モディファイ
ド」状態にする必要がある(段階47.48.49)。
具体的には標識Mを1にしなければならない。この標識
の更新を行なうのは占込みバッファ3である。
ブロックが「パブリック/ノンモディファイド」状態(
段階50)または「パブリックンモディファイド」状態
(段階52)にある時は、書込み動作を直ちに行なうこ
とはできない。書込みバッファ3が、システムバス8の
インタフェース6に対して他のプロセッサへ無効化要求
を送ることを要求する(段階53)。プロセッサP1・
・・P、のシステムバス8のインタフェース全部がその
登録簿メモリ5にアクセスして、関連ブロックのコピー
がプロセッサ内に存在するかどうか判定することにより
点検を行なう。ブロックのコピーを有するプロセッサは
全てそれを無効化する必要がある(その段階は不図示)
。このため、バスシステム6のインタフェースが、登録
簿メモリ5および第2レベルのキャッシュメモリ4にア
クセスしてビットVをOにする。第2レベル4に存在す
るブロックはそこにある読取り障害を解決するために第
ルベル2にロードされたものである場合もあるため、第
1キヤツシユメモリレベル2にも無効化を反映させる必
要がある。先にも述べたように、関連データが置換され
ている場合があるため、第ルベル2での無効化アクセス
の中には不必要になるものもある。害込みバッファ3は
、中央処理装置り1御時停止されていないうちに第ルベ
ルのキャッシュメモリ2にアクセスして標識■をOにで
きる必要がある。このような状況で寝込みバッファ3が
、中央処理装置1の動作を一時停止してアドレえた後は
、ブロックが変更されてその状態が1゛プライベート/
モデイフフイド」状態になる(段階54)。
第6図の流れ図の段階55〜15は、キャッシュメモリ
4の第2バツフアの書込み障害に関連する動作モードを
表わしたものである。
書込みバッファによって送られる読取り命令の障害に関
しては、キャッシュメモリが所望のブロックを含まない
場合は読取り要求をシステムバ′P−乏 ス8 を通って送ることができる(55)。Inブロッ
クをローディングする前に、システムは置換アルゴリズ
ムによって指示される第2キヤツシユメモリレベル40
入力に含まれるデータがモディファイドされていないこ
とを確認する。モディファイドされていない場合(標I
Mの値が1の時)は新しいブロックを実際にロードする
前にデータを主メモリ9.にコピーする。読取り障害の
解決方法に関して既に述べたように、システムバス8の
インタフェース6にアンロード要求を一時的に記憶させ
て、障害の処理時間を延ばすことができる。
置換を受けたブロックはシステムバスのインタフェース
が不足ブロックを受信している時に有効にコピーするこ
とができる。(対応するアンロード段階については、専
門家にとって自明であるため、説明を省略する)。
同様にシステムは、第1キヤツシユメモリレベル2の中
にアン0−ドされたブロック全体またはブロックのコピ
ーが残っていないことを確実にする。書込み障害中この
中央処理装置が一時停止されていないため、自込みバッ
ファ3が次に中央処理装置の動作を中断して第1キヤツ
シユメモリレベル2の無効化サイクルを実施する。
他のプロセッサに要求ブロックのコピーを有するものが
なければ(段階56.57> 、主メモリ9から[プラ
イベート/ノンモディファイド」状態にロードされる(
段@5B、 59)。第2キ11ツシユメモリレベルに
おいて書込みバッファによるモデイファイドが実行され
る結果、標識Mが1になっているため(段階60)ブロ
ックは[プライベート/モディファイド」状態になる。
他のプロセッサの第2キヤツシユメモリレベル4に不足
ブロックのコピーが[パブリック/ノンモディファイド
]状態で存在する場合(段階61゜62)、要求された
データを出すのも主メモリである。この場合は応答プロ
セッサが無いためである。
読取り障害については、ブロックが当初に「パブリック
/ノンモディファイド」状態にロードされる(段階63
.64)。書込みバッファにより書込み動作が有効に実
行されると、有効書込み動作に関連する処理動作に関し
て先に説明したように、システム内に存在する他のコピ
ーの無効化を生じる結果となる(段165)。従ってブ
ロックの状態は[プライベート/モディファイド」状態
になる(段1!!166)。
システムのプロセッサが応答中の時、このプロセッサは
要求データケ出す。段lil!i67〜72においてブ
ロックが要求プロセッサに「パブリック/ノンモディフ
ァイド」状態でロードされる。その他のプロセッサに存
在するコピーを無効化させるのは、書込みバッファ3に
よる実際の書込み動作の実行である(段階65)。先述
のように、一旦書込み動作が行なわれるとブロックの状
態は[プライベート/モディファイドJ状態になる(段
階66)。
以上から分かるように、書込み障害に関連する処理動作
は読取り障害に関連する動作の復に有効な書込み動作に
関連する動作を行なった場合に相当する。
先行技術の説明の中で触れたように入出カプロセッサ1
01・・・10pによって生じる一致の問題も解決する
必要がある。システムにデータを入力する動作中に、入
出カプロセッサの何れかによって主メモリにおいて書込
み動作が実施される。入出カプロセッサは被処理情報が
1つまたはそれ以上のプロセッサに共有されているかど
うかを判断することができないため、バスシステムから
送られて来る書込み要求の1つ1つに無効化要求を伴な
わせる必要がある。システムバス8に2つの要求を連続
して送るのを避けるため、システムバス8において主メ
モリの書込み動作はプロセッサP1・・・Poによる無
効化と解釈されることを符号化しておくことができるは
ずである(必要であれば別個の制御線により)。
データ出力動作において、入出カプロセッサがシステム
バスに読取り要求を送る。先に記載したようなデータの
一致性を維持するブ0ト終−ルによって、常に更新され
たデータが周辺装置に送り出されるようにする。主メモ
リが更新されていない場合、要求されたデータを出すの
は反応プロセッサである。
以上の記載は好適実m態様の機能を説明するためのもの
であり、本発明の範囲を限定するものではない。本発明
の範囲を限定するのは、特許請求の範囲のみである。以
上の説明から専門家には明が可能である。
【図面の簡単な説明】
第1図は本発明による2レベルのキャッシュメモリを備
えるシングルパス式マルチプロセッサシステムを示す図
、第2図は第1図のプロセッサの構造を示す図、第3図
は第2キヤツシユメモリレベルに含まれるブロックの有
効読取りに関連する動作モードを示す流れ図、第4図は
第2キヤツシユメモリレベルに含まれるブロックの読取
りの障害に関連する動作モードを示す流れ図、第5図は
第2キ17ツシユメモリレベルのブロックの有効読取り
にm運する動作モードを示す流れ図、第6図は第2キヤ
ツシユメモリレベルのブロックの読取り障害と関連する
動作モードを示す流れ図である。 1・・・・・・中央処理・装置、2・・・・・・第1キ
ヤツシユメモリレベル2.3・・・・・・書込みバッフ
ァ、4・・・・・・第2レベルキヤツシユメモリ、5・
・・・・・登録簿メモリ、6・・・・・・インタフェー
ス、γ・・・・・・内部バス、8・・・・・・システム
バス、9・・・・・・主メモ1ハ1G1〜10.−−−
−・−プロセッサ。

Claims (9)

    【特許請求の範囲】
  1. (1)夫々中央データ処理装置及びキャッシュメモリを
    備える各プロッセッサを共通中央メモリに接続するシン
    グルバスマルチプロセッサアーキテクチャのプロッセッ
    サに関連したキャッシュメモリの管理方法であって、キ
    ャッシュメモリが2つのレベルに分割されており、中央
    処理装置により送られた書込命令が、第1のレベルに含
    まれるデータの更新コピーを第2のレベルに保持するよ
    うに、第1のレベルに関連したライトスループロセスに
    よりキャッシュメモリの両方のレベルで実施され、対応
    するデータがライトバックプロセスにより第2のキャッ
    シュメモリレベルから主メモリに更新される方法。
  2. (2)第2のキャッシュメモリレベルには、このレベル
    に含まれるデータが有効でないことを表す第1の「イン
    バリッド」状態と、このレベルに含まれるデータの他の
    コピーが他のキャッシュメモリに存在し得ること、及び
    このレベルに含まれる情報を置換中に主メモリにコピー
    する必要がないことを示す第2の「パブリック/ノンモ
    ディファイド」レベルと、データの他のコピーが他のキ
    ャッシュメモリに存在していること、及び更新のための
    置換中にブロックを主メモリにコピーすべきであること
    を示す第3の「パブリック/モディファイド」状態と、
    他のキャッシュメモリがコピーを保持していないこと、
    及びデータが主メモリに含まれるデータと一致している
    ことを示す第4の「パブリック/ノンモディファイド」
    状態と、他のメモリがデータのコピーを保持していない
    こと、第2のキャッシュメモリレベルにロードしてから
    データが変更されていること、及び主メモリとの間に不
    一致があり、置換中にデータを主メモリにコピーするこ
    とを示す第5の「プライベート/モディファイド」状態
    との5つの状態が割り当てられている特許請求の範囲第
    1項に記載の方法。
  3. (3)第1のキャッシュメモリレベルに不足ブロックを
    含む障害を解消するために、該不足ブロックを第2のキ
    ャッシュメモリレベルで検索し、第1のレベル及び第2
    のレベルをほぼ同時に更新する特許請求の範囲第2項に
    記載の方法。
  4. (4)検索されているブロックが第2のレベルに存在し
    ないとき、要求されたブロックが他のプロセッサに存在
    しているか否かを確認するべく主メモリ及び他のプロセ
    ッサに要求を送る特許請求の範囲第3項に記載の方法。
  5. (5)主メモリから要求されたブロックのコピーは、他
    のキャッシュメモリが要求されたブロックのコピーを保
    持していない場合には「プライベート/モディファイド
    」状態でロードされ、他のキャッシュメモリに「パブリ
    ック/ノンモディファイド」状態でコピーが存在する場
    合には「パブリック/ノンモディファイド」状態でロー
    ドされる特許請求の範囲第4項に記載の方法。
  6. (6)要求されたブロックのコピーが、「プライベート
    /ノンモディファイド」又は「プライベート/モディフ
    ァイド」状態でコピーを保持する別のプロセッサのキャ
    ッシュメモリから「パブリック/ノンモディファイド」
    状態でロードされる特許請求の範囲第5項に記載の方法
  7. (7)該当ブロックが第2のレベルに存在する場合、及
    びその状態が「プライベート/モディファイド」又は「
    プライベート/ノンモディファイド」状態である場合、
    第2のキャッシュメモリレベルでライトスルーオペレー
    ションを実施する特許請求の範囲第2項に記載の方法。
  8. (8)変更すべきブロックが該ブロックを変更する前又
    は該ブロックを「プライベート/モディファイド」状態
    に配置する前に「パブリック/モディファイド」又は「
    プライベート/モディファイド」状態にあるとき、該ブ
    ロックのコピーを有効化するための有効化要求を他のブ
    ロックに伝送する特許請求の範囲第7項に記載の方法。
  9. (9)主メモリでコピーされたか又は他のプロセッサか
    らの有効化を受けた第2のキャッシュメモリレベルブロ
    ックのコピーの全部又は一部を必要に応じて有効化する
    ように、第1のキャッシュメモリレベルをアクセスする
    特許請求の範囲第4項に記載の方法。
JP62336749A 1986-12-31 1987-12-29 シングルバスマルチプロセツサアーキテクチヤのプロセツサに関連したキヤシュメモリの管理方法及び該方法により作動するデータ処理システム Pending JPS63173147A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR8618422 1986-12-31
FR8618422A FR2609195A1 (fr) 1986-12-31 1986-12-31 Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede

Publications (1)

Publication Number Publication Date
JPS63173147A true JPS63173147A (ja) 1988-07-16

Family

ID=9342480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62336749A Pending JPS63173147A (ja) 1986-12-31 1987-12-29 シングルバスマルチプロセツサアーキテクチヤのプロセツサに関連したキヤシュメモリの管理方法及び該方法により作動するデータ処理システム

Country Status (3)

Country Link
EP (1) EP0278196A1 (ja)
JP (1) JPS63173147A (ja)
FR (1) FR2609195A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228035A (ja) * 1988-03-08 1989-09-12 Fujitsu Ltd データ処理装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
EP0404128B1 (en) * 1989-06-21 1997-09-03 Hitachi, Ltd. Multi-processor system with hierarchical cache memory
EP0407053B1 (en) * 1989-07-05 1996-08-21 Hewlett-Packard Company Small, fast, look-aside data cache memory
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
JP3409866B2 (ja) * 1992-09-18 2003-05-26 株式会社日立製作所 並列計算機
CA2130407A1 (en) * 1993-12-30 1995-07-01 Fu Lam Chan Store in cache having direct slave interface

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228035A (ja) * 1988-03-08 1989-09-12 Fujitsu Ltd データ処理装置

Also Published As

Publication number Publication date
FR2609195A1 (fr) 1988-07-01
EP0278196A1 (fr) 1988-08-17

Similar Documents

Publication Publication Date Title
US5394555A (en) Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
EP0908825B1 (en) A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory
KR100491435B1 (ko) 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법
US6647466B2 (en) Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
US5752264A (en) Computer architecture incorporating processor clusters and hierarchical cache memories
US8103835B2 (en) Low-cost cache coherency for accelerators
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US20010013089A1 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
CN114328295A (zh) 存储管理装置、处理器、相关装置和相关方法
JPS63173147A (ja) シングルバスマルチプロセツサアーキテクチヤのプロセツサに関連したキヤシュメモリの管理方法及び該方法により作動するデータ処理システム
US5829035A (en) System and method for preventing stale data in multiple processor computer systems
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
JP3116215B2 (ja) 二重ディレクトリー仮想キャッシュの制御方法
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US20080104333A1 (en) Tracking of higher-level cache contents in a lower-level cache
JP2002116954A (ja) キャッシュシステム
US6826654B2 (en) Cache invalidation bus for a highly scalable shared cache memory hierarchy
US6826655B2 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
EP0271187B1 (en) Split instruction and operand cache management
JPH03230238A (ja) キャッシュメモリ制御方式
JPH0529943B2 (ja)
JPH06100985B2 (ja) 階層キャッシュ・メモリ装置
JP2976980B2 (ja) キャッシュ制御方式
JP2923273B2 (ja) データ処理システム