JPH026090B2 - - Google Patents
Info
- Publication number
- JPH026090B2 JPH026090B2 JP56016780A JP1678081A JPH026090B2 JP H026090 B2 JPH026090 B2 JP H026090B2 JP 56016780 A JP56016780 A JP 56016780A JP 1678081 A JP1678081 A JP 1678081A JP H026090 B2 JPH026090 B2 JP H026090B2
- Authority
- JP
- Japan
- Prior art keywords
- microinstruction
- instruction
- sequencer
- microinstructions
- mis
- 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 - Lifetime
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/261—Microinstruction address formation
-
- 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/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
本発明はデータ処理装置に関するものであり、
更に詳しくいえば、マクロ命令を復号して、実行
装置がそのマクロ命令に符号化されている機能を
エミユレートするために必要なマイクロ命令を発
生するための改良した命令翻訳装置に関するもの
である。 1978年12月21日付の未決の米国特許出願第
971661号(米国特許第4325120)「データ処理装置
(Data Processing System)」には超LSI技術の
最新の成果をフルに利用しているオブジエクト指
向のデータ処理装置アーキテクチヤが開示されて
いる。この米国特許出願にはそのアーキテクチヤ
によりサポートされる種類のデータの広い範囲に
わたつて、一般化された演算を行うことができる
汎用処理装置が記述されている。そのような複雑
なマイクロプロセツサはいくつかの複雑な論理回
路を必要とする。今日の集積回路技術にとつて、
この複雑なマイクロプロセツサは1枚のチツプで
作るには大規模すぎるから、何枚かのチツプに分
割して作らなければならない。この論理回路を分
割する場合にはいくつかの要素を考慮せねばなら
ない。まず、チツプ上における熱発散ができるだ
け一様になるように熱分布について考えねばなら
ない。更に、チツプ間の効果的な交信を最少限の
相互接続数で行わねばならない。最後に、ある特
定の情報の流れを完成するために、チツプ間の帰
還量を最少に抑えたきれいな情報の流れがなけれ
ばならない。その理由は、チツプの境界をこえて
データのやりとりを行うためには時間と電力とを
必要とし、かつバツフアを行わなければならない
からである。したがつて、最適な分割により、あ
る機能を行うのに必要なサイクル数が最少とな
る。前記米国特許出願に開示されているように、
マイクロプロセツサは命令装置と実行装置に分け
てそれぞれ異なるチツプに作られる。それらのチ
ツプの間の通信はチツプ間バスを介して行われ
る。入力/出力装置のような外部装置との通信
は、1978年12月21日付の未決の米国特許出願第
972007号(米国特許第4315308号)「マイクロプロ
セツサ・チツプと周辺サブシステムとのインター
フエイス(Interface Between a
Microprocessor Chip and Peripheral
Subsytem」に詳しく記載されているインターフ
エイスを介して行われる。 以下に述べるのは、マイクロプロセツサを何枚
かの集積回路チツプに分割して作る際に起る問題
を解決する従来の技術のいくつかについての概要
である。 米国特許第3821715号においては、マイクロプ
ロセツサはメモリ・インターフエイスで分割され
て、数枚チツプで作られる。各メモリ・サブシス
テムは複数のメモリ・チツプのうちのどれを中央
処理装置でアドレスするかを決定するための復号
回路を含んでいる。この米国特許は、いくつかの
メモリが別々のチツプに作られて共通のデータバ
スとCPUへ結合されるような種類のシステムを
表わすものである。この米国特許は命令装置と実
行装置のインターフエイスにおいてマイクロプロ
セツサを分割する技術に関するものである。 米国特許第3918030号には機能を反復するため
に命令装置デコーダにおいて分割されるマイクロ
プロセツサが開示されている。このマイクロプロ
セツサにはいくつかの命令デコーダが設けられて
おり、各デコーダはただ1つの命令だけに応答す
る独立したパツケージを有する。この米国特許命
令装置内の命令デコーダが全ての命令を受け、そ
れに従つてそれらの命令を復号することによりパ
イプライン方式によるアーキテクチヤを構成する
類の異なる手法に関するものである。 米国特許第3984813号にはメモリとCPUをそれ
ぞれ異なるチツプで形成するようにしてマイクロ
プロセツサを分割する技術が開示されている。
CPUチツプにはCPUの標準的な構成素子が含ま
れているが、プログラム・カウンタは含まれてい
ない。別のチツプに設けられている専用プログラ
ム・カウンタは、CPUの動作と同期して駆動さ
れて、そのプログラム・カウンタを制御する適切
な制御信号がCPUからプログラム・カウンタへ
送られるようになつている。しかし、この米国特
許には、1枚のチツプに作るには大規模すぎる
CPUを最適に分割する、前記米国特許出願第
971661号に開示されている技術のような技術は開
示されていない。 最後に、米国特許第4057846号にはパイプライ
ン方式のマイクロプロセツサが開示されている。
しかし、この米国特許には、マイクロプロセツサ
を2枚のチツプに分割するのにパイプライン技術
をどのように利用するかについては開示されてい
ない。 本発明の目的はマクロ命令を受けるため、およ
び実行装置が利用する一連のマイクロ命令を発生
するために、前記実行装置が作られているチツプ
とは異なるチツプに作られる命令装置を得ること
である。 本発明の別の目的は、1つのマクロ命令のため
のマイクロ命令シーケンスを発生でき、その間に
次のマクロ命令のフイールドの復号と翻訳を行う
ことができる命令装置を得ることである。 本発明の更に別の目的は可変ビツト長命令を処
理する命令装置を得ることである。 本発明の更に別の目的は、ある特定のマイクロ
命令の流れを完成するために、外部の実行装置か
らの帰還量を最少限に抑えて、その実行装置へマ
イクロ命令のきれいな流れを与える命令装置を得
ることである。 要約すれば、それらの目的は、主メモリからマ
クロ命令を受ける命令デコーダIDと、受けたマ
クロ命令を実行するために必要なマイクロ命令の
流れをシーケンスするためのマイクロ命令シーケ
ンサ(MIS)とを含むマイクロプロセツサの命令
装置を得ることにより、本発明に従つて達成され
る。マイクロ命令シーケンサ(MIS)はその中に
保持されている(複数のマイクロ命令で構成の)
マイクロ命令ルーチンのための、命令デコーダ
(ID)からのスターテイング・アドレスを受ける
要素を含む。このMISはIDからの単一マイクロ
命令であるフオースド・マイクロ命令を受ける要
素も含む。 フオースド・マイクロ命令をバツフアするため
にIDとMISの間にバツフア要素が設けられてい
る。IDによる新しいフオースド命令の発生を、
バツフアが一杯の時には、常に禁止するために
MISにより制御される制御器が設けられる。この
ようにして、MISは与えられたマクロ命令の実行
に必要ないくつかのマイクロ命令をシーケンシン
グでき、その間にIDは新しいマクロ命令のフイ
ールドを復号および翻訳し、その新しいマクロ命
令に関連するフオースド・マイクロ命令でバツフ
アをおそらく一杯にする。 本発明の1つの面に従つて、MISにより処理さ
れているマクロ命令に続くマクロ命令をIDが処
理する時に、IDを先取り(ルツク・アヘツド)
モードに常に置くための要素が設けられる。この
モードにある時は、MISは前記バツフアからフオ
ースド・マイクロ命令を受けることを阻止され
る。 本発明の別の面に従つて、前の流れが終了した
時およびフオースド・マイクロ命令バツフアが空
いている時だけIDからスターテイング・アドレ
スを受け、それにより以前の全てのマクロ命令を
確実に終らさせるようにするための要素がMISに
設けられる。 本発明は、マクロ命令のフエツチと翻訳を行う
ことができるIDと、このIDとは独立に動作でき、
かつ以前のマクロ命令を処理する(すなわちルツ
ク・アヘツド・モードに入る)MISとの別々のプ
ロセツサを作ることによる利点を有する。このよ
うに構成することにより、本発明のようにしない
時はマイクロ命令シーケンサが引き続くサイクル
で「no−op」マイクロ命令を発生し、その間に
命令デコーダが新しい命令を翻訳することを待つ
ような状況においてスループツトが向上する。 以下、図面を参照して本発明を詳細に説明す
る。 ここで行う予備的な説明は、本発明が具体化さ
れる命令装置の各種の構成部品の概略について述
べ、この明細書全体を通じて用いられる技術のい
くつかについての手引を与えようとするものであ
る。本発明を実施できる種類のデータ処理装置は
前記米国特許出願第971661号に詳しく説明されて
いる。この米国特許出願の第5図と第6図には、
本発明の命令装置をデータ処理装置の他の部分と
どのようにして相互接続するかが示されている。
命令装置は2部分汎用データ処理装置の1つの部
分である。第2の部分は装置間バスを介して命令
装置と交信する実行装置である。実行装置につい
ては前記米国特許出願第971661号に詳しく説明さ
れている。命令装置および実行装置とデータ処理
装置の他の部分との間のインターフエイスについ
ては、前記米国特許出願第972007号に詳しく説明
されている。理解を容易にするために、前記米国
特許出願第971661号において種々の機能データ・
ブロツクを表わすために用いている参照番号を、
この明細書においても同じブロツクを表わすため
に用いることにする。 まず第1図を参照して、命令装置は命令デコー
ダ(ID)222とマイクロ命令シーケンサ
(MIS)224との2つのプロセツサで構成され
る。これら2つのプロセツサは何本かの多心バス
と何本かの制御線を介して相互に作用し合う。命
令装置はアドレス/制御/データ(ACD)バス
および装置間バスとの2本のバスと相互作用す
る。 ACDバス214はバス・トランザクシヨン中
の異なる時間にアドレス信号、制御信号またはデ
ータ信号を送ることができる。バス・トランザク
シヨン中にACDバスは各種の情報を伝えること
ができるが、バス・インタ・フエイス・ロジツク
780がISAとISBをモニタすることによりバス
線の状態を決定できる。このバスについては前記
米国特許出願第972007号に詳しく述べられてい
る。 装置間バスは命令装置と実行装置の間の通信リ
ンクである。この装置間バスはマイクロ命令と、
データと、論理アドレス情報を命令装置から実行
装置へ伝える。装置間バスはMISの状態および障
害情報と、IDのビツト・ポインタ情報も伝える。
この装置間バスはマイクロ命令バス220と
BP/Fバス217を有する。また、状態符号ビ
ツトを実行装置から命令装置へ戻すTRUE線2
18と、命令装置の障害が実行装置により検出さ
れたことを知らせるFAULT線と、可変サイク
ル・マイクロ命令の完成を知らせるDONE線と
が更に設けられる。 マイクロ命令バス220は命令装置から実行装
置への一方向バスである。このバスはマイクロ命
令と、データと、論理アドレスデータとを実行装
置へ転送するために用いられる。内部的にはこの
マイクロ命令バスはいくつかの場合をソースとす
ることができる。マイクロ命令ルーチンを構成す
るマイクロ命令はMISの制御の下にマイクロプロ
グラムROM226から読出されて、マイクロ命
令バスを介して実行装置へ送られる。しかし、
IDはマイクロプログラムROMからサイクルを
「盗んで」、単一(フオースド)マイクロ命令をマ
イクロ命令バスを介して強制的に送ることもでき
る。 命令装置により出された1つのマイクロ命令に
より、実行装置内で一連の動作がひき起される。
たとえば、ACCESS MEMORYと呼ばれる1つ
の命令が与えられると、実行装置は物理的アドレ
スを発生し、アクセスの権利を調べ、バス要求を
出し、トランザクシヨンを実行する。それらの可
変サイクル・マイクロ命令の場合には、実行装置
はマイクロ命令が完了した時に「done」信号を
(DONE線を介して)命令装置へ戻す。 IDにより復号されるにつれて完全に実行でき
る多くのマクロ命令がある。それらの場合には、
IDはマイクロプログラムROMをアクセスする必
要は全くなく、その代りに、マクロ命令の実行に
必要な単一(フオースド)マイクロ命令をマイク
ロ命令バスに直接のせることができる。 マイクロ命令バスはデータ、セグメント・セレ
クタ、デイスプレースメント、飛越しアドレス情
報をIDから実行装置の保持レジスタへ転送する
ためにも用いられる。転送すべき情報は深さ
(deep)が2のFIFO(EXBUF308と呼ばれる)
に保持される。このFIFOへは各種の長さのデー
タをロードできる。転送されるデータは、実行装
置が16ビツトの妥当データを得るように、常に権
利が正当化され、先行の0〜16ビツトがパツドさ
れる。また、実行装置へ転送される前に相対的な
飛越し基準の符号は16ビツトまで自動的に延長さ
れる。 このEXBUFデータの転送を含むマイクロ命令
は多重サイクル・マイクロ命令である。このマイ
クロ命令は第1のサイクルの間に転送され、次の
サイクルの間にFIFOの内容が転送される。 BP/Fバス217は実行装置から命令装置へ
の一方向バスである。それらのバスは障害が生じ
た時に障害状態の符号化を行うために用いられる
とともに、マクロ命令飛越しの場合にビツト情報
をIDへ送るためにも用いられる。 実行装置は命令装置に特別な動作を行わせる多
くの障害を検出する。障害が生じた場合は、実行
装置からのFAULT線がアサートされ
(asserted)て、その障害を示す符号がBP/Fバ
スの命令装置へ送られる。この障害符号は、「障
害」ROM779からの正しい障害マイクロ命令
のスターテイング・アドレスを選択するために命
令装置により用いられる。障害が起ると、実行さ
れているマイクロ命令の流れが中断され、障害の
流れの実行が開始される。障害の流れが終ると、
可能であれば中断されているマイクロ命令の流れ
を再開できる。 BP/Fバスは飛越しの実行のためにも用いら
れる。命令装置/実効装置対のためのプログラ
ム・カウンタは2つの部分として貯えられる。す
なわち、二重バイト・ポインタが実行装置に貯え
られ、ビツト・ポインタが命令装置に貯えられ
る。飛越しの場合には、実行装置はプログラム・
カウンタ全体に対して何らかの計算を行わねばな
らないかもしれない。これを行えることができる
ようにするために、2つの装置の間でビツト・ポ
インタ情報を転送するための機構が設けられてい
る。すなわち、ビツト・ポインタはEXBUF
FIFOを介して実行装置へ送ることができ、新し
いビツト・ポインタをBP/Fバスを介して命令
装置へ戻すことができる。命令装置は、FAULT
線がアサートされなければ、BP/Fバスがビツ
ト・ポインタ情報を伝えると常に仮定している。
FAULT線がアサートされると、BP/Fバス上
の情報は障害符号として解される。BP/Fバス
は、飛越しがオペランド・スタツクの1番上を通
るならば、オペランド・スタツク(実行装置に保
たれている)の1番上の下位4ビツトをビツト・
ポインタへ送るためにも用いられる。 装置間バスの残りの線はTRUE線とDONE線
である。それらの線は実行装置から命令装置まで
の一方向線であつて、状態情報を命令装置へ戻す
ために主として用いられる。 TRUE線はマイクロコード中の条件付き飛越
しが行われる時に常に用いられる。マイクロプロ
グラムは飛越しさせたいと望む動作を行い、それ
から適切な条件フラグを(TRUE線を介して)
命令装置へ送つて、そこに保持することを要求す
る。それから、命令装置はその条件を基にして飛
越しを行う。 DONE線219は、ある多重サイクル・マイ
クロ命令の実行中に、命令装置へ「DONE」信
号を戻すために用いられる。この「DONE」信
号は多重サイクル・マイクロ命令が終ろうとして
いることを命令装置へ知らせる。命令装置は、多
重サイクル・マイクロ命令が実行装置へ転送され
ていることを検出し、実行装置がそのマイクロ命
令を終ろうとしていることをDONE線が示すま
で、そのマイクロ命令をループ・オンする。命令
装置が多重サイクル・マイクロ命令をループ・オ
ンしている間に、命令装置はNO−OPを実行装
置へ送る。マイクロ命令が終ろうとしていること
をDONEが示すと、命令装置は続行する。
「done」信号は実行装置がそのマイクロ命令の実
行を終る2分の1サイクル前に、実行装置により
実際に送り出される。これは、再開までに失われ
るサイクルがないように、MISパイプラインが早
く一杯になるようにするためである。 命令デコーダ222はACDバス214上の命
令の流れのバイトを受ける。IDがある命令のフ
イールドを翻訳して、実行装置が命令を実行する
のに必要な、マイクロ命令を発生し、またはより
長いマイクロプログラム・ルーチンのためのスタ
ーテイング・アドレスを発生する。IDは論理ア
ドレス情報の書式化も行う。この情報は実行装置
の保持レジスタへ送られる。 マイクロ命令シーケンサ224はマイクロ命令
と、マイクロプログラム・ルーチンのためのスタ
ーテイング・アドレスをIDから受ける。MISは
マイクロ命令を復号して、それを実行装置へ送
る。実行装置はそれらのマイクロ命令を実行す
る。 2つの先入先出(FIFO)バツフアがMISとID
の間に設けられる。EXBUF308がIDからXバ
ス700を介して受けたデータをバツフアする。
このバツフアのレジスタが一杯になつた時にそれ
を示すために、このバツフアにEXBUF−フル・
フラグが組合わされる。IDからPバス702を
介して受けるフオースド・マイクロ命令をバツフ
アするためにPIRバツフア310が設けられる。
このバツフアのレジスタが一杯になつた時にそれ
を指示するために「PIR−フル」フラグがこのバ
ツフアに組合わされる。また、このバツフアのレ
ジスタが空になつているか否かを指示するために
「PIR−空」フラグが設けられる。 IDはMISフオースド・マイクロ命令をPバス
702を介して送り、長いマイクロ命令の流れの
ためのスターテイング・アドレスをSバス708
を介して送る。フオースド・マイクロ命令はPIR
FIFOにおいてバツフアされる。本発明の一実施
例においては、このPIR FIFOが2つのレジスタ
を含む。PIR−フル線704が附勢されていない
限りは、IDはフオースド・マイクロ命令をロー
ドできる。 命令デコーダが長い命令の流れのためのスター
テイング・アドレスを有すると、そのデコーダは
スターテイング・アドレス待ち線(SAW)線7
12をアサートすることによりMISへ合図し、停
止する。マイクロ命令シーケンサは、待つことが
あるスターテイング・アドレスを介してフオース
ド・マイクロ命令を常にサービスする。したがつ
て、PIR−空線がアサートされたとすると、MIS
はスターテイング・アドレスをマイクロ命令レジ
スタへロードすることによりスターテイング・ア
ドレスをサービスする。そうすると、MISはスタ
ーテイング・アドレスを受ける用意ができている
(RASA)線714をアサートし、流れアクテイ
ブ線710をアサートする(PIR−空線がアサー
トされないとすると、MISはPIR FIFOに貯えら
れている優先マイクロ命令を、スターテイング・
アドレスを受ける前にサービスすることになる)。 RASA線714がアサートされていることが
確認されると、IDはSAW線712のアサートを
停止して続行する。 そうすると、命令デコーダは先取りモードすな
わちルツクアヘツド(look−ahead)モードに自
由に入つて新しいマクロ命令をとり出し、その命
令の翻訳を開始し、その間にMISは前のマクロ命
令のマイクロ命令の流れをシーケンスする。 MISがIDからスターテイング・アドレスを受
けると先取り線718がアサートされ、マイクロ
プログラムの流れを開始する。この先取り線がア
サートされている間に、IDは次のマイクロ命令
の復号を自由に開始し、その間にMISが最初の命
令のシーケンスを行う。IDはMISに先んじて1
つ以上のマイクロ命令を得ることは決してない。
マイクロ命令の流れが終つた時に、「マクロの終
り」マイクロ命令または「飛越しマクロの終り」
マイクロ命令を実行しているMISの指示により、
先取り線718がMISによりアサーシヨンを解除
される。 命令デコーダがフオースド・マイクロ命令を出
すと、そのマイクロ命令はPIRに貯えられる。ID
がマイクロ命令をロードしようとした時にPIR−
フル線704がアサートされたとすると、PIR−
フル線がアサートを解除されるまでIDは待ち、
PIR−フル線704のアサートが解除されてから
IDはマイクロ命令をロードして次の状態へ進む。
マイクロ命令の流れがMISにより実行されている
限りは、MISはPIRからどのようなマイクロ命令
も受けない。IDは次の命令の復号を続行でき、
PIRが一杯になるまではPIRへのロードを続ける
が、MISが先行する命令を完了するまではPIR内
のマイクロ命令はいずれも実行されない。PIRは
先入先出レジスタであるから、PIRに保持されて
いるマイクロ命令がMISにより実行を許された時
に、それらのマイクロ命令は適切な順序で常に実
行される。 マクロ命令がACDバス214を介して命令バ
ツフア301へ与えられ、そこに貯えられる。マ
クロ命令はいくつかの可変ビツト長フイールドで
作られる。1度にマクロビツトの16ビツトがエキ
ストラクタ765へ転送される。復号すべきある
特定のフイールドのマクロ命令内のビツト位置を
ビツト・ポインタ302が指示する。このビツ
ト・ポインタの初期値はBP/Fバス217を介
して外部から設定される。その特定のフイールド
のビツトはエキストラクタにより抽出されて状態
マシーン305へ与えられる。この状態マシーン
はその特定のフイールドを復号し、マイクロプロ
グラム・ルーチンのためのデータとフオースド・
マイクロ命令およびスターテイング・アドレスを
バス700,702,708を介してそれぞれ発
生するロジツクを含む。復号が終ると、復号した
ばかりのその特定のフイールド内のビツトの数に
等しい桁送りカウントを状態マシーンは送り出
す。その桁送りカウントは加算器772において
ビツト・ポインタに加え合わされ、その和がビツ
ト・ポインタの値に置き換えられる。この新しい
ビツト・ポインタ値が処理すべき次のフイールド
を示す。 データがIDからXバス700を介して送られ
る。それらのデータはEXBUF308でバツフア
される。このEXBUFが一杯になるまでIDは
EXBUFへロードできるが、MISがデータ転送を
許すまではデータはマイクロ命令バス220を介
して送られることはない。これは、マイクロ命令
バツフア・レジスタ310に貯えられているフオ
ースド・マイクロ命令によつて、全ての転送をデ
ータ・バツフア308を通じて行わせることによ
り行われる。流れアクテイブが存在しなくなるま
ではMISはレジスタ310内のフオースド・マイ
クロ命令を実行しないから、レジスタ310内の
対応するフオースド・マイクロ命令が実行される
までは、バツフア308内のデータは実行装置へ
送られない。このような機構により、論理アドレ
ス情報をIDが重ねて書き込むことが阻止される
が、その情報は実行装置により依然として必要と
される。 スターテイング・アドレスのIDからMISへの
転送は完全にインターロツクされる。IDがスタ
ーテイング・アドレスをSバス708の上に発生
した時は、IDはMISにより常に制御される。流
れアクテイブが存在せず、かつPIR310が空の
場合には、MISはIDからのスターテイング・ア
ドレスを受けるだけである。これにより、新しい
マイクロ命令の流れがMISにより開始される前
に、全てのことが完了させられることになる。
RASA線714がMISによりアサートされるま
では、IDは新しい状態へ動くことを阻止される。
したがつて、IDがあるスターテイング・アドレ
ス・ウエイテイングを有しており、かつMISがそ
のアドレスを受ける用意ができていない時は、ス
ターテイング・アドレス・ウエイテイングでID
がループする。スターテイング・アドレスがとり
出され、RASA714がアサートされると、ID
は次のマクロ命令の復号を開始できる。 (1.0) 命令デコーダ(ID)についての説明 (1.0) 概要 第2図を参照する。IDはリセツトされた後
で、命令の流れの中で飛越しが実行される時
に、(マイクロコードの制御の下に)常に初期
設定される。この初期状態により命令のとり出
しが行わさせられて、その命令の最初の32ビツ
トでIDが一杯にされる。また、初期設定によ
りID状態シーケンサが命令のフイールドをク
ラス・フイールドとして解釈させられる。 IDはそのクラス・フイールドを調べ、レジ
スタ内におけるオペランドの長さをセーブし、
opcodeで後に用いるためにそのクラス・フイ
ールドを貯える。それから、IDはクラス・フ
イールドを過ぎてフオーマツト・フイールドま
で抽出器を更新し、そこでそのフオーマツトを
基にしてそれは適切な復号シーケンスまで飛越
す。 その命令中に明らかな参照があるものとする
と、IDはフイールドを処理し、論理アドレス
情報をセーブして、オペランドを取り出すのに
必要なマイクロ命令を強制する。 IDが(実行装置に貯えられている)全ての
オペランドを取り出すと、IDは命令のクラス
とopcodeにより指定されている動作を行うの
に必要なフオースド・マイクロ命令(簡単な動
作の場合)、またはマイクロプログラム流のた
めの適切なスターテイング・アドレス(より複
雑な動作の場合)のいずれかを選択する。その
動作がフオースド・マイクロ命令だとすると、
次にIDは次のマイクロ命令を強制する。その
マイクロ命令はその動作の結果を貯えさせ、そ
れに「マクロ命令の終り」表示子が続く。それ
からIDはそのスタート状態へ逆飛越しを行い、
そこで次の命令の復号を開始する。その動作が
スターテイング・アドレスを求めたとすると、
IDはスターテイング・アドレスをMISへ転送
し、次の命令の復号を開始できるようにそのス
タート状態へ飛越しで戻る。 IDがフオースド・マイクロ命令を出すと、
マイクロ命令が深さが2のFIFO、PIR310
内でセーブされる。MISはPIRを調べ、マイク
ロ命令ウエイテイングがあるものとすると、そ
れを復号してから実行装置へ送る。IDがフオ
ースド・マイクロ命令をロードしようとしてい
る時にPIR FIFOが一杯であるとすると、IDは
PIRが一杯でなくなるまで待つてマイクロ命令
をロードし、次の状態へ進む。 論理アドレス情報は深さが2のFIFO、
EXBUF308に貯えられる。その情報が
EXBUFへロードされる前に、実行装置が16ビ
ツトの妥当データを常に受けるように、その情
報は0〜16ビツトがパツドされる(論理アドレ
ス情報は可変ビツト長である)。飛越(基準の
場合には、実行装置にとつてターゲツト・アド
レス計算を簡単にする形にターゲツト・アドレ
スがフオーマツトされる。EXBUF FIFOの内
容はマイクロコードの制御の下に実行装置へ転
送できる。PIRのように、IDがEXBUF FIFO
へロードしようとする時にEXBUF FIFOが一
杯であるとすると、それが一杯でなくなるまで
IDは待ち、それからEXBUFをロードして次の
状態へ進む。 マクロ命令の長さは数百ビツトになることが
あるが、IDは1度にマクロビツトのたかだか
32ビツトを含むだけである。IDが貯えられて
いる32ビツトのうち最初の16ビツトを処理する
と、IDはマクロ命令の次の16ビツトをエキス
トラクタに再びロードする。その結果、エキス
トラクタは妥当データの少くとも16個の連続ビ
ツトを常に含む。この再ロードの間は停止させ
られ、その再ロードが終つた時だけ動作を続け
る。 IDはマクロ命令の32ビツトを1度に貯えて
いるだけとすると、IDは流れの16ビツトを処
理するたびに命令フエツチを出さねばならな
い。命令フエツチは多くのオーバーヘツドをし
よい込むから、IDは命令流データを待つため
にその時間の大部分を費す。この効果を最小に
するためにIDは別の16ビツト・バツフア・レ
ジスタを含む。命令フエツチは命令流の32ビツ
トを常にフエツチする。ビツトの半分がエキス
トラクタへ直接行き、残りの半分がこのバツフ
ア・レジスタに貯えられる。IDがエキストラ
クタ内の最初の16ビツトを処理した後で、バツ
フアの内容は抽出器へ送られ、命令フエツチは
出されない。この結果として1サイクルだけ遅
れる。エキストラクタの次の16ビツトが処理さ
れると、IDは次の命令フエツチを出し、妥当
データがメモリから戻されるまで待つ。 全飛越し命令がエキストラクタに貯えられて
いるとすると、より多くのデータのためにフエ
ツチを出すことはIDにとつて極めて非能率で
ある。それでもこれは可能である。その理由
は、フエツチが最初の16ビツト境界を横切つた
後でIDがフエツチを出すからである。命令の
残りの部分がエキストラクタの上側16ビツトの
中に入つたとすると、フエツチはむだになる。
これを防ぐために、エキストラクタが全体の命
令を含んでいることをIDが決定した時にIDは
フエツチを禁止できる。飛越しが終つた時に飛
越しが行われるものとすると、エキストラクタ
は何らかのやり方で再びロードせねばならな
い。飛越しが行われず、エキストラクタが一杯
でないとすると、IDは継続できるようになる
までにフエツチを出さねばならない。 できるだけ効率的なやり方で飛越しを取り扱
うことが望ましい。これは命令装置チツプ上で
必要な飛越しアクテイビテイの大部分を行うこ
とにより行われる。IDは飛越しターゲツトの
ための適切なビツト・ポインタを計算し、それ
をビツト・ポインタ・レジスタ(BIP)へ転送
させるための手段を含む。その結果、ターゲツ
ト・アドレス情報を実行装置から命令装置チツ
プへ転送する必要はない。 (1.2.1) PLAロジツク PLA段機械ロジツク305は命令のフイ
ールドを通じてIDをシーケンスし、フオー
スド・マイクロ命令と、その命令を実行する
ために必要なスターテイング・アドレスを発
生するものである。このロジツク305はい
くつかの部品、すなわち、SPLAおよび
SREGロジツクと、OPLAと、ESCマルチプ
レクサ(Mux)と、LREGと、TROM
MUXおよびTROMである。PLAロジツク
はMISからのある制御情報はもちろん、命令
の権利が正当化されているフイールドを受
け、フオースド・マイクロ命令と、MISのた
めのマイクロプログラム・スターテイング・
アドレスとを発生する。更に、PLAロジツ
クはBIPバス・ロジツクで使用するためのビ
ツト・ポインタ更新情報も発生する。PLA
ロジツクはIDのための制御信号のほとんど
を発生するIDCTLロジツクも含む。 SPLAおよびSREGロジツクはIDの実際の
シーケンシングを制御する。SREGはIDが現
在復号しているフイールドを指定する状態値
を含む。たとえば、IDが命令のクラス・フ
イールドを調べていることを1つの状態値が
示すことができる。SREGはいくつかのソー
スからロードできる。通常は、SPLAは
SREGの現在の内容と、エキストラクタから
復号されているフイールドの値とを基にし
て、SREGの次の状態を決定する。しかし、
ある条件の下では、SREGへはIDサブルーチ
ン・スタツク750のトツプ素子をロードで
き、またはコンスタントな「状態φ」をロー
ドできる。「状態φ」はIDの最初の状態であ
る。 命令の復号は非常にモジユラーであるか
ら、SREGへはIDサブルーチン・スタツク7
50からロードできる。戻り状態をSPLAの
制御の下にこのスタツク上にプツシユオンで
き、サブルーチンの流れに対して飛越しが行
われる。流れが完了すると、SREGはサブル
ーチン・スタツクから戻り状態を受ける。
SREGはSREG MUX752から状態φも受
ける。状態φはIDの最初の状態であつて、
IDが新しい命令の復号を開始するたびに入
れられる。 「状態φ」は各種の方法でSREGへロード
できる。たとえば、リセツトにおいてIDは
初期設定され、SREGへ「状態φ」がロード
される。IDがMISからIDスタート指令を受
けると、IDはマクロ命令の復号を最初から
始める。「状態φ」はMISによつてフオース
もされる。MISはIDをその初期状態へリセ
ツトするマイクロ命令を出すことができる。
そのためにIDはクリヤされ、ハードウエア
のリセツトと同じ効果が得られる。マイクロ
命令の流れにおける飛越しの後でIDが回復
できるようにするのはこの再スタート機構で
ある。飛越がMISにより検出されると、ID
はマイクロコードの制御の下にリセツトさ
れ、新しい命令ポインタが設定される。マイ
クロコードの制御の下にIDが再スタートさ
せられると、IDは新しいアドレスにおいて
命令の復号を開始する。IDが1つの命令の
復号を終り、次の命令の復号を開始した時に
は常に「状態φ」へも入る。 IDの動作はSREGのロードにより実際に制
御される。たとえば、IDエキストラクタが
(データを待つ)用意ができていないと、
SREGへは新しい値は常にロードされない。
その代りに、古い状態(古いエキストラクタ
内容)が再び使われる。これによりIDは同
じ状態に保たれる。エキストラクタに用意が
ととのうと、新しい状態がロードされ、エキ
ストラクタが更新されてIDは次の状態へ進
む。 フオースド・マイクロ命令とEXBUF動作
およびスターテイング・アドレスのために同
様な方法が設けられる。PIR308と
EXBUFは深さが2のFIFOであつて、MIS
によりアクセスされる。IDとMISは互いに
同期して動作するから、両者を交信させる何
らかの方法がなければならない。各FIFOに
はフル・フラグが組合わされる。このフル・
フラグはMISにより制御される。組合わされ
ているフラグが一杯の時にIDがPIRまたは
EXBUFをロードしようとしたとすると、そ
のロードは打ち切られてSREGへは新しい状
態はロードされない。その結果、影響を受け
たフル・フラグの状態がMISにより変えられ
るまで、IDは保持する。フル状態が除去さ
れるとIDは進む。 MISがスターテイング・アドレスをIDか
ら受けると、MISは先取りモードに入る。本
質的には、これはIDが次のマイクロ命令を
復号しており、その間にMISが現在のマイク
ロ命令を実行していることを意味する。両者
は同期していないから、全てが適切な順序で
行われるように注意せねばならない。 IDからのスターテイング・アドレスに加
えて、実行装置が障害を検出しているのであ
れば、障害ルーチンのためのスターテイン
グ・アドレスもBP/Fバス217を介して
受ける。MISがIDからのスターテイング・
アドレス、または障害ロジツクからの障害の
流れを実行していると、流れアクテイブ・フ
ラグが常にセツトされる。流れがMISにより
実行されている限りは、MISはPIR310か
らフオースド・マイクロ命令を受けない。
IDは次の命令の復号を続けることができ、
かつPIRが一杯になるまでPIRへのロードを
続けることができるが、PIR内のフオース
ド・マイクロ命令はいずれも実行されない。
PIRはFIFOであるからフオースド・マイク
ロ命令は正しい順序で常に実行されるが、そ
れらが実行されることをMISが許した時のみ
である。 EXBUFの動作のために同様な機構を利用
できる。EXBUF308が一杯になるまでID
はEXBUFにロードできるが、データの転送
をMISが許すまでは実行装置へ転送されるデ
ータはない。これはIDにより全てのEXBUF
転送をフオースド・マイクロ命令へリンクす
ることにより行われる。流れアクテイブがな
くなるまでMISはフオースド・マイクロ命令
は実行されないから、フオースド・マイクロ
命令が実行されるまではデータは実行装置へ
転送されない。これにより、実行装置により
論理アドレス情報が依然として必要とされる
間に、IDはその論理アドレス情報を重ねて
書くことが阻止される。 IDが発生したスターテイング・アドレス
も注意して取扱われる。1つの完全なマクロ
命令をIDがMISより先に得ることはさしつ
かえないが、1つ以上の命令を先にとること
は危険である。たとえば、どのフオースド・
マイクロ命令がどの命令に合うかをMISはど
のように知るのであろうか。IDは深さが2
のスタツク304を含む。このスタツクは実
行される命令と復号される命令のためのスタ
ーテイング・ビツト・ポインタを含む。新し
い命令の復号をIDが開始すると、このスタ
ツクは常にプツシユされる。第3の命令につ
いてIDがスタートを許されたとすると、デ
ータのうちのあるものが失われるから、障害
が起きた時にその障害から回復することは非
常に困難である。IDがスターテイング・ア
ドレスを発生すると、IDはMISにより常に
制御される。流れアクテイブが無くてPIRが
空の時は、MISはIDからスターテイング・
アドレスを受けるだけである。これにより、
新しい流れが開始される前に全てが終らされ
る。IDがスターテイング・アドレス・ウエ
イテイングを有し、かつMISがそれを受ける
用意がない時に、SREGは変化することを常
に阻止される。その結果、MISがスターテイ
ング・アドレスを受けるまでは、IDはスタ
ーテイング・アドレス・ウエイテイングをル
ープする。スターテイング・アドレスがとら
れた後で、SREGが解放されてIDは次の命令
の復号を開始する。 (1.2.1.2) OPLAロジツク OPLAはGDPマクロ命令セツト中の各
マクロ命令を実行するのに必要なスターテ
イング・アドレスまたはフオースド・アド
レスを含む。OPLAが復号している命令の
opcodeフイールドをIDが処理している時
に、OPLAは命令ごとに1回アクセスされ
るだけである。復号される命令のクラス・
フイールドはCREG754に貯えられ、エ
キストラクタからのopcodeの権利が正常
化されたビツト756とともに、そのクラ
ス・フイールドは動作のために適切なスタ
ーテイング・アドレスまたはフオースド・
マイクロ命令を選択するために用いられ
る。線がフオースド・マイクロ命令かスタ
ーテイング・アドレスのいずれであるかを
ID CTLに指定するビツトがOPLAの中に
ある。このビツトはSREGを制御し、スタ
ーテイング・アドレスをSバスに置くか、
フオースド・マイクロ命令を(TROM3
07を介して)Pバスへ置くために用いら
れる。OPLA線がフオースド・マイクロ命
令であると、IDはSPLAのシーケンスを続
けて結果を貯えさせ、次の命令の復号が始
まる前に動作が終らされる。OPLAがスタ
ーテイング・アドレスであるとすると、ス
ターテイング・アドレスがMISに受けられ
るまでIDは待ち、それから「状態φ」へ
飛越して戻つて、次の命令の復号を開始で
きるようにする。 OPLAは命令セツト中の各動作ごとに8
ビツト符号も含む。OPLAがアクセスされ
る時にこの符号は常にFREGへロードされ
る。このFREGはマイクロコードの制御の
下に実行装置へ送ることができ、かつ障害
が起きた時に、障害が起きたというマクロ
命令の指示を与えるために用いることがで
きる。 (1.2.1.3) ESCマルチプレクサ SPLAとOPLAはエキストラクタのため
の更新情報(OESCとSESC)を発生する。
SPLAはOPLAをアクセスするサイクルを
除く全てのサイクルの間に更新情報を発生
する。OPLAがアクセスされるとOPLAは
更新情報を与える。2つのOPLAからの更
新情報はESC(エキストラクタ桁送り制御)
Mux(マルチプレクサ)758により互い
に多重化されてから、BIPバス・ロジツク
へ転送されて、ちようど復号されたフイー
ルドを通つてエキストラクタを更新するた
めにBIPバス・ロジツクにおいて用いられ
る。また、ESC Muxは4または6をBIP
バスへ強制できる。クラスを復号中にID
がオペランドの長さをセーブすると、それ
らの長さを符号化するためにIDはSPLAか
らのエキストラクタ更新ビツトのいくつか
を用いねばならない。クラス・フイールド
の幅は4ビツトまたは6ビツトだけにしか
できないから、IDは数ビツトではなくて
1ビツトで更新情報を指定できる。4また
は6がESC Muxから強制されるのはこの
時である。 (1.2.1.4) LREG IDが命令のクラス・フイールドを復号
している時は、オペランドがフエツチされ
るまで、オペランドの長さを指定する情報
をIDはセーブせねばならない。この情報
はLREG760内でセーブされる。これは
幅3ビツト、深さ3のFIFOである。オペ
ランドの長さは3つの3ビツト・コードに
符号化される。各3ビツトコードは各オペ
ランドに対応する。この9ビツト・フイー
ルドは、IDが命令のクラス・フイールド
を通る時に、LREG FIFOへ並列にロード
される。オペランドをフエツチするフオー
スド・マイクロ命令をIDが出すと、IDは
LREG中のトツプ・エントリイをフエツ
チ・オペランド・マイクロ命令のオペラン
ド長フイールドの中へ注入する。それか
ら、IDが次のオペランドをフエツチする
用意ができた時に、そのオペランドの長さ
を利用できるように、FIFOがポツプされ
る。 (1.2.1.5) TROMおよびTROMマルチプレクサ SPLAとOPLAはフオースド・マイクロ
命令を出すことができる。SPLAは命令の
復号に用いられるフオースド・マイクロ命
令の全てを出し、OPLAは、行うべきマイ
クロ命令を1つのマイクロ命令で取扱える
のであれば、OPLAはその動作を実際に行
うフオースド・マイクロ命令を出す。
SPLAとOPLAのサイズを最小にするため
に、フオースド・マイクロ命令の発生に翻
訳ROM307が実際に用いられる。PLA
は6ビツト符号を発生し、それらの符号は
TROMにより16ビツト・マイクロ命令へ
翻訳される。ほとんどの場合に、TROM
は全体のマイクロ命令を発生するが、長さ
フイールドを必要とするフオースド・マイ
クロ命令に対してTROMはフオースド・
マイクロ命令の13ビツトを発生し、LREG
が他の3つを与える。 演算動作には極性符号をつけたり、つけ
なかつたりできる。LREGがロードされる
時は、この極性符号つきの情報は既知でな
い。その結果、LREGの出力がフオース
ド・マイクロ命令の一部になる前に、その
出力を修正するためにOPLAのビツトの1
つを用いることができる。この効果とし
て、行うべき動作に応じて、同じマイクロ
命令に極性符号をつけたり、つけなかつた
りできる。 TROM Mux762は2つのPLAから
の6ビツト・フオースド・マイクロ命令コ
ードを単に多重化するだけである。それら
のフオースド・マイクロ命令はPバスを介
してPIRへ転送される。 (1.2.2) エキストラクタ・ロジツク エキストラクタ・ロジツクは命令の権利が
正常化されているフイールドをPLAロジツ
クへ与える。また、論理アドレス情報が
EXBUF308に貯えられる前に、このエキ
ストラクタはその情報をフオーマツトする。
このエキストラクタ・ロジツクは命令フエツ
チを要求するために必要なロジツクを含み、
メモリから命令データを受ける。エキストラ
クタ・ロジツクはコンポーザ・マトリツクス
765およびエキストラクタ・レジスタ
FIFO301と、エキストラクタ・レジスタ
制御ロジツク764と、EXBUF符号器76
8および符号器制御器770との3つの主な
ブロツクで構成される。 (1.2.2.1) コンポーザ・マトリツクスおよびエ
キストラクタ・レジスタFIFO エキストラクタの動作はコンポーザ・マ
トリツクス765により可能にされる。コ
ンポーザ・マトリツクスというのは(32ビ
ツト)データの隣り合う任意の16ビツトを
出力線上に表示できるMOS素子アレイで
ある。それらの16ビツトのスターテイング
位置は、マトリツクスの桁送り線へ信号を
与える一対の4〜16桁送りデコーダにより
選択される。IDにおいてはそれらのデコ
ーダへは、BIPバス・ロジツクにより制御
されるビツト・ポインタにより信号が与え
られる。このビツト・ポインタはIDによ
り復号されているフイールドのスターテイ
ング位置を与える。IDがあるフイールド
の処理を終ると、ビツト・ポインタは次の
フイールドのスターテイング位置へ進ませ
られる。そのためにコンポーザ・マトリツ
クスが次のフイールドの始めまで桁送りさ
せられて、その新しいフイールドの始めか
らスタートして命令の次の16ビツトを表示
する。 コンポーザ・マトリツクスへは深さ3、
幅16ビツトのFIFO301により与えられ
る。このFIFOの初めの2語はコンポー
ザ・マトリツクスへの入力として機能し、
3番目の語は命令バツフアとして機能す
る。IDがエキストラクタ・データの16ビ
ツトを処理すると、FIFOがプツシユされ
る。そのために第2のレジスタが第1のレ
ジスタへ転送され、第3のレジスタ(一杯
であれば)が第2のレジスタへ転送され
る。その結果、コンポーザ・マトリツクス
は妥当データの16ビツトを常に出力する。
FIFO内のレジスタはメモリから(ACD線
214を介して)データを得ることがで
き、またはFIFO内の他のレジスタの1つ
からデータを得ることができる。 FIFO内の3つの各レジスタにはフル・
ビツトが組合わされる。それらのフル・ビ
ツトは、FIFO内のデータを正しい場所へ
送るために、エキストラクタ・レジスタ
FIFO制御ロジツク764により用いられ
る。それらのフル・ビツトは命令フエツチ
要求を出すべきことを決定するために制御
ロジツクによつても用いられる。 (1.2.2.2) エキストラクタ・レジスタFIFO制御
ロジツク エキストラクタ・レジスタFIFO制御ロ
ジツク764は2つの部分に分けることが
できる。このロジツクの一部はエキストラ
クタ・レジスタFIFOを制御し、他の部分
はSREGローデイングを制御する。エキス
トラクタ・レジスタFIFOのアルゴリズム
は次のとおりである。 1 メモリからのデータがFIFOへロード
されると、そのデータは1番下の空のレ
ジスタへ常に送られる。 2 エキストラクタ・データの16ビツトを
IDが処理するたびに、FIFO内のデータ
が動かされる。レジスタ2は常にレジス
タ1へ転送する。レジスタ3が一杯であ
るとすると、そのレジスタはレジスタ2
へ転送し、命令フエツチは出されない。
レジスタ3が空であれば、レジスタ2は
不変であるが空であるとマークされる。
また、命令フエツチがIDにより禁止さ
れなければ、命令要求フエツチ要求が出
される。 3 レジスタが妥当データを含む時はその
レジスタは一杯であると常にマークさ
れ、含んでいるデータが新しいレジスタ
へ移動させられて、その後へ新しいデー
タが入れられない時は、そのレジスタは
空であると常にマークされる。 (ハードウエアのリセツトまたはマイ
クロコードの制御により)IDが初期設
定されると、FIFO内の全てのエキスト
ラクタ・レジスタは空であるとマークさ
れる。最初の命令フエツチからのデータ
が戻されると、そのデータはレジスタ1
と2へ入る。IDがデータの最初の16ビ
ツトを処理した後で、レジスタ2がレジ
スタ1へ転送されて、命令フエツチ要求
が出される(その理由は、レジスタ3が
空だからである)。このフエツチからの
データはレジスタ2と3へロードされ
る。その後で、レジスタ3はレジスタ2
へ転送され、初めの16ビツトが処理され
た時にレジスタ2はレジスタ1へ転送さ
れる。次の16ビツトが処理された後で、
レジスタ2はレジスタ1へ転送され、命
令フエツチが出される。フエツチからの
データはレジスタ2と3へロードされ
る。この動作はIDが再び初期設定され
るまで反復される。 エキストラクタ・レジスタ制御ロジツ
クはエキストラクタ作動可能信号を介し
てのSREGのロードを禁止する。エキス
トラクタが作動可能状態であれば、
SERGは次の状態をロードされるだけで
ある。IDが16ビツトの処理を終ると、
制御ロジツクはBIPバスからあふれ信号
を常に受ける。このあふれ信号は、作動
可能となつていないエキストラクタをセ
ツトし、かつエキストラクタ・レジスタ
FIFOにおけるデータ転送を開始させる
ために制御ロジツクにより用いられる。
命令フエツチが求められなければ、
FIFO内のデータは移動させられて、エ
キストラクタは再び作動可能であること
がマークされる。命令フエツチが求めら
れると、命令フエツチが終るまではエキ
ストラクタは作動不能状態を保つ。フエ
ツチが終ると、エキストラクタが作動可
能状態になつたことがマークされて、他
の条件(たとえばPIRが一杯)により阻
止されない限りは、IDは動作を継続で
きる。 飛越しの効率を高くするために、エキ
ストラクタ・レジスタ制御ロジツクには
特殊な手段が含まれる。飛越し命令の飛
越し基準をIDが処理する時までに、そ
の命令の最大の長さは判明する。制御ロ
ジツクにより検査が行われる。その命令
の残りがエキストラクタの中に含まれて
おれば、命令のフエツチは禁止される。
そのために、飛越しが行われるために用
いられないデータに対する命令のフエツ
チが阻止される。エキストラクタ制御ロ
ジツクがあふれを受けたとすると、
FIFO内のデータは依然として動かされ
るが、命令のフエツチは行われない。し
かし、そうするとエキストラクタ内に妥
当データの16ビツト以下が含まれている
状態でIDがランを続けるから、問題が
起ることがある。 飛越しが行われたとすると、エキスト
ラクタが飛越し命令を全部含んでおれば
命令フエツチが禁止されるだけであるか
ら問題は起らない。IDが飛越し命令の
復号を完了すると(その復号中に飛越し
が行われる)、MISがターゲツト命令を
ロードして、IDを再スタートさせるま
でIDは停止させられる。 エキストラクタが妥当データの16ビツ
トを含んでおらず、しかも飛越しが行わ
れなければ(条件付き飛越しのみ)、問
題がある。飛越しの後でIDが命令の復
号を開始すると、第2のエキストラク
タ・レジスタにいずれかのデータを必要
としたとすると(この第2のレジスタは
空であるから)、IDは不当なデータを復
号できる。これを阻止するために、飛越
しを行わないという決定が行われた時に
レジスタ2が調べられる。その時には命
令フエツチは禁止されない。レジスタ2
が空であると、エキストラクタは作動可
能状態になつていないことがマークさ
れ、命令フエツチ要求が出される。 (1.2.2.3) EXBUF符号器および制御器 エキストラクタは妥当データの16ビツト
をIDへ常に与えるが、論理アドレス情報
の長さは16ビツトでないことがある。デー
タがEXBUF FIFO308を介して実行装
置へ転送される前に、そのデータをフオー
マツトするためにEXBUF符号器768が
用いられる。論理アドレス情報に対して
は、要求されたフオーマツトは論理アドレ
ス情報に0〜16ビツトを単にパツドするだ
けである。このようにして、実行装置が妥
当論理アドレス情報の16ビツトを受けるこ
とが保証される。 命令装置は飛越しのためのターゲツト・
アドレスの計算も行う。実行装置がその命
令ポインタを更新でき、かつターゲツト命
令をフエツチできるように、このデータは
実行装置へ転送せねばならない。この飛越
しターゲツト・アドレス情報はEXBUF符
号器により、実行装置に対して求められる
アドレスの計算を簡単にする様式にフオー
マツトされる。 EXBUF符号器はBIPバスの内容を
EXBUF FIFO308を介して実行装置へ
転させることもできる。このデータは障害
回復のために用いられる。この場合には、
BIPバス・データに0〜16ビツトがパツド
される。 EXBUF符号器は符号器制御器により制
御される単なるマルチプレクサである。こ
の符号器制御器はPLAロジツクからのあ
る制御情報はもちろん、フイールド情報の
長さを受ける。符号器制御器はBIPバス・
ロジツクからの制御情報も受ける。この情
報はEXBUF符号器を通るデータの適切な
経路を選択するために用いることができ
る。 (1.2.3) BIPバス・ロジツク BIPバス・ロジツクはエキストラクタのた
めの現在のビツト・ポインタを発生する。ま
た、このBIPバス・ロジツクは飛越しターゲ
ツト・アドレスのビツト・ポインタ部分を計
算する。このターゲツト・アドレスはビツ
ト・ポインタにロードして、飛越しの命令装
置部分を完了する。このBIPバス・ロジツク
はスターテイング・ビツト・ポインタ・アド
レス情報を保持するいくつかのレジスタも含
む。そのポインタ・アドレス情報はマイクロ
コードの制御の下に実行装置へ転送できる。 BIPバス・ロジツクはビツト・ポインタ更
新ロジツクと、TBIPロジツクと、BIPスタ
ツク304との3つの主なブロツクより構成
される。 (1.2.3.1) ビツト・ポインタ更新ロジツク ビツト・ポインタ更新ロジツクはPLA
ロジツクからビツト・ポインタ更新情報を
受けて、エキストラクタが使用する現在の
ビツト・ポインタを発生する。PLAロジ
ツクからの更新情報はBIP302へ加えら
れる。このレジスタは前のビツト・ポイン
タを含み、BIP加算器772の出力が現在
のビツト・ポインタとしてコンポーザ・マ
トリツクスへ送られる。 エキストラクタが16ビツト境界を横切つ
たことをビツト・ポインタ更新ロジツクが
検出するたびに、その更新ロジツクはエキ
ストラクタへそのことを知らせる。これは
BIP加算器からの桁あげをエキストラクタ
へ転送することにより行われる。IDが16
ビツト境界を横切るとBIP加算器が常に重
なり合う。エキストラクタ・レジスタも16
ビツト長であるから、重なり合つたビツ
ト・ポインタは依然として正しいが、今は
エキストラクタの中の第2の語を指す。エ
キストラクタが(ビツト・ポインタが重な
り合うのと同時に)あふれ指示を受ける
と、エキストラクタ・レジスタFIFO更新
が開始される。これによりエキストラクタ
301の第2の語が第1の語にされる。ビ
ツト・ポインタが正しいから、エキストラ
クタが再び作動可能状態になるとただちに
進む。 BIPへはいくつかのソースからロードで
きる。正常動作中は、IDが次の状態へ進
むとBIPがBIP加算器の出力を常に受け
る。何らかの理由でIDが停止したとする
と、BIPは更新されない。その結果、エキ
ストラクタは同じフイールドを指し、進む
ことを許されるまでIDはループする(そ
の理由はSREGローデイングも禁止される
からである。 BIP302へは実行装置からのBP/F
バス217の内容もロードできる。マイク
ロ命令の流れの中の任意の点へIDを初期
設定できるのはこの機構を介してである。
しかし、簡単な飛越しの場合には、新しい
ビツト・ポインタが実行装置で計算されて
BIPへ転送される。これにより実行装置の
介在の必要がなくなる。 (1.2.3.2) TBIPロジツク TBIPロジツクは飛越しのためのターゲ
ツト・ビツト・ポインタ情報を発生する。
このTBIPロジツクは絶対飛越しアドレス
と相対飛越しアドレスの双方を取扱う。絶
対飛越しの場合には、ターゲツト飛越しア
ドレスからのビツト・デイスプレースメン
トがエキストラクタからTBIP(ターゲツ
ト・ビツト・ポインタ)レジスタ306へ
転送される。このターゲツト飛越しアドレ
スの残りはEXBUF符号器によりフオーマ
ツトされてから、EXBUF FIFO308を
介して実行装置へ転送される。 相対飛越しターゲツト・アドレス発生は
下記のようにして行われる。エキストラク
タからの相対飛越しターゲツト・アドレス
は加算器774により、飛越し命令の初め
のビツト・ポインタの値に加え合わされ
る。この初めのビツト・ポインタ値はBIP
スタツク304に貯えられている。加算が
終ると、TBIP306に貯えられているタ
ーゲツト・アドレスのビツト・デイスプレ
ースメントとターゲツト・アドレスの残り
の部分がEXBUF符号器768によつてフ
オーマツトされてから実行装置へ転送され
る。実行装置はこのターゲツト・アドレス
を用いて新しい命令ポインタを発生する。 TBIPレジスタ306はマイクロコード
の制御の下にBIP302へロードされる。
飛越しが行われるとMISはIDの動作を停
止させて、エキストラクタ・レジスタが空
であることをマークする。それからTBIP
はBIPへ転送される。IDが動作を開始する
とエキストラクタ・レジスタが空であるこ
とを知るから、命令のフエツチを開始す
る。実行装置はその命令ポインタにターゲ
ツト・アドレスを有するから、ターゲツト
命令の最初の32ビツトがエキストラクタへ
ロードされる。それからIDはターゲツト
命令の復号を開始できる。 (1.2.3.3) BIPスタツク BIPスタツク304は現在復号されてい
る命令および実行されている命令に対する
スターテイング・ビツト・ポインタ値をセ
ーブするために用いられる。障害復旧を助
けるために、この情報をマイクロコードの
制御の下に実行装置へ転送できる。また、
BIPスタツク素子をBIPへロードできる。
このBIPロード性能によりIDは命令を再び
復号できる。 BIPスタツク304はIDが新しい命令の
復号を開始すると常にプツシユされる。
MISが先取りモードにある時は、BIPスタ
ツクのトツプ素子はIDにより現在復号さ
れている命令のためのスターテイング・ビ
ツト・ポインタを含み、BIPスタツクの第
2の素子はMISにより現在実行されている
命令のためのスターテイング・ビツト・ポ
インタを含む。いずれかの命令が障害を起
すと、BIPスタツクの素子をBIPまたは実
行装置へ転送できる。IDが先取りモード
にない時は、BIPスタツクのトツプ素子は
復号されている命令のスターテイング・ビ
ツト・ポインタを含む。BIPスタツクのト
ツプ素子は、相対的な飛越しターゲツト・
アドレス計算のためにTBIPによつても使
用される。その理由は、その素子が飛越し
命令を開始するためのスターテイング・ビ
ツト・ポインタを含むからである。 (2.0) マイクロ命令シーケンサ(MIS) MISには3本の主なバス、すなわち、(1)チツ
プ間バス(ICB)、(2)デコーダ・バス(DB)、
(3)マイクロアドレス・バスがある。また制御回
路の3つの主な部分、すなわち、(1)MIS制御ロ
ジツク777、(2)障害制御ロジツク778、(3)
インターフエイス制御ロジツク780がある。
それら3本のバスと3つの制御回路部分はMIS
を6つの大きなハードウエア・ブロツクに論理
的に分割する。各ブロツクについて次の2.1〜
2.6項において個々に説明することにする。 (2.1) チツプ間バス(ICB) ICBはマイクロ命令と、場合によりデータと
を受けてそれを実行装置へ送るために用いられ
る16ビツト・プレチヤージ・バスである。この
ICBへ与えられるマイクロ命令のソースは(1)
PIR FIFO310、(2)マイクロプログラム
ROM、(3)TMPスタツク、(4)4種類のコンス
タント命令を保持するROM782,784,
786である。ICBへ与えられるデータのソー
スは(1)XBUF FIFO308、(2)FREGである。
MIS制御ロジツクはそれらのソースのうちのど
れがICBへ命令またはデータを与えて、マイク
ロ命令バス(MIB)を経て実行装置へ与える
かを決定する。 (2.1.1) PIR FIFO PIR FIFO310はフオースド・マイクロ
命令をバツフアする深さが2のFIFOである。
このPIR FIFOへはTROM307からの命
令デコーダによりロードされ、MIS制御ロジ
ツク776によりICBへ信号を与える。この
PIR FIFOには(1)PIR FULLと(2)PIR
EMPTYの2つのフラグが組合わされる。
PIR FULLはPIR FIFOへのロードを制御す
るために命令デコーダにより用いられる。
PIR FULLは、フオースド・マイクロ命令
が待機させられる状態にある時に、命令デコ
ーダがPIR FIFOをロードすることを禁止す
る。アサートされない時はPIR EMPTYは
PIR FIFO内で待つているフオースド・マイ
クロ命令の存在を示す。PIR FIFOは(1)IDが
停止させられた時に、(2)INITによりクリヤ
される。 (2.1.2) マイクロプログラムROM マイクロプログラムROM226は1語が
16ビツトより成る3.5K語のROMであつて、
種々のマクロ命令と障害ルーチンのためのマ
イクロ命令を含む。このマイクロプログラム
ROMはMIS制御ロジツクの制御の下にICB
へ出力を与える。このROMとICBの間には
クロツク制御されるラツチはなく、出力ドラ
イバがあるだけで、バスへ引き下げられる。
しかし、このROMの出力はマイクロ命令レ
ジスタ(MIR)と呼ばれる。 (2.1.3) TMPスタツク 一時スタツク(TMP)は再スタート可能
なアクセス・メモリ・マイクロ命令を貯える
ために用いられる深さが2のスタツクであ
る。アクセス・メモリ・マイクロ命令に障害
が起ると、MIS制御ロジツクがデコーダ・バ
スからのアクセス・メモリ・マイクロ命令を
TMPスタツクの上に押す。再スタート電流
アクセス・マイクロ命令を実行できる。それ
によりTMPスタツクの1番上のマイクロ命
令がICB上にポツプさせられ、かつマイクロ
命令バスからポツプさせられる。 (2.1.4) コンスタント・マイクロ命令ROM MIS制御ロジツクが信号を実行装置へ送る
ためには6つのマイクロ命令を有しているこ
とが必要である。最初の最も一般的なマイク
ロ命令はNOP782であつて、アイドリン
グ状態、待機状態およびパイプ・フイリング
状態の間に送られる。第2はマイクロ命令
ROMの流れシーケンスの初期設定時に送ら
れるセツト・ルツクアヘツド784である。
第3と第4の786はアクセス・メモリおよ
びアクセス・スタツクであつて、これらはア
クセス行先マイクロ命令の結果として送られ
る。全てのコンスタント・マイクロ命令は
MIS制御ロジツクにより制御される。第5は
命令セグメント読取りであつて、IDのエキ
ストラクタが空の時にIDの要求により送ら
れる。最後のマイクロ命令は実行装置障害状
態リセツトであつて、全ての障害サービス・
ルーチンが始まつた時に送られる。 (2.1.5) XBUF FIFO XBUF FIFOはマイクロ命令の復号の結
果としてマクロ命令流から得たデータをバツ
フアする。このデータはセグメント・セレク
タ、デイスプレースメント、イミーデイエイ
トまたは飛越し基準である。PIR FIFOがロ
ードされるやり方と全く同じやり方で
XBUF FIFOは命令デコーダによりロード
される。XBUF FIFOのローデイングを制
御するために命令デコーダへ与えられる類似
のXBUF FULLフラグがある。(1)成功しな
い条件付き飛越し(CINH)の間に、(2)IDが
スタートさせられた時に、(1)INITにより
XBUF FIFOがクリヤされる。 (2.1.6) FREG FREGは実行される最後のマクロ命令を独
自に指定する8ビツト障害符号を含む。
FREGはオペレータ障害符号転送マイクロ命
令の3番目のサイクルの間にICBへ転送され
る。 (2.1.7) デコーダ・レジスタ デコーダ・レジスタはMIS制御ロジツクで
復号する必要のある全てのマイクロ命令を保
持し、セーブする。これは、(1)データ
(XBUF、FREG等)、(2)多重サイクル・マイ
クロ命令が実行されている間にMIS制御ロジ
ツクにより送られるNOPを除き、ICBを介
して送られるものを全て含む。このデコー
ダ・レジスタの出力はデコーダ・バスへ与え
られる。 (2.2) デコーダ・バス(DB) デコーダ・バスはデコーダ・レジスタの出力
から駆動される16ビツト・バスである。このデ
コーダ・バスは(1)TMPスタツク、(2)マイクロ
アドレス・バス790、(3)QPLA792、(4)デ
コーダ794の4つの場所へ出力を与える。こ
のデコーダ・バスの目的は、現在実行されてい
るマイクロ命令を適切な制御ロジツクへ送るこ
とである。TMPスタツクとデコーダ・レジス
タについては既に説明した。デコーダとQPLA
については(2.4)節でMIS制御ロジツクにつ
いて説明する際に説明する。 (2.3) マイクロアドレス・バス(MAB) MABはマイクロ命令ROMアドレス(マイ
クロアドレス)をマイクロ命令アドレス・レジ
スタ(MAR312)へ転送することを目的と
する12ビツトのプレチヤージされるバスであ
る。マイクロアドレスのソースは(1)スターテイ
ング・アドレス・レジスタ783、(2)インクレ
メンタ、(3)マイクロアドレス・スタツク、(4)
FROM779、(5)コンスタント・マイクロア
ドレス781である。これらのソースについて
以下に個々に説明する。 (2.3.1) マイクロアドレス・レジスタ(MAR) マイクロアドレス・レジスタ312はマイ
クロプログラムROM226へのアドレス入
力をドライブする。このマイクロアドレス・
レジスタはMIS制御ロジツク776により制
御され、マイクロアドレス・バスからデータ
を受けることができ、または多重サイクル・
マイクロ命令の間に待つている場合における
ように、いくつかのサイクルの間に不変のま
までいることができる。 (2.3.2) スターテイング・アドレス・レジスタ
(SAR) SAR783は、スターテイング・アドレ
スをROM流れシーケンスへ与えるOPLAの
出力へつけられた名称である。SARの
OPLAに対する関係は、MIRのマイクロ命
令ROMに対する関係と全く同じである。
SARはマイクロアドレス・バス上のプルダ
ウンとして簡単にインプリメントされる。マ
イクロアドレス・バスへのSARの転送は
MIS制御ロジツクにより指令される。 (2.3.3) インクレメンタ(INC) インクレメンタ314は112ビツトMAR
+1を計算する。それは、ROMの流れの間
にマイクロプログラムROM中の次のマイク
ロ命令をアクセスするために、マイクロアド
レス・バスを介してマイクロアドレス・レジ
スタへ転送される。このインクレメンタは
MIS制御ロジツクの指令の下にマイクロアド
レス・バスへ転送される。 (2.3.4) マイクロアドレス・スタツク マイクロアドレス・スタツク361はマイ
クロサブルーチンの間に戻りマイクロアドレ
スを保持する。このスタツクは(1)マイクロア
ドレス・レジスタ312と、(2)インクレメン
タ314との2つのソースからのデータをプ
ツシユできる。飛越しサブルーチン・マイク
ロ命令が復号された時にインクレメンタはプ
ツシユされる。MISがROM流れシーケンス
にあつた時に、障害ルーチンの初めにマイク
ロアドレス・レジスタはプツシユされる。マ
イクロアドレス・スタツクはMIS制御ロジツ
クの制御の下にマイクロアドレス・バスへ出
力する。このスタツクは(1)マクロの終りマイ
クロ命令が実行された時に(1)INITによりク
リヤされる。 (2.3.5) 障害ROM(FROM) FROMは障害流のためのスターテイン
グ・アドレスを含む13×12ビツトROMであ
る。障害シーケンスを開始するために、MIS
はFROMからの適切なスターテイング・ア
ドレスをマイクロアドレス・バスを介してマ
イクロアドレス・レジスタへ与える。障害制
御ロジツクはどれが適切なスターテイング・
アドレスであるかを決定し、その情報を
FROMへ直接与える。 (2.3.6) コンスタント・マイクロアドレス MISはCLEARである1つのコンスタン
ト・スターテイング・アドレス781を出
す。(FROMもコンスタント・アドレスを含
むが、FROMとCLEARは制御されるやり方
が異なるから、両者を別々にしておくことは
有用であることに注意されたい。)CLEAR
はINITの間にフオースされるスターテイン
グ・アドレスで、アドレス中である。 (2.4) MIS制御ロジツク この節では、主な制御ブロツクの機能または
目的を定義し、かつ利用できる主なフラグと信
号の意味について説明する。 (2.4.1) 主な制御ブロツク MISを制御するのに必要な決定を行うため
に3つの主なブロツクを利用できる。第1の
ブロツクは、MISが行おうとすることについ
ての最後の決定権を有する制御優先符号器7
76である。第2のブロツクは、復号された
現在のマイクロ命令を基にして決定を行うマ
イクロ命令PLA(QPLA−792)である。
第3のブロツクは、命令装置制御マイクロ命
令を実行するのに必要な制御信号であるデコ
ーダ794である。 (2.4.1.1) 制御優先符号器 制御優先符号器776はMISの状態に影
響を及ぼす主なフラグと信号の全てをモニ
タする。後で説明する優先計画を基にし
て、優先符号器はMIS内の3本の主なバス
を往来する信号を制御する。 (2.4.1.2) シーケンサPLA(QPLA) QPLA792は基本的には多重サイク
ル・マイクロ命令の実行に責任を負うもの
で、デコーダ・バスをモニタする。QPLA
792はMIS機能ブロツクへの必要な制御
信号をアサートし、制御優先符号器へタイ
ミング信号と必要な状態信号を与えて、多
重サイクル・マイクロ命令が適切に実行さ
れるかを調べる。 (2.4.1.3) デコーダ デコーダ794は1サイクル命令装置制
御マイクロ命令を復号し、それらの命令の
実行に必要な制御信号を与える。下記の表
はデコーダにより取扱われるマイクロ命令
と制御信号を示すものである。
更に詳しくいえば、マクロ命令を復号して、実行
装置がそのマクロ命令に符号化されている機能を
エミユレートするために必要なマイクロ命令を発
生するための改良した命令翻訳装置に関するもの
である。 1978年12月21日付の未決の米国特許出願第
971661号(米国特許第4325120)「データ処理装置
(Data Processing System)」には超LSI技術の
最新の成果をフルに利用しているオブジエクト指
向のデータ処理装置アーキテクチヤが開示されて
いる。この米国特許出願にはそのアーキテクチヤ
によりサポートされる種類のデータの広い範囲に
わたつて、一般化された演算を行うことができる
汎用処理装置が記述されている。そのような複雑
なマイクロプロセツサはいくつかの複雑な論理回
路を必要とする。今日の集積回路技術にとつて、
この複雑なマイクロプロセツサは1枚のチツプで
作るには大規模すぎるから、何枚かのチツプに分
割して作らなければならない。この論理回路を分
割する場合にはいくつかの要素を考慮せねばなら
ない。まず、チツプ上における熱発散ができるだ
け一様になるように熱分布について考えねばなら
ない。更に、チツプ間の効果的な交信を最少限の
相互接続数で行わねばならない。最後に、ある特
定の情報の流れを完成するために、チツプ間の帰
還量を最少に抑えたきれいな情報の流れがなけれ
ばならない。その理由は、チツプの境界をこえて
データのやりとりを行うためには時間と電力とを
必要とし、かつバツフアを行わなければならない
からである。したがつて、最適な分割により、あ
る機能を行うのに必要なサイクル数が最少とな
る。前記米国特許出願に開示されているように、
マイクロプロセツサは命令装置と実行装置に分け
てそれぞれ異なるチツプに作られる。それらのチ
ツプの間の通信はチツプ間バスを介して行われ
る。入力/出力装置のような外部装置との通信
は、1978年12月21日付の未決の米国特許出願第
972007号(米国特許第4315308号)「マイクロプロ
セツサ・チツプと周辺サブシステムとのインター
フエイス(Interface Between a
Microprocessor Chip and Peripheral
Subsytem」に詳しく記載されているインターフ
エイスを介して行われる。 以下に述べるのは、マイクロプロセツサを何枚
かの集積回路チツプに分割して作る際に起る問題
を解決する従来の技術のいくつかについての概要
である。 米国特許第3821715号においては、マイクロプ
ロセツサはメモリ・インターフエイスで分割され
て、数枚チツプで作られる。各メモリ・サブシス
テムは複数のメモリ・チツプのうちのどれを中央
処理装置でアドレスするかを決定するための復号
回路を含んでいる。この米国特許は、いくつかの
メモリが別々のチツプに作られて共通のデータバ
スとCPUへ結合されるような種類のシステムを
表わすものである。この米国特許は命令装置と実
行装置のインターフエイスにおいてマイクロプロ
セツサを分割する技術に関するものである。 米国特許第3918030号には機能を反復するため
に命令装置デコーダにおいて分割されるマイクロ
プロセツサが開示されている。このマイクロプロ
セツサにはいくつかの命令デコーダが設けられて
おり、各デコーダはただ1つの命令だけに応答す
る独立したパツケージを有する。この米国特許命
令装置内の命令デコーダが全ての命令を受け、そ
れに従つてそれらの命令を復号することによりパ
イプライン方式によるアーキテクチヤを構成する
類の異なる手法に関するものである。 米国特許第3984813号にはメモリとCPUをそれ
ぞれ異なるチツプで形成するようにしてマイクロ
プロセツサを分割する技術が開示されている。
CPUチツプにはCPUの標準的な構成素子が含ま
れているが、プログラム・カウンタは含まれてい
ない。別のチツプに設けられている専用プログラ
ム・カウンタは、CPUの動作と同期して駆動さ
れて、そのプログラム・カウンタを制御する適切
な制御信号がCPUからプログラム・カウンタへ
送られるようになつている。しかし、この米国特
許には、1枚のチツプに作るには大規模すぎる
CPUを最適に分割する、前記米国特許出願第
971661号に開示されている技術のような技術は開
示されていない。 最後に、米国特許第4057846号にはパイプライ
ン方式のマイクロプロセツサが開示されている。
しかし、この米国特許には、マイクロプロセツサ
を2枚のチツプに分割するのにパイプライン技術
をどのように利用するかについては開示されてい
ない。 本発明の目的はマクロ命令を受けるため、およ
び実行装置が利用する一連のマイクロ命令を発生
するために、前記実行装置が作られているチツプ
とは異なるチツプに作られる命令装置を得ること
である。 本発明の別の目的は、1つのマクロ命令のため
のマイクロ命令シーケンスを発生でき、その間に
次のマクロ命令のフイールドの復号と翻訳を行う
ことができる命令装置を得ることである。 本発明の更に別の目的は可変ビツト長命令を処
理する命令装置を得ることである。 本発明の更に別の目的は、ある特定のマイクロ
命令の流れを完成するために、外部の実行装置か
らの帰還量を最少限に抑えて、その実行装置へマ
イクロ命令のきれいな流れを与える命令装置を得
ることである。 要約すれば、それらの目的は、主メモリからマ
クロ命令を受ける命令デコーダIDと、受けたマ
クロ命令を実行するために必要なマイクロ命令の
流れをシーケンスするためのマイクロ命令シーケ
ンサ(MIS)とを含むマイクロプロセツサの命令
装置を得ることにより、本発明に従つて達成され
る。マイクロ命令シーケンサ(MIS)はその中に
保持されている(複数のマイクロ命令で構成の)
マイクロ命令ルーチンのための、命令デコーダ
(ID)からのスターテイング・アドレスを受ける
要素を含む。このMISはIDからの単一マイクロ
命令であるフオースド・マイクロ命令を受ける要
素も含む。 フオースド・マイクロ命令をバツフアするため
にIDとMISの間にバツフア要素が設けられてい
る。IDによる新しいフオースド命令の発生を、
バツフアが一杯の時には、常に禁止するために
MISにより制御される制御器が設けられる。この
ようにして、MISは与えられたマクロ命令の実行
に必要ないくつかのマイクロ命令をシーケンシン
グでき、その間にIDは新しいマクロ命令のフイ
ールドを復号および翻訳し、その新しいマクロ命
令に関連するフオースド・マイクロ命令でバツフ
アをおそらく一杯にする。 本発明の1つの面に従つて、MISにより処理さ
れているマクロ命令に続くマクロ命令をIDが処
理する時に、IDを先取り(ルツク・アヘツド)
モードに常に置くための要素が設けられる。この
モードにある時は、MISは前記バツフアからフオ
ースド・マイクロ命令を受けることを阻止され
る。 本発明の別の面に従つて、前の流れが終了した
時およびフオースド・マイクロ命令バツフアが空
いている時だけIDからスターテイング・アドレ
スを受け、それにより以前の全てのマクロ命令を
確実に終らさせるようにするための要素がMISに
設けられる。 本発明は、マクロ命令のフエツチと翻訳を行う
ことができるIDと、このIDとは独立に動作でき、
かつ以前のマクロ命令を処理する(すなわちルツ
ク・アヘツド・モードに入る)MISとの別々のプ
ロセツサを作ることによる利点を有する。このよ
うに構成することにより、本発明のようにしない
時はマイクロ命令シーケンサが引き続くサイクル
で「no−op」マイクロ命令を発生し、その間に
命令デコーダが新しい命令を翻訳することを待つ
ような状況においてスループツトが向上する。 以下、図面を参照して本発明を詳細に説明す
る。 ここで行う予備的な説明は、本発明が具体化さ
れる命令装置の各種の構成部品の概略について述
べ、この明細書全体を通じて用いられる技術のい
くつかについての手引を与えようとするものであ
る。本発明を実施できる種類のデータ処理装置は
前記米国特許出願第971661号に詳しく説明されて
いる。この米国特許出願の第5図と第6図には、
本発明の命令装置をデータ処理装置の他の部分と
どのようにして相互接続するかが示されている。
命令装置は2部分汎用データ処理装置の1つの部
分である。第2の部分は装置間バスを介して命令
装置と交信する実行装置である。実行装置につい
ては前記米国特許出願第971661号に詳しく説明さ
れている。命令装置および実行装置とデータ処理
装置の他の部分との間のインターフエイスについ
ては、前記米国特許出願第972007号に詳しく説明
されている。理解を容易にするために、前記米国
特許出願第971661号において種々の機能データ・
ブロツクを表わすために用いている参照番号を、
この明細書においても同じブロツクを表わすため
に用いることにする。 まず第1図を参照して、命令装置は命令デコー
ダ(ID)222とマイクロ命令シーケンサ
(MIS)224との2つのプロセツサで構成され
る。これら2つのプロセツサは何本かの多心バス
と何本かの制御線を介して相互に作用し合う。命
令装置はアドレス/制御/データ(ACD)バス
および装置間バスとの2本のバスと相互作用す
る。 ACDバス214はバス・トランザクシヨン中
の異なる時間にアドレス信号、制御信号またはデ
ータ信号を送ることができる。バス・トランザク
シヨン中にACDバスは各種の情報を伝えること
ができるが、バス・インタ・フエイス・ロジツク
780がISAとISBをモニタすることによりバス
線の状態を決定できる。このバスについては前記
米国特許出願第972007号に詳しく述べられてい
る。 装置間バスは命令装置と実行装置の間の通信リ
ンクである。この装置間バスはマイクロ命令と、
データと、論理アドレス情報を命令装置から実行
装置へ伝える。装置間バスはMISの状態および障
害情報と、IDのビツト・ポインタ情報も伝える。
この装置間バスはマイクロ命令バス220と
BP/Fバス217を有する。また、状態符号ビ
ツトを実行装置から命令装置へ戻すTRUE線2
18と、命令装置の障害が実行装置により検出さ
れたことを知らせるFAULT線と、可変サイク
ル・マイクロ命令の完成を知らせるDONE線と
が更に設けられる。 マイクロ命令バス220は命令装置から実行装
置への一方向バスである。このバスはマイクロ命
令と、データと、論理アドレスデータとを実行装
置へ転送するために用いられる。内部的にはこの
マイクロ命令バスはいくつかの場合をソースとす
ることができる。マイクロ命令ルーチンを構成す
るマイクロ命令はMISの制御の下にマイクロプロ
グラムROM226から読出されて、マイクロ命
令バスを介して実行装置へ送られる。しかし、
IDはマイクロプログラムROMからサイクルを
「盗んで」、単一(フオースド)マイクロ命令をマ
イクロ命令バスを介して強制的に送ることもでき
る。 命令装置により出された1つのマイクロ命令に
より、実行装置内で一連の動作がひき起される。
たとえば、ACCESS MEMORYと呼ばれる1つ
の命令が与えられると、実行装置は物理的アドレ
スを発生し、アクセスの権利を調べ、バス要求を
出し、トランザクシヨンを実行する。それらの可
変サイクル・マイクロ命令の場合には、実行装置
はマイクロ命令が完了した時に「done」信号を
(DONE線を介して)命令装置へ戻す。 IDにより復号されるにつれて完全に実行でき
る多くのマクロ命令がある。それらの場合には、
IDはマイクロプログラムROMをアクセスする必
要は全くなく、その代りに、マクロ命令の実行に
必要な単一(フオースド)マイクロ命令をマイク
ロ命令バスに直接のせることができる。 マイクロ命令バスはデータ、セグメント・セレ
クタ、デイスプレースメント、飛越しアドレス情
報をIDから実行装置の保持レジスタへ転送する
ためにも用いられる。転送すべき情報は深さ
(deep)が2のFIFO(EXBUF308と呼ばれる)
に保持される。このFIFOへは各種の長さのデー
タをロードできる。転送されるデータは、実行装
置が16ビツトの妥当データを得るように、常に権
利が正当化され、先行の0〜16ビツトがパツドさ
れる。また、実行装置へ転送される前に相対的な
飛越し基準の符号は16ビツトまで自動的に延長さ
れる。 このEXBUFデータの転送を含むマイクロ命令
は多重サイクル・マイクロ命令である。このマイ
クロ命令は第1のサイクルの間に転送され、次の
サイクルの間にFIFOの内容が転送される。 BP/Fバス217は実行装置から命令装置へ
の一方向バスである。それらのバスは障害が生じ
た時に障害状態の符号化を行うために用いられる
とともに、マクロ命令飛越しの場合にビツト情報
をIDへ送るためにも用いられる。 実行装置は命令装置に特別な動作を行わせる多
くの障害を検出する。障害が生じた場合は、実行
装置からのFAULT線がアサートされ
(asserted)て、その障害を示す符号がBP/Fバ
スの命令装置へ送られる。この障害符号は、「障
害」ROM779からの正しい障害マイクロ命令
のスターテイング・アドレスを選択するために命
令装置により用いられる。障害が起ると、実行さ
れているマイクロ命令の流れが中断され、障害の
流れの実行が開始される。障害の流れが終ると、
可能であれば中断されているマイクロ命令の流れ
を再開できる。 BP/Fバスは飛越しの実行のためにも用いら
れる。命令装置/実効装置対のためのプログラ
ム・カウンタは2つの部分として貯えられる。す
なわち、二重バイト・ポインタが実行装置に貯え
られ、ビツト・ポインタが命令装置に貯えられ
る。飛越しの場合には、実行装置はプログラム・
カウンタ全体に対して何らかの計算を行わねばな
らないかもしれない。これを行えることができる
ようにするために、2つの装置の間でビツト・ポ
インタ情報を転送するための機構が設けられてい
る。すなわち、ビツト・ポインタはEXBUF
FIFOを介して実行装置へ送ることができ、新し
いビツト・ポインタをBP/Fバスを介して命令
装置へ戻すことができる。命令装置は、FAULT
線がアサートされなければ、BP/Fバスがビツ
ト・ポインタ情報を伝えると常に仮定している。
FAULT線がアサートされると、BP/Fバス上
の情報は障害符号として解される。BP/Fバス
は、飛越しがオペランド・スタツクの1番上を通
るならば、オペランド・スタツク(実行装置に保
たれている)の1番上の下位4ビツトをビツト・
ポインタへ送るためにも用いられる。 装置間バスの残りの線はTRUE線とDONE線
である。それらの線は実行装置から命令装置まで
の一方向線であつて、状態情報を命令装置へ戻す
ために主として用いられる。 TRUE線はマイクロコード中の条件付き飛越
しが行われる時に常に用いられる。マイクロプロ
グラムは飛越しさせたいと望む動作を行い、それ
から適切な条件フラグを(TRUE線を介して)
命令装置へ送つて、そこに保持することを要求す
る。それから、命令装置はその条件を基にして飛
越しを行う。 DONE線219は、ある多重サイクル・マイ
クロ命令の実行中に、命令装置へ「DONE」信
号を戻すために用いられる。この「DONE」信
号は多重サイクル・マイクロ命令が終ろうとして
いることを命令装置へ知らせる。命令装置は、多
重サイクル・マイクロ命令が実行装置へ転送され
ていることを検出し、実行装置がそのマイクロ命
令を終ろうとしていることをDONE線が示すま
で、そのマイクロ命令をループ・オンする。命令
装置が多重サイクル・マイクロ命令をループ・オ
ンしている間に、命令装置はNO−OPを実行装
置へ送る。マイクロ命令が終ろうとしていること
をDONEが示すと、命令装置は続行する。
「done」信号は実行装置がそのマイクロ命令の実
行を終る2分の1サイクル前に、実行装置により
実際に送り出される。これは、再開までに失われ
るサイクルがないように、MISパイプラインが早
く一杯になるようにするためである。 命令デコーダ222はACDバス214上の命
令の流れのバイトを受ける。IDがある命令のフ
イールドを翻訳して、実行装置が命令を実行する
のに必要な、マイクロ命令を発生し、またはより
長いマイクロプログラム・ルーチンのためのスタ
ーテイング・アドレスを発生する。IDは論理ア
ドレス情報の書式化も行う。この情報は実行装置
の保持レジスタへ送られる。 マイクロ命令シーケンサ224はマイクロ命令
と、マイクロプログラム・ルーチンのためのスタ
ーテイング・アドレスをIDから受ける。MISは
マイクロ命令を復号して、それを実行装置へ送
る。実行装置はそれらのマイクロ命令を実行す
る。 2つの先入先出(FIFO)バツフアがMISとID
の間に設けられる。EXBUF308がIDからXバ
ス700を介して受けたデータをバツフアする。
このバツフアのレジスタが一杯になつた時にそれ
を示すために、このバツフアにEXBUF−フル・
フラグが組合わされる。IDからPバス702を
介して受けるフオースド・マイクロ命令をバツフ
アするためにPIRバツフア310が設けられる。
このバツフアのレジスタが一杯になつた時にそれ
を指示するために「PIR−フル」フラグがこのバ
ツフアに組合わされる。また、このバツフアのレ
ジスタが空になつているか否かを指示するために
「PIR−空」フラグが設けられる。 IDはMISフオースド・マイクロ命令をPバス
702を介して送り、長いマイクロ命令の流れの
ためのスターテイング・アドレスをSバス708
を介して送る。フオースド・マイクロ命令はPIR
FIFOにおいてバツフアされる。本発明の一実施
例においては、このPIR FIFOが2つのレジスタ
を含む。PIR−フル線704が附勢されていない
限りは、IDはフオースド・マイクロ命令をロー
ドできる。 命令デコーダが長い命令の流れのためのスター
テイング・アドレスを有すると、そのデコーダは
スターテイング・アドレス待ち線(SAW)線7
12をアサートすることによりMISへ合図し、停
止する。マイクロ命令シーケンサは、待つことが
あるスターテイング・アドレスを介してフオース
ド・マイクロ命令を常にサービスする。したがつ
て、PIR−空線がアサートされたとすると、MIS
はスターテイング・アドレスをマイクロ命令レジ
スタへロードすることによりスターテイング・ア
ドレスをサービスする。そうすると、MISはスタ
ーテイング・アドレスを受ける用意ができている
(RASA)線714をアサートし、流れアクテイ
ブ線710をアサートする(PIR−空線がアサー
トされないとすると、MISはPIR FIFOに貯えら
れている優先マイクロ命令を、スターテイング・
アドレスを受ける前にサービスすることになる)。 RASA線714がアサートされていることが
確認されると、IDはSAW線712のアサートを
停止して続行する。 そうすると、命令デコーダは先取りモードすな
わちルツクアヘツド(look−ahead)モードに自
由に入つて新しいマクロ命令をとり出し、その命
令の翻訳を開始し、その間にMISは前のマクロ命
令のマイクロ命令の流れをシーケンスする。 MISがIDからスターテイング・アドレスを受
けると先取り線718がアサートされ、マイクロ
プログラムの流れを開始する。この先取り線がア
サートされている間に、IDは次のマイクロ命令
の復号を自由に開始し、その間にMISが最初の命
令のシーケンスを行う。IDはMISに先んじて1
つ以上のマイクロ命令を得ることは決してない。
マイクロ命令の流れが終つた時に、「マクロの終
り」マイクロ命令または「飛越しマクロの終り」
マイクロ命令を実行しているMISの指示により、
先取り線718がMISによりアサーシヨンを解除
される。 命令デコーダがフオースド・マイクロ命令を出
すと、そのマイクロ命令はPIRに貯えられる。ID
がマイクロ命令をロードしようとした時にPIR−
フル線704がアサートされたとすると、PIR−
フル線がアサートを解除されるまでIDは待ち、
PIR−フル線704のアサートが解除されてから
IDはマイクロ命令をロードして次の状態へ進む。
マイクロ命令の流れがMISにより実行されている
限りは、MISはPIRからどのようなマイクロ命令
も受けない。IDは次の命令の復号を続行でき、
PIRが一杯になるまではPIRへのロードを続ける
が、MISが先行する命令を完了するまではPIR内
のマイクロ命令はいずれも実行されない。PIRは
先入先出レジスタであるから、PIRに保持されて
いるマイクロ命令がMISにより実行を許された時
に、それらのマイクロ命令は適切な順序で常に実
行される。 マクロ命令がACDバス214を介して命令バ
ツフア301へ与えられ、そこに貯えられる。マ
クロ命令はいくつかの可変ビツト長フイールドで
作られる。1度にマクロビツトの16ビツトがエキ
ストラクタ765へ転送される。復号すべきある
特定のフイールドのマクロ命令内のビツト位置を
ビツト・ポインタ302が指示する。このビツ
ト・ポインタの初期値はBP/Fバス217を介
して外部から設定される。その特定のフイールド
のビツトはエキストラクタにより抽出されて状態
マシーン305へ与えられる。この状態マシーン
はその特定のフイールドを復号し、マイクロプロ
グラム・ルーチンのためのデータとフオースド・
マイクロ命令およびスターテイング・アドレスを
バス700,702,708を介してそれぞれ発
生するロジツクを含む。復号が終ると、復号した
ばかりのその特定のフイールド内のビツトの数に
等しい桁送りカウントを状態マシーンは送り出
す。その桁送りカウントは加算器772において
ビツト・ポインタに加え合わされ、その和がビツ
ト・ポインタの値に置き換えられる。この新しい
ビツト・ポインタ値が処理すべき次のフイールド
を示す。 データがIDからXバス700を介して送られ
る。それらのデータはEXBUF308でバツフア
される。このEXBUFが一杯になるまでIDは
EXBUFへロードできるが、MISがデータ転送を
許すまではデータはマイクロ命令バス220を介
して送られることはない。これは、マイクロ命令
バツフア・レジスタ310に貯えられているフオ
ースド・マイクロ命令によつて、全ての転送をデ
ータ・バツフア308を通じて行わせることによ
り行われる。流れアクテイブが存在しなくなるま
ではMISはレジスタ310内のフオースド・マイ
クロ命令を実行しないから、レジスタ310内の
対応するフオースド・マイクロ命令が実行される
までは、バツフア308内のデータは実行装置へ
送られない。このような機構により、論理アドレ
ス情報をIDが重ねて書き込むことが阻止される
が、その情報は実行装置により依然として必要と
される。 スターテイング・アドレスのIDからMISへの
転送は完全にインターロツクされる。IDがスタ
ーテイング・アドレスをSバス708の上に発生
した時は、IDはMISにより常に制御される。流
れアクテイブが存在せず、かつPIR310が空の
場合には、MISはIDからのスターテイング・ア
ドレスを受けるだけである。これにより、新しい
マイクロ命令の流れがMISにより開始される前
に、全てのことが完了させられることになる。
RASA線714がMISによりアサートされるま
では、IDは新しい状態へ動くことを阻止される。
したがつて、IDがあるスターテイング・アドレ
ス・ウエイテイングを有しており、かつMISがそ
のアドレスを受ける用意ができていない時は、ス
ターテイング・アドレス・ウエイテイングでID
がループする。スターテイング・アドレスがとり
出され、RASA714がアサートされると、ID
は次のマクロ命令の復号を開始できる。 (1.0) 命令デコーダ(ID)についての説明 (1.0) 概要 第2図を参照する。IDはリセツトされた後
で、命令の流れの中で飛越しが実行される時
に、(マイクロコードの制御の下に)常に初期
設定される。この初期状態により命令のとり出
しが行わさせられて、その命令の最初の32ビツ
トでIDが一杯にされる。また、初期設定によ
りID状態シーケンサが命令のフイールドをク
ラス・フイールドとして解釈させられる。 IDはそのクラス・フイールドを調べ、レジ
スタ内におけるオペランドの長さをセーブし、
opcodeで後に用いるためにそのクラス・フイ
ールドを貯える。それから、IDはクラス・フ
イールドを過ぎてフオーマツト・フイールドま
で抽出器を更新し、そこでそのフオーマツトを
基にしてそれは適切な復号シーケンスまで飛越
す。 その命令中に明らかな参照があるものとする
と、IDはフイールドを処理し、論理アドレス
情報をセーブして、オペランドを取り出すのに
必要なマイクロ命令を強制する。 IDが(実行装置に貯えられている)全ての
オペランドを取り出すと、IDは命令のクラス
とopcodeにより指定されている動作を行うの
に必要なフオースド・マイクロ命令(簡単な動
作の場合)、またはマイクロプログラム流のた
めの適切なスターテイング・アドレス(より複
雑な動作の場合)のいずれかを選択する。その
動作がフオースド・マイクロ命令だとすると、
次にIDは次のマイクロ命令を強制する。その
マイクロ命令はその動作の結果を貯えさせ、そ
れに「マクロ命令の終り」表示子が続く。それ
からIDはそのスタート状態へ逆飛越しを行い、
そこで次の命令の復号を開始する。その動作が
スターテイング・アドレスを求めたとすると、
IDはスターテイング・アドレスをMISへ転送
し、次の命令の復号を開始できるようにそのス
タート状態へ飛越しで戻る。 IDがフオースド・マイクロ命令を出すと、
マイクロ命令が深さが2のFIFO、PIR310
内でセーブされる。MISはPIRを調べ、マイク
ロ命令ウエイテイングがあるものとすると、そ
れを復号してから実行装置へ送る。IDがフオ
ースド・マイクロ命令をロードしようとしてい
る時にPIR FIFOが一杯であるとすると、IDは
PIRが一杯でなくなるまで待つてマイクロ命令
をロードし、次の状態へ進む。 論理アドレス情報は深さが2のFIFO、
EXBUF308に貯えられる。その情報が
EXBUFへロードされる前に、実行装置が16ビ
ツトの妥当データを常に受けるように、その情
報は0〜16ビツトがパツドされる(論理アドレ
ス情報は可変ビツト長である)。飛越(基準の
場合には、実行装置にとつてターゲツト・アド
レス計算を簡単にする形にターゲツト・アドレ
スがフオーマツトされる。EXBUF FIFOの内
容はマイクロコードの制御の下に実行装置へ転
送できる。PIRのように、IDがEXBUF FIFO
へロードしようとする時にEXBUF FIFOが一
杯であるとすると、それが一杯でなくなるまで
IDは待ち、それからEXBUFをロードして次の
状態へ進む。 マクロ命令の長さは数百ビツトになることが
あるが、IDは1度にマクロビツトのたかだか
32ビツトを含むだけである。IDが貯えられて
いる32ビツトのうち最初の16ビツトを処理する
と、IDはマクロ命令の次の16ビツトをエキス
トラクタに再びロードする。その結果、エキス
トラクタは妥当データの少くとも16個の連続ビ
ツトを常に含む。この再ロードの間は停止させ
られ、その再ロードが終つた時だけ動作を続け
る。 IDはマクロ命令の32ビツトを1度に貯えて
いるだけとすると、IDは流れの16ビツトを処
理するたびに命令フエツチを出さねばならな
い。命令フエツチは多くのオーバーヘツドをし
よい込むから、IDは命令流データを待つため
にその時間の大部分を費す。この効果を最小に
するためにIDは別の16ビツト・バツフア・レ
ジスタを含む。命令フエツチは命令流の32ビツ
トを常にフエツチする。ビツトの半分がエキス
トラクタへ直接行き、残りの半分がこのバツフ
ア・レジスタに貯えられる。IDがエキストラ
クタ内の最初の16ビツトを処理した後で、バツ
フアの内容は抽出器へ送られ、命令フエツチは
出されない。この結果として1サイクルだけ遅
れる。エキストラクタの次の16ビツトが処理さ
れると、IDは次の命令フエツチを出し、妥当
データがメモリから戻されるまで待つ。 全飛越し命令がエキストラクタに貯えられて
いるとすると、より多くのデータのためにフエ
ツチを出すことはIDにとつて極めて非能率で
ある。それでもこれは可能である。その理由
は、フエツチが最初の16ビツト境界を横切つた
後でIDがフエツチを出すからである。命令の
残りの部分がエキストラクタの上側16ビツトの
中に入つたとすると、フエツチはむだになる。
これを防ぐために、エキストラクタが全体の命
令を含んでいることをIDが決定した時にIDは
フエツチを禁止できる。飛越しが終つた時に飛
越しが行われるものとすると、エキストラクタ
は何らかのやり方で再びロードせねばならな
い。飛越しが行われず、エキストラクタが一杯
でないとすると、IDは継続できるようになる
までにフエツチを出さねばならない。 できるだけ効率的なやり方で飛越しを取り扱
うことが望ましい。これは命令装置チツプ上で
必要な飛越しアクテイビテイの大部分を行うこ
とにより行われる。IDは飛越しターゲツトの
ための適切なビツト・ポインタを計算し、それ
をビツト・ポインタ・レジスタ(BIP)へ転送
させるための手段を含む。その結果、ターゲツ
ト・アドレス情報を実行装置から命令装置チツ
プへ転送する必要はない。 (1.2.1) PLAロジツク PLA段機械ロジツク305は命令のフイ
ールドを通じてIDをシーケンスし、フオー
スド・マイクロ命令と、その命令を実行する
ために必要なスターテイング・アドレスを発
生するものである。このロジツク305はい
くつかの部品、すなわち、SPLAおよび
SREGロジツクと、OPLAと、ESCマルチプ
レクサ(Mux)と、LREGと、TROM
MUXおよびTROMである。PLAロジツク
はMISからのある制御情報はもちろん、命令
の権利が正当化されているフイールドを受
け、フオースド・マイクロ命令と、MISのた
めのマイクロプログラム・スターテイング・
アドレスとを発生する。更に、PLAロジツ
クはBIPバス・ロジツクで使用するためのビ
ツト・ポインタ更新情報も発生する。PLA
ロジツクはIDのための制御信号のほとんど
を発生するIDCTLロジツクも含む。 SPLAおよびSREGロジツクはIDの実際の
シーケンシングを制御する。SREGはIDが現
在復号しているフイールドを指定する状態値
を含む。たとえば、IDが命令のクラス・フ
イールドを調べていることを1つの状態値が
示すことができる。SREGはいくつかのソー
スからロードできる。通常は、SPLAは
SREGの現在の内容と、エキストラクタから
復号されているフイールドの値とを基にし
て、SREGの次の状態を決定する。しかし、
ある条件の下では、SREGへはIDサブルーチ
ン・スタツク750のトツプ素子をロードで
き、またはコンスタントな「状態φ」をロー
ドできる。「状態φ」はIDの最初の状態であ
る。 命令の復号は非常にモジユラーであるか
ら、SREGへはIDサブルーチン・スタツク7
50からロードできる。戻り状態をSPLAの
制御の下にこのスタツク上にプツシユオンで
き、サブルーチンの流れに対して飛越しが行
われる。流れが完了すると、SREGはサブル
ーチン・スタツクから戻り状態を受ける。
SREGはSREG MUX752から状態φも受
ける。状態φはIDの最初の状態であつて、
IDが新しい命令の復号を開始するたびに入
れられる。 「状態φ」は各種の方法でSREGへロード
できる。たとえば、リセツトにおいてIDは
初期設定され、SREGへ「状態φ」がロード
される。IDがMISからIDスタート指令を受
けると、IDはマクロ命令の復号を最初から
始める。「状態φ」はMISによつてフオース
もされる。MISはIDをその初期状態へリセ
ツトするマイクロ命令を出すことができる。
そのためにIDはクリヤされ、ハードウエア
のリセツトと同じ効果が得られる。マイクロ
命令の流れにおける飛越しの後でIDが回復
できるようにするのはこの再スタート機構で
ある。飛越がMISにより検出されると、ID
はマイクロコードの制御の下にリセツトさ
れ、新しい命令ポインタが設定される。マイ
クロコードの制御の下にIDが再スタートさ
せられると、IDは新しいアドレスにおいて
命令の復号を開始する。IDが1つの命令の
復号を終り、次の命令の復号を開始した時に
は常に「状態φ」へも入る。 IDの動作はSREGのロードにより実際に制
御される。たとえば、IDエキストラクタが
(データを待つ)用意ができていないと、
SREGへは新しい値は常にロードされない。
その代りに、古い状態(古いエキストラクタ
内容)が再び使われる。これによりIDは同
じ状態に保たれる。エキストラクタに用意が
ととのうと、新しい状態がロードされ、エキ
ストラクタが更新されてIDは次の状態へ進
む。 フオースド・マイクロ命令とEXBUF動作
およびスターテイング・アドレスのために同
様な方法が設けられる。PIR308と
EXBUFは深さが2のFIFOであつて、MIS
によりアクセスされる。IDとMISは互いに
同期して動作するから、両者を交信させる何
らかの方法がなければならない。各FIFOに
はフル・フラグが組合わされる。このフル・
フラグはMISにより制御される。組合わされ
ているフラグが一杯の時にIDがPIRまたは
EXBUFをロードしようとしたとすると、そ
のロードは打ち切られてSREGへは新しい状
態はロードされない。その結果、影響を受け
たフル・フラグの状態がMISにより変えられ
るまで、IDは保持する。フル状態が除去さ
れるとIDは進む。 MISがスターテイング・アドレスをIDか
ら受けると、MISは先取りモードに入る。本
質的には、これはIDが次のマイクロ命令を
復号しており、その間にMISが現在のマイク
ロ命令を実行していることを意味する。両者
は同期していないから、全てが適切な順序で
行われるように注意せねばならない。 IDからのスターテイング・アドレスに加
えて、実行装置が障害を検出しているのであ
れば、障害ルーチンのためのスターテイン
グ・アドレスもBP/Fバス217を介して
受ける。MISがIDからのスターテイング・
アドレス、または障害ロジツクからの障害の
流れを実行していると、流れアクテイブ・フ
ラグが常にセツトされる。流れがMISにより
実行されている限りは、MISはPIR310か
らフオースド・マイクロ命令を受けない。
IDは次の命令の復号を続けることができ、
かつPIRが一杯になるまでPIRへのロードを
続けることができるが、PIR内のフオース
ド・マイクロ命令はいずれも実行されない。
PIRはFIFOであるからフオースド・マイク
ロ命令は正しい順序で常に実行されるが、そ
れらが実行されることをMISが許した時のみ
である。 EXBUFの動作のために同様な機構を利用
できる。EXBUF308が一杯になるまでID
はEXBUFにロードできるが、データの転送
をMISが許すまでは実行装置へ転送されるデ
ータはない。これはIDにより全てのEXBUF
転送をフオースド・マイクロ命令へリンクす
ることにより行われる。流れアクテイブがな
くなるまでMISはフオースド・マイクロ命令
は実行されないから、フオースド・マイクロ
命令が実行されるまではデータは実行装置へ
転送されない。これにより、実行装置により
論理アドレス情報が依然として必要とされる
間に、IDはその論理アドレス情報を重ねて
書くことが阻止される。 IDが発生したスターテイング・アドレス
も注意して取扱われる。1つの完全なマクロ
命令をIDがMISより先に得ることはさしつ
かえないが、1つ以上の命令を先にとること
は危険である。たとえば、どのフオースド・
マイクロ命令がどの命令に合うかをMISはど
のように知るのであろうか。IDは深さが2
のスタツク304を含む。このスタツクは実
行される命令と復号される命令のためのスタ
ーテイング・ビツト・ポインタを含む。新し
い命令の復号をIDが開始すると、このスタ
ツクは常にプツシユされる。第3の命令につ
いてIDがスタートを許されたとすると、デ
ータのうちのあるものが失われるから、障害
が起きた時にその障害から回復することは非
常に困難である。IDがスターテイング・ア
ドレスを発生すると、IDはMISにより常に
制御される。流れアクテイブが無くてPIRが
空の時は、MISはIDからスターテイング・
アドレスを受けるだけである。これにより、
新しい流れが開始される前に全てが終らされ
る。IDがスターテイング・アドレス・ウエ
イテイングを有し、かつMISがそれを受ける
用意がない時に、SREGは変化することを常
に阻止される。その結果、MISがスターテイ
ング・アドレスを受けるまでは、IDはスタ
ーテイング・アドレス・ウエイテイングをル
ープする。スターテイング・アドレスがとら
れた後で、SREGが解放されてIDは次の命令
の復号を開始する。 (1.2.1.2) OPLAロジツク OPLAはGDPマクロ命令セツト中の各
マクロ命令を実行するのに必要なスターテ
イング・アドレスまたはフオースド・アド
レスを含む。OPLAが復号している命令の
opcodeフイールドをIDが処理している時
に、OPLAは命令ごとに1回アクセスされ
るだけである。復号される命令のクラス・
フイールドはCREG754に貯えられ、エ
キストラクタからのopcodeの権利が正常
化されたビツト756とともに、そのクラ
ス・フイールドは動作のために適切なスタ
ーテイング・アドレスまたはフオースド・
マイクロ命令を選択するために用いられ
る。線がフオースド・マイクロ命令かスタ
ーテイング・アドレスのいずれであるかを
ID CTLに指定するビツトがOPLAの中に
ある。このビツトはSREGを制御し、スタ
ーテイング・アドレスをSバスに置くか、
フオースド・マイクロ命令を(TROM3
07を介して)Pバスへ置くために用いら
れる。OPLA線がフオースド・マイクロ命
令であると、IDはSPLAのシーケンスを続
けて結果を貯えさせ、次の命令の復号が始
まる前に動作が終らされる。OPLAがスタ
ーテイング・アドレスであるとすると、ス
ターテイング・アドレスがMISに受けられ
るまでIDは待ち、それから「状態φ」へ
飛越して戻つて、次の命令の復号を開始で
きるようにする。 OPLAは命令セツト中の各動作ごとに8
ビツト符号も含む。OPLAがアクセスされ
る時にこの符号は常にFREGへロードされ
る。このFREGはマイクロコードの制御の
下に実行装置へ送ることができ、かつ障害
が起きた時に、障害が起きたというマクロ
命令の指示を与えるために用いることがで
きる。 (1.2.1.3) ESCマルチプレクサ SPLAとOPLAはエキストラクタのため
の更新情報(OESCとSESC)を発生する。
SPLAはOPLAをアクセスするサイクルを
除く全てのサイクルの間に更新情報を発生
する。OPLAがアクセスされるとOPLAは
更新情報を与える。2つのOPLAからの更
新情報はESC(エキストラクタ桁送り制御)
Mux(マルチプレクサ)758により互い
に多重化されてから、BIPバス・ロジツク
へ転送されて、ちようど復号されたフイー
ルドを通つてエキストラクタを更新するた
めにBIPバス・ロジツクにおいて用いられ
る。また、ESC Muxは4または6をBIP
バスへ強制できる。クラスを復号中にID
がオペランドの長さをセーブすると、それ
らの長さを符号化するためにIDはSPLAか
らのエキストラクタ更新ビツトのいくつか
を用いねばならない。クラス・フイールド
の幅は4ビツトまたは6ビツトだけにしか
できないから、IDは数ビツトではなくて
1ビツトで更新情報を指定できる。4また
は6がESC Muxから強制されるのはこの
時である。 (1.2.1.4) LREG IDが命令のクラス・フイールドを復号
している時は、オペランドがフエツチされ
るまで、オペランドの長さを指定する情報
をIDはセーブせねばならない。この情報
はLREG760内でセーブされる。これは
幅3ビツト、深さ3のFIFOである。オペ
ランドの長さは3つの3ビツト・コードに
符号化される。各3ビツトコードは各オペ
ランドに対応する。この9ビツト・フイー
ルドは、IDが命令のクラス・フイールド
を通る時に、LREG FIFOへ並列にロード
される。オペランドをフエツチするフオー
スド・マイクロ命令をIDが出すと、IDは
LREG中のトツプ・エントリイをフエツ
チ・オペランド・マイクロ命令のオペラン
ド長フイールドの中へ注入する。それか
ら、IDが次のオペランドをフエツチする
用意ができた時に、そのオペランドの長さ
を利用できるように、FIFOがポツプされ
る。 (1.2.1.5) TROMおよびTROMマルチプレクサ SPLAとOPLAはフオースド・マイクロ
命令を出すことができる。SPLAは命令の
復号に用いられるフオースド・マイクロ命
令の全てを出し、OPLAは、行うべきマイ
クロ命令を1つのマイクロ命令で取扱える
のであれば、OPLAはその動作を実際に行
うフオースド・マイクロ命令を出す。
SPLAとOPLAのサイズを最小にするため
に、フオースド・マイクロ命令の発生に翻
訳ROM307が実際に用いられる。PLA
は6ビツト符号を発生し、それらの符号は
TROMにより16ビツト・マイクロ命令へ
翻訳される。ほとんどの場合に、TROM
は全体のマイクロ命令を発生するが、長さ
フイールドを必要とするフオースド・マイ
クロ命令に対してTROMはフオースド・
マイクロ命令の13ビツトを発生し、LREG
が他の3つを与える。 演算動作には極性符号をつけたり、つけ
なかつたりできる。LREGがロードされる
時は、この極性符号つきの情報は既知でな
い。その結果、LREGの出力がフオース
ド・マイクロ命令の一部になる前に、その
出力を修正するためにOPLAのビツトの1
つを用いることができる。この効果とし
て、行うべき動作に応じて、同じマイクロ
命令に極性符号をつけたり、つけなかつた
りできる。 TROM Mux762は2つのPLAから
の6ビツト・フオースド・マイクロ命令コ
ードを単に多重化するだけである。それら
のフオースド・マイクロ命令はPバスを介
してPIRへ転送される。 (1.2.2) エキストラクタ・ロジツク エキストラクタ・ロジツクは命令の権利が
正常化されているフイールドをPLAロジツ
クへ与える。また、論理アドレス情報が
EXBUF308に貯えられる前に、このエキ
ストラクタはその情報をフオーマツトする。
このエキストラクタ・ロジツクは命令フエツ
チを要求するために必要なロジツクを含み、
メモリから命令データを受ける。エキストラ
クタ・ロジツクはコンポーザ・マトリツクス
765およびエキストラクタ・レジスタ
FIFO301と、エキストラクタ・レジスタ
制御ロジツク764と、EXBUF符号器76
8および符号器制御器770との3つの主な
ブロツクで構成される。 (1.2.2.1) コンポーザ・マトリツクスおよびエ
キストラクタ・レジスタFIFO エキストラクタの動作はコンポーザ・マ
トリツクス765により可能にされる。コ
ンポーザ・マトリツクスというのは(32ビ
ツト)データの隣り合う任意の16ビツトを
出力線上に表示できるMOS素子アレイで
ある。それらの16ビツトのスターテイング
位置は、マトリツクスの桁送り線へ信号を
与える一対の4〜16桁送りデコーダにより
選択される。IDにおいてはそれらのデコ
ーダへは、BIPバス・ロジツクにより制御
されるビツト・ポインタにより信号が与え
られる。このビツト・ポインタはIDによ
り復号されているフイールドのスターテイ
ング位置を与える。IDがあるフイールド
の処理を終ると、ビツト・ポインタは次の
フイールドのスターテイング位置へ進ませ
られる。そのためにコンポーザ・マトリツ
クスが次のフイールドの始めまで桁送りさ
せられて、その新しいフイールドの始めか
らスタートして命令の次の16ビツトを表示
する。 コンポーザ・マトリツクスへは深さ3、
幅16ビツトのFIFO301により与えられ
る。このFIFOの初めの2語はコンポー
ザ・マトリツクスへの入力として機能し、
3番目の語は命令バツフアとして機能す
る。IDがエキストラクタ・データの16ビ
ツトを処理すると、FIFOがプツシユされ
る。そのために第2のレジスタが第1のレ
ジスタへ転送され、第3のレジスタ(一杯
であれば)が第2のレジスタへ転送され
る。その結果、コンポーザ・マトリツクス
は妥当データの16ビツトを常に出力する。
FIFO内のレジスタはメモリから(ACD線
214を介して)データを得ることがで
き、またはFIFO内の他のレジスタの1つ
からデータを得ることができる。 FIFO内の3つの各レジスタにはフル・
ビツトが組合わされる。それらのフル・ビ
ツトは、FIFO内のデータを正しい場所へ
送るために、エキストラクタ・レジスタ
FIFO制御ロジツク764により用いられ
る。それらのフル・ビツトは命令フエツチ
要求を出すべきことを決定するために制御
ロジツクによつても用いられる。 (1.2.2.2) エキストラクタ・レジスタFIFO制御
ロジツク エキストラクタ・レジスタFIFO制御ロ
ジツク764は2つの部分に分けることが
できる。このロジツクの一部はエキストラ
クタ・レジスタFIFOを制御し、他の部分
はSREGローデイングを制御する。エキス
トラクタ・レジスタFIFOのアルゴリズム
は次のとおりである。 1 メモリからのデータがFIFOへロード
されると、そのデータは1番下の空のレ
ジスタへ常に送られる。 2 エキストラクタ・データの16ビツトを
IDが処理するたびに、FIFO内のデータ
が動かされる。レジスタ2は常にレジス
タ1へ転送する。レジスタ3が一杯であ
るとすると、そのレジスタはレジスタ2
へ転送し、命令フエツチは出されない。
レジスタ3が空であれば、レジスタ2は
不変であるが空であるとマークされる。
また、命令フエツチがIDにより禁止さ
れなければ、命令要求フエツチ要求が出
される。 3 レジスタが妥当データを含む時はその
レジスタは一杯であると常にマークさ
れ、含んでいるデータが新しいレジスタ
へ移動させられて、その後へ新しいデー
タが入れられない時は、そのレジスタは
空であると常にマークされる。 (ハードウエアのリセツトまたはマイ
クロコードの制御により)IDが初期設
定されると、FIFO内の全てのエキスト
ラクタ・レジスタは空であるとマークさ
れる。最初の命令フエツチからのデータ
が戻されると、そのデータはレジスタ1
と2へ入る。IDがデータの最初の16ビ
ツトを処理した後で、レジスタ2がレジ
スタ1へ転送されて、命令フエツチ要求
が出される(その理由は、レジスタ3が
空だからである)。このフエツチからの
データはレジスタ2と3へロードされ
る。その後で、レジスタ3はレジスタ2
へ転送され、初めの16ビツトが処理され
た時にレジスタ2はレジスタ1へ転送さ
れる。次の16ビツトが処理された後で、
レジスタ2はレジスタ1へ転送され、命
令フエツチが出される。フエツチからの
データはレジスタ2と3へロードされ
る。この動作はIDが再び初期設定され
るまで反復される。 エキストラクタ・レジスタ制御ロジツ
クはエキストラクタ作動可能信号を介し
てのSREGのロードを禁止する。エキス
トラクタが作動可能状態であれば、
SERGは次の状態をロードされるだけで
ある。IDが16ビツトの処理を終ると、
制御ロジツクはBIPバスからあふれ信号
を常に受ける。このあふれ信号は、作動
可能となつていないエキストラクタをセ
ツトし、かつエキストラクタ・レジスタ
FIFOにおけるデータ転送を開始させる
ために制御ロジツクにより用いられる。
命令フエツチが求められなければ、
FIFO内のデータは移動させられて、エ
キストラクタは再び作動可能であること
がマークされる。命令フエツチが求めら
れると、命令フエツチが終るまではエキ
ストラクタは作動不能状態を保つ。フエ
ツチが終ると、エキストラクタが作動可
能状態になつたことがマークされて、他
の条件(たとえばPIRが一杯)により阻
止されない限りは、IDは動作を継続で
きる。 飛越しの効率を高くするために、エキ
ストラクタ・レジスタ制御ロジツクには
特殊な手段が含まれる。飛越し命令の飛
越し基準をIDが処理する時までに、そ
の命令の最大の長さは判明する。制御ロ
ジツクにより検査が行われる。その命令
の残りがエキストラクタの中に含まれて
おれば、命令のフエツチは禁止される。
そのために、飛越しが行われるために用
いられないデータに対する命令のフエツ
チが阻止される。エキストラクタ制御ロ
ジツクがあふれを受けたとすると、
FIFO内のデータは依然として動かされ
るが、命令のフエツチは行われない。し
かし、そうするとエキストラクタ内に妥
当データの16ビツト以下が含まれている
状態でIDがランを続けるから、問題が
起ることがある。 飛越しが行われたとすると、エキスト
ラクタが飛越し命令を全部含んでおれば
命令フエツチが禁止されるだけであるか
ら問題は起らない。IDが飛越し命令の
復号を完了すると(その復号中に飛越し
が行われる)、MISがターゲツト命令を
ロードして、IDを再スタートさせるま
でIDは停止させられる。 エキストラクタが妥当データの16ビツ
トを含んでおらず、しかも飛越しが行わ
れなければ(条件付き飛越しのみ)、問
題がある。飛越しの後でIDが命令の復
号を開始すると、第2のエキストラク
タ・レジスタにいずれかのデータを必要
としたとすると(この第2のレジスタは
空であるから)、IDは不当なデータを復
号できる。これを阻止するために、飛越
しを行わないという決定が行われた時に
レジスタ2が調べられる。その時には命
令フエツチは禁止されない。レジスタ2
が空であると、エキストラクタは作動可
能状態になつていないことがマークさ
れ、命令フエツチ要求が出される。 (1.2.2.3) EXBUF符号器および制御器 エキストラクタは妥当データの16ビツト
をIDへ常に与えるが、論理アドレス情報
の長さは16ビツトでないことがある。デー
タがEXBUF FIFO308を介して実行装
置へ転送される前に、そのデータをフオー
マツトするためにEXBUF符号器768が
用いられる。論理アドレス情報に対して
は、要求されたフオーマツトは論理アドレ
ス情報に0〜16ビツトを単にパツドするだ
けである。このようにして、実行装置が妥
当論理アドレス情報の16ビツトを受けるこ
とが保証される。 命令装置は飛越しのためのターゲツト・
アドレスの計算も行う。実行装置がその命
令ポインタを更新でき、かつターゲツト命
令をフエツチできるように、このデータは
実行装置へ転送せねばならない。この飛越
しターゲツト・アドレス情報はEXBUF符
号器により、実行装置に対して求められる
アドレスの計算を簡単にする様式にフオー
マツトされる。 EXBUF符号器はBIPバスの内容を
EXBUF FIFO308を介して実行装置へ
転させることもできる。このデータは障害
回復のために用いられる。この場合には、
BIPバス・データに0〜16ビツトがパツド
される。 EXBUF符号器は符号器制御器により制
御される単なるマルチプレクサである。こ
の符号器制御器はPLAロジツクからのあ
る制御情報はもちろん、フイールド情報の
長さを受ける。符号器制御器はBIPバス・
ロジツクからの制御情報も受ける。この情
報はEXBUF符号器を通るデータの適切な
経路を選択するために用いることができ
る。 (1.2.3) BIPバス・ロジツク BIPバス・ロジツクはエキストラクタのた
めの現在のビツト・ポインタを発生する。ま
た、このBIPバス・ロジツクは飛越しターゲ
ツト・アドレスのビツト・ポインタ部分を計
算する。このターゲツト・アドレスはビツ
ト・ポインタにロードして、飛越しの命令装
置部分を完了する。このBIPバス・ロジツク
はスターテイング・ビツト・ポインタ・アド
レス情報を保持するいくつかのレジスタも含
む。そのポインタ・アドレス情報はマイクロ
コードの制御の下に実行装置へ転送できる。 BIPバス・ロジツクはビツト・ポインタ更
新ロジツクと、TBIPロジツクと、BIPスタ
ツク304との3つの主なブロツクより構成
される。 (1.2.3.1) ビツト・ポインタ更新ロジツク ビツト・ポインタ更新ロジツクはPLA
ロジツクからビツト・ポインタ更新情報を
受けて、エキストラクタが使用する現在の
ビツト・ポインタを発生する。PLAロジ
ツクからの更新情報はBIP302へ加えら
れる。このレジスタは前のビツト・ポイン
タを含み、BIP加算器772の出力が現在
のビツト・ポインタとしてコンポーザ・マ
トリツクスへ送られる。 エキストラクタが16ビツト境界を横切つ
たことをビツト・ポインタ更新ロジツクが
検出するたびに、その更新ロジツクはエキ
ストラクタへそのことを知らせる。これは
BIP加算器からの桁あげをエキストラクタ
へ転送することにより行われる。IDが16
ビツト境界を横切るとBIP加算器が常に重
なり合う。エキストラクタ・レジスタも16
ビツト長であるから、重なり合つたビツ
ト・ポインタは依然として正しいが、今は
エキストラクタの中の第2の語を指す。エ
キストラクタが(ビツト・ポインタが重な
り合うのと同時に)あふれ指示を受ける
と、エキストラクタ・レジスタFIFO更新
が開始される。これによりエキストラクタ
301の第2の語が第1の語にされる。ビ
ツト・ポインタが正しいから、エキストラ
クタが再び作動可能状態になるとただちに
進む。 BIPへはいくつかのソースからロードで
きる。正常動作中は、IDが次の状態へ進
むとBIPがBIP加算器の出力を常に受け
る。何らかの理由でIDが停止したとする
と、BIPは更新されない。その結果、エキ
ストラクタは同じフイールドを指し、進む
ことを許されるまでIDはループする(そ
の理由はSREGローデイングも禁止される
からである。 BIP302へは実行装置からのBP/F
バス217の内容もロードできる。マイク
ロ命令の流れの中の任意の点へIDを初期
設定できるのはこの機構を介してである。
しかし、簡単な飛越しの場合には、新しい
ビツト・ポインタが実行装置で計算されて
BIPへ転送される。これにより実行装置の
介在の必要がなくなる。 (1.2.3.2) TBIPロジツク TBIPロジツクは飛越しのためのターゲ
ツト・ビツト・ポインタ情報を発生する。
このTBIPロジツクは絶対飛越しアドレス
と相対飛越しアドレスの双方を取扱う。絶
対飛越しの場合には、ターゲツト飛越しア
ドレスからのビツト・デイスプレースメン
トがエキストラクタからTBIP(ターゲツ
ト・ビツト・ポインタ)レジスタ306へ
転送される。このターゲツト飛越しアドレ
スの残りはEXBUF符号器によりフオーマ
ツトされてから、EXBUF FIFO308を
介して実行装置へ転送される。 相対飛越しターゲツト・アドレス発生は
下記のようにして行われる。エキストラク
タからの相対飛越しターゲツト・アドレス
は加算器774により、飛越し命令の初め
のビツト・ポインタの値に加え合わされ
る。この初めのビツト・ポインタ値はBIP
スタツク304に貯えられている。加算が
終ると、TBIP306に貯えられているタ
ーゲツト・アドレスのビツト・デイスプレ
ースメントとターゲツト・アドレスの残り
の部分がEXBUF符号器768によつてフ
オーマツトされてから実行装置へ転送され
る。実行装置はこのターゲツト・アドレス
を用いて新しい命令ポインタを発生する。 TBIPレジスタ306はマイクロコード
の制御の下にBIP302へロードされる。
飛越しが行われるとMISはIDの動作を停
止させて、エキストラクタ・レジスタが空
であることをマークする。それからTBIP
はBIPへ転送される。IDが動作を開始する
とエキストラクタ・レジスタが空であるこ
とを知るから、命令のフエツチを開始す
る。実行装置はその命令ポインタにターゲ
ツト・アドレスを有するから、ターゲツト
命令の最初の32ビツトがエキストラクタへ
ロードされる。それからIDはターゲツト
命令の復号を開始できる。 (1.2.3.3) BIPスタツク BIPスタツク304は現在復号されてい
る命令および実行されている命令に対する
スターテイング・ビツト・ポインタ値をセ
ーブするために用いられる。障害復旧を助
けるために、この情報をマイクロコードの
制御の下に実行装置へ転送できる。また、
BIPスタツク素子をBIPへロードできる。
このBIPロード性能によりIDは命令を再び
復号できる。 BIPスタツク304はIDが新しい命令の
復号を開始すると常にプツシユされる。
MISが先取りモードにある時は、BIPスタ
ツクのトツプ素子はIDにより現在復号さ
れている命令のためのスターテイング・ビ
ツト・ポインタを含み、BIPスタツクの第
2の素子はMISにより現在実行されている
命令のためのスターテイング・ビツト・ポ
インタを含む。いずれかの命令が障害を起
すと、BIPスタツクの素子をBIPまたは実
行装置へ転送できる。IDが先取りモード
にない時は、BIPスタツクのトツプ素子は
復号されている命令のスターテイング・ビ
ツト・ポインタを含む。BIPスタツクのト
ツプ素子は、相対的な飛越しターゲツト・
アドレス計算のためにTBIPによつても使
用される。その理由は、その素子が飛越し
命令を開始するためのスターテイング・ビ
ツト・ポインタを含むからである。 (2.0) マイクロ命令シーケンサ(MIS) MISには3本の主なバス、すなわち、(1)チツ
プ間バス(ICB)、(2)デコーダ・バス(DB)、
(3)マイクロアドレス・バスがある。また制御回
路の3つの主な部分、すなわち、(1)MIS制御ロ
ジツク777、(2)障害制御ロジツク778、(3)
インターフエイス制御ロジツク780がある。
それら3本のバスと3つの制御回路部分はMIS
を6つの大きなハードウエア・ブロツクに論理
的に分割する。各ブロツクについて次の2.1〜
2.6項において個々に説明することにする。 (2.1) チツプ間バス(ICB) ICBはマイクロ命令と、場合によりデータと
を受けてそれを実行装置へ送るために用いられ
る16ビツト・プレチヤージ・バスである。この
ICBへ与えられるマイクロ命令のソースは(1)
PIR FIFO310、(2)マイクロプログラム
ROM、(3)TMPスタツク、(4)4種類のコンス
タント命令を保持するROM782,784,
786である。ICBへ与えられるデータのソー
スは(1)XBUF FIFO308、(2)FREGである。
MIS制御ロジツクはそれらのソースのうちのど
れがICBへ命令またはデータを与えて、マイク
ロ命令バス(MIB)を経て実行装置へ与える
かを決定する。 (2.1.1) PIR FIFO PIR FIFO310はフオースド・マイクロ
命令をバツフアする深さが2のFIFOである。
このPIR FIFOへはTROM307からの命
令デコーダによりロードされ、MIS制御ロジ
ツク776によりICBへ信号を与える。この
PIR FIFOには(1)PIR FULLと(2)PIR
EMPTYの2つのフラグが組合わされる。
PIR FULLはPIR FIFOへのロードを制御す
るために命令デコーダにより用いられる。
PIR FULLは、フオースド・マイクロ命令
が待機させられる状態にある時に、命令デコ
ーダがPIR FIFOをロードすることを禁止す
る。アサートされない時はPIR EMPTYは
PIR FIFO内で待つているフオースド・マイ
クロ命令の存在を示す。PIR FIFOは(1)IDが
停止させられた時に、(2)INITによりクリヤ
される。 (2.1.2) マイクロプログラムROM マイクロプログラムROM226は1語が
16ビツトより成る3.5K語のROMであつて、
種々のマクロ命令と障害ルーチンのためのマ
イクロ命令を含む。このマイクロプログラム
ROMはMIS制御ロジツクの制御の下にICB
へ出力を与える。このROMとICBの間には
クロツク制御されるラツチはなく、出力ドラ
イバがあるだけで、バスへ引き下げられる。
しかし、このROMの出力はマイクロ命令レ
ジスタ(MIR)と呼ばれる。 (2.1.3) TMPスタツク 一時スタツク(TMP)は再スタート可能
なアクセス・メモリ・マイクロ命令を貯える
ために用いられる深さが2のスタツクであ
る。アクセス・メモリ・マイクロ命令に障害
が起ると、MIS制御ロジツクがデコーダ・バ
スからのアクセス・メモリ・マイクロ命令を
TMPスタツクの上に押す。再スタート電流
アクセス・マイクロ命令を実行できる。それ
によりTMPスタツクの1番上のマイクロ命
令がICB上にポツプさせられ、かつマイクロ
命令バスからポツプさせられる。 (2.1.4) コンスタント・マイクロ命令ROM MIS制御ロジツクが信号を実行装置へ送る
ためには6つのマイクロ命令を有しているこ
とが必要である。最初の最も一般的なマイク
ロ命令はNOP782であつて、アイドリン
グ状態、待機状態およびパイプ・フイリング
状態の間に送られる。第2はマイクロ命令
ROMの流れシーケンスの初期設定時に送ら
れるセツト・ルツクアヘツド784である。
第3と第4の786はアクセス・メモリおよ
びアクセス・スタツクであつて、これらはア
クセス行先マイクロ命令の結果として送られ
る。全てのコンスタント・マイクロ命令は
MIS制御ロジツクにより制御される。第5は
命令セグメント読取りであつて、IDのエキ
ストラクタが空の時にIDの要求により送ら
れる。最後のマイクロ命令は実行装置障害状
態リセツトであつて、全ての障害サービス・
ルーチンが始まつた時に送られる。 (2.1.5) XBUF FIFO XBUF FIFOはマイクロ命令の復号の結
果としてマクロ命令流から得たデータをバツ
フアする。このデータはセグメント・セレク
タ、デイスプレースメント、イミーデイエイ
トまたは飛越し基準である。PIR FIFOがロ
ードされるやり方と全く同じやり方で
XBUF FIFOは命令デコーダによりロード
される。XBUF FIFOのローデイングを制
御するために命令デコーダへ与えられる類似
のXBUF FULLフラグがある。(1)成功しな
い条件付き飛越し(CINH)の間に、(2)IDが
スタートさせられた時に、(1)INITにより
XBUF FIFOがクリヤされる。 (2.1.6) FREG FREGは実行される最後のマクロ命令を独
自に指定する8ビツト障害符号を含む。
FREGはオペレータ障害符号転送マイクロ命
令の3番目のサイクルの間にICBへ転送され
る。 (2.1.7) デコーダ・レジスタ デコーダ・レジスタはMIS制御ロジツクで
復号する必要のある全てのマイクロ命令を保
持し、セーブする。これは、(1)データ
(XBUF、FREG等)、(2)多重サイクル・マイ
クロ命令が実行されている間にMIS制御ロジ
ツクにより送られるNOPを除き、ICBを介
して送られるものを全て含む。このデコー
ダ・レジスタの出力はデコーダ・バスへ与え
られる。 (2.2) デコーダ・バス(DB) デコーダ・バスはデコーダ・レジスタの出力
から駆動される16ビツト・バスである。このデ
コーダ・バスは(1)TMPスタツク、(2)マイクロ
アドレス・バス790、(3)QPLA792、(4)デ
コーダ794の4つの場所へ出力を与える。こ
のデコーダ・バスの目的は、現在実行されてい
るマイクロ命令を適切な制御ロジツクへ送るこ
とである。TMPスタツクとデコーダ・レジス
タについては既に説明した。デコーダとQPLA
については(2.4)節でMIS制御ロジツクにつ
いて説明する際に説明する。 (2.3) マイクロアドレス・バス(MAB) MABはマイクロ命令ROMアドレス(マイ
クロアドレス)をマイクロ命令アドレス・レジ
スタ(MAR312)へ転送することを目的と
する12ビツトのプレチヤージされるバスであ
る。マイクロアドレスのソースは(1)スターテイ
ング・アドレス・レジスタ783、(2)インクレ
メンタ、(3)マイクロアドレス・スタツク、(4)
FROM779、(5)コンスタント・マイクロア
ドレス781である。これらのソースについて
以下に個々に説明する。 (2.3.1) マイクロアドレス・レジスタ(MAR) マイクロアドレス・レジスタ312はマイ
クロプログラムROM226へのアドレス入
力をドライブする。このマイクロアドレス・
レジスタはMIS制御ロジツク776により制
御され、マイクロアドレス・バスからデータ
を受けることができ、または多重サイクル・
マイクロ命令の間に待つている場合における
ように、いくつかのサイクルの間に不変のま
までいることができる。 (2.3.2) スターテイング・アドレス・レジスタ
(SAR) SAR783は、スターテイング・アドレ
スをROM流れシーケンスへ与えるOPLAの
出力へつけられた名称である。SARの
OPLAに対する関係は、MIRのマイクロ命
令ROMに対する関係と全く同じである。
SARはマイクロアドレス・バス上のプルダ
ウンとして簡単にインプリメントされる。マ
イクロアドレス・バスへのSARの転送は
MIS制御ロジツクにより指令される。 (2.3.3) インクレメンタ(INC) インクレメンタ314は112ビツトMAR
+1を計算する。それは、ROMの流れの間
にマイクロプログラムROM中の次のマイク
ロ命令をアクセスするために、マイクロアド
レス・バスを介してマイクロアドレス・レジ
スタへ転送される。このインクレメンタは
MIS制御ロジツクの指令の下にマイクロアド
レス・バスへ転送される。 (2.3.4) マイクロアドレス・スタツク マイクロアドレス・スタツク361はマイ
クロサブルーチンの間に戻りマイクロアドレ
スを保持する。このスタツクは(1)マイクロア
ドレス・レジスタ312と、(2)インクレメン
タ314との2つのソースからのデータをプ
ツシユできる。飛越しサブルーチン・マイク
ロ命令が復号された時にインクレメンタはプ
ツシユされる。MISがROM流れシーケンス
にあつた時に、障害ルーチンの初めにマイク
ロアドレス・レジスタはプツシユされる。マ
イクロアドレス・スタツクはMIS制御ロジツ
クの制御の下にマイクロアドレス・バスへ出
力する。このスタツクは(1)マクロの終りマイ
クロ命令が実行された時に(1)INITによりク
リヤされる。 (2.3.5) 障害ROM(FROM) FROMは障害流のためのスターテイン
グ・アドレスを含む13×12ビツトROMであ
る。障害シーケンスを開始するために、MIS
はFROMからの適切なスターテイング・ア
ドレスをマイクロアドレス・バスを介してマ
イクロアドレス・レジスタへ与える。障害制
御ロジツクはどれが適切なスターテイング・
アドレスであるかを決定し、その情報を
FROMへ直接与える。 (2.3.6) コンスタント・マイクロアドレス MISはCLEARである1つのコンスタン
ト・スターテイング・アドレス781を出
す。(FROMもコンスタント・アドレスを含
むが、FROMとCLEARは制御されるやり方
が異なるから、両者を別々にしておくことは
有用であることに注意されたい。)CLEAR
はINITの間にフオースされるスターテイン
グ・アドレスで、アドレス中である。 (2.4) MIS制御ロジツク この節では、主な制御ブロツクの機能または
目的を定義し、かつ利用できる主なフラグと信
号の意味について説明する。 (2.4.1) 主な制御ブロツク MISを制御するのに必要な決定を行うため
に3つの主なブロツクを利用できる。第1の
ブロツクは、MISが行おうとすることについ
ての最後の決定権を有する制御優先符号器7
76である。第2のブロツクは、復号された
現在のマイクロ命令を基にして決定を行うマ
イクロ命令PLA(QPLA−792)である。
第3のブロツクは、命令装置制御マイクロ命
令を実行するのに必要な制御信号であるデコ
ーダ794である。 (2.4.1.1) 制御優先符号器 制御優先符号器776はMISの状態に影
響を及ぼす主なフラグと信号の全てをモニ
タする。後で説明する優先計画を基にし
て、優先符号器はMIS内の3本の主なバス
を往来する信号を制御する。 (2.4.1.2) シーケンサPLA(QPLA) QPLA792は基本的には多重サイク
ル・マイクロ命令の実行に責任を負うもの
で、デコーダ・バスをモニタする。QPLA
792はMIS機能ブロツクへの必要な制御
信号をアサートし、制御優先符号器へタイ
ミング信号と必要な状態信号を与えて、多
重サイクル・マイクロ命令が適切に実行さ
れるかを調べる。 (2.4.1.3) デコーダ デコーダ794は1サイクル命令装置制
御マイクロ命令を復号し、それらの命令の
実行に必要な制御信号を与える。下記の表
はデコーダにより取扱われるマイクロ命令
と制御信号を示すものである。
【表】
(2.4.2) 制御信号
MISはマイクロ命令実行の結果としていく
つかの制御信号を発生する。下の表にそれら
の信号を示す。
つかの制御信号を発生する。下の表にそれら
の信号を示す。
【表】
動かす
【表】
(2.4.3) 状態フラグ
以下の節ではMIS制御ロジツク776によ
り用いられるいくつかのフラグの目的、ソー
スおよび意味について述べる。 (2.4.3.1) INIT INITは、全てをリセツトし、初期設定
ROMシーケンスを始めるためにアサート
されるピンである。 (2.4.3.2) INCR MA INCR MAはマイクロプログラムROM
の内容をMIピンへ逐次出力(ダンプ)す
るためにアサートされるテストピンであ
る。 (2.4.3.3) FLTI FLTI(障害イミデイエイト)はイミデ
イエイト障害が係属している時に障害制御
ロジツクによりアサートされる。 (2.4.3.4) FLTM FLTM(障害マクロ)はマクロの終りに
おける障害が係属中である時に障害制御ロ
ジツクによりアサートされる。 (2.4.3.5) CCφとCC1 793は協同して多重
サイクル・マイクロ命令についての状態情
報を与える。それらはQPLA792から出
力されてQPLAと制御優先符号器776へ
入力される。下の表はCCφとCC1が与える
情報を要約したものである。
り用いられるいくつかのフラグの目的、ソー
スおよび意味について述べる。 (2.4.3.1) INIT INITは、全てをリセツトし、初期設定
ROMシーケンスを始めるためにアサート
されるピンである。 (2.4.3.2) INCR MA INCR MAはマイクロプログラムROM
の内容をMIピンへ逐次出力(ダンプ)す
るためにアサートされるテストピンであ
る。 (2.4.3.3) FLTI FLTI(障害イミデイエイト)はイミデ
イエイト障害が係属している時に障害制御
ロジツクによりアサートされる。 (2.4.3.4) FLTM FLTM(障害マクロ)はマクロの終りに
おける障害が係属中である時に障害制御ロ
ジツクによりアサートされる。 (2.4.3.5) CCφとCC1 793は協同して多重
サイクル・マイクロ命令についての状態情
報を与える。それらはQPLA792から出
力されてQPLAと制御優先符号器776へ
入力される。下の表はCCφとCC1が与える
情報を要約したものである。
【表】
くる
典型的な流れ 1サイクル・マイクロ命令:11 2サイクル・マイクロ命令:00(第1サ
イクル);11(第2サイクル) 3サイクル・マイクロ命令:00(第1サ
イクル);01(第2のサイクル);11(第3の
サイクル) 飛越しマイクロ命令:11(飛越し);10
(飛越し直後のマイクロ命令) (2.4.3.6) DNE DEE(DONE)は可変長マイクロ命令の
実行中にアサートを解除される。DNEは
DONEピン、またはISBと「アンドをとら
れる」WLC(最後のサイクルを待つてい
る)により合図される可変長マイクロ命令
の最後のサイクルまで、アサート解除状態
すなわち「doneでない」状態を保つ。
DNEはINIT、INCRMAまたはHERRの
場合に高レベル状態にさせられる。 (2.4.3.7) XTRMT XTRMT(eXTRactor eMpTy)はより
多くの命令データを必要とする時にIDに
よりアサートされる。MIS制御回路は
XTRMTに応答して「命令セグメント読
取り」マイクロ命令を送る。命令データが
受けられた時にIDはXTRMTのアサート
を解除する。 (2.4.3.8) FLOW ACTIVE FLOW ACTIVEは、ROM流れシーケ
ンスが始まつた時にはいつでもセツトされ
るフリツプフロツプであり(INIT、障害、
SAW)、障害マクロが受けられた時を除
き、マクロ・マイクロ命令の終りと飛越し
マクロ・マイクロ命令の終りによつてリセ
ツトされる。 (2.4.3.9) PIRMT PIRMT(PIR空)706(第1図)は、
実行されることをPIR FIFOの中で待つて
いるフオースド・マイクロ命令がない時に
PIR制御ロジツクによりアサートされる。 (2.4.3.10) STKMT STKMT(マイクロアドレス・スタツク
空)は、マイクロアドレス・スタツク31
6に戻りマイクロアドレスがない時にアサ
ートされる。このSTKMTはマイクロサ
ブルーチンから戻る時にMIS制御ロジツク
により用いられる。 (2.4.3.11) SAW SAW(スターテイング・アドレス待機)
712は、マイクロ命令ROMシーケンス
のためのスターテイング・アドレスが
DPLAからマイクロアドレス・レジスタへ
転送されることを待つている時に、命令デ
コーダによりアサートされる。RASA(ス
ターテイング・アドレスを受ける用意がで
きている)714(第1図)が命令デコー
ダにより受けられた時にこのSAWはリセ
ツトされる。 (2.4.3.12) RASA(スターテイング・アドレスを受
ける用意ができている)は、DPLAからの
スターテイング・アドレスがMABに与え
られている時に、MIS制御ロジツクにより
アサートされる。RASAはSAWのアサー
トを解除することをID(これはSAWをル
ープオンする)へ合図して進む。 (2.4.3.13) 先取り(LAH) 先取りフラグは一度はMISの一部であつ
たが、その後にIDロジツクへ動かされた。
先取りフラグは、IDが状態x(状態を復号
する)からの遷移を終つた時にセツトされ
る。先取りフラグがセツトされている間
は、IDは次の命令を自由に復号するが、
その間にMISは命令の命令をシーケンスす
る。しかし、MISより1つ以上の命令を先
取りすることは決してしてはならない。マ
クロ・マイクロ命令の終り、または飛越マ
クロ・マイクロ命令の終りを実行すること
により示されているROM流の終りに、先
取りフラグがリセツトされる。 (2.4.3.14) DST DST(行先)は、各マクロ命令の始めに
零リセツトされ、IDにより選択的にセツ
トされるフラグである。このフラグはMIS
において「行先アクセス」マイクロ命令
と、「条件を飛越しフラグへ動かす」マイ
クロ命令によりテストされる。行先アクセ
ス・マイクロ命令の場合に、このDSTは
情報を命令デコーダからMISへ送るために
用いられる。DSTのこの状況において
「メモリをアクセスする」のか「スタツク
をアクセスする」のかをDSTフラグが示
す。これにより、いずれかの種類のメモリ
基準を表わすマイクロ命令「先行アクセ
ス」を1回だけ書込むために用いられるメ
モリ基準の種類だけが異なる、あるマイク
ロ命令ROMの流れを認める。実行時には
「行先アクセス」の代りに正しいメモリ基
準が置き換えられる。 OPLDSTと呼ばれる第2のDSTフラグ
が飛越しのためにID制御ロジツクにおい
て用いられ、その場合にOPLDSTはその
飛越が絶対的であるか、相対的であるかを
示す。 (2、4、3、15) T/F T/F(真/偽)フラグ795は、T/
Fマイクロ命令戻りの結果として、T/F
ピンを介して実行装置によりロードされ
る。T/Fは条件を飛越しフラグ・マイク
ロ命令へ動かすことによりロードすること
もできる。そのマイクロ命令の最後の2ビ
ツトに従つてLAH、IPCまたはDSTなど
のフラグをT/Fフラグにコピーできる。
T/Fは、条件付き飛越しマイクロ命令の
実行中にMIS制御ロジツクにより用いら
れ、および条件付き状態飛越しにより用い
られる。 (2、5) 障害制御ロジツク 障害制御ロジツク778は実行装置で取扱わ
れる全ての障害の存在を保持し、優先度を定
め、かつフラグする。それらの障害には、(1)
BP/Fバスを介して実行装置により送られる
障害、(2)ハードウエアの誤り(HERR)、(3)バ
スの誤り(BERR)、(4)不当クラス障害
(SIC)、(4)ALARM、(6)プロセツサ間通信
(IPC)および(7)TRACEが含まれる。それらの
障害は個々に保持され、(1)障害リセツト・ロジ
ツクまたは(2)リセツトによつてリセツトされる
まで保持されたままである。それらのラツチに
は障害優先符号器により優先度がつけられる。
それから障害優先符号器は最高優先度の障害の
存在を示すフラグをアサートする。アサートで
きるそのようなフラグには、(1)直接障害のため
のFLTI、(2)マクロ上の障害のためのFLTM、
の2つがある。MISが障害を確認した後で、障
害制御ロジツクがその障害をリセツトし、係属
中のその他の障害をフラグする。 (2、6) バス・インターフエイス・ロジツク バス・インターフエイス・ロジツク780は
可変長アクセス・メモリ・マイクロ命令の間に
バスをモニタし、実行装置の他の部分へ状態情
報を与える。バス・インターフエイス・ロジツ
クの主な出力について以下に説明する。 (2、6、1) 妥当命令フエツチ・データ(VIFD) この出力はACD線上に妥当命令データが
ある時にアサートされる。命令流データを保
持するために命令デコーダがこの信号を用い
る。 (2、6、2) 命令フエツチ完了(IFD) この出力は、命令データの最後の二重バイ
トがACD線上で妥当である場合にVIFDでア
サートされる。命令フエツチを決定するため
にこの出力は命令デコーダにより用いられ
る。 (2、6、3) 最後のサイクルを待つ(WLC) 可変長マイクロ命令の最後のサイクルの間
に、かつ待つている間に(ストレツチの間
に)WLCはアサートされる。このWLCは
ISBと「アンドをとられ」て、DNEに可変
長マイクロ命令を終らせる。 (2、6、4) バス誤り(BERR) この出力は、任意のアクセス・メモリ・マ
イクロ命令の最後のサイクルの直後のサイク
ルの間に、ISBが低レベルになつた時、にア
サートされる。 (3、0) MIS論理機構についての説明 マイクロ命令セツトの実現により次のような
問題が解かれる。すなわち、(1)MISが2つの主
なソースからマイクロ命令を受け、両方のソー
スに対してサービスせねばならないとともに、
両方のソースが用意ができていない時にNO−
Opを送らねばならない。(2)完了までに1つ以
上のサイクルを要するいくつかのマイクロ命令
がある。(3)任意の時刻に2種類の障害が起るこ
とがあり、それらの障害に異なる条件の下で対
処せねばならない。(4)テストと初期設定を組込
まねばならない。(5)最適の性能を達成するため
にMISはパイプラインされる。パイプラインに
ともなつて問題が起る。 MIS制御ロジツクは各サイクルごとに1つの
質問「どのマイクロ命令を実行装置へ送るべき
か」に答える必要がある。この質問に正しく答
えるためには、前記した多くの基準を考慮に入
れる必要がある。そして、その回答は1サイク
ルに1回、迅速に行う必要がある。マイクロ命
令ROMの流れで実行している時に答える必要
のある別の重要な質問は「ROMからアクセス
すべき次のマイクロ命令のROMマイクロアド
レスは何か」である。次のマイクロアドレスが
識別されると、そのマイクロアドレスの内容を
出力するためにはROMはほぼ完全なサイクル
を必要とする。 そうすると、MISをどのように制御するかの
問題を閉じられた形で述べることができる。す
なわち、 ある特定のサイクルで次の状態が与えられ
る。 1 マイクロ命令の2つのソースの状態、 2 多重サイクル・マイクロ命令または可変サ
イクル・マイクロ命令の状態、 3 障害の状態、 4 テストおよび初期設定の状態 5 パイプライン状態。 および、 1 次のマイクロ命令は何か、 2 次のマイクロアドレスは何か。 以下の節ではこれが本発明に従つてどのよう
に行われるかを述べる。 (3、1) マイクロ命令のソース マイクロ命令の2つの主なソースは、(1)命令
デコーダからのフオースド・マイクロ命令、(2)
マイクロプログラムROM226からのROM
流れマイクロ命令、である。この第2の場合は
スターテイング・マイクロアドレスを必要とす
る。ROMの流れに対するスターテイング・ア
ドレスには次の2つがある。(1)正常な流れに対
しては、スターテイング・アドレス783が命
令デコーダにより送られ、(2)障害の流れに対し
ては、スターテイング・アドレスは障害制御ロ
ジツク(すなわち、ROM779)から得られ
る。そうすると、マイクロ命令とスターテイン
グ・アドレスの少くとも一方の2つの主なソー
スがある。(1)命令デコーダ、(2)障害制御ロジツ
ク、がそれである。この節ではソースとして命
令デコーダだけをとり扱い、スターテイング・
アドレスのソースとしての障害論理ロジツクに
ついては後で詳しく説明する。 命令デコーダはフオースドマイクロ命令と、
マイクロ命令ROM流のためのスターテイン
グ・アドレスをMISへ送る。フオースド・マイ
クロ命令とスターテイング・アドレスの送受の
ための原案の基準は次のように要約される。 1 命令デコーダとMISの間のインターフエイ
スとして機能する深さが2のPIR FIFO31
0においてフオースド・マイクロ命令がバツ
フアされる。 2(a) PIRが一杯でなく、 (b) (暗示された)命令デコーダが停止させ
られない、 限り、命令デコーダはフオースド・マイク
ロ命令をロードできる。 3 命令デコーダがスターテイング・アドレス
を有すると、それはSAW(スターテイング・
アドレス待機)のアサートによりそのことを
フラグし、停止する。 4 MISは待つことができるスターテイング・
アドレスを介してフオースド・マイクロ命令
(PIRが空でない)を常にサービスする。 5(a) SAWがアサートされた時、 (b) PIR空がアサートされた時 に、スターテイング・アドレスをマイクロア
ドレス・レジスタへロードすると同時に、ス
ターテイング・アドレスを受ける用意ができ
たことをアサートし、更に流れアクテイブ・
フラグをセツトすることにより、MISはスタ
ーテイング・アドレスをサービスする。 6 RASAを認めた時に命令デコーダはSAW
のアサートを解除し、それ自身で再びスター
トする。 以上のようなことから、下記の結果が生ず
る。 1 フオースド・マイクロ命令とスターテイン
グ・アドレスは、それらが命令デコーダによ
り発生された順序と同じ順序で、MISにより
サービスされる。 2 命令デコーダはMISよりは1つ以上のマイ
クロ命令を先取りすることは決してない。 3 MISに対する最少数のサイクルが失われ
る。 (3、2) マイクロ命令長 マイクロ命令は(1)単一サイクル、(2)多重サイ
クル、(3)可変サイクル、の3つの主な部分に分
けることができる。多重サイクル・マイクロ命
令の長さは2サイクルまたは3サイクルにでき
る。命令の各サイクルの間に、どのマイクロ命
令またはデータを実行装置へ送るべきか、およ
び次のマイクロアドレスは何か、という質問に
対して答えねばならない。更に、ハードウエア
に対しては質問は記号で再び書き表わすことが
できる。 ?−>チツプ間バス(ICB) ?−>マイクロアドレス・レジスタ
(MAR) これらの質問は第3〜16図に示されている
各マイクロ命令について答えられている。それ
らの図の各ボツクスは1つのサイクルを表わし
ており、何をICBへ与えるか、およびその特定
のサイクルの間にMARに何を入れるかを示し
ている。第4〜16図はマイクロプログラム
ROM226からMIR785を介して送られて
くる命令を示すものである。しかし、ほとんど
の命令(ROM流れ制御マイクロ命令;飛越し
など以外の全て)もMIR785はもちろんPIR
310からもくる(たとえば第3図参照)。 以下に述べるものは多重命令と可変長命令の
場合について仮定したものである。 多重サイクル・マイクロ命令または可変サイ
クル・マイクロ命令は通常の状況の間は翻訳す
べきでない。これにはSAW、PIR、空でない、
エキストラクタ空、またはその他の任意の障害
(HERRを除く)が含まれる。これは制御信号
CC1、CCφ、DNEにより行われる。多重サイ
クル・マイクロ命令は制御信号CC1とCCφの状
態をQPLAに変えさせる。種々の状態の意味が
(2、4、3、5)節の表に要約されている。 この表からわかるように、マイクロ命令の境
界はCC1、CCφ=11の時だけ生ずる。この場合
にだけMISは障害、流れ、フオースド・マイク
ロ命令またはスターテイング・アドレスをサー
ビスできる。マイクロ命令ROMからの2つの
マイクロ命令を、それらの命令の間のマイクロ
命令境界をアサートすることなしに実行するた
めの性能も与えられる。この性能は、2つのマ
イクロ命令の間の特殊なタイミングを守る必要
がある場合、または2つのマイクロ命令が翻訳
されたとすると情報が失われる場合に、必要と
される。この特徴を使用するマイクロ命令は飛
越し、マイクロサブルーチン呼出し、戻り、条
件付き飛越し、動作実行、再開始である。この
特徴の使用に課される制約は、それらのマイク
ロ命令を命令デコーダによりフオースできない
ことである。それらの命令のうちの1つがフオ
ースされたとすると、どこからでもこのMAR
が指しているようなマイクロ命令ROMからの
不要情報マイクロ命令の直後にその命令が実行
する。 タイミングのために、可変長マイクロ命令は
CC1とCCφを用いては実行されない。その代り
に、それらのマイクロ命令の長さを定めるため
に制御信号DNEが用いられる。可変長マイク
ロ命令が検出されると、QPLAがVLMI(可変
長マイクロ命令をアサートする)。この信号は
DNE形成ロジツクへ進んでDNEのアサートを
解除する(DNEはDONEでなくなる)。この非
DONEのためにアイドル・サイクルがひき起
される(ICB<NOP、MAB<MAR)。下記の
うちの1つが起るとDNEは再びアサートされ
る。(1)DONEピンが実行装置によりアサート
される;(2)WLC(最後のサイクルを待つ)がア
サートされている間はISBは高レベルである;
(3)HERR障害がアサートされる;(4)INCRMA
ピンがアサートされる;または(5)INITピンが
アサートされる。アサートされると、DNEが
Sコード優先符号器がアイドル・サイクルを送
ることを停止させ、次のマイクロ命令を送らせ
る。 (3、3) 障害 障害制御ロジツク778によりアサートでき
る障害フラグには(1)FLTIと(2)FLTMの2種類
がある。 第1に、「無境界」特徴が使用される時を除
き、FLTIは現在のマイクロ命令が終つたら即
座にサービスせねばならない。即時障害は多重
サイクル・マイクロ命令または可変サイクル・
マイクロ命令を中断できない。これの例外は、
多重サイクル・マイクロ命令と可変サイクル・
マイクロ命令を打切るHERR障害である。時
間切れ障害の場合を除き、マイクロ実行装置は
DONEを送り、サイクルはFAULTにすぐ続
く。このために、進行中であるかもしれない可
変(多重でない)サイクル・マイクロ命令はど
のようなものでも打切られる。 マクロ命令の終りマイクロ命令、飛越しマク
ロ命令の終りマイクロ命令、またはスタツクが
空の時は戻るマクロ命令の終りマイクロ命令が
実行された時だけFLTMフラグは調べられる。
調べられると、FLTMフラグはセツトされ、
QPLAは障害ルーチンを開始する。また、調べ
られないと、FLTMはアサートされず、その
ためにQPLAは通常のように進む。 次の表は種々の障害に優先順位がどのように
つけられるかを示すものである。
典型的な流れ 1サイクル・マイクロ命令:11 2サイクル・マイクロ命令:00(第1サ
イクル);11(第2サイクル) 3サイクル・マイクロ命令:00(第1サ
イクル);01(第2のサイクル);11(第3の
サイクル) 飛越しマイクロ命令:11(飛越し);10
(飛越し直後のマイクロ命令) (2.4.3.6) DNE DEE(DONE)は可変長マイクロ命令の
実行中にアサートを解除される。DNEは
DONEピン、またはISBと「アンドをとら
れる」WLC(最後のサイクルを待つてい
る)により合図される可変長マイクロ命令
の最後のサイクルまで、アサート解除状態
すなわち「doneでない」状態を保つ。
DNEはINIT、INCRMAまたはHERRの
場合に高レベル状態にさせられる。 (2.4.3.7) XTRMT XTRMT(eXTRactor eMpTy)はより
多くの命令データを必要とする時にIDに
よりアサートされる。MIS制御回路は
XTRMTに応答して「命令セグメント読
取り」マイクロ命令を送る。命令データが
受けられた時にIDはXTRMTのアサート
を解除する。 (2.4.3.8) FLOW ACTIVE FLOW ACTIVEは、ROM流れシーケ
ンスが始まつた時にはいつでもセツトされ
るフリツプフロツプであり(INIT、障害、
SAW)、障害マクロが受けられた時を除
き、マクロ・マイクロ命令の終りと飛越し
マクロ・マイクロ命令の終りによつてリセ
ツトされる。 (2.4.3.9) PIRMT PIRMT(PIR空)706(第1図)は、
実行されることをPIR FIFOの中で待つて
いるフオースド・マイクロ命令がない時に
PIR制御ロジツクによりアサートされる。 (2.4.3.10) STKMT STKMT(マイクロアドレス・スタツク
空)は、マイクロアドレス・スタツク31
6に戻りマイクロアドレスがない時にアサ
ートされる。このSTKMTはマイクロサ
ブルーチンから戻る時にMIS制御ロジツク
により用いられる。 (2.4.3.11) SAW SAW(スターテイング・アドレス待機)
712は、マイクロ命令ROMシーケンス
のためのスターテイング・アドレスが
DPLAからマイクロアドレス・レジスタへ
転送されることを待つている時に、命令デ
コーダによりアサートされる。RASA(ス
ターテイング・アドレスを受ける用意がで
きている)714(第1図)が命令デコー
ダにより受けられた時にこのSAWはリセ
ツトされる。 (2.4.3.12) RASA(スターテイング・アドレスを受
ける用意ができている)は、DPLAからの
スターテイング・アドレスがMABに与え
られている時に、MIS制御ロジツクにより
アサートされる。RASAはSAWのアサー
トを解除することをID(これはSAWをル
ープオンする)へ合図して進む。 (2.4.3.13) 先取り(LAH) 先取りフラグは一度はMISの一部であつ
たが、その後にIDロジツクへ動かされた。
先取りフラグは、IDが状態x(状態を復号
する)からの遷移を終つた時にセツトされ
る。先取りフラグがセツトされている間
は、IDは次の命令を自由に復号するが、
その間にMISは命令の命令をシーケンスす
る。しかし、MISより1つ以上の命令を先
取りすることは決してしてはならない。マ
クロ・マイクロ命令の終り、または飛越マ
クロ・マイクロ命令の終りを実行すること
により示されているROM流の終りに、先
取りフラグがリセツトされる。 (2.4.3.14) DST DST(行先)は、各マクロ命令の始めに
零リセツトされ、IDにより選択的にセツ
トされるフラグである。このフラグはMIS
において「行先アクセス」マイクロ命令
と、「条件を飛越しフラグへ動かす」マイ
クロ命令によりテストされる。行先アクセ
ス・マイクロ命令の場合に、このDSTは
情報を命令デコーダからMISへ送るために
用いられる。DSTのこの状況において
「メモリをアクセスする」のか「スタツク
をアクセスする」のかをDSTフラグが示
す。これにより、いずれかの種類のメモリ
基準を表わすマイクロ命令「先行アクセ
ス」を1回だけ書込むために用いられるメ
モリ基準の種類だけが異なる、あるマイク
ロ命令ROMの流れを認める。実行時には
「行先アクセス」の代りに正しいメモリ基
準が置き換えられる。 OPLDSTと呼ばれる第2のDSTフラグ
が飛越しのためにID制御ロジツクにおい
て用いられ、その場合にOPLDSTはその
飛越が絶対的であるか、相対的であるかを
示す。 (2、4、3、15) T/F T/F(真/偽)フラグ795は、T/
Fマイクロ命令戻りの結果として、T/F
ピンを介して実行装置によりロードされ
る。T/Fは条件を飛越しフラグ・マイク
ロ命令へ動かすことによりロードすること
もできる。そのマイクロ命令の最後の2ビ
ツトに従つてLAH、IPCまたはDSTなど
のフラグをT/Fフラグにコピーできる。
T/Fは、条件付き飛越しマイクロ命令の
実行中にMIS制御ロジツクにより用いら
れ、および条件付き状態飛越しにより用い
られる。 (2、5) 障害制御ロジツク 障害制御ロジツク778は実行装置で取扱わ
れる全ての障害の存在を保持し、優先度を定
め、かつフラグする。それらの障害には、(1)
BP/Fバスを介して実行装置により送られる
障害、(2)ハードウエアの誤り(HERR)、(3)バ
スの誤り(BERR)、(4)不当クラス障害
(SIC)、(4)ALARM、(6)プロセツサ間通信
(IPC)および(7)TRACEが含まれる。それらの
障害は個々に保持され、(1)障害リセツト・ロジ
ツクまたは(2)リセツトによつてリセツトされる
まで保持されたままである。それらのラツチに
は障害優先符号器により優先度がつけられる。
それから障害優先符号器は最高優先度の障害の
存在を示すフラグをアサートする。アサートで
きるそのようなフラグには、(1)直接障害のため
のFLTI、(2)マクロ上の障害のためのFLTM、
の2つがある。MISが障害を確認した後で、障
害制御ロジツクがその障害をリセツトし、係属
中のその他の障害をフラグする。 (2、6) バス・インターフエイス・ロジツク バス・インターフエイス・ロジツク780は
可変長アクセス・メモリ・マイクロ命令の間に
バスをモニタし、実行装置の他の部分へ状態情
報を与える。バス・インターフエイス・ロジツ
クの主な出力について以下に説明する。 (2、6、1) 妥当命令フエツチ・データ(VIFD) この出力はACD線上に妥当命令データが
ある時にアサートされる。命令流データを保
持するために命令デコーダがこの信号を用い
る。 (2、6、2) 命令フエツチ完了(IFD) この出力は、命令データの最後の二重バイ
トがACD線上で妥当である場合にVIFDでア
サートされる。命令フエツチを決定するため
にこの出力は命令デコーダにより用いられ
る。 (2、6、3) 最後のサイクルを待つ(WLC) 可変長マイクロ命令の最後のサイクルの間
に、かつ待つている間に(ストレツチの間
に)WLCはアサートされる。このWLCは
ISBと「アンドをとられ」て、DNEに可変
長マイクロ命令を終らせる。 (2、6、4) バス誤り(BERR) この出力は、任意のアクセス・メモリ・マ
イクロ命令の最後のサイクルの直後のサイク
ルの間に、ISBが低レベルになつた時、にア
サートされる。 (3、0) MIS論理機構についての説明 マイクロ命令セツトの実現により次のような
問題が解かれる。すなわち、(1)MISが2つの主
なソースからマイクロ命令を受け、両方のソー
スに対してサービスせねばならないとともに、
両方のソースが用意ができていない時にNO−
Opを送らねばならない。(2)完了までに1つ以
上のサイクルを要するいくつかのマイクロ命令
がある。(3)任意の時刻に2種類の障害が起るこ
とがあり、それらの障害に異なる条件の下で対
処せねばならない。(4)テストと初期設定を組込
まねばならない。(5)最適の性能を達成するため
にMISはパイプラインされる。パイプラインに
ともなつて問題が起る。 MIS制御ロジツクは各サイクルごとに1つの
質問「どのマイクロ命令を実行装置へ送るべき
か」に答える必要がある。この質問に正しく答
えるためには、前記した多くの基準を考慮に入
れる必要がある。そして、その回答は1サイク
ルに1回、迅速に行う必要がある。マイクロ命
令ROMの流れで実行している時に答える必要
のある別の重要な質問は「ROMからアクセス
すべき次のマイクロ命令のROMマイクロアド
レスは何か」である。次のマイクロアドレスが
識別されると、そのマイクロアドレスの内容を
出力するためにはROMはほぼ完全なサイクル
を必要とする。 そうすると、MISをどのように制御するかの
問題を閉じられた形で述べることができる。す
なわち、 ある特定のサイクルで次の状態が与えられ
る。 1 マイクロ命令の2つのソースの状態、 2 多重サイクル・マイクロ命令または可変サ
イクル・マイクロ命令の状態、 3 障害の状態、 4 テストおよび初期設定の状態 5 パイプライン状態。 および、 1 次のマイクロ命令は何か、 2 次のマイクロアドレスは何か。 以下の節ではこれが本発明に従つてどのよう
に行われるかを述べる。 (3、1) マイクロ命令のソース マイクロ命令の2つの主なソースは、(1)命令
デコーダからのフオースド・マイクロ命令、(2)
マイクロプログラムROM226からのROM
流れマイクロ命令、である。この第2の場合は
スターテイング・マイクロアドレスを必要とす
る。ROMの流れに対するスターテイング・ア
ドレスには次の2つがある。(1)正常な流れに対
しては、スターテイング・アドレス783が命
令デコーダにより送られ、(2)障害の流れに対し
ては、スターテイング・アドレスは障害制御ロ
ジツク(すなわち、ROM779)から得られ
る。そうすると、マイクロ命令とスターテイン
グ・アドレスの少くとも一方の2つの主なソー
スがある。(1)命令デコーダ、(2)障害制御ロジツ
ク、がそれである。この節ではソースとして命
令デコーダだけをとり扱い、スターテイング・
アドレスのソースとしての障害論理ロジツクに
ついては後で詳しく説明する。 命令デコーダはフオースドマイクロ命令と、
マイクロ命令ROM流のためのスターテイン
グ・アドレスをMISへ送る。フオースド・マイ
クロ命令とスターテイング・アドレスの送受の
ための原案の基準は次のように要約される。 1 命令デコーダとMISの間のインターフエイ
スとして機能する深さが2のPIR FIFO31
0においてフオースド・マイクロ命令がバツ
フアされる。 2(a) PIRが一杯でなく、 (b) (暗示された)命令デコーダが停止させ
られない、 限り、命令デコーダはフオースド・マイク
ロ命令をロードできる。 3 命令デコーダがスターテイング・アドレス
を有すると、それはSAW(スターテイング・
アドレス待機)のアサートによりそのことを
フラグし、停止する。 4 MISは待つことができるスターテイング・
アドレスを介してフオースド・マイクロ命令
(PIRが空でない)を常にサービスする。 5(a) SAWがアサートされた時、 (b) PIR空がアサートされた時 に、スターテイング・アドレスをマイクロア
ドレス・レジスタへロードすると同時に、ス
ターテイング・アドレスを受ける用意ができ
たことをアサートし、更に流れアクテイブ・
フラグをセツトすることにより、MISはスタ
ーテイング・アドレスをサービスする。 6 RASAを認めた時に命令デコーダはSAW
のアサートを解除し、それ自身で再びスター
トする。 以上のようなことから、下記の結果が生ず
る。 1 フオースド・マイクロ命令とスターテイン
グ・アドレスは、それらが命令デコーダによ
り発生された順序と同じ順序で、MISにより
サービスされる。 2 命令デコーダはMISよりは1つ以上のマイ
クロ命令を先取りすることは決してない。 3 MISに対する最少数のサイクルが失われ
る。 (3、2) マイクロ命令長 マイクロ命令は(1)単一サイクル、(2)多重サイ
クル、(3)可変サイクル、の3つの主な部分に分
けることができる。多重サイクル・マイクロ命
令の長さは2サイクルまたは3サイクルにでき
る。命令の各サイクルの間に、どのマイクロ命
令またはデータを実行装置へ送るべきか、およ
び次のマイクロアドレスは何か、という質問に
対して答えねばならない。更に、ハードウエア
に対しては質問は記号で再び書き表わすことが
できる。 ?−>チツプ間バス(ICB) ?−>マイクロアドレス・レジスタ
(MAR) これらの質問は第3〜16図に示されている
各マイクロ命令について答えられている。それ
らの図の各ボツクスは1つのサイクルを表わし
ており、何をICBへ与えるか、およびその特定
のサイクルの間にMARに何を入れるかを示し
ている。第4〜16図はマイクロプログラム
ROM226からMIR785を介して送られて
くる命令を示すものである。しかし、ほとんど
の命令(ROM流れ制御マイクロ命令;飛越し
など以外の全て)もMIR785はもちろんPIR
310からもくる(たとえば第3図参照)。 以下に述べるものは多重命令と可変長命令の
場合について仮定したものである。 多重サイクル・マイクロ命令または可変サイ
クル・マイクロ命令は通常の状況の間は翻訳す
べきでない。これにはSAW、PIR、空でない、
エキストラクタ空、またはその他の任意の障害
(HERRを除く)が含まれる。これは制御信号
CC1、CCφ、DNEにより行われる。多重サイ
クル・マイクロ命令は制御信号CC1とCCφの状
態をQPLAに変えさせる。種々の状態の意味が
(2、4、3、5)節の表に要約されている。 この表からわかるように、マイクロ命令の境
界はCC1、CCφ=11の時だけ生ずる。この場合
にだけMISは障害、流れ、フオースド・マイク
ロ命令またはスターテイング・アドレスをサー
ビスできる。マイクロ命令ROMからの2つの
マイクロ命令を、それらの命令の間のマイクロ
命令境界をアサートすることなしに実行するた
めの性能も与えられる。この性能は、2つのマ
イクロ命令の間の特殊なタイミングを守る必要
がある場合、または2つのマイクロ命令が翻訳
されたとすると情報が失われる場合に、必要と
される。この特徴を使用するマイクロ命令は飛
越し、マイクロサブルーチン呼出し、戻り、条
件付き飛越し、動作実行、再開始である。この
特徴の使用に課される制約は、それらのマイク
ロ命令を命令デコーダによりフオースできない
ことである。それらの命令のうちの1つがフオ
ースされたとすると、どこからでもこのMAR
が指しているようなマイクロ命令ROMからの
不要情報マイクロ命令の直後にその命令が実行
する。 タイミングのために、可変長マイクロ命令は
CC1とCCφを用いては実行されない。その代り
に、それらのマイクロ命令の長さを定めるため
に制御信号DNEが用いられる。可変長マイク
ロ命令が検出されると、QPLAがVLMI(可変
長マイクロ命令をアサートする)。この信号は
DNE形成ロジツクへ進んでDNEのアサートを
解除する(DNEはDONEでなくなる)。この非
DONEのためにアイドル・サイクルがひき起
される(ICB<NOP、MAB<MAR)。下記の
うちの1つが起るとDNEは再びアサートされ
る。(1)DONEピンが実行装置によりアサート
される;(2)WLC(最後のサイクルを待つ)がア
サートされている間はISBは高レベルである;
(3)HERR障害がアサートされる;(4)INCRMA
ピンがアサートされる;または(5)INITピンが
アサートされる。アサートされると、DNEが
Sコード優先符号器がアイドル・サイクルを送
ることを停止させ、次のマイクロ命令を送らせ
る。 (3、3) 障害 障害制御ロジツク778によりアサートでき
る障害フラグには(1)FLTIと(2)FLTMの2種類
がある。 第1に、「無境界」特徴が使用される時を除
き、FLTIは現在のマイクロ命令が終つたら即
座にサービスせねばならない。即時障害は多重
サイクル・マイクロ命令または可変サイクル・
マイクロ命令を中断できない。これの例外は、
多重サイクル・マイクロ命令と可変サイクル・
マイクロ命令を打切るHERR障害である。時
間切れ障害の場合を除き、マイクロ実行装置は
DONEを送り、サイクルはFAULTにすぐ続
く。このために、進行中であるかもしれない可
変(多重でない)サイクル・マイクロ命令はど
のようなものでも打切られる。 マクロ命令の終りマイクロ命令、飛越しマク
ロ命令の終りマイクロ命令、またはスタツクが
空の時は戻るマクロ命令の終りマイクロ命令が
実行された時だけFLTMフラグは調べられる。
調べられると、FLTMフラグはセツトされ、
QPLAは障害ルーチンを開始する。また、調べ
られないと、FLTMはアサートされず、その
ためにQPLAは通常のように進む。 次の表は種々の障害に優先順位がどのように
つけられるかを示すものである。
【表】
【表】
(3、4) テストおよび初期設定
命令装置の初期設定はINITピンをアサート
することにより行われる。これは障害、流れ、
多重サイクル・マイクロ命令などの全てに優先
する。INITはプロセツサ・リセツト・マイク
ロ命令を実行装置へ与えさせ、初期設定ROM
流を開始させる。 テストはINCRマイクロアドレス・ピンによ
り行われる。このピンをアサートすると、
ROMはマイクロ命令ROMの内容をICB上へ逐
次出力(ダンプ)させる。それも、INIT機能
を除き、最高の優先順位である。INCRMAが
去る場所からROMコードの実行を続けるため
に、この性能もMISのために設計に入れられ
る。これは、(1)ROMの流れを開始させ、(2)希
望のマイクロアドレスに達するまでINCRMA
をアサートし、(3)INCRMAを下げること、に
よつて行われる。 (3、5) Sコード Sコードは4ビツト制御コードであつて、制
御情報を得るために種々のスタツクにより復号
されて記録される。このSコードはMIS制御ロ
ジツク776で発生され、MISの中全体をバス
を通じて送られる。下の表はSコードの定義を
与えるものである。
することにより行われる。これは障害、流れ、
多重サイクル・マイクロ命令などの全てに優先
する。INITはプロセツサ・リセツト・マイク
ロ命令を実行装置へ与えさせ、初期設定ROM
流を開始させる。 テストはINCRマイクロアドレス・ピンによ
り行われる。このピンをアサートすると、
ROMはマイクロ命令ROMの内容をICB上へ逐
次出力(ダンプ)させる。それも、INIT機能
を除き、最高の優先順位である。INCRMAが
去る場所からROMコードの実行を続けるため
に、この性能もMISのために設計に入れられ
る。これは、(1)ROMの流れを開始させ、(2)希
望のマイクロアドレスに達するまでINCRMA
をアサートし、(3)INCRMAを下げること、に
よつて行われる。 (3、5) Sコード Sコードは4ビツト制御コードであつて、制
御情報を得るために種々のスタツクにより復号
されて記録される。このSコードはMIS制御ロ
ジツク776で発生され、MISの中全体をバス
を通じて送られる。下の表はSコードの定義を
与えるものである。
【表】
【表】
(3、6) MIS優先度制御器
MISの全体の制御は優先度符号器により行わ
れる。種々の入力とフラグについて説明するこ
とにより、ある種の信号が他の信号より高い優
先度を有することが明らかとなる。下記の表を
参照されたい。
れる。種々の入力とフラグについて説明するこ
とにより、ある種の信号が他の信号より高い優
先度を有することが明らかとなる。下記の表を
参照されたい。
【表】
1 プロセツサ全体をリセツトするINITが最
高優先度の位置を占める。 2 INCRはチツプ・テスト条件のために、通
常はINITとともに、用いられる。INCR
MAは第2優先度の位置、INITの後、を保
つ。 3 マイクロ命令境界でない、はMISが多重マ
イクロ命令または可変長マイクロ命令を実行
中であり、したがつて「マイクロ命令の境界
にない」。NOT DONEは可変長マイクロ命
令が進行中の場合にアサートされる。それは
原理的には、マイクロ命令の境界ではない、
とほぼ同じである。しかし、実現上の理由か
らNOT DONEとマイクロ命令の境界では
ない、は別々に処理される。そのような条件
においては、障害が処理されることもなけれ
ば、他のどんなマイクロ命令が開始すること
もない。このために、マイクロ命令の境界で
ない、とNOT DONEは第3の優先順位に
される。 4 即時障害(FLTI)は現在のマイクロ命令
が実行を終つた直後に処理すべきである。し
たがつて、FLTIは、マイクロ命令の境界で
ないとNOT DONEよりも優先度は1レベ
ル低い。 5 起きる頻度とサービスの容易さとから、1
つの特別な即時障害、すなわちエキストラク
タ空障害、は特殊なケースとして取扱われ
る。最も即時の障害は障害サービス・ルーチ
ンをマイクロ命令の外で実行することを要求
するが、エキストラクタ空障害だけは1つの
マイクロ命令、すなわち命令セグメント読取
り、を実行することを必要とする。即時障害
が他に係属中でなければ、エキストラクタ空
は命令セグメントの読取りをMISに強制す
る。IDはそのマイクロ命令に応答して障害
をキヤンセルする。 6 MISがROMの流れを実行している間は、
フオースド・マイクロ命令とスターテイン
グ・アドレスは処理されない。流れアクテイ
ブ・フラグが発生されて、MISがROM流に
ある時にそれを示すために用いられる。した
がつて、それはNOT PIRMTとSAWより
は優先度は高いが、即時障害はROM流に割
り込むことができるからFLTIよりは優先度
は低い。 7 ROM流になければ(流れアクテイブがア
サートされない)、MISはPIRで待ち行列を
作ることができるフオースド・マイクロ命令
のいずれでもスタートさせる。フオースド・
マイクロ命令の待機の存在はアサートされて
いるPIR NOT EMPTYにより示される。 8 流れの中になく、フオースド・マイクロ命
令が待たれていなければ、SAWのアサーシ
ヨンにより示される、IDがスタートすべき
流れを有するかどうかをMISが調べる。スタ
ーテイング・アドレスが待つているものとす
ると、MISは流れを開始して、流れアクテイ
ブをセツトする。 9 最後に、MISに対して何の要求も行わなけ
れば、MISはアイドル・モードに入る。
IDLEは最低の優先度である。 4、0 命令装置の典型的な動作 第2図を参照する。時刻T=φにおいて
INIT入力がアサートされる。そのためにIDは
マクロ命令バツフア301とFIFO308,3
10を空にさせられる。また、IDは状態機械
をリセツトし、かつSレジスタ内の停止させら
れた状態φに自身でセツトする。 MIS224は全ての障害とセーブされている他
の条件をリセツトし、ROM226内のアドレス
φからマイクロ命令の流れをスタートし、プロセ
ツサ・リセツト・マイクロ命令をマイクロ命令バ
ス220へ送り出す。このマイクロ命令に応じて
実行装置は内部障害状態をリセツトし、進行中か
もしれない多重サイクル・マイクロ命令を停止
し、MISからの新しいマイクロ命令を待つ。MIS
によりスタートさせられてマイクロ命令バスを経
て送り出されるマイクロ命令の流れは、前記米国
特許出願第971661号に開示されている手順に従つ
てプロセツサを初期設定するのに必要な動作を行
う。命令装置/実行装置プロセツサでランさせる
べきプロセスがあある場合には、そのプロセスの
現在の環境についての必要な全てのアドレツシン
グ情報が内部レジスタにロードされる。そのレジ
スタにロードされ、ビツト・ポインタと命令ポイ
ンタが初期設定されると、IDはスタートさせら
れる。IDがスタートさせられると、IDは命令デ
ータを主メモリからフエツチすることを要求す
る。MISにより出されたマイクロ命令に応答して
実行装置は主メモリを参照し、マクロ命令が主メ
モリから命令装置へ転送される。命令バツフア3
01が主メモリからACDバス214を介して受
けたマクロ命令データを保持する。ビツトポイン
タ302が、IDにより復号すべき次のフイール
ドの最下位ビツトの命令バツフア中のビツト位置
を示す。そのビツト・ポインタを用いてコンポー
ザ・マトリツクス765が、状態機械で復号すべ
き命令データの次のnビツトを与える。その状態
機械は命令フイールドを復号し、任意のデータす
なわちマイクロ命令をFIFO308,310へ与
え、それから復号したばかりのビツト長によりポ
インタを更新する。 たとえば、簡単な係数基準を復号する場合に
は、状態機械はセグメント・セレクタを最初にピ
ツクアツプし、次に命令のデイスプレースメン
ト・フイールドをピツクアツプして、それらを
EXBUF FIFO308へロードする。次に、状態
機械はTROM307からPIR FIFO310へマ
イクロ命令を与えさせる。そうすると、PIR
FIFO310はMIS224の制御の下に、セグメ
ント・セレクタとデイスプレースメントを実行装
置へ転送させる。 命令バツフア301の中のデータが使われてし
まうまでIDは復号フイールドを含む。それから
IDは用意完了状態に入らず、メモリからより多
くの命令データをフエツチすることをMISが実行
装置に指示することを要求する。 状態機械305がマクロ命令のOD−CODEフ
イールドを復号すると、単一のマイクロ命令また
はマイクロ命令の流れが命令の実行に必要であ
る。単一マイクロ命令の場合には、IDはそのマ
イクロ命令をPIR FIFO310の中に置く。復号
されたマクロ命令を実行するためにそのマクロ命
令が一連のマイクロ命令を必要とするものとする
と、IDはマイクロプログラムROM226に貯え
られているマイクロ命令の流れのスターテイン
グ・アドレスを出す。この状況においては、MIS
はROMからの指定されたマイクロプログラムの
流れを独立に実行し、IDは次のマクロ命令の復
号を続ける。 1つのマイクロ命令と、より長い流れのための
スターテイング・アドレスとを受ける他に、MIS
は優先順位をつけてMISでサービスせねばならな
い実行装置からの障害情報を受ける。符号化され
た障害情報はBP/Fバス217を介してMISに
より受けられる。MISは、実行装置へのマイクロ
命令の正常な流れを中断し、サブルーチン・コー
ルをマイクロプログラムROM226内の特殊な
障害取扱い器へ強制することにより、障害をサー
ビスする。障害サブルーチンがその動作を完了す
ると、動作はそのサブルーチンから戻り、マイク
ロ命令の正常な流れがMISによりスタートさせら
れる。 即時障害とマクロ命令の終り障害との2種類の
障害がMISにより取扱われる。各種類の中におい
ては障害は優先順に取扱われる。即時障害は、現
在実行中のマイクロ命令が終ると、障害状態をた
だちにサービスせねばならないことを示す。マク
ロ命令の終り障害は主要度が低く、マクロ命令の
終りマイクロ命令で示される、現在のマクロ命令
の実行が終るまでサービスされない。 実行装置へマイクロ命令を出すことと、障害条
件を取扱うことに加えて、MISはMISとIDの内
部動作を制御するいくつかのマイクロ命令の翻訳
と実行も行わねばならない。たとえば、それらの
マイクロ命令はIDをスタートおよびストツプさ
せる動作、IDのビツト・ポインタをロードする
動作のような動作を行う。(MISマイクロ命令は
前記米国特許出願第971661号の第11節に詳しく記
載されている。) IDにより復号されたマクロ命令は、そのマク
ロ命令の一部を実行するためにただ1つのマイク
ロ命令を実行装置へ転送することを要求すること
があり、または2つまたはそれ以上のマイクロ命
令を含むマイクロ命令の流れが、ある特定の機能
を行うために実行装置へ送られることを求められ
ることがある。単一サイクル・マイクロ命令は、
第4図に示されているように、ROM226の中
で発生させることができる。この場合には、
MIR785の内容がマイクロ命令バスへ転送さ
れ、それからMAR312が加算器314により
1だけ増加させられる。ID222がバス220
へマイクロ命令を与えることも可能である(第3
図)。この場合にはマイクロ命令はPIR310へ
転送され、それからPIRの内容がICB787に置
かれ、MAR312の内容は不変である。命令デ
コーダは、PIRが空でない限りは、このようにし
てマイクロ命令を強制させることができる。 あるマイクロ命令の完了にはいくつかのサイク
ルを必要とする。それらの多重サイクル・マイク
ロ命令の完了にどれだけのサイクルを必要とする
かを決定するために、デコーダ794がそれらの
マイクロ命令を復号する。制御ビツトCCφ、CC1
793によりあるカウントが維持される。マイ
クロ命令がマイクロ命令バス220を介して実行
装置へ転送される。この実行装置はそのマイクロ
命令を復号して、それを実行する。 共通の二重サイクル・マイクロ命令(第5図)
の場合には、第2のサイクルの間はMISはアイド
ルで、NO−OPがICB787へ転送され、MAR
312は増加させられない。 第2のサイクルの間にROM226内での飛越
しの場合には(第6図)、MIR785の内容が
ICBへ転送され、デコーダ・バスDB(すなわち、
デコーダ・レジスタ)の内容がMAR312へ転
送されて、次のマイクロ命令のための飛越しアド
レスを与える。 再スタート・マイクロ命令(第7図)の場合に
は、一時的スタツクTMP791の内容が第2の
サイクルにICBへ転送され、一方MARは増加さ
せられない。 データ転送マイクロ命令(第8図)の場合に
は、EXBUF308の内容が第2のサイクル中に
ICBへ転送され、MARの内容は増大させられな
い。 条件付き飛越し(第9図)は、実行装置により
戻された条件が真または偽であるかを調べるため
に真/偽フラツグ795がテストされることを除
き、第6図に示されている飛越しに類似する。も
し真であれば、第6図を参照して先に説明したよ
うに、第2のサイクルで飛越が行われる。また偽
であれば、第2のサイクル中にNO−OPがバス
へ与えられる。 次に第10図を参照する。この図にはアクセス
行先マイクロ命令が示されている。DST(行先)
は、アクセス・メモリまたはアクセス・スタツク
のいずれを意図するのかを示すために、IDによ
りセツトされるフリツプフロツプである。もし零
であればメモリ・アクセス・マイクロ命令786
がICBへゲートされる。また、1であればスタツ
ク・アクセス・マイクロ命令がICBへゲートされ
る。いずれの場合においても、マイクロアドレ
ス・レジスタの内容は増加させられない。 第11図は戻りマイクロ命令を示すものであ
る。第2のサイクル中は、MIS制御ロジツク77
6によりセツトされた状態フラツグがテストされ
る。マイクロアドレス・スタツク316に戻りマ
イクロアドレスがない時はSTKMT(マイクロア
ドレス・スタツク空)がアサートされる。マイク
ロ命令の第2サイクル中にこのフラグがアサート
されないとすると、MIRの内容がICBへ転送さ
れ、スタツク316内の次のマイクロアドレスが
MAR312へ転送され、流れアクテイブ・フラ
グがセツトされる。STKMTフラグがセツトさ
れると、そのスタツク内には戻りマイクロアドレ
スは残されず、マイクロ命令ルーチンからの戻り
が、MARを増大させることによるのではなく
て、NO−OPをICBに置くことにより、および流
れアクテイブ・フラグをリセツトすることによつ
て、第2のサイクル中に行われる。 第12図はマクロの終りマイクロ命令を示す。
このマイクロ命令は、障害を求めたマクロの終り
マイクロ命令サブルーチンをスタートさせること
ができるように、FLTMフラグをテストする。
そのフラグがセツトされたとすると、マイクロ実
行装置障害状態リセツト・マイクロ命令がICBへ
転送され、障害ROM(FLT)の出力がMARへ転
送され、流れアクテイブ・フラグがセツトされ
る。障害が係属中でなければ、FLTMは零で、
NO−OPはICBへ転送されず、MARは増大させ
られず、流れアクテイブ・フラグがリセツトされ
る。 三重サイクル・マイクロ命令が第13,14,
15図に示されている。 第13図に示されている共通マイクロ命令は、
MAR312を増大させない間にNO−OP定数7
82をICBへ転送することにより、第2と第3の
サイクルで実現される。これにより、2つのサイ
クルに対するマイクロ命令を実行装置が実行して
いる間に、MISが同じ2つのサイクルをくりかえ
すことができることになる。 オペレータ障害符号転送マイクロ命令が第14
図に示されている。現在の命令OP−CODEが復
号された時に、命令装置に保持されている8ビツ
ト障害コードがマイクロ命令バス220を介して
実行装置へ送られ、デイスプレースメント・スタ
ツクに貯えられる。第3の実行サイクル中に、オ
ペレータ障害符号化レジスタ788の内容がICB
へ送られる。MARは増大させられない。 論理アドレス転送マイクロ命令が第15図に示
されている。二重バイト値がEXBUF308から
マイクロ命令バス220を介してセグメント・セ
レクタ・スタツクと、実行装置のデイスプレース
メント・スタツクへ転送される。第2のサイクル
の間にEXBUF内のセグメント・セレクタがICB
へ送られる。MARは増大させられない。第3の
サイクル中はEXBUF内のデイスプレースメント
値がICBへ送られる。このサイクルではMARは
増大させられない。 あるマイクロ命令を完了するには可変数のサイ
クルを要する。たとえば、メモリおよびオペラン
ド・スタツク・アクセス・マイクロ命令と動作実
行マイクロ命令がそれである。 メモリ・アクセス型マイクロ命令に対しては、
実行装置はオペランド長(すなわち、16ビツト量
をフエツチするためにメモリへ行かねばならない
回数)をカウンタにロードする。実行装置のアク
セス・シーケンサがメモリ参照を行い、参照が行
われるたびにカウンタのカウント値が減少させら
れる。このカウンタのカウント値が零になる1サ
イクル前にdone信号が発生される。これにより
MISをスタートさせることが可能となる。第16
図に示されているように、実行装置での動作が行
われている間はMISはアイドリング状態にある。
これはdone線をテストし、そのdone線が零の時
にNO−OPをICBへ与えることにより行なわれ
る。 動作型マイクロ命令を行うために、実行装置の
数学的シーケンサが除算、乗算および開平のよう
な演算動作のためのROMの流を貯える。動作実
行マイクロ命令は行うべき動作の種類を指定する
フイールドを含む。実行装置は適切なROMの流
れを開始し、動作が終る1サイクル前に、実行装
置は命令装置へのdone線をアサートする。この
場合には、第16図に示されている第2のサイク
ルの間に、MISが次のマイクロ命令をICBに置
き、マイクロアドレス・レジスタの内容を増大さ
せる。
高優先度の位置を占める。 2 INCRはチツプ・テスト条件のために、通
常はINITとともに、用いられる。INCR
MAは第2優先度の位置、INITの後、を保
つ。 3 マイクロ命令境界でない、はMISが多重マ
イクロ命令または可変長マイクロ命令を実行
中であり、したがつて「マイクロ命令の境界
にない」。NOT DONEは可変長マイクロ命
令が進行中の場合にアサートされる。それは
原理的には、マイクロ命令の境界ではない、
とほぼ同じである。しかし、実現上の理由か
らNOT DONEとマイクロ命令の境界では
ない、は別々に処理される。そのような条件
においては、障害が処理されることもなけれ
ば、他のどんなマイクロ命令が開始すること
もない。このために、マイクロ命令の境界で
ない、とNOT DONEは第3の優先順位に
される。 4 即時障害(FLTI)は現在のマイクロ命令
が実行を終つた直後に処理すべきである。し
たがつて、FLTIは、マイクロ命令の境界で
ないとNOT DONEよりも優先度は1レベ
ル低い。 5 起きる頻度とサービスの容易さとから、1
つの特別な即時障害、すなわちエキストラク
タ空障害、は特殊なケースとして取扱われ
る。最も即時の障害は障害サービス・ルーチ
ンをマイクロ命令の外で実行することを要求
するが、エキストラクタ空障害だけは1つの
マイクロ命令、すなわち命令セグメント読取
り、を実行することを必要とする。即時障害
が他に係属中でなければ、エキストラクタ空
は命令セグメントの読取りをMISに強制す
る。IDはそのマイクロ命令に応答して障害
をキヤンセルする。 6 MISがROMの流れを実行している間は、
フオースド・マイクロ命令とスターテイン
グ・アドレスは処理されない。流れアクテイ
ブ・フラグが発生されて、MISがROM流に
ある時にそれを示すために用いられる。した
がつて、それはNOT PIRMTとSAWより
は優先度は高いが、即時障害はROM流に割
り込むことができるからFLTIよりは優先度
は低い。 7 ROM流になければ(流れアクテイブがア
サートされない)、MISはPIRで待ち行列を
作ることができるフオースド・マイクロ命令
のいずれでもスタートさせる。フオースド・
マイクロ命令の待機の存在はアサートされて
いるPIR NOT EMPTYにより示される。 8 流れの中になく、フオースド・マイクロ命
令が待たれていなければ、SAWのアサーシ
ヨンにより示される、IDがスタートすべき
流れを有するかどうかをMISが調べる。スタ
ーテイング・アドレスが待つているものとす
ると、MISは流れを開始して、流れアクテイ
ブをセツトする。 9 最後に、MISに対して何の要求も行わなけ
れば、MISはアイドル・モードに入る。
IDLEは最低の優先度である。 4、0 命令装置の典型的な動作 第2図を参照する。時刻T=φにおいて
INIT入力がアサートされる。そのためにIDは
マクロ命令バツフア301とFIFO308,3
10を空にさせられる。また、IDは状態機械
をリセツトし、かつSレジスタ内の停止させら
れた状態φに自身でセツトする。 MIS224は全ての障害とセーブされている他
の条件をリセツトし、ROM226内のアドレス
φからマイクロ命令の流れをスタートし、プロセ
ツサ・リセツト・マイクロ命令をマイクロ命令バ
ス220へ送り出す。このマイクロ命令に応じて
実行装置は内部障害状態をリセツトし、進行中か
もしれない多重サイクル・マイクロ命令を停止
し、MISからの新しいマイクロ命令を待つ。MIS
によりスタートさせられてマイクロ命令バスを経
て送り出されるマイクロ命令の流れは、前記米国
特許出願第971661号に開示されている手順に従つ
てプロセツサを初期設定するのに必要な動作を行
う。命令装置/実行装置プロセツサでランさせる
べきプロセスがあある場合には、そのプロセスの
現在の環境についての必要な全てのアドレツシン
グ情報が内部レジスタにロードされる。そのレジ
スタにロードされ、ビツト・ポインタと命令ポイ
ンタが初期設定されると、IDはスタートさせら
れる。IDがスタートさせられると、IDは命令デ
ータを主メモリからフエツチすることを要求す
る。MISにより出されたマイクロ命令に応答して
実行装置は主メモリを参照し、マクロ命令が主メ
モリから命令装置へ転送される。命令バツフア3
01が主メモリからACDバス214を介して受
けたマクロ命令データを保持する。ビツトポイン
タ302が、IDにより復号すべき次のフイール
ドの最下位ビツトの命令バツフア中のビツト位置
を示す。そのビツト・ポインタを用いてコンポー
ザ・マトリツクス765が、状態機械で復号すべ
き命令データの次のnビツトを与える。その状態
機械は命令フイールドを復号し、任意のデータす
なわちマイクロ命令をFIFO308,310へ与
え、それから復号したばかりのビツト長によりポ
インタを更新する。 たとえば、簡単な係数基準を復号する場合に
は、状態機械はセグメント・セレクタを最初にピ
ツクアツプし、次に命令のデイスプレースメン
ト・フイールドをピツクアツプして、それらを
EXBUF FIFO308へロードする。次に、状態
機械はTROM307からPIR FIFO310へマ
イクロ命令を与えさせる。そうすると、PIR
FIFO310はMIS224の制御の下に、セグメ
ント・セレクタとデイスプレースメントを実行装
置へ転送させる。 命令バツフア301の中のデータが使われてし
まうまでIDは復号フイールドを含む。それから
IDは用意完了状態に入らず、メモリからより多
くの命令データをフエツチすることをMISが実行
装置に指示することを要求する。 状態機械305がマクロ命令のOD−CODEフ
イールドを復号すると、単一のマイクロ命令また
はマイクロ命令の流れが命令の実行に必要であ
る。単一マイクロ命令の場合には、IDはそのマ
イクロ命令をPIR FIFO310の中に置く。復号
されたマクロ命令を実行するためにそのマクロ命
令が一連のマイクロ命令を必要とするものとする
と、IDはマイクロプログラムROM226に貯え
られているマイクロ命令の流れのスターテイン
グ・アドレスを出す。この状況においては、MIS
はROMからの指定されたマイクロプログラムの
流れを独立に実行し、IDは次のマクロ命令の復
号を続ける。 1つのマイクロ命令と、より長い流れのための
スターテイング・アドレスとを受ける他に、MIS
は優先順位をつけてMISでサービスせねばならな
い実行装置からの障害情報を受ける。符号化され
た障害情報はBP/Fバス217を介してMISに
より受けられる。MISは、実行装置へのマイクロ
命令の正常な流れを中断し、サブルーチン・コー
ルをマイクロプログラムROM226内の特殊な
障害取扱い器へ強制することにより、障害をサー
ビスする。障害サブルーチンがその動作を完了す
ると、動作はそのサブルーチンから戻り、マイク
ロ命令の正常な流れがMISによりスタートさせら
れる。 即時障害とマクロ命令の終り障害との2種類の
障害がMISにより取扱われる。各種類の中におい
ては障害は優先順に取扱われる。即時障害は、現
在実行中のマイクロ命令が終ると、障害状態をた
だちにサービスせねばならないことを示す。マク
ロ命令の終り障害は主要度が低く、マクロ命令の
終りマイクロ命令で示される、現在のマクロ命令
の実行が終るまでサービスされない。 実行装置へマイクロ命令を出すことと、障害条
件を取扱うことに加えて、MISはMISとIDの内
部動作を制御するいくつかのマイクロ命令の翻訳
と実行も行わねばならない。たとえば、それらの
マイクロ命令はIDをスタートおよびストツプさ
せる動作、IDのビツト・ポインタをロードする
動作のような動作を行う。(MISマイクロ命令は
前記米国特許出願第971661号の第11節に詳しく記
載されている。) IDにより復号されたマクロ命令は、そのマク
ロ命令の一部を実行するためにただ1つのマイク
ロ命令を実行装置へ転送することを要求すること
があり、または2つまたはそれ以上のマイクロ命
令を含むマイクロ命令の流れが、ある特定の機能
を行うために実行装置へ送られることを求められ
ることがある。単一サイクル・マイクロ命令は、
第4図に示されているように、ROM226の中
で発生させることができる。この場合には、
MIR785の内容がマイクロ命令バスへ転送さ
れ、それからMAR312が加算器314により
1だけ増加させられる。ID222がバス220
へマイクロ命令を与えることも可能である(第3
図)。この場合にはマイクロ命令はPIR310へ
転送され、それからPIRの内容がICB787に置
かれ、MAR312の内容は不変である。命令デ
コーダは、PIRが空でない限りは、このようにし
てマイクロ命令を強制させることができる。 あるマイクロ命令の完了にはいくつかのサイク
ルを必要とする。それらの多重サイクル・マイク
ロ命令の完了にどれだけのサイクルを必要とする
かを決定するために、デコーダ794がそれらの
マイクロ命令を復号する。制御ビツトCCφ、CC1
793によりあるカウントが維持される。マイ
クロ命令がマイクロ命令バス220を介して実行
装置へ転送される。この実行装置はそのマイクロ
命令を復号して、それを実行する。 共通の二重サイクル・マイクロ命令(第5図)
の場合には、第2のサイクルの間はMISはアイド
ルで、NO−OPがICB787へ転送され、MAR
312は増加させられない。 第2のサイクルの間にROM226内での飛越
しの場合には(第6図)、MIR785の内容が
ICBへ転送され、デコーダ・バスDB(すなわち、
デコーダ・レジスタ)の内容がMAR312へ転
送されて、次のマイクロ命令のための飛越しアド
レスを与える。 再スタート・マイクロ命令(第7図)の場合に
は、一時的スタツクTMP791の内容が第2の
サイクルにICBへ転送され、一方MARは増加さ
せられない。 データ転送マイクロ命令(第8図)の場合に
は、EXBUF308の内容が第2のサイクル中に
ICBへ転送され、MARの内容は増大させられな
い。 条件付き飛越し(第9図)は、実行装置により
戻された条件が真または偽であるかを調べるため
に真/偽フラツグ795がテストされることを除
き、第6図に示されている飛越しに類似する。も
し真であれば、第6図を参照して先に説明したよ
うに、第2のサイクルで飛越が行われる。また偽
であれば、第2のサイクル中にNO−OPがバス
へ与えられる。 次に第10図を参照する。この図にはアクセス
行先マイクロ命令が示されている。DST(行先)
は、アクセス・メモリまたはアクセス・スタツク
のいずれを意図するのかを示すために、IDによ
りセツトされるフリツプフロツプである。もし零
であればメモリ・アクセス・マイクロ命令786
がICBへゲートされる。また、1であればスタツ
ク・アクセス・マイクロ命令がICBへゲートされ
る。いずれの場合においても、マイクロアドレ
ス・レジスタの内容は増加させられない。 第11図は戻りマイクロ命令を示すものであ
る。第2のサイクル中は、MIS制御ロジツク77
6によりセツトされた状態フラツグがテストされ
る。マイクロアドレス・スタツク316に戻りマ
イクロアドレスがない時はSTKMT(マイクロア
ドレス・スタツク空)がアサートされる。マイク
ロ命令の第2サイクル中にこのフラグがアサート
されないとすると、MIRの内容がICBへ転送さ
れ、スタツク316内の次のマイクロアドレスが
MAR312へ転送され、流れアクテイブ・フラ
グがセツトされる。STKMTフラグがセツトさ
れると、そのスタツク内には戻りマイクロアドレ
スは残されず、マイクロ命令ルーチンからの戻り
が、MARを増大させることによるのではなく
て、NO−OPをICBに置くことにより、および流
れアクテイブ・フラグをリセツトすることによつ
て、第2のサイクル中に行われる。 第12図はマクロの終りマイクロ命令を示す。
このマイクロ命令は、障害を求めたマクロの終り
マイクロ命令サブルーチンをスタートさせること
ができるように、FLTMフラグをテストする。
そのフラグがセツトされたとすると、マイクロ実
行装置障害状態リセツト・マイクロ命令がICBへ
転送され、障害ROM(FLT)の出力がMARへ転
送され、流れアクテイブ・フラグがセツトされ
る。障害が係属中でなければ、FLTMは零で、
NO−OPはICBへ転送されず、MARは増大させ
られず、流れアクテイブ・フラグがリセツトされ
る。 三重サイクル・マイクロ命令が第13,14,
15図に示されている。 第13図に示されている共通マイクロ命令は、
MAR312を増大させない間にNO−OP定数7
82をICBへ転送することにより、第2と第3の
サイクルで実現される。これにより、2つのサイ
クルに対するマイクロ命令を実行装置が実行して
いる間に、MISが同じ2つのサイクルをくりかえ
すことができることになる。 オペレータ障害符号転送マイクロ命令が第14
図に示されている。現在の命令OP−CODEが復
号された時に、命令装置に保持されている8ビツ
ト障害コードがマイクロ命令バス220を介して
実行装置へ送られ、デイスプレースメント・スタ
ツクに貯えられる。第3の実行サイクル中に、オ
ペレータ障害符号化レジスタ788の内容がICB
へ送られる。MARは増大させられない。 論理アドレス転送マイクロ命令が第15図に示
されている。二重バイト値がEXBUF308から
マイクロ命令バス220を介してセグメント・セ
レクタ・スタツクと、実行装置のデイスプレース
メント・スタツクへ転送される。第2のサイクル
の間にEXBUF内のセグメント・セレクタがICB
へ送られる。MARは増大させられない。第3の
サイクル中はEXBUF内のデイスプレースメント
値がICBへ送られる。このサイクルではMARは
増大させられない。 あるマイクロ命令を完了するには可変数のサイ
クルを要する。たとえば、メモリおよびオペラン
ド・スタツク・アクセス・マイクロ命令と動作実
行マイクロ命令がそれである。 メモリ・アクセス型マイクロ命令に対しては、
実行装置はオペランド長(すなわち、16ビツト量
をフエツチするためにメモリへ行かねばならない
回数)をカウンタにロードする。実行装置のアク
セス・シーケンサがメモリ参照を行い、参照が行
われるたびにカウンタのカウント値が減少させら
れる。このカウンタのカウント値が零になる1サ
イクル前にdone信号が発生される。これにより
MISをスタートさせることが可能となる。第16
図に示されているように、実行装置での動作が行
われている間はMISはアイドリング状態にある。
これはdone線をテストし、そのdone線が零の時
にNO−OPをICBへ与えることにより行なわれ
る。 動作型マイクロ命令を行うために、実行装置の
数学的シーケンサが除算、乗算および開平のよう
な演算動作のためのROMの流を貯える。動作実
行マイクロ命令は行うべき動作の種類を指定する
フイールドを含む。実行装置は適切なROMの流
れを開始し、動作が終る1サイクル前に、実行装
置は命令装置へのdone線をアサートする。この
場合には、第16図に示されている第2のサイク
ルの間に、MISが次のマイクロ命令をICBに置
き、マイクロアドレス・レジスタの内容を増大さ
せる。
第1図は本発明の命令装置の主な部品を示す機
能的なブロツク図、第2図は第1図に示されてい
る命令装置のより詳しいブロツク図、第3,4図
は単一サイクル・マイクロ命令を示す流れ図、第
5〜12図は二重サイクル・マイクロ命令を示す
流れ図、第13〜15図は三重サイクル・マイク
ロ命令を示す流れ図、第16図は可変サイクル・
マイクロ命令を示す流れ図である。 214……ACDバス、217……BP/Fバ
ス、219……DONEバス、220……マイク
ロ命令バス、222……命令デコーダ、224…
…マイクロ命令シーケンサ、226……マイクロ
プログラムROM、301……エキストラクタ・
レジスタFIFO、304……BIPスタツク、30
8……EXBUF、764……エキストラクタ・レ
ジスタ制御ロジツク、765……コンポーザ・マ
トリツクス、768……EXBUF符号器、770
……符号器制御器、777……MIS制御ロジツ
ク、778……障害制御ロジツク、780……イ
ンターフエイス制御ロジツク。
能的なブロツク図、第2図は第1図に示されてい
る命令装置のより詳しいブロツク図、第3,4図
は単一サイクル・マイクロ命令を示す流れ図、第
5〜12図は二重サイクル・マイクロ命令を示す
流れ図、第13〜15図は三重サイクル・マイク
ロ命令を示す流れ図、第16図は可変サイクル・
マイクロ命令を示す流れ図である。 214……ACDバス、217……BP/Fバ
ス、219……DONEバス、220……マイク
ロ命令バス、222……命令デコーダ、224…
…マイクロ命令シーケンサ、226……マイクロ
プログラムROM、301……エキストラクタ・
レジスタFIFO、304……BIPスタツク、30
8……EXBUF、764……エキストラクタ・レ
ジスタ制御ロジツク、765……コンポーザ・マ
トリツクス、768……EXBUF符号器、770
……符号器制御器、777……MIS制御ロジツ
ク、778……障害制御ロジツク、780……イ
ンターフエイス制御ロジツク。
Claims (1)
- 【特許請求の範囲】 1 主メモリを含むデータ処理装置とともに用い
るマイクロプロセツサ命令装置であつて: 前記主メモリからマクロ命令を受ける受け手段
を含み、この受け手段に接続されていて前記マク
ロ命令を翻訳する手段を含み、複数のマイクロ命
令で構成されるマイクロ命令ルーチンのためのス
ターテイング・アドレスを発生する第1の手段を
含み、一度に1つのマイクロ命令である単一マイ
クロ命令を発生する第2の手段を含む命令デコー
ダと; この命令デコーダに接続されたマイクロ命令シ
ーケンサと; このマイクロ命令シーケンサ接続された出力バ
スとを備え; 前記マイクロ命令シーケンサが、 前記マイクロ命令ルーチンを格納するためのマ
イクロプログラム格納手段 と、 このマイクロプログラム格納手段に接続され、
前記命令デコーダの受けたマクロ命令の実行に必
要な前記マイクロ命令ルーチンの特定のものを構
成するマイクロ命令を通してシーケンサ動作を行
う手段と、 前記第1の手段に接続され、前記マイクロプロ
グラム格納手段に格納のマイクロ命令ルーチンに
ついての、前記第1の手段により発生されたスタ
ーテイング・アドレスを受ける第3の手段と、 前記第2の手段に接続され、それにより発生の
単一マイクロ命令を受ける第4の手段と、 前記マイクロプログラム格納手段および前記第
4の手段に接続され、前記マイクロ命令ルーチン
の特定のものおよび前記単一マイクロ命令を前記
出力バスに置くための第5の手段と を有しているマイクロプロセツサ命令装置。 2 特許請求の範囲第1項に記載の装置におい
て、前記第2の手段と前記第4の手段の間にマイ
クロ命令バツフア手段が接続され、このマイクロ
命令バツフア手段は、前記命令デコーダと前記マ
イクロ命令シーケンサとの間で前記単一マイクロ
命令をバツフアし、かつ、前記第4の手段に接続
されている前記マイクロ命令シーケンサの制御の
下で、前記第2の手段による前記単一マイクロ命
令の発生を選択的に禁止、非禁止とする第6の手
段を含んでいることを特徴とするマイクロプロセ
ツサ命令装置。 3 特許請求の範囲第2項に記載の装置におい
て、前記マイクロ命令バツフア手段によりそのマ
イクロ命令バツフア手段がフル状態である条件下
で禁止状態に設定でき、かつ、前記マイクロ命令
シーケンサにより非禁止状態にリセツトできる制
御フラグを、前記第6の手段が含むことを特徴と
するマイクロプロセツサ命令装置。 4 特許請求の範囲第2項に記載の装置におい
て、前記命令デコーダは命令の特定のフイールド
を翻訳してデータを与える第7の手段を含み、 前記マイクロシーケンサはデータを前記出力バ
スを介して転送する制御手段を含み、前記命令デ
コーダと前記マイクロ命令シーケンサとの間にデ
ータ・バツフア手段が設けられ、このデータ・バ
ツフア手段が前記第7の手段および前記出力バス
に接続されて前記命令デコーダと前記マイクロ命
令シーケンサとの間で前記データのバツフアをす
ることを特徴とするマイクロプロセツサ命令装
置。 5 特許請求の範囲第4項に記載の装置におい
て、前記マイクロ命令バツフア手段にバツフアさ
れている前記単一マイクロ命令にして、前記デー
タ・バアツフア手段から前記出力バスへのデータ
の転送を指示する種類の前記単一マイクロ命令を
実行する手段と、 前記マイクロ命令バツフア手段に格納されてい
る対応するマイクロ命令が前記マイクロ命令シー
ケンサにより実行されている条件の下においての
み前記データ・バアツフア手段から前記出力バス
を介してデータを転送させる手段とを 前記マイクロ命令シーケンサの前記制御手段が
含むことを特徴とするマイクロプロセツサ命令装
置。 6 特許請求の範囲第2項に記載の装置におい
て、前記第3の手段に接続され、前記命令デコー
ダをそれから前記スターテイング・アドレスの1
つを受けた時にルツクアヘツド・モードに置く手
段が前記マイクロ命令シーケンサに設けられ、そ
のルツクアヘツド・モードに置く手段が流れアク
テイブのフラグの設定手段を含むことを特徴とす
るマイクロプロセツサ命令装置。 7 特許請求の範囲第6項に記載の装置におい
て、前記マイクロ命令バツフア手段は、前記マイ
クロ命令シーケンサに接続された、前記マイクロ
命令バツフア手段が空であることを示す指示手段
を含み; この指示手段に応じて、この指示手段が前記マ
イクロ命令バツフア手段が空であることを示して
いる条件の下で、前記命令デコーダの前記第1の
手段からのスターテイング・アドレスを受けるた
めの手段が、前記マイクロ命令シーケンサに設け
られ、もつて、前記命令デコーダによつて先行の
命令が復号される前において、新しいマイクロ命
令の流れが前記マイクロ命令シーケンサにより開
始されることを阻止することを特徴とするマイク
ロプロセツサ命令装置。 8 特許請求の範囲第2項に記載の装置におい
て、 前記主メモリからマクロ命令を受ける前記受け
手段が複数の語で構成されたマクロ命令の一部と
してそれぞれ含まれている少なくとも2語をバツ
フアするための先入れ先出しバツフアを有してお
り、 第1の命令のスターテイング・ビツト・ポイン
タが前記マイクロ命令シーケンサにより実行され
ると同時に、第2の命令のスターテイング・ビツ
ト・ポインタが前記命令デコーダにより復号され
るように、少なくとも2つのスターテイング・ビ
ツト・ポインタをスタツクできる手段を有し、そ
れにより、前記先入れ先出しバツフアからのフイ
ールド情報の取り出しのために、前記命令デコー
ダが、前記第1の命令のスターテイング・ビツ
ト・ポインタを使用可能であるので、前記マイク
ロ命令シーケンサが先行の命令の実行を完了する
と同時に、新しい命令の復号を行い、前記先行の
命令のビツト・ポインタは前記マイクロ命令シー
ケンサにより障害状態からの復旧用に使用するた
め格納されていることを特徴とするマイクロプロ
セツサ命令装置。 9 単一のマイクロ命令の実行を要する第1の実
行可能な動作か、または複数のマイクロ命令の実
行を要する第2の実行可能な動作を特定するフイ
ールドを含んでいるマクロ命令を格納する主メモ
リと、前記マイクロ命令を実行する実行装置とを
有するデータ処理装置とともに用いるマイクロプ
ロセツサ命令装置であつて: 前記主メモリからマクロ命令を受ける命令デコ
ーダにして、 前記マクロ命令の前記フイールドを翻訳し、単
一のマイクロ命令の実行を要する前記第1の実行
可能な動作示す第1の信号と、複数のマイクロ命
令の実行を要する前記第2の実行可能な動作を示
す第2の信号とを与える翻訳手段を有し、 この翻訳手段に接続され、前記第2の信号に応
じ、一連のマイクロ命令で構成のマイクロ命令ル
ーチンのためのスターテイング・アドレスを発生
する第1の手段を有し、 この第1の手段に接続され、前記第1の信号に
応じ、単一のマイクロ命令を発生する第2の手段
を有し、 前記翻訳手段と前記第1の手段および前記第2
の手段に接続され、前記第2の信号または前記第
1の信号に応じ、前記第1の手段または前記第2
の手段をそれぞれ作動させてスターテイング・ア
ドレスまたは単一のマイクロ命令をそれぞれ発生
させる制御手段を有している命令デコーダと; 前記マイクロ命令ルーチンを構成の一連のマイ
クロ命令を通してシーケンス動作を行うマイクロ
命令シーケンサにして、 前記第1の手段に接続され、前記マイクロ命令
ルーチンのスターテイング・アドレスを受ける第
3の手段を有し、 前記第2の手段に接続され、前記単一のマイク
ロ命令を受ける第4の手段を有し、 前記第3の手段と前記第4の手段に接続され、
前記マイクロ命令を復号する第5の手段を有し、 この第5の手段に応じ、マイクロ命令を前記実
行装置へ転送する第6の手段を有しているマイク
ロ命令シーケンサと; マイクロ命令シーケンサ制御手段と; 前記第2の手段と前記第4の手段との間に接続
され、前記第2の手段から受けた単一のマイクロ
命令をバツフアする先入れ先出しバツフアと; 前記命令デコーダおよび前記先入れ先出しバツ
フアに接続され、前記命令デコーダの前記制御手
段の制御の下で、前記第2の手段から前記先入れ
先出しバツフアへ前記単一のマイクロ命令を転送
する第7の手段と; 前記マイクロ命令シーケンサおよび前記先入れ
先出しバツフアに接続され、前記マイクロ命令シ
ーケンサ制御手段の制御の下で、前記先入れ先出
しバツフアから前記第4の手段へ前記単一のマイ
クロ命令を転送する第8の手段とを備え; 前記先入れ先出しバツフアがフル状態であるこ
とを示す第1の状態に前記第7の手段により設定
でき、前記先入れ先出しバツフアがフル状態でな
いことを示す第2の状態にリセツトできるフラ
グ・ビツトを、前記先入れ先出しバツフアが含ん
でおり; 更に、前記第5の手段および前記フラグ・ビツ
トに接続され、前記フラグ・ビツトを設定するた
めの第9の手段と; 前記マイクロ命令シーケンサ制御手段および前
記フラグ・ビツトに接続され、前記フラグ・ビツ
トをリセツトするための第10の手段と を備えているマイクロプロセツサ命令装置。 10 特許請求の範囲第9項に記載の装置におい
て、前記命令デコーダにはその命令デコーダを引
き続く新しい状態に置くための状態レジスタが含
まれ、それにより、前記翻訳手段がマクロ命令の
引き続く新しいフイールドを解読する状態下に置
かれ; 前記命令デコーダには前記状態レジスタおよび
前記先入れ先出しバツフアに接続されて前記フラ
グ・ビツトに応じ、前記先入れ先出しバツフアが
フル状態であることを示す第1の状態にフラグ・
ビツトがある条件の下で、前記状態レジスタが新
しい状態へ変わることを阻止する第11の手段が含
まれていることを特徴とするマイクロプロセツサ
命令装置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/119,433 US4415969A (en) | 1980-02-07 | 1980-02-07 | Macroinstruction translator unit for use in a microprocessor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS56127251A JPS56127251A (en) | 1981-10-05 |
| JPH026090B2 true JPH026090B2 (ja) | 1990-02-07 |
Family
ID=22384395
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1678081A Granted JPS56127251A (en) | 1980-02-07 | 1981-02-06 | Microprocessor instructing device |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US4415969A (ja) |
| JP (1) | JPS56127251A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04224782A (ja) * | 1990-10-31 | 1992-08-14 | Asama:Kk | 遊技機に用いられる価値物体の取扱装置および遊技システム |
Families Citing this family (69)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS56152049A (en) * | 1980-04-25 | 1981-11-25 | Toshiba Corp | Microprogram control system |
| US4931989A (en) * | 1982-02-22 | 1990-06-05 | International Business Machines Corporation | Microword generation mechanism utilizing a separate programmable logic array for first microwords |
| JPS5938870A (ja) * | 1982-08-30 | 1984-03-02 | Sharp Corp | 電子式計算機 |
| US4524415A (en) * | 1982-12-07 | 1985-06-18 | Motorola, Inc. | Virtual machine data processor |
| US4551799A (en) * | 1983-02-28 | 1985-11-05 | Honeywell Information Systems Inc. | Verification of real page numbers of stack stored prefetched instructions from instruction cache |
| US4876639A (en) * | 1983-09-20 | 1989-10-24 | Mensch Jr William D | Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit |
| JPS6093511A (ja) * | 1983-10-27 | 1985-05-25 | Fanuc Ltd | フォーマット変換インタフェース装置 |
| JPS60194489A (ja) * | 1984-03-15 | 1985-10-02 | ダイキン工業株式会社 | Crtデイスプレイ装置の図形デ−タ解析処理回路 |
| US4654786A (en) * | 1984-04-11 | 1987-03-31 | Texas Instruments Incorporated | Data processor using picosquencer to control execution of multi-instruction subroutines in a single fetch cycle |
| US5008807A (en) * | 1984-07-05 | 1991-04-16 | Texas Instruments Incorporated | Data processing apparatus with abbreviated jump field |
| JPS6133546A (ja) * | 1984-07-25 | 1986-02-17 | Nec Corp | 情報処理装置 |
| US4887203A (en) * | 1984-10-15 | 1989-12-12 | Motorola, Inc. | Microcoded processor executing microroutines with a user specified starting microaddress |
| US4754393A (en) * | 1984-12-21 | 1988-06-28 | Advanced Micro Devices, Inc. | Single-chip programmable controller |
| US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
| US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
| US4860192A (en) * | 1985-02-22 | 1989-08-22 | Intergraph Corporation | Quadword boundary cache system |
| US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
| US4638423A (en) * | 1985-03-06 | 1987-01-20 | Motorola, Inc. | Emulating computer |
| JPS61269734A (ja) * | 1985-05-23 | 1986-11-29 | Hitachi Ltd | マイクロプログラム制御方式 |
| US4701842A (en) * | 1985-10-04 | 1987-10-20 | International Business Machines Corporation | Method and apparatus for avoiding excessive delay in a pipelined processor during the execution of a microbranch instruction |
| JPS62164133A (ja) * | 1986-01-16 | 1987-07-20 | Toshiba Corp | マイクロプログラム制御装置 |
| JPS62226231A (ja) * | 1986-03-27 | 1987-10-05 | Toshiba Corp | プロセツサ |
| US4890218A (en) * | 1986-07-02 | 1989-12-26 | Raytheon Company | Variable length instruction decoding apparatus having cross coupled first and second microengines |
| US5179716A (en) * | 1986-07-02 | 1993-01-12 | Advanced Micro Devices, Inc. | Programmable expandable controller with flexible I/O |
| US5053941A (en) * | 1986-08-29 | 1991-10-01 | Sun Microsystems, Inc. | Asynchronous micro-machine/interface |
| EP0279953B1 (en) * | 1987-02-24 | 1994-11-02 | Texas Instruments Incorporated | Computer system having mixed macrocode and microcode instruction execution |
| US5235686A (en) * | 1987-02-24 | 1993-08-10 | Texas Instruments Incorporated | Computer system having mixed macrocode and microcode |
| US4819155A (en) * | 1987-06-01 | 1989-04-04 | Wulf William A | Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations |
| US5053952A (en) * | 1987-06-05 | 1991-10-01 | Wisc Technologies, Inc. | Stack-memory-based writable instruction set computer having a single data bus |
| EP0414811B1 (en) * | 1988-05-03 | 1997-02-19 | Wang Laboratories, Inc. | Microprocessor having external control store |
| US5596331A (en) * | 1988-05-13 | 1997-01-21 | Lockheed Martin Corporation | Real-time control sequencer with state matrix logic |
| DE68927313T2 (de) * | 1988-06-27 | 1997-05-07 | Digital Equipment Corp | Operandenspezifiererverarbeitung |
| US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
| JPH02190930A (ja) * | 1988-12-29 | 1990-07-26 | Internatl Business Mach Corp <Ibm> | ソフトウエア命令実行装置 |
| US5293592A (en) * | 1989-04-07 | 1994-03-08 | Intel Corporatino | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline |
| US5197137A (en) * | 1989-07-28 | 1993-03-23 | International Business Machines Corporation | Computer architecture for the concurrent execution of sequential programs |
| JPH0395629A (ja) * | 1989-09-08 | 1991-04-22 | Fujitsu Ltd | データ処理装置 |
| JPH03139726A (ja) * | 1989-10-26 | 1991-06-13 | Hitachi Ltd | 命令読出し制御方式 |
| US5241637A (en) * | 1990-01-05 | 1993-08-31 | Motorola, Inc. | Data processor microsequencer having multiple microaddress sources and next microaddress source selection |
| US5412785A (en) * | 1990-04-09 | 1995-05-02 | Motorola, Inc. | Microprogrammed data processor which includes a microsequencer in which a next microaddress output of a microROM is connected to the or-plane of an entry PLA |
| US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
| JP2839730B2 (ja) * | 1991-02-25 | 1998-12-16 | 株式会社東芝 | エミュレーション装置及び半導体装置 |
| US5301345A (en) * | 1991-05-03 | 1994-04-05 | Motorola, Inc. | Data processing system for performing a shifting operation and a constant generation operation and method therefor |
| FR2678401A1 (fr) * | 1991-06-28 | 1992-12-31 | Philips Electronique Lab | Dispositif de traitement de l'information plus particulierement adapte a un langage chaine, du type forth notamment. |
| AU4229293A (en) * | 1992-05-13 | 1993-12-13 | Southwestern Bell Technology Resources, Inc. | Open architecture interface storage controller |
| US5644761A (en) * | 1992-06-05 | 1997-07-01 | Bull Hn Information Systems Inc. | Basic operations synchronization and local mode controller in a VLSI central processor |
| WO1994000812A1 (en) * | 1992-06-18 | 1994-01-06 | Andor Systems, Inc. | Combined table lookup and hardwired opcode decoder apparatus |
| US5774738A (en) * | 1993-05-03 | 1998-06-30 | Texas Instruments Incorporated | State machines |
| US5644741A (en) * | 1993-10-18 | 1997-07-01 | Cyrix Corporation | Processor with single clock decode architecture employing single microROM |
| US5809271A (en) * | 1994-03-01 | 1998-09-15 | Intel Corporation | Method and apparatus for changing flow of control in a processor |
| US6496922B1 (en) * | 1994-10-31 | 2002-12-17 | Sun Microsystems, Inc. | Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation |
| US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
| US5740420A (en) * | 1995-10-26 | 1998-04-14 | Advanced Micro Devices, Inc. | System and method for compiling and executing sequences of macro and micro instructions |
| US5619667A (en) * | 1996-03-29 | 1997-04-08 | Integrated Device Technology, Inc. | Method and apparatus for fast fill of translator instruction queue |
| US5774694A (en) * | 1996-09-25 | 1998-06-30 | Intel Corporation | Method and apparatus for emulating status flag |
| US5881279A (en) * | 1996-11-25 | 1999-03-09 | Intel Corporation | Method and apparatus for handling invalid opcode faults via execution of an event-signaling micro-operation |
| US5966515A (en) * | 1996-12-31 | 1999-10-12 | Unisys Corporation | Parallel emulation system and method |
| US5923862A (en) * | 1997-01-28 | 1999-07-13 | Samsung Electronics Co., Ltd. | Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions |
| US5925124A (en) * | 1997-02-27 | 1999-07-20 | International Business Machines Corporation | Dynamic conversion between different instruction codes by recombination of instruction elements |
| US6505217B1 (en) * | 1998-11-25 | 2003-01-07 | Compaq Computer Corporation | Method and apparatus for file placement |
| US6233675B1 (en) * | 1999-03-25 | 2001-05-15 | Rise Technology Company | Facility to allow fast execution of and, or, and test instructions |
| US7139900B2 (en) | 2003-06-23 | 2006-11-21 | Intel Corporation | Data packet arithmetic logic devices and methods |
| US9026424B1 (en) * | 2008-10-27 | 2015-05-05 | Juniper Networks, Inc. | Emulation of multiple instruction sets |
| US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
| US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
| US11928472B2 (en) | 2020-09-26 | 2024-03-12 | Intel Corporation | Branch prefetch mechanisms for mitigating frontend branch resteers |
| US12182317B2 (en) | 2021-02-13 | 2024-12-31 | Intel Corporation | Region-based deterministic memory safety |
| US12504891B2 (en) | 2021-06-24 | 2025-12-23 | Intel Corporation | Zero-redundancy tag storage for bucketed allocators |
| US12235791B2 (en) * | 2021-08-23 | 2025-02-25 | Intel Corporation | Loop driven region based frontend translation control for performant and secure data-space guided micro-sequencing |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5129848A (ja) * | 1974-09-06 | 1976-03-13 | Nippon Electric Co | Deetashorisochi |
| US3990052A (en) * | 1974-09-25 | 1976-11-02 | Data General Corporation | Central processing unit employing microprogrammable control for use in a data processing system |
| US4118776A (en) * | 1975-07-17 | 1978-10-03 | Nippon Electric Company, Ltd. | Numerically controlled machine comprising a microprogrammable computer operable with microprograms for macroinstructions and for inherent functions of the machine |
| US4075687A (en) * | 1976-03-01 | 1978-02-21 | Raytheon Company | Microprogram controlled digital computer |
| JPS52116131A (en) * | 1976-03-26 | 1977-09-29 | Toshiba Corp | Microprogram instruction control unit |
| JPS52119832A (en) * | 1976-04-01 | 1977-10-07 | Toshiba Corp | Electroinc calculator of microprogram control system |
| JPS538034A (en) * | 1976-06-30 | 1978-01-25 | Toshiba Corp | Electronic computer |
| JPS53108334A (en) * | 1977-03-04 | 1978-09-21 | Toshiba Corp | Microprogram control type information processor |
| JPS6049337B2 (ja) * | 1977-05-11 | 1985-11-01 | 株式会社日立製作所 | パイプライン制御方式 |
| ES474427A1 (es) * | 1977-10-25 | 1979-04-16 | Digital Equipment Corp | Un aparato central de tratamiento para uso en un sistema de tratamiento de datos. |
| JPS553046A (en) * | 1978-06-21 | 1980-01-10 | Toshiba Corp | Microprogram control system |
-
1980
- 1980-02-07 US US06/119,433 patent/US4415969A/en not_active Expired - Lifetime
-
1981
- 1981-02-06 JP JP1678081A patent/JPS56127251A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04224782A (ja) * | 1990-10-31 | 1992-08-14 | Asama:Kk | 遊技機に用いられる価値物体の取扱装置および遊技システム |
Also Published As
| Publication number | Publication date |
|---|---|
| US4415969A (en) | 1983-11-15 |
| JPS56127251A (en) | 1981-10-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH026090B2 (ja) | ||
| US4200927A (en) | Multi-instruction stream branch processing mechanism | |
| US4873629A (en) | Instruction processing unit for computer | |
| EP0134620B1 (en) | Data processing apparatus and method | |
| US4742451A (en) | Instruction prefetch system for conditional branch instruction for central processor unit | |
| US4875160A (en) | Method for implementing synchronous pipeline exception recovery | |
| EP0352103B1 (en) | Pipeline bubble compression in a computer system | |
| US5127091A (en) | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor | |
| KR100208889B1 (ko) | 병렬처리장치 및 병렬처리방법 | |
| US5006980A (en) | Pipelined digital CPU with deadlock resolution | |
| EP0405495B1 (en) | Instruction unit logic management apparatus included in a pipelined processing unit and method therefor | |
| US4399505A (en) | External microcode operation in a multi-level microprocessor | |
| US5070475A (en) | Floating point unit interface | |
| US4305124A (en) | Pipelined computer | |
| JPS6341093B2 (ja) | ||
| JPH02208729A (ja) | マイクロコード式実行装置での並列動作による複数機能装置の制御 | |
| JPS5818754A (ja) | 命令処理ユニツト | |
| JPH09171463A (ja) | ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法 | |
| JPS61248135A (ja) | パイプライン式プロセツサ及びその制御方法 | |
| JPS5935056B2 (ja) | デ−タ処理装置 | |
| CA1323939C (en) | Microinstruction addressing in high-speed cpu | |
| JPS5831014B2 (ja) | 命令先取り装置 | |
| JPS63273134A (ja) | マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置 | |
| US4287561A (en) | Address formulation interlock mechanism | |
| KR19980018065A (ko) | 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리 |