JP3534987B2 - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JP3534987B2 JP3534987B2 JP28708197A JP28708197A JP3534987B2 JP 3534987 B2 JP3534987 B2 JP 3534987B2 JP 28708197 A JP28708197 A JP 28708197A JP 28708197 A JP28708197 A JP 28708197A JP 3534987 B2 JP3534987 B2 JP 3534987B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- index
- register
- signal
- operand
- 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 - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 39
- 238000000034 method Methods 0.000 claims description 12
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 230000003068 static effect Effects 0.000 claims 1
- 230000002401 inhibitory effect Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 29
- 230000004913 activation Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 7
- 230000005764 inhibitory process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- BSFODEXXVBBYOC-UHFFFAOYSA-N 8-[4-(dimethylamino)butan-2-ylamino]quinolin-6-ol Chemical compound C1=CN=C2C(NC(CCN(C)C)C)=CC(O)=CC2=C1 BSFODEXXVBBYOC-UHFFFAOYSA-N 0.000 description 1
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Description
関し、詳細には、複数のレジスタをソースオペランドと
する命令を解読するとともにその解読結果に応じて実行
ユニットをディスパッチする情報処理装置に関する。
ロプロセッサの処理能力が向上している。その代表的な
アーキテクチャとして、VLIW(Very Long
Instruction Word)とスーパースカ
ラとが挙げられる。これらのアーキテクチャを採用した
プロセッサでは、複数のパイプラインを用いて複数の処
理を同時に実行させることができる。ところが、パイプ
ライン構造をもつプロセッサにおいては、各パイプライ
ンについて逐次的に処理を実行することから、命令処理
を高速化するには、パイプラインの数を増やす必要があ
った。
において、情報処理装置が命令を実行する場合には、多
くの命令により主記憶装置上のデータがソースオペラン
ドとして参照される。各々の命令から主記憶装置上のデ
ータアドレスを生成する方式としては、ベースレジス
タ、インデックスレジスタ、ディスプレースメントの3
値を加算して生成する方式が一般的である。
16は、上記方式を採用した情報処理装置のブロック構
成を模式的に示している。図16において、命令CMD
は、OP(オペランド)コード,レジスタ番号1がオペ
ランド1であることを示す値R1,ベースレジスタ番号
を示す値B2,インデックスレジスタ番号の値X2,デ
ィスプレースメントの値D2より構成される。
ジスタファイル91、ラッチ92,93,94、およ
び、加算器95より構成される。レジスタファイル91
は、ベースレジスタ番号の値B2,インデックスレジス
タ番号の値X2をそれぞれ読み取り、さらに後段のラッ
チ93,94に出力する。
プレースメントの値D2を読み込んでつぎのタイミング
で加算器95に出力する。ラッチ93,94は、それぞ
れレジスタファイル91からベースレジスタ番号の値B
2,インデックスレジスタ番号の値X2を読み込んでつ
ぎのタイミングで加算器95に出力する。
直接取り込むが、ラッチ93,および94は、命令CM
Dの情報をレジスタファイル91を介してから取り込む
ことになる。加算器95は、ラッチ92,93および9
4に保持された値をすべて取り込んで加算して、主記憶
装置上のデータアドレスを生成する。
命令CMDに対してレジスタファイル91の読み出しポ
ートが一組(2つ)設けられている。もし複数の命令を
同時に処理する場合には、レジスタファイル91に設け
られた一組の読み出しポートを用いて逐次的に処理を実
行すればよいが、その分処理が遅延する。
時処理する命令数に応じてレジスタファイル91の読み
出しポートの組数を増設することが考えられる。同時処
理する命令数が例えば3つある場合には、レジスタファ
イル91の読み出しポートを3倍の三組設ければよい。
これはレジスタ読み出しのデータパスも3倍となる。以
下にその構成について説明する。
令を同時解読および実行する情報処理装置においては、
図16の構成による一般的な命令形式の命令実行にハー
ドウェアを適合させるため、ベースレジスタおよびイン
デックスレジスタのための読み取りポートを同時解読す
る命令数だけ備えるのが一つの解決方法である。
ドウェア構成を示すブロック図である。図17に示した
情報処理装置では、ラッチ構成が説明上省略して示され
ている。この情報処理装置では、命令レジスタ96A,
96B,96Cにそれぞれ命令が格納されている。レジ
スタファイル91には、各命令レジスタ96A,96
B,96Cから読み出された命令が取り込まれる。すな
わち、各命令レジスタ96A,96B,96Cからはベ
ースレジスタ番号の値とインデックスレジスタ番号の値
とがペアで読み出される。このため、命令レジスタ96
A,96Bおよび96Cとレジスタファイル91との間
には、図16の構成と比べて3倍のパイプラインが設け
られたことになる。
A,選択回路91Bなどを備えている。このレジスタフ
ァイル91では、レジスタの数をn(nは自然数)個と
した場合、読み出しを必要とするポート数にnを乗じた
数だけのデータパスが必要となる。したがって、レジス
タ群91Aと選択回路91Bとは、必要なデータパスで
接続される。
データパスを介して読み出された各命令のベースレジス
タ番号の値およびインデックスレジスタ番号の値を取り
込んで、それぞれに対応する加算器95A,95B,9
5Cを選択して出力する。
令に対応しており、ベースレジスタ,インデックスレジ
スタおよびディスプレースメントの全3値を加算してデ
ータアドレスを求める。加算器95Bは、命令レジスタ
96Bの命令に対応しており、ベースレジスタ,インデ
ックスレジスタおよびディスプレースメントの全3値を
加算してデータアドレスを求める。加算器95Cは、命
令レジスタ96Cの命令に対応しており、ベースレジス
タ,インデックスレジスタおよびディスプレースメント
の全3値を加算してデータアドレスを求める。
ァイル91の読み取りポート数は、前述した図16の読
み取りポート数と比べて3倍になっている。したがっ
て、図17のレジスタファイル91は、命令レジスタ9
6A,96Bおよび96Cから同時に3つの命令を読み
出すことになる。すなわち、レジスタファイル91で
は、命令レジスタ96A,96B,96Cからそれぞれ
ベースレジスタ番号の値とインデックスレジスタ番号の
値とが読み出されると、それぞれの値がレジスタ群91
Aから取り出される。
た値はデータパスを介して選択回路91Bに送られた
後、選択回路91Bに命令別に接続される加算器95
A,95B,95Cにそれぞれ出力される。加算器95
A,95B,95Cでは、選択回路91Bから入力され
た値(ベースレジスタ番号の値とインデックスレジスタ
番号の値)と各命令レジスタ96A,96B,96Cか
ら直接入力された図示せぬディスプレースメントの値と
が加算される。その加算結果がデータアドレスとなる。
特開昭61−283930号公報,特開平3−2452
23号公報,同4−54638号公報および同5−19
7547号公報がある。
来例による情報処理装置では、パイプライン数や加算器
を増設することで同時処理する命令数に応じた処理の高
速化を図っていたので、レジスタファイル91内でレジ
スタ群91Aの各レジスタからデータを読み出すための
選択回路91Bが増大することになり、その結果とし
て、ハードウェアの増大、およびマシンサイクルの増加
が引き起こされていた。
接した命令群の中では、インデックスレジスタが使われ
ない(レジスタ番号0である)か、すべて同じインデッ
クスレジスタが使われる場合が高頻度であった。今日、
これに着目して、チップ面積やマシンサイクルの観点か
ら見て、レジスタの読み取りポート数を増加させずに複
数命令の同時解読および実行を実現する方法が要望され
ていた。
解消するため、命令処理を高速に実行するための複数命
令を同時解読および実行することができ、かつその構成
をハードウェア量の著しい増加を招くことなく実現でき
る情報処理装置を提供することを目的とする。
目的を達成するため、請求項1の発明に係る情報処理装
置は、同時処理すべき複数の命令に従って動作する複数
の命令実行手段と、前記複数の命令に従って前記各命令
実行手段の動作を制御する制御ユニットと、複数の出力
ポートを有し、該出力ポートを用いて前記制御ユニット
に指示されたレジスタの内容を出力するレジスタファイ
ルと、を有し、前記制御ユニットは、前記各命令実行手
段に対する命令をデコードするデコード手段と、前記デ
コード手段のデコード結果によりオペランドのアドレス
生成に使用するレジスタを選択するアドレス生成レジス
タ選択手段と、前記同時処理すべき複数の命令が前記ア
ドレス生成レジスタ選択手段により選択されたレジスタ
と互いに同一のレジスタをオペランドのアドレス生成に
用いる特定オペランド使用命令であるか否かを判定する
特定オペランド使用命令判定手段とを備え、前記特定オ
ペランド使用命令判定手段により前記特定オペランド使
用命令であると判定された場合に、前記アドレス生成レ
ジスタ選択手段により前記レジスタファイルの出力ポー
トからレジスタ内容を読み出してオペランドのアドレス
を生成し、前記複数の命令実行手段が前記特定オペラン
ド使用命令をそれぞれ同時処理することを特徴とする。
トにおいて、同時処理すべき複数の命令を解読し、その
解読結果によりオペランドのアドレス生成に使用するレ
ジスタを選択し、同時処理すべき複数の命令について、
選択したレジスタと互いに同一のレジスタをオペランド
のアドレス生成に用いる特定オペランド使用命令である
か否かを判定し、特定オペランド使用命令であると判定
した場合に、選択したレジスタ内容をレジスタファイル
の出力ポートから読み出してオペランドのアドレスを生
成し、複数の命令実行手段が特定オペランド使用命令を
それぞれ同時処理するようにしたので、オペランドのア
ドレス生成に使用するレジスタの内容をレジスタファイ
ルから読み出すデータパスが一つしかない場合にも、特
定オペランド使用命令については全てオペランドアドレ
スを生成して同時実行することができ、同時処理すべき
複数の命令の同時実行が抑止される頻度を減らすことが
できる。
は、請求項1の発明において、前記同時処理を行う複数
の命令が前記特定オペランド使用命令であるか否かを記
憶する特定オペランド使用命令情報記憶手段とをさらに
備え、前記特定オペランド使用命令判定手段は、前記特
定オペランド使用命令であるか否かの判定結果を前記特
定オペランド使用命令情報記憶手段に書き込み、前記複
数の命令実行手段は、前記特定オペランド使用命令情報
記憶手段により記憶された判定結果に基づいて前記特定
オペランド使用命令をそれぞれ同時に処理することを特
徴とする。
行う複数の命令が特定オペランド使用命令であるか否か
の判定結果を記憶し、記憶した判定結果に基づいて特定
オペランド使用命令をそれぞれ同時に処理するようにし
たので、特定オペランド使用命令だけを同時に処理する
ように制御することができる。
は、請求項1または2の発明において、前記オペランド
のアドレス生成としてインデックスレジスタとベースレ
ジスタとディスプレースメントを使用し、前記アドレス
生成レジスタ選択手段は、前記同時処理を行う複数の命
令がそれぞれオペランドのアドレス生成に用いるインデ
ックスレジスタの中から、前記レジスタファイルのポー
トからデータを出力するインデックスレジスタを選択
し、前記特定オペランド使用命令判定手段は、前記同時
処理を行う複数の命令のそれぞれが前記アドレス生成レ
ジスタ選択手段により選択されたインデックスレジスタ
と同一のインデックスレジスタをオペランドのアドレス
生成に用いる特定オペランド使用命令であるか否かを判
定することを特徴とする。
のアドレス生成としてインデックスレジスタとベースレ
ジスタとディスプレースメントを使用し、同時処理を行
う複数の命令がそれぞれオペランドのアドレス生成に用
いるインデックスレジスタの中から、レジスタファイル
のポートからデータを出力するインデックスレジスタを
選択し、同時処理を行う複数の命令のそれぞれについ
て、選択したインデックスレジスタと同一のインデック
スレジスタをオペランドのアドレス生成に用いる特定オ
ペランド使用命令であるか否かを判定するようにしたの
で、インデックスレジスタの内容をレジスタファイルか
ら読み出すデータパスが一つしかない場合にも、特定オ
ペランド使用命令については全てオペランドアドレスを
生成して同時実行することができ、同時処理すべき複数
の命令の同時実行が抑止される頻度を減らすことができ
る。
は、請求項3の発明において、前記複数の命令実行手段
は、それぞれ実行する命令がインデックスレジスタを使
用しない命令の場合には、前記アドレス生成レジスタ選
択手段が選択するインデックスレジスタに関わらず該命
令を実行することを特徴とする。
令がインデックスレジスタを使用しない命令の場合に
は、選択したインデックスレジスタに関わらず命令実行
手段が命令を実行するようにしたので、同時処理すべき
複数の命令の同時実行が抑止される頻度をさらに減らす
ことができる。
は、請求項1の発明において、前記同時処理を行う複数
の命令のうち前記アドレス生成ジスタ選択手段により選
択されたレジスタとは異なるレジスタをオペランドのア
ドレス生成に用いる場合に、実行を抑止された命令をそ
れぞれの命令実行手段に対応させて保持する命令保持手
段をさらに備え、前記命令実行手段は、前記命令保持手
段により保持された命令を優先的に実行することを特徴
とする。
行う複数の命令のうち、選択したレジスタとは異なるレ
ジスタをオペランドのアドレス生成に用いるために実行
を抑止された命令をそれぞれの命令実行手段に対応させ
て保持し、保持した命令を命令実行手段が優先的に実行
するようにしたので、同時処理すべき命令のうち実行が
抑止された命令の実行の遅れを最小限にすることができ
る。
発明に係る情報処理装置の好適な実施の形態を詳細に説
明する。
する。図1はこの発明の実施の形態1による情報処理装
置の構成を示すブロック図である。図1には、同時処理
すべき命令数が3つの場合の情報処理装置が示されてい
る。この情報処理装置は、図1に示したように、例え
ば、制御ユニット1,レジスタファイル2,実行ユニッ
ト起動レジスタ3A,3Bおよび3C,実行ユニット4
A,4Bおよび4C,命令レジスタ9A,9Bおよび9
Cにより構成される。
は、それぞれ第1命令,第2命令,第3命令を格納して
いる。第1命令は、オペコードOP1,インデックス番
号DT1−1およびベース番号DT1−2により構成さ
れ、第2命令は、オペコードOP2,インデックス番号
DT2−1およびベース番号DT2−2により構成さ
れ、第3命令は、オペコードOP3,インデックス番号
DT3−1およびベース番号DT3−2により構成され
る。
およびインデックス番号DT1−1が制御ユニット1の
デコーダ部11に出力され、ベース番号DT1−2がレ
ジスタファイル2に出力される。命令レジスタ9Bで
は、オペコードOP2およびインデックス番号DT2−
1が制御ユニット1のデコーダ部11に出力され、ベー
ス番号DT2−2がレジスタファイル2に出力される。
命令レジスタ9Cでは、オペコードOP3およびインデ
ックス番号DT3−1が制御ユニット1のデコーダ部1
1に出力され、ベース番号DT3−2がレジスタファイ
ル2に出力される。
デックス選択部12およびディスパッチ抑止部13より
構成される。デコーダ部11は、命令レジスタ9A,9
B,9Cから同時に3つの命令を取り込んで解読(デコ
ード)する。インデックス選択部12は、デコーダ部1
1の解読結果(デコード結果)に応じてインデックス番
号を選択してその選択されたインデックス番号をレジス
タファイル2に出力する。ディスパッチ抑止部13は、
デコーダ部11の解読結果とインデックス選択部12の
選択結果とに基づいて実行ユニット起動レジスタ3A,
3B,3Cに対して起動をセットする制御信号やそのセ
ット(ディスパッチ)を抑止する制御信号を送出する。
A,9B,9Cからそれぞれベース番号DT1−2,D
T2−2,DT3−2と、制御ユニット1で選択された
インデックス番号に対応するレジスタ番号の出力だけを
出力する。
Cは、それぞれ実行ユニット4A,4B,4Cを起動す
る制御信号をセットするためのレジスタである。実行ユ
ニット起動レジスタ3A,3B,3Cにおいては、起動
をセットするための制御信号がセットされた場合にはデ
ィスパッチが許可され、一方、起動をセットしない、す
なわちディスパッチを抑止する制御信号がセットされた
場合にはディスパッチが抑止される。実行ユニット4
A,4B,4Cは、それぞれ命令レジスタ9A,9B,
9Cの命令に従って動作するとともに、実行ユニット起
動レジスタ3A,3B,3Cにセットされた制御信号に
応じてディスパッチの有無が制御される。
ンデックス番号DT1−1,2−1,3−1は制御ユニ
ット1に送出され、ベース番号DT1−2,2−2,3
−2はレジスタファイル2に直接送出される。制御ユニ
ット1からは、3つの命令(命令レジスタ9A,9B,
9C)の中から一つ選択されたインデックス番号DT1
−n(n=1,2or3)がレジスタファイルに送ら
れ、各実行ユニット起動レジスタ3A,3B,3Cをセ
ットする制御信号が送出される。
る。図2,図3,図4はそれぞれ図1に示した制御ユニ
ット1のデコーダ部11,インデックス選択部12,デ
ィスパッチ抑止部13の構成を示す回路図である。
いて説明する。図2に示したデコーダ部11は、デコー
ダ111〜116と、EXOR回路117〜119とに
より構成される。デコーダ111,112,113は、
それぞれ命令レジスタ9A,9B,9Cからオペコード
OP1,OP2,OP3を取り込んでデコードしてイン
デックス選択部12に出力する。
ぞれ命令レジスタ9A,9B,9Cからインデックス番
号DT1−1,2−1,3−1を取り込んでデコードし
てインデックス選択部12およびディスパッチ抑止部1
3に出力する。EXNOR回路117,118,119
は、それぞれ命令レジスタ9A,9B,9Cからインデ
ックス番号DT1−1とDT2−1,DT1−1とDT
3−1,DT2−1とDT3−1を取り込んで排他的論
理和をとり、それぞれの結果をディスパッチ抑止部13
に出力する。
れ「+I1 USE INDEX」信号(a),「+I
2 USE INDEX」信号(b),「+I3 US
EINDEX」信号(c),「+I1 INDEX E
Q 0」信号(d),「+I2 INDEX EQ
0」信号(e),「+I3 INDEX EQ 0」信
号(f)である。
19の出力は、それぞれ「+I1INDEX EQ I
2 INDEX」信号(g),「+I1 INDEX
EQ I3 INDEX」信号(h),「+I2 IN
DEX EQ I3 INDEX」信号(i)である。
信号(a)は、デコーダ111において命令レジスタ9
AのオペコードOP1をデコードして生成され、第1命
令がインデックス番号DT1−1を使用する場合に
“1”となる。「+I2 USElNDEX」信号
(b)は、デコーダ112において命令レジスタ9Bの
オペコードOP2をデコードして生成され、第2命令が
インデックス番号DT2−1を使用する場合に“1”と
なる。「+I3 USE lNDEX」信号(c)は、
デコーダ113において命令レジスタ9Cのオペコード
OP3をデコードして生成され、第3命令がインデック
ス番号DT3−1を使用する場合に“1”となる。
(ZERO)」信号(d)は、デコーダ114において
第1命令のインデックス番号がゼロである場合に“1”
となる。この値“1”はインデックス番号を使用しない
ことを示す。「+I2 INDEX EQ ZERO」
信号(e)は、デコーダ115において第2命令のイン
デックス番号がゼロである場合に“1”となる。この値
“1”はインデックス番号を使用しないことを示す。
「+I3 INDEX EQ ZERO」信号(f)
は、デコーダ116において第3命令のインデックス番
号がゼロである場合に“1”となる。この値“1”はイ
ンデックス番号を使用しないことを示す。
INDEX」信号(g)は、EXNOR回路117に
おいて第1命令と第2命令とのインデックス番号が等し
い場合に“1”となり、それ以外は“0”となる。「+
I1 INDEX EQ I3 INDEX」信号
(h)は、EXNOR回路118において第1命令と第
3命令とのインデックス番号が等しい場合に“1”とな
り、それ以外は“0”となる。「+I2 INDEX
EQ I3 INDEX」信号(i)は、EXNOR回
路119において第2命令と第3命令とのインデックス
番号が等しい場合に“1”となり、それ以外は“0”と
なる。
(a)〜(f)はインデックス選択部12に出力され、
そのうちの信号(c),(e),(f)はディスパッチ
抑止部13にも出力される。また、信号(g),
(h),(i)は、ディスパッチ抑止部13に出力され
る。
12について説明する。図3において、「+SEL I
1 lNDEX」信号は、オペコードOP1のデコード
によりインデックス番号を使用することが示され、かつ
インデックス番号がゼロでないことを示している。すな
わち、この信号は、第1命令が真にインデックス番号を
使用することを示す。この信号が有効な場合、制御ユニ
ット1は、第1命令のインデックス番号をレジスタファ
イル2に送出する。「+SEL I2 INDEX」信
号は、第1命令がインデックス番号を使用せず、第2命
令がインデックス番号を使用することを示している。す
なわち、この信号が有効な場合、制御ユニット1は、第
2命令のインデックス番号をレジスタファイル2に送出
する。
NAND回路122,124およびAND回路121,
123,125,126,127により構成される。A
ND回路121は、「+I1 USE INDEX」信
号(a)と「+I1 INDEX EQ 0」信号
(d)の反転信号との論理積を求め、その演算結果を第
1命令のインデックスを選択する「+SEL I1 I
NDEX」信号としてレジスタファイル2に出力する。
NAND回路122は、「+I1 USE INDE
X」信号(a)と「+I1 INDEX EQ 0」信
号(d)の反転信号との論理積を求め、その演算結果を
反転してAND回路126および127に出力する。
INDEX」信号(b)と「+I2INDEX EQ
0」信号(e)の反転信号との論理積を求め、その演算
結果を第2命令のインデックスを選択する信号(「+S
EL I2 INDEX」信号)としてAND回路12
6に出力する。NAND回路124は、「+I2USE
INDEX」信号(b)と「+I2 INDEX E
Q 0」信号(e)の反転信号との論理積を求め、その
演算結果を反転してAND回路127に出力する。
INDEX」信号(c)と「+I3INDEX EQ
0」信号(f)の反転信号との論理積を求め、その演算
結果を第3命令のインデックスを選択する信号(「+S
EL I3 INDEX」信号)としてAND回路12
7に出力する。
の「+SEL I1 INDEXP」信号とAND回路
123の「+SEL I2 INDEX」信号との論理
積により第2命令のインデックスを選択する「+SEL
I2 INDEX」信号をレジスタファイル2に送出
する。
の「+SEL I1 INDEXP」信号とNAND回
路124の反転信号とAND回路125の「+SEL
I3INDEX」信号との論理積により第3命令のイン
デックスを選択する「+SEL I3 INDEX」信
号をレジスタファイル2に送出する。
13について説明する。図4において、「+INH E
X2」信号は、第1命令のインデックス番号が選択され
ること、第2命令がインデックス番号を使用すること、
および第1命令と第2命令のインデックス番号が等しく
ないことがすべて成立した場合に“1”となる。この場
合、第2命令が実行ユニット4Bで実行されることを抑
止するため、実行ユニット起動レジスタ3Bのセットが
抑止される。
の場合に“1”(有効)となって送出される。すなわ
ち、ひとつは、第1命令のインデックス番号が選択され
ること、第3命令がインデックス番号を使用すること、
および第3命令のインデックス番号が使用されかつ第1
命令と第3命令のインデックス番号が等しくないことが
すべて成立した場合である。もうひとつは、第1命令の
インデックスが使用されるがそのインデックス番号がゼ
ロか、それとも第1命令のインデックス番号が使用され
ずそのインデックス番号がゼロでもそれ以外でもよいこ
と、第2命令のインデックス番号が選択されること、第
3命令がインデックス番号を使用すること、および第2
命令と第3命令のインデックス番号が等しくないことが
すべて成立した場合である。
NOR回路131および132,NOT回路133,A
ND回路134,135および136,OR回路137
により構成される。NOR回路131は、「+I2 I
NDEX EQ 0」信号(e)と「+I1 INDE
X EQ I2 INDEX」信号(g)との論理和を
反転させてAND回路134に出力する。NOR回路1
32は、「+I3 INDEX EQ 0」信号(f)
と「+I1 INDEX EQ I3 INDEX」信
号(h)との論理和を反転させてAND回路135に出
力する。NOT133は、「+I2 INDEX EQ
I3 INDEX」信号(i)を反転させてAND回
路136に出力する。
反転信号とAND回路121の「+SEL I1 IN
DEX」信号と「+I2 USE INDEX」信号
(b)との論理積により第2命令のディスパッチを抑止
する制御信号すなわち「+INH EX2」信号を実行
ユニット起動レジスタ3B(実行ユニット4Bに対応)
に発行する。
反転信号とAND回路121の「+SEL I1 IN
DEX」信号と「+I3 USE INDEX」信号
(c)との論理積により第3命令のディスパッチを抑止
する制御信号すなわち「+INH EX3」信号をOR
回路137に出力する。
の反転信号(「+SEL I2 INDEXP」信号)
と「+I3 USE INDEX」信号(c)とNOT
回路133の出力信号との論理積により上記「+INH
EX3」信号をOR回路137に出力する。OR回路
137は、AND回路135の「+INH EX3」信
号とAND回路136の制御信号との論理和により「+
INH EX3」信号を有効もしくは無効にして実行ユ
ニット起動レジスタ3C(実行ユニット4Cに対応)に
発行する。
“1”となると、第3命令が実行ユニット4Cで実行さ
れることを抑止するため、実行ユニット起動レジスタ3
Cのセットが抑止される。
パッチ抑止を含む動作について詳述する。図5は実施の
形態1において第2命令が実行ユニットへ割り当てられ
る条件を表形式で説明する図であり、図6は実施の形態
1において第3命令が実行ユニットへ割り当てられる条
件を表形式で説明する図である。これら図5および図6
に示した表から導き出される条件は、前述した制御ユニ
ット1の入出力の関係を示すものである。
ット4Bへ割り当てられる場合について説明する。この
場合の条件としては、大別すると、第1命令がインデッ
クス(この場合には、特定ソースオペランドを意味す
る)の使用中か、未使用かに区分される。まず、第1命
令がインデックスを使用している際には(「+I1 U
SE INDEX」信号が“1”(有効)の場合)、さ
らに、第2命令が第1命令で使用しているインデックス
と同一のインデックスを使用しているか否か(「+I1
INDEX EQ I2 INDEX」信号の“1”
(有効)または“0”(無効)の場合)、あるいは、イ
ンデックスに関して未使用か(「+I1INDEX E
Q 0」信号が“1”(有効の場合))に区分される。
を使用しているか、あるいは、インデックスに関して未
使用の場合には、第2命令への実行ユニット4Bの割り
当てが許可される。すなわち、図4のディスパッチ抑止
部13においてAND回路134からの出力が“0”と
なり、第2命令のディスパッチ抑止が無効となる。一
方、第2命令がインデックスを使用しており、そのイン
デックスが第1命令と同一のインデックスではない場合
には、第2命令への実行ユニット4Bの割り当てが不許
可となる。すなわち、図4のディスパッチ抑止部13に
おいてAND回路134からの出力が“1”となり、第
2命令のディスパッチ抑止が有効となる。
際には、第2命令がインデックスを使用しているか、そ
れともインデックスを未使用かに区分される。この場
合、第2命令が第1命令と同一のインデックスを使用し
ているか否かは関係なく、またインデックスを使用して
いても使用していなくても、第2命令への実行ユニット
4Bの割り当てが許可される。すなわち、図4のディス
パッチ抑止部13においてAND回路134からの出力
が“0”となり、第2命令のディスパッチ抑止が無効と
なる。
ニット4Cへ割り当てられる場合について説明する。こ
の場合の条件としては、図5の場合と同様に、大別する
と、第1命令がインデックス(この場合には、特定ソー
スオペランドを意味する)の使用中か、未使用かに区分
される。まず、第1命令がインデックスを使用している
際には、第2命令がそのインデックスを使用しているか
否かには依存せず、第3命令がその同一のインデックス
を使用しているか否か、あるいは、インデックスに関し
て未使用かに区分される。ここでは、ディスパッチ抑止
部13のAND回路135の出力が鍵となる。
を使用しているか、あるいは、インデックスに関して未
使用の場合には、第3命令への実行ユニット4Cの割り
当てが許可される。すなわち、図4のディスパッチ抑止
部13においてAND回路135および136の出力
“0”によりOR回路137からの出力が“0”とな
り、第3命令のディスパッチ抑止が無効となる。一方、
第3命令がインデックスを使用しており、そのインデッ
クスが第1命令と同一のインデックスではない場合、第
3命令への実行ユニット4Cの割り当てが不許可とな
る。すなわち、図4のディスパッチ抑止部13において
AND回路135の出力“1”によりOR回路137か
らの出力が“1”となり、第3命令のディスパッチ抑止
が有効となる。
際には、第2命令がインデックス(この場合には、特定
ソースオペランドを意味する)を使用しているか、それ
ともインデックスを未使用かに区分される。ここでは、
ディスパッチ抑止部13のAND回路136の出力が鍵
となる。第2命令がインデックスを使用している場合に
は、第3命令がその同一のインデックスを使用している
か否か、あるいは、インデックスに関して未使用かに区
分される。
を使用しているか、あるいは、インデックスに関して未
使用の場合には、第3命令への実行ユニット4Cの割り
当てが許可される。すなわち、図4のディスパッチ抑止
部13においてAND回路135および136の出力
“0”によりOR回路137からの出力が“0”とな
り、第3命令のディスパッチ抑止が無効となる。一方、
第3命令がインデックスを使用しており、そのインデッ
クスが第2命令と同一のインデックスではない場合、第
3命令への実行ユニット4Cの割り当てが不許可とな
る。すなわち、図4のディスパッチ抑止部13において
AND回路136の出力“1”によりOR回路137か
らの出力が“1”となり、第3命令のディスパッチ抑止
が有効となる。
際には、第3命令がインデックスを使用しているか、そ
れともインデックスを未使用かに区分される。この場
合、第3命令が第2命令と同一のインデックスを使用し
ているか否かは関係なく、またインデックスを使用して
いても使用していなくても、第3命令への実行ユニット
4Cの割り当てが許可される。すなわち、図4のディス
パッチ抑止部13においてAND回路135および13
6の出力“0”によりOR回路137からの出力が
“0”となり、第3命令のディスパッチ抑止が無効とな
る。
よれば、制御ユニット1において、同時処理すべき複数
の命令を解読し、その解読結果に応じて複数の実行手段
のうちでディスパッチすべき実行手段を選択するととも
に、解読結果および選択結果に基づいて複数の実行手段
のいずれかのディスパッチを抑止する。これにより、複
数命令を同時解読および実行することで命令処理を高速
に実行することが可能、かつその高速化をレジスタを読
み出すデータパスの大幅な増設なしに必要最小限のハー
ドウェア量で実現することが可能である。
使用しているときに続く第2命令が異なるソースオペラ
ンドを使用した場合に第2命令に対応する実行ユニット
へのディスパッチを抑止する。これにより、複数の命令
間で第1命令を優先する上で、特定ソースオペランドの
共有が可能な後続命令(第2命令)については同時実行
を許可して複数命令の同時処理を実現し、一方、共有が
不可能な後続命令(第2命令)についてはその同時処理
から外すことが可能である。
使用しているときに2つ後の第3命令が異なるソースオ
ペランドを使用した場合に第3命令に対応する実行ユニ
ットへのディスパッチを抑止し、また、第1命令がソー
スオペランドランドを未使用で、かつ第2命令が特定ソ
ースオペランドを使用しているときに続く第3命令が異
なるソースオペランドを使用した場合に第3命令に対応
する実行ユニットへのディスパッチを抑止する。これに
より、複数の命令間で第1命令もしくは第2命令を優先
する上で、特定ソースオペランドの共有が可能な後続命
令については同時実行を許可して複数命令の同時処理を
実現し、一方、共有が不可能な後続命令についてはその
同時処理から外すことが可能である。
態1では、制御ユニット1内で各命令レジスタ9A,9
B,9Cからオペコードおよびインデックス番号を読み
出してデコードするようにしていたが、以下に説明する
実施の形態2のように、そのデコード処理を制御ユニッ
トから分離して独立した構成で設けるようにしてもよ
い。以下に説明する実施の形態2では、前述した実施の
形態1と同様の構成については同様の番号を付してその
構成および動作の説明を省略する。
発明の実施の形態2による情報処理装置の構成を示すブ
ロック図である。この情報処理装置は、図7に示したよ
うに、例えば、レジスタファイル2,実行ユニット起動
レジスタ3A,3Bおよび3C,実行ユニット4A,4
Bおよび4C,制御ユニット5,リザベーションステー
ション7,命令レジスタ9A,9Bおよび9Cにより構
成される。
御ユニット5およびリザベーションステーション7であ
り、これらは前述した制御ユニット1に相当する部分で
ある。制御ユニット5は、前述した制御ユニット1から
デコーダ部11に相当する構成を省いた構成である。し
たがって、制御ユニット5は、インデックス選択部12
に相当するインデックス選択部51とディスパッチ抑止
部13に相当するディスパッチ抑止部52とにより構成
される。
命令レジスタ9A,9B,9Cにそれぞれ対応して命令
の解読およびその結果であるエントリを保持する第1エ
ントリエリア71,第2エントリエリア72,第3エン
トリエリア73より構成される。これら第1エントリエ
リア71,第2エントリエリア72,第3エントリエリ
ア73には、命令レジスタ9A,9B,9Cに保持され
ているデータが格納される。
エントリ内容について説明する。図8はこの発明の実施
の形態2によるエントリ内容の一例を示す図である。エ
ントリ内容は、図8に示した如く、インデックス番号D
Tn−1(nは命令番号を示す、n=1,2or3)を
使用することを示すデータV1,インデックス番号DT
n−1が使用可能であることを示すデータR1,インデ
ックス番号DTn−1のレジスタアドレスA1,インデ
ックス番号DTn−2を使用することを示すデータV
2,インデックス番号DTn−2が使用可能であること
を示すデータR2,インデックス番号DTn−2のレジ
スタアドレスA2より構成される。
ンデックス番号DT1−1を使用することを示すデータ
V1,インデックス番号DT1−1が使用可能であるこ
とを示すデータR1,インデックス番号DT1−1のレ
ジスタアドレスA1,インデックス番号DT1−2を使
用することを示すデータV2,インデックス番号DT1
−2が使用可能であることを示すデータR2およびイン
デックス番号DT1−2のレジスタアドレスA2が格納
される。また、第2エントリエリア72および第3エン
トリエリア73においても同様の規則でデータが格納さ
れる。
る。図9は制御ユニット5のインデックス選択部51の
構成を示すブロック図であり、図10は制御ユニット5
のディスパッチ抑止部52の構成を示すブロック図であ
る。
51について説明する。図9において、「+E1 RE
ADY」信号は、第1エントリエリア71の命令が実行
可能である場合に“1”となる。この信号は、Vビッ
ト、Rビットから生成され、各レジスタオペランドが使
用されないか、または使用可能であるときそれらの条件
の論理積で生成される。「+SEL E1 INDE
X」信号は、第1エントリエリア71のインデックス番
号を選択する場合に“1”となる。
2エントリエリア72の命令が実行可能である場合に
“1”となる。この信号は、Vビット、Rビットから生
成され、各レジスタオペランドが使用されないか、また
は使用可能であるときそれらの条件の論理積で生成され
る。「+SEL E2 INDEX」信号は、第2エン
トリエリア72のインデックス番号を選択する場合に
“1”となる。
3エントリエリア73の命令が実行可能である場合に
“1”となる。この信号は、Vビット、Rビットから生
成され、各レジスタオペランドが使用されないか、また
は使用可能であるときそれらの条件の論理積で生成され
る。「+SEL E3 INDEX」信号は、第3エン
トリエリア73のインデックス番号を選択する場合に
“1”となる。
ように、AND回路511,513,515,516お
よび517と、NAND回路512,514とにより構
成される。AND回路511は、「+E1 READ
Y」信号と「+E1 USEINDEX」信号との論理
積により第1命令のインデックスを選択する「+SEL
E1 INDEX」信号をレジスタファイル2へ送出
する。また、この「+SEL E1 INDEX」信号
は、ディスパッチ抑止部52のAND回路521および
522にも送出される。
DY」信号と「+E1 USE INDEX」信号との
論理積により求められた演算結果を反転してAND回路
516およびAND回路517に出力する。
Y」信号と「+E2 USE INDEX」信号との論
理積により第2命令のインデックスを選択する「+SE
LE2 INDEXP」信号をAND回路516へ送出
する。また、この「+SEL E2 INDEXP」信
号は、ディスパッチ抑止部52のAND回路523にも
送出される。
DY」信号と「+E2 USE INDEX」信号との
論理積により求められた演算結果を反転してAND回路
517に出力する。AND回路515は、「+E3 R
EADY」信号と「+E3USE INDEX」信号と
の論理積により第3命令のインデックスを選択する「+
SEL E3 INDEX」信号をAND回路517へ
送出する。
の反転信号とAND回路513の出力との論理積に応じ
て「+SEL E2 INDEX」信号をレジスタファ
イル2へ送出する。AND回路517は、AND回路5
15の出力とNAND回路512の反転信号とNAND
回路514の反転信号との論理積に応じて「+SELE
3 INDEX」信号をレジスタファイル2へ送出す
る。
止部52について説明する。図10において、「+IN
H EX2」信号は、第2エントリエリア72の命令が
実行ユニット4Bに発行された際に、実行ユニット起動
レジスタ3Bのセットを抑止する制御信号である。「+
INH EX3」信号は、第3エントリエリア73の命
令が実行ユニット4Cに発行された際に、実行ユニット
起動レジスタ3Cのセットを抑止する制御信号である。
「−E1 EQ E3」信号は、第1エントリエリア7
1と第3エントリエリア73のレジスタアドレスが一致
しない場合を“1”とする信号であり、「−E2 EQ
E3」信号は、第2エントリエリア72と第3エント
リエリア73のレジスタアドレスが一致しない場合を
“1”とする信号である。
たように、AND回路521,522および523と、
OR回路524とにより構成される。AND回路521
は、AND回路511の「+SEL E1 INDE
X」信号と「+E2 USEINDEX」信号と「−E
1 EQ E2」信号との論理積に応じて「+INHE
X2」信号を実行ユニット起動レジスタ3Bに送出す
る。
トリ内容が選択されているときに(AND回路511の
出力が“1”(有効)の場合)、第2エントリエリア7
2のインデックス番号が使用され(「+E2 USE
INDEX」信号が“1”(有効)の場合)、かつ第1
エントリエリア71と第2エントリエリア72のエント
リ内容が不一致であれば(「−E1 EQ E2」信号
が“1”)、実行ユニット起動レジスタ3Bに対してそ
のセットを抑止する制御信号(「+INH EX2」信
号が“1”(有効)の場合)が発行される。
「+SEL E1 INDEX」信号と「+E3 US
E INDEX」信号と「−E1 EQ E3」信号と
の論理積に応じて「+INH EX3」信号をOR回路
524に出力する。AND回路523は、AND回路5
13の出力(「+SEL E2 INDEXP」信号)
と「+E3 USE INDEX」信号と「−E2 E
Q E3」信号との論理積に応じて上記「+INH E
X3」信号をOR回路524に出力する。
力とAND回路523の出力との論理和に応じて「+I
NH EX3」信号を実行ユニット起動レジスタ3Cに
送出する。すなわち、第1エントリエリア71のエント
リ内容が選択されているときに(AND回路511の出
力が“1”(有効)の場合)、第3エントリエリア73
のインデックス番号が使用され(「+E3 USE I
NDEX」信号が“1”(有効)の場合)、かつ第1エ
ントリエリア71と第3エントリエリア73のエントリ
内容が不一致であれば(「−E1 EQ E3」信号が
“1”(有効)の場合)、実行ユニット起動レジスタ3
Cに対してそのセットを抑止する制御信号(「+INH
EX3」信号が“1”(有効)の場合)が発行され
る。
実行可能であり、かつその命令のインデックス番号が使
用可能なときに(AND回路513の出力が“1”(有
効)の場合)、第3エントリエリア73のインデックス
番号も使用可能であり(「+E3 USE INDE
X」信号が“1”(有効)の場合)、かつ第2エントリ
エリア72と第3エントリエリア73のエントリ内容が
相違すれば(「−E2EQ E3」信号が“1”(有
効)の場合)、実行ユニット起動レジスタ3Cに対して
そのセットを抑止する制御信号(「+INH EX3」
信号が“1”(有効)の場合)が発行される。
の形態1と相違する動作について説明する。図11は実
施の形態2によるデータの流れを説明する図である。命
令レジスタ9A,9B,9Cにいずれもインデックスを
使用する命令が保持され、それぞれに使用するインデッ
クス番号は「INDEX=1」データ,「INDEX=
2」,「INDEX=1」とする。
それぞれ保持されている第1命令,第3命令に従って実
行ユニット4A,4Cを起動する制御が行われる。一
方、命令レジスタ9Bに保持されている第2命令は、ま
ずリザベーションステーション7の第2エントリエリア
72にロードされ、つぎのタイミングが待たれる。した
がって、そのときの実行ユニット4Bは空き状態とな
る。
に第1命令,第2命令,第3命令とともにインデックス
番号を使用して、第1命令と第3命令のインデックス番
号が等しい命令解読サイクルの次サイクルでは、第1命
令が実行ユニット4Aで実行され、第3命令が実行ユニ
ット4Cで実行され、第2命令はリザベーションステー
ション7のエントリレジスタ72に格納される。
よれば、前述の実施の形態1と共通する効果の他に、同
時処理すべき複数の命令を解読してから、制御ユニット
5において、その解読結果に応じて複数の実行ユニット
4A,4B,4Cのうちでディスパッチすべき実行ユニ
ットを選択するとともに、解読結果および選択結果に基
づいて複数の実行ユニット4A,4B,4Cのいずれか
のディスパッチを抑止する。これにより、複数命令を同
時解読および実行することで命令処理を高速に実行する
ことが可能、かつその高速化をレジスタを読み出すデー
タパスの大幅な増設なしに必要最小限のハードウェア量
で実現することが可能である。
いて制御ユニット5の制御で各実行手段にディスパッチ
されていない命令のソースオペランドを保持するように
したので、命令レジスタ9でつぎに実行すべき命令を保
持しておくことが可能である。
に説明する実施の形態3のように、制御ユニットに関し
て前述した実施の形態1と2の特徴を併せ持つ構成にし
てもよい。以下に説明する実施の形態3において、前述
した実施の形態1および2と同様の構成については、同
様の番号を付してその説明を省略する。
の発明の実施の形態3による情報処理装置の構成を示す
ブロック図である。この情報処理装置は、図12に示し
たように、例えば、レジスタファイル2,実行ユニット
起動レジスタ3A,3Bおよび3C,実行ユニット4
A,4Bおよび4C,制御ユニット8,リザベーション
ステーション7,命令レジスタ9A,9Bおよび9Cに
より構成される。
態2の制御ユニット5に替わってインデックス選択部8
2およびディスパッチ抑止部83により構成される制御
ユニット8が適用される。
ユニット8について詳述する。図13は制御ユニット8
のインデックス選択部82の構成を示すブロック図であ
り、図14は制御ユニット8のディスパッチ抑止部83
の構成を示すブロック図である。
部82について説明する。インデックス選択部82は、
図13に示したように、図9(実施の形態2)のインデ
ックス選択部51に相当するインデックス選択部82
1,図3(実施の形態1)のインデックス選択部12に
相当するインデックス選択部822,AND回路823
〜828およびOR回路829により構成される。
821から出力される「+SELE1 INDEX」信
号(第1エントリエリア71のインデックス番号を選択
する信号)と「+E1 INDEX」信号(第1エント
リエリア71が用いるインデックス番号)との論理積を
求める。AND回路824は、インデックス選択部82
1から出力される「+SEL E2 INDEX」信号
(第2エントリエリア72のインデックス番号を選択す
る信号)と「+E2 INDEX」信号(第2エントリ
エリア72が用いるインデックス番号)との論理積を求
める。AND回路825は、インデックス選択部821
から出力される「+SEL E3 INDEX」信号
(第3エントリエリア73のインデックス番号を選択す
る信号)と「+E3 INDEX」信号(第3エントリ
エリア73が用いるインデックス番号)との論理積を求
める。
822から出力される「+SELI1 INDEX」信
号(命令レジスタ9Aのインデックス番号を選択する信
号)と「+I1 INDEX」信号(命令レジスタ9A
が用いるインデックス番号)との論理積を求める。AN
D回路827は、インデックス選択部822から出力さ
れる「+SEL I2 INDEX」信号(命令レジス
タ9Bのインデックス番号を選択する信号)と「+I2
INDEX」信号(命令レジスタ9Bが用いるインデ
ックス番号)との論理積を求める。AND回路828
は、インデックス選択部822から出力される「+SE
L I3 INDEX」信号(命令レジスタ9Cのイン
デックス番号を選択する信号)と「+I3 INDE
X」信号(命令レジスタ9Cが用いるインデックス番
号)との論理積を求める。
28までの全出力の論理和に応じて最終的に選択すべき
インデックス番号を示す「+SELECTED IND
EX」信号をレジスタファイル2へ送出する。したがっ
て、OR回路829では、AND回路823〜828の
いずれか一つの有効な出力を選択すべきインデックス番
号として送出する。
めには、インデックス選択部821(インデックス選択
部51に相当する)と822(インデックス選択部12
に相当する)との間で優先順位を取る必要があるが、こ
れはどれかのエントリからのインデックス番号が選択さ
れたときには抑止することで可能となる。
部83について説明する。図14において、「+INH
−EX1」信号は、第1命令が実行ユニット4Aに発行
されたときに、実行ユニット起動レジスタ3Aのセット
を抑止する制御信号である。第2エントリエリア72,
第3エントリエリア73のどちらかに実行可能なエント
リが存在して(「+E2 READY」信号が“1”
(有効)の場合、「+E3 READY」信号が“1”
(有効)の場合)、第1エントリエリア71に実行可能
な命令が無い場合には(「+E1 READY」信号が
“0”(無効)の場合)、命令レジスタ1からの第1命
令が実行ユニット4Aへディスパッチされる。ところ
が、第1命令がインデックス番号を使用して、「+SE
LECTEDlNDEX」信号と第1命令のインデック
ス番号とが等しくない場合には、「+INH EX1」
信号により実行ユニット起動レジスタ3Aへのセットを
抑止する。
EX2 A」信号と「INH EX2 B」信号との
論理和により求められる。「+INH EX2」信号は
「+INH EX1 B」信号と同様に命令レジスタ9
Bからのディスパッチを抑止する制御信号である。「+
INH EX2 A」信号は第1エントリエリア71が
実行されるときに第2エントリエリア72からの実行ユ
ニット4Bへのディスパッチが可能かどうかが調べら
れ、ディスパッチできない場合には実行ユニット起動レ
ジスタ3Bへのセットを抑止する制御信号である。
EX3 A」信号と「+INHEX3 B」信号との
論理和により求められる。「+INH EX3 B」信
号は「+INH EX1」信号と同様に命令レジスタ9
Cからのディスパッチを抑止する制御信号である。「+
INH EX3 A」信号は第1エントリエリア71あ
るいは第2エントリエリア72が実行されるときに第3
エントリエリア73からの実行ユニット4Cへのディス
パッチが可能かどうかが調べられ、ディスパッチできな
い場合には実行ユニット起動レジスタ3Cへのセットを
抑止する制御信号である。
NDEX」信号は、選択されたインデックス番号が命令
レジスタ9Aのインデックス番号と等しい場合に“1”
となる信号である。「−SEL INDEX EQ E
2 INDEX」信号は、選択されたインデックス番号
が第2エントリエリア72のインデックス番号と等しい
場合に“1”となる信号である。
NDEX」信号は、選択されたインデックス番号が命令
レジスタ9Bのインデックス番号と等しい場合に“1”
となる信号である。「+SEL INDEX EQ I
3 INDEX」信号は、選択されたインデックス番号
が命令レジスタ9Cのインデックス番号と等しい場合に
“1”となる信号である。「−SEL INDEX E
Q E3 INDEX」信号は、選択されたインデック
ス番号が第3エントリエリア73のインデックス番号と
等しい場合に“1”となる信号である。
たように、OR回路831,833,835,836,
841および844,NOR回路832,834および
837,NAND回路838,840および843,A
ND回路839および842により構成される。
Y」信号と「+E3 READY」信号との論理和を求
め、その演算結果をNAND回路838に出力する。N
OR回路832は、「+I1 INDEX EQ 0」
信号と「+SEL INDEXEQ I1 INDE
X」信号との論理和を反転してその反転信号をNAND
回路838に出力する。
Y」信号と「+E3 READY」信号との論理和を求
め、その演算結果をNAND回路840に出力する。N
OR回路834は、「+I2 INDEX EQ 0」
信号と「+SEL INDEXEQ I2 INDE
X」信号との論理和を反転してその反転信号をNAND
回路840に出力する。
Y」信号と「+E2 READY」信号との論理和を求
め、その演算結果をNAND回路842に出力する。O
R回路836は、「+E1 READY」信号と「+E
2 READY」信号との論理和を求め、その演算結果
をNAND回路843に出力する。NOR回路837
は、「+I3 INDEX EQ 0」信号と「+SE
L INDEX EQ I3 INDEX」信号との論
理和を反転してその反転信号をNAND回路843に出
力する。
DY」信号の反転信号、OR回路831の出力信号、
「+I1 USE INDEX」信号およびNOR回路
832の出力信号の論理積に応じて「+INH EX
1」信号を実行ユニット起動レジスタ3Aへ送出する。
Y」信号、「+E2 READY」信号、「+E2 U
SE INDEX」信号および「−SEL INDEX
EQ E2 INDEX」信号の論理積に応じて「+
INH EX2 A」信号をOR回路841に出力す
る。
出力信号、「+E2 READY」信号の反転信号、
「+I2 USE IX」信号およびNOR回路834
の出力信号の論理積に応じて「+INH EX2 B」
信号をOR回路841に出力する。
力すなわち「+INH EX2 A」信号とNAND回
路840の出力すなわち「+INH EX2 B」信号
との論理和に応じて最終的に実行ユニット起動レジスタ
3Bのセットを抑止する制御信号すなわち「+INH
EX2」信号を発行する。
力信号、「+E3 READY」信号、「+E3 US
E INDEX」信号および「−SEL INDEX
EQE3 INDEX」信号の論理積に応じて「+IN
H EX3 A」信号をOR回路844に出力する。
出力信号、「+E3 READY」信号の反転信号、
「+I3 USE INDEX」信号およびNOR回路
837の出力信号の論理積に応じて「+INH EX3
B」信号をOR回路844に出力する。
力すなわち「+INH EX3 A」信号とNAND回
路843の出力すなわち「+INH EX3 B」信号
との論理和に応じて最終的に実行ユニット起動レジスタ
3Cのセットを抑止する制御信号すなわち「+INH
EX3」信号を発行する。
態2と相違する動作について説明する。図15は実施の
形態3によるデータの流れを説明する図である。図15
の例では、最初の命令解読サイクルでは、第1命令と第
2命令とがインデックス番号を使用し、かつ両命令のイ
ンデックス番号が異なる。このとき、第3命令はインデ
ックス番号を使用しない。
4Aで実行され、第3命令が実行ユニット4Cで実行さ
れ、第2命令がリザベーションステーション7の第2エ
ントリエリア72に格納される。同一サイクルで、後続
の命令列が解読サイクルに入る。ここで、第4命令はイ
ンデックス番号を使用し、そのインデックス番号は第2
エントリエリア72のインデックス番号と等しくなる。
第5命令は第2エントリエリア72が実行可能であるた
め、実行ユニット4Bに発行できなくなる。第3命令は
インデックス番号を使用して、そのインデックス番号は
第2エントリエリア72のインデックス番号と異なる。
4Aで実行され、第2エントリエリア72中の第2命令
が実行ユニット4Bで実行され、第5命令,第6命令が
それぞれ第2エントリエリア72,第3エントリエリア
73に格納される。
よれば、前述の実施の形態1および2と共通する効果の
他に、制御ユニット8において、外部のリザベーション
ステーション7で同時処理すべき複数の命令を解読した
結果と制御ユニット8内部でその複数の命令を解読した
結果とに応じて複数の実行ユニット4A,4B,4Cの
うちでディスパッチすべき実行ユニットを選択するとと
もに、解読結果および選択結果に基づいて複数の実行ユ
ニット4A,4B,4Cのいずれかのディスパッチを抑
止する。これにより、複数命令を同時解読および実行す
ることで命令処理を高速に実行することが可能、かつそ
の高速化をレジスタを読み出すデータパスの大幅な増設
なしに必要最小限のハードウェア量で実現すること可能
である。
つの命令を同時処理する場合を例に挙げていたが、この
発明は、これに限定されるものではなく、2つの命令、
もしくは4つ以上の命令を同時処理する場合にも適用可
能である。
説明したが、この発明の主旨の範囲内で種々の変形が可
能であり、これらをこの発明の範囲から排除するもので
はない。
よれば、制御ユニットにおいて、同時処理すべき複数の
命令を解読し、その解読結果によりオペランドのアドレ
ス生成に使用するレジスタを選択し、同時処理すべき複
数の命令について、選択したレジスタと互いに同一のレ
ジスタをオペランドのアドレス生成に用いる特定オペラ
ンド使用命令であるか否かを判定し、特定オペランド使
用命令であると判定した場合に、選択したレジスタ内容
をレジスタファイルの出力ポートから読み出してオペラ
ンドのアドレスを生成し、複数の命令実行手段が特定オ
ペランド使用命令をそれぞれ同時処理するようにしたの
で、オペランドのアドレス生成に使用するレジスタの内
容をレジスタファイルから読み出すデータパスが一つし
かない場合にも、特定オペランド使用命令については全
てオペランドアドレスを生成して同時実行することがで
き、同時処理すべき複数の命令の同時実行が抑止される
頻度を減らすことができるという効果を奏する。
を行う複数の命令が特定オペランド使用命令であるか否
かの判定結果を記憶し、記憶した判定結果に基づいて特
定オペランド使用命令をそれぞれ同時に処理するように
したので、特定オペランド使用命令だけを同時に処理す
るように制御することができるという効果を奏する。
ドのアドレス生成としてインデックスレジスタとベース
レジスタとディスプレースメントを使用し、同時処理を
行う複数の命令がそれぞれオペランドのアドレス生成に
用いるインデックスレジスタの中から、レジスタファイ
ルのポートからデータを出力するインデックスレジスタ
を選択し、同時処理を行う複数の命令のそれぞれについ
て、選択したインデックスレジスタと同一のインデック
スレジスタをオペランドのアドレス生成に用いる特定オ
ペランド使用命令であるか否かを判定するようにしたの
で、インデックスレジスタの内容をレジスタファイルか
ら読み出すデータパスが一つしかない場合にも、特定オ
ペランド使用命令については全てオペランドアドレスを
生成して同時実行することができ、同時処理すべき複数
の命令の同時実行が抑止される頻度を減らすことができ
るという効果を奏する。
命令がインデックスレジスタを使用しない命令の場合に
は、選択したインデックスレジスタに関わらず命令実行
手段が命令を実行するようにしたので、同時処理すべき
複数の命令の同時実行が抑止される頻度をさらに減らす
ことができるという効果を奏する。
を行う複数の命令のうち、選択したレジスタとは異なる
レジスタをオペランドのアドレス生成に用いるために実
行を抑止された命令をそれぞれの命令実行手段に対応さ
せて保持し、保持した命令を命令実行手段が優先的に実
行するようにしたので、同時処理すべき命令のうち実行
が抑止された命令の実行の遅れを最小限にすることがで
きるという効果を奏する。
構成を示すブロック図である。
を示す回路図である。
の構成を示す回路図である。
部の構成を示す回路図である。
へ割り当てられる条件を表形式で説明する図である。
へ割り当てられる条件を表形式で説明する図である。
構成を示すブロック図である。
一例を示す図である。
部の構成を示すブロック図である。
止部の構成を示すブロック図である。
図である。
の構成を示すブロック図である。
選択部の構成を示すブロック図である。
抑止部の構成を示すブロック図である。
図である。
模式図である。
ロック図である。
Claims (5)
- 【請求項1】 同時処理すべき複数の命令に従って動作
する複数の命令実行手段と、 前記複数の命令に従って前記各命令実行手段の動作を制
御する制御ユニットと、 複数の出力ポートを有し、該出力ポートを用いて前記制
御ユニットに指示されたレジスタの内容を出力するレジ
スタファイルと、 を有し、 前記制御ユニットは、 前記各命令実行手段に対する命令をデコードするデコー
ド手段と、 前記デコード手段のデコード結果によりオペランドのア
ドレス生成に使用するレジスタを選択するアドレス生成
レジスタ選択手段と、 前記同時処理すべき複数の命令が前記アドレス生成レジ
スタ選択手段により選択されたレジスタと互いに同一の
レジスタをオペランドのアドレス生成に用いる特定オペ
ランド使用命令であるか否かを判定する特定オペランド
使用命令判定手段とを備え、 前記特定オペランド使用命令判定手段により前記特定オ
ペランド使用命令であると判定された場合に、前記アド
レス生成レジスタ選択手段により前記レジスタファイル
の出力ポートからレジスタ内容を読み出してオペランド
のアドレスを生成し、前記複数の命令実行手段が前記特
定オペランド使用命令をそれぞれ同時処理することを特
徴とする情報処理装置。 - 【請求項2】 前記同時処理を行う複数の命令が前記特
定オペランド使用命令であるか否かを記憶する特定オペ
ランド使用命令情報記憶手段とをさらに備え、 前記特定オペランド使用命令判定手段は、前記特定オペ
ランド使用命令であるか否かの判定結果を前記特定オペ
ランド使用命令情報記憶手段に書き込み、 前記複数の命令実行手段は、前記特定オペランド使用命
令情報記憶手段により記憶された判定結果に基づいて前
記特定オペランド使用命令をそれぞれ同時に処理するこ
とを特徴とする請求項1に記載の情報処理装置。 - 【請求項3】 前記オペランドのアドレス生成としてイ
ンデックスレジスタとベースレジスタとディスプレース
メントを使用し、 前記アドレス生成レジスタ選択手段は、前記同時処理を
行う複数の命令がそれぞれオペランドのアドレス生成に
用いるインデックスレジスタの中から、前記レジスタフ
ァイルのポートからデータを出力するインデックスレジ
スタを選択し、 前記特定オペランド使用命令判定手段は、前記同時処理
を行う複数の命令のそれぞれが前記アドレス生成レジス
タ選択手段により選択されたインデックスレジスタと同
一のインデックスレジスタをオペランドのアドレス生成
に用いる特定オペランド使用命令であるか否かを判定す
ることを特徴とする請求項1または2に記載の情報処理
装置。 - 【請求項4】 前記複数の命令実行手段は、それぞれ実
行する命令がインデックスレジスタを使用しない命令の
場合には、前記アドレス生成レジスタ選択手段が選択す
るインデックスレジスタに関わらず該命令を実行するこ
とを特徴とする請求項3に記載の情報処理装置。 - 【請求項5】 前記同時処理を行う複数の命令のうち前
記アドレス生成ジスタ選択手段により選択されたレジス
タとは異なるレジスタをオペランドのアドレス生成に用
いる場合に、実行を抑止された命令をそれぞれの命令実
行手段に対応させて保持する命令保持手段をさらに備
え、 前記命令実行手段は、前記命令保持手段により保持され
た命令を優先的に実行することを特徴とする請求項1に
記載の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28708197A JP3534987B2 (ja) | 1997-10-20 | 1997-10-20 | 情報処理装置 |
US09/040,324 US6141746A (en) | 1997-10-20 | 1998-03-18 | Information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28708197A JP3534987B2 (ja) | 1997-10-20 | 1997-10-20 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11119998A JPH11119998A (ja) | 1999-04-30 |
JP3534987B2 true JP3534987B2 (ja) | 2004-06-07 |
Family
ID=17712815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28708197A Expired - Fee Related JP3534987B2 (ja) | 1997-10-20 | 1997-10-20 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6141746A (ja) |
JP (1) | JP3534987B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139898B1 (en) | 2000-11-03 | 2006-11-21 | Mips Technologies, Inc. | Fetch and dispatch disassociation apparatus for multistreaming processors |
US7035998B1 (en) * | 2000-11-03 | 2006-04-25 | Mips Technologies, Inc. | Clustering stream and/or instruction queues for multi-streaming processors |
JP3769249B2 (ja) | 2002-06-27 | 2006-04-19 | 富士通株式会社 | 命令処理装置および命令処理方法 |
JP3816844B2 (ja) | 2002-07-05 | 2006-08-30 | 富士通株式会社 | プロセッサ及び命令制御方法 |
US20060229638A1 (en) * | 2005-03-29 | 2006-10-12 | Abrams Robert M | Articulating retrieval device |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61283930A (ja) * | 1985-06-10 | 1986-12-13 | Nec Corp | 情報処理装置 |
JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
JP2553728B2 (ja) * | 1990-02-23 | 1996-11-13 | 松下電器産業株式会社 | 演算装置 |
JP2878792B2 (ja) * | 1990-06-22 | 1999-04-05 | 株式会社東芝 | 電子計算機 |
US5630157A (en) * | 1991-06-13 | 1997-05-13 | International Business Machines Corporation | Computer organization for multiple and out-of-order execution of condition code testing and setting instructions |
JP2928684B2 (ja) * | 1991-10-31 | 1999-08-03 | 株式会社東芝 | Vliw型演算処理装置 |
US5689674A (en) * | 1995-10-31 | 1997-11-18 | Intel Corporation | Method and apparatus for binding instructions to dispatch ports of a reservation station |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
-
1997
- 1997-10-20 JP JP28708197A patent/JP3534987B2/ja not_active Expired - Fee Related
-
1998
- 1998-03-18 US US09/040,324 patent/US6141746A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11119998A (ja) | 1999-04-30 |
US6141746A (en) | 2000-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
EP1157329B1 (en) | Methods and apparatus for branch prediction using hybrid history with index sharing | |
US6889318B1 (en) | Instruction fusion for digital signal processor | |
US20020169942A1 (en) | VLIW processor | |
JPH07281896A (ja) | 情報処理装置 | |
EP1050810A1 (en) | A computer system comprising multiple functional units | |
US5938759A (en) | Processor instruction control mechanism capable of decoding register instructions and immediate instructions with simple configuration | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
US5367648A (en) | General purpose memory access scheme using register-indirect mode | |
JP3534987B2 (ja) | 情報処理装置 | |
JPH0743648B2 (ja) | 情報処理装置 | |
US20020116599A1 (en) | Data processing apparatus | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
JP3182591B2 (ja) | マイクロプロセッサ | |
US6789185B1 (en) | Instruction control apparatus and method using micro program | |
US20030061468A1 (en) | Forwarding the results of operations to dependent instructions quickly | |
EP0573071A2 (en) | A microprocessor | |
KR100278136B1 (ko) | 데이타처리장치 및 데이타처리방법 | |
EP1050800A1 (en) | A pipelined execution unit | |
JP2944563B2 (ja) | パイプライン型情報処理装置 | |
JPS61288230A (ja) | パイプライン制御方式 | |
US20050033939A1 (en) | Address generation | |
JP2002132500A (ja) | アドレス生成インターロック検出方法およびシステム | |
EP0862112A2 (en) | Data processing system having an instruction pipeline | |
CN113703841A (zh) | 一种寄存器数据读取的优化方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031216 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040213 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040309 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040310 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080319 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090319 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100319 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100319 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110319 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110319 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120319 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |