JPS6236256B2 - - Google Patents

Info

Publication number
JPS6236256B2
JPS6236256B2 JP54147895A JP14789579A JPS6236256B2 JP S6236256 B2 JPS6236256 B2 JP S6236256B2 JP 54147895 A JP54147895 A JP 54147895A JP 14789579 A JP14789579 A JP 14789579A JP S6236256 B2 JPS6236256 B2 JP S6236256B2
Authority
JP
Japan
Prior art keywords
address
block
register
control
bit
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
Application number
JP54147895A
Other languages
English (en)
Other versions
JPS55102063A (en
Inventor
Guren Gantaa Toomasu
Resurii Toredenitsuku Harii
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of JPS55102063A publication Critical patent/JPS55102063A/ja
Publication of JPS6236256B2 publication Critical patent/JPS6236256B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
この発明は、一般的にはデータプロセツサに関
するものであり、より具体的にはマイクロプログ
ラムされた制御ストアを具えてデータプロセツサ
が受けたマクロ命令を実行するデータプロセツサ
に関するものである。 シングルチツプLSIマイクロプロセツサは急速
に進歩している。その基盤をなす半導体技術、す
なわちMOS技術、が進歩の原動力となつてい
る。2年ごとに、集積度は倍増し、動作速度が倍
増すると共に速度・電力積が4倍増している。ま
た歩留りの向上に伴う低コスト化が製品の低価格
化を招き、これが需要を増大させ、新たな応用分
野及び市場を拡大させている。 このような半導体技術の進歩に伴つてLSIマイ
クロプロセツサが進歩した。近年いくつかの企業
が導入した新鋭機は、3〜4年前の8ビツト・マ
イクロプロセツサよりもはるかに高性能なものと
なつている。この新らしいマイクロプロセツサ
は、16ビツトのデータバス及び演算能力を有して
いる。このマイクロプロセツサはマルチプル・メ
ガバイトメモリを直接的にアドレスする。機能的
な能力及び速度でみれば、それらは最近の16ビツ
ト・ミニコンピユータより殆んど性能が優れてい
る。 現在LSIマイクロプロセツサの設計は、限られ
た設計時間の範囲内でなるべく簡易な構成を実現
しようとする段階にある。この目的を達成するた
めの一手法として、プロセツサ制御用マイクロプ
ログラミングを使用する手法がある。このマイク
ロプログラミングは、規格性(複雑性の低減
化)、柔軟性(設計変更の容易化)、設計コストの
低減化などの利点を有しているので、マイクロプ
ロセツサの設計の現状に適している。プロセツサ
の実現に伴うLSI手法上の制約として、回路寸
法、回路動作速度、接続の複雑性、パツケージピ
ン数などがあげられる。 経済的に製造可能なLSIチツプ寸法には一定の
限界がある。回路密度は時と共に増大しつつある
が、チツプ内に形成できるゲート数は常に制約さ
れている。従つて、一定ゲート数以下のマイクロ
プロセツサを設計しなければならないという制約
が伴う。 LSIデータプロセツサの達成に伴う他の制約は
回路動作速度であるが、これはほとんどLSIをマ
ウントすべき半導体パツケージの消費電力によつ
て制限される。大型コンピユータ・システムにお
けるエミツタ・カツプルド・ロジツク(ECL)
及びコアメモリ間の大幅な動作速度差の問題は、
プロセツサと主メモリを同一手法で実現すること
もあるマイクロプロセツサについては生じない。 接続の複雑性に関して説明すれば、LSIの内部
接続用として論理ゲート用のチツプ面積ほどのチ
ツプ面積を必要とすることもある。さらに、チツ
プの一部分で作成した信号をチツプの他の部分に
分配することが、回路配列上制限されることもあ
る。ある場合には、単一のセントラル化部分から
分配するよりも、チツプの各部に重複した機能を
具えた方が実際的である。ROMアレイ等の規格
構造はRAMよりもパツケージ化し易いという制
約もある。 半導体のパツケージ手法上、LSIチツプを外部
に接続するためのピン数が制約される。ピンを時
分割多重で使用することによつてピン数の制限を
打開することもできようが、これに伴う動作速度
の低下は通常許容できないものとなる。 また、LSIデータプロセツサを、ユーザーの注
文に応じて早期に設計しなければならないことも
ある。LSIデータプロセツサの設計時間を節減で
きる制御ブロツクを提供できれば、その効果は当
業者にとつて顕著であろう。さらに、データプロ
セツサの設計に際しては、後の設計変更に備えて
当初は新たな命令で機能を拡張しておくこともし
ばしば必要になる。さもなければ、特定のユーザ
が必要に応じて命令セツトを指定できるように、
LSIデータプロセツサを十分柔軟に設計しておく
ことが必要である。データプロセツサ用の基本的
な命令セツトを容易に変更したり追加したりでき
る制御ブロツクを提供できれば、従来技術を大幅
に改良することになろう。 マイクロプログラム制御ストアブロツクの寸法
は、制御ワード数及びこれら制御ワード中のビツ
ト数に関係する。制御ワード多数ビツトで構成す
るほど、データプロセツサの動作をより直接的に
制御できる。しかし、制御ストアブロツクの寸法
を削減することは、データプロセツサ達成用の半
導体チツプ寸法の削減につながる。多くの半導体
チツプは処理工程を経た半導体ウエーハから構成
されるので、チツプ面積の節減は半導体チツプの
低コスト化につながる。従つて、多数ビツトから
成るユニークな制御ワードを重複させなくてすむ
制御ストアブロツクを使用することにより、制御
ストアブロツクの寸法を低減し、チツプコストを
低減できよう。 本発明の一つの目的は、LSIデータプロセツサ
の設計に要する時間を節減することにある。 本発明の他の目的は、回路の複雑化を回避して
LSIデータプロセツサを簡易化することにある。 本発明の更に他の目的は、命令セツトの変更、
拡大が容易なLSIデータプロセツサを提供するこ
とにある。 本発明の更に他の目的は、小寸法のマイクロプ
ログラム制御ストアブロツクのもとで広範なマイ
クロプログラムを実行できるマイクロプログラム
化データプロセツサを提供することにある。 本発明の上述した目的及びその他の目的は、第
1、第2の制御ストアブロツクを有する制御スト
ア手段を具えた実行ユニツトをデータプロセツサ
に具えることにより達成される。この制御手段
は、その入力端に上記制御ストアブロツク・アド
レスを受ける。この受取つた制御ストアブロツ
ク・アドレスに応じて、第1の制御ストアブロツ
クは第1の出力端にシーケンス情報を出力し、次
の制御ストアブロツク・アドレスを選択する。同
様に受取つた制御ストアブロツク・アドレスに応
じて、第2の制御ストアブロツクは第2の出力端
に制御情報を出力し、実行ユニツトを制御する。
このデータプロセツサは、マクロ命令を受ける手
段並びに上記マクロ命令及び上記シーケンス命令
に応じて制御ストアブロツク・アドレスを供給す
る選択手段も具えている。本発明の一実施例にお
いては、上記制御ストアブロツク・アドレスは上
記第1、第2の制御ストアブロツクの入力端に入
力する。第1の制御ストアブロツク内の各制御ワ
ードはユニークな制御ストアブロツク・アドレス
を有している。これに対して第2の制御ストアブ
ロツク内の制御ワードは、種々の制御ストアブロ
ツク・アドレスにより選択される。 データプロセツサが受けたマクロ命令を実行す
るためのマイクロプログラム化された制御構成を
採用したデータプロセツサの簡易ブロツク図を第
1図に示す。命令レジスタ2は、プログラムメモ
リから受け取つたマクロ命令をストアする。この
ストアされたマクロ命令は、命令レジスタ2から
命令デコードブロツク4に出力される。この命令
デコードブロツク4は、命令をデコードして、実
行ユニツト6内の演算論理ユニツト(ALU)、こ
のALUにデータを供給するレジスタ及びこの
ALUの結果をストアするレジスタを操作する。
この命令デコードブロツク4は、実行ユニツト6
にタイミング及び制御信号を供給する制御ストア
ブロツク8にも接続されている。 あるマクロ命令を実行するには、いくつかの実
行ユニツト期間すなわちマイクロサイクルを必要
とし、これら各実行ユニツト期間内に実行ユニツ
ト6により各種の転送及び操作が実行される。制
御ストアブロツク8から供給されたタイミング及
び制御信号により、各実行ユニツト期間内に適切
な転送及び操作が行われる。 本発明の発明の概要は次の通りである。 シーケンス情報を与える比較的短いマイクロワ
ードを有するマイクロ制御ストアと、データプロ
セツサ内で制御を転送し、動作せしめる比較的長
いナノワードを有するナノ制御ストアを具える、
マイクロプログラムした制御ストアを有するデー
タプロセツサが開示されている。マイクロ制御ス
トアとナノ制御ストアは、同一アドレスで同時に
アドレスされる。マイクロ制御ストアの各マイク
ロワードは、独特のアドレスに対応し、単一のナ
ノワードは多くの異なつたアドレスにより選択さ
れる。各ナノワードは独特のものであるから、制
御ストアの全体のサイズ(大きさ)は最小化され
る。 実施例の構造的概要 本発明の一実施例の更に詳細なブロツク図を第
2図に示す。命令レジスタ10は、プログラムメ
モリからマクロ命令を受取り、これをストアす
る。この命令レジスタ10が結合される制御論理
ブロツク12は、ストアされたマクロ命令からこ
の命令の実行期間にわたつて保持されている情報
(スタテツク情報)を抜出す。このマクロ命令の
スタテツク情報の例は、出所及び行先レジスタ
名、ALU操作(加算、減算、乗算、排他論理
和)、及びアドレス変位、データ定数その他命令
ワード中に含まれるイミーデイエート値である。 命令レジスタ10は、命令レジスタ(IR)・シ
ーケンスデコーダ14にも接続されている。この
命令レジスタ・シーケンスデコーダ14は、命令
レジスタ10にストアされたマクロ命令に従つ
て、1ないし複数のスタートアドレスを作成す
る。命令レジスタ・シーケンスデコーダ14は、
アドレス選択ブロツク16に結合されて1ないし
複数のスタートアドレスを発生する。このアドレ
ス選択ブロツク16は、信号線17を介して、マ
イクロ制御ストア18及びナノ(nano)制御ス
トアブロツク20を具える制御ストアブロツクに
接続されている。ナノ制御ストアブロツク20
は、信号線17上の選択アドレスに従つて、実行
ユニツク内操作を指定するコード化制御ワードの
フイールドを含むナノワード(nano word)を選
択する。ナノ制御ストアブロツク20に接続され
ている制御論理ブロツク12は、命令レジスタ1
0から直接受取つたマクロ命令のスタテイツク情
報と組合せてナノ制御ワード内の各種フイールド
をデコードする。この制御論理ブロツク12の出
力は実行ユニツト22に供給され、このユニツト
内で行われる各種の操作及びデータ転送を制御す
る。 マイクロ制御ストア・ブロツク18は、信号線
17上の選択アドレスに従つて、マイクロワード
を選択する。このマイクロ制御ストア・ブロツク
18の出力は、信号線24を介してアドレス選択
ブロツク16及び条件付きブランチ制御論理ブロ
ツク26に供給される。選択されたマイクロワー
ドは、次に選択すべきマイクロ命令のアドレスの
出所を決める情報を含んでいる。この選択された
マイクロワードは、次のマイクロ命令のアドレス
も提供する。 実行ユニツト22は、結果の正/負、ゼロ、オ
ーバーフロー、キヤリアウト等ALU操作に伴つ
てセツト又はリセツトされる各種の状態コードフ
ラグをストアする。次のマイクロ命令のアドレス
選択が上記1ないし複数の状態コードフラグに依
存するような場合には、マイクロ制御ストアブロ
ツク18から供給されるマイクロワードは、条件
付きブランチ制御論理ブロツク26に供給すべき
情報を含んでおり、この情報は次のマイクロ命令
を選択するのに使用すべき状態コードフラグを指
定する。マクロ命令自身が次のマイクロ命令選択
用の状態コードフラグを指定する場合もある(例
えば“ブランチ・オン・ゼロ”等の条件付きマク
ロ命令)。このため、命令レジスタ10は条件付
きブランチ制御論理ブロツク26にも接続されて
いる。各種の状態コードフラグを供給するため、
実行ユニツト22が条件付きブランチ制御論理ブ
ロツク26に接続されている。条件付きブランチ
制御論理ブロツク26は、アドレス選択ブロツク
16に接続され、次のマイクロ命令アドレス・ポ
ーシヨンを指定する。 マイクロ制御ストアブロツク18の第2の出力
は信号線28に供給される。選択されたマイクロ
ワードは、カレントマイクロ命令の機能を指定す
るフアンクシヨンコード・フイールドを含んでい
る。このフアンクシヨンコード・フイールドは、
信号線28を介して当該データプロセツサ外部の
周辺装置へ供給され、カレントマイクロ命令に関
する情報伝達がなされる。 通常は、命令レジスタ・シーケンスデコーダ1
4がマイクロ制御ストア・ブロツク18にスター
トアドレスを供給し、ブロツク18はナノ制御ス
トア・ブロツク20用のアドレスシーケンスを作
成する。対応のナノワードが制御論理ブロツク1
2でデコードされ、タイミング情報と混合され
る。この制御論理ブロツク12の出力信号は、実
行ユニツト22内の制御箇所をドライブする。 実行ユニツト22(第2図)の簡易ブロツクを
第3図に示す。この実行ユニツトは、双方向バス
カツプラーを介して相互接続される3個のセクシ
ヨンに分割されたセグメント化2バス(two―
bus)構成となつている。左端のセグメントは、
上位アドレスレジスタ及びデータレジスタ並びに
16ビツトの簡易演算ユニツトを具えている。中央
部のセグメントは、下位アドレスレジスタ及びデ
ータレジスタ並びに16ビツトの簡易演算ユニツト
を具えている。右端のセグメントは、下位データ
レジスタ及び演算論理ユニツト(ALU)を具え
ている。実行ユニツトは、さらに、各32ビツト幅
のアドレス・テンポラリレジスタ及びデータ・テ
ンポラリレジスタを具えている。その他に、プロ
グラマが操作できないいくつかのテンポラリレジ
スタ及び特殊機能レジスタも具えられている。 第3図において、第1のデジタルバス10′及
び第2のデジタルバス12′は、それぞれアドレ
スバスデータ及びデータバスデータと称される。
ブロツク14′で例示した16ビツト・データレジ
スタ群がデジタルバス10′及び12′に接続され
ており、このブロツク14′はデジタルバス1
0′及び12′のいずれにも16ビツト・データワー
ドを供給することができる。同様に、ブロツク1
4′はデジタルバス10′及び12′のいずれから
も16ビツト・データワードを受取ることができる
が、このデータワードはレジスタの一つにストア
される。デジタルバス10′及び12′のいずれも
16ビツトのデジタル情報を転送できる点を了解さ
れたい。ブロツク14′に具えられる16ビツト・
データレジスタは、32ビツト・レジスタ群中の対
応のレジスタの下位16ビツトから成つている。 デジタルバス10′及び12′には、ブロツク1
6′及び18′も接続されている。ブロツク16′
にはプログラマが直接操作できない特殊機能ユニ
ツト16′が具えられている。これらの特殊機能
ユニツトには、レジスタのマルチロード及びスト
アに用いるプライオリテイ・エンコーダ及びビツ
ト操作に使用するデコーダが含まれている。ブロ
ツク18′に具えられるALUは、バス10′から
第1の16ビツト入力を受けかつバス12′から第
2の16ビツト入力を受けて、16ビツトの結果を作
成する。このビツトの結果は、バス10′又は1
2′のいずれにも転送され得る。 第3図には第3のデジタルバス20′及び第4
のデジタルバス22′も図示されている。バス2
0′及び22′は、それぞれ下位アドレスバス及び
下位データバスと称される。バス20′及び2
2′の双方に接続されたブロツク24′は、複数の
16ビツト・アドレスレジスタを具えている。これ
らのレジスタは、32ビツト・レジスタ群中の対応
のレジスタの下位16ビツトから成つている。ブロ
ツク24′は、バス20′及び22′のいずれにも
16ビツト・アドレスワードを供給できる。同様
に、ブロツク24′は、バス20′及び22′のい
ずれからも16ビツト・アドレスワードを受取つて
これを16ビツト・アドレスレジスタの一つにスト
アすることができる。 バス20′及び22′に接続されたブロツク2
6′は下位演算ユニツトを具え、演算を行う。こ
のブロツク26′はバス20′から第1の16ビツト
入力を受けると共にバス22′から第2の16ビツ
ト入力を受けて、16ビツトの結果を作成する。こ
の下位演算ユニツト26′で作成された16ビツト
の結果は、バス20′及び22′のいずれかに転送
される。この下位演算ユニツト26′は、32ビツ
ト・データワードの上位16ビツトの演算に用いら
れるキヤリアウト信号(図示せず)も作成する。
第3図には図示していないが、バス20′及び2
2′にはフイールド転送ユニツト(ftu)も接続さ
れており、これらは実行ユニツト及び当該データ
プロセツサの他のセクシヨン間のデジタル情報の
転送を行う。第1、第2の双方向バススイツチ
は、それぞれバス10′及び20′間並びにバス1
2′及び22′間を接続している。 第3図には、第5のデジタルバス32′及び第
6のデジタルバス34′も図示されている。バス
32′及び34′を、それぞれ上位アドレスバス及
び上位データバスと称する。バス32′及び3
4′に接続されたブロツク36′は、複数の16ビツ
ト・アドレスレジスタ及び複数の16ビツト・デー
タレジスタを具えている。ブロツク36′内のア
ドレスレジスタは上位16ビツトのアドレスをスト
アし、ブロツク24′内のアドレスレジスタと共
に32ビツト・アドレスレジスタを構成する。ブロ
ツク36′内の16ビツト・データレジスタは上位
16ビツトのデータレジスタをストアし、ブロツク
14′内のデータレジスタと共に32ビツト・デー
タレジスタを構成する。 バス32′及び34′に接続されたブロツク3
8′は、アドレスワード又はデータワードの上位
16ビツトについて演算を行う上位演算ユニツトを
具えている。ブロツク38′は、バス32′から第
1の16ビツト入力を受けると共にバス34′から
第2の16ビツト入力を受け、16ビツトの結果を作
成する。この上位演算ユニツトで作成された16ビ
ツトの結果は、バス32′又は34′に転送され
る。前述したように、上位演算ユニツト38′は
ブロツク26′で作成されたキヤリアウトに応答
し、下位16ビツトからのキヤリアウトを上位16ビ
ツトの演算に取入れる。第3,第4の双方向バス
スイツチ40′及び42′が、それぞれバス32′
及びバス20′間並びにバス34′及び22′間に
接続されている。 このように、データプロセツサ用レジスタフア
イルが3セクシヨンに分かれていることが判ろ
う。2個のゼネラルバス(アドレスバス、データ
バス)は、レジスタフアイル内の全ワードに接続
されている。レジスタフアイル・セクシヨン(上
位、下位、データ)は、双方向バススイツチによ
り分離又は接続される。これによつて、レジスタ
セクシヨン間のゼネラルレジスタ転送が可能とな
る。上位及び下位セクシヨンには限定的な演算ユ
ニツトが配置され、汎用のALU機能はデータセ
クシヨン内に配置されている。このため、アドレ
ス計算及びデータ計算を同時に行うことができ
る。例えばプログラムカウンタのインクレメント
操作と並行してレジスタ・レジスタ間のワード加
算を行うことができる。なお、プログラムカウン
タはアドレスレジスタ・ワードに近接して位置
し、下位演算ユニツト26′からのキヤリアウト
は上位演算ユニツト38′に供給される。実行ユ
ニツトの更に詳細については、Gunterらにより
発明された本件の出願人に譲渡された
“Execution Unit For Data Pro−cessor Using
Segmented Bus Structure”と題し1978年11月
17日付でフアイルされた米国特許出願第961798号
を参照されたい。上記米国特許出願は以下本明細
書中で参照される。 第2図に概略を示したデータプロセツサの詳細
なブロツク図を第4図に示す。このデータプロセ
ツサが接続される16ビツトの双方向外部データバ
ス44は、データプロセツサと周辺装置間のデー
タ転送を行う。このデータプロセツサに具えられ
たデータバツフア46は、外部データバス44及
び実行ユニツト22間に接続され、実行ユニツト
及び外部データバス間のデータ転送を行う。実行
ユニツト22はドライバ及びデコーダを具えてい
るが、これらは実行ユニツト22の周辺に包括的
に示されている。実行ユニツト22は、アドレス
バツフア48を介して外部アドレスバス50に接
続されている。実行ユニツト20から外部アドレ
スバス50上に出力されたアドレスは、データバ
ス44の読取りを行うべきロケーシヨン又はデー
タバス44に書込みを行うべきロケーシヨンを表
示する。この実施例においては、外部アドレスバ
ス50は24ビツト幅であり、メモリアドレツシン
グの範囲は16メガバイト以上にも達する。 外部データバス44は、16ビツトのIRCレジス
タ52の入力端にも接続されている。このIRCレ
ジスタ52の出力は、16ビツトのIRレジスタ5
4に入力する。このIRレジスタ54の出力は、
16ビツトのIRDレジスタ56に入力する。IRレジ
スタ54の出力端は、ブロツク58(アドレス1
デコーダ)、ブロツク60(アドレス2/3デコー
ダ)及びブロツク62(イリーガル命令デコー
ダ)の入力端にも接続されている。IRCレジスタ
52、IRレジスタ54及びIRDレジスタ56を使
用することによりこのデータプロセツサをパイプ
ライン方式で動作させることができる。すなわ
ち、IRCレジスタ56は次のマクロ命令をストア
し、IRレジスタ54は現在デコード中のマクロ
命令をストアし、IRDレジスタ56は現在実行中
のマクロ命令をストアする。ブロツク58の出力
はアドレスセレクタ64のA1端子に入力する。
ブロツク60の第1の出力はアドレスセレクタ6
4のA2端子に入力し、ブロツク60の第2の出
力はアドレスセレクタ64のA3端子に入力す
る。ブロツク58及び60からの出力信号は、
IRレジスタ54にストアされているマクロ命令
に関連したマイクロルーチンのスタートアドレス
であるが、これらの詳細については後述する。 イリーガル命令デコーダ62の出力は、イクス
セプシヨン(exception)論理ブロツク66に結
合する。ブロツク66には、ブロツク68(バス
I/O論理ブロツク)及びブロツク70(割込み
及びイクスセプシヨン制御ブロツク)も接続され
ている。イクスセプシヨン論理ブロツク66の第
1の出力は、信号線71を介してアドレスセレク
タ64のA0端子に入力し、特定マイクロルーチ
ンのスタートアドレスを提供する。イクスセプシ
ヨン・ブライオリテイブロツク66の第2の出力
は、信号線71′(A0S)を介してアドレスセレ
クタ64の他の入力端子に入力し、第2の特定マ
イクロル―チンのスタートアドレスを提供する。
イクスセプシヨン論理ブロツク66の他の2個の
出力、すなわちA0SUB及びA0SUBIもそれぞれア
ドレスセレクタ64に結合されている。 アドレスセレクタ64の出力は、マイクロ
ROM72の入力端及びナノROM73の入力端に
結合し、選択アドレスを提供する。マイクロ
ROM72の出力はマイクロROM72で選択され
たマイクロワードをアドレスセレクタ64が選択
したアドレスに従つてストアするマイクロROM
出力ラツチ74に入力する。このマイクロROM
出力ラツチ74の出力は、信号線76及び78を
介してアドレスセレクタに供給されると共に、信
号線82を介してブランチ制御ユニツト80にも
供給される。アドレスセレクタ64には、信号線
76を介してダイレクトブランチ・アドレスが供
給され、信号線78を介して次に選択すべきアド
レスの出所が供給される。条件付きブランチの場
合には、ブランチ制御ユニツト80の動作を指定
する信号が信号線82から供給される。アドレス
セレクタ64にはブランチ制御ユニツト80も接
続されており、これにより次に選択すべきマイク
ロ/ナノ・ストアブロツク・アドレスを修飾して
マイクロル―チン内の条件付きブランチを行わせ
るが、これの詳細については後述しよう。IRD5
6の出力はブランチ制御ユニツト80に入力し、
マクロ命令から直接のブランチ制御情報を提供す
る。ブランチ制御ユニツト80は、ALU及び状
態コード制御ブロツク84から各種の状態コード
フラグを受取る。ブロツク84に接続された
PSWレジスタ86は、いくつかの状態コードフ
ラグをストアする。実行ユニツト22は、ブロツ
ク84に他の状態コードフラグを提供する。 さらに第4図において、ナノROM出力ラツチ
88が接続されたナノROM73は、アドレスセ
レクタ64が選択したアドレスに対応したナノワ
ードを出力する。ラツチ88にストアされたナノ
ワードの種々のビツトフイールドは、実行ユニツ
ト22の各部分の制御に使用される。実行ユニツ
ト22及び外部バス44,50間のデータ及びア
ドレス転送等を制御するため、ラツチ88は信号
線90を介して実行ユニツト22に直結されてい
る。ラツチ88は信号線92を介してレジスタ制
御ブロツク94に接続されている。このレジスタ
制御ブロツク94には、IRDレジスタ56も接続
されている。このIRDレジスタ56内のビツトフ
イールドは、カレントマクロ命令の実行に使用さ
れる1ないし複数のレジスタ(出所、行先)を指
定する。一方、ラツチ88から信号線92を介し
て供給されるビツトフイールドは、出所及び行先
レジスタをイネーブルにすべきマイクロサイクル
を表示する。ブロツク94から実行ユニツト22
に供給された信号は、実行ユニツトの上位セクシ
ヨン内に配置されたレジスタ(第3図のブロツク
36′)を制御する。同様にして、レジスタ制御
ブロツク96の入力端子はラツチ88及びIRDレ
ジスタ56に接続されており、その出力は実行ユ
ニツト22に入力し、実行ユニツトの下位及びデ
ータセクシヨン内に配置されたレジスタを制御す
る。 ラツチ88は、信号線98を介してAU制御ブ
ロツク100にナノワードから抜出したビツトフ
イールドを供給する。このブロツク100はIRD
レジスタ56にも接続されている。IRDレジスタ
56にストアされたマクロ命令内のビツトフイー
ルドは、実行ユニツト22内の上位演算ユニツト
及び下位演算ユニツト(第3図のブロツク3
8′)の動作を指定する。信号線98を介して供
給される情報は、上位及び下位演算ユニツトの
入、出力端をイネーブルにする適正なマイクロサ
イクルを表示する。AU制御ブロツク100の出
力は実行ユニツト22に供給されて、上位及び下
位セクシヨン内の演算ユニツトを制御する。 ALU及び状態コード制御ブロツク84は、信
号線102を介してラツチ88に結合されてい
る。この制御ブロツク84にはIRDレジスタ56
も接続されている。マクロ命令から抜出されて
IRDレジスタ56にストアされたビツトフイール
ドは、実行ユニツト22内のALUが行うべき操
作の型を指定する。ラツチ88にストアされたナ
ノワードに基くビツトフイールドは、ALUの入
力及び出力をイネーブルにすべき適正なマイクロ
サイクルを表示する。ブロツク84の出力は実行
ユニツト22に供給され、ALUを制御する。ブ
ロツク84はPSWレジスタ86にも供給され、
そこにストアされている状態コードフラグを制御
する。 ラツチ88は信号線104を介してフイールド
転送ユニツト106に接続されている。このフイ
ールド転送ユニツト106には、IRDレジスタ5
6も接続されている。さらにこのフイールド転送
ユニツト106には、PSWレジスタ86及び特
殊ステータスワード(SSW)レジスタ108も
接続されている。PSWレジスタ86は、いずれ
の割込みを受付けるかを決めるための、データプ
ロセツサの現在の優先レベル等の情報をストアす
る。PSW86は、プロセツサがトレース
(TRACE)動作モードであるかどうか、現在ス
ーパーバイザーモードであるかユーザーモードで
あるかなどを表示する。SSWレジスタ108
は、データプロセツサのステータスをモニタする
のに使用され、エラー状態からの復帰に有用であ
る。フイールド転送ユニツト(FTU)106は
IRDレジスタ56にストアされたマクロ命令から
ビツトフイールドを抜出すが、このビツトフイー
ルドは実行ユニツトのインデツクスレジスタにお
いて組合せられるべきオフセツトの供給などに使
用される。このFTU106は、PSWレジスタ8
6及びSSWレジスタ108からもビツトフイー
ルドを抜出し、これを実行ユニツト22に供給す
る。FTU106は、実行ユニツト22からの結
果をPSWレジスタ86に転送するのにも使用さ
れる。 命令レジスタ・シーケンスデコーダ 命令レジスタ・シーケンスデコーダを含む第4
図の一部を第5図に詳細に示す。第5図のブロツ
クのうち第4図で示したものについては同一の参
照符号を付している。破線のブロツク110に含
まれるブロツク58,60及び66は命令レジス
タ・シーケンスデコーダを構成している。命令レ
ジスタ(IR)54は、プログラムメモリからバ
ス44及びIRCレジスタ52を介してマクロ命令
を受取り、これをストアする。このIRレジスタ
54の出力が供給されるイリーガル命令デコーダ
62は、不適正なマクロ命令フオーマツトを検出
する。IRレジスタ54の出力は、アドレス1デ
コーダ58及びアドレス2/3デコーダ60にも供
給される。これらデコーダ58及び60は、この
実施例においては、プログラム化論理アレイ
(PLA)構造となつている。このPLA構造は当業
者に周知である。例えば、Electronics、1974年
8月8日、109頁に掲載されたGeorge Reylingの
論文“PLAS Enhance Digital Processor Speed
and Cut Component Count”を参照されたい。
デコーダ58は、レジスタ54にストアされたマ
クロ命令に従つて、マルチプレクサ112に接続
された出力端A1に第1のスタートアドレスを出
力する。 イクスセプシヨン論理ブロツク66は、イリー
ガル命令デコーダ62の出力端、バスI/O論理
ブロツク68の出力端並びに割込み及びイクスセ
プシヨンブロツク70の出力端に接続されてい
る。バスI/O論理ブロツク68は、バス及びア
ドレスポートの検出に用いられる。データプロセ
ツサがアドレスした周辺装置(例えばメモリ)が
所定期間内に応答しないときは、データプロセツ
サにバスエラーが告げられる。外部アドレスバス
上に不適正なアドレスが出力されると、アドレス
エラーが告げられる。 割込み及びイクスセプシヨン・ブロツク70
は、割込みの発生、リセツト条件の発生、トレー
ス動作モード等を告げる。周辺装置がデータプロ
セツサへのデータ転送の準備が完了した旨を表示
すると、割込み条件が発生しよう。当該データプ
ロセツサへの供給電源がオンとなり内部レジスタ
のリセツトが必要になつたとき、又はシステム障
害からの復帰に際してリセツト釦が押されると、
リセツト条件が告げられる。トレース動作モード
が告げられると、各マクロ命令の実行後にトレー
シング・ルーチンを実行し、デバツグ対象のプロ
グラムを命令ごとにトレーシングする。 イリーガル命令デコーダ62は、不適正なフオ
ーマツト及びバイオレーシヨン(Privilege Viola
−tions)を告げる。イリーガル命令フオーマツ
トが告げられる一例は、データプロセツサがその
設計上応答下可能な場合である。バイオレーシヨ
ンは、データプロセツサが監視モードでもユーザ
ーモードでも動作できることに伴うものである。
すなわち、ある種の命令は監視モードのもとでの
み実行可能であり、従つてユーザー動作モードの
もとで上記特定の命令を実行させようとすれば、
バイオレーシヨンを生ずる。 上述した特定条件のいずれかが発生すると、当
該データプロセツサはマクロ命令の実行を一時停
止して特定のマイクロ命令ルーチンを実行し、上
記特定の条件の処理を行う必要がある。ある種の
特定条件(割込み、トレース等)が発生しても、
データプロセツサは次の命令との区切りまで通常
の動作を続行する。すなわち、データプロセツサ
は、特定のマイクロ命令ルーチンにブランチする
に先立つてカレントマクロ命令の実行を完了す
る。これに対して他の種類の特定条件(アドレス
エラー、バスエラー、リセツト等)が発生する
と、データプロセツサは、これらの特定条件の発
生がカレントマクロ命令の実行完結を妨げる関係
上、カレントマクロ命令を完結することなく、所
定のマイクロ命令サブルーチンにブランチする。 さらに第5図において、イクスセプシヨン論理
ブロツク66の出力A0はマルチプレクサ
(MPX)112に供給され、特定のマイクロルー
チンのスタートアドレスが供給される。イクスセ
プシヨン論理ブロツク66の出力A0SUBに基い
て、マルチプレクサ112は、その出力としてス
タートアドレスA0を選択するか又はスタートア
ドレスA1を選択するかを決定する。カレントマ
クロ命令の実行完了を待つて特定のマイクロルー
チンに制御を移すような特定条件が発生した場
合、スタートアドレスA0が選択される。 マルチプレクサ112の出力は、マルチプレク
サ114に供給される。デコーダ60は、レジス
タ54にストアされたマイクロ命令に基いて、出
力端子A2及びA3に第2,第3のスタートアドレ
スを出力するが、これらの出力はそれぞれマルチ
プレクサ114の入力端A2及びA3に供給され
る。マルチプレクサ114は、マイクロROMか
ら信号線116を介してBA入力端にブランチア
ドレスを受ける。マルチプレクサ114が受取る
各アドレスは、10ビツト幅である。 マルチプレクサ114は10ビツトの選択アドレ
スを出力し、このうちの2ビツトがマルチプレク
サ116の第1の入力端子に供給される。マルチ
プレクサ114の10ビツト選択アドレスの残り8
ビツトは、マルチプレクサ118に直接供給され
る。マルチプレクサ116の第2の入力端子に接
続されているブランチ制御論理ブロツク80は、
2個のブランチビツトを供給する。マルチプレク
サ116からマルチプレクサ118に供給される
2個の選択ビツトは、マルチプレクサ114から
直接供給された8ビツトと組合せられて、4方路
のブランチを可能とする。 イクスセプシヨン論理ブロツク66の出力A0S
はマルチプレクサ118の第2の入力端に供給さ
れ、第2の特定マイクロルーチンのスタートアド
レスが供給される。イクスセプシヨン論理ブロツ
ク66の出力A0SUB1はマルチプレクサ118
の制御入力端に供給され、アドレスエラー・バス
エラー、リセツト条件などが検出された際の特定
アドレスA0Sがマルチプレクサ118から出力さ
れる。このような条件が存在しないときには、マ
ルチプレクサ118は、マルチプレクサ114及
び116の選択したアドレスを出力する。このマ
ルチプレクサ118の出力は、マイクロROM及
びナノROM(第4図の72,73)のアドレス
入力ポートに供給される。 さらに第5図には、マイクロROMラツチ(第
4図のラツチ74)に接続されて選択マイクロワ
ード中の1ビツトを受ける信号線120,122
及び124が図示されている。マルチプレクサ1
16の制御入力端に接続される信号線120上に
は、マイクロルーチン内の条件付きブランチ点を
示す信号がのる。信号線120,122及び12
4はデコーダ126に接続されており、このデコ
ーダの出力はマルチプレクサ114の制御入力端
に接続されてマルチプレクサ114の出力端に選
択すべき適正なアドレスを発生させる。信号線1
20,122及び124上のマイクロワードビツ
トならびにマルチプレクサ114及び116で選
択されるアドレスの関係を以下詳細に説明しよ
う。信号線120,122及び124上の信号な
らびに信号線116上のアドレスは、すべて先行
のマイクロサイクルにおいてアドレスされたマイ
クロワードから得られたものである。 命令レジスタ・シーケンスデコーダに伴う利点
を理解するために、第2図に図示したデータプロ
セツサが実行する各種のマクロ命令を説明しよ
う。3種類のマクロ命令(,,)を第6図
に図示した。命令Iはレジスタ・レジスタ間型の
命令であり、ビツト0,1及び2は出所レジスタ
(Ry)を指定し、ビツト9,10及び11は行先
レジスタ(Rx)を指定する。16ビツトの命令ワ
ードの残りのビツトは、実行すべきオペレーシヨ
ンの型(加算、、減算等)及びこの命令がレジス
タ・レジスタ間命令であることを指定する。 命令フオーマツトにおいて、ビツト0乃至5
は実効アドレスフイールド又は単なる実行アドレ
ス(EA)である。この実効アドレスEAは、2個
の3ビツト・サブフイールド、すなわちモード指
定フイールド(MODE)及びレジスタ指定フイ
ールド(REG)から構成されている。一般に、
このレジスタ指定フイールドは特定のレジスタを
指定し、モード指定フイールドは、選択レジスタ
がアドレスレジスタであるかデータレジスタであ
るかを決めると共に指定レジスタによる所望オペ
ランドのアドレス計算方法を指定する。命令の
典型的なものでは、EAフイールドが出所オペラ
ンドを指定し、ビツト9,10及び11が行先オ
ペランドとして内部レジスタの1つを指定する。
16ビツト命令の残りビツトは、実行すべきオペレ
ーシヨンの型及びこの命令が型の命令であるこ
とを指定する。 型の命令は2個ないしそれ以上の16ビツト・
ワードから構成されており、最初の16ビツト・ワ
ード中のビツト0乃至5は、前述した型の命令
と同様に、行先オペランドの実行アドレスを指定
する。一方、型の命令の最初のワード中の残り
ビツトは、オペレーシヨンの実行に際して行先オ
ペランドと組合せて使用するデータを含んだ第2
の16ビツト・ワードがこの命令中に含まれている
ことを表示する。型の命令は、行先オペランド
を取得するのに実効アドレツシングを使用し、命
令の最初のワードを読出すメモリロケーシヨンの
すぐ次のメモリロケーシヨン内にストアされてい
る第2のオペランドを取得するのにいわゆる“イ
ミーデイエート・アドレツシング”を使用してい
る。 データプロセツサは、型の命令の実行に際し
ては、その内部レジスタ内にオペランドを既にス
トアしている関係上、この命令ワードにより指定
された型のオペレーシヨンを実行するように指定
されているマイクロ命令ルーチンを直ちに開始す
ることができる。これに対して型の命令におい
ては、EAフイールドで参照されているオペラン
ドをアクセスするために、このマクロ命令で指定
されているオペレーシヨンの実行に用いる特定の
マイクロ命令ルーチンを実行するに先立つて、一
般的な実効アドレス・マイクロ命令ルーチンを実
行する必要がある。イミーデイエート型命令にお
いては、IRCレジスタ54及びデータバツフアブ
ロツク46(第4図)内のデータバス入力ラツチ
の双方にストアされているイミデイエート・オペ
ランドが、プレフエツチ・オペレーシヨンの結果
取得される。従つて型の命令においては、イミ
デイエート・オペランドをデータバス入力ラツチ
から実行ユニツト内のテンポラリレジスタに転送
しかつ次のマクロ命令IRCレジスタ52にロード
するプレフエツチ操作を繰返すために、一般的な
マイクロ命令ルーチンをまず実行する必要があ
る。次に、EAフイールドに表示されているオペ
ランドを取得するため、型の命令に関連して説
明した一般的なルーチンを実行することが必要で
ある。最後に、EAマイクロ命令ルーチンの完了
後、命令の最初のワードで指定されているオペレ
ーシヨンを実行するため、特定のマイクロ命令ル
ーチンが実行される。型の命令も型の命令も
同一のEAフオーマツトを使用する関係上、上述
の実行アドレス・マイクロ命令ルーチンを一般化
することも可能である。全く同様に、型の命令
はすべて同様な方法によりイミデイエート・オペ
ランドをアクセスする関係上、イミデイエート・
アドレツシング・マイクロ命令ルーチンを一般化
することができる。 第5図の命令レジスタ・シーケンスデコーダ内
のデコーダ58,60及びイクスセプシヨン論理
ブロツク66の動作を、第7A図、第7B図、第
7C図及び第7D図を参照して説明しよう。通常
の動作においては、マルチプレクサ114は、ス
タートアドレスA1/A0を選択し、IRレジスタ5
4に現在ストア中のマクロ命令の実行に必要な最
初のマイクロ命令ルーチンを指定する。先行のマ
クロ命令の実行に伴つて実行された最後のマイク
ロ命令がデコーダ126により次のスタートアド
レスA1を指定する関係上、命令の境界でスター
トアドレスA1/A0が選択される。 マクロ命令実行中に特定の条件が発生すると、
イクスセプシヨン論理ブロツク66はA0SUB出
力をイネーブルにし、マルチプレクサ112は、
カレント・マクロ命令の実行完了後に、スタート
アドレスA1の代りにスタートアドレスA0を挿入
する。ある種の特定条件に対しては、先行のマク
ロ命令の実行完了を待たずに特定マイクロ命令ル
ーチンのイニシヤライズを行う。この場合には、
イクスセプシヨン論理ブロツク66はA0SUB I
出力をイネーブルにしてA0sを出力し、これを受
けたマルチプレクサ118はマイクロ制御ストア
回路の次のアドレスを出力し、特定マイクロルー
チンへのブランチが行われる。 第7A図に示すように、スタートアドレスA0
及びA0sは、発生した特定条件を処理するための
いくつかの特定マイクロルーチンを表示してい
る。各特定ルーチンの最後のマイクロワードが第
5図の信号線120,122及び124上に信号
を供給することにより、次のスタートアドレス
A1をマイクロ制御ストアブロツクに供給するよ
うにマルチプレクサ114を制御する点は、すべ
ての特定ルーチンで共通している。 第7B図に示すように、スタートアドレスA1
は、命令レジスタに現在ストア中の命令の型に応
じて一般的なイミデイエードルーチン、一般的な
実効アドレスルーチン、又は指定操作ルーチンを
参照し得る。これらの各ルーチンはそれぞれ異つ
た機能を遂行するが、一方のルーチンから他方の
ルーチンへの制御の移行はフアンクシヨナル・ブ
ランチングと称される。例えば、命令レジスタが
型の命令(第6図参照)をストアしているとき
には、スタートアドレスA1は指定操作ルーチン
を参照しよう。この場合、第5図のA2/A3デコ
ーダ60から出力されるA2/A3アドレスは“ド
ント・ケア(don′t care)”条件となるが、この
ようにすればデコーダ用のPLA構成が簡易にな
る。命令レジスタにストア中の命令が型又は型
の命令である場合には、スタートアドレスA1
は実効アドレスルーチン又はイミーデイエートル
ーチンを参照する。各指定操作ルーチンは、所望
の操作を実行するだけでなくプレフエツチされた
マクロ命令ワードをIRCレジスタ52からIRレジ
スタ54に転送しかつ次のマクロ命令ワードをフ
エツチしてこれをIRCレジスタ52にストアする
ことができる。マクロ命令ワードが相当早めにプ
レフエツチされるので、A1デコーダ58及び
A2/A3デコーダ60からのスタートアドレスの
出力を必要な時に正確に行うことができる。ま
た、各指定操作ルーチン内の最後のマイクロワー
ドがマイクロ制御ストアブロツクへの次のアドレ
ス入力を選択する構成が採用されている。各実効
アドレスルーチンは、スタートアドレスA3を次
のアドレスとして選択するようなマイクロワード
で終了している。このスタートアドレスA3は、
第7D図に示すように、常に指定操作ルーチンを
指定する。すべてのイミーデイエートルーチンの
最終マイクロワードは、スタートアドレスA2
次のアドレスとして選択する。 第7C図に示すように、スタートアドレスA2
は実効アドレスルーチンをも指定操作ルーチンを
も参照できるようになつている。型の命令(第
6図参照)であれば、スタートアドレスA2が選
定され、実効アドレスルーチンへのブランチが行
われる。第6図には図示していないが、実効アド
レスフイールドを含まないでイミーデイエート・
アドレツシングを必要とする命令もあろう。この
種の命令においては、スタートアドレスA2が指
定操作ルーチンを参照しよう。 型の命令実行にあたつては、イミデイエート
オペランドを処理するための一般的なマイクロ命
令ルーチンをイニシエートするスタートアドレス
A1がまず選択される。このイミーデイエート・
マイクロ命令ルーチンの最後のマイクロワードは
次のスタートアドレスとしてA2を選択し、この
結果、第2のオペランドを取得するための実効ア
ドレスマイクロルーチンへの直接ブランチが行わ
れる。この実効アドレスルーチンが完了するとス
タートアドレスA3が選択され、これにより、所
望の操作を実行しかつ次の命令を命令レジスタ内
に転送するためのマイクロ命令ルーチンへの直接
ブランチが行われる。この指定操作ルーチンが完
了するとスタートアドレスA1が選択され、次の
マクロ命令の実行が開始される。 本発生の一実施例のデータプロセツサが行うす
べてのマクロ命令を附録表Fに掲げる。この附録
表Fに掲げたすべてのマクロ命令について、OP
コードを附録表Gに示す。各マクロ命令のOPコ
ードについて、スタートアドレスA1,A2及びA3
を第22A図乃至第22U図に掲げる。これらの
図に掲げられたスタートアドレスは、アドレスす
べきマイクロワードのラベルで示されている。附
録表Aにこのマイクロワードのラベル
(LABEL)を掲げる。第22A図乃至第22U図
において、左上の4ビツトコードは、マクロ命令
の15乃至12ビツトに対応している。各行右方の6
ビツトコードは、マクロ命令のビツト11乃至6
に対応している。各列下段の6ビツトコードは、
マクロ命令のビツト5〜0に対応している。各列
は、一般に、各命令に対する各種のアドレツシン
グモードに対応している。RYD及びRYAは、オ
ペランドが指定されたアドレスレジスタ又はデー
タレジスタの内容であることを示している。
(RYA)は、オペランドのアドレスが指定された
アドレスレジスタであることを示している。
(RYA)+及び−(RYA)は、それぞれ、オペラン
ドアドレスの使用後又は使用前に、指定されたア
ドレスレジスタの内容がインクレメント又はデク
レメントされるとを示している。(RYA)+d16
指定されたアドレスレジスタに16ビツトの変位を
加算してオペランドアドレスを指定することを示
し、(RYA)+(X)+d8は指定されたアドレスレ
ジスタにインデツクスレジスタの内容及び8ビツ
トの変位を加算してオペランドアドレスを指定す
ることを示している。ABSW及びABSLは、オペ
ランドアドレスが16ビツトワードであるか又はプ
ログラムメモリ内のマクロ命令の第1ワードに続
く32ビツトのダブルワードであることを示す。
(PC)+d15及び(PC)+(X)+d8は、それぞれ、
オペランドアドレスがプログラムカウンタの内容
+16ビツト変位であること及びオペランドアドレ
スがプログラムカウンタの内容+インデツクスレ
ジスタの内容+8ビツト変位であることを示して
いる。“#”の付された列は、オペランドがイミ
ーデイエート値であることを示しているが、これ
はプログラムメモリ内のマクロ命令の第1ワード
に続く16ビツトワード又は32ビツト・ダブルワー
ドである。 2レベル(two―level)・マイクロプログラムド
制御ユニツト マイクロROM72及びナノROM73を具えた
2レベル・マイクロプログラム化制御ユニツトが
第4図に図示されている。マイクロROMは制御
ユニツト内のダイレクト・シーケンシングに用い
られる。第4図のマイクロROM72は544個の17
ビツト・マイクロワードを具えている。このマイ
クロROMは、アドレス選択ブロツク64の10ビ
ツト出力でアドレスされるので、1024個のマイク
ロワードまで選択され得る。しかし本実施例のデ
ータプロセツサは544個のマイクロワードしか必
要としない。これらのマイクロワードは、第8図
に示すような2種のフオーマツトで構成されてい
る。第8図のフオーマツトは条件付きブランチ
を含むマイクロワードを除くすべてのマイクロワ
ードに対するフオーマツトであり、これに対して
フオーマツトは条件付きブランチのマイクロワ
ードである。フオーマツトではビツト1が
“0”でフオーマツトではビツト1が“1”で
あり、このようにビツト1により2種のフオーマ
ツトが区別される。条件付きブランチ型のマイク
ロワード(フオーマツト)では、ビツト2から
6までが条件付きブランチ選択フイールド
(CBC)であり、このフイールドが32個のブラン
チ条件の1つを指定する。同じく条件付きブラン
チ型マイクロワードにおいては、ビツト7から1
4までがマイクロ制御ストアブロツク及びナノ制
御ストアブロツクに対する次のマイクロROMベ
ースアドレス(NMBA)を構成している。後述
するように、8ビツトのNMBAフイールドにブ
ランチ制御論理ブロツクから供給された2ビツト
が追加され、制御ストアブロツクの次のアドレス
を指定する。 フオーマツトのマイクロワードにおけるビツ
ト2及び3は、制御ストアブロツク用の次のアド
レスの出所を指定するタイプフイールド(TY)
を構成している。命令レジスタ・シーケンスデコ
ーダから供給された3種のアドレスのうちの1つ
により、又はマイクロワードのビツト5乃至10
により構成されているネクストマイクロROMア
ドレスフイールド(NMA)から供給されたダイ
レクトブランチ・アドレスにより、アドレスが選
択される。第5図を参照すれば、NMAビツトフ
イールド及びNMBAビツトフイールドは、信号
線116からマルチプレクサ114のBA入力端
子に供給される。デコーダ126には信号線12
0,122及び124からビツト1,2及び33
が供給され、マルチプレクサ114によりネクス
トアドレスとして適正な出所が選択される。この
ネクストアドレスの出所の選択は、以下に掲げる
表に従いTYフイールドにより行われる。
【表】 第8図において、ビツト15,16からなるフ
アンクシヨンコード・フイールド(FC)及びビ
ツト0に対応するロード命令フイールド(I)
は、両者のマイクロワード・フオーマツトに共通
している。上記FCフイールドは、当該データプ
ロセツサの外部の周辺装置に対し、カレントマイ
クロ命令操作を表示する。このFCフイールドの
主要なものを下表に掲げる。
【表】 フイールド(ビツト0)は、命令レジスタの
更新を行うマイクロサイクルを指定する。このビ
ツト0が“1”であれば、IRCレジスタ52の出
力がイネーブルにされてIRレジスタ54に転送
される(第4図参照)。一般にこの転送は、マク
ロ命令の実行が操作型のマイクロルーチンに進み
(第7a図〜第7d図)命令レジスタ・シーケン
スデコーダが次に実行すべきマイクロ命令に対す
るスタートアドレスを発生できるようになるま
で、行われない。 第8図において、フオーマツトのマイクロワ
ードのCBCフイールドには、適切なブランチ条
件を選択するためのビツト4が含まれている。こ
れに対してフオーマツトのマイクロワードにお
いては、上述したビツトフイールドのいずれもビ
ツト4を含んでいない。本実施例のデータプロセ
ツサにおいては、ビツト4がビツト0と組合せて
使用されることにより、命令レジスタのローデイ
ングだけでなくトラツプベクトル数(TVN)エ
ンコーダの更新も制御される。第5図を参照すれ
ば、イクスセプシヨン論理ブロツク66が具える
縦列ラツチは、割込みペンデイング、トレースペ
ンデイング、アドレスエラーその他各種の特定条
件のステータスをストアする。それらのラツチ出
力はデコーダに供給されて、スタートアドレス
A0及びA0Sを発生する。これらラツチ群を独立に
制御するため、2種のラツチイネーブル信号が供
給される。第1のラツチ群は、命令の境界を待た
ずにマイクロROMに制御を移すような特定条件
をモニタする。第2のラツチ群は、上記特定条件
以外の条件をモニタする。両群のラツチはクロツ
クされて、ラツチの入力端信号に対応する出力を
発生し、TVN(トラツプベクトル数)エンコー
ダの更新を行う。TVNエンコーダの部分的更新
を行うため、クロツク信号を2分し、一方のクロ
ツク信号でイネーブルされたラツチ群のみがその
入力端信号に対応する信号を出力するようにす
る。第8図に示すフオーマツトのマイクロワー
ドにおいては、命令レジスタへのローデイング及
びTVNエンコーダの更新は、不表に従つて行わ
れる。
【表】 こゝで、付録表Aに掲げるマイクロROM内に
ストアされる544個のマイクロワードについて詳
しく説明しよう。付録表Aは、各マイクロワード
について、ラベル、対応のフアンクシヨンコード
(FC)、ダイレクトブランチ型命令における関連
のネクスト・マイクロ制御ストアブロツク・アド
レス(NMA)及び条件付きブランチ型マイクロ
ワードにおける条件付きブランチ選択フイールド
(CBC)を掲げている。同表のORIGINの列は、
マイクロワードがナノワードと共通の場合を示し
ている。同表のROWの列は、条件付きブランチ
型マイクロワードの指定先のマイクロワードを示
している。ブランチアドレスは8ビツトのベース
アドレス+ブランチ制御論理ブロツクで作成され
た2ビツトから構成されているので、条件付きブ
ランチの行先を提供するマイクロワード配列は限
られている。従つてある種の条件付きブランチ型
命令においてオータネート行先(alternate
destinations)を提供する2個のマイクロワード
を、マイクロROM内の同一論理列内に配置して
おくことが必要になる。同表のDESTINATIONS
の列は、条件付きブランチ型マイクロワードの
各々についての可能な行先を掲げている。 第4図に示すように、ナノ制御ストアブロツク
すなわちナノROMは、マイクロ制御ストアブロ
ツクすなわちマイクロROMと同一のアドレスに
よつてアドレスされる。このナノ制御ストアブロ
ツク内におけるアクセスは、シングルワード又は
複数ワードからなる論理列(引続きこの論理列内
でシングルワードの条件付き選択が行われる)に
対して行われる。ナノ制御ストアブロツクへのア
クセスは、マイクロ制御ストアブロツクへのアク
セスと同時に行われる。マイクロ制御ストアブロ
ツク内ではアドレス及びユニーク・マイクロワー
ド間で1対1のマツピングが存在するが、制御ス
トアブロツク・アドレス及びユニークナノワード
間には多数対1のマツピングが存在する。従つ
て、いくつかユニークマイクロワードが同一のナ
ノワードを共有する場合がある。 ナノワード中のコード化制御信号のフイールド
は、制御論理ブロツク(第2図のブロツク12)
でデコードされて実行ユニツト内の制御箇所をド
ライブし、バススイツチ、ソースレジスタ、行先
レジスタ、テンポラリ・ロケーシヨン、特定機能
ユニツト、I/Oデバイス等を動作させる。本発
明の一実施例のデータプロセツサにおいては、各
ナノワードは68ビツト幅であり、これらはデコー
ドされて実行ユニツト内の約180個の制御箇所を
ドライブする。ナノ制御ストアブロツク内のユニ
ーク・ナノワード数は336個であり、マイクロ制
御ストアブロツク内のユニーク・マイクロワード
数は544である。 各ナノワードをそのアドレスによつて1対1に
指定することも可能であるから、ナノ制御ストア
ブロツクへのアドレスを直接デコードして制御ワ
ードを発生させることもできよう。このようにす
ればナノ制御ストアブロツクが不要となるが、こ
れに伴つて第2図の制御ブロツク12内のデコー
ドブロツクのハード量が大幅に増加しよう。他の
極端な例として、各制御箇所をナノワードの関連
ビツトに対応させることにより、ナノワードのデ
コード操作を全く不要とすることもできよう。実
際には、制御ストアブロツク及び実行ユニツト間
のチツプ領域を割当て、これにタイミング情報と
結合させ、制御ワード出力を実行ユニツト内の対
応の制御箇所に入力させることとなろう。このチ
ツプ領域内に3ゲートレベルのデコーダを極めて
低コストで作成することができる。本発明の一実
施例のデータプロセツサにおける制御ワードは、
フイールドの機能的表示が可能でしかも簡単にデ
コードできるよう、フイールド・エンコード化が
なされている。 命令ルーチンの初期においてオペランド及びア
ドレスをテンポラリ・ロケーシヨンに転送するこ
とにより、ユニーク制御ワード数すなわちナノワ
ード数を最小にすることができる。これによつて
他の命令のあとのサイクルを同一化する(look
more alike)ことができる。ナノワード数は、命
令セツトの設計及び制御ユニツトのプログラミン
グによつても影響される。さらに、実行効率と所
要ユニークナノワード数とのつり合いも考慮する
必要がある。長い実行時間を許容すれば、それだ
け各種の命令を同一化できる。 同一のアドレスされるマイクロROM及びナノ
ROMを具えた制御ストア・ブロツクの構成回路
を第9図に示す。第9図の制御ストア・ブロツク
は、図示を簡略化するため、マイクロROM内の
6ビツト・マイクロワード及びナノROM内の8
ビツト・ナノワードのアクセス用の3ビツト・ア
ドレスを受けるものとする。信号線128,12
9及び130から受けた3個のアドレスビツト
(A0,A1,A2)は、それぞれ、3本のアドレス信
号線131,132及び133上に供給される。
信号線128,129及び130は、それぞれ、
インバータ134,135及び136の入力端に
も接続されている。これらインバータ134,1
35及び136の出力は、それぞれ、アドレス信
号線137,138及び139に供給される。こ
のマイクロROMは、第9図でM0乃至M7と表
示された8本のワード線(140乃至147)を
具えている。同じくナノROMは、N0至N3と
表示された4本のワード線(148乃至151)
を具えている。アドレス線131乃至139及び
マイクロROMワード線140乃至147の交叉
部分においてマイクロROMワード線・デコーダ
が構成されている。アドレス線139及びワード
線147の交点を丸印で示す。第9図の丸印内の
拡大図に示すような、アドレス線139がイネー
ブルになるとワード線147はMOSFETを介し
て接地される。列153を含み総括符号152の
付せられた複数列は、マイクロワード線ROMの
ワード線と交叉してマイクロROM出力ワードを
発生する。ワード線146及び153の交叉点を
拡大して示してある。この拡大図に示すように、
ワード線146が選択されると、列信号線153
はMOSFETを介して接地される。 同様にナノROMにおいて、アドレス線131
乃至139及びナノROMワード線148乃至1
51の交叉部分は、ナノROMワード線デコーダ
を構成している。総括符号154で表示した複数
の列信号線は、ナノROMワード線と交叉してナ
ノROM出力ワードを供給する。 第9図に示したマイクロROM及びナノROMワ
ード線デコーダは、マイクロROM内におけるワ
ード線140(MO)の選択が同時にナノROM内
におけるワード線148(N0)の選択を兼ねるよ
うに構成されている。同様に、ワード線141,
M1の選択はワード線149,N1の選択も兼ね
ている。一方、マイクロROM内においてワード
線142,M2又は143,M3を選択すると、
ナノROMワード線150,N2が選択される。
同様に、マイクロROM内でワード線144乃至
147(M4乃至M7)を選択すると、ナノ
ROM内でワード線151,N3が選択される。 第9図の回路の動作を要約すれば、マイクロ
ROM及びナノROMの両デコーダに対して同一の
アドレスが存在する。いずれかの入力アドレスが
存在すれば、各ROM内でハイ状態にとどまるワ
ード線は1本だけとなる。このハイ状態にとどま
るワード線は、選択ワード線及び出力列信号線間
の交叉の有無に基くデコーデングに従つて、マイ
クロROM出力ワード及びナノROM出力ワードを
出力する。マイクロROM内の各ワード線は、単
一の入力アドレスだけで指定される。これに対し
てナノROM内の各ワード線は、1,2あるいは
4個の異なつた入力アドレスによつて指定され得
る。本発明の一実施例のデータプロセツサにおい
ては、ナノROM内のワード線は、8個もの異る
入力アドレスによつて指定され得る。マイクロ
ROM内の各ワード線は、ナノROMワード線と対
応している。一方、マイクロROMから供給され
たマイクロワード内のビツト数は、ナノROMか
ら供給されたナノワード内のビツト数と全く無関
係である。このようになつているから、制御スト
ア全体の寸法を低減することができる。 マイクロROM内における各マイクロワードの
ロケーシヨンを第10A図乃至第10D図に示
す。附録表Aに掲げた各マイクロワード・ラベル
が第10A図乃至第10D図の所定アドレスに記
入されている。本実施例においては1024個のロケ
ーシヨンが存在するにも拘らず544個のロケーシ
ヨンしか使用していないので、約半分のロケーシ
ヨンはブランクとなつている。 ナノROM内における各ナノワードのロケーシ
ヨンを第11A図乃至第11F図に示す。各ナノ
ワードに付されたラベルは、マイクロROM内の
対応のアドレスにおける対応のマイクロワードの
ラベルと同一である。例えば、カレント・マイク
ロ制御ストアブロツク・アドレス(A9乃至A
0)が01 11 10 00 10なる10ビツト・コードであ
つたとしよう。このアドレスは、第10B図に示
すようにマイクロROM内でab1w1のラベルが付
されたロケーシヨンを指定する。この同じアドレ
スは、第11D図に示すように、ナノROM内で
ab1w1と名付けられたロケーシヨンを指定する。
附録表AのORIGINの欄に示したように、
ab111,ralw1,ra111,jsa11,jma11,paa11,
un1k2等は、同一のナノワード・ロケーシヨンを
指定する他のマイクロワードである。 第13A図乃至13CN図に図示したマイクロ
ワードブロツクの割込みに対するキーブロツクを
第12図に図示する。第12図においてマイクロ
ROMアドレスと名付けられた部分は、特定のマ
イクロワードをロケートしたマイクロROM内の
10ビツト・アドレスに対応する16進数である。マ
イクロワードラベル及びORIGINと命名された部
分は、附録表Aに掲げた各マイクロワードに対応
している。ネクスト・マイクロROMアドレスと
命名されたキーブロツク部分は、次のマイクロ制
御ストアブロツク・アドレスをどのようにして選
択するか、ブランチがダイレクトであるか条件付
きであるか、並びに命令レジスタ及びトラツプベ
クトル数(TVN)エンコーダをを更新すべきか
どうかを指定する。キーブロツクのこの部分に用
いるキーコーデイングを以下に示す。
【表】 キーブロツクのアクセスラベルと命名された部
分は、各マイクロワード・ブロツクについてアク
セス・クラス、アクセス・モード及びアクセス・
タイプに関する情報を表示する。アクセス・レベ
ル中の第1キヤラクタは、下表に掲げる4つのタ
イプのうちのいずれか1つである。 アクセスクラス キヤラクタ 意 味 i イニシエート f フイニツシユ n ノー・アクセス t トータル 上記の“イニシエート”は、データプロセツサ
がカレント・マイクロサイクルの期間に外部アク
セス操作を開始しているけれどもその操作の完了
を待たずに次のマイクロワードブロツクに進行す
ることを指定している。同じく“フイニツシユ”
は、先行のマイクロサイクルにおいてアクセスが
開始されておりかつカレント・マイクロサイクル
の期間内に外部アクセス操作を完了すべきことを
指定している。同じく“ノー・アクセス”は、カ
レント・マイクロサイクルの期間においてアクセ
ス操作がペンデング中でないことを指定してい
る。“トータル”は、データプロセツサがカレン
ト・マイクロサイクルの期間に外部デバイスへの
操作を開始しかつこれを完了すべきことを指定し
ている。このデータプロセツサは、外部デバイス
とのインタフエース装置(図示せず)を具えてい
る。このインタフエース装置は、データプロセツ
サとの間でアクセス操作の完了を報らせる信号を
授受する。上記“フイニツシユ”及び“トータ
ル”のアクセス・クラスに対しては、アクセス操
作が完了するまでデータプロセツサが次のマイク
ロサイクルに進まないよう、上記インタフエース
装置はデータプロセツサの動作を禁止する。 アクセスラベル中の第2のキヤラクタとして、
以下に掲げる3個のキヤラクタのうちいずれか1
個を選択できる。 アクセスモード キヤラクタ 意 味 P プロセスのみ r リード w ライト 上記“プロセスのみ”は、カレント・マイクロ
サイクル期間内にペンデング中のアクセスが存在
しないことを意味している。リード及びライト
は、データプロセツサが外部アクセス操作の期間
に情報を受取るのか送出するのかを指定してい
る。 アクセスラベル中の残り2個のキヤラクタは、
下表に掲げるアクセスタイプに対応している。 アクセスタイプ キヤラクタ 意 味 ak 割込みACK im イミーデイエート in 命令 ix イミーデイエート又は命令 op オペランド uk アン・ノウン 上記“割込みACK”は、カレント外部アクセ
ス操作により、このデータプロセツサが割込みを
かけた外部周辺装置からベクトル数を取得しなけ
ればならないことを意味する。“イミーデイエー
ト”及び“命令”は、カレント・マイクロサイク
ル期間にペンデング中の外部アクセス操作によ
り、それぞれ、イミーデイエート・ワード又は命
令ワードを取得しなければならないことを意味す
る。上表中の“ix”は、カレント・マイクロサイ
クルでアクセスすべきワードに条件に応じて対応
のマイクロワード・ブロツクを割振る必要上、イ
ミーデイエートワードである命令であるかを表示
する。同じく“オペランド”は、ペンデイング中
の外部アクセス操作がデータプロセツサによりリ
ード/ライトされるデータを含んでいることを表
示する。同じく“アン・ノウン”は、ペンデング
中の外部アクセス操作がイミーデイエート・ワー
ド、命令ワード又はオペランドワードのいずれを
含んでいるかが不明であることを表示している。
当業者にとつて明らかなように、アクセスラベル
中な含まれた情報から第8図のビツト15及び1
6で示すフアンクシヨンコード(FC)フイール
ドが決定される。 レジスタポインタと表示された第12図のキー
ブロツク部分は、4キヤラクタにより構成されて
おり、カレント・マイクロサイクル期間にイネー
ブルされる行先レジスタ及び出所レジスタを指定
している。最初の2キヤラクタは、下表に掲げる
6種類のうちの1つである。 行先レジスタ・デコード キヤラクタ 意 味 dt データ・テンポラリレジスタ dx ドント・ケア(don′t care) rx マイクロ命令内Rxフイールド sp コーザー又は監視スタツクポインタ uk アン・ノウン us ユーザ・スタツクポインタ 同様に、レジスタポインタ・キー内の第3、第
4キヤラクタは、下表に掲げる6種類の出所レジ
スタのうちの1つを表示する。 出所レジスタ・デコード キヤラクタ 意 味 dt データ・テンポラリレジスタ dy ドント・ケア pc プログラムカウンタ ry マクロ命令内Ryフイールド py プログラムカウンタ又はRyフイールド uk アン・ノウン ALUフアンクシヨンのラベルを付した第12
図のキーブロツク部分の意味を以下説明しよう。
ナノワード・コンテントの表示が付されたこのキ
ーブロツク中最大の部分は、各マイクロサイクル
において実行ユニツト内でイネーブルされる情報
の転送を指定する。マイクロワード・ラベルが
ORIGINと異るマイクロワードブロツクに対して
も、ナノワードによりイネーブルされる実行ユニ
ツト内転送は、ORIGINとして掲げたマイクロワ
ード・ブロツクと同じである。各マイクロワード
ブロツクのナノワード・コンテント部分内で用い
られる記号を附録表Bに示す。 各マイクロワードが行う操作を第13A図乃至
第13CN図に示す。各マイクロワード・ブロツ
クを第12図に示すキーブロツクに従つて説明し
よう。マイクロルーチンを最小にするため、テン
ポラリストレージ及びルーチン共用という基本手
法を採用している。テンポラリストレージを採用
し、命令マイクロルーチンの初期にオペランド及
びアドレスをテンポラリ・ロケーシヨン内に転送
する。その結果、ルーチン内の後続制御ワードが
より均一化(homogenous)され、ときにはルー
チンの合体(join)も可能となり、これに伴つて
制御ストアブロツク内のかなりのスペースが節減
される。ルーチン共用は次のように行われる。 1 制御ストアブロツクによるマクロ命令語の部
分的な翻訳により、ALU操作及びレジスタを
指定するフイールドをマクロ命令語から抜出
す。同一の演算操作を必要とする各種の機能に
対する命令が、同一のマイクロルーチンを共用
する。 2 イミーデイエート型マクロ命令の実行に際し
イミーデイエート値をフエツチしてこれをデー
タ・テンポラリレジスタにストアすることによ
り、イミーデイエート値を含むマクロ命令相互
間で、既に用意されているレジスタ・メモリ間
マイクロルーチン及びレジスタ・レジスタ間マ
イクロルーチンを共用することができる。 3 既に述べたフアンクシヨナル・ブランチング
の概念に基き、データプロセツサが未取得のオ
ペランドを要するほとんどのシングルないしダ
ブルオペランド・マクロ命令において、各種の
アドレツシングモードを共用できる。 一般的なマイクロ制御及びナノ制御をストアす
るという概念を採用しているので、異種のマイク
ロルーチン・シーケンス(比較的短い制御ワード
から成る)が多数の同一ナノ制御ワード(これの
幅ははるかに広い)を共用することができる。命
令レジスクに受けた各マクロ命令は、マイクロワ
ードのシーケンスによりエミユレートされる。各
種のマイクロルーチンで読出される回数がいかに
多くとも、各ユニーク・ナノワードについて1個
のコピーだけがナノ制御ストア・ブロツク内にス
トアされる。 条件付きブランチ論理ブロツク 当該データプロセツサの制御ユニツトが実行す
る条件付きブランチには二つの型がある。第1の
型は、命令中で明示されておらず、マイクロワー
ドによつてユニークに指定される条件付きブラン
チである。この型の条件付きブランチの例は乗
算、除算等の反復ルーチンであり、これらにおい
ては、マクロ命令が明示しない何種類かの条件付
きブランチがマクロ命令によつて実行される。第
2の型の条件付きブランチは、マクロ命令中に明
示されているものである。“セツト・コンデイシ
ヨナリイ(Scc)”、“ブランチ・オン・コンデイ
シヨン(Bcc)”などが第2の型の例である。 条件付きブランチ制御回路の全機能ブロツクを
第14図に示す。第4図のマイクロROM出力ラ
ツチ74に対応するブロツク160は、第8図の
フオーマツトを参照して説明したように、条件
付きブランチ制御用の5ビツト・CBCフイール
ド(ビツト6乃至2)を含むマイクロワードをス
トアする。ブロツク160の上記CBCフイール
ドを含む部分はデコーダ162に接続されてお
り、このデコーダは、ブランチ命令がマクロ命令
中に明示されているか否かを判定する。上記ブロ
ツク160のCBCフイールドを含む部分は、信
号線164を介してマルチプレクサ166の第1
の入力端にも接続されている。このマルチプレク
サ166の第2の端子には、第4図のIRDレジス
タに対応するブロツク168が接続されている。
ブロツク168中のビツトのCCフイールド(ビ
ツト11乃至8)は、前述のセツト・コンデイシ
ヨナリイ・ブランチScc及びブランチ・オン・コ
ンデイシヨン・ブランチBccマクロ命令を実行す
る際にテストすべき条件を指定するマクロ命令ビ
ツトフイールドに対応している。このデコーダ1
62の出力が供給されるマルチプレクサ
(MPX)166は、マイクロワード中のCBCフイ
ールド又はマクロ命令中のCCフイールドを選択
して出力する。CBCフイールドによる条件選択
をマクロワード自身による条件選択に対して遅ら
せることにより、マクロ制御ストアブロツク内の
単一のルーチンを使用して明示の条件付きブラン
チ型のすべてのマクロ命令を実行することができ
る。 マルチプレクサ166の出力は、信号線172
を介してマルチプレクサ170の選択入力端子に
供給される。このマルチプレクサ170は、当該
データプロセツサの各部分から信号線174を介
して状態信号を受ける。マルチプレクサ170は
適切な状態信号を選択して、これをアドレスビツ
ト作成回路178に転送する。ブロツク160の
CBCフイールドを含む部分は、信号線180を
介してアドレスビツト作成回路178の制御入力
端子にも接続されている。このアドレスビツト作
成回路178は、信号線182及び184上に2
ビツトの出力C0,C1を出力する。このブラン
チ制御論理ブロツク182からの出力信号線18
2及び184は、第5図に示すマルチプレクサ1
16に接続されている。アドレスビツト作成回路
は、信号線180から供給された制御信号に応じ
て、マルチプレクサ170が選択した条件信号に
関連したC0,C1出力の組合せを選択する。 ネクスト制御ワード用のマイクロ制御ブロツク
及びナノ制御ブロツクへのアクセスがカレント制
御ワードの実行と重なり合うため、条件付きブラ
ンチには1つの問題が伴う。遅延時間を補償する
ため、マイクロルーチンのプログラミング・サイ
クルが許容される。さらにマイクロプログラム
は、最も可能性が大きいパスに沿つてプログラム
される(the most likely、path the most
efficient)。例えば、“デクレメント・アンド・ブ
ランチ・イフ・ノツトゼロ”命令が最も頻度が高
いとみなし、マイクロルーチンは、デクレメン
ト、テスト及びリブレースの操作実行中に、行先
アドレスを計算しかつフエツチを開始する。 制御ワードの論理アレイの行のアクセスを開始
するためのマイクロワード中のベースアドレス
(第8図フオーマツトのNMBA)を提供するこ
とにより、条件付きブランチに伴う遅延時間を更
に短縮している。第14図の条件付きブランチ論
理ブロツク80からのC0,C1出力により、上
記論理アレイの行内の適切なワード選択を引続き
指定する。本実施例においては、論理行内には4
個の制御ワードが含まれており、C0及びC1に
基いてそのうちの1個が選択される。このように
しているので、単一レベルによつて4方路のブラ
ンチを実行することができる。本実施例のデータ
プロセツサにおいては、マイクロルーチンのどの
箇所においてもマクロ命令は4方路以上のブラン
チを必要としない。条件付きブランチにおいては
論理行のアクセスが必要であるからすべての行先
アドレスが同一の論理行内に配列されていること
が必要であり、このため、マイクロ制御ストアブ
ロツク及びナノ制御ストアブロツク内のワード配
列にある程度の制限が伴う。 上記4方路の条件付きブランチは、附録表A内
のマイクロワードmulm4と関連している。
mu1m4と命名されたマイクロワードについて
は、“DESTINA―TIONS”の欄にmu1m6,
mu1m4,mu1m3及びmu1m5が可能性あるブラン
チ先として掲げられている。第10A図を参照す
れば、上記4個の行先は、それぞれ00×10 10 01
(A9乃至A0)対応のアドレスを有している。
これら4個の行先アドレスは、ビツト7及び6を
除いて、すべて同一である。このように、上記4
個のマイクロワードがマイクロ制御ストアブロツ
クの論理行内に配列されており、制御ストアブロ
ツク・アドレスのビツト6及び7によつて4個の
うちの1個が選択される。同様にナノ制御ストア
ブロツク内には、同一の論理行内に4個の行先に
対応したナノワードが配列されている。このよう
に、第14図のアドレスビツト作成回路178で
作成されたC0ビツトC1ビツトが最終的にはマイ
クロ制御ストアブロツク・アドレスのビツト7及
び6となる。本発明の一実施例のマイクロワード
が使用する各種の条件付きブランチ選択を附録表
Cのテーブルに掲げる。CBCビツトフイールド
(マイクロワードのビツト6乃至2)を16進数表
示で“CBC”欄に掲げる。“VARIABLE”欄は、
条件信号すなわちブランチを決める信号を指定し
ている。“SOURCE”欄は、上記の条件信号すな
わちブランチを決める信号の出所の物理的ロケー
シヨンを表示している。なお、上記“VARI―
ABLE”及び“SOURCE”欄を附録表Dで簡単
に説明した。表Cの“VALUES”欄は、ブラン
の条件を決める変数の可能な論理状態を表示して
いる。C1欄及びC0欄は、各変数又はこれらの組
合せに対する信号線184及び182(第14図
参照)の出力の論理状態を示す。 表Cの“REMARKS”欄は、2個以上の基本
条件信号から成る変数の情報を表示している。
“REMA―RKS”欄に掲げる基本条件信号の順序
は、“VALU―ES”欄のビツト配列順序に対応し
ている。例えば、変数nz1は、nが“1”でzが
“0”のときC1が“0”でC0が“1”となるよう
に、基本条件信号n及びzが組合されている。 各種のブランチテストに対応する変数を表Eに
掲げるが、これらの変数はコンデイシヨナルブラ
ンチ(Bcc)及びセツト・コンデイシヨナリイ
(Scc)マクロ命令のビツト11乃至8で指定さ
れる。“CC”欄はマクロ命令中の4ビツト・フイ
ールドを16進数表示したものである。“abbrev
(記号)”欄及び“meaning(意味)”欄は所望の
ブランチ条件を指定し、“condition”欄は所望の
ブランチ条件の実行に必要な基本条件コード信号
の論理的組合せを指定している。 第14図の破線で囲んだブロツク80のブラン
チ制御論理を実行するための回路を15A図及び
第15B図に示す。マイクロワードのビツト2乃
至6(CBCフイールド)を信号線190乃至1
98に受ける。信号線190乃至198はインバ
ータ200乃至208を介して、CBCフイール
ド内の各ビツトのコンプリメントを信号線210
乃至218上に供給する。CBCフイールドの下
位4ビツトを供給する信号線190乃至196及
びそのコンプリメント信号線210乃至216
は、第9図で説明したと同様のPLA回路でデコ
ードされる。これらの信号線には、第15A図の
左端にCBCデコード線と包括的に表示した信号
線群が交叉している。各CBCデコード線に付さ
れた表示は、それぞれをイネーブルするCBCビ
ツトフイールドの16進数表示である。いくつかの
信号線には、“1,11”のように2個の表示が付
れているが、これは、その信号線がCBCフイー
ルドのビツト6の論理状態と無関係にイネーブル
されることを意味している。同一表示の付された
信号線がいくつか存在するが、これは、これらの
信号線が同時にイネーブルされるとを意味してい
る。 上記CBCデコード線には、IRD8,8,
ENDからIRD6までを含み全体として状態信号と
表示された信号線群が交叉している。これらの信
号線上の状態信号は附録表Dで説明したように当
該データプロセツサの各部分から供給される。こ
のように状態信号線群とCBCデコード線群が交
叉しているので、CBCフイールドのビツト2乃
至5によつて選択された1又は複数の論理状態を
状態信号線により決定することができる。 上記CBC信号線には、信号線220,22
2,224及び226も交叉している。これら各
信号線は、その交叉するCBCデコード線(交叉
箇所を丸印で表示する。)のいずれかがハイレベ
ルのとき、接地電位となる。信号線220は、
CBCのビツト6が論理の“1”のときイネーブ
ルされるMOSFET228を介して出力端子C1に接
続されている。同様に信号線226はMOSFET
230を介して出力端子C1に接続されている
が、このMOSFET230のゲートはインバータ20
8の出力端に接続されてCBCのビツト6が論理
の“0”であるときにイネーブルされる。信号線
222及び224は、それぞれMOSFET232及び
234を介して出力端子C0に接続されており、
これらのMOSFETのゲート端子は、それぞれ、
信号線218及び198に接続されている。
MOSFET232はCBCビツト6が論理の“0”
のときイネーブルされ、MOSFET234はCBC
ビツト6が論理の“1”のときイネーブルされ
る。端子C1及びC0上の論理値は、表Cに掲げ
たものに対応する。 第15図のCBCデコード線“9,19”は表C
のCBC欄9及び19に対応するが、この場合、
条件付きブランチはマクロ命令中のCCフイール
ドによつて決定される。このCBCデコード線
“9,19”はMOS―FET236及び238の各ゲート端
子に接続され、これらをイネーブルにする。 信号線224及び226は、それぞれ
MOSFET236及び238を介して信号線24
0及び242に接続されている。これらの信号線
240及び242には、第15B図において包括
的にCCデコード線と表示した複数信号線が交叉
している。これらのCCデコード信号線に交叉し
CCビツトフイールドと包括的に表示されている
一群の信号線は、IRDレジスタのビツト11乃至
8及びこれらのコンプリメントを伝達する。これ
らのIRDレジスタのビツトは、Bccマクロ命令及
びSccマクロ命令中のCCフイールドに対応す
る。CCビツトフイールドの信号線は、前述の状
態信号線と交叉し、IRD8及び8信号線から
CBCデコード線に状態信号を供給する。CCデコ
ード線に状態信号を供給する。CCデコード信号
線には状態信号線の一部(PSWZ,PSWN,
PSWV,PSWC及びこれらのコンプリメント)が
交叉するが、これらの信号線はCBCデコード線
にも交叉している。これらCCデコード線の各々
は第15B図の左端に表示されているが、その表
示はこれら信号線を選択するための4ビツトCC
フイールドの16進数表示となつている。CCデコ
ード線は、CCビツトフイールドにより選択され
かつこのCCビツトフイールドに関連した表Eの
論理表現が真であるときにのみ、ハイレベルにな
る。このCCデコード線がハイレベルになると信
号線240及び242が接地され、CBCデコー
ド線“9,19”がイネーブルにされておれば、信
号線224及び226も接地される。 このように、出力端子C1及びC0によつて指
定された条件付きブランチ選択は、マイクロワー
ド中のCBCフイールドにより又はマクロ命令中
のCCフイールドにより直接決定される。また、
C1及びC0出力信号のCBCビツト6に対する
最終的な選択を遅らせる構成をとつているので、
異種の条件付きマイクロ命令間で同一の行先を共
用することができる。上記後者の特徴を、第13
BM図のマイクロワード・ブロツクbbci1及び
bbcw1で例示する。これら双方のマイクロワー
ド・ブロツクのブランチ先は、CCフイールドで
指定された条件が真であれば、いずれもマイクロ
ワード・ブロツクbbci3である。これに対して、
条件が真でなければ、bbci1からの行先はbbci3で
あり、bbcw1からの行先はbbcw3である。この例
では、マイクロワードbbci1及びbbcw1の一方の
CBCフイールドは9(16進数表示)であり、他
方のCBCフイールドは19(16進数表示)であ
る。このように、CBCフイールドのビツト2乃
至5はテストすべき条件を選択し、これに対して
CBCフイールドのビツト6はC1及びC0出力
端子に転送すべき選択条件関連の論理出力状態を
選択する。 ALU及び状態コード制御ユニツト 本実施例のマイクロプログラム化データプロセ
ツサに使用するALU及び状態コード制御ユニツ
トのブロツク図を第16図に示す。第4図のIRD
レジスタ56に対応するIRDレジスタ56′は、
マクロ命令をストアする。このIRDレジスタ5
6′に接続されている行デコーダ241は、15本
の行選択線を介してALU及び状態コード制御ブ
ロツク243に信号を供給する。この行デコーダ
241は、IRDレジスタ56′にストアされてい
るマクロ命令に従つて、上記15本の行選択線の一
本をイネーブルにする。ALU及び状態コード制
御ブロツク243は15行×5列のマトリツクスに
配列されており、行デコーダ241はブロツク2
43内の15行のうちの1行を選択する。 ナノROM73′は、第4図のナノROM73に
対応している。このナノROM73′から列デコー
ダ244に3本の信号線が接続されている。この
列デコーダ244の出力は、5本の列選択線を介
してALU及び状態コード制御ブロツク243に
供給され、行デコーダ241が選択した行内の5
列のうちの1列が選択される。 一般にマクロ命令の実行は、実行ユニツト内に
おける操作シーケンスによつて行われる。マクロ
命令実行用の操作の組はマクロ命令・スタテツク
であり、これはIRDレジスタ56′にストアされ
た命令の型をデコードすることにより指定され
る。ALUが各マクロ命令に対して実行すべき操
作の組は、ブロツク243内の15行の一つにスト
アされている。各行の操作は、ALU操作及び状
態コードのローデイングを決定する。ナノROM
73′は、選択された行内の操作を適切にシーケ
ンスするための状態情報を供給する。各マイクロ
サイクルの期間、列デコーダ244は、操作シー
ケンスにおいて次に実行すべき操作をストアして
いる列を選択行内から選択する。このように、
ALU及び状態コード選択ブロツク243は、ナ
ノ制御ストア・ブロツク内の状態情報と命令レジ
スタのマクロ命令から抜き出した機能情報とを組
合せてマクロ命令を実行する。ブロツク243
は、ALU,ALU拡張ブロツク(ALUE)及びプ
ログラム・ステータスワード・ブロツク
(PSW)内の状態コードレジスタにタイミング信
号及び制御信号を供給する。各マクロ命令につい
ての操作の組をブロツク243内に適切に配置す
ることにより、ほとんどのマクロ命令実行に際し
同一のナノ制御ストアシーケンスを使用すること
ができる。同一の実行アドレス及びデータ型に対
しては、加算、減算、アンド、オア、イクスクル
ーシブオアのマクロ命令は、同一の制御ストアシ
ーケンスを共用する。 さらに第16図において、ALU及び状態コー
ド制御ブロツク243からの第1の出力線群24
6は、実行ユニツト内のALU及びALUE(図示
せず)に接続されている。ブロツク243からの
第2の信号線群248は、マルチプレクサ
(MPX)250に接続されている。このマルチプ
レクサ250は、状態コード・コアラツチ252
から信号線252を介して第1の入力を受ける。
この状態コード・コアラツチの入力端はALU内
の論理回路に接続されており(図示せず)、ALU
が最新に行つた操作に関する情報を受ける。この
状態コード・コアラツチにラツチされたステータ
ス情報は、信号線248を介して供給された信号
の制御のもとに、マルチプレクサ250を介して
プログラム・ステータスワード・レジスタ86′
に選択的に供給される。このPSWレジスタ8
6′は、第4図のPSWレジスタ86に対応してい
る。このPSWレジスタ86′に入力するI/F信
号線256は、ナノROM73′に接続されてお
り、PSWレジスタ86′の更新時点を決定する。
マルチプレクサ250の第2,第3の入力端子
は、信号線258及び260を介してPSWレジ
スタ86′のZ及びC出力端子に接続されてい
る。簡単に説明すれば、データプロセツサが第1
の16ビツトについてのゼロ結果及び第2の16ビツ
トについてのゼロ結果を組合せて32ビツト(ダブ
ルワード)操作についてのゼロ結果をテストでき
るよう、信号線258が設置されている。データ
プロセツサが10進演算中にキヤリを出力できるよ
う、信号線260が設置されている。 ALUがALU拡張ブロツク(ALUE)との組合
せのもとで実行できる全ての操作を第17図に掲
げる。“ALU function”の欄は各操作機能を表示
し、シフト操作にあつては、シフトパターンを表
示する。“ALU function”欄の表示“a”及び
“d”は、ALUの入力ポートが実行ユニツト内の
データセクシヨンのアドレスバス及びデータバス
のそれぞれに接続されることを意味している。表
示“r”はALU結果を意味している。表示
“x”は、通常のキヤリ(PSWC)ではなく算術
キヤリ(PSWX)であることを意味している。ダ
ツシユを付した表示は、コンプリメントであるこ
とを意味する。“into C bit”の欄は、キヤリ出
力信号の出所を表示する。表示“cm”は、ALU
のMSB部分からのキヤリであることを意味す
る。表示“msb”は、結果のMSBであることを
意味する。“シフト・ライト”及び“ローテー
ト・ライト”操作に対しては、キヤリ出力信号の
出所はデータセクシヨン内のアドレスバスのビツ
ト0であり、このビツト0がシフトネツトワーク
のLSB入力端に供給される。第17図のその他の
欄は、ALU操作の制御用にALU及び状態コード
制御ユニツト内で作成される論理記号に対応して
いる。 第18図に示すALU機能及び状態コード・テ
ーブルは、第16図のALU及び状態コード制御
ブロツク243を参照して既に説明した15行×5
列のアレイに対応している。このテーブルの右端
にはALU機能に必要なマクロ命令又は状態コー
ドの状態に影響を及ぼすマクロ命令が掲げられて
おり、この欄の左方には当該マクロ命令に必要な
一連の操作が記入されている。5個の列内の左端
のエントリーは、第17図に掲げた操作の一つを
指定する。右端のエントリーは、PSWレジスタ
にストアされた状態コードを制御するための選択
信号を含んでいる。この状態コード制御情報は、
PSWレジスタ内のX,N,Z,V及びC状態コ
ードビツトに対応した5キヤラクタ・コードであ
る。これらの状態コードの意味を以下に説明す
る。記 号 意 味 X 多重精度演算用拡張ビツト N 正/負:結果のMSB Z ゼロ結果 V オーバーフロー C キヤリ テーブルに掲げた状態コード制御情報の意味を
以下に掲げる。記 号 意 味 K 状態コード変化せず D ドント・ケア(Don′t Care) O 状態コードを常にリセツト N 最新のNステータスによりPSWNを更新 Z 最新のZステータスによりPSWZを更新 V 最新のVステータスによりPSWVを更新 C 最新のCステータスによりPSWCを更新 最新のCステータスのコンプリメント
によりPSWCを更新 C* 10進補正に伴つて発生したキヤリとオ
ア操作を行なつたPSWCによりPSWC
を更新 * 上欄のコンプリによりPSWCを更新 A 算術シフト・キヤリステータスにより
PS―WX,PSWCを更新 V′ 最新のNイクスクルーシブオア・Cに
よりPSWVを更新(算術左シフト用) 第18図のテーブル中の状態コード制御フイー
ルドがブランクのまゝであれば、状態コードに影
響を及ぼさない。第1列において、第2行乃至第
5行及び第8行乃至第11行には二個のエントリー
が含まれている。その理由は、ある場合にはナノ
ROMにより第1のエントリーを選択し、他の場
合にはナノROMにより第2のエントリーを選択
するためである。ナノROMからのナノ制御ワー
ド出力は、イニシエートビツト及びフイニツシユ
ビツトに対応する2ビツト・フイールド
(NCC0,NCC1)を含んでいる。第2列乃至第4
列に対しては、イニシエートビツト又はフイニツ
シユビツトの一方がセツトされると、同一の状態
コード制御情報が使用される。テーブルの第1列
において、イニシエートビツトがセツトされたと
きだけ、第1のエントリーが選択される。これに
対してフイニツシユビツトだけがセツトされる
と、第2のエントリーが使用される。 こゝで、第12図のキーブロツク内の“ALU
FUN―CTION”の部分を説明しよう。第13A
図乃至第13CN図中のマイクロワード・ブロツ
クのALU Func−tion部分には、1乃至3個のキ
ヤラクタが出出現する。各マイクロワードについ
て、第1のキヤラクタは第18図のテーブルの列
を指定し、所望の操作を選択する。記号1乃至5
はこのテーブルの第1列乃至第5列に対応する。
記号“X”は、“ドント・ケア”状態を指定す
る。さらに除算アルゴリズム実行用のマイクロワ
ードブロツクに記号6が出現したときは、第4列
がイネーブルされ“1ss”ALU操作によりALUE
のLSB部に論理の“0”でなく“1”がシフトさ
れる(“4”が出現したときは第4列がイネーブ
ルされ論理の“0”がシフトされる)。 マイクロワード・ブロツクの“ALU
FUNCTION”部に2以上のキヤラクタが含まれ
る場合には、第2のキヤラクタが状態コード制御
用のフイニツシユ表示及びイニシエート表示を参
照する。記号“f”はフイニツシユに対応し第1
8図のテーブルの第1列内の第2のエントリを使
用してPSWレジスタ内の状態コードビツトのセ
ツトを制御する。イニシエートを表示する記号
“i”は、第18図の表の第1列内の第1のエン
トリーを選択し、PSWレジスタ内の状態コード
ビツトのセツトを制御する。記号“n”は、所定
の命令につき状態コードが影響されないことを示
す。“ALU FUNCTION”部に3個のキヤラクタ
を含むマイクロワード・ブロツクにおいては、第
3のキヤラクタは記号“f”であり、これによつ
てバイト(8ビツト)転送が含まれていることを
実行ユニツトに表示する。この一例は、第13H
図に示すマイクロブロツクmrgw1である。この
場合、実行ユニツトのデータセクシヨン内のアド
レスバスの下位8ビツトだけが選択された出所か
ら選択された行先に転送され、行先の上位8ビツ
トは影響を受けない。換言すれば、ワード操作型
のマクロ命令及びバイト操作型のマクロ命令が、
同一のベーシツク・マクロ命令ルーチンを共用す
る。 再び第18図を参照すれば、第2列・第3行の
“addx”操作においては、オペランドに加算すべ
き算術キヤリとしてPSWXでなくコアラツチ・コ
ピーXを使用し、これによつて最新のXステータ
スを使用できるようにしている。第4列・第1行
の操作も“1ss”操作であり、前述したように、
ナノ制御ストアブロツクで第4列が選択されてい
るか第6列(テーブル中にはない。)が選択され
ているかに応じてALUEにシフトすべきビツトの
論理状態が決定される。同じく第4列の第7行に
おいて、乗算が無極性であるか有極性であるかに
応じて、ALUのMSBにはPSWC又はPSWVが入
力する。 ALU及び状態コード制御ブロツク内のマトリ
ツクス内の15個の行を選択するためにIRDレジス
タにストアされているマクロ命令のデコーデイン
グのテーブルを第19図に示す。これらのマクロ
命令は45の組合せ(0乃至44)にグループ分けさ
れており、これらの群は、“Instruction
Decode”欄に表示されたビツトパターンにより
決定される。(Row Inhibits”欄内の各行の数字
は、“Inst−ruction Decode”欄の対応の行に記
載されているビツトパターンを有するマクロ命令
が出現したときにデスエーブルされるALU及び
状態コード制御マトリツクス内の行に対応してい
る。 第19図のテーブルに掲げたデコード機能を実
行するためのプログラム化論理アレイ配列を第2
0A図及び第20B図に示す。第20A図には、
“IRDレジスタ出力及びコンプリメント”と表示
した記号線群が図示されている。これらの信号線
の各々は、IRDレジスタ内にストアされたマクロ
命令ビツト又はそのコンプリメントに接続されて
いる。マクロ命令デコード線と包括的に表示され
第20B図から連つている第2の信号群が、上記
第1の信号線群と交叉している。これらマクロ命
令デコード線には、第19図の表中の行対応の参
照符号が付されている。第1,第2の信号線群の
交叉点(丸印で表示)において、第1の群の信号
線が論理の“1”になると第2の群の信号線は
MOFETを介して接地される。マクロ命令デコー
ド線のうちのあるものは、相互に交叉し合つてい
る。例えば、マクロ命令デコード線43及び44
は互いに交叉している。この交叉点においては、
マクロ命令デコード線43が論理の“1”になる
と、マクロ命令デコード線44がMOSFETを介
して接地される。同じく、マクロ命令デコード線
41及び42は、マクロ命令デコード線44と交
叉している。第19図のテーブルを参照すれば、
第44行の下側にカツコ書きの行41,42及び4
4が記載されている。この表示は、行41,42
及び43が行44を更にデコードすることを示し
ている。 第20B図に示すように、マクロ命令デコード
線には第3の群の信号線が交叉しているが、これ
らの信号線は1乃至15の符号が付されると共に全
体として行選択線という包括符号が付されてい
る。これら15本の行選択線は、第16図の行デコ
ーダ241の出力端に接続されている。第20B
図に示すPLA配列が行うデコード機能は、マク
ロ命令デコード線から供給された情報に基いて、
ALU及び状態コード制御マトリツクス内の15行
のうちの1行を選択することにある。 第16図のALU及び状態コード制御ブロツク
243を実現するための回路を第21A図及び第
21B図に示す。行選択線と表示した第1の群の
信号線が、第21A図及び第21B図の上部に図
示されている。これら行選択線群は、第20B図
に示したPLA配列からの15本の行選択線に対応
している。これら行選択線には、第21B図の
ALU制御デコード線群が交叉し、ALU機能選択
用信号を制御する。第21B図に示す信号線26
2,264及び266は、ナノROMから出力さ
れた3ビツトのフイールドを受取る。信号線26
8,270及び272のそれぞれに接続されたイ
ンバータ268,270及び272は、信号線2
74,276及び278のそれぞれにコンプリメ
ントを供給する。信号線262乃至278には列
選択線1,2,3,4+6及び5が交叉し、ナノ
ROMから供給された3ビツトのフイールドをデ
コードする。これら5本の列選択線は、第16図
の列デコーダ244の出力に接続された5本の信
号線に対応する。列選択線2が接続されたロード
280は、列選択線がイネーブルにされた際のハ
イレベルを保持する。この列選択線2はバツフア
284にも接続されており、このバツフア282
の出力は、ICS2と表示された信号線282に供
給される。他の列選択線も同様にバツフアを介し
てドライブ線ICSI1,ICS3,ICS4及びICS5
に接続される。 第21B図の信号線286は、ALU制御信号
を供給する。第17図を参照すれば、表中
の“Cand”欄は信号のアクテイブ操作を表示し
ている。信号はローのときアクテイブであ
り、第21B図の信号線286の信号線ICS1と
の交点は、列1が選択されるとをアクテイ
ブにする。第18図において列1は常にALUの
“アンド”機能をコールし、この“アンド”機能
は、第17図の表から、信号をアクテイブ
にする操作の一つであることが理解できよう。第
21B図において列1ではなく列2が選択される
と、信号線284がハイレベルになつて
MOSFET288をイネーブルにし、信号線28
6をデコード線290に接続する。この場合、列
4の選択線がイネーブルされたときのみ、信号線
290が接地されて信号がアクテイブにな
る。第18図を参照すれば、テーブルの第2列第
4行は操作“アンド”のみを含むが、これは
Candのアクテイブを必要とする。これに対して
第21B図において列4+6が選択されると、
MOSFET292がイネーブルにされ、信号線2
86はデコード線294に接続される。行選択線
2,5,7,8又は10が選択されると、信号線
294が接地されてがアクテイブになる。
再び第18図を参照すれば、テーブルの第4列内
の対応の行は、信号Cand′をアクテイブにするた
めの操作をコールする。ALU制御用のその他の
制御信号も、同様にして作成される。 第21A図の行選択線群には、第21A図に状
態コード制御デコード線と表示した第2の信号線
群も交叉し、状態コードビツトのセツトを決定す
る制御信号を供給する。第21A図のバツフアさ
れた列選択線ICS1乃至ICS5は、各種の制御信
号にいずれの状態コード制御デコード線を接続す
べきかを決定する。例えば、信号線284(ICS
2)がハイレベルであればデコード信号線298
はMOSFET296を介してINX制御線300に
接続され、これによつて、プログラム・ステータ
スワード・レジスタ(PS−WX)内のXビツトの
セツトを制御する。この例では、行選択線1,
4,6,7,8,11,13又は14が選択され
ると、INX制御線300がデセーブルされる。第
18図の表の第2列を参照すれば、上記各行に対
してはXビツト位置に信号“K”が現われ、
PSWXビツトが変更されないことを指定する。 第21A図に示す信号線303及び304はナ
ノ制御ストアブロツクから供給される2ビツトの
信号を受けるが、これら2ビツトは第18図のテ
ーブルに関して前述したイニシエート信号及びフ
イニツシユ信号に対応する。これら信号線302
及び304はそれぞれインバータ306及び30
8に入力し、信号線310及び312のそれぞれ
に信号及びを供給する。信号線3

0及び312はそれぞれデコード線314及び3
16とを交叉し、及びのそれぞれ

論理の“0”であればデコード線314及び31
6はそれぞれイネーブルされる。デコード線31
4及び316はMOSFET318及び320を介
してそれぞれ制御線322及び324に接続さ
れ、これらのMOSFETは信号線326(ICS
1)がハイレベルになると、すなわち第1列が選
択されると、イネーブルにされる。制御線322
(INVI)及び324(INVF)は図示しない回路
でゲートされ、プログラム・ステータスワード・
レジスタ(PSWV)におけるオーバーフロービツ
トのセツトを制御する。第13行又は14行が選択さ
れるとデコード線314が接地され、第2乃至5
行又は第8乃至11行が選択されるとデコード線3
16が接地される。第18図のテーブルの第1列
を参照すれば、イニシエート型操作においては第
13行及び14行に対してのみプログラム・ステータ
スワード・レジスタ内のVビツトが変更されず、
フイニツシユ型操作においては第2乃至5列及び
第8乃至11列に対してプログラム・ステータスロ
ード・レジスタ内のVビツトが変更されないこと
に留意されたい。 信号線302,304,310及び312は、
アンドゲート328,330及びノアゲート33
2を具えたゲート回路にも結合し、ゲートされた
信号を信号線334に供給する。信号線302及
び304上の信号がいずれも論理の“0”であれ
ば、信号線334がイネーブルされて状態コード
制御信号をデセーブルにし、プログラム・ステー
タスワード・レジスタ内の状態コードを不変に保
つ。これは、第13A図乃至第13CN図におい
て、状態コードが影響を受けないことをALU
function部分が表示することに対応している。こ
の状態コード制御線には信号線336
(INHCC)も交叉し、信号線336が論理の
“1”になるとこれらの制御線がデスエーブルに
なる。この信号線336が接続されるデコーダ
(図示せず)は、状態コードに影響を及ぼさない
マクロ命令を検出する。これらのマクロ命令に対
しては、信号線336はイネーブルとなり、
PSWレジスタの状態コードの変更を禁止する。 再び第21B図を参照すれば、バツフア337
に入力する第6列の選択線0は信号線338
()をドライブする。この信号の機能を
説明しよう。信号線262乃至266に受けたナ
ノ制御ストア・ブロツクのビツト(NIF0乃至
NIF2)の1つがゼロであれば、列選択線1乃至
5の1本がイネーブルになりALUの動作を指示
する。この場合、テンポラリ・ストレージレジス
タ又はALU内のラツチが更新される。一方ある
種のマイクロサイクル内には、ALU操作が行わ
れずALU内のラツチも更新すべきではない。こ
の種のマイクロサイクルに対しては、信号線26
2乃至266が論理の“0”信号を受け、列選択
線0をイネーブルにする。これを表示する信号線
信号は、ALUラツチの動作を禁止する。
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】 ト
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】 ト操作デコーダ
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】
【表】 【図面の簡単な説明】
第1図はマイクロプログラム化された制御スト
アを用いたデータプロセツサの簡易ブロツク図、
第2図は本発明の一実施例のデータプロセツサの
更に詳細なブロツク図、第3図はデータプロセツ
サ内のマクロ命令実行用実行ユニツトの簡易ブロ
ツク図、第4図は第2図のデータプロセツサの更
に詳細なブロツク図、第5図は第4図のブロツク
図の一部を拡大したものであつてデータプロセツ
サ内の命令レジスタ・シーケンスデコーダの一例
を示す図、第6図はデータプロセツサ内で処理さ
れるいくつかのマクロ命令・シーケンスを例示す
る図、第7A乃至7D図は命令レジスタ・シーケ
ンスを用いて実行されるマイクロ制御ストア内の
機能ブランチングの概念を例示する図、第8図は
マイクロ制御ストア内にストアされる第1,第2
のフオーマツト(第1のフオーマツトはダイレク
トブランチ型マイクロワードに対応し、第2のフ
オーマツトはコンデイシヨナルブランチ型マイク
ロワードに対応する。)を例示する図、第9図は
データプロセツサ用マイクロ制御及びナノ制御ス
トアの実用に使用されるプログラム化論理アレイ
(PLA)を簡単に例示する図、第10A乃至10
D図はマイクロ制御ストア内における各種のマイ
クロワードのロケーシヨンを例示する図、第11
A乃至11F図はナノ制御ストア内の各ナノワー
ドが応答すべき制御ストア・アドレスを例示する
図、第12図は第13A乃至13CN図に例示さ
れたマイクロワードブロツクを説明するキーブロ
ツクを示す図、第13A乃至13CN図は各マイ
クロワードに含まれるシーケンシング情報及び選
択されたマイクロワードに関連するナノワード内
に含まれる制御情報を第12図のキーブロツク中
のフオーマツトに従つて示す図、第14図は制御
ストア内の条件付きブランチを制御するためにデ
ータプロセツサ内で使用される条件付きブランチ
論理ユニツト、第15A乃至15B図は第14図
に示す条件付きブランチ論理ユニツトを実現する
ための回路図、第16図はALUの機能及び状態
コードのセツテングを制御するためデータプロセ
ツサで使用されるALU及び状態コード制御ユニ
ツトの機能を例示するブロツク図、第17図は実
行ユニツト内ALUで実効可能な操作を例示する
ALU制御テーブル、第18図はALU機能及び各
種のマクロ命令に対する状態コードの制御方法を
指定するための、15行×5列のALU機能及び状
態コードテーブルを例示する図、第19図は各種
のマクロ命令に対するOPコードと第18図に示
すテーブルの行との関係を例示するALU機能制
御及び状態コード・デコーダテーブル、第20A
乃至20B図はマクロ命令OPコードのビツトフ
イールドに応じて第19図のテーブルに従つて列
選択線信号を発生するためのPLAデコード配列
を例示する図、第21A乃至21B図はALU機
能及び状態コードのセツテング制御を指定する制
御信号を発生するために第18図に示す15行×5
列のテーブルを実現する回路図、第22A乃至2
2U図は各マクロ命令に対して命令レジスタ・シ
ーケンスデコーダで発生されるスタートアドレス
A1,A2及びA3を例示するテーブルである。 2……命令レジスタ、4……命令デコードブロ
ツク、6……実行ユニツト、8……制御ストアブ
ロツク、10……命令レジスタ、12……制御論
理ブロツク、14……IRシーケンスデコーダ、
16……アドレス選択ブロツク、18……マイク
ロ制御ストアブロツク、20……ナノ制御ストア
ブロツク、22……実行ユニツト、26……条件
付きブランチ制御論理ブロツク、64……アドレ
スセレクタ、72……マイクロROM、73……
ナノROM。

Claims (1)

  1. 【特許請求の範囲】 1 マイクロアドレスの対応するシーケンスに応
    答し、マイクロ制御ストアにより与えられるマイ
    クロ命令の所定のシーケンスに応じてマイクロ命
    令を実行し、 同一のマイクロアドレスに同時に応答する第
    1、第2制御ストアを具えるマイクロ制御ストア
    を具備し、第1制御ストアは、マイクロアドレス
    シーケンス制御情報を与え、第2制御ストアは、
    実行制御情報を与えるデータプロセツサにおい
    て、 第1制御ストアは、マイクロアドレスのそれぞ
    れの1つに応答し、そこの選択された記憶位置に
    蓄積されたマイクロアドレスシーケンス制御情報
    を与え、他方、第2制御ストアは、複数の異なる
    マイクロアドレスの各々に応答して、そこの選択
    された記憶位置に蓄積されたマイクロ命令実行制
    御情報を与えることを特徴とするデータプロセツ
    サ。
JP14789579A 1978-11-17 1979-11-16 Two level control store for microprogrammed data processor Granted JPS55102063A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/961,796 US4307445A (en) 1978-11-17 1978-11-17 Microprogrammed control apparatus having a two-level control store for data processor

Publications (2)

Publication Number Publication Date
JPS55102063A JPS55102063A (en) 1980-08-04
JPS6236256B2 true JPS6236256B2 (ja) 1987-08-06

Family

ID=25505022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14789579A Granted JPS55102063A (en) 1978-11-17 1979-11-16 Two level control store for microprogrammed data processor

Country Status (2)

Country Link
US (1) US4307445A (ja)
JP (1) JPS55102063A (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
JPS5748139A (en) * 1980-09-04 1982-03-19 Nec Corp Microprogram control device
US4390946A (en) * 1980-10-20 1983-06-28 Control Data Corporation Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences
IT1134780B (it) * 1980-12-18 1986-08-13 Honeywell Inf Systems Unita' di controllo microprogrammata con rete di salti multipli
US4484261A (en) * 1981-01-19 1984-11-20 Texas Instruments Incorporated Data processing system having interlinked fast and slow memory means and interlinked program counters
JPS57164340A (en) * 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US4493045A (en) * 1981-10-19 1985-01-08 Fairchild Camera & Instrument Corp. Test vector indexing method and apparatus
US4931989A (en) * 1982-02-22 1990-06-05 International Business Machines Corporation Microword generation mechanism utilizing a separate programmable logic array for first microwords
US4685080A (en) * 1982-02-22 1987-08-04 International Business Machines Corp. Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords
US5333282A (en) * 1982-09-29 1994-07-26 Hitachi, Ltd. Semiconductor integrated circuit device with at least one bipolar transistor arranged to provide a direct connection between a plurality of MOSFETs
DE3380105D1 (en) * 1982-09-29 1989-07-27 Hitachi Ltd Semiconductor integrated circuit device
US4928223A (en) * 1982-10-06 1990-05-22 Fairchild Semiconductor Corporation Floating point microprocessor with directable two level microinstructions
US4586133A (en) * 1983-04-05 1986-04-29 Burroughs Corporation Multilevel controller for a cache memory interface in a multiprocessing system
US4578774A (en) * 1983-07-18 1986-03-25 Pitney Bowes Inc. System for limiting access to non-volatile memory in electronic postage meters
US4697250A (en) * 1983-08-22 1987-09-29 Amdahl Corporation Flexible computer control unit
US4571673A (en) * 1983-09-29 1986-02-18 Tandem Computers Incorporated Enhanced CPU microbranching architecture
US4766533A (en) * 1984-03-09 1988-08-23 The United States Of America As Represented By The United States National Aeronautics And Space Administration Nanosequencer digital logic controller
JPH0830971B2 (ja) * 1984-03-26 1996-03-27 株式会社日立製作所 プログラマブルコントローラ
US4754393A (en) * 1984-12-21 1988-06-28 Advanced Micro Devices, Inc. Single-chip programmable controller
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
US5179716A (en) * 1986-07-02 1993-01-12 Advanced Micro Devices, Inc. Programmable expandable controller with flexible I/O
US5123096A (en) * 1987-08-03 1992-06-16 Masahito Matuo Data processor with addressing mode decoding function
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features
US5101344A (en) * 1988-01-28 1992-03-31 Motorola, Inc. Data processor having split level control store
JPH01230125A (ja) * 1988-03-10 1989-09-13 Nec Corp レジスタの部分的更新機能を持つデータ処理装置
EP0414811B1 (en) * 1988-05-03 1997-02-19 Wang Laboratories, Inc. Microprocessor having external control store
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> ソフトウエア命令実行装置
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
WO1994027215A1 (en) * 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
AU6701594A (en) * 1993-05-07 1994-12-12 Apple Computer, Inc. Method for decoding sequences of guest instructions for a host computer
US5812808A (en) * 1996-06-11 1998-09-22 Driker; Benjamin Totally pipelined computer, interconnected with others
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3599176A (en) * 1968-01-02 1971-08-10 Ibm Microprogrammed data processing system utilizing improved storage addressing means
CH485277A (de) * 1968-01-25 1970-01-31 Siemens Ag Programmablaufsteuerwerk für eine Datenverarbeitungsanlage
BE757967A (fr) * 1969-10-25 1971-04-23 Philips Nv Memoire pour microprogramme
US3766532A (en) * 1972-04-28 1973-10-16 Nanodata Corp Data processing system having two levels of program control
JPS5325226B2 (ja) * 1972-07-20 1978-07-25
US3839705A (en) * 1972-12-14 1974-10-01 Gen Electric Data processor including microprogram control means
GB1426749A (en) * 1973-06-05 1976-03-03 Burroughs Corp Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets
GB1426748A (en) * 1973-06-05 1976-03-03 Burroughs Corp Small micro-programme data processing system employing multi- syllable micro instructions
US3958221A (en) * 1973-06-07 1976-05-18 Bunker Ramo Corporation Method and apparatus for locating effective operand of an instruction
IT995721B (it) * 1973-10-10 1975-11-20 Honeywell Inf Systems Italia Apparato per l interpretazione di codici di funzione in calcolatori microprogrammati e per l indirizza mento indipendente di fasi inter pretative ed esecutive di micro programma
JPS5410219B2 (ja) * 1973-12-07 1979-05-02
IT1016854B (it) * 1974-08-21 1977-06-20 Olivetti & Co Spa Calcolatore elettronico di elabora zione dati
US4037202A (en) * 1975-04-21 1977-07-19 Raytheon Company Microprogram controlled digital processor having addressable flip/flop section
US4038643A (en) * 1975-11-04 1977-07-26 Burroughs Corporation Microprogramming control system
US4168523A (en) * 1975-11-07 1979-09-18 Ncr Corporation Data processor utilizing a two level microaddressing controller
DE2622974A1 (de) * 1976-05-21 1977-11-24 Siemens Ag Mikroprogrammierbares steuerwerk
JPS538034A (en) * 1976-06-30 1978-01-25 Toshiba Corp Electronic computer
US4124893A (en) * 1976-10-18 1978-11-07 Honeywell Information Systems Inc. Microword address branching bit arrangement
JPS5362950A (en) * 1976-11-17 1978-06-05 Toshiba Corp Microprogram control system
US4156278A (en) * 1977-11-22 1979-05-22 Honeywell Information Systems Inc. Multiple control store microprogrammable control unit including multiple function register control field
US4156279A (en) * 1977-11-22 1979-05-22 Honeywell Information Systems Inc. Microprogrammed data processing unit including a multifunction secondary control store
US4155120A (en) * 1977-12-01 1979-05-15 Burroughs Corporation Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution

Also Published As

Publication number Publication date
JPS55102063A (en) 1980-08-04
US4307445A (en) 1981-12-22

Similar Documents

Publication Publication Date Title
JPS6236256B2 (ja)
US4342078A (en) Instruction register sequence decoder for microprogrammed data processor and method
US4338661A (en) Conditional branch unit for microprogrammed data processor
EP0011412B1 (en) Bipartite control store for microprogrammed data processor
US4312034A (en) ALU and Condition code control unit for data processor
US4514803A (en) Methods for partitioning mainframe instruction sets to implement microprocessor based emulation thereof
EP0031889B1 (en) Processor on a single semiconductor substrate
US3886523A (en) Micro program data processor having parallel instruction flow streams for plural levels of sub instruction sets
US3585605A (en) Associative memory data processor
KR100462951B1 (ko) Risc 구조를 갖는 8 비트 마이크로콘트롤러
US3800291A (en) Data processing system memory relocation apparatus and method
US4713750A (en) Microprocessor with compact mapped programmable logic array
JPS6114535B2 (ja)
KR0142334B1 (ko) 확장된 비트 슬라이스 프로세서 산술논리 연산 유니트
US4346437A (en) Microcomputer using a double opcode instruction
US4348720A (en) Microcomputer arranged for direct memory access
US4430711A (en) Central processing unit
JP2001504959A (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US4771376A (en) Processor
JPH06230962A (ja) 拡張可能なレジスタを提供するデータ処理システムおよびその方法
KR100374401B1 (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
US4309753A (en) Apparatus and method for next address generation in a data processing system
JP3705811B2 (ja) 再構成可能なプログラム状態語を有するマイクロコントローラ
US3728689A (en) Program branching and register addressing procedures and apparatus