JPH06230969A - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JPH06230969A JPH06230969A JP5336510A JP33651093A JPH06230969A JP H06230969 A JPH06230969 A JP H06230969A JP 5336510 A JP5336510 A JP 5336510A JP 33651093 A JP33651093 A JP 33651093A JP H06230969 A JPH06230969 A JP H06230969A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- write
- functional unit
- processor
- port
- 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
- 238000012545 processing Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 30
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000003247 decreasing effect Effects 0.000 abstract 2
- 230000008569 process Effects 0.000 description 24
- 101150099915 Rsrc2 gene Proteins 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 101150043159 Rsrc1 gene Proteins 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 1
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 1
- 108700012361 REG2 Proteins 0.000 description 1
- 101150108637 REG2 gene Proteins 0.000 description 1
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 1
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
ンスが改善された新しいプロセッサを提供する。 【構成】 命令送出レジスタのスロットの数とレジスタ
ファイルへのポートの数を減らすことによって、VLI
Wアーキテクチャのコストパフォーマンスを改善する。
命令の減少した数は、各命令が指向している機能ユニッ
トを識別する命令中のコードに従って、選ばれた機能ユ
ニットに分配される。命令は、更に活性化されている機
能ユニットに割当てられている読出しポートを識別す
る。
Description
第1の数の機能ユニットと、 b)2以上で第1の数より小さい第2の数の命令を保持
するため、及び、命令と機能ユニットとの対応を特定す
るためのコードを保持するための命令レジスタと 、c)適切な1つの機能ユニットに命令レジスタで並列
に命令を実行させるための実行制御手段とを具えたプロ
セッサに関するものである。
グラマブル命令フォーマットのVLIWアーキテクチャ
への拡張」("A programmable Instruction format ext
ensionto VLIW architectures", A.De Gloria著、コン
プユーロ(CompEuro)1992議事録「コンピュータシステ
ム及びソフトウェアエンジニアリング」"Computer syst
em and software engineering", IEEE computer societ
y press 発行)から既知である。VLIWとは「大変長
い命令語」(Very Long Instruction Word)を意味す
る。VLIWアーキテクチャを有するプロセッサは、乗
算器、加算器、ALU、定数発生ユニット、メモリー等
の機能ユニットを具える。VLIWアーキテクチャを有
するプロセッサは、コンパイラによってプランニングさ
れる命令の拡張における並列化を可能にする。
ックサイクルで多くの命令がプログラムメモリーから命
令レジスタに並列にロードされる。レジスタ中の命令
は、全ての機能ユニットに対する明示オプコード及びオ
ペランド仕様を含む。レジスタからの命令は並列に機能
ユニットに供給される。
ットの全てが同時に活性状態になることは極めて稀であ
る。この事実は、全ての機能ユニットに対して同時に必
要とするより少ないオプコード及びオペランド仕様を各
命令の中に具えたアーキテクチャを可能にする。マルチ
プレクサを用いることによって、各命令は、活性化され
るべき選択された機能ユニットに向く。このように、性
能を損なうことなく命令メモリーのサイズを節減するこ
とが可能になる。命令が元のVLIWアーキテクチャに
おけるように極めて長くない場合には、これを”ノット
ソーVLIW”アーキテクチャと呼んでもよい。
異なったクロックサイクルに異なった機能ユニットに命
令を出さなければならない。このため、従来のアーキテ
クチャは、どの命令がどの機能ユニットに導かれるかを
選択するマルチプレクサを具え、そのオプコード及びそ
のオペランド仕様をこの選択された機能ユニットに送り
出している。
モード)又はレジスタファイル中のオペランドのアドレ
ス(レジスタモード)を含む。後者のモードについて
は、各機能ユニットがレジスタファイルに対して少なく
とも1つの読出しポートを持つ。命令がレジスタモード
のときは、オペランド仕様が読出しポートのアドレス入
力に供給される。これに応答してアドレスレジスタの内
容が読出しポートに出力される。
タは、レジスタから並列に読出すことができる読出しポ
ートを具えたマルチポートレジスタファイルに集められ
る。レジスタファイルは、各機能ユニットの各オペラン
ド入力に対してそれぞれのポートを持つ。例えば各乗算
器機能ユニットはそれぞれ2つの読出しポートに接続さ
れる。これと反対に、命令によって定められる定数が供
給される”定数”ユニットは、読出しポートには接続さ
れない。
は、このようなレジスタファイルはシリコンの大きな面
積を必要とし、かなりの電力を消費する。本発明は、特
に、シリコンの面積を減少させ、電力の消費を減少させ
ることを目的とするものである。
が、命令レジスタの命令に関するオペランドを格納する
ためのマルチポートレジスタファイルを有すること、該
マルチポートレジスタファイルが、並列にオペランドに
アクセスするための第3の数の読出しポートを有するこ
と、該第3の数は、第2の数の機能ユニットからなる機
能ユニットのサブセットのいずれかによってレジスタフ
ァイルから要求されるオペランドの最大数以上であるこ
と、該第3の数は、機能ユニット全体によって要求され
るオペランドの総数より小さい数であること、及び、プ
ロセッサが、読出しポートに並列にアクセスして命令を
実行することを指示された機能ユニットの読出しアクセ
スを選択的に行わせるための読出しアクセス供与手段を
具備することを特徴とするプロセッサを提供するもので
ある。
トの数に比例するので、ポートの数を減らせば必要な面
積と電力消費を減らすことができる。並列に使用される
ポートの数は、並列にスタートするために実行できる命
令の数によって決まる。この数は、全ての機能ユニット
が同時に要求するオペランドの全数より少ない。機能ユ
ニットとレジスタファイルへのポートとの間にプログラ
マブルな接続を設けることによって、プロセッサによっ
て達成される並列処理の処理量を減らすことなしに、レ
ジスタファイルへのポートの数をこのポートの全数より
小さくすることができる。
ポートが読出しポートの群からなること、少なくとも1
つの特別な群が少なくとも2つの読出しポートを有する
こと、読出しアクセス供与手段が群毎の機能ユニットに
与えられた読出しポートを選択するように構成されたこ
と、少なくとも1つの機能ユニットがそれぞれのオペラ
ンドを同時に受信するための少なくとも2つの入力部を
有すること、及び、機能ユニットの1つに対して該特別
な群が選択される度毎に該入力部がそれぞれ所定の該特
別な群からの読出しポートに接続されることを特徴とす
る。プログラムの命令が該群のみを識別することが必要
のため、各ポートが該命令の中で個々に識別されるとき
に必要になるより小さい命令の部分がポート選択によっ
て占拠されるに過ぎない。
ジスタが命令を送出するための第2の数のそれぞれの送
出スロットからなること、各送出スロットが少なくとも
1つの読出しポートの群のそれぞれに対応すること、及
び、特別な機能ユニットが特別な送出スロットからの命
令を実行する度毎に該特別な送出スロットに対応する群
からの読出しポートにアクセスするように構成されたこ
とを特徴とする。このように、送出スロットを個々に識
別する必要がなく、機能ユニットに接続されたポートの
群を必要とし、これは、命令が送出スロットと群を個別
に識別することを含む場合より小さい命令が選択を満足
させることを意味する。
な群が第4の数の所定のポートを含むこと、及び、該第
4の数が機能ユニットのいずれか1つによって要求され
るオペランドの最大数に等しいことを特徴とする。各群
がいずれの機能ユニットをも供給できるようにするた
め、各群のポートの数は、いずれかの機能ユニットによ
って必要とされるオペランドの最大数に等しい。実際に
は、一部の機能ユニットはそのように多くのオペランド
をレジスタファイルから要求しないかも知れない。
2(乗算器の場合のように)とすると、機能ユニットに
対して準備される群のポートの数は2である。この数の
ポートが、また、全くポートを必要としない定数を供給
する機能ユニットに対しても有効にされる。
送出スロットが、該特別な送出スロットに対応する群の
読出しポートのそれぞれのアドレス入力に接続された同
じ所定数のアドレスフィールドを含み、該特別な送出ス
ロットからの命令を実行する機能ユニットがアドレスさ
れたオペランドを要求するか否かに拘わらず、該読出し
ポートでアドレスされたオペランドにアクセスするよう
に構成されたことを特徴とする。このように、アドレス
フィールドは、ポートにアクセスし得る機能ユニットと
は関係なしに、その機能ユニットがポートを全く使用し
ないかどうかに拘わらず、直接レジスタファイルに出力
される。これは、レジスタファイルのためのアドレスデ
コードが、送出スロットで命令を実行すべき機能ユニッ
トの選択が行われる直前に開始されるため、処理を高速
化する。
ォーマットを持つことである。。即ち、命令レジスタの
それぞれの固有部分の一般の機能(オプコード、オペラ
ンドアドレス、命令を実行すべき機能ユニットを識別す
るためのコード、その他)は、命令の実行に使用される
機能ユニットに関係なく、並列に実行するために選択さ
れた機能ユニットの組み合わせに関係なく、或いは命令
自身に関係なく、少なくとも機能ユニットと命令の数に
ついては同じである。命令がデコードされるより前にア
ドレスデコードが開始されるため、これは利点である。
更に例えば、命令レジスタと命令のルートになる他のユ
ニットとの間に設けられるスイッチング回路を簡単にす
る利点もある。
とも1つの機能ユニットが、1つの命令の実行を指示さ
れたとき、更に該1つの命令を送出する送出スロットの
アドレスフィールドから情報を受信し、該少なくとも1
つの機能ユニットが実行の間該情報をオペランドとして
使用することを特徴とする。このように、オペランド
は、直接オペランドを必要とする処理に対しては直接オ
ペランド(例えば定数)としても使用される。オプコー
ドがデコードされる前に、或いは少なくともオプコード
が指向する機能ユニットの識別がデコートされる前に、
そのオペランドが定数かアドレスかいずれであるかは分
からない。従って機能ユニットにオペランドが供給され
ると同時に、レジスタファイルはオペランドをアドレス
としてデコードを開始する。デコードを待つことは処理
の速度を低下させる。オペランドがイミジエートである
と、レジスタファイルからのデータアクセスは無視され
る。
ポートレジスタファイルが少なくとも1つの書込みポー
トを有すること、及び、プロセッサが、並列に命令を実
行することを指示された機能ユニットの書込みポートに
選択的にアクセスしそれから結果を生成する書込みアク
セス供与手段を有することを特徴とする。このようにし
て、レジスタファイルに対して機能ユニットより少ない
書込みポートを使用することが可能であり、これは面積
と電力消費を低減する。書込みポートの選択は送出スロ
ットからの明示の選択なしにプランニングされることも
ある。オプコードの送出と結果の生成との間に利用でき
る若干の時間があるため、これが処理速度を低下させる
ことはない。
アクセス供与手段が、機能ユニットが命令を実行するこ
とを指示された後のレイテンシー期間に、結果アドレス
フィールドの内容に基づいて、機能ユニットの1つの出
力部を書込みポートに接続するように構成されたことを
特徴とする。このように、レジスタファイルへの書込み
ポートの数は、機能ユニットの数より小さく保つことが
できる。
ジスタが命令を送出するための第2の数のそれぞれの送
出スロットからなること、各送出スロットが同じそれぞ
れの数の結果アドレスフィールドを含むこと、及び、書
込みアクセス供与手段が該アドレスフィールドの内容を
書込みポートのアドレス入力部に送るように構成された
ことを特徴とする。
アクセス供与手段が、機能ユニットが命令を実行するこ
とを指示された後のレイテンシー期間に、結果アドレス
フィールドの内容に基づいて、機能ユニットの1つの出
力部を書込みポートに接続するように構成されている。
機能ユニットが処理を実行するとき、処理の開始と結果
が有効になるまでの間に1クロックサイクル以上のレイ
テンシーがあることがある。このレイテンシーは使用さ
れる機能ユニットによって変化する。
おいては、レジスタファイルが少なくとも2つの書込み
ポートを持ち、書込み選択手段が予備的割当て手段を有
し、該予備的割当て手段がその予備的割当ての後1クロ
ックサイクルの間特別な書込みポートに機能ユニットを
予備的に割当て、そのクロックサイクルの中で該機能ユ
ニットの1つの実行の結果が有効になり、更に、該予備
的割当て手段が機能ユニット1つの出力を該特別な書込
みポートに接続し、該結果アドレスフィールドの内容を
該クロックサイクルの間該特別な書込みポートに与える
ように構成されたことを特徴とする。この実施例によれ
ば、プロセッサが有効になる結果のトラックを保持し、
結果が書込まれる前に書込みポートの割当てを計画す
る。
当て手段が、クロックサイクルの間この特別な書込みポ
ートが以前に機能ユニットの1つに割当てられていない
との制約の下に書込みポートから該特別な書込みポート
を選択するように構成されたことを特徴とする。このよ
うに、これらの結果を生じる処理が異なった時刻に開始
されたとしても同時に結果を生じる機能ユニット間の衝
突を避けることができる。
LIWのCPUは、種々の用途、即ち、スーパーコンピ
ュータからワークステーション及びパーソナルコンピュ
ータに至る用途に使われる。更に、ワークステーショ
ン、パーソナルコンピュータ、ビデオ或いはオーディオ
製品に専用又はプログラマブルなプロセッサとして使わ
れる。
は命令メモリー102 から命令出力レジスタIIRにロー
ドされる。各クロックサイクルに、新しい極めて長い命
令が命令出力レジスタから発信される。この命令は、V
LIW型CPUの中に各機能ユニット(CONTROL,CONST,
ALU1,ALU2,MUL,FPU,MEM )に対する送出スロットを有す
る。VLIWマシンは機能ユニットのどのような有用な
組み合わせをも包含し得るが、ここではその1つを例示
する。いくつかの機能ユニットがあり、必要とする処理
に依存する異なった型の機能ユニットがある。機能ユニ
ットに対するオペランドは、分割マルチポートを持つレ
ジスタファイル101 から読出す。機能ユニットからの結
果はまたこのファイルに書込まれる。
ロックサイクルでスタートする処理を特定する。図2
は、CONTROL 処理、CONST 処理、ALU1処理、ALU2処理、
MUL 処理、FPU 処理、及びMEM 処理を含むVLIW命令
201 を示す。言い換えれば、VLIW命令は、図1のV
LIW型CPUの中に各機能ユニットに対して1つの送
出スロットを含む。
ットの内容を示す。この送出スロットはCONTROL オプコ
ード及び2つのレジスタ仕様Rsrc1及びRsrc2を含む。
これらのレジスタはそれぞれソースレジスタ1及びソー
スレジスタ2である。203 はCONST 処理に特定された送
出スロットの内容を示す。この送出スロットは、定数値
及びレジスタ仕様Rdestを含む。このレジスタはデステ
ィネーションレジスタである。
を示す。この送出スロットはALU オプコード及び3つの
レジスタ仕様Rsrc1、Rsrc2及びRdestを含む。205 は
MUL 処理を含む送出スロットの内容を示す。この送出ス
ロットはMUL オプコード及び3つのレジスタ仕様Rsrc
1、Rsrc2及びRdestを含む。206 はFPU 処理を含む送
出スロットの内容を示す。この送出スロットはFPU オプ
コード及び3つのレジスタ仕様Rsrc1、Rsrc2及びRde
stを含む。
を示す。この送出レジスタはMEM オプコード及び2つの
レジスタ仕様Rsrc1及びRsrc2又はRdestを含む。これ
らの送出スロットは例示であり、機能ユニットの他の有
用な構成に修正してもよい。
ルで全ての機能ユニットでスタートさせることが可能で
ある。サイクル”i”でスタートした処理は、1サイク
ルで又は複数のサイクルで完結する。完結は、処理の結
果をデスティネーションレジスタに書込むことによって
証明される。結果のない処理("STORE" のような処理)
については、処理の完結は処理の生起に対応して状態が
変化する時である。
数発生ユニット)のように単純である。このユニット
は、デスティネーションレジスタに置かれる定数を生成
する。ALU,MUL 及びFPU ユニットは、1つ又は2つの引
数について数学的、論理的及びシフト処理を実行し、デ
スティネーションレジスタに1つの結果を生成する。
いる。CONTROL ユニットは命令が送出されるシーケンス
を決める。NOP (処理せず)がCONTROL ユニットに送り
出される場合には、命令は命令メモリーから連続した順
序で送出される。CJMPF 又はCJMPT (それぞれ、条件ジ
ャンプ偽及び条件ジャンプ真)処理が制御ユニットに送
出されるときは、Rsrc1レジスタの内容が真値を持つと
判断される。即ち、ブール関数、値及びRsrc2の内容が
アドレスとして用いられ、特定の条件に合致したときの
みそこから命令の送出が続けられる。特定の条件に合致
しないときは、命令の送出は連続的に行われる。
る。換言すれば、データワードがレジスタファイルとシ
ステム主メモリーとの間を動く。ロード処理は、ロード
されるべきデータワードの主メモリーにおけるアドレス
としてRsrc1を用い、Rdestがロードされた値が格納さ
れるべきレジスタを決める。格納処理は、アドレスとし
てRsrc1の定数を用い、格納されるべき値としてRsrc2
の内容を用いる。勿論、ロード及び格納処理については
多くの変形がある。ロード命令はRsrc2を必要とせず、
格納命令はRdestを必要としないため、送出スロットは
ただ2つのレジスタフィールドを必要とするに過ぎな
い。
上で動作するためには、”微粒子並列”又は”命令レベ
ル並列”翻訳が行われなければならない。これは、AN
SIC等の通常の高水準プログラミング言語をVLIW
マシンのための命令に翻訳するコンパイラによって行わ
れる。VLIWマシンで使われるコンパイラは、ジョン
・アール・エリス(John R. Ellis )による「ブルドッ
グ:VLIWアーキテクチャのためのコンパイラ」(BU
LLDOG:A compiler for VLIW architectures, MIT Press
1985, ISBN 0-262-05034-X )に記述されている。
させるために、1CONTROL,1CONSTANT, 2INTEGER ALU,
1INTEGER MULTIPLY, 1FLOATING POINT, 及び1MEMORY
の処理が各サイクル毎に送出されなければならない。高
水準言語で表された実際のプログラムの性質によって、
このピークでの実行を維持する処理の適切な混合を見出
すことができない。コンパイルの後、与えられたクロッ
クサイクルの中で並列に実行できる一連の処理は、利用
できる機能ユニット型にマッチしない混合型である。若
干の場合は、マシンのユニットの数より少ない並列処理
が行われるフェーズを通ってプログラムが進む。これ
は、種々の問題を生じる。
の利用が不充分であることである。中央レジスタファイ
ルのシリコン面積及び電力消費はポートの総数に比例す
る。従って、このポートの利用度が高いことは重要であ
る。
又はピーク付近の性能に維持するために必要な命令の帯
域幅が高いことである。NOP コードを含む空スロットが
この帯域幅に貢献する。帯域幅は、直接Iキャッシュ
(命令キャッシュ)サイズに、そして、バス及び他のメ
モリーシステムの部品のコストに跳ね返る。
たプログラムのためのコードのサイズは、RISC型C
PUのために翻訳された同一プログラムのサイズより大
きいことである。VLIWの性能はRISCのそれより
高いとはいえ、VLIWのコストの効率はRISCのそ
れより低いのである。
示す。IIRはマシンの機能ユニットより少ない送出ス
ロットを持つ。例えば、7つの機能ユニットのマシンに
対して3つの送出スロットで足りる。一般に、或る数及
び型の機能ユニットに対する送出スロットの数は、平均
効率とコストとの間の関係で決まる。しかし、Nユニッ
トのマシンは、N/4と2N/3との間の送出スロット
を持つとするのが合理的である。
1a, R1b)(R2a, R2b)(R3a,R3b))を有するレ
ジスタファイル403 を含む。適切なレジスタファイルの
例は、インテルiWARP&i960チップの中に見出
すことができる。それには、IIRの各スロットのため
の読出しポートの群がある。読出しポートはレジスタフ
ァイルの中のレジスタの内容を読むためのものである。
各群のポートの数は、いずれかの機能ユニットが必要と
するソースレジスタの最大数と同じである。この場合、
2つを超えるソースレジスタを必要とする機能ユニット
はないので、読出しポートの各群は2つの読出しポート
を有する。このように、2つの読出しポートの3つの群
があり、都合6つの読出しポートがある。
制御されるスイッチマトリクス401が、どの読出しポー
トをどの機能ユニットの入力に接続するかを決める。
数の群(W1,W2,W3,W4 )を有する。IIRの各スロ
ットに対して少なくとも1つの書込みポート群がある。
各群の書込みポートの数は、どの機能ユニットも必要と
するデスティネーションレジスタの最大数である。この
例では、1つを超えるデスティネーションレジスタを必
要とする機能ユニットはないので、各群の書込みポート
はただ1つである。
制御ユニット(RFWC)の制御の下で、機能ユニット
の出力を書込みポートに接続する。
マットを示す。この命令は、処理のための3つのスロッ
トを持つ。各スロットはどのような型の処理も含む。前
記のように6つの型の処理があり、各型は機能ユニット
CONTROL,CONST,ALU,MUL,FPU,及びMEM のそれぞれの型で
ある。
々の点で異なる。第1は、送出スロットはスロット全て
同じ長さである。送出スロットの内容のフォーマット
は、CONTROL,CONST,ALU,MUL,FPU,及びMEM のそれぞれに
対して420,430,440,450,560,及び470 に示されている。
スロットが一定長のため、CONTROL型の処理420 の終端
に若干のブランクスペースを挿入する必要が生じる。
ニットが処理を実行するかを識別する手段を有する。図
では、全ての送出スロットがUNIT ID フィールドを持
ち、これが処理を予定している機能ユニットを識別す
る。8つまでの機能ユニットを持つマシンについては、
UNIT ID フィールドは3ビット幅を必要とするに過ぎな
い。
する方法は多くの他の方法で置き換えることができる。
1つの代替方法は、オプコードにユニットを含ませるこ
とである。もう1つの代替方法は、オプコードにユニッ
ト型を含ませ、ハードウェアをその型のユニットに割り
当てることである。
サイクルに3つの処理命令がIIRから送出される。送
出スロットのソースレジスタフィールド(Rsrc1, Rsr
c2)は、レジスタファイルの読出しポート((R1a, R
1b)(R2a, R2b)(R3a,R3b))をアドレスするた
めに使用される。ユニット識別フィールドに基づいて、
オプコード制御は定められた機能ユニットに向けられ
る。
レジスタは書込み制御ユニット(RFWC)に向けられ
る。この書込み制御ユニットは、各機能ユニットのレイ
テンシーを知り、結果が生成されたときにトラックを確
保する。この書込み制御ユニットは、結果を書込むため
に適当なバスをレジスタファイルに割り当てる。3送出
スロットマシンでは、ユニットレイテンシーが等しくな
いことによるトラヒックのバーストを処理するために3
つ以上の書込みバスがある。ここでは、4つの書込みバ
スがある。
イナーは、予想される仕事量に基づいて機能ユニットの
数と型を選ぶ必要がある。デザイナーはまた、IIRの
中の送出スロットの数とコストパフォーマンスを最良に
する書込みバスの数も選ばなければならない。
な上方互換性を与える。例えば、追加のFPU,ALU,及びCO
NST を含み、IIRのスロットの数を4つに増すことに
よって、高度の性能のCPUを作りたいと仮定する。古
いユニット識別フィールド値が新しいマシンの同じユニ
ット型にマップする限りは、新しいマシンは、古いマシ
ンからのバイナリーユニットIDを用いることができ
る。古いマシンのコードイメージは、従って新しいマシ
ン上でも動作する。例えば、プログラムのロードフェー
ズの間追加のNOP 処理を加える。新しいマシンが古いマ
シンより広いフィールドを持つ場合は、ユニットIDフ
ィールドにゼロを追加するだけでよい。しかしながら、
再コンパイル、再スケジューリング、コードの再アセン
ブル等は必要なく、全ての互換性出力はプログラムロー
ドの時に解決できる。
((R1a, R1b)(R2a, R2b)(R3a, R3b))と機
能ユニットの入力との間のスイッチングマトリクスの実
施例を示す。このスイッチングマトリクスに対しては、
多くの代替技術がある。マルチプレクサ801 は、対応す
る機能ユニットの入力ポートに接続されており、各レジ
スタファイルの読出しポートは全てのマルチプレクサ80
1 の入力に接続されている。例えばポートR1bが、全て
の機能ユニットのマルチプレクサのB入力に接続されて
いる。
命令のバイナリーコードを持つ。命令が送出されると、
各送出スロットのRsrc1及びRsrc2のフィールドがレジ
スタファイル読出しポート((R1a, R1b)(R2a, R
2b)(R3a, R3b))に対するアドレスを読出すために
使用される。これにより、6つのレジスタの全てが読出
される。実際にはこれらのレジスタが全て必要ではない
場合もある。例えばスロット1が定数型の処理を送出す
る場合もある。この場合はレジスタファイルのアドレス
はランダムである。しかしながら、送出された処理がR
src1又はRsrc2又は両者を必要とする場合は、適宜のレ
ジスタ値が機能ユニットの全てのMUX入力で、特に処
理が実行されるべき機能ユニットのMUXで有効にな
る。
出しポート及びアドレッシングポートを示す。図6B
は、入力スイッチ制御論理ブロック902 を示す。図示し
たように、レジスタファイル403 に対する読出しアドレ
ス入力((AR1a, AR1b)(AR2a, AR2b)(AR
3a, AR3b))は、全て6ビット幅で命令送出レジスタ
IIRのレジスタソースフィールドから供給される。即
ち、それぞれ、IIR送出1.Rsrc1、IIR送出1.Rsr
c2、IIR送出2.Rsrc1、IIR送出2.Rsrc2、IIR
送出3.Rsrc1、IIR送出3.Rsrc2である。これらのア
ドレスを基にして、オペランドがそれを必要とする機能
ユニットに対して読出しポート((R1a, R1b)(R2
a, R2b)(R3a, R3b))から供給される。
3.wa, W4.wa)及び書込みエネーブル入力(W1.we, W
2.we, W3.we, W4.we)が図9AのRFWCから供給さ
れる。処理の結果は、図8のマルチプレクサ801,802,80
3 及び804 からW1,W2,W3及びW4 に供給される。
ング入力、即ちIIR.送出1.UNITD、IIR.送出2.UNITID
、IIR.送出3.UNITID は、命令送出レジスタのユニッ
ト識別フィールドから供給される。これらのアドレッシ
ング入力から、入力スイッチ制御902 が2ビット信号M0
C, M1C, M2C, M3C, M4C, M5C及びM6C を決める。これら
のマルチプレクサ制御信号はマルチプレクサ801 に供給
され、レジスタファイルからそれぞれの機能ユニット入
力に対してオペランドを供給する読出しバスを選択す
る。
ユニットのための全てのオプコードを発生する送信論理
の例を示す。
いはROMルックアップテーブルのような標準セル論理
のような、既知の種々の方法で実現できる機能論理ブロ
ックである。ここでは、ID割当てユニットが次のよう
に割当てる。即ち、ユニット0=control,ユニット1=
CO,ユニット2=ALU1,ユニット3=ALU2,ユニット4
=MUL,ユニット5=FPU,ユニット6=MEM である。更
に、1のマルチプレクサ制御フィールドが最左側入力
を、2が中央の入力を、そして3が最右側の入力を選択
すると仮定する。これらの仮定から、任意のユニットI
Dの割当ての組み合わせから必要なマルチプレクサ制御
フィールドの組み合わせへの変換テーブルを構成でき
る。このテーブルから若干の入力及び出力ベクトルを次
に例示する。
数) ユニットの処理を送出する。CONST ユニットは入力
を持たないのでマルチプレクサ制御を受けない。しかし
ながら、図7のオプコード指向論理は、COユニットオプ
コードを制御し結果をマルチプレクサに送るためにM1C
信号を必要とする。送出スロット2はMUL 処理を送出す
る。ここでM4C =2は、MUL(乗算器) ユニットの2つの
マルチプレクサがR2ポート値を選択するようにセット
する。他の全てのマルチプレクサは位置0にセットさ
れ、これがオプコード送信論理上で特定の用途を持つ。
送出スロット3によって送出されたユニット6の処理が
ロードされると、Rsrc2オペランドはロード処理によっ
て使用されないので、MEM ユニット指向のオプコードは
R3bバスの値を無視する。
ニットに対する全てのマルチプレクサが、これらの処理
を送出する送出スロットに対応するレジスタポートを選
択する。これは入力スイッチ制御ブロックの論理式を作
るための一般則である。
並列に、図7の回路が個別機能ユニットオプコードを発
生する。同じマルチプレクサ制御信号が図5のようにこ
の回路で使われる。規則は、送出スロットXがユニット
Yに対する処理を含む場合はユニットYがマルチプレク
サ制御信号値Xを受信し、Yのマルチプレクサは送出ス
ロットXの中のオプコードフィールドをその処理のため
のオプコードとして選択する。
クサ選択信号ゼロを受信する。そうすると、そのユニッ
トに対して無処理(NOP) オプコードを発生する。これ
は、無処理コード(図示せず)を受信するマルチプレク
サに対して追加の入力を加えるか、或いはオプコードマ
ルチプレクサユニットの論理式を変更するかによって行
われる。
これは実際にはダミーユニットである。 それは、オプ
コード、COユニット処理が送出された送出スロットのR
src1及びRsrc2フィールドの連鎖である2進値を発生し
出力する。
られる。例えば、高パフォーマンスのマシンは多分パイ
プラインになろう。このような場合、パイプラインレジ
スタ及びバイパス回路がこの基礎デザインに付加され
る。更に、1つの処理におけるUNITID及びオプコードフ
ィールドは、フィールド間の可動分離によって単一フィ
ールドに結合されるかも知れない。この可動分離は、異
なった機能ユニットに要求される異なった数のオプコー
ドビットに適応する。例えば、ALU はMLU 又はMEM ユニ
ットに比較してかなり多くのオプコードビットを必要と
する。このように、ALU に対してはMUL 及びMEM に対し
てより、UNITIDフィールドは短く、オプコードフィール
ドは長くなる。この場合、オプコード送信論理が最長の
可能なオプコードを表すビットのセットを受信するのと
同時に、入力スイッチ制御ブロックが、最長の可能なユ
ニットIDを表すビットのセットを受信できる。
を使わなくてもよい。ハードウェアとしては、どのオプ
コードをどの機能ユニット型にマップするかについてテ
ーブルを使い、ユニットIDフィールドをダイナミック
に割り当てることができる。
示す。機能ユニットは実行した処理の結果を出力レジス
タ806,807,808,809,及び810 に書込む。レジスタ806,80
7,808,809,及び810 は、書込みポートマルチプレクサ80
1,802,803,及び804 に接続される。図7に示すように、
CONST ユニットの中ではオプコードと結果の導出との間
に時間の経過はないので、CONST ユニットオプコードは
直接マルチプレクサ801,802,803,及び804 に接続されて
いる。マルチプレクサ801,802,803,及び804 は、制御入
力W1MC,W2MC,W3MC及びW4MCに基づいてそれらの出力W1,
W2,W3 及びW4 にそれぞれにつながる入力を選択す
る。出力W1,W2,W3 及びW4 は、それぞれ32ビット
幅でレジスタファイル403 の書込みポートに接続されて
いる。制御入力W1MC, W2MC, W3MC及びW4MCは、レジスタ
ファイル書込み制御ユニット(RFWC)によって供給
される。
ニット(RFWC)を示す。RFWCの入力は、IIR
からのユニットのID(送出1.UNITID、送出2.UNITID、
送出3.UNITID)及びデスティネーションレジスタアドレ
ス(送出1.Rdest、送出2.Rdest、送出3.Rdest)であ
る。RFWCは、出力として、4つのマルチプレクサ制
御信号(W1MC, W2MC, W3MC及びW4MC)、レジスタファイ
ルをアドレスするための4つの書込みアドレス(W1.w
a, W2.wa, W3.wa, W4.wa)及びレジスタファイルを
更に指向する4つの書込みポート書込みエネーブル信号
(W1.we, W2.we, W3.we, W4.we)を生成する。
示す。ユニットIDとオプコードを取り入れ、RFWC
のための書込みエネーブル入力を生成する。エンコーダ
ーは、ROM,PLA又は論理であってもよい。エンコ
ーダーは、処理が次の処理、即ちCONST,ALU,MUL,FPU 及
びMEM ロードのための結果を持つことを示すときは”
1”を得る。エンコーダーは、CONTROL 及びMEM ストア
に対して結果がないことを示すときは、”0”を得る。
例を示す。この例は、2つのサブブロック、SLOTブ
ロック1001及びLATブロック1002を含む。SLOTに
は4つの行と4つの列がある。4つの列は、レジスタフ
ァイルの4つの書込みポートW1,W2,W3 及びW4 に対
して必要である。4つの行は、機能ユニットの4つの可
能なレイテンシーに対して必要である。表にレイテンシ
ーの値を示した。機能ユニットのレイテンシーは、その
ユニットの処理のスタートからその処理の結果が書込み
マルチプレクサの入力点で有効になるまでの間のクロッ
クサイクルの数である。
応する入力書込みエネーブル信号が真ならば、レイテン
シーがRFWCのLATブロックによって見出される。
MULユニットの場合はレイテンシーが2である。RFW
Cはそれにより見出されたレイテンシーに対応するレイ
テンシー行に対してエネーブルフラグをセットする。MU
L 機能ユニットについてはフリーのSLOTがレイテン
シー行2に位置しており、そこにユニットID書込みア
ドレス及び書込みエネーブル情報が格納されている。続
く2クロックサイクルの間、この情報は1つの列を通っ
てレイテンシー行0に動く。
に用いられる。最上行は、レイテンシー3のために使わ
れ、最下行は、レイテンシー0のために使われる。各行
を通ってデータが下方へクロックサイクル毎に動く。通
過するデータは、ユニットID、書込みアドレス及び書
込みエネーブル表示である。 レイテンシー行0の出力
は、RFWCブロックの出力である。
れた3つの書込みエネーブル制御信号を得る。行の最右
側SLOTがこれらの制御入力を得る。若干の論理処理
の後、この最右側SLOTは3つの制御処理を通って同
一行の左側のSLOTブロックに動く。例えば、SLO
T33は3つの書込みエネーブル信号(L1.we, L2.we,
L3.we )をLATブロックから得る。SLOT33の制
御出力はスロット23に動く。SLOT33のデータ出力は
SLOT32に動く。
id)及び書込みエネーブル信号(we)をIIRの送出ス
ロットから得る。この例のIIRには3つのスロットが
あるので、3つのLATユニットかある。LATユニッ
トは4つの書込みエネーブル信号(we0,we1,we2,we3 )
を生成する。ユニットIDがCONST (レイテンシー=
0)で対応するweが真ならば、we0 は真になる。ユ
ニットIDがALU1,ALU2又はMEM (レイテンシー=1)
で対応するweが真ならば、we1 は真になる。ユニッ
トIDがMUL (レイテンシー=2)で送出. weが真な
らば、we2 は真になる。ユニットIDがFPU (レイテ
ンシー=3)で送出. weが真ならば、we3 は真にな
る。
実行例を示す。各SLOTはIIRから4つのデータ入
力(in1,in2,in3,in4 )を得て、1つのデータ出力(ou
t )を生成する。in1,in2,in3,in4 及びout はそれぞれ
9線を持ち、そのうち3線はユニットIDを通り、6線
は書込みアドレス(wa)を通る。第1の入力(in1)
はIIR.送出1.unitid及びIIR.送出1.Rdest である。第2
の入力(in2 )はIIR.送出2.Rdest 及びIIR.送出2.unit
idである。第3の入力(in3 )はIIR.送出3.Rdest 及び
IIR.送出3.unitidである。第4の入力(in4 )は、最上
行を除いて上の行スロットの出力に接続されている。最
上行ではこの入力は全てゼロの受信に接続される。
cator in", i1.we, i2.we, i3.we)を得る。信号 i1.w
e, i2.we,及びi3.we は、行の最右側のブロックを除い
て右側の次のブロックから来る。行の最右側のブロック
には、対応するLATブロックから来る。信号"we indi
cator in" は、最上のブロックを除いて上のブロックか
ら来る。最上のブロックには”0”の線が接続されてい
る。加えて、1つの行スロットの"we indicator in"
は、上のSLOTの"we indicator in" に接続されてい
る。最上行のSLOTは"0""we indicator in"を受信す
る。
we, o3.we, "we indicator out" )を生成する。信号o
1.we, o2.we, 及びo3.we は、最左側のスロットを除い
て左側の次のブロックに供給される。最左側のスロット
はどこにも接続されていない。信号"we indicator out"
は、最下側のスロットを除いて下の次のブロックに供給
される。最下側のスロットからは、書込みポートエネー
ブル信号(W1.we, W2.we, W3.we, W4.we)としてレ
ジスタファイルに供給される。最下行のout.unitid信号
は、図8のマルチプレクサ801,802,803,及び804 に供給
されるW1MC, W2MC, W3MC及びW4MC信号である。最下行の
out.wa信号は、図6Bのレジスタファイル403 に供給さ
れるレジスタファイル書込みアドレス(W1.wa, W2.w
a, W3.wa,W4.wa)である。
4:1マルチプレクサMUXは、we1, we2, we3, we の
制御の下でin1, in2, in3, in4 の1つを選択する。優
先的エンコーダーPRENは、入力we, i1.we, i2.we,
i3.we からwe1, we2, we3, we, o1.we, o2.we, 及びo
3.we を生成する。4入力論理ORゲートはwe1, we2,we
3, we を入力する。MUXはレジスタREG1に出力
し、ORはレジスタREG2に出力する。レジスタの出
力は、ブロックの出力になる。最下行のスロットは、格
納する必要がないためこれらのレジスタを持たない。
に対する書込みエネーブルの全ての可能な組み合わせに
ついて、必要なレイテンシー行でフリースロットが見出
されることを明確にする。PRENについての真値テー
ブルを次に示す。
号が活性化されているとin4 をoutに接続する。we3 が
活性化されているとin3 を、we2 が活性化されていると
in2を、we1 が活性化されているとin1 を、それぞれout
に接続する。PRENユニットは、同時にはその中の
1つだけを活性化("1")する。
ニットハードウェアは、同時に起きた4つを超える書込
みをプログラマー又はコンパイラが防ぐことを要求して
いる。例えば、次の処理シーケンスは禁止される。 time i :FPU ... i+1:MUL ... i+2:ALU1,ALU2 ... i+3:CO ...
ァイルへの書込みバスを必要とする。即ち、その1つ
は、サイクルi+3で完結するCO処理の結果を書込む
こと、そのうちの2つは、ALU1 及びALU2 につい
てi+2で処理がスタートしてi+3で完結すること、
その1つはMUL処理について、もう1つは、FPU処
理についてである。
ステムの効率とハードウェアのコスト低減に明らかに影
響している。この特別な例においては、4つの書込みポ
ートを持つレジスタファイルが、ずっと高価な5つの書
込みポートを持つレジスタファイルに代わって充分効果
があることが明確になった。
る。
を示す図である。
ある。
トを示す図である。
示す図である。
からの出力を示す図である。図6Bは、スイッチ制御へ
の入力及びそれからの出力を示す図である。
ある。
トを示す図である。図9Bは、RFWC/WEエンコー
ダーを示す図である。
ットの細部を示す図である。
を示す図である。
Claims (12)
- 【請求項1】 a)相互に並列に処理を実行するため
の、3以上である第1の数の機能ユニットと、 b)2以上で第1の数より小さい第2の数の命令を保持
するため、及び、命令と機能ユニットとの対応を特定す
るためのコードを保持するための命令レジスタと、 c)適切な1つの機能ユニットに命令レジスタで並列に
命令を実行させるための実行制御手段とを具えたプロセ
ッサにおいて、 プロセッサが、命令レジスタの命令に関するオペランド
を格納するためのマルチポートレジスタファイルを有す
ること、 該マルチポートレジスタファイルが、並列にオペランド
にアクセスするための第3の数の読出しポートを有する
こと、 該第3の数は、第2の数の機能ユニットからなる機能ユ
ニットのサブセットのいずれかによってレジスタファイ
ルから要求されるオペランドの最大数以上であること、 該第3の数は、機能ユニット全体によって要求されるオ
ペランドの総数より小さい数であること、及び、 プロセッサが、読出しポートに並列にアクセスして命令
を実行することを指示された機能ユニットの読出しアク
セスを選択的に行わせるための読出しアクセス供与手段
を具備することを特徴とするプロセッサ。 - 【請求項2】 該読出しポートが読出しポートの群から
なること、少なくとも1つの特別な群が少なくとも2つ
の読出しポートを有すること、該読出しアクセス供与手
段が群毎の機能ユニットに与えられた読出しポートを選
択するように構成されたこと、少なくとも1つの機能ユ
ニットがそれぞれのオペランドを同時に受信するための
少なくとも2つの入力部を有すること、及び、機能ユニ
ットの1つに対して該特別な群が選択される度毎に該入
力部がそれぞれ所定の該特別な群からの読出しポートに
接続されることを特徴とする請求項1に記載のプロセッ
サ。 - 【請求項3】 命令レジスタが命令を送出するための第
2の数のそれぞれの送出スロットからなること、各送出
スロットが少なくとも1つの読出しポートの群のそれぞ
れに対応すること、及び、特別な機能ユニットが特別な
送出スロットからの命令を実行する度毎に該特別な送出
スロットに対応する群からの読出しポートにアクセスす
るように構成されたことを特徴とする請求項1又は2に
記載のプロセッサ。 - 【請求項4】 各特別な群が第4の数の所定のポートを
含むこと、及び、該第4の数が機能ユニットのいずれか
1つによって要求されるオペランドの最大数に等しいこ
とを特徴とする請求項2又は3に記載のプロセッサ。 - 【請求項5】 各特別な送出スロットが、該特別な送出
スロットに対応する群の読出しポートのそれぞれのアド
レス入力に接続された同じ所定数のアドレスフィールド
を含み、該特別な送出スロットからの命令を実行する該
機能ユニットがアドレスされたオペランドを要求するか
否かに拘わらず、該読出しポートでアドレスされたオペ
ランドにアクセスするように構成されたことを特徴とす
る請求項3又は4に記載のプロセッサ。 - 【請求項6】 少なくとも1つの機能ユニットが、1つ
の命令の実行を指示されたとき、更に該1つの命令を送
出する送出スロットのアドレスフィールドから情報を受
信し、該少なくとも1つの機能ユニットが実行の間該情
報をオペランドとして使用することを特徴とする請求項
5に記載のプロセッサ。 - 【請求項7】 該マルチポートレジスタファイルが少な
くとも1つの書込みポートを有すること、及び、プロセ
ッサが、並列に命令を実行することを指示された機能ユ
ニットの書込みポートに選択的にアクセスしそれから結
果を生成する書込みアクセス供与手段を有することを特
徴とする請求項1乃至6のいずれか1項に記載のプロセ
ッサ。 - 【請求項8】 命令レジスタが命令を送出するための第
2の数のそれぞれの送出スロットからなること、各送出
スロットが同じそれぞれの数の結果アドレスフィールド
を含むこと、及び、該書込みアクセス供与手段が該アド
レスフィールドの内容を書込みポートのアドレス入力部
に送るように構成されたことを特徴とする請求項7に記
載のプロセッサ。 - 【請求項9】 該書込みアクセス供与手段が、該機能ユ
ニットが命令を実行することを指示された後のレイテン
シー期間に、該結果アドレスフィールドの内容に基づい
て、機能ユニットの1つの出力部を書込みポートに接続
するように構成されたことを特徴とする請求項8に記載
のプロセッサ。 - 【請求項10】 レジスタファイルが少なくとも2つの
書込みポートを持ち、書込み選択手段が予備的割当て手
段を有し、該予備的割当て手段がその予備的割当ての後
1クロックサイクルの間特別な書込みポートに機能ユニ
ットを予備的に割当て、そのクロックサイクルの中で該
機能ユニットの1つの実行の結果が有効になり、更に、
該予備的割当て手段が機能ユニット1つの出力を該特別
な書込みポートに接続し、該結果アドレスフィールドの
内容を該クロックサイクルの間該特別な書込みポートに
与えるように構成されたことを特徴とする請求項9に記
載のプロセッサ。 - 【請求項11】 予備的割当て手段が、該クロックサイ
クルの間この特別な書込みポートが以前に該機能ユニッ
トの1つに割当てられていないとの制約の下に書込みポ
ートから該特別な書込みポートを選択するように構成さ
れたことを特徴とする請求項10に記載のプロセッサ。 - 【請求項12】 該予備的割当て手段がレジスタのマト
リクスを含むことを特徴とする請求項11に記載のプロ
セッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US99808092A | 1992-12-29 | 1992-12-29 | |
US07/998080 | 1992-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06230969A true JPH06230969A (ja) | 1994-08-19 |
JP3916680B2 JP3916680B2 (ja) | 2007-05-16 |
Family
ID=25544720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33651093A Expired - Lifetime JP3916680B2 (ja) | 1992-12-29 | 1993-12-28 | プロセッサ |
Country Status (5)
Country | Link |
---|---|
US (1) | US6044451A (ja) |
EP (1) | EP0605927B1 (ja) |
JP (1) | JP3916680B2 (ja) |
KR (1) | KR100290325B1 (ja) |
DE (1) | DE69325785T2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960035259A (ko) * | 1995-03-31 | 1996-10-24 | 리 페치 | 감소된 판독 및/또는 기록 포트 대역폭을 갖는 레지스터 파일을 포함하는 컴퓨터 프로세서 |
JP2006500673A (ja) * | 2002-09-24 | 2006-01-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 処理装置、処理方法及びコンパイラ |
US7383422B2 (en) | 2004-02-12 | 2008-06-03 | Matsushita Electric Industrial Co., Ltd. | Very long instruction word (VLIW) computer having an efficient instruction code format |
KR20150062877A (ko) * | 2013-11-29 | 2015-06-08 | 삼성전자주식회사 | 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 |
JP2015130057A (ja) * | 2014-01-07 | 2015-07-16 | 富士通株式会社 | 処理装置 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370623B1 (en) * | 1988-12-28 | 2002-04-09 | Philips Electronics North America Corporation | Multiport register file to accommodate data of differing lengths |
DE69518403T2 (de) * | 1994-01-10 | 2001-03-29 | The Dow Chemical Co., Midland | Ein massiv multiplexierter, superskalarer prozessor mit harvard-architektur |
US5924128A (en) * | 1996-06-20 | 1999-07-13 | International Business Machines Corporation | Pseudo zero cycle address generator and fast memory access |
US5931939A (en) * | 1996-09-25 | 1999-08-03 | Philips Electronics North America Corporation | Read crossbar elimination in a VLIW processor |
US6076157A (en) * | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6105051A (en) * | 1997-10-23 | 2000-08-15 | International Business Machines Corporation | Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US5974537A (en) * | 1997-12-29 | 1999-10-26 | Philips Electronics North America Corporation | Guard bits in a VLIW instruction control routing of operations to functional units allowing two issue slots to specify the same functional unit |
US6076154A (en) * | 1998-01-16 | 2000-06-13 | U.S. Philips Corporation | VLIW processor has different functional units operating on commands of different widths |
US6314493B1 (en) | 1998-02-03 | 2001-11-06 | International Business Machines Corporation | Branch history cache |
JP2000305781A (ja) | 1999-04-21 | 2000-11-02 | Mitsubishi Electric Corp | Vliw方式プロセッサ、コード圧縮装置、コード圧縮方法およびコード圧縮プログラムを記録した媒体 |
US6351802B1 (en) | 1999-12-03 | 2002-02-26 | Intel Corporation | Method and apparatus for constructing a pre-scheduled instruction cache |
GB2370380B (en) | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
JP4542722B2 (ja) * | 2001-04-25 | 2010-09-15 | 富士通株式会社 | 命令処理方法 |
US7360076B2 (en) * | 2001-06-13 | 2008-04-15 | Itt Manufacturing Enterprises, Inc. | Security association data cache and structure |
US7213148B2 (en) * | 2001-06-13 | 2007-05-01 | Corrent Corporation | Apparatus and method for a hash processing system using integrated message digest and secure hash architectures |
US7266703B2 (en) | 2001-06-13 | 2007-09-04 | Itt Manufacturing Enterprises, Inc. | Single-pass cryptographic processor and method |
US7249255B2 (en) * | 2001-06-13 | 2007-07-24 | Corrent Corporation | Apparatus and method for a hash processing system using multiple hash storage areas |
GB2420884B (en) * | 2004-12-03 | 2009-04-15 | Picochip Designs Ltd | Processor architecture |
US8713286B2 (en) | 2005-04-26 | 2014-04-29 | Qualcomm Incorporated | Register files for a digital signal processor operating in an interleaved multi-threaded environment |
GB2454865B (en) * | 2007-11-05 | 2012-06-13 | Picochip Designs Ltd | Power control |
GB2466661B (en) * | 2009-01-05 | 2014-11-26 | Intel Corp | Rake receiver |
GB2470037B (en) | 2009-05-07 | 2013-07-10 | Picochip Designs Ltd | Methods and devices for reducing interference in an uplink |
GB2470771B (en) | 2009-06-05 | 2012-07-18 | Picochip Designs Ltd | A method and device in a communication network |
GB2470891B (en) | 2009-06-05 | 2013-11-27 | Picochip Designs Ltd | A method and device in a communication network |
GB2474071B (en) | 2009-10-05 | 2013-08-07 | Picochip Designs Ltd | Femtocell base station |
GB2482869B (en) | 2010-08-16 | 2013-11-06 | Picochip Designs Ltd | Femtocell access control |
JP5625903B2 (ja) * | 2010-12-29 | 2014-11-19 | 富士通株式会社 | 演算処理装置および演算処理方法 |
GB2489919B (en) | 2011-04-05 | 2018-02-14 | Intel Corp | Filter |
GB2489716B (en) | 2011-04-05 | 2015-06-24 | Intel Corp | Multimode base system |
GB2491098B (en) | 2011-05-16 | 2015-05-20 | Intel Corp | Accessing a base station |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
NL8800071A (nl) * | 1988-01-13 | 1989-08-01 | Philips Nv | Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem. |
JP2553200B2 (ja) * | 1989-08-19 | 1996-11-13 | 富士通株式会社 | 情報処理装置 |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
DE69130723T2 (de) * | 1990-10-05 | 1999-07-22 | Koninklijke Philips Electronics N.V., Eindhoven | Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten |
US5161226A (en) * | 1991-05-10 | 1992-11-03 | Jmi Software Consultants Inc. | Microprocessor inverse processor state usage |
US5530866A (en) * | 1991-07-30 | 1996-06-25 | Tera Computer Company | Register allocation methods having upward pass for determining and propagating variable usage information and downward pass for binding; both passes utilizing interference graphs via coloring |
US5628013A (en) * | 1992-09-30 | 1997-05-06 | Apple Computer, Inc. | Apparatus and method for allocating processing time in a frame-based computer system |
US5619408A (en) * | 1995-02-10 | 1997-04-08 | International Business Machines Corporation | Method and system for recoding noneffective instructions within a data processing system |
-
1993
- 1993-12-24 DE DE69325785T patent/DE69325785T2/de not_active Expired - Lifetime
- 1993-12-24 EP EP93203688A patent/EP0605927B1/en not_active Expired - Lifetime
- 1993-12-28 JP JP33651093A patent/JP3916680B2/ja not_active Expired - Lifetime
- 1993-12-28 KR KR1019930030204A patent/KR100290325B1/ko not_active IP Right Cessation
-
1998
- 1998-06-10 US US09/090,038 patent/US6044451A/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960035259A (ko) * | 1995-03-31 | 1996-10-24 | 리 페치 | 감소된 판독 및/또는 기록 포트 대역폭을 갖는 레지스터 파일을 포함하는 컴퓨터 프로세서 |
JP2006500673A (ja) * | 2002-09-24 | 2006-01-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 処理装置、処理方法及びコンパイラ |
US7383422B2 (en) | 2004-02-12 | 2008-06-03 | Matsushita Electric Industrial Co., Ltd. | Very long instruction word (VLIW) computer having an efficient instruction code format |
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 |
KR20150062877A (ko) * | 2013-11-29 | 2015-06-08 | 삼성전자주식회사 | 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 |
JP2015130057A (ja) * | 2014-01-07 | 2015-07-16 | 富士通株式会社 | 処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US6044451A (en) | 2000-03-28 |
DE69325785T2 (de) | 2000-02-17 |
JP3916680B2 (ja) | 2007-05-16 |
EP0605927A1 (en) | 1994-07-13 |
DE69325785D1 (de) | 1999-09-02 |
KR100290325B1 (ko) | 2001-11-26 |
KR940015852A (ko) | 1994-07-21 |
EP0605927B1 (en) | 1999-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3916680B2 (ja) | プロセッサ | |
US6122722A (en) | VLIW processor with less instruction issue slots than functional units | |
KR100638703B1 (ko) | 데이터 프로세싱 시스템용 셀룰러 엔진 | |
EP1038253B1 (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
US7366874B2 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
US20060265555A1 (en) | Methods and apparatus for sharing processor resources | |
KR20010042690A (ko) | 구성가능 기능 유닛을 가진 데이터 프로세서 및 이러한데이터 프로세서를 사용한 방법 | |
US5742783A (en) | System for grouping instructions for multiple issue using plural decoders having forward and backward propagation of decoding information | |
US7617494B2 (en) | Process for running programs with selectable instruction length processors and corresponding processor system | |
EP1623318B1 (en) | Processing system with instruction- and thread-level parallelism | |
EP0363174A2 (en) | Branch on bit processing | |
US7024540B2 (en) | Methods and apparatus for establishing port priority functions in a VLIW processor | |
US5862399A (en) | Write control unit | |
CN114327635A (zh) | 用于处理器的非对称执行端口和分配宽度的可缩放端口绑定的方法、系统和装置 | |
JP2006506727A (ja) | コピーレジスタファイルを有するvliw | |
EP0305752B1 (en) | Programmable data path width in a programmable unit having plural levels of subinstruction sets | |
US11775310B2 (en) | Data processing system having distrubuted registers | |
JP3341662B2 (ja) | 情報処理装置及び多ポートレジスタファイル | |
US6704855B1 (en) | Method and apparatus for reducing encoding needs and ports to shared resources in a processor | |
EP1378825A1 (en) | A method for executing programs on selectable-instruction-length processors and corresponding processor system | |
CA2515283C (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
JPH09244894A (ja) | 演算装置 | |
JPH07105017A (ja) | レジスタリネーミング装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040621 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040727 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070207 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100216 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100216 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100216 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140216 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |