JPS62187946A - 多重アクセスを同時に処理するデイジタル・コンピユ−タ - Google Patents

多重アクセスを同時に処理するデイジタル・コンピユ−タ

Info

Publication number
JPS62187946A
JPS62187946A JP61167719A JP16771986A JPS62187946A JP S62187946 A JPS62187946 A JP S62187946A JP 61167719 A JP61167719 A JP 61167719A JP 16771986 A JP16771986 A JP 16771986A JP S62187946 A JPS62187946 A JP S62187946A
Authority
JP
Japan
Prior art keywords
cache
access
address
data
pending
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
JP61167719A
Other languages
English (en)
Inventor
ジョナサン・セス・ブラウ
ロバート・エル・フレデュー
マイケル・エル・ジーグラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARAIANTO COMPUTER SYST CORP
Original Assignee
ARAIANTO COMPUTER SYST 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 ARAIANTO COMPUTER SYST CORP filed Critical ARAIANTO COMPUTER SYST CORP
Publication of JPS62187946A publication Critical patent/JPS62187946A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Abstract

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

Description

【発明の詳細な説明】 (発明が属する技術分野〕 本発明は、並列処理が可能なディジタル・コンピュータ
に関する。
〔従来の技術およびその問題点〕
科学技術用途において典型的に見出される計算の集中度
が大きな適用業務に対する並列処理の応用、特に同じ仕
事の並列処理(即ち、同じ命令およびデータ)において
はほとんど進歩がなかった。
キャッシュはディジタル・コンピュータにおい′て長い
間使用され、1つのキャッシュを各処理装置に割当てて
並列処理に用いられてきた。キャッシュとは、主記憶装
置から選択されたデータのコピーを含む高速メモリーで
ある。処理装置からのメモリーのアクセスはキャッシュ
に入るが、これがその時アクセスされた記憶場所のコピ
ーを有するかどうかを決定する。もしそうでなければ、
キャッシュの「ミス」が生じ、キャッシュは処理装置が
必要とするデータに対する主記憶装置のアクセスを行な
うか、慣例的に新たなアクセスの受入れを停市する。
〔問題を解決する手段〕
並行処理の環境においては、特に同じ仕゛1t(即ち、
同じ命令およびデータ)の各部を連続的に処シュは、(
例えば、主記憶装置のアクセスか要求されていたため)
こむが更に早く完了することができなかった保留中のア
クセスの完了時に作動しながらその時のアクセスを同時
に受入れる能力が与えられることか望ましいことを発見
した。このため、各処理装置に対するメモリーの帯域[
口を可能な限り道かに大きくする。
〔発明の要約〕
望ましい実施態様においては、保留状態のアクセスに対
するブロック・アドレスは、アクセスの完了に必要なス
テップの処方からなる状態コードと共に記憶され、保留
状態のアクセスに対するこの格納されたブロック・アド
レスが主記憶装置から受取った新たな各データ・ブロッ
クのアドレスと比較され、それぞれに対する状態コード
はこのコードの前の状態およびアドレスの結果に基いて
irFび決定され、その時のアクセスのブロック・アド
レスは依然として進行中のく即ち、キャッシュ・メモリ
ーにおいてはまだ使用できない)主時のアクセスのキャ
ッシュの索引か進行中の主記憶装置のアクセスのキャッ
シュの索引と比較されてメモリーからアクセスされたデ
ータのブロックは、その時のアクセスによりデータが探
索さ九ないが、その時のアクセスによってアドレス指定
されたキャッシュの記憶場所に対し書込まれることにな
るデータであるかどうかを判、定し、キャッシュは複数
の部分に分割され、異なる部分に対する複数のアクセス
を同時に受入れることができ、キャッシュの制御ロジッ
クは即時の完了が可能なアクセスを完了するための速動
ロジックと、保留中のアクセスに対する状態コードを最
初に決定しかつ条件が変化するに伴って状態コードを再
び決定する保留中の状態ロジックと、この状態コードか
完了し得ることを表示する時キャッシュ内のデータおよ
びアドレスの経路の制御を行なって保留状態のアクセス
を完了するアクセス完了ロジックとに分割され、同じ処
理装置からの保留状態のアクセスがこれらが最良の状態
で完了し得る順序ではなく、これらが受取られる順序で
完了することを保証するためロジックが設けられ、2つ
のキャッシュ部分かメモリーからアクセスされるデータ
・ブロックをスプリットし、かつ「記憶装置のアドレス
・バスを共用し、これにより他のキャッシュの1MS分
によりアクセスされるブロックのアドレスを検出する。
本発明の他の特徴および利点については、望ましい実施
態様の記述および頭書の特許請求の範囲から明らかにな
るであろう。
〔実施例〕
(要約) システムのブロック図が第1図に示されている。8つの
高速処理装置または計算素子(CE)lOが、2つの中
央処理キャッシュのホード12(各々か4路のインター
リーブされた中央処理キャッシュ(CPキャッシュ)の
2つの四゛ト部からなる)に対してCEおよびキャッシ
ュのボードが接続される背面192(第18図)に位置
するスイッチ14により接続されている。このスイッチ
は、4つのCEのどれでも4つのキャッシュ四半部な同
時にアクセスすることを許容する。このCEは各々、同
時の処理を制御するための同時制御装置(CCU)24
を有する。CCUは、同時制御バス26の両側の他のC
CUと通信する。メモリー・バス16は、キャッシュの
四半部を8つのメモリー・モジュール17(それぞれ8
メカバイト)に対して接続する。また、このメモリー・
バスに対して接続されているのは2つの対話式処理装置
のキャッシュ18であり、その各々が3つの対話式処理
装置(IP)20に対して接続される。各IPはマルチ
パス22として処理し、これに対して周辺装置(図示せ
ず)が接続されている。
本システムは、特に一般的な科学技術計算のため有効な
大域メモリーを共用する、対称的(即ち、マスター/ス
レーブ型ではない)多1[処理コンピュータである。C
Eはヘクトル、(1動小数点および同時命令、ならびに
整数および論理命令を実行することかできる。CEは、
同じ反復構造の人なる反復を同時に処理する(しかし、
こわらため独立的に作動することもできる)。IPは中
速度の対話式処理装置で、整数および論理演算のみを実
行することができ、また入出力の通信量の処理、テキス
ト編集および類似の操作のため使用される。保持される
データ・タイプは、8.16および32ビツトの整数/
論理データ、ならびにI EEE規格の32および64
ビツトの浮動小数点データをCEのみに含む。メモリー
は仮想アドレス指定が行なわれる。CEはキャッシュ・
ボード14を介して大域メモリーをアクセスし、CEは
スイッチ14を介してこのボードと通信する。各CEは
、それ自体の16にバイトの仮想アドレスが与えられた
命令キャッシュを有する。IPは、対話式処理装置のキ
ャッシュ18を介して大域メモリーをアクセスする。
(計算素子) 計算素子(CE)は高速計算を意図されるものである。
CEは同じものであり、かつ1つのシステム内でできる
だけ少なく実装される。いくつのするものは、同時並行
複合体く以下本文におし1ては「複合体」と呼ぶ)に含
まれると言われる。これに関与しないものは、タスクか
ら外されたと言われる(CCUの状態ビットDETAC
HEDは1であり、このようなタスク消去された動作を
示す)。CEは、システムにおいて実行中のジョブ・ミ
ックスが同時並行処理(例えば、コンパイルおよびテバ
ッグ作業)を利用できないジョブならびにこれを利用で
きるジョブ(例えば、本番ジョブ)を含む場合にタスク
消去され得る。タスク消去されたCEは、あたかもこれ
が唯1つのCEL/かないシステムであるかのように作
用し、あたかも1プロセツサ・システムであるかのよう
に同時並行命令を実行する。
CEのブロック図が第3図に示されている。処理装置内
部のバスPIBUS(12ビツト幅)を用いて、CCU
 24、アドレス変換装置、命令処理装置(アドレス装
置と整数論理装置の両方を含み、Motorola 6
8020の命令セットからなる)、およびP I BU
S、ベクトル・レジスタおよび浮動小数点装置(乗算:
(K、除算器および加算器を含む)CEスイッヂ間の回
線として作用するCEスイ・フチ間にデータおよびアド
レスを転送する。;tal制御部(命令パーザ−、マイ
クロ・シーケンサ、およびRAMベースの制御ストアを
含む)は、命令をCCU、命令プロセッサ、ベクトル・
レジスタ、命令キャッシュおよびCEスイッチに対して
与える。CEは、メモリー・スイッチ14と接続された
アドレスおよびデータ・ボートを用いて同時並行制御バ
ス26の両側にある他のCEおよびCPキャッシュ12
と通信する。
(A、命令) 各CEはメモリーに格納された命令を実行する。各々は
下記の如く4つの命令のカテゴリを解釈して実行するこ
とかできる。即ち、(1)データの移動、論理演算、整
数の算術演算、シフトおよび回転、ビット操作、ビット
・フィールド゛、2進化lO進演算およびプログラム制
御操作を実現する災木1、(2)浮動小数点データに関
する算術演算(平方根および正弦値の如き関数な含む)
、テストおよび移動操作を実現する洗悲土1悲全土、(
3)一時に32までのデータ要素についての整数および
浮動小数点演算を実現するペクト壓全席、および(4)
多数のCEJによる命令の並列実行を実現する殴膨笠丘
童脆である。処理装置は、命令の実行を支持するための
いくつかの種類のレジスタ(以降を参照)を含んでいる
。1つの命令は、1ワードが16ビツトである場合の1
つ以上の完全ワードからなっている。
1つの命令は、関数およびオペランドに関する情報を保
存する。命令における特定のビットは、処理装置から要
求中である関数を定義し、定義するビットの数および場
所は命令に従゛つて変更することができる。命令の残り
のビットは、オペランド、即ち操作されるデータを定義
する。このデータは、メモリー、または処理装置内のレ
ジスタ、または命令自体(即値データ)にあり得、これ
はレジスタ番号、値およびアドレスとして指示すること
ができる。
命令の実行は、通常命令がメモリー内で低位のアドレス
から高位のアドレスへ現われる順序において生じる。正
規のシーケンスで実行される命令は、次々に続かなけれ
ばならない。
処理装置は、プログラム・カウンタ(pc)と呼ばれる
32ビツトのレジスタにおいて実行される次の命令のメ
モリー・アドレスを維持することにより命令の実行シー
ケンスを制御する。正規のシーケンスを変更しない命令
の実行中、処理装置は、メモリーにおける次の順位の命
令のアドレス(即ち、その時の命令の直後のワードのア
ドレス)を保有するように、PCを増分する。例えば、
PCは、32ビツトの命令の実行に続いて4だけ増分さ
れることになる。命令は、PCの内容を修IFシて正規
の命令シーケンスからの分岐を許容する。他の命令は、
指定された値をPCに対してロートすることにより正規
のシーケンスを変更する。
」1(本命令と、スカラー整数の結果を生じるベクトル
命令のほとんどは、整数条件コードと呼ばれる処理装置
における特殊なビットを変更する。例えば、2つの等し
い整数値の減算はOの条件コードをセットするが、比較
的小さな整数値からの比較的大きな整数値の減算は負の
条件コードをセットする。ある命令は、その値か等しい
、より小さい、より大きい等の条件を指定する4ビツト
の条件コード・フィールドを保有する。この条件は、も
し条件コードがある方法でセットされるならば妥当する
。例えば、もし0の条件コートかセットされるならば、
等しい条件が真であり、もし負の条件コ・−ドがセット
され桁溢れ条件コードがクリアされるならば、より小さ
な条件が真となり、負および桁溢れ条件コードがセット
され、0の条件コードがクリアされるならば、より大き
い条件が真となる。浮動小数点命令は別の浮動小数点条
件コードを有する。
(1,ベクトル命令) ベクトル命令は、整数または浮動小数点データの32要
素まで一時に演算することができる。例えば、1つのベ
クトル加算命令は、1つのスカラー値を1つのベクトル
の各項に加え、2つのベクトルの対応する髪素を加え、
あるいは1つのベクトルの各項を一緒に加える(ベクト
ルを1つのスカラー値にする)ことができる。ベクトル
命令は、ベクトルの特性を定義すため準備作業を必要と
する。32項より長い長さのベクトルを1つのループ内
で処理する。このループの各反復と同時に、長さが32
だけ減分される。最後の反復は、:12より少ない項を
含むことができる(また通常そうである)。例えば、7
2項のベクトルにおいては、ベクトル命令が最初の2回
の反復中に32項のベクトルについて、また第3および
最後の反復においては8項のベクトルについて演算する
ことなる。このようなベクトル・ループの異なる反復を
、複数のCEについて同時に実行することかできる。
(2,処理状態) 1つのCEは3つの処理状態の1つで作動する。即ち、
(1)皿反皇旦1:処理装置か面頂で述べた如きメモリ
ーからの命令を実行する状態、(2)旌に条五:外部の
割込み、バス例外条件、ある命令、トラップおよび命令
実行中のある条件の発生により開始される状態、(3)
l上:処理装置に停止を要求する重大な障害により生じ
る状態である。処理装置は、下記の2つの特権状態、即
ち特権命令が禁止される五ニエΩ進1、および略々全て
の命令の実行が許される【監ス旦11にの1つにおいて
作動する。監視状態は、システムの異なるスタックに対
するアクセスを許す割込み監視状態か、マスター監視状
態のいずれかであり得る。処理装置は、例外条件が生じ
ると、割込み監視状態に入る。例外条件の処理は、監視
状態に入るための唯一の方法である。
(3,アドレス空間) 命令において指定されるアドレスは通常仮想的(論理的
)なものであり、使用前に変換される。
仮想アドレスは、機械の状態およびアクセスされるデー
タの性格(例えば、処理装置がある命令またはオペラン
ドを取出しつつあるかどうか)に応していくつかのアド
レス空間の1つに生じることができる。即ち、ユーザの
データ′・ζI (ユーザのtL% kli 4111
毫ty  七を斗 ス キー )J ’/7’l  7
/7  セ’フ1    7−轡’  −ブロクラム空
間(ユーザの特権状態における命令のアクセス)、【反
ヱニ立為■(監視特権状態におけるデータのアクセス)
、監 プログラム空lS(監視特権状態における命令の
アクセス)、■壮′η(CPU  空111(内部レジ
スタを含む処理装置空間にはどの特権状態における命令
のアクセスも通学生じない)である。ユーザおよび監視
アドレス空間は、外部記憶装置に対する照合である。
処理装置のアドレス空間は、CEに対して内部の読出し
/アクセス格納領域である。
(B、データのタイプ) CEは、整数、ビット、ビット・フィールド、2進化l
O進数、および浮動小数点データの諸タイプを保持する
つ更に、整数データおよびイl動小数点データはベクト
ルとしてアクセスすることができる。
(1,整数データ) 1つの“整数データ要素は、1バイト(8ビツト)、1
ワード(16ビツト、即ち2ハイド)、または10ング
ワード(32ヒ−j/ト、即ち4バイト)であり得ろう
符号付き算術演算の場合は、整数は正または負の整数を
表わす。最上位ビットは数の符号を構成し、これは正の
数においてはクリアさ九、負の数の場合にセットされる
。残りのビットは数の値を構成1−る。正数は2進法で
格納される。負数は2の補数表記法で格納され、即ち対
応する正の値のビットが反転され1か結果に加えられる
。符号を付さない算術演算の場合には、整数は絶対値を
表わし、全てのビットは数の値を構成し、数は2進法で
格納される。論理演算の場合には、整数はビット単位で
処理される。
(2,ビットおよびビット・フィールド・データ) ビット演算は、1バイトの下位のビットからのそのオフ
セットを指定することにより1つのビットのアクセスを
許容する。ビット・フィールド演算は、(a)1バイト
の下位アドレス・ビットからのビット・フィールドのオ
フセット、および(b)ビット・フィールドの幅を指示
することにより、一連のビットに対するアクセスを許容
するつ (3,7’l動小動点数−タ) 浮動小数点データ要素は、ロングワード(単精度)また
はカッドワード(倍精度)であり得る。
最下位ビットは常にデータ要素の上位のアドレス・ビッ
トであり、ビット番号はデータ要素内で上位のアドレス
・ビットから下位のアドレス・ビットにまで及ぶ。メモ
リー内の浮動小数点データの表示は、ある制約の下に単
精度および倍精度数に対する[ EEE規格に従う。記
憶素子は、3つの部分、即ち符号、指数および仮数の小
数部からなっている。
(4,ベクトル・データ) ベクトルはタイプにおいて整数または浮動小数点とする
ことができる。要素数はベクトルの長さと呼ばれる。こ
の要素は隣接させることも、また一定のストライドによ
り分けることもできる。ストライドはベクトル増分と呼
ばれ、要素の大きさの倍数で計られる。
(c、汎用レジスタ) 各CEは、汎用プログラミング用としてデータ、アドレ
ス、浮動小数点およびベクトル・レジスタを含む。整数
およびビット・フィールド・データを格納するため使用
することができるDO乃至D7を付した8つのデータ・
レジスタがあり、各レジスタは大きさが32ビツトであ
る。ワードおよびロングワードの整数データを格納する
ため使用することができるAO乃至A7を付した8つの
アドレス・レジスタがあり、各レジスタは大きさが32
ビツトである。単精度および倍精度の浮動小数点データ
の格納に使用”l−ることができるFPO乃至FP7を
付した8つの浮動小数点レジスタがあり、各レジスタは
大きさが64ビツトである。長い整数および浮動小数点
データを格納するため使用することができるvO乃至v
7を付した8つのベクトル・レジスタがあり、各ベクト
ル・レジスタは大きさが64ビツトx32要素(合計2
048ビツト)であり、1つのレジスタにおけるデータ
要素は同じタイプおよび大きさのものでなければ(D 
、 Fit(I御しジスタ) −・般用途のレジスタに加えて、制御レジスタがある。
これらレジスタのほとんどは、制御レジスタのあるもの
は直接操作することができるが、ある命令の実行中暗黙
に修正される。
プログラム・カウンタ(pc)は、実行される次の命令
のアドレスを含む32ビツトのレジスタである。処理装
置は、通常の命令実行の一部として、PCの内容を変更
する。はとんどの命令は、命令の一連の流れが生じるよ
うに実行される命令の直後にPCから記憶アドレスへ進
む。ある命令は、新たなアドレスをPCにロードするこ
とにより新たな命令へ飛越すことを許容する。
アドレス・レジスタ7(A7)は、もしユーザ・モード
がイ丁効であればユーザのスタ・ンク・ポインタ(sp
)として取扱われ、またマスター監視モードが有効であ
ればマスター・スタック・ポインタとして、また割込み
1、(視モードが有効ならば割込みスタック・ポインタ
として取扱われる。
スタックは、?8大り先出17方式でアクセス?ること
ができるメモリー領域である。各スタックは上位のアド
レスから一ド位のアドレスにわたり連続している。シス
テム・スタックとは、3つのスタックのどれかを指す。
監視スタックとは、マスター・スタックまたは割込みス
タックのいず九かを指す。スタック・ポインタは、スタ
ック(スタックの最上位)に置かれた最後のワードのア
ドレスを含む。記憶領域は、スタック・ポインタを減分
することによりスタック上で割当てられ、またスタック
・ポインタを増分することにより割当てが解除される。
例えば、AOの内容をシステム・スタックに対してブツ
シュするため、スタック・ポインタ(A7)は4(4バ
イト)だけ減分され、AOはスタック・ポインタに含ま
れるアドレスに格納される。
状態レジスタ(16ビツト)が設けられる。下位の8ビ
ツトは条件コードと整数溢れビットを含む。整数、ビッ
ト、およびビット・フィールド・データ(基本命令)に
対して働く命令は、典型的に条件コードに影響を及ぼす
。スカラー値の結果を生じるベクトル命令もまた条件コ
ードに;杉響を及ぼず。条件コードは、fiの条件コー
ト(もし命令か負の結果を生じるならばセットされる)
、Oの条件コード(もし命令かOの結果を生じるならば
セットされる)、指温れの条件コード(もし命令が行先
のオペランドの大きさから’tMhる結果を生じるなら
ばセットされる)、桁送り条件コート(もし命令か桁送
り即ち借りを生じるならばセットされる)、および拡張
条件コード(桁送り条件コードと同じようにセットされ
る)を含む。
浮動小数点演算(浮動小数点オペランドについてのベク
トル演算を含む)は、浮動小数点状態レジスタ、即ち浮
動小数点条件コードおよび例外コードを含む32ビツト
のレジスタ、および浮動小数点制御レジスタ、即ち例外
トラップ使用可r1ヒコードおよび浮動小数点モード・
コードを含む32ビツトのレジスタを使用する。
ベクトル命令は、処理されるベクトル命令の長さ、増分
およびオフセットを指示するためのル制御レジスタとし
て3つのデータ・レジスタを保留している。これらのレ
ジスタは、ベクトル命令に先立ってロードされる。
同時並行操作のための制御レジスタについては次項にお
いて論述する。
各CEはまたいくつかの内部の処理装置のレジスタを有
する。
(E、メモリーの管理) メモリー管理機構は、処理装置を使用する各プログラム
がアドレス0から始まる非常に大きな量の仮想メモリー
(例えば、232バイト)をアドレス指定することを可
能にする。処理装置(通常の命令実行の一部として)は
、ソフトウェア(例えば、オペレーティング・システム
)によりケ、えられるテーブルを用いて物理的な記憶ア
ドレスへプログラムに対する仮想参照を翻訳する。もし
仮想参11αが対応する物理的な記憶アドレスを持たな
ければ、処理装置は例外処理へ切換わり、制御をメモリ
ー管理例外ベクトル・ルーチン・\送り、ソフトウェア
が仮想参照を検査(例えば、二次記憶装出すことにより
)することを許容する。このように、プログラムは機械
が物理的メモリーを有するより大きな空間を使用するこ
とができ、またあたかも各プログラムが記憶領域を独占
するかのように多数のプログラムが1つの機械で作用す
ることができる。各プログラムに対する仮想アドレスは
、専用の機密保護された環境に対する別の物理的記憶ア
ドレスに対し、またコードおよびデータを共用するため
他のプログラムと同じ物理的記憶アドレスに対してマツ
プすることができる。更に、このメモリー管理機構はメ
モリーの領域を読出し専用としてフラッグすることを可
能にする。
メモリー管理機構は4つの仮想アドレス空間、l111
ちユーザ・データ(ユーザの特権状態におけるデータの
アクセス)、ユーザ・プログラム(ユーザの特権状態に
おける命令のアクセス)、監視データ(監視プログラム
の特権状態におけるデータのアクセス)、および監視プ
ログラム(監視プログラムの特権状態における命令のア
クセス)を(u j、V −J−X −又フロ))’ 
−7ムL−上n 7 k’ l/ ’l jF、 ”r
T! 六、hる最初のメモリーは、各々が1024ペー
ジを含む1024のセグメントに分割することかでき、
各ページは4096バイトを含む。仮想アドレスは、1
空間当り、1セグメント当り、およびページ毎に読出し
専用としてフラッグすることができる。
物理的メモリーは、アドレス0から連続的に番号を付し
た228のアドレス指定可能なバイトからなる。メモリ
ー管理は、物理的メモリーを各々大きさが4096バイ
トの一連のページに分割する。
1つの仮想アドレス(大きさが32ビツト)は、セグメ
ント(10ビツト)、ページ(10ビツト)、およびバ
イト(12ビツト)の数に分割される。1つの物理的ア
ドレス(大きさが28ビツト)は、物理的なページ(1
6ビツト)およびバイト(12ビツト)の数に分割され
る。1つの仮想アドレスの下位の12ビツトは、物理的
アドレスの下位の!2ビットに直接マツプし、変換は生
じない。1つの仮想アドレスの上位の20ビツト(セグ
メントおよびページ数)は、セグメントとページのテー
ブルを含むソフトウェアにより供給されるテーブルを介
して物理的ページを示す。処理装置は、テーブルおよび
仮想アドレスの、L位の20ヒツトから物理的ページ数
を決定することにより物理的アドレスを構成する。次い
で、仮想アドレスの12の下位ヒントか物理的ページ数
に対して加えうわて完全な物理的記憶アドレスを生じる
変換が行なわれると、CEが最も後で使用されたセグメ
ントおよび内部ページ変換バッファ内のページ・テーブ
ルをキャッシュ記憶する。
CEは、最初に変換バッファにおけるページ・テーブル
からの仮想アドレスと関連する物理的ページ数を決定し
ようとする。もし変換バッファが必要なページ・テーブ
ルを含まなければ、CEは変換バッファにおけるセグメ
ント・テーブルからメモリー内のページ・テーブルを見
出そうと試みる。もし変換バッファが必要なセグメント
・テーブルを含むならば、CEは次にメモリー内のペー
ジ・テーブルを調べて物理的ページ数を決定する。もし
変換バッファが必要なセグメント・テーブルを含まなけ
れば、処理装置はメモリー内のテーブルを調べて物理的
ページ数を決定する。
(対話式処理装置) 対話式処理装置(I P)は、人出力およびオペレーテ
ィング・システムのデユーティ志向となっている。各I
Pは、CEと各々基本命令および支持レジスタを有する
が、その浮動小数点、ベクトルまたは同時並行レジスタ
および命令は持たない。IPは、アクセス・システム・
レジスタ、システム機器および入出力装置をアクセスす
ることができる。メモリーは、対話式処理装置のキャッ
シュ(rpc)を介してアクセスされ、1つのIPCに
より3つまでのIPがサービスを受ける。IPはマルチ
パスを介して周辺装置に接続され、マルチパスおよびそ
のIPCによりデータを周辺装置とシステム・メモリー
との間に転送することができる。IPは操作!:tおよ
び診断装置に対する非同期通信チャネルを有する。操作
車tpは、そのパワーアップEPROMから読出さされ
る。オペレーティング・システムもまたEPROMから
ブート・ロードされる。
第2図はIPのブロック図である。処理装置30はデー
タ・バス32によってマルチハス・インターフェース3
4、IPCインターフェース36および局所メモリー3
8に対して接続されている。処理装置30により供給さ
れる仮想アドレスは、メモリー管理機構40により変換
される。局所メモリーは、パワ 7ツプEPROM、ブ
ートEPROM、レジスタ、タイマー、512にの局所
RAM、EEFROM(別のレジスタを提供する)およ
びDUART(複式汎用非同期型レシーバ/トラスミッ
タ)チャネルをアクセスするためのレジスタを含む。
メモリー管理は、2つのキャッジ;し、即ち監視マツプ
およびユーザ・アドレス変換装置(ATU)、および仮
想記憶アドレス(32ビツト)から物理的アドレス(2
8ビツト)に変換するロジックを用いて行なわれる。A
TUは、1つのれる。物理的アドレスは4つのタイプの
内の1つである。U口ち、大域メモリー(IPキャッシ
ュによりアクセスすることかてきる主記憶装置内のアド
レスを定義する28ビツト)、マルチパス(20ビツト
)、局所メモリー(28ヒツト)およびIPC装置(機
構、レジスタまたはIPCに関する記憶領域)である。
(同時並行処理およびCCU) 第1図および第5図においては、各CEIOが同時並行
制御バス26の両側の他のCCUと通信するCCU2=
1を含む。このCCUは、同時並行処理、割当て反復、
同期従屈部の同期、および同時並行処理の終了のための
ハードウェアの支持を提イ」Eする。CCUおよびCC
Uバスは第5図乃至第12図に示されている。添付−H
Bは、CCUの5つのロジック・アレイ(CONTRO
L、DECODER,WAIT、PIDEClR[D 
LE)に対する論理式を含む。
(A、同時並行命令) 同時並行処理は、下記の20の同時並行位置を用いてル
制御されるっ即ち、 y二1M1土途 CADVANCE    r司1用レジスタの拡・J長
CAWA I T      同期レジスタ拡張の待機
CIDLE       無動作 CQU[T       同時11ν行ループの出[I
C5TART      同時並行ループの始動C5T
ARTST    同時並行ループの始動およびトラッ
プの直列化 CVECTORベクトルの同時並行ループの始動 CVECTOR3T   ベクトルの同時並行ループ始
動およびトラップの 直列化 CREPEAT     更に反復があれば同時並行ル
ープの最上部への分 岐 ・1、″・および 重の命令 CMOVE  FROM  CCU状態レジスタ内容の
指定アドレスへの移動 CMOVE  To    CCU状態レジスタの指定
アドレスからのロード CNEST        CCURR,CMAX、C
GSPおよびC3TA Tレジスタの内容の保管 CUNNEST     CCURR%CMAX、CG
SPおよびC3TA Tレジスタの内容の復元 CRESTORE    10(7)全CCUL/ジス
タノ内容の復元 CS A V E       10の全CCUレジス
タの内容の保管 ベクトルのC1時並「命令 VIH水平の同時−1シ行ベクトル 操作用ベクトル増分の計 算 VLH水平の同時並行操作用へ クトル長さの計算 VLV         %直の同時並行ベクトルVO
H水平の同時並行ベクトル 操作用ベクトルのオフ セット計算 VOV         垂直の同時並行ベクトル操作
用ベクトルのオフ セット計算 最初の15の命令の各々により行なわわる機構の詳細な
記述は、添付書に説明された手順を用いて付属書Aにお
いて与えられる。最後の5つの、ベクトル同時並行命令
についてはベクトル同時並行処理についての選択におい
て記述される。
(B、CCUレジスタ) 各CCUにはIOの32ビツト・レジスタが存在−Yる
。即ち、 CMAX (最大数の反復〉 :このレジスタは進行中
の同時並行レジスタに対−1−る最大反復カウントを含
む。この値は、同時il1行複合体における全てのCE
におけるものと同じものである。
は、進行中の同時競合ループに対する次の反復数の下位
部分を含む。完全数は、CCU状態レジスタに上位ビッ
ト(CNEXT32)が格納された33ビツトである。
この値は、複合体における全てのCEにおけるものと同
じものである。
CCURR(その時の反復):このレジスタは、ある同
時並行ループのその時の反復数の下位部分を含む。完全
数は、CCU状態レジスタに上位ビットか格納された3
3ビツトである。この値は、複合体内の各CEに一義的
である。
ccsp(−一義的なくカクタスr cactus」)
スタック・ポインタ):このレジスタは、同時並行ルー
プの実行中局所変数を格納するためスタックのJ、(底
のアドレスを保持する。この値は複合体における各CE
に対して一義的である。
CGSP (大域スタック・ポインタ):このレジスタ
は、同時並行ループの始動に先立ち他のCEに対するス
タック・ポインタを同時通信するため用いられる。
CGPC(大域プログラム・カウンタ):このレジスタ
は、同時、1ff1行ループの始動に先立ち他のCEに
対してプロクラム・カウンタを同時通信するため用いら
れる。
CGFP(大域フレーム・ポインタ):このレジスタは
、同時並行ループの始動に先立ち他のCEに対してフレ
ーム・ポインタを同時通信するため用いられる。
ctpc(遊休命令アドレス):このレジスタは、遊休
命令のアドレスの保持のため用いられ、この命令はCE
が不要である時複合体内のCEにより連続的に実行され
る。
C5YNC(同期レジスタ):このレジスタは、同時並
行ループ内の従属部を同期するため用いられ、その1つ
もまたトラップの直列化のため用いることができる8つ
の4ヒツトの同期レジスタの総合的内容である。
C3TAT (CCU状態レジスタ):このレジスタは
、第4図に示される如き種々の単一ビットおよびマルチ
ビットのフィールドを含む。
(C,CCU状態レジスタ) CCU状態レジスタ(C3TAT)の種々のフィールド
は下記の如くである。即ち、VPN(仮想処理装置番号
):VPNは、0からN−1までの連続的な番号付けを
用いる複合体におけるN個のCE中の1つのCEのラン
クである。CEが存在しないか、破壊状態か、あるいは
同時並行処理に関与しない時、CEの物理的番号とその
VPN間のl対lの対応がない。同時並行複合体内部の
各CEのVPNは、C5TARTシーケンスの間に計算
される。
NUM (同時並行複合体におけるCEの番号):NU
Mは複合体におけるCEの総数を表わす0から7までの
数である(0は複合体内の1つのCEを意味する)。N
UMは複合体内の最も高いvPNと等しい。NUMはC
3TARTシーケンスの間に計算される。
INLOOP:このINLOOP状態ビットは、CEが
同時並行ループを処理しつつあるかどうかを示す。[N
LOOPは、C3TARTシーケンスの間(複合体内の
全てのCCUにおいて)大域的に1にセットされ、複合
体内部の他のCEを励起するため用いられる。このフィ
ールドはCEが遊休状態になるか、あるいは逐次処理を
再開する時にクリアされる。
NESTED :このNESTED状態ビットは、ネス
トされた同時並行ループをそのCEが実行中であること
を示す。NESTEDは、同時並行処理を行なった後C
NEST命令に遭遇する時局部的に1にセットされる。
5ERTRAP:この5ERTRAP 状態ビツトは、C3TARTSTまたはCVECTOR
STのいずれかに遭遇した時大域的に1にセットさ九、
その結末このトラップは直列化状態となる。
ENABLE :このENABLEビットは、複合体に
おけるCE数の変更要求か行なわわた旨のフラッグを残
すため(C3AVEおよびCRESTORE操作により
)CEにより使用することができる。CEにおけるロジ
ックはINLOOPおよびENABLEを調へることが
でき、もしビットがそれぞれ0および1であるならば、
同時並行処理か行なわれていない間に複合体の大きさに
おける変更を行なうことができるように、オペレーテイ
ンク・システムに通知することもできる。
DETACHED・このD E T A 、CHE D
状態ビットは、CEが同時並行複合体のメンバーである
かどうかを指示する(1はそうでないことを示す)。
VECTOR: VECTOR状態ビットは、これが実
行中であるベクトルの同時並行ループであるこを示すよ
うにセットされる。
PARITY:PARITY状態ビットは、(PERR
を表明することにより)CCUデータ・バスをパリディ
・エラーに強制するようにセットされる。
TEST : TEST状態ビットは、診断目的のため
に使用することができる。
CCURRO:これらの4つのビットは、零の後にこの
時の反復数(CCURR)の下位の3ビツトの複写か続
く。
CCURR32:こ九はCCURRの最上位のビットで
ある。
CNEXT32:これハCN E X T (7)最上
位のビットである。
(D、同時並行制御バス) 第5図に示されるように、CCUは、29の一制御回線
および1つの33ビツトのデータ・バス(CCLIBU
S)からなる同時並行制御バス26における他のCCU
と通信する。このCCU BU Sは両方向性であり、
別のパリティ・ビットCCUPを含む。これら制御回線
は、3つの8ビツトの回線グループ、即ち先回り回線A
DV、作動可能状態回線RDYおよび活動状態回線AC
Tを含む。各先回り回線は、8つの同JtJIレジスタ
の1つに対応している。作動可能状態および活動状態の
各回線は、8つのCEの1つと対応している。これら8
つの回線のグループの各々の後の表記(第5図)r(7
:0)Jは、これら回線が「0」乃至「7」で表わされ
ることを示す。各CCUは、8つの全ての作動可能およ
び活動状態の回線に対する入力として受取り、出力を各
グループ内のそれ自体の回線に対し与えることができる
。出力はサフィックス「0」で示され、入力はサフィッ
クスrlJで示される(例えば、各CCUには8つの作
動可能状態の人力回線RRDYI (7: O)と1つ
の作動可能状態の出力回線RDYOがある)。残りの5
つの制御回線は、2つの選択回線SEL (1: 0)
と、1つのC5TART回線と、1つのCQUIT回線
と、1つの書・込み回線CWRとからなり、その全ては
各CCUにより読出しおよび書込みが可能である。出力
および人力を1位味する同じサフィックス「0」および
r(Jは、それぞれこれらの回線上の信号に対して用い
られる。
各CEおよびそのCCLIの物理的な識別が確立され、
ここでCEがボード背面に差込まわる。異なるボードの
識別信号BDID(Oから7まで変化する)が各CEコ
ネクタに対し与えられ、この信号はこれからCCUに対
して送られる。
(E、CEとCCU間の通信) 各CCUは、CEの32ビツトのデータ・バス(PIB
tJS)といくつかの制御回線との間のそのCEと通信
する(第5図)。CCUに対しCEにより与えられる制
御信号は、レジスタ選択信号RSEL(4ビツト)と、
書込み信号WRと、指令信号Doと、反復オフセット0
FFS(3ビツト、命令AWA I Tの引数)と、読
出しくまたは出力可能)信号OEと、同期選択信号5S
EL(3ビツト、命令AWAITおよびADVANCE
の引数)と、命令識別子13号CMMD (4ビツト)
とを含む。CCUからCEに対して送られる制御信号お
よび状態信号は、C5TATUSレジスタからの6つの
状態ビット (ENABLE、DETACHED、5E
RTRAP、VECTOR,NESTED。
INLOOP) と、CEの仮想aVPN(3ヒツト)
と、信号TRAPOK、5ERIAL、QUIT、WA
ITおよびPERR(各1ビット)を含むニレ1〈つか
のクロ・ツクC1、C3、Pl、E4がCEからCCU
に対して送られる。
(F、同時並行処理の開始) 同時並行処理に先立ち同時並行複合体におけるCEの内
の唯1つが活動状態となり、他は通常遊休状態である。
同時並行処理は、活動状態のCEか命令C5TART 
(またはC5ATARTST、CVECTORlCVE
CTORST)を実行する時に開始される。活動状態の
CEにおけるマイクロコードは、CEのCCUに対して
一連のマルチサイクルの命令、即ち(1)a合体におけ
る他のρEを励起し、(2)それ自体のCCUに対し、
かつCCUバスを介して複合体における他のCCUおよ
びCEに対して情報(最大反復、大域スタック・ポイン
タ、大域フレーム・ポインタおよびプログラム・カウン
タ)を送り、(3)各CCUをしてそのCEにより実行
されるべき反復に対して仲裁させ、(4)CCUから割
当てられた反復数および同時並行処理の間使用される一
義的なくカクタスrcact、us」)スタック・ポイ
ンタを読出す命令を与える。
(1,遊休状態となる他のCEの待機)活動状態のCE
かこのC3TARTシーケンスを開始する面に、このC
Eは複合体における他の全てのCEが遊休状態にあるこ
とを確認する。
CEは、マルチプレクサ100(第6図)から生じるW
AIT回線を調べることにより他のCEの遊休状態を確
認する。マルチプレクサは、待機が要求される6つの命
令(C3TART、CWAIT、CADVANCE、C
QUIT、CIDLE、CREPEAT)のどわがCE
によりその時実行中であるかを示す4ビツトの命令識別
子CMNDか与えられる。このマルチプレクサはこの1
3号CMNDを用いて、WAIT回線ヒにWAITロジ
ック・アレイ102の適当な出力を与える。このWAI
Tロジック・アレイは、待機が要求される6つの命令の
各々に対する出力を有し、もし命令に遭遇するならばC
Eがこわ以上の処理を遅らせるべきことをいくつかの入
力に基いてWAITロジック・アレイが判定する時常に
各出力が表明される。C5TARTの場合には、信号A
NYACTが複合体における他のCEが活動状態となら
ないことを表わすローとならなければ、待機条件が課さ
れる。CCU自体の活動状態回線以外の活動状態の回線
ACTが表明されるならば、R[DLEロジック・アレ
イ90によりANYACTが表明される。活動状態の回
線は、CEがタスク消去さ九ず、CIDLE命令を実行
中でない時常に表明される。(もしDETACHEDま
たはNESTEDの状態ビットがセットされるならば、
いずれの場合も命令C5TARTに続くループが同時に
実行されないため、待機条件もまた課されることはない
。)(2,ローディング・レジスタ) 実行中C5TARTに課される待機条件がリフトされた
後、CEのマイクロコードがCCUに対する一連の命令
のマイクロサイクルを開始する。
その最初のステップが大域スタック・ポインタtrp+
ノぐシフ々「今キわスr’=q p)ル4f介イ太「セ
ける全てのCCUのCGSPレジスタ(第9図)に対し
て−F込むことである(即ち、GSPはCGSPレジス
タに対して「大域的に」7)込まれる)。これは、PI
BUSにA7レジスタの内容を置き(第8図)、書込み
回線WRを表明しく第7図)、R3EL回線上に適当な
4ビツト・コードを置<CEにより行なわれる。RSE
LおよびWR回線がDECODERロジック・アレイ1
24(第7図)に対して送られ、下記の2つの11象を
生じる。即ち、(1)CWROが表明され、P I B
USをCCUBUSを接続し、その結果GSPが複合体
における全てのCCUにおいて使用可能であり、(2)
CGSPレジスタに対するコードがSEL回線に表明さ
れ、全てのCCUに指令してCCUBUSの内容をその
CGSPレジスタに読込む。CWROの表明状態と共に
SELコードは各CCUのC0NTR0Lロジツク・ア
レイをしてDLDGSPを表明させ、これが史にCGS
 PレジスタをCCUBUSから読出させる。PIBU
SではなくCCUBUSがCGS Pレジスタに対して
読込まれるが、こわはマルチプレクサ120を:1制御
する信号RESTORE (第9図)がローである(保
管された状態が1[1びP I BUSを用いて論理レ
ジスタに対して読戻される時、状態復元操作の間RES
TOREはハイとなる)ためである。
複合体における全てのCCLIのCGPClCGFPお
よびXMAXレジスタにおいてそれぞれGPC,GFP
およびMAXを格納する類似の手順が続く。(もしこ九
が実行されたCVECTORまたはCVECTOR3T
であるならば、MAXを格納する最後のステップは行な
わないが、これはこのような場合に複合体における外処
理装置により一回の反復しか行なわないためである)。
(3,同期および反復割当てレジスタのクリア操作) 命令C5TART (またはC3TARTST、CVE
CTOR,CVECTOR5T)(7)実行と同時に生
じる別の動作は、複合体における全てのCCUにおける
同門レジスタC5O乃至C37、その時の反復レジスタ
CCLIRR1および次の反復レジスタCNEXTのク
リア動作である。
C3TARTを実行するCEは、Doを表明しR3EL
回線にお□いてC3TARTに対するコードを付与する
ことにより、そのCCUに対してDo  C3TART
命令を表明する(第7図)。
ロジック・アレイDECODERは、CCUバスのC5
TART回線にC3TARTOを表明することにより応
答する。複合体における各CCUにおけるC0NTR0
Lロジツク・アレイはCLR3YNC%CLRPAST
CLRCURRおよびCLRNEXTを表明することに
より応答し、これは更に対応するレジスタをクリアさせ
る。C5TARTI、C5TARTI lおよびC5T
ART I 3 (後の2つはC3TARTIの遅れた
ヴアージョンである)は、C0NTR0LおよびDEC
ODERロジック・アレイをして、C3TARTシーケ
ンスの間要求される種々の信号を表明させる。
(4,他のCEの励起操作) これらのクリア操作が行なわれるのと同じサイクルにお
いて、5ETINLOOPは複合体における各CCUに
おけるC0NTR0Lロジツク・アレイ(第7図)によ
り表明される。
5ETINLOOPは、複合体における各CCUのC5
TATレジスタのINLOOP状態ビットをセットさせ
る。この状態は更に、その全てが常にINLOO部分ビ
ットを調へている複合体における他のCEをして励起さ
せ、C3TARTシーケンスのその部分を開始させる。
(51反復の割当て操作) レジスタのクリア操作に続く機械サイクルにおいて、C
CUがそのCEに対する反復を割当てて、C3TART
シーケンスの以降の完了状態を実行する。CCUバスの
C3TART回線において表明されたC5TARTOは
、以降のサイクルにおける複合体の各CCUにおいてC
3TARTIIを表明させる(C3TART回ラッチ1
34 、136により1サイクル遅らされ、C5TAR
TIIとして現われる)。複合体における各CCUのD
ECODERロジック・アレイ124は、CCUバスに
おける8つの内の1つである前記CCUのRDY回線に
対して接続されるRDYOを表明することによりC3T
AR〒■1の表明に応答する。表明された作動可能状態
の回線と反復を求めるCCUとの間に1対1の対応かあ
る時、反復を求めるCEの総数、あるいは同じことであ
るが、複合体におけるCEの数が表明された作動可能状
態の回線の総数に過ぎない。この総数は増分器142に
より生成さ九、こむが表明回線数を総計し、回線の総数
だけ回線144の32ビツト内容を増分し、和を回線1
・16上に乗せる。
CNEXTレジスタは、増分器に対する人力回線114
が回線146上のその出力か単に複合体におけるCEの
総数であることを意味−1−る0となるように、前のサ
イクルにおいてクリアされている。
従って、出力の最初の3ビツトは、NEWNPO/ (
Ir;f−fp N IT u M’ −”+ 11 
S k + 、 ’Y ITv !μ六h(+たけ減分
された後)C3TATレジスタのNUMフィールドに対
してロードされる(ADDNUMはC0NTR0Lロジ
ツク・アレイにより表明された状態にある)。増分器1
42の出力もまた、これに割当てられだ最初の反復を完
了するため最初のCEで処理されるべき次の反復数を表
わし、これによりこの数はポート2を介してCNEXT
レジスタに対してロードされる(ADDNEXTはC0
NTR0Lロジツク・アレイによって表明された状態に
ある)。
反復の割当てもまた作動可能状態の回線を用いて行なわ
れる。MASにロジック・アレイ140は、CCUの物
理的アドレスであるBDIDを用いて作動可能状態の回
線をスクリーンし、それ自体の作動可能状態の回線およ
びそわ自体よりも上位の物理的アドレスと対応する回線
を零にする(最上位の作動可能状態回線であるRDY7
が常にマスクされる時、これはMASKロジック・アレ
イに対しては与えられない)。MASKから生じる表明
された作動可能状態の回線の総数は、前記CCUに対し
て割当てられた反復の数となる(反復の番号付けはOか
ら始まる)。例えば、もし3つのCCUが複合体にあり
かつ1つが最1−位の物理的アドレスによりCCUを調
へるならば、MASにから生じる表明された作動可能状
態の回線数が2となり、これか最初に割当てされるべき
最上位の反復であることが判るであろう。次に上位の物
理的アドレスを要求するCCUは、MASKから1つの
表明された作動可能状態の回線を生じせしめることにな
り、かつ反復1か割当てられることになる。第3および
最後のCCUは、零表明された作動可能状態の回線をM
ASにから牛ぜしめて反復0が割当てられることになる
現われる表明された作動可能状態の回線のこの数が反復
割当てに変換される方法は下記の如くである。増分31
48がMASKから現われる表明された作動可能状態回
線の数をCNEXTレジスタの前の内容(即ち、表明さ
れた作動可能状態回線の総数だけ増分される前)に対し
て加算し、その和をボート2を介してCCURRに対し
てロードする(ADDCURRがC0NTR0Lロジツ
ク・アレイにより表明された状態にある)。従って、C
CURRレジスタが、そのCEにより処理されるべきそ
の時の反復の値を受取る。
(6,レジスタの読出し操作) C5TARTシーケンスの間に行なわれる最後の組の操
作が、その値がC5TARTシーケンスにおいて前に判
定されたあるレジスタの内容をCCUから読出しつつあ
る。開始CEがCC5Pレジスタからカクタス・スタッ
ク・ポインタ(csp)を、またCCURRレジスタか
らその時の反復を読出す。複合体における他のCEはこ
れら2つのレジスタを読出し、またCGFPおよびCG
PCレジスタを読出す。CGFPおよびccspレジス
タの内容は、複合体における各CEが必要な状態情報を
して同時並行処理を開始させるため要求される。GFP
は、ループの実行中大域変数をアクセスするため使用さ
れる。
の再開のため必要なプログラム・カウンタを有するよう
に他のCEによって読出される。
GPCは、同時並行ループの最上位(即ち、C5TAR
T命令の直後)の命令のアドレスである。CCUからの
読出しレジスタは、出力可能状態回線を表明するCEお
よび所要のレジスタと対応するR3ELコードによって
行なわれる。
これらレジスタの読出し操作に続いて、複合体のCEは
同時並行ループ内の命令の実行を開始する。これら命令
は全て同じ命令であるため、他のCEがキャッシュのミ
スを蒙る比較的高い可能性(例えば、他のCEが遊休状
態にある故に生じる命令キャッシュ・ミス)の故に開始
CEが他のものの僅かに餌となるが、CEは略々相互に
同位相にあるループの最初の命令を実行する。しかし、
最初のCAWA IT命令と遭遇する時、CEの位相関
係は実質的に変化する(以降の同期問題の論議参照)。
(7,タイミング操作) C!’; T A RT L7鈷いて出l゛;ス」槽り
化め々Iタングは第13図においてグラフにより示され
る。この表記法は、事例を用いて説明することができる
最初の機械サイクルにおけるWRCGS Pは、最初の
CE (CSTARTを実行するもの)がCGSPレジ
スタに対する大域的な書込みを表明したことを意味する
。第3の機械サイクルにおける表示[GS P]は、ス
タック・ポインタがこのサイクル(これらがLDGSP
が表明された前のサイクルの匂においてロードされた)
において最初に妥当となったことを示す。同様に、第4
のサイクルにおける表示[INLOOP]は、5ETI
NLOOPの表明と同時に第3のサイクルにおける状態
レジスタのINLOOPビットに対してロードされた1
が妥当な状態となったことを示す。
4つの書込み操作の1つが開始した直後に、Do  C
ASTART命令が第2の機械サイクルにおいて表明さ
れることが判る。このタイミングは、Do  C5AR
Tに続く多重サイクルが書込み操作と並行して生じるこ
とを許容する。
(G、CEとCCU間の相対的な遅れ)遅延ラッチ12
6 、127は、CEによりCCUに与えられた命令の
実行を遅延させる。ラッチの最初の半分がCEのP3ク
ロツタによりCEのサイクルの柄においてハイの状態に
クロックされる。
このラッチの第2の半分は、CCUのCIクロックによ
りCCUのサイクルの最初の電の間ハイの状態にクロッ
クされる。その結果は、CEおよびCCUの相対的な位
相に応じて、1機械サイクルまたはイ機械サイクルのい
ずれかの変更可能な遅れとなる。CCUは、全て同じク
ロックにより駆動されるため常に相互に同じ位相内にあ
る。一方、CEは、CCUクロックと同期されるクロッ
クにより駆動されるが、(例えば、キャッシュ・ミスの
結果として)CCUおよび他のCEに対して層サイクル
位相からずれた状態となり得る。
CE右よびそのCCUが同じ位相にある時ラッチ126
.127による完全な!サイクルの遅れ、右よび機器が
位相から外れる時局の遅わが存在する。
CCUおよびCEの相対的位相における差をCEに対し
て透過状態にし、その結果CEによる信号の表明とCC
Uによる応答との間の遅れが常に同じとなるためには、
0または局サイクルの別な変更可能な遅れがCEに戻さ
れる信号のあるものに対して加えられる。lOのCCU
レジスタの内の4つの内容をマルチプレクサ130に対
して送る32ビット回線がこのように遅れが与えられる
。これら4つのレジスタ(CCURR,CNEXT、C
SO〜C37およびC5TAT)がCCUのクロックC
1によりエツジがトリガーされ、その出力はマルチプレ
クサに達する前にPiによりクロックされるラッチを通
過し、その結果CEおよびCCUクロックが位相から外
れる特別の半サイクルだけ遅らされるP I Busに
おけるマルチプレクサ出力を生じる。残り6つのレジス
タはCCUのクロックC3においてロードされ、半サイ
クルだけ変更可能な遅れでマルチプレクサに到達する。
この変化は常に最悪の遅れを待機するCEにより許容さ
れる。
同時並行ループを実行するCEがループ内の最後の命令
の後に乗せられるCREPEAT命令に達する時、次の
2つの動作が行なわれる。即ち、(1)命令で供給され
る変位がプログラム・カウンタに対して加えられること
くこれは完全にCE内で行なわれる)、および(2)作
動可能状態回線RDYおよびCCURRおよびCNEX
TL、ジスタを用いて新たな反復が割当てられることで
ある。
反復割当て手順は、そのRSELおよびDO回M(第7
図)を用いてDo  CREPEAT命令を表明するC
Eによって開始される。前記CE自体のCCUは、それ
自体作動可能状態回線RDYを表明することにより応答
する。CREPEAT命令を同時に実行する他のCEも
また、それ自体RDY回線を表明し得る。表明された作
動可能状態の回線の総数を用いて、C3TART命令に
ついて述べたものと同じ方法でCNEXTおよびCCU
RRレジスタを更新する。同時並行の実行の内容を表明
されたRDY回線の数だけ増分させる(CCUがそれ自
体の作動可能状態の回線を表明しない時でさえ)。MA
SKは、それ自体よりも小さな物理的数のCCUを除い
て全ての作動可能状態の回線を零にする。CCURRは
、CNEXTの館の内容プラスMASKから現われるR
DY回線の数と等しくセットされる。1つのRDY回線
か表明される場合には、CNEXTは1だけ増分され、
CCURRがCNEXTに等しくセットされる。
新たに割当てられた反復を得るため、CEは読出された
回線OE(第9図)を表明しかつそのRSEL回線上に
CCURRに対するコードを置くことにより、READ
  CCURR命令を表明する。この状態は、CCUR
Rの内容をマルチプレクサ130に通過させ、PIBU
Sに対して乗せる。次いでCEは、同時並行ループの新
たな反復の実行を開始する。
CEは新たな反復の実行を開始するが、もしそのすぐ後
で新たな反復がCMAXレジスタに格納された最大の反
復を越えると判定するならば、停止状態にさせられる。
CCURRの内容はコンパレータ110  (第9図)
におけるCMAXの内容と比較される。もしこの最大反
復よりも大きければ、GTMAXか表明さ、tしてcO
NTROLロジック・アレイ++a  (第7図)にK
WITを表明させ、更にC5TATAレジスタにおける
ラッチ112  (第11A図)にQUITを表明させ
る。
QUITの発振について常に調べているCEは、遊休状
態になることによりその表明に応答する(このCEはそ
のCCUからCIPCレジスタの内容を読出し、そのプ
ログラム・カウンタにこの内容を置く)。
CCURRの同じ比較もまた、新たな反復が最後の反復
であるかどうかを確立し、もしそうであれば、新しい反
復を1に割当てられたCEをしてこれが再びCREPE
ATに達する時逐次処理を継続させるための措置がとら
れる。もしCCURRがCMAXと等しければ、コンパ
レータ110はEQMAXを表明する。EQMAX(7
)表明は、次にDo  CREPEAT命令がCEから
受取られる時、C0NTR0Lロジツク・アレイ118
  (第7図)をしてCLRINLOOPを表明させる
ことになる。EQMAXがCEREALを表明し、この
状態が5ERIALを表明させ、CEが次のCREPE
ATに戻るよう分岐することを阻止する。
EQMAXおよびGTMAXを生じるゲートに対する入
力CURR32は、CCURRに格納された反復数がレ
ジスタのその最大容ff1232(約40億)を越える
場合に必要となる。この場合には、CURROVF (
第8図)が増分器148 ニより表明され、C5TAT
レジスタ(7)CURR32ビットが1にセットされる
(第11A図)。CURR32が1である時、GTMA
Xが1にセットされEQMAXは0にセットされる。こ
の状態が直ちに影響されたCEの同時並行処理を停止す
る。この結果を避けるため、ある同時に実行されるルー
プの反復数が32ビツトのCCURRレジスタの容いて
実行中のソフトウェアを適合させることが望ましい。
(1,従属部の同期操作) ある同時に実行されるループ内における、別の命令(し
ばしば同じ命令)が前の反復において実行されるまで適
正に実行することができない命令の存在は、所謂従属命
令と呼ばれるものであり、最初の命令の実行は航の反復
における2番目の命、令の実行と同期されなければなら
ない。同期は2つの命令、CAWA ITおよびCAD
VANCEを用いて行なわれる。CAWA TT命令は
最初の命令の前に置かれ、CADVANCEは2番目の
命令の後に置かれる。同じ命令が共に第1と第2の命令
である場合には、CAWAITは命令の前に置かれ、C
ADVANCEはその後に置かれる。各対のCAWAI
TおよびCADVANCE命令は通常8つの同期レジス
タCSO乃至CS7の1つに対して関連付けられる。し
かし、僅かに8つの同期レジスタしかないという事実は
、取扱ろ一し叔榔蕎1介蒲錬消東h f−!hl+酊す
zWし礒(す−い。もし8つ以上の従属部が同じ反復構
造に存在するならば、従属部のグループはCAWA I
 TおよびCADVANCE命令の対によって括ること
ができ、各グループはこれにより1つの同期レジスタに
より取扱われる。
(1,CAWAIT命令) CAWA I T命令は2つの引数を有する。即ち、こ
の従属部に割当てられる同期レジスタ(C5I 乃至C
37)(7)e!1(SSEL) と、ソノ時の反復か
ら前の反復までのずれ(OFFS)(零のずれとは前の
反復の直後を意味する)。
CAWA ITの実行は、CCUのWAITロジック・
アレイのWAIT出力がローとなる(第6図)まで、C
Eをしてこれ以上の処理を遅らせる。CEは、SSEL
回線上にAWAIT命令において指示される同期レジス
タの数を置く。この状態は、マルチプレクサ114にお
いて対応するAWTOK回線を選択する。AWTOに回
線がCAWA I T命令の実行中表明される時、WA
ITアレイ102およびマルチプレクサ!00(CMN
D回線上のCAWA I Tに対するコードの認識に応
じてCAWA I T回線を選択する)がWAIT回線
をローの状態にさせ、CAWA I T命令に続いてC
Eがこの命令を処理することを許容する。
AWTOに回線は同期レジスタCSO〜C37(第10
図、第12図)によってル制御される。
AWTOK回線(その表明はAWA I T命令を実行
するCEに対する進行信号として作用する)は、その各
同期レジスタが2番目の命令(上記参照)が実行されね
ばならなかった前の反復を表わす数へ進められる時に表
明される。特に、その同期レジスタの最初の3つのビッ
ト、即ち第12図の3ビツト・レジスタ5YNCの内容
が、即ちオフセット0FFSプラスまたけ減じられる状
態レジスタのCURROフィールドその時の反復の3つ
の最下位ビットと等しい(あるいはこれより大きい)時
に、AWTOにが表明される。下式として表わされるA
WTOKが表明される。即ち、5YNCCURRO−O
FFS このテストは、回路10Bを用いて差(CURRO−5
YNC)を得て、この回路の出力をコンパレータ108
におけるオフセット数値0FFSと比較することにより
行なわれる。
回路106は実際には下式を表わす。即ち、CLIRR
O−5YNC+C−1 上式における項(C−t)は、この同期手順における機
械サイクルを保管するため、コンパレータに対するAD
VI信号の反転コピーを供給する結。
果として存在する。CADVANCE命令の実行の結果
として表明されるADV I入力(以下の論議参照)は
5YNCを増分するが、増分された数値はADVIの表
明に続く機械のサイクルまで得られない。同じサイクル
においてADV Iが表明される効果を生じるため、回
路106に対するインバータを介して与えられる。この
サイクルにおいて、Cは0に等しく、回路の出力Fはこ
れにより下式にセットされる。即ち、 CURRO−(SYNC+ 1 ) る。ADVIがローとなり(Cを1に等しくする)かつ
5YNCが既にまたけ増分された次のサイクルにおいて
、同じ出力が生じることになる。
(2,同期レジスタの4ビツトの大きさ)232の如き
反復が許される場合でさえ、各同期レジスタの大きさを
4ビツトに、5YNCレジスタを3ビツトに、またPA
STレジスタを1ビツトに制限することが可能である。
これが可能な理由は、CEが決して相互に7回以上の反
復とならないことである。これは、直前の反復がそのC
ADVANCEを実行するまでCEを待機させるADV
ANCE命令の組込み待機の故である(以下の論議参照
)。従って、その時の反復が従属部に対して応答し得る
餌の反復からどれだけの範囲にあるかの追跡のためには
3ビツトしか必要でない。これらの3つのビットは5Y
NCレジスタに格納される(第12図)。この3つのビ
ットは、そのCADVANCEを実行しなかった最下位
の反復数を含む仮想の32ビット同期レジスタのノlx
す>/し、+、 t /1tr* L lhレノ−Lし
嘗イ婁÷スーレ姑できる。見方を変えれば、従属領域を
クリアしなかったのは反復の少なくとも3つの上位ビッ
トである(−回たけ1つの反復が以降の反復が依存しな
いそのCADVANCEを実行する)。
5YNCレジスタがその時の反復CURROを通って送
られたかどうかを追跡するため、1つのビットのPAS
Tレジスタが提供される。もしこの状態が生じるならば
、PASTは局部的に1にセットされる。ADVANC
E命令がその関連するCEにより実行される時、PAS
Tが実際に1にセットされる。CREPEATが実行さ
れる時反復の終りにおいてPASTがクリアされる。
同時並行複合体において同一となるように全てのCCU
において同時に変更される3ビツトの5YNCレジスタ
とは異なり、PASTビットは局部的にセットされる。
(3,CADVANCE命令) 他の同期命令であるCADVANCEは、同期レジスタ
の増分を引受ける。CADVANCEは同期レジスタを
1つの引数だけ進める。CEはこれかCADVANCE
を実行する時、そのCCUが直前の反復がそのCADV
ANCEを実行したことを判定するまで最初に待機する
。次いで、このCEは指示された開明レジスタをまたけ
進めさせる。
CADVANCE命令は、字のオフセットを有する組込
まれたCAWA I Tに等しいところのものを有し、
これはCADVANCE命令が直前の反復において実行
されるまでCEを待機させる。
これは、ADVOK回線を用いて行なわれる。
CADVANCE命令において指示される同1υルジス
タが5SEL回線に乗せられ、これによりマルチプレク
サ116における対応するADVOに回線を選択する(
ADVOKOもまた直列化トラップにこれを用いる故に
マルチプレクサをバイパスされる。以下の論議参照)。
選択されたADVOに回線が表明されると、その効果は
WAIT回線をローにセットして処理を再開することを
CEに信号することである。コンパレータ108(第1
2図)が、5YNC=CURROの時(即ち、同期レジ
スタがこの反復へ増分された時)に生じる事象であるそ
のB入力が0であることを検出する時ADVOK回線が
表明される。
WAIT回線がローになった後、CEはDOおよびRS
EL回線を用いてDO CADVANCE命令を表明する。このDECODER
ロジック・アレイは指示された同期レジスタに対するA
DV回線にADVOを算術的することにより応答する(
各レジスタ毎に1つずつ8つのADV回線がある)。こ
のADVOの算術的は、局所効果および大域的な効果を
有する。局所的には、ADVOの表明はPASTを1に
セットする(このCADVANCEが実行したという事
実か同期レジスタがこの時の最も外側の反復数を越えて
増分されたことを意味する故である。)大域的には、表
明されたADVO回線はADVIとして受取られ、各5
YNCレジスタを複合体における全てのCCUにおいて
またけ増分させる。同じサイクルの問おそらくは唯1つ
のr  F LAsJ’、h hs  1  つn A
  n  V面1@G夷)旧L J’J tt bN故
に、8つのADV回線しか提供することができない。 
 。
CADVANCEがPASTビットを1にセットすると
いう事実が同じ反復において遭遇する同じ従属部に対す
る別のCAWAITおよびCADVANCE命令が無視
されることを保証する(同時並行ループ内の分岐が更に
このような同時並行を可能にし得る)。これを行なうた
めには、DOCADVANCE命令が復号されるDEC
ODERロジック・アレイに8つの全てのPASTビッ
トが持込まれる。もしCADVANCE命令において指
定される従属部に対するPASTビットが1にセットさ
れるならば、ADVOは表明されない。また、PAST
が1にセットされるという事実は、AWTOKおよびA
DVOKの両方の回線がORゲート109、++1  
(第12図)によって自動的に表明される故に、CAW
A I TまたはCADVANCEのいずれかと遭遇す
る時、WAIT回線がローに即時にセットされることを
意味する。
Ll、同時並行処理の終結) 同時並行処理は、2つの命令、即ち CREPEATまたはCQUITの内の一方の実行する
ことにより終結される。
(1,最後の反復におけるCREPEATの実行) 面述の如く、事象EQMAXが反復の開始時に表明され
ることになる場合におけるように、処理される反復が最
大反復であるならば、CREPEATの実行は同時並行
処理を終結することになる。EQMAXの表明は、この
反復の終結前でさえ、5ERIALを表明するという即
時効果を有する(CEREALはC0NTR0Lロジツ
クにより表明され、C5TATレジスタ(第11A図)
におけるラッチ■2をして5ERIALを表明させる)
。5ERIALの表明は、同時並行処理が次のCREP
EATで終ることを警告するGEの進みを生じる。CE
の残りがそれ自体を遊休状態に置き終るまで、CREP
EATを実行するCEがWAITロジック・アレイによ
り待機させられる(CMAXの内容を越える反復数を取
出すことにより)つWAITロジック・アレイは、AN
YACT回線を検査することにより他のCEの遊休状態
を検出する。CREPEATが実際に実行される時、C
Eによるり。
CREPEAT命令の表明はこのCEにおける同時並行
処理を終結する。EQMAXおよびDOCREPEAT
を検出するC0NTR0Lロジツク・アレイはCLRI
NLOOP。
CLRVECTORおよびCLRSERTRAPを表明
し、これによりINLOOP、 VECTORおよび5ERTRAPの状態ビットをクリ
アする。
(2,CQUITの実行) ループが予め定めた反復数の完了に先立ちループから分
岐して出る命令を含む時、CQUIT命令はコードが分
岐できるアドレスにおいて挿入される。ループからの早
過ぎる分岐は同時に実行されるループに対し潜在する問
題を生じるが、これは分岐が命令が既に他のCEにより
既に実行された反復に先行する反復に分岐が生じること
が可能であるためである。もし処理が逐次であったなら
ばこれ以上の反復が決して処理されなかったため、同時
並行処理が結果を変化させることになる可能性がある。
このような結果の変化が生じる得る方法が少なくとも3
つある。即ち、(1)データがループ外の操作の結果を
変更する以降の反復において大域メモリーに対して格納
されること、(2)以降の反復が最初にCQUITを実
行すること、および(3)以降の反復においてトラップ
か生じること(例えば、生じる筈のなかった0による除
算が逐次の処理を行なうこと)である。
最初の潜在的な問題点、即ち生じなかった格納操作の予
防は、ソフトウェアにより取扱われなければならない。
1つの試みは、訂の反復において実行されないCQU 
I Tの可能性が残るまで全ての格納操作に対するカク
タス・スタックを使用すること、およびカクタス・スタ
ックから大域メモリーへ専用コピーを変換することであ
る。
78 ’) /7’IQ’Jl’T 占I71?、 X
1llln r Q If T T < J+CAWA
IT命令を用いて処理される。C10同期レジスタにお
ける零オフセットのCAWA I TがCQU IT命
令の直前に挿入される(ループからの分岐がCAWA 
I Tに対して行なわれる)。
また、C5TARTST命令(直列化されたトラップを
有するC3TART)がC5TART命令の代りに(ま
た、CVECTORSTがCVECTORの代りに)用
いら九て、CREPEAT命令によりC3Oレジスタの
自動的な増分動作を生じる。これらのステップはCQU
 fTsが順当に実行されることを保証する。
第3の問題点、即ち意図されないトラップもまた、CS
 T A RT S T マタハCV E CT OR
S T命令(CSTART):たはCEVECTOR(
7)代りに)を用いることにより処理される。これらの
命令は、これらがC3TART−シーケンスの間SE 
RT RA P状態ビットをセットさせる点のみにおい
て他のものと児なる。5ERTRAPビツトがセットさ
れる時、TRAPOKが表明されて、ループから出る分
岐が可能な下位の反復か依然として実行中のものがない
故にトラップが生じ得ることを示すまでこれ以上処理す
る前にトラップに遭遇するCEが待機する。
TRAPOには、同期レジスタC5Oによって制御され
る。もしC5Oに含まれる反復がこの時の反復CURR
O1即ちコンパレータ106 、108(第12図)に
より測定される条件と等しければ、ADVOKOが表明
される。もし5ERTRAPが1ならばレジスタC5O
はCREPEAT(ループにおける最後の命令)により
進められ、このためレジスタは完了した最下位の反復の
3つの最下位ビットを含む。ADVOKOは、TRAP
Oにを表明することにより応答するWAITロジック・
アレイ102  (第6図)に対して直接送られる。T
RAPOにもまた、もし5ERTRAPが0であるなら
ば、これがトラップの直列化が指定されなかったことを
意味するため、WAITにより表明される。(もしDE
TACHEDが1にセットされるならば、TRAPOに
もまた表明されるか、これはこ九か同時並行処理が存在
しないことを意味する。)(K、ベクトルの同時並行処
理) 同時並行複合体におけるCEは、Doループの如き同時
並行処理の反復構造に対してのみではなく、ベクトル操
作の同時並行処理部分に対しても使用することができる
。例えば、もしベクトル乗算操作が要求゛されかつベク
トル長さか100であるならば、2つのCEがベクトル
操作の34を行ないかつ3番目のCEが操作の32を行
なうように、3つのCE(例えば、CEO、CEI 、
CE2 )の同時並行複合体がベクトルを分割すること
ができる。各CEにより行なわれる全ての操作が一回の
「反復」において行なわれる。CE間のベクトルの分割
は垂直方向または水平方向に行うことができる。垂直の
分割においては、事例の最初の34のベクトル要素は最
初のCEによって処理され、次の34のベクトル要素が
2番目のCEにより処理され、最後の32のベクトル要
素は第3のCEにより処理される。水平の分割において
は、最初のCEがベクトル要素1.4.7等について操
作を行ない、2番目のCEはベクトル要素2.5.8等
について操作を行ない、3番目のCEは要素3.6.9
等について操作を行なう。どの分割の形式が最もよいか
はソフトウェアの問題であり、コンパイラによって決定
されるのが典型的である。
CEに対して必要なパラメータを計算してベクトル演算
の同時並行処理を行なうため、5つのベクトルの同時並
行命令がCEにより使用される。
このパラメータは、各CEのCCUにより与えられるN
UMおよびVPNフィールドを用いて各CEにより計算
され、次いでCEデータ・レジスタに格納される。計算
においては、もしNESTEDまたはDETACHED
のいずれかがCCUにより表明されるならば、CEがN
UMおよびVPNを零にセットする。
ベクトルの水平分割においては、次の3つのパラメータ
、即ち長さ、オフセットおよび増分が計算される。
要素の数である。これは、下式に従ってVLH命令を用
いて計算される。即ち、 長さ=CHI L [(N−VPN)/(NUM+ 1
 )] 但し、Nはベクトル要素の総数であり、CEILはもし
既に整数でなければ結果は次に大きな整数まで切上げら
れる(もしNESTEDまたはDETAACHEDが1
ならば、VPNおよびNUMは零にセットされる)。本
例においては、CEOは長さ34が与えられ、CEIお
よびCE2は長さ33が与えられる。(実際の構成にお
いては、この計算は下記の如く行なわれる。即ち、VP
NがNから控除され、2つの操作の内の1つが行なわれ
る。もしNUMがO51,3または7ならば(CEの数
が2の累乗であることを意味する)、NUMは(N−V
PN)1.:加えられ、その結果は(2の累乗に従って
)0・、1.2.3ビツトだけ右へ桁送りされる。もし
NUMが2.4.5または6ならば、項(N−VPN)
はそれぞれフ/1   フ/ら   フ/6 主たt寸
?/7 −7?−県ぜられ (7の)B合、各関数は使
用性に零に丸められる)、その結果は右へ1ビツトだけ
桁送りされ、小数・部は切捨てられ、1が結果に加えら
れる。) 増分は、CEにより演算されるべきベクトル要素間のス
ペース即ちストライドである。これは、下式に従ってV
IHを用いて計算される。即ち、増分=V I NCR
(NUM+ 1 )但し、V I NCRは元のベクト
ルの増分である。
V I NCRが1である本例においては、全てのCE
は3の増分が与えられる。(実際の構成においては、乗
算は桁送りおよび加算によって行なわれる。) オフセットとは、CEが開始すべきベクトルにおける場
所である。これは、下式に従ってVOH命令を用いて計
算される。即ち、 オフセット=V r NCR(VPN)但し、VINC
Rは元のベクトルの増分である。
本例においては、CEOは0のオフセットが与えら4、
CEIは1のオフセットが、またCE2は2のオフセッ
トが与えられる。(実際の構成においては、乗算は桁送
りおよび加算によって行なわわる。) ベクトルの分割か垂直方向である場合、増分か全てのC
Eにおいて1である時、これら3つのパラメータの最初
の2つのみを計算すわばよい。
長さは下式に従ってVLV命令を用いて計算される。即
ち、 長さ=MIN(CEIL[N/ (NUM+1)]、N−VPN (cE I L [N/ (NUM+ 1)))但し、
CEILは上記と同じ機能であり、MINは括弧内の2
つのパラメータの最小値である。
本例においては、CEOおよびCEIは長さ34が与え
られ、CE2は長さ32が与えられる。
(実際の構成においては、項CE I L [N/(N
UM+ 1 )]はVLH命令における除算とCErL
操作の組合せのため用いたものと同じ方法を用いて得ら
れる。VPNによる乗算は桁送りおよび加算によって行
なわれる。最小値は2つの量を比較して2つの内小さな
方を選択することにより見出される。
オフセットは、下式に従ってvOv命令を用いて計算さ
れる。即ち、 オフセット=CE I L [N/ (NUM+1)]  (VPN) 本例においては、CEOはOのオフセットが与えられ、
CEIは34のオフセットが、またCE2は68のオフ
セットが与えられる。(実際の構成においては、計算は
VLV式の2番目の項に対するものと同じ方法を用いて
行なわれる。) 実際の同時並行処理は、CVECTOR(またはCVE
CTOR5T)命令がベクトルの「ループ」の開始時、
即ち同時に処理されるベクトル演算の初めの前に実行さ
れる。パラメータの計算命令(例えば、VLH,VOH
,VIH)はCVECTOR命令に続く。
CVECTOR命令により開始されるCCU命令のシー
ケンスは、C3TARTにより始められるものとほとん
ど同じものである。相違は、の機械サイクルにおいて、
VECTOR状態ビットが複合体における全てのCCU
において1にセットされることである。これがC3TA
RTではな(CVECTOR命令であるという事実が、
CC(11: 10)と呼ばれるccUBUs(7)2
つのビットを用いて他のCEに対して伝えられる。これ
らの2つのビットは、同時並行処理を開始する4つのタ
イプの命令(C3TART、C5TARTST、CVE
CTORおよびCVECTOR5T)間を識別すルタめ
CCUが使用するコードを提供する。この2つのビット
は52番目の機械サイクルにおけるり。
C5TART命令の間、即ちCCUBUSが使用されな
い時にのみ使用される。
ベクトル同時並行処理は、「ループ」における最後のベ
クトル演算に続<CREPEAT命令を用いて終結され
る。CVECTOR命令の後には唯1つの「反復」しか
ないため、最初のCREPEATの実行と同時に同時並
行処理を強+JIAI+ IyG、417 JPIL 
y mk瞼Lt 、%j f +−6,−F  啼a−
IJL  Mつの最下位ビットにおけるNUMを除いて
全て雫を含む32ビ・ノドの数(こわはC5TARTの
場合における如きCMAXの内容の代りである)をコン
パレータ110のY入力側に与えるマルチプレクサ10
5(第9図)によって提供される。このため、コンパレ
ータ110に続くゲートをして2番目の「反復」の開始
時にGTMAXを表明させ、これによりINLOOPを
0にセットしてこの2番目の「反復」の連続する実行を
阻止する。
CCURRは、最初の「反復」の完了に続いてRDY回
線の表明によってNUMを越える数にセットされる。
(L、ネストされる同時並行ループ) 本システムは、それ自体が1つのループの同時実行を呼
出すサブルーチンを含む同時実行ループ内のサブルーチ
ン呼出しを許容する。後者は、サブルーチンがこれを呼
出すプログラムとは独立的にコンパイルすることができ
る故に生じて、ある特性サブルーチンが同時に実行され
るループ内から呼出されるかどうかをコンパイル時に知
ることを不可能にする。
別の同時のループ内の同時並行ループは、ネストされる
同時並行ループとして知られ、同時には実行されない。
ネストされるループに遭遇する同じ処理装置においてネ
ストされたループを逐次実行することが行なわれる。一
連のネストされたループをそれぞれ他方に有することは
可能である。しかし、如何なる場合も、最も外側のルー
プのみが同時に実行される。全ての内側のループは、そ
れが同時実行のための命令を含むかどうかに拘らず、同
じ処理装置において逐次実行される。
NESTEDおよびINLOOPの状態ビットは、これ
が最も外側のものであるかあるいは実行中のネストされ
た同時並行ループであるかを追跡するため用いられる。
最初のC5TARTが実行中に遭遇される時INLOO
Pは「1」にセットされ、最も外側の同時並行ループの
開始を示す。
INLOOPが既に「1」にセットされた後にCNES
Tに遭遇する時、NESTEDは「1」にセットされる
ネストされたループの初めに、CCUがその時の反復レ
ジスタ(CCURR)をクリアする。ネストされたルー
プの以降の反復は、各反復の終りにおけるCCURRの
値に対して1を加算することにより割当てられる(NE
STED状態ビットの表明は、CCURRを増分するロ
ジックの動作を変更する。)。
トラップの直列化(前の論議参照)があるネストされた
ループの実行中でも継続できるためには、最も外側のル
ープのその時の反復の3つの最下位ビットがC5TAT
レジスタにおいてCURROとして保管される(NES
TEDが表明される時、CURROはこれが最も外側の
ループの最後の反復中に有する値に凍結され、ADDC
URROはあるネストされたループにおけるCREPE
ATの実行と同時にC0NTR0Lロジツク・アレイに
よっては表明されない。)。CURROの3ビツトが同
期レジスタC8Oの内容と比較さ九、ふたかも処理功畜
が最も外側の同時並行ループを実行中であるかの如き全
く同じようにTRAPOにが表明される。
このため、もしトラップがあるネスト・ループの実行中
に遭遇し、かつ5ERTRAPビツトがセットされてト
ラップの直列化を表示するならば、CEはTRAPOK
が表明されるまで待機する。
4つのレジスタ(CCURR,CMAX、CGSP、C
5TAT)の値は、このネストされた同時並行ループの
終結時にCEが適正に処理を続行するためには、このネ
スト・ループか開始する時点で保管されねばならない。
CNEST命令は、この4つの値を(オペランドにより
指定される記憶場所に)保管させ、ネストされたループ
としておそらくは実行され得る同時並行ループのCS 
T A RT IYi7に置かれねばならない。
CUNNEST命令は、4つの値を(全てのCNEST
命令において指定されるものと本来同じ場所であるオペ
ランドに指定される記憶場所から)対応するレジスタに
対して書込ませ、ネストざ九るループ(もしくは一連の
ネストされたループの最後のもの)のCQUITまたは
CREPEAT命令に従わねばならない。通常は、異な
る記憶場所か、ループが相互にネストされ得るようにC
NESTおよびCNNESTNESTEDり指定される
レジスタがネストされたループの実行中使用される故に
値CCURRおよびCMAXが保管され、またこの値は
最も外側のループの処理が再開する時必要となる。
CGSPの値は同様な理由から保管される。大域スタッ
ク・ポインタは、これが逐次処理を再開するCEに対し
て与えることができるように留保されねばならない。こ
のスタック・ポインタはネストされるループの実行に先
立って保管されるが、これは最も外側のループにおける
ものと同じネストされたループであるC5TARTシー
ケンスがCEのスタック・ポインタのその時の値をCG
SPレジスタに対して書込ませるためである。最も外側
の同時並行ループの場合には、スタック・ポインタのそ
の時の値がCGS Pレジスタに保留され、かつCEを
してCC5Tレジスタの値を読出させることにより、C
3TARTシーケンスにおける後のCEに対して専用ス
タックが割当てられる(次項参照)。しかしネストされ
たループの場合には、CEのスタック・ポインタのその
時の値は留保される必要はなく、ネストされたループが
最も外側のループに対する前記CEに対し割当てられる
専用スタックにおいて処理されることになるため、CE
に対して戻されねばならない。これは、NESTEDが
セットされる時はCEをCGSPから、またNESTE
Dがセットされない時はccspから読出させる(これ
は第9図に示されるPIDECロジック・アレイの機能
である)ことにより行なわれる。
C5TATし、ジスタの内容は、ネストされたループの
実行に先立ちNESTEDの状態を保留するために保管
される。これは、それぞれが別の内にある一連のネスト
されたループの当通な取扱いのため必要である。CUN
NEST命令が実行されてネスチングの1つのレベルの
完了を示す毎に、NESTEDの前の値がCCUに復元
され、その結果CCUはこれが最も外側のループへ戻さ
れたかくその場合、NESTEDは0に復元される)、
あるいは更に高いレベルのネストされたループへ戻され
たか(その場合はNESTEDは1に記憶された状態の
ままである)どうかを判定する。
ネストされたループの実行中、CNEXTレジスタに格
納された値は、他のCEがその動作可能状態の回線を表
明する時更新され続ける(この状態は、1つのCEが最
も外側の同時並行ループにおける新たな反復を試みる時
にのみ生じることになる)。しかし、CNEXTの内容
は、ループを開始する同じCEによりネストされたルー
プの全ての反復が実行されるため、ネストされたループ
の実行中使用されない。新たな反復の割当ては、噴にC
CURRの内容を1だけ増分することによりネストされ
たループにおけるC RE P EATハ+17舛しr
:’:+ nb l−4S六A 4−+ 4−1 ! 
  / w + IJ 74:I M hn〈行われる
。即ち、NESTEDが表明される時、増分器148(
第8図)に対する入力側におけるマルチプレクサがCN
EXTの出力ではな(CCURRの出力を増分器に対し
て送り、NESTEDが表明される時MASKロジック
・アレイ140が全ての動作可能状態回線をマスクし、
その結果唯1つの回線(NESTED自体により駆動さ
れる回線)が増分器148に対する人力において表明さ
れる。) NESTEDビットをセットすることによりもたらされ
る更に別の変更は、C3TATレジスタからのVPNお
よびNUM出力が零にセットされか(第11B図)こと
で、その結果5つのベクトルの同時並行命令(例えば、
VLH,VOHlVIH)の実行と同時に行なわれる計
算が逐次実行されるベクトル命令をもたらすことになる
(全てのベクトル要素は命令を実行するCEについて処
理される)。
(M、カクタス・スタック) 同時並行複合体における各CEは、1つの同時並行ルー
プの1つの反復に一義的なデータを格納するための専用
スタック(全体的に、カクタス・スタックと呼ばれる)
が割当てられる。このような一義的なデータは、2つの
タイプ、即ちサブルーチン引数(および戻りアドレス)
と一時変数からなる。カクタス・スタックは、C3TA
RTシーケンスの間形成される。C3TART命令を実
行するCEは、その大域スタック・ポインタ(GSP)
を複合体における全てのCEのCGS Pに対して書込
ませることにより、また全ての同じCEをして最も外側
の同時並行ループ(NESTEDはセットされない)の
場合にカクタス・スタック・レジスタccs pの内容
である仮想スタック・ポインタをそのCCUから読出さ
せることによって、カクタス・スタックを形成する。カ
クタス・スタック・ポインタとして割当てられる実際の
アドレスは各CEに対して一義的であり、同時並行処理
に先立ってC5AVEおよびCRESTORE命令を用
いてccspレジスタに対しアドレスを書込むオペレー
ティング・システムにより確立される。仮想スタック・
ポインタは、適当なR3ELコードおよび出力可能ビッ
トOEを表明することにより読出される。乙しNEST
EDがセットされなければ、PTDECロジック・アレ
イがccspの内容を選択する。
もしNESTEDがセットされるならば、これはcgs
 pの内容を選択する(これは、ネストされるループに
おいては、CEのカクタス・スタックにおけるスタック
・ポインタのその時の値を保有する。)。
(同時並行処理の事例) 第14図は、同時実行のいくつかの特性を示す。
最初に実行は逐次的であり、即ち唯1つのCEが命令を
実行しつつあり、残りのCEは遊休状態にある。ここで
活動状態のCEはCE5であるが、どのCEでもよい。
同時実行は、活動状態のCEがC3TART命令を実行
する時に開始する。各CEは反復0で始まる反復数を与
える。
C5TART命令は、ここでは20である最大数の反復
を指定する。
CEがある反復を完了すると、このCEはCREPEA
T命令がある場合にこれを実行して次の反復を開始する
。あるCEが1つの反復を求めると直ちに、反復はこの
CEに対して割当てられる。反復が条件コードを含む場
合は、反復が異なる長さとなることに注意されたい。 
 ・CREPEAT命令が実行される時実行すべきこれ
以上の反復が存在しなければ、2つの事象の一方が生じ
る。もしCEが最後の反復以外の反復を実行中ならば、
これは単に遊休状態となる。これは、反復16を完了し
た後のCEOの場合である。一方、もしCEが最後の反
復を実行中であれば、このCEは他の全てのCEが逐次
実行の継続餌に遊休状態となることを待機する。これは
、CE2が反復20を完了した後のこのCE2の場合で
ある。
このコートは、1つのCEについて50の時間fit位
を要することになる。同時実行の場合には、これは8時
間単位を要する。このスピードアップは5078=6.
25である。典型的には、反復数がNの倍数でない時、
あるいは反復が実行のため異なる回数を要する時、N個
のCEがNよりやや小さな因数だけコードをスピードア
ップする。しかし、このスピードアップは、反復数が増
加するに伴ってCE数に近似する。
CEに反復を与えることは、反復の開始時において反復
数CURRが反復を実行すべきCEのレジスタD7に置
かれることを意味する。どのCEに対する最初の反復も
そのCEの仮想処理装置番号VPNである。
CEは、1つのCEによるC3TARTの実行に続<C
5TARTシーケンスの間これが実行すべきはどのコー
ドかを学習する。CCUおよびCCUBUSを用いて、
全てのCEはC3TART命令後に命令のアドレスと等
しいプログラム・カウンタで始動さ九る。
CREPEAT命令は、条件付き分岐命令である。もし
別の反復があるならば、CEはこの分岐をとり新たな反
復を与えられる。もし別の反復がなければ、CEはこれ
が最後の反t’=を実行中であるかあるいはそうでない
かに従って終了するか遊休状態となる。表1は同時並行
ループを示している。即ち、 ループのプロローグ、CE毎に1口実行されるコードは
、レジスタをロードしかつ反復毎に実行される必要がな
い他の操作を行なうことができる。表2は1つのフォー
トラン・ループを示している。即ち、 表−一一一一一λ Fortrancode:  Do  l  I=1.
NI A(I) =  [+J 表1および2のループは独立的な反復を有する、即ち、
反復は結果を変更することなくどんな順序でも行なうこ
とができる。更に困難な場合は、相互に依存しかつ従っ
て正しい結果を生じるように同期されねばならない反復
を有するループである。表3は、同期を必要とする従属
部を示す。
表−3− ここで、1つの反復に格納される値は、次の反復により
ロードされる。正しい結果を得るためには、ロードは格
納の後に生じなければならない。
反復IがXをロードし得る前に、この反復は反復1−1
がXの格納を完了するまで待機しなければならない。こ
の従属部を同期させるためには、2つの命令がコードに
挿入されることを必要とする。「進行してよいか?」の
命令はCAWA I Tと呼ばれ、「進行せよ!」の命
令はCADVANCEと呼ばれる。−例が表4に示され
る。即ち、友−4 Fortran:      Dol  1=LNCA
WA IT命令は、前の反復を実行するCEがCADV
ANCEを実施するまで、これを実行するCEをして待
機させる。次いで、Xをメモリーから安全に取出すこと
ができる。Xが格納された後、CADVANCE命令が
CEに信号してこれが進めることができる次の反復を実
行する。
CAWAITおよびCADVANCE命令におけるC5
!は、8つの同期レジスタC8O〜C57の1つである
。各々は1つのループにおける異なる従属部を同期させ
るため使用することができる。ループが同期レジスタよ
りも多い従属部を有する起りそうにない事象においては
、最初のCAWA I Tと2番目のt麦のCADvA
NCEの前に、2つの従属部を1つのCAWAITと組
合せることができる。CAWA IT命令におけるOは
連続O〜7における1つのオフセットである。
通常、従属部は、1つの反復から次の反復までのもので
あり、0のオフセットが用いられる。しかし、しばしば
この従属部は表5の事例におけるように、2つ以上の反
復に跨がることになる。即ち、 表−一一一一一二 Fortran:    Do 1 [=1.Ncre
peat  Top 4つの同時並行命令についてこれまで論述した。5番目
の命令CQUITは最後の反復に先立ってループの出[
1を実現する。−例を表6に示す。
L  !F  CA(1)、!Q、X)Go  To 
 2 JsI Cod@:    cstartst  It l I
          Q%並行実1川用表7は、X=1
およびA= [0,2,4,6゜8.7,5,3,1.
2.1.9]である時、表6のコードが4つのCEの同
時並行複合体について実行される状態を示す。簡単にい
えば、各命令は1単位時間を要するものと仮定される。
友−一一一−ユ CE: Time    0        1       
2       31  −cstartst   (
idle)     (idle)     (idl
e)2    0fmoves        1fs
oves        2fmoves      
  3f+*oves3  0fc履ps     l
fcmps     2fcmps     3fcm
ps4  0fbeq (0≠1)  1fbeq (
2≠1)  2fbeq (4≠1)  3fbeq 
(fi≠1)5   0crepeat      1
crepeat      2crepeat    
  3crepeat6  4fcmps     5
fcmpg6fc+*ps     7fcmps7 
 4fbeq (8≠1)  5fbeq (7≠1)
  6fbeq (5≠1)  7fbeq (3*I
)8  4crepeat    5crepeaL 
   6crepeat    7crepeat11
  8cawait    9crepeat   1
0cawait    1lcrepeat14  −
+*ovl     (idle)     (idl
e)     (idle)+s     −5ovl
           (idle)        
  (idle)          (idle)各
CEにより実行される反復数および簡略コードは各ステ
ップにリストされる。最初に気が付くことは、各反復が
同じものであるため、CREPEAT命令が同じサイク
ルにおいて生じ、待機する必要がないことである。次に
気が付くことは、例え前の反復が最後の反復となるかを
知らなくとも反復が開始されることである。例え、8が
最後の実際の反復であっても反復9.104J  I−
7f  I  I Jl< tin 五ム 七 +1 
   5A 1σ11’;’;(k n)口!1 hJ
q  +÷    =hらが結果を変更させるため何も
しない限り無害である。事例においては、その全てが行
なうことは取出しとテストであり、このため問題が全く
生じ得ない。しかし、もし格納操作がこれら残りの反復
において行なわれるならば、問題が生じ得る。
正しい反復がCQU I Tを行なうことを確認するこ
とが必要となる。CE2は、単にA (11) =Xで
ある故に反復10が最後のものであると考えることを許
されるべきでない。正しい反復がCQU I Tを実行
することを保証するため、ループはC3TARTST命
令から開始され、これがCREPEAT命令をしてこれ
もまたC3T(下記参照)と呼ばれる同期カウンタC5
Oに対してCADVANCEを行なわせる。また、CQ
UIT命令に先立ッテ、CAWAITC8O命令が挿入
される。これが、例え後の反1uが更に前に終了しよう
とする場合でも、最も前の反復が終了することを保証す
る。
もし前の反復がCQUITを実行するかどうか確実でな
くとも結果を格納しないようにソフトウェアを書込むべ
きである。これが、例えば、ループの索引の格納がCQ
U I T命令の後に行なわれた理由である。
例えCQU ITが更に前の反復において実行すること
ができても反復を開始する別の側面的効果は、トラップ
、例えば0による除算またはページのエラーがこのよう
な反復において遭遇することもある。−例を表8に示す
夫−m−−1 cstartst   N ↑op:  ・・・ Xf  aa*  Th@n  (:QLlit   
     反復10にライてA =  8/CC=  
反復11において0crep@at   Top 反復11における零による除算のトラップは、反復lO
におけるCQU I T前に生じることを許されるべき
ではない。これを行なうためには、C5TARTのC5
TARTSTの変態が再び使用される(サフィックスr
STJは直列化されたトラップを意味する)トラップの
直列化は、単にCQLI IT命令を含む同時並行ルー
プにおいて必要であるに過ぎない。C3TARTSTル
ープは、暗黙に同期カウンタC8Oを使用する(これも
また、トラップを直列化するためこれが用いられる残部
としてC3Tと呼ばれる)。
C3TARTST命令の使用は、CREPEAT命令に
おいて暗黙のCSTに先立ち、トラップに遭遇する時(
TRAPOKが表明されるまで)CSTに対し暗示され
たAWAITを強制する。
CQU I Tは、その#0だけ前のCAWAITC8
Oなしで使用することができる。これは、割込み型CQ
UITと呼ばれる。割込み型CQUITを実行するどの
処理装置も、例え最下位の反復を実行するものでなくと
も同時並行ループを停止することになる。これは、どの
CEが探索の目的を見出した時でも探索を終了するある
探索プログラムにおいて有益である。
同時並行ループは、サブルーチン自体が同時並行ループ
を含む如何に拘らずサブルーチンに対する呼出し前後で
使用することができる。換言すわば、同時並行ループは
ネストすることができるが、内側のループはそれぞれ1
つのCEについて逐次実行する。この理由から、1つの
サブルーチンは通常その内部にネストされた同時並行ル
ープを含まない。表9におけるコードは、同時並行ルー
プを含むルーチンに対して用いられ、同時並行ループま
たは直列コードのいずれかから呼出すことができる。即
ち、 九−一一一遣 呼出し側ルーチン、                
 呼出されるルーチン二raor* concurre
nt  1oop!cstart    Nn Tn工   □。
cl”sweat   Tn cunnest   (so)+ ;;: 命令CNESTおよびCUNNESTは、1つ以上の同
時並行ループを有するサブルーチンの初めと終りにおい
て使用される。これらは、外側のループに対するその時
および最後の反復を保管し復元するため必要である。表
9の事例においては、呼出しルーチンにおける最初のサ
ブルーチン呼出しくjsr)が同時並行ループ内に現わ
れ、サブルーチン内の同時並行ループの各実行がこのサ
ブルーチンを呼出したCEにより逐次行なわれることを
意味する。第2の(jsr)は同時並行ループの外側に
現われ、このためサブルーチン内の同時並行ループは複
数のCEにおいて同時に実行される。
(背面スイッチ) CEは、第15図に示されるように、背面スイッチ14
によりキャッシュのカドラント(四半部)に対して接続
される。
(A、回路) 48の制御回線200は、背面スイッチを経由すトまで
背面を横切って延長する。6つの制御回線が合計48の
制御回線に対しCE毎に接続され、線の全てが各カドラ
ントに対して接続されている。各CEに対する6つの制
御回線とは、C3TRTL、CBUSYL、CWAI 
L。
CADR5、CADR4x3およびCDTPARである
。全体としてこの6つの制御回線はCEOに対してはA
C,CEIに対してはBC,CE2に対してCC,、、
、等の如く示される。
CBUSYL、CWAITLおよびCDTPARがオー
ブン・コレクタ信号として構成される。
96本の回線が各CEおよび各キャッシュ・カドラント
から背面スイッチまで延びている。即ち、64木の両方
向性のデータ回線CDT (63:O) 、 26本の
アドレス回線CA D R(27: 6.4.2:0)
、1本のアドレス・プロセッサ回線CADRPAR13
本のCE操作回線CEOP (2: O)および2木の
データ長回線CDLN (1: 0)である。各CEお
よびキャッシュ・カドラントもまた、データおよびアド
レスをスイッチに対し接続された96木の両方向性の回
線から読出すことを可能にする作動可能回線、例えばA
EおよびWEを背面スイッチに提供する。キャッシュの
カドラントは、方向信号WD、XD、YD、ZDを背面
スイッチに提供し、これがスイッチを介して送られるデ
ータおよび2組の3ビツトCE選択信号WS (2:O
)、xs (2:O)、YS (2:o)、ZS (2
:0)の方向を規定し、これら信号がこれに関して転送
が行われつつあるCEを指定する。図面においては唯1
組の選択信号が示されるが、個々の3ビツト選択信号が
アドレスおよびデータ毎に与えられる。
背面スイッチは24の同じ4回線スイッチ190からな
り、これが−緒にCEとキャッシュのカドラントとの間
の96木の回線を切換える能力を提供する。スイッチ1
90が物理的に背面192(第18図)に所在し、これ
に対してCEボードおよびキャッシュのボードが差込ま
れる。それぞれ4回線のスイッチが1つのCMOSゲー
ト・アレイ(富士通2600)を用いて実現される。
4回線の1つのスイッチ190のブロック線図が第17
図に示される。背面14を通る96本の回線の内4本は
、各カドラントおよびCE(例えば、カドラントWに対
するW3、W2、W1%WOおよびCEOに対するA3
 、 A2 、 AI 、AO)に対してそれぞれ4回
線スイッチIQQに対して接続され、またCE選択回線
(例えば、WS2、WSI 、WSO)もまたこの4回
線スイッチに対して接続される。
各4回線スイッチは3つの機能部分、即ちキャッシュ・
ポート部202、選択部204およびCEボート部20
6を有する。
キャッシュおよびCEボート部は、各キャッシュ・カド
ラントおよびCEからの4本の両方向性の回線を8木の
一方向性回線に分割し、4本はCEに向い(rINJ回
線)、4本はCEからのもの(rOUTJ回線)である
。例えば、CEOからの4木の両方向性回線A(3:O
)はCEに行く4本の回線AIN(3:0)とCEから
の4の機能のため用いられるロジック208.209は
各キャッシュのカドラントおよびCEからの4本の回線
の1つとして第16図に示される。スイッチに入る各回
線(例えば、WO)(キャッシュ・カドラントからの1
6本とCEからの32本)は、バッファ・ゲート210
およびインバータ212を通り、スイッチから出た各回
線は、対応する作動可能回線がローまたはハイの状態(
CEポート)にある時作動可能状態となる3状態ゲート
214を通る。
例えば、キャッシュ側では、両方向性回線WOはゲート
210 、212を通ってWINOとして現われ、反対
方向においては作動可能回線WEがローの時WOUTO
か3状態ゲート214を通る。
CEの側においては、両方向性回線AOかゲート210
.212を通ってAOUTQとして現われ、作動可能回
線AEがハイの時A I NOが3位置ゲート214を
通る。ゲート210 、212 、214が背面スイッ
チに対し接続されたキャッシュ・ポートおよびCEポー
トの各々に対して設けられている。
前記スイッチの選択部204は、転;美がCElj対す
るものである時は選択されたキャッシュの出力回線(例
えば、WINO)を選択されたCE入力回線(例えば、
AlN0)と接続し、また転送がCEからのものである
時は選択されたCEの出力回線(例えば、AOUTO)
を選択されたキャッシュの入力回線(例えば、WOUT
O)に対して接続するよう作用する。この選択は、指令
回線(例えば、WD)および3ビツトのCE選択回線(
例えば、WS(W:O))を用いて、キャッシュによっ
て制御される。
キャッシュ・ポートからCEボートへ転送されるデータ
は、CEボートにおいてNANDゲート220(第16
図)を駆動する4つのORゲート218からなる4ビツ
ト幅のセレクタ21Bにより選択される。このORゲー
トは、CE選択信号WS、xs、ys、zsをデコーダ
222ニオイテ復号することにより生成される4つの選
択信号WSELA、X5ELA、YSELA。
ZSELAの制御下で、4つのキャッシュ出力信号WI
NO,XlN01YINO1ZINOの1つを選択する
。選択信号がローの時、そお対応するキャッシュの出力
信号が選択される(例えば、ローにセットされたWSE
LAかWINOをAlN0に対して接続させる)。セレ
クタの適正な操作は、2つのキャッシュ・ポートが同時
に同じCEポートをアクセスしないことを要求し、これ
はCE/キャッシュのプロトコルによって保証される(
下記参照)。明瞭にするため、セレクタ216およびデ
コーダ222を1つしか第16図に示さない。各CEに
対し接続された4本の回線の各々に1つずつ合計32個
が各4回線スイッチに設けられる。
CEボートからキャッシュ・ポートに対して送られるデ
ータは、キャッシュ・ポートにおいて、3ビツトのCE
選択信号(例えば、ZS)を8つの選択信号(例えば、
ASELZからH3ELZまで)に変換するデコーダ2
24からなる8対1マルチプレクサ230と、前記の8
つの選択信号を用いて8つのCE出力信号(AOUTO
からHOUTOまで)の1つをあるキャッシュ・ポート
(例えば、ZOUTO)に対して接続するゲート226
 、228によって選択される。CE/キャッシュのプ
ロトコル(下記参照)は、如何なる時も唯1つのキャッ
シュ・カドラント(W、X、YまたはZ)しか同じCE
をアクセスしないことを保証する。唯一のマルチプレク
サ230が第4図に示される。各キャッシュ・カドラン
トに対して接続された4本の回線の各々毎に1つずつ合
計16個が各4回線スイッチに設けられる。
(B、作用) CEは、そのC5TRTLを表明し、かつキャッシュの
4つのインターリーブされたカドラントのどれが操作に
関与させられるかを指定する2つのアドレス・ビットC
ADR5およびCADR4x3を指定することによりキ
ャッシュの動作を開始する。CADR5は、CEにより
開始される動作に含まれる記憶アドレスにおける5番目
の最下位ビットである。CADR4x3は、記憶アドレ
スの3番目および4番目のピッビットはキャッシュのカ
ドラントをアドレス指定する際組合される理由は、キャ
ッシュのカドラントがインターリーブされる方法と関係
を有する(キャッシュの論議参照)。もし2つのキャッ
シュ・カドラントしか使用されない(例えば、もし4つ
のGELか使用されない)ならば、アドレス・ビットC
ADR4x3のみを用いて特定のカドラントをアドレス
指定し、CADR5は背面スイッチを介して送られるア
ドレスの残りと共に使用されるアドレス指定されたキャ
ッシュのカドラントにより保管される。
8つものCEが、4つのキャッシュのカドラントのどれ
かに対するアクセスを同時に試みることができる。アク
セスの競合はキャッシュのカドラントによって解かれる
。C5TRTLが表明されるものと同じ85ナノ秒のサ
イクル(最初のサイクル)において、アドレス指定され
るキャッシュのカドラントが、競合するCEのどれが優
先順位を有するかを解き(背面におけるCEの物理的場
所ry  tt IIX−r/Ml  テ Lイ t”
:Fnt寸)市/l’14fffi  CIS’  )
  n  #、高い優先順位を有する)、また2番目の
85ナノ秒周期において、前記カドラントに対するアク
セスを要求中のものの最も高い優先順位のCEを除く全
てに対してCBUSYLを表明する。このCBUSYL
を受取るCEは、以降のサイクルにおいてC3TRTL
のそれらの表明を維持する(これらが前記カドラントに
対するアクセスを要求し続けさせれば)。キャッシュの
カドラントは、問題のCEからアドレスを受入れること
ができるまで、あるいはこのCEがC3TRTLを取出
すまで、以降のサイクルにおいてCBUSYLの表明を
維持する。CBUSYLが取出されると、同じサイクル
においてアドレスの転送が生じる。CEは、1つのアド
レスの転送に続くサイクルにおいてそのC3TRTLを
取出し、あるいはキャッシュのカドラントが新たなキャ
ッシュのアクセス要求としてその存在を解釈することに
なる。キャッシュのアクセスは、2番目サイクル、即ち
アドレスの転送が行われるサイクルにおいてそれがC3
TRTL表明を取出すことによりCEによって打切られ
る。
また2番目のサイクルにおいては、キャッシュのカドラ
ントは背面スイッチに対してアドレスCA D R(2
7:6、4.2:0) 、命令コードCEOPおよびデ
ータ長コードCEDLNを選択されたCEから転送する
ことを指令する。キャッシュのカドラントは、これをそ
のCE選択回線(例えば、WS)における選択されたC
Eに対するコードを表明することにより行なう。背面ス
イッチを介するアドレス回線が一方向性であるため、航
記スイッチの8つのアドレス・ゲートに対する指令回線
(例えば、WD)および作動可能状態回線(例えば、W
E)は適当な状態においてハードワイアドされている。
キャッシュのカドラントは、スイッチを介して送られる
アドレスCEADR(27: o、 4.2:0)の2
6ビツトをキャッシュのカドラントのアドレス指定の際
使用される2つのビットCADR5およびCADR4x
3と組合せて、全記憶アドレスを生じる。
3番目のサイクルにおし1て、もしCEOPコードがC
Eが読出し操作を要求しつつあることを示すならば、キ
ャッシュのカドラントがそのタッグ・ストアを調べて、
読出されるべきデータが存在するならば見出される場所
においてデータ・ストアからのデータの読出しを同時に
行ないながら、アドレス指定されたカッドワード(デー
タ転送は64ビツトのカッドワードにおいて行なう)が
そのデータ・ストアに存在するかどうかを判定する。同
じサイクルにおいて、キャッシュのカドラントは背面ス
イッチをセットアツプして(スイッチのCD7回線に対
するCE選択回線を表明し、かつ指令回線例えばWDの
状態を変更することにより)選択されたCEに対してデ
ータを送戻すよう用意する。
4番目のサイクルにおいては、もしタッグ・ストアの索
引が成功し、かっこわを妨げる他の条件(例えば、資源
の競合)が存在しなければ、データは前記背面スイッチ
を経て選択されたCEに対し転送される。もし索引が不
成功ならば(即ち、カドラントは選択されたCEに対す
るCWA I TL回線を表明し、背面スイッチからの
データの読出し前にCWAITLの表明の取出しまでC
Eに待機することを指令する。CWAITLは、キャッ
シュのカドラントが要求されるデータの転送の用意がな
されるまで表明状態を維持する。この転送は、CWAI
TLが表明されない最初のサイクル間に生じる。
もしCEOPコードが書込み操作を指定するならば、3
番目のサイクルにおいてタッグ・ストア索引操作が生じ
(しかし、データ・ストア読出しは行なわれない)、背
面スイッチはCEからCD7回線上のキャッ゛シュに対
してデータを転送するよう構成されている。もし首記索
引が成功するならば、4番目のサイクルにおいてデータ
の転送が生じ、5番目のサイクルにおいてデータ・スト
アに対する書込みが生じる。もし索引が不成功ならば、
CWA r T Lか表明され、CWAITLの表明が
取除かれるまでCD7回線上にデータを10番ヒナツマ
しも番ね八ナフ CEに関するデータの出入りは、2番目のC5TRTL
および同じCEからのアドレス転送と重合せることがで
きる。このような重合されたアクセスは、同じもしくは
別のカドラントにより而の操作のためのデータ転送が完
了される前に、キャッシュの始動が1つのキャッシュの
カドラントにより受入れられる(CBUSYLは戻され
ない)可能性を生じる。このような場合には、関与する
1つまたは2つのカドラントは、データが予期される順
序で転送されること、およびCWAITL信号が不明瞭
でなく表明されることを保証するため一緒に作動しなけ
ればならない。
これは、前記カドラントに対するデータ転送が完了する
如き時まで、キャッシュの始動を受入れるため最初のカ
ドラントのみによりCWAITLが表明されることを保
証することにより行なわれる。以降の操作のためのデー
タ転送は、更に以前のデータ転送の後(通常の場合にお
けるようにアドレス転送後2サイクルではなく)まで遅
れさせられる。もしこの以降の転送を制御するカドラン
トが転送を更に遅らせることを欲するならば、CWA 
I T Lを表明することにより行なうことができる。
この場合、CWAITLの1回の表明の終りから次の表
明の初めまで正確に2サイクルの遅れが存在することに
なる。一旦CWAITLが以降の転送を行なうキャッシ
ュのカドラントの制御下に置かれると、データ転送のタ
イミングは通常の場合におけると同じものとなる。
キャッシュのカドラントは、全てのCEに対するCWA
 I T L回線が全てのキャッシュのカドラントによ
り読出すことができる時どのCEに対してCWAITL
回線が表明されたかを検出することができる。
CD7回線に転送されたデータの64ビット全体に基く
データ・パリティ・ビットCDTPARは、データ転送
に続くサイクルにおいて送出される。アドレス・パリテ
ィ・ビットCADRPARは2番目のサイクルにおいて
アドレスと共に転送される。
CEOPコードにより指定される3つの基本操作がある
。即ち、READ、WRITE、およびTESTおよび
SET (TAS)である。最初の2つは判り易いもの
であり、既に論述した。
TAS操作は、アトム(最小識別単位)のテストおよび
メモリーにおける1つのビットのセットを行なう。この
操作は、アドレス指定されたバイトを1にセットされた
ビット7と共にメモリーに対する書込みをも行ないなが
ら、キャッシュからのアドレス指定されたバイトの読出
しおよびそのCEに対する返送によって行なわれる(8
バイトのカッドワードの転送の一部として)。システム
のどこにおける他の処理装置が操作の読出しと書戻しの
部分間でデータのアクセスができないことが保証される
処理装置間の割込みメツセージを背面スイッチ、キャッ
シュおよびメモリー・バスを介して他の処理装置に対し
て送るためにCEOPコードもまた使用される。CEに
対しこのような割込みの発生および性格について信号す
るためキャッシュ示せず)を提供することもできる。
CEOPコードにより指定される読出し、書込みおよび
TAS操作に加えて、(カッドワード境界に跨がるミス
と整合した書込みの2番目の半部を行なうため)書込み
の継続操作を指定することもできる。
データ長ビットCDLN (1: 0)は、アドレスと
共に書込み操作により修正されるべきアドレスに続くバ
イト数についてキャッシュのカドラントに指令するため
アドレスと共に転送される。
(中央処理キャッシュ) (A、 要約) このシステムは、8つまでのCEをサービスする大域的
な中央処理キャッシュを要求する。このキャッシュは4
つのインターリーブされたカドラント(w、X、Y、Z
で示される)に分割され、その内の2つは2つのCPキ
ャッシュ・ボード12の各々に存在する。各キャッシュ
のカドラントは、通常、それぞれ85ナノ秒のサイクル
において客仝tr I fr 、1.ト°ワード: /
 R4)” ni k )の錦![−17主t−は占込
みアクセスを完了し、その結果毎秒376メカバイト付
近のピーク総処理量をもたらすことになる。
キャッシュのブロック・サイズ(キャッシュとメモリー
間に移動されるデータの最小量)は32バイトである。
各ブロックのデータは、どの32バイト・ブロックに対
してもカッドワード0および3(カッドワードは8バイ
ト・ワードである)がカドラントWおよびカドラントX
におけるカドワードlおよび2に含まれるように同じキ
ャッシュ・ボードにおける2つのカドラントW、x間に
インターリーブされている。連続する32バイトのブロ
ックは、カッドワード4および7がカドラントYおよび
カドラントZにおけるカッドワード5および6に配置さ
れるように、キャッシュ・ボード間にインターリーブさ
れる。このインターリーブはCADR5の使用により行
なわれ、ボード内のカドラントを選択するためキャッシ
ュ・ボードおよびCADR4X3を選択する。
キャッシュのカドラントは書戻しキャッシュ・プロトコ
ルを使用し、読出しおよび書込みの同操作かキャッシュ
により取扱われることを意味する。キャッシュにおいて
修正されたデータは、データがシステム内のどこか他の
場所において要求されるまで、あるいはこれが保有され
るキャッシュ・ブロックが他のデータに対して必要とな
るまで、主記憶装置に書戻されることはなく、またそわ
がキャッシュに滞在する間修正されなかったブロックは
置換された時メモリー内にδ戻されることがない。
各キャッシュのカドラントは32にバイトのデータ記憶
場所を保有し、4つのカドラント・キャッシュ全体で1
28にバイトとなる。これらカドラントのデータ・スト
アは直接マツプされ、これは主記憶装置におけるどの場
所においてもこの主記憶装置の場所からのデータのコピ
ーを保持することができるキャッシュにおける1つの場
所があることになる。
(B、データ経路) 各キャッシュのカドラントにおけるデータ経路は第19
図(カドラントWおよびカドラントXの一部を示す)に
示されている。64ビツト・データ・ハスCD I O
(63: 0 ) &i、データ・ストア300の11
0回線をECCゲート・アレイ302(2つのゲート・
アレイとして構成される)、CEインターフェース・デ
ータ入力レジスタCDIN。
CEインターフェース・データ出力レジスタCD0UT
および主記憶装置のバス入力レジスタDMB I Nに
対して接続する。データ・ストア300は、!6の4に
X4M0SスタチツクRAMプラス、パリティのための
8つの4にXIMO3RAMを用いて実現される。CD
l0バスを分割する各部の出力可能信号は、1つのバス
・ソースから他のバス・ソースに対する転送の門生じる
バスの競合の可能性を最小限度に抑えるため、遅延回線
により生じるタイミング信号と共にゲートされる。第1
9図におけるサフィックスWはカドラントWに帰属する
各部を示し、同じ部分がカドラントXに存在する。
り・バスの1つからデータを受取り、同時にこれをデー
タ・ストア、ECCアレイ、およびCD0UTレジスタ
に対して供給する。
CDINレジスタは、CEから背面スイッチを介してC
DTバス上でデータを受取り、これを同時にデータ・ス
トアおよびECC(パリティ検査および生成のための)
に対して供給する。データ・ストアがデータを受入れる
ことができるまで、CWAITL信号を用いてCEから
のデータの受入れを遅延させる。
CD0UTレジスタは、データ・ストア、ECCアレイ
およびDMB I Nレジスタからデータを受取り、こ
れを背面スイッチを介してCEへ供給する。このレジス
タに対するクロックは、ECC検査ビットの検査中、も
しくはCDTバス上の書込みデータから読出しデータへ
の変換中データを別のサイクルにおいて保持するために
(HLDCDOUT信号によって)停止することができ
る。
ギー々、 フl−,v’Hol /7MハI+、−y岨
ス& l呼&;)すZU出しまたは書込みは、データ部
分に対する対応する読出しまたは書込みの後1サイクル
だけ生じる。これは、最長タイミング経路からパリティ
・ビットの生成において費やされる時間を取除くため行
なわれる。
各カドラントにおけるECCゲート・アレイは、主記憶
装置のインターフェースに対するエラー訂正検査および
生成機能、およびデータ・ストアおよびCEインターフ
ェースに対する生成を行なう。ECCアレイはまた、キ
ャッシュから再び主記憶装置に対して書戻されるデータ
のためのデータ経路を提供し、TEST/SET操作の
実行を助ける。
キャッシュから主記憶装置に対して書戻されるデータの
各ブロックは、データ・ストアからECCアレイに対し
て一時に1カツドワード(64ビツト)ずつ読出される
。データを受取った後のサイクルにおいては、ECCア
レイがデータのバイト・パリティを調べ、主記憶装置に
対するデータと共に書込まれるべき検査ビットを生成す
る。
次いで、データおよび検査ビットの組合された72ビツ
トが書戻しファイルに格納される。この書戻しファイル
は、主記憶装置に対する転送のため2カツドワードを保
持する。与えられたキャッシュ・ブロックの他の2つの
ワードは、ボードにおける他のキャッシュのカドラント
に対するECCアレイにより取扱われる。書戻しファイ
ルからのデータが後で主記憶装置のデータ・バスに対し
て駆動される時、2つのカドラントに対するECCアレ
イがその各々のデータ・バスに対してデータを駆動する
際交番する。
2つの72ビツトの主記憶装置のバス、即ちDMBTA
およびDMBTBがある。同じキャッシュ・ボードにお
けるキャッシュのカドラントは異なるバスに対して割当
てられている。
DMBTAはWおよびYのカドラントに割当てられ、D
MBTBはXおよびZカドラントに対して割当てられて
いる。このため、DMBTAバスは常にあるデータ・バ
スのカッドワード0および3を転送し、DMBTBバス
はカッドワードlおよび2を転送する。この2つの並列
バスを使用することは、2つのデータ・ブロック転送を
同時に進行させることにより記憶バスの帯域幅を増加さ
せる。キャッシュ・カドラント間でアクセスされたデー
タ・ブロックを分割することで、有利なデータの11前
取出しを行なう。各記憶バスはECCアレイによって8
5ナノ秒サイクル置きより大きな頻度で駆動されること
はなく、ECCアレイはデータが記憶バス上に置かれる
サイクルより前のサイクルにおいてデータを駆動し始め
る。
メモリーに対するδ戻しのためのデータ経路として作用
することに加えて、ECCアレイもまた、CDl0に置
かれた他のデータを読込み、このデータに対してパリテ
ィまたはECC操作を行なう。例えば、データ・ストア
からCD0UTレジスタに対してデータが読込まれる時
、ECCアレイは正しいデータ・ストア・パリティを1
割へ、CEに送るため適当なバス・パリティを生成する
。同様に、データがCEからキャッシュに対しリティに
ついて調べ、適当なデータ・ストア・パリティを生成す
る。
データがDMB I Nレジスタからデータ・ストアへ
転送される時、ECCアレイは正しいデータ・ストア・
パリティを生成し、ECCエラーについて調べる。もし
ECCエラーが見出されれば、ECCアレイは、CDl
0バス上の誤りのあるデータの初期の転送に続いて、3
番目のサイクルにおいて訂正されたデータをデータ・ス
トア(および、適当ならばCEデータ出力レジスタ)に
対して供給する。
ECCゲート・アレイはまた、TEST/5ET(TA
S)操作の実行における1つの役割を演じる。TAS操
作がCEがら転送されたCEOPコードによって指定さ
れる時、ECCアレイはデータ・ストアにより指定され
たデータを読込んでそのパリティを通常の如く調べる。
2サイクル後、ECCアレイはこの同じデータをバスに
戻すが、1にセットされた各ハイドの最上位ビ、すにν
n L−臣−A−国に冬n→トノh市1.−廿1.%イ
I→適当なデータ・ストア・パリティが更新てきるよう
に、ECCアレイは新たなデータに対するパリティ・ビ
ットを供給する。
(C,アドレス経路) 各キャッシュのカドラントに対するアドレス経路を第1
9図に示す。キャッシュのカドラントは、CEから28
ビツトの物理的なバイト・アドレスを受取る。このアド
レスの各部分の主要部は表IOに示される。即ち、 アドレスの3つの最下位ビット(ビット0乃至2)は、
指定されたカッドワード内の所要のバイトを示す。これ
らのビットは、アドレスの一部としてではなく制御情報
としてキャッシュにより取扱われ、これらビットはCE
により指定されるデータ長コードCD LNと共に用い
られて、どのバイトを書込みまたはTAS操作により修
正すべきかを決定する。
アドレスの次の2つのビット(ビット3および4)は、
キャッシュ・ブロック内の所要のカッドワードを指定す
る。カッドワードOおよび3が1つのカドラントに置か
れ、かつカッドワード1および2か他のカドラントに置
かれるため、ビット3および4の排他的ORであるCE
が供給するCADR4X3信号を用いて、CPキャッシ
ュ・ボードにおけるどのキャッシュのカドラントが所要
のデータを保有するかを決定する。このCEはまた、選
択されたキャッシュのカドラントがその2つのワードの
どちらが要求されるかを判定することができるように、
通常のアドレス・ビット4を供給する。
アドレスのビット5(要求するCEによりCADR5と
して供給される)は、4路のインターリーブされたシス
テムにおける2つのCPキャッシュ・ボードのどちらが
所要のデータ・ブロックを保有するかを表示する。
アドレスの次の11ビツト(ビット6乃至16)はキャ
ッシュの索引を形成する。これらビットを用いて、タッ
グ・ストアを(アドレス・ビット4と共に)アドレス指
定して、選択されたキャッシュのカドラントのデータ・
ストアをアドレス指定する。実際には、キャッシュのカ
ドラントを選択するビットと共に、初期化ビットを用い
て、アドレス指定される主記憶装置の場所からのデータ
により占められ得るCPキャッシュ内の1つの場所を指
定する。
アドレスの残りのビット(ビット17乃至27)はキャ
ッシュ・タッグを形成する。これらのビットは、アドレ
ス指定されるキャッシュ・ブロックに保有され得る主記
憶装置からのできるだけ多くのブロックのどれが実際に
CEにより要求されるかを示す。キャッシュかアクセス
されると、こ九らのビットはアドレス指定されるバッフ
ァに対するタッグ・ストア・エントリの内容と比較され
て、るかどうかを判定する。
1つのCPキャッシュ・ボードがそれ自体により2路の
インターリーブされたキャッシュとして用いられる時、
アドレスは表11に従って解釈される。即ち、 [ ビットO乃至4の機能は変化しない。しかし、ビット5
はもはやボード選択ビットとしては必要でなく、索引に
桁送りされる。索引におけるビット5に対する空間を作
るため、ビット16がタッグに桁送りされ、これが1ビ
ツトだけ幅が広くなる。
各キャッシュのカドラントは、各サイクル(85ナノ秒
)毎にクロックされる3つのアドレス人力スイッチから
CAD R(27: 16>を受取る1つの12ビツト
のレジスタであり、こわら12ヒツトをアドレス・フロ
ー・ゲート・アレイ312(2つのゲート・アレイとし
て構成されるrAFアレイ」)およびタッグ・コンパレ
ータ314に対して供給16゜DSIDX316および
TS I DXL/ジスタ318を用いて、一方をデー
タ・ストアに対し、また他方をタッグ・ストアに対して
アドレスの索引部分の2つのコピーを保持する。
TS I DXレジスタ318は、背面スイッチを介し
てCEから、あるいはAFアレイからアドレスのビット
5乃至16を受入れ、これらビットをAFアレイおよび
タッグ・ストア320に対して送る。
DSIDXレジスタ316は、同し2つのソースからア
ドレス・ビット4と共に、同じアドレス・ビットを受取
り、こわらを用いてデータ・ストアをアドレス指定する
。CEから受取ったアドレスのビット4および6乃至1
6は背面スイッチから供給されるが、ビット5はこれが
前のサイクルにおいてCADR5としてその転送がら保
管されたフリップフロップによって供給される。DSI
DXレジスタ316はまた、背面スーrツチからアドレ
スCADR(4)のビット4を受取る。
2つの索引レジスタ316 、 :Ij8は同じ2つの
ソースから実質的に同じデータを受取るが、その人力選
択回線は、DSIDXレジスタGAアドレス・フロー・
ゲート・アレイからの異なるアドレスを受入れつつある
と同時に、TS I DXレジスタがCEからのアドレ
スを受入れつつあることかあり得るように独立的に制御
される。
単一・ボード形態もしくは複式ボード形態のいずれかで
適正に動作することができるように、2つの索引レジス
タは常にアドレスのビット5とビット16の双方を受取
るが、タッグ・レジスタは常にビット16を含む完全な
12ビツト・タッグを受取る。2つのボードのキャッシ
ュに対するタッグの比較において別のビットを含めるこ
とは、索引とタッグの双方に含まれるビットが常に成功
裡に比較するため、その動作に影響を及ぼすことはない
。2つの索引レジスタの場合は、形態に従ってアドレス
のビット5またはビット16のいずれかを選択すること
が必要である。
タッグ・ストア320は、2048個の15ビツトのタ
ッグ・エントリを行なう4つの高速の1に×4スタチッ
クMO3RAMの2バンクからなっている。各タッグ・
ストアのエントリの12ヒツトはタッグ自体を含んでい
る。VALID制御フラッグに対して別ののビットが用
いられ、最後の2ビツトがタッグ・パリティ・ビットと
して用いられる。このV、ALID制御フラッグを用い
て、あるタッグ・ストアのエントリと関連するデータ・
ストアの場所が妥当なデータを保有するかどうかを表示
する。このフラッグは、キャッシュ・ミスの分解の完了
時にセットされ、キャッシュ・ブロックが中間の状態に
ある時(即ち、新たなブロックの両方ではなく一方のワ
ードか書込まれる時)常にリセットされる。
別の対の高速4に×1スタチックRAMを用いて、タッ
グのエントリのMOD I F I EDi(J御)制
御されるRAMの使用により、修正されたビットがタッ
グ・エントリの残りが読出されつつある時と同時にセッ
トまたはクリアすることを可能にする。2つのコピーは
、このビットに対する別のパリティ検査を行なうため保
持される。
MODIFIED制御フラッグを用いて、対応するデー
タ・ストアの場所に保持されたデータが修正されたかど
うかを追跡する。このフラッグは、キャッシュに保有さ
れかその時は修正されていなイデータが最初に書込まれ
る時にセットされる。
このMOD I F I EDフラッグは、その時キャ
ッシュにあり修正されたデータがECCアレイにおける
書戻しファイルに対して読込まれつつある時にはリセッ
トされる。このMODIFIEDフラッグはまた、VA
LIDフラッグがリセットされる時は常にリセットされ
る。
各キャッシュのカドラントは、要求されるデータが既に
キャッシュに存在するかどうかを判定するために、CE
によりこれに対して提供される各マLr Ij −t 
?、、flElffl’ 7−  w x14木+a 
 ”r c Y fi v+、 +−。
スタ318に対する入力としてCADRの索引部分を選
択し、識別用コンパレータ314の他の側に対しCAD
R(タッグ・レジスタに保有される)のタッグ部分を加
えながら、タッグ・ストア320から読出されたデータ
を前記コンパレータの片側に対して加えることにより行
なわれる。この比較の結果は、「キャッシュ的中」 (
または「キャッシュ・ミス」)の表示を生じるためタッ
グ・ストアから読出されたVALIDフラッグと共にゲ
ートされる。
タッグの比較のため提供されるアドレスか書込みまたは
TAS操作に対するものである時、タッグ比較はMOD
 [F I EDフラッグが既にセットされたことを検
証する検査を含む。もしMOD I F I EDフラ
ッグが未だセットされなけわば、キャッシュのカドラン
トはデータが修正された事実を追跡するためこれをセッ
トしなければならず、その結果カドラントはこのデータ
を含むブロックを記憶するため書戻すことを知ることに
なる。
MODIFIEDフラッグはまた、タッグ検査がキャッ
シュ・ミスを表示する時も検査される。
もしミスが検出される時MOD I F I EDフラ
ッグおよびVALIDフラックが共にセットされるなら
ば、キャッシュはデータ・ストアに保持されるデータが
新たなデータである時このデータをメモリーに対して書
戻させることになる。
キャッシュのカドラントに対するアドレス経路の主要部
分がAFアレイ312に保持される。AFアレイにおけ
る経路は、2つの半部に分割することができる。一方の
半部はTAGレジスタおよびタッグ・ストアの索引レジ
スタTSIDXからアドレスを受取り、保留状態にある
操作に対するこれらアドレスの内3つを保持することが
できる。
アレイのこの半部からのアドレスは主記憶装置のアドレ
ス・バスに対して駆動してキャッシュ・ミスの解に対す
る読出しを開始することができ、またある理由から遅延
させられたアクセスの完了のためデータ・ストアのアド
レス指定に用いることができる。アレイのこの半部にお
ける経路はまた、タッグ・ストアの対応するアクセスか
らの書込み操作に用いられるデータ・ストアの索引を遅
延させるため使用される。AFアレイの第2の半部は、
主記憶装置のアドレス・バスDMBADRからアドレス
を読出し、進行中のメモリーと関連した活動状態のため
の他のアドレスを保持する。
主記憶装置の読出しを開始するためアドレスがアレイ自
体によりDMBADRバス上に置かれ、このアドレスは
両方のカドラントに対するAFアレイによって読出され
、これらが操作の完了時において使用することができる
ように保管される。
同じボードの他のキャッシュ・カドラントに対するAF
アレイによりバス上に置かれるアドレスは、カドラント
自体のAFアレイに対して同様に取入れられ、他のカド
ラントにより開始される動作に適当なものとしてデータ
およびタッグ・ストアを更新するため用いられる。この
AFアレイはまた、新たなタック・エントリのためのパ
リティ・ビットを生成することを受持ち、またタッグ・
エントリh<々11.ゲ・ストアから読出水、1′Lる
f■N常にパリティの検査を受持つ。
書戻しがミスの解の一部として要求される時、主記憶装
置のバスからAFアレイに対して取入れられたミス・ア
ドレスを用いて古いデータを適当なデータ・ストアのブ
ロックから書戻しファイルに対して読込む。この時、ミ
スの解を開始するカドラントに対するAFアレイはまた
タッグ・ストアから元のタッグを読込む。この元のタッ
グはミスのアドレスの索引部分と連結されて、書戻し操
作の開始のため必要な主記憶装置のアドレスを形成する
そのいくつかのアドレス・レジスタおよびラッチに加え
て、AFアレイはまた、留保されるかあるいは進行中の
2つの操作が同じデータ・ブロック(即ち、タッグと索
引の両方が同じ)か同じキャッシュ・ブロック(即ち、
索引が同じ)のいずれか一方を含む時を判定するため、
多くの識別用コンパレータを含んでいる。
乍−ボード形態および複式ボード形態の両者における作
業の必要の故に、AFアレイは常にタッグにビット16
を含み、かつ索引にはビット5および16を含む。アレ
イに対する制御人力は、2つのモードのどちらで作動す
るか、またアドレスのどちらの半部をアレイが受持つか
を示す。アドレスのビットI6を含むアレイは、索引の
比較を正しく行なうことを可能にするため、操作モード
に従ってかかる比較における前記ビットの取込みを可能
もしくは不能とする。
1つの主記憶装置のアドレス入力レジスタD M B′
A D RI NおよびXCVRは、同じキャッシュ・
ボードにおける両方のカドラントにより共存される。出
力駆動回路の共有は、とのCPキャッシュ・ホ゛−ドも
5つ口語のサイクルよりも頻繁にバスに対して新たな主
記憶装置アドレスを駆動することがない事実によって容
易となる。バスに対してアドレスを載せようとするカド
ラントに対するAFアレイは、このバス自体が駆動され
る前のサイクルにおいてバスの駆動回路の人力を駆動す
るよう作動可能状態にされる。主記憶装置のアドレス・
バスに対するデータの作動可能状態への遅れは、このよ
うに専ら次のサイクルの開始時における出力駆動回路の
作動可能状態に依存し、ゲート・アレイ自体により生じ
る遅九の状態に依存しないことになる。
(D、%重アクセスの取扱い) キャッシュのカドラントは、キャッシュのミスまたは類
似の事象がCF、アクセスがアクセスを即時完了するこ
とを止めた後でも、CEアクセスの受入九を続行する能
力を有する。各カドラントは、3つの留保状態のCEア
クセスに対して同時に作動する能力を有する。
キャッシュのミスの他にもカドラントがアクセスを即時
に完了することをできなくする多くの理由があり、例え
ば、データ・ストアは比較的高い優先順位の活動状態に
対して使用中である故に一時的にアクセス不能状態とな
り得、CEは完了しなかった以前のアクセスの結果とし
てアクセスされたデータを受入れることができない(C
Eはキャッシュのアクセスと重合できるが、整然とした
データ転送を受取らねばならない)。
各キャッシュのカドラントは1つのアドレス・レジスタ
および2つのアドレス・ラッチ、および対応する状態レ
ジスタ(以下を参照)を用いて保留状態のCEアクセス
を追跡する。このアドレス・レジスタおよびラッチはA
Fアレイに置かれる。これらは、CEアドレス・レジス
タCEREGおよび2つのミス・ラッチMISSA、M
ISSBである。CEREGレジスタは最も後のCEア
ドレスに対するアドレス、即ちTS I DXレジスタ
からの12ビツトのタッグ・ストア(CADR(16:
 5))およびTAGレジスタからの12ビツトのタッ
グ(CADR(27: 16) )を受取る。
もしCEキャッシュのアクセスか速動ロジック(以下に
述べる、記憶場所はキャッシュに見出され、データはC
3TRTLの表明に続く4番目のサイクルにおいて転送
される)により即時完了するならば、CEREGの内容
は単に次のCEアドレスのアドレスにより置換される。
−・(CWAITLがCEに対して表明される)ならば
、CEREGの内容はMISSAまたはMisSBラッ
チのどちらか自由な方により保持される。MISSAお
よびMISSBの双方のラッチが一杯であり、かつCE
REGのその時の内容と対応するアクセスが即時完了し
得ない時、CEREGに対するクロックは停止され、こ
れによりこれが保存するアドレスを一時的に格納し、キ
ャッシュのカドラントはこれ以上のCEのアクセスを排
除するように変更される(こわは全ての競合物に対して
CBUSYLを表明する)。このように、各キャッシュ
のカドラントによって3つものアクセスを同時に作動さ
せることができる。
通常は、各キャッシュのカドラントは85ナノ秒毎に新
たなアクセスを受入れる。両方のミス・レジスタが一杯
の状態になった後、速度は半分となり、カドラントが新
たなアクセスの受入れの前にその時のアクセス(アドレ
スがCEREGに格納される)が即座に完了するかどう
かを判定するた1〜)イド4+?n3rL!1を35黒
イl(才ン−一CEのアクセスは最初速動ロジック:1
22  (第20図)により制御されるが、このロジッ
クはタッグ・ストア探索、データ・ストアの読出しおよ
び書込み、等(ならびにCEとのインターフェース)を
制御する。アクセスが即時取扱いできない時、その制御
は保留状態ロジック324へ送られる。如何なる時も、
各カドラントにおいて3つもの保留アクセスを保留状態
ロジックの制御下に置くことができる。保留状態ロジッ
クは、各カドラントにおいてアドレス・レジスタCER
EGおよびアドレス・ラッチMISSA、M[SSBを
制御し、これらに対し速動ロジックから受取ったアドレ
スを割当て、各々に対する状態コードを維持しかつ更新
する。状態コードは、最初プログラム可能なI N I
 TSTATロジック・アレイ(PLA)により生成さ
れ、初期状態レジスタINIT(第21図)に格納され
る。ここから、これらコードは3つの次の状態のPLA
 (NEXTSTATC,NEXTSTATA、NEX
TSTATB)により更新することができ、3つの次の
状態レジスタNEXTC,NEXTB、NEXTAに保
持される。
速動ロジックによりアクセスが即時取扱いかできないこ
とが判定されると、アクセスは「保留状態」のアクセス
となり、そのル制御は保留状態ロジックへ送られる。4
ビツトの状態の符号化および3ビツトのサブ状態の符号
化はI N I 5TATによって生成され、アクセス
に対して割当てられる。状態/サブ状態の組合せは、ア
クセスが即時完了することかできなかった理由を識別し
、どの競合がアクセスの完了を妨げているかを解くため
取るべき経路を表示する。
状態およびサブ状態の符号化が行なわれると同時に、S
ビットおよびWBSビット初期値がこのアクセスに対し
てセットされる。Sビットは、セットされると、どんな
他の制約がその状態またはサブ状態によりアクセスに対
して与えられようともそれに拘らず、同じCEにより要
求される前の操作が完了した後までアクセスの完了が遅
延されねばならないことを示す。WBSビット、アクセ
スを完了するために新たなデータ・バスをメモリーから
のものにすることが必要ならば取替えられるブロックに
対するMODIFIEDビットの状態を追跡するため用
いられる。WBSビット、書戻し操作がミスの解明の一
部として行なわれるべきかどうかを示す。
初期の状態およびサブ状態の決定は、依然として保留中
の他のCEアクセスの状態およびAFアレイ内で行なわ
れるアドレスの比較の結果と共に、要求されるアクセス
のタイプおよびタッグ比較の結果およびMOD I F
 [EDビットの状態に基く。
INITレジスタから次の状態のレジスタの1つに対し
て、アクセスに対するCEOPの指示および要求する側
のCEのCEIDと共に、初期の状態(状態、サブ状態
、SビットおよびW8ビット)がロードされる。もしN
EXTAおよびNEXTBのいずれかが空の状態であれ
ば、状態は関連する次の状態PLAを介して空のレジス
タに対してロードされる。もしNEXTAとNEXTB
の双方が既に一杯の状態であれば、I N I T(7
)出力がNEXTSTATCPLAを介してNEXTC
に対してのみロードされる。
NEXTCは、第3の保留状態のアクセスのアドレスを
一時的に記憶するためにCEREGが呼出される時にの
み使用される。保留中のアクセス数は2以下に減らされ
ると、NEXTCの内容(もしそのアクセスが既に完了
していなければ)がNEXTAまたはNEXTBのいず
れかに送られる。INITの出力の行先としてのNEX
TAまたはN E XT Bの選択は、マルチプレクサ
340.342によって制御される。INITの転送中
、NEXTC(図示しない3状態のロジックを介して[
NITの出力側に対して接続される)の出力は使用不能
状態にさせられる。
保留中のアクセスの状態コードは、アクセスが割当てら
れる次の状態PLAにより各サイクル毎に再び決定され
る。このPLAは、元の状態(PLA自体の次の状態レ
ジスタからフィードバックされるか、あるいは(前述の
如く)NEXTCレジスタから転送される)、アドレス
の比較の結果を表わすAFアレイからの人力、およびキ
ャッシュにおいて生じる他の活動状態を示す他の人力に
基いて各サイクル毎に新たな状態を決定する。
保留状態の状態ロジックがアドレスがAFアレイにおけ
るアドレス・ラッチMISSA、MISSBが一杯の状
態であること認識する時、このロジックは速動ロジック
に対して比較的低い速度におけるCEアクセスを受入れ
るよう指令する。このロジックはこれが(CEREGに
格納されたそのアドレスにより)第3のアクセスが保留
状態になったことを認識すると、全ての競合するCEに
対してCBUSYを送ることにより、速動ロジックに対
してアクセスの受入れを停止することを通知する。
保留状態のアクセスを完了するため、保留中の状態ロジ
ックはメモリー/インターフェース・ロジック326ま
たは保留状態にない作業ロジック328のいずれか一方
に依存する。メモリーから要求されたデータ・ブロック
をアクセスすることによりアクセスを完了するため、保
留中の状態ロジックは、4つのメモリー・アクセスイ言
号ARBNXTI、ARBNXTClARBNXTA、
、ARBNXTBの1つを表明することによりメモリー
・インターフェース・ロジックと通信して、対応するレ
ジスタに格納さゎたアドレスを有するデータ・ブロック
をメモリーからアクセスすべきことをメモリー・インタ
ーフェース・ロジックに通知する(CEREGARBN
XTC,ARBNXTAk:対するMISSA、および
ARBNXTBに対するMISSB:ARBNXTIは
ど(7)L/レジスタアクセス・アドレスが保持される
かが知られる前に表明される。)。また、メモリー・イ
ンターフェース・ロジックに対して与えられるのはCE
の命令コードCEOPおよびCE識別コードCEIDで
ある。
メモリー・インターフェース・ロジックは2つのタスク
を行なう。第1に、このロジックは、DMBADR0L
JTバスにおける要求されたブロック・アドレスを表明
することをAFアレイに指令することにより、また主記
憶装置からのデータを受入れることをDMBINA(ま
たは、カドラントに従ってDMB I NB)レジスタ
に指令することにより、要求されたメモリー・アクセス
を完了する。第2に、このロジックは保留中の状態ロジ
ックによりこれに割当てられたキャッシュ・アクセスを
完了する。キャッシュ・アクセスを完了するためには、
ロジックはDMBINAレジスタからデータ・ストアお
よびECCアレイへのデータ経路、およびAFアレイか
らタッグ・ストアへのアドレス経路に対する使用を取?
Iしなければならず、経路は常に速動ロジックにより制
御される。これを行なうためには、メモリー・インター
フェース・ロジックがDSRQ(データ格納要求)およ
びTSRQ(タッグ格納要求)を速動ロジックに対し表
明する。これら信号の表明は、速動ロジックがアクセス
を完了することを阻止IJ  そめ鈷更、ア々セスh’
; 4.9留山の」す能口ぐン11.々へ転送されるが
、メモリー・インターフェース・ロジックはメモリーか
らアクセスされたデータが遅れることなくデータ・スト
アに達するように優先順位が与えられる。一旦このロジ
ックが経路の制御を獲得すると、メモリー・インターフ
ェース・ロジックはAFアレイに対してRDADRラッ
チ(主記憶装置からアクセスされたデータのアドレスを
含む)からタッグおよびデータ・ストアにへ経路に対し
て索引部分を転送するよう指令し、AFアレイはデータ
をCDl0バスからECCアレイおよびデータ・ストア
に対して移動させる。
メモリー・インターフェース・ロジックがこれに対して
割当てされたアクセスを完了する時、このロジックは速
動ロジックに対し完了されたアクセスと対応するCWA
 Iをクリアすることを通知する。
メモリー・インターフェース・ロジックにより完了され
なかった保留中のアクセスは、保留中でない作業ロジッ
ク328により完Yされる。メモリーのアクセスを開始
するCEアクセスのみが、メモリー・インターフェース
・ロジックによって完了さnる。メモリーのアクセスな
しに完了することかできるものが保留中でない作業ロジ
ックにより取扱われる。保留中でない作業ロジックによ
り完了されるアクセスの事例は、ミスによらず資源の競
合により生じるもの、および別の保留中のアクセスの結
果として所要のカッドワードがメモリーから読出される
ものを含む。保留中の状態ロジックは、1つ以上のUN
PEND信号(3つの可能な保留状態AUNPEND、
BUNPEND、CUNPENDのアクセス毎に1つず
つ)、ならびにCE命令コードCEOPおよびCEEC
Cアレイ表明することにより、アクセスを保留中でない
作業ロジックに対してアクセスを送る。このUNPEN
D信号は、次の状態レジスタに格納された状態コードの
1ビツトを構成し、次の状態PLAによりアクセスの状
態/サブ状態における変化毎に更新され、またこれら信
号はアクセスが保留中でない作業ロジックによる完了に
適する状態を有するかどうかを示す特定の状態の符号の
復号(UNPEND)を表わす。保留中でない作業ロジ
ックは、こわに割当てら九るアクセスの完了のため資源
が利用できるかどうかを調べるため常に検査する。これ
ら資源が利用できる時、アクセスの完了のため必要なA
Fアレイ、ECCアレイ、データ・ストアおよびタッグ
・ストアを制御することになる。
保留中でない作業ロジックがアクセスを完了する時、こ
のロジックは適当なEMPTY回線(EMPTYA、E
MPTYBまたはEMPTYC)を表明することにより
この事実を保留中の状態ロジックに通知し、これが対応
する状態およびアドレス・レジスタおよびラッチをクリ
アさせ、またこのロジックは速動ロジックに対し対応す
るCWA I T信号をクリアするよう指令する。
要約すれば、キャッシュのアクセスを完了する方法が3
つある。即ち、もし完了が直ちに行うことができるなら
ば速動ロジックにより、もしキャッシュのアクセスがメ
モリーのアクセスを開始するならばメモリー・インター
フェース・ロジックにより、またもしキャッシュのアク
セスがメモリーのアクセスを開始することなく完了する
ことができるならば保留中でない作業ロジックによる。
データ・ストアおよび関連する資源に対するアクセスに
対する優先順位は、常にメモリー・インターフェース・
ロジックに対して与えられるが、これはメモリーからの
転送を妨げるためこれが要求され得ないためである。通
常、速動ロジックは、これらの既に保留中のものを完了
するよりは新たな保留状態のアクセスの形成を避けるこ
とが通常望ましいため、次に高い優先順位を有する。
しかし、保留中でないロジックは、速動ロジックに対し
て5TOPを表明することにより優先順位をとり、この
速動ロジックに対し全ての競合状態のCEに対するCB
USYの表明を指令する。速動ロジックは更に、保留中
でない作業ロジックに対して、こわが次のサイクルにお
いて資源を使用す 1− し I呻 す−’LJ1穐 
し′ ^ 為λ 式−p 1 ぐ T  1)  T 
 ちJ工110することにより指令する(例えば、もし
これが受入れた最後のアクセスに対するアドレス転送を
受入れるならば)。もしRISTRTが表明されるなら
ば、保留中でない作業ロジックは、後に続くサイクルが
資源の使用を保証される時このサイクルまで待機する。
保留中の状態ロジックは、AFアレイにおいて行なわれ
たアドレスの比較の結果に依存して保留中のアクセスの
状態を更新する。これらの比較は、主として2つのタイ
プがある。第1に、CEREG%MISSAおよびMI
SSBに格納されたアドレスは、AFアレイにより主記
憶装置のアドレス・バスDMBADRから受取られる各
アドレスDMB I Nと比較される。第2に、最も後
のCEアクセスのアドレスCEIN(保留中のアクセス
となり得る)は、メモリーから受取られつつあるその時
のアドレスDMBINのみならず、いくつかの前のサイ
クルにおいてメモリーから受取られるアドレスに対して
も比較される。葭に受取ったアドレスは、AFアレイに
おけるパイプラインに格納され、またレジスタADRI
NおよびラッチPDADR,PDADRを含む。
人力1−るアドレスのパイプラインにおけるCEINと
アドレスの内容(例えば、PDADRlRDADR)と
の間の比較が成功すると、保留中の状態ロジック(IN
ITSTAT  PLA)をして、その時のアクセスが
別のミスと同時に保留中(ROOM)であること、即ち
新たなアクセスの完了のため必要なデータが主記憶装置
バスからデータ・ストアまでの途中にあることを示す最
初の状態を生じさせることができる。一方、CEINの
索引(タッグではない)のみと主記憶装置から読込まれ
つつあるデータのアドレスとの間の比較の成功は、保留
中の状態ロジックをして、要求されるデータは、これが
その時データ・ストアにある場合でさえこれが他のデー
タにより置換えられようとすること、およびもしアクセ
スが直ちに速動ロジックにより完了され得なくともこの
アクセスが新たなデータをメモリーから転送させるアク
セスの完了に充分な長さの間隔の後まで別のメモリー・
アクセスを開始しないことを要求する状態が与えられな
ければならない。
要約すれば、保留中のアクセスの状態が(例えば、メモ
リー・インターフェースまたは保留中でない作業ロジッ
クによりアクセスを完了することができることを示す状
態へ)更新されるべき方法を決定するため行なわれるア
ドレスの比較は、(1)CEにより依然として進行中の
主記憶装置のアクセスに対する全てのアドレス(即ち、
データが既にデータ・ストアに格納されなかったもの)
へ転送される新たな各アクセス・アドレスの比較、およ
び(2)保留中の各アクセスのアドレスに対する新たな
各メモリー・アクセスのアドレスの比較からなる。
AFアレイにより行なわれるアドレスの比較は、もし同
じデータに対する読出しおよび書込みが共に保留中であ
るならば、もしこれが以面の書込みが完了するまで後に
なるならば読出しが完了しないことを保証する比較を含
む。
同じキャッシュ・ボードにおける2つのキャッシュのカ
ドラントは、共通の主記憶装置のアドレス・バス(第1
9図において、カドラントW、xに対して示される如く
)を共用している。各カドラントのAFアレイからのD
MBADRIN回線は、DMBADROUT回線におけ
ると同様に一緒に接続されている。このように、1つの
カドラントによりアクセスされつつあるデータ・ブロッ
クのアドレスは、他のカドラントにより読出され、これ
はデータ・ブロックの半分を受取られることになる。キ
ャッシュのカドラントは、主記憶装置のアクセスにおい
て交番する。
CPキャッシュは、それ自体のデータ・ストアにおける
データと、メモリーに対するアクセスを有する他のサブ
システム(例えば、他のキャッシュ)において格納され
るデータとの間の可干渉性を維持するためのハードウェ
アを設けることができる。例えば、ハードウェアが主記
憶装置バスを監視して、他のサブシステム(例えば、他
のキャッシュ)がCPキャッシュがその時コピーを升す
2 d)p f−k’L 7r−11−++1−−に一
ヲよ、U二よ、也1組−ろする。このCPキャッシュは
、(VALIDビットをローにセットすることにより)
即時このようなデータを無効化しなければならない。更
に、もしこのCP′キャッシュが前記データの修正コピ
ー(CPキャッシュがそのコピーを修正中であったこと
を知ると同時に、他のサブシステムが有するどのコピー
も無効化した故に、必然的にこのような修正コピーのみ
となる)を有するならば、また他のサブシステムがこの
データのコピーを欲するならば、これが他のサブシステ
ムで利用できるようにキャッシュはこのデータを主記憶
装置のバスに対して転送しなければならない。このよう
なデータの可干渉性のハードウェアにより行なわれる機
能の他の事例は、CPキャッシュがデータのそのコピー
を修正しようとする時他のサブシステムに通知すること
である。このようなデータの可干渉性ハードウェアは、
状態/サブ状態の状況コーディングの複雑さを増すもの
である。このようなデータの可干渉性ハードウェアにつ
いては、参考のため本文に引用されるYen等署「多重
キャッシュ・システムにおけるデータの可干渉性の間”
JfJ J  (I E E E  Transact
、1ons onComputers 、第034巻、
第1号、1985年1月刊)において論議されている。
(E、キャッシュのインターリーブ手法)望ましいイン
ターリーブ手法を表12に示す。即ち、 人・・ロ キャッシュ キャッシュ ■Lu上、IJ  ADR4X3  カドラント ボー
ドooo       o          w  
        。
001       1           X  
         0010      1     
      X          0011    
  0          W          0
1oo       OY           1+
01       1          2    
      1++0       1       
    Z           IIII     
   OY           1このインターリー
ブ方式は、複数のCE(各々が固定された優先順位のラ
ンクが割当てられる)か、1つおよび2つのカッドワー
ドのストライド(ならびに、4ではなく2で除すことが
できるより大きなストライド、例えば6つおよびlOの
カッドワードのストライド)におけるメモリーをアクセ
スするブロクラムを同時に処理中である時、1つのプロ
グラムを処理しつつある時、優れたキャッシュのアクセ
ス効率(即ち、各々キャッシュをアクセスしようとする
1つ以上のCEにより浪費されるキャッシュ・アクセス
・サイクルが最小限度である)を提供する。メモリーの
ストライドは、システムにおいて作動するソフトウェア
による連続的なメモリー・アクセス間のアドレス空間で
ある。本システムが最もよく適合する科学計算用ソフト
ウェアは、典型的には1および2の両方のストライドに
よりメモリーをアクセスする(10のストライドもまた
比較的一般的である)。
望ましいインターリーブ方式の利点を理解するため、他
の比較的望ましい方式を説明すれば役立とう。ある方式
では、1のストライドまたは2のストライドのいずれに
おいても乏しい性能を呈する。例えば、表13に示すイ
ンターリーブ方式は1のストライドに対しては良好に働
くか、2のストライドに対しては劣り、この場合キャッ
シュのカドラントの半分に対してはその如何を問わずキ
ャッシュのアクセスが行なわれない(2のストライドに
おいてはこれらカドラントが飛越される記憶場所しか持
たないためである。) 瓦−一一一旦 キャッシュ  キャッシュ υl」と刀−L五二上上  ボード ooo           w          
  。
001           X          
  0010          Y        
    1100          W      
      0+01           X   
         0110          Y 
           IIII          
 Z             1表14のインターリ
ーブ方式は2のストライドにおいては良好に作動するが
、1のストライドに対しては劣る。
表−一一一一一目 キャッシュ  キャッシュ 岨q   カドラント  ボード ooo           w          
   。
oot           w          
  。
010           X          
   0011            X     
        01oo           Y 
            1101         
  Y             1110     
      Z             1+2  
        2            11のス
トライドにおける問題の理由は、全てが同時に1のスト
ライドのメモリー・アクセス・ストライドにおける問題
を処理する4つのCEに対するキャッシュのアクセス・
パターンを調べねば知ることができる。表15に示すよ
うに、アクセス・パターン間の位相上の関係は、4番目
のCE(最も低い優先順位を有する)がほとんどの間ア
クセスできないようにロックされる(#で示される)結
果となる。この位相上の関係においては、最初の3つの
CEは各々、奇数(本例においては、特に3)のサイク
ルだけ次に高い優先順位のCEからオフセットされてい
る。
人−15 以上 t     WWXXYYZZWWXXYYZZ2  
   XZ2WWXXYYZZWWXXY3     
XXYYZZWWXXYYZZWW4    ##W#
#W#X####X#Y#表16には、2のストライド
における表14のインターリーブ方式に対する別の位相
関係が示されている。各CEが偶数(本例においては、
特に2)のサイクルだけ次に高い優先順位のCEから各
CEがオフセットされているこの位相関係においては、
CE4のアクセスのロック・アウトは生じない。しかし
、問題は、表15の効率が比較的劣る奇数のオフセット
ではなく表16の更に効率のよい偶数のオフセットをC
Eに強制することになり、このため性能が1のストライ
ドに対しては平均で低下する点で、表14のインターリ
ーブ法には及ばないことである。
表−16 旦工 I     WWXXYYZZWWXXYYZZ2  
   ZZWWXXYYZZWWXXYY3     
YYZZWWXXYYZZWWXX4     XXY
YZZWWXXYYZZWW表12のインターリーブ方
式において有利なことは、これがCEを最小限度の(お
よび理想的には存在しない)キャッシュのアクセスの浪
費がある位相関係に強制する1のストライドのアクセス
・パターン(WXXWYZZY)を生じることである。
表17は、1のストライドにおける4つのCEにおける
最初のキャッシュ・アクセスを示している。
大−一一一一一已 見上 t   wxxwyzzywxxwyzzy2   #
W#XXWYZZYWXXWYZ3   ##W##X
XWYZZYWXXW4   ####W##XXWY
ZZYWX示された仮説においては、4つのCEか最初
に同じキャッシュのカドラントを最初のサイクルにおい
てアクセスしようとする(ベクトルの同時処理の開始に
おいて生じ得ることに若干近似する。
以下参照)。アクセスは強制CE2、CE3、CE4と
競合して、各々がこれ以上の競合が生じない位相関係に
達するまであるアクセスを遅れさせるが、この場合各C
Eのアクセス・パターンは次に高い優先順位を有するC
Eのそれからある偶数のサイクルだけオフセットされる
。この位相関係は、初期の位相関係の如何に拘らず、全
てのCEにより達することになる。
表17に示されたキャッシュのアクセス・シーケンスは
、8つのCEシステム(8つの全てのCEが同時複合体
に関与する)においてベクトル同時処理の典型的な反復
中に生じるアクセスの半分のみを示している。表17の
シーケンスは、8つのCEの内4つに対する85ナノ秒
のキャッシュ・サイクルおきに生じるアクセス動作を示
し、同じアクセス・パターンが他の4つのCEに対する
他のサイクル中にも生じる。簡単にするため8つの全て
のCEが最初に同じキャッシュのカドラントにルにおい
てなくなるものがすぐ次のキャッシュ・サイクル(表1
7のシーケンスには示されない)において競合し、残り
のものは3番目のキャッシュ・サイクル(表17に示さ
れる2番目のサイクル)中に競合することになる。8つ
のCEは、1つおきのキャッシュ・サイクルの一方また
は他方で1つずつニック(niche)を見出し、4つ
が奇数のキャッシュ・サイクルにおいて、また他の4つ
が偶数のサイクルにおいてキャッシュをアクセスする結
果となる(その結果奇数または偶数のサイクルに対する
割当ては無作為となる)。この望ましいインターリーブ
方式の優れた性能は、7つ乃至8つのCEが同時複合体
の一部をなす時最も顕著となる。
有効なインターリーブ法の選択のための一般的な手順を
下記に示す。問題となる各ストライド毎に、競合するC
Eのアクセス・パターン間の所要のオフセットか決定さ
れる。一般に、所要のオフセットは、パターンの長さと
得られるキャッシュ部4トの数Nの商と”iE Lい(
4上りも犬きな才)セットの場合のこの表現の普遍性は
正確であると考えるか、検証はしてない)。即ち、 0FFSET= (LENGTH/N)表12の望まし
いインターリーブ法におけるlのストライドのパターン
(WXXWYZZY)は8の長さを有し、このため4つ
の処理装置に対する所要のオフセット(およびその倍数
)は2.4.6.811、即ち偶数である。
もしインターリーブが特定のストライドにおいて有効で
あれば、このことはその全ての奇数倍においても有効で
ある。このため、例えば、1のストライドに対する望ま
しい8ビツトのパターンwxxwyzzyを生じるイン
ターリーブはまた、3および5のストライド、等全ての
奇数のストライドに対する望ましい同じパターンを生じ
る(キャッシュ部分の素姓の不適正な交換を除く)。ま
た、2のストライドに対する望ましいパター:/(WX
YZ)もマタ、6、lOオヨび全テノ他の2の倍数のス
トライドに対する結果をもたらす。
一般に、あるパターンの長さは、パターンが許容する最
も大きな2の累乗値のストライドを乗じたキャッシュ部
分の数と等しい。例えば、WXXWYZZYの111例
においては、8の長さは2の最も大きな2の累乗値のオ
フセットで東した4つのキャッシュのカドラントと等し
い。
一旦所要のオフセットを知れば、これが競合を生じるこ
となくこのようなオフセットを許容するかどうかを判定
するためアクセスのパターンを調べねばならない。この
検査は、同じキャッシュ部分(例えば、本例においては
WXYZ)かその倍数の所要のオフセットと等しい間隔
においてパターンに現わわるかどうかを判定することに
より容易に行なわれる。もしこのような間隔ぞ同じキャ
ッシュ部分が現われるならば、このことは競合が生じて
パターンを望ましくないものにし得ることを意味する。
表12および14のインターリーブ方式における1のス
トライドのパターン(WXXWYZZYおよびWWXX
Z)を調<t’Lば、所要の2のオフセットにおいても
、またこのオフセットの倍数においても競合が生じない
ことが判る。
このことは、表14のインターリーブ方式が第16図に
示される位相関係を得ることができることの説明となる
。これらの2つのアクセスのパターンは2のオフセット
を許容するが、これを許容しないパターンも明らかに存
在する(例えば、wxwxYZYZ)。
パターンが所要のオフセット(もしくはその倍数)で競
合しないが確定された後、競合する処理装置を所要のオ
フセットに強制するある手段を提供することが必要であ
る。競合するCEが固定された優先順位のランク(例え
ば、それらの背面における物理的位置に基く)を有する
場合、単にインターリーブ自体の賢明な選択によって所
要のオフセットを強制することが可能である。このイン
ターリーブは、その結果のアクセス・パターンが望まし
くない全オフセットにおいて少なくとも1つの競合を生
じるように選択される。所要の2(また4、6.8も)
のオフセットの場合には、トにおいて少なくとも1つの
競合を持たなけわばならない(もし競合が1および3に
存在する場合、5および7における競合が必然的に生じ
るが)。以下の表18に示されるように、表12のイン
ターリーブにおける1のストライドのアクセス・パター
ン(下記のように2回反復される)は、必要な奇数のオ
フセットの競合を生じる。
及−−一旦 WXXWY2ZYWXXWYZZY ・・3・・・5・・ 対照的に、表14のインターリーブ法におけるlのスト
ライドは必要な競合を持たない。表19に示すように、
このインターリーブは3(および5)のオフセットにお
ける競合を欠き、1(および7)のオフセットにおける
オフセ・ソトのみを生じる。
及−m−」 WWXXYYZZWWXXYYZZ ・・・・7・・・・ この手順は、どんな数のキャッシュ部分(および処理装
置)、およびとんなストライドに対しても応用し得る。
(キャッシュ部分の数は、実際的な「1的のため、2進
法による記憶アドレス指定の6父に2の幕でなければな
らない。)イ列えば、もしく4の代りに)8つのキャッ
シュ部分か設けられると、16サイクルのアクセス(1
および2のストライドを許容するため必要とされる)に
対するオフセットは下記となる。即ち、 0FFSET=L/N=16/8=2 所廿の16サイクルのパターンを表20(この表におい
ては、キャッシュ部分はA乃至Hで示される)に示す。
必要に応じて、このパターンは全ての偶数のオフセット
においては競合を生じない(例示的な奇数のオフセット
の競合は、1,3.5.7のオフセットに対して示され
る)。
・・3・・・・7・・・ 表12に示したものとは他のインターリーブ手法を使用
することができる。表21に示される8サイクルのアク
セス・パターンのいずれかを生じる方式を使用すること
ができる。両方のパターンは、偶数のオフセットの競合
の要求される欠如、および全ての奇数のオフセットにお
いて少なくとも1つの競合の存在を含む。(例示の奇数
のオフセットの競合を1および3のオフセットについて
示す。) 及−一一旦 WXXWYY22 ・・3・・ WWXZYXZY こわらのパターンと対応するインターリーブ方式(1の
ストライドに対するもの。2のストライドでは所要のパ
ターンwxyzを生じる)は、表12のインターリーブ
方式の構成上の簡潔さを持たず、このためキャッシュ部
分がそれぞれが同じカドラントを有する2つの同じボー
ドとして実施することが可能となる。
表12の代りに用いることができる別のインターリーブ
方式は、表22に示ず16サイクルの1のストライドの
パターンを提供するものである。これは、1のストライ
ド(下記のパターン)において良好に機能するのみでな
く、2のストライド(wxxwyzzyパターン)およ
び4のストライド(wxyzパターン)においても機能
するという利点を呈する。
m−■ WWXXXXWWYY″7. Z 7. Z Y ’/
しかし、これは多数のキャッシュのアクセス・サイクル
がCE間に必要な位相の関係を強制する際費やされる表
17に示した間隔の比較的長い同時に始動を必要とする
短所を有する。表22のパターンを生じるため必要とさ
れるインターリーブは、望ましければ1のカッドワード
・レベルではなく2のカッドワード・レベルにおいて(
ADR5およびADR4の排他的ORを用いてカドラン
トを選3およびADR4を用いてカドラント内のワード
を選択することにより)インターリーブを行なうことに
よって達成することができる。このインターリーブ法は
、4のストライドにおける性能が同時の始動速度の損失
を上回る状況において有利となろう。
本発明の他の実施態様は頭書の特許請求の範囲の範囲内
に含まれるものである。
【図面の簡単な説明】
第1図はシステム・ブロック図、第2図は対話式処理装
置のブロック図、第3図は高速処理装置または計算素子
(以下rcEJという)のブロック図、第4図は同時状
態レジスタ(C3TAT)の構造を示す図、第5図は同
時;−制御装置(CCU)を接続する同時制御バスを示
し、各CCLIとそのCE (CEおよびCCUは2つ
ずつのみを示す)間の接続状態を示すブロック図、第6
図乃至第1O図はCCUの総合ブロック図、第11A図
および第11B図はCCUの状態レジ7々(rC:TΔ
TΔ1ハイロー、 /y FBIハりつハ平部、第12
図は8つの4ビツト四明レジスタの1つのブロック図、
第13図はC3TART命令のためのタイミング図、第
14図は同時処理の一例を示す図、第15図はCE、背
面スイッチおよびキャッシュの四半部およびその間の接
続状態を示すブロック図、第16図はCEとキャッシュ
四半部間で切換えられる96ビツトの1つのビットに対
するロジックを示すため簡素化された背面スイッチ・ロ
ジックのブロック図、第17図は背面スイッチを形成す
る24の4ビツト・ゲート・アレイの1つを示すブロッ
ク図、第18図はCEとキャッシュ四半部および背面装
置を形成する回路板のやや略図的な斜視図、第19図は
キャッシュの四半部におけるアドレスとデータ経路を示
すブロック図、第20図はキャッシュ四半部に対する制
御ロジックの全体的ブロック図、および第21図はキャ
ッシュ四半部における保留状態ロジックを示すブロック
図である。 IO・・・計算素子(CE)、12・・・中央処理キャ
ッシュ・ボード、+ 4−・・スイッチ、16・・・メ
モリー・バス、17・・・メモリー・モジュール、18
・・・対話式処理装置のキャッシュ、20・・・対話式
処理装置(IP)、22・・・マルチパス、24・・・
同時制御装置(CCU)、26・・・同時制御バス、3
0・・・処理装置、32・・・データ・バス、34−・
・マルチパス・インターフェース、:)6・・・IPC
インターフェース、38・・・局所メモリー、40・・
・メモリー管理機構、140・・・MASKロジック・
アレイ、142、目8・・・増分器、+44 、+46
・・・回線、190−4回線スイッチ、200・・・:
t+制御回線、202−・・キャッシュ・ボート部、2
04・・・選択部、206−CEボート部、208 、
209−・・ロジック、210・バッファ・ゲート、2
12・インバータ、2目・・・3状態ゲート、216・
・・セレクタ、218・・・ORゲート、220・・−
NANDゲート、222・・・デコーダ、226.22
8−・・ゲート、230・・・8対lマルチプレクサ、
300・・・データ・ストア、302・・・ECCゲー
ト・アレイ、310・・−TAGレジスタ、312−・
・アドレス・フロー・ゲート・アレイ、314−・・タ
ッグ−:ff://”Cレータ、316−D S I 
D Xレジスタ、318・−TSIDXレジスタ、32
0・・・タッグ・ストア、322・・・速動ロジック、
324−・・保留状態ロジック、326・・・メモリー
/インターフェース・ロジック、328−・・作業ロジ
ック。 IG2 IG 4 + (NLQ。PFIG 5 1;こ怠14b ロ二広り辷二二し 1      袖CGSP             
                 l0IJ2   
      oocsτART          L
OGSP                     
 IDIJs       NOP         
  LDMAX      [CGPC]      
 RDCGPCフRDC’/SP[O’At+RDCV
SPa      RDCClJRll       
                   IIDCCU
RRIG 1B IG 14 IG15 FIG 18 FIG20 手続補正書 昭和61年 9月17日 特許庁長官   黒 1)明 雄  殿1、事件の表示 昭和61年特許願第167719号 2、発明の名称 多重アクセスを同時に処1ffIするディジタル・コン
ピュータ3、補正をする者 事件との関係  特許出願人 住所 名 称  アライアント・コンピュータ・システムズ・
コーポレーション 4、代理人 住 所  東京都千代田区大手町二丁目2番1号新大手
町ビル 206号室 5、補正の対象 出願人の代表者芯を記載した願書

Claims (1)

  1. 【特許請求の範囲】 1、主記憶装置と、 該主記憶装置に対し接続されたキャッシュ・メモリーと
    、 該キャッシュに対して接続された複数の処理装置と、 該処理装置の各々が前記キャッシュの同じ記憶場所をア
    クセスすることを許容する装置と、前記処理装置により
    前に行なわれる保留中のアクセスを完了するステップを
    とりながら、前記処理装置からその時のアクセスを同時
    に受入れる前記キャッシュにおける装置とを設けること
    を特徴とするディジタル・コンピュータ。 2、前記キャッシュが、 各々が1つのブロック・アドレスを有するブロック内の
    前記メモリーからのデータを検索する装置と、 前記のその時のアクセスおよび保留中のアクセスに対す
    るブロック・アドレスを格納する装置とを含むことを特
    徴とする特許請求の範囲第1項記載のディジタル・コン
    ピュータ。 3、前記保留中のアクセスに対する状態コードを格納す
    る装置を更に設け、前記状態コードはアクセスを完了す
    るため必要なステップの処方からなることを特徴とする
    特許請求の範囲第2項記載のディジタル・コンピュータ
    。 4、前記キャッシュは更に、 複数の保留中のアクセスを完了するステップを同時に行
    なう装置と、 前記各保留状態のアクセス毎にブロック・アドレスおよ
    び状態コードを格納する装置とを更に含むことを特徴と
    する特許請求の範囲第3項記載のディジタル・コンピュ
    ータ。 5、前記キャッシュが、 各保留状態のアクセス毎に格納されたブロック・アドレ
    スをメモリーから前記キャッシュによって受取られた新
    しい各ブロックのアドレスと比較する装置と、 前記状態の前の状態および前記比較の結果に基いて、各
    保留状態のアクセスにおける状態コードを再び決定する
    装置とを更に含むことを特徴とする特許請求の範囲第4
    項記載のディジタル・コンピュータ。 6、前記状態コードを再び決定する前記装置が、この再
    決定を、メモリーから受取った新たなブロックと対応す
    る保留状態のアクセスを完了するためどのステップが取
    られたかあるいは取られつつあるかについての情報に基
    くことを特徴とする特許請求の範囲第5項記載のディジ
    タル・コンピュータ。 7、前記の再決定を行なう装置が、前記再決定を、前記
    キャッシュにおいて他のどんな活動状態が起こりつつあ
    るかに基かせることを特徴とする特許請求の範囲第6項
    記載のディジタル・コンピュータ。 8、前記キャッシュが、 その時の前記アクセスのブロック・アドレスを、依然と
    して進行中(ではあるが、まだキャッシュ・メモリーに
    おいて使用できない)の主記憶装置のブロック・アドレ
    スに比較する装置と、前記の比較に基いて前記のその時
    のアクセスにおける初期の状態コードを決定する装置と
    を更に含むことを特徴とする特許請求の範囲第5項記載
    のディジタル・コンピュータ。 9、前記ブロック・アドレスがタッグおよび索引からな
    り、 前記キャッシュは、 前記索引により指定されるアドレスに前記タッグが格納
    されるタッグ・ストアと、 前記データが前記索引により指定されるアドレスに格納
    されるデータ・ストアとを含み、その時の前記アクセス
    の索引を、依然として進行中のメモリーのアクセスに対
    するブロック・アドレスの索引部分に比較する装置が設
    けられ(以てその時の前記アクセスにより探索されるデ
    ータではないが、メモリーからアクセスされるデータ・
    ブロックがその時の前記アクセスによりアドレス指定さ
    れるデータ・ストアの場所に対して書込まれるデータで
    あるかどうかが決定される)ことを特徴とする特許請求
    の範囲第8項に記載のディジタル・コンピュータ。 10、前記キャッシュが複数の部分に分割され、該キャ
    ッシュ部分の異なるものに対する複数のアクセスを同時
    に受入れる装置を含むことを特徴とする特許請求の範囲
    第1項、第3項、第4項、第5項、または第8項のいず
    れかに記載のディジタル・コンピュータ。 11、前記キャッシュが、 即時の完了が可能であり、かつこれにより保留状態のア
    クセスとはならないその時のアクセスを制御するための
    速動ロジック装置と、 前記の保留状態のアクセスの状態コードを格納するため
    、かつ変化した条件に基いて前記状態コードを再び決定
    するため、保留状態のアクセスに対する状態コードを最
    初に決定する保留状態論理装置と、 前記状態コードが前記の保留中のアクセスが完了し得る
    ことを示す時、該アクセスを完了させるため、前記キャ
    ッシュ内のデータおよびアドレス経路の制御を行なう保
    留中のアクセス完了装置とを更に含むことを特徴とする
    特許請求の範囲第4項記載のディジタル・コンピュータ
    。 12、前記の保留状態のアクセス完了装置が、保留状態
    のアクセス自体の独立的な主記憶装置のアクセスを要求
    しない該アクセスを完了する保留状態でない作業の論理
    装置と、 保留状態のアクセス自体の独立的な主記憶装置のアクセ
    スを要求しない該アクセスを完了するメモリー論理装置
    と、 前記メモリー論理装置と、速動論理装置と、保留状態で
    ない論理装置に対するこの順序におけるアクセスを完了
    するため、前記キャッシュ内部のデータおよびアドレス
    の経路の使用のための優先順位を与える装置とを含むこ
    とを特徴とする特許請求の範囲第11項記載のディジタ
    ル・コンピュータ。 13、第1と第2の保留状態のアクセスが前記の同じ処
    理装置からのものであり、前記第2の保留状態のアクセ
    スが前記第1の保留状態のアクセス前に前記キャッシュ
    により受取られた時、前記キャッシュが前記第2の保留
    状態のアクセスよりも前記第1の保留状態のアクセスの
    完了を遅らせる装置を含み、以て前記キャッシュに対す
    る処理装置のアクセスの順序が保持されることを特徴と
    する特許請求の範囲第4項記載のディジタル・コンピュ
    ータ。 14、前記キャッシュが複数の部分に分割され、かつ前
    記の異なるキャッシュ部分に対する複数のアクセスを同
    時に受入れる装置を含み、 前記キャッシュ部分が、前記主記憶装置からのデータの
    ブロックをアクセスする装置と前記各ブロックをキャッ
    シュ部分間に分割する装置とを含むことを特徴とする特
    許請求の範囲第5項または第8項に記載のディジタル・
    コンピュータ。 15、前記キャッシュの2つ以上がそれぞれ、メモリー
    においてアクセスされるべきデータのブロックのブロッ
    ク・アドレスにより共通の記憶アドレス・バスを分割す
    る装置を含み、 前記の2つ以上のキャッシュ部分がそれぞれ、前記の共
    通のメモリー・アドレス・バスから前記ブロック・アド
    レスを同時に読出す装置を含み、 アドレスを比較する前記装置が、これにより前記の1つ
    のキャッシュ部分におけるアクセスのためのアドレスを
    前記の他の部分により主記憶装置からアクセスされるブ
    ロックのアドレスと比較することを特徴とする特許請求
    の範囲第14項記載のディジタル・コンピュータ。
JP61167719A 1985-07-22 1986-07-16 多重アクセスを同時に処理するデイジタル・コンピユ−タ Pending JPS62187946A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/757,853 US4783736A (en) 1985-07-22 1985-07-22 Digital computer with multisection cache
US757853 1985-07-22

Publications (1)

Publication Number Publication Date
JPS62187946A true JPS62187946A (ja) 1987-08-17

Family

ID=25049491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61167719A Pending JPS62187946A (ja) 1985-07-22 1986-07-16 多重アクセスを同時に処理するデイジタル・コンピユ−タ

Country Status (5)

Country Link
US (1) US4783736A (ja)
EP (1) EP0213694A3 (ja)
JP (1) JPS62187946A (ja)
AU (1) AU5893886A (ja)
CA (1) CA1259140A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292870B1 (en) 1997-08-29 2001-09-18 Fijitsu Limited Information processing system in which memory devices and copies of tags are accessed in response to access requests issued from plurality of processing units

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1270338A (en) * 1985-09-11 1990-06-12 Akihiko Hoshino Data processing system for processing units having different throughputs
JPS6484361A (en) * 1987-07-30 1989-03-29 Araianto Computer Syst Corp Parallel processing computer with alterable preference of memory access
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support
US4943913A (en) * 1988-02-10 1990-07-24 International Business Machines Corporation Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations
US5113521A (en) * 1988-03-18 1992-05-12 Digital Equipment Corporation Method and apparatus for handling faults of vector instructions causing memory management exceptions
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
EP0425550B1 (en) * 1988-06-30 1995-01-04 Wang Laboratories, Inc. Memory control unit
US4914584A (en) * 1988-10-17 1990-04-03 Gibson Glenn A Rules and apparatus for an intermediate code memory that buffers code segments
US6092153A (en) * 1988-11-14 2000-07-18 Lass; Stanley Edwin Subsettable top level cache
US5371874A (en) * 1989-01-27 1994-12-06 Digital Equipment Corporation Write-read/write-pass memory subsystem cycle
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
WO1990010267A1 (en) * 1989-02-24 1990-09-07 Nexgen Microsystems Distributed pipeline control for a computer
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
JPH07101410B2 (ja) * 1990-01-17 1995-11-01 インターナショナル、ビジネス、マシーンズ、コーポレーション データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5261067A (en) * 1990-04-17 1993-11-09 North American Philips Corp. Method and apparatus for providing synchronized data cache operation for processors in a parallel processing system
DE69128741T2 (de) * 1990-05-18 1998-07-16 Koninkl Philips Electronics Nv Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür
DE69130086T2 (de) * 1990-06-15 1999-01-21 Compaq Computer Corp Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
US5263144A (en) * 1990-06-29 1993-11-16 Digital Equipment Corporation Method and apparatus for sharing data between processors in a computer system
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
CA2047888A1 (en) * 1990-07-27 1992-01-28 Hirosada Tone Hierarchical memory control system
DE69130967T2 (de) * 1990-08-06 1999-10-21 Ncr Int Inc Rechnerspeicheranordnung
US5724548A (en) * 1990-09-18 1998-03-03 Fujitsu Limited System including processor and cache memory and method of controlling the cache memory
JPH087715B2 (ja) * 1990-11-15 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理装置及びアクセス制御方法
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
EP0513519A1 (en) * 1991-05-15 1992-11-19 International Business Machines Corporation Memory system for multiprocessor systems
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
US5353424A (en) * 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
GB2277181B (en) * 1991-12-23 1995-12-13 Intel Corp Interleaved cache for multiple accesses per clock in a microprocessor
WO1994008295A1 (en) * 1992-10-01 1994-04-14 Flavors Technology Inc. Method and apparatus for memory interleave reduction
DE69327981T2 (de) * 1993-01-21 2000-10-05 Advanced Micro Devices Inc Kombinierte Speicheranordnung mit einem Vorausholungspuffer und einem Cachespeicher und Verfahren zur Befehlenversorgung für eine Prozessoreinheit, das diese Anordnung benutzt.
US5845329A (en) * 1993-01-29 1998-12-01 Sanyo Electric Co., Ltd. Parallel computer
DE69326236T2 (de) * 1993-06-16 1999-12-30 Bull Hn Information Syst Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5740402A (en) * 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
JP3132749B2 (ja) * 1994-12-05 2001-02-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ・データ処理システム
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US5649155A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation Cache memory accessed by continuation requests
WO1997015001A2 (en) * 1995-10-06 1997-04-24 Patriot Scientific Corporation Risc microprocessor architecture
US5765195A (en) * 1995-12-08 1998-06-09 Ncr Corporation Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms
US6061521A (en) * 1996-12-02 2000-05-09 Compaq Computer Corp. Computer having multimedia operations executable as two distinct sets of operations within a single instruction cycle
US6173366B1 (en) * 1996-12-02 2001-01-09 Compaq Computer Corp. Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage
US6009505A (en) * 1996-12-02 1999-12-28 Compaq Computer Corp. System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US5924117A (en) * 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
KR100230454B1 (ko) 1997-05-28 1999-11-15 윤종용 다중처리 시스템의 캐시메모리 검사방법
US6076136A (en) * 1998-06-17 2000-06-13 Lucent Technologies, Inc. RAM address decoding system and method to support misaligned memory access
US6256683B1 (en) * 1998-12-23 2001-07-03 Bops, Inc. Methods and apparatus for providing direct memory access control
US6477613B1 (en) * 1999-06-30 2002-11-05 International Business Machines Corporation Cache index based system address bus
EP1275045A4 (en) * 2000-02-25 2005-12-21 Sun Microsystems Inc APPARATUS AND METHOD FOR MAINTAINING HIGH CAPACITY TRAFFIC FILTERING AND CACHE DATA EXPEDITION PREVENTION DURING ATOMIC OPERATION
US8732368B1 (en) * 2005-02-17 2014-05-20 Hewlett-Packard Development Company, L.P. Control system for resource selection between or among conjoined-cores
US8407432B2 (en) * 2005-06-30 2013-03-26 Intel Corporation Cache coherency sequencing implementation and adaptive LLC access priority control for CMP
US11138086B2 (en) * 2015-01-28 2021-10-05 Hewlett-Packard Development Company, L.P. Collecting hardware performance data
US11979340B2 (en) 2017-02-12 2024-05-07 Mellanox Technologies, Ltd. Direct data placement
US20240015217A1 (en) * 2022-07-06 2024-01-11 Mellanox Technologies, Ltd. Patterned Remote Direct Memory Access (RDMA)
US20240012773A1 (en) * 2022-07-06 2024-01-11 Mellanox Technologies, Ltd. Patterned Direct Memory Access (DMA)

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4056845A (en) * 1975-04-25 1977-11-01 Data General Corporation Memory access technique
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
US4030431A (en) * 1976-05-24 1977-06-21 The Singer Company Sewing machine take-up thread shield
US4097920A (en) * 1976-12-13 1978-06-27 Rca Corporation Hardware control for repeating program loops in electronic computers
US4156906A (en) * 1977-11-22 1979-05-29 Honeywell Information Systems Inc. Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands
US4169284A (en) * 1978-03-07 1979-09-25 International Business Machines Corporation Cache control for concurrent access
US4280176A (en) * 1978-12-26 1981-07-21 International Business Machines Corporation Memory configuration, address interleaving, relocation and access control system
US4484262A (en) * 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
JPS5619575A (en) * 1979-07-25 1981-02-24 Fujitsu Ltd Data processing system having hierarchy memory
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4365292A (en) * 1979-11-26 1982-12-21 Burroughs Corporation Array processor architecture connection network
FR2474201B1 (fr) * 1980-01-22 1986-05-16 Bull Sa Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules
US4344134A (en) * 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4462072A (en) * 1981-04-03 1984-07-24 Honeywell Information Systems Inc. Clock system having a stall capability to enable processing of errors
DE3276916D1 (en) * 1981-09-18 1987-09-10 Rovsing As Christian Multiprocessor computer system
US4462074A (en) * 1981-11-19 1984-07-24 Codex Corporation Do loop circuit
US4468736A (en) * 1982-06-08 1984-08-28 Burroughs Corporation Mechanism for creating dependency free code for multiple processing elements
US4466061A (en) * 1982-06-08 1984-08-14 Burroughs Corporation Concurrent processing elements for using dependency free code
US4463423A (en) * 1982-07-14 1984-07-31 Burroughs Corporation Method of transforming high level language statements into multiple lower level language instruction sets
US4527238A (en) * 1983-02-28 1985-07-02 Honeywell Information Systems Inc. Cache with independent addressable data and directory arrays
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4661900A (en) * 1983-04-25 1987-04-28 Cray Research, Inc. Flexible chaining in vector processor with selective use of vector registers as operand and result registers
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292870B1 (en) 1997-08-29 2001-09-18 Fijitsu Limited Information processing system in which memory devices and copies of tags are accessed in response to access requests issued from plurality of processing units

Also Published As

Publication number Publication date
US4783736A (en) 1988-11-08
AU5893886A (en) 1987-01-29
EP0213694A3 (en) 1989-01-11
CA1259140A (en) 1989-09-05
EP0213694A2 (en) 1987-03-11

Similar Documents

Publication Publication Date Title
JPS62187946A (ja) 多重アクセスを同時に処理するデイジタル・コンピユ−タ
US4794521A (en) Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
EP0214718A2 (en) Digital computer
US4922414A (en) Symbolic language data processing system
EP2542973B1 (en) Gpu support for garbage collection
US6038584A (en) Synchronized MIMD multi-processing system and method of operation
KR910002929B1 (ko) 파이프 라인 캐쉬 메모리 장치
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
US5226125A (en) Switch matrix having integrated crosspoint logic and method of operation
US6070003A (en) System and method of memory access in apparatus having plural processors and plural memories
US5734817A (en) Method for making a data base available to a user program during data base recovery
US9372805B2 (en) Operating on translation look-aside buffers in a multiprocessor environment
JPH0583932B2 (ja)
US4887235A (en) Symbolic language data processing system
JP2012038293A5 (ja)
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
EP3639144B1 (en) Memory management in non-volatile memory
Pumma et al. Parallel I/O optimizations for scalable deep learning
KR20150099434A (ko) 인터럽트가능 저장 익스클루시브
US20190205259A1 (en) Exitless extended page table switching for nested hypervisors
US5339397A (en) Hardware primary directory lock
Lan et al. SWhybrid: a hybrid-parallel framework for large-scale protein sequence database search
JPH02207352A (ja) 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置
EP0113460A2 (en) Symbolic language data processing system
US5197133A (en) Control store addressing from multiple sources