JPH03163627A - 命令処理装置 - Google Patents
命令処理装置Info
- Publication number
- JPH03163627A JPH03163627A JP9450790A JP9450790A JPH03163627A JP H03163627 A JPH03163627 A JP H03163627A JP 9450790 A JP9450790 A JP 9450790A JP 9450790 A JP9450790 A JP 9450790A JP H03163627 A JPH03163627 A JP H03163627A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- operand
- branch
- instructions
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 19
- 238000000034 method Methods 0.000 description 16
- 230000003111 delayed effect Effects 0.000 description 9
- GVBNSPFBYXGREE-UHFFFAOYSA-N Visnadine Natural products C1=CC(=O)OC2=C1C=CC1=C2C(OC(C)=O)C(OC(=O)C(C)CC)C(C)(C)O1 GVBNSPFBYXGREE-UHFFFAOYSA-N 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 241001227713 Chiron Species 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 206010016531 fetishism Diseases 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
第工および第2の発明は、情報処理装置の命令処理装置
に関し、特に、第lの発明は、バイブライン命令処理機
構を備え単一マシンサイクルで命令を実行するRISC
型マイクロプロセッサに関し、第2の発明は複数命令を
並列して実行する並列命令処理装置、およびバイブライ
ン機構を利用し高速処理を実現するパイルライン命令処
理装置に関する。
に関し、特に、第lの発明は、バイブライン命令処理機
構を備え単一マシンサイクルで命令を実行するRISC
型マイクロプロセッサに関し、第2の発明は複数命令を
並列して実行する並列命令処理装置、およびバイブライ
ン機構を利用し高速処理を実現するパイルライン命令処
理装置に関する。
(1)第1の発明における従来の技術では、計算機シス
テムの高性能化に伴い、様々なパイプライン構成の計算
機が開発されているが、マシンサイクルの高速化のため
に、オペランドの読み出しとオペランドの書き込みをそ
れぞれひとつのパイルライン●ステージに位置付けたパ
イプライン方式が使用されることが多い。この種のパイ
プライン方式では、第3図(a)の従来の命令処理装置
のパイプラインのタイミングチャートに示すよろに、 ◆メモリからの命令フェッチ(IFステージと略す)、 ●汎用レジスタ●ファイルからのオペランド●フェッチ
(OFステージと略す)、 ●命令の実行(EXステージと略す)、●汎用レジスタ
●ファイルへのオペランド●ライト(OWステージと略
す) の4つのステージからパイプラインを構成する。
テムの高性能化に伴い、様々なパイプライン構成の計算
機が開発されているが、マシンサイクルの高速化のため
に、オペランドの読み出しとオペランドの書き込みをそ
れぞれひとつのパイルライン●ステージに位置付けたパ
イプライン方式が使用されることが多い。この種のパイ
プライン方式では、第3図(a)の従来の命令処理装置
のパイプラインのタイミングチャートに示すよろに、 ◆メモリからの命令フェッチ(IFステージと略す)、 ●汎用レジスタ●ファイルからのオペランド●フェッチ
(OFステージと略す)、 ●命令の実行(EXステージと略す)、●汎用レジスタ
●ファイルへのオペランド●ライト(OWステージと略
す) の4つのステージからパイプラインを構成する。
パイプラインの各ステージの処理はエマシンサイクルで
実行できるため、1マシンサイクル毎に命令が実行でき
る。また、各処理が細分化されているため、マシンサイ
クル自体も高速化できる。このため高性能な命令処理装
置が提供できる。
実行できるため、1マシンサイクル毎に命令が実行でき
る。また、各処理が細分化されているため、マシンサイ
クル自体も高速化できる。このため高性能な命令処理装
置が提供できる。
(2)また、第2の発明における従来の技術では、以下
のような技術がある。
のような技術がある。
(a)VLIW型並列計算機
V L I W (Very Long Instru
ction Word)方式は、第8図に示すように、
比較的長い命令を多数のフィールドに分散し、各々のフ
ィールドで多数の演算器、レジスタ、相互結合網、メモ
リ等を独立して制御することにより並列処理を実現する
ものである。
ction Word)方式は、第8図に示すように、
比較的長い命令を多数のフィールドに分散し、各々のフ
ィールドで多数の演算器、レジスタ、相互結合網、メモ
リ等を独立して制御することにより並列処理を実現する
ものである。
VLIW方式では、演算の並列性はコンパイル時に抽出
され、コンパイラが並列演算可能なものをlつの命令に
合成する。並列演算器の数に近い並列度が得られる場合
に、高速処理が達成できる。
され、コンパイラが並列演算可能なものをlつの命令に
合成する。並列演算器の数に近い並列度が得られる場合
に、高速処理が達成できる。
しかし、並列度の低い場合には、命令フィールドに空き
ができて命令のビット使用効率が低下する。
ができて命令のビット使用効率が低下する。
どの程度命令フィールドを埋めることができるかはコン
パイラの能力およびソース●プログラムに依存する。
パイラの能力およびソース●プログラムに依存する。
VLIW方式では、プログラムの並列性の抽出をコンパ
イル時に実行するため、データの依存関係の検出等の複
雑な処理を行なう必要がない。したがって、ハードウェ
ア構成が簡単にできる。
イル時に実行するため、データの依存関係の検出等の複
雑な処理を行なう必要がない。したがって、ハードウェ
ア構成が簡単にできる。
VLIM方式は、水平型マイクロ命令方式から派生した
考え方に基づいており、機能レベルの低い演算器による
きめ細かな並列処理(低レベル並列処理)に適している
。
考え方に基づいており、機能レベルの低い演算器による
きめ細かな並列処理(低レベル並列処理)に適している
。
(b)命令パイプライン処理
計算機システムにおける機械命令の実行過程は、命令フ
ェッチ(読み出し二〇Fと略す)、命令デコード(解読
:IDと略す)、オペランド●アドレス生成(OAと略
す)、オペランド●フェッチ(ODと略す)、演算実行
(EXと略す)、結果の書き戻し(WBと略す)を逐次
的に進めることによってなされる。命令パイプライン方
式は、この命令実行の各ステージがオーバラツプして実
行される。各実行ステージの実行時間が同一でそれがマ
シン・サイクルに等しいとき、命令パイプライン方式は
最大の性能を発揮し、演算結果は1マシン・サイクル毎
に得られることになる。
ェッチ(読み出し二〇Fと略す)、命令デコード(解読
:IDと略す)、オペランド●アドレス生成(OAと略
す)、オペランド●フェッチ(ODと略す)、演算実行
(EXと略す)、結果の書き戻し(WBと略す)を逐次
的に進めることによってなされる。命令パイプライン方
式は、この命令実行の各ステージがオーバラツプして実
行される。各実行ステージの実行時間が同一でそれがマ
シン・サイクルに等しいとき、命令パイプライン方式は
最大の性能を発揮し、演算結果は1マシン・サイクル毎
に得られることになる。
命令パイプラインの流れを乱す要因としては、●先行命
令の演算結果を後続命令が必要とする場合 ●先行命令が後続命令のオペランド●アドレスを決定す
る場合 ●分岐が起こる場合 ●メモリ●アクセスの競合 ●先行命令が後続命令の内容を書き換える場合●割り込
み/例外が発生した場合 ●命令が複雑で演算実行に複数マシン・サイクル必要と
する場合 などがある。
令の演算結果を後続命令が必要とする場合 ●先行命令が後続命令のオペランド●アドレスを決定す
る場合 ●分岐が起こる場合 ●メモリ●アクセスの競合 ●先行命令が後続命令の内容を書き換える場合●割り込
み/例外が発生した場合 ●命令が複雑で演算実行に複数マシン・サイクル必要と
する場合 などがある。
これらの命令パイプラインを乱す要因を最小限に抑える
ために種々の工夫がなされている。例えば、条件分岐に
よりパイプラインの乱れを抑える工夫として、プログラ
ム●ループが格納できるような大きな命令バッファを使
用するループ●バッファ方式、条件成立および条件不成
立両方の場合の命令系列を処理する複数命令流方式、分
岐命令・の履歴情報から分岐を予測する分岐予測方式な
どが知られている。
ために種々の工夫がなされている。例えば、条件分岐に
よりパイプラインの乱れを抑える工夫として、プログラ
ム●ループが格納できるような大きな命令バッファを使
用するループ●バッファ方式、条件成立および条件不成
立両方の場合の命令系列を処理する複数命令流方式、分
岐命令・の履歴情報から分岐を予測する分岐予測方式な
どが知られている。
最近の高性能マイクロプロセッサの分野では、機械命令
セットを簡素化し高速処理を達成しようというR I
S C (Reduced Instruct1on
Set Com−putor )のアプローチが注目さ
れている。
セットを簡素化し高速処理を達成しようというR I
S C (Reduced Instruct1on
Set Com−putor )のアプローチが注目さ
れている。
RISCのアプローチは、高級言語プログラムのトレー
ス結果の解析と、スパーコンピュータCray−1のハ
ード●ワイヤード論理の成功から生まれたもので、 ●レジスターレジスタ間演算を基本とする簡素な命令セ
ット ●パイプラインの重視 ●1マシン・サイクル実行 ●最新コンパイラ技術の適用 などを特徴とする レジスターレジスタ演算を基本とする命令セットは、オ
ペランド●アドレス生成(OA)を不要にした。また、
シンプルな命令セットは命令デコードを簡単にし、命令
デコード(ID)をオペランド●フェッチ(OF)ステ
ージに含めることが可能となった。さらに、各ステージ
における処理のバランスを考慮され、第10図に示すよ
うに、●命令フェッタ&オペランド●フェッチ(IF/
OF) ●命令実行(EX) ●オペランド●ライト(OW) の3ステージで構戚される命令パイプラインが開発され
ている。
ス結果の解析と、スパーコンピュータCray−1のハ
ード●ワイヤード論理の成功から生まれたもので、 ●レジスターレジスタ間演算を基本とする簡素な命令セ
ット ●パイプラインの重視 ●1マシン・サイクル実行 ●最新コンパイラ技術の適用 などを特徴とする レジスターレジスタ演算を基本とする命令セットは、オ
ペランド●アドレス生成(OA)を不要にした。また、
シンプルな命令セットは命令デコードを簡単にし、命令
デコード(ID)をオペランド●フェッチ(OF)ステ
ージに含めることが可能となった。さらに、各ステージ
における処理のバランスを考慮され、第10図に示すよ
うに、●命令フェッタ&オペランド●フェッチ(IF/
OF) ●命令実行(EX) ●オペランド●ライト(OW) の3ステージで構戚される命令パイプラインが開発され
ている。
この命令パイプラインでは、命令1が分岐命令の場合、
その実行ステージ(EX)が終了して初めて、命令2の
フェッチが可能となる。したがって、命令1の実行中に
フェッチした命令は無効化する必要があり、命令パイプ
ラインに1マシン・サイクルの空きが生じ性能が低下す
る。
その実行ステージ(EX)が終了して初めて、命令2の
フェッチが可能となる。したがって、命令1の実行中に
フェッチした命令は無効化する必要があり、命令パイプ
ラインに1マシン・サイクルの空きが生じ性能が低下す
る。
この性能の低下を最小限に抑えるために、遅延分岐機構
が利用されている。これは、第11図に示すように分岐
命令はその発行から1マシン・サイクル遅れて実行され
る遅延型命令であるとみなし、コンパイラによる命令ス
ケジューリングにより分岐命令直後の命令スロットを有
効な命令で埋めることにより、パイプラインの乱れを無
くし性能を維持しようとするものである。分岐命令直後
の命令スロットに有効な命令を埋め込むことができなか
った場合には、その命令スロットにはNoP命令を埋め
込む必要がある。この場合にはもちろん性能の低下があ
る。
が利用されている。これは、第11図に示すように分岐
命令はその発行から1マシン・サイクル遅れて実行され
る遅延型命令であるとみなし、コンパイラによる命令ス
ケジューリングにより分岐命令直後の命令スロットを有
効な命令で埋めることにより、パイプラインの乱れを無
くし性能を維持しようとするものである。分岐命令直後
の命令スロットに有効な命令を埋め込むことができなか
った場合には、その命令スロットにはNoP命令を埋め
込む必要がある。この場合にはもちろん性能の低下があ
る。
どの程度の遅延命令スロットを有効な命令で埋めること
ができるかは、コンパイラの性能に依存する。現在、最
新のコンパイラ技術を用いた場合、遅延命令スロットの
約80〜90パーセントを有効に利用することが可能と
なっている。
ができるかは、コンパイラの性能に依存する。現在、最
新のコンパイラ技術を用いた場合、遅延命令スロットの
約80〜90パーセントを有効に利用することが可能と
なっている。
(1)第1の発明に対する前述のバイブライン構成を採
用した従来の命令処理装置では、第3図(b)に示すよ
うに、命令1が分岐命令の場合には、後続の命令である
命令2の最初のステージ(IFステージ)は、分岐命令
のEXステージが終了するマシン・サイクルt4まで待
たされる。これは、分岐命令における分岐の成立/不成
立および分岐先アドレスの計算がEXステージで実行さ
れるためである。
用した従来の命令処理装置では、第3図(b)に示すよ
うに、命令1が分岐命令の場合には、後続の命令である
命令2の最初のステージ(IFステージ)は、分岐命令
のEXステージが終了するマシン・サイクルt4まで待
たされる。これは、分岐命令における分岐の成立/不成
立および分岐先アドレスの計算がEXステージで実行さ
れるためである。
従って、従来の命令処理装置では、分岐命令が実行され
る度に命令の実行パイプラインに空きが生じることにな
る。すなわち、分岐命令と後続の命令は並列して実行さ
れないため最大限の実行速度が得られないという欠点を
有する。
る度に命令の実行パイプラインに空きが生じることにな
る。すなわち、分岐命令と後続の命令は並列して実行さ
れないため最大限の実行速度が得られないという欠点を
有する。
(2)第2の発明に対する前述のVLIW方式と命令パ
イプライン方式を組み合わせ並列パイプライン命令処理
装置を構成しようとした場合を考える。例えば、命令パ
イプライン方式の命令処理装置を4つ並列に並べ、4つ
のフィールドを持つVLIW型の命令を実行する並列パ
イプライン命令処理装置を考えてみよう。
イプライン方式を組み合わせ並列パイプライン命令処理
装置を構成しようとした場合を考える。例えば、命令パ
イプライン方式の命令処理装置を4つ並列に並べ、4つ
のフィールドを持つVLIW型の命令を実行する並列パ
イプライン命令処理装置を考えてみよう。
この並列パイプライン命令処理装置の命令パイプライン
は、上述したRI SCマイクロプロセッサの命令パイ
プラインと同じ1マシン・サイクルの分岐遅延を持って
いるとする。すると、この並列パイプライン命令処理装
置はlスロットの遅延命令スロットを持つことになるが
、1命令が4つの命令フィールドから構成されているた
め、実効的に4命令分の遅延命令スロットが生じること
になる。さらに、分岐命令を含む命令自身が持つ3つの
命令フィールドも、命令の依存関係を考慮すると遅延命
令スロットと同じ扱いをする必要がある。したがって、
この4並列パイプライン命令処理装置は、7個の遅延命
令スロットを持つ直列ノfイプライン命令処理装置と等
価であると考えることができる。
は、上述したRI SCマイクロプロセッサの命令パイ
プラインと同じ1マシン・サイクルの分岐遅延を持って
いるとする。すると、この並列パイプライン命令処理装
置はlスロットの遅延命令スロットを持つことになるが
、1命令が4つの命令フィールドから構成されているた
め、実効的に4命令分の遅延命令スロットが生じること
になる。さらに、分岐命令を含む命令自身が持つ3つの
命令フィールドも、命令の依存関係を考慮すると遅延命
令スロットと同じ扱いをする必要がある。したがって、
この4並列パイプライン命令処理装置は、7個の遅延命
令スロットを持つ直列ノfイプライン命令処理装置と等
価であると考えることができる。
このような数多くの空き命令スロットに有効な命令を埋
め込んで活用する命令スケジ. IJ冫グはきわめて
難しく、ほとんどの部分にNOP命令を埋め込まなけれ
ばならなくなる。先にも述べたように1つの空き命令ス
ロットの利用率でさえ80〜90パーセントであり、7
個の空き命令スロットを有効利用することは至難の技で
ある。従って、分岐遅延が1マシン・サイクルある従来
のノくイブライン構成をとった並列パイプライン,命令
処理装置では、分岐命令の実行によりその処理性能が著
しく低下するという欠点がある。
め込んで活用する命令スケジ. IJ冫グはきわめて
難しく、ほとんどの部分にNOP命令を埋め込まなけれ
ばならなくなる。先にも述べたように1つの空き命令ス
ロットの利用率でさえ80〜90パーセントであり、7
個の空き命令スロットを有効利用することは至難の技で
ある。従って、分岐遅延が1マシン・サイクルある従来
のノくイブライン構成をとった並列パイプライン,命令
処理装置では、分岐命令の実行によりその処理性能が著
しく低下するという欠点がある。
第1の発明の命令処理装置の構成は、単一マシン・サイ
クルで実行できる命令セットを有し、該命令を記憶する
第一の記憶手段と、オペランドを記憶する第二の記憶手
段と、前記第一の記憶手段から前記命令を読み出すため
の命令読み出し手段と、読み出された該命令を実行する
のに必要なオペランドを前記第二の記憶手段から読み出
すオペランド読み出し手段と、読み出された該オペラン
ドを使用して命令を実行する命令実行手段と、命令実行
の結果得られた該オペランドを前記第二の記憶手段に書
き込むオペランド書き込み手段とを有し、前記命令の読
み出し、前記オペランドの読み出し、前記命令の実行、
前記オペランドの書き込みからなるパイプライン命令処
理機構を備えた計算機システムにおいて、分岐先のアド
レスを生成する分岐アドレス生成手段をさらに備え、前
記第一の記憶手段から前記命令読み出し手段によって読
み出された命令が分岐命令であった場合には、前記オペ
ランドの読み出しのマシン・サイクルにおいて前記分岐
アドレス生成手段における分岐アドレスの生成を同時に
おこなうことによって分岐命令実行時のパイプラインの
乱れをな<シ、パイプライン動作を高速化することを特
徴とする。
クルで実行できる命令セットを有し、該命令を記憶する
第一の記憶手段と、オペランドを記憶する第二の記憶手
段と、前記第一の記憶手段から前記命令を読み出すため
の命令読み出し手段と、読み出された該命令を実行する
のに必要なオペランドを前記第二の記憶手段から読み出
すオペランド読み出し手段と、読み出された該オペラン
ドを使用して命令を実行する命令実行手段と、命令実行
の結果得られた該オペランドを前記第二の記憶手段に書
き込むオペランド書き込み手段とを有し、前記命令の読
み出し、前記オペランドの読み出し、前記命令の実行、
前記オペランドの書き込みからなるパイプライン命令処
理機構を備えた計算機システムにおいて、分岐先のアド
レスを生成する分岐アドレス生成手段をさらに備え、前
記第一の記憶手段から前記命令読み出し手段によって読
み出された命令が分岐命令であった場合には、前記オペ
ランドの読み出しのマシン・サイクルにおいて前記分岐
アドレス生成手段における分岐アドレスの生成を同時に
おこなうことによって分岐命令実行時のパイプラインの
乱れをな<シ、パイプライン動作を高速化することを特
徴とする。
また、第2の発明の構成は、n個(nはn≧2の自然数
)の命令の並列の並びからなる命令列を有し、該命令列
を記憶する第一の記憶手段と、該第一の記憶手段から前
記命令列を読み出すための命令列読み出し手段と、読み
出した前記命令列中のn個の前記命令に対応し、前記命
令が指定する命令を処理するn個の命令処理手段と、n
個の該命令処理手段が使用するオペランドを記憶し、n
個の前記命令処理手段から独立してリード/ライト可能
な第二の記憶手段とを備え、n個の命令を並列に処理す
る命令処理装置において、前記命令処理手段中のn−1
個の命令処理手段は、前記命令が指定する命令の実行に
必要なオペランドを前記第二の記憶手段から読み出すオ
ペランド読み出し手段と、読み出した該オペランドを使
用して命令を実行する命令実行手段と、命令実行の結果
得られた該オペランドを前記第二の記憶手段に書き戻す
オペランド書き込み手段とを備え、前記命令列の読み出
しおよび前記オペランドの読み出しを実行する第一のス
テージ,前記命令の処理を実行する第二のステージ,前
記オペランドの書き込みを実行する第三のステージで構
成されるパイプライン命令処理機構により分岐命令以外
の命令を実行し、一方、前記命令処理手段中の残る1個
の命令処理手段は、前記命令が指定する条件分岐命令の
実行に必要なオペランドを前記第二の記憶手段から読み
出すオペランド読み出し手段と、次に実行する命令列の
アドレスを生成するアドレス生成手段とを備え、前記オ
ペランドの読み出しおよび前記アドレスの生成を並列に
実行し、前記命令列の読み出し,前記オペランドの読み
出しおよび前記アドレスの生成を単一マシン・サイクル
で実行する分岐制御機構により分岐命令を実行し、分岐
遅延による空き命令スロットの増加を抑えたことを特徴
とする。
)の命令の並列の並びからなる命令列を有し、該命令列
を記憶する第一の記憶手段と、該第一の記憶手段から前
記命令列を読み出すための命令列読み出し手段と、読み
出した前記命令列中のn個の前記命令に対応し、前記命
令が指定する命令を処理するn個の命令処理手段と、n
個の該命令処理手段が使用するオペランドを記憶し、n
個の前記命令処理手段から独立してリード/ライト可能
な第二の記憶手段とを備え、n個の命令を並列に処理す
る命令処理装置において、前記命令処理手段中のn−1
個の命令処理手段は、前記命令が指定する命令の実行に
必要なオペランドを前記第二の記憶手段から読み出すオ
ペランド読み出し手段と、読み出した該オペランドを使
用して命令を実行する命令実行手段と、命令実行の結果
得られた該オペランドを前記第二の記憶手段に書き戻す
オペランド書き込み手段とを備え、前記命令列の読み出
しおよび前記オペランドの読み出しを実行する第一のス
テージ,前記命令の処理を実行する第二のステージ,前
記オペランドの書き込みを実行する第三のステージで構
成されるパイプライン命令処理機構により分岐命令以外
の命令を実行し、一方、前記命令処理手段中の残る1個
の命令処理手段は、前記命令が指定する条件分岐命令の
実行に必要なオペランドを前記第二の記憶手段から読み
出すオペランド読み出し手段と、次に実行する命令列の
アドレスを生成するアドレス生成手段とを備え、前記オ
ペランドの読み出しおよび前記アドレスの生成を並列に
実行し、前記命令列の読み出し,前記オペランドの読み
出しおよび前記アドレスの生成を単一マシン・サイクル
で実行する分岐制御機構により分岐命令を実行し、分岐
遅延による空き命令スロットの増加を抑えたことを特徴
とする。
次に、本発明について図面を参照して説明する。
第1図は第1の発明の一実施例の構成を示すブロック図
、第2図は第1図の実行タイミングチャートである。
、第2図は第1図の実行タイミングチャートである。
第1図において、11は命令フェッチ手段、12はオペ
ランド●フェッチ手段、13は命令実行手段、14はオ
ペランド●ライト手段、15は命令メモリ、18は読み
出しポートを2つと書き込みボートを1つ備えた汎用レ
ジスタ●ファイル、17は命令をフェッチするアドレス
を1ずつインクリメントするインクリメンタ、18はマ
ノレチプレクサ、19は命令フェッチ手段11によって
フェッチした命令が分岐命令である場合に分岐先アドレ
スを計算する分岐アドレス生成手段、101,102,
105,109,110はフェッチした命令を転送する
命令バス、103,104,113はフェッチしたオペ
ランドを転送するソース●オペランド●バス、108は
命令実行結果を転送するデスティネーシロン◆オペラン
ド●バス、107,108,111,112は命令アド
レス●パス、114,116はレジスタ●アドレス●バ
ス、115はオペランド●フェッチに使用するレジスタ
●リード●バス、117はオペランドのフェッチおよび
ライトに時分割して使用するレジスタ●リード/ライト
●バスである。
ランド●フェッチ手段、13は命令実行手段、14はオ
ペランド●ライト手段、15は命令メモリ、18は読み
出しポートを2つと書き込みボートを1つ備えた汎用レ
ジスタ●ファイル、17は命令をフェッチするアドレス
を1ずつインクリメントするインクリメンタ、18はマ
ノレチプレクサ、19は命令フェッチ手段11によって
フェッチした命令が分岐命令である場合に分岐先アドレ
スを計算する分岐アドレス生成手段、101,102,
105,109,110はフェッチした命令を転送する
命令バス、103,104,113はフェッチしたオペ
ランドを転送するソース●オペランド●バス、108は
命令実行結果を転送するデスティネーシロン◆オペラン
ド●バス、107,108,111,112は命令アド
レス●パス、114,116はレジスタ●アドレス●バ
ス、115はオペランド●フェッチに使用するレジスタ
●リード●バス、117はオペランドのフェッチおよび
ライトに時分割して使用するレジスタ●リード/ライト
●バスである。
第2図において、工Fは命令フェッチ●サイクル、OF
/BAはオペランド●フェッチ/分岐アドレス生成サイ
クル、EXは命令実行サイクル、OWはオペランド●ラ
イト●サイクルである。
/BAはオペランド●フェッチ/分岐アドレス生成サイ
クル、EXは命令実行サイクル、OWはオペランド●ラ
イト●サイクルである。
第1図および第2図を用いて本実施例における命令処理
の流れを説明する。ここでは、第2図における命令1の
流れを説明する。
の流れを説明する。ここでは、第2図における命令1の
流れを説明する。
命令フェッチ手段l1は、マシン・サイクルt1の前半
の半サイクルで、命令アドレスを命令アドレス●バス1
08を介してマルチプレクサに出力し、マルチプレクサ
が命令アドレス●バス107を介して送出した命令アド
レスによって、命令メモリ15から読み出された命令を
命令バス109を経由してフェッチする。ここで、マル
チプレクサ18が送出する命令アドレスとはー、命令バ
ス108および111から得られる2つの命令アドレス
のうち、ソース●オベランド●バス113の内容によっ
て選択されたどちらか一方の命令アドレスである。
の半サイクルで、命令アドレスを命令アドレス●バス1
08を介してマルチプレクサに出力し、マルチプレクサ
が命令アドレス●バス107を介して送出した命令アド
レスによって、命令メモリ15から読み出された命令を
命令バス109を経由してフェッチする。ここで、マル
チプレクサ18が送出する命令アドレスとはー、命令バ
ス108および111から得られる2つの命令アドレス
のうち、ソース●オベランド●バス113の内容によっ
て選択されたどちらか一方の命令アドレスである。
フェッチした命令は、次のマシン・サイクルt2が開始
するタイミングで、命令バス101を介してオペランド
●フェッチ手段12に転送されるとともに、命令が分岐
命令の場合には、マシン・サイクルt1の後半の半サイ
クルが開始するタイミングで、命令バス110を介して
分岐アドレス生成手段19に転送される。また、インク
リメンタ17は、命令アドレス●バス107の命令アド
レスを1だげ加算した値を、命令アドレス●バス112
を介して命令フェッチ手段l1に送出する。
するタイミングで、命令バス101を介してオペランド
●フェッチ手段12に転送されるとともに、命令が分岐
命令の場合には、マシン・サイクルt1の後半の半サイ
クルが開始するタイミングで、命令バス110を介して
分岐アドレス生成手段19に転送される。また、インク
リメンタ17は、命令アドレス●バス107の命令アド
レスを1だげ加算した値を、命令アドレス●バス112
を介して命令フェッチ手段l1に送出する。
オペランド●フェッチ手段12は、マシン・サイクルt
1の後半の半サイクルで、命令パス101を介して転送
された命令に基づいて、オペランドをフェッチするレジ
スタのアドレスを、レジスタ●アドレス●バス114お
よび116に送出し、汎用レジスタ●ファイルl6から
レジスタ◆りード●バス115およびレジスタ●リード
/ライトバス117の2つのバスを介してオペランドを
フェッチする。
1の後半の半サイクルで、命令パス101を介して転送
された命令に基づいて、オペランドをフェッチするレジ
スタのアドレスを、レジスタ●アドレス●バス114お
よび116に送出し、汎用レジスタ●ファイルl6から
レジスタ◆りード●バス115およびレジスタ●リード
/ライトバス117の2つのバスを介してオペランドを
フェッチする。
オペランドのフェッチが完了すると、命令は命令パス1
02を介して、フェッチした2つのオペランドはソース
●オペランド●バス103および104を介して、次の
マシン・サイクルt2が開始するタイミングで命令実行
手段13に転送される。また、命令が分岐命令の場合に
は、分岐の成立/不成立を決定するオペランド情報がソ
ース●オベランド●バス113を介してマルチプレクサ
18に転送される。
02を介して、フェッチした2つのオペランドはソース
●オペランド●バス103および104を介して、次の
マシン・サイクルt2が開始するタイミングで命令実行
手段13に転送される。また、命令が分岐命令の場合に
は、分岐の成立/不成立を決定するオペランド情報がソ
ース●オベランド●バス113を介してマルチプレクサ
18に転送される。
分岐アドレス生成ユニットl9は、マシン・サイクルt
1の後半の半サイクルで、命令バス110を介して転送
された命令に基づいて生成した分岐先アドレスをマルチ
プレクサ18に送出する。
1の後半の半サイクルで、命令バス110を介して転送
された命令に基づいて生成した分岐先アドレスをマルチ
プレクサ18に送出する。
命令実行手段13は、ソース●オペランド●バス103
および104を介して転送されたオペランドを使用し、
命令バス102を介して転送された命令を1マシン・サ
イクル(t2)で実行する。実行が完了した命令は、命
令バス105を介し、また命令実行の結果得られたデー
タは、デスティネーシ1ン●オペランド●バス106を
介して、次のマシン・サイクル●t3が開始するタイミ
ングでオペランド●ライト手段14に転送される。
および104を介して転送されたオペランドを使用し、
命令バス102を介して転送された命令を1マシン・サ
イクル(t2)で実行する。実行が完了した命令は、命
令バス105を介し、また命令実行の結果得られたデー
タは、デスティネーシ1ン●オペランド●バス106を
介して、次のマシン・サイクル●t3が開始するタイミ
ングでオペランド●ライト手段14に転送される。
オペランド●ライト手段14は、マシン・サイクルt3
の前半の半サイクルで、命令バス105を介して転送さ
れた命令に基づいて、オペランドを書き込むレジスタの
アドレスをレジスタ●アドレス●バスエエ6に送出し、
またデスティネーシロン●オペランド●バス106を介
して転送されたオペランドを、レジスタ●リード/ライ
ト●バス117を介して送出し、汎用レジスタ●ファイ
ル16に書き込む。なお、前述のレジスタ書き込みは、
マシン・サイクルt3の前半の半サイクル間で行なわれ
、オペランド●ライト手段14はマシン・サイクルt3
の後半の半サイクルはアイドル状態となる。
の前半の半サイクルで、命令バス105を介して転送さ
れた命令に基づいて、オペランドを書き込むレジスタの
アドレスをレジスタ●アドレス●バスエエ6に送出し、
またデスティネーシロン●オペランド●バス106を介
して転送されたオペランドを、レジスタ●リード/ライ
ト●バス117を介して送出し、汎用レジスタ●ファイ
ル16に書き込む。なお、前述のレジスタ書き込みは、
マシン・サイクルt3の前半の半サイクル間で行なわれ
、オペランド●ライト手段14はマシン・サイクルt3
の後半の半サイクルはアイドル状態となる。
個々の命令は以上述べたような動作で実行される。これ
らの動作は各マシン参サイクル毎に重ね合わされて命令
パイプラインを構成する。
らの動作は各マシン参サイクル毎に重ね合わされて命令
パイプラインを構成する。
さて、第3図(b)において、命令1が分岐命令の場合
には、分岐アドレス生成手段I9は、t1の後半の半サ
イクル(OF/BAステージ)で、命令バス110を介
して命令フェッチ手段11から転送された命令に基づい
て分岐先アドレスを生成し、t2が開始するタイミング
で、命令アドレス●バス111を介してマルチプレクサ
18に送出ナる。また、オペランド●フエツチ手段l2
は、成立/不成立を決定するオペランド情報をソース●
オベランド●バス113を介してマルチプレクサ18に
転送する。
には、分岐アドレス生成手段I9は、t1の後半の半サ
イクル(OF/BAステージ)で、命令バス110を介
して命令フェッチ手段11から転送された命令に基づい
て分岐先アドレスを生成し、t2が開始するタイミング
で、命令アドレス●バス111を介してマルチプレクサ
18に送出ナる。また、オペランド●フエツチ手段l2
は、成立/不成立を決定するオペランド情報をソース●
オベランド●バス113を介してマルチプレクサ18に
転送する。
分岐命令の後続の命令である命令2の最初のマシン・サ
イクル(t2)の前半の半サイクル(■Fステージ)で
は、マルチブレクサ18は、命令フェッチ手段11から
命令アドレス●バス108を介して転送された命令アド
レスと、分岐アドレス生成手段19から命令アドレス●
バス111を介して転送された命令アドレスのふたつの
命令アドレスから、オペランド●フェッチ手段12から
転送されたオペランド情報により適切なアドレスを選択
し、命令アドレス●バス107に送出する。
イクル(t2)の前半の半サイクル(■Fステージ)で
は、マルチブレクサ18は、命令フェッチ手段11から
命令アドレス●バス108を介して転送された命令アド
レスと、分岐アドレス生成手段19から命令アドレス●
バス111を介して転送された命令アドレスのふたつの
命令アドレスから、オペランド●フェッチ手段12から
転送されたオペランド情報により適切なアドレスを選択
し、命令アドレス●バス107に送出する。
命令フェッチ手段11は、マルチプレクサが命令アドレ
ス●バス107を介して送出した命令アドレスによって
命令メモリ15から読み出された命令を、命令バス10
9を経由してフェッチする。
ス●バス107を介して送出した命令アドレスによって
命令メモリ15から読み出された命令を、命令バス10
9を経由してフェッチする。
すなわち、命令2の命令フェッチ●サイクルはマシン・
サイクルt2で実行できる。
サイクルt2で実行できる。
従って、分岐命令と後続の命令の間でも、命令の実行パ
イプラインに空きが生じないため、並列に実行できる。
イプラインに空きが生じないため、並列に実行できる。
ところで、本実施例の命令パイプラインにおいては、第
2図に示すように、命令1のOWサイクルと命令3のO
F/BAサイクルは排反するタイミングで動作するため
、汎用レジスタ●ファイル16とオペランド●フェッチ
手段12およびオペランド●ライト手段14を接続する
バスは共有できる。
2図に示すように、命令1のOWサイクルと命令3のO
F/BAサイクルは排反するタイミングで動作するため
、汎用レジスタ●ファイル16とオペランド●フェッチ
手段12およびオペランド●ライト手段14を接続する
バスは共有できる。
なお、本発明は前述の実施例に制限されることなく他の
適切な構成によっても実現できることはいうまでもない
。
適切な構成によっても実現できることはいうまでもない
。
次に、第2の発明について図面を参照して説明する。
第4図は、n=4の場合の本発明の一実施例のブロック
図であり、4つの命令から構成されるVLIW型の並列
命令列により、4つの命令を並列に実行する並列パイプ
ライン命令処理装置の構成を示したものである。
図であり、4つの命令から構成されるVLIW型の並列
命令列により、4つの命令を並列に実行する並列パイプ
ライン命令処理装置の構成を示したものである。
第4図において、411は命令列メモリ、412は命令
列フェッチ手段、413は8つの読み出しポートと4つ
の書き込みボートを備えたデータ●レジスタ、414〜
417はオペランド●フェッチ手段、418は次にフェ
ッチする命令列のアドレスを生成するアドレス生成手段
、419〜421は命令実行手段、422〜425はオ
ペランド●ライト手段、4101は命令列をフェッチす
るための命令列パス、4102はアドレス●バス、41
03〜4106はフェッチした命令を転送する命令バス
、4107〜4110は命令の実行に必要なオペランド
のフェッチに使用する2本のレジスタ●リード●バス、
4111〜4114はフェッチしたオペランドを転送す
る2本のソース●オベランド●バス、4115〜411
8は命令実行結果を転送するデスティネーション●オペ
ランド●バス、4119〜4122はオペランドの書き
込みに使用するレジスタ●ライト●バスである。
列フェッチ手段、413は8つの読み出しポートと4つ
の書き込みボートを備えたデータ●レジスタ、414〜
417はオペランド●フェッチ手段、418は次にフェ
ッチする命令列のアドレスを生成するアドレス生成手段
、419〜421は命令実行手段、422〜425はオ
ペランド●ライト手段、4101は命令列をフェッチす
るための命令列パス、4102はアドレス●バス、41
03〜4106はフェッチした命令を転送する命令バス
、4107〜4110は命令の実行に必要なオペランド
のフェッチに使用する2本のレジスタ●リード●バス、
4111〜4114はフェッチしたオペランドを転送す
る2本のソース●オベランド●バス、4115〜411
8は命令実行結果を転送するデスティネーション●オペ
ランド●バス、4119〜4122はオペランドの書き
込みに使用するレジスタ●ライト●バスである。
第5図は、第4図の構成を持つ並列パイプライン命令処
理装置の命令フォーマットを示すものである。
理装置の命令フォーマットを示すものである。
第7図は、第2の発明のバイブラインの構造を示す図で
ある。図中の略号の意味は次のとおりである。
ある。図中の略号の意味は次のとおりである。
IF・・・命令列フェッチ
OF・・・オペランド●フェッチ
AG・・・アドレス生成
EX・・・命令実行
OW・・・ライト●バック
第8図は、条件分岐命令を含むプログラム●シ一ケンス
の例を示す図、第9図は、第2の発明における命令パイ
プラインの動作を示す図であり、第8図に示すプログラ
ム●シーケンスを実行する場合のパイプライン動作を示
している。
の例を示す図、第9図は、第2の発明における命令パイ
プラインの動作を示す図であり、第8図に示すプログラ
ム●シーケンスを実行する場合のパイプライン動作を示
している。
第9図において、
IFは命令列フェッチ、
OFはオペランド●フェッチ、
AGは分岐アドレス生成、
演算1〜6および演算10〜12はそれぞれの命令実行
、 WBはオペランドのライト●バック を表わす。
、 WBはオペランドのライト●バック を表わす。
はじめに、第4図および第5図を用いて命令列が実行さ
れる場合の動作を説明する。
れる場合の動作を説明する。
命令列フェッチ手段412は、アドレス●バス4102
で指定される命令列を、命令列メモリ411から命令列
バス4101を介してフェッチする。命令列フェッチ手
段412は、第5図に示した命令1,命令2.命令3お
よび分岐命令の各命令を、それぞれ4103,4104
,4105および4106の命令バスを介してオペラン
ド●フェッチ手段414〜417およびアドレス生成手
段418にそれぞれ転送する。
で指定される命令列を、命令列メモリ411から命令列
バス4101を介してフェッチする。命令列フェッチ手
段412は、第5図に示した命令1,命令2.命令3お
よび分岐命令の各命令を、それぞれ4103,4104
,4105および4106の命令バスを介してオペラン
ド●フェッチ手段414〜417およびアドレス生成手
段418にそれぞれ転送する。
ついで、オペランド●フェッチ手段414〜417は、
転送された各命令をデコードし、各命令で使用するオペ
ランドを各々レジスタ●リード●バス4107〜411
0を介してデータ●レジスタ413からフェッチする。
転送された各命令をデコードし、各命令で使用するオペ
ランドを各々レジスタ●リード●バス4107〜411
0を介してデータ●レジスタ413からフェッチする。
オペランド●フェッチ手段414〜416は、フェッチ
したオペランドをそれぞれソース●オベランド●バス4
112〜4114を介してそれぞれ命令実行手段419
〜421に転送する。一方、オペランド●フェッチ手段
417は、フェッチしたオペランドをソース●オペラン
ド●バス4111を介してアドレス生成手段418に転
送する。ここまでの動作はすべての命令処理に関して同
じである。
したオペランドをそれぞれソース●オベランド●バス4
112〜4114を介してそれぞれ命令実行手段419
〜421に転送する。一方、オペランド●フェッチ手段
417は、フェッチしたオペランドをソース●オペラン
ド●バス4111を介してアドレス生成手段418に転
送する。ここまでの動作はすべての命令処理に関して同
じである。
命令実行手段419〜421は、ソース●オペランド●
バス4112〜4114を介して転送されたオペランド
を使用して各命令をそれぞれ実行し、それぞれの実行結
果をデスティネーシロン●オペランド●バス4116〜
4118を介してオペランド●ライト手段423〜42
5へ転送する。
バス4112〜4114を介して転送されたオペランド
を使用して各命令をそれぞれ実行し、それぞれの実行結
果をデスティネーシロン●オペランド●バス4116〜
4118を介してオペランド●ライト手段423〜42
5へ転送する。
オペランド●ライト手段423〜425は、各結果オペ
ランドを各命令が指定するレジスタにレジスタ●ライト
●バス4119〜4121を介してそれぞれ書き戻す。
ランドを各命令が指定するレジスタにレジスタ●ライト
●バス4119〜4121を介してそれぞれ書き戻す。
一方、アドレス生成手段418は、内部に保持している
命令列アドレスをインクリメントし次アドレスを生成す
る。それと同時に、命令バス4106を介して与えられ
た分岐命令をデコードし、分岐先アドレスの生成を実行
する。そして、ソース●オベランド●バス4l11を介
して与えられたオペランドを参照して分岐条件の成立/
不成立を判定し、分岐が発生する場合には分岐先アドレ
スを、分岐が発生しない場合には次アドレスをアドレス
●バス4102に出力する。また、分岐命令が同時に次
アドレスをレジスタへ格納する動作を伴うもの、すなわ
ちブランチ●アンド●リンク命令の場合には、分岐先ア
ドレスがアドレス●バス4102に出力されるとともに
、次アドレスがデスティネーシロン●オベランド●バス
4115を介してオペランド●ライト手段22に転送さ
れる。ついで、オペランド●ライト手段422は次アド
レスをオペランドとしてレジスタ●ライト●バス412
2を介してデータ●レジスト13に書き戻す。
命令列アドレスをインクリメントし次アドレスを生成す
る。それと同時に、命令バス4106を介して与えられ
た分岐命令をデコードし、分岐先アドレスの生成を実行
する。そして、ソース●オベランド●バス4l11を介
して与えられたオペランドを参照して分岐条件の成立/
不成立を判定し、分岐が発生する場合には分岐先アドレ
スを、分岐が発生しない場合には次アドレスをアドレス
●バス4102に出力する。また、分岐命令が同時に次
アドレスをレジスタへ格納する動作を伴うもの、すなわ
ちブランチ●アンド●リンク命令の場合には、分岐先ア
ドレスがアドレス●バス4102に出力されるとともに
、次アドレスがデスティネーシロン●オベランド●バス
4115を介してオペランド●ライト手段22に転送さ
れる。ついで、オペランド●ライト手段422は次アド
レスをオペランドとしてレジスタ●ライト●バス412
2を介してデータ●レジスト13に書き戻す。
以上述べた処理のタイミングを第6図を用いて説明する
。第6図は、一つの命令列が実行される際の処理の流れ
を示す図である。1〜3ライン目の処理が命令工〜命令
■の処理に対応する。いちばん下の2ラインに渡る処理
が分岐命令の処理に対応する。第4図における、命令列
フェッチ手段412が命令列をフェッチするタイミング
がIFに対応する。同様に、オペランド◆フェッチ手段
414〜417によるレジスタからのオペランドのフェ
ッチ、アドレス生成手段418により次アドレスおよび
分岐先アドレスの生成、命令実行手段419〜421に
より命令の実行、オペランド●ライト手段422〜42
5によるレジスタへのオペランド●ライトのタイミング
がそれぞれOF,AG,EXおよびWBに対応する。
。第6図は、一つの命令列が実行される際の処理の流れ
を示す図である。1〜3ライン目の処理が命令工〜命令
■の処理に対応する。いちばん下の2ラインに渡る処理
が分岐命令の処理に対応する。第4図における、命令列
フェッチ手段412が命令列をフェッチするタイミング
がIFに対応する。同様に、オペランド◆フェッチ手段
414〜417によるレジスタからのオペランドのフェ
ッチ、アドレス生成手段418により次アドレスおよび
分岐先アドレスの生成、命令実行手段419〜421に
より命令の実行、オペランド●ライト手段422〜42
5によるレジスタへのオペランド●ライトのタイミング
がそれぞれOF,AG,EXおよびWBに対応する。
さて、本実施例の並列パイプライン命令処理装置が第7
図に示したプログラム●シーケンスを処理する場合を考
えてみよう。このシーケンスでは命令列2が条件分岐命
令を含んでおり、条件成立によりシーケンスが命令列2
からの命令列Aへ分岐する。
図に示したプログラム●シーケンスを処理する場合を考
えてみよう。このシーケンスでは命令列2が条件分岐命
令を含んでおり、条件成立によりシーケンスが命令列2
からの命令列Aへ分岐する。
第8図に、第7図のシーケンスが実行される場合のパイ
プラインの動作を示す。命令列2の処理において、分岐
フィールドを処理するパイプラインは、オペランド●フ
ェッチと同時に、次アドレスの生成と分岐先アドレスの
生成を並列して実行しており、フェッチしたオペランド
の内容を使用してt2サイクルの終了時に、次アドレス
を使用するか分岐先アドレスを使用するかを決定し、ア
ドレス●バス4l02に出力することができる。
プラインの動作を示す。命令列2の処理において、分岐
フィールドを処理するパイプラインは、オペランド●フ
ェッチと同時に、次アドレスの生成と分岐先アドレスの
生成を並列して実行しており、フェッチしたオペランド
の内容を使用してt2サイクルの終了時に、次アドレス
を使用するか分岐先アドレスを使用するかを決定し、ア
ドレス●バス4l02に出力することができる。
したがって、t3サイクルから命令Aの処理を開始する
ことができる。
ことができる。
従って、分岐を含む命令列の実行時にも、パイプライン
に空きが生じることはなく、コンパイラが埋めなければ
ならない命令の空きスロットを従来のものに比べて少な
くでき、効率の高い並列バイブライン命令処理装置が実
現できる。
に空きが生じることはなく、コンパイラが埋めなければ
ならない命令の空きスロットを従来のものに比べて少な
くでき、効率の高い並列バイブライン命令処理装置が実
現できる。
例えば、1マシン・サイクルの分岐遅延を持つ従来装置
で、最大性能を発揮させるために、コンパイラが命令4
〜命令6の3つの命令スロット、さらに続く遅延命令列
中の3つ命令スロット、合計6つの命令スロットに有効
な命令を埋め込む必要がある。これに対し、本実施例の
並列パイプライン命令処理装置では、命令4〜命令6の
3つの命令スロットを有効な命令で埋めればよい。
で、最大性能を発揮させるために、コンパイラが命令4
〜命令6の3つの命令スロット、さらに続く遅延命令列
中の3つ命令スロット、合計6つの命令スロットに有効
な命令を埋め込む必要がある。これに対し、本実施例の
並列パイプライン命令処理装置では、命令4〜命令6の
3つの命令スロットを有効な命令で埋めればよい。
なお、本発明は前述の実施例に制限されることなく他の
適切な構成によっても実現できることは言うまでもない
。
適切な構成によっても実現できることは言うまでもない
。
以上説明したように、第1の発明では、パイプライン計
算機において、分岐命令が実行された場合にもパイプラ
イン動作が乱れずに命令が並列実行されるために、命令
の実行を高速化できるという効果があり、また、汎用レ
ジスタの読み出し/書き込み使用するバスを時分割で使
用し共有化できるためにハードウェア量を削減できると
いう効果がある。
算機において、分岐命令が実行された場合にもパイプラ
イン動作が乱れずに命令が並列実行されるために、命令
の実行を高速化できるという効果があり、また、汎用レ
ジスタの読み出し/書き込み使用するバスを時分割で使
用し共有化できるためにハードウェア量を削減できると
いう効果がある。
また、以上説明したように第2の発明の並列パイプライ
ン命令処理装置は、分岐命令を持つ命令列による命令の
空きスロットの発生がないために、簡単なハードウェア
とコンパイル時の並列命令スケジューリングにより並列
処理を実現するVLIW型並列処理と、命令パイプライ
ン方式による高速処理とを組み合わせた、効率の高い並
列パイプライン命令処理装置を実現することができると
いう効果があり、また、コンパイラが埋めなければなら
ない空き命令スロットを少なくできるため、並列命令ス
ケジューリングが容易になるという効果がある。
ン命令処理装置は、分岐命令を持つ命令列による命令の
空きスロットの発生がないために、簡単なハードウェア
とコンパイル時の並列命令スケジューリングにより並列
処理を実現するVLIW型並列処理と、命令パイプライ
ン方式による高速処理とを組み合わせた、効率の高い並
列パイプライン命令処理装置を実現することができると
いう効果があり、また、コンパイラが埋めなければなら
ない空き命令スロットを少なくできるため、並列命令ス
ケジューリングが容易になるという効果がある。
第1図は第1の発明の一実施例の構成を示すブロック図
、第2図は第1図のパイプラインのタイミング図、第3
図(a)は従来の命令処理装置のパイプラインのタイミ
ング図、第3図(b)は従来の命令処理装置における分
岐命令のパイプラインのタイミング図、第4図はn=4
の場合の第2の発明の一実施例の構成を示すブロック図
、第5図は第4図の構成を持つ並列パイプライン命令処
理装置の命令フォーマットを示す図、第6図は第2の発
明のパイプラインを示す図、第7図は条件分岐命令を含
むプログラム●シーケンスの図、第8図は第7図に示す
命令を実行した場合の命令パイプラインの動作を示す図
、第9図はVLIW方式の並列計算機の原理を示す図、
第10図は従来の直列命令処理装置の命令パイプライン
を示す図、第11図は従来のパイプラインにおける分岐
発生時の動作を示した図、第12図は従来のパイプライ
ンにおける遅延分岐命令の動作を示した図である。 AG・・・アドレス生成、EX・・・命令実行サイクル
、IF・・・命令フェッチ●サイクル、OF・・・レジ
スタ●フェッチ●サイクル、OW・・・レジスタ●ライ
ト●サイクル、11・・・命令フェッチ手段、12・・
・オペランド●フェッチ手段、13・・・命令実行手段
、14・・・オペランド●ライト手段、15・・・命令
メモリ、16・・・汎用レジスタ●ファイル、17・・
・インクリメンタ、18・・・マノレチプレクサ、19
・・・分岐アドレス生成手段、101〜102・・・命
令バス、103〜104オソース●オペランド●バス、
105・・・命令バス、106・・・デスティネーシロ
ン●オペランド●バス、107〜108・・・命令アド
レス●バス、109〜110・・・命令バス、111〜
112・・・命令アドレス●バス、113・・・ソース
●オペランド●バス、114・・・レジスタ●アドレス
●バス、115・・・レジスタ●リード●バス、116
・・・レジスタ●アドレス●バス、117・・・レジス
タ●リード/ライト●バス、411・・・命令列メモリ
、412・・・命令列フェッチ手段、413・・・デー
タ●レジスタ、414〜417・・・オペランド●フェ
ッチ手段、418・・・アドレス生成手段、419〜4
21・・・命令実行手段、422〜425・・・オペラ
ンド●ライト手段、4101・・・命令列バス、410
2・・・アドレス●バス、4103〜4106・・・命
令バス、4107〜4110・・・レジスタ●リード●
バス、4111〜4114・・・ソース●オペランド●
バス、4115〜4118・・・デスティネーシロン●
オペランド●ノ{ス、4119〜4122・・・レジス
タ●ライト●ノイス。
、第2図は第1図のパイプラインのタイミング図、第3
図(a)は従来の命令処理装置のパイプラインのタイミ
ング図、第3図(b)は従来の命令処理装置における分
岐命令のパイプラインのタイミング図、第4図はn=4
の場合の第2の発明の一実施例の構成を示すブロック図
、第5図は第4図の構成を持つ並列パイプライン命令処
理装置の命令フォーマットを示す図、第6図は第2の発
明のパイプラインを示す図、第7図は条件分岐命令を含
むプログラム●シーケンスの図、第8図は第7図に示す
命令を実行した場合の命令パイプラインの動作を示す図
、第9図はVLIW方式の並列計算機の原理を示す図、
第10図は従来の直列命令処理装置の命令パイプライン
を示す図、第11図は従来のパイプラインにおける分岐
発生時の動作を示した図、第12図は従来のパイプライ
ンにおける遅延分岐命令の動作を示した図である。 AG・・・アドレス生成、EX・・・命令実行サイクル
、IF・・・命令フェッチ●サイクル、OF・・・レジ
スタ●フェッチ●サイクル、OW・・・レジスタ●ライ
ト●サイクル、11・・・命令フェッチ手段、12・・
・オペランド●フェッチ手段、13・・・命令実行手段
、14・・・オペランド●ライト手段、15・・・命令
メモリ、16・・・汎用レジスタ●ファイル、17・・
・インクリメンタ、18・・・マノレチプレクサ、19
・・・分岐アドレス生成手段、101〜102・・・命
令バス、103〜104オソース●オペランド●バス、
105・・・命令バス、106・・・デスティネーシロ
ン●オペランド●バス、107〜108・・・命令アド
レス●バス、109〜110・・・命令バス、111〜
112・・・命令アドレス●バス、113・・・ソース
●オペランド●バス、114・・・レジスタ●アドレス
●バス、115・・・レジスタ●リード●バス、116
・・・レジスタ●アドレス●バス、117・・・レジス
タ●リード/ライト●バス、411・・・命令列メモリ
、412・・・命令列フェッチ手段、413・・・デー
タ●レジスタ、414〜417・・・オペランド●フェ
ッチ手段、418・・・アドレス生成手段、419〜4
21・・・命令実行手段、422〜425・・・オペラ
ンド●ライト手段、4101・・・命令列バス、410
2・・・アドレス●バス、4103〜4106・・・命
令バス、4107〜4110・・・レジスタ●リード●
バス、4111〜4114・・・ソース●オペランド●
バス、4115〜4118・・・デスティネーシロン●
オペランド●ノ{ス、4119〜4122・・・レジス
タ●ライト●ノイス。
Claims (1)
- 【特許請求の範囲】 1、単一マシン・サイクルで実行できる命令セットを
有し、該命令を記憶する第一の記憶手段と、オペランド
を記憶する第二の記憶手段と、前記第一の記憶手段から
前記命令を読み出すための命令読み出し手段と、読み出
された該命令を実行するのに必要なオペランドを前記第
二の記憶手段から読み出すオペランド読み出し手段と、
読み出された該オペランドを使用して命令を実行する命
令実行手段と、命令実行の結果得られた該オペランドを
前記第二の記憶手段に書き込むオペランド書き込み手段
とを有し、前記命令の読み出し、前記オペランドの読み
出し、前記命令の実行、前記オペランドの書き込みから
なるパイプライン命令処理機構を備えた計算機システム
において、分岐先のアドレスを生成する分岐アドレス生
成手段をさらに備え、前記第一の記憶手段から前記命令
読み出し手段によって読み出された命令が分岐命令であ
った場合には、前記オペランドの読み出しのマシン・サ
イクルにおいて前記分岐アドレス生成手段における分岐
アドレスの生成を同時におこなうことによって分岐命令
実行時のパイプラインの乱れをなくし、パイプライン動
作を高速化することを特徴とする命令処理装置。 2、n個(nはn≧2の自然数)の命令の並列の並び
からなる命令列を有し、該命令列を記憶する第一の記憶
手段と、該第一の記憶手段から前記命令列を読み出すた
めの命令列読み出し手段と、読み出した前記命令列中の
n個の前記命令に対応し、前記命令が指定する命令を処
理するn個の命令処理手段と、n個の該命令処理手段が
使用するオペランドを記憶し、n個の前記命令処理手段
から独立してリード/ライト可能な第二の記憶手段とを
備え、n個の命令を並列に処理する命令処理装置におい
て、前記命令処理手段中のn−1個の命令処理手段は、
前記命令が指定する命令の実行に必要なオペランドを前
記第二の記憶手段から読み出すオペランド読み出し手段
と、読み出した該オペランドを使用して命令を実行する
命令実行手段と、命令実行の結果得られた該オペランド
を前記第二の記憶手段に書き戻すオペランド書き込み手
段とを備え、前記命令列の読み出しおよび前記オペラン
ドの読み出しを実行する第一のステージ、前記命令の処
理を実行する第二のステージ、前記オペランドの書き込
みを実行する第三のステージで構成されるパイプライン
命令処理機構により分岐命令以外の命令を実行し、一方
、前記命令処理手段中の残る1個の命令処理手段は、前
記命令が指定する条件分岐命令の実行に必要なオペラン
ドを前記第二の記憶手段から読み出すオペランド読み出
し手段と、次に実行する命令列のアドレスを生成するア
ドレス生成手段とを備え、前記オペランドの読み出しお
よび前記アドレスの生成を並列に実行し、前記命令列の
読み出し、前記オペランドの読み出しおよび前記アドレ
スの生成を単一マシン・サイクルで実行する分岐制御機
構により分岐命令を実行し、分岐遅延による空き命令ス
ロットの増加を抑えたことを特徴とする命令処理装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9450790A JP2861234B2 (ja) | 1989-08-18 | 1990-04-10 | 命令処理装置 |
| DE69132675T DE69132675T2 (de) | 1990-04-06 | 1991-04-08 | Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter |
| EP91105530A EP0450658B1 (en) | 1990-04-06 | 1991-04-08 | Parallel pipelined instruction processing system for very long instruction word |
| US07/682,085 US5333280A (en) | 1990-04-06 | 1991-04-08 | Parallel pipelined instruction processing system for very long instruction word |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21227289 | 1989-08-18 | ||
| JP1-212272 | 1989-08-18 | ||
| JP9450790A JP2861234B2 (ja) | 1989-08-18 | 1990-04-10 | 命令処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03163627A true JPH03163627A (ja) | 1991-07-15 |
| JP2861234B2 JP2861234B2 (ja) | 1999-02-24 |
Family
ID=26435787
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9450790A Expired - Lifetime JP2861234B2 (ja) | 1989-08-18 | 1990-04-10 | 命令処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2861234B2 (ja) |
-
1990
- 1990-04-10 JP JP9450790A patent/JP2861234B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2861234B2 (ja) | 1999-02-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
| JP3120152B2 (ja) | コンピューターシステム | |
| JP2928695B2 (ja) | 静的インタリーブを用いたマルチスレッドマイクロプロセッサおよびそれを備えたシステムでの命令スレッド実行方法 | |
| US6356994B1 (en) | Methods and apparatus for instruction addressing in indirect VLIW processors | |
| JP2518616B2 (ja) | 分岐方法 | |
| JP3984786B2 (ja) | 異なる待ち時間を伴う命令のスケジューリング | |
| KR101303119B1 (ko) | 쓰레드 당 다중의 동시적 파이프라인을 갖는 멀티쓰레드 프로세서 | |
| JP2550213B2 (ja) | 並列処理装置および並列処理方法 | |
| US6237077B1 (en) | Instruction template for efficient processing clustered branch instructions | |
| JP2002536738A (ja) | 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム | |
| JP2001516918A (ja) | データプロセッサ | |
| JP2002333978A (ja) | Vliw型プロセッサ | |
| JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
| US10303399B2 (en) | Data processing apparatus and method for controlling vector memory accesses | |
| US7779240B2 (en) | System and method for reducing power consumption in a data processor having a clustered architecture | |
| JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
| US6691240B1 (en) | System and method of implementing variabe length delay instructions, which prevents overlapping lifetime information or values in efficient way | |
| JPH1185513A (ja) | プロセッサ | |
| JP3146058B2 (ja) | 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法 | |
| US5737562A (en) | CPU pipeline having queuing stage to facilitate branch instructions | |
| JP2004503872A (ja) | 共同利用コンピュータシステム | |
| JP2000353091A (ja) | コンピュータシステムにおける命令実行方法およびコンピュータシステム | |
| JP2003263313A (ja) | デジタルプロセッサおよび命令の選択方法 | |
| CN112579168B (zh) | 指令执行单元、处理器以及信号处理方法 | |
| JP2861234B2 (ja) | 命令処理装置 |