JPH0814793B2 - マイクロプログラムシーケンスコントローラおよびその動作方法 - Google Patents

マイクロプログラムシーケンスコントローラおよびその動作方法

Info

Publication number
JPH0814793B2
JPH0814793B2 JP60097693A JP9769385A JPH0814793B2 JP H0814793 B2 JPH0814793 B2 JP H0814793B2 JP 60097693 A JP60097693 A JP 60097693A JP 9769385 A JP9769385 A JP 9769385A JP H0814793 B2 JPH0814793 B2 JP H0814793B2
Authority
JP
Japan
Prior art keywords
instruction
address
signal
input
stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP60097693A
Other languages
English (en)
Other versions
JPS60241132A (ja
Inventor
オーレ・ヘンリツク・モーラー
サンジヤイ・アイエール
ポール・ポー・ロイ・チユー
Original Assignee
アドバンスト・マイクロ・ディバイシズ・インコーポレーテッド
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 アドバンスト・マイクロ・ディバイシズ・インコーポレーテッド filed Critical アドバンスト・マイクロ・ディバイシズ・インコーポレーテッド
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

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22—Microcontrol or microprogram arrangements
    • G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262—Arrangements for next microinstruction selection
    • G06F9/264—Microinstruction selection based on results of processing
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/36—Prevention of errors by analysis, debugging or testing of software
    • G06F11/362—Debugging of software
    • G06F11/3648—Debugging of software using additional hardware
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14—Handling requests for interconnection or transfer
    • G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22—Microcontrol or microprogram arrangements
    • G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262—Arrangements for next microinstruction selection
    • G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003—Arrangements for executing specific machine instructions
    • G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054—Unconditional branch instructions
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003—Arrangements for executing specific machine instructions
    • G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30061—Multi-way branch instructions, e.g. CASE
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/30—Monitoring
    • G06F11/34—Recording 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)

Description

【発明の詳細な説明】 この発明は一般的には、100ナノ秒よりもはるかに短
いクロック周期を有し、16−ビットアドレスを有するマ
イクロプログラムメモリにストアされたマイクロ命令の
実行のシーケンスを制御するマイクロプロセッサにおい
て用いるためのワンチップの割込み可能なマイクロプロ
グラムコントローラに関し、より特定的には、組立てら
れたマイクロプログラミング構成の使用と、ソフトウェ
アおよびハードウェアのデバッグの能力の有効性を通じ
て容易にマイクロプログラムされ、さらにマイクロ命令
を急速かつ有効に実行するマイクロプログラムシーケン
スコントローラに関する。
発明の背景 典型的には、マイクロプログラムされたシステムは、
2つのサブセクション、すなわち実行されるべき命令の
順序およびデコーディングを管理する制御セクション
と、データ上の命令によって要求されるオペレーション
を実行するデータ処理セクションとに分割され得る構成
においてブロックを構成するために用いられる種々の大
規模集積回路(VLSI)チップから構成されている。この
制御セクションは通常、マイクロプログラムアドレスを
発生するマイクロプログラムシーケンスコントローラ
と、マイクロ命令を含むマイクロプログラムメモリとを
有している。各マイクロ命令は、データ処理セクション
内で各エレメントを制御する複数のビットを含んでい
る。
従来のマイクロプログラムシーケンスコントローラ
は、比較的制限されたサイズのマイクロプログラムメモ
リをアドレスすることが可能であった。コントローラに
よってアクセス可能なメモリのサイズを増大するための
1つの試みは、いくつかのコントローラを並列にして必
要なアドレス能力を得ることである。これは、典型的に
は、“ビットまたはバイトスライス”方法と呼ばれてい
る。しかしながら、この方法は、コントローラチップの
端子のピンの大規模な並列相互接続を伴い、これはコン
トローラのサイクル時間を増大させ、より大きなパッケ
ージの数とより高い製造および応用の費用とを伴い、さ
らにマイクロプログラムされたシステムのためのより大
きな物理的スペースを必要とする。さらに、各コントロ
ーラチップ上に存在するマイクロ命令デコード機能のよ
うな、一定のワンチップ機能は不必要に重複されてい
る。
従来のマイクロプログラムシーケンスコントローラの
他の制限は、後入れ先出しスタックが実行される方法で
ある。1つの試みにおいて、スタックの内容のトップの
一時的な記憶のために単独のレジスタが用いられ、この
ため、1つの命令サイクル期間中にPUSHが実行され得
る。このレジスタは単に、スタックを実現するRAMへの
書込アドレス信号を安定化させる必要性と、書込みがデ
ータプロセッサ内の素子のステータスのテストを条件と
しているという事実とから設けられた。アドレス信号が
安定化するために要する時間と、条件信号を決定するた
めに要する時間との合計が、命令実行に専用される命令
サイクルの通常50%である時間よりも長いので、レジス
タは、スタックを実現するRAMにワードが転送され得る
ときに次の命令サイクルまでワードを保持するために用
いられた。
さらに、この試みは、第2の命令サイクル、すなわち
RAMへの実際の書込みまでの遅延を伴っており、これに
よって安定した書込アドレス信号を保証している。した
がって、この試みにおいて、過剰な、専用されたレジス
タが必要とされ、コントローラをより複雑かつ高価なも
のにしており、さらにスタック上へのPUSHは、2つの命
令サイクルを必要としており、コントローラの実行およ
び究極的にはマイクロプログラムされたシステムの実行
を遅いものにしている。
先行技術のシーケンスコントローラによる条件付きブ
ランチ命令の取扱いは、典型的には厳密にかつ連続的な
態様で進行された:第1に、テストされるべきデータプ
ロセッサの特定のステータスが決定され、その後、第2
に、命令がデコードされかつもしもそれが条件付きタイ
プのものであることが判断されれば、そのときには、第
3に、テスト条件の結果に従ってブランチアドレスが決
定された。このような構成下においては、最小の命令サ
イクル時間は、これらの3つのプロセスの各々に対する
時間の合計であり、さらに、典型的にはテスト条件信号
を発生しかつ命令をデコードする時間は比較的長いの
で、命令サイクルの大部分がテスト条件の結果を待つの
に費やされる。現実に、この厳密な連続的態様で命令が
処理されるときに命令処理サイクルのほとんどに対して
コントローラは“アイドリング”である。マイクロプロ
グラムコントローラ命令サイクル時間はマイクロプロセ
ッサの速度を直接決定するので、この“アイドリング”
ファクタは測定可能な態様でこの速度を低下させる。
従来のマイクロプログラムシーケンスコントローラ
は、一定の低い順位のブランチアドレスビットを種々の
条件付きステータスビットによるビットの集合と“OR"
処理することによって修正させることによってマルチウ
ェイブランチングの制限された形態を実現した。マルチ
ウェイブランチングに対するこの試みは、変更されるべ
きではないどのアドレスビットも0とのみ“OR"処理さ
れることを保証することをプログラマに要求し、したが
ってエラーの発生源となる。この試みはまた、ブランチ
が実行される条件として複合ステータスが用いられると
きに各個々のステータス条件がテストされなければなら
ない2−ウェイブランチの列を伴っている。この態様で
マルチウェイブランチングを実現するプログラムは、そ
れらが必要とするよりも遅くかつより複雑である。
マイクロプログラムシーケンスコントローラにおいて
従来利用されたマイクロ命令の集合は、命令のタイプを
コーディングする命令ビットの割当てにおいて典型的に
は特殊フォーマットを用いる。この集合はまた、特殊
な、また構成されていないマイクロプログラムの書込み
を促進する。たとえば、典型的な命令の集合において、
条件付きおよび無条件マイクロ命令は混合され、さらに
命令デコーディング回路は条件付きとして命令のファー
ストカット(first-cut)の分類を容易に行なうことが
できない。どの命令も無条件であると判断される前にス
テータス条件の比較的時間のかかるテストが必要とされ
る一方で、さもなければステータステストに使用される
であろうそらの命令サイクルの一部の期間中に無条件命
令によって一定の付加的な機能が実行されるであろう。
さらに、規則正しいマイクロプログラムの構成の欠如
は、時間を消費するプログラムの展開とデバッグとをも
たらし、その結果生じたプログラムは組立てられたプロ
グラムの自己のドキュメンテーションに欠けている。
発明の概要 この発明は、64K(K=1024)命令を全部ストアして
いるマイクロプログラムメモリに配置されたマイクロ命
令を、コントローラに急速かつ有効に処理させる命令デ
コード回路を含むマイクロプログラムシーケンスコント
ローラに関する。このコントローラは、テスト条件ステ
ータスの計算と並行して条件付きブランチアドレスの計
算を提供する。このコントローラは、マイクロプログラ
ムの構成されたデザインを許容するマイクロ命令を処理
し、さらにコントローラおよびマイクロ命令の集合の双
方は、構成されたマイクロプログラミングの展開および
デバッグを助けるという特徴を使用している。全体のコ
ントローラの構成は、単一の集積回路として製造され得
るように設計されている。
この発明によると、プログラムメモリにストアされた
マイクロ命令の実行のシーケンスを制御しようとするア
ドレスシーケンサとして用いられるマイクロプログラム
コントローラには、マイクロプログラムメモリ内で64K
に達するロケーションをアドレスさせる16−ビットの回
路素子が設けられている。このコントローラは、マイク
ロ命令アドレスの入力と、その結果もたらされる次のマ
イクロ命令アドレスの出力とのための双方向性16−ビッ
トデータバスを使用している。双方向データバスはま
た、オンチップ後入れ先出しスタックのトップ上の値ま
たはスタックポインタの値のような種々のオンチップパ
ラメータをアクセスするために用いられてもよく、さら
に割込アドレスを導入するために用いることもできる。
補助的な16−ビットデータバスは、第2のアドレス入力
経路をコントローラに設けさせる。4つの4−ビットデ
ータ入力は、マイクロプログラムの制御下において単一
ステップのマルチウェイブランチングに対する“マルチ
ウェイ”置換ビットを与える。
この発明によるマルチウェイブランチングは、2−ウ
ェイ条件付きブランチの列よりもはるかに速く実行する
マイクロコードを発生する態様でビット置換を使用して
いる。さらに、マルチウェイブランチングの特徴は、従
来のマイクロプログラムシーケンスコントローラよりも
速くかつ費用のかからないハードウェアにおいて実現さ
れる。コントローラのデコード回路に関連して用いられ
るマイクロ命令フォーマットは、マイクロ命令のタイプ
の急速な検出を可能にしている。それゆえに、コントロ
ーラは、条件付きブランチアドレスの計算と並行して進
行するようにステータス条件のテストを開始することが
できる。このコントローラは、一時的なストレージレジ
スタの必要性を省きなおかつ単一の命令サイクルにおい
てスタック上へのPUSHを実行するスタックメンテナンス
手法を用いている。
このコントローラに関連して用いられる64のマイクロ
命令の集合は、構成されたマイクロプログラミングを支
持するように設計されかつマイクロプログラムコントロ
ーラに、“CASE",“REPEAT…UNTIL",“DO…WHILE",“FO
R…DOWN TO"命令文、ネストされたループ、およびネス
トされた“IF…THEN"命令文などのような組立てられた
構成を与える。オンチップアドレスコンパレータは、特
定のアドレスに配置されたマイクロ命令を捉えさせまた
はマイクロプログラムのフローに関連する統計を集めさ
せる。この特徴はプログラムの設計およびデバッグを強
化させる。
この発明のコントローラに関連して用いられるマイク
ロ命令フォーマットは、16のいわゆる“継続”マイクロ
命令の集合を最大限に利用し、このため、付加的な特殊
機能が、どの“継続”マイクロ命令の実行期間中にもコ
ントローラによって実行され得る。
この発明のコントローラは、ユーザがコントローラの
保持又は割込みの特徴を必要としなければ、マイクロ命
令パイプライン化のどのレベルをも支持して処理速度を
増大することができる。このコントローラは、主/従の
組合わせにおいて並行して作動可能であり、エラーの検
出をもたらす。
この発明の特性および長所をより完全に理解するため
に、添付された図面に関連して行なわれる以下の詳細な
説明が参照されるべきである。
好ましい実施例の説明 A.総論 多くのプログラム可能なデジタル装置は、今日ではマ
イクロプログラミングを利用している。そのような装置
において、装置の制御の大部分は、ゲートおよびフリッ
プフロップの大規模なアレイよりもむしろリードオンリ
メモリ(ROM)を用いて実行される。この手法はしばし
ば、デジタル装置におけるパッケージの数を減少させ、
さらにランダムロジックが用いられるときに存在しない
高次構造を提供している。さらに、マイクロプログラミ
ングは、装置の命令の集合を実行するのに非常に簡単な
ように変化させ、装置のための製造後の技術的なコスト
を実質的に減少させる。
第1図は、プログラム可能なデジダル装置において用
いられる典型的なマイクロプロセッサシステムの構成を
描いており、2つの別々のセクションに分割され得る:
すなわち、左側の制御および命令獲得および処理セクシ
ョンAと、右側のデータ獲得および操作セクションBと
である。セクションAは、その中心部に、一般に参照番
号10で指定された、この発明のマイクロプログラムシー
ケンスコントローラを有している。データ獲得および操
作セクションBは、一般に12として指定されたデータ処
理回路を含み、このデータ処理回路12は、ワーキングレ
ジスタ14と、演算ロジックユニット(ALU)16と、ステ
ータスレジスタ18とを含んでいる。データ処理回路は、
プログラムカウンタ22によってアドレスされかつメモリ
アドレスレジスタ24を介してアクセスされる、一般に21
として指定されたデータ獲得回路によって指定された
“マシーン”命令によって要求されるオペレーションな
ら何でも実行することによってメモリ20から獲得された
データを処理する。各“マシーン”命令は、マイクロプ
ログラムシーケンスコントローラ10によって選択された
マイクロ命令のシーケンスによってマイクロプロセッサ
上で実行される。
一方、議論のために、第1図に示されたブロックのい
くつかは、指定されたラインによって相互接続されるも
のとして明白に示されているが、示されたどのブロック
の間のデータ通信も双方向データバス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信号は、データ処理回路12の条件テスト
(CT)出力上に与えられる。より典型的には、データ処
理回路は、複数の条件テスト信号をCT出力に多重化する
ことができる回路を含んでいる。ここで開示される機能
を提供するデータ処理回路の詳細な説明は、Mc Graw-Hi
ll,1980 ISBN 0−07-041781−4におけるJohn Mickおよ
びJim Brickによる“ビット−スライスマイクロプロセ
ッサデザイン(Bit-Slice Microprocessor Design)”
において提供されている。
データ処理回路12のCT出力に現われるテスト信号は、
ステータス信号ライン44を介してマイクロプログラムコ
ントローラ10のT入力に与えられ、ここで、これらのテ
スト信号は、選択入力S0-S3の制御下において、マイク
ロプログラムメモリ30に与えられるであろうアドレスを
条件付きで変更するために用いられる。
マイクロ命令“ブランチ”アドレスは、5つのソース
のどれからも得ることができる:第1に、コントローラ
データバス40からマイクロプログラムシーケンスコント
ローラ10のDATA IN入力へ与えられ、ここで、これはマ
イクロプログラムアドレスに対して用いられている。マ
イクロ命令アドレスの第2の可能なソースは、レジスタ
51を介してマイクロプログラムシーケンスコントローラ
10のAUX DATA IN入力に接続されたマッピングリードオ
ンメモリ(ROM)50から得られる。これらのアドレス
は、DATA IN入力上のアドレスに代わるものとして一定
のマイクロ命令によって利用される。マッピングROM50
は典型的には、開始マイクロルーチン“ブランチ”アド
レスを含み、さらに命令レジスタ52の出力によってそれ
自身アドレスされる。さらに、命令レジスタ52には、プ
ログラムカウンタ22の管理下において、メモリ20から
“マシン命令”が与えられている。このマシン命令は、
(マイクロプログラムメモリ30にストアされた)マイク
ロ命令のいくつかを順次実行することによっ実施され
る。
マイクロプログラムシーケンスコントローラ10に対す
るいわゆる4−ビット“マルチウェイ”入力M0,M1,M2お
よびM3は、マイクロ命令ブランチアドレスの第3のソー
スであり、これによって、一定のマイクロ命令は、DATA
IN入力上の2つの最下位ビット値に従って、DATA IN入
力における最下位4ビットを、M0,M1,M2またはM3におい
て存在する4−ビットパターンの1つで置換させる。
マイクロ命令ブランチアドレスの第4および第5のソ
ースは、コントローラ内部のレジスタから得られ;復帰
またはループアドレスはスタックレジスタのトップから
得られ;または次に続いて生じるアドレスはマイクロプ
ログラムカウンタレジスタから得られる。
マイクロプログラムシーケンスコントローラ10は内部マ
ルチプレクサを有しており、このマルチプレクサは、マ
イクロ命令の管理下において、ブランチアドレスの5つ
のソースのうちの特定の1つの選択を制御する。
マイクロプログラムシーケンスコントローラの典型的
な応用例においては、割込を扱うための回路54が含まれ
るであろう。たとえば、第1図に示されるように、この
発明の譲受人によって製造された“Am29114リアルタイ
ム割込コントローラ”のような割込コントローラ56と、
割込ベクトルPROM(IVP)58とが含まれている。割込コ
ントローラ56は、その割込入力(II1,II2,…,IIn)に
おいて、対応する信号ライン60を介して個々の周辺ユニ
ットから、サービスのいくつかのタイプ(すなわち、デ
ータ転送,読出切換えなど)を要求する割込信号を受取
る。割込信号がそのII1-IIn入力の1つにおいて受取ら
れるときに、割込コントーラ56は割込(INT)出力から
割込要求信号を発行し、これは信号ライン60を介してマ
イクロプログラムコントローラ10の割込要求(INTR)入
力に伝えられる。示されているように、そのINTR入力に
おいてマイクロプログラムシーケンスコントローラ10に
よって受取られた信号は、ストレージルーチンを開始さ
せて、コントローラ10の種々のレジスタに現在含まれて
いる情報をストアして適当な場所において現在のマイク
ロ命令シーケンスに復帰することを可能にする。
受入れられた割込要求の受信に続いて、コントローラ
10は出力INTAに肯定応答割込信号を発生し、この信号は
ライン62を介してIVP58および割込コントローラ56に送
られ、サービスを要求している特定のユニットを特定す
るマルチビットワードを公式化する。この公式化された
ワードは、信号ライン64上をIVP58へ伝えられる。IVP58
の各メモリロケーションは、個々の割込をサービスする
ために必要とされるマイクロプログラムメモリ30に含ま
れるマイクロ命令の各シーケンスのアドレスを含んでい
る。したがって、割込コントローラ56によって発生しか
つ信号ライン64上を伝えられたコード化されたワード
は、IVP58のアドレス回路に与えられる。さらに、IVP
は、必要とされる割込ハンドリングサブルーチンの第1
のマイクロ命令のアドレスをベクトルアドレスバス66を
介してマイクロプログラムメモリ30に通信し、このバス
66は3−状態バッファを介して“Y"アドレスバス32と相
互接続する。
IVP58から通信されたベクトルアドレスがマイクロプ
ログラムメモリ30に与えられるときに、割込要求サービ
スを扱うために必要とされるサブルーチンに対するマイ
クロ命令は、パイプラインレジスタ36にロードされる。
すべてのマイクロ命令と同様に、パイプラインレジスタ
36に含まれるマイクロ命令の各部は、コントローラ命令
バス38を介してマイクロプログラムシーケンスコントロ
ーラ10に戻され、割込サブルーチンのマイクロ命令のシ
ーケンスを制御させる。さらに、これらのマイクロ命令
部分は、バス38を介して割込コントローラ58に伝送さ
れ、このコントローラ56は内部制御信号を発生するため
にこれらを用いる。割込がサービスされているときに、
最後のマイクロ命令は、マイクロプログラムシーケンス
コントローラに、そこから“ジャンプ”した、アドレス
発生のプログラムシーケンスへの復帰を実行される。
“マシン”命令と呼ばれてもよい命令が、命令レジス
タ52へロードされる。この命令レジスタの内容はマッピ
ングROM50に与えられて、さらにマイクロプログラムメ
モリ30における第1のマイクロ命令のアドレスを発生す
るが、このマイクロ命令は実行されて(命令レジスタ52
によって保持された命令によって特定された)要求され
た機能を実行しなければならない。このアドレスに対す
るブランチは、マイクロプログラムシーケンスコントロ
ーラ10を介して発生する。マシン命令は、たとえば、メ
モリ20からのデータの取出し、ALU16内での演算または
ロジックオペレーションの実行、オーバフローまたは他
のステータスの表示に対するテストおよびステータスレ
ジスタ18のセットなどのような、実行されるべきいくつ
かのマイクロ命令を要求する。マシン命令によって要求
されたマイクロ命令の完了に続いて、コントローラ10は
通常、命令取出サイクルを開始するであろう。しかしな
がら、このポイントにおいて、マイクロコードの他のセ
クションに対するブランチも存在してもよい。たとえ
ば、マイクロプロセッサは割込コントローラ入力60の一
方において割込を受取り、IVP58から割込サービスルー
チンアドレスを得る。
第1図のマイクロプロセッサの同期したオペレーショ
ンを実行するために、システムクロック68が設けられて
おり、このシステムクロック68は、クロックライン70上
を第1図のマイクロプロセッサの個々の要素に伝えられ
るクロックパルスを発生する。
マイクロプログラムシーケンスコントローラ10は、他
のシーケンスコントローラとの主/従構成において作動
され、このため、内部および外部特性の双方の欠陥が検
出され得る。これらの2つのコントローラは並列で作動
され、第1のシーケンサが主シーケンサとして設計され
かつ上述のように正常に作動する。第2のコントローラ
は、HIGH信号をSLAVE入力上に与えかつERROR出力を除く
そのすべての出力を主コントローラの対応する出力に接
続することによって従モードに入る。主コントローラの
ERROR出力上のHIGH信号は、ドライバまたはバスコンテ
ンションのような故障した外部装置を示している。従コ
ントローラのERROR出力上のHIGH信号は、コントローラ
のいずれか一方におけるエラーを示している。
B.マイクロプログラムコントローラ マイクロプログラムシーケンスコントローラ10の内部
構成が第2図に示されている。第2A図を参照すると、コ
ントローラ命令として機能する、パイプラインレジスタ
36(第1図)に含まれるマイクロ命令のその部分は、I
入力においてマイクロプログラムシーケンスコントロー
ラによって受取られ、かつプログラムされたリードオン
リメモリおよび関連するロジック回路(CONTROL)100の
命令(INST)入力に伝えられる。CONTROL100のINST入力
で受取られた命令ワードは、実行されるべき次のマイク
ロ命令のアドレスを選択するためにマイクロプログラム
シーケンスコントローラ10によって用いられる6−ビッ
トワードである。コントローラの命令集合は、各々16の
命令からなる4つのクラスに分割された64のマイクロ命
令から構成される。6−ビットワードの2つの高次ビッ
トはクラスを選択するために用いられ、さらに残りの4
ビットは、クラス内の命令を選択する。次の表Iは、2
つの高次ビットI5およびI4によるクラスの分割を表わ
している。
示されているように、一定の命令の実行が命令にのみ
依存しているという意味において一定の命令は無条件で
ある。他のいわゆる“条件付き”命令は、外部の、デー
タに依存した条件によって部分的に制御されるという効
果を有している。したがって、後者の場合、マイクロプ
ログラムシーケンスコントローラ10は、ステータスレジ
スタ18(第1図)のビットに含まれる、ALU16(第1
図)内の種々の条件の存在を反映する12のテスト(T0-1
1)入力を受取る。第2A図に示されているように、8つ
のテスト入力(T0,T1,…,T7)がテストマルチプレクサ
(TEST MUX)102に直接与えられる一方で、残り4つの
T入力(T8,T9,…,T11)は、組合わせロジック回路(TE
ST LOGIC)104に与えられる。回路104の出力は、これら
の4つのテスト入力に与えられた種々の論理演算の結果
から構成され、さらにバス106を介してTEST MUX102に与
えられる。TEST MUX102は、選択入力(S0,S1,S2,S3)の
制御下においておよび以下の表IIに従って、いわゆる条
件付きマイクロ命令の実行に用いるためにCONTROL100に
伝送されるであろう特定のテスト条件を選択する。
CONTROL100は、条件−感知(TEST)入力において、TE
ST LOGIC回路104およびTEST MUX回路102によって選択さ
れた、テストされるべき条件を受取る。TEST入力に与え
られた信号の状態に従って、CONTROL100は、マイクロプ
ログラムシーケンスコントローラ10のDATA OUT端子にお
いて形成されている16−ビットアドレスを最終的にもた
らす適当な制御信号を発生することによってマイクロプ
ログラムシーケンスコントローラ10のアドレス発生能力
を管理する。CONTROL10によって発生し、COND,STKMUXCT
L,CMUXCTL,DELR,UP,DOWN,RSTSP,WE,OSPCTL,LDCR,ENCMP,
およびCLRCMPと表示された制御信号は、それらが制御す
る要素に関連してさらに説明されるであろう。
安定した制御信号を発生するためにTEST LOGIC回路10
4,TEST MUX回路102およびCONTROL100によって要求され
る時間は、従来のマイクロプログラムシーケンスコント
ローラにおいてはシーケンスのオペレーションにおける
障害であった、コントローラのサイクル時間の最も大き
な成分である。それゆえに、加えられた遅延を強制する
ことなく、制御信号が安定化したときに利用可能になる
ように他の独立した信号を同時に発生するように、この
時間成分を利用することが望ましい。
この発明は、この設計の思想を実現するいくつかの特
徴を具体化している。上述の表Iに示されているよう
に、マイクロ命令の集合は、4つのクラスの命令からな
り、その1つは、通常のシーケンスを続けるとともに特
殊な機能を実行し、さらにHIGHである6−ビットワード
の2つの高次ビットに対応している。CONTROL100は、テ
スト条件の結果を利用しない“ブランチのない"2−ビッ
トパターンの存在を素早く検出しかつテスト条件の発生
に割当てられた時間成分内で実行されるべき命令を実現
する信号を放出するように設計されている。
CONTROL100は、クロック(CL)入力において、システ
ムクロック68(第1図)によって発生しかつシーケンス
コントローラ10のCL入力において受取られたクロック信
号を受取る。このクロック信号はCONTROL100によって用
いられて、以下に説明されるように、マイクロプログラ
ムシーケンスコントローラ10において情報を一時的にス
トアするために用いられる種々のレジスタに対するロー
ド信号を発生する。
第2A図に示されているように、マイクロプログラムシ
ーケンスコントローラ10は2つの16−ビット内部データ
バスを有しており、コントローラ10の種々の要素に対す
るデータ経路を提供している。3−状態の双方向性D−
バス110が、コントローラ10のDATA IN端子上のデータ信
号を受取り、伝えかつ送信するために設けられている。
受取られた情報の2つの最下位ビットは信号ライン110a
上をマルチウェイマルチプレクサ(MULTIWAY MUX)112
に伝えられるが、このマルチプレクサ112は、信号ライ
ン160を介してMULTIWAY MUX112のINSTR入力に通信され
たコントローラ命令ビットの2つに関連してこれらを使
用して、受取られた情報のより低い4ビットを、コント
ローラ10のマルチウェイ入力(M0,M1,M2およびM3)に存
在しかつMULTIWAY MUX112に伝えられる4−ビットデー
タの4つの組のうちの1つで置換することによって、い
わゆるマルチウェイアドレスを発生する。マルチウェイ
の選択は、Dバス110上のより低い4ビット内の2つの
より高次のビットの値に依存していない。さらに、選択
されたビットの値は、存在しているより低い4ビットと
“OR"ゲート処理されるよりもむしろ置換えられ、これ
によって、従来のマイクロプログラムシーケンスコント
ローラにおいて要求されたように、これらの位置におい
て0の値のビットの存在を常に確保する必要を排除する
ことができる。
示されているように、16の異なるマイクロ命令に対す
るブランチを実行するためのアドレス修正能力を提供す
るためにMULTIWAY MUX112出力が用いられる。信号ライ
ン113上の4−ビットMULTIWAY MUX112出力は、信号ライ
ン110b上を伝送されD−バスにおける情報の上位12ビッ
トと結合され、さらに信号ライン114を介して、以下に
示されるようにブランチングを実行するために用いられ
るアドレスマルチプレクサ(ADDR MUX)116に与えられ
る。ADDR MUX116への第2の入力は、D−バス110上の修
正されていない16ビットの情報を受取る。
内部D−バス110はまた、カウンタマルチプレクサ
(C−MUX)118に結合される。示されているように、C
−MUX制御(CMUXCTL)信号を発生するCONTROL100の制御
下において、C−MUX118は、CMUXCTL信号を受取りかつ
これらの3つの入力のうちの1つを16−ビット2進ダウ
ンカウンタ120に通過させる。このダウンカウンタ120
は、CONTROL100によって発生しかつそのデクリメント
(DEC)入力においてダウンカウンタ120によって受取ら
れた信号DECRによってデクリメントされる。ダウンカウ
ンタ120の1つの使用は、マイクロ命令シーケンスを介
してループ制御をもたらし、ダウンカウンタ120が1に
到達したときにループからブランチングするということ
である。したがって、ダウンカウンタ出力ライン122
は、1の検出(ONE DET)124に与えられ、この回路124
はダウンカウンタ120の一方の状態を感知しかつこの状
態を信号ライン126上の信号を介してCONTROL100のカウ
ンタ1(CONE)入力に通信する。
第2B図に示されているように、内部D−バス110はコ
ンパレータレジスタ128の入力に結合されて、マイクロ
ルーチン内のブレークポイントを確立するための、また
は特定のアドレスにおけるマイクロ命令がどれほど頻繁
に実行されるかを計数するためのベースとして、コンパ
レータ129によって用いられるアドレスをストアする。
従来のマイクロプログラムシーケンスコントローラは、
これらの能力を所有しておらず、これらの能力は以下に
より完全に展開されるように、マイクロプログラミング
の見地からは極めて有用である。コンパレータ129は、C
ONTROL100によって発生しかつEN入力に与えられた能動
化コンパレータ(ENCMP)を受取る。それは、シーケン
スコントローラ10のEQUAL出力端子に伝えられる信号を
発生する。コンパレータレジスタ128は、D−バス110上
のアドレスをストアさせる、CONTROL100によって発生し
たロードコンパレータレジスタ(LDCR)信号を受取る。
内部双方向D−バス110は、以下の態様で、33ワード
の、ワードごとに16ビットの後入れ先出し(LIFO)スタ
ック130へおよびスタック130からの16ビットのデータ経
路を提供する:D−バス110は、スタックマルチプレクサ
(STACK MUX)132の一方の入力に与えられ、このSTACK
MUX132の出力は、STACK MUX132によって受取られるSTAC
K MUX制御(STKMUXCTL)信号を発生するCONTROL100の制
御下において、スタックバス信号ライン134上をスタッ
クメモリ136へ伝えられる。SATCK MUX132は、以下に説
明されるように、そこに与えられた3つの他の信号ライ
ンの組を有している。STKMUXCTL信号は、以下に説明さ
れるように、STACK MUXへの4つの入力のうちの1を選
択して、スタックバス信号ライン134を介してスタック
メモリ136に通過させるように機能する。
スタックメモリのトップ(TOS)上の内容、すなわち
スタックポインタレジスタ(STACK POINTER)138によっ
て指示された内容は、以下により完全に説明されるよう
に、CONTROL100の制御下において、信号ライン140、ス
タック出力マルチプレクサ(STACK OUT MUX)142と、16
の3−状態出力ドライバ144の組とを介して双方向D−
バス110に与えられる。
3−状態ドライバ144は、シーケンスコントローラ10
の出力能動化(OED)端子へ与えられかつANDゲート147
を介する信号ライン146と信号ライン148とによってドラ
イバに伝えられたHIGHによって能動化されて、ドライバ
144に与えられるD出力能動化(DOUTEN)信号を形成す
る。OED入力端子における信号がLOWのときに、3−状態
ドライバ144の出力は高インピーダンス状態にある。信
号ライン146上のHIGHは、(もしもHOLDまたはSLAVE信号
がいずれも、以下に説明されるように現在HIGHでなけれ
ば)、3状態ドライバ144の出力を能動化し、コントロ
ーラ10のDATA IN端子へ伝えるためにD−バス110上にス
タック内容のトップを与える。代わりに、以下により完
全に説明されるように、DATA IN端子における表示のた
めに、STACK POINTER138の内容は、STACK OUT MUX142お
よびドライバ144を介して双方向D−バス110に与えられ
得る。スタックのトップは信号ライン140を介してADDR
MUX116の入力へおよびC−MUX118の入力へ与えられる。
ダウンカウンタ120の出力は、信号ライン122を介してST
ACK MUX132へ与えられる。
上述のように、マイクロプログラムシーケンスコント
ローラ10は、コントローラ10の(AUX DATA IN)入力に
おける補助データにおいて受取られたデータ信号を受取
りかつ伝えるために設けられた、第2の、単一方向の、
16−ビットの内部データバス、すなわちA−バス150を
有している。第2A図に示されているように、A−バス15
0上の情報は、C−MUX118の第2の入力とともに、ADDR
MUX116の第3の入力に与えられる。
マイクロプログラムシーケンスコントローラ10は、合
計で64のマイクロ命令を有しており、この集合の中に
は、ブランチアドレスがD−バス110上に転送されるこ
とを要求する命令のサブセットと、A−バス150上の転
送のための他のサブセットと、バス114上の転送された
アドレス;すなわちMULTIWAY MUX112によって選択され
たマルチウェイ入力上のデータによって変更されたD−
バス110上のアドレスに対するブランチングのための第
2のサブセットとが含まれている。この配置は、データ
をADDRMUX116に伝える左側の3つのバスラインによって
第2A図のブロック図において反映されている。
ADDR MUX116はまた、マイクロプログラムカウンタ(M
PC)レジスタ154の内容をADDR MUX116に伝える信号ライ
ン152を受取る。信号ライン152はまた、データをSTACK
MUX132に伝える。MPCレジスタ154は、現在実行されてい
るマイクロ命令のアドレスに1を加えたものを含み、さ
らにブランチングが実行されるべきでなければ、実行さ
れるべき次のマイクロ命令を指示するために用いられ
る。MPCレジスタ154は、クロックパルスCLKを受取り、
さらにインクリメンタ158から信号ライン156に沿って伝
えられた信号をストアすることによって各クロックサイ
クルにおいてインクリメントされ“現在のアドレス+1"
を与える。
信号ライン160を介してADDR MUX116のINSTR入力に伝
えられたコントローラ命令ビットのうちの2つと、CONT
ROL100によって発生しかつADDR MUX116のCOND入力に伝
えられたCOND信号とは、ADDR MUX116の入力ライン114,1
10,150,140または152上に存在する。アドレスのどれが
その出力ライン162へ通過させられるかを実行するであ
ろう。
この選択が実行される態様は、第3図;すなわち、MU
LTIWAY MUX112(第2A図)およびADDR MUX116(第2図)
において用いられるロジックの回路図を参照することに
よって最もよく理解されるであろう。MULTIWAY MUX112
(第2図A)は、第3図に描かれたゲートネットワーク
200の4つの集合からなり、第2A図を参照して既に説明
されたマルチウェイ選択および結合機能を実行する。AD
DR MUX116(第2A図)は、第3図に描かれた16組のロジ
ックネットワーク220からなり、出力ライン162(第2A
図)上に存在する16−ビットアドレスを決定する。ま
ず、最下位の4ビットを考えると、各々のi,0≦i≦3
に対して、マルチウェイ入力M3,i;M2,i;M1,i;およびM0,
i上に存在するビットのうちの1つは、D−バス110a上
のMULTIWAY MUX112に対する2つの最下位ビットD0およ
びD1入力の制御下において、および信号ライン160上のM
ULTIWAY MUX112に対するコントローラ命令ビットI2およ
びI3入力の制御下において、NORゲート202,204,206およ
び208を介してそれぞれ通過させられるであろう。入力D
0およびD1の4つの可能な相互の排他的結合がゲートに
与えられるので、NORゲートのうちの1つが、Mj,i入力
を通過させ、これはさらにORゲート210または212の1つ
を介して通過させられライン113上に与えられる。この
態様において、マルチウェイ入力M3,M2,M1またはM0の1
つの4ビットのすべては、ゲートネットワーク220の最
下位の4つのセットに与えられるであろう。
第3図に描かれたネットワーク220のロジック図に戻
ると、16ビット、すなわち0≦i≦15の各々に対して、
D−バス110上に存在するビット、Diと;A−バス150上の
Aiと;信号ライン140上のTOSiとは、信号ライン160上の
ADDR MUX116へのコントローラ命令ビットI2およびI3入
力の制御下において、NORゲート222,224および226を介
して通過させられるであろう。(ライン221を介してNOR
ゲート222を制御する入力I3上の信号が0≦i≦3に対
してのみ存在するということに注意すべきである) 入力I2およびI3の3つの相互に排他的な結合はゲート
に与えられるので、NORゲート222,224および226のうち
のせいぜい1つは、入力Di,AiまたはTOSiをORゲート228
または230のうちの一方に通過させる。さらに、入力I2
およびI3の残りの第4の相互の排他的結合は、信号ライ
ン113上に、したがってORゲート230にMj,iを与えるため
に用いられMi、ここで0≦i≦3であり、AiまたはTOSi
によって可能なように変形された入力Diの1つはORゲー
ト230を介して通過されて2−1条件コードマルチプレ
クサ(CC-MUX)232の入力に与えられる。MPCレジスタ15
4から信号ライン152上に与えられたビット、MPCi,0≦i
≦15は、CC-MUX232の第2の入力に与えられる。CONTROL
100によって発生したCOND信号はCC-MUX232に与えられ、
さらに信号ライン162上に出力されるべきブランチアド
レスの最終的な選択を実行する。
D−バス110上に存在するデータの下位4ビット上の
マルチウェイMUX112およびAADR MUX116の特定のオペレ
ーションは、もしもマルチウェイブランチオペレーショ
ンが利用されるべきであれば、すなわちI2がLOWでありI
3がHIGHであれば、そして第4の相互の排他的結合がそ
れゆえに確立されているならば、NORゲート222,224およ
び226の出力がLOWに保たれ、選択されたマルチウェイブ
ランチアドレスの真の置換がもたされるということを保
証する。
MULTIWAY MUX112およびADDR MUX116のオペレーション
の他の局面は、置換されるべき特定のマルチウェイセッ
トMj,i、ここで0≦i≦3を選択するために、他の方法
では未使用である最下位2ビットD0およびD1の使用から
生じる。この方法において、命令の集合は必ずしも64マ
イクロ命令以上に拡張されてマルチウェイブランチの多
数の集合を提供する必要はない。
マイクロプログラムシーケンスコントローラのアドレ
ス−選択オペレーションの第3の局面は、ブランチアド
レスが信号ライン162上に出力され得る前にCC-MUX232に
おいて安定化するCOND信号の前述のタイミングの臨界性
からもたらされる。ADDR MUX116の出力おけるCC-MUX232
の位置は、D−バス110、A−バス150、MULTIWAY MUX11
2の出力ライン114のいずれかからの、またはLIFO STACK
130のトップからのアドレスの選択を計算させ、COND信
号の計算と同時に進行させる。それゆえに、付加的な時
間がこれらのブランチアドレスの計算によって費やされ
ることなく、シーケンスコントローラ10のサイクル時間
内は、厳格な連続する順序で進行させられた、先行技術
のコントローラに比べて改善される。
第2A図を再度参照すると、ADDR MUX116の出力を形成
する16本の信号ライン162は、1組の(16の)3−状態
出力ドライバ164に通信される。ドライバ164は、マイク
ロプログラムシーケンスコントローラ10によって決定さ
れた16−ビットブランチアドレスを、データ信号を受取
りかつコントローラ10のDATA OUT端子に伝えかつ伝送す
るために設けられた3−状態の、双方向性Y−バス166
上に与えられる。3−状態出力ドライバ164は、信号ラ
イン168上で受取られたHIGHによって能動化される。信
号ライン168は、NORゲート170の出力であり、このゲー
ト170は、SLAVE入力、マイクロプログラムシーケンスコ
ントローラ10のHOLD入力端子、および割込ロジック回路
176によって発生した信号(INT)において受取られた信
号によって制御される。これらの3つの信号がLOWのと
きに、NORゲート170はライン168をHIGHにセットし、さ
らに3−状態ドライバ164の出力は能動化される。ライ
ン162上のアドレス信号はその後Y−バス166上に与えら
れ、さらにコントローラ10のDATA OUT端子に与えられ
る。
3−状態出力ドライバ164へのライン168上の信号がLO
Wのときに、3−状態出力ドライバ出力は、高インピー
ダンス状態にあり、アドレス信号はその後、IVP58(第
1図)によって“Y"アドレスバス32(第1図)に与えら
れ、以下に説明されるように次のマイクロ命令を選択す
る。
アドレス信号ライン162はまた、割込マルチプレクサ
(INT MUX)172に結合され、このマルチプレクサ172は
Y−バス166上に存在するブランチアドレスを、信号ラ
イン174を介してインクリメンタ158およびコンパレータ
129に伝える。さらに、DATA OUT端子は、割込アドレス
を受信し、さらに以下に説明されるように、Y−バス16
6に沿って割込マルチプレクサ(INT MUX)172に伝え
る。割込復帰アドレスレジスタ(INT RET ADDR REG)17
5は、割込要求がマイクロプログラムシーケンスコント
ローラ10によって受取られるときに、割込されたマイク
ロプログラムの復帰アドレスを一時的に保持するために
用いられる。割込アドレスは、以下に説明されるよう
に、コントローラ10のDATA OUT端子における受信の後
に、内部データバス166によってそこに伝えられる。
3−状態出力ドライバ164の出力をDATA OUT端子に伝
えることに加えて、Y−バス166もまた、INT MUX172の
入力に接続され、このINT MUX172は、既に述べたよう
に、その出力を信号ライン174を介してインクリメンタ1
58に接続させており、このインクリメンタ158はIVP58に
よって与えられたアドレスをインクリメントする。
マイクロプログラムシーケンスコントローラ10は、マ
イクロプログラムコントローラ10の割込要求(INTR)入
力端子において割込コントローラ56(第1図)から受信
されかつ割込ロジック回路176の割込入力(I1)に通信
されるその現在のタイミングサイクルの完了において割
込され得る。割込ロジック回路176はまた、入力とし
て、(ロジック回路176の入力I2への)コントローラ10
の割込能動化(INTEN)入力端子において受取られた信
号と、(ロジック回路176の入力I3への)コントローラ
10のリセット(RESET)入力端子において受取られた信
号と、(それぞれ、ロジック回路176の入力I4およびI
5への)コントローラ10の入力端子において受取られたH
OLDおよびSLAVE信号とを有している。割込ロジック回路
176は、信号ライン178上をNORゲート170へおよびINT MU
X172へ通信される割込ルーチン処理(INT)信号を発生
する。INTRおよびINTEN信号がHIGHでありかつHOLDおよ
びREST信号がLOWであるときにのみ、INT信号はHIGHであ
る。割込ロジック回路176はまた、ANDゲート147へ通信
されるD−バス出力能動化(OD)信号を発生し;このOD
信号は、SLAVE信号および(1サイクルだけ遅延され
た)HOLD信号がLOWのときにのみ、HIGHである。
HIGHのINT信号のNORゲート170への適用は、そのゲー
ト170に、信号ライン168上にLOWを出力させ、3−状態
出力ドライバ164を高インピーダンス状態にする。これ
は、LOWに進むNORゲート170のためにY−バス3状態出
力ドライバ164を不能化することによって、およびLOW信
号をライン168を介してドライバ164に送信することによ
って、Y−バス166をADD MUX出力ライン162から切り離
す。ライン178上で伝送されたHIGHのINT信号は、割込MU
X172に、IVP58(第2図)によってY−バス166上に与え
られた割込アドレスをインクリメンタ158およびコンパ
レータ129に伝えさせる。
示されているように、割込ルーチンはまた、一定のレ
ジスタの内容をLIFO STACK130にストアさせ、このSTACK
130は後で回復される。このストアされた情報は、マイ
クロプログラムシーケンスコントローラ10が割込要求を
受信したときにそのシーケンスの中にある、マイクロ命
令シーケンスへのアドレスリンケージ復帰を提供する。
さらに、HIGH INT信号は、ANDゲート147によって3状
態ドライバ14に伝えられてドライバ144をそれらの高イ
ンピーダンス状態に入る。
割込されたシーケンスに戻るリンケージを確立するこ
とが要求されるすべての情報は、ブランチが発生する割
込サブルーチンのブランチおよび実行に従って進行する
ことを保証するために、すべての情報は1クロック期間
内にストアされる。したがって、一定の情報は、INT RE
T ADDR REG175に一時的にストアされ、このレジスタ175
はその後STACK MUX132を介してLIFOスタック130へ通信
される。INT RET ADDR REG175は、そのクロック(CL)
入力において、CP入力端子において与えられかつCP入力
端子から伝えられたクロック(CLK)を受取る。情報
は、クロック(命令)サイクルごとにINT RET ADDR REG
175にストアされるが、このストアされた情報は、以下
に説明されるように、割込信号が受取られるときにのみ
用いられる。
CONTROL100からSTACK MUX132へ伝えられたSTKMUXCTL
信号の制御下において、STACK MUXは、4つの(16−ラ
イン)信号バスのうちの1つを選択し、さらに選択され
た信号バスを、スタックバス134を介してLIFOスタック
メモリ136に通過させる。したがって、STACK MUX132を
介して、ダウンカウンタ120の内容、割込復帰アドレス
レジスタ175、内部D−バス110上に存在するデータ、ま
たはMPCレジスタ154の内容は、LIFOスタックメモリ136
上にストアされ得る。
LIFOスタック130のオペレーションは、第4図を参照
することによって最もよく理解される。LIFOスタック13
0(第2B図)自身は、32−ワードの、1ワード当り16ビ
ットの、スタックランダムアクセスメモリ(RAM)300
と、16−ビットのトップ−オブ−スタック(TOS)レジ
スタ302とを有しており、このレジスタ302は、そのデー
タ端子(TOSi)を介して16−ビットのデータワードを伝
送することがでかつデータ信号ライン134(第2B図)を
介してSTACK MUX132(第2B図)から16−ビットのデータ
ワードを受取ることができる。
スタックRAM300およびTOSレジスタ302は、データワー
ドを通信するために設けられた16−ビットのデータ信号
ライン304によって接続されるが、このデータワード
は、(5)アドレスライン306を介してSTACK POINTER13
8(第2B図)によってそのアドレス入力(STACK ADDR)
においてスタックRAM300に与えられたアドレスによって
特定されたメモリロケーションにおける(“PUSH"期間
中の)スタックRAM300内のメモリロケーションにストア
されなければならない。(“POP"期間中の)TOSレジス
タ302は、以下に説明されるように、データ信号ライン1
40(第2B図)上を介してデータワードをSTACK OUT MUX1
42(第2B図)へまたはADDR MUX116(第2A図)へ通信す
ることができる。
本質的に、STACK POINTER138は、条件付き(モジュロ
64)アップ/ダウンカウンタであり、これは、スタック
ポインタ(SP)レジスタ308、条件付きインクリメンタ
(COND INCR)310、および条件付きデクリメンタ(COND
DECR)312を含んでいる。この実現が予めインクリメン
トされ、後でデクリメントされたものとして説明される
一方で、反対のフォーマットもまた可能である。
情報ワードがスタックRAM300にストアされることを命
令が要求するごとに、UP信号がCONTROL100(第2A図)に
よって発生し、LIFOスタック130(第2B図)に通信さ
れ、ここで次の表IIIの第3行における“1"の存在によ
って示されるように、条件付きインクリメント310のCU
入力に与えられる。
各コントローラクロックサイクルの開始において、SP
レジスタ308はクロックパルス(CLK)を受取るが、この
クロックパルスは、その内容、すなわち現在“指示”さ
れているスタックアドレスを信号ライン314上に与えさ
せ、このライン314はアドレスを条件付きインクリメン
タ310に伝える。もしも、上述のようにインクリメンタ3
10へのCU入力がHIGHにセットされていれば、インクリメ
ンタ310は、1スタックアドレスだけインクリメントさ
れ、さらにその後その現在の内容をこの条件付きのイン
クリメントされたアドレスによって交換する。SPレジス
タ308は、以下に説明されるように、HIGHがRESET入力に
与えられるときに、次のドックパルスにおいて0にセッ
トされ得る。
従来のマイクロプログラムシーケンスコントローラ
が、タイミングの要求に適合するために一時的なスタッ
クレジスタおよび2つのクロックサイクルを用いたのに
対し、この発明によるコントローラは、一時的なレジス
タに対する必要性を取り除き、かつスタック上への/ス
タックからの単一サイクルのPUSH/POPを許容している。
これは、スタックRAM300が読出または書込能動化信号を
受取る前に安定した書込アドレスを有していなければな
らないので、そしてRAMがコントローラクロックサイク
ルの50%だけを割当てられているので、CONTROL100(第
2A図)による条件付き(COND)制御信号を発生しかつ処
理するために必要とされる時間が、上述のようにスタッ
クRAM300への書込アクセスが完了される速度を決定する
際の臨界的なファクタであるという事実からもたらされ
てる。先行技術のコントローラにおいて、この安定した
タイミングの要求は、書込みのためのRAMの能動化の前
に1つの付加的なクロックサイクルだけ待つことによっ
ておよび各サイクルごとにクロックされた一時的なレジ
スタによってRAMへの入力をバッファすることによって
適合され、これによって、インクリメント/デクリメン
ト信号の後続の到着を待つことができる。
表IIIに示されているように、この発明のマイクロプ
ログラムシーケンスコントローラは、条件付きPUSH命令
によって要求されるときはいつでも仮のインクリメント
を用いる。表IIIのCOND PUSH行における、UP列の“1"、
WE列の“C"およびDOWN列のの存在によって示されるよ
うに、最後の小さな訂正が、条件COND(=C)に基づい
てなされ、このため、この効果は、条件付きインクリメ
ンタ310が、信号ライン314上を伝送される、スタックポ
インタレジスタ308におけるそのアドレスによって指示
された内容に関するPUSHを作成し、さらに条件付き書込
能動化(WE)を作成し、その後CONTROL100によって決定
された条件付きコードCONDに従ってPUSHを取消すという
ことである。この態様において、安定した読出/書込ア
ドレスは、信号ライン306上に存在し、この信号ライン3
06は、条件付きインクリメンタ310からスタックRAM300
のSTACK ADDR入力へアドレスを通信する。
PUSHが要求されているということをCONTROL100が判断
した場合に、表IIIの第2行において要求されたHIGH書
込能動化(WE)信号は、CONTROL100によって発生しかつ
スタックRAM300の書込(WE)能動化入力に通信される。
PUSHが完了されていないということが判明すると、CONT
ROL100は、WE信号を発生せず、さらにスタックRAM300内
で書込みが起こらず、スタックポインタレジスタ308も
インクリメントされないであろう。
後者の結果は、表IIIの第3行におけるの記述項に
よって要求される。PUSHが実行されないので、CONTROL1
00は、LOWであるCOND(=C)信号を受取り、それゆえ
にはHIGHである。したがって、DECR信号列における第
3行の記述項を実行すると、CONTROL100は、条件付きデ
クリメンタ312の条件付きデクリメント(CD)入力に与
えられるDOWN信号を発生し、この信号は、デクリメンタ
312を、条件付きインクリメンタ310から信号ライン306
上を通って与えられた1つのスタックアドレスだけ減少
させ、されにその後デクリメンタ312は、このデクリメ
ントされたアドレスによって現在の内容を置換する。こ
のデクリメントされた値は、スタックポインタの元の値
に1を加算しさらにその後1を減算したものであるが、
さらにその後条件付きデクリメンタ312から信号ライン3
16を介してSPレジスタ308に伝えられ、こでSPレジスタ3
08にロードされる。したがって、スタックポインタレジ
スタ308の内容に変化は生じないであろう。
PUSHが実行されると、CONTROL100はデクリメンタ312
のCD入力にDOWN信号を与えないであろう。この信号の欠
如は、デクリメンタ312に、ライン306上でそれに与えら
れたスタックアドレスの値をデクリメントさせず、さら
にテクリメンタ312は単に、その現在の内容を、インク
リメンタ310によってインクリメントされたアドレスに
よって置換える。このインクリメントされた値は、スタ
ックポインタの元の値に1を加えたものであるが、さら
にその後信号ライン316を介してSPレジスタ308に伝えら
れ、ここでそれはSPレジスタの古い内容を交換する。ス
タックポインタはこれによってPUSH期間中にインクリメ
ントされる。
マイクロプログラムシーケンスコントローラ命令の1
つは、スタックポインタ138の内容を0にリセットさせ
る。したがって、CONTROL100は、リセットスタックポイ
ンタ(RSTSP)信号を発生し、この信号はSPレジスタ308
のRESET入力に与えられ、これによって次のクロックパ
ルス(CLK)を受信したときにSPレジスタ308の内容を0
にセットする。SPレジスタ308は、その内容が28に等し
くまたは28を越えるときはいつでも内部的に信号を発生
し、さらにこの信号をコントローラ10のほとんど全(A
FULL)出力端子に与える。
表IIIの第4および第5行に示されているように、情
報ワードがスタックRAM300から読出されることを要求す
るたびに、CONTROL100は、これらの条件下において条件
付きインクリメンタ310のCU入力へのUP信号を発生せ
ず、さらにライン314上に与えられたアドレスの条件付
きインクリメントは、インクリメンタ310によって実行
されない。したがって、条件付きPOP命令の実行期間中
に、スタックRAM300へのSTACK ADDR入力上に与えられた
アドレスは、不変であり、したがって、スタックの現在
のトップにおける情報ワードはRAM300から読出され、安
定した読出アドレスが信号ライン306上に存在するので
条件コードは正当である。
RAM300は、書込まれていないときには常に読出すこと
ができるので、POPが要求されていることをCONTROL100
が判断した場合には、CONTROL100によってLOW書込信号
(WE)信号が発生し、さらにスタックRAM300の書込(W
E)能動化入力に伝えられる。
POPが完了されていないことが判明すると、CONTROL10
0はWE信号を発生せず、さらにスタックRAM300内で読出
しが実行されず、スタックポインタレジスタ308もデク
リメントされないであろう。後者の結果は、表IIIの第
5行における“C"記述項によって要求される。POPは実
行されないての、CONTROL100は、LOWである条件コード
(COND)信号を発生し、したがってCはLOWである。こ
れらの条件下において、CONTROL100によってDOWN信号が
発生せず、したがってデリクメンタ316に対するCD入力
はセットされず、デクリメントが実行されないであろ
う。
POPが要求されると、CONTROL100によってDOWN信号が
発生し、条件付きデクリメンタ312のCD入力に通過され
るが、このデクリメンタ312は、スタックポインタの現
在の値である。アドレスライン306上の現在の値を、1
だけデクリメントさせ、さらに信号ライン316を介して
スタックポインタレジスタ308に伝えさせる。これによ
って、スタックポインタのデクリメントを実行しかつPO
Pを完了することができる。
TOSレジスタ302は、スタックのトップとして機能す
る。LIFOスタック130への各書込動作は、スタックレジ
スタ302に書込まれたワードをストアすることと、同時
に、TOSレジスタ302に以前に書込まれたワードをスタッ
クRAM300にストアすることとから成り立っている。した
がって、TOSレジスタ302の出力ラインは、スタック出力
ライン140を形成する。第2B図のLIFOスタック130が“PO
P"されるときに、STACK POINTER138によって特定された
メモリロケーションの内容は読出されかつデータ信号ラ
イン304を介してTOSレジスタ302に伝えられる。
第2B図を再度参照すると、STACK POINTER138の内容
は、CONTROL100の制御下における、STACK OUT MUX142を
介するマイクロプログラムシーケンスコントローラ10の
DATA IN端子への伝送のために、D−バス110上で利用可
能である。一定のマイクロ命令に応答して、CONTROL100
は出力スタックポインタ制御(OSPCTL)信号を発生し、
この信号はSTACK OUT MUX142に与えられ、さらにSTACK
OUT MUX142に、STACK POINTER138からのライン上のアド
レス信号を選択させる。上述のように、信号DOUTENの発
生を通じて3−状態出力ドライバ144を能動化すること
によって、現在のスタックポインタの値をコントローラ
10のDATA IN端子まで通信させることができる。
最後に、マイクロプログラムシーケンスコントローラ
10には、SLAVE入力端子およびERROR出力端子が設けられ
ている。
示されたように、割込要求信号がマイクロプログラム
シーケンスコントローラ10によって受取られるときに、
LIFOスタック130がマイクロ命令シーケンスに復帰する
のに必要なアドレスリンケージをストアするのに十分な
余地を有しているかどうかを調べるためのテストが実行
されなければならない。したがって、A FULL信号また
はスタックポインタレジスタの内容のいずれかがアクセ
スされ、このため、割込が現在サービスされているかど
うかに関する判断がなされ得る。
要約すると、マイクロプログラムシーケンスコントロ
ーラ10の動作は以下のように進行する:ブランチを要求
していない無条件マイクロ命令の処理期間中にADDR MUX
116は、そのINSTR2−3入力において2つのマイクロ命
令ビットを受取り、さらにそのCOND入力において、MPC
レジスタ154から信号ライン152を受取る入力を選択する
テスト条件信号を受取る。同時に、ライン168上の信号
は、3−状態出力ドライバ166に、ライン162上の16−ビ
ットアドレス出力をY−バス166上に与えさせる。した
がって、MPCレジスタ154に含まれかつその出力に存在す
るアドレスは、マイクロプログラムシーケンスコントロ
ーラ10のDATA OUT端子に通信される。
同時に、ADDR MUX116の出力は、INT制御信号の制御下
にいおて、ADDR MUX出力をインクリメンタ158に通過さ
せるINT MUX172の入力に結合される。このインクリメン
トされたアドレスは、インクリメンタ158から信号ライ
ン156を介してMPCレジスタ154の入力に伝えられる。し
たがって、このアドレス発生サイクルの最後において、
MPCレジスタ154はCLK信号によって能動化されてインク
リメントされたアドレスをMPCレジスタ154にストアす
る。ADDR MUX116、INT MUX172および出力ドライバ164を
介して通過するのに要する遅延時間の後に、インクリメ
ントされたアドレスは、マイクロプログラムメモリ32
(第1図)に含まれる次のマイクロ命令に対するアドレ
スを形成する。
無条件ブランチマイクロ命令の処理期間中に、ADDR M
UX116へのINSTR2−3入力において受取られたビット
は、ADDR MUX116に、ビット2および3において特定さ
れたように、マイクロ命令によって要求される特定のブ
ランチに従ってライン114,110,150または152上の信号を
受取る入力を選択させる。たとえば、ブランチアドレス
が、それぞれマイクロプログラムシーケンスコントロー
ラ10のDATA IN端子またはAUX DATA IN端子から入力され
ることを命令する、GOTO DまたはGOTO Aの形成の命令
において、ADDR MUX116は、ライン110上で受取られたア
ドレスまたはライン150上で受取られたアドレスのいず
れかを選択するであろう。コントロー10のDATA OUT端子
へのこのアドレスの通信およびMPCレジスタ154のインク
リメントは、無条件の、ブランチングではないマイクロ
命令の処理期間中に、上述のように進行する。
処理されているマイクロ命令が、ブランチが一定のテ
スト条件において条件付きであることを要求するとき
に、そしてその条件が存在する場合に、ADDR MUX116
は、そのCOND入力において適当な制御信号を受取り、ラ
イン114,110,150,140または152上に存在するブランチア
ドレスのいずれかの選択を実行させる。もしも適当な条
件付き制御信号が存在しなければ、ADDR MUX116は、MPC
レジスタ154からライン152上に存在する次のアドレスを
選択させる。いずれの場合においても、選択されたアド
レスのコントローラ10のDATA OUT端子に対する通信およ
びMPCレジスタ154のインクリメントは、他の命令タイプ
と同様に進行する。
一定のマイクロ命令は、ダウンカウンタ120が、たと
えばFOR Dという値でロードされることを要求し、また
は、たとえばCALL Aのような値がLIFOスタック130上に
プッシュされることを要求する。前者の場合に、ダウン
カウンタ120は、マイクロプログラムシーケンスコント
ローラ10のDATA IN端子から信号ライン110を受取る入力
を選択するCMUXCTL信号をCONTROL100から受取るとき
に、C−MUX118によって通過させられる16−ビットワー
ドでロードされる。(他のオプションは、LIFOスタック
130からの信号ライン140の受信を含む)。この場合、LI
FOスタック130は、MPCレジスタ154からの信号ライン152
を受取る入力を選択するSTKMUXCTL信号をCONTROL100か
ら受取るときに、STACK MUX132によって通過された16−
ビットワードでロードされる。
(他のオプションは、コントローラ10のDATA IN端子か
らの信号ライン110の受信と、ダウンカウンタ120からの
信号ライン122の受信と、割込復帰アドレスレジスタ175
からの信号ラインの受信とを含んでいる)。
一定のマイクロ命令は、マイクロプログラムシーケン
スコントローラ10のアドレス比較の特徴を能動化しまた
は不能化する。能動化タイプの命令を処理するときに、
CONTROL100によって発生した制御信号は、コンパレータ
レジスタ128によって受取られてコントローラ10のDATA
IN端子からの信号ライン110上のデータをロードさせ
る。
スタックポインタ138の現在の値またはLIFOスタック1
30のトップは、コントローラ10のDATA IN端子への伝送
のために双方向D−バス110上に存在することができ
る。すべてのマイクロ命令は、コントローラ10のOED入
力端子をHIGHに保持させて、これによってライン148上
のDOUTEN信号を3−状態出力ドライバ144によって受取
らせることができ、したがってドライバ144はDOUTEN信
号によって能動化される。したがって、スタック出力マ
ルチプレクサ(STACK OUT MUX)142の出力ラインは、ド
ライバ144を介してコントローラ10のDATA IN端子に結合
される。これらのマイクロ命令のすべてのうちの1つを
除くすべての命令に対する処理は、CONTROL100に、OSPC
TL信号を発生させ、STACK OUT MUX142に、スタックメモ
リ136からの信号ライン140またはスタックポインタ138
からの信号ラインのいずれかを受取る入力を選択させ
る。
マイクロプログラムシーケンスコントローラ10は、割
込要求(INTR)入力端子において受取られた信号によっ
て現在のタイミングサイクルの完了において割込され得
る。そのような割込要求が受取られたときに、それは割
込ロジック回路176の割込入力I1に伝えられる。割込ロ
ジック回路176はまた、コントローラ10の3つの他の入
力端子、すなわち;入力I2への割込能動化(INTEN)入
力端子,入力I3へのリセット(RESET)入力端子および
入力I4への前述のHOLD入力端子において受取られた割
込入力I2,I3およびI4信号と通信する。回路176は、も
しもコントローラ10が能動化されて割込を受取りかつリ
セットまたはホールドされていなければ、すなわちINTE
NがHIGHでありかつRESETおよびHOLDがLOWであれば、割
込要求を受入れる。
上述のように、割込が開始されずかつシーケンスコン
トローラ10が従属モードにおいて作動されずかつ保持さ
れていないときに、ブランチアドレスは、ADDR MUX出力
ライン162からY−バス166および3−状態出力ドライバ
164を介してDATA OUT端子に伝えられる。
マイクロプログラムシーケンスコントローラ10によっ
て割込が処理されるべきときに、すなわちHIGH信号がIN
TR入力において受取られるとき(および、上述のよう
に、INTENがHIGHであり、RESETおよびHOLDがLOWである
とき)、割込ロジック回路176は、割込(INT)信号をLO
WからHIGHへ変化させ、さらにこのHIGH信号はライン178
を介してINT MUX172に通信され、これはADDR MUX116か
らY−バス166および信号ライン174を介してインクリメ
ンタ158およびコンパレータ129に至るアドレス通信経路
を不能化する。さらに、Y−バス3−状態出力ドライバ
164は、割込ロジック回路176によって発生するHIGH INT
信号に応答して、ライン168に沿ってドライバ164にLOW
信号を送るNORゲート170のために不能化される。さら
に、これらの条件下において、割込ロジック回路176
は、受取られた入力をコード化し、かつライン178上をI
NT MUX172に通信される割込信号(INT)を発生し、この
ためINT MUX172へのブランチアドレス入力は、信号ライ
ン174に沿ってインクリメンタ158およびコンパレータ12
9に通過させられる。
したがって、ライン178上のINT信号の存在は、INT MU
X172に、コントローラ10のDATA OUT端子からの双方向Y
−バス166上の信号、すなわち割込アドレスを受取る入
力を選択させる。この割込アドレスはさらにその後、IN
T MUX172の出力信号ライン174を介してインクリメンタ1
58およびコンパレータ129に伝えられる。
(ADDR MUX116からのアドレスは、それを割込復帰ア
ドレスレジスタ175にストアすることによって蓄えら
れ、ここで、次のサイクル期間中にSTACK MUX134を介し
てLIFOスタック130上へ自動的にプッシュされる)。イ
ンクリメンタ158における割込アドレスの存在は、次の
マイクロ命令を、割込ルーチンの最初になるようにコン
トローラによって処理させる。
マイクロプログラムシーケンスコントローラ10は、他
方のコントローラ10と並行して作動され、このためこの
相互接続および内部機能の双方における欠陥が検出され
得る。この主/従構成において、1つのコントローラは
従として指定され、さらにHIGH信号がその従入力端子に
与えられる。さらに、ERROR端子を除くそのすべての出
力端子は、他のコントローラの対応する出力端子に接続
される。他のコントローラは主コントローラであり、正
常に作動する。主および従コントローラの双方に同一の
入力信号を与えることによって、従コントローラは、そ
れぞれの動作を比較し、さらに、コントローラのいずれ
かにおける故障を示す差が検出されるときはいつでも、
ERROR信号が従コントローラによって発生する。
C.命令の集合 64の命令の以下の集合が、実行されるべき次のマイク
ロ命令のアドレスを選択するために、マイクロプログラ
ムシーケンスコントローラ10によって用いられる。この
命令は、パスカル(Pascal)およびPL−1のようなハイ
レベルの言語におけるデジタルコンピュータのプログラ
ミングにおいて従来広く採用されている“構成されたプ
ログラミング(Structured Programming)”の原理を支
持するタイプの命令である。
64のマイクロ命令の集合は、以下の表IVにおいて示さ
れるように、位置4および5におけるビットの値に基づ
いて、各々16の命令からなる4つのクラスから成り立っ
ている。
示されているように、命令の実行が命令自身にのみ依
存するという意味で、32の命令が無条件である。さら
に、残りの32の条件付き命令は、外部の、データに依存
する条件によって部分的に制御され、特に、これらの命
令の実行は、CONTROL100(第2A図)のTEST入力に与えら
れた信号の状態に依存している。また、一定の命令は、
ダウンカウンタ120の内容によって部分的に制御される
効果を有している。コントローラ10の命令の集合によっ
て用いられる特定のマイクロ命令フォーマットと、先行
技術のコントローラとは異なって、命令のタイプを決定
する命令ビットがADDR MUX116に直接与えられるという
事実のために、どのタイプの命令、すなわちブランチま
たは継続のいずれが処理されているかについての検出
は、マイクロ命令ビットI5およびI4にのみ依存してい
るので、容易に行なわれる。
先行技術のコントローラは、それらの命令の集合が論
理的に関係付けられた命令のサブセットに構成されてい
なかったので、“継続”命令の存在を容易に検出するこ
とができなかった。これは、そのすべてが単に継続であ
り、したがって1つを除いてすべてが未使用であった命
令コードのサブセットを有する先行技術のコントローラ
をもたらした。用いられた1つのコードにはNO OPニー
モニックが与えられた。この発明のコントローラは、1
に等しいビットI5およびI4を有する命令を容易に検出
し、さらに15の他の方法では未使用のオペレーションコ
ードを用いて、追加の時間を要求することなく、付加的
な特殊機能を実行する。その結果は、16のいわゆる“特
殊機能”命令および16の真の“無条件”命令である。
条件付き命令において、(第1図のデータ処理回路12
によって実行された)データに依存するテストの結果
は、ステータスレジスタ18(第1図)のCT出力に現わ
れ、さらにステータス信号ライン44(第1図)を介して
マイクロプログラムシーケンスコントローラ10のテスト
入力T0-T11に伝えられる。
CONTROL100のTEST入力に与えられるべき特定のテスト
は、上述の表IIに従って、コントローラ入力S0,S1,S2お
よびS3によって選択され、さらに、汎用T0,T1,…,T7入
力と、データ処理回路12によって発生したデータに依存
したテストT8,…,T11とのいくつかの組合わせであ
る。S0,S1,S2およびS3情報は、パイプラインレジスタ36
に含まれるときにマイクロ命令を伴い、コントローラデ
ータバス40によってコントローラ10のS0,S1,S2およびS3
入力に伝えられ、さらにそこからTEST MUX102に伝えら
れる。
しばしば、マイクロ命令は、CONTROL100のTEST入力お
いて受取られた信号に基づいて条件付けられた、2つの
可能な機能のうちの一方を要求し、特殊なオプションが
選択されることが望まれるであろう。この場合、もしも
テスト入力おいて受取られた信号がHIGHであれば、対応
するテストは、通過させられたものと考えられる。これ
は、真の極性と呼ばれ、この命令によって特定された機
能が発生する。代わりに、もしもテストが失敗すれば、
対応するテスト入力はLOWとなり、さらに(命令におい
て特定された、しばしば次に続いて生じたマイクロ命令
の実行である)代わりの機能が生じる。テスト入力にお
いて受取られた信号の極性は、表IVの第2行において示
された命令のクラスにおける各マイクロ命令によって補
われる。無条件および条件付き命令の以下の議論のため
に、第1行において示されたクラスのマイクロ命令のみ
が説明される。
特定の命令を同定するために6ビット(I5,I4,I3,I2,
I1,I0)において用いられるビットの割当ては、各命令
ニーモニックに従う括弧の中に示された表現に含まれて
いる。
D−バスへの条件付きジャンプ(GOTO D)(00000
0): GOTO D命令は、D−バス110(第2A図)からブランチ
アドレスを取出す能力をもたらしている。したがって、
GOTO D命令がパイプラインレジスタ36(第1図)に含
まれているときに、このブランチアドレスは、命令フィ
ールドにあり、さらにこの命令フィールドは、コントロ
ーラデータバス40によってマイクロプログラムシーケン
スコントローラ10のDATA IN入力に伝えられ、さらにそ
こから、内部D−バス110を介してADDR MUX116に伝えら
れる。CONTROL100のTEST入力に与えられた信号に従っ
て、ADDR MUX116は、もしもTEST信号がHIGHであれば内
部D−バス110を、またはもしもTEST信号がLOWであれ
ば、信号ライン152を介してMPCレジスタ154によって与
えられる、次のマイクロ命令アドレスとなるアドレスを
選択するであろう。
サブルーチンD−バスへの条件付きジャンプ(CALL
D)(000001): CAAL D命令は、マイクロコードルーチンを条件付き
で呼出し、さらに呼出マイクロ命令シーケンスへの復帰
リンケージを確立するために用いられている。CALL D
命令がパイプラインレジスタ36に含まれるときに、マイ
クロコードルーチンにおける第1の命令のアドレスを有
する命令の一部は、コントローラデータバス40によっ
て、マイクロプログラムシーケンスコントローラ10のDA
TA IN入力に伝えられ、さらにそこから、内部D−バス1
10を介してADDR MUX116に伝えられる。
もしも、CONTROL100がそのTEST入力において、HIGHで
ある信号を受取れば、D−バス110上に現われるブラン
チアドレスが選択されて、マイクロプログラムコントロ
ーラ10のDATA OUT端子に与えられるであろう。これは、
マイクロコードルーチンに、次のクロックサイクル上で
の実行を開始させるであろう。最終的に、このルーチン
は終了し、さらにルーチンを呼出した命令の次に生じた
マイクロ命令への復帰が行なわれなければならないであ
ろう。CALL D命令は、SATCK POINTER138に与えられるD
OWN制御信号を発生するCONTROL100によって特定される
とすぐに、このいわゆる復帰リンケージを自動的に確立
する。上述のように、CALL D命令の特定は、CONTROL10
0に、スタックマルチプレクサ制御(STKMUXCTL)信号を
発生させ、この信号は、STACK MUX132に与えられ、STAC
K MUX132に、LIFOスタックメモリ136に与えられるべ
き、MPCレジスタ154からのライン152上のアドレス信号
を選択させる。CONTROL100が、PUSHが要求されているこ
とを判断するときに、HIGH書込能動化(WE)信号は、CO
NTROL100によって発生し、さらにLIFOスタックメモリ13
6のWEN入力に伝えられ、ここで、信号ライン152上の出
力、すなわち現在実行されている命令のアドレスに1を
加えたMPCレジスタ154の内容、すなわち復帰リンケージ
はLIFOスタックメモリ136上にプッシュされるであろ
う。
もしもCONTROL100が、上述のようにTEST信号がHIGHで
ないことを判断するならば、書込能動化(WE)信号は発
生せず、さらに条件付きPUSHは、CONTROL100で発生した
DOWN信号をスタックポインタ138に与えることによって
取消されるであろう。さらに、ADDR MUX116におけるCON
D信号の欠如のために、MPCレジスタ154によって信号ラ
イン152を介して与えられたアドレスは、ADDR MUX116に
よって選択されてコントローラ10のDATA OUT端子に与え
られるであろう。
条件付きジャンプD−バスおよびPOP(EXIT D)(0000
10): このEXIT Dマイクロ命令は、ループを終了させかつ
スタックを維持する。この命令は、その値が現在のLIFO
スタックのトップにストアされているアドレスにおいて
開始するループが確立されたということを保証する。こ
の値は、以下に説明されるように、END LOOPマイクロ命
令によって用いられて、ループにおけるすべての先行す
る命令が実行されたときにループの開始に転送されて戻
される。
EXIT D命令は、このループの中で発生し、さらにそ
の実行時に、CONTROL100にそのTEST入力をサンプリング
させる。もしも、TEST信号がHIGHであれば、コントロー
ラデータバス40によってコントローラ10のDATA IN端子
に通信されかつD−バス110上に与えられたブランチア
ドレスは、ADDR MUX116に与えられたCOND信号の制御下
において、選択されてコントローラ10のDATA OUT端子に
与えられる。さらに、この機能はループを終了させるの
で、ループ開始アドレスはもはや必要ではなく、さらに
それはLIFOスタックメモリ136からPOP処理されるべきで
ある。これは、スタックポインタ138をデクリメントす
ることによって実行される。
EXIT D命令を用いる上述の命令シーケンスは、ルー
プ内でいくつかのテスト条件が順番にサンプリングさ
れ、かつマイクロプログラムコントローラ10が、命令の
他のシーケンスに先行する前にこのテスト条件のどれか
が発生することを待機するときに非常に有用である。
先行する命令の説明と同様に、テストされた条件が発
生しないことをCONTROL100が判断する場合に、ADDR MUX
116におけるCOND信号の欠如は、信号ライン152を介して
MPCレジスタ154によって与えられたアドレスを、ADDR M
UX116によって選択させてコントローラ10のDATA OUT端
子に与えさせる。
条件付きイグジットE−バスループ(END FOR D)(00
0011): END FOR Dマイクロ命令は、ダウンカウンタ120のデ
クリメント能力を利用してループが実行される回数を制
御する。そのようなループは、ハイレベルの言語におい
て、I=N DOWN TO 1 DO…ENDという形態をとる。有用
であるためには、ループの第1のマイクロ命令のすぐ前
のマイクロ命令は計数値(N)をダウンカウンタ120に
ロードしなければならない。これは、いくつかの“特殊
機能”マイクロ命令のどれによっても、たとえば以下に
説明されるLOAD DまたはLOAD Aによって実行され得
る。
END FOR Dマイクロ命令は、ダウンカウンタ120によ
って制御されるループの最後の命令となるであろう。そ
れが実行されるごとに、それはCONTROL100に、そのTEST
入力をサンプリングさせるであろう。その結果生じたCO
ND信号は、もしもTEST信号がHIGHであり、ダウンカウン
タ120によって保持されている計数値がONEと異なるなら
ばHIGHとなるであう。この場合、CONTROL100はDECR信号
を発生し、この信号はダウンカウンタ120のDEC入力に与
えられてその値を1ずつデクリメントさせ、さらにADDR
MUX116に与えられたCOND信号の制御下において、ADDR
MUX116は、コントローラデータバス40を介してコントロ
ーラ10のDATA IN端子に伝えられかつD−バス110上に与
えられたブランチアドレスを選択してDATA OUT端子に与
えるであろう。パイプラインレジスタ36におけるEND FO
R Dマイクロ命令は、その命令フィールドにおいて、コ
ントローラバス40を介してマイクロプログラムシーケン
スコントローラ10のDATA IN入力に与えられるであろう
ループの第1のマイクロ命令のアドレスを含んでいるの
で、この機能は、他方の繰返しのためのループの開始へ
の復帰を引き起こす。
もしもONEの計数値が検出され、さらにそのCONE入力
においてCONTROL100に転送され、またはTEST信号がLOW
であれば、CONTROL100は、LOW COND信号を発生し、さら
にDECR信号を発生し、ダウンカウンタ120にその値をデ
クリメントさせるが、LOW COND信号の制御下において、
ADDR MUX116は、MPCレジスタ154からライン152上をそこ
に伝えられるフランチアドレスを選択するであろう。し
たがって、END FOR D命令がループにおいて最後である
ときに、MPCレジスタ154は、ループの次に続いて生じる
マイクロ命令のアドレスを含み、ループから出ることに
対応している。
A−およびM−入力に基づく条件付き命令: マイクロプログラムシーケンスコントローラに対する
命令の集合は、GOTO A(000100),CALL A(000101),
EXIT A(000110)およびEND FOR A(000111)マイク
ロ命令を含むが、これらのマイクロ命令は、ブランチア
ドレスがD−バスライン110上の信号からADDR MUX116に
よって選択されるものとして説明されたときに、対応す
る“A"マイクロ命令がADDR MUX116にA−バスライン150
上の信号を選択させるということを除くすべての点にお
いて、それぞれGOTO D,CALL D,EXIT DおよびEND FOR
D命令と同様に動作する。
マイクロ命令の集合はまた、GOTO M(001000),CALL
M(001001),EXIT M(001010)およびEND FOR M(0
01011)マイクロ命令を含むが、これらのマイクロ命令
は、ブランチアドレスがD−バスライン110上の信号か
らADDR MUX116によって選択されているものとして説明
されたときに、対応するマルチウェイ“M"マイクロ命令
がADDR MUX116に信号ライン114上の信号を選択させると
いうことを除くすべての点において、それぞれGOTO D,C
ALL D,EXIT D,およびEND FOR Dマイクロ命令と同様に
動作する。上述のように、第3図を参照すると、ライン
114上の信号は、4つのマルチウェイ入力M0,M1,M2およ
びM3からなる1つの集合上に存在する4つの最下位ビッ
トと、D−バスライン110b上に存在する12の最上位ビッ
トとの組合わせから構成されている。組合されるべき4
つのマルチウェイ入力のうちの特定の1つは、パイプラ
インレジスタ36における特定の“M"マイクロ命令によっ
て決定され、これはその命令フィールドにおいて、コン
トローラバス40を介してマイクロプログラムシーケンス
コントローラ10のDATA IN入力に通信された16−ビット
ワードを含むであろう。このワードの最下位2ビット
は、信号ライン110a(第2A図)を介してマルチウェイMU
X112に与えられ、さらに、マルチウェイMUX112がD−バ
スライン110b上の最上位12ビットと組合わせてライン11
4上のADDR MUX116への入力を形成する特定の4−ビット
マルチウェイ入力信号を選択させる。したがって、マル
チウェイマイクロ命令は、D−バスライン110上に存在
する16−ビットアドレスの下位4ビットを変更すること
によって得ることができる16のロケーションのどれにで
もジャンプさせる。この特徴は、ハイレベル言語のCASE
命令文を実行する際に有用である。
ループの条件付きテストエンド(END LOOP)(00110
0): END LOOP命令は、テスト条件が満足されている期間中
にのみ実行されるであろうループを終了させるために用
いられる。そのようなループは、ハイレベルの言語にお
いて、REPEAT…UNTILまたはWHILE…DOの形態をとる。EN
D LOOP命令は、ループへ入ることに先行する命令が第1
のループ命令のアドレスをLIFOスタックメモリ136上にP
USHしたということを仮定する。END LOOP命令は、ルー
プにおける最後の命令であり、さらにそれが実行される
ごとに、それは、CONTROL100に、満たされるべきテスト
条件が表わすTEST入力をサンプリングさせる。もしもこ
の信号がHIGHであれば、ループは反復されなければなら
ず、さらにTEST信号と、ADDR MUX116に与えられるI2お
よびI3マイクロ命令との制御下において、ADDR MUX116
は、LIFOメモリスタック136のトップから信号ライン140
を介してそこに伝えられたブランチアドレスを選択して
コントローラ10のDATA OUT端子上に与えるであろう。ル
ープ命令の第1のアドレスはスタック136上にPUSHされ
たので、これはループの反復をもたらす。もしもTEST信
号がLOWであれば、このループは終了されなければなら
ず、実行は、END LOOP命令に続いて生じる次の命令まで
通過させることである。LOW COND信号の結果として、AD
DR MUX116は、MPCレジスタ154から信号ライン152を介し
てそこに伝えられたブランチアドレスを選択し、したが
ってループの終了を実現するであろう。さらに、LOW CO
ND信号に応答して、CONTROL100は、スタックポインタ13
8へのDOWN信号を発生し、これによってスタックポイン
タをデクリメントして、ループの第1のマイクロ命令の
アドレスを、LIFOスタックメモリ136から除去させる。
このスタックの維持は、ネストされたループの可能性に
よって命令され、このループの各々はそれ自身の開始命
令アドレスを備えている。実行が内部ループの範囲の外
へ通過するときに、次の最も内側のループの開始アドレ
スは、LIFOスタックメモリ136のトップ上になければな
らない。
スタックを介するサブルーチンへの条件付きジャンプ
(CALL COROUTINE)(001101): CALL COROUTINEマイクロ命令は、その名称が示してい
るように、他方のコルーチンからコルーチンを呼出すた
めに用いられる。この命令は条件付きであるので、この
呼出しはCONTROL100に与えられたTEST信号に基づいて条
件付けられる。この命令は必ずしもその開始にいおてコ
ルーチンを呼出さないが、この命令は、マイクロプログ
ラムされたスイッチによる2つのプロセス間のプロセス
スイッチのように機能する。MPC154の内容(現在の処理
のアドレス)およびTOS302の内容(休止処理のアドレ
ス)のスワップが実行される。CALL COROUTINE命令の実
行は、呼出されるべきコルーチンのマイクロ命令のアド
レスをPUSHした命令によって先行されなければならな
い。CALL COROUTINE命令が実行されるときにTEST信号が
HIGHであれば、ADDR MUX116は、LIFOスタックメモリ136
のトップから信号ライン140上を介してそこに通信され
るブランチアドレスを選択するであろう。このアドレス
は、呼出されたコルーチン内の開始ポイントとなり、さ
らにコントローラ10のDATA OUT端子に対するADDR MUX11
6によって与えられたときに、コルーチンのマイクロ命
令は次のクロックサイクルにおいて実行されるであろ
う。
同時に、アドレスリンケージは、呼出されたコルーチ
ンから復帰させために確立されなければならない。それ
ゆえに、マイクロプログラムシーケンスコントローラ10
によるCALL COROUTINEマイクロ命令の実行は、呼出され
たコルーチンの開始アドレスであろうLIFOスタックメモ
リ136の内容の現在のトップを、MPCレジスタ154の現在
の値で置換えることを含み、このため、実行が割込され
た呼出コルーチンにおけるポイントへの後の復帰が、CA
LL COROUTINE命令を再度用いてLIFOスタック136のトッ
プにおけるアドレスを介して完了される。したがって、
もしもCONTROL100へのTEST入力がHIGHであれば、それ
は、STKMUXCTL信号を発生し、これはSTACK MUX132に与
えられて、STACK MUXに、MPCレジスタ154からライン152
上の信号を選択してスタック136のトップ上に読出さ
せ、CONTROL100は、これらの状況下にいおて、UPまたは
WE信号を発生せず、このため、スタックの内容の現在の
トップは消失され、呼出ルーチンへの復帰アドレスは、
呼出されたサブルーチンの開始アドレスを置換える。
すべての条件付きマイクロ命令と同様に、もしもCALL
COROUTINEが実行されるときにTEST信号がLOWであれ
ば、ADDR MUX116は、MPCレジスタ154内に含まれるアド
レスを選択してコントローラ10のDATA OUT端子に与え、
このため、次に続いて生じた命令は、次のクロックサイ
クル期間中に実行されるであろう。
スタックを介するサブルーチンからの条件付き復帰(RE
TURN)(001110): CONTROL100に与えられたTEST信号に関して条件付けら
れたように、CALL D,CALL A,またはCALL Mによって呼
出されたサブルーチン内で出会うときに、RETURN命令
は、サブルーチンを呼出した、CALL D,CALL AまたはCA
LL M命令の次に続いて生じた呼出ルーチンにおける命
令に復帰するであろう。したがって、もしもRETURN命令
の実行期間中に、CONTROL100へのTEST入力がHIGHであれ
ば、ADDR MUX116は、LIFOスタックメモリ136のトップか
らライン140上の信号を選択し、この信号はその後コン
トローラ10のDATA OUT端子に伝えられる。この態様にお
いて、対応するCALL D,CALL A,またはCALL Mが、次に
続く命令のアドレスをスタック136のトップ上に与える
ので、呼出ルーチンへの復帰は、次の命令サイクル期間
中に実行されるであろう。同時に、CONTROL100は、DOWN
信号を発生し、この信号は、スタックポインタ138に与
えられ、これによってスタックポインタをデクリメント
して、復帰アドレスをLIFOスタック136からPOP処理させ
る。
このスタック維持は、サブルーチンを呼出したCALL
D,CALL AまたはCALL M命令が呼出ルーチン内のループ
の範囲内でネストされるという可能性によって命令され
る。RETURN命令はまた、以下に説明されるように、ハイ
レベルの言語のCASE構成を実現する際に有用である。
すべての条件付きマイクロ命令と同様に、もしもRETU
RNが実行されるときにTEST信号がLOWであれば、ADDR MU
X116は、MPCレジスタ154内に含まれるアドレスを選択し
てコントローラ10のDATA OUT端子に与え、このため、サ
ブルーチン内の次に続いて生じた命令は、次のクロック
サイクル期間中に実行されるであろう。このスタックポ
インタは、この場合には変えられない。
条件付きイグジットスタックループ(END FOR)(00111
1): END FORマイクロ命令は、それがダウンカウンタ120の
デクリメント能力を利用して、ループが実行される回数
を制御するという点で、上述のEND FOR Dマイクロ命令
と同様に作動する。END FOR Dマイクロ命令と同様に、
ループの第1のマイクロ命令のすぐ前のマイクロ命令
は、計数値(N)をダウンカウンタ120にロードしなけ
ればならない。しかしながら、END FOR命令はLIFOスタ
ックメモリ136を使用して第1のループ命令のアドレス
をストアするので、END FOR命令は、ループに入る前に
このアドレスがLIFOスタック136上にプッシュされるこ
とを期待している。
END FORマイクロ命令のオペレーションは、上述のよ
うに、ブランチアドレスがD−バスライン110上の信号
からADDR MUX116によって選択されているものと示され
るときに、END FORマイクロ命令が、ADD MUX116に、LIF
Oスタックメモリ136のトップから信号ライン140上の信
号を選択させるであろうということを除いて、すべての
点においてEND FOR D命令と同一である。
さらに、ループのそれ以上の繰り返しがなされず、し
たがって現在スタックのトップ上にあるループの第1の
命令のアドレスがもはや必要とされていないので、END
FOR命令が、ダウンカウンタ120の計数がONEになるこ
と、またはCONTROL100のTEST入力上のLOW信号によって
示された条件付きテストのいずれかによって、ループか
らのイグジットを生じるときに、LIFOスタック136は、
スタックポインタ138をデクリメントすることによってP
OP処理される。
上述のように、表IVの第1行上に示された16の条件付
きマイクロ命令の集合の説明が先に行なわれ、さらにそ
こで“条件付きシーケンス制御”として説明された。マ
イクロプログラムシーケンスコントローラは、表IVの第
2行上に示されるように16の条件付きマイクロ命令の第
2の集合を用い、さらに各々の対応するマイクロ命令が
先行する2ビットとして“00"よりもむしろ“01"のビッ
ト割当てを有しているということを除いて、およびテス
ト条件TEST信号がHIGHのときにいつでも一定の機能が保
証されるときに、対応する“極性の反転された”マイク
ロ命令が、テスト条件TEST信号がLOWであるときに取ら
れるべきその機能を実行させるということを除いて、す
べての点において上述の説明された集合と同一である、
“極性の反転された条件付きシーケンス制御”として説
明された。同様に、テスト条件TESTがLOWであるときに
必ず一定の機能が保証されるならば、対応する“反転さ
れた極性の”マイクロ命令は、テスト条件TESTがHIGHの
ときに取られるべき機能を実行させる。
さらに、このコントローラは、表IVの第3行上に示さ
れるように、16の無条件マイクロ命令の第3の集合を使
用し、さらに、各々の対応するマイクロ命令が“00"よ
りもむしろ“10"で開始するビットの割当てを有すると
いうことを除いて、およびテスト条件TEST信号がHIGHで
あることに従って一定の機能が条件付で保証されるとき
はいつでも、対応する“無条件”マイクロ命令がテスト
条件TEST信号に関係なくその機能を実行させるというこ
とを除いて、すべての点において、条件付きマイクロ命
令の第1の集合と同一である“無条件シーケンス制御”
として説明されている。さらに、これは、無条件マイク
ロ命令によってとられる唯一の機能であり、したがっ
て、テスト条件TEST信号がLOWであるときはいつでも条
件付きマイクロ命令によって取られるどの機能も、対応
する無条件マイクロ命令によって保証されないであろ
う。
コントローラによって用いられる残りの16のマイクロ
命令は、表IVの第4行上に示されるように、いわゆる
“暗黙継続を伴う特殊機能”であり、さらに“11"で開
始する6−ビットパターンが割当てられている。上述の
ように、このタイプの命令の存在は容易に検出されるの
で、そしてこれらの命令は、時間−臨界テスト条件TEST
信号のサンプリングを必要としないので、これらの命令
は、付加的な時間を必要とすることなく、付加的な特殊
機能を実行する。条件付きおよび無条件命令と同様に、
“特殊機能”命令は、各命令ニーモニックに続くそれら
のビットの割当てとともに説明される。
オペレーションなし(継続)(110000): その名称が示すように、CONTINUE命令は、マイクロプ
ログラムにおけるプレースホルダとして機能する以外に
どのような機能も生じない。CONTINUEマイクロ命令が実
行されるときに、それはADDR MUX116に、信号ライン152
上でMPCレジスタ154によって与えられたアドレスを選択
させて、マイクロプログラムシーケンスコントローラ10
のDATA OUT端子に与え、このため、マイクロプログラム
メモリ30(第1図)と連続する次のマイクロ命令が実行
され、すなわちマイクロプログラムシーケンスは、“継
続する”。
命令のこの“暗黙継続を伴う特殊機能”のサブセット
内の残りの15のマイクロ命令のすべては、それらの“特
殊機能”(付加された時間を必要とすることなく)とと
もにこの“継続”機能を実行するので、マイクロプログ
ラムシーケンスの上述の継続は、それらの説明において
は明白に説明されないであろう。
プッシュPC/ロードカウンタD−バス(FOR D)(11000
1): FOR Dマイクロ命令は、前述のEND FOR条件付きマイ
クロ命令に関連してマイクロプログラムにおけるループ
をセットアップするために用いられる。END FOR命令の
説明において述べたように、END FOR命令は、計数値
(N)がダウンカウンタ120へロードされ、かつループ
を終了させるEND FOR命令の後に続いて生じる命令に実
行が通過する後の固定された回数だけ実行されるべきル
ープに入る直前に、MPCレジスタ154にストアされている
現在の値がLIFOスタックメモリ136のトップ上にPUSH処
理されるということを必要とする。END FOR命令上で終
了するループに入る直前にFOR D命令を実行すること
は、CONTROL100に、CMUXCTL信号を発生させ、この信号
はC−MUX118に与えられて、C−MUX118に、D−バスラ
イン110上の入力を選択させてダウンカウンタ120にロー
ドさせる。パイプラインレジスタ36に含まれるFOR Dマ
イクロ命令を伴う情報は、ループの繰り返しの回数を決
定する計数値(N)であり、さらにこの値は、コントロ
ーラデータバス40によってコントローラ10のDATA IN入
力に通信され、さらにそこから、内部D−バス110を介
して、前述のC−MUX118に通信されてダウンカウンタ12
0にロードされる。
同時に、MPCレジスタ154の内容のPUSHは、LIFOスタッ
クメモリ136上にもたらされるであろう。したがって、C
ONTROL100は、スタックマルチプレクサ制御(STKMUXCT
L)信号を発生し、この信号はSTACK MUX132に与えら
れ、さらにSTACK MUX132に、MPCレジスタ154からライン
152上のアドレス信号を選択させてLIFOスタックメモリ1
36に与えさせる。同時に、CONTROL100は、スタックポイ
ンタ138に与えられるUP信号を発生し、その後に、入力
アドレスの安定化のために実行しようとするときに、LI
FOスタックメモリ136に与えられたWE信号が続き、ここ
で、信号ライン134上の出力、すなわちMPCレジスタの内
容は、LIFOスタック136上にプッシュされるであろう。
デクリメントダウンカウンタ(DECREMENT)(11001
1): DECREMENT命令は明白に、ダウンカウンタ120の内容を
1ずつ減少させる。それが実行されるごとに、CONTROL1
00は、DECR信号を発生し、このDECR信号は、ダウンカウ
ンタ120のDEC入力に与えられて、その値を1ずつデクリ
メントさせる。
プッシュPC(LOOP)(110010): このLOOP命令は、前述のEND LOOP条件付きマイクロ命
令に関連してループをセットアップするために用いられ
る。END LOOP命令の説明において述べたように、END LO
OP命令は、その最後の命令としてEND LOOP命令を有して
いるループに入る直前に第1のループ命令のアドレスが
LIFOスタック136上にPUSH処理されるということを要求
している。それゆえに、このLOOP命令は、この第1のル
ープ命令の直前に与えられ、そしてMPCレジスタは実行
されるべき次の命令を順次指示するので、それが、すな
わちLOOP命令が実行されたときに、MPCレジスタ154にお
ける値は第1のループ命令のアドレスに等しくなるであ
ろう。したがって、LOOP命令が実行されるときに、それ
はCONTROL100にスタックマルチプレクサ制御(STKMUXCT
L)信号を発生させ、この信号はSTACK MUX132に与えら
れ、さらにSTACK MUX132に、MPCレジスタ154からライン
152上のアドレス信号を選択させてLIFスタックメモリ13
6に与えさせる。同時に、CONTROL100は、スタックポイ
ンタ138に与えられるUP信号を発生し、その後に、入力
アドレスの安定化を実行しようとするときに、LIFOスタ
ック136に与えられたWE信号が続き、ここで、信号ライ
ン134上の出力、すなわちMPCレジスタの内容はLIFOスタ
ック136上にPUSH処理されるであろう。
POP D−バス(POP D)(110100): 64のマイクロプログラムシーケンスコントローラ命令
のうちの63は、後述するように、スタックポインタ138
の内容をアクセスさせる。もしも、POP D命令の実行期
間中に、HIGHがコントローラ10のOEDの端子に与えられ
ると、STACK OUT MUX142の出力信号ライン上のデータ
は、コントローラ10のDATA IN端子への伝送のために双
方向D−バス110上に与えられる。POP D命令の実行期
間中に、CONTROL100は、OSPCTL信号を発生し、このOSPC
TL信号は、STACK OUT MUX142に与えられ、さらに、ライ
ン140上の信号、すなわちLIFOスタックメモリ136のトッ
プ上の内容を3−状態出力ドライバ144の入力に通過さ
せる。同時に、OED端子に与えられたHIGHによって、ラ
イン146上にHIGH信号が発生し、ANDゲート147は、ライ
ン148上にHIGH DOUTEN信号を発生し、この信号はHIGH D
OUTEN信号を3−状態出力ドライバ144に通信し、これに
よって、LIFOスタックメモリ136のトップ上のアドレス
を、コントローラ10のDATA IN端子への伝送のためにD
−バス110上に与える。
プッシュD−バス(PUSH D)(110101): PUSH D命令の主な用途は、POP D命令に関連して、以
下に説明されるように、LIFOスタック136を拡張するこ
とである。さらに、PUSH D命令は、上述のRETURN条件
付きマイクロ命令に関連して、マイクロプログラム内の
特定のシーケンスの実行に続く指定された命令へ制御信
号を通過させるために用いられる。上述のように、RETU
RN命令は、もしもテスト条件が正当であれば、マイクロ
プログラムシーケンスコントローラ10に、LIFOスタック
136のトップ上のアドレスをDATA OUT端子上に与えさせ
る。したがって、実行されるべき次のマイクロ命令は、
RETURNマイクロ命令の実行期間中にスタックレジスタ30
2(第4図)のトップによって指示されたマイクロ命令
になるであろう。
PUSH D命令を実行することによって、パイプライン
レジスタ36内に保持されるときにその命令フィールドに
含まれる16−ビットアドレスデータは、コントローラバ
スデータ40を介してコントローラ10のDATA IN入力に通
信されるであろう。PUSH D命令は、CONTROL100に、STK
MUXCTL信号を発生させ、この信号はSTACK MUX132に与え
られ、さらにSTACK MUX132に、D−バスライン110上の
アドレスを選択されてLIFOスタックメモリ136に与えさ
せ、さらに同時にCONTROL100はスタックポインタ138に
与えられるUP信号を発生し、その後に、入力アドレスの
安定化を実行しようとするときに、LIFOスタック136に
与えられたWE信号が続き、ここで、信号ライン134上の
出力、すなわちD−バスライン110上のアドレスはLIFO
スタック136上にPUSH処理されるであろう。したがっ
て、RETURNマイクロ命令の後続の実行は、コントローラ
に、その次の命令サイクルにおいて、PUSH Dマイクロ
命令によってLIFOスタック136上にPUSH処理されたアド
レスに配置された命令を実行させる。ネストされたRETU
RNの可能性をもたらすことによって、RETURN命令は、上
述のように、RETURNの実行ごとにスタックをPOPするこ
とによってスタック復帰アドレスの適正なトップを維持
する。
ロードSP 0(RESET SP)(110110): RESET SPマイクロ命令は、スタックポインタ138の内
容が0であることを保証する。この命令は典型的には、
LIFOスタックのオーバフローまたはアンダフローが生じ
たときはいつでも利用される。1つの項目が全スタッ
ク、すなわち既に33の値を含むスタック上にPUSH処理さ
れるときに、オーバフローは生じ、さらにLIFOスタック
メモリ136の底部におけるその項目を重ね書きさせるで
あろう。空白のスタック、すなわち値を含まないスタッ
クから項目がPOP処理されるときに、アンダフローが生
じ、さらにその項目に対する規定されない値をもたらす
であろう。RFSET SP命令は、CONTROL100に、リセットス
タックポインタ(RSTSP)信号を発生させ、この信号は
スタックポインタ138のSPレジスタ308(第4図)のRESE
T入力に与えられ、次のクロックパルス(CLK)が受取ら
れたときに、SPレジスタ308を0にする。
C−MUXおよびダウンカウンタに基づく特殊機能命令: マイクロプログラムシーケンスコントローラに対する
特殊機能命令の集合は、FOR A(110111)マイクロ命令
を含み、このマイクロ命令は、計数値(N)がD−バス
ライン110上の信号からC−MUX118によって選択される
ものとしてFOR Dの説明において説明されるときに、FO
R A命令がC−MUX118に、A−バスライン150上の信号
を選択させるということを除いて、すべての点において
FOR D命令と同様に作動する。
コントローラに対して与えられた特殊機能命令は、す
なわちPOP C(111000)およびPUSH C(111001)は、P
USH C命令がD−バス110上のアドレスよりもむしろ、
ダウンカウンタレジスタ120の内容を信号ライン122およ
びSTACK MUX132を介してLIFOスタック136のトップ上にP
USH処理するということを除くすべての点において、上
述のようにPOP DおよびPUSH D命令とオペレーション
においてそれぞれ同一である。同様に、POP C命令は、
スタック136のトップ上の内容を、双方向D−バス110上
よりはむしろ、信号ライン140およびC−MUX118を介し
てダウンカウンタ120へPOP処理し、POP D命令の場合と
同様に、コントローラ10のDATA IN端子に与える。した
がって、スタックポインタ138へのアクセスに関する条
件およびOED端子におけるHIGHは、それらがPOP D命令
を実行するために与えられるようには、POP C命令の実
行期間中に与えられない。
PUSH CおよびPOP C命令は、LIFOスタックメモリ136
上で、外側のループ内でネストされたれ内側のループへ
の入口におけるダウンカウンタ120の現在の外側のルー
プの繰返し計数値を蓄えるために、さらに内側のループ
が終了しかつダウンカウンタレジスタ120にストアされ
た適正なループ繰返し計数値によって外側のループに再
度入るときに、外側のループの繰返し計数値を再度呼出
すために対になって用いられている。構成されたプログ
ラム設計の1−イン,1−アウト原理と一致して、このLI
FOスタック136の利用は、マイクロプログラムループが
完全にネストされ、それらの物理的に最初のマイクロ命
令においてのみ入れられかつそれらの物理的に最後のマ
イクロ命令に続くマイクロ命令に対してのみ出ていくと
いうことを要求する。
スワップカウンタおよびスタックのトップ(SWAP)(11
1010): SWAPマイクロ命令の実行は、CONTROL100に、CMUXCTL
信号を発生させ、この信号はC−MUX118に与えられて、
信号ライン140上のLIFOスタック136の内容のトップをダ
ウンカウンタ120へ通過させる。同時に、CONTROL100
は、STKMUXCTL信号を発生し、この信号はSTACK MUX132
に与えられて、STACK MUXに、ダウンカウンタ120からラ
イン122上の信号を選択させて、CONTROL100によって連
続して発生した、スタック136によるWE信号を受信した
ときに、スタック136のトップ上へ読出される。これら
の状況下において、CONTROL100は、UP信号を発生し、こ
のためスタックの内容の現在のトップは重ね書きされ、
ダウンカウンタ120にロードされ、このため呼出ループ
に対する繰返し計数は、呼出されたループに対する繰返
し計数を交換する。
カウンタ/ロードカウンタD−バスをたくわえる(PUSH
C LOAD D)(111011): 上述のPUSH Cマイクロ命令の説明に関連して述べた
ように、現在の外側のループの繰返し計数値は、内側の
ネストされたループへの記述項の前にLIFOスタックメモ
リ136上で蓄えられる。さらに、内側のループに対する
最初の計数値(N)を確立しこの値をダウンカウンタ12
0にロードすることが通常望ましい。PUSH C LOAD Dマ
イクロ命令は、それがパイプラインレジスタ36にありD
−バス110に与えるためにコントローラ10のDATA IN端子
に伝えられるときに、命令を伴う内側のループの計数値
(N)を用いてこれらの機能を実行する。PUSH C LOAD
Dマイクロ命令の実行は実質的に、MPCレジスタ154の
内容よりもむしろ、ダウンカウンタ120の内容がLIFOス
タック136上にPUSH処理されるということを除いて、上
述のFOR D命令に対して説明されたとおりである。
ロードカウンタD−バス(LOAD D)(111100): LOAD Dマイクロ命令は、その名称が意味するよう
に、上述のPUSH C LOAD D命令のこの見地に対して説
明されたように、この命令を伴う計数値(N)によるダ
ウンカウンタレジスタ120のロードを実行する。この値
は、ループの繰返し制御に用いられる。
ロードカウンタA−バス(LOAF A)(111101): LOAD Aマイクロ命令の動作は、ダウンカウンタ120の
ローディングがD−バス110からよりもむしろA−バス1
50から得られるということを除いて、上述のLOAD D命
令とすべての点において同一である。
セットアドレスコンパレータ(SET)(111110): SETマイクロ命令の実行は、CONTROL100に、コンパレ
ータレジスタ128に与えられるLDCR信号を発生させ、こ
のコンパレータレジスタ128は、さらにその後コンパレ
ータレジスタ入力に与えられるD−バス110上にアドレ
スをロードする。このアドレスはSET命令を伴い、さら
にそれがパイプラインレジスタ36にある期間中に、それ
はコントローラ10のDATA IN端子に伝えられてD−バス1
10上に与えられる。同時に、CONTROL100は、能動化コン
パレータ(ENCMP)信号を発生し、この信号はコンパレ
ータ129のEN入力に与えられる。
能動化されたコンパレータ129は、コントロータ10のE
QUAL出力端子においてHIGH信号を発生し、コンパレータ
レジスタ128におけるアドレスが等しいごとに、次に実
行さるべきマイクロ命令のアドレスは、INT MUX172およ
び信号ライン174を介してコンパレータ129に伝えられ
る。この情報は、マイクロプログラム内のブレークポイ
ントを確立しまたはプログラム実行性能に関する統計を
集めるために有用である。
不能化アドレスコンパレータ(CLEAR)(111111): CLEARマイクロ命令の実行は、CONTROLに、コンパレー
タ129のCLR入力に与えられるクリアコンパレータ(CLRC
MP)信号を発生させ、さらにコントローラ10のEQUAL出
力端子に対するHIGH信号の発生を停止させる。
POP Dを除くすべての命令はCONTROL100に、STACK OU
T MUX142に与えられるOSPCTL信号を発生させ、スタック
ポインタ信号を3−状態出力ドライバ144の入力に通過
させるので、POP D命令をのぞくすべての命令のマイク
ロプログラムシーケンスコクトローラによる実行期間中
に、スタックポインタ138の現在の値に対するアクセス
が有効である。スタックポインタ値はその後、HIGH信号
をコントローラ10のOED端子に与えることによってD−
バス110上に与えられ、このため、STACK OUT MUX142の
出力ラインは、D−バス110に結合されてスタックポイ
ンタの値をコントローラ10のDATA IN端子に伝える。
復帰リンケージ、カウンタの値、およびループアドレ
スの記憶のためにLIFOスタック136の一定数のメモリロ
ケーションを必要とするサブルーチンを実行するとき
に、スタックポインタ138の現在の値は最も頻繁に必要
とされる。このサブルーチンを実行する前に、これらの
データを記憶するためのLIFOスタック上の十分なメモリ
ロケーションが残っているかどうかが判断されなければ
ならない。LIFOスタック136は、TOSレジスタ302(第4
図)および32−ワードスタックRAM300を含む合計で33の
メモリロケーションから成り立っている。もしも不十分
なスタックメモリしか存在しないならば、外部ストレー
ジにおけるスタックの全体またはいくつかの下位の部分
を一時的にストアすることによってスタックの拡張が実
行される。マイクロプログラム内のバランスがとられた
ポイント、すなわちスタックの深さが同一であるポイン
トにおけるPOP DおよびPUSH D命令によって、たくわ
えることおよび後で再度ストアすることが実行される。
コントローラ10にはA FULL出力端子が設けられ、これ
はスタックポインタ値が28に等しくまたは28を越えると
きはいつでもHIGH信号を表わし、このためスタックメモ
リの有効性はもしも必要ならばより密接にモニタされ
る。
【図面の簡単な説明】
第1図は、マイクロプロセッサにおけるこの発明の割込
可能なマイクロプログラムシーケンスコントローラの典
型的な応用例を示す図である。 第2A図および第2B図は、この発明のマイクロプログラム
シーケンスコントローラの機能的なブロック図である。 第3図は、第2A図および第2B図の発明において用いられ
るアドレスマルチプレクサによって出力されるべきアド
レスを選択するために用いられるロジック回路の回路図
である。 第4図は、第2A図および第2B図の発明において用いられ
る後入れ先出しスタックの機能的なブロック図である。 図において、10はマイクロプログラムシーケンスコント
ローラ、12はデータ処理回路、14はワーキングレジス
タ、16は演算ロジックユニット、18はステータスレジス
タ、20はメモリ、21はデータ獲得回路、22はプログラム
カウンタ、24はメモリアドレスレジスタ、26は双方向デ
ータバス、28,32はアドレスバス、30はマイクロプログ
ラムメモリ、34はマイクロ命令バス、36はパイプライン
レジスタ、38はコントローラ命令バス、40はコントロー
ラデータバス、42はプロセッサ命令バス、44はステータ
ス信号ライン、50はマッピングROM、51はレジスタ、52
は命令レジスタ、56は割込コントローラ、58は割込ベク
トルPROM、66はベクトルアドレスバス、68はシステムク
ロックを示す。
フロントページの続き (72)発明者 サンジヤイ・アイエール アメリカ合衆国、カリフオルニア州、サ ン・ホセプレザント・クレスト・ドライ ヴ、3560 (72)発明者 ポール・ポー・ロイ・チユー アメリカ合衆国、カリフオルニア州、サニ イベイルフアイアバード・ウエイ、1442 (56)参考文献 特開 昭55−23588(JP,A) 特開 昭51−3748(JP,A) 特開 昭57−5156(JP,A)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】マイクロプログラムシーケンスコントロー
    ラの動作方法であって、 前記マイクロプログラムシーケンスコントローラは、 命令の集合から命令を周期的に処理し、 出力データバス上に命令アドレスを発生し、かつ 入力データバスと命令データバスと命令ワードバスと前
    記出力データバスとを介して複数の外部装置と通信する
    ように機能し、 前記命令の集合の各命令は、少なくともオペレーション
    コードフィールドを含む複数のフィールドに配列された
    複数のビットを有するワードを含み、 前記命令の集合は、「条件付き」命令の組と「無条件」
    命令の組とに分けられており、 前記「条件付き」命令の組の各命令は、前記命令アドレ
    スが前記出力データバス上に発生する前に前記マイクロ
    プログラムシーケンスコントローラによる複数の外部テ
    スト条件の適用および処理を必要とする命令であり、 前記「無条件」命令の組の各命令は、前記複数の外部テ
    スト条件の前記適用および処理を必要としない命令であ
    り、 前記「無条件」命令の組は、複数の特殊機能命令からな
    るサブセットを含むようにさらに分けられており、 前記複数の特殊機能命令の各々は、マイクロプログラム
    シーケンスコントローラに、処理されている命令の次に
    続く命令のアドレスに等しい命令アドレスを前記出力デ
    ータバス上に発生させるとともに、所定の特殊機能を実
    行させる命令であり、 前記マイクロプログラムシーケンスコントローラの動作
    方法は、 (a) 前記特殊機能命令を処理するときに前記出力デ
    ータバス上の命令アドレスの前記発生に加えて前記特殊
    機能の所定のものを実行するように前記マイクロプログ
    ラムシーケンスコントローラを動作させるステップと、 (b) 命令デコーディング手段を前記命令ワードバス
    に接続しかつその上の命令ワードの前記オペレーション
    コードフィールドをデコードして複数の制御信号を発生
    するステップとをさらに備え、 前記命令ワードのオペレーションコードフィールドは、
    2つのビットB1およびB2を含み、 前記複数の外部テスト条件は、複数(n個)のテストビ
    ットT1,T2,…,Tnを含み、かつ 前記特殊機能命令の組は、“1"に等しいビットB1および
    B2を各々が有する複数の命令を含み、 (c) COND=(F(T1,T2,…,Tn)XOR)B2という方程
    式に従って、前記命令デコーディング手段によって条件
    付き信号CONDを発生するステップをさらに備え、 ここでFは、前記マイクロプログラムシーケンスコント
    ローラによる前記テストビットT1,T2,…Tnの前記適用お
    よび処理を表わし、これによりB1およびB2が“1"に等し
    いときに、前記命令デコーディング手段は、前記(n
    個)テストビットの値とは無関係に“0"に等しいCOND信
    号を発生し、 (d) 前記複数の外部テスト条件の前記適用および処
    理なしに前記特殊機能を実行するように前記マイクロプ
    ログラムシーケンスコントローラを動作させるステップ
    をさらに備える、マイクロプログラムシーケンスコント
    ローラの動作方法。
  2. 【請求項2】命令の集合から命令を周期的に処理し、出
    力データバス上に命令アドレスを発生し、かつ複数の入
    力データバスと命令ワードバスと前記出力データバスと
    を介して複数の外部装置と通信する、マイクロプログラ
    ムシーケンスコントローラであって、 前記命令の集合の各命令は、少なくともオペレーション
    コードフィールドを含む複数のフィールドに配列された
    複数のビットを有するワードを含み、 前記命令の集合は、複数の「条件付き」命令を含み、 前記「条件付き」命令の各々は、前記命令アドレスが前
    記出力データバス上に発生する前に前記マイクロプログ
    ラムシーケンスコントローラによる複数の外部テスト条
    件の適用および処理を必要とする命令であり、 前記マイクロプログラムシーケンスコントローラは、 (a) 前記命令ワードバスに接続されて、その上の命
    令ワードの前記オペレーションコードフィールドおよび
    前記複数の外部テスト条件をデコードして、複数の制御
    信号を発生する命令デコーディング手段と、 (b) 処理されている命令の次に続く命令のアドレス
    のソースを含む、内部次アドレスの複数のソースと、 (c) 第1の「条件付き」入力の組と、第2の「無条
    件」入力とを有する、多重化手段とを備え、 (c−1) 前記第1の「条件付き」入力の組は、前記
    複数の入力データバスと、前記複数の内部次アドレスソ
    ースと、前記命令デコーディング手段とに接続され、 (c−2) 前記第2の「無条件」入力は、前記次に続
    く命令のアドレスを含む内部ソースに接続され、 (c−3) 前記多重化手段は、前記命令デコーディン
    グ手段によって発生した前記複数の信号の1つを含む制
    御信号に応答して、前記第1の「条件付き」入力の組の
    1つの入力または前記第2の「無条件」入力を前記出力
    データバスに選択的に結合し、 (c−4) 前記マイクロプログラムシーケンスコント
    ローラは、前記制御信号と同時に前記多重化手段の入力
    を発生させ、 (c−5) 前記多重化手段は、前記マイクロプログラ
    ムシーケンスコントローラが前記「条件付き」命令の1
    つを処理し、かつ前記命令デコーディング手段が前記制
    御信号の1つを発生したときに、前記第1の「条件付
    き」入力の組の1つの入力を選択し、かつ (c−6) 前記多重化手段は、前記マイクロプログラ
    ムシーケンスコントローラが前記「条件付き」命令の1
    つを処理しかつ前記命令デコーディング手段が前記制御
    信号の他のものを発生したときに、前記第2の「無条
    件」入力を選択し、 (d) 前記命令ワードのオペレーションコードフィー
    ルドは、2つのビットB1およびB2を含み、 前記複数の外部テスト条件は、複数(n個)のテストビ
    ットT1,T2,…,Tnを含み、かつ 前記「条件付き」命令は、“0"に等しいビットB1を各々
    が有し、かつ (e) 前記命令デコーディング手段は、 COND=(F(T1,T2,…,Tn)OR B1)XOR B2 という方程式に従って多重化制御信号CONDを発生し、 (f) ここでFは、前記マイクロプログラムシーケン
    スコントローラによる前記テストビットT1,T2,…,Tnの
    前記適用および処理を表わし、これによりビットB2の値
    は、「条件付き」命令が真または反転された極性のいず
    れを有するかを判断し、 (g) “0"に等しいビットB2を有する「条件付き」命
    令は、もしもFが“1"に等しいときにのみ前記第1の
    「条件付き」入力の組の1つの入力を前記多重化手段に
    選択させ、かつ (h) “1"に等しいビットB2を有する「条件付き」命
    令は、もしもFが“0"に等しいときにのみ前記第1の
    「条件付き」入力の組の前記1つの入力を前記多重化手
    段に選択させる、マイクロプログラムシーケンスコント
    ローラ。
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 JPS60241132A (ja) 1985-11-30
JPH0814793B2 true 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) EP0448127B1 (ja)
JP (1) JPH0814793B2 (ja)
AT (2) ATE98791T1 (ja)
DE (2) DE3587683T2 (ja)

Families Citing this family (9)

* 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
RU2121710C1 (ru) * 1997-04-14 1998-11-10 Московский государственный университет путей сообщения (МИИТ) Вычислитель ранговой статистики
RU2121711C1 (ru) * 1997-04-14 1998-11-10 Московский государственный университет путей сообщения (МИИТ) Вычислитель ранговой статистики
RU2122746C1 (ru) * 1997-04-14 1998-11-27 Московский государственный университет путей сообщения (МИИТ) Вычислитель ранговой статистики
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 中国人民解放军国防科技大学 一种高效的访存地址位翻转统计装置
US20260098900A1 (en) * 2024-10-07 2026-04-09 Qualcomm Incorporated System state save and restore mechanism using ram and scan chains

Family Cites Families (7)

* 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
JPS5331700B2 (ja) * 1974-06-28 1978-09-04
JPS5523588A (en) * 1978-08-08 1980-02-20 Nec Corp Micro program control unit
US4398244A (en) * 1980-05-07 1983-08-09 Fairchild Camera & Instrument Corporation Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US4868735A (en) Interruptible structured microprogrammed sixteen-bit address sequence controller
US4438492A (en) Interruptable microprogram controller for microcomputer systems
US4719565A (en) Interrupt and trap handling in microprogram sequencer
US4447873A (en) Input-output buffers for a digital signal processing system
EP0464494B1 (en) A high performance pipelined emulator
US4750112A (en) Data processing apparatus and method employing instruction pipelining
US4166289A (en) Storage controller for a digital signal processing system
US4398244A (en) Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
EP0380858B1 (en) Method and apparatus for detecting and correcting errors in a pipelined computer system
JP2519226B2 (ja) プロセツサ
US6449709B1 (en) Fast stack save and restore system and method
US4047161A (en) Task management apparatus
US4811345A (en) Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit
US4755935A (en) Prefetch memory system having next-instruction buffer which stores target tracks of jumps prior to CPU access of instruction
EP0407911A2 (en) Parallel processing apparatus and parallel processing method
US4378589A (en) Undirectional looped bus microcomputer architecture
US4019033A (en) Control store checking system and method
US5146564A (en) Interface between a system control unit and a service processing unit of a digital computer
US7058790B2 (en) Cascaded event detection modules for generating combined events interrupt for processor action
EP0162778A2 (en) Instruction prefetch system for conditional branch instruction for central processor unit
KR19980069757A (ko) 마이크로프로세서 및 멀티프로세서 시스템
US5341495A (en) Bus controller having state machine for translating commands and controlling accesses from system bus to synchronous bus having different bus protocols
EP0010197B1 (en) Data processing system for interfacing a main store with a control sectron and a data processing section
EP0448127B1 (en) Microprogram sequence controller
EP0010196B1 (en) Control circuit and process for digital storage devices