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
Application number
JP15065795A
Other languages
English (en)
Other versions
JP3647930B2 (ja
Inventor
Kota Kawasaki
弘太 川崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP15065795A priority Critical patent/JP3647930B2/ja
Publication of JPH096613A publication Critical patent/JPH096613A/ja
Application granted granted Critical
Publication of JP3647930B2 publication Critical patent/JP3647930B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 本発明は、動的ハイパースカラ・プロセッサ
に関し、プロセッサ内部で命令を解読して各機能ユニッ
ト毎の命令を動的に生成して実行すると共に命令レジス
タに保存して分岐命令のときに命令レジスタから命令を
取り出して実行し、特別な制御命令およびソフト制御を
不要とし、かつ分岐命令実行時の解読を不要として高速
化を図ることを目的とする。 【構成】 命令キャッシュから取り出した命令を解読
し、機能ユニット毎の命令を生成して命令レジスタに順
次格納すると共に、分岐命令である場合にループとなる
部分について命令レジスタから取り出した命令をそれぞ
れの機能ユニットの命令レジスタに格納するデコーダと
を備え、命令レジスタに格納するあるいは格納された命
令を各機能ユニットが並列にそれぞれ実行するように構
成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令を解読して機能ユ
ニット毎の複数の命令レジスタに格納して高速実行する
動的ハイパースカラ・プロセッサに関するものである。
【0002】
【従来の技術】従来のハイパースカラ・プロセッサは、
次のような特徴を持つプロセッサである。
【0003】(1) 命令長および命令フェッチ幅はス
ーパースカラと同程度である。 (2) 機能ユニット毎にユーザ可視の命令レジスタを
設ける。 (3) 命令レジスタにソフトウェア制御で解読済みの
命令をロードすることにより、プロセッサ内部でVLI
W(VeryLong Instruction Word)命令を形成する。
【0004】(4) プロセッサ内部で形成したVLI
W命令をソフトウェア制御でディスパッチし、VLIW
プロセッサのように動作させる。 (5) 自己形成したVLIW命令のループにより、疑
似ベクトル処理あるいはソフトウェアパイプライン処理
を施す。
【0005】(6) ベクトルレジスタを設ける。 以上のような構成を持つハイパースカラ・プロセッサ
は、比較的に小さいハーソウェアコストで、高性能が得
られるが、特別な制御命令が必要となり、命令セットの
互換性を維持することができず、また、プログラムもハ
イパースカラ用のものを用意して実行させていた。
【0006】
【発明が解決しようとする課題】上述したように従来の
ハイパースカラ・プロセッサは、比較的に小さいハード
ウェアコストで高性能が得られるが、特別な制御命令が
必要なために命令セットの互換性を維持できず、また、
プログラムのハイパースカラ用のものが必要となってし
まう問題があった。
【0007】本発明は、これらの問題を解決するため、
プロセッサ内部で命令を解読して各機能ユニット毎の命
令を動的に生成して実行すると共に命令レジスタに保存
して分岐命令のときに命令レジスタから命令を取り出し
て実行し、特別な制御命令およびソフト制御を不要と
し、かつ分岐命令実行時の解読を不要として高速化を図
ることを目的としている。
【0008】
【課題を解決するための手段】図1は、本発明の概念構
成図を示す。図1において、命令キャッシュ2は、実行
しようとする命令を格納するものである。
【0009】デコーダ3は、命令を解読するものであ
る。命令レジスタ4は、機能ユニット5毎に設け、複数
の命令を格納するレジスタである。
【0010】機能ユニット5は、命令を実行するユニッ
トである。
【0011】
【作用】本発明は、図1に示すように、命令キャッシュ
2から命令を取り出してデコーダ3が解読し動的に命令
を生成して該当する命令レジスタ4に順次格納し機能ユ
ニット5がそれぞれ並列に実行すると共に、命令が分岐
命令であった場合に命令レジスタ4に順次格納した命令
のうちのループとなる部分の全ての機能ユニット5の命
令レジスタ4から取り出した命令をそれぞれの機能ユニ
ット5の命令レジスタ4に格納し並列に実行するように
している。
【0012】この際、デコーダ3が命令キャッシュ2か
ら取り出した命令を解読し、機能ユニット5毎の命令を
動的に生成して該当する命令レジスタ4に順次格納する
ときに、データハーザードにならない実行順序まで詰め
て格納し、高速実行するようにしている。
【0013】従って、プロセッサ内部で命令を解読して
各機能ユニット5毎の命令を動的に生成して実行すると
共に命令レジスタ4に保存して分岐命令のときに命令レ
ジスタ4から命令を取り出して実行することにより、従
来の特別な制御命令およびソフト制御を不要とし、かつ
分岐命令実行時の解読を不要として命令レジスタ4から
一度にループ部分の命令を順次取り出して各機能ユニッ
ト5の命令レジスタ4に格納して並列実行し高速化を図
ることが可能となる。
【0014】
【実施例】次に、図1から図5を用いて本発明の実施例
の構成および動作を順次詳細に説明する。
【0015】図1は、本発明の概念説明図を示す。図1
において、メモリ1は、命令を格納するものである。命
令キャッシュ2は、メモリ1から実行しようとする命令
を取り出して格納した高速アクセス可能なメモリであ
る。
【0016】デコーダ3は、命令キャッシュ2から取り
出した命令を解読し、機能ユニット5毎の命令を動的に
生成などするものである。命令レジスタ4は、機能ユニ
ット5毎に設けた複数のレジスタであって、デコーダ3
が動的に生成した命令を順次格納して保存するためのも
のである。
【0017】機能ユニット5は、命令レジスタ4に格納
された命令を実行するユニットであって、例えばロード
/ストアユニット、論理演算ユニット、浮動小数点演算
ユニットなどである。IRbtaは、分岐先アドレスを
格納するレジスタである。
【0018】レジスタファイル6は、機能ユニット5が
実行した結果などを記憶するものである。データキャッ
シュ7は、データを格納するものである。
【0019】メモリ8は、各種データを記憶するもので
ある。図2は、本発明の1実施例要部構成図を示す。こ
れは、図1の構成の命令レジスタ4の部分の構成図であ
る。ここでは、命令レジスタ4は、各機能ユニット5毎
に0、1・・・r−1個設けたものである。
【0020】入力IRXRは、命令レジスタ4に格納し
た命令の先頭のアドレスを保持するレジスタである。出
力IRXRは、命令レジスタ4に格納した命令の最終の
アドレスを保持するレジスタである。
【0021】IRXRは、現在の命令レジスタ4をアク
セスするアドレスを保持するものである。右端のオブジ
ェクトコードの分岐命令の分岐先アドレスは、入力IR
XRと出力IRXRの間の分岐先アドレスの命令レジス
タ4の内容を比較し、一致したものがあった場合には、
既に命令を解読して命令レジスタ4に格納されていると
判明したので、再解読することなくその一致した行の命
令レジスタ4から取り出して実行する。一致したものが
ない場合には、命令キャッシュ2から取り出した命令を
デコーダ3が解読し、入力IRXRで示される行の命令
レジスタ4から順次循環する態様で格納して実行する。
これにより、いわゆるディスパッチが行われたこととな
る。
【0022】尚、出力IRXRを無くした場合には、命
令レジスタ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にそれぞれ
対応している。
【0023】図3の(a)において、S1は、分岐命令
か判別する。これは、例えば図4の(a)のプログラム
中の(9)行目の分岐命令か判別する。YESの場合に
は、S2に進む。NOの場合には、S5でそれまでの通
常モード動作(図3の(c)のS51からからS54)
を続け、S1に戻ることを繰り返す。
【0024】S51は、通常モードとしてS52からS
54を実行する。S52は、命令キャッシュから命令を
取り出す。S53は、各FU(機能ユニット5)で命令
を実行する。
【0025】S54は、命令を命令レジスタ4に登録す
る。S55は、IRXR、入力IRXRをインクリメン
トする。そして、S1に戻り繰り返す。
【0026】以上によって、分岐命令以外の命令につい
て、命令キャッシュ2から取り出して各機能ユニット5
毎に動的に命令を生成し、各機能ユニット5が並列に命
令を実行し、命令レジスタ4に順次循環する態様で登録
する。例えば後述する図4の(b)の(1)、(2)・
・・(8)までの行について順次実行する。
【0027】S2は、S1のYESで分岐命令と判明し
たので、btaに登録されているか判別する。これは、
図1のbta命令レジスタ(分岐先アドレスレジスタ)
にその分岐先アドレスが登録されているか判別する。Y
ESの場合には、分岐先アドレスが登録されており、命
令レジスタ4にその分岐先アドレス以降の命令が格納さ
れていると判明したので、S3でTurboモード(図
3の(b)のS31からS35の命令レジスタから命令
を読み出して実行するモード)を行なう。一方、NOの
場合には、S35で分岐先アドレスをbta(分岐先ア
ドレスレジスタ)に登録し、通常モード(図3の(c)
のS51からS54の通常ノード)で動作し、S1に戻
り、繰り返す。
【0028】S31は、TuboモードとしてS32か
らS35を実行する。S32は、IRXRレジスタが指
す命令レジスタ4から命令を取り出す。これは、図2の
IRXRレジスタが指す行の全ての命令レジスタ4から
命令を取り出す。
【0029】S33は、各FU(機能ユニット5)で命
令をそれぞれ実行する。S34は、IRXRをインクリ
メントし、次のアドレスとする。S35は、分岐条件が
成立か判別する。YESの場合には、復帰してS1に戻
る。一方、NOの場合には、S31に戻り繰り返す。
【0030】以上によって、分岐命令、かつ分岐先アド
レスがbtaレジスタに登録されていた場合に、Tur
boモードとし、登録されているアドレスの行の命令レ
ジスタ4から命令を取り出して各機能ユニット5がそれ
ぞれ実行することを分岐によるループの部分について分
岐条件が成立するまで繰り返し、命令キャッシュ2から
命令を取り出して解読することを不要とし、命令レジス
タ4から並列に高速に命令を読み出して実行することが
可能となる。分岐条件が成立した場合には、Turbo
モードから通常モードに戻り、命令キャッシュ2から命
令を取り出して解読して各機能ユニットで実行および命
令レジスタ4に格納する通常モードで動作する。
【0031】以上によって、命令キャッシュ2から命令
を取り出して解読し、命令レジスタ4に格納および各機
能ユニットが並列に実行する際に、分岐命令が現れた場
合に当該分岐命令のループ部分について命令レジスタ4
に格納されている命令を取り出して各機能ユニットが実
行することを分岐条件が成立するまで繰り返し、命令キ
ャッシュ2から命令を取り出して解読する処理を不要と
し、高速化を図ることが可能となる。
【0032】図4および図5は、本発明の動作説明図を
示す。図4の(a)は、プログラム例を示す。このプロ
グラムは、右端に記載した(1)から(12)行からな
る。
【0033】図4の(b)および図5の(b)は、実行
順序を表す。ここでは、左側の(1)から(9)は、図
4の(a)のプログラムの命令の行数を示す。ここで、
LD(ロード命令レジスタ)、ST(ストア命令レジス
タ)、ALU(論理演算命令レジスタ)、BU(分岐命
令レジスタ)、BTA(分岐先アドレスレジスタ)をそ
れぞれ表し、図1のIR0、IR1、IR3、IRAb
taにそれぞれ対応するものである。
【0034】(b−1) 図4の(a)のプログラムの
(1)行目の命令を解読して命令レジスタに格納した様
子を示す。(1)行目の命令 L0:0→sr1 (1) は、0をレジスタsr1に格納する命令であるので、A
LUに図示のように格納する。併せてラベルがL0であ
って、分岐先アドレスとなるので、BTAに格納する。
【0035】(b−2) 図4の(a)のプログラムの
(2)行目の命令を解読して命令レジスタに格納した様
子を示す。(2)行目の命令 0→sr2 (2) は、0をレジスタsr2に格納する命令であるので、A
LUに図示のように格納する。
【0036】(b−3) 図4の(a)のプログラムの
(3)行目の命令を解読して命令レジスタに格納した様
子を示す。(3)行目の命令 load A(sr1)→sr11 (3) は、レジスタsr1の内容をアドレスとするメモリから
その内容を取り出してレジスタsr11に格納する命令
であるので、LDに図示のように格納する。ここで、l
oad a(sr1)→sr11という命令がデータハ
ーザードしない限り前の実行順序に詰めるので、図示の
位置(先頭から2つ目の位置)まで詰めて格納する。
【0037】(b−4) 図4の(a)のプログラムの
(4)行目から(8)行目までの命令を解読して命令レ
ジスタに順次格納した様子を示す。例えば(8)行目の
命令 store sr11→A(sr1) (8) は、レジスタsr11の内容を、レジスタsr1の内容
をアドレスとするメモリに格納する命令であるので、S
Tに図示のように格納する。
【0038】(b−5) 図4の(a)のプログラムの
(9)行目の命令を解読して命令レジスタに格納した様
子を示す。(9)行目の命令 if sr1<31 then goto L1 (9) は、レジスタsr1の内容が31よりも小さいときにラ
ベルL1に分岐するという命令であり、データハーザー
ドしない限り前の実行順序に詰めるので、図示の1つ前
の命令((8)行目の命令)と同じ実行順序の位置のB
Uに図示のように格納すると共に、分岐先のラベルL1
を次の実行順序の位置のBTAに図示のように格納す
る。
【0039】図5の(b)の(b−6)、(b−7)
図4の(a)のプログラムの(4)行目から(9)行目
の分岐命令によるループ部分について、解読して命令レ
ジスタ4に格納されている命令を取り出して実行順序7
から10に、、、のようにコピーした様子を示
す。これにより、分岐命令のループ部分について一度命
令キャッシュから命令を取り出し解読して命令レジスタ
に格納した後は、重複した解読を行なうことなく命令レ
ジスタから取り出して格納(コピー)することにより、
高速に実行することが可能となる。尚、分岐条件が成立
するまで、、、でコピーした部分の命令レジス
タから命令を繰り返し取り出して実行する。分岐条件が
成立した場合には、次の実行順序11に進む。
【0040】図5の(b−8)は、実行順序10の分岐
条件が成立したときの様子を示す。この分岐条件が成立
した場合には、ラベルL2に分岐し、この実行順序の位
置から図4の(a)のプログラムの(10)ないし(1
2)行を同様に命令キャッシュ2から順次取り出し、解
読して命令レジスタにそれぞれ下記のように格納する。
【0041】 LD ST ALU BU BTA 実行順序 sr1+1→sr1 L2 12 sr11+sr12→sr11 13 store sr11→A(sr1) 14
【0042】
【発明の効果】以上説明したように、本発明によれば、
プロセッサ内部で命令を解読して各機能ユニット5毎の
命令を動的に生成して実行すると共に命令レジスタ4に
保存し分岐命令実行時に解読することなく命令レジスタ
4から命令を取り出して各機能ユニット4が実行する構
成を採用しているため、従来の特別な制御命令およびソ
フト制御を不要とし、かつ分岐命令実行時の解読を不要
として全ての命令レジスタ4から一度にループ部分の命
令を取り出して各機能ユニット5の命令レジスタ4に格
納して並列実行し高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の概念構成図である。
【図2】本発明の1実施例要部構成図である。
【図3】本発明の動作説明フローチャートである。
【図4】本発明の動作説明図(その1)である。
【図5】本発明の動作説明図(その1)である。
【符号の説明】
1:メモリ 2:命令キャッシュ 3:デコーダ 4:命令レジスタ 5:機能ユニット 6:レジスタファイル 7:データキャッシュ 8:メモリ IR:命令レジスタ FU:機能ユニット

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】実行しようとする命令を格納する命令キャ
    ッシュと、 機能ユニット毎に、実行する命令を格納する複数の命令
    レジスタと、 上記命令キャッシュから取り出した命令を解読し、機能
    ユニット毎の命令を生成して上記該当する命令レジスタ
    に順次格納すると共に、このときの命令が分岐命令であ
    る場合に、上記命令レジスタに順次格納した命令のうち
    のループとなる部分について全ての機能ユニットの命令
    レジスタから取り出した命令をそれぞれの機能ユニット
    の命令レジスタに格納するデコーダとを備え、 上記命令レジスタに格納するあるいは格納された命令を
    各機能ユニットが並列にそれぞれ実行することを特徴と
    する動的ハイパースカラ・プロセッサ。
  2. 【請求項2】上記デコーダが上記命令キャッシュから取
    り出した命令を解読し、機能ユニット毎の命令を生成し
    て上記該当する命令レジスタに順次格納する際に、デー
    タハーザードにならない実行順序まで詰めて格納するこ
    とを特徴とする請求項1記載の動的ハイパースカラ・プ
    ロセッサ。
JP15065795A 1995-06-16 1995-06-16 動的ハイパースカラ・プロセッサ Expired - Fee Related JP3647930B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6113114A (en) * 1997-03-26 2000-09-05 Sims Sports, Inc. Snowboard binding

Cited By (1)

* Cited by examiner, † Cited by third party
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