JPH096613A - 動的ハイパースカラ・プロセッサ - Google Patents
動的ハイパースカラ・プロセッサInfo
- Publication number
- JPH096613A JPH096613A JP15065795A JP15065795A JPH096613A JP H096613 A JPH096613 A JP H096613A JP 15065795 A JP15065795 A JP 15065795A JP 15065795 A JP15065795 A JP 15065795A JP H096613 A JPH096613 A JP H096613A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- stored
- branch
- functional unit
- 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
Landscapes
- Advance Control (AREA)
Abstract
に関し、プロセッサ内部で命令を解読して各機能ユニッ
ト毎の命令を動的に生成して実行すると共に命令レジス
タに保存して分岐命令のときに命令レジスタから命令を
取り出して実行し、特別な制御命令およびソフト制御を
不要とし、かつ分岐命令実行時の解読を不要として高速
化を図ることを目的とする。 【構成】 命令キャッシュから取り出した命令を解読
し、機能ユニット毎の命令を生成して命令レジスタに順
次格納すると共に、分岐命令である場合にループとなる
部分について命令レジスタから取り出した命令をそれぞ
れの機能ユニットの命令レジスタに格納するデコーダと
を備え、命令レジスタに格納するあるいは格納された命
令を各機能ユニットが並列にそれぞれ実行するように構
成する。
Description
ニット毎の複数の命令レジスタに格納して高速実行する
動的ハイパースカラ・プロセッサに関するものである。
次のような特徴を持つプロセッサである。
ーパースカラと同程度である。 (2) 機能ユニット毎にユーザ可視の命令レジスタを
設ける。 (3) 命令レジスタにソフトウェア制御で解読済みの
命令をロードすることにより、プロセッサ内部でVLI
W(VeryLong Instruction Word)命令を形成する。
W命令をソフトウェア制御でディスパッチし、VLIW
プロセッサのように動作させる。 (5) 自己形成したVLIW命令のループにより、疑
似ベクトル処理あるいはソフトウェアパイプライン処理
を施す。
は、比較的に小さいハーソウェアコストで、高性能が得
られるが、特別な制御命令が必要となり、命令セットの
互換性を維持することができず、また、プログラムもハ
イパースカラ用のものを用意して実行させていた。
ハイパースカラ・プロセッサは、比較的に小さいハード
ウェアコストで高性能が得られるが、特別な制御命令が
必要なために命令セットの互換性を維持できず、また、
プログラムのハイパースカラ用のものが必要となってし
まう問題があった。
プロセッサ内部で命令を解読して各機能ユニット毎の命
令を動的に生成して実行すると共に命令レジスタに保存
して分岐命令のときに命令レジスタから命令を取り出し
て実行し、特別な制御命令およびソフト制御を不要と
し、かつ分岐命令実行時の解読を不要として高速化を図
ることを目的としている。
成図を示す。図1において、命令キャッシュ2は、実行
しようとする命令を格納するものである。
る。命令レジスタ4は、機能ユニット5毎に設け、複数
の命令を格納するレジスタである。
トである。
2から命令を取り出してデコーダ3が解読し動的に命令
を生成して該当する命令レジスタ4に順次格納し機能ユ
ニット5がそれぞれ並列に実行すると共に、命令が分岐
命令であった場合に命令レジスタ4に順次格納した命令
のうちのループとなる部分の全ての機能ユニット5の命
令レジスタ4から取り出した命令をそれぞれの機能ユニ
ット5の命令レジスタ4に格納し並列に実行するように
している。
ら取り出した命令を解読し、機能ユニット5毎の命令を
動的に生成して該当する命令レジスタ4に順次格納する
ときに、データハーザードにならない実行順序まで詰め
て格納し、高速実行するようにしている。
各機能ユニット5毎の命令を動的に生成して実行すると
共に命令レジスタ4に保存して分岐命令のときに命令レ
ジスタ4から命令を取り出して実行することにより、従
来の特別な制御命令およびソフト制御を不要とし、かつ
分岐命令実行時の解読を不要として命令レジスタ4から
一度にループ部分の命令を順次取り出して各機能ユニッ
ト5の命令レジスタ4に格納して並列実行し高速化を図
ることが可能となる。
の構成および動作を順次詳細に説明する。
において、メモリ1は、命令を格納するものである。命
令キャッシュ2は、メモリ1から実行しようとする命令
を取り出して格納した高速アクセス可能なメモリであ
る。
出した命令を解読し、機能ユニット5毎の命令を動的に
生成などするものである。命令レジスタ4は、機能ユニ
ット5毎に設けた複数のレジスタであって、デコーダ3
が動的に生成した命令を順次格納して保存するためのも
のである。
された命令を実行するユニットであって、例えばロード
/ストアユニット、論理演算ユニット、浮動小数点演算
ユニットなどである。IRbtaは、分岐先アドレスを
格納するレジスタである。
実行した結果などを記憶するものである。データキャッ
シュ7は、データを格納するものである。
ある。図2は、本発明の1実施例要部構成図を示す。こ
れは、図1の構成の命令レジスタ4の部分の構成図であ
る。ここでは、命令レジスタ4は、各機能ユニット5毎
に0、1・・・r−1個設けたものである。
た命令の先頭のアドレスを保持するレジスタである。出
力IRXRは、命令レジスタ4に格納した命令の最終の
アドレスを保持するレジスタである。
セスするアドレスを保持するものである。右端のオブジ
ェクトコードの分岐命令の分岐先アドレスは、入力IR
XRと出力IRXRの間の分岐先アドレスの命令レジス
タ4の内容を比較し、一致したものがあった場合には、
既に命令を解読して命令レジスタ4に格納されていると
判明したので、再解読することなくその一致した行の命
令レジスタ4から取り出して実行する。一致したものが
ない場合には、命令キャッシュ2から取り出した命令を
デコーダ3が解読し、入力IRXRで示される行の命令
レジスタ4から順次循環する態様で格納して実行する。
これにより、いわゆるディスパッチが行われたこととな
る。
令レジスタ4の各行に当該行の命令が有効か否かを表す
フラグを設けて有効/無効の区別をセットする。次に、
図3のフローチャートに示す順序に従い、図1の構成の
動作について、図4の(a)のプログラムを例に図4の
(b)および図5の(b)を用いて具体的に説明する。
ここで、図4の(b)および図5の(b)中のLD(ロ
ード命令レジスタ)、ST(ストア命令レジスタ)、A
LU(論理演算命令レジスタ)、BU(分岐命令レジス
タ)、BTA(分岐先アドレス命令レジスタ)は、図2
の命令レジスタ4の0、1、2、3、btaにそれぞれ
対応している。
か判別する。これは、例えば図4の(a)のプログラム
中の(9)行目の分岐命令か判別する。YESの場合に
は、S2に進む。NOの場合には、S5でそれまでの通
常モード動作(図3の(c)のS51からからS54)
を続け、S1に戻ることを繰り返す。
54を実行する。S52は、命令キャッシュから命令を
取り出す。S53は、各FU(機能ユニット5)で命令
を実行する。
る。S55は、IRXR、入力IRXRをインクリメン
トする。そして、S1に戻り繰り返す。
て、命令キャッシュ2から取り出して各機能ユニット5
毎に動的に命令を生成し、各機能ユニット5が並列に命
令を実行し、命令レジスタ4に順次循環する態様で登録
する。例えば後述する図4の(b)の(1)、(2)・
・・(8)までの行について順次実行する。
たので、btaに登録されているか判別する。これは、
図1のbta命令レジスタ(分岐先アドレスレジスタ)
にその分岐先アドレスが登録されているか判別する。Y
ESの場合には、分岐先アドレスが登録されており、命
令レジスタ4にその分岐先アドレス以降の命令が格納さ
れていると判明したので、S3でTurboモード(図
3の(b)のS31からS35の命令レジスタから命令
を読み出して実行するモード)を行なう。一方、NOの
場合には、S35で分岐先アドレスをbta(分岐先ア
ドレスレジスタ)に登録し、通常モード(図3の(c)
のS51からS54の通常ノード)で動作し、S1に戻
り、繰り返す。
らS35を実行する。S32は、IRXRレジスタが指
す命令レジスタ4から命令を取り出す。これは、図2の
IRXRレジスタが指す行の全ての命令レジスタ4から
命令を取り出す。
令をそれぞれ実行する。S34は、IRXRをインクリ
メントし、次のアドレスとする。S35は、分岐条件が
成立か判別する。YESの場合には、復帰してS1に戻
る。一方、NOの場合には、S31に戻り繰り返す。
レスがbtaレジスタに登録されていた場合に、Tur
boモードとし、登録されているアドレスの行の命令レ
ジスタ4から命令を取り出して各機能ユニット5がそれ
ぞれ実行することを分岐によるループの部分について分
岐条件が成立するまで繰り返し、命令キャッシュ2から
命令を取り出して解読することを不要とし、命令レジス
タ4から並列に高速に命令を読み出して実行することが
可能となる。分岐条件が成立した場合には、Turbo
モードから通常モードに戻り、命令キャッシュ2から命
令を取り出して解読して各機能ユニットで実行および命
令レジスタ4に格納する通常モードで動作する。
を取り出して解読し、命令レジスタ4に格納および各機
能ユニットが並列に実行する際に、分岐命令が現れた場
合に当該分岐命令のループ部分について命令レジスタ4
に格納されている命令を取り出して各機能ユニットが実
行することを分岐条件が成立するまで繰り返し、命令キ
ャッシュ2から命令を取り出して解読する処理を不要と
し、高速化を図ることが可能となる。
示す。図4の(a)は、プログラム例を示す。このプロ
グラムは、右端に記載した(1)から(12)行からな
る。
順序を表す。ここでは、左側の(1)から(9)は、図
4の(a)のプログラムの命令の行数を示す。ここで、
LD(ロード命令レジスタ)、ST(ストア命令レジス
タ)、ALU(論理演算命令レジスタ)、BU(分岐命
令レジスタ)、BTA(分岐先アドレスレジスタ)をそ
れぞれ表し、図1のIR0、IR1、IR3、IRAb
taにそれぞれ対応するものである。
(1)行目の命令を解読して命令レジスタに格納した様
子を示す。(1)行目の命令 L0:0→sr1 (1) は、0をレジスタsr1に格納する命令であるので、A
LUに図示のように格納する。併せてラベルがL0であ
って、分岐先アドレスとなるので、BTAに格納する。
(2)行目の命令を解読して命令レジスタに格納した様
子を示す。(2)行目の命令 0→sr2 (2) は、0をレジスタsr2に格納する命令であるので、A
LUに図示のように格納する。
(3)行目の命令を解読して命令レジスタに格納した様
子を示す。(3)行目の命令 load A(sr1)→sr11 (3) は、レジスタsr1の内容をアドレスとするメモリから
その内容を取り出してレジスタsr11に格納する命令
であるので、LDに図示のように格納する。ここで、l
oad a(sr1)→sr11という命令がデータハ
ーザードしない限り前の実行順序に詰めるので、図示の
位置(先頭から2つ目の位置)まで詰めて格納する。
(4)行目から(8)行目までの命令を解読して命令レ
ジスタに順次格納した様子を示す。例えば(8)行目の
命令 store sr11→A(sr1) (8) は、レジスタsr11の内容を、レジスタsr1の内容
をアドレスとするメモリに格納する命令であるので、S
Tに図示のように格納する。
(9)行目の命令を解読して命令レジスタに格納した様
子を示す。(9)行目の命令 if sr1<31 then goto L1 (9) は、レジスタsr1の内容が31よりも小さいときにラ
ベルL1に分岐するという命令であり、データハーザー
ドしない限り前の実行順序に詰めるので、図示の1つ前
の命令((8)行目の命令)と同じ実行順序の位置のB
Uに図示のように格納すると共に、分岐先のラベルL1
を次の実行順序の位置のBTAに図示のように格納す
る。
図4の(a)のプログラムの(4)行目から(9)行目
の分岐命令によるループ部分について、解読して命令レ
ジスタ4に格納されている命令を取り出して実行順序7
から10に、、、のようにコピーした様子を示
す。これにより、分岐命令のループ部分について一度命
令キャッシュから命令を取り出し解読して命令レジスタ
に格納した後は、重複した解読を行なうことなく命令レ
ジスタから取り出して格納(コピー)することにより、
高速に実行することが可能となる。尚、分岐条件が成立
するまで、、、でコピーした部分の命令レジス
タから命令を繰り返し取り出して実行する。分岐条件が
成立した場合には、次の実行順序11に進む。
条件が成立したときの様子を示す。この分岐条件が成立
した場合には、ラベルL2に分岐し、この実行順序の位
置から図4の(a)のプログラムの(10)ないし(1
2)行を同様に命令キャッシュ2から順次取り出し、解
読して命令レジスタにそれぞれ下記のように格納する。
プロセッサ内部で命令を解読して各機能ユニット5毎の
命令を動的に生成して実行すると共に命令レジスタ4に
保存し分岐命令実行時に解読することなく命令レジスタ
4から命令を取り出して各機能ユニット4が実行する構
成を採用しているため、従来の特別な制御命令およびソ
フト制御を不要とし、かつ分岐命令実行時の解読を不要
として全ての命令レジスタ4から一度にループ部分の命
令を取り出して各機能ユニット5の命令レジスタ4に格
納して並列実行し高速化を図ることができる。
Claims (2)
- 【請求項1】実行しようとする命令を格納する命令キャ
ッシュと、 機能ユニット毎に、実行する命令を格納する複数の命令
レジスタと、 上記命令キャッシュから取り出した命令を解読し、機能
ユニット毎の命令を生成して上記該当する命令レジスタ
に順次格納すると共に、このときの命令が分岐命令であ
る場合に、上記命令レジスタに順次格納した命令のうち
のループとなる部分について全ての機能ユニットの命令
レジスタから取り出した命令をそれぞれの機能ユニット
の命令レジスタに格納するデコーダとを備え、 上記命令レジスタに格納するあるいは格納された命令を
各機能ユニットが並列にそれぞれ実行することを特徴と
する動的ハイパースカラ・プロセッサ。 - 【請求項2】上記デコーダが上記命令キャッシュから取
り出した命令を解読し、機能ユニット毎の命令を生成し
て上記該当する命令レジスタに順次格納する際に、デー
タハーザードにならない実行順序まで詰めて格納するこ
とを特徴とする請求項1記載の動的ハイパースカラ・プ
ロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15065795A JP3647930B2 (ja) | 1995-06-16 | 1995-06-16 | 動的ハイパースカラ・プロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15065795A JP3647930B2 (ja) | 1995-06-16 | 1995-06-16 | 動的ハイパースカラ・プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH096613A true JPH096613A (ja) | 1997-01-10 |
JP3647930B2 JP3647930B2 (ja) | 2005-05-18 |
Family
ID=15501647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15065795A Expired - Fee Related JP3647930B2 (ja) | 1995-06-16 | 1995-06-16 | 動的ハイパースカラ・プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3647930B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6113114A (en) * | 1997-03-26 | 2000-09-05 | Sims Sports, Inc. | Snowboard binding |
-
1995
- 1995-06-16 JP JP15065795A patent/JP3647930B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6113114A (en) * | 1997-03-26 | 2000-09-05 | Sims Sports, Inc. | Snowboard binding |
Also Published As
Publication number | Publication date |
---|---|
JP3647930B2 (ja) | 2005-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
US7694109B2 (en) | Data processing apparatus of high speed process using memory of low speed and low power consumption | |
US5131086A (en) | Method and system for executing pipelined three operand construct | |
US5101341A (en) | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO | |
JPH0429093B2 (ja) | ||
EP0297943B1 (en) | Microcode reading control system | |
JP3486690B2 (ja) | パイプライン方式プロセッサ | |
US20040172518A1 (en) | Information processing unit and information processing method | |
US5349671A (en) | Microprocessor system generating instruction fetch addresses at high speed | |
EP0079370B1 (en) | Digital computer for executing instructions in three time-multiplexed portions | |
JP3708022B2 (ja) | プロセッサ | |
US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
JP3647930B2 (ja) | 動的ハイパースカラ・プロセッサ | |
JP3490005B2 (ja) | 命令制御装置及びその方法 | |
JP2002024008A (ja) | データ処理装置およびプログラム変換装置 | |
US5649226A (en) | Processor having multiple instruction registers | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JP2763450B2 (ja) | パイプライン処理データ処理装置 | |
JPH02157939A (ja) | 命令処理方法及び命令処理装置 | |
KR100515039B1 (ko) | 조건부 명령어를 고려한 파이프라인 상태 표시 회로 | |
JP3325309B2 (ja) | サブルーチンリターン命令処理装置 | |
JPH0774992B2 (ja) | データ処理装置 | |
JPH04191931A (ja) | 電子計算機 | |
JPH0462637A (ja) | マイクロプロセッサ | |
JPH05334081A (ja) | パイプライン処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Effective date: 20050124 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Effective date: 20050201 Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Effective date: 20050210 Free format text: JAPANESE INTERMEDIATE CODE: A61 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090218 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090218 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100218 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110218 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110218 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120218 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 8 Free format text: PAYMENT UNTIL: 20130218 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130218 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 9 Free format text: PAYMENT UNTIL: 20140218 |
|
LAPS | Cancellation because of no payment of annual fees |