JPS6323585B2 - - Google Patents

Info

Publication number
JPS6323585B2
JPS6323585B2 JP58206058A JP20605883A JPS6323585B2 JP S6323585 B2 JPS6323585 B2 JP S6323585B2 JP 58206058 A JP58206058 A JP 58206058A JP 20605883 A JP20605883 A JP 20605883A JP S6323585 B2 JPS6323585 B2 JP S6323585B2
Authority
JP
Japan
Prior art keywords
instruction
branch
pla
microword
register
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
JP58206058A
Other languages
English (en)
Other versions
JPS6089249A (ja
Inventor
Jorujii Tooma Nandoo
Suchuwaato Muua Bikutaa
Richaado Kurafuto Uein
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6089249A publication Critical patent/JPS6089249A/ja
Publication of JPS6323585B2 publication Critical patent/JPS6323585B2/ja
Granted legal-status Critical Current

Links

Classifications

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

Landscapes

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

Description

【発明の詳細な説明】
〔本発明の技術的分野〕 本発明は、マイクロワードのシーケンスが各々
のシステム命令の実行を制御するのに用いられ
る、マイクロプログラム式デイジタル・データ・
プロセツサおよびデイジタル・コンピユータのよ
うな、マイクロプログラム式デイジタル・システ
ムにおいて使用するマイクロワード生成機構に関
連する。本発明は特に、主要回路部分がLSIチツ
プ上に形成されているデータ・プロセツサおよび
デイジタル・コンピユータにおいて有用である。 〔先行技術の説明〕 マイクロプログラム式デイジタル・コンピユー
タまたはデータ・プロセツサに於ては、システム
命令又はユーザのソフトウエア・プログラムから
得られるプロセツサ命令を実行するのに必要な内
部プロセツサ制御動作を与えるマイクロワードは
内部制御記憶から読出される。マイクロワードは
1回に1つずつ記憶装置から読出されて制御レジ
スタにセツトされる。各々のマイクロワードは複
数の2進ビツトから成り、その一部分または全部
は複数ビツトの制御グループすなわち制御フイー
ルドに配列されることがある。制御レジスタはデ
ータ・プロセツサにある各種のデータ・フロー・
ゲートおよびデータ処理機構を制御する要素の制
御点信号を生じるデコーダ機能を駆動する。各々
のマイクロワードは1マイクロワード・サイクル
の間、データ・プロセツサの内部動作を制御す
る。通常は1つのプロセツサ命令を実行するのに
数個のマイクロワードが必要である。あるプロセ
ツサ命令は少数のマイクロワードだけを必要とす
るが、他のプロセツサ命令にはその実行を完了す
るのに多数のマイクロワードを必要とするものが
ある。 現在、データ・プロセツサのマイクロワード制
御ユニツト部分を含む主要な部分はLSIチツプ上
に組立てられる傾向にある。総体的な目的な単一
のチツプ上に与えうるデータ処理機能の数を増加
することであり、究極的な目標は単一チツプ上に
完全なデータ・プロセツサまたはデイジタル・コ
ンピユータを設けることである。現在、単一チツ
プ上に最大数の回路をパツクする最良の技術はい
わゆるMOSFET技術である。前記技術はチツプ
上に極めて高い回路密度を可能にするが、残念な
ことにMOSFET回路は、例えば、いわゆるバイ
ポーラIC技術のような他のIC技術によつて組立
てられた回路よりも動作速度がいくらか低い。従
つて、MOSFET回路を使用するデータ処理機構
の動作速度を高める方法を発見することが望まし
い。また、たとえMOSFET回路が高い回路密度
を与えても、回路スペースを無駄にしないよう注
意しなければならない。言い換えれば、チツプ上
に要求される回路の総数を減少する回路機構を与
えることが望ましいことに変りはない。 〔本発明の概要〕 本発明によつて、MOSFET回路技術によつて
容易に組立てられ、且つ現在入手しうる(全マイ
クロワード・ビツト容量が)同等の大きさの
MOSFETマイクロワード生成機構によつて与え
られる動作速度よりもかなり高速の動作速度を与
えるすぐれたマイクロワード生成機構が与えられ
る。これは、一般に、在来のランダム・アクセス
制御記憶ユニツトおよびそのアドレス指定回路を
複数のPLA(プログラマブル論理アレイ)に置換
えたマイクロワード生成機構を与えることによつ
て達成され、特に、条件付き飛越しおよび条件付
き分岐型のプロセツサ令令の実行を、より効率的
で迅速に処理しうる先例のないPLA構成を与え
ることによつて達成される。大抵のユーザ・プロ
グラムは相当な数の分岐および飛越し命令を含ん
でいるから、通常、全体の処理時間のかなりの節
約が可能になる。 条件付き飛越しおよび分岐命令を実行するに当
つて、最初に少なくとも1つの条件標識信号を検
査して特定の条件が満たされているかどうかを決
定する必要がある。それが満たされている場合、
順次プロセツサ命令からの特定の飛越しまたは分
岐が行なわれる。そうでない場合には、飛越しま
たは分岐は行なわれず、ユーザ・プログラムの次
の順次プロセツサ命令が実行される。 本発明に従つて、この条件検査は大多数のマイ
クロワードを生じる他のPLAとは別個のPLAに
よつて実行される。この別個の条件検査PLAは、
分岐または非分岐マイクロワード・シーケンスが
生成されるかどうかを決定するのに用いられる、
簡単な「イエス」または「ノー」の判断信号を生
成する。これにはいくつかの利点があり、例え
ば、主要PLA機構において必要とする積線の数
を減少させ、主要PLA機構の大きさを縮小して
その動作速度を改善するのに役立つ。同時に、条
件検査PLAの寸法は比較的小さく、その動作速
度は非常に速い。また、別個の条件検査PLAの
アクセスは主要PLA機構の通常の動作とオーバ
ラツプしうるから、時間の一層の節約が実現され
る。 また、本発明に従つて、分岐および飛越し命令
を実行するのに必要なマイクロワードを生成する
更に別個のPLAを設けることによつて、性能を
一層すぐれたものにすることができる。この別個
の分岐コードPLAは分岐型のプロセツサ命令の
マイクロワード・シーケンスを供給するが、主要
PLA機構は非分岐型プロセツサ命令のマイクロ
ワード・シーケンスを与える。この場合、条件検
査PLAからの判断信号は分岐コードPLAに供給
され、分岐コードPLAによつて生成されるマイ
クロワード・シーケンスの選択を制御する。この
条件検査PLAと分岐コードPLAの組合せは、非
分岐型のシステム命令を実行するためのマイクロ
ワード・シーケンスを与えているPLA構造の残
りの部分と並行して動作する非常に高速な径路を
与える。これは分岐マイクロワードの極めて高速
な使用を可能にする。 本明細書で用いる用語「分岐型」は、データ・
プロセツサを次の順次プログラム命令以外の命令
に行かせる、分岐命令、飛越し命令および他のど
んな種類のプログラム命令をも含む包括的な用語
として用いられている。 〔詳細な説明〕 A データ・プロセツサ(第1図) 第1図には各々のシステム命令の実行を制御
するのにマイクロワードのシーケンスが用いら
れるマイクロプログラム式デイジタル・システ
ム10の機能ブロツク図が示されている。この
デイジタル・システム10はマイクロプログラ
ム式デイジタル・コンピユータ即ちデイジタ
ル・データ・プロセツサ(以下、単にプロセツ
サという)である。このプロセツサ10は特に
LSIチツプ上に組立てるのに適合する。プロセ
ツサ10には、データ・フロー・ユニツト1
1、主記憶ユニツト12、I/O(入出力)ユ
ニツト13、制御ユニツト14およびクロツク
発生器15が含まれる。データ・フロー・ユニ
ツト11は時にはCPUと呼ばれ、ALU、各種
のハードウエアのレジスタおよびカウンタ、局
所記憶ユニツト、ならびにこれらを相互接続す
るバス・システムなどを含む。データ・フロ
ー・ユニツト11はユーザ・データの加算、減
算、再配列および他の処理を行ない、計算機の
ユーザが要求する結果を生成するユニツトであ
る。制御ユニツト14はデータ・フロー・ユニ
ツト11、主記憶ユニツト12、I/Oユニツ
ト13の動作を、これらのユニツトに存在する
各種の動作機構に供給される制御点信号によつ
て制御する。図面を簡略化するため、それぞれ
のレジスタ・カウンタ等への制御点信号線の大
部分の接続は図示されていない。 多重導線のプロセツサ・バス16はデータ・
フロー・ユニツト11にある各種のレジスタ、
カウンタおよび他の動作ユニツトを相互接続す
るのに用いられる。ここでは、このプロセツ
サ・バス16は16ビツトすなわち16の導線から
なるバスであるものとし、それに合わせて、プ
ロセツサ・バス16に接続された各種のレジス
タおよびカウンタは16ビツトのレジスタおよび
カウンタであるものとする。 データ・フロー・ユニツト11には命令レジ
スタ17、Aレジスタ18およびBレジスタ1
9が含まれ、その各々はプロセツサ・バス16
にその入力回路とその出力回路がどちらも接続
され、それに複数ビツトの2進信号を供給する
とともに、それから複数ビツトの2進信号を受
取る。Aレジスタ18と、Bレジスタ19は
ALU20を駆動し、ALU20の出力は16ビツ
トのゲート回路21によつてプロセツサ・バス
16に送られる。また、データ・フロー・ユニ
ツト11には、命令アドレス・カウンタ22、
命令アドレス・レジスタ23およびデータ・ア
ドレス・カウンタ24が含まれ、これらはプロ
セツサ・バス16に接続された主記憶ユニツト
12の記憶アドレスを与える。命令アドレス・
レジスタ23は複数ワード命令の場合に有用で
ある。その場合、命令の第1のワードのアドレ
スは命令アドレス・レジスタ23にロードされ
て保管されるが、命令アドレス・カウンタ22
は更新され、状況によつて命令の第2のワード
または第2および第3のワードをアドレス指定
する。第1のワードには実行される特定の命令
を識別する命令コード・フイールドが含まれて
いる。 データ・フロー・ユニツト11には更に、局
所記憶ユニツト25、およびそれに関連する
LSAR(局所記憶アドレス・レジスタ)26な
らびにLSDR(局部記憶データ・レジスタ)2
7が含まれている。LSDR27はプロセツサ・
バス16に接続されて2進データをプロセツ
サ・バス16から局所記憶ユニツト25へ、ま
たはその逆に転送するのに用いられる。局所記
憶ユニツト25には、各種の汎用レジスタが含
まれ、プロセツサ10がユーザ・プログラムを
実行している間、データ等を一時的に記憶す
る。説明を簡略化するため、LSAR26は制御
ユニツト14から局所記憶アドレスを受取るも
のとする。 主記憶ユニツト12には主記憶機構28、
SAR(記憶アドレス・レジスタ)29および
SDR(記憶データ・レジスタ)30が含まれて
いる。SAR29はプロセツサ・バス16に接
続され、命令アドレス・カウンタ22とデー
タ・アドレス・カウンタ24から記憶アドレス
を受取る。SDR30もプロセツサ・バス16
に接続され、データ、命令等を主記憶機構28
からプロセツサ・バス16へ、またはその逆に
転送する。 I/Oユニツト13には、データ・プロセツ
サ10に関連する各種の周辺ユニツトに通じる
I/Oバス32に接続されているI/O駆動ユ
ニツト31が含まれている。I/O駆動ユニツ
ト31はI/Oレジスタ33によつてプロセツ
サ・バス16に接続されている。I/Oレジス
タ33はデータをI/O駆動ユニツト31から
プロセツサ・バス16へ、またはその逆に転送
するのに用いられている。 制御ユニツト14には、マイクロワード生成
機構が含まれ、各々のシステム命令ごとに、こ
の場合は命令レジスタ17に存在するプロセツ
サ命令ごとにマイクロワードのシーケンスを生
成する。これらのマイクロワードは第1図に示
された各種の要素の動作を制御する制御点信号
を順次生成する。例えば、個々の制御点信号線
は制御ユニツト14の出力からレジスタおよび
カウンタ17,18,19,22,23,2
4,27,29,30、および33のロード制
御端子に通じている。同様に、各種の他の制御
点信号線が制御ユニツト14の出力から各種の
レジスタおよびカウンタ17,18,19,2
1,22,23,24,27,30および33
の出力ゲート端子に通じている。このように、
適切な制御点信号線の対を活性化することによ
つて、レジスタの1つはそのデータをプロセツ
サ・バス16に出力することができ、もう1つ
のレジスタはプロセツサ・バス16に現われる
データをそのレジスタ自身にロードすることが
できる。同じ制御目的で、更に制御点信号線が
ALU20、ゲート回路21およびLSAR26
に通じている。図面を簡略化するため、第1図
で、これらの制御点信号線の大部分は図示され
ていない。例外として、制御点信号線34が、
主記憶機構28から取出されたプロセツサ命令
を命令レジスタ17にロードするために、命令
レジスタ17のロード制御端子に通じている。 プロセツサ10によつて実行されるユーザ・
プログラムは最初、I/Oバス32に接続され
た周辺装置の1つから主記憶機構28にロード
される。この動作はI/O駆動ユニツト31、
I/Oレジスタ33、プロセツサ・バス16お
よびSDR30を介して行なわれる。その後、
ユーザ・プログラムはユーザ・プログラムを構
成するそれぞれのシステム命令またはプロセツ
サ命令を主記憶機構28から順次に読取ること
によつて実行される。各々のプロセツサ命令は
順番にSDR30を介してプロセツサ・バス1
6に転送され、次いで命令レジスタ17にロー
ドされ、実行される特定のプロセツサ命令は複
数の導線からなるバス35を介して制御ユニツ
ト14で識別される。 命令レジスタ17にロードされたプロセツサ
命令は、例えば、局所記憶ユニツト25に存在
する第1のオペランドを主記憶機構28の特定
のアドレスに位置する第2のオペランドに加
え、その結果を局所記憶ユニツト25に記憶す
ることを要求することがある。このような命令
に応答して、制御ユニツト14は適切な制御点
信号を活性化し、データ・フロー・ユニツト1
1は主記憶機構28から第2のオペランドを取
出してそれをAレジスタ18にロードする。次
いで、制御ユニツト14によつて第1のオペラ
ンドは局所記憶ユニツト25からBレジスタ1
9に転送される。ALU20はAレジスタ18
とBレジスタ19の内容を加えるように命令さ
れる。加算の結果がALU20の出力に現われ
ると、制御ユニツト14は前記結果を局所記憶
ユニツト25に転送し記憶する。現在の命令を
終了させるため、制御ユニツト14によつて次
のプロセツサ命令が主記憶機構28から取出さ
れ、命令レジスタ17にロードされる。 複数ワード命令の場合、命令レジスタ17に
ロードされるのは第1のワードである。考慮さ
れている特定の命令に応じて、その命令の第2
のワードおよび、もし使用されれば、第3のワ
ードはAレジスタ18、Bレジスタ19、デー
タ・アドレス・カウンタ24または局所記憶ユ
ニツト25にある適切な汎用レジスタの中の少
なくとも1つにロードすることができる。 本発明は特に効率的かつ迅速な条件付き分岐
および条件付き飛越し型のプロセツサ命令に関
連する。これらの命令によつてプロセツサ10
は、もし分岐または飛越し命令によつて指定さ
れた特定の条件が満たされれば、シーケンスを
外れた命令に飛越しまたは分岐する。もし特定
の条件が満たされなければ、プロセツサ10は
単にユーザ・プログラムの次の順次命令の取出
しおよび実行を継続する。これらの飛越しおよ
び分岐条件は通常、ALU20によつて実行さ
れた各種の算術および論理演算の結果に関連す
る。一般的な前記条件のセツトが第1表に示さ
れている。そのいずれかが特定の飛越しまたは
分岐命令によつて指定されることになる。
【表】
【表】 条件が満足されるかどうかを決定するために
は、ALU20によつて実行された算術または
論理演算によつて生じた状態を表示するそれぞ
れの標識信号を与えることが必要である。第1
表に示すように、これらの標識信号はE、C、
O、NおよびZ信号である。E信号は「偶数」
標識であつて、ALU動作の結果が偶数である
(最下位ビツトが0である)場合に1の値を得
る。C標識は「キヤリ」標識であつて、ALU
動作の結果が指定されたオペランドの大きさの
範囲内の符号なしの数として表示しえない場合
に1の値を得る。O信号は「オーバフロー」信
号であつて、ALU動作の結果が指定されたオ
ペランドの大きさの範囲内の符号つきの数とし
て表示しえない場合に1の値を得る。N信号は
「負」の標識信号であつて、ALU動作の結果が
負数である(最上位ビツトが1である)場合に
1の値を得る。Z信号は「0」標識で、ALU
動作の結果が全0の場合に1の値を得る。 一例として、第2のオペランドが算術的に第
1のオペランドよりも小さいかどうかについて
の決定は、第1表に示したECONZ標識の中の
特定の標識を検査することによつて行なわれ
る。この場合には、検査されるのはO(符号つ
き数オーバフロー)およびN(負)の標識であ
り、2つの可能性が存在する。もしOビツトが
0で且つNビツトが1であるか、またはOビツ
トが1で且つNビツトが0であれば、指定され
た条件は満たされて分岐が行なわれる。この特
定の検査の場合、他の標識ビツト、すなわち
E、CおよびZビツトは無視される。 第1表には、3ビツトの条件フイールドを有
する命令フオーマツトの場合に用いうる命令条
件コード値のセツトが示されている。第1表に
示された条件の半分は正(P)タイプの条件で
あり、他の半分は負(N)タイプの条件であ
る。Pタイプは「条件飛越し」および「条件分
岐」命令に用いられる。Nタイプは、「条件飛
越し−否定」および「条件分岐−否定」命令に
用いられる。これら2つのタイプの命令に対し
てそれぞれ異なつた命令コードが用いられ制御
ユニツト14はこの相違から実行される特定の
タイプを決定する。第1表に示された「算術」
条件は符号つきの数に用いられ、「論理」条件
は符号なしの数に用いられる。 考慮されている特定のデータ・プロセツサの
アーキテクチヤによつて、用語「飛越し」およ
び「分岐」は全く同一の意味を有することもあ
り、そうではないこともある。相違は、もしあ
れば、シーケンスを外れた新しい命令アドレス
を計算する方法に関連する。例えば、第1図の
データ・プロセツサにおいて、飛越し命令の飛
越し先アドレスは、命令アドレス・カウンタ2
2に存在する現在の命令アドレスに増分値を加
えることによつて計算されるものとする。他
方、分岐命令の場合には、分岐先のアドレスは
命令アドレス・カウンタ22に全く新しいアド
レス値をロードすることによつて決定されるも
のとする。このように、一般に、分岐命令は主
記憶機構28のどのアドレスにも分岐しうる
が、飛越し命令は現在の命令アドレスの前後の
比較的限られた距離にあるアドレスに飛越すこ
とができる。 ECONZ標識の値はステータス・レジスタ3
6の最上位5ビツト・ステージに記憶されてい
る。各々の算術または論理演算がALU20に
よつて完了した後、これらのステータス・レジ
スタ・ビツトはその演算の正しい標識値を反映
するように更新される。ステータス・レジスタ
36に記憶された標識値は複数の導線からなる
バス37を介して制御ユニツト14で使用可能
になる。飛越しまたは分岐が行なわれるべきか
どうかを決定するこれらの標識の検査は制御ユ
ニツト14で実行される。ステータス・レジス
タ36のロードは制御点信号線38によつて制
御される。 代表的な例として、分岐型プロセツサ命令は
しばしば比較型プロセツサ命令の後に続く。そ
の場合、まず比較命令が命令レジスタ17にロ
ードされる。制御ユニツト14によつて生じた
マイクロワード・シーケンスによつて第1オペ
ランドと第2オペランドの比較がなされる。こ
の動作はALU20が第2オペランドから第1
オペランドを引くことによつて行なわれる。そ
して、ステータス・レジスタ36のECONZ標
識がこの減算の結果を反映するようにセツトさ
れる。次いで、分岐型プロセツサ命令が主記憶
機構28から取出されて命令レジスタ17にセ
ツトされる。そして、制御ユニツト14はステ
ータス・レジスタ36から供給されたECONZ
標識信号の中の適切なものを検査し、分岐型命
令の条件フイールドによつて指定された条件を
満たすかどうかを調べる。例えば、条件フイー
ルドが「算術的により小さい場合に分岐する」
条件を指定するものとする。この場合、もし第
2オペランドが第1オペランドよりも算術的に
小さければ、分岐が行なわれる。用語「算術
的」は数の符号が考慮され、負数は正数よりも
小さいものとして処理されることを意味する。
指定された条件が満たされない場合、すなわ
ち、第2オペランドが算術的に第1オペランド
よりも小さくない場合には、分岐は行なわれ
ず、次の順次命令が主記憶機構28から取出さ
れ、命令レジスタ17にロードされる。 B 制御ユニツトの第1実施例(第2図) 第2図には、第1図の制御ユニツト14とし
て用いることができる制御ユニツト14aの機
能ブロツク図が示されており、本発明に従つて
構築された、すぐれたマイクロワード生成機構
の第1の実施例が含まれている。とりわけ、こ
の制御ユニツト14aにはシステム命令に応答
するPLA装置が含まれており、適切なマイク
ロワード・シーケンスを生成する。システム命
令は、この場合には、命令レジスタ17に1度
に1つずつ存在するプロセツサ命令である。こ
のPLA装置は制御PLA40のような少なくと
も1つのPLAを含む。この制御PLA40は、
かなりの数の積(ワード)線によつて接続され
た入力ANDアレイおよび出力ORアレイを含
む。 更に、PLA装置には、シーケンス・カウン
タ41が含まれており、一連の数値信号を制御
PLA40に供給し命令レジスタ17に存在す
るプロセツサ命令のためのマイクロワードのシ
ーケンスを生成させる。このシーケンス・カウ
ンタ41は、例えば、複数ビツト2進カウンタ
の形式をとつて、複数ビツトのバス42を介し
て、制御PLA40の入力ANDアレイの第2の
入力セツトに、複数ビツトの2進数信号を供給
するものでよい。命令レジスタ17からの命令
ビツトは複数ビツトのバス35を介して制御
PLA40の入力ANDアレイ部分の第1の入力
セツトに供給される。 バス35上の特定の命令コードおよびバス4
2上の特定のシーケンス・カウントに応答し
て、制御PLA40はその出力に特定の複数ビ
ツトのマイクロワードを生成する。このマイク
ロワードは制御PLAのORアレイ部分から得ら
れる。シーケンス・カウンタ41を増分するこ
とによつて、マイクロワードが1つずつ制御
PLA40の出力に現われる。要するに、制御
PLA40はマイクロワードを「記憶」し、一
方、命令コード及びシーケンス・カウントはマ
イクロワードを選択する「アドレス」を与え
る。実際には、命令コードはベース・アドレス
を、シーケンス・カウンタは1組の変位アドレ
スを与え、その特定のプロセツサ命令を実行す
るのに必要なマイクロワードのシーケンスを選
択する。 また、制御ユニツト14aにはマイクロワー
ド応答制御回路が含まれており、第1図に示す
データ・プロセツサ10の動作を制御する。こ
の制御回路には複数ビツトの制御レジスタ43
およびデコーダ44が含まれる。制御レジスタ
43のビツト数は単一マイクロワードのビツト
数と同じである。制御PLA40の出力に現わ
れるマイクロワードは、先行するマイクロワー
ド・サイクルの終りに制御レジスタ43にロー
ドされる。制御レジスタ43に存在するマイク
ロワードはデコーダ44を駆動し、デコーダ4
4はその特定のマイクロワードに必要な特定の
制御点信号を生成する。クロツク発生器15か
らのクロツク信号もデコーダ44に供給され
る。 一般に、各々のマイクロワードには数個のコ
ード化された複数ビツト制御フイールドが含ま
れている。デコーダ44はこれらのコード化フ
イールドをデコードし、適切な個々の制御点信
号を生成する。マイクロワードにある非コード
化ビツト、すなわちそれぞれが意味を持つてい
るビツトはデコーダ44によつて変更されずに
直接出力される。クロツク発生器15は制御点
信号が実際にデコーダ44の出力に現われる時
点を決定するクロツク・パルスを供給する。マ
イクロワード・サイクル当りのクロツク・パル
ス数はデータ・プロセツサによつて異なる。デ
コーダ44は一般に比較的多数の制御点出力線
を有する。代表的なデータ・プロセツサには、
このような出力量が100本以上ある。マイクロ
ワード毎に比較的少数(例えば10数本あるいは
それ以下)の出力線が活性化され、その特定の
マイクロワードに要求された制御活動を生じ
る。 デコーダ44によつて生成された制御点信号
の1つは線45を介して制御レジスタ43のロ
ーデイングを調時するように供給される。別の
制御点信号は制御点信号線34を介して命令レ
ジスタ17のローデイングおよびシーケンス・
カウンタ41のリセツテイングを制御するよう
に供給される。更に、別の制御点信号は線46
を介してシーケンス・カウンタ41の増分入力
端子に供給され、マイクロワード・サイクルご
とに1カウントの値だけシーケンス・カウンタ
41のカウントを増分する。タイミングは、特
定のマイクロワードが制御レジスタ43にロー
ドされた直後に、シーケンス・カウンタ41が
1だけ増分されて制御PLA40で次のマイク
ロワードを生成させる様に決められる。この様
に、制御PLA40は命令レジスタ17に存在
する所与のプロセツサ命令に対してマイクロワ
ードのシーケンスを生成する。シーケンスにあ
る最後のマイクロワードによつて制御点信号線
34は活性化されて次の命令を命令レジスタ1
7にロードし、シーケンス・カウンタ41は最
初の開始カウントにリセツトされる。この開始
カウントは、説明の都合上、0であるものとす
る。 制御ユニツト14aには更に、条件標識回路
が含まれており、プロセツサの算術および論理
演算の結果が特定のタイプの条件を満たすかど
うかを表示する標識信号を供給する。この条件
標識回路は複数の導線からなるバス37を含
み、ステータス・レジスタ36から制御ユニツ
ト14aにE、C、O、NおよびZの標識信号
を供給する。 制御ユニツト14aにはまた、条件付き分岐
型プロセツサ命令の条件フイールドに応答する
分岐判断PLA47が含まれており、E、C、
O、NおよびZの標識信号の中の適切な単数ま
たは複数の標識信号を検査するとともに、もし
前記命令の条件フイールドによつて指定された
条件が満たされるならば、分岐型のマイクロワ
ードのシーケンスを生成させる。この分岐判断
PLA47はバス37を介してステータス・レ
ジスタ36からE、C、O、NおよびZの標識
信号を受取り、また主バス35および分岐バス
48(主バス35の導線の一部分を含んでいて
もよい)を介して、命令レジスタ17から命令
ビツトの一部分(全部である必要はない)を受
取る。分岐判断PLA47に供給された命令ビ
ツトには、検査される特定の条件を識別する条
件コード・フイールドに加えて、分岐命令の型
およびその極性(正タイプか負タイプか)を決
定するのに必要なビツトだけが含まれていれば
よい。いくつかのプロセツサ命令セツトにおい
ては、命令ビツトの総数よりも少ないビツト数
で十分である。 バス37上の標識ビツト及びバス48上の命
令ビツトは分岐判断PLA47の入力ANDアレ
イ部分の異なる入力セツトに供給される。この
分岐判PLA47は単一の出力線49だけを有
する。命令の条件コード・フイールドによつて
指定された条件が、ステータス・レジスタ36
からのECONZ標識信号の中の適切な1つ又は
複数の標識信号によつて満足される場合には、
出力線49は活性化され、肯定的な判断信号が
その線上に生成される。例えば、もし条件のタ
イプがP、条件コードが「100」であつて、O
及びNの標識ビツトが夫々0及び1の値を有す
るならば、分岐判断PLA47の入力ANDアレ
イはその中の特定の積線を活性化し、それによ
つてORアレイの出力線49を活性化する。こ
こで簡略化の為、分岐型の命令が1種類だけあ
つて、第1表には可能性のある検査条件がすべ
て示されているものとすれば、分岐判断PLA
47は合計16本の積線及び1本のORアレイ出
力線を有し、第1表に示された夫々の条件ごと
に異なる積線がある。単一のORアレイ出力線
は、積線の各々に接続されるので、第1表に示
された条件のどれかがタイプ及び条件コード・
ビツトによつて指定され、適切な標識ビツトに
よつて満足される時はいつでも活性化される。 第2図の実施例では、判断信号の単一の出力
線49は制御PLA40に接続され、制御PLA
40は、分岐型の命令が命令レジスタ17に存
在し且つ指定された条件が満たされていること
を示す肯定判断信号を分岐判断PLA47が生
成しているとき、分岐型のマイクロワード・シ
ーケンスを生成する。この肯定分岐マイクロワ
ード・シーケンスによつてデータ・プロセツサ
はシーケンスを外れたプロセツサ命令に分岐す
る。分岐先のアドレスは分岐型命令中に含まれ
ているか、または分岐型命令によつて間接的に
指定される。分岐判断の出力線49上の信号が
肯定判断信号ではない(条件が満たされない)
場合には、制御PLA40は単に次の順次プロ
グラム命令を主記憶機構28から取出す非分岐
マイクロワード・シーケンスを生成する。 別個の分岐判断PLA47を使用する利点は、
それを使用しない場合に、制御PLA40の内
部で条件検査を行なうに必要とされる積線の数
をかなり節約できることである。制御PLA4
0の内部で条件検査を行なう場合には各々の分
岐型命令のためのマイクロコードは可能性のあ
る条件検査ごとに重複して設けておく必要があ
る。しかし、別個の分岐判断PLA47の使用
によつて、このマイクロコードの重複は回避さ
れ、制御PLA40は任意の与えられた分岐命
令に対して一組の積線だけがあればよい。同時
に、分岐判断PLA47は非常に小さく且つ極
めて高速なPLAである。従つて、他のすべて
の構成が等しい場合、条件検査が別個のPLA
で行なわれると、チツプ面積の節約および平均
動作速度の増加が得られる。 C 制御ユニツトの第2実施例(第3図) 第3図には、第1図の制御ユニツト14とし
て使用可能な別の制御ユニツト14bの内部構
造の機能ブロツク図が示されており、本発明に
従つて構築されたすぐれたマイクロワード生成
機構の第2の実施例が含まれている。第2図に
示されたものと同じ構成要素は同じ参照数字を
用いて第3図に示されている。 第3図において、基本制御PLA50は非分
岐型プロセツサ命令のためのマイクロワード・
シーケンスを生成し、分岐コードPLA51は
分岐型プロセツサ命令のためのマイクロワー
ド・シーケンスを生成する。この分岐コード
PLA51は分岐判断PLA47の単一の出力線
49に現われる判断信号に応答して、「イエス」
分岐または「ノー」分岐のマイクロワード・シ
ーケンスのどちらが生成されるべきかを決定す
る。また、分岐コードPLA51は命令ビツト
線52を介して命令レジスタ17の少なくとも
1つのビツトに応答して、飛越し命令と分岐命
令を識別する。これは飛越し命令の要求したマ
イクロワード・シーケンスが分岐命令の要求し
たマイクロワード・シーケンスといくらか異な
る場合に必要である。両方の型の命令に同じマ
イクロワード・シーケンスが用いられる場合に
は、命令ビツト線52は省略できる。命令ビツ
ト線52が必要な場合、飛越し命令と分岐命令
の相違を見分けるのに必要な数のビツト線だけ
が用いられる。 また、分岐コードPLA51はシーケンス・
カウンタ53から供給される2進数信号に応答
する。このシーケンス・カウンタ53は線54
を介してデコータ44から供給される制御点信
号によつて各々の分岐型マイクロワード・シー
ケンスの最初に0にリセツトされる。シーケン
ス・カウンタ53は線55を介して供給される
制御点信号によつて分岐型シーケンスの各マイ
クロワード・サイクルの間に1カウントだけ増
分される。このように、分岐判断の出力線49
および命令ビツト線52の任意の与えられた条
件のセツトに対して、シーケンス・カウンタ5
3は複数回増分され、所望のマイクロワードの
シーケンスを分岐コードPLA51の出力に生
成する。 飛越し型命冷が第1の種類のマイクロワー
ド・シーケンスを必要とし、分岐型命令が第2
の種類のマイクロワード・シーケンスを必要と
する場合を想定すると、分岐コードPLA51
は3種類の異なるマイクロワード・シーケンス
を含む。第1のマイクロワード・シーケンスは
指定された条件が満たされたときの飛越し命令
の場合である。第2のマイクロワード・シーケ
ンスは指定された条件が満たされたときの分岐
命令の場合である。第3のマイクロワード・シ
ーケンスは条件が満たされなかつたときの飛越
しまたは分岐命令のどちらかの場合である。第
3のマイクロワード・シーケンスは単に、次の
順次プログラム命令を主記憶機構28から取出
して、命令レジスタ17にロードするだけであ
る。 ゲート群56および57はマルチプレクサと
して働き、制御レジスタ43が主制御PLA5
0または分岐コードPLA51のどちらか一方
からマイクロワードを受取ることを可能にす
る。非分岐型プロセツサ命令を実行している
間、ゲート群57は制御点信号線58を介して
活性化され、主制御PLA50からのマイクロ
ワードが制御レジスタ43に供給されるのを可
能にする。これに対して、分岐型プロセツサ命
令を実行している間、ゲート群56は制御点信
号線59を介して活性化され、分岐コード
PLA51によつて生成されたマイクロワード
を制御レジスタ43に供給することができる。 ゲート群56または57を選択するため、
各々のマイクロワードにはストローブ・フイー
ルドが与えられる。デコーダ44はそれをみ
て、次のマイクロワードが主制御PLA50か
ら選択される場合は制御点信号線58を活性化
し、次のマイクロワードが分岐コードPLA5
1から選択される場合は、代りに制御点信号線
59を活性化する。分岐型命令が命令レジスタ
17にロードされると、その存在は主制御
PLA50によつて認識され、それによつて生
じたマイクロワードのストローブ・フイールド
は次のマイクロワードを分岐コードPLA51
から選択することをデコーダ44に命じる。分
岐コードPLA51によつて生成されたストロ
ーブ・フイールドおよびマイクロワードは、最
後の分岐コード・マイクロワードに達するま
で、分岐コード・マイクロワードを選択するこ
とをデコーダ44に指示し続ける。この最後の
分岐コード・マイクロワードのストローブ・フ
イールドは次のマイクロワードを主制御PLA
50から選択することをデコーダ44に指示す
る。命令レジスタ17にロードされた次の命令
が非分岐型命令であるものとすると、前記命令
に関して生成された各々のマイクロワードのス
トローブ・フイールドは次のマイクロワードに
対して主制御PLA50を選択し続けることを
デコーダ44に指示することになる。 分岐型のマイクロワード・シーケンスのため
に別個の分岐コードPLA51を使用する利点
は、それによつて、より大きく且ついくらか遅
い主制御PLA50に並列に高速な経路が与え
られることである。この点に関して、分岐コー
ドPLA51は相対的に小さく、従つて相対的
に短かいアクセス時間を有する。多くの異なる
ユーザ・プログラムにおいて分岐型命令はかな
り頻繁に生じるから、分岐コードPLA51に
よつて与えられた並列高速経路は一般に、平均
命令実行速度を増大させる。 D 制御ユニツトの第3実施例(第4A図および
第4B図) 第4A図および第4B図には、第1図の制御
ユニツト14として使用可能な制御ユニツト1
4cの内部構造の機能ブロツク図が示されてお
り、本発明に従つて構築されたすぐれたマイク
ロワード生成機構の第3の実施例が含まれてい
る。この実施例においては、プロセツサのクロ
ツク発生器15a(第4B図)は第5図に示さ
れたA相およびB相のクロツク信号を生成す
る。これらのクロツク信号はどちらも同じ周波
数であつて、同じ波形を持つており、異なつて
いるのは相互に時間的に変化していることであ
る。Aクロツクの正パルスはBクロツクの正パ
ルスとオーバラツプしない。第5図に示された
非オーバラツプ部分の長さは説明のため誇張し
て示されている。正パルスはクロツク信号のア
クテイブな期間を表わす。 第6図は第4A図および第4B図の制御ユニ
ツト14cの代表的な動作を説明するのに用い
られるタイミング図であり、ときどき制御ユニ
ツト14cの説明に関連して参照される。正の
AおよびBクロツク・パルスの発生時間は第6
図の2行目、すなわち「クロツク」の行に示さ
れている。図面を簡略化するため、これらのパ
ルス間のわずかの時間ギヤツプは第6図には示
されていない。第6図に示された各々のクロツ
ク・パルス間隔は1つのマイクロワード・サイ
クルに相当し、その間、特定のマイクロワード
が第1図のデータ・プロセツサを制御してい
る。 第6図の命令Nは、条件が満たされた場合の
「条件飛越し」プロセツサ命令の例を表わす。
第6図に部分的に示されている先行命令N−1
は、これも第6図に部分的に示されている後続
の命令N+1と同じように、非分岐型命令を表
わす。第6図の最上部の行のサイクル番号によ
つて示されているように、命令Nの実行には12
のマイクロワード・サイクルを必要とし、従つ
て12のマイクロワードが用いられる。 第4A図および第4B図のすぐれたマイクロ
ワード生成機構には命令レジスタ17にある
各々のプロセツサ命令に応答する初期PLA機
構が含まれており、プロセツサ命令の実行に必
要な初期マイクロワードを与える。この初期
PLA機構には第1サイクルPLA60と第2サ
イクルPLA61が含まれている。第1サイク
ルPLA60は各々のプロセツサ命令の実行に
必要な最初のマイクロワードだけを生成する。
このマイクロワードは「1P」マイクロワード
として識別され、第6図の3行目、すなわち
「アクテイブMW(マイクロワード)」行に表示
されているように、命令NおよびN+1のマイ
クロワード・シーケンスの最初のマイクロワー
ドである。 第2サイクルPLA61は各々のプロセツサ
命令に必要な2番目のマイクロワードだけを生
成する。このマイクロワードは「2P」マイク
ロワードとして識別される。 また、第4A図および第4B図の制御ユニツ
トには、各々の非分岐型プロセツサ命令に応答
する複数の追加のPLA機構が含まれており、
非分岐型命令を実行するのに必要なマイクロワ
ードの残余の部分を与える。これらの追加の
PLA機構にはAデコードPLA62、Bデコー
ドPLA63、CデコードPLA64およびDデ
コードPLA65が含まれている。それらの出
力マイクロワードはそれぞれAP、BP、CPお
よびDPマイクロワードとして識別される。こ
れらのA、B、CおよびDデコードPLA62
〜65からのマイクロワードは反復するA−B
−C−Dシーケンスで用いられ、第1図のデー
タ・プロセツサを制御する。従つて、任意の与
えられた非分岐型プロセツサ命令のマイクロワ
ード・シーケンスは1−2−A−B−C−D−
A−B−C−D……である。ただし、1および
2は第1および第2サイクルPLA60および
61によつて生成されたマイクロワードを表わ
す。 第1および第2サイクルPLA60および6
1は比較的小さく且つ高速動作するPLAであ
つて、命令レジスタ17にあるプロセツサ命令
によつて直接駆動される。これによつて各々の
命令のための最初の2つのマイクロワードは極
めて迅速に生成される。これによつて他の
PLA62〜65が、所与の非分岐型プロセツ
サ命令のための残りのマイクロワードの生成を
開始するのに、より多くの時間が与えられる。 デコードPLA62〜65の第1の入力セツ
トはエンコードPLA66およびレジスタ67
によつて並行して駆動される。エンコード
PLA66はその出力バス68上に複数ビツト
の命令識別信号を生成し、その識別信号はバス
35上のプロセツサ命令よりも少ないビツト数
を有する。それにもかかわらず、この識別信号
は実行される命令を一意的に識別する。 デコードPLA62〜65の第2の入力セツ
トはシーケンス・カウンタ69によつて生成さ
れた複数ビツトのカウント信号によつて駆動さ
れる。最後の2つのデコードPLA64および
65に対するシーケンス・カウント信号はレジ
スタ70から供給される。これは、異なるデコ
ードPLA62〜65のオーバラツプされた動
作を考慮してタイミングを調節するために行な
われる。 本実施例において、第1および第2サイクル
PLA60および61ならびにデコードPLA6
2〜65はクロツク・パルスによつて制御され
るいわゆるダイナミツクPLAである。ここで
は、各々のPLAはオーバラツプしない4個の
クロツク・パルスC1,C2,C3およびC4
のセツトを使用して、各々の有効出力ビツト・
パターンを生成する。第6図で「ダイナミツク
PLA内部タイミング」のパターンによつて示
されているように、連続する各ダイナミツク
PLA60〜65のためのC1−C2−C3−C4クロ
ツク・パルス・セツトは1マイクロワード・サ
イクルだけ互いにオフセツトされ、それによつ
て2番目のPLA61に対するC1パルスは、最
初のPLA60に対するC2パルスに一致し、3
番目のPLA62に対するC1パルスは、2番目
のPLA61に対するC2パルスに一致する。以
下同様である。このように、ダイナミツク
PLA60〜65の内部動作は時間的にオフセ
ツトされるがオーバラツプされる。各々のダイ
ナミツクPLAの出力はそのC4内部クロツクの
期間を通じて有効である。 ダイナミツクPLA60〜65に対するC1〜
C4内部クロツク・パルスはダイナミツクPLA
クロツク論理ユニツト71の「PLAクロツク」
出力から得られる。ダイナミツクPLAクロツ
ク論理ユニツト71の内部構造は、例えば特願
昭58−27128号にかなり詳細に説明されている。 エンコードPLA66もダイナミツクPLAで
よいが、本明細書では説明を簡略化するため、
スタテイツクPLAであるものとする。 第4A図および第4B図においてプロセツサ
10の動作を制御するマイクロワード応答制御
回路には制御レジスタおよびデコーダが2セツ
ト含まれている。「A」セツトはマスタ・スレ
ーブ制御レジスタ(A−L1制御レジスタ72
およびA−L2制御レジスタ73)ならびにA
デコーダ74を含み、「B」セツトはマスタ・
スレーブ制御レジスタ(B−L1制御レジスタ
75およびB−L2制御レジスタ76)ならび
にBデコーダ77を含む。制御レジスタ72お
よび73のローデイングはそれぞれクロツク発
生器15aからのAおよびBクロツク・パルス
によつて制御されるが、制御レジスタ75およ
び76のローデイングはそれぞれBおよびAク
ロツク・パルスによつて制御される。こうし
て、各々のセツトの最初のレジスタ72および
75は交番的にロードされる。 AおよびBデコーダ74および77の出力を
インタリーブするために、Aデコーダ74に対
してはAゲート装置78が設けられ、Bデコー
ダ77に対してはBゲート装置79が設けられ
ている。Aゲート装置78はAクロツク・パル
スによつて信号を通過するように付勢される
が、Bゲート79はBクロツク・パルスによつ
て信号を通過するように付勢される。このよう
にして、Aデコーダ74およびBデコーダ77
はA−B−A−Bと交互に制御点信号を与え
る。Aデコーダ74からの制御点信号線の多く
はBデコーダ77からの対応する制御点信号線
とOR結合され、それによつて、第1図のデー
タ・プロセツサにおけるユニツトの多くは制御
点信号をAまたはBクロツク相の間に受取るこ
とができる。 第1サイクルPLA60、AデコードPLA6
2およびCデコードPLA64はマイクロワー
ドを1回に1つずつA−L1制御レジスタ72
に供給する。各々のマイクロワードは次々にA
−L2制御レジスタ73に転送されてAデコー
ダ74を駆動し、出力制御点信号を生成する。
この信号はAクロツク相の間にAゲート装置7
8によつて送り出される。第2サイクルPLA
61、BデコードPLA63およびDデコード
PLA65も同様に、ただし、時間的にインタ
リーブされて、マイクロワードを1回に1つづ
つB−L1制御レジスタ75に供給する。各々
のマイクロワードは次々にB−L2制御レジス
タ76に転送されてBデコーダ77を駆動し、
出力制御点信号を生成する。この信号はBクロ
ツク相の間にBゲート装置79によつて送り出
される。 各々のマイクロワードは複数のビツトの2進
ワードであつて、いくつかの制御フイールドに
細分されている。これらの制御フイールドの1
つは「PLA出力ストローブ」フイールドと呼
ばれ、それがデコーダに与えられると、いわゆ
る「PLA出力ストローブ」を生成するのに用
いられる。いくつかの制御点信号線の中の特定
の線が活性化される。アクテイブなPLA出力
ストローブは次のマイクロワードを関連制御レ
ジスタに供給することになつているPLAを選
択する。Aデコーダ74からのPLA出力スト
ローブはPLA60,62および64の中から
A−L1制御レジスタ72に次のマイクロワー
ドを供給するPLAを選択する。第1サイクル
PLA60は任意の与えられたプロセツサ命令
に必要な最初のマイクロワードだけを供給する
ように選択される。その後、A−L1制御レジ
スタ72に対するマイクロワードはデコード
PLA62および64から交互に取出される。
Aデコーダ74によつて生成されたPLA出力
ストローブはS1,SAおよびSCとして識別さ
れ、それぞれPLA出力ゲート群、すなわちゲ
ート装置80,81および82の中の関連する
ゲート装置に供給される。これらのゲート装置
80〜82の各々は特定のPLA出力ストロー
ブによつて同時に付勢される複数のゲートから
成る。付勢された特定のゲート装置は関連する
PLAの出力に現われているマイクロワードを
共通の複数導線からなるPLA出力バス83を
介してA−L1制御レジスタ72の入力に供給
する。 同様に、Bデコーダ77によつて生成された
PLA出力ストローブS2,SBおよびSDは
PLA61,63および65の中からB−L1制
御レジスタ75に次のマイクロワードを供給す
るPLAを選択する。これらのPLA出力ストロ
ーブS2,SBおよびSDはそれぞれ、PLA出力
ゲート群、すなわちゲート装置84,85およ
び86の中の関連するゲート装置に供給され
る。第2サイクルPLA61へのS2ストロー
ブ線は任意の与えられたプロセツサ命令に対す
る2番目のマイクロワードだけを与えるように
活性化される。その後、B−L1制御レジスタ
75への残余のマイクロワードはデコード
PLA63および65から交互に取出される。
これらのマイクロワードは共通の複数導線から
なるPLA出力バス87を介してB−L1制御レ
ジスタ75に供給される。 前述のような種々のマイクロワードの多重化
の結果、各々の非分岐型プロセツサ命令に対
し、種々のPLA60〜65から得られるマイ
クロワードのシーケンスは 1、2、A、B、C、D、A、B、C、D、
A、B、…… のようになる。このシーケンス中の数字および
文字はソースとなるPLAを表わす。第1およ
び第2サイクルPLA60および61は第1お
よび第2のマイクロワードだけを供給する。任
意の与えられた非分岐型プロセツサ命令に対す
る残りのマイクロワードはその特定のプロセツ
サ命令の実行に必要な数だけデコードPLA6
2〜65からA、B、C、Dの順に取出され
る。第1および第2サイクルPLA60および
61は分岐型プロセツサ命令の場合にも用いら
れる。 Bデコーダ77からの制御点信号パルスS0
によつてエンコードPLA出力レジスタ67が
ロードされ、シーケンス・カウンタ69および
それに関連するレジスタ70が0にリセツトさ
れる。このS0パルスは現在実行中のプロセツ
サ命令に対するマイクロワード・シーケンスの
末尾から3番目のマイクロワードによつて生成
される。シーケンス・カウンタ69はPLA出
力ストローブ・パルスSBによつてA、B、C、
およびDのマイクロワードのセツトごとに1回
増分される。シーケンス・カウンタ69のバツ
フアとして働くレジスタ70はPLA出力スト
ローブ・パルスSCによつてA、B、Cおよび
Dのマイクロワードのセツトごとに1回ロード
される。 ダイナミツクPLAクロツク論理ユニツト7
1はS0制御点信号、種々のPLA出力ストロー
ブS1,S2,SA,AB,SCおよびSDならび
にクロツク発生器15aからのAおよびBクロ
ツク・パルスによつて駆動される。前記特許出
願の明細書に記述されているように、これらの
種々のパルスは、ダイナミツクPLA60〜6
5の各々に対し適切なC1〜C4内部クロツク・
パルスのセツトを生成するのに必要かつ十分な
情報を有する。 分岐型プロセツサ命令を実行するため、第4
A図および第4B図の制御ユニツトには更に、
各々の分岐型プロセツサ命令に応答する分岐判
断PLA88が含まれており、バス37を介し
てステータス・レジスタ36から供給された
ECONZ条件標識信号の少なくとも1つを検査
する。分岐型命令の条件コード・フイールドに
よつて指定された条件が満たされた場合、肯定
信号が分岐判断PLA88の出力線89上に発
生される。指定された条件が満たされない場合
には、出力線89上の信号レベルは否定的判断
を表示する。 分岐型命令機構には更に、出力線89上の肯
定判断信号に応答する分岐コードPLA機構が
含まれており、肯定判断信号を生成した分岐型
命令を実行するのに必要な残りのマイクロワー
ドを供給する。この分岐コードPLA機構には
分岐コードPLA90、シーケンス・カウンタ
91およびバツフア・レジスタ92が含まれて
いる。バツフア・レジスタ92は分岐判断
PLA88から出力線89を介して判断信号を
受取り、また実行される分岐型命令の特定のタ
イプを識別するのに十分な数の命令レジスタ・
ビツトを受取る。バツフア・レジスタ92の内
容と、シーケンス・カウンタ91によつて生成
された複数ビツトのカウント信号とに応答し
て、分岐コードPLA90はそのとき命令レジ
スタ17に存在する分岐型命令を実行するのに
必要な残りのマイクロワードを生成する。各々
の分岐型命令に対する最初の2つのマイクロワ
ードは第1および第2サイクルPLA60およ
び61によつて与えられる。 本実施例において、分岐コードPLA90は
実際には1回に2つのマイクロワードを生成す
る。その1つは「JA」マイクロワードと呼ば
れてAクロツク相の間に使用され、他の1つは
「JB」マイクロワードと呼ばれて次の後続する
Bクロツク相の間に使用される。JBマイクロ
ワードの適切な時間遅延はそれをバツフア・レ
ジスタ94にロードすることによつて得られ
る。ゲート装置95および96はそれぞれ、A
−L1制御レジスタ72およびB−L1制御レジ
スタ75へのJAおよびJBマイクロワードの供
給を制御する。Aデコーダ74によつて生成さ
れたPLA出力ストローブ・パルスSJAによつ
てAクロツク相の間、JAマイクロワードのゲ
ート装置95が付勢され、JBマイクロワード
のバツフア・レジスタ94がロードされる。B
デコーダ77によつて生成されたPLA出力ス
トローブ・パルスSJBによつてBクロツク相の
間、JBマイクロワードのゲート装置96が付
勢される。 本実施例において、分岐判断PLA88およ
び分岐コードPLA90の各々は比較的小さい
スタテイツクPLAである。各々のPLAは比較
的高速であり且つ非常に短かいアクセス・タイ
ムを有する。従つて、ダイナミツクPLAであ
り且つ非分岐型命令のマイクロワードを生成す
るデコードPLA62〜65と比較して、分岐
コードPLA90は極めて迅速にマイクロワー
ドを生成することができる。 第6図において、命令Nは分岐型命令を表わ
す。すべての命令について云えることである
が、先行する命令の最後の2つのマイクロワー
ドはそれぞれ、第1および第2サイクルPLA
60および61に対するS1およびS2ストロ
ーブ・パルスを生成する。先行する命令N−1
の間のある初期の時点で、次の命令、すなわち
分岐命令Nが命令レジスタ17にロードされて
いる。従つて、S1およびS2出力ストローブ
の発生時点までに、第1および第2サイクル
PLA60および61は、次の命令Nが分岐型
命令であるという事実を認識して、分岐型命令
に対する適切な第1および第2のマイクロワー
ドを生成できるようになる。同時に、分岐判断
PLA88もこの分岐型命令の条件フイールド
に応答し、ステータス・レジスタ36からの
ECONZ標識の中の少なくとも1つの適切な標
識を検査して、その出力線89上に適切な判断
信号を生成できるようになつている 命令N−1のサイクル17におけるS1スト
ローブ・パルスの発生によつて次の3つの動作
が行なわれる。第1に、第1サイクルPLA出
力のゲート装置80が付勢され、分岐型命令を
実行するための最初のマイクロワードがA−
L1制御レジスタ72に供給される。第2に、
バツフア・レジスタ92がロードされ、分岐コ
ードPLA90を駆動する。第3に、シーケン
ス・カウンタ91が0カウント状態にリセツト
される。これは分岐コードPLAのアクセスを
開始する。第6図の「BCP(分岐コードPLA)
アクセス」行に示すように、分岐コードPLA
90のアクセス(ACC)は最後のマイクロワ
ード・サイクル、すなわち命令N−1のサイク
ル18の間に行なわれる。分岐コードPLA9
0のアクセス時間は単一マイクロワード・サイ
クルの期間よりもいくらか短かい。従つて、命
令Nの最初のマイクロワード・サイクルにおい
て、分岐コードPLA90は有効な出力を発生
している。これは第6図の「BCP出力」行に
「VALID」として表示されている。 所で、第1サイクルPLA60からのマイク
ロワードはA−L2制御レジスタ73にロード
されており、これは命令N−1のサイクル18
の間に生じる。従つて、分岐命令Nのサイクル
1の間にAゲート装置78が付勢されると、A
ゲート装置78の出力に現れる制御点信号をA
デコーダ74に生成させるのは、第1サイクル
PLA60からのマイクロワード1Pである。
これらの制御点信号の1つはSJAストローブ・
パルスであつて、このパルスは分岐コード
PLA90からA−L1制御レジスタ72に、最
初のJAマイクロワードを供給する様に分岐コ
ードPLA出力のゲート装置95を付勢する。
この同じSJAパルスはJBマイクロワードをバ
ツフア・レジスタ94にロードする。 この命令Nの同じサイクル1の間、第2サイ
クルPLA61からのマイクロワード2PはB
−L2制御レジスタ76にロードされる。この
マイクロワード2PはBゲート装置79が付勢
されると後続するBクロツク相の間アクテイブ
になる。これは命令Nのサイクル2の間に生じ
る。このマイクロワード2PはSJBストロー
ブ・パルスを生成し、このパルスはJBバツフ
ア・レジスタ出力のゲート装置96を付勢し、
最初のJBマイクロワードをB−L1制御レジス
タ75に転送する。また、このSJBストロー
ブ・パルスによつてシーケンス・カウンタ91
は増分され、分岐コードPLA90は次のJAお
よびJBマイクロワードの対のアクセスを開始
する。 命令Nのサイクル3の間に最初のJAマイク
ロワードがアクテイブになると、もう1つの
SJAストローブ・パルスが生成され、第2の
JAマイクロワードをA−L1制御レジスタ72
に転送する。同様に、命令Nのサイクル4の間
に最初のJBマイクロワードがアクテイブにな
ると、もう1つのSJBストローブ・パルスが生
成され、第2のJBマイクロワードをB−L1制
御レジスタ75に転送する。このように、JA
およびJBマイクロワードは命令Nのサイクル
11に達するまで追加のJAおよびJBマイクロ
ワードを選択し続ける。サイクル11はこの特
定の例では最後のサイクルの前のサイクルであ
るから、この時点でアクテイブになるJAマイ
クロワードのストローブ・フイールドは、代り
にS1ストローブ・パルスを生成するようにコ
ード化され、第1サイクルPLA60を選択す
る。同様に、命令Nのサイクル12の間にアク
テイブになるJBマイクロワードはS2ストロー
ブ・パルスを生成するようにコード化され、第
2サイクルPLA61を選択する。このように
して、次のプロセツサ命令N+1のためのマイ
クロワード生成動作が開始される。 命令Nのサイクル10の間アクテイブである
JBマイクロワードは、SJBストローブ・パル
スを生成するのに加えて、S0再始動パルスを
も生成する。このS0再始動パルスは次の命令
N+1に備えて非分岐命令機構、特にエンコー
ドPLA出力のレジスタ67、シーケンス・カ
ウンタ69およびその出力のレジスタ70に供
給される。 第4A図および第4B図に示された制御ユニ
ツト14cの回路のすべては、なるべく単一の
チツプ上に形成されるのがよい。分岐型命令に
必要なマイクロワードの大部分を生成する分岐
判断PLA88および分岐コードPLA90の使
用は、さもなければデコードPLA62〜65
に必要とされるチツプのスペースを減小する。
このデコードPLA62〜65のチツプ・スペ
ースの節約は、分岐判断PLA88および分岐
コードPLA90に必要な追加チツプ・スペー
スよりも大きい。従つて、この別個の分岐判
断/分岐コード機構は、より速い分岐動作を与
えるほか、チツプ・スペースの正味の必要量を
減小させ、それによつて適度な大きさの単一チ
ツプ上における制御ユニツトの組立を容易にす
る。 E 分岐命令機構(第7図) 第7図はIBMシリーズ/1のプロセツサを
想定して第4A図および第4B図の分岐命令機
構を具体化した例を示している。これに関連し
て、第8図および第9図はIBMシリーズ/1
のアーキテクチヤで使用される飛越し命令およ
び分岐命令の命令フオーマツトを示す。最初の
2つのマイクロワードを除き、これらの飛越し
命令および分岐命令を実行するのに必要なマイ
クロワード・シーケンスは第7図の機構によつ
て与えられる。 第8図の飛越し命令は1ワード(16ビツト)
命令であつて、条件フイールド(ビツト5〜
7)によつて指定された条件が満たされた場
合、データ・プロセツサはシーケンス外の命令
に飛越す。この条件フイールドのコード化は第
1表に指定されたコード値に従つて行なわれ
る。飛越し先のシーケンスを外れたプログラム
命令のアドレスは、ワード変位フイールド(ビ
ツト8〜15)の値を、命令アドレス・カウンタ
22の更新された値に加えることによつて決定
される。言い換えれば、飛越し命令取出し後、
命令アドレス・カウンタ22を、それにワード
変位値を加える前に増分することが必要であ
る。シリーズ/1のアーキテクチヤにおいて
は、命令アドレス・カウンタ22のアドレス値
はバイト単位で表わされる。従つて、次の16ビ
ツト・ワードの開始アドレスを得るには命令ア
ドレス・カウンタ22を2だけ増分することが
必要である。また、命令のワード本位のフイー
ルドの数値は、それを2倍にしてバイト変位値
に変換してから、命令アドレス・カウンタ22
の更新されたアドレス値に加えることが必要で
ある。 第9図の分岐命令は実際には2ワード命令で
あるが、図面を簡略化するため第2ワードは図
示されていない。この第2ワードは1つのアド
レス値を含む。第1ワード(第9図に示された
ワード)の条件フイールド(ビツト5〜7)は
検査される条件を表示する。このフイールドで
指定しうるコード値は第1表に示されている。
指定された条件が満たされた場合、分岐先の主
記憶アドレスは完全に新しいアドレス値を命令
アドレス・カウンタ22に入れることによつて
決定される。この新しいアドレスは有効分岐ア
ドレスと呼ばれる。この有効分岐アドレスを生
成する方法について次に説明する。最初のステ
ツプとして、分岐命令の第2ワード(図示せ
ず)に含まれたアドレス値が分岐命令のR2フ
イールドによつて指定された汎用レジスタの内
容に加えられ、主記憶アドレスを形成する。こ
の汎用レジスタは第1図の局所記憶ユニツト2
5に所在している。分岐命令の第2ワードのア
ドレス値は、ワードからバイトへの変換を必要
としないようにバイト単位になつている。分岐
命令のR2フイールドが0に等しい場合、どの
レジスタもアドレス生成に寄与しない。その場
合には、第2ワードのアドレス値は実際に所望
の主記憶アドレスである。 有効分岐アドレス生成の次のステツプとし
て、分岐命令の第1ワードのビツト11の値が検
査され、アドレス指定が直接か間接かを決定す
る。ビツト11の値が0の場合、最初のステツプ
の結果は直接アドレスであり、命令アドレス・
カウンタ22にロードされる。ビツト11の値が
1の場合には、最初のステツプの結果は間接ア
ドレスである。この場合、間接アドレスによつ
て指定された主記憶位置の内容が命令アドレ
ス・カウンタ22にロードされる。 次に、第7図に示された分岐判断PLA88
の入力について説明する。LSRビツト0乃至
LSRビツト4の入力線はそれぞれ、ステータ
ス・レジスタ36からE、C、O、NおよびZ
の条件標識ビツトを供給する。IR(命令レジス
タ)ビツト入力は命令レジスタ17における対
応する番号のビツト位置から得られる。これら
のビツト番号は第8図および第9図に示された
ビツト番号に対応する。第7図に示されている
ように、IRビツト1、4〜7および13〜15は
分岐判断PLA88が異なるタイプの飛越し命
令および分岐命令に正しく応答しうるのに必要
である。IRビツト5〜7は命令の条件コー
ド・フイールドを表わす。IRビツト1は分岐
判断PLA88が飛越し命令と分岐命令を見分
けるのを可能にする。IRビツト1は飛越し命
令に対しては0の値を有し、分岐命令に対して
は1の値を有する。IRビツト4は正のタイプ
と負のタイプの飛越し命令を識別するのに用い
られる。IRビツト4の値が0の場合は、命令
は条件飛越し命令である。IRビツト4の値が
1の場合は、命令は条件飛越し−否定命令であ
る。このように、飛越し命令の場合、IRビツ
ト4は第1表の条件タイプの欄に対応する。 IRビツト13〜15は分岐命令の場合に必要で
ある。それらは機能フイールドにおけるビツト
を表わし、実行される特定のタイプの分岐命令
を完全に識別するために命令コード(OPコー
ド)を補足するのに必要である。 バツフア・レジスタ92は、出力線89上の
分岐判断ビツトの外に、IRビツト1および11
を受取る。既に説明したように、IRビツト1
は飛越し命令と分岐命令とを見分ける。IRビ
ツト11は分岐命令に用いられ、第9図に関連し
て説明したように、直接および間接のアドレス
指定モードを識別する。バツフア・レジスタ9
2の3つのビツトは分岐コードPLA90に供
給され、そこに存在する4種類のマイクロワー
ド・シーケンスの中の1つを選択する。出力線
89上の分岐判断信号が0の場合、「非分岐」
マイクロワード・シーケンスが選択される。こ
の場合、飛越しまたは分岐は行なわれず、デー
タ・プロセツサは単に次の順次プログラム命令
を取出す。 出力線89上の判断信号が肯定的でIRビツ
ト1が0の場合、飛越し命令のマイクロワー
ド・シーケンスが分岐コードPLA90におい
て選択される。出力線89上の判断信号および
IRビツト1がどちらも1で、IRビツト11が0
の場合、直接アドレス指定による分岐命令を実
行するマイクロワード・シーケンスが選択され
る。バツフア・レジスタ92への3つのビツト
がすべて1の値を有する場合には、間接アドレ
ス指定による分岐命令を実行するマイクロワー
ド・シーケンスが分岐コードPLA90におい
て選択される。 どのマイクロワード・シーケンスが選択され
ても、シーケンス・カウンタ91からの2進カ
ウント信号によつて分岐コードPLA90は選
択されたマイクロワード・シーケンスの個々の
マイクロワードをアクセスする。前に説明した
ように、1回に2つのマイクロワードが分岐コ
ードPLA90によつて生成される。従つて、
シーケンス・カウンタ91は3ビツト・カウン
タであるので、これは任意の与えられたマイク
ロワード・シーケンスに対して最大16個までの
マイクロワードを与えることができることを意
味する。更に、第1および第2サイクルPLA
60および61は各シーケンスにおける最初の
2つのマイクロワードを与える。従つて、必要
ならば、所与のシーケンスに対して合計18個の
マイクロワードが使用可能である。第6図に示
された命令Nのシーケンスは12個のマイクロワ
ードを用いる。 第7図の分岐命令機構の入力はゲートされな
いから、この分岐命令機構はどのような命令が
命令レジスタ17にロードされてもそれに対し
て反応する。しかしながら、非分岐型命令の場
合、分岐コード出力のゲート装置95および9
6は活性化されず、従つて、間違つたマイクロ
ワードがA−L1制御レジスタ72およびB−
L1制御レジスタ75に供給されることはない。 前に述べたように、第6図の命令Nの例は条
件が満たされた場合の条件飛越し命令の場合に
関するものである。この命令Nのマイクロワー
ド・シーケンスに対して第1図のプロセツサ1
0で生じる主要な動作は第2表に示されてい
る。
【表】
【表】 マイクロワード1で生じる命令レジスタ17
(ビツト8〜15)からAレジスタ18(ビツト
7〜14)へのローデイングは飛越し命令のワー
ド変位フイールドをAレジスタ18に入れ、ワ
ード変位フイールドを1ビツト位置だけ左シフ
トする。これはワード変位の値を2倍にしてバ
イト変位値に変換するためである。 マイクロワード8〜12のサイクルはプロセ
ツサのデータ・フロー・ユニツト11が有用な
仕事を実行していない遊休間隔を表わす。この
遊休間隔はマイクロワード7の間に命令レジス
タ17にロードされる新しい命令に正しく反応
する時間をダイナミツクPLA60〜65に与
えるのに必要である。その理由は第6図におい
て命令Nのマイクロワード8〜12のダイナミ
ツクPLA内部タイミングを参照すれば理解す
ることができる。言い換えれば、この特定の設
計において、次の命令は現在の命令のマイクロ
ワード・シーケンスの末尾から6番目のマイク
ロワードよりも遅れずに命令レジスタ17にロ
ードされなければならない。あるタイプのプロ
セツサ命令の場合、このようなシーケンス終結
部分において、データ・フロー・ユニツト11
によつて実行できる有用な仕事があるが、他の
命令の場合には、前記のように、データ・フロ
ー・ユニツト11において仕事は行なわれな
い。
【図面の簡単な説明】
第1図は本発明を適用しうるデータ・プロセツ
サを示すプロツク図、第2図は制御ユニツト14
の第1実施例を示すブロツク図、第3図は制御ユ
ニツト14の第2実施例を示すブロツク図、第4
図は第4A図と第4B図の配置関係を示す図、第
4A図および第4B図は制御ユニツト14の第3
実施例を示すブロツク図、第5図はクロツク発生
器15AからのAクロツクおよびBクロツクのタ
イミング関係を示す波形図、第6図は制御ユニツ
ト14の第3実施例の動作例を示すタイミング
図、第7図は第4A図の分岐判断および分岐コー
ド部分への入力を具体的に示すブロツク図、第8
図は飛越し命令のフオーマツトを示す図、第9図
は分岐命令のフオーマツトを示す図である。

Claims (1)

  1. 【特許請求の範囲】 1 各システム命令の実行を制御するのにマイク
    ロワードのシーケンスが用いられるマイクロプロ
    グラム式デイジタル・システムにおいて、 前記システム命令に応答して、非分岐型システ
    ム命令に対するマイクロワード・シーケンスを生
    成する非分岐コード・プログラマブル論理アレイ
    装置と、 前記システムにおける算術論理演算の結果が所
    定の条件を満足するかどうかを示す標識信号を供
    給する条件標識回路と、 条件付き分岐型システム命令の条件フイールド
    に応答して、適切な前記標識信号を検査し、指定
    された条件が満足される場合には肯定的な判断信
    号を生成する条件検査プログラマブル論理アレイ
    装置と、 前記肯定的な判断信号に応答して、分岐型シス
    テム命令に対するマイクロワード・シーケンスを
    生成する分岐コード・プログラマブル論理アレイ
    装置とを含むことを特徴とするマイクロワード生
    成機構。
JP20605883A 1982-12-23 1983-11-04 マイクロワ−ド生成機構 Granted JPS6089249A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45255482A 1982-12-23 1982-12-23
US452554 1982-12-23

Publications (2)

Publication Number Publication Date
JPS6089249A JPS6089249A (ja) 1985-05-20
JPS6323585B2 true JPS6323585B2 (ja) 1988-05-17

Family

ID=23796930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20605883A Granted JPS6089249A (ja) 1982-12-23 1983-11-04 マイクロワ−ド生成機構

Country Status (4)

Country Link
EP (1) EP0114194B1 (ja)
JP (1) JPS6089249A (ja)
CA (1) CA1199415A (ja)
DE (1) DE3374092D1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831573A (en) * 1987-03-06 1989-05-16 Altera Corporation Programmable integrated circuit micro-sequencer device
JPH01271838A (ja) * 1988-04-22 1989-10-30 Fujitsu Ltd マイクロプログラム分岐方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51852A (ja) * 1974-06-06 1976-01-07 Nat Semiconductor Corp
JPS54105442A (en) * 1978-02-06 1979-08-18 Mitsubishi Electric Corp Microprogram control system
JPS56152047A (en) * 1980-04-24 1981-11-25 Mitsubishi Electric Corp Microprogram controller

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800293A (en) * 1972-12-26 1974-03-26 Ibm Microprogram control subsystem

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51852A (ja) * 1974-06-06 1976-01-07 Nat Semiconductor Corp
JPS54105442A (en) * 1978-02-06 1979-08-18 Mitsubishi Electric Corp Microprogram control system
JPS56152047A (en) * 1980-04-24 1981-11-25 Mitsubishi Electric Corp Microprogram controller

Also Published As

Publication number Publication date
DE3374092D1 (en) 1987-11-19
EP0114194A3 (en) 1984-09-12
EP0114194A2 (en) 1984-08-01
CA1199415A (en) 1986-01-14
EP0114194B1 (en) 1987-10-14
JPS6089249A (ja) 1985-05-20

Similar Documents

Publication Publication Date Title
US4631663A (en) Macroinstruction execution in a microprogram-controlled processor
US4156925A (en) Overlapped and interleaved control store with address modifiers
US3753236A (en) Microprogrammable peripheral controller
US4870562A (en) Microcomputer capable of accessing internal memory at a desired variable access time
EP0114191B1 (en) Microword control system utilizing overlapped programmable logic arrays
JPS58144261A (ja) デ−タ・プロセツサのマイクロワ−ド制御機構
JPS61248135A (ja) パイプライン式プロセツサ及びその制御方法
US4446517A (en) Microprogram memory with page addressing and address decode in memory
US3996566A (en) Shift and rotate circuit for a data processor
JPS62197830A (ja) デ−タ処理システム
US4370729A (en) Microprogram sequencer
JPH0124655Y2 (ja)
US4348720A (en) Microcomputer arranged for direct memory access
JPH02226423A (ja) マイクロコード制御装置
US4947369A (en) Microword generation mechanism utilizing a separate branch decision programmable logic array
KR100374401B1 (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
US4604684A (en) Digital computer having unique instruction decoding logic
US5155826A (en) Memory paging method and apparatus
EP0279953A2 (en) Computer system having mixed macrocode and microcode instruction execution
JPS6323585B2 (ja)
US4740892A (en) Microcomputer having peripheral functions
US5179716A (en) Programmable expandable controller with flexible I/O
JP2680828B2 (ja) ディジタル装置
US4931989A (en) Microword generation mechanism utilizing a separate programmable logic array for first microwords
JPH02183830A (ja) マイクロプログラム変換機構を有するコンピュータ