JPH0236459A - プロセシング・システム - Google Patents
プロセシング・システムInfo
- Publication number
- JPH0236459A JPH0236459A JP1069397A JP6939789A JPH0236459A JP H0236459 A JPH0236459 A JP H0236459A JP 1069397 A JP1069397 A JP 1069397A JP 6939789 A JP6939789 A JP 6939789A JP H0236459 A JPH0236459 A JP H0236459A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- address
- control
- module
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
著作権の一部放棄
本特許出願におけるすべての材料は、英国、米国および
その他の国々の著作権法に基く著作権による保護に服す
る。本出願の最初の存効な出願日を以て、本出願の材料
は未公開の材料として保護される。 しかしながら、この材料を複写することは、特許書類あ
るいは特許開示か英国あるいはその他の国の公的な特許
出願書類あるいは記録において現れてくるものとして、
だれもがファクシミリ再生することに著作権者は異Mぶ
を唱えないという範囲内において、許可される。しかし
、その地点においては、著作権者はどのようなものであ
るかすべての著作権を留保する。 [産業上の利用分野コ 本発明は、プロセシング・システムに関し、特に命令実
行の改良されたコンピュータ・システムおよびサブシス
テム、およびコンピュータを利用したデータ処理方式に
関するものである。 [従来の技術] マイクロコーディングしたアーキテクチャ高速で柔軟な
コンピュータ・アーキテクチャを開発するための非常に
重要なツールはマイクロコーディングである。詳しい説
明は、J 、 MickおよびJ 、 Br1ck著、
Blt−5Lice MicroprocessorD
esign (1980)を参照されたい。この文献
は引用することで本明細書の一部とする。マイクロコー
ディングしたアーキテクチャは非常に柔軟であるばかり
でなく、処理速度を非常に向上できる可能性も備えてい
る。 マイクロコーディングしたアーキテクチャでは、個々の
命令はかなり長い(たとえば、100ビツトなど)。か
なり低レベルのロジックによって命令をデコードするこ
とにより、適切なフィールドが低レベルのデバイス(レ
ジスタ・フィールドやアドレスなど)に送出されるよう
にしている。 つまり、命令フィールドのビットの1.9数は通常、命
令の総数のlog2より非常に大きくなる。このため、
デコード操作を非常に単純化できる。マイクロコーディ
ングしたアーキテクチャでは、アドレス演算を実行する
ためと最初のレベルのデコードを実行するためにシーケ
ンサを使用する。 (また、プログラム・シーケンシング(順序付け)機能
を実行するために、低レベルのロジックも使用できる。 )シーケンサはコントロール・ストア(メモリ)から、
マイクロ命令をアクセスし、マイクロ命令のいろいろな
部分が追加デコード・ロジックに提供されたり、直接デ
バイスに渡される。1つの命令には多くのコマンド・フ
ィールドが含まれる可能性があるため(フィールドはす
べて同時に実行される)、非常に短いマイクロコード・
プログラムを作成できる。 個々の命令は非常に低レベルで、かなり長いため、プロ
グラムを格納するのに必要な記憶空間は非常に重要であ
る。また、マイクロコード・ルーチンをロードするため
に必要なデータ転送も重要となる。 マイクロコード・オーバーレイ プロセッサは通常、一定の量の書き込み可能コントロー
ル・ストレージ(”wcs”)、だけしか使用できない
。したがって、−度にWC3に格納しなければならない
ルーチンの数が非常に多い場合には、何らかのオーバー
レイが必要である。スタートアップ時にはマイクロコー
ドをロードするためにシリアル・ループを使用でとるが
、オーバーレイをロードするためにシリアル・ループを
使用することは実際的ではない。これは、ホストが命令
をロードできる速度が非常に遅いためである(たとえば
、ディスクのアクセスに応じて、1つの命令をロードす
るのに100マイクロ秒から3ミリ秒かかることがある
)。 マイクロコードの圧縮 大量のマイクロコードを削減するためにこれまで採用さ
れてきた1つの方法は、“垂直”マイクロコードと呼ば
れる。この方式では、必要な記憶空間を削減するために
デコード・テーブルを使用する。このデコード・テーブ
ルを定義しておけば、各マイクロコード命令に、命令そ
のものよりはるかに短い固有の゛°名前”を与えること
ができる。(たとえば、命令の数が256以下の場合に
は、個々の命令の長さが数百ビットの場合でも、8ビツ
トの名前によって各命令を参照できる。)このような命
令の短い“名前”を垂直マイクロコードと呼び、実際の
実行可能なマイクロコード命令は、“水平“マイクロコ
ードと呼ぶ。 この方式では、完全な命令ではなく、命令フィールドを
エンコードするために検索(ルックアップ)テーブルを
使用することがある。このようにすれば、検索に必要な
メモリ空間を削減できる。 適切なフィールドの組み合わせに対して、追加ロジック
が必要である。しかし、垂直マイクロコード方式は一般
に採用されていない。これは、この方式の速度が非常に
遅いからである。 アドレス空間とアドレス計 大きいアドレス空間を持つ仮想メモリ・システムが増加
している中で、32ビット以上のアドレス空間を取り扱
うことができる機能はコンピュータ・システムにとって
非常に重要になっている(48ビット以上のアドレス空
間を備えたシステムも出現している)。しかし、データ
と命令に対して同じアドレス空間を使用するシステムで
は、これはプログラム・シーケンスに対して制約条件と
なる可能性がある。 非常に高いスループットが必要とされる場合には、通常
、マイクロコーディングしたシステムを使用する。した
がって、このようなシステムでは、特にプログラム・ア
ドレス計算の速度が重要である。しかし、大きいアドレ
ス空間を使用すると、リアルタイムでアドレスに対して
実行できる計算の範囲が大きく制限される。このような
制限は特に、高速フーリエ変換(FFT)のようなアル
ゴリズムでは不便である。FFTは大量のデータ演算と
アドレス演算を必要とする。 [発明の要約コ 本出願では、第1図に示すようなシステムをもとに、多
くの革新的教示について述べる。多くの革新的教示の中
で、ここでは、マルチプロセッサ・システムについて述
べる。マルチプロセッサ・システムでは、制御プロセッ
サが数値処理モジュールとの間のすべてのデータ転送を
制御し、この制御プロセッサは、主に、与えられたタイ
プのすべての操作(数値プロセッサによる操作)に対し
て同じマイクロコードを実行する。(たとえば、ベクト
ル加算、ベクトル減算、ベクトル乗算は、これらの操作
がすべて、2つのベクトルを3番目のベクトルにマツプ
するという点で、“同じ形式タイプの操作である。) ここでは、もう1つの革新的教示として、圧縮したマイ
クロコードのための新しいアーキテクチャについて述べ
る。バイパス・レジスタを使用することにより、命令を
書き込み可能コントロール・ストレージから呼び出すと
きに、マイクロコード命令フィールドの特定のビットを
、上位レベルのプロセッサから渡された他のビットと置
き換えることができる。 本発明は特に、一部のプログラムが、演算中心型操作を
各データ・セットに対して実行しなければならないよう
なシステムで有利であると確信する。 (以下、第101頁に続く) [実施例] 以下、図面を参照して本発明の実施例を詳細に説明する
。 (目次) 実施例、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、112概要説明、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、l1
2設計目標、、、、、、、、、、、、、、、、、、、、
、、、、、、、、121アルゴリズムの分割、、、、、
、、、、、、、、、、、、、122アーキテクチヤの説
明、、、、、、、、、、、、、、、、125cpモジユ
ール110の概略 (第2A図) 、、、、、、、:、、、、、、、、、
、、、、、、、126DTPモジユール120の概略 (第3A図) 、、、、、、、、、、、、、、、、、
、、、、、、、128FPモジユール130の概略 (第4八−4C図) 、、、、、、、、、、、、、、
、、、、、 1310CMの概略 (第5図) 、、、
、、、、、、、、、、、134CMI90の概略、、、
、、、、、、、、、、、、、、、、、、、137外部イ
ンタフェースの概略、、、、、、、、、、139制御プ
ロセツサ(cp)モジュール110、、、.142整数
プロセッサ機構(IPII)240.、、、、、、、、
、I50アドレス生成機構(AG>230、、、、、、
、、、、、.152シーケンサ210と関連支援ロジッ
ク 、155割込み、=、、、、、、、、、、、、、
、、、、、、、、、、、、15B浮動小数点プロセッサ
(一般) (+61)条件コード・ロジック、、、、、
、、、、、、、、、163マイクロ・アドレス・バス、
、、、、、、、、、+68定数フイールド、、、、、、
、、、、、、、、、、、、、、170書込み可能制御記
憶機構(WO2)、220.、、、、.171WCSイ
ンタフエース・レジスタ 222と223 、、、、、、、、、、、、、、、、、
、、、、、、.172FP制御ロジツク、、、、、、、
、、、、、、、、、、、、、、、+75その他のロジッ
ク、、、、、、、、、、、、、、、、、、、、175モ
ード・レジスタ203 (175) :CDバス・デコ
ード・ロジック(178)クロック発生機構250、、
、、、、、、、、、、、、、.178デバツグ・ハード
ウェア、、、、、、、、、、、、、、184マイクロコ
一ド語の形式、、、、、、、、、、、、、、185デー
タ転送プロセツサ・モジュール120、.198データ
転送の制御1090161616.。、、、、−,20
1整数プロセッサ機構:140、、、、、、、、、、、
、、.208シーケンサ310と関連支援ロジック、、
、、208割込み、、、、、、、、、、、、、、、、、
、、、、、、、、、、、208条件コード・ロジック、
、、、、、、、、、、、、、211マイクロ・アドレス
・バス311、、、、、.216定数/次アドレス・フ
ィールド、、、、、、216マルチウ工イ分岐、、、、
、、、、、、、、、、、、、、、、216書込み制御記
+Q機構(WC5) 320.、、、、、、、、.22
0DMAコントローラ、、、、、、、、、、、、、、、
、、、、、221その他のロジック、、、、、、、、、
、、、、、、、、、、、221デコード(222);ク
ロック発生 機構(224) デパック・ハードウェア、、、、、、、、、、、、、、
224マイクロコ一ド語の形式、、、、、、、、、、、
、、、225マイクロコード拡張バス、、、、、、、、
、、、、、、233数値プロセツサ・モジュール130
、、、、、、、.234浮勅小数点算術演算機構(FP
U) 、、、、、、、、238算術計算機構440と4
50、、、、、、、、、、、.239スクラツチパツド
・メモリ1610.、、、、.244高速レジスタ・フ
ァイル430、、、、、、、.2462重バッファリン
グ、、、、、、、、、、、、、、、、、、252非レジ
スタ・ビットのセットアツプ 時間短縮、、、、、、、、、、、、、、、、、、、、、
、、、、、259キヤツシユ・バス・インタフェース と制御、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、262保持レジスタ420、、、、、
、、、、、、、、、、、、.262データ・キャッシュ
転送ロジック、、、、263局所転送パス制御ロジック
(264) 。 転送りロック発生機構412 (264) ;制御信号
(269) 転送の制約条件(缶詰構造) 、、、、、、、、273
保持レジスタ/転送りロック動作、、、、278FPプ
ログラム制御、、、、、、、、、、、、、、、、、、、
、279マイクロ命令順序付け(279)。 スタック・レジスタ478 (281) 。 サブルーチンの動作(283) 、クロック発生機構4
80 (283) 、マイクロコード短縮(288)
、マイクロコード(7) 1 列ロード(289) ;
FPマイクロコード・ルーチン実行の始動(291)。 Fr’モジュールの選択(292)、制御レジスタ(2
94) マイクロコード語の形式、、、、、、、、、、、、、、
301プログラムの渣れの例、、、、、、、、、、、、
、、、、309デバツグ、ハードウェア、、、、、、、
、、、、、、、310Cアプリケーション向きプロセッ
サ・ モジュール130°、、、、、、、、、、、、、、、、
、、、、、、、、3HFFT高速化モジユール、、、、
、、、、、、、、、、314データ・キャッシュ・メモ
リ・ モジュール140、、、、、、、、、、、、、、、、、
、、、、、、.316メモリ構成、、、、、、、、、、
、、、、、、、、、、、、、、、、323データ・ポー
ト、、、、、、、、、、、、、、、、、、、、、、32
4CP転送ロジツク、、、、、、、、、、、、、、、、
、、、、、、326DTP転送ロジツク540、、、、
、、、、、、、、、、、.333仲裁ロジツク535、
、、、、、、、、、、、、、、、、、、.334コマン
ド−メモリ190、、、、、、、、、、、、、、、、、
.33Bホスト・インタフェース・ロジック160、.
34G物理的バス線とのインタフェース、、、、、、3
43バス・コントローラ650 (343) 。 マスク・モードとスレーブ・ モード(345)、データ・バッファ 620 (347) : アドレス・バッファVMEイ
ンタフェース・メモリ560、、、、、.347メモリ
・マツプ、、、、、、、−、、、、、、、、、、、、、
,347データFrF0670.、、、、、、、、、、
、、、、、、、、、、.350VME割込みロジック6
80、、、、、、、、、、、、、.351DMA:+シ
トローラ640、、、、、、、、、、、、、、、.35
1マイクロコード・ロード制御 ロジック610、、、、、、、、、、、、、、、、、、
、、、、、.354レジスタ・ブロック612、、、、
、、、、、、、、、.355制御レジスタ・ビット(3
55)ニ ストロープ・バッファ(358) 。 状況レジスタ(360) ;wcs制御レジスタ(36
1):WCSデータ・ レジスタ(366);CPマイクロ アドレス・レジスタ(387)。 DTPマイクロアドレス・ レジスタ(367) データ・パイプ・インタフェース ロジック150、、、、、、、、、、、、、、、、、、
、、、、、、、.369画像プロセッサ・インタフェー
ス170、、、.373直列ループ・インタフェース、
、、、、、、、、、、、376制御記憶機構とのループ
・ インタフェース、、、、、、、、、、、、、、、、、、
、、、、37フループ制御、、、、、、、、、、、、、
、、、、、、、、、、、、、378ループ・トポロジ、
、、、、、、、、、、、、、、、、、、、381ホスト
とのループ・インタフェース、、、、386DTPマイ
クロコード拡張ループ、、、、、、、、386並列マイ
クロコード・ローディング、、、、、、387モジユー
ル拡張オプシヨン、、、、、、、、、、、、、、391
モジュール接続、、、、、、、、、、、、、、、、、、
、、、、392多重数値処理モジュール、、、、、、、
、、、、、、、394キヤツシユ・メモリ拡張、、、、
、、、、、、、、、、399物理的および電気的実装ボ
ード、、、、、、、、、、399PAL実装、、、、、
、、、、、、、、、、、、、、、、、、、、、、、40
5CP PAL、、、、、、、、、、、、、、、、、、
、、、、、、、、、、408クロツク波形生成PAL2
50 (406) ;CDバス・ソースPへL (40
8) :(:Dバス宛先PAL (409) 、符号/
ゼロ拡張PへL;216 (410) 、マルヂウエイ
分岐アドレス指定1’AL217 (411)データ人
力条件コード選択1’AL(412)DTP と I
/F PAL 、、、、、、、、、−、、、、、、
、、イ12VMEアドレス・デコードPAL (413
) :DMA FIFO状況とクロック制御PAL(4
13) ;VME読取りと書込みデコードPAL611
(414)、VME スレーブ・アクセス・タイミング
PへL(414);信号ループ制御PAL(415) DCM とDCM I/F PAL 、、、、、、、、
、、、、、、、、4180CMアドレス・デコードPA
L(418)。 DCM保持レジスタ制御PAL(419);DCM書込
みフラグ・レジスタ PAL(421) :FP書込みマスクPAL(423
)FP PAL、、、、、、、、、、、、、、、、、、
、、、、、、、、、、423WCSロード・イネーブル
PAL (423);ホスト−ソース・モジュール 選択PAL (42:l) 、CPモジュール選択PA
L (425) ;FP−WC5制御PAL (426
1;ハンドシェーク・ロジックPAL(428) 。 割込み捕捉1’AL(イ32);マイクロアドレスとク
ロック制御 1’AL(432) :直列/並列ロード選択PAL
(433) ;CP書込みデコードPへL(434)
;CP読取りデコードPAL(435) ;保持レジス
タ制御P糺461 (436) :保留レジスタ開始ア
ドレスPAL(439) ; レジスタ・ファイルWE
制御(439)、レジスタ・ファイル・アドレス修f!
1jPAL (440) ;レジスタ・ファイル・アド
レス 増分機構(441)、データ有効性制御PAL(442
) ;マイクロ命令アドレス選択PAL(442) ;
^LU問題状況PAL (443) 。 スタック制御PA13910 (444) :レジスタ
・ファイル・アドレス 修飾子PAL (445) ;結実用バス制御PAL
(447) :VME割込、;5L PAL (448
) 。 DMA/VME スーIF−−トーマEzン(449)
;DMAアドレス制御(452)、割込み縁捕捉(45
2)。 GIPマイクロコード・デコード (45:IA) ;Gll’割込みマスク(453B)
:Glf’割込みステート・マシン(454)ホスト
・コンピュータ、、、、、、、、、、、、、、、、、、
454ホストとのバス・インタフェース 、、、、45
6画像プロセッサ・サブシステム、、、、、、、、45
7システムの動作、、、、、、、、、、、、、、、、、
、、、、、、、459サンプル動作の実現、、、、、、
、、、、、、、、、、、、459物理メモリ・モデル ((:P/DTP間のやりとり) 、、、、、、、、、
、、、、、461仮想メモリ・モデル、、、、、、、、
、、、’、、、、、、、470cpとFP間のやりとり
、、、、、、、、、、、、、、、、、、47111ソフ
トウ工ア階層、、、、、、、、、、、、、、、、、、、
、484アプリケーシヨンとライブラリ・ ソフトウェア、、、、、、、、、、、、、、、、、、、
、、、485装置ドライバ、、、、、、、、、、、、、
、、、、、、、、、487マイクロコード監視ルーチン
、、、、、、、、489マイクロコード転送ルーチン(
DTP) 、、491マイクロコード転送ルーチン(C
P) 、、−492マイクロコード計算ルーチン(FP
) 、、、、493短縮マイクロコード、、、、、、、
、、、、、、、、、、、495マルヂウ工イ分岐、、、
、、、、、、、、、、、、、、、、、496離敗フーリ
エ変換実装、、、、、、、、、、、、、、、、、、49
7多重FPモジュール付きFFT 、、、、、、、、、
、、、503バタフライ計算スルーブツト(504)
。 転送バンド幅(505) ヒストグラム・アルゴリズム実装、、、、、、、、50
9プレビユー・モードのパイプライン方式%式% 本出願の数多くの新規な開示技術について、本発明の好
適実施例に特に関連づけて説明するが、これらの新規開
示技術は、ホスト・コンピュータの指示を受けて稼動し
て高速数値計算を処理するサブシステムの特有の問題に
応用できる利点がある。(この種のサブシステムは一般
に「高速化ボード」と呼ばれている。)しかし、本実施
例は、本明細書に記載されている新規開示技術の多数の
有利な用途の1つの例にすぎないことは勿論である。例
えば、本明細書に開示されている各種アーキテクチャ上
の新規技術は、広範囲にわたるコンピュータ・システム
に任意選択的に応用が可能である。−船釣に、本明細書
に記載されている内容は特許請求の範囲に記載の様々な
発明の範囲を必ずしも限定するものではない、さらに、
記載内容によっては、本発明の特徴事項に通用される。 ものと適用されないものとがある。 概要説明 以下では、第1図に示すものと同じシステムの実施例(
または第9八、1O141、または43図に示す代替実
施例)に特に関連づけて本発明を説明することにする。 これらの実施例の特徴事項は本発明の必須事項のすべて
であるとは限らず、好適実施例を説明するために便宜的
に示したものである。 第1図は、数値処理システムのアーキテクチャを示した
概念図であり、通常大型コンピュータ・システムのサブ
システムとして使用されるものである。第1図に示すよ
うなシステムは一般に「高速化ボード」と呼ばれている
。これらは通常サブシステムとして使用されている。つ
まり、監視プロセッサから高水準コマンドがこの高速化
サブシステムに与えられる。例えば、監視プロセッサは
高速化サブシステムにベクトル加算、行列反転、高速フ
ーリエ変tl(FFT)の実行を命令することができる
。高速化サブシステムはこの命令を受けて監視プロセッ
サが指定した記憶位置からデータを取り出し、数値処理
操作を実行し、その結果を監視プロセッサに返却する。 第1図は、3つの異なるプロセッサ・モジュールからな
り、そのすべてが異なるタスクを同時並行に実行できる
アーキテクチャを示している。これらの3モジユールと
は、制御プロセッサ(cp)モジュール11O,データ
転送プロセッサ(DTP)モジュール120 、数値処
理モジュール130である。 (この数値処理モジュールは浮動小数点処理モジュール
であることが好ましく、従ってこのモジュールは”FP
”モジュールと呼ばれることが多い。数値処理モジュー
ルは、以下で説明するように、他にも各種タイプのもの
が使用可能である。)数値処理モジュール130は他の
2つのプロセッサと非同期に、つまり、完全に独立した
クロックで稼動する。さらに、外部インタフェース15
0.160,170,180にも相当量のロジックが備
わっている。 データ・キャッシュ・メモリ140の構造と、システム
内の他のブロックとの関係は非常に重要である。データ
・キャッシュ・メモリ140は広幅キャッシュ・バス1
44を経由して浮動小数点プロセッサ!30に結ばれて
いる。好適実施例では、キャッシュ・バス144は、デ
ータ用に予約された256木の物理線から構成されてい
る。 これらの3種類のプロセッサ・モジュールはタスク割振
りを容易にする。タスク割振りは基本的には次のように
行なわれる。 データ転送プロセッサは、外部インタフェースを通して
外部世界とのインターフェースを管理すると共に、キャ
ッシュ・メモリと外部世界との間のデータ転送を取り扱
う。 制御プロセッサ110はアドレス計算を行ない、数値処
理モジュール130との間で送受されるすべてのデータ
転送を制御する。 数値処理モジュール130はデータ計算を行なう。 このタスク割振りを効率よく、高速にサポートするシス
テムを設計するためには、いくつかの重要なアーキテク
チャ上の問題を解決する必要がある。しかし、本発明に
よれば、これらの問題が解決され、驚異的な成果が得ら
れる。 かかるアーキテクチャの実現を容易にするために、第1
図の実施例では、注目すべきハードウェア機構がいくつ
か設けられている。第1は、制御プロセッサ110に、
アドレス計算操作のための強力な機能をもたせたことで
ある。好適実施例では、第2図に概要を示すように、こ
のプロセッサはシーケンサだけでなく、アドレス生成ロ
ジックと算術論理演算機構(ユニット) (ALII)
も備えている。 データ転送プロセッサ120は外部インタフェース・コ
ントローラの動作を監視する。好適実施例では、外部イ
ンタフェース・コントローラは実際には3つ設けられて
いる。つまり、VMEバス・インタフェース160と、
2個のバックブレーン・バスに対する制御装置である。 (一方のバックブレーン・バスは「データ・バイブJで
あり、高速化ボード間を高バンド幅リンクで結ぶもので
ある。もう一方はrGIPバス」であり、画像や図形デ
ータの伝送を最適化するものである。)これらの3つの
バス・インタフェースの各々は、独自の制御ロジックと
好ましくはコントローラを備えている。例えば、VME
バス・インタフェースはブロック・データ転送を高速化
するために、直接メモリ・アクセス(DMA)コントロ
ーラを備えている。 しかし、データ転送プロセッサ120はこれらのインタ
フェースを高度に監視する機能を備えている。上記アー
キテクチャの最も重要な部分はキャッシュ・メモリ14
0である。このキャッシュ・メモリは幅が広((256
ビツト幅)、大容量であり(少なくとも2メガバイト)
、高速であるが(現構成ではアクセス時間が100ナノ
秒であり、より高速化することが好ましい)、それだけ
でなく3つのボートを備えて効率化を図っている。この
メモリは物理的には2ポートだけにするのが好ましく、
制御プロセッサ110とデータ転送プロセッサ120間
の仲裁はそれぞれのマイクロコード命令方式で行なわれ
る。 さらに注目すべきことは、キ・ヤッシュ・メモリ140
の3ボートが全く異な1ことである。−船釣に、大部分
の数値処理サブシステムでは、キャッシュ・メモリと数
値処理構成機構(ユニット)間のバンド幅か非常に重要
になっている。従って、好適実施例では、数値プロセッ
サにつノJがるボートは制御プロセッサとデータ転送プ
ロセッサにつながるボートよりも幅が広くなっている(
従って、バンド幅が広くなっている)。好適実施例では
、後者のボートはわずか32ビツト幅である。さらに、
完全並列レジタ群が32ビツト・ボートで使用されてい
るので、これらのボートに対するすべてのアクセスはキ
ャッシュ・メモリ140からは完全に並列、つまり、2
56ビツト並列読取りまたは書込みとして見えるように
なっている。 数値処理モジュール130とのインタフェースは、複数
のモジュール130がすべて1つの制御プロセッサの制
御を受けて並列に使用でき、すべてが(好ましくは)1
つのデータ・キャッシュ・メモリ14Gをアクセスでき
るように定義されている。キャッシュ・バスの幅を極端
に広くすることは、この複数モジュール機能を実現する
上で重要な要因となる。 制御プロセッサ110とデータ転送プロセッサ・モジュ
ール120間のインタフェースにも、キャッシュを効率
よく利用できる重要な機能を備えている。好適実施例で
は、重要な機能のいくつかは、このやりとりの利点を向
上するために使用されている。第1は、多重プログラミ
ング・プロセッサでは普通に行なわれていることである
が、制御プロセッサ110とデータ転送プロセッサ12
Gが共に可変継続時間命令を使用していることである。 つまり、ある種の命令タイプは、他の命令タイプよりも
サイクル時間を大幅に長くする必要がある。 例えば、8i端な例として、ノー・オペレーション命令
や無条件ブランチは、乗算命令よりもCPU時間を大幅
に少なくする必要がある。従って、可変継続時間クロッ
クを使用してプロセッサの制御を行ない、実行中の命令
をクロック発生装置にチエツクさせて、クロック時間間
隔の継続時間をそのチエツク結果に応じて高速に調整す
ることが一般化されている。 本好適実施例では、制御プロセッサ110とデータ転送
プロセッサ120は共に共用可変継”経時間クロックに
よりクロックがとられる。従って、制御プロセッサ11
0とデータ転送プロセッサは、たとえ別々の命令ストリ
ームを同時に実行中であっても、同期して稼動するよう
にイネーブルされる。 制御プロセッサ110にキャッシュ・メモリ140への
アクセス優先権が与えられている。つまり、データ転送
プロセッサlzOは、制御プロセッサ110が先にキャ
ッシュをアクセスしていないことを確かめてからキャッ
シュをアクセスする必要がある。しかし、ロックアウト
を防止するために、データ転送プロセッサ120は割込
み信号を出して、制御プロセッサ110が少なくとも1
サイクルの間キャッシュ・ポートの制御権を解放するよ
うに指示することができる。 これらの31!!類のプロセッサ・モジュールは、以下
の説明で略語を用いて引用することがある。 例えば、データ転送プロセッサ・モジュール120で実
行されるマイクロコードはDTPマイクロコードと呼ぶ
場合がある。同様に、制御プロセッサ110で実行され
るマイクロコードはCPマイクロコードと、数値処理モ
ジュール130で実行されるマイクロコードはFl’マ
イクロコードと呼ぶ場合がある。これらの略語は他の機
能についても用いられている。 設計目標 本好適実施例のサブシステムは、小型化され、低コスト
であるが、高度の浮動小数点数値処理性能をもつ設計に
なっている。 このサブシステムを使用するために2つのシステムが目
4票となっている。このサブシステムは、広範囲にわた
る汎用ホスト・コンピュータで浮動小数点高速化機構(
ユニット)として使用するのに適している(特に、UN
IXエンジンと互換性をもたせることが望ましい)。 また、第1図の高速化システムは、特殊画像処理システ
ムで利用すると大きな利点が得られるように意図されて
いる。この種のシステムの例としては、ベンチマーク・
チクノロシーズ社から提供され、rGIPシステム」と
呼ばれる図形画像処理システムがある。(GIPシステ
ムは広範囲にわたる°図形画像アプリケーションで高ス
ループツトが得られるようにするいくつかの機能を備え
ている。)第1.9八、1O243図などに示されてい
るような高速化サブシステムを備えたこの種のシステム
は、3次元図形アルプリズムを実行させる上で特に利点
がある。 アルゴリズムの分割 以下で、は、第1図のアーキテクチャについてさらに詳
しく説明するが、その前に、この多重プロセッサ構成が
どのように使用されるかについて説明することにする。 上述したように、大部分のアルゴリズムは4つの独立部
分、つまり、制御、データ入力、アドレス計算、および
データ計算に分けることができる。 これらを個別タスクとして扱い、3つのプロセッサにマ
ツピングするようなアーキテクチャにすることが好まし
い。制御とアドレス計算は制御プロセッサ(cp)モジ
ュール110が取り扱い、データ入出力タスクはデータ
転送プロセッサ(DTP)モジュール120が取り扱い
、データ計算は浮動小数点プロセッサ(FP)モジュー
ル130が取り扱う。 アルゴリズムをjtXJ ?卸プロセッサ・モジュール
110 とFl’間でどのように分割されるかは、いく
つかの特定アルゴリズム実装例を示して、以下に詳しく
説明する。1つの好例は、i31図を参照して上述する
高速フーリエ変JTh(FFT)実装によるものである
が、このFFTアルゴリズムはプログラミング効率が悪
いことでよく知られている。 この例では、FFTアルゴリズムは、データ・サンプル
とフェーズ係数のアドレス計算を制御プロセッサ・モジ
ュール110に割り当て、バタフライ計算を浮動小数点
プロセッサ・モジュール130に割り当てることによっ
て、制御プロセッサ・モジュール110と浮動小数点プ
ロセッサ・モジュール130間で分割されている。 FFTソフトウェアのうちCPモジュール110で実行
される部分は、複素数データのアドレスをステージとバ
タフライ数の関数として計算する。複素数フェーズ係数
はテーブルに保持されているので、そのソフトウェア部
分はテーブル内の必要とする位置も、ステージとバタフ
ライ数の関数として計算する。アドレスが計算で求まる
と、データと係数が取り出されて、浮動小数点プロセッ
サ・モジュール130に渡される。浮動小数点プロセッ
サ・モジュール130がバタフライ計算を完了すると、
ffdJ 御プロセッサ・モジュール110はその結果
を読み取り、格納してから次のバタフライのアドレス計
算を繰り返すことになる。ン主目すべきことは、制御プ
ロセッサ・モジュール110は、実際に行なわれている
バタフライ計算を追跡する必要がなく、データを同期点
で浮動小数点プロセッサ・モジュール130とやりとり
するだけでよいことである。また、このソフトウェアは
、アドレスを計算するだけでなく、キャッシュ・メモリ
と数値プロセッサ間の実際のデータ転送を制御すること
もン主目すべきである。 FFTソフトウェアのうち浮動小数点プロセッサ・モジ
ュール130で実行される部分は、各連続ステージでデ
ータ・セットのバタフライ計算を行なうように直、線的
にコーディングされた単純命令列によってバタフライ9
1算を行なう。各ステージでの正確なデータと係数を得
るために必要な複雑なアドレス計算はで知しない。従っ
て、データ計算のためのコートは、データ転送操作と無
関係に書くことかできる。事実、浮動小数点プロセッサ
・モジュール130に別の設計を採用したい場合(例え
ば、異なる浮動小数点チップ・セットを使用したり、F
FTにより適した低レベル・データ通路アーキテクチャ
を使用したりする目的で)は、このソフトウェア部分(
比較的単純化されている)を変更するだけでよい。 CPとFPソフトウェアの実行は並列に行なわれ、アル
ゴリズム実行速度が低速部分によって決まるようにバイ
ブライン化されている。 アーキテクチャの説明 第1図のサブシステムの主要部分のいくつかについて、
以下詳しく説明する。なお、ここでは、要約だけを説明
していることに注意されたい。もっと詳しい説明はその
あとで行なう。 CTIモジュール110の概略(第2八図)制御プロセ
ッサ(CP)モジュール110は、32ビット整数プロ
セッサ機構(ユニット)(Ir’1J)240、マイク
ロコード・シーケンサ210、 アドレス生成機構(ユ
ニット) (八G)230、その他マイクロプログラム
・メモリ、クロック発生装M、ハス制御といった機構(
ユニット)から構成されている。 好適実施例では、整数プロセッサ機構240はWeit
ek XL8137を使用し、シーケンサ210はAn
alog Davices社製八〇5P−1へ01を使
用し、アドレス生成機構230はAnalog Dev
ices社製ADSP−1401を使用している。当業
者ならば容易に理解されるように、これらに代えてその
他の各種構成要素を使用することも、他のブロックに同
等の機能をこれらに代えて組み入れることも可能である
。 $lJ御プロセッサ・モジュール110は次の2つの主
要タスクを受は持つ。 まず、ホストからのコマンドを解釈し、DTPモジュー
ル120に転送を要求し、データ計算を開始する前に浮
動小数点プロセンサ・モジュール130を初期°化する
ことによって、ボードの動作を制御することである(高
位レベル)。 次に、データ・キャッシュ・メモリのアドレスを生成し
、データ・キャッシュ・メモリとFPモジュール130
間のデータ転送と経路を制御することである。この活動
は通常高位レベル制御操作が完了したあと、実際の数値
処理過程で反復的に行なわれる。ループ制御はシーケン
サが取り扱い、アドレス生成機構とIPUがアドレス生
成のために排他的に使用できるようになっている。 他のブロックとの連絡は32ビツト幅データ・バス(C
Dバス112 )を通して行なわれ、jlilJ御プロ
セッサ・モジュール110はこのバスを通して、データ
・キャッシュ・メモリ140、コマンド・メモリ190
、およびFPモジュール130の制御レジスタに対する
読み書きを行なう、制御プロセッサ・モジュール110
はホストによって(VMEインタフェース18Gを通し
て)、浮動小数点プロセッサ・モジュール130によっ
て、あるいはデータ転送プロセッサ・モジュール120
によって割込みをかけることが可能である。正常動作で
は(つまり、プログラム開発やデバッグと切り施「され
た)、データ転送プロセッサ・モジュール120だけが
割込み発生源となる。 DT+’モジュール120の概略(第3八図)データ転
送プロセッサ(DTP)モジュール120は同じ32ビ
ツト・プロセッサとシーケンサを使用しているので、プ
ログラマから見たとき同じように見える。顕著に異なる
のはバス制御とインタフェース制御である。制御プロセ
ッサ・モジュール11(lと異なる特徴がもう1つある
。それは、データ転送プロセッサ・モジュール120に
は、マイククロコード拡弓長ボートがあり、アットオン
・ボード(大容量メモリ・カードやネットワーク・カー
ドなど)の制御が可能になっていることである。 データ転送プロセッサ・モジュール120は次の2つの
タスクを受は持つ。 まず、データ・キャッシュ・メモリと外部インタフェー
ス間のデータ転送を制御することである。(これは、制
御プロセッサ・モジュール110(またはホスト)から
コマンドを受けて行なわれる。) 次は、外部インタフェースからのコマンドをコマンド・
メモリ+90に保管されているコマンド待ち行列に転送
し、あとで制御プロセッサ・モジュールが処理できるよ
うにすることである。外部インタフェースはいずれもコ
マンドを出すことができるが、初期状態では、VMEイ
ンタフェースが主要コマンド発生源であるものと予想さ
れる。適当なソフトウェアでコマンド・リストをデータ
・キャッシュ・メモリ(またはコマンド・メモリ)に入
れておき、あとでマクロとして呼び出される(この手法
は「ベクトル連鎖」とも呼ばれている)。デバッグ環境
では、データ転送プロセッサ・モジュール120はデバ
ッグ・モニタ(ホスト側で稼動)とデータ転送プロセッ
サ・モジュール120や制御プロセッサ・モジュール1
10や浮動小数点プロセッサ・モジュール130でデバ
ッグ中のマイクロコード間の主要インタフェースとなる
。 また、このデータ転送プロセッサ・モジュールを通して
デパック・モニタはVMIEアドレス空間にマツピング
されていない各種メモリをアクセスすることができる。 外部インタフェース、データ・キャッシュ・メモリ、コ
マンド・メモリ、VMEインタフェース・メモリ、およ
びデータ転送プロセッサ・モジュール120間のデータ
とコマンドの転送は32ビツト幅TOバス122を経由
して行なわれる。外部インタフェース150,160.
170はFIFO(先入れ先出し)でバッファに入れら
れ、アテンションが必要になフたとき、つまりある種の
データを受は取ったり、なにもなくなりつつあるとき、
データ転送プロセッサ・モジュール120に割込みをか
ける。別の割込み発生源としては、ホスト(VMEイン
タフェース経由)と、制御プロセッサ・モジュール11
0がある。 データ転送プロセッサ・モジュール120によるデータ
・キャッシュ・メモリへのアクセスは、制御プロセッサ
・モジュール110が使用していないサイクルに制限さ
れる。(CPモジュール110は浮動小数点プロセッサ
・モジュール130への転送時や自身のためにメモリを
使用していることがある。)データ転送プロセッサ・モ
ジュール120が長時間アクセス待ちに置かれた場合は
、制御プロセッサ・モジュールに割込みをかけて、サイ
クルをスチールすることができる。 FPモジュール130の概略(第4八−4C図)浮動小
数点プロセッサ・モジュール130は別ボートに置かれ
ており、このボードは主ベース・ボードに差し込むこと
によって使用される。浮動小数点プロセッサ・モジュー
ル130の動作は次の2つの部分に分かれて行なわれる
。 (a) マイクロコード浮動小数点機構(ユニット)。 この部分は浮動小数点計算を受は持つ。この機構は1つ
の目標、つまり、可能な限り高速に動作して、浮動小数
点ハードウェア機構の性能を引き出す設計になっている
。これらの設計目標を達成するために、非常に単純化さ
れたアーキテクチャが採用されている。つまり、浮動小
数点乗算機構、浮動小数点ΔLU (算術論理演算機
構)、高11fflボート・レジスタ・ファイル、単純
化された高速シーケンサから構成されている。さらに、
スクラッチバッド・メモリが内部データ通路と密結合さ
れ、参照テーブルを保管し、ヒストグラム記憶域を提供
する。浮動小数点算術演算機構は2つの読取りボートと
1つの書込みボートを通してレジスタ・ファイルとのイ
ンタフェースとなる。 もう1つの書込みボートは読取りボートの一方と結ばれ
て、データ・シャツフルと複写機能を提供する。最終ボ
ートは両方向であり、データをレジスタ・ファイルとや
りとりするために使用される。 (b)データ・キャッシュ・メモリ・インタフェース。 FPモジュールのこの部分は、データ・キャッシュ・メ
モリ上レジスタ・ファイルの両方向ボート間のインタフ
ェースとなる。レジスタ・ファイルとデータ・キャッシ
ュ・メモリ間には両方向レジスタ群があり、データ転送
のバイブラインとなり、データ多重化と経路指定を取り
扱う。 転送制御は転送ロジックで生成される。このインタフェ
ースの多くの部分は、物理的にはFl’モジュール13
0 と同じ場所に首かれているが、CPモジュール11
0と共にクロックかとられるので、FPモジュール13
0の一部というよりも、拡張CPモジュール110と一
般に呼ばれている。 高度多重ボート高速レジスタ・ファイルは、制御プロセ
ッサ・モジュール110と浮動小数点プロセッサ・モジ
ュール間のクリーンなインタフェースとなる点で重要な
要素である。このレジスタ・ファイルの一方の側は制御
プロセッサ・モジュール110と同期して動作し、他方
の側は浮動小数点プロセッサ・モジュール130と同期
して動作する。このようにクロック境界を設けたので、
境界の一方の側に変更を加えても他側が影響されること
がない。この結果、より高速の、あるいはもっと多くの
統合浮動小数点チップ・セットへの移行が容易になり、
従って、浮動小数点機構の独立性を保つことができる。 浮動小数点プロセッサ・モジュール130(またはアル
ゴリズムに合わせて変更されたモジュール130’)は
、最高4つまでこの種のサブシスデムに組み入れること
が可能である。第9八図と第1O図にそのいくつかの例
が示されている。 DCMの概略(第5図) データ・キャッシュ・メモリ140は高バンド幅多重ポ
ート・メモリである。このメモリとそのインタフェース
のアーキテクチャは、本好適実施例のシステム全体の性
能を大幅に向上させる利点をもっている。高バンド幅が
必要とされるのは、浮動小数点プロセッサ・モジュール
130が単純なベクトル計算を実行中のとき、浮動小数
点プロセッサ・モジュール130にデータを常時提供す
るためである(そして、その結果を除去するためである
)。例えば、ベクトル「加算」操作には、計算毎に数字
を3回転送する必要がある。浮動小数点プロセッサ・モ
ジュール130が20Mflopsの計算速度に耐えら
れる場合は、それに歩調を合わせるために要求されるメ
モリのバンド幅は毎秒240Mバイトとなる。 データ・キャッシュ・メモリは64にx 32ビツト・
メモリからなるメモリ・バンクを備え、2Mバイトのオ
ンボード記憶機構を搭載している。これは遠隔メモリ拡
張ボード431Oをキャッシュ・バス144に付加する
ことにより拡張可能である。(物理的には、このメそす
拡張モジュールは浮動小数点プロセッサ・モジュール1
30の各種モジュールと同じコネクタに差し込まれる。 )このメモリ拡張モジュールは、オンボード・データ・
キャッシュ・メモリと同じバンド幅になっているので、
追加の12Mバイト・メモリを2Mバイト単位で拡張す
るように構成することが可能である。2重容量メモリ・
モジュールを使用すると、オンボード記憶機構を4Mバ
イトまで、オフボード記憶機構を24Mバイトまで増加
できる。 データ・キャッシュ・メモリには3つのボートがあり、
各々はプロセッサの各々につながっている。しかし、制
御プロセッサ・モジュール110と浮動小数点プロセッ
サ・モジュール130へのデータ転送はすべてCPマイ
クロコードによって制御されるので、多くの点で、メモ
リを2重ボートだけをもつものとして扱うことが可能と
されていた。 浮動小数点プロセッサ・モジュール130と制御プロセ
ッサ・モジュール110に対するデータ転送は入出力転
送より優先されているので、データ転送プロセッサ・モ
ジュール+20はメモリ・サイクルに空きが出るまで待
たされることになる。データ転送プロセッサ・モジュー
ル120の待ち時間が長い場合は、制御プロセッサ・モ
ジュール110に割込みをかけて、メモリへのアクセス
権を獲得することができる。このことは、制御プロセッ
サ・モジュール110がランダム・アクセスを行なって
いない限り、問題となることはない。その場合でも、ブ
ロック人出力転送では、データ転送プロセサ・モジュー
ル12Gは別のデータ・ブロックを要求する必要が起こ
る前に、メモリ・アクセスご、とにデータを転送するた
めに8サイクルが必要になる。 妥当なサイクル時間メモリ装置で高メモリ・バンド幅を
得るために、広幅メモリ・アーキテクチャが採用された
。メモリは24ビツト幅であるので、1回のアクセス・
サイクルで、32バイト(8F語)が転送される。メモ
リのサイクル期間が100 nsであれば、メモリ・バ
ンド幅はブロック転送では毎秒320Mバイト5ランダ
ムF語のアクセスでは毎秒40Mバイトである。 データ・キャッシュ・メモリは、FPモジュール130
用のマイクロコード・オーバーレイを保管しておくため
にも使用できる。これらは、浮動小数点プロセッサ・モ
ジュール130のマイクロコードがWCSサイズを越え
たとき、FPモジュールの書込み可能制御記1(!機構
との間で受は渡しされる。この並行ロード機能によるW
C5の再ロードは、ホスト制御による通常のシリアル・
ロードよりもはるかに高速に行なわれる。事実、この機
能はマイクロコードを動的にページングができるだけの
高速になっている。 CM 190の概略 コマンド・メモリは小容量(2K)の32ビツト幅メモ
リでり、制御プロセッサ・モジュール110とデータ転
送プロセッサ・モジュール120間の2つのボートをも
っている。コマンド、制御および状況データはこのメモ
リに保管されているソフトウェア待ち行列またはFIF
Oスタックを通して、制御プロセッサ・モジュール11
0とDTPの間で受は渡しされる。 このメモリの半分は制御プロセッサ・モジュール110
と浮動小数点プロセッサ・モジュール130の状態情報
(一部のコマンド構造と共に)を保存しておくために、
マイクロコード・デバッグ・モニタ用として予約されて
いる。 (以下余白) 外部インタフェースの概略 好適実施例では、効率のよいインタフェースをいくつか
備えている。その中で最も重要なのがホスト・インタフ
ェース(V)4Eインタフエースとも呼ばれる)である
。VMEインタフェースは好適実施例によるサブシステ
ムとVMEバスとを結ぶインタフェースであり、VME
バス規格改訂版C1に規定されている電気的仕様とプロ
トコル仕様に準拠している。 VMEインタフェースは、VMEホストがマイクロコー
ドをアップロードしているとき、制御または状況レジス
タをアクセスしているとき、VMEインタフェース・メ
モリ(VIM)をアクセスしているとぎ、あるいはデー
タFIFOをアクセスしているときはスレーブ・モード
で動作する。スレーブ・モードのインタフェースはバイ
トまたは語アクセスをサポートせず、32ビット並列ア
クセスだけをサポートする。しかし、制御および状況レ
ジスタは16ビツト幅であるので、16ビツトのホスト
は本好適実施例のサブシステムを制御できる。 VMEインタフェースは、局所DMAの制御を受けてデ
ータFIFOとVMEメモリ間でデータを転送するとき
は、マスク・そ−ドで動作する。DMAの活動は、デー
タ中云送プロセッサ・モジュール120が割込みサイク
ルをVMEバス上で開始することによりこのモジュール
によって制御され、モニタされる。 データ・バイブ・インタフェースは、高ハアト幅バック
ブレーン・バスと結ばれる設計になっている。(物理的
には、これはリボン・ケーブルを使用するだけで構成に
含めることができる。)このバスを使用すると、私用サ
ブシステム間の通信が行なえるので便利である6つまり
、インタフェース・ロジックは2つの受信ボートと1つ
の送信ボートを備えているので、この種のバスを複数短
距離局所バスとして使用して、幅広いデータ流れアーキ
テクチャを実現することができる。このバス上のデータ
転送はFIFOでバッファリングされるので(受信端側
)、データ転送を高速にかつ低オーバヘッドで行なうこ
とができる。複数のサブシステムを並列にも直列にも(
例えば、バイブラインで)接続できるので、高性能のシ
ステムを筒4iに実現することができる。 1つの例として、高性能の実時間3次元図形システムを
、2つの高速化サブシステムと画像プロセッサをバイブ
ライン構成にすることによって構築することができる。 最初の高速化サブシステムはフレームnで多角形を変形
してクリッピングし、2番目の高速化サブシステムはフ
レームn−1で多角形を描画順に分類しく隠蔽表面除去
のため)、画像プロセッサはフレームn−2で多角形を
描画する。 DTPマイクロコード拡張インタフェースは仮想的にD
TPモジュール120のマイクロアドレスとデータ・バ
スを拡弓長したものである。これはGIPマイクロコー
ド拡張バスと完全に互換性(物理的および電気的に)が
あるので、GIP用に設計され、この種のインタフェー
スを使用するどの拡張カートでも使用できる。外部大容
量メモリ・システムとネットワーク・カードはこのイン
タフェース・ボート&¥山で未実施例のサブシステムと
?15はれる。 画像データ・ハス・インタフェース170(またはr
GT[’インタフェース」)は、特に図形と画像データ
用に最適化された別のバスに結ばれる。このインタフェ
ースは、GIPマイクロコード拡弓長バスとも接続でき
るので、未実施例のサブシステム上のいくつかのインタ
フェース・ロジックをGIPマイクロコードで制御する
ことができる。これにより、GIPと未実施例のサブシ
ステム間は両方向16ビツト幅のFIFOで結ばれるの
で、コマンドとデータをFIFO経由で送ることができ
る。このインタフェースの各側は他方の側に割込みをか
けることができる。 制御プロセッサ(cp)モジュール110制御プロセツ
サは、32ビット整数プロセッサ機構(ユニット) (
IPU)240に搭載された32ビツト・マイクロコー
ド・プロセッサであり、本好適実施例では、Weite
k XL8137が使用されている。I P +124
0は16ビツト・アドレス生成機構(八G)23Q
(木実施例ではAnalog Devices社へ05
1” 1410を使用)および16ビツト・シーケンサ
210(本実施例ではAnalogDevices社八
[lSP 1401を使へ)によってサボー)・される
。制御プロセッサ内の主データ通路はCOババス12で
ある。 第2八図は本好適実施例における制御プロセッサ+10
の構造を概要図で示したものである。書込み可能制御記
憶機構(WC5)220は、マイクロ命令列を納めてい
るメモリである。シーケンサ210からマイクロ命令ア
ドレス・コマンドが出されて、制御記憶機構220から
マイクロ命令が取り出される。 この方法で制御記憶機構から取り出される命令の流れを
示したのが221である。レジスタに格納されない出力
とレジスタ222に格納される出力の両方を設けること
が好ましい。レジスタ222に格納された出力はデコー
ダ260に人力される。レジスタ222と223は共に
直列シャドウ・レジスタとして構成され、直列ループ2
25とのインタフェースとなる。マイクロアドレスの流
れの一部をライン211Aから得て、浮動小数点モジュ
ール130に通知するようにするのか好ましい。この方
法をとると、以下に述へるような利点が得られる。 また、ライン221上の流れを両方向にするのが好まし
い。つまり、このラインは書込み可能制御記憶機構から
マイクロ命令を読み出すために使用できるだけでなく、
ある種の場合には、命令を逆に制御記憶機構に書き込む
ためにも使用できる。 その利点については下達するが、これは重要な機能であ
る。 マイクロコード出力221は入力としてデコーダ260
に送られる。従来の方法では、このデコーダは最小限の
低レベル・デコード・ロジックを使用して、マイク命令
のフィールドを分割して、必要時にそれらをデコード化
している。本実施例のマイクロ命令形式は第2B図に示
されているが、これについては以下で詳しく説明する予
定である。デコーダ260の出力261はアドレス生成
機構230、整数処理機構240、シーケンサ210と
いった主要機能ブロックのすべてに送られる。これらの
ラインはいろいろな個所につながっているので、個別的
には示していない。 シーケンサ210は、リンク・レジスタ(トランシーバ
) 214を経由してIPυ240から送られてくる入
力とシーケンサ局所バス215を経由してアドレス生成
機構230から送られてくる人力だけでなく、他のいく
つかの入力も受は取る。 さまざまな割込み線はマルチプレクサ213を通して多
重化され、これらの割込みにより、シーケンサ210の
プログラム・カウンタ動作がさまざまに変更される。割
込みをそれぞれに応じて処理するシーケンサ・ハードウ
ェアはよく知られている。 別のマルチプレクサ(212で示されている)は各種条
件コード信号から1つを選択して、シーケンサ210に
人力するために使用される。これらの条件コード信号は
、詳細は後述するように、シーケンサ2100ロジツク
の中でいろいろな使い方をされている。 バッファ217は、マイクロ命令のフィールドで指定さ
れている定数を送るために使用される。 ざらに、別の入出力がいくつか書込み制御記憶機構22
0とマイクロ命令バス221 に示されている。書込み
イネーブル線は、例えばホストからといったように、外
部から制御される。さらに、2ウエイ・インタフェース
211Bを通して、ホストはマイクロアドレス・バス2
11に対して読み書きを行なう。この機能は診断に利用
できるだCづでなく、マイクロ命令を制御記憶機構に書
き込むときにも利用できる(後述する)。 クロック発生装置250は制御プロセッサ目Oとデータ
転送プロセッサ120の両方からサイクル継続時間人力
を受は取る。現クロック・サイクルの継続時間は、CP
とDTPモジュールから受は取った最も継続時間の長い
指定子から即時に選択される。これは、プログラマブル
・ロジック・アレイ(PAL)を用いて実装するのが好
ましい。デコーダ260の場合と同様に、クロック発生
装置250の出力はいろいろな個所に送られるので、個
々には示していない。 第2B図は本好適実施例におけるマイクロ命令フイール
ドの割当てを示したものである。CP J+2.張ロジ
ックにおりるフィールドの割当ても示されている。この
拡張レジスタの動作については以下で詳しく説明する。 なお、ここで注意しておきたいことは、この拡張フィー
ルド内のマイクロ命令の追加ビットと、基本WC522
0内の各命令のこれらの追加フィールドをWC5拡張機
構およびこれらのマイクロ命令フィールドをデコードし
て実行するロジックはすべてサブシステム内の各数値処
理モジュール130またはアルゴリズム高速化機構にも
同じものがあることである。従って、第10図の実施例
には、3つのWC5拡張機構が設けられるので、CPマ
イクロコード・フィールド全体は192ビツトになる。 基本命令内の個々の命令フィールドは整数処理機構24
0(32ビツト)、アドレス生成機構230 (toビ
ット)、およびシーケンサ210(7ビツト)用に割り
1辰られている。拡張フィールド(これは各WC5拡張
機構に保管される)では、フィールドはレジスタ選択、
条件選択、および転送制御用に割り振られている。こね
らのビットの用法については、あとて詳しく説明する。 他の命令フィールドは従来のマイクロコード・アーキテ
クチャで採用されている方法で割り振られる。例えば、
あるビットは中断点まできたことを示すために使用され
、いくつかのビットは命令タイプを簡単に記述するため
に使用され、2ビツトはクロック制御をコード化するた
めに(上述したように、可変m経時間クロックを可能に
する目的で)使用される。 アドレス・レジスタ230はオフ・ザ・シェルフ・アド
レス生成機構である。計算をこの機構で行なえるので、
制御ブロセッザ110の高速アドレス計算能力が向上す
る。 さらに、整数処理機構(TPtl) 240は算術演算
機能を更に向上させる。IPIJはCDバス112から
読み書きができると共に、アドレスをCAババス出力す
ることもできる(レジスタ241を通して)。これらの
アドレスは、第1図に示すように、キャッシュ・メモリ
140とコマンド・メモリ120に対するアドレス情報
となるものである。 木好適実施例において整数対エツ機構240で使用され
る実際の構成要*は高度の算術演算al能を備えており
、この中には、乗算をハードウェアで行なう機能も含ま
れている。従って、機構230 と240を一緒に使用
すると、算術演算機構の多くをアドレス生成−のために
利用することができる。更に、シーケンサ210がマイ
クロ命令アドレス生成機能も実行するロジックをいくつ
か備えていることは勿論である。 アドレス生成機構230からの出力231はバッファに
入れられ、CDバス112に送り返される。シーケンサ
210は整数処理機構240の出力を読み取ることがで
きるが(リンク・レジスタ214を通して) 、 IP
U 240にコマンドでCDバス112を駆動させるこ
ともできる。キャッシュ・メモリ140、FPモジュー
ル130、またはコマンド・メモリ190もこれらの結
果がこのバスに送り出された時点で、その結果をアクセ
スすることができる。 レジスタ203(第2八図の左上に図示)は使用顕度の
低いいくつかの制御信号を格納する。これらの制御信号
には、診断用信号、LED制御信号などがある。 整数プロセッサ機構(IPII) 240IPU 24
0は、4ボート・レジスタ・ファイル1110、八LL
11120、フィールド・マージオ及構1130および
乗算/除算機構1140から構成されている。これらの
構成機構を簡略図で示したのが第11図である。2つの
外部データ通路は同図にDおよびADババス101.1
102で示されている。制御プロセッサ・モジュール1
10では、へDバス1102はレジスタ241を通して
接続され、各種メモリへのアドレス・バスとして使用さ
れる。Dバス1101はCDバス112に直結されてい
る。 lPt1240の4つのボート・レジスタ・ファイル1
110により、4番目のボート経由によるレジスタへの
書込みに加えて、r+、 −r2÷「3といった演算が
1サイクルで行なえる。ALU 1120は通常の算術
および論理演算機能のほかに、優先コード化とビットま
たはバイト反転命令を備えている。フィールド・マージ
機構1130は多重ビット・シフトと回転、可変ビット
・フィールド抽出、保管とマージ機能を備えている。乗
算/除算機構1140はIPU240の他の部分から独
立して稼動する。この機構がいったん乗算または除算操
作を開始したあとは、他の乗算/除算以外の命令はいず
れもALU 1120またはフィールド・マージ機構1
130に実行させることかできる。乗算は32 x 3
2符号付き(8サイクル)で行なわれ、除算は64 x
32ビット符号なしく20サイクル)で行なわれる。 レジスタ241はIP[l 240の外部にあり、C^
ババス11 とのインタフェースで使用される。これに
より、メモリをアクセスするときバイブライン遅延が生
じる。(このレジスタが必要なのは、ここで使用されて
いる特定部分では、へ〇バスはサイクルが開始してから
75−90ns経過するまでは有効にならないためであ
る。) IPU 240 じC“バス1103上の)に対するマ
イクロコード命令入力は内部的に格納されるので(レジ
スタ1151) 、マイクロコード命令は直接に書込み
制御記憶機構(WCS)から取り出される。 アドレス生成機構(八G) 230 木好適実施例で使用されるアドレス生成機構230の構
成は第12図にその概要が示されている。 主要要素としては、16ビツト幅のALU 1210.
30個の内部レジスタ(これらのレジスタを機能別に分
けると、16個のアドレス・レジスタ1222.4個の
オフセット・レジスタ1224.4個の比較レジスタ1
226、および4個の初期設定レジスタ1228に分類
される)がある。他にも、アドレス比較機構1230と
ビット反転機構1240がある。内部バス1250はデ
ータの経路指定を行ない、”Y”バス1270はアドレ
ス出力231を行ない、この出力はCDバス112にフ
ィードバックされる(出力バッファ−232がイネーブ
ルされたとき)。”D”バス1260はシーケンサ・デ
ータ・バス215に人出力を行なうように結ばれており
、バス215はリンク・レジスタ/トランシーバ214
によってCDバスから分離されている。 実際の装置は命令デコーダとその他のタイミングおよび
接合ロジック(図示せず)も備えている。 これらの機r+ヒにより、アドレス生成機構230は1
サイクルで次のことが行なえる。 16ビツト・アドレスを出力すること。 メモリ・アドレスにオフセットを加えることによりメモ
リ・アドレスを修飾すること。 アドレス値がいつ事前設定境界に稼動または境界を越え
たかを検出し、条件付きでアドレス値を再号期設定する
こと。 この最後のステップは循環バッファやモジュール・アド
レス指定を取り入れる上で特に有用である。 アドレス生成機構230はlPt1240がもつアドレ
ス生成機能を補強するものである。しかし、アドレス生
成機構230で使用される特定チップは直接に動作する
場合、16ビツト・アドレスしか生成できない。(倍精
度アドレスは2サイクルを必要とするが、2個のチップ
をカスケード接続することも可能である。)本好適実施
例では、アドレス生成機構230の16ビツト・アドレ
ス出力はlPt1240に渡され、そこでそのアドレス
出力がベース・アドレスに加えられ、32ビツトまで拡
張される。 アドレス生成機構のレジスタは16ビツト幅Dボー1〜
を通してアクセスされる。このボートはシーケンサと同
じ局所部分215 とリンク・レジスタ2目に接続され
ている。 アドレスはYボート1270 (第2A図にライン23
1で示されている)から送出される。アドレスはCDバ
スと結ばれる前に、3状態バツフア232に渡される。 アドレス生成機構のDかYのどちらかが読み取られると
き(つまり、CDバスを駆動するように要求されるとき
)、16ビツト値はバス幅(32ビツト)までゼロで拡
張または符号で拡張することができる。これを実行する
ロジックは、あとで詳しく説明する符号/ゼロ拡張PA
L 216内に置かれている。ゼロ拡張または符号拡張
はCPマイクロコードから直接に制御される。(この機
能は、16ビツト幅ボートのいずれかがCDバスを駆動
するために選択されたとき使用可能になる。) アドレス生成機構230の命令セットは次のように分類
されている。 ルーピング レジスタ転送 論理およびシフト(桁送り)1葉作 制御操作 その他の操作 アドレス生成機構の人力となるマイクロコード命令は内
部レジスタに格納され、WCS 220から直接に取り
出されるようになっている。 ジ−ケン−1)220 と関連支援ロジック本好適実施
例では、シーケンサ210は八DSP1401を採用し
ている。この特定の八〇SPを実装したシーケンサの主
要要素は第13図に示されている。 これは、16ビツト加算機構131O164X 64ビ
ットRAM +320、割込みロジック1330、割込
みベクトル記憶機構ll01および4個のループ・カウ
ンタが含まわる。 内部RAMl320は次の3通りの使い方が可能である
。 1つはレジスタ・スタックとしてである。スタックとし
て使用すると、サブルーチンに入ったとぎ最高4個まで
の71−レスをスタックに入れでおくことができる。こ
れらのアI・レスは関係命令内の2ビツト・フィールド
によってアクセス可能である。 次はサブルーチン・スタックどしてである。このスタッ
クはサブル−チンのシンケージとに4込みのための通常
戻りアドレスの記t9域となるものである。これは、状
況レジスタやカウンタなどの他のパラメータを格納する
ためにも使用できる。 最後は間接アトlメス記憶域としてである。これは使用
開度の高いアドレスの格納用に予約しておくことができ
る。これらはDボートの下位6ビツトを用いてアクセス
される。 スタック制限レジスタ1321はスタ・、・り域が他の
スタック域を1之した二つ、スタ・・!り・オーバフロ
ー・やアンダフローが起こるのを防止するものである。 これらのどれかが起こると、内部割込みが起こり、エラ
ー状態にフラッグが付けられたり、スタックはオンチッ
プ゛に拡弓長される(スタック・ベージング)。 i o (H,IJの否先割込みが用意されている。そ
のうち02fiは装Gjt内部のもので、スタック・エ
ラーとカウンタ アンダフローに対するものである。8
1171は外111へである。割込み検出、し〕・・ス
スタツグおよびマスキングはすべてロジック1330に
よりオンチップでJA理され、対応するベクトルが割込
みベクトル・ファイル1340から取り出される。 命令セットは非常に豊富であり、ジャンプ、サブルーチ
ン呼出し、戻りなど幅広く揃っている。これらの命令の
大部分は絶対アドレス、相対アドレス、または間接アド
レスを使用して目標アドレスを指定できる。これらは選
択した条件の1つによって修飾可能である。 無条件。命令を常に実行する。 フラグなし。条件コード人力(FLAGと呼ぶ)が偽で
あれば、命令を実行し、そうでなければ続行する(通常
失敗命令) フラグ。条件コード人力が真であれば、命令を実行し、
そうてなければ続行する(通常失敗命令)。 符号。命令の実行は状況レジスタ内の符号ヒラ1−によ
って左ノiされる。 スタック!「l埋、状況レジスタ操作、カウンタl::
作、および割込み制御を行なう命令も用哲されている。 マイクロコード命令人力は内部レジスクシご格納され、
マイクロコード命令はWCS (レジスタ格納なし)
から直接に取り出される。 シーケンサ支援ロジックには、割込み、条件つきコード
選択、マイクロアドレス・バス、定数/次アドレス・フ
ィールドの4種類がある。 割込み 本好適実施例でシーケンサ210用に使用されているチ
ップは4個の割込み入力ビンがあるだけである。従って
、使用可能な割込み数を8個に拡張するために外部マル
チプレクサ213が使用されている。割込みは主に連絡
用とデバッグ・ツールをサポートするために使用される
。 割込み発生源(最も優先度の高い順)は次の通りである
。 クロー・ロジック デバッグ環境内では、名目的には、モニタ・タスクとユ
ーザ・タスクの2タスクが稼動している。クロー・ロジ
ック(claw Iogic)は、モニタ・タスクを1
スデツプ進めることなく、ユーザ・タスクだけを1ステ
ツプ進めるものである。クロー・ロジックはユーザ・タ
スクの中のある命令が実行されると、モニタ・タスクに
「制御を返却させる」。ユーザ・タスクに制御を返却さ
せる命令はクロー割込みを要求する。これは1サイクル
だけ遅れているので、ユーザ・タスクの最初の命令が実
行されると割込みが引き起される。従って、ユーザ・タ
スクの次の(つまり、2番目の)命令が実行されるまえ
に、制御がモニタ・タスクに返却される。 中断点 この割込みレベルはマイクロコード・ビットと直接関係
があるので、割込みが起こるとこのビットがセットされ
る。この仕組を利用すると、中断点を設ける上で便利で
ある。中断点ビットがセットされた命令が実行されると
、制御は中断点処理ルーチンに渡される。中断点はいく
つでも設定が可能である。 VMEバス VMEバス割込みは通常デバッグ・モニタをサポートす
る目的だけに使用されるので、正常動作時には使用され
ない。 浮動小数点プロセッサ(中断点) 浮動小数点プロセッサ・モジュール130がそのWC5
にセットされている中断点の1つを見つけると、FPク
ロックは停止される。FPモジュールはこのことをこの
割込みを通して、制御プロセッサ・モジュール110に
通知する。 DTPメモリ・アクセス この割込みは、制御プロセッサ・モジュールにデータ・
キャッシュ・メモリへのアクセスを一時的に中止させる
ために使用される。これによりデータ転送プロセッサ・
モジュール120はキャッシュ140にアクセスができ
るようになる。 DTP (コマンド) このΣ1]込みは、CI’コマンドFIFO(コマンド
・メモリ!90内の)にコマンドがあることをデータ巾
云送プロセッサが制御プロセッサ・モジュール110に
知らせるために使用される。申傘 DTI’ (データ転送0了) この割込みはデータ転送要求が完了したことを制御プロ
セッサ・モジエールに知らせるためにデータ転送プロセ
ッサ・モジュール120によって使用される。傘傘 浮動小数点プロセッサ(一般) この割込みは、CPWAIT、FPWAITが状態を変
えたり、エラーが起こったり(エラー・タイプはソフト
ウェアで定義できる)、浮動小数点プロセッサ・モジュ
ール130に中断点が現れると、引き起される。活動事
象は、FPモジュール130上にあって、制御プロセッ
サ・モジュール110がロードできるマスク・レジスタ
によって選択される。この割込みは今は使用されず、将
来の使用に備えて予約されている。複数のFPモジュー
ル130を使用するシステムでは、4個のFl’がこの
割込みを共用する予定である。従って、割込みサービス
・ルーチンは、これらのFPに正しくサービスするため
にはとのFPが割込みを引き起したかを知っている必要
がある。中 注意:中印の付いた割込みは通常の条件コート・ロジッ
クでもテストできるので、これらをポーリングした方が
好都合の場合には、そうすることが可能である6 傘*印の付いた割込みの場合は、割込み状態を引き起し
たことは、ソフトウェアFIFOデータ構造内の制御情
報を調べることで検出することかできる。これは割込み
が使用されない場合には、ポーリングすることが可能で
ある。 マルチプレクサ213を使用して割込み数を拡張するた
めには、4皿の高優先度割込みレベルと4個の低優先度
割込みとの間のタイミング条件を変える必要がある。4
個の高優先度割込みであることを認識するためには、マ
イクロコード・クロックの立上がり縁より25ns前に
割込みを引き起す必要がある。低優先度割込みの場合は
、この時間制御恨は立下がり縁よりI 5 n s前に
する必要がある。 割込みを引ぎ起ずには、対応する!′、lJ込み入力は
Iクロック期間の間高レベルに保持される。ノ\−ドウ
エアによる割込み認知サイクルは必要ないので、割込み
生成ハードウェア機構は非常にA1純化される。 条件コード・ロジック シーケンサはFLAGと呼ばれる1つの条件コード入力
端をもっており、テスト可能な状況信号はすべて多重化
されてこのビンに人力される。これは内部レジスタに格
納され、通常のセットア・ノブ時間はIROにマスク(
カウンタ・アンダフロー割込み)がかけられているとき
は1. On sであり、イネーブルされたとぎは26
nsである6FLAG入力端の極性はシーケンサ内部で
変えることができる。 第40A図に示すように、HAG入力端の状態をシーケ
ンサ210の外部で保存しておくためにいくつかの追加
ロジックを使用することが好ましい。そうすれば、シー
ケンサ210の内部状態を割込みが起ぎたあとで完全に
復元することかできる、。 PAL 4021はシーケンサ210(または31O)
の内部で内部フリップ70ツブ)020をエミュレート
するために使用される。このl’A1.は従って、[疑
似レジスタJとして動作するだけである。この必要が起
こるのは、第40Ti図に示すような条件のときである
。 割込みが発生すると、シーケンサは割込み処理ルーチン
に制御を渡す。このルーチンが実行されている間、疑似
レジスタPALは割込み発生前に存在していた状況フラ
グ条件のコピーを保持しているだけである。割込み処理
ルーチンの実行が終ると、マルチプレクサ212はこの
ルーチンの指示を受けて、PAL4021の出力をシー
ケンサ210へのFl、AG大入力してシーケンサに渡
す、これにより、フリップフロップ4020の内部状態
が復元される。 この結果、命令の流れは割込みが起こらなかった場合と
同じ順序で継続する。これは、割込みに続く命令が条件
付きブランチである場合は特に重要である。内部状態を
正しく復元すれば、この条件1″づきブランチは正しく
実行されることになる。 勿論、このロジックは、シーケンサによっては必要でな
い場合があるか、本好適実施例で使用されている。にう
な特定シーケンサでは使用した方が好都合である。 テスト可能状況信号には、次のものがある。 II’ll 2110条件コード出カニこれは、現命令
の状況を中継するものである。どの条件がこのビン上で
IPU出力によって指示されるかは、マイクロコード命
令によって定義されている。 マイクロコード・ループ これはVMEインタフェース
制御レジスタの中の状況ビットであり、診断ソフトウェ
アで使用すると便利である。 書込みフラッグOと1:この2信号はデーターキャッシ
ュ・メモリ書込みロジックの内部状態をアクセスしやす
くするもので、デバッグ・モニタ内の状、態格納と復元
マイクロコードによってのみ使用される。 保留状態:これは、割込みから戻るときテストされ、ジ
ャンプによって割込み処理ルーチンに移った場合でもと
の条r41づきジャンプその他か正1)〈実行さ才する
ようにする。 FP状況侶号CPWAIT:これは、F[’がその計算
を終えて、追加データを待っているときクリアされる。 FP状況信号FT’W屓T・これは、制御プロセッサ・
モジュール110がその4算を終えて、追加データを待
っているときクリアされる。 FI’状況信号バンク選択:これは、レジスタ・ファイ
ルが2重バッファ(論理)モードで使用されているとき
、FPレジスタ・ファイルのどちらの半分が制御プロセ
ッサ・モジュール110に割り振られているかを知らせ
る。 FP状況信号:直列ループ、これはFP上の浮動小数点
チップを通して実行される直列ループの終りから抽出さ
れる。この直列ループとのインタフェースを通して、制
御プロセッサ・モジュール110はこれらの装置の内部
状況を抽出する(挿入)ことができる。 FP状況信号:CP待ち割込みとFP待ち割込み。これ
らの2つの状況ビットはそれぞれの信号が高から低に移
るとセットされる(マスキングが可能な場合)。48号
FPWAITとCPWA[Tは、cpが割込み発生源を
突ぎ止める前に再び高に戻ることがあるので、直接にテ
ストされる。 FI’状況信号・FP中断点。これは、デバッグ目的だ
けに使用され、FPが中断点までくるとセットされる。 FP状況信号:FPエラー。これは、エラーが浮動小数
点プロセッサ・モジュール130で起こると、セットさ
れる。これは将来の使用に備えて設けられたものである
。 FP状況信号はシーケンサに向う共通線を共用し、実際
にテストされる状況信号はCP拡張マイクロコード部分
によって選択される。 IP[I 240からの条件出力は1oonsでサイク
ルするときは、遅れて有効になるのでシーケンサのセッ
トアツプ時間に間に合わない(特にマルチプレッサによ
って遅延されるので)。この条件をテストするときは、
クロックを125nsに延長する必要がある。 ”for 1oop”はシーケンサ内部のカウンタの1
つを使用すると、コーディングしやくなり、IPU24
0はアドレス計算から解放される。l:or−1oop
sはIPU240を用いて行なうこともできるが、そう
すると、サイクル時間が長くなるので余分なオーバヘッ
ドが生じることになる。 条件コードは8:1マルチプレクサ212を通して多重
化されてシーケンサの”FLAG“入力端に人力される
。シーケンサは選択した条件コート信号の極性を内部レ
ジスタに格納して、その選択を行なう。 マイクロアドレス・バス マイクロアドレス・バス211と211Aは、通常プロ
グラム実行時にはシーケンサ210から、マイクロコー
ドのロード時にはVMEバスから駆動させることができ
る。VMEバスはマイクロアドレス・バスの内容を読み
取って、シーケンサがどのアドレスにあるかを確かめる
こともできる。これは、シーケンサ動作と非同期に行な
われ、主に診断て使用される。 マイクロアドレス211は、制御ブロモ・ンサ・モジュ
ール110のWC5の32ビツトが各FPモモジュール
上置かれているので、Fl”モジュール(拡張部分21
1八で示されている)上にも結ばれている。マイクロア
ドレス・バス拡張部分はFP WC5をyiA勤するた
めにも使用できる。この機能は次の2つの理由で便利で
ある。 1 ) FPマイクロコードがダウン・ロードされると
きホストからアドレスを与えることができる。 2)FPマイクロコードを制御プロセッサ・モジュール
と同期させて実行させるときに使用できるので、制御プ
ロセッサ・モジュール内のシーケンサ210のアドレス
が内部生成アドレスの代わりに使用できる。(この機能
は本好適実施例では採用されていないが、いつでも利用
できる方法である。) (以下余白) 定数フィールド マイクロ命令の16ビツト幅定数フィールドは主にシー
ケンサにアドレスを与えるために使用されるが、アドレ
ス生成機構の定数を保持するために使用することもでき
る。 シーケンサ210は両方向で私用局所バス(シーケンサ
・データ・バス215)と結ばれている。これにより、
ジャンプなどをCOババス12を使用する処置と並行に
行なうことができる。シーケンサ・データ・バスは両方
向リンク・レジスタ/トランシーバ214を経由してC
Oババス12 とリンクされている。クロックのタイミ
ングとリンク・レジスタ214に対する「フィードスル
ー」制御は、送り元と宛先はすべて要求条件が異なるの
で、転送経路と方向に応じて変化する。アドレス生成機
構のデータ入力端は、アドレス生成機構230がシーケ
ンサと同じタイミング条件でこのバスで転送を行なう一
必要があるので、このインタフェースのシーケンサ側に
接続されていることに注目すべきである。 この構成により、次のような経路指定が可能である。 定数フィール(〜 〉シーケンサ(ジャンプ)定数フィ
ールド−>CDハス(レジスタ・ロード)シーケンサ−
>CDバス(診断) CDハス−)シーケンサ(計算によるジャンプ)定数フ
ィール]・−〉アドレス生成機構アドレス生成機構−ン
CDバス(診断)CDバス−〉アドレス生成機構(計算
によるアドレス) 書込み可能制御記(、!機構(WC5’)220木好適
実施例では、WCSメモリ・バンクはマイクロコードS
ILモジュールを使用している。これらは8K x 3
2ビツト・メモリを備えており、これと共に、マイクロ
コードのロートと診断のための直列シャドウ・レジスタ
222 と223を備えている。(これらのシャドウ・
レジスタの動作は以下で詳しく説明する予定である。)
このモジュールは2つの種類、つまり、出力がレジスタ
に格納されるものと、レジスタに格納されないものとが
ある。IPU ?IO、アドレス生成機構230、およ
びシーケンサ210はそれぞれ独自に内部バイブライン
・レジスタを持っているので、WO2からの非レジスタ
格納出力を使用する。 ン主目すべきことは、制御フ゛ロセッサ・モジュールの
WO2は実際には分散されていることである。 図示の基本WCS部分220(これは物理的にベース・
ボード上に置かれている)のほかに、さらにWC522
0の拡張部分が1つまたは2つ以上ある。これらの拡張
部分はマイクロアドレス・ストリーム211Aを受は入
れ、物理的に各FPモモジュール上置かれている。基本
WC5220に格納されている命令セットは各アドレス
に95ビツトの命令を収容している。WCS拡張部分4
90は各々基本WC5220と同じアドレス範囲にまた
がっているが、WC3拡張部分の各々(数値プロセッサ
・モジュールの各々にある)は各アドレスに追加の32
ビツト命令を収容している。 WCSインタフェース・レジスタ222 と223ホス
ト(VMEインタフェース160を通して稼動する)が
制御記fQ機構のすへてに対して読み書きを行なうとき
使用−rる直列ループの動作について以F詳しく説明す
る。ここでは、ハードウェア構成と接続関係について説
明する。 上述したように、レジスタ222はレジスタ格納マイク
ロ命令出力をデコーダ260に対して、および他の多く
のロジックとメモリ構成要素に提供する。内部レジスタ
に出力を格納する構成要素の場合には、非レジスタ格納
出力も提供される。(例えば、TPU 240は内部命
令パイプライン・レジスタをもっている。また、高度の
内部デコード・ロジックも備えている。lPt1240
はデコーダ260からある種のレジスタ格納制御ビット
、例えば、出力イネーブル信号も受は取ることに注目す
べきである。) レジスタ222は実際は直列シャドウ・レジスタである
。これはレジスタ可能による並列スルーフットが得られ
るだけでなく、直列アクセス・モードももっている。直
列アクセス・モートは上述する直列ループとのインタフ
ェースのために使用される。 他方の直列シャ(−ウ・レジスタ223は非レジスタ格
納出力のシャドウとなるものである。完全な命令に対応
する直列出力を得るためには(要求時に)(または、逆
に命令221の全幅を制御記fQ機構220に書き戻す
ためには)、すべてのピッl−・フィールドをアクセス
する必要がある。 勿論、上述したように接続すると、データ・インタフェ
ースだけでWO2220と結ぶことができる。つまり、
レジスタ222 と223 にはWO2220内の記憶
位置の内容が見えるが、データと明示的に結び付いたア
ドレスは見えない。アドレス・インタフェースは両方向
接続211Bで示されているように、別個の2方向イン
タフエースである。これはCPマイクロアドレス・バス
であり、VMEインタフェース内のマイクロコード・ロ
ード制御ロジックと結ばれている。これと同じハスは、
DTP制御記t、ρ機構を除くシステム内のすへての制
御記憶機構とのマイクロアドレス・インタフェースとな
っている。DTP制御記憶機構内のマイクロアドレス線
はVMEインタフェース内の別のレジスタ/バッファ対
に結ばれ゛ている。 Fr’制御ロジック アーキテクチャのもう1つの特徴は、制御プロセッサー
モジュールが単に監視プロセッサであるだけでなく、浮
動小数点プロセッサ・モジュールとの間で受は渡しされ
るすべてのデータ転送を直接に制御することである。こ
のロジックの大部分ばFl’lクモジュール上かれてい
るが、その制御は制御プロセッサ・モジュール110の
マイクロコードによって行なわれ、Cl1lバスとのイ
ンタフェースとなっている。このロジックはあとで詳し
く説明するが、そこではFPモジュールのデータ操作に
ついて検討する予定である。 モード・レジスタ203はマイクロコード・ビットを専
用するほど重要でない使用開度の低い制御信号の値を保
持する。モード・ビットには次のものがある。 読取り保持レジスタ561を通る流れまたはレジスタ制
御。 書込み保持レジスタ561を通る流れまたはレジスタ制
御(第5図に51+1として示されているレジスタは実
際には2重になっており、1個の読取りレジスタと1個
の書込みレジスタからなっている)。 保持レジスタ560に対するループバック・モード。 2個のLED制御信号。 モジュール選択(3ビツト):このアトスレは複数個の
FPモジュール130やアルゴリズム高速化機構130
°の間で選択される。 CDバス・デコード・ロジック デコーダ260の機能の1つは、マイクロコードCDソ
ース・フィールドをデコードして、CDバスを駆動でき
る装置の出力イネーブルを制御することである。また、
CD宛先フィールドをデコードして、クロック・ストロ
ーブと書込みイネーブル信号(これらはクロック発生機
構からの書込みゲートイ3号によって修飾されるンを発
生ずることも機能の1つである。CDバス上のボートの
大部分は読み書きができるので、IPll 240にあ
る疑似レジスタは必要ない。(CDソースと宛先の一部
はデコーダ260にあるデコード・ロジックによってで
なく、CP拡張ロジック410にあるデコード・ロジッ
クによって制御されることにン主目すべきである。) CDバス・ソースと宛先として可能なものとして、I[
’LI 240、コマンド・メモリ、データ・キャッシ
ュ・メモリ保持レジスタ56〇八、モード・レジスタ(
8ビツト)、転送制御レジスタ*牟−FP制御しジスタ
中*−開始アドレス・レジスタ◆傘申、命令レジスタ(
8ビツト)、状況レジスタ(ソースのみ)傘、アドレス
生成機構アドレス・ボート傘傘 アドレス生成機構デー
タ・ボート傘傘、シーケンサ・データ・ポート中一定数
/次アドレス・フィールド(ソースのみ)傘*がある。 幸印の付いたレジスタはFPモモジュール上置かれてい
るCP拡張ロジックの一部である。これらのレジスタは
、wcs を張部分490に格納されている拡りIGC
Pマイクロコー1〜内のフィールドによって選択される
。選択されたモジュールだけがデータ転送に応答して、
データを送受する。中中印の付いたソースは下位16ビ
ツトを駆動させるだけである。これらのビットの1つか
選択されると、符号/ゼロ拡張PAL 2+5も活動化
されるので、データは32ビツトのバス幅まで符号また
はゼロで拡張される。 ソースと宛先はそれぞれ1つだけが選択可能であり、こ
れらは異なっていなければならない。 lPt1240へのデータ転送はIPt! 240の命
令フィールドの制御の下で行なわれるので、CDデータ
はそれが別の宛先にロードされているときと同時にCD
バスから取り出すことができる。 クロック発生機構250 クロック発生機構250は制御プロセッサ・モジュール
110 (およびデータ転送プロセッサ・モジュール
120)を通して使用される基本クロックイ2号を発生
する。この機構は、制御プロセッサ110とデータ転送
プロセッサ120の両方からサイクルKn 14時間人
力を受は取る。現クロック・サイクルの継続時間は、C
I’とD1’Pモジュールから受り取った2つの入力の
うち長い方の継続時間に従って、即時に選択される。 この発生機構はプログラマブル・ロジック・アレイ(P
AL) に実装することが好ましい。このPALはあ
らかしめ定義された4つの波形列の1つを生成する。こ
れらの4つの波形列は期間が異なっている。つまり、人
力クロック期間の4.5.6.7倍になっている。これ
は、本実施例のように、40MHzオシレ〜りが使用さ
れるときは、100,125゜150、および175n
sに変喚される。 4つのクロック出力が生成される。これらのクロックは
、タイム2クロツクを除き、すべてサイクル継続人力に
応じて同じfa続待時間もつ。これらには、マイクロコ
ード・クロック、パイプライン・クロック、書込みイネ
ーブル−ゲート信号、タイム2クロツクがある。 マイクロコード・クロックは2サイクル(オシレータの
)の間常に高レベルにあり、そのあと2.3.4または
5サイクルの間(これはサイクル長人力によって選択さ
れる)低レベルにt2る。 マイクロコード・クロックはシーケンサ、整数処理機構
、アドレス生成機構、レジスタなどを同期させて稼動さ
せるものである。 パイプライン・クロックはマイクロコード・クロックと
波形が同じであるが、マイクロコード・クロックはパイ
プライン・クロックを動作させたままにして、マイクロ
コードのロード時にディスエーブルさせることが可能で
ある。 書込みイネーブル・ゲート信号はマイクロコード・クロ
ックが高になフた1サイクルのあと低になるが、マイク
ロコード・クロックが低に戻る1サイクル前に高に戻る
。 この信号はメモリのすべてとレジスタの一部に対する書
込みイネーブルのタイミングをとるものである。 タイプ2クロツクは、マイクロコード・クロックの動作
周波数の2倍の周波数で動作し、その立上がり縁はマイ
クロコード・クロックの縁と同じタイミングで現れる。 これは特殊クロックであり整数プロセッサ機構240
と340だけで使用される。II’Uはそれぞれの(内
部)乗算/除算ロジックのクロックをとるためにこのク
ロックを使用して、これらの多重サイクル機能で要する
時間を短縮する。 クロックのサイクル期間の長さは命令毎に調節され、各
命令に割り当てられる時間がその命令で指定されたデー
タ通路の経路指定で必要になる最小時間になるようにし
ている。各命令のサイクル継続時間はマイクロコード・
アセンブラに計算させて、命令の一部に含めることが好
ましい。こうすると、サイクル期間の長さが固定してい
る場合よりも性能が向上する。サイクル期間の長さが固
定している場合は、すべての命令が最も遅い命令と同じ
時間かかってしまうからである。木好適実施例では、サ
イクル期間の長さは100.125.150および17
5nsがサポートされているが、殆どの命令は最短のサ
イクル期間の長さを使用するようになっている。 クロック・サイクルは「待ち信号Jによって延長するこ
とも可能である。この待ち信号は、例えば、メモリが使
用中であったり、オフボードにあってそれらのアクセス
時間を追加のバッファリングのために延長する必要があ
るために、メモリか通宝のアクセス■侍間に応じられな
いとき使用される。例えば、2ボートを備えたVMEイ
ンタフェース−メモリはアドレスの衝突が起こると、一
方のボートが待たされることになる。データ・キャッシ
ュ・メモリ140はFPモジュールと同じコネクタを使
用するメモリ・ボードに搭載されたキャッシュ・メモリ
拡張モジュールで拡張可能である(第43図に図示)。 しかし、使用するメモリのタイプによっては、キャッシ
ュ拡張モジュールへのアクセスが基本キャッシュ140
へのアクセスより遅くなる場合がある。かかる場合には
、待ち状態をクロック発生機構に入力すれば、サイクル
期間の長さは自動的に延長される。この機能を使用すれ
ば、はるかに低速で安価なメモリを拡張モジュール43
1Oで使用でき、しかも性能の低下をわずかに抑えるこ
とができる。 ホストはVMEバス・インタフェースを通してクロック
発生機4Mを制御できる。この制御により、ホストはク
ロック発生機構250を自走させるか、停止させるかを
選択できる。停止状態にあるときは、ホストはクロック
を1ステツプだけ進めることかでざる。制御プロセッサ
・モジュール110とデータ転送プロツセッサ・モジュ
ール120は共に1ステツプだけ一緒に進められる。 クロック発生機構に最後に入力される制御は、バイブラ
イン・クロック(これは正常動作する)を除くすべての
クロックを禁止する制御である。 これは、WO2のロード(または読取り)時に使用され
るが、これらの処置をとっても、制御プロセッサ・モジ
ュール110やデータ転送プロセッサ・モジュール12
0の内部状態が壊されることがない。これの使用例とし
ては、マイクロコード・デバッグ・セツションで中断点
がWO2に設定された場合がある。 デバッグ・ハードウェア 制御プロセッセ・モジュール110に含まれるデバッグ
・ハードウェアの殆どはすでに本明細書の各所で触れた
通りである。以下では、主要機能を要約する。 ホストは、読取り時と書込み時にマイクロアドレス・パ
ス211の制御権を受は取ることができる。 ホストはWO2220をロードし、再びそれを読み戻す
ことができる。 制御プロセッサ・モジュール110はVME発生割込み
(つまり、ホストからの割込み)を高優先度割込みとし
て受は取る。 ハードウェアによる中断点がサポートされており、中断
点は無制限にいつでも設定できる。 クロー・ロジックにより、ユーザのタスクはモニタ・タ
スクを1ステップ進めないで!ステップ進むことができ
る。 すべてのレジスタは読み書きであるので、多くの通常デ
ータ流れを診断時に反転させることができる。 クロック制御人力によりマイクロコードをlステップ進
めることができる。 すべての割込みは選択的にイネーブル(割込み可能)ま
たはディスエーブル(割込み禁止)させることができる
。 重要なロジック群の内部状態がアクセスできるので、制
御プロセッサ・モジュール110ハードウエアの状態を
完全な形で格納し復元することができる。 マイクロコード語の形式 第2B図は、FPモモジュール上置かれているWC52
20とWC5拡張部分に格納されているマイクロ命令の
構造を示した概略図である。幸印のついた項目はWO2
から直接に取り出され、これらが制御する製雪内部にバ
イブライン化されている。他の項目はW(:5220の
出力側のレジスタに格納される。 中傘印の付いたフィールドは物理的にはFPモモジュー
ル上WC5拡張部分に保管されているが、CPマイクロ
コード語の一部になっている。これらのマイクロコード
による処置の大部分はモジュール選択ロジックによって
修fiiliされるので、FPモジュールが選択されな
かった場合はなにも作用しない。 利用できるマイクロコード・ビットの総数は導入された
FPモジュール当たり96ビツトに追加の32ビツトを
加えたビット数である。これらのビットは大部分が使用
されるが、いくつかのビットは予備ビットとして用意さ
れている。 IPU演h−コード(32)申このフィールドはlPt
124[1整数プロセツサのデータ経路指定と算術また
は論理演算を制御する。フィールド内のビット割振りは
コーディングされる。すべての命令は下位24ビツトが
コーディングされる。上位8ビツトはデータをIPl
240のレジスタ・ファイルに転送するときだけ使用さ
れる。(このフィールドの詳細はlPt1に関するメー
カのデータ資料に記載されている。) シーケンサ演算コード(7)*このフィールドはADS
P 1401による次のアドレス生成を制御する。 (このフィールドの詳細はその部分のメーカのデ夕資才
4に記)敗されている。) 定数/次アドレス・フィールド(16)傘このフィール
ドは主にシーケンスにアドレス情報を与えるために使用
されるが、16ビツト定数値をデータ・バス上に送り出
すためにも使用できる。そのあと、これはこのバス上の
任意のレジスタにロードできる。 アドレス生成機構演算コード(+0) 傘このフィール
ドはADSP 1410アドレス生成機構を制御する。 (このフィールドの詳細はこの部分のメーカのデータ資
料に記載されている。) サイクル長さ(2)このビットは選択された命令とデー
タの経路指定に合ったサイクル長さを選択する。 データ・キャッシュ・アクセス(1)◆このビ・ソトは
データ・キャッシュ・メモリへのアクセスが自身で使用
するために、あるいはFPどの間でデータをやりとりす
るために、制御ブロセ・ンサ・モジュールから要求され
ると、活動化する。アクセス・フラグはバイブライン化
されていないので、データ中云送フ゛ロセンサ・そジコ
、−ル120からのデータ・キャッシュ要求との仲裁は
要求が出されたサイクルの開始面に解決される。 データ・キャッシュ書込みイネーブル(1)このビット
はデータ・キャッシュ・メモリでの書込みサイクルを発
生させる。 データ・キャッシュ書込みオール(1)このビットは通
常の書込みイネーブル・ゲート操作を無視して、データ
・キャッシュ・メモリ内の語の選択的更新を可能にし、
それらをすべて強制的に書き出させる。 データ・キャッシュ・ボート選択(1) このビットは
FPモジュールの保持レジスタまたは制御プロセッサ・
モジュール110の保持レジスタのどちらかを、データ
・キャッシュ中云送のソースまたは宛先として選択する
。 データ・キャッシュ・メモリ長さ(3)これらのビット
はFl’保持レジスタから取り出して、データ・キャッ
シュ・メモリに書き込まれる語の個数を指定する。保持
レジスタ内の最初の語はデータ・キャッシュ・メモリ・
アドレスの最下位3ヒツトで指定される。 条件コート通訳(3)このフィールドは条件付き命令の
実行時にシーケンサによってテストされる次に示した条
件コードの1つを選択する。条件コドとは、TPII
240条件コート出力、FP状況(別のフィールドによ
って選択された実際の状況)、FP中断点、マイクロコ
ード・ループ、フラグ(2項目)、保留状況である。 CDバス・ソース(3)このフィールドは以下に挙げた
レジスタ、バッファまたは装置の1つを選択して、CD
バスを駆動する。つまり、IPU 240、コマンド・
メモリ190、データ・キャッシュ・メモリの保持レジ
スタ561の1つ一千−ド・レジスタ、FPモジュール
◆、アドレス生成機構アドレス・ボート、アドレス生成
機構データ・ボート、シーケンサ・データ・ボート、定
数/次アドレス・フィールドである。(*ソースとして
使用する特定レジスタまたはバッファが別のフィールド
で指定されることを意味する。) CDバス宛先(3)このフィールドは以下に挙げたレジ
スタ、バッファまたは装Mの1つをCDバス上のデータ
の宛先として選択する。つまり、コマンド・メモリ、デ
ータ・キャッシュ・メモリ保持レジスタ、モード・レジ
スタ、FPモジュール(ソースとして使用する特定モジ
ュールは別のフィールドで指定される)、アドレス生成
機構アドレス・ボート、アドレス生成機構データ・ボー
ト、シーケンサ・データ・ボートである。 IPU 240が含まれていないのは、これはCDバス
上のデータをいつでも「取得」できるからである(この
機能はIPII命令フィールドによって制御される)。 アドレス・レジスタ制御(2)これらの制御ビットの一
方はアドレス・レジスタのローディングをイネーブルし
、他方のビットは診断とデバッグ・モニタが使用できる
ようにレジスタの読み戻しをイネーブルする。 モジュール連携(3)最上位ビット(同報選択)は残り
の2ビツト(モジュールID)をどのように解釈するか
を制御する。同報選択がOのときは、モジュール(10
)はデータ・キャッシュ・メモリかCDバスのどちらか
とのデータ転送に応答させる単一モジュールを選択する
。同報選択が1のときは、モジュールIDはどちらのグ
ループのFP(またはアルゴリズム高速化機構)をデー
タ転送に応答させるかを選択する。これにより、同じデ
ータを複数の宛先に同時に転送できるので、個々の書き
込みよりも高速化される。これはモジュールへ転送する
ときだけ有効であることに注意されたい。 というのは、複数の転送をモジュールから行なうと、デ
ータ・バスで競合が起こるからである。 モジュール選択モード(1)選択するモジュールがマイ
クロコード・モジュール・フィールドによって定義され
ているか、モード・レジスタによって定義されているか
を指定する。これにより、モジュールをサイクル単位で
も、あるいはグローバルにも選択できる。グローバル法
は存在するFPモジュールのいずれかで作業が行なえる
とき使用され、制御プロセッサ・モジュール110は転
送/計算サイクルを開始する前に使用すべきFPを選択
する。グローバル機能が使用可能でない場合は、個々の
FPモジュールに対応して異なる制御プロセッサ・モジ
ュール110のルーチンが存在することになる。 中断点(1) (傘中デバッグ専用幸◆)命令に中断
点を設けるためにデバッグ・モニタによって設定される
。命令の実行中に割込みが起こると、その命令の実行が
終ったあと、制御権がデバッグ・モニタ・マイクロコー
ドに渡される。 クロー(1)(中中デバッグ専用中中)ユーザ・タスク
を1ステツプ進めるとき、クロー・ロジックを始動する
ように設定される。次の命令の実行中に割込みが起こる
と、あるユーザータスクの命令が実行されたあと、制御
権がデバッグ・モニタ・マイクロコードに渡される。こ
れにより、ユーザ・タスクはクロックを物理的にオン、
オフに切り替えなくても、1ステツプ進めることができ
る。 割込みDTP (1)これは、16ビツト幅レジスタま
たは装Mh<読み取られるときのみ効力をもつ。この信
号はデータがゼロ拡張されているか(ビット1B−31
がゼロにセット)、符号拡張されているか(ビット16
−31がビット15と同じにセット)を選択する。 保留状況(1) このビットは、通常はシーケンサ21
0内部のFLAGレジスタの状態に従って更新される疑
似状況レジスタの更新を禁止する。通常、この疑似ビッ
トは内部レジスタの状態に従うが、割込みサービス中は
、この疑似ビットは更新されることから禁止される。こ
れにより、FLAGし・タスクは割込みルーチンから出
たとき、正しく復元されることになる。 FP条件コード選択(3)*中これらのビットは制御プ
ロセッサ・モジュール110のシーケンサにつながる共
通条件コード線を内部FPモジュール信号のうちのどれ
で駆動させるかを選択する。選択できるものには、cp
w屓T、 FPWAIT、バンク選択、直列ループ、c
p待ち割込み、FP待ち割込み、FP中断点、FPエラ
ーがある。 一ル上の内部レジスタ444のどれをCDバス経由で読
み書きするかを選択する(下位16ビツトのみ)。レジ
スタとバッファには、転送制御レジスタ、FP制御レジ
スタ、開始アドレス・レジスタ、命令レジスタ(8ビツ
ト)、状況レジスタ(ソースのみ)がある。 レジスタ方向(1)傘φこのビットはレジスタを読取る
か、書き込むかを選択する。 FP中断点クリア(1)◆傘このビットはFP中断点を
クリアして、FPクロックが動作するようにする。 開始アドレス・ジャンプ(1)傘傘このビットはFPシ
ーケンサに開始アドレス・レジスタ(制御プロセッサ・
モジュール110によ)てロードされた)を次に実行す
る命令のアドレスとして使用させる。これは「ワンショ
ット」動作で行なわれるので、FPが開始アドレスにあ
る命令の実行を終えると、FPシーケンサはその通常動
作モードに戻る。 転送制御(20)*中このフィールドは保持レジスタ4
20(FPモモジュール上)とFPモジュールの高速レ
ジスタ・ファイル430間のデータ転送を制御する。こ
こでは各サブフィールドが簡単に説明されているが、こ
れは転送メカニズム全体が明らかになれば、それらの使
い方か分かるはずであるからである。 方向(1) このビットは保持レジスタ420とレジ
スタ・ファイル430間の転送方向を判定する。方向は
保持レジスタからレジスタ・ファイルへと、レジスタ・
ファイルから保持レジスタへのどちらかである。 転送イネーブル(1) このビットは他のマイクロコー
ド・ビットとレジスタ格納IIJ御ビット(転送制御レ
ジスタ内の)で定義されている通りに、転送サイクルを
開始する。 レジスタ・ファイル・アドレス(6)ここで指定される
アドレスはデータがそこから読み書きされるレジスタ・
ファイル内の最初の語のアドレスである。 レジスタ・ファイル・アドレス修価子(2)これらはレ
ジスタ・ファイル・アドレスをどのように修師して、物
理的、論理的またはプレビュー・アドレス指定モート(
これらはすべて、レジスタ・ファイルを制御プロセッサ
・モジュール110とFP間でどのように弁用させるか
と係わりがある)をとり入れるかを指定する。 保持レジスタ開始アドレス(3)これは転送で最初に使
用する保持レジスタを指定する。 保持レジスタ開始アドレス・モード(2)保持レジスタ
開始アドレスは次の3ソースのいずれかから取り出され
るように指定できる。 1、前述したCPマイクロコード・フィールドから。 2、FPモジュールの転送レジスタに保持されているフ
ィールドから。 3、キャッシュへの最後のアクセスで使用されたアドレ
スの最下位3ビツトから。 ハンドシェイク・モード(3)ハントシェイク・モード
は制御プロセッサ・モジュール110とFPとのハンド
シェイクをFPWAITとCPWΔITの仕組とバンク
選択を通して(Ll)御する。これらのモードのいくつ
かは通常のハンドシェイキング・プロシージャを無効に
するので、主要信号をデバッグ目的に初期設定したり、
セットしたりできる。モートにはCPDONEセット、
レジスターファイル・スワップ要求、CPDONEセッ
トとスワップ要求、CPDONEクリア、テスト・モー
ド(診断だけに使用)、ノーオペレーションがある。 2重書ぎ みイネーブル(1)2重書き込みイネーブル
は、長さや開始パラメータで要求するものを転送する代
わりに、2語をレジスタ・ファイルに転送させる。これ
により、有効なデータにはデータ有効主張フラグが付け
られ、無効データにはデータ有効拒否フラグが付けられ
る。これらのフラグはどのデータ項目が有効であるかを
確かめるために、FPによってテストされる。 全保持レジスタ・クロックこのビットは、データをレジ
スタ・ファイルから保持レジスタに転送するとき、通常
の保持レジスタのクロック順序付けを無視する。このビ
ットが活動しているときは、すべてのレジスタは順次に
ではなく、−緒にクロックがとられて、レジスタ・ファ
イル・データが4コピーされてすべての保持レジスタに
格納ざhる。 データ転送プロセッサ・モジュール120753図はデ
ータ転送プロセッサ・モジュール120のブロック図で
ある。同図に示すように、DTPモジュール120にア
ドレス生成機構230のような独立のアドレス生成機構
110が含まれていない点を除けば、制御プロセッサ・
モジュール110と非常によく似ている。各プロセッサ
内の特殊目的機能が使用されない場合は、原理的には、
同しマイクロコード(ソース・レベルの)を両プロセッ
サで実行させることが可能である。 データ転送プロセッサ・モジュール120は16ビツト
・シーケンサ310で制御される32ビット整数プロセ
ッサ機構(IPIJ) 340をベースとした32ピツ
ト・マイクロコード・プロセッサである。データ転送プ
ロセッサ・モジュール120内の主データ通路は転送デ
ータ・バス(TDババス122である。 木実層側によるDTPモジュール120構成部分の多く
は制御プロセッサ・モジュール!10構成部分と非常に
よ(似ている。これら類似部分は同じ参照符号で示しで
ある。従って、シーケンサ310は書込み可能制御機構
320に対してマイクロ命令アドレス311の列を提供
する。シーケンサ310はレジスタ314を経由してT
Oババス22 とのインタフェースになるだけでなく、
マルチプレクサ312を通して条件コートを受は取り、
マルチプレクサ313を通して割込みを受は取る。制御
記憶機構320からアクセスされたマイクロ命令は出力
321 として得られ、レジスタ格納出力もレジスタ3
32を通して得られる。線311Bと225はホストか
らこの書込み可能制御記憶機構320へのアドレスとデ
ータのインタフェースとなる(これは下達する)。(線
324は直列アクセスで使用される書込みイネーブル線
である。)、直列/並列シフト・レジスタは非レジスタ
格納人力を受は取る装置の内部状態を格納するシャドウ
・レジスタである。16ビツト・シーケンサ・バス35
からも、16ビツト人力がシーケンサ310に送られる
。この入力はバッファされた゛入力であり、これは例え
ば、リテラル値を人力するために使用できる。 マイクロ命令321はレジスタ格納人力としてデコード
・ロジック360に送られる(シャドウ・レジスタ32
2経由で)。このデコード・ロジックの出力361は制
御入力して整数処理機構340、シーケンサ310、各
種インタフェース150.160.170に人力される
。特に、デコーダ360の出力はTDババス22へのア
クセスを制御する。TDババス22は外部インタフェー
スと、キャッシュ・メモリ140とのデータ・インタフ
ェースとなっている。デコーダ260の場合と同様に、
デコーダ360の出力が別に示されていないのは、これ
らの出力が広範にわたるからである。 整数処理機構340は制御プロセッサの場合と同様に、
Weitek XL8137を使用するのが好ましい。 (ただし、データ転送プロセッサでは、アドレス生成は
それ程重要でないので、アドレス生成機構を別に設ける
必要がない。)整数処理機構340はTI)バス122
との2ウエイ・インタフェースをもっており、レジスタ
341を通してTAババス21にアドレス出力を送り出
すこともできる。 データ転;スの制御 ソース・ボートと宛先ボートとの間でサイクルごとに1
転送ができるようにするためには、いくつかの要因を考
慮する必要がある。 1、転送のソースまたは宛先はFIFOでバッファリン
グされることがあるので、転送制御はFIFO上の満杯
と空のフラグに応答する必要がある。、これらの信号の
タイミングをシーケンサへの条件コード人力のパイプラ
イン化と併用すると、転送が1つだけオーバランするこ
とがある。FIFOへの転送の場合は、半満杯フラグが
使用されるので、これは問題でない。半満杯フラグを使
用すると、FIFOに予備容量が十分にあるので、オー
バランした1語または2語を受は入れることができる。 FIFOから読み取るときは、他の方式を使用する必
要がある。 empty+1”フラグをもつFIFO
を使用したり、FIFOデータをパイプライン段で遅ら
せるオプションは本好適実施例では使用されていないが
、これはコスト上の理由とスペース要求量の理由による
ものである。 この起こり得る問題を解決するために、2つの方法が用
意されている。これらの2方法のどちらを使用するかは
、宛先がメモリであるか、FIFOであるかによって決
まる。違いは、書込み操作がメモリでは元に戻せるが、
FIFOではできないことである。つまり、FIFOか
らメモリへのデータ転送がFIFOが空になったあとで
1語または2語に対して続けられると、エラー・データ
がメモリに書キ込まれることになる。しかし、このデー
タは正しいデータが使用可能になった時点で直ちに重ね
書きすることができる。 a、FIFoを読み取るときは、読取り信号は論理的に
FIFO空信号によって修師される。この結果、空のF
IFOを読み取ろうとしても、実際には読取り操作は行
なわれない。これにより、FIFO読取りがオーバラン
しても問題は起こらない、 FIFOは空のときは自身
を読取りから保護するが、この余分の制御が必要なのは
、オーバラン読取り時にFIFOの他側に書込みが行な
われるおそれがあり、そのためにデータが壊されるから
である。従って、データ巾云送フ゛ロセソサ・モジュー
ル+20がデータをメモリに転送するときは、FIFO
が空になると停止する。この時点でオーバランがすでに
起こっている。この場合は、DTPモジュール120が
アドレスを追跡できるので、データがFIFOで使用可
能になったとき、なにもなかったかのように転送が再開
される。 b、FIFoに書き込むときは、書込み操作は元に戻す
ことができない。従って、異なる方法が用いられている
。マイクロコードは、転送を始める前にソースFIFO
(と宛先FIFO)からの状況をテストする。このモー
トでは、転送速度は低下する。しかし、ソースFIFO
が半満杯以上になった場合は、マイクロコードは高速転
送子−トに切り替わる。この状態が起こったときは、ソ
ースFIFOの深さの半分までが空マークを通り過ぎな
いで読み出すことができる。従って、このモードでは、
DTPモジュール+20は状況検査のために停止しなく
ても、このサイズのブロフクを転送することができる。 受入れ側FIFOの状況は、それが半満杯以下てなけれ
は、なお検査が必要である。低速転送モートと高速転送
モード間を切り替えるこれと同じ手法をメモリにも使用
することができることは勿論である。 2シーケンサ310内の3ウ工イ分岐命令(BRANC
IIと呼ばれる)を使用すると、転送された語数を記録
しておき、FIFO状況信号をテストすることができる
。この方法によると、条件付き経路でIPU 340を
使用しないで済むので、サイクル長さを短縮することが
できる。 3データ・キャッシュ・メモリとの間のデータ転送を最
適化するために、TDババス22 とのデータ・インタ
フェースは、32ビツト・レジスタが8個用意されてい
るレジスタ・バンク560B (第5図参照)にバッフ
ァされる。これにより、DCMから見たとき、読取りと
書込みを完全に並列に行なうことができる。この経路に
は2重バッファリングがないので、長い転送(〉8浮動
小数点語)は自動的に中断されることになる。データ転
送プロセッサ・モジュール120は従って、メモリ・サ
イクルか現、1するまて転送を一時中止することになる
。この中断は辻続転送が使用されないで、より多くのメ
モリ・アクセス・サイクルが必要であるとぎ、頻繁に行
なわれることになる。 4、データ・キャッシュ・メモリの仲裁はCPモジュー
ルのサイクルの始まりで決定される。データ転送プロセ
ッサ・モジュール120が制御プロセッサ・モジュール
110と非同期に稼動していた場合(命令依存サイクル
時間を可能にするために)は、データ転送プロセッサ・
モジュール120は同期時間かl00nsまで、さらに
アクセス時間が100nsまで待たされる場合がある(
アクセス時間は、1tl(J i3nプロセッサ・モジ
ュール110に優先権があるので、さらに長くなる可能
性があり、[lTPモジュール120は空きメモリ・サ
イクルを待たなければならない。)さらに、シーケンサ
に対するマイクロコード命令とFLAG人力をバイブラ
イン化すると、さらに別の遅延が起こり、その間DTP
モジュールは転送が終ったかを確かめるためにループす
ることになる。 これらのd延を最小にするために、制御フロセンサ・モ
ジュール110とデータ転送プロセッサ・モジュール1
20は同しマイクロコード・クロック発生機構を共用し
ている。両プロセッサはそれぞれの1!適サイクル時間
を要求し、クロック発生機構は最も長いサイクル時間を
選択する。これによってどちらかのプロセッサの平均速
度が大幅に低下しないのは、命令の大部分が最短サイク
ル時間で実行されるからである。ループ時の遅延を克服
するために、仲裁は非レジスタ格納マイクロコード要求
ビットを用いて行なわれる。 この解決手法の唯一の欠点は、ハードウェアによる単一
ステップを用いるときは、両プロセッサに影舌を与える
ことである。 5、従って、FIFOがソースまたは宛先であるときは
、FIFO状況信号(場合によっては、データ・キャッ
シュ・メモリ仲裁信号)を転送時にモニタする必要があ
る。こわらの4個の状況信号(FIFO満杯、FIFO
半満杯、FIFO空、キャッシュ・アクセス許可)が−
回のサイクル内でモニタできるようにするために、デー
タ転送プロセッサ・モジュール120は多重ウェイ分岐
機能をもっている。これにより、テストすべき状況がジ
ャンプ・アドレスに挿入されるので、ジャンプする先の
アドレスはそのサイクル時の状況によって決まる。3つ
のFIFO状況状態は2ビツトにコード化され、仲裁信
号は3番目のビットを構成する。これにより、8ウ工イ
分岐が得られる。FIFO状況だけに関心があるときは
、仲裁信号はディスエーブルできるので、多重ウェイ分
岐は4ウエイに減らされる。 6制御プロセツサ・モジュール110(またはFPモジ
ュール130)が各サイクルでデータ・キャッシュ・メ
モリ140を使用中のときデータ転送プロセッサ・モジ
ュール120がキャッシュ・メモリからロックアウトさ
れるのを防止するために、割込みが用意されている。デ
ータ転送プロセッサ・モジュールがアクセスを拒否され
ると、転送承認信号でループを開始する。この状態にお
けるタイムアウトは簡単にテストして調べることができ
る。タイムアウトが起こると、データ転送プロセッサ・
モジュール120は制御プロセッサ・モジュール!10
に割込みをかけることができる。これによりデータ転送
プロセッサ・モジュール120はメモリ・アクセス・モ
ードから出て、再びデータ転送プロセッサ・モジュール
120はこのモードに入る。 整数プロセッサ機構340 IPU 340は、本好適実施例では、すでに述へた制
御プロセッサーモジュールllOのIPU 240とほ
ぼ同じである。 シーケンサ310と関連支援ロジック シーケンサ310は、本好適実施例では、すでに述べた
制御プロセッサ・モジュール110のシーケンサ210
とほぼ同じである。 シーケンサ支援ロジックには、割込み、条件コード選択
、マイクロアドレス・バス、定数/次アドレス・フィー
ルドの4種類がある。 割込み シーケンサは4つの割込み人力ピンをもっているだけで
ある。従って、この数を8に拡張するために、外部マル
チプレクサ313が使用される。割込みは主に連絡とデ
バッグ・ツールのサポートのために使用される。 割込み発生源(優先度順)は次の通っである。 クロー・ロジックと中断点:この割込みレベルはクロー
・ロジックと中断点ロジックの間で共用される。これら
の2割込みタイプの機能は、制御プロセッサ・モジュー
ル110内のシーケンサ210の機能と関連づけて上述
した通りである。 VMEバス(デバッグ):VMEバス割込みは通常デバ
ッグ・そニタをサポートする目的だけに使用されるので
、正常動作時には使用されない。 VMEバス(コマンド) この割込みレベルは、コマンドがコマンド・レジスタに
保管されるとセットされる。 制御プロセッサ(コマンド):この割込みが起こると、
制御プロセッサ・モジュール110はコマンドがDTP
コマンドFIFOにあることをデータ転送プロセッサ・
モジュール120に通知することができる。傘傘 のデータを受は取ったか(入力FIFO) 、データが
なくなったので(出力FIFO) 、 VMεインタフ
ェース内のデータFIFDにアテンションが必要である
ことをデータ転送プロセッサ・モジュール120に通知
するために使用される。◆ GIPインタ7 、z−ス: GIP割込みはGIP
FIFO状況信号によって引き起される。* データ・パイプ・インタフェース:この割込みレベルは
、ある種のデータを受は取ったのでデータ・パイプ・イ
ンタフェース内のFIFOの1つにアテンションが必要
になフたとき、データ転送プロセッサ・モジュール12
0に通知するために使用される。申 マイクロコード拡張インタフェース:この割込みは拡張
カード(例えば、大容量メモリ・カードやネットワーク
・カード)のいずれかで使用するために予約されている
。 注意:*印の付いた割込みは通常の条件コード・ロジッ
クでテストできるので、それが望ましい場合はポーリン
グか可能である。 ・・印の付いた割込みの場合は、割込み状態を弓き起し
た事象は、ソフトウェアFIFOデータ構造内の制御情
報を調べることで検出することができる。割込みを使用
しない場合は、これをポーリングすることが可能である
。 割込み数を拡張するためにマルチプレクサ313を使用
する場合は、4つの高優先度割込みレベルと4つの(I
lj f!先度割込みとの間でタイミング条件が異なる
ことになる。高優先度割込みであることを認識するため
には、割込みをマイクロコード・クロックの立上がり縁
の25ns前に引き起す必要がある。低優先度割込みの
場合は、その期限は立下がり縁の15ns前である。 割込みを引き起すために、対応する割込み入力は1クロ
ック期間高に保持される。ハードウェアによる割込み承
認サイクルは必要ないので、割込みを引き起すハードウ
ェアは非常に単純である。 条件フード・ロジック シーケンサはFL八へと名付けた条件コード入力端を1
つもっているので、1−へてのテスト可能状況信号は多
重化されてこのビンに人力される。これは内部レジスタ
に格納され、通常セットアツプ時間はIRQにマスクが
かけられているときは(カウンタ・アンダフロー割込み
) Ionsであり、イネーブルされたときは26ns
である。FLAG入力端の極性はシーケンサ内部で変更
することが可能である。 (以下余白) DTPモジュールはCPモジュールと同様に、第40A
図に示すような疑似レジスタ・ロジックを備えている。 (これは割込み処理から戻るときの問題を避けるための
ものである。) テスト可能な状況信号には、次のものがある。 IPo 340条件コード出力(coND) :この信
号は現命令の状況を中継する。IPU 340がこのビ
ンから出力する特定条件はマイクロ命令でコーディング
される。 マイクロコード・ループ:これはVMEインタフェース
制御レジしタスの状況ビットであり、診断ソフトウェア
で使用されるものである。 以下に挙げたFIFOに対するFIFO状況信号:デー
タ・パイプ人力#1(半満杯と空)、データ・バイブ人
力#2(半満杯と空)、データ・バイブ出力#l(満杯
)−データ・パイプ出力#2(満杯)−シMεデータ入
力(半満杯と空) 、 VMEデータ出力(半満杯と空
)、GIPインタフェース(入力)(半満杯と空)、G
IPインタフェース(出力)(満杯、半満杯と空)。*
印の付いた信号は別すブシステ11上の受入れFII’
Oから出されるものである。 データ・キャンシュ・メモリ・サイクル承認:これはデ
ータ・キャッシュ・メモリへのアクセスが許可されたこ
とを示す。 マイクロコード拡張インタフェース条件コード信号:こ
れは状況をデータ転送プロセッサ・モジュールのシーケ
ンサ310に返却するためにいずれかの拡張インタフェ
ース180によって使用される。 DMAバス・エラm:この状況ビットは、VMEバス上
のDMA転送がバス・エラー発生が原因で途中で打ち切
られたとき活動化する。このエラーが最も起こり得る原
因としては、存在しないメモリがアドレス指定された場
合がある。 書込みフラグ0と1:これらの2信号はデータ・キャッ
シュ・メモリ書込みロジックの内部状態をアクセスしや
すくする。これらは、デバッグ・モニタにある状態スレ
ーブと復元マイクロコードだけによって使用される。 保留状況:これは、割込みから戻るときテストされ、そ
の結果、条件付きジャンプなどが割込みサービス・ルー
チンへのジャンプによってディスエーブルされていても
、正しく実行される。 IPo 340からのGONO出力は、100nsでサ
イクルするときは、シーケンサのセットアツプ時間に間
に合わない程遅れて有効化される(特に、マルチプレク
サによって遅延されたとき)。この条件をテストすると
きは、クロックを125nsまで延長する必要がある。 ”fc)r 1oops”は、シーケンサ内部のカウン
タの1つを使用すると、とり入れやすくなり、IPU3
4Gをアドレス計算から解放することができる。勿論I
PU 340を使用しても可能であるが、サイクル時間
が長くなり、それだけ余分のオーバヘッドが生じること
になる。 条件コードは24:lマルチプレクサ312を通して多
重化されて、シーケンサ310のFLAG入力端に入力
される。シーケンサは選択した条件コード信号の極性を
内部レジスタに格納して、それを選択する。 マイクロアドレス・バス111 マイクロアドレス・バス311は、2つのソースつまり
、正常プログラム実行時にはシーケンサ310から、マ
イクロコードのロード時にはVMEバスから駆動させる
ことができる。 VMEバスはマイクロアドレス・バス
311の内容を読み取って、シーケンサ310がどのア
ドレスにあるかを確かめることもできる。これはシーケ
ンサ動作と非同期に行なわれ、主に診断で使用される。 このバスの拡張部分は311B線で示されているように
、ホスト・インタフェース・ロジック160に結ばれて
いる。 定数/次アドレス・フィールド これは、シーケンサ210に関連して上述したもとのは
全く異なる方法で使用される。DTPモジュール120
では、マルチウェイ分岐機能を向上するためにいくつか
の新規なロジックが使用されている。このロジック(お
よびマルチウェイ分岐でのその用法)について、以下説
明する。 マルチウェイ分岐 第3八図と第3B図に示す実施例では、マイクロコード
・システムにおけるマルチウェイ分岐に新規な機能がい
くつか追加されている。第30図は、アドレス境界の制
約を受けることなくマルチウェイ分岐を行なうために本
好適実施例で採用されているマイクロコード動作を概略
図で示したものである。 第3八図から明らかなように、定数/次アドレス・フィ
ールド(マイクロ命令フィールドからのもの)はバッフ
ァ317に対して設けられただけでなく、マルチウェイ
分岐ロジック318に対する入力ともなる。マルチウェ
イ分岐ロジックはマイクロコード・アーキテクチャに新
規な機能をもたせる仕方でこの信号を処理することがで
きる。このマルチウェイ分岐ロジックに対する他の人力
としては、PIF状況信号、およびシフト・コマンド(
これはシーケンサ310によって実行されるマルチウェ
イ分岐ステップにおいて、代替宛先間の増分を変えるた
めに使用される)がある。 第3B図は詳細図である。マイクロ命令バス311から
の定数フィールド(16ビツト)は分割されてPへL
318とバッファ317に対する人力が得られる。共通
イネーブル信号は、マルチウェイ分岐操作が望ましいと
き、これらの両方を活動化するために使用される。(勿
論、シーケンサ・バス315は他にも用途が多数あるの
で、マルチウェイ分岐操作が必要になるのはまれである
。)さらに、定数/次アドレス・フィールドは、単純な
ジャンフ操作でもよく使用され、そのような場合には、
マルチウェイ分岐操作が必要になる。 第30図は、マルチウェイ分岐ロジックの内部操作をさ
らに詳しく示している。条件選択/コード化ロジックに
は、各種条件および状況信号が用意されている。これは
これらの条件を選択し、コード化して、分岐で使用でき
る3ビット信号を得るものである。 マルチウェイ分岐ロジックは以下で詳しく説明するよう
に、いくつかのマイクロ命令ビットで制御される。 この種のマルチウェイ分岐ロジックをモジュール120
のようなデータ転送プロセッサで使用すると、特に利点
、が得られる。その場合には、装置条件信号を選択/コ
ート化ロジック301Oに対する条件人力として使用で
きる。そうすれば、データ転送プロセッサはかなり複雑
なインタフェースに対して高度の制御を行なうことがで
きる。関心のある状況信号が現れると、マルチウェイ分
岐ロジックはその条件を処理するのに相応しいルーチン
に直ちに■3ることができる。マルチウェイ分岐機能に
より、シーケンサは複数の装置の条件を1回のサイクル
でテストすることができる。つまり、DTPモジュール
120は各サイクルごとにデータ中云送を行なうことが
できる。この結果、1つだけの条件コード(FL八へ)
入力端をもつシーケンサは複雑な制御を行なうこともで
きる。 本好適実施例では、選択/コード化ロジック3010に
対する人力には、下達するように4個のFIFOからの
状況ビットがある。しかし、他の様々な人力構成を使用
できることも勿論である。 シフト入力はシフトとマージ・ロジックに対するもので
ある。これは、マルチウェイ分岐の宛先間の増分を変え
ることを可能にする。 第30図の右側はシーケンサ310か相対アドレス指定
機能をもつことを概略図で示したものである。この機能
をマルチウェイ分岐機能と併用すると、アドレス境界の
制約を無視できる。これはデータ転送プロセッサでは特
に利点がある。この種のプロセッサはデータ転送を小刻
みに行なえる能力が要求されるので、マルチウェイ分岐
命令を多数含めておくことが望ましい場合がある。アド
レス境界の制約がなくなったので、この種の命令を大量
に使用できる。 本好適実施例では、プログラム・カウンタがジャンプ宛
先に対する人力として使用されている。 これは、従来の多数のマルチウェイ分岐では、宛先ベー
ス・アドレスを別のソースから得ていたものと異なるも
のである。 書込み制御記+!!機構(WC5) 320WC5はマ
イクロコードSILモジュールを用いて構成されている
。これらは8に×32ビット・メモリであり、マイクロ
コードと診断機能をロートするための直列走査バ〜tブ
ライン・レジスタを備えている。このモジュールは2種
類のものが使用される。レジスタ格納出力と非レジスタ
格納出力である。IPLI 340 とシーケンサ31
0は独自の内部バイブライン・レジスタをもっているの
で、非しタスタ格納版を使用する。 WCSインタフェース・レジスタ322と323は制御
プロセッサ・モジュールの個所で上述したWCSインタ
フェース・レジスタ223と222と同じ働きをする。 DMAコントローラ DTPモジュール120の重要な機能は、VMEインタ
フェース160と、場合によっては、1つまたは2つ以
上の他のインタフェースにある1つまたは2つ以上のD
MAコントローラを制御することである。この機能は、
それぞれのインタフェースと共に、以下で詳しく説明す
る予定である。 モート・レジスタ303は、使用頻度が低く、マィクロ
コ−1・・ヒントを専用させるたけのJ1山・がないH
il制御信号のイ
その他の国々の著作権法に基く著作権による保護に服す
る。本出願の最初の存効な出願日を以て、本出願の材料
は未公開の材料として保護される。 しかしながら、この材料を複写することは、特許書類あ
るいは特許開示か英国あるいはその他の国の公的な特許
出願書類あるいは記録において現れてくるものとして、
だれもがファクシミリ再生することに著作権者は異Mぶ
を唱えないという範囲内において、許可される。しかし
、その地点においては、著作権者はどのようなものであ
るかすべての著作権を留保する。 [産業上の利用分野コ 本発明は、プロセシング・システムに関し、特に命令実
行の改良されたコンピュータ・システムおよびサブシス
テム、およびコンピュータを利用したデータ処理方式に
関するものである。 [従来の技術] マイクロコーディングしたアーキテクチャ高速で柔軟な
コンピュータ・アーキテクチャを開発するための非常に
重要なツールはマイクロコーディングである。詳しい説
明は、J 、 MickおよびJ 、 Br1ck著、
Blt−5Lice MicroprocessorD
esign (1980)を参照されたい。この文献
は引用することで本明細書の一部とする。マイクロコー
ディングしたアーキテクチャは非常に柔軟であるばかり
でなく、処理速度を非常に向上できる可能性も備えてい
る。 マイクロコーディングしたアーキテクチャでは、個々の
命令はかなり長い(たとえば、100ビツトなど)。か
なり低レベルのロジックによって命令をデコードするこ
とにより、適切なフィールドが低レベルのデバイス(レ
ジスタ・フィールドやアドレスなど)に送出されるよう
にしている。 つまり、命令フィールドのビットの1.9数は通常、命
令の総数のlog2より非常に大きくなる。このため、
デコード操作を非常に単純化できる。マイクロコーディ
ングしたアーキテクチャでは、アドレス演算を実行する
ためと最初のレベルのデコードを実行するためにシーケ
ンサを使用する。 (また、プログラム・シーケンシング(順序付け)機能
を実行するために、低レベルのロジックも使用できる。 )シーケンサはコントロール・ストア(メモリ)から、
マイクロ命令をアクセスし、マイクロ命令のいろいろな
部分が追加デコード・ロジックに提供されたり、直接デ
バイスに渡される。1つの命令には多くのコマンド・フ
ィールドが含まれる可能性があるため(フィールドはす
べて同時に実行される)、非常に短いマイクロコード・
プログラムを作成できる。 個々の命令は非常に低レベルで、かなり長いため、プロ
グラムを格納するのに必要な記憶空間は非常に重要であ
る。また、マイクロコード・ルーチンをロードするため
に必要なデータ転送も重要となる。 マイクロコード・オーバーレイ プロセッサは通常、一定の量の書き込み可能コントロー
ル・ストレージ(”wcs”)、だけしか使用できない
。したがって、−度にWC3に格納しなければならない
ルーチンの数が非常に多い場合には、何らかのオーバー
レイが必要である。スタートアップ時にはマイクロコー
ドをロードするためにシリアル・ループを使用でとるが
、オーバーレイをロードするためにシリアル・ループを
使用することは実際的ではない。これは、ホストが命令
をロードできる速度が非常に遅いためである(たとえば
、ディスクのアクセスに応じて、1つの命令をロードす
るのに100マイクロ秒から3ミリ秒かかることがある
)。 マイクロコードの圧縮 大量のマイクロコードを削減するためにこれまで採用さ
れてきた1つの方法は、“垂直”マイクロコードと呼ば
れる。この方式では、必要な記憶空間を削減するために
デコード・テーブルを使用する。このデコード・テーブ
ルを定義しておけば、各マイクロコード命令に、命令そ
のものよりはるかに短い固有の゛°名前”を与えること
ができる。(たとえば、命令の数が256以下の場合に
は、個々の命令の長さが数百ビットの場合でも、8ビツ
トの名前によって各命令を参照できる。)このような命
令の短い“名前”を垂直マイクロコードと呼び、実際の
実行可能なマイクロコード命令は、“水平“マイクロコ
ードと呼ぶ。 この方式では、完全な命令ではなく、命令フィールドを
エンコードするために検索(ルックアップ)テーブルを
使用することがある。このようにすれば、検索に必要な
メモリ空間を削減できる。 適切なフィールドの組み合わせに対して、追加ロジック
が必要である。しかし、垂直マイクロコード方式は一般
に採用されていない。これは、この方式の速度が非常に
遅いからである。 アドレス空間とアドレス計 大きいアドレス空間を持つ仮想メモリ・システムが増加
している中で、32ビット以上のアドレス空間を取り扱
うことができる機能はコンピュータ・システムにとって
非常に重要になっている(48ビット以上のアドレス空
間を備えたシステムも出現している)。しかし、データ
と命令に対して同じアドレス空間を使用するシステムで
は、これはプログラム・シーケンスに対して制約条件と
なる可能性がある。 非常に高いスループットが必要とされる場合には、通常
、マイクロコーディングしたシステムを使用する。した
がって、このようなシステムでは、特にプログラム・ア
ドレス計算の速度が重要である。しかし、大きいアドレ
ス空間を使用すると、リアルタイムでアドレスに対して
実行できる計算の範囲が大きく制限される。このような
制限は特に、高速フーリエ変換(FFT)のようなアル
ゴリズムでは不便である。FFTは大量のデータ演算と
アドレス演算を必要とする。 [発明の要約コ 本出願では、第1図に示すようなシステムをもとに、多
くの革新的教示について述べる。多くの革新的教示の中
で、ここでは、マルチプロセッサ・システムについて述
べる。マルチプロセッサ・システムでは、制御プロセッ
サが数値処理モジュールとの間のすべてのデータ転送を
制御し、この制御プロセッサは、主に、与えられたタイ
プのすべての操作(数値プロセッサによる操作)に対し
て同じマイクロコードを実行する。(たとえば、ベクト
ル加算、ベクトル減算、ベクトル乗算は、これらの操作
がすべて、2つのベクトルを3番目のベクトルにマツプ
するという点で、“同じ形式タイプの操作である。) ここでは、もう1つの革新的教示として、圧縮したマイ
クロコードのための新しいアーキテクチャについて述べ
る。バイパス・レジスタを使用することにより、命令を
書き込み可能コントロール・ストレージから呼び出すと
きに、マイクロコード命令フィールドの特定のビットを
、上位レベルのプロセッサから渡された他のビットと置
き換えることができる。 本発明は特に、一部のプログラムが、演算中心型操作を
各データ・セットに対して実行しなければならないよう
なシステムで有利であると確信する。 (以下、第101頁に続く) [実施例] 以下、図面を参照して本発明の実施例を詳細に説明する
。 (目次) 実施例、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、112概要説明、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、l1
2設計目標、、、、、、、、、、、、、、、、、、、、
、、、、、、、、121アルゴリズムの分割、、、、、
、、、、、、、、、、、、、122アーキテクチヤの説
明、、、、、、、、、、、、、、、、125cpモジユ
ール110の概略 (第2A図) 、、、、、、、:、、、、、、、、、
、、、、、、、126DTPモジユール120の概略 (第3A図) 、、、、、、、、、、、、、、、、、
、、、、、、、128FPモジユール130の概略 (第4八−4C図) 、、、、、、、、、、、、、、
、、、、、 1310CMの概略 (第5図) 、、、
、、、、、、、、、、、134CMI90の概略、、、
、、、、、、、、、、、、、、、、、、、137外部イ
ンタフェースの概略、、、、、、、、、、139制御プ
ロセツサ(cp)モジュール110、、、.142整数
プロセッサ機構(IPII)240.、、、、、、、、
、I50アドレス生成機構(AG>230、、、、、、
、、、、、.152シーケンサ210と関連支援ロジッ
ク 、155割込み、=、、、、、、、、、、、、、
、、、、、、、、、、、、15B浮動小数点プロセッサ
(一般) (+61)条件コード・ロジック、、、、、
、、、、、、、、、163マイクロ・アドレス・バス、
、、、、、、、、、+68定数フイールド、、、、、、
、、、、、、、、、、、、、、170書込み可能制御記
憶機構(WO2)、220.、、、、.171WCSイ
ンタフエース・レジスタ 222と223 、、、、、、、、、、、、、、、、、
、、、、、、.172FP制御ロジツク、、、、、、、
、、、、、、、、、、、、、、、+75その他のロジッ
ク、、、、、、、、、、、、、、、、、、、、175モ
ード・レジスタ203 (175) :CDバス・デコ
ード・ロジック(178)クロック発生機構250、、
、、、、、、、、、、、、、.178デバツグ・ハード
ウェア、、、、、、、、、、、、、、184マイクロコ
一ド語の形式、、、、、、、、、、、、、、185デー
タ転送プロセツサ・モジュール120、.198データ
転送の制御1090161616.。、、、、−,20
1整数プロセッサ機構:140、、、、、、、、、、、
、、.208シーケンサ310と関連支援ロジック、、
、、208割込み、、、、、、、、、、、、、、、、、
、、、、、、、、、、、208条件コード・ロジック、
、、、、、、、、、、、、、211マイクロ・アドレス
・バス311、、、、、.216定数/次アドレス・フ
ィールド、、、、、、216マルチウ工イ分岐、、、、
、、、、、、、、、、、、、、、、216書込み制御記
+Q機構(WC5) 320.、、、、、、、、.22
0DMAコントローラ、、、、、、、、、、、、、、、
、、、、、221その他のロジック、、、、、、、、、
、、、、、、、、、、、221デコード(222);ク
ロック発生 機構(224) デパック・ハードウェア、、、、、、、、、、、、、、
224マイクロコ一ド語の形式、、、、、、、、、、、
、、、225マイクロコード拡張バス、、、、、、、、
、、、、、、233数値プロセツサ・モジュール130
、、、、、、、.234浮勅小数点算術演算機構(FP
U) 、、、、、、、、238算術計算機構440と4
50、、、、、、、、、、、.239スクラツチパツド
・メモリ1610.、、、、.244高速レジスタ・フ
ァイル430、、、、、、、.2462重バッファリン
グ、、、、、、、、、、、、、、、、、、252非レジ
スタ・ビットのセットアツプ 時間短縮、、、、、、、、、、、、、、、、、、、、、
、、、、、259キヤツシユ・バス・インタフェース と制御、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、262保持レジスタ420、、、、、
、、、、、、、、、、、、.262データ・キャッシュ
転送ロジック、、、、263局所転送パス制御ロジック
(264) 。 転送りロック発生機構412 (264) ;制御信号
(269) 転送の制約条件(缶詰構造) 、、、、、、、、273
保持レジスタ/転送りロック動作、、、、278FPプ
ログラム制御、、、、、、、、、、、、、、、、、、、
、279マイクロ命令順序付け(279)。 スタック・レジスタ478 (281) 。 サブルーチンの動作(283) 、クロック発生機構4
80 (283) 、マイクロコード短縮(288)
、マイクロコード(7) 1 列ロード(289) ;
FPマイクロコード・ルーチン実行の始動(291)。 Fr’モジュールの選択(292)、制御レジスタ(2
94) マイクロコード語の形式、、、、、、、、、、、、、、
301プログラムの渣れの例、、、、、、、、、、、、
、、、、309デバツグ、ハードウェア、、、、、、、
、、、、、、、310Cアプリケーション向きプロセッ
サ・ モジュール130°、、、、、、、、、、、、、、、、
、、、、、、、、3HFFT高速化モジユール、、、、
、、、、、、、、、、314データ・キャッシュ・メモ
リ・ モジュール140、、、、、、、、、、、、、、、、、
、、、、、、.316メモリ構成、、、、、、、、、、
、、、、、、、、、、、、、、、、323データ・ポー
ト、、、、、、、、、、、、、、、、、、、、、、32
4CP転送ロジツク、、、、、、、、、、、、、、、、
、、、、、、326DTP転送ロジツク540、、、、
、、、、、、、、、、、.333仲裁ロジツク535、
、、、、、、、、、、、、、、、、、、.334コマン
ド−メモリ190、、、、、、、、、、、、、、、、、
.33Bホスト・インタフェース・ロジック160、.
34G物理的バス線とのインタフェース、、、、、、3
43バス・コントローラ650 (343) 。 マスク・モードとスレーブ・ モード(345)、データ・バッファ 620 (347) : アドレス・バッファVMEイ
ンタフェース・メモリ560、、、、、.347メモリ
・マツプ、、、、、、、−、、、、、、、、、、、、、
,347データFrF0670.、、、、、、、、、、
、、、、、、、、、、.350VME割込みロジック6
80、、、、、、、、、、、、、.351DMA:+シ
トローラ640、、、、、、、、、、、、、、、.35
1マイクロコード・ロード制御 ロジック610、、、、、、、、、、、、、、、、、、
、、、、、.354レジスタ・ブロック612、、、、
、、、、、、、、、.355制御レジスタ・ビット(3
55)ニ ストロープ・バッファ(358) 。 状況レジスタ(360) ;wcs制御レジスタ(36
1):WCSデータ・ レジスタ(366);CPマイクロ アドレス・レジスタ(387)。 DTPマイクロアドレス・ レジスタ(367) データ・パイプ・インタフェース ロジック150、、、、、、、、、、、、、、、、、、
、、、、、、、.369画像プロセッサ・インタフェー
ス170、、、.373直列ループ・インタフェース、
、、、、、、、、、、、376制御記憶機構とのループ
・ インタフェース、、、、、、、、、、、、、、、、、、
、、、、37フループ制御、、、、、、、、、、、、、
、、、、、、、、、、、、、378ループ・トポロジ、
、、、、、、、、、、、、、、、、、、、381ホスト
とのループ・インタフェース、、、、386DTPマイ
クロコード拡張ループ、、、、、、、、386並列マイ
クロコード・ローディング、、、、、、387モジユー
ル拡張オプシヨン、、、、、、、、、、、、、、391
モジュール接続、、、、、、、、、、、、、、、、、、
、、、、392多重数値処理モジュール、、、、、、、
、、、、、、、394キヤツシユ・メモリ拡張、、、、
、、、、、、、、、、399物理的および電気的実装ボ
ード、、、、、、、、、、399PAL実装、、、、、
、、、、、、、、、、、、、、、、、、、、、、、40
5CP PAL、、、、、、、、、、、、、、、、、、
、、、、、、、、、、408クロツク波形生成PAL2
50 (406) ;CDバス・ソースPへL (40
8) :(:Dバス宛先PAL (409) 、符号/
ゼロ拡張PへL;216 (410) 、マルヂウエイ
分岐アドレス指定1’AL217 (411)データ人
力条件コード選択1’AL(412)DTP と I
/F PAL 、、、、、、、、、−、、、、、、
、、イ12VMEアドレス・デコードPAL (413
) :DMA FIFO状況とクロック制御PAL(4
13) ;VME読取りと書込みデコードPAL611
(414)、VME スレーブ・アクセス・タイミング
PへL(414);信号ループ制御PAL(415) DCM とDCM I/F PAL 、、、、、、、、
、、、、、、、、4180CMアドレス・デコードPA
L(418)。 DCM保持レジスタ制御PAL(419);DCM書込
みフラグ・レジスタ PAL(421) :FP書込みマスクPAL(423
)FP PAL、、、、、、、、、、、、、、、、、、
、、、、、、、、、、423WCSロード・イネーブル
PAL (423);ホスト−ソース・モジュール 選択PAL (42:l) 、CPモジュール選択PA
L (425) ;FP−WC5制御PAL (426
1;ハンドシェーク・ロジックPAL(428) 。 割込み捕捉1’AL(イ32);マイクロアドレスとク
ロック制御 1’AL(432) :直列/並列ロード選択PAL
(433) ;CP書込みデコードPへL(434)
;CP読取りデコードPAL(435) ;保持レジス
タ制御P糺461 (436) :保留レジスタ開始ア
ドレスPAL(439) ; レジスタ・ファイルWE
制御(439)、レジスタ・ファイル・アドレス修f!
1jPAL (440) ;レジスタ・ファイル・アド
レス 増分機構(441)、データ有効性制御PAL(442
) ;マイクロ命令アドレス選択PAL(442) ;
^LU問題状況PAL (443) 。 スタック制御PA13910 (444) :レジスタ
・ファイル・アドレス 修飾子PAL (445) ;結実用バス制御PAL
(447) :VME割込、;5L PAL (448
) 。 DMA/VME スーIF−−トーマEzン(449)
;DMAアドレス制御(452)、割込み縁捕捉(45
2)。 GIPマイクロコード・デコード (45:IA) ;Gll’割込みマスク(453B)
:Glf’割込みステート・マシン(454)ホスト
・コンピュータ、、、、、、、、、、、、、、、、、、
454ホストとのバス・インタフェース 、、、、45
6画像プロセッサ・サブシステム、、、、、、、、45
7システムの動作、、、、、、、、、、、、、、、、、
、、、、、、、459サンプル動作の実現、、、、、、
、、、、、、、、、、、、459物理メモリ・モデル ((:P/DTP間のやりとり) 、、、、、、、、、
、、、、、461仮想メモリ・モデル、、、、、、、、
、、、’、、、、、、、470cpとFP間のやりとり
、、、、、、、、、、、、、、、、、、47111ソフ
トウ工ア階層、、、、、、、、、、、、、、、、、、、
、484アプリケーシヨンとライブラリ・ ソフトウェア、、、、、、、、、、、、、、、、、、、
、、、485装置ドライバ、、、、、、、、、、、、、
、、、、、、、、、487マイクロコード監視ルーチン
、、、、、、、、489マイクロコード転送ルーチン(
DTP) 、、491マイクロコード転送ルーチン(C
P) 、、−492マイクロコード計算ルーチン(FP
) 、、、、493短縮マイクロコード、、、、、、、
、、、、、、、、、、、495マルヂウ工イ分岐、、、
、、、、、、、、、、、、、、、、、496離敗フーリ
エ変換実装、、、、、、、、、、、、、、、、、、49
7多重FPモジュール付きFFT 、、、、、、、、、
、、、503バタフライ計算スルーブツト(504)
。 転送バンド幅(505) ヒストグラム・アルゴリズム実装、、、、、、、、50
9プレビユー・モードのパイプライン方式%式% 本出願の数多くの新規な開示技術について、本発明の好
適実施例に特に関連づけて説明するが、これらの新規開
示技術は、ホスト・コンピュータの指示を受けて稼動し
て高速数値計算を処理するサブシステムの特有の問題に
応用できる利点がある。(この種のサブシステムは一般
に「高速化ボード」と呼ばれている。)しかし、本実施
例は、本明細書に記載されている新規開示技術の多数の
有利な用途の1つの例にすぎないことは勿論である。例
えば、本明細書に開示されている各種アーキテクチャ上
の新規技術は、広範囲にわたるコンピュータ・システム
に任意選択的に応用が可能である。−船釣に、本明細書
に記載されている内容は特許請求の範囲に記載の様々な
発明の範囲を必ずしも限定するものではない、さらに、
記載内容によっては、本発明の特徴事項に通用される。 ものと適用されないものとがある。 概要説明 以下では、第1図に示すものと同じシステムの実施例(
または第9八、1O141、または43図に示す代替実
施例)に特に関連づけて本発明を説明することにする。 これらの実施例の特徴事項は本発明の必須事項のすべて
であるとは限らず、好適実施例を説明するために便宜的
に示したものである。 第1図は、数値処理システムのアーキテクチャを示した
概念図であり、通常大型コンピュータ・システムのサブ
システムとして使用されるものである。第1図に示すよ
うなシステムは一般に「高速化ボード」と呼ばれている
。これらは通常サブシステムとして使用されている。つ
まり、監視プロセッサから高水準コマンドがこの高速化
サブシステムに与えられる。例えば、監視プロセッサは
高速化サブシステムにベクトル加算、行列反転、高速フ
ーリエ変tl(FFT)の実行を命令することができる
。高速化サブシステムはこの命令を受けて監視プロセッ
サが指定した記憶位置からデータを取り出し、数値処理
操作を実行し、その結果を監視プロセッサに返却する。 第1図は、3つの異なるプロセッサ・モジュールからな
り、そのすべてが異なるタスクを同時並行に実行できる
アーキテクチャを示している。これらの3モジユールと
は、制御プロセッサ(cp)モジュール11O,データ
転送プロセッサ(DTP)モジュール120 、数値処
理モジュール130である。 (この数値処理モジュールは浮動小数点処理モジュール
であることが好ましく、従ってこのモジュールは”FP
”モジュールと呼ばれることが多い。数値処理モジュー
ルは、以下で説明するように、他にも各種タイプのもの
が使用可能である。)数値処理モジュール130は他の
2つのプロセッサと非同期に、つまり、完全に独立した
クロックで稼動する。さらに、外部インタフェース15
0.160,170,180にも相当量のロジックが備
わっている。 データ・キャッシュ・メモリ140の構造と、システム
内の他のブロックとの関係は非常に重要である。データ
・キャッシュ・メモリ140は広幅キャッシュ・バス1
44を経由して浮動小数点プロセッサ!30に結ばれて
いる。好適実施例では、キャッシュ・バス144は、デ
ータ用に予約された256木の物理線から構成されてい
る。 これらの3種類のプロセッサ・モジュールはタスク割振
りを容易にする。タスク割振りは基本的には次のように
行なわれる。 データ転送プロセッサは、外部インタフェースを通して
外部世界とのインターフェースを管理すると共に、キャ
ッシュ・メモリと外部世界との間のデータ転送を取り扱
う。 制御プロセッサ110はアドレス計算を行ない、数値処
理モジュール130との間で送受されるすべてのデータ
転送を制御する。 数値処理モジュール130はデータ計算を行なう。 このタスク割振りを効率よく、高速にサポートするシス
テムを設計するためには、いくつかの重要なアーキテク
チャ上の問題を解決する必要がある。しかし、本発明に
よれば、これらの問題が解決され、驚異的な成果が得ら
れる。 かかるアーキテクチャの実現を容易にするために、第1
図の実施例では、注目すべきハードウェア機構がいくつ
か設けられている。第1は、制御プロセッサ110に、
アドレス計算操作のための強力な機能をもたせたことで
ある。好適実施例では、第2図に概要を示すように、こ
のプロセッサはシーケンサだけでなく、アドレス生成ロ
ジックと算術論理演算機構(ユニット) (ALII)
も備えている。 データ転送プロセッサ120は外部インタフェース・コ
ントローラの動作を監視する。好適実施例では、外部イ
ンタフェース・コントローラは実際には3つ設けられて
いる。つまり、VMEバス・インタフェース160と、
2個のバックブレーン・バスに対する制御装置である。 (一方のバックブレーン・バスは「データ・バイブJで
あり、高速化ボード間を高バンド幅リンクで結ぶもので
ある。もう一方はrGIPバス」であり、画像や図形デ
ータの伝送を最適化するものである。)これらの3つの
バス・インタフェースの各々は、独自の制御ロジックと
好ましくはコントローラを備えている。例えば、VME
バス・インタフェースはブロック・データ転送を高速化
するために、直接メモリ・アクセス(DMA)コントロ
ーラを備えている。 しかし、データ転送プロセッサ120はこれらのインタ
フェースを高度に監視する機能を備えている。上記アー
キテクチャの最も重要な部分はキャッシュ・メモリ14
0である。このキャッシュ・メモリは幅が広((256
ビツト幅)、大容量であり(少なくとも2メガバイト)
、高速であるが(現構成ではアクセス時間が100ナノ
秒であり、より高速化することが好ましい)、それだけ
でなく3つのボートを備えて効率化を図っている。この
メモリは物理的には2ポートだけにするのが好ましく、
制御プロセッサ110とデータ転送プロセッサ120間
の仲裁はそれぞれのマイクロコード命令方式で行なわれ
る。 さらに注目すべきことは、キ・ヤッシュ・メモリ140
の3ボートが全く異な1ことである。−船釣に、大部分
の数値処理サブシステムでは、キャッシュ・メモリと数
値処理構成機構(ユニット)間のバンド幅か非常に重要
になっている。従って、好適実施例では、数値プロセッ
サにつノJがるボートは制御プロセッサとデータ転送プ
ロセッサにつながるボートよりも幅が広くなっている(
従って、バンド幅が広くなっている)。好適実施例では
、後者のボートはわずか32ビツト幅である。さらに、
完全並列レジタ群が32ビツト・ボートで使用されてい
るので、これらのボートに対するすべてのアクセスはキ
ャッシュ・メモリ140からは完全に並列、つまり、2
56ビツト並列読取りまたは書込みとして見えるように
なっている。 数値処理モジュール130とのインタフェースは、複数
のモジュール130がすべて1つの制御プロセッサの制
御を受けて並列に使用でき、すべてが(好ましくは)1
つのデータ・キャッシュ・メモリ14Gをアクセスでき
るように定義されている。キャッシュ・バスの幅を極端
に広くすることは、この複数モジュール機能を実現する
上で重要な要因となる。 制御プロセッサ110とデータ転送プロセッサ・モジュ
ール120間のインタフェースにも、キャッシュを効率
よく利用できる重要な機能を備えている。好適実施例で
は、重要な機能のいくつかは、このやりとりの利点を向
上するために使用されている。第1は、多重プログラミ
ング・プロセッサでは普通に行なわれていることである
が、制御プロセッサ110とデータ転送プロセッサ12
Gが共に可変継続時間命令を使用していることである。 つまり、ある種の命令タイプは、他の命令タイプよりも
サイクル時間を大幅に長くする必要がある。 例えば、8i端な例として、ノー・オペレーション命令
や無条件ブランチは、乗算命令よりもCPU時間を大幅
に少なくする必要がある。従って、可変継続時間クロッ
クを使用してプロセッサの制御を行ない、実行中の命令
をクロック発生装置にチエツクさせて、クロック時間間
隔の継続時間をそのチエツク結果に応じて高速に調整す
ることが一般化されている。 本好適実施例では、制御プロセッサ110とデータ転送
プロセッサ120は共に共用可変継”経時間クロックに
よりクロックがとられる。従って、制御プロセッサ11
0とデータ転送プロセッサは、たとえ別々の命令ストリ
ームを同時に実行中であっても、同期して稼動するよう
にイネーブルされる。 制御プロセッサ110にキャッシュ・メモリ140への
アクセス優先権が与えられている。つまり、データ転送
プロセッサlzOは、制御プロセッサ110が先にキャ
ッシュをアクセスしていないことを確かめてからキャッ
シュをアクセスする必要がある。しかし、ロックアウト
を防止するために、データ転送プロセッサ120は割込
み信号を出して、制御プロセッサ110が少なくとも1
サイクルの間キャッシュ・ポートの制御権を解放するよ
うに指示することができる。 これらの31!!類のプロセッサ・モジュールは、以下
の説明で略語を用いて引用することがある。 例えば、データ転送プロセッサ・モジュール120で実
行されるマイクロコードはDTPマイクロコードと呼ぶ
場合がある。同様に、制御プロセッサ110で実行され
るマイクロコードはCPマイクロコードと、数値処理モ
ジュール130で実行されるマイクロコードはFl’マ
イクロコードと呼ぶ場合がある。これらの略語は他の機
能についても用いられている。 設計目標 本好適実施例のサブシステムは、小型化され、低コスト
であるが、高度の浮動小数点数値処理性能をもつ設計に
なっている。 このサブシステムを使用するために2つのシステムが目
4票となっている。このサブシステムは、広範囲にわた
る汎用ホスト・コンピュータで浮動小数点高速化機構(
ユニット)として使用するのに適している(特に、UN
IXエンジンと互換性をもたせることが望ましい)。 また、第1図の高速化システムは、特殊画像処理システ
ムで利用すると大きな利点が得られるように意図されて
いる。この種のシステムの例としては、ベンチマーク・
チクノロシーズ社から提供され、rGIPシステム」と
呼ばれる図形画像処理システムがある。(GIPシステ
ムは広範囲にわたる°図形画像アプリケーションで高ス
ループツトが得られるようにするいくつかの機能を備え
ている。)第1.9八、1O243図などに示されてい
るような高速化サブシステムを備えたこの種のシステム
は、3次元図形アルプリズムを実行させる上で特に利点
がある。 アルゴリズムの分割 以下で、は、第1図のアーキテクチャについてさらに詳
しく説明するが、その前に、この多重プロセッサ構成が
どのように使用されるかについて説明することにする。 上述したように、大部分のアルゴリズムは4つの独立部
分、つまり、制御、データ入力、アドレス計算、および
データ計算に分けることができる。 これらを個別タスクとして扱い、3つのプロセッサにマ
ツピングするようなアーキテクチャにすることが好まし
い。制御とアドレス計算は制御プロセッサ(cp)モジ
ュール110が取り扱い、データ入出力タスクはデータ
転送プロセッサ(DTP)モジュール120が取り扱い
、データ計算は浮動小数点プロセッサ(FP)モジュー
ル130が取り扱う。 アルゴリズムをjtXJ ?卸プロセッサ・モジュール
110 とFl’間でどのように分割されるかは、いく
つかの特定アルゴリズム実装例を示して、以下に詳しく
説明する。1つの好例は、i31図を参照して上述する
高速フーリエ変JTh(FFT)実装によるものである
が、このFFTアルゴリズムはプログラミング効率が悪
いことでよく知られている。 この例では、FFTアルゴリズムは、データ・サンプル
とフェーズ係数のアドレス計算を制御プロセッサ・モジ
ュール110に割り当て、バタフライ計算を浮動小数点
プロセッサ・モジュール130に割り当てることによっ
て、制御プロセッサ・モジュール110と浮動小数点プ
ロセッサ・モジュール130間で分割されている。 FFTソフトウェアのうちCPモジュール110で実行
される部分は、複素数データのアドレスをステージとバ
タフライ数の関数として計算する。複素数フェーズ係数
はテーブルに保持されているので、そのソフトウェア部
分はテーブル内の必要とする位置も、ステージとバタフ
ライ数の関数として計算する。アドレスが計算で求まる
と、データと係数が取り出されて、浮動小数点プロセッ
サ・モジュール130に渡される。浮動小数点プロセッ
サ・モジュール130がバタフライ計算を完了すると、
ffdJ 御プロセッサ・モジュール110はその結果
を読み取り、格納してから次のバタフライのアドレス計
算を繰り返すことになる。ン主目すべきことは、制御プ
ロセッサ・モジュール110は、実際に行なわれている
バタフライ計算を追跡する必要がなく、データを同期点
で浮動小数点プロセッサ・モジュール130とやりとり
するだけでよいことである。また、このソフトウェアは
、アドレスを計算するだけでなく、キャッシュ・メモリ
と数値プロセッサ間の実際のデータ転送を制御すること
もン主目すべきである。 FFTソフトウェアのうち浮動小数点プロセッサ・モジ
ュール130で実行される部分は、各連続ステージでデ
ータ・セットのバタフライ計算を行なうように直、線的
にコーディングされた単純命令列によってバタフライ9
1算を行なう。各ステージでの正確なデータと係数を得
るために必要な複雑なアドレス計算はで知しない。従っ
て、データ計算のためのコートは、データ転送操作と無
関係に書くことかできる。事実、浮動小数点プロセッサ
・モジュール130に別の設計を採用したい場合(例え
ば、異なる浮動小数点チップ・セットを使用したり、F
FTにより適した低レベル・データ通路アーキテクチャ
を使用したりする目的で)は、このソフトウェア部分(
比較的単純化されている)を変更するだけでよい。 CPとFPソフトウェアの実行は並列に行なわれ、アル
ゴリズム実行速度が低速部分によって決まるようにバイ
ブライン化されている。 アーキテクチャの説明 第1図のサブシステムの主要部分のいくつかについて、
以下詳しく説明する。なお、ここでは、要約だけを説明
していることに注意されたい。もっと詳しい説明はその
あとで行なう。 CTIモジュール110の概略(第2八図)制御プロセ
ッサ(CP)モジュール110は、32ビット整数プロ
セッサ機構(ユニット)(Ir’1J)240、マイク
ロコード・シーケンサ210、 アドレス生成機構(ユ
ニット) (八G)230、その他マイクロプログラム
・メモリ、クロック発生装M、ハス制御といった機構(
ユニット)から構成されている。 好適実施例では、整数プロセッサ機構240はWeit
ek XL8137を使用し、シーケンサ210はAn
alog Davices社製八〇5P−1へ01を使
用し、アドレス生成機構230はAnalog Dev
ices社製ADSP−1401を使用している。当業
者ならば容易に理解されるように、これらに代えてその
他の各種構成要素を使用することも、他のブロックに同
等の機能をこれらに代えて組み入れることも可能である
。 $lJ御プロセッサ・モジュール110は次の2つの主
要タスクを受は持つ。 まず、ホストからのコマンドを解釈し、DTPモジュー
ル120に転送を要求し、データ計算を開始する前に浮
動小数点プロセンサ・モジュール130を初期°化する
ことによって、ボードの動作を制御することである(高
位レベル)。 次に、データ・キャッシュ・メモリのアドレスを生成し
、データ・キャッシュ・メモリとFPモジュール130
間のデータ転送と経路を制御することである。この活動
は通常高位レベル制御操作が完了したあと、実際の数値
処理過程で反復的に行なわれる。ループ制御はシーケン
サが取り扱い、アドレス生成機構とIPUがアドレス生
成のために排他的に使用できるようになっている。 他のブロックとの連絡は32ビツト幅データ・バス(C
Dバス112 )を通して行なわれ、jlilJ御プロ
セッサ・モジュール110はこのバスを通して、データ
・キャッシュ・メモリ140、コマンド・メモリ190
、およびFPモジュール130の制御レジスタに対する
読み書きを行なう、制御プロセッサ・モジュール110
はホストによって(VMEインタフェース18Gを通し
て)、浮動小数点プロセッサ・モジュール130によっ
て、あるいはデータ転送プロセッサ・モジュール120
によって割込みをかけることが可能である。正常動作で
は(つまり、プログラム開発やデバッグと切り施「され
た)、データ転送プロセッサ・モジュール120だけが
割込み発生源となる。 DT+’モジュール120の概略(第3八図)データ転
送プロセッサ(DTP)モジュール120は同じ32ビ
ツト・プロセッサとシーケンサを使用しているので、プ
ログラマから見たとき同じように見える。顕著に異なる
のはバス制御とインタフェース制御である。制御プロセ
ッサ・モジュール11(lと異なる特徴がもう1つある
。それは、データ転送プロセッサ・モジュール120に
は、マイククロコード拡弓長ボートがあり、アットオン
・ボード(大容量メモリ・カードやネットワーク・カー
ドなど)の制御が可能になっていることである。 データ転送プロセッサ・モジュール120は次の2つの
タスクを受は持つ。 まず、データ・キャッシュ・メモリと外部インタフェー
ス間のデータ転送を制御することである。(これは、制
御プロセッサ・モジュール110(またはホスト)から
コマンドを受けて行なわれる。) 次は、外部インタフェースからのコマンドをコマンド・
メモリ+90に保管されているコマンド待ち行列に転送
し、あとで制御プロセッサ・モジュールが処理できるよ
うにすることである。外部インタフェースはいずれもコ
マンドを出すことができるが、初期状態では、VMEイ
ンタフェースが主要コマンド発生源であるものと予想さ
れる。適当なソフトウェアでコマンド・リストをデータ
・キャッシュ・メモリ(またはコマンド・メモリ)に入
れておき、あとでマクロとして呼び出される(この手法
は「ベクトル連鎖」とも呼ばれている)。デバッグ環境
では、データ転送プロセッサ・モジュール120はデバ
ッグ・モニタ(ホスト側で稼動)とデータ転送プロセッ
サ・モジュール120や制御プロセッサ・モジュール1
10や浮動小数点プロセッサ・モジュール130でデバ
ッグ中のマイクロコード間の主要インタフェースとなる
。 また、このデータ転送プロセッサ・モジュールを通して
デパック・モニタはVMIEアドレス空間にマツピング
されていない各種メモリをアクセスすることができる。 外部インタフェース、データ・キャッシュ・メモリ、コ
マンド・メモリ、VMEインタフェース・メモリ、およ
びデータ転送プロセッサ・モジュール120間のデータ
とコマンドの転送は32ビツト幅TOバス122を経由
して行なわれる。外部インタフェース150,160.
170はFIFO(先入れ先出し)でバッファに入れら
れ、アテンションが必要になフたとき、つまりある種の
データを受は取ったり、なにもなくなりつつあるとき、
データ転送プロセッサ・モジュール120に割込みをか
ける。別の割込み発生源としては、ホスト(VMEイン
タフェース経由)と、制御プロセッサ・モジュール11
0がある。 データ転送プロセッサ・モジュール120によるデータ
・キャッシュ・メモリへのアクセスは、制御プロセッサ
・モジュール110が使用していないサイクルに制限さ
れる。(CPモジュール110は浮動小数点プロセッサ
・モジュール130への転送時や自身のためにメモリを
使用していることがある。)データ転送プロセッサ・モ
ジュール120が長時間アクセス待ちに置かれた場合は
、制御プロセッサ・モジュールに割込みをかけて、サイ
クルをスチールすることができる。 FPモジュール130の概略(第4八−4C図)浮動小
数点プロセッサ・モジュール130は別ボートに置かれ
ており、このボードは主ベース・ボードに差し込むこと
によって使用される。浮動小数点プロセッサ・モジュー
ル130の動作は次の2つの部分に分かれて行なわれる
。 (a) マイクロコード浮動小数点機構(ユニット)。 この部分は浮動小数点計算を受は持つ。この機構は1つ
の目標、つまり、可能な限り高速に動作して、浮動小数
点ハードウェア機構の性能を引き出す設計になっている
。これらの設計目標を達成するために、非常に単純化さ
れたアーキテクチャが採用されている。つまり、浮動小
数点乗算機構、浮動小数点ΔLU (算術論理演算機
構)、高11fflボート・レジスタ・ファイル、単純
化された高速シーケンサから構成されている。さらに、
スクラッチバッド・メモリが内部データ通路と密結合さ
れ、参照テーブルを保管し、ヒストグラム記憶域を提供
する。浮動小数点算術演算機構は2つの読取りボートと
1つの書込みボートを通してレジスタ・ファイルとのイ
ンタフェースとなる。 もう1つの書込みボートは読取りボートの一方と結ばれ
て、データ・シャツフルと複写機能を提供する。最終ボ
ートは両方向であり、データをレジスタ・ファイルとや
りとりするために使用される。 (b)データ・キャッシュ・メモリ・インタフェース。 FPモジュールのこの部分は、データ・キャッシュ・メ
モリ上レジスタ・ファイルの両方向ボート間のインタフ
ェースとなる。レジスタ・ファイルとデータ・キャッシ
ュ・メモリ間には両方向レジスタ群があり、データ転送
のバイブラインとなり、データ多重化と経路指定を取り
扱う。 転送制御は転送ロジックで生成される。このインタフェ
ースの多くの部分は、物理的にはFl’モジュール13
0 と同じ場所に首かれているが、CPモジュール11
0と共にクロックかとられるので、FPモジュール13
0の一部というよりも、拡張CPモジュール110と一
般に呼ばれている。 高度多重ボート高速レジスタ・ファイルは、制御プロセ
ッサ・モジュール110と浮動小数点プロセッサ・モジ
ュール間のクリーンなインタフェースとなる点で重要な
要素である。このレジスタ・ファイルの一方の側は制御
プロセッサ・モジュール110と同期して動作し、他方
の側は浮動小数点プロセッサ・モジュール130と同期
して動作する。このようにクロック境界を設けたので、
境界の一方の側に変更を加えても他側が影響されること
がない。この結果、より高速の、あるいはもっと多くの
統合浮動小数点チップ・セットへの移行が容易になり、
従って、浮動小数点機構の独立性を保つことができる。 浮動小数点プロセッサ・モジュール130(またはアル
ゴリズムに合わせて変更されたモジュール130’)は
、最高4つまでこの種のサブシスデムに組み入れること
が可能である。第9八図と第1O図にそのいくつかの例
が示されている。 DCMの概略(第5図) データ・キャッシュ・メモリ140は高バンド幅多重ポ
ート・メモリである。このメモリとそのインタフェース
のアーキテクチャは、本好適実施例のシステム全体の性
能を大幅に向上させる利点をもっている。高バンド幅が
必要とされるのは、浮動小数点プロセッサ・モジュール
130が単純なベクトル計算を実行中のとき、浮動小数
点プロセッサ・モジュール130にデータを常時提供す
るためである(そして、その結果を除去するためである
)。例えば、ベクトル「加算」操作には、計算毎に数字
を3回転送する必要がある。浮動小数点プロセッサ・モ
ジュール130が20Mflopsの計算速度に耐えら
れる場合は、それに歩調を合わせるために要求されるメ
モリのバンド幅は毎秒240Mバイトとなる。 データ・キャッシュ・メモリは64にx 32ビツト・
メモリからなるメモリ・バンクを備え、2Mバイトのオ
ンボード記憶機構を搭載している。これは遠隔メモリ拡
張ボード431Oをキャッシュ・バス144に付加する
ことにより拡張可能である。(物理的には、このメそす
拡張モジュールは浮動小数点プロセッサ・モジュール1
30の各種モジュールと同じコネクタに差し込まれる。 )このメモリ拡張モジュールは、オンボード・データ・
キャッシュ・メモリと同じバンド幅になっているので、
追加の12Mバイト・メモリを2Mバイト単位で拡張す
るように構成することが可能である。2重容量メモリ・
モジュールを使用すると、オンボード記憶機構を4Mバ
イトまで、オフボード記憶機構を24Mバイトまで増加
できる。 データ・キャッシュ・メモリには3つのボートがあり、
各々はプロセッサの各々につながっている。しかし、制
御プロセッサ・モジュール110と浮動小数点プロセッ
サ・モジュール130へのデータ転送はすべてCPマイ
クロコードによって制御されるので、多くの点で、メモ
リを2重ボートだけをもつものとして扱うことが可能と
されていた。 浮動小数点プロセッサ・モジュール130と制御プロセ
ッサ・モジュール110に対するデータ転送は入出力転
送より優先されているので、データ転送プロセッサ・モ
ジュール+20はメモリ・サイクルに空きが出るまで待
たされることになる。データ転送プロセッサ・モジュー
ル120の待ち時間が長い場合は、制御プロセッサ・モ
ジュール110に割込みをかけて、メモリへのアクセス
権を獲得することができる。このことは、制御プロセッ
サ・モジュール110がランダム・アクセスを行なって
いない限り、問題となることはない。その場合でも、ブ
ロック人出力転送では、データ転送プロセサ・モジュー
ル12Gは別のデータ・ブロックを要求する必要が起こ
る前に、メモリ・アクセスご、とにデータを転送するた
めに8サイクルが必要になる。 妥当なサイクル時間メモリ装置で高メモリ・バンド幅を
得るために、広幅メモリ・アーキテクチャが採用された
。メモリは24ビツト幅であるので、1回のアクセス・
サイクルで、32バイト(8F語)が転送される。メモ
リのサイクル期間が100 nsであれば、メモリ・バ
ンド幅はブロック転送では毎秒320Mバイト5ランダ
ムF語のアクセスでは毎秒40Mバイトである。 データ・キャッシュ・メモリは、FPモジュール130
用のマイクロコード・オーバーレイを保管しておくため
にも使用できる。これらは、浮動小数点プロセッサ・モ
ジュール130のマイクロコードがWCSサイズを越え
たとき、FPモジュールの書込み可能制御記1(!機構
との間で受は渡しされる。この並行ロード機能によるW
C5の再ロードは、ホスト制御による通常のシリアル・
ロードよりもはるかに高速に行なわれる。事実、この機
能はマイクロコードを動的にページングができるだけの
高速になっている。 CM 190の概略 コマンド・メモリは小容量(2K)の32ビツト幅メモ
リでり、制御プロセッサ・モジュール110とデータ転
送プロセッサ・モジュール120間の2つのボートをも
っている。コマンド、制御および状況データはこのメモ
リに保管されているソフトウェア待ち行列またはFIF
Oスタックを通して、制御プロセッサ・モジュール11
0とDTPの間で受は渡しされる。 このメモリの半分は制御プロセッサ・モジュール110
と浮動小数点プロセッサ・モジュール130の状態情報
(一部のコマンド構造と共に)を保存しておくために、
マイクロコード・デバッグ・モニタ用として予約されて
いる。 (以下余白) 外部インタフェースの概略 好適実施例では、効率のよいインタフェースをいくつか
備えている。その中で最も重要なのがホスト・インタフ
ェース(V)4Eインタフエースとも呼ばれる)である
。VMEインタフェースは好適実施例によるサブシステ
ムとVMEバスとを結ぶインタフェースであり、VME
バス規格改訂版C1に規定されている電気的仕様とプロ
トコル仕様に準拠している。 VMEインタフェースは、VMEホストがマイクロコー
ドをアップロードしているとき、制御または状況レジス
タをアクセスしているとき、VMEインタフェース・メ
モリ(VIM)をアクセスしているとぎ、あるいはデー
タFIFOをアクセスしているときはスレーブ・モード
で動作する。スレーブ・モードのインタフェースはバイ
トまたは語アクセスをサポートせず、32ビット並列ア
クセスだけをサポートする。しかし、制御および状況レ
ジスタは16ビツト幅であるので、16ビツトのホスト
は本好適実施例のサブシステムを制御できる。 VMEインタフェースは、局所DMAの制御を受けてデ
ータFIFOとVMEメモリ間でデータを転送するとき
は、マスク・そ−ドで動作する。DMAの活動は、デー
タ中云送プロセッサ・モジュール120が割込みサイク
ルをVMEバス上で開始することによりこのモジュール
によって制御され、モニタされる。 データ・バイブ・インタフェースは、高ハアト幅バック
ブレーン・バスと結ばれる設計になっている。(物理的
には、これはリボン・ケーブルを使用するだけで構成に
含めることができる。)このバスを使用すると、私用サ
ブシステム間の通信が行なえるので便利である6つまり
、インタフェース・ロジックは2つの受信ボートと1つ
の送信ボートを備えているので、この種のバスを複数短
距離局所バスとして使用して、幅広いデータ流れアーキ
テクチャを実現することができる。このバス上のデータ
転送はFIFOでバッファリングされるので(受信端側
)、データ転送を高速にかつ低オーバヘッドで行なうこ
とができる。複数のサブシステムを並列にも直列にも(
例えば、バイブラインで)接続できるので、高性能のシ
ステムを筒4iに実現することができる。 1つの例として、高性能の実時間3次元図形システムを
、2つの高速化サブシステムと画像プロセッサをバイブ
ライン構成にすることによって構築することができる。 最初の高速化サブシステムはフレームnで多角形を変形
してクリッピングし、2番目の高速化サブシステムはフ
レームn−1で多角形を描画順に分類しく隠蔽表面除去
のため)、画像プロセッサはフレームn−2で多角形を
描画する。 DTPマイクロコード拡張インタフェースは仮想的にD
TPモジュール120のマイクロアドレスとデータ・バ
スを拡弓長したものである。これはGIPマイクロコー
ド拡張バスと完全に互換性(物理的および電気的に)が
あるので、GIP用に設計され、この種のインタフェー
スを使用するどの拡張カートでも使用できる。外部大容
量メモリ・システムとネットワーク・カードはこのイン
タフェース・ボート&¥山で未実施例のサブシステムと
?15はれる。 画像データ・ハス・インタフェース170(またはr
GT[’インタフェース」)は、特に図形と画像データ
用に最適化された別のバスに結ばれる。このインタフェ
ースは、GIPマイクロコード拡弓長バスとも接続でき
るので、未実施例のサブシステム上のいくつかのインタ
フェース・ロジックをGIPマイクロコードで制御する
ことができる。これにより、GIPと未実施例のサブシ
ステム間は両方向16ビツト幅のFIFOで結ばれるの
で、コマンドとデータをFIFO経由で送ることができ
る。このインタフェースの各側は他方の側に割込みをか
けることができる。 制御プロセッサ(cp)モジュール110制御プロセツ
サは、32ビット整数プロセッサ機構(ユニット) (
IPU)240に搭載された32ビツト・マイクロコー
ド・プロセッサであり、本好適実施例では、Weite
k XL8137が使用されている。I P +124
0は16ビツト・アドレス生成機構(八G)23Q
(木実施例ではAnalog Devices社へ05
1” 1410を使用)および16ビツト・シーケンサ
210(本実施例ではAnalogDevices社八
[lSP 1401を使へ)によってサボー)・される
。制御プロセッサ内の主データ通路はCOババス12で
ある。 第2八図は本好適実施例における制御プロセッサ+10
の構造を概要図で示したものである。書込み可能制御記
憶機構(WC5)220は、マイクロ命令列を納めてい
るメモリである。シーケンサ210からマイクロ命令ア
ドレス・コマンドが出されて、制御記憶機構220から
マイクロ命令が取り出される。 この方法で制御記憶機構から取り出される命令の流れを
示したのが221である。レジスタに格納されない出力
とレジスタ222に格納される出力の両方を設けること
が好ましい。レジスタ222に格納された出力はデコー
ダ260に人力される。レジスタ222と223は共に
直列シャドウ・レジスタとして構成され、直列ループ2
25とのインタフェースとなる。マイクロアドレスの流
れの一部をライン211Aから得て、浮動小数点モジュ
ール130に通知するようにするのか好ましい。この方
法をとると、以下に述へるような利点が得られる。 また、ライン221上の流れを両方向にするのが好まし
い。つまり、このラインは書込み可能制御記憶機構から
マイクロ命令を読み出すために使用できるだけでなく、
ある種の場合には、命令を逆に制御記憶機構に書き込む
ためにも使用できる。 その利点については下達するが、これは重要な機能であ
る。 マイクロコード出力221は入力としてデコーダ260
に送られる。従来の方法では、このデコーダは最小限の
低レベル・デコード・ロジックを使用して、マイク命令
のフィールドを分割して、必要時にそれらをデコード化
している。本実施例のマイクロ命令形式は第2B図に示
されているが、これについては以下で詳しく説明する予
定である。デコーダ260の出力261はアドレス生成
機構230、整数処理機構240、シーケンサ210と
いった主要機能ブロックのすべてに送られる。これらの
ラインはいろいろな個所につながっているので、個別的
には示していない。 シーケンサ210は、リンク・レジスタ(トランシーバ
) 214を経由してIPυ240から送られてくる入
力とシーケンサ局所バス215を経由してアドレス生成
機構230から送られてくる人力だけでなく、他のいく
つかの入力も受は取る。 さまざまな割込み線はマルチプレクサ213を通して多
重化され、これらの割込みにより、シーケンサ210の
プログラム・カウンタ動作がさまざまに変更される。割
込みをそれぞれに応じて処理するシーケンサ・ハードウ
ェアはよく知られている。 別のマルチプレクサ(212で示されている)は各種条
件コード信号から1つを選択して、シーケンサ210に
人力するために使用される。これらの条件コード信号は
、詳細は後述するように、シーケンサ2100ロジツク
の中でいろいろな使い方をされている。 バッファ217は、マイクロ命令のフィールドで指定さ
れている定数を送るために使用される。 ざらに、別の入出力がいくつか書込み制御記憶機構22
0とマイクロ命令バス221 に示されている。書込み
イネーブル線は、例えばホストからといったように、外
部から制御される。さらに、2ウエイ・インタフェース
211Bを通して、ホストはマイクロアドレス・バス2
11に対して読み書きを行なう。この機能は診断に利用
できるだCづでなく、マイクロ命令を制御記憶機構に書
き込むときにも利用できる(後述する)。 クロック発生装置250は制御プロセッサ目Oとデータ
転送プロセッサ120の両方からサイクル継続時間人力
を受は取る。現クロック・サイクルの継続時間は、CP
とDTPモジュールから受は取った最も継続時間の長い
指定子から即時に選択される。これは、プログラマブル
・ロジック・アレイ(PAL)を用いて実装するのが好
ましい。デコーダ260の場合と同様に、クロック発生
装置250の出力はいろいろな個所に送られるので、個
々には示していない。 第2B図は本好適実施例におけるマイクロ命令フイール
ドの割当てを示したものである。CP J+2.張ロジ
ックにおりるフィールドの割当ても示されている。この
拡張レジスタの動作については以下で詳しく説明する。 なお、ここで注意しておきたいことは、この拡張フィー
ルド内のマイクロ命令の追加ビットと、基本WC522
0内の各命令のこれらの追加フィールドをWC5拡張機
構およびこれらのマイクロ命令フィールドをデコードし
て実行するロジックはすべてサブシステム内の各数値処
理モジュール130またはアルゴリズム高速化機構にも
同じものがあることである。従って、第10図の実施例
には、3つのWC5拡張機構が設けられるので、CPマ
イクロコード・フィールド全体は192ビツトになる。 基本命令内の個々の命令フィールドは整数処理機構24
0(32ビツト)、アドレス生成機構230 (toビ
ット)、およびシーケンサ210(7ビツト)用に割り
1辰られている。拡張フィールド(これは各WC5拡張
機構に保管される)では、フィールドはレジスタ選択、
条件選択、および転送制御用に割り振られている。こね
らのビットの用法については、あとて詳しく説明する。 他の命令フィールドは従来のマイクロコード・アーキテ
クチャで採用されている方法で割り振られる。例えば、
あるビットは中断点まできたことを示すために使用され
、いくつかのビットは命令タイプを簡単に記述するため
に使用され、2ビツトはクロック制御をコード化するた
めに(上述したように、可変m経時間クロックを可能に
する目的で)使用される。 アドレス・レジスタ230はオフ・ザ・シェルフ・アド
レス生成機構である。計算をこの機構で行なえるので、
制御ブロセッザ110の高速アドレス計算能力が向上す
る。 さらに、整数処理機構(TPtl) 240は算術演算
機能を更に向上させる。IPIJはCDバス112から
読み書きができると共に、アドレスをCAババス出力す
ることもできる(レジスタ241を通して)。これらの
アドレスは、第1図に示すように、キャッシュ・メモリ
140とコマンド・メモリ120に対するアドレス情報
となるものである。 木好適実施例において整数対エツ機構240で使用され
る実際の構成要*は高度の算術演算al能を備えており
、この中には、乗算をハードウェアで行なう機能も含ま
れている。従って、機構230 と240を一緒に使用
すると、算術演算機構の多くをアドレス生成−のために
利用することができる。更に、シーケンサ210がマイ
クロ命令アドレス生成機能も実行するロジックをいくつ
か備えていることは勿論である。 アドレス生成機構230からの出力231はバッファに
入れられ、CDバス112に送り返される。シーケンサ
210は整数処理機構240の出力を読み取ることがで
きるが(リンク・レジスタ214を通して) 、 IP
U 240にコマンドでCDバス112を駆動させるこ
ともできる。キャッシュ・メモリ140、FPモジュー
ル130、またはコマンド・メモリ190もこれらの結
果がこのバスに送り出された時点で、その結果をアクセ
スすることができる。 レジスタ203(第2八図の左上に図示)は使用顕度の
低いいくつかの制御信号を格納する。これらの制御信号
には、診断用信号、LED制御信号などがある。 整数プロセッサ機構(IPII) 240IPU 24
0は、4ボート・レジスタ・ファイル1110、八LL
11120、フィールド・マージオ及構1130および
乗算/除算機構1140から構成されている。これらの
構成機構を簡略図で示したのが第11図である。2つの
外部データ通路は同図にDおよびADババス101.1
102で示されている。制御プロセッサ・モジュール1
10では、へDバス1102はレジスタ241を通して
接続され、各種メモリへのアドレス・バスとして使用さ
れる。Dバス1101はCDバス112に直結されてい
る。 lPt1240の4つのボート・レジスタ・ファイル1
110により、4番目のボート経由によるレジスタへの
書込みに加えて、r+、 −r2÷「3といった演算が
1サイクルで行なえる。ALU 1120は通常の算術
および論理演算機能のほかに、優先コード化とビットま
たはバイト反転命令を備えている。フィールド・マージ
機構1130は多重ビット・シフトと回転、可変ビット
・フィールド抽出、保管とマージ機能を備えている。乗
算/除算機構1140はIPU240の他の部分から独
立して稼動する。この機構がいったん乗算または除算操
作を開始したあとは、他の乗算/除算以外の命令はいず
れもALU 1120またはフィールド・マージ機構1
130に実行させることかできる。乗算は32 x 3
2符号付き(8サイクル)で行なわれ、除算は64 x
32ビット符号なしく20サイクル)で行なわれる。 レジスタ241はIP[l 240の外部にあり、C^
ババス11 とのインタフェースで使用される。これに
より、メモリをアクセスするときバイブライン遅延が生
じる。(このレジスタが必要なのは、ここで使用されて
いる特定部分では、へ〇バスはサイクルが開始してから
75−90ns経過するまでは有効にならないためであ
る。) IPU 240 じC“バス1103上の)に対するマ
イクロコード命令入力は内部的に格納されるので(レジ
スタ1151) 、マイクロコード命令は直接に書込み
制御記憶機構(WCS)から取り出される。 アドレス生成機構(八G) 230 木好適実施例で使用されるアドレス生成機構230の構
成は第12図にその概要が示されている。 主要要素としては、16ビツト幅のALU 1210.
30個の内部レジスタ(これらのレジスタを機能別に分
けると、16個のアドレス・レジスタ1222.4個の
オフセット・レジスタ1224.4個の比較レジスタ1
226、および4個の初期設定レジスタ1228に分類
される)がある。他にも、アドレス比較機構1230と
ビット反転機構1240がある。内部バス1250はデ
ータの経路指定を行ない、”Y”バス1270はアドレ
ス出力231を行ない、この出力はCDバス112にフ
ィードバックされる(出力バッファ−232がイネーブ
ルされたとき)。”D”バス1260はシーケンサ・デ
ータ・バス215に人出力を行なうように結ばれており
、バス215はリンク・レジスタ/トランシーバ214
によってCDバスから分離されている。 実際の装置は命令デコーダとその他のタイミングおよび
接合ロジック(図示せず)も備えている。 これらの機r+ヒにより、アドレス生成機構230は1
サイクルで次のことが行なえる。 16ビツト・アドレスを出力すること。 メモリ・アドレスにオフセットを加えることによりメモ
リ・アドレスを修飾すること。 アドレス値がいつ事前設定境界に稼動または境界を越え
たかを検出し、条件付きでアドレス値を再号期設定する
こと。 この最後のステップは循環バッファやモジュール・アド
レス指定を取り入れる上で特に有用である。 アドレス生成機構230はlPt1240がもつアドレ
ス生成機能を補強するものである。しかし、アドレス生
成機構230で使用される特定チップは直接に動作する
場合、16ビツト・アドレスしか生成できない。(倍精
度アドレスは2サイクルを必要とするが、2個のチップ
をカスケード接続することも可能である。)本好適実施
例では、アドレス生成機構230の16ビツト・アドレ
ス出力はlPt1240に渡され、そこでそのアドレス
出力がベース・アドレスに加えられ、32ビツトまで拡
張される。 アドレス生成機構のレジスタは16ビツト幅Dボー1〜
を通してアクセスされる。このボートはシーケンサと同
じ局所部分215 とリンク・レジスタ2目に接続され
ている。 アドレスはYボート1270 (第2A図にライン23
1で示されている)から送出される。アドレスはCDバ
スと結ばれる前に、3状態バツフア232に渡される。 アドレス生成機構のDかYのどちらかが読み取られると
き(つまり、CDバスを駆動するように要求されるとき
)、16ビツト値はバス幅(32ビツト)までゼロで拡
張または符号で拡張することができる。これを実行する
ロジックは、あとで詳しく説明する符号/ゼロ拡張PA
L 216内に置かれている。ゼロ拡張または符号拡張
はCPマイクロコードから直接に制御される。(この機
能は、16ビツト幅ボートのいずれかがCDバスを駆動
するために選択されたとき使用可能になる。) アドレス生成機構230の命令セットは次のように分類
されている。 ルーピング レジスタ転送 論理およびシフト(桁送り)1葉作 制御操作 その他の操作 アドレス生成機構の人力となるマイクロコード命令は内
部レジスタに格納され、WCS 220から直接に取り
出されるようになっている。 ジ−ケン−1)220 と関連支援ロジック本好適実施
例では、シーケンサ210は八DSP1401を採用し
ている。この特定の八〇SPを実装したシーケンサの主
要要素は第13図に示されている。 これは、16ビツト加算機構131O164X 64ビ
ットRAM +320、割込みロジック1330、割込
みベクトル記憶機構ll01および4個のループ・カウ
ンタが含まわる。 内部RAMl320は次の3通りの使い方が可能である
。 1つはレジスタ・スタックとしてである。スタックとし
て使用すると、サブルーチンに入ったとぎ最高4個まで
の71−レスをスタックに入れでおくことができる。こ
れらのアI・レスは関係命令内の2ビツト・フィールド
によってアクセス可能である。 次はサブルーチン・スタックどしてである。このスタッ
クはサブル−チンのシンケージとに4込みのための通常
戻りアドレスの記t9域となるものである。これは、状
況レジスタやカウンタなどの他のパラメータを格納する
ためにも使用できる。 最後は間接アトlメス記憶域としてである。これは使用
開度の高いアドレスの格納用に予約しておくことができ
る。これらはDボートの下位6ビツトを用いてアクセス
される。 スタック制限レジスタ1321はスタ・、・り域が他の
スタック域を1之した二つ、スタ・・!り・オーバフロ
ー・やアンダフローが起こるのを防止するものである。 これらのどれかが起こると、内部割込みが起こり、エラ
ー状態にフラッグが付けられたり、スタックはオンチッ
プ゛に拡弓長される(スタック・ベージング)。 i o (H,IJの否先割込みが用意されている。そ
のうち02fiは装Gjt内部のもので、スタック・エ
ラーとカウンタ アンダフローに対するものである。8
1171は外111へである。割込み検出、し〕・・ス
スタツグおよびマスキングはすべてロジック1330に
よりオンチップでJA理され、対応するベクトルが割込
みベクトル・ファイル1340から取り出される。 命令セットは非常に豊富であり、ジャンプ、サブルーチ
ン呼出し、戻りなど幅広く揃っている。これらの命令の
大部分は絶対アドレス、相対アドレス、または間接アド
レスを使用して目標アドレスを指定できる。これらは選
択した条件の1つによって修飾可能である。 無条件。命令を常に実行する。 フラグなし。条件コード人力(FLAGと呼ぶ)が偽で
あれば、命令を実行し、そうでなければ続行する(通常
失敗命令) フラグ。条件コード人力が真であれば、命令を実行し、
そうてなければ続行する(通常失敗命令)。 符号。命令の実行は状況レジスタ内の符号ヒラ1−によ
って左ノiされる。 スタック!「l埋、状況レジスタ操作、カウンタl::
作、および割込み制御を行なう命令も用哲されている。 マイクロコード命令人力は内部レジスクシご格納され、
マイクロコード命令はWCS (レジスタ格納なし)
から直接に取り出される。 シーケンサ支援ロジックには、割込み、条件つきコード
選択、マイクロアドレス・バス、定数/次アドレス・フ
ィールドの4種類がある。 割込み 本好適実施例でシーケンサ210用に使用されているチ
ップは4個の割込み入力ビンがあるだけである。従って
、使用可能な割込み数を8個に拡張するために外部マル
チプレクサ213が使用されている。割込みは主に連絡
用とデバッグ・ツールをサポートするために使用される
。 割込み発生源(最も優先度の高い順)は次の通りである
。 クロー・ロジック デバッグ環境内では、名目的には、モニタ・タスクとユ
ーザ・タスクの2タスクが稼動している。クロー・ロジ
ック(claw Iogic)は、モニタ・タスクを1
スデツプ進めることなく、ユーザ・タスクだけを1ステ
ツプ進めるものである。クロー・ロジックはユーザ・タ
スクの中のある命令が実行されると、モニタ・タスクに
「制御を返却させる」。ユーザ・タスクに制御を返却さ
せる命令はクロー割込みを要求する。これは1サイクル
だけ遅れているので、ユーザ・タスクの最初の命令が実
行されると割込みが引き起される。従って、ユーザ・タ
スクの次の(つまり、2番目の)命令が実行されるまえ
に、制御がモニタ・タスクに返却される。 中断点 この割込みレベルはマイクロコード・ビットと直接関係
があるので、割込みが起こるとこのビットがセットされ
る。この仕組を利用すると、中断点を設ける上で便利で
ある。中断点ビットがセットされた命令が実行されると
、制御は中断点処理ルーチンに渡される。中断点はいく
つでも設定が可能である。 VMEバス VMEバス割込みは通常デバッグ・モニタをサポートす
る目的だけに使用されるので、正常動作時には使用され
ない。 浮動小数点プロセッサ(中断点) 浮動小数点プロセッサ・モジュール130がそのWC5
にセットされている中断点の1つを見つけると、FPク
ロックは停止される。FPモジュールはこのことをこの
割込みを通して、制御プロセッサ・モジュール110に
通知する。 DTPメモリ・アクセス この割込みは、制御プロセッサ・モジュールにデータ・
キャッシュ・メモリへのアクセスを一時的に中止させる
ために使用される。これによりデータ転送プロセッサ・
モジュール120はキャッシュ140にアクセスができ
るようになる。 DTP (コマンド) このΣ1]込みは、CI’コマンドFIFO(コマンド
・メモリ!90内の)にコマンドがあることをデータ巾
云送プロセッサが制御プロセッサ・モジュール110に
知らせるために使用される。申傘 DTI’ (データ転送0了) この割込みはデータ転送要求が完了したことを制御プロ
セッサ・モジエールに知らせるためにデータ転送プロセ
ッサ・モジュール120によって使用される。傘傘 浮動小数点プロセッサ(一般) この割込みは、CPWAIT、FPWAITが状態を変
えたり、エラーが起こったり(エラー・タイプはソフト
ウェアで定義できる)、浮動小数点プロセッサ・モジュ
ール130に中断点が現れると、引き起される。活動事
象は、FPモジュール130上にあって、制御プロセッ
サ・モジュール110がロードできるマスク・レジスタ
によって選択される。この割込みは今は使用されず、将
来の使用に備えて予約されている。複数のFPモジュー
ル130を使用するシステムでは、4個のFl’がこの
割込みを共用する予定である。従って、割込みサービス
・ルーチンは、これらのFPに正しくサービスするため
にはとのFPが割込みを引き起したかを知っている必要
がある。中 注意:中印の付いた割込みは通常の条件コート・ロジッ
クでもテストできるので、これらをポーリングした方が
好都合の場合には、そうすることが可能である6 傘*印の付いた割込みの場合は、割込み状態を引き起し
たことは、ソフトウェアFIFOデータ構造内の制御情
報を調べることで検出することかできる。これは割込み
が使用されない場合には、ポーリングすることが可能で
ある。 マルチプレクサ213を使用して割込み数を拡張するた
めには、4皿の高優先度割込みレベルと4個の低優先度
割込みとの間のタイミング条件を変える必要がある。4
個の高優先度割込みであることを認識するためには、マ
イクロコード・クロックの立上がり縁より25ns前に
割込みを引き起す必要がある。低優先度割込みの場合は
、この時間制御恨は立下がり縁よりI 5 n s前に
する必要がある。 割込みを引ぎ起ずには、対応する!′、lJ込み入力は
Iクロック期間の間高レベルに保持される。ノ\−ドウ
エアによる割込み認知サイクルは必要ないので、割込み
生成ハードウェア機構は非常にA1純化される。 条件コード・ロジック シーケンサはFLAGと呼ばれる1つの条件コード入力
端をもっており、テスト可能な状況信号はすべて多重化
されてこのビンに人力される。これは内部レジスタに格
納され、通常のセットア・ノブ時間はIROにマスク(
カウンタ・アンダフロー割込み)がかけられているとき
は1. On sであり、イネーブルされたとぎは26
nsである6FLAG入力端の極性はシーケンサ内部で
変えることができる。 第40A図に示すように、HAG入力端の状態をシーケ
ンサ210の外部で保存しておくためにいくつかの追加
ロジックを使用することが好ましい。そうすれば、シー
ケンサ210の内部状態を割込みが起ぎたあとで完全に
復元することかできる、。 PAL 4021はシーケンサ210(または31O)
の内部で内部フリップ70ツブ)020をエミュレート
するために使用される。このl’A1.は従って、[疑
似レジスタJとして動作するだけである。この必要が起
こるのは、第40Ti図に示すような条件のときである
。 割込みが発生すると、シーケンサは割込み処理ルーチン
に制御を渡す。このルーチンが実行されている間、疑似
レジスタPALは割込み発生前に存在していた状況フラ
グ条件のコピーを保持しているだけである。割込み処理
ルーチンの実行が終ると、マルチプレクサ212はこの
ルーチンの指示を受けて、PAL4021の出力をシー
ケンサ210へのFl、AG大入力してシーケンサに渡
す、これにより、フリップフロップ4020の内部状態
が復元される。 この結果、命令の流れは割込みが起こらなかった場合と
同じ順序で継続する。これは、割込みに続く命令が条件
付きブランチである場合は特に重要である。内部状態を
正しく復元すれば、この条件1″づきブランチは正しく
実行されることになる。 勿論、このロジックは、シーケンサによっては必要でな
い場合があるか、本好適実施例で使用されている。にう
な特定シーケンサでは使用した方が好都合である。 テスト可能状況信号には、次のものがある。 II’ll 2110条件コード出カニこれは、現命令
の状況を中継するものである。どの条件がこのビン上で
IPU出力によって指示されるかは、マイクロコード命
令によって定義されている。 マイクロコード・ループ これはVMEインタフェース
制御レジスタの中の状況ビットであり、診断ソフトウェ
アで使用すると便利である。 書込みフラッグOと1:この2信号はデーターキャッシ
ュ・メモリ書込みロジックの内部状態をアクセスしやす
くするもので、デバッグ・モニタ内の状、態格納と復元
マイクロコードによってのみ使用される。 保留状態:これは、割込みから戻るときテストされ、ジ
ャンプによって割込み処理ルーチンに移った場合でもと
の条r41づきジャンプその他か正1)〈実行さ才する
ようにする。 FP状況侶号CPWAIT:これは、F[’がその計算
を終えて、追加データを待っているときクリアされる。 FP状況信号FT’W屓T・これは、制御プロセッサ・
モジュール110がその4算を終えて、追加データを待
っているときクリアされる。 FI’状況信号バンク選択:これは、レジスタ・ファイ
ルが2重バッファ(論理)モードで使用されているとき
、FPレジスタ・ファイルのどちらの半分が制御プロセ
ッサ・モジュール110に割り振られているかを知らせ
る。 FP状況信号:直列ループ、これはFP上の浮動小数点
チップを通して実行される直列ループの終りから抽出さ
れる。この直列ループとのインタフェースを通して、制
御プロセッサ・モジュール110はこれらの装置の内部
状況を抽出する(挿入)ことができる。 FP状況信号:CP待ち割込みとFP待ち割込み。これ
らの2つの状況ビットはそれぞれの信号が高から低に移
るとセットされる(マスキングが可能な場合)。48号
FPWAITとCPWA[Tは、cpが割込み発生源を
突ぎ止める前に再び高に戻ることがあるので、直接にテ
ストされる。 FI’状況信号・FP中断点。これは、デバッグ目的だ
けに使用され、FPが中断点までくるとセットされる。 FP状況信号:FPエラー。これは、エラーが浮動小数
点プロセッサ・モジュール130で起こると、セットさ
れる。これは将来の使用に備えて設けられたものである
。 FP状況信号はシーケンサに向う共通線を共用し、実際
にテストされる状況信号はCP拡張マイクロコード部分
によって選択される。 IP[I 240からの条件出力は1oonsでサイク
ルするときは、遅れて有効になるのでシーケンサのセッ
トアツプ時間に間に合わない(特にマルチプレッサによ
って遅延されるので)。この条件をテストするときは、
クロックを125nsに延長する必要がある。 ”for 1oop”はシーケンサ内部のカウンタの1
つを使用すると、コーディングしやくなり、IPU24
0はアドレス計算から解放される。l:or−1oop
sはIPU240を用いて行なうこともできるが、そう
すると、サイクル時間が長くなるので余分なオーバヘッ
ドが生じることになる。 条件コードは8:1マルチプレクサ212を通して多重
化されてシーケンサの”FLAG“入力端に人力される
。シーケンサは選択した条件コート信号の極性を内部レ
ジスタに格納して、その選択を行なう。 マイクロアドレス・バス マイクロアドレス・バス211と211Aは、通常プロ
グラム実行時にはシーケンサ210から、マイクロコー
ドのロード時にはVMEバスから駆動させることができ
る。VMEバスはマイクロアドレス・バスの内容を読み
取って、シーケンサがどのアドレスにあるかを確かめる
こともできる。これは、シーケンサ動作と非同期に行な
われ、主に診断て使用される。 マイクロアドレス211は、制御ブロモ・ンサ・モジュ
ール110のWC5の32ビツトが各FPモモジュール
上置かれているので、Fl”モジュール(拡張部分21
1八で示されている)上にも結ばれている。マイクロア
ドレス・バス拡張部分はFP WC5をyiA勤するた
めにも使用できる。この機能は次の2つの理由で便利で
ある。 1 ) FPマイクロコードがダウン・ロードされると
きホストからアドレスを与えることができる。 2)FPマイクロコードを制御プロセッサ・モジュール
と同期させて実行させるときに使用できるので、制御プ
ロセッサ・モジュール内のシーケンサ210のアドレス
が内部生成アドレスの代わりに使用できる。(この機能
は本好適実施例では採用されていないが、いつでも利用
できる方法である。) (以下余白) 定数フィールド マイクロ命令の16ビツト幅定数フィールドは主にシー
ケンサにアドレスを与えるために使用されるが、アドレ
ス生成機構の定数を保持するために使用することもでき
る。 シーケンサ210は両方向で私用局所バス(シーケンサ
・データ・バス215)と結ばれている。これにより、
ジャンプなどをCOババス12を使用する処置と並行に
行なうことができる。シーケンサ・データ・バスは両方
向リンク・レジスタ/トランシーバ214を経由してC
Oババス12 とリンクされている。クロックのタイミ
ングとリンク・レジスタ214に対する「フィードスル
ー」制御は、送り元と宛先はすべて要求条件が異なるの
で、転送経路と方向に応じて変化する。アドレス生成機
構のデータ入力端は、アドレス生成機構230がシーケ
ンサと同じタイミング条件でこのバスで転送を行なう一
必要があるので、このインタフェースのシーケンサ側に
接続されていることに注目すべきである。 この構成により、次のような経路指定が可能である。 定数フィール(〜 〉シーケンサ(ジャンプ)定数フィ
ールド−>CDハス(レジスタ・ロード)シーケンサ−
>CDバス(診断) CDハス−)シーケンサ(計算によるジャンプ)定数フ
ィール]・−〉アドレス生成機構アドレス生成機構−ン
CDバス(診断)CDバス−〉アドレス生成機構(計算
によるアドレス) 書込み可能制御記(、!機構(WC5’)220木好適
実施例では、WCSメモリ・バンクはマイクロコードS
ILモジュールを使用している。これらは8K x 3
2ビツト・メモリを備えており、これと共に、マイクロ
コードのロートと診断のための直列シャドウ・レジスタ
222 と223を備えている。(これらのシャドウ・
レジスタの動作は以下で詳しく説明する予定である。)
このモジュールは2つの種類、つまり、出力がレジスタ
に格納されるものと、レジスタに格納されないものとが
ある。IPU ?IO、アドレス生成機構230、およ
びシーケンサ210はそれぞれ独自に内部バイブライン
・レジスタを持っているので、WO2からの非レジスタ
格納出力を使用する。 ン主目すべきことは、制御フ゛ロセッサ・モジュールの
WO2は実際には分散されていることである。 図示の基本WCS部分220(これは物理的にベース・
ボード上に置かれている)のほかに、さらにWC522
0の拡張部分が1つまたは2つ以上ある。これらの拡張
部分はマイクロアドレス・ストリーム211Aを受は入
れ、物理的に各FPモモジュール上置かれている。基本
WC5220に格納されている命令セットは各アドレス
に95ビツトの命令を収容している。WCS拡張部分4
90は各々基本WC5220と同じアドレス範囲にまた
がっているが、WC3拡張部分の各々(数値プロセッサ
・モジュールの各々にある)は各アドレスに追加の32
ビツト命令を収容している。 WCSインタフェース・レジスタ222 と223ホス
ト(VMEインタフェース160を通して稼動する)が
制御記fQ機構のすへてに対して読み書きを行なうとき
使用−rる直列ループの動作について以F詳しく説明す
る。ここでは、ハードウェア構成と接続関係について説
明する。 上述したように、レジスタ222はレジスタ格納マイク
ロ命令出力をデコーダ260に対して、および他の多く
のロジックとメモリ構成要素に提供する。内部レジスタ
に出力を格納する構成要素の場合には、非レジスタ格納
出力も提供される。(例えば、TPU 240は内部命
令パイプライン・レジスタをもっている。また、高度の
内部デコード・ロジックも備えている。lPt1240
はデコーダ260からある種のレジスタ格納制御ビット
、例えば、出力イネーブル信号も受は取ることに注目す
べきである。) レジスタ222は実際は直列シャドウ・レジスタである
。これはレジスタ可能による並列スルーフットが得られ
るだけでなく、直列アクセス・モードももっている。直
列アクセス・モートは上述する直列ループとのインタフ
ェースのために使用される。 他方の直列シャ(−ウ・レジスタ223は非レジスタ格
納出力のシャドウとなるものである。完全な命令に対応
する直列出力を得るためには(要求時に)(または、逆
に命令221の全幅を制御記fQ機構220に書き戻す
ためには)、すべてのピッl−・フィールドをアクセス
する必要がある。 勿論、上述したように接続すると、データ・インタフェ
ースだけでWO2220と結ぶことができる。つまり、
レジスタ222 と223 にはWO2220内の記憶
位置の内容が見えるが、データと明示的に結び付いたア
ドレスは見えない。アドレス・インタフェースは両方向
接続211Bで示されているように、別個の2方向イン
タフエースである。これはCPマイクロアドレス・バス
であり、VMEインタフェース内のマイクロコード・ロ
ード制御ロジックと結ばれている。これと同じハスは、
DTP制御記t、ρ機構を除くシステム内のすへての制
御記憶機構とのマイクロアドレス・インタフェースとな
っている。DTP制御記憶機構内のマイクロアドレス線
はVMEインタフェース内の別のレジスタ/バッファ対
に結ばれ゛ている。 Fr’制御ロジック アーキテクチャのもう1つの特徴は、制御プロセッサー
モジュールが単に監視プロセッサであるだけでなく、浮
動小数点プロセッサ・モジュールとの間で受は渡しされ
るすべてのデータ転送を直接に制御することである。こ
のロジックの大部分ばFl’lクモジュール上かれてい
るが、その制御は制御プロセッサ・モジュール110の
マイクロコードによって行なわれ、Cl1lバスとのイ
ンタフェースとなっている。このロジックはあとで詳し
く説明するが、そこではFPモジュールのデータ操作に
ついて検討する予定である。 モード・レジスタ203はマイクロコード・ビットを専
用するほど重要でない使用開度の低い制御信号の値を保
持する。モード・ビットには次のものがある。 読取り保持レジスタ561を通る流れまたはレジスタ制
御。 書込み保持レジスタ561を通る流れまたはレジスタ制
御(第5図に51+1として示されているレジスタは実
際には2重になっており、1個の読取りレジスタと1個
の書込みレジスタからなっている)。 保持レジスタ560に対するループバック・モード。 2個のLED制御信号。 モジュール選択(3ビツト):このアトスレは複数個の
FPモジュール130やアルゴリズム高速化機構130
°の間で選択される。 CDバス・デコード・ロジック デコーダ260の機能の1つは、マイクロコードCDソ
ース・フィールドをデコードして、CDバスを駆動でき
る装置の出力イネーブルを制御することである。また、
CD宛先フィールドをデコードして、クロック・ストロ
ーブと書込みイネーブル信号(これらはクロック発生機
構からの書込みゲートイ3号によって修飾されるンを発
生ずることも機能の1つである。CDバス上のボートの
大部分は読み書きができるので、IPll 240にあ
る疑似レジスタは必要ない。(CDソースと宛先の一部
はデコーダ260にあるデコード・ロジックによってで
なく、CP拡張ロジック410にあるデコード・ロジッ
クによって制御されることにン主目すべきである。) CDバス・ソースと宛先として可能なものとして、I[
’LI 240、コマンド・メモリ、データ・キャッシ
ュ・メモリ保持レジスタ56〇八、モード・レジスタ(
8ビツト)、転送制御レジスタ*牟−FP制御しジスタ
中*−開始アドレス・レジスタ◆傘申、命令レジスタ(
8ビツト)、状況レジスタ(ソースのみ)傘、アドレス
生成機構アドレス・ボート傘傘 アドレス生成機構デー
タ・ボート傘傘、シーケンサ・データ・ポート中一定数
/次アドレス・フィールド(ソースのみ)傘*がある。 幸印の付いたレジスタはFPモモジュール上置かれてい
るCP拡張ロジックの一部である。これらのレジスタは
、wcs を張部分490に格納されている拡りIGC
Pマイクロコー1〜内のフィールドによって選択される
。選択されたモジュールだけがデータ転送に応答して、
データを送受する。中中印の付いたソースは下位16ビ
ツトを駆動させるだけである。これらのビットの1つか
選択されると、符号/ゼロ拡張PAL 2+5も活動化
されるので、データは32ビツトのバス幅まで符号また
はゼロで拡張される。 ソースと宛先はそれぞれ1つだけが選択可能であり、こ
れらは異なっていなければならない。 lPt1240へのデータ転送はIPt! 240の命
令フィールドの制御の下で行なわれるので、CDデータ
はそれが別の宛先にロードされているときと同時にCD
バスから取り出すことができる。 クロック発生機構250 クロック発生機構250は制御プロセッサ・モジュール
110 (およびデータ転送プロセッサ・モジュール
120)を通して使用される基本クロックイ2号を発生
する。この機構は、制御プロセッサ110とデータ転送
プロセッサ120の両方からサイクルKn 14時間人
力を受は取る。現クロック・サイクルの継続時間は、C
I’とD1’Pモジュールから受り取った2つの入力の
うち長い方の継続時間に従って、即時に選択される。 この発生機構はプログラマブル・ロジック・アレイ(P
AL) に実装することが好ましい。このPALはあ
らかしめ定義された4つの波形列の1つを生成する。こ
れらの4つの波形列は期間が異なっている。つまり、人
力クロック期間の4.5.6.7倍になっている。これ
は、本実施例のように、40MHzオシレ〜りが使用さ
れるときは、100,125゜150、および175n
sに変喚される。 4つのクロック出力が生成される。これらのクロックは
、タイム2クロツクを除き、すべてサイクル継続人力に
応じて同じfa続待時間もつ。これらには、マイクロコ
ード・クロック、パイプライン・クロック、書込みイネ
ーブル−ゲート信号、タイム2クロツクがある。 マイクロコード・クロックは2サイクル(オシレータの
)の間常に高レベルにあり、そのあと2.3.4または
5サイクルの間(これはサイクル長人力によって選択さ
れる)低レベルにt2る。 マイクロコード・クロックはシーケンサ、整数処理機構
、アドレス生成機構、レジスタなどを同期させて稼動さ
せるものである。 パイプライン・クロックはマイクロコード・クロックと
波形が同じであるが、マイクロコード・クロックはパイ
プライン・クロックを動作させたままにして、マイクロ
コードのロード時にディスエーブルさせることが可能で
ある。 書込みイネーブル・ゲート信号はマイクロコード・クロ
ックが高になフた1サイクルのあと低になるが、マイク
ロコード・クロックが低に戻る1サイクル前に高に戻る
。 この信号はメモリのすべてとレジスタの一部に対する書
込みイネーブルのタイミングをとるものである。 タイプ2クロツクは、マイクロコード・クロックの動作
周波数の2倍の周波数で動作し、その立上がり縁はマイ
クロコード・クロックの縁と同じタイミングで現れる。 これは特殊クロックであり整数プロセッサ機構240
と340だけで使用される。II’Uはそれぞれの(内
部)乗算/除算ロジックのクロックをとるためにこのク
ロックを使用して、これらの多重サイクル機能で要する
時間を短縮する。 クロックのサイクル期間の長さは命令毎に調節され、各
命令に割り当てられる時間がその命令で指定されたデー
タ通路の経路指定で必要になる最小時間になるようにし
ている。各命令のサイクル継続時間はマイクロコード・
アセンブラに計算させて、命令の一部に含めることが好
ましい。こうすると、サイクル期間の長さが固定してい
る場合よりも性能が向上する。サイクル期間の長さが固
定している場合は、すべての命令が最も遅い命令と同じ
時間かかってしまうからである。木好適実施例では、サ
イクル期間の長さは100.125.150および17
5nsがサポートされているが、殆どの命令は最短のサ
イクル期間の長さを使用するようになっている。 クロック・サイクルは「待ち信号Jによって延長するこ
とも可能である。この待ち信号は、例えば、メモリが使
用中であったり、オフボードにあってそれらのアクセス
時間を追加のバッファリングのために延長する必要があ
るために、メモリか通宝のアクセス■侍間に応じられな
いとき使用される。例えば、2ボートを備えたVMEイ
ンタフェース−メモリはアドレスの衝突が起こると、一
方のボートが待たされることになる。データ・キャッシ
ュ・メモリ140はFPモジュールと同じコネクタを使
用するメモリ・ボードに搭載されたキャッシュ・メモリ
拡張モジュールで拡張可能である(第43図に図示)。 しかし、使用するメモリのタイプによっては、キャッシ
ュ拡張モジュールへのアクセスが基本キャッシュ140
へのアクセスより遅くなる場合がある。かかる場合には
、待ち状態をクロック発生機構に入力すれば、サイクル
期間の長さは自動的に延長される。この機能を使用すれ
ば、はるかに低速で安価なメモリを拡張モジュール43
1Oで使用でき、しかも性能の低下をわずかに抑えるこ
とができる。 ホストはVMEバス・インタフェースを通してクロック
発生機4Mを制御できる。この制御により、ホストはク
ロック発生機構250を自走させるか、停止させるかを
選択できる。停止状態にあるときは、ホストはクロック
を1ステツプだけ進めることかでざる。制御プロセッサ
・モジュール110とデータ転送プロツセッサ・モジュ
ール120は共に1ステツプだけ一緒に進められる。 クロック発生機構に最後に入力される制御は、バイブラ
イン・クロック(これは正常動作する)を除くすべての
クロックを禁止する制御である。 これは、WO2のロード(または読取り)時に使用され
るが、これらの処置をとっても、制御プロセッサ・モジ
ュール110やデータ転送プロセッサ・モジュール12
0の内部状態が壊されることがない。これの使用例とし
ては、マイクロコード・デバッグ・セツションで中断点
がWO2に設定された場合がある。 デバッグ・ハードウェア 制御プロセッセ・モジュール110に含まれるデバッグ
・ハードウェアの殆どはすでに本明細書の各所で触れた
通りである。以下では、主要機能を要約する。 ホストは、読取り時と書込み時にマイクロアドレス・パ
ス211の制御権を受は取ることができる。 ホストはWO2220をロードし、再びそれを読み戻す
ことができる。 制御プロセッサ・モジュール110はVME発生割込み
(つまり、ホストからの割込み)を高優先度割込みとし
て受は取る。 ハードウェアによる中断点がサポートされており、中断
点は無制限にいつでも設定できる。 クロー・ロジックにより、ユーザのタスクはモニタ・タ
スクを1ステップ進めないで!ステップ進むことができ
る。 すべてのレジスタは読み書きであるので、多くの通常デ
ータ流れを診断時に反転させることができる。 クロック制御人力によりマイクロコードをlステップ進
めることができる。 すべての割込みは選択的にイネーブル(割込み可能)ま
たはディスエーブル(割込み禁止)させることができる
。 重要なロジック群の内部状態がアクセスできるので、制
御プロセッサ・モジュール110ハードウエアの状態を
完全な形で格納し復元することができる。 マイクロコード語の形式 第2B図は、FPモモジュール上置かれているWC52
20とWC5拡張部分に格納されているマイクロ命令の
構造を示した概略図である。幸印のついた項目はWO2
から直接に取り出され、これらが制御する製雪内部にバ
イブライン化されている。他の項目はW(:5220の
出力側のレジスタに格納される。 中傘印の付いたフィールドは物理的にはFPモモジュー
ル上WC5拡張部分に保管されているが、CPマイクロ
コード語の一部になっている。これらのマイクロコード
による処置の大部分はモジュール選択ロジックによって
修fiiliされるので、FPモジュールが選択されな
かった場合はなにも作用しない。 利用できるマイクロコード・ビットの総数は導入された
FPモジュール当たり96ビツトに追加の32ビツトを
加えたビット数である。これらのビットは大部分が使用
されるが、いくつかのビットは予備ビットとして用意さ
れている。 IPU演h−コード(32)申このフィールドはlPt
124[1整数プロセツサのデータ経路指定と算術また
は論理演算を制御する。フィールド内のビット割振りは
コーディングされる。すべての命令は下位24ビツトが
コーディングされる。上位8ビツトはデータをIPl
240のレジスタ・ファイルに転送するときだけ使用さ
れる。(このフィールドの詳細はlPt1に関するメー
カのデータ資料に記載されている。) シーケンサ演算コード(7)*このフィールドはADS
P 1401による次のアドレス生成を制御する。 (このフィールドの詳細はその部分のメーカのデ夕資才
4に記)敗されている。) 定数/次アドレス・フィールド(16)傘このフィール
ドは主にシーケンスにアドレス情報を与えるために使用
されるが、16ビツト定数値をデータ・バス上に送り出
すためにも使用できる。そのあと、これはこのバス上の
任意のレジスタにロードできる。 アドレス生成機構演算コード(+0) 傘このフィール
ドはADSP 1410アドレス生成機構を制御する。 (このフィールドの詳細はこの部分のメーカのデータ資
料に記載されている。) サイクル長さ(2)このビットは選択された命令とデー
タの経路指定に合ったサイクル長さを選択する。 データ・キャッシュ・アクセス(1)◆このビ・ソトは
データ・キャッシュ・メモリへのアクセスが自身で使用
するために、あるいはFPどの間でデータをやりとりす
るために、制御ブロセ・ンサ・モジュールから要求され
ると、活動化する。アクセス・フラグはバイブライン化
されていないので、データ中云送フ゛ロセンサ・そジコ
、−ル120からのデータ・キャッシュ要求との仲裁は
要求が出されたサイクルの開始面に解決される。 データ・キャッシュ書込みイネーブル(1)このビット
はデータ・キャッシュ・メモリでの書込みサイクルを発
生させる。 データ・キャッシュ書込みオール(1)このビットは通
常の書込みイネーブル・ゲート操作を無視して、データ
・キャッシュ・メモリ内の語の選択的更新を可能にし、
それらをすべて強制的に書き出させる。 データ・キャッシュ・ボート選択(1) このビットは
FPモジュールの保持レジスタまたは制御プロセッサ・
モジュール110の保持レジスタのどちらかを、データ
・キャッシュ中云送のソースまたは宛先として選択する
。 データ・キャッシュ・メモリ長さ(3)これらのビット
はFl’保持レジスタから取り出して、データ・キャッ
シュ・メモリに書き込まれる語の個数を指定する。保持
レジスタ内の最初の語はデータ・キャッシュ・メモリ・
アドレスの最下位3ヒツトで指定される。 条件コート通訳(3)このフィールドは条件付き命令の
実行時にシーケンサによってテストされる次に示した条
件コードの1つを選択する。条件コドとは、TPII
240条件コート出力、FP状況(別のフィールドによ
って選択された実際の状況)、FP中断点、マイクロコ
ード・ループ、フラグ(2項目)、保留状況である。 CDバス・ソース(3)このフィールドは以下に挙げた
レジスタ、バッファまたは装置の1つを選択して、CD
バスを駆動する。つまり、IPU 240、コマンド・
メモリ190、データ・キャッシュ・メモリの保持レジ
スタ561の1つ一千−ド・レジスタ、FPモジュール
◆、アドレス生成機構アドレス・ボート、アドレス生成
機構データ・ボート、シーケンサ・データ・ボート、定
数/次アドレス・フィールドである。(*ソースとして
使用する特定レジスタまたはバッファが別のフィールド
で指定されることを意味する。) CDバス宛先(3)このフィールドは以下に挙げたレジ
スタ、バッファまたは装Mの1つをCDバス上のデータ
の宛先として選択する。つまり、コマンド・メモリ、デ
ータ・キャッシュ・メモリ保持レジスタ、モード・レジ
スタ、FPモジュール(ソースとして使用する特定モジ
ュールは別のフィールドで指定される)、アドレス生成
機構アドレス・ボート、アドレス生成機構データ・ボー
ト、シーケンサ・データ・ボートである。 IPU 240が含まれていないのは、これはCDバス
上のデータをいつでも「取得」できるからである(この
機能はIPII命令フィールドによって制御される)。 アドレス・レジスタ制御(2)これらの制御ビットの一
方はアドレス・レジスタのローディングをイネーブルし
、他方のビットは診断とデバッグ・モニタが使用できる
ようにレジスタの読み戻しをイネーブルする。 モジュール連携(3)最上位ビット(同報選択)は残り
の2ビツト(モジュールID)をどのように解釈するか
を制御する。同報選択がOのときは、モジュール(10
)はデータ・キャッシュ・メモリかCDバスのどちらか
とのデータ転送に応答させる単一モジュールを選択する
。同報選択が1のときは、モジュールIDはどちらのグ
ループのFP(またはアルゴリズム高速化機構)をデー
タ転送に応答させるかを選択する。これにより、同じデ
ータを複数の宛先に同時に転送できるので、個々の書き
込みよりも高速化される。これはモジュールへ転送する
ときだけ有効であることに注意されたい。 というのは、複数の転送をモジュールから行なうと、デ
ータ・バスで競合が起こるからである。 モジュール選択モード(1)選択するモジュールがマイ
クロコード・モジュール・フィールドによって定義され
ているか、モード・レジスタによって定義されているか
を指定する。これにより、モジュールをサイクル単位で
も、あるいはグローバルにも選択できる。グローバル法
は存在するFPモジュールのいずれかで作業が行なえる
とき使用され、制御プロセッサ・モジュール110は転
送/計算サイクルを開始する前に使用すべきFPを選択
する。グローバル機能が使用可能でない場合は、個々の
FPモジュールに対応して異なる制御プロセッサ・モジ
ュール110のルーチンが存在することになる。 中断点(1) (傘中デバッグ専用幸◆)命令に中断
点を設けるためにデバッグ・モニタによって設定される
。命令の実行中に割込みが起こると、その命令の実行が
終ったあと、制御権がデバッグ・モニタ・マイクロコー
ドに渡される。 クロー(1)(中中デバッグ専用中中)ユーザ・タスク
を1ステツプ進めるとき、クロー・ロジックを始動する
ように設定される。次の命令の実行中に割込みが起こる
と、あるユーザータスクの命令が実行されたあと、制御
権がデバッグ・モニタ・マイクロコードに渡される。こ
れにより、ユーザ・タスクはクロックを物理的にオン、
オフに切り替えなくても、1ステツプ進めることができ
る。 割込みDTP (1)これは、16ビツト幅レジスタま
たは装Mh<読み取られるときのみ効力をもつ。この信
号はデータがゼロ拡張されているか(ビット1B−31
がゼロにセット)、符号拡張されているか(ビット16
−31がビット15と同じにセット)を選択する。 保留状況(1) このビットは、通常はシーケンサ21
0内部のFLAGレジスタの状態に従って更新される疑
似状況レジスタの更新を禁止する。通常、この疑似ビッ
トは内部レジスタの状態に従うが、割込みサービス中は
、この疑似ビットは更新されることから禁止される。こ
れにより、FLAGし・タスクは割込みルーチンから出
たとき、正しく復元されることになる。 FP条件コード選択(3)*中これらのビットは制御プ
ロセッサ・モジュール110のシーケンサにつながる共
通条件コード線を内部FPモジュール信号のうちのどれ
で駆動させるかを選択する。選択できるものには、cp
w屓T、 FPWAIT、バンク選択、直列ループ、c
p待ち割込み、FP待ち割込み、FP中断点、FPエラ
ーがある。 一ル上の内部レジスタ444のどれをCDバス経由で読
み書きするかを選択する(下位16ビツトのみ)。レジ
スタとバッファには、転送制御レジスタ、FP制御レジ
スタ、開始アドレス・レジスタ、命令レジスタ(8ビツ
ト)、状況レジスタ(ソースのみ)がある。 レジスタ方向(1)傘φこのビットはレジスタを読取る
か、書き込むかを選択する。 FP中断点クリア(1)◆傘このビットはFP中断点を
クリアして、FPクロックが動作するようにする。 開始アドレス・ジャンプ(1)傘傘このビットはFPシ
ーケンサに開始アドレス・レジスタ(制御プロセッサ・
モジュール110によ)てロードされた)を次に実行す
る命令のアドレスとして使用させる。これは「ワンショ
ット」動作で行なわれるので、FPが開始アドレスにあ
る命令の実行を終えると、FPシーケンサはその通常動
作モードに戻る。 転送制御(20)*中このフィールドは保持レジスタ4
20(FPモモジュール上)とFPモジュールの高速レ
ジスタ・ファイル430間のデータ転送を制御する。こ
こでは各サブフィールドが簡単に説明されているが、こ
れは転送メカニズム全体が明らかになれば、それらの使
い方か分かるはずであるからである。 方向(1) このビットは保持レジスタ420とレジ
スタ・ファイル430間の転送方向を判定する。方向は
保持レジスタからレジスタ・ファイルへと、レジスタ・
ファイルから保持レジスタへのどちらかである。 転送イネーブル(1) このビットは他のマイクロコー
ド・ビットとレジスタ格納IIJ御ビット(転送制御レ
ジスタ内の)で定義されている通りに、転送サイクルを
開始する。 レジスタ・ファイル・アドレス(6)ここで指定される
アドレスはデータがそこから読み書きされるレジスタ・
ファイル内の最初の語のアドレスである。 レジスタ・ファイル・アドレス修価子(2)これらはレ
ジスタ・ファイル・アドレスをどのように修師して、物
理的、論理的またはプレビュー・アドレス指定モート(
これらはすべて、レジスタ・ファイルを制御プロセッサ
・モジュール110とFP間でどのように弁用させるか
と係わりがある)をとり入れるかを指定する。 保持レジスタ開始アドレス(3)これは転送で最初に使
用する保持レジスタを指定する。 保持レジスタ開始アドレス・モード(2)保持レジスタ
開始アドレスは次の3ソースのいずれかから取り出され
るように指定できる。 1、前述したCPマイクロコード・フィールドから。 2、FPモジュールの転送レジスタに保持されているフ
ィールドから。 3、キャッシュへの最後のアクセスで使用されたアドレ
スの最下位3ビツトから。 ハンドシェイク・モード(3)ハントシェイク・モード
は制御プロセッサ・モジュール110とFPとのハンド
シェイクをFPWAITとCPWΔITの仕組とバンク
選択を通して(Ll)御する。これらのモードのいくつ
かは通常のハンドシェイキング・プロシージャを無効に
するので、主要信号をデバッグ目的に初期設定したり、
セットしたりできる。モートにはCPDONEセット、
レジスターファイル・スワップ要求、CPDONEセッ
トとスワップ要求、CPDONEクリア、テスト・モー
ド(診断だけに使用)、ノーオペレーションがある。 2重書ぎ みイネーブル(1)2重書き込みイネーブル
は、長さや開始パラメータで要求するものを転送する代
わりに、2語をレジスタ・ファイルに転送させる。これ
により、有効なデータにはデータ有効主張フラグが付け
られ、無効データにはデータ有効拒否フラグが付けられ
る。これらのフラグはどのデータ項目が有効であるかを
確かめるために、FPによってテストされる。 全保持レジスタ・クロックこのビットは、データをレジ
スタ・ファイルから保持レジスタに転送するとき、通常
の保持レジスタのクロック順序付けを無視する。このビ
ットが活動しているときは、すべてのレジスタは順次に
ではなく、−緒にクロックがとられて、レジスタ・ファ
イル・データが4コピーされてすべての保持レジスタに
格納ざhる。 データ転送プロセッサ・モジュール120753図はデ
ータ転送プロセッサ・モジュール120のブロック図で
ある。同図に示すように、DTPモジュール120にア
ドレス生成機構230のような独立のアドレス生成機構
110が含まれていない点を除けば、制御プロセッサ・
モジュール110と非常によく似ている。各プロセッサ
内の特殊目的機能が使用されない場合は、原理的には、
同しマイクロコード(ソース・レベルの)を両プロセッ
サで実行させることが可能である。 データ転送プロセッサ・モジュール120は16ビツト
・シーケンサ310で制御される32ビット整数プロセ
ッサ機構(IPIJ) 340をベースとした32ピツ
ト・マイクロコード・プロセッサである。データ転送プ
ロセッサ・モジュール120内の主データ通路は転送デ
ータ・バス(TDババス122である。 木実層側によるDTPモジュール120構成部分の多く
は制御プロセッサ・モジュール!10構成部分と非常に
よ(似ている。これら類似部分は同じ参照符号で示しで
ある。従って、シーケンサ310は書込み可能制御機構
320に対してマイクロ命令アドレス311の列を提供
する。シーケンサ310はレジスタ314を経由してT
Oババス22 とのインタフェースになるだけでなく、
マルチプレクサ312を通して条件コートを受は取り、
マルチプレクサ313を通して割込みを受は取る。制御
記憶機構320からアクセスされたマイクロ命令は出力
321 として得られ、レジスタ格納出力もレジスタ3
32を通して得られる。線311Bと225はホストか
らこの書込み可能制御記憶機構320へのアドレスとデ
ータのインタフェースとなる(これは下達する)。(線
324は直列アクセスで使用される書込みイネーブル線
である。)、直列/並列シフト・レジスタは非レジスタ
格納人力を受は取る装置の内部状態を格納するシャドウ
・レジスタである。16ビツト・シーケンサ・バス35
からも、16ビツト人力がシーケンサ310に送られる
。この入力はバッファされた゛入力であり、これは例え
ば、リテラル値を人力するために使用できる。 マイクロ命令321はレジスタ格納人力としてデコード
・ロジック360に送られる(シャドウ・レジスタ32
2経由で)。このデコード・ロジックの出力361は制
御入力して整数処理機構340、シーケンサ310、各
種インタフェース150.160.170に人力される
。特に、デコーダ360の出力はTDババス22へのア
クセスを制御する。TDババス22は外部インタフェー
スと、キャッシュ・メモリ140とのデータ・インタフ
ェースとなっている。デコーダ260の場合と同様に、
デコーダ360の出力が別に示されていないのは、これ
らの出力が広範にわたるからである。 整数処理機構340は制御プロセッサの場合と同様に、
Weitek XL8137を使用するのが好ましい。 (ただし、データ転送プロセッサでは、アドレス生成は
それ程重要でないので、アドレス生成機構を別に設ける
必要がない。)整数処理機構340はTI)バス122
との2ウエイ・インタフェースをもっており、レジスタ
341を通してTAババス21にアドレス出力を送り出
すこともできる。 データ転;スの制御 ソース・ボートと宛先ボートとの間でサイクルごとに1
転送ができるようにするためには、いくつかの要因を考
慮する必要がある。 1、転送のソースまたは宛先はFIFOでバッファリン
グされることがあるので、転送制御はFIFO上の満杯
と空のフラグに応答する必要がある。、これらの信号の
タイミングをシーケンサへの条件コード人力のパイプラ
イン化と併用すると、転送が1つだけオーバランするこ
とがある。FIFOへの転送の場合は、半満杯フラグが
使用されるので、これは問題でない。半満杯フラグを使
用すると、FIFOに予備容量が十分にあるので、オー
バランした1語または2語を受は入れることができる。 FIFOから読み取るときは、他の方式を使用する必
要がある。 empty+1”フラグをもつFIFO
を使用したり、FIFOデータをパイプライン段で遅ら
せるオプションは本好適実施例では使用されていないが
、これはコスト上の理由とスペース要求量の理由による
ものである。 この起こり得る問題を解決するために、2つの方法が用
意されている。これらの2方法のどちらを使用するかは
、宛先がメモリであるか、FIFOであるかによって決
まる。違いは、書込み操作がメモリでは元に戻せるが、
FIFOではできないことである。つまり、FIFOか
らメモリへのデータ転送がFIFOが空になったあとで
1語または2語に対して続けられると、エラー・データ
がメモリに書キ込まれることになる。しかし、このデー
タは正しいデータが使用可能になった時点で直ちに重ね
書きすることができる。 a、FIFoを読み取るときは、読取り信号は論理的に
FIFO空信号によって修師される。この結果、空のF
IFOを読み取ろうとしても、実際には読取り操作は行
なわれない。これにより、FIFO読取りがオーバラン
しても問題は起こらない、 FIFOは空のときは自身
を読取りから保護するが、この余分の制御が必要なのは
、オーバラン読取り時にFIFOの他側に書込みが行な
われるおそれがあり、そのためにデータが壊されるから
である。従って、データ巾云送フ゛ロセソサ・モジュー
ル+20がデータをメモリに転送するときは、FIFO
が空になると停止する。この時点でオーバランがすでに
起こっている。この場合は、DTPモジュール120が
アドレスを追跡できるので、データがFIFOで使用可
能になったとき、なにもなかったかのように転送が再開
される。 b、FIFoに書き込むときは、書込み操作は元に戻す
ことができない。従って、異なる方法が用いられている
。マイクロコードは、転送を始める前にソースFIFO
(と宛先FIFO)からの状況をテストする。このモー
トでは、転送速度は低下する。しかし、ソースFIFO
が半満杯以上になった場合は、マイクロコードは高速転
送子−トに切り替わる。この状態が起こったときは、ソ
ースFIFOの深さの半分までが空マークを通り過ぎな
いで読み出すことができる。従って、このモードでは、
DTPモジュール+20は状況検査のために停止しなく
ても、このサイズのブロフクを転送することができる。 受入れ側FIFOの状況は、それが半満杯以下てなけれ
は、なお検査が必要である。低速転送モートと高速転送
モード間を切り替えるこれと同じ手法をメモリにも使用
することができることは勿論である。 2シーケンサ310内の3ウ工イ分岐命令(BRANC
IIと呼ばれる)を使用すると、転送された語数を記録
しておき、FIFO状況信号をテストすることができる
。この方法によると、条件付き経路でIPU 340を
使用しないで済むので、サイクル長さを短縮することが
できる。 3データ・キャッシュ・メモリとの間のデータ転送を最
適化するために、TDババス22 とのデータ・インタ
フェースは、32ビツト・レジスタが8個用意されてい
るレジスタ・バンク560B (第5図参照)にバッフ
ァされる。これにより、DCMから見たとき、読取りと
書込みを完全に並列に行なうことができる。この経路に
は2重バッファリングがないので、長い転送(〉8浮動
小数点語)は自動的に中断されることになる。データ転
送プロセッサ・モジュール120は従って、メモリ・サ
イクルか現、1するまて転送を一時中止することになる
。この中断は辻続転送が使用されないで、より多くのメ
モリ・アクセス・サイクルが必要であるとぎ、頻繁に行
なわれることになる。 4、データ・キャッシュ・メモリの仲裁はCPモジュー
ルのサイクルの始まりで決定される。データ転送プロセ
ッサ・モジュール120が制御プロセッサ・モジュール
110と非同期に稼動していた場合(命令依存サイクル
時間を可能にするために)は、データ転送プロセッサ・
モジュール120は同期時間かl00nsまで、さらに
アクセス時間が100nsまで待たされる場合がある(
アクセス時間は、1tl(J i3nプロセッサ・モジ
ュール110に優先権があるので、さらに長くなる可能
性があり、[lTPモジュール120は空きメモリ・サ
イクルを待たなければならない。)さらに、シーケンサ
に対するマイクロコード命令とFLAG人力をバイブラ
イン化すると、さらに別の遅延が起こり、その間DTP
モジュールは転送が終ったかを確かめるためにループす
ることになる。 これらのd延を最小にするために、制御フロセンサ・モ
ジュール110とデータ転送プロセッサ・モジュール1
20は同しマイクロコード・クロック発生機構を共用し
ている。両プロセッサはそれぞれの1!適サイクル時間
を要求し、クロック発生機構は最も長いサイクル時間を
選択する。これによってどちらかのプロセッサの平均速
度が大幅に低下しないのは、命令の大部分が最短サイク
ル時間で実行されるからである。ループ時の遅延を克服
するために、仲裁は非レジスタ格納マイクロコード要求
ビットを用いて行なわれる。 この解決手法の唯一の欠点は、ハードウェアによる単一
ステップを用いるときは、両プロセッサに影舌を与える
ことである。 5、従って、FIFOがソースまたは宛先であるときは
、FIFO状況信号(場合によっては、データ・キャッ
シュ・メモリ仲裁信号)を転送時にモニタする必要があ
る。こわらの4個の状況信号(FIFO満杯、FIFO
半満杯、FIFO空、キャッシュ・アクセス許可)が−
回のサイクル内でモニタできるようにするために、デー
タ転送プロセッサ・モジュール120は多重ウェイ分岐
機能をもっている。これにより、テストすべき状況がジ
ャンプ・アドレスに挿入されるので、ジャンプする先の
アドレスはそのサイクル時の状況によって決まる。3つ
のFIFO状況状態は2ビツトにコード化され、仲裁信
号は3番目のビットを構成する。これにより、8ウ工イ
分岐が得られる。FIFO状況だけに関心があるときは
、仲裁信号はディスエーブルできるので、多重ウェイ分
岐は4ウエイに減らされる。 6制御プロセツサ・モジュール110(またはFPモジ
ュール130)が各サイクルでデータ・キャッシュ・メ
モリ140を使用中のときデータ転送プロセッサ・モジ
ュール120がキャッシュ・メモリからロックアウトさ
れるのを防止するために、割込みが用意されている。デ
ータ転送プロセッサ・モジュールがアクセスを拒否され
ると、転送承認信号でループを開始する。この状態にお
けるタイムアウトは簡単にテストして調べることができ
る。タイムアウトが起こると、データ転送プロセッサ・
モジュール120は制御プロセッサ・モジュール!10
に割込みをかけることができる。これによりデータ転送
プロセッサ・モジュール120はメモリ・アクセス・モ
ードから出て、再びデータ転送プロセッサ・モジュール
120はこのモードに入る。 整数プロセッサ機構340 IPU 340は、本好適実施例では、すでに述へた制
御プロセッサーモジュールllOのIPU 240とほ
ぼ同じである。 シーケンサ310と関連支援ロジック シーケンサ310は、本好適実施例では、すでに述べた
制御プロセッサ・モジュール110のシーケンサ210
とほぼ同じである。 シーケンサ支援ロジックには、割込み、条件コード選択
、マイクロアドレス・バス、定数/次アドレス・フィー
ルドの4種類がある。 割込み シーケンサは4つの割込み人力ピンをもっているだけで
ある。従って、この数を8に拡張するために、外部マル
チプレクサ313が使用される。割込みは主に連絡とデ
バッグ・ツールのサポートのために使用される。 割込み発生源(優先度順)は次の通っである。 クロー・ロジックと中断点:この割込みレベルはクロー
・ロジックと中断点ロジックの間で共用される。これら
の2割込みタイプの機能は、制御プロセッサ・モジュー
ル110内のシーケンサ210の機能と関連づけて上述
した通りである。 VMEバス(デバッグ):VMEバス割込みは通常デバ
ッグ・そニタをサポートする目的だけに使用されるので
、正常動作時には使用されない。 VMEバス(コマンド) この割込みレベルは、コマンドがコマンド・レジスタに
保管されるとセットされる。 制御プロセッサ(コマンド):この割込みが起こると、
制御プロセッサ・モジュール110はコマンドがDTP
コマンドFIFOにあることをデータ転送プロセッサ・
モジュール120に通知することができる。傘傘 のデータを受は取ったか(入力FIFO) 、データが
なくなったので(出力FIFO) 、 VMεインタフ
ェース内のデータFIFDにアテンションが必要である
ことをデータ転送プロセッサ・モジュール120に通知
するために使用される。◆ GIPインタ7 、z−ス: GIP割込みはGIP
FIFO状況信号によって引き起される。* データ・パイプ・インタフェース:この割込みレベルは
、ある種のデータを受は取ったのでデータ・パイプ・イ
ンタフェース内のFIFOの1つにアテンションが必要
になフたとき、データ転送プロセッサ・モジュール12
0に通知するために使用される。申 マイクロコード拡張インタフェース:この割込みは拡張
カード(例えば、大容量メモリ・カードやネットワーク
・カード)のいずれかで使用するために予約されている
。 注意:*印の付いた割込みは通常の条件コード・ロジッ
クでテストできるので、それが望ましい場合はポーリン
グか可能である。 ・・印の付いた割込みの場合は、割込み状態を弓き起し
た事象は、ソフトウェアFIFOデータ構造内の制御情
報を調べることで検出することができる。割込みを使用
しない場合は、これをポーリングすることが可能である
。 割込み数を拡張するためにマルチプレクサ313を使用
する場合は、4つの高優先度割込みレベルと4つの(I
lj f!先度割込みとの間でタイミング条件が異なる
ことになる。高優先度割込みであることを認識するため
には、割込みをマイクロコード・クロックの立上がり縁
の25ns前に引き起す必要がある。低優先度割込みの
場合は、その期限は立下がり縁の15ns前である。 割込みを引き起すために、対応する割込み入力は1クロ
ック期間高に保持される。ハードウェアによる割込み承
認サイクルは必要ないので、割込みを引き起すハードウ
ェアは非常に単純である。 条件フード・ロジック シーケンサはFL八へと名付けた条件コード入力端を1
つもっているので、1−へてのテスト可能状況信号は多
重化されてこのビンに人力される。これは内部レジスタ
に格納され、通常セットアツプ時間はIRQにマスクが
かけられているときは(カウンタ・アンダフロー割込み
) Ionsであり、イネーブルされたときは26ns
である。FLAG入力端の極性はシーケンサ内部で変更
することが可能である。 (以下余白) DTPモジュールはCPモジュールと同様に、第40A
図に示すような疑似レジスタ・ロジックを備えている。 (これは割込み処理から戻るときの問題を避けるための
ものである。) テスト可能な状況信号には、次のものがある。 IPo 340条件コード出力(coND) :この信
号は現命令の状況を中継する。IPU 340がこのビ
ンから出力する特定条件はマイクロ命令でコーディング
される。 マイクロコード・ループ:これはVMEインタフェース
制御レジしタスの状況ビットであり、診断ソフトウェア
で使用されるものである。 以下に挙げたFIFOに対するFIFO状況信号:デー
タ・パイプ人力#1(半満杯と空)、データ・バイブ人
力#2(半満杯と空)、データ・バイブ出力#l(満杯
)−データ・パイプ出力#2(満杯)−シMεデータ入
力(半満杯と空) 、 VMEデータ出力(半満杯と空
)、GIPインタフェース(入力)(半満杯と空)、G
IPインタフェース(出力)(満杯、半満杯と空)。*
印の付いた信号は別すブシステ11上の受入れFII’
Oから出されるものである。 データ・キャンシュ・メモリ・サイクル承認:これはデ
ータ・キャッシュ・メモリへのアクセスが許可されたこ
とを示す。 マイクロコード拡張インタフェース条件コード信号:こ
れは状況をデータ転送プロセッサ・モジュールのシーケ
ンサ310に返却するためにいずれかの拡張インタフェ
ース180によって使用される。 DMAバス・エラm:この状況ビットは、VMEバス上
のDMA転送がバス・エラー発生が原因で途中で打ち切
られたとき活動化する。このエラーが最も起こり得る原
因としては、存在しないメモリがアドレス指定された場
合がある。 書込みフラグ0と1:これらの2信号はデータ・キャッ
シュ・メモリ書込みロジックの内部状態をアクセスしや
すくする。これらは、デバッグ・モニタにある状態スレ
ーブと復元マイクロコードだけによって使用される。 保留状況:これは、割込みから戻るときテストされ、そ
の結果、条件付きジャンプなどが割込みサービス・ルー
チンへのジャンプによってディスエーブルされていても
、正しく実行される。 IPo 340からのGONO出力は、100nsでサ
イクルするときは、シーケンサのセットアツプ時間に間
に合わない程遅れて有効化される(特に、マルチプレク
サによって遅延されたとき)。この条件をテストすると
きは、クロックを125nsまで延長する必要がある。 ”fc)r 1oops”は、シーケンサ内部のカウン
タの1つを使用すると、とり入れやすくなり、IPU3
4Gをアドレス計算から解放することができる。勿論I
PU 340を使用しても可能であるが、サイクル時間
が長くなり、それだけ余分のオーバヘッドが生じること
になる。 条件コードは24:lマルチプレクサ312を通して多
重化されて、シーケンサ310のFLAG入力端に入力
される。シーケンサは選択した条件コード信号の極性を
内部レジスタに格納して、それを選択する。 マイクロアドレス・バス111 マイクロアドレス・バス311は、2つのソースつまり
、正常プログラム実行時にはシーケンサ310から、マ
イクロコードのロード時にはVMEバスから駆動させる
ことができる。 VMEバスはマイクロアドレス・バス
311の内容を読み取って、シーケンサ310がどのア
ドレスにあるかを確かめることもできる。これはシーケ
ンサ動作と非同期に行なわれ、主に診断で使用される。 このバスの拡張部分は311B線で示されているように
、ホスト・インタフェース・ロジック160に結ばれて
いる。 定数/次アドレス・フィールド これは、シーケンサ210に関連して上述したもとのは
全く異なる方法で使用される。DTPモジュール120
では、マルチウェイ分岐機能を向上するためにいくつか
の新規なロジックが使用されている。このロジック(お
よびマルチウェイ分岐でのその用法)について、以下説
明する。 マルチウェイ分岐 第3八図と第3B図に示す実施例では、マイクロコード
・システムにおけるマルチウェイ分岐に新規な機能がい
くつか追加されている。第30図は、アドレス境界の制
約を受けることなくマルチウェイ分岐を行なうために本
好適実施例で採用されているマイクロコード動作を概略
図で示したものである。 第3八図から明らかなように、定数/次アドレス・フィ
ールド(マイクロ命令フィールドからのもの)はバッフ
ァ317に対して設けられただけでなく、マルチウェイ
分岐ロジック318に対する入力ともなる。マルチウェ
イ分岐ロジックはマイクロコード・アーキテクチャに新
規な機能をもたせる仕方でこの信号を処理することがで
きる。このマルチウェイ分岐ロジックに対する他の人力
としては、PIF状況信号、およびシフト・コマンド(
これはシーケンサ310によって実行されるマルチウェ
イ分岐ステップにおいて、代替宛先間の増分を変えるた
めに使用される)がある。 第3B図は詳細図である。マイクロ命令バス311から
の定数フィールド(16ビツト)は分割されてPへL
318とバッファ317に対する人力が得られる。共通
イネーブル信号は、マルチウェイ分岐操作が望ましいと
き、これらの両方を活動化するために使用される。(勿
論、シーケンサ・バス315は他にも用途が多数あるの
で、マルチウェイ分岐操作が必要になるのはまれである
。)さらに、定数/次アドレス・フィールドは、単純な
ジャンフ操作でもよく使用され、そのような場合には、
マルチウェイ分岐操作が必要になる。 第30図は、マルチウェイ分岐ロジックの内部操作をさ
らに詳しく示している。条件選択/コード化ロジックに
は、各種条件および状況信号が用意されている。これは
これらの条件を選択し、コード化して、分岐で使用でき
る3ビット信号を得るものである。 マルチウェイ分岐ロジックは以下で詳しく説明するよう
に、いくつかのマイクロ命令ビットで制御される。 この種のマルチウェイ分岐ロジックをモジュール120
のようなデータ転送プロセッサで使用すると、特に利点
、が得られる。その場合には、装置条件信号を選択/コ
ート化ロジック301Oに対する条件人力として使用で
きる。そうすれば、データ転送プロセッサはかなり複雑
なインタフェースに対して高度の制御を行なうことがで
きる。関心のある状況信号が現れると、マルチウェイ分
岐ロジックはその条件を処理するのに相応しいルーチン
に直ちに■3ることができる。マルチウェイ分岐機能に
より、シーケンサは複数の装置の条件を1回のサイクル
でテストすることができる。つまり、DTPモジュール
120は各サイクルごとにデータ中云送を行なうことが
できる。この結果、1つだけの条件コード(FL八へ)
入力端をもつシーケンサは複雑な制御を行なうこともで
きる。 本好適実施例では、選択/コード化ロジック3010に
対する人力には、下達するように4個のFIFOからの
状況ビットがある。しかし、他の様々な人力構成を使用
できることも勿論である。 シフト入力はシフトとマージ・ロジックに対するもので
ある。これは、マルチウェイ分岐の宛先間の増分を変え
ることを可能にする。 第30図の右側はシーケンサ310か相対アドレス指定
機能をもつことを概略図で示したものである。この機能
をマルチウェイ分岐機能と併用すると、アドレス境界の
制約を無視できる。これはデータ転送プロセッサでは特
に利点がある。この種のプロセッサはデータ転送を小刻
みに行なえる能力が要求されるので、マルチウェイ分岐
命令を多数含めておくことが望ましい場合がある。アド
レス境界の制約がなくなったので、この種の命令を大量
に使用できる。 本好適実施例では、プログラム・カウンタがジャンプ宛
先に対する人力として使用されている。 これは、従来の多数のマルチウェイ分岐では、宛先ベー
ス・アドレスを別のソースから得ていたものと異なるも
のである。 書込み制御記+!!機構(WC5) 320WC5はマ
イクロコードSILモジュールを用いて構成されている
。これらは8に×32ビット・メモリであり、マイクロ
コードと診断機能をロートするための直列走査バ〜tブ
ライン・レジスタを備えている。このモジュールは2種
類のものが使用される。レジスタ格納出力と非レジスタ
格納出力である。IPLI 340 とシーケンサ31
0は独自の内部バイブライン・レジスタをもっているの
で、非しタスタ格納版を使用する。 WCSインタフェース・レジスタ322と323は制御
プロセッサ・モジュールの個所で上述したWCSインタ
フェース・レジスタ223と222と同じ働きをする。 DMAコントローラ DTPモジュール120の重要な機能は、VMEインタ
フェース160と、場合によっては、1つまたは2つ以
上の他のインタフェースにある1つまたは2つ以上のD
MAコントローラを制御することである。この機能は、
それぞれのインタフェースと共に、以下で詳しく説明す
る予定である。 モート・レジスタ303は、使用頻度が低く、マィクロ
コ−1・・ヒントを専用させるたけのJ1山・がないH
il制御信号のイ
【αを保持するものである。モート・
ビットには、読取り保持レジスタを通る流れとレジスタ
制御、書込み保持レジスタを通る流れとレジスタ:1制
御、マイクロコード拡張インタフェースにおいて割込み
承認信号を駆動する外部割込み承認信号、GIP割込み
要求、保持レジスタに対するループバック・モート、2
個のLE[1制御信号がある。 TDババスデコード このロジック(これはデコーダ360の最も重要な機能
の1つである)は、マイクロコードTD/ −スをデコ
ード化し、TDババス22を駆動できる装置の出力イネ
ーブルをその結果に応じて制御する。 また、このロジックはTD宛先フィールド(クロック発
生機構250からの書込みゲート信号で修師されている
)もデコート化して、スロープと書込みイネーブル信号
を発生する。TDババス22上のボー[−の大部分は読
み書きができるので、IPLI上の疑似レジスタは不要
である。 TDババスソースおよび宛先になり得るものとしては、
IPII 140、VMEインタフェース・メモリ、コ
マンド・メモリ、データ・キャッシュ・メモリ保持レジ
スタ560B、モード・レジスタ(8ビツト)、シーケ
ンサ・データ・ボート車中、定数/次アドレス・フィー
ルド(ソースのみ)傘車、VMEデータFIFO、デー
タ・パイプl、データ・バイブ2、GTP FIFO*
*、割込みベクトル・レジスタ(8ビツト) 、DMA
制御レジスタ、DMAコントローラーアドレス・カウン
タ◆、DMAコントローラー語カウンタ傘がある。*印
の付いたソースはDMAコントローラ命令によってデコ
ードされる。通常のTOババス御フィールドの一部とし
てはデコードされない、、**Epの付いたソースは、
下位16ビツトだけを駆動する。これらの1つが選択さ
れると、符号/ゼロ拡張PAL 216も活動化される
ので、データは32ビツトのバス幅まで符号またはゼロ
で拡張される。 1つのソースと1つの宛先だけが選択可能であるので、
これらは異なっていなければならない。 IPII 340へのデータ転送はIPII 340の
命令フィールドの制御を受けて行なわれるので、データ
が別の宛先にロードされているのと並行してデータをT
Oババス22から取り出すことができる。 クロック発生機構 上述したように、クロック発生機構250は、データ転
送プロセッサ・モジニール120全体を通して使用され
る基本クロック信号を発生する。 デバッグ・ハードウェア データ転送プロセッサ・モジュ・−ル120に含まれる
デバッグ・ハードウェアの大部分はいくつかの個所で前
述した。これらをここで要約して示すと、次の通りであ
る。マイクロアドレス・バス311(読み取りと書込み
の両方)のホスト制御、ホストによるWC5のローディ
ングと読み戻し、DPTのアテンションを得るためのV
ME生成割込み、ハードウェアによる中断点サポート(
中断点は数に制限されずに、いつでも設定可能)、クロ
ー・ロジック(これにより、ユーザ・タスクはモニ・タ
スクを1ステップ進めないで1ステップ進むことかでき
る)、すべてのレジスタが読み書きであること、マイク
ロコードを1ステップ進めるためのハードウェアによる
クロック制御、すへての割込みが選択的に割込み可能ま
たは割込み禁止できること、重要なロジック群の内部状
態に対するアクセス(これにより、DTPモジュールの
ハードウェア状態を完全に格納し、復元することができ
る)などである。 マイクロコード語の形式 マイクロコード語の形式の概要を示したのが第3C図で
あり、次のように定義されている。 *印の付いた項目は直接にWC5から取り出されて、こ
れらが制御する装置内部でパイプライン化される。 使用可能なマイクロコード・ビットの総数は96ビツト
である。これらのビットは大部分が使用されるが、その
いくつかは予備として以下のフィールドから除かれてい
る。 rpu 7寅算コード(32)申 :このフィールドは
lPt1340整数プロセツサのデータ経路と算術また
は論理演算を制御する。フィールド内のビットの割振り
はコード化されているが、詳細はWej tekデータ
資料に記載されている。すべての命令は下位24ビツト
がコニド化されており、上位8ビツトはデータをIPU
340のレジスタ・ファイルに転送するときだけ使用
される。 ジーケンサン寅算コード(7)ウニこのフィールドはA
DSP 1401による次のアドレス生成を制御する。 命令セットはデータ資料に記載されている。 定数7次フィールド(16)傘:このフィールドは主に
アドレス情報をシーケンサに与えるために使用されるが
、16ビツト定数値をデータ・バス上に送出するために
も使用できる。その場合は、これはこのバス上のレジス
タのいずれかにロードすることが可能である。 マルチウェイ分岐選択(21*:このフィールドはマル
チウェイ分岐操作時にFIFO状況信号のどちらのセッ
トを使用するかを選択する。選択できるもノニμ、VM
E人力FIFO1GIP人力FIFO、データ・バイブ
1人力FIFO、データ・バイブ2人力FIFO1があ
る。 マルチウェイ・シフト;ト制御(2):これはマルチウ
ェイ分岐状況−1l″1報がビット位@O、ビット位置
1、ビット位置2から挿入されること、あるいは全く挿
入されないことを選択する。シフト要因は多様化されて
いるので、マルチウェイ分岐内の各入口点をそれぞれ、
1.2または4命令の長さにすることができる。 マルチウェイ分岐転送イネーブル(1):このビットは
キャッシュ・メモリ・アクセス許可信号をFIFO状況
と結合するのを可能にしたり、禁止したりするものであ
る。このビットが使用されないときは、マルチウェイ分
岐は4ウエイであり、使用されるときは、8ウエイであ
る。 サイクル長さ(2)、このフィールドは選択された命令
とデータ経路に合ったサイクル長さを選択する。 データ・キャッシュ・アクセス(114:このビットは
、データ・キャッシュ・メモリへのアクセスがデータ転
送プロセッセ・モジュール120によって要求されると
活動化する。 データ・キャッシュ書込みイネーブル(1) この
ビットはデータ・キャッシュ・メモリへのアクセスが許
可されると、データ・キャッシュ・メモリで書込みサイ
クルを発生させる。 データ・キャッシュ書込みオール(1):このビットは
通常の書込みイネーブル・ゲート操作を無効にして、デ
ータ・キャッシュ・メモリ内の語の選択的更新を可能に
し、すべての語が書き込まれるようにする。これは、ア
クセスが許可されたときだけ、データ・キャッシュ・メ
モリ書込みサイクルを発生させる。これはメモリ・ブロ
ックを定数値にセットするときに便利である。 条件コード選択(5):このフィールドは条件付き命令
の実行時にシーケンサにテストさせる以下に挙げた条件
コードの1つを選択する。つまり、IPo 340条件
コード出力、マイクロコード・ループ、書込みフラグ(
2項目)、データ・バイブ人力FIFO#1(半満杯と
空)、データ・バイブ入力FTFO#2 (半満杯と空
)、データ・バイブ出力PIFO#1(満杯)、データ
バイブ出力FIFO#2 (満杯)V!IIEデータ
入力FIFO(半満杯と空) 、 VMEデータ出力F
IFO(半満杯と空) 、GIPインタフェース(人力
)(半満杯と空)、GIPインタフェース(出力)(半
満杯と空)、データ・キャッシュ・メモリ・サイクル承
肥、マイクロコード拡張インタフェース条件コート・イ
ンタフェース、DMAバス・エラー、保留状況である。 保留状況(1):このビットは通常はシーケンサ210
内のFLAGレジスタの状態に従う疑似状況レジスタの
更新を禁止する。通常、この疑似ビットは内部レジスタ
の状態に従うが、割込みサービスの実行中は、更新され
るのを禁止される。こわにより、FL八へレジスタは割
込みルーチンから出たとき正しく復元される。 TDババスソース(4):このフィールドはTDババス
駆動させる以下に挙げたレジスタ、バッファ、または装
置の中から1つを1択する。つまり、IPII :14
0、コマンド・メモリ、VMEインタフェース・メモリ
、データ・キャッシュ・メモリ保持レジスタ、モート・
レジスタ、シーケンサ・データ・ボート、定数/次アド
レス・フィールド、シーケンサ・データ・ボート、定数
/次アドレス・フィールド、VMEデータFTFOデー
タ・ボート、データ・バイブ2、GIP FIFO1割
込みベクトル・レジスタ(8ビツト)、DMA制御レジ
スタ、DMAコントローラーアドレス・カウンタまたは
DMAコントローラー語カウンタである。 TDババス先(4):このフィールドは以下に挙げたレ
ジスタ、バッファまたは装置の1つをTI)バス上のデ
ータの宛先として選択する。つまり、コマンド・メモリ
、VMεインタフェース・メモリ、データ・キャッシュ
・メモリ保持レジスタ、モード・レジスタ、シーケンサ
−データ・ボート、定数/次アドレス・フィールド、シ
ーケンサ・データ・ボート、VMEデータFIFOデー
タ・バイブ1、データ・バイブ2、GIP FTFO1
割込みベクトル・レジスタ(8ビツト) 、 DMA制
御レジスタ、DMAコントローラーアドレス・カウンタ
、DMAコントローラー語カウンタである。 IPU :140が上に挙げたものの中に含まれていな
いのは、これはTDバスーヒのデータをいつでも「取1
11 Jできるからである。この機能はTPtl命令フ
ィールドによって制御される。 アドレス・レジスタ制御(2):これらの制御ビットの
一方はアドレス・レジスタのローディングを可能にし、
他方のビットはレジスタの読み戻しを可能にして、診断
とデバッグ・モニタで使用できるようにする。 中断点(1) <44デバツグ専用傘*):命令に中
断点を設けるためにデバッグ・モニタによって設定され
る。この結果、命令の実行中に割込みが起こると、その
命令の実行を終えたあと制御権がデバッグ・モニタ・マ
イクロコードに渡される。 クロー(1)(Φ牟デバッグ専用中り :ユーザ・タス
クを1ステップ進めるときクロー・ロジックを始動する
ために設定される。この結果、次の命令の実行中に割込
みが起こると、ユーザ・タスクのある命令が実行された
あとで制御権がデバッグ・モニタ・マイクロコードに移
される。これにより、ユーザ・タスクはクロックを物理
的にオン、オフに切り替えなくても1ステップ進むこと
ができる。 毘ム配力」ぜ」υ−:これは制御プロセッサ・モジュー
ルに3レベルのうちのルベルで割込みを引き起すもので
ある。これらのレベルは次のように割り振られている。 つまり、ホストから新しいコマンド受信、データ転送終
了、データ・キャッシュ・メモリへのアクセス権解放で
ある。 ゼロまたは符号拡張(1):このビヅトは16ビツト幅
レジスタまたは装置が読み取られるときだけ効力をもつ
。その場合には、データをゼロで拡張するか(ビット1
6−31がゼロにセット)、符号で拡張するか(ビット
16−31がビット15と同じにセット)が選択される
。 DMAコントローラ命令(3):このフィールドはDM
Aコントローラに対する命令を制御する。命令には、内
部レジスタの読み書き、レジスタの再初期設定、アドレ
スを増分(減分)または語カウンタを減分する通常のD
MA動作を扱うものがある。 マイクロコード1広弓長バス マクロコート拡張バスは基本マイクロコーF・サーヒ′
スをオフボードで拡弓長するものである。これは、拡張
周辺ボード上のある種のインタフェースを制御したり、
周辺ボード全体を制御したりするために使用できる。こ
れらの使い方の代表例として、大容量メモリ・カードや
ネットワーク・インタフ二一スーカードとのインタフェ
ースとなることである。 拡張バス・インタフェースは電気的および機械的にGI
P上の拡張インタフェースと同じであるので、これらは
どの共通拡張カードでも共用することができる。 拡弓長コネクタは96ウエイDINコネクタであり、そ
こに現れる信号には、次のものがある。3ビット−スラ
イス・クロック[注1コ、パイプライン・レジスタ・ク
ロック[l]、マイクロアドレス・バス311B(15
ビット)[2]、TDババス22(32ビツト)[3]
、リセット、WC5出力制御、パイプライン・レジスタ
出カニ田御イネーブル、WC5g込みイネーブル324
、パイプライン・レジスタ・モード制御、直列クロック
、直列データ・イン、直列データ・アウト(マイクロコ
ードのローディングで使用)、外部割込み[4]、割込
み承認、条件コード[4]。信号は上で注記したものを
除きすべてTTLレベルにある。つまり、[1]これら
の信号は差分ECLレベルにある。[2]これらの信号
は信号コード化ECLレベルにある。[3]このバスは
32ビツト幅であるが、目的によっては、2個の16ビ
ツト・バス、つまり、−次データ・バスと二次データ・
バスとみなすことができる。 [4]これらの信号はオープンしているコレクタ・バッ
ファによって駆動される。 ある種のECL信号をこのインタフェースで使用すると
、ボード間のクロック・スキュー効果を最小にするので
好都合である。 数値プロセッサ・モジュール130 本好適実力ζ例では、数値プロセッサ・モジュール13
0は浮動小数点プロセッサである。従って、このモジュ
ールNOは浮動小数点プロセッサ・モジュール(または
rFPモジュール」)とも呼ばれることがある。しかし
、このモジュールは他のデータ型(データ・タイプ)用
に、例えば、複素数算術演算モジュールとして、あるい
は広幅整数演算用モジュールとして構成することも可能
である。このモジュールが広い意味で数値プロセッサ・
モジュール130とも呼ばれるのはこのためである。 本好適実施例では、浮動小数点プロセッサ・モジュール
130は浮動小数点プロセッサとキャッシュ・メモリ間
のデータ転送を統御する制御/インタフェース・ロジッ
クと非常に密に結合されている。この制御/インタフェ
ース・ロジックは制御プロセッサのマイクロコード・ク
ロックによりてクロックがとられるので、制御プロセッ
サのマイクロ命令の拡張部分で制御するのが好ましい。 本好適実施例では、浮動小数点プロセッサ・モジュール
130と制御/インタフェース・ロジック(CP拡張ロ
ジック)は主基本ボード(ここには、キャッシュ・メモ
リ140と制御プロセッサ・モジュール110の主要部
分が置かれている)に差し込まれる別個のサブボード上
に一緒に(菩載されている。 追加モジュール130が使用される場合は、その各々に
は制御/インタフェース・ロジックの一部が置かれるこ
とになる。 本実施例のアプリケーションでは、この制御/インタフ
ェース・ロジックは制御プロセッサ・モジュール110
の拡張と見られているが、この制御/インタフェース・
ロジックがモジュール110の一部であるか否かに関係
なく、本アプリケーションでは、このロジックのタイミ
ングと制御特性に関して重要な新規事項がいくつかとり
入れられている。 本好適実施例では、32ビツト・データ構造が使用され
ている。各浮動小数点数は32ビツトで表されるので、
32ビット車位は浮動小数点数(または「F語」)とも
呼ばれる。本好適実施例では、数の形式は小数部が24
ビツト、指数部が8ビツトになっている。これは選択的
にIEEE形式にすることも、DEC形式にすることも
可能である。 浮動小数点プロセッサ・モジュールNOの内部動作につ
いて、まず説明する。そのあとで、制御プロセッサ・モ
ジュール110およびキャッシュ・メモリ140とのイ
ンタフェースの機能について詳しく説明する。 第4八図から第4D図までは、数値処理モジュール13
0の主要部分を示したものである。本好適実施例では、
第4八図は制御プロセッサ・モジュール〕30とのイン
タフェースとなるために使用されるインタフェース・ロ
ジック410の概略図である。 第4B図はモジュール130内のデータ通路の主要部分
の一部を示している。第4C図はマイクロコードのアク
セスとデコード化のとき本好適実施例で使用されるロジ
ックを示している。第40図は本好適実施例で浮動小数
点モジュールに使用されるマイクロ命令形式を示してい
る。 実際の数値計算が高速で行なわれる浮動小数点算術演算
機構について最初に説明する。そのあと、FPモジュー
ル130 と低速モジュール間のクロック境界をまたい
でデータ転送が行なわれる2重バッファリング操作につ
いて説明する。次に、データ転送の追加段(その大部分
はCPモジュール110の拡張部分によって制御される
)について説明する。最後に、算術演算機構を統御する
プログラムについて説明する。 浮動小数点算術演算機構(FPU) 本好適実施例の浮動小数点算術演算機構は非常に単純化
されており、高速で動作する。この通路には、浮動小数
点乗算機構、浮動小数点ALU (算術および論理演
算機構)、高速多重ボート・レジスタ・ファイルが含ま
れ、これらはすべて高速で単純化されたシーケンサによ
って制御される。さらに、スクラッチパッド・メモリが
内部データ通路と密結合されて、参照テーブルを保存し
、ヒストグラム記憶またはデータ・スタックとして動作
する。 2レベル・データ通路のトポロジは第16図に分かりや
すいように示されている。低レベル・データ通路とその
構成要素は浮動小数点算術演算機構(FLII) と
呼ばれるものである。FPUは、高速レジスタ・ファイ
ル440、八1.U 450、スクラッチバ・ント・メ
モリ1610、局所ハス431.432.433.43
4から構成されている。 算術計算機4J 440と450 浮動小数点プロセンサ・モジュール130で使用される
浮動小数点計算機構には浮動小数点乗算機構FMPY)
440と浮動小数点算術論理演算機構(FALU)
450がある。両方とも、内部アーキテクチャは非常に
よく似ている。唯一の違いはデータの扱い方であり(演
算操作が異なることを別として) 、FALLIに累積
演算のための余分のフィードバック通路が設けられてい
ることである。 本好適実施例では、Bipolar Integrat
ed Tech−nologies (IT)社程偶の
集積回路(浮動小数点チップ・セットとレジスタ・ファ
イル)が次のように使用されている。BITの部品番号
とこれらに準じるアナログ装置番号は、乗算機構440
:B2110またはへ〇5P7110.AL口450:
B2120 または八〇5P7120、レジスタ・ファ
イル430:、B2210または八DSP7210であ
る。乗算機構440とALU 1150および高速レジ
スタ・ファイルは、実際には、ECLゲートを内部に使
用している。しかし、これらのインタフェースと電源は
TTLである。これらの算術演算チップは完全な64ビ
ツト・データ通路を内部にもち、外部に32ビツト・イ
ンタフェースをもっている。従って、これらのチップは
高速64ビツト演算を行なう能力をもち、必要に応じて
多重化データ転送を利用する。 FMPY 440とFALtl 450はそれぞれ、オ
ペランド用の2個の32ビツト幅人力ボートXとY−(
それぞれ局所オペランド・バス431と432に結ばれ
ている)と、結実用の32ビツト幅両方向ボートT(局
所結果バス433に結ばれている)を備えている。 計算機構の人力ボートの各々はラッチとマルチプレクサ
を備え、出力ポートはマルチプレクサを備えているので
、64ビツト幅の数を出し入れして転送できるようにな
フている。 2計算機構の結実用ボートは並列に接続されている(結
実用バス433に、従って、レジスタ・ファイルの書込
みボート430Dに)。これにより、計算機構は外部マ
ルチプレクサを使用したり、データをレジスタ・ファイ
ルあてに送ったりしなくてb、データを交換し合うこと
ができる。これは、例えば、積の和を求める計算を行な
うとき便利である。また、この機能を利用すると、スク
ラッチパッド・メモリ161Oとの間で高速にデータを
やりとりすることができる。しかし、この構成には、F
MPY 440とFALII 450の両方を同時に活
動化できないという制約がある(ただし、積の和を求め
る演算は除く)。これは出力ポートが一緒に結合されて
いるからである。これらのボートを別々にしたとしても
、両方の装置はレジスタ・ファイル430からの同じデ
ータ通路を共用するので、入力側に問題が起こることに
なる。 実際に使用される算術演算機構は人出力ボートを柔軟に
構成できるので、これらのボートをレジスタしたり、透
過にしたりできる。しかし、本好適実施例では、この機
能は使用されていない。ボートはすべてレジスタされる
。両計算機構の内部データ通路と機能44位はすべて6
4ビツト幅であり、−!IL精度(sp)と倍精度(D
P)のどちらの演算も行なうことができる。 FMPY 440での機能単位は4個の算術演算命令を
サポートしている。最小サイクル時間(ナノ秒単位)は
どちらの精度の場合も、次の通りである。 単精度 倍精度 乗算 4059 除算 200 30’0平方根
300 600バス 405
0 整数乗算 45 FALtl 450での機能単位は浮動小数点命令、整
数命令、変換命令といったように幅広くサポートしてい
る。詳細については、メーカのデータ資料に記載されて
いる。すべての浮動小数点命令(単精度と倍精度)は最
小実行サイクル時間は25nsであり、整数演算はすべ
て12ns、変換はすべて25nsで行なわれる。 最もよく使用される命令には、次のものがある。 浮動小数点:加算と減算(符号付きまたは絶対値)、絶
対値、否定、スケール、マージ、正規化、比較。 変換: SP−>ビット整数、 なし、 SP −>54 ビット整数、なし。SP <
−32ビツト整数、 なし。SP <−61ビツト整数、 なし。DP−>32ビツト整数、 なし。DP−>64ビツト整数、 なし。DP <−32ビット整数、 なし。DP <−64ビット整数、 なし。SP−>DP、OP −>SP。 整数:加算(0,l、桁上げ)、減算(0,1,桁下げ
)、 最大値(符号付きまたは符号なし)、 最小値(
符号付きまたは符号なし)、論理、シフト(論理または
算術)、回転、ビット反転。 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 (以下余白) スクラッチバンド・メモリ1610 第16図に示すように、スクラッチパッド・メモリ16
10はそのアドレス・カウンタ1611と共に、結実用
バス433につながフている。計算機構440と450
は両方向ボートでこのバスにつながっているので、マル
チプレクサ440、ALtl 450、またはレジスタ
・ファイル430によってデータを直接にこのメモリか
ら読み取ることができる。 アドレス・カウンタ1611を通して、いくつかのアク
セス・モードでこのメモリがアクセスできるようになっ
ている。2個のモード・ビットに応じて、アドレス・カ
ウンタは(読取りまたは書込みアクセスが行なわれるつ
と)アドレスを増分し、アドレスを減分し、アドレスを
保持し、あるいはアドレスを指定できるようにする。(
例えば、アドレス増分と減分をいく通りかに組み合わせ
て、スタックとして動作させることも可能である。)カ
ウンタ1611のアドレス生成機能を利用すると、ある
条件のときに、メモリ1610を1サイクル1回の書込
みの割合で機能させることができる。 このメモリをスタックとして動作させると、上述したよ
うに、コンパイラでスカシ・プログラミングするとき特
に好都合である。 ヒストグラム・アルゴリズムを実行させるときは、以前
のサブトータル(追跡中のパラメータの)を結実用バス
433上に読み出すことができる。この種の操作の1つ
の簡単な例では、メモリ1610は結実用バス433の
データ・ソースとして指定され、マルチプレクサ440
が稼動中に、八LU450はコマンドを受けてオペラン
ド値を結実用バスから読み取るようになっている。マル
チプレクサ440が終了すると、その結果を結実用バス
433上に送り出し、ALUはその値を2番目のオペラ
ンドとして読み込む。そのあと、ALUはその和を結実
用バス433に送り出し、その間にメモリ1610はコ
マンドを受けてその結果を書き出す。(その間に、追加
のオペランドをマルチプレクサ440にロードすること
が可能である。) このテーブルがあると、データ依存パラメータをそこに
置いておくことができるので非常に便利である。これは
超関数を計算するときに特に便利である。 高速レジスタ・ファイル430 レジスタ・ファイル430はデータ・キャッシュ・メモ
リ140との主インタフェースとなるものである。レジ
スタ・ファイルの一方のバンクはCPモジュール110
と部分的に同期して稼動して、局所転送バス422(両
方向ボート430八に結ばれている(第16図))を通
してFP保持レジスタ420 とのインタフェースとな
る。他方のバンクはFPモジュールと完全に同期して稼
動し、オペランド用バス431.432(読取りポート
430Bと4:1OC) 、結実用バス433(読取り
ポート4300)、およびループバック接続434(書
込みポート430E) とのインタフェースとなる。 第4B図はモジュール130内のデータ通路の主要部分
を示している。主キャッシュ・バス144(これば25
6ビツト幅である)は直列の4個のFP保持レジスタ4
20と結ばれている。(これらの保持レジスタは実際に
は対になっており、読取りレジスタは書込みレジスタと
並列になっている。従って、保持レジスタ420は8個
あり、各々が64ビツト幅であるので、両方向256ビ
ツト・インタフェースになっている。)これらの8保持
レジスタ420には別々のイネーブル信号が入力される
。従って、このバンク側のレジスタにより、256ビツ
ト幅のキャッシュ・バス144を多重化して64ビツト
幅の高速レジスタ・ファイル430に送り込むことがで
きる。 この多重化が行なわれるのは、主にコストが理由である
。高速レジスタ・ファイル430は非常に高価なチップ
である。これらの個数が4倍になると、システムのコス
トが大幅に高くなることになる。さらに、第388図か
ら明らかなように、これらの機構の検証は非常に重要で
あり(ビン数が非常に多いので)こわらのパッケージを
4個でなく16個使用すると、必要とするボード面積が
著しく増大することになる。 実際にはレジスタ430は土jであり、2個だけではな
い。物理的に分列したチップの各々は16ビツト幅であ
るので、これらを4個並列で使用すると、64ビツト・
インタフェースで局所転送ハス422 と結ぶことがで
きる(このインタフェースは2F語幅であることに注意
されたい)。 本好適実施例では、レジスタ・ファイル430は18ビ
ツト幅x64記憶位置奥行の5ボート装置から作られて
いる。従って、64ビツト側インタフエースで局所転送
バス422と結ぶためには、4個の装置を並列で使用す
る必要がある。(説明を分かりやすくするために、第4
B図には、32ビツト幅ファイルが2個あるものとして
レジスタ・ファイルが示されている。これにより、下述
する語アドレス奇数/偶数の状況構造が分かりやすくな
る。また同様に、第16図には、レジスタ・ファイル4
30が1個のファイルとして示されている。)本好適実
施例では、これらの装置は実際には817社提供の82
210から作られている。 レジスタ・ファイルは256ビツト幅にして、キャッシ
ュ・バスと直接にインタフェースで結ぶのが理想的であ
るが、そうすると、付加ハードウェア費用が大幅に増加
することになる。本実施例で採用した代替方法では、F
P保持レジスタ420(関連制御ロジックと共に)を使
用して、キャッシュ・バス144 との256ビツト・
インタフェースを多重化して64ビツト幅ボート43〇
八に結んでいる。多重化とデータ経路指定は、第4A図
と第4B図にその概要が示されている転送ロジックによ
って制御される。これについては、詳しく下述する。 これらのファイル間の接続は次のようにするのが好まし
い。(ボートは第16図に個々に名前が付けられている
。、) これらのファイル430の各々は両方向インタフェース
430Aをもっており、これは線422を通してレジス
タ420に結ばれている。 レジスタ・ファイル430の各々は2つの透過データ出
力端をもっている。これらの出力端は個別的にイネーブ
ルさせることができるので、レジスタ・ファイル43G
内からの異なる語を表すことができる。これらの出力4
30Bと4300は局所オペランド・バス431 と4
32を駆動させる。 レジスターファイル430の各々は第3局所データ・バ
ス433に結ばれた入力ボート430 Dをもっており
、これは結実用バスと呼ぶことにする。この結実用バス
は計算機構440と450の出力側に結ばれている。 レジスタ・ファイル430の各々はもう1つ人力ボート
430Eをもっているが、これは第1オペランド・バス
431につながるループバック接続によって読取りボー
ト430Bと結ばれている。この書込みボートはそのア
ドレスを「結果」書込みボート430Dから受は取る。 これにより、ALtl 450またはマルチプレクサ4
40を通らなくてもデータをあるレジスタ・ファイルの
アドレスから別のアドレスにコピーできるので、2サイ
クルの遅れが節約されることになる。このことは、計算
機構440と450を使用しなくても、従ってこれらの
機構で起こる遅れなしで、データを望み通りに並べ替え
てやりとりできることを意味する。この機能はサブルー
チンを扱うとき使用すると、特に利点が得られる。 従って、5ボート・レジスタ・ファイル430は2一つ
の読取りボートDとE、2つの書込みボートBとC1お
よび1つの両方向ボートAをもっている。読取りボート
からはオペランドがFMPY 440とFALU 45
0に送られ、その結果か書込みボート・+30D (必
要ならば、書込みボート430E)を用いて6g戻され
る。レジスタ・ファイルはF語を128語まで保管でき
る。 書込みボート430Dと430E (および両方向ボー
ト430Eの書込み部分)に対するデータ、アドレスお
よび書込みイネーブルはレジスタ・ファイル430の内
部に記録される。内部書込みパルスは自動的に発生する
。 2つの読取りボートはそれぞれのデータ通路をレジスタ
またはラッチすることができ(共に同しであることが必
要)、それぞれのアドレスをレジスタまたはラッチする
ことができる。浮動小数点フロセッサ・モジュール13
0で使用されている構成では、アドレスがマイクロコー
ドから直接に駆動されたときアドレスをレジスタし、デ
ータ・ラッチを透過に保持するようになっている。デー
タはFMTY 440とFAl、lJ 450の内部に
レジスタされる。 レジスタ・ファイルは、読取りと書込みアドレスが同じ
であるときは、「ライト・スルー」モードで動作させる
ことかできる。このモードにあるときは、書込まれたデ
ータは同じサイクルで読取りボートに現れるが、通常読
取り操作より約10ns遅れて現れる。これは、再帰た
はスカラ計算で使用すると便利であり、その場合には、
バイブライン段数が減少するという利点が得られる。 読取りボート430B、読取りボート430C1および
書込みボート430Dに対する個々のアドレスはFPマ
イクロコードのフィールドから与えられる。これにより
、パイプライン処理の制約の枠内でrl −r20P
r3型の計算を行なうことができる。 2重バッファリング 高度の多重ボート高速レジスタ・ファイル430は、制
御プロセッサ・モジュール110と浮動小数点プロセッ
サ・モジュール130とをクリーンなインタフェースで
結ぶ上で不可欠な要素である。このレジスタ・ファイル
のアドレス空間は2重バンファとし−C働くように区画
化されている。どの時−入においても、このレジスタ・
ファイルの一方のバンクは制御プロセッサ・モジュール
とほぼ同期してf木切し、他方のバンクは浮動小数点プ
ロセッサ・モジュールと完全に同期して稼動する。(C
Pモジュールとほぼ同期して行なわれる操作については
、下達する。この準同期操作は過渡的クロック領域を提
供するものと考えることができるが、高バント幅インタ
フェースを得るときに役に立つものである。) 2バンクの割当てはハンドシェイキング・ロジックの制
御を受けて、同期点で入れ替えられる。 従って、このクロック境界の配置により、境界の一方の
側を他方の側に1% B!しないで変更することが可能
である。 このクリーンなインタフェースを通して、より高速でよ
り集積化された浮動小数点チップ・セットに移行できる
ので、浮動小数点機構に独立性をもたせることができる
。(ハンドシェイキング・ロジックの機能と使い方につ
いては、cPモシュルとトPモジュールとのやりとりか
説明されている個所で第22図を参照して、さらに詳し
く説明する予定である。) 従って、レジスタ・ファイル130は通常にデータと結
果をやりとりするときは、2重にバッファリングされる
。しかし、第18図と第19図に示すような従来システ
ムでは、この2重バッファリングに柔軟性がない。従っ
て、制御プロセッサ・モジュール110と浮動小数点プ
ロセッサ・モジュール130は共に、レジスタ・ファイ
ル430のどちらかのバンクにあるアドレスのどれでも
アクセスかできる。アドレスが反対側のバンクからロッ
クアウトされないということは、以下の説明で明らかに
されるように、非常に利点がある。 ハードウェアへのアクセスはカットオフされないので、
レジスタ・ファイルにアクセスするためには(あるレベ
ルで)アドレスの全7ビツト(AOΔ6)を指定しなか
ればならない。2重バッファリング操作が使用されてい
る場合は、実際にはアドレスの6ビツトが必要である(
現在使用可能なバンク内のアドレスを指定するために)
。2重バッファリング操作は実際には、最上位アドレス
・ビットを動的に修飾することによつて達成される。モ
ード信号は最上位アドレス・ビットがどのように修飾さ
れるかを示している。 従って、マイクロコードで指定されたレジスタ・ファイ
ル・アドレスはハードウェアによって自動的に修飾され
る。2重バッファリングは、浮動小数点プロセッサ・モ
ジュール130がレジスタ・ファイルのどちらの半分に
アクセスできるか、制御プロセッサ・モジュール110
がどちらの半分にアクセスできるかを判断する「バンク
選択」信号によって制御される。このバンク選択信号は
マイクロコード・フィールドによって直接制御されない
が、制御プロセッサ・モジュール110と浮動小数点プ
ロセッサ・モジュール130がスワップ(交換)を要求
したときだけ切り替えられる(別のロジックによって)
、。 2重バッファリングは、最上位アドレス・ビット(A6
)の区画化を使用している。(これと対照的に、第4B
図には、ファイルの缶詰構造を示すために2フアイルが
並んで示されている。これは最下位アドレス・ビット(
八〇)に対応している。)各レジスタ・ファイル・アド
レス(7ビツト)には2ビツト修師子が付いており、こ
れにより次のアドレス・モードの1つが選択される。 物理アドレス・これは修飾なしで指定されたアドレスを
使用する。 論理アドレス:これは自動ソフト2重バッファリングが
使用されているとき選択され、アドレスの最上位ビット
はバンク選択ビットによって置き換えられる。制御プロ
セッサ・モジュール110のレジスタ・ファイル・アド
レスでは、このビットか反転したものが使用されること
になる。 プレビュー:これにより、浮動小数点プロセッサ・モジ
ュール130は、バンクを交換し合ったり物理アドレス
指定を使用しなくても、バンクの他方の側にあるデータ
を調べることができる。同朋点を横切るとき計算パイプ
ラインを一杯に保つためには、新しいデータへのアクセ
スが必要になる(データか移入済みの場合)。しかし、
通常はパイプライン化による遅延が起こるので、現在の
バンクに対するすべての結果が書き出されるまではバン
クを交換し合うことはできない。このアクセス・モード
では、読取りアクセスがレジスタ・ファイルの反対側の
バンクから行なわれてからバンクの交換が実際に行なわ
れるので、この遅延は起こらない。これは、アドレスの
最上位ビットをバンク選択ビットを反転したもので置き
換えることによって行なわれる。 第20図は2重バッファリングでアドレス修飾を行なう
ために使用されるロジックの概要図である。この図の右
側はレジスタ・ファイル430とCPモジュール110
とのインタフェースを示しており、左側はFPモジュー
ル110の残り部分とのインタフェースを示している。 従って、右側のデータ接続個所はボート430八(第1
6図に図示)に、従って、FP保持レジスタ420とキ
ャッシュ・バス144に対応している。左側のデータ接
続個所はポート430B、 C,D、E(第16図に図
示)に、従って、マルチプレクサ440、FALU 4
50などに対応している。 右側のアドレス入力は、CPマイクロアドレス・ハス2
11八によってWC5拡張部分490から呼び出された
マイクロ命令から抽出されたデータ・フィールドに対応
している。左側のアドレス・フィールドはFPマイクロ
アドレス・バス473によってFPWC5470から呼
び出されたマイクロ命令から抽出されたデータ・フィー
ルドに対応している。(レジスタ・ファイル430はア
ドレス人力に対する内部パイプライン・レジスタをもっ
ているので、マイクロ命令ビットはレジスタされないで
人力される。) 2つのアドレス修飾論理装置2Q10が示されている。 これらは、SELおよび5EL−bar との接続が二
対になっていることを除けば、はとんど同じである。従
って、CPとFPが同じアドレスを論理モードでアクセ
スしようとすると、それぞれの論理装置201Oのアド
レス修f!Ij操作が行なわれた結果として、反対のへ
6ビツト出力アドレスが得られるので、2重バッファリ
ング機能か実現される。アドレス論理装置はし1)また
はFPマイクロコード・フィルドの1つから取り出した
7ビツト・アドレスの上位ビット(八6)も受は取る。 また、2ビツト・モートイ2号も受は取る。 本好適実施例によれば、実際には、3個のアドレス修飾
論理装置2010がFP側に実装されている(ボート4
30B、430C14300に1つずつ)。 相補バンク選択信号SELと5EL−barはボート選
択ロジック2020から得られる。これらの2信号は、
FPとCPモジュールが荻四バンク交換を要求すると反
対になる。 (これを行なうロジックは以下で詳しく説
明する。) 非レジスタ・ビットのセットアツプ時間短縮アドレス修
飾ロジック2020を実装する際に、第17図に示すよ
うに、ある種の追加ロジックが追加されている。この追
加ロジックは一敗的問題を解決するもので、多くの分野
で使用するのに適したものになっている。 「ビット・スライス」の多くのメーカはそれぞれのIC
にバイブライン・レジスタを組み入れている。しかし、
チップに到達する前にマイクロコード・ビットに対して
行なわれる処理をチップのセットアツプ時間に加える必
要がある。このような事態は、上述したラフ82重バフ
ァリング・システムを構築する際に起こっていた。その
問題とはアドレス修飾ロジック2010がレジスタ・フ
ァイル・アドレスの最上位ビットじΔ6”ビット)を処
理して論理的、物理的、およびプレビュー・モードでア
ドレス指定を行なうと、サイクル時間に余分のInn5
が付加されることである。(本好適実施例におけるよう
に)サイクル時間を30ns以下にできるときは、これ
は非常に大きなオーバヘッドとなる。 従って、第17図に示すようなある種の追加ロジックが
余分のIonsをサイクル時間(多くのサイクルで)か
ら除くために採用された。これを行なうことができるの
は、アドレス指定モードがあるサイクルから次のサイク
ルまで同じままであるときである。その場合には、セッ
トアツプ時間はすでに前のサイクルで代価が支払われて
いる。しかし、マイクロコード・アドレスが変って、新
しいデータが書込み可能制御記憶機構(WCS)でアク
セスされると、非レジスタ・マイクロコード・ビットは
不安定になる。従って、セットアツプ時間が必要以上に
再び発生することになる。 第17図に示すロジックは修飾アドレス・ビット定数を
別のレジスタ1740に格納している。マイクロコード
から得たものではなく、古いへ6値(レジスタ1740
からフィードバックされたもの)を使用することを選択
するために(マルチプレクサ1739を制御するために
フリップフロップ1720を使用して)、特殊なマイク
ロコード・ビット(“useoldA6″と呼ぶ)が使
用されている。(マイクロコード・アセンブラを使用す
るときは、 useold A6”マイクロコード・ビ
ットはマイクロコード・アセンブラが自動的にセットす
−るので、プログラマはその最適化について気にする必
要はない。)マルチプレクサ1730はアドレス修飾ロ
ジックと同じPΔLに搭載されているので、マルチプレ
クサは余分の遅延を引き起すことがない。 キャッシュ・バス・インタフェースと制御上述したよう
に、数値プロセッサ・モジュールの動作は多くの面で制
御プロセッサ・モジュール110の拡張部分によって制
御される。このロジックの大部分は物理的にFPモモジ
ュール上首かれているが、その制御は制御プロセッサ・
モジュール110とCDバスとのインタフェースによっ
て行なわれる。キャッシュ・バス・インタフェースは、
ブタ・キャッシュ・メモリ140 、 FP保持レジス
タ420、およびレジスタ・ファイル430間のデータ
転送を管理するためにいくつかの部分に分かれている。 このインタフェースの主要部分は保持レジスタ420、
データ・キャッシュ転送ロジック、および局所転送バス
・ロジック2110である。 保持レジスタ420 保持レジスタ420は8個の32ビツト・レジスタから
構成されている。(これらのレジスタは両方向であり、
各レジスタは読取り側と書込み側を備え、内部で並列に
なっている。)これらのレジス夕は256ビツ1−がデ
ータ・キャッシュ・メモリff!11に、64ビツトだ
(づがレジスタ・ファイル側になるように配置されてい
る。レジスタ・ファイル側の出力イネーブルは4グルー
プのレジスタから1つを選択して、レジスタ・ファイル
430につながる64ビツト局所転送バス422を駆動
する。(このインタフェースの動作については、あとで
詳しく説明する。) データ・キャッシュ転送ロジック データ・キャッシュ転送ロジックは主ボード上に置かれ
ており、CP転送ロジックの一部になっている。こくか
らは、モジュール選択アドレス(3ビツト)、出力イネ
ーブル、およびクロックが得られる。このロジックはキ
ャッシュ・メモリ140と保持レジスタ420間の転送
を制御する。このモジュールが選択されると、出力イネ
ーブル信号は活動化されていると、保持レジスタ420
をイネーブルしてデータがキャッシュ・バス144を通
って転送される。 局所転送バス制御ロジック 局所転送バス制御ロジック2110は第21図に示され
ている。このロジックは保持レジスタ420 とレジス
タ・ファイル430間のデータ転送を受は持つ。1つの
転送サイクルは、4つのマイカ・サイクルをもっており
、これらはレジスタ・ファイルとの間で転送できる4対
のF語に対応している。 これらのマイカ・サイクルは高速で動作する専用クロッ
クによって発生する。 転送りロック発生機構412 転送りロック発生機構412からは、主転送サイクル期
間の間だけ転送りロック出力が得られる。 これは、CPクロックと転送イネーブル・ビットが共に
「進行」条件を示しているときトリガされて動作する。 転送りロック発生機構はcpクロック発生機構250と
完全にではなく部分的に同期している。高周波数ECL
回路が70MHzオシレータに接続されており、CPク
ロック発生機構が「進行」条件を示すまでは、高周波数
回路はループを続けているだけである。従って、筒周波
数グロックの縁が現れると、「進行」条件かヂエックさ
れる。つまり、[進行」条件が高周波数クロックの多く
て1期間以内に検出されることになる。 進行条件が検出されると、転送りロック発生機構は高周
波発振入力の分割を始めて、主転送サイクルに対する転
送りロック出力を発生する。どの主転送サイクルが行な
われているかに応じて、2か65までのクロック・ビー
トは主転送サイクル期間に発生する。クロック・ビート
は8個の保持レジスタすべてに結ばれている。これらの
レジスタへの順次アクセスは、上述するように、オーバ
レイされた自走ゼロ・パターンによって「位相」がとら
れる。 第47図は転送りロック発生機構のタイミング関係の概
略図である。高速可変長クロック480は同図の下に示
されているが、これは計算機構440と450(レジス
タ・ファイル430のデータ・ポート430八、430
B、430C14300,430Eと共に)の動作のク
ロックをとるものである。その上に示されているのは、
転送りロック412の高速ECLループである。さらに
その上は、主転送サイクルで転送りロック発生機構41
2を始動させる(CPマイクロコード・クロックと共に
)イネーブル信号である。その上は転送りロックである
。その上はCPクロック発生機構250によって発生さ
れるCPマイクロコード・クロックである。 従って、転送りロック発生機構が働いているときは、中
間クロック・ゾーンが得られるので、データ・キャッシ
ュ・メモリ140(これはCPクロック発生機構250
によって制御される)とレジスタ・ファイル430の内
側バンク(これはFPクロック発生機構480によって
制御される)間の転送が高速化される。 FPLIとデータ・キャッシュ・メモリ間のクロック境
界は非常に重要な境界である。この境界はクロック位相
境界だけでなく、クロック周波数の大きな差にもまたが
っている。上述したように、さらに、この境界をまたぐ
正味転送バンド幅も非常に重要である。 木好適実施例では、この境界は2つのステップてまたが
っている。 I・Pクロック領域から過渡的クロック領域への転送は
レジスタ・ファイル・インタフェースの2重バッファリ
ングによって行なわれる。 保持レジスタ420かデータ・キャッシュ・メモリ14
0への転送は全体がCPクロック領域内で行なわれる。 次に、このクロック周波数差に関して注目すべきいくつ
かの一般的事項を挙げておく。 マイナ転送サイクル継続時間と最小FPサイクル時間と
の関係は偶然的なものではない。上述したように、ダイ
アジック演算のときにキャッシュ・バンド幅に最悪の負
担がかかることになる。例えば、ベクトル加算では、2
個のオペランドと1個の結果をレジスタ・ファイルとキ
ャッシュの間で転送しなければならない。レジスタ・フ
ァイルのFPU側では、2個のオペランドは並列に読み
出され、(これとバイブライン処理されて)その結果は
同時にレジスタ・ファイルに書き戻される。従って、最
悪の場合には、計算機構のすへての計算サイクルごとに
、2語をレジスタ・ファイル430に書き込み、1語を
読み出さなりればならない。 すへての演算がダイヤシックであるとは限らないが、多
くのアプリケーションでは、平均的にあまり有利とはい
えない。 過渡的クロック領域を使用する実施例では、上述したよ
うに、次のようにすることが最も好ましい。つまり、マ
イナ・サイクル継続時間をマイナ・サイクルごとに転送
される語数で分割して、FPUにおける計算サイクルの
最小継続時間の172ないし173倍の範囲にすること
が好ましい。しかし、2段インタフェースで過渡的クロ
ック領域を使用すると、この数値関係か満足されない場
合であっても、その利点が得られる。 過渡的クロック領域の利点は高速数値計算機構が使用さ
れているシステムに応用可能である。上述したクロック
・インタフェース・アーキテクチャによれは、この種の
機構をそれぞれのクロック領域に隔離できるので、可能
な限りの最大速度でクロックを動作させることができる
。例えば、このインタフェース・アーキテクチャは、高
価な高速デクノロシ(ジ1セフソン接合やII+−ν装
置テクノロジなと)におりる限られた数の計算機構を大
型コンピュータ・システムに組み入れるときに使用可能
である。 制ill信号 制御信号の数を少なく抑えるためには(入力側と出力側
の両方で)8個のF語を保持レジスタ420からレジス
ターファイル430に転送する仕方にいくつかの制約が
ある。こねがなぜ必要なのかは、アドレスのことを考え
れば明らかである。F語が8個のときは、全体の柔軟性
が必要である場合には、8個のアドレスが別々に必要に
なる。各アドレスに9ビツトを指定する必要があるので
、アドレス情報は合計で72ビツトになる。 入力制御信号には、次のものがある。 亙卯・データがレジスタ・ファイルから保持レジスタに
転送されるのか、あるいはその逆に転送されるのかを指
定する。 レジスタ・アドレス(6ビツト) これは、ブタがそこ
からレジスタ・ファイルとの間で転送される開始アドレ
スを指定する。このアドレスはマイナ転送サイクルごと
に増分され、64ビツトまで達すると、折り返される。 FPU側からは、レジスタ・ファイル・アドレスは、6
4ビツト語で(士なく32ビツト語を参照するので、7
ビツトであることに注目すべきである。 論理/物理アドレス修篩子:これはアドレスを修飾して
ソフト2重バッファリングを行なうかどうかを選択する
ヶ 転送長さ(3ビツト):これは転送されたF語の個数(
1,、,8)を判断する。 転送開始(3ビツト)・これは8語のうち最初に転送す
るF語を指定する。これらのビットはマイクロコード・
フィールドでも、レジスタ・フィールドでも定義できる
が、CAババス11の最下位ビットにすることも可能で
ある。転送開始+転送長さ〉8ならば、F語の選択は折
り返される。 転送イネーブル:転送に関係する4つの浮動小数点プロ
セッサーモジュールを1つ選択する。 し・タスタ・ファイルと保持レジスタに対する制御(M
号には、次のものがある。 保持レジスタ群出力イネーブル(4)+64ビツト・デ
ータ・バスを駆動させるレジスタ群を選択する。転送方
向かレジスタ・ファイルイ30から保持レジスタ420
に向う場合は、これらのイネーブルはいずれも活動化し
ない。 保持レジスタ群クロック(8):クロック・イネーブル
は4つあり、これらはパターン1110.1101.1
011.0111 (r自走低パターン」)の順番にな
っている。これらの4クロツク・イネーブルは64ビツ
ト・レジスタ群を選択する。静的8ビツト・クロック・
マスクは32ビツト・レジスタのどの2つを実際にイネ
ーブルさせて、局所転送バス422をアクセスするかを
選択する。(パターン内の開始位置は転送開始によって
決まり、パターンの数は転送開始と転送長さパラメータ
によって決まることにl主意されたい。) レジスタ・ファイル・アドレス(7):マイナ・サイク
ルごとに増分し、論理/物理アドレス(M fiili
子に応じて修飾される。 レジスタ・ファイル読取り/″N込み制御(2):各月
のレジスタ・ファイルごとに別の文字があるので、奇数
個の書込みが可能である。これらは転送長さとアドレス
からデコード化される。 (以下余白) 転送の制約条件(18語構造) 上述したインタフェースによると、転送にいくつかの制
約がある。これらの制約を分かりやすく説明するために
、データがデーターキャッシュ・メモリ140、保持レ
ジスタ420、局所転送バス422、およびレジスタ・
ファイル430の間でどのようにマツピングされるかを
明らかにする。 レジスタ・ファイル430はある種の缶詰構造になって
いる。つまり、FPUからは32ビツト幅に見えるが、
局所転送バス422からはレジスタ・ファイル430は
64ビツト幅に見える。 レジスタ・ファイル43αと局所転送バス422間を2
語幅のインタフェースを使用して結び、8個のレジスタ
420に印加される転送りロック(実効)を4マイナ・
サイクル以下にすると、転送速度が最大化するので(静
的クロック・マスクが使用できる)非常に有利である。 しかし、ある種の奇数/偶数構造がファイル・アドレス
構造に組み込まれるという副作用が生じる。 これを図式化して示したのが第46図である。FP保持
レジスタの幅内の8個のF語は相反向きに陰影を付けて
、どれが偶数で、どれか奇数であるかを示している。2
倍語が転送されると、転送された任意の偶数F語<WO
1W2、W4、Wa)はレジスタ・ファイル430の左
側にマツピングされる。従って、これらはFPUから見
ると、偶数レジスタ・ファイル・アドレスにマツピング
される。これに対応して、転送された任意の奇数F語は
レジスタ・ファイル430の右側にマツピングされるの
で、FPIJから見たとき、奇数レジスタ・ファイル・
アドレスにマツピングされる。 このことは、それ程深刻ではないが、(キャッシュ・メ
モリ140からの一連の分散読取りアクセスにおいて)
すべての転送が偶数データ・キャッシュ・アドレスから
の場合には、レジスタ・ファイル430内のアドレスの
半分だけが使用できることを意味する。 もっと重要なことは、1個のF語(例えば)計算アドレ
スから転送される場合には、データがレジスタ・ファイ
ル内の偶数または奇数アドレスで終結する可能性がある
ので、このデータを正しい側から(FPUに)アクセス
させるようなプログラム・ステップを使用する必要があ
ることである。 本好適実施例によれば、この種の問題を回避するために
ユーザが選択できる5つのオプションが用意されている
。つまり、 1 、CPモジュール110はDCMでデータを往復で
きるので、転送されるどのデータもDCM内の偶数アド
レスから開始する。 2、転送ロジックは状況ビットをもっており、最後の転
送が偶数アドレスに対するものか、奇数アドレスに対す
るものであるかを示すようになっている。FPロロブク
はこの状況ビットをテストできるが、これから得られる
のは、最後の転送に関する情報だけである。 3.2重書込みサイクルをデータ有効フラグと一緒に使
用できるので、語アドレスの偶数/奇数特性をある個所
で無視させることが可能である。つまり、本好適実施例
でレジスタ・ファイル430に実際に使用されているメ
モリには、データの16ビツトごとに2個のパリティ・
ビット記色位置がある。本好適実施例では、パリティ検
査は採用されていないので、これらの追加ビットは他の
目的に使用可能である。特に、これらのビットはデータ
ト共に「データ有効」フラグを送るために使用できる。 従って、保持レジスタ420からの書込みはすべて対の
保持1ノジスタから対のF語をレジスタ・ファイル43
0の両側に書き込むことになる。 4、CPモジュール110によって書き込まれるレジス
タ・ビットは現在の語記憶位置の偶数/奇数状況を示す
ために使用できる。FPモジュールはこのレジスタ・ビ
ットをテストして、条件付き分岐を実行することができ
る。 5、CPモジュール110はレジスタ478にある開始
アドレスを変更することで、FPに正しい語の偶数/奇
数状況を知らせるようにFPプログラミングを変更する
ことができる。 別の方法としては、専用ハードウェアを追加して、語の
交換を即時に行なう方法がある。しかし、この方法は、
専用バー1−ウェアによって転送毎に遅延が増加するの
で(交換するか否かに関係なく)好ましくない。 この転送制御では、非連続アドレスを1回の主転送サイ
クル内で転送することができない。例えは、WOとW2
を保持L/レジスタらレジスタ・ファイルに転送するた
めには、2つの主転送サイクルが必要になる。しかし、
Wlも一緒に転送でざるならば(それが使用されない場
合であっても)主転送サイクルは1つだけで十分である
。 データをレジスタ・ファイル430からキャッシュ・メ
モリ140に転送するときも、分散書込みが行なわれる
ときと同じような考慮が必要になる。 この場合の好ましい方法は、レジスタ・ファイルの両側
にデータを同時に書き込むことである。つまり、第4B
図に示すように、2つの(物理的には別の)レジスタ・
ファイル部分430と403°はgメイネーブルできる
ので、結実用バス433から書き込まれたデータは偶数
語と奇数語の両方に書き込まれることになる。この重複
データが保持レジスタ420に書き出されるときは、こ
れらの8個全3;1%に同時に書き込むことかできる。 (この機能はマイクロコード内のIIRC1ock A
LLビットによって活動化される。) 保持レジスタ/転送りロックの動作 上述したように、多くて4個のビートで転送イネーブル
を行なうクロックは保持レジスタ420 とレジスタ・
ファイル430間の転送で使用される。 (本好適実施例では、このクロックは実際には主転送サ
イクルごとに5個までのビートをもつことができる。そ
のうち4個のビートは保持レジスタ・バンクのそれぞれ
の対を活動化し、5個目の位相はバイブライン・オーバ
ヘッドの余裕分となっている。実際の動作では、このク
ロックの位相は約3Qnsである。従って、主サイクル
は約+50nsである。(勿論、これらの時間は変更が
可能である。) このクロック構造には、缶詰転送アーキテクチャをキャ
ッシュ−バス144と保持レジスタ430間のインタフ
ェースで使用すると、大きな利点が得られる。転送ロジ
ックには保留レジスタ430は2語幅に見えるので、転
送操作を8:l多重化ではなく、4:1多重化として扱
うことができる。 FPプログラム制御 第4C図は本好適実施例において、FPマイクロコード
・アクセスとデコード化で使用されるロジックを示して
いる。 マイクロ命令の順序付け(シーケンシング)本好適実施
例では、数値処理モジュール130は高度に統合化され
た「シーケンサ」を使用していない。その代わり、実行
すべきマイクロ命令のアドレスを定義し、マイクロ命令
をデコード化する機能が低レベルの統合化によって実装
されて、最大高速化を図っている。書込み可能制御記憶
機構は、マイクロ命令アドレス入力によってアクセスさ
れるマイクロ命令を格納している。マイクロ命令アドレ
スのソースは次アドレス・ロジック472によって選択
され、このロジックには条件コード入力がマイクロコー
ド語のデコードによって得た出力と共に入力される。 マイクロアドレスは、通常動作時には(つまり制御プロ
セッサ・モジュールやホストによる介入とは別に)4つ
のソースの1つから得られる。これらのソースとは、r
真」アドレス・レジスタ474、「偽」アドレス・レジ
スタ475、スタック・レジスタ478、開始アドレス
・レジスタ479である。 どの命令にも「真」アドレス・フィールドとr偽」アド
レス・フィールドがある。これらの2アドレスを組み合
せることにより、条件付きジャンプが可能になる。「真
」アドレスだけが無条件ジャンプと命令「継続」を可能
にする。 これを行なうには、マイクロ命令471のある種のフィ
ールドが2つのレジスタ474 と475に送り込まれ
る。これらのレジスタはr真」と「偽」アドレスのバッ
ファとなるので、論理テストの結果に応じて、一方また
は他方のアドレスが次のマイクロ命令アドレスとして逆
ロードすることができる。 オンチップ・パイプライン・レジスタを使用しないマイ
クロコード・ビット用として、追加のレジスタ476が
用意されている。 スタック・レジスタ478 スタック・レジスタ478はFPプログラム制御の機能
を強化するものである。これから得られる出力はマイク
ロアドレス・バス473に送出され、入力はマイクロ命
令バス471から得られる。これについては下達する。 しかし、FPモジュールの高速マイクロコード・アーキ
テクチャで使用されるスタックに要求される条件はいく
分通常とは異なりたものである。本好適実施例によるス
タックは必要とする後入れ先出しくLIFO)操作を高
速に行なうだけでなく、デバッグに非常に役立つ柔軟性
を僅えている。この機能を得るためには、第39図に示
すように、ある種の新規構造が要求される。 スタック機能を実装するのに都合のよい方法はレジスタ
・ファイルを使用し、その出力イネーブル信号と書込み
イネーブル信号をアドレス・カウンタに結び付けて、
pop (読取り)操作が行なわれるたびにカウンタ
を減分し、 push”(書込み)操作が行なわれるた
びにカウンタを増分することである。 中心部分3920は多段パイプライン・レジスタであり
、これはへMD社から市販されている(八MD2952
0)。この部分は4個のパイプライン化されたレジスタ
3921と、出力を得るためにレジスタ3921の1つ
を選択するために使用できる出力マルチプレクサ392
2とを備えている。(この種の装置の通常動作モードは
FIFOか、一定の遅延を得る動作モードのどちらかで
ある。) 図示の実施例では、このレジスタの制御機能はLIFO
操作を実現するために、PAL 3910の制御の下で
使用される。PALはコマンド信号を受けてスタックを
ポツプまたはブツシュする。読取りスタック人力も用意
されているので、(主に診断目的)スタックの状態を無
変更のまま読取ることができる。このモードで使用する
ために用意されたのがオフセット入力であり、これは最
上段レベルを基準にしたスタック・レベルを読み出すた
めに使用できる。 スタック・レジスタの出力はマイクζ1ア1−レス7\
ス473シ貢、1′1ばれでいる。スタック・レジスタ
への人力は1為)′1ヘレスによって得られるか、その
1111巾について以下説明する。 サブルーチンの動作 スタック・レジスタ478はサブルーチン動作をり(E
化する機能を備えている。サブルーチンを呼び出すマイ
クロコード命令はサブルーチン・アドレスを真フィール
ドに、戻りアドレスを偽フィールドに記述ず乙。この命
令の短フィールドには、フコtシュ・コマンドも記述さ
れるので、スタック・レジ久々は「偽」アドレス出力を
格納する。サブルーチンの実行が終ると、ボ・ンブ・コ
マンドがスタック・し・タスタをイネーブルして、戻り
アドレスをマイクロ命令バス47′!上に出力させる。 従って、スタック・レジスタ478が4レベルであるの
で、サブルーチンを4レベルまでホストすることができ
る。 クロック発生機構4130 FMPYとFALtlでのサイクル時間は命令が異なる
と、す1クル時間も異なる。サイクル時間を命令に応1
.・て調゛格−)−ろ、にうにすると、5(算114間
が最適化されるので都合がよい。F A L II演算
と単精度乗算との間の差か最大である(15ns)。 FMPYには除算や平方根のように実行時間が長い命令
があり、その場合には、実行時間はそれぞれ200ns
と300nsである4、これらの実行速度の3い命令用
に2つのオプションが用意されている。 1つは、サイクル長さを該当する量だけ延長するオプシ
ョンである。 もう1つは、実行時間の長い命令が進行中にFMPYに
対するクロック・イネーブルをデ、イスエーブルするが
、その命令とデータ・ス1ヘゾームを通常のデータ速度
でF A L Uに送り続けるオプションである。これ
により、し\くつかのp A L IJ ?寅算を除算
ン寅算の陰に隠すことかできるので、ある種の】′ルゴ
リズムにとっては好都合である。 クロック発生機構はマイクロコード・クロ・す4.+と
スクラッチバ・ノド・メモリに対する書込みブトの2つ
の波形を発生する。クロック発生機構か発生する最小4
jイ2フル時間の長さは21nsであり、これは最大4
トイタンレ時間の98nsまで711sシ11みて変え
ることかh1能である。木好通実JJ1−例では、実際
の最小サイクル時間の長さは280Sである(これは”
WCSメモリ 7′クセス時間かil;l約要因となっ
ているためである)。FALLI演算のサイクル時間の
長さは2flnSであるが、単精度乗算演算では41n
sである。 クロック発生機構はECLステー1・・マシンとして実
装されており、入力周波数が140MHzで動作してタ
イミング分解能を得ている。このECLステート・マシ
ンをTTL順序付はロジックおよび高速計算機構と併用
すると、著しい利点が得られる。 (上述したように、レジスタ・ファイル430 と計算
機構440.450は内部にECLが実装され、周辺に
TTLが実装されている。) クロック発生機構は以下に挙げた制御人力を受は取るこ
とができる。つまり、VMEインタフェースからでも(
つまりホストから)、cpモジュールからでも受り取る
ことができる停止または開始コマンI−、マイクロ、T
h1・令ハス471からの長さ人力フィールド、 「待
ち状態」(またはCPが開始ア):’ kノス・レジス
タを強制的に次のFl’マイクロサイクルに対するマイ
クロアドレス・ソースにするときはもっと長いサイクル
)を指示するストレ・・ノヂ入力、およびクロック発生
機格にも結ばねていて、即時停止を指示する中断点ビッ
トである。 上述したように、CP拡張ロジックにも転送りロック発
生機構412がある。このクロックはクロック発生機構
280とは無関係である。(しかし、これらのクロック
発生機構は共にTTLクロック発生機構内にTTLロジ
ック対を駆動するECLCシロクを使用する利点を生か
している。) マイクロコード短縮 FPモジュール130の動作の注目すべき特徴の1つは
、短縮マイクロコードを使用していることである。つま
り、WCS 470 とのインタフェースにある種のロ
ジックが用意されており、マイクロ命令のあるフィール
ドを以前にレジスタに格納された値で即時に置き)奏え
られるようになっ−(いる。 本好適実施例では、この方法で置き換えられるフィール
ドは演算指定子である。しかし、他のシステムでは、他
のマイクロ命令フィールドをこの方法で置き換えること
も可能である。 従って、例えば、2個の配列を3個目の配列上にマツピ
ングする演算(例:C1−^i÷1li)の場合は、こ
の種の演算列が開始される前に命令レジスタに演算指定
子(例: ”八[lD’)をロードすることが可能であ
る。この演算列はそのあと、演算を直接に指定していな
かったコードに記述されることになる。 このロジックは第45図に示されている。命令レジスタ
4510には演算指定子(8ビツト)がロードされる。 この演算指定子はWCS 470に保管されているマイ
クロ命令のフィールドの1つに対応している。 ”1lse IR”ビット(これはCPモジュール11
0によってレジスタに書き込まれているので、あまり変
更されることがない)を受けると、 PAL 5420
は出力コマンド470Bをイネーブルするか、命令レジ
スタ45IOをイネーブルするかを選択する。 ”tlsc Ill”ビットがマイクロ命令のあるフィ
ールドに割り当てられていた場合は、これはサイクルご
とに変わる可能性がある。しかし、この場合には、どの
指定子を使用するかをデコードするときに(そのあとそ
れをイネーブルするときの)余分の遅れが生じるので、
変更が行なわれたサイクルではサイクル時間が長くなる
。 WCS 470は、本好適実施例では、実際には各々が
4ビツト幅の26個の集積回路メモリから物理的に構成
されている。従って、これらの物理メモリの2つに演算
指定子フィールドの8ビツトが保管される。これらの2
メモリは部分470Bで示され、?lC5470の残り
のフィールドを保管するメモリは47〇八で示されてし
)る。 命令レジスタ4510はそれを(CPマイクロコードの
中で)CDバスのソースまたは宛先と指定することによ
って、COババス22から読み書きすることができる。 PAL 4520には人力の別ビットも送られるので、
そのバイパス操作をマイクロコードのロード操作時にデ
ィスエーブルすることが可能である。 マイクロコードの並列ロート 第29図はWCS 470がどのように幅広キャッシュ
・バス144 とのインタフェースとなっているかを図
式化して示したものである。54ビツト局所バス422
はFP保持レジスタ420とレジスタ・ファイル430
のボート43〇八とを結んでいるが、マイクロ命令デー
タ・バス471にふる下がっている直列シャドウ・レジ
スタ481にも接続されている。(他の個所で詳しく説
明されているが、これらの直列レジスタは制御記憶機構
470とマイクロ命令をホストから送るとき使用される
直列ループとを結ぶインタフェースになっている。) この追加の接続は、マイクロコードのオーバレイを非常
に高速に変更できるようにするので、数値プロセッサ・
モジュール130で特に利点が得られる。 本好適実施例では、直列シャドウ・レジスタ481は実
際には、物理的に分離された2つのレジスタ481八と
41) l 11からなる構成になっている。これらの
レジスタは制御記憶機構470のデータ・ホードと両方
向で結ぶインタフェースになっているだけでなく、局所
バス422からのデータも受は取ることができる。上で
触れたように、CP拡張ロジック内のマイクロ命令フィ
ールドは、局所バス422のデータ宛先を示して、この
読取りを指示できるビットが入っている。 上述したように、各FPマイクロ命令は104 ビット
幅である。しかし、直列インタフェース・ループを巡回
するデータの自動シフトに合わせるために、シフト・レ
ジスタ481は112ビツト長になりている。つまり、
命令ビットの数は次の偶数のIBの倍数に丸められて、
インタフェースにあるシフト・レジスタの長さが定義さ
れている。本好適実施例では、レジスタ481Aは64
ビツト幅であり、レジスタ481Bは48ビット幅であ
る。 レジスタ48】 にマイクロ命令がロードされると(局
所転送バス422の3マイナ転送サイクルで)これらは
命令をWCS 470に逆ロードするように駆リJされ
る。このためには、ア1.レスをFPマイクロアドレス
・バス473に送出する必要かあり、また書込みイネー
ブル信号をWO2470に送る必要がある。 直列ローディングでは、ホストはCI’マイクロアドレ
ス・レジスタを使用して、ロート(または読み取る)べ
@FPl’lI(:Sのアドレスを格納し、このアドレ
スをFP WO2あてに送る。(CPマイクロアドレス
・バス211Aからの人力は%<c図の上方に示されて
いるバッファからFPマイクロアドレス・バス473に
送り込まれる。) 並列ロード・モードでは、CPは目標アドレスを開始レ
ジスタ479に入れる。 ホストとのインタフェースとなる追加のロジックも用意
されている。このロジックにより、マイクロ命令を制御
記憶機構470に対して読み書きすることができる。こ
の機能は詳しく下述する予定である。 FPマイクロコード・ルーチン実行の始動FPモジュー
ルが起動するとき、これは下述するFPW八Iへ/C[
’lV八lへ A ニア F シxイキ’)グ・ロブ・
ンクにより1、通常待ち状態に入る。FPモジュールで
実行されるルーチンを始動するには、CPマイクロコー
ドのあるビットを使用して、開始レジスタ479 に保
持されているマイクロ命令アドレスをFPマイクロ命令
アドレス・バス473上の次のアイクロアトレスとして
使用させることができる。この処置は下述するようにモ
ジュール選択によって修飾される。 FPモジュールの選択 最上位レベルでは、浮動小数点プロセッサ・モジュール
130を制御するためにはその前に選択しておかなけれ
ばならないつ単一モジュール構成では、FPモジュール
は常時選択されているので、以下に述べることの中には
、適用されないものがある。しかし、複数モジュール構
成では、必要とするFPモジュール(またはアルゴリズ
ム高速化機構)を先に選んでおかないと、その制御を行
なうことができない。複数のFPモジュールを一度に進
んで、データまたは情報をFPモジュールのサブセット
に同報通信することが可能である。FPモジュルは次の
3通りの方法て選択できる。1つは、以前に制御レジス
タに格納されている3ビツト値を使用する方法である。 2番目は、マイクロコード・フィールドを使用する方法
である。最後は、好ましさの点で劣るが、異なるモジュ
ールの各々にあるCP拡張ロジック部分に独自のマイク
ロコード・ストリームを同期して実行させ、アクセス仲
裁をマイクロコードで行なう方法である。使用する方法
はサイクル単位で変更することが可能である。 あるFPモジュールが選択されると、それを制御する方
法は制御レジスタ(長期的な制御情報がロードされてい
る)と専用マイクロコード・ビットの間で分割されて、
サイクルごとに制御が行なわれる。サイクル別制御の殆
どは、下述するようにデータ・キャッシュ・メモリ・イ
ンタフェースとそのモジュール上のレジスタ・ファイル
間のデータ転送を取り扱う。 モジュール選択は第23図に図式化して示されている。 マルチプレクサ2340はモジュールLDに対してどの
人力を使用するかを選択する。デコート・ロジック23
10 (これはモジュール130または13G’にある
CP拡張ロジックの一部である)はその特定モジュール
でのスイッヂ設定値と突き合せて、同報通信されたモジ
ュール・アドレスをテストする。修飾ロジック2320
はそのテスト結果に応じて、下述するように、局所WC
5拡張部分からの各種マイクロ命令フィールドを修飾す
る。 制御レジスタ 制御プロセッサ・モジュール110は、次のレジスタに
読み書きすることができる。 転送制御レジスタ:転送制御レジスタは保持レジスタ4
20(データ・キャッシュ・メモリ・インタフェースに
ある)からレジスタ・ファイル430に転送されるデー
タ転送に影響を与える制御信号を一ケ所に収集するもの
である。ハードウェアの負担を軽くするために、他の信
号もいくつか収集される。 使用される制御信号には、次のものがある。 転送開始(3):このフィールドは保持レジスタ群の8
レジスタのうちのどれを最初に転送するかを選択する。 これはマイクロ命令の一部として指定することも、デー
タが取り出されたデータ・キャッシュ・メモリ・アドレ
スに基づいて自動的に指定させることも可能である。 転送長さ(3):このフィールドは、保持レジスタとレ
ジスタ・ファイル間で転送する語の数を指定する。最大
8語まで転送が可能である。 転送タイプ(1):このビットは転送が保持レジスタと
レジスタ・ファイル間で行なわれるのか(0)、保持レ
ジスタからFPモジュールのWCSパイプライン・レジ
スタに行なわれるのか(1)を選択する。 後者の機能はFPモジュール・メモリの並列ロード時に
使用される。 ループバック制御(1):このビットは、書込み保持レ
ジスタ内のデータを、レジスタ・ファイルに先に書き込
むことなく、直接に読取り保持レジスタに複写すること
を可能にする。これの主な用途は診断および状態格納と
復元操作である。 操作選択(1):このビットはハード布線機能がなく、
FPのシーケンサに対してテストが可能である。このビ
ットを使うと、制御プロセッサ・モジュール110は、
現在実行中のルーチン内の2つの操作の1つを実行する
ようにFPに通知することができる。例えば、このビッ
トは、偶数アドレスにあるデータ(奇数アドレスにある
データではなく)を計算で使用するように指定するため
に使用できる。 命令レジスタ選択(1):このビットはWO2にあるマ
イクロ命令フィールドでなく命令レジスタ(後述)を使
用させて、浮動小数点ALUと乗算機構の動作を制御す
るものである。 マスク・エラー(1):このビットはFPエラー条件(
FPマイクロコードによって判断される)が制御プロセ
ッサ・モジュール110のシーケンサに割込みを引き起
すのを禁止する。禁止されても、FPエラー状況は通常
条件コード選択プロシージャでテストすることが可能で
ある。 行なわれるときは、ポスト・コンピュータはFPのサブ
ルーチン・スタックにアクセスする必要がある。スタッ
クへのアクセスが可能であるときは、このフィールドが
どのスタック項目を読み取るかを選択するために使用さ
れる。アクセスされるスタック項目はスタック・ポイン
タが指している位置を基準にしたものであることに注意
されたい。 FP制御レジスタ:FP制御レジスタは並列マイクロコ
ード・ロード制御、割込みマスキング、クロック制御お
よびマイクロアドレス選択フィールドを一ケ所に収集す
る。 クロック制御(2):このフィールドを使用すると、制
御プロセッサ・モジュール110はFPのクロックを制
御することができる。FPクロックは動作させたままに
することも、停止させることも可能である。クロック制
御フィールドにある追加ビットは、FPマイクロコード
・クロックが制御プロセッサ・モジュール110のマイ
クロコード・クロックを使用して、FPを制御プロセッ
サ・モジュール110と同期して稼動させることを選択
するために使用されていたものである。 FPマイクロコード・アドレス・ソース(2)二二のフ
ィールドにより、制御プロセッサ・モジュール110は
FPに使用させるマイクロコード・アドレスを次のうち
の1つにすることを選択できる。 FPシーケンサ出カニこれはFPがマイクロコードを実
行させるときの通常のマイクロアドレス・ソースである
。 開始アドレス・レジスタ:これは並列マイクロコード・
ロード時に開始アドレス・レジスタを選択する。(CP
モジュール110またはホストがFPモジュール110
にマイクロコードの実行を特定のアドレスから開始させ
ることを指示するときは、別の仕組を用いて開始アドレ
ス・レジスタが選択される。) L久工久里力里l:これは、診断とマイクロコード・デ
バッグ時にサブルーチン・スタックへのアクセス権を得
るために制御プロセッサ・モジュール110によって使
用される。 割込みマスク:これらの4ビツトは、Fl’でどのqS
象が起きたとき、FPに割込みを引き起すかをFi制御
プロセッサ・モジュール110に選択させるものである
。これらの事象には、中断点、Cf’WAIT、FPW
八Iへ、レジスタ・ファイル交tX、FPエラーがある
。割込みが引き起されると、対応するマスク・ビットは
一時的にクリアされて、割込み要求がリセットされる。 並列マイクロコード・ロード制御(5):このフィール
ドには、WC5書込みイネーブル、WC3出カイネーブ
ル、診断シフト・レジスタ・モード、および信号中のク
ロックと直列データを制御する個別ビットがある。並列
マイクロコード・ロードは以下で詳しく説明するように
、制御プロセッサ・モジュール110によって制御され
る。 浮動小数黒面 アクセス・ループ(3):浮勅小数点糺
Uと乗算機構を通して稼動する直列ループは両チップの
内部状態をアクセスしたり、ある種の新しい状態情報を
ロードしたりするとき使用できるものである。内部レジ
スタとフラグはすべてこの方法でアクセスができる。こ
の直列ループを制御するために、制御プロセッサ・モジ
ュール110は直列モード、直列データ・イン、直列ク
ロックの3つの制御信号をもっている。直列クロックは
このレジスタ・ビットから直接に駆動されるので、必要
とする立上がり縁と立下がり縁を発生するためには制御
プロセッサ・モジュール110に切り替えさせる必要が
ある。 開始アドレス・レジスタ:制御プロセッサ・モジュール
110は、ジャンプ開始アドレス・マイクロコード・ビ
ットが使用されるときFPにその実行を開始させようと
するマイクロコード・ルーチンのアドレスを開始アドレ
ス・レジスタにロードする。このレジスタは並列マイク
ロコードの実行時にロードすべきWC5記憶位置のアド
レスを保持するためにも使用される。 命令レジスタ(8ビツト):制御プロセッサ・モジュー
ル110はWO2から取り出した浮動小数点AL(+と
乗算機構の命令を無視して、独自の命令を代用すること
ができる。命令レジスタ4510 (第45図に図示)
はこの命令を保持する。これの利点は′till IJ
IIプロセッサ・モジュール110が必要とする特定タ
イプの計算に合わせて汎用マイクロコード・ルーチンを
カストマイズできるので、非常によく似たアルゴリズム
で使用されるWCSスペース二を大幅に節減できること
である。 4犬γ兄レジスタ(ソースのみ):これはFPモジュー
ルにあるある種の内部情報をアクセスするために診断と
マイクロコード・デバッグでのみ使用される。アクセス
できる状況には、転送時に使用されるレジスタ・ファイ
ル・アドレスと保持レジスタ開始アドレスおよび問題状
況がある。 マイクロコード語の形式 FPマイクロコード形式の主要フィールドは第40図に
その概要が示されている。マイクロコード語の詳しい定
義は下達する。*印の付いた項目はWO2470から直
接に取り出されるので、これらが制御する装置の内部パ
イプライン・レジスタを使用する。フィールド別のビッ
ト数はかっこ内に示されている。 プログラム実行時(例・命令継続)にジャンプする次の
アドレス、条件付きテストか真であるときジャンプする
アドレス、およびジャンプ・サブルーチン命令のサブル
ーチン・アドレスを収容している。 偽アドレス(9)傘: このフィールドは条件付きテス
トか偽であるときジャンプする次のアドレスとジャンプ
・サブルーチン命令のサブルーチン・アドレスを収容し
ている。 π先取りアドレスX (9) * :このフィールドは
データが”X′ボートから読み取られたり、そのボート
上に送出されるレジスタ・ファイル内のアドレスを指定
する9ビツトを保持している。物理アドレスは9ビツト
のうちの7ビツトに入れられ、他の2ビツトはアドレス
をどのように修飾するかを選択する。オプションには、
修飾なしく物理)とソフト2重バッファリング(論理と
プレビュー)がある。 読取りアドレスY(9)中:このフィールドはデータが
“Y“ポートから読み取られたり、そのボート上に送出
されたりするレジスタ・ファイル内のアドレスを指定す
る9ビツトを保持している。物理アドレスは9ビツトの
うちの7ビツトに入れられ、他の2ビツトはアドレスを
どのように修飾するかを選択する。オプションには、修
飾なしく物理)とソフト2重バッファリング(論理とプ
レビュー)がある。 書込みアドレス(8):このフィールドはデータが書き
込まれるレジスタ・ファイル内のアドレスを指定する8
ビツトを保持している。物理アドレスは8ビツトのうち
の6ビツトに入れられ、他の2ビツトはアドレスをどの
ように@飾するかを選択する。オプションには、修飾な
しく物理)、ソフト2重バッファリング(論理)、ソフ
ト2重バッファリング(プレビュー)がある。このアド
レスは偶数アドレスに1つ、奇数アドレスに1つの対の
レジスタを選択する。レジスタの書込みは2個の別々の
書込みイネーブル・ビットによって制御される。(この
機能を使用すると、上述したように、同じ結果をレジス
タ・ファイルの偶数側と奇数側の両方に入れておくこと
ができる。)このアドレスは同じデータをレジスタ・フ
ァイルに入れるために使用される「ループバック」書込
みボートでも使用される。 偶数書込みイネーブル(1):このビットが活動してい
るとき、データは偶数レジスタ・ファイル・アドレスに
書き込まれる。 奇数書込みイネーブル(1):このビットが活動してい
るとき、データは奇数レジスタ・ファイル・アドレスに
書き込まれる。 浮動小数点演算(8)傘:これは実行したい浮動小数点
または整数演算を指定し、FMPY 440とFALU
450の両方で共用される。使用される特定部分別の命
令セットと命令コードの詳細はメーカのデータ資料に記
載されている。 FMPYイネーブル制御(4):このフィールドはデー
タの内部多重化と、人出力レジスタのローディング、つ
まり、Xボート・マルチプレクサ制御(”X”ボートは
最初のオペランド・バス431に結ばれたボートである
)、イネーブルXボート・レジスタ・データ・ロート、
イネーブルYボート・レジスタ・データ・ロート(”Y
”ボートは第2のオペランド・バス432に結ばれたボ
ートである)、イネーブルZレジスタ・ロー・ドじ2゛
ポートは結実用バスi 33に結ばれたボートである)
を制御する。 FALU 450イネーブル制御(5):このフィール
ドはデータの内部多重化と入出力レジスタのローディン
グ、つまり、Xボート・マルチプレクサ制御、Yボート
・マルチプレクサ制御、イネーブルXボート・レジスタ
・データ・ロード、イネーブルYボート・レジスタ・デ
ータ・ロード、イネーブルZレジスタ・ロードを制御す
る。 サイクル長さ(4):命令のサイクル長さを定義する。 これらは28nsから98nsの範囲であり、7ns刻
みで定義できる。 (以下余白) FMPYまたはFALU状況選択(1)中、 FklI
’Y4’loまたはFALIJ450のどちらかを選択
して状況バスを駆動する。 条件コート選択(5)・テストすべき条件を次の中から
1つ選択する。つまり、真強制(省略時の条件)、FP
W屓T、桁上げ(FALU)、ゼロによる割り算(FM
’PY)、問題状況(ゼロによる割り算)、問題状況活
動、CPオプション・ビット、Xデータ有効、Yデータ
有効、最後に転送されたデータのアドレス(つまり、偶
数か奇数)、マイクロコード・ループ、ゼロ、否定、割
込みフラグ、数字でない(NAN)、丸め、問題のオー
バフロー、問題のアンダフロー、問題の不正確、問題の
無効演算、問題の非正規化。これらのうち最後の10個
はFMPY440またはFALII450から取り出す
ことが可能である。 中断点(1):この命令に中断点が設定されていること
を示すために設定される。 FPDONE設定(1) :FPDONE状況フラグが
制御プロセッサ・モジュール110インタフエースで設
定されると、計算が完了したことが)両部プロセッサ・
モジュール110に通知される。 スワ・ンブ(1) レジスタ・ファイル内のソフト2
重バッファを交換することを要求する。この交換は、制
御プロセッサ・モジュール110と浮動小数点プロセッ
サ・モジュール130が共にスワップを要求するまでは
行なわれない。 スクラッチパッド制御(3):このフィールドはスクラ
ッチパッドとそのアドレス・カウンタの動作を制御する
。1つのビットはスクラッチパッド・メモリの書込みイ
ネーブルであり、他の2ビツトはアドレス・カウンタ操
作をロード、増分、減分、保留の中から選択する。 結実用バス出 選択(2):このフィールドは結実用バ
ス433を駆動するソースを選択する。ソースとなり得
るものには、FALU、 FMPY 440、スクラッ
チパッド・メモリ・データ、スクラッチパッド・メモリ
・アドレスがある。 スタック制御(2):このスタック制御フィールドは戻
りアドレスがブツシュ、ポツプまたは保留されるように
サブルーチン・スタック・ロジックを:tlJ御する。 ループバック書込みイネーブル(1):このビットはル
ープバック・ボート430Eを通してレジスタ・ファイ
ル430で書込みサイクルをイネーブルする。これによ
り、最初のオペランド・バスにあるデータが書込みボー
ト430Dで指定されているアドレスに複写される。奇
数と偶数の書込みイネーブルはレジスタ・ファイル43
0のどちらのバンクにデータを書き込むか、あるいはそ
れを両方に書き込むかどうかを選択する。 肌塁旦店ff1(IN(2):このフィールドはこのサ
イクルで生成された状況を問題状況に組み入れるか、問
題状況をクリアするか、保留するかを選択する。 m Ftt 65−二ム駄旦」u:これらの2ビツトは
FALt1450とFMPY 440内のXとYレジス
タに送り込まれるデータの多重化と2ポートから送り出
される倍精度結果の多重化を制御する。 日A6の使用:このビットはすべてのボートのレジスタ
・ファイルに対する最上位アドレス・ビットが1Iy2
接サイクルの間開じままであるとぎマイクロコード・
アセンブラによってセットされる。これはこのような場
合のサイクル時間を短縮するために使用される。 プログラムl麿れのf列 以下は疑似コードで書かれた簡単なプログラム例である
。この例は、新規な機能がどのように実行効率を向上さ
せるかを示したものである。 この例の動作図は第42図に示されている。この例で注
意すべきことは次の通りである。 犬かフこで囲んでまとめて示されている命令は並列に実
行されるものである。 通常、乗算はルーチンを通るバスごとに行なわれる。し
かし、これはルーチンを簡略化するために4つに減らさ
れている。 2重バッファリングはマイクロコードから見えない。 実行される計算式はC[nl = A[n]+B[nl
である。 ただし、nは0.、、:Iの範囲であり、8個のオペラ
ンドと4個の結果はレジスターファイル内の固有アドレ
スにおかれる。これらの参照の1つにある° (初期値
)は対応する要素の反対の要素、つまり、バッファが交
1^される前に2重バッファの反対側にある要素を示す
。 乗算ルーチンは別表に示す通りである。 (以下余白) 男11 表 FPベクトル乗算ルーチン(疑似コード)MUL3:
(Read Ajll and n(B from r
egister 1ife。 Do ’ re!Iult O=
O” OMULE: (Read IIIJ2
1 and B[21from regisLer f
ile。 Do caIcc山aion、 result Ra1
l −A[υ” B[11゜Write vslue
or result O1nto ’ fl
le at 0(Read AJ31 and B[
31hm register flle。 Do aalcuLation、 remnt R[2
1−A[2]°B[21゜Write value o
r result Roll 1nto regist
er (ie at Ca1l。 Te5t FT’W V true ’
to else continue ”(D
o calculation、 rwulL R[3]
= A[3]中B[3]。 Write value orrea+1t R[2]
1nto p −at C[2]Ta5t
true’ to
’(WriteV81ue orrwulL R[3
11nto $ file at C[3]Set F
T’DONE and 5W2Ip buffersT
est FPWArr fksg、 K true j
ump to MULil else jumpい MULI: (−に[01and B’[Ol 伝雇ケ
ー細r [e。 Do aaleuLation、 reault R[
3] = Aj3] ” B[3]。 Write value of readt 1
nto file at(−に[1] and B
’[1] 1rcym register file。 Do calculation、 rewm R’[0
]−に[01” B’[01゜Write value
or−t R[3] inI−leat C[3]S
et FPDONE and 5vnap buffe
rs。 MULE: (Raad A’[Ol and 11’
[0] from register rye。 Write value cfresult R[31
1nto registerfile at Q31S
et FPDONE and gwap buffer
s。 馳 このルーチンについて注目すべき点がいくつかある。 このルーチンはすべてのサイクルでFPUが使用中であ
ることを保つように最適化されている(ただし、そのた
めのデータがあることが条件)、もっと単純で効率が劣
る版には、命令MtlL5とそれ以上が備わっていない
。 8対の数を乗算するようにこれを拡張するために、MU
L4にある命令はレジスタ・アドレスが変わるたびに4
回繰り返される。 すべてのサイクルでFPUを動作状態に保つためには、
交換を行なわないで2重バッファの反対側からデータを
アクセスする必要がある。これは命令MUL5とそれ以
上で使用される。 次の組のデータが用意されている限り(つまり、FPW
^ITが偽である)、制御プロセッサ・モジュール11
0と同期をとる時間の無駄がない。 デバッグ・ハードウェア 浮動小数点プロセッサ・モジュール130上のデバッグ
・ハードウェアは制御プロセッサ・モジュル110やブ
タ重云送フ゛ロセッサ・モジュール120に含まれるも
のよりも機能に制約があるが、これはそこで実行される
マイクロコードが非常に単純化されているからである。 レジスタ・ファイルへのアクセスは局所転送バス422
を通して行なわれるので、モニタ・マイクロコードによ
って読み書きができるようになっている。FMPY 4
40とFALtl 450は直列走査ロジックが組み込
まれているので、このロジックによって内部バイブライ
ン・レジスタと状況/モード・レジスタがアクセスでき
る。次のマイクロコード・アドレスは開始アドレス・レ
ジスタ479をアクセスすることによって制御プロセッ
サ・モジュール110がアクセスできる。 中断点ロジックはマイクロコード語の中のあるビットを
使用して、中断点を定義する。中断点ビットが設定され
た命令が現れると、クロック発生a構は中止され、制御
プロセッサ・モジュール110のインタフェースにある
中断点状況信号がセットされる。中断点から継続するた
めに、制御プロセッサ・モジュール110はクロック発
生機構に送り込まれた中断点人力をクリアする。中断点
直後に十分な内部状態が格納されると、制御プロセッサ
・モジュール110はある浮動小数点プロセッサ・モジ
ュール130のマイクロコードの実行を開始しく開始ア
ドレス・レジスタの仕組を通して)直接アクセス状況と
スクラッチパッド・メモリをアクセスする。 マイクロコードは、1ステツプ進めるルーチン内のすべ
ての命令で中断点ビットをセットすることによってのみ
1ステツプ進めることができる。 デバッグ機能をサポートするもう1つの特徴は、サブル
ーチン−スタックを読み取ることができることである。 (以下余白) アプリケーション向きプロセッサ・モジュール第n図は
アプリケーション向ぎ数値処理モジュール130゛を備
えた数値高速化サブシステムの概要図である(これは「
アルゴリズム高速化機構jとも呼ばれる)。用意されて
いる強力な制御ツールを使用すると、制御プロセッサ1
10は1つまたは2つ以上の数値処理モジュール+10
と1つまたは2つ以上のアルゴリズム高速化機構130
゛とを任意に組み合せた形で制御することができる。 汎用浮動小数点機構130を1つまたは2つ以上のアル
ゴリズム高速化機構130゛と組み合せると、特に利点
が得られる。この種の結合システムでは、汎用浮動小数
点演算を必要とするいう制約から解放されて、アルゴリ
ズム高速化機構130゛を設計することができる。従り
て、アルゴリズム高速化機構は必要ならば、高度にアプ
リケーション向きの設計にすることができる。 特に利点のある組合せは、複合演算モジュールをモジュ
ール130′の1つとして含めることであアプリケ−シ
コン向さプロセッサはアプリケーション向き数値プロセ
ッサであることが好ましい。しかし、アプリケーション
向きプロセッサは任意的に(好ましさの点では劣るが)
、記号プロセッサ(つまり、1J5PまたはPROLO
Gを窩効率で実行させるとき必要になる追加のデータ通
路を備えたプロセッサ)や中立ネットワーク・マシンな
どの特異なプロセッサにすることち可能である。 複数の数値プロセッサ・モジュール130 (アルゴ
リズム高速化機構を含む)の制御について以下説明する
。 FFT高速化モジュール 第9B図はアルゴリズム高速化機構130°の1例のア
ーキテクチャが汎用浮動小数点モジュール130のそれ
とどのように異なるかを図式化して示したものである。 図示のモジュールは層数的積分変換操作を行なうように
特に最適化されている。例えは、このモジュールは高i
!フーリエ変換(FFT)アルゴリズムを高速に実行す
る。このアルゴリズムの実行例について以下検91する
ことにする。 第9B図の実施例では、レジスタ・ファイル91゜はレ
ジスタ・ファイル430よりも高度化された多重ボート
を備えている。レジスタ・ファイル910は4個の読取
りボートと4個の書込みボートのほかに、キャッシュ・
バス144 とのインタフェースとなる広幅両方向ボー
ト910八を備えている。 読取りボート910Bとして示されている4木の線は実
際には折り返されている。実行される乗算は乱数乗算で
ないのが代表的であるが、係数(これはデータ語はどに
変化することが少ない)による乗算であるので、サイク
ルの大部分ではサイクル当たり1つだけの複合語の入力
が必要である。 (しかし、このことは最終サイクルでは該当しない、) 4つの乗算機構920は整数または浮動小数点機構にす
ることが可能である。これらは上述した乗算機構と同じ
にするのが最も好ましいが、勿論側の計算機構の使用も
可能である。これらの機構は新しい係数の読取り指示が
あるまで、係数をレジスタに保持している。 従って、4つの乗算機構920と加算機構930で完全
な複合乗算機構9+1を構成することかてきる。複合乗
算機構911は2つの複合アドレス912とバイブライ
ン化されている。 2つの複合加算機構912に対する人力には、複合乗算
機構911の出力だけでなく、遅延ブロック940経由
で送られてきた読取りボート!1101’、からのデー
タが含まれる。(この遅延ブロックは任意的にレジスタ
・ファイル910上のボー1=910Bと910 Cを
共用するために使用することもできる。) 複合加算機構の出力は書込みボート910Dに結ばれて
いる。 従って、この構造によると、バタフライ計算を非常に効
率よくバイブライン化することができる。 データ・キャッシュ・メモリ・モジュール目0データ・
キ〜・ツシュ・メモリ(1士高パンF (;iF域)幅
の大容量メモリである。記fQ容塁は現在では2Mnで
あり、バンド幅は毎秒320M11である。このメモリ
は多重ボー1〜を備えているので、外部世界とのデータ
転送を浮動小数点計算と並行に行なうことができる。計
算が「調歩」式で行なわれて、浮動小数点プロセッサ・
モジュール130が長時間アイドルになるのを防止する
。 第5図はデータ・キャッシュ・メモリ・モジュール14
0の主要機能を示している。このモジュールの中心とな
るのは、大きなメモリ・ブロック510である。本好適
実施例では、このメモリ・ブロック510は8個のシン
グル・イン・ライン・モジュールで構成され、各々は8
個の32にx8 SRAM5を備えているので、総計2
メガバイトのメモリになっている。しかし、当業者なら
ば容易に理解されるように、このメモリ構成は高度半導
体部品の供給変化や特定アプリケーションの要求に応じ
て変更することが可能である。 特に、ある種のアプリケーションでは、メモリ容量を大
きくすると利点が得られる。このメモリ・バンク510
で×256構成を使用すると、少なくとも完全な並列ア
クセスの場合には、アドレス空間の使用効率が向上する
。従って、本好適実施例では、24ビツト・アドレス情
報がアドレス入力511 にあるメモリ・バンク51O
に人力される。書込みイネーブル人力512は実際には
8ビツト幅であるので、1つの256ビツト・メモリ・
ブロック内の個々の32ビツト語が書込みのために選択
できる。これは下述するような利点が得られる。データ
・ボート513は256ビツト幅である。ブロックの機
能には、まだモジュール140全体がもつような多重ボ
ート機能を備えていない。この多重機能を実装するため
のロジックとメモリ・バンク510をアクセスするため
のロジックについて、次に説明する。 第5図の下方に示したのは制御プロセッサ110に結ば
れた32ビツト幅データ・バス(CDバス112)と、
データ転送プロセッサ120に結ばれた32ビツト幅バ
ス(TDババス22)である。これらのバスの各々はま
ず保持レジスタ・バンク560に送り込まれる。レジス
タ・バンク560の各々は並列の8個の32ビツト幅レ
ジスタ551 を備えている。(本好適実施例では、こ
れらのレジスタ561の各々は実際には、書込み保持レ
ジスタ561°が読取り保持レジスフ56ビと並列にな
るように構成された4個の74A1.5852装置を使
用して構成されている。レジスタ・セット56〇八、5
60B、420の構造は第42図に詳細が示されている
。 メモリ・バンク510がアクセスされるには、アドレス
をボート511から得る必要がある。このアドレスはマ
ルチプレクサ520を通して、CAババス11 (こ
のバス上には制御プロセッサから出されたアドレスが送
られる)からか、TAババス21(このバス上にはデー
タ転送プロセッサ・モジュール120から出されたアド
レスが送られる)から与えられる。選択人力521はこ
れらの入力のどちらをアドレス・ボート511 に送る
かを選択する。 マルチプレクサ520に対する選択人力521は仲裁ロ
ジック530によって生成される。この単純なロジック
は、DTPがアクセスを要求し、CPがア、クセスを要
求していない場合だけ、DTPモジュール120へのア
クセスを許可する。選択信号521はアドレス・マルチ
プレクサ520にだけでなく、書込みマスク・マルチプ
レクサ530とDTP転送ロジック540にも送られる
。 下述するように、書込みマスク人力5!2はTDババス
22またはCDバス122からの書込みのときに非常に
利点がある。書込みイネーブル人力512は分解能が8
ビツトであるので、各メモリ・ブロック510内の8個
の32ビツト語は、1回の完全並列書込み操作時に個別
的に書込みイネーブルさせることができる。従って、例
えば、制御プロセッサ110が8未満の語をメモリ・バ
ンクのある行に書き込むことを要求したときは、必要と
する語位置のレジスタ561に必要とするデータ値がア
ップ・ロードされる。さらに、8ビツトが書込みマスク
線551に送出されて、レジスタのどちらにアドレス5
11 ((:Aバス111からの)で指定された行に
あるメモリ・バンク510の対応する語に書き込むべき
かを示している。(上述したように、CA)<ス111
からマルチプレクサ520へのアドレス転送はIPU
340め出力によって制御される。)第25図は書込み
マスク・ロジックを別の見方で見たものである。同図に
おいて、FP書込みマスク・ロジック251O2CP書
込みモニタ・ロジック2520、およびQ7p 書込み
モニタ・ロジック2530は3つの別ブロックに分割さ
れて、マルチプレクサ530に対する人力となっている
。第26図は書込みモニタ・ロジック・ブロックの動作
をもっと詳しく示したものである。ロジック261Oに
対する人力には、レジスタ選択、全部書込み、DCM書
込み、保留レジスタ・ロードなどがある。出力は8個の
フラグ・ビットであり、レジスタ2620に格納されて
いる。 転送ロジック540はデータ転送プロセッサ120内の
マイクロコード命令列の一部であるマイクロコード命令
フィールド542によって駆動される。 同様に、CD転送ロジック550は制御プロセッサ・モ
ジュール110のシーケンサ210によって駆動される
マイクロコード命令の一部であるマイクロフード命令ビ
ット552にj:って駆動される。(実際には、このシ
ーケンサによって駆動されるマイクロコードの一部は分
散しておくのが好ましい。つまり、マイクロ命令のフィ
ールドの一部は制御記憶機構220から切り離して保管
されるが、シーケンサの出力である一連のマイクロ命令
アドレス211によってクロックがとられている。これ
により、システムから見て大幅な利点が得られるが、こ
れについては下述する。) 転送ロジック540と550の他の出力543と553
には、それぞれのレジスタ・バンク560の制御といっ
た制御機能があるが、この中にはクロッキングと出力イ
ネーブルが含まれる。(レジスタ・バンク560の各々
は、レジスタ・バンクの両側に2つの出力イネーブルと
、2組のクロックをもっている。また、CP転送ロジッ
ク550によって制御される機能の1つとして、メモリ
・バンク510の出力イネーブル線514がある。) キャッシュ・バンク510へのアクセスを要求するため
にFPモジュール130からの直接人力はないが、これ
は、この種のアクセスは1゜制御プロセッサ・モジュー
ル110によって制御されるからである。こうすると、
下述するように、大幅な利点が得られる。 メモリイ1が成 高速化サブシステムは広幅メモリ・アーキテクチャを採
用している。データ・キャッシュ・メモリ140をアク
セスするたびに、256ピツトが読み書きされる。これ
はサイクル当たり8個の浮動小数煮詰に相当する。 データ・キャッシュ・メモリ140は3ポートで制御プ
ロセッサ・モジュール110、浮動小数点プロセッサ・
モジュール130、およびデータ転送プロセッサ・モジ
ュール120に結ばれているが、制御プロセッサ・モジ
ュール110と浮動小数点プロセッサ・モジュール13
0によるアクセスは制御プロセッサ・モジュール110
のマイクロコードによつて制御されるので、仲裁とアド
レス多重化は2通りの方法だけで行なわれる。 データ・ボー1〜 データ・キヤツシユ、・メモリと結ぶボートは3つある
。Fl)モジュールにつながるボートは256ビツト幅
であり、制御プロセッサ・モジュール+10とデータ転
送プロセッサ・モジュール120の各々からはそれぞれ
32ビツト幅ボートとして見える。 32ビツト幅ボートに対するデータ経路と記jQ装置は
データ・キャッシュ・ブロック+40の一部に含まれて
いる。 メモリ配列から32ビツト・バスの1つに送られる25
6ビツト・データの多重化は32個の両方向レジスタを
通して行なわれ、これらのレジスタは4個ずつ8群に配
置されている。各群は読取り方向に32ビツト(つまり
、浮動小数煮詰の1語)を、書込み方向に32ビツトを
格納する。これは保持レジスタと呼ばれる。各レジスタ
を特定して名前を付けると、インタフェースのプロセッ
サ側から見て、読取り保持レジスタおよび書込み保持レ
ジスタとなる。 データがメモリ配列から読み取られるときは、256ビ
ツト全部が保持レジスタに格納され、これらのレジスタ
の出力イネーブルは必要とする浮動小数煮詰を選択して
32ヒツト・ボートに送出するように制御される。 データがメモリ配列に書き込まれるときは、32ピツ)
・・ボートから更新されたレジスタだけが格納される。 これは書込みマスク・ロジックによって制御され、各群
ごとに1つの割合で8個の書込みイネーブルを使用して
達成される。 32ビツト・ボートは両方ともデータ経路と記憶装置ロ
ジックが同じになっている。 浮動小数点プロセッサ・モジュール130につながる2
56 ビット・ボートは32ビツト・ボートと同じよう
なロジックを備えているが、浮動小数点プロセッサ・モ
ジュール110上に置かれている。データ・キャッシュ
・メモリを、モジュールを使用して将来拡張できるよう
にするために、アドレス・バス(24ビツト)と書込み
イネーブル(8)はモジュール・コネクタ3810 (
第38A図と第38B図に図示)に結ばれている。 CP転送ロジック CP転送ロジックはCP保持レジスタ(またはFP保持
レジスタ)とデータ・キャッシュ・メモリ間のデータ転
送を担当する。 保持レジスタにあるデータはCDソース・マイクロコー
ド・フィールドが読取り保持レジスタを選択したときア
クセスされる。CPアドレス・バスの最下位3ビツトは
駆動すべき32ビツト語を選択してバス上に送り出す。 この過程では、データ・キャッシュ・メモリは使用され
ないが、必要ならば次の組のデータをアクセスすること
が可能である。 データを書込み保持レジスタに書込むときは、CD宛先
マイクロコード・フィールドは保持レジスタをグループ
として選択し、CPアドレス・バスCAIIIの最下位
3ビツトは更新すべき32ビツトを選択する。書込み保
持レジスタが更新されるときは、対応する書込みフラグ
がセットされる。従って、データ・キャッシュ・メモリ
に対する書込みが行なわれるときは、制御プロセッサ・
モジュール■0によって更新された保持レジスタたりが
実際にメモリ配列に書き込まれる。対応する保持レジス
タが更新されていないメモリ配列内の語は変更されない
。データ・キャッシュ・メモリに書込みが行なわれると
(データ・ソースが制御プロセッサ・モジュール110
である場合)、書込みフラグはすべてリセッI・される
。制御プロセッサ・モジュール110がデータ・キャッ
シュ・メモリへの書込みと同じサイクル時に書込み保持
レジスタの1つを更新していた場合は、その書込みフラ
グはセットされたままである。 例えば、メモリをある定数値にクリアするときこの選択
的書込みメカニズムをバイパスすると好都合の場合があ
る。その場合には、制御プロセッサ・モジュール110
は選択的書込みを無視して、すべての語を更新させるこ
とができる。この選択的書込み機能を使用しないと、デ
ータ・キャッシュ・メモリの書込み動作は非富に遅くな
り、データ・ブロック(256ビツト)を読取り保持レ
ジスタに読み込み、変更すべきでない語を書込み保持レ
ジスタに転jXシ、書込み保持レジスタを新しいデータ
で更新してから、データ・キャッシュ・書込みサイクル
を実行することになる。現アーキテクチャでは、データ
を読取り保持レジスタから書込み保持レジスタに複写す
るには、1語当たり1サイクルが必要である。 書込みフラグの状態はマイクロコードのデバッグ時に状
態格納のために、制御プロセッサ・モジュール110に
状態を壊さないで抽出させることが可能である。 読取り保持レジスタは書込み保持レジスタとは別になっ
ているので、書込み保持レジスタの内容を壊さないで複
数の読取りサイクルを実行することができる(逆の場合
も同じ)。 保持レジスタ・セットとデータ・キャッシュ・メモリ間
のデータ転送を制御するときは、次のようなビットがイ
吏用される。 データ・キャッシュ・アクセス(1):このビットは制
御プロセッサ・モジュール110が自身で使用するため
に、あるいは浮動小数点プロセッサ・モジュール130
とのInでデータをやりとりするためにデータ・キャッ
シュ・メモリへのアクセスを要求すると、活動化する。 アクセス・フラグはパイプライン化されていない。従っ
て、データ転送プロセッサ・モジュール+20からの要
求との仲裁は要求が行なわれたサイクルが始まる前に解
決することができる。 データ・キャッシュ書込みイネーブル(1):このビッ
トはデータ・キャッシュ・メモリで書込みサイクルを生
成する。 データ・キャッシュ書込みオール(1)、このビットは
データ・キャッシュ・メモリ内の語を選択的に更新する
通常の書込みイネーブル・ゲート操作を無効にして、す
べての語を書き出すようにする。これは、メモリをブロ
ック単位で定数値にセットするとき便利である。 データ・キャッシュ・ボート選択(1):このビットは
データ・キャッシュ転送のソースまたは宛先として、F
Pモジュール保持レジスタか制御プロセッサ・モジュー
ル110保持レジスタのどちらかを選択する。 モート・レジスタには保持レジスタを制御する3ビツト
がある。2ビツトは保持レジスタを使用するか、バイパ
スするかを選択する。3番目のビットはデータ・キャッ
シュ・メモリがDCMを駆動するのを禁止して、書込み
保持レジスタと読取り保持レジスタの間にループバック
・データ通路がセットアツプされるようにする。これら
の機能が存在するのは、状態格納および復元マイクロコ
ードがデータ・キャッシュ・メモリの書込み)桑作を最
初に行なわないで書込み保持レジスタとさらにより正確
な診断情報をアクセスできるようにするためである。 制御プロセッサ・モジュール110は次の2通りの方法
でデータ・キャッシュ・メモリを使用することができる
。 最初の方法は広幅メモリ・アーキテクチャを無視して、
それが丁度32ビット幅であるものとして扱うことであ
る。この場合は、CPモジュール110はすべての読取
りアクセスの前とすべての書込みアクセスのあとてアク
セス・サイクルを要求するだけである。この方法を便用
−・)−ると、データ・キャッシュ・メモリをデータ・
アクセスがパイプライン化されたメモリと見ることがて
きる。この方法はデータ・キャッシュ・メモリの使用を
節単に1−るが、データ中云送フ゛ロセ・ンサ・モジュ
ール120のボートにサービスでとるメモリの能力を効
率よく使用できない。また、この方法によると、制御プ
ロセッサ・モジュールllOか順次データをアクセスす
るときに非効率が生じる。しかし、非順次データ・アク
セスの場合は、次の方法は使用できないので、この最初
の方法を使用せざるを得ない。 制御プロセッサ・モジュール110が順次メモリ・アク
セスを行なうとき、メモリ・バンク510をアクセスす
るたびに、すへての保持レジスタ561に対する読み書
きに8サイクルが必要である。データ・キャッシュ・メ
モリ・アクセスは保持レジスタ・アクセスとパイプライ
ン化できるので、8サイクルのうち7サイクルをデータ
転送プロセッサ・モジュールか自由に使用することかで
きる。 データ・キャッシュ・メモリ・アクセスは1」動的に行
なわれないので、マイクロコードて8サイクルごとにア
クセス・サイクルを指定できる。この種の転送は、外部
インタフェースとのi?Uの入出力転送が性質上順次で
あるのが通常であるので、ブタ中云逢フ゛ロセ・ソサ・
モジュール120てよく行なわれる。 制御プロセッサ・モジュール110はデータ・キャッシ
ュ・メモリとFPモモジュール上保持レジスタ間のデー
タ転送も担当する。その場合には、基本制御はデータ・
キャッシュへの書込み時にあるブロック内のどの語を更
新するかを判断する場合以外は同じである。その場合、
上述したように書込みフラグに対して別の方法が取られ
る。 違いのいくつかの要因を挙げると、次の通りである。 FPのレジスタ・ファイルと保持レジスタ間のデータの
流れを制御する転送ロジックにはある種の制約があるの
で、制御プロセッサ・モジュール110で使用されてい
るより汎用的マスク生成機構は不要である。 Fl”のレジスタ・ファイルから゛の通常のデータ中云
送はデータ・ブロック単位(つまり、ベクトルの一部)
で行なわれ、これが1転送サイクルで行なわれるときは
、いくつかの書込みマスク・ビットを制御プロセッサ・
モジュール+10の場合のように個別的にではなく、並
列にセットしなければならない。 1つのFP書込みマスク生成機構は複数のFPモジュー
ルと競合しなければならない。 FP書込みマスクは更新すべき語と最初の語からの連続
語の個数を指定することによって生成される。開始位置
はCPアドレスの最下位3ビツトによって与えられ、長
さはマイクロコード命令のフィールドとして保存されて
いる。 DPT転送ロジック540 データ転送プロセッサ・モジエール120の転送ロジッ
クはデータ転送プロセッサ・モジュール+20のデータ
・バス(TCバス122)とメモリ配列器のデータ転送
を担当する。これは次の点を除けば′C1ν転送ロジッ
クとほぼ同じである。 浮動小数点プロセッサ・モジュール120に関連する部
分がない。 出力信号は仲裁ロジックの結果によって修飾される。 仲裁ロジック535 仲裁ロジックはサイクル単位で誰にデータ・キャッシュ
・メモリをアクセスさせるかを判定する。競合する2ボ
ートには、CP/FPとデータ転送プロセッサ・モジュ
ール120がある。CP/FPはデータ転送プロセッサ
・モジュール120より優先権があるので、データ転送
プロセッサ・モジュール120が空きメモリ・サイクル
を待たされることになる。データ転送プロセッサ・モジ
ュール120は制御プロセッサ・モジュール110に割
込みをかけることによって、制御プロセッサ・モジュー
ル+10に空きメモリ・サイクルを手放させることがで
きる。 データ・キャッシュ・メモリの仲裁は両方のホトのアク
セス要求(Cr’/FPの場合は要求)を同期化−・J
−ることにJ:つて単純化されている。これは同しクロ
ック生成機構を制御プロセッサ・モジュール110とデ
ータ転送プロセッサ・モジュール120間て共用させる
ことで達成される。この程度の同期化かないと、データ
転送プロセッサ・モジュール120がアクセスを始めた
ばかりの場合もあるので、制御プロセッサ・モジュール
110があるサイクル時にアクセス権があると想定でき
なくなる。 サイクル単位の仲裁は仲裁ロジックで行なわれる。仲裁
ロジックはCP要求とDTP要求の2つの要求18号を
受は取る。これらは共に、そのボートがデータ・キャッ
シュ・メモリをアクセスすると主弓長されるマイクロコ
ード・ヒ゛ットである。これらのマイクロコード・ビッ
トはレジスタに格納されないので、仲裁はアクセスが行
なわれる前にそのサイクルで解決される。これにより、
データ転送プロセッサ・モジュール120の許可信号は
、シーケンサのFL八八人人力バイブライン化によって
起こる余分のサイクル遅延を引き起さないで、十分な時
間的余裕をもってデータ転送プロセッサ・モジュール1
20にテストさせることかできる。 2つの出力信号として、データ・キャッシュ・メモリへ
のアクセス権かあることをデータ転送プロセッサ・モジ
ュール+20に知らせるDTI’許可信号と、アクセス
と書込みイネーブル・マルチプレクサを制御する信号と
がある。 CP/FPは、データ・キャッシュ・メモリをそれが1
ボート装置であるものとしてアクセスする。 しかし、データ転送プロセッサ・モジュール120はア
クセスを要求するたびに、以下のプロシージャに従わな
ければならない。このプロシージャは疑似コードで書か
れている。 (保持レジスタに書込みを実行) (アクセスがWAITへのジャンプに失敗したWAIT
:場合は、データ・キャッシュ・メモリへの書込みアク
セスを要求、そうでなければ、継続) (他の作業の実行) この例に関して注目すべき点をいくつか挙げると、次の
通りである。 このロジックは大量の作業を並行に続行させることかで
きる。 アクセスが失敗すると、書込み(または読取りアクセス
での保持レジスタのローディング)は自動的に禁止され
る。 テスト結果には、アクセスが成功したか否かが示される
。失敗した場合は、データ転送プロセッサ・モジュール
120は、アクセスする命令をループさせることによっ
て再試行する。 この例から明らかなように、データ転送プロセッサ・モ
ジュール120はアクセスが許可されるまで待たされる
ことになる。しかし、通常はいくつかのサイクルの間だ
け待たされることになる。アクセスがそれでも許可され
ないと、DTPは制御プロセッサ・モジュール110に
割込みをかけることになる。制御プロセッサ・モジュー
ル110が割込みサービスを行なっている数サイクルの
期間、データ・キャッシュ・メモリは空きになるので、
データ転送プロセッサ・モジュール120がアクセスす
ることがてきる。 コマンド・メモリ190 コマンド・メモリ190を通して、制御プロセッサ・モ
ジュール+10とデータ巾云送プロセッサ・モジュール
120は相互に連絡し合うことができる。 双方はこのメモリに対しては平等のアクセス権をもって
いる。本好適実施例では2重ポートIIへMが使用され
ている。コマンド・メモリは32ビツト1眉x 2に
奥行である。 第15図はこのメモリ構成の重要な機能のいくつかを示
したものである。コマンド待ち行列の動作について、以
下第15図を参照して詳しく説明するが、そこではCP
モジュールとDTPモジュール間のプロセッサ・イン役
フェースについても説明する。しかし、このメモリ構成
のいくつかの主要機能についてここで説明しておく。 これらの2重ボートRAMは、2アドレスが異なるとぎ
は、両ボートが無制約にアクセスできるようにする。2
アドレスが同じであり、両方の側が害込みを行なう場合
は、1.21果がどうなるか分からない。下述するよう
に、2プロセッサ間の通信プロトコルは、両方が同じア
ドレスに書き込むことがないようになっている。 :CIJ iJlプロセッサ・モジュール110 とデ
ータ転送フロセッサ・モジュール120かコマンド・メ
モリをどのように使用するかはソフトウェアで制御され
る。本好適実施例では、割振りは次のようになっている
。つまり、CPモジュール110に対するコマンド待ち
行列(例、メモリ・スペースの約1290DTPモジユ
ール120に対するコマンド待ち行列(例:メモリ・ス
ペースの約38駒、状態格納と復元データ構造(例:メ
モリ・スペースの約50%F)。 状態格納と復元データ構造はマイクロコード・デバッグ
・モニタが制御プロセッサ・モジュール110と浮動小
数点プロセッサ・モジュール130の状態情報(ある種
のコマンド構造と共に)を保管しておくために使用する
ために予約されている。 ポスト・インタフェース・ロジック160第6図は、第
1図にその全体がブロック160でボされているポスト
・インタフェース・ロジックの主要構成要素を示してい
る。好適実施例では、システム・バスはVMEバスであ
るので、このインタフェース・ロジックは未明細書中で
はr VMEインタフェース」と呼ぶ場合もある。しか
し、当業者なら明らかなように、他のシステム・バスを
幅広く使用することも可能であり、開示されている新規
事項はこの種のシステムに容易に適用することが可能で
ある。 バス・コントローラ550はVMEバス・サービス線と
のインタフェースとなって、バス許可、バス要求、リセ
ットといったインタフェース信号を出力する。 割込みロジックft80は割込み処理で使用され、ホス
トに割込み通知を行なう。(これらの割込みはVMEバ
ス・サービス11600B上に送出される。)本好適実
施例では、これは下述するように、PALを用いてイ、
+ζ築されている。 さらに、IIM八コシコンーラ640も用意されている
ことが9Tましい。これはVMEバスとFIFO670
間のデータ処理を低レベルで制御するもので、途中に介
入するステップをデータ転送プロセッサ・モジュール+
20に監視させる必要がない。本好適実施例では、DM
Aコントローラは下述するように、PALを用いて構築
されている。 VMEインタフェースは主に、次の4つのサービスをホ
スト・プロセッサに提供する。 3種類のプロセッサ・モジュールとの直列走査ループ・
インタフェース経由のマイクロコード・ローディング。 コマンド起動と状況監視 DMAによるホスト・メモリへのアクセスによりVME
アドレス空間との間のデータ転送(これにより、サブシ
ステムは独自のデータを転送できる)デバッグ(ハード
ウェアとソフトウェア)機能。 このインタフェース・ロジックの内部接続にはデータ用
のTDババス22 とアドレス情報用のTババス+21
、 CPマイクロアドレス・バス21111. DT
I’マイクロアドレス・バス:Ill[l、直列マイク
ロ命令ループ225、および多数の割込み線と状況線が
ある。 木実層側では、外部接続はVMEバスとの接続である。 このバスの線は第6図にアドレス線60〇八、データ線
[100B、およびバス・サービス線(状況線と制御線
を含む) aoocとして別々に示されている。 本好適実施例はVMEインタフェース規格の電気的定義
に準拠している。この規格はIEEE標準P1014/
D1.2およびIEC821として知られている。 インタフェース・ブロック160は32または24ビツ
ト・アドレスと32または16ビツト・データを受は付
ける。本好適実施例では、アドレス指定とデータ・ルー
チンを単純化するために、使用できるアクセスのタイプ
に若干の制約がある。 別の方法によれば、他のバス構造を幅広く使用すること
も可能である。例えば、必要ならば、VersaBus
、 FutureBus、 Multibus If
Nubusなどを簡単にシステムに組み入れる設計にす
ることが可能である。高速コンピュータ・システムの場
合には、光フッ・イバに変調固体素子レーザを使用して
先バスを使用すると利点が得られる。 物理バス線とのインタフェース VIIEバスと直接インタフェースとなるロジック・ブ
ロックについて最初に説明する。そのあとで他のロジッ
クとメモリ・ブロックについて説明する。最後に、レジ
スタ・ブロック612について説明する。このレジスタ
・ブロックは、他のブロックの動作を分かりやすくする
ために、かなり詳しく説明されている。 バス・コントローラ650 バス・コントローラ650はバス・サービス線600C
とのインタフェースとなり、ボード・アドレス・デコー
ダ652からその特定ボードがアドレスされているかど
うかを示す出力を受は取る。 デコーダ652はVMEバスのボード・アドレス線を絶
えず監視して、このデコード出力を送出する。ホスト−
・システムによって指定されたサブシステムのアドレス
は、DrLスイッチを用いて導入時にユーザによってセ
ットされる。アドレスと1爬能コードの実際のデコート
はf’ALの中て行?2われるので、サブシステムは目
標vh+εシステムに合った構成にすることかできる。 バス・コントローラ650はVME制御プロトコルに従
って、両方向データ・バッファ620または両方向アド
レス・バッファ630にイネーブル信号を送る。 バス・コントローラ650はDMAコントローラ650
とVME割込みロジック680(および以下で詳しく説
明するように他のロジック・ブロックからの)からの状
況情報を受は取るようにも接続されている。また、バス
・コントローラ650はDMAコントローラ540.V
ME割込みロジック680、および他の多くブロック(
下述する)に制御信号を送るようにも接続されている。 バス・コントローラ650の状況と制御接続は広範囲に
わたっているので、混乱を避けるために個別的には示さ
れていない。 しかし、これらの接続は当業者には容易に理解されるは
ずである。 木好適実施例では、これはVMEバス・コン1−ロラ装
置(Signcjics 5CB6872)として構成
さ且でいる。これはマスク・インタフェースとバス・エ
ラー・サイクルを含むすべてのバス・フロトコルを取り
扱う。 マスク・モートとスレーブ・モード シMEインタフェースは2つの別個のインタフェース、
つまり、スレーブ・インタフェースおよびマスク・イン
タフェースと考えることができる。 マスク・モードでの動作について、DMAコントローラ
640と関連づけて以下説明する。 スレーブ・モードはスレーブ・アドレス・デコーダ63
2を使用して行なわれる。高速化サブシステムがスレー
ブ・モード(これはバス・コントロラ550によってデ
コードされたVMEコマンドで示される)で動作してい
るときは、コントローラ650は両方向バッファ630
を通過モードに置いて、スレーブ・アドレス・デコーダ
をイネーブルする。そのあと、スレーブ・アドレス・デ
コーダはVMEアドレス線600Aから持ち込まれたア
ドレスをデコードして、該当の装置をイネーブルする。 この場合も、スレーブ・アドレス・デコーダの出力は広
範囲に渡って接続されているので、個別には示されてい
ない。 スレーブ・アドレス・デコーダはVMEプロトコルに阜
拠する必要なりTACK生成ロジックも備えている。 VMEプロトコルの下では、現在のバス・マスクがボー
ドをアドレス指定し、そのホードはスレーブ・モードに
あるときだけ応答することができる。というのは、どの
時点でも活動マスクは1つだけが許されるからである。 (バスへのアクセスが許可されるまで、従って活動状態
になるまで待たされているマスクは多数存在することが
あり得る。)そのあと、マスクはスレーブがDTACに
(データ転送受領確認)で応答して、データを受は取
ったこと(書込み操作)またはデータを送ったこと(読
取り操作)をマスクに知らせるまで、待たされることに
なる。 データ バッファ620 これは両方向バッファであり、VMEデータ線6001
1との直接インタフェースとなるものである。 アドレス・バッファ630 これは両方向バッファであり、VMEアドレス線600
Bとの直接インタフェースとなるものである。 VMEインタフェース・メモリ660 このメモリはインタフェース150内の大きな記千怠ブ
ロックとなるものである。これのいくつかの用途は、D
TPモジュール120の動作と関連づけて上述した通り
である。 メモリ・マツプ 各高速化サブシステムは8にBのVMEアドレス空間を
使用する。このアドレス空間のベース・アドレスは8個
のスイッチによって選択される。レジスタ・アドレスは
このベース・アドレスからのオフセットとして与えられ
る。高速化サブシステム用のメモリ・マツプは2つの区
域に分割できる。 サイズが2にx 32ビツト語のメモリ区域。このメモ
リ区域の使用法はソフトウェアで制、餌1される。この
区域に納められるデータ構造のいくつかは以下に挙げる
通りである。 メモリ・スペースの下方部分を占有するレジスタ区域。 この区域は、詳しく下達するように、多くの重要な機能
用に使用される。 メモリ区域はマイクロコード・デバッガと通常の実行時
インタフェース間で共用される。 デバッガ区域には、モニタ・マイクロコードがメモリ、
FIFOなどを読み取れるようにするコマンド待ち行列
の他に、サブシステムの状態格納情報が収容される。 実行時インタフェースは主に装置ドライバがそこにコマ
ンドを追加して、B11tzマイクロコードがそこから
コマンドを削除できるコマンド待ち行列から構成されて
いる。 ハードウェアをアクセスする仕方にはいくつかの制約が
ある。これらの制約は主にハードウェアを単純化して、
それでもなお、16または32ビツト・データ・バス・
インタフェースを可能にするためのものである。制約と
は、バイ1−・アクセスがサポートされないこと、ピッ
1〜・アクセスは長語(32ビツト)境界で行なう必要
があることである。 メモリ600 とデータFIFO670は32ビツト幅
である。ホスト・システムが16ビツト・システムであ
る場合は、上位16ビツトはアクセスができない。 16ビツト・システムがメモリ内の連続アドレスに書込
みを行なう場合は、アドレスを4ずつ増やして行って、
次の記憶位置に移る必要がある。 好適なサブシステムで使用されるVMEメモリ・マツプ
は次のようになっている。 レジスタ オフセット 制御レジスタ O ストローブ・バッファ 4 状況レジスタ 4 WC5制御レジスタ08 WCS制御レジスタ112 WCSデータ・レジスタ 16 CPマイクロアドレス 20 DTPマイクロアドレス 24 データFIFO28 幅 16読み書き 16書込み 8読取り 16読み書き 8読み書き 1B読み書き 16読み書ぎ 6読み書き 32読み書き IFメモリ660 4096 32読み
書きデータPIFO670 データFIFO870はデータ転送操作における重要な
機能を備えている。 通常の動作モードでは、DMAコントローラがデータF
IFOを排他的に使用するので、データFIFOがホス
トによってアクセスされることはない。ホストは制御レ
ジスタ内のFIFOアクセス・ビットをリセットするこ
とでデータFIFOへのアクセスが可能になる。 PIFO67Gで示されたブロックは物理的に2個のF
IFOで構成され、両方向FIFOの機能をもっている
。これらのFIFOの一方はホストによって読み取られ
、他方はホストによって書込まれる。FIFOの他の終
端はDTPによってアクセスされる。(従)て、−船釣
に、ホストがFIFOに書キ出したあとでFiFOを読
み取る場合は、読み取られたデータは書き出されたデー
タと異なることになる。)ホストがFIFOをアクセス
するときは、FIFO状況をモニタして、FIFOが空
のときに読み取られたり、−杯のとぎにuFき込まれた
りしないようにしなければならない。(ポストはこれら
のFIFDを診断目的で、あるいはDMAでなくポーリ
ングされた人出力が必要である場合にアクセスする必要
があることがある。) VME″!、IJ人込ミロック680 VMEプロトコルはいくつかの割込みを用意している。 これらの割込みはDTPモジュール120によって引き
起すことができる。 DTPモジュール120は割込みベクトルも定義してい
る。ベクトルは割込み理由に応じて変更することができ
るが、割込み原因をVMEインタフェース・メモリ66
0に格納しておけば、1つのベクトルを使用することも
可能である。 DMAコントローラ640 データFIFO670とVMEパス間の順次またはブロ
ック・モードの転送がDMAコントローラ640によっ
てサポートされている。(このコントローラはより通常
の単語転送もサポートしている。) DMAアドレスは
完全な32ビツトであり、転送時に使用されるVMEア
ドレス修飾子とLONG中信号はすべて転送が開始され
る前にDTPモジュール120によってレジスタにセッ
トアツプされる。 FIFO6700反対側はDTPモジュール120によ
って一杯または空にされる(通常はデータ・キャッシュ
・メモリ140の中に)。16ビツト転送が使用される
ときは、DTPマイクロコードは32ビツト内部形式と
の間でデータをバックまたはアンバックする。 この部分がDMAコントローラとも呼ばれるのは、DT
Pモジュール120からの1侶の高水準コマンドを受け
てPIFO670との間でブロック・データ転送を行な
うことができるからである。しかし、この機能がもつ機
能は商用化されているDMAコントローラ・チップの機
能とは同じでない。通常のDMAコントローラは、活動
時にDMAアクセスで使用するものと同じバスからデー
タとアドレス情報を受は取る。しかし、DMAコントロ
ーラ640はそのアドレス情報をDTPモジュール12
0から受は取り、この情報を使用してVMEバスとのア
ドレスおよびデータ・インタフェースを制御する。 木好適実施例では、DMAコントローラ640は実際に
は4個のΔm2940 DMAビット・スライス・チッ
プに実装され、ある種の関連ロジックは下達するように
PALに実装されている。 DMAコントローラのセットアツプはDTPモジュル+
20によって行なわれ、データはVMEバス線600B
とデータFIFO670との間で転送される。 3つのアドレス指定モードが使用可能である。 これらのどれが使用されるかは、転送の種類またはシス
テム構成によって決まる。 アドレス定数保存。このアドレス指定モードはDMAが
VMEメモリにアクセスするとき同じVMEアドレスを
保存しておくもので、これは人出力ボートをアクセスす
るとき使用される。 アドレスを2ずつ増分(または減分)。このアドレス指
定モードはアクセスされるVMEメモリが16ビツト幅
だけのとき使用される。この場合は、DTPはデータを
内部で使用される32ビット語と外部で使用される16
ビツト語の間で分割またはマージする。 アドレスを4ずつ増分(または減分)。このアドレス指
定モートはアクセスされるVMEメモリが32ビット幅
であるとき使用される。 勿論、当業者によく知られているように、複数の状況信
号を使用すれば、FIFOに対するデータの扱い方を制
御することができる。例えば、この種の状況信号には、
FIFO空、FIFO半満杯などがある。 マイクロコード・ロード制御ロジック610このロジッ
クはマイクロアドレス・バス211Bと3118および
直列ループ225 とのインタフェースとなるものであ
る。(より正確には、第28図に示すように、このロジ
ックは1つの直列出力線225Aを備え、4つの帰還線
225B、225C1225D、225Eを備えている
。)このブロックの構成要素とそれが実行する機能につ
いて、第27.28、および29図を参照して以下説明
する(直列ループ・インタフェースの動作と関連付なが
ら)。 このロジックはレジスタ・ブロック612にあるCpと
DTl’マイクロアドレス・レジスタをアクセスする必
要がある。さらに、WC5指定子利(J1ルジスタもア
クセスする。これらのレジスタはレジスタ・ブロック6
12に示されているが、制御ロジックの一部と見ること
も可能である。 このロジックはフリップフロップ2720、ステト・マ
シン2740、マルチプレクサ271O1およびWCS
データ・レジスタ2730 (これはシフト・レジスタ
である)から構成されている。 レジスタ・ブロック612 多数の有用なレジスタがレジスタ・ブロック612に集
約されて示されている。このブロックに含まれる機能と
信号について以下説明する。 制御レジスタ・ビット ホストは制御レジスタを使用して、サブシステム・ハー
ドウェアの基本的動作を制御する。これらには主にハー
ドウェア・リセット機能とクロック制御が含まれる。制
御ビットは次の通りである。 CPシーケンサ・リセット・このビットはセットされる
と、C11シーケンサ210にアドレス0まてジャンプ
させ、内部シーケンサ状態をリセットする。 DTI’ シーケンサ・リセット:このビットはセット
されると、DTI’シーケンサ310にアドレス0まで
ジャンプさせ、内部シーケンサ状態をリセットする。 DTP リセット:このビットはクリアされると、DT
I’を安全状態に置くので、すべてのバスは3状態にな
る。これが主に使用されるのは、違法マイクロコード命
令でバス競合が起こるのを防止するマイクロコードをロ
ードするときである。 CPリセット:このビットはクリアされると、CPを安
全状態に置くので、すべてのバスは3状態になる。これ
が主に使用されるのは、違法マイクロコード命令でバス
競合が起こるのを防止するマイクロコードをロードする
ときである。 FPリセット:このビットはクリアされると、FPを安
全状態に置くので、すべてのバスは3状態になる。こむ
が主に使用されるのは、違法マイクロコード命令でバス
競合が起こるのを防止するマイクロコードをロードする
ときである。 VIIE FIFOリセット:このビットはクリアされ
ると、VMEデータFIFOを空の状態にセットする。 データ・バイブFIFO: このビットはクリアされる
と、データ・バイブFIFOを空の状態にセットする。 GIP FIFOリセット:このビットはクリアされる
と、GIPインタフェースFIFOを空の状態にセット
して、GIPインタフェースを初期設定する。 自走クロック:このビットはCPとDTPマイクロコー
ド・クロックを制御し、クロックを自走または停止させ
る。クロックが停止されたときは、ホストから1ステツ
プ進めることが可能である。 クロック・ディスエーブル:このビットはバイブライン
・レジスタに対するクロックを除き、CPとDTPのす
べてのマイクロコード・クロックをディスエーブルする
。これが必要になるのは、例えば中断点を設定するとき
CPまたはDTPの状態を壊さないでマイクロコードが
読み書きされるようにするためである。 自走Fl’クロック:このビットはFPマイクロコード
・クロックを制御し、クロックを自走または停止させる
。 FIFOアクセス:このビットはVMEデータFIFO
へのアクセスを制御する。通常のオプションは内部DM
Aコントローラに排他的アクセス権と制御権をもたせる
が、診断時またはVMEスレーブのみ環境では、ホスト
がこのビットをセットすることでこれらのFIFOの制
御権を受は取ることができる。 マイクロコード・ループ:このビットはテストをマイク
ロコード・レベルで繰り返すために診断機能だけが使用
する。 ストローブ・バッファ ホストはストローブ・バッファを使用して、サブシステ
ムを縁またはパルス面から制御する。ストローブ・バッ
ファに書き込みが行なわれる場合は、セットされている
すべてのビットについて対応するストローブ線にパルス
が現れる。この自動ストロービングにより、ホストはス
トローブ線のセットとりセントによるストローブ線の切
替えから解放される。この操作は書込みモードのとぎた
け使用される。ホストがこのバッファを読み取ると、あ
る種の代替状況情報がホストに送り返されることになる
。 ストローブ線には、次のものがある。 1ステップ:これは1サイクルの間にCPとDTPマイ
クロコード・クロックを1ステツプ進めるものである。 これは、ハードウェアがWO2を1ステツプを進めてロ
ードしたり、読取りや変更するとき使用される。 FPパイプライン・クロツク二FPパイプライン・クロ
ック信号は、FPのWO2の内容を読み戻すときだけ直
列マイクロコード・ループ制御の一部として使用される
。FP内の実行時パイプライン・クロックは通常FPマ
イクロコード・クロックと同じである。 cp wcs書込みイネーブル:この信号はC1Sマイ
クロアドレス・レジスタに指定されているアドレスから
直列ループに以前にロードされたデータでFPのWO2
470に書込みを行なう。CPマイクロアドレス・レジ
スタが使用されることに注意されたい。 W(:5470への書込みはロードWCSマスクによっ
て修飾されるので、選択されたFPだけのWO2が更新
される。 CPデバッグ割込み:このストローブはCPに割込みを
引き起すものである。これは、DTPをデバッグ・モニ
タに戻すためにマイクロコード・デバッグ・モニタによ
って使用される。 DTP割込み:このストローブはDTPに割込みを引き
起すものである。これは、コマンドがそのコマンド待ち
行列にロードされたことをDTPに通知するために装置
ドライバによって使用される。 状況レジスタ 状況レジスタは読取専用であり、主にホストがVMEデ
ータFIFOをアクセスできるときにホストにVMEデ
ータFIFOを判断させるために使用される。 状況ビットには次のものがある。 ■7μ旦β:このFIFOから出される状況ビットには
、満杯、半満杯、空の3つがある。これらの状況ビット
は、ホストがそこから読取りを行なうFIFOに対する
ものである(そのアクセスか可能である場合)。 シME人力FIFO状況:このFJFOから出される状
況ビットには、満杯、半満杯、空の3つがある。これら
の状況ビットは、ホストがそこに書込みを行なうFIF
Oに対するものである(そのアクセスが可能である場合
)。 1IEnE: この状況ビットはFPモジュールが存在
するかどうかをホストに判断させるものである。これを
行なうには、各モジュールのアドレスをWC5制御レジ
スタ1に書き込み、この状況ビットをテストする。その
アドレスにモジュールがあれば、この状況ビットはクリ
アされ、モジュールがなければ、セットされる。 wcsmJ御レジスタ WCSインタフェースは2つのレジスタを使用して制御
される。最初のレジスタはCP、 DTP内およびFP
モモジュール上ある各種マイクロコード・メモリの読み
書きを制御する。これらの信号の機能と用法の詳細はマ
イクロコード・ローディングの個所で説明されている。 このレジスタにおける制御信号には次のものがある。 直列ループ出力信号:これは3ビツト・フィールドの最
上位ビットであり、直列ループの並列通路のどのブラン
チを戻り路として働かせるかを選択するものである。こ
のフィールドの他の2ビツトはWC5制御レジスタ1に
ある。 FP WC3出カイネーブル:このビット出力は、通常
のマイクロコード実行とマイクロコード読み戻し時にイ
ネーブルにする必要があるが、マイクロコードのロード
時にディスエーブルする必要があるデータをイネーブル
してFPマイクロコード・メモリから取り出すものであ
る。 FPパイプライン出 イネーブル:木好通実施例では、
FP WO2470はマイクロコード・ローディングを
最適化するために2つのバンクに分割されている(下達
する)。この信号はこれらの2バンクの出力とのインタ
フェースとなるパイプライン・レジスタ476を制御す
る。 Fl’ WCSモード:これは直列ループ・千−1−を
制御し、ループを回ってデータをシフトさせるか、WO
2との間でデータを転送するかを選択する。 CPとDTPパイプライン・レジスタ出力イネーブル:
これはマイクロコード命令をディスエーブルして、すべ
てのビットを高レベルにするときだけ使用される。 CP WC5出カイネーブル:このビット出力は通常の
マイクロコード実行とマイクロコード読み戻し時にイネ
ーブルにする必要があるが、マイクロコードのローディ
ング時にディスエーブルする必要のあるデータをイネー
ブルしてCPマイクロコード・メモリから取り出すもの
である。類似の信号はDTP WC5320の出力イネ
ーブルを制御する。 cp wcsモード:これは直列ループを制御し、ルー
プを回ってデータをシフトさせるか、WO2との間でデ
ータを転送するかを選択する。 DTP WCSモード:これは直列ループを制御し、ル
ープを回ってデータをシフトさせるか、WO2との間で
データ、を転送するかを選択する。 CPマイクロコード選択:これはCPのシーケンサにそ
のアドレス・バスを3状態にさせて、その代わりにCP
マイクロアドレス・レジスタをイネーブルしてバスを駆
動させるものである。 FPマイクロアドレス選択:これはFPのWO2のアド
レス・ソースとしてCPマイクロアドレス・バスを使用
させるものである。通常、CPマイクロアドレス選択は
、ホストがマイクロコード・アドレスをCPに、従って
FPに送るようにセットアツプされている。 FP WC5選択: FP WO2は並列ロード機能で
はデータ経路指定が必要になるので、読取り時は2半分
として扱う必要がある。このビットは下位64ビツトか
上位40ビツトを選択する。 直りループ復帰選択(2):直列ループ戻り路は4つの
ソースの1つから選択できる。(これはWO2の内容が
直列ループを通して読取られるときそのソースを選択す
るようにセットアツプされていなければならない。)ソ
ースとなり得るものには、CP内部(ベース・ボートだ
けにある) 、cp外部(ベース・ポートとFPモジュ
ールにある)、DTT’、およびFPがある。 直列ループ・モード(2):これらのビットはデータが
WCSデータ・レジスタから読み書きされるとき直列ル
ープをどのように振る舞わさせるかを制御する。オプシ
ョンには、データ保留、データ・シフト、データ・パル
スがある。これらの効果については、直列マイクロコー
ド・ロードの個所で説明されている。 他方のレジスタはFPモモジュール上マイクロコードを
ロードし、読み取ることを制御するフィールドを保持す
る。これを制御するフィールドには次の2つがある。 WCSロード・マスク:このマスクの各ビットはマイク
ロコードを対応するモジュールにロードすることをイネ
ーブルする。ビットはいくつでもセットできるので、類
似のモジュールに同じマイクロコードを並列にロードす
ることが可能である。 直列ループ出力イネーブル:これらの残りのビットはw
cs$(I御しタスタ0にある3番目のビットと一緒に
使用されて、モジュールのどれに直列ループのCP外部
戻り路とFP戻り路を駆動させるかを選択する。 WCSデータ・レジスタ WCSデータ・レジスタは直列ループ、従ってマイクロ
コード・メモリをアクセスするときホストが読み書きす
るレジスタである。マイクロコードのローディングを効
率化するために、このレジスタはWC5制御レジスタO
内の直列ループ・モード・フィールドがどのようにセッ
トアツプされているかに応じて異なった振舞い方をする
。 直列ループ・モードが「保持」にセットされている場合
は、このレジスタは他のレジスタと同じように読み書き
される。 直列ループ・モードが「シフト」にセットされている場
合は、WCSデータ・レジスタに対し読み書き操作が行
なわれるたびに、レジスタは16桁だけシフトされ、書
き込まれたデータが直列ループに挿入されると共に、ル
ープ内の「最後の」語がデータ・レジスタにロードされ
る。 直列ループ・モーI−が「パルス」にセントされている
場合は、レジスタは他のレジスタと同じように読み書き
されるが、書込み操作が行なわれると、ある種の制御信
号が自動的に発生されて直列ループを制御する。 CPマイクロアドレス・レジスタ このレジスタはCPまたはFPモジュールのマイクロコ
ード・ロート時にマイクロコード・ロート制御ロジック
610によって駆動されて、CPマイクロコード・アド
レス・バス211B上に送出されるデータを保持する。 CPマイクロアドレス選択ビットがWC5制御レジスタ
0にセットされている場合は、このレジスタを読み取る
と、そこに最後に書き込まれたデータが返却される。そ
うでない場合は、CPのシーケンサが出力中のアドレス
の非同期スナップショットが返却される。 DTPマイクロアドレス・レジスタ このレジスタはDTPモジュールのマイクロコードク6
10によって駆動されて、DTPマイクロコード・アド
レス・バス311[1上に送出されるデータを保持する
。DTPマイクロアドレス選択ビットがWC5制御レジ
スタ0にセットされている場合は、このレジスタを読み
取ると、そこに最後に書き込まれたデータが返却される
。そうでない場合は、DTPのシーケンサが出力中のア
ドレスの非同期スナップショットが返却される。 (以下余白) ド・ロード時にマイクロコード・ロード制御ロジデータ
・パイプ・インタフェース・ロジック15f)データ・
パイプ概念は複数の個別サブシステムを各種のトポロジ
形状に結合させるものである。 この結合は「データ・パイプ」と呼ばれる複数の局所バ
スを使用して行なわれる。また、この結合はバックブレ
ーンから独立しているので、相互に離して結合すること
が可能である。 本好適実施例では、各データ・パイプ局所バスは32ビ
ット幅で毎秒40MBの転送することをサポートし、受
取側はFIFOでバッファリングされる。各サブシステ
ムは2つの入力バイブと1つの出力バイブをもっている
。出力バイブは個別クロックをもっているので、2人カ
バイブにデーシイ接続されていると籾は、データは各人
力バイブに個別的にも、まとめても送ることができる。 データ・パイプ・インタフェース150は第7図に示さ
れている。データ・パイプ出力ポートは32ビット幅で
ある。このボートは別の高速化ボード4140上のデー
タ・パイプ・インタフェースの入力ボート(71Oまた
は720)に(またはある種のタイプの・別の装置上の
データ・パイプ・インタフェースに)接続することが可
能である。データ・パイプの受取り側はFIFOでバッ
ファされている(FIFO740または750を使用し
て)ので、出力側731は電気的にデータをバッファす
るだけである。2つのストローブ760が用意されてい
るので、一方のデータ・パイプ・インタフェースが他の
2つのサブシステムに書き込むことができるようになっ
ている。受取り側サブシステムでデータ・オーバランが
起こるのを防止するために、受取り側システムからのF
IFO満杯フラグ770を送り側サブシテムが使用して
モニタリングができる。2つの入力FIFO740と7
50が2つの入カポ−1−710と720にあるので、
2つのサブシステムは1つのサブシステムにデータを送
ることができる。 FIFO出カイ出御イネーブルPマイクロコード内のT
Dソース・フィールドによって制御され、出力ストロー
ブはTD宛先フィールドによって制御される。人力FI
FO状況信号780は条件コード・ロジックでテストす
ることできるが、割込みを引き起すこともある。 このインタフェース構成を使用すると、複数のサブシス
テムを局所バスで各種トポロジ形状に結合することがで
きる。このようにサブシステムを柔軟に再構成できるこ
とは、アプリケーション向きマイクロスコピック・デー
タ転送アーキテクチャを多くのアプリケーションで使用
すると大きな利点が得られるので、第1図に示すサブシ
テムの場合に特に有利である。トポロジ形状のいくつか
の例が第34.35.36.37図に示されている。 ある種のアルゴリズムやアプリケーションでは、複数の
サブシステムを並列またはパイプライン構成にすると、
計算作業負荷を分散できる利点が得られる。例えば、高
、性能3次元図形ワークステーション構成の1例が第3
6図に示されている。 複数のサブシステムをデーシイ構成で結合すると(第3
7図に図示)、データを共用することができ、その場合
、「マスク」サブシステム4150Aは例えばホスト・
メモリからデータを人手し、それをデータ・パイプ結合
を通して他のすべてのサブシステム4150B、415
0C141500と共用することができる。この結果、
各サブシステムが独自のコピーをもつのではなく、1つ
のサブシステムだけかデータを取り出すことになるので
、ホスト・バス41】0のバンド幅が節約される。 データ・パイプはリングに結合すれば(第35図)、ケ
ンブリッジ・リングと同じような設計構造のトークン・
パッシング・ネットワークを効果的に構築することが可
能である。 データ・パイプ経由で送られるデータの内容と意味はソ
フトウェアで制御されるが、通常はメツセージ・パケッ
トにするのが普通である。 データ・パイプはシステム間通信用に設計されているが
、これらは他の周辺装置と結ぶことも可能である。持続
入出力速度は毎秒40MBであるが、バースト人力速度
はもっと高速である。バースト入力速度は配線の電気的
特性によって制限されるが、データ・パイプ入力が1つ
のときは、毎秒1601118 (両方の入力が並列
化しているときは、適当なバッファ・カードを使用すれ
ば最高320MBまで)にすることが可能である。 このインタフェース機能の主要な利点は、使用できるサ
ブシステム相互接続トポロジが多様化していることであ
る。従って、特に注目すべきことは、図示の構成例は大
幅な柔軟性が得られることを示している。 画像プロセッサ・インタフェース170このインタフェ
ースはアプリケーション向きパスとの接続を可能にする
。本好適実施例では、このパスは図形と画像データ向け
に特に最適化されている画像プロセッサと結ばれる。ま
た、本好適実施例では、この画像パスはrGI5パスJ
であり、このパスは160本のデータ線からなり、デー
タ・クロック期間が120−200nsで動作する。(
従って、このインタフェース・ロジックは本明細書の各
所でr GIPインタフェース」と呼ばれている。)シ
かし、他の画像データ・パス標準(好ましさの点で劣る
が)を使用することも可能である。別の方法として、デ
ータ転送要求条件(地震測定や実時間システムなど)が
特殊なアプリケーションの場合には、他のアプリケーシ
ョン向きパスを使用することも可能である。 GIPインタフェースを通して、GIPとサブシステム
はデータとコマンドを相互に受渡しすることができる。 このインタフェースは第8図にブロック図で示されてい
る。 GIPとサブシステム間の連絡はすべて16ビツト幅両
方向PIFO810を通して渡される。FIFOの一方
の側はDTPマイクロコードにょフて、他側はGIPマ
イクロコードによって制御される。 GIPインタフェ
ースはマイクロコード拡弓長ボート・インタフェースを
僅えているので、GIPは実際には、サブシステムに常
駐しているマイクロコード(8ビツト)を実行する。[
Pマイクロコード拡張パスは前述したIITPマイクロ
コード拡張インタフェースと同じである。 GIPインタフェースは、GrP図形プロセッサがある
種の分散マイクロコードをサブシステムで実行させるた
めに必要なサービスを提供する。これらのサービスには
、GIPマイクロコード・クロック、G11’マイクロ
アドレスとデータ・パス、割込みと状況信号、および拡
張Gfl’マイクロコードを直列にロードするための手
段がある。 Gll’インタフェース内の周辺構成要素としては、W
CS 83G、両方向FIFO(片方向FIFOから構
成)および状況ロジック820と割込みロジック840
がある。 常駐GIPマイクロコードにより、GIPは次のような
機能を実行することができる。 PIFo 81Gからデータを読み書きすること。 状況ロジック820を通してFIFO状況信号をテスト
して、開コレクタ条件コード・インタフェース信号に基
づいて結果を駆動すること。 割込みロジック840によってGIPに割込みを弓き起
す条件をセットアツプすること(例えば、FIFOが満
杯または空になったとき)。 DTPに割込みを引き起すこと。 DTP側からは、FIFOは32ビット幅でなく16ビ
ツト幅である場合を除き、他のFIFOのいずれかであ
るように見える。 連絡が行なわれるときの形式と、高速化サブシステムま
たはGTPがマスタ装置であるかどうかの詳細はすべて
2プロセツサで稼動するマイクロフードによって決定さ
れる。3次元ワークステジョン環境では、第36図に示
すように、ホストをマスクに、サブシステムをスレーブ
に、数値高速化サブシステムをその中間にする階層が好
ましい。 直 ループ・インタフェース 第1図(および他の図)に示す同時並行多重プロセッサ
・システムがもつ利点の1つは、3またはそれ以上のプ
ロセッサの書込み可能制御記憶機構(WCS)が直列ル
ープ・インタフェースを介して結ばれていることである
。本好適実施例によるこのループのトポロジ構造は第2
8図に示されている(第2八、3A、 4G、および6
図に225で示されている線は、第28図では中断され
て、1つの出力線225Aと4つの帰還線225B、2
25C12250,225Eが示されている)。 直列ループと結ぶインタフェースの実装構成は各種プロ
セッサを個別に取り上げて、またVMEイ〕、・タタフ
ニーと関連づけて上述した通りである。 し、かじ、これらの機能のいくつかを再びここで検討し
直して、直列ループの高度アーキテクチャを直列ループ
・インタフェースを通してホストは制御記憶機構のすべ
てをアクセスしてデータを取り出すことができる。この
ループの正味バンド幅を最大にするために、各個のwc
s (wcs拡張部分490を含む)は直列/並列シャ
ドウ・レジスタのバンクを通して直列ループとのインタ
フェースとなっている。 FP WO2470とのインタフェースとなるシャドウ
・レジスタは第29図と第4C図にレジスタ481Aと
481Bで丁されている。CP WO2220とのイン
タフェースとなるシャドウ・レジスタは第2A図にレジ
スタ222 と223で示されている。D、7P WO
2320とのインタフェースとなるンヤドゥ・レジスタ
は第3A図にレジスタ322 と323で示されている
。CPWC5拡張部分490との、インタフェースとな
るレジスタは第4Δ図にGP拡張部分の一部として全体
が示されているが、個別には示されていない。 これらのレジスタの各々は命令をそれぞれの制御記憶機
構にロートしたり、命令ストリームを小刻みにクロック
をとったり、あるいは単純に命令ストリームを可能な限
り高速にクロックをとったりすることができる。従って
、この線のバンド幅は効率よく使用され、最小限の命令
だけで特定プロセッサの制御記憶機構をアクセスするこ
とができる。 ループ制御 本好適実施例では、直列ループの制御と経路指定のため
の機能がいくつか追加されているので、幅広い構成と拡
張オプションに適応させることができる。 本好適実施例では、各サブシステムはマイクロコード・
サブシステムを最高6つまで(制御プロセッサ1つ、デ
ータ転送プロセッサ1つ、浮動小数点プロセッサまたは
アルゴリズム高速化プロセッサ4つまで)をもつことで
きる。これらのプロセッサの各々は独自のWO2をもっ
ている。各W CSはマイクロコードのアップロートの
ときは書込みを行い、診断、中断点設定などのときは読
み取らなければならない。 この機能を利用でとるようにする主な機能には、次のも
のがある。 Q luマルチプレクサ:これは2つの内部ソース(制
御プロセッサとデータ転送プロセッサ)からと、2つの
外部「帰還バス」 (制御プロセッサの拡張部分と複数
の浮動小数点プロセッサのマイクロコードに対する)か
らの直列ループを収集する。 制御プロセッサと浮動小数点プロセッサのマイクロコー
ドが置かれている浮動小数点プロセッサ・モジュールか
らの直列ループを収集する帰還直列バス。帰還ループ・
アドレスはどちらのモジュールに直列帰還バスを駆動さ
せるかを選択する。 各浮動小数点プロセッサ・モジュールはマイクロコード
・ロード・イネーブル・ビットをもっているので、モジ
ュールを任意に組み合せて同時にロートすることができ
る。 データ転送プロセッサの直列ループ拡張部分はジャンパ
とワイヤのリンクによって制御される。 この構成によると、直列ループを回ってデータを巾云送
して、WO2にバックロードするフ゛ロトコルが非常に
複雑になる。この種のプロトコルはソフトウェアで実行
されるのが通常である。本好適実施例では、これらのプ
ロトコルのうち時間のかかる部分はハードウェアに実装
されているので、マイクロコードのダウンロードが大幅
に高速化する。別の利点として、ソフトウェアのオーバ
ヘッドも軽減される。 本好適実施例では、ホストはマイクロコードを1語ずつ
データ・レジスタに書き込む(または読み取る)。(本
実施例では、データ・レジスタは2つの汎用シフト・レ
ジスタから作られている。 直列ループの残り部分はADM社製のΔm29818な
どの直列シャドウ・レジスタを使用している。)あらか
じめ選択された直列モードによって、次の3つのいずれ
かが行なわれる。 「保持」モードが選択された場合は、データ転送はメモ
゛すへの転送と同じように行なわれる。 「シフト」モードが選択された場合は、読取りまたは書
込みサイクルが終ると直ちに、データが直列ループの中
に(または外から)シフトされる。これが行なわれてい
る間は、使用中信号によって、ホストによるデータ・レ
ジスタへの追加アクセスが先に延ばされることになる。 「パルス」モードが選択された場合は、書込みアクセス
が終った約500ns後に、直列データ・クロック・パ
ルスが発生して、シャドウ・レジスタが必要とするモー
ドにセットされる。 ループ・トポロジ 第28図は直列ループの大規模接続関係を示したもので
ある。 信号出力線225AはVMEインタフェース160にあ
るマイクロコード・ロード・ロジック610によって駆
動される。(これは1本の物理線だけにする必要はなく
、例えば、4ビット幅バスのようなバスにすることも可
能である。)この線は3つの書込み可能制御記′Q機構
220.320、および470の各々の周辺にあるシャ
ドウ・レジスタの各々に適用される。(Cl’ WCS
拡張部分490は出力!jmS八に直結されないで、−
次WC5220の下流側の線225Cに接続されている
ことに注意されたい。)4木の帰還線が設けられている
が、これらはマルチプレクサ2701によって選択が可
能である。これらの帰還線は主にデバッグのとき使用さ
れる。 「スネーキングJ (snaking)が殆どないこと
に注意されたい。つまり、一方のWCS側の直列シャド
ウ・レジスタの直列出力が他方のWCSのインタフェー
スへの入力として使用されるケースは2つしかない。こ
れらのどちらのケースの場合も、直列ループの下流側に
あるWCSは事実上上流側WCSの拡張部分である。つ
まり、独立プロセッサを直列ループ内に直列接続するこ
とは回避されている。これの利点は、異種プロセッサ・
モジュールに対する独立マイクロコード・プログラムを
1つに結合する必要がないことである。この結果、プロ
グラマは上述したアルゴリズムの分割をフルに利用する
ことができる。また、これはローディングを高速化する
上で役立つ。さらに、幅と奥行が異なるWCSを月標と
したプログラムをマージするときにも問題が起こらない
。 ループ・トポロジの並行性の利点は、並行ロードが筒単
に行なえることである。例えば、共通のマイクロコード
列をFPモジュール130の各々にロードしようとする
場合は、FPモジュールのすべてにあるシャドウ・レジ
スタのすべてを同時にイネーブルさせることができるの
で、各々は線225A上の直列データとバス211B上
のマイクロアドレスに従ってロードされることになる。 第28図から明らかなように、ループ・トポロジは複数
の並列分岐を備えている。 cp分岐:出力線255はcp−次WCS 220側シ
ヤドウ・レジスタ・インタフェースへの人力となるもの
である。シャドウ・レジスタ・インタフェースからOP
WCS 220 (線225G)への帰還はマルチプ
レクサ271Oにフィードバックされる。 CP拡張部 サブブランチ: CP WCS 220と
のインタフェースの下流側には、CP WC5拡張部分
490のすべてにあるシャドウ・レジスタ・インタフェ
ースへの人力となる帰A 151225 Cも設けられ
ている。 シャドウ・レジスタ・インタフェースからWC3拡張部
分490への帰還はすべて帰還線225Dに結ばれてい
るので、マルチプレクサ271Oにフィードバックきれ
る。(帰還は並列に接続されているので、直列出力コマ
ンドは個々のモジュール・アドレスで修飾すれば、帰還
線225D上の競合が防止される。) DTP分岐:出力線225はDTP WCS 320に
あるシャドウ・レジスタ・インタフェースに直列人力を
送るようにも接続されている。シャドウ・レジスタ・イ
ンタフェースからWCS 320(線225B)への帰
還はマルチプレクサ271Oにフィードバックされる。 DTP拡張部分サブブランチ: DTP WCS 32
0とのインタフェースの下流側には、帰還線225Bが
オフボード出力として利用できるようになっている。 この接続は必要ならばユーザが開発してDTP拡張ロジ
ックを得ることがてきる。かかるロジックの動作は以下
に詳しく説明する。 FP分岐、出力線225は数値プロセッサ・モジュール
130または130°の各々にあるWCS 470側の
シャドウ・レジスタ・インタフェースへの直列人力どし
てもイ吏用できる。シャドウ・レジスタ・インタフェー
スからの帰還はすべて線225Eに結ばれているので、
マルチプレクサ271Oにフィードバックされる。(帰
還は並列に接続されているので、直列出力コマンドを個
々のモジュール・アドレスで修飾すれば、帰還線225
Eでの競合が防止される。) 第27図はマイクロコード−ローディング制御ロジック
610の構成要素の詳細図である0重要な構成要素の1
つはフリップフロップ2720であり、これは帰還直列
データを再同期化するものである。 WCSが分散されているときは、シフト・レジスタ・ク
ロックとシャドウ・レジスタのDクロック間のクロック
・スキューを制御することは、直列ループ構成が多種類
であるので、非常に困難である。このフリップフロップ
が含まれていると、フリップフロップがクロック・スキ
ューの制御を担当する(スキューが制御ロジックを駆動
する基本クロック期間を越えない限り)。ステート・マ
シン2740はホストからデコート化信号を受けるとD
クロック出力を発生する。 ホストとのループ・インタフェース 第6図と第27図に関連させて上述したように、マイク
ロコード・ローディング制御ロジック610は直列ルー
プ225上のデータを読み書きできる。 また、CPとDTPマイクロアドレス・バス211Bと
311Bに対しても読み書きができる。 DTPマイクロコード拡弓長ル−プ 本好適実施例によれば、オフボードで拡張して別の直列
インタフェース・ループを構築することもできる。この
ループとの接続は第28図に2840で示されている。 任意的に、DTPモジュール120はcp wcs拡張
部分490と同じようなりTP WCS を種部分を追
加の構成要素に組み入れることによって、オフボードで
拡張することが可能である。これらのWC5拡張部分か
らは、DTI’マイクロアドレス・バス311Bで選択
されたマイクロ命令出力が得られる。これらのDTI’
拡張部分の制御は、DTP拡張部分が比較的高範囲にわ
たる環境で使用されることがあるので、CP拡張ロジッ
クよりも若干ゆるくするのが好ましい。DTP拡張ロジ
ックは密結合高速入出力装置で利用されることを目的と
している。 この拡張オプションが使用される場合は、DTP拡張部
分(いずれかが使用される場合)はすべてDTP自身と
直列になっている。これは競合を防止するためである。 並列マイクロコード・ローディング 上述したように、本好適実施例では、マイクロコードは
2通りの方法で浮動小数点プロセッサにロードされる。 1つはホストの制御の下で直列ループによる方法であり
、もう1つは制御プロセッサの制御の下で並列に行なう
方法である。マイクロコードの並列ローディングは、浮
動小数点プロセッサで使用できる書込み可能制御記憶機
構(”WCS”)の数に制限があるので(4Kまたは1
6に命令)、好都合である。浮動小数点フロセッサのル
ーチンか多すぎて、−度にWCSに収まらないときは、
ある種のオーバレイ手法が必要になる。直列ループを使
用してオーバレイをロードすることはホストが命令をロ
ードできる速度が遅いので(ディスクへのアクセスによ
って、100m5から3m5)、実用的でない。 本好適実施例によって提供される並列ロート機能は広幅
データ・キャッシュ・メモリを使用してマイクロコード
命令全体(現在は104ビツト)を保管しておき、それ
を1サイクルで浮動小数点プロセッサ書込み保持レジス
タに転送する。そのあと、これは通常の出力ボートを通
って、直列ローディングで使用される診断シスト・レジ
スタ(例へMD 29818)に転送される。これらの
装置には、マイクロコード・ビットをバイブライン化す
る出力ボート(これは必要ならば、人力ポートとしても
使用できる)を備えている。しかし、本好適実施例では
、この機能は遅すぎるので使用されない。 デツプの多くはマイクロコードをなんらかの方法で内部
レジスタに格納している。)このことは、上述した並列
ロートのルートが直列並列レジスタがもつこの機能を使
用しても、速度や機能が犠牲にならないことを意味する
。並列ロード時間は命令当たり約500nsであり、こ
れは直列ロード時間よりも大幅に向上している。 もう1つの重要な点は、浮動小数点プロセッサでマイク
ロコードをオーバレイすることがホストによる監視を必
要としてないで、完全に制御プロセッサによって制御さ
れることである。逆に、マイクロコード・オーバレイが
まだデータ・キャッシュ・メモリに存在しない場合は、
制御プロセッサはデータ転送プロセッサがホスト・メモ
リに穆って、そこからそれを取り出すように指示するこ
とができる。 本好適実施例では、各サブシステムはマイクロコード・
プロセッサを最高6つまでもつことができる(制御プロ
セッサ1つ、データ転送プロセッサ1つ、浮動小数点プ
ロセッサまたはアルゴリズム高速化プロセッサ4つまで
)、、これらのプロセッサの各々は独自のWO2をもっ
ている。各WCSはマイクロコードをアップロードする
ときは、書込みを行ない、診断や中断点を設定するとき
は、そこから読取りを行なう必要がある。 (以下余白) モジュール拡張オプション すでに上のいくつかの個所で説明したように、第1図に
図示のシステムをモジュール単位で拡張するためのオプ
ションがいくつか用意されている。以下では、これらの
オプションのいくつかを要約することにする。 キャッシュ・バス144に接続できるモジュールは次の
2種類がある。 算術演算処理型。これの代表例として、浮動小数点プロ
セッサ・モジュール130とアルゴリズムまたはアプリ
ケーション高速化機構130°がある。 高速データ(IISD)モジュール。これはデータ・キ
ャッシュ・メモリまたは高速人出力チャネルを拡張する
ために使用されるのが代表例である。このメモリを拡張
する方法は、DTPマイクロコード拡張バス2824を
通して高速化サブシステムとのインタフェースとなる大
容量メモリ・サブシステムを使用することとは全く異な
る。ll5D法はデータ・キャッシュ・メモリ140と
同じバンド幅をサポートするが、大容量メモリ・サブシ
ステムはどの容■は得られない。 多重モジュール構成にすると、浮動小数点プロセッサ・
モジュール130型のモジュールを4つまで、ll5D
モジユールを2つまで使用できる。これらの数字はアー
キテクチャに制約要因があるからではなく、機械的およ
び電気的理由から選択されたものである。 FP 130モジユールはモジュール選択ビットによっ
て選択される。これらは通常制御プロセッサ・モジュー
ルllOの制御下に置かれるが、VMEインタフェース
はこれらのビットを無視することができる。これが使用
されるのは、マイクロコードをダウンロードするときや
デバッグを行なうときだけである。モジュール選択ビッ
トはリセット(これはリセット信号で制御される)を除
き、モジュールの動作をすべての面で制御する。 H5Dモジュールはデータ・キャッシュ・アドレス・バ
スをデコードすることによって選択される。 モジュールとの接続について以下要約して説明する。接
続を論理図域別に分類して挙げて、2種類の千ジュール
のどちらがこれらの接続を使用するかを示しである。 接続は6個の96ウエイDINコネクタを使用して行な
われる。第40八図と第408図は本好適実施例の物理
的接続構成を示したものである。 本好適実施例では、モジュール接続には次のようなもの
がある。 データ・キャッシュ転送用:256ビツト・データ、2
3ビットDCMアドレス、8個の書込みイネーブル、保
持レジスタOEビット、遅延アクセス信号(例えば、低
速メモリを受は入れるためのクロック・サイクル延長の
ため)、および保持レジスタCにビット。 CPゼインフェース用:3ビツト・アドレス、16ビツ
ト・データ、16ビツトCPシーケンサ・アドレス、C
Pマイクロコード・クロック、CPパイプライン・クロ
ック、CP書込みゲート・クロック、1つの割込み線、
および1つの条件コード。 マイクロコードのローディング用 CP WC5出カイ
ネーブル別の線、CPパイプライン出カイネーブル、c
p wcs書込みイネーブル、cpモード、CP if
i列データ・アウト、CP直列データ・イン、FP W
CSCSイカイネーブルPバイブライン出カイネーブル
、FPパイプライン・クロック、FP wcs書込みイ
ネプル、FPモード、FPマイクロアドレス選択、FP
上位/下位WCS選択、FP直列データ・アウト、FP
直列イン、6個の直列クロック/WCSロード・マスク
信号、および3ビット直列ループ帰還選択。 汎用目的用:モジュール選択の3ビツト、リセット、シ
ングル・ステップ、自走、FP中断点、マイクロコード
・ループ、FPリセット、)IERE用の布J開信号。 DC線用:+5v電源線21本、−5V電源線6木、接
地線161本。 どのタイプのモジュールもすべての信号をアクセスする
ことができる。 多重数値処理モジュール 第10図に示すように、各種実施例のうちある非常に有
用な実施例では、複数の数値処理モジュール130が使
用されている。この実施例では、モジュール130はす
べて制御プロセッサ・モジュール110による高度の監
視下に置かれている。CPモジュール110は高度の監
視タスクを実行するだけでなく、数値プロセッサ・モジ
ュール130との間で行なわれるすべてのデータ転送を
直接に制御する。数値プロセッサ・モジュール130は
すべてキャッシュ・バス144 と並列に結ばれている
。数値プロセッサ・モジュール130の各々は上述した
ように、CP拡張ロジック410を備えている。データ
転送プロセッサ・モジュール120は上述したように、
キャッシュ140と外部との間のデータ転送を管理する
ものである。 データ・キャッシュ・メモリ140と数値プロセッサ・
モジュール130または13o°間は高メモリ・バンド
幅で結ばれているので、多くの場合、複数のモジュール
を並列に稼動できるので、データ欠乏が起こることはな
い。 数値プロセッサ・モジュールをいくつ使用して稼動させ
ることができるかは、アプリケーションやアルゴリズム
がどのような混成になっているかよる所が大きい。本好
適実施例では、4つまでに制限されている。この制限を
設けたのは、主に電気的および機成的理由によるもので
ある。しかし、メモリ・バンド幅すべてが使用されてい
れば、浮動小数点プロセッサ・モジュールノ数ヲ増、や
しでも利点は得られない。 数値プロセッサは独立に稼動するので、モジュール・イ
ンタフェースに、浮動小数点プロセッサ同士の同期また
はデータ交換のためのプロトコルを含める必要はない。 この結果、仲裁の必要がなくなるので、インタフェース
が非常に単純化される。 命令書込みバスは数値またはアプリケーション向ぎプロ
セッサ(またはその両方)で共用させるのが好ましい。 また、最上位アドレス・ビットは数値またはアプリケー
ション向きプロセッサ(またはその両方)のいずれかが
個別的にアドレス指定されるように、あるいはこれらの
プロセッサのすべてが−緒にアドレス指定されるように
、あるいはこれらのプロセッサ群の一部(全部でなく)
が−緒にアトし・ス指定されるように、ロジックに従っ
て判断させるのが好ましい−6 つまり、複数の浮動小数点プロセッサを制御するには、
アルゴリズムを存在する浮動小数点のいずれかで稼動す
ること、あるいはその一部が存在する浮動小数点プロセ
ッサの一部または全部で稼動することがあり得ることを
考慮に入れる必要がある。このためには、制御プロセッ
サと浮動小数点プロセッサとの長期的または短期的な関
係を明確化する必要がある。制御プロセッサはどの浮動
小数点プロセッサを制御すべきか、あるいはどの浮動小
数点プロセッサとの間でデータを転送すべきかをサイク
ル単位で選択することができる。長間的関係の場合は、
これはもっと大局的に定義することも可能である。 本好適実施例では、これはどの浮動小数点プロセッサを
使用すべきかを定義する制御メカニズムをサイクル単位
で選択するマイクロコード・ビットを使用することによ
って達成される。この制御メカニズムは他のマイクロコ
ード・ビットを使用することも、レジスタの内容(これ
はマイクロコードによって事前にロードされている)を
使用することも可能である。マイクロコード命令フィー
ルド内のビットを使用して短期(つまり、サイクル単位
)の定義を行ない、レジスタで長期使用を定義すること
ができる。 これらの2モードの使用例を示すと、次の通りである。 短期−4つの浮動小数点プロセッサでFFTを行なうと
きは、制御プロセッサは1つの浮動小数点プロセッサに
数サイクルを使用して、次のバタフライのデータをロー
ドし、以前のバタフライの結果を収集してから、別のバ
タフライを扱う次の浮動小数点プロセッサに移ることに
なる。 長期−ベクトル加算を行なうとぎは、使用すべき浮動小
数点プロセッサはベクトル加算ルーチン(制御プロセッ
サにある)が呼び出される前に選択される。このことは
、@御プロセッサはこの計算にどの浮動小数点プロセッ
サ(またはどのタイプの(4勤tJs数点プロセッサ)
を使用ずへきかを知らなくてもよいことを意味する。 第23図はモジュール・アドレスがどのようにデコード
されるかを図式化して示したものである。 このデコードが実際にはどうような方法で行なわれるか
は、FPモジュール130と関連づけて上述した通りで
ある。 キャッシュ・メモリ拡張 上述したように、大容量の拡張メモリをキャッシュ・バ
ス144に直接接続することが可能である。このことは
、物理的構成と使用されるデータ転送プロトコルの別の
利点となっている。この種の構造例は第43図に示され
ている。 物理的および電気的 装ボード 第38A図と第38B図は本好適実施例の物理的レイア
ウトの主要特徴を示したものである。第38B図は子ボ
ードであり、第38A図の主ボードより小さくなってい
る。第388図は浮動小数点ブロツセサ・モジュール1
30のハードウェア(付属制御プロセッサ拡張ロジック
を含む)である。第38A図はデータ転送プロセッサ1
20、制御プロセッサ1100主要部分、データ・キャ
ッシュ・メモリ140、コマンド・メモリ190、およ
びインタフェース150、t60.170.18Gから
なる構成を示している。、2つのボードが一緒になって
、第1図に示すような完全なシステムが得られる。 2つのボードは6個のコネクタ31110が同じパター
ンになっている。これらのコネクタは雄型と雌型になっ
ているので、追加のボードを積層することができる。例
えば、第9図と第10図に示している構成は複数の浮動
小数点モジュール130またはアルゴリズム高速化モジ
ュール130“(またはその両方)を−緒に積層するこ
とによって得たものである(しかし、将来の改良に備え
て、これらの接続にバックブレーンを使用するとさらに
利点が得られる)。そうすれば、さらに都合のよい損紙
的構成が得られる。 コネクタ3810はそれぞれ96ビン幅にするのが好ま
しい。そうすれば、キャッシュ・バス144の全幅がこ
れらのコネクタを通る場合であっても、十分なピン数を
予備として残しておくことができろ。 データ・キャッシュ・メモリ140を拡弓長するための
拡張メモリも、このパターンのコネクタを使用して積層
することが可能である。上述したように、キャッシュ・
バス+44上に追加の拡張メモリを接読すると、高バン
ド幅チャネルを利用する非常に短時間のアクセス遅延の
間に比較的大きなメモリ空間が得られる。本好適実施例
では、100ns以内にH(1M37秒の速度で最高1
2MBまでアクセスができる。 第38八図は最大の個別構成要素の位置を示すと共に、
他の区域における一部の機能の全体的割振りを示してい
る。本実施例で使用されているボードは3段高さのEu
rocardである。VMEインタフェース・ロジック
160は全体がボードの縁に置かれ、バックブレーンの
スタブ長さを最小にしている。(VMEインタフェース
規格は短長のスタブを規定している。) メモリ・バンク510は全体が図面の上方の左隅と右隅
にコネクタ3810の近くに置かれている。コマンド・
メモリ190とVMEインタフェース・メモリ660も
この区域に置かれている。 ボード中央部の大部分はCP保持レジスタ56〇八とD
TP保持1ノジスタ5GOBが占有している。 DTP とCP IPll 340と240.DTPと
CPシーケンサ310と210、およびCPアドレス生
成機構230はすべて別々に示されている。 DTPモジュールの書込み制御記憶機構320は全体が
図面の左下付近のコネクタ3810の下方に示されてお
り、CPモジュールの書込み可能制御記憶機構220は
全体が右下付近のコネクタ3810の下方に示されてい
る。GIPインタフェース170、およびDTPマイク
ロコード拡張インタフェース180は全体が左下隅に示
されている。、(この区域には、−部のDINコネクタ
(図示せず)が置かれており、このロジックを使用して
サポートできる物理的接続を提供している。)同様に、
右下隅には、データ・バイブ・インタフェース150だ
けでなく、その関連コネクタが)6載されている。 第38B図に示す子ボードはもっと小形である。 (第38Δ図と第3811図は同じ縮尺で作図されてい
ない。) 保持1ノジスタ420は右上と左上に示されているコネ
クタ3810間に首かれている。これらのレジスタの間
には、EC1周辺3820があり、ここにECL部品(
これらの部品は大量の発熱を放出する傾向がある)が置
かれている。(本好適実施例では、E(:L部品として
は、転送りロック発生機構412とFPマイクロコード
・クロック発生機構480がある。)これらの部品は隔
離されているので、TTLの雑音が雑音の少ないECL
部品に入り込むのを防止している。) 以上の説明から理解されるように、レジスタ・ファイル
430を作るために使用されるチップは、ALLI 4
50および乗算機構440と同様に大形である(本好適
実施例では、これらのチップの各々はピン格子パッケー
ジに納められている。)FPモジュールのWC5470
は全体が図面の左中間部に置かれている。そのすぐ下に
、、 FP千ジュールの次アドレス・ロジック477が
首かれている。FPモジュールの制御ロジックがスタッ
クと1ノでも使用できるスクラッチパッド・メモリ16
0は物理的に次アドレス・ロジック477に近接してい
る。 CP!張ロジックは子ボード130または130”の各
々の制御のためにCPマイクロコードを拡張するとき使
用されるものであるが、その大部分が図示のようにボー
ドの下縁に置かれている。特に、WC5拡張メモリ49
0は左下に示されている。 浮動小数点プロセッサ・モジュールを別々のサブボード
に分散して搭載させると特に好都合である。(また、複
数の浮動小数点プロセッサ・モジュールが使用される場
合は、各プロセッサ・モジュール130をそれぞれの独
自のサブボード上に置いて隔離するとよい。)数値プロ
セッサ・モジュール130は、高速ロジックがそこに含
まれているので雑音を発生しやすく、また、これらの線
と構成要素はECLレベルを使用するので、雑音の影晋
を非常に受けやすい。 さらに、保持レジスタ420、局所転送バス422、レ
ジスタ・ファイル430、転送りロック412がすべて
サブボード上に搭載されている。こうすると、最高周波
数線がすべて共通サブボード上で隔離されるので、利点
が得られる。高速ロジックの各部分をある程度隔離でき
るので、これは特に複数の数値プロセッサ・モジュール
を使用する実施例では有利である。 PΔL実装 本好適実施例では、以下に挙げるPAL (プログラマ
ブル・ロジック・アレイ)が使用されている。 現在使用されているPALはすべてTTLである。大部
分は16および32シリーズからのものであるが、他に
もいくつかが使用されている。 しかし、当業者なら容易に理解されるように、他のPA
L実装を幅広く使用することも可能である0機能をハー
ドウェア・ブロックに分割することは変更可能であり、
ハードウェアで実装し光ある機能群を変更することも可
能である。PALに現在実装されている機能の多くはM
SIロジック部品を使用して実装することも、ASIC
またはセミカスタム集積回路にブロックとして実装する
ことも、VLSIロジック・チップをプログラミングす
ることによって実装することも可能である。しかし、こ
の実装をここで詳細に示したのは、米国特許法の規定に
従うように、本好適実施例の内容をすべて開示するため
である。 (:P PAL 以下は、制御プロセッサ・モジュール110に使用され
ている最も重要なPALのいくつかを簡単に説明したも
のである。 クロック波形生成PAL 250 このPALはCPとDTPによって使用されるタイミン
グ波形を生成する。上述したように、4つのクロックが
発生される。これらは各々4つの事前定義波形列の1つ
に従っている。4つの波形列は異なる期間、つまり、人
力クロック期間の4.5.6および7倍になっているこ
とが特徴である。これは、本好適実施例のように40
MHzオシレータが使用されるときは、100.125
.150および175nsに変換される。マイクロコー
ド・クロックとバイブライン・クロックは同じ波形をも
つが、マイクロコード・クロックはマイクロコードをロ
ードするときは、バイブライン・クロックを動作させた
コード・クロックは常に2サイクル(オシレータの)の
間高であり、そのあと2.3、−4またはサイクルの間
低になる(これらの選択はサイクル長入力によって行な
われる)。サイクル長はCPから要求された最大長さ(
2ビツト)とDTPから要求された最大長さ(2ビツト
)から選択される。サイクル長はバイブライン・レジス
タから駆動されるので(非レジスタ設計にした方がよい
が)、サイクル長は可能な限り最後の瞬時にサンプリン
グされて、ループを回って伝播する最大時間が得られる
。このタイミングは出力り9ツクが生成されたサイクル
の直後のサイクルで活動化するので、最初に現れるとき
よりも重要である。 タイム2クロツクはマイクロコード・クロックが動作す
る周波数の2倍で動作し、その立上がり縁はマイクロコ
ード・クロックの縁と同し時間に現れる。 書込みイネーブル・ゲート信号が低のときVMEインタ
フェース・メそすHOからの入力がサンプリングされる
。この人力がメモリ使用中を示していた場合は、サイク
ル長はこの人力が変わるまで延長される。これにより、
メモリ・アクセス時間に余裕ができるので、アクセス衝
突、オフボード通信などによつてアクセス時間を遅くす
ることができる。(この使用中信号は、PAL側から見
たときは、書込みゲートが低のとき余分のサイクルを挿
入したように見えるだけである。) クロックを自走させるか、lステップ進めるかの選択は
別の入力によって行なわれる。 CDバス・ソースPAL このPALはどのソースにCDバス112を駆動させ、
該当装置の出力イネーブル線を駆動させるかを選択する
CPマイクロコード・ビットをデコードするものである
。いずれかの16ビツト・ソースが選択されると(アド
レス生成機構230など)、こi7]島1、は符号/ゼ
ロ拡張PAL 211iを活動化させるイJτ4−も出
力する。リセット信号が活動しているときは、どのソー
スも選択されない。 TDバヌ122のデータ・ソース・フィールドのデニ1
−ドも同じ種類のPALを使用して行なわれる。 TDハス・ソースを選択するPALも、それぞれの対応
するFIFO空状況信号でF[FO読取りをゲ3−ト操
作するロジックを備えているので、空のI’lFOが読
み取られるのを防止する(FIFO内にエラーを起す原
因になる) CDバス宛先PAL このPAl、はCDバス112上のデータの宛先を選択
−するCP71−70コードをデコードして、該当装置
の読取りイネーブル線を駆動するものである。 TOババス2フのデータ宛先ビットのデコードも同U、
K’J類のPALを用いて行なわれる。 ソースまたは宛先装置が駆動する必要のあるチップ・イ
ネーブル線をもりていると(例えば、VMEイ゛ツタフ
ェース160やコマシト・メモリ190に1−.5ける
。メ干り)、そj、ぞれのナツプ・イネーブル線が駆動
される7 符号/ゼロ拡張PΔ121に のPALはイネーブル信号およびソース・データの高ビ
ットに応じて、符号またはゼロ拡張機能を実行する5、
使用するのが好ましいPALは8ビツト幅だけであるの
て゛、すべての符号/ゼロ拡張操作にはこれらか対で使
用される。このPALは2個所で使用されでX・)る、
一方の対(第2A図にプロ・ンク:!10で図示)すC
1つバス112本、2 ちう一方の対(第3A図にブロ
ック316で図示)はTDババス22につながっている
。 バス・ソース・ロジックは、16ビツト・ソースがアク
セスされるとき、イ才・−プル・ヒ′ットを符号/ゼロ
拡張ロジー・り216に送るぞ1のである。 第目A図と第146図はこのPAI、C)構成と動作を
示している。さらにゴしく (、才、第14A図は若干
溝なる実施例を示し、ている。つまり、各符号/ゼロ拡
張操作で3個の8ビツト・マルチプレクサか使用されて
いる、これにより、本好適実施例では不可能である車−
ベイトの使用が可能になった。第14f1図は第1・1
A図のハート−7エ7−「使用されるコマンF 構造イ
ど;丁<シていζ)。 マルチウェイ分岐アトレ、又指定PAL 217二のP
Al、、 4−Jシーケンサ310のマルチウェイ分岐
機能を実装−・rるために使用される。このP糺は3ビ
ット条件コードを受は取り、それをマイクロコード定数
フィールドの最下位3ビツトに挿入する。修飾された定
数フィールドはシーケンサ315上にフィードバックさ
れる。シフト・フィールド入力は結果を左にOllまた
は2桁シフトするかどうか(つまり、]、2または4を
かけるかどうか)、あるいは人力定数フィールドを未変
更のまま送るかどうかを制御する。別の入力はこのPA
Lの3状態出力ドライバをイネーブルする。 i33Aに示すように、このPALは3状態バツフア3
18と並列に接続するのが好ましい。定数フィールドの
最下位8ビツトだけがPAL317に送られる。最上位
8ビツトはバッファ318に送られる。 (好ましくは、修飾された定数フィールドは相対シーケ
ンサ命令で使用されるが、その使用に注意すれば、1漁
村まIこは間接命令て便用才るご、1−4゜可能である
。)マルチウェイ分岐操作は、第:101jJを参照し
て以下に詳しく説明する6 デ一タ入力条件コード選択P AL このPAl (DTPモジュール何201t:置かれて
おり、第3図にマルチプレクサ312で示されている)
はDTPマイクロコード・シーケンサ310でテストで
きる1組のFIFO状況コードを選択する。選択された
組の条件コードはデコードされ、シーケンサ310に送
られて、これらの条件に基づくマルチウェイ分岐が行な
われる。これらの条件信号のソースは、4つのハス人力
インタフェース、つまり、GIPインタフェース170
、データ・バイブ・インタフェース150の2つの入力
ボート、およびVMEインタフェース16001つの中
にあるものが選択される。 1)TP とI/F pΔし 以下は、デー・−夕転送プロセッサ・モジュール120
とインタフェース機構160.170.180で使用さ
れている最も重要な機能のいくつかを簡1に説明したも
のである。 VMEアドレス・デコードPAし 1つのPALはVMEアドレスの最下位ビットと5アド
レス修飾ビツトをデコードする。その出力はVMEアド
レスとアドレス修飾子が以前に選択されたビットと一致
すると活動化する。(アドレスとアドレス修飾子の組合
わせは最高16までプログラミングでき、そのうちの1
つは4ビット切替え信号によ)て選択される。)VME
割込みPALからの入力もあり、これは割込み承認サイ
クルがいつ進行中であるかを示している。これは出力を
駆動するようにデコードされたアドレスとORがとられ
る。 VMEアドレス・バスの最上位アドレス・ビット(1B
−31)も同じようなPALを使用してデコードされる
。このPALでは、アドレスの上位8ビツトを使用する
か無視するかが別の入力で選択される。 DMA FrFO状況とクロック制御PALこのPAL
はDM八へIFO670からのクロックと状況信号の経
路を制御する。また、このPALはこれらのFIFOの
クロックをDMAコン!−ローラ640の制御下に置く
か、VMEインタフェースからデコードするかを制御す
る。 VME読取りと書込みデコードPAL611読取りデコ
ードPへりはVMEバスからの8つの読取りソースをデ
コードする。内部VMEアドレスはデータ・ストローブ
、書込みイネーブル、およびボード選択信号によってデ
コードされ、修飾される。 書込みデコードPALはVMEバスからの9つの書込み
ソースをデコードする。内部VMEアドレスはブタ・ス
トローブ、書込みイネーブル、ボード選択、およびVM
E書込みイネーブル信号によってデコードされ、修飾さ
れる。 VME書込みイネーブル信号は各種書込みイネ
ーブルまたはクロックのセットアツプと保持条件をVM
Eバスのタイミングから独立して制御するために使用で
きる。 VMEスレーブ・アクセス・タイミングPALこのPA
Lはバス・コントローラ650においてデータ転送確認
通知のタイミングを発生する。このタイミングは、デコ
ーダ611が受は取るのとほぼ同じアドレスと修fit
li子もこのPALへの入力となるので、読み書きされ
るレジスタまたはメモリに合わせて調整することが可能
である。2重ボートVMEメモリ660が使用中であれ
ば、このタイミングは別の人力によって遅延される。(
これが行なわれると、使用中信号が終了したあとで追加
サイクルが挿入される。) 直列ループがデータのシフトに使用中であれば、タイミ
ングは別の人力によつて遅延される。 データが直列ループ・レジスタ68θに書き込まれると
き、VME書込み信号が高になったあとで3サイクルの
遅延が挿入されるので、直列ループ・ステート・マシン
(別のPALにある)は余裕をもフてデータをラッチ・
インすることができる。 このPALはVMEインタフェース・メモリ660がア
クセスされるとぎは、イネーブル信号も発生する。 信号ループ制御PAL このPALはマルチプレクサ2710とステート・マシ
ン2740を実装している。ステート・マシン機能は直
列ループ内の書込み可能制御記憶機構の各々とのインタ
フェースで818個の直列/並列レジスタを制御するよ
うに接続されている。(これらには、CP WC522
0とDTP WC5320のほかに、プロセッサ・モジ
ュール130の各々にあるFP WC5470とFP
WCS拡張部分490が含まれる。)ステート・マシン
はシフト・レジスタと直列データ・クロックを制御する
。シフト・レジスタとの間でデータ転送が行なわれてい
るときは、シフト・レジスタと直列データ・クロックは
アクセスのタイプ(つまり、読取りか書込み)に応じて
、またモード信号に従って制御される。直列ループモー
ド信号は次の3モードの1つを指定している。 DATA HOLD (00) : 通常のレジスタ
と同じように読み書きを行なう。 DATASHIFT(10):通常のレジスタと同じよ
うに読み書きを行なうが、直列データ・クロックを切り
替えている間に直列ループを回って16ビツトだけデー
タをシフトする。 r)ATA[’l且SE (l I)・通常のレジスタ
と同じように読み書きを行ない、直列データ・クロック
・パルスを1回発生する。 1)ATA 5IIIFTモードでは、又テート・マシ
ンはあるサイクルでシフトし、次のサイクルで保持する
ようにシフト・レジスタを制御する。この2サイクル・
パターンは15回繰り返され、その結果、シフト・レジ
スタの内容が直列ループ内に挿入される。保留呼イ′ク
ルでは、直列データ・クロックが主張される。データが
シフトされている間、使用中信号は活動しており、その
シフトが終るまでシフト・1ノジスタへの以降のVME
フクセスを保留にする。 rlATA PI’LSEモードでは、書込み操作(D
30Q−400nS後に、直列クロックは一度だけ高パ
ルスになる。このパルスは”818”シャドウ・レジス
タ内部の内部フリップフロップをアップロードする。 (これらのシャドウ・レジスタの各々は内部フリップフ
ロップを備えており、これはデータをそれぞれに対応才
るWC8にバックロードするときその動作モーl−をi
t、II御する。このDクロックがパルスを発生すると
きは、直列ループを回ってデータはシフトされない。(
この遅延により、データは安定化する。つまり、ループ
を回って伝わっていく。)この操作時は、使用中信号は
活動化さねて直列ループへの’/ME7々セスを禁止す
る。 このPALは4個の直列ループ帰還路225B、225
C。 225D、225E、によび再同期化フリップフロップ
2720を収集するマルチプレクサ2710も備えてい
机 DCM とDCM I/F PAL以下は、キャッ
シュ・メ千り140 と、FPモジュール130上に置
かれているが、キャッシュ・メモリi40とのデータ・
インタフェースを取り扱うCP拡張ロジックで使用され
る最も重要なPALのいくつかを簡単に説明し、たもの
である。 DCMアドレス・デコードPAL このPh3.はマルチプレクサと一緒に第5図にブロッ
ク560で示されている。このPALはデータ・キャッ
シュ・メモリ・アドレスをデコートする。 2つのアドレスλカが用意されている。人力516はC
ΔノくスI11のビット+9−25に対応しており、人
力517はTΔババス21のビット19−25に対応し
ている6仲裁ロジツク535によって生成される制御線
521はどちらのアドレスをデコードするかを選択する
。 DCM保持レジしタス御P八り へのPAL(CPとDTPマイクロコード・ストリーム
によって制御される)はデータ保持レジスタ56〇八、
560B、および420の3つのバンクを制御するため
に使用される各種制御信号を発生する。マイクロコード
・ビットはクロックと出力イネーブル信号を駆動するよ
うにデコードされる。バンク560Aを制御する信号は
CPアクセス信号536によって制御される。バンク5
60Bを制御する信号は、DTPボートの方が優先度が
低いので、CPアクセス信号536とDTPアクセス信
号537の両方によって制御される。 レジスタ・バンク420(浮動小数点モジュール上のF
P保持レジスタ)を制御する信号は該当のモジュール選
択信号と八NDがとられる。クロック信号はすべて正の
クロック縁のタイミングをjFIJ 御するために、書
込みイネーブル・ゲート・クロック信号によって修価さ
れる。 別の組の信号はアクセス・サイクルでメモリ出力をディ
スエーブルすることができる。これにより、保持レジス
タはデータ・キャッシュ・メモリに書き込まなくても読
み戻すことができる。(これらの信号は書込みマスク情
報をアクセスするために別のPALでも同じように使用
される。)(以 下 余 白) DCM書込みフラグ・レジスタPAL 書込みマスク・ロジック53G(8ビット書込みマスク
信号512をメモリ・バンク510に送る)は複数のP
ALを使用して実装されている。DTPインタフェース
・レジスタ560Bに対応するPALを最初に説明する
。CPモジュール110によってアクセスされる他のレ
ジスタ・セット560^の状況の追跡は、同じようなP
ALを使用して行なわれる。 このPALの目的は、保持レジスタ560B内の8F語
のどれにDTPによって書き込まれたかを覚えているこ
とである。データ′キャッシュ°メモリ書込みが必要で
あるときは、このPALの出力はDTP保持レジスタか
らの並列書込みにマスクをかける。更新されているF語
だけが実際にはデータ・キャッシュ・メモリ・バンク5
10に書き込まれる。保持レジスタに対する書込みが行
なわれると、対応するフラグ・ビットがPAL内にセッ
トされる。セットされるフラグ・ビットはこれらの条件
の下でDTPアドレスからデコードされる。フラグ・ビ
ットはデータ・キャッシュ書込みが行なわれるとクリア
される。しかし、操作はバイブライン化されているので
、DTPは同じサイクルで保持レジスタ560Bに書き
込むことができる。その場合には、フラグ・ビットはセ
ットされたままになる。 ざらに、8フラグ・ビットすべてを同時にセットするこ
とも可能である(マイクロコード・コマンドを受けて)
。これにより、ブロックで書込みを行なうことができる
。リセット信号はフラグをクリアする。ロジックは完全
に同期しており、クロック発生機構250によつて発生
したマイクロコード・クロックによってクロックがとら
れる。 別の人力信号は読み戻しモードをイネーブルする。この
モードでは、フラグ・レジスタの状態を下位2ビツトを
使用して直列に出力することができる。マイクロコード
はこの下位2ビツトにあるフラグ・ビットを読み取るこ
とができ、他のフラグ・ビットと入れ替えることにより
、マイクロコードはすべてのフラグ・ビットを読み取る
ことができる。DTPアドレスは、3フラグ・ビットの
どれを偶牧フラグ・ビットと入れ替え、どれを奇数フラ
グ・ビットと入れ替えるかを選択する。 FP書込みマスクPAL このPALはFP保持レジスタとデータ・キャッシュ・
メモリ間の転送に対して書込みマスクを生成する。マス
ク生成を制御するパラメータには、書き込むべきF語の
個数と先頭のF語がある。 FP P八り 以下は、本好適実施例においてFPモジュール130に
使用されているプログラマブル・アレイ・ロジック機構
(PAL)を簡単に説明したものである。 WCSロード・イネーブルPAL このPALはマイクロコードをFPモジュール自身のW
CS 470に、およびcpモジュールの拡張WCS4
90(つまり、FPモジュールに置かれているWC5部
分)またはそのどちらかに、モジュール選択信号でロー
ドするとき使用される一部を修飾する。 ホスト−ソース・モジュール 択PALこのPALはホ
ストからのモジュール・アドレス人力を局所スイッチ設
定値と比較して、そのモジュールが選択されているかど
うかを確かめるものである。1組の人力でWCSロード
がイネーブルされて行なわれる。 モジュール当たり1ビツト・アドレスが用意されている
ので、y(,5書込みをモジュール130のすべてに対
して独立して制御することができる。 (これと対照的に、上述したように、データ・アクセス
は最大モジュール数より少ないビットをもつモジュール
・アドレスを使用するので、モジュールのあらゆる組合
わせを選択することができない。) 第28図に示すように、直列コマンド・ループの好まし
いトポロジは、2つのループ部分2840が各を値処理
モジュール130に入るようになフている。一方の部分
225Aは入力をそのモジュール自身のWCS 470
に送り、もう一方の部分225Cは入力をそのモジュー
ル上のWC5拡張部分490に送るようになっている。 従って、2つの別個の出力コマンドが与えられるので(
しかもモジュール・アドレスによって修飾されて) 、
WO2470とWC5拡張部分490はそれぞれの出力
を共通帰逼バス225Eと225D (それぞれ)に送
り出し、モジュールのどれかが選択されたときに、その
モジュールによつて駆動させることができる。 CPモジュール選択PAL このPALはCPによって選択されたモジュール・アド
レスを、局所保管値と突き合せて比較するものである。 一致するものが見付かると、4つの出力が主張される。 これらの出力のうちの2つは制御信号がクロックをとる
ようにイネーブルするか、保持レジスタ420を出力イ
ネーブルする。もう1つの出力信号はLEDを駆動して
、とのFPモジュールが選択されたかをビジュアルで表
示する。 最後の出力は主ボードに返される条件コード・ビット(
選択済み)をイネーブルする。この最後の出力はCP拡
張マイクロコードで制御されるロジックに対する修飾信
号であり、マイクロコード・フィールド(またはレジス
タ格納値)で定義された処置が行なわれるようにイネー
ブルするものである。 FP−WC5制御PAL 2つのPALがWO2470を制御するために使用され
る。これらの2つのPALは別々の区域に置かれている
が、両方ともWO2に影響を与えるので、相互にインタ
ロックするようになっている。−船釣には、最初のPA
Lは命令レジスタ(これは上述したようにマイクロコー
ド短縮のために使用される)を制御するために使用され
る。もう1つは並列マイクロコード・ローディングを制
御するために使用される。 最初のPALはWO2470にある2つのRAMチップ
の出力イネーブルを制御する。本好適実施例では、WO
2470は2つのRAMチップを使用して構成され、イ
ンタフェース・レジスタ・セット420とマツチして並
列ローディングが行なわれるようにしている。(本好適
実施例では)キャッシュ・バス144は64ビツト・デ
ータ通路までに多重化されてFPモジュール130に送
り込まれるので、WC5470を2つの部分に分割する
と、マイクロ命令(本実施例では、104 ビット長)
の並列ローディングにマツチすることになる。 ホストがマイクロコードをロードするときは、命令レジ
スタはディスエーブルされる。その場合には、命令レジ
スタの出力は必ずディスエーブルされるので、TIAM
出力はホストによって生成された信号によって制御され
る。 2番目のPALは2つの個別機能を実行する。これらは
ハードウェアによる短縮を実現するときだけ結合される
。 最初の機能はホストによるWO2の読取り時にパ、イブ
ライン・レジスタ476のどちらのバンクをイネーブル
させるかを制御するものである。 2番目の機能は転送の長さ、つまり、保持レジスタとレ
ジスタ・ファイル間で転送すべき語の数を調整するもの
である。 パイプライン・レジスタの出力イネーブル信号は2つあ
り、これらは同時に活動することはない。(これらの信
号はレジスタ476の2つのバンクをイネーブルするた
めに使用される。他の個所で説明したように、この構成
はWO2470の2バンクに対応している。)パイプラ
イン・レジスタのどちらかを出力イネーブルさせるため
には、使用中信号が非活動に、モジュール選択とFPパ
イプライン・レジスタ出力制御(ホストからの)が活動
していなければならない。 転送長さフィールドは、1が転送すべき1語を、2が2
語を(以下同じ)を表すようにコーディングされる。8
語を転送することを指定するときは、0が使用される。 転送りロック発生機構(キャッシュ・バス・インタフェ
ース460の一部)は、転送サイクルの回数を知ってい
る必要があり、これはマイカ・サイクルに1を加えた数
である(パイプラインをセットアツプする場合)。 マイカ・サイクルの数は転送長さとその開始位置と共に
変化する。 ハンドシェイク・ロジックPAL 2つのPALがハンドシエAり・ロジックを制御するた
めに使用される。最初のPALは2つの独立機能を実行
する。最初の機能はCPとFPモジュール130間のハ
ントシェイキングを制御する。(この機能では、第22
図に状態図を示すようなステート・マシンにこの機能を
もたせている。)もう1つの機能(最初のm(iuと独
立して)はレジスタ・ファイル420が2重バッファ・
モードで使用されるとぎバンク選択を制御する。(この
モードの動作原理は第20図に示されており、上述した
通りである。) ハンドシェイキング・ステート・マシンはCPがFP待
ちにあることを、CPWATT出力HLを駆動すること
によって通知する。、FPが待ちにある場合は、ハンド
シェイキング・ステート・マシンはFPWArTllL
を駆動することによつてこれを知らせる。 CPWAITとFPWAITが共にHIであり、CPが
その完了信号を主張した最初のプロセッサである場合は
、次のような手順で行なわれる。 1、cPDONEがIIIであることが見付かったとき
は、FPWAITはLOに駆動される。 2、(:PDONEがIITになるまでCPWAITは
)IIのままで、制御はその状態のままである。 3、FODONEがHlになると、CPWAITはLO
に駆動される。 4、CPWArTとFPW八Iへ信号は、対応するDQ
NE信号が否定されるまで共にLDのままである。 上記手順は、FPがFPDONEを最初に主張した場合
にも行なわれるが、その役割は反対になる。 CPDONEとFPDONEが共に同時に到来した場合
(つまり、共に同じクロック縁で最初にIllでサンプ
リングされる場合)は、CPWAITとFPWAITが
共にLOになる。 このPALのバンク・スワップ側は上述したCP/FP
ハンドシェイキングが切り離されている。このステート
・マシンを制御する2人力信号は5CPBANKSEL
とFPSWAPである。5CPBANKSELはFPが
スワップ点まできたときCPにバンクをどのように割振
らせるかを指定している。FPがスワップ点までくると
、そのスワップ点を通り過ぎるまでFPSWAPを活動
状態に駆動する。スワップ点はCP/FPハンドシエイ
キング・ロジックによって同期化される。FPSWAP
点では、5CPBANKSEL(D状態はBANKSE
L出力の新しい状態であり、スワップ点の外では、[I
ANKSEL状態は未変更のままである。 最初のPALはFPと同期して動作するので、もう一方
のI”ALはCPモジ互−ル110が終了したこと、ま
たはバンクの交換を望んでいることを示すCP同期信号
を捕捉するために使用される。 この第2のPALは3つのハンドシェイク・モード・ビ
ットによって制御される(モジュール選択信号による)
。3ハンドシエイク・モード・ビットは次のように割り
振られている。ビット0と1は00がノー・オペレーシ
ョン、OJがCPDONEをセット、18がCPDON
Eをクリア、11がテスト・モードのIA置がとられる
ようにコード化されている。これとは独立して、ビット
2はレジスタ・バンクを交換することを要求実る。 CPDONE状態は命令がセットまたはクリア操作であ
る場合を除き、マイクロコード・サイクルにまたがって
未変更のままである。 このPALはモード・フィールドのビット2の正の縁を
、新しい人力を以前にレジスタ格納されたものと比較す
ることによって検出する。縁が検出されると、これによ
りバンク選択出力の状態か切り替えられる。 割込み捕捉PAL (:PWA4T、FPWAIT 、およびいくつかの割
込み信号でクロック縁を捕捉するために別のPALが使
用される。エラー割込みは中断点割込みと同じ割込み出
力を共用するが、独自のマスク・ビットをもっている。 出力は対応するマスタービットが1,0に駆動されると
リセットされるが、このマスク・ビットは以後の割込み
縁を検出するために旧に戻しておかなければならない。 マイクロアドレスとクロック制御PALこのPALはF
Pマイクロアドレス・ソースの制御とFPクロックの制
御の2つの独立機能を実行する。 マイクロアドレス・ソースは2ビツトの人力によって選
択され、次のようになっている。(DO)FP次アドレ
ス・ロジック477;(01) cpマイクロアドレス
211A、(10)開始アドレス・レジスタ479(
連続):(II)スタック478の出力。別の人力で2
ピッ1〜選択コマンドを無視することも可能である。そ
の場合には、CPマイクロアドレスはモジュールがイネ
ーブルされるとイネーブルされる。この人力を使用する
と、ホストはセットアツプやデバッグ時にWCS 47
0をアクセスすることができる。 FPクロック生成機構480(これは本好適実施例では
ECLが使用されている)をIII御する出力は次よう
に選択ができる。(00)FPマイクロコード・クロッ
クを自走させる。 (01)FPマイクロコード・クロ
ックを停止させる。別の論理条件はFPクロックを別の
人力によって制御させ、クロックがその主張があったと
き自走するようにする。 直列/並すロード選択 このPALはマイクロコードをホストまたはCPからF
PモジュールのWCS 470にロードすることを制御
する。ホストによってロードされるマイクロコードは直
列ループを使用する必要があるが、CPはマイクロコー
ドを並列にロードすることができる。注目すべき点をい
くつか挙げると、次の通りである。 1、Wcs 470に使用されているバイブライン、レ
ジスタは個別の出力イネーブルをもっていないので、こ
れらはデータ・バスでの競合を防止するために別々に使
用される。 2.2つの直列データ・クロック信号の依存性はホスト
またはCPが選択されたかに応じて切り替えられる。 3、ホストが直列ループを制御する場合は、モード信号
は両方のデータ・クロックを一緒に駆動させるか(通常
データ・シフト)、一方だけを駆動させるか(別の信号
で選択されたもの)を選択する。直列データ・クロック
はWCS 470からデータを読み戻すときもこれと同
じように制御される。 cp書込みデコードPAL このPALはWC5拡張部分490にあるマイクロコー
ド・フィールドをデコードして、レジスタ420のどち
らをアクセスするかを選択するものである。選択された
レジスタには、RCREGDIRがLOのときだけ書き
出される。XFREG、 FPREG、 UAREGま
たはM It CGの中から1つ選んでそこに書き込む
ことのほかに、実行される機能には他に2つある。 1 、CDバス・トランシーバ44イに対する方向と出
力イネーブル制御が生成される。 2、中断点をクリアするマイクロコード・ビットは書込
みゲート・クロックで書込みイネーブル・ゲートがとら
れる。ここで短パルスが使用されているのは、再始動直
後に現れる中断点を見失うのを防止するためである。(
これは、新しい中断点が現れたときCPがまだ前の中断
点をクリアする信号を低に維持していると問題を起すこ
とおそれがある。)従って、この信号はそれを短時間に
保つクロックでORをとるようにしている(活動−低A
ND)。 クロック/ストローブはすべてCPM(II:におよび
CPMCCKWGによって修飾されて、マイクロコード
・サイクル内でタイミングを設定するが、モジュールが
選択されていなければディスエーブルされる。 このP八りはCPマイクロコード・フィールドをデコー
ドして、レジスタ480のどちらをアクセスするかを選
択するものである。選択されたレジスタはRCIIEG
OIIIがIIIのときだけ読み取られる。 保持レジスタ制御P糺461 2つのPALが保持レジスタ420からの出力を制御す
るために使用される。 最初のPALは多対のレジスタ420に対するクロック
をイネーブルするために使用される転送シーケンス波形
を発生するものである。各転送サイクルは転送長さで指
定された通りに、1〜4マイナ・サイクルの間持続する
。(「マイカ・サイクル」期間は上述したように、転送
りロック412によって発生する。)各マイカ・サイク
ルで対のF語が転送されるが、そのうちの1語は別のP
ALによって禁止されることがある。転送シーケンス波
形は4つの線上に「遊歩LOJとして現れる。 循環列内で最初に主張される線はXFHR5T<1:2
>によりて制御され、XFrNITがHIのときだけ現
れる。XFINITは最初のサイクル時だけ活動し、後
続のサイクルでは現在のシーケンス波形が次の線を制御
するために使用される。LICXFDIRは転送方向が
保持レジスタ420からレジスタ・ファイル430への
とき、LOOPBACにモードが働いていなければ、+
11ICKENP◆<Q ; 3>をディスエーブルす
る。HRCにALLは通常の開始および長さ制御を無視
して、すべてのクロック・イネーブルを同時に活動化さ
せるので、1回のサイクルでデータを4コピーしてすべ
てのレジスタ対に入れることができる。 XFTYPE入力は波形列が通常の転送サイクルに対す
るものか、並列マイクロコード・ロード・サイクルに対
するものかを選択する。後者の場合には、常に2つのマ
イナ転送サイクルがあり、そのタイミングが若干具なる
ことがある。この入力は保持レジスタに対するすべての
クロックを禁止することができる。 第2のPALは各レジスタ対を出力イネーブルするため
に使用される転送シーケンス波形を生成するものである
。これらの2つのPALは相反する転送方向で使用され
る。 「クロック・マスクJ I’ALは、保持レジスタ42
0を構成する8個の32ビツト・レジスタ(Fレジスタ
)に書き込みを行なうことを制御するために使用される
8個のクロック・イネーブルを生成するものである。1
回の主転送サイクルで、8個までのF語をレジスタ・バ
ンク420の8個の別々のレジスタに送り込むことがで
きる。入力は更新する必要のある最初のレジスタ(0,
、,7) と更新すべきFレジスタ(1,、,8)の個
数を示している。 PALはそれに応じて、更新すべきすべてのレジスタに
対してビットがセットされたマスクを生成する(主転送
サイクル内で)、転送方向が保持レジスタ420からレ
ジスタ・ファイル430へのときは、すべてのマスク・
ピットはHlにセットされるので、保持レジスタへの書
込みは一切防止される。同様に、マイクロコード・ロー
ド・サイクルが現れている場合は、クロックはディスエ
ーブルされる。すべての保持レジスタがクリアされる場
合(もう1つの信号によ)て指示された通りに)は、イ
ネーブルは低にセットされるので、すべての保持レジス
タが更新される。 保持レジスタ開始アドレスPAL このP八りは4:1マルチプレクサとそのあとに続くレ
ジスタからなっている。マルチプレクサへの人力となる
ものには、レジスタからの保持レジスタ(HR)開始ア
ドレス、マイクロコード命令からのHR開始アドレス、
CPアドレス・バスからのFR開始アドレス、前の)I
R開始アドレスの4つがある。 モジュールが選択されない場合は、前のl(R開始アド
レスが残される。 レジスタ・ファイルWE!$制御 このPALはレジスタ・ファイル430に対する書込み
イネーブルを制御する。マイナ・サイクルで1個または
2個のF語がレジスタ・ファイルに書込むことができる
。開始位置と長さの6ビツトはクロック・イネーブル・
マスクが生成されるとき同じ方法で書込みイネーブル・
マスクを生成するために使用される。マスクからの該当
2ビツトはどちらのマイナ・サイクルが進行中であるか
に応じて、下半分書込み信号または上半分書込み信号か
ら順序付けられる。ループバック・モードが活動してい
るときは、書込みイネーブル・マスクはディスエーブル
される。別の信号はすべてのマイナ・サイクルで両方の
語を強制的に書き込むために使用できる。 下半分書込み信号と上半分書込み信号は転送方向が正し
くないか、転送タイプがマイクロコード・ロード機能で
あると、ディスエーブルされる。 人力信号はレジスタ・ファイルの読取りまたは書込みモ
ードを選択するためにもコード化される。 使用中信号線は保持レジスタ・データ・バス422が使
用中であることを指示するものである。 レジスタ・ファイル・アドレス aiPALこのPAL
はモジュールが選択されたときレジスタ・ファイル・ア
ドレスをレジスタに格納する。 そうでない場合は、前のアドレスが保持される。 アドレスの最上位ビットはソフト2重バッファリングが
行なわれるように修飾される。2ビット信号はどのタイ
プの修飾を最上位ビットに対して行なうかを選択する。 オプションには次のものかある。 1入カビツトの使用。これは物理アドレス指定モードで
ある。 2.8ANKSELの使用。これは2重バッファ・モー
ドである。 3.8ANKSELの反転値の使用。これはプレビュー
・モードであり、CPまたはFPはバンクを交換し合わ
なくても2重バッファの反対側にあるデータがアクセス
できる。 レジス・ファイル・アクセス増分機構 このPAL (イネーブルされているとき)はレジス
タ・ファイルのポインタを増分する。従って、アドレス
は各マイナ・サイクル(転送りロックの)ごとに増分し
て、レジスタ・ファイル430から次の対の番号を取り
出したり、次の対を書き込んだりすることができる。制
御入力は、保持レジスタ420からレジスタ・ファイル
430への転送の最初のマイナ・サイクル期間アドレス
定数を保持することを可能にする。これが必要なのは、
データ通路がパイプライン化されているからである。 データ有効性制御F A I。 このl’ALはレジスタ・ファイル430の偶数側と奇
数側に対するデータ有効性信号を制御する。マイナ・サ
イクルで、1個または2個のF語をレジスタ・ファイル
に書き込むことができる。開始アドレスと長さに応じて
、データの1語または2語がこのマイナ・サイクルで有
効になる。2つの出力(EVENVALID* と0D
DVALID傘)はどちらの語が有効であるかを示して
いる。この機能はレジスタ・ファイルからの転送ではデ
ィスエーブルされる。 マイクロ命令アドレス選択P A L このPALは次のマイクロ命令アドレスが真アドレス・
フィールドからのものか(つまり、レジスタ474の出
力)、偽アドレス・フィールドからのものか(つまり、
レジスタ475の出力)を選択する。内部の「常に真」
状況は無条件ジャンプのとき選択できる。両方共開始ア
ドレス・レジスタ479がマイクロアドレス・バス47
3を駆動できるように、あるいは5TACKPOPまた
はREADSTACK*信号がスタック操作進行中を示
しているときディスエーブルさせることかできる。(5
TACKI”Of’はFPマイクロコードから得られる
が、RE八へSTACKはCPによって制御される。) 上述したように、FPモジュール130はCPモジュー
ル110とDTI’モジュール120で言うような個別
のシーケンサをもっていない。事実、このモジュールは
個別のプログラム・カウンタでさえもっていない。その
代わりに、レジスタ474の真と偽の出力がこの機能を
果している。 ALt1問題状況PAL このPALは浮動小数点状況ビットの1つがいつ「問題
状況」状態を示したかを記憶している。 (本好適実施例で「問題J状況が使用されているのは、
基本的エラー処理メカニズムから切り離しである種の障
害状態をモニタするためである。)例えば、オーバフロ
ーのテストは各要素の計算のたびでなく、ベクトル演算
の終了時に行なうことができる。乗算機構440とAL
U 440は各々問題状況を表すビットをいくつかもっ
ている(オーバフロー、アンダフロー、無効演算、その
他の類似エラーを示すピント)。2つのマイクロコード
・ビットは問題状況レジスタの更新とクリアをす・rク
ル単位で制御する。 類似のPALはFMOY状況に対してこの機能を実行す
る。これらのPALにあるロジックもコード化された出
力で各種問題状況状態を示すようになっている。クロッ
ク・タイミングの使用により、問題状況ビットが存在す
るかどうかが1サイクルで検査される。 スタック制御PAL :]910 このPALは、サブルーチン・スタック・アドレス指定
の制御とテーブル・アドレス・カウンタの制御の2つの
別個の機能を実行する。 第39図は浮動小数点プロセッサ・モジュール130内
のスタック・レジスタ478の好適実施例を示している
。PAL 3910は多重レベル・パイプライン・レジ
スタ3920を制御する。(本好適実施例では、これは
AMD 29520が使用されている。)この多重レベ
ル・レジスタ3920は4つのパイプライン化レジスタ
3921を含んでいる。しかし、出力マルチブレクサ3
922にこれらのレジスタのいずれかを選択させて、直
接出力を得ることも可能である。 このマルチプレクサの出力はFPモジュール130のマ
イクロ命令アドレス・バス473に結ばれている。 PAl 3910は制御人力を多重レベル・レジスタ3
920に提供して、このレジスタをLIFO(後入れ先
出し)メモリとして機能させる。これにより、メモリは
スタックとして動作する。PAL 3910はパイプラ
イン化レジスタ3921に対して転送信号3912(こ
れはマイクロコード・クロックとANDがとられる)を
供給する。また、選択信号3913をマルチプレクサ3
922に供給する。 PALは通常のブツシュとポツプ機能を備えているほか
に、コマンドを受けて読取りスタック・モードに入って
、スタック状況を壊すことなくどのスタック・レベルで
も読み取ることができる。 レジスタ・ファイル・アドレス修飾子PALこのPAL
はFPレジタス・ファイル・アドレス・フィールドの最
上位ビットを、アドレス修飾コードと2ffiバツフア
の現在選択されているバンクに応じて修飾する。修飾す
べきアドレス・フィールドは3つあり(X、Y%T)(
これらは第1オペランド・バス431.第2オペランド
・バス432、および結実用バス433に対応している
)、ロジックはこれらの各々に対して同じである。これ
らのアドレスの1つについてそのロジックを以下説明す
る。 修飾最上位アドレス・ビットは入力アドレスの最上位ビ
ット、2ビツト修篩コード、およびバンク選択信号から
求められる。アドレス・ビットに対する修飾は次の通り
である。 1、修飾なし−これは物理アドレス指定モードである。 2、バンク選択信号の反転−これは2重バッファ構成で
通常のアクセスに使用される「論理」モードである。バ
ンク選択は、データがレジスタ・ファイルと保持レジス
タの間で転送されるとき使用されるものと反対であるこ
とに注意されたい。 3、バンク選択信号と同等−これはプレビュー・モート
である。上述したように、このモードにあるときは、1
・Pはバンクを交換し合わなくても2重バッファの反対
側にあるデータをアクセスできる。この機能は浮動小数
点バイブラインを一杯に保つことができる。 3つの修飾アドレス・ビットは外部レジスタに格納され
、「旧A6Jビット(各アドレスに1ビツト)としてフ
ィードバックされる。これらは、「旧へ6便用」コマン
ドが主張されたときこれらのビットの「計算で求めた値
」を置き換えるために使用される。この機能は、アドレ
ス・モードが数サイクル−の間未変更のままであるとき
アドレス・セットアツプ時間を短縮する。 結実用バス制御PAL このPALは結実用ソース・マイクロコード・フィール
ドをデコードして、必要とする装置(例えば、第1図の
構成では、FMPY 440. FALtl 450、
またはスクラッチパッド・メモリ161G)を出力イネ
ーブルする。このPALは必要時にスクラッチパッド・
メモリにチップ・イネーブル信号も送る。 VME割込ミPAL このPALはVMε割込みプロトコルをステート・マシ
ンの形で実現している。GENVMEINTが活動状態
(高)になると、rRQENは次の正のVCK縁で高に
駆動される。TnQENは割込みが受は付けられるまで
活動状態のままであるので、割込みの原因はCLRII
IQFF中を低に駆動することによって除かれる。VI
ACK傘とVIACKIN*信号がモニタされ、割込み
受付はサイクルが引き起された割込みで検出されると、
内部割込み受付はサイクルが開始される。 正しいVME割込み受付はサイクルはこれらの信号が活
動状態になり(VIACに■N*はデイジ一連鎖の一部
である) 、 VMEIA<01:03>が割込みが引
き起されたときと同じレベルにセットされることによっ
て識別される。内部割込み受付はサイクルはVMEID
Sが主張されるまで待ったあとで、数サイクルの間に割
込みベクトルをイネーブルしてデータ・バス(IVOE
中)上に送出し、IVDTACKをセットし、IRQE
Nを取り除く。しばらくしたあと、VMEIDSは非活
動状態になり、割込みベクトルとIVDTACにが除か
れる。割込み受付はサイクルが現れると、VINT八C
にへ主弓長され、そのあと割込みベクトルをバス上に送
り出すスレーブ・サイクルでBUSCONを始動する(
アドレス・デコードPΔLを通して)。 割込み受付はデイジ一連鎖は、未処理の割込み要求がな
いときこのPALに支障なく渡される。 DMA/VME ステート・マシン このPALばVMEバスとデータFIFO間のデータ転
送だけを取り扱う。転送の方向はステート・マシンから
は見えないので、クロックと状況は外部で切り替えられ
る。DMAR5TARTが活動状態になると、ステート
・マシンはDMA転送を開始する。まず、同期FIFO
状況(SDMAFSTAT傘)がFIFOに1回の転送
分のデータまたは余地があることを示し、SDMADO
NEがDMAカウンタが準備状態にあることを示すまで
待っている。DMACには低に駆動されて、データがあ
る場合にFIFOを出力イネーブルする。 ステート・マシンはバス要求(LBUSREQI)を出
して、その要求が許可(SLIIGI(ANTリ され
るまで待っている。バスが許可されると、DMAAS傘
とDMA[lS)がVMεバス・セットアツプ時間に従
って主張される。これらの2信号はVMEスレーブ装置
がデータ転送受付け(SL[lT八へK傘)を返してく
るまで保留され、そのあとDMAGKは高に駆動される
。1サイクルのあと、DM八へへ傘とDMADS傘は除
かれ、正の縁がDMAC0UNT″T:pJ動される。 転送モード(oM八へBLocK)が単一転送である場
合は、LBIISRELが主張されてバスが解放され、
上で述べた手順が繰り返される。転送モードがブロック
(順次)転送である場合は、バスは、ブロックの終りま
できているか(BLOCKENDテ示される) 、FI
FOが満杯/空であるか(SDMAFSTAT傘)、D
MAカウントが尽きたか(SDMADONE)、あるい
はDMAがDMAR5TARTの否定によって途中で打
ち切られた場合以外は、解放されない。ブロック転送の
ときは、[)MAAS)はBLOGKENDによって解
放されるまで保留されている。 5LBtlSERR中人力は、DMAアクセスの結果バ
スにエラーが起こると、活動状態になる。このエラーが
起こると、現在の転送は打ち切られ、DMABERRが
駆動される。ステート・マシンはDMATSTARTが
否定されてDMABEnllがクリアされるまでこの状
態のままである61長後の人力DMATESTはとのV
MEサイクルが現れなくてもDMAが行なわれることを
可能にする。これは、ステート・マシンの基本動作をテ
ストするときに便利であり、またバス・エラーが起こっ
たときにFIFOの入力を停止させる手段として利用で
きる。 リセット状態はDM八へ5T八RT、 DM八へIBL
OcKおよびDMAnTESTの未使用の組合わせを使
用することによって強行させることができる。 (以 下 余 白) 0M八へドレス制7.711 アドレス・ビット(VMEIΔ<Ol・07〉は、25
6バイト境界までにいつ達する直前にあるかを検出する
ためにモニタされるので、ブロックDMA転送を瞬時に
中断させて、VME仲裁を可能にする。(これにより、
VME規格における最大ブロック転送長さの制約に準拠
することができる。、)このことはBLOCKENDで
示される。PALの残り部分はDMAアドレス増分の処
理を担当する。転送サイ°ズ(16または32ビツト)
に応じて、DMAアドレスはDMAINCが高になると
、それぞれ1か2だけ増分される。 DMAアドレスの増分は、DMACNTEN中がマイク
ロコード・クロックの1または2サイクルの間活動して
いるかどうかを選択するDMARLONGINCによっ
て制御される。CLREF傘は、DMAC01lNTの
縁を捕捉したフリップフロップをリセットする。VME
II(STIは必要ならばPALをリセットするために
使用できる。 匙込立旦11 コノPAL ハGIPIEMPTY*、VMEIFEM
PTY*、DPIIEMPTY*、 VTPINTDお
よびVTPINTで正の縁を捕捉し、GIPOEMPT
Y*とVMEOFEMPTY中で負の縁を捕捉する。 これにより、割込・み信号を縁でトリガさせ、そのあと
マイクロコード・クロックと同期させることができる。 縁が検出されると、対応する出力は低に駆動される。縁
捕捉フリップフロップは対でリセットされる。つまり、
TPINTGIP傘は2つのGIP縁をリセットし、T
TIVMEFIは2つのVME縁をリセットし、TPI
NTVME傘は2ツノvTP縁をリセ・ントし、TPI
NTDPIPE傘は2つのDP縁をリセットする。 GrPマイクロコード・デコード このPALは3つのマイクロコード信号11GIPRD
I 。 UGIPWI中およびUGIPFRをデコードして、出
力イネーブル、 FIFO読取りおよび書込みクロック
およびレジスタ・クロックを発生する。FIFO9取り
クロックはFIFOの空の状況(GIPOE傘)によっ
てゲートされて、FIFO内の誤りを生じる空のFIF
Oの読取りを阻止する。クロックタイプの信号はGIP
CIまたはGIPFRDCKで資格づけされる。 GIP割込みマスク この1)糺は2つの機能を実行する。まず第1に7つの
割込み発生源となり得るものの中から4つを選択し、必
要な場合には選択的に反転して割込みIA置が正の縁に
なるようにする。4割込み発生源は2組が許され、GI
PSELIはそのどちらかを選択する。第2の機能は選
択した組に4マスク・ビット(GII’1M <Q・3
〉)でマスクをかけてから、結果を駆動してGIPIN
T <0:3>として出力するものである。GIPIA
Cト信号は単純に反転されるだけで、GIPI八〇にへ
得られる。 (以下余白) Glf’割込みステート・マシン このI’ALは割込み人力(GII’[NT<0:3>
) ノ正の縁を探し、1つまたは2つ以上が現れると、
GIPINTが駆動される。特定の割込みはマイクロコ
ード・フィールドUG IPCC5<0 : 1>でそ
れを選択して、UGIPCLAIを主弓長することによ
ってクリアされる。 すべてのフリップフロップはGrPR5T*によるリセ
ットでクリアされる。縁は割込みを1サイクルだけ遅ら
せ、遅延されたものと遅延されなかったものを比較する
ことにより検出される。遅延されなかりたものは、この
ステート・マシンがラン・オフしているGIPCIクロ
ックとすでに同期がとられている。 ホスト・コンピュータ 第1図に示すようなシステムは広範囲にわたるコンピュ
ータ・アーキテクチャで使用できる。本好適実施例では
、第1図のシステムは数値高速化サブシステムとして使
用されている。ホスト・コンピュータはVAX 880
0を使用し、VMEオペレーティング・システムが稼動
して、 VMEインタフェースとVMEバス4110を
通して第1図のシステムと通信するようになっている。 しかし、他の構成も幅広く使用することも可能である。 例えば、使用できるUNIXマシンは、Sun Mic
rosystems社提供の装置を含む様々なものがあ
る。 さらに、他のシステム・バス構造を使用することも可能
である。例えば、第1図のサブシステムをVMSが稼動
するVAXで使用し、インタフェース・ボックスを経由
してリンクで結ぶことができる。このサブシステムはM
S−DOSが稼動するパーソナル・コンピュータで使用
し、イーサネット(例えば)を経由して単純なVMEバ
ス・インタフェース・ボックスと通信させることさえ可
能である。 さらに注目すべきことは、第1図のサブシステムは32
ビツト・アーキテクチャが中心になっているが、このサ
ブシステムを64ビツト語や48ビツト語で使用できる
という利点があることである。この機能を得る1つの要
因は、わずか2サイクルで64ビツト演算が行なえる浮
動小数点プロセッサ・モジュール130に内部データ通
路を使用したことである。もう1つの要因は、キャッシ
ュ・バス+44を広幅にして、複数の64ビット語を数
値プロセッサ・モジュール130と並行して転送できる
ようにしたことである。従って、64ビツト計算は語の
ほぼ半分の速度で(つまり、はぼ同じビット速度)32
ビツト演算として実行することができる。 さらに、本明細書に開示されている多数の新規事項を様
々なシステムに適応させることも可能である。これらの
新規事項は本好適実施例のバス標準と全く異なるバス標
準をもつシステムに適応させることも可能である。実際
には、VMEバス・インタフェースは特別には利点がな
いので(総バンド幅を妥当なものにすることとは別に)
、発明者の開示義務に従うために開示したにすぎない。 ホストとのバス・インタフェース 上述したように、本好適実施例では、ホストと結ぶ主要
インタフェースとしてVMEバスを使用している。この
バスは上述したようによく知られている。 他のバス構成を幅広く使用することも可能である。例え
ば、VersaBus、FutureBus、またはN
u[lusを必要ならば、システムに組み入れる設計が
簡単に実現できる。超高速計算システムの場合は、光学
バスを使用し、光ファイバに変調固体素子レーザを使用
すると利点が得られる。 画像プロセッサ・サブシステム 1つの実施例によるシステムは第1図(または9Aか1
0)に図示のような1または2以上のサブシステムと通
信するポストを使用しているだけでなく、特殊な図形プ
ロセッサである追加サブシステムを使用している。ここ
で使用されている好適画像プロセッサは“GIP”プロ
セッサとも呼ばれ、英国Kingston−upon−
Thames在のbenchMark Technol
。 gies Ltd 社から提供されているものである
。 第41図は1つの構成例であるが、勿論、広範囲にわた
る他のトポロジやシステム・アーキテクチャを使用する
ことも可能である。ホスト・コンピュータ4100は画
像ブ°ロセッサ・サブシステム414゜および少なくと
も2つの数値高速化サブシステム4150 (これは例
えば、第1.9.1o図に示すものと同じにすることが
できる)と、viIIEバス4170を経由して通信す
る。VMEバス・+110を経由して、主メそす416
0、大容二記憶装置ffu7g(例、ハード・ディスク
)、および任意的に、1つまたは2以上の装置インタフ
ェース4180 (これは出力装置、ゲートウェイ、他
の記憶装置などにすることができる)をアクセスするこ
とも可能である。 本実施例では、追加バスが2つ使用されている。画像デ
ータ・バス4130は図形プロセッサと結ぶアプリケー
ション仕様インタフェースとなる。 (これは広幅であり、画像または図形伝送で使用すると
特に便利である。)この実施例の構成例では、これは’
GIPバスJ (benchMark Technol
ogies社提供)が使用されている。このアプリケー
ション向きバスは画像処理サブシステムの広バンド幅大
出力要求に非常にマツチしている。これは広幅バスであ
り、160データ線からなっている。 もう一方のバックブレーン・バスはデータ・パイプ・バ
ス412oである。このバスを使用すると、複数の数値
高速化サブシステムを第34.35.36.37図に示
す」;うなトポロジ41可成で結ぶことかできる。この
実b6例の構成例では、このバスは32データ線からな
っている。 システムの動作 本発明を色々な角度から見たいくつかの重要な使い方と
、開示されているシステム・アーキテクチャのいくつ−
かの使い方について以下説明する。 以下で説明するいくつかの方法はそれぞれ個別発明を構
成するものである。 サンプル動作の一現 アーキテクチャの簡単な使用例について以下説明する。 この例では、ホスト・プロセッサ4100は数値高速化
サブシステム4150 (第1.9または10図に示す
ものと同じ)に対してコマンドを出して2つの配列を一
緒に乗算して(配列要素単位で)その結果を第3の配列
に入れておくものである。 3つの配列はすべてVMEメモリ空間(例えば、主メモ
リ4160)に置かれている。コマンドが出される前は
、サブシステムは遊休状態にあり、コマンドが実行され
ると、再び遊休状態になる。これは図式化して第42図
に示されている。 コマンド・シナリオは2種類が示されている。 最初のシナリオは使用されるメモリ空間が物理空間だけ
のシステムを詳しく説明している。(この種のアーキテ
クチャは、ホストが可能な限りの作業ユを高速化サブシ
ステムにオフロードすることが望ましい場合に使用でき
る。)第2のシナリオはVMSが稼動するVAXやUN
IXコンピュータに見られるような仮想メモリをもつシ
ステムに対するものである。この第2シナリオでは、動
的メモリ割振りとディスクとのデータのページ・インと
ベージ−アウトがどのように処理操作で取り入れられて
いるかが示されている。 第15図はコマンド・メモリ190がどのような構成に
なっているかを示している。また、やりとりされるコマ
ンドと割込みタイプのいくつかも示されている。注目す
べき重要点は、2つのコマンドFIFOが含まれるよう
にコマンド・メモリ190をソフトウェアで分割すると
好ましいことである。 [:PコマンドFIFO4,5
2GはCPモジュール110にアドレス指定されたコマ
ンドをバッファするものてあり、DTI’コマンドFI
FO1510はDTPモジュール120にアドレス指定
されたコマンドをバッファするものである。 コマンド・インタフェース、やりとり、および作業のス
ケジューリングはソフトウェアによ)て制御されるが、
必要に応じて変更することが可能である。従って、以下
の例はシステムをどのように使用する必要があるかを明
確化していない。システムが使用できる態様を示したに
すぎない。 物理メモリ・モデル(CP/DTP間のやりとり)この
例では、ホスト・プロセッサは高速化サブシステムに対
してコマンドを出して、2つの配列を一緒に乗算して(
配列要素単位で)、その結果を第3の配列に入れておく
ためのものである。3つの配列はすべてVMEメモリ空
間に置かれている。コマンドが出される前は、高速化サ
ブシステムは遊休状態にあり、コマンドが実行されると
、再び遊休状態になる。これは図式化して第42図に示
されている。 コマンI・の’J 行1fSには、次のようなステップ
で行なわれる。 (1)ホストはベクトル乗算コマンドを高速化サブシス
テムのコマンド待ち行列(これはVMEインタフェース
・メモリに置かれている)に入れる。 その際、コマンドで配列内の要素の数、2つのソース配
列のアドレス、および結果配列のアドレス指定しおく。 コマンドとそのパラメータが待ち行列に追加されると、
ホストはデータ転送プロセッサ・モジュール120に割
込みを引き起す。これにより、ホストは解放されるので
、他の仕事を行なうために使用できる。 (2)ホストから割込みを受は取ると、データ転送プロ
セッサ・モジュール120はコマンドとそのパラメータ
のコピーをとって、コマンド・メモリにあるソフトウェ
ア管理のCPコマンドFIFOに入れておく。割込みが
制御プロセッサ・モジュール11.0で引き起されて、
コマンドが存在するとの通知を受ける。データ転送プロ
セッサ・モジュール120は遊休状態に戻る。 (3)割込みを受けると、それに応えて、制御プロセッ
サ・モジュール+10は遊休状態から出て、コマンドと
そのパラメータをコマンド・メモリ+90内のCPコマ
ンドFIFO1520から読み取る。コマンドで指定さ
れたアドレスが検査され、オフボード(つまり、データ
・キャッシュ・メモリ140にではなく)に置かれてい
ることが判明する。従って、この例では、2つのデータ
取出しコマンドと”INTERRUPT (:P WI
IEN DONE−コv ンドがコマンド・メモリ19
0内のDTPコマンドFIFO1510に書き出される
。各データ取出しコマンドは配列のソース・アドレス、
その長さ、データ・キャッシュ・メモリ内のその宛先ア
ドレスを記述している。データ転送プロセッサ・モジュ
ール120に割込みが起こり、制御プロセッサ・モジュ
ール1.10は遊休状態に戻る。 (4)割込みを受けると、それに応えてデータ転送プロ
セッサ・モジュール120は遊休状態から出て、最初の
コマンド(とそのパラメータ)をDTPコマンドFIF
O1510から読み取る。データ転送ブロセッサ・モジ
ュール+20はデータを取り出すべきアドレスをチエツ
クして、それがシMEアドレス空間に厘かれていること
を確認する。次に、データ転送プロセッサ・モジュール
120はI/Mεインタフェース160内のDMAコン
トローラが配列を取り出して、それをVMEインタフェ
ース160内のデータFIFO670を書き込むように
セットアツプする。 (これは実際にはコマンド待ち行列FIFO1510お
よび1520と異なり、ハードウェアFIFOであり、
先入れ先出し機能はソフトウェアにもたせていることに
注意されたい。)このデータが到着すると、データ転送
プロセッサ・モジュール120はデータFIFO670
からデータを読み取り、それをデータ・キャッシュ・メ
モリ140に書き込む、転送が完了すると、DTPコマ
ンドFIFOが検査されて、次のコマンドはなにか(も
しあれば)が確かめられる。 この場合、別のデータ取出しコマンドが見付かると、最
初の取出しコマンドと同じ方法で実行されるにれが終る
と、次のコマンドが読み取られ、実行される。このコマ
ンドは制御プロセッサ・モジュール110に割込みを引
き起す。DTI’コマンドFIFO1510はこれで空
になり、データ転送プロセッサ・モジュールは遊休状態
に戻る。 (5)この割込みにより、制御プロセッサ・モジュール
11Gは、要求した2つの配列がデータ・キャッシュ・
メモリに格納されたことを知る。結果配列の宛先アドレ
スはオフボードにあるので、制御プロセッサ・モジュー
ル110は結果を入れておく一時的配列をデータ・キャ
ッシュ・メモリ140内に割り振る。CPモジュールI
I(lは計算処理を開始する。計算処理のとき、中間デ
ータ・セットがキャッシュ・メモリ140から取り出さ
れて、FPモジュール130(CPモジュール110の
制御下にある)のレジスタ・ファイルに移される。FP
モジュール130は独自のマイクロコードを稼動させ、
同期点でCPモジュール110とインタフェースになっ
て、数値演算を実行する。中間データ・セットはFPモ
ジュールのレジスタ・ファイルからキャッシュ・メモリ
140(CPモジュール110の制御下にある)に移さ
れる。従って、ベクトル乗算が完了したときは、結果は
、CPモジュール110によって以前に割り振られたキ
〜・ツシュ140内の配列に残ってい乙。 (6)次に、制御プロセッサ・モジュール110はデー
タ保管コマンドと”INTERRUPT ll0sT
WHENDONE” ニア 7 :/トをoTp:+マ
ントFIFO1510に書き出す。データ保管コマンド
は、データ・キャッシュ・メモリ内の結果配列のソース
・アドレス、宛先アドレス(下のコマンドで指定された
もの)、および配列長さを指定している。データ転送プ
ロセッサ・モジュール120に割込みが起こる。CPコ
マンドFIFOが空ならば、制御プロセッサ・モジュー
ル110は遊休状態に戻る。 (7)割込みを受けると、それに応えてデータ転送プロ
セッサ・モジュール120はその遊休状態から出て、最
初のコマンド(とそのパラメータ)をDTP ニアマン
トFIFOから読み取る。データ転送プロセッサ・モジ
ュール120はデータを保管すべきアドレスを調べて、
それがVMEアドレス空間に置かれていることを確認す
る6次に、データ転送プロセッサ・モジュール120は
、VMEインタフェース160内ノDMAコントローラ
640が正しい個数のF語をデータHFOδ70からV
ME主メモリに転送するようにセットアツプする。デー
タ転送プロセッサ・モジュール120はデータをデータ
・キャッシュ・メモリから読み取り、それをデータFI
FO670に書き込む。結果配列がデータFIFOに転
送されると、データ転送プロセッサ・モジュール120
はDMAコントローラにそのことを通知し、DMAコン
トローラがVMEメモリへの転送を終えるまで待ってい
る。 (8) DTPコマンドFIFOが空でなければ、次の
コマンドが読み取られ、実行される。これは”INTE
RRUPT−HO5T−WHEN−FTNISHED”
コマンドである。このコマンドを受けると、完了したば
かりのコマンドの状況がVMEインタフェース・メモリ
内のコマンド待ち行列に書き出され、ホスト割込みが引
き起される。この割込み通知を受けて、ホストはそのベ
クトル乗算コマンドが終了し、その状況をVMEインタ
フェース160内の状況レジスタから読み取ることがで
きることを知る。そのあと、データ転送プロセッサ・モ
ジュール+20は遊休状態に戻り、これで操作を終了す
る。 上記処理の途中のいつでも、ホストは新しいコマンドと
そのパラメータをコマンド待ち行列に書き込んで、デー
タ転送プロセッサ・モジュール120に割り込むことが
可能である。そうすると、DTPモジュールは割込み要
求を制御プロセッサ・モジュール110に対して出して
、新しいコマンドを通知する。可能ならば、その実行は
上述したように開始されることが好ましい。これを行な
うと、制御ブロセ、ツサ・モジュール110とデータ転
送プロセッサ・モジュール120はコマンドの処理に専
念できるが、望ましくないやりとりがコマンド間で行な
われないようにする配慮が必要である。 データ・アドレス割当てはかなり柔軟性をもたせている
。インタフェース150.160.170(と局所デー
タ・キャッシュ・メモリ140)の各々には、そこを通
してアクセスできるアドレスが範囲で割り当てられてい
る。これにより、データ転送プロセッサ・モジュール1
2Gは異なるデータ・ソースや宛先の場所ごとに別コマ
ンド定養をしなくても、コマンドのデータ要件を満足す
るように正しいインタフェースを制御することができる
。 上述の例では、コマンドはVMEバスを経由してホスト
から送られてきたが、これらのコマンドは前述の説明内
容に殆んど変更を加えないで、インタフェースのどれか
らでも簡単に出すことができる(あるいはコマンド・リ
ストの一部として保管しておくことができる) VME
ホストは1つの例として選ばれたものである。 コマンドに必要な総記列サイズがデータ・キャッシュ・
メモリ内の空き記憶域を越えるときは、制御プロセッサ
・モジュール110はコマンドをいくつかの小さな演算
に分割することによって、使用可能な記憶スペース内で
コマンドを処理することを試みる。しかし、ある種のコ
マンドの場合は、これは不可能であるので、ホストにコ
マンドが失敗したことが通知される。 ポストかコマンドを送るのが早すぎる場合は、内部ソフ
トウェアFIFOが一杯になることがある。 これが全体の演算に影響するのを防止するために次のよ
うな配慮がなされているa第1は、DTPコマンドFI
FO1510がcpコマンドPIFOL520の奥行の
少なくとも3倍になっていることである。1つのホスト
・コマンドは3つ以上のデータ転送コマンドになること
は稀にしかないので、DTPコマンドFIFOがホスト
・コマンドの結果として一杯になることはない。 CPコマンドFIFOはほぼ満杯マークまでくると、V
MEインタフェース内の状況ビットがセットされる。 仮想メモリ・モデル 仮想メモリを採用する場合は、ホスト側の作業量が増加
するというやっかいな問題がいくつか生じる。これらの
問題が起こるのは、アプリケーションが物理fモリより
はるかに大きい仮想アドレス空間をアクセスできるから
である。仮想アドレス空間全体はディスク上にだけ存在
し、活動中のソフトウェアがそのとき必要とするアドレ
ス空間部分は実行時に必要に応じて主メモリにページ・
インされる。このことは、次のような種類の問題をいく
つか起こす原因になっている。 配列、または配列の部分がディスク上にだけ存在し、物
理メモリに存在しないことがある。さらに、高速化サブ
システムが必要とする配列部分がシステムで稼動中の他
のタスク用のスペースを作るために、スワップ・アウト
されることがある。 配列に割り当てられる物理アドレスは、コンピュータ始
動以後のすべての処理活動記録と共に変化するので、予
測ができない。 各仮想メモリ・アドレスは変換処理を受けて、特定のデ
ータ項目をアクセスするための物理アドレスが決まる。 この結果、配列がメモリ内で非連続になったり、分散し
たりする。 これらの問題を回避するには、データ転送プロセッサ・
モジュール120が配列をデータ・キャッシュ・メモリ
との間で転送している間、配列を物理メモリにロックし
ておく必要がある。理想的には、配列か連続しているの
が望ましい。配列を連続にできない場合は、データ中云
送フ゛ロセッサ・モジュール+20は転送の過程で分散
/収集操作を行なう必要がある。しかし、データが物理
メモリのどこに分布しているかを知るには、分散/収集
テーブルが必要になる。 高速化サブシステムとの間のデータ転送を組織化し、そ
れに伴なうメモリ管理機能を扱う仕事をアプリケーショ
ン・ソフトウェア(ホスト上で稼動する)にもたせるの
が好ましい。(実際には、アプリケーション・ソフトウ
ェアは、MATHライブラリ・ルーチンと装置ドライバ
がこれらの問題を扱うので、その大部分から解放されて
いる。業界標準配列プロセッサ・ライブラリ・ルーチン
はデータを配列プロセッサとの間で受は渡しすること(
ライブラリ・ルーチンを使用して)をユーザ側に任せて
いる。)ソフトウェア階層について以下説明するが、こ
こではその違いについては触れないことにする。 上述した配列乗算例では、アプリケーション・ソフトウ
ェアは次の7ステツプを受は持っている。 ■)配列Aを高速化サブシステムに転送し、それをアド
レス昌に保管する(高速化機構によって実行)。 2)配列B′j!−高速化サブシステムに転送し、それ
をアドレスBBに保管する(高速化機構によって実行)
。 3)高速化サブシステムが転送を終えるまで待っている
(高速化機構によって実行)。 4)アドレス静とBBにある配列を一緒に乗算してその
結果をCCに保管する(高速化機構によって実行)。 5)高速化サブシステムが乗算コマンドを終えるまで待
っている(ホストによって実行)。 6)アドレスCCにある配列をホスト・アドレス空間に
転送する(高速化機構によって実行)。 7)高速化サブシステムが転送を終えるまで待っている
(ホストによって実行)。 この処理順序に関して注目すべき点をいくつか挙げると
、次の通りである。 祖数のコマンドを高速化サブシステムに送ることがてき
る。これらのコマンドは待ち行列に置かれてから、処J
里される。 ホストは転送と乗算との間の同期点を出して、すへての
データがデータ・キャッシュ・メモリに存在するまで乗
算が開始されないように配慮する。 高速化サブシステムを待たなくても、ホストが解放され
ているので他の仕事ができる。しかし、ホストのオペレ
ーティング・システムは、高速化サブシステムとの同期
をとるためには明示の待ち操作が必要になるのが普通で
ある。 ステップCとeは、転送と計算操作の同期化がオプショ
ンとして高速化サブシステム内で簡単に行なえるので、
省略してもよい。しかし、そうすると、業界の事実上の
標準と互換性を失うことになる。 データ・キャッシュ・メモリのメモリ割振りはCPマイ
クロコード監視ルーチンよりも高いレベルて扱われる。 配列はメモリ内でロックされ、データ断片化の問題はア
プリケーションと高速化サブシステム間のインタフェー
ス・ソフトウェアによって取り扱われる。同期(待ち)
点が頻繁に現れると、メモリ・ブロックは短期間ロック
されるので、多重ユーザや多重タスク処理環境に与える
ストレスが軽減される。 コマンドの実行は次のようなステップで行なわれる。 (1)ホストは、コマンド・タイプと対応する数のパラ
メータを指定して、コマンド(転送または計算)を高速
化サブシステムのコマンド待ち行列(VMEインタフェ
ース・メモリに置かれている)に入れる。コマンドとそ
のパラメータが待ち行列に追加されると、ホストはデー
タ転送プロセッサ・モジュール120に割込みを引き起
す。これでホストは解放されるので、他の仕事に使用で
きる。 (2)ホストから割込みを受けると、データ転送プロセ
ッサ・モジュール120は現在の活動(遊休中かある種
の転送)を−時中止して、コマンドのタイプを調べる。 コマンドには次のようなタイプがある。 コマンドが制御プロセッサ・モジュール110に対する
ものならば(つまり、計算)、コマンドとそのパラメー
タはコピーされて、コマンド・メモリ190内のCPコ
マンドPIF01520に入れられる。 制御プロセッサ・モジュール110で割込みが起こり、
そのコマンドが通知される。データ転送プロセッサ・モ
ジュール120は前の活動に復帰する。 コマンドが同期化コマンドならば、未処理のコマンドす
べてが完了するまで以後のコマンドは待ち行列から取り
出されない。これは、“WAIT FOR^LL AN
D N0TIFY HO5T”コマンドをDTPコマン
ド待ち行列に挿入することによって行なわれる。 (3)遊休状態にある間、データ転送プロセッサ・モジ
ュール12Gは絶えずCPコマンドFIFOを調べてい
る。この待ち行列が「空でない」状態になると、コマン
ドはそこから取り出され、操作が行なわれる。例えば、
ホストからデータ・キャッシュ・メモリへの転送の場合
には、データ転送プロセッサ・モジュール120はVM
Eインタフェース内のDMAコントローラが配列を取り
出し、それをデータFIFOに書き込むようにセットア
ツプする。転送が終ると、DTPモジュール120はコ
マンドをDTPコマンド待ち行列から取り除く。別のコ
マンドがFIFOにあれば、そのコマンドが実行され、
DTPコマンド待ち行列が空ならば、データ転送プロセ
ッサ・モジュール120は遊休状態に戻る。 (4)割込みを受けると、それに応じて制御プロセッサ
・モジュール110は遊休状態から出て、コマンドとそ
のパラメータをコマンド・メモリ内のソフトウェアCP
コマンドFIFOから読み取る。アドレスAAと88に
ある配列のベクトル乗算が完了すると、その結果の配列
はデータ・キャッシュ・メモリ内のアドレスCCに残さ
れている。コマンドの実行が終ると、そのコマンドはC
PコマンドFIFO1520から除かれる。他にコマン
ドがなければ、制御プロセッサ・モジュール110は遊
休状態に戻る。 上記3j2明において注目すべき点をいくつか挙げると
、次の通りである。 制tallプロセッサ・モジュール110とデータ転送
プロセッサ・モジュール1’20間の内部制御と同期化
が物理メモリ・モデルに比べて大幅に減少する。データ
転送プロセッサ・モジュール120は制御プロセッサ・
モジュール110よりも制御機能(またはコマンド経路
指定機能)が強化されている。 待ち行列はホスト連絡用に1つ、DTPの作業用に1つ
、CPの作業用に1つの3つが活動している。 高速化サブシステム側でデータ・キャッシュ・メモリに
残っている以上の記憶域が必要になる計算の場合には、
その計算を小さな部分に分割する仕事はホストが行なう
。 cpとFP間のやりとり 制御プロセッサ・モジュール110と浮動小数点プロセ
ッサ・モジュール130はアルゴリズムを実行するため
に、非常゛に緊密な関係でやりとりする。制御プロセッ
サ・モジュール110はアドレスを計算し、データ・キ
ャッシュ・メモリと浮動小数点プロセッサ・モジュール
130間のデータ転送を取り扱うのに対し、浮動小数点
プロセッサ・モジュール130はデータ計算を行なう。 このやりとりは制御プロセッサ・モジュール110、デ
ータ転送プロセッサ・モジュール120およびホスト・
コンピュータ間のインタフェースのタイプから独立して
いる。 ベクトル乗算コマンドでは、浮動小数点プロセッサ・モ
ジュール130はベクトル乗算を一度に8個の要素ずつ
行なう。従って、配列が大きいときは、制御プロセッサ
・モジュール110と浮動小数点プロセッサ・モジュー
ル130との間でやりとり(同期点とも呼ばれる)が数
千回行なわれることもあり得る。同期点は、この例では
、400nsごとに現れるので、これらを効率よくする
ことは非常に重要である。 大抵の場合、制御プロセッサ・モジュール110は浮動
小数点プロセッサ・モジュール+30がデータ計算を行
なうよりも、アドレス計算とデータ転送を高速に行なう
能力をもっている。その逆の場合には、待たされる方が
反対になる。 2つのフラグ(CPWAITとFPW八Iへ)が両プロ
セッサ間の同期を制御することは上述した。FPWAI
Tフラグは次の組のデータを浮動小数点プロセッサ・モ
ジュール130との間で転送すると、制御プロセッサ・
モジュール110によってクリアされる。このフラグを
テストすることにより、浮動小数点プロセッサ・モジュ
ール130は同期点まで進むことができるか、制御プロ
セッサ・モジュール110を待つ必要があるかを知るこ
とができる。CPWAITフラグはデータ計算を終える
と、浮動小数点プロセッサ・モジュール130によつて
クリアされ、制御プロセッサ・モジュール110によっ
てモニタされる。ハードウェアは、フラグがクリアされ
てプロセッサが同期点まで進むことが可能になると、同
期点を通過した直後にフラグが自動的にセットされる構
成になっている。 第22図はFT’WAIT、CPW雇T、FPDONE
、およびCPDONEフラグがcpモジュール110と
FPモジュールNO間のデータ・インタフェースを調整
するためにどのように使用されるかを状態図で示したも
のである。 プロセッサ間のハンドシエイキング・ロジックとセマフ
ォは多種類のものが実現されているが、第22図に示す
状態図が非常に利点があり、新規なものである。 制御プロセッサ・モジュール110と浮動小数点プロセ
ッサ・モジュール130間のデータ転送は2重バッファ
になっているので、浮動小数点プロセッサ・モジュール
130がある組のデータを処理している間、制御プロセ
ッサ・モジュール110は別の組のデータを処理するこ
とができる。2重バッファリングは上述したようにソフ
トウェアで行なわれる。両プロセッサはバッファの交換
を制御する信号をもっており、これらは”AND“がと
られて両プロセッサが活動しているときだけ交換が行な
ねれるようにしている。 ベクトル乗算は以下のステップで行なわれる。 (同し番号をもつステップは並列に行なわれるものであ
る。)これらのステップを図式化してフローヂャートで
示したのが第33図である。 (1)制御プロセッサ・モジュール!10はFPWAI
Tフラグをセットして、ベクトル乗算マイクロコードが
実行される浮動小数点プロセッサ・モジュール130を
始動する。7¥動小数点プロセッサ・モジュール130
はFPWAITフラグがクリアされるまで待たされる。 (2)制御プロセッサ・モジュール110は最初の8要
素を両配列から2重バッファ(これは物理的には上述し
たように、レジスタ・ファイル430の2バンクから構
成されている)に転送する。CPモジュールは次に、2
重バッファを交換して、浮動小数点プロセッサ・モジュ
ール130がデータをアクセスできるようにして、FP
WAITフラグをクリアする。 (3)制御プロセッサ・モジュール+10は次の8要素
を両配列から2重バッファに転送して、FPWΔITフ
ラグをクリアする。そのあと、CI’WAITフラグが
クリアされるまで(浮動小数点プロセッサ・モジュール
130によって)待たされる。 (3b)浮動小数点プロセッサ・モジュール130はF
PW八Iへフラグがクリアされていることを見つけると
、2重バッファの浮動小数点プロセッサ・モジュール1
30側に保管されている8対の要素に対するベクトル乗
算の計算を開始する。8個の結果は2重バッフ1に書き
戻され、FPWAITフラグがクリアされる。この例で
は、制御プロセッサ・モジュ−)し110はすでに終え
て、FPW八Iへフラグをクリアしているので、浮動小
数点プロセッサ・モジュール130はバッファを交換し
て、即時に次の組の計算を開始することができる。 (4a)制御プロセッサ・モジュール110は8個の結
果を2重バッファからデータ・キャッシュ・メモリに転
送し、そのあと次の8個の要素を両配列から2重バッフ
ァに転送して、FPWAITフラグをクリアする。その
あと、CPWAITフラグがクリアされるまで(浮動小
数点プロセッサ・モジュール130によって)待たされ
る。 (4b)浮動小数点プロセッサ・モジュール130はF
r’WAITフラグがクリアされているのを見つけると
、2重バッファの自分側に保管されている8対の要素に
対するベクトル乗算の計算を開始する。 8個の結果は2重バッファに書ぎ戻され、CPWAIT
フラグがクリアされる。この例では、制御プロセッサ・
モジュール110はすでに終えて、 FPWAITフラ
グをクリアしているので、浮動小数点プロセッサ・モジ
ュール130はバッファを交換して、次の組の計算を開
始することができる。 (5)ステップ(4a)と(4b)がベクトル計算全体
が完了するまで繰り返される。 (6)ステップ(5)が終わったとき、最後の組の結果
はまだ2重バッファのFP側に残っているので、制御プ
ロセッサ・モジュール110はバッファを交換して、最
後の結果をデータ・キャッシュ・メモリに転送する。 第1図に示すようなシステムを動作させるときは、実行
時ソフトウェア環境全体をいくつかのレベルに分割する
ことが好ましい。これらのレベルのうちあるものは、異
なるプロセッサで実行される個々のコード・モジュール
として存在し、他のレベルは必要とされるインタフェー
スをいくつかのレベルに分割する形で存在している。こ
れらのレベルすべてとレベル間インタフェースはソフト
ウェア制御下に置かれ、アプリケーション要件に合って
いなければ、変更が可能である−0このソフトウェア構
成は一般的に従来からあるものである。しかし、本明細
書に記載の新規事項の望ましい使い方を分かりやすくす
るために、以下で説明しておくことにする。 第44^、44B、および44C図は第1図に示すよう
なシステムのプログラミング環境を示したものである0
図示の機能別ブロックの多くは他の図に示されているハ
ードウェア要素のそれと同じ番号で示されているが、第
44^、44B、および4LC図はプログラマから見た
機能別ブロック間の関係を示すことを目的としている。 従って、これらの図は必ずしも現実の電気的および論理
的接続に正確に対応していないことにン主意されたい。 アプリケーションとライブラリ・ソフトウェア以下の説
明では、アプリケーション・ソフトウェアが例えば、F
ORTRANや°C゛のような高水準言語で書かれてお
り、標準ライブラリ・ルーチンを呼び出して、高速化サ
ブシステムを使用するものと想定している。これらの呼
出しは業界の事実上の標準に準拠している(つまり、全
体的に浮動小数点システムからのプロダクト命令セット
と互換性がある)、これらには、アプリケーション・デ
ータ区域と高速化サブシステムのデータ・キャッシュ・
メモリ間でデータを転送するルーチン、広範囲にわたる
計算、ある種の同期化ルーチンが含まれている。 このレベルでのソフトウェアはホスト・コンピュータ・
システム上で稼動し、必要とするアプリケーションを実
施する機能をもっている。これはライブラリとリンクさ
れて、高速化サブシステムをアクセスする。 ライブラリはアプリケーション・ソフトウェアから見て
、高速化サブシステムと結ぶインタフェースの働きをす
る。ライブラリは数百に及ぶ共通算術演算/アルゴリズ
ム・ルーチン群と、高速化サブシステムを初期設定し、
アプリケーションの配列やデータ・セットのデータ転送
を開始するルーチン群から構成されている。大部分のラ
イブラリ・ルーチンは入力パラメータと機能番号を装置
ドライバに渡すだけの機能しかないが、ある種のパラメ
ータ有効性検査が必要ならば組み入れることも可能であ
る。。本好適実施例では、装置ドライバとのインタフェ
ースはシステム呼出しくSystemCalls)を経
由する。しかし、ある種のオペレーティング・システム
では、呼出しタスクが再スケジューリングのために受渡
しされるので、呼出しに大きなオーバヘッドがかかって
いる。 装置ドライバ 装置ドライバはオペレーティング・システムの一部と考
えることができ、アプリケージ3ン・ソフトウェアより
も高度の特権レベルで実行される。装置ドライバの主な
役割は次の通りである。 1)コマンドとパラメータをライブラリ・ルーチンから
高速化サブシステムのVMEインタフェース・メモリに
置かれているコマンド待ち行列に転送すること。 2)転送すべきデータ(仮想メモリ・システムにある)
がメモリにロックされていることを確かめること。この
ためには、転送が連続ブロックに分割されていて、小さ
く分割した複数の転送が実際に行なわれているか、分散
/収集テーブルが作られていて、高速化サブシステムに
渡されていることが必要である。 3)マイクロコードを複数のプロセッサにロードし、−
数的にはハードウェアとマイクロコードを既知の状態に
まですること(電源投入後か、新しいアプリケーション
がそれを使用する準備状態に置くため) ライブラリと装置ドライバを新しいホスト上に移植する
最も困難な問題の1つは、装置ドライバである。これら
は非常にオペレーティング・システムに依存する傾向が
あるので、ホスト・システムの詳しい知識が要求される
。任意的には、この種の問題を避けるために、物理メモ
リへのアクセスが許される場合には、ライブラリを直接
にハードウェアとのインタフェースにすることが可能で
ある。こうすれば、トライバの必要性が回避される。こ
の方法で高速化サブシステムをアクセスすると、装置ド
ライバを使用する場合よりも高速化される。しかし、特
に複数ユーザ環境では、安全保護が低下することになる
。 マイクロコード監視ルーチン マイクロコード監視ルーチンは、高速化サブシステムに
おける転送と計算以外の残りのタスクを取り扱うもので
ある。その主なタスクは、ホストとの連絡、制御プロセ
ッサ・プロセッサ・モジュール110とデータ転送プロ
セッサ・モジュール120間の作業分担、およ゛び内部
と外部の同期化である。 監視ルーチンは装置ドライバとは反対側の待ち行列の最
後に行かれており、作業を待ち行列から取り出す。(こ
れを行なうには、作業が空の待ち行列から取り出されな
いようにするためのある種の待ち行列管理が必要になる
。) どの程度複雑になるかは、どのプロセッサが使用される
かによって決まり、また、ホストにどれだけの仕事をさ
せるか、あるいは高速化サブシステムに負担させるかに
大きく左右される。物理メモリと仮想メモリ・モデルの
個所で行なったベクトル乗算コマンドの説明から明らか
なように、監視ルーチンはいろいろな手法を採用するこ
とができる。 物理メモリ・アーキテクチャでは、監視ルーチンはデー
タ転送プロセッサ・モジュール120と制御プロセッサ
・モジュール110の間で分割される。データ転送プロ
セッサ・モジュール120の部分は、ホストと制御プロ
セッサ・モジュール110は直接にデータをやりとりで
きないので、コマンドの経路指定を行なうだけである。 制御プロセッサ・モジュール110は作業の分散化とハ
ンドシエイキングを組織化する。 この分割は任意的である。別の(好ましさの点で劣るが
)アーキテクチャでは、制御プロセッサ・モジュール1
10をデータ転送プロセッサ・モジュール120のスレ
ーブ・プロセッサ(その反対でなく)として働かせるこ
とも可能である。 仮想メモリ・モデルでは、データ転送プロセッサ・モジ
ュール120がマスクであり、制御プロセッサ・モジュ
ール110がスレーブになっていた。 制御はその殆どがホスト側で取り扱われるので、監視ル
ーチンのDPT部分はコマンドの経路指定だけを扱えば
よい。制御プロセッサ・モジュール110が待ち行列管
理に関与するのはわずかである。 マイクロコード転送ルーチン(DTP)これらのルーチ
ンは外部インタフェースの1つとデータ・キャッシュ・
メモリ間のデータ転送を取り扱う。インタフェースは主
にVMEバス(とホスト・メモリ)に対するものである
。 ホスト・メモリとデータ・キャッシュ・メモリ間の転送
の大部分は、7続ブロツク転送、分11に/収集転送、
n番目の語ごと、行/列2次元配列アクセスといったよ
うに、転送の種類が狭い範囲に限られている。 上記種類のいずれにも属さないタイプの転送はいずれも
、必要時に追加することができる。ここで注目すべき重
要な点は、ベクトル加算がベクトル乗算と同じ転送ルー
チンを使用することである。これが便利なのは、上述し
たように、データ転送ルーチン(計算ルーチンと異なり
)はベクトル加算とベクトル乗算を区別する必要がない
からである。 マイクロコード転送ルーチン(CP) これらのルーチンはデータ・キャッシュ・メモリの1つ
と浮動小数点プロセッサ・モジュール130の高速レジ
スタ・ファイル間のデータの転送を取り扱う。 この場合も、データ・キャッシュ・メモリとレジスタ・
ファイル間の転送の大部分は、1ベクトル・インと1ベ
クトル・アウト、2ベクトル・インとオベクトル・アウ
ト、1ベクトル・インとスカシ・アウトといったように
、転送の種類が狭い範囲に限られている。これらの転送
タイプはデータ型(タイプ)に応じてさらに分類するこ
とができる。ベクトルは単純または複素数データ型に分
けることができ、もっと特殊化された転送タイプもいく
つかある( FFT、 畳み込みなど)。これらは汎用
ルーチンが使用されない場合に効率が向上する。 ここで注目すべき重要な点は、異な−る演算で同じルー
チンがイ吏用できることである。つまり、ベクトル加算
は、例えばベクトル乗算と同じ転送ルーチンを使用する
。 マイクロコード計 ルーチン(FP) 各計算タイプごとに、(例えば)8つの加算、減算また
は必要な演算を行なうルーチンが用意されている。この
種のルーチンによって制御される”( データ転送は、高速レジスタ・ファイル430、乗算機
構450、加算機構440、およびスクラッチパッド1
610を含む密結合データ通路内で行なわれるものだけ
である。(このデータ通路には、いくつかの局所バスも
あり、その中には第1オペランド局所バス43工、第2
オペランド局所バス432、結実用局所バス431、ル
ープバック接続434が含まれる。)、この場合も、必
要となるルーチンの多くはいくつかの標準データ形式別
に分類される。この分類の1例として、ダイアジック・
ベクトル演算(2ベクトルーインと1ベクトル・アウト
、例:ベクトル加算またはベクトル乗算)がある、従っ
て、標準テンプレートをあるカテゴリ内の各計算タイプ
ごとにセットアツプすることが可能である。これにより
、FPマイクロコードを高速に生成して、基本ベクトル
演算の多くを取り入れることができる。 上述したように、レジスタ格納演算指定子はマイクロコ
ード演算コマンドを補強するために使用できる。これに
より、ある計算タイプのカテゴリ内の個々のルーチンす
べてを、1つのルーチンとして書(ことができる。その
場合は、制御プロセッサ・モジュール110は計算タイ
プを指定するために演算レジスタをロードしなければな
らない。 短縮マイクロコード 上述したシステムは短縮マイクロコードを使用する機能
を備えているので、レジスタに格納されている演算指定
子をマイクロコード命令の残り部分と結合することがで
きる。これは実際には、木好適実施例では、上述したよ
うにFPモジュール130で使用されている。 この種の短縮マイクロコードは多重プロセッサ・システ
ムの数値処理部分で使用すると、特に利点が得られる。 その場合には、演算指定子短縮マイクロコードを使用す
ると、演算をオーバレイさせる必要がなくなる。 従って、例えば、2つの配列を3個目の配列上にマツピ
ングする演算の場合(例: Gi−Af + 8i)に
は、命令レジスタに演算指定子(例:”ADD”)をロ
ードしてから、この種の演算列を開始させることができ
る。この演算列は、演算を直接に指定しなかったコード
で記述されることになる。 従って、この機能を実時間拡張マイクロコードで使用す
ると、多重プロセッサ・システムにおける2つのマイク
ロコード・プロセッサ間のインタフェースにさらに高度
の柔軟性をもたせることができる。 また、命令を数値処理部分にロードするとき要求される
バンド幅を単純化することも可能になる。従って、アル
ゴリズム切替えやタスクの再分割がもっと効率よくなる
。 二土エユ王ヱl旦 第3A図および第3B図を参照して上述したように、本
発明はマイクロコード・システムのマルチウェイ分岐に
全く新しい機能をもたせている。第30図は、本好適実
施例においてアドレス境界の制約のないマルチウェイ分
岐を可能にするマイクロコード操作を示した概略図であ
る。 上述したように、本発明はマルチウェイ分岐をアドレス
境界の制約なしで行なうマイクロコード・コンピュータ
・システムの、アーキテクチャを提供するものである。 さらに、代替宛先間の増分を可変にしている。相対アド
レス指定機能をもつシケンサが使用されている。 本好適実施例では、プログラム・カウンタがジャンプ宛
先の入力として使用されている。これはマルチウェイ分
岐を取り入れて、ベース宛先アドレスが異なるソースか
ら求められる多くの公知システムとは異なるものである
。 蒸散フーリエ 装(IlQpleIIlentat
ion)第31図は、新規な方法で実現した離散フーリ
エ変換の主要機能のいくつかを示す概略図である。 この例では、実現しようとする変換は高速フーリエ変換
(FFT)である。 図示の例は16点基数2複素数FFTである。勿論実世
界のFFTはより多くのデータ点を使用して実現されて
いるが、この例では、いくつかの重要な点を示している
。n点FFTには、log 2nステージが必要である
ので、1024点FFTには10ステージが必要になる
。各ステージでは、n/2バタフライ計算を行なう必要
がある。 バタフライ計算は次式で与えられる。 ro = r4 + [(f6傘r8)]
+ (r7中r9)]rl −r5 + [(f
7中r8)] −(rfi中r9)]r2 − r4
− [(ffi中r8)] + (r7傘r9
)]r3 − r5 − [(f7申r8)]
−(r6傘r9)]ただし、 「0と「1は結果Cの実数部と虚数部である。 「2と「3は結果りの実数部と虚数部である。 r4とr5は人力Aの実数部と虚数部である。 r6と「7は入力Bの実数部と虚数部である。 r8とr9は係数にの実数部と虚数部である。 (角かっこ[]内の式は形式的には同じであり、大かっ
こ()内の式も形式的には同じであることに注意された
い、) 第31図は4ステージFFT演算を図式化して示してお
り、各々の円は1つのバタフライ計算を表している。各
日の左側と結ばれている線はバタフライ計算に対する複
素数入力サンプル(AとB)がどこから得たものかを示
し、右側と結ばれている線は複素数の結果(CとD)が
どこに書き出されるかを示している。円内の数は複素数
フェーズ係数”k”である。 本方法の好適実施例では、FFTアルゴリズムは第1図
に示すようなアーキテクチャにおいて、制御プロセッサ
・モジュール110と浮動小数点プロセッサ・モジュー
ル130間で分割することによって実現されている。第
31図に示すように、アドレス計算は、特に非常に多数
のデータ点が必要になる場合は、意味がない。制御プロ
セッサ・モジュール110はアドレス計算を実行して、
バタフライ計算のための正しいデータ・サンプルとフェ
ーズ係数の流れを作り出す。バタフライ計算は実際には
浮動小数点プロセッサ・モジュール130によって実行
される。 各ステージでデータ点のいくつかに付いている陰影バー
は、この実施例で得られる新規なデータ処理を示してい
る。各ステージで示されている陰影バーは1つの中間デ
ータ転送のセットを示している。従って、例えば、プロ
セスの開始時には、人力データの8複素数語(0語)が
ロード・インされている。このデータ量だけでも、4つ
のバタフライ計算を実行するのに十分な入力となる。 (係数も与える必要がある。)陰影バーは最初の組の4
つのバタフライに対して、C語xO1XI、X2、×3
、X4.X8、X9、XIO,Xllがロード・インさ
れルコとを示している。4つのバタフライ計算が実行さ
れ、8個の0語からなる結果が転送される。さらに、正
しい組のフェーズ係数をロードするには、追加の転送が
いくつか必要である。(最初のステージでは1つだけの
フェーズ係数が使用されているが、異なるフェーズ係数
の個数は各ステージごとに2倍になることに注意された
い、従って、各組の4バタフライには少なくともバス1
44の4サイクルが必要になる。2サイクルは8個の0
語の入力を持ち込むためのものであり、2サイクルは0
語の結果を再移動するためのものである。(さらに、係
数を転送するために5番目の主サイクルが必要になる。 ) 8個の0語は512ビツト、つまり、16個のF語に相
当するので、これは意味のあるデータ・ブロックとなる
。しかし、この方法は本好適実施例で提供される高バン
ド幅を利用できるという利点がある。 さらに、データをこのサイズのブロック単位で転送する
と、同期点で使用されるCP/FPハンドシエイキング
・ロジックにとフて好都合であることが実証されている
。 従って、FFTは次の2つの部分に分割されている。 制御プロセッサ・モジュール110は複素数データのア
ドレスとテーブル・シーケンス内のフェーズ係数位置を
、ステージとバタフライ数を関数として計算するソフト
ウェアを実行させる。アドレスが計算されると、IIJ
御プコプロセッサジュールで稼動中のプロセスは浮動小
数点プロセッサ・モジュール130に送り込まれるデー
タの転送も制御する。浮動小数点プロセッサ・モジュー
ル130がバタフライ計算を完了すると(そして同期点
にあることを示すようにフラグをセットすると)、制御
プロセッサ・モジュール11Gは結果を読み取って、そ
れを保管する。制御プロセッサ・モジュール110はバ
タフライ計算が行なわれていることを知らない。同期点
で浮動小数点プロセッサ・モージュール130とデータ
をやりとりするだけである。 FPモジュール130は、式が上で定義したようにコー
ディングされている単純なリニア命令列によってバタフ
ライを計算するソフトウェアを実行する。このルーチン
は正しい入力データと係数を得るために必要な複雑なア
ドレス計算を知らなくてもよい。従って、このルーチン
はCPモジュール11Gで稼動するソフトウェアから完
全に切り殖して書くことができる。 この分割が利点としてもつ特徴は、各ステージのFPプ
ロシージャが最後の2つのステージまでそっくり同じに
できることである。(最後の2ステージで実行されるバ
タフライ計算はより密に結合した0語入力を使用するの
で、ある種の中間結果を、レジスタ430に保持されて
いるデータとしてFP内で前送りできる。) この例は、プロセッサ間を独立にできることも示してい
る。 FPモジュール130によって実行されるプロシ
ージャは非常に単純に定詮されているので、浮動小数点
プロセッサ・モジュール130が異なる81算機構チッ
プ・セット上に再設計された場合は、この単純なバタフ
ライ・ルーチンだけを変更すればよいことになる。この
ことは再アセ、ンブルする場合も同じである。 CPとFPのソフトウェアの実行は並列に行なわれ、ア
ルゴリズムが実行される速度が最も遅い部分で決まるよ
うにパイプライン化ざわている。 FP命令列はこのバタフライ計算を実行するに当たり、
FFTにおける最後の2つのバタフライを除くすべてに
つい、て同じままである。従って、例えば、1024点
の複素数FFTでは、FPモジュールは最初の8ステー
ジの計算を行なうために、同じ命令列512を実行する
ことになる。そのあと、FFTが最後の2ステージに対
して異なる命令列の実行を開始する。 多重FPモジュール付きFFT もう1つの特に魅力のある構成は、4個のFPモジュー
ル130を備えた第1O図に示すようなシステムである
。 性能に影響を与える主要要因は、バタフライ計算時間と
[バタフライ・カルキュレータ」 (例えば、FPモジ
ュール130)に対するデータ転送バンド幅の2つがあ
る。得られる性能はこれらのパラメータのどちらが満足
されなかったかによって決まる。以下の計算例はIK複
素数FFT、基数2に関するものである。 バタフライ計算スルーブツト 基数2のFFTバタフライ計算式は、部分結果が再使用
可能であるとき10回の演算(4回の乗算と6回の加算
/減算)からなっている。第1図(または第1θ図)に
示すようなシステムでは、この計算は、式がAL[Iと
乗算機構を並列に使用することに役立たないので、10
サイクルを要する。42nsサイクル時間を使用すると
、バタフライ計算には420nsが必要になる。実際の
サイクル時間は6回のALIJ演算では52ns、4回
の乗算では42ns(#!計330ns )を必要とす
るが、同期化、パイプライン始動、などのオーバヘッド
を含めると、400nsになる。従って、FPモジュー
ルは400nSてバタフライを計算することができる。 転送バンド幅 各基数2のバタフライ計算には、2個の複素数サンプル
と複素数係数(または反復係数)が必要である。この計
算からは、2個の複素数結果が得られる。総計では、5
個の複素数または10個の浮動小数煮詰をバタフライご
とにデータ・キャッシュ・メモリ140とFPLIの間
で転送する必要がある。キャッシュ・メモリのバンド幅
は毎秒320MBつまり、80M浮動小数点語である。 このデータ速度は8個の連続、する語が1つのメモリ・
サイクル(100ns )で転送できるときだけ達成さ
れる。しかし、FFTを実行させるときは、これは常に
可能である。メモリのバンド幅を最も効率よく使用する
方法は、メモリ・サイクル当たりに4バタフライのデー
タを転送することである。従って、4回のバタフライ計
算には5回のメモリ転送サイクルが必要になる。 1に複素数FFT(基数2)は5120個のバタフライ
からなっている。このFFTに対してデータ転送速度ヤ
1イ[容される最小時間は、従って、(5120/4)
中51100ns−640マイクロ秒によって与えられ
る。 しか17、このスルーブツト見積値は、最後の2ステー
ジの効果を考慮に入れると、修正する必要がある。ステ
ージn−2で4個のバタフライ計算の和から得た結果の
各データ・セット(8個の0語)は、中間結果をメモリ
に戻さなくても、ステラn−2の4バタフライとステー
ジn+1の4バタフライを計算するのに十分である。し
かし、追加の組の係数が第2ステージで必要になる。こ
の正味の結果は6メモリ・サイクルだけで8バタフライ
を計算することができる。(この手法はり。 Rabiner とB、Gold共著「デジタル信号処
理の理論と応用」のp577〜p、599に詳しく説明
されている。) 1に複素数FFT(基数2)は5120個のバタフライ
からなるので、この2ステージFFTアルゴリズムでデ
ータ転送速度によって規制される最小時間は次の通りで
ある。 (512078)傘6*100ns−384vイクロ秒
この時間は見積転送時間である400マイクロ秒以下で
ある。従って、使用可能なメモリのハント幅は4つのF
Pモジュールを組として一緒に稼動させるのに適してお
り、400マイクロ秒てFFTが達成される。 必要とされるバンド幅を更に減少するために使用できる
手法は次のようにいくつかある。 (1)あるステージ内で使用される異なる係数の個数は
変化する。例えば、ステージ1はすべてのバタフライで
1つの係数値を使用し、ステージ2は2係数を使用し、
ステージ3は4係数を使用しく以下同じ)、ステージ1
0は512係数を使用する。 それより前のステージでは、ステージの開始時に(すべ
てのバタフライででなく)係数を初期設定するので、メ
モリ幅が大幅に節約される。 (2)4つのFFTが並列に実行される場合は(その結
果、1つの高速化サブシステムにおける4つのFPモジ
ュール130の各々は、1つのFFTの174ではなく
個々のFFTを計算するために使用される)、係数を4
つのFPずべてに同報通信することができる。これによ
り、転送の係数部分で使用されるメモリのバンド幅が節
約される。 (3)″2ステージ・バタフライ計算は3または4ステ
ージに拡張することが可能であるが、制約要因として、
新しいデータ、現在のデータ、および中間記憶域を保存
するFPのレジスタ・ファイルのサイズがある。例えば
、4ステージ・アルゴリズムには16個のサンプルと8
個の係数が必要であり、32回のバタフライ計算後16
個の結果が得られる。 この結果、比率は32バタフライ当たり10メモリ・サ
イクルとなり、キャッシュ・メモリのバンド幅で160
マイクロ秒ごとにFFT計算をサポートできる。 これらの考え方はすべて、必要ならば基数4または基数
8のFFTで採用可能である。実際には、広幅キャッシ
ュ・バス・アーキテクチャは基数がもっと大きいアルゴ
リズムで採用すると特に利点が得られる。 さらに注目すべぎことは、バタフライ定義とステージの
関係が異なるとしても、他の整数変換も同じ方法′で複
数のバタフライ計算ステージに分割することができるこ
とである。従って、データ操作に関して上述した事柄は
他の離散整数変換にも応用が可能である。 ヒストグラム・アルゴリズム 装 第32図は第16図に示すようなハードウェアでヒスト
グラム・アルゴリズムを実行させる方法を示したもので
ある。 第16図に示すように、数値プロセッサ・サブシステム
の計算部分におけるデータ通路は乗算機構440と加算
機構450だけでなく、データ通路のこの部分と密結合
−ているスクラッチパッド・メモリ1610も含んでい
ることが好ましい。(このメモリはアドレス・ロジック
1611を備えている。)このスクラッチパッド・メモ
リ1611があると、モジュール110はアドレスを計
算して、データを局所的に取り出すことができる。この
メモリ1610がない場合は、FPモジュール130は
CPモジュール110にアドレスを与える必要があり、
CPモジュール+10の方は参照機能を実行して、その
結果をFPモジュール130に返してやる必要がある。 このためには、追加のハンドシエイキングが必要になる
ので、効率が非常に低下することになる。従って、この
小規模のデータ通路部分のアーキテクチャを、上述した
ように数値処理モジュールとのインタフェースで使用さ
れる大規模のデータ処理アーキテクチャと協働させると
、利点が得られる。 本好適実施例では、スクラッチパッド・メモリ1610
は3通りの使い方が可能である。超関数の計算などのア
ルゴリズムの場合にテーブル・メモリとして使用する方
法、局所スタックとして使用する方法、結果を収集する
ためにヒストグラム・アルゴリズムで使用する方法であ
る。 このスクラッチパッド・メモリをスタックとして使用で
きることは、サブシステムの計算部分の縁にあるデータ
・インタフェースをアーキテクチャ全体にとって非常に
有利な方法で定義でき、そのインタフェースにあるレジ
スタ・ファイルにスタックとして使用できる機能をもた
せる必要がなくなるので、非常に有利である。 共通高水準言語(FOIITRANなど)で書いたルー
チンをマイクロコードにコンパイルすることは、マイク
ロコード・プログラムを生成する重要な手段である。ベ
クトル演算を効率のよいマイクロコードにコンパイルす
ることは比較的容易である。 しかし、スカシ演算もかなりの部分が常にあるので、こ
れらをコンパイルすることは非常に厄介である。 スカシ・ルーチンをマイクロコードにコンパイルする作
業は、スタック・ベースのアーキテクチャが仮想計算機
として使用できる場合には特に行ないやすいことが明ら
かにされている。(従来のこれを行なうには、逆ボーラ
ンド・ロジックに変換する必要がある。) このスクラッチパッド・メモリを使用して結果を累積す
ることは、ヒストグラム・アルゴリズムにとっては好都
合である。ヒストグラム・アルゴリズムを実行させると
きは、ヒストグラム・データをテーブル・メモリに累積
することができる。 これにより、データ・キャッシュ・バスへのアクセス・
ロートを追加することから避けられる。 密結合局所メモリを使用してヒストグラム・データを収
集することは、画像処理アルゴリズムで特に利点がある
。多くの公知画像処理アルゴリズムはヒストグラム計算
を使用しているが、大量のデータを扱う必要があるので
、キャッシュのバンド幅に対する需要が非常に大きくな
る。本発明によれば、ヒストグラム・アルゴリズムを効
率よく使用することが可能になる。 第32図は、多数の画像処理問題に応用できる比較的代
表的なヒストグラム・プロシージャの簡単な例を示した
ものである。同図から明らかなように、ヒストグラム・
テーブルはこのプロシージャの内側ループが繰り返えさ
れるたびにアクセスされる。従って、ヒストグラム・テ
ーブル用に密結合記憶域を用意すると、この種のプロシ
ージャで要求されるバンド幅を大幅に節約することがで
きる。 プレビュー・モードのバイブライン方式アルゴリズム 本明細書に記載されている重要な開示事項は、プレビュ
ー・モードでソフトウェア制御の2重バッファを使用し
てパイプライン方式アルゴリズムを実行させて、同期点
を通過する平均スルーブツトを維持する方法である。 第33図は第20図に示すようなソフトウェア制御2重
バッファを備えたハードウェアでパイプライン方式アル
ゴリズムを実行させる方法を示したものである。 上述したように、ソフトウェア制御の2重バッファを使
用すると、高速計算機構と高度の制御間のクロック境騨
を越えるときに非常に好都合である。しかし、注目すべ
きことは、ソフトウェア制御の2重バッファの利点を広
範囲にわたるバイブライン方式のアルゴリズムにも生か
すことができることである。 2重バッファリング用の好ましいサブシステムはソフト
ウェアで分割された2重ボート・メモリを使用している
ので、メモリの上半分を一方のプロセッサに割り振り、
下半分を他方のプロセッサに割り振ることができる。(
この割振りは両方のプロセッサが切替え!!備状態にあ
ることを示すそれぞれのフラグをセットすると、切り替
えられる。) このメモリをアクセスすると、追加ビットはそのアクセ
スに「物理J、「論理」または「プレビュー」のタグを
付ける。物理アクセスは全メモリ内のリテラル・アクセ
スと解釈され、2重バッファリングは無視される。論理
アクセスは2重バッフアイリング切替え状態によって判
断される追加アドレス・ビットによって補充されている
。 プレビュー・アクセスは読取りだけに使用され論理アク
セスでアクセスされる側とは反対のメモリ・バンクに移
る。プレビュー・アクセスを使用すると、パイプライン
方式アルゴリズムにおける同期点でのデータ流れの非効
率が避けられるので非常に有利である。 例えば、標準2重バッファリング方式が第1図に示すよ
うなシステムで使用される場合は、スワップを行なうた
びに、それが空になる前にデータ・バイブラインを再び
一杯にする必要かある。この実施例では、サンプルのベ
クトル演算は浮動小数点プロセッサが各バッファ分のデ
ータに対して8回の計算を行なう必要がある。このこと
は、3サイクル分のオーバヘッドが使用されて、8語の
データごとにバイブラインを一杯にし、空にすることを
意味する。その結果、全体の平均処理時間に付加される
割合が高くなることは明らかである。 本明細書に記載されている新規事項の1つは、「ソフト
」2重バッファリングを使用してこの問題を解決したこ
とである。プレビュー・モードを使用すると、一方のボ
ートが他方の半分側にあるデータを調べてから、それを
交換することができる。このモードによると、制御プロ
セッサがその作業を終えて、続行前にバッファ交換を待
っているとき、浮動小数点プロセッサのバイブラインを
常に一杯にしておくことができる。 2mバッフ7リングは、多重プロセッサ・システムにお
いて数値プロセッサと大容量キャッシュ・メモリ間のイ
ンタフェースにあるレジスタ・ファイルで使用するのが
好ましい。レジスタ・ファイルを分割すると、キャッシ
ュ・メモリ140でデータ衝突が起こるのを回避できる
。 この実施例では、5ボート付きレジスタ・ファイル43
0が2重バッファのメモリとなるように使用されている
。しかし、他の実現方法の使用も可能である。 本発明によれば、ハードウェアで2重バッフ7リングを
行なう従来のシステムよりも柔軟性に冨んだシステムが
速度を損なうことなく得られる。 特に、rプレビュー」モードを使用すると、この2重バ
ッファリングを取り入れたシステムを多数のパイプライ
ン環境で汎用インタフェース・アーキテクチャとして使
用することができる。 性茸11工4丙 性能最大化の基本的制約要因となるものを挙げると、次
の6つがある。 人出力バンド幅(これは本好適実施例では40MB/秒
にな)ている)。 データ・キャッシュ・メモリ・バンド幅(これは本好適
実施例では320MB/秒になっている)。 浮動小数点プロセッサ・モジュール130の保持レジス
タとレジスタ・ファイル間のデータ転送速度。これは現
在はデータ・キャッシュ・メモリ・バンド幅以下になっ
ている。 アドレス計算速度(これは本好適実施例では、毎秒10
0万回が代表例であるが、実行されるアルゴリズムに非
常に左右されやすい)。 持続浮動小数点計算速度。本好適実施例では、単精度「
加算」の場合、これは28nsサイクル時間以下である
(より高速の構成要素が利用可能になれば、向上の余地
がある)。単精度乗算の場合は42nsサイクル時間以
下である。 並列に使用される数値処理モジュールの数。 性能の評価 特定のアルゴリズムでその性能を決める要因は以下に挙
げる条件のどれが該当するかによって非常に左右される
。 ソース・データと結果がどこに保管されるか:性能はデ
ータがデータ・キャッシュ・メモリに保管されるとき最
大化される。データがオフボードに保管される場合は、
データ人出力転送が制約要因となる可能性が大きい。達
成可能な入出力速度は通常、関与する周辺装置とサポー
トされる転送の種類(単一かブロックか)によって決ま
る。入出力速度が毎秒40MBであると、計算速度は3
個の数がすべての計算に関係するような計算では、3.
3MFLOPSまでである。 データと算術演算との比率:浮動小数点計算速度または
データ転送速度がボトルネックとなるかどうかは、これ
によって決まる。計算量の割にデータが少ないアルゴリ
ズム(例:FFT)は浮動小数点プロセッサ・モジュー
ル130の速度が制約要因となる。データ転送に制限さ
れるアルゴリズムの例としては、1回の算術演算に3個
のデータ値を必要とするベクトル加算がある。 データ・キャッシュ・メモリ内のデータのレイアウト:
データ・キャッシュ・メモリと浮動小数点プロセッサ・
モジュール130間の最大転送速度が得られるのは、8
個の連続するF語(つまり、各々が32ビツトからなる
浮動小数煮詰)が−緒に転送されるときだけである。あ
るアルゴリズムでのデータがこのブロック転送機能を利
用できない場合は、正味データ転送速度は低下すること
になる。これを表にまとめると、次の通りである。 F語の個数 転送速度 8 80 MFF語秒 大部分のアルゴリズムはより高速の転送速度を利用する
ことができる(実際には、FFTでさえも上述したよう
に高速の転送速度を利用できる)。 操作の並行:これにより、オフボード入出力転送を浮動
小数点計算と並行に行なうことができる。アルゴリズム
(またはアルゴリズムの列)がこの機能を使用できる場
合は、入出力転送速度が相対的に遅くても、全体の言1
算速度は]+12 ’Jを受けることはない。 褐攻のFP:アルゴリズムが計算バウンド(束縛)であ
り、メモリや入出力のバンド幅に制限されないときは、
FPを複数にすると、メモリ・バンド幅を越えない限り
、1つの浮動小数点プロセッサ・モジュール130の性
能は倍になる。例えば、FPが4つのときは、ベクトル
加算性能は向上しないが、FFTは4倍の速度で計算さ
れる。 以上説明したことから理解されるように、本明細書中に
開示した新規事項は広範囲にわたフて応用することがで
きると共に、広範囲にわたって改良または変形が可能で
ある。従って、特許請求の範囲に記載された内容は上述
した各種実施例に制約されるものではなく、またこれら
の実施例に関する記載に制約されるものでもなく、特許
請求の範囲に明確化された請求事項のみに制約されるも
のである。
ビットには、読取り保持レジスタを通る流れとレジスタ
制御、書込み保持レジスタを通る流れとレジスタ:1制
御、マイクロコード拡張インタフェースにおいて割込み
承認信号を駆動する外部割込み承認信号、GIP割込み
要求、保持レジスタに対するループバック・モート、2
個のLE[1制御信号がある。 TDババスデコード このロジック(これはデコーダ360の最も重要な機能
の1つである)は、マイクロコードTD/ −スをデコ
ード化し、TDババス22を駆動できる装置の出力イネ
ーブルをその結果に応じて制御する。 また、このロジックはTD宛先フィールド(クロック発
生機構250からの書込みゲート信号で修師されている
)もデコート化して、スロープと書込みイネーブル信号
を発生する。TDババス22上のボー[−の大部分は読
み書きができるので、IPLI上の疑似レジスタは不要
である。 TDババスソースおよび宛先になり得るものとしては、
IPII 140、VMEインタフェース・メモリ、コ
マンド・メモリ、データ・キャッシュ・メモリ保持レジ
スタ560B、モード・レジスタ(8ビツト)、シーケ
ンサ・データ・ボート車中、定数/次アドレス・フィー
ルド(ソースのみ)傘車、VMEデータFIFO、デー
タ・パイプl、データ・バイブ2、GTP FIFO*
*、割込みベクトル・レジスタ(8ビツト) 、DMA
制御レジスタ、DMAコントローラーアドレス・カウン
タ◆、DMAコントローラー語カウンタ傘がある。*印
の付いたソースはDMAコントローラ命令によってデコ
ードされる。通常のTOババス御フィールドの一部とし
てはデコードされない、、**Epの付いたソースは、
下位16ビツトだけを駆動する。これらの1つが選択さ
れると、符号/ゼロ拡張PAL 216も活動化される
ので、データは32ビツトのバス幅まで符号またはゼロ
で拡張される。 1つのソースと1つの宛先だけが選択可能であるので、
これらは異なっていなければならない。 IPII 340へのデータ転送はIPII 340の
命令フィールドの制御を受けて行なわれるので、データ
が別の宛先にロードされているのと並行してデータをT
Oババス22から取り出すことができる。 クロック発生機構 上述したように、クロック発生機構250は、データ転
送プロセッサ・モジニール120全体を通して使用され
る基本クロック信号を発生する。 デバッグ・ハードウェア データ転送プロセッサ・モジュ・−ル120に含まれる
デバッグ・ハードウェアの大部分はいくつかの個所で前
述した。これらをここで要約して示すと、次の通りであ
る。マイクロアドレス・バス311(読み取りと書込み
の両方)のホスト制御、ホストによるWC5のローディ
ングと読み戻し、DPTのアテンションを得るためのV
ME生成割込み、ハードウェアによる中断点サポート(
中断点は数に制限されずに、いつでも設定可能)、クロ
ー・ロジック(これにより、ユーザ・タスクはモニ・タ
スクを1ステップ進めないで1ステップ進むことかでき
る)、すべてのレジスタが読み書きであること、マイク
ロコードを1ステップ進めるためのハードウェアによる
クロック制御、すへての割込みが選択的に割込み可能ま
たは割込み禁止できること、重要なロジック群の内部状
態に対するアクセス(これにより、DTPモジュールの
ハードウェア状態を完全に格納し、復元することができ
る)などである。 マイクロコード語の形式 マイクロコード語の形式の概要を示したのが第3C図で
あり、次のように定義されている。 *印の付いた項目は直接にWC5から取り出されて、こ
れらが制御する装置内部でパイプライン化される。 使用可能なマイクロコード・ビットの総数は96ビツト
である。これらのビットは大部分が使用されるが、その
いくつかは予備として以下のフィールドから除かれてい
る。 rpu 7寅算コード(32)申 :このフィールドは
lPt1340整数プロセツサのデータ経路と算術また
は論理演算を制御する。フィールド内のビットの割振り
はコード化されているが、詳細はWej tekデータ
資料に記載されている。すべての命令は下位24ビツト
がコニド化されており、上位8ビツトはデータをIPU
340のレジスタ・ファイルに転送するときだけ使用
される。 ジーケンサン寅算コード(7)ウニこのフィールドはA
DSP 1401による次のアドレス生成を制御する。 命令セットはデータ資料に記載されている。 定数7次フィールド(16)傘:このフィールドは主に
アドレス情報をシーケンサに与えるために使用されるが
、16ビツト定数値をデータ・バス上に送出するために
も使用できる。その場合は、これはこのバス上のレジス
タのいずれかにロードすることが可能である。 マルチウェイ分岐選択(21*:このフィールドはマル
チウェイ分岐操作時にFIFO状況信号のどちらのセッ
トを使用するかを選択する。選択できるもノニμ、VM
E人力FIFO1GIP人力FIFO、データ・バイブ
1人力FIFO、データ・バイブ2人力FIFO1があ
る。 マルチウェイ・シフト;ト制御(2):これはマルチウ
ェイ分岐状況−1l″1報がビット位@O、ビット位置
1、ビット位置2から挿入されること、あるいは全く挿
入されないことを選択する。シフト要因は多様化されて
いるので、マルチウェイ分岐内の各入口点をそれぞれ、
1.2または4命令の長さにすることができる。 マルチウェイ分岐転送イネーブル(1):このビットは
キャッシュ・メモリ・アクセス許可信号をFIFO状況
と結合するのを可能にしたり、禁止したりするものであ
る。このビットが使用されないときは、マルチウェイ分
岐は4ウエイであり、使用されるときは、8ウエイであ
る。 サイクル長さ(2)、このフィールドは選択された命令
とデータ経路に合ったサイクル長さを選択する。 データ・キャッシュ・アクセス(114:このビットは
、データ・キャッシュ・メモリへのアクセスがデータ転
送プロセッセ・モジュール120によって要求されると
活動化する。 データ・キャッシュ書込みイネーブル(1) この
ビットはデータ・キャッシュ・メモリへのアクセスが許
可されると、データ・キャッシュ・メモリで書込みサイ
クルを発生させる。 データ・キャッシュ書込みオール(1):このビットは
通常の書込みイネーブル・ゲート操作を無効にして、デ
ータ・キャッシュ・メモリ内の語の選択的更新を可能に
し、すべての語が書き込まれるようにする。これは、ア
クセスが許可されたときだけ、データ・キャッシュ・メ
モリ書込みサイクルを発生させる。これはメモリ・ブロ
ックを定数値にセットするときに便利である。 条件コード選択(5):このフィールドは条件付き命令
の実行時にシーケンサにテストさせる以下に挙げた条件
コードの1つを選択する。つまり、IPo 340条件
コード出力、マイクロコード・ループ、書込みフラグ(
2項目)、データ・バイブ人力FIFO#1(半満杯と
空)、データ・バイブ入力FTFO#2 (半満杯と空
)、データ・バイブ出力PIFO#1(満杯)、データ
バイブ出力FIFO#2 (満杯)V!IIEデータ
入力FIFO(半満杯と空) 、 VMEデータ出力F
IFO(半満杯と空) 、GIPインタフェース(人力
)(半満杯と空)、GIPインタフェース(出力)(半
満杯と空)、データ・キャッシュ・メモリ・サイクル承
肥、マイクロコード拡張インタフェース条件コート・イ
ンタフェース、DMAバス・エラー、保留状況である。 保留状況(1):このビットは通常はシーケンサ210
内のFLAGレジスタの状態に従う疑似状況レジスタの
更新を禁止する。通常、この疑似ビットは内部レジスタ
の状態に従うが、割込みサービスの実行中は、更新され
るのを禁止される。こわにより、FL八へレジスタは割
込みルーチンから出たとき正しく復元される。 TDババスソース(4):このフィールドはTDババス
駆動させる以下に挙げたレジスタ、バッファ、または装
置の中から1つを1択する。つまり、IPII :14
0、コマンド・メモリ、VMEインタフェース・メモリ
、データ・キャッシュ・メモリ保持レジスタ、モート・
レジスタ、シーケンサ・データ・ボート、定数/次アド
レス・フィールド、シーケンサ・データ・ボート、定数
/次アドレス・フィールド、VMEデータFTFOデー
タ・ボート、データ・バイブ2、GIP FIFO1割
込みベクトル・レジスタ(8ビツト)、DMA制御レジ
スタ、DMAコントローラーアドレス・カウンタまたは
DMAコントローラー語カウンタである。 TDババス先(4):このフィールドは以下に挙げたレ
ジスタ、バッファまたは装置の1つをTI)バス上のデ
ータの宛先として選択する。つまり、コマンド・メモリ
、VMεインタフェース・メモリ、データ・キャッシュ
・メモリ保持レジスタ、モード・レジスタ、シーケンサ
−データ・ボート、定数/次アドレス・フィールド、シ
ーケンサ・データ・ボート、VMEデータFIFOデー
タ・バイブ1、データ・バイブ2、GIP FTFO1
割込みベクトル・レジスタ(8ビツト) 、 DMA制
御レジスタ、DMAコントローラーアドレス・カウンタ
、DMAコントローラー語カウンタである。 IPU :140が上に挙げたものの中に含まれていな
いのは、これはTDバスーヒのデータをいつでも「取1
11 Jできるからである。この機能はTPtl命令フ
ィールドによって制御される。 アドレス・レジスタ制御(2):これらの制御ビットの
一方はアドレス・レジスタのローディングを可能にし、
他方のビットはレジスタの読み戻しを可能にして、診断
とデバッグ・モニタで使用できるようにする。 中断点(1) <44デバツグ専用傘*):命令に中
断点を設けるためにデバッグ・モニタによって設定され
る。この結果、命令の実行中に割込みが起こると、その
命令の実行を終えたあと制御権がデバッグ・モニタ・マ
イクロコードに渡される。 クロー(1)(Φ牟デバッグ専用中り :ユーザ・タス
クを1ステップ進めるときクロー・ロジックを始動する
ために設定される。この結果、次の命令の実行中に割込
みが起こると、ユーザ・タスクのある命令が実行された
あとで制御権がデバッグ・モニタ・マイクロコードに移
される。これにより、ユーザ・タスクはクロックを物理
的にオン、オフに切り替えなくても1ステップ進むこと
ができる。 毘ム配力」ぜ」υ−:これは制御プロセッサ・モジュー
ルに3レベルのうちのルベルで割込みを引き起すもので
ある。これらのレベルは次のように割り振られている。 つまり、ホストから新しいコマンド受信、データ転送終
了、データ・キャッシュ・メモリへのアクセス権解放で
ある。 ゼロまたは符号拡張(1):このビヅトは16ビツト幅
レジスタまたは装置が読み取られるときだけ効力をもつ
。その場合には、データをゼロで拡張するか(ビット1
6−31がゼロにセット)、符号で拡張するか(ビット
16−31がビット15と同じにセット)が選択される
。 DMAコントローラ命令(3):このフィールドはDM
Aコントローラに対する命令を制御する。命令には、内
部レジスタの読み書き、レジスタの再初期設定、アドレ
スを増分(減分)または語カウンタを減分する通常のD
MA動作を扱うものがある。 マイクロコード1広弓長バス マクロコート拡張バスは基本マイクロコーF・サーヒ′
スをオフボードで拡弓長するものである。これは、拡張
周辺ボード上のある種のインタフェースを制御したり、
周辺ボード全体を制御したりするために使用できる。こ
れらの使い方の代表例として、大容量メモリ・カードや
ネットワーク・インタフ二一スーカードとのインタフェ
ースとなることである。 拡張バス・インタフェースは電気的および機械的にGI
P上の拡張インタフェースと同じであるので、これらは
どの共通拡張カードでも共用することができる。 拡弓長コネクタは96ウエイDINコネクタであり、そ
こに現れる信号には、次のものがある。3ビット−スラ
イス・クロック[注1コ、パイプライン・レジスタ・ク
ロック[l]、マイクロアドレス・バス311B(15
ビット)[2]、TDババス22(32ビツト)[3]
、リセット、WC5出力制御、パイプライン・レジスタ
出カニ田御イネーブル、WC5g込みイネーブル324
、パイプライン・レジスタ・モード制御、直列クロック
、直列データ・イン、直列データ・アウト(マイクロコ
ードのローディングで使用)、外部割込み[4]、割込
み承認、条件コード[4]。信号は上で注記したものを
除きすべてTTLレベルにある。つまり、[1]これら
の信号は差分ECLレベルにある。[2]これらの信号
は信号コード化ECLレベルにある。[3]このバスは
32ビツト幅であるが、目的によっては、2個の16ビ
ツト・バス、つまり、−次データ・バスと二次データ・
バスとみなすことができる。 [4]これらの信号はオープンしているコレクタ・バッ
ファによって駆動される。 ある種のECL信号をこのインタフェースで使用すると
、ボード間のクロック・スキュー効果を最小にするので
好都合である。 数値プロセッサ・モジュール130 本好適実力ζ例では、数値プロセッサ・モジュール13
0は浮動小数点プロセッサである。従って、このモジュ
ールNOは浮動小数点プロセッサ・モジュール(または
rFPモジュール」)とも呼ばれることがある。しかし
、このモジュールは他のデータ型(データ・タイプ)用
に、例えば、複素数算術演算モジュールとして、あるい
は広幅整数演算用モジュールとして構成することも可能
である。このモジュールが広い意味で数値プロセッサ・
モジュール130とも呼ばれるのはこのためである。 本好適実施例では、浮動小数点プロセッサ・モジュール
130は浮動小数点プロセッサとキャッシュ・メモリ間
のデータ転送を統御する制御/インタフェース・ロジッ
クと非常に密に結合されている。この制御/インタフェ
ース・ロジックは制御プロセッサのマイクロコード・ク
ロックによりてクロックがとられるので、制御プロセッ
サのマイクロ命令の拡張部分で制御するのが好ましい。 本好適実施例では、浮動小数点プロセッサ・モジュール
130と制御/インタフェース・ロジック(CP拡張ロ
ジック)は主基本ボード(ここには、キャッシュ・メモ
リ140と制御プロセッサ・モジュール110の主要部
分が置かれている)に差し込まれる別個のサブボード上
に一緒に(菩載されている。 追加モジュール130が使用される場合は、その各々に
は制御/インタフェース・ロジックの一部が置かれるこ
とになる。 本実施例のアプリケーションでは、この制御/インタフ
ェース・ロジックは制御プロセッサ・モジュール110
の拡張と見られているが、この制御/インタフェース・
ロジックがモジュール110の一部であるか否かに関係
なく、本アプリケーションでは、このロジックのタイミ
ングと制御特性に関して重要な新規事項がいくつかとり
入れられている。 本好適実施例では、32ビツト・データ構造が使用され
ている。各浮動小数点数は32ビツトで表されるので、
32ビット車位は浮動小数点数(または「F語」)とも
呼ばれる。本好適実施例では、数の形式は小数部が24
ビツト、指数部が8ビツトになっている。これは選択的
にIEEE形式にすることも、DEC形式にすることも
可能である。 浮動小数点プロセッサ・モジュールNOの内部動作につ
いて、まず説明する。そのあとで、制御プロセッサ・モ
ジュール110およびキャッシュ・メモリ140とのイ
ンタフェースの機能について詳しく説明する。 第4八図から第4D図までは、数値処理モジュール13
0の主要部分を示したものである。本好適実施例では、
第4八図は制御プロセッサ・モジュール〕30とのイン
タフェースとなるために使用されるインタフェース・ロ
ジック410の概略図である。 第4B図はモジュール130内のデータ通路の主要部分
の一部を示している。第4C図はマイクロコードのアク
セスとデコード化のとき本好適実施例で使用されるロジ
ックを示している。第40図は本好適実施例で浮動小数
点モジュールに使用されるマイクロ命令形式を示してい
る。 実際の数値計算が高速で行なわれる浮動小数点算術演算
機構について最初に説明する。そのあと、FPモジュー
ル130 と低速モジュール間のクロック境界をまたい
でデータ転送が行なわれる2重バッファリング操作につ
いて説明する。次に、データ転送の追加段(その大部分
はCPモジュール110の拡張部分によって制御される
)について説明する。最後に、算術演算機構を統御する
プログラムについて説明する。 浮動小数点算術演算機構(FPU) 本好適実施例の浮動小数点算術演算機構は非常に単純化
されており、高速で動作する。この通路には、浮動小数
点乗算機構、浮動小数点ALU (算術および論理演
算機構)、高速多重ボート・レジスタ・ファイルが含ま
れ、これらはすべて高速で単純化されたシーケンサによ
って制御される。さらに、スクラッチパッド・メモリが
内部データ通路と密結合されて、参照テーブルを保存し
、ヒストグラム記憶またはデータ・スタックとして動作
する。 2レベル・データ通路のトポロジは第16図に分かりや
すいように示されている。低レベル・データ通路とその
構成要素は浮動小数点算術演算機構(FLII) と
呼ばれるものである。FPUは、高速レジスタ・ファイ
ル440、八1.U 450、スクラッチバ・ント・メ
モリ1610、局所ハス431.432.433.43
4から構成されている。 算術計算機4J 440と450 浮動小数点プロセンサ・モジュール130で使用される
浮動小数点計算機構には浮動小数点乗算機構FMPY)
440と浮動小数点算術論理演算機構(FALU)
450がある。両方とも、内部アーキテクチャは非常に
よく似ている。唯一の違いはデータの扱い方であり(演
算操作が異なることを別として) 、FALLIに累積
演算のための余分のフィードバック通路が設けられてい
ることである。 本好適実施例では、Bipolar Integrat
ed Tech−nologies (IT)社程偶の
集積回路(浮動小数点チップ・セットとレジスタ・ファ
イル)が次のように使用されている。BITの部品番号
とこれらに準じるアナログ装置番号は、乗算機構440
:B2110またはへ〇5P7110.AL口450:
B2120 または八〇5P7120、レジスタ・ファ
イル430:、B2210または八DSP7210であ
る。乗算機構440とALU 1150および高速レジ
スタ・ファイルは、実際には、ECLゲートを内部に使
用している。しかし、これらのインタフェースと電源は
TTLである。これらの算術演算チップは完全な64ビ
ツト・データ通路を内部にもち、外部に32ビツト・イ
ンタフェースをもっている。従って、これらのチップは
高速64ビツト演算を行なう能力をもち、必要に応じて
多重化データ転送を利用する。 FMPY 440とFALtl 450はそれぞれ、オ
ペランド用の2個の32ビツト幅人力ボートXとY−(
それぞれ局所オペランド・バス431と432に結ばれ
ている)と、結実用の32ビツト幅両方向ボートT(局
所結果バス433に結ばれている)を備えている。 計算機構の人力ボートの各々はラッチとマルチプレクサ
を備え、出力ポートはマルチプレクサを備えているので
、64ビツト幅の数を出し入れして転送できるようにな
フている。 2計算機構の結実用ボートは並列に接続されている(結
実用バス433に、従って、レジスタ・ファイルの書込
みボート430Dに)。これにより、計算機構は外部マ
ルチプレクサを使用したり、データをレジスタ・ファイ
ルあてに送ったりしなくてb、データを交換し合うこと
ができる。これは、例えば、積の和を求める計算を行な
うとき便利である。また、この機能を利用すると、スク
ラッチパッド・メモリ161Oとの間で高速にデータを
やりとりすることができる。しかし、この構成には、F
MPY 440とFALII 450の両方を同時に活
動化できないという制約がある(ただし、積の和を求め
る演算は除く)。これは出力ポートが一緒に結合されて
いるからである。これらのボートを別々にしたとしても
、両方の装置はレジスタ・ファイル430からの同じデ
ータ通路を共用するので、入力側に問題が起こることに
なる。 実際に使用される算術演算機構は人出力ボートを柔軟に
構成できるので、これらのボートをレジスタしたり、透
過にしたりできる。しかし、本好適実施例では、この機
能は使用されていない。ボートはすべてレジスタされる
。両計算機構の内部データ通路と機能44位はすべて6
4ビツト幅であり、−!IL精度(sp)と倍精度(D
P)のどちらの演算も行なうことができる。 FMPY 440での機能単位は4個の算術演算命令を
サポートしている。最小サイクル時間(ナノ秒単位)は
どちらの精度の場合も、次の通りである。 単精度 倍精度 乗算 4059 除算 200 30’0平方根
300 600バス 405
0 整数乗算 45 FALtl 450での機能単位は浮動小数点命令、整
数命令、変換命令といったように幅広くサポートしてい
る。詳細については、メーカのデータ資料に記載されて
いる。すべての浮動小数点命令(単精度と倍精度)は最
小実行サイクル時間は25nsであり、整数演算はすべ
て12ns、変換はすべて25nsで行なわれる。 最もよく使用される命令には、次のものがある。 浮動小数点:加算と減算(符号付きまたは絶対値)、絶
対値、否定、スケール、マージ、正規化、比較。 変換: SP−>ビット整数、 なし、 SP −>54 ビット整数、なし。SP <
−32ビツト整数、 なし。SP <−61ビツト整数、 なし。DP−>32ビツト整数、 なし。DP−>64ビツト整数、 なし。DP <−32ビット整数、 なし。DP <−64ビット整数、 なし。SP−>DP、OP −>SP。 整数:加算(0,l、桁上げ)、減算(0,1,桁下げ
)、 最大値(符号付きまたは符号なし)、 最小値(
符号付きまたは符号なし)、論理、シフト(論理または
算術)、回転、ビット反転。 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 符号付きまたは符号 (以下余白) スクラッチバンド・メモリ1610 第16図に示すように、スクラッチパッド・メモリ16
10はそのアドレス・カウンタ1611と共に、結実用
バス433につながフている。計算機構440と450
は両方向ボートでこのバスにつながっているので、マル
チプレクサ440、ALtl 450、またはレジスタ
・ファイル430によってデータを直接にこのメモリか
ら読み取ることができる。 アドレス・カウンタ1611を通して、いくつかのアク
セス・モードでこのメモリがアクセスできるようになっ
ている。2個のモード・ビットに応じて、アドレス・カ
ウンタは(読取りまたは書込みアクセスが行なわれるつ
と)アドレスを増分し、アドレスを減分し、アドレスを
保持し、あるいはアドレスを指定できるようにする。(
例えば、アドレス増分と減分をいく通りかに組み合わせ
て、スタックとして動作させることも可能である。)カ
ウンタ1611のアドレス生成機能を利用すると、ある
条件のときに、メモリ1610を1サイクル1回の書込
みの割合で機能させることができる。 このメモリをスタックとして動作させると、上述したよ
うに、コンパイラでスカシ・プログラミングするとき特
に好都合である。 ヒストグラム・アルゴリズムを実行させるときは、以前
のサブトータル(追跡中のパラメータの)を結実用バス
433上に読み出すことができる。この種の操作の1つ
の簡単な例では、メモリ1610は結実用バス433の
データ・ソースとして指定され、マルチプレクサ440
が稼動中に、八LU450はコマンドを受けてオペラン
ド値を結実用バスから読み取るようになっている。マル
チプレクサ440が終了すると、その結果を結実用バス
433上に送り出し、ALUはその値を2番目のオペラ
ンドとして読み込む。そのあと、ALUはその和を結実
用バス433に送り出し、その間にメモリ1610はコ
マンドを受けてその結果を書き出す。(その間に、追加
のオペランドをマルチプレクサ440にロードすること
が可能である。) このテーブルがあると、データ依存パラメータをそこに
置いておくことができるので非常に便利である。これは
超関数を計算するときに特に便利である。 高速レジスタ・ファイル430 レジスタ・ファイル430はデータ・キャッシュ・メモ
リ140との主インタフェースとなるものである。レジ
スタ・ファイルの一方のバンクはCPモジュール110
と部分的に同期して稼動して、局所転送バス422(両
方向ボート430八に結ばれている(第16図))を通
してFP保持レジスタ420 とのインタフェースとな
る。他方のバンクはFPモジュールと完全に同期して稼
動し、オペランド用バス431.432(読取りポート
430Bと4:1OC) 、結実用バス433(読取り
ポート4300)、およびループバック接続434(書
込みポート430E) とのインタフェースとなる。 第4B図はモジュール130内のデータ通路の主要部分
を示している。主キャッシュ・バス144(これば25
6ビツト幅である)は直列の4個のFP保持レジスタ4
20と結ばれている。(これらの保持レジスタは実際に
は対になっており、読取りレジスタは書込みレジスタと
並列になっている。従って、保持レジスタ420は8個
あり、各々が64ビツト幅であるので、両方向256ビ
ツト・インタフェースになっている。)これらの8保持
レジスタ420には別々のイネーブル信号が入力される
。従って、このバンク側のレジスタにより、256ビツ
ト幅のキャッシュ・バス144を多重化して64ビツト
幅の高速レジスタ・ファイル430に送り込むことがで
きる。 この多重化が行なわれるのは、主にコストが理由である
。高速レジスタ・ファイル430は非常に高価なチップ
である。これらの個数が4倍になると、システムのコス
トが大幅に高くなることになる。さらに、第388図か
ら明らかなように、これらの機構の検証は非常に重要で
あり(ビン数が非常に多いので)こわらのパッケージを
4個でなく16個使用すると、必要とするボード面積が
著しく増大することになる。 実際にはレジスタ430は土jであり、2個だけではな
い。物理的に分列したチップの各々は16ビツト幅であ
るので、これらを4個並列で使用すると、64ビツト・
インタフェースで局所転送ハス422 と結ぶことがで
きる(このインタフェースは2F語幅であることに注意
されたい)。 本好適実施例では、レジスタ・ファイル430は18ビ
ツト幅x64記憶位置奥行の5ボート装置から作られて
いる。従って、64ビツト側インタフエースで局所転送
バス422と結ぶためには、4個の装置を並列で使用す
る必要がある。(説明を分かりやすくするために、第4
B図には、32ビツト幅ファイルが2個あるものとして
レジスタ・ファイルが示されている。これにより、下述
する語アドレス奇数/偶数の状況構造が分かりやすくな
る。また同様に、第16図には、レジスタ・ファイル4
30が1個のファイルとして示されている。)本好適実
施例では、これらの装置は実際には817社提供の82
210から作られている。 レジスタ・ファイルは256ビツト幅にして、キャッシ
ュ・バスと直接にインタフェースで結ぶのが理想的であ
るが、そうすると、付加ハードウェア費用が大幅に増加
することになる。本実施例で採用した代替方法では、F
P保持レジスタ420(関連制御ロジックと共に)を使
用して、キャッシュ・バス144 との256ビツト・
インタフェースを多重化して64ビツト幅ボート43〇
八に結んでいる。多重化とデータ経路指定は、第4A図
と第4B図にその概要が示されている転送ロジックによ
って制御される。これについては、詳しく下述する。 これらのファイル間の接続は次のようにするのが好まし
い。(ボートは第16図に個々に名前が付けられている
。、) これらのファイル430の各々は両方向インタフェース
430Aをもっており、これは線422を通してレジス
タ420に結ばれている。 レジスタ・ファイル430の各々は2つの透過データ出
力端をもっている。これらの出力端は個別的にイネーブ
ルさせることができるので、レジスタ・ファイル43G
内からの異なる語を表すことができる。これらの出力4
30Bと4300は局所オペランド・バス431 と4
32を駆動させる。 レジスターファイル430の各々は第3局所データ・バ
ス433に結ばれた入力ボート430 Dをもっており
、これは結実用バスと呼ぶことにする。この結実用バス
は計算機構440と450の出力側に結ばれている。 レジスタ・ファイル430の各々はもう1つ人力ボート
430Eをもっているが、これは第1オペランド・バス
431につながるループバック接続によって読取りボー
ト430Bと結ばれている。この書込みボートはそのア
ドレスを「結果」書込みボート430Dから受は取る。 これにより、ALtl 450またはマルチプレクサ4
40を通らなくてもデータをあるレジスタ・ファイルの
アドレスから別のアドレスにコピーできるので、2サイ
クルの遅れが節約されることになる。このことは、計算
機構440と450を使用しなくても、従ってこれらの
機構で起こる遅れなしで、データを望み通りに並べ替え
てやりとりできることを意味する。この機能はサブルー
チンを扱うとき使用すると、特に利点が得られる。 従って、5ボート・レジスタ・ファイル430は2一つ
の読取りボートDとE、2つの書込みボートBとC1お
よび1つの両方向ボートAをもっている。読取りボート
からはオペランドがFMPY 440とFALU 45
0に送られ、その結果か書込みボート・+30D (必
要ならば、書込みボート430E)を用いて6g戻され
る。レジスタ・ファイルはF語を128語まで保管でき
る。 書込みボート430Dと430E (および両方向ボー
ト430Eの書込み部分)に対するデータ、アドレスお
よび書込みイネーブルはレジスタ・ファイル430の内
部に記録される。内部書込みパルスは自動的に発生する
。 2つの読取りボートはそれぞれのデータ通路をレジスタ
またはラッチすることができ(共に同しであることが必
要)、それぞれのアドレスをレジスタまたはラッチする
ことができる。浮動小数点フロセッサ・モジュール13
0で使用されている構成では、アドレスがマイクロコー
ドから直接に駆動されたときアドレスをレジスタし、デ
ータ・ラッチを透過に保持するようになっている。デー
タはFMTY 440とFAl、lJ 450の内部に
レジスタされる。 レジスタ・ファイルは、読取りと書込みアドレスが同じ
であるときは、「ライト・スルー」モードで動作させる
ことかできる。このモードにあるときは、書込まれたデ
ータは同じサイクルで読取りボートに現れるが、通常読
取り操作より約10ns遅れて現れる。これは、再帰た
はスカラ計算で使用すると便利であり、その場合には、
バイブライン段数が減少するという利点が得られる。 読取りボート430B、読取りボート430C1および
書込みボート430Dに対する個々のアドレスはFPマ
イクロコードのフィールドから与えられる。これにより
、パイプライン処理の制約の枠内でrl −r20P
r3型の計算を行なうことができる。 2重バッファリング 高度の多重ボート高速レジスタ・ファイル430は、制
御プロセッサ・モジュール110と浮動小数点プロセッ
サ・モジュール130とをクリーンなインタフェースで
結ぶ上で不可欠な要素である。このレジスタ・ファイル
のアドレス空間は2重バンファとし−C働くように区画
化されている。どの時−入においても、このレジスタ・
ファイルの一方のバンクは制御プロセッサ・モジュール
とほぼ同期してf木切し、他方のバンクは浮動小数点プ
ロセッサ・モジュールと完全に同期して稼動する。(C
Pモジュールとほぼ同期して行なわれる操作については
、下達する。この準同期操作は過渡的クロック領域を提
供するものと考えることができるが、高バント幅インタ
フェースを得るときに役に立つものである。) 2バンクの割当てはハンドシェイキング・ロジックの制
御を受けて、同期点で入れ替えられる。 従って、このクロック境界の配置により、境界の一方の
側を他方の側に1% B!しないで変更することが可能
である。 このクリーンなインタフェースを通して、より高速でよ
り集積化された浮動小数点チップ・セットに移行できる
ので、浮動小数点機構に独立性をもたせることができる
。(ハンドシェイキング・ロジックの機能と使い方につ
いては、cPモシュルとトPモジュールとのやりとりか
説明されている個所で第22図を参照して、さらに詳し
く説明する予定である。) 従って、レジスタ・ファイル130は通常にデータと結
果をやりとりするときは、2重にバッファリングされる
。しかし、第18図と第19図に示すような従来システ
ムでは、この2重バッファリングに柔軟性がない。従っ
て、制御プロセッサ・モジュール110と浮動小数点プ
ロセッサ・モジュール130は共に、レジスタ・ファイ
ル430のどちらかのバンクにあるアドレスのどれでも
アクセスかできる。アドレスが反対側のバンクからロッ
クアウトされないということは、以下の説明で明らかに
されるように、非常に利点がある。 ハードウェアへのアクセスはカットオフされないので、
レジスタ・ファイルにアクセスするためには(あるレベ
ルで)アドレスの全7ビツト(AOΔ6)を指定しなか
ればならない。2重バッファリング操作が使用されてい
る場合は、実際にはアドレスの6ビツトが必要である(
現在使用可能なバンク内のアドレスを指定するために)
。2重バッファリング操作は実際には、最上位アドレス
・ビットを動的に修飾することによつて達成される。モ
ード信号は最上位アドレス・ビットがどのように修飾さ
れるかを示している。 従って、マイクロコードで指定されたレジスタ・ファイ
ル・アドレスはハードウェアによって自動的に修飾され
る。2重バッファリングは、浮動小数点プロセッサ・モ
ジュール130がレジスタ・ファイルのどちらの半分に
アクセスできるか、制御プロセッサ・モジュール110
がどちらの半分にアクセスできるかを判断する「バンク
選択」信号によって制御される。このバンク選択信号は
マイクロコード・フィールドによって直接制御されない
が、制御プロセッサ・モジュール110と浮動小数点プ
ロセッサ・モジュール130がスワップ(交換)を要求
したときだけ切り替えられる(別のロジックによって)
、。 2重バッファリングは、最上位アドレス・ビット(A6
)の区画化を使用している。(これと対照的に、第4B
図には、ファイルの缶詰構造を示すために2フアイルが
並んで示されている。これは最下位アドレス・ビット(
八〇)に対応している。)各レジスタ・ファイル・アド
レス(7ビツト)には2ビツト修師子が付いており、こ
れにより次のアドレス・モードの1つが選択される。 物理アドレス・これは修飾なしで指定されたアドレスを
使用する。 論理アドレス:これは自動ソフト2重バッファリングが
使用されているとき選択され、アドレスの最上位ビット
はバンク選択ビットによって置き換えられる。制御プロ
セッサ・モジュール110のレジスタ・ファイル・アド
レスでは、このビットか反転したものが使用されること
になる。 プレビュー:これにより、浮動小数点プロセッサ・モジ
ュール130は、バンクを交換し合ったり物理アドレス
指定を使用しなくても、バンクの他方の側にあるデータ
を調べることができる。同朋点を横切るとき計算パイプ
ラインを一杯に保つためには、新しいデータへのアクセ
スが必要になる(データか移入済みの場合)。しかし、
通常はパイプライン化による遅延が起こるので、現在の
バンクに対するすべての結果が書き出されるまではバン
クを交換し合うことはできない。このアクセス・モード
では、読取りアクセスがレジスタ・ファイルの反対側の
バンクから行なわれてからバンクの交換が実際に行なわ
れるので、この遅延は起こらない。これは、アドレスの
最上位ビットをバンク選択ビットを反転したもので置き
換えることによって行なわれる。 第20図は2重バッファリングでアドレス修飾を行なう
ために使用されるロジックの概要図である。この図の右
側はレジスタ・ファイル430とCPモジュール110
とのインタフェースを示しており、左側はFPモジュー
ル110の残り部分とのインタフェースを示している。 従って、右側のデータ接続個所はボート430八(第1
6図に図示)に、従って、FP保持レジスタ420とキ
ャッシュ・バス144に対応している。左側のデータ接
続個所はポート430B、 C,D、E(第16図に図
示)に、従って、マルチプレクサ440、FALU 4
50などに対応している。 右側のアドレス入力は、CPマイクロアドレス・ハス2
11八によってWC5拡張部分490から呼び出された
マイクロ命令から抽出されたデータ・フィールドに対応
している。左側のアドレス・フィールドはFPマイクロ
アドレス・バス473によってFPWC5470から呼
び出されたマイクロ命令から抽出されたデータ・フィー
ルドに対応している。(レジスタ・ファイル430はア
ドレス人力に対する内部パイプライン・レジスタをもっ
ているので、マイクロ命令ビットはレジスタされないで
人力される。) 2つのアドレス修飾論理装置2Q10が示されている。 これらは、SELおよび5EL−bar との接続が二
対になっていることを除けば、はとんど同じである。従
って、CPとFPが同じアドレスを論理モードでアクセ
スしようとすると、それぞれの論理装置201Oのアド
レス修f!Ij操作が行なわれた結果として、反対のへ
6ビツト出力アドレスが得られるので、2重バッファリ
ング機能か実現される。アドレス論理装置はし1)また
はFPマイクロコード・フィルドの1つから取り出した
7ビツト・アドレスの上位ビット(八6)も受は取る。 また、2ビツト・モートイ2号も受は取る。 本好適実施例によれば、実際には、3個のアドレス修飾
論理装置2010がFP側に実装されている(ボート4
30B、430C14300に1つずつ)。 相補バンク選択信号SELと5EL−barはボート選
択ロジック2020から得られる。これらの2信号は、
FPとCPモジュールが荻四バンク交換を要求すると反
対になる。 (これを行なうロジックは以下で詳しく説
明する。) 非レジスタ・ビットのセットアツプ時間短縮アドレス修
飾ロジック2020を実装する際に、第17図に示すよ
うに、ある種の追加ロジックが追加されている。この追
加ロジックは一敗的問題を解決するもので、多くの分野
で使用するのに適したものになっている。 「ビット・スライス」の多くのメーカはそれぞれのIC
にバイブライン・レジスタを組み入れている。しかし、
チップに到達する前にマイクロコード・ビットに対して
行なわれる処理をチップのセットアツプ時間に加える必
要がある。このような事態は、上述したラフ82重バフ
ァリング・システムを構築する際に起こっていた。その
問題とはアドレス修飾ロジック2010がレジスタ・フ
ァイル・アドレスの最上位ビットじΔ6”ビット)を処
理して論理的、物理的、およびプレビュー・モードでア
ドレス指定を行なうと、サイクル時間に余分のInn5
が付加されることである。(本好適実施例におけるよう
に)サイクル時間を30ns以下にできるときは、これ
は非常に大きなオーバヘッドとなる。 従って、第17図に示すようなある種の追加ロジックが
余分のIonsをサイクル時間(多くのサイクルで)か
ら除くために採用された。これを行なうことができるの
は、アドレス指定モードがあるサイクルから次のサイク
ルまで同じままであるときである。その場合には、セッ
トアツプ時間はすでに前のサイクルで代価が支払われて
いる。しかし、マイクロコード・アドレスが変って、新
しいデータが書込み可能制御記憶機構(WCS)でアク
セスされると、非レジスタ・マイクロコード・ビットは
不安定になる。従って、セットアツプ時間が必要以上に
再び発生することになる。 第17図に示すロジックは修飾アドレス・ビット定数を
別のレジスタ1740に格納している。マイクロコード
から得たものではなく、古いへ6値(レジスタ1740
からフィードバックされたもの)を使用することを選択
するために(マルチプレクサ1739を制御するために
フリップフロップ1720を使用して)、特殊なマイク
ロコード・ビット(“useoldA6″と呼ぶ)が使
用されている。(マイクロコード・アセンブラを使用す
るときは、 useold A6”マイクロコード・ビ
ットはマイクロコード・アセンブラが自動的にセットす
−るので、プログラマはその最適化について気にする必
要はない。)マルチプレクサ1730はアドレス修飾ロ
ジックと同じPΔLに搭載されているので、マルチプレ
クサは余分の遅延を引き起すことがない。 キャッシュ・バス・インタフェースと制御上述したよう
に、数値プロセッサ・モジュールの動作は多くの面で制
御プロセッサ・モジュール110の拡張部分によって制
御される。このロジックの大部分は物理的にFPモモジ
ュール上首かれているが、その制御は制御プロセッサ・
モジュール110とCDバスとのインタフェースによっ
て行なわれる。キャッシュ・バス・インタフェースは、
ブタ・キャッシュ・メモリ140 、 FP保持レジス
タ420、およびレジスタ・ファイル430間のデータ
転送を管理するためにいくつかの部分に分かれている。 このインタフェースの主要部分は保持レジスタ420、
データ・キャッシュ転送ロジック、および局所転送バス
・ロジック2110である。 保持レジスタ420 保持レジスタ420は8個の32ビツト・レジスタから
構成されている。(これらのレジスタは両方向であり、
各レジスタは読取り側と書込み側を備え、内部で並列に
なっている。)これらのレジス夕は256ビツ1−がデ
ータ・キャッシュ・メモリff!11に、64ビツトだ
(づがレジスタ・ファイル側になるように配置されてい
る。レジスタ・ファイル側の出力イネーブルは4グルー
プのレジスタから1つを選択して、レジスタ・ファイル
430につながる64ビツト局所転送バス422を駆動
する。(このインタフェースの動作については、あとで
詳しく説明する。) データ・キャッシュ転送ロジック データ・キャッシュ転送ロジックは主ボード上に置かれ
ており、CP転送ロジックの一部になっている。こくか
らは、モジュール選択アドレス(3ビツト)、出力イネ
ーブル、およびクロックが得られる。このロジックはキ
ャッシュ・メモリ140と保持レジスタ420間の転送
を制御する。このモジュールが選択されると、出力イネ
ーブル信号は活動化されていると、保持レジスタ420
をイネーブルしてデータがキャッシュ・バス144を通
って転送される。 局所転送バス制御ロジック 局所転送バス制御ロジック2110は第21図に示され
ている。このロジックは保持レジスタ420 とレジス
タ・ファイル430間のデータ転送を受は持つ。1つの
転送サイクルは、4つのマイカ・サイクルをもっており
、これらはレジスタ・ファイルとの間で転送できる4対
のF語に対応している。 これらのマイカ・サイクルは高速で動作する専用クロッ
クによって発生する。 転送りロック発生機構412 転送りロック発生機構412からは、主転送サイクル期
間の間だけ転送りロック出力が得られる。 これは、CPクロックと転送イネーブル・ビットが共に
「進行」条件を示しているときトリガされて動作する。 転送りロック発生機構はcpクロック発生機構250と
完全にではなく部分的に同期している。高周波数ECL
回路が70MHzオシレータに接続されており、CPク
ロック発生機構が「進行」条件を示すまでは、高周波数
回路はループを続けているだけである。従って、筒周波
数グロックの縁が現れると、「進行」条件かヂエックさ
れる。つまり、[進行」条件が高周波数クロックの多く
て1期間以内に検出されることになる。 進行条件が検出されると、転送りロック発生機構は高周
波発振入力の分割を始めて、主転送サイクルに対する転
送りロック出力を発生する。どの主転送サイクルが行な
われているかに応じて、2か65までのクロック・ビー
トは主転送サイクル期間に発生する。クロック・ビート
は8個の保持レジスタすべてに結ばれている。これらの
レジスタへの順次アクセスは、上述するように、オーバ
レイされた自走ゼロ・パターンによって「位相」がとら
れる。 第47図は転送りロック発生機構のタイミング関係の概
略図である。高速可変長クロック480は同図の下に示
されているが、これは計算機構440と450(レジス
タ・ファイル430のデータ・ポート430八、430
B、430C14300,430Eと共に)の動作のク
ロックをとるものである。その上に示されているのは、
転送りロック412の高速ECLループである。さらに
その上は、主転送サイクルで転送りロック発生機構41
2を始動させる(CPマイクロコード・クロックと共に
)イネーブル信号である。その上は転送りロックである
。その上はCPクロック発生機構250によって発生さ
れるCPマイクロコード・クロックである。 従って、転送りロック発生機構が働いているときは、中
間クロック・ゾーンが得られるので、データ・キャッシ
ュ・メモリ140(これはCPクロック発生機構250
によって制御される)とレジスタ・ファイル430の内
側バンク(これはFPクロック発生機構480によって
制御される)間の転送が高速化される。 FPLIとデータ・キャッシュ・メモリ間のクロック境
界は非常に重要な境界である。この境界はクロック位相
境界だけでなく、クロック周波数の大きな差にもまたが
っている。上述したように、さらに、この境界をまたぐ
正味転送バンド幅も非常に重要である。 木好適実施例では、この境界は2つのステップてまたが
っている。 I・Pクロック領域から過渡的クロック領域への転送は
レジスタ・ファイル・インタフェースの2重バッファリ
ングによって行なわれる。 保持レジスタ420かデータ・キャッシュ・メモリ14
0への転送は全体がCPクロック領域内で行なわれる。 次に、このクロック周波数差に関して注目すべきいくつ
かの一般的事項を挙げておく。 マイナ転送サイクル継続時間と最小FPサイクル時間と
の関係は偶然的なものではない。上述したように、ダイ
アジック演算のときにキャッシュ・バンド幅に最悪の負
担がかかることになる。例えば、ベクトル加算では、2
個のオペランドと1個の結果をレジスタ・ファイルとキ
ャッシュの間で転送しなければならない。レジスタ・フ
ァイルのFPU側では、2個のオペランドは並列に読み
出され、(これとバイブライン処理されて)その結果は
同時にレジスタ・ファイルに書き戻される。従って、最
悪の場合には、計算機構のすへての計算サイクルごとに
、2語をレジスタ・ファイル430に書き込み、1語を
読み出さなりればならない。 すへての演算がダイヤシックであるとは限らないが、多
くのアプリケーションでは、平均的にあまり有利とはい
えない。 過渡的クロック領域を使用する実施例では、上述したよ
うに、次のようにすることが最も好ましい。つまり、マ
イナ・サイクル継続時間をマイナ・サイクルごとに転送
される語数で分割して、FPUにおける計算サイクルの
最小継続時間の172ないし173倍の範囲にすること
が好ましい。しかし、2段インタフェースで過渡的クロ
ック領域を使用すると、この数値関係か満足されない場
合であっても、その利点が得られる。 過渡的クロック領域の利点は高速数値計算機構が使用さ
れているシステムに応用可能である。上述したクロック
・インタフェース・アーキテクチャによれは、この種の
機構をそれぞれのクロック領域に隔離できるので、可能
な限りの最大速度でクロックを動作させることができる
。例えば、このインタフェース・アーキテクチャは、高
価な高速デクノロシ(ジ1セフソン接合やII+−ν装
置テクノロジなと)におりる限られた数の計算機構を大
型コンピュータ・システムに組み入れるときに使用可能
である。 制ill信号 制御信号の数を少なく抑えるためには(入力側と出力側
の両方で)8個のF語を保持レジスタ420からレジス
ターファイル430に転送する仕方にいくつかの制約が
ある。こねがなぜ必要なのかは、アドレスのことを考え
れば明らかである。F語が8個のときは、全体の柔軟性
が必要である場合には、8個のアドレスが別々に必要に
なる。各アドレスに9ビツトを指定する必要があるので
、アドレス情報は合計で72ビツトになる。 入力制御信号には、次のものがある。 亙卯・データがレジスタ・ファイルから保持レジスタに
転送されるのか、あるいはその逆に転送されるのかを指
定する。 レジスタ・アドレス(6ビツト) これは、ブタがそこ
からレジスタ・ファイルとの間で転送される開始アドレ
スを指定する。このアドレスはマイナ転送サイクルごと
に増分され、64ビツトまで達すると、折り返される。 FPU側からは、レジスタ・ファイル・アドレスは、6
4ビツト語で(士なく32ビツト語を参照するので、7
ビツトであることに注目すべきである。 論理/物理アドレス修篩子:これはアドレスを修飾して
ソフト2重バッファリングを行なうかどうかを選択する
ヶ 転送長さ(3ビツト):これは転送されたF語の個数(
1,、,8)を判断する。 転送開始(3ビツト)・これは8語のうち最初に転送す
るF語を指定する。これらのビットはマイクロコード・
フィールドでも、レジスタ・フィールドでも定義できる
が、CAババス11の最下位ビットにすることも可能で
ある。転送開始+転送長さ〉8ならば、F語の選択は折
り返される。 転送イネーブル:転送に関係する4つの浮動小数点プロ
セッサーモジュールを1つ選択する。 し・タスタ・ファイルと保持レジスタに対する制御(M
号には、次のものがある。 保持レジスタ群出力イネーブル(4)+64ビツト・デ
ータ・バスを駆動させるレジスタ群を選択する。転送方
向かレジスタ・ファイルイ30から保持レジスタ420
に向う場合は、これらのイネーブルはいずれも活動化し
ない。 保持レジスタ群クロック(8):クロック・イネーブル
は4つあり、これらはパターン1110.1101.1
011.0111 (r自走低パターン」)の順番にな
っている。これらの4クロツク・イネーブルは64ビツ
ト・レジスタ群を選択する。静的8ビツト・クロック・
マスクは32ビツト・レジスタのどの2つを実際にイネ
ーブルさせて、局所転送バス422をアクセスするかを
選択する。(パターン内の開始位置は転送開始によって
決まり、パターンの数は転送開始と転送長さパラメータ
によって決まることにl主意されたい。) レジスタ・ファイル・アドレス(7):マイナ・サイク
ルごとに増分し、論理/物理アドレス(M fiili
子に応じて修飾される。 レジスタ・ファイル読取り/″N込み制御(2):各月
のレジスタ・ファイルごとに別の文字があるので、奇数
個の書込みが可能である。これらは転送長さとアドレス
からデコード化される。 (以下余白) 転送の制約条件(18語構造) 上述したインタフェースによると、転送にいくつかの制
約がある。これらの制約を分かりやすく説明するために
、データがデーターキャッシュ・メモリ140、保持レ
ジスタ420、局所転送バス422、およびレジスタ・
ファイル430の間でどのようにマツピングされるかを
明らかにする。 レジスタ・ファイル430はある種の缶詰構造になって
いる。つまり、FPUからは32ビツト幅に見えるが、
局所転送バス422からはレジスタ・ファイル430は
64ビツト幅に見える。 レジスタ・ファイル43αと局所転送バス422間を2
語幅のインタフェースを使用して結び、8個のレジスタ
420に印加される転送りロック(実効)を4マイナ・
サイクル以下にすると、転送速度が最大化するので(静
的クロック・マスクが使用できる)非常に有利である。 しかし、ある種の奇数/偶数構造がファイル・アドレス
構造に組み込まれるという副作用が生じる。 これを図式化して示したのが第46図である。FP保持
レジスタの幅内の8個のF語は相反向きに陰影を付けて
、どれが偶数で、どれか奇数であるかを示している。2
倍語が転送されると、転送された任意の偶数F語<WO
1W2、W4、Wa)はレジスタ・ファイル430の左
側にマツピングされる。従って、これらはFPUから見
ると、偶数レジスタ・ファイル・アドレスにマツピング
される。これに対応して、転送された任意の奇数F語は
レジスタ・ファイル430の右側にマツピングされるの
で、FPIJから見たとき、奇数レジスタ・ファイル・
アドレスにマツピングされる。 このことは、それ程深刻ではないが、(キャッシュ・メ
モリ140からの一連の分散読取りアクセスにおいて)
すべての転送が偶数データ・キャッシュ・アドレスから
の場合には、レジスタ・ファイル430内のアドレスの
半分だけが使用できることを意味する。 もっと重要なことは、1個のF語(例えば)計算アドレ
スから転送される場合には、データがレジスタ・ファイ
ル内の偶数または奇数アドレスで終結する可能性がある
ので、このデータを正しい側から(FPUに)アクセス
させるようなプログラム・ステップを使用する必要があ
ることである。 本好適実施例によれば、この種の問題を回避するために
ユーザが選択できる5つのオプションが用意されている
。つまり、 1 、CPモジュール110はDCMでデータを往復で
きるので、転送されるどのデータもDCM内の偶数アド
レスから開始する。 2、転送ロジックは状況ビットをもっており、最後の転
送が偶数アドレスに対するものか、奇数アドレスに対す
るものであるかを示すようになっている。FPロロブク
はこの状況ビットをテストできるが、これから得られる
のは、最後の転送に関する情報だけである。 3.2重書込みサイクルをデータ有効フラグと一緒に使
用できるので、語アドレスの偶数/奇数特性をある個所
で無視させることが可能である。つまり、本好適実施例
でレジスタ・ファイル430に実際に使用されているメ
モリには、データの16ビツトごとに2個のパリティ・
ビット記色位置がある。本好適実施例では、パリティ検
査は採用されていないので、これらの追加ビットは他の
目的に使用可能である。特に、これらのビットはデータ
ト共に「データ有効」フラグを送るために使用できる。 従って、保持レジスタ420からの書込みはすべて対の
保持1ノジスタから対のF語をレジスタ・ファイル43
0の両側に書き込むことになる。 4、CPモジュール110によって書き込まれるレジス
タ・ビットは現在の語記憶位置の偶数/奇数状況を示す
ために使用できる。FPモジュールはこのレジスタ・ビ
ットをテストして、条件付き分岐を実行することができ
る。 5、CPモジュール110はレジスタ478にある開始
アドレスを変更することで、FPに正しい語の偶数/奇
数状況を知らせるようにFPプログラミングを変更する
ことができる。 別の方法としては、専用ハードウェアを追加して、語の
交換を即時に行なう方法がある。しかし、この方法は、
専用バー1−ウェアによって転送毎に遅延が増加するの
で(交換するか否かに関係なく)好ましくない。 この転送制御では、非連続アドレスを1回の主転送サイ
クル内で転送することができない。例えは、WOとW2
を保持L/レジスタらレジスタ・ファイルに転送するた
めには、2つの主転送サイクルが必要になる。しかし、
Wlも一緒に転送でざるならば(それが使用されない場
合であっても)主転送サイクルは1つだけで十分である
。 データをレジスタ・ファイル430からキャッシュ・メ
モリ140に転送するときも、分散書込みが行なわれる
ときと同じような考慮が必要になる。 この場合の好ましい方法は、レジスタ・ファイルの両側
にデータを同時に書き込むことである。つまり、第4B
図に示すように、2つの(物理的には別の)レジスタ・
ファイル部分430と403°はgメイネーブルできる
ので、結実用バス433から書き込まれたデータは偶数
語と奇数語の両方に書き込まれることになる。この重複
データが保持レジスタ420に書き出されるときは、こ
れらの8個全3;1%に同時に書き込むことかできる。 (この機能はマイクロコード内のIIRC1ock A
LLビットによって活動化される。) 保持レジスタ/転送りロックの動作 上述したように、多くて4個のビートで転送イネーブル
を行なうクロックは保持レジスタ420 とレジスタ・
ファイル430間の転送で使用される。 (本好適実施例では、このクロックは実際には主転送サ
イクルごとに5個までのビートをもつことができる。そ
のうち4個のビートは保持レジスタ・バンクのそれぞれ
の対を活動化し、5個目の位相はバイブライン・オーバ
ヘッドの余裕分となっている。実際の動作では、このク
ロックの位相は約3Qnsである。従って、主サイクル
は約+50nsである。(勿論、これらの時間は変更が
可能である。) このクロック構造には、缶詰転送アーキテクチャをキャ
ッシュ−バス144と保持レジスタ430間のインタフ
ェースで使用すると、大きな利点が得られる。転送ロジ
ックには保留レジスタ430は2語幅に見えるので、転
送操作を8:l多重化ではなく、4:1多重化として扱
うことができる。 FPプログラム制御 第4C図は本好適実施例において、FPマイクロコード
・アクセスとデコード化で使用されるロジックを示して
いる。 マイクロ命令の順序付け(シーケンシング)本好適実施
例では、数値処理モジュール130は高度に統合化され
た「シーケンサ」を使用していない。その代わり、実行
すべきマイクロ命令のアドレスを定義し、マイクロ命令
をデコード化する機能が低レベルの統合化によって実装
されて、最大高速化を図っている。書込み可能制御記憶
機構は、マイクロ命令アドレス入力によってアクセスさ
れるマイクロ命令を格納している。マイクロ命令アドレ
スのソースは次アドレス・ロジック472によって選択
され、このロジックには条件コード入力がマイクロコー
ド語のデコードによって得た出力と共に入力される。 マイクロアドレスは、通常動作時には(つまり制御プロ
セッサ・モジュールやホストによる介入とは別に)4つ
のソースの1つから得られる。これらのソースとは、r
真」アドレス・レジスタ474、「偽」アドレス・レジ
スタ475、スタック・レジスタ478、開始アドレス
・レジスタ479である。 どの命令にも「真」アドレス・フィールドとr偽」アド
レス・フィールドがある。これらの2アドレスを組み合
せることにより、条件付きジャンプが可能になる。「真
」アドレスだけが無条件ジャンプと命令「継続」を可能
にする。 これを行なうには、マイクロ命令471のある種のフィ
ールドが2つのレジスタ474 と475に送り込まれ
る。これらのレジスタはr真」と「偽」アドレスのバッ
ファとなるので、論理テストの結果に応じて、一方また
は他方のアドレスが次のマイクロ命令アドレスとして逆
ロードすることができる。 オンチップ・パイプライン・レジスタを使用しないマイ
クロコード・ビット用として、追加のレジスタ476が
用意されている。 スタック・レジスタ478 スタック・レジスタ478はFPプログラム制御の機能
を強化するものである。これから得られる出力はマイク
ロアドレス・バス473に送出され、入力はマイクロ命
令バス471から得られる。これについては下達する。 しかし、FPモジュールの高速マイクロコード・アーキ
テクチャで使用されるスタックに要求される条件はいく
分通常とは異なりたものである。本好適実施例によるス
タックは必要とする後入れ先出しくLIFO)操作を高
速に行なうだけでなく、デバッグに非常に役立つ柔軟性
を僅えている。この機能を得るためには、第39図に示
すように、ある種の新規構造が要求される。 スタック機能を実装するのに都合のよい方法はレジスタ
・ファイルを使用し、その出力イネーブル信号と書込み
イネーブル信号をアドレス・カウンタに結び付けて、
pop (読取り)操作が行なわれるたびにカウンタ
を減分し、 push”(書込み)操作が行なわれるた
びにカウンタを増分することである。 中心部分3920は多段パイプライン・レジスタであり
、これはへMD社から市販されている(八MD2952
0)。この部分は4個のパイプライン化されたレジスタ
3921と、出力を得るためにレジスタ3921の1つ
を選択するために使用できる出力マルチプレクサ392
2とを備えている。(この種の装置の通常動作モードは
FIFOか、一定の遅延を得る動作モードのどちらかで
ある。) 図示の実施例では、このレジスタの制御機能はLIFO
操作を実現するために、PAL 3910の制御の下で
使用される。PALはコマンド信号を受けてスタックを
ポツプまたはブツシュする。読取りスタック人力も用意
されているので、(主に診断目的)スタックの状態を無
変更のまま読取ることができる。このモードで使用する
ために用意されたのがオフセット入力であり、これは最
上段レベルを基準にしたスタック・レベルを読み出すた
めに使用できる。 スタック・レジスタの出力はマイクζ1ア1−レス7\
ス473シ貢、1′1ばれでいる。スタック・レジスタ
への人力は1為)′1ヘレスによって得られるか、その
1111巾について以下説明する。 サブルーチンの動作 スタック・レジスタ478はサブルーチン動作をり(E
化する機能を備えている。サブルーチンを呼び出すマイ
クロコード命令はサブルーチン・アドレスを真フィール
ドに、戻りアドレスを偽フィールドに記述ず乙。この命
令の短フィールドには、フコtシュ・コマンドも記述さ
れるので、スタック・レジ久々は「偽」アドレス出力を
格納する。サブルーチンの実行が終ると、ボ・ンブ・コ
マンドがスタック・し・タスタをイネーブルして、戻り
アドレスをマイクロ命令バス47′!上に出力させる。 従って、スタック・レジスタ478が4レベルであるの
で、サブルーチンを4レベルまでホストすることができ
る。 クロック発生機構4130 FMPYとFALtlでのサイクル時間は命令が異なる
と、す1クル時間も異なる。サイクル時間を命令に応1
.・て調゛格−)−ろ、にうにすると、5(算114間
が最適化されるので都合がよい。F A L II演算
と単精度乗算との間の差か最大である(15ns)。 FMPYには除算や平方根のように実行時間が長い命令
があり、その場合には、実行時間はそれぞれ200ns
と300nsである4、これらの実行速度の3い命令用
に2つのオプションが用意されている。 1つは、サイクル長さを該当する量だけ延長するオプシ
ョンである。 もう1つは、実行時間の長い命令が進行中にFMPYに
対するクロック・イネーブルをデ、イスエーブルするが
、その命令とデータ・ス1ヘゾームを通常のデータ速度
でF A L Uに送り続けるオプションである。これ
により、し\くつかのp A L IJ ?寅算を除算
ン寅算の陰に隠すことかできるので、ある種の】′ルゴ
リズムにとっては好都合である。 クロック発生機構はマイクロコード・クロ・す4.+と
スクラッチバ・ノド・メモリに対する書込みブトの2つ
の波形を発生する。クロック発生機構か発生する最小4
jイ2フル時間の長さは21nsであり、これは最大4
トイタンレ時間の98nsまで711sシ11みて変え
ることかh1能である。木好通実JJ1−例では、実際
の最小サイクル時間の長さは280Sである(これは”
WCSメモリ 7′クセス時間かil;l約要因となっ
ているためである)。FALLI演算のサイクル時間の
長さは2flnSであるが、単精度乗算演算では41n
sである。 クロック発生機構はECLステー1・・マシンとして実
装されており、入力周波数が140MHzで動作してタ
イミング分解能を得ている。このECLステート・マシ
ンをTTL順序付はロジックおよび高速計算機構と併用
すると、著しい利点が得られる。 (上述したように、レジスタ・ファイル430 と計算
機構440.450は内部にECLが実装され、周辺に
TTLが実装されている。) クロック発生機構は以下に挙げた制御人力を受は取るこ
とができる。つまり、VMEインタフェースからでも(
つまりホストから)、cpモジュールからでも受り取る
ことができる停止または開始コマンI−、マイクロ、T
h1・令ハス471からの長さ人力フィールド、 「待
ち状態」(またはCPが開始ア):’ kノス・レジス
タを強制的に次のFl’マイクロサイクルに対するマイ
クロアドレス・ソースにするときはもっと長いサイクル
)を指示するストレ・・ノヂ入力、およびクロック発生
機格にも結ばねていて、即時停止を指示する中断点ビッ
トである。 上述したように、CP拡張ロジックにも転送りロック発
生機構412がある。このクロックはクロック発生機構
280とは無関係である。(しかし、これらのクロック
発生機構は共にTTLクロック発生機構内にTTLロジ
ック対を駆動するECLCシロクを使用する利点を生か
している。) マイクロコード短縮 FPモジュール130の動作の注目すべき特徴の1つは
、短縮マイクロコードを使用していることである。つま
り、WCS 470 とのインタフェースにある種のロ
ジックが用意されており、マイクロ命令のあるフィール
ドを以前にレジスタに格納された値で即時に置き)奏え
られるようになっ−(いる。 本好適実施例では、この方法で置き換えられるフィール
ドは演算指定子である。しかし、他のシステムでは、他
のマイクロ命令フィールドをこの方法で置き換えること
も可能である。 従って、例えば、2個の配列を3個目の配列上にマツピ
ングする演算(例:C1−^i÷1li)の場合は、こ
の種の演算列が開始される前に命令レジスタに演算指定
子(例: ”八[lD’)をロードすることが可能であ
る。この演算列はそのあと、演算を直接に指定していな
かったコードに記述されることになる。 このロジックは第45図に示されている。命令レジスタ
4510には演算指定子(8ビツト)がロードされる。 この演算指定子はWCS 470に保管されているマイ
クロ命令のフィールドの1つに対応している。 ”1lse IR”ビット(これはCPモジュール11
0によってレジスタに書き込まれているので、あまり変
更されることがない)を受けると、 PAL 5420
は出力コマンド470Bをイネーブルするか、命令レジ
スタ45IOをイネーブルするかを選択する。 ”tlsc Ill”ビットがマイクロ命令のあるフィ
ールドに割り当てられていた場合は、これはサイクルご
とに変わる可能性がある。しかし、この場合には、どの
指定子を使用するかをデコードするときに(そのあとそ
れをイネーブルするときの)余分の遅れが生じるので、
変更が行なわれたサイクルではサイクル時間が長くなる
。 WCS 470は、本好適実施例では、実際には各々が
4ビツト幅の26個の集積回路メモリから物理的に構成
されている。従って、これらの物理メモリの2つに演算
指定子フィールドの8ビツトが保管される。これらの2
メモリは部分470Bで示され、?lC5470の残り
のフィールドを保管するメモリは47〇八で示されてし
)る。 命令レジスタ4510はそれを(CPマイクロコードの
中で)CDバスのソースまたは宛先と指定することによ
って、COババス22から読み書きすることができる。 PAL 4520には人力の別ビットも送られるので、
そのバイパス操作をマイクロコードのロード操作時にデ
ィスエーブルすることが可能である。 マイクロコードの並列ロート 第29図はWCS 470がどのように幅広キャッシュ
・バス144 とのインタフェースとなっているかを図
式化して示したものである。54ビツト局所バス422
はFP保持レジスタ420とレジスタ・ファイル430
のボート43〇八とを結んでいるが、マイクロ命令デー
タ・バス471にふる下がっている直列シャドウ・レジ
スタ481にも接続されている。(他の個所で詳しく説
明されているが、これらの直列レジスタは制御記憶機構
470とマイクロ命令をホストから送るとき使用される
直列ループとを結ぶインタフェースになっている。) この追加の接続は、マイクロコードのオーバレイを非常
に高速に変更できるようにするので、数値プロセッサ・
モジュール130で特に利点が得られる。 本好適実施例では、直列シャドウ・レジスタ481は実
際には、物理的に分離された2つのレジスタ481八と
41) l 11からなる構成になっている。これらの
レジスタは制御記憶機構470のデータ・ホードと両方
向で結ぶインタフェースになっているだけでなく、局所
バス422からのデータも受は取ることができる。上で
触れたように、CP拡張ロジック内のマイクロ命令フィ
ールドは、局所バス422のデータ宛先を示して、この
読取りを指示できるビットが入っている。 上述したように、各FPマイクロ命令は104 ビット
幅である。しかし、直列インタフェース・ループを巡回
するデータの自動シフトに合わせるために、シフト・レ
ジスタ481は112ビツト長になりている。つまり、
命令ビットの数は次の偶数のIBの倍数に丸められて、
インタフェースにあるシフト・レジスタの長さが定義さ
れている。本好適実施例では、レジスタ481Aは64
ビツト幅であり、レジスタ481Bは48ビット幅であ
る。 レジスタ48】 にマイクロ命令がロードされると(局
所転送バス422の3マイナ転送サイクルで)これらは
命令をWCS 470に逆ロードするように駆リJされ
る。このためには、ア1.レスをFPマイクロアドレス
・バス473に送出する必要かあり、また書込みイネー
ブル信号をWO2470に送る必要がある。 直列ローディングでは、ホストはCI’マイクロアドレ
ス・レジスタを使用して、ロート(または読み取る)べ
@FPl’lI(:Sのアドレスを格納し、このアドレ
スをFP WO2あてに送る。(CPマイクロアドレス
・バス211Aからの人力は%<c図の上方に示されて
いるバッファからFPマイクロアドレス・バス473に
送り込まれる。) 並列ロード・モードでは、CPは目標アドレスを開始レ
ジスタ479に入れる。 ホストとのインタフェースとなる追加のロジックも用意
されている。このロジックにより、マイクロ命令を制御
記憶機構470に対して読み書きすることができる。こ
の機能は詳しく下述する予定である。 FPマイクロコード・ルーチン実行の始動FPモジュー
ルが起動するとき、これは下述するFPW八Iへ/C[
’lV八lへ A ニア F シxイキ’)グ・ロブ・
ンクにより1、通常待ち状態に入る。FPモジュールで
実行されるルーチンを始動するには、CPマイクロコー
ドのあるビットを使用して、開始レジスタ479 に保
持されているマイクロ命令アドレスをFPマイクロ命令
アドレス・バス473上の次のアイクロアトレスとして
使用させることができる。この処置は下述するようにモ
ジュール選択によって修飾される。 FPモジュールの選択 最上位レベルでは、浮動小数点プロセッサ・モジュール
130を制御するためにはその前に選択しておかなけれ
ばならないつ単一モジュール構成では、FPモジュール
は常時選択されているので、以下に述べることの中には
、適用されないものがある。しかし、複数モジュール構
成では、必要とするFPモジュール(またはアルゴリズ
ム高速化機構)を先に選んでおかないと、その制御を行
なうことができない。複数のFPモジュールを一度に進
んで、データまたは情報をFPモジュールのサブセット
に同報通信することが可能である。FPモジュルは次の
3通りの方法て選択できる。1つは、以前に制御レジス
タに格納されている3ビツト値を使用する方法である。 2番目は、マイクロコード・フィールドを使用する方法
である。最後は、好ましさの点で劣るが、異なるモジュ
ールの各々にあるCP拡張ロジック部分に独自のマイク
ロコード・ストリームを同期して実行させ、アクセス仲
裁をマイクロコードで行なう方法である。使用する方法
はサイクル単位で変更することが可能である。 あるFPモジュールが選択されると、それを制御する方
法は制御レジスタ(長期的な制御情報がロードされてい
る)と専用マイクロコード・ビットの間で分割されて、
サイクルごとに制御が行なわれる。サイクル別制御の殆
どは、下述するようにデータ・キャッシュ・メモリ・イ
ンタフェースとそのモジュール上のレジスタ・ファイル
間のデータ転送を取り扱う。 モジュール選択は第23図に図式化して示されている。 マルチプレクサ2340はモジュールLDに対してどの
人力を使用するかを選択する。デコート・ロジック23
10 (これはモジュール130または13G’にある
CP拡張ロジックの一部である)はその特定モジュール
でのスイッヂ設定値と突き合せて、同報通信されたモジ
ュール・アドレスをテストする。修飾ロジック2320
はそのテスト結果に応じて、下述するように、局所WC
5拡張部分からの各種マイクロ命令フィールドを修飾す
る。 制御レジスタ 制御プロセッサ・モジュール110は、次のレジスタに
読み書きすることができる。 転送制御レジスタ:転送制御レジスタは保持レジスタ4
20(データ・キャッシュ・メモリ・インタフェースに
ある)からレジスタ・ファイル430に転送されるデー
タ転送に影響を与える制御信号を一ケ所に収集するもの
である。ハードウェアの負担を軽くするために、他の信
号もいくつか収集される。 使用される制御信号には、次のものがある。 転送開始(3):このフィールドは保持レジスタ群の8
レジスタのうちのどれを最初に転送するかを選択する。 これはマイクロ命令の一部として指定することも、デー
タが取り出されたデータ・キャッシュ・メモリ・アドレ
スに基づいて自動的に指定させることも可能である。 転送長さ(3):このフィールドは、保持レジスタとレ
ジスタ・ファイル間で転送する語の数を指定する。最大
8語まで転送が可能である。 転送タイプ(1):このビットは転送が保持レジスタと
レジスタ・ファイル間で行なわれるのか(0)、保持レ
ジスタからFPモジュールのWCSパイプライン・レジ
スタに行なわれるのか(1)を選択する。 後者の機能はFPモジュール・メモリの並列ロード時に
使用される。 ループバック制御(1):このビットは、書込み保持レ
ジスタ内のデータを、レジスタ・ファイルに先に書き込
むことなく、直接に読取り保持レジスタに複写すること
を可能にする。これの主な用途は診断および状態格納と
復元操作である。 操作選択(1):このビットはハード布線機能がなく、
FPのシーケンサに対してテストが可能である。このビ
ットを使うと、制御プロセッサ・モジュール110は、
現在実行中のルーチン内の2つの操作の1つを実行する
ようにFPに通知することができる。例えば、このビッ
トは、偶数アドレスにあるデータ(奇数アドレスにある
データではなく)を計算で使用するように指定するため
に使用できる。 命令レジスタ選択(1):このビットはWO2にあるマ
イクロ命令フィールドでなく命令レジスタ(後述)を使
用させて、浮動小数点ALUと乗算機構の動作を制御す
るものである。 マスク・エラー(1):このビットはFPエラー条件(
FPマイクロコードによって判断される)が制御プロセ
ッサ・モジュール110のシーケンサに割込みを引き起
すのを禁止する。禁止されても、FPエラー状況は通常
条件コード選択プロシージャでテストすることが可能で
ある。 行なわれるときは、ポスト・コンピュータはFPのサブ
ルーチン・スタックにアクセスする必要がある。スタッ
クへのアクセスが可能であるときは、このフィールドが
どのスタック項目を読み取るかを選択するために使用さ
れる。アクセスされるスタック項目はスタック・ポイン
タが指している位置を基準にしたものであることに注意
されたい。 FP制御レジスタ:FP制御レジスタは並列マイクロコ
ード・ロード制御、割込みマスキング、クロック制御お
よびマイクロアドレス選択フィールドを一ケ所に収集す
る。 クロック制御(2):このフィールドを使用すると、制
御プロセッサ・モジュール110はFPのクロックを制
御することができる。FPクロックは動作させたままに
することも、停止させることも可能である。クロック制
御フィールドにある追加ビットは、FPマイクロコード
・クロックが制御プロセッサ・モジュール110のマイ
クロコード・クロックを使用して、FPを制御プロセッ
サ・モジュール110と同期して稼動させることを選択
するために使用されていたものである。 FPマイクロコード・アドレス・ソース(2)二二のフ
ィールドにより、制御プロセッサ・モジュール110は
FPに使用させるマイクロコード・アドレスを次のうち
の1つにすることを選択できる。 FPシーケンサ出カニこれはFPがマイクロコードを実
行させるときの通常のマイクロアドレス・ソースである
。 開始アドレス・レジスタ:これは並列マイクロコード・
ロード時に開始アドレス・レジスタを選択する。(CP
モジュール110またはホストがFPモジュール110
にマイクロコードの実行を特定のアドレスから開始させ
ることを指示するときは、別の仕組を用いて開始アドレ
ス・レジスタが選択される。) L久工久里力里l:これは、診断とマイクロコード・デ
バッグ時にサブルーチン・スタックへのアクセス権を得
るために制御プロセッサ・モジュール110によって使
用される。 割込みマスク:これらの4ビツトは、Fl’でどのqS
象が起きたとき、FPに割込みを引き起すかをFi制御
プロセッサ・モジュール110に選択させるものである
。これらの事象には、中断点、Cf’WAIT、FPW
八Iへ、レジスタ・ファイル交tX、FPエラーがある
。割込みが引き起されると、対応するマスク・ビットは
一時的にクリアされて、割込み要求がリセットされる。 並列マイクロコード・ロード制御(5):このフィール
ドには、WC5書込みイネーブル、WC3出カイネーブ
ル、診断シフト・レジスタ・モード、および信号中のク
ロックと直列データを制御する個別ビットがある。並列
マイクロコード・ロードは以下で詳しく説明するように
、制御プロセッサ・モジュール110によって制御され
る。 浮動小数黒面 アクセス・ループ(3):浮勅小数点糺
Uと乗算機構を通して稼動する直列ループは両チップの
内部状態をアクセスしたり、ある種の新しい状態情報を
ロードしたりするとき使用できるものである。内部レジ
スタとフラグはすべてこの方法でアクセスができる。こ
の直列ループを制御するために、制御プロセッサ・モジ
ュール110は直列モード、直列データ・イン、直列ク
ロックの3つの制御信号をもっている。直列クロックは
このレジスタ・ビットから直接に駆動されるので、必要
とする立上がり縁と立下がり縁を発生するためには制御
プロセッサ・モジュール110に切り替えさせる必要が
ある。 開始アドレス・レジスタ:制御プロセッサ・モジュール
110は、ジャンプ開始アドレス・マイクロコード・ビ
ットが使用されるときFPにその実行を開始させようと
するマイクロコード・ルーチンのアドレスを開始アドレ
ス・レジスタにロードする。このレジスタは並列マイク
ロコードの実行時にロードすべきWC5記憶位置のアド
レスを保持するためにも使用される。 命令レジスタ(8ビツト):制御プロセッサ・モジュー
ル110はWO2から取り出した浮動小数点AL(+と
乗算機構の命令を無視して、独自の命令を代用すること
ができる。命令レジスタ4510 (第45図に図示)
はこの命令を保持する。これの利点は′till IJ
IIプロセッサ・モジュール110が必要とする特定タ
イプの計算に合わせて汎用マイクロコード・ルーチンを
カストマイズできるので、非常によく似たアルゴリズム
で使用されるWCSスペース二を大幅に節減できること
である。 4犬γ兄レジスタ(ソースのみ):これはFPモジュー
ルにあるある種の内部情報をアクセスするために診断と
マイクロコード・デバッグでのみ使用される。アクセス
できる状況には、転送時に使用されるレジスタ・ファイ
ル・アドレスと保持レジスタ開始アドレスおよび問題状
況がある。 マイクロコード語の形式 FPマイクロコード形式の主要フィールドは第40図に
その概要が示されている。マイクロコード語の詳しい定
義は下達する。*印の付いた項目はWO2470から直
接に取り出されるので、これらが制御する装置の内部パ
イプライン・レジスタを使用する。フィールド別のビッ
ト数はかっこ内に示されている。 プログラム実行時(例・命令継続)にジャンプする次の
アドレス、条件付きテストか真であるときジャンプする
アドレス、およびジャンプ・サブルーチン命令のサブル
ーチン・アドレスを収容している。 偽アドレス(9)傘: このフィールドは条件付きテス
トか偽であるときジャンプする次のアドレスとジャンプ
・サブルーチン命令のサブルーチン・アドレスを収容し
ている。 π先取りアドレスX (9) * :このフィールドは
データが”X′ボートから読み取られたり、そのボート
上に送出されるレジスタ・ファイル内のアドレスを指定
する9ビツトを保持している。物理アドレスは9ビツト
のうちの7ビツトに入れられ、他の2ビツトはアドレス
をどのように修飾するかを選択する。オプションには、
修飾なしく物理)とソフト2重バッファリング(論理と
プレビュー)がある。 読取りアドレスY(9)中:このフィールドはデータが
“Y“ポートから読み取られたり、そのボート上に送出
されたりするレジスタ・ファイル内のアドレスを指定す
る9ビツトを保持している。物理アドレスは9ビツトの
うちの7ビツトに入れられ、他の2ビツトはアドレスを
どのように修飾するかを選択する。オプションには、修
飾なしく物理)とソフト2重バッファリング(論理とプ
レビュー)がある。 書込みアドレス(8):このフィールドはデータが書き
込まれるレジスタ・ファイル内のアドレスを指定する8
ビツトを保持している。物理アドレスは8ビツトのうち
の6ビツトに入れられ、他の2ビツトはアドレスをどの
ように@飾するかを選択する。オプションには、修飾な
しく物理)、ソフト2重バッファリング(論理)、ソフ
ト2重バッファリング(プレビュー)がある。このアド
レスは偶数アドレスに1つ、奇数アドレスに1つの対の
レジスタを選択する。レジスタの書込みは2個の別々の
書込みイネーブル・ビットによって制御される。(この
機能を使用すると、上述したように、同じ結果をレジス
タ・ファイルの偶数側と奇数側の両方に入れておくこと
ができる。)このアドレスは同じデータをレジスタ・フ
ァイルに入れるために使用される「ループバック」書込
みボートでも使用される。 偶数書込みイネーブル(1):このビットが活動してい
るとき、データは偶数レジスタ・ファイル・アドレスに
書き込まれる。 奇数書込みイネーブル(1):このビットが活動してい
るとき、データは奇数レジスタ・ファイル・アドレスに
書き込まれる。 浮動小数点演算(8)傘:これは実行したい浮動小数点
または整数演算を指定し、FMPY 440とFALU
450の両方で共用される。使用される特定部分別の命
令セットと命令コードの詳細はメーカのデータ資料に記
載されている。 FMPYイネーブル制御(4):このフィールドはデー
タの内部多重化と、人出力レジスタのローディング、つ
まり、Xボート・マルチプレクサ制御(”X”ボートは
最初のオペランド・バス431に結ばれたボートである
)、イネーブルXボート・レジスタ・データ・ロート、
イネーブルYボート・レジスタ・データ・ロート(”Y
”ボートは第2のオペランド・バス432に結ばれたボ
ートである)、イネーブルZレジスタ・ロー・ドじ2゛
ポートは結実用バスi 33に結ばれたボートである)
を制御する。 FALU 450イネーブル制御(5):このフィール
ドはデータの内部多重化と入出力レジスタのローディン
グ、つまり、Xボート・マルチプレクサ制御、Yボート
・マルチプレクサ制御、イネーブルXボート・レジスタ
・データ・ロード、イネーブルYボート・レジスタ・デ
ータ・ロード、イネーブルZレジスタ・ロードを制御す
る。 サイクル長さ(4):命令のサイクル長さを定義する。 これらは28nsから98nsの範囲であり、7ns刻
みで定義できる。 (以下余白) FMPYまたはFALU状況選択(1)中、 FklI
’Y4’loまたはFALIJ450のどちらかを選択
して状況バスを駆動する。 条件コート選択(5)・テストすべき条件を次の中から
1つ選択する。つまり、真強制(省略時の条件)、FP
W屓T、桁上げ(FALU)、ゼロによる割り算(FM
’PY)、問題状況(ゼロによる割り算)、問題状況活
動、CPオプション・ビット、Xデータ有効、Yデータ
有効、最後に転送されたデータのアドレス(つまり、偶
数か奇数)、マイクロコード・ループ、ゼロ、否定、割
込みフラグ、数字でない(NAN)、丸め、問題のオー
バフロー、問題のアンダフロー、問題の不正確、問題の
無効演算、問題の非正規化。これらのうち最後の10個
はFMPY440またはFALII450から取り出す
ことが可能である。 中断点(1):この命令に中断点が設定されていること
を示すために設定される。 FPDONE設定(1) :FPDONE状況フラグが
制御プロセッサ・モジュール110インタフエースで設
定されると、計算が完了したことが)両部プロセッサ・
モジュール110に通知される。 スワ・ンブ(1) レジスタ・ファイル内のソフト2
重バッファを交換することを要求する。この交換は、制
御プロセッサ・モジュール110と浮動小数点プロセッ
サ・モジュール130が共にスワップを要求するまでは
行なわれない。 スクラッチパッド制御(3):このフィールドはスクラ
ッチパッドとそのアドレス・カウンタの動作を制御する
。1つのビットはスクラッチパッド・メモリの書込みイ
ネーブルであり、他の2ビツトはアドレス・カウンタ操
作をロード、増分、減分、保留の中から選択する。 結実用バス出 選択(2):このフィールドは結実用バ
ス433を駆動するソースを選択する。ソースとなり得
るものには、FALU、 FMPY 440、スクラッ
チパッド・メモリ・データ、スクラッチパッド・メモリ
・アドレスがある。 スタック制御(2):このスタック制御フィールドは戻
りアドレスがブツシュ、ポツプまたは保留されるように
サブルーチン・スタック・ロジックを:tlJ御する。 ループバック書込みイネーブル(1):このビットはル
ープバック・ボート430Eを通してレジスタ・ファイ
ル430で書込みサイクルをイネーブルする。これによ
り、最初のオペランド・バスにあるデータが書込みボー
ト430Dで指定されているアドレスに複写される。奇
数と偶数の書込みイネーブルはレジスタ・ファイル43
0のどちらのバンクにデータを書き込むか、あるいはそ
れを両方に書き込むかどうかを選択する。 肌塁旦店ff1(IN(2):このフィールドはこのサ
イクルで生成された状況を問題状況に組み入れるか、問
題状況をクリアするか、保留するかを選択する。 m Ftt 65−二ム駄旦」u:これらの2ビツトは
FALt1450とFMPY 440内のXとYレジス
タに送り込まれるデータの多重化と2ポートから送り出
される倍精度結果の多重化を制御する。 日A6の使用:このビットはすべてのボートのレジスタ
・ファイルに対する最上位アドレス・ビットが1Iy2
接サイクルの間開じままであるとぎマイクロコード・
アセンブラによってセットされる。これはこのような場
合のサイクル時間を短縮するために使用される。 プログラムl麿れのf列 以下は疑似コードで書かれた簡単なプログラム例である
。この例は、新規な機能がどのように実行効率を向上さ
せるかを示したものである。 この例の動作図は第42図に示されている。この例で注
意すべきことは次の通りである。 犬かフこで囲んでまとめて示されている命令は並列に実
行されるものである。 通常、乗算はルーチンを通るバスごとに行なわれる。し
かし、これはルーチンを簡略化するために4つに減らさ
れている。 2重バッファリングはマイクロコードから見えない。 実行される計算式はC[nl = A[n]+B[nl
である。 ただし、nは0.、、:Iの範囲であり、8個のオペラ
ンドと4個の結果はレジスターファイル内の固有アドレ
スにおかれる。これらの参照の1つにある° (初期値
)は対応する要素の反対の要素、つまり、バッファが交
1^される前に2重バッファの反対側にある要素を示す
。 乗算ルーチンは別表に示す通りである。 (以下余白) 男11 表 FPベクトル乗算ルーチン(疑似コード)MUL3:
(Read Ajll and n(B from r
egister 1ife。 Do ’ re!Iult O=
O” OMULE: (Read IIIJ2
1 and B[21from regisLer f
ile。 Do caIcc山aion、 result Ra1
l −A[υ” B[11゜Write vslue
or result O1nto ’ fl
le at 0(Read AJ31 and B[
31hm register flle。 Do aalcuLation、 remnt R[2
1−A[2]°B[21゜Write value o
r result Roll 1nto regist
er (ie at Ca1l。 Te5t FT’W V true ’
to else continue ”(D
o calculation、 rwulL R[3]
= A[3]中B[3]。 Write value orrea+1t R[2]
1nto p −at C[2]Ta5t
true’ to
’(WriteV81ue orrwulL R[3
11nto $ file at C[3]Set F
T’DONE and 5W2Ip buffersT
est FPWArr fksg、 K true j
ump to MULil else jumpい MULI: (−に[01and B’[Ol 伝雇ケ
ー細r [e。 Do aaleuLation、 reault R[
3] = Aj3] ” B[3]。 Write value of readt 1
nto file at(−に[1] and B
’[1] 1rcym register file。 Do calculation、 rewm R’[0
]−に[01” B’[01゜Write value
or−t R[3] inI−leat C[3]S
et FPDONE and 5vnap buffe
rs。 MULE: (Raad A’[Ol and 11’
[0] from register rye。 Write value cfresult R[31
1nto registerfile at Q31S
et FPDONE and gwap buffer
s。 馳 このルーチンについて注目すべき点がいくつかある。 このルーチンはすべてのサイクルでFPUが使用中であ
ることを保つように最適化されている(ただし、そのた
めのデータがあることが条件)、もっと単純で効率が劣
る版には、命令MtlL5とそれ以上が備わっていない
。 8対の数を乗算するようにこれを拡張するために、MU
L4にある命令はレジスタ・アドレスが変わるたびに4
回繰り返される。 すべてのサイクルでFPUを動作状態に保つためには、
交換を行なわないで2重バッファの反対側からデータを
アクセスする必要がある。これは命令MUL5とそれ以
上で使用される。 次の組のデータが用意されている限り(つまり、FPW
^ITが偽である)、制御プロセッサ・モジュール11
0と同期をとる時間の無駄がない。 デバッグ・ハードウェア 浮動小数点プロセッサ・モジュール130上のデバッグ
・ハードウェアは制御プロセッサ・モジュル110やブ
タ重云送フ゛ロセッサ・モジュール120に含まれるも
のよりも機能に制約があるが、これはそこで実行される
マイクロコードが非常に単純化されているからである。 レジスタ・ファイルへのアクセスは局所転送バス422
を通して行なわれるので、モニタ・マイクロコードによ
って読み書きができるようになっている。FMPY 4
40とFALtl 450は直列走査ロジックが組み込
まれているので、このロジックによって内部バイブライ
ン・レジスタと状況/モード・レジスタがアクセスでき
る。次のマイクロコード・アドレスは開始アドレス・レ
ジスタ479をアクセスすることによって制御プロセッ
サ・モジュール110がアクセスできる。 中断点ロジックはマイクロコード語の中のあるビットを
使用して、中断点を定義する。中断点ビットが設定され
た命令が現れると、クロック発生a構は中止され、制御
プロセッサ・モジュール110のインタフェースにある
中断点状況信号がセットされる。中断点から継続するた
めに、制御プロセッサ・モジュール110はクロック発
生機構に送り込まれた中断点人力をクリアする。中断点
直後に十分な内部状態が格納されると、制御プロセッサ
・モジュール110はある浮動小数点プロセッサ・モジ
ュール130のマイクロコードの実行を開始しく開始ア
ドレス・レジスタの仕組を通して)直接アクセス状況と
スクラッチパッド・メモリをアクセスする。 マイクロコードは、1ステツプ進めるルーチン内のすべ
ての命令で中断点ビットをセットすることによってのみ
1ステツプ進めることができる。 デバッグ機能をサポートするもう1つの特徴は、サブル
ーチン−スタックを読み取ることができることである。 (以下余白) アプリケーション向きプロセッサ・モジュール第n図は
アプリケーション向ぎ数値処理モジュール130゛を備
えた数値高速化サブシステムの概要図である(これは「
アルゴリズム高速化機構jとも呼ばれる)。用意されて
いる強力な制御ツールを使用すると、制御プロセッサ1
10は1つまたは2つ以上の数値処理モジュール+10
と1つまたは2つ以上のアルゴリズム高速化機構130
゛とを任意に組み合せた形で制御することができる。 汎用浮動小数点機構130を1つまたは2つ以上のアル
ゴリズム高速化機構130゛と組み合せると、特に利点
が得られる。この種の結合システムでは、汎用浮動小数
点演算を必要とするいう制約から解放されて、アルゴリ
ズム高速化機構130゛を設計することができる。従り
て、アルゴリズム高速化機構は必要ならば、高度にアプ
リケーション向きの設計にすることができる。 特に利点のある組合せは、複合演算モジュールをモジュ
ール130′の1つとして含めることであアプリケ−シ
コン向さプロセッサはアプリケーション向き数値プロセ
ッサであることが好ましい。しかし、アプリケーション
向きプロセッサは任意的に(好ましさの点では劣るが)
、記号プロセッサ(つまり、1J5PまたはPROLO
Gを窩効率で実行させるとき必要になる追加のデータ通
路を備えたプロセッサ)や中立ネットワーク・マシンな
どの特異なプロセッサにすることち可能である。 複数の数値プロセッサ・モジュール130 (アルゴ
リズム高速化機構を含む)の制御について以下説明する
。 FFT高速化モジュール 第9B図はアルゴリズム高速化機構130°の1例のア
ーキテクチャが汎用浮動小数点モジュール130のそれ
とどのように異なるかを図式化して示したものである。 図示のモジュールは層数的積分変換操作を行なうように
特に最適化されている。例えは、このモジュールは高i
!フーリエ変換(FFT)アルゴリズムを高速に実行す
る。このアルゴリズムの実行例について以下検91する
ことにする。 第9B図の実施例では、レジスタ・ファイル91゜はレ
ジスタ・ファイル430よりも高度化された多重ボート
を備えている。レジスタ・ファイル910は4個の読取
りボートと4個の書込みボートのほかに、キャッシュ・
バス144 とのインタフェースとなる広幅両方向ボー
ト910八を備えている。 読取りボート910Bとして示されている4木の線は実
際には折り返されている。実行される乗算は乱数乗算で
ないのが代表的であるが、係数(これはデータ語はどに
変化することが少ない)による乗算であるので、サイク
ルの大部分ではサイクル当たり1つだけの複合語の入力
が必要である。 (しかし、このことは最終サイクルでは該当しない、) 4つの乗算機構920は整数または浮動小数点機構にす
ることが可能である。これらは上述した乗算機構と同じ
にするのが最も好ましいが、勿論側の計算機構の使用も
可能である。これらの機構は新しい係数の読取り指示が
あるまで、係数をレジスタに保持している。 従って、4つの乗算機構920と加算機構930で完全
な複合乗算機構9+1を構成することかてきる。複合乗
算機構911は2つの複合アドレス912とバイブライ
ン化されている。 2つの複合加算機構912に対する人力には、複合乗算
機構911の出力だけでなく、遅延ブロック940経由
で送られてきた読取りボート!1101’、からのデー
タが含まれる。(この遅延ブロックは任意的にレジスタ
・ファイル910上のボー1=910Bと910 Cを
共用するために使用することもできる。) 複合加算機構の出力は書込みボート910Dに結ばれて
いる。 従って、この構造によると、バタフライ計算を非常に効
率よくバイブライン化することができる。 データ・キャッシュ・メモリ・モジュール目0データ・
キ〜・ツシュ・メモリ(1士高パンF (;iF域)幅
の大容量メモリである。記fQ容塁は現在では2Mnで
あり、バンド幅は毎秒320M11である。このメモリ
は多重ボー1〜を備えているので、外部世界とのデータ
転送を浮動小数点計算と並行に行なうことができる。計
算が「調歩」式で行なわれて、浮動小数点プロセッサ・
モジュール130が長時間アイドルになるのを防止する
。 第5図はデータ・キャッシュ・メモリ・モジュール14
0の主要機能を示している。このモジュールの中心とな
るのは、大きなメモリ・ブロック510である。本好適
実施例では、このメモリ・ブロック510は8個のシン
グル・イン・ライン・モジュールで構成され、各々は8
個の32にx8 SRAM5を備えているので、総計2
メガバイトのメモリになっている。しかし、当業者なら
ば容易に理解されるように、このメモリ構成は高度半導
体部品の供給変化や特定アプリケーションの要求に応じ
て変更することが可能である。 特に、ある種のアプリケーションでは、メモリ容量を大
きくすると利点が得られる。このメモリ・バンク510
で×256構成を使用すると、少なくとも完全な並列ア
クセスの場合には、アドレス空間の使用効率が向上する
。従って、本好適実施例では、24ビツト・アドレス情
報がアドレス入力511 にあるメモリ・バンク51O
に人力される。書込みイネーブル人力512は実際には
8ビツト幅であるので、1つの256ビツト・メモリ・
ブロック内の個々の32ビツト語が書込みのために選択
できる。これは下述するような利点が得られる。データ
・ボート513は256ビツト幅である。ブロックの機
能には、まだモジュール140全体がもつような多重ボ
ート機能を備えていない。この多重機能を実装するため
のロジックとメモリ・バンク510をアクセスするため
のロジックについて、次に説明する。 第5図の下方に示したのは制御プロセッサ110に結ば
れた32ビツト幅データ・バス(CDバス112)と、
データ転送プロセッサ120に結ばれた32ビツト幅バ
ス(TDババス22)である。これらのバスの各々はま
ず保持レジスタ・バンク560に送り込まれる。レジス
タ・バンク560の各々は並列の8個の32ビツト幅レ
ジスタ551 を備えている。(本好適実施例では、こ
れらのレジスタ561の各々は実際には、書込み保持レ
ジスタ561°が読取り保持レジスフ56ビと並列にな
るように構成された4個の74A1.5852装置を使
用して構成されている。レジスタ・セット56〇八、5
60B、420の構造は第42図に詳細が示されている
。 メモリ・バンク510がアクセスされるには、アドレス
をボート511から得る必要がある。このアドレスはマ
ルチプレクサ520を通して、CAババス11 (こ
のバス上には制御プロセッサから出されたアドレスが送
られる)からか、TAババス21(このバス上にはデー
タ転送プロセッサ・モジュール120から出されたアド
レスが送られる)から与えられる。選択人力521はこ
れらの入力のどちらをアドレス・ボート511 に送る
かを選択する。 マルチプレクサ520に対する選択人力521は仲裁ロ
ジック530によって生成される。この単純なロジック
は、DTPがアクセスを要求し、CPがア、クセスを要
求していない場合だけ、DTPモジュール120へのア
クセスを許可する。選択信号521はアドレス・マルチ
プレクサ520にだけでなく、書込みマスク・マルチプ
レクサ530とDTP転送ロジック540にも送られる
。 下述するように、書込みマスク人力5!2はTDババス
22またはCDバス122からの書込みのときに非常に
利点がある。書込みイネーブル人力512は分解能が8
ビツトであるので、各メモリ・ブロック510内の8個
の32ビツト語は、1回の完全並列書込み操作時に個別
的に書込みイネーブルさせることができる。従って、例
えば、制御プロセッサ110が8未満の語をメモリ・バ
ンクのある行に書き込むことを要求したときは、必要と
する語位置のレジスタ561に必要とするデータ値がア
ップ・ロードされる。さらに、8ビツトが書込みマスク
線551に送出されて、レジスタのどちらにアドレス5
11 ((:Aバス111からの)で指定された行に
あるメモリ・バンク510の対応する語に書き込むべき
かを示している。(上述したように、CA)<ス111
からマルチプレクサ520へのアドレス転送はIPU
340め出力によって制御される。)第25図は書込み
マスク・ロジックを別の見方で見たものである。同図に
おいて、FP書込みマスク・ロジック251O2CP書
込みモニタ・ロジック2520、およびQ7p 書込み
モニタ・ロジック2530は3つの別ブロックに分割さ
れて、マルチプレクサ530に対する人力となっている
。第26図は書込みモニタ・ロジック・ブロックの動作
をもっと詳しく示したものである。ロジック261Oに
対する人力には、レジスタ選択、全部書込み、DCM書
込み、保留レジスタ・ロードなどがある。出力は8個の
フラグ・ビットであり、レジスタ2620に格納されて
いる。 転送ロジック540はデータ転送プロセッサ120内の
マイクロコード命令列の一部であるマイクロコード命令
フィールド542によって駆動される。 同様に、CD転送ロジック550は制御プロセッサ・モ
ジュール110のシーケンサ210によって駆動される
マイクロコード命令の一部であるマイクロフード命令ビ
ット552にj:って駆動される。(実際には、このシ
ーケンサによって駆動されるマイクロコードの一部は分
散しておくのが好ましい。つまり、マイクロ命令のフィ
ールドの一部は制御記憶機構220から切り離して保管
されるが、シーケンサの出力である一連のマイクロ命令
アドレス211によってクロックがとられている。これ
により、システムから見て大幅な利点が得られるが、こ
れについては下述する。) 転送ロジック540と550の他の出力543と553
には、それぞれのレジスタ・バンク560の制御といっ
た制御機能があるが、この中にはクロッキングと出力イ
ネーブルが含まれる。(レジスタ・バンク560の各々
は、レジスタ・バンクの両側に2つの出力イネーブルと
、2組のクロックをもっている。また、CP転送ロジッ
ク550によって制御される機能の1つとして、メモリ
・バンク510の出力イネーブル線514がある。) キャッシュ・バンク510へのアクセスを要求するため
にFPモジュール130からの直接人力はないが、これ
は、この種のアクセスは1゜制御プロセッサ・モジュー
ル110によって制御されるからである。こうすると、
下述するように、大幅な利点が得られる。 メモリイ1が成 高速化サブシステムは広幅メモリ・アーキテクチャを採
用している。データ・キャッシュ・メモリ140をアク
セスするたびに、256ピツトが読み書きされる。これ
はサイクル当たり8個の浮動小数煮詰に相当する。 データ・キャッシュ・メモリ140は3ポートで制御プ
ロセッサ・モジュール110、浮動小数点プロセッサ・
モジュール130、およびデータ転送プロセッサ・モジ
ュール120に結ばれているが、制御プロセッサ・モジ
ュール110と浮動小数点プロセッサ・モジュール13
0によるアクセスは制御プロセッサ・モジュール110
のマイクロコードによつて制御されるので、仲裁とアド
レス多重化は2通りの方法だけで行なわれる。 データ・ボー1〜 データ・キヤツシユ、・メモリと結ぶボートは3つある
。Fl)モジュールにつながるボートは256ビツト幅
であり、制御プロセッサ・モジュール+10とデータ転
送プロセッサ・モジュール120の各々からはそれぞれ
32ビツト幅ボートとして見える。 32ビツト幅ボートに対するデータ経路と記jQ装置は
データ・キャッシュ・ブロック+40の一部に含まれて
いる。 メモリ配列から32ビツト・バスの1つに送られる25
6ビツト・データの多重化は32個の両方向レジスタを
通して行なわれ、これらのレジスタは4個ずつ8群に配
置されている。各群は読取り方向に32ビツト(つまり
、浮動小数煮詰の1語)を、書込み方向に32ビツトを
格納する。これは保持レジスタと呼ばれる。各レジスタ
を特定して名前を付けると、インタフェースのプロセッ
サ側から見て、読取り保持レジスタおよび書込み保持レ
ジスタとなる。 データがメモリ配列から読み取られるときは、256ビ
ツト全部が保持レジスタに格納され、これらのレジスタ
の出力イネーブルは必要とする浮動小数煮詰を選択して
32ヒツト・ボートに送出するように制御される。 データがメモリ配列に書き込まれるときは、32ピツ)
・・ボートから更新されたレジスタだけが格納される。 これは書込みマスク・ロジックによって制御され、各群
ごとに1つの割合で8個の書込みイネーブルを使用して
達成される。 32ビツト・ボートは両方ともデータ経路と記憶装置ロ
ジックが同じになっている。 浮動小数点プロセッサ・モジュール130につながる2
56 ビット・ボートは32ビツト・ボートと同じよう
なロジックを備えているが、浮動小数点プロセッサ・モ
ジュール110上に置かれている。データ・キャッシュ
・メモリを、モジュールを使用して将来拡張できるよう
にするために、アドレス・バス(24ビツト)と書込み
イネーブル(8)はモジュール・コネクタ3810 (
第38A図と第38B図に図示)に結ばれている。 CP転送ロジック CP転送ロジックはCP保持レジスタ(またはFP保持
レジスタ)とデータ・キャッシュ・メモリ間のデータ転
送を担当する。 保持レジスタにあるデータはCDソース・マイクロコー
ド・フィールドが読取り保持レジスタを選択したときア
クセスされる。CPアドレス・バスの最下位3ビツトは
駆動すべき32ビツト語を選択してバス上に送り出す。 この過程では、データ・キャッシュ・メモリは使用され
ないが、必要ならば次の組のデータをアクセスすること
が可能である。 データを書込み保持レジスタに書込むときは、CD宛先
マイクロコード・フィールドは保持レジスタをグループ
として選択し、CPアドレス・バスCAIIIの最下位
3ビツトは更新すべき32ビツトを選択する。書込み保
持レジスタが更新されるときは、対応する書込みフラグ
がセットされる。従って、データ・キャッシュ・メモリ
に対する書込みが行なわれるときは、制御プロセッサ・
モジュール■0によって更新された保持レジスタたりが
実際にメモリ配列に書き込まれる。対応する保持レジス
タが更新されていないメモリ配列内の語は変更されない
。データ・キャッシュ・メモリに書込みが行なわれると
(データ・ソースが制御プロセッサ・モジュール110
である場合)、書込みフラグはすべてリセッI・される
。制御プロセッサ・モジュール110がデータ・キャッ
シュ・メモリへの書込みと同じサイクル時に書込み保持
レジスタの1つを更新していた場合は、その書込みフラ
グはセットされたままである。 例えば、メモリをある定数値にクリアするときこの選択
的書込みメカニズムをバイパスすると好都合の場合があ
る。その場合には、制御プロセッサ・モジュール110
は選択的書込みを無視して、すべての語を更新させるこ
とができる。この選択的書込み機能を使用しないと、デ
ータ・キャッシュ・メモリの書込み動作は非富に遅くな
り、データ・ブロック(256ビツト)を読取り保持レ
ジスタに読み込み、変更すべきでない語を書込み保持レ
ジスタに転jXシ、書込み保持レジスタを新しいデータ
で更新してから、データ・キャッシュ・書込みサイクル
を実行することになる。現アーキテクチャでは、データ
を読取り保持レジスタから書込み保持レジスタに複写す
るには、1語当たり1サイクルが必要である。 書込みフラグの状態はマイクロコードのデバッグ時に状
態格納のために、制御プロセッサ・モジュール110に
状態を壊さないで抽出させることが可能である。 読取り保持レジスタは書込み保持レジスタとは別になっ
ているので、書込み保持レジスタの内容を壊さないで複
数の読取りサイクルを実行することができる(逆の場合
も同じ)。 保持レジスタ・セットとデータ・キャッシュ・メモリ間
のデータ転送を制御するときは、次のようなビットがイ
吏用される。 データ・キャッシュ・アクセス(1):このビットは制
御プロセッサ・モジュール110が自身で使用するため
に、あるいは浮動小数点プロセッサ・モジュール130
とのInでデータをやりとりするためにデータ・キャッ
シュ・メモリへのアクセスを要求すると、活動化する。 アクセス・フラグはパイプライン化されていない。従っ
て、データ転送プロセッサ・モジュール+20からの要
求との仲裁は要求が行なわれたサイクルが始まる前に解
決することができる。 データ・キャッシュ書込みイネーブル(1):このビッ
トはデータ・キャッシュ・メモリで書込みサイクルを生
成する。 データ・キャッシュ書込みオール(1)、このビットは
データ・キャッシュ・メモリ内の語を選択的に更新する
通常の書込みイネーブル・ゲート操作を無効にして、す
べての語を書き出すようにする。これは、メモリをブロ
ック単位で定数値にセットするとき便利である。 データ・キャッシュ・ボート選択(1):このビットは
データ・キャッシュ転送のソースまたは宛先として、F
Pモジュール保持レジスタか制御プロセッサ・モジュー
ル110保持レジスタのどちらかを選択する。 モート・レジスタには保持レジスタを制御する3ビツト
がある。2ビツトは保持レジスタを使用するか、バイパ
スするかを選択する。3番目のビットはデータ・キャッ
シュ・メモリがDCMを駆動するのを禁止して、書込み
保持レジスタと読取り保持レジスタの間にループバック
・データ通路がセットアツプされるようにする。これら
の機能が存在するのは、状態格納および復元マイクロコ
ードがデータ・キャッシュ・メモリの書込み)桑作を最
初に行なわないで書込み保持レジスタとさらにより正確
な診断情報をアクセスできるようにするためである。 制御プロセッサ・モジュール110は次の2通りの方法
でデータ・キャッシュ・メモリを使用することができる
。 最初の方法は広幅メモリ・アーキテクチャを無視して、
それが丁度32ビット幅であるものとして扱うことであ
る。この場合は、CPモジュール110はすべての読取
りアクセスの前とすべての書込みアクセスのあとてアク
セス・サイクルを要求するだけである。この方法を便用
−・)−ると、データ・キャッシュ・メモリをデータ・
アクセスがパイプライン化されたメモリと見ることがて
きる。この方法はデータ・キャッシュ・メモリの使用を
節単に1−るが、データ中云送フ゛ロセ・ンサ・モジュ
ール120のボートにサービスでとるメモリの能力を効
率よく使用できない。また、この方法によると、制御プ
ロセッサ・モジュールllOか順次データをアクセスす
るときに非効率が生じる。しかし、非順次データ・アク
セスの場合は、次の方法は使用できないので、この最初
の方法を使用せざるを得ない。 制御プロセッサ・モジュール110が順次メモリ・アク
セスを行なうとき、メモリ・バンク510をアクセスす
るたびに、すへての保持レジスタ561に対する読み書
きに8サイクルが必要である。データ・キャッシュ・メ
モリ・アクセスは保持レジスタ・アクセスとパイプライ
ン化できるので、8サイクルのうち7サイクルをデータ
転送プロセッサ・モジュールか自由に使用することかで
きる。 データ・キャッシュ・メモリ・アクセスは1」動的に行
なわれないので、マイクロコードて8サイクルごとにア
クセス・サイクルを指定できる。この種の転送は、外部
インタフェースとのi?Uの入出力転送が性質上順次で
あるのが通常であるので、ブタ中云逢フ゛ロセ・ソサ・
モジュール120てよく行なわれる。 制御プロセッサ・モジュール110はデータ・キャッシ
ュ・メモリとFPモモジュール上保持レジスタ間のデー
タ転送も担当する。その場合には、基本制御はデータ・
キャッシュへの書込み時にあるブロック内のどの語を更
新するかを判断する場合以外は同じである。その場合、
上述したように書込みフラグに対して別の方法が取られ
る。 違いのいくつかの要因を挙げると、次の通りである。 FPのレジスタ・ファイルと保持レジスタ間のデータの
流れを制御する転送ロジックにはある種の制約があるの
で、制御プロセッサ・モジュール110で使用されてい
るより汎用的マスク生成機構は不要である。 Fl”のレジスタ・ファイルから゛の通常のデータ中云
送はデータ・ブロック単位(つまり、ベクトルの一部)
で行なわれ、これが1転送サイクルで行なわれるときは
、いくつかの書込みマスク・ビットを制御プロセッサ・
モジュール+10の場合のように個別的にではなく、並
列にセットしなければならない。 1つのFP書込みマスク生成機構は複数のFPモジュー
ルと競合しなければならない。 FP書込みマスクは更新すべき語と最初の語からの連続
語の個数を指定することによって生成される。開始位置
はCPアドレスの最下位3ビツトによって与えられ、長
さはマイクロコード命令のフィールドとして保存されて
いる。 DPT転送ロジック540 データ転送プロセッサ・モジエール120の転送ロジッ
クはデータ転送プロセッサ・モジュール+20のデータ
・バス(TCバス122)とメモリ配列器のデータ転送
を担当する。これは次の点を除けば′C1ν転送ロジッ
クとほぼ同じである。 浮動小数点プロセッサ・モジュール120に関連する部
分がない。 出力信号は仲裁ロジックの結果によって修飾される。 仲裁ロジック535 仲裁ロジックはサイクル単位で誰にデータ・キャッシュ
・メモリをアクセスさせるかを判定する。競合する2ボ
ートには、CP/FPとデータ転送プロセッサ・モジュ
ール120がある。CP/FPはデータ転送プロセッサ
・モジュール120より優先権があるので、データ転送
プロセッサ・モジュール120が空きメモリ・サイクル
を待たされることになる。データ転送プロセッサ・モジ
ュール120は制御プロセッサ・モジュール110に割
込みをかけることによって、制御プロセッサ・モジュー
ル+10に空きメモリ・サイクルを手放させることがで
きる。 データ・キャッシュ・メモリの仲裁は両方のホトのアク
セス要求(Cr’/FPの場合は要求)を同期化−・J
−ることにJ:つて単純化されている。これは同しクロ
ック生成機構を制御プロセッサ・モジュール110とデ
ータ転送プロセッサ・モジュール120間て共用させる
ことで達成される。この程度の同期化かないと、データ
転送プロセッサ・モジュール120がアクセスを始めた
ばかりの場合もあるので、制御プロセッサ・モジュール
110があるサイクル時にアクセス権があると想定でき
なくなる。 サイクル単位の仲裁は仲裁ロジックで行なわれる。仲裁
ロジックはCP要求とDTP要求の2つの要求18号を
受は取る。これらは共に、そのボートがデータ・キャッ
シュ・メモリをアクセスすると主弓長されるマイクロコ
ード・ヒ゛ットである。これらのマイクロコード・ビッ
トはレジスタに格納されないので、仲裁はアクセスが行
なわれる前にそのサイクルで解決される。これにより、
データ転送プロセッサ・モジュール120の許可信号は
、シーケンサのFL八八人人力バイブライン化によって
起こる余分のサイクル遅延を引き起さないで、十分な時
間的余裕をもってデータ転送プロセッサ・モジュール1
20にテストさせることかできる。 2つの出力信号として、データ・キャッシュ・メモリへ
のアクセス権かあることをデータ転送プロセッサ・モジ
ュール+20に知らせるDTI’許可信号と、アクセス
と書込みイネーブル・マルチプレクサを制御する信号と
がある。 CP/FPは、データ・キャッシュ・メモリをそれが1
ボート装置であるものとしてアクセスする。 しかし、データ転送プロセッサ・モジュール120はア
クセスを要求するたびに、以下のプロシージャに従わな
ければならない。このプロシージャは疑似コードで書か
れている。 (保持レジスタに書込みを実行) (アクセスがWAITへのジャンプに失敗したWAIT
:場合は、データ・キャッシュ・メモリへの書込みアク
セスを要求、そうでなければ、継続) (他の作業の実行) この例に関して注目すべき点をいくつか挙げると、次の
通りである。 このロジックは大量の作業を並行に続行させることかで
きる。 アクセスが失敗すると、書込み(または読取りアクセス
での保持レジスタのローディング)は自動的に禁止され
る。 テスト結果には、アクセスが成功したか否かが示される
。失敗した場合は、データ転送プロセッサ・モジュール
120は、アクセスする命令をループさせることによっ
て再試行する。 この例から明らかなように、データ転送プロセッサ・モ
ジュール120はアクセスが許可されるまで待たされる
ことになる。しかし、通常はいくつかのサイクルの間だ
け待たされることになる。アクセスがそれでも許可され
ないと、DTPは制御プロセッサ・モジュール110に
割込みをかけることになる。制御プロセッサ・モジュー
ル110が割込みサービスを行なっている数サイクルの
期間、データ・キャッシュ・メモリは空きになるので、
データ転送プロセッサ・モジュール120がアクセスす
ることがてきる。 コマンド・メモリ190 コマンド・メモリ190を通して、制御プロセッサ・モ
ジュール+10とデータ巾云送プロセッサ・モジュール
120は相互に連絡し合うことができる。 双方はこのメモリに対しては平等のアクセス権をもって
いる。本好適実施例では2重ポートIIへMが使用され
ている。コマンド・メモリは32ビツト1眉x 2に
奥行である。 第15図はこのメモリ構成の重要な機能のいくつかを示
したものである。コマンド待ち行列の動作について、以
下第15図を参照して詳しく説明するが、そこではCP
モジュールとDTPモジュール間のプロセッサ・イン役
フェースについても説明する。しかし、このメモリ構成
のいくつかの主要機能についてここで説明しておく。 これらの2重ボートRAMは、2アドレスが異なるとぎ
は、両ボートが無制約にアクセスできるようにする。2
アドレスが同じであり、両方の側が害込みを行なう場合
は、1.21果がどうなるか分からない。下述するよう
に、2プロセッサ間の通信プロトコルは、両方が同じア
ドレスに書き込むことがないようになっている。 :CIJ iJlプロセッサ・モジュール110 とデ
ータ転送フロセッサ・モジュール120かコマンド・メ
モリをどのように使用するかはソフトウェアで制御され
る。本好適実施例では、割振りは次のようになっている
。つまり、CPモジュール110に対するコマンド待ち
行列(例、メモリ・スペースの約1290DTPモジユ
ール120に対するコマンド待ち行列(例:メモリ・ス
ペースの約38駒、状態格納と復元データ構造(例:メ
モリ・スペースの約50%F)。 状態格納と復元データ構造はマイクロコード・デバッグ
・モニタが制御プロセッサ・モジュール110と浮動小
数点プロセッサ・モジュール130の状態情報(ある種
のコマンド構造と共に)を保管しておくために使用する
ために予約されている。 ポスト・インタフェース・ロジック160第6図は、第
1図にその全体がブロック160でボされているポスト
・インタフェース・ロジックの主要構成要素を示してい
る。好適実施例では、システム・バスはVMEバスであ
るので、このインタフェース・ロジックは未明細書中で
はr VMEインタフェース」と呼ぶ場合もある。しか
し、当業者なら明らかなように、他のシステム・バスを
幅広く使用することも可能であり、開示されている新規
事項はこの種のシステムに容易に適用することが可能で
ある。 バス・コントローラ550はVMEバス・サービス線と
のインタフェースとなって、バス許可、バス要求、リセ
ットといったインタフェース信号を出力する。 割込みロジックft80は割込み処理で使用され、ホス
トに割込み通知を行なう。(これらの割込みはVMEバ
ス・サービス11600B上に送出される。)本好適実
施例では、これは下述するように、PALを用いてイ、
+ζ築されている。 さらに、IIM八コシコンーラ640も用意されている
ことが9Tましい。これはVMEバスとFIFO670
間のデータ処理を低レベルで制御するもので、途中に介
入するステップをデータ転送プロセッサ・モジュール+
20に監視させる必要がない。本好適実施例では、DM
Aコントローラは下述するように、PALを用いて構築
されている。 VMEインタフェースは主に、次の4つのサービスをホ
スト・プロセッサに提供する。 3種類のプロセッサ・モジュールとの直列走査ループ・
インタフェース経由のマイクロコード・ローディング。 コマンド起動と状況監視 DMAによるホスト・メモリへのアクセスによりVME
アドレス空間との間のデータ転送(これにより、サブシ
ステムは独自のデータを転送できる)デバッグ(ハード
ウェアとソフトウェア)機能。 このインタフェース・ロジックの内部接続にはデータ用
のTDババス22 とアドレス情報用のTババス+21
、 CPマイクロアドレス・バス21111. DT
I’マイクロアドレス・バス:Ill[l、直列マイク
ロ命令ループ225、および多数の割込み線と状況線が
ある。 木実層側では、外部接続はVMEバスとの接続である。 このバスの線は第6図にアドレス線60〇八、データ線
[100B、およびバス・サービス線(状況線と制御線
を含む) aoocとして別々に示されている。 本好適実施例はVMEインタフェース規格の電気的定義
に準拠している。この規格はIEEE標準P1014/
D1.2およびIEC821として知られている。 インタフェース・ブロック160は32または24ビツ
ト・アドレスと32または16ビツト・データを受は付
ける。本好適実施例では、アドレス指定とデータ・ルー
チンを単純化するために、使用できるアクセスのタイプ
に若干の制約がある。 別の方法によれば、他のバス構造を幅広く使用すること
も可能である。例えば、必要ならば、VersaBus
、 FutureBus、 Multibus If
Nubusなどを簡単にシステムに組み入れる設計にす
ることが可能である。高速コンピュータ・システムの場
合には、光フッ・イバに変調固体素子レーザを使用して
先バスを使用すると利点が得られる。 物理バス線とのインタフェース VIIEバスと直接インタフェースとなるロジック・ブ
ロックについて最初に説明する。そのあとで他のロジッ
クとメモリ・ブロックについて説明する。最後に、レジ
スタ・ブロック612について説明する。このレジスタ
・ブロックは、他のブロックの動作を分かりやすくする
ために、かなり詳しく説明されている。 バス・コントローラ650 バス・コントローラ650はバス・サービス線600C
とのインタフェースとなり、ボード・アドレス・デコー
ダ652からその特定ボードがアドレスされているかど
うかを示す出力を受は取る。 デコーダ652はVMEバスのボード・アドレス線を絶
えず監視して、このデコード出力を送出する。ホスト−
・システムによって指定されたサブシステムのアドレス
は、DrLスイッチを用いて導入時にユーザによってセ
ットされる。アドレスと1爬能コードの実際のデコート
はf’ALの中て行?2われるので、サブシステムは目
標vh+εシステムに合った構成にすることかできる。 バス・コントローラ650はVME制御プロトコルに従
って、両方向データ・バッファ620または両方向アド
レス・バッファ630にイネーブル信号を送る。 バス・コントローラ650はDMAコントローラ650
とVME割込みロジック680(および以下で詳しく説
明するように他のロジック・ブロックからの)からの状
況情報を受は取るようにも接続されている。また、バス
・コントローラ650はDMAコントローラ540.V
ME割込みロジック680、および他の多くブロック(
下述する)に制御信号を送るようにも接続されている。 バス・コントローラ650の状況と制御接続は広範囲に
わたっているので、混乱を避けるために個別的には示さ
れていない。 しかし、これらの接続は当業者には容易に理解されるは
ずである。 木好適実施例では、これはVMEバス・コン1−ロラ装
置(Signcjics 5CB6872)として構成
さ且でいる。これはマスク・インタフェースとバス・エ
ラー・サイクルを含むすべてのバス・フロトコルを取り
扱う。 マスク・モートとスレーブ・モード シMEインタフェースは2つの別個のインタフェース、
つまり、スレーブ・インタフェースおよびマスク・イン
タフェースと考えることができる。 マスク・モードでの動作について、DMAコントローラ
640と関連づけて以下説明する。 スレーブ・モードはスレーブ・アドレス・デコーダ63
2を使用して行なわれる。高速化サブシステムがスレー
ブ・モード(これはバス・コントロラ550によってデ
コードされたVMEコマンドで示される)で動作してい
るときは、コントローラ650は両方向バッファ630
を通過モードに置いて、スレーブ・アドレス・デコーダ
をイネーブルする。そのあと、スレーブ・アドレス・デ
コーダはVMEアドレス線600Aから持ち込まれたア
ドレスをデコードして、該当の装置をイネーブルする。 この場合も、スレーブ・アドレス・デコーダの出力は広
範囲に渡って接続されているので、個別には示されてい
ない。 スレーブ・アドレス・デコーダはVMEプロトコルに阜
拠する必要なりTACK生成ロジックも備えている。 VMEプロトコルの下では、現在のバス・マスクがボー
ドをアドレス指定し、そのホードはスレーブ・モードに
あるときだけ応答することができる。というのは、どの
時点でも活動マスクは1つだけが許されるからである。 (バスへのアクセスが許可されるまで、従って活動状態
になるまで待たされているマスクは多数存在することが
あり得る。)そのあと、マスクはスレーブがDTACに
(データ転送受領確認)で応答して、データを受は取
ったこと(書込み操作)またはデータを送ったこと(読
取り操作)をマスクに知らせるまで、待たされることに
なる。 データ バッファ620 これは両方向バッファであり、VMEデータ線6001
1との直接インタフェースとなるものである。 アドレス・バッファ630 これは両方向バッファであり、VMEアドレス線600
Bとの直接インタフェースとなるものである。 VMEインタフェース・メモリ660 このメモリはインタフェース150内の大きな記千怠ブ
ロックとなるものである。これのいくつかの用途は、D
TPモジュール120の動作と関連づけて上述した通り
である。 メモリ・マツプ 各高速化サブシステムは8にBのVMEアドレス空間を
使用する。このアドレス空間のベース・アドレスは8個
のスイッチによって選択される。レジスタ・アドレスは
このベース・アドレスからのオフセットとして与えられ
る。高速化サブシステム用のメモリ・マツプは2つの区
域に分割できる。 サイズが2にx 32ビツト語のメモリ区域。このメモ
リ区域の使用法はソフトウェアで制、餌1される。この
区域に納められるデータ構造のいくつかは以下に挙げる
通りである。 メモリ・スペースの下方部分を占有するレジスタ区域。 この区域は、詳しく下達するように、多くの重要な機能
用に使用される。 メモリ区域はマイクロコード・デバッガと通常の実行時
インタフェース間で共用される。 デバッガ区域には、モニタ・マイクロコードがメモリ、
FIFOなどを読み取れるようにするコマンド待ち行列
の他に、サブシステムの状態格納情報が収容される。 実行時インタフェースは主に装置ドライバがそこにコマ
ンドを追加して、B11tzマイクロコードがそこから
コマンドを削除できるコマンド待ち行列から構成されて
いる。 ハードウェアをアクセスする仕方にはいくつかの制約が
ある。これらの制約は主にハードウェアを単純化して、
それでもなお、16または32ビツト・データ・バス・
インタフェースを可能にするためのものである。制約と
は、バイ1−・アクセスがサポートされないこと、ピッ
1〜・アクセスは長語(32ビツト)境界で行なう必要
があることである。 メモリ600 とデータFIFO670は32ビツト幅
である。ホスト・システムが16ビツト・システムであ
る場合は、上位16ビツトはアクセスができない。 16ビツト・システムがメモリ内の連続アドレスに書込
みを行なう場合は、アドレスを4ずつ増やして行って、
次の記憶位置に移る必要がある。 好適なサブシステムで使用されるVMEメモリ・マツプ
は次のようになっている。 レジスタ オフセット 制御レジスタ O ストローブ・バッファ 4 状況レジスタ 4 WC5制御レジスタ08 WCS制御レジスタ112 WCSデータ・レジスタ 16 CPマイクロアドレス 20 DTPマイクロアドレス 24 データFIFO28 幅 16読み書き 16書込み 8読取り 16読み書き 8読み書き 1B読み書き 16読み書ぎ 6読み書き 32読み書き IFメモリ660 4096 32読み
書きデータPIFO670 データFIFO870はデータ転送操作における重要な
機能を備えている。 通常の動作モードでは、DMAコントローラがデータF
IFOを排他的に使用するので、データFIFOがホス
トによってアクセスされることはない。ホストは制御レ
ジスタ内のFIFOアクセス・ビットをリセットするこ
とでデータFIFOへのアクセスが可能になる。 PIFO67Gで示されたブロックは物理的に2個のF
IFOで構成され、両方向FIFOの機能をもっている
。これらのFIFOの一方はホストによって読み取られ
、他方はホストによって書込まれる。FIFOの他の終
端はDTPによってアクセスされる。(従)て、−船釣
に、ホストがFIFOに書キ出したあとでFiFOを読
み取る場合は、読み取られたデータは書き出されたデー
タと異なることになる。)ホストがFIFOをアクセス
するときは、FIFO状況をモニタして、FIFOが空
のときに読み取られたり、−杯のとぎにuFき込まれた
りしないようにしなければならない。(ポストはこれら
のFIFDを診断目的で、あるいはDMAでなくポーリ
ングされた人出力が必要である場合にアクセスする必要
があることがある。) VME″!、IJ人込ミロック680 VMEプロトコルはいくつかの割込みを用意している。 これらの割込みはDTPモジュール120によって引き
起すことができる。 DTPモジュール120は割込みベクトルも定義してい
る。ベクトルは割込み理由に応じて変更することができ
るが、割込み原因をVMEインタフェース・メモリ66
0に格納しておけば、1つのベクトルを使用することも
可能である。 DMAコントローラ640 データFIFO670とVMEパス間の順次またはブロ
ック・モードの転送がDMAコントローラ640によっ
てサポートされている。(このコントローラはより通常
の単語転送もサポートしている。) DMAアドレスは
完全な32ビツトであり、転送時に使用されるVMEア
ドレス修飾子とLONG中信号はすべて転送が開始され
る前にDTPモジュール120によってレジスタにセッ
トアツプされる。 FIFO6700反対側はDTPモジュール120によ
って一杯または空にされる(通常はデータ・キャッシュ
・メモリ140の中に)。16ビツト転送が使用される
ときは、DTPマイクロコードは32ビツト内部形式と
の間でデータをバックまたはアンバックする。 この部分がDMAコントローラとも呼ばれるのは、DT
Pモジュール120からの1侶の高水準コマンドを受け
てPIFO670との間でブロック・データ転送を行な
うことができるからである。しかし、この機能がもつ機
能は商用化されているDMAコントローラ・チップの機
能とは同じでない。通常のDMAコントローラは、活動
時にDMAアクセスで使用するものと同じバスからデー
タとアドレス情報を受は取る。しかし、DMAコントロ
ーラ640はそのアドレス情報をDTPモジュール12
0から受は取り、この情報を使用してVMEバスとのア
ドレスおよびデータ・インタフェースを制御する。 木好適実施例では、DMAコントローラ640は実際に
は4個のΔm2940 DMAビット・スライス・チッ
プに実装され、ある種の関連ロジックは下達するように
PALに実装されている。 DMAコントローラのセットアツプはDTPモジュル+
20によって行なわれ、データはVMEバス線600B
とデータFIFO670との間で転送される。 3つのアドレス指定モードが使用可能である。 これらのどれが使用されるかは、転送の種類またはシス
テム構成によって決まる。 アドレス定数保存。このアドレス指定モードはDMAが
VMEメモリにアクセスするとき同じVMEアドレスを
保存しておくもので、これは人出力ボートをアクセスす
るとき使用される。 アドレスを2ずつ増分(または減分)。このアドレス指
定モードはアクセスされるVMEメモリが16ビツト幅
だけのとき使用される。この場合は、DTPはデータを
内部で使用される32ビット語と外部で使用される16
ビツト語の間で分割またはマージする。 アドレスを4ずつ増分(または減分)。このアドレス指
定モートはアクセスされるVMEメモリが32ビット幅
であるとき使用される。 勿論、当業者によく知られているように、複数の状況信
号を使用すれば、FIFOに対するデータの扱い方を制
御することができる。例えば、この種の状況信号には、
FIFO空、FIFO半満杯などがある。 マイクロコード・ロード制御ロジック610このロジッ
クはマイクロアドレス・バス211Bと3118および
直列ループ225 とのインタフェースとなるものであ
る。(より正確には、第28図に示すように、このロジ
ックは1つの直列出力線225Aを備え、4つの帰還線
225B、225C1225D、225Eを備えている
。)このブロックの構成要素とそれが実行する機能につ
いて、第27.28、および29図を参照して以下説明
する(直列ループ・インタフェースの動作と関連付なが
ら)。 このロジックはレジスタ・ブロック612にあるCpと
DTl’マイクロアドレス・レジスタをアクセスする必
要がある。さらに、WC5指定子利(J1ルジスタもア
クセスする。これらのレジスタはレジスタ・ブロック6
12に示されているが、制御ロジックの一部と見ること
も可能である。 このロジックはフリップフロップ2720、ステト・マ
シン2740、マルチプレクサ271O1およびWCS
データ・レジスタ2730 (これはシフト・レジスタ
である)から構成されている。 レジスタ・ブロック612 多数の有用なレジスタがレジスタ・ブロック612に集
約されて示されている。このブロックに含まれる機能と
信号について以下説明する。 制御レジスタ・ビット ホストは制御レジスタを使用して、サブシステム・ハー
ドウェアの基本的動作を制御する。これらには主にハー
ドウェア・リセット機能とクロック制御が含まれる。制
御ビットは次の通りである。 CPシーケンサ・リセット・このビットはセットされる
と、C11シーケンサ210にアドレス0まてジャンプ
させ、内部シーケンサ状態をリセットする。 DTI’ シーケンサ・リセット:このビットはセット
されると、DTI’シーケンサ310にアドレス0まで
ジャンプさせ、内部シーケンサ状態をリセットする。 DTP リセット:このビットはクリアされると、DT
I’を安全状態に置くので、すべてのバスは3状態にな
る。これが主に使用されるのは、違法マイクロコード命
令でバス競合が起こるのを防止するマイクロコードをロ
ードするときである。 CPリセット:このビットはクリアされると、CPを安
全状態に置くので、すべてのバスは3状態になる。これ
が主に使用されるのは、違法マイクロコード命令でバス
競合が起こるのを防止するマイクロコードをロードする
ときである。 FPリセット:このビットはクリアされると、FPを安
全状態に置くので、すべてのバスは3状態になる。こむ
が主に使用されるのは、違法マイクロコード命令でバス
競合が起こるのを防止するマイクロコードをロードする
ときである。 VIIE FIFOリセット:このビットはクリアされ
ると、VMEデータFIFOを空の状態にセットする。 データ・バイブFIFO: このビットはクリアされる
と、データ・バイブFIFOを空の状態にセットする。 GIP FIFOリセット:このビットはクリアされる
と、GIPインタフェースFIFOを空の状態にセット
して、GIPインタフェースを初期設定する。 自走クロック:このビットはCPとDTPマイクロコー
ド・クロックを制御し、クロックを自走または停止させ
る。クロックが停止されたときは、ホストから1ステツ
プ進めることが可能である。 クロック・ディスエーブル:このビットはバイブライン
・レジスタに対するクロックを除き、CPとDTPのす
べてのマイクロコード・クロックをディスエーブルする
。これが必要になるのは、例えば中断点を設定するとき
CPまたはDTPの状態を壊さないでマイクロコードが
読み書きされるようにするためである。 自走Fl’クロック:このビットはFPマイクロコード
・クロックを制御し、クロックを自走または停止させる
。 FIFOアクセス:このビットはVMEデータFIFO
へのアクセスを制御する。通常のオプションは内部DM
Aコントローラに排他的アクセス権と制御権をもたせる
が、診断時またはVMEスレーブのみ環境では、ホスト
がこのビットをセットすることでこれらのFIFOの制
御権を受は取ることができる。 マイクロコード・ループ:このビットはテストをマイク
ロコード・レベルで繰り返すために診断機能だけが使用
する。 ストローブ・バッファ ホストはストローブ・バッファを使用して、サブシステ
ムを縁またはパルス面から制御する。ストローブ・バッ
ファに書き込みが行なわれる場合は、セットされている
すべてのビットについて対応するストローブ線にパルス
が現れる。この自動ストロービングにより、ホストはス
トローブ線のセットとりセントによるストローブ線の切
替えから解放される。この操作は書込みモードのとぎた
け使用される。ホストがこのバッファを読み取ると、あ
る種の代替状況情報がホストに送り返されることになる
。 ストローブ線には、次のものがある。 1ステップ:これは1サイクルの間にCPとDTPマイ
クロコード・クロックを1ステツプ進めるものである。 これは、ハードウェアがWO2を1ステツプを進めてロ
ードしたり、読取りや変更するとき使用される。 FPパイプライン・クロツク二FPパイプライン・クロ
ック信号は、FPのWO2の内容を読み戻すときだけ直
列マイクロコード・ループ制御の一部として使用される
。FP内の実行時パイプライン・クロックは通常FPマ
イクロコード・クロックと同じである。 cp wcs書込みイネーブル:この信号はC1Sマイ
クロアドレス・レジスタに指定されているアドレスから
直列ループに以前にロードされたデータでFPのWO2
470に書込みを行なう。CPマイクロアドレス・レジ
スタが使用されることに注意されたい。 W(:5470への書込みはロードWCSマスクによっ
て修飾されるので、選択されたFPだけのWO2が更新
される。 CPデバッグ割込み:このストローブはCPに割込みを
引き起すものである。これは、DTPをデバッグ・モニ
タに戻すためにマイクロコード・デバッグ・モニタによ
って使用される。 DTP割込み:このストローブはDTPに割込みを引き
起すものである。これは、コマンドがそのコマンド待ち
行列にロードされたことをDTPに通知するために装置
ドライバによって使用される。 状況レジスタ 状況レジスタは読取専用であり、主にホストがVMEデ
ータFIFOをアクセスできるときにホストにVMEデ
ータFIFOを判断させるために使用される。 状況ビットには次のものがある。 ■7μ旦β:このFIFOから出される状況ビットには
、満杯、半満杯、空の3つがある。これらの状況ビット
は、ホストがそこから読取りを行なうFIFOに対する
ものである(そのアクセスか可能である場合)。 シME人力FIFO状況:このFJFOから出される状
況ビットには、満杯、半満杯、空の3つがある。これら
の状況ビットは、ホストがそこに書込みを行なうFIF
Oに対するものである(そのアクセスが可能である場合
)。 1IEnE: この状況ビットはFPモジュールが存在
するかどうかをホストに判断させるものである。これを
行なうには、各モジュールのアドレスをWC5制御レジ
スタ1に書き込み、この状況ビットをテストする。その
アドレスにモジュールがあれば、この状況ビットはクリ
アされ、モジュールがなければ、セットされる。 wcsmJ御レジスタ WCSインタフェースは2つのレジスタを使用して制御
される。最初のレジスタはCP、 DTP内およびFP
モモジュール上ある各種マイクロコード・メモリの読み
書きを制御する。これらの信号の機能と用法の詳細はマ
イクロコード・ローディングの個所で説明されている。 このレジスタにおける制御信号には次のものがある。 直列ループ出力信号:これは3ビツト・フィールドの最
上位ビットであり、直列ループの並列通路のどのブラン
チを戻り路として働かせるかを選択するものである。こ
のフィールドの他の2ビツトはWC5制御レジスタ1に
ある。 FP WC3出カイネーブル:このビット出力は、通常
のマイクロコード実行とマイクロコード読み戻し時にイ
ネーブルにする必要があるが、マイクロコードのロード
時にディスエーブルする必要があるデータをイネーブル
してFPマイクロコード・メモリから取り出すものであ
る。 FPパイプライン出 イネーブル:木好通実施例では、
FP WO2470はマイクロコード・ローディングを
最適化するために2つのバンクに分割されている(下達
する)。この信号はこれらの2バンクの出力とのインタ
フェースとなるパイプライン・レジスタ476を制御す
る。 Fl’ WCSモード:これは直列ループ・千−1−を
制御し、ループを回ってデータをシフトさせるか、WO
2との間でデータを転送するかを選択する。 CPとDTPパイプライン・レジスタ出力イネーブル:
これはマイクロコード命令をディスエーブルして、すべ
てのビットを高レベルにするときだけ使用される。 CP WC5出カイネーブル:このビット出力は通常の
マイクロコード実行とマイクロコード読み戻し時にイネ
ーブルにする必要があるが、マイクロコードのローディ
ング時にディスエーブルする必要のあるデータをイネー
ブルしてCPマイクロコード・メモリから取り出すもの
である。類似の信号はDTP WC5320の出力イネ
ーブルを制御する。 cp wcsモード:これは直列ループを制御し、ルー
プを回ってデータをシフトさせるか、WO2との間でデ
ータを転送するかを選択する。 DTP WCSモード:これは直列ループを制御し、ル
ープを回ってデータをシフトさせるか、WO2との間で
データ、を転送するかを選択する。 CPマイクロコード選択:これはCPのシーケンサにそ
のアドレス・バスを3状態にさせて、その代わりにCP
マイクロアドレス・レジスタをイネーブルしてバスを駆
動させるものである。 FPマイクロアドレス選択:これはFPのWO2のアド
レス・ソースとしてCPマイクロアドレス・バスを使用
させるものである。通常、CPマイクロアドレス選択は
、ホストがマイクロコード・アドレスをCPに、従って
FPに送るようにセットアツプされている。 FP WC5選択: FP WO2は並列ロード機能で
はデータ経路指定が必要になるので、読取り時は2半分
として扱う必要がある。このビットは下位64ビツトか
上位40ビツトを選択する。 直りループ復帰選択(2):直列ループ戻り路は4つの
ソースの1つから選択できる。(これはWO2の内容が
直列ループを通して読取られるときそのソースを選択す
るようにセットアツプされていなければならない。)ソ
ースとなり得るものには、CP内部(ベース・ボートだ
けにある) 、cp外部(ベース・ポートとFPモジュ
ールにある)、DTT’、およびFPがある。 直列ループ・モード(2):これらのビットはデータが
WCSデータ・レジスタから読み書きされるとき直列ル
ープをどのように振る舞わさせるかを制御する。オプシ
ョンには、データ保留、データ・シフト、データ・パル
スがある。これらの効果については、直列マイクロコー
ド・ロードの個所で説明されている。 他方のレジスタはFPモモジュール上マイクロコードを
ロードし、読み取ることを制御するフィールドを保持す
る。これを制御するフィールドには次の2つがある。 WCSロード・マスク:このマスクの各ビットはマイク
ロコードを対応するモジュールにロードすることをイネ
ーブルする。ビットはいくつでもセットできるので、類
似のモジュールに同じマイクロコードを並列にロードす
ることが可能である。 直列ループ出力イネーブル:これらの残りのビットはw
cs$(I御しタスタ0にある3番目のビットと一緒に
使用されて、モジュールのどれに直列ループのCP外部
戻り路とFP戻り路を駆動させるかを選択する。 WCSデータ・レジスタ WCSデータ・レジスタは直列ループ、従ってマイクロ
コード・メモリをアクセスするときホストが読み書きす
るレジスタである。マイクロコードのローディングを効
率化するために、このレジスタはWC5制御レジスタO
内の直列ループ・モード・フィールドがどのようにセッ
トアツプされているかに応じて異なった振舞い方をする
。 直列ループ・モードが「保持」にセットされている場合
は、このレジスタは他のレジスタと同じように読み書き
される。 直列ループ・モードが「シフト」にセットされている場
合は、WCSデータ・レジスタに対し読み書き操作が行
なわれるたびに、レジスタは16桁だけシフトされ、書
き込まれたデータが直列ループに挿入されると共に、ル
ープ内の「最後の」語がデータ・レジスタにロードされ
る。 直列ループ・モーI−が「パルス」にセントされている
場合は、レジスタは他のレジスタと同じように読み書き
されるが、書込み操作が行なわれると、ある種の制御信
号が自動的に発生されて直列ループを制御する。 CPマイクロアドレス・レジスタ このレジスタはCPまたはFPモジュールのマイクロコ
ード・ロート時にマイクロコード・ロート制御ロジック
610によって駆動されて、CPマイクロコード・アド
レス・バス211B上に送出されるデータを保持する。 CPマイクロアドレス選択ビットがWC5制御レジスタ
0にセットされている場合は、このレジスタを読み取る
と、そこに最後に書き込まれたデータが返却される。そ
うでない場合は、CPのシーケンサが出力中のアドレス
の非同期スナップショットが返却される。 DTPマイクロアドレス・レジスタ このレジスタはDTPモジュールのマイクロコードク6
10によって駆動されて、DTPマイクロコード・アド
レス・バス311[1上に送出されるデータを保持する
。DTPマイクロアドレス選択ビットがWC5制御レジ
スタ0にセットされている場合は、このレジスタを読み
取ると、そこに最後に書き込まれたデータが返却される
。そうでない場合は、DTPのシーケンサが出力中のア
ドレスの非同期スナップショットが返却される。 (以下余白) ド・ロード時にマイクロコード・ロード制御ロジデータ
・パイプ・インタフェース・ロジック15f)データ・
パイプ概念は複数の個別サブシステムを各種のトポロジ
形状に結合させるものである。 この結合は「データ・パイプ」と呼ばれる複数の局所バ
スを使用して行なわれる。また、この結合はバックブレ
ーンから独立しているので、相互に離して結合すること
が可能である。 本好適実施例では、各データ・パイプ局所バスは32ビ
ット幅で毎秒40MBの転送することをサポートし、受
取側はFIFOでバッファリングされる。各サブシステ
ムは2つの入力バイブと1つの出力バイブをもっている
。出力バイブは個別クロックをもっているので、2人カ
バイブにデーシイ接続されていると籾は、データは各人
力バイブに個別的にも、まとめても送ることができる。 データ・パイプ・インタフェース150は第7図に示さ
れている。データ・パイプ出力ポートは32ビット幅で
ある。このボートは別の高速化ボード4140上のデー
タ・パイプ・インタフェースの入力ボート(71Oまた
は720)に(またはある種のタイプの・別の装置上の
データ・パイプ・インタフェースに)接続することが可
能である。データ・パイプの受取り側はFIFOでバッ
ファされている(FIFO740または750を使用し
て)ので、出力側731は電気的にデータをバッファす
るだけである。2つのストローブ760が用意されてい
るので、一方のデータ・パイプ・インタフェースが他の
2つのサブシステムに書き込むことができるようになっ
ている。受取り側サブシステムでデータ・オーバランが
起こるのを防止するために、受取り側システムからのF
IFO満杯フラグ770を送り側サブシテムが使用して
モニタリングができる。2つの入力FIFO740と7
50が2つの入カポ−1−710と720にあるので、
2つのサブシステムは1つのサブシステムにデータを送
ることができる。 FIFO出カイ出御イネーブルPマイクロコード内のT
Dソース・フィールドによって制御され、出力ストロー
ブはTD宛先フィールドによって制御される。人力FI
FO状況信号780は条件コード・ロジックでテストす
ることできるが、割込みを引き起すこともある。 このインタフェース構成を使用すると、複数のサブシス
テムを局所バスで各種トポロジ形状に結合することがで
きる。このようにサブシステムを柔軟に再構成できるこ
とは、アプリケーション向きマイクロスコピック・デー
タ転送アーキテクチャを多くのアプリケーションで使用
すると大きな利点が得られるので、第1図に示すサブシ
テムの場合に特に有利である。トポロジ形状のいくつか
の例が第34.35.36.37図に示されている。 ある種のアルゴリズムやアプリケーションでは、複数の
サブシステムを並列またはパイプライン構成にすると、
計算作業負荷を分散できる利点が得られる。例えば、高
、性能3次元図形ワークステーション構成の1例が第3
6図に示されている。 複数のサブシステムをデーシイ構成で結合すると(第3
7図に図示)、データを共用することができ、その場合
、「マスク」サブシステム4150Aは例えばホスト・
メモリからデータを人手し、それをデータ・パイプ結合
を通して他のすべてのサブシステム4150B、415
0C141500と共用することができる。この結果、
各サブシステムが独自のコピーをもつのではなく、1つ
のサブシステムだけかデータを取り出すことになるので
、ホスト・バス41】0のバンド幅が節約される。 データ・パイプはリングに結合すれば(第35図)、ケ
ンブリッジ・リングと同じような設計構造のトークン・
パッシング・ネットワークを効果的に構築することが可
能である。 データ・パイプ経由で送られるデータの内容と意味はソ
フトウェアで制御されるが、通常はメツセージ・パケッ
トにするのが普通である。 データ・パイプはシステム間通信用に設計されているが
、これらは他の周辺装置と結ぶことも可能である。持続
入出力速度は毎秒40MBであるが、バースト人力速度
はもっと高速である。バースト入力速度は配線の電気的
特性によって制限されるが、データ・パイプ入力が1つ
のときは、毎秒1601118 (両方の入力が並列
化しているときは、適当なバッファ・カードを使用すれ
ば最高320MBまで)にすることが可能である。 このインタフェース機能の主要な利点は、使用できるサ
ブシステム相互接続トポロジが多様化していることであ
る。従って、特に注目すべきことは、図示の構成例は大
幅な柔軟性が得られることを示している。 画像プロセッサ・インタフェース170このインタフェ
ースはアプリケーション向きパスとの接続を可能にする
。本好適実施例では、このパスは図形と画像データ向け
に特に最適化されている画像プロセッサと結ばれる。ま
た、本好適実施例では、この画像パスはrGI5パスJ
であり、このパスは160本のデータ線からなり、デー
タ・クロック期間が120−200nsで動作する。(
従って、このインタフェース・ロジックは本明細書の各
所でr GIPインタフェース」と呼ばれている。)シ
かし、他の画像データ・パス標準(好ましさの点で劣る
が)を使用することも可能である。別の方法として、デ
ータ転送要求条件(地震測定や実時間システムなど)が
特殊なアプリケーションの場合には、他のアプリケーシ
ョン向きパスを使用することも可能である。 GIPインタフェースを通して、GIPとサブシステム
はデータとコマンドを相互に受渡しすることができる。 このインタフェースは第8図にブロック図で示されてい
る。 GIPとサブシステム間の連絡はすべて16ビツト幅両
方向PIFO810を通して渡される。FIFOの一方
の側はDTPマイクロコードにょフて、他側はGIPマ
イクロコードによって制御される。 GIPインタフェ
ースはマイクロコード拡弓長ボート・インタフェースを
僅えているので、GIPは実際には、サブシステムに常
駐しているマイクロコード(8ビツト)を実行する。[
Pマイクロコード拡張パスは前述したIITPマイクロ
コード拡張インタフェースと同じである。 GIPインタフェースは、GrP図形プロセッサがある
種の分散マイクロコードをサブシステムで実行させるた
めに必要なサービスを提供する。これらのサービスには
、GIPマイクロコード・クロック、G11’マイクロ
アドレスとデータ・パス、割込みと状況信号、および拡
張Gfl’マイクロコードを直列にロードするための手
段がある。 Gll’インタフェース内の周辺構成要素としては、W
CS 83G、両方向FIFO(片方向FIFOから構
成)および状況ロジック820と割込みロジック840
がある。 常駐GIPマイクロコードにより、GIPは次のような
機能を実行することができる。 PIFo 81Gからデータを読み書きすること。 状況ロジック820を通してFIFO状況信号をテスト
して、開コレクタ条件コード・インタフェース信号に基
づいて結果を駆動すること。 割込みロジック840によってGIPに割込みを弓き起
す条件をセットアツプすること(例えば、FIFOが満
杯または空になったとき)。 DTPに割込みを引き起すこと。 DTP側からは、FIFOは32ビット幅でなく16ビ
ツト幅である場合を除き、他のFIFOのいずれかであ
るように見える。 連絡が行なわれるときの形式と、高速化サブシステムま
たはGTPがマスタ装置であるかどうかの詳細はすべて
2プロセツサで稼動するマイクロフードによって決定さ
れる。3次元ワークステジョン環境では、第36図に示
すように、ホストをマスクに、サブシステムをスレーブ
に、数値高速化サブシステムをその中間にする階層が好
ましい。 直 ループ・インタフェース 第1図(および他の図)に示す同時並行多重プロセッサ
・システムがもつ利点の1つは、3またはそれ以上のプ
ロセッサの書込み可能制御記憶機構(WCS)が直列ル
ープ・インタフェースを介して結ばれていることである
。本好適実施例によるこのループのトポロジ構造は第2
8図に示されている(第2八、3A、 4G、および6
図に225で示されている線は、第28図では中断され
て、1つの出力線225Aと4つの帰還線225B、2
25C12250,225Eが示されている)。 直列ループと結ぶインタフェースの実装構成は各種プロ
セッサを個別に取り上げて、またVMEイ〕、・タタフ
ニーと関連づけて上述した通りである。 し、かじ、これらの機能のいくつかを再びここで検討し
直して、直列ループの高度アーキテクチャを直列ループ
・インタフェースを通してホストは制御記憶機構のすべ
てをアクセスしてデータを取り出すことができる。この
ループの正味バンド幅を最大にするために、各個のwc
s (wcs拡張部分490を含む)は直列/並列シャ
ドウ・レジスタのバンクを通して直列ループとのインタ
フェースとなっている。 FP WO2470とのインタフェースとなるシャドウ
・レジスタは第29図と第4C図にレジスタ481Aと
481Bで丁されている。CP WO2220とのイン
タフェースとなるシャドウ・レジスタは第2A図にレジ
スタ222 と223で示されている。D、7P WO
2320とのインタフェースとなるンヤドゥ・レジスタ
は第3A図にレジスタ322 と323で示されている
。CPWC5拡張部分490との、インタフェースとな
るレジスタは第4Δ図にGP拡張部分の一部として全体
が示されているが、個別には示されていない。 これらのレジスタの各々は命令をそれぞれの制御記憶機
構にロートしたり、命令ストリームを小刻みにクロック
をとったり、あるいは単純に命令ストリームを可能な限
り高速にクロックをとったりすることができる。従って
、この線のバンド幅は効率よく使用され、最小限の命令
だけで特定プロセッサの制御記憶機構をアクセスするこ
とができる。 ループ制御 本好適実施例では、直列ループの制御と経路指定のため
の機能がいくつか追加されているので、幅広い構成と拡
張オプションに適応させることができる。 本好適実施例では、各サブシステムはマイクロコード・
サブシステムを最高6つまで(制御プロセッサ1つ、デ
ータ転送プロセッサ1つ、浮動小数点プロセッサまたは
アルゴリズム高速化プロセッサ4つまで)をもつことで
きる。これらのプロセッサの各々は独自のWO2をもっ
ている。各W CSはマイクロコードのアップロートの
ときは書込みを行い、診断、中断点設定などのときは読
み取らなければならない。 この機能を利用でとるようにする主な機能には、次のも
のがある。 Q luマルチプレクサ:これは2つの内部ソース(制
御プロセッサとデータ転送プロセッサ)からと、2つの
外部「帰還バス」 (制御プロセッサの拡張部分と複数
の浮動小数点プロセッサのマイクロコードに対する)か
らの直列ループを収集する。 制御プロセッサと浮動小数点プロセッサのマイクロコー
ドが置かれている浮動小数点プロセッサ・モジュールか
らの直列ループを収集する帰還直列バス。帰還ループ・
アドレスはどちらのモジュールに直列帰還バスを駆動さ
せるかを選択する。 各浮動小数点プロセッサ・モジュールはマイクロコード
・ロード・イネーブル・ビットをもっているので、モジ
ュールを任意に組み合せて同時にロートすることができ
る。 データ転送プロセッサの直列ループ拡張部分はジャンパ
とワイヤのリンクによって制御される。 この構成によると、直列ループを回ってデータを巾云送
して、WO2にバックロードするフ゛ロトコルが非常に
複雑になる。この種のプロトコルはソフトウェアで実行
されるのが通常である。本好適実施例では、これらのプ
ロトコルのうち時間のかかる部分はハードウェアに実装
されているので、マイクロコードのダウンロードが大幅
に高速化する。別の利点として、ソフトウェアのオーバ
ヘッドも軽減される。 本好適実施例では、ホストはマイクロコードを1語ずつ
データ・レジスタに書き込む(または読み取る)。(本
実施例では、データ・レジスタは2つの汎用シフト・レ
ジスタから作られている。 直列ループの残り部分はADM社製のΔm29818な
どの直列シャドウ・レジスタを使用している。)あらか
じめ選択された直列モードによって、次の3つのいずれ
かが行なわれる。 「保持」モードが選択された場合は、データ転送はメモ
゛すへの転送と同じように行なわれる。 「シフト」モードが選択された場合は、読取りまたは書
込みサイクルが終ると直ちに、データが直列ループの中
に(または外から)シフトされる。これが行なわれてい
る間は、使用中信号によって、ホストによるデータ・レ
ジスタへの追加アクセスが先に延ばされることになる。 「パルス」モードが選択された場合は、書込みアクセス
が終った約500ns後に、直列データ・クロック・パ
ルスが発生して、シャドウ・レジスタが必要とするモー
ドにセットされる。 ループ・トポロジ 第28図は直列ループの大規模接続関係を示したもので
ある。 信号出力線225AはVMEインタフェース160にあ
るマイクロコード・ロード・ロジック610によって駆
動される。(これは1本の物理線だけにする必要はなく
、例えば、4ビット幅バスのようなバスにすることも可
能である。)この線は3つの書込み可能制御記′Q機構
220.320、および470の各々の周辺にあるシャ
ドウ・レジスタの各々に適用される。(Cl’ WCS
拡張部分490は出力!jmS八に直結されないで、−
次WC5220の下流側の線225Cに接続されている
ことに注意されたい。)4木の帰還線が設けられている
が、これらはマルチプレクサ2701によって選択が可
能である。これらの帰還線は主にデバッグのとき使用さ
れる。 「スネーキングJ (snaking)が殆どないこと
に注意されたい。つまり、一方のWCS側の直列シャド
ウ・レジスタの直列出力が他方のWCSのインタフェー
スへの入力として使用されるケースは2つしかない。こ
れらのどちらのケースの場合も、直列ループの下流側に
あるWCSは事実上上流側WCSの拡張部分である。つ
まり、独立プロセッサを直列ループ内に直列接続するこ
とは回避されている。これの利点は、異種プロセッサ・
モジュールに対する独立マイクロコード・プログラムを
1つに結合する必要がないことである。この結果、プロ
グラマは上述したアルゴリズムの分割をフルに利用する
ことができる。また、これはローディングを高速化する
上で役立つ。さらに、幅と奥行が異なるWCSを月標と
したプログラムをマージするときにも問題が起こらない
。 ループ・トポロジの並行性の利点は、並行ロードが筒単
に行なえることである。例えば、共通のマイクロコード
列をFPモジュール130の各々にロードしようとする
場合は、FPモジュールのすべてにあるシャドウ・レジ
スタのすべてを同時にイネーブルさせることができるの
で、各々は線225A上の直列データとバス211B上
のマイクロアドレスに従ってロードされることになる。 第28図から明らかなように、ループ・トポロジは複数
の並列分岐を備えている。 cp分岐:出力線255はcp−次WCS 220側シ
ヤドウ・レジスタ・インタフェースへの人力となるもの
である。シャドウ・レジスタ・インタフェースからOP
WCS 220 (線225G)への帰還はマルチプ
レクサ271Oにフィードバックされる。 CP拡張部 サブブランチ: CP WCS 220と
のインタフェースの下流側には、CP WC5拡張部分
490のすべてにあるシャドウ・レジスタ・インタフェ
ースへの人力となる帰A 151225 Cも設けられ
ている。 シャドウ・レジスタ・インタフェースからWC3拡張部
分490への帰還はすべて帰還線225Dに結ばれてい
るので、マルチプレクサ271Oにフィードバックきれ
る。(帰還は並列に接続されているので、直列出力コマ
ンドは個々のモジュール・アドレスで修飾すれば、帰還
線225D上の競合が防止される。) DTP分岐:出力線225はDTP WCS 320に
あるシャドウ・レジスタ・インタフェースに直列人力を
送るようにも接続されている。シャドウ・レジスタ・イ
ンタフェースからWCS 320(線225B)への帰
還はマルチプレクサ271Oにフィードバックされる。 DTP拡張部分サブブランチ: DTP WCS 32
0とのインタフェースの下流側には、帰還線225Bが
オフボード出力として利用できるようになっている。 この接続は必要ならばユーザが開発してDTP拡張ロジ
ックを得ることがてきる。かかるロジックの動作は以下
に詳しく説明する。 FP分岐、出力線225は数値プロセッサ・モジュール
130または130°の各々にあるWCS 470側の
シャドウ・レジスタ・インタフェースへの直列人力どし
てもイ吏用できる。シャドウ・レジスタ・インタフェー
スからの帰還はすべて線225Eに結ばれているので、
マルチプレクサ271Oにフィードバックされる。(帰
還は並列に接続されているので、直列出力コマンドを個
々のモジュール・アドレスで修飾すれば、帰還線225
Eでの競合が防止される。) 第27図はマイクロコード−ローディング制御ロジック
610の構成要素の詳細図である0重要な構成要素の1
つはフリップフロップ2720であり、これは帰還直列
データを再同期化するものである。 WCSが分散されているときは、シフト・レジスタ・ク
ロックとシャドウ・レジスタのDクロック間のクロック
・スキューを制御することは、直列ループ構成が多種類
であるので、非常に困難である。このフリップフロップ
が含まれていると、フリップフロップがクロック・スキ
ューの制御を担当する(スキューが制御ロジックを駆動
する基本クロック期間を越えない限り)。ステート・マ
シン2740はホストからデコート化信号を受けるとD
クロック出力を発生する。 ホストとのループ・インタフェース 第6図と第27図に関連させて上述したように、マイク
ロコード・ローディング制御ロジック610は直列ルー
プ225上のデータを読み書きできる。 また、CPとDTPマイクロアドレス・バス211Bと
311Bに対しても読み書きができる。 DTPマイクロコード拡弓長ル−プ 本好適実施例によれば、オフボードで拡張して別の直列
インタフェース・ループを構築することもできる。この
ループとの接続は第28図に2840で示されている。 任意的に、DTPモジュール120はcp wcs拡張
部分490と同じようなりTP WCS を種部分を追
加の構成要素に組み入れることによって、オフボードで
拡張することが可能である。これらのWC5拡張部分か
らは、DTI’マイクロアドレス・バス311Bで選択
されたマイクロ命令出力が得られる。これらのDTI’
拡張部分の制御は、DTP拡張部分が比較的高範囲にわ
たる環境で使用されることがあるので、CP拡張ロジッ
クよりも若干ゆるくするのが好ましい。DTP拡張ロジ
ックは密結合高速入出力装置で利用されることを目的と
している。 この拡張オプションが使用される場合は、DTP拡張部
分(いずれかが使用される場合)はすべてDTP自身と
直列になっている。これは競合を防止するためである。 並列マイクロコード・ローディング 上述したように、本好適実施例では、マイクロコードは
2通りの方法で浮動小数点プロセッサにロードされる。 1つはホストの制御の下で直列ループによる方法であり
、もう1つは制御プロセッサの制御の下で並列に行なう
方法である。マイクロコードの並列ローディングは、浮
動小数点プロセッサで使用できる書込み可能制御記憶機
構(”WCS”)の数に制限があるので(4Kまたは1
6に命令)、好都合である。浮動小数点フロセッサのル
ーチンか多すぎて、−度にWCSに収まらないときは、
ある種のオーバレイ手法が必要になる。直列ループを使
用してオーバレイをロードすることはホストが命令をロ
ードできる速度が遅いので(ディスクへのアクセスによ
って、100m5から3m5)、実用的でない。 本好適実施例によって提供される並列ロート機能は広幅
データ・キャッシュ・メモリを使用してマイクロコード
命令全体(現在は104ビツト)を保管しておき、それ
を1サイクルで浮動小数点プロセッサ書込み保持レジス
タに転送する。そのあと、これは通常の出力ボートを通
って、直列ローディングで使用される診断シスト・レジ
スタ(例へMD 29818)に転送される。これらの
装置には、マイクロコード・ビットをバイブライン化す
る出力ボート(これは必要ならば、人力ポートとしても
使用できる)を備えている。しかし、本好適実施例では
、この機能は遅すぎるので使用されない。 デツプの多くはマイクロコードをなんらかの方法で内部
レジスタに格納している。)このことは、上述した並列
ロートのルートが直列並列レジスタがもつこの機能を使
用しても、速度や機能が犠牲にならないことを意味する
。並列ロード時間は命令当たり約500nsであり、こ
れは直列ロード時間よりも大幅に向上している。 もう1つの重要な点は、浮動小数点プロセッサでマイク
ロコードをオーバレイすることがホストによる監視を必
要としてないで、完全に制御プロセッサによって制御さ
れることである。逆に、マイクロコード・オーバレイが
まだデータ・キャッシュ・メモリに存在しない場合は、
制御プロセッサはデータ転送プロセッサがホスト・メモ
リに穆って、そこからそれを取り出すように指示するこ
とができる。 本好適実施例では、各サブシステムはマイクロコード・
プロセッサを最高6つまでもつことができる(制御プロ
セッサ1つ、データ転送プロセッサ1つ、浮動小数点プ
ロセッサまたはアルゴリズム高速化プロセッサ4つまで
)、、これらのプロセッサの各々は独自のWO2をもっ
ている。各WCSはマイクロコードをアップロードする
ときは、書込みを行ない、診断や中断点を設定するとき
は、そこから読取りを行なう必要がある。 (以下余白) モジュール拡張オプション すでに上のいくつかの個所で説明したように、第1図に
図示のシステムをモジュール単位で拡張するためのオプ
ションがいくつか用意されている。以下では、これらの
オプションのいくつかを要約することにする。 キャッシュ・バス144に接続できるモジュールは次の
2種類がある。 算術演算処理型。これの代表例として、浮動小数点プロ
セッサ・モジュール130とアルゴリズムまたはアプリ
ケーション高速化機構130°がある。 高速データ(IISD)モジュール。これはデータ・キ
ャッシュ・メモリまたは高速人出力チャネルを拡張する
ために使用されるのが代表例である。このメモリを拡張
する方法は、DTPマイクロコード拡張バス2824を
通して高速化サブシステムとのインタフェースとなる大
容量メモリ・サブシステムを使用することとは全く異な
る。ll5D法はデータ・キャッシュ・メモリ140と
同じバンド幅をサポートするが、大容量メモリ・サブシ
ステムはどの容■は得られない。 多重モジュール構成にすると、浮動小数点プロセッサ・
モジュール130型のモジュールを4つまで、ll5D
モジユールを2つまで使用できる。これらの数字はアー
キテクチャに制約要因があるからではなく、機械的およ
び電気的理由から選択されたものである。 FP 130モジユールはモジュール選択ビットによっ
て選択される。これらは通常制御プロセッサ・モジュー
ルllOの制御下に置かれるが、VMEインタフェース
はこれらのビットを無視することができる。これが使用
されるのは、マイクロコードをダウンロードするときや
デバッグを行なうときだけである。モジュール選択ビッ
トはリセット(これはリセット信号で制御される)を除
き、モジュールの動作をすべての面で制御する。 H5Dモジュールはデータ・キャッシュ・アドレス・バ
スをデコードすることによって選択される。 モジュールとの接続について以下要約して説明する。接
続を論理図域別に分類して挙げて、2種類の千ジュール
のどちらがこれらの接続を使用するかを示しである。 接続は6個の96ウエイDINコネクタを使用して行な
われる。第40八図と第408図は本好適実施例の物理
的接続構成を示したものである。 本好適実施例では、モジュール接続には次のようなもの
がある。 データ・キャッシュ転送用:256ビツト・データ、2
3ビットDCMアドレス、8個の書込みイネーブル、保
持レジスタOEビット、遅延アクセス信号(例えば、低
速メモリを受は入れるためのクロック・サイクル延長の
ため)、および保持レジスタCにビット。 CPゼインフェース用:3ビツト・アドレス、16ビツ
ト・データ、16ビツトCPシーケンサ・アドレス、C
Pマイクロコード・クロック、CPパイプライン・クロ
ック、CP書込みゲート・クロック、1つの割込み線、
および1つの条件コード。 マイクロコードのローディング用 CP WC5出カイ
ネーブル別の線、CPパイプライン出カイネーブル、c
p wcs書込みイネーブル、cpモード、CP if
i列データ・アウト、CP直列データ・イン、FP W
CSCSイカイネーブルPバイブライン出カイネーブル
、FPパイプライン・クロック、FP wcs書込みイ
ネプル、FPモード、FPマイクロアドレス選択、FP
上位/下位WCS選択、FP直列データ・アウト、FP
直列イン、6個の直列クロック/WCSロード・マスク
信号、および3ビット直列ループ帰還選択。 汎用目的用:モジュール選択の3ビツト、リセット、シ
ングル・ステップ、自走、FP中断点、マイクロコード
・ループ、FPリセット、)IERE用の布J開信号。 DC線用:+5v電源線21本、−5V電源線6木、接
地線161本。 どのタイプのモジュールもすべての信号をアクセスする
ことができる。 多重数値処理モジュール 第10図に示すように、各種実施例のうちある非常に有
用な実施例では、複数の数値処理モジュール130が使
用されている。この実施例では、モジュール130はす
べて制御プロセッサ・モジュール110による高度の監
視下に置かれている。CPモジュール110は高度の監
視タスクを実行するだけでなく、数値プロセッサ・モジ
ュール130との間で行なわれるすべてのデータ転送を
直接に制御する。数値プロセッサ・モジュール130は
すべてキャッシュ・バス144 と並列に結ばれている
。数値プロセッサ・モジュール130の各々は上述した
ように、CP拡張ロジック410を備えている。データ
転送プロセッサ・モジュール120は上述したように、
キャッシュ140と外部との間のデータ転送を管理する
ものである。 データ・キャッシュ・メモリ140と数値プロセッサ・
モジュール130または13o°間は高メモリ・バンド
幅で結ばれているので、多くの場合、複数のモジュール
を並列に稼動できるので、データ欠乏が起こることはな
い。 数値プロセッサ・モジュールをいくつ使用して稼動させ
ることができるかは、アプリケーションやアルゴリズム
がどのような混成になっているかよる所が大きい。本好
適実施例では、4つまでに制限されている。この制限を
設けたのは、主に電気的および機成的理由によるもので
ある。しかし、メモリ・バンド幅すべてが使用されてい
れば、浮動小数点プロセッサ・モジュールノ数ヲ増、や
しでも利点は得られない。 数値プロセッサは独立に稼動するので、モジュール・イ
ンタフェースに、浮動小数点プロセッサ同士の同期また
はデータ交換のためのプロトコルを含める必要はない。 この結果、仲裁の必要がなくなるので、インタフェース
が非常に単純化される。 命令書込みバスは数値またはアプリケーション向ぎプロ
セッサ(またはその両方)で共用させるのが好ましい。 また、最上位アドレス・ビットは数値またはアプリケー
ション向きプロセッサ(またはその両方)のいずれかが
個別的にアドレス指定されるように、あるいはこれらの
プロセッサのすべてが−緒にアドレス指定されるように
、あるいはこれらのプロセッサ群の一部(全部でなく)
が−緒にアトし・ス指定されるように、ロジックに従っ
て判断させるのが好ましい−6 つまり、複数の浮動小数点プロセッサを制御するには、
アルゴリズムを存在する浮動小数点のいずれかで稼動す
ること、あるいはその一部が存在する浮動小数点プロセ
ッサの一部または全部で稼動することがあり得ることを
考慮に入れる必要がある。このためには、制御プロセッ
サと浮動小数点プロセッサとの長期的または短期的な関
係を明確化する必要がある。制御プロセッサはどの浮動
小数点プロセッサを制御すべきか、あるいはどの浮動小
数点プロセッサとの間でデータを転送すべきかをサイク
ル単位で選択することができる。長間的関係の場合は、
これはもっと大局的に定義することも可能である。 本好適実施例では、これはどの浮動小数点プロセッサを
使用すべきかを定義する制御メカニズムをサイクル単位
で選択するマイクロコード・ビットを使用することによ
って達成される。この制御メカニズムは他のマイクロコ
ード・ビットを使用することも、レジスタの内容(これ
はマイクロコードによって事前にロードされている)を
使用することも可能である。マイクロコード命令フィー
ルド内のビットを使用して短期(つまり、サイクル単位
)の定義を行ない、レジスタで長期使用を定義すること
ができる。 これらの2モードの使用例を示すと、次の通りである。 短期−4つの浮動小数点プロセッサでFFTを行なうと
きは、制御プロセッサは1つの浮動小数点プロセッサに
数サイクルを使用して、次のバタフライのデータをロー
ドし、以前のバタフライの結果を収集してから、別のバ
タフライを扱う次の浮動小数点プロセッサに移ることに
なる。 長期−ベクトル加算を行なうとぎは、使用すべき浮動小
数点プロセッサはベクトル加算ルーチン(制御プロセッ
サにある)が呼び出される前に選択される。このことは
、@御プロセッサはこの計算にどの浮動小数点プロセッ
サ(またはどのタイプの(4勤tJs数点プロセッサ)
を使用ずへきかを知らなくてもよいことを意味する。 第23図はモジュール・アドレスがどのようにデコード
されるかを図式化して示したものである。 このデコードが実際にはどうような方法で行なわれるか
は、FPモジュール130と関連づけて上述した通りで
ある。 キャッシュ・メモリ拡張 上述したように、大容量の拡張メモリをキャッシュ・バ
ス144に直接接続することが可能である。このことは
、物理的構成と使用されるデータ転送プロトコルの別の
利点となっている。この種の構造例は第43図に示され
ている。 物理的および電気的 装ボード 第38A図と第38B図は本好適実施例の物理的レイア
ウトの主要特徴を示したものである。第38B図は子ボ
ードであり、第38A図の主ボードより小さくなってい
る。第388図は浮動小数点ブロツセサ・モジュール1
30のハードウェア(付属制御プロセッサ拡張ロジック
を含む)である。第38A図はデータ転送プロセッサ1
20、制御プロセッサ1100主要部分、データ・キャ
ッシュ・メモリ140、コマンド・メモリ190、およ
びインタフェース150、t60.170.18Gから
なる構成を示している。、2つのボードが一緒になって
、第1図に示すような完全なシステムが得られる。 2つのボードは6個のコネクタ31110が同じパター
ンになっている。これらのコネクタは雄型と雌型になっ
ているので、追加のボードを積層することができる。例
えば、第9図と第10図に示している構成は複数の浮動
小数点モジュール130またはアルゴリズム高速化モジ
ュール130“(またはその両方)を−緒に積層するこ
とによって得たものである(しかし、将来の改良に備え
て、これらの接続にバックブレーンを使用するとさらに
利点が得られる)。そうすれば、さらに都合のよい損紙
的構成が得られる。 コネクタ3810はそれぞれ96ビン幅にするのが好ま
しい。そうすれば、キャッシュ・バス144の全幅がこ
れらのコネクタを通る場合であっても、十分なピン数を
予備として残しておくことができろ。 データ・キャッシュ・メモリ140を拡弓長するための
拡張メモリも、このパターンのコネクタを使用して積層
することが可能である。上述したように、キャッシュ・
バス+44上に追加の拡張メモリを接読すると、高バン
ド幅チャネルを利用する非常に短時間のアクセス遅延の
間に比較的大きなメモリ空間が得られる。本好適実施例
では、100ns以内にH(1M37秒の速度で最高1
2MBまでアクセスができる。 第38八図は最大の個別構成要素の位置を示すと共に、
他の区域における一部の機能の全体的割振りを示してい
る。本実施例で使用されているボードは3段高さのEu
rocardである。VMEインタフェース・ロジック
160は全体がボードの縁に置かれ、バックブレーンの
スタブ長さを最小にしている。(VMEインタフェース
規格は短長のスタブを規定している。) メモリ・バンク510は全体が図面の上方の左隅と右隅
にコネクタ3810の近くに置かれている。コマンド・
メモリ190とVMEインタフェース・メモリ660も
この区域に置かれている。 ボード中央部の大部分はCP保持レジスタ56〇八とD
TP保持1ノジスタ5GOBが占有している。 DTP とCP IPll 340と240.DTPと
CPシーケンサ310と210、およびCPアドレス生
成機構230はすべて別々に示されている。 DTPモジュールの書込み制御記憶機構320は全体が
図面の左下付近のコネクタ3810の下方に示されてお
り、CPモジュールの書込み可能制御記憶機構220は
全体が右下付近のコネクタ3810の下方に示されてい
る。GIPインタフェース170、およびDTPマイク
ロコード拡張インタフェース180は全体が左下隅に示
されている。、(この区域には、−部のDINコネクタ
(図示せず)が置かれており、このロジックを使用して
サポートできる物理的接続を提供している。)同様に、
右下隅には、データ・バイブ・インタフェース150だ
けでなく、その関連コネクタが)6載されている。 第38B図に示す子ボードはもっと小形である。 (第38Δ図と第3811図は同じ縮尺で作図されてい
ない。) 保持1ノジスタ420は右上と左上に示されているコネ
クタ3810間に首かれている。これらのレジスタの間
には、EC1周辺3820があり、ここにECL部品(
これらの部品は大量の発熱を放出する傾向がある)が置
かれている。(本好適実施例では、E(:L部品として
は、転送りロック発生機構412とFPマイクロコード
・クロック発生機構480がある。)これらの部品は隔
離されているので、TTLの雑音が雑音の少ないECL
部品に入り込むのを防止している。) 以上の説明から理解されるように、レジスタ・ファイル
430を作るために使用されるチップは、ALLI 4
50および乗算機構440と同様に大形である(本好適
実施例では、これらのチップの各々はピン格子パッケー
ジに納められている。)FPモジュールのWC5470
は全体が図面の左中間部に置かれている。そのすぐ下に
、、 FP千ジュールの次アドレス・ロジック477が
首かれている。FPモジュールの制御ロジックがスタッ
クと1ノでも使用できるスクラッチパッド・メモリ16
0は物理的に次アドレス・ロジック477に近接してい
る。 CP!張ロジックは子ボード130または130”の各
々の制御のためにCPマイクロコードを拡張するとき使
用されるものであるが、その大部分が図示のようにボー
ドの下縁に置かれている。特に、WC5拡張メモリ49
0は左下に示されている。 浮動小数点プロセッサ・モジュールを別々のサブボード
に分散して搭載させると特に好都合である。(また、複
数の浮動小数点プロセッサ・モジュールが使用される場
合は、各プロセッサ・モジュール130をそれぞれの独
自のサブボード上に置いて隔離するとよい。)数値プロ
セッサ・モジュール130は、高速ロジックがそこに含
まれているので雑音を発生しやすく、また、これらの線
と構成要素はECLレベルを使用するので、雑音の影晋
を非常に受けやすい。 さらに、保持レジスタ420、局所転送バス422、レ
ジスタ・ファイル430、転送りロック412がすべて
サブボード上に搭載されている。こうすると、最高周波
数線がすべて共通サブボード上で隔離されるので、利点
が得られる。高速ロジックの各部分をある程度隔離でき
るので、これは特に複数の数値プロセッサ・モジュール
を使用する実施例では有利である。 PΔL実装 本好適実施例では、以下に挙げるPAL (プログラマ
ブル・ロジック・アレイ)が使用されている。 現在使用されているPALはすべてTTLである。大部
分は16および32シリーズからのものであるが、他に
もいくつかが使用されている。 しかし、当業者なら容易に理解されるように、他のPA
L実装を幅広く使用することも可能である0機能をハー
ドウェア・ブロックに分割することは変更可能であり、
ハードウェアで実装し光ある機能群を変更することも可
能である。PALに現在実装されている機能の多くはM
SIロジック部品を使用して実装することも、ASIC
またはセミカスタム集積回路にブロックとして実装する
ことも、VLSIロジック・チップをプログラミングす
ることによって実装することも可能である。しかし、こ
の実装をここで詳細に示したのは、米国特許法の規定に
従うように、本好適実施例の内容をすべて開示するため
である。 (:P PAL 以下は、制御プロセッサ・モジュール110に使用され
ている最も重要なPALのいくつかを簡単に説明したも
のである。 クロック波形生成PAL 250 このPALはCPとDTPによって使用されるタイミン
グ波形を生成する。上述したように、4つのクロックが
発生される。これらは各々4つの事前定義波形列の1つ
に従っている。4つの波形列は異なる期間、つまり、人
力クロック期間の4.5.6および7倍になっているこ
とが特徴である。これは、本好適実施例のように40
MHzオシレータが使用されるときは、100.125
.150および175nsに変換される。マイクロコー
ド・クロックとバイブライン・クロックは同じ波形をも
つが、マイクロコード・クロックはマイクロコードをロ
ードするときは、バイブライン・クロックを動作させた
コード・クロックは常に2サイクル(オシレータの)の
間高であり、そのあと2.3、−4またはサイクルの間
低になる(これらの選択はサイクル長入力によって行な
われる)。サイクル長はCPから要求された最大長さ(
2ビツト)とDTPから要求された最大長さ(2ビツト
)から選択される。サイクル長はバイブライン・レジス
タから駆動されるので(非レジスタ設計にした方がよい
が)、サイクル長は可能な限り最後の瞬時にサンプリン
グされて、ループを回って伝播する最大時間が得られる
。このタイミングは出力り9ツクが生成されたサイクル
の直後のサイクルで活動化するので、最初に現れるとき
よりも重要である。 タイム2クロツクはマイクロコード・クロックが動作す
る周波数の2倍で動作し、その立上がり縁はマイクロコ
ード・クロックの縁と同し時間に現れる。 書込みイネーブル・ゲート信号が低のときVMEインタ
フェース・メそすHOからの入力がサンプリングされる
。この人力がメモリ使用中を示していた場合は、サイク
ル長はこの人力が変わるまで延長される。これにより、
メモリ・アクセス時間に余裕ができるので、アクセス衝
突、オフボード通信などによつてアクセス時間を遅くす
ることができる。(この使用中信号は、PAL側から見
たときは、書込みゲートが低のとき余分のサイクルを挿
入したように見えるだけである。) クロックを自走させるか、lステップ進めるかの選択は
別の入力によって行なわれる。 CDバス・ソースPAL このPALはどのソースにCDバス112を駆動させ、
該当装置の出力イネーブル線を駆動させるかを選択する
CPマイクロコード・ビットをデコードするものである
。いずれかの16ビツト・ソースが選択されると(アド
レス生成機構230など)、こi7]島1、は符号/ゼ
ロ拡張PAL 211iを活動化させるイJτ4−も出
力する。リセット信号が活動しているときは、どのソー
スも選択されない。 TDバヌ122のデータ・ソース・フィールドのデニ1
−ドも同じ種類のPALを使用して行なわれる。 TDハス・ソースを選択するPALも、それぞれの対応
するFIFO空状況信号でF[FO読取りをゲ3−ト操
作するロジックを備えているので、空のI’lFOが読
み取られるのを防止する(FIFO内にエラーを起す原
因になる) CDバス宛先PAL このPAl、はCDバス112上のデータの宛先を選択
−するCP71−70コードをデコードして、該当装置
の読取りイネーブル線を駆動するものである。 TOババス2フのデータ宛先ビットのデコードも同U、
K’J類のPALを用いて行なわれる。 ソースまたは宛先装置が駆動する必要のあるチップ・イ
ネーブル線をもりていると(例えば、VMEイ゛ツタフ
ェース160やコマシト・メモリ190に1−.5ける
。メ干り)、そj、ぞれのナツプ・イネーブル線が駆動
される7 符号/ゼロ拡張PΔ121に のPALはイネーブル信号およびソース・データの高ビ
ットに応じて、符号またはゼロ拡張機能を実行する5、
使用するのが好ましいPALは8ビツト幅だけであるの
て゛、すべての符号/ゼロ拡張操作にはこれらか対で使
用される。このPALは2個所で使用されでX・)る、
一方の対(第2A図にプロ・ンク:!10で図示)すC
1つバス112本、2 ちう一方の対(第3A図にブロ
ック316で図示)はTDババス22につながっている
。 バス・ソース・ロジックは、16ビツト・ソースがアク
セスされるとき、イ才・−プル・ヒ′ットを符号/ゼロ
拡張ロジー・り216に送るぞ1のである。 第目A図と第146図はこのPAI、C)構成と動作を
示している。さらにゴしく (、才、第14A図は若干
溝なる実施例を示し、ている。つまり、各符号/ゼロ拡
張操作で3個の8ビツト・マルチプレクサか使用されて
いる、これにより、本好適実施例では不可能である車−
ベイトの使用が可能になった。第14f1図は第1・1
A図のハート−7エ7−「使用されるコマンF 構造イ
ど;丁<シていζ)。 マルチウェイ分岐アトレ、又指定PAL 217二のP
Al、、 4−Jシーケンサ310のマルチウェイ分岐
機能を実装−・rるために使用される。このP糺は3ビ
ット条件コードを受は取り、それをマイクロコード定数
フィールドの最下位3ビツトに挿入する。修飾された定
数フィールドはシーケンサ315上にフィードバックさ
れる。シフト・フィールド入力は結果を左にOllまた
は2桁シフトするかどうか(つまり、]、2または4を
かけるかどうか)、あるいは人力定数フィールドを未変
更のまま送るかどうかを制御する。別の入力はこのPA
Lの3状態出力ドライバをイネーブルする。 i33Aに示すように、このPALは3状態バツフア3
18と並列に接続するのが好ましい。定数フィールドの
最下位8ビツトだけがPAL317に送られる。最上位
8ビツトはバッファ318に送られる。 (好ましくは、修飾された定数フィールドは相対シーケ
ンサ命令で使用されるが、その使用に注意すれば、1漁
村まIこは間接命令て便用才るご、1−4゜可能である
。)マルチウェイ分岐操作は、第:101jJを参照し
て以下に詳しく説明する6 デ一タ入力条件コード選択P AL このPAl (DTPモジュール何201t:置かれて
おり、第3図にマルチプレクサ312で示されている)
はDTPマイクロコード・シーケンサ310でテストで
きる1組のFIFO状況コードを選択する。選択された
組の条件コードはデコードされ、シーケンサ310に送
られて、これらの条件に基づくマルチウェイ分岐が行な
われる。これらの条件信号のソースは、4つのハス人力
インタフェース、つまり、GIPインタフェース170
、データ・バイブ・インタフェース150の2つの入力
ボート、およびVMEインタフェース16001つの中
にあるものが選択される。 1)TP とI/F pΔし 以下は、デー・−夕転送プロセッサ・モジュール120
とインタフェース機構160.170.180で使用さ
れている最も重要な機能のいくつかを簡1に説明したも
のである。 VMEアドレス・デコードPAし 1つのPALはVMEアドレスの最下位ビットと5アド
レス修飾ビツトをデコードする。その出力はVMEアド
レスとアドレス修飾子が以前に選択されたビットと一致
すると活動化する。(アドレスとアドレス修飾子の組合
わせは最高16までプログラミングでき、そのうちの1
つは4ビット切替え信号によ)て選択される。)VME
割込みPALからの入力もあり、これは割込み承認サイ
クルがいつ進行中であるかを示している。これは出力を
駆動するようにデコードされたアドレスとORがとられ
る。 VMEアドレス・バスの最上位アドレス・ビット(1B
−31)も同じようなPALを使用してデコードされる
。このPALでは、アドレスの上位8ビツトを使用する
か無視するかが別の入力で選択される。 DMA FrFO状況とクロック制御PALこのPAL
はDM八へIFO670からのクロックと状況信号の経
路を制御する。また、このPALはこれらのFIFOの
クロックをDMAコン!−ローラ640の制御下に置く
か、VMEインタフェースからデコードするかを制御す
る。 VME読取りと書込みデコードPAL611読取りデコ
ードPへりはVMEバスからの8つの読取りソースをデ
コードする。内部VMEアドレスはデータ・ストローブ
、書込みイネーブル、およびボード選択信号によってデ
コードされ、修飾される。 書込みデコードPALはVMEバスからの9つの書込み
ソースをデコードする。内部VMEアドレスはブタ・ス
トローブ、書込みイネーブル、ボード選択、およびVM
E書込みイネーブル信号によってデコードされ、修飾さ
れる。 VME書込みイネーブル信号は各種書込みイネ
ーブルまたはクロックのセットアツプと保持条件をVM
Eバスのタイミングから独立して制御するために使用で
きる。 VMEスレーブ・アクセス・タイミングPALこのPA
Lはバス・コントローラ650においてデータ転送確認
通知のタイミングを発生する。このタイミングは、デコ
ーダ611が受は取るのとほぼ同じアドレスと修fit
li子もこのPALへの入力となるので、読み書きされ
るレジスタまたはメモリに合わせて調整することが可能
である。2重ボートVMEメモリ660が使用中であれ
ば、このタイミングは別の人力によって遅延される。(
これが行なわれると、使用中信号が終了したあとで追加
サイクルが挿入される。) 直列ループがデータのシフトに使用中であれば、タイミ
ングは別の人力によつて遅延される。 データが直列ループ・レジスタ68θに書き込まれると
き、VME書込み信号が高になったあとで3サイクルの
遅延が挿入されるので、直列ループ・ステート・マシン
(別のPALにある)は余裕をもフてデータをラッチ・
インすることができる。 このPALはVMEインタフェース・メモリ660がア
クセスされるとぎは、イネーブル信号も発生する。 信号ループ制御PAL このPALはマルチプレクサ2710とステート・マシ
ン2740を実装している。ステート・マシン機能は直
列ループ内の書込み可能制御記憶機構の各々とのインタ
フェースで818個の直列/並列レジスタを制御するよ
うに接続されている。(これらには、CP WC522
0とDTP WC5320のほかに、プロセッサ・モジ
ュール130の各々にあるFP WC5470とFP
WCS拡張部分490が含まれる。)ステート・マシン
はシフト・レジスタと直列データ・クロックを制御する
。シフト・レジスタとの間でデータ転送が行なわれてい
るときは、シフト・レジスタと直列データ・クロックは
アクセスのタイプ(つまり、読取りか書込み)に応じて
、またモード信号に従って制御される。直列ループモー
ド信号は次の3モードの1つを指定している。 DATA HOLD (00) : 通常のレジスタ
と同じように読み書きを行なう。 DATASHIFT(10):通常のレジスタと同じよ
うに読み書きを行なうが、直列データ・クロックを切り
替えている間に直列ループを回って16ビツトだけデー
タをシフトする。 r)ATA[’l且SE (l I)・通常のレジスタ
と同じように読み書きを行ない、直列データ・クロック
・パルスを1回発生する。 1)ATA 5IIIFTモードでは、又テート・マシ
ンはあるサイクルでシフトし、次のサイクルで保持する
ようにシフト・レジスタを制御する。この2サイクル・
パターンは15回繰り返され、その結果、シフト・レジ
スタの内容が直列ループ内に挿入される。保留呼イ′ク
ルでは、直列データ・クロックが主張される。データが
シフトされている間、使用中信号は活動しており、その
シフトが終るまでシフト・1ノジスタへの以降のVME
フクセスを保留にする。 rlATA PI’LSEモードでは、書込み操作(D
30Q−400nS後に、直列クロックは一度だけ高パ
ルスになる。このパルスは”818”シャドウ・レジス
タ内部の内部フリップフロップをアップロードする。 (これらのシャドウ・レジスタの各々は内部フリップフ
ロップを備えており、これはデータをそれぞれに対応才
るWC8にバックロードするときその動作モーl−をi
t、II御する。このDクロックがパルスを発生すると
きは、直列ループを回ってデータはシフトされない。(
この遅延により、データは安定化する。つまり、ループ
を回って伝わっていく。)この操作時は、使用中信号は
活動化さねて直列ループへの’/ME7々セスを禁止す
る。 このPALは4個の直列ループ帰還路225B、225
C。 225D、225E、によび再同期化フリップフロップ
2720を収集するマルチプレクサ2710も備えてい
机 DCM とDCM I/F PAL以下は、キャッ
シュ・メ千り140 と、FPモジュール130上に置
かれているが、キャッシュ・メモリi40とのデータ・
インタフェースを取り扱うCP拡張ロジックで使用され
る最も重要なPALのいくつかを簡単に説明し、たもの
である。 DCMアドレス・デコードPAL このPh3.はマルチプレクサと一緒に第5図にブロッ
ク560で示されている。このPALはデータ・キャッ
シュ・メモリ・アドレスをデコートする。 2つのアドレスλカが用意されている。人力516はC
ΔノくスI11のビット+9−25に対応しており、人
力517はTΔババス21のビット19−25に対応し
ている6仲裁ロジツク535によって生成される制御線
521はどちらのアドレスをデコードするかを選択する
。 DCM保持レジしタス御P八り へのPAL(CPとDTPマイクロコード・ストリーム
によって制御される)はデータ保持レジスタ56〇八、
560B、および420の3つのバンクを制御するため
に使用される各種制御信号を発生する。マイクロコード
・ビットはクロックと出力イネーブル信号を駆動するよ
うにデコードされる。バンク560Aを制御する信号は
CPアクセス信号536によって制御される。バンク5
60Bを制御する信号は、DTPボートの方が優先度が
低いので、CPアクセス信号536とDTPアクセス信
号537の両方によって制御される。 レジスタ・バンク420(浮動小数点モジュール上のF
P保持レジスタ)を制御する信号は該当のモジュール選
択信号と八NDがとられる。クロック信号はすべて正の
クロック縁のタイミングをjFIJ 御するために、書
込みイネーブル・ゲート・クロック信号によって修価さ
れる。 別の組の信号はアクセス・サイクルでメモリ出力をディ
スエーブルすることができる。これにより、保持レジス
タはデータ・キャッシュ・メモリに書き込まなくても読
み戻すことができる。(これらの信号は書込みマスク情
報をアクセスするために別のPALでも同じように使用
される。)(以 下 余 白) DCM書込みフラグ・レジスタPAL 書込みマスク・ロジック53G(8ビット書込みマスク
信号512をメモリ・バンク510に送る)は複数のP
ALを使用して実装されている。DTPインタフェース
・レジスタ560Bに対応するPALを最初に説明する
。CPモジュール110によってアクセスされる他のレ
ジスタ・セット560^の状況の追跡は、同じようなP
ALを使用して行なわれる。 このPALの目的は、保持レジスタ560B内の8F語
のどれにDTPによって書き込まれたかを覚えているこ
とである。データ′キャッシュ°メモリ書込みが必要で
あるときは、このPALの出力はDTP保持レジスタか
らの並列書込みにマスクをかける。更新されているF語
だけが実際にはデータ・キャッシュ・メモリ・バンク5
10に書き込まれる。保持レジスタに対する書込みが行
なわれると、対応するフラグ・ビットがPAL内にセッ
トされる。セットされるフラグ・ビットはこれらの条件
の下でDTPアドレスからデコードされる。フラグ・ビ
ットはデータ・キャッシュ書込みが行なわれるとクリア
される。しかし、操作はバイブライン化されているので
、DTPは同じサイクルで保持レジスタ560Bに書き
込むことができる。その場合には、フラグ・ビットはセ
ットされたままになる。 ざらに、8フラグ・ビットすべてを同時にセットするこ
とも可能である(マイクロコード・コマンドを受けて)
。これにより、ブロックで書込みを行なうことができる
。リセット信号はフラグをクリアする。ロジックは完全
に同期しており、クロック発生機構250によつて発生
したマイクロコード・クロックによってクロックがとら
れる。 別の人力信号は読み戻しモードをイネーブルする。この
モードでは、フラグ・レジスタの状態を下位2ビツトを
使用して直列に出力することができる。マイクロコード
はこの下位2ビツトにあるフラグ・ビットを読み取るこ
とができ、他のフラグ・ビットと入れ替えることにより
、マイクロコードはすべてのフラグ・ビットを読み取る
ことができる。DTPアドレスは、3フラグ・ビットの
どれを偶牧フラグ・ビットと入れ替え、どれを奇数フラ
グ・ビットと入れ替えるかを選択する。 FP書込みマスクPAL このPALはFP保持レジスタとデータ・キャッシュ・
メモリ間の転送に対して書込みマスクを生成する。マス
ク生成を制御するパラメータには、書き込むべきF語の
個数と先頭のF語がある。 FP P八り 以下は、本好適実施例においてFPモジュール130に
使用されているプログラマブル・アレイ・ロジック機構
(PAL)を簡単に説明したものである。 WCSロード・イネーブルPAL このPALはマイクロコードをFPモジュール自身のW
CS 470に、およびcpモジュールの拡張WCS4
90(つまり、FPモジュールに置かれているWC5部
分)またはそのどちらかに、モジュール選択信号でロー
ドするとき使用される一部を修飾する。 ホスト−ソース・モジュール 択PALこのPALはホ
ストからのモジュール・アドレス人力を局所スイッチ設
定値と比較して、そのモジュールが選択されているかど
うかを確かめるものである。1組の人力でWCSロード
がイネーブルされて行なわれる。 モジュール当たり1ビツト・アドレスが用意されている
ので、y(,5書込みをモジュール130のすべてに対
して独立して制御することができる。 (これと対照的に、上述したように、データ・アクセス
は最大モジュール数より少ないビットをもつモジュール
・アドレスを使用するので、モジュールのあらゆる組合
わせを選択することができない。) 第28図に示すように、直列コマンド・ループの好まし
いトポロジは、2つのループ部分2840が各を値処理
モジュール130に入るようになフている。一方の部分
225Aは入力をそのモジュール自身のWCS 470
に送り、もう一方の部分225Cは入力をそのモジュー
ル上のWC5拡張部分490に送るようになっている。 従って、2つの別個の出力コマンドが与えられるので(
しかもモジュール・アドレスによって修飾されて) 、
WO2470とWC5拡張部分490はそれぞれの出力
を共通帰逼バス225Eと225D (それぞれ)に送
り出し、モジュールのどれかが選択されたときに、その
モジュールによつて駆動させることができる。 CPモジュール選択PAL このPALはCPによって選択されたモジュール・アド
レスを、局所保管値と突き合せて比較するものである。 一致するものが見付かると、4つの出力が主張される。 これらの出力のうちの2つは制御信号がクロックをとる
ようにイネーブルするか、保持レジスタ420を出力イ
ネーブルする。もう1つの出力信号はLEDを駆動して
、とのFPモジュールが選択されたかをビジュアルで表
示する。 最後の出力は主ボードに返される条件コード・ビット(
選択済み)をイネーブルする。この最後の出力はCP拡
張マイクロコードで制御されるロジックに対する修飾信
号であり、マイクロコード・フィールド(またはレジス
タ格納値)で定義された処置が行なわれるようにイネー
ブルするものである。 FP−WC5制御PAL 2つのPALがWO2470を制御するために使用され
る。これらの2つのPALは別々の区域に置かれている
が、両方ともWO2に影響を与えるので、相互にインタ
ロックするようになっている。−船釣には、最初のPA
Lは命令レジスタ(これは上述したようにマイクロコー
ド短縮のために使用される)を制御するために使用され
る。もう1つは並列マイクロコード・ローディングを制
御するために使用される。 最初のPALはWO2470にある2つのRAMチップ
の出力イネーブルを制御する。本好適実施例では、WO
2470は2つのRAMチップを使用して構成され、イ
ンタフェース・レジスタ・セット420とマツチして並
列ローディングが行なわれるようにしている。(本好適
実施例では)キャッシュ・バス144は64ビツト・デ
ータ通路までに多重化されてFPモジュール130に送
り込まれるので、WC5470を2つの部分に分割する
と、マイクロ命令(本実施例では、104 ビット長)
の並列ローディングにマツチすることになる。 ホストがマイクロコードをロードするときは、命令レジ
スタはディスエーブルされる。その場合には、命令レジ
スタの出力は必ずディスエーブルされるので、TIAM
出力はホストによって生成された信号によって制御され
る。 2番目のPALは2つの個別機能を実行する。これらは
ハードウェアによる短縮を実現するときだけ結合される
。 最初の機能はホストによるWO2の読取り時にパ、イブ
ライン・レジスタ476のどちらのバンクをイネーブル
させるかを制御するものである。 2番目の機能は転送の長さ、つまり、保持レジスタとレ
ジスタ・ファイル間で転送すべき語の数を調整するもの
である。 パイプライン・レジスタの出力イネーブル信号は2つあ
り、これらは同時に活動することはない。(これらの信
号はレジスタ476の2つのバンクをイネーブルするた
めに使用される。他の個所で説明したように、この構成
はWO2470の2バンクに対応している。)パイプラ
イン・レジスタのどちらかを出力イネーブルさせるため
には、使用中信号が非活動に、モジュール選択とFPパ
イプライン・レジスタ出力制御(ホストからの)が活動
していなければならない。 転送長さフィールドは、1が転送すべき1語を、2が2
語を(以下同じ)を表すようにコーディングされる。8
語を転送することを指定するときは、0が使用される。 転送りロック発生機構(キャッシュ・バス・インタフェ
ース460の一部)は、転送サイクルの回数を知ってい
る必要があり、これはマイカ・サイクルに1を加えた数
である(パイプラインをセットアツプする場合)。 マイカ・サイクルの数は転送長さとその開始位置と共に
変化する。 ハンドシェイク・ロジックPAL 2つのPALがハンドシエAり・ロジックを制御するた
めに使用される。最初のPALは2つの独立機能を実行
する。最初の機能はCPとFPモジュール130間のハ
ントシェイキングを制御する。(この機能では、第22
図に状態図を示すようなステート・マシンにこの機能を
もたせている。)もう1つの機能(最初のm(iuと独
立して)はレジスタ・ファイル420が2重バッファ・
モードで使用されるとぎバンク選択を制御する。(この
モードの動作原理は第20図に示されており、上述した
通りである。) ハンドシェイキング・ステート・マシンはCPがFP待
ちにあることを、CPWATT出力HLを駆動すること
によって通知する。、FPが待ちにある場合は、ハンド
シェイキング・ステート・マシンはFPWArTllL
を駆動することによつてこれを知らせる。 CPWAITとFPWAITが共にHIであり、CPが
その完了信号を主張した最初のプロセッサである場合は
、次のような手順で行なわれる。 1、cPDONEがIIIであることが見付かったとき
は、FPWAITはLOに駆動される。 2、(:PDONEがIITになるまでCPWAITは
)IIのままで、制御はその状態のままである。 3、FODONEがHlになると、CPWAITはLO
に駆動される。 4、CPWArTとFPW八Iへ信号は、対応するDQ
NE信号が否定されるまで共にLDのままである。 上記手順は、FPがFPDONEを最初に主張した場合
にも行なわれるが、その役割は反対になる。 CPDONEとFPDONEが共に同時に到来した場合
(つまり、共に同じクロック縁で最初にIllでサンプ
リングされる場合)は、CPWAITとFPWAITが
共にLOになる。 このPALのバンク・スワップ側は上述したCP/FP
ハンドシェイキングが切り離されている。このステート
・マシンを制御する2人力信号は5CPBANKSEL
とFPSWAPである。5CPBANKSELはFPが
スワップ点まできたときCPにバンクをどのように割振
らせるかを指定している。FPがスワップ点までくると
、そのスワップ点を通り過ぎるまでFPSWAPを活動
状態に駆動する。スワップ点はCP/FPハンドシエイ
キング・ロジックによって同期化される。FPSWAP
点では、5CPBANKSEL(D状態はBANKSE
L出力の新しい状態であり、スワップ点の外では、[I
ANKSEL状態は未変更のままである。 最初のPALはFPと同期して動作するので、もう一方
のI”ALはCPモジ互−ル110が終了したこと、ま
たはバンクの交換を望んでいることを示すCP同期信号
を捕捉するために使用される。 この第2のPALは3つのハンドシェイク・モード・ビ
ットによって制御される(モジュール選択信号による)
。3ハンドシエイク・モード・ビットは次のように割り
振られている。ビット0と1は00がノー・オペレーシ
ョン、OJがCPDONEをセット、18がCPDON
Eをクリア、11がテスト・モードのIA置がとられる
ようにコード化されている。これとは独立して、ビット
2はレジスタ・バンクを交換することを要求実る。 CPDONE状態は命令がセットまたはクリア操作であ
る場合を除き、マイクロコード・サイクルにまたがって
未変更のままである。 このPALはモード・フィールドのビット2の正の縁を
、新しい人力を以前にレジスタ格納されたものと比較す
ることによって検出する。縁が検出されると、これによ
りバンク選択出力の状態か切り替えられる。 割込み捕捉PAL (:PWA4T、FPWAIT 、およびいくつかの割
込み信号でクロック縁を捕捉するために別のPALが使
用される。エラー割込みは中断点割込みと同じ割込み出
力を共用するが、独自のマスク・ビットをもっている。 出力は対応するマスタービットが1,0に駆動されると
リセットされるが、このマスク・ビットは以後の割込み
縁を検出するために旧に戻しておかなければならない。 マイクロアドレスとクロック制御PALこのPALはF
Pマイクロアドレス・ソースの制御とFPクロックの制
御の2つの独立機能を実行する。 マイクロアドレス・ソースは2ビツトの人力によって選
択され、次のようになっている。(DO)FP次アドレ
ス・ロジック477;(01) cpマイクロアドレス
211A、(10)開始アドレス・レジスタ479(
連続):(II)スタック478の出力。別の人力で2
ピッ1〜選択コマンドを無視することも可能である。そ
の場合には、CPマイクロアドレスはモジュールがイネ
ーブルされるとイネーブルされる。この人力を使用する
と、ホストはセットアツプやデバッグ時にWCS 47
0をアクセスすることができる。 FPクロック生成機構480(これは本好適実施例では
ECLが使用されている)をIII御する出力は次よう
に選択ができる。(00)FPマイクロコード・クロッ
クを自走させる。 (01)FPマイクロコード・クロ
ックを停止させる。別の論理条件はFPクロックを別の
人力によって制御させ、クロックがその主張があったと
き自走するようにする。 直列/並すロード選択 このPALはマイクロコードをホストまたはCPからF
PモジュールのWCS 470にロードすることを制御
する。ホストによってロードされるマイクロコードは直
列ループを使用する必要があるが、CPはマイクロコー
ドを並列にロードすることができる。注目すべき点をい
くつか挙げると、次の通りである。 1、Wcs 470に使用されているバイブライン、レ
ジスタは個別の出力イネーブルをもっていないので、こ
れらはデータ・バスでの競合を防止するために別々に使
用される。 2.2つの直列データ・クロック信号の依存性はホスト
またはCPが選択されたかに応じて切り替えられる。 3、ホストが直列ループを制御する場合は、モード信号
は両方のデータ・クロックを一緒に駆動させるか(通常
データ・シフト)、一方だけを駆動させるか(別の信号
で選択されたもの)を選択する。直列データ・クロック
はWCS 470からデータを読み戻すときもこれと同
じように制御される。 cp書込みデコードPAL このPALはWC5拡張部分490にあるマイクロコー
ド・フィールドをデコードして、レジスタ420のどち
らをアクセスするかを選択するものである。選択された
レジスタには、RCREGDIRがLOのときだけ書き
出される。XFREG、 FPREG、 UAREGま
たはM It CGの中から1つ選んでそこに書き込む
ことのほかに、実行される機能には他に2つある。 1 、CDバス・トランシーバ44イに対する方向と出
力イネーブル制御が生成される。 2、中断点をクリアするマイクロコード・ビットは書込
みゲート・クロックで書込みイネーブル・ゲートがとら
れる。ここで短パルスが使用されているのは、再始動直
後に現れる中断点を見失うのを防止するためである。(
これは、新しい中断点が現れたときCPがまだ前の中断
点をクリアする信号を低に維持していると問題を起すこ
とおそれがある。)従って、この信号はそれを短時間に
保つクロックでORをとるようにしている(活動−低A
ND)。 クロック/ストローブはすべてCPM(II:におよび
CPMCCKWGによって修飾されて、マイクロコード
・サイクル内でタイミングを設定するが、モジュールが
選択されていなければディスエーブルされる。 このP八りはCPマイクロコード・フィールドをデコー
ドして、レジスタ480のどちらをアクセスするかを選
択するものである。選択されたレジスタはRCIIEG
OIIIがIIIのときだけ読み取られる。 保持レジスタ制御P糺461 2つのPALが保持レジスタ420からの出力を制御す
るために使用される。 最初のPALは多対のレジスタ420に対するクロック
をイネーブルするために使用される転送シーケンス波形
を発生するものである。各転送サイクルは転送長さで指
定された通りに、1〜4マイナ・サイクルの間持続する
。(「マイカ・サイクル」期間は上述したように、転送
りロック412によって発生する。)各マイカ・サイク
ルで対のF語が転送されるが、そのうちの1語は別のP
ALによって禁止されることがある。転送シーケンス波
形は4つの線上に「遊歩LOJとして現れる。 循環列内で最初に主張される線はXFHR5T<1:2
>によりて制御され、XFrNITがHIのときだけ現
れる。XFINITは最初のサイクル時だけ活動し、後
続のサイクルでは現在のシーケンス波形が次の線を制御
するために使用される。LICXFDIRは転送方向が
保持レジスタ420からレジスタ・ファイル430への
とき、LOOPBACにモードが働いていなければ、+
11ICKENP◆<Q ; 3>をディスエーブルす
る。HRCにALLは通常の開始および長さ制御を無視
して、すべてのクロック・イネーブルを同時に活動化さ
せるので、1回のサイクルでデータを4コピーしてすべ
てのレジスタ対に入れることができる。 XFTYPE入力は波形列が通常の転送サイクルに対す
るものか、並列マイクロコード・ロード・サイクルに対
するものかを選択する。後者の場合には、常に2つのマ
イナ転送サイクルがあり、そのタイミングが若干具なる
ことがある。この入力は保持レジスタに対するすべての
クロックを禁止することができる。 第2のPALは各レジスタ対を出力イネーブルするため
に使用される転送シーケンス波形を生成するものである
。これらの2つのPALは相反する転送方向で使用され
る。 「クロック・マスクJ I’ALは、保持レジスタ42
0を構成する8個の32ビツト・レジスタ(Fレジスタ
)に書き込みを行なうことを制御するために使用される
8個のクロック・イネーブルを生成するものである。1
回の主転送サイクルで、8個までのF語をレジスタ・バ
ンク420の8個の別々のレジスタに送り込むことがで
きる。入力は更新する必要のある最初のレジスタ(0,
、,7) と更新すべきFレジスタ(1,、,8)の個
数を示している。 PALはそれに応じて、更新すべきすべてのレジスタに
対してビットがセットされたマスクを生成する(主転送
サイクル内で)、転送方向が保持レジスタ420からレ
ジスタ・ファイル430へのときは、すべてのマスク・
ピットはHlにセットされるので、保持レジスタへの書
込みは一切防止される。同様に、マイクロコード・ロー
ド・サイクルが現れている場合は、クロックはディスエ
ーブルされる。すべての保持レジスタがクリアされる場
合(もう1つの信号によ)て指示された通りに)は、イ
ネーブルは低にセットされるので、すべての保持レジス
タが更新される。 保持レジスタ開始アドレスPAL このP八りは4:1マルチプレクサとそのあとに続くレ
ジスタからなっている。マルチプレクサへの人力となる
ものには、レジスタからの保持レジスタ(HR)開始ア
ドレス、マイクロコード命令からのHR開始アドレス、
CPアドレス・バスからのFR開始アドレス、前の)I
R開始アドレスの4つがある。 モジュールが選択されない場合は、前のl(R開始アド
レスが残される。 レジスタ・ファイルWE!$制御 このPALはレジスタ・ファイル430に対する書込み
イネーブルを制御する。マイナ・サイクルで1個または
2個のF語がレジスタ・ファイルに書込むことができる
。開始位置と長さの6ビツトはクロック・イネーブル・
マスクが生成されるとき同じ方法で書込みイネーブル・
マスクを生成するために使用される。マスクからの該当
2ビツトはどちらのマイナ・サイクルが進行中であるか
に応じて、下半分書込み信号または上半分書込み信号か
ら順序付けられる。ループバック・モードが活動してい
るときは、書込みイネーブル・マスクはディスエーブル
される。別の信号はすべてのマイナ・サイクルで両方の
語を強制的に書き込むために使用できる。 下半分書込み信号と上半分書込み信号は転送方向が正し
くないか、転送タイプがマイクロコード・ロード機能で
あると、ディスエーブルされる。 人力信号はレジスタ・ファイルの読取りまたは書込みモ
ードを選択するためにもコード化される。 使用中信号線は保持レジスタ・データ・バス422が使
用中であることを指示するものである。 レジスタ・ファイル・アドレス aiPALこのPAL
はモジュールが選択されたときレジスタ・ファイル・ア
ドレスをレジスタに格納する。 そうでない場合は、前のアドレスが保持される。 アドレスの最上位ビットはソフト2重バッファリングが
行なわれるように修飾される。2ビット信号はどのタイ
プの修飾を最上位ビットに対して行なうかを選択する。 オプションには次のものかある。 1入カビツトの使用。これは物理アドレス指定モードで
ある。 2.8ANKSELの使用。これは2重バッファ・モー
ドである。 3.8ANKSELの反転値の使用。これはプレビュー
・モードであり、CPまたはFPはバンクを交換し合わ
なくても2重バッファの反対側にあるデータがアクセス
できる。 レジス・ファイル・アクセス増分機構 このPAL (イネーブルされているとき)はレジス
タ・ファイルのポインタを増分する。従って、アドレス
は各マイナ・サイクル(転送りロックの)ごとに増分し
て、レジスタ・ファイル430から次の対の番号を取り
出したり、次の対を書き込んだりすることができる。制
御入力は、保持レジスタ420からレジスタ・ファイル
430への転送の最初のマイナ・サイクル期間アドレス
定数を保持することを可能にする。これが必要なのは、
データ通路がパイプライン化されているからである。 データ有効性制御F A I。 このl’ALはレジスタ・ファイル430の偶数側と奇
数側に対するデータ有効性信号を制御する。マイナ・サ
イクルで、1個または2個のF語をレジスタ・ファイル
に書き込むことができる。開始アドレスと長さに応じて
、データの1語または2語がこのマイナ・サイクルで有
効になる。2つの出力(EVENVALID* と0D
DVALID傘)はどちらの語が有効であるかを示して
いる。この機能はレジスタ・ファイルからの転送ではデ
ィスエーブルされる。 マイクロ命令アドレス選択P A L このPALは次のマイクロ命令アドレスが真アドレス・
フィールドからのものか(つまり、レジスタ474の出
力)、偽アドレス・フィールドからのものか(つまり、
レジスタ475の出力)を選択する。内部の「常に真」
状況は無条件ジャンプのとき選択できる。両方共開始ア
ドレス・レジスタ479がマイクロアドレス・バス47
3を駆動できるように、あるいは5TACKPOPまた
はREADSTACK*信号がスタック操作進行中を示
しているときディスエーブルさせることかできる。(5
TACKI”Of’はFPマイクロコードから得られる
が、RE八へSTACKはCPによって制御される。) 上述したように、FPモジュール130はCPモジュー
ル110とDTI’モジュール120で言うような個別
のシーケンサをもっていない。事実、このモジュールは
個別のプログラム・カウンタでさえもっていない。その
代わりに、レジスタ474の真と偽の出力がこの機能を
果している。 ALt1問題状況PAL このPALは浮動小数点状況ビットの1つがいつ「問題
状況」状態を示したかを記憶している。 (本好適実施例で「問題J状況が使用されているのは、
基本的エラー処理メカニズムから切り離しである種の障
害状態をモニタするためである。)例えば、オーバフロ
ーのテストは各要素の計算のたびでなく、ベクトル演算
の終了時に行なうことができる。乗算機構440とAL
U 440は各々問題状況を表すビットをいくつかもっ
ている(オーバフロー、アンダフロー、無効演算、その
他の類似エラーを示すピント)。2つのマイクロコード
・ビットは問題状況レジスタの更新とクリアをす・rク
ル単位で制御する。 類似のPALはFMOY状況に対してこの機能を実行す
る。これらのPALにあるロジックもコード化された出
力で各種問題状況状態を示すようになっている。クロッ
ク・タイミングの使用により、問題状況ビットが存在す
るかどうかが1サイクルで検査される。 スタック制御PAL :]910 このPALは、サブルーチン・スタック・アドレス指定
の制御とテーブル・アドレス・カウンタの制御の2つの
別個の機能を実行する。 第39図は浮動小数点プロセッサ・モジュール130内
のスタック・レジスタ478の好適実施例を示している
。PAL 3910は多重レベル・パイプライン・レジ
スタ3920を制御する。(本好適実施例では、これは
AMD 29520が使用されている。)この多重レベ
ル・レジスタ3920は4つのパイプライン化レジスタ
3921を含んでいる。しかし、出力マルチブレクサ3
922にこれらのレジスタのいずれかを選択させて、直
接出力を得ることも可能である。 このマルチプレクサの出力はFPモジュール130のマ
イクロ命令アドレス・バス473に結ばれている。 PAl 3910は制御人力を多重レベル・レジスタ3
920に提供して、このレジスタをLIFO(後入れ先
出し)メモリとして機能させる。これにより、メモリは
スタックとして動作する。PAL 3910はパイプラ
イン化レジスタ3921に対して転送信号3912(こ
れはマイクロコード・クロックとANDがとられる)を
供給する。また、選択信号3913をマルチプレクサ3
922に供給する。 PALは通常のブツシュとポツプ機能を備えているほか
に、コマンドを受けて読取りスタック・モードに入って
、スタック状況を壊すことなくどのスタック・レベルで
も読み取ることができる。 レジスタ・ファイル・アドレス修飾子PALこのPAL
はFPレジタス・ファイル・アドレス・フィールドの最
上位ビットを、アドレス修飾コードと2ffiバツフア
の現在選択されているバンクに応じて修飾する。修飾す
べきアドレス・フィールドは3つあり(X、Y%T)(
これらは第1オペランド・バス431.第2オペランド
・バス432、および結実用バス433に対応している
)、ロジックはこれらの各々に対して同じである。これ
らのアドレスの1つについてそのロジックを以下説明す
る。 修飾最上位アドレス・ビットは入力アドレスの最上位ビ
ット、2ビツト修篩コード、およびバンク選択信号から
求められる。アドレス・ビットに対する修飾は次の通り
である。 1、修飾なし−これは物理アドレス指定モードである。 2、バンク選択信号の反転−これは2重バッファ構成で
通常のアクセスに使用される「論理」モードである。バ
ンク選択は、データがレジスタ・ファイルと保持レジス
タの間で転送されるとき使用されるものと反対であるこ
とに注意されたい。 3、バンク選択信号と同等−これはプレビュー・モート
である。上述したように、このモードにあるときは、1
・Pはバンクを交換し合わなくても2重バッファの反対
側にあるデータをアクセスできる。この機能は浮動小数
点バイブラインを一杯に保つことができる。 3つの修飾アドレス・ビットは外部レジスタに格納され
、「旧A6Jビット(各アドレスに1ビツト)としてフ
ィードバックされる。これらは、「旧へ6便用」コマン
ドが主張されたときこれらのビットの「計算で求めた値
」を置き換えるために使用される。この機能は、アドレ
ス・モードが数サイクル−の間未変更のままであるとき
アドレス・セットアツプ時間を短縮する。 結実用バス制御PAL このPALは結実用ソース・マイクロコード・フィール
ドをデコードして、必要とする装置(例えば、第1図の
構成では、FMPY 440. FALtl 450、
またはスクラッチパッド・メモリ161G)を出力イネ
ーブルする。このPALは必要時にスクラッチパッド・
メモリにチップ・イネーブル信号も送る。 VME割込ミPAL このPALはVMε割込みプロトコルをステート・マシ
ンの形で実現している。GENVMEINTが活動状態
(高)になると、rRQENは次の正のVCK縁で高に
駆動される。TnQENは割込みが受は付けられるまで
活動状態のままであるので、割込みの原因はCLRII
IQFF中を低に駆動することによって除かれる。VI
ACK傘とVIACKIN*信号がモニタされ、割込み
受付はサイクルが引き起された割込みで検出されると、
内部割込み受付はサイクルが開始される。 正しいVME割込み受付はサイクルはこれらの信号が活
動状態になり(VIACに■N*はデイジ一連鎖の一部
である) 、 VMEIA<01:03>が割込みが引
き起されたときと同じレベルにセットされることによっ
て識別される。内部割込み受付はサイクルはVMEID
Sが主張されるまで待ったあとで、数サイクルの間に割
込みベクトルをイネーブルしてデータ・バス(IVOE
中)上に送出し、IVDTACKをセットし、IRQE
Nを取り除く。しばらくしたあと、VMEIDSは非活
動状態になり、割込みベクトルとIVDTACにが除か
れる。割込み受付はサイクルが現れると、VINT八C
にへ主弓長され、そのあと割込みベクトルをバス上に送
り出すスレーブ・サイクルでBUSCONを始動する(
アドレス・デコードPΔLを通して)。 割込み受付はデイジ一連鎖は、未処理の割込み要求がな
いときこのPALに支障なく渡される。 DMA/VME ステート・マシン このPALばVMEバスとデータFIFO間のデータ転
送だけを取り扱う。転送の方向はステート・マシンから
は見えないので、クロックと状況は外部で切り替えられ
る。DMAR5TARTが活動状態になると、ステート
・マシンはDMA転送を開始する。まず、同期FIFO
状況(SDMAFSTAT傘)がFIFOに1回の転送
分のデータまたは余地があることを示し、SDMADO
NEがDMAカウンタが準備状態にあることを示すまで
待っている。DMACには低に駆動されて、データがあ
る場合にFIFOを出力イネーブルする。 ステート・マシンはバス要求(LBUSREQI)を出
して、その要求が許可(SLIIGI(ANTリ され
るまで待っている。バスが許可されると、DMAAS傘
とDMA[lS)がVMεバス・セットアツプ時間に従
って主張される。これらの2信号はVMEスレーブ装置
がデータ転送受付け(SL[lT八へK傘)を返してく
るまで保留され、そのあとDMAGKは高に駆動される
。1サイクルのあと、DM八へへ傘とDMADS傘は除
かれ、正の縁がDMAC0UNT″T:pJ動される。 転送モード(oM八へBLocK)が単一転送である場
合は、LBIISRELが主張されてバスが解放され、
上で述べた手順が繰り返される。転送モードがブロック
(順次)転送である場合は、バスは、ブロックの終りま
できているか(BLOCKENDテ示される) 、FI
FOが満杯/空であるか(SDMAFSTAT傘)、D
MAカウントが尽きたか(SDMADONE)、あるい
はDMAがDMAR5TARTの否定によって途中で打
ち切られた場合以外は、解放されない。ブロック転送の
ときは、[)MAAS)はBLOGKENDによって解
放されるまで保留されている。 5LBtlSERR中人力は、DMAアクセスの結果バ
スにエラーが起こると、活動状態になる。このエラーが
起こると、現在の転送は打ち切られ、DMABERRが
駆動される。ステート・マシンはDMATSTARTが
否定されてDMABEnllがクリアされるまでこの状
態のままである61長後の人力DMATESTはとのV
MEサイクルが現れなくてもDMAが行なわれることを
可能にする。これは、ステート・マシンの基本動作をテ
ストするときに便利であり、またバス・エラーが起こっ
たときにFIFOの入力を停止させる手段として利用で
きる。 リセット状態はDM八へ5T八RT、 DM八へIBL
OcKおよびDMAnTESTの未使用の組合わせを使
用することによって強行させることができる。 (以 下 余 白) 0M八へドレス制7.711 アドレス・ビット(VMEIΔ<Ol・07〉は、25
6バイト境界までにいつ達する直前にあるかを検出する
ためにモニタされるので、ブロックDMA転送を瞬時に
中断させて、VME仲裁を可能にする。(これにより、
VME規格における最大ブロック転送長さの制約に準拠
することができる。、)このことはBLOCKENDで
示される。PALの残り部分はDMAアドレス増分の処
理を担当する。転送サイ°ズ(16または32ビツト)
に応じて、DMAアドレスはDMAINCが高になると
、それぞれ1か2だけ増分される。 DMAアドレスの増分は、DMACNTEN中がマイク
ロコード・クロックの1または2サイクルの間活動して
いるかどうかを選択するDMARLONGINCによっ
て制御される。CLREF傘は、DMAC01lNTの
縁を捕捉したフリップフロップをリセットする。VME
II(STIは必要ならばPALをリセットするために
使用できる。 匙込立旦11 コノPAL ハGIPIEMPTY*、VMEIFEM
PTY*、DPIIEMPTY*、 VTPINTDお
よびVTPINTで正の縁を捕捉し、GIPOEMPT
Y*とVMEOFEMPTY中で負の縁を捕捉する。 これにより、割込・み信号を縁でトリガさせ、そのあと
マイクロコード・クロックと同期させることができる。 縁が検出されると、対応する出力は低に駆動される。縁
捕捉フリップフロップは対でリセットされる。つまり、
TPINTGIP傘は2つのGIP縁をリセットし、T
TIVMEFIは2つのVME縁をリセットし、TPI
NTVME傘は2ツノvTP縁をリセ・ントし、TPI
NTDPIPE傘は2つのDP縁をリセットする。 GrPマイクロコード・デコード このPALは3つのマイクロコード信号11GIPRD
I 。 UGIPWI中およびUGIPFRをデコードして、出
力イネーブル、 FIFO読取りおよび書込みクロック
およびレジスタ・クロックを発生する。FIFO9取り
クロックはFIFOの空の状況(GIPOE傘)によっ
てゲートされて、FIFO内の誤りを生じる空のFIF
Oの読取りを阻止する。クロックタイプの信号はGIP
CIまたはGIPFRDCKで資格づけされる。 GIP割込みマスク この1)糺は2つの機能を実行する。まず第1に7つの
割込み発生源となり得るものの中から4つを選択し、必
要な場合には選択的に反転して割込みIA置が正の縁に
なるようにする。4割込み発生源は2組が許され、GI
PSELIはそのどちらかを選択する。第2の機能は選
択した組に4マスク・ビット(GII’1M <Q・3
〉)でマスクをかけてから、結果を駆動してGIPIN
T <0:3>として出力するものである。GIPIA
Cト信号は単純に反転されるだけで、GIPI八〇にへ
得られる。 (以下余白) Glf’割込みステート・マシン このI’ALは割込み人力(GII’[NT<0:3>
) ノ正の縁を探し、1つまたは2つ以上が現れると、
GIPINTが駆動される。特定の割込みはマイクロコ
ード・フィールドUG IPCC5<0 : 1>でそ
れを選択して、UGIPCLAIを主弓長することによ
ってクリアされる。 すべてのフリップフロップはGrPR5T*によるリセ
ットでクリアされる。縁は割込みを1サイクルだけ遅ら
せ、遅延されたものと遅延されなかったものを比較する
ことにより検出される。遅延されなかりたものは、この
ステート・マシンがラン・オフしているGIPCIクロ
ックとすでに同期がとられている。 ホスト・コンピュータ 第1図に示すようなシステムは広範囲にわたるコンピュ
ータ・アーキテクチャで使用できる。本好適実施例では
、第1図のシステムは数値高速化サブシステムとして使
用されている。ホスト・コンピュータはVAX 880
0を使用し、VMEオペレーティング・システムが稼動
して、 VMEインタフェースとVMEバス4110を
通して第1図のシステムと通信するようになっている。 しかし、他の構成も幅広く使用することも可能である。 例えば、使用できるUNIXマシンは、Sun Mic
rosystems社提供の装置を含む様々なものがあ
る。 さらに、他のシステム・バス構造を使用することも可能
である。例えば、第1図のサブシステムをVMSが稼動
するVAXで使用し、インタフェース・ボックスを経由
してリンクで結ぶことができる。このサブシステムはM
S−DOSが稼動するパーソナル・コンピュータで使用
し、イーサネット(例えば)を経由して単純なVMEバ
ス・インタフェース・ボックスと通信させることさえ可
能である。 さらに注目すべきことは、第1図のサブシステムは32
ビツト・アーキテクチャが中心になっているが、このサ
ブシステムを64ビツト語や48ビツト語で使用できる
という利点があることである。この機能を得る1つの要
因は、わずか2サイクルで64ビツト演算が行なえる浮
動小数点プロセッサ・モジュール130に内部データ通
路を使用したことである。もう1つの要因は、キャッシ
ュ・バス+44を広幅にして、複数の64ビット語を数
値プロセッサ・モジュール130と並行して転送できる
ようにしたことである。従って、64ビツト計算は語の
ほぼ半分の速度で(つまり、はぼ同じビット速度)32
ビツト演算として実行することができる。 さらに、本明細書に開示されている多数の新規事項を様
々なシステムに適応させることも可能である。これらの
新規事項は本好適実施例のバス標準と全く異なるバス標
準をもつシステムに適応させることも可能である。実際
には、VMEバス・インタフェースは特別には利点がな
いので(総バンド幅を妥当なものにすることとは別に)
、発明者の開示義務に従うために開示したにすぎない。 ホストとのバス・インタフェース 上述したように、本好適実施例では、ホストと結ぶ主要
インタフェースとしてVMEバスを使用している。この
バスは上述したようによく知られている。 他のバス構成を幅広く使用することも可能である。例え
ば、VersaBus、FutureBus、またはN
u[lusを必要ならば、システムに組み入れる設計が
簡単に実現できる。超高速計算システムの場合は、光学
バスを使用し、光ファイバに変調固体素子レーザを使用
すると利点が得られる。 画像プロセッサ・サブシステム 1つの実施例によるシステムは第1図(または9Aか1
0)に図示のような1または2以上のサブシステムと通
信するポストを使用しているだけでなく、特殊な図形プ
ロセッサである追加サブシステムを使用している。ここ
で使用されている好適画像プロセッサは“GIP”プロ
セッサとも呼ばれ、英国Kingston−upon−
Thames在のbenchMark Technol
。 gies Ltd 社から提供されているものである
。 第41図は1つの構成例であるが、勿論、広範囲にわた
る他のトポロジやシステム・アーキテクチャを使用する
ことも可能である。ホスト・コンピュータ4100は画
像ブ°ロセッサ・サブシステム414゜および少なくと
も2つの数値高速化サブシステム4150 (これは例
えば、第1.9.1o図に示すものと同じにすることが
できる)と、viIIEバス4170を経由して通信す
る。VMEバス・+110を経由して、主メそす416
0、大容二記憶装置ffu7g(例、ハード・ディスク
)、および任意的に、1つまたは2以上の装置インタフ
ェース4180 (これは出力装置、ゲートウェイ、他
の記憶装置などにすることができる)をアクセスするこ
とも可能である。 本実施例では、追加バスが2つ使用されている。画像デ
ータ・バス4130は図形プロセッサと結ぶアプリケー
ション仕様インタフェースとなる。 (これは広幅であり、画像または図形伝送で使用すると
特に便利である。)この実施例の構成例では、これは’
GIPバスJ (benchMark Technol
ogies社提供)が使用されている。このアプリケー
ション向きバスは画像処理サブシステムの広バンド幅大
出力要求に非常にマツチしている。これは広幅バスであ
り、160データ線からなっている。 もう一方のバックブレーン・バスはデータ・パイプ・バ
ス412oである。このバスを使用すると、複数の数値
高速化サブシステムを第34.35.36.37図に示
す」;うなトポロジ41可成で結ぶことかできる。この
実b6例の構成例では、このバスは32データ線からな
っている。 システムの動作 本発明を色々な角度から見たいくつかの重要な使い方と
、開示されているシステム・アーキテクチャのいくつ−
かの使い方について以下説明する。 以下で説明するいくつかの方法はそれぞれ個別発明を構
成するものである。 サンプル動作の一現 アーキテクチャの簡単な使用例について以下説明する。 この例では、ホスト・プロセッサ4100は数値高速化
サブシステム4150 (第1.9または10図に示す
ものと同じ)に対してコマンドを出して2つの配列を一
緒に乗算して(配列要素単位で)その結果を第3の配列
に入れておくものである。 3つの配列はすべてVMEメモリ空間(例えば、主メモ
リ4160)に置かれている。コマンドが出される前は
、サブシステムは遊休状態にあり、コマンドが実行され
ると、再び遊休状態になる。これは図式化して第42図
に示されている。 コマンド・シナリオは2種類が示されている。 最初のシナリオは使用されるメモリ空間が物理空間だけ
のシステムを詳しく説明している。(この種のアーキテ
クチャは、ホストが可能な限りの作業ユを高速化サブシ
ステムにオフロードすることが望ましい場合に使用でき
る。)第2のシナリオはVMSが稼動するVAXやUN
IXコンピュータに見られるような仮想メモリをもつシ
ステムに対するものである。この第2シナリオでは、動
的メモリ割振りとディスクとのデータのページ・インと
ベージ−アウトがどのように処理操作で取り入れられて
いるかが示されている。 第15図はコマンド・メモリ190がどのような構成に
なっているかを示している。また、やりとりされるコマ
ンドと割込みタイプのいくつかも示されている。注目す
べき重要点は、2つのコマンドFIFOが含まれるよう
にコマンド・メモリ190をソフトウェアで分割すると
好ましいことである。 [:PコマンドFIFO4,5
2GはCPモジュール110にアドレス指定されたコマ
ンドをバッファするものてあり、DTI’コマンドFI
FO1510はDTPモジュール120にアドレス指定
されたコマンドをバッファするものである。 コマンド・インタフェース、やりとり、および作業のス
ケジューリングはソフトウェアによ)て制御されるが、
必要に応じて変更することが可能である。従って、以下
の例はシステムをどのように使用する必要があるかを明
確化していない。システムが使用できる態様を示したに
すぎない。 物理メモリ・モデル(CP/DTP間のやりとり)この
例では、ホスト・プロセッサは高速化サブシステムに対
してコマンドを出して、2つの配列を一緒に乗算して(
配列要素単位で)、その結果を第3の配列に入れておく
ためのものである。3つの配列はすべてVMEメモリ空
間に置かれている。コマンドが出される前は、高速化サ
ブシステムは遊休状態にあり、コマンドが実行されると
、再び遊休状態になる。これは図式化して第42図に示
されている。 コマンI・の’J 行1fSには、次のようなステップ
で行なわれる。 (1)ホストはベクトル乗算コマンドを高速化サブシス
テムのコマンド待ち行列(これはVMEインタフェース
・メモリに置かれている)に入れる。 その際、コマンドで配列内の要素の数、2つのソース配
列のアドレス、および結果配列のアドレス指定しおく。 コマンドとそのパラメータが待ち行列に追加されると、
ホストはデータ転送プロセッサ・モジュール120に割
込みを引き起す。これにより、ホストは解放されるので
、他の仕事を行なうために使用できる。 (2)ホストから割込みを受は取ると、データ転送プロ
セッサ・モジュール120はコマンドとそのパラメータ
のコピーをとって、コマンド・メモリにあるソフトウェ
ア管理のCPコマンドFIFOに入れておく。割込みが
制御プロセッサ・モジュール11.0で引き起されて、
コマンドが存在するとの通知を受ける。データ転送プロ
セッサ・モジュール120は遊休状態に戻る。 (3)割込みを受けると、それに応えて、制御プロセッ
サ・モジュール+10は遊休状態から出て、コマンドと
そのパラメータをコマンド・メモリ+90内のCPコマ
ンドFIFO1520から読み取る。コマンドで指定さ
れたアドレスが検査され、オフボード(つまり、データ
・キャッシュ・メモリ140にではなく)に置かれてい
ることが判明する。従って、この例では、2つのデータ
取出しコマンドと”INTERRUPT (:P WI
IEN DONE−コv ンドがコマンド・メモリ19
0内のDTPコマンドFIFO1510に書き出される
。各データ取出しコマンドは配列のソース・アドレス、
その長さ、データ・キャッシュ・メモリ内のその宛先ア
ドレスを記述している。データ転送プロセッサ・モジュ
ール120に割込みが起こり、制御プロセッサ・モジュ
ール1.10は遊休状態に戻る。 (4)割込みを受けると、それに応えてデータ転送プロ
セッサ・モジュール120は遊休状態から出て、最初の
コマンド(とそのパラメータ)をDTPコマンドFIF
O1510から読み取る。データ転送ブロセッサ・モジ
ュール+20はデータを取り出すべきアドレスをチエツ
クして、それがシMEアドレス空間に厘かれていること
を確認する。次に、データ転送プロセッサ・モジュール
120はI/Mεインタフェース160内のDMAコン
トローラが配列を取り出して、それをVMEインタフェ
ース160内のデータFIFO670を書き込むように
セットアツプする。 (これは実際にはコマンド待ち行列FIFO1510お
よび1520と異なり、ハードウェアFIFOであり、
先入れ先出し機能はソフトウェアにもたせていることに
注意されたい。)このデータが到着すると、データ転送
プロセッサ・モジュール120はデータFIFO670
からデータを読み取り、それをデータ・キャッシュ・メ
モリ140に書き込む、転送が完了すると、DTPコマ
ンドFIFOが検査されて、次のコマンドはなにか(も
しあれば)が確かめられる。 この場合、別のデータ取出しコマンドが見付かると、最
初の取出しコマンドと同じ方法で実行されるにれが終る
と、次のコマンドが読み取られ、実行される。このコマ
ンドは制御プロセッサ・モジュール110に割込みを引
き起す。DTI’コマンドFIFO1510はこれで空
になり、データ転送プロセッサ・モジュールは遊休状態
に戻る。 (5)この割込みにより、制御プロセッサ・モジュール
11Gは、要求した2つの配列がデータ・キャッシュ・
メモリに格納されたことを知る。結果配列の宛先アドレ
スはオフボードにあるので、制御プロセッサ・モジュー
ル110は結果を入れておく一時的配列をデータ・キャ
ッシュ・メモリ140内に割り振る。CPモジュールI
I(lは計算処理を開始する。計算処理のとき、中間デ
ータ・セットがキャッシュ・メモリ140から取り出さ
れて、FPモジュール130(CPモジュール110の
制御下にある)のレジスタ・ファイルに移される。FP
モジュール130は独自のマイクロコードを稼動させ、
同期点でCPモジュール110とインタフェースになっ
て、数値演算を実行する。中間データ・セットはFPモ
ジュールのレジスタ・ファイルからキャッシュ・メモリ
140(CPモジュール110の制御下にある)に移さ
れる。従って、ベクトル乗算が完了したときは、結果は
、CPモジュール110によって以前に割り振られたキ
〜・ツシュ140内の配列に残ってい乙。 (6)次に、制御プロセッサ・モジュール110はデー
タ保管コマンドと”INTERRUPT ll0sT
WHENDONE” ニア 7 :/トをoTp:+マ
ントFIFO1510に書き出す。データ保管コマンド
は、データ・キャッシュ・メモリ内の結果配列のソース
・アドレス、宛先アドレス(下のコマンドで指定された
もの)、および配列長さを指定している。データ転送プ
ロセッサ・モジュール120に割込みが起こる。CPコ
マンドFIFOが空ならば、制御プロセッサ・モジュー
ル110は遊休状態に戻る。 (7)割込みを受けると、それに応えてデータ転送プロ
セッサ・モジュール120はその遊休状態から出て、最
初のコマンド(とそのパラメータ)をDTP ニアマン
トFIFOから読み取る。データ転送プロセッサ・モジ
ュール120はデータを保管すべきアドレスを調べて、
それがVMEアドレス空間に置かれていることを確認す
る6次に、データ転送プロセッサ・モジュール120は
、VMEインタフェース160内ノDMAコントローラ
640が正しい個数のF語をデータHFOδ70からV
ME主メモリに転送するようにセットアツプする。デー
タ転送プロセッサ・モジュール120はデータをデータ
・キャッシュ・メモリから読み取り、それをデータFI
FO670に書き込む。結果配列がデータFIFOに転
送されると、データ転送プロセッサ・モジュール120
はDMAコントローラにそのことを通知し、DMAコン
トローラがVMEメモリへの転送を終えるまで待ってい
る。 (8) DTPコマンドFIFOが空でなければ、次の
コマンドが読み取られ、実行される。これは”INTE
RRUPT−HO5T−WHEN−FTNISHED”
コマンドである。このコマンドを受けると、完了したば
かりのコマンドの状況がVMEインタフェース・メモリ
内のコマンド待ち行列に書き出され、ホスト割込みが引
き起される。この割込み通知を受けて、ホストはそのベ
クトル乗算コマンドが終了し、その状況をVMEインタ
フェース160内の状況レジスタから読み取ることがで
きることを知る。そのあと、データ転送プロセッサ・モ
ジュール+20は遊休状態に戻り、これで操作を終了す
る。 上記処理の途中のいつでも、ホストは新しいコマンドと
そのパラメータをコマンド待ち行列に書き込んで、デー
タ転送プロセッサ・モジュール120に割り込むことが
可能である。そうすると、DTPモジュールは割込み要
求を制御プロセッサ・モジュール110に対して出して
、新しいコマンドを通知する。可能ならば、その実行は
上述したように開始されることが好ましい。これを行な
うと、制御ブロセ、ツサ・モジュール110とデータ転
送プロセッサ・モジュール120はコマンドの処理に専
念できるが、望ましくないやりとりがコマンド間で行な
われないようにする配慮が必要である。 データ・アドレス割当てはかなり柔軟性をもたせている
。インタフェース150.160.170(と局所デー
タ・キャッシュ・メモリ140)の各々には、そこを通
してアクセスできるアドレスが範囲で割り当てられてい
る。これにより、データ転送プロセッサ・モジュール1
2Gは異なるデータ・ソースや宛先の場所ごとに別コマ
ンド定養をしなくても、コマンドのデータ要件を満足す
るように正しいインタフェースを制御することができる
。 上述の例では、コマンドはVMEバスを経由してホスト
から送られてきたが、これらのコマンドは前述の説明内
容に殆んど変更を加えないで、インタフェースのどれか
らでも簡単に出すことができる(あるいはコマンド・リ
ストの一部として保管しておくことができる) VME
ホストは1つの例として選ばれたものである。 コマンドに必要な総記列サイズがデータ・キャッシュ・
メモリ内の空き記憶域を越えるときは、制御プロセッサ
・モジュール110はコマンドをいくつかの小さな演算
に分割することによって、使用可能な記憶スペース内で
コマンドを処理することを試みる。しかし、ある種のコ
マンドの場合は、これは不可能であるので、ホストにコ
マンドが失敗したことが通知される。 ポストかコマンドを送るのが早すぎる場合は、内部ソフ
トウェアFIFOが一杯になることがある。 これが全体の演算に影響するのを防止するために次のよ
うな配慮がなされているa第1は、DTPコマンドFI
FO1510がcpコマンドPIFOL520の奥行の
少なくとも3倍になっていることである。1つのホスト
・コマンドは3つ以上のデータ転送コマンドになること
は稀にしかないので、DTPコマンドFIFOがホスト
・コマンドの結果として一杯になることはない。 CPコマンドFIFOはほぼ満杯マークまでくると、V
MEインタフェース内の状況ビットがセットされる。 仮想メモリ・モデル 仮想メモリを採用する場合は、ホスト側の作業量が増加
するというやっかいな問題がいくつか生じる。これらの
問題が起こるのは、アプリケーションが物理fモリより
はるかに大きい仮想アドレス空間をアクセスできるから
である。仮想アドレス空間全体はディスク上にだけ存在
し、活動中のソフトウェアがそのとき必要とするアドレ
ス空間部分は実行時に必要に応じて主メモリにページ・
インされる。このことは、次のような種類の問題をいく
つか起こす原因になっている。 配列、または配列の部分がディスク上にだけ存在し、物
理メモリに存在しないことがある。さらに、高速化サブ
システムが必要とする配列部分がシステムで稼動中の他
のタスク用のスペースを作るために、スワップ・アウト
されることがある。 配列に割り当てられる物理アドレスは、コンピュータ始
動以後のすべての処理活動記録と共に変化するので、予
測ができない。 各仮想メモリ・アドレスは変換処理を受けて、特定のデ
ータ項目をアクセスするための物理アドレスが決まる。 この結果、配列がメモリ内で非連続になったり、分散し
たりする。 これらの問題を回避するには、データ転送プロセッサ・
モジュール120が配列をデータ・キャッシュ・メモリ
との間で転送している間、配列を物理メモリにロックし
ておく必要がある。理想的には、配列か連続しているの
が望ましい。配列を連続にできない場合は、データ中云
送フ゛ロセッサ・モジュール+20は転送の過程で分散
/収集操作を行なう必要がある。しかし、データが物理
メモリのどこに分布しているかを知るには、分散/収集
テーブルが必要になる。 高速化サブシステムとの間のデータ転送を組織化し、そ
れに伴なうメモリ管理機能を扱う仕事をアプリケーショ
ン・ソフトウェア(ホスト上で稼動する)にもたせるの
が好ましい。(実際には、アプリケーション・ソフトウ
ェアは、MATHライブラリ・ルーチンと装置ドライバ
がこれらの問題を扱うので、その大部分から解放されて
いる。業界標準配列プロセッサ・ライブラリ・ルーチン
はデータを配列プロセッサとの間で受は渡しすること(
ライブラリ・ルーチンを使用して)をユーザ側に任せて
いる。)ソフトウェア階層について以下説明するが、こ
こではその違いについては触れないことにする。 上述した配列乗算例では、アプリケーション・ソフトウ
ェアは次の7ステツプを受は持っている。 ■)配列Aを高速化サブシステムに転送し、それをアド
レス昌に保管する(高速化機構によって実行)。 2)配列B′j!−高速化サブシステムに転送し、それ
をアドレスBBに保管する(高速化機構によって実行)
。 3)高速化サブシステムが転送を終えるまで待っている
(高速化機構によって実行)。 4)アドレス静とBBにある配列を一緒に乗算してその
結果をCCに保管する(高速化機構によって実行)。 5)高速化サブシステムが乗算コマンドを終えるまで待
っている(ホストによって実行)。 6)アドレスCCにある配列をホスト・アドレス空間に
転送する(高速化機構によって実行)。 7)高速化サブシステムが転送を終えるまで待っている
(ホストによって実行)。 この処理順序に関して注目すべき点をいくつか挙げると
、次の通りである。 祖数のコマンドを高速化サブシステムに送ることがてき
る。これらのコマンドは待ち行列に置かれてから、処J
里される。 ホストは転送と乗算との間の同期点を出して、すへての
データがデータ・キャッシュ・メモリに存在するまで乗
算が開始されないように配慮する。 高速化サブシステムを待たなくても、ホストが解放され
ているので他の仕事ができる。しかし、ホストのオペレ
ーティング・システムは、高速化サブシステムとの同期
をとるためには明示の待ち操作が必要になるのが普通で
ある。 ステップCとeは、転送と計算操作の同期化がオプショ
ンとして高速化サブシステム内で簡単に行なえるので、
省略してもよい。しかし、そうすると、業界の事実上の
標準と互換性を失うことになる。 データ・キャッシュ・メモリのメモリ割振りはCPマイ
クロコード監視ルーチンよりも高いレベルて扱われる。 配列はメモリ内でロックされ、データ断片化の問題はア
プリケーションと高速化サブシステム間のインタフェー
ス・ソフトウェアによって取り扱われる。同期(待ち)
点が頻繁に現れると、メモリ・ブロックは短期間ロック
されるので、多重ユーザや多重タスク処理環境に与える
ストレスが軽減される。 コマンドの実行は次のようなステップで行なわれる。 (1)ホストは、コマンド・タイプと対応する数のパラ
メータを指定して、コマンド(転送または計算)を高速
化サブシステムのコマンド待ち行列(VMEインタフェ
ース・メモリに置かれている)に入れる。コマンドとそ
のパラメータが待ち行列に追加されると、ホストはデー
タ転送プロセッサ・モジュール120に割込みを引き起
す。これでホストは解放されるので、他の仕事に使用で
きる。 (2)ホストから割込みを受けると、データ転送プロセ
ッサ・モジュール120は現在の活動(遊休中かある種
の転送)を−時中止して、コマンドのタイプを調べる。 コマンドには次のようなタイプがある。 コマンドが制御プロセッサ・モジュール110に対する
ものならば(つまり、計算)、コマンドとそのパラメー
タはコピーされて、コマンド・メモリ190内のCPコ
マンドPIF01520に入れられる。 制御プロセッサ・モジュール110で割込みが起こり、
そのコマンドが通知される。データ転送プロセッサ・モ
ジュール120は前の活動に復帰する。 コマンドが同期化コマンドならば、未処理のコマンドす
べてが完了するまで以後のコマンドは待ち行列から取り
出されない。これは、“WAIT FOR^LL AN
D N0TIFY HO5T”コマンドをDTPコマン
ド待ち行列に挿入することによって行なわれる。 (3)遊休状態にある間、データ転送プロセッサ・モジ
ュール12Gは絶えずCPコマンドFIFOを調べてい
る。この待ち行列が「空でない」状態になると、コマン
ドはそこから取り出され、操作が行なわれる。例えば、
ホストからデータ・キャッシュ・メモリへの転送の場合
には、データ転送プロセッサ・モジュール120はVM
Eインタフェース内のDMAコントローラが配列を取り
出し、それをデータFIFOに書き込むようにセットア
ツプする。転送が終ると、DTPモジュール120はコ
マンドをDTPコマンド待ち行列から取り除く。別のコ
マンドがFIFOにあれば、そのコマンドが実行され、
DTPコマンド待ち行列が空ならば、データ転送プロセ
ッサ・モジュール120は遊休状態に戻る。 (4)割込みを受けると、それに応じて制御プロセッサ
・モジュール110は遊休状態から出て、コマンドとそ
のパラメータをコマンド・メモリ内のソフトウェアCP
コマンドFIFOから読み取る。アドレスAAと88に
ある配列のベクトル乗算が完了すると、その結果の配列
はデータ・キャッシュ・メモリ内のアドレスCCに残さ
れている。コマンドの実行が終ると、そのコマンドはC
PコマンドFIFO1520から除かれる。他にコマン
ドがなければ、制御プロセッサ・モジュール110は遊
休状態に戻る。 上記3j2明において注目すべき点をいくつか挙げると
、次の通りである。 制tallプロセッサ・モジュール110とデータ転送
プロセッサ・モジュール1’20間の内部制御と同期化
が物理メモリ・モデルに比べて大幅に減少する。データ
転送プロセッサ・モジュール120は制御プロセッサ・
モジュール110よりも制御機能(またはコマンド経路
指定機能)が強化されている。 待ち行列はホスト連絡用に1つ、DTPの作業用に1つ
、CPの作業用に1つの3つが活動している。 高速化サブシステム側でデータ・キャッシュ・メモリに
残っている以上の記憶域が必要になる計算の場合には、
その計算を小さな部分に分割する仕事はホストが行なう
。 cpとFP間のやりとり 制御プロセッサ・モジュール110と浮動小数点プロセ
ッサ・モジュール130はアルゴリズムを実行するため
に、非常゛に緊密な関係でやりとりする。制御プロセッ
サ・モジュール110はアドレスを計算し、データ・キ
ャッシュ・メモリと浮動小数点プロセッサ・モジュール
130間のデータ転送を取り扱うのに対し、浮動小数点
プロセッサ・モジュール130はデータ計算を行なう。 このやりとりは制御プロセッサ・モジュール110、デ
ータ転送プロセッサ・モジュール120およびホスト・
コンピュータ間のインタフェースのタイプから独立して
いる。 ベクトル乗算コマンドでは、浮動小数点プロセッサ・モ
ジュール130はベクトル乗算を一度に8個の要素ずつ
行なう。従って、配列が大きいときは、制御プロセッサ
・モジュール110と浮動小数点プロセッサ・モジュー
ル130との間でやりとり(同期点とも呼ばれる)が数
千回行なわれることもあり得る。同期点は、この例では
、400nsごとに現れるので、これらを効率よくする
ことは非常に重要である。 大抵の場合、制御プロセッサ・モジュール110は浮動
小数点プロセッサ・モジュール+30がデータ計算を行
なうよりも、アドレス計算とデータ転送を高速に行なう
能力をもっている。その逆の場合には、待たされる方が
反対になる。 2つのフラグ(CPWAITとFPW八Iへ)が両プロ
セッサ間の同期を制御することは上述した。FPWAI
Tフラグは次の組のデータを浮動小数点プロセッサ・モ
ジュール130との間で転送すると、制御プロセッサ・
モジュール110によってクリアされる。このフラグを
テストすることにより、浮動小数点プロセッサ・モジュ
ール130は同期点まで進むことができるか、制御プロ
セッサ・モジュール110を待つ必要があるかを知るこ
とができる。CPWAITフラグはデータ計算を終える
と、浮動小数点プロセッサ・モジュール130によつて
クリアされ、制御プロセッサ・モジュール110によっ
てモニタされる。ハードウェアは、フラグがクリアされ
てプロセッサが同期点まで進むことが可能になると、同
期点を通過した直後にフラグが自動的にセットされる構
成になっている。 第22図はFT’WAIT、CPW雇T、FPDONE
、およびCPDONEフラグがcpモジュール110と
FPモジュールNO間のデータ・インタフェースを調整
するためにどのように使用されるかを状態図で示したも
のである。 プロセッサ間のハンドシエイキング・ロジックとセマフ
ォは多種類のものが実現されているが、第22図に示す
状態図が非常に利点があり、新規なものである。 制御プロセッサ・モジュール110と浮動小数点プロセ
ッサ・モジュール130間のデータ転送は2重バッファ
になっているので、浮動小数点プロセッサ・モジュール
130がある組のデータを処理している間、制御プロセ
ッサ・モジュール110は別の組のデータを処理するこ
とができる。2重バッファリングは上述したようにソフ
トウェアで行なわれる。両プロセッサはバッファの交換
を制御する信号をもっており、これらは”AND“がと
られて両プロセッサが活動しているときだけ交換が行な
ねれるようにしている。 ベクトル乗算は以下のステップで行なわれる。 (同し番号をもつステップは並列に行なわれるものであ
る。)これらのステップを図式化してフローヂャートで
示したのが第33図である。 (1)制御プロセッサ・モジュール!10はFPWAI
Tフラグをセットして、ベクトル乗算マイクロコードが
実行される浮動小数点プロセッサ・モジュール130を
始動する。7¥動小数点プロセッサ・モジュール130
はFPWAITフラグがクリアされるまで待たされる。 (2)制御プロセッサ・モジュール110は最初の8要
素を両配列から2重バッファ(これは物理的には上述し
たように、レジスタ・ファイル430の2バンクから構
成されている)に転送する。CPモジュールは次に、2
重バッファを交換して、浮動小数点プロセッサ・モジュ
ール130がデータをアクセスできるようにして、FP
WAITフラグをクリアする。 (3)制御プロセッサ・モジュール+10は次の8要素
を両配列から2重バッファに転送して、FPWΔITフ
ラグをクリアする。そのあと、CI’WAITフラグが
クリアされるまで(浮動小数点プロセッサ・モジュール
130によって)待たされる。 (3b)浮動小数点プロセッサ・モジュール130はF
PW八Iへフラグがクリアされていることを見つけると
、2重バッファの浮動小数点プロセッサ・モジュール1
30側に保管されている8対の要素に対するベクトル乗
算の計算を開始する。8個の結果は2重バッフ1に書き
戻され、FPWAITフラグがクリアされる。この例で
は、制御プロセッサ・モジュ−)し110はすでに終え
て、FPW八Iへフラグをクリアしているので、浮動小
数点プロセッサ・モジュール130はバッファを交換し
て、即時に次の組の計算を開始することができる。 (4a)制御プロセッサ・モジュール110は8個の結
果を2重バッファからデータ・キャッシュ・メモリに転
送し、そのあと次の8個の要素を両配列から2重バッフ
ァに転送して、FPWAITフラグをクリアする。その
あと、CPWAITフラグがクリアされるまで(浮動小
数点プロセッサ・モジュール130によって)待たされ
る。 (4b)浮動小数点プロセッサ・モジュール130はF
r’WAITフラグがクリアされているのを見つけると
、2重バッファの自分側に保管されている8対の要素に
対するベクトル乗算の計算を開始する。 8個の結果は2重バッファに書ぎ戻され、CPWAIT
フラグがクリアされる。この例では、制御プロセッサ・
モジュール110はすでに終えて、 FPWAITフラ
グをクリアしているので、浮動小数点プロセッサ・モジ
ュール130はバッファを交換して、次の組の計算を開
始することができる。 (5)ステップ(4a)と(4b)がベクトル計算全体
が完了するまで繰り返される。 (6)ステップ(5)が終わったとき、最後の組の結果
はまだ2重バッファのFP側に残っているので、制御プ
ロセッサ・モジュール110はバッファを交換して、最
後の結果をデータ・キャッシュ・メモリに転送する。 第1図に示すようなシステムを動作させるときは、実行
時ソフトウェア環境全体をいくつかのレベルに分割する
ことが好ましい。これらのレベルのうちあるものは、異
なるプロセッサで実行される個々のコード・モジュール
として存在し、他のレベルは必要とされるインタフェー
スをいくつかのレベルに分割する形で存在している。こ
れらのレベルすべてとレベル間インタフェースはソフト
ウェア制御下に置かれ、アプリケーション要件に合って
いなければ、変更が可能である−0このソフトウェア構
成は一般的に従来からあるものである。しかし、本明細
書に記載の新規事項の望ましい使い方を分かりやすくす
るために、以下で説明しておくことにする。 第44^、44B、および44C図は第1図に示すよう
なシステムのプログラミング環境を示したものである0
図示の機能別ブロックの多くは他の図に示されているハ
ードウェア要素のそれと同じ番号で示されているが、第
44^、44B、および4LC図はプログラマから見た
機能別ブロック間の関係を示すことを目的としている。 従って、これらの図は必ずしも現実の電気的および論理
的接続に正確に対応していないことにン主意されたい。 アプリケーションとライブラリ・ソフトウェア以下の説
明では、アプリケーション・ソフトウェアが例えば、F
ORTRANや°C゛のような高水準言語で書かれてお
り、標準ライブラリ・ルーチンを呼び出して、高速化サ
ブシステムを使用するものと想定している。これらの呼
出しは業界の事実上の標準に準拠している(つまり、全
体的に浮動小数点システムからのプロダクト命令セット
と互換性がある)、これらには、アプリケーション・デ
ータ区域と高速化サブシステムのデータ・キャッシュ・
メモリ間でデータを転送するルーチン、広範囲にわたる
計算、ある種の同期化ルーチンが含まれている。 このレベルでのソフトウェアはホスト・コンピュータ・
システム上で稼動し、必要とするアプリケーションを実
施する機能をもっている。これはライブラリとリンクさ
れて、高速化サブシステムをアクセスする。 ライブラリはアプリケーション・ソフトウェアから見て
、高速化サブシステムと結ぶインタフェースの働きをす
る。ライブラリは数百に及ぶ共通算術演算/アルゴリズ
ム・ルーチン群と、高速化サブシステムを初期設定し、
アプリケーションの配列やデータ・セットのデータ転送
を開始するルーチン群から構成されている。大部分のラ
イブラリ・ルーチンは入力パラメータと機能番号を装置
ドライバに渡すだけの機能しかないが、ある種のパラメ
ータ有効性検査が必要ならば組み入れることも可能であ
る。。本好適実施例では、装置ドライバとのインタフェ
ースはシステム呼出しくSystemCalls)を経
由する。しかし、ある種のオペレーティング・システム
では、呼出しタスクが再スケジューリングのために受渡
しされるので、呼出しに大きなオーバヘッドがかかって
いる。 装置ドライバ 装置ドライバはオペレーティング・システムの一部と考
えることができ、アプリケージ3ン・ソフトウェアより
も高度の特権レベルで実行される。装置ドライバの主な
役割は次の通りである。 1)コマンドとパラメータをライブラリ・ルーチンから
高速化サブシステムのVMEインタフェース・メモリに
置かれているコマンド待ち行列に転送すること。 2)転送すべきデータ(仮想メモリ・システムにある)
がメモリにロックされていることを確かめること。この
ためには、転送が連続ブロックに分割されていて、小さ
く分割した複数の転送が実際に行なわれているか、分散
/収集テーブルが作られていて、高速化サブシステムに
渡されていることが必要である。 3)マイクロコードを複数のプロセッサにロードし、−
数的にはハードウェアとマイクロコードを既知の状態に
まですること(電源投入後か、新しいアプリケーション
がそれを使用する準備状態に置くため) ライブラリと装置ドライバを新しいホスト上に移植する
最も困難な問題の1つは、装置ドライバである。これら
は非常にオペレーティング・システムに依存する傾向が
あるので、ホスト・システムの詳しい知識が要求される
。任意的には、この種の問題を避けるために、物理メモ
リへのアクセスが許される場合には、ライブラリを直接
にハードウェアとのインタフェースにすることが可能で
ある。こうすれば、トライバの必要性が回避される。こ
の方法で高速化サブシステムをアクセスすると、装置ド
ライバを使用する場合よりも高速化される。しかし、特
に複数ユーザ環境では、安全保護が低下することになる
。 マイクロコード監視ルーチン マイクロコード監視ルーチンは、高速化サブシステムに
おける転送と計算以外の残りのタスクを取り扱うもので
ある。その主なタスクは、ホストとの連絡、制御プロセ
ッサ・プロセッサ・モジュール110とデータ転送プロ
セッサ・モジュール120間の作業分担、およ゛び内部
と外部の同期化である。 監視ルーチンは装置ドライバとは反対側の待ち行列の最
後に行かれており、作業を待ち行列から取り出す。(こ
れを行なうには、作業が空の待ち行列から取り出されな
いようにするためのある種の待ち行列管理が必要になる
。) どの程度複雑になるかは、どのプロセッサが使用される
かによって決まり、また、ホストにどれだけの仕事をさ
せるか、あるいは高速化サブシステムに負担させるかに
大きく左右される。物理メモリと仮想メモリ・モデルの
個所で行なったベクトル乗算コマンドの説明から明らか
なように、監視ルーチンはいろいろな手法を採用するこ
とができる。 物理メモリ・アーキテクチャでは、監視ルーチンはデー
タ転送プロセッサ・モジュール120と制御プロセッサ
・モジュール110の間で分割される。データ転送プロ
セッサ・モジュール120の部分は、ホストと制御プロ
セッサ・モジュール110は直接にデータをやりとりで
きないので、コマンドの経路指定を行なうだけである。 制御プロセッサ・モジュール110は作業の分散化とハ
ンドシエイキングを組織化する。 この分割は任意的である。別の(好ましさの点で劣るが
)アーキテクチャでは、制御プロセッサ・モジュール1
10をデータ転送プロセッサ・モジュール120のスレ
ーブ・プロセッサ(その反対でなく)として働かせるこ
とも可能である。 仮想メモリ・モデルでは、データ転送プロセッサ・モジ
ュール120がマスクであり、制御プロセッサ・モジュ
ール110がスレーブになっていた。 制御はその殆どがホスト側で取り扱われるので、監視ル
ーチンのDPT部分はコマンドの経路指定だけを扱えば
よい。制御プロセッサ・モジュール110が待ち行列管
理に関与するのはわずかである。 マイクロコード転送ルーチン(DTP)これらのルーチ
ンは外部インタフェースの1つとデータ・キャッシュ・
メモリ間のデータ転送を取り扱う。インタフェースは主
にVMEバス(とホスト・メモリ)に対するものである
。 ホスト・メモリとデータ・キャッシュ・メモリ間の転送
の大部分は、7続ブロツク転送、分11に/収集転送、
n番目の語ごと、行/列2次元配列アクセスといったよ
うに、転送の種類が狭い範囲に限られている。 上記種類のいずれにも属さないタイプの転送はいずれも
、必要時に追加することができる。ここで注目すべき重
要な点は、ベクトル加算がベクトル乗算と同じ転送ルー
チンを使用することである。これが便利なのは、上述し
たように、データ転送ルーチン(計算ルーチンと異なり
)はベクトル加算とベクトル乗算を区別する必要がない
からである。 マイクロコード転送ルーチン(CP) これらのルーチンはデータ・キャッシュ・メモリの1つ
と浮動小数点プロセッサ・モジュール130の高速レジ
スタ・ファイル間のデータの転送を取り扱う。 この場合も、データ・キャッシュ・メモリとレジスタ・
ファイル間の転送の大部分は、1ベクトル・インと1ベ
クトル・アウト、2ベクトル・インとオベクトル・アウ
ト、1ベクトル・インとスカシ・アウトといったように
、転送の種類が狭い範囲に限られている。これらの転送
タイプはデータ型(タイプ)に応じてさらに分類するこ
とができる。ベクトルは単純または複素数データ型に分
けることができ、もっと特殊化された転送タイプもいく
つかある( FFT、 畳み込みなど)。これらは汎用
ルーチンが使用されない場合に効率が向上する。 ここで注目すべき重要な点は、異な−る演算で同じルー
チンがイ吏用できることである。つまり、ベクトル加算
は、例えばベクトル乗算と同じ転送ルーチンを使用する
。 マイクロコード計 ルーチン(FP) 各計算タイプごとに、(例えば)8つの加算、減算また
は必要な演算を行なうルーチンが用意されている。この
種のルーチンによって制御される”( データ転送は、高速レジスタ・ファイル430、乗算機
構450、加算機構440、およびスクラッチパッド1
610を含む密結合データ通路内で行なわれるものだけ
である。(このデータ通路には、いくつかの局所バスも
あり、その中には第1オペランド局所バス43工、第2
オペランド局所バス432、結実用局所バス431、ル
ープバック接続434が含まれる。)、この場合も、必
要となるルーチンの多くはいくつかの標準データ形式別
に分類される。この分類の1例として、ダイアジック・
ベクトル演算(2ベクトルーインと1ベクトル・アウト
、例:ベクトル加算またはベクトル乗算)がある、従っ
て、標準テンプレートをあるカテゴリ内の各計算タイプ
ごとにセットアツプすることが可能である。これにより
、FPマイクロコードを高速に生成して、基本ベクトル
演算の多くを取り入れることができる。 上述したように、レジスタ格納演算指定子はマイクロコ
ード演算コマンドを補強するために使用できる。これに
より、ある計算タイプのカテゴリ内の個々のルーチンす
べてを、1つのルーチンとして書(ことができる。その
場合は、制御プロセッサ・モジュール110は計算タイ
プを指定するために演算レジスタをロードしなければな
らない。 短縮マイクロコード 上述したシステムは短縮マイクロコードを使用する機能
を備えているので、レジスタに格納されている演算指定
子をマイクロコード命令の残り部分と結合することがで
きる。これは実際には、木好適実施例では、上述したよ
うにFPモジュール130で使用されている。 この種の短縮マイクロコードは多重プロセッサ・システ
ムの数値処理部分で使用すると、特に利点が得られる。 その場合には、演算指定子短縮マイクロコードを使用す
ると、演算をオーバレイさせる必要がなくなる。 従って、例えば、2つの配列を3個目の配列上にマツピ
ングする演算の場合(例: Gi−Af + 8i)に
は、命令レジスタに演算指定子(例:”ADD”)をロ
ードしてから、この種の演算列を開始させることができ
る。この演算列は、演算を直接に指定しなかったコード
で記述されることになる。 従って、この機能を実時間拡張マイクロコードで使用す
ると、多重プロセッサ・システムにおける2つのマイク
ロコード・プロセッサ間のインタフェースにさらに高度
の柔軟性をもたせることができる。 また、命令を数値処理部分にロードするとき要求される
バンド幅を単純化することも可能になる。従って、アル
ゴリズム切替えやタスクの再分割がもっと効率よくなる
。 二土エユ王ヱl旦 第3A図および第3B図を参照して上述したように、本
発明はマイクロコード・システムのマルチウェイ分岐に
全く新しい機能をもたせている。第30図は、本好適実
施例においてアドレス境界の制約のないマルチウェイ分
岐を可能にするマイクロコード操作を示した概略図であ
る。 上述したように、本発明はマルチウェイ分岐をアドレス
境界の制約なしで行なうマイクロコード・コンピュータ
・システムの、アーキテクチャを提供するものである。 さらに、代替宛先間の増分を可変にしている。相対アド
レス指定機能をもつシケンサが使用されている。 本好適実施例では、プログラム・カウンタがジャンプ宛
先の入力として使用されている。これはマルチウェイ分
岐を取り入れて、ベース宛先アドレスが異なるソースか
ら求められる多くの公知システムとは異なるものである
。 蒸散フーリエ 装(IlQpleIIlentat
ion)第31図は、新規な方法で実現した離散フーリ
エ変換の主要機能のいくつかを示す概略図である。 この例では、実現しようとする変換は高速フーリエ変換
(FFT)である。 図示の例は16点基数2複素数FFTである。勿論実世
界のFFTはより多くのデータ点を使用して実現されて
いるが、この例では、いくつかの重要な点を示している
。n点FFTには、log 2nステージが必要である
ので、1024点FFTには10ステージが必要になる
。各ステージでは、n/2バタフライ計算を行なう必要
がある。 バタフライ計算は次式で与えられる。 ro = r4 + [(f6傘r8)]
+ (r7中r9)]rl −r5 + [(f
7中r8)] −(rfi中r9)]r2 − r4
− [(ffi中r8)] + (r7傘r9
)]r3 − r5 − [(f7申r8)]
−(r6傘r9)]ただし、 「0と「1は結果Cの実数部と虚数部である。 「2と「3は結果りの実数部と虚数部である。 r4とr5は人力Aの実数部と虚数部である。 r6と「7は入力Bの実数部と虚数部である。 r8とr9は係数にの実数部と虚数部である。 (角かっこ[]内の式は形式的には同じであり、大かっ
こ()内の式も形式的には同じであることに注意された
い、) 第31図は4ステージFFT演算を図式化して示してお
り、各々の円は1つのバタフライ計算を表している。各
日の左側と結ばれている線はバタフライ計算に対する複
素数入力サンプル(AとB)がどこから得たものかを示
し、右側と結ばれている線は複素数の結果(CとD)が
どこに書き出されるかを示している。円内の数は複素数
フェーズ係数”k”である。 本方法の好適実施例では、FFTアルゴリズムは第1図
に示すようなアーキテクチャにおいて、制御プロセッサ
・モジュール110と浮動小数点プロセッサ・モジュー
ル130間で分割することによって実現されている。第
31図に示すように、アドレス計算は、特に非常に多数
のデータ点が必要になる場合は、意味がない。制御プロ
セッサ・モジュール110はアドレス計算を実行して、
バタフライ計算のための正しいデータ・サンプルとフェ
ーズ係数の流れを作り出す。バタフライ計算は実際には
浮動小数点プロセッサ・モジュール130によって実行
される。 各ステージでデータ点のいくつかに付いている陰影バー
は、この実施例で得られる新規なデータ処理を示してい
る。各ステージで示されている陰影バーは1つの中間デ
ータ転送のセットを示している。従って、例えば、プロ
セスの開始時には、人力データの8複素数語(0語)が
ロード・インされている。このデータ量だけでも、4つ
のバタフライ計算を実行するのに十分な入力となる。 (係数も与える必要がある。)陰影バーは最初の組の4
つのバタフライに対して、C語xO1XI、X2、×3
、X4.X8、X9、XIO,Xllがロード・インさ
れルコとを示している。4つのバタフライ計算が実行さ
れ、8個の0語からなる結果が転送される。さらに、正
しい組のフェーズ係数をロードするには、追加の転送が
いくつか必要である。(最初のステージでは1つだけの
フェーズ係数が使用されているが、異なるフェーズ係数
の個数は各ステージごとに2倍になることに注意された
い、従って、各組の4バタフライには少なくともバス1
44の4サイクルが必要になる。2サイクルは8個の0
語の入力を持ち込むためのものであり、2サイクルは0
語の結果を再移動するためのものである。(さらに、係
数を転送するために5番目の主サイクルが必要になる。 ) 8個の0語は512ビツト、つまり、16個のF語に相
当するので、これは意味のあるデータ・ブロックとなる
。しかし、この方法は本好適実施例で提供される高バン
ド幅を利用できるという利点がある。 さらに、データをこのサイズのブロック単位で転送する
と、同期点で使用されるCP/FPハンドシエイキング
・ロジックにとフて好都合であることが実証されている
。 従って、FFTは次の2つの部分に分割されている。 制御プロセッサ・モジュール110は複素数データのア
ドレスとテーブル・シーケンス内のフェーズ係数位置を
、ステージとバタフライ数を関数として計算するソフト
ウェアを実行させる。アドレスが計算されると、IIJ
御プコプロセッサジュールで稼動中のプロセスは浮動小
数点プロセッサ・モジュール130に送り込まれるデー
タの転送も制御する。浮動小数点プロセッサ・モジュー
ル130がバタフライ計算を完了すると(そして同期点
にあることを示すようにフラグをセットすると)、制御
プロセッサ・モジュール11Gは結果を読み取って、そ
れを保管する。制御プロセッサ・モジュール110はバ
タフライ計算が行なわれていることを知らない。同期点
で浮動小数点プロセッサ・モージュール130とデータ
をやりとりするだけである。 FPモジュール130は、式が上で定義したようにコー
ディングされている単純なリニア命令列によってバタフ
ライを計算するソフトウェアを実行する。このルーチン
は正しい入力データと係数を得るために必要な複雑なア
ドレス計算を知らなくてもよい。従って、このルーチン
はCPモジュール11Gで稼動するソフトウェアから完
全に切り殖して書くことができる。 この分割が利点としてもつ特徴は、各ステージのFPプ
ロシージャが最後の2つのステージまでそっくり同じに
できることである。(最後の2ステージで実行されるバ
タフライ計算はより密に結合した0語入力を使用するの
で、ある種の中間結果を、レジスタ430に保持されて
いるデータとしてFP内で前送りできる。) この例は、プロセッサ間を独立にできることも示してい
る。 FPモジュール130によって実行されるプロシ
ージャは非常に単純に定詮されているので、浮動小数点
プロセッサ・モジュール130が異なる81算機構チッ
プ・セット上に再設計された場合は、この単純なバタフ
ライ・ルーチンだけを変更すればよいことになる。この
ことは再アセ、ンブルする場合も同じである。 CPとFPのソフトウェアの実行は並列に行なわれ、ア
ルゴリズムが実行される速度が最も遅い部分で決まるよ
うにパイプライン化ざわている。 FP命令列はこのバタフライ計算を実行するに当たり、
FFTにおける最後の2つのバタフライを除くすべてに
つい、て同じままである。従って、例えば、1024点
の複素数FFTでは、FPモジュールは最初の8ステー
ジの計算を行なうために、同じ命令列512を実行する
ことになる。そのあと、FFTが最後の2ステージに対
して異なる命令列の実行を開始する。 多重FPモジュール付きFFT もう1つの特に魅力のある構成は、4個のFPモジュー
ル130を備えた第1O図に示すようなシステムである
。 性能に影響を与える主要要因は、バタフライ計算時間と
[バタフライ・カルキュレータ」 (例えば、FPモジ
ュール130)に対するデータ転送バンド幅の2つがあ
る。得られる性能はこれらのパラメータのどちらが満足
されなかったかによって決まる。以下の計算例はIK複
素数FFT、基数2に関するものである。 バタフライ計算スルーブツト 基数2のFFTバタフライ計算式は、部分結果が再使用
可能であるとき10回の演算(4回の乗算と6回の加算
/減算)からなっている。第1図(または第1θ図)に
示すようなシステムでは、この計算は、式がAL[Iと
乗算機構を並列に使用することに役立たないので、10
サイクルを要する。42nsサイクル時間を使用すると
、バタフライ計算には420nsが必要になる。実際の
サイクル時間は6回のALIJ演算では52ns、4回
の乗算では42ns(#!計330ns )を必要とす
るが、同期化、パイプライン始動、などのオーバヘッド
を含めると、400nsになる。従って、FPモジュー
ルは400nSてバタフライを計算することができる。 転送バンド幅 各基数2のバタフライ計算には、2個の複素数サンプル
と複素数係数(または反復係数)が必要である。この計
算からは、2個の複素数結果が得られる。総計では、5
個の複素数または10個の浮動小数煮詰をバタフライご
とにデータ・キャッシュ・メモリ140とFPLIの間
で転送する必要がある。キャッシュ・メモリのバンド幅
は毎秒320MBつまり、80M浮動小数点語である。 このデータ速度は8個の連続、する語が1つのメモリ・
サイクル(100ns )で転送できるときだけ達成さ
れる。しかし、FFTを実行させるときは、これは常に
可能である。メモリのバンド幅を最も効率よく使用する
方法は、メモリ・サイクル当たりに4バタフライのデー
タを転送することである。従って、4回のバタフライ計
算には5回のメモリ転送サイクルが必要になる。 1に複素数FFT(基数2)は5120個のバタフライ
からなっている。このFFTに対してデータ転送速度ヤ
1イ[容される最小時間は、従って、(5120/4)
中51100ns−640マイクロ秒によって与えられ
る。 しか17、このスルーブツト見積値は、最後の2ステー
ジの効果を考慮に入れると、修正する必要がある。ステ
ージn−2で4個のバタフライ計算の和から得た結果の
各データ・セット(8個の0語)は、中間結果をメモリ
に戻さなくても、ステラn−2の4バタフライとステー
ジn+1の4バタフライを計算するのに十分である。し
かし、追加の組の係数が第2ステージで必要になる。こ
の正味の結果は6メモリ・サイクルだけで8バタフライ
を計算することができる。(この手法はり。 Rabiner とB、Gold共著「デジタル信号処
理の理論と応用」のp577〜p、599に詳しく説明
されている。) 1に複素数FFT(基数2)は5120個のバタフライ
からなるので、この2ステージFFTアルゴリズムでデ
ータ転送速度によって規制される最小時間は次の通りで
ある。 (512078)傘6*100ns−384vイクロ秒
この時間は見積転送時間である400マイクロ秒以下で
ある。従って、使用可能なメモリのハント幅は4つのF
Pモジュールを組として一緒に稼動させるのに適してお
り、400マイクロ秒てFFTが達成される。 必要とされるバンド幅を更に減少するために使用できる
手法は次のようにいくつかある。 (1)あるステージ内で使用される異なる係数の個数は
変化する。例えば、ステージ1はすべてのバタフライで
1つの係数値を使用し、ステージ2は2係数を使用し、
ステージ3は4係数を使用しく以下同じ)、ステージ1
0は512係数を使用する。 それより前のステージでは、ステージの開始時に(すべ
てのバタフライででなく)係数を初期設定するので、メ
モリ幅が大幅に節約される。 (2)4つのFFTが並列に実行される場合は(その結
果、1つの高速化サブシステムにおける4つのFPモジ
ュール130の各々は、1つのFFTの174ではなく
個々のFFTを計算するために使用される)、係数を4
つのFPずべてに同報通信することができる。これによ
り、転送の係数部分で使用されるメモリのバンド幅が節
約される。 (3)″2ステージ・バタフライ計算は3または4ステ
ージに拡張することが可能であるが、制約要因として、
新しいデータ、現在のデータ、および中間記憶域を保存
するFPのレジスタ・ファイルのサイズがある。例えば
、4ステージ・アルゴリズムには16個のサンプルと8
個の係数が必要であり、32回のバタフライ計算後16
個の結果が得られる。 この結果、比率は32バタフライ当たり10メモリ・サ
イクルとなり、キャッシュ・メモリのバンド幅で160
マイクロ秒ごとにFFT計算をサポートできる。 これらの考え方はすべて、必要ならば基数4または基数
8のFFTで採用可能である。実際には、広幅キャッシ
ュ・バス・アーキテクチャは基数がもっと大きいアルゴ
リズムで採用すると特に利点が得られる。 さらに注目すべぎことは、バタフライ定義とステージの
関係が異なるとしても、他の整数変換も同じ方法′で複
数のバタフライ計算ステージに分割することができるこ
とである。従って、データ操作に関して上述した事柄は
他の離散整数変換にも応用が可能である。 ヒストグラム・アルゴリズム 装 第32図は第16図に示すようなハードウェアでヒスト
グラム・アルゴリズムを実行させる方法を示したもので
ある。 第16図に示すように、数値プロセッサ・サブシステム
の計算部分におけるデータ通路は乗算機構440と加算
機構450だけでなく、データ通路のこの部分と密結合
−ているスクラッチパッド・メモリ1610も含んでい
ることが好ましい。(このメモリはアドレス・ロジック
1611を備えている。)このスクラッチパッド・メモ
リ1611があると、モジュール110はアドレスを計
算して、データを局所的に取り出すことができる。この
メモリ1610がない場合は、FPモジュール130は
CPモジュール110にアドレスを与える必要があり、
CPモジュール+10の方は参照機能を実行して、その
結果をFPモジュール130に返してやる必要がある。 このためには、追加のハンドシエイキングが必要になる
ので、効率が非常に低下することになる。従って、この
小規模のデータ通路部分のアーキテクチャを、上述した
ように数値処理モジュールとのインタフェースで使用さ
れる大規模のデータ処理アーキテクチャと協働させると
、利点が得られる。 本好適実施例では、スクラッチパッド・メモリ1610
は3通りの使い方が可能である。超関数の計算などのア
ルゴリズムの場合にテーブル・メモリとして使用する方
法、局所スタックとして使用する方法、結果を収集する
ためにヒストグラム・アルゴリズムで使用する方法であ
る。 このスクラッチパッド・メモリをスタックとして使用で
きることは、サブシステムの計算部分の縁にあるデータ
・インタフェースをアーキテクチャ全体にとって非常に
有利な方法で定義でき、そのインタフェースにあるレジ
スタ・ファイルにスタックとして使用できる機能をもた
せる必要がなくなるので、非常に有利である。 共通高水準言語(FOIITRANなど)で書いたルー
チンをマイクロコードにコンパイルすることは、マイク
ロコード・プログラムを生成する重要な手段である。ベ
クトル演算を効率のよいマイクロコードにコンパイルす
ることは比較的容易である。 しかし、スカシ演算もかなりの部分が常にあるので、こ
れらをコンパイルすることは非常に厄介である。 スカシ・ルーチンをマイクロコードにコンパイルする作
業は、スタック・ベースのアーキテクチャが仮想計算機
として使用できる場合には特に行ないやすいことが明ら
かにされている。(従来のこれを行なうには、逆ボーラ
ンド・ロジックに変換する必要がある。) このスクラッチパッド・メモリを使用して結果を累積す
ることは、ヒストグラム・アルゴリズムにとっては好都
合である。ヒストグラム・アルゴリズムを実行させると
きは、ヒストグラム・データをテーブル・メモリに累積
することができる。 これにより、データ・キャッシュ・バスへのアクセス・
ロートを追加することから避けられる。 密結合局所メモリを使用してヒストグラム・データを収
集することは、画像処理アルゴリズムで特に利点がある
。多くの公知画像処理アルゴリズムはヒストグラム計算
を使用しているが、大量のデータを扱う必要があるので
、キャッシュのバンド幅に対する需要が非常に大きくな
る。本発明によれば、ヒストグラム・アルゴリズムを効
率よく使用することが可能になる。 第32図は、多数の画像処理問題に応用できる比較的代
表的なヒストグラム・プロシージャの簡単な例を示した
ものである。同図から明らかなように、ヒストグラム・
テーブルはこのプロシージャの内側ループが繰り返えさ
れるたびにアクセスされる。従って、ヒストグラム・テ
ーブル用に密結合記憶域を用意すると、この種のプロシ
ージャで要求されるバンド幅を大幅に節約することがで
きる。 プレビュー・モードのバイブライン方式アルゴリズム 本明細書に記載されている重要な開示事項は、プレビュ
ー・モードでソフトウェア制御の2重バッファを使用し
てパイプライン方式アルゴリズムを実行させて、同期点
を通過する平均スルーブツトを維持する方法である。 第33図は第20図に示すようなソフトウェア制御2重
バッファを備えたハードウェアでパイプライン方式アル
ゴリズムを実行させる方法を示したものである。 上述したように、ソフトウェア制御の2重バッファを使
用すると、高速計算機構と高度の制御間のクロック境騨
を越えるときに非常に好都合である。しかし、注目すべ
きことは、ソフトウェア制御の2重バッファの利点を広
範囲にわたるバイブライン方式のアルゴリズムにも生か
すことができることである。 2重バッファリング用の好ましいサブシステムはソフト
ウェアで分割された2重ボート・メモリを使用している
ので、メモリの上半分を一方のプロセッサに割り振り、
下半分を他方のプロセッサに割り振ることができる。(
この割振りは両方のプロセッサが切替え!!備状態にあ
ることを示すそれぞれのフラグをセットすると、切り替
えられる。) このメモリをアクセスすると、追加ビットはそのアクセ
スに「物理J、「論理」または「プレビュー」のタグを
付ける。物理アクセスは全メモリ内のリテラル・アクセ
スと解釈され、2重バッファリングは無視される。論理
アクセスは2重バッフアイリング切替え状態によって判
断される追加アドレス・ビットによって補充されている
。 プレビュー・アクセスは読取りだけに使用され論理アク
セスでアクセスされる側とは反対のメモリ・バンクに移
る。プレビュー・アクセスを使用すると、パイプライン
方式アルゴリズムにおける同期点でのデータ流れの非効
率が避けられるので非常に有利である。 例えば、標準2重バッファリング方式が第1図に示すよ
うなシステムで使用される場合は、スワップを行なうた
びに、それが空になる前にデータ・バイブラインを再び
一杯にする必要かある。この実施例では、サンプルのベ
クトル演算は浮動小数点プロセッサが各バッファ分のデ
ータに対して8回の計算を行なう必要がある。このこと
は、3サイクル分のオーバヘッドが使用されて、8語の
データごとにバイブラインを一杯にし、空にすることを
意味する。その結果、全体の平均処理時間に付加される
割合が高くなることは明らかである。 本明細書に記載されている新規事項の1つは、「ソフト
」2重バッファリングを使用してこの問題を解決したこ
とである。プレビュー・モードを使用すると、一方のボ
ートが他方の半分側にあるデータを調べてから、それを
交換することができる。このモードによると、制御プロ
セッサがその作業を終えて、続行前にバッファ交換を待
っているとき、浮動小数点プロセッサのバイブラインを
常に一杯にしておくことができる。 2mバッフ7リングは、多重プロセッサ・システムにお
いて数値プロセッサと大容量キャッシュ・メモリ間のイ
ンタフェースにあるレジスタ・ファイルで使用するのが
好ましい。レジスタ・ファイルを分割すると、キャッシ
ュ・メモリ140でデータ衝突が起こるのを回避できる
。 この実施例では、5ボート付きレジスタ・ファイル43
0が2重バッファのメモリとなるように使用されている
。しかし、他の実現方法の使用も可能である。 本発明によれば、ハードウェアで2重バッフ7リングを
行なう従来のシステムよりも柔軟性に冨んだシステムが
速度を損なうことなく得られる。 特に、rプレビュー」モードを使用すると、この2重バ
ッファリングを取り入れたシステムを多数のパイプライ
ン環境で汎用インタフェース・アーキテクチャとして使
用することができる。 性茸11工4丙 性能最大化の基本的制約要因となるものを挙げると、次
の6つがある。 人出力バンド幅(これは本好適実施例では40MB/秒
にな)ている)。 データ・キャッシュ・メモリ・バンド幅(これは本好適
実施例では320MB/秒になっている)。 浮動小数点プロセッサ・モジュール130の保持レジス
タとレジスタ・ファイル間のデータ転送速度。これは現
在はデータ・キャッシュ・メモリ・バンド幅以下になっ
ている。 アドレス計算速度(これは本好適実施例では、毎秒10
0万回が代表例であるが、実行されるアルゴリズムに非
常に左右されやすい)。 持続浮動小数点計算速度。本好適実施例では、単精度「
加算」の場合、これは28nsサイクル時間以下である
(より高速の構成要素が利用可能になれば、向上の余地
がある)。単精度乗算の場合は42nsサイクル時間以
下である。 並列に使用される数値処理モジュールの数。 性能の評価 特定のアルゴリズムでその性能を決める要因は以下に挙
げる条件のどれが該当するかによって非常に左右される
。 ソース・データと結果がどこに保管されるか:性能はデ
ータがデータ・キャッシュ・メモリに保管されるとき最
大化される。データがオフボードに保管される場合は、
データ人出力転送が制約要因となる可能性が大きい。達
成可能な入出力速度は通常、関与する周辺装置とサポー
トされる転送の種類(単一かブロックか)によって決ま
る。入出力速度が毎秒40MBであると、計算速度は3
個の数がすべての計算に関係するような計算では、3.
3MFLOPSまでである。 データと算術演算との比率:浮動小数点計算速度または
データ転送速度がボトルネックとなるかどうかは、これ
によって決まる。計算量の割にデータが少ないアルゴリ
ズム(例:FFT)は浮動小数点プロセッサ・モジュー
ル130の速度が制約要因となる。データ転送に制限さ
れるアルゴリズムの例としては、1回の算術演算に3個
のデータ値を必要とするベクトル加算がある。 データ・キャッシュ・メモリ内のデータのレイアウト:
データ・キャッシュ・メモリと浮動小数点プロセッサ・
モジュール130間の最大転送速度が得られるのは、8
個の連続するF語(つまり、各々が32ビツトからなる
浮動小数煮詰)が−緒に転送されるときだけである。あ
るアルゴリズムでのデータがこのブロック転送機能を利
用できない場合は、正味データ転送速度は低下すること
になる。これを表にまとめると、次の通りである。 F語の個数 転送速度 8 80 MFF語秒 大部分のアルゴリズムはより高速の転送速度を利用する
ことができる(実際には、FFTでさえも上述したよう
に高速の転送速度を利用できる)。 操作の並行:これにより、オフボード入出力転送を浮動
小数点計算と並行に行なうことができる。アルゴリズム
(またはアルゴリズムの列)がこの機能を使用できる場
合は、入出力転送速度が相対的に遅くても、全体の言1
算速度は]+12 ’Jを受けることはない。 褐攻のFP:アルゴリズムが計算バウンド(束縛)であ
り、メモリや入出力のバンド幅に制限されないときは、
FPを複数にすると、メモリ・バンド幅を越えない限り
、1つの浮動小数点プロセッサ・モジュール130の性
能は倍になる。例えば、FPが4つのときは、ベクトル
加算性能は向上しないが、FFTは4倍の速度で計算さ
れる。 以上説明したことから理解されるように、本明細書中に
開示した新規事項は広範囲にわたフて応用することがで
きると共に、広範囲にわたって改良または変形が可能で
ある。従って、特許請求の範囲に記載された内容は上述
した各種実施例に制約されるものではなく、またこれら
の実施例に関する記載に制約されるものでもなく、特許
請求の範囲に明確化された請求事項のみに制約されるも
のである。
第1図は新規の3プロセツサ・アーキテクチャをもつ数
値高速化サブシステムの概要を示すブロック図である。 第2八図は本発明の好適実施例における制御プロセッサ
・モジュール110のいくつかの主要部分の構成を示す
ブロック図であり、第2B図は本発明の好適実施例にお
ける制御プロセッサ・モジュール110で使用されてい
るマイクロ命令形式のフィールド割振りを示す概略図で
ある。 第3八図は本発明の好適実施例におけるデータ転送プロ
セッサ・モジュールのいくつかの主要部分の構成を示す
ブロック図であり、第3B図はデータ転送プロセッサ・
モジュールにおいて定数アドレスを選択的に駆動してシ
ーケンサ・バス315上に送出するために使用されるロ
ジックの詳細を示すブロック図であり、第3C図は本発
明の好適実施例におけるデータ転送プロセッサ・モジュ
ール120で使用されているマイクロ命令形式のフィー
ルド割振りを示す概略図である。 第4A、 411.4Cおよび4D図は本発明の好適実
施例において77動小数点プロセッサとして使用される
数値IA埋モモジュール30のいくつかの主要部分の構
成を示す図であり、第4A図は制御プロセッサ・モジュ
ール110 とのインタフェースのいくつかの主要部分
を示すブロック図、第4B図は本発明の好適実施例にお
ける浮動小数点プロセッサ内のデータ通路のいくつかの
主要部分を示すブロック図、第4C図は本発明の好適実
施例における浮動小数点プロセッサ内の制御ロジックの
いくつかの主要部分を示すブロック図、第4D図は本発
明の好適実施例における数値プロセッサ・モジュール1
30に使用されているマイクロ命令形式のフィールド割
振りを示す概略図である。 第5図は本発明の好適実施例におけるデータ・キャッシ
ュ・メモリのいくつかの主要部分の構成を示すブロック
図である。 第6図は本発明の好適実施例におけるホスト・インタフ
ェース・ロジックの構成を示すブロック図である。 第7図は本発明の好適実施例におりるデータ・パイプ・
インタフェース・ロジックの構成を示すブロック図であ
る。 第8図は本発明の好適実施例におけるGll’インタフ
ェース・ロジックの構成を示すブロック図である。 第9八図はアブイケーション向き数値処理モジュール(
「アルゴリズム高速化機構J ) 130’を含む数値
高速化サブシステムの概要図であり、第9B図はアルゴ
リズム高速化機構130′のアーキテクチャが汎用浮動
小数点モジュール130のそれとどのような違いがある
かを示す概略図である。 第10図は複数の数値プロセッシング・サブ・サブシス
テムを含むサブシステムを示すブロワ、り図である。 第11図は本発明の好適実施例における制御プロセッサ
・モジュール(とデータ転送プロセッサ)の一部である
整数プロセッサ機構(ユニット)のいくつかの主要部分
の構成を示すブロック図である。 第12図は木発明の好適実施例における制御プロセッサ
の一部であるアドレス生成機構のいくつかの主要部分を
示すブロック図である。 第13図は本発明の好適実施例における制御プロセッサ
(とデータ転送プロセッサ)の一部であるシーケンサの
いくつかの主要部分の構成を示すブロック図である。 第14A図は16ビツト・アドレス生成機構(または他
の低解像度サブプロセッサ)が32ビツト・システムで
使用されるようにするために、本発明の好適実施例で使
用されているハードウェアを示す概略図であり、第14
B図は低解像度データ・ソースを高速システムで使用す
るために、本発明の好適実施例で使用されているハード
ウェアの各種動作モードで使用される入力を示す表図で
ある。 第15図は本発明の好適実施例における制御プロセッサ
・モジュールとデータ転送プロセッサ・モジュール間の
インタフェースを示す概略図である。 第16図は本発明の好適実施例における浮動小数点プロ
セッサ内の数値演算用の一部データ通路のいくつかの主
要部分の構成を示すブロック図である。 第17図は非レジスタ格納マイクロコード・ビットのセ
ットアツプ時間を短縮するために、本発明の好適実施例
において浮動小数点プロセッサ内で使用されるロジック
を示すブロック図である。 第18図は慣例の二重バッファのハードウェア構成およ
び制御の形態を示すブロック図である。 S19図は外部で制御されるビットの1つで2重ボート
・レジスタ・ファイルが使用される別の公知2重バッフ
ァリング手法を示すブロック図である。 第20図は本発明の好適実施例の新規2重バッファリン
グがどのように構成され、どのようにソフトウェアで制
御されて、複数の任意選択アクセス・モードが得られる
かを示す概略図である。 第21図は256ビツト幅のキャッシュ・バスとのイン
タフェースとなる保持レジスタと64ビツト幅であるレ
ジスタ・ファイル間をクロック境界にまたがって行なわ
氾るデータ転送のために、木発明の好適実施例で使用さ
れるロジックを示す概略図である。 第22図はCPモジュール110 とFPモジュール1
30間をインタフェースで結ぶために、本発明の好適実
施例で使用されるハンドシェイキング・ロジックの状態
図である。 第23図は第9図または第10図に示すようなシステム
において複数のFPまたは複数のアルゴリズム高速化機
構(またはその両方)から1つを選択するために、本発
明の好適実施例で使用されるilJ御定義を示す概略図
である。 第24.25および26図はキャッシュ・メモリとのデ
ータ・インタフェースのアーキテクチャを示すブロック
図である。 第27図は複数の装置の書込み可能制御記憶機構とのイ
ンタフェースとなる直列ループにおいてマイクロコード
の転送とローディングの制御を効率化するために、本発
明の好適実施例で使用されるハードウェア構成を示す概
略図である。 第28図は複数のプロセッサのいずれかに、あるいはあ
る特定のプロセッサ1+’gにマイクロコードをロード
することを可能にするために、本発明の好適実施例で使
用される直列ループ構成を示す概略図である。 第29図は多重プロセッサ・システムにおける数値プロ
セッサの制御記憶機構に直列にまたは並列に書き込むこ
とを可能にするために、木発明の好適実施例で使用され
るロジックを示す概略図である。 第30図はアドレス境界の制約なしでマルチウェイ分岐
を可能にするために、本発明の好適実施例で使用される
マイクロコード動作を示す概略図である。 第31図は離散フーリエ変換アルゴリズムを実行させる
方法を示す概略図である。 第32図は第16図に示すようなハードウェアでヒスト
グラム・アルゴリズムを実行させる方法を示すフローチ
ャートである。 7rJ33図は第20図に示したようなソフトウェア制
御2重バッファを含むバー1ウエアでバイブライン・ア
ルゴリズムを実行させる方法を示すフローチャートであ
る。 第34.35.36および37図は、それぞれが第7図
に示すようなデータ・バイブ−インタフェースを備えて
いる第1図に示すような複数のサブシステムの構成を示
す概略図である。 第38八図は主ボードの好ましい物理的レイアウトを示
す配置図であり、第388図は第38A図の主ボート上
にホストされた子ボードの好ましい物理的レイアウトを
示す配置図であり、第38B図のボードはFPモジュー
ルNOの主要構成要素が搭載されており、これらの2ボ
ードが一緒になって、第1図に示すような完全なシステ
ムが得られることを示している。 第39図は浮動小数点プロセッサ・モジュール内のスタ
ック・レジスタの好適実施例を示すブロック図である。 第40八図は制御プロセッサ・モジュール110(とデ
ータφ云送モジュール12(1)内のシーケンサと共に
本発明の好適実施例で使用される一部の支援ロジックを
示すブロック図であり、第408図はマルチウェイ分岐
操作時に割込みを引き起こすマイクロ命令列を示す概略
図である。 第41図はホスト・コンピュータと、画像処理サブシス
テムと、少なくとも2つの数値高速化サブシステムとを
備え、これらが主バスと2つの高バンド幅バックレーン
・バスで結ばれているコンピュータ・システムを示す概
略図である。 第42図は第1図に示すようなシステムにおいて2つの
配列を一緒に(要素単位で)乗算し、その結果を第3の
配列に格納するステップの流れを示すフローチャートで
ある。 第43図は1つまたは2つ以上の数値処理モジュールと
同じ広幅データ・バス上に高速キャッシュ・メモリを備
えたサンプル・システムを示すブロック図である。 第44A、 44Bおよび44C図はCP、 DTP、
およびFPのそれぞれのプログラミング環境を示す概略
図である。 第45図は制(コ11記+Q機構から取り出したマイク
ロコードのフィールドに命令レジスタの内容を代入する
ロジックを示すブロック図である。 第46図は語アドレスの偶数/奇数構造が倍語転送操作
からどのようにして得られるかを示す説明図である。 第47図は語アドレスの偶数/奇数構造が倍語耘M t
=作から得るとき使用されるタイミング構成を示す信号
波形図である。 手糸売ネ甫正書 (方式) %式% 補正をする者 事件との関係 特許出願人 デュポン ピクセル システムズ リミテッド
値高速化サブシステムの概要を示すブロック図である。 第2八図は本発明の好適実施例における制御プロセッサ
・モジュール110のいくつかの主要部分の構成を示す
ブロック図であり、第2B図は本発明の好適実施例にお
ける制御プロセッサ・モジュール110で使用されてい
るマイクロ命令形式のフィールド割振りを示す概略図で
ある。 第3八図は本発明の好適実施例におけるデータ転送プロ
セッサ・モジュールのいくつかの主要部分の構成を示す
ブロック図であり、第3B図はデータ転送プロセッサ・
モジュールにおいて定数アドレスを選択的に駆動してシ
ーケンサ・バス315上に送出するために使用されるロ
ジックの詳細を示すブロック図であり、第3C図は本発
明の好適実施例におけるデータ転送プロセッサ・モジュ
ール120で使用されているマイクロ命令形式のフィー
ルド割振りを示す概略図である。 第4A、 411.4Cおよび4D図は本発明の好適実
施例において77動小数点プロセッサとして使用される
数値IA埋モモジュール30のいくつかの主要部分の構
成を示す図であり、第4A図は制御プロセッサ・モジュ
ール110 とのインタフェースのいくつかの主要部分
を示すブロック図、第4B図は本発明の好適実施例にお
ける浮動小数点プロセッサ内のデータ通路のいくつかの
主要部分を示すブロック図、第4C図は本発明の好適実
施例における浮動小数点プロセッサ内の制御ロジックの
いくつかの主要部分を示すブロック図、第4D図は本発
明の好適実施例における数値プロセッサ・モジュール1
30に使用されているマイクロ命令形式のフィールド割
振りを示す概略図である。 第5図は本発明の好適実施例におけるデータ・キャッシ
ュ・メモリのいくつかの主要部分の構成を示すブロック
図である。 第6図は本発明の好適実施例におけるホスト・インタフ
ェース・ロジックの構成を示すブロック図である。 第7図は本発明の好適実施例におりるデータ・パイプ・
インタフェース・ロジックの構成を示すブロック図であ
る。 第8図は本発明の好適実施例におけるGll’インタフ
ェース・ロジックの構成を示すブロック図である。 第9八図はアブイケーション向き数値処理モジュール(
「アルゴリズム高速化機構J ) 130’を含む数値
高速化サブシステムの概要図であり、第9B図はアルゴ
リズム高速化機構130′のアーキテクチャが汎用浮動
小数点モジュール130のそれとどのような違いがある
かを示す概略図である。 第10図は複数の数値プロセッシング・サブ・サブシス
テムを含むサブシステムを示すブロワ、り図である。 第11図は本発明の好適実施例における制御プロセッサ
・モジュール(とデータ転送プロセッサ)の一部である
整数プロセッサ機構(ユニット)のいくつかの主要部分
の構成を示すブロック図である。 第12図は木発明の好適実施例における制御プロセッサ
の一部であるアドレス生成機構のいくつかの主要部分を
示すブロック図である。 第13図は本発明の好適実施例における制御プロセッサ
(とデータ転送プロセッサ)の一部であるシーケンサの
いくつかの主要部分の構成を示すブロック図である。 第14A図は16ビツト・アドレス生成機構(または他
の低解像度サブプロセッサ)が32ビツト・システムで
使用されるようにするために、本発明の好適実施例で使
用されているハードウェアを示す概略図であり、第14
B図は低解像度データ・ソースを高速システムで使用す
るために、本発明の好適実施例で使用されているハード
ウェアの各種動作モードで使用される入力を示す表図で
ある。 第15図は本発明の好適実施例における制御プロセッサ
・モジュールとデータ転送プロセッサ・モジュール間の
インタフェースを示す概略図である。 第16図は本発明の好適実施例における浮動小数点プロ
セッサ内の数値演算用の一部データ通路のいくつかの主
要部分の構成を示すブロック図である。 第17図は非レジスタ格納マイクロコード・ビットのセ
ットアツプ時間を短縮するために、本発明の好適実施例
において浮動小数点プロセッサ内で使用されるロジック
を示すブロック図である。 第18図は慣例の二重バッファのハードウェア構成およ
び制御の形態を示すブロック図である。 S19図は外部で制御されるビットの1つで2重ボート
・レジスタ・ファイルが使用される別の公知2重バッフ
ァリング手法を示すブロック図である。 第20図は本発明の好適実施例の新規2重バッファリン
グがどのように構成され、どのようにソフトウェアで制
御されて、複数の任意選択アクセス・モードが得られる
かを示す概略図である。 第21図は256ビツト幅のキャッシュ・バスとのイン
タフェースとなる保持レジスタと64ビツト幅であるレ
ジスタ・ファイル間をクロック境界にまたがって行なわ
氾るデータ転送のために、木発明の好適実施例で使用さ
れるロジックを示す概略図である。 第22図はCPモジュール110 とFPモジュール1
30間をインタフェースで結ぶために、本発明の好適実
施例で使用されるハンドシェイキング・ロジックの状態
図である。 第23図は第9図または第10図に示すようなシステム
において複数のFPまたは複数のアルゴリズム高速化機
構(またはその両方)から1つを選択するために、本発
明の好適実施例で使用されるilJ御定義を示す概略図
である。 第24.25および26図はキャッシュ・メモリとのデ
ータ・インタフェースのアーキテクチャを示すブロック
図である。 第27図は複数の装置の書込み可能制御記憶機構とのイ
ンタフェースとなる直列ループにおいてマイクロコード
の転送とローディングの制御を効率化するために、本発
明の好適実施例で使用されるハードウェア構成を示す概
略図である。 第28図は複数のプロセッサのいずれかに、あるいはあ
る特定のプロセッサ1+’gにマイクロコードをロード
することを可能にするために、本発明の好適実施例で使
用される直列ループ構成を示す概略図である。 第29図は多重プロセッサ・システムにおける数値プロ
セッサの制御記憶機構に直列にまたは並列に書き込むこ
とを可能にするために、木発明の好適実施例で使用され
るロジックを示す概略図である。 第30図はアドレス境界の制約なしでマルチウェイ分岐
を可能にするために、本発明の好適実施例で使用される
マイクロコード動作を示す概略図である。 第31図は離散フーリエ変換アルゴリズムを実行させる
方法を示す概略図である。 第32図は第16図に示すようなハードウェアでヒスト
グラム・アルゴリズムを実行させる方法を示すフローチ
ャートである。 7rJ33図は第20図に示したようなソフトウェア制
御2重バッファを含むバー1ウエアでバイブライン・ア
ルゴリズムを実行させる方法を示すフローチャートであ
る。 第34.35.36および37図は、それぞれが第7図
に示すようなデータ・バイブ−インタフェースを備えて
いる第1図に示すような複数のサブシステムの構成を示
す概略図である。 第38八図は主ボードの好ましい物理的レイアウトを示
す配置図であり、第388図は第38A図の主ボート上
にホストされた子ボードの好ましい物理的レイアウトを
示す配置図であり、第38B図のボードはFPモジュー
ルNOの主要構成要素が搭載されており、これらの2ボ
ードが一緒になって、第1図に示すような完全なシステ
ムが得られることを示している。 第39図は浮動小数点プロセッサ・モジュール内のスタ
ック・レジスタの好適実施例を示すブロック図である。 第40八図は制御プロセッサ・モジュール110(とデ
ータφ云送モジュール12(1)内のシーケンサと共に
本発明の好適実施例で使用される一部の支援ロジックを
示すブロック図であり、第408図はマルチウェイ分岐
操作時に割込みを引き起こすマイクロ命令列を示す概略
図である。 第41図はホスト・コンピュータと、画像処理サブシス
テムと、少なくとも2つの数値高速化サブシステムとを
備え、これらが主バスと2つの高バンド幅バックレーン
・バスで結ばれているコンピュータ・システムを示す概
略図である。 第42図は第1図に示すようなシステムにおいて2つの
配列を一緒に(要素単位で)乗算し、その結果を第3の
配列に格納するステップの流れを示すフローチャートで
ある。 第43図は1つまたは2つ以上の数値処理モジュールと
同じ広幅データ・バス上に高速キャッシュ・メモリを備
えたサンプル・システムを示すブロック図である。 第44A、 44Bおよび44C図はCP、 DTP、
およびFPのそれぞれのプログラミング環境を示す概略
図である。 第45図は制(コ11記+Q機構から取り出したマイク
ロコードのフィールドに命令レジスタの内容を代入する
ロジックを示すブロック図である。 第46図は語アドレスの偶数/奇数構造が倍語転送操作
からどのようにして得られるかを示す説明図である。 第47図は語アドレスの偶数/奇数構造が倍語耘M t
=作から得るとき使用されるタイミング構成を示す信号
波形図である。 手糸売ネ甫正書 (方式) %式% 補正をする者 事件との関係 特許出願人 デュポン ピクセル システムズ リミテッド
Claims (1)
- 【特許請求の範囲】 1)外部インタフェース・バスに接続可能な外部インタ
フェース・コントローラと、 制御プロセッサと、 前記外部インタフェース・コントローラを制御する前記
制御プロセッサと同時に動作可能であるデータ転送プロ
セッサと、 前記制御プロセッサおよび前記データ転送プロセッサと
同時にかつ非同期に動作可能であり、制御ストアからの
命令を実行する数値プロセッサと を具え、および前記制御プロセッサによって、前記制御
ストアへの書き込みを制御し、かつ前記数値プロセッサ
によるデータ・アクセスを制御し、および前記数値プロ
セッサによる基本的にはすべての演算に対して所定の形
式演算タイプの同一のマイクロコードを実行するように
構成したことを特徴とするプロセシング・システム。 2)前記形式演算タイプのうちのひとつを、第1オペラ
ンド・ベクトルおよび第2オペランド・ベクトルを第3
の合成ベクトルにマップするすべての演算のクラスにな
したことを特徴とする請求項1記載のシステム。 3)他の形式演算タイプのうちで、前記形式演算タイプ
のうちの1つを、第1オペランド・ベクトルおよび第2
オペランド・ベクトルを第3の合成ベクトルにマップす
るすべての演算のクラスになしたことを特徴とする請求
項1記載のシステム。 4)前記形式演算タイプのうちの1つを、ベクトル加算
およびベクトル減算を含むすべてのダイアジック演算の
クラスになしたことを特徴とする請求項1記載のシステ
ム。 5)前記制御プロセッサがベクトル加算およびベクトル
乗算の演算に対して同一のマイクロコードを実行するこ
とを特徴とする請求項1記載のシステム。 6)マルチプル・マイクロコード化された命令をストア
するプログラム・メモリと、 前記プログラム・メモリから命令を呼び出すように接続
されたプログラム・カウンタ・ロジックと、 前記プログラム・カウンタ・ロジックにより前記プログ
ラム・メモリから1つずつ呼び出される前記マイクロコ
ード化された命令を受信し、かつデコードするように接
続された命令デコード・ロジックと、 前記マイクロコード化された命令の各々における各フィ
ールドによって駆動されるように、それぞれ、接続され
た複数のロジック素子と、 演算指定子をストアするための命令レジス タと をさらに具え、 前記デコード・ロジックによって、前記命令レジスタか
らの演算指定子と前記プログラム・メモリから呼び出さ
れたマイクロ命令とを組み合わせて、完全な実行しうる
マイクロ命令を提供することができるようにしたことを
特徴とする請求項1記載のシステム。 7)前記命令レジスタによってベクトル加算およびベク
トル減算を含めることができるセットからの演算指定子
をストアすることができるようにしたことを特徴とする
請求項6記載のシステム。 8)前記命令レジスタによって、ベクトル加算およびベ
クトル乗算を含めることができるセットからの演算指定
子をストアすることができるようにしたことを特徴とす
る請求項6記載のシステム。 9)前記プログラム・メモリにおける前記マイクロ命令
の各々を100ビット以上の長さになしたことを特徴と
する請求項6記載のシステム。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB8806867A GB2215882A (en) | 1988-03-23 | 1988-03-23 | Common control microcode for multiple operations |
| GB8806853A GB2215879A (en) | 1988-03-23 | 1988-03-23 | Numerical processor using microcode |
| GB8806853 | 1988-03-23 | ||
| GB8806867 | 1988-03-23 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0236459A true JPH0236459A (ja) | 1990-02-06 |
Family
ID=26293674
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1069397A Pending JPH0236459A (ja) | 1988-03-23 | 1989-03-23 | プロセシング・システム |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0334621A3 (ja) |
| JP (1) | JPH0236459A (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107315564B (zh) * | 2016-04-26 | 2020-07-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量超越函数运算的装置和方法 |
| CN112235900A (zh) * | 2020-09-18 | 2021-01-15 | 哈尔滨冰雪大世界股份有限公司 | 一种带有自检测和模块化的冰雪景观高压灯带驱动控制系统 |
| CN112905527A (zh) * | 2021-02-05 | 2021-06-04 | 井芯微电子技术(天津)有限公司 | 一种可重构计算平台的规则控制微码表设计方法 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE2336676C3 (de) * | 1973-07-19 | 1981-06-19 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Modifizierung von Mikroprogrammbefehlen |
| GB8421066D0 (en) * | 1984-08-18 | 1984-09-19 | Int Computers Ltd | Microprogram control |
| JPS63178330A (ja) * | 1987-01-20 | 1988-07-22 | Toshiba Corp | 演算フラグ制御装置 |
-
1989
- 1989-03-22 EP EP19890302822 patent/EP0334621A3/en not_active Withdrawn
- 1989-03-23 JP JP1069397A patent/JPH0236459A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP0334621A3 (en) | 1992-12-30 |
| EP0334621A2 (en) | 1989-09-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0235559A (ja) | 二重バッファリング・サブシステム | |
| JPH02146668A (ja) | コンピュータ・システム | |
| JPH0228864A (ja) | マルチプロセッサ・サブシステム | |
| US5606520A (en) | Address generator with controllable modulo power of two addressing capability | |
| US6260088B1 (en) | Single integrated circuit embodying a risc processor and a digital signal processor | |
| US5933624A (en) | Synchronized MIMD multi-processing system and method inhibiting instruction fetch at other processors while one processor services an interrupt | |
| US5339447A (en) | Ones counting circuit, utilizing a matrix of interconnected half-adders, for counting the number of ones in a binary string of image data | |
| US5239654A (en) | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode | |
| JPH02168351A (ja) | 積分変換方法 | |
| US5522083A (en) | Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors | |
| US5212777A (en) | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation | |
| US5410649A (en) | Imaging computer system and network | |
| US5197140A (en) | Sliced addressing multi-processor and method of operation | |
| US4967375A (en) | Fast architecture for graphics processor | |
| Butts | Synchronization through communication in a massively parallel processor array | |
| JPS5916072A (ja) | デ−タ処理システム用の特殊命令処理装置 | |
| US12536056B2 (en) | Hardware accelerated synchronization with asynchronous transaction support | |
| US5838934A (en) | Host port interface | |
| KR20080096484A (ko) | 데이터 통신 | |
| JPH0236459A (ja) | プロセシング・システム | |
| JPH0236420A (ja) | プロセシング・システムズ | |
| Brewer et al. | A monolithic processing subsystem | |
| US5832253A (en) | Multiprocessors system for selectively wire-oring a combination of signal lines and thereafter using one line to control the running or stalling of a selected processor | |
| Butts et al. | Reconfigurable work farms on a massively parallel processor array | |
| GB2217064A (en) | Interfacing asynchronous processors |