JPS609299B2 - キヤツシユ・シノニム制御方式 - Google Patents

キヤツシユ・シノニム制御方式

Info

Publication number
JPS609299B2
JPS609299B2 JP56139872A JP13987281A JPS609299B2 JP S609299 B2 JPS609299 B2 JP S609299B2 JP 56139872 A JP56139872 A JP 56139872A JP 13987281 A JP13987281 A JP 13987281A JP S609299 B2 JPS609299 B2 JP S609299B2
Authority
JP
Japan
Prior art keywords
synonym
line
address
class
command
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
Application number
JP56139872A
Other languages
English (en)
Other versions
JPS5788586A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS5788586A publication Critical patent/JPS5788586A/ja
Publication of JPS609299B2 publication Critical patent/JPS609299B2/ja
Expired 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

Description

【発明の詳細な説明】 開示の概要 本発明はストア・ィン式キャッシュ記憶 (SIC)のシノニムを検出し且つこれを処理する。
キャッシュ記憶に関連して各プロセッサに設けられたキ
ャッシュ・ディレクトリ則ちプロセッサ・ディレクトリ
(PD)は、プロセッサ要求の一部の論理アドレス・ビ
ットによってアドレスされる基本クラスで探索される。
もしこの基本クラスにある複数のでセット・アソシアテ
ィブ)ライン・ェントリのうち任意のェントリがこの要
求の変換アドレスを保持しておれば、キャッシュ記憶中
の対応するライン位置でデータがアクセスされる。他方
、この基本クラスにあるどのライン・ェントリもこの要
求の変換アドレスを保持してし・なけれ‘ま、キャッシ
ュ・ミス信号が生ぜられ、かくて要求ラインを取出すた
めに主記憶へライン取出コマンドが発行される。またこ
のライン取出コマンドに応じて、シノニム探索回路は、
該コマンド中の基本クラス・アドレスにある変換可能ビ
ットを置換することによって潜在的シノニム・クラスの
すべてのアドレスを発生するようにされる。次いで、潜
在的シノニム・クラスの各々はプロセッサ・ディレクト
リ(PD)に置かれた重要な情報のコピーを保持する処
のコピー・ディレクトリ(CD)でアクセスされ、そし
て当該要求の変換アドレスと比較されるので、これによ
り任意のシノニムが存在するか否かを決定することがで
きる。プロセッサ・ディレクトリ(PD)及びコピー・
ディレクトリ(CD)に置かれた各ライン・ェントリは
排他(EX)ビットを有し、該ビットはコピー・ディレ
クトリ(CD)でシノニムが検出された後の当該要求の
処理を制御する。もしこの排他(EX)ビットがオフで
謙出専用(RO)状態を表わすならば、関連するライン
は任意のチェックポイント期間中にロックすることがで
きない。この場合、このラインに対する後続の要求が発
生されることを想定して、検出されたシノニム位置でこ
のラインをアクセスせず、謙出専用状態にあるこのライ
ンを基本クラス中の所与のヱントリへコピ−することが
行われる。プロセッサがこのシノニム・ラインを排他的
に要求していない限り、該シノニム・ラインは無効化さ
れない。もしシノニム・ェントリ中の排他(EX)ビッ
トがオンで排他(EX)状態を表わすならば、チェック
ポイント期間中にその関連するラインをストア・ィン式
キャッシュ記憶(SIC)でロックすることが可能であ
り、従ってストア・ィン式キャッシュ記憶(SIC)中
の検出されたシノニム位置でデータをアクセスすること
ができる。発明の背景 本発明は計算機における記憶階層の制御に係り、更に詳
細に説明すれば仮想記憶方式におけるキャッシュ記憶の
シノニム検出及び処理機構に係る。
キャッシュ−シノニムとは、現要求の論理アドレスがそ
の変換された絶対アドレスを保持するキャッシュ・ディ
レクトリの任意のェントリを直接に位置付けることがで
きないような場合に、この絶対アドレスを保持する如き
キャッシュ・ディレクトリの1つのェントリを云う。
記憶階層を備えたデータ処理システムでは、主記憶中の
選択されたデータ・ライン(データ・ブロックと同義。
以下単に「ライン」という。)をキャッシュ記憶へコピ
ーすることにより、プロセッサがかかるラインを高速ア
クセスできるようにしている。プロセッサがデータを要
求する場合、このデ−夕をキャッシュ記憶で利用するこ
とができるか否かを決定するためにキャッシュ記憶が検
査され、そしてもしそうであれば、このデータは速かに
プロセッサへ供給される。もしこのデータがキャッシュ
記憶で利用できなければ、該データは低速の主記憶から
検索されねばならない。キャッシュ・ディレクトリを直
接にアドレスするために、各プロセッサ要求における論
理アドレスの一部が使用されるが、これは該論理アドレ
スを変換した絶対アドレスを使用するようにすると、ア
ドレス変換のプロセスが完了するまで待機しなければな
らず「従って全体的な性能が著しく低下することになる
からである。現在の代表的なキャッシュ記憶は「セット
・ァソシアテイビティ」の概念に基づいているので、要
求元は複数のェントリ(セット)を有するキャッシュ・
ディレクトリの1つの行(クラス)を直接にアドレスす
ることができる。
所与のクラスにおける複数のセットは並列的に且つ連想
的に探索され、かくて該クラスにおける任意のセットが
要求された論理(又は仮想)アドレスに対応する絶対(
又は実)アドレスを有するか否かを決定するようにされ
る。セット・アソシアティプ形キャッシュ記憶は、主記
憶の任意のブロックをキャッシュ記憶中の任意の位置へ
マップすることができるような完全アソシアティブ形キ
ャッシュ記憶と、主記憶の任意のブロックをキャッシュ
記憶中の1つの位置にだけマップすることができるよう
な直接マッピング形キャッシュ記憶との、妥協の産物で
ある。完全アソシアティブ形キャッシュ記憶は性能が優
れている反面、キャッシュ・ディレクトリの探索に長時
間を要し、また精巧な置換機構を要するという欠点があ
る。また直接マッピング形キャッシュ記憶はその実現に
要するハードウェア量が最も少ない反面、ェントリの重
ね書きが増加するために性能が最も低いという欠点があ
る。セット・アソシアティブ形キャッシュ記憶のサイズ
を増大するには、‘1)キャッシュ・クラスをアクセス
するために使用されるアドレス範囲を増大することによ
ってキャッシュ・ディレクトリ中のクラス数を増加する
か、又は{2}各クラス中のセット数を増加すればよい
。システムの性能を低下させないためには、セット・ア
ソシアテイピテイの増加に伴なつて、アドレスされたク
ラス中のすべてのセットを並列に調べるための余分なハ
ードウェアを設けなければならない。また、キャッシュ
・ディレクトリに利用可能な集積回路の実装技術上の制
約があるために、セット・アソシアティビティを大幅に
増加することは容易でない、ということがある。このた
め、キャッシュ・ディレクトリ中のクラス数を増加する
ことによって、キャッシュ記憶のサイズを増大すること
が望ましい。しかしながら、キャッシュ・ディレクトリ
中のクラス数が増加すると、要求中の論理アドレスから
取られるキャッシュ・ディレクトリのアドレス・ビット
はその変換不能フィールド(変位フィールド)を超えて
変換可能フィールドまで拡大されねばならない。キャッ
シュ・シノニムの問題が生ずるのは、このようにキャッ
シュ・アドレスが論理アドレスの変換可能フィールドか
らのビットを使用するような場合である。
即ち、キャッシュ・シノニムが存在するのは、要求中の
論理アドレスによって要求されたデータが該要求によっ
てアドレスされたクラスとは異なるキャッシュ記憶中の
クラスで利用可能な場合である。例えば、シノニムを生
ぜしめる原因には、m同じデータに対する諸要求が論理
アドレス及び絶対アドレスの間でスイッチする場合、【
21或るユーザが所与の論理アドレスで所与のラインを
アドレスしているときに、他のユーザがキャッシュ記憶
中の異なるクラスを位置付けるような異なる論理アドレ
スで同じラインをアドレスする場合、又は(3にのペー
ジ・フレームが所与の論理アドレスによってアクセスさ
れるように再割当てされる場合、がある。所与の論理ア
ドレスとそれを変換した絶対アドレスの間には、ランダ
ムな関係が存在する。
この関係は、所与の論理アドレスが主記憶中で利用可能
なべージ・フレームのどれへ割当てられるかということ
に依存する。かくて、所与の論理アドレスはこの割当て
られたページ・フレームが置かれている主記憶中の絶対
アドレスへ変換されうる。従って、絶対アドレス中の変
換ビットは任意の値を取りうるのであって、その値はア
ドレス変換の時点で決定されるにすぎないのである。か
くて、絶対アドレスの変換可能フィールド‘こあるビッ
ト位置の任意のサブセットの値は関連する論理アドレス
におけるビット位置の対応するサブセットの値に依存し
ないのであり、前者はその順列(permutatio
n)の範囲内で任意の値を取りうるのである。米国特許
第3723976号は、本発明とは異なるキャッシュ・
シノニム技法を教示する。
即ち、この特許に開示された多重処理システムでは、各
プロセッサはそれぞれストア・ィン式キャッシュ記憶、
取出ディレクトリ(FD)、ブロードカスト・ストア・
ディレクトリ(茂D)及び変換ディレクトリ(TD)を
設けられている。FD中のェントリはプロセッサ要求の
論理アドレス・ビット18−26によってアクセスされ
るのに対し、母D中の対応ェントリは要求された論理ア
ドレスの変換としてTDから得られた絶対アドレス・ビ
ット18−26によってアクセスされる。それゆえ、こ
のBSDはFDのコピー・デイレクトリではない。なぜ
なら、同じプロセッサ要求のための既D及びFD中の対
応ェントリは、BSD及びFD中の互いに異なる位置へ
マップされうるからである。さらに云えば、FD中のェ
ントリが絶対アドレス・ビット8−19を保持するのに
対し、既D中のェントリは絶対アドレス・ビット8一1
7及び論理アドレス・ビット18一19を保持し、その
うち後者の論理アドレス・ビット18一19がFD中の
対応ェントリを位置付けるのである。つまり、要求アド
レスを使用してFD中の基本クラスがアクセスされ、そ
してもしFD中でミスが検出されるようであれば、FD
中にシノニム位置が存在するか否かを決定するためにB
SDが調べられる。この米国特許第3723976号の
発明では、同じアドレスに置かれていないようなBSD
及びFD中の対応ェントリによって、2重置換無効化(
do肋lereplacementinvalidat
ion)という問題が生じうる。この2重置換無効化は
、有効なFDェントリが新しいェントリによって置換さ
れるような場合に生じうる。この米国特許の第7図に示
した例では、1つのFDヱントリが置換されると、2つ
のFDェントリ及び2つの茂Dェントリが無効化され、
かくて無効化されるブロックが変更されている場合には
、キャッシュ記憶で2つの無効化動作と2つの吐出(c
astout)動作を遂行しなければならない。この2
重無効化が生ずるのは、新しい茂Dヱントリ及び置換さ
れるBSDェントリが斑D中の異なる位置に置かれてい
る場合である。新しい任意のFDェントリについては、
論理アドレス・ビット18−19の可能な4つの変換可
能値があるために、BSDには可能な4つの対応位置が
存在する。従って、置換されるFDェントリに対応する
置換される斑Dェントリ及び新しいFDェントリに対応
する新しいBSDェントリが、同じ由D位置に置かれる
確率は1/4であるにすぎない。このような問題がある
ため、米国特許第 37233976号の発明は付属ハードウェア、例えば
ライン・ストア・バッファや吐出しに関係するハ〜ドウ
ェアを2重化しなければならないが、そうすると追加の
吐出しで主記憶バスが混乱させられるので、主記憶の総
合的な性能が著しく低下することになる。
これに対し、本発明は米国特許第3723976号のF
D及びBSDのかわりにコピー・ディレクトリ及びプロ
セッサ4ディレクトリを使用し、これらのディレクトリ
の対応するェントリを該ディレクトリの同じ位置へ常に
マップするようにしているので、この特許に伴う2重置
換無効化又は2重置換吐出しの問題を回避することがで
きる。
さらに、本発明は単一のディレクトリ、即ちプロセッサ
・ディレクトリだけでシノニム検出を行うことができる
。特磯昭56−33287号の発明はキャッシュ・ディ
レクトリを2Nグループのクラスへ分割し、この任意の
クラスを位置付けるためにディレクトリ・アドレス中の
Nビットの変換可能ビットを使用するようにしている。
キャッシュ・ディレクトリ中の2Nグループの各々は、
プロセッサ要求によって並列にアドレスされる。各グル
ープは潜在的に基本キャッシュ・ヒット又はシノニム・
キャッシュ・ヒットを保持するが、そのうち1つだけが
キャッシュ・ディレクトリ及びキャッシュ記憶に置かれ
うる。基本キャッシュ・ヒット又はシノニム・キャッシ
ュ・ヒットがどのグループにも見出されない場合には、
キャッシュ・ミスが生ずる。この発明では、本発明のよ
うにキャッシュ・シノニムを検出するためにコピー・デ
ィレクトリは使用されていない。米国特許第41363
85号の発明は、変換索引緩衝機構(DLAT)のシノ
ニム問題を解決することに係る。
この問題は、本発明が解決せんとするキャッシュ・シノ
ニムの問題とは無関係である。米国特許第413638
3号の制御手段は、共通ページが複数のアドレス空間で
同じ仮想アドレスを有するような多重仮想記憶方式の環
境で、共通セグメントのDLATシノニムを処理するも
のである。この制御手段は、共通ページ・アドレスを保
持するDLATェントリの各々に共通指示子を与え、こ
のようなェントリと特定のアドレス空間との対応づけを
なくすことにより、共通ページに対する複数のDLAT
ェントリを取除くようにしている。刊行物であるIBM
Mamte順nce Library、‘13033
Pr()cessor Complex 、 The
()ry ()fOperation /Diagra
m Man順l 、PmCeSSorSのra群 Co
ntrol Function( PSCF ) an
dProcessor S■ra鞍”、Volume
4 、Form No.SY22一7004−0の第1
.4.1頁及び第1.6.2頁には、キャッシュ・ディ
レクトリをアドレスするためにプロセッサ要求の論理ア
ドレスから与えられる変換可能ビットを使用しないでシ
ノニム問題を回避するようにした16ウエイのセット・
アソシアテイブ形キャッシュ記憶が記述されている。発
明の要約 本発明の目的は、単一プロセッサ又は多重プロセッサの
環境で使用されるセット・アソシアティブ形キャッシュ
・ディレクト川こ存在しうる如き任意のシノニム位置に
置かれたシノニムを検出するためのシノニム・アクセス
手段を提供することにある。
本発明の他の目的は、要求中プロセッサのコピー・ディ
レクトリでシノニム検出を行うと同時に、他のプロセッ
サのコピー・ディレクトリで相互照会(cross−i
ntenogation)検出を行うことにある。
本発明の他の目的は、シノニム検出のマシン・サイクル
と相互照会のマシン・サイクルを重複させることにある
本発明の他の目的は、キャッシュ・ディレクトリのセッ
ト・アソシアティビティを増大させないでキャッシュ記
憶のサイズを増大させることを可能にするようなシノニ
ム検出及びアクセス機構を提供することである。
本発明の他の目的は、システムの性能を向上させるため
には、検出されたシノニムをアクセスしたほうがよいの
か、又は検出されたシノニムのライン取出しのために真
のキャッシュ・ミスを発生したほうがよいのかを決定す
ることにある。
本発明の他の目的は、キャッシュ・ディレクトリで検出
されたシノニム・ライン・ヱントリ中の排他ビットの状
態を検出し、これに応じてキャッシュ記憶中のシノニム
・ェントリをアクセスすべきであるのか、又は主記憶か
らのライン取出しを行ってこの要求ラインを要求アドレ
スによって決定される基本クラスヘコピーすべきである
のかを決定することにある。本発明の他の目的は、チェ
ックポイント期間中に当該ラインを基本位置へコピーす
ることが禁止されている場合には、ライン取出しを行わ
ないで存在する任意のキャッシュ・シノニムをアクセス
することを可能にする如きストア・ィン式キャッシュ記
憶のためのシノニム・アクセス機構を提供することにあ
る。
本発明の他の目的は、プロセッサの書込又は取出要求に
応答して、謙出専用状態にあるシノニム・ラインをキャ
ッシュ記憶中の基本位置へコピーすることにより、キャ
ッシュ記憶中の読出専用シノニム・ラインを取除くよう
に、シノニム検出を使用することにある。
本発明の他の目的は、プロセッサの取出要求に応答して
読出専用状態にあるシノニム・ラインが見出された場合
、このシノニム・ラインをキャッシュ記憶中の基本位置
で2重化することができるように、シノニム検出を使用
することにある。
本発明の他の目的は、プロセッサの書込要求に応答して
詠出専用状態にあるシノニム・ラインが見出された場合
、このシノニム・ラインを無効化し且つ該ラインをキャ
ッシュ記憶中の基本位置へコピーするように、シノニム
検出を使用することにある。本発明はストア・ィン式キ
ャッシュ記憶のシノニムを検出し且つこれを処理するも
のである。
キャッシュ・ディレクトリの基本クラスは、プロセッサ
要求の論理アドレスから取られた複数ビットのサブセツ
トによってアドレスされる。このクラス・アドレスは変
換可能ビット及び変f臭不能ビットの両方を有する。も
し基本クラスが要求の変換アドレスを保持するならば、
キャッシュ記憶中の対応する位置でデータがアクセスさ
れる。他方、基本クラスが要求の変換アドレスを保持し
なければ、キャッシュ・ミス・コマンドが発生され、か
くて要求されたラインを取出すためにライン取出コマン
ドが送られる。またキャッシュ・ミス・コマンドーこ応
じて、シノニム探索及び変更回路は該コマンドを介して
受取られる基本クラス・アドレス中の論理アドレス・ビ
ットを置換(pe皿ute)することにより潜在的なす
べてのシノニム・クラスのアドレスを発生し、かくて潜
在的なシノニム・クラスの各々はコピ−・ディレクトリ
でアクセスされ且つ存在する任意のシノニムを検出する
ために変換された要求アドレスと比較される。キャッシ
ュ・ディレクトリ中の各ェントリは排他ビットを有し、
該ビットはコピー・ディレクトリでシノニムが検出され
た後の要求の処理を制御する。もしキャッシュ・ディレ
クトリのヱントリでこの排他ビットがオンであれば、関
連するラインはチェックポイント期間中にキャッシュ記
憶でロックされ、かくてキャッシュ記憶中の検出された
シノニ位置でデータがアクセスされる(チェックポイン
トについては米国特許第3736566号を参照された
い)。もし排他ビットがオフで謙出専用状態を表わすな
らば、関連するラインはチェックポイント期間中にロッ
クされず、かくてキャッシュ記憶中の検出されたシノニ
ム位置でデータがアクセスされる。この場合、システム
の性能を改善するために読出専用状態にあるラインは現
論理アドレスによってアドレスされる処の基本位置へコ
ピーされる。背景システム 第1図は本発明の実施態様を包含する背景システムを示
す。
図示された多重処理システムは4つの中央プロセッサ(
以下「CP」と略す)から成り、その各々は命令実行要
素(以下「IE」と略す)及びバッファ制御要素(以下
「BCE」と略す)を含む。IEの各々はハードウェア
及びマイクロコードを含み、これらは主記憶(以下「M
S」と略す)とのオペランドの授受、即ちその書込み/
取出しを必要とする命令を発行する。EはそのBCEへ
取出又は書込コマンドを発行することによって取出又は
書込動作を開始する。BCEはストア・ィン式キャッシ
ュ記憶(以下「SIC」と略す)及びそれに関連するキ
ャッシュ・ディレクトリ即ちプロセッサ・ディレクトリ
(以下「PD」と略す)を含み、さらに関連するCPに
よって排他的に使用されるすべてのキャッシュ制御を含
む。一般的に説明すれば、CPの各々はオペランドによ
って必要とされるダブルワードごとに1つの取出又は書
込コマンドを発行する。もしこのダブルワード力SIC
にあれば、該ダブルワードはこのコマンド‘こ従ってS
ICから取出されるか又はそこに書込まれ、かくて該コ
マンドはBCEの内部で完了される。一方、要求された
ダブルワード力SICになければ、キャッシュ・ミスが
生ずることになる。この場合、mからの取出又は書込コ
マンドが完了される前に、このダブルワードはMSから
取出されねばならない。こうするため、BCEは対応す
る取出又は書込ミス・コマンドを発行し、関連するシス
テム・コントロ−ラ(以下「SC」と略す)に対しIE
によって要求されたダブルワードを含む1ラインをMS
から取出すように要求する。このラインはMS中でライ
ン境界に置かれているが、前記要求されたダブルワード
が最初に取出されて要求中のBCEへ戻される。第1図
の多重処理システムでは、SCO及びSCIの各々は2
つのCP及び共有されたMSへそれぞれ接続されている
ので、CPの各々はMS中の任意の共有領域をアクセス
することができる。
またSCの各々は、先行技術の1/0チャネル・コント
ローラに相当する外部データ・コントローフ(EXDC
)をMSへ接続する。SCの各々は特願昭54−134
311号明細書に開示された主題を含んでもよい。MS
は複数の基本記憶モジュール(BSM)から成り、その
各対は関連する既Mコントo−フ(茂C)によって制御
される。
SCの各々には既CO−既C3がそれぞれ接続される。
相互照会(XI)バスはSCの各々を他のSCへ接続す
る。
このバスはSC相互間ですべての相互照会要求並びに吐
出及び無効化信号を転送することにより、必要とされる
吐出し、MS取出し及びPD中の無効化動作を同期及び
調整する。SCの各々は一対のコピ−・ディレクトリ(
以下「CD」と略す)を含む。
CDの各々は、SCへ接続された8CE中の対応するP
Dのイメージを保持する。PD及びCDは両者ともに同
じ論理アドレス・ビットによってアドレスされる。すべ
ての相互照会要求はCDによって扱われるので、BCE
に設けられたPDは相互照会要求を扱う必要がなく、従
ってそれぞれのCPを一層良好にサービスすることがで
きる。
即ち、PDが相互照会要求を扱う必要がないように、相
互照会(XI)バスはすべてのSCを相互接続し且つ衝
突(confliet)に対するすべてのCD探索を同
期させるのである。CPO−CP3に設けられたIEO
−IE3はそれぞれ同一の構成を有する。
IEの各々は、通常のマイクロプログラム式プロセッサ
に見出される命令実行ユニットと基本的に類似する構成
を有する。MSを構成する各基本記憶モジュール(母M
)と各SCの間にはダブルワード幅の双方向バスが設け
られ、また各SCと各CPの間及び各SCと外部データ
・コントローラ(EXDC)の間にも同様のバスが設け
られる。これらの任意のバスを介してコマンド及びデー
タを送ることができる。或るCPによって要求されたダ
ブルワードがそのSICに見出されない場合、診るIC
を制御するBCEは関連するSCへミス・コマンドを送
ることによって、MSに対するライン・アクセス要求を
開始させる。このSCはこのコマンドをMS中の選択さ
れた基本記憶モジュール(BSM)へ発行するが、この
BSMが使用中状態にあればこれをコマンド・キューに
保留し、そしてこのBSMがアクセス可能になったとき
このコマンドを再びこの既Mへ再発行する。またSCは
複数のMSコマンドを順序正しい様式で順序づけるので
、特定の既Mに対するすべてのコマンドは(SICの衝
突が見出される場合を除いて)先入れ先出し式に発行さ
れる。所与のMSコマンドを発行する前に、実アドレス
一物理アドレスの変換がSCによって遂行され、かくて
実アドレスのBSMロケーションが決定される(袴願昭
54−134311号明細書参照)。これと同時に、こ
の要求は記憶保護例外を検査するために記憶キー配列へ
送られ、またデー夕の衝突を探索するために各SCに設
けられたすべてのCDにも送られる。かくて、所与のM
S要求を扱う正常なシーケンスの間、SCはMSのステ
−タスを定常的に監視し、記憶キー配列及びすべてのC
Dの検査結果を分析し、当該SCに現に保持されている
すべての保留コマンドの更新されたステータスを調べ、
そして当該SCによって受取られることをBCEで待機
している任意の新しいコマンドを探索する。記憶キー配
列はSC中に設けられる(特豚昭55−78443号明
細書参照)。
この配列はIBMシステム/370のアーキテクチャに
よって定義されたすべてのキー動作を遂行する。一般に
、この記憶キーはMS要求を発行する動作と並行して検
査されるので、この検査は実際のMSアクセス時間には
影響しない。各CPに設けられたSICはその名が示す
ようにストア・ィン式キャッシュ記憶であるから、CP
によって変更されたデー外まSICに置かれ、該データ
がSICから吐出されるまで、即ち新しく要求されたラ
インのスペース力SIC中に必要となってその置≠奥機
構によってこのデータが吐出されるまで、MS中では利
用することができない。
各SICはその動作を制御するPDを備えている。実施
態様の一般的説明 この実施態様ではSにが利用されているために、CPに
よって変更されたSIC中のラインはMSへ直ちには書
込まれない。
従って、共有可能な変更及び未変更データの多数のライ
ンが複数のSICに分散されていることがありうる。S
IC中の未変更ラインはMS中で利用することができる
けれども、変更ラインはそれを保持するSIC中でのみ
利用することができる。SIC中の各ラインはそれぞれ
排他的/論世事用状態と指示されており、該指示はこの
ラインが1又はそれ以上のSICに置かれている間にそ
の共有タイプを制御するために多重処理システムのキャ
ッシュ管理制御によって使用される。一般に、命令を対
象とする任意のIE要求は並列的な共有を可能にするよ
うに読出専用状態を指示されるが、これは命令自体の内
容が変更されることは殆んどないという理由による。こ
れに対し、オペランドは変更される可能性が高いので、
これを対象とするIE要求は直列的な共有に制限する処
の排他的状態を指示される。この排他的/謙出専用状態
の指示は第5図の線24に与えられ、この線24がアッ
プ状態にあると現在の旧要求に対する排他的(以下「E
X」と略す)状態が指示され、この線がダウン状態にあ
ると現在のIE要求に対する読出専用(以下「RO」と
略す)状態が指示される。CP要求は1ダブルワードを
対象とすることがあるけれども、該ダブルワードはその
SIC中にある1ラインのオペランド及び/又は命令か
らアクセスされる。
MSのアクセス効率を向上させるために、各SICごと
に複数(たとえば16)のダブルワードから成る1ライ
ンを単位としてMSのアクセスを行うようにしているの
で、各PD又はCDもその内容をライン単位で管理する
ように編成されている。従って、SIC中のEX/RO
状態はダブルワード単位ではなく、ライン単位で指示さ
れる。ラインのEX/RO状態は各CPがSIC中のダ
ブルワードをアクセスするたびに検査され、そしてアク
セスされたラインがRO状態を有する場合には、IE書
込要求はキャッシュ・ミスを生ぜしめるが、IE取出要
求は直ちにアクセスされる。もしこのラインがEX状態
を有するならば、IEの取出及び書込要求は両者ともに
SIC中のこのラインを直ちにアクセスすることができ
る。従って、任意のIEがオペランド又は命令の取出要
求を開始する場合、このIEは第3A図に示す如き取出
コマンドをそのBCEへ発行してダブルワードのオペラ
ンド又は命令を要求するとともに、以下に示す2種類の
共有制御指示のうち1つの指示を与える。
RO指示:この場合、Sに中の当該ラインに含まれるダ
ブルワードを直ちに取出すことができる。
すべてのCPがそれらのSICに置かれた当該ラインの
データを取出すことを必要としている場合は、こられの
CPは関連するSIC中の当該ラインを同時にアクセス
することができる。RO状態にあるライン中のダブルワ
ードについて任意のCPが書込みを要求する場合は、キ
ャッシュ・ミスが生じてこの状態はEX状態へ変更され
、そしてRO状態にあるこのラインを共有していた他の
CPはこのラインのコピーを無効化するように強制され
る。EX指示:この場合、当該ラインをEX状態で保持
するCPは、当該ライン中のダブルワードを取出したり
又は当該ラインヘダブルワードを書込むことができる。
他のCPはこのラインをアクセスすることができない。
他のCPがこのラインをアクセスしなければならない場
合には、このラインをEX状態で保持するCPはこれを
発行中(要求中)CPへ引渡さなければならず、その後
は後者のCPだけがこのラインをEX状態で保持する。
もしこのラインをEX状態で保持するCPがこのライン
への書込みを行ってその内容を変更したならば、該CP
はこのラインの最新版を有することになり、かくてMS
中の最新版でないこのラインをアクセスしてはならない
。従って、変更された最新版のラインを保持するCPは
(該CPがこのラインをRO状態で継続的に保持するか
杏かということには関係がなく)、他のCPがこのライ
ンを必要とするときはいつでも、このラインをMSへ吐
出さなければならない。排他的なIE要求にも拘わらず
、各ラインの並列的な共有を可能とするために該ライン
をEX状態からRO状態へ変更することができるが、こ
れは本発明によって制御される。
従って、各SICに置かれたラインのEX/RO状態を
指示するEXビットは、該SICに関連するPDに保持
される。
PDを有するBCEはPD中のEXビットに関連する規
則を適用し、そして要求されたPDクラスが変換された
要求アドレスを保持するェントリを含まない場合には、
現在のIE要求についてキャッシュ・ミスを発生する。
シノニム・ェントリ中の要求はキャッシュ・ミスを生ぜ
しめる。各キャッシュ・ミスをサービスするには、CP
間の通信が必要である。これらの規則の実現はCP間の
通信を制御するCDの存在によって複雑になるが、これ
らのCDはCP間の通信に起因する通常のSIC動作へ
の干渉を軽減させるために必要である。
本明細書では、相互照会されているMS要求を発行する
ような発行中(issning)CPは、かかるMS要
求を発行していない遠隔(remote)CPから区別
される。
発行中CP及びその関連する要素は添字(1)で識別さ
れ、たとえばCP(1)、伍(1)、BCE(1)、P
D(1)、SIC(1)、CD(1)等のように表わさ
れる。すべての遠隔にP及びその関連する要素も同様に
添字(R)で識別され、たとえばCP(R)、IE(R
)、BCE(R)、PD(R)、SIC(R)、CD(
R)等のように表わされる。キャッシュ・ミス信号が生
ずるのは、CP(1)によって要求されたダブルワード
がそのPD(1)の基本又はシノニム・ェントリのいず
れによっても識別されない場合、或いはCP(1)が書
込みを要求しているときその対象となるダブルワードが
RO状態と指示されている場合である。
任意のキャッシュ・ミス信号に応答して、8CE(1)
に設けられたキャッシュ制御はSIC(1)が当該ライ
ンの最新版を受取ることができるようにCD(1)及び
CD(R)の相互照会を要求してシノニム及び衝突の有
無を検査し、また書込要求については要求されたライン
がSIC(R)でRO状態に置かれているときこのライ
ンを無効化するようにCD(1)及びCD(R)の相互
照会を要求する。この相互照会の間、任意のSIC(R
)が要求されたラインを有するか杏か(即ち、衝突の有
無)を決定するために、すべてのCDが探索される。P
D及びCDをアドレスするためにIEからの論理アドレ
ス・ビットが使用される場合、これらのビットはPD又
はCD中の基本クラスをアドレスするだけで、そのシノ
ニム・クラスをアドレスするわけではない。
従って、任意のシノニム・ラインが存在するか否かを検
出するためには、CP要求から変換された絶対アドレス
について潜在的なシノニム・クラスの各々が探索されね
ばならない。相互照会及びシノニム探索はPDでは行わ
れないから、相互照会又はシノニム検出のためにいかな
るPDサイクルも充用されないのであり、従って相互照
会及びシノニム検出の役割りはCDが負担する。シノニ
ムの探索はCD(1)で行われ、衝突の探索はCD(R
)の各々で行われる。PD(R)がアクセスされるのは
、そのCD(R)で衝突が検出され、従ってこのPD(
R)が変更されねばならない場合だけである。PD(1
)はCD(1)においてEX状態にあることが見出され
たシノニムについてだけアクセスされる。RO状態のシ
ノニムはアクセスされないが、そのラインがその基本ク
ラスへ取出された後にアクセスされる。相互照会動作の
結果として衝突又はシノニムが見出される確率は低いか
ら(たとえば、5%以下)、相互照会及びシノニム探索
に応じて関連するPD(R)が変更されることは殆んど
ない。かくて、もしCPの取出要求に対する相互照会の
結果として要求されたラインがCD(R)で見出される
ならば(ライン衝突)、このラインのEXビットがCD
(R)で検査される。もしこのEXビットがRO状態に
あれば、このCD(R)についてはそれ以上の作用は必
要ない。一方、もしこの衝突ラインについてEX状態が
見出されるならば、このCD(R)を制御するSC(R
)はその対応するPD(R)へ「ROへ変更(ARO)
」コマンドを発行しなければならない。次いで、このP
D(R)に対応するBCE(R)は、取出要求の対象で
あるこの衝突ラインの最終的な状態を決定するために、
変更(以下rCH」と略す)ビット及びEXビットの状
態をテストする。もしCHビットが未変更を示すならば
、PD(R)はEXビットをRO状態へ変更するととも
に、「ェントリをROへ変更(CERO)」コマンドを
その関連するCD(R)へ発行する。一方、このCHビ
ットが当該ラィンの変更を示すならば、BCE(R)は
そのPD(R)の有効(以下「V」と略す)ビットを無
効状態へセットし、関連するSIC(R)からの当該ラ
インの吐出しを開始させ、そして「吐出(CO)」コマ
ンドをSC(R)へ発行することにより、対応するCD
(R)中の衝突ェントリにあるvビットを無効状態へセ
ットさせる。
CP(1)の「書込照会(SI)」コマンドは相互照会
を開始させる。
もし衝突するラインが任意のCD(R)に見出されるな
らば、このCD(R)に関連するSC(R)は「無効化
(INV)」コマンドをその関連するPD(R)に発行
することにより、RO状態にある衝突ラインが検出され
るときこの衝突ラインを無効化する。もしEX状態にあ
る衝突ラインが検出されるならば「吐出(CO)」コマ
ンドが発行され、これに応じてPD(R)はそのCHビ
ットをテストするとともに、当該ラインがRO状態で保
持されているか又はEX状態で保持され且つ変更されて
いなければ「ライン・ェントリ無効化(ILE)」コマ
ンドをCD(R)へ発行し、当該ラインがEX状態で保
持され且つ変更されているならば「吐出(CO)」コマ
ンドをCD(R)へ発行する。もし外部データ・コント
ローラ(EXDC)又はサービス・プロセッサ(SVP
)がMSに対する取出又は書込要求を開始したならば、
各CD(R)はそのSIC(R)が衝突データを有する
か杏かを決定するために、この要求のアドレスについて
相互照会されねばならない。
外部データ・コントローラ(EXDC)又はサービス・
プロセッサ(SVP)からの書込又は取出要求があると
き、任意のCD(R)が衝突ラインをEX状態又はRO
状態で保持していることが見出されるならば、このCD
(R)はそのPD(R)と通信して変更されていない当
該ラインを無効化するか、又は変更されている当該ライ
ンを吐出した後これを無効化する。以下の表一1には、
可能なすべての要求タイプ、共有指示の初期及び最終状
態、衝突ラインを有するCPのCD及びPD間のコマン
ド、CD中のCHビットの効果が要約されている。
−− 1 ライン・ヱントリ無効化(ILE):BCE(R)はこ
のILEコマンドをCD(R)へ送り、CD(R)中の
指定されたライン・ェントリを無効化する。
吐出(CO):BCE(R)は要求アドレスを有するラ
インを、SIC(R)からBCE(R)中のライン書込
みバッファ(LSB)を通して、MSへ転送する。
この転送の完了時に、CD(R)の該当ェントリは無効
化される。ROへ変更(ARO):これはBCE(R)
のコマンドであり、SC(R)に対しCD(R)中のE
XビットをRO状態へ変更するように指示する。
ROへェントリ変更(CERO):これはBCE(R)
のコマンドであり、SC(R)に対しCD(R)中のE
XビットをRO状態へ変更するように指示する。ROへ
変更(ATRO):これはCD(R)からCD(1)へ
与えられるSC制御信号であり、PD(1)中のEXビ
ットをRO状態へ変更させる。
相互照会動作の保全性を維持するために、多重処理シス
テム中のすべてのCDは同時に探索される。従って、す
べてのCDは、キャッシュ・ミスを生ぜしめた各CP要
求中のライン・アドレスに一致するライン・アドレスに
ついて、同時に調べられる。またCD探索動作の各々は
、要求されたラインに対するすべてのシノニム位置にお
ける任意の一致をも検出する。もしこの探索動作の間に
CD中の一致がまったく検出されなければ、キャッシュ
・ミスに起因する当該ライン取出要求はMS中で直ちに
アクセスされる。もしCD(1)中のEX状態にあるシ
ノニムについて一致が検出されるならば、当該ライン取
出要求はキャンセルされ、そしてSIC(1)中のシノ
ニム位置で、mアクセスが行われる。もしCD(R)中
の基本クラス又はシノニム・クラスで一致が検出される
ならば、CD(1)へ衝突信号が与えられ、そしてSに
(1)へライン取出しが行われる前にSに(1)及び/
又はSIC(R)からMSへ必要な吐出しが行われる。
CD(1)で検出されたRO状態のシノニムは、MSか
らのライン取出が事後的に行われるという点で、衝突と
同様に処理される。CDで衝突を検出された任意の取出
要求はSC(1)のコマンド・キューに保持され、そし
て任意の吐出ラインがSIC(1)からライン書込バッ
ファ(LSB)に完全に書込まれた後にMSへ再発行さ
れるということである。これらのコマンド・キュー及び
そのSC制御は、米国特許第4136386号に記載さ
れている。SCはMSとBCEの間及びMSと外部デー
タ・コントローラ(EXDC)の間を72ビット(64
データ・ビット+斑CCビット)幅の双方向バスで薮続
し、このバスを介してコマンド及びデータを転送する。
BCE(1)ミス・コマンドに対するCD(1)中の種
々のシノニム及び非−シノニム検出条件は、以下の表−
2に表わされている。
内容を簡潔にするために、表−2では次の略語、即ちL
F(ライン取出し)及びFTH(書込照会ビットSIの
取出要求状態)が使用されている。■ 船 実施態様の詳細な説明 所与のライン取出しのためにBCE(1)ミス・コマン
ドが生ずると、このコマンド‘こ応じて各CD(R)の
基本及びシノニム・クラスで衝突が探索されるのと同時
に、SC(1)はCD(1)の同じクラスでシノニムを
探索する。
第3B図に図示されたBCE(1)ミス・コマンドのビ
ット位置EX及びSIは、CD(1)中に見出されうる
任意のシノニムをSC(1)がどのように処理するかと
いうことを制御するとともに、このCD(1)中で見出
されたシノニム・ェントリのEXビットの設定を制御す
る。CD(1)のための出力比較回路はCD(1)にお
ける任意のシノニムの存在を検出する。EX状態のシノ
ニム・ェントリ(EXシノニム・ェントリ)はEX比較
信号によって検出され、RO状態のシノニム・ェントリ
(ROシノニム・ェントリ)はRO比較信号によって検
出される。任意のCPからの取出又は書込(SI)要求
がCD(1)中でEXシノニムを検出する場合、このシ
/ニム・クラス・ェントリがSC(1)によって決定さ
れ、そしてそのアドレスがPD(1)へ送られるので、
CP(1)は要求されたデータをSIC(1)中のシノ
ニム位置でアクセスすることができる。
しかしながら、任意のCPからの取出又は書込要求がR
O状態のシノニム・ェントリを見出すならば、この要求
はSIC(1)中のROシノニム・ラインをアクセスす
ることはしないで、Sに(1)中の基本クラスへのライ
ン取出しのためにPD(1)及びCD(1)の基本クラ
スへ置かれた新しいェントリをアクセスする。
次いで、CP(1)はこの基本クラス中のデータをアク
セスする。ROシノニム・ラインはRO取出要求によっ
てアクセスされないが、このシノニム・ラインはSに(
1)で有効に留まるので、SIC(1)には当該ライン
の2つのコピーが存在することになる。
また、ROシノニムは書込(SI)要求によってアクセ
スされないが、かかる要求は常にEXと指示されるから
、2重のェントリは許容されない。つまり、多重処理シ
ステムのすべてのSICには、所与のラインについて一
度に1つのEXェントリしか与えることができない、と
いうことである。従って、ライン取出し‘ま基本クラス
中の位置へ行われ、そこでそのェントリはEX状態へ設
定され、そしてそのROシノニム・ェントリは無効化さ
れる。かくて、RO取出要求の結果として、ROシノニ
ムが無視され且つそのシノニム・ラインがSIC(1)
中の基本位置へ有効にコピーされる。
このようにすると、後続のIE要求はSIC(1)の基
本位置にデータを見出し、キャッシュ・ミスを発生しな
いので、それに伴うライン取出しや相互照会のオーバー
ヘッドをなくすことができ、従ってこの同じラインに対
する後続要求のアクセス時間を著しく改善することがで
きる。平均すると、かかるラインに対する後続アクセス
について取除かれるオーバーヘッドは、最初のライン取
出しやこのラインを基本位置へコピーする際の潜在的な
置換オーバーヘッドよりも価値がある。IE取出要求の
結果としてROシノニム・ラインのコピーがSIC(1
)中の基本位置へ置かれた後、CD(1)及びPD(1
)並びにSIC(1)中のROシノニム・ェント川ま有
効に留まるので、これを使用することができる。
従って、この新しい基本位置はSIC中のラインを重複
させるので、これらはともにRO状態へ設定されねばな
らない。このROシノニム・ラインを無効化しないのは
、CP(1)でデイスパツチされた他のプログラムにつ
いてはこのシノニム位置が基本位置となる場合があり、
従ってこのROシノニム・ラインをこの時点で無効化す
る必要はないからである。たとえば、一方のプログラム
がSIC中の或る位置をシノニム位簿として検出するの
に対し、他方のプログラムがこの同じ位置を基本位置と
して検出する場合がある。というのは、基本/シノニム
の関係は要求アドレスに対し常に相対的であり、そして
このことはIE取出及び書込照会(SI)要求の両方に
ついて生じうるからである。書込照会(SI)要求がR
Oシノニムを見出す場合、これはROシノニムをEX状
態へ変更するか、又は当該ラインを基本クラス中にある
4つのセット位置の1つへEXェントリとして移動しな
ければならない。
なぜなら、書込照会(SI)要求はEXラインをSIC
(1)へ書込むことができるだけであり、そしてこのラ
インはSIC(1)又はSIC(R)のいずれにおいて
も重複させることができないからである。ROシノニム
を無効化する場合には基本ェントリを選択することが望
ましいが、これは同じラインに対する後続アクセスが生
じた際に前記した理由でキャッシュ・ミスのオーバーヘ
ツドを取除くことができるからである。RO状態にある
任意のェントリをEX状態へ変更すると、他のすべての
SICを検査し且つ対応する他の任意のROヱントリを
無効化するという相互照会のオーバーヘッドが加わる。
E取出及び書込要求のほぼ95%はSIC(1)をアク
セスすることによって充足されるが、これはこのコマン
ド‘こよって必要とされるデータの大部分をSIC(1
)で直ちに利用することができるからである。
キャッシュ・ミスを生ぜしめる残りの僅かな要求につい
ては、CD(1)がEXシノニムのキャッシュ−アドレ
スをPD(1)へ報告するか又はCD(1)におけるE
Xシノニムの不在が見出され且つ要求されたダブルワー
ドを含むラインがMSからSIC(1)へ取出されるま
で、この要求を充足させることはできない。ライン取出
しが行われる前に、幾つかの重要なハウスキーピング機
能が遂行されねばならない。最初の機能は、Sに(1)
に要求されたラインのスペースを確保することである。
もしこのスペースがなければ、第5図のLRU(Lea
st−RecentlyUsed)回路42はアドレス
されたPDクラスにある4セット位置のうちどの位置が
取出すべきラインのアドレスを受取るかということを決
定しなければならない。もしこの位置に現在置かれてい
る有効なライン・アドレスに任意の変更データがあれば
、新しいラインがSIC(1)へロードされる前に、前
記変更データを含むラインをライン書込バッファ(瓜B
)へ吐出してSIC(1)中にスペースを作らなければ
ならない。また、新しいラインがMSから取出される前
に、MSがこの新しいラインの最新版を有することを確
認しなければならない。このため、他のSIC(R)が
このラインの変更版を保持していないことを決定すべく
、すべてのCDが相互照会される。変更されたラインの
存在が確認されるのは、任意のCD(R)が衝突ライン
を有し且つその関連するPD(R)のCHビットがセッ
ト状態にあることが見出される場合である。第3A図に
図示されるように、BCEへ与えられるIEコマンドは
命令又はオペランドのダブルヮード‘こ対する論理アド
レス(即ち、仮想アドレス又は実アドレス)を含むこと
がある。
第5図のBCE制御回路において、IEコマンド中の書
込照会(SI)要求ビット又は取出要求ビットは、この
m要求をBCE(1)へ形式化して与えるために、その
BCE優先回路37へ入力される。BCE優先回路37
の出力線48は、BCE(1)がこの世コマンドに優先
権を与えたことを示す。第5図のBCE制御回路におい
て、mコマンド中の論理アドレスは線22を介してBC
Eアドレス・レジスタ31に受取られ、そこから絶対ア
ドレスを与える通常の変換及びプリフィクス制御32へ
供給される。殆んどの場合、絶対アドレスは変換索引緩
衝機構(DLAT)34から直ちに得られるが、もし絶
対アドレスがDLAT34になければ、動的アドレス変
換機構(DAT)33がアドレス変換を行い、その変換
された絶対アドレスをDLAT34に置く。このように
して変換された要求の絶対アドレスが、絶対アドレス・
レジス夕36に置かれる。このDLAT動作と同時に、
BCEアドレス・レジスタ31は論理アドレスのビット
19−24をクラス・アドレスとしてPDクラス・アド
レス制御回路41(詳細は第14図)へ出力するので、
該回路はこれに応じて4セットのライン・ェントリを含
むPD62の1つのPDクラス・ェントリを選択する。
ビット19−24はSIC63中にある64クラスのう
ち1つのクラスを選択する。また絶対アドレス・レジス
夕36の出力は、この絶対アドレスに一致する選択され
たクラス中の任意のライン・ェントリを選択するために
、PD62中の通常のセット・アソシアティブ式アドレ
ス比較回路へ供給される。第17図はこのアドレス比較
回路を含むキャッシュ・ミス検出回路を詳細に示してい
る。もし一致が得られなければ、どの選択出力も付勢さ
れないので、キャッシュ・ミス信号が供給される。一方
、一致が得られるならば、一致したPD62中のェント
リに関連するSIC63のライン・ロケーションにデー
タが存在するので、要求されたダブルワードがこのライ
ンでアクセスされる。もしキャッシュ・ミス信号が生ず
るならば、LRU回路42は同じPDクラス中で最も長
い間便用されなかったェントリ(即ち、セットA−Dの
いずれか)を選択し、該ェントリがMSから敬出すべき
ラインのタグを受取るようにする。
もしこの選択されたライン・ェントリ中のVビットがオ
フであるか、又はVビットがオンで且つCHビットがオ
フであれば、このライン・ェントリは新しいラインのた
めに直ちに利用することができる。一方、もしVビット
がオンで且つCHビットもオンであれば、変更されたラ
インがこのェント川こ現に置かれていることになるので
、このラインはSIC63によって新しいラインが受取
られる前に吐出されねばならない。キャッシュ・ミス信
号が生ずるときはいつでも、第3B図に示す如きBCE
ミス・コマンドがBCE(1)で発生され、SC(1)
へ送られるので、これに応じて取出すべきラインがMS
から要求されるとともに、相互照会動作が開始される。
このBCEミス・コマンドは、BCEアドレス・レジス
夕31から要求されたデータの絶対アドレスを受取るB
CEコマンド/データ・レジスタ45で形成される。ま
たこのBCEミス・コマンドは、LRU回路42からの
PDセット・フィールド、IEコマンド中の取出要求ビ
ット又は書込照会(SI)要求ビットを符号化する如き
OP符号回路38からのOPコード・フィールド、取出
すべき又は書込むべきライン中のダブルワードの数を示
す如きダブルワード長回路39からのDW長フィールド
、当該ミス・コマンドがIEからの書込又は取出コマン
ドのどちらに起因するかを示す如き書込照会(SI)要
求フィールド、伍がデータをEX又はRO状態のどちら
で要求したかを示す如きEX信号(EXSIG)フィー
ルドを受取る。プロセッサ識別子(以下「PID」と略
す)フィールドはBCE(1)によっては転送されない
が、このコマンドを受取るときSC(1)によって挿入
される。このフィールドは、このコマンドを発行したプ
ロセッサを識別するために、相互照会動作の間に使用さ
れる。というのは、相互照会動作の間には、1以上のC
P及び外部データ・コントローラ(EXDC)やサービ
ス・プロセッサ(SVP)を含む多数のプロセッサから
のコマンドが使用されるからである。BCE要求トリガ
43はAND回路47によってセットされ、該回路はB
CE優先回路37がIEコマンドを受諾し且つキャッシ
ュ・ミス信号が生じた後にBCE優先回路37からの信
号を受取る。
SC中に設けられた第6図のPIR優先回路101はS
CがBCEコマンドを受諾すべきか否かを決定し、そし
て受諾したBCEコマンドをSC中のPIRI03へゲ
ートする。PID符号回路102はPIR優先回路10
1によってそのコマンドを受諾されたプロセッサのPI
Dを符号化し、これをPIRI03中のコマンドへ挿入
する。相互照会レジスタ(以下「XIRJと略す)10
4は次のマシン・サイクルの間にPIRI03からのコ
マンドを受取る。XIR優先回路110はXIRI04
中のコマンドをゲート122を介してディレクトリ・レ
ジスター21へゲートすべきか否かを決定する。
ディレクトリ・レジスター21へゲートされたコマンド
は、第7図へ送られ、かくて相互照会動作を開始させる
。第7図は、CDO及びCD2を含む1つのSCに対す
る制御回路を表わす。もしCDI及びCD3を有する他
のSCがあれば、このSCはXIRI04から相互照会
(XI)バス19を介してこれらの信号を同時に受取る
。これはすべてのSCに設けられたすべてのCDの同時
的な探索を開始させる。XIバス19中のXI探索同期
線111は複数のSCを相互接続し、これにより同じマ
シン・サイクル中のすべてのCD探索を同期させる。こ
の探索は、ディレクトリ・レジスタ121に現に置かれ
ているラインの絶対アドレスについて行われる。XIR
優先回路110の出力が付勢されると、それに応じてS
C(1)使用中トリガ112がセットされる。
もし任意のCDが探索されたアドレスを見出すならば、
これは第8B図に示したCDOのための線130(又は
他のCDの対応する線130)を介して衝突信号を発生
する。第8A図〜第8C図は、CD並蔓突トリガ137
から線130にCDO衝突信号を発生するためのSC回
路を示す。一般に、衝突はCD(R)にのみ見出されう
る。
CD(1)が衝突を見出すのは、シノニム・クラスにR
O状態の一致が検出される場合である。各CDはその対
応するPDに見出されるすべてのラインに対するェント
リを有するけれども、各CDはその対応するPDに見出
されるすべての情報を必ずしも有する必要はない。
本発明の実施態様では、各CDは第28図に示されたタ
グ情報、即ち各ラインのVビット、EXビット及び絶対
アドレスの上位ビット8−20を含むタグ情報を有する
にすぎない。PDの各ライン・ェントリに見出されるタ
グ情報は、第2A図に示されている。またPDの各ライ
ン・ェントリは、記憶保護キー、取出保護(F)ビット
、ライン変更(LNCH)ビット及びページ変更(PG
CH)ビットを含む。これらの追加的なタグ・ビットの
うち本発明に特に関係するのは、ライン変更(LNCH
)ビットである。このビットは対応するラインが関連す
るSIC中で変更されているか否かを示し、以下では簡
単のためにCHビットと称することにする。CDの更新
様式は第8A図の諸回路によって制御され、該回路はC
Dへェントリを挿入又はそのェントリを変更するような
第8C図のCD入力レジス夕に対する諸入力を制御する
。一般に、各IEはその関連するBCEへ取出及び書込
要求を送る。
書込要求は常に排他的に要求される。命令取出要求はR
O指示で以て要求され、一方、オペランド取出要求はE
X指示で以て要求される。特殊な状況では、IEによっ
て排他的なオペランド取出しが要求されたとしても、要
求されたラインのEXビットをRO状態にセットするこ
とが行われる。もしIE(1)によってオペランド取出
が排他的に要求され且つPD(1)によってEXビット
がオフであることが見出されるならば、衝突ラインがR
O状態にあることがわかるから、この取出要求について
はキャッシュ・ミスは生じないのであり、従ってSIC
(1)のアクセスが許容され、また相互照会動作は行わ
れない。もしIE(1)のオペランド敬出要求がPD(
1)の基本クラスにそのアドレスを見出さないならば、
キャッシュ・ミスが生じるとともに、すべてのCD(R
)において相互照会動作が行われることになる。相互照
会された排他的な取出要求コマンドについてCD(R)
が衝突アドレスを見出すときはいつでも、このCD(R
)に関連するSC(R)はそのEXビットの状態を調べ
なければならない。もし衝突ラインのEXビットがRO
状態にセットされているならば、CD(R)はCD(1
)に関連するSC(1)へrROへ変更(ATRO)」
信号を送ることにより、SC(1)がCD(1)及びP
D(1)と通信してそれらのEXビットをRO状態へ変
更することを可能にする。というのは、このEXビット
は、m要求によって最初にEX状態へセットされたから
である。一方、もしCD(R)が相互照会された排他的
な取出要求コマンド‘こついてEX状態にセットされて
いるEXビットを見出すならば、このCD(R)に関連
するSC(R)は第3C図に示す如き「ROへ変更(A
RO)」コマンドをPD(R)へ送る。このSCコマン
ドは、衝突ヱントリが見出されたCD(R)中のクラス
及びセット・アドレスを含み、またPD(R)中の各ラ
インに関連する「吐出(CO)」コマンド・ビット、「
無効化(…V)」コマンド・ビット及び「ROへ変更(
ARO)」コマンド・ビットを含む。しかしながら、も
し衝突アドレスに対するEXビットがEX状態へセット
されていることをCD(1)が見出すならば、CD(1
)はSIC(1)中のシノニム位置をアクセスするため
にPD(1)へEXシノニム信号を送る(第8A図、第
9図、第12図、第14図参照)。種々の状況で発生さ
れる種々のSCコマンドは前記の表一1に要約されてい
るが、これらのSCコマンドはIE要求のタイプ、PI
D及びCD(R)に見出される任意の衝突ェント川こ対
するEXビットのセッティングに依存する。SCコマン
ドがBCE(R)によって受取られる場合、このBCE
(R)は第3D図に示す如きコマンド応答を表一1に従
って決定する。表−1は、BCEコマンドがPD(R)
中のCHビットの状態にどのように依存するかを示して
いる。本発明については、特定のコマンド応答は、コマ
ンド要求のタイプ、そのPm及びEXビットの状態に依
存する。もし任意のCD中で衝突が見出されるならば、
BCE(1)ミス・コマンドの実行は延期され、そして
BCE(R)が「ライン・ェントリ無効化(ILE)」
、「吐出(CO)」又は「ROへェントリ変更(CER
O)」を要求するCD(R)のコマンドに応答するまで
、このコマンドはSC(1)中のコマンド・キューに保
持される。
もしBCE(R)が「ROへ変更(ARO)」コマンド
を受取り且つ衝突ラインに対するCHビットがPD(R
)中でオンであれば、SIC(R)からの吐出が必要と
なる。
この吐出が開始されるのは、PD(R)がSCからの′
ROへ変更(ARO)」コマンドを受諾し且つ衝突ライ
ンに対するCHビットがオンであることを見出す場合で
ある。8CEは「吐出(CO)」コマンドで以てこのS
Cに応答し、該SCはCD(R)中のそのェントリに対
するVビットをオフにセットする。
もしCHビットがオフであれば、このラインは変更され
ていないので、BCE(R)はそのEXビットをRO状
態にリセットするとともに、「ROへェントリ変更(C
ERO)」コマンドを対応するCD(R)へ発行するこ
とにより、CD(R)がこのラインに対応するEXビッ
トをRO状態へセットすることを可能にする。このコマ
ンド‘こより、SC(1)のコマンド・キューからBC
E(1)ミス・コマンドが取出され、そして相互照会動
作が再び行われる。「ROへェントリ変更(CERO)
」コマンド‘こ応答して、CD(R)はそのEXビット
をRO状態へ変更する。次いで、BCE(E)ミス・コ
マンドの次の反復処理によりCD(R)ェントリ中のR
O状態が見出されると、CD(1)に関連するSC(1
)へ「ROへ変更(ATRO)」信号が与えられるので
、このラインに対するEXビットがRO状態へセットさ
れる。この動作のためのハードウェアは、第5図、第7
図及び第8A図〜第8C図に示されている。「ROへ変
更(ATRO)」信号がCD(1)によって受取られる
と、CD(1)は「ROD(RO指示)」信号を発生し
、これを対応するPD(1)に送ることにより、このラ
インに対するそのEXビットをRO状態ヘリセットさせ
る。この結果、それ以後はこのラインがSIC(1)に
RO状態で保持されること、そして衝突を見出したSI
C(R)の各々でもRO状態で保持されることが指示さ
れる。MSに関連するすべてのコマンドはSCにおける
順序づけ制御の諸段階を通して扱われるので、任意の時
間には、種々のコマンドがSCにおける種々の段階で同
時的に処理されていることがありうる。
BCEの取出及び書込コマンドの通常の順序づけは、以
下で説明する動作を含む。
相互照会動作が行われている同じ期間中に、このコマン
ドはその記憶保護キーの記憶保護例外をSC中で検査さ
れる(特顔昭55一78443号明細書参照)。
またこのSCは、このコマンドのアドレスによって必要
とされる基本記憶モジュール(BSM)及びそのBSM
コントローラの利用可能性をも検査する(侍願昭54−
134311号明細書参照)。
もしこのBSMが使用中でなければ、このMSコマンド
は該BSMへ直ちに送られる。一方、この斑Mが使用中
であることが見出されるか及び/又は衝突が見出される
ならば、このコマンドはSCコマンド・キューに保留さ
れ、かくてこの斑Mが利用可能になるとき及び/又は衝
突が解決するとき再発行されうる。相互照会動作の反復
が完了するたびに、このMSコマンドのステータスはコ
マンド・キュー中で再び更新される。必要とされる既M
の既MコントローラがSCからMSコマンドを受取った
後、このBSMコントローラは(先行するMSアクセス
が進行中であるか否かに依存して)MSアクセスを直ち
に開始させる場合もあるし、そうでない場合もある。
BSMコントローラは、SCに対し、データ・レディ状
態が存在する場合を通知する。CPのサイクル時間に比
較してMSのアクセス時間はかなり長いので、BSMコ
ントローラがデー夕・レディ状態を通知するまでに、S
CはこのMSコマンド‘こ関係するすべてのステ−タス
検査を完了しているのが普通である。
もし衝突又は記憶保護例外が検出されるならば、MSデ
ータ転送段階の動作はキャンセルされ、そして衝突状態
が解決した後に再発行されうる。しかしながら、殆んど
のMSコマンドについては衝突又は記憶保護例外は検出
されないのが普通であるから、MS及びCPのデータ転
送経路がともに使用中でないことをSCが検査した後に
直ちにデータ転送が開始する。各BCEミス・コマンド
の結果として、1〜3ラインのMSアクセスが行われる
EXシノニムを除くと、このBCEミス・コマンドはM
SからSに(1)へのライン取出しを必要とする。この
場合において、LRU回路42(第5図)によって選択
された位置が有効な変更ラインで占有されているときに
は、このライン取出いこ必要なスペースを作るためにS
IC(1)からのライン吐出しが行われねばならない。
もし要求されたラインが任意のSIC(R)で更新され
たことが相互照会動作によって見出されるならば、この
ラインはSIC(1)によって受取られる前にSに(R
)から吐出されねばならない。前記した3段階の制御、
即ちBCEコマンド処理、MSアクセス制御及びデータ
転送は、SC中でそれぞれ独立して扱われる。
各段階の制御は、該段階が先行コマンドの処理を終了す
ると、新しいコマンドの処理を直ちに開始することがで
きる。従って、複数の段階制御により、複数のコマンド
をSC中で同時に処理することができる。第4A図〜第
4G図は、CHビットがオンの衝突を有し且つライン取
出しの前にSIC(1)及びSに(R)からの2つのラ
イン吐出しを必要とするような8CEミス要求のタイミ
ング順序を示す。
第4日図〜第4M図は、ライン取出しの前にSに(1)
からのライン吐出しだけを必要とするようなBCEミス
要求のタイミング順序を示す。第4A図を参照するに、
ここではキャッシュ−ミスの後に、SIC(1)中にあ
る有効な変更ラインの16ダブルワード(DW)をその
ライン書込みバッファへ吐出すことによって、要求され
たライン取出しのためのスペースをSIC(1)中に作
ることが示されている。この吐出し‘ま第5図のライン
書込みバッファ(LSB)51を使用して行われ、LS
B51中の吐出しラインがMSへ書込まれる前にSIC
(1)が取出ラインを直ちに受取ることができるように
される。このようにすると、そのダブルワード力SIC
(1)からMSへ直接に転送される場合に比較して、C
P(1)は敬出ラインを一層速かに利用することができ
る。かくて、第4A図の第1サイクルにおいて、PD(
1)が探索され、その結果としてミスが見出されると、
BCEミス・コマンドがSC(1)へ送られ、そしてL
RU回路42は取出ラインを受取るべきSIC(1)の
位置を選択する。この位置は現時点では他の有効な変更
ラインによって占有されているので、該変更ラインの1
6ダブルワード(DWO〜DW1 5)は後続する16
サイクルの間にSIC(1)63からはB(1)51へ
吐出され、これによりSIC(1)中の該位置を空にす
る。Sに(1)63からLSB(1)5 1へ最後のダ
ブルワードが転送されると、SIC(1)63は相互照
会動作の完了時に取出ラインを受取ることができるよう
になる。第4B図を参照するに、このSIC(1)の吐
出しと並行して、SC(1)はBCE(1)がその要求
をIE(1)から受取った2サイクル後に第6図のPI
R(1)103にBCEミス・コマンドを受取る。
次のサイクルには、このコマンドはXIR(1)104
によって受取られる。後続サイクルの間にXIR優先権
が第6図のXIR優先回路1 10によって与えられる
と、このコマンドはゲート122を介してSC(1)中
のディレクトリ・レジスタ121へ転送され、それと同
時にXIバス19及びゲート123を介してSC(R)
のディレクトリ・レジスター21へ転送される。ここで
第4C図を参照するに、この複数サイクルの間にすべて
のCDの基本クラス及びシノニム・クラスがBCEコマ
ンドのアドレスについて1サイクルあたり1クラスずつ
探索される。
次のサイクル中、すべてのSCはこれらの探索から得ら
れる任意のM円(多重プロセッサ)衝突信号を待機し且
つこれを受取る。もし任意のCD(R)でアドレス衝突
が見出され、そしてこのラインのEXビットがオンであ
れば、そのSC(R)は第4D図の第1サイクルに示す
ように第8B図のSCコマンド・レジスタ201からそ
のBCE(R)にある第5図のSCコマンド・レジスタ
65へ「ROへ変更(ARO)」コマンドを送る。次の
サイクルには、このコマンドを受取ったBCE(R)は
該コマンドによってアドレスされているPD(R)中の
ラインに対するCHビットをテストする。第16図には
、任意の選択されたPD出力レジスタにおけるCHビッ
トの状態をテストするための回路が詳細に示されている
第4D図の次のサイクル中に、CHビットがオンであれ
ば、BCE(R)は第5図に示したそのコマンド・レジ
ス夕45からSCのPIRI03へ「吐出(CO)」コ
マンドを送る。
第4D図の第3サイクルにおいて、PD(R)は当該ェ
ントリを無効化し且つSC(R)へ「吐出(CO)」コ
マンドを送るBCE(R)によって更新される。
この場合、SCはPD(1)の絶対アドレス・ビット6
−24を第8C図の吐出アドレス・レジスタ2 1 1
にロードし、そしてCD(R)は当該ヱントリを無効化
するそのSCによつて更新される。次いで、第4D図の
第4サイクルの間に、SIC(R)中にあるアドレスさ
れたラインの第1ダブルワードDWOを瓜B(R)へ転
送することによって吐出しが開始され、当該ラインの第
16ダブルワードDW15が山B(R)に受取られるま
で継続される。この後、第4E図に示すように、LSB
(R)は更新されたラインをMSへ与えるので、このラ
インは第4G図に示す如きSに(1)へのライン取出し
のために利用することができるようになる。というのは
、第4C図の相互照会動作はこの時点までには恐らく完
了しているからである。相互照会動作の完了を検査する
ために、第4C図の第1サイクルに再入し、すべてのC
Dを再び探索して任意の衝突が依然として存在するか否
かを決定することが行われる。この時点には、これは一
般に完了されていることが見出される。もし衝突が見出
されなければ、第4G図に示す如きライン取出しが開始
される。かくて、もしSIC(R)からLSB(R)へ
のライン吐出しとSIC(1)からはB(1)へのライ
ン吐出しが両者ともに必要とされるのであれば、これら
の吐出しを並行して行うことができる。
第4G図に示す如きMSからのライン取出しを開始する
ことができるのは、第4E図に示す如きLSB(R)か
らMSへの変更ラインの吐出しが完了した場合、即ちそ
の第16ダブルワードDW15の吐出しが完了した場合
である。ライン取出し‘ま要求されたダブルワード(N
)、即ちキャッシュ・ミスを生ぜしめたIEコマンドに
よって要求されたアドレスNのダプルワ−ドで開始する
。16ダブルワードの取出し‘ま、Sに(1)への第1
6ダブルワード(N−1)で終る前に、当該ラインの開
始点へ循環してもよい。
任意のLSBからMSへの吐出転送は、第8C図の吐出
アドレス・レジスタ211に置かれた当該ラインの絶対
アドレスによって制御される。
この絶対アドレスは、第6図のディレクトリ・レジスタ
ー21に現に置かれているコマンドからSCに受取られ
る。MSへのライン吐出しが完了した場合、SCはBC
E(R)へ吐出完了信号を与え、該BCE(R)は吐出
しが成功し且つ当該ラインがMSで利用可能であること
をすべての状態が示すとき第14図のその吐出完了トリ
ガをセットする。吐出完了トリガの出力は、第8C図に
示した吐出アドレス・レジスタ211がMSへの次の吐
出転送動作のために利用できるように、議しジスタのり
セット入力へ供給される。第4日図〜第4M図は、第4
D図の第3サイクルに対応する第4K図の第3サイクル
に図示されているように、CHビットがオフである衝突
ラインがCD(R)で見出された場合の例を示す。
この場合、BCE(R)は第5図から第6図へ「ROへ
ェントリ変更(CERO)」コマンドを送る。詳述する
と、第4日図〜第4M図には、1つのライン吐出しを行
った後のライン取出しの例が示されている。第4日図は
第4A図と同じであり、第41図は第4B図と、そして
第4J図は第4C図と同じである。第4K図と第4D図
は第4サイクルだけが異なる。即ち、第4K図の第4サ
イクルではBCE(R)によって「ROへェントリ変更
(CERO)」コマンドが発行されるが、これはアドレ
スされているラインのCHビットがオフで、SIC(R
)からの任意の吐出しを無効にするからである。第4K
図の最後のサイクルには、CD(R)は「ROへェント
リ変更(CERO)」コマン日こよってそのEXビット
をRO状態へ更新され、その後は第4J図に再入して衝
突が今や存在しないことを検査するためにすべてのCD
が探索される。第4日図及び第4L図に示すSIC(1
)の吐出動作はライン取出しのスべ−スを作るためのも
のであり、第4A図及び第4F図について既に説明した
のと同じ様式で行われる。
またSIC(1)の吐出動作は第4J図及び第4K図に
示す相互照会動作と並行して行われ、そしてMSのため
のライン取出コマンドは供給されたあとMS要求のSC
コマンド・キューで待機している。SIC(1)からは
B(1)への吐出しが完了し且つ第4J図を通して行わ
れる最後の相互照会動作により衝突が全く見出されなけ
れば、第4M図に示す如きMSからSに(1)へのライ
ン取出しを開始することができる。BCEミス・コマン
ドが発行されたときに吐出しが必要とされていなければ
、第4J図を通して最後の相互照会動作が行われ且つそ
の結果として衝突が見出されないとき、ライン取出しを
直ちに開始することができる。
第4C図及び第4J図は、当該多重処理システムが4K
バイトのページ・モードで動作しているとき、即ち変換
ページ・テーブルが4Kバイトのページ単位をアドレス
するときの、相互照会動作のタイミングを示す。
この実施態様では、当該多重処理システムは4Kバイト
又は2Kバイトのページ・モードで動作し、前者のモー
ドではそのべ−ジ・テーブルは4Kバイトの単位でアク
セスし、後者のモードでは2Kバイトの単位でアクセス
する。このページ・モードと本発明との関係について説
明を補足すれば、CDのクラス・アドレスで使用される
論理アドレス・ビットが4Kバイトと2Kバイトのペー
ジ・モードではそれぞれ異なり、従って相互照会動作に
より探索されねばならない32KバイトのSICにおけ
るシノニム・クラス・アドレスの数に影響するというこ
とである。4K/ゞイトのページ・モードについては、
クラス・アドレス中のビット19のみが論理アドレス・
ビットであり、従って探索すべき2つのクラス・アドレ
スを与える。
一方、狐バィトのべ‐ジ・モードでは、クラス・アドレ
ス中のビット19及び20が論理アドレス・ビットであ
るから、探索すべき4つのクラス・アドレスを与える。
これらの論理アドレス・ビットは、要求中CPのキャッ
シュ・アクセス時間を高速化するために、アドレス変換
前の論理アドレスから取られる。論理アドレス・ビット
を使用すると一面では有利であるが、他面では論理アド
レス・ビットの数の2の累乗に比例するシノニム・クラ
スが存在し、従ってこれらのシノニム・クラスをCD中
で探索しなければならないという不利がある。つまり、
論理アドレス・ビットの数が増大すると、それに応じた
数のシノニム・クラスをCDで探索しなければならない
のである。シノニム探索はすべてのCDで行われる。
この実施態様では、現在のBCEミス・コマンドにある
絶対アドレスの基本及びシノニム・クラスをそれぞれ探
索するために、別個のマシン・サイクルがすべてのCD
でそれぞれ同時に使用される。4Kバイトのページ・モ
ードについては、すべてのCDの基本及びシノニム・ク
ラスを探索するために2サイクルが必要である(第4C
図及び第4J図参照)、氷バイトのページ・モ−ドでは
、すべてのCDの基本及びシノニム・クラスを探索する
ために4サイクルが必要である。
かくて、4K/ゞィトのページ・モードに関連する第4
C図及び第41図では、第1サイクルは転送されたXI
コマンド中の絶対アドレス・ビット19によって決定さ
れる如き基本クラスを探索する。次のサイクル中、ビッ
ト19はシノニム・クラスだけを選択するためにクラス
・アドレス中で反転される。2Kバイトのページ・モー
ドでは、4サイクルの探索が行われるが、ここではすべ
てのCDにある基本及び3つのシノニム・クラスを探索
するために論理アドレス・ビット19及び20の4つの
組合せのうち異なる1つによって各シノニム・クラスが
得られる。
この探索は、CD(1)における真のシノニムの探索と
、各CD(R)における衝突シノニムの探索を行う。も
しCD(1)でシノニム一致が得られ且つこのCD(1
)ェントリがEX状態にあるならば、このシノニム・ア
ドレスはSCによってBCE(1)へ転送される。この
場合、BCE(1)はそのSIC(1)のシノニム・ア
ドレス中にある要求をアクセスし、それと同時にBCE
ミス・コマンドを解放し且つMS要求をキャンセルする
とともに、あたかもミスが生じなかったかのようにこの
状況を扱う。これらの動作は第9図の回路によって遂行
される。CD(1)のEXシノニムは第8A図及び第8
B図の線161を介して通知され、CD(R)のROシ
ノニムは線162を介して通知される。
線162上のRO比較信号は第8B図のOR回路163
を介してCD(1)及びCD(R)中の衝突として扱わ
れ、そしてこれは第8B図のCDの薫突トリガ137で
M円衝突信号を発生する。しかしながら、このシノニム
衝突から生ずる処の「ROへ変更(ARO)」コマンド
及び任意のBCEコマンドは、相互照会されているXI
コマンドからの基本クラス・アドレスの代わりに、シノ
ニム・クラス・アドレスを保持する。
第10図〜第12図は第8C図にブロック形式で示した
CDシノニム回路を詳細に示し、該回路は2Kバイト又
は4Kバイトのページ・モードに対するシノニム探索を
制御する。
第6図のXIR優先回路110から加わるXI開始信号
は、第11図におけるXI探索サイクルの発生を開始さ
せる。すべてのCDに対する第1探索サイクルは第11
図のトリガTIの動作サイクル中に生じ、第6図のディ
レクトリ・レジスター21に置かれた現在のBCE(1
)ミス・コマンドから基本クラス・アドレスを与えられ
る。もし第11図の回路で2Kバイト・モード信号が活
勢であれば、トリガT2一T4による後続サイクルの間
に2Kバイト・モードのシノニム探索が遂行される。も
し第11図のがバイト・モード信号が不活勢であれば、
4Kバイト・モードのシノニム探索が遂行され、そして
トリガT2による追加サイクルだけが探索のために使用
される。従って、4Kバイトのページ・モードの場合に
は、2Kバイトのページ・モ−ド‘こ比較して探索動作
は2サイクル少いことになる。第11図からの「フリッ
ブ19」及び「歩進19一20」出力は第10図へ供給
され、そこでビット19及び20の順列を制御してそれ
ぞれのCD探索サイクルに必要なCDのシノニム・クラ
ス・アドレスを得るようにされる。
CDの選択された各クラスにある4セットにそれぞれ置
かれた4つのライン・ェントリ全部が探索される。第1
2図のシノニム捕獲回路は第10図から現クラス・アド
レス・ビット19及び20を受取るとともに、第8B図
から線130を介して関連するCD衝突信号を受取り、
これらの入力に応じてクラス・アドレス・ビット19及
び20の現状態をシノニム19トリガ301及びシノニ
ム20トリガ302にロックさせる。トリガ301及び
302の出力は第14図のPDクラス・アドレス制御回
路へ供給される。クラス・アドレス中の残りのビット2
1一24は、探索中の現コマンド‘こ指定されているま
まに留まる。第14図のPDアドレス制御回路は各BC
Eに重複して設けられているけれども、BCE(1)の
みが第12図からのシノニム・アドレスを受取る。
というのは、第14図の線321は、CD(1)に見出
されたPD(1)のシノニムを識別するために、BCE
(1)シノニム解放信号のみを供給するからである。線
321は、任意のPD(R)の任意の衝突(基本又はシ
ノニム)については付勢されないのである。線321は
第9図のBCE(1)シノニム解放トリガ320によっ
て制御される。トリガ320は第8A図のCD(1)排
他的取出トリガ142からの信号によってセットされ、
後者のトリガー42はディレクトリ・レジスタ45に置
かれたBCE(1)コマンドのPIDが(すべてのCD
によって探索中の現在のBCEミスを生ぜしめた要求を
発行したプロセッサとして)CPOを識別する場合にの
みセットされうる。かくて、第8A図のトリガ142が
セットされるのは、発行中コマンドのPIDがAND回
路1 43に至る線1 44を付勢し且つこのAND回
路144が該コマンドによって検出されたEXシノニム
のために条件づけられている場合だけである。第14図
において、線32 1はANTD回路322を条件づけ
、該回路は第9図のSCステータス符号回路から無エラ
ー・ステータスが供給されていることを示すステータス
復号回路323の出力によってさらに条件づけられる。
かくて、線321は任意のPD(R)については付勢さ
れない。
というのは、各CP(R)のPIDはすべてのSCで処
理されている現在のBCEミス・コマンドには置かれて
いないからである。従って、第8C図に示すように、任
意のCD(R)のシノニム・クラスにおけるEX比較又
はRO比較の検出は、現在のBCEミス・コマンドで指
示された基本クラスにおけるEX比較又はRO比較の検
出と同様に扱われ、そしてこれらの任意の比較は衝突信
号を発生する。しかし、CD(1)で検出されたEX比
較は異なる様式で扱われ、そして基本クラスはCD(1
)で比較信号を供給することができない。
なぜなら、このような比較の欠如はBCE(1)ミス・
コマンドの発行につながることがあるからである。シノ
ニム一致がCD(1)で検出される場合、これは第8A
図の線141にCDO EXシノニム信号を送って第9
図のBCE(1)シノニム解放トリガ320をセットす
る。この場合、トリガ320は第14図のAND回路3
22及び324を作動させてビット19及び20の捕獲
されたシノニム値をPDアドレス・レジスタへ通過させ
るので、PD(1)はこのシノニム・クラスをアクセス
してmが要求したデータをSIC(1)に見出すことが
できる。またこのBCEミス信号によって生ぜられたM
S要求は、第9図のOR回路326を通して与えられる
トリガ320の出力によってキャンセルされる。かくて
、BCE(1)はこのBCEミス・コマンドから解放さ
れるので、その後はBCEコマンド・レジスタ45(第
5図)はこのBCEのための次のコマンドを扱かうこと
ができるようになる。CD(1)によってシノニム解放
信号が供給される場合、すべてのCD(R)はそれらの
XI探索を完了しており、またCD(1)中のシノニム
・エントリにおいてそのEXビットがオンになっていれ
ば、どのCD(R)も任意の衝突を見出していないこと
になる。
しかしながら、もしCD(1)のシノニム・エントリで
EXビットがオフであれば、1又はそれ以上のCD(R
)で衝突が見出され、かくてCD(1)のェントリ及び
正規の相互照会の規則に従った任意のCD(R)のヱン
トリが無効化される。
前記の表−2は「各吐出動作及びそのために取られる結
果的な作用を示す。かくて、現在のCP要求が排他的取
出要求であって、第5図の線24を付勢する場合、第8
B図のAND回路136は、要求されたラインが基本又
はシノニム。
クラスのどちらにあろうと、そのEXビットを表−1の
規則に従ってセットする。もしRO状態が存在すべきで
あれば、AND回路136はCD(1)のROD信号を
線137を介して第15図のRODトリガ401へ供給
するので、該トリガはCP(1)に関連するPDLRU
回路42によって選択されたセットについて特定のPD
入力レジスタにおけるEXビットをRO状態へセットす
る。PD(1)へのライン取出ェントリのためのVビッ
ト及びCHビットの状態並びに絶対アドレス・ビット6
−20もまた第15図で制御される。衝突信号が供給さ
れるのは、プロセッサのRO要求のために見出されるR
Oシノニムを除く基本又はシノニム・アドレスを任意の
CD(R)が検出する場合、又は書込照会(SI)要求
に応答してCD(1)がROシノニム・アドレスを検出
する場合である。
CD(R)の衝突は、表−1及び第4A図〜第4M図の
例を使用して説明される。CD(1)の衝突は、表−2
及び第4N図〜第4V図の例を使用して説明される。こ
こで注意すべきは、シノニム衝突は単一プロセッサ・シ
ステム及び多重処理システムのどちらでも生じうるが、
CD(R)の衝突は単一プロセッサ・システムでは生じ
えないということである。
表−1の各行は、相互照会(XI)コマンド中の種々の
要求タイプ並びにCD(R)で見出されるライン・アド
レスのRO及びEXタイプについて存在しうる種々の組
合せを表わす。
プロセッサ(サービス・プロセッサSVP又は外部デー
タ・コントローラEXDCを含む)のRO取出要求につ
いてCD(R)で見出されるようなROライン・アドレ
スは、真の衝突ではない。なぜなら、すべてのプロセッ
サはディレクトリを変更せずにそのRO取出要求によっ
てかかるROラインを共有することができるからである
。これらの非−衝突状況は、表−1の第1行、第4行及
び第1の;に表わされている。表−1の他のすべての行
は衝突状況を表わす。なぜなら、これらの状況はディレ
クトリの変更を必要とし、そして表−1の第5行を除く
すべての行に示されているように、これは衝突を見出す
任意のCD(R)からそのPD(R)へ送られるSCコ
マン日こよって行われるからである。衝突を有するCD
(R)からCD(1)への通知が必要となるのは、PD
(1)中のEXビットがCP(1)によってEX状態へ
セットされ且つこの状態が表−1の第4行及び第6行に
示された「ROへ変更(ATRO)」信号によってRO
状態へ変更されねばならない場合だけである。表−2の
各行は、BCEミス・コマンドで表わされる種々の要求
タイプ(RO取出し、EX取出し又はEX書込み)及び
CD(1)に見出されるシノニム・タイプ(ROシノニ
ム又はEXシノニム)について存在しうる種々の組合せ
を表わす。
表−2の第5行だけが真の衝突状況を表わす。というの
は、この状況だけが存在する任意のディレクトリ・ェン
トリを変更するという特別の操作を必要とするからであ
り、これはこれらのディレクトリを変更するためにCD
(1)からPD(1)へ送られる「ライン・ェントリ無
効化(ILE)」コマンドによって行われる。表−2に
示された他の8つの事例は、いずれも任意のSCコマン
ドに起因するディレクトリの変更を必要としない。もっ
とも、表−2の第2行、第4行及び第6行はCD(1)
からPD(1)へシノニム・アドレスを送ってCP(1
)がSIC(1)中のシノニム・ラインをアクセスでき
るようにするという特殊な状況を表わし、残りの第1行
、第3行、第5行、第7行〜第9行は要求された取出ラ
インを得るとともに、PD(1)及びCD(1)へ新し
いェントリを挿入するというBCEミス・コマンドの正
常な実行を表わす。表−1に示されたCP(R)の衝突
は、第8A図のAND回路166一169によって検出
される。
すべての衝突は、AND回路166−169の出力を受
取る第8A図のOR回路164によって通知される。表
−2に示されたCP(1)の衝突もAND回路169に
よって検出される。詳述すると、EXシノニムは第8C
図の比較回路171から線161を介して供給されるE
X比較信号によって検出され、ROシノニムは比較回路
171から線162を介して供給されるRO比較信号に
よって検出される。かくて、AND回路166は、任意
のサービス・プロセッサ(SVP)又は外部データ・コ
ントローラ(EXDC)について見出されたEXシノニ
ムを検出する。AND回路167は、サービス・プロセ
ッサ(SVP)又は外部データ・コントローラ(EXD
C)の書込要求について見出されたROシノニムを検出
する。AND回路168は、任意のCP(R)の要求に
ついて見出されたEXシノニムを検出する。AND回路
169は、任意のCP(R)又はCP(1)からのき込
照会(SI)要求について見出されたROシノニムを検
出する。CP(1)については、検出された衝突はCD
(1)にシノニムが見出されたことを指示するが、殆ん
どのシノニムは衝突として検出されない。
第12図のシノニム捕獲回路はすべてのシノニムを検出
するとともに、その各クラス位置をPD(1)へ報告す
る。検出されたEXシノニムを検出されたROシノニム
と異つた様式で処理するのは、次の理由による。
即ち、シノニムが検出された場合、Sに(1)のシノニ
ム位置にある要求データをアクセスするよりも、このシ
ノニムを取除いてこれを基本位置へコピーしたほうがシ
ステム性能の改善に役立つ、ということが統計的に確め
られているからである。別言すれば、シノニム位置で見
出されたラインへ後続する多くの要求が行われることは
統計上十分にありうることなのであり、従ってこのライ
ンをシノニム位置でアクセスする場合に生ぜられるキャ
ッシュ・ミスやそれに伴う相互照会及びシノニム検査の
オーバーヘッドを回避するためには、このラインを基本
位置へ再配置したほうが望ましい、ということである。
しかしながら、このことはチェックポイント期間中にロ
ックされるようなEXヱント川こついては行うことがで
きない(チェックポイントについては米国特許第373
6566号参照)。EXェントリはチェックポイント期
間中にロックされうるので、その後は無効化又は吐出し
を行うことができない。しかしながら、ROェントリは
チェックポイント期間中にロックされることはなく、従
ってその後は必要に応じて無効化及び吐出しを行うこと
ができる。かくて、もしCD(1)にROシノニムが見
出されるならば、MSライン取出しが行われるために(
表一2参照)真のミスが認識され、Sに(1)の基本ク
ラスにある(置換すべきロックされたェントリを保持し
ないような)新しいェントリ位置が第5図のLRU回路
42によって選択され、ロックされていない置換ェント
リによって表わされる任意の有効ライン力SIC(1)
から吐出され、取出ラインがSIC(1)の新しいェン
トリ位置に記入され、表−1に関連して説明した如くR
O又はEXと指示された新しいェントリがCD(1)及
びPD(1)の新しいェントリ位置に記入され、そして
CD(1)にROシノニムを見出したプロセッサの書込
要求については新しい基本ェントリのために必要なEX
指示に起因してシノニムが無効化される。もしCD(1
)でEXシノニムが見出されるならば、SCコマンドは
このEXシノニム位置をPD(1)に指示し、これに応
じてPD(1)はSIC(1)中のデータをアクセスし
、次いでMSへのライン取出コマンドがキャンセルされ
るので、MSのライン取出しは行われないことになる。
かくて、SIC(1)でEXシノニムがアクセスされて
その基本クラスへ移動される。というのは、SIC(1
)のシノニム・クラスから基本クラスヘロックされたラ
インを移動しようとすれば、プロセッサのデッドロック
が生じうるからである。かかるデッドロックが生ずる理
由は、EX位置のラインがチェックポイント期間中にロ
ックされる限りこのEX位置の変更ラインを吐出すこと
はできないのであり、しかもかかる吐出し(これは行う
ことができない)が完了した後でなければ得ることがで
きない取出ラインからの要求データをmが愛得するまで
IEはこのチェックポイント期間を完了させることがで
きない、というものである。第4N図〜第4P図は、C
D(1)にEXシノニムを見出すようなBCEミス・コ
マンドのタイミング例を示す。第4Q図〜第4V図は、
CD(1)にROシノニムを見出すようなBCEミス,
コマンドのタイミング例を示す。EXシノニムの例を示
す第4N図の第1サイクルでは、CP(1)の取出要求
に起因するミスがPD(1)で検出され且つBCEミス
Gコマンドが発行される。
次のサイクルでは、現要求の基本クラスにおいて置換の
ためにLRU回路42(第5図)によって選択された任
意の有効な変更ラインから第1ダブルワード(DWO)
が吐出される。この吐出しは第4A図又は第4日図につ
いて説明したと同様に第5図のライン書込みバッファ(
山B)51へ行われ、これは任意のシノニムが検出され
る前に開始する。もしEXシノニムが事後的に検出され
たならば、これに応じて吐出しが抑圧される(但し、R
Oシノニムは吐出しを抑圧しない)。第40図は第4B
図について説明したと同機に開始される。
図示の如く、SC(1)のPIRI03(第6図)がロ
ードされ、次いでそのXIRI04がロードされるが「
その間SC(1)は8CE(1)ミス・コマンドを処
理中であるために使用中に留まる。第4P図の第1サイ
クルである後続サイクルでは、すべてのSCのディレク
トリ。レジスタ121が。ードされ、そしてすべてのC
Dがその基本クラスにおいて探索される。第4P図の第
2サイクルでは、すべてのCDがそのシノニム・クラス
において探索される(4KBページ・モードの場合)。
第3サイクルでは、すべてのSCはこれらの探索の結果
として相互照会(XI)バスに生ぜられる遠隔衝突信号
を検知することによって、任意の衝突がCD(1)又は
任意のCD(R)で検出されたか杏かという決定を待機
する。もし任意のCD(R)又はCD(R)で衝突がま
ったく検出されず、しかも取出要求に起因するROシノ
ニムがCD(1)で検出されたならば(表−2の第2行
又は第4行参照)、第4P図の第4サイクルが開始され
る。この第4サイクルの間、第8A図のトリガ142に
よって検出されたEXシノニム信号は第9図の線321
にBCE(1)シノニム解放信号を生ぜしめ、第4N図
に示す如くLSB(1)をリセットさせるので、LSB
(1)へのその後の吐出し‘ま禁止され、またMSへの
対応するライン取出コマンドがキャンセルされることに
なりLかくてBCEミス・コマンドの実行が終了する。
第8A図の線141に現われるEXシノニム信号は第9
図のBCE(1)シノニム解放トリガ320をセットし
、該トリガはこのBCEミス・コマンド‘こよって開始
されたMSへのライン取出コマンドをキャンセルするた
めにSC中のMS制御へコマンド・キャンセル信号を供
給する。第4N図の最終段階では、PD(1)は、第1
4図の線32 1にBCE(1)シノニム解放信号を受
取り、第12図からのCD(1)シノニム・アドレス・
ビット19一20を受取り、そして8CE(1)に対す
る現在のCD(1)コマンド‘こ保持されるCD(1)
クラス・アドレス−ビット21−24を受取り、かくて
そのEXシノニム・ェソトリを選択する。
PD(1)は要求中のダブルワードをアクセスするよう
にSに(1)を制御するので、これは第4N図の最終サ
イクルの間に伍(1)へ供給される。この段階で伍要求
が充足されたことになる。第4Q図に示されたROシノ
ニムのタイミング順序は、プロセッサの書込照会(SI
)要求に起因するBCEミス・コマンドで以て開始する
第5図のLRU回路42は、PD(1)の基本クラスに
ある4セットの位置のうちロックされておらず、従って
置換のために直ちに利用することができる1つの位置を
選択する。次いで、この選択された位置にある有効な変
更ラインが偽B(1)へ吐出される。この例の場合、R
Oシノニムは検出されていないから、はB(1)はリセ
ットされない。ROシノニムが検出されるとき、第8A
図のEXシタノニム・トリガ142はセットされない。
BCEミス・コマンドは、第40図について説明したと
同様に開始される第4R図の第1サイクルの間に、SC
(1)中のPIRI03(第6図)によって受取られる
。また第4S図は、第4P図0について説明したと同様
のシノニム探索及び相互照会動作を開始させる。第4S
図の第3サイクルの間、ROシノニムについて衝突が検
出される場合もあるし、そうでない場合もある。第4S
図の第4サイクルに入るのは、シノニムが見出されない
場合又はプロセッサの取出要求(書込照会要求を除く)
についてROシノニムが見出される場合である。
かくて、コマンドは発生されず、第8A図のEXシノニ
ム・トリガ142もセットされないで、EXシノニムが
見出されなかったことを指示する。またMSへのライン
取出コマンドは活動的なままに留まり、そしてこのコマ
ンドが要求した特定のダブルワードDW(N)は第4U
図の第1サイクルの間にE(1)及びSIC(1)へ同
時に供給される。第4U図のライン取出しが完了すると
、LSB(1)からMSへの吐出しが第4V図で直ちに
開始される。もしプロセッサの書込照会(SI)要求に
ついてROシノニムの衝突が見出されるならば、第4T
図の第1サイクルが開始される。
第4T図の第2サイクルでは、このPD(1)中のRO
シノニム・ェント川こあるVビットが無効状態へセット
される。第4T図の第3サイクルでは、BCE(1)か
らSC(1)へ「ライン・ェントリ無効化(ILE)」
コマンドが発行され、CD(1)に見出された対応する
ROシノニム・ライン・ェントリが無効化されるので、
これによりその衝突状態が終了される。次いで、第4S
図の第1サイクルに再入し、すべてのCDが再び探索さ
れる。というのは、以前に衝突を生ぜしめたROシノニ
ム・ェントリはこの時点で無効化されていて任意の衝突
信号を生ぜしめないのであり、従ってCD(1)には衝
突が見出されないからである。このように、衝突が全く
見出されないと、第4S図の第4サイクルに入り、それ
に続いて第4U図でライン取出しが開始される。このラ
イン取出しが完了すると、はB(1)中の吐出ラインが
第4V図に示すようにMSへ転送される。要約すると、
この詳細な説明でいう「衝突」とは、任意のCDに対す
る相互照会動作から得られる比較一致出力であって、そ
の対応するPD中のェントリを無効化するためにその対
応するBCEへ与えられるSCコマンドを生ぜしめるよ
うな比較一致出力によって表わされる。
かくて、プロセッサのRO要求に対するRO比較は衝突
ではなく、またCP−(1)についてはその唯一の衝突
は書込照会(SI)要求に対するRO比較である。本発
明の第2の実施態様は、第18図に示されている。この
実施態様は、本発明を実現するにあたってCDを使用せ
ずにPDだけを使用するというものである。この第2の
実施態様は第17図に図示された如きミス検出手段51
1を含み、該手段はキャッシュ・ミスの検出時に追加の
探索制御手段512に信号を与え、後者の手段はこれに
応じてクラス・アドレス中の変換可能ビットを置換する
ことにより(CD中のシノニム・クラスを探索するため
の前記の動作と同様の様式で)PD510中の潜在的な
シノニム・クラスを探索する。探索制御手段512は第
8C図のシノニム探索変更回路212、シノニム捕獲回
路213及びディレクトリ・アドレッシング回路211
を含み、これらの回路は第18図ではPD51川こおけ
るシノニム・クラスの逐次的な選択を制御するために第
14図のPDアドレス・レジスタにだけ関連して動作す
る。シノニムの比較は、第8C図のCDに関連する相互
照会用の比較回路171で行われるのではなく、通常の
ディレクトリ比較回路である第17図のPDアドレス比
較回路で行われる。このようなシノニム探索の間に検出
される任意のシノニム位置はプロセッサによってアクセ
スされるか、又は第1の実施態様について既に説明した
ように基本位置へコピーされる。この第2の実施態様を
多重処理システムへ適用すると、各シノニム・クラスの
逐次的な探索を包含するようにPD(1)の動作及び探
索時間を拡張しなければならす、従って全体的な性能が
低下するので、これを多重処理システムへ適用すること
は得策ではない。
即ち、多重処理システムの各プロセッサにそれぞれ単一
のディレクトリだけが設けられている場合には、相互照
会の追加の干渉が伴うために全体的な性能が低下するこ
とは避けられない(第1の実施態様ではPDにおける相
互照会の干渉を軽減するためにCDが設けられた)。し
かしながら、相互照会を要しない単一プロセッサ・シス
テムでは、この第2の実施態様の性能低下は多重処理シ
ステムのそれに比較してずっと少ないから、CD及びそ
の制御を要しないというその経済性を重視する場合には
、本発明を実現するためにこの第2の実施態様を採用し
たほうが有利であることも多いのである。
【図面の簡単な説明】
第1図は本発明を包含する多重処理システムのフロック
図、第2A図及び第28図は各ラインごとにプロセッサ
・ディレクトリ(PD)及びコピー・ディレクトリ(C
D)にそれぞれ見出されるPDヱントリ及びCDェント
リを示す図、第3A図乃至第3D図は本発明の実施態様
で使用される種々のコマンドを示す図、第4A図乃至第
4V図は本発明の実施態様における諸動作のタイミング
順序を示す図、第5図は第1図の中央プロセッサ(CP
)にそれぞれ設けられるバッファ制御要素(BCE)を
示す図、第6図及び第7図は第1図のシステム・コント
ローラ(SC)に設けられる制御回路を示す図、第8図
は第8A図乃至第8C図の結合様式を示す図、第8A図
乃至第8C図及び第9図は第1図のシステム・コントロ
ーフ(SC)に設けられる他の制御回路を示す図、第1
0図は第8C図にブロック形式で示したコピー・ディレ
クトリ(CD)アドレス回路の詳細を示す図、第11図
は第8C図にブロック形式で示したシノニム探索変更回
路の詳細を示す図、第12図は第8C図にブロック形式
で示したシノニム捕獲回路の詳細を示す図、第13図は
第5図にブロック形式で示したBCE応答制御回路の詳
細を示す図、第14図は第5図にブロック形式で示した
PDクラス・アドレス制御回路の詳細を示す図、第15
図は第5図にブロック形式で示したPDセット入力制御
回路の詳細を示す図、第16図は第6図にブロック形式
で示したBCE応答制御回路の変更ビット・テスト回路
の詳細を示す図、第17図は第5図に示したプロセッサ
・ディレクトリ(PD)の出力に設けられるキャッシュ
・ミス検出回路を示す図、第18図は本発明の第2の実
施態様を示す図である。 FIG。 IFIG.2A FIG.28 F・G.3A F!G.38 FIG.3C FIG.30 FIG.4A FIG.48 FIG.4C FIG.」0 FIG.4E FIG.4F FIG.4G FIG.4N FIG.41 FIG.◇J FIG.4K FIG.4L FIG.4M FIG.4N FIG.40 FIG.4P FIG.40 FIG.4R FIG.4S FIG.4T FIG.4U FIG.4V FIG.C FIG.6 FIG.マ FIG.OA FIG.8 FIG.88 FIG.8C FIG.g FIG.10 FIG.11 FIG.12 FIG.13 FIG.14 FIG.IS FIG.16 FIG.17 FIG.18

Claims (1)

    【特許請求の範囲】
  1. 1 ストア・イン式キヤツシユ記憶及び命令実行ユニツ
    トを有するデータ処理システムのためのキヤツシユ・シ
    ノニム制御方式であって: 前記命令実行ユニツトから
    主記憶の論理アドレスを含む要求を受取るためのセツト
    ・アソシアテイブ形キユツシユ・デイレクトリと; 前
    記要求の論理アドレスをこれに対応する主記憶の物理ア
    ドレスへ変換するためのアドレス変換手段と; 前記キ
    ユツシユ・デイレクトリへクラス・アドレスを供給して
    該デイレクトリ中の1つのクラスを選択するために、前
    記要求の論理アドレスに含まれる複数ビツトのうち該デ
    イレクトリ中の基本クラスのアドレスを指定する変換可
    能ビツト及び変換不能ビツトを受取るためのクラス・レ
    ジスタ手段と; 前記クラス・レジスタ手段の内容を受
    取って前記キユツシユ・デイレクトリ中の基本クラスの
    探索を制御し且つ該基本クラスに前記変換された物理ア
    ドレスが保持されていなければミス信号を発生するため
    の第1の探索制御手段と; 前記ミス信号に応答して前
    記変換可能ビツトを置換し且つ該置換ビツトを前記クラ
    ス・レジスタ手段中の前記変換可能ビツトにオーバーレ
    ーしてシノニム・クラス・アドレスを発生するためのア
    ドレス変更手段と; 前記アドレス変更手段によって前
    記クラス・レジスタ手段へ供給された各シノニム・クラ
    ス・アドレスに基いて前記キユツシユ・デイレクトリ中
    のシノニム・クラスの探索を制御するための第2の探索
    制御手段と; 前記第2の探索制御手段によって制御さ
    れる各シノニム・クラスの探索の後に、前記クラス・レ
    ジスタ手段に次のシノニム・クラス・アドレスを供給す
    るように前記アドレス変更手段を作動させるための手段
    と; 前記第2の探索制御手段が前記キユツシユ・デイ
    レクトリのシノニム・クラスに前記変換された物理アド
    レスが存在することを検出する場合は、前記アドレス変
    更手段によって発生された該シノニム・クラスのアドレ
    スを捕獲するための手段と; 該捕獲手段によって捕獲
    されたシノニム・クラス・アドレスにおいて前記キユツ
    シユ記憶をアクセスするための手段とを備えて成る、キ
    ユツシユ・シノニム制御方式。
JP56139872A 1980-11-10 1981-09-07 キヤツシユ・シノニム制御方式 Expired JPS609299B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US205486 1980-11-10
US06/205,486 US4400770A (en) 1980-11-10 1980-11-10 Cache synonym detection and handling means

Publications (2)

Publication Number Publication Date
JPS5788586A JPS5788586A (en) 1982-06-02
JPS609299B2 true JPS609299B2 (ja) 1985-03-09

Family

ID=22762384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56139872A Expired JPS609299B2 (ja) 1980-11-10 1981-09-07 キヤツシユ・シノニム制御方式

Country Status (2)

Country Link
US (1) US4400770A (ja)
JP (1) JPS609299B2 (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4527238A (en) * 1983-02-28 1985-07-02 Honeywell Information Systems Inc. Cache with independent addressable data and directory arrays
US4607331A (en) * 1983-05-13 1986-08-19 Motorola, Inc. Method and apparatus for implementing an algorithm associated with stored information
US4731739A (en) * 1983-08-29 1988-03-15 Amdahl Corporation Eviction control apparatus
US4631660A (en) * 1983-08-30 1986-12-23 Amdahl Corporation Addressing system for an associative cache memory
US4612612A (en) * 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
US4727482A (en) * 1983-08-30 1988-02-23 Amdahl Corporation Apparatus for enhancing searches of data tables
US4589092A (en) * 1983-12-12 1986-05-13 International Business Machines Corporation Data buffer having separate lock bit storage array
JPS60138653A (ja) * 1983-12-27 1985-07-23 Hitachi Ltd 階層記憶制御方式
JPS6184753A (ja) * 1984-10-01 1986-04-30 Hitachi Ltd バツフアメモリ
JPS62206658A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 記憶管理装置
US5237671A (en) * 1986-05-02 1993-08-17 Silicon Graphics, Inc. Translation lookaside buffer shutdown scheme
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
JPH0661066B2 (ja) * 1986-10-20 1994-08-10 株式会社日立製作所 記憶制御装置
US4797817A (en) * 1986-12-10 1989-01-10 Ncr Corporation Single cycle store operations in a virtual memory
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
JPS6412348A (en) * 1987-07-06 1989-01-17 Hitachi Ltd Buffer control system
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
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
EP0325421B1 (en) * 1988-01-20 1994-08-10 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
JPH01222350A (ja) * 1988-03-01 1989-09-05 Agency Of Ind Science & Technol 記憶装置
US5214770A (en) * 1988-04-01 1993-05-25 Digital Equipment Corporation System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command
US5317716A (en) * 1988-08-16 1994-05-31 International Business Machines Corporation Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5463751A (en) * 1989-11-22 1995-10-31 Matsushita Electric Industrial Co., Ltd. Memory device having address translator and comparator for comparing memory cell array outputs
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
EP0473804A1 (en) * 1990-09-03 1992-03-11 International Business Machines Corporation Alignment of line elements for memory to cache data transfer
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock
JPH04195577A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd マルチプロセッサにおけるタスクスケジューリング方式
JPH0520197A (ja) * 1991-07-09 1993-01-29 Hitachi Ltd 記憶管理システム及びマイクロプロセツサ
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
JP2737820B2 (ja) * 1992-09-24 1998-04-08 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリアクセス方法およびシステム
US5584002A (en) * 1993-02-22 1996-12-10 International Business Machines Corporation Cache remapping using synonym classes
JPH07287668A (ja) * 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
US5890221A (en) * 1994-10-05 1999-03-30 International Business Machines Corporation Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
US5805855A (en) * 1994-10-05 1998-09-08 International Business Machines Corporation Data cache array having multiple content addressable fields per cache line
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5724551A (en) * 1996-05-23 1998-03-03 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
US6061774A (en) * 1997-05-23 2000-05-09 Compaq Computer Corporation Limited virtual address aliasing and fast context switching with multi-set virtual cache without backmaps
US7283991B1 (en) * 1999-03-11 2007-10-16 Microsoft Corporation Caching system for path search optimization
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
ATE396449T1 (de) 1999-09-01 2008-06-15 Intel Corp Registersatz zur verwendung in einer parallellen mehrfachdrahtprozessorarchitektur
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6324624B1 (en) * 1999-12-28 2001-11-27 Intel Corporation Read lock miss control and queue management
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US6751720B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7126952B2 (en) 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6934951B2 (en) * 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7437724B2 (en) * 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
JP4006445B2 (ja) * 2002-11-21 2007-11-14 富士通株式会社 キャッシュ制御方法及びプロセッサシステム
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US7130983B1 (en) * 2003-12-17 2006-10-31 Storage Technology Corporation System and method for reference count regeneration
US7096341B1 (en) * 2003-12-17 2006-08-22 Storage Technology Corporation System and method for reference count regeneration
US7213099B2 (en) 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US10592414B2 (en) * 2017-07-14 2020-03-17 International Business Machines Corporation Filtering of redundantly scheduled write passes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4096573A (en) * 1977-04-25 1978-06-20 International Business Machines Corporation DLAT Synonym control means for common portions of all address spaces
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism

Also Published As

Publication number Publication date
US4400770A (en) 1983-08-23
JPS5788586A (en) 1982-06-02

Similar Documents

Publication Publication Date Title
JPS609299B2 (ja) キヤツシユ・シノニム制御方式
US4394731A (en) Cache storage line shareability control for a multiprocessor system
EP0061570B1 (en) Store-in-cache multiprocessor system with checkpoint feature
JP2557174B2 (ja) データのセット位置の予測装置
JP2566701B2 (ja) 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置
US5201041A (en) Cache bypass apparatus
US5542062A (en) Cache memory system employing virtual address primary instruction and data caches and physical address secondary cache
EP0329942B1 (en) Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US5694568A (en) Prefetch system applicable to complex memory access schemes
JPS624745B2 (ja)
JPH0561770A (ja) データ処理システムのコヒーレンス手段
JPH08272682A (ja) ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置
JPS6150342B2 (ja)
JPH0583932B2 (ja)
JPS6042502B2 (ja) キヤツシユ制御方式
KR100308675B1 (ko) 캐쉬어드레스발생방법
EP0212678B1 (en) Cache storage synonym detection and handling means
JP2001222468A (ja) マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法
JPH02207352A (ja) 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
EP0375864A2 (en) Cache bypass
US6934810B1 (en) Delayed leaky write system and method for a cache memory
EP0395835A2 (en) Improved cache accessing method and apparatus
EP0375892B1 (en) Data processing system
JPH08328959A (ja) ディスクキャッシュ制御装置