JPH11282674A - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JPH11282674A JPH11282674A JP8336898A JP8336898A JPH11282674A JP H11282674 A JPH11282674 A JP H11282674A JP 8336898 A JP8336898 A JP 8336898A JP 8336898 A JP8336898 A JP 8336898A JP H11282674 A JPH11282674 A JP H11282674A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- word
- processor
- register
- 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)
- Executing Machine-Instructions (AREA)
Abstract
リングを前提としたプロセッサにおいて、コードサイズ
の削減を図る。また、可変長命令方式におけるハードウ
ェア複雑化の問題点を克服し、性能向上とコード効率向
上の両立を図る。 【解決手段】 命令構成要素内にフォーマット情報を持
ち、それを参照することによりいくつの命令構成要素を
連結して一つの命令を構成するのかを決定する。ハード
ウェア簡単化のため、命令構成要素内のフォーマット情
報を参照することにより、後続する命令構成要素の命令
としての解読を無効化する機構を備える。
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記載のプロセッサは、一語が複数でかつ所定
数の語素からなる複合命令を実行するVLIW方式のプ
ロセッサであって、実行の単位となる単位命令が一また
は複数の前記語素から構成され、かつ前記単位命令を構
成する前記語素の数が少なくとも二通りあることを特徴
とする。
ト数に応じた命令長の命令フォーマットにて命令を指定
することができ、コードサイズを削減することができ
る。
項1記載のプロセッサにおいて、前記単位命令を構成す
る前記語素の数に関する語数情報が、前記単位命令内に
明示的に含まれることを特徴とする。
て、命令長を特定することが容易になり、命令発行制御
を行うハードウェアを単純化することができる。
載のプロセッサは、一語が複数の語素からなる複合命令
を実行し、実行の単位となる単位命令が一または複数の
前記語素から構成され、かつ前記単位命令を構成する前
記語素の数が少なくとも二通りあるプロセッサであっ
て、記憶装置から前記複合命令を読み出す複合命令読み
出し手段と、前記複合命令読み出し手段により読み出さ
れた前記複合命令中の前記語素から、いずれかの前記語
素内に含まれる前記単位命令を構成する前記語素の数に
関する語数情報に基づいて、前記単位命令を組み立てて
解読する解読手段とを備えることを特徴とする。
ト数に応じた命令長の命令フォーマットにて命令を指定
することができ、コードサイズを削減することができ
る。
3記載のプロセッサにおいて、前記解読手段は、前記語
素の一定数ごとに区切られた前記複合命令をそれぞれ解
読する複数の単位解読手段と、前記語数情報に基づいて
前記単位解読手段のいくつかの解読を無効化する解読制
御手段とから構成されることを特徴とする。
アを単純化することができ、命令長を可変とすることに
よりハードウェアが複雑になり、遅延が増大して性能が
低下するという問題点を克服している。
4記載のプロセッサにおいて、前記解読制御手段は、前
記語数情報に基づいて、命令中のオペレーションに関す
る記述を解読していない前記単位解読手段に対して前記
無効化を行うことを特徴とする。
アを単純化することができ、命令長を可変とすることに
よりハードウェアが複雑になり、遅延が増大して性能が
低下する、という問題点を克服している。
項5記載のプロセッサにおいて、前記一定数は、前記単
位命令を構成する前記語素の最小の数であることを特徴
とする。
3から請求項6のいずれか1項に記載のプロセッサにお
いて、一語が複数でかつ所定数の語素からなる複合命令
を実行するVLIW方式のプロセッサであって、さら
に、前記複合命令が一語に含み得る前記単位命令の数に
等しい数の、前記単位命令を実行する実行手段を備える
ことを特徴とする。
1から請求項7のいずれか1項に記載のプロセッサにお
いて、前記単位命令は、第1の数の前記語素から構成さ
れる単位命令と、前記第1の数より大きい第2の数の前
記語素から構成される単位命令とがあり、前記第2の数
の前記語素から構成される単位命令の内にあって、前記
第1の数の前記語素から構成される単位命令に相当する
部分からはみ出す部分の語素には、命令中の数値に関す
る記述のみが配置されることを特徴とする。
を短くすることができ、ハードウェアを単純化すること
ができる。
項1または請求項2記載のプロセッサにおいて、前記複
合命令中の前記単位命令と該単位命令に後続する単位命
令とが並列に実行できるか否かを示す並列実行情報が、
前記複合命令内に明示的に含まれることを特徴とする。
ト数に応じた命令長の命令フォーマットにて命令を指定
することができると共に、一般のVLIWなどで並列実
行可能な命令が存在しない場合に挿入される無動作命令
の挿入が不要となり、コードサイズを削減することがで
きる。
項9記載のプロセッサにおいて、前記並列実行情報が、
並列に実行できる前記単位命令の群と後続する前記群と
の境界に関する情報であることを特徴とする。
求項9または請求項10記載のプロセッサにおいて、記
憶装置から前記複合命令を読み出す複合命令読み出し手
段と、前記複合命令読み出し手段により読み出された前
記複合命令中の前記語素から、前記語数情報と前記並列
実行情報とに基づいて前記命令単位を組み立てて解読す
る解読手段とを備えることを特徴とする。
ト数に応じた命令長の命令フォーマットにて命令を指定
することができると共に、一般のVLIWなどで並列実
行可能な命令が存在しない場合に挿入される無動作命令
の挿入が不要となり、コードサイズを削減することがで
きる。
項11記載のプロセッサにおいて、前記解読手段は、前
記語素の一定数ごとに区切られた前記複合命令をそれぞ
れ解読する複数の単位解読手段と、前記語数情報と前記
並列実行情報とに基づいて前記単位解読手段のいくつか
の解読を無効化する解読制御手段とから構成されること
を特徴とする。
ト数に応じた命令長の命令フォーマットにて命令を指定
することができると共に、一般のVLIWなどで並列実
行可能な命令が存在しない場合に挿入される無動作命令
の挿入が不要となり、コードサイズを削減することがで
きる。さらに、命令の発行部のハードウェアを単純化す
ることができ、命令長を可変とすることによりハードウ
ェアが複雑になり、遅延が増大して性能が低下するとい
う問題点を克服している。
実施の形態について、図面を用いて詳細に説明する。 (命令フォーマットとアーキテクチャの概要)まず、本
プロセッサが解読実行する命令(特許請求の範囲に記載
する「単位命令」に相当する。)の構造について説明す
る。
命令フォーマットを示す図である。本プロセッサの各命
令は、21ビットの命令構成要素(ここでは「ユニッ
ト」と呼ぶ。特許請求の範囲に記載する「語素」に相当
する。)にて構成されており、ユニット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の指定さ
れたレジスタの格納値が外部メモリにストアされる。
第1演算部44、第2演算部45、第3演算部46及び
オペランドアクセス部47は、図示されるように、デー
タバス48(L1バス、R1バス、L2バス、R2バ
ス、L3バス、R3バス)及びデータバス49(D1バ
ス、D2バス、D3バス)で接続されている。なお、L
1バス及びR1バスはそれぞれ第1演算部44の2つの
入力ポートに、L2バス及びR2バスはそれぞれ第2演
算部45の2つの入力ポートに、L3バス及びR3バス
はそれぞれ第3演算部46の2つの入力ポートに、D1
バス、D2バス及びD3バスはそれぞれ第1演算部4
4、第2演算部45及び第3演算部46の出力ポートに
接続されている。 (命令バッファの詳細な構成)次に、命令バッファ22
の詳細な構成を説明する。
示すブロック図である。命令バッファ22は命令バッフ
ァA221及び命令バッファB222の2個の63ビッ
トのバッファからなり、それぞれ3個ずつのユニットを
保持することができる。命令バッファA221はバッフ
ァA0、A1及び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ユニッ
ト長の命令を解読する必要があり、本発明の構成に比べ
てハードウェアが増加している。 (プロセッサの動作)次に、具体的な命令を解読実行し
た場合の本実施形態のプロセッサの動作について説明す
る。
例を示すフローチャートである。本図に示されている処
理は、32ビットの定数“0x87654321”をレ
ジスタR1に転送し(ステップS100)、レジスタR
5の格納値をレジスタR0に転送し(ステップS10
1)、レジスタR0の格納値にレジスタR1の格納値を
加え(ステップS102)、レジスタR3の格納値にレ
ジスタR2の格納値を加え(ステップS103)、レジ
スタR0の格納値をメモリ内のレジスタR4の格納値で
示されるアドレスに格納し(ステップS104)、レジ
スタR0の格納値をレジスタR6に転送し(ステップS
105)、最後にレジスタ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が各ユニットの並列
実行境界情報10とフォーマット情報11を参照して発
行を制御する。具体的には、1番目のユニットのフォー
マット情報11が“1”であるので、1番目のユニット
と2番目のユニットを連結して1つの命令として扱う。
つまり、第2命令デコーダ34の無動作命令フラグを
“1”にセットして、命令としてのデコードを無効化す
る。また、1番目のユニットの並列実行境界情報10が
“0”であり、3番目のユニットの並列実行境界情報1
0が“1”であるので、3番目のユニットまでの2個の
命令を発行する。供給されたすべてのユニットを発行す
るため、命令バッファ22にはユニットは蓄積されな
い。
x87654321”が転送され、レジスタR5の格納
値がレジスタR0に転送される。 (実行単位2)パケット71がメモリから供給され、パ
ケット71内のユニットが順に命令レジスタ23に転送
される。3個のユニット共フォーマット情報11が
“0”であるので、いずれのユニットも21ビット命令
となる。また、1番目のユニットの並列実行境界情報1
0が“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ビットとなっ
ている。しかし、依然として本発明に係るプロセッサの
場合のコードサイズに比べると大きい。
ルとの比較を行う。図12は、図8に示された処理を、
命令長が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方式のプロセッサであっ
て、実行の単位となる単位命令が一または複数の前記語
素から構成され、かつ前記単位命令を構成する前記語素
の数が少なくとも二通りあることを特徴とする。
ト数に応じた命令長の命令フォーマットにて命令を指定
することができ、コードサイズを削減することができ
る。
かつ所定数の語素からなる複合命令を実行するVLIW
方式のプロセッサであって、実行の単位となる単位命令
が一または複数の前記語素から構成され、かつ前記単位
命令を構成する前記語素の数が少なくとも二通りあり、
前記複合命令中の前記単位命令と該単位命令に後続する
単位命令とが並列に実行できるか否かを示す並列実行情
報が、前記複合命令内に明示的に含まれることを特徴と
する。
ト数に応じた命令長の命令フォーマットにて命令を指定
することができると共に、一般のVLIWなどで並列実
行可能な命令が存在しない場合に挿入される無動作命令
の挿入が不要となり、コードサイズを削減することがで
きる。
語素からなる複合命令を実行し、実行の単位となる単位
命令が一または複数の前記語素から構成され、かつ前記
単位命令を構成する前記語素の数が少なくとも二通りあ
るプロセッサであって、記憶装置から前記複合命令を読
み出す複合命令読み出し手段と、前記複合命令読出し手
段により読出された前記複合命令中の前記語素から、い
ずれかの前記語素内に含まれ前記単位命令を構成する前
記語素の数に関する語数情報に基づいて、前記命令単位
を組み立てて解読する解読手段とを備え、前記単位命令
は、第1の数の前記語素から構成される単位命令と、前
記第1の数より大きい第2の数の前記語素から構成され
る単位命令とがあり、前記第2の数の前記語素から構成
される単位命令の内にあって、前記第1の数の前記語素
から構成される単位命令に相当する部分からはみ出す部
分の語素には、命令中の数値に関する記述のみが配置さ
れることを特徴とする。
は命令デコーダに入力せず、直接定数オペランドとして
出力することができ、命令デコーダを簡単化することが
できる。これにより、ハードウェアを単純化することが
できる。
語素からなる複合命令を実行し、実行の単位となる単位
命令が一または複数の前記語素から構成され、かつ前記
単位命令を構成する前記語素の数が少なくとも二通りあ
るプロセッサであって、記憶装置から前記複合命令を読
み出す複合命令読み出し手段と、前記複合命令読出し手
段により読出された前記複合命令中の前記語素から、い
ずれかの前記語素内に含まれ前記単位命令を構成する前
記語素の数に関する語数情報に基づいて、前記命令単位
を組み立てて解読する解読手段とを備え、前記解読手段
は、前記語素の一定数ごとに区切られた前記複合命令を
それぞれ解読する複数の単位解読手段と、前記語数情報
に基づいて前記単位解読手段のいくつかの解読を無効化
する解読制御手段とから構成されることを特徴とする。
行部への単位命令の転送の際のセレクタによる遅延を解
消し、またハードウェアを単純化することができる。よ
って、命令長を可変とすることによりハードウェアが複
雑になり、遅延が増大して性能が低下する、という問題
点を克服している。さらに、この命令発行制御方法で
は、並列度が増して同時発行可能な命令数が増えても、
単位命令の命令レジスタへの転送の遅延が増加しないと
いうメリットがある。
ている構成に対してデコーダの数を減らすことができ
る。また、解読ステージの前半にオペランドの読み出し
を開始することができるため、解読ステージが完了する
時点でオペランドの読み出しを完了させておくことがで
き、実行効率を高めることができる。
命令の構造を示す図
を示す図
ク図
を示すブロック図
示すブロック図
の回路構成を示す図
の組み合わせを示す図
ーチャート
せるプログラムの実行コードの例と実行イメージを示す
図
定のVLIW方式の従来のプロセッサに行わせるプログ
ラムの実行コードの例と実行イメージを示す図
定で命令内に並列実行境界の情報を持たせる方式の従来
のプロセッサに行わせるプログラムの実行コードの例と
実行イメージを示す図
定で命令内に並列実行境界の情報を持たせる方式の従来
のプロセッサに行わせるプログラムの実行コードの例と
実行イメージを示す図
の構成を示すブロック図
の構成を示すブロック図
/400における命令レジスタ周辺の構成を示すブロッ
ク図
命令レジスタ23周辺の構成を示すブロック図
Claims (12)
- 【請求項1】 一語が複数でかつ所定数の語素からなる
複合命令を実行するVLIW方式のプロセッサであっ
て、 実行の単位となる単位命令が一または複数の前記語素か
ら構成され、かつ前記単位命令を構成する前記語素の数
が少なくとも二通りあることを特徴とするプロセッサ。 - 【請求項2】 前記単位命令を構成する前記語素の数に
関する語数情報が、前記単位命令内に明示的に含まれる
ことを特徴とする請求項1記載のプロセッサ。 - 【請求項3】 一語が複数の語素からなる複合命令を実
行し、実行の単位となる単位命令が一または複数の前記
語素から構成され、かつ前記単位命令を構成する前記語
素の数が少なくとも二通りあるプロセッサであって、 記憶装置から前記複合命令を読み出す複合命令読み出し
手段と、 前記複合命令読み出し手段により読み出された前記複合
命令中の前記語素から、いずれかの前記語素内に含まれ
る前記単位命令を構成する前記語素の数に関する語数情
報に基づいて、前記単位命令を組み立てて解読する解読
手段とを備えることを特徴とするプロセッサ。 - 【請求項4】 前記解読手段は、 前記語素の一定数ごとに区切られた前記複合命令をそれ
ぞれ解読する複数の単位解読手段と、 前記語数情報に基づいて前記単位解読手段のいくつかの
解読を無効化する解読制御手段とから構成されることを
特徴とする請求項3記載のプロセッサ。 - 【請求項5】 前記解読制御手段は、前記語数情報に基
づいて、命令中のオペレーションに関する記述を解読し
ていない前記単位解読手段に対して前記無効化を行うこ
とを特徴とする請求項4記載のプロセッサ。 - 【請求項6】 前記一定数は、前記単位命令を構成する
前記語素の最小の数であることを特徴とする請求項5記
載のプロセッサ。 - 【請求項7】 前記プロセッサは、一語が複数でかつ所
定数の語素からなる複合命令を実行するVLIW方式の
プロセッサであって、 さらに、前記複合命令が一語に含み得る前記単位命令の
数に等しい数の、前記単位命令を実行する実行手段を備
えることを特徴とする請求項3から6のいずれか1項に
記載のプロセッサ。 - 【請求項8】 前記単位命令は、第1の数の前記語素か
ら構成される単位命令と、前記第1の数より大きい第2
の数の前記語素から構成される単位命令とがあり、 前記第2の数の前記語素から構成される単位命令の内に
あって、前記第1の数の前記語素から構成される単位命
令に相当する部分からはみ出す部分の語素には、命令中
の数値に関する記述のみが配置されることを特徴とする
請求項1から7のいずれか1項に記載のプロセッサ。 - 【請求項9】 前記複合命令中の前記単位命令と該単位
命令に後続する単位命令とが並列に実行できるか否かを
示す並列実行情報が、前記複合命令内に明示的に含まれ
ることを特徴とする請求項1または2記載のプロセッ
サ。 - 【請求項10】 前記並列実行情報が、並列に実行でき
る前記単位命令の群と後続する前記群との境界に関する
情報であることを特徴とする請求項9記載のプロセッ
サ。 - 【請求項11】 前記プロセッサは、 記憶装置から前記複合命令を読み出す複合命令読み出し
手段と、 前記複合命令読み出し手段により読み出された前記複合
命令中の前記語素から、前記語数情報と前記並列実行情
報とに基づいて前記命令単位を組み立てて解読する解読
手段とを備えることを特徴とする請求項9または10記
載のプロセッサ。 - 【請求項12】 前記解読手段は、 前記語素の一定数ごとに区切られた前記複合命令をそれ
ぞれ解読する複数の単位解読手段と、 前記語数情報と前記並列実行情報とに基づいて前記単位
解読手段のいくつかの解読を無効化する解読制御手段と
から構成されることを特徴とする請求項11記載のプロ
セッサ。
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 true JPH11282674A (ja) | 1999-10-15 |
JP3451921B2 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) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1251425A2 (en) * | 2001-04-18 | 2002-10-23 | Fujitsu Limited | Very long instruction word information processing device and system |
JP2007531133A (ja) * | 2004-03-31 | 2007-11-01 | イセラ・インコーポレーテッド | 二重経路プロセッサの処理制御のための装置および方法 |
JP2007531134A (ja) * | 2004-03-31 | 2007-11-01 | イセラ・インコーポレーテッド | 非対称二重経路処理のための装置および方法 |
US7401204B1 (en) | 1999-10-01 | 2008-07-15 | Fujitsu Limited | Parallel Processor efficiently executing variable instruction word |
JP2011181100A (ja) * | 2011-05-19 | 2011-09-15 | Panasonic Corp | プロセッサ、及び並列命令実行対応デバッグ装置 |
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 |
-
1998
- 1998-03-30 JP JP08336898A patent/JP3451921B2/ja not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401204B1 (en) | 1999-10-01 | 2008-07-15 | Fujitsu Limited | Parallel Processor efficiently executing variable instruction word |
EP1251425A2 (en) * | 2001-04-18 | 2002-10-23 | Fujitsu Limited | Very long instruction word information processing device and system |
EP1251425A3 (en) * | 2001-04-18 | 2003-01-02 | Fujitsu Limited | Very long instruction word information processing device and system |
JP2007531133A (ja) * | 2004-03-31 | 2007-11-01 | イセラ・インコーポレーテッド | 二重経路プロセッサの処理制御のための装置および方法 |
JP2007531134A (ja) * | 2004-03-31 | 2007-11-01 | イセラ・インコーポレーテッド | 非対称二重経路処理のための装置および方法 |
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 |
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 |
US8484442B2 (en) | 2004-03-31 | 2013-07-09 | Icera Inc. | Apparatus and method for control processing in dual path processor |
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 |
US9477475B2 (en) | 2004-03-31 | 2016-10-25 | Nvidia Technology Uk Limited | Apparatus and method for asymmetric dual path processing |
JP2011181100A (ja) * | 2011-05-19 | 2011-09-15 | Panasonic Corp | プロセッサ、及び並列命令実行対応デバッグ装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3451921B2 (ja) | 2003-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5163139A (en) | Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions | |
US6490673B1 (en) | Processor, compiling apparatus, and compile program recorded on a recording medium | |
KR100267097B1 (ko) | 슈퍼스칼라 프로세서에서 간단한 비의존성 파이프라인 인터록 제어로서 판독되는 지연된 저장 데이터 | |
US6418527B1 (en) | Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods | |
US6829696B1 (en) | Data processing system with register store/load utilizing data packing/unpacking | |
US7600096B2 (en) | Coprocessor extension architecture built using a novel split-instruction transaction model | |
US6560697B2 (en) | Data processor having repeat instruction processing using executed instruction number counter | |
US5881307A (en) | Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor | |
JP2816248B2 (ja) | データプロセッサ | |
EP1102163A2 (en) | Microprocessor with improved instruction set architecture | |
EP1470476A2 (en) | Configurable data processor with multi-length instruction set architecture | |
US6950926B1 (en) | Use of a neutral instruction as a dependency indicator for a set of instructions | |
US9021236B2 (en) | Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution | |
KR19980079301A (ko) | 레지스터 파일 판독을 감소시키는 벡터 프로세서 디자인 | |
US7139899B2 (en) | Selected register decode values for pipeline stage register addressing | |
CN108139911B (zh) | 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格 | |
US6324639B1 (en) | Instruction converting apparatus using parallel execution code | |
JPH11282674A (ja) | プロセッサ | |
US7010677B2 (en) | Data processor speeding up repeat processing by inhibiting remaining instructions after a break in a repeat block | |
US20020116599A1 (en) | Data processing apparatus | |
US6889320B1 (en) | Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter | |
US7024540B2 (en) | Methods and apparatus for establishing port priority functions in a VLIW processor | |
CN111984314A (zh) | 使用位反转顺序的矢量存储 | |
CN111984313A (zh) | 矢量位转置 | |
US20070055851A1 (en) | Zero overhead branching and looping in time stationary processors |
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 |