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

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

Info

Publication number
JPH04309131A
JPH04309131A JP4001067A JP106792A JPH04309131A JP H04309131 A JPH04309131 A JP H04309131A JP 4001067 A JP4001067 A JP 4001067A JP 106792 A JP106792 A JP 106792A JP H04309131 A JPH04309131 A JP H04309131A
Authority
JP
Japan
Prior art keywords
microinstructions
sequence
microinstruction
instruction
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.)
Granted
Application number
JP4001067A
Other languages
English (en)
Other versions
JPH0823818B2 (ja
Inventor
Thomas L Jeremiah
トーマス エル. ジェレマイア
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)

Abstract

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

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】クロス・リファレンスされた出願はすべて
、並列実行の判断の性能が実行時間に先立って形成され
るスケール化可能な複合命令集合マシン(SCISM)
と称されるディジタルコンピュータ又はデータプロセッ
サに関する。SCISMアーキテクチャにおいて、並行
して実行するための判断は、全体の命令処理プロセスの
初期において行なわれる。例えば、上記判断は命令バッ
ファもしくは命令スタックを有するマシンにあっては命
令バッファに先立って行なわれたり、又は、命令をキャ
ッシュ装置内にフローさせるようなマシンにあっては命
令キャッシュに先立って行なわれたりすることもある。
【0007】並列実行するための判断が、命令が格納さ
れる地点の前に行なわれるので、その意思決定の結果は
、それらの命令と共に保存され、同じ命令が2度目又は
それ以上の回数の時に使用されるような場合に再使用さ
れることが可能である。
【0008】並列実行の意思決定の記録は命令ストリー
ムで個々の命令に伴って生じるタグの形式であることが
好ましい。これらのタグは、こうした命令が並行して実
行できるか、又は、これらを一度に1個ずつ実行する必
要があるかどうか、について示す。この命令にタグをつ
けるプロセスは、ここでは「複合化」と称することもあ
る。同プロセスは実際において、少なくとも2個の個別
命令を並列処理のための1個の複合命令に結合するもの
である。
【0009】SCISMの一例としての実施例は、本件
の譲受人であるIBMコーポレイション(ニューヨーク
、アーモンク)より市販されているシステム/370製
品ファミリーのアーキテクチャと命令とを基礎にしたも
のである。SCISMは命令を目的形式である間に複合
させることが好ましい。周知のように、システム/37
0のアーキテクチャは一般的に、目的レベルの命令の実
行を実施し、且つ制御するためにマイクロコード化命令
を使用する。そのため、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 L
ANGUAGE 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はこれらをともに複合命令レジスタ(CIR
)19に入力する。複合命令レジスタ19は左側複合命
令レジスタ(CIRL)20と右側複合レジスタ(CI
RR)21とを包含する。ビット幅フィールドは、複合
化された命令の組み合わせの第1の命令に対する複合化
タグを格納するためのCIRL20に設けられる。第1
の命令はCIRL20の残りの部分に格納され、一方、
第2の命令はCIRR21内に格納される。後述する説
明において、第1の、即ち左側の命令は命令シーケンス
の第2の、即ち右手の命令に先行するものと想定され、
その複合化タグは第1の命令がそれに続く命令と共に実
行されるべきか否かを指示する。かくして、複合化され
た組み合わせの第1の命令はCIRL20内に格納され
、一方、第2の命令はCIRR21内に格納される。好
ましい実施例では、複合化タグは一個のビット(以下、
Cビットと称する)で、ビットが「1」の値にセットさ
れるとCIRR21がCIRL20内に包含された命令
と同時に実行されるべき命令を含んでいることを示す。 もし「0」にセットされると、複合化タグは、CIRR
21の内容が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にセットされ、一方、次の
命令のビットは無視される。このことは例示としてのみ
にすぎず、複合化ビットの命令へのマッピング、又は、
複合化するためにグループ化できる隣接しあう命令の数
を限定するように意図するものではない。ライン40の
最初の2個の命令が並行処理用にマークされたものと想
定すると、最初の命令のCビットは1の値を有する。取
出し発信装置14の論理は、最初の命令とその関連Cビ
ットとをCIRL20とCフィールド22内へロードす
る。取出し発信装置14の論理におけるゲート44は最
初の命令の長さを復号化することによってイネーブルと
され、ライン40の第2の命令(INSTR2)がCI
RR21内へロードされることを可能にする。当然、C
ビット1の値がゼロの場合には、CIRR内へロードさ
れる命令はその後無視されるであろう。CIR19内の
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内のマイクロ命令は
、シーケンスの終りにいつ到達されるかを示すためのフ
ィールドを含むだろう。かくして、単一マイクロ命令シ
ーケンスの唯一のマイクロ命令と複数マイクロ命令シー
ケンスの最後のマイクロ命令とが、このフィールド(E
OP又は操作終了フィールド)内に操作終了の信号を送
る表示を含むことになろう。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用の制御装置は制御論理24a
、多重化装置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内で使用
されるものと類似した次のアドレスフィールド(NXA
)は、複数命令シーケンスにとって便利な手段である。 SCS25のアドレス空間が小さくなるほど、CIRR
21からのOPコードを提供し、その後、必要に応じて
、NXAフィールドからのアドレスデータを提供するだ
けですむ。現在アドレス指定されたマイクロ命令におけ
るセットEOPビットは、CIRR21内の次の命令の
OPコードの受取りに備えるために、CSAR26cの
内容を初期化する。
【0035】マイクロコード生成器の概要図3のマイク
ロコード生成器によって実行される動作の基本的シーケ
ンスは、命令の開始をサイクルごとにパイプライン内へ
導入することを可能にする5つのパイプライン段階を含
む。第1の段階であるIFは、命令の取出しである。こ
の段階は、マイクロコード生成器23からのENDOP
信号によって命令取出し発信装置に表わされる。それに
関連して、この段階では、複合命令キャッシュ又は命令
バッファから命令が取り出される。IFサイクルの終り
に、一個の命令又は一対の隣接する命令が、命令の実行
を開始するために、復号化のためのCIR19内へロー
ドされる態勢にはいる。
【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及び32c
のうちのそれぞれ一個によって表わされる。上記シーケ
ンスの後に、レジスタ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ビット、および右手命令のCIRL
20とCIRR21内への進入が妨げられる。ANDゲ
ートの出力が低い間は、インバータ75はゲート77、
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、10
、11及び19はSCS27内の対応するフィールドの
内容によってMCS25内のそれらの状態から変化され
ることができる。更に、フィールド19は併合装置29
のハードウェア(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で実行
を制御するために必要とされるフィールドは、SCS2
7には存在しない。
【0046】複合命令のペアのうち第2の命令の実行は
、第1の命令の実行を決して変化させることはないので
、第1の命令を実行するために必要とされるマイクロコ
ードフィールドは常に不変のまま、MCS25からAI
R32a内へゲートされる。第1の命令の実行が第2の
命令に対するオペランド読出し又は実行装置の動作と干
渉しない場合、第2の実行装置を制御するSCS27内
の制御フィールドFの値はMCS25から来るFフィー
ルドの値に直接置き換えられる。このようにフィールド
置換にふさわしい併合装置論理が図6(a)に示される
。SCS27からのフィールド値を併合装置29によっ
て置換することは、CIRLのCビットフィールドによ
って制御されるANDゲート85において実行される。 Cビットがセットされると、ANDゲート85は使用可
能となり、フィールドFに対する制御値を提供し、イン
バータ86はANDゲート87を使用禁止にしてMCS
25の出力を阻止する。ORゲート88はAIR32a
内の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を適切に条件付けるための方法を表わしている
【00
50】図7の構造と動作は、複合化ペアの2個の命令ど
うしの間に存在するインターロック条件を認識するハー
ドウェアによって併合装置29でフィールド値が置換さ
れることを示す。同図はIBMシステム/370型の命
令を仮定している。かくして、上記のSRとAR命令の
場合、各命令の最初の2バイトをチェックすることによ
ってデータ依存性を発見することができる。各命令の最
初のバイトは命令のOPコードを含み、一方、第2のバ
イトは命令オペランドを含むレジスタを識別する。従っ
て、併合装置29におけるフィールド置換ハードウェア
は、命令の特定のペアを識別し、上記2個の命令が共通
のオペランドで作動しているかどうかを決定しなければ
ならない。特に、かかる命令が最初に命令を類別して、
その後で所定のカテゴリー間の複合化を可能にする規則
に基づいて複合化される場合、併合装置29はそれらの
類別を識別し、オペランドレジスタの等価性をテストす
ることが可能でなくてはならない。
【0051】これらの条件は図7においてテストされる
。左右の両命令のオペランドはそれぞれ、オペランドデ
コーダ91、92で解読される。デコーダ91が類別1
(CAT  I)命令のみを探す場合、左手命令がその
類別に存在すると、その出力を活動化させることになる
。右手デコーダ92は、右手命令が類別1の命令と複合
化できる命令群の類別のうちの一個にあると、それぞれ
の信号を活動化させるものと仮定する。左手デコーダ9
1の出力はその後、複数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コードはデコーダ91
へ提供され、オペランドレジスタフィールド内容は検出
器94へ提供される。左手命令は更新結果を格納するた
めにレジスタR1を活用し、右手命令はレジスタR1の
内容を使用しているので、インターロックが存在し、回
路105のフィールド値はAIR32aのFフィールド
へ入力されなければならない。このことは、デコーダ9
1と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マイクロ命令は右手命令のOPコ
ード(OPR)によって示されるアドレス位置にある。 第1のSCSマイクロ命令のNXAフィールドはシーケ
ンス中の次のマイクロ命令のアドレスに対するポインタ
NXTを有し、そのEOPビットは0に設定され、その
制御フィールドは実行装置36に対して適切にコード化
される。パイプラインクロック周期t+1では、NOP
命令は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により出力されるE
NDOP信号は活動化される。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へ送られ、同カウンタ123は
OPRアドレスが遅らされるパイプラインクロック周期
の数をカウントする。この場合、1周期の遅れしか必要
でないのは、そのことはカウンタ123がラッチでパイ
プラインクロック周期t中にANDゲート122の活動
化によって設定されて、周期t+1の始めにリセットさ
れることを意味する。ORゲート124は、対の命令ど
うしの間の資源競合の発生を検出してその競合を補償す
るために必要なクロック周期数をカウントダウンする他
の回路の出力を収集する。ORゲート124はそれに給
電する資源競合検出回路に応答してその出力を活動化す
る。この出力は、ORゲートを活動化するそれぞれのカ
ウンタによってカウントされる多数のパイプラインサイ
クルクロック周期にわたって、活動状態にあることにな
る。ホールド(保持)SCSAR信号は資源競合を解決
するために必要とされる間活動状態にあることになろう
。この信号が活動化されている間は、ホールドクロック
回路はパイプラインクロックのSCSAR26cへの提
供を妨げることになろう。ホールドSCSAR信号が非
活動状態でない場合、クロックがSCSARへ提供され
て、その内容は変更される。これはLSSDラッチのペ
アL1/L2によって表わされる。この構成はパイプラ
インクロックが多相信号で、第1の位相がCSAR26
cの第1のラッチ部分L1に送られ、一方、第2の位相
が第2のラッチ部分L2へ送られることを仮定している
。ホールドクロック回路125はSCSARのL2部分
を作動するクロック位相の提供を阻止する。かくして、
OPコードがCIR21の入力で利用可能な場合、それ
は同じパイプラインクロック周期中にSCSARのL1
部分へラッチされる。その後、それは、ホールドクロッ
ク信号が活動状態の場合、SCSARのL2部分に保持
される。ホールドSCSAR信号の非活動化に続いて、
SCSAR26cのL2部分は次の右手命令のOPコー
ドをラッチし、SCSAR26cはアドレスOPRをS
CS27へ提供する。
【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 (18)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011062203A1 (ja) 2009-11-17 2011-05-26 Necシステムテクノロジー株式会社 グラフィクス頂点処理装置、画像処理装置、グラフィクス頂点処理方法および記録媒体

Families Citing this family (24)

* 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., Huntsville 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
US6681319B1 (en) 1998-10-06 2004-01-20 Texas Instruments Incorporated Dual access instruction and compound memory access instruction with compatible address fields
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
EP0992893B1 (en) * 1998-10-06 2008-12-31 Texas Instruments Inc. Verifying instruction parallelism
EP0992892B1 (en) * 1998-10-06 2015-12-02 Texas Instruments Inc. Compound memory access instructions
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
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5771050A (en) * 1980-07-31 1982-05-01 Sperry Rand Corp Overlapped microinstruction control system
JPS6389930A (ja) * 1986-09-21 1988-04-20 Matsushita Electric Ind Co Ltd マイクロプログラム制御装置

Family Cites Families (24)

* 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
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
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
JPH0612522B2 (ja) * 1989-05-08 1994-02-16 日本電気アイシーマイコンシステム株式会社 並列処理マイクロプロセッサ
JP2538053B2 (ja) * 1989-05-08 1996-09-25 松下電器産業株式会社 制御装置
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
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
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
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 半導体結晶への水銀拡散法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5771050A (en) * 1980-07-31 1982-05-01 Sperry Rand Corp Overlapped microinstruction control system
JPS6389930A (ja) * 1986-09-21 1988-04-20 Matsushita Electric Ind Co Ltd マイクロプログラム制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011062203A1 (ja) 2009-11-17 2011-05-26 Necシステムテクノロジー株式会社 グラフィクス頂点処理装置、画像処理装置、グラフィクス頂点処理方法および記録媒体
JP2011107931A (ja) * 2009-11-17 2011-06-02 Nec System Technologies Ltd グラフィクス頂点処理装置およびグラフィクス頂点処理方法

Also Published As

Publication number Publication date
US5398321A (en) 1995-03-14
EP0498067A2 (en) 1992-08-12
EP0498067A3 (ja) 1994-03-23
JPH0823818B2 (ja) 1996-03-06

Similar Documents

Publication Publication Date Title
US5398321A (en) Microcode generation for a scalable compound instruction set machine
US5233694A (en) Pipelined data processor capable of performing instruction fetch stages of a plurality of instructions simultaneously
US5167026A (en) Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5481751A (en) Apparatus and method for storing partially-decoded instructions in the instruction cache of a CPU having multiple execution units
US5204953A (en) One clock address pipelining in segmentation unit
US6295600B1 (en) Thread switch on blocked load or store using instruction thread field
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
US5148528A (en) Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
US5006980A (en) Pipelined digital CPU with deadlock resolution
US5509137A (en) Store processing method in a pipelined cache memory
JPH0429093B2 (ja)
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
JPH02140830A (ja) 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
US6609191B1 (en) Method and apparatus for speculative microinstruction pairing
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
US6453412B1 (en) Method and apparatus for reissuing paired MMX instructions singly during exception handling
US5895497A (en) Microprocessor with pipelining, memory size evaluation, micro-op code and tags
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
US5729729A (en) System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators
JP3102399B2 (ja) データ処理装置及び方法
JP3147884B2 (ja) 記憶装置及び情報処理装置
EP0186668A1 (en) Three word instruction pipeline
IE901518A1 (en) Pipeline processing of register and register modifying¹specifiers within the same instruction
JPH0425937A (ja) 情報処理装置