JPH1083302A - Vliwプロセッサ - Google Patents

Vliwプロセッサ

Info

Publication number
JPH1083302A
JPH1083302A JP8237694A JP23769496A JPH1083302A JP H1083302 A JPH1083302 A JP H1083302A JP 8237694 A JP8237694 A JP 8237694A JP 23769496 A JP23769496 A JP 23769496A JP H1083302 A JPH1083302 A JP H1083302A
Authority
JP
Japan
Prior art keywords
instruction
register
field
register file
source
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
Application number
JP8237694A
Other languages
English (en)
Other versions
JP3737573B2 (ja
Inventor
Ryuji Sakai
隆二 境
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP23769496A priority Critical patent/JP3737573B2/ja
Publication of JPH1083302A publication Critical patent/JPH1083302A/ja
Application granted granted Critical
Publication of JP3737573B2 publication Critical patent/JP3737573B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】長命令語長を伸ばすことなく、扱えるレジスタ
数を増やすことができ、しかもハードウェア構成の複雑
化を招かないで済むようにする。 【解決手段】2n 個のレジスタからなるレジスタファイ
ル107-0,107-1を設け、長命令語中の命令フィー
ルド#0〜#3のフィールド番号“00”〜“11”の
上位ビットの値により、その命令フィールドの命令で参
照するソースオペランド(ここでは第1及び第2ソース
オペランド)の読み出しが可能なレジスタファイルを割
り当て(フィールド#0,#1にはレジスタファイル1
07-0を、フィールド#2,#3にはレジスタファイル
107-1を割り当て)、下位ビットの値により、その命
令フィールドの命令の実行結果の書き込みが可能なレジ
スタファイルを割り当てる(フィールド#0,#2には
レジスタファイル107-0を、フィールド#1,#3に
はレジスタファイル107-1を割り当てる)構成とす
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の命令フィー
ルドを有する長命令語(Very Long InstructionWord:
VLIW)を実行するVLIWプロセッサに関する。
【0002】
【従来の技術】従来より、プロセッサの性能を向上させ
るために、プロセッサの動作周波数を速くするための試
みが行われてきたが、回路の集積度、消費電力、素子の
スピードなどから、物理的限界に近づいてきている。そ
こで今日では、より高速な処理を実現するために、スー
パースカラや、長命令語(VLIW)といった複数の命
令を同時(並列)に実行するアーキテクチャを採用して
いるプロセッサが開発され、広く利用されるようになっ
ている。
【0003】さて、長命令語を実行するプロセッサ(V
LIWプロセッサ)では、その長命令語中の各命令(単
位命令)で使用可能なレジスタ数を2n とした場合、そ
の命令(命令フィールド)中で1つのレジスタ(デステ
ィネーションレジスタまたはソースレジスタ)を指定す
るにはnビットのレジスタ指定部を必要とする。このた
め、例えば3つのオペランドを扱う命令の例では、図1
6(a)に示すように、nビットのレジスタ指定部を3
オペランド分必要とし、1命令全体ではレジスタ指定の
ために必要なビット数は3nビットとなる。
【0004】もし、メモリアクセス回数を少なくして高
速処理を実現するために、扱えるレジスタ数を2倍の2
n+1 個にしようとすると、各命令中のレジスタ指定部
(ここでは3つのレジスタ指定部OP1〜OP3)のビ
ット数を、図16(a)に示すnビットから、図16
(b)に示すようにn+1ビットに増やす必要があり、
3オペランドの例では、1命令全体で3ビット増やさな
ければならない。
【0005】一方、上記の長命令語を実行するプロセッ
サ(VLIWプロセッサ)で、より高い性能を実現しよ
うとすると、同時実行可能命令(単位命令)数を増やし
て、並列度を上げる必要がある。並列度を上げるには、
長命令語長を伸ばして命令フィールド数を増やせばよ
い。しかし、長命令語中の命令フィールド数(命令数)
を増やすと、一度に(1サイクルで)読み出さなければ
ならないレジスタ数(レジスタファイルのポート数)も
増大し、またパイプライン処理に必要なバイパス回路
(例えば、演算結果をパイプラインの書き込みステージ
を経ずに演算器側に導くためのバイパス回路)の規模も
大きくなる。このため、ハードウェアの複雑度が増大
し、動作周波数を速くするのを妨げる要因となる。
【0006】図17は、このような例を、4命令並列に
実行可能なVLIWプロセッサのパイプライン構成につ
いて示す。ここでは、並列実行可能な命令数4に一致す
る数の2入力1出力の演算器221-0〜221-3と、そ
の演算器221-0〜221-3の演算結果を一時保持する
バッファ222-0〜222-3からなるラッチ回路222
と、このバッファ222-0〜222-3の出力を演算器2
21-0〜221-3の左側入力(L入力)または右側入力
(R入力)に選択的にバイパスするためのバイパス回路
223と、並列実行可能な命令数4に一致する数の入力
ポート並びにその2倍の数の出力ポートを持つレジスタ
ファイル224とが設けられる。
【0007】バイパス回路223は、演算器221-0〜
221-3の左側入力に対応して設けられたマルチプレク
サ(MPX)223L0 〜223L3 と、演算器221
-0〜221-3の右側入力に対応して設けられたマルチプ
レクサ223R0 〜223R3 とから構成される。マル
チプレクサ223L0 〜223L3 ,223R0 〜22
3R3 は、レジスタファイル224のそれぞれ異なる出
力ポートと1対1で対応しており、対応する出力ポート
からの出力及びバッファ222-0〜222-3の出力の1
つを選択して演算器221-0〜221-3の対応する入力
側に出力する。
【0008】このように、並列実行可能な命令数が4の
場合、バイパス回路を構成するマルチプレクサの数は2
×4、各マルチプレクサの入力数は4+1=5となる。
したがって、バイパス回路内の全マルチプレクサの総入
力数、即ちバイパス回路の入力ポート数は5×2×4=
40となる。
【0009】一般に、従来のVLIWプロセッサでは、
実行すべき長命令語の命令フィールド数、即ち同時実行
命令数(並列度)がNの場合、3つのオペランドを扱う
命令形式の例では、レジスタファイルのポート数は入力
ポートがN、出力ポートが2Nとなり、バイパス回路の
ポート数は入力ポートが(N+1)×2N(バイパス回
路を構成する2N個のマルチプレクサの入力数はN+
1)、出力ポートが2Nとなる。
【0010】
【発明が解決しようとする課題】上記したように、従来
のVLIWプロセッサでは、扱えるレジスタ数を増やそ
うとすると、命令(単位命令)中のレジスタ指定部のビ
ット数を増やさなければならず、長命令語(VLIW)
長を伸ばさなければならないという問題があった。
【0011】また従来のVLIWプロセッサでは、高並
列度にすると、一度に読み出さなければならないレジス
タ数が増加してレジスタファイルのポート数の増加を招
き、更にパイプライン処理に必要なバイパス回路の規模
が大きくなってハードウェアの複雑度が増大するという
問題があった。
【0012】本発明は上記事情を考慮してなされたもの
でその目的は、扱えるレジスタ数が長命令語(VLI
W)長を伸ばすことなく増やすことができ、しかもハー
ドウェア構成の複雑化を招かないで済む高性能なVLI
Wプロセッサを提供することにある。
【0013】
【課題を解決するための手段】本発明は、複数の命令フ
ィールドを有する長命令語(VLIW)を実行するVL
IWプロセッサにおいて、複数のレジスタファイルと、
長命令語中の各命令フィールドのフィールド番号の第1
の所定部分をもとに、その命令フィールドの命令で参照
するソースオペランドの読み出しが可能なレジスタファ
イルを割り当てると共に、上記各命令フィールドのフィ
ールド番号の上記第1の所定部分とは少なくとも一部が
異なる第2の所定部分をもとに、その命令フィールドの
命令の実行結果の書き込みが可能なレジスタファイルを
割り当てる割り当て手段とを備えたことを特徴とする。
また、書き込みが可能なレジスタファイルの割り当てを
例にとると、上記第1の所定部分と、各命令フィールド
のデスティネーションレジスタ指定部の一部(上位ビッ
ト)との連結情報によりレジスタファイルの割り当てを
行うことも可能である。更に、上記第1の所定部分と第
2の所定部分の一部を重複させることも可能である。
【0014】上記複数のレジスタファイル内の各レジス
タには、それぞれ固有のレジスタ番号が付けられてい
る。そこで、この固有のレジスタ番号を持つレジスタの
指定のためには、長命令語中の各命令フィールドのソー
スレジスタ指定部の示すレジスタ番号を、その命令フィ
ールドのフィールド番号の上記第1の所定部分により修
飾し、上記各命令フィールドのデスティネーションレジ
スタ指定部の示すレジスタ番号を、その命令フィールド
のフィールド番号の前記第1の所定部分とは異なる第2
の所定部分により修飾するとよい。また、このレジスタ
番号の修飾には、命令フィールドのソースレジスタ指定
部の示すレジスタ番号の上位に、その命令フィールドの
フィールド番号の第1の所定部分を付加し、各命令フィ
ールドのデスティネーションレジスタ指定部の示すレジ
スタ番号の上位に、その命令フィールドのフィールド番
号の第2の所定部分を付加する方法を適用するとよい。
【0015】上記構成のVLIWプロセッサにおいて
は、長命令語の各命令フィールド(の命令)のフィール
ド番号により、その命令フィールドの命令で参照するソ
ースオペランドの読み出しが可能なレジスタファイル
と、その命令フィールドの命令の実行結果の書き込みが
可能なレジスタファイルとが決められるため、各命令フ
ィールドのレジスタ指定部(ソースレジスタ指定部、デ
スティネーションレジスタ指定部)では、そのレジスタ
ファイル内のレジスタ位置(相対位置、相対レジスタ番
号)を指定するだけでよく、長命令語全体で扱えるレジ
スタ数を増やしても、命令フィールドのレジスタ指定部
の構成ビット数を増やさなくても済む。また、レジスタ
ファイルの決定に、フィールド番号だけでなく、レジス
タ指定部の一部(上位ビット)を用いる場合には、命令
フィールドのレジスタ指定部の構成ビット数を増やす必
要があるが、フィールド番号を利用しない場合に比べれ
ば、増加するビット数は少なくて済む。
【0016】しかも上記構成のVLIWプロセッサにお
いては、長命令語の各命令フィールド毎に、ソース指定
とデスティネーション指定のそれぞれについて、対象と
なるレジスタファイルを制限しているため、従来に比べ
てレジスタファイルの入力ポート数及び出力ポート数を
減らすことが可能となる。同様の理由で、バイパス回路
についても、入力ポート数及び出力ポート数を減らすこ
とが可能となる。これにより、並列度を上げても(長命
令語中の命令フィールド数を増やしても)ハードウェア
の複雑度が著しく増大するのを防ぐことができる。
【0017】更に、上記構成のVLIWプロセッサにお
いては、長命令語の各命令フィールド毎に使用可能なレ
ジスタファイルを制限していながら、ソース指定では、
各命令フィールドのフィールド番号の第1の所定部分を
用いたレジスタ修飾が、デスティネーション指定では、
この第1の所定部分とは異なる第2の所定部分を用いた
レジスタ修飾が適用されることから、ある命令フィール
ドの命令の演算結果を他の命令フィールドの命令でも参
照できる。
【0018】このようなVLIWプロセッサで実行可能
なプログラム(オブジェクトプログラム)、即ち長命令
語中の各命令フィールドのフィールド番号によるレジス
タ番号の修飾により、各命令フィールド毎に(ソース指
定とデスティネーション指定のそれぞれについて)使用
可能なレジスタファイルを制限することを可能とする命
令語形式に従ったオブジェクトプログラムを生成するに
は、以下に述べる命令スケジュールとレジスタアロケー
ション(レジスタ割り当て)を行うコンパイル機能を用
意すればよい。
【0019】例えば、トップダウン方式で命令スケジュ
ールを行う場合には、スケジュールの対象を命令Iであ
るとすると、当該命令Iが参照するソースオペランドを
定義した命令(が既に配置されている命令フィールド)
のフィールド番号を調べて、そのフィールド番号とソー
スオペランドがマッチしているか否か(3オペランドを
扱う命令の例では、2つのソースオペランドを定義した
2つの命令のフィールド番号で決まるデスティネーショ
ン先としてのレジスタファイルが一致しているか否か)
を判断し、マッチしていれば、命令Iを、当該レジスタ
ファイル内レジスタがソース指定可能な命令フィールド
に配置し、マッチしていなければ、マッチするように、
ソースオペランドをレジスタファイル間でコピーするコ
ピー命令を生成して、そのコピー命令を、そのソース先
とデスティネーション先で決まる命令フィールドに配置
し、しかる後に、コピー命令のコピー先(デスティネー
ション先)レジスタファイルをソースレジスタファイル
として指定可能な命令フィールドに、命令Iを配置す
る。
【0020】また、ボトムアップ方式で命令スケジュー
ルを行う場合には、スケジュールの対象を命令Iである
とすると、当該命令Iが定義する仮想レジスタ(変数)
を使用する全ての命令(が既に配置されている命令フィ
ールド)のフィールド番号を調べ、上記仮想レジスタを
使用する命令のフィールド番号で決まるソース指定可能
なレジスタファイルが、その命令数に無関係に1つだけ
である(この状態を、仮想レジスタとフィールド番号が
マッチしていると呼ぶ)か否かを判断し、仮想レジスタ
とフィールド番号がマッチしているならば、aを使う命
令のフィールド番号で決まる命令フィールドに命令Iを
配置し、マッチしていなければ、aを使う全ての命令の
フィールド番号で決まるレジスタファイルにaが存在す
るように、aを目的のレジスタファイルにコピーするコ
ピー命令を生成して、そのコピー命令を、そのソース先
とデスティネーション先で決まる命令フィールドに配置
し、しかる後に、コピー命令のコピー元レジスタファイ
ルがデスティネーション指定可能な命令フィールドに、
命令Iを配置する。
【0021】以上の命令スケジュール処理を、トップダ
ウン方式の場合であれば始端命令から順に終端命令まで
行い、ボトムアップ方式であれば終端命令から始端命令
まで行うと、スケジュールされた各命令をスキャンし
て、各変数(仮想レジスタ)が参照或いは定義される命
令のフィールド番号から、全ての変数をレジスタファイ
ル別にクラス分けし、各クラスの各変数について、クラ
ス別に、そのクラスに対応するレジスタファイル内の物
理レジスタを割り当てるレジスタアロケーション処理を
行えばよい。
【0022】
【発明の実施の形態】以下、本発明の実施の形態につき
図面を参照して説明する。 [第1の実施形態]図1は本発明の第1の実施形態に係
るVLIWプロセッサの概略構成を示すブロック図であ
る。
【0023】図1に示すVLIWプロセッサは、例えば
3オペランド命令形式の4つの命令フィールド#0〜#
3を持つ4並列の長命令語(4並列VLIW)を実行す
る演算プロセッサであり、命令フェッチ機構101、命
令デコード機構102、パイプラインレジスタ(PR)
103〜105、演算器106-0〜106-3、レジスタ
ファイル107-0,107-1、デコード(D)ステージ
のバイパス回路108-0,108-1、実行(E)ステー
ジのバイパス回路109-0,109-1、及びラッチ回路
110,111を備えている。
【0024】命令フェッチ機構101は、(図示せぬ命
令キャッシュ等から)パイプラインで長命令語をフェッ
チする(読み出す)Iステージ(命令フェッチステー
ジ)を司る。
【0025】命令デコード機構102は、命令フェッチ
機構101によりフェッチされた長命令語の命令フィー
ルド#0〜#3に配置されている各命令(単位命令)を
パイプラインで解読するDステージ(命令デコードステ
ージ)を司る。本実施形態では、3オペランドの命令形
式の命令、即ち3つのレジスタ指定部(デスティネーシ
ョンレジスタ指定部、第1及び第2ソースレジスタ指定
部)を持つ命令(例えば演算命令)が用いられる。した
がって、命令デコード機構102により演算命令がデコ
ードされた場合、そのデコード結果には、演算結果の格
納先を示すディスティネーションレジスタ番号(OP
1)、及び演算に使用するソースオペランドが格納され
ているレジスタを指定する2つのソースレジスタ番号
(第1及び第2ソースレジスタ番号OP2,OP3)が
含まれる。
【0026】パイプラインレジスタ103は、命令フェ
ッチ機構101によりフェッチされた長命令語をDステ
ージの期間保持しておくのに用いられ、パイプラインレ
ジスタ104は、命令デコード機構102のデコード結
果をDステージに後続するEステージ(命令実行ステー
ジ)の期間保持しておくのに用いられ、パイプラインレ
ジスタ105は、パイプラインレジスタ103の出力を
Eステージに後続するWステージ(書き込みステージ)
の期間保持しておくのに用いられる。
【0027】演算器106-0〜106-3は、長命令語中
の命令フィールド#0〜#3の命令の指示する演算の実
行(Eステージ)を司る。レジスタファイル107-0
(#0),107-1(#1)は、VLIWプロセッサで
の演算結果を記憶するための、それぞれ2n 個のレジス
タから構成される。レジスタファイル107-0内の2n
個のレジスタには、それぞれ0〜2n −1のレジスタ番
号が割り当てられ、レジスタファイル107-1内の2n
個のレジスタには、それぞれ2n 〜2×2n −1のレジ
スタ番号、即ち2n 〜2n+1 −1のレジスタ番号が割り
当てられている。ここで、レジスタ番号のビット数はn
+1ビットであり、最上位ビットにより該当するレジス
タが存在するレジスタファイルが指定され(“0”の場
合はレジスタファイル107-0、“1”の場合はレジス
タファイル107-1)、残りのnビット(下位nビッ
ト)により、そのレジスタファイル内のレジスタ位置が
指定される。
【0028】一方、図1のVLIWプロセッサで適用さ
れる長命令語中の各命令の3つのレジスタ指定部のビッ
ト長はnビットである。この場合、レジスタ指定部だけ
では、レジスタファイル107-0,107-1により提供
される合計2n+1 個のレジスタを指定することはできな
い。
【0029】そこで本実施形態では、以下に述べるよう
に、長命令語の各命令フィールド#0〜#3毎(で且つ
ソース指定とデスティネーション指定の別毎)に使用可
能なレジスタをレジスタファイル107-0または107
-1の一方に制限し、その命令フィールドの命令中のnビ
ットの各レジスタ指定部により、その制限されたレジス
タファイル内のレジスタ位置(n+1ビットのレジスタ
番号の最上位ビットを除くnビット)が示される構成と
することにより、レジスタ指定部のビット長がnビット
でありながら、長命令語全体で2n+1 個のレジスタを指
定できるようにしている。
【0030】まず本実施形態では、命令フィールド#
0,#1(フィールド番号0,1)の命令の指示する演
算に用いるソースオペランドの参照先には、レジスタフ
ァイル107-0が固定的に割り当てられ、命令フィール
ド#2,#3(フィールド番号2,3)の命令の指示す
る演算に用いるソースオペランドの参照先には、レジス
タファイル107-1が固定的に割り当てられる。
【0031】また、命令フィールド#0,#2(フィー
ルド番号0,2)の命令の指示する演算の実行結果、即
ち演算器106-0〜106-3のうちの演算器106-0,
106-2の演算結果の書き込み先には、レジスタファイ
ル107-0が固定的に割り当てられ、命令フィールド#
1,#3(フィールド番号1,3)の命令の指示する演
算の実行結果、即ち演算器106-0〜106-3のうちの
演算器106-1,106-3の演算結果の書き込み先に
は、レジスタファイル107-1が固定的に割り当てられ
る。
【0032】以上の割り当ては、演算器106-0,10
6-2の出力をレジスタファイル107-0の入力ポート
に、演算器106-1,106-3の出力をレジスタファイ
ル107-0の入力ポートに、それぞれ(ラッチ回路11
1を介して)接続すると共に、レジスタファイル107
-0の出力ポートを(バイパス回路108-0、ラッチ回路
110、バイパス回路109-0を介して)演算器106
-0,106-1の入力側に、レジスタファイル107-1の
出力ポートを(バイパス回路108-1、ラッチ回路11
0、バイパス回路109-1を介して)演算器106-2,
106-3の入力側に、それぞれ接続することで実現され
る。また演算器106-0,106-2の出力はバイパス回
路108-0,109-0にも接続され、演算器106-1,
106-3の出力はバイパス回路108-1,109-1にも
接続される。
【0033】以上の構成により本実施形態では、長命令
語中の各命令のnビットのレジスタ指定部により、レジ
スタファイル内のレジスタ位置、即ちn+1ビットのレ
ジスタ番号の最上位ビットを除くnビットが指定され、
そのレジスタ位置のレジスタが存在するレジスタファイ
ルの情報(レジスタファイル107-0または107-1の
いずれに存在するかの情報)、即ちn+1ビットのレジ
スタ番号の最上位ビットは、命令位置(命令フィールド
番号)により決定されることになる。
【0034】これは、各命令フィールドの3つのレジス
タ指定部(デスティネーションレジスタ指定部、第1及
び第2ソースレジスタ指定部)で指定されるnビットの
レジスタ番号(OP1,OP2,OP3)を命令位置
(命令フィールド番号)により修飾して、n+1ビット
のレジスタ番号として指定することと等価である。
【0035】ここでは、長命令語の命令フィールド#0
〜#3のフィールド番号0(“00”)〜3(“1
1”)を2ビット“B0 B1 ”で表すと、ビットB0 を
ソースレジスタ番号の修飾(レジスタファイル指定)
に、ビットB1 をデスティネーションレジスタ番号の修
飾(レジスタファイル指定)に用いていることになる。
この場合、ソースレジスタとしては、ビットB0 が
“0”の命令フィールド#0,#1ではレジスタファイ
ル107-0内のレジスタが、ビットB0 が“1”の命令
フィールド#2,#3ではレジスタファイル107-1内
のレジスタが指定される。一方、デスティネーションレ
ジスタとしては、ビットB1 が“0”の命令フィールド
#0,#2ではレジスタファイル107-0内のレジスタ
が、ビットB1 が“1”の命令フィールド#1,#3で
はレジスタファイル107-1内のレジスタが指定され
る。
【0036】レジスタファイル107-0は、並列実行可
能な命令数4の半分である2つの入力ポートと、入力ポ
ート数の2倍の4つの出力ポート(P00,P01,P02,
P03)とを持つ。レジスタファイル107-1もまた、並
列実行可能な命令数4の半分である2つの入力ポート
と、入力ポート数の2倍の4つの出力ポート(P10,P
11,P12,P13)とを持つ。
【0037】バイパス回路108-0はDステージに対応
するもので、演算器106-0,106-1での演算(命令
フィールド#0,#1の命令の指示する演算)に用いら
れる4つのソースオペランドとして、基本的には命令フ
ィールド#0,#1の命令中の各ソースレジスタ指定部
の示すレジスタファイル107-0内のレジスタから読み
出されるデータを選択する。但し、ソースレジスタが演
算器106-0または106-2の演算結果の格納先レジス
タ(デスティネーションレジスタ)に一致するものにつ
いては、バイパス回路108-0は、そのレジスタのデー
タではなくて、その演算結果、即ち2サイクル前の命令
の演算結果を選択するDステージバイパスを行う。
【0038】バイパス回路108-1もバイパス回路10
8-0と同様にDステージに対応するもので、演算器10
6-2,106-3での演算(命令フィールド#2,#3の
命令の指示する演算)に用いられる4つのソースオペラ
ンドとして、基本的には命令フィールド#2,#3の命
令中の各ソースレジスタ指定部の示すレジスタファイル
107-1内のレジスタから読み出されるデータを選択す
る。但し、ソースレジスタが演算器106-1または10
6-3の演算結果の格納先レジスタ(デスティネーション
レジスタ)に一致するものについては、バイパス回路1
08-1は、そのレジスタのデータではなくて、その演算
結果、即ち2サイクル前の命令の演算結果を選択するD
ステージバイパスを行う。
【0039】バイパス回路109-0はEステージに対応
するもので、演算器106-0,106-1での演算(命令
フィールド#0,#1の命令の指示する演算)に用いら
れる4つのソースオペランドとして、基本的にはバイパ
ス回路108-0からラッチ回路110を介して導かれる
データを選択する。但し、命令フィールド#0,#1の
命令中の各ソースレジスタ指定部の示すソースレジスタ
のうち、演算器106-0または106-2の演算結果の格
納先レジスタ(デスティネーションレジスタ)に一致す
るものについては、バイパス回路109-0は、そのレジ
スタのデータ(バイパス回路108-0からラッチ回路1
10を介して導かれるデータ)ではなくて、その演算結
果、即ち1サイクル前(直前)の命令の演算結果を選択
するEステージバイパスを行う。
【0040】バイパス回路109-1もバイパス回路10
9-0と同様にEステージに対応するもので、演算器10
6-2,106-3での演算(命令フィールド#2,#3の
命令の指示する演算)に用いられる4つのソースオペラ
ンドとして、基本的にはバイパス回路108-1からラッ
チ回路110を介して導かれるデータを選択する。但
し、命令フィールド#2,#3の命令中の各ソースレジ
スタ指定部の示すソースレジスタのうち、演算器106
-1または106-3の演算結果の格納先レジスタ(デステ
ィネーションレジスタ)に一致するものについては、バ
イパス回路109-1は、そのレジスタのデータ(バイパ
ス回路108-1からラッチ回路110を介して導かれる
データ)ではなくて、その演算結果(1サイクル前の命
令の演算結果)を選択するEステージバイパスを行う。
【0041】ラッチ回路110は、バイパス回路108
-0,108-1によって選択されたソースオペランドをE
ステージの期間保持しておくのに用いられ、ラッチ回路
111は、バイパス回路109-0,109-1によって選
択されたソースオペランドをWステージの期間保持して
おくのに用いられる。
【0042】図2は、バイパス回路109-0,109-1
の内部構成を、その周辺の構成と共に示す。バイパス回
路109-0は、演算器106-0,106-1の左側入力に
対応して設けられたマルチプレクサ(MPX)119L
0 ,119L1 と、演算器106-0,106-1の右側入
力に対応して設けられたマルチプレクサ(MPX)11
9R0 ,119R1 とから構成される。
【0043】マルチプレクサ119L0 ,119R0 ,
119L1 ,119R1 は、レジスタファイル107-0
の出力ポートP00,P01,P02,P03と1対1で対応し
ており、対応する出力ポートから読み出されて(図1中
のバイパス回路108-0、ラッチ回路110を介して)
導かれるデータ及び(ラッチ回路111を介して導かれ
る)演算器106-0,106-2の演算結果の1つを選択
して演算器106-0,106-1の対応する入力側に出力
する。
【0044】バイパス回路109-1は、演算器106-
2,106-3の左側入力に対応して設けられたマルチプ
レクサ(MPX)119L2 ,119L3 と、演算器1
06-2,106-3の右側入力に対応して設けられたマル
チプレクサ(MPX)119R2 ,119R3 とから構
成される。
【0045】マルチプレクサ119L2 ,119R2 ,
119L3 ,119R3 は、レジスタファイル107-1
の出力ポートP10,P11,P12,P13と1対1で対応し
ており、対応する出力ポートから読み出されて(図1中
のバイパス回路108-1、ラッチ回路110を介して)
導かれるデータ及び(ラッチ回路111を介して導かれ
る)演算器106-1,106-3の演算結果の1つを選択
して演算器106-2,106-3の対応する入力側に出力
する。
【0046】ラッチ回路111は、演算器106-0〜1
06-3の演算結果をWステージの期間保持しておくバッ
ファ111-0〜111-3から構成される。バッファ11
1-0,111-2の保持データはレジスタファイル107
-0への書き込みに用いられ、バッファ111-1,111
-3の保持データはレジスタファイル107-1への書き込
みに用いられる。
【0047】なお、図2では、バイパス回路108-0,
108-1及びラッチ回路110が省略されているが、そ
のハードウェア構成は、バイパス回路109-0,109
-1及びラッチ回路111と同様である。
【0048】次に、図1及び図2の構成における動作を
説明する。図1のVLIWプロセッサで適用されるパイ
プラインは、(1)命令フェッチが行われるIステー
ジ、(2)命令デコードとデコード結果に基づくレジス
タ読み出し(ソースオペランド読み出し)が行われるD
ステージ、(3)命令実行(演算)が行われるEステー
ジ、(4)演算結果のレジスタへの書き込みが行われる
Wステージ、の4ステージで構成されるものとする。な
お、命令デコード及びレジスタ読み出しや、レジスタ書
き込みに2ステージを必要とする、5ステージや6ステ
ージで構成されるパイプラインもある。
【0049】まず、Iステージでは、命令フェッチ機構
101により命令キャッシュ等から長命令語(VLI
W)がフェッチされる。この命令フェッチ機構101に
よりフェッチされた長命令語はパイプラインレジスタ1
03に保持され、命令デコード機構102によるDステ
ージでの命令デコードに供される。
【0050】このDステージでは、命令デコード機構1
02によりデコードされた命令フィールド#i(i=0
〜3)の命令が例えば演算命令の場合には、その命令の
フィールド番号(2ビット)を“B0 B1 ”とすると、
その上位側ビットB0 の値で決まるレジスタファイル
(B0 =0であればレジスタファイル107-0、B0 =
1であればレジスタファイル107-1)を対象に、その
命令の第1及び第2ソースレジスタ指定部で指定される
(当該レジスタファイル内の)レジスタからのデータ
(ソースオペランド)読み出しが行われる。
【0051】したがって、フィールド番号“B0 B1 ”
中のB0 が“0”、即ちフィールド番号が0(“0
0”),1(“01”)の命令フィールド#0,#1の
命令についてはレジスタファイル107-0を対象に、B
0 が“1”、即ちフィールド番号が2(“10”),3
(“11”)の命令フィールド#2,#3の命令につい
てはレジスタファイル107-1を対象に、それぞれその
命令フィールドの第1及び第2ソースレジスタ指定部で
指定される(当該レジスタファイル内の)レジスタから
のソースオペランド読み出しが行われる。
【0052】このことは、各命令フィールド#0〜#3
の第1及び第2ソースレジスタ指定部の示すnビットの
レジスタ番号(OP2,OP3)の上位に、その命令フ
ィールド#0〜#3のフィールド番号“B0 B1 ”中の
ビットB0 を付加するレジスタ番号修飾が行われ、その
B0 が付加されたn+1ビットのソースレジスタ番号
(第1及び第2ソースレジスタ番号)によりソースレジ
スタが指定されて、そのソースレジスタからのデータ読
み出しが行われることと等価である。ここで、n+1ビ
ットのソースレジスタ番号の最上位ビット、即ちビット
B0 は“0”でレジスタファイル107-0を、“1”で
レジスタファイル107-1を指定し、当該最上位ビット
を除くnビット、即ちソースレジスタ指定部の示すnビ
ットは、そのレジスタファイル内のソースレジスタ位置
を示す。
【0053】なお、本実施形態では、第1ソースレジス
タ指定部により、演算器の左側入力用のソースオペラン
ドのレジスタ指定が、第2ソースレジスタ指定部によ
り、演算器の右側入力用のソースオペランドのレジスタ
指定が行われるものとする。
【0054】以上の命令フィールドのフィールド番号に
よるソースレジスタ番号の修飾について、主としてフィ
ールド番号が1(“01”)の命令フィールド#1を例
に、後述するデスティネーションレジスタ番号の修飾と
共に図3に示す。このレジスタ番号修飾により、命令中
のソースレジスタ指定部がnビット長であっても、長命
令語全体で2n+1 個のレジスタを扱うことができる。
【0055】さて、命令フィールド#0,#1の命令の
第1ソースレジスタ指定部で指定された(レジスタファ
イル107-0内の)レジスタからの読み出しデータは、
演算器106-0,106-1の左側入力に対応するレジス
タファイル107-0の出力ポートP00,P02から、第2
ソースレジスタ指定部で指定された(レジスタファイル
107-0内の)レジスタからの読み出しデータは、演算
器106-0,106-1の右側入力に対応するレジスタフ
ァイル107-0の出力ポートP01,P03から、それぞれ
出力されてバイパス回路108-0の対応する入力ポート
に導かれる。
【0056】同様に、命令フィールド#2,#3の命令
の第1ソースレジスタ指定部で指定された(レジスタフ
ァイル107-1内の)レジスタからの読み出しデータ
は、演算器106-2,106-3の左側入力に対応するレ
ジスタファイル107-1の出力ポートP10,P12から、
第2ソースレジスタ指定部で指定された(レジスタファ
イル107-1内の)レジスタからの読み出しデータは、
演算器106-2,106-3の右側入力に対応するレジス
タファイル107-1の出力ポートP11,P13から、それ
ぞれ出力されてバイパス回路108-1の対応する入力ポ
ートに導かれる。
【0057】バイパス回路108-0には、命令デコード
機構102によりデコードされた現在Dステージにある
長命令語中のデコード結果のうちの命令フィールド#
0,#1の第1及び第2ソースレジスタ指定部のデコー
ド結果、即ち第1及び第2ソースレジスタ番号(の下位
n−1ビット)と、パイプラインレジスタ105に保持
されている現在Wステージにある長命令語中のデコード
結果のうちの命令フィールド#0,#2のデスティネー
ションレジスタ指定部のデコード結果、即ちデスティネ
ーションレジスタ番号(の下位n−1ビット)とが導か
れる。
【0058】一方、バイパス回路108-1には、命令デ
コード機構102によりデコードされた現在Dステージ
にある長命令語中のデコード結果のうちの命令フィール
ド#2,#3の第1及び第2ソースレジスタ指定部のデ
コード結果、即ち第1及び第2ソースレジスタ番号(の
下位n−1ビット)と、パイプラインレジスタ105に
保持されている現在Wステージにある長命令語中のデコ
ード結果のうちの命令フィールド#1,#3のデスティ
ネーションレジスタ指定部のデコード結果、即ちデステ
ィネーションレジスタ番号(の下位n−1ビット)とが
導かれる。
【0059】バイパス回路108-0は、Dステージにあ
る命令の命令フィールド#0,#1で指定される第1及
び第2ソースレジスタ番号(の下位n−1ビット)を、
Wステージにある命令(Dステージにある命令より2サ
イクル前の命令)の命令フィールド#0,#2で指定さ
れるデスティネーションレジスタ番号(の下位n−1ビ
ット)とそれぞれ比較する。
【0060】そしてバイパス回路108-0は、デスティ
ネーションレジスタ番号に一致していないソースレジス
タ番号の指定するソースオペランドとして、レジスタフ
ァイル107-0内の当該ソースレジスタ番号の指定する
レジスタからの読み出しデータを選択する。
【0061】またバイパス回路108-0は、デスティネ
ーションレジスタ番号に一致しているソースレジスタ番
号の指定するソースオペランドとして、(ラッチ回路1
11を介して導かれる)当該デスティネーションレジス
タ番号の指定するレジスタへの書き込みに用いられる演
算器(演算器106-0または106-2)の演算結果を選
択するDステージバイパスを行う。もし、このDステー
ジバイパスが行われないならば、2サイクル前の長命令
語(の命令フィールド#0または#2)の指定により実
行された演算器106-0または106-2の演算結果がレ
ジスタファイル107-0内のデスティネーションレジス
タ番号の指定するレジスタに書き込まれるまでは、現在
Dステージにある命令の長命令語(の命令フィールド#
0または#1)で指定される当該レジスタからのデータ
読み出しを待たなければならず、パイプラインの流れが
乱れる。
【0062】一方、バイパス回路108-1は、Dステー
ジにある命令の命令フィールド#2,#3で指定される
第1及び第2ソースレジスタ番号(の下位n−1ビッ
ト)を、Wステージにある長命令語(Dステージにある
長命令語より2サイクル前の長命令語)の命令フィール
ド#1,#3で指定されるデスティネーションレジスタ
番号(の下位n−1ビット)とそれぞれ比較する。
【0063】そしてバイパス回路108-1は、デスティ
ネーションレジスタ番号に一致していないソースレジス
タ番号の指定するソースオペランドとして、レジスタフ
ァイル107-1内の当該ソースレジスタ番号の指定する
レジスタからの読み出しデータを選択する。
【0064】またバイパス回路108-1は、デスティネ
ーションレジスタ番号に一致しているソースレジスタ番
号の指定するソースオペランドとして、(ラッチ回路1
11を介して導かれる)当該デスティネーションレジス
タ番号の指定するレジスタへの書き込みに用いられる演
算器(演算器106-1または106-3)の演算結果を選
択するDステージバイパスを行う。
【0065】バイパス回路108-0により選択された、
Dステージにある長命令語の命令フィールド#0,#1
の指定する4つのソースオペランド、及びバイパス回路
108-1により選択された、Dステージにある長命令語
の命令フィールド#2,#3の指定する4つのソースオ
ペランドは、ラッチ回路110に保持されて、Eステー
ジの期間、対応するバイパス回路109-0,109-1に
導かれる。
【0066】このとき、当該長命令語に対する命令デコ
ード機構102でのデコード結果がパイプラインレジス
タ104に移される。同時に、このパイプラインレジス
タ104に保持されていた、1サイクル前の長命令語の
デコード結果はパイプラインレジスタ105に移され
る。
【0067】バイパス回路109-0には、パイプライン
レジスタ104に保持されている現在Eステージにある
長命令語中のデコード結果のうちの命令フィールド#
0,#1の第1及び第2ソースレジスタ指定部のデコー
ド結果、即ち第1及び第2ソースレジスタ番号と、パイ
プラインレジスタ105に保持されている現在Wステー
ジにある長命令語中のデコード結果のうちの命令フィー
ルド#0,#2のデスティネーションレジスタ指定部の
デコード結果、即ちデスティネーションレジスタ番号と
が導かれる。
【0068】一方、バイパス回路109-1には、パイプ
ラインレジスタ104に保持されている現在Eステージ
にある長命令語中のデコード結果のうちの命令フィール
ド#2,#3の第1及び第2ソースレジスタ指定部のデ
コード結果、即ち第1及び第2ソースレジスタ番号(の
下位n−1ビット)と、パイプラインレジスタ105に
保持されている現在Wステージにある長命令語中のデコ
ード結果のうちの命令フィールド#1,#3のデスティ
ネーションレジスタ指定部のデコード結果、即ちデステ
ィネーションレジスタ番号(の下位n−1ビット)とが
導かれる。
【0069】バイパス回路109-0は、Eステージにあ
る命令の命令フィールド#0,#1で指定される第1及
び第2ソースレジスタ番号(の下位n−1ビット)を、
Wステージにある命令(Eステージにある命令の直前の
命令)の命令フィールド#0,#2で指定されるデステ
ィネーションレジスタ番号(の下位n−1ビット)とそ
れぞれ比較する。
【0070】そしてバイパス回路109-0は、デスティ
ネーションレジスタ番号に一致していないソースレジス
タ番号の指定するソースオペランドとして、バイパス回
路108-0により選択されてラッチ回路110を介して
導かれる該当するソースオペランドを選択する。
【0071】またバイパス回路109-0は、デスティネ
ーションレジスタ番号に一致しているソースレジスタ番
号の指定するソースオペランドとして、(ラッチ回路1
11を介して導かれる)当該デスティネーションレジス
タ番号の指定するレジスタへの書き込みに用いられる演
算器(演算器106-0または106-2)の演算結果を選
択するEステージバイパスを行う。
【0072】一方、バイパス回路109-1は、Eステー
ジにある命令の命令フィールド#2,#3で指定される
第1及び第2ソースレジスタ番号(の下位n−1ビッ
ト)を、Wステージにある命令(Eステージにある命令
の直前の命令)の命令フィールド#1,#3で指定され
るデスティネーションレジスタ番号(の下位n−1ビッ
ト)とそれぞれ比較する。
【0073】そしてバイパス回路109-1は、デスティ
ネーションレジスタ番号に一致していないソースレジス
タ番号の指定するソースオペランドとして、バイパス回
路108-1により選択されてラッチ回路110を介して
導かれる該当するソースオペランドを選択する。
【0074】またバイパス回路109-1は、デスティネ
ーションレジスタ番号に一致しているソースレジスタ番
号の指定するソースオペランドとして、(ラッチ回路1
11を介して導かれる)当該デスティネーションレジス
タ番号の指定するレジスタへの書き込みに用いられる演
算器(演算器106-1または106-3)の演算結果を選
択するEステージバイパスを行う。
【0075】以上のバイパス回路109-0,109-1の
選択動作の詳細を説明する。まず、バイパス回路109
-0内のマルチプレクサ119L0 ,119L1 は、Eス
テージにある命令の命令フィールド#0,#1で指定さ
れる第1ソースレジスタ番号(の下位n−1ビット)
が、Wステージにある命令の命令フィールド#0及び#
2で指定されるデスティネーションレジスタ番号(の下
位n−1ビット)のいずれにも一致していない場合に
は、バイパス回路108-0により演算器106-0,10
6-1の左側入力用として選択されてラッチ回路110を
介して導かれるソースオペランドを選択する。
【0076】またマルチプレクサ119L0 ,119L
1 は、Eステージにある命令の命令フィールド#0,#
1で指定される第1ソースレジスタ番号(の下位n−1
ビット)が、Wステージにある命令の命令フィールド#
0で指定されるデスティネーションレジスタ番号(の下
位n−1ビット)に一致している場合には、ラッチ回路
111内のバッファ111-0を介して導かれる演算器1
06-0の演算結果を選択し、Wステージにある命令の命
令フィールド#2で指定されるデスティネーションレジ
スタ番号(の下位n−1ビット)に一致している場合に
は、ラッチ回路111内のバッファ111-2を介して導
かれる演算器106-2の演算結果を選択する。
【0077】マルチプレクサ119L0 ,119L1 に
より選択されたデータ(ソースオペランド)は演算器1
06-0,106-1の左側入力(L入力)に供給される。
次に、バイパス回路109-0内のマルチプレクサ119
R0 ,119R1 は、Eステージにある命令の命令フィ
ールド#0,#1で指定される第2ソースレジスタ番号
(の下位n−1ビット)が、Wステージにある命令の命
令フィールド#0及び#2で指定されるデスティネーシ
ョンレジスタ番号(の下位n−1ビット)のいずれにも
一致していない場合には、バイパス回路108-0により
演算器106-0,106-1の右側入力用として選択され
てラッチ回路110を介して導かれるソースオペランド
を選択する。
【0078】またマルチプレクサ119R0 ,119R
1 は、Eステージにある命令の命令フィールド#0,#
1で指定される第2ソースレジスタ番号(の下位n−1
ビット)が、Wステージにある命令の命令フィールド#
0で指定されるデスティネーションレジスタ番号(の下
位n−1ビット)に一致している場合には、ラッチ回路
111内のバッファ111-0を介して導かれる演算器1
06-0の演算結果を選択し、Wステージにある命令の命
令フィールド#2で指定されるデスティネーションレジ
スタ番号(の下位n−1ビット)に一致している場合に
は、ラッチ回路111内のバッファ111-2を介して導
かれる演算器106-2の演算結果を選択する。
【0079】マルチプレクサ119R0 ,119R1 に
より選択されたデータ(ソースオペランド)は演算器1
06-0,106-1の右側入力(R入力)に供給される。
一方、バイパス回路109-1内のマルチプレクサ119
L2 ,119L3 は、Eステージにある命令の命令フィ
ールド#2,#3で指定される第1ソースレジスタ番号
(の下位n−1ビット)が、Wステージにある命令の命
令フィールド#1及び#3で指定されるデスティネーシ
ョンレジスタ番号(の下位n−1ビット)のいずれにも
一致していない場合には、バイパス回路108-1により
演算器106-2,106-3の左側入力用として選択され
てラッチ回路110を介して導かれるソースオペランド
を選択する。
【0080】またマルチプレクサ119L2 ,119L
3 は、Eステージにある命令の命令フィールド#2,#
3で指定される第1ソースレジスタ番号(の下位n−1
ビット)が、Wステージにある命令の命令フィールド#
1で指定されるデスティネーションレジスタ番号(の下
位n−1ビット)に一致している場合には、ラッチ回路
111内のバッファ111-1を介して導かれる演算器1
06-1の演算結果を選択し、Wステージにある命令の命
令フィールド#3で指定されるデスティネーションレジ
スタ番号(の下位n−1ビット)に一致している場合に
は、ラッチ回路111内のバッファ111-3を介して導
かれる演算器106-3の演算結果を選択する。
【0081】マルチプレクサ119L2 ,119L3 に
より選択されたデータ(ソースオペランド)は演算器1
06-2,106-3の左側入力(L入力)に供給される。
次に、バイパス回路109-1内のマルチプレクサ119
R2 ,119R3 は、Eステージにある命令の命令フィ
ールド#2,#3で指定される第2ソースレジスタ番号
(の下位n−1ビット)が、Wステージにある命令の命
令フィールド#1及び#3で指定されるデスティネーシ
ョンレジスタ番号(の下位n−1ビット)のいずれにも
一致していない場合には、バイパス回路108-1により
演算器106-2,106-3の右側入力用として選択され
てラッチ回路110を介して導かれるソースオペランド
を選択する。
【0082】またマルチプレクサ119R2 ,119R
3 は、Eステージにある命令の命令フィールド#2,#
3で指定される第2ソースレジスタ番号(の下位n−1
ビット)が、Wステージにある命令の命令フィールド#
1で指定されるデスティネーションレジスタ番号(の下
位n−1ビット)に一致している場合には、ラッチ回路
111内のバッファ111-1を介して導かれる演算器1
06-1の演算結果を選択し、Wステージにある命令の命
令フィールド#3で指定されるデスティネーションレジ
スタ番号(の下位n−1ビット)に一致している場合に
は、ラッチ回路111内のバッファ111-3を介して導
かれる演算器106-3の演算結果を選択する。
【0083】マルチプレクサ119R2 ,119R3 に
より選択されたデータ(ソースオペランド)は、演算器
106-2,106-3の右側入力(R入力)に供給され
る。演算器106-0,106-1は、バイパス回路109
-0から供給されるソースオペランド間のデータの演算を
行い、演算器106-2,106-3は、バイパス回路10
9-1から供給されるソースオペランド間のデータの演算
を行う。演算器106-0〜106-3の演算結果はラッチ
回路111(内のバッファ111-0〜111-3)に保持
される。
【0084】このとき、演算器106-0〜106-3での
演算を指定した長命令語のデコード結果(現在Eステー
ジにある長命令語のデコード結果)がパイプラインレジ
スタ104からパイプラインレジスタ105に移され、
同時に当該長命令語の直後の長命令語に対する命令デコ
ード機構102でのデコード結果(現在Dステージにあ
る長命令語のデコード結果)がパイプラインレジスタ1
04に移される。
【0085】ラッチ回路111(内のバッファ111-0
〜111-3)に保持された演算器106-0〜106-3の
演算結果のうち、演算器106-0,106-2の演算結果
(命令フィールド#0,#2の命令の演算結果)はレジ
スタファイル107-0の各入力ポートに、演算器106
-1,106-3の演算結果(命令フィールド#1,#3の
命令の演算結果)はレジスタファイル107-1の各入力
ポートに、それぞれ導かれる。
【0086】レジスタファイル107-0に導かれた演算
器106-0,106-2の演算結果は、当該レジスタファ
イル107-0内のレジスタのうち、パイプラインレジス
タ105に保持されている現在Wステージにある長命令
語中のデコード結果に含まれている対応する命令フィー
ルド#0,#2のデスティネーションレジスタ指定部の
指定するレジスタに書き込まれる。
【0087】また、レジスタファイル107-1に導かれ
た演算器106-1,106-3の演算結果は、当該レジス
タファイル107-1内のレジスタのうち、パイプライン
レジスタ105に保持されている現在Wステージにある
長命令語中のデコード結果に含まれている対応する命令
フィールド#1,#3のデスティネーションレジスタ指
定部の指定するレジスタに書き込まれる。
【0088】このように、ラッチ回路111(内のバッ
ファ111-0〜111-3)に保持された演算器106-0
〜106-3の演算結果は、パイプラインレジスタ105
に保持されている現在Wステージにある長命令語中のデ
コード結果のうちの命令フィールド#0〜#3のデステ
ィネーションレジスタ指定部と、その命令フィールド#
0〜#3のフィールド番号“B0 B1 ”の下位側ビット
B1 とで決まるn+1ビットのデスティネーションレジ
スタ番号の示すレジスタに書き込まれる。
【0089】即ち本実施形態では、図3に示すように、
命令フィールド#0〜#3のデスティネーションレジス
タ指定部の示すnビットのレジスタ番号(OP1)の上
位に、その命令フィールド#0〜#3のフィールド番号
“B0 B1 ”のビットB1 が付加されるレジスタ番号修
飾が行われ、そのビットB1 が付加されたn+1ビット
のデスティネーションレジスタ番号により、(レジスタ
番号0〜2n+1 −1の)2n+1 個のデスティネーション
レジスタのいずれかが指定され、そのデスティネーショ
ンレジスタへの演算器106-0〜106-3の演算結果の
書き込みが行われる。ここで、n+1ビットのデスティ
ネーションレジスタ番号の最上位ビット、即ちビットB
1 は“0”でレジスタファイル107-0を、“1”でレ
ジスタファイル107-1を指定し、当該最上位ビットを
除く下位nビット、即ちデスティネーションレジスタ指
定部の示すnビット(OP1)は、そのレジスタファイ
ル内のデスティネーションレジスタ位置を示す。
【0090】したがって、ビットB1 が“0”の命令フ
ィールド、即ちフィールド番号が0(“00”),2
(“10”)の命令フィールド#0,#2の命令に対し
ては、レジスタファイル107-0を対象に、当該命令の
デスティネーションレジスタ指定部で指定されたレジス
タへの、当該命令の演算結果(演算器106-0,106
-2の演算結果)の書き込みが行われる。また、ビットB
1 が“1”の命令フィールド、即ちフィールド番号が1
(“01”),3(“11”)の命令フィールド#1,
#3の命令に対しては、レジスタファイル107-1を対
象に、当該命令のデスティネーションレジスタ指定部で
指定されたレジスタへの、当該命令の演算結果(演算器
106-1,106-3の演算結果)の書き込みが行われ
る。
【0091】以上に述べたように本実施形態において
は、2n 個のレジスタからなる2つのレジスタファイル
107-0,107-1を設け、4並列の長命令語中の各命
令フィールド#0〜#3のフィールド番号によるレジス
タ番号の修飾を行い、各命令フィールド毎に(ソース指
定とデスティネーション指定のそれぞれについて)使用
可能なレジスタをレジスタファイル107-0または10
7-1の一方に制限することにより、レジスタ指定部のビ
ット長を(従来と同じ)nビットとしながらも(即ち長
命令語長を伸ばさないにも拘らず)、長命令語全体とし
て、使用可能なレジスタ数を従来の2n 個から、その2
倍の2n+1 個とすることができる。
【0092】また本実施形態においては、レジスタファ
イル107-0,107-1の入出力ポート数を、レジスタ
数が従来と同じ2n 個でありながら、入力ポート数2、
出力ポート数4と、従来の半分にすることができる。
【0093】以上に述べたレジスタファイル107-0,
107-1と長命令語の各命令フィールド#0〜#3(の
フィールド番号“00”〜“11”)との間の関係、具
体的には命令フィールド#0〜#3と当該命令フィール
ド#0〜#3の命令が参照するレジスタファイル(ソー
ス側レジスタファイル)との関係、及び命令フィールド
#0〜#3と当該命令フィールド#0〜#の命令の指定
する演算結果の書き込み先レジスタファイル(デスティ
ネーション側レジスタファイル)との関係を図4に示
す。なお、図4ではレジスタファイル107-0と107
-1がいずれも2つ示されているが、参照時と結果書き込
み時の関係を表すためであり、物理的には図1及び図2
に示したように1つだけ存在する。
【0094】この他、本実施形態においては、各命令フ
ィールド毎に使用可能なレジスタを制限したことから、
バイパス回路108-0,108-1の1演算器当たりの入
力ポート数(マルチプレクサの入力数)を、従来の5か
ら3に減らすことができ、ハードウェア構成の簡略化が
図れる。
【0095】なお、以上に述べた実施形態では、図2か
らも明らかなように、演算器106-0,106-1での演
算(4並列の長命令語の命令フィールド#0,#1の命
令の指定する演算)で使用可能なソースレジスタはレジ
スタファイル107-0のレジスタに、演算器106-2,
106-3での演算(命令フィールド#2,#3の命令の
指定する演算)で使用可能なソースレジスタはレジスタ
ファイル107-1にそれぞれ制限され、演算器106-
0,106-2の演算結果(命令フィールド#0,#2の
命令の指定する演算の演算結果)の書き込み先として使
用可能なデスティネーションレジスタはレジスタファイ
ル107-0のレジスタに、演算器106-1,106-3の
演算結果(命令フィールド#1,#3の命令の指定する
演算の演算結果)の書き込み先として使用可能なデステ
ィネーションレジスタはレジスタファイル107-1のレ
ジスタにそれぞれ制限されている場合について説明した
が、これに限るものではない。
【0096】そこで、各命令フィールド毎に(ソース指
定とデスティネーション指定のそれぞれについて)使用
可能なレジスタの制限が、以上の実施形態とは異なる第
2の実施形態について図面を参照して説明する。 [第2の実施形態]図5は本発明の第2の実施形態に係
るVLIWプロセッサの概略構成を図2と同様の形式で
示すブロック図であり、図2と同一部分には同一符号を
付してある。
【0097】図5において、バイパス回路209-0は、
演算器106-0,106-1の左側入力に対応して設けら
れたマルチプレクサ(MPX)219L0 ,219L1
と、演算器106-0,106-1の右側入力に対応して設
けられたマルチプレクサ(MPX)219R0 ,219
R1 とから構成される。
【0098】バイパス回路209-0内のマルチプレクサ
219L0 ,219L1 ,219R1 は、レジスタファ
イル107-0の出力ポートP00,P02,P03と1対1で
対応しており、対応する出力ポートから読み出されるデ
ータ及び(ラッチ回路111を介して導かれる)演算器
106-0,106-2の演算結果の1つを選択して演算器
106-0,106-1の対応する入力側に出力する。
【0099】一方、バイパス回路209-0内のマルチプ
レクサ219R0 はレジスタファイル107-1の出力ポ
ートP13と1対1で対応しており、当該出力ポートP13
から読み出されるデータ及び(ラッチ回路111を介し
て導かれる)演算器106-1,106-3の演算結果の1
つを選択して演算器106-0の右側入力に出力する。
【0100】バイパス回路209-1は、演算器106-
2,106-3の左側入力に対応して設けられたマルチプ
レクサ(MPX)229L2 ,229L3 と、演算器1
06-2,106-3の右側入力に対応して設けられたマル
チプレクサ(MPX)229R2 ,229R3 とから構
成される。
【0101】バイパス回路209-1内のマルチプレクサ
229L2 ,229R2 ,229L3 は、レジスタファ
イル107-1の出力ポートP10,P11,P12と1対1で
対応しており、対応する出力ポートから読み出されるデ
ータ及び(ラッチ回路111を介して導かれる)演算器
106-1,106-3の演算結果の1つを選択して演算器
106-2,106-3の対応する入力側に出力する。
【0102】一方、バイパス回路209-1内のマルチプ
レクサ229R3 はレジスタファイル107-0の出力ポ
ートP01と1対1で対応しており、当該出力ポートP01
から読み出されるデータ及び(ラッチ回路111を介し
て導かれる)演算器106-0,106-2の演算結果の1
つを選択して演算器106-3の右側入力に出力する。
【0103】この図5の構成が、図2の構成と異なる点
は、図5中で演算器106-0,106-3の右側入力に対
応するマルチプレクサ219R0 ,219R3 の各入力
が、図2中で演算器106-0,106-3の右側入力に対
応するマルチプレクサ119R0 ,119R3 の各入力
と逆になっていることである。
【0104】この図5の構成では、命令フィールド#0
〜#3を持つ4並列の長命令語(4並列VLIW)のフ
ィールド番号を“B0 B1 ”とすると、デスティネーシ
ョンレジスタ番号は、図6に示すように、命令フィール
ド#0〜#3の命令のデスティネーションレジスタ指定
部の示すレジスタ番号(OP1)の上位にビットB1が
付加されたものとなる。また、第1ソースレジスタ番号
は、図6に示すように、命令フィールド#0〜#3の命
令の第1ソースレジスタ指定部の示すレジスタ番号(O
P2)の上位にビットB0 が付加されたものとなる。こ
こまでは、前記第1の実施形態と同様である。
【0105】次に第2ソースレジスタ番号は、図6に示
すように、命令フィールドのフィールド番号によって異
なり、フィールド番号が“00”(=0),“11”
(=3)の命令フィールド#0,#3の命令では、その
命令の第2ソースレジスタ指定部の示すレジスタ番号
(OP3)の上位にビットB0 のレベル反転ビットが付
加されたものとなり、フィールド番号が“01”(=
1),“10”(=2)の命令フィールド#1,#2の
命令では、その命令の第2ソースレジスタ指定部の示す
レジスタ番号(OP3)の上位にビットB0 が付加され
たものとなる。
【0106】この場合、本実施形態におけるレジスタフ
ァイル107-0,107-1と長命令語の各命令フィール
ド#0〜#3(のフィールド番号“00”〜“11”)
との間の関係、具体的には命令フィールド#0〜#3と
当該命令フィールド#0〜#3の命令が参照するレジス
タファイル(ソース側レジスタファイル)との関係、及
び命令フィールド#0〜#3と当該命令フィールド#0
〜#の命令の指定する演算結果の格納先レジスタファイ
ル(デスティネーション側レジスタファイル)との関係
は図7のようになる。
【0107】このように、4並列の長命令語の命令フィ
ールド#0〜#3(のフィールド番号“00”〜“1
1”)の命令で指定された演算の演算結果の書き込み先
として、命令フィールド#0,#2についてはレジスタ
ファイル107-0(内のレジスタ)に、命令フィールド
#1,#3についてはレジスタファイル107-1(内の
レジスタ)に制限すると共に、命令フィールド#0〜#
3の命令の参照先を、命令フィールド#0,#3につい
ては2つのレジスタファイル107-0,107-1(内の
レジスタ)に、命令フィールド#1についてはレジスタ
ファイル107−0(内のレジスタ)に、命令フィール
ド#2についてはレジスタファイル107−1(内のレ
ジスタ)に制限することでも、レジスタ指定部のビット
長を(従来と同じ)nビットとしながらも(即ち長命令
語長を伸ばさないにも拘らず)、長命令語全体として、
使用可能なレジスタ数を従来の2n 個から、その2倍の
n+1 個とすることができる。
【0108】なお、以上に述べた第1及び第2の実施形
態では、長命令語の命令フィールド#0〜#3のフィー
ルド番号“B0 B1 ”の上位側ビットB0 をソースレジ
スタ番号修飾に、下位側ビットB1 をデスティネーショ
ンレジスタ番号修飾に用いる場合について説明したが、
これに限るものではなく、B0 をデスティネーションレ
ジスタ番号修飾に、B1 をソースレジスタ番号修飾に用
いるようにしても構わない。この場合、命令フィールド
#0〜#3とレジスタファイル107-0,107-1との
関係は、ソース指定とデスティネーション指定とで、以
上の実施形態の逆になり、VLIWプロセッサの構成
(例えば第1の実施形態では図2の構成、第2の実施形
態では図5の構成)もそれに適合するように変更する必
要がある。
【0109】また、以上に述べた第1及び第2の実施形
態では、本発明を、命令フィールド#0〜#3を持つ4
並列の長命令語を実行するVLIWプロセッサに適用し
た場合について説明したが、本発明は、例えば命令フィ
ールド#0〜#7(フィールド番号“000”〜“11
1”)を持つ8並列の長命令語を実行するVLIWプロ
セッサ、更には命令フィールド#0〜#15(フィール
ド番号“0000”〜“1111”)を持つ16並列の
長命令語を実行するVLIWプロセッサ等にも適用可能
である。そこでまず、本発明を8並列の長命令語を実行
するVLIWプロセッサに適用した第3の実施形態につ
き説明する。 [第3の実施形態]図8は、本発明を8並列の長命令語
を実行するVLIWプロセッサに適用した第3の実施形
態におけるレジスタファイルと長命令語の各命令フィー
ルドとの間の関係を示す。
【0110】図8において、4つのレジスタファイル2
07-0(#0)〜207-3(#3)は、図1中のレジス
タファイル107-0,107-1と同様に2n 個のレジス
タから構成される。レジスタファイル207-0内の2n
個のレジスタには0〜2n −1のレジスタ番号が、レジ
スタファイル207-1内の2n 個のレジスタには2n
2×2n −1のレジスタ番号、即ち2n 〜2n+1 −1の
レジスタ番号が、レジスタファイル207-2内の2n
のレジスタには2n+1 〜3×2n −1のレジスタ番号
が、そしてレジスタファイル207-3内の2n 個のレジ
スタには3×2n〜4×2n −1のレジスタ番号、即ち
3×2n 〜2n+2 −1のレジスタ番号が、それぞれ割り
当てられている。
【0111】本実施形態においては、8並列の長命令語
の各命令フィールド#0〜#7の命令は3オペランド形
式の命令(演算命令の場合)であり、デスティネーショ
ンレジスタ指定部(OP1)のビット長は(前記第1及
び第2の実施形態の場合より1ビット多い)n+1ビッ
ト、第1及び第2ソースレジスタ指定部(OP2,OP
3)のビット長は(前記第1及び第2の実施形態の場合
と同じ)nビットである。デスティネーションレジスタ
指定部(OP1)の最上位ビット(B)の値は、命令フ
ィールド(のフィールド番号)によって予め定められて
おり、フィールド#0〜#3(フィールド番号“00
0”〜“011”)では“0”、フィールド#4〜#7
(フィールド番号“100”〜“111”)では“1”
である。
【0112】ここで、各命令フィールド#i(i=0〜
7)の命令(演算命令)の演算結果の書き込み先のレジ
スタファイルは、その命令フィールド#iのフィールド
番号(3ビット)を“B0 B1 B2 ”とすると、そのフ
ィールド番号中の最下位ビットB2 と、その命令フィー
ルド中のn+1ビットのデスティネーションレジスタ指
定部(OP1)の最上位ビット(B)からなる2ビット
“B2 B”により決定される。
【0113】また、決定されたレジスタファイル内の書
き込み先レジスタは、デスティネーションレジスタ指定
部(OP1)の最上位ビットを除くnビットにより指定
される。即ち命令フィールド#iの命令(演算命令)の
演算結果の書き込み先レジスタは、図9に示すように、
その命令のデスティネーションレジスタ指定部で指定さ
れるn+1ビットのレジスタ番号(OP1)の上位に、
その命令フィールドのフィールド番号の最下位ビットB
2 が付加されたn+2ビットのデスティネーションレジ
スタ番号により指定される。
【0114】一方、命令フィールド#iの命令(演算命
令)の参照先のレジスタファイルは、そのフィールド番
号中の上位側の2ビット“B0 B1 ”により決定され
る。また、決定されたレジスタファイル内の参照先レジ
スタは、その命令フィールド#i中のnビットの第1及
び第2ソースレジスタ指定部(OP2,OP3)により
指定される。
【0115】即ち命令フィールド#iの命令(演算命
令)の演算で参照する2つのソースレジスタは、図9に
示すように、その命令の第1及び第2ソースレジスタ指
定部で指定されるnビットのレジスタ番号(OP2,O
P3)の上位に、その命令フィールドのフィールド番号
の上位側2ビット“B0 B1 ”が付加されたn+2ビッ
トのソースレジスタ番号(第1及び第2ソースレジスタ
番号)により指定される。
【0116】本実施例において、上記n+2ビットのレ
ジスタ番号の上位2ビットは、“00”でレジスタファ
イル207-0を、“01”でレジスタファイル207-1
を、“10”でレジスタファイル207-2を、“11”
でレジスタファイル207-3を指定し、当該上位2ビッ
トを除くnビットは、そのレジスタファイル内のレジス
タ位置を示す。
【0117】したがって、図8に示すように、フィール
ド番号“B0 B1 B2 ”中の上位側2ビット“B0 B1
”が“00”、即ちフィールド番号が0(“00
0”),1(“001”)の命令フィールド#0,#1
の命令についてはレジスタファイル207-0を対象に、
“B0 B1 ”が“01”、即ちフィールド番号が2
(“010”),3(“011”)の命令フィールド#
2,#3の命令についてはレジスタファイル207-1を
対象に、“B0 B1 ”が“10”、即ちフィールド番号
が4(“100”),5(“101”)の命令フィール
ド#4,#5の命令についてはレジスタファイル207
-2を対象に、そして“B0 B1 ”が“11”、即ちフィ
ールド番号が6(“110”),7(“111”)の命
令フィールド#6,#7の命令についてはレジスタファ
イル207-3を対象に、それぞれその命令フィールドの
第1及び第2ソースレジスタ指定部で指定される(当該
レジスタファイル内の)レジスタからのソースオペラン
ド読み出しが行われる。
【0118】また、フィールド番号“B0 B1 B2 ”中
の最下位ビットB2 が“0”でデスティネーションレジ
スタ指定部の最上位ビットBが“0”の命令フィール
ド、即ちフィールド番号が0(“000”),2(“0
10”)の命令フィールド#0,#2の命令については
レジスタファイル207-0を対象に、ビットB2 が
“0”でビットBが“1”の命令フィールド、即ちフィ
ールド番号が4(“100”),6(“110”)の命
令フィールド#4,#6の命令についてはレジスタファ
イル207-1を対象に、ビットB2 が“1”でビットB
が“0”の命令フィールド、即ちフィールド番号が1
(“001”),3(“011”)の命令フィールド#
1,#3の命令についてはレジスタファイル207-2を
対象に、そしてビットB2 が“1”でビットBが“1”
の命令フィールド、即ちフィールド番号が5(“10
1”),7(“111”)の命令フィールド#5,#7
の命令についてはレジスタファイル207-3を対象に、
当該命令のデスティネーションレジスタ指定部で指定さ
れたレジスタへの、当該命令の演算結果の書き込みが行
われる。
【0119】以上に述べたように本実施形態において
は、2n 個のレジスタからなる4つのレジスタファイル
207-0〜207-3を設け、8並列の長命令語中の各命
令フィールド#0〜#7のフィールド番号によるレジス
タ番号の修飾を行い、各命令フィールド毎に(ソース指
定とデスティネーション指定のそれぞれについて)使用
可能なレジスタをレジスタファイル207-0〜206-3
のいずれかに制限することにより、デスティネーション
レジスタ指定部のビット長をn+1ビット、第1及び第
2ソースレジスタ指定部のビット長をnビットとしなが
らも、長命令語全体として、使用可能なレジスタ数を2
n+2 個とすることができる。
【0120】しかも本実施形態においては、レジスタフ
ァイル207-0〜207-3の入出力ポート数を、レジス
タ数が従来と同じ2n 個でありながら、入力ポート数
2、出力ポート数4とすることができる(8並列の長命
令語の場合、従来は入力ポート数8、出力ポート数1
6)。
【0121】また、図8では省略されているが、レジス
タファイル207-0〜207-3にそれぞれ対応して設け
られることになる、図1中のバイパス回路108-i,1
09-i(i=0,1)に相当するバイパス回路の1演算
器の1入力当たりの入力ポート数(マルチプレクサの入
力数)を3とすることができる(8並列の長命令語の場
合、従来は9)。
【0122】なお、前記実施形態(第3の実施形態)で
は、長命令語の命令フィールド#0〜#7のフィールド
番号“B0 B1 B2 ”の上位側の2ビット“B0 B1 ”
をソースレジスタ番号修飾に、下位側の1ビットB2 を
(デスティネーション指定部の最上位ビットBと合わせ
て)デスティネーションレジスタ番号修飾に用いる場合
について説明したが、これに限るものではない。例え
ば、B1 をソースレジスタ番号修飾とデスティネーショ
ンレジスタ番号修飾の一部のビットとして共通に用い、
“B0 B1 ”を(前記実施形態と同様に)ソースレジス
タ番号修飾に用いると共に、“B1 B2 ”をデスティネ
ーション番号修飾に用いるようにしても構わない。この
場合、デスティネーションレジスタ指定部のビット長
は、前記実施形態と異なってnビットで済む。
【0123】このようなレジスタ番号修飾では、命令フ
ィールド#0〜#7と、その命令フィールド#0〜#7
(のデスティネーションレジスタ指定部)でデスティネ
ーション先として指定可能なレジスタファイルとの対応
関係は前記実施形態と異なり、命令フィールド#0,#
4がレジスタファイル207-0(#0)に、命令フィー
ルド#1,#5がレジスタファイル207-1(#1)
に、命令フィールド#2,#6がレジスタファイル20
7-2(#2)に、そして命令フィールド#3,#7がレ
ジスタファイル207-3(#3)に、それぞれ対応付け
られる。
【0124】次に本発明を16並列の長命令語を実行す
るVLIWプロセッサに適用した第4の実施形態につき
説明する。 [第4の実施形態]図10は、本発明を16並列の長命
令語を実行するVLIWプロセッサに適用した第4の実
施形態におけるレジスタファイルと長命令語の各命令フ
ィールドとの間の関係を示す。
【0125】図10に示すように、本実施形態において
も、前記第3の実施形態と同様に、それぞれ2n 個のレ
ジスタからなる4つのレジスタファイル207-0(#
0)〜207-3(#3)が用いられる。
【0126】本実施形態において、16並列の長命令語
の各命令フィールド#0〜#15の命令は3オペランド
形式の命令(演算命令の場合)であり、デスティネーシ
ョンレジスタ指定部(OP1)、並びに第1及び第2ソ
ースレジスタ指定部(OP2,OP3)のビット長は、
いずれもnビットである。ここで、デスティネーション
レジスタ指定部(OP1)が、前記第3の実施形態で適
用された8並列の長命令語の各命令フィールド#0〜#
7のデスティネーションレジスタ部のビット数より1ビ
ット少ないことに注意されたい。
【0127】本実施形態においては、各命令フィールド
#i(i=0〜15)の命令(演算命令)の演算結果の
書き込み先のレジスタファイルは、その命令フィールド
#iのフィールド番号(4ビット)を“B0 B1 B2 B
3 ”とすると、そのフィールド番号中の下位側の2ビッ
ト“B2 B3 ”により決定される。また、決定されたレ
ジスタファイル内の書き込み先レジスタは、デスティネ
ーションレジスタ指定部(OP1)のnビットにより指
定される。即ち命令フィールド#iの命令(演算命令)
の演算結果の書き込み先レジスタは、図11に示すよう
に、その命令のデスティネーションレジスタ指定部で指
定されるnビットのレジスタ番号(OP1)の上位に、
その命令フィールドのフィールド番号の下位側の2ビッ
ト“B2B3 ”が付加されたn+2ビットのデスティネ
ーションレジスタ番号により指定される。
【0128】一方、命令フィールド#iの命令(演算命
令)の参照先のレジスタファイルは、そのフィールド番
号中の上位側の2ビット“B0 B1 ”により決定され
る。また、決定されたレジスタファイル内の参照先レジ
スタは、その命令フィールド#i中のnビットの第1及
び第2ソースレジスタ指定部(OP2,OP3)により
指定される。即ち命令フィールド#iの命令(演算命
令)の演算で参照する2つのソースレジスタは、図11
に示すように、その命令の第1及び第2ソースレジスタ
指定部で指定されるnビットのレジスタ番号(OP2,
OP3)の上位に、その命令フィールドのフィールド番
号の上位側2ビット“B0 B1 ”が付加されたn+2ビ
ットのソースレジスタ番号(第1及び第2ソースレジス
タ番号)により指定される。
【0129】本実施例において、上記n+2ビットのレ
ジスタ番号の上位2ビットは、“00”でレジスタファ
イル207-0を、“01”でレジスタファイル207-1
を、“10”でレジスタファイル207-2を、“11”
でレジスタファイル207-3を指定し、当該上位2ビッ
トを除くnビットは、そのレジスタファイル内のレジス
タ位置を示す。
【0130】したがって、図10に示すように、フィー
ルド番号“B0 B1 B2 B3 ”中の上位側2ビット“B
0 B1 ”が“00”、即ちフィールド番号が0(“00
00”),1(“0001”),2(“0010”),
3(“0011”)の命令フィールド#0,#1,#
2,#3の命令についてはレジスタファイル207-0を
対象に、“B0 B1 ”が“01”、即ちフィールド番号
が4(“0100”),5(“0101”),6(“0
110”),7(“0111”)の命令フィールド#
4,#5,#6,#7の命令についてはレジスタファイ
ル207-1を対象に、“B0 B1 ”が“10”、即ちフ
ィールド番号が8(“1000”),9(“100
1”),10(“1010”),11(“1011”)
の命令フィールド#8,#9,#10,#11の命令に
ついてはレジスタファイル207-2を対象に、そして
“B0 B1 ”が“11”、即ちフィールド番号が12
(“1100”),13(“1101”),14(“1
110”),15(“1111”)の命令フィールド#
12,#13,#14,#15の命令についてはレジス
タファイル207-3を対象に、それぞれその命令フィー
ルドの第1及び第2ソースレジスタ指定部で指定される
(当該レジスタファイル内の)レジスタからのソースオ
ペランド読み出しが行われる。
【0131】また、フィールド番号“B0 B1 B2 B3
”中の下位側2ビット“B2 B3 ”が“00”、即ち
フィールド番号が0(“0000”),4(“010
0”),8(“1000”),12(“1100”)の
命令フィールド#0,#4,#8,#12の命令につい
てはレジスタファイル207-0を対象に、“B2 B3 ”
が“01”、即ちフィールド番号が1(“000
1”),5(“0101”),9(“1001”),1
3(“1101”)の命令フィールド#1,#5,#
9,#13の命令についてはレジスタファイル207-1
を対象に、フィールド番号が2(“0010”),6
(“0110”),10(“1010”),14(“1
110”)の命令フィールド#2,#6,#10,#1
4の命令についてはレジスタファイル207-2を対象
に、そして“B2 B3 ”が“11”、即ちフィールド番
号が3(“0011”),7(“0111”),11
(“1011”),15(“1111”)の命令フィー
ルド#3,#7,#11,#15の命令についてはレジ
スタファイル207-3を対象に、当該命令のデスティネ
ーションレジスタ指定部で指定されたレジスタへの、当
該命令の演算結果の書き込みが行われる。
【0132】以上に述べたように本実施形態において
は、2n 個のレジスタからなる4つのレジスタファイル
207-0〜207-3を設け、16並列の長命令語中の各
命令フィールド#0〜#15のフィールド番号によるレ
ジスタ番号の修飾を行い、各命令フィールド毎に(ソー
ス指定とデスティネーション指定のそれぞれについて)
使用可能なレジスタをレジスタファイル207-0〜20
6-3のいずれかに制限することにより、デスティネーシ
ョンレジスタ指定部、並びに第1及び第2ソースレジス
タ指定部のビット長をそれぞれnビットとしながらも、
長命令語全体として、使用可能なレジスタ数を2n+2
とすることができる。
【0133】しかも本実施形態においては、レジスタフ
ァイル207-0〜207-3の入出力ポート数を、レジス
タ数が従来と同じ2n 個でありながら、入力ポート数
2、出力ポート数4と従来より大幅に削減できる(16
並列の長命令語の場合、従来は入力ポート数16、出力
ポート数32)。
【0134】また、図10では省略されているが、レジ
スタファイル207-0〜207-3にそれぞれ対応して設
けられることになる、図1中のバイパス回路108-i,
109-i(i=0,1)に相当するバイパス回路の1演
算器の1入力当たりの入力ポート数(マルチプレクサの
入力数)を5とすることができる(16並列の長命令語
の場合、従来は17)。
【0135】なお、前記第3及び第4の実施形態では、
ソースレジスタの修飾方法が第1ソースレジスタと第2
ソースレジスタとで同じ場合について説明したが、前記
第2の実施形態と同様に、第1ソースレジスタと第2ソ
ースレジスタとで異なる修飾方法を適用しても構わな
い。
【0136】また、前記第1乃至第4の実施形態では、
長命令語の各命令フィールドのフィールド番号毎に(ソ
ース指定とデスティネーション指定のそれぞれについ
て)アクセス可能なレジスタファイルが制限されてお
り、したがって各命令フィールドからアクセス可能(ソ
ース指定及びデスティネーション指定可能)なレジスタ
も、その命令フィールド(のフィールド番号)によって
制限されていたが、予め定められたレジスタ番号のレジ
スタ(例えばレジスタ番号が0〜7までの8個のレジス
タ)については、全ての命令フィールドから共通にアク
セス可能としても(即ちフィールド番号によるレジスタ
修飾の対象外としても)よく、前記実施形態に限定され
ない種々の変形が可能である。
【0137】次に、以上に述べた第1乃至第4の実施形
態で適用した命令語形式、即ち長命令語中の各命令フィ
ールドのフィールド番号によるレジスタ番号の修飾によ
り、各命令フィールド毎に(ソース指定とデスティネー
ション指定のそれぞれについて)使用可能なレジスタフ
ァイルを制限することを可能とする命令語形式に従った
オブジェクトを生成するためのコンパイラ(並列最適化
コンパイラ)について説明する。
【0138】図12は本コンパイラの一実施形態を示す
ブロック構成図である。同図において、並列最適化コン
パイラ310は、字句解析・構文解析部311、スカラ
最適化部312、命令スケジュール部313、レジスタ
アロケーション部314及びコード出力部315の各機
能要素から構成される。
【0139】並列最適化コンパイラ310は、ソースフ
ァイル320に格納されている原始プログラムを対象に
字句解析・構文解析部311により周知の字句解析及び
構文解析を行ってプログラムエラーを検出すると共に第
1の内部形式のプログラム(中間コード)に変える。
【0140】次に並列最適化コンパイラ310は、字句
解析・構文解析部311により生成された中間コードを
対象にスカラ最適化部312により周知の最適化を行
い、冗長な処理を含まないような実行時間がより少なく
て済む第2の内部形式のプログラムを生成する。このプ
ログラムは、シリアルな命令列からなる。
【0141】ここまでの並列最適化コンパイラ310で
の処理は、通常のコンパイラ処理と同様であり、VLI
Wとは無関係である。次に並列最適化コンパイラ310
は、スカラ最適化部312により生成された第2の内部
形式のプログラムの各命令をスケジュールする命令スケ
ジューリングを命令スケジュール部313により行う。
この命令スケジュール部313による例えば前記第1の
実施形態で適用した命令語形式(図3参照)を前提とす
る命令スケジューリングについて、“a←b+c”の演
算を指定する命令Iをトップダウン方式でスケジュール
する場合を例に、図13のフローチャートを参照して説
明する。
【0142】まず、命令スケジュール部313は、スケ
ジュールの対象となる命令Iのソースオペランド(b,
c)を定義した命令(が既に配置されている命令フィー
ルド位置)のフィールド番号を調べる(ステップS
1)。
【0143】次に命令スケジュール部313は、調べた
フィールド番号とソースオペランド(b,c)とがマッ
チしているか否か、即ちソースオペランドbを定義した
命令のフィールド番号で決まる(デスティネーション先
としての)レジスタファイルと、ソースオペランドcを
定義した命令のフィールド番号で決まるデスティネーシ
ョン先としてのレジスタファイルとが一致しているか否
かを判断する(ステップS2)。
【0144】もし上記レジスタファイルが一致している
場合には、命令スケジュール部313は、命令Iを、当
該レジスタファイル内レジスタがソース指定可能な命令
フィールドに配置する(ステップS3)。
【0145】これにより、ソースオペランドbを定義し
た命令とソースオペランドcを定義した命令のフィール
ド番号がいずれも0または2であるならば、そのフィー
ルド番号で決まるデスティネーション先としてのレジス
タファイルは、いずれもレジスタファイル107-0(#
0)であることから、命令Iは命令フィールド#0また
は#1(の空きフィールド)に配置される。同様に、ソ
ースオペランドbを定義した命令とソースオペランドc
を定義した命令のフィールド番号がいずれも1または3
であるならば、そのフィールド番号で決まるデスティネ
ーション先としてのレジスタファイルは、いずれもレジ
スタファイル107-1(#1)であることから、命令I
は命令フィールド#2または#3(の空きフィールド)
に配置される。
【0146】これに対して上記レジスタファイルが不一
致の場合には、命令スケジュール部313は、ソースオ
ペランドb,cのうちの一方を、そのソースオペランド
が存在するレジスタファイルから他方のソースオペラン
ドが存在するレジスタファイルにコピーする命令(MO
VE命令)を生成し、そのコピー命令を、そのソース先
とデスティネーション先で決まる命令フィールドに配置
する(ステップS4)。
【0147】これにより、例えばソースオペランドbが
レジスタファイル107-0(#0)に、ソースオペラン
ドcがレジスタファイル107-1(#1)に存在し、こ
のソースオペランドcをレジスタファイル107-0(#
0)に変数dとしてコピーする場合であれば、ソース先
がレジスタファイル107-1(#1)、デスティネーシ
ョン先がレジスタファイル107-0(#0)であること
から、そのためのコピー命令(d←c)は、命令フィー
ルド#2に配置される。
【0148】命令スケジュール部313はコピー命令を
生成して配置すると(ステップS4)、命令Iに相当す
る“a←b+d”の命令I′を、コピー命令のコピー先
(デスティネーション先)レジスタファイルをソースレ
ジスタファイルとして使用可能な命令フィールド(ここ
では#0または#1)に配置する(ステップS5)。
【0149】次に、命令スケジュール部313による前
記第1の実施形態で適用した命令語形式(図3参照)を
前提とする命令スケジューリングについて、レジスタ
(変数)aを定義する命令Iをボトムアップ方式でスケ
ジュールする場合を例に、図14のフローチャートを参
照して説明する。
【0150】まず、命令スケジュール部313は、スケ
ジュールの対象となる命令Iが定義するレジスタ(仮想
レジスタ、変数)aを(ソースとして)使う命令(が既
に配置されている命令フィールド位置)のフィールド番
号を調べる(ステップS11)。
【0151】次に命令スケジュール部313は、調べた
フィールド番号と命令Iが定義する仮想レジスタ(デス
ティネーション先)aとがマッチしているか否か、具体
的には、調べたフィールド番号から、仮想レジスタ(デ
スティネーション先)aがレジスタファイル107-0
(#0)または107-1(#1)のいずれになければな
らないか、或いはその両方になければならないかを判断
する(ステップS12)。
【0152】この判断の条件は、aを使う全ての命令
が、命令フィールド#0または#1と、命令フィールド
#2または#3のいずれか一方だけにあるか、或いは両
方にあるか、即ちaを使う命令のフィールド番号で決ま
るソース指定可能なレジスタファイルが、その命令数に
無関係に1つだけである(この状態を、デスティネーシ
ョンレジスタaとフィールド番号がマッチしていると呼
ぶ)か否かである。
【0153】もし、aを使う全ての命令が命令フィール
ド#0または#1だけにある場合(デスティネーション
レジスタaとフィールド番号がマッチしている場合)に
は、aはレジスタファイル107-0(#0)になければ
ならず、命令フィールド#2または#3だけにある場合
には、aはレジスタファイル107-1(#1)になけれ
ばならない。aを使う命令が1つの場合には、その命令
は、命令フィールド#0または#1と、命令フィールド
#2または#3のいずれか一方にしか存在しない。
【0154】一方、aを使う命令が複数で、しかもその
複数の命令が命令フィールド#0または#1側と、命令
フィールド#2または#3側に分散配置されている場合
(デスティネーションレジスタaとフィールド番号がマ
ッチしていない場合)には、aはレジスタファイル10
7-0(#0)及び107-1(#1)の両方になければな
らない。
【0155】命令スケジュール部313は、命令Iが定
義する変数(仮想レジスタ)aがレジスタファイル10
7-0(#0)になければならないと判断した場合には、
その命令Iを命令フィールド#0または#2に配置し、
レジスタファイル107-1(#1)になければならない
と判断した場合には、その命令Iを命令フィールド#1
または#3に配置する(ステップS13)。
【0156】これに対し、命令Iが定義する変数(仮想
レジスタ)aがレジスタファイル107-0(#0)及び
107-1(#1)の両方になければならないと判断した
場合には、aをレジスタファイル107-0(#0)から
レジスタファイル107-1(#1)、またはレジスタフ
ァイル107-1(#1)からレジスタファイル107-0
(#0)に変数xとしてコピーする命令(x←a)を生
成し、そのコピー命令を命令フィールド#1または#2
に配置する(ステップS14)。
【0157】ここでは、命令Iを命令フィールド#0ま
たは#2に配置しようとするならば、aをレジスタファ
イル107-0(#0)からレジスタファイル107-1
(#1)にコピーする命令が命令フィールド#1に配置
され、命令Iを命令フィールド#1または#3に配置し
ようとするならば、aをレジスタファイル107-1(#
1)からレジスタファイル107-0(#0)にコピーす
る命令が命令フィールド#2に配置される。
【0158】命令スケジュール部313はコピー命令を
生成して配置すると(ステップS14)、命令フィール
ド#1にコピー命令を配置した場合であれば、命令Iを
命令フィールド#0または#2に配置し、命令フィール
ド#2にコピー命令を配置した場合であれば、命令Iを
命令フィールド#1または#3に配置する(ステップS
15)。
【0159】このとき命令スケジュール部313は、命
令フィールド#1にコピー命令を配置した場合であれ
ば、既に配置済みのaを使う命令のうち、命令フィール
ド#2,#3にある命令のaをxに変更し、命令フィー
ルド#2にコピー命令を配置した場合であれば、既に配
置済みのaを使う命令のうち、命令フィールド#0,#
1にある命令のaをxに変更する。
【0160】並列最適化コンパイラ310は、以上のス
ケジュール処理を、スカラ最適化部312により生成さ
れた第2の内部形式のプログラムの各命令について、始
端命令から順に終端命令まで(トップダウン方式の場
合)、或いは終端命令から順に始端まで(ボトムアップ
方式の場合)命令スケジュール部313により実行する
と、そのスケジュール済みの各命令中の変数に対する物
理レジスタ割り当て(レジスタアロケーション)をレジ
スタアロケーション部314により行う。このレジスタ
アロケーション部314によるレジスタアロケーション
について、図15のフローチャートを参照して説明す
る。
【0161】レジスタアロケーション部314は、命令
スケジュール部313によりスケジュールされた各命令
をスキャンして、各変数(仮想レジスタ)が参照或いは
定義される命令のフィールド番号から、全ての変数をレ
ジスタファイル別にクラス分けする(ステップS2
1)。ここでは、レジスタファイル107-0(#0)に
存在すべき変数と、レジスタファイル107-1(#1)
に存在すべき変数の2つのクラスに分けられる。
【0162】次にレジスタアロケーション部314は、
各クラスの各変数について、クラス別に、そのクラスに
対応するレジスタファイル内の物理レジスタの割り当て
を行う(ステップS22)。
【0163】並列最適化コンパイラ310はレジスタア
ロケーション部314によるレジスタアロケーションを
終了すると、このレジスタアロケーションが施された内
部形式の各命令から計算機(ここではVLIWプロセッ
サ)で実行可能なコード(オブジェクトコード)をコー
ド出力部315により生成し、オブジェクトファイル3
30として出力する。
【0164】
【発明の効果】以上詳述したように本発明によれば、複
数のレジスタファイルを設け、長命令語(VLIW)中
の各命令フィールドのフィールド番号によるレジスタ番
号の修飾を行い、各命令フィールド毎に(ソース指定と
デスティネーション指定のそれぞれについて)使用可能
なレジスタをいずれかのレジスタファイルに制限する構
成とすることにより、長命令語全体で扱えるレジスタ数
を長命令語長を伸ばすことなく増やすことができ、しか
もハードウェア構成の複雑化を招かないで済む。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るVLIWプロセ
ッサの概略構成を示すブロック図。
【図2】図1中のバイパス回路109-0,109-1の内
部構成を、その周辺の構成と共に示すブロック図。
【図3】上記第1の実施形態における命令フィールドの
フィールド番号によるレジスタ番号の修飾について、主
としてフィールド番号が1(“01”)の命令フィール
ド#1を例に説明するための図。
【図4】上記第1の実施形態におけるレジスタファイル
107-0,107-1と長命令語の各命令フィールド#0
〜#3(のフィールド番号“00”〜“11”)との間
の関係を示す図。
【図5】本発明の第2の実施形態に係るVLIWプロセ
ッサの概略構成を図2と同様の形式で示すブロック図。
【図6】上記第2の実施形態における命令フィールドの
フィールド番号によるレジスタ番号の修飾を説明するた
めの図。
【図7】上記第2の実施形態におけるレジスタファイル
107-0,107-1と長命令語の各命令フィールド#0
〜#3(のフィールド番号“00”〜“11”)との間
の関係を示す図。
【図8】本発明を8並列の長命令語を実行するVLIW
プロセッサに適用した第3の実施形態におけるレジスタ
ファイルと長命令語の各命令フィールドとの間の関係を
示す図。
【図9】上記第3の実施形態における命令フィールドの
フィールド番号によるレジスタ番号の修飾を説明するた
めの図。
【図10】本発明を16並列の長命令語を実行するVL
IWプロセッサに適用した第4の実施形態におけるレジ
スタファイルと長命令語の各命令フィールドとの間の関
係を示す図。
【図11】上記第4の実施形態における命令フィールド
のフィールド番号によるレジスタ番号の修飾を説明する
ための図。
【図12】上記第1乃至第4の実施形態で適用した命令
語形式に従ったオブジェクトを生成するためのコンパイ
ラの一実施形態を示すブロック構成図。
【図13】図12中のコンパイラにおける命令スケジュ
ール処理をトップダウン方式でスケジュールする場合に
ついて説明するためのフローチャート。
【図14】図12中のコンパイラにおける命令スケジュ
ール処理をボトムアップ方式でスケジュールする場合に
ついて説明するためのフローチャート。
【図15】図12中のコンパイラにおけるレジスタアロ
ケーション処理を説明するためのフローチャート。
【図16】従来のVLIWプロセッサにおける、長命令
語の各命令フィールドの命令で使用可能なレジスタ数
と、その命令中ののレジスタ指定部のビット数との関係
を、レジスタ数が2n 個の場合と、その2倍の2n+1
の場合とについて示す図。
【図17】従来のVLIWプロセッサの概略構成を示す
ブロック図。
【符号の説明】
101…命令フェッチ機構、 102…命令デコード機構、 106-0〜106-3…演算器、 107-0,107-1,207-0〜207-3…レジスタフ
ァイル、 108-0,108-1,109-0,109-1,209-0,
209-1…バイパス回路、 110,111…ラッチ回路、 119L0 〜119L3 ,119R0 〜119R3 ,2
19L0 〜219L3,219R0 〜219R3 …マル
チプレクサ(MPX)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令フィールドを有する長命令語
    (Very Long Instruction Word:VLIW)を実行する
    VLIWプロセッサにおいて、 複数のレジスタファイルと、 この複数のレジスタファイルの中から、長命令語中の各
    命令フィールドのフィールド番号の第1の所定部分をも
    とに、その命令フィールドの命令で参照するソースオペ
    ランドの読み出しが可能なレジスタファイルを割り当て
    ると共に、前記各命令フィールドのフィールド番号の前
    記第1の所定部分とは少なくとも一部が異なる第2の所
    定部分をもとに、その命令フィールドの命令の実行結果
    の書き込みが可能なレジスタファイルを割り当てる割り
    当て手段とを具備することを特徴とするVLIWプロセ
    ッサ。
  2. 【請求項2】 複数の命令フィールドを有する長命令語
    (Very Long Instruction Word:VLIW)を実行する
    VLIWプロセッサにおいて、 それぞれ固有のレジスタ番号のレジスタの群からなる複
    数のレジスタファイルと、 長命令語中の各命令フィールドのソースレジスタ指定部
    の示すレジスタ番号を、その命令フィールドのフィール
    ド番号の第1の所定部分により修飾し、前記各命令フィ
    ールドのデスティネーションレジスタ指定部の示すレジ
    スタ番号を、その命令フィールドのフィールド番号の前
    記第1の所定部分とは少なくとも一部が異なる第2の所
    定部分により修飾することで、前記複数のレジスタファ
    イルの中から、前記各命令フィールド毎に、その命令フ
    ィールドの命令で参照するソースオペランドの読み出し
    が可能なレジスタファイルを割り当てると共に、その命
    令フィールドの命令の実行結果の書き込みが可能なレジ
    スタファイルを割り当てる割り当て手段とを具備するこ
    とを特徴とするVLIWプロセッサ。
  3. 【請求項3】 前記割り当て手段は、前記各命令フィー
    ルドのソースレジスタ指定部の示すレジスタ番号の上位
    に、その命令フィールドのフィールド番号の前記第1の
    所定部分を付加し、前記各命令フィールドのデスティネ
    ーションレジスタ指定部の示すレジスタ番号の上位に、
    その命令フィールドのフィールド番号の前記第2の所定
    部分を付加するレジスタ番号修飾を行うことを特徴とす
    る請求項2記載のVLIWプロセッサ。
  4. 【請求項4】 複数の命令フィールドを有する長命令語
    (Very Long Instruction Word:VLIW)を実行する
    VLIWプロセッサにおいて、 長命令語の各命令フィールドにそれぞれ対応して設けら
    れ、対応する命令フィールドの命令の指定する演算を実
    行する演算器と、 長命令語の各命令フィールドのフィールド番号に対応付
    けられた複数のレジスタファイルと、 この複数のレジスタファイルの中から、長命令語中の各
    命令フィールドのフィールド番号の第1の所定部分をも
    とに、その命令フィールドの命令で参照するソースオペ
    ランドの読み出しが可能なレジスタファイルを割り当て
    ると共に、前記各命令フィールドのフィールド番号の前
    記第1の所定部分とは少なくとも一部が異なる第2の所
    定部分をもとに、その命令フィールドの命令の実行結果
    の書き込みが可能なレジスタファイルを割り当てる割り
    当て手段とを具備し、 前記割り当て手段は、実行すべき長命令語中の各命令フ
    ィールドの命令をデコードするデコード手段であって、
    ソースオペランドを使用する命令の場合には、その命令
    フィールドのフィールド番号の前記第1の所定部分をも
    とに決定される前記レジスタファイルからその命令フィ
    ールドに対応する前記演算器で用いるソースオペランド
    の読み出しを行うデコード手段と、前記各演算器にそれ
    ぞれ対応して設けられ、対応する演算器の演算結果を、
    その演算器に対応する命令フィールドのフィールド番号
    の前記第2の所定部分をもとに決定されるレジスタファ
    イルへの書き込み用に一時保持する複数のバッファ手段
    とを含むことを特徴とするVLIWプロセッサ。
  5. 【請求項5】 前記割り当て手段は、前記各レジスタフ
    ァイルにそれぞれ対応して設けられた複数の第1のバイ
    パス回路と、この各第1のバイパスパス回路にそれぞれ
    対応して設けられた複数の第2のバイパス回路とを更に
    含んでおり、 前記第1のバイパス回路は、当該バイパス回路に対応す
    る前記レジスタファイルから読み出されるソースオペラ
    ンドを用いる前記各演算器にそれぞれ対応して設けられ
    る複数の第1のマルチプレクサであって、そのソースオ
    ペランド及び当該バイパス回路に対応する前記レジスタ
    ファイルへの書き込みに用いられる前記各バッファ手段
    の保持データのうちの1つをソースオペランドとして選
    択する複数の第1のマルチプレクサから構成され、 前記第2のバイパス回路は、当該バイパス回路に対応す
    る前記第1のバイパス回路内の前記各第1のマルチプレ
    クサにそれぞれ対応して設けられる複数の第2のマルチ
    プレクサであって、その第1のマルチプレクサにより選
    択されたソースオペランド及びその第1のバイパス回路
    に対応する前記レジスタファイルへの書き込みに用いら
    れる前記各バッファ手段の保持データのうちの1つをソ
    ースオペランドとして選択して対応する前記演算器に出
    力する複数の第2のマルチプレクサから構成されている
    ことを特徴とする請求項4記載のVLIWプロセッサ。
JP23769496A 1996-09-09 1996-09-09 Vliwプロセッサ Expired - Fee Related JP3737573B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23769496A JP3737573B2 (ja) 1996-09-09 1996-09-09 Vliwプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23769496A JP3737573B2 (ja) 1996-09-09 1996-09-09 Vliwプロセッサ

Publications (2)

Publication Number Publication Date
JPH1083302A true JPH1083302A (ja) 1998-03-31
JP3737573B2 JP3737573B2 (ja) 2006-01-18

Family

ID=17019134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23769496A Expired - Fee Related JP3737573B2 (ja) 1996-09-09 1996-09-09 Vliwプロセッサ

Country Status (1)

Country Link
JP (1) JP3737573B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996023608A1 (en) * 1995-02-02 1996-08-08 Bethlehem Steel Corporation Method for producing flanged structural products directly from slabs
JP2001290798A (ja) * 2000-04-07 2001-10-19 Nintendo Co Ltd ベクトルの効率的な読み出しおよび格納方法および装置
US8738892B2 (en) 2004-02-12 2014-05-27 Panasonic Corporation Very long instruction word (VLIW) computer having efficient instruction code format
JP2016173793A (ja) * 2015-03-18 2016-09-29 ルネサスエレクトロニクス株式会社 プロセッサ、プログラムコード変換装置及びソフトウェア

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996023608A1 (en) * 1995-02-02 1996-08-08 Bethlehem Steel Corporation Method for producing flanged structural products directly from slabs
JP2001290798A (ja) * 2000-04-07 2001-10-19 Nintendo Co Ltd ベクトルの効率的な読み出しおよび格納方法および装置
US8738892B2 (en) 2004-02-12 2014-05-27 Panasonic Corporation Very long instruction word (VLIW) computer having efficient instruction code format
US9697004B2 (en) 2004-02-12 2017-07-04 Socionext Inc. Very-long instruction word (VLIW) processor and compiler for executing instructions in parallel
JP2016173793A (ja) * 2015-03-18 2016-09-29 ルネサスエレクトロニクス株式会社 プロセッサ、プログラムコード変換装置及びソフトウェア

Also Published As

Publication number Publication date
JP3737573B2 (ja) 2006-01-18

Similar Documents

Publication Publication Date Title
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
JP3797471B2 (ja) マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
CA1174370A (en) Data processing unit with pipelined operands
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
US5504932A (en) System for executing scalar instructions in parallel based on control bits appended by compounding decoder
US6966056B2 (en) Processor for making more efficient use of idling components and program conversion apparatus for the same
KR100705507B1 (ko) 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치
US6128721A (en) Temporary pipeline register file for a superpipelined superscalar processor
JPH09311786A (ja) データ処理装置
JP2002024011A (ja) プロセッサにおける命令の叙述された実行
US6542918B1 (en) Prefix sums and an application thereof
USRE41751E1 (en) Instruction converting apparatus using parallel execution code
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
JP3866513B2 (ja) データストリーミングのためのコンピュータのプロセッサ及び方法
Sprangle et al. Facilitating superscalar processing via a combined static/dynamic register renaming scheme
US6064818A (en) Straight path optimization for compilers
JP3737573B2 (ja) Vliwプロセッサ
JP2002251284A (ja) データ処理装置
US7346763B2 (en) Processor instruction with repeated execution code
EP0545927B1 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
JP2848727B2 (ja) 並列演算処理装置
US6704855B1 (en) Method and apparatus for reducing encoding needs and ports to shared resources in a processor
JP3341662B2 (ja) 情報処理装置及び多ポートレジスタファイル
JPH08263289A (ja) 複数命令流パイプライン計算機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051017

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: 20051025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051027

LAPS Cancellation because of no payment of annual fees