JPH0668722B2 - 命令処理順序制御装置 - Google Patents
命令処理順序制御装置Info
- Publication number
- JPH0668722B2 JPH0668722B2 JP61241634A JP24163486A JPH0668722B2 JP H0668722 B2 JPH0668722 B2 JP H0668722B2 JP 61241634 A JP61241634 A JP 61241634A JP 24163486 A JP24163486 A JP 24163486A JP H0668722 B2 JPH0668722 B2 JP H0668722B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- execution
- supplied
- 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
Links
Landscapes
- Advance Control (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラムの命令順序によらず命令実行順序を
決定する命令処理順序制御装置に関する。
決定する命令処理順序制御装置に関する。
従来より命令処理の高速化を目的とした、命令処理順序
を動的に決定しプログラムで指定された順序によらず演
算部に命令投入を行う方式が用いられている。(例えば
IBM360/91浮動小数処理装置:データ・ダブリ
ュー・アンダーソン、エフ・ジェー・スパラチオ、エフ
・エム・トマスロ著“ザ アイビーエム システム/3
60モデル91:マシンフィロソフィ アンド インス
トラクション ハンドリング”アイビーエム ジャーナ
ル オブ リサーチ アンド デベロプメント、8−2
4頁、1号、11巻、1967年1月(D.W.Anderson、
F.J.Sparacio、F.M.Tomasulo、“The IBM System/360 Mo
del 91:Machine Philosophy and Instrucition Handli
ng”IBM Journal of Research & Development、PP.8-24、
No.1、Vol.11、Jan1967):エス・ワイズ、ジェー・イー
・スミス著“インストラクション イッシュロジック
フォー パイプラインド スーパーコンピュータズ”第
11回アニュアル インタナショナルシンポジウム オ
ン コンピュータ アーキテクチャ、110−118
頁、1984(S.Weiss、J.E.Smith “Instruction Issu
e Logic for Pipelined Supercomputers”11th Annual
International Syumposium on Computer Architecure、
P.P.110-118、1984))。
を動的に決定しプログラムで指定された順序によらず演
算部に命令投入を行う方式が用いられている。(例えば
IBM360/91浮動小数処理装置:データ・ダブリ
ュー・アンダーソン、エフ・ジェー・スパラチオ、エフ
・エム・トマスロ著“ザ アイビーエム システム/3
60モデル91:マシンフィロソフィ アンド インス
トラクション ハンドリング”アイビーエム ジャーナ
ル オブ リサーチ アンド デベロプメント、8−2
4頁、1号、11巻、1967年1月(D.W.Anderson、
F.J.Sparacio、F.M.Tomasulo、“The IBM System/360 Mo
del 91:Machine Philosophy and Instrucition Handli
ng”IBM Journal of Research & Development、PP.8-24、
No.1、Vol.11、Jan1967):エス・ワイズ、ジェー・イー
・スミス著“インストラクション イッシュロジック
フォー パイプラインド スーパーコンピュータズ”第
11回アニュアル インタナショナルシンポジウム オ
ン コンピュータ アーキテクチャ、110−118
頁、1984(S.Weiss、J.E.Smith “Instruction Issu
e Logic for Pipelined Supercomputers”11th Annual
International Syumposium on Computer Architecure、
P.P.110-118、1984))。
これら命令処理順序制御を行う計算機では、命令の入出
力オペランドの衝突および演算器の使用可能状況を判定
しプログラムで指定された順序によらず演算部への命令
投入を決定する手段を有している。以下、この手段を実
行待機キューと呼ぶ。
力オペランドの衝突および演算器の使用可能状況を判定
しプログラムで指定された順序によらず演算部への命令
投入を決定する手段を有している。以下、この手段を実
行待機キューと呼ぶ。
実行待機キューは第7図に示すように、演算器に投入す
べき命令群32が必要とするオペランド33の到着を確
認し、必要なオペランドが整った命令から演算器に送り
込んでいく機構であり、オペランド待ちとなっている待
機命令32を複数個保持する。
べき命令群32が必要とするオペランド33の到着を確
認し、必要なオペランドが整った命令から演算器に送り
込んでいく機構であり、オペランド待ちとなっている待
機命令32を複数個保持する。
前述した命令の入出力オペランドの衝突の検出及び演算
器の使用状況から演算器への投入可能性の判定を行う手
段がどれだけ最適な命令実行順序の制御を行えるかは、
実行待機キューのエントリ数に依存する。即ちある時刻
T1に演算器に投入すべき命令が見つかる可能性は、時
刻T1に投入可能かどうかを判定出来る命令数(実行待
機キューのエントリ数)が多いほど高くなる。
器の使用状況から演算器への投入可能性の判定を行う手
段がどれだけ最適な命令実行順序の制御を行えるかは、
実行待機キューのエントリ数に依存する。即ちある時刻
T1に演算器に投入すべき命令が見つかる可能性は、時
刻T1に投入可能かどうかを判定出来る命令数(実行待
機キューのエントリ数)が多いほど高くなる。
しかし実行待機キューのエントリ数を増やせない要因も
存在する。特に、定められたクロック時間内で演算器へ
の投入可能性の判定を行い、投入すべき命令を決定しよ
うとした場合、実現可能な実行待機キューのエントリ数
にはおのずと限界が生ずることが上げられる。クロック
周期を延ばすことや、演算器への投入可能性の判定に要
するクロック数を増すことはスループットの観点から問
題が多くなる。
存在する。特に、定められたクロック時間内で演算器へ
の投入可能性の判定を行い、投入すべき命令を決定しよ
うとした場合、実現可能な実行待機キューのエントリ数
にはおのずと限界が生ずることが上げられる。クロック
周期を延ばすことや、演算器への投入可能性の判定に要
するクロック数を増すことはスループットの観点から問
題が多くなる。
すなわち従来の命令処理順序制御装置では小容量の実行
待機キューでは効果的な命令順序をうることが困難であ
るという問題点がある。
待機キューでは効果的な命令順序をうることが困難であ
るという問題点がある。
本発明の装置は、プログラムを格納するプログラム記憶
手段と、供給される命令群の各命令の入出力オペランド
の衝突および演算部の使用可能状況を判定し前記供給さ
れた命令群で指定された順序によらずに前記演算部への
命令投入順序を決定し前記演算部に前記各命令を投入す
る命令実行順序決定投入手段と、前記演算部に投入した
分岐命令につづく命令群を各命令の前記演算部への投入
順に格納する実行命令シーケンス記憶手段と、分岐命令
の分岐先アドレスと前記分岐命令につづいて前記演算部
で実行された命令群を前記実行命令シーケンス記憶手段
に格納する格納領域の先頭アドレスを格納する分岐アド
レステーブルと、選択指示信号の供給を受けたときには
前記実行命令シーケンス記憶手段から供給される命令群
を選択しそれ以外のときには前記プログラム記憶手段か
ら供給される命令群を選択して供給される命令が分岐命
令か否かを判定し分岐命令のときにはそれにつづく各命
令にこの分岐命令に固有の分岐情報タグを付して前記命
令実行順序決定投入手段へ供給する命令群選択手段と、
前記実行命令シーケンス記憶手段の格納領域の先頭アド
レスの供給をうけ前記命令群選択手段よりの分岐情報タ
グと前記演算部に投入された命令群の分岐情報タグとを
参照して一致した場合この命令群を書き込む書き込みア
ドレスを発生する書き込みアドレス発生手段と、前記実
行命令シーケンス記憶手段の格納領域の先頭アドレスの
供給を受け格納されている命令群を読み出す読み出しア
ドレスを発生する読み出しアドレス発生手段と、前記演
算部での分岐命令の実行による分岐先アドレスの供給を
受け前記分岐アドレステーブルを参照しこの分岐先アド
レスが登録されていないときにはこの分岐命令につづい
て実行される命令群を前記実行命令シーケンス記憶手段
に格納する先頭アドレスを生成し供給された前記分岐先
アドレスと共に前記分岐アドレステーブルに登録しこの
先頭アドレスを前記分岐アドレステーブルより前記書き
込みアドレス発生手段に供給し前記分岐アドレステーブ
ルを参照して前記供給された分岐先アドレスが登録され
ているときには対応する先頭アドレスを前記分岐アドレ
ステーブルより前記書き込みアドレス発生手段と前記読
み出しアドレス発生手段とに供給しかつ前記命令群選択
手段に前記選択指示信号を供給する分岐アドレス管理手
段とを含んで構成される。
手段と、供給される命令群の各命令の入出力オペランド
の衝突および演算部の使用可能状況を判定し前記供給さ
れた命令群で指定された順序によらずに前記演算部への
命令投入順序を決定し前記演算部に前記各命令を投入す
る命令実行順序決定投入手段と、前記演算部に投入した
分岐命令につづく命令群を各命令の前記演算部への投入
順に格納する実行命令シーケンス記憶手段と、分岐命令
の分岐先アドレスと前記分岐命令につづいて前記演算部
で実行された命令群を前記実行命令シーケンス記憶手段
に格納する格納領域の先頭アドレスを格納する分岐アド
レステーブルと、選択指示信号の供給を受けたときには
前記実行命令シーケンス記憶手段から供給される命令群
を選択しそれ以外のときには前記プログラム記憶手段か
ら供給される命令群を選択して供給される命令が分岐命
令か否かを判定し分岐命令のときにはそれにつづく各命
令にこの分岐命令に固有の分岐情報タグを付して前記命
令実行順序決定投入手段へ供給する命令群選択手段と、
前記実行命令シーケンス記憶手段の格納領域の先頭アド
レスの供給をうけ前記命令群選択手段よりの分岐情報タ
グと前記演算部に投入された命令群の分岐情報タグとを
参照して一致した場合この命令群を書き込む書き込みア
ドレスを発生する書き込みアドレス発生手段と、前記実
行命令シーケンス記憶手段の格納領域の先頭アドレスの
供給を受け格納されている命令群を読み出す読み出しア
ドレスを発生する読み出しアドレス発生手段と、前記演
算部での分岐命令の実行による分岐先アドレスの供給を
受け前記分岐アドレステーブルを参照しこの分岐先アド
レスが登録されていないときにはこの分岐命令につづい
て実行される命令群を前記実行命令シーケンス記憶手段
に格納する先頭アドレスを生成し供給された前記分岐先
アドレスと共に前記分岐アドレステーブルに登録しこの
先頭アドレスを前記分岐アドレステーブルより前記書き
込みアドレス発生手段に供給し前記分岐アドレステーブ
ルを参照して前記供給された分岐先アドレスが登録され
ているときには対応する先頭アドレスを前記分岐アドレ
ステーブルより前記書き込みアドレス発生手段と前記読
み出しアドレス発生手段とに供給しかつ前記命令群選択
手段に前記選択指示信号を供給する分岐アドレス管理手
段とを含んで構成される。
第2図に示すプログラム例を用いて作用を説明する。第
2図においてC←a+b f←d+eはプログラムのあ
るループ内に2つの代入式があることを示している。第
3図(a)はこれらの2つの代入式をオブジェクト・プ
ログラムに展開したものである。この命令シーケンスを
以下元の命令シーケンスという。ここでM(a)はメモ
リのa番地に格納されている値を表わし、A,B,C,
D,E,Fはそれぞれ対応する特定のレジスタに格納さ
れている値をいう。
2図においてC←a+b f←d+eはプログラムのあ
るループ内に2つの代入式があることを示している。第
3図(a)はこれらの2つの代入式をオブジェクト・プ
ログラムに展開したものである。この命令シーケンスを
以下元の命令シーケンスという。ここでM(a)はメモ
リのa番地に格納されている値を表わし、A,B,C,
D,E,Fはそれぞれ対応する特定のレジスタに格納さ
れている値をいう。
このプログラムを本発明による命令処理順序制御装置で
処理した場合、ループ動作の初回および2回目は第3図
(a)に示す与えられたプログラムの命令並びすなわち
元の命令シーケンスを入力とし、3回目は2回目に演算
器に投入された命令順、第4図(a)に示す第1の実行
命令シーケンス(後述)を入力とし、以降ループ繰り返
しによりN回目(N≧3)はN−1回目に演算器に投入
された命令順を入力として処理が進められる。
処理した場合、ループ動作の初回および2回目は第3図
(a)に示す与えられたプログラムの命令並びすなわち
元の命令シーケンスを入力とし、3回目は2回目に演算
器に投入された命令順、第4図(a)に示す第1の実行
命令シーケンス(後述)を入力とし、以降ループ繰り返
しによりN回目(N≧3)はN−1回目に演算器に投入
された命令順を入力として処理が進められる。
第4図(a),第5図(a)に実行待機キューのエント
リ数を2とした場合の処理順序を示す。第4図(a)は
初回および2回目に演算器に投入された命令順(以下こ
れと第1の実行命令シーケンスという)、第5図(a)
は3回目に演算器に投入された命令順(以下これを第2
の実行命令シーケンスという)であり、初回および2回
目実行時よりも3回目実行時の実行命令シーケンスの方
がより効果的になっている。
リ数を2とした場合の処理順序を示す。第4図(a)は
初回および2回目に演算器に投入された命令順(以下こ
れと第1の実行命令シーケンスという)、第5図(a)
は3回目に演算器に投入された命令順(以下これを第2
の実行命令シーケンスという)であり、初回および2回
目実行時よりも3回目実行時の実行命令シーケンスの方
がより効果的になっている。
第3図(b),第4図(b)および第5図(b)にこの
ような並び替えが行われた場合の実行タイミング例を示
す。第3図(b)は命令処理順序制御を行わない方式で
実行しようとした場合、第4図(b)は従来の命令処理
順序制御を実行した場合、第5図(b)は本発明の命令
処理順序制御を実行した場合である。第5図(b)から
明らかなように、本発明による命令処理順序制御装置で
は実行回数を重ねることにより処理時間が短かくなるよ
うに最適な命令処理順序での実行が行われるようにな
る。従って、命令待機キューのエントリ数が少なくても
最適処理順序を得ることが可能である。
ような並び替えが行われた場合の実行タイミング例を示
す。第3図(b)は命令処理順序制御を行わない方式で
実行しようとした場合、第4図(b)は従来の命令処理
順序制御を実行した場合、第5図(b)は本発明の命令
処理順序制御を実行した場合である。第5図(b)から
明らかなように、本発明による命令処理順序制御装置で
は実行回数を重ねることにより処理時間が短かくなるよ
うに最適な命令処理順序での実行が行われるようにな
る。従って、命令待機キューのエントリ数が少なくても
最適処理順序を得ることが可能である。
次に、本発明の実施例について図面を参照して説明す
る。
る。
第1図は本発明の一実施例を示すブロック図である。第
1図の命令処理順序制御装置はプログラムを保持するプ
ログラム記憶部1と、演算器に投入すべき命令群を得る
実行命令群選択書込読出部2と、命令の入出力オペラン
ドの衝突及び演算器の使用状況を判定しプログラムで指
定された順序によらず演算部への命令投入を決定する命
令実行順序決定投入部3と、既に投入した命令群とその
順序を保持する実行命令シーケンス記憶部4とから構成
される。
1図の命令処理順序制御装置はプログラムを保持するプ
ログラム記憶部1と、演算器に投入すべき命令群を得る
実行命令群選択書込読出部2と、命令の入出力オペラン
ドの衝突及び演算器の使用状況を判定しプログラムで指
定された順序によらず演算部への命令投入を決定する命
令実行順序決定投入部3と、既に投入した命令群とその
順序を保持する実行命令シーケンス記憶部4とから構成
される。
実行命令群選択書込読出部2は、命令群選択部21と、
分岐アドレス・テーブル22と、分岐アドレス管理部2
3と、演算器へ投入した命令を保持するアドレスを発生
する書込アドレス発生部24と、実行すべき命令を演算
器に投入した命令群から選択読みだすためのアドレスを
発生する読出アドレス発生部25とから構成される。
分岐アドレス・テーブル22と、分岐アドレス管理部2
3と、演算器へ投入した命令を保持するアドレスを発生
する書込アドレス発生部24と、実行すべき命令を演算
器に投入した命令群から選択読みだすためのアドレスを
発生する読出アドレス発生部25とから構成される。
また、実行命令シーケンス記憶部4は、記憶部41と、
読みだしアドレスを格納するレジスタ42と、読みだし
た命令を格納するレジスタ43と、書き込みアドレス格
納するレジスタ44と、書き込む命令を格納するレジス
タ45とから構成される。記憶部41は一定容量の複数
のブロックに分割されており、それぞれのブロックの先
頭アドレスは分岐アドレステーブル22に順に登録して
おく(この先頭アドレスは第1図ではLoci(i=1〜
n)と表わしている)。この各ブロックは後述する分岐
命令で区切られた1つの実行命令シーケンスを格納する
のに使用される。この1つの実行命令シーケンスに含ま
れる命令数が極めて多くなることも稀れであるので、ブ
ロックの容量の単位を例えば2KB単位に与えれば充分
である。そして、格納する1つの実行命令シーケンスが
このブロック容量を超えた場合にはこの実行命令シーケ
ンスの格納を無効とするため後述の分岐先アドレスの分
岐アドレステーブル22への登録は取消し、この実行命
令シーケンスを処理時間の短縮の対象から外す。
読みだしアドレスを格納するレジスタ42と、読みだし
た命令を格納するレジスタ43と、書き込みアドレス格
納するレジスタ44と、書き込む命令を格納するレジス
タ45とから構成される。記憶部41は一定容量の複数
のブロックに分割されており、それぞれのブロックの先
頭アドレスは分岐アドレステーブル22に順に登録して
おく(この先頭アドレスは第1図ではLoci(i=1〜
n)と表わしている)。この各ブロックは後述する分岐
命令で区切られた1つの実行命令シーケンスを格納する
のに使用される。この1つの実行命令シーケンスに含ま
れる命令数が極めて多くなることも稀れであるので、ブ
ロックの容量の単位を例えば2KB単位に与えれば充分
である。そして、格納する1つの実行命令シーケンスが
このブロック容量を超えた場合にはこの実行命令シーケ
ンスの格納を無効とするため後述の分岐先アドレスの分
岐アドレステーブル22への登録は取消し、この実行命
令シーケンスを処理時間の短縮の対象から外す。
次に、本実施例の動作について第2図に示すプログラム
を例にとりかつ命令実行順序決定投入部3にある実行待
機キューのエントリ数が2の場合について説明する。
を例にとりかつ命令実行順序決定投入部3にある実行待
機キューのエントリ数が2の場合について説明する。
プログラム記憶部1には第3図(a)に示す元の命令シ
ーケンスで第2図のプログラムが格納されている。
ーケンスで第2図のプログラムが格納されている。
プログラム記憶部1から元の命令シーケンスで命令が実
行命令群選択書込読出部2の命令群選択部21に供給さ
れる。実行命令群選択書込読出部2の主たる動作は分岐
命令の実行を契機として開始される。それまでは命令群
選択部21はプログラム記憶部1から供給される命令群
を選択し各命令が分岐命令か否かを判定し命令実行順序
決定投入部3に供給する。
行命令群選択書込読出部2の命令群選択部21に供給さ
れる。実行命令群選択書込読出部2の主たる動作は分岐
命令の実行を契機として開始される。それまでは命令群
選択部21はプログラム記憶部1から供給される命令群
を選択し各命令が分岐命令か否かを判定し命令実行順序
決定投入部3に供給する。
命令群選択部21で供給された命令が分岐命令であるこ
とが判明したときにはその次に供給される命令から分岐
情報タグを付して命令実行順序決定投入部3に供給す
る。この分岐情報タグは分岐命令以前に命令実行順序決
定投入部3に供給された命令と分岐命令より後に供給さ
れた命令とを区別するために使用され原則的には分岐命
令毎に異なった分岐情報タグが使用される。
とが判明したときにはその次に供給される命令から分岐
情報タグを付して命令実行順序決定投入部3に供給す
る。この分岐情報タグは分岐命令以前に命令実行順序決
定投入部3に供給された命令と分岐命令より後に供給さ
れた命令とを区別するために使用され原則的には分岐命
令毎に異なった分岐情報タグが使用される。
かくして初回においは命令実行順序決定投入部3には元
の命令シーケンスで命令が供給される。命令実行順序決
定投入部3には第6図に示すような実行待機キュー61
が用意されている。第6図ではエントリ数はn個である
がここでは前述のようにn=2の場合について説明す
る。
の命令シーケンスで命令が供給される。命令実行順序決
定投入部3には第6図に示すような実行待機キュー61
が用意されている。第6図ではエントリ数はn個である
がここでは前述のようにn=2の場合について説明す
る。
実行待機キュー61には分岐情報タグフィールド64、
待機命令フィールド62および必要なオペランドフィー
ルド63があり対応する情報を格納し、必要なオペラン
ドが整った命令から順に出力される。また実行待機キュ
ー61が満杯のときには格納されている命令以降に命令
実行順序決定投入部3に供給された命令はたとえ必要な
オペランドが整っていても演算器には出力されない。
待機命令フィールド62および必要なオペランドフィー
ルド63があり対応する情報を格納し、必要なオペラン
ドが整った命令から順に出力される。また実行待機キュ
ー61が満杯のときには格納されている命令以降に命令
実行順序決定投入部3に供給された命令はたとえ必要な
オペランドが整っていても演算器には出力されない。
第3図(a)に示す元の命令シーケンスで供給された命
令群がこの命令実行順序決定投入部3で如何に実行順序
が決定されるか、すなわち第1の実行命令シーケンスが
如何にして作成されるかを説明する。
令群がこの命令実行順序決定投入部3で如何に実行順序
が決定されるか、すなわち第1の実行命令シーケンスが
如何にして作成されるかを説明する。
元の命令シーケンスにおいて、必要なオペランドを整え
るまで、待機しなければならない待機命令は命令10
3,104,107および108である。命令101と
102は必要なオペランドが整っているので順に演算器
に投入され、命令103と104の2個が先ず実行待機
キュー61に格納され保持する。また命令105以降は
実行待機キュー61が満杯故演算器に投入されない。命
令101,102の演算器での実行結果、命令103は
オペランドが整ったので演算器に投入される。これによ
り実行待機キュー61にはあきができたので命令105
と106とが実行待機キュー61をへて演算器に投入さ
れ命令107が実行待機キュー61に格納される。そし
てオペランドの整った順に命令104,107,108
が演算器に出力される。かくして第4図(a)に示す第
1の実行命令シーケンスが得られる。
るまで、待機しなければならない待機命令は命令10
3,104,107および108である。命令101と
102は必要なオペランドが整っているので順に演算器
に投入され、命令103と104の2個が先ず実行待機
キュー61に格納され保持する。また命令105以降は
実行待機キュー61が満杯故演算器に投入されない。命
令101,102の演算器での実行結果、命令103は
オペランドが整ったので演算器に投入される。これによ
り実行待機キュー61にはあきができたので命令105
と106とが実行待機キュー61をへて演算器に投入さ
れ命令107が実行待機キュー61に格納される。そし
てオペランドの整った順に命令104,107,108
が演算器に出力される。かくして第4図(a)に示す第
1の実行命令シーケンスが得られる。
このようにして初回の演算器への命令投入が第2図のプ
ログラムについて行なわれ、ループの最後にある分岐命
令がプログラム記憶部1から命令群選択部21に供給さ
れる。
ログラムについて行なわれ、ループの最後にある分岐命
令がプログラム記憶部1から命令群選択部21に供給さ
れる。
命令群選択部21では供給された命令が分岐命令である
ときには前述のようにその次に供給される命令から分岐
情報タグを付して命令実行順序決定投入部3に供給する
準備をする。
ときには前述のようにその次に供給される命令から分岐
情報タグを付して命令実行順序決定投入部3に供給する
準備をする。
分岐命令が命令実行順序決定投入部3を経て演算器に供
給され実行されるとその結果分岐先アドレス情報(プロ
グラム記憶部1のアドレス情報)が演算器から実行命令
群選択書込読出部2の分岐アドレス管理部23に供給さ
れる。
給され実行されるとその結果分岐先アドレス情報(プロ
グラム記憶部1のアドレス情報)が演算器から実行命令
群選択書込読出部2の分岐アドレス管理部23に供給さ
れる。
分岐アドレス管理部23は供給された分岐先アドレスが
分岐アドレステーブル22に登録されているかどうかを
調べ、登録されていないときにはこの分岐先アドレスを
分岐アドレステーブルに順に登録して(第1図ではAdd
i(i=1〜n)と表わしている。k番目の次は(k+
1)番目(k=nのときには(k+1)=1)と順に登
録する)、この分岐命令に続く実行命令シーケンスを実
行命令シーケンス記憶部4の記憶部41に格納する格納
領域の先頭アドレスを決定し、これを書込アドレス発生
部24に供給する。この分岐先アドレスの登録は分岐ア
ドレステーブル22のエントリーが満杯のときには順に
置き換えられる。分岐先アドレスが分岐アドレステーブ
ル22に登録されているときには対応する先頭アドレス
を書込アドレス発生部24と読出アドレス発生部25と
に供給する。
分岐アドレステーブル22に登録されているかどうかを
調べ、登録されていないときにはこの分岐先アドレスを
分岐アドレステーブルに順に登録して(第1図ではAdd
i(i=1〜n)と表わしている。k番目の次は(k+
1)番目(k=nのときには(k+1)=1)と順に登
録する)、この分岐命令に続く実行命令シーケンスを実
行命令シーケンス記憶部4の記憶部41に格納する格納
領域の先頭アドレスを決定し、これを書込アドレス発生
部24に供給する。この分岐先アドレスの登録は分岐ア
ドレステーブル22のエントリーが満杯のときには順に
置き換えられる。分岐先アドレスが分岐アドレステーブ
ル22に登録されているときには対応する先頭アドレス
を書込アドレス発生部24と読出アドレス発生部25と
に供給する。
書込アドレス発生部24は上記のようにして決定された
先頭アドレスを分岐アドレステーブル22より供給さ
れ、また命令群選択部21からこれに対応する分岐情報
タグの供給をうけてこれらを保持し、命令実行順序決定
投入部3から供給される演算部へ投入した命令の分岐情
報タグを参照して、この分岐情報タグと同一の保持され
ている分岐情報タグに対応する保持されている先頭アド
レスを、分岐命令につづいて演算部で実行された命令を
順に格納する記憶部41への書込アドレスとしてレジス
タ44に供給するとともに、この供給された先頭アドレ
スに代えて、この供給された先頭アドレスに+1して新
たな先頭アドレスとして保持しておく。
先頭アドレスを分岐アドレステーブル22より供給さ
れ、また命令群選択部21からこれに対応する分岐情報
タグの供給をうけてこれらを保持し、命令実行順序決定
投入部3から供給される演算部へ投入した命令の分岐情
報タグを参照して、この分岐情報タグと同一の保持され
ている分岐情報タグに対応する保持されている先頭アド
レスを、分岐命令につづいて演算部で実行された命令を
順に格納する記憶部41への書込アドレスとしてレジス
タ44に供給するとともに、この供給された先頭アドレ
スに代えて、この供給された先頭アドレスに+1して新
たな先頭アドレスとして保持しておく。
命令群選択部21には分岐命令の実行により決定したプ
ログラム記憶部1の分岐先アドレスにある命令から順に
供給され、第2回目のループ動作に移行する。
ログラム記憶部1の分岐先アドレスにある命令から順に
供給され、第2回目のループ動作に移行する。
第2回目のループ動作で命令実行順序決定投入部3から
演算部に供給される命令シーケンスは前述と同様、第1
の実行命令シーケンスである。しかしてこの第1の実行
命令シーケンスは命令実行順序決定投入部3により演算
部へ供給されるとともに実行命令シーケンス記憶部4の
レジスタ45にも供給されかつ供給された命令の分岐情
報タグが書込アドレス発生部24に供給されるので書込
アドレス発生部24から供給される記憶部41のアドレ
スに第1の実行命令シーケンスが格納される。
演算部に供給される命令シーケンスは前述と同様、第1
の実行命令シーケンスである。しかしてこの第1の実行
命令シーケンスは命令実行順序決定投入部3により演算
部へ供給されるとともに実行命令シーケンス記憶部4の
レジスタ45にも供給されかつ供給された命令の分岐情
報タグが書込アドレス発生部24に供給されるので書込
アドレス発生部24から供給される記憶部41のアドレ
スに第1の実行命令シーケンスが格納される。
第2回目のループ動作の最後にまた分岐命令が実行さ
れ、分岐アドレス管理部23はその分岐先アドレスの分
岐アドレステーブル22への登録の有無をチェックす
る。今度は分岐先アドレスは登録されているので、分岐
アドレス管理部23は命令群選択部21に選択する命令
群は実行命令シーケンス記憶部4から供給されるものに
切替えるよう指示するとともに、分岐アドレステーブル
22から格納している第1の実行命令シーケンスの先頭
アドレスを書込アドレス発生部24と読出アドレス発生
部25とに供給する。読出アドレス発生部25は格納さ
れている第1の実行命令シーケンスを順次読出すアドレ
スを発生して第1の実行命令シーケンスを命令群選択部
21に供給する。書込アドレス発生部24の動作は前述
と同様におこなわれる。この第1の実行命令シーケンス
の各命令は分岐情報タグが付されて命令実行順序決定投
入部3に供給される。
れ、分岐アドレス管理部23はその分岐先アドレスの分
岐アドレステーブル22への登録の有無をチェックす
る。今度は分岐先アドレスは登録されているので、分岐
アドレス管理部23は命令群選択部21に選択する命令
群は実行命令シーケンス記憶部4から供給されるものに
切替えるよう指示するとともに、分岐アドレステーブル
22から格納している第1の実行命令シーケンスの先頭
アドレスを書込アドレス発生部24と読出アドレス発生
部25とに供給する。読出アドレス発生部25は格納さ
れている第1の実行命令シーケンスを順次読出すアドレ
スを発生して第1の実行命令シーケンスを命令群選択部
21に供給する。書込アドレス発生部24の動作は前述
と同様におこなわれる。この第1の実行命令シーケンス
の各命令は分岐情報タグが付されて命令実行順序決定投
入部3に供給される。
第1の実行命令シーケンスは命令実行順序決定投入部3
において前記の元の命令シーケンスから第1の実行命令
シーケンスに並べかえが行なわれたと同様の動作で第5
図(a)に示す第2の実行命令シーケンスに並べかえら
れる。この第2の実行命令シーケンスは書込アドレス発
生部24から供給されるアドレスにより記憶部41で第
1の実行命令シーケンスに代えて記憶される。以下この
くりかえしが行なわれる。
において前記の元の命令シーケンスから第1の実行命令
シーケンスに並べかえが行なわれたと同様の動作で第5
図(a)に示す第2の実行命令シーケンスに並べかえら
れる。この第2の実行命令シーケンスは書込アドレス発
生部24から供給されるアドレスにより記憶部41で第
1の実行命令シーケンスに代えて記憶される。以下この
くりかえしが行なわれる。
このようにして本実施例では命令実行順序決定に当って
はすでに実行された命令群の命令実行順序を再利用して
いる。
はすでに実行された命令群の命令実行順序を再利用して
いる。
第3図(b),第4図(b)および第5図(b)に示す
ようにに例えばLOAD命令、STORE命令が3t0
(t0は1クロックサイクル時間)、ADD命令が4t
0の処理時間を要するとすれば全処理時間は元の命令シ
ーケンスのときには20t0、第1の実行命令シーケン
スのときは16t0、第2の実行命令シーケンスのとき
は13t0と改善されている。
ようにに例えばLOAD命令、STORE命令が3t0
(t0は1クロックサイクル時間)、ADD命令が4t
0の処理時間を要するとすれば全処理時間は元の命令シ
ーケンスのときには20t0、第1の実行命令シーケン
スのときは16t0、第2の実行命令シーケンスのとき
は13t0と改善されている。
本実施例の説明ではループの1部のプログラムについて
の改善のみを示したがループ全体では一般に更に改善は
大となる。
の改善のみを示したがループ全体では一般に更に改善は
大となる。
また本実施例ではシングルループについて説明したがシ
ングルループが複数個ある場合および多重ループになっ
ている場合についても本発明は適用できる。この場合に
は分岐情報タグが有効に作用し異なったループでは実行
命令シーケンスは区別されて保有することができる。ま
たループでなくとも1つの命令群が分岐命令の使用によ
り繰かえし使用される場合には本発明は適用できる。
ングルループが複数個ある場合および多重ループになっ
ている場合についても本発明は適用できる。この場合に
は分岐情報タグが有効に作用し異なったループでは実行
命令シーケンスは区別されて保有することができる。ま
たループでなくとも1つの命令群が分岐命令の使用によ
り繰かえし使用される場合には本発明は適用できる。
本実施例では命令実行順序決定投入部3に実行待機キュ
ーが1個しかない場合について説明したが複数個の実行
待機キューを有する場合についても適用できる。
ーが1個しかない場合について説明したが複数個の実行
待機キューを有する場合についても適用できる。
本発明には既に実行された命令シーケンスを演算部に投
入する命令群として再利用することにより、演算部の投
入時にその命令群の命令シーケンスをより処理時間が短
かくなるように並べかえることができ実行待機キューの
エントリ数が少なくとも処理時間を短縮できる命令順序
を得ることができるという効果がある。
入する命令群として再利用することにより、演算部の投
入時にその命令群の命令シーケンスをより処理時間が短
かくなるように並べかえることができ実行待機キューの
エントリ数が少なくとも処理時間を短縮できる命令順序
を得ることができるという効果がある。
第1図は本発明の一実施例を示すブロック図、第2図は
本発明の作用を説明するための原始プログラム図、第3
図は第2図の目的プログラムを示した元の命令シーケン
ス図、およびその処理タイムチャート、第4図は第1の
実行命令シーケンス図およびその処理タイムチャート、
第5図は第2の実行命令シーケンス図、およびその処理
タイムチャート図、第6図は命令実行順序決定投入部3
の実行待機キューを示す配置図、第7図は実行待機キュ
ーを説明する説明図である。 1……プログラム記憶部、2……実行命令群選択書込読
出部、3……命令実行順序決定投入部、4……実行命令
シーケンス記憶部、21……命令群選択部、22……分
岐アドレス・テーブル、23……分岐アドレス管理部、
24……書込アドレス発生部、25……読出アドレス発
生部、31,61……実行待機キュー、32,62……
待機命令フィールド、33,63……必要なオペランド
フィールド、41……記憶部、42〜45……レジス
タ、64……分岐情報タグフィールド、101〜108
……命令。
本発明の作用を説明するための原始プログラム図、第3
図は第2図の目的プログラムを示した元の命令シーケン
ス図、およびその処理タイムチャート、第4図は第1の
実行命令シーケンス図およびその処理タイムチャート、
第5図は第2の実行命令シーケンス図、およびその処理
タイムチャート図、第6図は命令実行順序決定投入部3
の実行待機キューを示す配置図、第7図は実行待機キュ
ーを説明する説明図である。 1……プログラム記憶部、2……実行命令群選択書込読
出部、3……命令実行順序決定投入部、4……実行命令
シーケンス記憶部、21……命令群選択部、22……分
岐アドレス・テーブル、23……分岐アドレス管理部、
24……書込アドレス発生部、25……読出アドレス発
生部、31,61……実行待機キュー、32,62……
待機命令フィールド、33,63……必要なオペランド
フィールド、41……記憶部、42〜45……レジス
タ、64……分岐情報タグフィールド、101〜108
……命令。
Claims (1)
- 【請求項1】プログラムを格納するプログラム記憶手段
と、供給される命令群の各命令の入出力オペランドの衝
突および演算部の使用可能状況を判定し前記供給された
命令群で指定された順序によらずに前記演算部への命令
投入順序を決定し前記演算部に前記各命令を投入する命
令実行順序決定投入手段と、前記演算部に投入した分岐
命令につづく命令群を各命令の前記演算部への投入順に
格納する実行命令シーケンス記憶手段と、分岐命令の分
岐先アドレスと前記分岐命令につづいて前記演算部で実
行された命令群を前記実行命令シーケンス記憶手段に格
納する格納領域の先頭アドレスとを格納する分岐アドレ
ステーブルと、選択指示信号の供給を受けたときには前
記実行命令シーケンス記憶手段から供給される命令群を
選択しそれ以外のときには前記プログラム記憶手段から
供給される命令群を選択して供給される命令が分岐命令
か否かを判定し分岐命令のときにはそれにつづく各命令
にこの分岐命令に固有の分岐情報タグを付して前記命令
実行順序決定投入手段へ供給する命令群選択手段と、前
記実行命令シーケンス記憶手段の格納領域の先頭アドレ
スの供給をうけ前記命令群選択手段よりの分岐情報タグ
と前記演算部に投入された命令群の分岐情報タグとを参
照して一致した場合この命令群を書き込む書き込みアド
レスを発生する書き込みアドレス発生手段と、前記実行
命令シーケンス記憶手段の格納領域の先頭アドレスの供
給を受け格納されている命令群を読み出す読み出しアド
レスを発生する読み出しアドレス発生手段と、前記演算
部での分岐命令の実行による分岐先アドレスの供給を受
け前記分岐アドレステーブルを参照しこの分岐先アドレ
スが登録されていないときにはこの分岐命令につづいて
実行される命令群を前記実行命令シーケンス記憶手段に
格納する先頭アドレスを生成し供給された前記分岐先ア
ドレスと共に前記分岐アドレステーブルに登録しこの先
頭アドレスを前記分岐アドレステーブルより前記書き込
みアドレス発生手段に供給し前記分岐アドレステーブル
を参照して前記供給された分岐先アドレスが登録されて
いるときには対応する先頭アドレスを前記分岐アドレス
テーブルより前記書き込みアドレス発生手段と前記読み
出しアドレス発生手段とに供給しかつ前記命令群選択手
段に前記選択指示信号を供給する分岐アドレス管理手段
とを含むことを特徴とする命令処理順序制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61241634A JPH0668722B2 (ja) | 1986-10-09 | 1986-10-09 | 命令処理順序制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61241634A JPH0668722B2 (ja) | 1986-10-09 | 1986-10-09 | 命令処理順序制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6395538A JPS6395538A (ja) | 1988-04-26 |
JPH0668722B2 true JPH0668722B2 (ja) | 1994-08-31 |
Family
ID=17077233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61241634A Expired - Lifetime JPH0668722B2 (ja) | 1986-10-09 | 1986-10-09 | 命令処理順序制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0668722B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0820948B2 (ja) * | 1992-11-04 | 1996-03-04 | 日本電気株式会社 | 先行制御装置 |
JP4243463B2 (ja) | 2002-08-19 | 2009-03-25 | 株式会社半導体理工学研究センター | 命令スケジューリングのシミュレーション方法とシミュレーションシステム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5110746A (ja) * | 1974-07-17 | 1976-01-28 | Hitachi Ltd | |
JPS53118951A (en) * | 1977-03-26 | 1978-10-17 | Mitsubishi Electric Corp | Microprogram trace unit |
JPS57101953A (en) * | 1980-12-17 | 1982-06-24 | Hitachi Ltd | Program execution trace system |
JPS5999552A (ja) * | 1982-11-30 | 1984-06-08 | Matsushita Electric Ind Co Ltd | マイクロコンピユ−タ |
JPS6027945A (ja) * | 1983-07-27 | 1985-02-13 | Nec Corp | 命令取出装置 |
-
1986
- 1986-10-09 JP JP61241634A patent/JPH0668722B2/ja not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5110746A (ja) * | 1974-07-17 | 1976-01-28 | Hitachi Ltd | |
JPS53118951A (en) * | 1977-03-26 | 1978-10-17 | Mitsubishi Electric Corp | Microprogram trace unit |
JPS57101953A (en) * | 1980-12-17 | 1982-06-24 | Hitachi Ltd | Program execution trace system |
JPS5999552A (ja) * | 1982-11-30 | 1984-06-08 | Matsushita Electric Ind Co Ltd | マイクロコンピユ−タ |
JPS6027945A (ja) * | 1983-07-27 | 1985-02-13 | Nec Corp | 命令取出装置 |
Also Published As
Publication number | Publication date |
---|---|
JPS6395538A (ja) | 1988-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5831871A (en) | Integrated structure layout and layout of interconnections for an instruction execution unit of an integrated circuit chip | |
JP3724581B2 (ja) | バックアップ装置 | |
US5892963A (en) | System and method for assigning tags to instructions to control instruction execution | |
JPH0766329B2 (ja) | 情報処理装置 | |
JP2560988B2 (ja) | 情報処理装置および処理方法 | |
JP3556246B2 (ja) | パイプラインプロセッサにおける割込み処理のための装置 | |
EP1131701B1 (en) | Multiple job signals per processing unit in a multiprocessing system | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
JPH06236275A (ja) | スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム | |
JPH1185513A (ja) | プロセッサ | |
EP0079370A4 (en) | DIGITAL CALCULATOR FOR EXECUTING COMMANDS IN THREE PARTS IN TIME MULTIPLEX. | |
JPH0668722B2 (ja) | 命令処理順序制御装置 | |
JPH11316681A (ja) | 命令バッファへのロ―ド方法、装置およびプロセッサ | |
EP0600583A1 (en) | Vector processing device | |
US7107478B2 (en) | Data processing system having a Cartesian Controller | |
JP3082944B2 (ja) | パイプライン処理装置 | |
JP3607548B2 (ja) | ベクトル演算装置 | |
JPH10116191A (ja) | 圧縮命令用バッファを備えたプロセッサ | |
JPH04308929A (ja) | 並列計算機 | |
JPH05173785A (ja) | 命令先取り装置 | |
JPH0782452B2 (ja) | 演算処理装置 | |
JP2001350627A (ja) | ディジタル信号プロセッサ、並列処理方法および記録媒体 | |
JPS5846444A (ja) | 電子計算機 | |
JP2003323294A (ja) | スーパースカラプロセッサ | |
JPH07262008A (ja) | 並列分岐処理装置 |