JP3647930B2 - 動的ハイパースカラ・プロセッサ - Google Patents
動的ハイパースカラ・プロセッサ Download PDFInfo
- Publication number
- JP3647930B2 JP3647930B2 JP15065795A JP15065795A JP3647930B2 JP 3647930 B2 JP3647930 B2 JP 3647930B2 JP 15065795 A JP15065795 A JP 15065795A JP 15065795 A JP15065795 A JP 15065795A JP 3647930 B2 JP3647930 B2 JP 3647930B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- stored
- functional unit
- branch
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
Description
【産業上の利用分野】
本発明は、命令を解読して機能ユニット毎の複数の命令レジスタに格納して高速実行する動的ハイパースカラ・プロセッサに関するものである。
【0002】
【従来の技術】
従来のハイパースカラ・プロセッサは、次のような特徴を持つプロセッサである。
【0003】
(1) 命令長および命令フェッチ幅はスーパースカラと同程度である。
(2) 機能ユニット毎にユーザ可視の命令レジスタを設ける。
(3) 命令レジスタにソフトウェア制御で解読済みの命令をロードすることにより、プロセッサ内部でVLIW(VeryLong Instruction Word)命令を形成する。
【0004】
(4) プロセッサ内部で形成したVLIW命令をソフトウェア制御でディスパッチし、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をアクセスするアドレスを保持するものである。
右端のオブジェクトコードの分岐命令の分岐先アドレスは、入力IRXRと出力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(ストア命令レジスタ)、ALU(論理演算命令レジスタ)、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からS54を実行する。
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命令レジスタ(分岐先アドレスレジスタ)にその分岐先アドレスが登録されているか判別する。YESの場合には、分岐先アドレスが登録されており、命令レジスタ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レジスタに登録されていた場合に、Turboモードとし、登録されているアドレスの行の命令レジスタ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、IRAbtaにそれぞれ対応するものである。
【0034】
(b−1) 図4の(a)のプログラムの(1)行目の命令を解読して命令レジスタに格納した様子を示す。(1)行目の命令
L0:0→sr1 (1)
は、0をレジスタsr1に格納する命令であるので、ALUに図示のように格納する。併せてラベルがL0であって、分岐先アドレスとなるので、BTAに格納する。
【0035】
(b−2) 図4の(a)のプログラムの(2)行目の命令を解読して命令レジスタに格納した様子を示す。(2)行目の命令
0→sr2 (2)
は、0をレジスタsr2に格納する命令であるので、ALUに図示のように格納する。
【0036】
(b−3) 図4の(a)のプログラムの(3)行目の命令を解読して命令レジスタに格納した様子を示す。(3)行目の命令
load A(sr1)→sr11 (3)
は、レジスタsr1の内容をアドレスとするメモリからその内容を取り出してレジスタsr11に格納する命令であるので、LDに図示のように格納する。ここで、load a(sr1)→sr11という命令がデータハーザードしない限り前の実行順序に詰めるので、図示の位置(先頭から2つ目の位置)まで詰めて格納する。
【0037】
(b−4) 図4の(a)のプログラムの(4)行目から(8)行目までの命令を解読して命令レジスタに順次格納した様子を示す。例えば(8)行目の命令
store sr11→A(sr1) (8)
は、レジスタsr11の内容を、レジスタsr1の内容をアドレスとするメモリに格納する命令であるので、STに図示のように格納する。
【0038】
(b−5) 図4の(a)のプログラムの(9)行目の命令を解読して命令レジスタに格納した様子を示す。(9)行目の命令
if sr1<31 then goto L1 (9)
は、レジスタsr1の内容が31よりも小さいときにラベルL1に分岐するという命令であり、データハーザードしない限り前の実行順序に詰めるので、図示の1つ前の命令((8)行目の命令)と同じ実行順序の位置のBUに図示のように格納すると共に、分岐先のラベルL1を次の実行順序の位置のBTAに図示のように格納する。
【0039】
図5の(b)の(b−6)、(b−7) 図4の(a)のプログラムの(4)行目から(9)行目の分岐命令によるループ部分について、解読して命令レジスタ4に格納されている命令を取り出して実行順序7から10に▲1▼、▲2▼、▲3▼、▲4▼のようにコピーした様子を示す。これにより、分岐命令のループ部分について一度命令キャッシュから命令を取り出し解読して命令レジスタに格納した後は、重複した解読を行なうことなく命令レジスタから取り出して格納(コピー)することにより、高速に実行することが可能となる。尚、分岐条件が成立するまで▲1▼、▲2▼、▲3▼、▲4▼でコピーした部分の命令レジスタから命令を繰り返し取り出して実行する。分岐条件が成立した場合には、次の実行順序11に進む。
【0040】
図5の(b−8)は、実行順序10の分岐条件が成立したときの様子を示す。この分岐条件が成立した場合には、ラベルL2に分岐し、この実行順序の位置から図4の(a)のプログラムの(10)ないし(12)行を同様に命令キャッシュ2から順次取り出し、解読して命令レジスタにそれぞれ下記のように格納する。
【0041】
【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記載の動的ハイパースカラ・プロセッサ。
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 JPH096613A (ja) | 1997-01-10 |
JP3647930B2 true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5971407A (en) * | 1997-03-26 | 1999-10-26 | Sims Sports, Inc. | Snowboard binding |
-
1995
- 1995-06-16 JP JP15065795A patent/JP3647930B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH096613A (ja) | 1997-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776127B2 (en) | Reducing data hazards in pipelined processors to provide high processor utilization | |
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 | |
KR910008410B1 (ko) | 마이크로코드 판독 제어 시스템 | |
JPH08320788A (ja) | パイプライン方式プロセッサ | |
KR930003124B1 (ko) | 파이프라인방식의 분기명령제어장치 | |
JP3647930B2 (ja) | 動的ハイパースカラ・プロセッサ | |
JP3708022B2 (ja) | プロセッサ | |
JP2002024008A (ja) | データ処理装置およびプログラム変換装置 | |
KR900010552A (ko) | 명령을 페치(fetch)하기 위한 제어 시스템 | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JPH02157939A (ja) | 命令処理方法及び命令処理装置 | |
JP2843844B2 (ja) | 並列演算処理装置 | |
KR100515039B1 (ko) | 조건부 명령어를 고려한 파이프라인 상태 표시 회로 | |
KR100240590B1 (ko) | 슈퍼스칼라 마이크로프로세서를 위한 명령어 디코딩 장치 및 그 방법 | |
JP2763450B2 (ja) | パイプライン処理データ処理装置 | |
JPH04191931A (ja) | 電子計算機 | |
JPH0774992B2 (ja) | データ処理装置 | |
JP2835179B2 (ja) | 並列処理計算機 | |
JPH05334081A (ja) | パイプライン処理方式 | |
JP2878526B2 (ja) | プリフェッチ制御方式 | |
JPH09311787A (ja) | データ処理装置 | |
JPH0462637A (ja) | マイクロプロセッサ | |
JPH06314196A (ja) | 情報処理方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050124 |
|
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: 20050201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050210 |
|
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: 20080218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090218 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090218 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100218 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110218 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110218 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120218 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130218 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130218 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |