JPH0823818B2 - 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置 - Google Patents

命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置

Info

Publication number
JPH0823818B2
JPH0823818B2 JP4001067A JP106792A JPH0823818B2 JP H0823818 B2 JPH0823818 B2 JP H0823818B2 JP 4001067 A JP4001067 A JP 4001067A JP 106792 A JP106792 A JP 106792A JP H0823818 B2 JPH0823818 B2 JP H0823818B2
Authority
JP
Japan
Prior art keywords
microinstructions
instruction
sequence
microinstruction
instructions
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
JP4001067A
Other languages
English (en)
Other versions
JPH04309131A (ja
Inventor
エル. ジェレマイア トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04309131A publication Critical patent/JPH04309131A/ja
Publication of JPH0823818B2 publication Critical patent/JPH0823818B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
とディジタルデータプロセッサ、特に、2個又はそれ以
上の命令を並行して処理することが可能なディジタルコ
ンピュータとデータプロセッサとに関する。
【0002】関連出願へのクロス・リファレンス 本件は、以下の同時係属中のアメリカ特許出願に関す
る。 (1)アメリカ特許出願第07/519、382号(1
990年5月4日出願)の「測定可能な複合命令集合マ
シンアーキテクチャ」 (2)アメリカ特許出願第07/519、384号(1
990年5月4日出願)の「命令レベルのパラレルプロ
セッサ用の汎用複合装置」 (3)アメリカ特許出願第07/504、910号(1
990年4月4日出願)の「データ依存コラプス式ハー
ドウェア装置」 (4)アメリカ特許出願第07/522、291号(1
990年5月10日出願)の「キャッシュ用複合プリプ
ロセッサ」 (5)アメリカ特許出願第07/543、464号(1
990年6月26日出願)の「スケーラブル複合命令集
合マシンプロセッサ用のイン・メモリプリプロセッサ」 (6)アメリカ特許出願第07/543、458号(1
990年6月26日出願)の「イン・メモリ複合式のス
ケーラブル複合命令集合マシン用メモリ管理」 (7)アメリカ特許出願(出願番号は未定)の「スケー
ラブル複合命令集合マシンでの3−オペランドALUS
のオーバフロー決定」 (8)アメリカ特許出願第07/522、291号の部
分継続出願(出願番号は未定)の「キャッシュ用複合プ
リプロセッサ」これらの同時係属中の出願及び本出願
は、ニューヨーク州、アーモンクのインターナショナル
・ビジネス・マシーンズ・コーポレイション所有のもの
である。これらの同時係属中の出願に示された記載はこ
のように、参照により本出願に組み入れられる。
【0003】
【従来の技術】複数の命令を一個ずつシーケンシャルな
方法で実行する従来のコンピュータの性能は、主として
回路技術の向上によって、これまでかなり改善されてき
ている。一度に一個の命令を実行するマシンは、「スカ
ラー」コンピュータ又はプロセッサと称されることもあ
る。回路技術がその限界にまで推進されるにつれて、コ
ンピュータ設計者は相当な性能向上を達成するために他
の手段を研究する必要に迫られてきている。
【0004】最近、いわゆる「スーパースカラー」コン
ピュータが提案されてきており、これは単一の命令スト
リームから一度に1個以上の命令を選択的に実行するこ
とによって性能を向上させようとするものである。スー
パースカラーマシンは通常の場合、命令の実行時に所定
数の命令が並行して実行されるかどうかを判断する。か
かる判断は、命令のオペレーションコード(OPコー
ド)と隣接する命令どうしの間に存在するデータ依存性
とに基づいて行なわれる。OPコードはそれぞれの命令
が利用する特定のハードウェアコンポーネントを決定す
るので、一般には、2個又はそれ以上の命令が同時に同
じハードウェアコンポーネントを利用することは不可能
であり、命令のうちの一個が別の命令の結果に依存する
場合に(「データ依存性」又は「データインターロッ
ク」)、その命令を実行することもまた不可能である。
これらのハードウェア及びデータ依存性によって、若干
の命令の組合せを並行して実行することが妨げられる。
その代わり、これらの場合において、命令は非並行的方
法で独立して実行される。このことは当然、スーパース
カラーマシンの性能を低下させている。
【0005】スーパースカラーコンピュータは性能上に
改善をもたらすが、また、最小化することが望ましいと
いう欠点も備えている。例えば、命令の実行時にどの命
令を並行して実行できるかを判断するにはかなりの時間
がかかり、それはその判断を他の標準マシン操作とオー
バーラップすることによって、あまり容易にマスクでき
ないものとなっている。この欠点は命令集合アーキテク
チャの複雑性が増加するとともに、より明白なものとな
る。もう一つの欠点は、同じ命令が2度又はそれ以上の
回数にわたって実行されることになっている場合、その
意思決定を繰返し行なわなければならない点である。
【0006】クロス・リファレンスされた出願はすべ
て、並列実行の判断の性能が実行時間に先立って形成さ
れるスケール化可能な複合命令集合マシン(SCIS
M)と称されるディジタルコンピュータ又はデータプロ
セッサに関する。SCISMアーキテクチャにおいて、
並行して実行するための判断は、全体の命令処理プロセ
スの初期において行なわれる。例えば、上記判断は命令
バッファもしくは命令スタックを有するマシンにあって
は命令バッファに先立って行なわれたり、又は、命令を
キャッシュ装置内にフローさせるようなマシンにあって
は命令キャッシュに先立って行なわれたりすることもあ
る。
【0007】並列実行するための判断が、命令が格納さ
れる地点の前に行なわれるので、その意思決定の結果
は、それらの命令と共に保存され、同じ命令が2度目又
はそれ以上の回数の時に使用されるような場合に再使用
されることが可能である。
【0008】並列実行の意思決定の記録は命令ストリー
ムで個々の命令に伴って生じるタグの形式であることが
好ましい。これらのタグは、こうした命令が並行して実
行できるか、又は、これらを一度に1個ずつ実行する必
要があるかどうか、について示す。この命令にタグをつ
けるプロセスは、ここでは「複合化」と称することもあ
る。同プロセスは実際において、少なくとも2個の個別
命令を並列処理のための1個の複合命令に結合するもの
である。
【0009】SCISMの一例としての実施例は、本件
の譲受人であるIBMコーポレイション(ニューヨー
ク、アーモンク)より市販されているシステム/370
製品ファミリーのアーキテクチャと命令とを基礎にした
ものである。SCISMは命令を目的形式である間に複
合させることが好ましい。周知のように、システム/3
70のアーキテクチャは一般的に、目的レベルの命令の
実行を実施し、且つ制御するためにマイクロコード化命
令を使用する。そのため、SCISMにおいて単独又は
並行して実行されるすべてのシステム/370命令は、
一個又はそれ以上のマイクロ命令によって制御される。
目的命令のマイクロ命令実行は広く使用された概念であ
って、それについては多くの実施方法が知られている。
スカラー命令を並行して実行する上での問題は、かかる
並行性を示すマイクロ命令シーケンスを提供することで
ある。
【0010】発明者に知られている一つのアプローチ
は、2個までの命令を並行して実行するマシンで実行さ
れる。このアプローチは、各々の命令について個別にル
ーチンを提供すると同様に、すべての可能な組み合わせ
の命令について固有のマイクロコード化命令を提供す
る。概念的には簡単であるが、このアプローチでは並行
命令ルーチンを支持するために相当量の追加のマイクロ
コード記憶装置を必要とする。並列実行が可能な命令の
各組み合わせは事実上、それ自身のマイクロコードを有
する新しい1個の命令となる。かかるアプローチについ
ての記憶装置及び管理オーバーヘッドは多大なものとな
り、多くの固有のマイクロコードルーチンを正規のマイ
クロ命令集合へ追加することになる。更に、その組合せ
の数は、並行して実行される命令数によって幾何級数的
に拡散される。
【0011】従って、2個もしくはそれ以上の命令を同
時に実行することができるコンピュータ又はプロセッサ
では、マイクロ命令を格納し検索するために必要とされ
るオーバーヘッドに実質的に追加することなく、全ての
可能な組合せについてマシンレベル命令を提供する必要
がある。
【0012】
【発明が解決しようとする課題】本発明の目的は、2個
又はそれ以上の命令を実行時間の前に並列実行するため
にグループ化するスケール化可能な(スケーラブル)複
合命令集合マシンでマイクロコードを生成することであ
る。
【0013】それに関連する目的は、並列実行のために
マークされた組み合わせのマシンレベル命令に応答して
マイクロ命令を生成するための効率的なメカニズムを考
案することである。
【0014】
【課題を解決するための手段】上記目的は、本発明者の
以下の重要な観測に基づく装置において達成される。即
ち、命令の取出し及び送出中に複合命令があると、複合
命令の各々についてマイクロ命令シーケンスが取り出さ
れて併合され、複合命令の同時的な実行を制御すること
のできる単一のマイクロ命令シーケンスをつくりだすこ
とができるというものである。このアプローチを活用す
れば、それぞれの個々のマシンレベル命令についてそれ
が別の命令と複合化されているか否かに関わりなく、単
一のマイクロ命令ルーチンのみをコード化し格納すれば
よいことになる。第2のコーディング形式は、複合化命
令の第2の半分として実行される命令に対して設けられ
る。
【0015】本発明の装置は、命令が単独で又は並行し
て実行でき、命令群の並列実行が命令の実行の前に生成
される情報を複合化することによって指示されるような
コンピュータにおいて見出される。然しながら、本発明
は命令の送出に先立って複合化が行なわれるようなケー
スに限定されるものではない。発令機構がマイクロ命令
併合機構に対し、発令中の命令が並行処理のためのふさ
わしい対象であることを指示するだけでよい。これに関
連して、本発明は、命令群に対するマイクロコードを生
成する装置であり、命令群のうちの第1の命令を実行す
るためのマイクロシーケンスの第1のシーケンスを提供
する第1のマイクロ命令記憶装置と、命令群のうちの第
2の命令を実行するためのマイクロ命令の第2のシーケ
ンスを提供する第2のマイクロ命令記憶装置と、を含
む。併合装置は第1と第2のマイクロ命令記憶装置に結
合されて、マイクロ命令の第1と第2のシーケンスを複
合化情報に応答してマイクロ命令の合成シーケンスへ結
合する。上記合成されたマイクロ命令シーケンスの長さ
はマイクロ命令の第1と第2のシーケンスのうちの長い
方に等しい。最後に、一連のレジスタは合成マイクロ命
令シーケンスのパイプライン実行用に設けられた併合手
段に接続される。
【0016】
【実施例】本発明の骨子はマシン命令を実行するための
マイクロコードを使用することにあるものではない。然
しながら、マシン命令実行のためのマイクロコード生成
器を使用するコンピュータは、本発明が実施される環境
を形成するものである。かかるコンピュータシステム
は、例えば、IBMシステム/370の命令集合の命令
を実行するマシンを包含することもできる。この命令集
合は、C.J.カクマー(Kacmar)著、プレンティス・
ホール、1988年の「IBM370アシスト付アセン
ブリ言語(IBM 370 ASSEMBLY LANGUAGE WITH ASSIST
)」と題した著作に詳説されている。
【0017】用語「マシン命令」は、ここで使用される
場合、目的形式による命令を意味する。「オペレーティ
ングシステム」(第2版)において、C.H.ダイテル
(Deitel)はマイクロプログラミングを「コンピュータ
の機械言語の下部にあるプログラミング層」と定義して
いる。ダイテルの定義を敷衍すると、マイクロプログラ
ムはマイクロ命令の収集である。「マイクロ命令」(又
は「マイクロワード」)は「マシン命令よりも基本的な
レベルにおいてプロセッサ中のデータとシーケンシング
を制御する」命令である(IBMコンピューティング・
ディクショナリー、第8版、1987年)。マイクロ命
令群は「マイクロコード」と称されるのが普通である。
【0018】周知のように、コンピュータマイクロプロ
グラムは一般的に、プログラマーがアクセス不可能なコ
ンピュータメモリの一部分に保持される。その代わり
に、コンパイル済みのプログラムのマシンレベル命令
は、「制御記憶」と称される記憶装置部分においてマイ
クロ命令に個々にマップされる。
【0019】図1は、マイクロプログラミング手法を利
用してマシンレベル命令の実行を単独で、又は対になっ
て実施し、且つ制御するSCISMアーキテクチャを示
す。特に、マシンレベル命令ストリームが複合化プリプ
ロセッサ10へ提供される。この命令ストリームは、一
般にはソースプログラムからコンパイルされた個々の命
令のシーケンスである。このストリームは、コンピュー
タのCPUに提供されて実行される。従来、マシンレベ
ル命令はキャッシュ12を介してCPUへステージング
されていた。キャッシュ内へ入力される前に、命令スト
リームは複合化プリプロセッサ10によって検査され
て、少なくとも2個の隣接する命令が同時に実行できる
か否かを決定する。この複合化プリプロセッサ10は、
「キャッシュ用複合プリプロセッサ」と題する上記で参
照された8番目の係属中のアメリカ特許出願において詳
説されている。本出願においてもまた、図1のキャッシ
ュ12としての機能を有する複合化命令キャッシュの構
造が述べられている。
【0020】複合化プリプロセッサ10の動作によっ
て、12でキャッシュされたコンパイル済み命令ストリ
ームの隣接する命令が同時に実行できるかどうかを表示
する複合化情報が生成される結果となる。かくして、各
々の命令について、複合化プリプロセッサ10は、その
命令及び隣接する命令とが並行して実行できるかどうか
を表示する複合化情報を生成する。
【0021】複合化プリプロセッサ10による処理の後
で、分析された命令と複合化情報とは複合命令キャッシ
ュ12に格納される。複合化情報を格納するための余分
の空間が設けられている点を除けば、キャッシュ12は
従来通りに作動されるものと想定される。特に、キャッ
シュ12内のエントリーは一般に、キャッシュ内へ入力
される隣接する命令群(「行」)であるので、それらは
実行中のプログラムによって必要とあれば、即座に取得
されることが可能である。
【0022】キャッシュ12内に命令と共に複合化情報
を提供する際に、SCISMアーキテクチャは、命令が
即時に実行されるためにキャッシュから持ち出される
(「送り出される」)と、並列処理の判断を行なうコン
ピュータよりもより十分に並行性を利用する。それに関
連して、キャッシュ12内の命令は、例えば、ループ又
は分岐(ブランチ)では一回以上使用することもでき
る。命令がキャッシュ内に存在する間は、実行のために
さらに取得されることになっても再分析する必要はな
く、何故ならば、命令と共にキャッシュ内に格納される
命令の複合化情報を再活用できるからである。
【0023】複合化プリプロセッサ10は、各命令につ
いて1ビットのタグを生成する同時係属中の特許出願ケ
ースに述べられたタイプのものであると想定される。こ
れらのタグは、命令のどの組み合わせが並行処理可能で
あるかを識別するために使用される。命令及びそれらの
タグは、複合命令キャッシュ12へ供給されて、その中
に格納される。命令取出し発信装置14は、命令及びそ
れらのタグを必要に応じて複合命令キャッシュ12から
取出し、複数の実行装置34、36のうちの少なくとも
どちらか一方の適切な装置によって実行の手はずを整え
る。この取出し発信装置14は取出された命令のタグと
OPコードを検査する。もしタグが、2個の逐次的命令
が並行処理さるべきであることを指示すると、取出し発
信装置14はこれらをともに複合命令レジスタ(CI
R)19に入力する。複合命令レジスタ19は左側複合
命令レジスタ(CIRL)20と右側複合レジスタ(C
IRR)21とを包含する。ビット幅フィールドは、複
合化された命令の組み合わせの第1の命令に対する複合
化タグを格納するためのCIRL20に設けられる。第
1の命令はCIRL20の残りの部分に格納され、一
方、第2の命令はCIRR21内に格納される。後述す
る説明において、第1の、即ち左側の命令は命令シーケ
ンスの第2の、即ち右手の命令に先行するものと想定さ
れ、その複合化タグは第1の命令がそれに続く命令と共
に実行されるべきか否かを指示する。かくして、複合化
された組み合わせの第1の命令はCIRL20内に格納
され、一方、第2の命令はCIRR21内に格納され
る。好ましい実施例では、複合化タグは一個のビット
(以下、Cビットと称する)で、ビットが「1」の値に
セットされるとCIRR21がCIRL20内に包含さ
れた命令と同時に実行されるべき命令を含んでいること
を示す。もし「0」にセットされると、複合化タグは、
CIRR21の内容がCIRL20に含まれる命令の実
行中に無視されるべきことを示す。
【0024】例えば、図2において、8個の命令からな
るライン40は、Cベクトルと称されるCビット配列4
2と共にキャッシュ12から取出される。このCベクト
ル42は、ライン40の8個の命令の各々に対し1個
の、全部で少なくとも8ビットを含む。Cベクトル42
のそれぞれ番号が付けられたビットは、それぞれの命令
に対してCビットを構成する。例えば、Cビット1は命
令1(ISTR1)用の複合化タグである。命令取出し
発信装置14は、ライン40の命令を順次検査し、同時
にそれらのCビットを検査する。好ましい複合化方法に
よれば、もし2個の命令が並行して実行されるべき場合
に、最初の命令のCビットは1にセットされ、一方、次
の命令のビットは無視される。このことは例示としての
みにすぎず、複合化ビットの命令へのマッピング、又
は、複合化するためにグループ化できる隣接しあう命令
の数を限定するように意図するものではない。ライン4
0の最初の2個の命令が並行処理用にマークされたもの
と想定すると、最初の命令のCビットは1の値を有す
る。取出し発信装置14の論理は、最初の命令とその関
連CビットとをCIRL20とCフィールド22内へロ
ードする。取出し発信装置14の論理におけるゲート4
4は最初の命令の長さを復号化することによってイネー
ブルとされ、ライン40の第2の命令(INSTR2)
がCIRR21内へロードされることを可能にする。当
然、Cビット1の値がゼロの場合には、CIRR内へロ
ードされる命令はその後無視されるであろう。CIR1
9内の1個又は複数個の命令の実行が完了すると、取出
し発信装置は実行されるべき次の命令へ進み、上記のよ
うに作動する。
【0025】命令取出し発信装置14の正確な構造は本
発明の主題ではないので、本装置が、次の命令が単独
で、又は即座にそれに続く命令と並行して実行さるべき
か否かをその複合化タグに基づいて決定することが可能
な論理を含むことを言えば十分である。さらに、この論
理は複合化命令レジスタ19内のCビットを上記の如く
適切に検査することによってその判断を実行すると指摘
しておきたい。
【0026】命令取出し発信装置14内へ入力される時
点で、命令は目的コード形式である。命令は複合命令レ
ジスタ19内へ入力されると、本発明によるマイクロコ
ードを生成するマイクロコード生成器23によって復号
化される。マイクロコード生成器23は、複合命令レジ
スタ内の命令を制御記憶(CS)内に含まれるマイクロ
命令のシーケンスにマッピングすることによって復号化
する。上記シーケンスは一個又はそれ以上のマイクロ命
令を含むこともある。CIRL20の内容は、制御論理
24と主制御記憶(MCS)25とを経由してマイクロ
命令の第1のシーケンスへマッピングされる。それと同
時に、CIRR21の内容は、もしあれば、制御論理2
6と2次制御記憶(SCS)27とによってマイクロ命
令の第2のシーケンスにマッピングされる。CIRL2
0のCビットフィールドの内容がCIRR21内に命令
が含まれていることを示す場合には、MCS25によっ
て出力されたマイクロ命令の第1のシーケンスは、SC
S27によって出力されたマイクロ命令の第2のシーケ
ンスと併合装置29内で併合される。Cビットによって
CIRR21内に命令が含まれていないことが指示され
ると、併合装置29はSCS27の出力を無視し、マイ
クロ命令の第1のシーケンスに進んで実行する。
【0027】MCS25又はSCS27の何れか一方か
らマイクロ命令シーケンスを提供することは実質には従
来通りである。この点においてMCS25は、例えば、
マイクロ命令をアドレス可能な位置に格納する。従来、
マイクロ命令シーケンスの最初のマイクロ命令のアドレ
スはCIRL20内の命令の所定フィールドから取得さ
れている。例えば、IBMシステム/370命令集合の
場合、命令のOPコード(第1のバイト)はマシン命令
を実行すべくコード化されたマイクロ命令シーケンスの
MCSアドレス位置に対する基礎を形成する。マイクロ
命令シーケンスが単一のマイクロ命令よりも長い場合に
は、シーケンスの各マイクロ命令は、最後のものを除い
て、次のマイクロ命令のアドレスを次のアドレスフィー
ルド(NXA)のシーケンスに含む。このフィールドは
制御装置24へフィードバックされて、次のマイクロ命
令シーケンスのMCSアドレスを生成する。シーケンス
の第1のマイクロ命令は、ゼロ(又は別の所定値)をC
IRL命令のOPコードへ付加することによって見出さ
れる。マイクロ命令シーケンスの次には、後続マイクロ
命令のNXAフィールド内容が続く。
【0028】一般的に、MCS25内のマイクロ命令
は、シーケンスの終りにいつ到達されるかを示すための
フィールドを含むだろう。かくして、単一マイクロ命令
シーケンスの唯一のマイクロ命令と複数マイクロ命令シ
ーケンスの最後のマイクロ命令とが、このフィールド
(EOP又は操作終了フィールド)内に操作終了の信号
を送る表示を含むことになろう。SCISMアーキテク
チャにおいて、EOPフィールドはビット幅である。こ
のフィールド内のビットがセットされると、操作の終了
を意味する。セットされない場合には、操作は継続す
る。一般には、セットEOPビットを検出すると、もう
一つの実行用の命令を発するように信号を送る命令取出
し発信装置14に提供された操作終了(ENDOP)信
号が生成される結果となり、さらに、OPブレークアウ
トプロセスを開始する。
【0029】図1の説明に戻って、マイクロ命令シーケ
ンスは併合装置29によって実行パイプライン32へ渡
され、同パイプライン32は2個又はそれ以上の実行装
置34、36と汎用の記憶アドレスレジスタを含むこと
のできるレジスタ38のバンクとを制御する。
【0030】併合装置29は実行パイプライン32に対
し、実行装置34、36の動作及びそれらの装置とレジ
スタ間でのデータの転送を制御するのに適切なマイクロ
命令フィールドのみを渡す。それに関連して、マイクロ
命令は、マイクロプログラミングアドレス指定・分岐フ
ィールドとEOPフィールドとが失われた実行パイプラ
イン32へ渡される。残りのフィールドは命令を実行す
る上で必要な動作を制御するものである。以下に詳述さ
れるように、一定のフィールドは第1の実行装置34の
動作の制御に対し専用とされ、一方、他のフィールドは
第2の実行装置36の動作の制御に割当てられる。潜在
的に複合化可能な命令が単独で(恐らく、複合化するた
めの適切な次の命令がないことによって)実行されてい
る場合には、実行装置34のみが作動される。複合化不
能な命令は、実行装置34と36の双方を自由に使用す
ることができる。並列実行は、実行パイプライン32に
応答して実行装置34と36とが同時に動作することを
意味する。
【0031】図3において、マイクロコード生成器23
がより詳細に示される。後述されるように、基本的マイ
クロ命令のフォーマットはMCS25内に格納されたマ
イクロ命令に固有のものである。上記フォーマットは4
3で示され、現在アドレス指定されたMCSマイクロ命
令を表わす。先に論じたNXAとEOPフィールドの他
に、マイクロ命令43は分岐情報(BR)を含むフィー
ルドと、命令を実行する際に実行装置とレジスタを制御
するために必要な情報を含む制御フィールド(CTL)
と、を含む。MCS25用の制御装置は制御論理24
a、多重化装置24b、及び制御記憶アドレスレジスタ
(CSAR)24cを含む。CSAR24cの内容は、
アドレスのマイクロ命令がMCS25から読出されるこ
とに応答して、アドレス入力をMCS25へ提供する。
MCSの出力で利用可能な場合に、マイクロ命令は43
によって示されるフォーマットを有する。好ましくは、
MCS25は、必要に応じてプロセッサ使用のために確
保されたプロセッサメインメモリの補助メモリ領域から
送られることができるページ可能セクションを含む。制
御論理24aは次の命令アドレスをMCS25へ提供す
るという根本的な機能を実施し、2次的な機能は、ペー
ジアドレスを生成し、ページングされたデータのMCS
25内への入力を制御することである。制御論理24a
は、マルチプレクサ24bの制御によって次のアドレス
コンポーネントを選択する。選択は、CSAR内のカレ
ントアドレス、アドレス指定されたマイクロ命令のBR
とNXAフィールド、および現在マイクロ命令のEOP
フィールドの状態によって示される条件と実行パイプラ
イン32のアドレス生成段階のマイクロ命令の一定フィ
ールド中に示される分岐条件とによって実行される。
【0032】作動中に、命令が実行を完了させると、E
OPビットは制御論理24aをして次の命令の開始アド
レスをCSAR24c内に多重化させることによって、
最初のマイクロ命令が読出されることになろう。その
後、分岐フィールドと、アドレス指定フィールドと、最
初の命令と次の任意のマイクロ命令のEOPフィールド
と、によって、CIRL20で命令を実行するように設
計されたマイクロ命令の特定シーケンスがつくりだされ
ることになろう。このシーケンスが単一の命令シーケン
スである場合、第1のマイクロ命令のEOPビットがセ
ットされる。命令の制御部分が実行パイプライン32内
に配置されると同時に、制御論理24aはCIRL20
内で次の命令を待機するために、CSAR24cを初期
化する。1個以上の命令がシーケンス内に含まれている
場合、最後の命令のEOPフィールドは、最終命令が実
行パイプライン32内へ置かれると、CSAR24cを
初期化するだろう。
【0033】主制御記憶25は複合化できる命令のマイ
クロコードを含む。さらに、この記憶装置は、決して複
合化されない命令のためのマイクロコード、割込みハン
ドラ、及び雑マイクロコードを含む。好ましくは、MC
S25内に使用されるアドレスは16ビットであって、
全部で64kワードのアドレス指定可能な範囲を与え
る。アドレスゼロからアドレス4095までに存在する
マイクロコードはすべて固定であり、即ち、初期化中に
ひとたびロードされると、それはMCS25内に残る。
割当てられたアドレス4096以上のマイクロコード
は、プロセッサによる使用のために保存されたCPU主
メモリ(図示せず)中の補助記憶装置から要求時ページ
ングされる。
【0034】2次制御記憶27は256ワードのアドレ
ス空間を有する。このアドレス空間はMCS空間とは何
の関わりも有しない。SCSアドレス0乃至255は、
すべての複合可能なシステム/370の命令の第1のマ
イクロワードを含む。複合不可能な命令に相当するSC
S27内のアドレスはマルチサイクルの複合可能な命令
の第2の及び次のサイクルに対するマイクロコードを含
むために使用される。図3が示すように、SCS制御装
置の主要構成要素は、多重化装置26bと制御記憶アド
レスレジスタ(CSAR)26cである。この多重化装
置は下記の如く併合装置29により制御される。SCS
27のマイクロ命令のフォーマットは、参照符号45に
より示される。この点において、SCSマイクロコード
の条件付き分岐は不可能であるが、MCS25内で使用
されるものと類似した次のアドレスフィールド(NX
A)は、複数命令シーケンスにとって便利な手段であ
る。SCS25のアドレス空間が小さくなるほど、CI
RR21からのOPコードを提供し、その後、必要に応
じて、NXAフィールドからのアドレスデータを提供す
るだけですむ。現在アドレス指定されたマイクロ命令に
おけるセットEOPビットは、CIRR21内の次の命
令のOPコードの受取りに備えるために、CSAR26
cの内容を初期化する。
【0035】マイクロコード生成器の概要 図3のマイクロコード生成器によって実行される動作の
基本的シーケンスは、命令の開始をサイクルごとにパイ
プライン内へ導入することを可能にする5つのパイプラ
イン段階を含む。第1の段階であるIFは、命令の取出
しである。この段階は、マイクロコード生成器23から
のENDOP信号によって命令取出し発信装置に表わさ
れる。それに関連して、この段階では、複合命令キャッ
シュ又は命令バッファから命令が取り出される。IFサ
イクルの終りに、一個の命令又は一対の隣接する命令
が、命令の実行を開始するために、復号化のためのCI
R19内へロードされる態勢にはいる。
【0036】第2のサイクル又はパイプライン段階は、
命令解読(ID)と称される。このサイクルはCIRL
20、また適切であればCIRR21の論理解読によっ
て制御される。この点で、論理解読は、命令OPコード
を適切な制御記憶に提供し、そのOPコードを適切なC
SAR内へラッチすることを含む。パイプラインの次の
段階を制御するために必要な最初のマイクロ命令のアク
セスは「OPブレークアウト」と称される。OPブレー
クアウトは、マイクロ命令アドレスを生成するために、
命令のOPコードを使用した制御記憶をアクセスするこ
とから成る。記憶アドレス指定オペランドは必要なら
ば、このサイクル中に汎用レジスタ配列のコピーから取
出される。
【0037】アドレス生成(AGEN)サイクルは、記
憶装置から必要とされるオペランドの実効アドレスを計
算するために使用される。3個までアドレスオペランド
を追加してもよい。実行装置における次のサイクルで使
用されるオペランドもまた、本サイクルで汎用レジスタ
からアクセスされる。
【0038】実行(EX)サイクルは一個又はそれ以上
の実行装置における動作を実行するために使用される。
本サイクルは、記憶オペランドを要する命令に対するキ
ャッシュアクセスサイクルとしても使用される。大部分
のIBMシステム/370プロセッサにおいて、RXフ
ォーマットの加算、減算等の如き一定の命令は、その結
果を計算するために、別のEXサイクルがその後に続く
記憶装置から第2のオペランドを取り出すためにEXサ
イクルを必要とする。
【0039】プットアウェイ(PA)サイクルと称され
る最後のサイクルは、EXサイクルからの結果を汎用レ
ジスタ中に格納するためのものである。格納形式の命令
に対しキャッシュ内へのデータの格納は、それらが次の
取出し動作によって遅延されない限り、本サイクルにお
いても行なうことができる。
【0040】図3のマイクロコード生成器において固有
であるのは、明示的なIDサイクルが存在しない点を除
いてIBMシステム/370命令のパイプラインを模擬
したマイクロコードパイプラインである。その代わり、
AGENサイクルがマイクロワードの取出しサイクルの
直後に来る。これは、AGENサイル中に使用されるマ
イクロ命令部分が水平で、最小限の解読ですむために可
能である。実行パイプライン32は最後の3段階を含
み、その各々は3個のレジスタ32a、32b及び32
cのうちのそれぞれ一個によって表わされる。上記シー
ケンスの後に、レジスタ32aはAGENサイクルを表
わし、アドレス命令レジスタ(AIR)を含む。マイク
ロ命令は、併合装置29からこのレジスタ内へ流れ込
み、AGENサイクル動作を制御するために、パイプラ
インクロックの1サイクルの間レジスタ内で保持され
る。この点で、アドレス生成を制御するために必要なマ
イクロ命令中の関連制御フィールドにアクセスされる。
次のパイプラインクロックサイクルにおいて、マイクロ
命令はEX命令レジスタ32bへ転送され、そこで実行
装置動作を制御するフィールドにアクセスされる。最後
にマイクロ命令は、実行サイクル中に生成される結果を
格納するために必要とされる動作を制御するために、次
のパイプラインクロックサイクルでプットアウェイ命令
レジスタ(PIR)32cへシフトされる。
【0041】レジスタ32a、32b及び32cのシー
ケンスに対するシフト制御は、パイプラインクロッキン
グと同様に、従来方法による。パイプラインは機械命令
の並行実行を支援する。
【0042】図4は、MCS25とSCS27のEOP
フィールドによるCIRL部分の制御を示した概略図で
ある。これらのフィールドはそれぞれ、MCSのEND
OP信号とSCSのENDOP信号とに解読される。以
下に述べるように、これらの信号は、装置14内で命令
の取出しと発令とを同期化するための併合装置29によ
り生成されるENDOP信号のプリカーソルである。何
れかの信号が低く(ローであり)、マイクロ命令シーケ
ンスが完了されていないことを示している間は、AND
ゲート70の出力は低い(ローである)。これによっ
て、命令ゲート71、72及び73は使用禁止とされ、
左手命令、その関連Cビット、および右手命令のCIR
L20とCIRR21内への進入が妨げられる。AND
ゲートの出力が低い間は、インバータ75はゲート7
7、79、80を活動(アクティブ)状態に保持し、こ
れによってCIR19の内容を再び循環させる。
【0043】ENDOP信号が活動状態の場合、MCS
及びSCSのENDOP信号は共に活動状態である。そ
れに応答して、命令取出し発信装置14はそのCビット
を有する単一命令をCIRL20内へ送るか、又は左手
命令と一対の複合命令のCビットとをCIRL20と右
手命令CIRR21内へ送り込む。命令とそれに付随す
るCビットはゲート71、72、73によりゲートされ
る。複合命令レジスタ内へシフトされる間、OPコード
はそれと同時にCSAR内へ登録される。複合命令レジ
スタ内へ入ることにより、マイクロコード生成器の解読
段階が駆動される。CIRL20からのOPコードはC
SAR24cでラッチされ、初期のOPブレークアウト
アドレス動作に使用される。複合化された一対の命令の
場合、CIRR21からのOPコードはCSAR26c
へゲートされ、SCS27をアクセスするために使用さ
れる。
【0044】マイクロ命令の併合 MCS25は、すべての命令について完全マイクロコー
ドを含み、一方、SCS27は、複合化されたペア内に
右手又は第2の命令として複合可能な命令に対して必要
とされるマイクロ命令の部分のみを含む。併合は、必要
とあらば、図5に示すように併合装置29内で達成され
る。併合装置29のタスクは、SCS27からのフィー
ルドをMCS25からのフィールドと併合することによ
って合成マイクロ命令を生成し、CIRL20とCIR
R21の内容を解読することによって他のフィールドを
生成することである。図5は、AIR32aで登録され
た併合マイクロ命令の関連フィールドを示すもので、こ
れは、併合装置29の直後に来るものである。SCIS
Mの実施例において、完全なマイクロ命令は少なくとも
34個のフィールドを含む。少なくともフィールド1−
5、7−9、12及び34は、MCS25ではそれらの
形式から変化されない。少なくともフィールド6、1
0、11及び19はSCS27内の対応するフィールド
の内容によってMCS25内のそれらの状態から変化さ
れることができる。更に、フィールド19は併合装置2
9のハードウェア(HW)84から変更可能である。フ
ィールド6、10、11、13及び19のデータ源は、
それぞれマルチプレクサ(MUX)90、91、92及
び94の状態によって決定される。本発明は、併合マイ
クロ命令を生成するこれらのマルチプレクサによる特定
の行動を考慮したものである。
【0045】併合マイクロワードを形成することの可能
な第1の行動は、SCS27からのフィールド値をMC
S25からのマイクロ命令内のフィールド値に置き換え
ることによって実行される。ハードウェア資源が命令の
内の一個の実行に対し専用とされ、他の命令には必要と
されないことが予め知られている制御フィールド内で
は、直接の置換が保証される。即ち、それは共用の実行
装置ではない。例えば、CIRL20内の命令は加算レ
ジスタ5、3の形をとり、一方CIRR21内の命令は
加算レジスタ1、2の形をとることができよう。第1の
加算命令は図1における実行装置34を使用し、一方、
第2の加算命令は実行装置36を使用するものと仮定す
る。オペランドを第2の実行装置に転送する必要がない
ので、オペランドの取出しを制御するために使用される
フィールドと第2の実行装置を制御するために使用され
るフィールドとは、SCSによって規定された状態から
修正される必要はない。左手命令に対するMCS25内
のマイクロ命令は実行装置34を制御するフィールドを
有し、その実行装置に対するオペランドの取出しは通常
の方法で命令を実行するためにコード化される。実行装
置36を制御するためのフィールドは実際にMCS25
内のマイクロ命令に存在するが、実行装置34のみで実
行するために、第1の加算の実行を制御するのに必要で
はない。第2の加算命令に対するSCS27内のマイク
ロ命令が実行装置36を使用するために常にコード化さ
れるのは、SCISMアーキテクチャによって、第2の
命令としての加算レジスタの実行がこの実行装置内で行
われることが要求されるからである。実行装置34で実
行を制御するために必要とされるフィールドは、SCS
27には存在しない。
【0046】複合命令のペアのうち第2の命令の実行
は、第1の命令の実行を決して変化させることはないの
で、第1の命令を実行するために必要とされるマイクロ
コードフィールドは常に不変のまま、MCS25からA
IR32a内へゲートされる。第1の命令の実行が第2
の命令に対するオペランド読出し又は実行装置の動作と
干渉しない場合、第2の実行装置を制御するSCS27
内の制御フィールドFの値はMCS25から来るFフィ
ールドの値に直接置き換えられる。このようにフィール
ド置換にふさわしい併合装置論理が図6(a)に示され
る。SCS27からのフィールド値を併合装置29によ
って置換することは、CIRLのCビットフィールドに
よって制御されるANDゲート85において実行され
る。Cビットがセットされると、ANDゲート85は使
用可能となり、フィールドFに対する制御値を提供し、
インバータ86はANDゲート87を使用禁止にしてM
CS25の出力を阻止する。ORゲート88はAIR3
2a内のFフィールド位置への入力を制御し、ANDゲ
ート85とANDゲート87の出力を入力として受信す
る。
【0047】図6(b)は、MCS又はSCSの何れか
一方が共用ハードウェア資源を好都合に制御することを
可能にするものであるが、両者がそれを同時に制御する
ことは不可能であるという限定つきである。併合装置2
9は、左手又は右手の命令がフィールドFにより制御さ
れる共用の実行資源を使用するかどうかを決定するため
の演繹的方法を有さず、むしろこの情報はCビットの設
定に内在する。図6(b)の回路の動作は、ここに述べ
られた非共用資源の例のそれと同様であるが、但し、制
御フィールドF’のデフォルト値がゼロになる点を除く
ものである。その後、Cビットは単にANDゲート85
を使用可能にするだけであり、その出力はMCS25内
で現在アドレス指定された制御フィールドF’と直接論
理和がとられることになる。
【0048】さて、第1の命令の結果が第2の命令に対
する入力として(論理上)要求されるように先のケース
が修正変更されたものと仮定する。制御記憶に必要とさ
れるメモリ量を完全に制限するために、SCS27はイ
ンターロック縮小装置によって命令の個々の実行を支援
するために必要とされるマイクロコードのみを含む。従
って、データインターロックに直面すると、インターロ
ック崩壊実行装置の動作を制御するマイクロ命令中の一
定のフィールドは、SCS27を使用するよりはむしろ
論理によって生成させなければならない。例えば、左手
命令がSR1、4であると仮定する(レジスタR4の内
容をレジスタR1の内容から減算し、その結果をレジス
タR1内に置く)。第2の命令がAR3、1であると仮
定する。AR命令はSR命令の次に来るから、それらの
命令の非並列実行によってSR命令がAR命令の実行時
にレジスタR1内の結果を変更させることが認められ
る。然しながら、これらの命令を並列的に実行するには
インターロック崩壊実行装置の制御フィールドが必要と
され、同フィールドは事実上、実行装置に対しそれが3
個のオペランド(R3+R1−R4)を結合し、その内
容をレジスタR3に置く必要があることを示している。
【0049】図7は、併合装置29がインターロック依
存性を検出し、インターロック依存ケースを指示するた
めに第2の実行装置を制御するマイクロ命令フィールド
Fを適切に条件付けるための方法を表わしている
【0050】図7の構造と動作は、複合化ペアの2個の
命令どうしの間に存在するインターロック条件を認識す
るハードウェアによって併合装置29でフィールド値が
置換されることを示す。同図はIBMシステム/370
型の命令を仮定している。かくして、上記のSRとAR
命令の場合、各命令の最初の2バイトをチェックするこ
とによってデータ依存性を発見することができる。各命
令の最初のバイトは命令のOPコードを含み、一方、第
2のバイトは命令オペランドを含むレジスタを識別す
る。従って、併合装置29におけるフィールド置換ハー
ドウェアは、命令の特定のペアを識別し、上記2個の命
令が共通のオペランドで作動しているかどうかを決定し
なければならない。特に、かかる命令が最初に命令を類
別して、その後で所定のカテゴリー間の複合化を可能に
する規則に基づいて複合化される場合、併合装置29は
それらの類別を識別し、オペランドレジスタの等価性を
テストすることが可能でなくてはならない。
【0051】これらの条件は図7においてテストされ
る。左右の両命令のオペランドはそれぞれ、オペランド
デコーダ91、92で解読される。デコーダ91が類別
1(CAT I)命令のみを探す場合、左手命令がその
類別に存在すると、その出力を活動化させることにな
る。右手デコーダ92は、右手命令が類別1の命令と複
合化できる命令群の類別のうちの一個にあると、それぞ
れの信号を活動化させるものと仮定する。左手デコーダ
91の出力はその後、複数ANDゲート97、98のう
ちの各々に送られて、各ANDゲートはさらに右手デコ
ーダ92からそれぞれの類別妥当性検査信号を受取る。
オペランドテスト回路94は、命令間のデータインター
ロックをテストするために、各オペランドからレジスタ
識別フィールド(RA及びRBと称する)を受取る。検
出器94の出力は、第1の命令の第1のレジスタが第2
の命令の何れかのレジスタと同一である場合にのみ活動
化され、上記同一性は第1の命令の結果が第2の命令の
入力として論理的に要求されることを意味する。この出
力はまた、ANDゲート97、98にも送られる。OR
ゲート99はANDゲート97、98の出力を収集し、
ORゲート99の出力はCビットが1である場合に使用
可能となるANDゲート90へ送られる。ANDゲート
90の出力はゲート回路100へ送られる。ゲート回路
100は2つの入力を受取る。その一つは図6に示され
た置換回路に実質的に一致するマルチプレクサからの入
力で、二つめはハードウェアフィールド設定回路105
からの入力である。ハードウェアフィールド設定回路1
05は、インターロック状況が発生すると、フィールド
Fを実行装置36の3オペランド操作に適切な値にセッ
トするよう作動する。
【0052】かくして、上記の2個の命令がCIRL2
0とCIRR21内へロードされ、両方の命令が類別1
の命令であって、類別1の命令が複合可能であると仮定
する。右手命令のOPコードはデコーダ92へ渡され、
命令のレジスタフィールド内容は検出器94へ渡され
る。それと同時に、左手命令のOPコードはデコーダ9
1へ提供され、オペランドレジスタフィールド内容は検
出器94へ提供される。左手命令は更新結果を格納する
ためにレジスタR1を活用し、右手命令はレジスタR1
の内容を使用しているので、インターロックが存在し、
回路105のフィールド値はAIR32aのFフィール
ドへ入力されなければならない。このことは、デコーダ
91と92からのCAT I出力の活動化及び、検出器
94からの出力の活動化によって達成される。これによ
って、ANDゲート97は活動化され、その出力はOR
ゲート99を介してANDゲート90の入力に送られ
る。ANDゲート90の出力はゲート100の制御入力
へ送られる。ゲート100は、ORゲート99の出力が
活動状態である時に回路105の出力を選択するように
設計されている。従って、フィールドFはハードウェア
回路105によって決定される値に設定されるだろう。
【0053】不等長のマイクロ命令シーケンスの併合 対の命令のすべてが、同数のサイクルを実行しなければ
ならないわけではない。従って、併合装置内には不等長
のマイクロ命令シーケンスの併合を収容するための機構
を設ける必要がある。複合化プリプロセッサの本実施例
は、対の又は複合化の命令のすべてを1サイクル又は2
サイクルのマイクロ命令シーケンスに限定することが望
ましい。この点で、上記命令は1個又は2個のEXサイ
クルを要する。ペアリング(組み合わせ)に応じて、2
サイクルシーケンスの第1又は第2のEXサイクル中に
1サイクルマイクロ命令シーケンスが実行されなければ
ならない。左手命令は単一のサイクルを要する場合、即
座に実行することができる。然しながら、右手命令が単
一のサイクルを要する場合には、そのマイクロ命令は遅
れる。双方の場合において、シーケンスの終りを同一の
パイプラインクロック周期に同期させることによって不
等長が収容される。
【0054】左手命令が単一の実行サイクルを要する場
合、各動作に対する第1のマイクロ命令は命令解読サイ
クルで取出され、AIRレジスタ32aで始まるパイプ
ライン中へ送られる。全てのマイクロコードシーケンス
の最後のマイクロ命令において、EOPビットは、次の
命令の解読を開始させるために、解読用ハードウエアに
合図するように設定される。単一サイクル命令の場合、
このフィールドは活動化される。MCS25内のそれぞ
れの潜在的に複合可能な単一サイクルマイクロ命令シー
ケンスの次のアドレスフィールドは、そのEOPビット
セットを有する非演算(NOP)マイクロ命令に指示す
る。NOPマイクロ命令のNXA値はNOPマイクロ命
令に指示する。併合装置29はこのNOPマイクロ命令
をMCS25から取出し、それを第2のサイクル中に対
の右手命令に対しSCS27から取出された第2のマイ
クロ命令と併合する。NOPマイクロ命令は妨害なしに
他のマイクロ命令と併合することもできる。即ち、それ
はデータフロー機能を活用しないので、その制御フィー
ルドは非OPコード又はデフォルトコードによりコード
化される。右手命令のシーケンスの最後のマイクロ命令
もまたそのEOPビットセットを有し、EOPが両方の
シーケンスについて検出されると、複合命令は完了さ
れ、パイプラインは次の機械命令へと進む。
【0055】ここに述べられた状況は図8に示され、M
CS25とSCS27の出力は2個の続くパイプライン
クロックの周期中に示される。これらの周期はt及びt
+1と呼ばれる。左手命令は単一サイクル命令であり、
左手OPコード(OPL)に指示されるマイクロ命令
は、NOP命令とそのNXAフィールドに対するポイン
タと、そのEOPビットセットと、左手命令実行用のそ
の制御フィールド内の適切な値によってコード化され
る。このマイクロ命令は、右手命令についてSCSから
出力されるマルチサイクルシーケンスの第1のマイクロ
命令と同時にパイプラインクロック周期tでMCSから
出力される。第1のSCSマイクロ命令は右手命令のO
Pコード(OPR)によって示されるアドレス位置にあ
る。第1のSCSマイクロ命令のNXAフィールドはシ
ーケンス中の次のマイクロ命令のアドレスに対するポイ
ンタNXTを有し、そのEOPビットは0に設定され、
その制御フィールドは実行装置36に対して適切にコー
ド化される。パイプラインクロック周期t+1では、N
OP命令はMCSから出力される一方、アドレスNXT
における命令がSCSによって出力される。ここで、両
シーケンスに対するEOPビットが設定され、併合装置
によるENDOPビットの生成が可能になり、次の機械
命令が取出される。
【0056】図9は、図8に示されたシーケンス等化プ
ロセス中におけるENDOP生成を実行するために必要
な論理を示している。図9において、併合装置29はM
CS25のEOPフィールドでの値を受取るANDゲー
トを含む。また、ゲート124はORゲート122も受
取る。ORゲート122は、SCS25のEOPを受取
ると同時に、120で反転されたCビット値を受取る。
さて、単一実行サイクルを要する左手命令が1以上の実
行サイクルを要する右手命令によって複合化されるもの
と仮定する。左手命令のマイクロ命令シーケンスは単一
のマイクロ命令のみを必要とし、一方、右手命令のシー
ケンスは1以上のマイクロ命令を必要とする。パイプラ
インサイクル周期tの間、MCSからの第1のマイクロ
命令はANDゲート124に送られるEOPを活動化さ
せる。然しながら、Cビットは120で反転されて、S
CS25のEOPビットはまだ設定されていない。その
ため、ANDゲート124の出力は低く、ENDOP信
号を使用禁止にすることになる。パイプラインサイクル
周期t+1では、SCS25によって出力されたEOP
は活動化され、ORゲート122の出力は上昇するの
で、これにより、ANDゲート124により出力される
ENDOP信号は活動化される。ENDOP信号の活動
化によって、次の機械命令の取出しは現在複合化された
ペアに必要なすべての実行サイクルの完了に同期化され
る。
【0057】インバータ120の重要性は、CIRR2
1内に何ら妥当な命令が存在しない場合、SCSのEO
Pがオンに強制されて、左手命令のマイクロ命令シーケ
ンスが完了されると、ENDOP信号を生成するために
ANDゲート124を使用可能にするものであり、MC
S25からのEOPの活動化によって示される。
【0058】MCSからのNOPマイクロ命令をSCS
からのマイクロ命令シーケンスと併合するための技術と
メカニズムは図示の例に限定されるものではない。一般
的に、MCSシーケンスがSCSシーケンスよりも短い
場合はいつも、NOPマイクロ命令をMCSによって出
力されたマイクロ命令シーケンスに付加する方法を使用
することができる。NOPマイクロ命令のNXAフィー
ルドがそれ自身に指示することで十分である。
【0059】図9を別に具体化すると、MCSシーケン
サにより出力されたEOPをラッチし、それをEOPが
SCSシーケンスについても検出されるまでラッチ内で
保持することである。この期間において、併合マイクロ
命令のMCS制御によるフィールドはゼロ、又はNOP
デフォルト値に設定することができる。
【0060】図10は、一対の複合化命令の発信に応答
して、右手命令に対して生成されたマイクロ命令シーケ
ンスが左手命令のものよりも短い状態を示している。こ
の場合、右手OPコード(OPR)の解読は、左手命令
の第1の実行サイクルの後まで遅らされる。かかる遅延
の理由は、両方の命令が共用の資源に対するアクセスを
必要とするかどうかということにある。例えば、左手命
令がRXフォーマット加算(ADD)である場合、2個
の実行サイクルが必要とされることになろう。第1の実
行サイクルは記憶装置からオペランドを取出し、一方、
第2の実行サイクルはそれらオペランドを加算すること
になろう。右手命令がRXフォーマットロード命令であ
ると仮定する。これは第2のオペランドがメモリから取
出されて、レジスタに配置される単一の実行サイクル命
令である。右手命令の単一のマイクロ命令シーケンスの
遅延は、RX加算命令の第1のサイクルとの資源競合を
回避するために必要とされる。右手命令の単一のマイク
ロ命令シーケンスが遅れて左手命令の2マイクロ命令シ
ーケンスのうちの最後のものと整合する場合の手順が図
10に示される。第1のシーケンスの最初のマイクロ命
令は、左手オペランド(OPL)を解読することによっ
てMCS25から取得される。パイプラインクロック周
期tで利用可能なこのアドレスのマイクロ命令は、AI
R32a内へ入力される。次のパイプラインクロック周
期(t+1)では、アドレスNXTのマイクロ命令はM
CSから利用可能である。右手命令のシーケンスの単一
のマイクロ命令は、右手命令(OPR)のOPコードを
解読することによって取得されるSCSアドレスにあ
る。左右の両命令はCIR19に同時に入力されるの
で、右手命令のOPコードはパイプラインクロック周期
tにおいて利用可能である。この実施例では、併合装置
は資源競合の可能性の発生を検出して、パイプライン周
期t+1まで右手命令のOPコードを保持する。一方、
クロック周期tの間、SCSはアドレス指定位置におい
てマイクロ命令を出力し続ける。SCSからのマイクロ
命令の併合はパイプライン周期tの間で防止される。こ
のため、SCSからの1サイクルマイクロ命令の併合は
パイプライン周期t+1まで有効に遅らせられる。
【0061】図11は、図10の手順の実行を示す。C
IRL20のRX−フォーマット加算命令は「5A」
(16進数)に解読され、一方、RX−フォーマットロ
ード命令は「58」へ解読されると仮定する。この場
合、デコーダ120と121の出力はそれぞれ活動化さ
れ、ANDゲート122の出力を活動化する。ANDゲ
ート122はカウンタ123へ送られ、同カウンタ12
3はOPRアドレスが遅らされるパイプラインクロック
周期の数をカウントする。この場合、1周期の遅れしか
必要でないのは、そのことはカウンタ123がラッチで
パイプラインクロック周期t中にANDゲート122の
活動化によって設定されて、周期t+1の始めにリセッ
トされることを意味する。ORゲート124は、対の命
令どうしの間の資源競合の発生を検出してその競合を補
償するために必要なクロック周期数をカウントダウンす
る他の回路の出力を収集する。ORゲート124はそれ
に給電する資源競合検出回路に応答してその出力を活動
化する。この出力は、ORゲートを活動化するそれぞれ
のカウンタによってカウントされる多数のパイプライン
サイクルクロック周期にわたって、活動状態にあること
になる。ホールド(保持)SCSAR信号は資源競合を
解決するために必要とされる間活動状態にあることにな
ろう。この信号が活動化されている間は、ホールドクロ
ック回路はパイプラインクロックのSCSAR26cへ
の提供を妨げることになろう。ホールドSCSAR信号
が非活動状態でない場合、クロックがSCSARへ提供
されて、その内容は変更される。これはLSSDラッチ
のペアL1/L2によって表わされる。この構成はパイ
プラインクロックが多相信号で、第1の位相がCSAR
26cの第1のラッチ部分L1に送られ、一方、第2の
位相が第2のラッチ部分L2へ送られることを仮定して
いる。ホールドクロック回路125はSCSARのL2
部分を作動するクロック位相の提供を阻止する。かくし
て、OPコードがCIR21の入力で利用可能な場合、
それは同じパイプラインクロック周期中にSCSARの
L1部分へラッチされる。その後、それは、ホールドク
ロック信号が活動状態の場合、SCSARのL2部分に
保持される。ホールドSCSAR信号の非活動化に続い
て、SCSAR26cのL2部分は次の右手命令のOP
コードをラッチし、SCSAR26cはアドレスOPR
をSCS27へ提供する。
【0062】以上、本発明を好適例に関して特に説明し
たが、同方法はスケール化可能な複合命令マシンにおけ
るマイクロコードの生成に焦点をあてたものであること
を理解すべきである。その他に、IBMシステム/37
0によって実行されるもの以外のマシンレベル命令の集
合体を考えることができる。本発明の範囲は2個以上の
命令を含む複合命令群をも包含するものである。
【0063】
【発明の効果】本発明は上記のように構成されているの
で、2個又はそれ以上の命令を実行時に先立って並列実
行するためにグループ化するスケール化可能な複合命令
集合マシンでマイクロコードを生成することができる。
【図面の簡単な説明】
【図1】複合化命令の組み合わせに対してマイクロコー
ドを生成するための装置を含むスケール化可能な複合命
令集合マシンのブロック図である。
【図2】複合化命令を送り出すために複合情報をどのよ
うに使用するかを示す部分概略図である。
【図3】本発明の装置の主要要素を示すブロック図であ
る。
【図4】複合命令レジスタの詳細を示す概略図である。
【図5】図3に示す装置において2個のマイクロ命令シ
ーケンスが一個の併合装置内でどのように併合されるか
を詳細に示す概略図である。
【図6】(a)及び(b)は2個のマイクロ命令シーケ
ンスにおける一個のマイクロ命令からマイクロ命令フィ
ールド情報を選択するための併合装置の詳細を示す図で
ある。
【図7】ハードウェア源からマイクロ命令フィールド情
報を選択する併合装置の詳細を示す図である。
【図8】2個の不等長の併合マイクロ命令シーケンスが
第1の条件集合に応答して同時に終了された状態を示す
図である。
【図9】図8に示された機能を実行する併合装置の詳細
を示す概略図である。
【図10】2個の不等長の併合マイクロ命令シーケンス
が第2の条件集合に応答して同時に終了された状態を示
す図である。
【図11】図10の手順を実行する併合装置の詳細を示
す概略図である。
【符号の説明】
23 マイクロコード生成器 24、26 制御記憶装置 29 併合装置 34、36 実行装置

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】命令が単独且つ並行して実行可能であり、
    命令群の並列実行がその命令の実行に先立ち生成される
    複合化情報によって表示されるコンピュータにおいて、
    命令群に対しマイクロコードを生成するために装置であ
    って、 前記命令群のうちの最初の命令を実行するための、マイ
    クロ命令の第1のシーケンスを提供する第1のマイクロ
    命令記憶装置と、 前記命令群の第2番目の命令を実行するための、マイク
    ロ命令の第2のシーケンスを提供する第2のマイクロ命
    令記憶装置と、 前記複合化情報に応答して第1と第2のマイクロ命令の
    シーケンスをマイクロ命令の合成シーケンスに結合する
    ための、前記第1と前記第2のマイクロ命令記憶装置に
    接続され、且つ、マイクロフィールド値信号を生成する
    ためのハードウェアフィールド設定手段とハードウェア
    フィールド設定手段からのマイクロ命令フィールド値、
    マイクロ命令の第1のシーケンス、又はマイクロ命令の
    第2のシーケンスを複合化情報に応じて前記マイクロ命
    令の合成シーケンス内へ選択的に入力するためのハード
    ウェア手段と第1と第2のマイクロ命令記憶装置とに接
    続された多重化手段とを有する、併合手段と、 前記マイクロ命令の合成シーケンスのパイプライン方式
    実行のための、併合手段に接続された手段と、 を含む命令群用マイクロコード生成装置。
  2. 【請求項2】前記第1のマイクロ命令のシーケンスは、
    第1の命令の実行を制御する第1のフィールドと第2の
    命令の実行を制御する第2のフィールドとを有するマイ
    クロ命令を含み、 前記パイプライン方式実行用手段はマイクロ命令を受取
    るためのレジスタ手段を含み、 前記併合手段は、マイクロ命令の第1又は第2のシーケ
    ンスの何れかからのフィールド情報を複合化情報に応答
    してマイクロ命令の第2のフィールド内へ入力するため
    の、第1と第2のマイクロ命令記憶装置とレジスタ手段
    とに接続された多重化手段を含む、 請求項1記載の命令群用マイクロコード生成装置。
  3. 【請求項3】命令が単独又は並行して実行され、命令群
    の並列実行は同命令を発するに先立って生成される複合
    化情報によって指示されるコンピュータにおいて、 少なくとも2個の命令と、複合化レジスタ手段内の命令
    が同時に実行さるべきことを示す複合化情報と、を受取
    る複合命令レジスタ手段と、 複合命令レジスタ内の第1の命令に応答して、マイクロ
    命令の第1のシーケンスを提供するための、前記複合命
    令レジスタ手段に結合された第1のマイクロ命令記憶手
    段であって、前記マイクロ命令の第1のシーケンスは、
    前記命令群のうちの第1の命令の実行を制御する第1の
    フィールドと、前記命令群のうちの第2の命令の実行を
    制御する第2のフィールドとを有するマイクロ命令を含
    む第1のマイクロ命令記憶手段と、 命令群のうちの第2の命令を実行するためのマイクロ命
    令の第2のシーケンスを提供するための、前記複合命令
    レジスタに接続された第2のマイクロ命令記憶手段であ
    って、前記マイクロ命令の第2のシーケンスは、マイク
    ロ命令群のうちの第2の命令を実行するための信号を含
    むフィールドを有するマイクロ命令を含む第2のマイク
    ロ命令記憶手段と、 マイクロ命令の第1と第2のシーケンスを複合化情報に
    応答してマイクロ命令の合成シーケンス内に結合するた
    めの前記第1と第2のマイクロ命令記憶手段と複合命令
    レジスタ手段とに接続された併合手段であって、前記マ
    イクロ命令の合成シーケンスは命令群の第1シーケンス
    の第1と第2のフィールドを含み、第2のフィールドは
    第2の命令を実行するための信号を含んでいる併合手段
    と、 マイクロ命令の合成シーケンスに応答して第1と第2の
    命令を並行して実行するための、前記併合手段に接続さ
    れたパイプライン方式実行手段と、 を含むコンピュータにおける組合せ装置。
  4. 【請求項4】マイクロ命令の第1のシーケンスにおける
    マイクロ命令の数とマイクロ命令の第2のシーケンスに
    おけるマイクロ命令の数とは不等であり、前記併合手段
    は複合化情報に応答してマイクロ命令の第1と第2のシ
    ーケンスの完成を同期化させる手段を含む請求項3記載
    のコンピュータにおける組合せ装置。
  5. 【請求項5】マイクロ命令の第1のシーケンスにおける
    マイクロ命令の数とマイクロ命令の第2のシーケンスに
    おけるマイクロ命令の数とが不等であり、前記併合手段
    は第1と第2の命令に応答してマイクロ命令の第1と第
    2のシーケンスの完成を同期化させる手段を含む請求項
    3記載のコンピュータにおける組合せ装置。
  6. 【請求項6】前記同期化手段は少なくとも一つの非演算
    マイクロ命令をマイクロ命令の第1のシーケンスに追加
    するための手段を含む請求項5記載のコンピュータにお
    ける組合せ装置。
  7. 【請求項7】前記同期化手段はマイクロ命令の第2のシ
    ーケンスをマイクロ命令の第1のシーケンスに対して遅
    延させるための手段を含む請求項5記載のコンピュータ
    における組合せ装置。
  8. 【請求項8】前記併合手段は、第1と第2のマイクロ命
    令シーケンスからのマイクロ命令フィールドを複合化情
    報に応答して選択するための第1と第2のマイクロ命令
    記憶手段に接続された多重化手段を含む請求項3記載の
    コンピュータにおける組合せ装置。
  9. 【請求項9】前記併合手段は、 マイクロ命令フィールド値信号を生成するためのハード
    ウェアフィールド設定手段と、 前記ハードウェアフィールド設定手段からのマイクロ命
    令フィールド値、マイクロ命令の第1のシーケンス又は
    マイクロ命令の第2のシーケンスを複合化情報に応答し
    て第2のフィールド内へ選択的に入力するための前記ハ
    ードウェアフィールド設定手段と第1と第2のマイクロ
    命令記憶手段とに接続された多重化手段と、 を含む請求項3記載のコンピュータにおける組合せ装
    置。
  10. 【請求項10】マイクロ命令の第1のシーケンス中のマ
    イクロ命令の数とマイクロ命令の第2のシーケンス中の
    マイクロ命令の数とが不等であり、前記併合手段は少な
    くとも一つの非演算マイクロ命令をマイクロ命令の第1
    のシーケンスに追加することによってマイクロ命令の第
    1と第2のシーケンスの完成を複合化情報に応答して同
    期化させる手段を含む請求項1記載の命令群用マイクロ
    コード生成装置。
  11. 【請求項11】マイクロ命令の第1のシーケンス中のマ
    イクロ命令の数とマイクロ命令の第2のシーケンス中の
    マイクロ命令の数とが不等であり、前記併合手段は、マ
    イクロ命令の第2のシーケンスをマイクロ命令の第1の
    シーケンスに対して遅延させることによって第1と第2
    のマイクロ命令のシーケンスの完成を第1と第2の命令
    に応答して同期化させる手段を含む請求項1の命令群用
    マイクロコード生成装置。
  12. 【請求項12】命令群が単独且つ並行して実行可能であ
    って、命令群の並列実行を表示する信号を生成する手段
    を含むコンピュータにおいて、命令群に対しマイクロコ
    ードを生成するための装置であって、 前記命令群のうちの最初の命令を実行するためのマイク
    ロ命令の第1のシーケンスを提供する第1のマイクロ命
    令記憶装置と、 前記命令群のうちの第2の命令を実行するためのマイク
    ロ命令の第2のシーケンスを提供する第2のマイクロ命
    令記憶装置と、 第1と第2のマイクロ命令シーケンスを上記信号に応答
    してマイクロ命令の合成シーケンスに結合するための、
    第1と第2のマイクロ命令記憶装置に接続された併合手
    段と、 マイクロ命令の合成シーケンスのパイプライン方式実行
    のための、併合手段に接続された手段と、 を含む命令群用マイクロコード生成装置。
  13. 【請求項13】前記併合手段は、前記信号に応答して第
    1と第2のマイクロ命令シーケンスからマイクロ命令フ
    ィールドを選択するための、第1と第2のマイクロ命令
    記憶装置に接続された多重化手段を含む請求項12記載
    の命令群用マイクロコード生成装置。
  14. 【請求項14】前記併合手段は、マイクロ命令フィール
    ド値信号を生成するハードウェアフィールド設定手段
    と、 前記ハードウェアフィールド設定手段からのマイクロ命
    令フィールド、マイクロ命令の第1のシーケンス、又は
    マイクロ命令の第2のシーケンスを前記信号に応答して
    マイクロ命令の合成シーケンス内へ選択的に入力するた
    めの前記ハードウェアフィールド設定手段と第1と第2
    のマイクロ命令記憶装置とに接続された多重化手段と、 を含む請求項12記載の命令群用マイクロコード生成装
    置。
  15. 【請求項15】マイクロ命令の第1のシーケンスは、第
    1の命令の実行を制御する第1のフィールドと第2の命
    令の実行を制御する第2のフィールドとを有するマイク
    ロ命令を含み、 前記パイプライン方式実行用手段はマイクロ命令を受取
    るためのレジスタ手段を含み、 前記併合手段は、マイクロ命令の第1又は第2のシーケ
    ンスのどちらかからのフィールド情報を前記信号に応答
    してマイクロ命令の第2のフィールド内へ入力するため
    の前記第1と第2のマイクロ命令記憶装置とレジスタ手
    段とに接続された多重化手段を含む、 請求項12記載の命令群用マイクロコード生成装置。
  16. 【請求項16】命令が単独又は並行して実行され、命令
    群の並列処理が信号によって表示されるコンピュータに
    おいて、 同時に実行さるべき少なくとも2個の命令を受取る複合
    命令レジスタ手段と、複合命令レジスタ手段内の第1命
    令に応答してマイクロ命令の第1のシーケンスを提供す
    るための、複合命令レジスタ手段に結合された第1のマ
    イクロ命令記憶手段であって、前記マイクロ命令の第1
    のシーケンスは第1命令の実行を制御する第1のフィー
    ルドと複合命令レジスタ手段の第2の命令の実行を制御
    する第2のフィールドとを有するマイクロ命令を含む第
    1のマイクロ命令記憶手段と、第2の命令の実行用にマ
    イクロ命令の第2のシーケンスを提供するための、複合
    命令レジスタ手段に接続された第2のマイクロ命令記憶
    手段であって、前記マイクロ命令の第2のシーケンスは
    第2の命令を実行するための情報を含むフィールドを有
    している第2のマイクロ命令記憶手段と、 マイクロ命令の第1と第2のシーケンスを前記信号に応
    答してマイクロ命令の合成シーケンスに結合するため
    の、第1と第2のマイクロ命令記憶手段に接続された併
    合手段であって、前記マイクロ命令の合成シーケンスは
    命令の第1シーケンスの第1と第2のフィールドを含
    み、第2のフィールドは第2の命令を実行するための情
    報を含んでいる併合手段と、 第1と第2の命令をマイクロ命令の合成シーケンスに応
    答して並行して実行する併合手段に接続されたパイプラ
    イン方式実行手段と、 を含むコンピュータにおける組合せ装置。
JP4001067A 1991-02-08 1992-01-07 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置 Expired - Lifetime JPH0823818B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65300691A 1991-02-08 1991-02-08
US653006 1991-02-08

Publications (2)

Publication Number Publication Date
JPH04309131A JPH04309131A (ja) 1992-10-30
JPH0823818B2 true JPH0823818B2 (ja) 1996-03-06

Family

ID=24619111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4001067A Expired - Lifetime JPH0823818B2 (ja) 1991-02-08 1992-01-07 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置

Country Status (3)

Country Link
US (1) US5398321A (ja)
EP (1) EP0498067A2 (ja)
JP (1) JPH0823818B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04143819A (ja) * 1989-12-15 1992-05-18 Hitachi Ltd 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ
US5787303A (en) * 1991-10-31 1998-07-28 Kabushiki Kaisha Toshiba Digital computer system capable of processing a plurality of instructions in parallel based on a VLIW architecture
US6154828A (en) * 1993-06-03 2000-11-28 Compaq Computer Corporation Method and apparatus for employing a cycle bit parallel executing instructions
DE69424370T2 (de) * 1993-11-05 2001-02-15 Intergraph Corp Befehlscachespeicher mit Kreuzschienenschalter
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
JP3212213B2 (ja) * 1994-03-16 2001-09-25 株式会社日立製作所 データ処理装置
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
FR2731094B1 (fr) * 1995-02-23 1997-04-30 Dufal Frederic Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
US5923862A (en) * 1997-01-28 1999-07-13 Samsung Electronics Co., Ltd. Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions
US6047368A (en) * 1997-03-31 2000-04-04 Sun Microsystems, Inc. Processor architecture including grouping circuit
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
US6742110B2 (en) 1998-10-06 2004-05-25 Texas Instruments Incorporated Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
EP0992892B1 (en) * 1998-10-06 2015-12-02 Texas Instruments Inc. Compound memory access instructions
DE69840406D1 (de) * 1998-10-06 2009-02-12 Texas Instruments Inc Überprüfung von Befehlsparallelismus
US6681319B1 (en) 1998-10-06 2004-01-20 Texas Instruments Incorporated Dual access instruction and compound memory access instruction with compatible address fields
US6453407B1 (en) * 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
US6530077B1 (en) * 1999-09-15 2003-03-04 Powerquest Corporation Device and method for releasing an in-memory executable image from its dependence on a backing store
US7098921B2 (en) * 2001-02-09 2006-08-29 Activision Publishing, Inc. Method, system and computer program product for efficiently utilizing limited resources in a graphics device
US7047395B2 (en) * 2001-11-13 2006-05-16 Intel Corporation Reordering serial data in a system with parallel processing flows
US7451294B2 (en) * 2003-07-30 2008-11-11 Intel Corporation Apparatus and method for two micro-operation flow using source override
US9542192B1 (en) * 2008-08-15 2017-01-10 Nvidia Corporation Tokenized streams for concurrent execution between asymmetric multiprocessors
JP5311491B2 (ja) 2009-11-17 2013-10-09 Necシステムテクノロジー株式会社 グラフィクス頂点処理装置およびグラフィクス頂点処理方法
GB2516864A (en) * 2013-08-02 2015-02-11 Ibm Increased instruction issue rate and latency reduction for out-of-order processing by instruction chaining and collision avoidance
US11042929B2 (en) 2014-09-09 2021-06-22 Oracle Financial Services Software Limited Generating instruction sets implementing business rules designed to update business objects of financial applications

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
DE3009121C2 (de) * 1980-03-10 1982-02-18 Siemens AG, 1000 Berlin und 8000 München Mikroprogramm-Steuereinrichtung
US4376976A (en) * 1980-07-31 1983-03-15 Sperry Corporation Overlapped macro instruction control system
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4967343A (en) * 1983-05-18 1990-10-30 International Business Machines Corp. Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
US4825363A (en) * 1984-12-05 1989-04-25 Honeywell Inc. Apparatus for modifying microinstructions of a microprogrammed processor
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
JPH0765101B2 (ja) * 1986-09-21 1995-07-12 東洋ラジエーター株式会社 チューブのアニール処理方法
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US5005118A (en) * 1987-04-10 1991-04-02 Tandem Computers Incorporated Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
US5155819A (en) * 1987-11-03 1992-10-13 Lsi Logic Corporation Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
GB8817911D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus
JP2538053B2 (ja) * 1989-05-08 1996-09-25 松下電器産業株式会社 制御装置
JPH0612522B2 (ja) * 1989-05-08 1994-02-16 日本電気アイシーマイコンシステム株式会社 並列処理マイクロプロセッサ
US5129067A (en) * 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements
US5241636A (en) * 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
US5301341A (en) * 1990-11-28 1994-04-05 International Business Machines Corporation Overflow determination for three-operand alus in a scalable compound instruction set machine which compounds two arithmetic instructions
EP0478731A4 (en) * 1990-04-04 1993-09-22 International Business Machines Corporation Early scism alu status determination apparatus
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5140545A (en) * 1991-02-13 1992-08-18 International Business Machines Corporation High performance divider with a sequence of convergence factors
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
JPH05145093A (ja) * 1991-11-20 1993-06-11 Mitsubishi Electric Corp 半導体結晶への水銀拡散法

Also Published As

Publication number Publication date
EP0498067A3 (ja) 1994-03-23
EP0498067A2 (en) 1992-08-12
US5398321A (en) 1995-03-14
JPH04309131A (ja) 1992-10-30

Similar Documents

Publication Publication Date Title
US5398321A (en) Microcode generation for a scalable compound instruction set machine
US5390355A (en) Computer architecture capable of concurrent issuance and execution of general purpose multiple instructions
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
JP2810068B2 (ja) プロセッサシステム、コンピュータシステム及び命令処理方法
US5481751A (en) Apparatus and method for storing partially-decoded instructions in the instruction cache of a CPU having multiple execution units
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
US5692167A (en) Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor
US5072364A (en) Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
US5167026A (en) Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
US8938605B2 (en) Instruction cracking based on machine state
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
US5509137A (en) Store processing method in a pipelined cache memory
US4897787A (en) Data processing system
US4773041A (en) System for executing a sequence of operation codes with some codes being executed out of order in a pipeline parallel processor
US5333287A (en) System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
JPH07120284B2 (ja) データ処理装置
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
US5983344A (en) Combining ALU and memory storage micro instructions by using an address latch to maintain an address calculated by a first micro instruction
EP0374526A2 (en) Op branching for starting micro-routines
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置