JPS638489B2 - - Google Patents
Info
- Publication number
- JPS638489B2 JPS638489B2 JP56182181A JP18218181A JPS638489B2 JP S638489 B2 JPS638489 B2 JP S638489B2 JP 56182181 A JP56182181 A JP 56182181A JP 18218181 A JP18218181 A JP 18218181A JP S638489 B2 JPS638489 B2 JP S638489B2
- Authority
- JP
- Japan
- Prior art keywords
- microinstructions
- microinstruction
- series
- processing unit
- data processing
- 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
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
本発明はマイクロ・プロセツサを用いたデータ
処理装置に関し、特にマイクロコード・アーキテ
クチヤを用いかつ独自のインターフエース手法を
用いて外部から与えられたマイクロコード命令に
応答可能な装置に関する。 データ処理装置は、一般的に、コンパクトな単
一基板型コンピユータから更に複雑な高性能のミ
ニ・コンピユータに至るシステム形態を提供する
ため開発されてきた。このようなシステムは、1
つのマイクロ命令、乃至はその適当なデータ・ス
トアから得た1つ以上の一連のマイクロ命令に対
するアクセスを行うようにマクロ命令が適当に復
号されるマイクロコード・アーキテクチヤを使用
する。 マイクロ命令にとつて必要なデータ記憶スペー
スを減らすため、また多数の「巾の広い」命令ワ
ードの処理を避けるため、マイクロコード・シス
テムにおいては、従来技術において公知の如く1
つのレベルのマイクロ・ストアと対照的な多重レ
ベル、多くの場合「2レベル」のマイクロコー
ド・ストア手法を使用してきた。従来技術の2レ
ベルのマイクロコード手法の能力を増加させるた
め使用される1つのこのような2レベルのマイク
ロ・システムにおいては、参考のため本文に引用
される米国のマサチユーセツツ州ウエストボーロ
市のData General社に譲渡された、1980年2月
11日Bernstein等により出願された米国特許出願
第120272号(特開昭56−153449号)「データ処理
システム」において記載されている。 この米国特許出願に記載されたシステムによれ
ば、マイクロ制御ストアは、「直交型」ストアと
して構成され、このストアにおいては第1の、即
ち「垂直型」のマイクロ制御ストアが、複数個の
第2の、即ち「水平」マイクロ命令を第2のレベ
ルの、即ち水平型マイクロ制御ストアから選定す
るための選択数の垂直マイクロ命令ビツトを含む
1つのフイールドと、前記の米国特許出願に記載
の如く、1つ以上の「修飾」フイールドと、ある
順序で次の(即ち、各連続する)垂直マイクロ命
令のアドレスを表わす順序付けフイールドとを有
する「巾の狭い」マイクロ命令ワード部分を提供
する。同出願において記載されるように、垂直マ
イクロ命令(マイクロコード)は、1つ以上の外
部のマイクロ制御装置のインターフエース装置を
介してCPUの常駐する垂直制御ROMから、また
は1つ以上を外部のマイクロ制御装置の何れかか
ら取出すことができる。この外部マイクロコード
は、一時に、時間多重化マイクロコード・バスを
用いる適当な時間多重化手法の使用により複数個
の外部マイクロ制御装置の1つから得ることがで
きる。 このようなシステムが適当なソフトウエアを使
用する外部のマイクロコード情報を提供するもの
であるが、例えば、このような外部マイクロコー
ド情報を提供する最も有効な方法についてはここ
に記載された発明を参照して記載される。従つ
て、CPU常駐マイクロコード情報と外部マイク
ロコード情報の両者の有効な使用を達成するため
には、本発明はある外部のマイクロコード装置か
らの外部マイクロコード情報の転送を最も有効な
制御を許容する適当なインターフエース論理回路
を提供するものである。本発明はこのような多重
レベルのマイクロコードシステムに適用可能であ
るが、その用途はこれにとどまらず、その原理は
また単一レベルシステムに対しても適合可能であ
る。 本発明によれば独特なマイクロ制御インターフ
エース装置が使用され、この場合例えば、本シス
テムに対してソフトウエアにより与えられた各マ
クロ命令はCPU常駐マイクロコード制御装置と
マイクロコード・インターフエース装置の両者に
より同時に復号されるのである。マクロ命令にお
ける命令コード(OPコード)の小セツトは、ど
のタイプのマイクロコード制御装置(即ち、外部
マイクロコード装置、または内部の、即ちCPU
常駐装置)が所要のマイクロ命令または一連のマ
イクロ命令の生成のため復号操作を行うために要
求されるかを識別する。もしOPコードが外部と
内部の両方のマイクロコード制御装置が復号操作
の実施が可能である情況を識別するならば、選択
された外部装置により適当な論理回路が提供さ
れ、その結果外部のマイクロコード制御装置は
CPU常駐制御装置をオーバーライド可能であり、
所要の復号操作を提供することができる。 外部のマイクロ制御インターフエース装置は、
CPU常駐制御論理装置により実施される論理操
作に対する必要なしに外部のインターフエース装
置自体の内部でその一連の連続するマイクロ命令
の連続アドレスを判定する論理能力を有する。 外部マイクロ制御インターフエース装置はま
た、外部装置からCPUへのマイクロ命令の転送
をモニターし、かつCPUによるその実行をモニ
ターするための独自の論理装置を有し、このため
如何なる時点においても、外部のマイクロ制御装
置は、転送されたマイクロ命令数とCPUにより
実行されたマイクロ命令数との間の差異を追跡
し、従つて、未だ実行されなかつた転送済みのマ
イクロ命令数を追跡するものである。 本発明の外部マイクロ・コントローラ・インタ
ーフエース装置を使用するシステム全体が第1図
において示されるが、これにおいて中央処理装置
即ちCPU10として示されるマイクロ・プロセ
ツサ装置は適当なシステム・バス11を介して記
憶装置12と、1つ以上のシステム入出力(I/
O)装置17と、それぞれ別のI/Oバス装置1
5,15Aを介してI/O装置をインターフエー
ス装置14,14Aと、1つ以上の外部マイク
ロ・コントローラ(XMC)インターフエース装
置13と接続されている。このシステムのある特
定の実施態様においては、例えば、システム・バ
ス11は16ビツトの並列システム・バスの形態の
ものでよく、外部マイクロ・コントローラ装置か
らの16ビツトのマイクロコード入力は中間の8ビ
ツト・バス13Aおよび8ビツト・マイクロコー
ド・バス16を介して時間的多重化状態でCPU
に対して送出することができる。更に別の16ビツ
トの中間システム・バス11Aは図示の如く主シ
ステム・バス11から外部マイクロ・コントロー
ラ装置13に対して設けられている。 第1図のシステムについては、前掲の
Bernstein等の米国特許出願において記載されて
おり、CPUの特定の作用およびメモリーおよび
種々のI/O装置とバスとのその作動上の関係に
ついてはこの特許出願において詳細に記載されて
いる。このような詳細な作用のこれ以上の説明は
本発明の説明には不必要であり、従つて、全シス
テムの作用および前述の如き用途についての理解
のため以前に出願した米国特許出願を参照された
く、この米国特許出願は参照の目的のため本文に
引用される。便宜のため、本発明については、前
述の如くこれに限定されるものではないが、多重
レベル・マイクロコードシステムにおいて使用さ
れる如くに説明される。 多重レベル(例えば、2レベル)のマイクロコ
ード・アーキテクチヤ(前掲の用途における如
き)を用い、かつ第1図のシステムにおける如く
外部マイクロコード情報の提供を行なうシステム
においては、この情報は同図の装置13により示
された如き1個以上の適当なインターフエース装
置を介して与えられなければならない。外部マイ
クロコード操作が実施可能な従来技術のシステム
においては、CPUは通常は、内部のマイクロコ
ード・アーキテクチヤによるか、あるいは外部マ
イクロコード・アーキテクチヤによる復号操作を
必要とするものとして復号されるマクロ命令を識
別するためソフトウエアに応答する適当な論理装
置を必要とする。一旦CPUが外部マイクロコー
ド復号手順を必要とするものとしてマクロ命令を
識別すると、マイクロコード・バスを介して最初
のマイクロ命令を与えるようにこの時マクロ命令
を復号する所定の外部マイクロコントローラ装置
に対してマクロ命令を与える。 このような従来の多くのシステムにおいては、
一旦最初のマイクロ命令が外部のマイクロコード
装置からCPUに与えられると、このCPUはそれ
自体の内部の順序付け論理装置とマイクロコード
制御ストアを用いて復号されたマクロ命令により
要求される特定のシーケンスのその後のマイクロ
命令を与える。従つて、マクロ命令復号プロセス
ならびにシーケンスにおいて要求されるその後の
各マイクロ命令のアドレスを判定するプロセスの
制御は有効にCPUに存在するのである。 対照的に、本発明の外部マイクロ制御インター
フエース装置はそれ自体完全に外部マイクロ・コ
ントローラ装置に存在するマクロ命令の復号およ
びマイクロ命令の順序付けの制御を可能にして、
前述のタイプの2レベルのマイクロコード・シス
テムの如きCPUにおいて従来用いられてきた命
令のレジスタの「パイプ・ライン化」プロセスの
更に有効な使用をもたらす。 第2図は、第1図に示されたXMC装置13の
各々において使用される形態を有する一例の外部
マイクロコントローラのインターフエース
(XMC)装置13を示している。このような装置
例においては、マクロ命令はCPUの制御下で中
間システム・バス11Aを介して与えられ、この
マクロ命令は図示の如き適当な16ビツト・ワード
により規定される。 このマクロ命令は、パイプ・ライン化方式にお
いて、この命令を復号/マトリツクス装置21に
対して与えるXMC命令レジスタ20に対して与
えられるが、前記復号/マトリツクス装置は前記
マクロ命令の適当な復号を行なう適当な命令プロ
グラム・ロジツク・アレー(IPLA)を用いて最
初のマイクロ命令を生じる。例えば、このような
復号は、前掲の米国特許出願において開示された
CPU常駐復号制御PLA装置に関連して論述した
ものと同じ性格のものである。初期のマイクロ命
令は、水平アドレス・ビツト・フイールド
(ADRH)および2個の垂直修飾フイールドV
1,V2を含み、6ビツトの水平アドレスおよび
4ビツトの垂直修飾子の各々はXMCバス16と
中間バス13Aを経て適当なマルチプレクサとバ
ツフア装置22を介してCPUに対して与えられ
る。このマルチプレクサ装置はその出力側に示さ
れた如き2つの8ビツトのバイトの一部の如きフ
イールドを提供する。前記IPLA復号装置21は
また、次のアドレスROM装置23を介してマル
チプレクサ・バツフア装置22に対して2ビツト
の「初期の次アドレス・モード」(INAM)信号
を与え、このため合計16ビツト(ADRH,V1,
V2およびINAM)がマルチプレクサおよびバ
ツフア装置22を介して初期のマイクロ命令に対
するバス13Aに与えられる。 前記IPLA復号/マトリツクス装置21はま
た、10ビツトの次のアドレス・モード(NEXT)
フイールドと、10ビツトの初期アドレス制御
(IADRC)フイールドとをXMCシーケンス論理
装置24に対して与えるが、その構成および作用
については第3図に関して詳細に説明する。 次に、シーケンス装置24は、以下に論述する
如く、制御プログラム論理アレー復号(CPLA)
マトリツクス装置25を介して一連の水平アドレ
ス・フイールドおよび垂直修飾フイールドの提供
を制御するが、この一連の水平アドレスおよび垂
直修飾子の各々は、前記IPLA復号/マトリツク
ス装置21から直接初期アドレスおよび修飾子の
前記CPUに対する以前の付与に続いて、順次マ
ルチプレクサ/バツフア装置22を介してCPU
に対して適当に当えられる。1つのシーケンスの
間、次のアドレスがシーケンス論理装置24に対
してタスク指名レジスタ26を介してマイクロ・
コントローラ装置13に対する外部のソースから
与えられることが可能であり、このようなアドレ
スはシステム・バス11を介して外部のマイクロ
コントローラ装置13に対して送出され、適当な
タスク制御論理装置27の制御下でXMCバス1
1Aを連結する。適当なタインミング論理装置2
8は、外部マイクロ制御装置13の各構成要素に
対して適当なタインミング制御信号を与えるため
に使用される。 第3図は、更に詳細に、外部のマイクロコント
ローラ(XMC)のシーケンス論理装置24の諸
要素を示している。同図において判るように、適
当なマルチプレクサ30がプログラム・カウンタ
31に対してアドレス入力を与え、この入力は
IPLA復号装置21(IADRCフイールド)、
CPLAマトリツクス装置25(ADRCフイール
ド)またはタスク指名レジスタ26(DREGフイ
ールド)の何れかから選択される。あるいはま
た、このアドレスは後入れ/先出し(LIFO)記
憶スタツク32からフイードバツク入力としてプ
ログラム・カウンタ31に対して与えることがで
きる。マルチプレクサ装置に対する適当な制御信
号ADECはIPLA制御論理装置29から与えられ
る(第2図参照)。 マクロ命令の復号の要求が第1図のCPUによ
り発せられる時、各命令はその内部においてこの
ようなマクロ命令が内部の即ちプロセツサ10の
CPU常駐復号装置、または外部のマイクロコン
トローラ装置13により復号されるかどうかを判
定する情報を含んでいる。このため、各マクロ命
令は、これがプロセツサの内部復号装置または特
定のマイクロコントローラのインターフエース装
置の復号装置の何れかによつてのみ復号可能であ
る独自のビツト・パターンを有するように構成さ
れる。第2図および第3図に示される如き特定の
外部マイクロコントローラ装置がそれ自体による
復号を要求するものとして命令レジスタ・パイ
プ・ラインからのビツト・パターンを認識する場
合には、IPLA復号/マトリツクス装置21が
IPLA制御論理装置29に与えられる単一のビツ
トMYINS(「自分の命令」)を存在させることに
よりこのような認識を表示して、プロセツサに対
して与えられるACK(「確認」)信号の存在を惹起
する。このACK信号は、復号(適当なREQ(「要
求」)信号の前の存在)のため要求されたマクロ
命令がこの特定のマイクロコントローラ装置によ
り復号されることを示す。 ある特定のマイクロ・コントローラ・インター
フエース装置13とプロセツサのCPU常駐復号
装置の双方がマクロ命令ビツト・パターンの復号
が可能であるものとして認識するならば、仮に
CPU常駐プロセツサ復号装置がこのようなマク
ロ命令を復号し得ても、マイクロコントローラの
インターフエース装置からの確認(ACK)信号
が常に外部マイクロコードの復号を要求するもの
として中央処理装置により解釈される。従つて、
外部装置による復号が有勢となる。このような操
作は「外部のマイクロコード・オーバーライド」
と呼ばれる。もしACK信号が外部のマイクロコ
ントローラ装置から存在させられなければ、マク
ロ命令の復号操作の実施のための前述の
Bernstein等の特許の応用において論述される如
く、プロセツサはそれ自体の内部マクロコード復
号装置を使用する。 更に、信号MYINSの存在は、適当な「3状態
可能」(TSE)信号の存在と共に、マルチプレク
サ/バツフア・レジスタ22の作用を制御するた
めIPLA制御論理装置29からの「3状態」(TS)
信号を生成することになる。各外部マイクロコン
トローラ装置13においては、問題の特定のマイ
クロコントローラ装置13が復号操作のため選択
されたことを示すためIPLA復号/マトリツクス
装置21によりMYINS信号が存在させられなけ
れば、信号TSは存在しない。従つて、XMCバス
16は一時に唯1つの外部マイクロコントローラ
装置によつてしか駆動できず、その結果もし多重
外部ユニツトが同時に駆動しようとするならば生
じる恐れのあるバス過熱問題が避けられる。 一旦信号MYINSが存在したならば、IPLA制
御論理装置29は適当な復号制御信号(ADEC)
を生じ、これは作用において、入力するマクロ命
令の適当な復号が進行することを許容するため、
外部マイクロコントローラ装置の作用に対する基
本的な初期信号を表わしている。 このマクロ命令は、16ビツトのマクロ命令ワー
ドと、そのための16判定ビツトからなる32ビツト
を命令レジスタ・パイプ・ライン・システム20
を介して受取るIPLA復号/マトリツクス装置2
1によつて最初復号されるが、パイプ・ライン方
式で入力する情報を処理するためのこのようなシ
ステムは当技術においては公知である。この時復
号されたマクロ命令ワードは、複数個の記憶され
たマイクロ命令ワードを含むIPLA記憶マトリツ
クスからの復号されたアドレスにおける適正な初
期マイクロ命令ワードを選定する。このIPLAマ
トリツクスからの初期のマイクロ命令ワードは下
記の如きフイールドからなる。即ち、 初期マイクロ命令ワード・フイールド 明らかなように、マイクロ命令ワードは38ビツ
ト巾を有し、8つのフイールドを含む。フイール
ドADRH,V1およびV2は、CPU常駐復号装
置により復号される初期マイクロ命令の水平アド
レスおよび垂直修飾フイールドに関して、前述の
Bernstein等の米国特許出願において記載された
ものと作用的に同じものである。このようなフイ
ールドは、前掲の特許出願において論述した方法
においてそれぞれ水平復号装置および垂直修飾装
置に対して適当に与えられる。ビツトMYINSに
ついては既に論議した。 フイールドDECは、マイクロ命令のシーケン
スにおける次のアドレスに関してどの操作モード
が使用されるかを示すに過ぎない。マトリツクス
IPLAから得た初期マイクロ命令の場合には、ビ
ツトDECは、次の操作モードがそのシーケンス
の次のマイクロ命令の復号を要求するか、または
新たなマクロ命令に対する呼出しを要求するか
(例えば、もしその時のシーケンスに単一のマイ
クロ命令しかないならば)を示す。CHAM
ROM38(第3図参照)からのDECビツトおよ
び4つのCNAMビツトが次のアドレス論理装置
23を介してNAMビツトを生成し、これらが
CPUに送出されて、各フイールドADRH,V1
およびV2がCPUに対して以下に論議する4つ
の操作を表示する。IADRCフイールドは、
CPLAマトリツクス装置25に記憶されたマイク
ロ命令の内の1つ(例えば、一実施例において
は、1024個のマイクロ命令の内の1つ)のアドレ
スを提供する。選択されたマイクロ命令は、以下
に述べるように、次のアドレス・モード
(NAM)フイールドまたは次のアドレス・モー
ド拡張(CNAMX)フイールドの解釈に従つて、
その時のマイクロ命令の実行に続いて次に実行さ
れるか、或いはそうではないかの何れかである。 フイールドCNAMXは、複数個の適当なフラ
ツグ(フラツグA、フラツグBまたはフラツグ
C)を下表に従つてそれらの初期状態に設定す
る。即ち、 NOP FLAGA=FLAGB=FLAGC=0 SET AFLAGA=1、FLAGB=FLAGC=0 SET BFLAGB=1、FLAGA=FLAGC=0 SET CFLAGC=1、FLAGA=FLAGB=0 次のアドレス・モード(NAM)フイールド
は、外部マイクロコントローラの順序付け操作が
シーケンスの次のマイクロ命令の取出しおよび実
行を続行するか、または前記NAMフイールドが
真の反復条件(TREPT)または偽の反復条件
(FREPT)のいずれを示すかに従つて、その時
実行中のマイクロ命令における同じ垂直修飾子を
再実行し続けるかを表示する。このNAMフイー
ルドは更に、復号操作が、前掲のBernstrein等の
特許出願において論議された如く、プロセツサの
垂直シーケンス装置に関して論述されたように行
なわれるかどうかについて判定する。前記NAM
フイールド条件は下記の如く要約される。即ち、 NEXT マイクロコードNo. 取出しおよび実行
の継続 TREPT もしSKIP=1ならば、垂直シーケン
スの再実行。さもなくば、NEXT FREPT もしSKIP=0ならば、垂直シーケン
スの再実行。さもなくば、NEXT DECODE CPU常駐垂直シーケンサにおけると
同様 NEXTフイールドは、CPLAにおけるマイク
ロ命令の1つのアドレスを指示する。このポイン
タは、CNAMマイクロ指令CALLが必要とする
その時のプログラム・カウンタの内容{即ち、第
3図における(CPC+1)}に続く制御プログラ
ム・カウンタの値を提供する。IPLA復号/マト
リツクス装置21が制御プログラム・カウンタに
よりアドレス指定されないため(その代り、この
制御プログラム・カウンタを初期化するのは
IPLAである)前記値(CPC+1)は、さもなけ
れば、NEXTフイールドがなければ得ることが
できない。このように、作用においてはNEXT
フイールドがスタツク(第3図)への戻りをプツ
シユし、その結果システムはサブ・ルーチンが実
行された後どこに戻るかを知るのである。 一旦初期マイクロ命令が復号され、NAMフイ
ールドが次のマイクロ命令が取出されて実行され
たことを表示するならば、次のマイクロ命令、お
よびそのシーケンスの後続のものが1つずつ、選
定された内部のアドレスにおけるマイクロ命令を
選定するCPLAマトリツクス装置25によつて与
えられる。選定されたマイクロ命令は、出力マト
リツクス/バツフア装置22に対して、次いで外
部のマイクロコード・バス16に対してADRH,
V1およびV2フイールドを与える。CPLAマト
リツクス装置25から得られるマイクロ命令に対
する全フイールド表示は下記の如くである。即
ち、 CPLAマイクロ命令ワード・フイールド 31ビツトのCPLAマイクロ命令のADRH,V
1およびV2フイールドは、IPLAマイクロ命令
ワードに関して前に論述した如くであり、水平ア
ドレスおよび垂直修飾フイールドをマイクロコー
ドバス16を介してプロセツサに対して与える。
ADRCフイールドは、CPLAマトリツクス装置2
5におけるマイクロ命令の1つのアドレスを提供
する。このようなマイクロ命令は、CNAMおよ
びCNAMXフイールドの解釈に従つて次に実行
されあるいは実行されず、ADRCフイールドは
新たな制御プロセツサ・カウンタ(PC)の値の
判定において使用されるべき無条件および条件付
き分岐アドレスの双方を指定する。 CNAMフイールドは、下記の14のコーデイン
グの1つを指定する4ビツトのフイールドであ
る。即ち、 JUMP CPC=ADRC RLNEXT DREG=ADRC、CPC=CPC+1 TREPT JUMP FREP JUMP DECODE XMCマイクロコードのCPUへの送出
を停止せよ。 CALL (CPC+1)をサブルーチン・スタツク
にプツシユし、次にJUMPせよ。 RTRN サブルーチン・スタツクをCPCに対し
てポツプせよ。 TJUMP もしCOND=1ならば、次にJUMPせ
よ。さもなくば、CPC=CPC+1 FJUMP もしCOND=0ならば、次にJUMPせ
よ。さもなくば、CPC=CPC+1 TCALL もしCOND=1ならば、次にCALLせ
よ。さもなくば、CPC=CPC+1 FCALL もしCOND=0ならば、次にCALLせ
よ。さもなくば、CPC=CPC+1 TRTRN もしCOND=1ならば、次にRTRN
せよ。さもなくば、JUMPせよ。 FRTRN もしCOND=0ならば、次にRTRN
せよ。さもなくばJUMPせよ。 RJUMP CPC=CREG 第1の7つのコーデイングは無条件であるが、
残りは条件付きであり、この条件は以下に論述す
るCNAMXフイールドにより指定される。図示
の特定の実施態様においては、サブルーチン・ス
タツク(第3図に示す)が4つの深さ(STACK
0〜3)であり、そのため4つの入れ子になつた
サブルーチン呼出ししか可能でない。DREGは、
第2図に示されたタスク指名レジスタ26を指
す。 CNAMXフイールドは、下記の如き無条件お
よび条件付きの両モードに対して8つのコーデイ
ングを有する。即ち、 無条件 NOP ノーオペレーシヨン CLRX FLAG A=0、FLAG B=0、
FLAG C=0 SET A FLAG A=1 SET B FLAG B=1 SET C FLAG C=1 CLRA FLAG A=0 CLRB FLAG B=0 CLRC FLAG C=0 条件付き WAIT 0 COND=SKIP WAIT 1 COND=SKIP WAIT 2 COND=SKIP WAIT 3 COND=SKIP FLAG A COND=FLAG A FLAG B COND=FLAG B FLAG C COND=FLAG C 条件付きモードにおいては、待機(WAIT0
〜WAIT3)がXMCによるSMCマイクロ命令取
出し、CPUによるXMCマイクロ命令取出し、
CPUによるターゲツト水平の実行、XMC装置に
よるSKIPの受取り、またはタスク指令レジスタ
26の外部ローデイング間の遅延のため必要とな
る。フラツグが指定される時待機は必要でない
が、これはフラツグがXMC装置により構成され
て即時使用可能となるためである。 HTBEC(実行されるべき水平方向の)カウン
タ37は、CPUに対して送られても未だ実行さ
れなかつたマイクロ命令数を示す。HTBECカウ
ンタは、ACK信号により増進され、HOREX信
号により減退され、ADEC信号によりクリアされ
る。その内容は、フラツグ/条件ロジツク36に
おけるCNAMX ROM35からのWAIT信号と
比較されて信号SKIPが問題のマイクロ命令につ
いて戻されることを確認する(第4図のタイミン
グ図に間して更に詳細に以下に説明するように)。
フラツグ/条件ロジツク36は、前述の比較が適
当なSKIP信号が受取られたことを示すまでプロ
グラム・カウンタ31を保持するため信号
HOLDを存在させる。特定の問題となるマイク
ロ命令に対する信号HOREXがあるサイクルの位
相において受取られる時、このマイクロ命令に
対する信号SKIPが次のサイクルの位相におい
て戻される。 第1図乃至第3図に示されたシステムの作動に
ついて理解するため、第4図および以下に示すチ
ヤートに示される例示的な信号タインミング図
に関して示される如くこれにより実施される諸操
作の典型的なシーケンスを説明することが役立と
う。第4図は例示的な操作の間存在する種々のキ
ー信号を示し(第2図および第3図に示される)、
チヤートは例示的な諸操作において実施される
ステツプのシーケンスを示している。
処理装置に関し、特にマイクロコード・アーキテ
クチヤを用いかつ独自のインターフエース手法を
用いて外部から与えられたマイクロコード命令に
応答可能な装置に関する。 データ処理装置は、一般的に、コンパクトな単
一基板型コンピユータから更に複雑な高性能のミ
ニ・コンピユータに至るシステム形態を提供する
ため開発されてきた。このようなシステムは、1
つのマイクロ命令、乃至はその適当なデータ・ス
トアから得た1つ以上の一連のマイクロ命令に対
するアクセスを行うようにマクロ命令が適当に復
号されるマイクロコード・アーキテクチヤを使用
する。 マイクロ命令にとつて必要なデータ記憶スペー
スを減らすため、また多数の「巾の広い」命令ワ
ードの処理を避けるため、マイクロコード・シス
テムにおいては、従来技術において公知の如く1
つのレベルのマイクロ・ストアと対照的な多重レ
ベル、多くの場合「2レベル」のマイクロコー
ド・ストア手法を使用してきた。従来技術の2レ
ベルのマイクロコード手法の能力を増加させるた
め使用される1つのこのような2レベルのマイク
ロ・システムにおいては、参考のため本文に引用
される米国のマサチユーセツツ州ウエストボーロ
市のData General社に譲渡された、1980年2月
11日Bernstein等により出願された米国特許出願
第120272号(特開昭56−153449号)「データ処理
システム」において記載されている。 この米国特許出願に記載されたシステムによれ
ば、マイクロ制御ストアは、「直交型」ストアと
して構成され、このストアにおいては第1の、即
ち「垂直型」のマイクロ制御ストアが、複数個の
第2の、即ち「水平」マイクロ命令を第2のレベ
ルの、即ち水平型マイクロ制御ストアから選定す
るための選択数の垂直マイクロ命令ビツトを含む
1つのフイールドと、前記の米国特許出願に記載
の如く、1つ以上の「修飾」フイールドと、ある
順序で次の(即ち、各連続する)垂直マイクロ命
令のアドレスを表わす順序付けフイールドとを有
する「巾の狭い」マイクロ命令ワード部分を提供
する。同出願において記載されるように、垂直マ
イクロ命令(マイクロコード)は、1つ以上の外
部のマイクロ制御装置のインターフエース装置を
介してCPUの常駐する垂直制御ROMから、また
は1つ以上を外部のマイクロ制御装置の何れかか
ら取出すことができる。この外部マイクロコード
は、一時に、時間多重化マイクロコード・バスを
用いる適当な時間多重化手法の使用により複数個
の外部マイクロ制御装置の1つから得ることがで
きる。 このようなシステムが適当なソフトウエアを使
用する外部のマイクロコード情報を提供するもの
であるが、例えば、このような外部マイクロコー
ド情報を提供する最も有効な方法についてはここ
に記載された発明を参照して記載される。従つ
て、CPU常駐マイクロコード情報と外部マイク
ロコード情報の両者の有効な使用を達成するため
には、本発明はある外部のマイクロコード装置か
らの外部マイクロコード情報の転送を最も有効な
制御を許容する適当なインターフエース論理回路
を提供するものである。本発明はこのような多重
レベルのマイクロコードシステムに適用可能であ
るが、その用途はこれにとどまらず、その原理は
また単一レベルシステムに対しても適合可能であ
る。 本発明によれば独特なマイクロ制御インターフ
エース装置が使用され、この場合例えば、本シス
テムに対してソフトウエアにより与えられた各マ
クロ命令はCPU常駐マイクロコード制御装置と
マイクロコード・インターフエース装置の両者に
より同時に復号されるのである。マクロ命令にお
ける命令コード(OPコード)の小セツトは、ど
のタイプのマイクロコード制御装置(即ち、外部
マイクロコード装置、または内部の、即ちCPU
常駐装置)が所要のマイクロ命令または一連のマ
イクロ命令の生成のため復号操作を行うために要
求されるかを識別する。もしOPコードが外部と
内部の両方のマイクロコード制御装置が復号操作
の実施が可能である情況を識別するならば、選択
された外部装置により適当な論理回路が提供さ
れ、その結果外部のマイクロコード制御装置は
CPU常駐制御装置をオーバーライド可能であり、
所要の復号操作を提供することができる。 外部のマイクロ制御インターフエース装置は、
CPU常駐制御論理装置により実施される論理操
作に対する必要なしに外部のインターフエース装
置自体の内部でその一連の連続するマイクロ命令
の連続アドレスを判定する論理能力を有する。 外部マイクロ制御インターフエース装置はま
た、外部装置からCPUへのマイクロ命令の転送
をモニターし、かつCPUによるその実行をモニ
ターするための独自の論理装置を有し、このため
如何なる時点においても、外部のマイクロ制御装
置は、転送されたマイクロ命令数とCPUにより
実行されたマイクロ命令数との間の差異を追跡
し、従つて、未だ実行されなかつた転送済みのマ
イクロ命令数を追跡するものである。 本発明の外部マイクロ・コントローラ・インタ
ーフエース装置を使用するシステム全体が第1図
において示されるが、これにおいて中央処理装置
即ちCPU10として示されるマイクロ・プロセ
ツサ装置は適当なシステム・バス11を介して記
憶装置12と、1つ以上のシステム入出力(I/
O)装置17と、それぞれ別のI/Oバス装置1
5,15Aを介してI/O装置をインターフエー
ス装置14,14Aと、1つ以上の外部マイク
ロ・コントローラ(XMC)インターフエース装
置13と接続されている。このシステムのある特
定の実施態様においては、例えば、システム・バ
ス11は16ビツトの並列システム・バスの形態の
ものでよく、外部マイクロ・コントローラ装置か
らの16ビツトのマイクロコード入力は中間の8ビ
ツト・バス13Aおよび8ビツト・マイクロコー
ド・バス16を介して時間的多重化状態でCPU
に対して送出することができる。更に別の16ビツ
トの中間システム・バス11Aは図示の如く主シ
ステム・バス11から外部マイクロ・コントロー
ラ装置13に対して設けられている。 第1図のシステムについては、前掲の
Bernstein等の米国特許出願において記載されて
おり、CPUの特定の作用およびメモリーおよび
種々のI/O装置とバスとのその作動上の関係に
ついてはこの特許出願において詳細に記載されて
いる。このような詳細な作用のこれ以上の説明は
本発明の説明には不必要であり、従つて、全シス
テムの作用および前述の如き用途についての理解
のため以前に出願した米国特許出願を参照された
く、この米国特許出願は参照の目的のため本文に
引用される。便宜のため、本発明については、前
述の如くこれに限定されるものではないが、多重
レベル・マイクロコードシステムにおいて使用さ
れる如くに説明される。 多重レベル(例えば、2レベル)のマイクロコ
ード・アーキテクチヤ(前掲の用途における如
き)を用い、かつ第1図のシステムにおける如く
外部マイクロコード情報の提供を行なうシステム
においては、この情報は同図の装置13により示
された如き1個以上の適当なインターフエース装
置を介して与えられなければならない。外部マイ
クロコード操作が実施可能な従来技術のシステム
においては、CPUは通常は、内部のマイクロコ
ード・アーキテクチヤによるか、あるいは外部マ
イクロコード・アーキテクチヤによる復号操作を
必要とするものとして復号されるマクロ命令を識
別するためソフトウエアに応答する適当な論理装
置を必要とする。一旦CPUが外部マイクロコー
ド復号手順を必要とするものとしてマクロ命令を
識別すると、マイクロコード・バスを介して最初
のマイクロ命令を与えるようにこの時マクロ命令
を復号する所定の外部マイクロコントローラ装置
に対してマクロ命令を与える。 このような従来の多くのシステムにおいては、
一旦最初のマイクロ命令が外部のマイクロコード
装置からCPUに与えられると、このCPUはそれ
自体の内部の順序付け論理装置とマイクロコード
制御ストアを用いて復号されたマクロ命令により
要求される特定のシーケンスのその後のマイクロ
命令を与える。従つて、マクロ命令復号プロセス
ならびにシーケンスにおいて要求されるその後の
各マイクロ命令のアドレスを判定するプロセスの
制御は有効にCPUに存在するのである。 対照的に、本発明の外部マイクロ制御インター
フエース装置はそれ自体完全に外部マイクロ・コ
ントローラ装置に存在するマクロ命令の復号およ
びマイクロ命令の順序付けの制御を可能にして、
前述のタイプの2レベルのマイクロコード・シス
テムの如きCPUにおいて従来用いられてきた命
令のレジスタの「パイプ・ライン化」プロセスの
更に有効な使用をもたらす。 第2図は、第1図に示されたXMC装置13の
各々において使用される形態を有する一例の外部
マイクロコントローラのインターフエース
(XMC)装置13を示している。このような装置
例においては、マクロ命令はCPUの制御下で中
間システム・バス11Aを介して与えられ、この
マクロ命令は図示の如き適当な16ビツト・ワード
により規定される。 このマクロ命令は、パイプ・ライン化方式にお
いて、この命令を復号/マトリツクス装置21に
対して与えるXMC命令レジスタ20に対して与
えられるが、前記復号/マトリツクス装置は前記
マクロ命令の適当な復号を行なう適当な命令プロ
グラム・ロジツク・アレー(IPLA)を用いて最
初のマイクロ命令を生じる。例えば、このような
復号は、前掲の米国特許出願において開示された
CPU常駐復号制御PLA装置に関連して論述した
ものと同じ性格のものである。初期のマイクロ命
令は、水平アドレス・ビツト・フイールド
(ADRH)および2個の垂直修飾フイールドV
1,V2を含み、6ビツトの水平アドレスおよび
4ビツトの垂直修飾子の各々はXMCバス16と
中間バス13Aを経て適当なマルチプレクサとバ
ツフア装置22を介してCPUに対して与えられ
る。このマルチプレクサ装置はその出力側に示さ
れた如き2つの8ビツトのバイトの一部の如きフ
イールドを提供する。前記IPLA復号装置21は
また、次のアドレスROM装置23を介してマル
チプレクサ・バツフア装置22に対して2ビツト
の「初期の次アドレス・モード」(INAM)信号
を与え、このため合計16ビツト(ADRH,V1,
V2およびINAM)がマルチプレクサおよびバ
ツフア装置22を介して初期のマイクロ命令に対
するバス13Aに与えられる。 前記IPLA復号/マトリツクス装置21はま
た、10ビツトの次のアドレス・モード(NEXT)
フイールドと、10ビツトの初期アドレス制御
(IADRC)フイールドとをXMCシーケンス論理
装置24に対して与えるが、その構成および作用
については第3図に関して詳細に説明する。 次に、シーケンス装置24は、以下に論述する
如く、制御プログラム論理アレー復号(CPLA)
マトリツクス装置25を介して一連の水平アドレ
ス・フイールドおよび垂直修飾フイールドの提供
を制御するが、この一連の水平アドレスおよび垂
直修飾子の各々は、前記IPLA復号/マトリツク
ス装置21から直接初期アドレスおよび修飾子の
前記CPUに対する以前の付与に続いて、順次マ
ルチプレクサ/バツフア装置22を介してCPU
に対して適当に当えられる。1つのシーケンスの
間、次のアドレスがシーケンス論理装置24に対
してタスク指名レジスタ26を介してマイクロ・
コントローラ装置13に対する外部のソースから
与えられることが可能であり、このようなアドレ
スはシステム・バス11を介して外部のマイクロ
コントローラ装置13に対して送出され、適当な
タスク制御論理装置27の制御下でXMCバス1
1Aを連結する。適当なタインミング論理装置2
8は、外部マイクロ制御装置13の各構成要素に
対して適当なタインミング制御信号を与えるため
に使用される。 第3図は、更に詳細に、外部のマイクロコント
ローラ(XMC)のシーケンス論理装置24の諸
要素を示している。同図において判るように、適
当なマルチプレクサ30がプログラム・カウンタ
31に対してアドレス入力を与え、この入力は
IPLA復号装置21(IADRCフイールド)、
CPLAマトリツクス装置25(ADRCフイール
ド)またはタスク指名レジスタ26(DREGフイ
ールド)の何れかから選択される。あるいはま
た、このアドレスは後入れ/先出し(LIFO)記
憶スタツク32からフイードバツク入力としてプ
ログラム・カウンタ31に対して与えることがで
きる。マルチプレクサ装置に対する適当な制御信
号ADECはIPLA制御論理装置29から与えられ
る(第2図参照)。 マクロ命令の復号の要求が第1図のCPUによ
り発せられる時、各命令はその内部においてこの
ようなマクロ命令が内部の即ちプロセツサ10の
CPU常駐復号装置、または外部のマイクロコン
トローラ装置13により復号されるかどうかを判
定する情報を含んでいる。このため、各マクロ命
令は、これがプロセツサの内部復号装置または特
定のマイクロコントローラのインターフエース装
置の復号装置の何れかによつてのみ復号可能であ
る独自のビツト・パターンを有するように構成さ
れる。第2図および第3図に示される如き特定の
外部マイクロコントローラ装置がそれ自体による
復号を要求するものとして命令レジスタ・パイ
プ・ラインからのビツト・パターンを認識する場
合には、IPLA復号/マトリツクス装置21が
IPLA制御論理装置29に与えられる単一のビツ
トMYINS(「自分の命令」)を存在させることに
よりこのような認識を表示して、プロセツサに対
して与えられるACK(「確認」)信号の存在を惹起
する。このACK信号は、復号(適当なREQ(「要
求」)信号の前の存在)のため要求されたマクロ
命令がこの特定のマイクロコントローラ装置によ
り復号されることを示す。 ある特定のマイクロ・コントローラ・インター
フエース装置13とプロセツサのCPU常駐復号
装置の双方がマクロ命令ビツト・パターンの復号
が可能であるものとして認識するならば、仮に
CPU常駐プロセツサ復号装置がこのようなマク
ロ命令を復号し得ても、マイクロコントローラの
インターフエース装置からの確認(ACK)信号
が常に外部マイクロコードの復号を要求するもの
として中央処理装置により解釈される。従つて、
外部装置による復号が有勢となる。このような操
作は「外部のマイクロコード・オーバーライド」
と呼ばれる。もしACK信号が外部のマイクロコ
ントローラ装置から存在させられなければ、マク
ロ命令の復号操作の実施のための前述の
Bernstein等の特許の応用において論述される如
く、プロセツサはそれ自体の内部マクロコード復
号装置を使用する。 更に、信号MYINSの存在は、適当な「3状態
可能」(TSE)信号の存在と共に、マルチプレク
サ/バツフア・レジスタ22の作用を制御するた
めIPLA制御論理装置29からの「3状態」(TS)
信号を生成することになる。各外部マイクロコン
トローラ装置13においては、問題の特定のマイ
クロコントローラ装置13が復号操作のため選択
されたことを示すためIPLA復号/マトリツクス
装置21によりMYINS信号が存在させられなけ
れば、信号TSは存在しない。従つて、XMCバス
16は一時に唯1つの外部マイクロコントローラ
装置によつてしか駆動できず、その結果もし多重
外部ユニツトが同時に駆動しようとするならば生
じる恐れのあるバス過熱問題が避けられる。 一旦信号MYINSが存在したならば、IPLA制
御論理装置29は適当な復号制御信号(ADEC)
を生じ、これは作用において、入力するマクロ命
令の適当な復号が進行することを許容するため、
外部マイクロコントローラ装置の作用に対する基
本的な初期信号を表わしている。 このマクロ命令は、16ビツトのマクロ命令ワー
ドと、そのための16判定ビツトからなる32ビツト
を命令レジスタ・パイプ・ライン・システム20
を介して受取るIPLA復号/マトリツクス装置2
1によつて最初復号されるが、パイプ・ライン方
式で入力する情報を処理するためのこのようなシ
ステムは当技術においては公知である。この時復
号されたマクロ命令ワードは、複数個の記憶され
たマイクロ命令ワードを含むIPLA記憶マトリツ
クスからの復号されたアドレスにおける適正な初
期マイクロ命令ワードを選定する。このIPLAマ
トリツクスからの初期のマイクロ命令ワードは下
記の如きフイールドからなる。即ち、 初期マイクロ命令ワード・フイールド 明らかなように、マイクロ命令ワードは38ビツ
ト巾を有し、8つのフイールドを含む。フイール
ドADRH,V1およびV2は、CPU常駐復号装
置により復号される初期マイクロ命令の水平アド
レスおよび垂直修飾フイールドに関して、前述の
Bernstein等の米国特許出願において記載された
ものと作用的に同じものである。このようなフイ
ールドは、前掲の特許出願において論述した方法
においてそれぞれ水平復号装置および垂直修飾装
置に対して適当に与えられる。ビツトMYINSに
ついては既に論議した。 フイールドDECは、マイクロ命令のシーケン
スにおける次のアドレスに関してどの操作モード
が使用されるかを示すに過ぎない。マトリツクス
IPLAから得た初期マイクロ命令の場合には、ビ
ツトDECは、次の操作モードがそのシーケンス
の次のマイクロ命令の復号を要求するか、または
新たなマクロ命令に対する呼出しを要求するか
(例えば、もしその時のシーケンスに単一のマイ
クロ命令しかないならば)を示す。CHAM
ROM38(第3図参照)からのDECビツトおよ
び4つのCNAMビツトが次のアドレス論理装置
23を介してNAMビツトを生成し、これらが
CPUに送出されて、各フイールドADRH,V1
およびV2がCPUに対して以下に論議する4つ
の操作を表示する。IADRCフイールドは、
CPLAマトリツクス装置25に記憶されたマイク
ロ命令の内の1つ(例えば、一実施例において
は、1024個のマイクロ命令の内の1つ)のアドレ
スを提供する。選択されたマイクロ命令は、以下
に述べるように、次のアドレス・モード
(NAM)フイールドまたは次のアドレス・モー
ド拡張(CNAMX)フイールドの解釈に従つて、
その時のマイクロ命令の実行に続いて次に実行さ
れるか、或いはそうではないかの何れかである。 フイールドCNAMXは、複数個の適当なフラ
ツグ(フラツグA、フラツグBまたはフラツグ
C)を下表に従つてそれらの初期状態に設定す
る。即ち、 NOP FLAGA=FLAGB=FLAGC=0 SET AFLAGA=1、FLAGB=FLAGC=0 SET BFLAGB=1、FLAGA=FLAGC=0 SET CFLAGC=1、FLAGA=FLAGB=0 次のアドレス・モード(NAM)フイールド
は、外部マイクロコントローラの順序付け操作が
シーケンスの次のマイクロ命令の取出しおよび実
行を続行するか、または前記NAMフイールドが
真の反復条件(TREPT)または偽の反復条件
(FREPT)のいずれを示すかに従つて、その時
実行中のマイクロ命令における同じ垂直修飾子を
再実行し続けるかを表示する。このNAMフイー
ルドは更に、復号操作が、前掲のBernstrein等の
特許出願において論議された如く、プロセツサの
垂直シーケンス装置に関して論述されたように行
なわれるかどうかについて判定する。前記NAM
フイールド条件は下記の如く要約される。即ち、 NEXT マイクロコードNo. 取出しおよび実行
の継続 TREPT もしSKIP=1ならば、垂直シーケン
スの再実行。さもなくば、NEXT FREPT もしSKIP=0ならば、垂直シーケン
スの再実行。さもなくば、NEXT DECODE CPU常駐垂直シーケンサにおけると
同様 NEXTフイールドは、CPLAにおけるマイク
ロ命令の1つのアドレスを指示する。このポイン
タは、CNAMマイクロ指令CALLが必要とする
その時のプログラム・カウンタの内容{即ち、第
3図における(CPC+1)}に続く制御プログラ
ム・カウンタの値を提供する。IPLA復号/マト
リツクス装置21が制御プログラム・カウンタに
よりアドレス指定されないため(その代り、この
制御プログラム・カウンタを初期化するのは
IPLAである)前記値(CPC+1)は、さもなけ
れば、NEXTフイールドがなければ得ることが
できない。このように、作用においてはNEXT
フイールドがスタツク(第3図)への戻りをプツ
シユし、その結果システムはサブ・ルーチンが実
行された後どこに戻るかを知るのである。 一旦初期マイクロ命令が復号され、NAMフイ
ールドが次のマイクロ命令が取出されて実行され
たことを表示するならば、次のマイクロ命令、お
よびそのシーケンスの後続のものが1つずつ、選
定された内部のアドレスにおけるマイクロ命令を
選定するCPLAマトリツクス装置25によつて与
えられる。選定されたマイクロ命令は、出力マト
リツクス/バツフア装置22に対して、次いで外
部のマイクロコード・バス16に対してADRH,
V1およびV2フイールドを与える。CPLAマト
リツクス装置25から得られるマイクロ命令に対
する全フイールド表示は下記の如くである。即
ち、 CPLAマイクロ命令ワード・フイールド 31ビツトのCPLAマイクロ命令のADRH,V
1およびV2フイールドは、IPLAマイクロ命令
ワードに関して前に論述した如くであり、水平ア
ドレスおよび垂直修飾フイールドをマイクロコー
ドバス16を介してプロセツサに対して与える。
ADRCフイールドは、CPLAマトリツクス装置2
5におけるマイクロ命令の1つのアドレスを提供
する。このようなマイクロ命令は、CNAMおよ
びCNAMXフイールドの解釈に従つて次に実行
されあるいは実行されず、ADRCフイールドは
新たな制御プロセツサ・カウンタ(PC)の値の
判定において使用されるべき無条件および条件付
き分岐アドレスの双方を指定する。 CNAMフイールドは、下記の14のコーデイン
グの1つを指定する4ビツトのフイールドであ
る。即ち、 JUMP CPC=ADRC RLNEXT DREG=ADRC、CPC=CPC+1 TREPT JUMP FREP JUMP DECODE XMCマイクロコードのCPUへの送出
を停止せよ。 CALL (CPC+1)をサブルーチン・スタツク
にプツシユし、次にJUMPせよ。 RTRN サブルーチン・スタツクをCPCに対し
てポツプせよ。 TJUMP もしCOND=1ならば、次にJUMPせ
よ。さもなくば、CPC=CPC+1 FJUMP もしCOND=0ならば、次にJUMPせ
よ。さもなくば、CPC=CPC+1 TCALL もしCOND=1ならば、次にCALLせ
よ。さもなくば、CPC=CPC+1 FCALL もしCOND=0ならば、次にCALLせ
よ。さもなくば、CPC=CPC+1 TRTRN もしCOND=1ならば、次にRTRN
せよ。さもなくば、JUMPせよ。 FRTRN もしCOND=0ならば、次にRTRN
せよ。さもなくばJUMPせよ。 RJUMP CPC=CREG 第1の7つのコーデイングは無条件であるが、
残りは条件付きであり、この条件は以下に論述す
るCNAMXフイールドにより指定される。図示
の特定の実施態様においては、サブルーチン・ス
タツク(第3図に示す)が4つの深さ(STACK
0〜3)であり、そのため4つの入れ子になつた
サブルーチン呼出ししか可能でない。DREGは、
第2図に示されたタスク指名レジスタ26を指
す。 CNAMXフイールドは、下記の如き無条件お
よび条件付きの両モードに対して8つのコーデイ
ングを有する。即ち、 無条件 NOP ノーオペレーシヨン CLRX FLAG A=0、FLAG B=0、
FLAG C=0 SET A FLAG A=1 SET B FLAG B=1 SET C FLAG C=1 CLRA FLAG A=0 CLRB FLAG B=0 CLRC FLAG C=0 条件付き WAIT 0 COND=SKIP WAIT 1 COND=SKIP WAIT 2 COND=SKIP WAIT 3 COND=SKIP FLAG A COND=FLAG A FLAG B COND=FLAG B FLAG C COND=FLAG C 条件付きモードにおいては、待機(WAIT0
〜WAIT3)がXMCによるSMCマイクロ命令取
出し、CPUによるXMCマイクロ命令取出し、
CPUによるターゲツト水平の実行、XMC装置に
よるSKIPの受取り、またはタスク指令レジスタ
26の外部ローデイング間の遅延のため必要とな
る。フラツグが指定される時待機は必要でない
が、これはフラツグがXMC装置により構成され
て即時使用可能となるためである。 HTBEC(実行されるべき水平方向の)カウン
タ37は、CPUに対して送られても未だ実行さ
れなかつたマイクロ命令数を示す。HTBECカウ
ンタは、ACK信号により増進され、HOREX信
号により減退され、ADEC信号によりクリアされ
る。その内容は、フラツグ/条件ロジツク36に
おけるCNAMX ROM35からのWAIT信号と
比較されて信号SKIPが問題のマイクロ命令につ
いて戻されることを確認する(第4図のタイミン
グ図に間して更に詳細に以下に説明するように)。
フラツグ/条件ロジツク36は、前述の比較が適
当なSKIP信号が受取られたことを示すまでプロ
グラム・カウンタ31を保持するため信号
HOLDを存在させる。特定の問題となるマイク
ロ命令に対する信号HOREXがあるサイクルの位
相において受取られる時、このマイクロ命令に
対する信号SKIPが次のサイクルの位相におい
て戻される。 第1図乃至第3図に示されたシステムの作動に
ついて理解するため、第4図および以下に示すチ
ヤートに示される例示的な信号タインミング図
に関して示される如くこれにより実施される諸操
作の典型的なシーケンスを説明することが役立と
う。第4図は例示的な操作の間存在する種々のキ
ー信号を示し(第2図および第3図に示される)、
チヤートは例示的な諸操作において実施される
ステツプのシーケンスを示している。
【表】
ら取出された
各CLOCKサイクルが2つの位相(および
)を有し、15サイクルのシーケンスを事例に示
す。最初に、図示の事例において、CPUはサイ
クルの位相の間MACR信号(「マクロコー
ド」要求)を存在させることによりマイクロコー
ド復号操作を要求し、その直後にサイクル2の位
相の間MICR信号(「マイクロコード」要求)
が続く。もしこのマイクロコードが特定の外部マ
イクロコントローラ装置により取扱い可能であれ
ば、この装置はマクロ命令を復号してそのACK
信号を存在させ、XMCバスにおいて最初のマイ
クロ命令を生成するように復号操作の実施を示
す。第4図に示すように、このマイクロ命令は、
前述の如くサイクル2の位相にACK信号を存
在させることによりその復号を確認する間、サイ
クル2の位相およびサイクル3の位相におけ
るCバスに示され2つの部分A1およびA2にお
けるバス上におかれる。 チヤートにおいて判るように、このようなマ
イクロ命令はテスト命令であり、IPLA復号/マ
トリツクス装置21から取出される。もしDEC
フイールドが新たなマクロ命令の復号が要求され
ること(例えば、その時復号されたマクロ命令が
唯1つのマイクロ命令しか含まなかつた時の如
く)を示さなければ、次のマイクロ命令Bが
CPLAマトリツクス装置25から取出される。マ
イクロ命令A1,A2がXMCバス上を実行のた
めCPUに対して送られるが、その間HTBECカウ
ンタは「1」だけ増進させられてマクロ命令が実
行のためCPUに対して送られるが未だ実行され
なかつたことを示す。 次のマイクロ命令BがCPLAから取出された
時、サイクル3の位相において確認されて
CPUに対して送られ、HTBECカウンタは再びサ
イクル4の位相において「2」に(1だけ)増
進させられるのである。 次のマイクロ命令Cはこの時CPLAから取出さ
れてCPUに対して送られる。この操作は通常
HTBECを「3」に増進させられるが、この時ま
でに、第1のマイクロ命令Aが実行され、CPU
からのHOREX信号(水平モード実行)の存在が
HTBECカウンタを1だけ減退させてこれを
「2」の状態に維持する。 CNAMX ROM35は、次のマイクロ命令を
取出すことができる前の時点の実行を制御する。
このように、マイクロ命令Cの間、CNAMX
ROMはWAITの値1を存在させ(チヤート参
照)、この状態がHTBECおよびACK信号のカウ
ントと共に、プログラム・カウンタがその時の状
態に保持されるかどうか(即ち、信号HOLDが
存在するかどうか、第3図参照)を判定する。も
しマイクロコードがその時送られつつある
(ACKが存在する)ならば、プログラム・カウン
タは、もしWAIT値プラスHTBECのカウントが
3と等しいか、あるいはこれよりも大きければ、
その時の状態に保持される。もしマイクロコード
がその時送られない(ACKが存在しない)なら
ば、プログラム・カウンタが、もしWAIT値お
よびHTBEECのカウントが3より大きければ、
その時の状態に保持される。チヤートおよび第
4図の事例においては、サイクル4の位相の間
WAIT値およびHTBECのカウントの和が3と等
しく、ACKが存在し、そのためプログラム・カ
ウンタがその時の状態に保持されるのである。サ
イクル5の位相の間、ACKが存在せず、かか
る和が3より大きくなければ、プログラム・カウ
ンタはマイクロ命令Cからマイクロ命令Dに変化
することを許容される。 マイクロ命令Cによれば、マイクロ命令Aにお
いて行なわれるテストは、このマイクロコードが
直接マイクロ命令Jに飛越しを行なうかどうか
(テストが「偽」である時)、または次の順次のマ
イクロ命令Dが使用されるかどうか(テストが
「真」である時)を判定する。図示の特定の事例
においては、信号SKIPがテストの状態を規定し
(ハイの時信号SKIPが「真」となり、ローの時
「偽」となる)、また図示の如く、マイクロ命令C
に対してはハイ(真)となる。従つて、操作のシ
ーケンスはそのシーケンスの次のマイクロ命令D
まで進行する。 この時マイクロ命令Dは前記の1サイクルの遅
れの後に取出され、この時マイクロ命令Bが実行
されて、その結果CPUからの信号HOREXの存
在がHTBECを「1」に減退させるのである。 マイクロ命令DはWAIT3信号を信じ、
WAITの値とHTBECカウントの和はサイクル9
の位相の間3より大きく、そのためプログラ
ム・カウンタはサイクル9の間その時の状態に保
持され、信号HOLDは3サイクルの遅れを生じ
てマイクロ命令Dにおいてテストを行なうことを
許容する。このテストは、マイクロプログラムが
マイクロ命令W(SKIPは偽)に飛越しを行なう
か、あるいは次の順次のマイクロ命令Eが使用の
ため取出される(SKIPが真)かどうかを判定す
る。図示した特定の実施例においては、3サイク
ルの待ちの終りのテスト(SKIP信号)が偽であ
ることが示され(SKIPがロー)、その結果マイク
ロ命令Wに対する分岐が行われる。その間
HTBECが零に減退させられてマイクロ命令Dの
実行を反映する。この時諸操作のシーケンスが図
示の如くマイクロ命令W,X,Y,Z……に進
む。 前述の如く、前記マイクロ命令は、タインミン
グ・サイクルの個々の位相の間、2つの8ビツ
ト・バイト(例えば、マイクロ命令Aに対するA
1およびA2)におけるXMCバスにおいて送ら
れる。初期マイクロ命令AがIPLA装置21から
得られるが、その後の全てのマイクロ命令は
SPLA装置25から得られる。HTBECカウンタ
は、常に、XMC装置からプロセツサに対して送
出されたマイクロ命令数と、プロセツサによりこ
れから実行されるマイクロ命令数を示す。 本文の記述は本発明の特定の実施態様の形態お
よび作用について論述したが、本発明の主旨およ
び範囲内にあるその変更例は当業修にとつては明
らかであろう。従つて、本発明は頭書の特許請求
の範囲に記載することを除き、本文中に記載の特
定の実施態様に限定されるべきものではない。
各CLOCKサイクルが2つの位相(および
)を有し、15サイクルのシーケンスを事例に示
す。最初に、図示の事例において、CPUはサイ
クルの位相の間MACR信号(「マクロコー
ド」要求)を存在させることによりマイクロコー
ド復号操作を要求し、その直後にサイクル2の位
相の間MICR信号(「マイクロコード」要求)
が続く。もしこのマイクロコードが特定の外部マ
イクロコントローラ装置により取扱い可能であれ
ば、この装置はマクロ命令を復号してそのACK
信号を存在させ、XMCバスにおいて最初のマイ
クロ命令を生成するように復号操作の実施を示
す。第4図に示すように、このマイクロ命令は、
前述の如くサイクル2の位相にACK信号を存
在させることによりその復号を確認する間、サイ
クル2の位相およびサイクル3の位相におけ
るCバスに示され2つの部分A1およびA2にお
けるバス上におかれる。 チヤートにおいて判るように、このようなマ
イクロ命令はテスト命令であり、IPLA復号/マ
トリツクス装置21から取出される。もしDEC
フイールドが新たなマクロ命令の復号が要求され
ること(例えば、その時復号されたマクロ命令が
唯1つのマイクロ命令しか含まなかつた時の如
く)を示さなければ、次のマイクロ命令Bが
CPLAマトリツクス装置25から取出される。マ
イクロ命令A1,A2がXMCバス上を実行のた
めCPUに対して送られるが、その間HTBECカウ
ンタは「1」だけ増進させられてマクロ命令が実
行のためCPUに対して送られるが未だ実行され
なかつたことを示す。 次のマイクロ命令BがCPLAから取出された
時、サイクル3の位相において確認されて
CPUに対して送られ、HTBECカウンタは再びサ
イクル4の位相において「2」に(1だけ)増
進させられるのである。 次のマイクロ命令Cはこの時CPLAから取出さ
れてCPUに対して送られる。この操作は通常
HTBECを「3」に増進させられるが、この時ま
でに、第1のマイクロ命令Aが実行され、CPU
からのHOREX信号(水平モード実行)の存在が
HTBECカウンタを1だけ減退させてこれを
「2」の状態に維持する。 CNAMX ROM35は、次のマイクロ命令を
取出すことができる前の時点の実行を制御する。
このように、マイクロ命令Cの間、CNAMX
ROMはWAITの値1を存在させ(チヤート参
照)、この状態がHTBECおよびACK信号のカウ
ントと共に、プログラム・カウンタがその時の状
態に保持されるかどうか(即ち、信号HOLDが
存在するかどうか、第3図参照)を判定する。も
しマイクロコードがその時送られつつある
(ACKが存在する)ならば、プログラム・カウン
タは、もしWAIT値プラスHTBECのカウントが
3と等しいか、あるいはこれよりも大きければ、
その時の状態に保持される。もしマイクロコード
がその時送られない(ACKが存在しない)なら
ば、プログラム・カウンタが、もしWAIT値お
よびHTBEECのカウントが3より大きければ、
その時の状態に保持される。チヤートおよび第
4図の事例においては、サイクル4の位相の間
WAIT値およびHTBECのカウントの和が3と等
しく、ACKが存在し、そのためプログラム・カ
ウンタがその時の状態に保持されるのである。サ
イクル5の位相の間、ACKが存在せず、かか
る和が3より大きくなければ、プログラム・カウ
ンタはマイクロ命令Cからマイクロ命令Dに変化
することを許容される。 マイクロ命令Cによれば、マイクロ命令Aにお
いて行なわれるテストは、このマイクロコードが
直接マイクロ命令Jに飛越しを行なうかどうか
(テストが「偽」である時)、または次の順次のマ
イクロ命令Dが使用されるかどうか(テストが
「真」である時)を判定する。図示の特定の事例
においては、信号SKIPがテストの状態を規定し
(ハイの時信号SKIPが「真」となり、ローの時
「偽」となる)、また図示の如く、マイクロ命令C
に対してはハイ(真)となる。従つて、操作のシ
ーケンスはそのシーケンスの次のマイクロ命令D
まで進行する。 この時マイクロ命令Dは前記の1サイクルの遅
れの後に取出され、この時マイクロ命令Bが実行
されて、その結果CPUからの信号HOREXの存
在がHTBECを「1」に減退させるのである。 マイクロ命令DはWAIT3信号を信じ、
WAITの値とHTBECカウントの和はサイクル9
の位相の間3より大きく、そのためプログラ
ム・カウンタはサイクル9の間その時の状態に保
持され、信号HOLDは3サイクルの遅れを生じ
てマイクロ命令Dにおいてテストを行なうことを
許容する。このテストは、マイクロプログラムが
マイクロ命令W(SKIPは偽)に飛越しを行なう
か、あるいは次の順次のマイクロ命令Eが使用の
ため取出される(SKIPが真)かどうかを判定す
る。図示した特定の実施例においては、3サイク
ルの待ちの終りのテスト(SKIP信号)が偽であ
ることが示され(SKIPがロー)、その結果マイク
ロ命令Wに対する分岐が行われる。その間
HTBECが零に減退させられてマイクロ命令Dの
実行を反映する。この時諸操作のシーケンスが図
示の如くマイクロ命令W,X,Y,Z……に進
む。 前述の如く、前記マイクロ命令は、タインミン
グ・サイクルの個々の位相の間、2つの8ビツ
ト・バイト(例えば、マイクロ命令Aに対するA
1およびA2)におけるXMCバスにおいて送ら
れる。初期マイクロ命令AがIPLA装置21から
得られるが、その後の全てのマイクロ命令は
SPLA装置25から得られる。HTBECカウンタ
は、常に、XMC装置からプロセツサに対して送
出されたマイクロ命令数と、プロセツサによりこ
れから実行されるマイクロ命令数を示す。 本文の記述は本発明の特定の実施態様の形態お
よび作用について論述したが、本発明の主旨およ
び範囲内にあるその変更例は当業修にとつては明
らかであろう。従つて、本発明は頭書の特許請求
の範囲に記載することを除き、本文中に記載の特
定の実施態様に限定されるべきものではない。
第1図は本発明を実施するシステム全体を示す
全体的ブロツク図、第2図は第1図のシステムに
おいて使用される如き外部マイクロ制御装置のイ
ンターフエース装置の実施例を示す更に詳細なブ
ロツク図、第3図は第2図の外部のマイクロ制御
装置のインターフエース装置において使用される
使用される順序付け論理装置の実施例を示す更に
詳細なブロツク図、および第4図は本発明の外部
マイクロ制御装置のインターフエース装置の例示
的な操作順序の理解に役立つタインミング図であ
る。 10……CPU、11,11A……システム・
バス、12……記憶装置、13……マイクロコン
トローラ(XMC)インターフエース装置、13
A,16……バス、14,14A,15,15
A,17……入出力(L/O)装置、20……
XMC命令レジスタ、21……復号/マトリツク
ス装置、22……マルチプレクサ兼バツフア、2
3……アドレスROM装置、24……シーケンス
装置、25……制御プログラム・ロジツクアレー
復号(CPLA)マトリツクス装置、26……タス
ク指名レジスタ、27……タスク指名制御ロジツ
ク、28……タインミング・ロジツク、29……
IPLA制御論理装置、30……マルチプレクサ、
31……プログラム・カウンタ、32……後入
れ/先出しメモリー・スタツク、35……
CNAMX ROM、36……フラツグ/条件ロジ
ツク、37……HTBECカウンタ。
全体的ブロツク図、第2図は第1図のシステムに
おいて使用される如き外部マイクロ制御装置のイ
ンターフエース装置の実施例を示す更に詳細なブ
ロツク図、第3図は第2図の外部のマイクロ制御
装置のインターフエース装置において使用される
使用される順序付け論理装置の実施例を示す更に
詳細なブロツク図、および第4図は本発明の外部
マイクロ制御装置のインターフエース装置の例示
的な操作順序の理解に役立つタインミング図であ
る。 10……CPU、11,11A……システム・
バス、12……記憶装置、13……マイクロコン
トローラ(XMC)インターフエース装置、13
A,16……バス、14,14A,15,15
A,17……入出力(L/O)装置、20……
XMC命令レジスタ、21……復号/マトリツク
ス装置、22……マルチプレクサ兼バツフア、2
3……アドレスROM装置、24……シーケンス
装置、25……制御プログラム・ロジツクアレー
復号(CPLA)マトリツクス装置、26……タス
ク指名レジスタ、27……タスク指名制御ロジツ
ク、28……タインミング・ロジツク、29……
IPLA制御論理装置、30……マルチプレクサ、
31……プログラム・カウンタ、32……後入
れ/先出しメモリー・スタツク、35……
CNAMX ROM、36……フラツグ/条件ロジ
ツク、37……HTBECカウンタ。
Claims (1)
- 【特許請求の範囲】 1 マクロ命令に応答して該マクロ命令を復号
し、1つ以上の一連のマイクロ命令を生成する装
置と前記マイクロ命令に応答して前記マイクロ命
令を実行し、1つ以上のデータ処理操作を行う処
理論理装置とを設けた中央処理装置、を備えたデ
ータ処理装置であつて、 前記データ処理装置は更に1つ以上の外部マイ
クロコード制御装置を設け、前記外部マイクロコ
ード制御装置の各々は、 a 前記中央処理装置から受取つたマクロ命令に
応答して前記マクロ命令を復号し、1つ以上の
一連のマイクロ命令を生成する装置と、 b 前記の1つ以上のマイクロ命令を前記中央処
理装置により実行するため該中央処理装置に対
して送出する装置と、 c マクロ命令が、前記外部マイクロコード制御
装置の選定された1つにより復号されるべきも
のであるか、あるいは前記中央処理装置により
復号されるべきものであるかを判定する装置と
を設けることを特徴とするデータ処理装置。 2 前記外部マイクロコード制御装置が、 前記マクロ命令が前記選定された外部マイクロ
コード制御装置により、あるいは前記中央処理装
置により復号可能である時、マクロ命令が選定さ
れた外部マイクロコード制御装置によつてのみ復
号されるべきことを確保する装置を含むことを特
徴とする特許請求の範囲第1項記載のデータ処理
装置。 3 前記各外部マイクロコード制御装置が、 マクロ命令に応答して該マクロ命令を復号し、
初期マイクロ命令を生成する初期マクロ命令復号
装置と、 前記初期マイクロ命令の第1の選定されたフイ
ールドを前記中央処理装置による実行のため該中
央処理装置に対して送出する装置と、 前記初期マイクロ命令の他の選定されたフイー
ルドに応答して1つ以上の一連のマイクロ命令を
提供する別の復号装置と、 前記の一連のマイクロ命令の第1の選定された
フイールドを前記中央処理装置による実行のため
該中央処理装置に対して送出する装置とを含むこ
とを特徴とする特許請求の範囲第1項または第2
項記載のデータ処理装置。 4 前記各外部マイクロコード制御装置が、前記
中央処理装置に対して送出されるも、未だ前記中
央処理装置により実行されなかつたマイクロ命令
数を表示する装置を含むことを特徴とする特許請
求の範囲第3項記載のデータ処理装置。 5 前記初期マイクロ命令の前記第1の選定され
たフイールドが、 前記初期マイクロ命令の実行の際前記中央処理
装置により使用される1つ以上の実行フイールド
と、 前記外部マイクロコード制御装置から前記中央
処理装置に対して送出された一連のマイクロ命令
が継続されるべきか、あるいはそのときのマイク
ロ命令の実行と同時に完了されるべきかを表示す
る次のアドレス・モード・フイールドとを含むこ
とを特徴とする特許請求の範囲第4項記載のデー
タ処理装置。 6 前記外部マイクロコード制御装置が、 前記別の復号装置に対して一連のマイクロ命令
の次の連続するマイクロ命令の1つのアドレスを
与えるプログラム・カウンタと、 1つのサブルーチンの実行において使用するた
め1つ以上のマイクロ命令を記憶するスタツク装
置とを含み、 更に、前記初期マイクロ命令の他の選定された
前記フイールドが、 前記プログラム・カウンタ装置に対して与える
ためのアドレスを提供することが可能な第1のア
ドレス・フイールドと、 前記プログラム・カウンタの増分された値を提
供する前記スタツク装置におけるアドレスを識別
するため前記別の復号装置におけるポインタ・ア
ドレスを提供する第2のアドレス・フイールドと
を含むことを特徴とする特許請求の範囲第5項記
載のデータ処理装置。 7 前記外部マイクロコード制御装置が更に、前
記プログラム・カウンタ装置に提供される外部的
に生成されたアドレスの提供が可能な装置を含む
ことを特徴とする特許請求の範囲第6項記載のデ
ータ処理装置。 8 前記別の復号装置からの前記一連のマイクロ
命令の第1の選定されたフイールドが、前記一連
のマイクロ命令の実行の際前記中央処理装置によ
り使用するため1つ以上の実行フイールドを含
み、 前記一連のマイクロ命令の第1の選定されたフ
イールドが、 前記プログラム・カウンタ装置に対して与える
ためのアドレスを提供することが可能な第1のア
ドレス・フイールドと、 前記初期マイクロ命令からの第1のアドレス・
フイールド、または前記一連のマイクロ命令の1
つからの第1のアドレス・フイールド、または前
記外部で生成されたアドレスを前記プログラム・
カウンタ装置に対して与えるため選定する手段と
を含むことを特徴とする特許請求の範囲第7項記
載のデータ処理装置。 9 前記一連のマイクロ命令の前記の他の選定さ
れたフイールドが、 一連のマイクロ命令における次の一連のマイク
ロ命令が前記中央処理装置により実行されるべき
か、前記実行フイールドの一部が前記中央処理装
置により再び実行されるべきか、或いは新たなマ
クロ命令が前記データ処理装置により復号される
べきかを判定する次のアドレス・モード・フイー
ルドを含むことを特徴とする特許請求の範囲第8
項記載のデータ処理装置。 10 前記一連のマイクロ命令の前記の他の選定
されたフイールドが、 1つのマイクロ命令の実行サイクルがその通常
の実行サイクルを越えて実行されるべきかを判定
する制御フイールドを含むことを特徴とする特許
請求の範囲第9項記載のデータ処理装置。 11 前記送出する装置が、前記の外部マイクロ
コード制御装置と前記中央処理装置とを連結する
バス装置と、前記外部マイクロコード制御装置に
より生成されるマイクロ命令を前記中央処理装置
に対して送出するため前記バス装置におくための
駆動装置とを含み、 更に、前記各外部マイクロコード制御装置が、 前記外部マイクロコード制御装置が前記マイク
ロ命令を提供し、かつ前記の1つ以上の一連のマ
イクロ命令を提供するため選定された時のみそれ
自体の駆動装置を付勢する装置を含むことを特徴
とする特許請求の範囲第1項または第2項記載の
データ処理装置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/232,238 US4399505A (en) | 1981-02-06 | 1981-02-06 | External microcode operation in a multi-level microprocessor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS57139855A JPS57139855A (en) | 1982-08-30 |
| JPS638489B2 true JPS638489B2 (ja) | 1988-02-23 |
Family
ID=22872355
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP56182181A Granted JPS57139855A (en) | 1981-02-06 | 1981-11-13 | External microcode processor for multiple level microprocessor |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US4399505A (ja) |
| EP (1) | EP0057788B1 (ja) |
| JP (1) | JPS57139855A (ja) |
| AU (1) | AU544951B2 (ja) |
| BR (1) | BR8200513A (ja) |
| CA (1) | CA1167971A (ja) |
| DE (1) | DE3176135D1 (ja) |
| IL (1) | IL63879A (ja) |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4931989A (en) * | 1982-02-22 | 1990-06-05 | International Business Machines Corporation | Microword generation mechanism utilizing a separate programmable logic array for first microwords |
| US4685080A (en) * | 1982-02-22 | 1987-08-04 | International Business Machines Corp. | Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords |
| US4556938A (en) * | 1982-02-22 | 1985-12-03 | International Business Machines Corp. | Microcode control mechanism utilizing programmable microcode repeat counter |
| US4594661A (en) * | 1982-02-22 | 1986-06-10 | International Business Machines Corp. | Microword control system utilizing multiplexed programmable logic arrays |
| US4928223A (en) * | 1982-10-06 | 1990-05-22 | Fairchild Semiconductor Corporation | Floating point microprocessor with directable two level microinstructions |
| US4531200A (en) * | 1982-12-02 | 1985-07-23 | International Business Machines Corporation | Indexed-indirect addressing using prefix codes |
| US4697250A (en) * | 1983-08-22 | 1987-09-29 | Amdahl Corporation | Flexible computer control unit |
| JPS6093511A (ja) * | 1983-10-27 | 1985-05-25 | Fanuc Ltd | フォーマット変換インタフェース装置 |
| US4825363A (en) * | 1984-12-05 | 1989-04-25 | Honeywell Inc. | Apparatus for modifying microinstructions of a microprogrammed processor |
| US5261116A (en) * | 1986-07-02 | 1993-11-09 | Advanced Micro Devices, Inc. | Programmable, expandable controller with flexible I/O |
| DE68927783T2 (de) * | 1988-05-03 | 1997-09-25 | Wang Laboratories | Mikroprozessor mit äusserem steuerungsspeicher |
| JPH0682320B2 (ja) * | 1988-06-08 | 1994-10-19 | 日本電気株式会社 | データ処理装置 |
| US5043879A (en) * | 1989-01-12 | 1991-08-27 | International Business Machines Corporation | PLA microcode controller |
| US6378061B1 (en) * | 1990-12-20 | 2002-04-23 | Intel Corporation | Apparatus for issuing instructions and reissuing a previous instructions by recirculating using the delay circuit |
| GB2266606B (en) * | 1992-04-27 | 1996-02-14 | Intel Corp | A microprocessor with an external command mode |
| US5537629A (en) * | 1994-03-01 | 1996-07-16 | Intel Corporation | Decoder for single cycle decoding of single prefixes in variable length instructions |
| US5586278A (en) * | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
| US5668985A (en) * | 1994-03-01 | 1997-09-16 | Intel Corporation | Decoder having a split queue system for processing intstructions in a first queue separate from their associated data processed in a second queue |
| US5630083A (en) * | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
| US5586277A (en) * | 1994-03-01 | 1996-12-17 | Intel Corporation | Method for parallel steering of fixed length fields containing a variable length instruction from an instruction buffer to parallel decoders |
| US5600806A (en) * | 1994-03-01 | 1997-02-04 | Intel Corporation | Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer |
| US5608885A (en) * | 1994-03-01 | 1997-03-04 | Intel Corporation | Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions |
| US5566298A (en) * | 1994-03-01 | 1996-10-15 | Intel Corporation | Method for state recovery during assist and restart in a decoder having an alias mechanism |
| US5673427A (en) * | 1994-03-01 | 1997-09-30 | Intel Corporation | Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue |
| US5559974A (en) * | 1994-03-01 | 1996-09-24 | Intel Corporation | Decoder having independently loaded micro-alias and macro-alias registers accessible simultaneously by one micro-operation |
| US5758116A (en) * | 1994-09-30 | 1998-05-26 | Intel Corporation | Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions |
| AU3666697A (en) * | 1996-08-20 | 1998-03-06 | Idea Corporation | A method for identifying hard-to-predict branches to enhance processor performance |
| US6041403A (en) * | 1996-09-27 | 2000-03-21 | Intel Corporation | Method and apparatus for generating a microinstruction responsive to the specification of an operand, in addition to a microinstruction based on the opcode, of a macroinstruction |
| US6154834A (en) * | 1997-05-27 | 2000-11-28 | Intel Corporation | Detachable processor module containing external microcode expansion memory |
| US6260082B1 (en) * | 1998-12-23 | 2001-07-10 | Bops, Inc. | Methods and apparatus for providing data transfer control |
| AU2745001A (en) * | 1999-12-31 | 2001-07-16 | Intel Corporation | External microcode |
| US7698539B1 (en) | 2003-07-16 | 2010-04-13 | Banning John P | System and method of instruction modification |
| WO2013100959A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Processor accelerator interface virtualization |
| US10318903B2 (en) | 2016-05-06 | 2019-06-11 | General Electric Company | Constrained cash computing system to optimally schedule aircraft repair capacity with closed loop dynamic physical state and asset utilization attainment control |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| BE625673A (ja) * | 1961-12-04 | |||
| US3478322A (en) * | 1967-05-23 | 1969-11-11 | Ibm | Data processor employing electronically changeable control storage |
| JPS50155146A (ja) * | 1974-06-03 | 1975-12-15 | ||
| JPS5140728A (en) * | 1974-10-02 | 1976-04-05 | Ayao Miura | Haamueanyoru ronrikikai |
| US4087857A (en) * | 1976-10-04 | 1978-05-02 | Honeywell Information Systems Inc. | ROM-initializing apparatus |
| JPS6019028B2 (ja) * | 1977-08-26 | 1985-05-14 | 株式会社日立製作所 | 情報処理装置 |
| US4236210A (en) * | 1978-10-02 | 1980-11-25 | Honeywell Information Systems Inc. | Architecture for a control store included in a data processing system |
| CA1137641A (en) * | 1979-06-22 | 1982-12-14 | Merle E. Homan | Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip |
-
1981
- 1981-02-06 US US06/232,238 patent/US4399505A/en not_active Expired - Lifetime
- 1981-09-18 IL IL63879A patent/IL63879A/xx not_active IP Right Cessation
- 1981-10-09 AU AU76214/81A patent/AU544951B2/en not_active Ceased
- 1981-11-13 JP JP56182181A patent/JPS57139855A/ja active Granted
- 1981-11-26 DE DE8181305587T patent/DE3176135D1/de not_active Expired
- 1981-11-26 EP EP81305587A patent/EP0057788B1/en not_active Expired
-
1982
- 1982-01-29 BR BR8200513A patent/BR8200513A/pt not_active IP Right Cessation
- 1982-02-03 CA CA000395488A patent/CA1167971A/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| CA1167971A (en) | 1984-05-22 |
| EP0057788A3 (en) | 1982-09-08 |
| EP0057788A2 (en) | 1982-08-18 |
| DE3176135D1 (en) | 1987-05-27 |
| JPS57139855A (en) | 1982-08-30 |
| AU544951B2 (en) | 1985-06-27 |
| AU7621481A (en) | 1982-08-12 |
| US4399505A (en) | 1983-08-16 |
| IL63879A0 (en) | 1981-12-31 |
| IL63879A (en) | 1984-09-30 |
| BR8200513A (pt) | 1982-12-07 |
| EP0057788B1 (en) | 1987-04-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0057788B1 (en) | Data processing system with external microcode control unit | |
| US5235686A (en) | Computer system having mixed macrocode and microcode | |
| US4394736A (en) | Data processing system utilizing a unique two-level microcoding technique for forming microinstructions | |
| EP0405495A2 (en) | Instruction unit logic management apparatus included in a pipelined processing unit | |
| JP2535518B2 (ja) | デ−タ処理システム | |
| US5101344A (en) | Data processor having split level control store | |
| EP0092429A2 (en) | Special instruction processing unit for data processing system | |
| JPH026090B2 (ja) | ||
| US5628018A (en) | Data processing apparatus handling plural divided interruption | |
| JPS6158044A (ja) | 中央処理ユニツトの条件分岐命令のための命令プレフエツチシステム | |
| US4287561A (en) | Address formulation interlock mechanism | |
| JPS6258028B2 (ja) | ||
| US5276824A (en) | Data processor having a multi-stage instruction pipe and selection logic responsive to an instruction decoder for selecting one stage of the instruction pipe | |
| JPH0124655Y2 (ja) | ||
| JPH0296233A (ja) | オペランド指定子処理 | |
| EP0035334A2 (en) | Data processing system with two level microprogramming | |
| JPH0332818B2 (ja) | ||
| US5241637A (en) | Data processor microsequencer having multiple microaddress sources and next microaddress source selection | |
| EP0223150B1 (en) | Information processing apparatus | |
| US4635188A (en) | Means for fast instruction decoding for a computer | |
| JP2677719B2 (ja) | 情報処理装置 | |
| EP0292188B1 (en) | Cache system | |
| US4803615A (en) | Microcode control of a parallel architecture microprocessor | |
| JPH0342723A (ja) | データ処理装置 | |
| JPH0578864B2 (ja) |