JPS635775B2 - - Google Patents
Info
- Publication number
- JPS635775B2 JPS635775B2 JP57187672A JP18767282A JPS635775B2 JP S635775 B2 JPS635775 B2 JP S635775B2 JP 57187672 A JP57187672 A JP 57187672A JP 18767282 A JP18767282 A JP 18767282A JP S635775 B2 JPS635775 B2 JP S635775B2
- Authority
- JP
- Japan
- Prior art keywords
- microinstruction
- address
- output
- input
- main memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
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/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
-
- 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/226—Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
-
- 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/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
本発明の分野
本発明はデータ・プロセツサに関し、具体的に
は高速信号処理コンピユータのための制御装置に
関する。 本発明の背景 大部分の先行技術に基く汎用デイジタル・コン
ピユータは、主記憶装置が一方で局外の二次記憶
装置に接続され、他方で中央処理ユニツトへ接続
された中央システム構成を採用している。主記憶
装置のハードウエアは、しばしば階層レベルに分
割され、小型の迅速アクセス作業記憶装置は直接
に中央処理ユニツトへ接続され、バツキング・レ
ベルの大型低速アクセス大容量記憶装置は、最初
の高速作業記憶装置レベルへ接続される。例え
ば、Kilburnその他による米国特許第3218611号
は、特定のデータがどこに記憶されているかを追
跡するデイレクトリ・レジスタを有する階層構成
を説明している。 主記憶装置における記憶階層の要求は、メモリ
のペースをCPU速度と合わせる必要性から生じ
るとともに、同時に、大量の計算問題を処理する
必要から要求される大きな物理的メモリ・サイズ
を与えるためである。しかし、大型サイズと迅速
なアクセス速度は、主記憶装置の設計上両立しな
い目的である。何故ならば、メモリ容量が増大す
ると、それだけ物理的パツケージは大きくなり、
これは転送時間を増大させるからである。主記憶
装置の階層構成は主記憶装置とCPUとの間の速
度をマツチさせることができるが、別個の記憶転
送制御プログラムに対する必要性をもたらす。こ
のプログラムは、大容量記憶装置と作業記憶装置
との間、及び作業記憶装置と演算処理ユニツトと
の間で、データ転送を調整する。更に、基本的な
演算データ処理タスクを実行するための監視兼演
算処理制御プログラムも必要である。 演算パイプライン構成を有する信号処理コンピ
ユータに独特の他の問題も生じる。信号処理演算
動作は高度に反復的であり、シーケンシヤルなパ
イプライン構成がそのような動作を実行させる場
合のスループツトを実質的に改善することが発見
された。例えば、G.L.Kratzその他による米国特
許第4041461号は、ビーム形成、有限インパルス
応答(FIR)濾波、及び高速フーリエ変換
(FFT)のように、高度に反復的な信号処理動作
を実行するための順次パイプライン演算構成を含
む演算プロセツサを説明している。演算パイプラ
インを制御するため、演算エレメント・コントロ
ーラが、それ自体のマイクロ命令シーケンサを含
む演算プロセツサ中に含まれる。この演算エレメ
ント・コントローラは別個の制御プロセツサによ
つて制御される。この制御プロセツサは、全体的
信号処理動作のための監視兼記憶マネジヤとして
働く。また、第3のプロセツサが大容量データ記
憶装置と作業記憶装置との間、及び大容量データ
記憶装置と入出力チヤネルとの間で、デー転送を
制御する。Kratzその他による米国特許で説明さ
れたシステムは、高速フーリエ変換のように高度
に反復的な1つの動作を延長された計算時間で実
行するためには良好に働くが、いくつかのプロセ
ツサは、1つの種類の処理タスクから他の種の処
理タスクへ切替えるため、かなり長い切替時間を
必要とする。かくて、比較的短い時間間隔の中
で、ビーム形成計算タスクから有限インパルス応
答濾波タスクへの切替え、次いで、高速フーリエ
変換計算への切替が望まれた場合、Kratzその他
の米国特許に説明された制御アーキテクチヤー
は、そのような切替えを容易には許さない。制御
プロセツサは、その監視兼記憶管理機能を実行し
なければならず、かつ記憶転送コントローラ及び
演算エレメント・コントローラへ、望まれる新し
い種類のタスクを実行するために必要な新しいタ
スク・シーケンス及びパラメータを伝達しなけれ
ばならない。 本発明の目的 本発明の目的は、階層記憶構成を必要とせず、
大容量記憶装置のアクセスと演算処理ユニツトの
速度とをマツチさせる改善されたデータ処理シス
テムの制御装置を提供することである。 本発明の他の目的は、メモリ転送、演算処理及
び入出力転送に対する記憶プログラム制御を単純
化する。データ・プロセツサのための制御機構を
提供することである。 本発明の他の目的は、先行技術よりも早い時間
内で1つのタスクから他のタスクへ変化させるた
め、パイプライン演算アーキテクチヤーのための
柔軟性に富んだ制御機構を提供することである。 本発明の要約 本発明の目的は、ここに開示される機能プロセ
ツサのための制御ユニツトによつて達成される。
この機能ユニツトは、データ転送及び2レベル・
メモリ・システムに関連した転送制御を除くこと
によつて、プログラミングの複雑性を最小にし、
かつパイプライン演算アーキテクチヤーにおける
プログラム・タスク切替えの柔軟性を改善する。
これは、メイン・メモリ(MM)アドレス又はア
ドレス増分を記憶するメモリ・アドレス・スタツ
クへアクセスし、かつ係数メモリ・アドレス又は
アドレス増分を記憶する係数アドレス・スタツク
へアクセスし、かつブランチ及びループ制御パラ
メータを記憶するマイクロ命令シーケンス制御ブ
ランチ・スタツクへアクセスするための共通のペ
ージ・アドレシングを使用することによつて達成
される。これによつて、外部的制御及び関連した
実行時間のオーバヘツドなしに、信号処理サブル
ーチンの長いシーケンスを連鎖することができ
る。 マイクロプログラム記憶装置は、マイクロ命令
がマイクロ命令シーケンサによつて順序付けられ
るマイクロプログラムを含む。マイクロ命令は、
共通のページ番号を使用して、ブランチ・パラメ
ータ・スタツクから一連のループ・サイクルの最
初のものを呼出し、メイン・メモリ・アドレス・
スタツクから演算プロセツサ中で処理されるべき
関連オペランドのためメイン・メモリの開始アド
レスを呼出し、係数スタツクから、そのマイクロ
命令期間中パイプライン演算ユニツトにあるオペ
ランドと共に処理されるべき関連係数の最初のも
のを呼出す。更にメイン・メモリ・スタツクは、
演算ユニツトがその機能を完了した後に、処理さ
れたデータを書込むべきメモリ・アドレスを含
む。更に同一のマイクロ命令は、演算パイプライ
ンにおいて、そのマイクロ命令期間に実行される
べきスクラツチ・パツド・メモリ動作と演算エレ
メントとを呼出す。結果のプロセツサ・システム
は、メモリ転送、演算処理、及び入出力転送の開
始を実行するため、単一のマイクロプログラムを
必要とするのみである。 本発明に関連した他の特徴は回帰バツフア動作
である。この動作において、複数のメイン・メモ
リ・モジユールが、演算ユニツトにある複数のス
クラツチ・パツド・バツフアの各々へ、同期的態
様で循環的に接続される。それによつて、メモリ
転送、演算処理及び入出力転送の結合動作のスル
ープツトが最大にされる。他の特徴として、制御
ユニツトは二重クロツク構成を使用する。この構
成によつて、スクラツチ・パツド記憶エレメント
及び演算エレメントは、マイクロ命令がマイクロ
プログラム記憶装置からアクセスされる速度の2
倍で動作するように、選択的に制御されることが
できる。パイプライン演算アーキテクチヤーのた
めの制御ユニツトは、ループ兼ブランチ制御動作
と、記憶アクセス動作及びパイプライン演算動作
とを緊密に結合して制御し、プログラミング・タ
スクの変更に対して、即時のかつ柔軟性ある応答
を与える。 システムの概要 緒 言 広範囲の処理機能を柔軟にかつ効率的に実行す
ることのできるパイプライン演算アーキテクチヤ
ーについて新しい制御方式が説明される。制御ユ
ニツト及び演算ユニツトの全体的組合せは、機能
処理エレメント(FPE)と呼ばれる。 FPEアーキテクチヤーの説明 FPEアーキテクチヤーは、広範囲の信号処理
機能を柔軟にかつ効率的に実行するよう設計され
ている。FPEはモジユラー形の演算/メモリ・
ユニツト(AMU)及び制御ユニツト(CU)を
使用し、これらのユニツトは初期プログラム・ロ
ード(IPL)を介して機能的に組込まれる。それ
ぞれの機能的に組込まれた処理セグメント内で高
度の予備動作を可能とするため、システム監視コ
ントローラとの相互作用は最小にされる。CU及
びAMUの集合はマイクロプログラム化すること
ができ、大型システムに関連した処理機能を実行
するため相互接続される。CUへ組込まれた特殊
機能は、機能的に組込まれたプロセツサの内部制
御能力を高め、システム監視コントローラの介入
を最小にする。 AMU及びCUアーキテクチヤーと共に使用さ
れることのできる広範囲な信号処理機能によつて
以前には独特の個別的に設計されたユニツト(ビ
ーム形成ユニツト、濾波ユニツト、高速フーリエ
変換ユニツト、広帯域処理ユニツトなど)の中で
実行された機能について、同一のマイクロプログ
ラム可能なエレメントを使用することが可能とな
る。更に、各機能について特別に設計されたアー
キテクチヤーが使用される場合の如く、異つた機
能を実行する時にも、マイクロコード・フオーマ
ツトは変化しない。かくて、大型システム内のハ
ードウエアの共通性が、基本的ハードウエア・モ
ジユール・レベル及び機能ユニツト・レベルに対
して拡張され、マイクロコード・フオーマツトの
共通性がシステム全体を通して存在するようにな
る。 FPEの特性 信号処理に対してFPEを広く適用するため、
次のような設計上の特性が限定された。 処 理 a 多次元(空間・時間)濾波及びスペクトル分
析。 FPEは多次元FFT、周波数領域ビーム形成、
時間領域ビーム形成、周波数帯域シフト及び帯域
形成を実行することができる。 b 回旋及び相関。 FPEは、整列、限定、アレイ分割及び変換領
域空間処理の如きソーナー機能のために、直接又
は変換領域で回旋及び相関ずけを実行することが
できる。 c 検出及び事後検出動作。 FPEは、値及び平方された値の検出、積分雑
音平均評価、再量子化及び出力データのパツキン
グを実行することができる。 パラメータ a 濾波機能 FPEは有限インパルス応答(FIR)又は無限イ
ンパルス応答(IIR)を濾波する。FIR濾波は、
任意の整数データのデシメーシヨン及び/又は挿
入率で計算されることができる。計算効率は、対
称的なインパルス応答に対して2倍にされる。
IIR濾波は、基本ステージのマイクロプログラム
を反復して適用することにより、カスケード状2
次ステージを使用して構成されることができる。 b FFT。 FPEは基数2及び混合基数FFTを与える。混
合基数FFTは周波数領域ビーム形成で直交サン
プリングを行うために必要である。 c プロセツサは分散した主記憶装置から取られ
たデータの上で働く(作業記憶装置は必要でな
い)。 演算エレメントは、大型のランダムにアドレス
可能なメモリから得られたデータをアドレスする
ことができる。これは2次元FFTの苦しい問題
を軽減する。主記憶装置から作業記憶装置へ(又
はその逆)のデータ転送は除かれる。 d 内部レコード端データ処理。 FPEは回帰スクラツチ・パツド及びメイン・
メモリにデータを記憶し(モジユロ・ラツプ)、
従つて、一時的レコードの端部におけるサンプル
(バツチ)は、特別の処理を要しない。例として
は、濾波インパルス応答がレコード端を取囲み、
前のレコード及び現在のレコードから信号サンプ
ルが必要とされる時である。 アーキテクチヤー a マイクロコード化パイプライン・プロセツ
サ。 高度利用信号処理機能の大部分は、回旋フイル
タの変化である。基本的動作は、信号サンプルの
有限の組を重みずけ、合計をとることである。従
つて、この能力を含むマイクロコード化パイプラ
イン・プロセツサは、ビーム形成、帯域形成、ス
ペクトル分析、平滑化、積分などの、広範囲の信
号処理機能を高速で実行するため効率的に働く。 b 分散された処理、メモリ及び制御。 処理及び制御の分散によつて、システムの機能
セグメントを更に独立して開発することができ
る。機能の追加又は変更は、他の機能による共用
プロセツサの時間使用に依存しない。分散メモリ
はメモリ階堪におけるレベルを1つだけ減少さ
せ、かつアクセスの競争を除く。分散されたメモ
リ・モジユールは、バス接続を介して1つの分散
メモリから他のメモリへデータを転送するように
設計されている。 c 標準的バス・インターフエイス。 AMUは外部データ転送及び演算エレメント転
送のために別個のポートを有している。2つのポ
ートは同一の基本記憶モジユール(BSM)から
は働かず、従つて、タイムシエアリング及び競争
は外部転送における要因とはならない。 d データ・ブロツクのバツチ処理。 システム監視コントローラの介入を最小にする
ため、大量のデータ・バツチがAMUの中で処理
される。その結果、外部同期及びデータ転送制御
要件は、それほど緊密に分散プロセツサへ結合さ
れない。 e 単一レベルの制御及びメモリ。 プロセツサ・モジユラー・ユニツト プロセツサは2つの基本ユニツトを含む。それ
らは、第1図に示されるように制御ユニツト
(CU)2及び演算/メモリ・ユニツト(AMU)
4である。制御ユニツト2は、AMU4の演算パ
イプライン動作の各マシン・サイクルに必要なマ
イクロプログラム制御を与え、かつメイン・メモ
リ6と外部入出力待ち行列バツフアとの間でデー
タを転送するために必要なアドレシングとタイミ
ングを与える。制御ユニツト2は、1つ又はそれ
以上の演算/メモリ・ユニツト4へ接続されるこ
とができる。1つを超えるAMU4がCU2へ接
続された時、全てのAMUはロツクされたステツ
プで同じ動作を実行する。 AMU4のパイプラインは、実数又は複素数の
データを伴う、広範囲の前方送り及び後方送りの
信号処理アルゴリズムを効率的に実行するように
設計される。加算機能10′は、プロセツサのス
ループツトを増大させるため、アルゴリズムの計
算を節減する因数分解を可能にする。例えば、対
称FIRフイルタにおける同一のインパルス応答係
数によつて乗算される信号サンプルの加算と、
Winograd形のアルゴリズム(例えばWinograd
フーリエ変換)で同一の重みを受取る変数の加算
との因数分解である。これについての詳細は、音
響学についてのIEEEトランザクシヨン「音声と
信号処理」(Speech and Signal Processing、
Vol.ASSP−25、No.2、April 1977、H.F.
Silverman、An Introduction to Programming
the Winograd Fourier Transform Algorithm
(WFTA)を参照されたい。 乗算器12の出力で2つの加算(又は累算)を
実行することのできる能力は、2点FFTバター
フライの如く複素数データ処理で使用される。こ
のアルゴリズムの大部分の簡単な因数分解におい
ては、4つの乗算及び6つから8つまでの加算が
使用される。逆に、大部分の濾波動作は、乗算ご
とに1つの累算動作を必要とするのみである。後
に演算/メモリ・ユニツトに関して説明するよう
に、乗算・加算速度に関するこの要件の対立は乗
算器12の速度の2倍で動作する演算論理ユニツ
ト(ALU)を、加算機能20′のために使用する
ことによつて解消され、従つて追加のハードウエ
アは導入されない。 制御ユニツト2は、メイン・メモリ・アドレス
及びアドレス増分、係数記憶装置アドレス及びア
ドレス増分、カウント関数ブランチ(BFC)パ
ラメータを記憶するための1024段になつたスタツ
ク14を使用する。これによつて、外部制御及び
関連した実行時間のオーバヘツドなしに、信号処
理サブルーチンの長いシーケンスを連鎖すること
ができる。 信号処理アルゴリズムをマイクロコード化した
経験によれば、アルゴリズムは通常8個より少な
いレジスタのスタツクを必要とする。従つて、信
号処理マイクロプログラムを連鎖し、かつそれを
異なつた初期化パラメータと使用するため、1024
個のレジスタを有するスタツク14はページへ副
分割される。その副分割は、状況ビツトをセツト
してページを識別するリンク・マイクロ命令を使
用することによつてなされる。状況ビツトは、ス
タツク14をそれぞれ16個のレジスタより成る64
個のページへ分割する。 初期プログラム・ロード(IPL)の段階で記憶
された多数の初期化パラメータは、スタツク14
の内容を以後変更することなく、多くの処理連鎖
が実行されることを可能にする。変更が必要とさ
れるときにも、その頻度は少なく、結果として生
じるシステム監視コントローラとの相互作用は最
少にされる。 他の特徴は、3つの(即ち、メイン・メモリ・
アドレス、係数アドレス、マイクロプログラム・
アドレス)の各スタツクのために、16個の現アド
レス・レジスタを含むことである。スタツク中に
記憶されたアドレスは、指定された現アドレス・
レジスタへロードされることができ、次いでこの
アドレスは、ベース・アドレス/増分スタツクの
内容を変更することなく、増加されることができ
る。その結果、マイクロプログラムは、ベース・
アドレス/増分値をスタツク中に復元することを
記憶しておく必要はない。何故ならば、それらの
値は変更されないからである。多数の現アドレス
(走行中のアドレス)を同時に保持しておくこと
ができるので、アドレス発生にかなりの柔軟性が
得られる。 制御ユニツト2のアドレス発生器は、メイン・
メモリ6のバツフア・アドレスを回帰させること
ができる。バツフア・アドレスの回帰能力は、入
力スクラツチ・パツド16のためにも含まれ、か
つFIR濾波、FFT平滑化、及び他の滑走窓型機能
のためにマイクロコード・サブルーチンの反復的
変化例をコード化する必要性を除く、メイン・メ
モリのアドレス発生器18は、基本記憶モジユー
ルの境界(データ・バツチ)を横切つてアドレス
することを可能にし、レコード端に近いデータ・
ポイントを処理する特別のマイクロコードに対す
る必要性を除く。 FPEモジユール(CU2及びAMU4)は、シ
ステム監視コントローラの最小の介入しか必要と
しない、機能的に組込まれた処理モジユールにお
いて、多様な信号処理を行なうように設計されて
いる。典型的なプロセツサ構成の単純化された例
が第2図に示される。 演算/メモリ・ユニツト(AMU) 演算/メモリ・ユニツト4に関連する設計パラ
メータは表1にリストされている。演算/メモ
リ・ユニツト4の更に詳細なブロツク図は第3図
に示される。メイン・メモリ6は演算パイプライ
ン・エレメントへ専属化され、他の演算エレメン
トと共用されない。もつと大型のシステム構成で
は、1個のAMU4の出力オペランドは、外部転
送ポートを介して次の処理段階を実行するAMU
へ通される。第2のメイン・メモリ・ポートは、
演算エレメント4のスクラツチ・パツド16との
間でオペランドを転送する。要するに、演算/メ
モリ・ユニツト4は、マイクロ命令制御の下で、
メイン・メモリ6の1つ又はそれ以上の基本記憶
モジユールから直接に働く。演算/メモリ・ユニ
ツト4は、分散したメイン・メモリ6から直接に
転送されたデータ上で働くから、作業記憶装置又
はメイン・メモリ乃至作業記憶装置の転送制御は
必要でない。マイクロ命令は、4MHzマシン×サ
イクルで、メイン・メモリ6及びスクラツチ・パ
ツド16のアドレシング、データ転送のスイツチ
ング、位取り、ALU動作、係数選択、丸めなど
の全てを制御する。スクラツチ・パツド16は、
第3図に示されるように機能的にはSP0からSP
5とラベルを付された6個の部分に割当てられて
いる。メイン・メモリ6からスクラツチ・パツド
SP0,SP1,SP2への全てのデータ転送は丸め
装置21によつて右方シフトされることができ
る。この丸め動作は、マイクロコードによつて直
接に指定されることができ、又はFFTブロツク
浮動小数点丸め動作のために、データに依存させ
ることもできる。スクラツチ・パツドSP0及び
SP1は、全ての滑走窓型アルゴリズムのために、
回帰バツフア・アドレシングを有する。回帰バツ
フア・アドレシングは、これらのスクラツチ・パ
ツドの中で、書込み及び読出し動作のために使用
され、書込み及び読出しアドレスを増加させるた
めのモジユロ16の加算器を使用することによつ
て達成される。この特殊機能の使用例は、後に
FIR濾波の処理フローを説明する際に示す。 IIR濾波及び4点FFTバターフライのようなフ
イードバツク・アルゴリズムの場合、ALU10
へ入力を待ち行列させるため、スクラツチ・パツ
ドSP5が使用される。フイードバツクのための
別個スクラツチ・パツドは、メイン・メモリ6か
らの転送と書込競争が生じるのを除く。ALU1
0は、重みずけの前に1対のオペランドを合計す
ることを可能にし、よつてFIR濾波の如きアルゴ
リズムについて、パイプラインのスループツトを
2倍にする。この特殊機能の例は、後にFIR濾波
の処理フローを説明する時に示す。重みずけされ
た対が必要とされない時、オペランドは直接に加
算器10を通つて乗算器12へ送られる。 表 1 演算/メモリ・ユニツトのパラメータ ・ 4MHzマシン・サイクル ・ マシン・サイクル当りの機能 (半精度のオプシヨンも同じモジユール・タ
イプを使用する) 事前加算(16+16) 乗算(16×16) 2個のアキユムレータ(32+32) 3個の位取り装置 丸め装置(32→16) ・ 振動バツフア・メイン・メモリ 演算エレメントとの間の4MHz転送 インターフエイスとの間の4MHz転送 乗算器12の第2ポートは、係数記憶装置24
又はSP0,SP5から入力を受取る。係数記憶装
置24の入力は、濾波インパルス応答サンプル、
1のFFT累乗根、ビーム形成開孔遮断加重、粗
レゾリユーシヨン帯域シフタ・サンプルなどを表
わす。SP0,SP5からの入力は、平方数(y=
x2)、複素数共役乗算、直接実施相関などのため
に使用される。乗算器12に続く位取り装置22
は、累算のオーバフローを防止するため使用され
るとともに、ALU20と結合して、長項積分の
ような1次線形差分方程式における(1−2-a)
の重みを形成するために使用される。位取り装置
22は乗算器12又はSP2,SP3,SP4から入
力を受取る。 ALU20は多様な機能を持つ演算論理ユニツ
トであり、積分、ビーム形成、一時的FIR濾波部
分合計、数量近似、出力データの再量子化及びパ
ツキングなどのためにスクラツチ・パツドSP3
及びSP4と結合して使用される。スクラツチ・
パツドSP2は、スクラツチ・パツドSP3及びSP
4へ書込む場合の競争を避けるため、メイン・メ
モリ6からデータを転送するために使用される。 乗算器12より後の全ての処理ブロツクは、
8MHzで動作し、基本マシン・サイクルごとに2
つの動作が実行される。これによつて、ALU及
びスクラツチ・パツドの形式でハードウエアを付
け加えることなく、必要に応じて、加算対乗算率
(加算/乗算)を2:1へ増大させることができ
る。この比率は、FFTのようなアルゴリズムの
ために必要である。 位取り装置23は、32ビツトから16ビツトへ丸
めを実行する前に、最有意のハーフ・ワード方向
へデータを左方シフトするために使用される。飽
和出力にはオーバフローが発生する。丸め装置2
6は、スクラツチ・パツドSP5又はSP6へ転送
するための丸め出力を発生する。完全な32ビツト
の出力は、スクラツチ・パツドSP6へ転送する
ためのものであり、短縮された16ビツトの出力は
スクラツチ・パツドSP5へ転送するためのもの
である。スクラツチ・パツドSP6は、メイン・
メモリ6へ出力を転送するための待ち行列バツフ
アとして使用される。SP6から上方又は下方の
ハーフ・ワード(16ビツト)を転送することによ
つて、メイン・メモリ6へ二重に転送することが
でき、隣接したアドレス・ロケーシヨンを使用し
て、フル・レゾリユーシヨンの32ビツト・オペラ
ンドがメイン・メモリ6に記憶される。 状況ビツト論理28は、前のFFT段階の実行
において最有意ビツトが発生したことを感知し、
浮動小数点の位取りを禁止し、SP2/SP3又は
SP3/SP4からALU20へ条件付きでデータを
転送し、前のALU20の動作によつて発生され
た符号の関数として条件付きブランチを実行する
ために使用される。 メイン・メモリ6のモジユラー性及び相互接続
は第4図に示される。基本記憶モジユール
(BSM)は、64Kワード×16ビツトである。デー
タ転送速度は、基本記憶モジユールに対して4M
Hzである。第4図に示されるように、各基本記憶
モジユールは、2つのソースの1つから入力デー
タを受取り、2つのシンクの1つへ出力データを
送るように割当てることができる。メモリ・モジ
ユールは、回帰バツフア様式で割当てることがで
きる。通常、1個の基本記憶モジユールが外部ポ
ート30へ割当てられ、2個の基本記憶モジユー
ルが内部(演算エレメント転送)ポートへ割当て
られる。2個の基本記憶モジユールが演算エレメ
ント(AE)データ転送のために使用される時、
2個の連続したバツチから得られたデータは、
AEによる使用のために利用可能となり、レコー
ド端又かバツチ端に近いデータを処理するため、
特別のマイクロコードが必要となることはない。
1つのモジユールは最新のバツチを含み、他のモ
ジユールは固いバツチを含む。 マイクロ命令中の制御ビツトは、基本記憶モジ
ユールの割当てを回帰させるために使用される。 振動バツフア又は回帰バツフアが使用されない
時、外部データ転送のために、サイクル・スチー
ル動作を使用することができる。 制御ユニツトの概観 各FPEの制御は、単一のコントローラ及びプ
ログラム記憶装置を用いて達成される。プログラ
ム記憶装置は、信号処理サブルーチン及び標準的
リンケージ・プログラムのライブラリイを含む。
全てのプログラミング(サブルーチン及びサブル
ーチンのリンケージ)について、単一レベルのコ
ントローラ及び単一の命令フオーマツトを使用す
ることにより、プログラミング・タスクが顕著に
単純化される。 制御ユニツト2は、マイクロプログラム記憶装
置39に記憶されたマイクロ命令を介して、各マ
シン・サイクルのために全ての演算エレメント・
パラメータを限定し、マイクロプログラム・シー
ケンサ38を介して、演算エレメント動作を連鎖
する。マイクロ命令は、CU2に関連したAMU
4のために、メイン・メモリ6及びスクラツチ・
パツド16のアドレシング、データ通路の切替
え、位取り、ALU動作、係数選択、丸めなどの
全てを制御する。CU2は1つ又はそれ以上の
AMU4を制御することができ、1個を超える
AMU4が接続された時、それらは全てロツクさ
れたステツプで動作する。 マイクロ命令のフオーマツトは第5図に示され
る。マイクロ命令の基本フイールドは、次のよう
な事項を制御する。 a メイン・メモリ6/スクラツチ・パツド12
のデータ転送 b ALU10の機能及びデータ・ソースの制御 c 乗算器12の入力及び係数記憶装置24の制
御 d ALU20の機能、データ・ソース及びデー
タ宛先の制御(2つのサブサイクル) e 丸め装置26の機能及びデータ宛先の制御 f 位取り装置の制御(3つの位取り装置21,
22,23) g マイクロプログラム・シーケンスのためのブ
ランチ制御 h 条件付き動作、コントローラにおけるアドレ
ス・スタツク・ページングのために状況ビツト
論理を制御すること。 メイン・メモリ/スクラツチ・パツド転送 メイン・メモリ6とスクラツチ・パツド16と
の間のデータ転送の特徴は次のとおりである。 1 メイン・メモリ6とスクラツチ・パツドSP
0,SP1,SP5の双方について、循環フアイ
ル・アドレシングが行われる。 2 演算ユニツトはメイン・メモリ6から直接働
く。 3 アドレス増分機能が設けられる。 4 データに依存するメイン・メモリのアドレシ
ングが計算される。 ベース・アドレス及び増分値は、決して変更又
は更新されない。従つてマイクロプログラムは、
それらを元の値へ復元することを覚えておく必要
はない。 ALU10の制御 ALU10の制御の特徴は次のように要約でき
る。 1 それは8機能のALUである。 2 フイードバツク又はメイン・メモリ及びスク
ラツチ・パツドの入力は、Aポートについて選
択可能である。 3 スクラツチ・パツドSP0及びSP1につい
て、循環フアイル・アドレシングが存在する。 4 ALU10は、対称インパルス応答及びアル
ゴリズムのWinograd因数分解を伴うFIR濾波
について優先的に使用される。 係数制御 マイクロ命令の係数制御フイールドは、次のよ
うな能力を有する。 1 スクラツチ・パツド又は乗算器12の第2ポ
ートへの係数入力が選択可能である。 2 係数記憶装置24について、アドレス及び増
分の指定が行われる。 3 係数記憶装置24の1部分から、データに依
存したテーブル・ルツクアツプが実行される。 ALU20の制御(サブサイクル1/2) ALU20の制御フイールドは、基本の4MHzマ
シン・サイクルごとに2つのALU実行を可能と
するため反復される。制御機能の特徴は次のとお
りである。 1 基本の4MHzのマシン・サイクルごとに2つ
の実行が生じる。 2 入力は3つのスクラツチ・パツドの1つから
選択される。 3 部分合計/即時的結果は、2つのスクラツ
チ・パツドのいずれかへ記憶される。 4 それは16機能ALUである。 5 ALU20はアキユムレータとして優先的に
使用される。更にそれは数量近似及び再量子化
に使用される。 丸め装置26の制御 丸め装置26は次のような特徴を有する。 1 16ビツト又は32ビツトの出力が利用可能であ
る。 2 左方シフトは、オーバフローを伴う飽和値を
生じる。 3 基本の4MHzマシン・サイクルごとに、2つ
の実行が生じる。 位取り制御 演算パイプライン・エレメントを通して、位取
り装置21,22,23が分散されている。 1 位取り装置21は、FFTブロツク浮動小数
点のために、データに依存した制御オプシヨン
を有する。 2 位取り装置22は、累算過程におけるオーバ
フローを防止する。 3 位取り装置23は、16ビツトの丸められた出
力のためにデータを位置ずけるために使用さ
れ、かつ任意選択的なデータに依存した制御を
有する。 位取りは、量子化の歪みを最小にし、かつ同時
にスペクトル分析の前に飽和の歪みを防止するた
め、AMU4内で実行される広範囲の利得調整を
含む。位取り装置21は、演算パイプラインへ転
送された16ビツト・オペランドの上で、0から7
ビツトまでの右方シフトを実行する。ALU10
における1対のオペランドの合計は、オーバフロ
ーを防止するため1ビツトの右方シフトを必要と
し、固定した位取り因数であつてよい。 逆に、長いFFTは変換出力で広いダイナミツ
ク範囲を必要とし、先天的に、計算の全階段を通
してオーバフローを防止する位取りは、利用可能
なビツトの非効率的使用を招く。従つて、ブロツ
ク浮動小数点位取り及びデータ依存の位取りが実
行されてよい。その場合、FFT計算の次の段階
で使用される位取り因数は、前の段階で発生した
最大絶対値の関数である。基数2、3、4、5の
段階では、要求される最大の右方シフトは約4ビ
ツトであり、これは位取り装置21の能力範囲内
にある。 位取り装置22は、32ビツト・オペランドを0
ビツトから15ビツトまで右方シフトすることがで
きる。重みずけられた合計におけるアキユムレー
タ入力の位取りは、重みの絶対値の合計の逆数よ
り大きくない因数を使用すべきである。これは1
から2-15まで因数範囲を与え、十分過ぎるほどで
ある。更に、これは長項積分のような1次線形差
分方程式における柔軟な時定数制御を与える。 位取り装置23は、丸める前に有意のデータ・
ビツトを上半分の量子化位置へ置くために使用さ
れる。 ブランチ制御 マイクロプログラム・シーケンスのブランチ制
御は、外部の制御なしに、多数の信号処理サブル
ーチンの連鎖を可能にする。これは、システム監
視コントローラの側で頻繁なアクシヨンを取る必
要性を除く。ブランチの特性は次のとおりであ
る。 1 ブランチ形式 無条件 条件付き カウントの関数 ブランチ・アンド・リンク 2 アドレスへのブランチ、アドレス+変位への
ブランチ 3 512までの入れ子ループ 4 カウント・パラメータのブランチ機能につい
て、512ワードのスタツク 5 ブランチ・スタツクは外部的にロードされる
ことができる 状況(スタツク・ポインタ制御) このフイールドは、マイクロ命令シーケンサ・
スタツク、メイン・メモリ・アドレス・スタツ
ク、係数記憶装置アドレス・スタツクにおけるペ
ージ制御のために使用される。更に、それは状況
ビツトをセツト及びリセツトするために使用され
る。状況ビツト0,SB0は、閾値動作の関数と
して、条件付きブランチ及び条件付きデータ選択
のために使用される。状況ビツトSB1は、条件
付きブランチのために使用される。 アルゴリズム・フローの例 信号処理において大きい計算負荷を表わす若干
の信号処理アルゴリズムが、AMU4における処
理フローを例示するため選択された。 FIR濾波 対称インパルス応答を有する隅数長さのFIR濾
波が第6図に示されるフローのために使用され
る。濾波式の次のように表わすことができる。 YDiは時点Diにおける濾波出力サンプルを示す。 D=デシメーシヨン率 hk=k番目のインパルス応答サンプル Xn=時点mにおける濾波入力信号サンプル フイルタの長さは偶数であるから(L/2=整
数)、インパルス応答係数によつて乗算される前
に相互に加えられる2つの信号サンプルは、常に
奇数及び偶数のサンプルである。従つて、回帰バ
ツフア・スクラツチ・パツドSP0及びSP1にロ
ードする場合、偶数サンプルはSP0にロードさ
れ、奇数サンプルはSP1にロードされる。加重
前に加えられる2つのサンプルは、常にALU1
0の別個のポートで利用可能であり、ALU10
を用いてカツコ内の一対のサンプルの合計をとる
ことができる。次にサンプル対は、乗算器12を
使用して加重される。係数記憶装置24は、hk係
数を与える。位取り装置22は、L/2加重サン
プル対の合計におけるオーバフローを防止するた
めに使用される。前に、位取り装置21は、奇数
及び偶数サンプルの合計におけるオーバフローを
避けるため、メイン・メモリ6から偶数及び奇数
のサンプルを転送する間に使用された。ALU2
0及びSP3は、加重サンプル対の合計に使用さ
れる。SP3は、部分合計記憶装置として使用さ
れる。全てのL/2対が合計された時、出力は、
16ビツトへ丸めるため、位取り装置23及び丸め
装置26へ送られる。出力サンプルは、メイン・
メモリ6へ転送するため、SP6の中で待ち行列
にされる。濾波サブルーチンは各出力サンプルの
ために反復され、出力毎にL/2マシン・サイク
ルを必要とする。必要なメイン・メモリ6の転送
の数はD+1である。D個の新しい入力サンプル
はスクラツチ・パツド16へ送られ、1つの出力
サンプルが転送される。転送サイクルの数と計算
サイクルの数とを等式化すると、L=2D+2を
得る。2のデシメーシヨンについては、濾波処理
は、Lが6又はそれより大である時、演算エレメ
ント・スループツトを十分に利用する。従つて、
実用的な全てのフイルタについて、アーキテクチ
ヤーは良好にマツチする。 第7図はSP0及びSP1のモジユロ16アドレ
シングが、どのようにして濾波を単純化するかを
示す。上方の列はSP0に記憶された偶数サンプ
ルを表わし、下方の列はSP1に記憶された奇数
サンプルを表わす。最初の濾波出力は、信号サン
プル0から7までを含むものと仮定する。サンプ
ル0及び7はALU10へ送られ、加算され、加
重され、次いでSP3へ記憶される。SP0のアド
レスは1だけ増加され、SP1のアドレスは1だ
け減少され、サンプル2及び5が、加重前に合計
のために利用可能となる。これはもう2回だけ反
復され、サンプル対4−3及び6−1が、加重前
に、合計のために利用可能となる。次にSP0の
アドレスが2だけ減少され、SP1のアドレスが
4だけ増加され、サンプル2から9までに関する
フイルタ計算が開始される(デシメーシヨンが2
である時)。SP0が1だけ増加され、SP1が1
だけ減少される内部ループが反復される。 奇数及び偶数サンプルをスクラツチ・パツド1
6へロードするため、同様な手順が使用される。
2つのスクラツチ・パツドについて、アドレス増
分は1であり、それぞれの内部ループ実行毎に一
対のサンプル(D=2)がスクラツチ・パツド1
6へ転送される。 第8図は、スクラツチ・パツドSP0及びSP1
の回帰バツフア・アドレシングのために、単純な
4ビツト・スライス加算器42、マルチプレクサ
44、アドレス・レジスタ46、増分器48がど
のようにしてモジユロ16加算器として使用され
るかを示す。 高速フーリエ変換(FFT) 複素数データ及びフイードバツクを含むフロー
を例示するため、4点FFTバターフライが選択
された。第9図に示されるように、4点バターフ
ライは、2個のFFT段階の各々について一対の
2点バターフライの実行を表わす。第1段階へ入
力される4つの複素数データ・サンプルの中で、
2つのサンプル(C、D)は1の累乗根によつて
乗算されねばならないが、他の2つのサンプル
(A、B)はそうでない。 サンプルC及びDはメイン・メモリ6から位取
り装置21を介してスクラツチ・パツドSP0へ
転送され、サンプルA及びBは、位取り装置21
を介してSP2へ転送される。サンプルC及びD
はメイン・メモリ6から位取り装置21を介して
スクラツチ・パツドSP0へ転送され、サンプル
A及びBは、位取り装置21を介してSP2へ転
送される。位取り器21は、4点2段階アルゴリ
ズム実行の間にオーバフローを防止するため、デ
ータ依存ブロツク浮動小数点モードで使用され
る。第1段階が実行されて出力A′,B′,C′,
D′を発生する。これらはスクラツチ・パツド1
6に記憶され、メイン・メモリ6の追加的転送を
必要とすることなく、第2段階の実行が可能とな
る。B′及びD′は第2段階で1の累乗根によつて
乗算されねばならないので、それらはフイードバ
ツク・バツフアSP5へ導かれる。中間点A′及び
C′は乗算されてはならず、一時的バツフアSP3
及びSP4に記憶される。次に2段階が実行され、
出力(A″,B″,C″,D″)が、メイン・メモリ6
へ戻されるためにSP6で待ち行列にされる。基
本的2点バターフライ等式は次のような形式を有
するので、必要な加算及び減算を実行するため、
ALU20の2つのサブサイクルが使用される。 A′=A+W0C C′=A−W0C 1の累乗根は、係数記憶装置24によつて与え
られる。第1段階の終りにおけるフイードバツク
及び一時的変数の記憶との競争を避けるため、メ
イン・メモリ6との間の全ての転送について、別
個のバツフアが設けられることに注意されたい。
4点FFTアルゴリズムは、内部ループ実行のた
めに16個のマシン・サイクルを必要とし、8個の
複素数入力及び出力を転送するため16個のマシ
ン・サイクルを必要とするので、マツチしたもの
と言える。FFTはきちんと実行されるわけでな
く、従つてビツト反転ハードウエアは設計中に含
まれない。演算エレメントのために利用可能な大
型の(典型的には64Kワード)ランダムにアドレ
ス可能なメイン・メモリ6は、作業スペースを
FFTサイズの2倍に等しくとることができる。
これはコスト上有効な手法である。FFTが実行
されていない時、この資源は他の使用にあてるこ
とができる。 時間遅延ビーム形成 時間遅延ビーム形成は、適当に遅延されたセン
サ信号サンプルの加重合計を表わす。 ここで、Bn、kは、m番目のビーム出力のk番
目の時間サンプルであり、Wpは、p番目の水管
検漏器信号のk番目の時間サンプルであり、
Dn、pはm番目のビーム及びp番目のセンサに対
する遅延である。 2次元アドレシングの利点は、上記の等式から
明らかである。更に、センサ時間サンプル
(Kp、k-Dn、p)の選択において、インデツクスを
独立的に増加させることのできる能力は、任意の
幾何学的形状を有するアレイについて、直截的時
間領域ビームの形成を可能にする。 最近時に利用可能なサンプルが使用される際の
(外挿なし)時間領域ビーム形成について、処理
フローが第10図に示される。信号サンプルはメ
イン・メモリ6から2次元的にアドレスされ、
SP0へ送られ、ALU10を介して乗算器12へ
導かれ、そこでサンプルの重み付けがなされる。
遮光係数は係数記憶装置24から得られる。ビー
ム出力を発生するために使用されたp個のセンサ
時間サンプルのすべては、順次にアドレスされ
る。部分的合計はSP3に記憶される。p個のセ
ンサ信号の全てが合計された時、出力(Bn、k)
は位取り装置23及び丸め装置26を通され、
SP6を介してメイン・メモリ6へ転送される。
ビーム出力を発生するため、センサ・サンプルを
連続的に合計できる能力は、部分和ビーム形成ア
ーキテクチヤーと比較して、非常に直截なアルゴ
リズムを可能にする。更にプロセツサは、非常に
効率的に周波数領域ビーム形成を実行できる能力
を有する。 時間領域ビーム形成は空間FIRを濾波すること
である。このアーキテクチヤーによつて、計算は
出力速度で実行され、データ・デシメーシヨンは
効率的に使用されることができる。これは、狭帯
域処理が時間領域ビーム形成器と組合せて使用さ
れるシステムでは重要である。もしセンサ信号が
多くの場合、ナイキスト率でサンプルされない
か、又は実効サンプル率を増加させるための外挿
法が使用されないならば、均一間隔の線形アレイ
中に、ひどい側方ローブの減衰が生じる。外挿法
は、大きな遅延誤差を有するセンサについて一時
的サンプルの隣接したセツトを抽出し、外挿フイ
ルタリングを適用することによつて、ビーム形成
の計算に含ませることができる。開孔加重及び外
挿加重は合成加重へ結合されることができ、合成
加重は係数記憶装置に記憶される。従つて、元の
センサ・サンプル率がナイキスト率の約4倍から
5倍である時、良好な効率を生じる線形間挿法に
ついては、間挿を必要とするセンサのためにサン
プル対が演算エレメントへ送られ、各サンプルに
1つずつの2つの重みが使用される。高次の間挿
も同じようにして実行することができる。計算上
の負荷が帯域によつて決定された出力サンプル速
度の関数である時、時間領域ビーム形成をFIR濾
波として実行することのできる他の利点は、入れ
子になつた開孔線形アレイを使用する時に生じ
る。計算負荷は帯域幅の関数であり、信号帯域幅
から独立した一定のチヤネル利用ではない。 機能処理エレメント(FPE)のハードウエア
の説明 FPEは、4MHzの基本マシン・サイクルで動作
するマイクロプログラム制御の信号プロセツサで
ある。パイプラインの制御機能は、制御ユニツト
(CU)2上で区分化され、単一のCU2が、いく
つかの演算/メモリ・ユニツト(AMU)4をロ
ツク・ステツプ方式で駆動させることができるよ
うに、CU2の上で区分されている。以下の説明
は、単一のAMU/CU構成に限定したものであ
る。 プロセツサ演算パイプライン 第3図の演算パイプライン(AP)は各種の位
取り装置、スクラツチ・パツド・メモリ、加重用
ALU、乗算器及び丸め装置から構成される。そ
れは時間段階のシーケンスで動作し、8MHzの速
度でデータ・スループツトを発生することができ
る。パイプラインを通して、2の補数演算が実行
される。APの全体は、第5図のマイクロ命令に
よつて制御される。プロセツサは、入力データを
メイン・メモリ6から4MHzの実行速度で受取る。
位取り装置21は、メイン・メモリ6から16ビツ
トのデータを受取り、通常モードにある時はマイ
クロ命令から取られた3ビツト・シフト・コード
の制御の下で、又データ依存モードにある時は前
に処理されたデータによつて決定されるコードか
ら取られた3ビツト・シフト・コードの制御の下
で、上記データを0から7ビツト位置だけ右方シ
フトする。上記のモードは、マイクロ命令によつ
て指定される。データ依存位取り制御は、状況コ
ード論理によつて決定される。 2の補数データが使用され、従つてシフトによ
つて空にされた高順位ビツトは、入力の符号(0
は正、1は負)を充填される。位取り装置21は
カスケード形の4路マルチプレクサで構成されて
よい。 位取りされた入力データは、マイクロ命令によ
つて限定された3つのスクラツチ・パツドSP0,
SP1,SP2の1つによつて受取られる。メイ
ン・メモリ6のソース・ロケーシヨンからスクラ
ツチ・パツドのシンク・ロケーシヨンへ行なわれ
る全ての転送は、マイクロ命令ビツトによつて指
定される。 メイン・メモリ6は、出力シンクとしてSP0,
SP1,SP2を有することができ、入力ソースと
してSP6を有することができる。 スクラツチ・パツドは16ワードの高速静電トラ
ンジスタ・トランジスタ論理(TTL)ランダ
ム・アクセス・メモリであつて、3状態出力を有
し、各種のソースを相互に母線化(ワイヤオア)
することができる。これはハードウエア多重化の
必要性を除く。 ALU10は高速の16ビツト、16機能モジユー
ルであつて、これは出力機能F=A,B,A±B
を有する。このALUのための機能コードはマイ
クロ命令ビツトによつて指定される。 ALUのAポート入力は、マイクロ命令によつ
て決定されたところに従つてSP0又はSP5であ
ることができる。Bポート入力は直接にSP1か
ら配線される。これらスクラツチ・パツドに対す
るアドレシングは、直接にマイクロ命令ビツトに
よつて指定される。ALU10の出力は、乗算器
12の被乗数(X)レジスタに記憶される。
ALU10を通るスクラツチ・パツドからのデー
タ転送は、パイプラインの段階1である(全体の
経過時間:125ナノ秒)。 乗算器12のY入力は、マイクロ命令ビツトに
よつて制御される。ソースはALU10のAポー
トから来るSP0又はSP5であり、又は制御ユニ
ツトに置かれた係数記憶装置24から来る16ビツ
トの値である。このデータは、マイクロ命令ビツ
トのデコードによつて制御される2入力マルチプ
レクサを介して、乗算器12の入力へ送られる。 乗算器12は、高速低電力大型集積(LSI)装
置であつて、オンボードの入力及び出力レジスタ
を有している。この装置は16×16ビツトであり、
250ナノ秒(ns)内に、2の補数倍精度の積を生
じる。積はクロツク信号によつて出力レジスタへ
入れられ、そこで後の動作のために安定に保存さ
れる。乗算器12は、パイプラインの段階2及び
3である(全体の経過時間:375ns)。 パイプラインのこの時点までは、演算は4MHz
の速度で走つており、新しいデータは250ns毎に
処理される。この時点から後はデータは8MHzの
速度で処理される。これによつて、多くの信号処
理アルゴリズムで共通に必要とされるように、乗
算毎に2つの加算を実行することができる。マイ
クロ命令はCU2から4MHzでのみ利用可能となる
ので、もし必要であれば、マイクロ命令中の制御
ビツトが二重にされる。(ALU20及び丸めシン
ク・コード)。二重にされない場合、制御ビツト
は2つの動作(位取り及び丸め)のために維持さ
れる。乗算の最初の125nsはサブサイクル1と呼
ばれ、第2の125nsはサブサイクル2と呼ばれる。
今後、サブサイクル1に関するデータ・フローを
説明するが、同様の独立した処理がサブサイクル
2で起る。 ALU20の入力にある位取り装置22は、マ
イクロ命令ビツトから与えられた4ビツト位取り
コードの制御の下で、32ビツト・データを0から
16ビツト位置だけ右方シフトすることができる。
位取り装置22は、位取り装置21について説明
したように、カスケード形4入力マルチプレク
サ・モジユールで構成される。更に、位取り装置
21と同じように、シフト過程で空にされた高順
位ビツト部分に符号が充填される。 位取り装置22に対するデータ・ソースは、積
の出力又はSP2,SP3,SP4であることができ
る。このデータは、マイクロ命令ビツトによつて
制御される2入力マルチプレクサを介してゲート
される。もしマルチプレクサのスクラツチ・パツ
ド・ポートが選択されると、ALU20へのソー
スとして使用されている同じスクラツチ・パツド
の内容が、同時に位取り装置22へ送られる。 位取り装置22は、パイプラインの段階4であ
る(全部で500nsの経過時間)。 ALU20は、32ビツト幅データ通路のために、
2つの高速機能発生器を使用して構成される。こ
のALUで要求される機能は、F=A、B、A±
B、B−A、|A|±|B|、及び|B|−|A
|である。モジユールはB−Aを直接に与えるこ
とができないので、B−A機能の間に入力を交差
させるため、各ポートの前方に2入力マルチプレ
クサ設けられる。 2入力マルチプレクサは、入力として段階遅延
の位取り装置22の値又はスクラツチ・パツド
SP2,SP3,SP4のバスを有する。ALU20
のデータ・シンクは、SP3又はSP4又は出力デ
ータ用位取り装置23である。マイクロコード設
計の制約として、同じサブサイクルでは、ソース
のスクラツチ・パツドはシンクのスクラツチ・パ
ツドとして選択されることはできない。ALU機
能、ソースのスクラツチ・パツド及びそのアドレ
ス、シンクのスクラツチ・パツド及びそのアドレ
スを制御するマイクロ命令ビツトは、サブサイク
ル1についてはビツトの最初のフイールドであ
り、サブサイクル2についてはビツトの第2フイ
ールドである。ALU20はパイプラインの段階
5である(全体の経過時間:625ナノ秒)。 位取り装置23は、処理されたデータの出力を
正規化し、且つマイクロ命令から得られる2ビツ
トの位取り制御ビツトの制御下で、32ビツトのデ
ータを0,2,4又は6ビツト位置だけ左方へシ
フトする。この位取りコードは、サブサイクル1
及びサブサイクル2の双方でデータへ印加され
る。位取り装置23はオーバフロー保護回路を有
する。この回路は、左方へシフトされる有意ビツ
トを感知し、データが正であるか負であるかに従
つて、オーバフローが検出された時に、出力を01
……又は10……0へ強制する。位取り装置23
は、基本的には4つの可能なシフト条件のために
ハードワイヤされた4入力マルチプレクサから構
成される。このマルチプレクサの出力は、シフト
されたデータ又は強制された値を通す2入力マル
チプレクサへ送られる。オーバフロー検出論理
は、フイールド・プログラム可能論理アレイ
(FPLA)で構成される。位取り装置23はパイ
プラインの段階6である(全体の経過時間:
750ns)。 パイプラインの最後の段階は、出力データ用丸
め装置26である。丸め装置26は高順位の16個
のデータ・ビツト上で動作する。32ビツトのデー
タは、変更されないで通されるか、又は16個の0
が続いた高順位15ビツト及び符号へ丸められる。
マイクロ命令の丸め指令は、サブサイクル1及び
サブサイクル2の双方で、データへ印加される。 丸め装置26に対するシンクはSP5又はSP6
であることができる。SP5は16ビツトの幅であ
り、従つて丸めモードが選択されない時、データ
を符号及び15ビツトへ切詰める。SP6は32ビツ
トのメモリであり、メイン・メモリ6へ転送する
ための出力データをバツフアする。SP5又はSP
6のアドレスは、1個のマイクロ命令ビツトによ
つて直接に指定され、他のマイクロ命令ビツトは
記憶されるべきサブサイクル・データを指定す
る。もしE1及びE2ビツトの双方がアクチブで
あれば、サブサイクル1のデータは指定されたア
ドレスへ記憶されるべきであり、サブサイクル2
のデータは指定されたアドレスに1を加えたとこ
ろに記憶されるべきである。出力データ用丸め装
置は、変更されないデータ又は0を低順位16ビツ
ト・データ・フイールドへ送るため、機能発生器
モジユール及び2入力マルチプレクサを使用して
構成される。丸め装置26はパイプラインの段階
7である(全体の経過時間:875ns)。 SP6は実際には2個の16ビツト・メモリであ
る。完全精度(32ビツト)のデータは16ビツトの
メイン・メモリ6へ2つの連続した転送を行なう
ことが必要である。 プロセツサ・メイン・メモリ メイン・メモリ6は3個のメモリ・モジユール
で構成される(第11図)。その各々は16ビツト
の幅であり、且つ64Kワードの高さである。3個
のモジユールは循環フアイル(又は回帰バツフ
ア)様式に設計され(第12図)、任意の時点で
モジユールの2つが演算パイプラインと通信する
ため切換えられ、第3のモジユールは入力データ
処理器及び出力データ指導器と通信している。処
理サイクルの終りで、マイクロ命令はモジユール
を回帰させ、処理結果を外部へ出し且つ新しい入
力データ・レコードを受け取つたモジユールが演
算パイプラインに対して新しい入力データ・モジ
ユールとなる。前に新しい入力データ・レコード
を有していたモジユールは、今やデータ・レコー
ド及び現在処理された結果の重複バツフアとな
り、前に処理された結果を有するモジユールは、
今や処理されたデータをホスト・システムへ与
え、且つ次の新しい入力データ・レコードを累積
するため、外部へ接続される。 それぞれのメイン・メモリ・モジユールへの入
力は、2入力マルチプレクサ182である。マル
チプレクサ182は、1つの入力34として演算
パイプラインのSP6を有し、他の入力30とし
て入力データ処理器を有する。各モジユールの出
力は、2個の3状態(T/S)バツフア184へ
入る。1つのバツフア184は、線36によつて
演算パイプラインへ接続され、他のバツフア18
4は、線32によつて出力データ指導器へ接続さ
れる。入力マルチプレクサ及びT/Sバツフアの
制御は、メイン・メモリ・アドレス発生器18a
によつて、線180を介して実行される。アドレ
ス発生器18aは、メイン・メモリ・モジユール
の各々へのアドレス線を多重化し、且つこれらモ
ジユールへチツプ選択兼書込能動信号を与える。 プロセツサのタイミング プロセツサの基本的タイミングは、4MHzの6
つの位相によつて与えられる。AMU4の場合、
位相1は2MHz及び4MHzの方形波信号を発生する
ために使用される。これらの信号は、各種のメモ
リ制御及びパイプライン・ステージング・サイク
ルを規制するために使用される。第13図は、メ
イン・メモリからスクラツチ・パツドへのデータ
転送の基本タイミング・シーケンス、及びスクラ
ツチ・パツド(SP0又はSP1)からパイプライ
ンの6つの段を通るデータの処理シーケンスを示
す。 第13図からわかるように、時間ゼロ(t0)の
時点でパイプラインに入つたデータは、875nsの
後に丸め装置26の出力で利用可能となる。 制御ユニツト 制御ユニツト(CU)2の目的は次のとおりで
ある。 1 マイクロプログラム、スタツク、及び係数パ
ラメータの初期プログラム・ロード(IPL)を
行なうこと。 2 マイクロプログラム記憶装置39のために次
のアドレスを発生すること。 3 係数記憶装置24のアドレスを発生するこ
と。 4 スクラツチ・パツド16のアドレスを発生す
ること。 5 メイン・メモリ6のアドレシング及び制御を
行なうこと。 CU2の機能は、第14図に示される各種のセ
クシヨンによつて実行される。これらのセクシヨ
ンは次のとおりである。 1 IPLコントロール52 2 マイクロプログラム記憶装置39及びマイク
ロプログラム・シーケンサ38 3 乗数係数記憶装置24 4 スクラツチ・パツド・アドレス発生器18b 5 メイン・メモリ・アドレス発生器18a 制御ユニツト・ハードウエアの概観 IPLコントロール52 IPLコントロール52は、データをコンピユー
タからプロセツサへ転送する。IPLの間にロード
されるべき装置は次のとおりである。 1 マイクロプログラム記憶装置 2 係数記憶装置 3 カウント関数ブランチ(BFC)プリセツト
及びアドレス・スタツク 4 BFCループ・カウント・スタツク 5 係数アドレス/増分スタツク 6 メイン・メモリ・アドレス/増分スタツク マイクロプログラム・シーケンサ38 第15図のマイクロプログラム・シーケンサ3
8は、マイクロプログラム記憶装置39の全ての
アドレシング及びシーケンス制御を行なう。実行
できる機能としては、現アドレスの1の加算、入
れ子ループ、条件付きまたは無条件ブランチがあ
る。 シーケンサ38はマイクロ命令デコード論理2
06、プログラム・カウンタ208、ループ制御
論理210、初期ループ・カウント・スタツク2
12、現ループ・カウント・スタツク214、無
条件/条件(UB/CB)ブランチ・アドレス・
スタツク216、カウント関数ブランチ(BFC)
スタツク218、ブランチ・アンド・リンク・ア
ドレス記憶装置220を含む。 ループ・カウント・スタツク212及び214
の各々は、512個の値を含む。初期ループ・カウ
ント・スタツク212はループ・サイズ(ループ
毎に2048回の繰返し)を含む。それはIPLの間に
初期化され、動作過程の間不変のままである。現
ループ・カウント・スタツク214は、マイクロ
プログラム中の各ループの現在の値、及びループ
が満足されたかどうかを示すビツトを含む。カウ
ント関数ブランチ・スタツク218はBFC命令
のために512個のアドレスを含み、ブランチ・ア
ドレス・スタツク216は無条件及び条件付き命
令のために512個のアドレスを含む。 次に、シーケンサ38によつて制御されるマイ
クロ命令の各々について説明する。 CONT(継続) 継続命令はプログラム・カウンタ208に含ま
れるプログラム・カウント(PC)値を増加させ、
記憶装置39の次のマイクロ命令にアクセスす
る。スタツク値に対しては、変更はなされない。 BFC(カウント関数ブランチ) BFCマイクロ命令は全てのループ活動を制御
する。シーケンサ38は、任意のループ(入れ子
になつたもの、又はそうでないもの)の2048回ま
での繰返しを実行する能力を与える。 ループとして限定されたコード・シーケンスの
終りに、BFC動作コードが現われる。マイクロ
命令のブランチ・スタツク・ポインタ・フイール
ド156によつて限定されたところに従つて、現
ループ・カウント・スタツク214がアクセスさ
れ、そのアンダフロー・ビツト215が検査され
る。もしビツト215がオフであれば、それはル
ープが完了していないことを示す。動作コードが
そのように表示すると、プログラム・カウンタ2
08は、BFCスタツク218の指定されたロケ
ーシヨンから、ループ中の開始アドレス値をロー
ドされる。もしビツト215がセツトされていれ
ば、プログラム・カウンタ208はアドレスを1
だけ増加される(PC+1)。この場合、現ルー
プ・カウント・スタツク214にある値は、後に
このループへ戻る可能性を想定して、初期値へ変
更される。 UB(無条件ブランチ) 無条件ブランチが指定された時、プログラム・
カウンタ208はブランチ・アドレス・スタツク
216から直接にロードされる。 CBS0,CBS1(条件付きブランチ) 条件付きブランチは、特定の動作コードと状況
ビツトの状態とに基づいて起る。 もし指定された状況ビツトがオンであれば、プ
ログラム・カウンタ208はブランチ・アドレ
ス・スタツク216からロードされる。もしビツ
トがオンでなければ、プログラムはアドレスPC
+1へ進む(ブランチ無し)。 CBCR(ブランチ・カウント・レジスタ減少) この動作コードは、現ループ・カウント・スタ
ツク214の指定されたアドレス内容を読出し、
それを減少させ、その結果を同じアドレスに書戻
す。現ループ・カウントが読出された時、もしビ
ツト215が検出されると、ループを再初期化す
るため、初期ループ・カウントが現ループ・カウ
ントと入替る。プログラムはアドレスPC+1へ
進む。 マイクロプログラム記憶装置 マイクロプログラム記憶装置39は、プロセツ
サのために2048個のコード・ワードを与える。各
ワードは128ビツトの幅である。マイクロ命令の
各種の命令フイールドは、第5図に示される。マ
イクロプログラムのアドレスは、4096ワードのマ
イクロコードまで拡張して発生することができ
る。 係数記憶装置24及び係数記憶アドレス発生器
18c 係数記憶装置24及び係数記憶アドレス発生器
18cは、演算エレメント(AE)のために、乗
算器12の全ての係数を与える。係数記憶装置2
4はIPLの間にロードされ、マイクロ命令ワード
によつてアクセスされる。係数記憶アドレス発生
器18cは、マイクロ命令を介して選択されたア
ドレシング・モードに基いて係数記憶装置の全て
のアドレスを発生する。 この機能は第16図の係数記憶装置24、第1
7図のアドレス/増分スタツク60及びアドレス
ALU62を使用する。 係数記憶アドレス発生器には、4つの基本的制
御状態が存在する。これらの状態は、マイクロ命
令のビツト(第5図参照)によつて選択される。
これらの状態は、係数記憶アドレスを発生するた
め、スタツク60から取られたアドレス又は増分
を使用する。 係数記憶アドレス発生器18cの4つの制御状
態は、次のとおりである。 (1) アドレス・モード (2) 増分モード (3) テーブル・ルツクアツプ・モード (4) スクラツチ・パツド選択モード 最初の3つのモードにおいて、係数記憶装置2
4は、乗算器12の入力として選択される。スク
ラツチ・バツド選択モードにおいて、SP1は乗
算器12の入力を与え、係数記憶装置24はロツ
ク・アウトされる。 アドレス・モードにおいて、アドレス/増分ス
タツク60の中で発見された12ビツトのアドレス
は、現係数アドレス・スタツク60′へ直接にゲ
ートされる。スタツク60′のアドレスは、現ア
ドレス・スタツク・ポインタによつて指定され
る。スタツク60′は、増加されるべきアドレス
の一時的記憶装置となり、又は選択された現係数
アドレスを単にバツフアする。 増分モードにおいて、アドレス/増分スタツク
60から取られた12ビツト増分値は、同じマイク
ロ命令の現アドレス・ポインタによつて選択され
た16個の現係数アドレスの1つへ加えられる。 テーブル・ルツクアツプ・モードにおいて、現
係数アドレスはSP1データである。この12ビツ
ト・アドレスは、アドレスALU62を通され、
現アドレス・ポインタによつて指定された現係数
アドレス・スタツク60′のロケーシヨンに記憶
される。 スクラツチ・パツド・アドレス発生器18b 前に概説したように、マイクロ命令は演算エレ
メント内でスクラツチ・パツド16の読出し、書
込み、アドレシングを選択するフイールドを含
む。各種のビツトの割当てを詳細に説明するので
はなく、実際のスクラツチ・パツドの機能、即ち
パツドの選択、アドレス論理、読出/書込共通回
路に焦点をしぼつて説明する。 第18図はスクラツチ・パツド選択機能の概要
を示す。マイクロ命令ビツトは、それぞれの選択
デコーダに隣接して垂直方向に並べて示される。 デコード出力に隣接したカツコは、読出/書込
アドレス選択を示す。例えば、SPORはSPO読出
アドレスの起点であり、SPOWはSPO書込アド
レスの起点である。Uは上位Lは下位を示す。実
際の読出又は書込アドレスは適当な選択線へゲー
トされる。 SP0又はSP1の場合、最終的な読出/書込ア
ドレスは、関連したアドレス・フイールドから直
接に取られた絶対アドレスであつてよく、又はそ
れはアドレス・フイールドが増分値を含む増加さ
れたアドレスであつてよい。他の全てのスクラツ
チ・パツドは直接にアドレスされる。 アドレスがデコードされると、適当な読出又は
書込制御信号が選択されたスクラツチ・パツドへ
印加される。各スクラツチ・パツドは具体的場合
に対処する制御信号を発生する同じような回路を
有する。 メイン・メモリ・アドレス発生器 メイン・メモリ・アドレス発生器18aは第1
9図に示される。それは8個の64KワードBSM
をカバーするアドレスを与える。発生されたアド
レスの長さは19ビツトである。最順位の3ビツト
は線180を介して8個のBSMの1つを選択し、
低順位の16ビツトは、線146を介して、選択さ
れたBSM内のロケーシヨンにアクセスする。 メイン・メモリ・アドレス発生器18aは現ア
ドレス・レジスタ80、基本アドレス/増分スタ
ツク64、メイン・メモリ・アドレス・レジスタ
151、モジユロMカウンタ66、BSM選択の
ためのALU84,86,88、及びアドレス計
算のためのALU82を含む。 現アドレス・レジスタ80は16個までの現在の
又は更新可能なメイン・メモリ・アドレスを記憶
する。アドレス/増分スタツク64はページ形式
で構成された1024個のベース・アドレス又は増分
を含む。ここで個々のページは16個のアドレス又
は増分を含む。ページは、ページ・ビツト154
を使用することによつて選択される。モジユロM
カウンタ66は、「フアイル回帰」マイクロ命令
の使用及びIPLの時にセツトアツプ・レジスタで
「回帰している」ものとして限定されたBSMの数
の関数として、メイン・メモリ・アドレスの最有
意の3ビツトを発生する。アドレス/増分スタツ
ク64の出力の最有意ビツトは、アドレスが固定
BSMに対するものであるか、又は回帰BSMに対
するものであるかを示すため使用される。 新しいメイン・メモリ・アドレスは、実行され
た各マイクロ命令の結果として計算される。ペー
ジ・ビツト154と、マイクロ命令中の4ビツ
ト・ベース・スタツク・ポインタ145とを連結
することによつて形成された10ビツト・アドレス
を使用して、アドレス/増分スタツク64から値
が取出される。 ALU82は、結果の16ビツト・フイールドが
アドレスとして指定されたか、又は増分として指
定されたかに従つて、このフイールドを通過させ
るか又は指定された現アドレス・ロケーシヨンの
出力へ加える。 ベース・アドレスの高順位3ビツト180は、
BSMを選択するために使用される。固定BSMが
選択された時、これらの3ビツトは、もしアドレ
ス/増分ビツトがアドレスを示すならば、ALU
82の16ビツト出力146へ付加され、もしアド
レス/増分ビツトが増分を示すならば、アドレ
ス/増分スタツク64の最有意3ビツトへ加えら
れる。回帰BSMが選択された時、3ビツト18
0は、現アドレス・レジスタ80の最有意3ビツ
トへ加えられるか(アドレス/増分ビツト=増分
の時)、又はモジユロMカウンタ66の内容へ加
えられる(アドレス/増分ビツト=アドレスの
時)。 ALU84,86,88は、「フアイル回帰」指
令がIPLで限定された回帰可能なBSMの境界を
越えてBSM値を進ませる時点を検出するために
設けられる。 モジユロMカウンタ66は、IPL時に線186
を介してモジユロ・ベース値をロードされる。こ
の値は、回帰バツフア様式で動作されるべき
BSMの数(0から7まで)である。マイクロ命
令ワード中のフイールド190にあるビツト12
4−126は、バツフアを回帰させることが望ま
れる度にカウンタを増加させるため、線188を
介してモジユロMカウンタ66へ印加されること
ができる。例えば、IPL時に、M=3がモジユロ
Mカウンタへロードされ、3BSM回帰バツフア動
作を能動化する。次いで、外部バス・インターフ
エイス・ユニツト(BIU)は、入力30(第11
図)を介して、BSMの全容量の半分までデータ
をロードするよう要求してよい。この時点で、モ
ジユロMカウンタ66から線180へ出力された
BSMポインタ値P=1によつて、BSM1が指示
されているものと仮定する。BSM2はAUから
のロード入力へ接続され、BGM1は入力30へ
接続され、BSM0はAUからの線36へ接続さ
れる。BIUがデータをBSM1へロードした後、
それはスタート・パルスをマイクロプログラム・
シーケンサ38へ送る。シーケンサ38はマイク
ロプログラム記憶装置39の最初のマイクロ命令
にアクセスする。そのマイクロ命令のビツト12
4−126は、BSMポインタPを1だけ増加さ
せる線188上の制御信号を形成する。P=2の
新しい値は、マルチプレクサ182及び3状態バ
ツフア184へ至る制御線180へ出力される。
バツフア184はBSM1の出力を演算/メモ
リ・ユニツト4へ至る線36へ接続する。BSM
2は線32及びBIUからのロード入力30へ接続
され、BSM0はAUからのロード入力34へ接
続される。 制御ユニツト・アーキテクチヤーの詳細な説明 これまでの概説からわかるように、制御フイー
ルド部分、演算フイールド部分、記憶フイールド
部分を含むマイクロ命令ワードに基いて、マイク
ロ命令制御スタツク、データ・メモリ制御スタツ
ク、及び係数メモリ制御スタツクにアクセスする
ため、共通のページ番号を使用することは、パイ
プライン式信号処理コンピユータの制御動作、演
算動作、及び入出力動作の間に緊密な協働関係を
もたらす。この緊密な協働関係は、タスク変化に
対するシステムの応答を早くすることができ、そ
れによつて、パイプライン式演算動作が概して厳
格なシーケンシヤル構造を必要とするにもかかわ
らず、汎用コンピユータで達成される柔軟性に類
似した大きな柔軟性を、システムの動作特性とし
て与えることになる。 この顕著な利点は、第15図、第20図、第2
1図に詳細に示される制御ユニツトによつて達成
される。第20図は、マイクロプログラム・シー
ケンサ38、アドレス/増分(係数ベース)スタ
ツク60、及びアドレス/増分(メイン・メモ
リ・ベース)スタツク64にある制御スタツクに
対して統一した制御を示す機能的ブロツク図であ
る。第15図はマイクロプログラム・シーケンサ
38の詳細な構造を示している。第21図はスク
ラツチ・パツド・アドレス発生器18b及び演算
制御論理の詳細な構造を示す。 第15図に示されるように、マイクロプログラ
ム記憶装置39はアドレス入力と、レジスタ10
0に対するマイクロ命令ワード出力とを有する。
レジスタ100は、マイクロ命令ワードを記憶す
るためのものである。各マイクロ命令ワードは、
ページ・アドレス・フイールド154、ブラン
チ・スタツク・ポインタ・フイールド156、ブ
ランチ制御フイールド232を含む制御フイール
ド200を有する。更に、各マイクロ命令ワード
は演算フイールド202、記憶フイールド204
を含む。 マイクロ命令ワードを4MHzの速度で出力する
ようマイクロプログラム記憶装置へ信号を与える
ため、4MHzの反復速度でクロツク信号150を
発生するクロツクが、マイクロプログラム記憶装
置39へ接続される。各マイクロ命令ワードは、
対応する250nsのマイクロ命令期間中、マイクロ
プログラム記憶装置39のアドレス入力へ印加さ
れたアドレスのところでそれぞれアクセスされ
る。 デコード論理(シーケンス・デコーダ)206
は、クロツク信号150を入力され、かつ1つの
入力をマイクロ命令記憶装置出力のブランチ制御
フイールド232へ接続され、4MHzの反復速度
でマイクロ命令ワード中のブランチ制御命令をゲ
コードした出力を発生する。 カウント関数ブランチ(BFC)スタツク21
8は、ページ・アドレス入力をマイクロプログラ
ム記憶装置出力のページ・アドレス・フイールド
154へ接続され、ポインタ・アドレス入力をブ
ランチ・スタツク・ポインタ・フイールド156
へ接続され、制御入力をデコード論理206の出
力へ接続されて出力を発生する。BFCスタツク
218は、複数のページ群の中にマイクロ命令ル
ープ開始地点アドレスを記憶している。各ページ
群は、ページ・アドレス入力によつてアクセスさ
れる。また各ページ群は、ポインタ・アドレス入
力によつてアクセスされる複数の開始地点アドレ
スを有する。BFCスタツク218は、デコード
論理206からの出力に応答して、新しいループ
開始地点アドレスを選択的に出力し、かつマイク
ロプログラム記憶装置39から出力された最新の
マイクロ命令ワードのブランチ制御フイールド2
32がその中にループ終了命令を有するかどうか
を示す信号を出力する。 現ループ・カウント・スタツク214は、ペー
ジ・アドレス入力をマイクロプログラム記憶装置
出力のページ・アドレス・フイールド154へ接
続され、ポインタ・アドレス入力をブランチ・ス
タツク・ポインタ・フイールド156へ接続さ
れ、かつ出力を有する。現ループ・カウント・ス
タツク214は複数のベージ群の中に現マイクロ
命令ループ・カウントを記憶する。各ページ群は
ページ・アドレス入力によつてアクセスされる。
また各ページ群は、ポインタ・アドレス入力によ
つてアクセスされる複数のループ・カウントを有
する。現ループ・カウント・スタツク214は、
デコード論理206の出力に応答して、新しいル
ープ・カウントを選択的に出力するとともに、マ
イクロプログラム記憶装置39から出力された最
新のマイクロ命令ワードのブランチ制御フイール
ド232が、その中にループ終了命令を有するか
どうかを示す信号を出力する。 ループ制御論理(減算器)210は、入力を現
ループ・カウント・スタツク214へ接続され、
出力をスタツク214の入力へ接続され、与えら
れたループ・カウント値を1だけ減少させて、そ
の減少された値を新しい現ループ・カウントとし
て、現ループ・カウント・スタツク214の入力
へ出力する。 ゼロ検出器228は、入力をループ制御論理2
10へ接続され、出力をデコード論理206へ接
続され、減少された現ループ・カウントがゼロに
なつた時、ゼロ検出信号をデコード論理206へ
出力する。 プログラム・カウンタ208は、4MHzのクロ
ツク信号入力、BFCスタツク218の出力へ接
続された入力、デコード論理206の出力へ接続
された制御入力、マイクロプログラム記憶装置3
9のアドレス入力へ接続された出力を有する。 プログラム・カウンタ208は、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのアドレスをプログラム・カウント
(PC)として記憶し、4MHzの繰返し速度でPCを
1だけ増加させて、それを次のマイクロ命令記憶
アドレスとする。プログラム・カウンタ208
は、マイクロプログラム記憶装置39から出力さ
れた最新のマイクロ命令ワードのブランチ制御フ
イールド232が、その中にループ終了命令を有
する表示をデコード論理206が出力する時デコ
ード論理206がゼロ検出器228からゼロ検出
信号を受取つていないことに応答して、BFCス
タツク218からのループ開始地点アドレスを、
次のマイクロ命令記憶アドレスとして選択的に出
力する。 このようにして、ループのマイクロ命令シーケ
ンスは、信号処理コンピユータの中で柔軟性をも
つて制御されることができる。 更に第15図のマイクロプログラム・シーケン
サ38は、初期ループ・カウント・スタツク21
2を含む。スタツク212は、ページ・アドレス
入力をマイクロプログラム記憶装置出力のペー
ジ・アドレス・フイールド154へ接続され、ポ
インタ・アドレス入力をブランチ・スタツク・ポ
インタ・フイールド156へ接続され、かつ出力
を有する。初期ループ・カウント・スタツク21
2は複数のページ群の中に初期マイクロ命令ルー
プ・カウントを記憶し、各ページ群はページ・ア
ドレス入力によつてアクセスされ、かつ各ページ
群はポインタ・アドレス入力によつてアクセスさ
れる複数の初期ループ・カウントを有する。初期
ループ・カウント・スタツク212は、マイクロ
プログラム記憶装置39から出力された最新のマ
イクロ命令ワードのブランチ制御フイールド23
2が、その中にループ初期化命令を有しているこ
との表示をデコード論理206がスタツク212
へ出力したことに応答して、新しい初期ループ・
カウントを選択的に出力する。 ループ制御論理210は、初期ループ・カウン
ト・スタツク212の出力へ接続された入力、デ
コード論理206の出力へ接続された制御入力を
有する。ループ制御論理210は、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのブランチ制御フイールド232
が、その中にループ初期化命令を有することの表
示をデコード論理206がループ制御論理210
へ出力したことに応答して、新しい初期ループ・
カウントを減少させることなく現ループ・カウン
ト・スタツク214の入力へ転送する。 このようにして、ループのマイクロ命令シーケ
ンスは、信号処理コンピユータの中で柔軟性をも
つて初期化されることができる。 ループ制御論理210は、減少された現ルー
プ・カウントがゼロである時、デコード論理20
6がゼロ検出器228からゼロ検出信号を受取つ
たことに応答して、初期ループ・カウント・スタ
ツク212からの新しい初期ループ・カウントを
現ループ・カウント・スタツク214へ転送す
る。このようにして、現ループ・カウント・スタ
ツクは、ループの完了後、自動的に再初期化され
ることができる。 更に第15図のマイクロ命令シーケンサ38
は、ブランチ・アドレス・スタツク216を含
む。スタツク216は、マイクロプログラム記憶
装置出力のページ・アドレス・フイールド154
へ接続されたページ・アドレス入力、ブランチ・
スタツク・ポインタ・フイールド156へ接続さ
れたポインタ・アドレス入力、デコード論理20
6の出力へ接続された制御入力、プログラム・カ
ウンタ208の入力へ接続された出力を有する。
ブランチ・アドレス・スタツク216は、複数の
ページ群の中にマイクロ命令ブランチ先アドレス
を記憶している。各ページ群はページ・アドレス
入力によつてアクセスされ、かつ各ページ群はポ
インタ・アドレス入力によつてアクセスされる複
数のブランチ先アドレスを有する。ブランチ・ア
ドレス・スタツク216は、マイクロプログラム
記憶装置39から出力された最新のマイクロ命令
ワードのブランチ制御フイールド232が、その
中にブランチ動作命令を有することの表示をデコ
ード論理206がスタツク216へ出力したこと
に応答して、新しいブランチ先アドレスを選択的
に出力する。 プログラム・カウンタ208は、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのブランチ制御フイールド232
が、その中にブランチ動作命令を有することの表
示をデコード論理206がプログラム・カウンタ
208へ出力したことに応答して、新しいブラン
チ先アドレスを新しいプログラム・カウント
(PC)として記憶し、それを次のマイクロプログ
ラム記憶装置アドレスとして出力する。 このようにして、ブランチのマイクロ命令動作
は、信号処理コンピユータの中で柔軟性をもつて
制御されることができる。 ブランチ動作命令は、無条件ブランチでも条件
付きブランチでもよい。 条件ビツト・レジスタ234は、その入力を監
視されるべき条件を有するソースへ接続される。
そのような条件としては、例えば演算/メモリ・
ユニツト4におけるオーバフロー条件がある。条
件ビツト・レジスタ234は、その出力をデコー
ド論理206の入力へ接続される。条件ビツト・
レジスタは、監視される源の条件を示す条件ビツ
トを記憶する。 更に、マイクロ命令ワードの制御フイールド2
00は、状況制御フイールド230を含む。 デコード論理206は、マイクロ命令ワードの
中にある条件応答命令を4MHzの繰返し速度でデ
コードするため、マイクロプログラム記憶装置出
力の状況制御フイールド230へ接続された入力
を有する。 ブランチ・アドレス・スタツク216は、ブラ
ンチ制御フイールド232がその中に条件付きブ
ランチ命令を有していること、状況制御フイール
ドがその中に条件応答命令を有していること、条
件ビツト・レジスタがその中にオンの条件ビツト
を有していることの表示をデコード論理206が
スタツク216へ出力したことに応答して、条件
付きブランチ先アドレスを記憶し、かつ新しい条
件付きブランチ先アドレスを選択的に出力する。 プログラム・カウンタ208は、新しい条件付
きブランチ先アドレスを新しいプログラム・カウ
ント(PC)として記憶し、デコード論理206
に応答して、PCを新しいマイクロプログラム記
憶装置アドレスとして出力する。 このようにして、条件付きブランチ動作は信号
処理コンピユータの中で柔軟性をもつて制御され
ることができる。 更に、第15図のマイクロプログラム・シーケ
ンサ38は、ブランチ・アンド・リンク・アドレ
ス記憶装置220を含む。記憶装置220は、ア
ドレス入力、デコード論理206からの出力へ接
続された制御入力、プログラム・カウンタ208
の出力へ接続されたデータ入力、及びプログラ
ム・カウンタ208の入力へ接続されたデータ出
力を有する。ブランチ・アンド・リンク・アドレ
ス記憶装置220は、N個の記憶装置ロケーシヨ
ンを有する。このロケーシヨンは、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのブランチ制御フイールドが、その
中にブランチ・アンド・リンク命令を有している
ことの表示をデコード論理206が記憶装置22
0へ出力したことに応答して、増加されたプログ
ラム・カウントPC+1をマイクロ命令の「ブラ
ンチからの戻り」アドレスとして記憶するための
ものである。 モジユロNカウンタ222は、デコード論理2
06の出力へ接続された制御入力、及びブラン
チ・アンド・リンク・アドレス記憶装置220の
アドレス入力へ接続された出力を有する。モジユ
ロNカウンタ222は、ブランチ・アンド・リン
ク命令の表示を発生するデコード論理206に応
答して、1だけ増加される。モジユロNカウンタ
222は、マイクロプログラム記憶装置39から
出力された最新のマイクロ命令ワードのブランチ
制御フイールド232が、その中に「ブランチか
らの戻り」命令を有することの表示をデコード論
理206がカウンタ222へ出力したことに応答
して、1だけ減少される。 ブランチ・アンド・リンク・アドレス記憶装置
220は、「ブランチからの戻り」命令の表示を
与えるデコード論理206に応答して、記憶され
たマイクロ命令の「ブランチからの戻り」アドレ
スを出力する。 プログラム・カウンタ208は、「ブランチか
らの戻り」アドレスを新しいプログラム・カウン
ト(PC)として記憶し、デコード論理206に
応答して、PCを次のマイクロプログラム記憶装
置アドレスとして出力する。 このようにして、ブランチ・アンド・リンク及
び「ブランチからの戻り」動作は、信号処理コン
ピユータの中で柔軟性をもつて制御されることが
できる。 本発明の制御の一貫性は、更に第20図を参照
して理解することができる、マイクロ命令ワード
は、記憶フイールドの中にメイン・メモリ・ポイ
ンタ・フイールド145を有する。更に、制御ユ
ニツト2はメイン・メモリ用アドレス/増分スタ
ツク64を含む。スタツク64ま、4MHzのクロ
ツク信号入力、マイクロプログラム記憶装置出力
のページ制御フイールド154へ接続されたペー
ジ・アドレス入力、メイン・メモリ・ポインタ・
フイールド145へ接続されたポインタ・アドレ
ス入力、及びメイン・メモリ6のアドレス入力へ
接続された出力を有する。スタツク64は、複数
のページ群の中にデータ・アドレスを記憶してい
る。各ページ群は、そのページ・アドレス入力に
よつてアクセスされ、かつ各ページ群はそのポイ
ンタ・アドレス入力によつてアクセスされる複数
のデータ・アドレスを有する。スタツク64は、
マイクロプログラム記憶装置から出力された最新
のマイクロ命令ワードのページ・アドレス・フイ
ールド154及びメイン・メモリ・ポインタ・フ
イールド145に応答して、メイン・メモリ6の
データ・ワードにアクセスする。これらの動作は
4MHzの繰返し速度で実行される。 このようにして、マイクロ命令ワード及びそれ
に応答して動作されるべきデータは、信号処理コ
ンピユータの中で柔軟性をもつてアクセスされる
ことができる。 更に、マイクロ命令ワードは係数メモリ・ポイ
ンタ・フイールド160を含む。更に、制御ユニ
ツト2は係数メモリ用アドレス/増分スタツク6
0を含む。スタツク60は、マイクロプログラム
記憶装置出力のページ・アドレス・フイールド1
54へ接続されたページ・アドレス入力、係数メ
モリ・ポインタ・フイールド160へ接続された
ポインタ・アドレス入力、係数記憶装置24のア
ドレス入力へ接続された出力を有する。係数メモ
リ用アドレス/増分スタツク60は、複数のペー
ジ群の中に係数メモリ・アドレスを記憶する。各
ページ群は、そのページ・アドレス入力によつて
アクセスされる。また各ページ群は、そのポイン
タ・アドレス入力によつてアクセスされる複数の
係数メモリ・アドレスを有する。スタツク60
は、マイクロプログラム記憶装置39から出力さ
れた最新のマイクロ命令ワードのページ・アドレ
ス・フイールド154及び係数メモリ・ポイン
タ・フイールド160に応答して、係数記憶装置
24の係数ワードにアクセスする。これらの動作
は、4MHzの繰返し速度でなされる。 このようにして、マイクロ命令ワード、及びそ
れによつて動作されるべきデータ及び係数は、信
号処理コンピユータの中で柔軟性をもつてアクセ
スされることができる。 演算動作、データ記憶アクセス動作、ブランチ
及びループ制御動作の緊密な協働は、第21図を
参照して理解することができる。マイクロ命令ワ
ードは、記憶フイールド204の中に第1及び第
2のスクラツチ・パツド・ポインタ・フイールド
162及び164を含む。 制御ユニツト2は、第2のクロツクを含む。第
2クロツクは、8MHzの反復速度で第2のクロツ
ク信号152を発生する出力を有する。これは第
1のクロツク信号150の反復速度の2倍であ
る。従つて、250nsの持続時間である各マイクロ
命令時間の間に、125nsの2つのクロツク・パル
スが発生される。 マルチプレクサ166は、8MHzクロツク信号
152へ接続されたクロツク入力、マイクロプロ
グラム記憶装置出力の第1のスクラツチ・パツ
ド・ポインタ・フイールド162へ接続された第
1入力、第2スクラツチ・パツド・ポインタ・フ
イールド164へ接続された第2入力、及び出力
を有する。マルチプレクサ166は、マイクロ命
令時間の第1の半サイクルで、その出力を1つの
入力に接続し、マイクロ命令時間の第2の半サイ
クルで、その出力を他の1つの入力へ接続する。 演算/メモリ・ユニツト4は、スクラツチ・パ
ツドSP0(第3図)を含む。SP0は、8MHzの
クロツクへ接続されたクロツク信号入力、マルチ
プレクサ166(第21図)の出力へ接続された
アドレス入力115、メイン・メモリ6のデータ
出力へ接続されたデータ入力、演算エレメント
ALU10の入力へ接続されたデータ出力を有す
る。スクラツチ・パツドSP0は、マイクロ命令
時間の第1の半サイクルで、第1スクラツチ・パ
ツド・ポインタ・フイールド162(第21図)
に応答して、その中の第1のロケーシヨンから第
1のデータ・ワードを読出し、そのデータ・ワー
ドをALU10へ出力する。スクラツチ・パツド
SP0は、第2のデータ・ワードをその中の第2
のロケーシヨンへ書込む。第2のデータ・ワード
は、マイクロ命令時間の第2の半サイクルで、第
2スクラツチ・パツド・ポインタ・フイールド1
64に応答して、メイン・メモリ6からデータ入
力へ印加される。 このようにして、スクラツチ・パツドSP0は、
マイクロ命令がマイクロプログラム記憶装置39
からアクセスされる速度の2倍で動作するよう
に、マイクロ命令ワードによつて制御される。 マイクロ命令ワードは、演算フイールド202
の中に第1の演算エレメント制御フイールド17
0を含む。ALU10(第3図)は、4MHzクロツ
クへ接続されたクロツク信号入力、マイクロプロ
グラム記憶装置出力の第1の演算エレメント制御
フイールド170へ接続された制御入力174、
係数記憶装置24の係数ワード出力又はスクラツ
チ・パツドSP1へ選択的に接続されるデータ入
力、及び出力を有する。ALU10は、第1演算
エレメント制御フイールド170に応答して、各
マイクロ命令時間中に1度だけ、第1の結果値を
発生する。前に説明したように、ALU10は2
入力加算動作を実行する。第5図に示されるマイ
クロ命令ワード・フオーマツトを参照すると、第
1演算エレメント制御フイールド170はビツト
101−103を占め、第1スクラツチ・パツ
ド・ポインタ・フイールド162はビツト96−
99を占めることがわかる。 マルチプレクサ166の出力は、第1及び第2
のステージ・レジスタ114及び116を通さ
れ、かつ線115を介して8MHzの速度で、スク
ラツチ・パツドSP0(第3図)のアドレス入力
へ与えられる。第1演算エレメント制御フイール
ド170は、ステージ・レジスタ172を介して
4MHzの反復速度で送られ、線174を介して、
ALU10(第3図)の制御入力へ送られる。ス
クラツチ・パツドSP1の制御及び動作は、SP0
について説明したものと同様であるが、その制御
及びアドレス信号は、線117を介して制御ユニ
ツト2からSP1へ出力される。 前述したように、ALU10は4MHzの反復速度
で動作し、その合計値を乗算器12の第1入力へ
与える。乗算器12は、同じように4MHzの速度
で動作し、上記の合計値と、係数記憶装置24か
ら線137を介して4MHzの反復速度で入力され
る係数とを乗算する。乗算器12によつて出力さ
れた積は、マルチプレクサ139及び位取り装置
22を介してALU20へ与えられる。乗算器1
2の出力にある積の値は、250nsのマイクロ命令
時間中有効に保持される。マルチプレクサ139
は、スクラツチ・パツドSP3,SP4,SP2に記
憶されたデータも通すことができる。位取り装置
22は、8MHzの速度で動作し、マルチプレクサ
139からの出力値を、第2の演算エレメント
ALU20(第3図)の第1データ入力へ与える。 第21図の制御ユニツトにおいて、マイクロ命
令ワードは第3スクラツチ・パツド・ポインタ・
フイールド122(第5図のビツト64−67)、
第4スクラツチ・パツド・ポインタ・フイールド
123(第5図のビツト42−45)、第2演算
エレメント制御フイールド124(第5図のビツ
ト71−74)、及び第3演算エレメント制御フ
イールド125(第5図のビツト49−52)を
含む。 第21図の制御ユニツトは第2のマルチプレク
サ168′を含む。マルチプレクサ168′は、
8MHzクロツクへ接続されたクロツク信号入力1
52、第3スクラツチ・パツド・ポインタ・フイ
ールド122及び第2演算エレメント制御フイル
ド124へ接続された1対の入力、第4スクラツ
チ・パツド・ポインタ・フイールド123及び第
3演算エレメント制御フイールド125へ接続さ
れた第2の1対の入力、及び1対の出力を有す
る。マルチプレクサ168′は、その1対の出力
を、マイクロ命令時間の第1の半サイクルでその
第1の1対の入力へ接続し、マイクロ命令時間の
第2の半サイクルでその第2の1対の入力へ接続
する。 第2の演算エレメントALU20は、8MHzクロ
ツクへ接続されたクロツク入力、マルチプレクサ
12を介して第1の演算エレメントALU10の
出力へ接続された第1のデータ入力、第2のデー
タ入力、第2のマルチプレクサ168′から来る
出力の1つへ接続された制御入力131、及び出
力を有する。ALU20は、マイクロ命令時間の
第1半サイクルで第2演算エレメント制御フイー
ルド124に応答し、かつマイクロ命令時間の第
2半サイクルで第3演算エレメント制御フイール
ド125に応答して、各マイクロ命令時間に2
回、和の結果値を発生する。 このようにして、ALU20は、マイクロ命令
がマイクロプログラム記憶装置39からアクセス
される速度の2倍で動作するように、マイクロ命
令ワードによつて制御される。 スクラツチ・パツドSP3は、8MHzクロツクへ
接続されたクロツク入力、マルチプレクサ16
8′から来る出力の1つへ接続されたアドレス入
力133、ALU20の入力へ接続されたデータ
出力を有する。SP3は、その中の第1のロケー
シヨンから第1のデータ・ワードを読出し、マイ
クロ命令時間の第1の半サイクルで第3スクラツ
チ・パツド・ポインタ・フイールド122に応答
して、上記データ・ワードをALU20へ出力す
る。SP3は、その中の第2のロケーシヨンから
第2のデータ・ワードを読出し、マイクロ命令時
間の第2半サイクルで第4スクラツチ・パツド・
ポインタ・フイールド123に応答して、上記デ
ータ・ワードをALU20へ出力する。ALU20
に対する制御信号は、マルチプレクサ168′か
らステージ・レジスタ126,130を8MHzの
速度で通過し、線131を介してALU20へ出
力される。SP3に対するアドレス及び制御信号
は、マルチプレクサ168′からステージ・レジ
スタ128,130を通過し、線133を介して
SP3へ出力される。第3図に示されるスクラツ
チ・パツドSP4は、SP3と同じように制御され
るとともに動作し、線135を介して制御及びア
ドレス情報を受取る。 代替的動作モードとして、SP3及びSP4は、
マイクロ命令時間の交互の半サイクルで、ALU
20の第2の入力へデータを交互に与えるように
してもよい。スクラツチ・パツドSP3は、その
中の第1のロケーシヨンから第1のデータ・ワー
ドを読出し、マイクロ命令時間の第1の半サイク
ルで、第3スクラツチ・パツド・ポインタ・フイ
ールド122に応答して、上記データ・ワードを
ALU20へ出力する。SP4は、その中の第2の
ロケーシヨンから第2のデータ・ワードを読出
し、マイクロ命令時間の第2の半サイクルで、第
4スクラツチ・パツド・ポインタ・フイールド1
23に応答して、上記データ・ワードをALU2
0へ出力する。SP3及びSP4の双方は、それら
のアドレス及び制御入力を、マルチプレクサ16
8′の出力対の1つへ接続される。SP3はマイク
ロ命令時間の第1の半サイクルで制御情報を利用
し、SP4は第2の半サイクルで制御情報を利用
する。 ALU20は、8MHzの反復速度で動作し、位取
り装置23及び丸め装置26を介して、和の出力
をフイードバツク用スクラツチ・パツドSP5又
は出力用スクラツチ・パツドSP6へ与える。SP
5は、更に処理を行うため、データをALU10
へ与えることができる。SP6は、処理されたデ
ータをメイン・メモリ6へ戻す。 更にマイクロ命令ワードは、スクラツチ・パツ
ド・ポインタ・フイールド144(第5図のビツ
ト25−32)を含む。アドレス増加器120
は、8MHzで動作するクロツクへ接続されたクロ
ツク入力、スクラツチ・パツド・ポインタ・フイ
ールド144へ接続されたアドレス入力、及び出
力を有する。アドレス増加器120は、マイクロ
命令時間の第1半サイクルで、その出力へスクラ
ツチ・パツド・ポインタ・フイールド144を転
送し、第2半サイクルで、その出力においてスク
ラツチ・パツド・ポインタ・フイールド144を
1の値だけ増加させる。 スクラツチ・パツドSP5は、8MHzクロツクへ
接続されたクロツク入力、アドレス増加器120
の出力へ接続されたアドレス入力線141,
ALU20の出力へ接続されたデータ入力を有す
る。SP5は、マイクロ命令時間の第1半サイク
ルで、スクラツチ・パツド・ポインタ・フイール
ド144に応答して、その中の第1のロケーシヨ
ンへALU20からの第1の結果値を書込む。SP
5は、マイクロ命令時間の第2半サイクルで、増
加されたスクラツチ・パツド・ポインタ・フイー
ルド144に応答して、ALU20から来た第2
の結果値を、その中の第2のロケーシヨンへ書込
む。 アドレス増加器120の出力は、8MHzの速度
でステージ・レジスタ143及び144を通過
し、アドレス値及び制御値は、線141を介して
SP5へ出力される。SP6は、制御ユニツト2へ
接続され、SP5と同じように動作する。 ALU20に関して言えば、SP3は、その出力
をマルチプレクサ139及び位取り装置22を介
して送ることにより、そのデータ出力をALU2
0の第1の入力へ選択的に接続させることができ
る。同様に、SP3からのデータ出力は、マイク
ロ命令時間の交互の半サイクルに、ALU20の
第1及び第2の入力へ選択的に接続されることが
できる。マイクロ命令時間の第1の半サイクル
で、スクラツチ・パツド・ポインタ・フイールド
122に応答してSP3の第1のロケーシヨンか
ら第1のデータ・ワードが読出されて、ALU2
0の第1の入力へ出力されることができる。SP
3は、マイクロ命令時間の第2の半サイクルで、
スクラツチ・パツド・ポインタ・フイールド12
4に応答して、その中の第2のロケーシヨンから
第2のデータ・ワードを読出し、かつそれを
ALU20の第2入力へ出力することができる。 代替的動作モードにおいて、SP3は、マイク
ロ命令時間の第1半サイクルで、第1のデータ・
ワードを、マルチプレクサ139及び位取り装置
22を介してALU20の第1入力へ出力するこ
とができ、SP4は、マイクロ命令時間の第2半
サイクルで、第2のデータ・ワードをALU20
の第2入力へ出力することができる。SP3は、
マイクロ命令時間の第1の半サイクルで、スクラ
ツチ・パツド・ポインタ・フイールド122に応
答して、その中の第1のロケーシヨンから第1の
データ・ワードを読出し、それをALU20の第
1の入力へ出力する。SP4は、マイクロ命令時
間の第2の半サイクルで、スクラツチ・パツド・
ポインタ・フイールド124に応答して、その中
にある第2のロケーシヨンから第2のデータ・ワ
ードを読出し、それをALU20の第2入力へ出
力する。 制御ユニツトの動作の詳細な説明 演算/メモリ・ユニツト4が簡単な演算動作を
実行している間、制御ユニツト2がループを実行
する動作を説明する。表2は、ループを実行する
一連のマイクロ命令を示し、そのループの間に第
13図のタイミング図に示された演算動作が実行
される。
は高速信号処理コンピユータのための制御装置に
関する。 本発明の背景 大部分の先行技術に基く汎用デイジタル・コン
ピユータは、主記憶装置が一方で局外の二次記憶
装置に接続され、他方で中央処理ユニツトへ接続
された中央システム構成を採用している。主記憶
装置のハードウエアは、しばしば階層レベルに分
割され、小型の迅速アクセス作業記憶装置は直接
に中央処理ユニツトへ接続され、バツキング・レ
ベルの大型低速アクセス大容量記憶装置は、最初
の高速作業記憶装置レベルへ接続される。例え
ば、Kilburnその他による米国特許第3218611号
は、特定のデータがどこに記憶されているかを追
跡するデイレクトリ・レジスタを有する階層構成
を説明している。 主記憶装置における記憶階層の要求は、メモリ
のペースをCPU速度と合わせる必要性から生じ
るとともに、同時に、大量の計算問題を処理する
必要から要求される大きな物理的メモリ・サイズ
を与えるためである。しかし、大型サイズと迅速
なアクセス速度は、主記憶装置の設計上両立しな
い目的である。何故ならば、メモリ容量が増大す
ると、それだけ物理的パツケージは大きくなり、
これは転送時間を増大させるからである。主記憶
装置の階層構成は主記憶装置とCPUとの間の速
度をマツチさせることができるが、別個の記憶転
送制御プログラムに対する必要性をもたらす。こ
のプログラムは、大容量記憶装置と作業記憶装置
との間、及び作業記憶装置と演算処理ユニツトと
の間で、データ転送を調整する。更に、基本的な
演算データ処理タスクを実行するための監視兼演
算処理制御プログラムも必要である。 演算パイプライン構成を有する信号処理コンピ
ユータに独特の他の問題も生じる。信号処理演算
動作は高度に反復的であり、シーケンシヤルなパ
イプライン構成がそのような動作を実行させる場
合のスループツトを実質的に改善することが発見
された。例えば、G.L.Kratzその他による米国特
許第4041461号は、ビーム形成、有限インパルス
応答(FIR)濾波、及び高速フーリエ変換
(FFT)のように、高度に反復的な信号処理動作
を実行するための順次パイプライン演算構成を含
む演算プロセツサを説明している。演算パイプラ
インを制御するため、演算エレメント・コントロ
ーラが、それ自体のマイクロ命令シーケンサを含
む演算プロセツサ中に含まれる。この演算エレメ
ント・コントローラは別個の制御プロセツサによ
つて制御される。この制御プロセツサは、全体的
信号処理動作のための監視兼記憶マネジヤとして
働く。また、第3のプロセツサが大容量データ記
憶装置と作業記憶装置との間、及び大容量データ
記憶装置と入出力チヤネルとの間で、デー転送を
制御する。Kratzその他による米国特許で説明さ
れたシステムは、高速フーリエ変換のように高度
に反復的な1つの動作を延長された計算時間で実
行するためには良好に働くが、いくつかのプロセ
ツサは、1つの種類の処理タスクから他の種の処
理タスクへ切替えるため、かなり長い切替時間を
必要とする。かくて、比較的短い時間間隔の中
で、ビーム形成計算タスクから有限インパルス応
答濾波タスクへの切替え、次いで、高速フーリエ
変換計算への切替が望まれた場合、Kratzその他
の米国特許に説明された制御アーキテクチヤー
は、そのような切替えを容易には許さない。制御
プロセツサは、その監視兼記憶管理機能を実行し
なければならず、かつ記憶転送コントローラ及び
演算エレメント・コントローラへ、望まれる新し
い種類のタスクを実行するために必要な新しいタ
スク・シーケンス及びパラメータを伝達しなけれ
ばならない。 本発明の目的 本発明の目的は、階層記憶構成を必要とせず、
大容量記憶装置のアクセスと演算処理ユニツトの
速度とをマツチさせる改善されたデータ処理シス
テムの制御装置を提供することである。 本発明の他の目的は、メモリ転送、演算処理及
び入出力転送に対する記憶プログラム制御を単純
化する。データ・プロセツサのための制御機構を
提供することである。 本発明の他の目的は、先行技術よりも早い時間
内で1つのタスクから他のタスクへ変化させるた
め、パイプライン演算アーキテクチヤーのための
柔軟性に富んだ制御機構を提供することである。 本発明の要約 本発明の目的は、ここに開示される機能プロセ
ツサのための制御ユニツトによつて達成される。
この機能ユニツトは、データ転送及び2レベル・
メモリ・システムに関連した転送制御を除くこと
によつて、プログラミングの複雑性を最小にし、
かつパイプライン演算アーキテクチヤーにおける
プログラム・タスク切替えの柔軟性を改善する。
これは、メイン・メモリ(MM)アドレス又はア
ドレス増分を記憶するメモリ・アドレス・スタツ
クへアクセスし、かつ係数メモリ・アドレス又は
アドレス増分を記憶する係数アドレス・スタツク
へアクセスし、かつブランチ及びループ制御パラ
メータを記憶するマイクロ命令シーケンス制御ブ
ランチ・スタツクへアクセスするための共通のペ
ージ・アドレシングを使用することによつて達成
される。これによつて、外部的制御及び関連した
実行時間のオーバヘツドなしに、信号処理サブル
ーチンの長いシーケンスを連鎖することができ
る。 マイクロプログラム記憶装置は、マイクロ命令
がマイクロ命令シーケンサによつて順序付けられ
るマイクロプログラムを含む。マイクロ命令は、
共通のページ番号を使用して、ブランチ・パラメ
ータ・スタツクから一連のループ・サイクルの最
初のものを呼出し、メイン・メモリ・アドレス・
スタツクから演算プロセツサ中で処理されるべき
関連オペランドのためメイン・メモリの開始アド
レスを呼出し、係数スタツクから、そのマイクロ
命令期間中パイプライン演算ユニツトにあるオペ
ランドと共に処理されるべき関連係数の最初のも
のを呼出す。更にメイン・メモリ・スタツクは、
演算ユニツトがその機能を完了した後に、処理さ
れたデータを書込むべきメモリ・アドレスを含
む。更に同一のマイクロ命令は、演算パイプライ
ンにおいて、そのマイクロ命令期間に実行される
べきスクラツチ・パツド・メモリ動作と演算エレ
メントとを呼出す。結果のプロセツサ・システム
は、メモリ転送、演算処理、及び入出力転送の開
始を実行するため、単一のマイクロプログラムを
必要とするのみである。 本発明に関連した他の特徴は回帰バツフア動作
である。この動作において、複数のメイン・メモ
リ・モジユールが、演算ユニツトにある複数のス
クラツチ・パツド・バツフアの各々へ、同期的態
様で循環的に接続される。それによつて、メモリ
転送、演算処理及び入出力転送の結合動作のスル
ープツトが最大にされる。他の特徴として、制御
ユニツトは二重クロツク構成を使用する。この構
成によつて、スクラツチ・パツド記憶エレメント
及び演算エレメントは、マイクロ命令がマイクロ
プログラム記憶装置からアクセスされる速度の2
倍で動作するように、選択的に制御されることが
できる。パイプライン演算アーキテクチヤーのた
めの制御ユニツトは、ループ兼ブランチ制御動作
と、記憶アクセス動作及びパイプライン演算動作
とを緊密に結合して制御し、プログラミング・タ
スクの変更に対して、即時のかつ柔軟性ある応答
を与える。 システムの概要 緒 言 広範囲の処理機能を柔軟にかつ効率的に実行す
ることのできるパイプライン演算アーキテクチヤ
ーについて新しい制御方式が説明される。制御ユ
ニツト及び演算ユニツトの全体的組合せは、機能
処理エレメント(FPE)と呼ばれる。 FPEアーキテクチヤーの説明 FPEアーキテクチヤーは、広範囲の信号処理
機能を柔軟にかつ効率的に実行するよう設計され
ている。FPEはモジユラー形の演算/メモリ・
ユニツト(AMU)及び制御ユニツト(CU)を
使用し、これらのユニツトは初期プログラム・ロ
ード(IPL)を介して機能的に組込まれる。それ
ぞれの機能的に組込まれた処理セグメント内で高
度の予備動作を可能とするため、システム監視コ
ントローラとの相互作用は最小にされる。CU及
びAMUの集合はマイクロプログラム化すること
ができ、大型システムに関連した処理機能を実行
するため相互接続される。CUへ組込まれた特殊
機能は、機能的に組込まれたプロセツサの内部制
御能力を高め、システム監視コントローラの介入
を最小にする。 AMU及びCUアーキテクチヤーと共に使用さ
れることのできる広範囲な信号処理機能によつて
以前には独特の個別的に設計されたユニツト(ビ
ーム形成ユニツト、濾波ユニツト、高速フーリエ
変換ユニツト、広帯域処理ユニツトなど)の中で
実行された機能について、同一のマイクロプログ
ラム可能なエレメントを使用することが可能とな
る。更に、各機能について特別に設計されたアー
キテクチヤーが使用される場合の如く、異つた機
能を実行する時にも、マイクロコード・フオーマ
ツトは変化しない。かくて、大型システム内のハ
ードウエアの共通性が、基本的ハードウエア・モ
ジユール・レベル及び機能ユニツト・レベルに対
して拡張され、マイクロコード・フオーマツトの
共通性がシステム全体を通して存在するようにな
る。 FPEの特性 信号処理に対してFPEを広く適用するため、
次のような設計上の特性が限定された。 処 理 a 多次元(空間・時間)濾波及びスペクトル分
析。 FPEは多次元FFT、周波数領域ビーム形成、
時間領域ビーム形成、周波数帯域シフト及び帯域
形成を実行することができる。 b 回旋及び相関。 FPEは、整列、限定、アレイ分割及び変換領
域空間処理の如きソーナー機能のために、直接又
は変換領域で回旋及び相関ずけを実行することが
できる。 c 検出及び事後検出動作。 FPEは、値及び平方された値の検出、積分雑
音平均評価、再量子化及び出力データのパツキン
グを実行することができる。 パラメータ a 濾波機能 FPEは有限インパルス応答(FIR)又は無限イ
ンパルス応答(IIR)を濾波する。FIR濾波は、
任意の整数データのデシメーシヨン及び/又は挿
入率で計算されることができる。計算効率は、対
称的なインパルス応答に対して2倍にされる。
IIR濾波は、基本ステージのマイクロプログラム
を反復して適用することにより、カスケード状2
次ステージを使用して構成されることができる。 b FFT。 FPEは基数2及び混合基数FFTを与える。混
合基数FFTは周波数領域ビーム形成で直交サン
プリングを行うために必要である。 c プロセツサは分散した主記憶装置から取られ
たデータの上で働く(作業記憶装置は必要でな
い)。 演算エレメントは、大型のランダムにアドレス
可能なメモリから得られたデータをアドレスする
ことができる。これは2次元FFTの苦しい問題
を軽減する。主記憶装置から作業記憶装置へ(又
はその逆)のデータ転送は除かれる。 d 内部レコード端データ処理。 FPEは回帰スクラツチ・パツド及びメイン・
メモリにデータを記憶し(モジユロ・ラツプ)、
従つて、一時的レコードの端部におけるサンプル
(バツチ)は、特別の処理を要しない。例として
は、濾波インパルス応答がレコード端を取囲み、
前のレコード及び現在のレコードから信号サンプ
ルが必要とされる時である。 アーキテクチヤー a マイクロコード化パイプライン・プロセツ
サ。 高度利用信号処理機能の大部分は、回旋フイル
タの変化である。基本的動作は、信号サンプルの
有限の組を重みずけ、合計をとることである。従
つて、この能力を含むマイクロコード化パイプラ
イン・プロセツサは、ビーム形成、帯域形成、ス
ペクトル分析、平滑化、積分などの、広範囲の信
号処理機能を高速で実行するため効率的に働く。 b 分散された処理、メモリ及び制御。 処理及び制御の分散によつて、システムの機能
セグメントを更に独立して開発することができ
る。機能の追加又は変更は、他の機能による共用
プロセツサの時間使用に依存しない。分散メモリ
はメモリ階堪におけるレベルを1つだけ減少さ
せ、かつアクセスの競争を除く。分散されたメモ
リ・モジユールは、バス接続を介して1つの分散
メモリから他のメモリへデータを転送するように
設計されている。 c 標準的バス・インターフエイス。 AMUは外部データ転送及び演算エレメント転
送のために別個のポートを有している。2つのポ
ートは同一の基本記憶モジユール(BSM)から
は働かず、従つて、タイムシエアリング及び競争
は外部転送における要因とはならない。 d データ・ブロツクのバツチ処理。 システム監視コントローラの介入を最小にする
ため、大量のデータ・バツチがAMUの中で処理
される。その結果、外部同期及びデータ転送制御
要件は、それほど緊密に分散プロセツサへ結合さ
れない。 e 単一レベルの制御及びメモリ。 プロセツサ・モジユラー・ユニツト プロセツサは2つの基本ユニツトを含む。それ
らは、第1図に示されるように制御ユニツト
(CU)2及び演算/メモリ・ユニツト(AMU)
4である。制御ユニツト2は、AMU4の演算パ
イプライン動作の各マシン・サイクルに必要なマ
イクロプログラム制御を与え、かつメイン・メモ
リ6と外部入出力待ち行列バツフアとの間でデー
タを転送するために必要なアドレシングとタイミ
ングを与える。制御ユニツト2は、1つ又はそれ
以上の演算/メモリ・ユニツト4へ接続されるこ
とができる。1つを超えるAMU4がCU2へ接
続された時、全てのAMUはロツクされたステツ
プで同じ動作を実行する。 AMU4のパイプラインは、実数又は複素数の
データを伴う、広範囲の前方送り及び後方送りの
信号処理アルゴリズムを効率的に実行するように
設計される。加算機能10′は、プロセツサのス
ループツトを増大させるため、アルゴリズムの計
算を節減する因数分解を可能にする。例えば、対
称FIRフイルタにおける同一のインパルス応答係
数によつて乗算される信号サンプルの加算と、
Winograd形のアルゴリズム(例えばWinograd
フーリエ変換)で同一の重みを受取る変数の加算
との因数分解である。これについての詳細は、音
響学についてのIEEEトランザクシヨン「音声と
信号処理」(Speech and Signal Processing、
Vol.ASSP−25、No.2、April 1977、H.F.
Silverman、An Introduction to Programming
the Winograd Fourier Transform Algorithm
(WFTA)を参照されたい。 乗算器12の出力で2つの加算(又は累算)を
実行することのできる能力は、2点FFTバター
フライの如く複素数データ処理で使用される。こ
のアルゴリズムの大部分の簡単な因数分解におい
ては、4つの乗算及び6つから8つまでの加算が
使用される。逆に、大部分の濾波動作は、乗算ご
とに1つの累算動作を必要とするのみである。後
に演算/メモリ・ユニツトに関して説明するよう
に、乗算・加算速度に関するこの要件の対立は乗
算器12の速度の2倍で動作する演算論理ユニツ
ト(ALU)を、加算機能20′のために使用する
ことによつて解消され、従つて追加のハードウエ
アは導入されない。 制御ユニツト2は、メイン・メモリ・アドレス
及びアドレス増分、係数記憶装置アドレス及びア
ドレス増分、カウント関数ブランチ(BFC)パ
ラメータを記憶するための1024段になつたスタツ
ク14を使用する。これによつて、外部制御及び
関連した実行時間のオーバヘツドなしに、信号処
理サブルーチンの長いシーケンスを連鎖すること
ができる。 信号処理アルゴリズムをマイクロコード化した
経験によれば、アルゴリズムは通常8個より少な
いレジスタのスタツクを必要とする。従つて、信
号処理マイクロプログラムを連鎖し、かつそれを
異なつた初期化パラメータと使用するため、1024
個のレジスタを有するスタツク14はページへ副
分割される。その副分割は、状況ビツトをセツト
してページを識別するリンク・マイクロ命令を使
用することによつてなされる。状況ビツトは、ス
タツク14をそれぞれ16個のレジスタより成る64
個のページへ分割する。 初期プログラム・ロード(IPL)の段階で記憶
された多数の初期化パラメータは、スタツク14
の内容を以後変更することなく、多くの処理連鎖
が実行されることを可能にする。変更が必要とさ
れるときにも、その頻度は少なく、結果として生
じるシステム監視コントローラとの相互作用は最
少にされる。 他の特徴は、3つの(即ち、メイン・メモリ・
アドレス、係数アドレス、マイクロプログラム・
アドレス)の各スタツクのために、16個の現アド
レス・レジスタを含むことである。スタツク中に
記憶されたアドレスは、指定された現アドレス・
レジスタへロードされることができ、次いでこの
アドレスは、ベース・アドレス/増分スタツクの
内容を変更することなく、増加されることができ
る。その結果、マイクロプログラムは、ベース・
アドレス/増分値をスタツク中に復元することを
記憶しておく必要はない。何故ならば、それらの
値は変更されないからである。多数の現アドレス
(走行中のアドレス)を同時に保持しておくこと
ができるので、アドレス発生にかなりの柔軟性が
得られる。 制御ユニツト2のアドレス発生器は、メイン・
メモリ6のバツフア・アドレスを回帰させること
ができる。バツフア・アドレスの回帰能力は、入
力スクラツチ・パツド16のためにも含まれ、か
つFIR濾波、FFT平滑化、及び他の滑走窓型機能
のためにマイクロコード・サブルーチンの反復的
変化例をコード化する必要性を除く、メイン・メ
モリのアドレス発生器18は、基本記憶モジユー
ルの境界(データ・バツチ)を横切つてアドレス
することを可能にし、レコード端に近いデータ・
ポイントを処理する特別のマイクロコードに対す
る必要性を除く。 FPEモジユール(CU2及びAMU4)は、シ
ステム監視コントローラの最小の介入しか必要と
しない、機能的に組込まれた処理モジユールにお
いて、多様な信号処理を行なうように設計されて
いる。典型的なプロセツサ構成の単純化された例
が第2図に示される。 演算/メモリ・ユニツト(AMU) 演算/メモリ・ユニツト4に関連する設計パラ
メータは表1にリストされている。演算/メモ
リ・ユニツト4の更に詳細なブロツク図は第3図
に示される。メイン・メモリ6は演算パイプライ
ン・エレメントへ専属化され、他の演算エレメン
トと共用されない。もつと大型のシステム構成で
は、1個のAMU4の出力オペランドは、外部転
送ポートを介して次の処理段階を実行するAMU
へ通される。第2のメイン・メモリ・ポートは、
演算エレメント4のスクラツチ・パツド16との
間でオペランドを転送する。要するに、演算/メ
モリ・ユニツト4は、マイクロ命令制御の下で、
メイン・メモリ6の1つ又はそれ以上の基本記憶
モジユールから直接に働く。演算/メモリ・ユニ
ツト4は、分散したメイン・メモリ6から直接に
転送されたデータ上で働くから、作業記憶装置又
はメイン・メモリ乃至作業記憶装置の転送制御は
必要でない。マイクロ命令は、4MHzマシン×サ
イクルで、メイン・メモリ6及びスクラツチ・パ
ツド16のアドレシング、データ転送のスイツチ
ング、位取り、ALU動作、係数選択、丸めなど
の全てを制御する。スクラツチ・パツド16は、
第3図に示されるように機能的にはSP0からSP
5とラベルを付された6個の部分に割当てられて
いる。メイン・メモリ6からスクラツチ・パツド
SP0,SP1,SP2への全てのデータ転送は丸め
装置21によつて右方シフトされることができ
る。この丸め動作は、マイクロコードによつて直
接に指定されることができ、又はFFTブロツク
浮動小数点丸め動作のために、データに依存させ
ることもできる。スクラツチ・パツドSP0及び
SP1は、全ての滑走窓型アルゴリズムのために、
回帰バツフア・アドレシングを有する。回帰バツ
フア・アドレシングは、これらのスクラツチ・パ
ツドの中で、書込み及び読出し動作のために使用
され、書込み及び読出しアドレスを増加させるた
めのモジユロ16の加算器を使用することによつ
て達成される。この特殊機能の使用例は、後に
FIR濾波の処理フローを説明する際に示す。 IIR濾波及び4点FFTバターフライのようなフ
イードバツク・アルゴリズムの場合、ALU10
へ入力を待ち行列させるため、スクラツチ・パツ
ドSP5が使用される。フイードバツクのための
別個スクラツチ・パツドは、メイン・メモリ6か
らの転送と書込競争が生じるのを除く。ALU1
0は、重みずけの前に1対のオペランドを合計す
ることを可能にし、よつてFIR濾波の如きアルゴ
リズムについて、パイプラインのスループツトを
2倍にする。この特殊機能の例は、後にFIR濾波
の処理フローを説明する時に示す。重みずけされ
た対が必要とされない時、オペランドは直接に加
算器10を通つて乗算器12へ送られる。 表 1 演算/メモリ・ユニツトのパラメータ ・ 4MHzマシン・サイクル ・ マシン・サイクル当りの機能 (半精度のオプシヨンも同じモジユール・タ
イプを使用する) 事前加算(16+16) 乗算(16×16) 2個のアキユムレータ(32+32) 3個の位取り装置 丸め装置(32→16) ・ 振動バツフア・メイン・メモリ 演算エレメントとの間の4MHz転送 インターフエイスとの間の4MHz転送 乗算器12の第2ポートは、係数記憶装置24
又はSP0,SP5から入力を受取る。係数記憶装
置24の入力は、濾波インパルス応答サンプル、
1のFFT累乗根、ビーム形成開孔遮断加重、粗
レゾリユーシヨン帯域シフタ・サンプルなどを表
わす。SP0,SP5からの入力は、平方数(y=
x2)、複素数共役乗算、直接実施相関などのため
に使用される。乗算器12に続く位取り装置22
は、累算のオーバフローを防止するため使用され
るとともに、ALU20と結合して、長項積分の
ような1次線形差分方程式における(1−2-a)
の重みを形成するために使用される。位取り装置
22は乗算器12又はSP2,SP3,SP4から入
力を受取る。 ALU20は多様な機能を持つ演算論理ユニツ
トであり、積分、ビーム形成、一時的FIR濾波部
分合計、数量近似、出力データの再量子化及びパ
ツキングなどのためにスクラツチ・パツドSP3
及びSP4と結合して使用される。スクラツチ・
パツドSP2は、スクラツチ・パツドSP3及びSP
4へ書込む場合の競争を避けるため、メイン・メ
モリ6からデータを転送するために使用される。 乗算器12より後の全ての処理ブロツクは、
8MHzで動作し、基本マシン・サイクルごとに2
つの動作が実行される。これによつて、ALU及
びスクラツチ・パツドの形式でハードウエアを付
け加えることなく、必要に応じて、加算対乗算率
(加算/乗算)を2:1へ増大させることができ
る。この比率は、FFTのようなアルゴリズムの
ために必要である。 位取り装置23は、32ビツトから16ビツトへ丸
めを実行する前に、最有意のハーフ・ワード方向
へデータを左方シフトするために使用される。飽
和出力にはオーバフローが発生する。丸め装置2
6は、スクラツチ・パツドSP5又はSP6へ転送
するための丸め出力を発生する。完全な32ビツト
の出力は、スクラツチ・パツドSP6へ転送する
ためのものであり、短縮された16ビツトの出力は
スクラツチ・パツドSP5へ転送するためのもの
である。スクラツチ・パツドSP6は、メイン・
メモリ6へ出力を転送するための待ち行列バツフ
アとして使用される。SP6から上方又は下方の
ハーフ・ワード(16ビツト)を転送することによ
つて、メイン・メモリ6へ二重に転送することが
でき、隣接したアドレス・ロケーシヨンを使用し
て、フル・レゾリユーシヨンの32ビツト・オペラ
ンドがメイン・メモリ6に記憶される。 状況ビツト論理28は、前のFFT段階の実行
において最有意ビツトが発生したことを感知し、
浮動小数点の位取りを禁止し、SP2/SP3又は
SP3/SP4からALU20へ条件付きでデータを
転送し、前のALU20の動作によつて発生され
た符号の関数として条件付きブランチを実行する
ために使用される。 メイン・メモリ6のモジユラー性及び相互接続
は第4図に示される。基本記憶モジユール
(BSM)は、64Kワード×16ビツトである。デー
タ転送速度は、基本記憶モジユールに対して4M
Hzである。第4図に示されるように、各基本記憶
モジユールは、2つのソースの1つから入力デー
タを受取り、2つのシンクの1つへ出力データを
送るように割当てることができる。メモリ・モジ
ユールは、回帰バツフア様式で割当てることがで
きる。通常、1個の基本記憶モジユールが外部ポ
ート30へ割当てられ、2個の基本記憶モジユー
ルが内部(演算エレメント転送)ポートへ割当て
られる。2個の基本記憶モジユールが演算エレメ
ント(AE)データ転送のために使用される時、
2個の連続したバツチから得られたデータは、
AEによる使用のために利用可能となり、レコー
ド端又かバツチ端に近いデータを処理するため、
特別のマイクロコードが必要となることはない。
1つのモジユールは最新のバツチを含み、他のモ
ジユールは固いバツチを含む。 マイクロ命令中の制御ビツトは、基本記憶モジ
ユールの割当てを回帰させるために使用される。 振動バツフア又は回帰バツフアが使用されない
時、外部データ転送のために、サイクル・スチー
ル動作を使用することができる。 制御ユニツトの概観 各FPEの制御は、単一のコントローラ及びプ
ログラム記憶装置を用いて達成される。プログラ
ム記憶装置は、信号処理サブルーチン及び標準的
リンケージ・プログラムのライブラリイを含む。
全てのプログラミング(サブルーチン及びサブル
ーチンのリンケージ)について、単一レベルのコ
ントローラ及び単一の命令フオーマツトを使用す
ることにより、プログラミング・タスクが顕著に
単純化される。 制御ユニツト2は、マイクロプログラム記憶装
置39に記憶されたマイクロ命令を介して、各マ
シン・サイクルのために全ての演算エレメント・
パラメータを限定し、マイクロプログラム・シー
ケンサ38を介して、演算エレメント動作を連鎖
する。マイクロ命令は、CU2に関連したAMU
4のために、メイン・メモリ6及びスクラツチ・
パツド16のアドレシング、データ通路の切替
え、位取り、ALU動作、係数選択、丸めなどの
全てを制御する。CU2は1つ又はそれ以上の
AMU4を制御することができ、1個を超える
AMU4が接続された時、それらは全てロツクさ
れたステツプで動作する。 マイクロ命令のフオーマツトは第5図に示され
る。マイクロ命令の基本フイールドは、次のよう
な事項を制御する。 a メイン・メモリ6/スクラツチ・パツド12
のデータ転送 b ALU10の機能及びデータ・ソースの制御 c 乗算器12の入力及び係数記憶装置24の制
御 d ALU20の機能、データ・ソース及びデー
タ宛先の制御(2つのサブサイクル) e 丸め装置26の機能及びデータ宛先の制御 f 位取り装置の制御(3つの位取り装置21,
22,23) g マイクロプログラム・シーケンスのためのブ
ランチ制御 h 条件付き動作、コントローラにおけるアドレ
ス・スタツク・ページングのために状況ビツト
論理を制御すること。 メイン・メモリ/スクラツチ・パツド転送 メイン・メモリ6とスクラツチ・パツド16と
の間のデータ転送の特徴は次のとおりである。 1 メイン・メモリ6とスクラツチ・パツドSP
0,SP1,SP5の双方について、循環フアイ
ル・アドレシングが行われる。 2 演算ユニツトはメイン・メモリ6から直接働
く。 3 アドレス増分機能が設けられる。 4 データに依存するメイン・メモリのアドレシ
ングが計算される。 ベース・アドレス及び増分値は、決して変更又
は更新されない。従つてマイクロプログラムは、
それらを元の値へ復元することを覚えておく必要
はない。 ALU10の制御 ALU10の制御の特徴は次のように要約でき
る。 1 それは8機能のALUである。 2 フイードバツク又はメイン・メモリ及びスク
ラツチ・パツドの入力は、Aポートについて選
択可能である。 3 スクラツチ・パツドSP0及びSP1につい
て、循環フアイル・アドレシングが存在する。 4 ALU10は、対称インパルス応答及びアル
ゴリズムのWinograd因数分解を伴うFIR濾波
について優先的に使用される。 係数制御 マイクロ命令の係数制御フイールドは、次のよ
うな能力を有する。 1 スクラツチ・パツド又は乗算器12の第2ポ
ートへの係数入力が選択可能である。 2 係数記憶装置24について、アドレス及び増
分の指定が行われる。 3 係数記憶装置24の1部分から、データに依
存したテーブル・ルツクアツプが実行される。 ALU20の制御(サブサイクル1/2) ALU20の制御フイールドは、基本の4MHzマ
シン・サイクルごとに2つのALU実行を可能と
するため反復される。制御機能の特徴は次のとお
りである。 1 基本の4MHzのマシン・サイクルごとに2つ
の実行が生じる。 2 入力は3つのスクラツチ・パツドの1つから
選択される。 3 部分合計/即時的結果は、2つのスクラツ
チ・パツドのいずれかへ記憶される。 4 それは16機能ALUである。 5 ALU20はアキユムレータとして優先的に
使用される。更にそれは数量近似及び再量子化
に使用される。 丸め装置26の制御 丸め装置26は次のような特徴を有する。 1 16ビツト又は32ビツトの出力が利用可能であ
る。 2 左方シフトは、オーバフローを伴う飽和値を
生じる。 3 基本の4MHzマシン・サイクルごとに、2つ
の実行が生じる。 位取り制御 演算パイプライン・エレメントを通して、位取
り装置21,22,23が分散されている。 1 位取り装置21は、FFTブロツク浮動小数
点のために、データに依存した制御オプシヨン
を有する。 2 位取り装置22は、累算過程におけるオーバ
フローを防止する。 3 位取り装置23は、16ビツトの丸められた出
力のためにデータを位置ずけるために使用さ
れ、かつ任意選択的なデータに依存した制御を
有する。 位取りは、量子化の歪みを最小にし、かつ同時
にスペクトル分析の前に飽和の歪みを防止するた
め、AMU4内で実行される広範囲の利得調整を
含む。位取り装置21は、演算パイプラインへ転
送された16ビツト・オペランドの上で、0から7
ビツトまでの右方シフトを実行する。ALU10
における1対のオペランドの合計は、オーバフロ
ーを防止するため1ビツトの右方シフトを必要と
し、固定した位取り因数であつてよい。 逆に、長いFFTは変換出力で広いダイナミツ
ク範囲を必要とし、先天的に、計算の全階段を通
してオーバフローを防止する位取りは、利用可能
なビツトの非効率的使用を招く。従つて、ブロツ
ク浮動小数点位取り及びデータ依存の位取りが実
行されてよい。その場合、FFT計算の次の段階
で使用される位取り因数は、前の段階で発生した
最大絶対値の関数である。基数2、3、4、5の
段階では、要求される最大の右方シフトは約4ビ
ツトであり、これは位取り装置21の能力範囲内
にある。 位取り装置22は、32ビツト・オペランドを0
ビツトから15ビツトまで右方シフトすることがで
きる。重みずけられた合計におけるアキユムレー
タ入力の位取りは、重みの絶対値の合計の逆数よ
り大きくない因数を使用すべきである。これは1
から2-15まで因数範囲を与え、十分過ぎるほどで
ある。更に、これは長項積分のような1次線形差
分方程式における柔軟な時定数制御を与える。 位取り装置23は、丸める前に有意のデータ・
ビツトを上半分の量子化位置へ置くために使用さ
れる。 ブランチ制御 マイクロプログラム・シーケンスのブランチ制
御は、外部の制御なしに、多数の信号処理サブル
ーチンの連鎖を可能にする。これは、システム監
視コントローラの側で頻繁なアクシヨンを取る必
要性を除く。ブランチの特性は次のとおりであ
る。 1 ブランチ形式 無条件 条件付き カウントの関数 ブランチ・アンド・リンク 2 アドレスへのブランチ、アドレス+変位への
ブランチ 3 512までの入れ子ループ 4 カウント・パラメータのブランチ機能につい
て、512ワードのスタツク 5 ブランチ・スタツクは外部的にロードされる
ことができる 状況(スタツク・ポインタ制御) このフイールドは、マイクロ命令シーケンサ・
スタツク、メイン・メモリ・アドレス・スタツ
ク、係数記憶装置アドレス・スタツクにおけるペ
ージ制御のために使用される。更に、それは状況
ビツトをセツト及びリセツトするために使用され
る。状況ビツト0,SB0は、閾値動作の関数と
して、条件付きブランチ及び条件付きデータ選択
のために使用される。状況ビツトSB1は、条件
付きブランチのために使用される。 アルゴリズム・フローの例 信号処理において大きい計算負荷を表わす若干
の信号処理アルゴリズムが、AMU4における処
理フローを例示するため選択された。 FIR濾波 対称インパルス応答を有する隅数長さのFIR濾
波が第6図に示されるフローのために使用され
る。濾波式の次のように表わすことができる。 YDiは時点Diにおける濾波出力サンプルを示す。 D=デシメーシヨン率 hk=k番目のインパルス応答サンプル Xn=時点mにおける濾波入力信号サンプル フイルタの長さは偶数であるから(L/2=整
数)、インパルス応答係数によつて乗算される前
に相互に加えられる2つの信号サンプルは、常に
奇数及び偶数のサンプルである。従つて、回帰バ
ツフア・スクラツチ・パツドSP0及びSP1にロ
ードする場合、偶数サンプルはSP0にロードさ
れ、奇数サンプルはSP1にロードされる。加重
前に加えられる2つのサンプルは、常にALU1
0の別個のポートで利用可能であり、ALU10
を用いてカツコ内の一対のサンプルの合計をとる
ことができる。次にサンプル対は、乗算器12を
使用して加重される。係数記憶装置24は、hk係
数を与える。位取り装置22は、L/2加重サン
プル対の合計におけるオーバフローを防止するた
めに使用される。前に、位取り装置21は、奇数
及び偶数サンプルの合計におけるオーバフローを
避けるため、メイン・メモリ6から偶数及び奇数
のサンプルを転送する間に使用された。ALU2
0及びSP3は、加重サンプル対の合計に使用さ
れる。SP3は、部分合計記憶装置として使用さ
れる。全てのL/2対が合計された時、出力は、
16ビツトへ丸めるため、位取り装置23及び丸め
装置26へ送られる。出力サンプルは、メイン・
メモリ6へ転送するため、SP6の中で待ち行列
にされる。濾波サブルーチンは各出力サンプルの
ために反復され、出力毎にL/2マシン・サイク
ルを必要とする。必要なメイン・メモリ6の転送
の数はD+1である。D個の新しい入力サンプル
はスクラツチ・パツド16へ送られ、1つの出力
サンプルが転送される。転送サイクルの数と計算
サイクルの数とを等式化すると、L=2D+2を
得る。2のデシメーシヨンについては、濾波処理
は、Lが6又はそれより大である時、演算エレメ
ント・スループツトを十分に利用する。従つて、
実用的な全てのフイルタについて、アーキテクチ
ヤーは良好にマツチする。 第7図はSP0及びSP1のモジユロ16アドレ
シングが、どのようにして濾波を単純化するかを
示す。上方の列はSP0に記憶された偶数サンプ
ルを表わし、下方の列はSP1に記憶された奇数
サンプルを表わす。最初の濾波出力は、信号サン
プル0から7までを含むものと仮定する。サンプ
ル0及び7はALU10へ送られ、加算され、加
重され、次いでSP3へ記憶される。SP0のアド
レスは1だけ増加され、SP1のアドレスは1だ
け減少され、サンプル2及び5が、加重前に合計
のために利用可能となる。これはもう2回だけ反
復され、サンプル対4−3及び6−1が、加重前
に、合計のために利用可能となる。次にSP0の
アドレスが2だけ減少され、SP1のアドレスが
4だけ増加され、サンプル2から9までに関する
フイルタ計算が開始される(デシメーシヨンが2
である時)。SP0が1だけ増加され、SP1が1
だけ減少される内部ループが反復される。 奇数及び偶数サンプルをスクラツチ・パツド1
6へロードするため、同様な手順が使用される。
2つのスクラツチ・パツドについて、アドレス増
分は1であり、それぞれの内部ループ実行毎に一
対のサンプル(D=2)がスクラツチ・パツド1
6へ転送される。 第8図は、スクラツチ・パツドSP0及びSP1
の回帰バツフア・アドレシングのために、単純な
4ビツト・スライス加算器42、マルチプレクサ
44、アドレス・レジスタ46、増分器48がど
のようにしてモジユロ16加算器として使用され
るかを示す。 高速フーリエ変換(FFT) 複素数データ及びフイードバツクを含むフロー
を例示するため、4点FFTバターフライが選択
された。第9図に示されるように、4点バターフ
ライは、2個のFFT段階の各々について一対の
2点バターフライの実行を表わす。第1段階へ入
力される4つの複素数データ・サンプルの中で、
2つのサンプル(C、D)は1の累乗根によつて
乗算されねばならないが、他の2つのサンプル
(A、B)はそうでない。 サンプルC及びDはメイン・メモリ6から位取
り装置21を介してスクラツチ・パツドSP0へ
転送され、サンプルA及びBは、位取り装置21
を介してSP2へ転送される。サンプルC及びD
はメイン・メモリ6から位取り装置21を介して
スクラツチ・パツドSP0へ転送され、サンプル
A及びBは、位取り装置21を介してSP2へ転
送される。位取り器21は、4点2段階アルゴリ
ズム実行の間にオーバフローを防止するため、デ
ータ依存ブロツク浮動小数点モードで使用され
る。第1段階が実行されて出力A′,B′,C′,
D′を発生する。これらはスクラツチ・パツド1
6に記憶され、メイン・メモリ6の追加的転送を
必要とすることなく、第2段階の実行が可能とな
る。B′及びD′は第2段階で1の累乗根によつて
乗算されねばならないので、それらはフイードバ
ツク・バツフアSP5へ導かれる。中間点A′及び
C′は乗算されてはならず、一時的バツフアSP3
及びSP4に記憶される。次に2段階が実行され、
出力(A″,B″,C″,D″)が、メイン・メモリ6
へ戻されるためにSP6で待ち行列にされる。基
本的2点バターフライ等式は次のような形式を有
するので、必要な加算及び減算を実行するため、
ALU20の2つのサブサイクルが使用される。 A′=A+W0C C′=A−W0C 1の累乗根は、係数記憶装置24によつて与え
られる。第1段階の終りにおけるフイードバツク
及び一時的変数の記憶との競争を避けるため、メ
イン・メモリ6との間の全ての転送について、別
個のバツフアが設けられることに注意されたい。
4点FFTアルゴリズムは、内部ループ実行のた
めに16個のマシン・サイクルを必要とし、8個の
複素数入力及び出力を転送するため16個のマシ
ン・サイクルを必要とするので、マツチしたもの
と言える。FFTはきちんと実行されるわけでな
く、従つてビツト反転ハードウエアは設計中に含
まれない。演算エレメントのために利用可能な大
型の(典型的には64Kワード)ランダムにアドレ
ス可能なメイン・メモリ6は、作業スペースを
FFTサイズの2倍に等しくとることができる。
これはコスト上有効な手法である。FFTが実行
されていない時、この資源は他の使用にあてるこ
とができる。 時間遅延ビーム形成 時間遅延ビーム形成は、適当に遅延されたセン
サ信号サンプルの加重合計を表わす。 ここで、Bn、kは、m番目のビーム出力のk番
目の時間サンプルであり、Wpは、p番目の水管
検漏器信号のk番目の時間サンプルであり、
Dn、pはm番目のビーム及びp番目のセンサに対
する遅延である。 2次元アドレシングの利点は、上記の等式から
明らかである。更に、センサ時間サンプル
(Kp、k-Dn、p)の選択において、インデツクスを
独立的に増加させることのできる能力は、任意の
幾何学的形状を有するアレイについて、直截的時
間領域ビームの形成を可能にする。 最近時に利用可能なサンプルが使用される際の
(外挿なし)時間領域ビーム形成について、処理
フローが第10図に示される。信号サンプルはメ
イン・メモリ6から2次元的にアドレスされ、
SP0へ送られ、ALU10を介して乗算器12へ
導かれ、そこでサンプルの重み付けがなされる。
遮光係数は係数記憶装置24から得られる。ビー
ム出力を発生するために使用されたp個のセンサ
時間サンプルのすべては、順次にアドレスされ
る。部分的合計はSP3に記憶される。p個のセ
ンサ信号の全てが合計された時、出力(Bn、k)
は位取り装置23及び丸め装置26を通され、
SP6を介してメイン・メモリ6へ転送される。
ビーム出力を発生するため、センサ・サンプルを
連続的に合計できる能力は、部分和ビーム形成ア
ーキテクチヤーと比較して、非常に直截なアルゴ
リズムを可能にする。更にプロセツサは、非常に
効率的に周波数領域ビーム形成を実行できる能力
を有する。 時間領域ビーム形成は空間FIRを濾波すること
である。このアーキテクチヤーによつて、計算は
出力速度で実行され、データ・デシメーシヨンは
効率的に使用されることができる。これは、狭帯
域処理が時間領域ビーム形成器と組合せて使用さ
れるシステムでは重要である。もしセンサ信号が
多くの場合、ナイキスト率でサンプルされない
か、又は実効サンプル率を増加させるための外挿
法が使用されないならば、均一間隔の線形アレイ
中に、ひどい側方ローブの減衰が生じる。外挿法
は、大きな遅延誤差を有するセンサについて一時
的サンプルの隣接したセツトを抽出し、外挿フイ
ルタリングを適用することによつて、ビーム形成
の計算に含ませることができる。開孔加重及び外
挿加重は合成加重へ結合されることができ、合成
加重は係数記憶装置に記憶される。従つて、元の
センサ・サンプル率がナイキスト率の約4倍から
5倍である時、良好な効率を生じる線形間挿法に
ついては、間挿を必要とするセンサのためにサン
プル対が演算エレメントへ送られ、各サンプルに
1つずつの2つの重みが使用される。高次の間挿
も同じようにして実行することができる。計算上
の負荷が帯域によつて決定された出力サンプル速
度の関数である時、時間領域ビーム形成をFIR濾
波として実行することのできる他の利点は、入れ
子になつた開孔線形アレイを使用する時に生じ
る。計算負荷は帯域幅の関数であり、信号帯域幅
から独立した一定のチヤネル利用ではない。 機能処理エレメント(FPE)のハードウエア
の説明 FPEは、4MHzの基本マシン・サイクルで動作
するマイクロプログラム制御の信号プロセツサで
ある。パイプラインの制御機能は、制御ユニツト
(CU)2上で区分化され、単一のCU2が、いく
つかの演算/メモリ・ユニツト(AMU)4をロ
ツク・ステツプ方式で駆動させることができるよ
うに、CU2の上で区分されている。以下の説明
は、単一のAMU/CU構成に限定したものであ
る。 プロセツサ演算パイプライン 第3図の演算パイプライン(AP)は各種の位
取り装置、スクラツチ・パツド・メモリ、加重用
ALU、乗算器及び丸め装置から構成される。そ
れは時間段階のシーケンスで動作し、8MHzの速
度でデータ・スループツトを発生することができ
る。パイプラインを通して、2の補数演算が実行
される。APの全体は、第5図のマイクロ命令に
よつて制御される。プロセツサは、入力データを
メイン・メモリ6から4MHzの実行速度で受取る。
位取り装置21は、メイン・メモリ6から16ビツ
トのデータを受取り、通常モードにある時はマイ
クロ命令から取られた3ビツト・シフト・コード
の制御の下で、又データ依存モードにある時は前
に処理されたデータによつて決定されるコードか
ら取られた3ビツト・シフト・コードの制御の下
で、上記データを0から7ビツト位置だけ右方シ
フトする。上記のモードは、マイクロ命令によつ
て指定される。データ依存位取り制御は、状況コ
ード論理によつて決定される。 2の補数データが使用され、従つてシフトによ
つて空にされた高順位ビツトは、入力の符号(0
は正、1は負)を充填される。位取り装置21は
カスケード形の4路マルチプレクサで構成されて
よい。 位取りされた入力データは、マイクロ命令によ
つて限定された3つのスクラツチ・パツドSP0,
SP1,SP2の1つによつて受取られる。メイ
ン・メモリ6のソース・ロケーシヨンからスクラ
ツチ・パツドのシンク・ロケーシヨンへ行なわれ
る全ての転送は、マイクロ命令ビツトによつて指
定される。 メイン・メモリ6は、出力シンクとしてSP0,
SP1,SP2を有することができ、入力ソースと
してSP6を有することができる。 スクラツチ・パツドは16ワードの高速静電トラ
ンジスタ・トランジスタ論理(TTL)ランダ
ム・アクセス・メモリであつて、3状態出力を有
し、各種のソースを相互に母線化(ワイヤオア)
することができる。これはハードウエア多重化の
必要性を除く。 ALU10は高速の16ビツト、16機能モジユー
ルであつて、これは出力機能F=A,B,A±B
を有する。このALUのための機能コードはマイ
クロ命令ビツトによつて指定される。 ALUのAポート入力は、マイクロ命令によつ
て決定されたところに従つてSP0又はSP5であ
ることができる。Bポート入力は直接にSP1か
ら配線される。これらスクラツチ・パツドに対す
るアドレシングは、直接にマイクロ命令ビツトに
よつて指定される。ALU10の出力は、乗算器
12の被乗数(X)レジスタに記憶される。
ALU10を通るスクラツチ・パツドからのデー
タ転送は、パイプラインの段階1である(全体の
経過時間:125ナノ秒)。 乗算器12のY入力は、マイクロ命令ビツトに
よつて制御される。ソースはALU10のAポー
トから来るSP0又はSP5であり、又は制御ユニ
ツトに置かれた係数記憶装置24から来る16ビツ
トの値である。このデータは、マイクロ命令ビツ
トのデコードによつて制御される2入力マルチプ
レクサを介して、乗算器12の入力へ送られる。 乗算器12は、高速低電力大型集積(LSI)装
置であつて、オンボードの入力及び出力レジスタ
を有している。この装置は16×16ビツトであり、
250ナノ秒(ns)内に、2の補数倍精度の積を生
じる。積はクロツク信号によつて出力レジスタへ
入れられ、そこで後の動作のために安定に保存さ
れる。乗算器12は、パイプラインの段階2及び
3である(全体の経過時間:375ns)。 パイプラインのこの時点までは、演算は4MHz
の速度で走つており、新しいデータは250ns毎に
処理される。この時点から後はデータは8MHzの
速度で処理される。これによつて、多くの信号処
理アルゴリズムで共通に必要とされるように、乗
算毎に2つの加算を実行することができる。マイ
クロ命令はCU2から4MHzでのみ利用可能となる
ので、もし必要であれば、マイクロ命令中の制御
ビツトが二重にされる。(ALU20及び丸めシン
ク・コード)。二重にされない場合、制御ビツト
は2つの動作(位取り及び丸め)のために維持さ
れる。乗算の最初の125nsはサブサイクル1と呼
ばれ、第2の125nsはサブサイクル2と呼ばれる。
今後、サブサイクル1に関するデータ・フローを
説明するが、同様の独立した処理がサブサイクル
2で起る。 ALU20の入力にある位取り装置22は、マ
イクロ命令ビツトから与えられた4ビツト位取り
コードの制御の下で、32ビツト・データを0から
16ビツト位置だけ右方シフトすることができる。
位取り装置22は、位取り装置21について説明
したように、カスケード形4入力マルチプレク
サ・モジユールで構成される。更に、位取り装置
21と同じように、シフト過程で空にされた高順
位ビツト部分に符号が充填される。 位取り装置22に対するデータ・ソースは、積
の出力又はSP2,SP3,SP4であることができ
る。このデータは、マイクロ命令ビツトによつて
制御される2入力マルチプレクサを介してゲート
される。もしマルチプレクサのスクラツチ・パツ
ド・ポートが選択されると、ALU20へのソー
スとして使用されている同じスクラツチ・パツド
の内容が、同時に位取り装置22へ送られる。 位取り装置22は、パイプラインの段階4であ
る(全部で500nsの経過時間)。 ALU20は、32ビツト幅データ通路のために、
2つの高速機能発生器を使用して構成される。こ
のALUで要求される機能は、F=A、B、A±
B、B−A、|A|±|B|、及び|B|−|A
|である。モジユールはB−Aを直接に与えるこ
とができないので、B−A機能の間に入力を交差
させるため、各ポートの前方に2入力マルチプレ
クサ設けられる。 2入力マルチプレクサは、入力として段階遅延
の位取り装置22の値又はスクラツチ・パツド
SP2,SP3,SP4のバスを有する。ALU20
のデータ・シンクは、SP3又はSP4又は出力デ
ータ用位取り装置23である。マイクロコード設
計の制約として、同じサブサイクルでは、ソース
のスクラツチ・パツドはシンクのスクラツチ・パ
ツドとして選択されることはできない。ALU機
能、ソースのスクラツチ・パツド及びそのアドレ
ス、シンクのスクラツチ・パツド及びそのアドレ
スを制御するマイクロ命令ビツトは、サブサイク
ル1についてはビツトの最初のフイールドであ
り、サブサイクル2についてはビツトの第2フイ
ールドである。ALU20はパイプラインの段階
5である(全体の経過時間:625ナノ秒)。 位取り装置23は、処理されたデータの出力を
正規化し、且つマイクロ命令から得られる2ビツ
トの位取り制御ビツトの制御下で、32ビツトのデ
ータを0,2,4又は6ビツト位置だけ左方へシ
フトする。この位取りコードは、サブサイクル1
及びサブサイクル2の双方でデータへ印加され
る。位取り装置23はオーバフロー保護回路を有
する。この回路は、左方へシフトされる有意ビツ
トを感知し、データが正であるか負であるかに従
つて、オーバフローが検出された時に、出力を01
……又は10……0へ強制する。位取り装置23
は、基本的には4つの可能なシフト条件のために
ハードワイヤされた4入力マルチプレクサから構
成される。このマルチプレクサの出力は、シフト
されたデータ又は強制された値を通す2入力マル
チプレクサへ送られる。オーバフロー検出論理
は、フイールド・プログラム可能論理アレイ
(FPLA)で構成される。位取り装置23はパイ
プラインの段階6である(全体の経過時間:
750ns)。 パイプラインの最後の段階は、出力データ用丸
め装置26である。丸め装置26は高順位の16個
のデータ・ビツト上で動作する。32ビツトのデー
タは、変更されないで通されるか、又は16個の0
が続いた高順位15ビツト及び符号へ丸められる。
マイクロ命令の丸め指令は、サブサイクル1及び
サブサイクル2の双方で、データへ印加される。 丸め装置26に対するシンクはSP5又はSP6
であることができる。SP5は16ビツトの幅であ
り、従つて丸めモードが選択されない時、データ
を符号及び15ビツトへ切詰める。SP6は32ビツ
トのメモリであり、メイン・メモリ6へ転送する
ための出力データをバツフアする。SP5又はSP
6のアドレスは、1個のマイクロ命令ビツトによ
つて直接に指定され、他のマイクロ命令ビツトは
記憶されるべきサブサイクル・データを指定す
る。もしE1及びE2ビツトの双方がアクチブで
あれば、サブサイクル1のデータは指定されたア
ドレスへ記憶されるべきであり、サブサイクル2
のデータは指定されたアドレスに1を加えたとこ
ろに記憶されるべきである。出力データ用丸め装
置は、変更されないデータ又は0を低順位16ビツ
ト・データ・フイールドへ送るため、機能発生器
モジユール及び2入力マルチプレクサを使用して
構成される。丸め装置26はパイプラインの段階
7である(全体の経過時間:875ns)。 SP6は実際には2個の16ビツト・メモリであ
る。完全精度(32ビツト)のデータは16ビツトの
メイン・メモリ6へ2つの連続した転送を行なう
ことが必要である。 プロセツサ・メイン・メモリ メイン・メモリ6は3個のメモリ・モジユール
で構成される(第11図)。その各々は16ビツト
の幅であり、且つ64Kワードの高さである。3個
のモジユールは循環フアイル(又は回帰バツフ
ア)様式に設計され(第12図)、任意の時点で
モジユールの2つが演算パイプラインと通信する
ため切換えられ、第3のモジユールは入力データ
処理器及び出力データ指導器と通信している。処
理サイクルの終りで、マイクロ命令はモジユール
を回帰させ、処理結果を外部へ出し且つ新しい入
力データ・レコードを受け取つたモジユールが演
算パイプラインに対して新しい入力データ・モジ
ユールとなる。前に新しい入力データ・レコード
を有していたモジユールは、今やデータ・レコー
ド及び現在処理された結果の重複バツフアとな
り、前に処理された結果を有するモジユールは、
今や処理されたデータをホスト・システムへ与
え、且つ次の新しい入力データ・レコードを累積
するため、外部へ接続される。 それぞれのメイン・メモリ・モジユールへの入
力は、2入力マルチプレクサ182である。マル
チプレクサ182は、1つの入力34として演算
パイプラインのSP6を有し、他の入力30とし
て入力データ処理器を有する。各モジユールの出
力は、2個の3状態(T/S)バツフア184へ
入る。1つのバツフア184は、線36によつて
演算パイプラインへ接続され、他のバツフア18
4は、線32によつて出力データ指導器へ接続さ
れる。入力マルチプレクサ及びT/Sバツフアの
制御は、メイン・メモリ・アドレス発生器18a
によつて、線180を介して実行される。アドレ
ス発生器18aは、メイン・メモリ・モジユール
の各々へのアドレス線を多重化し、且つこれらモ
ジユールへチツプ選択兼書込能動信号を与える。 プロセツサのタイミング プロセツサの基本的タイミングは、4MHzの6
つの位相によつて与えられる。AMU4の場合、
位相1は2MHz及び4MHzの方形波信号を発生する
ために使用される。これらの信号は、各種のメモ
リ制御及びパイプライン・ステージング・サイク
ルを規制するために使用される。第13図は、メ
イン・メモリからスクラツチ・パツドへのデータ
転送の基本タイミング・シーケンス、及びスクラ
ツチ・パツド(SP0又はSP1)からパイプライ
ンの6つの段を通るデータの処理シーケンスを示
す。 第13図からわかるように、時間ゼロ(t0)の
時点でパイプラインに入つたデータは、875nsの
後に丸め装置26の出力で利用可能となる。 制御ユニツト 制御ユニツト(CU)2の目的は次のとおりで
ある。 1 マイクロプログラム、スタツク、及び係数パ
ラメータの初期プログラム・ロード(IPL)を
行なうこと。 2 マイクロプログラム記憶装置39のために次
のアドレスを発生すること。 3 係数記憶装置24のアドレスを発生するこ
と。 4 スクラツチ・パツド16のアドレスを発生す
ること。 5 メイン・メモリ6のアドレシング及び制御を
行なうこと。 CU2の機能は、第14図に示される各種のセ
クシヨンによつて実行される。これらのセクシヨ
ンは次のとおりである。 1 IPLコントロール52 2 マイクロプログラム記憶装置39及びマイク
ロプログラム・シーケンサ38 3 乗数係数記憶装置24 4 スクラツチ・パツド・アドレス発生器18b 5 メイン・メモリ・アドレス発生器18a 制御ユニツト・ハードウエアの概観 IPLコントロール52 IPLコントロール52は、データをコンピユー
タからプロセツサへ転送する。IPLの間にロード
されるべき装置は次のとおりである。 1 マイクロプログラム記憶装置 2 係数記憶装置 3 カウント関数ブランチ(BFC)プリセツト
及びアドレス・スタツク 4 BFCループ・カウント・スタツク 5 係数アドレス/増分スタツク 6 メイン・メモリ・アドレス/増分スタツク マイクロプログラム・シーケンサ38 第15図のマイクロプログラム・シーケンサ3
8は、マイクロプログラム記憶装置39の全ての
アドレシング及びシーケンス制御を行なう。実行
できる機能としては、現アドレスの1の加算、入
れ子ループ、条件付きまたは無条件ブランチがあ
る。 シーケンサ38はマイクロ命令デコード論理2
06、プログラム・カウンタ208、ループ制御
論理210、初期ループ・カウント・スタツク2
12、現ループ・カウント・スタツク214、無
条件/条件(UB/CB)ブランチ・アドレス・
スタツク216、カウント関数ブランチ(BFC)
スタツク218、ブランチ・アンド・リンク・ア
ドレス記憶装置220を含む。 ループ・カウント・スタツク212及び214
の各々は、512個の値を含む。初期ループ・カウ
ント・スタツク212はループ・サイズ(ループ
毎に2048回の繰返し)を含む。それはIPLの間に
初期化され、動作過程の間不変のままである。現
ループ・カウント・スタツク214は、マイクロ
プログラム中の各ループの現在の値、及びループ
が満足されたかどうかを示すビツトを含む。カウ
ント関数ブランチ・スタツク218はBFC命令
のために512個のアドレスを含み、ブランチ・ア
ドレス・スタツク216は無条件及び条件付き命
令のために512個のアドレスを含む。 次に、シーケンサ38によつて制御されるマイ
クロ命令の各々について説明する。 CONT(継続) 継続命令はプログラム・カウンタ208に含ま
れるプログラム・カウント(PC)値を増加させ、
記憶装置39の次のマイクロ命令にアクセスす
る。スタツク値に対しては、変更はなされない。 BFC(カウント関数ブランチ) BFCマイクロ命令は全てのループ活動を制御
する。シーケンサ38は、任意のループ(入れ子
になつたもの、又はそうでないもの)の2048回ま
での繰返しを実行する能力を与える。 ループとして限定されたコード・シーケンスの
終りに、BFC動作コードが現われる。マイクロ
命令のブランチ・スタツク・ポインタ・フイール
ド156によつて限定されたところに従つて、現
ループ・カウント・スタツク214がアクセスさ
れ、そのアンダフロー・ビツト215が検査され
る。もしビツト215がオフであれば、それはル
ープが完了していないことを示す。動作コードが
そのように表示すると、プログラム・カウンタ2
08は、BFCスタツク218の指定されたロケ
ーシヨンから、ループ中の開始アドレス値をロー
ドされる。もしビツト215がセツトされていれ
ば、プログラム・カウンタ208はアドレスを1
だけ増加される(PC+1)。この場合、現ルー
プ・カウント・スタツク214にある値は、後に
このループへ戻る可能性を想定して、初期値へ変
更される。 UB(無条件ブランチ) 無条件ブランチが指定された時、プログラム・
カウンタ208はブランチ・アドレス・スタツク
216から直接にロードされる。 CBS0,CBS1(条件付きブランチ) 条件付きブランチは、特定の動作コードと状況
ビツトの状態とに基づいて起る。 もし指定された状況ビツトがオンであれば、プ
ログラム・カウンタ208はブランチ・アドレ
ス・スタツク216からロードされる。もしビツ
トがオンでなければ、プログラムはアドレスPC
+1へ進む(ブランチ無し)。 CBCR(ブランチ・カウント・レジスタ減少) この動作コードは、現ループ・カウント・スタ
ツク214の指定されたアドレス内容を読出し、
それを減少させ、その結果を同じアドレスに書戻
す。現ループ・カウントが読出された時、もしビ
ツト215が検出されると、ループを再初期化す
るため、初期ループ・カウントが現ループ・カウ
ントと入替る。プログラムはアドレスPC+1へ
進む。 マイクロプログラム記憶装置 マイクロプログラム記憶装置39は、プロセツ
サのために2048個のコード・ワードを与える。各
ワードは128ビツトの幅である。マイクロ命令の
各種の命令フイールドは、第5図に示される。マ
イクロプログラムのアドレスは、4096ワードのマ
イクロコードまで拡張して発生することができ
る。 係数記憶装置24及び係数記憶アドレス発生器
18c 係数記憶装置24及び係数記憶アドレス発生器
18cは、演算エレメント(AE)のために、乗
算器12の全ての係数を与える。係数記憶装置2
4はIPLの間にロードされ、マイクロ命令ワード
によつてアクセスされる。係数記憶アドレス発生
器18cは、マイクロ命令を介して選択されたア
ドレシング・モードに基いて係数記憶装置の全て
のアドレスを発生する。 この機能は第16図の係数記憶装置24、第1
7図のアドレス/増分スタツク60及びアドレス
ALU62を使用する。 係数記憶アドレス発生器には、4つの基本的制
御状態が存在する。これらの状態は、マイクロ命
令のビツト(第5図参照)によつて選択される。
これらの状態は、係数記憶アドレスを発生するた
め、スタツク60から取られたアドレス又は増分
を使用する。 係数記憶アドレス発生器18cの4つの制御状
態は、次のとおりである。 (1) アドレス・モード (2) 増分モード (3) テーブル・ルツクアツプ・モード (4) スクラツチ・パツド選択モード 最初の3つのモードにおいて、係数記憶装置2
4は、乗算器12の入力として選択される。スク
ラツチ・バツド選択モードにおいて、SP1は乗
算器12の入力を与え、係数記憶装置24はロツ
ク・アウトされる。 アドレス・モードにおいて、アドレス/増分ス
タツク60の中で発見された12ビツトのアドレス
は、現係数アドレス・スタツク60′へ直接にゲ
ートされる。スタツク60′のアドレスは、現ア
ドレス・スタツク・ポインタによつて指定され
る。スタツク60′は、増加されるべきアドレス
の一時的記憶装置となり、又は選択された現係数
アドレスを単にバツフアする。 増分モードにおいて、アドレス/増分スタツク
60から取られた12ビツト増分値は、同じマイク
ロ命令の現アドレス・ポインタによつて選択され
た16個の現係数アドレスの1つへ加えられる。 テーブル・ルツクアツプ・モードにおいて、現
係数アドレスはSP1データである。この12ビツ
ト・アドレスは、アドレスALU62を通され、
現アドレス・ポインタによつて指定された現係数
アドレス・スタツク60′のロケーシヨンに記憶
される。 スクラツチ・パツド・アドレス発生器18b 前に概説したように、マイクロ命令は演算エレ
メント内でスクラツチ・パツド16の読出し、書
込み、アドレシングを選択するフイールドを含
む。各種のビツトの割当てを詳細に説明するので
はなく、実際のスクラツチ・パツドの機能、即ち
パツドの選択、アドレス論理、読出/書込共通回
路に焦点をしぼつて説明する。 第18図はスクラツチ・パツド選択機能の概要
を示す。マイクロ命令ビツトは、それぞれの選択
デコーダに隣接して垂直方向に並べて示される。 デコード出力に隣接したカツコは、読出/書込
アドレス選択を示す。例えば、SPORはSPO読出
アドレスの起点であり、SPOWはSPO書込アド
レスの起点である。Uは上位Lは下位を示す。実
際の読出又は書込アドレスは適当な選択線へゲー
トされる。 SP0又はSP1の場合、最終的な読出/書込ア
ドレスは、関連したアドレス・フイールドから直
接に取られた絶対アドレスであつてよく、又はそ
れはアドレス・フイールドが増分値を含む増加さ
れたアドレスであつてよい。他の全てのスクラツ
チ・パツドは直接にアドレスされる。 アドレスがデコードされると、適当な読出又は
書込制御信号が選択されたスクラツチ・パツドへ
印加される。各スクラツチ・パツドは具体的場合
に対処する制御信号を発生する同じような回路を
有する。 メイン・メモリ・アドレス発生器 メイン・メモリ・アドレス発生器18aは第1
9図に示される。それは8個の64KワードBSM
をカバーするアドレスを与える。発生されたアド
レスの長さは19ビツトである。最順位の3ビツト
は線180を介して8個のBSMの1つを選択し、
低順位の16ビツトは、線146を介して、選択さ
れたBSM内のロケーシヨンにアクセスする。 メイン・メモリ・アドレス発生器18aは現ア
ドレス・レジスタ80、基本アドレス/増分スタ
ツク64、メイン・メモリ・アドレス・レジスタ
151、モジユロMカウンタ66、BSM選択の
ためのALU84,86,88、及びアドレス計
算のためのALU82を含む。 現アドレス・レジスタ80は16個までの現在の
又は更新可能なメイン・メモリ・アドレスを記憶
する。アドレス/増分スタツク64はページ形式
で構成された1024個のベース・アドレス又は増分
を含む。ここで個々のページは16個のアドレス又
は増分を含む。ページは、ページ・ビツト154
を使用することによつて選択される。モジユロM
カウンタ66は、「フアイル回帰」マイクロ命令
の使用及びIPLの時にセツトアツプ・レジスタで
「回帰している」ものとして限定されたBSMの数
の関数として、メイン・メモリ・アドレスの最有
意の3ビツトを発生する。アドレス/増分スタツ
ク64の出力の最有意ビツトは、アドレスが固定
BSMに対するものであるか、又は回帰BSMに対
するものであるかを示すため使用される。 新しいメイン・メモリ・アドレスは、実行され
た各マイクロ命令の結果として計算される。ペー
ジ・ビツト154と、マイクロ命令中の4ビツ
ト・ベース・スタツク・ポインタ145とを連結
することによつて形成された10ビツト・アドレス
を使用して、アドレス/増分スタツク64から値
が取出される。 ALU82は、結果の16ビツト・フイールドが
アドレスとして指定されたか、又は増分として指
定されたかに従つて、このフイールドを通過させ
るか又は指定された現アドレス・ロケーシヨンの
出力へ加える。 ベース・アドレスの高順位3ビツト180は、
BSMを選択するために使用される。固定BSMが
選択された時、これらの3ビツトは、もしアドレ
ス/増分ビツトがアドレスを示すならば、ALU
82の16ビツト出力146へ付加され、もしアド
レス/増分ビツトが増分を示すならば、アドレ
ス/増分スタツク64の最有意3ビツトへ加えら
れる。回帰BSMが選択された時、3ビツト18
0は、現アドレス・レジスタ80の最有意3ビツ
トへ加えられるか(アドレス/増分ビツト=増分
の時)、又はモジユロMカウンタ66の内容へ加
えられる(アドレス/増分ビツト=アドレスの
時)。 ALU84,86,88は、「フアイル回帰」指
令がIPLで限定された回帰可能なBSMの境界を
越えてBSM値を進ませる時点を検出するために
設けられる。 モジユロMカウンタ66は、IPL時に線186
を介してモジユロ・ベース値をロードされる。こ
の値は、回帰バツフア様式で動作されるべき
BSMの数(0から7まで)である。マイクロ命
令ワード中のフイールド190にあるビツト12
4−126は、バツフアを回帰させることが望ま
れる度にカウンタを増加させるため、線188を
介してモジユロMカウンタ66へ印加されること
ができる。例えば、IPL時に、M=3がモジユロ
Mカウンタへロードされ、3BSM回帰バツフア動
作を能動化する。次いで、外部バス・インターフ
エイス・ユニツト(BIU)は、入力30(第11
図)を介して、BSMの全容量の半分までデータ
をロードするよう要求してよい。この時点で、モ
ジユロMカウンタ66から線180へ出力された
BSMポインタ値P=1によつて、BSM1が指示
されているものと仮定する。BSM2はAUから
のロード入力へ接続され、BGM1は入力30へ
接続され、BSM0はAUからの線36へ接続さ
れる。BIUがデータをBSM1へロードした後、
それはスタート・パルスをマイクロプログラム・
シーケンサ38へ送る。シーケンサ38はマイク
ロプログラム記憶装置39の最初のマイクロ命令
にアクセスする。そのマイクロ命令のビツト12
4−126は、BSMポインタPを1だけ増加さ
せる線188上の制御信号を形成する。P=2の
新しい値は、マルチプレクサ182及び3状態バ
ツフア184へ至る制御線180へ出力される。
バツフア184はBSM1の出力を演算/メモ
リ・ユニツト4へ至る線36へ接続する。BSM
2は線32及びBIUからのロード入力30へ接続
され、BSM0はAUからのロード入力34へ接
続される。 制御ユニツト・アーキテクチヤーの詳細な説明 これまでの概説からわかるように、制御フイー
ルド部分、演算フイールド部分、記憶フイールド
部分を含むマイクロ命令ワードに基いて、マイク
ロ命令制御スタツク、データ・メモリ制御スタツ
ク、及び係数メモリ制御スタツクにアクセスする
ため、共通のページ番号を使用することは、パイ
プライン式信号処理コンピユータの制御動作、演
算動作、及び入出力動作の間に緊密な協働関係を
もたらす。この緊密な協働関係は、タスク変化に
対するシステムの応答を早くすることができ、そ
れによつて、パイプライン式演算動作が概して厳
格なシーケンシヤル構造を必要とするにもかかわ
らず、汎用コンピユータで達成される柔軟性に類
似した大きな柔軟性を、システムの動作特性とし
て与えることになる。 この顕著な利点は、第15図、第20図、第2
1図に詳細に示される制御ユニツトによつて達成
される。第20図は、マイクロプログラム・シー
ケンサ38、アドレス/増分(係数ベース)スタ
ツク60、及びアドレス/増分(メイン・メモ
リ・ベース)スタツク64にある制御スタツクに
対して統一した制御を示す機能的ブロツク図であ
る。第15図はマイクロプログラム・シーケンサ
38の詳細な構造を示している。第21図はスク
ラツチ・パツド・アドレス発生器18b及び演算
制御論理の詳細な構造を示す。 第15図に示されるように、マイクロプログラ
ム記憶装置39はアドレス入力と、レジスタ10
0に対するマイクロ命令ワード出力とを有する。
レジスタ100は、マイクロ命令ワードを記憶す
るためのものである。各マイクロ命令ワードは、
ページ・アドレス・フイールド154、ブラン
チ・スタツク・ポインタ・フイールド156、ブ
ランチ制御フイールド232を含む制御フイール
ド200を有する。更に、各マイクロ命令ワード
は演算フイールド202、記憶フイールド204
を含む。 マイクロ命令ワードを4MHzの速度で出力する
ようマイクロプログラム記憶装置へ信号を与える
ため、4MHzの反復速度でクロツク信号150を
発生するクロツクが、マイクロプログラム記憶装
置39へ接続される。各マイクロ命令ワードは、
対応する250nsのマイクロ命令期間中、マイクロ
プログラム記憶装置39のアドレス入力へ印加さ
れたアドレスのところでそれぞれアクセスされ
る。 デコード論理(シーケンス・デコーダ)206
は、クロツク信号150を入力され、かつ1つの
入力をマイクロ命令記憶装置出力のブランチ制御
フイールド232へ接続され、4MHzの反復速度
でマイクロ命令ワード中のブランチ制御命令をゲ
コードした出力を発生する。 カウント関数ブランチ(BFC)スタツク21
8は、ページ・アドレス入力をマイクロプログラ
ム記憶装置出力のページ・アドレス・フイールド
154へ接続され、ポインタ・アドレス入力をブ
ランチ・スタツク・ポインタ・フイールド156
へ接続され、制御入力をデコード論理206の出
力へ接続されて出力を発生する。BFCスタツク
218は、複数のページ群の中にマイクロ命令ル
ープ開始地点アドレスを記憶している。各ページ
群は、ページ・アドレス入力によつてアクセスさ
れる。また各ページ群は、ポインタ・アドレス入
力によつてアクセスされる複数の開始地点アドレ
スを有する。BFCスタツク218は、デコード
論理206からの出力に応答して、新しいループ
開始地点アドレスを選択的に出力し、かつマイク
ロプログラム記憶装置39から出力された最新の
マイクロ命令ワードのブランチ制御フイールド2
32がその中にループ終了命令を有するかどうか
を示す信号を出力する。 現ループ・カウント・スタツク214は、ペー
ジ・アドレス入力をマイクロプログラム記憶装置
出力のページ・アドレス・フイールド154へ接
続され、ポインタ・アドレス入力をブランチ・ス
タツク・ポインタ・フイールド156へ接続さ
れ、かつ出力を有する。現ループ・カウント・ス
タツク214は複数のベージ群の中に現マイクロ
命令ループ・カウントを記憶する。各ページ群は
ページ・アドレス入力によつてアクセスされる。
また各ページ群は、ポインタ・アドレス入力によ
つてアクセスされる複数のループ・カウントを有
する。現ループ・カウント・スタツク214は、
デコード論理206の出力に応答して、新しいル
ープ・カウントを選択的に出力するとともに、マ
イクロプログラム記憶装置39から出力された最
新のマイクロ命令ワードのブランチ制御フイール
ド232が、その中にループ終了命令を有するか
どうかを示す信号を出力する。 ループ制御論理(減算器)210は、入力を現
ループ・カウント・スタツク214へ接続され、
出力をスタツク214の入力へ接続され、与えら
れたループ・カウント値を1だけ減少させて、そ
の減少された値を新しい現ループ・カウントとし
て、現ループ・カウント・スタツク214の入力
へ出力する。 ゼロ検出器228は、入力をループ制御論理2
10へ接続され、出力をデコード論理206へ接
続され、減少された現ループ・カウントがゼロに
なつた時、ゼロ検出信号をデコード論理206へ
出力する。 プログラム・カウンタ208は、4MHzのクロ
ツク信号入力、BFCスタツク218の出力へ接
続された入力、デコード論理206の出力へ接続
された制御入力、マイクロプログラム記憶装置3
9のアドレス入力へ接続された出力を有する。 プログラム・カウンタ208は、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのアドレスをプログラム・カウント
(PC)として記憶し、4MHzの繰返し速度でPCを
1だけ増加させて、それを次のマイクロ命令記憶
アドレスとする。プログラム・カウンタ208
は、マイクロプログラム記憶装置39から出力さ
れた最新のマイクロ命令ワードのブランチ制御フ
イールド232が、その中にループ終了命令を有
する表示をデコード論理206が出力する時デコ
ード論理206がゼロ検出器228からゼロ検出
信号を受取つていないことに応答して、BFCス
タツク218からのループ開始地点アドレスを、
次のマイクロ命令記憶アドレスとして選択的に出
力する。 このようにして、ループのマイクロ命令シーケ
ンスは、信号処理コンピユータの中で柔軟性をも
つて制御されることができる。 更に第15図のマイクロプログラム・シーケン
サ38は、初期ループ・カウント・スタツク21
2を含む。スタツク212は、ページ・アドレス
入力をマイクロプログラム記憶装置出力のペー
ジ・アドレス・フイールド154へ接続され、ポ
インタ・アドレス入力をブランチ・スタツク・ポ
インタ・フイールド156へ接続され、かつ出力
を有する。初期ループ・カウント・スタツク21
2は複数のページ群の中に初期マイクロ命令ルー
プ・カウントを記憶し、各ページ群はページ・ア
ドレス入力によつてアクセスされ、かつ各ページ
群はポインタ・アドレス入力によつてアクセスさ
れる複数の初期ループ・カウントを有する。初期
ループ・カウント・スタツク212は、マイクロ
プログラム記憶装置39から出力された最新のマ
イクロ命令ワードのブランチ制御フイールド23
2が、その中にループ初期化命令を有しているこ
との表示をデコード論理206がスタツク212
へ出力したことに応答して、新しい初期ループ・
カウントを選択的に出力する。 ループ制御論理210は、初期ループ・カウン
ト・スタツク212の出力へ接続された入力、デ
コード論理206の出力へ接続された制御入力を
有する。ループ制御論理210は、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのブランチ制御フイールド232
が、その中にループ初期化命令を有することの表
示をデコード論理206がループ制御論理210
へ出力したことに応答して、新しい初期ループ・
カウントを減少させることなく現ループ・カウン
ト・スタツク214の入力へ転送する。 このようにして、ループのマイクロ命令シーケ
ンスは、信号処理コンピユータの中で柔軟性をも
つて初期化されることができる。 ループ制御論理210は、減少された現ルー
プ・カウントがゼロである時、デコード論理20
6がゼロ検出器228からゼロ検出信号を受取つ
たことに応答して、初期ループ・カウント・スタ
ツク212からの新しい初期ループ・カウントを
現ループ・カウント・スタツク214へ転送す
る。このようにして、現ループ・カウント・スタ
ツクは、ループの完了後、自動的に再初期化され
ることができる。 更に第15図のマイクロ命令シーケンサ38
は、ブランチ・アドレス・スタツク216を含
む。スタツク216は、マイクロプログラム記憶
装置出力のページ・アドレス・フイールド154
へ接続されたページ・アドレス入力、ブランチ・
スタツク・ポインタ・フイールド156へ接続さ
れたポインタ・アドレス入力、デコード論理20
6の出力へ接続された制御入力、プログラム・カ
ウンタ208の入力へ接続された出力を有する。
ブランチ・アドレス・スタツク216は、複数の
ページ群の中にマイクロ命令ブランチ先アドレス
を記憶している。各ページ群はページ・アドレス
入力によつてアクセスされ、かつ各ページ群はポ
インタ・アドレス入力によつてアクセスされる複
数のブランチ先アドレスを有する。ブランチ・ア
ドレス・スタツク216は、マイクロプログラム
記憶装置39から出力された最新のマイクロ命令
ワードのブランチ制御フイールド232が、その
中にブランチ動作命令を有することの表示をデコ
ード論理206がスタツク216へ出力したこと
に応答して、新しいブランチ先アドレスを選択的
に出力する。 プログラム・カウンタ208は、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのブランチ制御フイールド232
が、その中にブランチ動作命令を有することの表
示をデコード論理206がプログラム・カウンタ
208へ出力したことに応答して、新しいブラン
チ先アドレスを新しいプログラム・カウント
(PC)として記憶し、それを次のマイクロプログ
ラム記憶装置アドレスとして出力する。 このようにして、ブランチのマイクロ命令動作
は、信号処理コンピユータの中で柔軟性をもつて
制御されることができる。 ブランチ動作命令は、無条件ブランチでも条件
付きブランチでもよい。 条件ビツト・レジスタ234は、その入力を監
視されるべき条件を有するソースへ接続される。
そのような条件としては、例えば演算/メモリ・
ユニツト4におけるオーバフロー条件がある。条
件ビツト・レジスタ234は、その出力をデコー
ド論理206の入力へ接続される。条件ビツト・
レジスタは、監視される源の条件を示す条件ビツ
トを記憶する。 更に、マイクロ命令ワードの制御フイールド2
00は、状況制御フイールド230を含む。 デコード論理206は、マイクロ命令ワードの
中にある条件応答命令を4MHzの繰返し速度でデ
コードするため、マイクロプログラム記憶装置出
力の状況制御フイールド230へ接続された入力
を有する。 ブランチ・アドレス・スタツク216は、ブラ
ンチ制御フイールド232がその中に条件付きブ
ランチ命令を有していること、状況制御フイール
ドがその中に条件応答命令を有していること、条
件ビツト・レジスタがその中にオンの条件ビツト
を有していることの表示をデコード論理206が
スタツク216へ出力したことに応答して、条件
付きブランチ先アドレスを記憶し、かつ新しい条
件付きブランチ先アドレスを選択的に出力する。 プログラム・カウンタ208は、新しい条件付
きブランチ先アドレスを新しいプログラム・カウ
ント(PC)として記憶し、デコード論理206
に応答して、PCを新しいマイクロプログラム記
憶装置アドレスとして出力する。 このようにして、条件付きブランチ動作は信号
処理コンピユータの中で柔軟性をもつて制御され
ることができる。 更に、第15図のマイクロプログラム・シーケ
ンサ38は、ブランチ・アンド・リンク・アドレ
ス記憶装置220を含む。記憶装置220は、ア
ドレス入力、デコード論理206からの出力へ接
続された制御入力、プログラム・カウンタ208
の出力へ接続されたデータ入力、及びプログラ
ム・カウンタ208の入力へ接続されたデータ出
力を有する。ブランチ・アンド・リンク・アドレ
ス記憶装置220は、N個の記憶装置ロケーシヨ
ンを有する。このロケーシヨンは、マイクロプロ
グラム記憶装置39から出力された最新のマイク
ロ命令ワードのブランチ制御フイールドが、その
中にブランチ・アンド・リンク命令を有している
ことの表示をデコード論理206が記憶装置22
0へ出力したことに応答して、増加されたプログ
ラム・カウントPC+1をマイクロ命令の「ブラ
ンチからの戻り」アドレスとして記憶するための
ものである。 モジユロNカウンタ222は、デコード論理2
06の出力へ接続された制御入力、及びブラン
チ・アンド・リンク・アドレス記憶装置220の
アドレス入力へ接続された出力を有する。モジユ
ロNカウンタ222は、ブランチ・アンド・リン
ク命令の表示を発生するデコード論理206に応
答して、1だけ増加される。モジユロNカウンタ
222は、マイクロプログラム記憶装置39から
出力された最新のマイクロ命令ワードのブランチ
制御フイールド232が、その中に「ブランチか
らの戻り」命令を有することの表示をデコード論
理206がカウンタ222へ出力したことに応答
して、1だけ減少される。 ブランチ・アンド・リンク・アドレス記憶装置
220は、「ブランチからの戻り」命令の表示を
与えるデコード論理206に応答して、記憶され
たマイクロ命令の「ブランチからの戻り」アドレ
スを出力する。 プログラム・カウンタ208は、「ブランチか
らの戻り」アドレスを新しいプログラム・カウン
ト(PC)として記憶し、デコード論理206に
応答して、PCを次のマイクロプログラム記憶装
置アドレスとして出力する。 このようにして、ブランチ・アンド・リンク及
び「ブランチからの戻り」動作は、信号処理コン
ピユータの中で柔軟性をもつて制御されることが
できる。 本発明の制御の一貫性は、更に第20図を参照
して理解することができる、マイクロ命令ワード
は、記憶フイールドの中にメイン・メモリ・ポイ
ンタ・フイールド145を有する。更に、制御ユ
ニツト2はメイン・メモリ用アドレス/増分スタ
ツク64を含む。スタツク64ま、4MHzのクロ
ツク信号入力、マイクロプログラム記憶装置出力
のページ制御フイールド154へ接続されたペー
ジ・アドレス入力、メイン・メモリ・ポインタ・
フイールド145へ接続されたポインタ・アドレ
ス入力、及びメイン・メモリ6のアドレス入力へ
接続された出力を有する。スタツク64は、複数
のページ群の中にデータ・アドレスを記憶してい
る。各ページ群は、そのページ・アドレス入力に
よつてアクセスされ、かつ各ページ群はそのポイ
ンタ・アドレス入力によつてアクセスされる複数
のデータ・アドレスを有する。スタツク64は、
マイクロプログラム記憶装置から出力された最新
のマイクロ命令ワードのページ・アドレス・フイ
ールド154及びメイン・メモリ・ポインタ・フ
イールド145に応答して、メイン・メモリ6の
データ・ワードにアクセスする。これらの動作は
4MHzの繰返し速度で実行される。 このようにして、マイクロ命令ワード及びそれ
に応答して動作されるべきデータは、信号処理コ
ンピユータの中で柔軟性をもつてアクセスされる
ことができる。 更に、マイクロ命令ワードは係数メモリ・ポイ
ンタ・フイールド160を含む。更に、制御ユニ
ツト2は係数メモリ用アドレス/増分スタツク6
0を含む。スタツク60は、マイクロプログラム
記憶装置出力のページ・アドレス・フイールド1
54へ接続されたページ・アドレス入力、係数メ
モリ・ポインタ・フイールド160へ接続された
ポインタ・アドレス入力、係数記憶装置24のア
ドレス入力へ接続された出力を有する。係数メモ
リ用アドレス/増分スタツク60は、複数のペー
ジ群の中に係数メモリ・アドレスを記憶する。各
ページ群は、そのページ・アドレス入力によつて
アクセスされる。また各ページ群は、そのポイン
タ・アドレス入力によつてアクセスされる複数の
係数メモリ・アドレスを有する。スタツク60
は、マイクロプログラム記憶装置39から出力さ
れた最新のマイクロ命令ワードのページ・アドレ
ス・フイールド154及び係数メモリ・ポイン
タ・フイールド160に応答して、係数記憶装置
24の係数ワードにアクセスする。これらの動作
は、4MHzの繰返し速度でなされる。 このようにして、マイクロ命令ワード、及びそ
れによつて動作されるべきデータ及び係数は、信
号処理コンピユータの中で柔軟性をもつてアクセ
スされることができる。 演算動作、データ記憶アクセス動作、ブランチ
及びループ制御動作の緊密な協働は、第21図を
参照して理解することができる。マイクロ命令ワ
ードは、記憶フイールド204の中に第1及び第
2のスクラツチ・パツド・ポインタ・フイールド
162及び164を含む。 制御ユニツト2は、第2のクロツクを含む。第
2クロツクは、8MHzの反復速度で第2のクロツ
ク信号152を発生する出力を有する。これは第
1のクロツク信号150の反復速度の2倍であ
る。従つて、250nsの持続時間である各マイクロ
命令時間の間に、125nsの2つのクロツク・パル
スが発生される。 マルチプレクサ166は、8MHzクロツク信号
152へ接続されたクロツク入力、マイクロプロ
グラム記憶装置出力の第1のスクラツチ・パツ
ド・ポインタ・フイールド162へ接続された第
1入力、第2スクラツチ・パツド・ポインタ・フ
イールド164へ接続された第2入力、及び出力
を有する。マルチプレクサ166は、マイクロ命
令時間の第1の半サイクルで、その出力を1つの
入力に接続し、マイクロ命令時間の第2の半サイ
クルで、その出力を他の1つの入力へ接続する。 演算/メモリ・ユニツト4は、スクラツチ・パ
ツドSP0(第3図)を含む。SP0は、8MHzの
クロツクへ接続されたクロツク信号入力、マルチ
プレクサ166(第21図)の出力へ接続された
アドレス入力115、メイン・メモリ6のデータ
出力へ接続されたデータ入力、演算エレメント
ALU10の入力へ接続されたデータ出力を有す
る。スクラツチ・パツドSP0は、マイクロ命令
時間の第1の半サイクルで、第1スクラツチ・パ
ツド・ポインタ・フイールド162(第21図)
に応答して、その中の第1のロケーシヨンから第
1のデータ・ワードを読出し、そのデータ・ワー
ドをALU10へ出力する。スクラツチ・パツド
SP0は、第2のデータ・ワードをその中の第2
のロケーシヨンへ書込む。第2のデータ・ワード
は、マイクロ命令時間の第2の半サイクルで、第
2スクラツチ・パツド・ポインタ・フイールド1
64に応答して、メイン・メモリ6からデータ入
力へ印加される。 このようにして、スクラツチ・パツドSP0は、
マイクロ命令がマイクロプログラム記憶装置39
からアクセスされる速度の2倍で動作するよう
に、マイクロ命令ワードによつて制御される。 マイクロ命令ワードは、演算フイールド202
の中に第1の演算エレメント制御フイールド17
0を含む。ALU10(第3図)は、4MHzクロツ
クへ接続されたクロツク信号入力、マイクロプロ
グラム記憶装置出力の第1の演算エレメント制御
フイールド170へ接続された制御入力174、
係数記憶装置24の係数ワード出力又はスクラツ
チ・パツドSP1へ選択的に接続されるデータ入
力、及び出力を有する。ALU10は、第1演算
エレメント制御フイールド170に応答して、各
マイクロ命令時間中に1度だけ、第1の結果値を
発生する。前に説明したように、ALU10は2
入力加算動作を実行する。第5図に示されるマイ
クロ命令ワード・フオーマツトを参照すると、第
1演算エレメント制御フイールド170はビツト
101−103を占め、第1スクラツチ・パツ
ド・ポインタ・フイールド162はビツト96−
99を占めることがわかる。 マルチプレクサ166の出力は、第1及び第2
のステージ・レジスタ114及び116を通さ
れ、かつ線115を介して8MHzの速度で、スク
ラツチ・パツドSP0(第3図)のアドレス入力
へ与えられる。第1演算エレメント制御フイール
ド170は、ステージ・レジスタ172を介して
4MHzの反復速度で送られ、線174を介して、
ALU10(第3図)の制御入力へ送られる。ス
クラツチ・パツドSP1の制御及び動作は、SP0
について説明したものと同様であるが、その制御
及びアドレス信号は、線117を介して制御ユニ
ツト2からSP1へ出力される。 前述したように、ALU10は4MHzの反復速度
で動作し、その合計値を乗算器12の第1入力へ
与える。乗算器12は、同じように4MHzの速度
で動作し、上記の合計値と、係数記憶装置24か
ら線137を介して4MHzの反復速度で入力され
る係数とを乗算する。乗算器12によつて出力さ
れた積は、マルチプレクサ139及び位取り装置
22を介してALU20へ与えられる。乗算器1
2の出力にある積の値は、250nsのマイクロ命令
時間中有効に保持される。マルチプレクサ139
は、スクラツチ・パツドSP3,SP4,SP2に記
憶されたデータも通すことができる。位取り装置
22は、8MHzの速度で動作し、マルチプレクサ
139からの出力値を、第2の演算エレメント
ALU20(第3図)の第1データ入力へ与える。 第21図の制御ユニツトにおいて、マイクロ命
令ワードは第3スクラツチ・パツド・ポインタ・
フイールド122(第5図のビツト64−67)、
第4スクラツチ・パツド・ポインタ・フイールド
123(第5図のビツト42−45)、第2演算
エレメント制御フイールド124(第5図のビツ
ト71−74)、及び第3演算エレメント制御フ
イールド125(第5図のビツト49−52)を
含む。 第21図の制御ユニツトは第2のマルチプレク
サ168′を含む。マルチプレクサ168′は、
8MHzクロツクへ接続されたクロツク信号入力1
52、第3スクラツチ・パツド・ポインタ・フイ
ールド122及び第2演算エレメント制御フイル
ド124へ接続された1対の入力、第4スクラツ
チ・パツド・ポインタ・フイールド123及び第
3演算エレメント制御フイールド125へ接続さ
れた第2の1対の入力、及び1対の出力を有す
る。マルチプレクサ168′は、その1対の出力
を、マイクロ命令時間の第1の半サイクルでその
第1の1対の入力へ接続し、マイクロ命令時間の
第2の半サイクルでその第2の1対の入力へ接続
する。 第2の演算エレメントALU20は、8MHzクロ
ツクへ接続されたクロツク入力、マルチプレクサ
12を介して第1の演算エレメントALU10の
出力へ接続された第1のデータ入力、第2のデー
タ入力、第2のマルチプレクサ168′から来る
出力の1つへ接続された制御入力131、及び出
力を有する。ALU20は、マイクロ命令時間の
第1半サイクルで第2演算エレメント制御フイー
ルド124に応答し、かつマイクロ命令時間の第
2半サイクルで第3演算エレメント制御フイール
ド125に応答して、各マイクロ命令時間に2
回、和の結果値を発生する。 このようにして、ALU20は、マイクロ命令
がマイクロプログラム記憶装置39からアクセス
される速度の2倍で動作するように、マイクロ命
令ワードによつて制御される。 スクラツチ・パツドSP3は、8MHzクロツクへ
接続されたクロツク入力、マルチプレクサ16
8′から来る出力の1つへ接続されたアドレス入
力133、ALU20の入力へ接続されたデータ
出力を有する。SP3は、その中の第1のロケー
シヨンから第1のデータ・ワードを読出し、マイ
クロ命令時間の第1の半サイクルで第3スクラツ
チ・パツド・ポインタ・フイールド122に応答
して、上記データ・ワードをALU20へ出力す
る。SP3は、その中の第2のロケーシヨンから
第2のデータ・ワードを読出し、マイクロ命令時
間の第2半サイクルで第4スクラツチ・パツド・
ポインタ・フイールド123に応答して、上記デ
ータ・ワードをALU20へ出力する。ALU20
に対する制御信号は、マルチプレクサ168′か
らステージ・レジスタ126,130を8MHzの
速度で通過し、線131を介してALU20へ出
力される。SP3に対するアドレス及び制御信号
は、マルチプレクサ168′からステージ・レジ
スタ128,130を通過し、線133を介して
SP3へ出力される。第3図に示されるスクラツ
チ・パツドSP4は、SP3と同じように制御され
るとともに動作し、線135を介して制御及びア
ドレス情報を受取る。 代替的動作モードとして、SP3及びSP4は、
マイクロ命令時間の交互の半サイクルで、ALU
20の第2の入力へデータを交互に与えるように
してもよい。スクラツチ・パツドSP3は、その
中の第1のロケーシヨンから第1のデータ・ワー
ドを読出し、マイクロ命令時間の第1の半サイク
ルで、第3スクラツチ・パツド・ポインタ・フイ
ールド122に応答して、上記データ・ワードを
ALU20へ出力する。SP4は、その中の第2の
ロケーシヨンから第2のデータ・ワードを読出
し、マイクロ命令時間の第2の半サイクルで、第
4スクラツチ・パツド・ポインタ・フイールド1
23に応答して、上記データ・ワードをALU2
0へ出力する。SP3及びSP4の双方は、それら
のアドレス及び制御入力を、マルチプレクサ16
8′の出力対の1つへ接続される。SP3はマイク
ロ命令時間の第1の半サイクルで制御情報を利用
し、SP4は第2の半サイクルで制御情報を利用
する。 ALU20は、8MHzの反復速度で動作し、位取
り装置23及び丸め装置26を介して、和の出力
をフイードバツク用スクラツチ・パツドSP5又
は出力用スクラツチ・パツドSP6へ与える。SP
5は、更に処理を行うため、データをALU10
へ与えることができる。SP6は、処理されたデ
ータをメイン・メモリ6へ戻す。 更にマイクロ命令ワードは、スクラツチ・パツ
ド・ポインタ・フイールド144(第5図のビツ
ト25−32)を含む。アドレス増加器120
は、8MHzで動作するクロツクへ接続されたクロ
ツク入力、スクラツチ・パツド・ポインタ・フイ
ールド144へ接続されたアドレス入力、及び出
力を有する。アドレス増加器120は、マイクロ
命令時間の第1半サイクルで、その出力へスクラ
ツチ・パツド・ポインタ・フイールド144を転
送し、第2半サイクルで、その出力においてスク
ラツチ・パツド・ポインタ・フイールド144を
1の値だけ増加させる。 スクラツチ・パツドSP5は、8MHzクロツクへ
接続されたクロツク入力、アドレス増加器120
の出力へ接続されたアドレス入力線141,
ALU20の出力へ接続されたデータ入力を有す
る。SP5は、マイクロ命令時間の第1半サイク
ルで、スクラツチ・パツド・ポインタ・フイール
ド144に応答して、その中の第1のロケーシヨ
ンへALU20からの第1の結果値を書込む。SP
5は、マイクロ命令時間の第2半サイクルで、増
加されたスクラツチ・パツド・ポインタ・フイー
ルド144に応答して、ALU20から来た第2
の結果値を、その中の第2のロケーシヨンへ書込
む。 アドレス増加器120の出力は、8MHzの速度
でステージ・レジスタ143及び144を通過
し、アドレス値及び制御値は、線141を介して
SP5へ出力される。SP6は、制御ユニツト2へ
接続され、SP5と同じように動作する。 ALU20に関して言えば、SP3は、その出力
をマルチプレクサ139及び位取り装置22を介
して送ることにより、そのデータ出力をALU2
0の第1の入力へ選択的に接続させることができ
る。同様に、SP3からのデータ出力は、マイク
ロ命令時間の交互の半サイクルに、ALU20の
第1及び第2の入力へ選択的に接続されることが
できる。マイクロ命令時間の第1の半サイクル
で、スクラツチ・パツド・ポインタ・フイールド
122に応答してSP3の第1のロケーシヨンか
ら第1のデータ・ワードが読出されて、ALU2
0の第1の入力へ出力されることができる。SP
3は、マイクロ命令時間の第2の半サイクルで、
スクラツチ・パツド・ポインタ・フイールド12
4に応答して、その中の第2のロケーシヨンから
第2のデータ・ワードを読出し、かつそれを
ALU20の第2入力へ出力することができる。 代替的動作モードにおいて、SP3は、マイク
ロ命令時間の第1半サイクルで、第1のデータ・
ワードを、マルチプレクサ139及び位取り装置
22を介してALU20の第1入力へ出力するこ
とができ、SP4は、マイクロ命令時間の第2半
サイクルで、第2のデータ・ワードをALU20
の第2入力へ出力することができる。SP3は、
マイクロ命令時間の第1の半サイクルで、スクラ
ツチ・パツド・ポインタ・フイールド122に応
答して、その中の第1のロケーシヨンから第1の
データ・ワードを読出し、それをALU20の第
1の入力へ出力する。SP4は、マイクロ命令時
間の第2の半サイクルで、スクラツチ・パツド・
ポインタ・フイールド124に応答して、その中
にある第2のロケーシヨンから第2のデータ・ワ
ードを読出し、それをALU20の第2入力へ出
力する。 制御ユニツトの動作の詳細な説明 演算/メモリ・ユニツト4が簡単な演算動作を
実行している間、制御ユニツト2がループを実行
する動作を説明する。表2は、ループを実行する
一連のマイクロ命令を示し、そのループの間に第
13図のタイミング図に示された演算動作が実行
される。
【表】
表2において、ページ・フイールド154は第
5図のビツト17−20に対応し、状況制御フイ
ールド230は第5図のビツト13−16に対応
し、ブランチ・スタツク・ポインタ・フイールド
156はビツド8−11に対応し、ブランチ制御
フイールド232はビツト4−7に対応し、メイ
ン・メモリ・ポインタ145フイールドはビツト
117−120に対応し、SPポインタ・フイー
ルド162はビツト96−99に対応し、SPポ
インタ・フイールド164はビツト105−10
8に対応し、制御フイールド170はビツト10
1−103に対応し、係数メモリ・ポインタ・フ
イールド160はビツト80−83に対応し、
SC/RNDフイールド168はビツト21−3
5,53−57,75−79に対応し、SPポイ
ンタ・フイールド122はビツト64−67に対
応し、制御フイールド124はビツト71−74
に対応し、SPポインタ・フイールド123はビ
ツト42−45に対応し、制御フイールド125
はビツト49−52に対応する。 表2は一連のマイクロ命令ワードを示す。これ
らのワードは、プログラム・カウンタの番号41
−49,60−61によりラベルを付されてい
る。マイクロ命令41は、マイクロ命令42−4
8から構成されるループを初期化する。マイクロ
命令41は、「3」のページ番号、「2」のブラン
チ・ポインタ、「ループ初期化」のブランチ制御
情報を有している。このブランチ制御情報は、初
期ループ・カウント・スタツク212(第15
図)のページ3に記憶された初期ループ・カウン
ト値(ポインタ値2)を、現ループ・カウント・
スタツク214の対応するアドレスへ転送させ
る。プログラム・カウンタ208は1だけ増加さ
れ、従つてプログラム・カウント「42」はループ
の始めにマイクロ命令42をアドレスする。 ここで、ループが或る期間動作しており、従つ
て演算/メモリ・ユニツト4における演算パイプ
ラインは、完全に満たされ動作しているものと仮
定する。マイクロ命令42−46は、同一のペー
ジ番号3を使用し、かつブランチ制御フイールド
232の中にある継続命令を使用する。この継続
命令は、各ステツプで、プログラム・カウンタ2
08を1だけ増加させる。 第13図のタイミング図でわかるように、マイ
クロ命令42は、演算/メモリ・ユニツト4のた
めに次のオペランドをアクセスするため、メイ
ン・メモリ(MM)6に対してアドレス発生を生
じさせる値を、メイン・メモリ・ポインタ・フイ
ールド145の中に含む。第13図及び表2に示
されるように、マイクロ命令43はSPポイン
タ・フイールド164の中に、メイン・メモリ6
からアクセスされたオペランドが書込まれるべき
SP0のロケーシヨンを示すポインタ値を含む。
更にマイクロ命令43の時、乗算器12へ入力さ
れる係数についてアドレス発生を行うため、係数
メモリ・ポインタ・フイールド160にエントリ
イが存在する。次のマイクロ命令44において、
SPポインタ・フイールド162には、マイクロ
命令時間SC1の間にALU10へ読出されるべき
オペランドのSP0におけるアドレスを示すエン
トリイが存在する。更に制御フイールド170に
は、マイクロ命令時間SC1の間にSP0からのオ
ペランドを加算すべきことを加算器へ命ずるエン
トリイが存在する。ALU10からの合計は乗算
器12へ出力され、マイクロ命令時間の第2半分
SC2の間で利用可能となる。従つて乗算器12
は、第13図に示されるように、マイクロ命令時
間の第2半分SC2と続くマイクロ命令時間の第
1半分SC1の間に、その乗算を実行することが
できる。 次のマイクロ命令45の間に、マイクロ命令時
間の第2半分で、位取り動作が位取り装置22の
中で実行される。位取り動作は、マイクロ命令4
5のフイールド168によつて制御される。 マイクロ命令46では、マイクロ命令時間の第
1半分SC1の間に第1のスクラツチ・パツド及
びALU20の動作が実行され、マイクロ命令時
間の第2半分SC2の間に第2のスクラツチ・パ
ツド及びALU20の動作が実行される。SPポイ
ンタ・フイールド122は、マイクロ命令時間の
最初の半分でSP3の指定されたロケーシヨンか
らALU20へオペランドを転送させるためのエ
ントリイを有し、制御フイールド124は、マイ
クロ命令時間の最初の半分で指定された加算器動
作を実行させるためのエントリイを有する。次
に、マイクロ命令時間の第2半分の間に、SPポ
インタ・フイールド123はSP3からALU20
へオペランドを転送するためのエントリイを有
し、制御フイールド125は、マイクロ命令時間
の第2半分の間にオペランドの加算を制御するエ
ントリイを有する。フイールド168は、マイク
ロ命令時間の第2半分の間に位取り動作を制御す
るエントリイを有する。 マイクロ命令47のブランチ制御フイールド2
32は、ループ・カウント減少命令を含む。この
命令は、マイクロプログラム・シーケンサ38の
ループ制御論理210をして、現ループ・カウン
ト・スタツク214からアクセスされたループ・
カウント値を1だけ減少させ、この減少値でスタ
ツク214の上記ループ・カウント値と置換す
る。更に、マイクロ命令47は、メイン・メモ
リ・ポインタ・フイールド145に、メイン・メ
モリのためにアドレス発生動作を開始させるエン
トリイを含む。それは、演算パイプライン動作の
結果を記憶させるためのものである。更に、マイ
クロ命令47は、フイールド168にエントリイ
を含む。このエントリイは、丸め装置26をし
て、演算パイプライン(演算/メモリ・ユニツト
4)における演算動作の結果について所望の丸め
動作を実行させる。 マイクロ命令48は、ブランチ制御フイールド
232にエントリイを含む。このエントリイは、
ループ・カウント関数のブランチに対する命令で
ある。ブランチ・スタツク・ポインタ156は、
カウント関数ブランチ・スタツク218の関数と
して、ページ3のロケーシヨンに対するブラン
チ・ポインタ値を含む。スタツク218は、現在
動作されつつあるループの先頭のためにマイクロ
命令アドレス42を含む。カウント関数ブランチ
(BFCU)命令は、スタツク218をして、値4
2をプログラム・カウンタ208へ出力させる。
デコード論理206は、プログラム・カウンタ2
08をして、値42をPCの新しい値として、マ
イクロプログラム記憶装置39へ通過させるが、
それはデコード論理206が、第15図のゼロ検
出器228からゼロ検出信号を検出しなかつた時
に限られる。もし検出しておれば、ループ・カウ
ントがゼロへ減少しており、ループ動作が完了し
たことを示す。もしデコード論理206がゼロ検
出器228からのゼロ検出信号を検出すると、そ
れは、プログラム・カウンタ208へ、現在のプ
ログラム・カウント(PC)値48が1だけ増加
されるべきであり、新しいPC値49が、マイク
ロプログラム記憶装置39から次の命令をアクセ
スするためのアドレスとして使用されるべきこと
を知らせる。これによつて、プログラムは現在の
ループから脱出する。 表2のマイクロ命令49は、ブランチ制御フイ
ールド232に、条件付きブランチ命令CBS0
のエントリイを含む。これは、指定された条件が
満足されているかどうかを決定するため、条件ビ
ツト・レジスタ234がデコード論理206によ
つてテストされることを要求する。もし条件が満
足されていれば、マイクロ命令49の状況制御フ
イールド230にあるエントリイは、ブランチ・
アドレス・スタツク216のブランチ・スタツ
ク・ポインタ・フイールド156で指定されたロ
ケーシヨンへのブランチ動作を指定する。これは
スタツク216からの条件付きブランチ・アドレ
スのアクセスを生じる。このブランチ・アドレス
は、プログラム・カウントの新しい値として、プ
ログラム・カウンタ208へ出力される。この値
はプログラム・カウンタ208を通過し、マイク
ロプログラム記憶装置39へアドレス入力として
印加される。例として、ブランチ・アドレス・ス
タツク216からアクセスされた新しいPC値は、
命令番号60とする。マイクロ命令60は、新し
いページ番号5を有するとともに、そのブランチ
制御フイールド232に継続命令を有する。以上
の説明によつて、1つのプログラム・サブルーチ
ンから他のプログラム・サブルーチンへ、容易に
かつ柔軟性をもつて変更がなされ得ることがわか
る。 無条件ブランチ動作及び条件付きブランチ動作 第24図は無条件ブランチ及び条件付きブラン
チの制御を示す。一連のマイクロ命令10及び1
1が無条件ブランチによつて一連のマイクロ命令
30−34へ行き、そこで条件付きブランチが実
行されて、一連の命令40−44へ行き、更に条
件付きブランチによつて命令12へ行くものと仮
定する。第24図に示されるように、マイクロ命
令10は、ブランチ制御フイールド232に継続
命令を含む。これは、プログラム・カウンタ20
8をして、現在のプログラム・カウント(PC)
値を1だけ増加させ、その値を次のマイクロ命令
アドレスとして印加する。新しいPC値11はマ
イクロ命令11にアクセスするが、マイクロ命令
11は、ブランチ制御フイールド232に無条件
ブランチ(UB)命令を含む。ブランチ・アドレ
ス・スタツク216は、マイクロ命令11によつ
て指定されたページ番号及びブランチ・スタツ
ク・ポインタ番号アドレスでアクセスされる。ス
タツク216からアクセスされた無条件ブラン
チ・アドレスは、新しいPC値であり、これを3
0と仮定する。この値30は、プログラム・カウ
ンタ208を通り、新しいアドレスとしてマイク
ロプログラム記憶装置39へ印加される。 新しいシーケンスのマイクロ命令30−34へ
ブランチすると、マイクロ命令30はブランチ制
御フイールド232に継続命令を含む。この命令
は、プログラム・カウンタ208をして、PC値
を1だけ増加させ、PC値31を生じる。次のマ
イクロ命令31は、ブランチ制御フイールド23
2に継続命令を含み、プログラム・カウンタ20
8をして、PC値を1だけ増加させ、PC値32を
生じる。状況制御フイールド230は、条件ビツ
ト・レジスタCo234をゼロへセツトさせる命
令を含む。マイクロ命令32は、ブランチ制御フ
イールド232に、条件付きブランチ命令CBS
0を含む。これは、デコード論理206をして条
件ビツト・レジスタ234の状態を検査せしめ、
もし条件ビツトが1であれば、ブランチ・スタツ
ク・ポインタ・フイールド156で指定されたロ
ケーシヨンへブランチさせる。条件ビツトはゼロ
へセツトされているから、条件は満足されず、プ
ログラム・カウンタ208は、デコード論理20
6によつてPC値を1だけ増加するよう命令され、
値33を生じる。 マイクロ命令33はブランチ制御フイールド2
32に継続命令を含む。これは、プログラム・カ
ウンタ208をして、PC値を1だけ増加させ、
値34を生じる。このマイクロ命令時間中、状況
制御フイールド230は、条件ビツト・レジスタ
234を1へセツトさせる命令を含む。次のマイ
クロ命令34は、レジスタ234の状態をテスト
する条件付きブランチ命令CBS0である。今や
条件ビツトは1であるから、デコード論理206
は、ブランチ・アドレス・スタツク216をし
て、マイクロ命令34の中で指定されたページ番
号及でブランチ・スタツク・ポインタ番号のとこ
ろに記憶されたアドレス値を、新しいPC値とし
て出力させる。デコード論理206は、プログラ
ム・カウンタ208をして、この新しいPC値
(40であると仮定する)を、マイクロプログラ
ム記憶装置39への新しいアドレス入力として通
過させる。条件ビツトのセツトは、第24図のマ
イクロ命令31及び33で示されるように、状況
制御フイールド230からの命令によつて明示的
に実行されることができる。 同じようにして、マイクロ命令40−44の動
作が実行される。マイクロ命令40及び41は継
続を要求する。マイクロ命令42の間に、状況制
御フイールド230は、ALU20の符号に基い
て条件ビツトをセツトするよう要求する。その時
間におけるALU符号値が正であるものと仮定す
ると、条件ビツト・レジスタ234はゼロへセツ
トされる。マイクロ命令42の間、条件付きブラ
ンチ命令CBS0は条件ビツトのテストを行う。
条件ビツトはゼロであるから、ブランチはとられ
ず、PC値は1だけ増加されて、値43を生じる。 マイクロ命令43の間、状況制御フイールド2
30は、条件ビツトをALU20の符号値へセツ
トするよう求める。符号値は負であると仮定する
と、条件ビツトは1へセツトされる。マイクロ命
令44は、ブランチ制御フイールド232に条件
付きブランチ命令CBS0を含む。これは条件ビ
ツトのテストを要求する。今や条件ビツトは1で
あるから、ブランチ・アドレス・スタツク216
はマイクロ命令44に含まれるページ番号及びブ
ランチ・スタツク・ポインタ番号に基いてアクセ
スされ、アドレス値が新しいPC値(12である
と仮定する)として出力される。値12は、プロ
グラム・カウンタ208を通つて、次のマイクロ
命令に対する新しいマイクロ命令アドレスとし
て、マイクロプログラム記憶装置39のアドレス
入力へ送られる。以上の説明によつて、1つのプ
ログラム・サブルーチンから他のプログラム・サ
ブルーチンへの変化が、容易にかつ柔軟性をもつ
てなされ得ることがわかる。 ブランチ・アンド・リンク動作 第23図を参照して、ブランチ・アンド・リン
ク動作を説明する。マイクロ命令50及び51で
始まる一連の命令は、マイクロ命令70−79へ
ブランチ及びリンク動作を行い、リターン命令
は、マイクロ命令79でプログラムをマイクロ命
令52以下のシーケンスへ戻す。マイクロ命令5
0は、ブランチ制御フイールド232に継続命令
を含み、これは次のPC値を51にする。マイク
ロ命令51はブランチ制御フイールド232にブ
ランチ・アンド・リンク(BAL)命令を含み、
これは51のPC値を1だけ増加して52の値に
する。この値は、デコード論理206の制御の下
に、プログラム・カウンタ208によつて、ブラ
ンチ・アンド・リンク・アドレス記憶装置220
の入力へ転送される。52の値は、記憶装置22
0のモジユロNカウンタ222によつてアドレス
されたロケーシヨンに記憶される。次にデコード
論理206は、記憶装置220における次の記憶
動作のために、モジユロNカウンタ222を制御
して、そのアドレス値を1だけ増加する。記憶装
置220における記憶ロケーシヨンの数を16とす
れば、N=16であり、モジユロNカウンタ222
はモジユロ16カウンタである。マイクロ命令5
1にあるブランチ・アンド・リンク命令は、デコ
ード論理206をして、ブランチ・アドレス・ス
タツク216へ信号を発生せしめて、マイクロ命
令51のページ値及びブランチ・スタツク・ポイ
ンタ値によつて指定されたロケーシヨンへアクセ
スさせる。そのようにしてアクセスされたアドレ
ス値が70であると仮定すると、その値は、PC
の新しい値としてプログラム・カウンタ208へ
出力される。次に70の値は、プログラム・カウ
ンタ208を介して、マイクロプログラム記憶装
置39のアドレス入力へ、ブランチが生じたマイ
クロ命令のアドレスとして送られる。第23図に
おいて、マイクロ命令79がアクセスされるま
で、マイクロ命令70及び78がブランチ制御フ
イールド232に継続命令を有していることを示
している。 マイクロ命令79はブランチ制御フイールド2
32にリターン命令を含む。これは、デコード論
理206をして、モジユロNカウンタ222を減
少せしめ、かつその減少した値をブランチ・アン
ド・リンク・アドレス記憶装置220へ印加せし
める。次に記憶装置220は、前に記憶された5
2の値を新しいPC値としてプログラム・カウン
タ208へ出力するよう制御される。次にプログ
ラム・カウンタ208は、52の値をプログラム
のリターン・アドレスとして、マイクロプログラ
ム記憶装置39のアドレス入力へ送るように、デ
コード論理206によつて制御される。次に、プ
ログラムはマイクロ命令52,53というように
継続する。 かくて、制御スタツク、メモリ・ポインタ・ス
タツクのために共通のページ値をマイクロ命令に
よつて指定し、かつマイクロ命令の中にブランチ
動作命令、記憶装置アクセス命令、及び演算動作
命令を含ませることによつて、制御の統一性が得
られ、その結果、ループ及びブランチ制御動作
と、記憶装置アクセス動作と、パイプライン式演
算動作との緊密に結合された制御が達成され、処
理タスクの変化に対して、即時のかつ柔軟性ある
応答が得られることがわかる。
5図のビツト17−20に対応し、状況制御フイ
ールド230は第5図のビツト13−16に対応
し、ブランチ・スタツク・ポインタ・フイールド
156はビツド8−11に対応し、ブランチ制御
フイールド232はビツト4−7に対応し、メイ
ン・メモリ・ポインタ145フイールドはビツト
117−120に対応し、SPポインタ・フイー
ルド162はビツト96−99に対応し、SPポ
インタ・フイールド164はビツト105−10
8に対応し、制御フイールド170はビツト10
1−103に対応し、係数メモリ・ポインタ・フ
イールド160はビツト80−83に対応し、
SC/RNDフイールド168はビツト21−3
5,53−57,75−79に対応し、SPポイ
ンタ・フイールド122はビツト64−67に対
応し、制御フイールド124はビツト71−74
に対応し、SPポインタ・フイールド123はビ
ツト42−45に対応し、制御フイールド125
はビツト49−52に対応する。 表2は一連のマイクロ命令ワードを示す。これ
らのワードは、プログラム・カウンタの番号41
−49,60−61によりラベルを付されてい
る。マイクロ命令41は、マイクロ命令42−4
8から構成されるループを初期化する。マイクロ
命令41は、「3」のページ番号、「2」のブラン
チ・ポインタ、「ループ初期化」のブランチ制御
情報を有している。このブランチ制御情報は、初
期ループ・カウント・スタツク212(第15
図)のページ3に記憶された初期ループ・カウン
ト値(ポインタ値2)を、現ループ・カウント・
スタツク214の対応するアドレスへ転送させ
る。プログラム・カウンタ208は1だけ増加さ
れ、従つてプログラム・カウント「42」はループ
の始めにマイクロ命令42をアドレスする。 ここで、ループが或る期間動作しており、従つ
て演算/メモリ・ユニツト4における演算パイプ
ラインは、完全に満たされ動作しているものと仮
定する。マイクロ命令42−46は、同一のペー
ジ番号3を使用し、かつブランチ制御フイールド
232の中にある継続命令を使用する。この継続
命令は、各ステツプで、プログラム・カウンタ2
08を1だけ増加させる。 第13図のタイミング図でわかるように、マイ
クロ命令42は、演算/メモリ・ユニツト4のた
めに次のオペランドをアクセスするため、メイ
ン・メモリ(MM)6に対してアドレス発生を生
じさせる値を、メイン・メモリ・ポインタ・フイ
ールド145の中に含む。第13図及び表2に示
されるように、マイクロ命令43はSPポイン
タ・フイールド164の中に、メイン・メモリ6
からアクセスされたオペランドが書込まれるべき
SP0のロケーシヨンを示すポインタ値を含む。
更にマイクロ命令43の時、乗算器12へ入力さ
れる係数についてアドレス発生を行うため、係数
メモリ・ポインタ・フイールド160にエントリ
イが存在する。次のマイクロ命令44において、
SPポインタ・フイールド162には、マイクロ
命令時間SC1の間にALU10へ読出されるべき
オペランドのSP0におけるアドレスを示すエン
トリイが存在する。更に制御フイールド170に
は、マイクロ命令時間SC1の間にSP0からのオ
ペランドを加算すべきことを加算器へ命ずるエン
トリイが存在する。ALU10からの合計は乗算
器12へ出力され、マイクロ命令時間の第2半分
SC2の間で利用可能となる。従つて乗算器12
は、第13図に示されるように、マイクロ命令時
間の第2半分SC2と続くマイクロ命令時間の第
1半分SC1の間に、その乗算を実行することが
できる。 次のマイクロ命令45の間に、マイクロ命令時
間の第2半分で、位取り動作が位取り装置22の
中で実行される。位取り動作は、マイクロ命令4
5のフイールド168によつて制御される。 マイクロ命令46では、マイクロ命令時間の第
1半分SC1の間に第1のスクラツチ・パツド及
びALU20の動作が実行され、マイクロ命令時
間の第2半分SC2の間に第2のスクラツチ・パ
ツド及びALU20の動作が実行される。SPポイ
ンタ・フイールド122は、マイクロ命令時間の
最初の半分でSP3の指定されたロケーシヨンか
らALU20へオペランドを転送させるためのエ
ントリイを有し、制御フイールド124は、マイ
クロ命令時間の最初の半分で指定された加算器動
作を実行させるためのエントリイを有する。次
に、マイクロ命令時間の第2半分の間に、SPポ
インタ・フイールド123はSP3からALU20
へオペランドを転送するためのエントリイを有
し、制御フイールド125は、マイクロ命令時間
の第2半分の間にオペランドの加算を制御するエ
ントリイを有する。フイールド168は、マイク
ロ命令時間の第2半分の間に位取り動作を制御す
るエントリイを有する。 マイクロ命令47のブランチ制御フイールド2
32は、ループ・カウント減少命令を含む。この
命令は、マイクロプログラム・シーケンサ38の
ループ制御論理210をして、現ループ・カウン
ト・スタツク214からアクセスされたループ・
カウント値を1だけ減少させ、この減少値でスタ
ツク214の上記ループ・カウント値と置換す
る。更に、マイクロ命令47は、メイン・メモ
リ・ポインタ・フイールド145に、メイン・メ
モリのためにアドレス発生動作を開始させるエン
トリイを含む。それは、演算パイプライン動作の
結果を記憶させるためのものである。更に、マイ
クロ命令47は、フイールド168にエントリイ
を含む。このエントリイは、丸め装置26をし
て、演算パイプライン(演算/メモリ・ユニツト
4)における演算動作の結果について所望の丸め
動作を実行させる。 マイクロ命令48は、ブランチ制御フイールド
232にエントリイを含む。このエントリイは、
ループ・カウント関数のブランチに対する命令で
ある。ブランチ・スタツク・ポインタ156は、
カウント関数ブランチ・スタツク218の関数と
して、ページ3のロケーシヨンに対するブラン
チ・ポインタ値を含む。スタツク218は、現在
動作されつつあるループの先頭のためにマイクロ
命令アドレス42を含む。カウント関数ブランチ
(BFCU)命令は、スタツク218をして、値4
2をプログラム・カウンタ208へ出力させる。
デコード論理206は、プログラム・カウンタ2
08をして、値42をPCの新しい値として、マ
イクロプログラム記憶装置39へ通過させるが、
それはデコード論理206が、第15図のゼロ検
出器228からゼロ検出信号を検出しなかつた時
に限られる。もし検出しておれば、ループ・カウ
ントがゼロへ減少しており、ループ動作が完了し
たことを示す。もしデコード論理206がゼロ検
出器228からのゼロ検出信号を検出すると、そ
れは、プログラム・カウンタ208へ、現在のプ
ログラム・カウント(PC)値48が1だけ増加
されるべきであり、新しいPC値49が、マイク
ロプログラム記憶装置39から次の命令をアクセ
スするためのアドレスとして使用されるべきこと
を知らせる。これによつて、プログラムは現在の
ループから脱出する。 表2のマイクロ命令49は、ブランチ制御フイ
ールド232に、条件付きブランチ命令CBS0
のエントリイを含む。これは、指定された条件が
満足されているかどうかを決定するため、条件ビ
ツト・レジスタ234がデコード論理206によ
つてテストされることを要求する。もし条件が満
足されていれば、マイクロ命令49の状況制御フ
イールド230にあるエントリイは、ブランチ・
アドレス・スタツク216のブランチ・スタツ
ク・ポインタ・フイールド156で指定されたロ
ケーシヨンへのブランチ動作を指定する。これは
スタツク216からの条件付きブランチ・アドレ
スのアクセスを生じる。このブランチ・アドレス
は、プログラム・カウントの新しい値として、プ
ログラム・カウンタ208へ出力される。この値
はプログラム・カウンタ208を通過し、マイク
ロプログラム記憶装置39へアドレス入力として
印加される。例として、ブランチ・アドレス・ス
タツク216からアクセスされた新しいPC値は、
命令番号60とする。マイクロ命令60は、新し
いページ番号5を有するとともに、そのブランチ
制御フイールド232に継続命令を有する。以上
の説明によつて、1つのプログラム・サブルーチ
ンから他のプログラム・サブルーチンへ、容易に
かつ柔軟性をもつて変更がなされ得ることがわか
る。 無条件ブランチ動作及び条件付きブランチ動作 第24図は無条件ブランチ及び条件付きブラン
チの制御を示す。一連のマイクロ命令10及び1
1が無条件ブランチによつて一連のマイクロ命令
30−34へ行き、そこで条件付きブランチが実
行されて、一連の命令40−44へ行き、更に条
件付きブランチによつて命令12へ行くものと仮
定する。第24図に示されるように、マイクロ命
令10は、ブランチ制御フイールド232に継続
命令を含む。これは、プログラム・カウンタ20
8をして、現在のプログラム・カウント(PC)
値を1だけ増加させ、その値を次のマイクロ命令
アドレスとして印加する。新しいPC値11はマ
イクロ命令11にアクセスするが、マイクロ命令
11は、ブランチ制御フイールド232に無条件
ブランチ(UB)命令を含む。ブランチ・アドレ
ス・スタツク216は、マイクロ命令11によつ
て指定されたページ番号及びブランチ・スタツ
ク・ポインタ番号アドレスでアクセスされる。ス
タツク216からアクセスされた無条件ブラン
チ・アドレスは、新しいPC値であり、これを3
0と仮定する。この値30は、プログラム・カウ
ンタ208を通り、新しいアドレスとしてマイク
ロプログラム記憶装置39へ印加される。 新しいシーケンスのマイクロ命令30−34へ
ブランチすると、マイクロ命令30はブランチ制
御フイールド232に継続命令を含む。この命令
は、プログラム・カウンタ208をして、PC値
を1だけ増加させ、PC値31を生じる。次のマ
イクロ命令31は、ブランチ制御フイールド23
2に継続命令を含み、プログラム・カウンタ20
8をして、PC値を1だけ増加させ、PC値32を
生じる。状況制御フイールド230は、条件ビツ
ト・レジスタCo234をゼロへセツトさせる命
令を含む。マイクロ命令32は、ブランチ制御フ
イールド232に、条件付きブランチ命令CBS
0を含む。これは、デコード論理206をして条
件ビツト・レジスタ234の状態を検査せしめ、
もし条件ビツトが1であれば、ブランチ・スタツ
ク・ポインタ・フイールド156で指定されたロ
ケーシヨンへブランチさせる。条件ビツトはゼロ
へセツトされているから、条件は満足されず、プ
ログラム・カウンタ208は、デコード論理20
6によつてPC値を1だけ増加するよう命令され、
値33を生じる。 マイクロ命令33はブランチ制御フイールド2
32に継続命令を含む。これは、プログラム・カ
ウンタ208をして、PC値を1だけ増加させ、
値34を生じる。このマイクロ命令時間中、状況
制御フイールド230は、条件ビツト・レジスタ
234を1へセツトさせる命令を含む。次のマイ
クロ命令34は、レジスタ234の状態をテスト
する条件付きブランチ命令CBS0である。今や
条件ビツトは1であるから、デコード論理206
は、ブランチ・アドレス・スタツク216をし
て、マイクロ命令34の中で指定されたページ番
号及でブランチ・スタツク・ポインタ番号のとこ
ろに記憶されたアドレス値を、新しいPC値とし
て出力させる。デコード論理206は、プログラ
ム・カウンタ208をして、この新しいPC値
(40であると仮定する)を、マイクロプログラ
ム記憶装置39への新しいアドレス入力として通
過させる。条件ビツトのセツトは、第24図のマ
イクロ命令31及び33で示されるように、状況
制御フイールド230からの命令によつて明示的
に実行されることができる。 同じようにして、マイクロ命令40−44の動
作が実行される。マイクロ命令40及び41は継
続を要求する。マイクロ命令42の間に、状況制
御フイールド230は、ALU20の符号に基い
て条件ビツトをセツトするよう要求する。その時
間におけるALU符号値が正であるものと仮定す
ると、条件ビツト・レジスタ234はゼロへセツ
トされる。マイクロ命令42の間、条件付きブラ
ンチ命令CBS0は条件ビツトのテストを行う。
条件ビツトはゼロであるから、ブランチはとられ
ず、PC値は1だけ増加されて、値43を生じる。 マイクロ命令43の間、状況制御フイールド2
30は、条件ビツトをALU20の符号値へセツ
トするよう求める。符号値は負であると仮定する
と、条件ビツトは1へセツトされる。マイクロ命
令44は、ブランチ制御フイールド232に条件
付きブランチ命令CBS0を含む。これは条件ビ
ツトのテストを要求する。今や条件ビツトは1で
あるから、ブランチ・アドレス・スタツク216
はマイクロ命令44に含まれるページ番号及びブ
ランチ・スタツク・ポインタ番号に基いてアクセ
スされ、アドレス値が新しいPC値(12である
と仮定する)として出力される。値12は、プロ
グラム・カウンタ208を通つて、次のマイクロ
命令に対する新しいマイクロ命令アドレスとし
て、マイクロプログラム記憶装置39のアドレス
入力へ送られる。以上の説明によつて、1つのプ
ログラム・サブルーチンから他のプログラム・サ
ブルーチンへの変化が、容易にかつ柔軟性をもつ
てなされ得ることがわかる。 ブランチ・アンド・リンク動作 第23図を参照して、ブランチ・アンド・リン
ク動作を説明する。マイクロ命令50及び51で
始まる一連の命令は、マイクロ命令70−79へ
ブランチ及びリンク動作を行い、リターン命令
は、マイクロ命令79でプログラムをマイクロ命
令52以下のシーケンスへ戻す。マイクロ命令5
0は、ブランチ制御フイールド232に継続命令
を含み、これは次のPC値を51にする。マイク
ロ命令51はブランチ制御フイールド232にブ
ランチ・アンド・リンク(BAL)命令を含み、
これは51のPC値を1だけ増加して52の値に
する。この値は、デコード論理206の制御の下
に、プログラム・カウンタ208によつて、ブラ
ンチ・アンド・リンク・アドレス記憶装置220
の入力へ転送される。52の値は、記憶装置22
0のモジユロNカウンタ222によつてアドレス
されたロケーシヨンに記憶される。次にデコード
論理206は、記憶装置220における次の記憶
動作のために、モジユロNカウンタ222を制御
して、そのアドレス値を1だけ増加する。記憶装
置220における記憶ロケーシヨンの数を16とす
れば、N=16であり、モジユロNカウンタ222
はモジユロ16カウンタである。マイクロ命令5
1にあるブランチ・アンド・リンク命令は、デコ
ード論理206をして、ブランチ・アドレス・ス
タツク216へ信号を発生せしめて、マイクロ命
令51のページ値及びブランチ・スタツク・ポイ
ンタ値によつて指定されたロケーシヨンへアクセ
スさせる。そのようにしてアクセスされたアドレ
ス値が70であると仮定すると、その値は、PC
の新しい値としてプログラム・カウンタ208へ
出力される。次に70の値は、プログラム・カウ
ンタ208を介して、マイクロプログラム記憶装
置39のアドレス入力へ、ブランチが生じたマイ
クロ命令のアドレスとして送られる。第23図に
おいて、マイクロ命令79がアクセスされるま
で、マイクロ命令70及び78がブランチ制御フ
イールド232に継続命令を有していることを示
している。 マイクロ命令79はブランチ制御フイールド2
32にリターン命令を含む。これは、デコード論
理206をして、モジユロNカウンタ222を減
少せしめ、かつその減少した値をブランチ・アン
ド・リンク・アドレス記憶装置220へ印加せし
める。次に記憶装置220は、前に記憶された5
2の値を新しいPC値としてプログラム・カウン
タ208へ出力するよう制御される。次にプログ
ラム・カウンタ208は、52の値をプログラム
のリターン・アドレスとして、マイクロプログラ
ム記憶装置39のアドレス入力へ送るように、デ
コード論理206によつて制御される。次に、プ
ログラムはマイクロ命令52,53というように
継続する。 かくて、制御スタツク、メモリ・ポインタ・ス
タツクのために共通のページ値をマイクロ命令に
よつて指定し、かつマイクロ命令の中にブランチ
動作命令、記憶装置アクセス命令、及び演算動作
命令を含ませることによつて、制御の統一性が得
られ、その結果、ループ及びブランチ制御動作
と、記憶装置アクセス動作と、パイプライン式演
算動作との緊密に結合された制御が達成され、処
理タスクの変化に対して、即時のかつ柔軟性ある
応答が得られることがわかる。
第1図は制御ユニツト及び演算/メモリ・ユニ
ツトの機能的ブロツク図、第2図は複数の機能プ
ロセツサ・ユニツトを使用する分散処理システム
のシステム・ブロツク図、第3図は演算/メモ
リ・ユニツトの機能的ブロツク図、第4図はメイ
ン・メモリ・モジユールの相互接続を示す機能的
ブロツク図、第5図はマイクロ命令のフオーマツ
トを示す図、第6図は有限インパルス応答濾波計
算を実行している時の演算/メモリ・ユニツトの
データ・フロー図、第7図は有限インパルス応答
濾波計算に対するスクラツチ・パツド・メモリ・
アドレス増加の実行を示すデータ・フロー図、第
8図はスクラツチ・パツド・モジユール加算器の
機能的ブロツク図、第9図は4点高速フーリエ変
換バターフライ計算を実行している時の演算/メ
モリ・ユニツトのデータ・フロー図、第10図は
時間遅延ビーム形成計算を実行している時の演
算/メモリ・ユニツトのデータ・フロー図、第1
1図はメイン・メモリ構成の機能的ブロツク図、
第12図は回帰バツフア概念を示す略図、第13
図はプロセツサ・タイミングに対するタイミング
図、第14図は機能処理ユニツトの機能ブロツク
図、第15図はマイクロプログラム・シーケンサ
の機能ブロツク図、第16図はマイクロプログラ
ム記憶装置及び係数記憶装置の機能ブロツク図、
第17図は乗算器係数コントローラの機能的ブロ
ツク図、第18図はスクラツチ・パツド・メモ
リ・アドレス選択のための動作図、第19図はメ
イン・メモリ・アドレス発生器の機能ブロツク
図、第20図は制御スタツク、メイン・メモリ・
ポインタ・スタツク、及び係数メモリ・ポイン
タ・スタツクをページ・アドレスによつて統一的
に制御することを示す全体的機能ブロツク図、第
21図は制御ユニツト2の詳細な機能ブロツク
図、第22図はループ制御動作の順次的流れ図、
第23図はブランチ・アンド・リンク動作の順次
的流れ図、第24図は無条件/条件付きブランチ
動作の順次的流れ図である。 2……制御ユニツト、4……演算/メモリ・ユ
ニツト、6……メイン・メモリ、10′,20′…
…加算機能、12……乗算器、14……スタツ
ク、16……スクラツチ・パツド、18……アド
レス発生器、24……係数記憶装置、38……マ
イクロプログラム・シーケンサ、39……マイク
ロプログラム記憶装置、154……ページ・アド
レス・フイールド、156……ブランチ・スタツ
ク・ポインタ・フイールド、122,123,1
44,162,164……スクラツチ・パツド・
ポインタ・フイールド、145……メイン・メモ
リ・ポインタ・フイールド、124,125,1
70……演算エレメント制御フイールド、200
……制御フイールド、202……演算フイール
ド、204……記憶フイールド、206……デコ
ード論理(シーケンス・デコーダ)、208……
プログラム・カウンタ、210……ループ制御論
理(減算器)、212……初期ループ・カウン
ト・スタツク、214……現ループ・カウント・
スタツク、216……ブランチ・アドレス・スタ
ツク、218……カウント関数ブランチ・スタツ
ク、220……ブランチ・アンド・リンク・アド
レス記憶装置、228……ゼロ検出器。
ツトの機能的ブロツク図、第2図は複数の機能プ
ロセツサ・ユニツトを使用する分散処理システム
のシステム・ブロツク図、第3図は演算/メモ
リ・ユニツトの機能的ブロツク図、第4図はメイ
ン・メモリ・モジユールの相互接続を示す機能的
ブロツク図、第5図はマイクロ命令のフオーマツ
トを示す図、第6図は有限インパルス応答濾波計
算を実行している時の演算/メモリ・ユニツトの
データ・フロー図、第7図は有限インパルス応答
濾波計算に対するスクラツチ・パツド・メモリ・
アドレス増加の実行を示すデータ・フロー図、第
8図はスクラツチ・パツド・モジユール加算器の
機能的ブロツク図、第9図は4点高速フーリエ変
換バターフライ計算を実行している時の演算/メ
モリ・ユニツトのデータ・フロー図、第10図は
時間遅延ビーム形成計算を実行している時の演
算/メモリ・ユニツトのデータ・フロー図、第1
1図はメイン・メモリ構成の機能的ブロツク図、
第12図は回帰バツフア概念を示す略図、第13
図はプロセツサ・タイミングに対するタイミング
図、第14図は機能処理ユニツトの機能ブロツク
図、第15図はマイクロプログラム・シーケンサ
の機能ブロツク図、第16図はマイクロプログラ
ム記憶装置及び係数記憶装置の機能ブロツク図、
第17図は乗算器係数コントローラの機能的ブロ
ツク図、第18図はスクラツチ・パツド・メモ
リ・アドレス選択のための動作図、第19図はメ
イン・メモリ・アドレス発生器の機能ブロツク
図、第20図は制御スタツク、メイン・メモリ・
ポインタ・スタツク、及び係数メモリ・ポイン
タ・スタツクをページ・アドレスによつて統一的
に制御することを示す全体的機能ブロツク図、第
21図は制御ユニツト2の詳細な機能ブロツク
図、第22図はループ制御動作の順次的流れ図、
第23図はブランチ・アンド・リンク動作の順次
的流れ図、第24図は無条件/条件付きブランチ
動作の順次的流れ図である。 2……制御ユニツト、4……演算/メモリ・ユ
ニツト、6……メイン・メモリ、10′,20′…
…加算機能、12……乗算器、14……スタツ
ク、16……スクラツチ・パツド、18……アド
レス発生器、24……係数記憶装置、38……マ
イクロプログラム・シーケンサ、39……マイク
ロプログラム記憶装置、154……ページ・アド
レス・フイールド、156……ブランチ・スタツ
ク・ポインタ・フイールド、122,123,1
44,162,164……スクラツチ・パツド・
ポインタ・フイールド、145……メイン・メモ
リ・ポインタ・フイールド、124,125,1
70……演算エレメント制御フイールド、200
……制御フイールド、202……演算フイール
ド、204……記憶フイールド、206……デコ
ード論理(シーケンス・デコーダ)、208……
プログラム・カウンタ、210……ループ制御論
理(減算器)、212……初期ループ・カウン
ト・スタツク、214……現ループ・カウント・
スタツク、216……ブランチ・アドレス・スタ
ツク、218……カウント関数ブランチ・スタツ
ク、220……ブランチ・アンド・リンク・アド
レス記憶装置、228……ゼロ検出器。
Claims (1)
- 【特許請求の範囲】 1 下記の構成要件(イ)乃至(ニ)を具備するコンピユ
ータのための制御装置。 (イ) ページ制御フイールド、マイクロ命令アドレ
ス・スタツク・ポインタ・フイールド、メイ
ン・メモリ・ポインタ・フイールドを含む複数
のマイクロ命令ワードを記憶し、かつアドレス
入力及び上記マイクロ命令ワードの出力を有す
るマイクロ命令記憶装置。 (ロ) 上記マイクロ命令記憶装置へ接続され、所定
の反復速度でクロツク信号を発生して上記マイ
クロ命令記憶装置から上記所定の反復速度で上
記マイクロ命令ワードを出力させるクロツク手
段。それぞれのマイクロ命令ワードは対応する
マイクロ命令時間の間に上記マイクロ命令記憶
装置のアドレス入力へ印加されたアドレスに従
つてアクセスされる。 (ハ) マイクロ命令ワードのアドレスを複数のペー
ジ群に記憶し、かつ上記クロツク手段に接続さ
れたクロツク入力、上記マイクロ命令ワード出
力のページ制御フイールドへ接続されたペー
ジ・アドレス入力、上記マイクロ命令ワード出
力のマイクロ命令アドレス・スタツク・ポイン
タ・フイールドへ接続されたポインタ・アドレ
ス入力、上記マイクロ命令記憶装置のアドレス
入力へ接続された出力を有するマイクロ命令ア
ドレス・スタツク。上記ページ群の各々は上記
ページ・アドレス入力によつてアクセスされ、
各ページ群は上記ポインタ・アドレス入力によ
つてアクセスされる複数のマイクロワード・ア
ドレスを含み、上記マイクロ命令アドレス・ス
タツクは、現在のマイクロ命令ワードの上記ペ
ージ制御フイールド及び上記マイクロ命令アド
レス・スタツク・ポインタ・フイールドに応答
して、上記所定の反復速度で上記マイクロ命令
記憶装置の新しいマイクロ命令ワードにアクセ
スする。 (ニ) メイン・メモリのデータ・アドレスを複数の
ページ群に記憶し、かつ上記クロツク手段に接
続されたクロツク入力、上記マイクロ命令ワー
ド出力の上記ページ制御フイールドへ接続され
たページ・アドレス入力、上記マイクロ命令ワ
ード出力のメイン・メモリ・ポインタ・フイー
ルドへ接続されたポインタ・アドレス入力、及
びメイン・メモリのアドレス入力へ接続された
出力を有するメイン・メモリ・アドレス・スタ
ツク。該メイン・メモリ・アドレス・スタツク
のページ群の各々は上記ページ・アドレス入力
によつてアクセスされ、各ページ群は上記ポイ
ンタ・アドレス入力によつてアクセスされる複
数のメイン・メモリ・データ・アドレスを含
み、かつ上記メイン・メモリ・アドレス・スタ
ツクは、現在のマイクロ命令ワードの上記ペー
ジ制御フイールド及びメイン・メモリ・ポイン
タ・フイールドに応答して、上記所定の反復速
度で、上記メイン・メモリのデータ・ワードに
アクセスする。 2 下記の構成要件(イ)乃至(ヘ)を具備するコンピユ
ータのための制御装置。 (イ) ページ制御フイールド、メイン・メモリ・ポ
インタ・フイールド、第1及び第2のスクラツ
チ・パツド・ポインタ・フイールドを含む複数
のマイクロ命令ワードを記憶し、かつアドレス
入力及び上記マイクロ命令ワードの出力を有す
るマイクロ命令記憶装置。 (ロ) 上記マイクロ命令記憶装置へ接続され、第1
の反復速度でクロツク信号を発生して、上記マ
イクロ命令記憶装置から上記第1の反復速度で
上記マイクロ命令ワードを出力させる第1のク
ロツク手段、それぞれのマイクロ命令ワードは
対応するマイクロ命令時間の間に上記マイクロ
命令記憶装置のアドレス入力へ印加されたアド
レスに従つてアクセスされる。 (ハ) メイン・メモリのデータ・アドレスを複数の
ページ群に記憶し、かつ上記第1クロツク手段
に接続されたクロツク入力、上記マイクロ命令
ワード出力のページ制御フイールドへ接続され
たページ・アドレス入力、上記マイクロ命令ワ
ード出力のメイン・メモリ・ポインタ・フイー
ルドへ接続されたポインタ・アドレス入力、及
びメイン・メモリのアドレス入力へ接続された
出力を有するメイン・メモリ.アドレス・スタ
ツク。該メイン・メモリ・アドレス・スタツク
のページ群の各々は上記ページ・アドレス入力
によつてアクセスされ、各ページ群は上記ポイ
ンタ・アドレス入力によつてアクセスされる複
数のメイン・メモリ・データ・アドレスを含
み、かつ上記メイン・メモリ・アドレス・スタ
ツクは、現在のマイクロ命令ワードの上記ペー
ジ制御フイールド及びメイン・メモリ・ポイン
タ・フイールドに応答して、上記第1の反復速
度で上記メイン・メモリのデータ・ワードにア
クセスする。 (ニ) 上記第1の反復速度の2倍である第2の反復
速度でクロツク信号を発生する第2のクロツク
手段。このクロツク手段は、上記マイクロ命令
時間の前半及び後半を規定する2つのクロツ
ク・パルスを発生する。 (ホ) 上記第2クロツク手段へ接続されたクロツク
入力、上記マイクロ命令ワード出力の上記第1
スクラツチ・パツド・ポインタ・フイールドへ
接続された第1の入力、上記マイクロ命令ワー
ド出力の第2スクラツチ・パツド・ポインタ・
フイールドへ接続された第2の入力、及び出力
を有し、該出力を上記マイクロ命令時間の前半
で上記第1の入力へ接続し、上記マイクロ命令
時間の後半で上記第2の入力へ接続するマルチ
プレクサ。 (ヘ) 上記第2クロツク手段へ接続されたクロツク
入力、上記マルチプレクサの出力へ接続された
アドレス入力、上記メイン・メモリのデータ出
力へ接続されたデータ入力、及び演算エレメン
トの入力へ接続されたデータ出力を有するスク
ラツチ・パツド・メモリ。このスクラツチ・パ
ツド・メモリは、上記マイクロ命令時間の前半
で上記第1のスクラツチ・パツド・ポインタ・
フイールドに応答して、そこからデータ・ワー
ドを読出すとともにそれを上記演算エレメント
へ出力し、上記マイクロ命令時間の後半で上記
第2のスクラツチ・パツド・ポインタ・フイー
ルドに応答してデータ・ワードを書込まれる。 3 下記の構成要件(イ)乃至(ホ)を具備するコンピユ
ータのための制御装置。 (イ) 第1及び第2のスクラツチ・パツド・ポイン
タ・フイールド、及び第1及び第2の演算エレ
メント制御フイールドを含む複数のマイクロ命
令ワードを記憶し、かつアドレス入力及び上記
マイクロ命令ワードの出力を有するマイクロ命
令記憶装置。 (ロ) 上記マイクロ命令記憶装置へ接続され、第1
の反復速度でクロツク信号を発生して上記マイ
クロ命令記憶装置から上記第1の反復速度で上
記マイクロ命令ワードを出力させる第1のクロ
ツク手段。それぞれのマイクロ命令ワードは対
応するマイクロ命令時間の間に上記マイクロ命
令記憶装置のアドレス入力へ印加されたアドレ
スに従つてアクセスされる。 (ハ) 上記第1の反復速度の2倍である第2の反復
速度でクロツク信号を発生する第2のクロツク
手段。このクロツク手段は、上記マイクロ命令
時間の前半及び後半を規定する2つのクロツ
ク・パルスを発生する。 (ニ) 上記第2のクロツク手段へ接続されたクロツ
ク入力、上記マイクロ命令ワード出力の第1の
スクラツチ・パツド・ポインタ・フイールド及
び第1の演算エレメント制御フイールドへそれ
ぞれ接続された第1の入力対、上記マイクロ命
令ワード出力の第2のスクラツチ・パツド・ポ
インタ・フイールド及び第2の演算エレメント
制御フイールドへそれぞれ接続された第2の入
力対、及び1対の出力を有し、該1対の出力
を、上記マイクロ命令時間の前半に上記第1の
入力対へ接続し、上記マイクロ命令時間の後半
に上記第2の入力対へ接続するマルチプレク
サ。 (ホ) 上記第2クロツク手段へ接続されたクロツク
入力、第1及び第2のデータ入力、上記マルチ
プレクサの出力の1つへ接続された制御入力、
及び出力を有し、上記マイクロ命令時間の前半
に上記第1の演算エレメント制御フイールドに
応答しかつ上記マイクロ命令時間の後半に上記
第2の演算エレメント制御フイールドに応答し
て、各マイクロ命令時間に2回結果の値を発生
する演算エレメント。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/328,167 US4450525A (en) | 1981-12-07 | 1981-12-07 | Control unit for a functional processor |
| US328167 | 1981-12-07 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS58103042A JPS58103042A (ja) | 1983-06-18 |
| JPS635775B2 true JPS635775B2 (ja) | 1988-02-05 |
Family
ID=23279799
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57154730A Granted JPS58101345A (ja) | 1981-12-07 | 1982-09-07 | コンピユ−タ制御装置 |
| JP57187672A Granted JPS58103042A (ja) | 1981-12-07 | 1982-10-27 | コンピユ−タ制御装置 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57154730A Granted JPS58101345A (ja) | 1981-12-07 | 1982-09-07 | コンピユ−タ制御装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4450525A (ja) |
| EP (2) | EP0297626A3 (ja) |
| JP (2) | JPS58101345A (ja) |
| DE (1) | DE3280260D1 (ja) |
Families Citing this family (36)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4556938A (en) * | 1982-02-22 | 1985-12-03 | International Business Machines Corp. | Microcode control mechanism utilizing programmable microcode repeat counter |
| US4672532A (en) * | 1982-06-14 | 1987-06-09 | Tektronix, Inc. | Software/hardware integration control system |
| JPS603036A (ja) * | 1983-06-20 | 1985-01-09 | Hitachi Ltd | 処理履歴情報の取得・参照方式 |
| JPS6020242A (ja) * | 1983-07-15 | 1985-02-01 | Sony Corp | プログラム制御回路 |
| US4564901A (en) * | 1983-07-21 | 1986-01-14 | Burroughs Corporation | Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors |
| FR2554936B1 (fr) * | 1983-11-10 | 1986-08-29 | Saulnier Dominique | Systeme d'echange d'informations a etiquettes electroniques |
| FR2559928A1 (fr) * | 1984-02-17 | 1985-08-23 | Pick Systems | Co-processeur microprogramme |
| US4809156A (en) * | 1984-03-19 | 1989-02-28 | Trw Inc. | Address generator circuit |
| US4791551A (en) * | 1985-02-11 | 1988-12-13 | Analog Devices, Inc. | Microprogrammable devices using transparent latch |
| EP0221741A3 (en) * | 1985-11-01 | 1991-01-16 | Advanced Micro Devices, Inc. | Computer microsequencers |
| JPH071498B2 (ja) * | 1985-11-28 | 1995-01-11 | 株式会社日立製作所 | パルス入出力プロセッサ及びそれを用いたマイクロコンピュータ |
| US4841435A (en) * | 1986-10-29 | 1989-06-20 | Saxpy Computer Corporation | Data alignment system for random and block transfers of embedded subarrays of an array onto a system bus |
| US4839801A (en) * | 1986-11-03 | 1989-06-13 | Saxpy Computer Corporation | Architecture for block processing computer system |
| US4872132A (en) * | 1987-03-13 | 1989-10-03 | Zoran Corporation | Method and means for block floating point arithmetic |
| JPS63273101A (ja) * | 1987-04-30 | 1988-11-10 | Fanuc Ltd | プログラマブル・コントロ−ラ |
| US4891754A (en) * | 1987-07-02 | 1990-01-02 | General Datacomm Inc. | Microinstruction sequencer for instructing arithmetic, logical and data move operations in a conditional manner |
| US4926355A (en) * | 1987-07-02 | 1990-05-15 | General Datacomm, Inc. | Digital signal processor architecture with an ALU and a serial processing section operating in parallel |
| US5058007A (en) * | 1987-11-05 | 1991-10-15 | Raytheon Company | Next microinstruction generator in a microprogram control unit |
| US5117498A (en) * | 1988-08-19 | 1992-05-26 | Motorola, Inc. | Processer with flexible return from subroutine |
| US5043879A (en) * | 1989-01-12 | 1991-08-27 | International Business Machines Corporation | PLA microcode controller |
| US5109497A (en) * | 1989-01-27 | 1992-04-28 | Hughes Aircraft Company | Arithmetic element controller for controlling data, control and micro store memories |
| US6253307B1 (en) * | 1989-05-04 | 2001-06-26 | Texas Instruments Incorporated | Data processing device with mask and status bits for selecting a set of status conditions |
| FR2678400B1 (fr) * | 1991-06-27 | 1995-08-04 | Texas Instruments France | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
| US5471626A (en) * | 1992-05-06 | 1995-11-28 | International Business Machines Corporation | Variable stage entry/exit instruction pipeline |
| US5557759A (en) * | 1995-06-07 | 1996-09-17 | International Business Machines Corporation | Video processor with non-stalling interrupt service |
| US6031842A (en) * | 1996-09-11 | 2000-02-29 | Mcdata Corporation | Low latency shared memory switch architecture |
| US6035378A (en) * | 1997-12-16 | 2000-03-07 | Ncr Corporation | Method and apparatus for dynamically monitoring memory page access frequency in a non-uniform memory access computer system |
| US6035377A (en) * | 1997-12-17 | 2000-03-07 | Ncr Corporation | Method and apparatus for determining memory pages having greatest frequency of access in a non-uniform memory access computer system |
| JP3737650B2 (ja) * | 1999-07-09 | 2006-01-18 | 株式会社東芝 | 統合コントローラ及び制御システム |
| EP1250775A2 (en) * | 1999-12-10 | 2002-10-23 | Mosaid Technologies Incorporated | Method and apparatus for longest match address lookup |
| US6707831B1 (en) * | 2000-02-21 | 2004-03-16 | Hewlett-Packard Development Company, L.P. | Mechanism for data forwarding |
| US7966421B2 (en) * | 2000-06-21 | 2011-06-21 | SAtech Group, A.B. Limited Liability Company | Method and apparatus for logically expanding the length of a search key |
| US7417986B1 (en) * | 2001-09-04 | 2008-08-26 | Cisco Technology, Inc. | Shared buffer switch interface |
| GB2425860A (en) * | 2005-05-05 | 2006-11-08 | Advanced Risc Mach Ltd | Multi-dimensional fast fourier transform |
| KR101496340B1 (ko) * | 2008-10-31 | 2015-03-04 | 삼성전자주식회사 | 프로세서 및 메모리 제어 방법 |
| US11764940B2 (en) | 2019-01-10 | 2023-09-19 | Duality Technologies, Inc. | Secure search of secret data in a semi-trusted environment using homomorphic encryption |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB979633A (en) | 1960-04-20 | 1965-01-06 | Nat Res Dev | Improvements in or relating to electronic digital computing machines |
| NL273031A (ja) * | 1960-12-30 | |||
| US3740728A (en) * | 1972-01-19 | 1973-06-19 | Hughes Aircraft Co | Input/output controller |
| IT951233B (it) * | 1972-04-07 | 1973-06-30 | Honeywell Inf Systems | Sistema di comando di un calcola tore mediante microprogrammazione ed estensione dinamica delle fun zioni di controllo ottenuta da reti logiche |
| US3900834A (en) * | 1972-09-05 | 1975-08-19 | Bunker Ramo | Memory update apparatus utilizing chain addressing |
| US4068304A (en) * | 1973-01-02 | 1978-01-10 | International Business Machines Corporation | Storage hierarchy performance monitor |
| US3984817A (en) * | 1973-11-08 | 1976-10-05 | Honeywell Information Systems, Inc. | Data processing system having improved program allocation and search technique |
| US3980992A (en) * | 1974-11-26 | 1976-09-14 | Burroughs Corporation | Multi-microprocessing unit on a single semiconductor chip |
| US3935563A (en) * | 1975-01-24 | 1976-01-27 | The United States Of America As Represented By The Secretary Of The Navy | Computer footprint file |
| US4016543A (en) * | 1975-02-10 | 1977-04-05 | Formation, Inc. | Processor address recall system |
| CA1059639A (en) * | 1975-03-26 | 1979-07-31 | Garvin W. Patterson | Instruction look ahead having prefetch concurrency and pipe line features |
| JPS593790B2 (ja) * | 1975-06-20 | 1984-01-26 | 日本電気株式会社 | Fft エンサンシヨリソウチ |
| US4041461A (en) | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
| JPS5263038A (en) * | 1975-10-01 | 1977-05-25 | Hitachi Ltd | Data processing device |
| DE2555963C2 (de) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Funktionsmodifizierung |
| US4041462A (en) * | 1976-04-30 | 1977-08-09 | International Business Machines Corporation | Data processing system featuring subroutine linkage operations using hardware controlled stacks |
| US4156925A (en) * | 1976-04-30 | 1979-05-29 | International Business Machines Corporation | Overlapped and interleaved control store with address modifiers |
| US4075704A (en) * | 1976-07-02 | 1978-02-21 | Floating Point Systems, Inc. | Floating point data processor for high speech operation |
| US4064554A (en) * | 1976-08-16 | 1977-12-20 | Texas Instruments Incorporated | Microcomputer with code conversion |
| US4115853A (en) * | 1976-12-21 | 1978-09-19 | Allen-Bradley Company | Jump structure for a digital control system |
| US4181934A (en) * | 1976-12-27 | 1980-01-01 | International Business Machines Corporation | Microprocessor architecture with integrated interrupts and cycle steals prioritized channel |
| US4181935A (en) * | 1977-09-02 | 1980-01-01 | Burroughs Corporation | Data processor with improved microprogramming |
| US4138730A (en) * | 1977-11-07 | 1979-02-06 | Communications Satellite Corporation | High speed FFT processor |
| JPS54127653A (en) * | 1978-03-28 | 1979-10-03 | Toshiba Corp | Data processor |
| JPS55500708A (ja) * | 1978-10-06 | 1980-09-25 | ||
| US4245302A (en) * | 1978-10-10 | 1981-01-13 | Magnuson Computer Systems, Inc. | Computer and method for executing target instructions |
| GB2040519B (en) * | 1979-01-03 | 1983-08-17 | Honeywell Inf Systems | Data processing systems |
-
1981
- 1981-12-07 US US06/328,167 patent/US4450525A/en not_active Expired - Lifetime
-
1982
- 1982-08-06 DE DE8282107101T patent/DE3280260D1/de not_active Expired - Lifetime
- 1982-08-06 EP EP88110955A patent/EP0297626A3/en not_active Ceased
- 1982-08-06 EP EP82107101A patent/EP0081034B1/en not_active Expired - Lifetime
- 1982-09-07 JP JP57154730A patent/JPS58101345A/ja active Granted
- 1982-10-27 JP JP57187672A patent/JPS58103042A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| EP0297626A2 (en) | 1989-01-04 |
| JPS58103042A (ja) | 1983-06-18 |
| DE3280260D1 (de) | 1990-11-22 |
| EP0081034A2 (en) | 1983-06-15 |
| JPS635776B2 (ja) | 1988-02-05 |
| JPS58101345A (ja) | 1983-06-16 |
| EP0081034A3 (en) | 1986-10-01 |
| EP0081034B1 (en) | 1990-10-17 |
| EP0297626A3 (en) | 1990-05-09 |
| US4450525A (en) | 1984-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS635775B2 (ja) | ||
| US4594655A (en) | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions | |
| US5175863A (en) | Signal data processing system having independently, simultaneously operable alu and macu | |
| US6839728B2 (en) | Efficient complex multiplication and fast fourier transform (FFT) implementation on the manarray architecture | |
| JP3983857B2 (ja) | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 | |
| US5226171A (en) | Parallel vector processing system for individual and broadcast distribution of operands and control information | |
| US6247036B1 (en) | Processor with reconfigurable arithmetic data path | |
| US5081573A (en) | Parallel processing system | |
| US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
| EP0517429A2 (en) | CPU with integrated multiply/accumulate unit | |
| US20100121899A1 (en) | Methods and apparatus for efficient complex long multiplication and covariance matrix implementation | |
| JPS6125188B2 (ja) | ||
| US4837678A (en) | Instruction sequencer for parallel operation of functional units | |
| CN111047035A (zh) | 神经网络处理器、芯片和电子设备 | |
| KR19980018065A (ko) | 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리 | |
| US6026486A (en) | General purpose processor having a variable bitwidth | |
| US5473557A (en) | Complex arithmetic processor and method | |
| JPS63167967A (ja) | ディジタル信号処理集積回路 | |
| Kratz et al. | A microprogrammed approach to signal processing | |
| JP2701955B2 (ja) | レジスタ論理演算ユニット | |
| Hockney | Classification and evaluation of parallel computer systems | |
| JPS58149555A (ja) | 並列処理装置 | |
| US20060248311A1 (en) | Method and apparatus of dsp resource allocation and use | |
| Swartzlander | VLSI architecture | |
| Catthoor | The effect of the hardware sharing factor on the selection of an architectural style for real-time signal processing |