JP3451921B2 - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JP3451921B2 JP3451921B2 JP08336898A JP8336898A JP3451921B2 JP 3451921 B2 JP3451921 B2 JP 3451921B2 JP 08336898 A JP08336898 A JP 08336898A JP 8336898 A JP8336898 A JP 8336898A JP 3451921 B2 JP3451921 B2 JP 3451921B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- length
- processor
- bit length
- 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
- 238000000034 method Methods 0.000 claims description 44
- 239000000872 buffer Substances 0.000 description 62
- 238000010586 diagram Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 21
- 238000012546 transfer Methods 0.000 description 18
- 230000001343 mnemonic effect Effects 0.000 description 10
- 239000000470 constituent Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
し、特に並列処理による実行サイクル数の削減とコード
効率の向上を図る技術に関する。
機能化及び高速化に伴い、高い処理性能を持つマイクロ
プロセッサ(以下、単に「プロセッサ」という。)が望
まれている。そして、これを実現する技術の1つとして
1サイクルに複数の命令を同時に実行するものがあり、
VLIW(Very Long Instruction Word)方式のプロセ
ッサもその技術の1つである。
ード生成時にコンパイラ等により静的に命令間の依存関
係を解析し、命令コードの移動を行って実行効率の良い
命令ストリームを生成するものである。この方式は、動
的に命令間の依存関係を解析するスーパースカラ方式の
プロセッサと比べてハードウェアを簡略化でき、このた
め動作周波数を上げやすいという長所を有する。
固定長として取り扱うため、次のような問題がある。
多くのビット数を必要とするが、レジスタ間演算命令の
指定にはそれほど多くのビット数を必要としない等、命
令毎に指定に必要なビット数にばらつきがある。ところ
が、VLIW方式では命令を固定長として取り扱うた
め、短いビット数しか必要としない命令を指定するのに
必要以上のビット数を用いざるを得ず、コードサイズが
大きくなってしまう。
して、命令長を可変とすることが考えられる。
命令構成要素(ここでは「ユニット」と呼ぶ)にて構成
され、3つの命令を同時実行可能なプロセッサの命令レ
ジスタ周辺の構成を示すブロック図である。同図におい
て、破線は制御信号を表している。図13においてユニ
ットキュー50は、ユニットの並びであり、命令メモリ
等から供給された順にユニットを命令レジスタに転送し
ていく。
令レジスタB52b、命令レジスタC52cと命令レジ
スタD52d、命令レジスタE52eと命令レジスタF
52fがそれぞれ対になっており、命令は常に命令レジ
スタA52a、命令レジスタC52c又は命令レジスタ
E52eの3つのレジスタのいずれかを先頭として命令
レジスタに格納され、2つのユニットを連結して1つの
命令を構成する場合にのみ、対となっているもう一方の
命令レジスタにユニットが転送される。したがって、命
令レジスタA52aに転送されたユニットがそのユニッ
ト単体で命令を構成する場合には、命令レジスタB52
bにはユニットが転送されないことになる。
はユニットキュー50の各ユニットがいずれの命令レジ
スタに転送されるのかが一意に決まっていない。また、
各命令レジスタへ転送されるユニットがユニットキュー
50のいずれのユニットなのかが一意に決まっていな
い。そこで、セレクタ51a〜51dを制御して転送す
るユニットを選択することになる。さらに、これらのセ
レクタの制御は全体を一度に決定することができず、ま
ずセレクタ51a、セレクタ51bの制御が決定され、
命令レジスタCへ転送されるユニットが決定してから、
このユニット内の命令長に関する情報を参照して、図中
破線で示すようにセレクタ51c、セレクタ51dの制
御を決定する。
来のプロセッサでは、ユニットキューから命令レジスタ
への転送の際の遅延が大幅に大きくなるという問題点が
あった。これは、先行する命令レジスタに転送されたユ
ニット内の命令長に関する情報を参照しなければ、当該
命令レジスタに関するセレクタの制御を決定できないか
らである。また、並列度が増すに従って、転送すべき命
令レジスタの数が増加するので、この遅延はさらに大き
くなっていく。
レジスタとの対応を一対一とし、図13に示したプロセ
ッサで問題となっていたユニットキューから命令レジス
タへの転送におけるセレクタによる遅延の問題を解消す
る技術として、図14に示すものがある。このプロセッ
サでは、命令を構成する可能性のある全てのユニットの
組み合わせについてデコードしておき、先行する命令デ
コーダから出力される命令長の情報によって、デコード
結果を選択して使用する。具体的には、図中破線で示す
ように、第1命令デコーダ53dが出力する情報により
セレクタ51eの制御を決定し、上記情報と第2命令デ
コーダ53eまたは第3命令デコーダ53fが出力する
情報によりセレクタ51fの制御を決定する。
に、2ユニット長の命令を解読するデコーダを5つも必
要とし、ハードウェアが非常に大きくなるという問題点
がある。
されたものであり、命令レベルの並列実行に際して、ハ
ードウェア複雑化の問題を克服しつつ、性能向上とコー
ド効率向上を両立するプロセッサを提供することを目的
とする。
に請求項1記載のプロセッサは、可変長のビット長から
なる実行単位に含まれる可変長のビット長からなる単位
命令を並列実行できるプロセッサであって、命令を順次
フェッチし、出力する命令供給発行部と、複数の解読手
段を備え、前記命令供給発行部より出力された命令を解
読する解読部と、前記解読部により解読された命令を実
行する実行部とを備え、前記単位命令のうち最小のビッ
ト長の単位命令以外は、前記解読手段により解読される
部分と前記解読手段により解読されない部分とを有し、
前記実行単位の最大ビット長は、前記複数の解読手段の
合計のビット長よりも大きいことを特徴とする。
位が最大ビット長の場合には、前記実行単位の最後の単
位命令が最大ビット長からなる単位命令であることを特
徴とする請求項1記載のプロセッサである。
ト長の前記単位命令は、最小のビット長の単位命令と同
じビット長のオペレーションを含んだ語素と定数のみで
構成された語素からなり、前記単位命令はビット長に関
わらず1つの解読手段によって前記最小のビット長の部
分が解読されることを特徴とする請求項1又は2記載の
プロセッサである。
ッサは、さらに、前記解読部によって解読する対象とな
る命令を格納する命令レジスタを有し、前記命令レジス
タと前記解読手段とは1対1に対応していることを特徴
とする請求項2から3いずれかに記載のプロセッサであ
る。
段は、前記最大のビット長の単位命令を解読する場合に
は、前記定数を格納した前記命令レジスタに対応する解
読手段を無効化することを特徴とする請求項4記載のプ
ロセッサである。
令が1または複数の語素から構成されることを特徴とす
る請求項1から5いずれかに記載のプロセッサである。
行供給部は所定数の語素を単位として、前記解読部に命
令を出力し、前記単位命令の各々は、前記所定数の語素
における場所により、前記複数の解読手段のいずれに入
力されるかが一意に決まることを特徴とする請求項6記
載のプロセッサである。
位に、並列度に関する情報が明示的に付与されることを
特徴とする請求項1から7いずれかに記載のプロセッサ
である。
に関する情報が、前記実行単位の境界に関する情報であ
ることを特徴とする請求項8記載のプロセッサである。
の長さに関する情報が、各々の単位命令中に明示的に付
与されることを特徴とする請求項1から9いずれかに記
載のプロセッサである。
部が発行する解読結果の長さを制御する命令発行制御部
をさらに備えることを特徴とする請求項1から10いず
れかに記載のプロセッサである。
手段の各々の解読結果を有効とするか無効とするかを決
定する命令発行制御部をさらに備えることを特徴とする
請求 項1から11いずれかに記載のプロセッサである。
セッサが実行する命令列が、前記実行単位へと静的にス
ケジューリングされることを特徴とする請求項1から1
2いずれかに記載のプロセッサである
ビット長からなる実行単位に含まれる可変長のビット長
からなる単位命令を最大N(N:2以上の整数)個並列
実行できるプロセッサであって、前記実行単位のビット
長は、命令フェッチする命令長には限られず可変であ
り、前記単位命令のうち最大のビット長のものをN個並
列実行する実行単位のビット長よりも短い所定のビット
長以下の実行単位のみを解読することを特徴とするプロ
セッサである。
フェッチする命令長よりも長い実行単位を解読すること
が可能であることを特徴とする請求項14記載のプロセ
ッサである。
ビット長からなる実行単位に含まれる可変長のビット長
からなる単位命令を最大N(N:2以上の整数)個並列
実行できるプロセッサであって、前記実行単位には、並
列度に関する情報が明示的に付与されており、前記単位
命令のうち最大のビット長のものをN個並列実行する実
行単位のビット長よりも短い所定のビット長以下の実行
単位のみを解読することを特徴とするプロセッサであ
る。
ッサは命令を解読する解読部を有し、前記解読部には、
前記単位命令のうち最大のビット長のものをN個並列実
行する実行単位のビット長よりも短いビット長の命令が
供給されることを特徴とする請求項14から16いずれ
かに記載のプロセッサである。
ビット長からなる実行単位に含まれる可変長のビット長
からなる単位命令を最大N個並列実行できるプロセッサ
であって、前記単位命令の長さは最大をMビット(M:
2以上の整数)として複数通りあり、第1の固定長のビ
ット長を単位として命令フェッチし、第2の固定長のビ
ット長を単位として出力する命令供給発行部と、前記命
令供給発行部より出力された前記第2の固定長のビット
長のうち、可変長のビット長の解読結果を発行する解読
部とを備え、前記第2の固定長は、M×Nビットより短
い長さに制限されていることを特徴とするプロセッサで
ある。
の固定長が前記第1の固定長よりも長いことを特徴とす
る請求項18記載のプロセッサである。
セッサが並列に実行する前記単位命令のビット長の組み
合わせが所定の制限を満たすように、前記実行単位が静
的にスケジューリングされていることを特徴とする請求
項19記載のプロセッサである。
の制限は、前記第2の固定長のビット長を全て発行する
場合には、前記第2の固定長のビット長のうち最後尾に
はビット長がMビットからなる単位命令が配置される制
限であることを特徴とする請求項20記載のプロセッサ
である。
の制限は、前記解読部へ出力されるビット長のうちオペ
コードが先頭から所定長以内に配置されるように設けら
れた制限であることを特徴とする請求項20記載のプロ
セッサである。
単位に、並列度に関する情報が明示的に付与されること
を特徴とする請求項14または18記載のプロセッサで
ある。
度に関する情報が、前記実行単位の境界であることを特
徴とする請求項23記載のプロセッサである。
の長さに関する情報が、各々の単位命令中に明示的に付
与されることを特徴とする請求項14から24いずれか
に記載のプロセッサである。
部が発行する解読結果の長さを制御する命令発行制御部
をさらに備えることを特徴とする請求項17から22い
ずれかに記載のプロセッサである。
セッサが実行する命令列が、前記実行単位へと静的にス
ケジューリングされることを特徴とする請求項14から
26いずれかに記載のプロセッサである。
実施の形態について、図面を用いて詳細に説明する。 (命令フォーマットとアーキテクチャの概要) まず、本プロセッサが解読実行する命令(特許請求の範
囲に記載する「単位命令」に相当する。)の構造につい
て説明する。
命令フォーマットを示す図である。
令構成要素(ここでは「ユニット」と呼ぶ。特許請求の
範囲に記載する「語素」に相当する。)にて構成されて
おり、ユニット1つで構成される21ビット命令とユニ
ット2つで構成される42ビット命令の2種類の命令フ
ォーマットが存在する。各命令がいずれの長さの命令で
あるかは、1ビットのフォーマット情報11によって決
定される。具体的には、フォーマット情報11が“0”
の時はそのユニット単体で21ビット命令となり、フォ
ーマット情報11が“1”の時はそのユニットとそれに
後続するユニットとを連結して42ビット命令となる。
情報10を持たせてある。この情報は、この命令とそれ
に後続する命令との間に並列実行の境界が存在するか否
かを示すものである。具体的には、並列実行境界情報1
0が“1”の時はその命令と後続命令の間に並列実行の
境界が存在し、並列実行境界情報10が“0”の時には
並列実行の境界が存在しないことになる。この情報の利
用方法については後で述べる。
と並列実行境界情報10を除いた部分にてオペレーショ
ンを指定する。21ビット命令では19ビット、42ビ
ット命令では40ビットの長さを使用することができる
ことになる。具体的には、“Op1”、“Op2”、
“Op3”のフィールドでは、オペレーションの種類を
表すオペコードを、“Rs”のフィールドでは、ソース
オペランドとなるレジスタのレジスタ番号を、“Rd”
のフィールドでは、デスティネーションオペランドとな
るレジスタのレジスタ番号を指定する。また、“imm
5”及び“imm32”のフィールドでは、それぞれ5
ビットと32ビットの演算用定数オペランドを指定す
る。そして、“disp13”及び“disp31”の
フィールドでは、それぞれ13ビットと31ビットの変
位(ディスプレースメント)を指定する。
送命令や演算命令、大きなディスプレースメントを指定
する分岐命令は42ビット命令で定義され、それらを除
くほとんどの命令は21ビット命令で定義されている。
なお、図1を見てわかるように、42ビット命令の構成
要素である2つのユニットのうち、後ろの方のユニット
すなわち2番目のユニットには、長い定数やディスプレ
ースメントの一部のみが配置され、オペコードは配置さ
れない。
要について説明する。
ングを前提としたプロセッサであって、命令の供給と発
行の概念は図2のようになる。
サイクル64ビット固定長の命令供給単位(ここでは
「パケット」と呼ぶ。特許請求の範囲に記載する「複合
命令」に相当する。)でユニットを3個ずつ供給する。
ユニット3個分の長さは63ビットであるが、残りの1
ビットについては使用しない。そして、命令の実行は、
同図(b)に示すように1サイクルで並列実行の境界ま
でのユニット(ここでは「実行単位」と呼ぶ)を同時実
行する。つまり、各サイクルにおいて並列実行境界情報
10が“1”である命令までの命令を並列実行すること
になる。供給されながら実行されずに残ったユニット
は、命令バッファに蓄積され、次のサイクル以降で実行
の対象となる。
のパケット単位で命令を供給しておき、静的に求めた情
報を元に、各サイクルにおいて並列度に応じた適切な数
のユニットを発行していく、ということになる。この手
法をとることにより、通常の固定長命令のVLIW方式
で発生していた無動作命令(nop命令)が全く無くな
り、コードサイズを削減することができる。
によって、2つのユニットを1命令として実行する場合
と1つのユニットを1命令として実行する場合がある。
この手法をとることにより、命令の指定に多くのビット
数を必要とする一部の命令に対してのみ長い命令フォー
マットを使用し、他のほとんどの命令については短い命
令フォーマットで指定することができるので、さらにコ
ードサイズを削減することができる。具体例については
後に述べる。(プロセッサのハードウェア構成) 次に、本プロセッサのハードウェア構成を説明する。
ウェア構成を示すブロック図である。
命令を並列実行するプロセッサであり、大きく分けて、
命令供給発行部20、解読部30、実行部40から構成
される。
外部メモリから命令群を供給し、解読部30に出力する
ものであり、命令フェッチ部21、命令バッファ22及
び命令レジスタ23からなる。
(インストラクションアドレス)バス及び64ビットの
ID(インストラクションデータ)バスを通じて図示さ
れていない外部メモリからユニットのブロックをフェッ
チし、内部の命令キャッシュに保持すると共に、PC部
42から出力されたアドレスに相当するユニット群を命
令バッファ22に供給する。
ァを2個備えており、命令フェッチ部21によって供給
されたユニットを蓄積しておくために用いられる。命令
バッファ22へは、命令フェッチ部21から64ビット
単位でパケットが供給される。ここで、パケットの最上
位の1ビットの情報は使用されない。命令バッファ22
に蓄積されたユニットは、命令レジスタ23の適切なレ
ジスタに出力される。なお、命令バッファ22について
は、別の図面においてさらに詳細な構成を示している。
ジスタからなり、命令バッファ22から送られてきたユ
ニットを保持するためのものである。命令レジスタ23
周辺については、別の図面においてさらに詳細な構成を
示している。
れた命令を解読し、その解読結果に応じた制御信号を実
行部40に出力するものであり、大きく分けて、命令発
行制御部31と命令デコーダ32からなる。
の4個のレジスタに保持されたユニットに対して、ユニ
ット内の並列実行境界情報10とフォーマット情報11
を参照することによって、2つのユニットを1つの命令
として扱うように制御したり、並列実行の境界を越えた
ユニットについては、そのユニットの発行を無効化した
りといった発行に関する制御を行う。なお、命令発行制
御部31については、別の図面においてさらに詳細な動
作説明を行う。
格納された命令群を解読する装置であり、第1命令デコ
ーダ33、第2命令デコーダ34及び第3命令デコーダ
35からなる。これらのデコーダは、基本的に1サイク
ルに1つの命令を解読し、実行部40に制御信号を与え
る。また、命令内に置かれた定数オペランドについて
は、各命令デコーダから実行部40のデータバス48に
転送される。
基づいて、最大3つの命令を並列実行する回路ユニット
であり、実行制御部41、PC部42、レジスタファイ
ル43、第1演算部44、第2演算部45、第3演算部
46、オペランドアクセス部47及びデータバス48、
49からなる。
果に基づいて実行部40の各構成要素42〜49を制御
する制御回路や配線の総称であり、タイミング制御、動
作許可禁止制御、ステータス管理、割り込み制御等の回
路を有する。
に解読実行すべき命令が置かれている図示されていない
外部メモリ上のアドレスを命令供給発行部20の命令フ
ェッチ部21に出力する。
32個の32ビットレジスタから構成される。これらの
レジスタに格納された値は、第1命令デコーダ33、第
2命令デコーダ34及び第3命令デコーダ35での解読
結果に基づいて、データバス48を経由して第1演算部
44、第2演算部45及び第3演算部46に転送され、
そこで演算が施され、又はそこを単に通過した後に、デ
ータバス49を経由してレジスタファイル43またはオ
ペランドアクセス部47に送られる。
演算部46は、それぞれ2個の32ビットデータに対し
て算術論理演算を行うALUや乗算器と、シフト演算を
行うバレルシフタを内部に有し、実行制御部41による
制御の下で演算を実行する。
ァイル43と図示されていない外部メモリとの間でオペ
ランドの転送を行う回路である。具体的には、例えば、
命令内で、オペコードとして“ld”(ロード)が置か
れていた場合には、外部メモリに置かれていた1ワード
(32ビット)のデータがオペランドアクセス部47を
経てレジスタファイル43の指定されたレジスタにロー
ドされ、また、オペコードとして“st”(ストア)が
置かれていた場合には、レジスタファイル43の指定さ
れたレジスタの格納値が外部メモリにストアされる。上
記PC部42、レジスタファイル43、第1演算部4
4、第2演算部45、第3演算部46及びオペランドア
クセス部47は、図示されるように、データバス48
(L1バス、R1バス、L2バス、R2バス、L3バ
ス、R3バス)及びデータバス49(D1バス、D2バ
ス、D3バス)で接続されている。なお、L1バス及び
R1バスはそれぞれ第1演算部44の2つの入力ポート
に、L2バス及びR2バスはそれぞれ第2演算部45の
2つの入力ポートに、L3バス及びR3バスはそれぞれ
第3演算部46の2つの入力ポートに、D1バス、D2
バス及びD3バスはそれぞれ第1演算部44、第2演算
部45及び第3演算部46の出力ポートに接続されてい
る。 (命令バッファの詳細な構成) 次に、命令バッファ22の詳細な構成を説明する。
示すブロック図である。
及び命令バッファB222の2個の63ビットのバッフ
ァからなり、それぞれ3個ずつのユニットを保持するこ
とができる。命令バッファA221はバッファA0、A
1及びA2からなり、それぞれ1個ずつのユニットを保
持することができる。同様に、命令バッファBはバッフ
ァB0、B1及びB2からなる。
1から64ビット単位でパケットが供給される。ただ
し、パケットの最上位の1ビットの情報は使用されな
い。この際、命令バッファA221と命令バッファB2
22にまたがって供給されることはなく、いずれかのバ
ッファに63ビット単位で供給されることになる。命令
バッファ22に蓄えられたユニットは供給された順序を
保っており、その順序やいずれのバッファが有効である
かについては命令バッファ制御部223により、状態と
して管理されている。
バッファ内の有効なユニットを順に命令レジスタ23に
転送するため、セレクタ224a〜224dの制御を行
う。この制御により、命令バッファ22内の先頭の4つ
のユニットが命令レジスタ23に転送される。さらに、
命令レジスタ23に転送したユニットの中でどれだけの
ユニットが発行されずに残ったか、という解読部30の
命令発行制御部31からの情報と、命令フェッチ部21
から転送されてきたユニットの内いずれのユニットが有
効かという情報とを元に、命令バッファ22の状態の更
新を行う。
状態で、あるパケットの2番目のユニットに分岐した場
合には、命令フェッチ部21からそのパケットが供給さ
れ、供給されたパケットは命令バッファA221に転送
される。そのパケットの先頭のユニットは無効なので、
命令バッファ制御部223の制御により、命令バッファ
22の状態としてバッファA1及びバッファA2のみが
有効な状態となる。
レジスタ23に転送したユニットが全く発行されず、命
令フェッチ部21から64ビットの有効なパケットが供
給された場合には、そのパケットは命令バッファB22
2に転送され、命令バッファ22の状態は、バッファA
1、A2、B0、B1及びB2が有効な状態となる。
22に空きがないので、命令フェッチ部21からの供給
は受け付けず、命令レジスタ23へは、順にバッファA
1、バッファA2、バッファB0、バッファB1のユニ
ットを転送する。
ト単位で空きがある場合にのみ命令フェッチ部21から
パケットの供給を行い、供給された順を管理しておき、
各サイクルにおいて、供給された順に先頭の4つのユニ
ットを命令レジスタ23に転送していく。 (命令レジスタ23周辺の構成と命令発行制御部31の
動作) 次に、命令レジスタ23周辺の構成を示し、命令発行制
御部31の詳細な動作を説明する。
すブロック図である。図中、破線の矢印は制御信号を表
す。
1、命令レジスタB232、命令レジスタC233及び
命令レジスタD234の4個の21ビットレジスタから
なる。命令レジスタ23には、命令バッファ22からユ
ニットが供給されるわけだが、わかりやすくするために
命令バッファ22から供給されるユニットの並びである
ユニットキュー50という概念を考える。そして、ここ
では命令レジスタ23にはユニットキュー50からユニ
ットが供給されると考える。
がいずれの命令レジスタ23に転送されるかどうかは、
ユニットキュー50での位置(順序)によって一意に決
まる。つまり、ユニット1は命令レジスタA231へ、
ユニット2は命令レジスタB232へ転送されることに
なる。これにより、ユニットキュー50から命令レジス
タ23への転送を行う際に、図13の従来例において存
在したようなユニットの選択を行うセレクタが不要とな
り、ハードウェアが単純化されており、遅延も最小限に
抑えられている。
ビットのユニットを入力とし、それを解読して、そのユ
ニットが構成する命令の動作に関する制御信号を実行制
御部41に出力するとともに、ユニット内に配置された
定数オペランドを出力する。図1の命令フォーマットか
らわかるように、42ビット命令を構成する2つのユニ
ットのうち、2番目のユニットには定数オペランドの一
部しか配置されない。つまり、このユニットにはオペコ
ードが存在しないため、命令デコーダに入力する必要が
ない。そこで、各命令の定数オペランドは、図5に示さ
れるように、命令デコーダが出力したユニット内の定数
と、命令レジスタから無条件に直接転送された定数とを
連結したものということになる。図5の60〜62が各
命令の定数オペランドである。
て1ビットの無動作命令フラグが入力される。このフラ
グを“1”にセットすると、そのデコーダは出力として
無動作命令を出力する。つまり、無動作命令フラグをセ
ットすることにより、その命令デコーダの命令としての
デコードを無効化することができる。
ニットを組み合わせて命令として発行する制御を行う命
令発行制御部31の動作について説明する。
31及び命令レジスタB232に格納された各ユニット
の並列実行境界情報10とフォーマット情報11を参照
することにより命令デコーダの制御を行う。
3に格納されたユニットの内どこまでをこのサイクルで
発行するのかを求める。そして、どれだけのユニットが
発行されずに残ったのかの情報を命令バッファ22内の
命令バッファ制御部223に伝達する。
クルで発行される命令についてのみ解読を行うように制
御する。図5からわかるように、命令としてデコードさ
れる可能性のあるユニットは、命令レジスタA231、
命令レジスタB232及び命令レジスタC233に格納
されたユニットのみである。そこで、ユニット内の情報
を参照して、これらのユニットの中で、42ビット命令
の2ユニット目にあたるものや発行されずに残るものに
関しては、そのユニットの命令としてのデコードを無効
化する。42ビット命令の2ユニット目にあたるユニッ
トは、直前のユニットが構成する命令の定数オペランド
の一部として直接出力される。
ット(ユニット1)のフォーマット情報11が“1”の
ときには、ユニット1と命令レジスタB232のユニッ
ト(ユニット2)とを連結して42ビット命令となるの
で、ユニット2の命令としてのデコードを無効化する、
すなわち第2命令デコーダ34の無動作命令フラグを
“1”にセットする。図5において、命令発行制御部3
1から第2命令デコーダ34への破線がこの動作に相当
する。ユニット2は、ユニット1が構成する命令の定数
オペランド60の一部として直接出力される。
が“0”、ユニット2のフォーマット情報が“1”の時
は、ユニット2と命令レジスタC233のユニット(ユ
ニット3)とを連結して42ビット命令となるので、ユ
ニット3の命令としてのデコードをキャンセルする、す
なわち第3命令デコーダ35の無動作命令フラグを
“1”にセットする。図5において、命令発行制御部3
1から第3命令デコーダ35への破線がこの動作に相当
する。ユニット3は、ユニット2が構成する命令の定数
オペランド61の一部として直接出力される。
することにより、必要に応じて命令デコーダの無動作フ
ラグを設定し、命令としてのデコードを無効化する。
10が“1”、フォーマット情報11が“0”のとき
は、このサイクルではユニット1までしか発行されない
ので、ユニット2とユニット3の命令としてのデコード
を無効化する、すなわち第2命令デコーダ34と第3命
令デコーダ35の無動作命令フラグを共に“1”にセッ
トする。図5において、命令発行制御部31から第2命
令デコーダ34と第3命令デコーダ35への破線がこの
動作に相当する。
が“0”、ユニット2の並列実行境界情報10が
“1”、フォーマット情報11が共に“0”のときは、
このサイクルではユニット2までしか発行されないの
で、ユニット3の命令としてのデコードを無効化する、
すなわち第3命令デコーダ35の無動作命令フラグを共
に“1”にセットする。図5において、命令発行制御部
31から第3命令デコーダ35への破線がこの動作に相
当する。
することにより、必要に応じて命令デコーダの無動作フ
ラグを設定し、命令としてのデコードを無効化する。
発行制御部31とその周辺回路の構成を図6に示す。
ジスタA231及び命令レジスタB232に格納された
ユニットの並列実行境界情報10とフォーマット情報1
1を参照し、第2命令デコーダ34及び第3命令デコー
ダ35の命令としてのデコードを無効化するかどうかを
決定する無動作命令フラグとなる制御信号を出力する。
第2命令デコーダ34は、命令レジスタA231に格納
されたユニットの並列実行境界情報10が“1”である
か、またはそのユニットのフォーマット情報11が
“1”であるときに無効化される。また、第3命令デコ
ーダ35は、命令レジスタA231に格納されたユニッ
トもしくは命令レジスタB232に格納されたユニット
の並列実行境界情報10が“1”であるか、または命令
レジスタB232に格納されたユニットのフォーマット
情報11が“1”であるときに無効化される。
ーマットをとり、図6に示したような単純な回路を用意
するだけで、必要最低限の情報を参照して高速な命令発
行制御を行うことができる。
とることにより、1サイクルで同時発行可能な命令の命
令長の組み合わせに多少の制限が生じる。本プロセッサ
で同時発行可能な命令の命令長の組み合わせを図7に示
す。
では、ユニットの並びの先頭から3つ目までのユニット
についてのみ命令としてデコードすることができる。つ
まり、図中(a)〜(h)のパターンについて発行する
ことができる。最大で4つのユニットを同時に発行でき
ることになる。ただし、4つのユニットを発行するパタ
ーンの内、図中(i)、(j)のパターンについては同
時発行することができない。 (従来の命令発行制御方法との比較) ここで、本実施形態のプロセッサと本発明によらない従
来のプロセッサとの比較を行う。
ニットキュー50から命令レジスタへの転送において、
セレクタによる遅延が問題となっていたが、本発明のプ
ロセッサでは、ユニットキュー50内のユニットと各命
令レジスタが一対一に対応しているため、図13におい
て存在していたセレクタ51a〜51dが不要となり、
上記遅延の問題が解決されている。
転送すべき命令レジスタが増加していくに従って、セレ
クタが増加し遅延がさらに大きくなっていくのに対し
て、本発明のプロセッサでは、ユニットキュー50と命
令レジスタの対応は一対一なので、遅延が大きくなるこ
とはない。
ラ方式にて並列実行を行うプロセッサに適用したものも
提案されている。例えば、論文 The Approach to Multi
pleInstruction Execution in the GMICRO/400 Process
or (PROCEEDINGS, The Eighth TRON Project Symposiu
m(International), 1991参照)にて開示されているGM
ICRO/400がある。この技術は、図14の概念を
とりながらもハードウェアを削減するために制限を設け
ている。
れている命令発行制御方法をとった場合の命令レジスタ
周辺の構成を示すブロック図である。図15において、
破線は制御信号を表し、54a及び54bは命令内に指
定された定数オペランドを表す。命令デコーダは、入力
された命令を解読し、その結果その命令の実行を制御す
る信号を実行制御部に出力すると共に、命令内に指定さ
れた定数オペランドを出力する。
では、ユニット1とユニット2を連結したもの、ユニッ
ト2及びユニット3をそれぞれ一旦デコードしておき、
第1命令デコーダ53iの解読によって1番目の命令が
1ユニット長の命令なのか2ユニット長の命令なのかが
判明した時点で、セレクタ51gおよびセレクタ51h
を制御することにより、第2命令デコーダ53jもしく
は第3命令デコーダ53kの解読結果を選択して使用す
る。
O/400では、図14の構成に対して、同時実行可能
な命令数を3から2に減らすことにより、第4命令デコ
ーダ53gと第5命令デコーダ53hを削除している。
また、第2命令デコーダ53jと第3命令デコーダk
は、入力ビット幅を1ユニット長とし、ハードウェア削
減を図っている。しかし、これによって、同時実行され
る2番目の命令は1ユニット長の命令のみという制限が
発生する。
も、2命令同時発行を可能にするために3つの命令デコ
ーダを必要としており、依然としてハードウェア量が多
いという問題点がある。
ダ53iの解読が完了するまでセレクタ51g、51h
の制御を決定することができない。このセレクタの制御
が決定するまで、2番目の命令として第2命令デコーダ
53jと第3命令デコーダ53kのいずれの解読結果を
用いるかを決定できず、オペランドとなるレジスタの格
納値の読み出しを開始できない。オペランドとなる可能
性のある全てのレジスタの格納値を先行的に読み出して
おき、それを選択して使用する方法も考えられるが、レ
ジスタファイルの読み出しポート数が増加するため実用
的ではない。このように、図15の構成では読み出すレ
ジスタを確定するまでの遅延が大きくなる。実際、GM
ICRO/400では命令解読ステージの直後のステー
ジでは演算の実行は行わず、オペランドを読み出すステ
ージとしている。
同時発行可能なユニット数が増加していくと、セレクタ
の数が増し、制御が複雑化するという問題点がある。
ューリングによってさらなる並列化を実現し、性能向上
を図ることができるが、コードサイズが大きくなるとい
う問題点がある。また、コードサイズを削減する手段と
して可変長命令方式があるが、ハードウェアが複雑にな
るという問題点がある。
00の例においては、命令デコーダを3つ用意しても最
大2命令しが同時実行できないのに対して、本発明のプ
ロセッサの命令発行制御方法を用いると、3つの命令デ
コーダにて最大3命令を同時実行することができる。逆
に、本発明において、最大2命令を同時発行する構成を
想定した場合、2個の命令デコーダにて構成することが
できる。具体的な命令レジスタ周辺の構成は図16のよ
うになる。これにより、ハードウェアを削減することが
できる。
ダ53iの解読が完了するまでセレクタ51g、51h
の制御を決定することができず、2番目の命令として第
2命令デコーダ53jと第3命令デコーダ53kのいず
れの解読結果を用いるかを決定できない。そのため、オ
ペランドとなるレジスタを確定するまでの遅延が大きく
なる。これに対して、本発明のプロセッサの構成では、
他のデコーダの解読結果を待たずに、オペランドとなる
レジスタを確定することができるため、解読ステージの
前半にオペランドとなるレジスタの読み出しを開始する
ことができる。その結果、解読ステージの完了時点で、
オペランドとなるレジスタの読み出しも完了させておく
ことができる。これによって、解読ステージの直後のス
テージで演算を実行することができ、実行効率を高める
ことができる。
なユニット数が増加しても単純にデコーダの数を増して
いけばよいのに対して、図15の構成では、同時発行可
能なユニット数が増加していくと、セレクタの数が増し
て制御が複雑化するという問題点がある。
差異として次のものがある。本発明では図1のように、
2ユニット長の命令の2番目のユニットには定数オペラ
ンドの一部のみが配置されるため、図5のように2番目
のユニットは命令デコーダには入力されずに直接オペラ
ンドとして出力される。このため、すべての命令デコー
ダは1ユニット長の命令を解読するだけでよい。これに
対して、GMICRO/400では、2ユニット長の命
令の2番目のユニットにもオペコードが配置されるた
め、図15の構成で第1命令デコーダ53iは2ユニッ
ト長の命令を解読する必要があり、本発明の構成に比べ
てハードウェアが増加している。 (プロセッサの動作) 次に、具体的な命令を解読実行した場合の本実施形態の
プロセッサの動作について説明する。
例を示すフローチャートである。
定数“0x87654321”をレジスタR1に転送し
(ステップS100)、レジスタR5の格納値をレジス
タR0に転送し(ステップS101)、レジスタR0の
格納値にレジスタR1の格納値を加え(ステップS10
2)、レジスタR3の格納値にレジスタR2の格納値を
加え(ステップS103)、レジスタR0の格納値をメ
モリ内のレジスタR4の格納値で示されるアドレスに格
納し(ステップS104)、レジスタR0の格納値をレ
ジスタR6に転送し(ステップS105)、最後にレジ
スタR3の格納値をレジスタR7に転送する(ステップ
S106)というものである。
サに行わせるプログラムの実行コードの例と実行イメー
ジを示す図である。
ており、命令供給単位としては3個のパケット70〜7
2から構成されている。各命令の処理内容は、実行コー
ドの各フィールドに置かれたニーモニックで表現されて
いる。具体的には、ニーモニック“mov”は、定数及
びレジスタの格納値のレジスタへの転送を表し、ニーモ
ニック“add”は、定数及びレジスタの格納値とレジ
スタの格納値との加算を表し、ニーモニック“st”
は、レジスタの格納値のメモリへの転送を表している。
また、“Rn(n=0〜31)”はレジスタファイル4
3の中の一つのレジスタを示す。そして、各命令の並列
実行境界情報10とフォーマット情報11についても
“0”又は“1”で示してある。
における各実行単位ごとの本プロセッサの動作を説明す
る。 (実行単位1) パケット70がメモリから供給され、パケット70内の
ユニットが順に命令レジスタ23に転送される。次に、
命令発行制御部31が各ユニットの並列実行境界情報1
0とフォーマット情報11を参照して発行を制御する。
具体的には、1番目のユニットのフォーマット情報11
が“1”であるので、1番目のユニットと2番目のユニ
ットを連結して1つの命令として扱う。つまり、第2命
令デコーダ34の無動作命令フラグを“1”にセットし
て、命令としてのデコードを無効化する。また、1番目
のユニットの並列実行境界情報10が“0”であり、3
番目のユニットの並列実行境界情報10が“1”である
ので、3番目のユニットまでの2個の命令を発行する。
供給されたすべてのユニットを発行するため、命令バッ
ファ22にはユニットは蓄積されない。
x87654321”が転送され、レジスタR5の格納
値がレジスタR0に転送される。 (実行単位2) パケット71がメモリから供給され、パケット71内の
ユニットが順に命令レジスタ23に転送される。3個の
ユニット共フォーマット情報11が“0”であるので、
いずれのユニットも21ビット命令となる。また、1番
目のユニットの並列実行境界情報10が“0”であり、
2番目のユニットの並列実行境界情報10が“1”であ
るので、2番目のユニットまでの2個の命令を発行す
る。3番目のユニットは、発行されずに残ったので命令
バッファ22に蓄積される。
レジスタR1の格納値が加えられてレジスタR0に格納
され、レジスタR3の格納値にレジスタR2の格納値が
加えられてレジスタR3に格納される。 (実行単位3) パケット72がメモリから供給され、命令バッファ22
に蓄積されていた1個のユニットとパケット72内の2
個のユニットとが順に命令レジスタ23に転送される。
3個のユニット共フォーマット情報11が“0”である
ので、いずれのユニットも21ビット命令となる。ま
た、1番目のユニットの並列実行境界情報10と2番目
のユニットの並列実行境界情報が“0”であり、3番目
のユニットの並列実行境界情報10が“1”であるの
で、3番目のユニットまでの3個の命令を発行する。こ
れで、供給されたユニットはすべて発行されたことにな
る。
メモリ内のレジスタR4の格納値で示されるアドレスに
転送され、レジスタR0の格納値がレジスタR6に転送
され、レジスタR3の格納値がレジスタR7に転送され
る。
図8に示した処理を行うプログラムは3つの実行単位で
実行される。実行コードは、42ビット命令が1個と2
1ビット命令が6個で構成されていたので、コードサイ
ズは168ビットである。 (従来の固定長VLIW方式のプロセッサとの比較) 次に、図8に示した処理を、従来技術の1つとして挙げ
た命令長が固定のVLIW方式のプロセッサに行わせた
場合を仮定して、本発明に係るプロセッサの場合と比較
する。
る単純なVLIW方式では、32ビットの定数を転送す
る命令を1命令で指定できるような命令長にすると、非
常にコードサイズが大きくなってしまうため、命令長は
32ビットとし、32ビットの定数の転送は16ビット
ずつ2命令に分けて行うことにする。
が32ビット固定のVLIW方式のプロセッサに行わせ
るプログラムの実行コードの例と実行イメージを示す図
である。
76から構成されている。各命令の処理内容は、図9に
示したコードと同様に、各フィールドに置かれたニーモ
ニックで表現されている。ただし、ニーモニック“se
thi”は、16ビットの定数をレジスタの上位16ビ
ットに格納することを表し、ニーモニック“setl
o”は、16ビットの定数をレジスタの下位16ビット
に格納することを表し、ニーモニック“nop”は、何
もしない命令であることを表している。
実行イメージとを比較するとわかるように、VLIW方
式では、各サイクル供給された命令がそのまま発行され
る。つまり、毎サイクル32ビット命令が3個発行され
ることになる。並列実行可能な命令が存在しない場合
は、あらかじめソフトウェアで“nop”命令を挿入し
ておく必要がある。そのため、この例でも4個の“no
p”命令が挿入されて、コードサイズは32ビット命令
が12個なので384ビットとなっており、本発明に係
るプロセッサの場合のコードサイズよりも大幅に大きい
ものになっている。
送を2命令に分けて行っているために新たな依存関係が
生じ、実行単位の数が4つとなっている。どのような命
令並べ替えを行っても実行単位の数を減らすことはでき
ない。これによって、本発明に係るプロセッサの場合に
比べて実行サイクル数が1サイクル増加する。 (従来の並列実行境界の情報を固定長命令内に持つプロ
セッサとの比較) 次に、図8に示した処理を、従来技術の1つとして挙げ
た命令長が固定であり並列実行の境界であるか否かの情
報を命令内に持つ方式のプロセッサに行わせた場合を仮
定して、本発明に係るプロセッサの場合と比較する。
ルと40ビットのモデルを考える。命令長が32ビット
のモデルでは、図10のVLIW方式の場合と同様に、
32ビットの定数のレジスタへの転送は2命令に分けて
行う。それに対して命令長が40ビットのモデルでは、
32ビットの定数のレジスタへの転送を含むすべての種
類の演算を1命令で指定することができる。
が32ビット固定であり並列実行の境界の情報を命令内
に持つ方式のプロセッサに行わせるプログラムの実行コ
ードの例と実行イメージを示す図である。
ており、命令供給単位としては3個のパケット77〜7
9から構成されている。各命令の処理内容は、実行コー
ドの各フィールドに置かれたニーモニックで表現されて
いる。32ビットの定数のレジスタへの転送は、図10
の命令長32ビット固定のVLIW方式の場合と同様に
16ビットずつ2個の命令に分けて行う。
でも図10のVLIW方式の場合と同様に32ビットの
定数のレジスタへの転送を2命令に分けて実行している
ため、新たな依存関係が生じ、実行サイクル数が本発明
に係るプロセッサの場合に比べて1サイクル増加してい
る。
の挿入が発生しないため、図10のVLIW方式の場合
のコードサイズから丁度“nop”命令の分だけ削減さ
れており、32ビット命令が8個で256ビットとなっ
ている。しかし、依然として本発明に係るプロセッサの
場合のコードサイズに比べる・BR>ニ大きい。
ルとの比較を行う。
が40ビット固定であり並列実行の境界の情報を命令内
に持つ方式のプロセッサに行わせるプログラムの実行コ
ードの例と実行イメージを示す図である。
ており、命令供給単位としては3個のパケット80〜8
2から構成されている。各命令の処理内容は、実行コー
ドの各フィールドに置かれたニーモニックで表現されて
いる。32ビットの定数のレジスタへの転送について
も、1命令で指定することが可能である。
では32ビットの定数のレジスタへの転送を1命令で指
定することができるため、実行単位の数は3つであり、
実行サイクル数は本発明に係るプロセッサの場合と同じ
である。
同じだが、本発明に係るプロセッサの場合は長いビット
数を必要としない命令については21ビット命令で指定
できるのに対し、このモデルではすべての命令を40ビ
ット命令で指定する必要があるため、コードサイズは4
0ビット命令が7個で280ビットとなっており、本発
明に係るプロセッサの場合に比べて大きくなっている。
実施形態に基づいて説明したが、本発明はこれらの実施
形態に限られないことは勿論である。即ち、(1)上記
実施の形態では、静的なスケジューリングを前提として
いたが、本発明はこれに限定されるものではない。つま
り、スーパースカラ方式のように動的なスケジューリン
グを行うプロセッサにも適用することができる。この場
合は、命令フォーマット内の並列実行境界情報を無く
し、解読部の中に動的に並列実行可能か否かを検出する
並列実行可否検出装置を持たせ、本実施形態において命
令発行制御部にて並列実行境界情報を参照して行ってい
た制御を、並列実行可否検出装置の出力を参照して行え
ばよい。このような構成にしても、可変長命令方式にお
いてハードウェアを簡単化できるという本発明の有意性
は保たれる。 (2)上記実施の形態では、3個の命令を同時実行する
ように構成していたが、本発明はこの同時実行命令数に
限定されるものではない。例えば、2個の命令を同時発
行する構成にしてもよい。この場合は、解読部と命令レ
ジスタ周辺の構成を図16のブロック図に示すように変
更し、実行部の演算器の構成を適宜変更すればよい。 (3)上記実施の形態では、図1の命令フォーマットか
らわかるように、ユニット1個または2個にて1個の命
令を構成していたが、本発明はこのユニット数に限定さ
れるものではない。つまり、3個以上のユニットを連結
して1個の命令を構成するような命令フォーマットを定
義してもよい。例えば、1〜4個の単位命令にて命令を
構成する場合には、命令内のフォーマット情報を2ビッ
トにすればよい。 (4)上記実施の形態では、図1の命令フォーマットか
らわかるように、ユニット1個または2個にて1個の命
令を構成していたが、必ずしもユニット単体で構成され
る命令が存在する必要はない。例えば、1命令が2個ま
たは3個のユニットから構成されるとしてもよい。この
場合には、命令レジスタと命令デコーダおよび定数オペ
ランドを結ぶ配線を変更すればよい。 (5)上記実施の形態では、図1の命令フォーマットか
らわかるように、命令内に並列実行の境界であるか否か
の情報を持たせていたが、この情報は必ずしも必要では
ない。つまり、命令内にはフォーマットに関する情報の
みをもち、並列実行可能な命令が存在しない場合には
“nop”命令を配置するという方法をとってもよい。
この場合においても、各命令の指定に必要な長さの命令
フォーマットにて命令を指定することができるという本
発明の有意性が保たれる。 (6)上記実施の形態では、図1の命令フォーマットか
らわかるように、42ビット命令を構成する2つのユニ
ットのうち2番目のユニットには定数オペランドの一部
のみを配置するようになっていたが、このユニットにオ
ペコードを配置しても構わない。そのためには、図5に
おいて直接定数オペランドの一部として出力していたユ
ニットを命令デコーダへ入力するように変更し、命令デ
コーダの入力ビット幅を増加させればよい。 (7)上記実施の形態では、命令バッファの構成として
図4に示すものとしたが、本発明はこの構成およびバッ
ファのサイズに限定されるものではない。例えば、一本
の単純なキュー構造の命令バッファを用いてもよい。
のプロセッサによって、命令レベルの並列実行に際し
て、ハードウェア複雑化の問題を克服しつつ、性能向上
とコード効率向上を両立することが可能になる。
命令の構造を示す図
を示す図
ク図
を示すブロック図
示すブロック図
の回路構成を示す図
の組み合わせを示す図
ーチャート
せるプログラムの実行コードの例と実行イメージを示す
図
定のVLIW方式の従来のプロセッサに行わせるプログ
ラムの実行コードの例と実行イメージを示す図
定で命令内に並列実行境界の情報を持たせる方式の従来
のプロセッサに行わせるプログラムの実行コードの例と
実行イメージを示す図
定で命令内に並列実行境界の情報を持たせる方式の従来
のプロセッサに行わせるプログラムの実行コードの例と
実行イメージを示す図
の構成を示すブロック図
の構成を示すブロック図
/400における命令レジスタ周辺の構成を示すブロッ
ク図
命令レジスタ23周辺の構成を示すブロック図
Claims (27)
- 【請求項1】 可変長のビット長からなる実行単位に含ま
れる可変長のビット長からなる単位命令を並列実行でき
るプロセッサであって、 命令を順次フェッチし、出力する命令供給発行部と、 複数の解読手段を備え、前記命令供給発行部より出力さ
れた命令を解読する解読部と、 前記解読部により解読された命令を実行する実行部とを
備え、 前記単位命令のうち最小のビット長の単位命令以外は、
前記解読手段により解読される部分と前記解読手段によ
り解読されない部分とを有し、 前記実行単位の最大ビット長は、前記複数の解読手段の
合計のビット長よりも大きいことを特徴とするプロセッ
サ。 - 【請求項2】 前記実行単位が最大ビット長の場合には、
前記実行単位の最後の単位命令が最大ビット長からなる
単位命令であることを特徴とする請求項1記載のプロセ
ッサ。 - 【請求項3】 最大のビット長の前記単位命令は、最小の
ビット長の単位命令と同じビット長のオペレーションを
含んだ語素と定数のみで構成された語素からなり、 前記単位命令はビット長に関わらず1つの解読手段によ
って前記最小のビット長の部分が解読されることを特徴
とする請求項1又は2記載のプロセッサ。 - 【請求項4】 前記プロセッサは、さらに、前記解読部に
よって解読する対象となる命令を格納する命令レジスタ
を有し、 前記命令レジスタと前記解読手段とは1対1に対応して
いることを特徴とする請求項2から3のいずれかに記載
のプロセッサ。 - 【請求項5】 前記解読手段は、前記最大のビット長の単
位命令を解読する場合には、前記定数を格納した前記命
令レジスタに対応する解読手段を無効化することを特徴
とする請求項4記載のプロセッサ。 - 【請求項6】 前記単位命令が1または複数の語素から構
成されることを特徴とする請求項1から5いずれかに記
載のプロセッサ。 - 【請求項7】前記命令発行供給部は所定数の語素を単位
として、前記解読部に命令を出力し、 前記単位命令の各々は、前記所定数の語素における場所
により、前記複数の解読手段のいずれに入力されるかが
一意に決まることを特徴とする請求項6記載のプロセッ
サ。 - 【請求項8】 前記実行単位に、並列度に関する情報が明
示的に付与されることを特徴とする請求項1から7いず
れかに記載のプロセッサ。 - 【請求項9】 前記並列度に関する情報が、前記実行単位
の境界に関する情報であることを特徴とする請求項8記
載のプロセッサ。 - 【請求項10】 単位命令の長さに関する情報が、各々の
単位命令中に明示的に付与されることを特徴とする請求
項1から9いずれかに記載のプロセッサ。 - 【請求項11】 前記解読部が発行する解読結果の長さを
制御する命令発行制御部をさらに備えることを特徴とす
る請求項1から10いずれかに記載のプロセッサ。 - 【請求項12】 前記解読手段の各々の解読結果を有効と
するか無効とするかを決定する命令発行制御部をさらに
備えることを特徴とする請求項1から11いずれかに記
載のプロセッサ。 - 【請求項13】 前記プロセッサが実行する命令列が、前
記実行単位へと静的にスケジューリングされることを特
徴とする請求項1から12いずれかに記載のプロセッ
サ。 - 【請求項14】 可変長のビット長からなる実行単位に含
まれる可変長のビット長からなる単位命令を最大N
(N:2以上の整数)個並列実行できるプロセッサであ
って、 前記実行単位のビット長は、命令フェッチする命令長に
は限られず可変であり、 前記単位命令のうち最大のビット長のものをN個並列実
行する実行単位のビット長よりも短い所定のビット長以
下の実行単位のみを解読することを特徴とするプロセッ
サ。 - 【請求項15】前記命令フェッチする命令長よりも長い
実行単位を解読することが可能であることを特徴とする
請求項14記載のプロセッサ。 - 【請求項16】 可変長のビット長からなる実行単位に含
まれる可変長のビット長からなる単位命令を最大N
(N:2以上の整数)個並列実行できるプロセッサであ
って、 前記実行単位には、並列度に関する情報が明示的に付与
されており、 前記単位命令のうち最大のビット長のものをN個並列実
行する実行単位のビット長よりも短い所定のビット長以
下の実行単位のみを解読することを特徴とするプロセッ
サ。 - 【請求項17】 前記プロセッサは命令を解読する解読部
を有し、 前記解読部には、前記単位命令のうち最大のビット長の
ものをN個並列実行する実行単位のビット長よりも短い
ビット長の命令が供給されることを特徴とする請求項1
4から16いずれかに記載のプロセッサ。 - 【請求項18】 可変長のビット長からなる実行単位に含
まれる可変長のビット長からなる単位命令を最大N個並
列実行できるプロセッサであって、 前記単位命令の長さは最大をMビット(M:2以上の整
数)として複数通りあ り、 第1の固定長のビット長を単位として命令フェッチし、
第2の固定長のビット長を単位として出力する命令供給
発行部と、 前記命令供給発行部より出力された前記第2の固定長の
ビット長のうち、可変長のビット長の解読結果を発行す
る解読部とを備え、 前記第2の固定長は、M×Nビットより短い長さに制限
されていることを特徴とするプロセッサ。 - 【請求項19】 前記第2の固定長が前記第1の固定長よ
りも長いことを特徴とする請求項18記載のプロセッ
サ。 - 【請求項20】 前記プロセッサが並列に実行する前記単
位命令のビット長の組み合わせが所定の制限を満たすよ
うに、前記実行単位が静的にスケジューリングされてい
ることを特徴とする請求項19記載のプロセッサ。 - 【請求項21】 前記所定の制限は、前記第2の固定長の
ビット長を全て発行する場合には、前記第2の固定長の
ビット長のうち最後尾にはビット長がMビットからなる
単位命令が配置される制限であることを特徴とする請求
項20記載のプロセッサ。 - 【請求項22】 前記所定の制限は、前記解読部へ出力さ
れるビット長のうちオペコードが先頭から所定長以内に
配置されるように設けられた制限であることを特徴とす
る請求項20記載のプロセッサ。 - 【請求項23】 前記実行単位に、並列度に関する情報が
明示的に付与されることを特徴とする請求項14または
18記載のプロセッサ。 - 【請求項24】前記並列度に関する情報が、前記実行単
位の境界であることを特徴とする請求項23記載のプロ
セッサ。 - 【請求項25】 単位命令の長さに関する情報が、各々の
単位命令中に明示的に付与されることを特徴とする請求
項14から24いずれかに記載のプロセッサ。 - 【請求項26】前記解読部が発行する解読結果の長さを
制御する命令発行制御部をさらに備えることを特徴とす
る請求項17から22いずれかに記載のプロセッサ。 - 【請求項27】前記プロセッサが実行する命令列が、前
記実行単位へと静的にスケジューリングされることを特
徴とする請求項14から26いずれかに記載のプロセッ
サ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08336898A JP3451921B2 (ja) | 1998-03-30 | 1998-03-30 | プロセッサ |
US09/280,777 US6324639B1 (en) | 1998-03-30 | 1999-03-29 | Instruction converting apparatus using parallel execution code |
US10/720,030 USRE41751E1 (en) | 1998-03-30 | 2003-11-24 | Instruction converting apparatus using parallel execution code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08336898A JP3451921B2 (ja) | 1998-03-30 | 1998-03-30 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11282674A JPH11282674A (ja) | 1999-10-15 |
JP3451921B2 true JP3451921B2 (ja) | 2003-09-29 |
Family
ID=13800496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08336898A Expired - Fee Related JP3451921B2 (ja) | 1998-03-30 | 1998-03-30 | プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3451921B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3730455B2 (ja) | 1999-10-01 | 2006-01-05 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
JP2002318687A (ja) * | 2001-04-18 | 2002-10-31 | Fujitsu Ltd | 情報処理装置及び計算機システム |
US8484441B2 (en) | 2004-03-31 | 2013-07-09 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths |
US9047094B2 (en) | 2004-03-31 | 2015-06-02 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor |
US7949856B2 (en) * | 2004-03-31 | 2011-05-24 | Icera Inc. | Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit |
JP2011181100A (ja) * | 2011-05-19 | 2011-09-15 | Panasonic Corp | プロセッサ、及び並列命令実行対応デバッグ装置 |
-
1998
- 1998-03-30 JP JP08336898A patent/JP3451921B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11282674A (ja) | 1999-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6829696B1 (en) | Data processing system with register store/load utilizing data packing/unpacking | |
US7937559B1 (en) | System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes | |
US5922066A (en) | Multifunction data aligner in wide data width processor | |
US5923862A (en) | Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions | |
US7600096B2 (en) | Coprocessor extension architecture built using a novel split-instruction transaction model | |
EP1102163A2 (en) | Microprocessor with improved instruction set architecture | |
EP1126368A2 (en) | Microprocessor with non-aligned circular addressing | |
JP2816248B2 (ja) | データプロセッサ | |
US5881307A (en) | Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor | |
JPH117387A (ja) | Vliwプロセッサ | |
JP2002333978A (ja) | Vliw型プロセッサ | |
JPH09311786A (ja) | データ処理装置 | |
JPH11249894A (ja) | 処理デバイスに命令ストリームを供給する方法及び装置 | |
US7139899B2 (en) | Selected register decode values for pipeline stage register addressing | |
JP2001134436A (ja) | 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法 | |
CN108139911B (zh) | 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格 | |
CN113924550A (zh) | 直方图运算 | |
JP3789583B2 (ja) | データ処理装置 | |
US5941984A (en) | Data processing device | |
JP3451921B2 (ja) | プロセッサ | |
JP3412462B2 (ja) | プロセッサ | |
JP2002544587A (ja) | デジタル信号プロセッサ計算コア | |
US6889320B1 (en) | Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter | |
US6438680B1 (en) | Microprocessor | |
US7024540B2 (en) | Methods and apparatus for establishing port priority functions in a VLIW processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070718 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080718 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090718 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090718 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100718 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 10 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |