JPH07110769A - Vliw型計算機 - Google Patents
Vliw型計算機Info
- Publication number
- JPH07110769A JPH07110769A JP28026693A JP28026693A JPH07110769A JP H07110769 A JPH07110769 A JP H07110769A JP 28026693 A JP28026693 A JP 28026693A JP 28026693 A JP28026693 A JP 28026693A JP H07110769 A JPH07110769 A JP H07110769A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vliw type
- vliw
- register
- stored
- 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.)
- Pending
Links
- 238000013500 data storage Methods 0.000 claims description 4
- 235000014121 butter Nutrition 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 3
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 小規模なハードウェアにより高度な並列計算
機能を実現する。 【構成】 命令レジスタ1に格納される命令は通常の単
一動作命令である。そして、VLIW型命令に対応して
通常の命令と同じ形式でVLIW型動作を開始する命令
の形式を定義する。デコーダ2は、命令レジスタ1から
この形式の命令を読み出すと、命令バッファ制御部3に
より命令バッファ4を介して各演算器5を並列動作させ
る。即ち、命令バッファ制御部3は、VLIW型命令の
種類に応じた番号等により命令バッファ4にそのVLI
W型命令が格納されているか否かを判別し、VLIW型
命令が格納されていればそのVLIW型命令に従って各
演算器5を動作させる。一方、命令バッファ4にVLI
W型命令が格納されていなければ所定の記憶領域から通
常の命令の列として読み出した命令を実行する。
機能を実現する。 【構成】 命令レジスタ1に格納される命令は通常の単
一動作命令である。そして、VLIW型命令に対応して
通常の命令と同じ形式でVLIW型動作を開始する命令
の形式を定義する。デコーダ2は、命令レジスタ1から
この形式の命令を読み出すと、命令バッファ制御部3に
より命令バッファ4を介して各演算器5を並列動作させ
る。即ち、命令バッファ制御部3は、VLIW型命令の
種類に応じた番号等により命令バッファ4にそのVLI
W型命令が格納されているか否かを判別し、VLIW型
命令が格納されていればそのVLIW型命令に従って各
演算器5を動作させる。一方、命令バッファ4にVLI
W型命令が格納されていなければ所定の記憶領域から通
常の命令の列として読み出した命令を実行する。
Description
【0001】
【産業上の利用分野】本発明は、複数の機能ユニットに
対し、長命令形式で制御を行なうVLIW型計算機に関
するものである。
対し、長命令形式で制御を行なうVLIW型計算機に関
するものである。
【0002】
【従来の技術】一般に、並列計算機は、複数の機能実行
ユニットを有し、それらを同時並行して動作させること
により、高速処理を行なう。このような並列計算機の一
種としてVLIW計算機がある。VLIW計算機では、
比較的長い命令を多数のフィールドに分割し、各々のフ
ィールドで多数の演算器、レジスタ、相互結合網、メモ
リなどを独立に制御できる(富田真治著「並列計算機構
成論 第131頁〜133頁」昭晃堂(1986)、John
L.Hennesy and David A.Patterson著 富田真治、村上
和彰、新實治男訳「コンピュータ・アーキテクチャ 第
316〜323頁」日経BP社(1992)参照)。図2
は、従来のVLIW型計算機の一構成例を示すブロック
図である。図示の計算機は、複数の演算器21、命令レ
ジスタ22、レジスタファイル23等から成る。
ユニットを有し、それらを同時並行して動作させること
により、高速処理を行なう。このような並列計算機の一
種としてVLIW計算機がある。VLIW計算機では、
比較的長い命令を多数のフィールドに分割し、各々のフ
ィールドで多数の演算器、レジスタ、相互結合網、メモ
リなどを独立に制御できる(富田真治著「並列計算機構
成論 第131頁〜133頁」昭晃堂(1986)、John
L.Hennesy and David A.Patterson著 富田真治、村上
和彰、新實治男訳「コンピュータ・アーキテクチャ 第
316〜323頁」日経BP社(1992)参照)。図2
は、従来のVLIW型計算機の一構成例を示すブロック
図である。図示の計算機は、複数の演算器21、命令レ
ジスタ22、レジスタファイル23等から成る。
【0003】演算器21は、レジスタファイル23に格
納されたデータに加算、減算等の種々の演算を加えるユ
ニットであり、n個の同種あるいは異種構造のユニット
から成る。これらの演算器21は、一般的には、固定小
数点演算ユニット、浮動小数点演算ユニット、メモリア
クセスユニット、シーケンス制御ユニット等を組み合せ
たものである。命令レジスタ22には、図示のような形
式の命令が格納される。この命令は、複数のフィールド
F0、F1等から成り、それぞれのフィールドF0、F
1等は、それぞれの演算ユニットA0、A1等に対応し
たフィールドと全体の制御を行なうその他の制御フィー
ルドGから成る。演算ユニットA0、A1等に対応した
フィールドF0、F1等は、演算ユニットA0、A1等
の制御、演算ユニットA0、A1等に対するレジスタフ
ァイル23内のレジスタの指定等を行なう。
納されたデータに加算、減算等の種々の演算を加えるユ
ニットであり、n個の同種あるいは異種構造のユニット
から成る。これらの演算器21は、一般的には、固定小
数点演算ユニット、浮動小数点演算ユニット、メモリア
クセスユニット、シーケンス制御ユニット等を組み合せ
たものである。命令レジスタ22には、図示のような形
式の命令が格納される。この命令は、複数のフィールド
F0、F1等から成り、それぞれのフィールドF0、F
1等は、それぞれの演算ユニットA0、A1等に対応し
たフィールドと全体の制御を行なうその他の制御フィー
ルドGから成る。演算ユニットA0、A1等に対応した
フィールドF0、F1等は、演算ユニットA0、A1等
の制御、演算ユニットA0、A1等に対するレジスタフ
ァイル23内のレジスタの指定等を行なう。
【0004】レジスタファイル23は、複数のレジスタ
から成る。これらの複数のレジスタは、演算器21の相
互結合網を含む。演算器21の入力元あるいは出力先と
なるレジスタ及び、演算器21同士、あるいは各演算器
21と各レジスタは、この相互結合網により接続され
る。このような構成の計算機を用いた場合、プログラム
中の並列性を検出し、命令の各フィールドを埋めること
により、簡単なハードウェア構成で最大限の並列性を得
られる。また、並列性の検出を静的に行なうようにして
いるため、実行時に並列動作の可能性を検出するハード
ウェアが不要である。このため、小規模のハードウェア
で高速かつ柔軟な計算機を構成することが可能になる。
から成る。これらの複数のレジスタは、演算器21の相
互結合網を含む。演算器21の入力元あるいは出力先と
なるレジスタ及び、演算器21同士、あるいは各演算器
21と各レジスタは、この相互結合網により接続され
る。このような構成の計算機を用いた場合、プログラム
中の並列性を検出し、命令の各フィールドを埋めること
により、簡単なハードウェア構成で最大限の並列性を得
られる。また、並列性の検出を静的に行なうようにして
いるため、実行時に並列動作の可能性を検出するハード
ウェアが不要である。このため、小規模のハードウェア
で高速かつ柔軟な計算機を構成することが可能になる。
【0005】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような問題があった。 (1)命令長の問題 VLIW型計算機は上述した特徴により命令長が比較的
長くなる。また、高速動作を要求するため、1マシンサ
イクルで1命令を供給する必要がある。従って、命令長
の幅と同じ幅の命令バッファと、命令バスを必要とす
る。 (2)コードサイズの問題 並列度を上げるためには、プログラムのループの部分は
展開しなければならない。従って、並列度を上げること
は、コードサイズが増加する要因になる。また、プログ
ラムに内在する並列度より、演算器の多重度の方が大き
い場合、命令フィールドがすべて埋まらず、未使用の命
令フィールド(NOP)により、コードサイズが増加す
る。
た従来の技術には、次のような問題があった。 (1)命令長の問題 VLIW型計算機は上述した特徴により命令長が比較的
長くなる。また、高速動作を要求するため、1マシンサ
イクルで1命令を供給する必要がある。従って、命令長
の幅と同じ幅の命令バッファと、命令バスを必要とす
る。 (2)コードサイズの問題 並列度を上げるためには、プログラムのループの部分は
展開しなければならない。従って、並列度を上げること
は、コードサイズが増加する要因になる。また、プログ
ラムに内在する並列度より、演算器の多重度の方が大き
い場合、命令フィールドがすべて埋まらず、未使用の命
令フィールド(NOP)により、コードサイズが増加す
る。
【0006】(3)レジスタポート数の問題 すべての演算器がいずれのレジスタにも接続され、いず
れのレジスタも同時使用できるようになっているので、
各レジスタに演算器の数に比例した数のポートが必要で
ある。本発明は、以上の点に着目してなされたもので、
小規模なハードウェアにより高度な並列計算機能を実現
できるようにしたVLIW型計算機を提供することを目
的とするものである。
れのレジスタも同時使用できるようになっているので、
各レジスタに演算器の数に比例した数のポートが必要で
ある。本発明は、以上の点に着目してなされたもので、
小規模なハードウェアにより高度な並列計算機能を実現
できるようにしたVLIW型計算機を提供することを目
的とするものである。
【0007】
【課題を解決するための手段】本発明のVLIW型計算
機は、VLIW型命令を通常の命令と同じ形式で格納す
る命令レジスタと、当該命令レジスタから読み出された
命令がVLIW型命令か通常の命令かを判別するデコー
ダと、前記VLIW型命令をVLIW型命令の形式で格
納する命令バッファと、前記デコーダにより前記命令レ
ジスタから読み出された命令がVLIW型命令であると
判別された場合に前記命令バッファにそのVLIW型命
令が格納されているか否かを判別し、そのVLIW型命
令が格納されているときは、当該命令バッファからその
VLIW型命令を読み出して並列処理を行なう命令バッ
ファ制御部とを備えたことを特徴とするものである。
機は、VLIW型命令を通常の命令と同じ形式で格納す
る命令レジスタと、当該命令レジスタから読み出された
命令がVLIW型命令か通常の命令かを判別するデコー
ダと、前記VLIW型命令をVLIW型命令の形式で格
納する命令バッファと、前記デコーダにより前記命令レ
ジスタから読み出された命令がVLIW型命令であると
判別された場合に前記命令バッファにそのVLIW型命
令が格納されているか否かを判別し、そのVLIW型命
令が格納されているときは、当該命令バッファからその
VLIW型命令を読み出して並列処理を行なう命令バッ
ファ制御部とを備えたことを特徴とするものである。
【0008】
【作用】本発明のVLIW型計算機においては、命令レ
ジスタに格納される命令は通常の単一動作命令である。
そして、VLIW型命令に対応して通常の命令と同じ形
式でVLIW型動作を開始する命令の形式を定義する。
デコーダは、命令レジスタからこの形式の命令を読み出
すと、命令バッファ制御部により命令バッファを介して
各演算器を並列動作させる。即ち、命令バッファ制御部
は、VLIW型命令の種類に応じた番号等により命令バ
ッファに対応するVLIW型命令の形式のVLIW型命
令が格納されているか否かを判別し、VLIW型命令が
格納されていればそのVLIW型命令に従って演算器を
動作させる。一方、命令バッファにVLIW型命令が格
納されていなければ所定の記憶領域から通常の命令の列
としてVLIW型命令を実行し、命令バッファにはVL
IW型命令の形式のVLIW型命令を格納する。これに
より、命令レジスタからこれと同じVLIW型動作を開
始する命令が読み出されたときは、命令バッファに格納
されたVLIW型命令が読み出され、各演算器が並列動
作される。
ジスタに格納される命令は通常の単一動作命令である。
そして、VLIW型命令に対応して通常の命令と同じ形
式でVLIW型動作を開始する命令の形式を定義する。
デコーダは、命令レジスタからこの形式の命令を読み出
すと、命令バッファ制御部により命令バッファを介して
各演算器を並列動作させる。即ち、命令バッファ制御部
は、VLIW型命令の種類に応じた番号等により命令バ
ッファに対応するVLIW型命令の形式のVLIW型命
令が格納されているか否かを判別し、VLIW型命令が
格納されていればそのVLIW型命令に従って演算器を
動作させる。一方、命令バッファにVLIW型命令が格
納されていなければ所定の記憶領域から通常の命令の列
としてVLIW型命令を実行し、命令バッファにはVL
IW型命令の形式のVLIW型命令を格納する。これに
より、命令レジスタからこれと同じVLIW型動作を開
始する命令が読み出されたときは、命令バッファに格納
されたVLIW型命令が読み出され、各演算器が並列動
作される。
【0009】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、本発明のVLIW型計算機の一実
施例のブロック図である。図示の計算機は、命令レジス
タ1、デコーダ2、命令バッファ制御部3、命令バッフ
ァ4、複数の演算器5、汎用レジスタファイル6、並列
処理用レジスタファイル7等から成る。命令レジスタ1
は、図示しない命令メモリよりフェッチした命令を格納
するレジスタである。この命令レジスタ1は、デコーダ
2に接続されている。命令レジスタ1にフェッチされる
命令は、並列実行を行なうためのVLIW型命令ではな
く、通常の単一命令を実行するために用いる命令であ
り、一般的には、32ビット長や16ビット長の命令で
ある。デコーダ2は、命令レジスタ1の命令をデコード
し、各演算器5の制御信号を出力する。即ち、デコーダ
2は、OPコードにより加算命令、減算命令、ロード命
令等の別を判定し、対応する演算器5に制御信号を出力
する。
に説明する。図1は、本発明のVLIW型計算機の一実
施例のブロック図である。図示の計算機は、命令レジス
タ1、デコーダ2、命令バッファ制御部3、命令バッフ
ァ4、複数の演算器5、汎用レジスタファイル6、並列
処理用レジスタファイル7等から成る。命令レジスタ1
は、図示しない命令メモリよりフェッチした命令を格納
するレジスタである。この命令レジスタ1は、デコーダ
2に接続されている。命令レジスタ1にフェッチされる
命令は、並列実行を行なうためのVLIW型命令ではな
く、通常の単一命令を実行するために用いる命令であ
り、一般的には、32ビット長や16ビット長の命令で
ある。デコーダ2は、命令レジスタ1の命令をデコード
し、各演算器5の制御信号を出力する。即ち、デコーダ
2は、OPコードにより加算命令、減算命令、ロード命
令等の別を判定し、対応する演算器5に制御信号を出力
する。
【0010】命令バッファ制御部3は、命令バッファ4
に格納される内容を制御したり、命令バッファ4の命令
の実行を制御するものである。命令バッファ4は、VL
IW型命令を格納するもので、命令の各フィールドによ
り各演算器5をそれぞれ制御する。演算器5は、加減乗
除や論理演算等の各種の演算、ロードやストア等のメモ
リ制御、分岐等のシーケンス制御等から成るn個の演算
ユニットである。汎用レジスタファイル6は、VLIW
型命令以外の通常の命令で使用されるレジスタである。
並列処理用レジスタファイル7は、VLIW型命令を実
行する場合に使用されるレジスタである。
に格納される内容を制御したり、命令バッファ4の命令
の実行を制御するものである。命令バッファ4は、VL
IW型命令を格納するもので、命令の各フィールドによ
り各演算器5をそれぞれ制御する。演算器5は、加減乗
除や論理演算等の各種の演算、ロードやストア等のメモ
リ制御、分岐等のシーケンス制御等から成るn個の演算
ユニットである。汎用レジスタファイル6は、VLIW
型命令以外の通常の命令で使用されるレジスタである。
並列処理用レジスタファイル7は、VLIW型命令を実
行する場合に使用されるレジスタである。
【0011】図3は、VLIW型動作を開始する命令の
形式の一例を示す。VLIWOPフィールドは、この命
令がVLIW型動作を開始する命令であることを示す。
NOフィールドは、VLIW型動作の何番目の命令を実
行するかを指定するフィールドである。DSTフィール
ドは、VLIW型動作の結果値を戻す必要がある場合に
その値を格納するレジスタの番号を示すフィールドであ
る。SRC1、SRC2フィールドは、VLIW型動作
を行なうために必要なパラメータを格納したレジスタの
番号を示すフィールドである。このようなVLIW型命
令によりSRC1及びSRC2フィールドに指定された
番号のレジスタに格納されたデータに対し、VLIW型
命令の演算が施され、その結果がDSTフィールドに指
定されたレジスタに格納される。
形式の一例を示す。VLIWOPフィールドは、この命
令がVLIW型動作を開始する命令であることを示す。
NOフィールドは、VLIW型動作の何番目の命令を実
行するかを指定するフィールドである。DSTフィール
ドは、VLIW型動作の結果値を戻す必要がある場合に
その値を格納するレジスタの番号を示すフィールドであ
る。SRC1、SRC2フィールドは、VLIW型動作
を行なうために必要なパラメータを格納したレジスタの
番号を示すフィールドである。このようなVLIW型命
令によりSRC1及びSRC2フィールドに指定された
番号のレジスタに格納されたデータに対し、VLIW型
命令の演算が施され、その結果がDSTフィールドに指
定されたレジスタに格納される。
【0012】図4は、命令バッファ制御部3の詳細な構
成を示すブロック図である。図示のように、命令バッフ
ァ制御部3は、命令形式変換部41、命令バッファアド
レステーブル42、命令バッファアドレスカウンタ4
3、VLIW型命令シーケンス制御部44から成る。命
令形式変換部41は、命令レジスタ1にフェッチされた
単一動作型の命令をVLIW型命令の1つのフィールド
を形成するように変換する。この結果、形成されたVL
IW型命令は、命令バッファ4に格納される。命令バッ
ファアドレステーブル42は、命令バッファ4内のVL
IW型命令の開始アドレスとその命令の有効性を示すテ
ーブルである。このテーブルの各エントリは、VLIW
型命令の番号を格納するフィールドと、その番号が指定
する命令バッファ4内のVLIW動作の開始アドレスと
その開始アドレスが有効かどうかを示すV(Valid) ビッ
トから成る。
成を示すブロック図である。図示のように、命令バッフ
ァ制御部3は、命令形式変換部41、命令バッファアド
レステーブル42、命令バッファアドレスカウンタ4
3、VLIW型命令シーケンス制御部44から成る。命
令形式変換部41は、命令レジスタ1にフェッチされた
単一動作型の命令をVLIW型命令の1つのフィールド
を形成するように変換する。この結果、形成されたVL
IW型命令は、命令バッファ4に格納される。命令バッ
ファアドレステーブル42は、命令バッファ4内のVL
IW型命令の開始アドレスとその命令の有効性を示すテ
ーブルである。このテーブルの各エントリは、VLIW
型命令の番号を格納するフィールドと、その番号が指定
する命令バッファ4内のVLIW動作の開始アドレスと
その開始アドレスが有効かどうかを示すV(Valid) ビッ
トから成る。
【0013】命令バッファアドレスカウンタ43は、単
一動作命令を命令バッファ4へ格納する場合の命令バッ
ファ4のアドレスをカウントする。この命令バッファア
ドレスカウンタ43は、次に書き込む命令バッファ4の
アドレスを常に保持しており、VLIW型命令の開始ア
ドレスを命令バッファアドレステーブル42に送出す
る。VLIW型命令シーケンス制御部44は、命令形式
変換部41で変換された命令を命令バッファ4に格納す
るとともに、命令バッファ4に格納されたVLIW型命
令のシーケンス制御を行なう。
一動作命令を命令バッファ4へ格納する場合の命令バッ
ファ4のアドレスをカウントする。この命令バッファア
ドレスカウンタ43は、次に書き込む命令バッファ4の
アドレスを常に保持しており、VLIW型命令の開始ア
ドレスを命令バッファアドレステーブル42に送出す
る。VLIW型命令シーケンス制御部44は、命令形式
変換部41で変換された命令を命令バッファ4に格納す
るとともに、命令バッファ4に格納されたVLIW型命
令のシーケンス制御を行なう。
【0014】次に、上述のように構成した計算機の動作
を説明する。図1において、まず、命令バスよりフェッ
チされた命令が命令レジスタ1に格納される。命令レジ
スタ1に格納された命令は、デコーダ2でデコードされ
る。これにより、演算器5が指定され、汎用レジスタフ
ァイル6が指定される。また、デコーダ2ではOPコー
ドによりデコードされた命令が単一動作を指定する通常
の命令か否かが判定される。通常の命令の場合、演算器
5のうちの1つが指定され、その際、汎用レジスタファ
イル6内のレジスタが1つあるいは2つ程度指定され
る。
を説明する。図1において、まず、命令バスよりフェッ
チされた命令が命令レジスタ1に格納される。命令レジ
スタ1に格納された命令は、デコーダ2でデコードされ
る。これにより、演算器5が指定され、汎用レジスタフ
ァイル6が指定される。また、デコーダ2ではOPコー
ドによりデコードされた命令が単一動作を指定する通常
の命令か否かが判定される。通常の命令の場合、演算器
5のうちの1つが指定され、その際、汎用レジスタファ
イル6内のレジスタが1つあるいは2つ程度指定され
る。
【0015】一方、デコーダ2でデコードされた命令が
図3に示すVLIW型命令の場合、命令バッファ制御部
3において、命令中のNoフィールドの内容により、命
令バッファアドレステーブル42の内容が調べられる。
図5に、命令バッファ制御部の動作を示す。命令中のN
oフィールドの値を持つエントリのVビットがセットさ
れている場合は命令バッファ4中にすでに対象となるV
LIW型命令列が存在することを示している(ステップ
S1)。従って、直ちに命令バッファ4内の命令列に制
御が移される(ステップS2)。この場合の命令バッフ
ァ4の開始アドレスは、命令バッファアドレステーブル
の該当するエントリのバッファアドレスフィールド中に
格納されたアドレスである。
図3に示すVLIW型命令の場合、命令バッファ制御部
3において、命令中のNoフィールドの内容により、命
令バッファアドレステーブル42の内容が調べられる。
図5に、命令バッファ制御部の動作を示す。命令中のN
oフィールドの値を持つエントリのVビットがセットさ
れている場合は命令バッファ4中にすでに対象となるV
LIW型命令列が存在することを示している(ステップ
S1)。従って、直ちに命令バッファ4内の命令列に制
御が移される(ステップS2)。この場合の命令バッフ
ァ4の開始アドレスは、命令バッファアドレステーブル
の該当するエントリのバッファアドレスフィールド中に
格納されたアドレスである。
【0016】この命令の実行の際は、まず、VLIW型
動作開始命令中のSRC1、SRC2フィールドが示す
レジスタ番号の内容が汎用レジスタファイル6より読み
出される。そして、並列処理用レジスタファイル7中の
同じ番号を持つレジスタに格納される。この後、命令バ
ッファ4に格納されたVLIW型命令が1サイクル毎に
1命令実行される。そして、命令中のSEQフィールド
に従って、VLIW型命令シーケンス制御部44が順次
命令バッファ4のアドレスを出力し、そのアドレスの命
令が実行される。命令中のSEQフィールドがVLIW
型命令の終了を示す場合は、VLIW型命令は終了し、
命令レジスタ1にフェッチされた次の単一動作型の通常
命令の実行が開始される。この際、VLIW型動作開始
命令中のDSTフィールドで指定されたレジスタの内容
が、並列処理用レジスタファイル7から汎用レジスタフ
ァイル6の同じ番号を持つレジスタにコピーされる。以
後、再びVLIW型命令がフェッチされるまで、通常命
令の実行が繰り返される。
動作開始命令中のSRC1、SRC2フィールドが示す
レジスタ番号の内容が汎用レジスタファイル6より読み
出される。そして、並列処理用レジスタファイル7中の
同じ番号を持つレジスタに格納される。この後、命令バ
ッファ4に格納されたVLIW型命令が1サイクル毎に
1命令実行される。そして、命令中のSEQフィールド
に従って、VLIW型命令シーケンス制御部44が順次
命令バッファ4のアドレスを出力し、そのアドレスの命
令が実行される。命令中のSEQフィールドがVLIW
型命令の終了を示す場合は、VLIW型命令は終了し、
命令レジスタ1にフェッチされた次の単一動作型の通常
命令の実行が開始される。この際、VLIW型動作開始
命令中のDSTフィールドで指定されたレジスタの内容
が、並列処理用レジスタファイル7から汎用レジスタフ
ァイル6の同じ番号を持つレジスタにコピーされる。以
後、再びVLIW型命令がフェッチされるまで、通常命
令の実行が繰り返される。
【0017】もし、命令バッファ4中の該当するエント
リのVビットがリセットされている場合は、命令バッフ
ァ中にVLIW型命令が格納されていないことを意味す
る(ステップS1)。この場合、トラップが発生し、そ
のトラップ命令に指定されたアドレスより始まるトラッ
プルーチンがフェッチされる(ステップS3)。このト
ラップルーチンは、図6に示すように、主記憶装置のそ
のアドレスに予め格納されている。これらのトラップル
ーチンは、使用するVLIW型命令の種類だけ用意され
る。トラップルーチンは、通常の命令と同じ形式の命令
列から成り、命令バッファ4の各フィールドを順次埋め
られるようにOP1フィールドに対応する命令から順番
に記述される。該当するフィールドが埋められない場合
は、NOP命令を挿入する必要がある。これをVLIW
型命令の数だけ繰り返す。従って、(VLIW型命令の
フィールド数)×(VLIW型命令の数)の通常命令が
トラップルーチンに必要である。
リのVビットがリセットされている場合は、命令バッフ
ァ中にVLIW型命令が格納されていないことを意味す
る(ステップS1)。この場合、トラップが発生し、そ
のトラップ命令に指定されたアドレスより始まるトラッ
プルーチンがフェッチされる(ステップS3)。このト
ラップルーチンは、図6に示すように、主記憶装置のそ
のアドレスに予め格納されている。これらのトラップル
ーチンは、使用するVLIW型命令の種類だけ用意され
る。トラップルーチンは、通常の命令と同じ形式の命令
列から成り、命令バッファ4の各フィールドを順次埋め
られるようにOP1フィールドに対応する命令から順番
に記述される。該当するフィールドが埋められない場合
は、NOP命令を挿入する必要がある。これをVLIW
型命令の数だけ繰り返す。従って、(VLIW型命令の
フィールド数)×(VLIW型命令の数)の通常命令が
トラップルーチンに必要である。
【0018】トラップルーチンに記述された単一命令
は、命令レジスタ1にフェッチされ(ステップS4)、
実行される(ステップS5)。命令形式変換部41によ
り、VLIW型命令の各フィールドに適合するように変
換され(ステップS6)、命令バッファ4に格納される
(ステップS7)。格納される命令バッファ4の開始ア
ドレスは、命令バッファアドレスカウンタ43が保持し
ており、VLIW型動作開始命令を検出した場合、命令
バッファアドレステーブル42に登録されていないとき
は、命令バッファアドレスカウンタ43の保持している
アドレスを命令バッファアドレステーブル42の該当す
る番号Noのエントリのバッファアドレスフィールドに
書き込み、このアドレスの示す命令バッファアドレスの
フィールドへ順次書き込む。トラップルーチン内のリタ
ーン命令は、命令形式変換部41によって、VLIW型
動作終了を示すコードに変換され、命令バッファ4のS
EQフィールドに格納される。これらのトラップルーチ
ン内の単一動作命令は、このようにして、命令バッファ
4に書き込みが行なわれるとともに、実行も行なわれ
る。
は、命令レジスタ1にフェッチされ(ステップS4)、
実行される(ステップS5)。命令形式変換部41によ
り、VLIW型命令の各フィールドに適合するように変
換され(ステップS6)、命令バッファ4に格納される
(ステップS7)。格納される命令バッファ4の開始ア
ドレスは、命令バッファアドレスカウンタ43が保持し
ており、VLIW型動作開始命令を検出した場合、命令
バッファアドレステーブル42に登録されていないとき
は、命令バッファアドレスカウンタ43の保持している
アドレスを命令バッファアドレステーブル42の該当す
る番号Noのエントリのバッファアドレスフィールドに
書き込み、このアドレスの示す命令バッファアドレスの
フィールドへ順次書き込む。トラップルーチン内のリタ
ーン命令は、命令形式変換部41によって、VLIW型
動作終了を示すコードに変換され、命令バッファ4のS
EQフィールドに格納される。これらのトラップルーチ
ン内の単一動作命令は、このようにして、命令バッファ
4に書き込みが行なわれるとともに、実行も行なわれ
る。
【0019】図7は、単一動作命令の実行時の動作の説
明図である。一時データ格納レジスタ51は、VLIW
型命令を通常の命令の列として実行している場合におい
て、VLIW型で並列に動作している場合とレジスタの
一貫性が保障されるようにする。このため、VLIW型
命令の一命令分が終了するまで並列処理用レジスタファ
イル7への書き込みを一時的に保留し、VLIW型命令
の一命令分が終了する時に一括して書き込みを行なうよ
うにする。この一時データ格納レジスタ51は、VLI
W型命令を通常の命令の列として実行している場合のみ
使用され、命令バッファ4の内容により、VLIW型動
作をする場合は、直接並列処理用レジスタファイル7に
書き込みが行なわれる。
明図である。一時データ格納レジスタ51は、VLIW
型命令を通常の命令の列として実行している場合におい
て、VLIW型で並列に動作している場合とレジスタの
一貫性が保障されるようにする。このため、VLIW型
命令の一命令分が終了するまで並列処理用レジスタファ
イル7への書き込みを一時的に保留し、VLIW型命令
の一命令分が終了する時に一括して書き込みを行なうよ
うにする。この一時データ格納レジスタ51は、VLI
W型命令を通常の命令の列として実行している場合のみ
使用され、命令バッファ4の内容により、VLIW型動
作をする場合は、直接並列処理用レジスタファイル7に
書き込みが行なわれる。
【0020】以上のようにして、命令レジスタ1に格納
される命令を通常の命令の形式とすることができ、命令
長が長くなることがなく、命令バスの信号線数も少なく
することができる。また、コードサイズが通常の命令の
サイズにより決定されるので、VLIW型命令をあまり
使用しないようなプログラムでも未使用の命令フィール
ドが多くなることがない。尚、上述した実施例において
は、主記憶装置の所定の記憶領域から読み出したVLI
W型命令を命令バッファ4に格納していくようにした
が、本発明はこれに限定されることなく、命令バッファ
4にすべての組合せのVLIW型命令を予め格納してお
くものも含むものである。
される命令を通常の命令の形式とすることができ、命令
長が長くなることがなく、命令バスの信号線数も少なく
することができる。また、コードサイズが通常の命令の
サイズにより決定されるので、VLIW型命令をあまり
使用しないようなプログラムでも未使用の命令フィール
ドが多くなることがない。尚、上述した実施例において
は、主記憶装置の所定の記憶領域から読み出したVLI
W型命令を命令バッファ4に格納していくようにした
が、本発明はこれに限定されることなく、命令バッファ
4にすべての組合せのVLIW型命令を予め格納してお
くものも含むものである。
【0021】
【発明の効果】以上説明したように、本発明のVLIW
型計算機によれば、VLIW型命令を格納する命令バッ
ファと、その命令バッファを外部の命令により制御する
命令バッファ制御部とを設けるようにしたので、以下の
ような効果がある。即ち、並列度が高く高速性が要求さ
れる部分のみVLIW型命令を使用すれば良いようにな
るので、全体のコードサイズを縮小することができ、命
令メモリの容量を大きく取る必要がなく、また、命令長
を大きくとる必要がないようにできる。このため、命令
バスの幅を縮小でき、全体的なハードウェアの小型化が
可能となる。また、VLIW型動作開始命令を通常の命
令を拡張することにより得られるようにするとともに、
通常の命令列からVLIW型命令を作成するようにする
ことにより、既存の計算機の命令セットアーキテクチャ
と上位の互換性を保つように構成でき、従来のソフトウ
ェアを生かした上でデータ処理を並列化し、高速化を図
ることが可能である。更に、上述のような命令バッファ
及び命令バッファ制御部を設けるとともに、VLIW型
命令の実行で使用するレジスタファイルと並列度の低い
通常の命令の実行で使用するレジスタを分離し、命令の
種類により切替えて使用することにより、VLIW動作
に必要な多ポートのレジスタファイルの容量を最適に調
整できる。従って、用途によりハードウェアを最適化
し、ポート数の削減を図ることが可能となる。
型計算機によれば、VLIW型命令を格納する命令バッ
ファと、その命令バッファを外部の命令により制御する
命令バッファ制御部とを設けるようにしたので、以下の
ような効果がある。即ち、並列度が高く高速性が要求さ
れる部分のみVLIW型命令を使用すれば良いようにな
るので、全体のコードサイズを縮小することができ、命
令メモリの容量を大きく取る必要がなく、また、命令長
を大きくとる必要がないようにできる。このため、命令
バスの幅を縮小でき、全体的なハードウェアの小型化が
可能となる。また、VLIW型動作開始命令を通常の命
令を拡張することにより得られるようにするとともに、
通常の命令列からVLIW型命令を作成するようにする
ことにより、既存の計算機の命令セットアーキテクチャ
と上位の互換性を保つように構成でき、従来のソフトウ
ェアを生かした上でデータ処理を並列化し、高速化を図
ることが可能である。更に、上述のような命令バッファ
及び命令バッファ制御部を設けるとともに、VLIW型
命令の実行で使用するレジスタファイルと並列度の低い
通常の命令の実行で使用するレジスタを分離し、命令の
種類により切替えて使用することにより、VLIW動作
に必要な多ポートのレジスタファイルの容量を最適に調
整できる。従って、用途によりハードウェアを最適化
し、ポート数の削減を図ることが可能となる。
【図1】本発明のVLIW型計算機の一実施例のブロッ
ク図である。
ク図である。
【図2】従来ののVLIW型計算機の構成例を示すブロ
ック図である。
ック図である。
【図3】VLIW型動作を開始する命令の形式の説明図
である。
である。
【図4】図1の命令バッファ制御部の詳細な構成を示す
ブロック図である。
ブロック図である。
【図5】命令バッファ制御部の動作を説明するフローチ
ャートである。
ャートである。
【図6】主記憶装置の所定の領域の内容の説明図であ
る。
る。
【図7】図1のレジスタファイルの動作の説明図であ
る。
る。
1 命令レジスタ 2 デコーダ 3 命令バッファ制御部 4 命令バッファ 5 演算器 6 汎用レジスタファイル 7 並列処理用レジスタファイル
Claims (4)
- 【請求項1】 VLIW型命令を通常の命令と同じ形式
で格納する命令レジスタと、 当該命令レジスタから読み出された命令がVLIW型命
令か通常の命令かを判別するデコーダと、 前記VLIW型命令をVLIW型命令の形式で格納する
命令バッファと、 前記デコーダにより前記命令レジスタから読み出された
命令がVLIW型命令であると判別された場合に前記命
令バッファにそのVLIW型命令が格納されているか否
かを判別し、そのVLIW型命令が格納されているとき
は、当該命令バッファからそのVLIW型命令を読み出
して並列処理を行なう命令バッファ制御部とを備えたこ
とを特徴とするVLIW型計算機。 - 【請求項2】 前記命令バッファ制御部は、前記命令レ
ジスタから読み出されたVLIW型命令が前記命令バッ
ファにVLIW型命令の形式で格納されていないとき、
所定の記憶領域から通常の命令の列として読み出された
命令を順次実行しつつ、前記命令バッファにVLIW型
命令の形式に変換したVLIW型命令を格納することを
特徴とする請求項1記載のVLIW型計算機。 - 【請求項3】 前記VLIW型命令の実行時に使用する
並列処理用レジスタファイルと、 前記通常の命令の実行時に使用する汎用レジスタファイ
ルとを別個に備え、 前記命令バッファ制御部は、前記デコーダにより判別さ
れた命令の種類に応じて前記並列処理用レジスタファイ
ル及び汎用レジスタファイルを切替えて使用することを
特徴とする請求項1又は2記載のVLIW型計算機。 - 【請求項4】 前記VLIW型命令を通常の命令の列と
して実行する場合にその実行結果を逐次格納する一時デ
ータ格納レジスタを備え、 当該VLIW型命令に相当する通常の命令をすべて実行
した後に当該一時データ格納レジスタに格納されたデー
タを前記並列処理用レジスタファイルに転送することを
特徴とする請求項3記載のVLIW型計算機。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28026693A JPH07110769A (ja) | 1993-10-13 | 1993-10-13 | Vliw型計算機 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28026693A JPH07110769A (ja) | 1993-10-13 | 1993-10-13 | Vliw型計算機 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07110769A true JPH07110769A (ja) | 1995-04-25 |
Family
ID=17622606
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28026693A Pending JPH07110769A (ja) | 1993-10-13 | 1993-10-13 | Vliw型計算機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07110769A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004515856A (ja) * | 2000-12-07 | 2004-05-27 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ディジタル信号処理装置 |
| KR100535852B1 (ko) * | 1996-01-31 | 2006-05-10 | 가부시끼가이샤 히다치 세이사꾸쇼 | 데이타처리장치 |
| US7136989B2 (en) | 2001-10-01 | 2006-11-14 | Nec Corporation | Parallel computation processor, parallel computation control method and program thereof |
| JP2010257199A (ja) * | 2009-04-24 | 2010-11-11 | Renesas Electronics Corp | プロセッサ及びプロセッサにおける命令発行の制御方法 |
-
1993
- 1993-10-13 JP JP28026693A patent/JPH07110769A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100535852B1 (ko) * | 1996-01-31 | 2006-05-10 | 가부시끼가이샤 히다치 세이사꾸쇼 | 데이타처리장치 |
| JP2004515856A (ja) * | 2000-12-07 | 2004-05-27 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ディジタル信号処理装置 |
| US7136989B2 (en) | 2001-10-01 | 2006-11-14 | Nec Corporation | Parallel computation processor, parallel computation control method and program thereof |
| JP2010257199A (ja) * | 2009-04-24 | 2010-11-11 | Renesas Electronics Corp | プロセッサ及びプロセッサにおける命令発行の制御方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
| CN114625423A (zh) | 用于执行将矩阵变换为行交错格式的指令的系统和方法 | |
| JPS6217252B2 (ja) | ||
| JPH0374434B2 (ja) | ||
| JPS6312029A (ja) | 情報処理装置 | |
| JPS61107431A (ja) | 演算装置 | |
| JPH0412503B2 (ja) | ||
| US6026486A (en) | General purpose processor having a variable bitwidth | |
| JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
| JP2013140472A (ja) | ベクトルプロセッサ | |
| JPS623461B2 (ja) | ||
| JPH096614A (ja) | データ処理装置 | |
| JPH07110769A (ja) | Vliw型計算機 | |
| JPH0461390B2 (ja) | ||
| JPS60178580A (ja) | 命令制御方式 | |
| US5812845A (en) | Method for generating an object code for a pipeline computer process to reduce swapping instruction set | |
| JPS6314239A (ja) | 計算機システムの命令作成ユニット | |
| JPH0222413B2 (ja) | ||
| JP2812610B2 (ja) | パイプライン制御方式 | |
| JPH0218732B2 (ja) | ||
| JP2583614B2 (ja) | ベクトル演算装置 | |
| JP2625510B2 (ja) | 計算機システム | |
| JPS5995646A (ja) | 演算制御装置 | |
| JP3532026B2 (ja) | 演算装置 | |
| JPS60179844A (ja) | 命令再読出し制御方式 |