JPH03116233A - データプロセッサの命令処理システム - Google Patents

データプロセッサの命令処理システム

Info

Publication number
JPH03116233A
JPH03116233A JP2135137A JP13513790A JPH03116233A JP H03116233 A JPH03116233 A JP H03116233A JP 2135137 A JP2135137 A JP 2135137A JP 13513790 A JP13513790 A JP 13513790A JP H03116233 A JPH03116233 A JP H03116233A
Authority
JP
Japan
Prior art keywords
instruction
instructions
family
read
execution
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
JP2135137A
Other languages
English (en)
Other versions
JP2810211B2 (ja
Inventor
W Horst Robert
ロバート ダブリュー ホースト
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH03116233A publication Critical patent/JPH03116233A/ja
Application granted granted Critical
Publication of JP2810211B2 publication Critical patent/JP2810211B2/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation
    • 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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling

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

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデジタルコンピュータ、殊にデジタルコンピュ
ータの発令実行装置に関する。
〔従来の技術〕
デジタルコンピュータの設計における第1の目標はプロ
セッサの処理能力、即ち単位時間あたりに処理される命
令数を高めることである。そのための一つのアプローチ
は、プロセッサのハードウェア設計を改良してマシンサ
イクルタイムを少なくすることであった。もう一つのア
プローチはマシンサイクルあたり一命令を処理するよう
に設計されたアーキテクチャと命令集合を開発すること
であった0以上のアプローチは共に順次サイクルあたり
せいぜい1命令しか発しないとういう基本的な処理方法
のために、マシンサイクルあたりの最大処理能力が1命
令という論理的処理能力に限定されている。
サイクルあたり1命令以上の命令を発する方式がrcR
IsPマイクロプロセッサのハードウエアアーキテクチ
ャ」と題するディーラエル他の論文(1098ACMO
O84−749587゜pp30−319)と「多重機
能ユニットプロセッサの性能改善させるための発令方法
」と題するアコスタ他の論文(I EEEコンピュータ
紀要、C−35巻、No、 9.9月86、pp、 8
15−828)中に記述されている。
命令を並行して発することに対する制約は命令群が同一
のマシンサイクル中に同一機能のプロセッサ装置の使用
を要求してはならないという点である。この制約はプロ
セッサアーキテクチャ内に含まれる資源に関係し、頻繁
に使用される機能単位の追加的なコピーを設けることに
よって幾分除去することができる。
上記のアコスタ他による論文は多重機能単位の存在を利
用するための益金発令方法を提示している。更に、上記
論文中に述べられたCRISPアーキテクチャによれば
、もう一つの命令と並行して分岐命令を実行することが
できる。更に、メインフレームにより、整数と浮動小数
点命令を種々の機能単位に並行して発送することが可能
であった。
然しなから、これら方式では全て、同時発令された命令
が互いに依存関係にないことが必要である。依存関係の
種類は以下に詳説するが、一対の命令間の基本的依存関
係は、その対命令中の第2の命令が対命令中の第1の命
令の実行によって生ずるデータを処理することである。
従って、第1の命令は第2の命令に先立って処理する必
要がある。
かくして、これら現存のプロセッサはすこぶる少数の命
令の組合せしか同時に発することはできず、また実行す
ることもできない。分岐命令はメモリ照会が不要で新た
な1アドレスだけしか計算する必要のない特殊なケース
である。同様にして、浮動小数点と整数命令はALU資
源しか必要とせず、メモリ照会を要しない。かくして、
命令相互間のデータ依存関係は存在しない。
上記制約に鑑みて、これらシステム中で並行発令される
命令の種類は極度に制限され、一定の限定された状況で
は2個の命令を1クロックで発することが可能だとはい
え、その平均処理能力は1命令あたりlクロックを大き
く土建ることは不可能である。
本発明においては、命令のファミリーは1クロック内で
並行して発することの可能なプログラム中の順次命令の
集合である。1フアミリー内に含ませることの可能な命
令の種類の数は従来技術によるプロセッサ内に可能なも
のよりも大きい。
本発明の場合、1クロック中に、例えばALUとメモリ
に照会する形式の命令を含む命令のファミリーを発する
ことができる。特殊なパイプラインはその発された命令
ファミリーの受領と処理を容易にする資源を含む。その
ため、本発明は1クロフクあたり1命令以上の命令処理
能力を考慮するものである。
本発明を一面から見ると、命令ファミリーが取出され解
説される。各命令についての解説情報は、その命令を実
行するためにどの資源が必要とされるかを表示するステ
ータス情報を含む。もしそのステータス情報が実行中資
源の競合が何ら生じないことを表示するならばその命令
ファミリーは1クロックで発せられる。
本発明のもう一つの面によれば、命令実行装置がデータ
依存関係を有する命令ファミリーを第2の命令のオペラ
ンドとして必要とされる第1の命令の生成データを設け
ることによって実行し、その後にその生成データをレジ
スタに書込むようになっている。
本発明の更にもう一つの面によれば、選択された命令集
合の命令の部分集合が並行処理用の候補として指名され
る。ファミリー内の各命令の解読結果のステータス情報
はその命令が並行処理の候補であるかどうかを示す。も
しステータス情報がファミリー内の全命令が候補であっ
て資源の競合が何ら生じないこを示すならば、そのファ
ミリーは並行して実行される。
本発明のもう一つの面によれば、ユニークな例外処理プ
ロシージャによって単一の命令用に開発された例外プロ
シージャを活用してシステムを単純化することができる
。システムはファミリーの実行中に例外の存在をテスト
する。もし例外が発見されるならば、そのファミリーと
関連するデータの書込みは禁止されてシステムのマクロ
状態を保存するようになっている。その場合、ファミリ
ー内の命令は単独に実行されることによって現存の例外
処理プロシージャを利用できるようになっている。
本発明のもう一つの面によれば、分岐予測の誤りから回
復するための分岐復帰機構は分岐予測ビ、7トと分岐条
件ビットを比較することによって予測の誤りをテストす
る。予測が誤りの場合には、ファミリー内の分岐命令の
位置に応じて上記機構は異なる。もし分岐命令がファミ
リー内の最後の命令であれば、パイプラインはフラッジ
され、正確な次の命令がパイプライン内に取出される。
もし分岐命令がファミリー内の最後の命令でなくて、分
岐に続(ファミリー内の全命令と関連するデータの書込
みは禁止される必要がある場合には、パイプラインはフ
ラッジされ、正確な次の命令がパイプライン内に取出さ
れる。
本発明のその他の特徴と利点は図面と以下の詳細な解説
により明らかとなろう。
〔実施例〕
実施例はサイクルあたり1命令以上を発するようには設
計されていない現存プロセッサによって使用される目的
命令の集合を実行する。かくして、本実施例は現存シス
テムと下部方向に互換性をもち、システム用に書込まれ
たプログラムを実行することができる。然しなから、以
下に示すように、本システムの命令ファミリーの並行処
理能ツノによって処理能は劇的に向上する。
実施例は、各目的コードもしくはマクロ命令を実行する
制御信号がその命令にとって唯一のマイクロコードルー
チンによって提供されるようなマイクロプログラミング
された機械であることが望ましい。
目的命令集合からの対候補(PC)命令の部分集合が選
択され、2個のPCのファミリーを並行実行するための
特殊マイクロコードルーチンが制御メモリ内にストアさ
れる。何れの命令がPCの部分集合内に含まれるかの選
択は、アプリケーションプログラム中の命令の発生頻度
、命令の並行処理の困難さ、命令の並行処理に必要とさ
れる資源を含む種々の要素に依存する。これら特殊ルー
チンは以下に述べる如く、プロセッサ内の特殊資源に依
存する。
然しなから、ただPCのみから成るファミリーの場合で
さえ、もし資源の競合が発生する場合には、並行処理は
可能でない。従って、システムはこれらの場合には並行
処理を取消すことになる。
実行装置はかかる場合が頻繁に発生せず、また処理能力
を大きく低下させないように構成する。
本システムは目的命令集合を実行する非対プロセッサと
互換可能な目的コードである。このため、非対マシーン
により実行される目的コード命令の順列より成る目的コ
ードプログラムもまたプログラムに何ら変更を加えずに
対マシーンによって実行する必要がある。
かくして、本システムでは、プログラム内に発生ずる順
序立てられた対命令群は所定の条件が満たされた場合、
同時に発せられる。こらの条件の発生は命令解読時に発
生させられるステータスビットにより指示されることが
望ましい。
さて、図面について述べると、第1図は実施例のハイレ
ベルブロックダイアグラムである。(同様の参照番号は
数回を通して同一もしくはそれに対応する部分を示す。
) 第1図において、読出し装置(FU)IQは命令キャシ
ュ(IC)12と接続される。FU12は、正規のシー
ケンス動作中にアドレスを増分し条件分岐・飛濯命令の
分岐目的(BRANCH−TARG)アドレスを計算す
るアドレス状態マシーンにより制御されるアドレス計算
ハードウェアを含む。IC12の出力は命令待ち行列レ
ジスタ(IQR)14.16に接続される。IQR14
,16と第1と第2の階位のOパイプラインレジスタ(
RO3とROF)18.20は直列に接続され命令待ち
行列21を形成する。RO3とROF18.20の出力
は、それぞれ、第1と第2の階別のルジスタの入力と、
第2のデコード装置と第1のデコード装置(PC3とD
CF)22.24の入力に接続される。2個のデコード
装置22.24の出力は第1と第2のDCOバス28.
30により対比論理装置(PLU)26のデータ入力に
接続される。これらバス上のステータスビットは第1と
第2のステータスバス32.34によりPLU26の制
御入力に接続される。PLU16は併合デコードバス(
MDB)36により実行装置(EU)26に接続される
データ出力と、FUCバス40によりFU26に接続さ
れるFU制御出力と、PUCバス42によりPU25に
接続されたPU接読出力を備える。また、EU36はま
た以下に述べるF l5sue  信号をアサートする
さて、以下に第1図のシステムの動作を説明する。命令
ファミリー内の第1と第2の命令はそれぞれROFとP
C320,18内にストアされる。
これらの命令はそれぞれのデコード装置22.24で解
読され、解読結果はそれぞれのDCOバス28.30上
に出力される。第1の解読結果は第1の入口点フィール
ド(EPT−F)と第1のステータスビット集合を含み
、第2の解読結果は、第2の入口点フィールド(EPT
−3)と第2のステータスビット集合を含む。各解読結
果におけるステータスビットは、それぞれの命令がPC
であるかどうか、またどの資源が命令を実行するに必要
であるかを示す。両方の解読結果からのステータス情報
はステータスバス32と34上のI’L[I制御ポート
にまわされる。
第1のステータスビットはPCと命名され、命令が一対
の候補であるかどうかを示す。第2のステータスビット
はEPア8s□、と命名されマクロ命令が1クロックだ
けしか必要としなかそれとも多数のクロックを必要とす
るかを示す。もしそうであれば、次のクロック中に次の
命令が発せられる。
もし否であれば、FOFとRO320,18内のデータ
はFlの発信が生ずるまで変化しない。この信号はFU
IOにより受信され予備読出しが再開される。他のステ
ータスビットは命令がALUもしくはメモリアドレス指
定論理に対して実行を要求するかどうかを示す。
PLU26の出力はステータス情報に依存し、次の3つ
の可能性のうちの一つである。まづ、もし第1の命令が
PCでなければ、第1の命令の解読結果はMDB38上
に出力されマイクロコードルーチンをアクセスし第1の
命令だけを単独に実行する。更に、FUCライン40と
PUCライン42上に発せられた信号によって次の単独
の命令がIC12から読出され第1の命令(ROF20
内にストア)だけがPU25の次段に発せられる。
そのため、プロセッサの並行発令能力は使用されない。
第2に、もし第1と第2の命令が共にPCであって対比
可能であれば、即ち、資源の競合が存在しなければ、第
1と第2の命令の解読結果は併合されてMDB3B上に
出力される。併合された解読結果はマイクロコードにア
クセスして第1と第2の命令をペアにして実行する。更
に、FUCライン40とPUCライン42上に発せられ
た信号によってプログラム内の次の2つの命令がIC1
2から読出され、階位0レジスタ18.20内にストア
された一対の命令がPU25の次段に発せられる。
第3に、もし、第1の命令がPCであるが第1と第2の
命令は対比不可能である場合、例えば資源競合の場合に
は、第1の命令の解読結果のサブフィールドがMC83
8上に出力され、マイクロコードルーチンにアクセスし
て第1の命令を単独に実行する。更に、FUCライン4
0とPOCライン42上に発せられた信号によって次の
単独命令力月C12から読取られ、第1の命令のみがR
OFレジスタ20からPC25の次段に発せられる。か
くして、プロセッサの並行発信能力は使用されない。
本システムの動作は具体例を考察することによって最も
よく理解することができる。これらの具体例はlスタッ
クをALU処理のデータソースとデータシンクとして活
用するプロセッサについてのものである。データはロー
ド/ストア処理によってメモリとスタック間で転送され
る。上記スタックは8個の物理的レジスタ(RO−R7
)と、スタックのトップに論理的に割りふられた物理レ
ジスタを指示するレジスタポインタ(RP)を含む。ス
タックレジスタは、スタックのトップのレジスタをAと
命名して、RP値によって明らかにされる論理的命名A
−Hを付与される。このタイプのプロセッサでは、デー
タの依存関係をスタックレジスタの競合による特徴をも
つ。もう一つのタイプの依存関係はRP競合である。命
令は全体としてRPを増分したり減分したりする。かく
して、命令のファミリーはRPの変化に対して競合する
要求条件をもつことになる。
第2図と第3図は、2個の命令のファミリーを標準的な
やり方で実行し1−ルーチンをリスティングして本発明
の並行命令実行を行う際に生ずるスタック形を示す概略
線図である。
第2図について述べると、2個の命令のLDI−LOA
Dファミリーを順次単独実行する際のスタック形が示さ
れている。これら命令は共にRPに対して定義されるH
レジスタにデータを書込む。
LDI実行中に、即値データがH(RO)に書込まれ、
RPは増分されてHがR1に変化する。その後、LOA
Dの実行中にキャッシュデータがHに書込まれ、RPは
再び増分されてHはR2に変化する。
第4図に示す標準的な3段パイプライン12について述
べると、R3パイプ547段中にこれら命令はそれぞれ
データをHレジスタに書込み、RPを増分する。かくし
て、並行処理はこれらレジスタとRPの競合の影響を除
去するための何ら特別の資源や手法がなくとも可能とな
ろう。
第5図に示す実施例で使用される比較的深度の高い6段
パイプラインについて対の並行処理方法を解説する。対
命令を並行処理するには、ロード命令のデータキャッシ
ュアドレスが階位2中に発生させられ、オペランドが取
出され、キャッシュデータがG(R1)に書込まれ、階
位3中に即値データがH(RO)に書込まれる。階位4
中にRPは2だけ増分されることによってR1はAと、
R2はHと定義される。かくして、本発明のマイクロコ
ードと資源によって一対の命令が並行して発せられ実行
することが可能になる。
第3図について述べると、2個の命令のLDD−DAD
Dファミリーを順次単独実行するためのスタック形が描
かれている。更に、第4図の3段パイプラインについて
述べると、LDDの実行中に、RPは増分されてAはR
2と定義されてOP2データの高次フィールドがA(R
2)に書込まれ、0R−2データの低次フィールドが階
位2中にH(R3)に書込まれる。最後に、RPは再び
増分されて、階位3中にAはR3と定義される。
その後、DADDの実行中、C(R1)とA(R3)中
のデータは合計されてC(R1)に書込まれ、D(RO
)とB(R2)中のデータは階位2中に合計されてD(
RO)に書込まれ、RPは階位3中に2だけ減分される
第4図の3段パイプラインについて述べると、もし対命
令が並行して実行される場合には、データの書込みと合
計は階位3中に行われるため、解決不能なデータの競合
が生ずることになろう。
RPの変更に対する要求条件が競合するため、階位3中
に更なる競合が生ずることになろう。
第5図の6段パイプラインについて述べると、対命令を
並行実行するために、階位3中にop−2データが、階
位3中にデータキャシュから読出され、階位4中にレジ
スタA(R1)とB(RO)の内容と、A(R1)とB
(RO)に書込まれた和と、階位5中にH(R2)とG
(R3)に書込まれた原始0P−2データと合計される
。かくして、解決不能なレジスタもしくはRPの競合は
何ら生じない。
上記より、並行処理のためにはデータをスタック内のレ
ジスタに書込む前にデータにアクセスする必要があるこ
とが明らかである。第6図はその必要とされるアクセス
を容易にするレジスタ形を示した図である。第6図にお
いて、レジスタファイル60は4個の書込みボートと4
個の読出しボートを備えることによってダブルワードを
同時に転送することができるようになっている。更に、
バイパス回路62、バイパスバス64、キャシュデータ
、即値データおよびALU入力バス、マルチプレクサお
よびSB□間の交叉接続によってレジスタファイル60
に書込む前にデータに対して直接アクセスすることが可
能になる。そのため、深度パイプラインと多重ボートレ
ジスタファイルによって、マイクロコードは命令の多く
の組合せをファミリーとして実行することができる。
例えば、第3図に示すLDD−DADDの対を実行する
際、階位3中にキャシュデータは直接データキャシュか
らCDHi (!:CDLOへ転送されその後にレジス
タファイアルへ書込まれる一方、0P−I HはReg
AからKHRegへ転送され、0P−ILはRegBか
らKLRegへ転送される。
転送データの和は階位4中にALUにより計算され、階
位5中にRegAとRegBへ書込まれる。更に、CD
HiとCDLo内のデータは階位5中にRegHとRe
gGへ書込まれる。
例えば、ロード命令とロード即値命令を含むファミリー
は1クロック中に発せられ処理することが可能である。
同様にロードと加算命令を含むファミリーを1クロック
中に発し処理することができる。
第7図は本発明の実施例のアーキテクチャを示す詳細な
ブロックダイアグラムである。デコード装置はROFと
RO320,18の命令に応答し第1と第2の入口点E
PFとEPSを発生する入口点テーブル(EPT)22
.24である。
EPT23,24の出力は、第1と第2のOCOバス2
8.30にそれぞれ接続される。第1のEPビットフィ
ールドF<0:15>はEPTF23から第1のDCO
バス28へ転送され、第2のBPビットフィールドS<
4:15>はBP’rS24から第2のDCOバス30
へ転送される。ビットフィールドF<1.2.14.1
5>は第1のステータスバス32により耐化論理72へ
転送れ、ビットフィールドS<5.6.7.8>は第2
のステータスバス34により転送される。
ビットフィールドF<9:15>はFLSBバス76に
よってMUX/論理装置(MLU)74のO入力へ転送
され、ビットフィールドS〈9:15〉は5LSBバス
78によりMLU74の1人力へ転送される。
ビットフィールドF<2:8>はMMSBバス80上に
転送され、MLU74出力はMLSBバス82に転送さ
れる。MMSBとMLSBバス80.82は併合されて
併合EPT (MEPT)バス38のMSBとり、38
部分を形成する。 MlliPTはマイクロメモリ39
からのマイクロコードをアクセスするために使用される
耐化論理は、FUCバス40上を転送されパイプライン
に対命令もしくは単一命令を発するように指令するPC
とEPTl、、、、信号を発生する。
更に、非対PC信号がMLU74の09人力に接続され
たPCNPライン84上に転送され、ビットFく2〉は
多重制御ライン86上をMLU74の制御入力へ転送さ
れる。
第8図はMEPT<2 : 15>によりアドレス指定
されるマイクロメモリ39のメモリマツプである。ME
PTのMSBフィールドは、F〈2〉がMSBである場
合、常にF<2=8>に等しい。
MEPTのLSBフィールドはMLU74の出力に等し
く、NPPCと多重制御ライン84.86上の信号に依
存する。全pcのMSB、F<2>は、1の値を有し、
非PC全体についてOの値を有する。
対候補ではない第1の命令の場合、MSB。
Fく2〉は0であり、マイクロコードアドレス(M E
 P T)はアドレス空間92の下半分90内に配置さ
れる。対候補の第1の命令の場合、MSB。
F〈2〉はIであり、マイクロコードアドレス(MEP
T)はアドレス空間の上半分94である。
MEPTを発生させるための第7図に示すシステムの動
作を第1の命令が対候補でない場合、対候補であるが対
化されていない場合、および対候補であって対化されて
いる場合について次に説明する。
第1の命令が対候補でない場合、Fく2〉は0で、ML
U74の0人力はMLSBバス82に接続されるため、
フィールドF<IL5>はMLSBバス82上を転送さ
れ、MEPTは、 MEPT< 2 : 15 >= F<2 : 3>: F<9 : 15>   式1そ
のため、MEPTはEPTFフィールドに等しくなる。
このアドレスは第8図に示すアドレス空間92の下半分
90内にある。かくして、MEPTはこの場合マイクロ
コードにアクセスし、第1の命令を単独命令として実行
する。
もし第1の命令が対候補であるが第2の命令と対比可能
でない場合には、F〈2〉は1で、NPPCライン84
上の信号がセットされる。この場合、MLU74はフィ
ールド<0000000>をMLSBバス82に転送し
、MEPTはMEPT<2 : 15 >= F<2 : s>:<ooooooo>  式2となる
。そのため、MEPTはゼロ7個のストリングによつて
伴われるEPTFのMSBフィールドに等しくなる。か
くして、非対化対候補を実行するためのマイクロコード
のアドレスは第8図に示すアドレス空間92の上半分9
4内に配置される。
もし第1の命令が対候補であって対化される場合には、
F〈2〉は1で、NPPCライン84上の信号はセット
されない。この場合、MLU74フィールドS<9:1
5>をMLSBバス82に転送し、MEPTは MEPT< 2 : 15 >= F<2:8>:S<9:15>   式3となり、その
ためMEPTはEPTSのLSBフィールドとEPTF
のMSBフィールドに等しくなる。第8図に示すように
、これらのアドレスはアドレス空間内の非対化指令のア
ドレスの後に来る。
対命令が発せられるに続いて、例外や分岐予測の誤りの
如き事実が発生し、発せられた対命令の首尾良い実行や
退避を防止する。以下はこれら事実の発生と効率良く取
組むためのユニークな例外処理と分岐手段を説明したも
のである。
まづ例外処理に戻ると、例外はプロセッサ内部の条件に
よって惹起こされ命令の実行を防止する。
かかる条件の例は、ALUタイプの命令についての演算
オーバフローとメモリ照会形式の命令についてのページ
障害を含むものである。
例外に遭遇する命令につきそれぞれ、ソフトウェアと/
又はマイクロコードを含む特殊例外処理プロシージャが
単独で発せられる命令について開発されている。全体と
して、例外処理マイクロコードは例外が存在しない場合
に同一命令を実行するに必要なマイクロコードよりもず
っと複雑である。
第5図の6段パイプラインについて説明すると、例外条
件はパイプラインの階位4中で発生する。
命令が対化される時に例外が発生するために、例外処理
に対するアプローチの一つはそれぞれの可能な対命令に
ついて例外を処理するための特殊マイクロコードをスト
アすることであろう。
然しなから、かかるアプローチは幾つかの欠点をもって
いる。例外に遭遇する命令に先立つ命令は完遂を許され
なければならないために、第1の命令と関連するメモリ
を完了させるために複雑な調整コードが必要となり、そ
の一方で対内の第2の命令と関連するメモリを防止する
ことが必要とされる場合もあろう。更に、1つ以上の例
外に遭遇することもあり得る。例えば、対(LOADと
ADD)はLOADにつきページ障害に、ADDにつき
オーバフロー例外に遭遇することもあろう。
更に、例外の組の数は非常に大きくなり、対の例外プロ
シージャをデバッグすることが極度に困難になる。
〔課題を解決するための手段〕
本発明の解決手段は単独で発せられる命令の例外処理に
つき既に存在する例外処理プロシージャを活用するもの
である。対命令を実行するためのマイクロコードはパイ
プラインの階位4中に例外条件の存在をテストすること
によって例外を発見する。このプロシージャは第9図の
フローチャート内に示す。もし例外が発見された場合に
は、非対化再始動プロシージャが呼出され対命令を打切
り対内の第1命令を単独で発しなおす。
現存する例外処理プロシージャを活用するには、もしプ
ログラムが非対化命令マシーンにより実行中の場合には
発生したであろうマクロ状態と一致する単独命令例外処
理プロシージャに対して内部マクロ状態を提供する必要
がある。
この一致したマクロ状態は、例外が階位4内で発見され
た時に階位5中に発生するロードとストアを禁止する段
階を含む第10図のフローチャートに描かれた非対化再
始動プロシージャによって提供される。かくして、スタ
ックレジスタの内容は変化せず、内部マクロ状態は打切
られた対の直前に位置するプログラム内の命令の実行に
よって発生する状態である。このマクロ状態は、プログ
ラムが非対化命令マシーンにより実行される場合に例外
処理プロシージャに提示される状態と一致する。
階位5のロードとストアを禁止する他に、非対化再始動
はパイプラインをフラッジしその対の第1命令を単独命
令として発しなおす。もし例外が第1の命令と関連した
ものであれば、その単独マイクロコードは再び同じ例外
に遭遇し、非対化命令マシーンの場合の如く例外を処理
することができる。
もしその例外が第2の命令と関連したものであれば、第
1の命令は事件なしに完了し、また第2の命令は再び例
外に遭遇することになろう。もし第2の命令がこの時対
になっていなければ、単独のマイクロコードが例外を処
理することになろう。
もし対になっていれば、もう一つの対になっていない再
始動が行われることになろう。
対になっていない再始動プロシージャは処理能力を低め
るが、例外発生の頻度が比較的少ないため、この不利益
は複雑度が著しく軽減されることに鑑みて受は容れるこ
とができる。
第11A〜IIG図は一対の命令が実行中に例外を処理
するための種々のパイプライン段とプロシージャを示す
ものである。
第11A図において、パイプライン25は、命令とアド
レスの待ち行列211と21A1および命令とアドレス
階位レジスタ集合251と25Aを備える命令とアドレ
スの側に分割される。更に、命令マルチプレクサ90I
とアドレスマルチプレクサ90Aは命令とアドレスサイ
ドのIQ2とIQ3レジスタとランクレジスタの出力を
、それぞれFUIOのアドレス計算ハードウェアに選択
的に接続する。第11B〜IIG図において、イネーブ
ルとなったバスとレジスタは太線で示しである。
第11B図において、対命令A+Bは発令態勢にあり、
命令サイドの階位Oレジスタ181と201から出力さ
れ、AとBのアドレスはアドレスサイドの階位Oレジス
タ18Aと20Aから出力される。命令のビットはDC
Oバス28.30上のEPTへ転送される。
第11C〜11F図は階位1から階位4の対命令の進行
を描いたものである。階位4で、マイクロコードは演算
オーバーフロービットもしくはページ障害のセットの如
き例外をテストする。もし何ら例外が発見されなければ
、対命令は階位5を通って継続し退避する。このテスト
は例外ステータスビットを分岐条件ビットとして活用す
るマイクロコード内の条件付分岐によって実行すること
ができる。例えば、ビットを示す例外は条件コードレジ
スタ内にストアされる演算オーバーフロービットとする
ことができよう。
第11G図は対比されていない再始動プロシージャを示
す。マイクロコードはアドレスマルチプレクサ90Aを
制御して命令Aのアドレスをアドレス計算ハードウェア
に転送する。更に、対A十Bとそれらのアドレスはそれ
ぞれ命令側とアドレス側の5個のレジスタを介して階位
1内ヘロードされパイプラインのフラッジを開始する。
第11H図において、命令計算ハードウェアはIC12
から命令をアクセスし、マイクロコードはIQマルチプ
レクサを制御して命令を命令ROレジスタ201に、命
令アドレスをアドレスROレジスタ20Aに経路選択す
る。
第1II図において、命令Aとそのアドレスがそれぞれ
命令ROFとアドレスROF20Iと20Aに転送され
たところである。
第11J図において、命令Aは単独に発しなおされたと
ころである。
第11に図は非対化再始動プロシージャを実行するだめ
の制御システムのブロックダイヤグラムである。第11
に図について述べると、制御メモリの出力はMCR3レ
ジスタ100に接続され、それらはMCR4とMCR5
のレジスタ102.104の他に、マイクロコードパイ
プラインを形成し、同パイプラインは命令パイプライン
25と同期して動作し、パイプライン内の命令ファミリ
ーを実行するに必要な制御信号を提供する。階位4のマ
イクロコードはANDゲート106の第1の入力ボート
に接続されるmビットフィールドを含む。EU36のA
LUにより発生させられた例外表示テストビットフィー
ルドはマツチされたMUXII(1)入力に接続される
。MUXlloの制御ボートは階位5のマイクロコード
の制御フィールドに接続され、出力はANDゲート10
6の第2人力ボートへ接続される。ANDゲート106
の出力は第1デコーダ(DECI)1120入カへ接続
される。DEClの出力は例外条件が発見された場合に
パイプラインをフラッジさせ階位5の書込み操作を禁止
する制御信号である。
さて、第11に図に示すシステムの動作を説明する。階
位5のマイクロコードの制御フィールドによってMUX
IIOは実行中の命令ファミリーについてテストされる
特定の例外表示ステトビフトを伝送することになる。も
し例外条件が発生したならば、伝送されるテストビット
は論理“1”となり、ANDゲート106は開き、mビ
ットの階位5のマイクロコードフィールルドは解読され
て非対化再始動プロシージャ実行のための制御信号が発
生する。
もし例外条件が発生していなければ、伝送されるテスト
ビットは論理“0”であり、ANDゲート106は閉じ
、デコーダの出力によって非対比再始動プロシージ中は
実行されない。
分岐命令処理のプロシージャを以下に第12図と第13
図のフローチャートについて解説する。
多(のパイプライン化されたシステムの如(、分岐予測
ラム(B P R)が含まれている。それぞれの分岐命
令についてBPR内の分岐予測ビット(B P B)の
状態は、それと関連する分岐命令が実行された最終時に
おける分岐条件の値を示す。
分岐条件ビットは再び同一値を有するものと仮定する。
第12図について述べると、もし分岐が行われないであ
ろうとBPBが予測すると、アドレスの昇順に予備読出
しが続けられる。もし分岐が行われると予測されると、
目的アドレスのアドレスが形成される間、予備読出しが
停止される。いったんこの目的アドレスが形成されると
、目的ロケーションにおいて予備読出しが再開される。
第7図について上記したように、MEPTは1対内の第
1と第2の命令のビットにより一義的に決定され、命令
の順序を反映する、即ち、MSBフィールドは第1命令
のEPからのビットを含み、LSBフィールドは第2命
令のBPからのビットを含む。この一義的なMEPTは
第1もしくは第2の命令が分岐命令であるかどうかを表
示するマイクロコードにアクセスする。
分岐条件は階位4で求められる。BPBは一対の命令と
共にパイプIDビットとしてパイプライン内を移動し、
先に実行された命令によって設定された分岐条件ピッ)
 (BCB)と比較される。
もしBPBと分岐条件ビットがマツチすれば、パイプラ
インの内容は正しく、正規の処理が続けられ、対命令は
退避する。もしBPBとBCBがマツチしなければ、パ
イプライン中の以下の命令は正しくなく分岐回復が起こ
らなければならない。
さて、第10図について述べると、分岐回復の第1ステ
ツプは分岐命令が対内の第1命令であるか第2命令であ
るかどうかに依存する。上述の如く、マイクロコードル
ーチンは2つの場合について異なっている。もし予測誤
りした分岐命令が対の第1命令であれば、第2命令の階
位5の蓄積は当該命令が第1の命令に次いで実行される
べき命令ではないから禁止されるべきである。更に、続
(命令は全てパイプラインからフラッジされ、分岐に必
要とされる更新は全てやり直される。もし予測を誤った
分岐命令が対の第2命令である場合には、階位5の対命
令と関連する記憶が完了する。
パイプラインの残りの段と先取り待ち行列は以前通りフ
ラッジされる。
分岐の予測誤りの場合には、新たなアドレスを形成して
プログラム内の分岐命令に続く正確な次の命令のロケー
ションで先取りを再開する。
テーブル1 第1       イエス   R5PE+1第1  
     ノー   R5PFのTARG第2    
   イエス   R5PS+1第2       ノ
ー   R5PSのTARGアドレスの計算し直しはB
PBがBCBとマツチしない場合しか必要でない。分岐
予測は不正確であったため、分岐命令に続くパイプライ
ン内の命令は不正確である。そのため、もしBPBが分
岐が行われたということを表示すれば、分岐命令に続く
パイプライン内の命令のアドレスはBRANCII−T
ARGである。然しなから、次の命令アドレスはBRA
NCII 1でなければならない。同様にして、もしB
PBが分岐が行われないことを示せば、分岐命令に続く
パイプライン内の命令のアドレスはBRANCII 1
となる。然しなから、次の命令アドレスはBRANCH
−TARGでなければならない。
テーブル1について述べると、第1列において、マイク
ロコードは現在、パイプラインのレジスタR5I−F内
に常駐する対内の第1命令が分岐命令であることを示す
、BPBは分岐が行われるであろうと予測誤りしたため
、次の命令のアドレスしBRANCH−TARGの代わ
りにBRANC)!+1となるはづである。
第11A図に戻ると、今やR5P−F内に常駐する分岐
命令のアドレスはアドレス側MUX90Aを介してFU
IOのアドレス計算ハードウェアへ転送される。このア
ドレスは増分されて取出される次の命令のアドレス、B
RANCII 1を形成する。
テーブル1の第2列では、マイクロコードは第1の命令
が分岐命令であることを示す。BPBは分岐が行われな
いであろうと予測誤りしたために、次の命令のアドレス
はBRANCII1の代わりにBRANCH−TARG
とならなければならない。
第11A図について述べると、現在、レジスタR51−
FとR5P−F内に常駐する分岐命令とそのアドレスは
、それぞれ命令サイドとアドレスサイドのMUX90I
と90Bを介してFUIOのアドレス計算ハードウェア
へ回送される。その後、アドレス計算ハードウェアは取
出される次の命令のアドレス、BRANCH−TARG
を計算する。
第14図は分岐予測機構を製作する制御システムのブロ
ックダイアグラムである。制御メモリ39とMCR3、
MCR4、MCR5のレジスタ100.102.104
は第11に図について上記した如く接続される。更に、
制御パイプラインの各階位は実行される命令に関する一
定の情報をストアするパイプID(PID)レジスタ1
20を含んでいる0分岐予測RAM (BPR)122
は出力がPIDレジスタ120に接続されることによっ
て、分岐予測ビット(BPB)がパイプライン内を伝播
し分岐命令が実行されるようになっている0階位PID
レジスタ120内にストアされたBPBはコンパレータ
124の第1人力に接続され、条件コードレジスタ12
6内にストアされるかALUから転送される分岐条件ビ
ットはコンパレータ124の第2人力に接続される。階
位4のマイクロコードのnビットフィールドは第1人力
に接続され、コンパレータ124の出力はMUX 12
7を介してANDゲート128の第2人力へ接続される
。MUX127は階位4のマイクロコードの制御フィー
ルドにより制御される。
ANDゲートの出力はデコーダ(DECA)130の人
力に接続される。DECA130の出力は分岐予測機構
を実行させる制御信号である。
次に第14図に示すシステムの動作を4つの別々のケー
スについて説明する。最初の2つのケースは、BCBが
先に実行された命令によって条件コードレジスタ126
内にセットされる1ビツトである場合の条件分岐命令に
関するものである。
上記の2ケースは先に実行されたファミリーもしくは分
岐命令を含む現在のファミリー内に先の命令が含まれて
いたがどうかによって区別される。
第2のケースは、BCBが先に実行された命令によりレ
ジスタファイル、例えばRegA内にストアされたデー
タを用いてALUによって計算される場合の条件分岐命
令に関する。更に、上記2ケースは先の命令が現在ファ
ミリー内に含まれるかどうかによって識別される。第1
のケースでは、条件コードレジスタ126内のBCBは
既に先の命令の実行中にセットされている。もしBCB
とPID120からのBPBがマツチしなければ、分岐
は予測誤りされたものであり、コンパレータ124の出
力がANDゲート128を開く。その後、nビット階位
4マイクロコードフィールドはDECA130へ移され
分岐予測機構を実行するに必要な制御信号を発生する。
上記の如く、nビットフィールドはファミリー内の分岐
命令の位置を示し、従って、デコーダの出力はこのロケ
ーションによって異なることになろう。
もしBCBとBPBがマツチすれば、コンパレータ12
4の出力はANDゲート128閉じ、パイプラインの内
容は正確であるから、分岐回復機構を実行させる制御信
号は発生しない。
もし、BCBが現在ファミリー内の一命令により書込ま
れる条件コードレジスタ126がらの1ビツトであれば
、BCBビットはレジスタファイルに書込まれる前にコ
ンパレータ124に提供されなければならない。MUX
127は階位4中にALUの出力を直接コンパレータ1
24へ提供するように制御された後、BCBは階位4中
で条件コードレジスタに書込まれる。
もしBCBがALUにより計算されレジスタデータが先
のファミリー内の1命令により書込まれたならば、レジ
スタデータはALUに転送され、ALU出力はMUX 
127を介してコンパレータ124へ転送される。もし
レジスタデータが現在ファミリー内の一命令によって発
生させられたら、データはレジスタファイルに書込まれ
る前に第6図について述べたハードウェアを利用してA
LUに提供され、ALU出力は階位4中にMUXを介し
てコンパレータ124へ転送される。その後同データは
階位5中にレジスタファイルに書込まれる。
以上、本発明を2個の命令ファミリーを並行実行するシ
ステムについて述べてきたが、本発明の原理は2個以上
の命令ファミリーについても等しく適用可能である。そ
の場合、対論理は2個以上のステータスフィールドに応
するように修正され、そのファミリを並行実行するため
に特別のマイクロコードルーチンが書込まれることにな
ろう。
更に、マイクロコードプロセッサについて説明してきた
が、同システムは論理アレイを用いて制御信号を発生さ
せる機械にも適用することができる。両システムとも一
定状況において利点をもち、その選択は本発明の実施に
とって重要な問題ではない。更に、レジスタスタック以
外の形のレジスタを使用することもできる。
第17図について説明したステータスビットは対論理に
よって命令ファミリーのEPを併合すぺきかどうかを判
断するために使用する。その代わり、EPは常に併合可
能とし、それと関連するマイクロコードは命令ファミリ
ーが並行して発せられかを制御することになろう。
更に、並行に発せられる目的命令部分集合の選択は必要
でない、マイクロコードルーチンは目標命令の集合から
の全ての可能な対命令について設けることができる。
かくして、本発明は望ましい実施例について解説したが
、その置換、変形は当業者にとって明らかであろう。従
ってそれは請求範囲に提示されるものを除いては本発明
を限定するものと考えるべきではない。
【図面の簡単な説明】
第1図は本発明のハイレベルブロックダイアグラム、 第2図は第1の対命令を順次並行処理する特殊例を示す
概略 図、 第3図は第2の対命令を順次並行処理する特殊例を示す
概略 図、 第4図は従来技術による3段パイプラインのブロック線
図、 第5図は本発明の実施例に使用される6段パイプライン
の概略線図、 第6図はバイパス回路を備えるマルチポートレジスタフ
ァイルの概略線図、 第7図は本発明の実施例に使用される対論理を示す概略
線図、 第8図は本発明の実施例に使用されるマイクロメモリの
メモリマツプのブロック 図、第9図は本発明の例外処
理プロシージャ例のフローチャート図、 第10図は本発明の非対再開始プロシージャの例のフロ
ーチャ−ト図、 第11A図〜IIJ図は本発明の例外・分岐処理プロシ
ージャに関するパイプライン段を示す詳細概略線図、 第11に図は例外処理制御システムのブロックダイアグ
ラム、 第12図は本発明の分岐プロシージャ例のフローチャー
ト図、 第13図は分岐予測誤りを処理するプロシージャ例のフ
ローチャート図、 第14図は分岐予測機構制御システムのブロックダイア
グラム。 10・・・・・・読出し装置、 FU12・・・・・・アドレス計算ハードウェア、14
.16・・・・・・命令待ち行列レジスタ、18.19
・・・・・・パイプラインレジスタ、22.24・・・
・・・デコード装置、26・・・・・・対論理装置、 28.30・・・・・・バス。 手 続 補 正 書(方式) ■、事件の表示 平成2年特許願第135137号 2、発明の名称 データプロセッサの命令処理システム 及び方法 3、補正をする者 事件との関係

Claims (19)

    【特許請求の範囲】
  1. (1)1クロックあたり1個以上の命令の割当で命令を
    処理しやすくしたデータプロセッサの命令処理システム
    において、 プログラム内のn個の順次命令(nは所定の整数値)を
    読出す手段と、 一連のパイプライン段を有し1クロック中に各パイプラ
    イン段でn個の命令を受入れる資源を備えるパイプライ
    ンで、その際上記受入れられたファミリーが非分岐命令
    を含むタイプであって、上記非分岐命令の一つがメモリ
    参照タイプの命令であって、その結果上記パイプライン
    が命令ファミリーを退避させ各クロック毎に新たな命令
    ファミリーを受入れることが可能になったものと、 読出された命令ファミリーに呼応してその命令ファミリ
    ーと関連する解読結果を発生するデコーダと、 上記解読結果に呼応して1クロック中に上記命令ファミ
    リーを発生する手段と、 上記解読結果に呼応して上記パイプラインを制御して上
    記読出された命令ファミリーを処理し上記パイプライン
    段を経て上記読出されたファミリーを進める手段と、 から成る前記システム。
  2. (2)上記パイプラインが、 制御信号をアクセスして上記命令ファミリーを実行する
    解読手段と、 データアドレス発生段と、 読出しオペランド段と、 論理演算段と、 ライトバック/ストア段と、かる成る請求項1のシステ
    ム。
  3. (3)上記パイプライン資源が、 ファミリー内の命令の実行から得られるデータをストア
    し、上記読取られたファミリーが上記読出されたオペラ
    ンド段内で処理される時に上記読出されたファミリー内
    の命令を実行するために必要なオペランドを提供するマ
    ルチポートレジスタファイルと、 第1の命令の実行により生成するデータをその生成デー
    タに応じてファミリー内の第2命令を実行するために必
    要なオペランドデータとして提供した後、上記生成デー
    タを上記レジスタファイルオペランド段内にストアする
    手段と、から成る請求項2のシステム。
  4. (4)クロックあたり1個以上の命令の割当で命令を処
    理しやすくするデータプロセッサの命令処理システムに
    おいて、 プログラム内のn個の順次命令(nは所定の整数値)の
    ファミリーを読出す手段と、 一連のパイプライン段を備え、1クロック中に各パイプ
    ライン段でn個の所定の選択した命令形式のファミリー
    を受入れる資源を備え、その際、上記受入られたファミ
    リーが多数の非分岐命令を備え、上記命令の一つがメモ
    リ参照形式の命令であって、上記パイプラインが命令フ
    ァミリーを退避させ各クロック毎に新たな命令ファミリ
    ーを受入れることができるようになったものと、 読出された命令ファミリーに呼応し、上記読出された命
    令ファミリーと関連する解読結果を発生するデコーダと
    、 上記解読結果に応じて、もし上記読出された命令ファミ
    リーが上記所定の選択形式命令より成る場合にのみ1ク
    ロック中に上記読出された命令ファミリーを発する手段
    と、 上記解読結果に応じて、上記パイプラインを制御して上
    記読出された命令ファミリーを処理し上記ファミリーを
    上記パイプライン段を経て進ませる手段と、 から成る前記システム。
  5. (5)上記デコーダが、更に、 上記読出された命令ファミリーが上記所定の選択命令形
    式のみより成るかどうかを判断する手段を備え、上記発
    令手段が、更に、上記判断手段に呼応して、上記読出さ
    れたファミリーが上記所定の選択命令形式より成る場合
    にのみ1クロックで上記読出されたファミリーを発する
    手段と、 から成る請求項4のシステム。
  6. (6)上記パイプラインが、 制御信号にアクセスして上記命令ファミリーを実行する
    解読段と、 データアドレス発生段と、 読出しオペランド段と、 論理演算段と、 ライトバック/ストア段と、から成る請求項5のシステ
    ム。
  7. (7)上記パイプライン資源が、 上記読出されたファミリー内の命令の実行により生成す
    るデータをストアし、上記読出されたファミリーが上記
    読出しオペランド段内で処理中に上記ファミリー内で命
    令を実行するために必要なオペランドを提供するマルチ
    ポートレジスタと、 第1の命令の実行により生成するデータをその生成デー
    タに応じてファミリー内の第2命令の実行に必要なオペ
    ランドデータとして提供した後、上記生成データを上記
    レジスタファイルオペランド段内にストアする手段と、 から成る請求項6のシステム。
  8. (8)レジスタ、ALU、およびプログラム内の整序命
    令を実行する命令パイプラインの如き資源を含むコンピ
    ュータにおいて、プログラム内の連続命令のファミリー
    を同時実行するシステムが、メモリーロードもしくはメ
    モリライトバック形式の命令である上記命令の一つによ
    って多数非分岐命令を含む第1の命令ファミリーを取出
    す手段と、 上記読出された命令ファミリーに呼応して上記読出され
    た命令ファミリーと関連する解読結果を発生するデコー
    ダと、 上記解読結果に呼応して第1のクロックサイクル中に上
    記読出された命令ファミリー内の全命令を発する手段と
    、 上記解読結果に呼応して上記第1のクロックサイクル直
    後に続く第2のクロックサイクル中に発せられる第2の
    命令ファミリーを読出す手段と、 から成る前記システム。
  9. (9)上記命令の一つがロード即値命令である請求項8
    のシステム。
  10. (10)上記命令の一つがALU形式の命令である請求
    項8のシステム。
  11. (11)レジスタやALUの如き資源とプログラム内の
    整序命令を順次実行する命令パイプラインを備える形式
    のコンピュータシステムにおいて、プログラム内の連続
    命令のファミリーを同時実行するサブシステムが、 命令ファミリーを読出す手段と、 上記読出された命令に呼応して各読出し命令と関連する
    入口点フィールドを発生し、その際、各入口点フィール
    ドは入口点フィールドと関連する読出し命令を実行をす
    るために必要な資源を示すようになったデコーダと、 上記読出し命令と関連する上記入口点ステータスフィー
    ルドに呼応して、上記ステータスフィールドが上記読出
    し命令の実行によって資源競合をひきおこさないという
    ことを示す場合にのみ上記読出し命令が同時に実行でき
    るという表示を発生する手段と、 上記表示と入口点フィールドに呼応して、マイクロコー
    ドルーチンにアクセスするファミリー実行入口点をつく
    りだし命令ファミリーを同時実行する手段と、 を備える前記サブシステム。
  12. (12)命令がアドレス可能な命令メモリ内にストアさ
    れ、 命令パイプラインが現在アドレス解読中に命令メモリか
    ら読出されるべき次の命令のアドレスを発生する先取り
    アドレス発生装置を備え、上記サブシステムが更に上記
    表示に呼応して、次の命令ファミリーをして先取りさせ
    る一定値に対して先取りアドレスをセットする手段を備
    える請求項11のシステム。
  13. (13)レジスタやALUの如き資源と、プログラム内
    の整序命令を順次実行する命令パイプラインを備える形
    式のコンピュータシステムにおいて、プログラム内の連
    続命令のファミリーを同時実行するサブシステムが、 命令ファミリーを読出す手段と、 上記読出された命令に呼応して各読出し命令と関連する
    解読結果を発生し、その際各解読結果が解読結果と関連
    する読出し命令の実行に必要な資源を示すステータスフ
    ィールドを含むようになったデコーダと、 上記読出し命令と関連する上記ステータスフィールドに
    呼応し、上記読出し命令の実行が資源の競合をひきおこ
    さないということを上記ステータスフィールドが示す場
    合にのみ上記読出し命令を同時実行であるという表示を
    つくりだす手段と、 上記表示と解読結果に応じてファミリー実行解読結果を
    発生する手段と、 上記ファミリー実行解読結果に応じて命令ファミリーを
    並行発令する手段と、 を備える前記サブシステム。
  14. (14)前記同時実行手段が、更に、 命令ファミリー間の依存関係にもかかわらず命令ファミ
    リーを並行実行する手段を備える請求項13のサブシス
    テム。
  15. (15)更に、ファミリー内の命令の実行より生成する
    データをストアしファミリー内の命令の実行に必要なオ
    ペランドを提供するマルチポートレジスタファイルと、 第1命令の実行により生成するデータをその生成データ
    に応じてファミリー内の第2の命令を実行するに必要な
    オペランドデータとして直接提供した後、上記レジスタ
    ファイル内に上記生成データをストアする手段と、 を備える請求項14のサブシステム。
  16. (16)レジスタやALUの如き資源を含み、所定の命
    令集合から選択された順次命令のプログラムを実行する
    コンピュータにおいて、命令集合の第1の部分集合内に
    含まれた選択された対命令を同時実行し、その際選択さ
    れた対命令中の第2の命令が第2命令の実行が第1命令
    の実行の結果に依存するという意味で第1の命令に依存
    するようになったシステムが、 プログラム内の順次命令の対を読出す手段と、読出され
    た対中の各命令について解読結果を発生する解読手段と
    、 上記解読手段に呼応して上記所定対が同時実行可能な選
    択対の一つであるかどうかを表示する手段と、 上記表示手段に呼応し上記解読結果を受取り、もし上記
    所定の読出し対が選択された対の一つであった場合に対
    の識別をつくりだすデータ装置と、 上記識別に応じて所定対の順次実行中に存在する依存関
    係を除去することによって所定の選択対を同時実行する
    実行装置と、 から成る前記システム。
  17. (17)上記解読結果が各命令が上記第1の選択命令の
    部分集合内に含まれるかどうか、またどのコンピュータ
    資源がその命令を実行するために必要であるかを表示す
    るデータフィールドを含む請求項16のシステム。
  18. (18)上記表示手段が上記データフィールドを受取る
    ように構成され、読出された両命令が上記第1の部分集
    合内に含まれ、読出された対命令の同時実行から何らの
    資源競合も生じないことを上記データフィールドが表示
    する場合にのみ上記所定対が上記選択対の一つであるこ
    とを表示する請求項16のシステム。
  19. (19)所定命令から選択された順次命令のプログラム
    を実行するコンピュータにおいて、順次実行中に対中の
    第2命令が、第2命令の実行が第1命令の実行結果に保
    存するという意味で第1の命令に依存するような選択対
    命令の同時実行方法において、 プログラム内の一対の所定順次命令を読出し、読出され
    た対命令中の各命令に付いて解読結果を発生し、 上記解読結果に応じて上記所定対命令が同時実行可能な
    選択対の一つであることを表示し、上記表示と解読結果
    に応じて、もし上記所定の読取り対命令が選択対の一つ
    であれば一対の識別をつくりだし、 上記識別に応じて、所定対命令の順次実行中に存在する
    依存関係を除去することによって所定選択対を同時実行
    する、 段階より成る前記方法。
JP2135137A 1989-05-24 1990-05-24 データプロセッサの命令処理システム Expired - Lifetime JP2810211B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35617089A 1989-05-24 1989-05-24
US356170 1989-05-24

Publications (2)

Publication Number Publication Date
JPH03116233A true JPH03116233A (ja) 1991-05-17
JP2810211B2 JP2810211B2 (ja) 1998-10-15

Family

ID=23400422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2135137A Expired - Lifetime JP2810211B2 (ja) 1989-05-24 1990-05-24 データプロセッサの命令処理システム

Country Status (5)

Country Link
US (8) US5390355A (ja)
EP (2) EP0902362A3 (ja)
JP (1) JP2810211B2 (ja)
CA (1) CA2016068C (ja)
DE (1) DE69033398T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08234982A (ja) * 1996-03-08 1996-09-13 Hitachi Ltd 並列処理装置

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
US5745723A (en) * 1989-09-04 1998-04-28 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
WO1993020505A2 (en) * 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
US5438668A (en) 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
JP3637920B2 (ja) * 1992-05-01 2005-04-13 セイコーエプソン株式会社 スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
JPH0651984A (ja) * 1992-06-05 1994-02-25 Hitachi Ltd マイクロプロセッサ
WO1994008287A1 (en) 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
WO1994016384A1 (en) * 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5490265A (en) * 1993-04-14 1996-02-06 Intel Corporation Late cancel method and apparatus for a high performance microprocessor system
US6138230A (en) * 1993-10-18 2000-10-24 Via-Cyrix, Inc. Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US6073231A (en) * 1993-10-18 2000-06-06 Via-Cyrix, Inc. Pipelined processor with microcontrol of register translation hardware
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
EP0779577B1 (en) * 1993-10-18 2002-05-22 VIA-Cyrix, Inc. Micoprocessor pipe control and register translation
DE69427734T2 (de) * 1993-10-29 2002-05-23 Advanced Micro Devices, Inc. Linearadressierter Mikroprozessorcachespeicher
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
DE69427265T2 (de) 1993-10-29 2002-05-02 Advanced Micro Devices, Inc. Superskalarbefehlsdekoder
US5878245A (en) 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US5604909A (en) 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US5559975A (en) 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
TW448403B (en) * 1995-03-03 2001-08-01 Matsushita Electric Ind Co Ltd Pipeline data processing device and method for executing multiple data processing data dependent relationship
US5802346A (en) * 1995-06-02 1998-09-01 International Business Machines Corporation Method and system for minimizing the delay in executing branch-on-register instructions
US5592488A (en) * 1995-06-07 1997-01-07 Micron Technology, Inc. Method and apparatus for pipelined multiplexing employing analog delays for a multiport interface
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US6065105A (en) * 1997-01-08 2000-05-16 Intel Corporation Dependency matrix
US5838939A (en) * 1997-05-09 1998-11-17 Sun Microsystems, Inc. Multi-issue/plural counterflow pipeline processor
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
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
US6192466B1 (en) * 1999-01-21 2001-02-20 International Business Machines Corporation Pipeline control for high-frequency pipelined designs
EP1050809A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Computer instruction dependency
EP1050808B1 (en) * 1999-05-03 2008-04-30 STMicroelectronics S.A. Computer instruction scheduling
US6609191B1 (en) * 2000-03-07 2003-08-19 Ip-First, Llc Method and apparatus for speculative microinstruction pairing
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
GB2424727B (en) * 2005-03-30 2007-08-01 Transitive Ltd Preparing instruction groups for a processor having a multiple issue ports

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57130150A (en) * 1981-02-03 1982-08-12 Nec Corp Register control system
JPS58187850U (ja) * 1982-06-04 1983-12-13 株式会社日立製作所 ベクトル処理装置
JPH02130635A (ja) * 1988-11-11 1990-05-18 Hitachi Ltd 複数命令同時処理方式
JPH02227730A (ja) * 1989-01-13 1990-09-10 Internatl Business Mach Corp <Ibm> データ処理システム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
JPS6028015B2 (ja) * 1980-08-28 1985-07-02 日本電気株式会社 情報処理装置
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
JPS58189738A (ja) * 1982-04-30 1983-11-05 Hitachi Ltd デ−タ処理システム
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
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
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
US4794517A (en) * 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
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.
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
AT386981B (de) * 1987-04-24 1988-11-10 Philips Nv Trockenrasierapparat mit einem verschiebbaren rolladen
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
US4992938A (en) * 1987-07-01 1991-02-12 International Business Machines Corporation Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置
US4875160A (en) * 1988-07-20 1989-10-17 Digital Equipment Corporation Method for implementing synchronous pipeline exception recovery
DE68926701T2 (de) * 1988-08-09 1997-02-20 Matsushita Electric Ind Co Ltd Datenverarbeitungsgerät zur parallelen Dekodierung und parallelen Ausführung von Befehlen mit variabler Wortlänge
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5072364A (en) * 1989-05-24 1991-12-10 Tandem Computers Incorporated Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
EP1526446A3 (en) * 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
US5592679A (en) * 1994-11-14 1997-01-07 Sun Microsystems, Inc. Apparatus and method for distributed control in a processor architecture
US5655115A (en) * 1995-02-14 1997-08-05 Hal Computer Systems, Inc. Processor structure and method for watchpoint of plural simultaneous unresolved branch evaluation
US5878252A (en) * 1997-06-27 1999-03-02 Sun Microsystems, Inc. Microprocessor configured to generate help instructions for performing data cache fills

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57130150A (en) * 1981-02-03 1982-08-12 Nec Corp Register control system
JPS58187850U (ja) * 1982-06-04 1983-12-13 株式会社日立製作所 ベクトル処理装置
JPH02130635A (ja) * 1988-11-11 1990-05-18 Hitachi Ltd 複数命令同時処理方式
JPH02227730A (ja) * 1989-01-13 1990-09-10 Internatl Business Mach Corp <Ibm> データ処理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08234982A (ja) * 1996-03-08 1996-09-13 Hitachi Ltd 並列処理装置

Also Published As

Publication number Publication date
US5574941A (en) 1996-11-12
DE69033398D1 (de) 2000-01-27
JP2810211B2 (ja) 1998-10-15
US6266765B1 (en) 2001-07-24
EP0399762A2 (en) 1990-11-28
EP0399762A3 (en) 1992-01-22
EP0902362A2 (en) 1999-03-17
EP0399762B1 (en) 1999-12-22
US6009506A (en) 1999-12-28
US5752064A (en) 1998-05-12
EP0902362A3 (en) 2001-10-04
US5390355A (en) 1995-02-14
US5628024A (en) 1997-05-06
CA2016068A1 (en) 1990-11-24
DE69033398T2 (de) 2000-05-18
US5918032A (en) 1999-06-29
CA2016068C (en) 2000-04-04
US6092177A (en) 2000-07-18
AU5515390A (en) 1990-11-29
AU630697B2 (en) 1992-11-05

Similar Documents

Publication Publication Date Title
JPH03116233A (ja) データプロセッサの命令処理システム
US5072364A (en) Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
JPH03116236A (ja) 例外処理方法及び例外処理装置
US5606676A (en) Branch prediction and resolution apparatus for a superscalar computer processor
US4200927A (en) Multi-instruction stream branch processing mechanism
US6247122B1 (en) Method and apparatus for performing branch prediction combining static and dynamic branch predictors
JPH05143336A (ja) デジタル・コンピユータ及び分岐命令実行方法
EP0357188B1 (en) Pipelined processor
US20060179265A1 (en) Systems and methods for executing x-form instructions
US5812809A (en) Data processing system capable of execution of plural instructions in parallel
US5461715A (en) Data processor capable of execution of plural instructions in parallel
US5771366A (en) Method and system for interchanging operands during complex instruction execution in a data processing system
JP3736866B2 (ja) スーパーパイプライン式スーパースカラーマイクロプロセッサ用のマイクロコントロールユニット
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
JPS61110238A (ja) マイクロプログラム式並列プロセツサ
JPH06131180A (ja) 命令処理方式および命令処理装置
JP3102399B2 (ja) データ処理装置及び方法
JPH01258032A (ja) パイプライン処理機構を持つデータ処理装置
JPH11272463A (ja) 記憶装置及び情報処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080731

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090731

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100731

Year of fee payment: 12

EXPY Cancellation because of completion of term