JP3161711B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP3161711B2
JP3161711B2 JP01706688A JP1706688A JP3161711B2 JP 3161711 B2 JP3161711 B2 JP 3161711B2 JP 01706688 A JP01706688 A JP 01706688A JP 1706688 A JP1706688 A JP 1706688A JP 3161711 B2 JP3161711 B2 JP 3161711B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
circuit
group
subsequent
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
JP01706688A
Other languages
English (en)
Other versions
JPH01194031A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP01706688A priority Critical patent/JP3161711B2/ja
Publication of JPH01194031A publication Critical patent/JPH01194031A/ja
Application granted granted Critical
Publication of JP3161711B2 publication Critical patent/JP3161711B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はいわゆる汎用コンピユータ等の、プログラム
からみて概念的に命令が一つずつ実行される情報処理装
置に関わり、特に処理速度向上のために複数の演算器に
て複数の命令を同時に実行する上で重要となる方式に関
する。
〔従来の技術〕
概念的に命令が一つずつ実行されるコンピユータの
内、並列演算によって高速化を図つた例として、IBM360
/91に関する文献(R.M.Tomasule“An Efficient Algori
thm for Exploiting Multiple Arithmetic units",IBM
Journal,1967.Jan)や日本公開特許昭58−176751“命令
語解読ユニツト”に記載の技術がある。これらのコンピ
ユータでは、概念的に順序付けられた複数命令が異なる
演算器で実行されるため結果の書き込みが概念的順序と
異なる場合がある。従つて割り込みが発生した場合割り
込みの原因となつた命令に対し、どの命令まで実行され
たかが一般的には識別困難である。また分岐命令で分岐
判定が下るまでの間予測判定に基づく実行を行なう方式
を用いる場合、予測失敗時に予測命令による結果の誤つ
た書き込みが生じると、その回復処理が必要となる。
〔発明が解決しようとする課題〕
米国IBM社の370アーキテクチヤーに準拠する情報処理
装置に於いては、上記のような結果の書き込み順序の逆
転はプログラムから観測されてはならない。従つて上記
のような複数演算器を有し命令の同時もしくは追い抜き
実行の有り得る情報処理装置では、370アーキテクチヤ
ーにおける命令実行順序仕様に準拠するためには結果の
書き込みによつて失われる記憶装置のフイールド上のデ
ータとそのアドレスを個々の命令実行に際して予め待避
しておき、命令実行のオーバランが発生し該命令の実行
を無効化する必要が生じた場合は待避したデータを再び
元のフイールドに回復するといつた処理を行なう必要が
ある。この方法は日本特公昭56−40382「情報処理装
置」又は対応するUS特許4,385,365にて開示されている
ように従来でも類似の目的のために使用することがあ
る。しかし、この方法は制御が複雑であること、データ
とアドレスの待避レジスタが必要でコストが高くなるこ
と、データの回復に時間を要するので、この命令実行の
無効果が頻発すると処理装置全体の性能を返つて下げる
可能性がある等の問題点がある。またさらに、370アー
キテクチヤーにおける主記憶に対して書き込みのオーバ
ランが発生すると、フイールドの回復前に他のプロセツ
サやチヤネルからオーバランして書き込まれたデータを
参照される可能性があり、その場合は上記待避回復によ
る順序保証方式によつても該アーキテクチヤーによる順
序規定に準拠することができない。
上述のような命令実行のオーバランが発生するのは命
令実行に付随する割り込みが起こる場合や、分岐命令の
後続命令を予測実行していたときに予測が誤つていたこ
とが判定された場合等である。
本発明は複数の演算器を有し複数の命令を効率的に実
行できる情報処理装置を提供することを目的とする。
さらに本発明は、複数の命令を並列に実行でき、かつ
命令の実行の中断を簡単に行える情報処理装置を提供す
ることを他の目的とする。
〔課題を解決するための手段〕
上記目的は、本発明に於いては、同時に実行する複数
の命令の間では結果の書き込みの追い抜きが発生しない
よう制御することで実現する。この為、以下に述べるよ
うな命令実行に関する制御手段を用いる。
(1)概念的実行順序の観点から連続している複数の命
令を同時に演算器にセツトアツプする命令セツトアツプ
手段。ただし、分岐命令の後続命令は分岐の成立側,不
成立側のいずれであつても該分岐命令に連続すると見な
す。
(2)同時にセツトアツプする複数の命令のうちの任意
の命令に着目した場合、該命令の演算実行に付随し該命
令もしくはその後続命令を無効化する要因が検出される
可能性のある最終演算ステージより前に書き込みを実行
する後続命令が同時にセツトアツプすることのないよ
う、演算器へセツトアツプする命令の組合せを制限する
セツトアツプ命令制限手段。
(3)同時にセツトアツプした複数命令の実行に当たつ
て、何らかの命令で実行待ち合わせ要因が発生したと
き、書き込みを行なう可能性のある全ての後続命令の実
行を待ち合わせるよう制御する後続命令実行待ち合わせ
手段。
(4)同時にセツトアツプした複数の命令のうちのいず
れかの命令の演算実行に付随して該命令もしくはその後
続命令を無効化する要因が検出された場合、該命令及び
同時に実行している全ての後続命令の内、無効化すべき
全ての命令実行をそれらの書き込みステージまでに抑止
する後続命令実行抑止手段。
〔作用〕
上記(1)〜(4)で述べた手段を設けることによ
り、同時に演算実行されている複数命令の何れに於いて
も自命令もしくは後続命令を無効化する要因がない場合
はこれ等は同時に実行が終了するので処理時間は大幅に
短縮される。もし、いずれかで無効化要因が検出された
ときには書き込みのオーバランがおきないので、上で述
べたような回復動作成しに引き続き正しい命令もしくは
割り込み処理等を直ちに開始することができる。
〔実施例〕
以下本発明に好適な実施例を図面を用いて説明する。
以下の実施例では日立製作所のMシリーズアーキテクチ
ヤに基づく計算機を例に取り説明を行なう。
上記アーキテクチヤにおける命令フオーマツトの例を
第9図に示す。(1)はロード命令,ストア命令,四則
演算命令等に用いられる命令形式の例である。OPは命令
コードであり、命令の種類を示す。R1は第1オペランド
を格納する汎用レジスタの番号を示す。X2,B2は第2オ
ペランドのアドレスを生成するために用いるインデツク
スレジスタ、及びベースレジスタの番号を示す。インデ
ツクスレジスタ、及びベースレジスタは汎用レジスタを
指定する。D2はアドレスを生成するために用いるアドレ
ス変位である。オペランドアドレスはインデツクスレジ
スタ,ベースレジスタ、およびアドレス変位を加算して
生成される。加算命令は第2オペランドアドレス上の主
記憶データを読みだし、R1で指定される汎用レジスタ上
の第1オペランドと加算し、結果を再び汎用レジスタR1
上に格納する。(2)は条件分岐命令に用いられる命令
形式の例である。OPは命令コードであり、命令の種類を
示す。M1は分岐成立となる条件コードの値を指定するマ
スク値である。X2,B2,D2は(1)と同様に第2オペラン
ドアドレスを指定する。分岐成立の場合第2オペランド
アドレス上の命令から実行を継続する。
第1図は本発明による計算機の全体構成を示す。1は
記憶装置,2は命令制御ユニツト、3は演算ユニツト、4,
5,6はn個の演算器E1,E2,....,En、7は演算制御ユニツ
ト、8は入力交換回路、9は出力交換回路、そして10は
入出力装置である。
記憶装置1はプログラムやデータを保持し、さらにこ
れ等の読みだし、書き込みの制御を行い従来技術により
構成する。また入出力装置10は記憶装置1に対し外部デ
ータの書き込みと、外部へのデータ読みだしを要求する
が、これも従来技術にて構成する。命令制御ユニツト2
は、複数の命令を記憶装置1から読みだし、同時に最大
p個の命令の解読を行ない、これらの命令に必要なオペ
ランドの読みだしを同時に行なう。このため命令制御ユ
ニツト2から命令読みだしアドレスMAIが記憶装置1に
送出され、命令列MDIが記憶装置1から命令制御ユニツ
ト2に送出される。また最大p個のオペランドアドレス
MAi(i=1〜p)が同時に2から1に送出され、読み
だされたp個のオペランドデータMDOi(i=1〜p)が
1から2に送出される。MAi(i=1〜p)の送出とと
もに、後述の命令キユー(211(第2図))のp個の入
力ポインタQIPi(i=1〜p)が命令制御ユニツト2か
ら記憶装置1に送出され、さらにオペランドデータMDOi
(i=1〜p)の送出に伴つて、データの送出を示すア
ドバンス信号ADVi(i=1〜p)及び各データの一次格
納場所である後述のオペランドバツフア(216(第2
図))の番号OBNOi(i=1〜p)が記憶装置1から命
令制御ユニツト2に送出される。本実施例ではOBNOi
(i=1〜p)としては順に入力ポインタQIPi(i=1
〜p)と同じ値を返す。これは後述するように本実施例
では命令キユー211(第2図)とオペランドバツフア216
(第2図)を1対1に対応させ、同一の入出力ポインタ
により制御するからである。
命令制御ユニツト2は解読の完了した命令の中から実
行順に連続した最大m個を選択し、これ等及びこれ等の
付随情報を演算ユニツト3に同時にセツトアツプする。
このため、各情報のセツトアツプを行なうための信号線
群をm命令分としてm組設ける。これらをセツトアツプ
ポートi(i=1〜m)と呼ぶ。入力交換回路8にセツ
トアツプする情報には、セツトアツプポート(i=1〜
m)に対応して、命令INSTi(i=1〜m),レジスタ
オペランドRDi(i=1〜m),メモリオペランドMDi
(i=1〜m),オペランドアドレスMAi(i=1〜
m)、そして書き込みレジスタ番号RWAi(i=1〜m)
がある。また演算制御ユニツト7にセツトアツプする情
報には、セツトアツプポートi(i=1〜m)によりセ
ツトアツプする命令のうち有効なものを示す有効命令信
号IRDYi(i=1〜m),各命令の演算を実行させる演
算器番号ENOi(i=1〜m),条件分岐命令であること
を示す解読情報BCi(i=1〜m),条件分岐命令のM1
フイールド(マスク)BCMi(i=1〜m)、そしてメモ
リオペランドの読みだしが遅れていることを示すオペラ
ンド待ち信号ADVWi(i=1〜m)がある。命令制御ユ
ニツト2は上記命令セツトアツプ制御を行なうため、演
算制御ユニツト7からセツトアツプポートi(i=1〜
m)毎にそのセツトアツプ完了を示す信号OBTi(i=1
〜m)、同時にセツトアツプされた命令の個々の演算開
始時刻のうち最後の時刻を示す最終開始時刻信号LBOP、
そして同時にセツトアツプサれた命令の個数を示す信号
LINOを受け取る。さらに命令制御ユニツト2は演算制御
ユニツト7から条件分岐命令の分岐成立信号TKNと、割
り込みの発生を示す信号INTを受け取る。
命令制御ユニツト2は出力交換回路9からセツトアツ
プポートi(i=1〜m)に対応した演算結果EDi(i
=1〜m)とそのレジスタ書き込み指令RWCi(i=1〜
m)、書き込みレジスタ番号RWAi(i=1〜m)を受け
取り、これに従い汎用レジスタ群200にこれらの結果の
書き込みを行なう。
演算器4,5,6はおれぞれ特定の種類の命令グループの
み実行可能なものあるいは全てを実行可能とするものの
いずれかで構成するものとする。各演算器には演算に必
要な入力データと演算実行制御情報が入力交換回路8か
ら送出される。演算器Ei(i=1〜n)への入力データ
としては、命令コードINSTEi,レジスタオペランドRDEi,
メモリオペランドMDEi,オペランドアドレスMAEi,書き込
みレジスタ番号RWAEiがあり、演算実行制御情報として
は、セツトアツプ完了信号OBTEi,演算実行許可信号EXEi
及び演算実行の取り消し信号RESEiがある。各演算器Ei
からは演算の出力データ及び演算制御情報が出力交換回
路9に送出される。演算器Eiからの出力としては、演算
結果EDEi,結果のレジスタ書き込み指令RWCEi,書き込み
レジスタ番号RWAEi,結果のメモリ書き込み指令STCEi,書
き込みメモリアドレスSTAEi,条件コードの変更を示す信
号CCSEi、そして条件コードCCEiがあり、また演算制御
情報としては演算の終了を示す信号EOPEi,完了型割り込
み条件の発生を示す信号INTCEi、そして抑止型割り込み
条件の発生を示す信号INTSEiがある。
全ての演算器Ei(i=1〜n)には、演算制御ユニツ
ト7から演算実行取り消し信号RESを入力する。取消信
号はRESは割り込み条件が発生したときもしくは条件分
岐命令で分岐予測が失敗したときに‘1'となり、このと
き、各演算器Ei(i=1〜n)は後続命令の演算実行を
取り消す。特にレジスタ書き込み指令RWCEi(i=1〜
n)、及びメモリ書き込み指令MWCEi(i=1〜n)を
抑止し、取り消すべき命令による結果の書き込みが生じ
ないようにする。またこの時全ての演算器Ei(i=1〜
n)は演算終了信号EOPEi(i=1〜n)を‘1'とす
る。
演算器Eiはセツトアツプ完了信号OBTEiに同期して入
力データを取り込む。以後命令やオペランドの条件等に
より1ないし複数サイクルをかけて演算実行を行なう
が、各サイクルの実行は信号EXEiが‘1'のときのみ許可
される。信号EXEiが‘0'のときは演算実行は待ち状態に
なる。信号EXEiが‘0'となるのは例えば必要なメモリオ
ペランドが到着していないときである。また、RESEi信
号が‘1'となつた場合、演算器Eiは直ちに演算実行を取
り消す。この時レジスタ書き込み指令RWCEi、及びメモ
リ書き込み指令MWCEiを抑止し、取り消すべき命令によ
る結果の書き込みが生じないようにし、また演算終了信
号EOPEiを1とする。個々の演算器の実行制御は複雑な
命令の演算を行なうものはよく知られたマイクロプログ
ラム制御によつて、また簡単な命令の演算を行なうもの
は通常の論理回路による制御等で行なえばよい。
第11図は第i番目の演算器Eiの構成例を示す。1101,1
102は演算数を保持するワークレジスタである。1101に
は入力交換回路よりレジスタオペランドRDEiを、1102に
は入力交換回路よりメモリオペランドMDEiを、さらに両
者に命令セツトアツプ完了信号OBTEi信号を入力する。
ワークレジスタ1101,1102は信号OBTEiが‘1'となつたと
き、それぞれ信RDEi,MDEiを取り込む。1103は入力交換
回路からOBTEi信号を受け取り、これが‘1'の時オペラ
ンドアドレスMAEi、書き込みレジスタアドレスRWAEiを
取り込む。1104は加減算器,シフタ,論理演算器等から
なるALUである。ALU1104にはワークレジスタ1101,1102
から演算数を、ALU制御回路1107からALU制御信号を入力
し、各命令の演算を行なう。ワークレジスタ1101,1102
にはALUの出力データパスを接続し、複数サイクルに及
ぶ演算を可能とする。このためALU制御回路1107からは
ワークレジスタ1101,1102へのデータ取り込み制御信号
を入力する。ALU制御回路1107にはOBTEi,INSTEi,EXEi信
号を入力する。ALU制御回路1107はマイクロプログラム
とその実行制御回路からなる従来技術で構成し、OBTEi
信号が‘1'となつたとき、INSTEi信号を取り込み、この
命令に対応したマイクロプログラムの最初のマイクロ命
令を読み出す。演算ステージが1サイクルで終了する命
令の場合、この最初のマイクロ命令に演算終了を、また
複数サイクルを要する場合は最後の演算ステージを制御
するマイクロ命令に演算終了を指定し、これをEOPEi信
号として出力する。マイクロ命令は各演算サイクル毎の
ALU制御を指定するが、指定に従つて実際に実行するの
はEXEi信号が‘1'となつたときである。1108は条件コー
ド生成回路であり、ALUから演算結果、ALU制御回路1107
から条件コード生成情報を入力し、演算ステージより1
サイクル後に条件コードCCEiを生成する。1109は割り込
み条件検出回路でありALUからの演算結果とALU制御回路
1107からの割り込み検出制御情報を入力し演算ステージ
より1サイクル後に割り込み条件発生信号INTCEi,INTSE
iを生成する。1110は書き込み制御回路であり、ALU制御
回路1107から結果書き込み制御情報を入力し演算ステー
ジより1サイクル後にSTCEi,RWCEi,CCSEi信号を生成す
る。また制御回路1110には入力交換回路8から信号RESE
i、演算制御ユニツト7から信号RESを入力し、これらの
うち何れが‘1'であつても、STCEi,RWCEi,CCSEiの各信
号を直ちに‘0'に抑止する。信号RES、及びRESiはさら
にALU制御回路1107にも入力し、これ等のうち何れが
‘1'となつても1107によるALU制御をキヤンセルする。1
105,1106は演算結果、書き込みメモリアドレス,書き込
みレジスタ番号を保持するパイプラインレジスタであ
り、演算ステージより1サイクル後にEDEi,STAEi,RWAEi
を出力する。E1−nの何れの演算器に於いてもALU制御
回路1107,書込み制御回路1110に相当する回路を有し、R
ES,TESi信号に対する動作は同様である。
演算制御ユニツト7は上記複数の演算器による命令の
並列実行を制御する。すなわち7は、演算終了信号EOPi
(i=1〜m)を監視し、現在演算実行中の全ての命令
が終了した時に、有効命令信号IRDYi(i=1〜m)で
示される最大m個の後続命令に対しセツトアツプ完了信
号OBTi(i=1〜m)を発行し、これを命令制御ユニツ
ト2と入力交換回路8に送出する。またこのとき命令制
御ユニツト2から送出される演算器番号ENOi(i=1〜
m)を取り込み、セツトアツプした命令の演算実行中こ
れを保持し、入力交換回路8及び出力交換回路9に送出
する。
演算制御ユニツト7はオペランド待ち信号ADVWi(i
=1〜m)を監視し、メモリオペランドの到着していな
い命令がある場合その到着まで、EXi(i=1〜m)信
号のうち該命令及びその後続命令の演算実行許可信号を
‘0'とする。この制御により、本発明においては該命令
の後続命令の演算実行が先に始まることを防止する。
演算制御ユニツト7は条件分岐命令の分岐判定を行な
い、分岐成立信号TKNを命令制御ユニツト2に送出す
る。このため出力交換回路9から条件コード変更信号CC
Si(i=1〜m),条件コードCCi(i=1〜m)を受
け取る。本実施例では条件分岐命令が解読された時点で
は、従来の計算機でよく行なわれるように該分岐命令は
不成立となるものと予測し、ひき続く命令を解読してい
く。従つて分岐成立信号TKNが‘1'となつたことは、予
測が失敗したことを意味するので、直ちに現在命令制御
ユニツト2にて解読中の命令を取り消し、次にターゲツ
トストリーム上の命令解読を始める。また現在演算実行
中の命令のうち該分岐命令の後続命令に対し演算実行の
取り消しを示す信号RESi(i=1〜m)を入力交換回路
8に送出する。
演算制御ユニツト7は出力交換回路9から演算実行中
の命令についての割り込み条件発生信号INTCi(i=1
〜m)及びINTSi(i=1〜m)を受取り、完了型割り
込み条件が発生した場合、割り込み条件の発生した命令
の後続命令の演算実行を取り消し、抑止型割り込み条件
が発生した場合、割り込み条件の発生した命令とその後
続命令の演算実行を取り消すよう取消信号RESi(i=1
〜m)信号を発行する。さらに直後にセツトアツプした
後続命令グループの演算実行を取り消すため、取消指示
信号RESを全ての演算器に対し送出する。また同時に命
令制御ユニツト2に対し割込み信号INTを送出する。
入力交換回路8はセツトアツプポートi(i=1〜
m)を介してセツトアツプするm個の命令に対し、上記
のセツトアツプデータをそれぞれの命令を演算実行する
演算器に振り分けて送出する。このために演算制御ユニ
ツト7からセツトアツプポート対応に演算器番号ENOi
(i=1〜m)を受け取る。
出力交換回路9には演算器Ei(i=1〜n)から上記
出力データや演算制御情報を入力しセツトアツプポート
i(i=1〜m)の順に並べかえて出力する。このため
に演算制御ユニツト7から演算器番号ENOi(i=1〜
m)を受け取る。出力情報は上記のように各ユニツトに
送出するが、さらに、演算結果のうち記憶装置1に書き
込むものに対し、そのデータEDi(i=1〜m),アド
レスSTAi(i=1〜m)、及びメモリ書き込み指令STCi
(i=1〜m)を記憶装置1に送出する。記憶装置1は
これらを受け取りメモリに書き込みをおこなう。
第2図は命令制御ユニツト2の詳細構成を示す。201
は命令読み出し回路であり、先読み命令バツフア202の
空き状態を監視し、空きがあるときは命令読み出しアド
レスMAIを記憶装置1に送出し、読みだされた命令デー
タMDIを命令バツフア202にセツトする。一回の命令読み
出しで通常は連続する数命令を得る。従つて、先読み命
令バツフア202は少なくとも一回の読み出しで得られる
命令の分だけの大きさを有する様構成する。命令バツフ
アとして分岐命令のターゲツト命令列を格納するために
もう一つの命令バツフア203が設けられている。分岐命
令で分岐成立が判定されないうちはセレクタ204は202を
選択し命令読みだし回路201に送出する。分岐命令で分
岐成立が判定されると分岐成功信号TKNを演算制御ユニ
ツトからセレクタ204に送出し、これに応答して以後セ
レクタ204は命令バツフア203を選択しこれを命令読出し
回路201に送出する。以上の命令読みだし制御は通常の
汎用計算機では最も典型的なものであり、容易に従来技
術によつて構成することができる。
205〜206はp個の命令レジスタである。命令読み出し
回路201は、セレクタ204で選択した命令バツフア202,20
3上の命令列から、連続したp個の命令を切り出し命令
レジスタ205から206に順にセツトする。このための命令
読みだし回路201の構成は日本公開特許昭58−176751
“命令語解読ユニツト”に開示されているのと同様であ
る。207〜208はp個の命令解読器でありそれぞれ命令レ
ジスタ205〜206に対応して命令を解読し解読情報を出力
する。解読情報としてデコーダDECi(i=1〜p)より
順に、命令のインデツクスレジスタ指定部XAi(i=1
〜p),ベースレジスタ指定部BAi(i=1〜p)を汎
用レジスタ群209に、アドレス変位部DSPi(i=1〜
p)をp個のアドレス加算器214〜215に、メモリオペラ
ンドを用いる命令であることを示す情報UOBi(i=1〜
p)をオペランド待ち制御回路210に送出する。さらに
解読情報として、命令コードINSTDi(i=1〜p),レ
ジスタオペランド番号RAi(i=1〜p),演算結果を
格納するための書き込みレジスタ番号WAi(i=1〜
p),命令の演算サイクル数ELi(i=1〜p)、その
命令の演算が各演算器Ei(i=1〜n)において実行可
能である事を示す情報E1SDi(i=1〜p),E2SDi(i
=1〜p),...,EnSDi(i=1〜p),条件分岐命令で
あることを示す情報BCDi(i=1〜p)、条件分岐命令
のマスク値BCMDi(i=1〜p)のそれぞれを、命令キ
ユー211に送出する。命令の解読が完了したことを示す
信号DSi(i=1〜p)をデコーダDECi(i=1〜p)
から命令キユー制御回路212,命令セツトアツプ制御回路
213,命令キユー211,オペランド待ち制御回路210にそれ
ぞれ送出する。
汎用レジスタ群209は命令で指定される16本の4バイ
トのレジスタからなる。デコーダ207〜208からインデツ
クスレジスタ指定部XAi(i=1〜p),ベースレジス
タ指定部BAi(i=1〜p)を入力し、指定された番号
のレジスタを読みだし、インデツクスレジスタデータXD
i(i=1〜p)及びベースレジスタデータBDi(i=1
〜p)として順にアドレス加算器AAi(i=1〜p)に
送出する。汎用レジスタ群209には命令待ちキユー211か
らm個のセツトアツプポート対応のレジスタオペランド
番号RRAi(i=1〜m)を入力し、これらに指定された
レジスタを読みだし、レジスタオペランドデータRDi
(i=1〜m)として入力交換回路8に送出する。さら
に汎用レジスタ群209には出力交換回路9よりm個のセ
ツトアツプポート対応の演算結果EDi(i=1〜m),
書き込みレジスタ番号RWAi(i=1〜m)及びレジスタ
書き込み指令RWCi(i=1〜m)を入力し、指定された
レジスタにこれらを書き込む。汎用レジスタ群209は上
記のように、同時に複数の読みだし,書き込みを行なう
が、これは従来により容易に構成可能である。
アドレス加算器AAi(i=1〜p)には、それぞれ、
インデツクスレジスタデータXDi(i=1〜p),ベー
スレジスタデータBDi(i=1〜p),アドレス変位DSP
i(i=1〜p)を入力し、これ等の加算結果をオペラ
ンドアドレスMAi(i=1〜p)として記憶装置1と命
令キユー211に送出する。オペランドアドレスMAi(i=
1〜p)は、該命令が分岐命令でなければ、メモリオペ
ランドのアドレスであり、記憶装置1から読み出したデ
ータはデータ信号MDOi(i=1〜p)によつてオペラン
ドバツフア216に送出する。一方、該命令が分岐命令で
あつた場合はメモリオペランドアドレスMAi(i=1〜
p)のうち対応するものはターゲツト命令アドレスであ
り、記憶装置1から読み出したデータはデータ信号MDI
によつて命令バツフア202もしくは203に送出する。
命令キユー211は上記命令解読情報を保持するk命令
分のキユーレジスタとその入出力回路からなる。kの値
は少なくとも上記p,mの何れよりも下回らないようにす
る。命令キユー211には、デコーダDECi(i=1〜p)
からp個の連続した命令の解読情報を入力しこれらを同
時にキユーイングする。この時実際にキユーイングする
命令は対応するデコード完了信号DSi(i=1〜p)信
号の‘1'となつているものであり、このとき、入力ポイ
ンタQIPi(i=1〜p)で示されるキユーレジスタにそ
れぞれセツトする。入力ポインタQIPi(i=1〜p)の
値は、命令待ち行列内の最新の命令のキユーレジスタの
次から連続するp個のキユーレジスタを順に示すように
する。なおk番目のキユーレジスタの次は1番目のキユ
ーレジスタが連続するものとする。命令キユー211から
は、キユー内の最も古い命令から最大m個の連続した命
令の解読情報を同時に取り出す。このため、m個の出力
ポインタQOPi(i=1〜p)の値は、待ち行列内の最も
古い命令から連続するm個のキユーレジスタを順に示す
ようにする。出力ポインタQOPi(i=1〜m)で選ばれ
た命令分の出力が上記m個のセツトアツプポートの実体
である。このとき実際に取り出したと見なすのは、命令
セツトアツプ制御回路213から出力する上記有効命令信
号IRDYi(i=1〜m)が‘1'となつているものであ
る。命令待ち行列の出力として、命令コードINSTi(i
=1〜m),オペランドアドレスMAi(i=1〜m),
書き込みレジスタ番号RWAi(i=1〜m)を入力交換回
路8へ、レジスタオペランド番号RRAi(i=1〜m)を
汎用レジスタ209へ、条件分岐命令表示BCi(i=1〜
p),条件分岐命令のマスク値BCMi(i=1〜p)を演
算制御ユニツト7へ、そして演算サイクル数ELi(i=
1〜m),演算器Ei(i=1〜n)での実行可能性表示
情報E1Si(i=1〜m),E2Si(i=1〜m),...,EnSi
(i=1〜m)を命令セツトアツプ制御回路213へそれ
ぞれ送出する。
オペランドバツフア216は、記憶装置1から送出され
るオペランドデータMDOi(i=1〜p)を保持するk個
のバツフアレジスタ(図示せず)とその入出力回路から
なる。216は記憶装置1からアドバンス信号ADVi(i=
1〜p)を受け取ると、付随して送出されるオペランド
番号OBNOi(i=1〜p)で示されるバツフアレジスタ
にオペランドデータMDOi(i=1〜p)を格納する。21
6は同時に最大p個のデータを格納する。本実施例では
k個のバツフアレジスタは上記命令キユーのk個のキユ
ーレジスタに対応している。すなわちメモリオペランド
を必要とする命令に関して、解読情報を格納するキユー
レジスタとメモリオペランドを格納するバツフアレジス
タとは同一番号のものを用いる。
オペランドバツフア216は、セツトアツプポート対応
に最大m個の命令のオペランドデータMDi(i=1〜
m)を同時に読みだし入力交換回路8に送出する。この
ため、オペランドバツフア216には命令キユー制御回路2
12から命令キユー出力ポインタQOPi(i=1〜p)を入
力する。
命令キユー制御回路212は命令キユー211のp個の入力
ポインタQIPi(i=1〜p)及びm個の出力ポインタQO
Pi(i=1〜m)を生成する。この制御回路212はQIPi
(i=1〜p)を命令セツトアツプ制御回路213,命令キ
ユー211,オペランドキユー制御回路210、そして、記憶
装置1へ送出する。制御回路212は出力ポインタQOPi
(i=1〜m)を命令セツトアツプ制御回路213,命令キ
ユー211,オペランドキユー制御回路210、そしてオペラ
ンドバツフア216に送出する。また、制御回路212にはデ
コーダDECi(i=1〜p)からデコード完了信号DSi
(i=1〜p)を、演算制御ユニツト7から最終開始時
刻信号LBOP,命令個数信号LINO,分岐成功信号TKN、そし
て割込み信号INTを入力する。命令キユー制御回路212の
より詳細な構成を第8図にしめす。801はQIP1の値を保
持するレジスタである。802〜803は定数値のインクリメ
ンタであり、レジスタ801の値を入力し、これに、順に
1,...,p−1を加算(ただしpを法とする)して得られ
る値を入力ポインタQIP2−pとして出力する。804は入
力ポインタ更新回路であり、p個のデコード完了信号DS
i(i=1〜p)と入力ポインタQIP1を入力し、分岐成
功信号DSi(i=1〜p)のなかで‘1'となつている信
号の数と入力ポインタQIP1の値をpを法として加算し、
結果をレジスタ801にセツトする。例えば同時に解読が
完了した命令が2個であつた場合,信号DS1,DS2が‘1'
でありDSj(j=3〜p)は‘0'である。このときこの
2つの命令は入力ポインタQIP1,QIP2で示されるキユー
レジスタ(図示せず)にその解読情報が格納される。そ
して、レジスタ801の内容は2増加される。レジスタ801
の初期値は0とする。すなわち最初の命令の処理に当た
つて予め値0を設定しておく。805はORゲートであり、
演算制御ユニツト7からの分岐成立信号TKN、及び割り
込み検出信号INTを入力しこれらの論理和を出力し、こ
れを入力ポインタ更新回路804及び出力ポインタ更新回
路806に送出する。出力ポインタ更新回路804はORゲート
805の出力値が‘1'となつたとき、レジスタ801を0に設
定する。これは、条件分岐命令が分岐成立となつたとき
は予測失敗を意味するので、命令待ち行列内の後続命令
を全て無効化し、改めてターゲツト命令の解読から処理
をやり直す必要があるからである。
807はQOP1の値を叔父するためのレジスタである。808
〜809はm−1個のインクリメンタであり、レジスタ807
は値を入力し、順にmを法として1,...,m−1インクリ
メントした値を出力ポインタ信号QOPj(j=2〜m)と
して出力する。出力ポインタ更新回路806にはレジスタ8
07の値と演算制御ユニツト7からの最終開始時刻信号LB
OP,命令数LINOを入力し、信号LBOPが‘1'となつたとき
信号LINOの値とレジスタ807の値をmを法として加算し
て得られる値をレジスタ807に設定する。レジスタ807の
初期値はレジスタ801に合わせ、0とする。ORゲート805
の出力値が‘1'となつたときはレジスタ807を0に設定
する。その理由は上記入力ポインタの場合と同じであ
る。
第2図の命令セツトアツプ制御回路213は、命令キユ
ー211内の解読済み命令の中から、セツトアツプ可能な
最大m個の命令を選び、これを有効命令信号IRDYi(i
=1〜m)によつて表示する。すなわち制御回路213
は、命令キユー211から上記各論理回路に同時に送出す
るm命令分のセツトアツプポートi(i=1〜m)のう
ち、どれが有効な命令の解読情報を載せているかを有効
信号IRDYi(i=1〜m)によつて表示する。信号IRDYi
(i=1〜m)の中で‘1'となつている信号に対応した
命令が有効であり、次のセツトアツプの対象である。一
回でセツトアツプ可能な命令グループの条件は次の通り
とする。
(1)セツトアツプ可能な命令グループは、命令待ち行
列の中で最も古い、すなわちプログラムにおける実行順
序として最初に実行すべき命令を第1の命令として、連
続する最大m個の命令からなる。
(2)該命令グループ内の全ての命令を同時に演算実行
するに十分な数と機能を有する演算器が存在する。
(3)該命令グループ内の隣合う2命令に着目した場
合、後続命令の演算サイクル数は先行命令の演算サイク
ル数と同じかそれ以上である。
命令セツトアツプ制御回路213は、セツトアツプする
各命令に対してその演算実行を行なう演算器を決定し、
演算器番号を示す信号ENOi(i=1〜m)を演算制御ユ
ニツト7に送出する。
ここで上記(1)〜(3)の条件を満足するような命
令有効信号IRDYi(i=1〜m)及びENOi(i=1〜
m)を生成する命令セツトアツプ制御回路213を第7A〜7
D図を用いてより詳細に説明する。第7A図は信号IRDi
(i=1〜m)が上記(1)の条件を満たすために、そ
の必要条件を示す信号QRDYi(i=1〜m)を生成する
回路である。701〜702はk個のフリツプフロツプであ
り、命令キユーのk個のキユーレジスタ(図示せず)に
対応し、そのキユーレジスタに解読済でセツトアツプ待
ちの命令が格納されている状態を表示する。703〜704は
k個のORゲートであり、701〜702に対応し、各フリツプ
フロツプを‘1'にセツトする信号を送出する。705〜706
はp個のデコーダであり、それぞれ第2図のp個の命令
解読器DECi(i=1〜p)に対応し、順に命令解読完了
信号DSi(i=1〜p)及び命令待ち行列入力ポインタ
信号QIPi(i=1〜p)を入力し、k本のデコード出力
を順にORゲート703〜704に送出する。705〜706の各デコ
ーダは、命令解読完了信号が‘1'となつたとき、命令キ
ユー入力ポインタ信号で示されるキユーレジスタに対応
したデコード出力信号値を‘1'とする。この時ORゲート
703〜704の内対応したゲートが‘1'を出力し、これによ
り対応したフリツプフロツプが‘1'にセツトされる。2
命令以上が同時に解読を完了した場合DS1からその命令
数分だけの命令解読完了信号が‘1'となるが、この時は
入力ポインタQIP1で示されるフリツプフロツプから連続
する上記命令数分のフリツプフロツプが‘1'にセツトさ
れる。707〜708はk個のORゲートであり、701〜702に対
応し、各フリツプフロツプを‘0'にリセツトする信号を
送出する。709〜710はm個のデコーダであり、それぞれ
出力交換回路9のm命令分の出力ポート、つまりセツト
アツプポートi(i=1〜m)に対応し、順にセツトア
ツプ完了信号OBTi(i=1〜m)及び命令キユー出力ポ
インタ信号QOPi(i=1〜m)を入力し、k本のデコー
ド出力を順にORゲート707〜708に送出する。709〜710の
各デコーダは、セツトアツプ完了信号が‘1'となつたと
き、命令キユー出力ポインタ信号で示されるキユーレジ
スタに対応したデコード出力信号値を‘1'とする。この
時ORゲート707〜708の内対応したゲートが‘1'を出力
し、これにより対応したフリツプフロツプが‘0'にリセ
ツトされる。2命令以上が同時にセツトアツプを完了し
た場合信号OBT1からその命令数分だけのセツトアツプ完
了信号が‘1'となるが、この時は出力ポインタQOP1で示
されるフリツプフロツプから連続する上記命令数分のフ
リツプフロツプが‘0'にリセツトされる。711はORゲー
トであり、演算制御ユニツト7から送出される上記TK
N、並びにINT信号の論理和をORゲート707〜708に送出す
る。従つて、条件分岐命令が分岐成立、即ち予測失敗と
判定された場合、もしくは、割り込み条件が発生し、以
後の命令実行を取り消す場合、それぞれTKN,INT信号が
‘1'となり、711,707〜708を介して701〜702の全てのフ
リツプフロツプが‘1'にリセツトされる。712〜713はセ
ツトアツプポートi(i=1〜m)に対応したm個のセ
レクタである。各セレクタにはそれぞれフリツプフロツ
プ701〜702の出力である合計k本のキユービジー信号QB
SYi(i=1〜k)を入力する。また、各セレクタには
順に命令待ち行列出力ポインタQOPi(i=1〜m)を入
力し、それぞれQBSY1−kの中から該ポインタで示され
るキユーレジスタに対応するキユービジー信号の値を選
択し、信号QRDYi(i=1〜m)信号として出力する。
上記の様に本発明に於いては命令待ち行列には、一度に
最大p個の連続する命令が既にキユーイング済みの命令
に連続して格納され、また一度に最大m個の連続する命
令がセツトアツプのために取りだされる。QOPi(i=1
〜m)は解読済の命令のなかで最も古いものを格納する
キユーレジスタから連続するm個のキユーレジスタを示
すので、解読済の命令がi個或る場合、iがmより小さ
い場合QRDYj(j=1〜i)が‘1',QRDYj(j=i+1
〜m)が‘0'となり、iがm以上の場合、QRDYi(i=
1〜m)すべてが、‘1'となる。以上の説明から信号PR
DYi(i=1〜m)が上記(1)の条件を示すことが言
える。
第7B図は信号IRDYi(i=1〜m)が上記(2)の条
件を満たすために、その必要条件を示すm−1本の信号
EAi(i=2〜m)を生成する回路である。この回路は
セツトアツプポートi(i=1〜m)を介してセツトア
ツプする各命令に対して、その演算実行を行なう演算器
番信号ENOi(i=1〜m)を決定する機能も有する。72
0,721はセツトアツプする最大m個の命令のうち順に第
i番目、及びi+1番目の命令に対EAi,ENOi及びEAi+
1,ENOi+1信号を生成する演算器割当制御回路EACであ
る。EACはセツトアツプポートi(i=1〜m)に対応
してm個ある。722〜725は演算器に対応したn個のAND
ゲートであり、順に第i命令に対する各演算器の空き状
態を示す信号E1Ai,...,EnAiと、第i命令の演算を実行
する機能を有するか否かを各演算器毎に示す命令解読情
報E1Si,...,EnSiを入力し、その論理積を出力する。こ
の論理積が‘1'であれば、対応する演算器が空いてお
り、しかもその演算器は該命令の演算実行機能を有する
わけであり、割り当てる演算器の候補であることを示
す。一般には割当可能な演算器の候補は複数ある。726
はORゲートであり、722〜725の出力の論理和をEAi信号
として出力する。722〜725の出力の中で何れかが‘1'で
あれば、該命令を割り当てる演算器が存在するので、こ
の時EAi信号が‘1'となる。727〜729はn−1個のANDゲ
ートであり、上記割り当て候補が複数存在した時に、実
際に割り当てる演算器を1つに絞るためのものである。
即ち、727〜729は順に演算器E2〜Enが実際に割り当てら
れたとき‘1'を出力する。このため、727〜729には順に
723〜725の出力信号を入力し、対応する演算器が割り当
て候補となつたとき、‘1'を出力し得るようにする。さ
らに、722の出力信号の否定を727〜729に、723の出力信
号の否定を728〜729に入力する。一般に722〜725の出力
信号のうち、演算器Ejに対応したゲートの出力値の否定
を、727〜729のうちの演算器Ei+1〜nに対応したゲー
トに入力する。こうすることで、n個のゲート722,727
〜729の出力は、1つ以上の演算器割り当て候補が存在
したとき、最も小さい番号を有する演算器に対応した出
力のみ‘1'となり、残りは‘0'となる。730はエンコー
ダであり上記n個のゲート出力を受け取り、‘1'となつ
ている演算器番号をENOi番号として出力する。731〜734
は各演算器に対応したn個のANDゲートであり、順に上
記演算器空き状態信号E1Ai,...,EnAiと、上記n個のゲ
ート722,727〜729の出力の否定を入力し、これらの論理
積を第i+1番目の命令に対する演算器空き状態信号E1
Ai+1,...,EnAi+1として出力する。上記説明から明ら
かなように、E1Ai+1,...,EnAi+1は対応するE1Ai+
1,...,EnAiのうちで、第i番目の命令に対し割り当てら
れた演算器に対応した信号のみ‘0'としたものといえ
る。第1番目の命令に対するEACにおいては、演算器空
き状態信号E1A1,...,EnA1はすべて空きを示す‘1'とす
る。
第7C図は信号IRDYi(i=1〜m)が上記(3)の条
件を満たすために、その必要条件を示すm−1本の信号
ELOKi(i=1〜m)を生成する回路である。740は比較
回路であり、命令待ち行列211より入力する第1,第2番
目の命令の演算サイクル数EL1及びEL2を比較し、後者が
前者と同じかそれ以上であるとき出力信号ELOK2を‘1'
とする。741〜742は740と同一構成のm−2個の比較回
路であり、順に第3番目から第m番目の命令に対応し、
その演算サイクル数と直前の命令の演算サイクル数を入
力し、後者が前者と同じかそれ以上であるとき出力信号
を‘1'とする。743〜744はm−2個のANDゲートであ
り、順に第3番目から第m番目の命令に対応し信号ELOK
i(i=3〜m)を出力する。740及び741の出力は743〜
744の全てに入力する。一般に比較回路741〜742のうち
第i番目(ただしi>2)の命令に対応するものの出力
を、ANDゲート743〜744のうち第i番目以降の命令に対
応するもの全てに入力する。したがつて、ANDゲート744
には740〜742の全ての出力を入力する。以上の構成によ
り、ELOKi信号は第1番目から第i番目にいたる、全て
の命令について、上記(3)の条件が成立したとき、そ
してそのときにのみ‘1'となる。
第7D図は、上記第7A図,第7B図,第7C図にて説明した
信号QRDYi(i=1〜m),信号EAi(i=2〜m),信
号ELOKi(i=2〜m)を用いて、有効命令信号IRDY
(i=1〜m)を生成する回路を示す。750はANDゲート
であるが、本実施例に於いてはQRDY1のみを入力しその
ままの値を出力しIRDY1信号とする。即ち、QOP1で示さ
れる解読済命令は必ずセツトアツプすることができる。
751〜753は、同時にセツトアツプする最大m個の命令に
於ける第2ないし第m番目までのm−1個の命令に対応
するANDゲートであり、順にQRDYi(i=2〜m)及びEL
OKi(i=2〜m)を入力する。さらにEA2信号を751〜7
53のすべてに、EA3信号を752〜753の全てに入力する。
一般に、第i番目(ただしi>1)の命令に対応する演
算器割り当て信号EAiを、ゲート751〜753のうち、第i
番目以降の命令に対応するものすべてに入力する。従つ
て例えば、ゲート753には、EAi(i=2〜m)のすべて
を入力する。ゲート751〜753は、各々の入力の論理積を
順にIRDYi(i=2〜m)信号として出力する。以上の
構成により、IRDYi(i=1〜m)信号は上記(1)〜
(3)の条件を全て満たす有効命令信号となる。
第2図のオペランド待ち制御回路210はセツトアツプ
された最大m個の命令のそれぞれについて、必要とする
オペランドデータがオペランドバツフアに読みだされて
いるかどうかを示す信号ADVWi(i=1〜m)を生成
し、これを演算制御ユニツト7に送出する。このため、
命令解読器207〜208より信号DSi(i=1〜p)及びUOB
i(i=1〜p)、命令待ち行列制御回路212より信号QI
Pi(i=1〜p)及びQOPi(i=1〜m)、記憶装置1
より信号ADVi(i=1〜p)及びOBNOi(i=1〜p)
をそれぞれ入力する。
第6図を用いて、オペランド待ち制御回路210の構成
をより詳細に説明する。601〜602はk個のフリツプフロ
ツプであり、オペランドバツフア216のk個のバツフア
レジスタに対応し、そのバツフアレジスタに必要なオペ
ランドが到着していない状態を表示する。すなわち、あ
るフリツプフロツプが‘1'の時、対応するバツフアレジ
スタにオペランドを読み出す必要があるがまだ到着して
いない事を、また‘0'の時、対応するバツフアレジスタ
にオペランドを読み出す必要がないか、あるいは既に到
着している事を示す。603〜604はk個のORゲートであ
り、フリツプフロツプ601〜602のそれぞれに対し、セツ
トする値を送出する。605〜606はp個のデコーダであ
り、それぞれ第2図のp個の命令解読器DECi(i=1〜
p)に対応し、順にUOBi(i=1〜p)及び命令待ち行
列入力ポインタ信号QIPi(i=1〜p)を入力し、それ
ぞれk本のデコード出力を順にORゲート603〜604に送出
する。605〜606の各デコーダは、UOBi(i=1〜p)の
うち対応する信号が‘1'となつたとき、命令待ち行列入
力ポインタ信号で示されるバツフアレジスタに対応した
デコード出力信号値を‘1'とする。この時ORゲート603
〜604の内対応したゲートが‘1'を出力する。607〜608
はk個のORゲートであり、フリツプフロツプ601〜602の
それぞれに対し、上記603〜604からの入力データをセツ
トするためのクロツク信号を送出する。609〜610はp個
のデコーダであり、それぞれ第2図のp個の命令解読器
DECi(i=1〜p)に対応し、順にDSi(i=1〜p)
及び命令待ち行列入力ポインタ信号QIPi(i=1〜p)
を入力し、それぞれk本のデコード出力を順にORゲート
607〜608に送出する。609〜610の各デコーダは、DSi
(i=1〜p)のうち対応する信号が‘1'となつたと
き、命令待ち行列入力ポインタ信号で示されるバツフア
レジスタに対応したデコード出力信号値を‘1'とする。
この時ORゲート607〜608の内対応したゲートがクロツク
信号値‘1'を出力する。これにより対応したフリツプフ
ロツプに上記入力データがセツトされる。2命令以上が
同時に解読を完了した場合DS1からの命令数分だけの命
令解読完了信号が‘1'となるが、この時はQIP1で示され
るフリツプフロツプから連続する上記命令数分のフリツ
プフロツプが各々の入力データ値にセツトされる。611
〜612はk個のORゲートであり、601〜602に対応し、各
フリツプフロツプを‘0'にリセツトする信号を送出す
る。613〜614はp個のデコーダであり、それぞれ記憶装
置1からのp個の出力ポートに対応し、順にアドバンス
信号ADVi(i=1〜p)及びオペランドバツフア番号OB
NOi(i=1〜p)を入力し、それぞれk本のデコード
出力を順にORゲート611〜612に送出する。613〜614の各
デコーダは、アドバンス信号が‘1'、すなわちオペラン
ドが記憶装置から送出されてきたとき、オペランドバツ
フア番号で示されるバツフアレジスタに対応したデコー
ド出力信号値を‘1'とする。この時ORゲート611〜612の
内対応したゲートが‘1'を出力し、これにより対応した
フリツプフロツプが‘0'にリセツトされる。2つ以上の
オペランドが同時に読みだされた場合、そのオペランド
数分だけのアドバンス信号が‘1'となるが、この時は上
記オペランド数分のフリツプフロツプが‘0'にリセツト
される。615〜616はセツトアツプポートi(i=1〜
m)対応のm個のセレクタである。各セレクタにはそれ
ぞれフリツプフロツプ601〜602の出力である合計k本の
オペランド待ち信号ADVWQi(i=1〜k)を入力する。
また、各セレクタには順に命令待ち行列出力ポインタQO
Pi(i=1〜m)を入力し、それぞれADVWQi(i=1〜
k)の中から該ポインタで示されるバツフアレジスタに
対応するオペランド待ち信号の値を選択し、信号ADVWi
(i=1〜m)として出力する。以上の説明から明らか
なように、信号ADVWi(i=1〜m)はセツトアツプし
た最大m個の命令のそれぞれに対応して、必要なオペラ
ンドがオペランドバツフアに到着していないことを示
す。
第3A図及び第3B図を用いて演算制御ユニツト7の構成
を説明する。第3A図は演算実行許可信号EXi(i=1〜
m),セツトアツプ完了信号OBTi(i=1〜m),最終
演算開始信号LBOP,セツトアツプ命令数LINOを生成する
回路である。301〜303はセツトアツプポートi(i=1
〜m)に対応するm個のNORゲートであり、各セツトア
ツプポートを介してセツトアツプした命令に対する演算
実行保留条件を入力し、その論理和の否定を出力する。
演算実行保留条件としてポート1に対応するセツトアツ
プ命令中第1番目の命令のオペランドが未到着である条
件FW1をANDゲート317より301〜303の全てに入力する。
ボート2に対応する第2番目の命令についてのオペラン
ド未到着条件FW2をANDゲート318より302〜303に入力す
る。一般に、第i番目の命令についてのFWi信号をNORゲ
ート301〜303のうちポートiからポートmに対応するも
のに入力する。304〜306はセツトアツプポートi(i=
1〜m)に対応したm個のフリツプフロツプであり、NO
Rゲート301〜303のうち対応するものの出力値を毎サイ
クル保持し、EXi(i=1〜m)信号として出力する。
上記構成により、第i番目の命令でFWi信号が‘1'とな
つた場合、第i番目以降のすべての演算実行許可信号EX
i(i=1〜m)は‘0'となり、第iないしm番目の命
令の演算実行を開始しない。本実施例では演算実行保留
条件としてオペランド未到着条件のみを示したが、その
他の保留条件に関しても上記と同様にNORゲート301〜30
3に入力することにより、演算実行の追い越しを防止す
る。
307〜309はセツトアツプポートi(i=1〜m)に対
応するm個のANDゲートであり、出力交換回路9から送
出される各命令の演算終了信号EOPi(i=1〜m)とフ
リツプフロツプ304〜306から送出される演算実行許可信
号EXi(i=1〜m)のうち、対応するポートの信号を
入力し、その論理積を信号EOPEXi(i=1〜m)として
出力する。信号EOPEXiは第i番目の命令に対する演算終
了が実際に許可されたことを示す。310はANDゲートであ
り、信号EOPEXi(i=1〜m)を入力しその論理積を信
号ERDYとして出力する。信号ERDYはセツトアツプした命
令が全て演算を完了し、従つて全ての演算器Ei(i=1
〜n)が空いたことを示す。本実施例では信号ERDY信号
が‘1'となつて初めて後続命令グループのセツトアツプ
を行なう。311〜313はセツトアツプポートi(i=1〜
m)に対応するm個のANDゲートであり、順に命令制御
ユニツト2から送出される有効命令信号IRDYi(i=1
〜m)を、またそれぞれに上記信号ERDYを入力し、それ
らの論理積を出力する311〜313の出力は対応するポート
を介してそのサイクルに命令セツトアツプが行なわれた
ことを示す。314〜316はセツトアツプポートi(i=1
〜m)に対応するm個のフリツプフロツプであり、順に
311〜313からセツトアツプ完了条件をデータ入力端子
に、またフリツプフロツプ304〜306からEXi(i=1〜
m)信号をクロツク端子に入力し、セツトアツプ完了信
号EBTi(i=1〜m)を出力する。314〜316のうちセツ
トアツプポートiに対応するフリツプフロツプに関して
見ると、該ポートに対応して有効な命令が存在した場合
その命令セツトアツプの完了したサイクルに信号OBTiが
‘1'となり、対応する演算実行が実際に開始したとき、
その次のサイクルから‘0'となる。337〜339はセツトア
ツプポート1〜mに対応したm個のレジスタであり、命
令制御ユニツト2から順に信号ENOi(i=1〜m)を入
力し、ゲート311〜313のうち、対応するものの出力が
‘1'となつたときに信号ENOi(i=1〜m)をとり込
む。それらのレジスタの内容は入力交換回路8に送られ
る。317〜319はセツトアツプポートi(i=1〜m)に
対応するm個のANDゲートであり、順に命令制御ユニツ
ト2からオペランド待ち信号ADVWi(i=1〜m)を、
またフリツプフロツプ314〜316から信号OBTi(i=1〜
m)を入力し、それらの論理積をオペランド未到着条件
信号FWi(i=1〜m)として出力する。320〜322は、
セツトアツプポートi(i=1〜m)に対応するm個の
ANDゲートであり、順に上記NORゲート301〜303から演算
実行許可信号を、またフリツプフロツプ314〜316からセ
ツトアツプ完了信号OBTi(i=1〜m)を入力し、これ
らの論理積を演算実行開始信号BOPi(i=1〜m)とし
て出力する。323〜325は、、セツトアツプポートi(i
=1〜m)に対応するm個のANDゲートであり、各々対
応するポートを介してセツトアツプされた命令が、同時
にセツトアツプされた命令の中で概念的に最後の命令で
あり、しかも該命令が演算実行を開始したことを検出す
る。このためセツトアツプポートiに応答するANDゲー
トには信号BOPiと、信号OBTi+1の否定値を入力する。
ただしゲート325においては信号BOPmのみを入力する信
号BOPi(i<m)が‘1'となつた時に次のポートi+1
に対応する信号が‘0'であつた場合、該第i番目の命令
が最後の命令である。何故ならば、もし第i番目の命令
が最後でないと仮定すると、第i+1ないし第m番目の
ポートに対応して命令がセツトアツプされたことにな
る。もしポートi+1に対応して命令がセツトアツプさ
れていたとすると、第i+1番目の命令の演算実行開始
は第i番目のそれを追い抜かないので、信号OBTi+1は
信号BOPiが‘1'となつたときには‘0'では有り得ず、上
記に矛盾する。またもしポートi+1に対して命令がセ
ツトアツプされていなかつたとすると、第i+2ないし
m番目のポートに対して命令セツトアツプが行なわれた
ことになるが、これは本実施例では命令セツトアツプは
連続したポートに対して行なわれるので有り得ない。こ
れは第i番目の命令が最後でないと仮定したことに誤り
が有るからである。従つて上記の場合は第i番目の命令
がセツトアツプされた命令のうち最後の命令であること
がいえる。また信号BOPmが‘1'となつたときは第m番目
の命令が最後の命令であることは明らかである。このと
きゲート323〜325のうち、第i番目のゲートの出力が
‘1'となる。また、明らかにその他のゲートの出力は
‘0'である。326はORゲートでありゲート323〜325の出
力の全ての論理和をとり、信号LBOPとして出力する。32
7はエンコーダであり、ANDゲート323〜325の出力を受け
取り、‘1'を出力しているゲートに対応するポート番号
を生成し、信号LINOとして出力する。
第3B図は演算制御ユニツトのうち条件分岐判定信号TK
N,割り込み検出信号INT、及び演算実行取り消し信号RES
i(i=1〜m)を生成する回路である。350は条件コー
ド選択回路であり、出力交換回路によりセツトアツプポ
ートに対応した各命令の条件コードCCi(i=1〜m)
及びそれらのセツト信号CCSi(i=1〜m)を受け取
り、‘1'となつている信号CCSi(i=1〜m)のうち最
も番号の大きいものに対応した条件コードを選択し、レ
ジスタ351に送出する。352はORゲートであり、信号CCSi
(i=1〜m)を受け取り、これらの論理和を351のク
ロツク端子に送出する。351は条件コードレジスタであ
り、352からのクロツク信号が‘1'となつたとき、350が
出力する条件コード値をセツトする。351が出力する条
件コードCCPは、同時にセツトアツプされた命令が全て
実行を完了した場合の条件コードを示す。353はセツト
アツプポート1に条件分岐命令がセツトアツプされた時
の分岐判定制御回路である。また354〜355は、セツトア
ツプポートi(i=2〜m)に対応した分岐判定制御回
路である。356,358〜359はセツトアツプポートi(i=
1〜m)に対応するm個のレジスタであり、命令制御ユ
ニツトから送出する条件分岐命令信号BCi(i=1〜
m)及びマスク信号BCMi(i=1〜m)のうち、対応す
るポートのものをセツトする。各レジスタにはクロツク
信号として演算制御ユニツト内部で生成する上記OBTi
(i=1〜m)信号を入力する。362〜363は条件コード
の選択回路であり、対応するセツトアツプポートから条
件分岐命令がセツトアツプされたとき、該条件分岐命令
にとつて最新の条件コードを出力する。このため362に
は、上記CCP,CC1そしてCCS1を入力する。CCS1が‘1'で
あれば第1番目の命令が最新の条件コードを設定してお
り、このとき362はCC1の値を出力し、CCS1が‘0'であれ
ばCCPを出力する。一般に、362〜363のうちセツトアツ
プポートi(但しi>1)に対応して選択回路にはCCP,
CC1,...,CCi−1,CCS1,...,CCSi−1を入力する。この
時、CCS1,...,CCSi−1がすべて‘0'、すなわち、同時
にセツトアツプされた命令のなかでは該条件分岐命令に
先だつて条件コードを設定はる命令が無い場合、該選択
回路はCCPを出力し、CCS1,...,CCSi−1のうちで少なく
とも1つが‘1'の場合、‘1'である条件コードセツト信
号の中で最も番号の大きいポートに対応した条件コード
を出力する。以上により362〜363は、対応するセツトア
ツプポートから条件分岐命令がセツトアツプされたと
き、該条件分岐命令にとつて最新の条件コードを出力す
ることがわかる。357,360〜361は分岐判定回路である。
357には条件コードレジスタ351からCCP,356からBC1,BCM
1、そして演算制御ユニツト内部で生成する上記信号EOP
EX1を入力する。信号EOPEX1は第1番目の命令の演算実
行が終了したサイクルであることを示し、このとBC1が
‘1'、すなわち該命令が条件分岐命令であれば、マスク
値BCM1と最新の条件コードであるCCPから分岐の有無を
判定し、判定結果を信号TKN1として出力する。同様にし
て360〜361には順に362〜363からそれぞれに対する最新
の条件コード,358〜359からBCi(i=2〜m),BCMi
(i=2〜m)、そして演算制御ユニツト内部で生成す
る上記信号EOPEXi(i=2〜m)を入力する。さらに35
3と同様にして分岐判定を行ない、結果を信号TKNi(i
=2〜m)として出力する。364〜366はセツトアツプポ
ートi(i=1〜m)に対応するm個のORゲートであ
り、対応する命令の演算実行取り消し信号RESi(i=1
〜m)を出力する。このため365〜366の全てに上記TKN1
及び出力交換回路からの信号INTC1を入力する。さらに
一般に信号TKNi及びINTCi(i=2〜m)を、365〜366
のうちポートi+1からポートmに対応した全てのゲー
トに入力する。また364〜366の全てに出力交換回路から
のINTS1信号を入力する。さらに一般に信号INTSi(i=
2〜m)を、365〜366のうちポートiからポートmに対
応した全てのゲートに入力する。以上から分るように、
第i番目の命令に於いて分岐成立もしくは完了型割り込
みが発生すると第i+1番目以降の命令の演算を実行し
ている全ての演算器に対し、また第i番目の命令におい
て抑止型割り込みが発生すると第i番目以降の命令の演
算を実行している全ての演算器に対し、取り消し信号RE
Si+1,...,RESmが送出される。367及び368はORゲートで
あり、それぞれ全ての分岐成立信号TKNi(i=1〜m)
及び割り込み検出信号INTCi(i=1〜m),INTSi(i
=1〜m)の論理和を、TKN及びINT信号として命令制御
ユニツトに送出する。369はORゲートであり上記INT及び
TKN信号の論理和をフリツプフロツプ370に送出するフリ
ツプフロツプ370は369の出力を1サイクル保持し、その
出力信号RESを全ての演算器Ei(i=1〜n)に送出す
る。RES信号により、直後のサイクルでセツトアツプさ
れた命令グループの演算実行を抑止する。
第4図は入力交換回路8の構成を示す。401〜403は演
算器Ei(i=1〜n)に対応したn個のORゲートであ
り、演算器にセツトアツプするデータを出力する。404
〜406はセツトアツプポートi(i=1〜m)に対応す
るm個のデコーダであり、順に入力データdi(i=1〜
m)及び演算器番号ENOi(i=1〜m)を入力し、演算
器Ei(i=1〜n)に対応したn本のデコード信号を順
に401〜403に送出する。各デコーダは入力データが‘1'
の時演算器番号で示されるデコード信号を‘1'とする。
入力データdi(i=1〜m)としては、上記のINSTI,RD
i,MAi,MDi,RWAi,OBTi,EXi,RESi(i=1〜m)等があ
り、それぞれに対して第4図の交換回路を設ける。
第5図は出力交換回路9の構成を示す。501〜503はセ
ツトアツプポートi(i=1〜m)に対応するm個のセ
レクタあり、各セレクタに順に演算制御ユニツト7から
演算器番号ENOi(i=1〜m)を、また全ての演算器か
らの出力データのi(i=1〜n)を各セレクタに入力
する。セレクタ501〜503は入力データei(i=1〜n)
のうちそれぞれの演算器番号で示されるものを信号di
(i=1〜m)として出力する。出力データとしては、
上記EDi(i=1〜m),RWAi(i=1〜m),STAi(i
=1〜m)等がある。
以下では典型的な命令列を例にとり、本実施例になる
計算機の動作を説明する。第10A図は、Load,Multiply,L
oad,Storeの4命令列に対する動作タイムチートであ
る。本実施例では1つの命令処理は命令読み出しを除く
と6つのステージからなる。Dステージでは命令解読及
びオペランドアドレス生成,Aステージでは命令解読情報
の命令待行列への格納とメモリオペランドもしくは分岐
命令のターゲツト命令読み出し、Lステージでは命令セ
ツトアツプ、Eステージでは演算実行、Pステージでは
演算結果のチエツクもしくは、条件分岐判定および演算
結果の書き込み指令の発行、Sステージでは演算結果の
レジスタもしくは記憶装置への書き込みを行なう。命令
により、Sステージの無い場合がある。最も簡単な命令
においては各ステージは1サイクルで実行するが命令に
より特定のステージを複数サイクルで実行する場合もあ
る。第10A図では横軸はマシンサイクルを単位とした時
間を、縦軸は上記命令列及び主要信号もしくは主要処理
を示す。上記4命令には図中の参照のため1〜4の命令
番号を付す。さて、本発明では命令1,2が同時にセツト
アツプされ、演算実行をしたところ、命令2において完
了型割り込みが発生したため、後続の命令3,4の処理を
取り消す場合を示している。命令1,2はサイクルC1にて
同時に解読され、この時C2にて命令解読完了信号DS1,2
が‘1'となる。C3にて有効命令信号IRDY1,2が‘1'とな
る。この時演算器は全て空いているとすると、ERDY信号
が‘1'であり、従つてこのサイクルで命令セツトアツプ
が行なわれOBT1,2信号が‘1'となる。この時特に演算実
行保留条件が無いので、直ちに演算が開始され、BOP1,2
信号が‘1'となる。またC4からは、演算実行許可信号EX
1,2が‘1'となる。命令1のEステージは1サイクルで
終了するのでC4にて演算終了信号EOP1が‘1'となる。一
方命令2はEステージは3サイクルを要するので、C6に
てEOP2が‘1'となる。従つて次にERDY信号が‘1'となる
のはC6である。この例では命令2のEステージの終了時
点で完了型割り込み条件が検出されるのでINTC2信号が
Pステージで‘1'となり、これに応答してRES信号がS
ステージで‘1'となる。一方命令3,4は命令1,2より1サ
イクル遅れてDステージが始まりC4からIRDY1,2信号が
‘1'となるものの、先行する命令グレープの演算が全て
終了しておらず、従つてERDY信号が‘0'なので、セツト
アツプが待たされる。C6にてERDYが‘1'となり、命令3,
4のセツトアツプが完了する。引続き命令3,4はE,Pステ
ージを実行し、C9でSステージに入る。しかし、先行す
る命令2にて割り込みが発生しており、C8にてRES信号
‘1'となつているので、これによりC8での命令3,4によ
る結果の書き込み指令RWC1,MWC2がそれぞれ抑止され
る。これは命令3,4のセツトアツプを命令1,2の演算実行
の終了を待つて行なつたため、命令3,4の書き込み指令
発行が命令1,2の割り込み検出を行なうPステージより
後になつたから可能であつた。従来は命令3,4は必ずし
も命令1,2の終了を待たずしてセツトアツプされ演算を
開始していたので命令2の割り込みが検出された時点で
は一般的には結果の書き込みはすでに終了してしまう。
従つて、レジスタの場合は予め待機しておいたデータを
回復する必要があり、また記憶装置の場合はMシリーズ
アーキテキチヤの仕様を守ることが困難である。
第10B図は、主記憶装置上に並ぶCompare,Branch on C
ondition,Load,Storeの4命令列において、第2のBC命
令が分岐成立となり、予測実行していたLoad,Store命令
をキヤンセルし、ターゲツト命令Addを実行する例であ
る。本例は命令1のメモリオペランド読み出しが2サイ
クル遅れる場合を示す。C1にて命令1,2,3の解読が完了
し、C2にてDS1,2,3信号が‘1'となる。C3にてIRDY1,2,3
信号が‘1'となる。この時全ての演算器が空いておりER
DY信号が‘1'であるとすると、命令セツトアツプが行な
われ、OBT1,2,3信号が‘1'となる。またこのC3からC3ま
での2サイクルの間、命令1のメモリオペランドが到着
していないことを示すADVW1信号が‘1'となる。これに
応答してこの2サイクルの間、後続命令に対する演算実
行許可信号EX1,2,3及び演算実行開始信号BOP1,2,3が抑
止される。C6にて命令1,2,3の演算実行が開始され、BC
命令はそのPステージ(C7)にて分岐成立信号TKN2が
‘1'となる。これに応答してRES3信号がC7、RES信号がC
8にて‘1'となり、これらにより順に命令3のレジスタ
書き込み指令RWC3及び命令4により記憶装置1へのメモ
リ書き込み指令MWC1が抑止される。命令3の結果の書き
込み指令抑止が可能であつたのは、その演算実行開始を
命令1,2の演算実行開始を待つて行ない、しかも命令3
の演算ステージサイクル数が命令2より短くないため、
命令3の書き込み指令発行が命令2の分岐判定を行なう
Pステージより後になつたから可能であつた。なおター
ゲツト命令の解読はC8ステージから開始される。従来は
令命3は必ずしも命令1の演算実行保留条件により伴つ
て演算実行を保留しないので命令2の分岐成立が検出さ
れた時点では一般的には結果の書き込みはすでに終了し
てしまう。従つて、予め待避しておいたデータをレジス
タに回復する必要があり、またもし命令3がStore命令
であつた場合はMシリーズアーキテクチヤの仕様を守る
ことが困難である。命令4の記憶装置への書き込み指令
が抑止可能であつたのは第10A図におけると同様の理由
による。
本発明によれば、プログラムから見て1つずつ命令が
処理されるアーキテクチヤに基づくタイプの情報処理装
置において、並列実行方式により高速化を図る場合、割
り込みや分岐命令により予測失敗時の順序性保証が極め
て容易かつ高速となる。仮に本方式を用いないと、レジ
スタに結果を格納する命令に関しては常に予め書き込み
前のレジスタの内容を待避しておき上記のケースにおい
てレジスタの回復処理を行なう必要があり、そのための
制御回路が必要となり、また処理時間も大きくなる。ま
た主記憶に結果を書き込む命令に関しては上記順序仕様
を守ることが現状の技術では不可能である。
【図面の簡単な説明】
第1図は本発明になる計算機の全体ブロツク図、第2図
は第1図の命令制御ユニツト(2)の詳細構成図、第3A
図は第1図の演算制御ユニツト(7)の一部の詳細構成
図、第3B図は第1図の演算制御ユニツト(7)の残りの
部分の詳細構成図、第4図は第1図の入力交換回路
(8)の一般的な構成図、第5図は第1図の出力交換回
路(9)の一般的な構成図、第6図は第2図のオペラン
ド待ち制御回路(210)の詳細構成図、第7A図から第7D
図はそれぞれ第2図の命令セツトアツプ制御回路(21
3)の異なる部分の詳細構成図、第8図は第2図の命令
キユー制御回路(212)の詳細構成図、第9図は第1図
の装置で用いる命令の形式例、第10A図及び10B図は簡単
な命令列に於けるいろいろの信号のタイムチヤート、第
11図は第1図の演算ユニツト(4,5,6)の概略構成図で
ある。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 釜田 栄樹 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 井上 潔 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭59−2143(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (32)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の命令を並列に実行するための情報処
    理装置であって、 複数の演算器と、 他の命令が要求する処理の実行時間と異なる実行時間を
    要する処理の実行を要求する命令を含む実行すべき複数
    の命令を保持するメモリと、 該メモリから命令をフェッチする命令フェッチ回路と、 該命令フェッチ回路でフェッチされた命令を解読する解
    読回路と、 該解読回路で解読済みの複数の命令を該複数の演算器に
    セットアップするセットアップ回路を有し、 該セットアップ回路は、 上記複数の演算器の内の複数の演算器にすでにセットア
    ップされた先行する一群の命令に続いて実行されるべき
    後続の複数の命令を含み、その中のいずれの命令も、そ
    れぞれが要求する処理の実行時間がその命令のいずれの
    後続の命令が要求する処理の実行時間より長くはないと
    の条件を満たすとき、該複数の命令を、一群の命令とし
    て該複数の演算器にセットアップする選択手段と、 上記先行する一群の命令が要求する処理の該複数の演算
    器での実行完了に同期して、該選択された後続の一群の
    命令を上記複数の演算器の内の複数の演算器に同時にセ
    ットアップする手段とを有することを特徴とする情報処
    理装置。
  2. 【請求項2】上記命令フェッチ回路は、複数の命令を同
    時にフェッチする回路からなり、該解読回路は、該命令
    フェッチ回路によりフェッチされた複数の命令を同時に
    解読するための複数のデコーダを有することを特徴とす
    る請求項1記載の情報処理装置。
  3. 【請求項3】上記セットアップ回路により同時にセット
    アップされる命令の最大数は、上記解読回路で同時に解
    読される命令の総数より多いことを特徴とする請求項2
    の情報処理装置。
  4. 【請求項4】上記選択手段は、上記条件を満たす後続命
    令の数により変化するように上記後続の命令群を選択す
    ることを特徴とする請求項1記載の情報処理装置。
  5. 【請求項5】上記複数の演算器のいずれかで、上記先行
    する命令群の内の一つの命令が要求する処理を実行中に
    割り込み信号が発生したときに、その先行する命令群内
    でその一つの命令の後続の命令を検出する手段と、 該検出された後続の命令が要求する処理の実行結果を上
    記メモリまたは上記情報処理装置内の適当なレジスタに
    書き込むのを禁止する手段とを有することを特徴とする
    請求項1記載の情報処理装置。
  6. 【請求項6】上記セットアップ回路内の上記選択手段
    は、 上記先行する一群の命令に続いて実行すべき所定数の解
    読済みの命令の各々が要求する処理の実行時間が、その
    所定数の命令の中の、その命令のいずれかの後続の命令
    が要求する処理の実行時間より長くないかを検出する回
    路と、 上記検出回路の検出結果に依存して変化する数の命令
    を、上記所定数の命令から選択する回路と、 グループ内のそれぞれの命令が要求する処理の実行時間
    が、その所定数の命令の中の、その命令のいずれの後続
    の命令が要求する処理の実行時間より長くないという条
    件を満たす、上記検出回路による検出結果に依存して変
    化する数の後続の一群の命令を、上記複数の演算器にセ
    ットすべき上記後続の命令群として選択する回路とを有
    することを特徴とする請求項1記載の情報処理装置。
  7. 【請求項7】上記セットアップ回路内の上記選択手段
    は、 上記先行する一群の命令に続いて実行すべき所定数の解
    読済みの命令の各々が要求する処理の実行時間が、その
    所定数の命令の中の、その命令のいずれの後続の命令が
    要求する処理の実行時間より長くないという第1の条件
    と、それぞれの命令が要求する処理を実行可能な全ての
    演算器が上記情報処理装置の複数の演算器に含まれてい
    るという第2の条件とに基づいて、上記一群の後続の命
    令群として、これらの条件を満たすか否かに依存して変
    化する数の命令群を選択する手段を有することを特徴と
    する請求項1記載の情報処理装置。
  8. 【請求項8】上記セットアップ回路内の上記選択手段
    は、 上記先行する命令群に続いて実行すべき所定数解読済み
    の命令の各々が要求する処理を実行可能な演算器が上記
    所定数の演算器に含まれているかを検出する第1の検出
    回路と、 上記所定数の解読済みの命令の各々が要求する処理の実
    行時間が、その所定数の命令の中の、その命令のいずれ
    かの後続の命令が要求する処理の実行時間より長くない
    か否かを検出する第2の検出回路を有し、これら検出回
    路の検出結果に応じて、先行する命令群に続いて実行す
    べき一群の後続の命令を選択する回路を有することを特
    徴とする請求項1記載の情報処理装置。
  9. 【請求項9】上記一群の先行する命令のいずれか一つの
    命令が要求する処理の実行開始を遅らせるべきときに、
    上記一群の先行する命令の内の、上記一つの命令の後続
    の命令の実行開始を遅延する演算制御手段をさらに有す
    ることを特徴とする請求項1記載の情報処理装置。
  10. 【請求項10】上記演算制御手段は、上記先行する一群
    の命令の中に、上記処理の実行開始を遅らせるべき命令
    に先行する命令が含まれているときには、その先行する
    命令の処理の開始は遅延しないことを特徴とする請求項
    9記載の情報処理装置。
  11. 【請求項11】上記セットアップ手段は、 処理の開始を遅延した上記一つの命令およびその命令の
    上記後続の命令が要求した処理の完了まで上記一群の後
    続の命令のセットアップを禁止する手段を有することを
    特徴とする請求項10記載の情報処理装置。
  12. 【請求項12】上記演算制御手段は、上記一つの命令が
    要求する処理に使用する上記メモリ内のオペランドが利
    用可能でないときに、上記一つの命令および上記後続の
    命令が要求する処理の開始を遅延する手段を有すること
    を特徴とする請求項9記載の情報処理装置。
  13. 【請求項13】上記解読回路により解読された命令が要
    求するメモリオペランドを上記メモリからフェッチする
    手段と、 フェッチされたメモリオペランドを一時的に保持するオ
    ペランドバッファと、上記一群の先行する命令が上記セ
    ットアップ回路によりセットアップされたときに、それ
    らの命令の内、上記メモリオペランドを必要とする上記
    一つの命令が指定するメモリオペランドが上記メモリか
    らすでにフェッチされている場合には、その一つの命令
    が要求する処理のためにそのメモリオペランドを供給
    し、そのメモリオペランドがまだフェッチされていない
    ときには、上記演算制御手段にそのメモリオペランドが
    利用可能でないことを通知する手段とをさらに有するこ
    とを特徴とする請求項12記載の情報処理装置。
  14. 【請求項14】各演算器は、 その演算器にセットアップされた命令が指定する処理を
    実行して結果データを生成する手段と、 そのデータの生成に同期して、処理の終了を示す信号を
    出力する手段とを有し、 上記セットアップ回路内の上記セットアップ手段は、上
    記先行する一群の命令がセットアップされた複数の演算
    器の全てから処理終了信号が受信されたことに応答し
    て、上記後続の一群の命令をセットアップする手段を有
    することを特徴とする請求項1記載の情報処理装置。
  15. 【請求項15】上記情報処理装置は、上記複数の演算器
    に接続された複数のレジスタをさらに有し、 各演算器は、上記複数のレジスタのうち、その演算器に
    セットアップされた命令が指定する番号のレジスタに、
    その演算器の上記結果データ生成手段により生成された
    結果データを格納する手段を有することを特徴とする請
    求項14記載の情報処理装置。
  16. 【請求項16】上記セットアップ回路は、上記先行する
    一群の命令に続いて実行すべき所定数の解読済みの命令
    の各々が要求する処理の実行時間が、その所定数の命令
    の中の、その命令のいずれの後続の命令が要求する処理
    の実行時間より長くないという第1の条件と、および、
    それぞれの命令が要求する処理を実行可能な全ての演算
    器が上記情報処理装置の複数の演算器に含まれていると
    いう第2の条件とを満たす後続の一群の命令がない場合
    に、上記先行する一群の命令の後続の命令の先頭の命令
    を上記複数の演算器の一つにセットアップする手段をさ
    らに有すること特徴とする請求項1記載の情報処理装
    置。
  17. 【請求項17】上記セットアップ回路は、 上記先行する一群の命令に続いて実行すべき所定数の解
    読済みの命令の各々が要求する処理の実行時間が、その
    所定数の命令の中の、その命令のいずれかの後続の命令
    が要求する処理の実行時間より長くないという条件を満
    たさないときに、上記所定数の後続の命令の先頭の命令
    を上記複数の演算器の一つにセットアップする手段をさ
    らに有することを特徴とする請求項1記載の情報処理装
    置。
  18. 【請求項18】上記セットアップ回路の上記選択手段
    は、 上記先行する一群の命令に続いて実行すべき後続の複数
    の解読済みの命令の各々が要求する処理の実行時間が、
    その所定数の命令の中の、その命令のいずれかの後続の
    命令が要求する処理の実行時間より長くないという上記
    条件とそれぞれの命令が指定する処理を実行可能な演算
    器が利用可能であると言う他の条件とに基づいて、上記
    後続の一群の命令を選択する手段を有し、 上記セットアップ回路は、上記条件および上記他の条件
    を満たす上記後続の一群の命令が存在しないとき、上記
    後続の複数の命令の先頭の命令を選択的に上記複数の演
    算器の一つにセットアップする手段をさらに有すること
    を特徴とする請求項1記載の情報処理装置。
  19. 【請求項19】上記セットアップ回路内の上記選択手段
    は、 上記複数の演算器が上記先行する一群の命令の後続の所
    定数の命令が必要とする処理を実行可能な演算器を含ん
    でいるか否かを検出する第1の検出回路と、 上記所定数の命令の各々が要求する処理の実行時間が、
    その所定数の命令の中の、その命令のいずれかの後続の
    命令が要求する処理の実行時間より長くないか否かを検
    出する第2の検出回路と、 上記所定数の命令に対する上記第1、第2の検出回路の
    検出結果が肯定的なときに、上記所定数の命令を上記後
    続の一群の命令として選択する手段とを有し、 上記セットアップ回路は、上記所定数の命令に対する上
    記第1、第2の検出回路の検出結果が否定的のときに、
    上記所定数の命令の先頭の命令を選択的に上記複数の演
    算器の一つにセットアップする手段をさらに有すること
    を特徴とする請求項1記載の情報処理装置。
  20. 【請求項20】上記一群の先行する命令のいずれか一つ
    の命令が要求する処理の実行開始を遅らせるべきとき
    に、上記一群の先行する命令の内の、上記一つの命令の
    後続の命令の実行開始を遅延する演算制御手段をさらに
    有することを特徴とする請求項19記載の情報処理装置。
  21. 【請求項21】上記演算制御手段は、上記先行する一群
    の命令の中に、上記一つの命令に先行する命令が含まれ
    ているときには、その先行する命令の処理の開始は遅延
    しないことを特徴とする請求項20記載の情報処理装置。
  22. 【請求項22】上記セットアップ手段は、 処理の開始を遅延した上記一つの命令およびその命令の
    上記後続の命令が要求した処理の完了まで上記一群の後
    続の命令のセットアップを禁止する手段を有することを
    特徴とする請求項20記載の情報処理装置。
  23. 【請求項23】上記演算制御手段は、上記一つの命令が
    要求する処理に使用する上記メモリ内のオペランドが利
    用可能でないときに、上記一つの命令および上記後続の
    命令が要求する処理の開始を遅延する手段を有すること
    を特徴とする請求項20記載の情報処理装置。
  24. 【請求項24】上記解読回路により解読された命令が要
    求するメモリオペランドを上記メモリからフェッチする
    手段と、 フェッチされたメモリオペランドを一時的に保持するオ
    ペランドバッファと、上記一群の先行する命令が上記セ
    ットアップ回路によりセットアップされたときに、それ
    らの命令の内、上記メモリオペランドを必要とする上記
    一つの命令が指定するメモリオペランドが上記メモリか
    らすでにフェッチされている場合には、その一つの命令
    が要求する処理のためにそのメモリオペランドを供給
    し、そのメモリオペランドがまだフェッチされていない
    ときには、上記演算制御手段にそのメモリオペランドが
    利用可能でないことを通知する手段とをさらに有するこ
    とを特徴とする請求項23記載の情報処理装置。
  25. 【請求項25】上記解読回路で解読された複数の命令
    を、それらが該セットアップ回路によりセットアップさ
    れるまで一時的に保持する命令キューをさらに有するこ
    とを特徴とする請求項19記載の情報処理装置。
  26. 【請求項26】上記解読回路で解読された複数の命令
    を、それらが該セットアップ回路によりセットアップさ
    れるまで一時的に保持する命令キューをさらに有するこ
    とを特徴とする請求項1記載の情報処理装置。
  27. 【請求項27】上記一群の先行する命令のいずれか一つ
    の命令が要求する処理の実行開始を遅らせるべきとき
    に、上記一群の先行する命令の内の、上記一つの命令の
    後続の命令の実行開始を遅延する演算制御手段を有する
    ことを特徴とする請求項1記載の情報処理装置。
  28. 【請求項28】上記演算制御手段は、上記一つの命令が
    要求する処理に使用する上記メモリ内のオペランドが利
    用可能でないときに、上記一つの命令および上記後続の
    命令が要求する処理の開始を遅延する手段を有すること
    を特徴とする請求項27記載の情報処理装置。
  29. 【請求項29】上記解読回路で解読された複数の命令
    を、それらが該セットアップ回路によりセットアップさ
    れるまで一時的に保持する命令キューをさらに有するこ
    とを特徴とする請求項27記載の情報処理装置。
  30. 【請求項30】複数の命令を並列に実行するための情報
    処理装置であって、 複数の演算器と、 実行すべき複数の命令を保持するメモリと、 該メモリから命令をフェッチする命令フェッチ回路と、 該命令フェッチ回路でフェッチされた命令を解読する解
    読回路と、 該解読回路で解読済みの複数の命令を該複数の演算器に
    セットアップするセットアップ回路を有し、 該セットアップ回路は、 先行して上記複数の演算器の内の複数の演算器にすでに
    セットアップされた先行する一群の命令に続いて実行さ
    れるべき後続の一群の命令を、上記先行する一群の命令
    が要求する処理の該複数の演算器での実行完了に同期し
    て、上記複数の演算器の内の複数の演算器に同時にセッ
    トアップする手段と、 上記一群の先行する命令のいずれか一つの命令が要求す
    る処理の実行開始を遅らせるべきときに、上記一群の先
    行する命令の内の、上記一つの命令の後続の命令の実行
    開始を遅延する演算制御手段とを有することを特徴とす
    る情報処理装置。
  31. 【請求項31】上記演算制御手段は、上記一つの命令が
    要求する処理に使用する上記メモリ内のオペランドが利
    用可能でないときに、上記一つの命令および上記後続の
    命令が要求する処理の開始を遅延する手段を有すること
    を特徴とする請求項30記載の情報処理装置。
  32. 【請求項32】上記解読回路で解読された複数の命令
    を、それらが該セットアップ回路によりセットアップさ
    れるまで一時的に保持する命令キューをさらに有するこ
    とを特徴とする請求項30記載の情報処理装置。
JP01706688A 1988-01-29 1988-01-29 情報処理装置 Expired - Lifetime JP3161711B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01706688A JP3161711B2 (ja) 1988-01-29 1988-01-29 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01706688A JP3161711B2 (ja) 1988-01-29 1988-01-29 情報処理装置

Publications (2)

Publication Number Publication Date
JPH01194031A JPH01194031A (ja) 1989-08-04
JP3161711B2 true JP3161711B2 (ja) 2001-04-25

Family

ID=11933615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01706688A Expired - Lifetime JP3161711B2 (ja) 1988-01-29 1988-01-29 情報処理装置

Country Status (1)

Country Link
JP (1) JP3161711B2 (ja)

Also Published As

Publication number Publication date
JPH01194031A (ja) 1989-08-04

Similar Documents

Publication Publication Date Title
US5922068A (en) Information processing system and information processing method for executing instructions in parallel
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
US5109495A (en) Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
CA1268555A (en) Branch stream coprocessor
US4782441A (en) Vector processor capable of parallely executing instructions and reserving execution status order for restarting interrupted executions
US5345567A (en) System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
EP0495165B1 (en) Overlapped serialization
EP1296229B1 (en) Scoreboarding mechanism in a pipeline that includes replays and redirects
US4775927A (en) Processor including fetch operation for branch instruction with control tag
EP0394624B1 (en) Multiple sequence processor system
JP3683808B2 (ja) 命令履歴情報を持つ基本キャッシュ・ブロック・マイクロプロセッサ
KR19980079702A (ko) 저장 인스트럭션의 결과의 전달하는 방법 및 이를 구현한 프로세서
EP0094535B1 (en) Pipe-line data processing system
US4739470A (en) Data processing system
US7219216B2 (en) Method for identifying basic blocks with conditional delay slot instructions
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US6883090B2 (en) Method for cancelling conditional delay slot instructions
JP2001060153A (ja) 情報処理装置
US7765387B2 (en) Program counter control method and processor thereof for controlling simultaneous execution of a plurality of instructions including branch instructions using a branch prediction mechanism and a delay instruction for branching
US6502186B2 (en) Instruction processing apparatus
US6754813B1 (en) Apparatus and method of processing information for suppression of branch prediction
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
JPH06161779A (ja) データ処理装置の割込み制御方式
JP3161711B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term