JPS60241132A - マイクロプログラムシーケンスコントローラ - Google Patents

マイクロプログラムシーケンスコントローラ

Info

Publication number
JPS60241132A
JPS60241132A JP60097693A JP9769385A JPS60241132A JP S60241132 A JPS60241132 A JP S60241132A JP 60097693 A JP60097693 A JP 60097693A JP 9769385 A JP9769385 A JP 9769385A JP S60241132 A JPS60241132 A JP S60241132A
Authority
JP
Japan
Prior art keywords
instruction
signal
address
instructions
controller
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.)
Granted
Application number
JP60097693A
Other languages
English (en)
Other versions
JPH0814793B2 (ja
Inventor
オーレ・ヘンリツク・モーラー
サンジヤイ・アイエール
ポール・ポー・ロイ・チユー
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPS60241132A publication Critical patent/JPS60241132A/ja
Publication of JPH0814793B2 publication Critical patent/JPH0814793B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30061Multi-way branch instructions, e.g. CASE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Executing Machine-Instructions (AREA)
  • Programmable Controllers (AREA)
  • Selective Calling Equipment (AREA)
  • Control By Computers (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
この発明は一般的には、100ナノ秒よりもはるかに短
いクロック周期を有し、16−ピッドアドレスを有する
マイクロプログラムメモリにストアされたマイクロ命令
の実行のシーケンスを制御するマイクロス[夏セッサに
おいて用いるためのワンチップの割込み可能なマイクロ
プログラムコントローラに関し、より特定的には、組立
てられたマイクロプログラミング構成の使用と、ソフト
ウェアおよびハードウェアのデバッグの能力の有効性を
通じて容易にマイクロプログラムされ、さらにマイクロ
命令を急速かつ有効に実行するマイクロプログラムシー
ケンスコントローラに関する。 発明の背景 典型的には、マイクロプログラムされたシステムは、2
つのサブセクション、すなわち実行されるべき命令の順
序およびデコーディングを管理する制御セクションと、
データ上の命令によって要求されるオペレーションを実
行するデータ処理セクションとに分割され得る構成にお
いてブロックを構成するために用いられる種々の大規扮
集積回路(VLSI)チップから構成されている。この
制御セクションは通常、マイクロプログラムアドレスを
発生するマイクロプログラムシーケンスコン1〜〇−ラ
と、マイクロ命令を含むマイクロプログラムメモリとを
有している。各マイクロ命令は、データ処理セクション
内で各エレメントを制御する複数のビットを含んでいる
。 従来のマイク[lプログラムシーケンスコントローラは
、比較的制限されたサイズのマイクロプログラムメモリ
をアドレスすることが可能であった。 コントローラによってアクセス可能なメモリのサイズを
増大するための1つの試みは、いくつかのコントローラ
を並列にして必要なアドレス能力を1qることである。 これは、典型的には、“ビットまたはバイトスライス″
方法と呼ばれている。しかしながら、この方法は、コン
トローラチップの端子のビンの大規模な並列相互接続を
伴い、これはコントローラのサイクル時間を増大させ、
より大きなパッケージの数とより^い製造および応用の
費用とを伴い、さらにマイクロプログラムされたシステ
ムのためのより大きな物理的スペースを必要とする。さ
らに、各コントローラチップ上に存在するマイクロ命令
デコード機能のような、一定のワンチップ機能は不必要
に重複されている。 従来のマイクロプログラムシーケンスコントローラの他
の制限は、後入れ先出しスタックが実行される方法であ
る。1つの試みにおいて、スタックの内容のトップの一
時的な記憶のために単独のレジスタが用いられ、このた
め、1つの命令サイクル期間中にPLJSHが実行され
得る。このレジスタは単に、スタックを実現するRAM
への書込アドレス信号を安定化させる必要性と、書込み
がデータプロセッサ内の素子のステータスのテストを条
件としているという事実とから設けられた。 アドレス信号が安定化するために要する時間と、条件信
号を決定するために要する時間との合J1が、命令実行
に専用される命令サイクルの通常50%である時間より
も長(゛)ので、レジスタは、スタックを実現するRA
Mにワードが転送され得るときに次の命令サイクルまで
ワードを保持するために用いられた。 さらに、この試みは、第2の命令サイクル、すなわちR
AMへの実際の書込みまでの遅延を伴っており、これに
よって安定した書込アドレス信号を保証している。した
がって、この試みにおいて、過剰な、専用されたレジス
タが必要とされ、コントローラをより複雑かつ高価なも
のにしており、さらにスタック上へのPUSHは、2つ
の命令サイクルを必要としており、コントローラの実行
および究極的にはマイクロプログラムされたシステムの
実行を遅いものにしている。 先行技術のシーケンスコントローラによる条件付きブラ
ンチ命令の取扱いは、典型的には厳密にかつ連続的な態
様で進行された:第1に、テストされるべきデータプロ
セッサの特定のステータスが決定され、その後、第2に
、命令がデコードされかつもしもそれが条件付きタイプ
のものであることが判断されれば、そのときには、第3
に、テスト条件の結果に従ってブランチアドレスが決定
された。このようなm成子においては、最小の命令サイ
クル時間は、これらの3つのブ0セスの各々に対する時
間の合計であり、さらに、鶴型的にはテスト条件信号を
発生しかつ命令をデコードする時間は比較的長いので、
命令サイクルの大部分がテスト条件の結果を持つのに費
やされる。現実に、この厳密な連続的態様で命令が処理
されるどきに命令処理サイクルのほとんどに対してコン
トローラは゛°アイドリング″である。マイクロプログ
ラムコント0−ラ命令サイクル時間はマイクロブ0セツ
サの速度を直接決定するので、この゛アイドリング′°
ファクタは測定可能な態様でこの速度を低下させる。 従来のマイクロブ0グラムシーケンスコントローラは、
一定の低い順位のブランチアドレスビットを稜々の条件
付きステータスビットによるビットの集合と’ OR”
処理することによって修正させることによってマルチウ
ェイブランチングの制限された形態を実現した。マルチ
ウェイブランチングに対するこの試みは、変更されるべ
きではないどのアドレスビットも0とのみ’ OR”処
理されることを保証することをプログラマに要求し、し
たがってエラーの発生源となる。この試みはまた、ブラ
ンチが実行される条件として複合ステータスが用いられ
るときに各個々のステータス条件がテストされなければ
ならない2−ウェイブランチの列を伴っている。この態
様でマルチウェイブランチングを実現するプログラムは
、それらが必要とするよりも遅くかつより複雑である。 マイクロプログラムシーケンスコントO−ラにおいて従
来利用されたマイクロ命令の集合は、命令のタイプをコ
ーディングする命令ビットの割当゛てにおいて典型的に
は特殊フォーマットを用いる。 この集合はまた、特殊な、また構成されていないマイク
ロプログラムの書込みを促進する。たとえば、典型的な
命令の集合において、条件付きおよび無条件マイクロ命
令は混合され、さらに命令デコーディング回路は条件付
きとして命令のファーストカット(first −Cu
t >の分類を容易に行なうことができない。どの命令
も無条件であると判断される前にステータス条伯の比較
的時間のかかるテストが必要とされる一方で、さもなけ
ればステータステストに使用されるであろうそれらの命
令サイクルの一部の期間中に無条件命令によって一定の
付加的な機能が実行されるであろう。さらに、規則正し
いマイク[1プログラムの構成の欠如は、時間を消費す
るプログラムの展開とデバッグとをもたらし、その結果
生じたプログラムは組立てられたプログラムの自己のド
キユメンテーションに欠けている。 発明の概要 この発明は、64K (K=1024)命令を全部スト
アしているマイクロプログラムメモリに配置されたマイ
クロ命令を、コン)−ローラに急速かつ有効に処理させ
る命令デコード回路を含むマイクロプログラムシーケン
スコントローラに関する。 このコントローラは、テスト条件ステータスの計算と並
行して条件付きブランチアドレスの計算を提供する。こ
のコントローラは、マイクロプログラムの構成されたデ
ザインを許容するマイクロ命令を処理し、さらにコント
ローラおよびマイクロ命令の集合の双方は、構成された
マイクロプログラミングの展開およびデバッグを助ける
という特徴を使用している。全体のコントローラの構成
は、単一・の集積回路として製造され得るように段重さ
れている。 この発明によると、プログラムメモリにストアされたマ
イクロ命令の実行のシーケンスを制御しようとするアド
レスシーケンサとして用いられるンイクロプログラムコ
ントローラ(は、マイクロプログラムメモリ内で64K
に達するロケーションをアドレスさせる16−ビットの
回路素子が設けられている。このコン1〜ローラは、マ
イクロ命令アドレスの入力と、その結果もたらされる次
のマイクロ命令アドレスの出力とのための双方向性16
−ピッドデータバスを使用している。双方向データバス
はまた、オンチップ後入れ先出しスタックのトップ上の
値またはスタックポインタの値のような種々のオンチッ
プパラメータをアクセスするために用いられてもよく、
さらに割込アドレスを導入するために用いることもでき
る。補助的な16−ピッドデータバスは、第2のアドレ
ス人力軽路をコントローラに設けさせる。4つの4−ビ
ットデータ入力は、マイクロプログラムの制御下におい
て単一ステップのマルチウェイブランチングに対する“
マルチウェイ”置換ビットを与える。 この発明によるマルチウェイブランチングは、2−ウェ
イ条件付きブランチの列よりもはるかに速く実行するマ
イクロコードを発生ずる態様でビット置換を使用してい
る。さらに、マルチウェイブランチングの特徴は、従来
のマイクロプログラムシーケンスコントO−ラよりも速
くかつ費用のかからないハードウェアにおいて実現され
る。コントローラのデコード回路に関連して用いられる
マイクロ命令フォーマットは、マイクロ命令のタイプの
急速な検出を可能にしている。それゆえに、コントロー
ラは、条件付きブランチアドレスの計算と並行して進行
するようにステータス条件のテストを開始づることがで
きる。このコントローラは、一時的なストレージレジス
タの必要性を省きなおかつ単一の命令ザイクルにおいて
スタック上へのt) IJ S Hを実行するスタック
メンデナンス手法を用いでいろう この」ントローラに関連して用いられる64のマイクロ
命令の集合は、構成されたマイクロプログラミングを支
持するように設計されかつマイク1−1プログラムコン
トローラに、“CASE”。 “’REPEAT・・・LJNTIL”、“”DO・・
・WHll−E”、”FOR・・・DOWN To”命
令文、ネストされたループ、およびネストされた’IF
・・・T HE N ”命令文などのような組立てられ
た構成を与える。オンチップアドレスコンパレータは、
特定のアドレスに配置されたマイクロ命令を捉えさせま
たはマイクロプログラムのフローに関連する統計を集め
させる。この特徴はプログラムの設期およびデバッグを
強化させる。 この発明のコントローラに関連して用いられるマイクロ
命令フォーマットは、16のいわゆる“継続″マイクロ
命令の集合を最大限に利用し、このため、付加的な特殊
機能が、との゛継続″マイクロ命令の実行期間中にもコ
ン;−〇−ラによって実行され得る。 この発明のコントローラは、ユーザがコントローラの保
持又は割込みの特徴を必要としなければ、マイクロ命令
パイプライン化のどのレベルをも支持して処理速度を増
大することができる。このコントローラは、主/従の組
合わせにおいて並行して作動可能であり、エラーの検出
をもたらす。 この発明の特性および長所をより完全に理解するために
、添付された図面に関連して行なわれる以下の詳細な説
明が参照されるべきである。 好ましい実施例の説明 A、u 多くのプログラム可能なデジタル装置は、今日ではマイ
クロプログラミングを利用している。そのような装置に
おいて、装置の制御の大部分は、ゲートおよびフリップ
フロップの大規模なアレイよりもむしろリードオンリメ
モリ(ROM>を用いて実行される。この手法はしばし
ば、デジタル装置におけるパッケージの数を減少させ、
さらにランダムロジックが用いられるときに存在しない
高次1lII造を提供している。さらに、マイクロプロ
グラミングは、装置の命令の集合を実行J−るのに非常
に簡単なように変化させ、装置のための製造後の技術的
なコストを実質的に減少させる。 第1図は、プログラム可能なデジダル装置において用い
られる典型的なマイクプロセラナシステムの構成を描い
ており、2つの別々のセクションに分割され得る:すな
わち、左側の制御llおよび命令獲得および処理セクシ
ョンAと、右側のデータ獲得および操作セクションBと
である。セクションAは、その中心部に、一般に参照番
号10で指定された、この発明のマイクロプログラムシ
ーランスコントローラを有している。データ獲得および
操作セクションBは、一般に12として指定されたデー
タ処理回路を含み、このデータ処理回路12は、ワーキ
ングレジスタ14と、演算ロジックユニット(AL(J
)16と、ステータスレジスタ18とを含んでいる。デ
ータ処理回路は、プロダラムカウンタ22によってアド
レスされかつメモリアドレスレジスタ24を介してアク
セスされる、一般に21として指定されたデータ獲得回
路によって指定された“マシーン″命令によって要求さ
れるオペレーションなら何でも実行することによってメ
モリ20から獲得されたデータを処理する。各゛″マシ
ーン″命令、マイクロプログラムシーケンスコントロー
ラ10によって選択されたマイクロ命令のシーケンスに
よってマイクロプロセッサ上で実行される。 一方、議論のために、第1図に示されたブロックのいく
つかは、指定されlζラインによって相互接続されるも
のとして明白に示されているが、示されたどのブロック
の間のデータ通信も双方向データバス26に沿って実行
され得るということが理解されるべきである。同様に、
アドレスバス28上で、示されたどのブロックの間でも
アドレスが通信され得る。 マイクロプログラムシーケンスコントローラ10は、マ
イクロプログラムメモリ30から最終的に発生するマイ
クロ命令のシーケンスを決定するアドレスを発生する。 マイクロプログラムシーケンスコントローラ10によっ
て発生したアドレスは、コントローラ10のDATA 
OUT端子から゛Y″アドレスバス32の上を介してマ
イクロプログラムメモリ30のアドレス回路(図示せず
)に伝えられる。そのようなマイクロ命令アドレスを与
えることによって、マイクロプログラムメモリ30は、
マイクロ命令バス34上に、通常32またはそれ以上の
ビットのオーダであるワード長の、マイクロ命令を発生
するであろう。 マイクロ命令バス34は、パイプラインレジスタ36の
データ入力にマイクロ命令を伝え、このレジスタ36は
マイクロ命令を受取りかつ一時的に保持する。マイクロ
命令がパイプラインレジスタ36に含まれる一方で、レ
ジスタの出力ラインは、種々のシステムの要素に向って
出−(行き、これらの出力ラインは、シーケンサコント
ロールに戻されて、実行されるべき次のマイクロ命令の
アドレスを決定するマイクロ命令の一部分を含んでいる
。その次のアドレスはマイクロプログラムシーケンスコ
ントローラ10によって計算され、“Y″アドレスバス
32介してマイクロプログラムメモリ30に伝えられ、
さらに次のマイクロ命令がパイプラインレジスタ36の
入力に配置される。 マイクロプログラムシーケンスコントローラ10に戻さ
れたマイクロ命令のこれらの部分は、コントローラ命令
バス38上を伝わる6−ピッドコントローラ命令ワード
と、コントローラデータバス40上をシーケンスコント
ローラ10のデータバス入力へ伝わるマルチピットデー
タワードとを含んでいる。 マイクロ命令の他の部分は、プロセッサ命令バス42に
沿ってデータ処理回路12に伝えられる制御信号である
。これらの信号は、データをメモリ20からワーキング
レジスタ14に転送させ、さらにその後演算ロジックユ
ニット16によって処理させ、その結果はメモリ20に
転送される。 データの処理期間中に、プロセッサはステータスレジス
タ18に一定のビットをセットする。このプロセッサ装
置は、この情報をマイクロプログラムシーケンスコント
ローラ10に通信することができる。たとえば、ステー
タスレジスタ18信号は、データ処理回路120条件テ
スト(CT)出力上に与えられる。より典型的には、デ
ータ処理回路は、複数の条件テスト信号をCT出力に多
相化することができる回路を含んでいる。ここで開示さ
れる機能を提供するデータ処理回路の詳細な説明は、 
Me Graw−Hill 、 1980 138N 
0−07−041781−4におりるJ ohnMic
kおよびJim E3rlckによる“ビ゛ントースラ
ーイスマイクロプロセッサデヂイン(3ft−3lic
eM 1croprocessor [) esign
 ) ”において提供されでいる。 データ処理回路12のC−[出力に現われるデスト信号
(沫、ステータス信号ライン44を介してマイクロプロ
グラムコン1−ローラ10の1°入力に与えられ、ここ
で、これらのテス]−信号は、選択人力S O−83の
制御下において、マイクロプログラムメモリ30に与え
られるであろうアドレスを条件付きで変更するために用
いられる。 マイクロ命令゛ブランチ″アドレスは、5つのソースの
どれからも得ることができる:第1に1コントローラf
−タバス40からマイクロプログラムシーケンスコント
ローラ10のDATA INNシカ与えられ、ここで、
これはマイクロプログラムアドレスに対して用いられて
いる。マイクロ命令アドレスの第2の可能なソースは、
レジスタ51を介してマイクロプログラムシーケンスコ
ントローフ1017)ALJX DATA IN入力に
接続されたマツピングリードオンリメモリ<ROM)5
0から得られる。これらのアドレスは、DATA IN
入力上のアドレスに代わるものとして一定のマイクロ命
令によって利用される。マツピンクROM 50は典型
的には、開始マイクロルーチン゛ブランチ″アドレスを
含み、さらに命令レジスタ52の出力によってそれ自身
アドレスされる。さらに、命令レジスタ52には、ブO
グラムカウンタ22の管理下において、メモリ20から
゛′マシン命令″が与えられている。このマシン命令は
、(マイクロプログラムメモリ30にストアされた)マ
イクロ命令のいくつかを順次実行づ゛ることによつ実施
される。 マイクプログラムシーケンスコントローラ10に対づる
いわゆる4−ピッ]〜°゛マルチウェイ″入力MO,M
l、M2およびM3は、マイクロ命令1ランチアドレス
の第3のソースであり、これによって、一定のマイクロ
命令は、DATA IN入力」の2つの最下位ビット値
に従って、DATA−jN入力における最下位4ビツト
を、MO。 Ml、M2またはM3において存在する4−ビットパタ
ーンの1つで置換させる。 マイクロ命令ブランチアドレスの第4および第5のソー
スは、コン1−〇−ラ内部のレジスタから得られ;復帰
またはループアドレスはスタックレジスタのトップから
得られ;または次に続いて生じるアドレスはマイクロプ
ログラムカウンタレジスタから得られる。 マイクロプログラムシーケンスコントローラ10林内部
マルヂプレクサを有しており、このマルチプレクサは、
マイクロ命令の管理下において、。 ブランチアドレスの5つめソースのうちの特定の1つの
選択を制御する。 マイクロプログラムシーケンスコントローラの典型的な
応用例においては、割込を扱うための回路54が含まれ
るであろう。たとえば、第1図に示されるように、この
発明の譲受人によって製造された“A129114リア
ルタイム割込コントローラ″のような割込コントローラ
56と、割込へl−ルPROM <IVP)58とが含
まれティる。割込コン1ヘローラ56は、その割込入力
(111、II2.”’l IIn>において、対応す
る信号ライン60を介して個々の周辺ユニットから、ザ
ービスのいくつかのタイプ(すなわち、データ転送、続
出切換えなど)を蟹求する割込信号を受取る。割込信号
がそのII+ IIn入力の1つにおいて受取られると
きに、割込コントーラ56は割込(INT)出力から割
込要求信号を発行し、これは信号ライン60を介してマ
イクロプログラムコン1−ローラ1oの割込要求(fN
TR)入力に伝えられる。示されているように、そのl
NTR入力においてマイクロプログラムシーケンスコン
トロニラ10によって受取られた信号は、ストレージル
ーチンを開始させて、コントローラ10の種々のレジス
タに現在台まれている情報をストアして適当な場所にお
いて現在のマイクロ命令シーケンスに復帰することを可
能にする。 受入れられた割込要求の受信に続いて、コントローラ1
0は出力INTAに肯定応答割込信号を発生し、この信
号はライン62を介してrVP58および割込コントロ
ーラ56に送られ、サービスを要求している特定のユニ
ットを特定するマルヂビットワードを公式化する。この
公式化されたワードは、信号ライン64上をIVP58
へ伝えられる。IVP58の各メモリロケーションは、
個々の割込をサービスするために必要とされるマイクロ
プログラムメモリ30に含まれるマイクロ命令の各シー
ケンスのアドレスを含んでいる。したがって、割込コン
トローラ56によって発生しかつ信号ライン64上を伝
えられたコード化されたワードは、IVP58のアドレ
ス回路に与えられる。さらに、IVPは、必要とされる
割込ハンドリングサブルーチンの第1のマイクロ命令の
アドレスをベクトルアドレスバス66を介してマイクロ
プログラムメモリ30に通信し、このバス66は3−状
態バッフ7を介して゛Y″アドレスバス32と相互接続
する。 TVP58から通信されたベクトルアドレスがマイクロ
スゲラムメモリ30に与えられるときに、割込要求サー
ビスを扱うために必要とされるサブルーチンに対するマ
イクロ命令は、パイプラインレジスタ36にロードされ
る。すべてのマイクロ命令と同様に、パイプラインレジ
スタ36に含まれるマイクロ命令の各部は、コン1−ロ
ーラ命令バス38を介してマイクロプログラムシーケン
スコントローラ10に戻され、割込サブルーチンのマイ
クロ命令のシーケンスを制御させる。ざらに、これらの
マイクロ命令部分は、バス38を介して割込コントロー
ラ58に伝送され、このコントローラ56は内部制御信
号を発生するためにこれらを用いる。割込がサービスさ
れているときに、最後のマイクロ命令は、マイクロプロ
グラムシーケンスコントローラに、そこから゛ジャンプ
”した、アドレス発生のプログラムシーケンスへの復帰
を実行させる。 “マシン″命令と呼ばれてもよい命令が、命令レジスタ
52ヘロードされる。この命令レジスタの内容はマツピ
ングROM50に与えられて、さらにマイクロプログラ
ムメモリ30における第1のマイクロ命令のアドレスを
発生するが、このマイクロ命令は実行されて(命令レジ
スタ52によって保持された命令によって特定された)
要求された機能を実行しなければならない。このアドレ
スに対するブランチは、マイクロプログラムシーケンス
コントローラ10を介して発生する。マシン命令は、た
とえば、メモリ20からのデータの取出し、△L U 
16内での演算またはロジックオペレーションの実行、
オーバフローまたは他のステータスの表示に対づるテス
トおよびステータスレジスタ18のセットなどのような
、実行されるべきいくつかのマイクロ命令を要求する。 マシン命令によって要求されたマイクロ命令の完了に続
いて、コントローラ10は通常、命令取出号イクルを開
始するであろう。しかしながら、このポイントにおいて
、マイクロコードの他のセクションに対するブランチも
存在してもよい。たとえば、マイクロプロセッサは割込
コントローラ入力60の一方において割込を受取り、I
VP58から割込ザービスルーヂンアドレスを得る。 第1図のマイクロプロセッサの同期したオペレーション
を実行するために、システムクロック68が設けられて
おり、このシステムクロック68は、クロックライン7
0上を第1図のマイクロプロセッサの個々の要素に伝え
られるクロックパルスを発生する。 マイクロプログラムシーケンスコントローラ10は、他
のシーケンスコントローラとの主/従構成において作動
され、このため、内部および外部特性の双方の欠陥が検
出され得る。これらの2つのコントローラは並列で作動
され、第1のシーケンサが主シーケンサとして設削され
かつ上述のように正常に作動する。第2のコントローラ
は、トIIGH信号を5LAVF入力上に与えかつER
ROR出力を除くそのすべての出力を主コントローラの
対応する出力に接続することによって従モードに入る。 主コントローラのERROR出力上の1−11 G +
−1信号は、ドライバまたはバスコンブンションのよう
な故障した外部装置を示している。従コン1−ローラの
ER’ROR出力上の111 G N信号は、コントロ
ーラのいずれか一方にお
【プるエラーを示している。 B、マイクロプログラムコン1−ロー−マイクロプログ
ラムシーケンスコントローラ10の内部構成が第2図に
示されている。第2A図を参照】するど、:lントロー
ラ命令として機能Jる、バイブラインレジスタ36(第
1図)に含まれるマイク[1命令のその部分は、■入力
においてマイ/7Fコブログラムシーケンスコン1〜ロ
ーラによって受取られ、かつプログラムされたリードオ
ンリメモリおよび関連するロジック回路(CONTRO
L)100の命令(INST)入力に伝えられる。 C0NTR0L10017)INST人力r−受取’3
れた命令ワードは、実行されるべき次のマイクロ命令の
アドレスを選択するためにマイクロプログラムシーケン
スコントローラー0によって用いられる6−ピッドワー
ドである。コントローラの命令集合は、各々16の命令
からなる4つのクラスに分割された64のマイクロ命令
から構成される。 6−ピッドワードの2つの高次ビットはクラスを選択す
るために用いられ、さらに残りの4ビツトは、クラス内
の命令を選択する。次の表■は、2つの高次ビット■5
およびI、によるクラスの分割を表わしている。 表 1 00 条件付きシーケンス制御 01 極性の反転された条何付シーケンス制御 10 無条件シーケンス制御 11 暗黙継続を伴う特殊機能 示されているように、一定の命令の実行が命令にのみ依
存しているという意味において一定の命令は無条件であ
る。他のいわゆる“条件付き″命令は、外部の、データ
に依存した条件によって部分的に制御されるという効果
を有している。したがって、後者の場合、マイクロプロ
グラムシーケンス−1ント1コーラ10は、ステータス
レジスタ18(第1図)のビットに含まれる、A L 
U 16(第1図)内の種々の条件の存在を反映する1
2のテスト(TO−11>入力を受取る。第2A図に示
されているように、8つのテスト人力(TOl−[1,
・・・、T7)がテストマルチプレクサ(TEST M
tJX)102に直接与えられる一方で、残り4つの1
入力(T8.T9.・・・、T11)1よ、組合わせロ
ジック回路(TEST LOGIC)104に与えられ
る。回路104の出力は、これらの4つのテスト入力に
与えられた種々の論理演算の結果から構成され、さらに
バス106を介してTEST MLJX102に与えら
れる。TEST MLIX102は、選択入力(So、
81.S2.83>の制御下においておよび以下の表■
に従って、いわゆる条件付きマイクロ命令の実行に用い
るためにC0NI ROLl 00に伝送されるであろ
う特定のテスト条件を選択する。 表 ■ oooo 丁0 汎用 0 0 0 1 T1 0 0 1 0 T2 011T3 0100T°4 0 1 0 1 1−5 0 1 1 0 T6 0 1 1 1 T7 1 0 0 0 T8 C (キャリー) 1 0 0 1 T9 N(否定) 1 0 1 0 T10 V(オーバ フロー) 1 0 1 1 Tll Z(、ゼロ)1 1 (’)
 0 ’I’8+1−11 C+Z1 1 0 1 T
8+T11 C+Z1 1 1 0 T9■TIONQ
+V1 1 1 1 (T9■Tl0) (NOV)+
T11 +Z CONTROLlooは、条件−感知(TEST)入力
において、TEST 10010回路104およびTE
ST MtJX回路102によって選択された、テスト
されるべき条件を受取る。TEST入力に与えられた信
号の状態に従って、C0NTR0L100は、マイクロ
プログラムシーケンスコントローラ10のDATA O
UT端子において形成されている16−ピッドアドレス
を最終的にもたら適当な制御信号を発生することによっ
てマイクロプログラムシーケンスコントローラ10のア
ドレス発生能力を管理する。C0NTR0+10によっ
て発生し、C0ND、STKMUXCTL、CMUXC
TL、DECR,Lノ P。 DOWN、R8TSP、WE、08PCTL、LDCR
,ENCMP’、およびCLRCMPと表示された制御
信号は、それらが制御する要素に関連してさらに説明さ
れるであろう。 安定した制御信号を発生するためにT E S TLO
GIC回路104.TEST MUX回路102および
C0NTR0L100によッテ要求される時間は、従来
のマイクロブ0グラムシーケンスコントローラにおいて
はシーケンスのオペレーションにおける障害であった、
コントローラのサイクル時間の最も大きな成分である。 それゆえに、加えられた遅延を強制することなく、制御
信号が安定化したときに利用可能になるように他の独立
した信号を同時に発生するように、この時間成分を利用
することが望ましい。 この発明は、この設計の思想を実現するいくつかの特徴
を具体化している。上述の表工に示されているように、
マイクロ命令の集合は、4つのクラスの命令からなり、
その1つは、通常のシーケンスを続けるとともに特殊な
機能を実行し、さらにl−11G Hである6−ピッド
ワードの2つの高次ビットに対応している。C0NTR
0L100は、デスト条件の結果を利用しない“ブラン
チのない″2−ビットパターンの存在を素早く検出しか
つテスト条件の発生に割当てられた時間成分内で実行さ
れるべき命令を実現する信号を放出するように設計され
ている。 C0NTR0L 100は、クロック(CL)入力にお
いて、システムクロック68(第1図)によって発生し
かつシーケンスコントローラ10のCP大入力おいて受
取られたクロック信号を受取る。このクロック信号はC
0NTR0L100によって用いられて、以下に説明さ
れるように、マイクロブログラムシーケンスコントーラ
10においで情報を一時的にストアするために用いられ
る種々のレジスタに対するロード信号を発生する。 第2A図に示されているように、マイクロプログラムシ
ーケンスコントローラ10は2つの16−ビット内部デ
ータバスを有しており、コントローラ10の種々の要素
に対するデータ経路を提供している。3−状態の双方向
性D−バス110が、コントローラ10のDATA I
Nm子上のデータ信号を受取り、伝えかつ送信づるため
に設Gノられている。受取られた情報の2つの最下位ビ
ットは信号ライン110a上をマルチウェイマルチプレ
クサ(MLJLTIWAY MUX)112に伝えられ
るが、このマルチプレクサ112は、信号ライン160
を介してMULTIWAY MUX112のlN5TR
入力に通信されたコントローラ命令ビットの2つに関連
してこれらを使用して、受取られた情報のより低い4ビ
ツトを、コントローラ10のマルチウェイ入力(MO,
Ml、M2およびM3)[存在しかつMIJLTIWA
Y MUX112に伝えられる4−ビットデータの4つ
の組のうちの1つで置換することによって、いわゆるマ
ルチウェイアドレスを発生する。マルチウェイの選択は
、Dバス110上のより低い4ビツト内の2つのより高
次のビットの値に依存していない。さらに、選択された
ビットの値は、存在しているより低い4ビツトと°’ 
OR”グー1−処理されるよりもむしろ置換えられ、こ
れによって、従来のマイクロプログラムシーケンスコン
トローラにおいて要求されたように、これらの位置にお
い“(0の値のビットの存在を常に確保する必要を排除
することができる。 示されているように、16の異なるマイクロ命令に対す
るブランチを実行するためのアト1ノス修正能力を提供
するためにMULTIWAY MLJ×112出力が用
いられる。信号ライン113」二の4−ビットMULT
IWAY MUX112出力は、信号ライン110b上
を伝送されたD−バスにおける情報の上位12ピッ1−
と結合され、さらに信号ライン114を介して、以下に
示されるようにブランチングを実行するために用いられ
るアドレスマルチプレクサ(ADDRMtJX)116
に与えられる。ADDRMUX116への第2の入力(
沫、D−バス110上の修正されてい’c′rい16ビ
ツトの情報を受取る。 内部D−バス110はまた、カウンタマルチプレクサ(
C−MUX)118に結合される。示されでいるように
、C−MUX制御(CMUXCI−し)信号を発生ずる
C0NTR0L、100の制御下において、C−M(J
X118は、CMUXCTL信号を受取りかつこれらの
3つの入力のうちの1つを16−ビット2進ダウンカウ
ンタ120に通過さセる。このダウンカウンタ120G
、t、C0NTR0L100によって発生しかつそのデ
クリメント(DEC)入力においてダウンカウンタ12
0によって受取られた信号D E 、ORによってデク
リメントされる。ダウンカウンタ120の1つの使用は
、マイクロ命令シーケンスを介してループ制御をもたら
し、ダウンカウンタ120が1に到達し1=ときにルー
プからブランチングするということである。したがって
、ダウンカウンタ出力ライン122は、1の検出(ON
E DET>124に与えられ、この回路124はダウ
ンカウンタ120の一方の状態を感知しかつこの状態を
信号ライン126上の信号を介してC0NTR0L10
0のカウンタ1 (CONE)入力に通信する。 第213図に示されているように、内部D−バス110
はコンパレータレジスタ128の入力に結合されて、マ
イクロルーチン内のブレークポイントを確立するための
、または特定のアドレスにお1」るマイクロ命令がどれ
ほど頻繁に実行されるかを81数するためのベースとし
て、コンパレータ129によ一ンて用いられるアドレス
をストフ7する。 従来のマイクロプログラムシーケンスコントローラは、
こねらの能力を所有しておらず、これらの能力は以°ド
により完全に展開されるように、マイクロブ[Iグラミ
ングの見地からは極めて有用である。コンパレータ12
9は、C0NTR0L100によっ−Cgl生しかつE
N入力に与えられた能動化コンパレータ(ENCMP)
を受取る。それは、シークンスコントローラ10のE’
QUAL出力端子に伝えられる信号を発生する。コンパ
レータレジスタ128は、D−バス110上のアドレス
をストアさせる、C0NTR0L100によって発生し
たロードコンパレータレジスタ(LDOR>信号を受取
る。 内部双方向D−バス110は、以下の態様で、33ワー
ドの、ワードごとに16ビツトの後入れ先出しくLIF
O)スタック130へおよびスタック130からの16
ビツトのデータ経路を提供する:D−バス110は、ス
タックマルチプレクサ(STACK MLJX)132
(7)一方の入力に与えられ、この5TACK MUX
132の出力は、5TACK MUX132によって受
取られる5TACK MLJX制御11 (STKMt
JXC王L)信号を発生するC0NTR0L 100の
制御下において、スタックバス信号ライン134上をス
タックメモリ136へ伝えられる。5ATCK MtJ
X132は、以下に説明されるように、そこに与えられ
た3つの他の信号ラインの組を有している。STKMU
XCTL信号は、以下に説明されるように、5TACK
 MUXへの4つの入力のうちの1を選択して、スタッ
クバス信号ライン134を介してスタックメモリ136
に通過させるように機能する。 スタックメモリのトップ(TO8)上の内容、リなわち
スタックポインタレジスタ(STACKPOINTER
>138によって指示された内容は、以トにより完全に
説明されるように、c。 N r ROL 100の制御下において、信号ライン
140、スタック出力マルチプレクサ(STACK O
UT MUX)142と、16の3−状態出力ドライバ
144の組とを介して双方向D−バス110に与えられ
る。 3−状態ドライバ144は、シーケンスコントローラ1
0の出力能動化(OEo)@子へ与えられかつANDゲ
ート147を介する信号ライン146と信号ライン14
8とによってドライバに伝えられたH I G Hによ
って能動化されて、ドライバ144に与えられ仝D比出
力動化(DOUI EN)信号を形成する。OE o入
力端子における信号がLOWのときに、3−状態ドライ
バ144の出力は高インピーダンス状態にある。信号ラ
イン146上(7)HI G1−1、(モL、 モHO
L D * tc G、tSLAVE信号がいずれも、
以下に説明されるように現在HIGHでなければ)、3
状態ドライバ144の出力を能動化し、コントローラ1
oのDATA IN端子へ伝えるためにD−バス110
上にスタック内容のトップを与える。代わりに、以下に
より完全に説明されるように、DAT AIN端子にお
ける表示のために、5TACK P01NTER138
17)内容は、5TACK OUT M(JX142お
よびドライバ144を介して双方向D−バス110に与
えられ得る。スタックのトップは信号ライン140を介
してADDRMUX11617)入力ヘオJ:ヒc−M
UX 118(7)入力へ与えられる。ダウンカウンタ
120の出力は、信号ライン122を介しrsTAcK
 MLJ×132へ与えられる。 上述のように、マイクロプログラムシーケンスコントロ
ーラ10は、コントローラ1oの(AUX DATA 
IN)入力における補助データにおいて受取られたデー
タ信号を受取りかつ伝えるために設けられた、第2の、
単一方向の、16−ピットの内部データバス、すなわち
A−バス150を有している。第2A図に示されている
ように、A−/<ス150上(7)t11報ハ、C−M
UX118(7)第2の入力とともに、ADDRMUX
116の第3の入力に与えられる。 マイクロプログラムシーケンスコント0−ラ10は、合
計で64のマイクロ命令を有しており、この集合の中に
は、ブランチアドレスがD−バス110上に転送される
ことを要求する命令のサブセットと、A−バス150上
の転送のための他のサブセットと、バス114上の転送
されたアドレス;すなわちMULTIWAY MUX1
12によって選択されたマルチウェイ入力上のデータに
よって変更されたD−バス110上のアドレスに対する
ブランチングのための第3のサブセットとが含まれてい
る。この配置は、データをADDRMす×116に伝え
る左側の3つのパスラインによって第2A図のブロック
図において反映されている。 ADDRMLIX116はまた、マイクロプログラムカ
ウンタ(、M P C)レジスタ154の内容をADD
RMUX116に伝える信号ライン152を受取る。信
号ライン152はまた、データを5TACK MtJX
132に伝える。MPCレジスタ154は、現在実行さ
れているマイクロ命令のアドレスに1を加えたものを含
み、さらにブランチングが実行されるべきでなければ、
実行されるべき次のマイクロ命令を指示するために用い
られる。MPCレジスタ154は、クロックパルスCL
Kを受取り、さらにインクリメンタ158から信号ライ
ン156に沿って伝えられた信号をストアすることによ
って各り0ツクサイクルにおいてインクリメントされ“
現在のアドレス+1″を与える。 信号ライン160を介してADDRMUX116のlN
5TR入力に伝えられたコントローラ命令ビットのうち
の2つと、C0NTR0L100によって発生しかつA
DDRMUX116のC0ND入力に伝えられたC0N
D信号とは、ADDRMUX116の入力ライン114
,110.150,140または150上に存在するア
ドレスのどれがその出力ライン162へ通過させられる
かを実行するであろう。 この選択が実行される態様は、第3図二′!1′なわら
、MULTIWAY MtJX112(第2A図)およ
びADDRMLJX116(第2図)において用いられ
るロジックの回路図を参照することによって最もよく理
解されるであろう。MUITIWAY MUXMtJX
112(第2図A)は、第3図に描かれたゲートネット
ワーク200の4つの集合からなり、第2A図を参照し
て既に説明されたマルチウェイ選択および結合機能を実
行づる。 ADDRMl、JX116(第2A図)は、第3図に描
かれた16組のロジックネッ1へワーク220からなり
、出力ライン162(第2A図)上に存在する16−ピ
ッドアドレスを決定する。まず、最F位の4ビツトを考
えると、各々のi、O≦i≦3に対して、マルチウェイ
人力M3.i :M2゜i:Ml、i:およびMO,を
上に存在するビットのうちの1つは、D−バス110a
上のMULr’ IWAY MIJXI 12に対する
2つの最下位ビットDoおよびD1人力の制御下におい
て、および信号ライン160上のMLJLTIWAY 
MLIX112に対するコントローラ命令ビット■2お
よび13人力の制御下において、ANDゲート202.
204.206および208を介してそれぞれ通過させ
られるであろう。入力DoおよびDlの4つの可能な相
互の排他的結合がゲートに与えられるので、ANDゲー
トのうちの1つが、Mj 、i入力を通過させ、これは
さらにORゲート210または212の1つを介して通
過させられライン113上に与えられる。この態様にお
いて、マルチウェイ人力M3.M2.M1またはMOの
1つの4ビツトのずべては、ゲートネットワーク220
の最下位゛の4つのセットに与えられるであろう。 第3図に描かれたネットワーク220のロジック図に戻
ると、16ビツト、すなわち0≦i≦15の各々に対し
て、D−バス110上に存在するビット、Qiと;A−
バス150上のAIと;信号ライン140上のTO8i
とは、信号ライン160上(7)ADDRMUX116
へ17):1ント0−ラ命令ビット12および13人力
の制御下において、NORゲート222.224および
226を介して通過させられるであろう。(ライン22
1を介してNORゲート222を制御lする入力I3上
の信号が0≦1≦3に対してのみ存在するということに
注意ずべきである) 入力I2およびI3の3つの相互に排他的な結合はゲー
トに与えられるので、NORゲーゲータ22.224お
よび226のうちのせいぜい1つは、入力])i、△:
またはTO8iをORゲート228または230のうち
の一方に通過させる。ざらに、入力■2およびI3の残
りの第4の相互の排他的結合は、信号ライン113上に
、したがってOFRゲート230にMj、iを与えるた
めに用いられ、Milここで0≦i≦3であり、A1ま
たはT’ OS iによって可能なように変形された入
力Diの1つはORゲート230を介して通過されて2
−1条件コードマルチプレクザ(CC−MUX)232
の入力に与えられる。MPCレジスタ154から信号ラ
イン112上に与えられたビット、MPCi 、O≦1
≦15は、CC−MLJX232の第2の入力に与えら
れる。C0NTR01100によって発生したC0ND
信号はCC−MUX232に与えられ、さらに信号ライ
ン162上に出力されるべきブランチアドレスの最終的
な選択を実行する。 D−バス110上に存在するデータの下位4ビツト上の
マルチウェイMUX112およびAADRMUX116
の特定のオペレーションは、もしもマルチウェイブラン
チオペレーションが利用されるべきであれば、すなわち
I2がLOWでありI3がHIGHであれば、そして第
4の相互の排他的結合がそれゆえに確立されているなら
ば、NORゲート222,224および226の出力が
LOWに保たれ、選択されたマルチウェイブランチアド
レスの真の置換がもたされるということを保証する。 MULTIWAY MUX112およびADDRMUX
116のオペレーションの他の局面は、置換されるべき
特定のマルチウェイセットMj。 i、ここで0≦:≦3を選択づるために、他の方法では
未使用である最下位2ピツトD OJ:iよびDlの使
用から生じる。この方法において、命令の集合は必ずし
も64マイクロ命令以トに拡張されてマルチウェイブラ
ンチの多数の集合を提供する必要1.1ない。 マイクロプログラムシーケンスコントローラのアドレス
−選択オペレーションの第3の局面は、ブランデアドレ
スが信号ライン162上に出力され得る前にCG−MU
X232において安定化するC0ND信号の前述のタイ
ミングの臨界性からもたらされる。ADDRMUX11
6の出力おけるCO−MLJX232の位置は、D−バ
ス110、A−バス150、MLILTIWAY MU
X112の出力ライン114のいずれかからの、または
LrFO5TAC’に130のトップからのアドレスの
選択を計算させ、C0ND信号の計算と同時に進行させ
る。それゆえに、付加的な時間がこれらのブランチアド
レスの計算によって費やされることなく、シーケンスコ
ントローラ10のサイクル時間内は、厳格な連続する順
序で進行させられた、先行技術のコントローラに比べて
改善される。 第2A図を再度参照すると、ADDRM(JX116の
出力を形成する16の信号ライン162は、1組の(1
6の)3−状態出力ドライバ164に通信される。ドラ
イバ164は、マイクロプログラムシーケンスコントロ
ーラ10によって決定された16−ピッドブランチアド
レスを、データ信号を受取りかつコントローラ10のD
ATAOUT端子に伝えかつ伝送するために設けられた
3−状態の、双方向性Y−バス166上に与えられる。 3−状態出力ドライバ164は、信号ライン168 、
hで受取られたHIGHによって能動化される。信号ラ
イン168は、NORゲート170の出力であり、この
ゲート170は、S[△VE入力、マイクロプログラム
シーケンスコントローラ10のHOLD入力端子、およ
び割込ロジック回路176によって発生した信号(IN
T)kおいて受取られた信号によって制御される。これ
らの3つの信号がLOWのときに、NORゲート170
はライン168を1−11 G Hにセットし、さらに
3−状態ドライバ164の出力は能動化される。ライン
162上のアドレス信号はその後Y−バス166上に与
えられ、さらにコントローラ10のDATA−OUT端
子に与えられる。 3−状態出力ドライバ164へのライン168上の信号
がLOWのときに、3−状態出力ドライバの出力は、高
インピーダンス状態にあり、アドレス信号はその後、I
VP58 (第1図)によって゛′Y″アドレスバス3
2(第1図)に与えられ、以下に説明されるように次の
マイクロ命令を選択づる。 アドレス信号ライン162はまた、割込マルチプレクサ
(INT MIJX>172に結合され、このマルチプ
レクサ172はY−バス166上に存在するブランチア
ドレスを、信号ライン174を介してインクリメンタ1
58およびコンパレータ129に伝える。さらに、DA
TA 0LIT’端子(ま、割込アドレスを受信し、さ
らに以下に説明されるように、Y−バス166に沿って
割込マルチプレクサ(INT MUX)172に伝える
。 割、込復帰アドレスレジスタ(INT RET ADD
RREG>175は、割込要求がマイクロプログラムシ
ーケンスコントローラ10によって受取られるときに、
割込されたマイクロプログラムの復帰アドレスを一時的
に保持するために用いられる。割込アドレスは、以下に
説明されるように、コントローラ10のDATA 0L
JT端子における受信の後に、内部データバス166に
よってそこに伝えられる。 3−状態出力ドライバ164の出力をDATAO(JT
端子に伝えることに加えて、Y−バス166もまた、I
NT MUX”172の入力に接続され、このTNT 
MLJX172は、既に述べたように、その出力を信号
ライン174を介してインクリメンタ158に接続させ
ており、このインクリメンタ158はIVP158によ
って与えられたアドレスをインクリメントする。 マイクロプログラムシーケンスコントローラ10は、マ
イクロプログラムコントローラ10の割込要求(INT
R)入力端子において割込コントローラ56(第1図)
から受信されかつ割込ロジック回路176の割込入力(
I、)に通信されるその現在のタイミングサイクルの完
了において割込され得る。割込ロジック回路176はま
た、入力としで、(ロジック回路176の入力I2への
)T1ン1〜ローラ10の割込能動化(I N T E
 N >入力端子において受取られた信号と、(ロジッ
ク回路176の入力■8への)コン1−〇−ラ10のリ
セット(RESET)入力端子において受取られた信号
と、(それぞれ、ロジック回路176の入力[4および
Isへの)コン1−ローラ10の入力端子において受取
られたHOLDおよびS I−Δ\lE信号とを有して
いる。割込ロジック回路176は、信号ライン178上
をNORゲート170へおよびINT MUX172へ
通信される割込ルーヂン処理(TNT>信号を発生する
。I N 1− RおよびINTEN信号がHIGHで
ありかつ1」OL DおよびREST信号が1.OWで
あるときにのみ、INT信号はHIGHである。割込ロ
ジック回路176はまた、ANDゲート147へ通信さ
れるD〜ババス力能動化(OD)信号を発生し;このO
D倍信号、5LAVE信号および(1サイクルだけ遅延
された) )−101,、、D信号がLOWのときにの
み、HIGHである。 HIGHのI N 1−信号のNORゲート170への
適用は、そのゲート170に、信号ライン168上にL
OWを出力させ、3−状態出力ドライバ164を高イン
ピーダンス状態にする。これは、LOWに進むNORゲ
ート170のためにY−バス3状態出力ドライバ164
を不能化することによって、およびLOW信号をライン
168を介してドライバ164に送信することによって
、Y−バス166をADD MLIX出カライカライン
162り離す。ライン178上で伝送されたHIGHの
INT信号は、割込MuX172に、IVP58(第2
図)によってY−バス166上に与えられた割込アドレ
スをインクリメンタ158およびコンパレータ129に
伝えさせる。 示されているように、割込ルーヂンはまた、一定のレジ
スタの内容をLIFOST−八〇に130にストアさせ
、この5TACK130は後で回復される。このストア
された情報は、マイクプログラムシーケンスコントロー
ラ10が割込要求を受信したときにそのシーケンスの中
にある、マイクロ命令シーケンスへのアドレスリンケー
ジ復帰を提供する。 さらに、111 G )−11N T信号は、ANDゲ
ート147によって3状態ドライバ144に伝えられ(
ドライバ144をそれらの高インピーダンス状態に入れ
る。 割込されたシーケンスに戻るリンケージを確立づること
が要求されるすべての情報は、ブランチが発生する割込
す1ルーチンのブランチおよび実行に従って進行するこ
とを保証するために、すべての情報は1クロック期間内
にストアされる。したがって、一定の情報は、TNT 
RET ADDRREG175に一時的にストアされ、
このレジスタ175Ltその後5TACK MUX13
2を介してしIFOスタック132へ通信される。 INT RET ADDRREG175は、そのりOツ
ク(CL)入力において、CP入力端子において与えら
れかつCP入力端子から伝えられたクロック(CL K
 )を受取る。情報は、クロック(命令)す゛イクルご
とにINT RET ADDRREG175にストアさ
れるが、このストアされた情報は、以下に説明されるよ
うに、割込信号が受取られるときにのみ用いられる。 C0NTR0L 100から5TACK MtJX13
2へ伝えられたSTKMUXCTL信号の制御下におい
て、5TACK MLIXは、4つのく16−ライン)
信号バスのうちの1つを選択し、さらに選択された信号
バスを、スタックバス134を介してLIFOスタック
メモリ136に通過させる。したがッテ、5TACK 
MUX132を介して、ダウンカウンタ120の内容、
割込復帰アドレスレジスタ175、内部D−バス110
上に存在するデータ、またはMPCレジスタ154の内
容は、LIFOスタックメモリ136上にストアされ管
る。 1.、 I F Oスタック130のオペレーションは
、4171図を参照することによって最も−よく理解さ
れる。L、 I F Oスタック130(第2B図)自
身は、32−ワードの、1ワード当り16ビツトの、ス
タックランダムアクセスメモリ(RAM)300と、1
6−ビットのトツブーオブースタック(丁O8)レジス
タ302とを有しており、このレジスタ3021.t、
そのデータ端子(TO8i )を介しt’ 16−ビッ
トのデータワードを伝送することがでかつデータ信号ラ
イン134(第2B図)を介してSTACK MUX1
32(第2B図)から16−ビツ]〜のデータワードを
受取ることができる。 スタックRAM300およびTOSレジスタ302は、
データワードを通信するために設けられた16−ビット
のデータ信号ライン304によって接続されるが、この
データワードは、(5)アドースライン306を介して
5TACK POINTER138(第2B図)によっ
てそのアドレス入力(STACK ADDR)において
スタックRAM300に与えられたアドレ及によって特
定されたメモリロケーションに、13ケる(”PIJS
Hn期間中の)スタックRAM300内のメモリロケー
ションにストアされなければならない。 (”POP”期間中(F))TOSレジアタ302&*
、以下に説明されるように、データ信号ライン140(
第2B図)上を介してデータワードをS ’T ACK
 0tJT MLJXL42(第2B図)へまたはAD
DRMUX116(第2Δ図)へ通信することができる
。 本質的には、5TACK POIN丁ER138は、条
件付き(モジュロ64)アップ/ダウンカウンタであり
、これは、スタックポインタ(SP)レジスタ308、
条件付きインクリメンタ(COND INCR>310
、および条件付きデクリメンタ(COND DE、CR
)312を含んでいる。この突環が予めインクリメント
され、後でデクリメントされたものとして説明される一
方で、反対のフォーマットもまた可能である。 情報ワードがスタックRAM300にストアされること
を命令が要求するごとに、UP倍信号C0NTR0L1
00(第2 A FAgJ > ニJ: ッテ発生シ、
し1ト0スタツク130(第2B図)に通信され、ここ
で次の表■の第3行における1″の存在にj:って示さ
れるように、条件付きインクリメント310のCU大入
力与えられる。 表 ■ スタック上への単一ザイクルプッシュの 2UP DO
WN WE 白!支!L区」ユズ−11信号 11 NOOP OO0 PUSH101 CONI) PUSHI CC POP O10 CONDPOP OCO 各コントローラクロックサイクルの開始において、SP
レジスタ308はクロックパルス(CLK)を受取るが
、このクロックパルスは、その内容、すなわち現在“指
示”されているスタックアドレスを信号ライン314上
に与えさ蛙、このライン314はアドレスを条件付きイ
ンクリメンタ310に伝える。もしも、上述のようにイ
ンクリメンタ310へのCU大入力HIGHにセットさ
れていれば、インクリメンタ310は、1スタツクアド
レスだけインクリメン1〜され、さらにその後その現在
の内容をこの条件付きのインクリメントされたアドレス
によって交換する。SPレジスタ308は、以下に説明
されるように、HIGHがRESET入力に与えられる
ときに、次のドックパルスにおいて0にセットされ得る
。 従来のマイクロプログラムシーケンスコントロ ′−ラ
が、タイミングの要求に適合するために一時的なスタッ
クレジスタおよび2つのクロックサイクルを用いたのに
対し、この発明によるコントローラは、一時的なレジス
タに対する必要性を取り除き、かつスタック上への/ス
タックからの単一サイクルのPUSH/POPを許容し
ている。これは、スタックRAM300が読出または書
込能動化信号を受取る前に安定した書込アドレスを有し
ていなければならないので、そしてRAMがコントロー
ラクロックサイクルの50%だけを割当てられているの
で、C0NTR0L100(第2Δ図)にJ:る条件付
き(COND>制御信号を発生しかつ処理するために必
要とされる時間が、上述のようにスタックRAM300
への書込アクセスが完了される速度を決定する際の臨界
的なファクタであるという事実からもたらされてる。先
行技術のコントローラにおいて、この安定したタイミン
グの要求は、再込みのためのRAMの能動化の前に1つ
の付加的なりロックサイクルだけ持つことによっておよ
び各リイクルごとにクロックされIζ一時的なレジスタ
によってRA Mへの入力をバラノアJることににって
適合され、これによって、インクリメント、/デクリタ
ン1へ信号の後続の到着を待つことができる。 表■に示されているように、この発明のマイクロプログ
ラムシークンスコントローラは、条件付きP IJ S
 l−1命令によって要求されるときはいつでも仮のイ
ンクリメントを用いる。表■のC0NDP U S l
−1行における、UP列の’1”、WE列のC′″およ
びDOWN列のCの存在によって示されるように、最後
の小さな訂正が、条件C0ND<−〇)に基づいてなさ
れ、このため、この効宋は、条件付きインクリメンタ3
10が、信号ライン314上を伝送される、スタックポ
インタレジスタ308におけるそのアドレスによって指
示された内容に関するP LI S Hを作成し、さら
に条件付き書込能動化(WE)を作成し、その後C0N
TR0L100によって決定された条件付きコードC0
NDに従ってPLJSHを取消すということである。こ
の態様において、安定した読出/@込デアドレス、信号
ライン306上に存在し、この信号ライン306は、条
件付きインクリメンタ310からスタックRAM300
のS T A CKADDR人ツノへアドレスを通信す
る。 PtJSl−1が要求されているということをC0NT
R0L100が判断した場合に、表■の第2行において
要求されたHIGH書込能動化(WE)信号は、C0N
TR0L100によって発生しかつスタックRA M 
300の書込(WE >能動化入力に通信される。、P
USHが完了されていないということが判明すると、C
0NTR0L100は、WE倍信号発生せず、さらにス
タックRAM300内で書込みが起こらず、スタックポ
インタレジスタ308もインクリメントされないであろ
う。 後者の結果は、表■の第3行にお1)るCの記述項によ
って要求される。PIJSHが実行されないQ)T−1
CON 1− ROL 100 ハ、LOWrあルC0
ND(=C)信号を受取り、それゆえにては1」IC目
−1である。したがって、DECR信号列にお(プる第
3行の記述項を実行すると、C0NTR0110(’)
は1条件付きデクリメンタ312の条件(=jき)“ク
リーメント((’、D)入力に与えられるDOWN信号
を発生し、この信号は、デクリメンタ312を、条件イ
1きインクリメンタ310から信号ライン306上を通
って与えられた1つのスタックアドレスだけ減少させ、
されにその後デクリメンタ312は、このデクリメント
されたアドレスによって現在の内容を置換する。このデ
クリメントされた値は、スタックポインタの元の値に1
を加算しさらにその後1を減算したものであるが、さら
にその後条件付きデクリメンタ312から信号ライン3
16を介してSPレジスタ308に伝えられ、ここでS
Pレジスタ308にロードされる。したがって、スタッ
クポインタレジスタ308の内容に変化は生じないであ
ろう。 P U S l−1カ実行さレルト、C0NTR0L1
00はデクリメンタ312のCD入力にDOWN信号を
与えないであろう。この信号の欠如は、デクリメンタ3
12に、ライン306上でそれに与えられたスタックア
ドレスの値をデクリメントさせず、さらにデクリメンタ
312は単に、その現在の内容を、インクリメンタ31
0によってインクリメントされたアドレスによって置換
える。このインクリメントされた値は、スタックポイン
タの元の値に1を加えたものであるが、さらにその後信
号ライン316を介してSPレジスタ308に伝えられ
、ここでそれはSPレジスタの古い内容を交換する。ス
タックポインタはこれによってPt、J Sト(期間中
にインクリメン1〜される。 ンイク[+プログラムシークンスコントローラ命令の1
つ(よ、スタックポインタ138の内容を0にリセット
さぜる。したがって、CON T ROl−100は、
リセットスタックポインタ(RS T SP)信号を発
生し、この信号はSPレジスタ308のRESET入力
に与えられ、これによって次のクロックパルス(CLK
)を受信したときにSPレジスタ30Bの内容を0にセ
ットする。SPレジスタ30Bは、その内容が28に等
しくまたは28を越えるときはいつでも内部的に信号を
発生し、さらにこの信号をコントローラ10のほとんど
全(A FULL)出力端子に与える。 表■の第4および第5行に示されているように、情報ワ
ードがスタックRAM300から読出されることを要求
するたびに、C0NTR0L100は、これらの条件下
において条件付きインクリメンタ310のC(J入力へ
のUP信号を発生せず、さらにライン314上に与えら
れたアドレスの条件付きインクリメントは、インクリメ
ンタ310(よって実行されない。したがって、条例付
きPOP命令の実行期間中に、スタックRAM300へ
の5TACK ADDR入力上に与えられたアドレスは
、不変であり、したがって、スタックの現在のトップに
おける情報ワードはRAM300から読出され、安定し
た読出アドレスが信号ライン306上に存在]゛るので
条件コードは正当である。 RAM300は、書込まれていないときには常に読出す
ことができるので、POPが要求されていることをC0
NTR0L 100が判断した場合には、C0NTR0
L100によってLOW書込信号(WE >信号が発生
し、さらにスタックRAM300の書込(WE )能動
化入力に伝えられる。 POPが完了されて訃ないことが判明すると、C0NT
R0L100はWE倍信号発生せず、さらにスタックR
AM300内で読出しが実行されず、スタックポインタ
レジスタ308もデクリメントされないであろう。後者
の結果は、表■の第5行における°“C″記述項によっ
て要求される。 1〕OPは実行されないので、C0NT’ROL100
は、LOWである条件コード(COND)信号を発生し
、したがってCはLOWである。これらの条41下にお
いて、C0NTR0L 100によってDOWN信号が
発生せず、したがってデクリメンタ316に対するCD
入力はセットされず、デクリメントが実行されないであ
ろう。 POPが要求すれると、C0NTR0L 100によっ
てDOWN信号が発生し、条件付きデクリメンタ312
のCD入力に通過されるが、このデクリメンタ312は
、スタックポインタの現在の1〆jである、アドレスラ
イン306上の現在の値を、1だけデクリメントさせ、
さらに信号ライン31Gを介してスタックポインタレジ
スタ308に伝えさせる。これによって、スタックポイ
ンタのデクリメン1を実行しかつPOPを完了すること
ができる。 TOSレジスタ302は、スタックの1〜ツブとして機
能する。L I F、Oスタック130への各書込動作
は、スタックレジスタ302に書込まれたワードをスト
アすることと、同時に、1− OSレジスタ302に以
前に書込まれたワードをスタックRAM300にストア
することとから成り立っている。したがって、丁OSレ
ジスタ302の出力ラインは、スタック出力ライン14
0を形成する。 第2B図のLIF−0スタツク130が’ P OP 
”されるときに、5TACK POINTER138に
よって特定されたメモリロケーションの内容は読出され
かつデータ信号ライン304を介してTOSレジスタ3
02に伝えられる。 第2B図を再度参照すると、S T A CK P 0
INTER138の内容は、C0NTR0L100の制
御下にお【プφ、5TACK OUT MUX142を
介するマイクロプログラムシーケンスコントローラ10
のDATA−IN端子への伝送のために、D−バス11
0上で利用可能である。 一定のマイクロ命令に応答して、C0NTR0L100
は出カスタツクポインタ制m (OS P CT[)信
号を発生し、この信号は5TACK 0(JT M(J
X142に与えられ、さらにSTACKOUT MUX
142に、3l−ACK POIN T E R138
からのライン上のアドレス信号を選択させる。上述のよ
うに、信号DOUTENの発生を通じて3−状態出力ド
ライバ144を能動化することによって、現在のスタッ
クポインタの値をコントローラ10のDATA IN端
子まで通信させることができる。 Ja優に、マイクロプログラムシーケンスコントローラ
10には、5LAVE入力端子およびERROR出力端
子が設番プられている。 示されたように、割込要求信号がマイクロプログラムシ
ーケンスコントローラ10によって受取られるときに、
LIFOスタック130がマイクロ命令シーケンスにv
i、帰するのに必要なアドレスリンケージをストアする
のに十分な余地を有しているかどうかを調べるためのテ
ストが実行されなければならない。したがって、A F
UI−L信号またはスタックポインタレジスタの内容の
いずれかがアクセスされ、このため、割込が現在サービ
スされているかどうかに関する判断がなされ得る。 要約りると、マイクロプログラムシーケンスコントロー
ラ10の動作は以下のように進行するニブランチを要求
していない無条件マイクロ命令の処理期間中に、ADD
RMUX116は、そのlN5TR2−3人力において
2つのマイクロ命令ビットを受取り、さらにそのC0N
D入力において、MPCレジスタ154から信号ライン
152を受取る入力を選択するテスI−条件信号を受取
る。同時に、ライン168上の信号は、3−状態出力ド
ライバ166に、ライン162上の16−ピッドアドレ
ス出力をY−バス166上に与えさ辻る。したがって、
MPCレジスタ154に含まれかつその出力に存在する
アドレスは、マイクロプログラムシーケンスコントロー
ラ10のDATA OUT端子に通信される。 同時に、ADDRMLJX116(7)出力は、■NT
l1ilJllI信号の制御下において、ADDRMU
×出力をインクリメンタ158に通過させるINT M
UX172の入力に結合される。このインクリメントさ
れたアドレスは、インクリメンタ158から信号ライン
156を介してMPCレジスタ1540入力に伝えられ
る。し1〔がって、このアドレス発生サイクルの最後に
おいて、MPCレジスタ154はCL K信号によって
能動化されてインクリメントされたアドレスをMPCレ
ジスタ154にニスト7’!l’る。ADDRMUX1
16、INF M(〕X172および出力ドライバ16
4を介して通過するのに要する遅延時間の後に、インク
リメントされたアドレスは、マイクロプログラムメrす
32(第1図)に含まれる次のマイク[1命令に対する
アドレスを形成する。 無茶f1ブランチマイクロ命令の処理期間中に、ADD
RMUX116へ17)INSTR2−,3人力におい
て受取られたビットは、ADDRMU×116に、ビッ
ト2および3において特定されたように、マイクロ命令
によって要求される特定のブランチに従ってライン11
4.ilo、150または152上の信号を受取る入力
を選択させる。たとえば、ブランチアドレスが、それぞ
れマイクプログラムシーケンスコントローラ10のDA
TA IN@了またはAUX DΔ1°△−IN端子か
ら入力されることを命令する、GOTO−〇またはGO
TO’Aの形成の命令において、ADDRMLJX11
6は、ライン110上で受取られたアドレスまたはライ
ン150上で受取られたアドレスのいずれかを選択する
であろう。コントロー10のDATA OUT端子への
このアドレスの通信およびMPCレジスタ154のイン
クリメントは、無条件の、ブランチングではないマイク
ロ命令の処理期間中に、上述のように進行する。 処理されているマイクロ命令が、ブランチが一定のテス
ト条件において条件付きであることを要求するときに、
そしてその条件が存在する場合に、ADDRMLJX1
16Llt、そ(7)COND入力において適当な制御
信号を受取り、ライン114゜110.150.140
または152上に存在するブランチアドレスのいずれか
の選択を実行させる。もしも適当な条件付き制御信号が
存在しなければ、ADDRMUX116は、MPCレジ
スタ11へ4からライン152」−に存在する次のアト
1ノスを選択させる。いずれの場合においても、選択さ
ftだアドレスのコントローラ10のDATA−−Ot
、J +一端子に対する通信およびMPCレジスタ15
4のインクリメントは、他の命令タイプと同様に進行す
る。 一定のマイクロ命令は、ダウンカウンタ120が、たと
えばFORDという値でロードされることを要求し、ま
たは、たとえばCALL Aのような値がLIFOスタ
ック130上にブッシコされることを要求J゛る。前者
の場合に、ダウンカウンタ120は、マイクロブミグラ
ムシーケンスコントローラ10のDATA IN端子か
ら信号ライン110を受取る入力を選択するCMUXC
T L信号をcONTROLl 007’186受取る
ときに、C−MUX118によって通過させられる16
−ピッドワードで0−ドされる。(他のオプションは、
LIFOスタック130からの信号ライン140の受信
を含む)。この場合、LIFOスタック130は、MP
Cレジスタ154からの信号ライン152を受取る入力
を選択するSTKMU X CT L信号をC0NTR
0L 100から受取るときに、5TACK M(JX
132によって通過された16−ビン1〜ワードでロー
ドされる。 (他のオプションは、コントローラ10のD A 1−
A INm子からの信号ライン110の受信と、ダウン
カウンタ120からの信号ライン122の受信と、割込
復帰アドレスレジスタ175がらの信号ラインの受信と
を含んでいる)。 一定のマイク[1命令は、マイクロプログラムシーケン
スコントロ〜う10のアドレス比較の特徴を能動化しま
たは不能化づる。能動化タイプの命令を処理するときに
、C0NTR0L100によって発生した制御信号は、
コンパレータレジスタ128によって受取られてコン1
〜ローラ10のDATA IN端子からの信号ライン1
10上のデータをロードさせる。 スタックポインタ138の現在の値またはLIFOスタ
ック130の]−ツブは、コントローラ10のDATA
 IN端子への伝送のために双方向D−バス110上に
存在することができる。すべてのマイクロ命令は、コン
トローラ10のOE 。 入力端子をHIGHに保持させて、これによってライン
148上のDOtJTEN信号を3−状態出力ドライバ
144によって受取らせることができ、したがってドラ
イバ144はDOUTEN信号によって能動化される。 したがって、スタック出力°フルチプレクサ(STAC
;K OUT MUX)142の出力ラインは、ドライ
バ144を介してコント[+−ラ10のDATA IN
f4子に結合される。これらのマイクロ命令のすべての
うちの1つを除くすべての命令に対する処理は、C0N
TR0L100に、08PCTL信号を発生させ、5T
ACK OUT 、MUX142に、スタックメモリ1
36からの信号ライン1.40またはスタックポインタ
138からの信号ラインのいずれかを受取る入力を選択
させる。 ?イクロプログラムシーケンスコントローラ10は、割
込要求(INTR)入力端子において受取られた信号に
よって現在のタイミングサイクルの完了において割込さ
れ得る。そのような割込要求が受取られたときに、それ
は割込0シック回路176の割込人力1.に伝えられる
。割込ロジック回路176はまた、コントローラ10の
3つの仙の入力端子、すなわち;入力■2への割込能動
化(INTEN)入力端子、入力1.へのリセット(R
ESET)入力端子および入力I4への前述のHOLD
入力端子において受取られた割込入力f2.[、および
r、信号と通信する。回路176は、もしもコントロー
ラ10が能動化されて割込を受取りかつリセットまたは
ホールドされていなければ、すなわちINTENがHI
GHでありか−) RE’S E TおよびHoLDが
LOWであれば、割込要求を受入れる。 上述のように、割込が開始されずかつシーケンスコント
ローラ10が従属モードにおいて作動されずかつ保持さ
れていないときに、ブランチアドレスは、ADDRMU
X出カシカライン162Y−バス166および3−状態
出力ドライバ164を介してD A TA−OLJT端
子に伝えられる。 マイクロプログラムシーケンスコントローラ10によっ
て割込が処理されるべきときに、すなわちl−110)
I信号がlNTR入力において受取られるとき(および
、上述のように、I N T E NがHI G l−
I F アリ、RESETJ5J:びHOLDがり。 Wであるとき)、割込ロジック回路176は、割込(I
NT)信号をしOWがらHIGI−1へ変化さ1i、さ
らにこのl−11G l−1信号はライン178を介し
てI N T M 1.J ’X 172に通信され、
これは△Di)RMIJX116がらY−バス166お
よび信号ライン174を介してインクリメンタ158お
よびコンパレータ129に至るアドレス通信経路を不能
化する。さらに、Y−バス3−状態出力ドライバ164
は、割込[lシック回路174によって光/4EするH
IGI−11N−r信号に応答して、ライン168に沿
ってドライバ164にIOW信号を送るN ORゲート
170のために不能化される。23らに、これらの条件
下において、割込ロジック回路176は、受取られた入
力を]−ド化し、か′つジイン178上をINT MU
X172に通信される割込信号(INT)を発コーし、
このためTNT MLIX17.2へのブランチアドレ
ス入力は、信号ライン174に沿ってインクリメンタ1
58およびコンパレータ129に通過させられる。 したがって、ライン178上のIN’T信号の存在は、
INT MLJX’172に、コントローラ10 (7
) D A T A OU T @t 子カラノ’li
t 方向Y −t< ス166上の信号、すなわち割込
アドレスを受取る入力を選択させる。この割込アドレス
はさらにその後、IN−r MUX172の出力信号ラ
イン174を介してインクリメンタ158およびコンパ
レータ129に伝えられる。 (A、DDRMUX116からのアドレスは、それを割
込復帰アドレスレジスタ175にストアすることによっ
て蓄えられ、ここで、次のサイクル期間中に5TAcK
 MLIX134を介しi’LIFOスタック130上
へ自動的にブツシュされる)。インクリメンタ158に
おける割込アドレスの存在は、次のマイクロ命令を、割
込ルーチンの最初になるようにコントローラによって処
理させる。 マイクロプログラムシーケンスコント[1−ラ10は、
他方のコントローラ10ど並行しで作動され、このため
この相互接続おJ:び内部機能の双方にお番)る欠陥が
検出され得る。この主/従椙成において、1つのコント
ローラは従として指定され。 さらに1−110 H信号がその従入力端子に与えられ
る3、さらに、E RROR端子を除くぞのずべての出
力端子は、伯のコン1〜ローラの対応する出力端fに接
続される。他のコントローラは主コントローラであり、
正常に作動する。主および従コント1“1−ラの双方に
同一の入Jノ信号を与えることによって、従コン1−〇
−ラは、それぞれの動作を比較Iノ、さらに、コントロ
ーラのいずれかにおレノる故障を示す差が検出されると
きはいつでも、E、RROR信号が従コントローラによ
って発生する。 C1飢灸U釦 64の命令の以下の集合が、実行されるべき次のマイク
ロ命令のアドレスを選択するために、マイクロプログラ
ムシーケンスコントローラ1oによって用いられる。こ
の命令は、パスカル(p’ascal )およびp l
−−iのようなハイレベルの言語におけるデジタルコン
ピュータのプログラミングにおいて従来広く採用されて
いる゛構成されたプログラミング(3tructure
d p rogranuning) ”の原理を支持す
るタイプの命令である。 640マイクロ命令の集合は、以下の表IVにおいて示
されるように、位置4および5におけるビットの値に基
づいて、各々16の命令からなる4つのクラスから成り
立っている。 表 IV OO条件付きシーケンス制御 01 tli性の反転された条件付きシーケンス制御 10 無条件シーケンス制御 11 暗黙継続を伴なう特殊機能 示されているように、命令の実行が命令自身に0.7/
依(C71るという意味で、32の命令が無条件U:あ
る。ざらに、残りの32の条件句き命令は、外部の、1
:−夕に依存する条件によって部分的に制御され、特に
、これらの命令の実行は、C0N11犬01.100(
第2A図)のTEST入力に与えられた信号の状態に依
存している。また、一定の命令は、ダウンカウンタ12
0の内容によって部分的に制御される効果を有している
。コン1〜ローラ10の命令の集合によって用いられる
特定のマイクロ命令フォーマットと、先行技術のコン1
−ローラとは異なって、命令のタイプを決定する命令ビ
ットが△DDRMIJX116に直接与えられるという
事実のために、どのタイプの命令、すなわちブランチま
たG[続のいずれが処理されているかについての検出は
、マイクロ命令ビットI、および■、にのみ依存してい
るので、容易に行なわれる。 先行技術のコントローラは、それらの命令の集合が論理
的に関係付けられた命令のサブセットに構成されていな
かったので、“継続″命令の存在を容易に検出すること
ができなかった。これは、そのすべてが単に継続であり
、したがって1つを除いてすべてが未使用であった命令
コードのサプセッ]〜を有する先行技術のコントローラ
をもたらした。用いられた1つの=1−ドにはNo O
P二〜モニックが与えら−れた。この発明のコン1〜ロ
ーラは、1に等しいビット■5および■、を有する命令
を容易に検出し、さらに15の伯の方法では未使用のオ
ペレーションコードを用いて、追加の時間を要求するこ
となく、付加的な特殊機能を実行する。その結果は、1
6のいわゆる゛特殊gM能″命令および16の真の゛無
条件″命令である。 条件付き命令においで、(第1図のデータ処理回路12
によって実行された)データに依存するテストの結果は
、ステータスレジスタ18(第1図)のCT出力に現わ
れ、さらにステータス信号ライン44(第1図)を介し
てマイクロプログラムシーケンスコントローラ10のテ
スト入力T。 −丁1.に伝えられる。 C0NTR0L100のTES’T入力に与えられるべ
き特定のテストは、上述の表■に従って、−1ン(−ロ
ーラ入力So、81.82およびS3によって選択され
、さらに、汎用TO,T1.・・・。 −[7人力と、データ処理回路12によって発生したデ
ータに依存したテスh 7 a 、 =・、 T 、1
とのいくつかの組合わせである。80,81.82およ
びS3情報は、パイプラインレジスタ36に含まれると
きにマイクロ命令を伴い、コントローラデータバス40
によってコントローラ10のso。 Sl、82およびS3人力に伝えられ、さらにそこから
TEST MLJX102に伝えられる。 しばしば、マイクロ命令は、C0NTR0L100のT
EST入力おいて受取られた信号に基づいて条件付けら
れた1、2つの可能な機能のうちの一方を要求し、特殊
なオプションが選択されることが望まれるであろう。こ
の場合、もしもデスト人力おいて受取られた信号、fl
HIGHであれば、対応づるテストは、通過させられた
ものと考えられる。これは、真の極性と呼ばれ、この命
令によって特定された機能が発生する。代わりに、もし
もテストが失敗すれば、対応するテスト入力はLOWと
なり、さらに(命令において特定された、しばしば次に
続いて生じたマイク0命令の実行である)代わりの機能
が生じる。テスト入力において受取られた信号の極性は
、表IVの第2行において示された命令のクラスにおけ
る各マイクロ命令によって補われる。無条件および条件
付き命令の以下の議論のために、第1行において示され
たクラスのマイクロ命令のみが説明される。 特定の命令を同定するために6ビツト(I5゜14、I
3.!2.[1,to)において用いられるビットの割
当ては、各命令二一モニツクに従う括弧の中に示された
表現に含まれている。 GOTOD命令は、D−バス’110 (第2A図)か
らブランデアドレスを取出づ一能カをもたらしている。 したがって、GOTOD命令がパイプラインレジスタ3
6(第1図)に含まれているときに、このブランチアド
レスは、命令フ・r−ルドにあり、さらにこの命令フィ
ールドは、コントローラデータバス40によってマイク
ロプログラムシーケンスコントローラ10のDATA 
IN入力に伝えられ、さらにそこから、内部D−バス1
10t[l、TADDRMLIX116に伝えられる。 C0NTR0L100のTEST入力に与えられた信号
に従ッテ、ADDRMLJX116は、もしもTEST
信号が)IIGHであれば内部D−バス110を、また
はもしもTEST信号が1−OWであれば、信号ライン
152を介してM PCレジスタ154にJ一つて与え
られる、次のマイクロ命令アドレスとなるアドレスを選
択するであろう。 CAAL D命令は、マイクロコ−ドルーチンを条件付
きで呼出し、さらに呼出マイクロ命令シーケンスへの復
帰リンケージを確立するために用いられている。CAL
L D命令がパイプライン1、ノジスタ36に含まれる
ときに、マイクロコードルーチンにおける第1の命令の
アドレスを有する命令の一部は、コントローラデータバ
ス40によって、マイクロプログラムシーケンスコント
ローラ10のDATA IN入力に伝えられ、さらにそ
こから、内部D−バス110を介して△DDRMLJX
116に伝えられる。 もしも、CON丁ROL 100がそのTEST入力に
おいて、Hl、GHである信号を受取れば、D−バス1
10上に現われるブランチアドレスが選択されて、マイ
ク[1プログラムコントローラ10のDATA−01J
 T @子に与えられるであろう。 これは、マイクロコードルーチンに、次のクロックサイ
クル上での実行を開始さぜるであろう。最終的に、この
ルーチンは終了し、さらにルーチンを呼出した命令の次
に生じたマイクロ命令への復帰が行なわれなければなら
ないであろう。CALLD命令は、5ATC,K PO
INTER138に与えられるD OW N IIJ 
all信号を発生するC0NTPO+−100によって
特定されるとすぐに、このいわゆる復帰リンケージを自
動的に確立する。 上述のように、CALL D命令の特定は、CON ’
T ROf 100に、スタックマルヂプレクサ制御(
STKMtJXCTL)信号を発生させ、この信号ハ、
5TACK MtJXl、32km与エラtL、S T
 A CK M jJ X 132に、LIFOスタッ
クメモリ136にりえられるべき、MPOレジスク15
4からのライン152上のアドレス信号を選択させる。 、C0NTR0L100が、P(JSHが要求されてい
ることを判断するときに、l−110Hill込能動化
(W rE >信号は、C0NIRC’)tlool−
二よ−)て光ノ1し、さらにLIFOスタ・ンクメモリ
136のW F N入力に伝えられ、ここで、信号ライ
ン152上の出力、すなわち現在実行されている命令の
アドレスに1を加えたMPCレジスタ154の内容、1
なわら復帰リンケージはLIFOスタックメモリ136
上にブツシュされるであろう。 もしも、C0NTR0L100が、上述のよう11″E
ST信号が)−11GI−1でないことを判断するなら
ば、書込能動化(WE>信号は発生せず、さらに条件付
きP LJ S l−1は、C0NTR0L100で発
生したDOWN信号をスタックポインタ138に与える
ことによって取消されるであろう。さらに、ADDRM
IJX116におけるC0ND信号の欠如のために、M
PCレジスタ154によって信号ライン152を介して
与えられたアドレスは、ADDRMLJX116によっ
て選択されてコントローラ10のDATA ’(]JT
端子に与えられるであろう。 このEXIT Dマイクロ命令は、ループを終了させか
つスタックを維持する。この命令は、その値が現在のし
IFOスタックのトップにストアされているアドレスに
おいて開始するループが確立されたということを保証す
る。この値は、以下に説明されるように、END LO
OPマイクロ命令によって用いられて、ループにおける
すべての先行する命令が実行されたときにループの開始
に転送されて戻される。 FXrl’D命令は、このループの中で発生し、さらに
(の実行時に、CON −r ROL、 100にその
l IE S 1入力をサンプリングさせる。もしも、
1トS下信号がHIGI−1であれば、コントローラデ
ータバス40によってコントローラ10のDATAIN
端子に通信されかつD−バス110上に与えられたブラ
ンチアドレスは、ADDRMtJX116に与えられた
C0ND信号の制御下において、選択されてコントロー
ラ10のDATAO(JT端子に与えられる。さらに、
この機能はループを終了させるので、ループの開始アド
レスはもはや必要ではなく、さらにそれはLIFOスタ
ックメモリ136からPOP処理されるべきである。こ
れは、スタンクポインタ138をデクリメントすること
によって実行される。 EXIT os令を用いる上述の命令シーケンスは、ル
ープ内でい(つかのテスト条件が順番にリンプリングさ
れ、かつマイクロプログラムコントローラ10が、命令
の他のシーケンスに先行する前にこのテスト条件のどれ
かが発生することを待機するときに非常に有用である。 先行−46命令の説明と同様に、テストされた条件が発
生しないことをC0NTR0L100が判断する場合に
、ADDRMtJX”116におけるC0ND信号の欠
如は、信号ライン152を介してMPCレジスタ154
によって与えられたアドレスを、At)ORMtJX1
16によって選択させてコントローラ10のDATA 
0UTiit子に与えさせる。 END FORDマイクロ命令は、ダウンカウンタ12
0のデクリメント能力を利用してループが実行される回
数を制御する。そのようなループは、ハイレベルの言語
において、I=N D。 WN To I Do・・・ENDという形態をとる。 有用であるためには、ループの第1のマイクロ命令のす
ぐ前のマイクロ命令は計数値(N)をダウンカウンタ1
20にロードしなければならない。 これは、いくつかの゛特殊機能”マイクロ命令のどれに
よっても、たとえば以下に説明されるし、OAD Dま
たはLO△DAによって実行され得る。 FND FORDマイクロ命令は、ダウンカウンタ12
0によって制御されるループの最後の命令となるであろ
う。それが実行されるごとに、それLtCONTROL
l 00に、そのTEsT入力をサンプリングさせるで
あろう。その結果生じたC0ND信号は、もしも1− 
E S T信Mが1−110ト1であり、ダウンカウン
タ120によって保持されている計数値がONEと異な
るならばト11 G Hとなるであう。この場合、C0
NTR0L100はDECR信号を発生し、この信号は
ダウンカウンタ120のDEC入力に与えられてその値
を1ずつデクリメントさせ、さらにADDRM(JX1
16に与えられたGONO信号の制御下において、AD
DRMLIX116G、t、コントローラデータバス4
0を介してコントローラ10のDATA JNm子に伝
えられかつD−バス110上に与えられたブランチアド
レスを選択してDATAOUT端子に与えるひあろう。 パイプラインレジスタ36におけるEND FORDマ
イクロ命令は、その命令フィールドにおいて、コントロ
ーラパス40を介してマイクロプログラムシーケンスコ
ントローラ10のDATA−IN入力に与えられるであ
ろうループの第1のマイクロ命令のアドレスを含んでい
るので、この機能は、他方の繰返しのためのループの開
始への復帰を引き起こす。 もしもONEの計数値が検出され、さらにそのC0NF
入力に45いrCON、TR0L100G、:転送され
、またはTEST信号がLOWであれば、C0NTR0
L100は、LOW C0ND信号を発生し、さらにD
ECR信号を発生し、ダウンカウンタ120にその値を
デクリメントさせるが、t−OW CON D (g 
@ 〕IIJ IIrI下ニe イr、A[)DRML
IX116は、MPCレジスタ154からライン152
上をそこに伝えられるフランチアドレスを選択するであ
ろう。したがって、ENDFORD命令がループにおい
て最後であるときに、MPCレジスタ154は、ループ
の次に続いて生じるマイクロ命令のアドレスを含み、ル
ープから出ることに対応している。 一゛ びM−に基づく条件付き命令: マイクロプログラムシーケンスコントローラに対り゛る
命令の集合は、GOTOA(000100)、CALL
 A(000101)、EXIT△(000110)お
よびEND FORA(000111)マイクロ命令を
含むが、これらのマイクロ命令は、ブランチアドレスが
D−パスライン110上の信号からADDRMUX11
6によって選択されるものとして説明されたときに、対
応する“′A″マイクロ命令がADDRMUX116に
A−パスライン150上の信号を選択させるということ
を除くづべての点において、それぞれGOTOD、CA
LL D、EXIT−りおよびEND FORD命令と
同様に動作1゛る。 マイクロ命令の集合はまた、GOTOM (00100
0)、CΔl−L M(001001)。 EXIL M(001010)t’jよびEND FO
RM(001011)マイクロ命令を含むが、これらの
マイクロ命令は、ブランチアドレスがD−パスライン1
10上の信号からADDRMIJ×116によって選択
されているものとして説明されたときに、対応するマル
チウェイII N、I I+マイクロ命令がADDRM
tJX116に信号ライン114上の信号を選択させる
ということを除くすべての点において、それぞれGOT
OD、CALL D、EXIT D、、9よびENl)
 FORDマイク日命令と同様に動作する。上述のよう
に、第3図を参照すると、ライン114上の信号は、4
つのマルチウェイ入力MO,M1.M2およびM3から
なる1つの集合上に存在する4つの最下位ビットと、D
−パスライン110b上に存在する12の最上位ビット
との組合わせから構成されている。組合されるべき4つ
のマルチウェイ入力のうちの特定の1つは、バイブライ
ンレジスタ36における特定の゛M″マイクロ命令によ
って決定され、これはその命令フィールドにおいて、コ
ントローラバス40を介してマイクロプログラムシーケ
ンスコントローラ10のDATA IN入力に通信され
た16−ピッドワードを含むであろう。このワードの最
下位2ビツトは、信号ライン110a(第2A図)を介
してマルチウェイMUX112に与えられ、さらに、マ
ルチウェイMUX112がD−パスライン110b−に
の最−L位12ビットと組合わせてライン114上のA
DDRM(JX116への入力を形成覆る特定の4−ピ
ッ1〜マルチウ工イ入力信号を選択させる。したがって
、マルチウェイマイクロ命令は、D−バスうイン110
上に存在する16−ピッドアドレスの−) <CI 4
ビツトを変更することによって得ることができる16の
ロケ−、ジョンのどれにでもジャンプさせる。この特徴
は、ハイレベル言語のCASF命令文を実行する際に有
用である。 END LOOP命令は、テスト条件が満足されている
期間中にのみ実行されるであろうループを終了さゼるた
めに用いられる。そのようなループは、ハイレベルの言
語において、RE P E A T・・・U N T 
I 、LまたはWHILE・・・Doの形態をとる。、
END LOOP命令は、ループへ入ることに先行する
命令が第1のループ命令のアドレスをL I FOスタ
ックメモリ136−ににPUSHL、たということを仮
定する。END LOOP命令は、ループにおける最後
の命令であり、さらにそれが実行されるごとに、それは
、C0NTR0L100に、満たされるべきテスト条件
がを表わすTEST入力をサンプリングさせる。もしも
この信号がHIGHであれば、ループは反復されなけれ
ばならず、さらにT E S、T信号と、ADDRMU
x1’+6に与えられる12およびI3マイクロ命令と
の制御下において、ADDRMLIX116は、LIF
Oメモリスタック136のトップから信号ライン140
を介してそこに伝えられたブランチアドレスを選択して
コントローラ10のDATA OUT#子上に与えるで
あろう。ループ命令の第1のアドレスはスタック136
上にP(JS1−1されたので、こねはループの反復を
もたらり。 もしも王[S丁信号がL OWであれば、このル−1は
終了されな【プればならず、実行は、END−t、 O
OP命令に続いて生じる次の命令まで通過さ1!ること
である。しOW C0ND信号の結果とし−C1ΔDD
RMLIX116は、MPCレジスタ154から信号ラ
イン152を介してそこに伝えられたブランデアドレス
を選択し、したがってループの終了を実現するであろう
。さらに、LOW C0ND信号に応答して、C0NT
R0LI00は、スタックポインタ138へのDOWN
信号を発生し、これによってスタックポインタをデクリ
メントして、ループの第1のマイクロ命令のアドレスを
、L J F Qスタックメモリ136から除去させる
。このスタックの維持は、ネストされたループの可能性
によって命令され、このループの各々はそれ自身の開始
命令アドレスを備えている。実行が内部ループの範囲の
外へ通過するときに、次の最も内側のループの開始アド
レスは、[IFOスタックメモリ136のトップ上にな
番)ればならない。 CALL C0ROLITINEマイクロ命令は、その
名称が示しているように、他方の」ルーチンからコル−
チンを呼出すために用いられる。この命令は条件付きで
あるので、この呼出しはC0NTR0L100に与えら
れたTES丁信号に基づいて条件付4ノられる。この命
令は必ずしもその開始においてコル−チンを呼出さない
が、この命令は、マイクロプログラムされたスイッチに
よる2つのプロセス間のプロセススイッチのように機能
する。MPC154の内容(現在の処理のアドレス)お
よびTO8302の内容(休止処理のアドレス)のスワ
ップが実行される。CALL C0ROIJTINE命
令の実行は、呼出されるべきコル−チンのマイクロ命令
のアドレスをP U S l−I した命令によって先
行されなければならない。CALL C0ROUTIN
E命令が実行されるときにTEST信号がHI G H
であれば、△DDRMtJX116は、LIFOスタッ
クメモリ136のトップから信号ライン140上を介し
てそこに通信されるブランチアドレスを選択するであろ
う。 このアドレスは、呼出されたコル−チン内の開始ポイン
トとなり、さらにコントローラ10のOA−「八−0U
T端子に対するADD−RMUX116によって与えら
れたときに、コル−チンのマイクロ命令は次のクロック
サイクルにおいて実行されるであろう。 同時に、アドレスリンケージは、呼出されたコル−チン
から復帰させために確立されなければならない。それゆ
えに、マイクロプログラムシーケンスコントローラ10
によるCALL C0ROUTINEマイクロ命令の実
行は、呼出されたコルーチンの開始アドレスであろうL
IFOスタックメモリ136の内容の現在のトップを・
MPCレジスタ154の現在の値で置換えることを含み
、このため、実行が割込された呼出コル−チンにおける
ポイントへの後のl!帰が、CALL C0ROUTI
NF命令を再度用いてI−IFOスタック136のトッ
プにおけるアドレスを介して完了される。したがって、
もしもC0NTR0L100へのT E S T入力が
HI G Hであれば、それは、S’rKMUXcTL
(L号を発生し、コレis S T−ACK MLJX
132に与えられて、STACKMUXl、:、MPC
レジスj154から5イ:/152上の信号を選択して
スタック136のトップ上に読出させ、C0NT’RO
L100は、これらの状況下において、UPまたWE倍
信号発生せず、このため、スタックの内容の現在のトッ
プG、t th失され、呼出ルーチンへの復帰アドレス
は、呼出されたサブルーチンの開始アドレスを置換える
。 すべての条件付きマイクロ命令と同様に、もしもCAL
L C0ROUTINEが実行されるときにTEST信
号がしOWであれば、ADDRM(JXl 16G、t
、MPCレジスタ154内に含まれる。アドレスを選択
してコントローラ1oのDATA 0tJT#子に与え
、このため、次に続いて生じた命令は、次のクロックサ
イクルJFJ間中に実行されるであろう。 C0NTR0L 100に与えられた1’ E S T
信号に関して条件付けられたように、CALl、D。 CALL−△、またはCALL、Mによって呼出された
サブルーチン内で出会うとぎに、RETLIRN命令は
、サブルーチンを呼出した、CALL−り、C△l−L
、AまたはCALL M命令の次に続いて生じた呼出ル
ーチンにおける命令に復帰するであろう。したがって、
もしもRFTURN命令の実行期間中に、CON丁RO
l−100へのTEST入力がHIGHであれば、AD
DRMUX116は、LIFOスタックメモリ136の
トップからライン140上の信号を選択し、この信号は
その後コントローラ10のD△rA 0LJT’ 竣−
子に伝えられる。このfI!4様において、対応するC
ALL D、CALL A、またはCA l−LMが、
次に続く命令のアドレスをスタック136のトップ上に
与えるので、呼出ルーチンへの復帰は、次の命令サイク
ル期間中に実行されるであろう。同時に、C0NTR0
L100は、DOWN信号を発生し、この信号は、スタ
ックポインタ138に与えられ、これによってスタック
ポインタをデクリメントして、復帰アドレスをしIFO
スタック136からPOP処理させる。 このスタック維持は、サブルーチンを呼出したCALL
 D、CALL AまたはCALL M命令が呼出ルー
チン内のループの範囲内でネストされるという可能性に
よって命令される。RETURN命令はまた、以下に説
明されるように、ハイレベルの言語のCASE構成を実
現する際に有用である。 すべての条件付きマイクロ命令と同様に、もしもRE王
URNが実行されるときにTEST信号がLOWであれ
ば、ADDRMUX116は、MPCレジスタ154内
に含まれるアドレスを選択してコントローラ10のDA
TA 0LIT端子に与え、このため、サブルーチン内
の次に続いて生じた命令は、次のクロックサイクル期間
中に実行されるであろう。このスタックポインタは、こ
の場合には変えられない。 END FORマイクロ命令は、それがダウンカウンタ
120のデクリメント能力を利用して、ループが実行さ
れる回数を1lJI[Iするという点で、上述のEND
 FORDマイクロ命令と同様に作動プる。END F
ORDマイクロ命令と同様に、ループの第1のマイクロ
命令のすぐ前のマイク[1命令は、il数値(N>をダ
ウンカウンタ120にロードしな(ブればならない。し
かしなが゛ら、[モNl) FOR命令はLIFOスタ
ックメモリ1336を使用して第1のループ命令のアド
レスをストアするので、END FOR命令は、ループ
に入る前にこのアドレスがLIFOスタック136土に
プツシコされることを期待している。 END FORマイクロ命令のオペレーションは、上述
のよう(、ブランチアドレスがD−パスライン110上
の信号からADDRMUX116によって選択されてい
るものと示されるときに、END FORマイクロ命令
が、ADD MLIX116に、L、IFOスタックメ
モリ136のトップから信号ライン140上の信号を選
択させるであろうということを除いて、すべでの点にお
いてEND FORD命令と同一である。 さらに、ループのそれ以上の繰り返しがなされず、した
がって現在スタックのトップ上にあるループの第1の命
令のアドレスがもはや必要とされていないので、END
 FOR命令が、ダウンカウンタ120の計数がONE
になること、またはC0NTR0L100のTEST入
力上のI−OW信号によって示された条件付きテストの
いずれかによって、ループからのイグジットを生じるど
きに、LfFOスタック136は、スタックポインタ1
38をデクリメントすることによってPOP処理される
。 上述のように、表Ivの第1行上に示された16の条件
付きマイクロ命令の集合の説明が先に行なわれ、さらに
そこで“条件付きシーケンスIIJ all ”どして
説明された。マイクロプログラムシーケンス−]ン1〜
ローラは、表■の第2行上に示されるよ′うに16の条
fi付きマイク[」命令の第2の集合を用い、さらに各
々の対応するマイクロ命令が先行りる2ヒ゛ツトとして
” o o ”よりもむしろ′″01′′のピッ1〜割
当てを有しているということを除いて、および−7スト
条ft T E S T信号がHI G Hのときにい
つでも一定の機能が保証されるときに、対応する゛極性
の反転された″マイクロ命令が、テスト条件TEST信
号がLOWであるときに取られるべきその機能を実行さ
せるということを除いて、すべての点において上述の説
明された集合と同一である、″極性の反転された条件付
きシーケンス制御パとして説明された。同様に、テスト
条件′「ESTがI−OWであるときに必ず一定の機能
が保証されるならば、対応する°″反転れた極性の″マ
イクロ命令は、テスト条件T E S TがHIGHの
ときに取られるべき機能を実行させる。 さらに、このコントローラは、表1■の第3行上に示さ
れるように、16の無条件マイクロ命令の第3の集合を
使用し、さらに、各々の対応するマイクロ命令が00″
よりもむしろ’ 10 ”で開始するビットの割当てを
有するということを除いて、およびテスト条件TEST
信号がト11GI−1であることに従って一定の機能が
条件付で保証されるときはいつでも、対応する“無条件
″マイクロ命令がデス1条件性−r E S T信号に
関係なくその機能を実行させるということを除いて、す
べての点において、条件付きマイクロ命令の第1の集合
と同一である゛無条件シーケンス制御″として説明され
ている。さらに、これは、無条件マイクロ命令によって
とられる唯一の機能であり、したがって、テスト条件T
EST信号がLOWであるときはいつでも条件付きマイ
クロ命令によって取られるどの機能も、対応する無条件
マイクロ命令によって保証されないであろう。 コントローラによって用いられる残りの16のマイクロ
命令は、表IVの第4行上に示されるように、いわゆる
゛°暗黙l!統を伴う特殊側「′であり、さらに” 1
1 ”で開始づ−る6−ピッドパターンが割当てられて
いる。上述のように、このタイプの命令の存在は容易に
検出されるので、そしてこれらの命令は、時間−臨界テ
スト条f4TE S T信号のサンプリングを必要とし
ないので、これらの命令は、付加的な時間を必要とする
ことなく、付加的な特殊機能を実行する。条件付きおよ
び無条件命令と同様に、“特殊機能゛′命令は、各命令
二−モニツクに続くそれらのビットの割当てとともに説
明される。 オペレーションなしく継続> 1iooo :イの名称
が示すように、C0NTINLJE命令は、マイクロプ
ログラムにおけるプレースホルダとして機能する以外に
どのような機能も生じない。 C0NTrNIJEマイクロ命令が実行されるときに、
それはA[)ORMUX116に、信号ライン152上
でMPCレジスタ154によって与えられたアドレスを
選択させて、マイクロプログラムシーケンスコントロー
ラ10のDATA OUT端子に与え、このため、マイ
クロブ0グラムメモリ30(第1図)と連続する次のマ
イクロ命令が実行され、リ−なわちマイク[:1プ[1
グラムシーケンスは゛継続する″。 命令のこの゛暗黙継続を伴う特殊機能″のサブセット内
の残りの15のマイクロ命令のすべては、それらの“特
殊機能”(付加された時間を必要とJ゛ることなく)と
ともにこの“°継続゛′機能を実行するので、マイクロ
プログラムシーケンスの上述の継続は、それらの説明に
おいては明白に説明さ ゛れないであろう。 FORDマイクロ命令は、前述のEND FOR条件付
きマイクロ命令に関連してマイクロプログラムにおける
ループをセットアツプするために用いられる。END 
FOR命令の説明において述べたように、END FO
R命令は、計数値(N>がダウンカウンタ120ヘロー
ドされ、かつループを終了させるEND FOR命令の
後に続いて生じる命令に実行が通過する後の固定された
回数だけ実行されるべきループに入る直前に、MPCレ
ジスタ154にストアされている現在の(IT!がLI
FOスタックメモリ136のトップ上に1) LI S
 l−1処理されるということを必要とする。END 
FOR命令上で終了するループに入る直前にFORD命
令を実行することは、C0NTR0L 100に、CM
tJXCTL信号を発生させ、この信号はC−MUX1
18に与えられて、C−MUX118に、D−パスライ
ン110上の入力を選択させてダウンカウンタ120に
ロードさせる。バイブラインレジスタ36に含まれるF
OR1〕マイクロ命令を伴う情報は、ループの繰り返し
の回数を決定する計数値(N>であり、さらにこの値は
、コントローラデータバス710によってコントローラ
10のり、ATA IN入力に通信され、さらにそこか
ら、内部D−バス110を介して、前述のC−MUX1
18に通信されてダウンカウンタ120にロードされる
。 同時に、MPCレジスタ154の内容のPUSHは、I
−I F Oスタックメモリ136上にもたらされるで
あろう。したがって、CON ’r ROL 100は
、スタックマルチプレクサ制御(81KM(]XCTl
 )信号を発生し、この信号は5TACK MLIX1
321=:りえられ、さらにS「△CKMUX132に
、MPCレジスタ154からライン152上のアドレス
信号を選択さゼてLIFOスタックメモリ136に与え
さゼる。同時に、CON T P O+−100は、ス
タックポインタ138に与えられるU P信号を発生し
、その後に、入力アドレスの安定化のために実行しよう
とするときに、L I F Oスタックメモリ136に
与えられたWF倍信号続き、ここで、信号ライン134
上の出力、すなわちMPCレジスタの内容は、LIFO
スタック136上にブツシュされるであろう。 r)ECREVENT命令は明白に、ダウンカウンタ1
20の内容を1ずつ減少させる。それが実行されるごと
に、C0NTR0L100は、DECR信号を発生し、
このDECR信号は、ダウンカウンタ120のDEC入
力に与えられて、その値を1ずつデクリメントさせる。 AヱシコPC(LOOP)(110100:この100
 P命令は、前述のEND t、oop条件(=Iきマ
イクロ命令に関連してループをセットアツプするために
用いられる。END 1.、oOP命令の説明において
述べたように、E41D 100P命令は、その最後の
命令としてF N D −L OOP命令を有している
ループに入る直前に第1のループ命令のアドレスがLI
F、Oスタック136J−にPUSH処理されるという
ことを要求している。イれゆえに、このLOOP命令は
、この第1のループ命令の直前に与えられ、そしてMP
Cレジスタは実行されるべき次の命令を順次指示Jるの
で、それが、すなわらLOOP命令が実行されたどきに
、MPCレジスタ154における値は第1のループ命令
のアドレスに等しくなるであろう。 したか−)で、LOOP命令が実行されるときに、イれ
はC0NTR0L100にスタックマルチプレク勺制f
Ill(STKMUxCTL)信号を発生さ1#、この
信号は5TACK MUX132に与えラレ、g61.
:S’r’ACK MLJX132に、MPCレジスタ
154からライン152上のアドレス信号を選択させて
り、 ’I F Oスタックメモリ136にりえさせる
。同時に、C0NTR0L100は、スタックポインタ
138に与えられるU P信号を発生し、その後に、入
力アドレスの安定化を実行しようとするときに、L、 
I F Oスタック136にりえられたWE信弓が続き
、ここで、信号ライン1341の出力、すなわちMPC
レジスタの内容はLIFOスタック136上にP LJ
 S H処理されるであろう。 64のマイクロプログラムシーケンスコントローラ命令
のうちの63は、後述づるように、スタックポインタ1
38の内容をアクセスさせる。もしも、POP D命令
の実行期間中に、l−11GI−1がコントローラ10
のOE oの端子に与えられると、5TACK OUT
 MUX142の出力信号ライン上のデータは、コント
ローラ10のDA■−△−IN端子への伝送のために双
方向D−バス110上に与えられる。、PC’)PD命
令のり二行明聞中に、C0NTR0L 100は、08
PCUL信脣を発生し、このOS P CT L信号は
、S l’Δ(ンK O(J王 IVIX142に与え
られ、さらに、Yツイン140上の信号、寸なわちII
FOスタックメ[ニリ136のトップ−ヒの内容を3−
状態出力1−゛ンイバ144の入力に通過させる。同時
に、OE o端子にりえられたl−11G +−1によ
って、ライン1/16.1−にl−11G +−1信号
が発生し、ANDゲート(/I7は、ライン148上に
1−11 G l−I D OU丁FN信号を発生し、
この信号はHIGHDOUTEN信号を3−状態出力ド
ライバ144に通信し、これによって、L I F O
スタックメモリ136のトップ上のアドレスを、コント
ローラ10のDATAIN1子への伝送のためにD−バ
ス110上に与える。 PUSHD命令の主な用途は、POP D命令に関連し
て、以下に説明されるように、LIFOスタック136
を拡張づ゛ることである。さらに、Pu5HO命令は、
上述のRE T U RN条件付きマイクロ命令に関連
して、マイク[1プログラム内の特定のシーケンスの実
行に続く指定された命、令へ制御信号を通過させるため
に用いられる。上述のように、RE T U RN命令
は、もしもテスト条件が正当であれば、マイクロプログ
ラムシーケンスコントローラ10に、LIFOスタック
136のトップ上のアドレスをDATA−OUT@子上
に与えさせる。したがって、実行されるべき次のマイク
ロ命令は、RE T IJ RNマイクロ命令の実行期
間中にスタックレジスタ302(第4図)のトップによ
って指示されたマイクロ命令になるであろう。 PUSHD命令を実行することによって、パイプライン
レジスタ36内に保持されるときにその命令フィールド
に含まれる16−ピッドアドレスデータは、]ントロー
ラノ(スデータ40を介してコントローラ10のD/’
l’A IN入力に通信されるζ・dうろう。P U 
S l−I D命令は、C0NTROL 100に、S
 T K M U X CT l−信号を発生させ、こ
の信号は5TACK MIJXl 32に与えられ、さ
らに5TAcK MUX132km、D−パスライン1
10上のアドレスを選択させてLIFOスタックメモリ
136に与えさせ、さらに同時にC0NTR0L 10
0はスタックポインタ138に与えられるUP信号を発
生し、その後に、人力アドレスの安定化を実行しようど
するとき(,1、、I F Oスタック136に与えら
れたW E (ffi号が続き、ここで、信号ライン1
34上の出力、すなわちD−パスライン110上のアド
レスはLIFOスタック136上にPUSH処理される
であろう。したがって、RETLIRNマイクロ命令の
後続の実<1は、コントローラに、その次の命令サイク
ルにおいて、PUSHDマイクロ命令によってLIFO
スタック136上にPUSH処理されたアドレスに配置
された命令を実行させる。ネストされたRETURNの
可能性をもたらすことによって、RETLJRN命令は
、上述のように、RETURNの実行ごと(スタックを
POPすることによってスタック復帰アドレスの適正な
トップを維持する。 RESET’ SPマイクロ命令は、スタックポインタ
138の内容が0であることを保証する。 この命令は典型的には、L r FOスタックのオーバ
フローまたはアンダフ0−が生じたときはいつでも利用
される。1つの項目が全スタック、づなわち既に33の
値を含むスタック上にP LJ’S H処理されるとき
に、オーバフローは生じ、さらにしIFOスタックメモ
リ136の底部におけるその項目を重ね書きさせるであ
ろう。空白のスタック、すなわち値を含まないスタック
から項目がPOP処理されるときに、アンダフ0−が生
じ、さらにその項目に対する規定されない値をもたらす
であろう。RES’ET SP命令ハ、CON、TPO
Llooに、リセットスタックポインタ(、RS T 
SP)信号を発生させ、この信号はスタックボインタ1
38のSPレジスタ308(第4図)のRESET入力
に与えられ、次のクロックパルス(CL K )が受取
られたときに、SPレジスタ308をOにする。 マイクロプログラムシーケンスコントローラに対する特
殊機能命令の集合は、FORA (110111)マイ
クロ命令を含み、このマイクロ命令は、計数値(N>が
D−パスライン110上の信号からC−MUX118に
よって選択されるものとしてFORDの説明において説
明されるときに、FORA命令がC−MUX 118に
一1八−バスライン150上の信号を選択させるという
ことを除いて、すべての点においてFORD命令と同様
に作動する。 =Jント[1−ラに対l)で与えられた特殊機能命令、
すなわちPOP C(111000)およびPU81−
I C(111001)は、P LJ S H=C命令
がD−バス110上のアドレスよりもむしろ、ダウンカ
ウンタレジスタ120の内容を信号ライン122およ1
cFsTAcK MUXj32を介シテL■Foスタッ
ク136のトップ上にP U S l−1処理するとい
うことを除くすべての点において、上述のようにPOP
 DおよびPUSHD命令とオペレーションにおいてそ
れぞれ同一である。同様に、POP C命令は、スタッ
ク136のトップ上の内容を、双方向D−バス110上
よりはむしろ、信号ライン140およびC−MtJX1
18を介してダウンカウンタ120へPOP51!!即
し、POP D命令の場合と同様に、コントローラ10
のDATA IN端子に与える。したがって、スタック
ポインタ138へのアクセスに関する条件およびOE 
o端子におけるH I G Hは、それらがPOP D
命令を実行するために与えられるようには、POP C
命令の実行期間中に与えられない。 PUSHCおよびPOP C命令は、LIFOスタック
メモリ136上で、外側のループ内でネストされた内側
のループへの入口におけるダウンカウンタ120の現在
の外側のループの繰返し計数値を蓄えるために、さらに
内側のループが終了しかつダウンカウンタレジスタ12
0にストアされた適正なループ繰返し計数値によって外
側のループに再度入るときに、外側のループの繰返し割
数値を再度呼出すために対になって用いられている。構
成されたプログラム設計の1−イン、1−アウト原理と
一致して、このLIFOスタック136の利用は、マイ
クロプログラムループが完全にネストされ、それらの物
理的に最初のマイクロ命令においてのみ入れられかつそ
れらの物理的に最後のマイクロ命令に続くマイクロ命令
に対してのみ出ていくということを要求する。 SWA P?イクロ命’?l)実行GJ:、C0NTR
0L 100に、CM U X CT L信号を発生さ
せ、この信号はC−MUX118に与えられて、信号ラ
イン140上のしIFOスタック136の内容のトップ
をダウンカウンタ120へ通過させる。同時に、C0N
TR0LI 00は、STKMUXCT!−信号を発生
し、この信号は5TACK MUX132に与えられて
、5TACK MLJXに、ダウンカウンタ120から
ライン122上の信号を選択させて、C0NTR0L1
00によって連 ”続して発生した、スタック136に
よるWE倍信号受信したときに、スタック136のトッ
プ上へ読出される。これらの状況下に6いて、CON 
TR0L100は、UP信号を発生し、このICめスタ
ックの内容の現在のトップは重ね書きされ、ダウンカウ
ンタ120にロードされ、このため呼出ループに対する
繰返し計数は、呼出されたループに対する繰返し計数を
交換する。 上述のPLISHCマイクロ命令の説明に関連して述べ
たように、現在の外側のループの繰返し計数値は、内側
のネストされたループへの記述項の前にLIFOスタッ
クメモリ136上で蓄えられる。さらに、内側のループ
に対する最初の計数値(N)を確立しこの値をダウンカ
ウンタ120にローF’−dることが通常望ましい。P
USHC1、OAD Dマイクロ命令は、それがバイブ
ライン1ノジスタ36にありD−バス110に与えるた
めにコントローラ10のDATA IN端子に伝えられ
るときに、命令を伴う内側のループの計数1[4(N 
>を用いてこれらの機能を実行する。Pll S l−
I CL O△DDマイクロ命令の実行は実質的に、M
PCレジスタ154の内容よりもむしろ、ダウンカウン
タ120の内容がLIFOスタ・ツク136上にPtJ
SH処理されるということを除いく、1述のFORD命
令に対して説明されたとおりである。 [0△DDマイクロ命令は、その名称が意味するように
、上述のPtJSHCLOAD D命令のこの見地に対
して説明されたように、この命令を伴う計数値(N)に
よるダウンカウンタレジスタ120のロードを実行する
。この値は、ループの繰返し制御に用いられる。 LOAD Aマイクロ命令の動作は、ダウカウンタ12
0のローディングがD−バス110からよりもむしろ△
−バス150から得られるということを除いて、上述の
LOAD ’D命令とすべての点において同一である。 SET’イクロ命令ノ命令法実行0NTR0L100に
、]コンパレータレジスタ12に与えられるLDCR信
号を発生させ、このコンパレータレジスタ128は、さ
らにその後コンパレータレジスタ入力に与えられるD−
バス110上にアドレスをロードする。このアドレスは
S F 1’命令を伴い、さらにそれがパイプラインレ
ジスタ36にある111間中に、それはコントローラ1
0のDATA IN端子に伝えられてD−バス110上
に与えられる。同時に、C0NTR0L100は、能動
化−]コンパレータ E N CMP)信号を発生し、
この侶H(J−jシバレータ129のEN入力に与えら
れる。 能動化されたコンパレータ129は、コントロータ10
のE Q IJ A L出力端子においてHrG)−1
信号を発生し、コンパレータレジスタ128におけるア
ドレスが等し0ごとに、次に実行さるべきマイクロ命令
のアドレスは、INT MUX172および信号ライン
174を介してコンパレータ129に伝えられる。この
情報は、マイクロプログラム内のブレークポイントを確
立しまたはプログラム実行性能に関する統計を集めるた
めに有用である。 CLEARマイクロ命令の実行は、C0NTR0Lに、
コンパレータ129のCLR入力に与えられるクリアコ
ンパレータ(CLRCMP)信号を発生させ、さらにコ
ントローラ10のEQ(JAL出力端子に対するl−I
 I G l−1信号の発生を停葎させる。 POP Dを除くすべての命令はC0NTR0L100
に、5TACK 0LIT MUX142に与えられる
08PCTL信号を発生させ、スタックポインタ信号を
3−状態出力ドライバ144の入力に通過させるので、
POP D命令を、のぞくすべての命令のマイクロプロ
グラムシーケンスコク1〜ローラによる実行期間中に、
スタックポインタ138の現在の値に対するアクセスが
有効である。スタックポインタ値はその後、HI G 
l−1信号をコントローラ10のOEo端子に与えるこ
とによってD−バス110上に与えられ、このため、5
TACK 0IJT MUX142の出力ラインは、D
−バス110に結合されてスタックポインタの値をコン
トローラ10のDA’rA IN端子に伝える。 W帰すンケージ、カウンタの値、およびループアドレス
の記憶のためにLIFOスタック136の一定数のメモ
リロケーションを特徴とする特許ルーチンを実行すると
きに、スタックポインタ138の規在の値は最も頻繁に
必要とされる。このり1ルーチンを実行する前に、これ
らのデータを記憶するためのLrFOスタック上の十分
なメモリロケーションが残っているかどうかが判断され
なければならない。LIFOスタック136は、1− 
OSレジスタ302(第4図)および32−ワードスタ
ックRAM300を含む合計で33のメモリロケーショ
ンから成り立っている。もしも不−1分なスタックメモ
リしか存在しないならば、外部ストレージにおけるスタ
ックの全体またはいくつかの下位の部分を一時的にスI
−アすることによってスタックの拡張が実行される。マ
イク[lプログラム内のバランスがとられたポイント、
すなわちスタックの深さが同一であるポイントにおiプ
るPot)DおJ:(FPLISHD命令によッテ、た
くわえることおよび後で再度ス1へアすることが実行さ
れる。コントローラ10にはA FULL出力端子が設
けられ、これはスタックポインタ値が28に等しくまた
は28を越えるときはいってもHIGH信号を表わし、
このためスタックメモリの有効性はもしも必要ならばよ
り密接にモニタされる。
【図面の簡単な説明】
第1図は、マイクロプロセッサにおけるこの発明の割込
可能なマイクロプログラムシーケンスコントローラの典
型的な応用例を示す図である。 第2A図および第2B図は、この発明のマイクロプログ
ラムシーケンスコント0−ラの機能的なブロック図であ
る。 第3図は、第2A図および第2B図の発明において用い
られるアドレスマルチプレクサによって出力されるべき
アドレスを選択するために用いられるロジック回路の回
路図である。 第4図は、第2A図および第2B図の発明において用い
られる後入れ先出しスタックの機能的なブロック図であ
る。 図において、10はマイクロプログラムシーケンスコン
トローラ、12はデータ処理回路、14はワーキングレ
ジスタ、16は演算ロジックユニット、18はステータ
スレジスタ、20はメモリ、21はデータ獲得回路、2
2はプログラムカウンタ、24はメモリアドレスレジス
タ、26は双方向データバス、28.32はアドレスバ
ス、30はマイクロプログラムメモリ、34はマイクロ
命令バス、3Gはパイプラインレジスタ、38はコント
ローラ命令バス、40はコン1〜〇−ラデータパス、4
2はプロセッサ命令バス、44はステータス信号ライン
、50はマツピングROM、51はレジスタ、52は命
令レジスタ、56は割込コントローラ、58は割込ベク
トルPROM、66はベクトルアドレスバス、68はシ
ステムクロックを示?i。

Claims (13)

    【特許請求の範囲】
  1. (1) 集合からの命令を周期的に処理し、前記命令の
    各々は前記命令を規定するオペレーションコードフィー
    ルドを少なくとも含むフィールドに配置された複数のビ
    ットを有するワードを含みかつ出力データバス上に命令
    アドレスを発生し、かつ入力データパスと、命令ワード
    パスと、前記出力データパスとを介して複数の外部装置
    と通信するマイクロプログラムシーケンスコントローラ
    であって、 (a ) 前記入力データパスに接続されて命令アドレ
    スを受取りかつ一時的にストアするコンパレータレジス
    タ手段と、 (b) 前記コンパレータレジスタ手段に接続されて前
    記ストアされた命令アドレスを受取り、かつ前記出力デ
    ータパスに接続されて前記発生した命令アドレスを受取
    りかつ前記コンパレータレジスタ手段にストアされた命
    令アドレスが前記出力データバス上の前記マイクロブ0
    グラムシーケンスコントローラによって発生した命令ア
    ドレスに等しいときはいつでもイコール信号を発生する
    コンパレータ手段とを含む、マイクロプログラムシーケ
    ンスコントローラ。
  2. (2) 前記命令ワードバスに接続されかつその上の命
    令ワードの前記オペレーションコードフィールドに応答
    して、複数の制御信号を発生する命令デコーディング手
    段をさらに含み、(a ) 前記マイクロプログラムシ
    ーケンスコントローラ命令の集合は、能動化コンパレー
    タ命令および不能化コンパレータ命令を含み、(b) 
    前記能動化コンパレータ命令ワードはさらにアドレスフ
    ィールドを含み、 (C) 前記コンパレータレジスタ手段は前記命令デコ
    ーディング手段に接続されかつ前記命令デコーディング
    手段によって発生したロードレジスタ信号に応答し、か
    つ (d> 前記コンパレータ手段は前記命令デコ−ディン
    グ手段に接続されかつ能動化信号に応答しかつ前記命令
    デコーディング手段によって発生した不能化信号に応答
    し、これによって、前記コンパレータ手段は、前記命令
    ワードパス上の前記能動化コンパレータ命令のオペレー
    ションコードフィールドの前記コーディング手段による
    受信と、前記デコーディング手段によって発生した前記
    ロードレジスタ信号の前記コンパレータレジスタ手段に
    よる結果として生じた受信と、前記入力データパス上で
    受取られた前記能動化コンパレータ命令ワードのアドレ
    スフィールドの前記コンパレータレジスタ手段による結
    果として生じた受信および配憶と、前記デコーディング
    手段によって発生した前記能動化信号の前記コンパレー
    タ手段による受信とに応答して前記イコール信号を発生
    し、 前記コンパレータ手段は、前記命令ワードバス上の前記
    不能化コンパレータ命令のオペレーションフィールドの
    前記デコーディング手段による受信と、前記デコーディ
    ング手段によって発生した前記不能化信号の前記コンパ
    レータ手段による結果として生じた受信とに応答して前
    記イコール信号を発生することを特徴する特許請求の範
    囲第1項記載のマイクロプログラムシーケンスコントロ
    ーラ。
  3. (3) 集合からの命令を周期的に処理し、前記命令の
    各々は前記命令を規定するオペレーションコードフィー
    ルドを少なくとも含むフィールドに配置された複数のビ
    ットを有するワードを含みかつ出力データバス上に命令
    アドレスを発生し、かつ主入力データバスと、命令ワー
    ドパスと、前記出力データパスとを介して複数の外部装
    置と通信し、前記命令ワードバスに接続されかつその上
    の命令ワードの前記オペレーションコードフィールドに
    応答して複数の制御信号を発生する命令デコーディング
    手段を有するマイクロプログラムシーケンスコントロー
    ラであって、 (a ) 複数の従入力データパスを備え、前記従入力
    データバスの各々は、主データパスを含む信号ラインの
    数よりも多くない数の複数の信号ラインを含み、 (b) 前記主入力データバスと、前記複数の従入力デ
    ータパスと、前記命令デコーディング手段とに接続され
    、前記命令デコーディング手段によって発生した前記複
    数の信号の1つを含む制御信号と、前記主入力データバ
    ス上で受取られたデータワードの一部とに応答して、前
    記複数の従入力データパスの1つを前記多重化Mlll
    信号に応答する多重化出力に選択的に結合する多重化手
    段と、<C) 前記多重化手段の出力と、前記主入力デ
    ータバスとに接続されて、前記主入力データパス、1.
    で受取られたワードの予め選択された部分と前記選択さ
    れた従データ入力ワードとを含む命令アドレスを発生す
    る置換手段とをさらに備えた、マイクロプログラムシー
    ケンスコント0−ラ。
  4. (4) 前記置換手段によって発生した前記命令アドレ
    スの最上位ビットは、前記主入力データバス上で受取ら
    れた前記ワードの最上位ビットを含み、前記命令アドレ
    スの最下位ビットは、前記選択された従データ入力ワー
    ドを含む、特許請求の範囲第3項記載のマイクロプログ
    ラムシーケンスコントローラ。
  5. (5) 前記多重化制御信号は、前記命令デコーディン
    グ手段によって発生した前記複数の信号のうちの前記1
    つと前記主入力データバス上で受取られた前記データワ
    ードの2つの最下位ピッ1−とを含む、特許請求の範囲
    第3項記載のマイクロブ0グラムシーケンスコントロー
    ラ。
  6. (6) 集合からの命令を周期的に処理し、前記命令の
    各々は前記命令を規定するオペレーションコードフィー
    ルドを少なくとも含むフィールドに配置された複数のビ
    ットを有するワードを含みかつ出力データバス上に命令
    アドレスを発生し、かつ入力データパスと、命令ワード
    バスと、前記出力データパスとを介して複数の外部装置
    と通信し、前記命令ワードバスに接続されかつその上の
    命令の前記オペレーションコードフィールドに応答して
    複数の制御信号を発生する命令デコーディング手段を有
    し、さらに、前記命令デコーディング手段に接続されか
    つそこに与えられた命令の前記オペレーションコードフ
    ィールドに応答して複数の命令アドレスを受取りかつス
    トアするメモリ手段を含む後入れ先出しスタックを有し
    、前記後入れ先出しスタックはさらに、インクリメント
    /デクリメント手段に接続されかつそれに応答するイン
    クリメント/デクリメントスタックポインタレジスタを
    含み、前記インクリメント/デクリメント手段は、前記
    命令デコーディング手段によって発生した制御信号を受
    取りかつそれに応答して前記スタックポインタレジスタ
    にストアされた現在の値をインクリメントまたはデクリ
    メン1するマイクロプログラムシーケンスコントローラ
    であって、 (a) 前記入力データバスは双方向性であり、(b)
     前記マイクロプログラムシーケンスコントローラは、
    前記双方向性データバスと、前記スタックポインタレジ
    スタの出力とに接続されかつ前記マイクロプログラムシ
    ーケンスコントローラに与えられた出力能動化信号に応
    答して、前記双方向性データバス上の前記スタックポイ
    ンタレジスタにストアされた値を前記出力能動化信号に
    応答して前記複数の外部装置のうちの1つに選択的に通
    信するパスドライバ手段を有する、マイクロプログラム
    シーケンスコントローラ。
  7. (7) 前記後入れ先出しスタックメモリ手段は、前記
    スタックポインタレジスタの出力に接続されかつ前記ス
    タックポインタレジスタにストアされたスタックメモリ
    アドレスに応答し、wI記後入れ先出しスタックはさら
    に、前記スタックポインタレジスタの前記出力と前記双
    方向性データバスドライバ手段との間の前記接続に挿入
    され、さらに前記後入れ先出しメモリ手段と、前記命令
    デコーディング手段とに接続され、前記命令デコーディ
    ング手段に与えられた命令の前記オペレーションフィー
    ルドに応答して前記命令デコーディング手段によって発
    生した制御信号に応答して、前記スタックポインタレジ
    スタにストアされたアドレスまたは前記スタックポイン
    タレジスタにストアされた前記アドレスにおける前記後
    入れ先出しスタックメモリロケーションの内容を、前記
    命令デコーディング手段によって発生した前記出力能動
    化信@および前記制御信号に応答して前記複数の外部8
    1の1つに選択的に通信するスタック出力多重化手段を
    含む、特許請求の範囲第6項記載のマイクロプログラム
    シーケンスコントローラ。
  8. (8) (a) 前記マイクロプログラムシーケンスコ
    ントローラ命令の集合は、双方向性入力データパス上へ
    のpOp命令を含み、 (b ) 前記スタック出力多重化手段は、前記pOp
    命令以外の前記命令の集合内における命令の前記命令ワ
    ードパス上におけるオペレーションコードフィールドの
    前記デコーディング手段による受信に応答して、前記ス
    タックポインタレジスタにストアされたアドレスを前記
    複数の外部装置のうちの前記1つに通信し、 (C) 前記スタック出力多重化手段は、前記命令ワー
    ドバス上の前記pOp命令のオペレーションコードの前
    記デコーディング手段による受信に応答して前記スタッ
    クポインタレジスタにストアされた前記アドレスにおけ
    る前記後入れ先出しスタックメモリロケーションの内容
    を特徴する特許請求の範囲第7項記載のマイクロプログ
    ラムシーケンスコントローラ。
  9. (9) 集合からの命令を周期的に処理し、前記命令の
    各々はオペレーションコードフィールドを少なくとも含
    むフィールドに配置された複数のビットを有するワード
    を含みかつ出力データバス上に命令アドレスを発生し、
    かつ入力データバスと、命令データバスと、命令ワード
    パスと、前記出力データパスとを介して複数の外部装置
    と通信するマイクロプログラムシーケンスコントローラ
    であって、 (a) 前記マイクロプログラムシーケンスコントロー
    ラ命令の集合は、1組の“条件付き″命令を含み、前記
    命令の各々は、前記命令アドレスが前記出力データバス
    上に発生する前に前記コントローラによる複数の外部テ
    スト条件の適用及び処理を必要とし、さらに1組の゛無
    条件″命令を含み、前記命令の各々は、前記複数の外部
    テスト条件の適用および処理を必要と仕ず、 (b) 前記無条件命令の組は、複数の“継続”命令を
    含み、前記命令の各々は前記マイクロプログラムシーケ
    ンスコントローラに、処理されている命令の次に続いて
    生じる命令のアドレスに等しい命令アドレスを前記出力
    データバス上に発生させ、前記マイクロプログラムシー
    ケンスコントローラは、前記無条件継続命令を処理する
    ときに前記出力データバス上の命令アドレスの前記発生
    に加えて゛付加的な機能″を実行する、マイクロプログ
    ラムシーケンスコントローラ。
  10. (10) 前記命令ワードパスに接続されかつその上の
    命令ワードの前記オペレーションコードフィールドに応
    答して複数の制御信号を発生する命令デコーディング手
    段をさらに含み、前記命令ワードオペレーションコード
    フィールドは、2つのピッ1−81およびB2を含み、
    前記複数の外部テスI−条件は、複数(n)のテストビ
    ット丁1゜12、−・・、Tnを含み、前記無条件mV
    t命令の組は複数の命令を含み、各命令は、411 I
    Tに等しいビットB1およびB2を有し、前記命令デコ
    ーディンク手段は、 C0ND= C(F (Tl、T2.、、−、Tr、)
    ORBI’)XOR92という方稈式に従って条件付き
    信号C0NDを発生し、ここでFは前記コンI−ローラ
    による前記テストビットT1.T2.・・・、Tnの適
    用および処理を表わし、これによって81およびB2が
    °1″′に等しいときに、命令デコーディング手段は、
    前記(n)テストビットの値とは無関係に、4゛Onに
    等しいC0ND@号を発生し、ここで、前記マイクロブ
    0グラムシーケンスコドンローラは、前記複数の外部テ
    スト条件の適用および処理を必要とすることなく、前記
    “付加的な機能″を特徴する特許請求の範囲第9項記載
    のマイクロブ0グラムシーケンスコントローラ。
  11. (11) 集合からの命令を周期的に処理し、前記命令
    の各々は、オペレーションコードフィールドを少なくと
    も含むフィールドに配置された複数のビットを有するワ
    ードを含みかつ出力データバス上に命令アドレスを発生
    し、かつ複数の入力データパスと、命令ワードバスと、
    前記出力データバスとを介して複数の外部装置と通信し
    、さらに前記マイクロプログラムシーケンスコント〇−
    ラ命令の集合は、複数の゛条件付き′″命令含み、前記
    命令の各々は、前記命令アドレスが前記出力データバス
    上に発生する前に前記コントローラによる複数の外部テ
    スト条件の適用および処理を必要とし、前記命令ワード
    バスに接続されかつその」−の命令ワードの前記オペレ
    ージコンコードフィールドおよび前記複数の外部テスト
    条件に応答してWJ数の制御信号を発生する命令デコー
    ディング手段を有し、前記コントローラは、処理されて
    いる命令の次に続いて生じる命令のアドレスを含むソー
    スを含む、複数の内部の次のアドレスのソースを有する
    マイクロプログラムシーケンスコントローラであって、 前記複数の入力データパスと、前記複数の内部の次のア
    ドレスのソースと、前記命令デコーディング手段とに接
    続された“条件付き”入力の第1の組と、前記法に続い
    て生じる命令のアドレスを含む前記内部ソースに接続さ
    れかつ前記命令デコーディング手段によって発生した前
    記複数の信号のうちの1つを含む制御信号に応答する第
    2の“無条例”人力とを有し、前記第2の゛′無無条件
    大入力、前記複数の第1の条件付き人力または前記第2
    の無条件入力のうらの1つを前記多重化制御信号に応答
    して前記出力データバスに選択的に結合し、前記マイク
    ロプログラムシーケンスコントローラは、前記多重化制
    御信号と同時に前記多重化手段入力を発生させ、ここで
    、前記コントローラが前記条件付き命令の1つを処理す
    るときに前記多重化手段は前記条件付き人力の1つを選
    択しかつ前記条件付き命令の前記処理のときに前記命令
    デコーディング手段は前記多重化制御信号の1つを発生
    しかつ前記無条件入力を選択し、さらに前記命令デコー
    ディング手段は前記多重化制御信号の他方を発生する、
    マイクロプログラムシーケンスコントローラ。
  12. (12) 前記命令ワードオペレーションコードフィー
    ルドは、2つのビットB1およびB2を含み、前記複数
    の外部テスト条件は、複数(n)のテストピッ)〜11
    .T2.・・・、Tnを含み、さらに前記条件付き命令
    の各々は、“0″に等しいビットB1を有し、前記命令
    デコーディング手段IJ、 C0ND = ((F (TI、 T2.−、Tn )
     ORBl) XORF32という方程式に従って前記
    多重化制御信号C0NDを発生し、 ここで、Fは前記コントローラによる前記テストビット
    T’l、T2.・・・、7nの適用および処理を表わし
    、これによってビット2の値は、条件付き命令が真また
    は反転された極性を有するか否かを判断し、ここで0″
    に等しいビットB2を有する条件付き命令は、もしもテ
    ストビット王1゜T2.・・・、Tnがすべて“1″で
    あれば前記多重化手段に前記条件付き人力のうちの前記
    1つを選択させ、1°′に等しいビットB2を有する条
    件付き命令は、もしもテストビットT、、1.T2.・
    ・・。 Tnの少なくとも1つが“O″であれば前記多重化手段
    に前記条件付き人力のうちの前記1つを選択させる、特
    許請求の範囲第11項記載のマイクロプログラムシーケ
    ンスコント[]−ラ。
  13. (13) 集合からの命令を周)目的に処理し、かつ前
    記命令の各々は、前記命令を規定するオペレーションコ
    ードフィールドを少なくとも含むフィールドに配置され
    た複数のビットを有するワードを含みかつ出力データパ
    ス上に命令アドレスを発生し、かつ入力データバスと、
    命令ワードパスと、前記出力データパスとを介して複数
    の外部装置と通信し、前記命令ワードバスt、[liA
    されかつその上の命令の前記オペレーションコードフィ
    ールドに応答して複数の制御信号を発生ずる命令デコー
    ディング手段を有し、さらに、前記命令デコーディング
    手段に接続されかつそこに与えられた命令の前記オペレ
    ーションコードフィールドに応答して複数の命令アドレ
    スを受取りかつストアするメモリ手段を含む後入れ先出
    しスタックを有し、前記後入れ先出しスタックはさらに
    、インクリメント/デクリメント手段に接続されかつそ
    れに応答するインクリメント/デクリメントスタックポ
    インタレジスタを含み、前記インクリメント/デクリメ
    ント手段は、前記命令デコーディング手段によって発生
    した制御信号を受取りかつそれに応答して前記スタック
    ポインタレジスタにストアされた現在の値をインクリ−
    メントまたはデクリメントし、かつ前記マイクロプログ
    ラムシーケンスコントローラ命令の集合は、複数のパ条
    件付き″命令を含み、そのような命令の各々は、前記命
    令デコーディング手段がWE制御信号を発生する前に前
    記コントローラによる複数の外部テスト条件信号の適用
    および処理を要求づるマイクロプログラムシーケンスコ
    ントローラであって、 (a ) 前記命令デコーディング手段によって発生し
    た前記インクリメント/デクリメント手段制御信号は、 前記インクリメント/デクリメント手段の条件付きイン
    クリメンタ部分への入力において受取られたup信号と
    、 前記インクリメント/デクリメント手段の条件付きデク
    リメンタ部分への入力において受取られ1ζdown信
    号とを含み、 (b) 前記インクリメント/デクリメント手段および
    前記スタックポインタレジスタは、前記条件付きインク
    リメンタへの前記入力と前記後入れ先出しメモリ手段と
    の間においてただ1つのゲート遅延時間を有し、 (C) 前記マイクロプログラムシーケンスコントロー
    ラは、前記後入れ先出しメモリ手段による前記命令アド
    レスの受信および記憶を要求する前記条件付命令の1つ
    を処理し、もしも前記WE倍信号発生したならば、前記
    命令デコーディング手段に与えられた前記命令のオペレ
    ーションフィールドに応答して前記命令デコーディング
    手段によって発生した前記up制御信号に応答して1つ
    のコントローラサイクルにおいて前記記憶を引き起こし
    、前記条件付きインクリメンタによって受取られた前記
    up制御信号は、前記スタックポインタレジスタにスト
    アされた前記現在の値を1ずつインクリメントさせ、さ
    らに前記後入れ先出しスタックメモリ手段に通信させ、 前記命令デコーディング手段によって発生した前記WE
    倍信号前記後入れ先出しメモリ手段による受信は、前記
    スタックポインタレジスタから受取られた前記インクリ
    メントされたロケーションの値の前記メモリ手段による
    前記命令アドレスの前記受信および記憶を引き起こし一
    首記WE信号の受信に十分に先行した時間において前記
    メモリ手段によって受取られた前記記憶のロケーション
    の値は、さらに遅延することなく前記記憶を実行させ、
    または、 前記命令デコーディング手段によって発生した前記do
    wn信号の前記条件付きデクリメンタによる受信は、前
    記スタックポインタレジスタにストアされた前記現在の
    値を1ずつデクリメントさせ、これによって、もしも、
    前記外部テスト条件信号が全く存在()ないということ
    を示ず前記W E l1ill m信号を前記命令デコ
    ーディング手段が発生しないならば、前記条件付きイン
    クリメントを取消し、前記後入れ先出しメモリ手段によ
    る前記命令アドレスの前記記憶は行なわれない、マイク
    ロブ0グラムシーケンスコントローラ。
JP60097693A 1984-05-08 1985-05-07 マイクロプログラムシーケンスコントローラおよびその動作方法 Expired - Lifetime JPH0814793B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60831984A 1984-05-08 1984-05-08
US608319 1984-05-08

Publications (2)

Publication Number Publication Date
JPS60241132A true JPS60241132A (ja) 1985-11-30
JPH0814793B2 JPH0814793B2 (ja) 1996-02-14

Family

ID=24435968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60097693A Expired - Lifetime JPH0814793B2 (ja) 1984-05-08 1985-05-07 マイクロプログラムシーケンスコントローラおよびその動作方法

Country Status (4)

Country Link
EP (2) EP0167241B1 (ja)
JP (1) JPH0814793B2 (ja)
AT (2) ATE98791T1 (ja)
DE (2) DE3587683T2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU
US5491660A (en) * 1994-11-18 1996-02-13 Texas Instruments Incorporated On-chip operation control for memories
US5719880A (en) * 1996-09-20 1998-02-17 Texas Instruments Incorporated, A Delaware Corporation On-chip operation for memories
GB2418272A (en) * 2004-09-17 2006-03-22 Marconi Comm Ltd Processor arrangement having a stack memeory
CN111078590A (zh) * 2019-12-30 2020-04-28 中国人民解放军国防科技大学 一种高效的访存地址位翻转统计装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS513748A (ja) * 1974-06-28 1976-01-13 Yokogawa Electric Works Ltd
JPS5523588A (en) * 1978-08-08 1980-02-20 Nec Corp Micro program control unit
JPS575156A (en) * 1980-05-07 1982-01-11 Fairchild Camera Instr Co Interruptible microprogram sequence device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3553651A (en) * 1967-12-06 1971-01-05 Singer General Precision Memory storage system
FR2211141A5 (ja) * 1972-12-14 1974-07-12 Honeywell Bull
EP0063458B1 (en) * 1981-04-13 1989-08-23 Texas Instruments Incorporated Microcomputer system
US4472772A (en) * 1981-08-03 1984-09-18 Burroughs Corporation High speed microinstruction execution apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS513748A (ja) * 1974-06-28 1976-01-13 Yokogawa Electric Works Ltd
JPS5523588A (en) * 1978-08-08 1980-02-20 Nec Corp Micro program control unit
JPS575156A (en) * 1980-05-07 1982-01-11 Fairchild Camera Instr Co Interruptible microprogram sequence device

Also Published As

Publication number Publication date
EP0448127B1 (en) 1998-01-28
EP0167241A3 (en) 1989-03-29
JPH0814793B2 (ja) 1996-02-14
DE3588175T2 (de) 1998-09-10
EP0167241A2 (en) 1986-01-08
EP0167241B1 (en) 1993-12-15
DE3587683T2 (de) 1994-07-14
DE3587683D1 (de) 1994-01-27
DE3588175D1 (de) 1998-03-05
ATE98791T1 (de) 1994-01-15
EP0448127A3 (en) 1992-12-23
ATE162896T1 (de) 1998-02-15
EP0448127A2 (en) 1991-09-25

Similar Documents

Publication Publication Date Title
US4868735A (en) Interruptible structured microprogrammed sixteen-bit address sequence controller
US4398244A (en) Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US4016545A (en) Plural memory controller apparatus
US5070451A (en) Forth specific language microprocessor
KR100242617B1 (ko) 파이프 라인 컴퓨터 시스템
US4719565A (en) Interrupt and trap handling in microprogram sequencer
JPS61500385A (ja) マイクロコンピユ−タ
US4045782A (en) Microprogrammed processor system having external memory
JPS62217354A (ja) プロセツサ
US4933941A (en) Apparatus and method for testing the operation of a central processing unit of a data processing system
CZ93491A3 (en) Digital computer system
EP0333319A2 (en) Bus-combatible programmable sequencers
US5367649A (en) Programmable controller
US3953833A (en) Microprogrammable computer having a dual function secondary storage element
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
PL114858B1 (en) Data processing system
JPS5935056B2 (ja) デ−タ処理装置
US4159520A (en) Memory address control device with extender bus
US4115852A (en) Microprogrammed controller
JPS60241132A (ja) マイクロプログラムシーケンスコントローラ
US5495598A (en) Stuck fault detection for branch instruction condition signals
US5539888A (en) System and method for processing external conditional branch instructions
JPS5833965B2 (ja) コンピュ−タ診断方法およびその装置
JPS62263536A (ja) コンピユ−タの動作改善方法