JPH02207352A - 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置 - Google Patents

中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置

Info

Publication number
JPH02207352A
JPH02207352A JP1171742A JP17174289A JPH02207352A JP H02207352 A JPH02207352 A JP H02207352A JP 1171742 A JP1171742 A JP 1171742A JP 17174289 A JP17174289 A JP 17174289A JP H02207352 A JPH02207352 A JP H02207352A
Authority
JP
Japan
Prior art keywords
data
cpu
central processing
main memory
cache
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
JP1171742A
Other languages
English (en)
Inventor
Scott Arnold
スコット アーノルド
Stephen J Delahunt
スティーヴン ジェイ デラハント
Michael E Flynn
マイケル イー フリン
Ricky C Hetherington
リッキー シー ヒーザリントン
Mohamed Baser-Uddin Ahmed
モハメッド バザー ウッディン アーメド
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH02207352A publication Critical patent/JPH02207352A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本願は、計算システムの成る側面を開示するものであっ
て、これについては本願と同時に出願された以下の米国
特許出願にも記載されている:Evance et a
l、、  ^N INTERFACB 887%1il
!BN ASYSTEM C0NTR0L tlNIT
 AND A 5ERVICB PROCES−5IN
G UNIT OF A DIGITAL COMPU
TER(ディジタルコンピューターのシステム制御装置
とサービス処理装置との間のインターフェース):Ga
gliardo et al、、 MfiTHOD A
ND MEANS FORINTERFACING A
 SYSTBM C0NTR0L UNIT FORA
MOL丁1−PROCESSOR5YSTE?I  W
ITHTHE SYSTEMMAIN MEMORY 
 (システム主メモリーを持ったマルチプロセッサーシ
ステムのシステム制御装置をインターフェースする方法
及び装置):D、 Fite et al、、 MIE
THOD AND APPARATUS FORRH5
OLVING A VARIABLENUMBf!RO
F POTENTIALMHMORY ACCESS 
C0NFLICTS IN A PIPBLINEDC
ONPUTERSYSTEM  (パイプライン化した
コンピューターシステムにおける可変個数の潜在的メモ
リーアクセス矛盾を解決する方法及び装置) : D、
 Fite et al、、 DECODING MU
LTIPLESPBCIFIf!R3IN A VAR
IABLII! Ll!NGT)l lN5TRUC−
TION ARCHITIICTURE  (可変長命
令アーキテクチャにおける多重指定子の解読) : D
、 Fiteet  at、、  VIRTUAL  
lN5TRUCTION  CACHE  RF!FI
LLALGORITHM  (仮想命令キャッシュ補給
アルゴリズム) : Murray et al、、 
PIPELINIE PROCES−5ING OF 
RBGISTERAND R[EG4STERMODI
FYINGSPECiFIt!RS讐IT旧N TRE
SAME lN5TRtlCT1ON(レジスターと、
同じ命令内のレジスター修飾指定子のパイプライン処理
): Hurray etal、、   MULTIP
LE  lN5TRUCTION  PREPROCB
SSINGSYSTIM  WITHDATA  DE
PHNDI2NCY  RBSOLIJTIONFOR
DIGITAL COMPUTER5(ディジタルコン
ピューターのデータ依存分解能を持った多重命令処理シ
ステム):口、 Fite et al、、 PRH−
PROCIESSING IMPLIED 5PHCI
FIf!R9IN A PIPt!−LINHD PR
OCESSOR(パイプライン化したプロセッサーにお
ける暗示指定子の前処理);D。
Fite et al、、 BRANCHPREDIC
TION  (ブランチ予測): Fossus et
 al、、 PIPELINED FLOATINGP
OINT ADDERFORDICITAL CO1’
1PtlTER:  (ディジタルコンピューターのパ
イプライン化浮動小数点加算器): Grundman
n et al、、 SELFTIMED Rf!GI
STBRPILf! (自己計時レジスターファイル)
 : Beaven et al、、 MtiTHOD
 AND^PPARATUS FORDETECTIN
G AND C0RRECTINGfERROR5IN
 A PIPRLINE!D COMPUTER5YS
t!M(パイプライン化コンピューターシステムにおい
て誤りを検出し訂正する方法及び装置):Flynn 
et al、、 MfiTHOD AND MEANS
 FORAB−BITRATING COMMUNIC
ATION REQUESTS USING^SYST
EM C0NTR0L 0NIT IN A MULT
I−PROCHSSOR5YSTE?! (マルチロセ
ッサーシステムにおいてシステム制御装置を使って通信
要求を調停する方法及び手段):  B、 Ftte 
at al−+C0NTR0L OF MULTIPL
E PUNCTION UNITS WITHPARA
LLEL 0PERATION  IN  A  MI
CROCODHD  EXE−CUTION UNIT
  (マイクロコード化された実効装置における並列動
作機能付き多重機能装置の制御):  Webb、 J
r、 et al、、 PROCIESSINGOF 
 MEMORY  ACCBSS  EXCBPTIO
NS  WITHPRB−FETCHII!D lN5
TRUCTIONS WITHIN THEINSTR
UC−TION PIPELINE OF A VIT
UAL MEMORY SYSTEM−BASI!D 
DIGITAL COMPUTER(仮想記憶装置シス
テムベースドディジタルコンピューターの命令パイプラ
イン内での先取りされた命令に伴うメモリーアクセス除
外の処理)  : Hethe−rington et
 al、、 MtiTFIOD AND APPARA
TUS FORCONTROLLING THIE C
0NVER5ION OF VIRTUAL TOPH
YSICAL MEMORY ADDRESSBS I
N A DIGITALCOMUTERSYSTEM 
(ディジタルコンピューターシステムにおける仮想メモ
リーアドレスから物理的メモリーアドレスへの変換を制
御する方法及び装置):  Hetherington
 et al、。
WHITII! BACK BUFFI!RWITHH
RRORC0RRIICTINGCAPABILITI
ES (誤り訂正能力を持ったライトバックバッフy 
 )  :  Flynn et al、、ME!TH
ODAND MHANS FORARBITRATIN
G COMMUNICATIONREQUI!STS 
tlsING A SYSTEM C0NTR0L U
NIT  INA MULTIPROCBSSOR5Y
STII!M  (多重処理システムにおいてシステム
制御装置を使って通信要求を調停する方法及び手段) 
 : (:hinnaswayet aloMODUL
ARCRO5SBARINTERCONNECTION
MHTWORK FORDATA TRANSACTI
ONS B[!TWEENSYSTEM UNITS 
IN A MULTI−PROCESSORSYSTE
M(多重処理システムにおけるシステム装置間でのデー
タトランザクションのためのモジュラ−クロスバ−相互
接続ネットワーク):Po1zin et al、、 
METHOD AND APPARATUS FORI
NTI!RFACING A SYSTEM C0NT
R0LIINIT POR八MへILTI−PROCE
SSOR5YSTt!M WITHINPUTloUT
PUT[INITS  (入出力装置を有するマルチプ
ロセッサーシステムのためのシステム制御装置をインタ
ーフェースする方法及び装置): Cagliard。
et al、、 Ml!MORY C0NFIGURA
TION FORO82WITHMEANS  FOR
lNTl!RFACING  A  SYSTEM  
C0NTR0LUNIT FORA MULTI−PR
OCHSSORSYSTEM WITHTHE SYS
TEM MAIN Ml!MORY (システム主メモ
リーを持ったマルチプロセッサーシステム用のシステム
制御装置をインターフェースする手段に用いるメモリー
排列): Gagliardo et al、+MHT
HOD AND MEANS FORERRORCHB
CKING OFDRAM−CONTROL 5IGN
ALS BETWEEN SYSTEMMO[)ULH
5(システムモジュール間のドラム制御信号の誤りチエ
ツクのための方法及び手段)。
本発明は、コンピューターシステムの機能的構成要素間
のインターフェースに関し、特に、マルチプロセッサー
・コンピューターシステムのシステム制御装置と、これ
に付随する中央処理装置(CP U)との間のインター
フェースに関する。
コンピューターシステムの分野では、並列に動作する複
数の中央処理装置(CP U)を設けてシステムの動作
速度を向上させるのは普通のことあである。一般に、C
PUは、各々、単一のコンピュータープログラムの特定
の局面で動作するので、メモリーに格納された同じプロ
グラム及び変数へのアクセスを要求する。各CPUが共
有の主メモリー及び入出力装置(110”)へのアクセ
スを要求することが分かる。Iloにより、コンピュー
ターシステムは、特にそのCPUは、外部世界と通信す
ることが出来る。例えば、Iloは、ディスク及びテー
プ駆動装置、通信装置、プリンタ、ブロック、ワークス
テーション等の周知の装置を含む。
この並列動作は、共有のメモリーに対するアクセス矛盾
という形の問題を生じさせるものである。
システム制御装置(SCU)を使って、これらの装置間
通信を管理する。SCUは、一連の独立のインターフェ
ースを通してCPUを主メモリー及びIloへ接続する
。SCUは各装置からデータ要求を受け取るが、CPU
は並列動作を行なうので、データ要求は不定期に、特別
の場合には同時に、生じる。これらのデータ転送要求は
、調停アルゴリズムに従って予定され、特定された装置
への、又はその装置からの、適切なインターフェースを
通して処理される。
SCUに接続された全てのシステム装置間の効率的な通
信は、コンピューターシステムの並列動作を最適化する
ために決定的に重要である。インターフェースの速度は
、コンピューターシステムの全体としての動作がデータ
のボトルネックを出現させないことを保証するために重
要である。個々の装置が頻繁に他の装置からのデータを
待たなければならないのであれば、個々の装置が高速で
作動することが出来ても殆ど意味がない。
(発明の概要) 本発明は、複数の中央処理装置と、主メモリーと、該中
央処理装置及び主メモリー間のデータ転送を制御するシ
ステム制御装置とを有し、その各中央処理装置が、該主
メモリーに維持されているデータの選択された部分を内
蔵するキャッシュを持っているコンピューターシステム
における効率的な高速インターフェースを提供する。該
システム制御装置は:核上メモリーの選択されたアドレ
スに内蔵されているデータに対する要求を該中央処理装
置の一つから受け取る手段と;データ要求を受け取ると
主メモリーからのデータ検索を開始させる手段と;要求
されたデータアドレスを、中央処理装置キャッシュの各
々に内蔵されているデータのアドレスと比較して、それ
らの一致又は不一致を検出すると、それぞれヒツト信号
又はミス信号を発する手段と;ヒツト信号を受け取ると
データ検索開始手段の動作を打ち切る手段と;ヒツト信
号を受け取ると、要求されたデータを中央処理装置キャ
ッシュから検索して、その検索したデータを、要求を出
した中央処理装置キャッシュに送る手段と、ミス信号を
受け取ると、主メモリーから検索したデータを、要求を
出した中央処理装置キャッシュに送る手段と、から成る
0本発明の他の目的及び利点は、以下の詳しい説明を読
み、図面を参照することから明らかとなろう。
(実施例) 本発明は、色々な形で実施可能であるが、そのうちの特
別の実施例を図面に例示し、以下に詳しく説明する。し
かし、本発明を、開示した特定の形に限定することが意
図されているのではなくて、逆に、特許請求の範囲の欄
におて定義された発明の範囲に属する全ての修正、等個
物、及び代替物を網羅することが意図されている。
第1図は複数の中央処理装置(CPIII −CPU4
)11.12.13.14を包含する多重処理コンピュ
ーターシステムlOの最高レベルブロック図である。C
PUは、共有の主メモリー16及び入出力装置1101
Bへのアクセスを要求する。l101Bは、コンピュー
ターシステム10の、特にCPUの、外部世界との通信
を可能にするものである。例えば、l1018は、ディ
スク及びテープ駆動装置、通信装置、プリンタ、ブロッ
ク、ワークステーション等の周知を装置を含む。
複数のCPUを充分に活用するために、該システムは、
CPUl−CPU4の並列動作を許す構成となっている
。この並列動作には、共有のメモリー16及びl101
8へのアクセス矛盾又は衝突という形の問題がある。シ
ステム制御装置5CU20を使って、これらの装置間の
通信を管理する。
5CU20は、一連の独立のインターフェースを通して
CPUl−CPU4を主メモリー16及び1101Bに
接続する。5CU20は各装置からデータ要求を受け取
るが、データ要求は、CPUが並列動作をするので、不
定期に発生し、場合によっては同時に発生する。これら
のデータ転送要求は、調停アルゴリズムに従って予定さ
れて、特定された装置への、又はその装置からの適切な
インターフェースを通して処理される。
CPU内で、個々の命令の実行は、複数の小さなタスク
に分解される。これらのタスクは、その目的に最適化さ
れた専用の、別々で且つ独立の機能単位によって実行さ
れる。
各命令は結局は異なる動作を行なうのであるが、各命令
を分解して得られる小さなタスクの多くは全ての命令に
共通である。一般に、命令の実行中、次のステップ、即
ち命令取り出し、命令解読、オペランド取り出し、実行
、及び結果格納のステップ、が行なわれる。
パイプラインを通るデータ経路は、各パイプラインステ
ージの結果を次のステージに転送するためのレジスター
の各組を含む。これらの転送レジスターは、共通のシス
テムクロックに応じてクロックされる0例えば、第1ク
ロツクサイクル中、第の命令が、命令取り出しに専用さ
れるハードウェアにより取り出される。第2クロツクサ
イクル中、その取り出された命令は命令解読ハードウェ
アに転送され解読されるが、同時に、次の命令が命令取
り出しハードウェアにより取り出される。
従って、パイプラインが満杯となった後、命令は各クロ
ックサイクルの終了時には完全に実行されていることに
なる。
このプロセスは、製造環境における組み立てラインに似
ている。各労働者は、その作業ステージを通る各製品に
専ら単一のタスク(仕事)を行なう。各タスクが行なわ
れるに従って、製品は完成に近づいてゆく、最終ステー
ジで、労働者が割当のタスクを実行する毎に、完成した
製品が組み立てラインから出てゆく。
この様な命令のパイプライン方式処理を達成するために
、CPUは少なくとも3個の機能単位即ち、実行装置2
2、命令装置24、及びメモリーアクセス装置26、に
分けられる。その名前が示唆する様に、実行装置22は
命令の実際の遂行に最終的に責任を負う。命令装置24
は命令を先取りし、オプコード(opcode)を解読
してオペランド及び結果指定子を得、オペランドを取り
出し、プログラムカウンターを更新する。
メモリーアクセス装置26はCPUのメモリー関連機能
を行なう。例えば、メモリーアクセス装置26は高速キ
ャッシュ28を維持する。キャッシュ28は、主メモリ
ー16に格納されている情報の小部分のコピーを格納し
、メモリーアクセス時間を短縮することによって処理速
度を向上させるために使われる。主メモリー16は、安
価で低速の記憶素子で構成される。各メモリー参照中に
主メモリー16へのCPUのアクセスが要求されたなら
ば、CPUはメモリー参照により所望のデータが戻され
るまでは命令を実行することが出来ないので、CPUの
全体的速度は主メモリー速度と一致する低速へ落ちる。
従って、キャッシュ28は高速で高価な半導体記憶素子
で構成されるが、高価であるので、キャッシュが内蔵す
る記憶場所は主メモリーより相当少ない、これらの割合
に少数の高速記憶場所は、CPUが最も頻繁に使用する
主メモリーの部分を維持するために使われる。従って、
キャッシュ28に維持されていないメモリー参照のみが
主メモリー16へのアクセスを行なわせる。この様にし
て、CPUの全体的速度が向上する。
キャッシュ28に維持されるメモリーは、プログラムが
進行するに従って変化することに注意しなければならな
い0例えば、プログラムの初めに頻繁に参照される記憶
場所はプログラムの後の段階ではアクセスされないかも
知れない。逆に、プログラムの中間段階で頻繁に使用さ
れる記憶場所はプログラムの初めと終の部分では殆ど使
われないかも知れない、そこで、キャッシュ28の内容
を主メモリー16から頻繁に更新する必要があり、且つ
、キャッシュ28と5CU20との間の通信が効率的通
信とする必要がある。
5CU20は、色々なシステム装置を、従来からのコン
ソール機能を行なうサービスプロセッサー装置5PU3
0へも接続する。5PU30は状況判定及び処理システ
ムの全体的動作の制御を行なう、特に、5CU20は5
PU30に、複数のCPUとの通信手段を提供し、CP
U内の全ての記憶素子へのアクセスを提供する。
SCU’20に接続された全てのシステム装置間の効率
的通信は、コンピューターシステム1oの並列動作を最
適化するために決定的に重要である。
Iloはメモリーを参照することが出来、CPUはメモ
リーを参照することが出来、CPUはIloを参照する
ことが出来るが、交通の大半はCPUとメモリーとの間
で行なわれる。5CU20はシステム全体に亘って全て
のメツセージパケットの中央スイッチングステーション
である。
ここで第2図を参照すると、5CU20及びCPU12
及びその対応信号間のインターフェースが示されている
。信号は各々単一の線で表わされているが、実際にはノ
イズカップリングを減少させるために信号は差動対とし
て送信される。更に、インターフェースには直列終端エ
ミッタ結合論理が使われるので、該線はいずれも2方向
性ではない、インターフェースは、同じ種類の信号を送
るために各方向に別々の線を有する0例えば、インター
フェースは、CPUからSCUヘデータを送るために6
4本の線を、SCUからCPUヘデータを送るために6
4本の線をそれぞれ有する。
これら64本の線の組の各々は完全なカッドワードのデ
ータ(8バイト)を単一のクロックサイクルで送ること
を可能にするものである。CPU及びSCUの両方に共
通の信号を最初に説明し、次に各装置に特有の信号につ
いて説明する。パリティ信号もデータ信号に伴う、パリ
ティ信号も、両方の装置により別々の線で送られる。デ
ータパリティは4ビット幅であり、各ビットはデータの
ワード(2バイト)について奇数パリティを表わす。
受取り側の装置は受け取ったデータのパリティを計算し
、この計算したパリティをその対応するデータパリティ
信号と比較する。これら二つの信号が若し異なっていれ
ば、受取り側装置はエラー信号を生成し、この信号はエ
ラー回復シーケンスを開始させる。
各装置は4ビツトコマンドフイールドも送出する。該コ
マンドフィールドは16個の別々のコマンドを包含し、
これは受取り側装置に独特の機能を実行させる0表1に
、16個のコマンドと、それに対応してSCUがCPU
へ発する4ビツトコードとを掲載しである。
表   1 GET  DATA  WRITT[!NGET  D
ATA  Rf!AD GET  DATA  INVALIDATERETU
RN  DATA  READRf!TURN  DA
TA  IIRITTBNOKE  TOWRITE 64パイ ロ4パイ ロ4パイ ロ4パイ ロイバイ ト長 ト長 ト長 ト長 ト長 0 1 1 0    INVALIDATE!  R
EAD  BLOCKo 111    RETURN
 Ilo REG DATA   4バイト長1 0 
0 0    RETURN  READ  I!RR
OR5TATUS1 00 1    LOCK AC
KNOWLt!DGE1 0 1 0    MEMO
RY READ NXMl 01 1   110 R
EAD NXMl  1 00    LOCK  D
ENII!D1 1 0 1    INVALIDA
TE WRITTEN  BLOCKl  1 1 0
   0NUSED 1 1 1 1   0NUSED GET DATA畦ITTENはIloが要求下データ
がCPU内にある時にSCUが発するコマンドである。
SCUはこのコマンドを、所望のデータを内蔵している
CPUへ送り、そのデータを要求側■10へ渡す。タグ
記憶は変更されない。
GET DATA READは、一つのCPUが要求し
たデータがあって他のCPUに書き込まれている時にS
CUが発するコマンドであるが、要求側CPUのみに読
まれるべきものである。データは要求側CPUに転送さ
れて、元のCPU内では「読まれた」とマークされる。
Gl!T DATA INVALIDATEはCPUが
要求していたデータを他のCPUから検索するためにS
CUが発するコマンドである。しかし、この場合、要求
側CPUは、該データが要求側CPUキャッシュに置か
れた後それへ書き込むことにより、該データを変更しよ
うとする。データ整合性問題を回避するために、第1C
PU内にあって書き込まれてあったデータは、要求側C
PUに転送され、その後、そのデータの旧形がそのデー
タの最新の形であると着像されるのを防止するために無
効にされる。データを無効にするために、CPUはキャ
ッシュ28のタグRAM32の適当な記憶場所にある単
一のビットをセットする。
Rf!TURN DATA Rf!ADは、メモリーか
ら読み出されたデータを戻すためにSCUが発するコマ
ンドである。
RETURN DATA畦ITTE!Nは、CPUが書
き込んだか又は変更したデータを戻すためにSCUが発
するコマンドである。
OK To WRITt!は、先に読み出しのみを目的
として検索されていたデータに書き込むCPU要求に応
じて発せられるコマンドである。換言すれば、CPUは
今、書き込みを必要とするとは思われないデータへ書き
込むこをを望む、そこで、SCUは、単に、他のCPU
を検査して、他のCPUがそのデータへ書き込みをする
か否か判定する。実際のデータをCPUへ戻す必要はな
く、書き込みを許す。
INVALIDATE READ BLOCKは、先に
読み出しのみを目的として検索されてあったデータのブ
ロックについての有効ビットをリセットするコマンドで
ある。これは、他のCPUが書き込みを目的として同じ
データブロックを検索することを望む時に発生する。そ
こで、データ整合性問題を回避するために、該読み出し
ブロックは無効にされる。他のCPUがそのデータを変
更する意志を持ってそのデータを要求したので、第1 
CPUに維持れているそのデータの形は、同様に修正さ
れたデータではなければ、異なるであろう。
RETURN Ilo REG DATAは、指定され
たI10レジスターのデータに対するCPUの要求(R
EADIlo REG)に応じてI10レジスターデー
タを戻すために発せられるコマンドである。
RET[lRN R11!AD HRROR5TIT[
lSは読み出しエラー状況情報を戻すために発せられる
コマンドである。
LOCK ACKNOhLEDGE及びLOCK DE
NIEDは、CPUによるロック要求に応じてSCUが
発する二者択一の信号である。ロックコマンドは、イン
ターロック命令の読み出し部分を実行するためにCPU
が使うコマンドである。CPUは、その要求が許可され
たことを示すLOCK A(JNOWLHDGII!信
号で、又は、逆に、アクセスが先に他のCPUに対して
許可された時はLOCK DENIEDで応答する。
MEMORY及びIlo READ NXMは、CPU
が、存在しない記憶場所及びI10場所を読む試みをし
た場合にSCUが発するコマンドである。CPUが物理
的には存在しない参照場所を生成することは可能である
。コンピューターシステムを実際に実施するときは、ア
ドレス指定可能な記憶スペースは一般に実際の物理的記
憶装置のサイズより大きい。例えば、32ビツトアドレ
スフイールドは4ギガバイトの記憶場所を特定すること
が出来る;しかしコンピューターシステムの予定された
用途の故に、物理的には僅かに1ギガバイト分のメモリ
ーが存在するに過ぎない、従って、この1ギガバイト分
の物理的メモリー外のメモリー参照は、SCUがNXM
コマンドを送る結果となる。
INVALIDATE WRITTEN BLOCKは
、INVALI[1ATI!RE!AD BLOCK信
号とほぼ同様であるが、この信号は、書き込みの目的で
先に検索されてあったデータブロックを無効にするもの
である。これは、I10直接メモリーアクセスがCPU
キャッシュの書き込みされたブロックと矛盾する時に発
生する。
同様に、表■には、CPUがSCUに対して発する16
個のコマンドが掲載されている。
表 ■ READ  REFILL WRITE REFILL READ  HEFILL  LINKHDWRITE
 REFILL  LINKHD讐RITE  REF
ILL LO(JWRITE  REFILL  UN
LOCKS引fP 阿RITEBACK LONGWORD  WRITE  UPDATERE
AD  Ilo REG 賀RITB  Ilo  REG          
        4バイト長LINKED  WRIT
EBACK LONG賀ORD  WRITE  UPDATE  
LINKHDINVALIDATE         
          キャッシュ掃引縁RITE  R
EFILL  LINK  LOCKUNLOCに NUSED READ REFILLは、CPUがメモリー読み出し
を試みたが記憶場所がキャッシュ28に存在しなかった
時にCPUが発するコマンドである。SCUは、このコ
マンドに応じて、所望のデータブロックを取り出し、そ
れを要求側cpuに戻す。若しCPUがその記憶ブロッ
クへの書き込みを望むならば、CPUはその許可をSC
Uから得なければならない。
WRITEREFILLは、書き込みにより変更しよう
としているデータをメモリーから検索することを希望し
ている時に発せられるコマンドである。 cpuは、二
つの別々の理由からこのコマンドを発する。
第1に、畦ITHRf!FILLは、CPUがデータを
キャッシュ28内のブロックへの書き込みを試みたが、
そのデータブロックがその中に存在しなかった時に発せ
られる。SCUはそのデータブロックをキャッシュ28
に戻し、CPUは、指定された記憶場所の該データブロ
ック内への書き込みを行なう。
このコマンドを発する第2の理由は、CPUがキャッシ
ュ28内に存在するデータへの書き込みを試みるが、R
EAD REFILLの結果として存在する時である。
この場合、SCUは、そのタグRAMの組を参照して、
そのCPU内のそのデータブロックの状況が読み出し専
用であることを発見する。
SCUは再補充データ(refill data)を送
らず、OK TOWRITE信号を戻すが、これはCP
Uの書き込み動作を許可する。この点では、メモリーア
クセス矛盾を防止するためにSCUが各CPUのキャッ
シュ28内に格納されている各データブロックのリスト
を維持することを理解すれば充分である。一般に、SC
Uは、同じメモリーブロックのコピーがLONGWOR
D WRITE LIPDATE又は−RITE!RE
FILLコマンドの結果として存在するならば、複数の
CPUが該コピーを内蔵することを許さない。
この規程は、CPUがそれ自身のキャッシュからデータ
の陳腐なコピーを誤って読み出すのを防止するために実
施される0例えば、他のCPUがその同じデータのコピ
ーへ書き込みをする能力を持っていれば、最初のCPU
は、同様に書き込みされていなかった旧いデータを読み
出す。
READ REFILL LINKEDは、READ 
REFILLと同様のCPUが発するコマンドであるが
、この場合には、この再補充(refill)に書き戻
しくhr i teback)が伴う。換言すれば、再
補充データにより上書きされるべきキャッシュデータは
先にCPUにより書き込まれてあったのである。CPU
がそのデータを変更してあったので、それはその現在の
形でそのキャッシュ場所に存在するだけである。従って
、それは、若し再補充により上書きされれば、失われる
ことになる。従って、CPUは、その置換されるデータ
を主メモリー16に書き戻す規程を持っている。この書
き戻しは、再補充が終った直後になされる。従って、R
EAD REFILL LINKHDは、単に、それが
現在は再補充を行なっているが、その直後にざき戻し動
作が行なわれることをSCUに通知する。
WRITE REFILL LINKHDは、再補充デ
ータをCPUが書き込みに利用可能であるという点を除
いてR1!AD REFILL LINKf!Dと同様
のCPUが発するコマンドである。換言すれば、畦IT
E REFILL LINKEDは、CPUがキャッシ
ュ28に書き込みを試みたが失敗した時に開始される。
従って、再補充データは、キャッシュ28に格納された
直後に変更される。
畦ITE Rf!FILL LOCKは、インターロッ
ク命令の読み出し部分が実行されるべき時にCPUが発
するコマンドである。同様に、畦TTE REFILL
 UNLOCKは、インターロック命令の書き込み部分
が実行されるべき時にCPUが発するコマンドである。
インターロック命令について更に後述する。
SWI!EP WRITII!BACKは、エラーが発
見されて、CPUが全ての書き込み済みデータブロック
を主メモリーへ送ることを希望する時にCPUが使うコ
マンドである。該コマンドは、キャッシュの「掃引」中
に主メモリーへ送られる各「書き込み済み」ブロックに
ついて発せられる。掃引は一般的には検出されたハード
ウェアのエラーに応じて行なわれる。
LONGWORD縁RITE UPDATEは、CPU
が位置合わせされたロングワード(longword)
を無効なプロッりに書き込んだ直後にCPUが発するコ
マンドである。該コマンドは、SCUに、該CPUのタ
グ記憶装置のコピーを更新させる。
READ  Ilo  REGは、指定された■10レ
ジスターに内蔵されている情報が、CPUで現在実行し
ているプログラムにより希望されている時にCPUが発
するコマンドである。このコマンドは、READ RE
FILLコマンドとほぼ同様であるが、記憶場所にでは
なくてI10レジスターにアクセスする。4バイトに及
ぶデータが戻される。
アドレスフィールドは38ビツトアドレス(<20:2
〉)になるが、ビット<33 : 30>はマスクフィ
ールドになる。読み出し再補充とは対照的に、SCU内
のタグ記憶は、これらのアドレスに対応する項目を持っ
ていないので、変更されない。
WRITE Ilo  REGは、CPUが現在実行し
ているプログラムが、I10レジスターへデータを書き
込むことによりそのデータを外部装置へ送ることを希望
する時にCPUが発するコマンドである。
LINKED賀RITEBACKは、書き込み済みブロ
ックが読み出し再補充、書き込み再補充、又はロングワ
ード書き込み更新と置換される時にCPUが発するコマ
ンドである。
LONG阿ORD WRITEUPDATII! LI
NK[iDは、CPUが先にそのブロックに書き込まれ
てあった成る個数のバイトを置換することを除いて、L
ONGWORD WRITEUPDATII!と同様の
CPUが発するコマンドである。
従って、CPUの書き込みは、必然的に書き戻しを生成
し、そのデータの喪失を防止する。
INVALIDATf!は、エラーが検出されてcPU
がそのキャッシュを掃引する時にCPUが発するコマン
ドである。CPUは、書き込まれる各ブロックについて
は5I14EEP賀RITEBACKを、読み出された
状況である各ブロックについてはINVALIDATE
を送る。
WRITE REFILL LINK LOCKは、ロ
ックについての読み出しが書き戻しの原因となることを
除いてWRITE REFILL LOCKと同様のC
PUが発するコマンドである。
第2図に示されている様にSCUとCPUとの間でやり
取りされる共通の信号に再び目を転じると、COMMA
ND PARITV信号はコンマントフィールドについ
ての奇数パリティと、個々の信号のコレクションとを提
供する。SCUからCPUへのコマンドパリティ信号は
、次の信号即ちCOMMAND FIELD。
W旧C1l SET 5LOAD COMMAND、C
OMMAND BUFFII!RAVAILABLE!
 5SEND DATA 、及びFATAL ERRO
R信号についての奇数パリティを反映する。同様に、C
PUからSCUへのCOMMAND PARITY信号
は、次の信号即ちCOMMAND FIELD 、 W
HICII SET 、 LOADCOMMAND S
COMMAND BUFFERAVAILABLE、及
びDATAREADY信号についての奇数パリティを反
映する。
各CPUに維持されているキャッシュ28は2路セツト
連想である。これは、各主メモリー記憶場所について2
個の可能な記憶場所がキャッシュ28内に存在すること
を意味する。CPUは、その2個の記憶場所のうちのい
ずれを使うか決定するアルゴリズムを使用する;しかし
該アルゴリズムの動作はCPUに対しては自律的である
。従って、SCU及びCPUは、いずれも、コマンドが
受信された時に他方が参照するセットが分からない。従
って、rWHIcHSll!T J信号も、該コマンド
が参照するセットを示すために送られる0例えば、アサ
ートされた値はセット1を指示し、アサートされない値
はセット0を指示する。
LO^D COMMANDは、コマンドフィールド及び
アドレスフィールドを反対側装置ヘクロソクスル。この
信号は、付随するコマンド及びアドレスフィールドを受
け取るのに利用可能なバッファーが反対側装置にある場
合に限ってアサートされる。CPUは唯一のコマンド及
びアドレスバッファーを内蔵しているに過ぎない。従っ
て、SCUは単一のコマンドを送ることが出来るだけで
あり、その後はCPUがそのコマンドバッファー利用可
能信号をアサートするまで待機しなければならない。一
方、SCUは各CPUについて3個のコマンド及びアド
レスバッファーを内蔵する。従って、各CPUはSCU
がそのコマンドバッファー利用可能信号を戻すのを待た
なければならなくなる前に3個に及ぶコマンド/アドレ
ス対を送ることが出来る。
SCU及びCPUは、共に、そのバッファーが空になっ
て別のコマンド/アドレス対を受け取る用意が出来てい
る時に、コマンドバッファー利用可能信号をアサートす
る。
明らかに、SCU及びCPUは共にそのデータ及びコマ
ンドフィールドと共にアドレスを送ることが出来なけれ
ばならない。アドレスフィールドは、メモリー参照がア
クセスしようとしている記憶場所又はキャッシュ記憶場
所を指示する。この特別の用途では、物理的メモリーは
4ギガバイトの大きさとなることが出来る。従って、主
メモリーの全てをアドレス指定するために、アドレスフ
ィールドは少な(とも32ビツト幅でなければならない
、しかし、アドレスフィールドを送る通信線は16ビツ
ト幅に過ぎないので、アドレス全体を送るには2サイク
ルを要する。アドレスの一半部はコマンドと同じクロッ
クサイクルで送られ、アドレスの他半部は次のクロック
サイクルで送られる。更に、SCUとCPUとの間での
データの転送は64バイトブロツクで行なわれ、アドレ
スの下位3ビツトは、カントワード内のバイト場所を指
示するだけであるので、無視することが出来る。アドレ
スは、64バイトブロツク内のどのカッドワードへのア
ドレスであることも出来る。
アドレスフィールドの精度を保証するために、SCU及
びCPUは共にアドレスフィールドと共にパリティ信号
を出さなければならない。アドレスパリティフィールド
は4ビツト幅であり、各パリティビットは16ビツトア
ドレスの4ビツトについて奇数パリティを提供する。
SCU及びCPU間の最後の共通信号はBEGIN−N
ING OF DATA信号である。SCUは一触にデ
ータを64バイトブロツクでCPUへ送る。データフィ
ールドは8バイト幅であるので、転送を完了するには8
個の連続するクロックサイクルを要する。
BEGINNING OF DATA信号は、これら8
個のサイクルのうちの最初のサイクル中にアサートされ
、3サイクルによりLOADCOMMAND信号の後を
継ぐ。
インターフェースのSCUからCPUへの部分は、それ
に特有の3個の信号即ち5ENODATA 。
FATAL ERROR、及びINTERRUPT C
0DE信号を含む。
5END DATAは最終的握手信号であり、SCUは
該信号をアサートしてCPUにその書き戻しバッファー
から又はそのキャッシュから直後にデータを送り出させ
る。FATAL ERRORは、SCUが致命的エラー
を検出し、且ついまにも5PU22へのアテンションラ
インをアサートしようとしている時にアサートされる信
号である。アテンションライン信号は5PU22にエラ
ーからの回復を開始させる。FATAL ERROR信
号は4個のCPUの全部に同時に送られ、CPUに処理
を停止させる。最後のSCUからCPUへの信号は割り
込み信号である。単一の線が使用されて割り込みコード
がシリアルに符号化される。開始ビットに、7個の連続
するサイクルで割り込みコード、該割り込みコードを横
断するパリティビット、停止コードが続く。
インターフェースのCPUからSCUへの部分は、それ
に特有の2個の信号即ちDATA READY及びLO
NGWORD M^SKを含む、 DATA READ
Y信号は、5ENDDAT^信号に対して随伴握手信号
となる。DATA READYは、CPUがSCUから
のGET  DATAコマンドに応じてデータを受け取
った時にCPUによリアサートされる。SCUは、DA
TA READY信号を受け取るまでGET DATA
 WRITEBACKに必要とされる資源を留保しない
ので、この信号を使うことでSCUの資源をより良く利
用することが出来る。
LONGWORD MASK信号は、データの各カント
ワードと共に送られ、データの該カッドワード内の2個
のロングワードの各々の状況を、即ちそれをメモリーに
書き込むべきか否かを指示する2ビツト幅のフィールド
である。
この点で、信号の相互作用とSCU及びCPU間のデー
タの流れは、例示により良く理解することが出来る0例
えば、GET  DATAプロトコールを考察する。C
PUがSCUからGET DATAコマンドを受け取る
時にたどられる可能性のある4つのシナリオがある。第
1に、GET  DATAアドレスがCPUキャッシュ
でヒットし、書き戻しバッファーが空であるとする。す
ると、CPUは所望のデータを書き戻しバッファー内に
移動させ、DATA Rf!ADYを送る。SCUはこ
のDATA READY信号に対して5END DAT
A信号で応答する。その後、CPUはBEGINNIN
G OF DATA信号及び実際のデータで応答し、書
き戻しバッファーを空にする。
第2のシナリオでは、GET DATAアドレスがキャ
ッシュでヒツトするとする;しかじ、書き戻しバッファ
ーは満杯である。この時、SCUは5ENDDATA信
号を送り、書き戻しバッファーに格納されているデータ
ではな(てGET DATAアドレスに格納されている
データを検索しようとする。この時CPUはBIliG
INNING OF DATA信号と、書き戻しバッフ
ァーをバイパスするキャッシュから直接の実際のデータ
とで応答する。その後、SCUは、書き戻しバッファー
に内蔵されているデータに対する5ENODATA信号
で応答し、CPUはBEG INN INGOF DA
TA信号と実際のデータとで応答し、書き戻しバッファ
ーを空にする。第3のシナリオでは、GET DATA
はCPUキャッシュ内でミスするが、書き戻しパンファ
ーは満杯である。この場合、GETDATAコマンドに
ついてのデータは既に同時に書き戻しバッファー内にあ
ると仮定する。メモリーアクセス装置26はGET D
ATAコマンドのアドレスを書き戻しバッファーに既に
あるデータのアドレスと比較しない、むしろ、CPUは
DATA READY信号を送る。SCUは5END 
DATA信号で応答し、CPt1はBBGINNING
 OF DATA信号と書き戻しバッファーからの実際
のデータとを送る。その後、SCUは先のGET DA
TA要求に対する第2SENODATA信号を送り、C
PUはBEGINNING OF DATA信号と書き
戻しバッファーからの実際のデータとを送り、バッファ
ーを空にする。この場合、CPUは、データをSCUへ
2回送るまでは書き戻しバフファーが上書きされること
を許可しないことに注意するべきである。
第4のシナリオでは、GET DATAアドレスはキャ
ッシュでミスし、書き戻しバッファーは空である。
この様な場合は発生するべきではなく、CPUによりエ
ラーとしてフラグで示されなければならない。
第3図には、インターフェースのCPU部分のブロック
図が示されている。メモリーアクセス装置26のキャッ
シュ28は一組のタグRAM32、−組のデータRAM
32、及びキャッシュタグ管理装置36を包含するもの
として示されている。
前述した様に、キャッシュ28は2路セツト連想である
。従って、データRAM及びタグRAMは半分に分割さ
れ、各半分は1024個の異なる記憶場所のアドレスを
格納することが出来る。データRAM34はRAM32
の特定された場所に格納されている実際のデータを内蔵
している。物理的アドレスのビット33:6はキャッシ
ュタグ管理装置36に送られる。アドレスのビット15
:6はタグRAM32へ送られてタグRAMをアドレス
指定する。ビット33:16はタグRAMの内容と照合
される。従って、キャッシュ28の構成は、主メモリー
16の迩かに大きな部分についての2記憶場所を提供す
る様になっている。
キャッシュ28の動作は、例えば、実行装置22による
メモリー要求から始まる。所望の記憶場所の物理的アド
レスはキャッシュタグ管理装置36に送られ、該装置3
6は、その所望の記憶場所に対応するデータがデータR
AM34内に存在するか否か判定する。該アドレスが格
納されているかも知れない2個のタグRAM場所の各々
は、続けて呼び出され、メモリー要求の物理的アドレス
と比較される。「ヒツト」又は「ミス」が、キャッシュ
タグ管理装置、36により、メモリーアクセス装置26
内の全てのデータの流れを指揮するデータ交通管理装置
(DTM)38に通知される。
同時に、物理的アドレスのビット15:0もデータRA
M34に送られる。データRAM34は、両方の対応す
る記憶場所の内容をDTM3Bへ送ることにより、該ア
ドレスに応答する。キャッシュタグ管理装置36からの
「ヒット」信号は、キャッシュ28内のどちのセットが
所望のデータを内蔵しているかということに関する情報
も包含している。従って、「ヒツト」の場合、DTM3
8は、要求されたデータに対応する、データRAM34
により配送されたデータのセットを適切に選択する。逆
に、キャッシュ「ミス」の場合、キャッシュタグ管理装
置38は主メモリー16から記憶再補充を開始する。
メモリーアクセス装置26は書き戻しバッファー(WB
B)40も包含し、該書き戻しバッファーは、WRIT
I!BACKコマンドに関連して前述した様に、キャッ
シュ再補充中データの喪失を防止するために使われる。
WBB40は、キャッシュタグ管理装置36に接続され
、これから1,0NGWORD MASKを受け取る。
WBB40は、07M38にも接続され、これからDA
TA FIELD及びPARITY FIELDを受け
取る。WBB40は、インターフェースを介して5CU
20へLONGすORD MASK 、 DATA F
lf!LD及びPARITY FIELDを送る。
キャッシュタグ管理装置36は5CU20からも情報を
受け取る。この情報転送を容易にするために、キャッシ
ュタグ管理装置36は一対の「1−深」バッファー46
.44を包含する。バフファー46は、コマンド情報を
保持するコマンドバッファーであり、バッファー44は
アドレスパンファーである。コマンドフィールドは4ビ
ット幅であり、単一のクロックサイクルで送られるので
、コマンドバッファー46は僅かに4ビット幅である。
同様に、アドレスフィールドは32ビット幅であり(連
続する2個の16ビツトワードとして転送される)、ア
ドレスバッファー44は32ビット幅で、アドレスフィ
ールド全体を収容する。
07M38は単一の再補充バッファー42を内蔵する。
その大きさは、1項目当り8バイト幅であり、8項目の
深さである。SCUからDTM38へのデータの送信は
8個の連続するサイクルで行なわれ、64バイト再補充
を達成する。
SCUは1群の関連した情報を転送した後、追加の情報
を送る前は、キャッシュタグ管理装置36がバフファー
42.44.46をクリアするまでは待機しなければな
らないことに注意するべきである。
第4図は、インターフェースのSCU部分のブロック図
である。インターフェースのCPU部分とは異なって、
SCUは複数のCPUの各々から情報を受け取るために
複数のバッファを包含する。
好都合なことに、SCUは、各CPUから情報を受け取
るために、3個のアドレスバッファー 1個のデータバ
ッファー、及び3個のコマンドバッファーを包含する0
例えば、SCUは合計12個のアドレスバッファー60
.4個のデータバッファー62、及び12個のコマンド
バッファー64を有する。第4図には各種類のバッフブ
ーが1個だけ示されているが、各種類の残りのバッファ
ーもほぼ同一の構成である。
12個のアドレスバッファー及びコマンドバッファーの
各々は、それぞれr12−IJマルチプレクサ66.6
8.70に接続された出力を有する。調停論理72は、
アドレスマルチプレクサ66及びコマンドマルチプレク
サ70の選択入力を制御する。調停論理72は、調停論
理により選択されたコマンドを実行するのに必要なデー
タ経路をCPU、I10装置、及び主メモリー間に接続
形成するデータマルチプレクサ68も間接的に制御する
。データマルチプレクサ6日は好ましくは別々のデータ
クロスバ−コントローラ(第5図の69)により制御さ
れるクロスバ−スイッチマトリックスから成る。調停論
理72により実施される好適な調停方式は、上記の「マ
ルチプロセッサーシステムにおいてシステム制御装置を
使って通信要求を調停する方法及び手段」と題したFl
ynn外の     に出願された米国特許出願第号に
記載されており、これを参照により本書の一部とする。
好適なデータマルチプレクサ68及びこれに付随するデ
ータクロスバ−コントローラ(第5図の69)は、上記
の「多重処理システムにおけるシステム装置間でのデー
タトランザクションのためのモジュラ−クロスバ−相互
接続ネットワーク」と題した上記のCh innasw
ay外の出願された米国特許第号に記載されており、こ
れを参照により本書の一部とする。本発明に関しては、
調停論理72と、データマルチプレクサ又はクロスバー
68により提供される接続資源との関連する特徴を、C
PUから発せられてSCUに認知されるコマンドの実行
と関連させて以下に説明する。
各CPUからのLOAD COMMAND信号はインタ
ーフェースを横断して調停論理72の入力に送られる。
前述した様にCPUのLOAD COMMAD信号はコ
マンドフィールド及びアドレスフィールドをSCU内ヘ
内口クロック。しかし、各CPUの動作は自律的である
ことを想起するべきである;従って、全てのCPUから
同時にLOADコマンドを受け取る可能性がある。明ら
かに、SCUはこれら4個のコマンドを並列処理するこ
とは出来ず、むしろ、これら複数のコマンドを処理する
順序を選択する。
調停論理72は、この優先順位を決定し、コマンドの一
つを選択して直ちに処理を開始する。更に、利用可能な
バッファーが合計12個あるので1個のコマンドがSC
Uにより実行されている間に合計11個のコマンドが処
理を待っていることもあり得る。
調停論理72の出力はコマンドマルチプレクサ66及び
アドレスマルチプレクサ70の選択入力に接続されてい
る。従って、調停を勝ち取ったLOAD COMMAN
Dは、その対応のアドレスバッファー及びコマンドバッ
ファーを選択させマルチプレクサ66.70を通過させ
るという結果をもたらす。
アドレスフィールドはメモリーマツピングRAM74に
受信され、該RAMはRAMアドレスを、SCUが使う
場所定義に変換する。主メモリーは3個のレベルの階層
即ち装置、セグメント、バンク、の階層に組織されてい
る。2個の記憶装置があり、その各記憶装置は2個の記
憶セグメントを包含し、4個の記憶セグメントは各々2
個の記憶バンクを有する。そこで、合計2個の記憶装置
と、4個の記憶セグメントと、8個の記憶バンクとがあ
ることになる。実際上、メモリーマツピングRAM74
の出力は、8個のバンクのうちのどのバンクがアドレス
指定されるかを定義する3ビツトフイールドである。
コマンドマルチプレクサ70の出力はコマンドデコーダ
ー76に接続されている。コマンドデコーダー76は調
停論理72から選択信号も受け取る。これら2個の信号
は、組み合わせられて、該デコーダーが4ビツトコマン
ドフイールドの意味を判定するのを可能にする。選択信
号は、どの装置が該コマンドを発したのかを特定するの
に必要である。これは、CPU以外の装置もコマンドを
発することが出来、そのCPU以外の装置のコマンドは
CPUコマンドとは異なるので、重要なことである。従
って、コマンド及びその出所を「知る」ことにより、デ
コーダー76は、そのコマンドの意味を判定する。
3ビツトメモリーマツピングフイールド及び解読された
コマンドは必要資源論理78に送られる。
必要資源論理78は、現在のアドレス上の現在のコマン
ドを実行するのに必要とされるSCU資源を判定する主
要機能を果たす。該SCU資源は、例えば、指定された
記憶場所で所望のコマンドを行なうためにSCUが使う
記憶バンク、データ経路等を含む。必要資源論理の出力
は、必要とされる特定の資源に対応する様にビットが中
にセットされたベクトル化されたデータである。
資源検査論理80は必要資源出力及び資源利用可能ベク
トル化入力とを受け取る。資源利用可能入力は、必要資
源出力に類似しているが、必要な資源を反映するのでは
なくて、現在使用されていない資源を指示する。SCU
が使用する利用可能資源の各々は、資源が活動中である
時にその資源によりセットされる出力(使用中ビット)
を有する。全ての資源使用中ビットの組み合わせは資源
利用可能ベクトル化信号を形成する。資源検査論理80
は、必要資源を利用可能資源と比較する。
コマンドを適切に実行し得る様に、所望の資源が全て利
用可能であれば、論理80はOK倍信号送り、該コマン
ドの実行が開始される。さもなければ、論理80はBU
SY信号を送出する。このBUSY信号は調停論理72
に戻されて、選択されたコマンドがこの時には実行不可
能であることと他のコマンドが選択されるべきこととを
示す。
実行不可能なコマンドは引っ込められず、単にその対応
のバッファーにとどまり、そのLOAD COMMAN
Dは後のサイクル中調停を競う。
該OK倍信号、データクロスバ−コントローラ(第5図
の69)に信号を送ることによって所要のデータ経路の
設立を開始させる。メモリー要求の実行のために、該O
K倍信号SCUにおいて他の2個の動作も開始させる。
第1に、メモリー要求が開始される。しかし、現在のア
ドレスに対応するデータが他のCPUのキャッシュ内に
あることもあり得る。従って、OK倍信号主メモリー1
6からではなくてそのCPUからデータを検索する試み
も開始する。データ整合を目的として、他のCPUキャ
ッシュ内に存在するデータが検索されて、該データの最
も広く使われている形が使われていることを確かめる。
更に、該データが他のCPUのキャッシュ内に存在する
か否か判定するプロセスは2クロツクサイクルの動作を
必要とするが、主メモリーからデータを検索するにはも
っと多数のクロックサイクルが必要である。従って、他
のキャッシュ内に存在するデータが主メモリーのデータ
と同一である時も、該データを該CPUキャッシュから
検索する動作の方が早い。
該データが他のCPUのキャッシュ内にあるか否か分か
る前にメモリー要求を開始する目的は、主メモリー要求
に要する実際の時間を短縮するためである0例えば、デ
ータが他のCPU内に存在しなければ、主メモリー要求
の継続が許されると共に、他のCPUのキャッシュ状況
が分かる前に2クロツクサイクル処理を開始している。
逆に、若しデータが他のCPUのキャッシュ内にあれば
、該メモリー要求は打ち切られる。従って、キャッシュ
矛盾がない時には、主メモリー要求を早期に開始するこ
とは有益な結果をもたらす。
メモリー要求に応じて主メモリーからではなくてCPU
キャッシュからデータを検索するために、資源検査論理
80のOK小出力タグ参照キュー82の入力に供給され
る。タグ参照キューは、メモリー参照要求を一時的に格
納する。キャッシュ参照動作を完了するには2クロツク
サイクルを要するのに対してLOAD COMMAND
は各クロックサイクルで調停され得るから、−時的格納
が望ましい。
従って、調停論理72の動作中断を防止するために、−
時的記憶場所が必要である。タグ参照キュー82は4個
の連続するキャッシュ参照要求を維持する様に構成され
ていることが好ましい。
該キューに維持される情報は、このキャッシュ参照に対
応するLOAD COMMANDが調停を勝ち取った時
に調停論理72から送出される選択アドレス信号を含む
この選択アドレス信号は、タグアドレスマルチプレクサ
84の選択入力に送られる。タグアドレスマルチプレク
サ84への入力は、アドレスマルチプレクサ66への入
力と共に共有される。従って、タグアドレスマルチプレ
クサ84の出力は、その対応のLOAD COMMAN
D7!l<調停を勝ち取った時は、アドレスマルチプレ
クサ66の出力と同一である。
即ち、タグアドレスマルチプレクサ84の出力は、現在
のタグ参照に対応するアドレスである。
CPUが要求したデータが他のいずれかの並列CPUの
キャッシュ内に存在するか否か判定するために、タグア
ドレスマルチプレクサ84の出力は、CPUキャッシュ
の各々に内蔵されているデータのアドレスと比較される
。タグアドレスマルチプレクサの出力のビット15:6
はタグRAM86の組に接続される。この10ビツトア
ドレスは、CPUから選択されたアドレスに対応するタ
グRAM場所を特定する。タグRAM86は、他の並列
CPUのうちの一つのキャッシュに現在格納されている
データのアドレスのビット32:16を送出する。同時
に、タグアドレスマルチプレクサ84からのビット32
:16は、タグRAM86からの検索の終了を待ってい
るバッファー88内に置かれ灸0.アドレスバッファー
88及びタグRAM86の両方からのアドレスの上位1
7ビツトは共に17ビツト比較器90の入力に送られる
。この様にして、比較器90は、タグRAM86に格納
されているアドレスがCPUから要求されたアドレスと
一致する時、アサートされた信号を生成する。逆に、比
較器90は、アドレスCPUとタグRAM86内のアド
レスとの間にミスがある時は、アサートされない値を生
成する。
タグRAM86、アドレスバッファー88、及び比較器
90は4回複製され、一つの場合が各CPUキャッシュ
に対応する。4個の比較器90の各々の出力はマイクロ
シーケンサ92に送られる。
タグRAM86は、CPUのメモリーアクセス装置の各
々に内蔵されているタグRAM32に対応する。タグR
AM86.32は、同一の情報を内蔵し、CPUキャッ
シュに現在内蔵されているメモリーアドレスをSCUが
監視することを可能にする。従って、タグRAM32と
同様のタグRAM86も2路セツト連想である。タグR
AM86がこの様に2路セツト連想であることは、キャ
ッシュ参照動作の完了に2クロツクサイクルを要するこ
との理由を明らかにするものである。タグARM86は
2路セツト連想であるので、比較を行なうためには、そ
のつど、連続するサイクルでセット0及びセットlに格
納されているアドレスを比較する必要がある。
この点で、比較器90からの信号は、単に、一つのCP
Uが要求したデータについて、残りのCPUのキャッシ
ュでヒツトがあるかミスがあるかを示す。ヒットがデー
タ整合性問題を生じさせるか否か判定するために、要求
側CPUにより実行されているコマンドの種類が「ヒツ
トJ CPU内のデータの状況と共に分からなければな
らない。
要求側CPUが−RITE RI!FILLの目的でデ
ータを希望する時は、データが「ヒツトJ CPUに残
ることを許され且つ要求側CPUにも置かれるならば、
データネ整合の危険がある。例えば、若し要求側CPU
が単にREAD REf’ILLを完了することを望み
、且つデータが「ヒットJ CPU内に読み出し状態で
存在するならば、データネ整合問題はない、従って、タ
グRAM86は4個の状態即ち、無効状態、読み出し状
態、部分的書き込み状態及び完全書き込み状態のうちの
一つを示す一対のキャッシュデータビットも格納する。
これらのキャッシュデータビットもタグRAM86から
マイクロシーケンサ92へ送られる。同様に、元のコマ
ンドもタグ参照キュー82に格納され、マイクロシーケ
ンサ92に渡される。
マイクロシーケンサ92は、要求されたデータが並列C
PU年ヤッシュ内に存在するか否か判定し、且つ、若し
そうならば、その要求がデータネ整合問題を引き起こす
か否かを判定するのに充分な入力を持っている。従って
、マイクロシーケンサは、今、資源検査論理80からの
OK信号により開始されたメモリー要求を打ち切るか、
或はメモリー要求の動作継続を許すか、選択することが
出来る。勿論、マイクロシーケンサ92は、要求された
データが並列CPUキャッシュの一つに書き込まれであ
るのが分かった時に限ってメモリー要求を打ち切る。さ
もなければ、メモリー要求はその論理的結論までm続し
、データを要求側CPUに戻す。従って、要求されたデ
ータが並列CPUキャッシュのいずれかの中に存在する
か否か検査する前にメモリー要求を開始することによっ
て、割合に低速のメモリー要求を2サイクル早く開始す
ることが出来る。
第5図を参照すると、マイクロシーケンサ92は手配キ
ュー94に接続されるものとして示されている。この点
で、マイクロシーケンサ92は2個の二者択一の機能を
遂行することが出来る。第1に、マイクロシーケンサ9
2はCPUキャッシュの各々での「ミス」に応じてメモ
リーサイクルが動作を継続して、指示されたアドレスか
ら所望のデータを検索し続けることを可能にする。また
、マイクロシーケンサ92は、ヒツトが検出されたCP
Uキャッシュから所望のデータを検索してそのデータを
要求側CPUキャッシュへ移動させることも出来る。C
PUキャッシュ間でのこのデータ転送を達成するために
は、データ経路、アドレス経路1.コマンド経路等の資
源及びその他の雑多な資源が必要であることが理解され
ねばならない。
それゆえ、この「手配」を実行するために、該「手配」
を達成するのに必要な資源を判定し、その資源が現在利
用可能であるか否か問い合わせがなされなければならな
い。
従って、マイクロシーケンサは、必要資源ベクトルを生
成し、羊のベクトルを手配キュー94に置く。手配キュ
ー94はベクトルに必要とされる資源用の4個の記憶場
所を包含する。周期的に、必要資源手配論理96は、必
要資源ベクトルの一つを手配キュー94から除去してそ
れらの資源を保留し、メモリー始動論理がその同じ資源
を使うことを予防する。従って、必要な資源が現在使用
中であっても、それらを将来の使用されない様に留保し
ておけば、要求側CPU及び「ヒツト」CPUキャッシ
ュ間の所望のデータの移動を達成するために該資源を結
局利用することが出来る様になる。
この様な資源の留保は、この必要資源ベクトル資源検査
論理へ送ることによって達成される。これにより、実際
上、資源論理に対して、これらの資源が現在は利用不可
能であることが示される。
従って、同じ資源のうちの一部を必要とするその後のメ
モリー要求は、資源検査論理から使用中信号を発生させ
、そのメモリー要求を調停論理に戻す。この様にして、
手配を完了するために必要とされる資源と抵触しないメ
モリー要求は継続を許される。一方、手配を完了するこ
とが出来る様に、矛盾するメモリー要求には低い優先順
位が与えられる。
【図面の簡単な説明】
第1図は、コンピュータシステムの最高レベルブロック
図である。 第2図は、SCυ−CPUインターフェースの概略ブロ
ック図である。 第3図は、該インターフェースのCPU1#J御ア一キ
テクチヤ部分のブロック図である。 第4図及び第5図は、該インターフェースのSCU制御
アーキテクチャ部分のブロック図である。 10・・・・・・コンピュータシステム、11.12,
13.14・・・・・・中央処理装置、16・・・・・
・主メモリー  18・・・・・・入出力装置、20・
・・・・・システム制御装置、22・・・・・・実行装
置、24・・・・・・指令装置、 26・・・・・・メモリーアクセス装置、28・・・・
・・キャッシュ、 30・・・・・・サービスプロセッサー装置。

Claims (3)

    【特許請求の範囲】
  1. (1)複数の中央処理装置と、主メモリーと、該中央処
    理装置及び主メモリー間のデータの転送を制御するシス
    テム制御装置と、を有し、該中央処理装置の各々は、該
    主メモリーに維持されているデータの選択された部分を
    内蔵するキャッシュを有するコンピューターシステムに
    おいて一前記システム制御装置は、 該主メモリーの選択されたアドレスに内蔵されているデ
    ータに対する要求を該中央処理装置の一つから受け取る
    手段と、 データ要求を受け取ると、該主メモリーからのデータ検
    索を開始する手段と、 要求されたデータアドレスを、該中央処理装置キャッシ
    ュの各々に内蔵されているデータのアドレスと比較して
    、それらの一致又は不一致を検出するとそれぞれヒット
    信号又ははミス信号を送出する手段と、 該ヒット信号を受け取ると、該データ検索開始手段の動
    作を打ち切る手段と、 ヒット信号を受け取ると、該中央処理装置キャッシュか
    ら要求されたデータを検索し、その検索したデータを要
    求側中央処理装置キャッシュに送る手段と、 該ミス信号を受け取ると、該主メモリーから検索された
    データを要求側中央処理装置キャッシュに送る手段とか
    ら成ることを特徴とするコンピューターシステム。
  2. (2)コンピューターシステムにおいて中央処理装置と
    主メモリーとの間のデータの転送を制御する方法であっ
    て、該中央処理装置は各々、該主メモリーに維持されて
    いるデータの選択された部分を内蔵するキャッシュを有
    し、該方法は、該主メモリーの選択されたアドレスに内
    蔵されているデータに対する要求を該中央処理装置の一
    つから受け取り、 要求されたデータアドレスを、該中央処理装置キャッシ
    ュの各々に内蔵されているデータのアドレスと比較し、
    その間の一致又は不一致を検出したらそれぞれヒット信
    号又はミス信号を送出し、 該ヒット信号に応じて、要求されたデータをそれぞれの
    中央処理装置キャッシュから検索し、その検索したデー
    タを要求側中央処理装置に送り、 該ミス信号に応じて、主メモリーから検索された要求さ
    れたデータを要求側中央処理装置に送るステップから成
    ることを特徴とする方法。
  3. (3)該主メモリーからのデータ検索は、データに対す
    る要求が受信されたことに応じて開始され、該主メモリ
    ーからのデータ検索は、該ヒット信号が受信されたこと
    に応じて打ち切られることを特徴とする請求項2に記載
    の方法。
JP1171742A 1989-02-03 1989-07-03 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置 Pending JPH02207352A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30683789A 1989-02-03 1989-02-03
US306837 1989-02-03

Publications (1)

Publication Number Publication Date
JPH02207352A true JPH02207352A (ja) 1990-08-17

Family

ID=23187088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1171742A Pending JPH02207352A (ja) 1989-02-03 1989-07-03 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置

Country Status (2)

Country Link
EP (1) EP0380842A3 (ja)
JP (1) JPH02207352A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146833A (ja) * 1995-11-21 1997-06-06 Kofu Nippon Denki Kk 緩衝記憶装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0735480B1 (en) * 1995-03-31 2003-06-04 Sun Microsystems, Inc. Cache coherent computer system that minimizes invalidation and copyback operations
US5907485A (en) * 1995-03-31 1999-05-25 Sun Microsystems, Inc. Method and apparatus for flow control in packet-switched computer system
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
US5634068A (en) * 1995-03-31 1997-05-27 Sun Microsystems, Inc. Packet switched cache coherent multiprocessor system
DE69622079T2 (de) * 1995-03-31 2002-10-31 Sun Microsystems, Inc. Verfahren und Vorrichtung zur schnellen Einleitung von Speicherzugriffen in einem cachekohärenten Multiprozessorsystem
DE69628079T2 (de) * 1995-03-31 2004-02-26 Sun Microsystems, Inc., Santa Clara Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind
US5689713A (en) * 1995-03-31 1997-11-18 Sun Microsystems, Inc. Method and apparatus for interrupt communication in a packet-switched computer system
US5710891A (en) * 1995-03-31 1998-01-20 Sun Microsystems, Inc. Pipelined distributed bus arbitration system
JPH1078934A (ja) * 1996-07-01 1998-03-24 Sun Microsyst Inc パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
US6154777A (en) * 1996-07-01 2000-11-28 Sun Microsystems, Inc. System for context-dependent name resolution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53116042A (en) * 1977-03-18 1978-10-11 Nec Corp System controller
JPS55150181A (en) * 1979-05-14 1980-11-21 Nec Corp Information processor
JPS63193230A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53116042A (en) * 1977-03-18 1978-10-11 Nec Corp System controller
JPS55150181A (en) * 1979-05-14 1980-11-21 Nec Corp Information processor
JPS63193230A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146833A (ja) * 1995-11-21 1997-06-06 Kofu Nippon Denki Kk 緩衝記憶装置

Also Published As

Publication number Publication date
EP0380842A3 (en) 1991-06-12
EP0380842A2 (en) 1990-08-08

Similar Documents

Publication Publication Date Title
US5148533A (en) Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US5222224A (en) Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5432918A (en) Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5347648A (en) Ensuring write ordering under writeback cache error conditions
US5404482A (en) Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5023776A (en) Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US5404483A (en) Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
WO1988006760A2 (en) Central processor unit for digital data processing system including write buffer management mechanism
JPH02207352A (ja) 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置
JPS6042502B2 (ja) キヤツシユ制御方式
JPH0670779B2 (ja) フェッチ方法
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
US5339397A (en) Hardware primary directory lock
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
JP3836836B2 (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
CA1325289C (en) Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor computer system
US20040111577A1 (en) High speed memory cloner within a data processing system
US20040111569A1 (en) High speed memory cloning facility via a coherently done mechanism
US6928524B2 (en) Data processing system with naked cache line write operations
AU628531B2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units