JPH117387A - Vliwプロセッサ - Google Patents
VliwプロセッサInfo
- Publication number
- JPH117387A JPH117387A JP9159048A JP15904897A JPH117387A JP H117387 A JPH117387 A JP H117387A JP 9159048 A JP9159048 A JP 9159048A JP 15904897 A JP15904897 A JP 15904897A JP H117387 A JPH117387 A JP H117387A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- field
- code
- decoding
- vliw processor
- 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
- 238000012546 transfer Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 22
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 3
- 241000153282 Theope Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30163—Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
に多くのオペレーションを指定することができるコード
効率のよい構造を有する命令を実行するVLIWプロセ
ッサを提供する。 【解決手段】 32ビット長の命令50に最大3個のオ
ペレーションを指定するフィールド52、59、60を
設ける。P1.0フィールド52には、暗黙的に指定さ
れた定数レジスタ36の格納値を分岐先番地とする分岐
オペレーションを指定するオペコード”cc”のみ、又
は、定数レジスタ36にセットする定数“const”
が置かれる。いずれが置かれているかは、4ビット長の
P0.0フィールド51に置かれたフォーマットコード
によって特定される。
Description
クチャを採るプロセッサに関し、特に、比較的短い語長
であってコード効率の高い命令を実行するプロセッサに
関する。
増大と電子機器の小型化に伴い、音声や画像データ等の
マルチメディアデータを高速に処理できるマイクロプロ
セッサが必要とされている。この要求に応えるマイクロ
プロセッサとして、VLIW(Very Long Instruction
Word)アーキテクチャを採るプロセッサ(以下、「VL
IWプロセッサ」という。)がある。
ユニットを備え、1個のVLIWに置かれた複数のオペ
レーションを同時並列に実行する。このようなVLIW
は、コンパイラよってソースプログラムにおけるオペレ
ーションレベルでの並列性が検出されスケジューリング
された後に生成されたものである。ところが、特に機器
組み込み用途においては、プログラムのコードサイズが
問題となるために、256ビットの如く長いVLIW
や、無動作命令(以下、「NOP命令」という。)が頻
繁に挿入されたコード効率の悪いVLIWは好ましくな
い。
LIWプロセッサとして、最大2個のオペレーションを
同時に指定することができる32ビットの命令を実行す
るVLIWプロセッサがある(例えば、特開平9−26
878に開示されたデータ処理装置)。図15(a)及
び図15(b)は、上記従来技術における命令フォーマ
ットを示し、それぞれ、同時に2個のオペレーションを
指定する命令フォーマット、1個のオペレーションだけ
を指定する命令フォーマットを示す。この従来技術は、
2ビットのフォーマットフィールド410の値によって
その命令に置かれたオペレーションの数や実行順序を制
御することで、コード効率を向上せんとするものであ
る。
来技術では、32ビット長の1個の命令で同時に指定で
きるオペレーションの数は最高で2個であり、その並列
性は充分とは言えない。また、ある長さの語長を超える
定数を用いた演算を行わせる場合には、命令のコード効
率が低下してしまうという問題がある。例えば、32ビ
ットの定数をレジスタにセットするためにその定数を2
つに分割し、定数の上位16ビットをセットした後に下
位16ビットをセットした場合には、それらオペレーシ
ョンの指定のためだけに2個の32ビット長命令が消費
されてしまう。
されたものであり、比較的短い語長の命令であって、か
つ、同時に多くのオペレーションを指定することができ
るコード効率のよい構造を有する命令、例えば、32ビ
ット長の命令であれば3個以上のオペレーションを指定
することができるような並列性の高い命令を実行するV
LIWプロセッサを提供することを第1の目的とする。
語長の命令であって、かつ、比較的長い語長の定数を扱
う場合においてもコード効率が低下しにくい構造を有す
る命令を実行するVLIWプロセッサを提供することで
ある。
るために本発明は、複数のオペレーションフィールドか
らなる命令を実行するVLIWプロセッサにおいて、前
記オペレーションフィールドの大きさが不均一であり、
かつ前記命令の命令語長は前記命令の持つオペレーショ
ンフィールドの数で割り切れないものであることを特徴
とする。
ョンフィールドが同じ語長でなければならないという制
限から解放され、コード効率のよい命令フォーマットを
定義することが可能となるので、比較的短い語長の命令
であって、かつ、同時に多くのオペレーションを指定す
ることができるコード効率のよい構造を有する命令を実
行するVLIWプロセッサが実現される。
発明は、2個以上のオペレーションフィールドを含む命
令を解読し実行するVLIWプロセッサであって、第1
の前記オペレーションフィールドにはオペレーションの
種類を指定する1個のオペコードのみ又は定数のみが置
かれ、第2の前記オペレーションフィールドには1個の
オペコードとオペレーションの対象となるデータを指定
する1個以上のオペランドとの組又は定数のみが置か
れ、前記第1のオペレーションフィールドにオペコード
が置かれた場合に前記オペコードを解読する第1の解読
手段と、前記第1の解読手段による解読結果に基づいて
前記オペコードによって指定されたオペレーションを実
行する第1の実行手段と、前記第2のオペレーションフ
ィールドにオペコードが置かれた場合に前記オペコード
を解読する第2の解読手段と、前記第2の解読手段によ
る解読結果に基づいて前記オペランドによって指定され
たデータに対して前記オペコードによって指定されたオ
ペレーションを実行する第2の実行手段とを備えること
を特徴とする。
ンフィールドに無駄なコードを置く必要が生じた場合で
あっても、他のオペレーションで使用される定数で埋め
ておくことが可能となるので、比較的短い語長の命令で
あってもコード効率が低下しにくい構造を有する命令を
実行するVLIWプロセッサが実現される。
実施の形態について、図面を用いて詳細に説明する。な
お、本明細書では、「命令」とは本プロセッサが同時並
列に解読し実行するコード全体を意味し、「オペレーシ
ョン」とは本プロセッサが並列に実行できる数値演算、
論理演算、転送、分岐等の処理単位又はその処理単位を
指定するためのコードを意味する。 (命令フォーマット)まず、本プロセッサが解読実行す
る命令の構造について説明する。
り、32ビット固定長の命令を解読実行する。図1
(a)は、本プロセッサが実行する命令50のフィール
ド構成を示す図である。図1(b)〜図1(d)は16
種類の命令フォーマットを示す図であり、そのうち、図
1(b)は3オペレーション、図1(c)は2オペレー
ション、図1(d)は1オペレーションを同時に指定で
きる命令フォーマットである。
り、4ビットずつに区切られた8個のフィールド(上位
よりP0.0フィールド51、P1.0フィールド5
2、…、P3.2フィールド58)からなる。なお、P
2.0フィールド53〜P2.2フィールド55のグル
ープをまとめて第1演算フィールド59と呼び、P3.
0フィールド56〜P3.2フィールド58のグループ
をまとめて第2演算フィールド60と呼ぶ。
nst”は定数であり、これが用いられるオペレーショ
ンの種類によっては即値、絶対番地、ディスプレースメ
ント等の数値定数や文字定数を意味する。“op”はオ
ペレーションの種類を指定するオペコードを、“Rs”
はソースオペランドとなるレジスタを、“Rd”はデス
ティネーションオペランドとなるレジスタを、“cc”
は本プロセッサが備える専用の32ビットレジスタ(図
3に示される定数レジスタ36)の格納値を分岐先の絶
対番地又は相対番地(ディスプレースメント)とする分
岐オペレーションを指定するオペコードを意味する。
値は、第1演算フィールド59及び第2演算フィールド
60のいずれのオペレーションのために用いられるもの
であるかを示す。例えば、フォーマットコードが“6”
である命令フォーマットの場合であれば、P1.0フィ
ールド52に置かれた4ビットの定数“const1”
とP2.1フィールド54に置かれた4ビットの定数
“const1”とは結合され、8ビットの定数として
第1演算フィールド59のオペコード“op1”に対応
するソースオペランドになることを意味する。
は、本プロセッサが備える専用の32ビットレジスタ
(図3に示される定数レジスタ36)に格納される定数
を示す。例えば、フォーマットコードが“0”である命
令フォーマットにおけるP1.0フィールド52に置か
れた4ビットの定数“const”は、暗黙的に指定さ
れた定数レジスタ36に格納される定数である。
ペコード“cc”、“op1”及び“op2”それぞれ
によって指定される具体的なオペレーションを説明する
図である。4ビットのオペコード“cc”は、16種類
の分岐オペレーションの中の一つを指定する。1つの分
岐オペレーションは、分岐条件と分岐形式によって特定
される。分岐条件には、等しい(“eq”)、等しくな
い(“neq”)、より大きい(“gt”)等がある。
分岐形式には、上記定数レジスタ36の格納値を分岐先
の絶対番地として分岐する形式(ニーモニック表示にお
いて“i”が添付されていないもの)と相対番地として
分岐する形式(ニーモニック表示において“i”が添付
されているもの)とがある。例えば、オペコード“e
q”は、直前の比較結果が等しい場合に絶対番地指定に
よる分岐を行なうオペレーションを意味し、オペコード
“eqi”は、直前の比較結果が等しい場合に相対番地
指定による分岐を行なうオペレーションを意味する。
dd”(加算)、“sub”(減算)、“mul”(乗
算)、“and”(論理積)、“or”(論理和)等の
算術論理演算に属するオペレーションの一つを指定する
場合と、“mov”(ワード(32ビット)データの転
送)、“movh”(ハーフワードデータの転送)、
“movb”(バイトデータの転送)等のレジスタ・レ
ジスタ間転送に属するオペレーションの一つを指定する
場合とがある。
オペコード“op1”と同様の算術論理演算及びレジス
タ・レジスタ間転送に加えて、“ld”(メモリからレ
ジスタへの1ワードデータのロード)、“st”(レジ
スタからメモリへのワードデータのストア)等のレジス
タ・メモリ間転送に属するオペレーションの一つを指定
する場合がある。
51、52、59、60の特徴を説明する。P0.0フ
ィールド51は、この命令50のフォーマットを特定す
る4ビットのフォーマットコードを置くためのフィール
ドであり、具体的には、図1(b)〜図1(d)に示さ
れた16種類の命令フォーマットの一つを特定する。
用のオペコードを置くためのフィールドである。このP
1.0フィールド52に定数が置かれた場合(フォーマ
ットコード=0、1、4〜9の場合)には、その定数
は、定数レジスタ36に格納する対象となる場合(フォ
ーマットコード=0、1、4、5の場合)と、第1演算
フィールド59又は第2演算フィールド60のオペラン
ドの一部を構成する場合(フォーマットコード=5、
7、8、9、Bの場合)とがある。さらに、定数レジス
タ36に格納する対象となる場合には、その4ビットの
定数のみが格納される場合(フォーマットコード=0、
1の場合)と、第1演算フィールド59又は第2演算フ
ィールド60に置かれた12ビットの定数と共に格納さ
れる場合(フォーマットコード=4、5の場合)とがあ
る。
用のオペコード“cc”が置かれた場合(フォーマット
コード=2、3、Aの場合)には、定数レジスタ36に
格納された定数を分岐先の絶対番地として、又は、相対
番地(ディスプレースメント)として分岐することを意
味する。第1演算フィールド59は、本プロセッサと外
部(メモリ)とのデータの転送を伴わないオペレーショ
ン(算術論理演算、レジスタ間転送)を指定するための
オペコードとオペランド(ソース及びデスティネーショ
ン)との組又は定数が置かれる。
フィールド59の場合に加えて、本プロセッサと外部
(メモリ)とのデータの転送を伴うペレーション(レジ
スタ・メモリ間転送)を指定するためのオペコードとオ
ペランドとの組が置かれることもある。なお、以上のよ
うなオペレーションの種類の各フィールドへの割当て
は、ノイマン型の本プロセッサにおいては2つ以上の分
岐オペレーションを同時に実行する必要がないこと、本
プロセッサと外部(メモリ)とのオペランドの入出力ポ
ート(図3におけるオペランドアクセス部40)を1つ
に限定していること等に基づく。
た命令フォーマットには以下の特徴がある。第1に、定
数“const”に着目して判るように、定数レジスタ
36に定数を格納させる命令フォーマットは次の3通り
である。 (1)フォーマットコードが“0”又は“1”の場合:
この命令では、P1.0フィールド52に置かれた4ビ
ットの定数が定数レジスタ36に格納される。 (2)フォーマットコードが“4”の場合:この命令で
は、P1.0フィールド52〜P2.2フィールド55
に置かれた16ビットの定数が定数レジスタ36に格納
される。 (3)フォーマットコードが“5”の場合:この命令で
は、P1.0フィールド52とP3.0フィールド56
〜P3.2フィールド58に置かれた16ビットの定数
が定数レジスタ36に格納される。
最大3つのオペレーションを指定することができるが、
その場合には、図1(b)に示された3オペレーション
用の命令フォーマットから判るように、それら3つのオ
ペレーションの種類は次のいずれかの組み合わせにな
る。 (1)4ビットの定数を定数レジスタ36にセットする
オペレーションと2個の汎用オペレーション(フォーマ
ットコードが“0”、“1”の場合) (2)定数レジスタ36にセットされた値を絶対番地又
は相対番地として分岐するオペレーションと2個の汎用
オペレーション(フォーマットコードが“2”、“3”
の場合) このように、本プロセッサの命令は、わずか32ビット
長でありながら最大3つのオペレーションを同時に指定
することができるコード効率の高いフィールド構成を有
している。 (プロセッサのハードウェア構成)次に、本プロセッサ
のハードウェア構成を説明する。
ウェア構成を示すブロック図である。本プロセッサは、
上述したように、最大3つのオペレーションを並列実行
するVLIWプロセッサであり、大きく分けて、命令レ
ジスタ10、解読部20及び実行部30から構成され
る。
から送られてきた1個の命令を保持する32ビットのレ
ジスタである。解読部20は、命令レジスタ10に保持
された命令を解読し、その解読結果に応じた制御線を実
行部30に出力するものであり、大きく分けて、フォー
マットデコーダ21と命令デコーダ22とからなる。
ールド12に保持されたオペコード“cc”を解読しそ
の結果に基づいてPC部33を制御する分岐デコーダ2
3と、P2.0フィールド13に保持されたオペコード
を解読しその結果に基づいて第1演算部37を制御する
第1演算デコーダ24と、P3.0フィールド16に保
持されたオペコードを解読しその結果に基づいて第2演
算部38及びオペランドアクセス部40を制御する第2
演算デコーダ25とからなる。
ィールド11に保持された4ビットのフォーマットコー
ドをデコードすることによって命令レジスタ10に保持
された命令のフォーマットが図1(b)〜図1(d)に
示された16種類のうちのいずれであるかを特定し、そ
の結果に応じて分岐デコーダ23、第1演算デコーダ2
4及び第2演算デコーダ25による解読動作を許可又は
禁止したり、実行部30の定数レジスタ制御部32を動
作させたりする。
基本的には1サイクルに1つのオペレーションを解読
し、実行部30に制御信号を与える。また、命令レジス
タ10と実行部30を接続する26ビットの定数信号線
26は、命令レジスタ10に置かれた定数やオペランド
を実行部30に転送するためのバスである。実行部30
は、解読部20での解読結果に基づいて、最大3つのオ
ペレーションを並列実行する回路ユニットであり、実行
制御部31、PC部33、レジスタ群34、第1演算部
37、第2演算部38、命令フェッチ部39及びオペラ
ンドアクセス部40からなる。なお、この実行部30の
うち定数レジスタ制御部32、PC部33及び定数レジ
スタ36については、別の図面においてさらに詳細な構
成を示している。
果に基づいて実行部30の各構成要素33〜40を制御
する制御回路や配線の総称であり、通常のプロセッサが
備える構成要素(タイミング制御、動作許可禁止制御、
ステータス管理、割り込み制御等の回路)の他に本プロ
セッサに特有の定数レジスタ制御部32を有する。定数
レジスタ制御部32は、フォーマットデコーダ21から
の指示に基づいて命令レジスタ10に保持された4ビッ
ト又は16ビットの定数(const)を定数レジスタ
36に格納する制御を行なう。
岐デコーダ23による制御の下で、次に解読実行すべき
命令が置かれている図示されていない外部メモリ上のア
ドレスを命令フェッチ部39に出力する。命令フェッチ
部39は、32ビットのIA(インストラクションアド
レス)バス及び32ビットのID(インストラクション
データ)バスを通じて図示されていない外部メモリから
命令ブロックをフェッチし、内部の命令キャッシュに保
持すると共に、PC部33から出力されたアドレスに相
当する命令を命令レジスタ10に供給する。
用レジスタ35と1個の32ビット定数レジスタ36か
ら構成される。これら16個のレジスタ35、36に格
納された値は、第1演算デコーダ24及び第2演算デコ
ーダ25での解読結果に基づいて、第1演算部37及び
第2演算部38に転送され、ここで演算が施され、又
は、ここを単に通過した後に、レジスタ群34又はオペ
ランドアクセス部40に送られる。なお、定数レジスタ
36に格納された値は、第1演算部37及び第2演算部
38での演算に用いられる他に、PC部33にも転送さ
れ、ここで分岐先となる有効アドレスを生成するために
用いられる。
タに対して算術論理演算を行なうALUと乗算を行う乗
算器とを内部に有し、第1演算デコーダ24による制御
の下で2種類のオペレーション(算術論理演算とレジス
タ間転送)を実行する。第2演算部38も、第1演算部
37と同様に、2個の32ビットデータに対して算術論
理演算を行なうALUと乗算を行う乗算器とを内部に有
し、第2演算デコーダ25による制御の下で2種類のオ
ペレーション(算術論理演算とレジスタ間転送)を実行
する。
コーダによる制御の下でレジスタ群34と図示されてい
ない外部メモリとの間でオペランドの転送を行なう回路
であり、そのオペランドやオペランドアドレスを保持す
るバッファを内部に有する。具体的には、例えば、命令
レジスタ10のP3.1フィールド16にオペコード
“ld”が置かれていた場合には、外部メモリに置かれ
ていた1ワードのデータがオペランドアクセス部40を
経てレジスタ群34のいずれかのレジスタにロードさ
れ、また、オペコード“st”が置かれていた場合に
は、レジスタ群34のいずれかのレジスタの格納値が外
部メモリにストアされる。
算部37、第2演算部38及びオペランドアクセス部4
0は、図示されるように、内部バス(L1バス、R1バ
ス、L2バス、R2バス、D1バス、D2バス)で接続
されている。なお、L1バス及びR1バスはそれぞれ第
1演算部37の2つの入力ポートに、L2バス及びR2
バスはそれぞれ第2演算部38の2つの入力ポートに、
D1バス及びD2バスはそれぞれ第1演算部37及び第
2演算部38の出力ポートに接続されている。 (定数レジスタ36及びその周辺回路の詳細な構成)次
に、定数レジスタ36及びその周辺回路について詳細に
説明する。
路の詳細な構成と接続関係を示すブロック図である。な
お、図中の固定値(“0”)27は、定数“0”を示す
4本の信号線の固定的な配線を意味する。定数レジスタ
制御部32は、5個の3入力セレクタ32a〜32eと
3個の4入力セレクタ32f〜32hとからなり、定数
レジスタ36は、8個の4ビット幅レジスタ36a〜3
6hからなる。なお、各入出力データは並列4ビットで
ある。
デコーダ21及び命令デコーダ22からの制御信号に従
って上記8個の入力セレクタ32a〜32hを制御する
ことで、以下に示す4通りの格納方法のいずれかの方法
により、命令レジスタ10に保持された定数又はゼロを
定数レジスタ36に格納させる。図5(a)〜図5
(d)は、その4通りの格納方法を説明する図である。
によってP0.0フィールド11に保持された値が
“0”又は“1”であると解読された場合の格納方法を
示す。これは、P1.0フィールド12に置かれた4ビ
ットの定数のみを定数レジスタ36に格納する場合に相
当する。具体的には、定数レジスタ36に保持されたデ
ータを4ビット単位で上位にシフトさせると同時に、命
令レジスタ10のP1.0フィールド12に保持された
4ビットの定数を定数レジスタ36の最下位の4ビット
レジスタ36hに格納する。
によってP0.0フィールド11に保持された値が
“4”であると解読された場合の格納方法を示す。これ
は、P1.0フィールド12〜P2.2フィールド15
に置かれた16ビットの定数を定数レジスタ36に格納
する場合に相当する。具体的には、定数レジスタ36の
下位16ビット36e〜36hに保持されたデータを上
位16ビット36a〜36dにシフトさせると同時に、
命令レジスタ10のP1.0フィールド12〜P2.2
フィールド15に保持された16ビットの定数を定数レ
ジスタ36の下位16ビット36e〜36hに格納す
る。
によってP0.0フィールド11に保持された値が
“5”であると解読された場合の格納方法を示す。これ
は、P1.0フィールド12とP3.0フィールド16
〜P3.2フィールド18に置かれた16ビットの定数
を定数レジスタ36に格納する場合に相当する。具体的
には、定数レジスタ36の下位16ビット36e〜36
hに保持されたデータを上位16ビット36a〜36d
にシフトさせると同時に、命令レジスタ10のP1.0
フィールド12とP3.0フィールド16〜P3.2フ
ィールド18に保持された16ビットの定数を定数レジ
スタ36の下位16ビット36e〜36hに格納する。
によってP0.0フィールド11に保持された値が
“2”、“3”及び“A”のいずれかであると解読され
た場合又は命令デコーダ22によってP2.1フィール
ド14、P2.2フィールド15、P3.2フィールド
17及びP3.3フィールド18の少なくとも一つに定
数レジスタ(R15)が指定されている場合の格納方法
を示す。これは、P1.0フィールド12に置かれた分
岐オペレーション、第1演算フィールド59及び第2演
算フィールド60の少なくとも一つのオペレーションに
よって定数レジスタ36の格納値が使用された(読み出
された)後に、定数レジスタ36にオールゼロを格納す
る(定数レジスタ36をクリアする)場合に相当する。
PC部33、第1演算部37及び第2演算部38のいず
れかに読み出された直後に、32ビットの定数“0”を
定数レジスタ36に格納する。なお、定数レジスタ36
の使用後にクリアしておくのは、定数レジスタ36には
常にゼロ拡張された値が格納されていることを保証する
ためである。ここで、ゼロ拡張とは、ある数値の有効桁
数が一定の桁数に満たない場合に、その有効桁より上位
の桁全てをゼロで埋める処理をいう。
0フィールド11の値が“0”、“1”、“4”、
“5”の場合には、定数レジスタ36に既に格納された
定数をシフトさせながら新たな定数が定数レジスタ36
に格納される。また、定数レジスタ36は、その格納値
が一旦読み出されて使用されると、その内容は消去され
る。このようにして、定数レジスタ36は、その内容が
読み出されるまで、次々に格納される定数を蓄積してい
くことができる。 (PC部33の詳細な構成)次に、PC部33の詳細な
構成を説明する。
ロック図である。PC部33は、定数“4”を示す固定
的な配線である固定値(“4”)33a、2入力セレク
タ33b、加算器33c、次に解読実行すべき命令のア
ドレスを保持するPC33d及び4入力セレクタ33e
から構成される。このPC部33では、解読部20から
の制御信号に従ってセレクタ33b、33eが動作する
ことにより、以下の3通りの値のいずれかが有効アドレ
スとしてセレクタ33eから命令フェッチ部39に出力
される。 (1)PC33dの内容に“4”を加算した値 これは、分岐しないで順次に実行する場合、即ち、解読
実行された命令に分岐オペレーションが指定されていな
い場合に相当する。なお、“4”を加算するのは、1つ
の命令の長さが4バイト(32ビット)であることによ
る。 (2)PC33dの内容に定数レジスタ36の内容を加
算した値 これは、定数レジスタ36の内容を相対番地として分岐
する場合、例えば、P1.0フィールド12によって相
対番地による分岐が指定されていると分岐デコーダ23
が解読した場合が該当する。 (3)定数レジスタ36の内容 これは、定数レジスタ36の内容を絶対番地として分岐
する場合、例えば、P1.0フィールド12によって絶
対番地による分岐が指定されていると分岐デコーダ23
が解読した場合が該当する。
加算器33cを備え、定数レジスタ36に保持された値
を直接用いる構成となっているので、第1演算部37や
第2演算部38での演算とは独立並行して、定数レジス
タ36の格納値を絶対番地又は相対番地として分岐する
実行制御を行なうことができる。 (プロセッサの動作)次に、具体的な命令を解読実行し
た場合の本プロセッサの動作について説明する。
例を示すフローチャートである。本図には、レジスタR
0とR1との格納値の差を求め(ステップS80)、そ
の結果にレジスタR2の格納値を掛け(ステップS8
1)、さらにその結果に32ビットの定数“0x876
54321”(16進数の“87654321”)を加
え(ステップS82、S83)、最後にレジスタR3を
クリアしておく(ステップS85)という処理が示され
ている。
セッサに行なわせるプログラムの例を示す図である。こ
のプログラムは、3個の命令71〜73から構成されて
いる。1行が1個の命令に相当し、各命令の内容は各フ
ィールドに置かれたニーモニックで表現されている。な
お、定数は全て16進数で表現されている。また、“f
mtn(n=0〜F)”はフォーマットコード“n”を
示し、“Rn(n=0〜15)”はレジスタ群34の中
の1つのレジスタを示す。なお、“R15”は定数レジ
スタ36を意味する。
した場合の本プロセッサの動作を示すタイミングチャー
トである。本図には、クロックサイクル、汎用レジスタ
R0〜R3及び定数レジスタR15の内容、4つのバス
L1、R1,L2,R2を流れるデータが示されてい
る。上記図8及び図9を用いて、各命令71〜73ごと
の本プロセッサの動作を説明する。 (命令71)命令71が命令レジスタ10にロードされ
ると、本プロセッサは図9のクロックサイクルt0〜t
1に示された動作をする。
タ10のP0.0フィールド11の値(“fmt4”)
から、この命令はフォーマットコードが“4”の2オペ
レーション命令であると判断し、以下の2つのオペレー
ションが並列実行されるように実行部30を制御する。 (1)第1のオペレーション 定数レジスタ制御部32は、内部の8個のセレクタ32
a〜32hを制御することで、図5(b)に示された格
納方法により、P1.0フィールド12〜P2.2フィ
ールド15に保持された16ビットの定数(0x876
5)を定数レジスタ36の下位16ビットに格納する。
その結果、図9のクロックサイクルt0〜t1に示され
るように、定数レジスタR15の内容は、それまでの
“0x00000000”から“0x0000876
5”に変化する。 (2)第2のオペレーション 第2演算部38は、汎用レジスタR0の内容(“0x3
3333333”)と汎用レジスタR1の内容(“0x
22222222”)とを入力とし、ここで減算した後
に、その結果を再び汎用レジスタR0に格納する。その
結果、図9のクロックサイクルt0〜t1に示されるよ
うに、汎用レジスタR0の内容は、それまでの“0x3
3333333”から“0x11111111”に変化
する。 (命令72)次に、命令72が命令レジスタ10にロー
ドされると、本プロセッサは図9のクロックサイクルt
1〜t2に示された動作をする。
1の場合と同様に、命令レジスタ10のP0.0フィー
ルド11の値(“fmt4”)から、この命令はフォー
マットコードが“4”の2オペレーション命令であると
判断し、以下の2つのオペレーションが並列実行される
ように実行部30を制御する。 (1)第1のオペレーション 定数レジスタ制御部32は、内部の8個のセレクタ32
a〜32hを制御することで、図5(b)に示された格
納方法により、P1.0フィールド12〜P2.2フィ
ールド15に保持された16ビットの定数(0x432
1)を定数レジスタ36の下位16ビットに格納する。
その結果、図9のクロックサイクルt1〜t2に示され
るように、定数レジスタR15の内容は、それまでの
“0x00008765”から“0x8765432
1”に変化する。 (2)第2のオペレーション 第2演算部38は、汎用レジスタR2の内容(“0x0
0000004”)と汎用レジスタR0の内容(“0x
11111111”)とを入力とし、ここで乗算した後
に、その結果を再び汎用レジスタR0に格納する。その
結果、図9のクロックサイクルt1〜t2に示されるよ
うに、汎用レジスタR0の内容は、それまでの“0x1
1111111”から“0x44444444”に変化
する。 (命令73)最後に、命令73が命令レジスタ10にロ
ードされると、本プロセッサは図9のクロックサイクル
t2〜t3に示された動作をする。
タ10のP0.0フィールド11の値(“fmt7”)
から、この命令はフォーマットコードが“7”の2オペ
レーション命令であると判断し、以下の2つのオペレー
ションが並列実行されるように実行部30を制御する。 (1)第1のオペレーション 第1演算部37は、定数レジスタR15の内容(“0x
87654321”))値と汎用レジスタR0の内容
(“0x44444444)とを入力とし、それらを加
算した後に、その結果を再び汎用レジスタR0に格納す
る。その結果、図9のクロックサイクルt2〜t3に示
されるように、汎用レジスタR0の内容は、それまでの
“0x44444444”から“0xCBA9876
5”に変化し、定数レジスタR15の内容はクリアされ
る。 (2)第2のオペレーション 第2演算部38は、P1.0フィールド12とP3.1
フィールド17に分割して置かれた8ビットの定数
(“0x00”)を入力とし、そのまま通過させて、汎
用レジスタR3に格納する。その結果、図9のクロック
サイクルt2〜t3に示されるように、汎用レジスタR
3の内容は、それまでの“0xFEDCBA98”から
“0x00000000”に変化する。
て、32ビットの定数“0x87654321”は、2
個の命令71、72に跨って分割配置され、順次定数レ
ジスタ36にシフトされながら格納された後に、第3番
目の命令73によって利用された。このようにして、図
7のフローチャートに示された処理が3個の命令71〜
73によって実行される。次に、16ビットの定数を扱
う別のプログラムを用いて本プロセッサの動作を説明す
る。
ラムの例を示す図である。このプログラムは、5個の命
令74〜78から構成されている。各命令71〜73ご
との本プロセッサの動作は以下の通りである。 (命令74)命令74が命令レジスタ10にロードされ
ると、フォーマットデコーダ21は、命令レジスタ10
のP0.0フィールド11の値(“fmt0”)から、
この命令はフォーマットコードが“0”の3オペレーシ
ョン命令であると判断し、以下の3つのオペレーション
が並列実行されるように実行部30を制御する。 (1)第1のオペレーション 定数レジスタ制御部32は、内部の8個のセレクタ32
a〜32hを制御することで、図5(a)に示された格
納方法により、P1.0フィールド12に保持された4
ビットの定数(“0x8”)を定数レジスタ36の最下
位の4ビットレジスタ36hに格納する。 (2)第2のオペレーション 第1演算部37は、汎用レジスタR6の値を入力とし、
そのまま通過させて、汎用レジスタR1に格納する。 (3)第3のオペレーション 同様に、第2演算部38は、汎用レジスタR7の値を入
力とし、そのまま通過させて、汎用レジスタR2に格納
する。 (命令75)同様にして、命令75が命令レジスタ10
にロードされると、フォーマットデコーダ21は、この
命令はフォーマットコードが“0”の3オペレーション
命令であると判断し、以下の3つのオペレーションが並
列実行されるように実行部30を制御する。 (1)第1のオペレーション 定数レジスタ制御部32は、内部の8個のセレクタ32
a〜32hを制御することで、図5(a)に示された格
納方法により、P1.0フィールド12に保持された4
ビットの定数(“0x7”)を定数レジスタ36の最下
位4ビットレジスタ36hに格納する。この結果、定数
レジスタ36の下位8ビットには定数“0x87”がセ
ットされる。 (2)第2のオペレーション 第1演算部37は、汎用レジスタR0とR1の値を入力
とし、ここで加算した後に、その結果を再び汎用レジス
タR1に格納する。 (3)第3のオペレーション 同様に、第2演算部38は、汎用レジスタR0とR2の
値を入力とし、ここで加算した後に、その結果を再び汎
用レジスタR2に格納する。 (命令76、命令77)同様にして、命令76、77が
実行されることにより、定数レジスタ36の下位16ビ
ットには定数“0x8765”がセットされる。 (命令78)命令78が命令レジスタ10にロードされ
ると、本プロセッサは、図8に示された命令73の場合
と同様の動作をする。
は、16ビットの定数“0x8765”は、4個の命令
74〜77に跨って分割配置され、順次定数レジスタ3
6にシフトされながら格納された後に、第5番目の命令
78によって利用された。 (通常のプロセッサとの比較)次に、上記図8及び図1
0に示されたプログラムと同一内容の処理を通常のプロ
セッサに行なわせた場合について説明し、本発明に係る
プロセッサと比較する。なお、ここでいう通常のプロセ
ッサとは、本発明に係るプロセッサの定数レジスタ36
や定数レジスタ制御部32の如く、分割された定数を蓄
積して格納する手段のみを有しないプロセッサをいい、
32ビット固定長の命令を実行するものとする。
実行する命令のフィールド定義を示し、図11(b)
は、その命令のフォーマットを示す。つまり、通常のプ
ロセッサは、3種類の2オペレーション命令101〜1
03と1種類の1オペレーション命令104を実行する
ものとする。図12は、図8に示されたプログラムと同
一内容の処理、即ち、図7のフローチャートに示された
処理を通常のプロセッサに行なわせるプログラムの例で
ある。
常のプロセッサ用のプログラムは、本発明に係るプロセ
ッサ用のものよりも2個の命令だけ多くなっている。な
お、命令105、106にnopコードが含まれるの
は、命令106は命令105での演算結果を用いるの
で、これらの命令を並列に実行させることができないか
らである。また、1個の定数“0x87654321”
を上位16ビットと下位16ビットの2つに分割して定
数レジスタRiにセットしているのは(命令107、1
08)、32ビットの1個の命令の中に、セット命令の
オペコードと32ビットの定数の両方を同時に配置する
ことは不可能だからである。
グラムと同一内容の処理を通常のプロセッサに行なわせ
るプログラムの例である。図13と図10とを比較して
判るように、通常のプロセッサ用のプログラムは、本発
明に係るプロセッサ用のものよりも1個の命令だけ多く
なっている。以上のように、本発明に係るプロセッサが
実行する命令は、32ビットという比較的短い語長であ
りながら最大3つのオペレーションを同時に指定するこ
とができるコード効率の高いフィールド構成を有してい
る。
ば、16ビットや32ビットの定数が複数の命令に跨っ
て分割配置されていても、それらは定数レジスタ36に
蓄積して格納されることで元の定数に復元され、分岐や
算術演算等のオペレーションに使用される。つまり、命
令中に生じた小さな領域であっても、定数を分割して埋
めておくことができるので、通常のプロセッサに実行さ
せる場合よりもプログラムのコードサイズは縮小され
る。以上、本発明に係るプロセッサについて、実施形態
に基づいて説明したが、本発明はこれら実施形態に限ら
れないことは勿論である。即ち、 (1)上記実施の形態では、命令50は、32ビット長
であり、8個の4ビット長のフィールドからなり、最大
3個のオペレーションを指定することができる構造を有
したが、本発明は、これら数値に限定されるものではな
い。
個の4ビット長のオペコードと1個の4ビット長のオペ
ランドとの組からなる8ビット長のフィールドを加えた
合計40ビット長の命令とすることもできる。これによ
って、40ビットという比較的短い語長の命令でありな
がら最大4つのオペレーションを同時に実行させること
ができるコード効率の高い命令が定義される。 (2)また、32ビット固定長命令によって3個のオペ
レーションを同時に指定することができる命令の構造と
して、図1(a)に示された命令構造の他に、図14
(a)〜図14(d)に示された命令構造とすることも
できる。これら図中において、縦線の最小間隔は1ビッ
ト長を示し、“fmt”はフォーマットフィールドを示
す。
ば、上記実施形態の命令に比較し、より多くの命令フォ
ーマットを定義することができる点、及び、3つのオペ
レーションフィールドそれぞれに少なくとも1個のオペ
ランドを置くことができる点において優る。図14
(b)〜図14(d)に示された構造の命令であれば、
上記実施形態の命令に比較し、2個のオペコード(“o
p2”、“op3”)の桁数が大きいので、より多くの
種類のオペレーションを定義することができる点におい
て優る。 (3)また、上記実施の形態の命令50では、暗黙的な
オペランド(定数レジスタ36の格納値)を用いるフィ
ールドは1箇所だけであったが、これに限定されるもの
ではなく、2箇所以上であってもよい。新たな命令フォ
ーマットを定義することで対応すればよい。 (4)また、上記実施の形態では、数値定数を扱う例が
示されたが、文字定数であってもよいことは言うまでも
ない。複数の命令に跨って分割配置された文字定数であ
っても、定数レジスタ36への複数回の格納によって、
桁数の長い元の文字定数が復元されるからである。 (5)また、上記実施の形態では、図1(b)〜図1
(d)の命令フォーマットから判るように、1個の命令
によって定数レジスタ36に格納させることができる定
数の桁数は4ビット及び16ビットのいずれかであった
が、本発明はこの桁数に限定されるものではない。例え
ば、12ビットや28ビットの定数を定数レジスタ36
に格納するための命令フォーマットを定義してもよい。
そのためには、定数レジスタ36の周辺回路の接続関係
を変更すればよい。
は、複数のオペレーションフィールドからなる命令を実
行するVLIWプロセッサにおいて、前記オペレーショ
ンフィールドの大きさが不均一であり、かつ前記命令の
命令語長は前記命令の持つオペレーションフィールドの
数で割り切れないものであることを特徴とする。
ョンフィールドが同じ語長でなければならないという制
限から解放され、コード効率のよい命令フォーマットを
定義することが可能となるので、比較的短い語長の命令
であって、かつ、同時に多くのオペレーションを指定す
ることができるコード効率のよい構造を有する命令を実
行するVLIWプロセッサが実現される。
からなる命令を実行するVLIWプロセッサにおいて、
前記オペレーションフィールドの大きさが不均一であ
り、かつ前記命令は3つのオペレーションフィールドを
32ビットの命令語長中に持つものであるとすることも
できる。これによって、32ビット長で3個のオペレー
ションを指定することができる並列性の高い命令を実行
するVLIWプロセッサが実現される。
らなる命令を実行するVLIWプロセッサにおいて、前
記オペレーションフィールドのうち少なくとも1つはオ
ペランドの数が異なるものであるとすることもできる。
これによって、命令中の全てのオペレーションフィール
ドが同じ個数のオペランドを有さなければならないとい
う制限から解放されるので、コード効率のよい命令フォ
ーマットを定義することが可能となる。
らなる命令を実行するVLIWプロセッサにおいて、前
記オペレーションフィールドのうち1つはオペコードの
みからなるとすることもできる。これによって、命令中
の全てのオペレーションフィールドにオペコードとオペ
ランドとの組が置かれる場合に比べ、命令の語長は短縮
されるので、コード効率のよい構造を有する命令を実行
するVLIWプロセッサが実現される。
ドを含む命令を解読し実行するVLIWプロセッサであ
って、第1の前記オペレーションフィールドにはオペレ
ーションの種類を指定する1個のオペコードのみが置か
れ、第2の前記オペレーションフィールドには1個のオ
ペコードとオペレーションの対象となるデータを指定す
る1個以上のオペランドとの組が置かれ、前記第1のオ
ペレーションフィールドに置かれたオペコードを解読す
る第1の解読手段と、前記第1の解読手段による解読結
果に基づいて前記オペコードによって指定されたオペレ
ーションを実行する第1の実行手段と、前記第2のオペ
レーションフィールドに置かれたオペコードを解読する
第2の解読手段と、前記第2の解読手段による解読結果
に基づいて前記オペランドによって指定されたデータに
対して前記オペコードによって指定されたオペレーショ
ンを実行する第2の実行手段とを備えるとすることもで
きる。
オペレーションには明示的なオペランドを伴わないオペ
コードのみを置くことができるので、命令語長は短縮さ
れる。また、前記第1のオペレーションフィールドに置
かれたオペコードの桁数は前記第2のオペレーションフ
ィールドに置かれたオペコードの桁数と等しいとするこ
ともできる。
ペコードの桁数を共通にすることができるので、デコー
ダ回路等が簡単化される。また、前記命令に含まれるオ
ペレーションフィールドは3個であり、第3の前記オペ
レーションフィールドは前記第2のオペレーションフィ
ールドと同じ桁数であって1個のオペコードと1個以上
のオペランドとの組が置かれ、前記VLIWプロセッサ
はさらに、前記第3のオペレーションフィールドにオペ
コードが置かれた場合に前記オペコードを解読する第3
の解読手段と、前記第3の解読手段による解読結果に基
づいて前記オペランドによって指定されたデータに対し
て前記オペコードによって指定されたオペレーションを
実行する第3の実行手段とを備えるとすることもでき
る。
ンを実行するVLIWプロセッサが実現される。また、
前記第1の実行手段は、実行すべき命令の流れを制御す
るとすることもできる。これによって、一般的に多くの
桁数を必要としない分岐オペレーションが桁数の小さい
オペレーションフィールドに割り当てられるので、コー
ド効率のよい命令セットが定義される。
オペランドフィールドに置かれたオペランドによって指
定されたデータの転送を制御し、前記第3の実行手段
は、前記第3のオペランドフィールドに置かれたオペラ
ンドによって指定されたデータの算術論理演算を実行す
るとすることもできる。これによって、外部メモリとの
データ転送は命令中の1個のオペレーションだけによっ
て指定されることになるので、VLIWプロセッサが備
えるべきオペランドアクセス回路は簡単化される。
ドを含む命令を解読し実行するVLIWプロセッサであ
って、第1の前記オペレーションフィールドにはオペレ
ーションの種類を指定する1個のオペコードのみ又は定
数のみが置かれ、第2の前記オペレーションフィールド
には1個のオペコードとオペレーションの対象となるデ
ータを指定する1個以上のオペランドとの組又は定数の
みが置かれ、前記第1のオペレーションフィールドにオ
ペコードが置かれた場合に前記オペコードを解読する第
1の解読手段と、前記第1の解読手段による解読結果に
基づいて前記オペコードによって指定されたオペレーシ
ョンを実行する第1の実行手段と、前記第2のオペレー
ションフィールドにオペコードが置かれた場合に前記オ
ペコードを解読する第2の解読手段と、前記第2の解読
手段による解読結果に基づいて前記オペランドによって
指定されたデータに対して前記オペコードによって指定
されたオペレーションを実行する第2の実行手段とを備
えるとすることもできる。
ンフィールドに無駄なコードを置く必要が生じた場合で
あっても、他のオペレーションで使用される定数で埋め
ておくことが可能となるので、比較的短い語長の命令で
あってもコード効率が低下しにくい構造を有する命令を
実行するVLIWプロセッサが実現される。また、前記
命令はさらに、前記第1及び第2のオペレーションフィ
ールドそれぞれに定数のみが置かれているか否かを指定
するフォーマットコードが置かれたフォーマットフィー
ルドを含み、前記VLIWプロセッサはさらに、前記フ
ォーマットコードを解読するフォーマット解読手段と、
前記フォーマット解読手段により前記第1、第2及び第
3の少なくとも1つのオペレーションフィールドに定数
のみが置かれていると解読された場合に、その定数を取
り出して記憶する定数記憶手段とを備えるとすることも
できる。
に埋められた定数は定数記憶手段に格納され、他の命令
中に置かれたオペレーションによってその定数を利用す
ることが可能となるので、比較的短い語長の命令であっ
て、かつ、比較的長い語長の定数を扱う場合においても
コード効率の低下が回避される。また、前記フォーマッ
トフィールドの桁数、前記第1のオペレーションフィー
ルドの桁数、前記第2及び第3のオペレーションフィー
ルドに置かれたオペコードの桁数、前記第2及び第3の
オペレーションフィールドに置かれた各オペランドの桁
数は、いすれもnビットであるとすることもできる。
のフィールドの桁数が同じになるので、VLIWプロセ
ッサの内部回路が簡単化される。以上のように、本発明
によって、比較的短い語長の命令であって、かつ、同時
に多くのオペレーションを指定することができるコード
効率のよい構造を有する命令を実行するVLIWプロセ
ッサが実現され、特にマルチメディアデータを処理する
組み込み用途のプロセッサとしてその実用的価値は大き
い。
する命令のフィールド構成を示す図である。図1(b)
〜図1(d)は、16種類の命令フォーマットを示す図
である。図1(b)は3オペレーション、図1(c)は
2オペレーション、図1(d)は1オペレーションを同
時に指定できる命令フォーマットである。
c”、“op1”及び“op2”それぞれによって指定
される具体的なオペレーションを説明する図である。
ク図である。
回路の詳細な構成を示すブロック図である。
定数の格納方法を示す図である。図5(a)はフォーマ
ットコードが“0”又は“1”である場合、図5(b)
はフォーマットデコードが“4”である場合、図5
(c)はフォーマットデコードが“5”である場合、図
5(d)はフォーマットコードが“2”、“3”及び
“A”のいずれかである場合又は定数レジスタ36の格
納値がオペランドとして指定されている場合の格納方法
を示す。
ブロック図である。
ーチャートである。
るプログラムの例を示す図である。
場合の本プロセッサの動作を示すタイミングチャートで
ある。
に行なわせるプログラムの例を示す図である。
る命令のフィールド定義を示す図である。図11(b)
は、同命令フォーマットを示す図である。
を上記通常のプロセッサに行なわせるプログラムの例を
示す図である。
理を上記通常のプロセッサに行なわせるプログラムの例
を示す図である。
LIWプロセッサにかかる命令構造の変形例を示す図で
ある。
における命令フォーマットを示し、それぞれ、同時に2
個のオペレーションを指定する命令フォーマット、1個
のオペレーションだけを指定する命令フォーマットを示
す図である。
Claims (27)
- 【請求項1】 複数のオペレーションフィールドからな
る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドの大きさが不均一であ
り、かつ前記命令の命令語長は前記命令の持つオペレー
ションフィールドの数で割り切れないものであることを
特徴とするVLIWプロセッサ。 - 【請求項2】 複数のオペレーションフィールドからな
る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドの大きさが不均一であ
り、かつ前記命令は3つのオペレーションフィールドを
32ビットの命令語長中に持つものであることを特徴と
するVLIWプロセッサ。 - 【請求項3】 複数のオペレーションフィールドからな
る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち少なくとも1つは
オペランドの数が異なるものであり、かつ前記命令の命
令語長は前記命令の持つオペレーションフィールドの数
で割り切れないものであることを特徴とするVLIWプ
ロセッサ。 - 【請求項4】 複数のオペレーションフィールドからな
る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち少なくとも1つは
オペランドの数が異なるものであり、かつ前記命令は3
つのオペレーションフィールドを32ビットの命令語長
中に持つものであることを特徴とするVLIWプロセッ
サ。 - 【請求項5】 複数のオペレーションフィールドからな
る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち1つはオペコード
のみからなり、かつ前記命令の命令語長は前記命令の持
つオペレーションフィールドの数で割り切れないもので
あることを特徴とするVLIWプロセッサ。 - 【請求項6】 複数のオペレーションフィールドからな
る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち1つはオペコード
のみからなり、かつ前記命令は3つのオペレーションフ
ィールドを32ビットの命令語長中に持つものであるこ
とを特徴とするVLIWプロセッサ。 - 【請求項7】 2個以上のオペレーションフィールドを
含む命令を解読し実行するVLIWプロセッサであっ
て、 第1の前記オペレーションフィールドにはオペレーショ
ンの種類を指定する1個のオペコードのみが置かれ、 第2の前記オペレーションフィールドには1個のオペコ
ードとオペレーションの対象となるデータを指定する1
個以上のオペランドとの組が置かれ、 前記第1のオペレーションフィールドに置かれたオペコ
ードを解読する第1の解読手段と、 前記第1の解読手段による解読結果に基づいて前記オペ
コードによって指定されたオペレーションを実行する第
1の実行手段と、 前記第2のオペレーションフィールドに置かれたオペコ
ードを解読する第2の解読手段と、 前記第2の解読手段による解読結果に基づいて前記オペ
ランドによって指定されたデータに対して前記オペコー
ドによって指定されたオペレーションを実行する第2の
実行手段とを備えることを特徴とするVLIWプロセッ
サ。 - 【請求項8】 前記第1のオペレーションフィールドの
桁数は前記第2のオペレーションフィールドの桁数より
も小さいことを特徴とする請求項7記載のVLIWプロ
セッサ。 - 【請求項9】 前記第1のオペレーションフィールドに
置かれたオペコードの桁数は前記第2のオペレーション
フィールドに置かれたオペコードの桁数と等しいことを
特徴とする請求項8記載のVLIWプロセッサ。 - 【請求項10】 前記命令に含まれるオペレーションフ
ィールドは3個であり、 第3の前記オペレーションフィールドは前記第2のオペ
レーションフィールドと同じ桁数であって1個のオペコ
ードと1個以上のオペランドとの組が置かれ、 前記VLIWプロセッサはさらに、 前記第3のオペレーションフィールドにオペコードが置
かれた場合に前記オペコードを解読する第3の解読手段
と、 前記第3の解読手段による解読結果に基づいて前記オペ
ランドによって指定されたデータに対して前記オペコー
ドによって指定されたオペレーションを実行する第3の
実行手段とを備えることを特徴とする請求項9記載のV
LIWプロセッサ。 - 【請求項11】 前記第1の実行手段は、実行すべき命
令の流れを制御することを特徴とする請求項10記載の
VLIWプロセッサ。 - 【請求項12】 前記第2の実行手段は、前記第2のオ
ペランドフィールドに置かれたオペランドによって指定
されたデータの転送を制御し、 前記第3の実行手段は、前記第3のオペランドフィール
ドに置かれたオペランドによって指定されたデータの算
術論理演算を実行することを特徴とする請求項11記載
のVLIWプロセッサ。 - 【請求項13】 2個以上のオペレーションフィールド
を含む命令を解読し実行するVLIWプロセッサであっ
て、 第1の前記オペレーションフィールドにはオペレーショ
ンの種類を指定する1個のオペコードのみ又は定数のみ
が置かれ、 第2の前記オペレーションフィールドには1個のオペコ
ードとオペレーションの対象となるデータを指定する1
個以上のオペランドとの組又は定数のみが置かれ、 前記第1のオペレーションフィールドにオペコードが置
かれた場合に前記オペコードを解読する第1の解読手段
と、 前記第1の解読手段による解読結果に基づいて前記オペ
コードによって指定されたオペレーションを実行する第
1の実行手段と、 前記第2のオペレーションフィールドにオペコードが置
かれた場合に前記オペコードを解読する第2の解読手段
と、 前記第2の解読手段による解読結果に基づいて前記オペ
ランドによって指定されたデータに対して前記オペコー
ドによって指定されたオペレーションを実行する第2の
実行手段とを備えることを特徴とするVLIWプロセッ
サ。 - 【請求項14】 前記命令はさらに、前記第1及び第2
のオペレーションフィールドそれぞれに定数のみが置か
れているか否かを指定するフォーマットコードが置かれ
たフォーマットフィールドを含み、 前記VLIWプロセッサはさらに、 前記フォーマットコードを解読するフォーマット解読手
段と、 前記フォーマット解読手段により前記第1、第2及び第
3の少なくとも1つのオペレーションフィールドに定数
のみが置かれていると解読された場合に、その定数を取
り出して記憶する定数記憶手段とを備えることを特徴と
する請求項13記載のVLIWプロセッサ。 - 【請求項15】 前記第1のオペレーションフィールド
の桁数は前記第2のオペレーションフィールドの桁数よ
りも小さいことを特徴とする請求項14記載のVLIW
プロセッサ。 - 【請求項16】 前記第1のオペレーションフィールド
に置かれたオペコードの桁数は前記第2のオペレーショ
ンフィールドに置かれたオペコードの桁数と等しいこと
を特徴とする請求項15記載のVLIWプロセッサ。 - 【請求項17】 前記命令に含まれるオペレーションフ
ィールドは3個であり、 第3の前記オペレーションフィールドは前記第2のオペ
レーションフィールドと同じ桁数であって1個のオペコ
ードと1個以上のオペランドとの組が置かれ、 前記VLIWプロセッサはさらに、 前記第3のオペレーションフィールドにオペコードが置
かれた場合に前記オペコードを解読する第3の解読手段
と、 前記第3の解読手段による解読結果に基づいて前記オペ
ランドによって指定されたデータに対して前記オペコー
ドによって指定されたオペレーションを実行する第3の
実行手段とを備えることを特徴とする請求項16記載の
VLIWプロセッサ。 - 【請求項18】 前記第1の実行手段は、実行すべき命
令の流れを制御することを特徴とする請求項17記載の
VLIWプロセッサ。 - 【請求項19】 前記第2の実行手段は、前記第2のオ
ペランドフィールドに置かれたオペランドによって指定
されたデータの転送を制御し、 前記第3の実行手段は、前記第3のオペランドフィール
ドに置かれたオペランドによって指定されたデータの算
術論理演算を実行することを特徴とする請求項18記載
のVLIWプロセッサ。 - 【請求項20】 前記フォーマットフィールドの桁数、
前記第1のオペレーションフィールドの桁数、前記第2
及び第3のオペレーションフィールドに置かれたオペコ
ードの桁数、前記第2及び第3のオペレーションフィー
ルドに置かれた各オペランドの桁数は、いすれもnビッ
トであることことを特徴とする請求項19記載のVLI
Wプロセッサ。 - 【請求項21】 前記命令は32ビット長であり、 前記nは4であることを特徴とする請求項20記載のV
LIWプロセッサ。 - 【請求項22】 3個以上のオペレーションフィールド
を含む命令を解読し実行するデータ処理装置であって、 第1の前記オペレーションフィールドには実行すべき命
令の流れを制御するオペコードが置かれ、 第2の前記オペレーションフィールドにはデータの転送
を制御するオペコードが置かれ、 第3の前記オペレーションフィールドにはデータの算術
論理演算を制御するオペコードが置かれ、 前記第1のオペレーションフィールドに置かれたオペコ
ードを解読する第1の解読手段と、 前記第1の解読手段による解読結果に基づいて前記オペ
コードによって指定された実行すべき命令の流れの制御
を実行する第1の実行手段と、 前記第2のオペレーションフィールドに置かれたオペコ
ードを解読する第2の解読手段と、 前記第2の解読手段による解読結果に基づいて前記オペ
コードによって指定されたデータの転送の制御を実行す
る第2の実行手段と、 前記第3のオペレーションフィールドに置かれたオペコ
ードを解読する第3の解読手段と、 前記第3の解読手段による解読結果に基づいて前記オペ
コードによって指定されたデータの算術論理演算を実行
する第3の実行手段とを備えることを特徴とするVLI
Wプロセッサ。 - 【請求項23】 前記第1のオペレーションフィールド
の桁数は前記第2及び第3のオペレーションフィールド
のいずれの桁数よりも小さいことを特徴とする請求項2
2記載のVLIWプロセッサ。 - 【請求項24】 前記第2のオペレーションフィールド
の桁数は前記第3のオペレーションフィールドの桁数と
等しいことを特徴とする請求項23記載のVLIWプロ
セッサ。 - 【請求項25】 前記第1、第2及び第3のオペレーシ
ョンフィールドに置かれた各オペコードの桁数は等しい
ことを特徴とする請求項24記載のVLIWプロセッ
サ。 - 【請求項26】 3個以上のオペレーションフィールド
とフォーマットフィールドを含む命令を解読し実行する
データ処理装置であって、 第1の前記オペレーションフィールドには実行すべき命
令の流れを制御するオペコード又は定数が置かれ、 第2の前記オペレーションフィールドにはデータの転送
を制御するオペコード又は定数が置かれ、 第3の前記オペレーションフィールドにはデータの算術
論理演算を制御するオペコード又は定数が置かれ、 前記フォーマットフィールドには、前記第1、第2及び
第3のオペレーションフィールドそれぞれに定数が置か
れているか否かを指定するフォーマットコードが置か
れ、 前記第1のオペレーションフィールドに置かれたオペコ
ードを解読する第1の解読手段と、 前記第1の解読手段による解読結果に基づいて前記オペ
コードによって指定された実行すべき命令の流れの制御
を実行する第1の実行手段と、 前記第2のオペレーションフィールドに置かれたオペコ
ードを解読する第2の解読手段と、 前記第2の解読手段による解読結果に基づいて前記オペ
コードによって指定されたデータの転送の制御を実行す
る第2の実行手段と、 前記第3のオペレーションフィールドに置かれたオペコ
ードを解読する第3の解読手段と、 前記第3の解読手段による解読結果に基づいて前記オペ
コードによって指定されたデータの算術論理演算を実行
する第3の実行手段と、 前記フォーマットコードを解読するフォーマット解読手
段と、 前記フォーマット解読手段により前記第1、第2及び第
3の少なくとも1つのオペレーションフィールドに定数
が置かれていると解読された場合に、その定数を取り出
して記憶する定数記憶手段とを備えることを特徴とする
VLIWプロセッサ。 - 【請求項27】 前記命令が32ビット長であることを
特徴とする請求項22又は26記載のVLIWプロセッ
サ。
Priority Applications (24)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15904897A JP3790607B2 (ja) | 1997-06-16 | 1997-06-16 | Vliwプロセッサ |
US09/096,715 US6085306A (en) | 1997-06-16 | 1998-06-12 | Processor for executing highly efficient VLIW |
TW087109487A TW490636B (en) | 1997-06-16 | 1998-06-15 | Processor for executing highly efficient VLIW |
IL12490498A IL124904A (en) | 1997-06-16 | 1998-06-15 | High efficiency VLIW processor |
EP98304690A EP0886210B1 (en) | 1997-06-16 | 1998-06-15 | Processor for executing highly efficient VLIW instructions |
EP09172121A EP2138932B1 (en) | 1997-06-16 | 1998-06-15 | Processor for executing highly efficient VLIW instructions |
EP06076804.1A EP1734440B1 (en) | 1997-06-16 | 1998-06-15 | Processor for executing highly efficient VLIW instructions |
DE69838966T DE69838966T2 (de) | 1997-06-16 | 1998-06-15 | Prozessor zur Ausführung von hochwirksamen VLIW-Befehlen |
EP09172123A EP2138933A1 (en) | 1997-06-16 | 1998-06-15 | Processor for executing highly efficient VLIW instructions |
SG200203000A SG111062A1 (en) | 1997-06-16 | 1998-06-16 | Processor for executing highly efficient vliw |
CNB981029868A CN1178145C (zh) | 1997-06-16 | 1998-06-16 | 高效执行特长指令字的处理器 |
SG9801438A SG91248A1 (en) | 1997-06-16 | 1998-06-16 | Processor for executing highly efficient vlim |
CNB200410006873XA CN100339824C (zh) | 1997-06-16 | 1998-06-16 | 高效执行特长指令字的处理器和方法 |
MYPI20032352A MY135426A (en) | 1997-06-16 | 1998-06-16 | Processor for executing highly efficient vliw |
MYPI98002693A MY116751A (en) | 1997-06-16 | 1998-06-16 | Processor for executing highly efficient vliw |
KR1019980022512A KR100534967B1 (ko) | 1997-06-16 | 1998-06-16 | 코드효율이높은초장명령어를실행하는프로세서 |
SG200202999A SG111061A1 (en) | 1997-06-16 | 1998-06-16 | Processor for executing highly efficient vliw |
US09/598,397 US6397319B1 (en) | 1997-06-16 | 2000-06-20 | Process for executing highly efficient VLIW |
IL14743102A IL147431A0 (en) | 1997-06-16 | 2002-01-01 | Recording medium recording a vliw instruction |
US10/097,759 US7533243B2 (en) | 1997-06-16 | 2002-05-22 | Processor for executing highly efficient VLIW |
US10/155,672 US6834336B2 (en) | 1997-06-16 | 2002-05-24 | Processor for executing highly efficient VLIW |
US12/418,965 US8019971B2 (en) | 1997-06-16 | 2009-04-06 | Processor for executing highly efficient VLIW |
US12/705,300 US8250340B2 (en) | 1997-06-16 | 2010-02-12 | Processor for executing highly efficient VLIW |
US13/543,437 US20120272044A1 (en) | 1997-06-16 | 2012-07-06 | Processor for executing highly efficient vliw |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15904897A JP3790607B2 (ja) | 1997-06-16 | 1997-06-16 | Vliwプロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003284355A Division JP2004005733A (ja) | 2003-07-31 | 2003-07-31 | Vliwプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH117387A true JPH117387A (ja) | 1999-01-12 |
JP3790607B2 JP3790607B2 (ja) | 2006-06-28 |
Family
ID=15685098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15904897A Expired - Lifetime JP3790607B2 (ja) | 1997-06-16 | 1997-06-16 | Vliwプロセッサ |
Country Status (10)
Country | Link |
---|---|
US (7) | US6085306A (ja) |
EP (4) | EP1734440B1 (ja) |
JP (1) | JP3790607B2 (ja) |
KR (1) | KR100534967B1 (ja) |
CN (2) | CN100339824C (ja) |
DE (1) | DE69838966T2 (ja) |
IL (1) | IL124904A (ja) |
MY (2) | MY116751A (ja) |
SG (3) | SG91248A1 (ja) |
TW (1) | TW490636B (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615339B1 (en) | 1999-07-19 | 2003-09-02 | Mitsubishi Denki Kabushiki Kaisha | VLIW processor accepting branching to any instruction in an instruction word set to be executed consecutively |
JP2006500673A (ja) * | 2002-09-24 | 2006-01-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 処理装置、処理方法及びコンパイラ |
JP2007094812A (ja) * | 2005-09-29 | 2007-04-12 | Renesas Technology Corp | 並列演算装置 |
JP5168143B2 (ja) * | 2006-06-15 | 2013-03-21 | 日本電気株式会社 | プロセッサ、および、命令制御方法 |
JP2014238859A (ja) * | 2010-03-03 | 2014-12-18 | クアルコム,インコーポレイテッド | 階層型の超長命令パケットを処理するシステムおよび方法 |
US10501446B2 (en) | 2003-07-01 | 2019-12-10 | Transitions Optical, Inc. | Photochromic compounds |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
JP3412462B2 (ja) * | 1997-07-30 | 2003-06-03 | 松下電器産業株式会社 | プロセッサ |
US6219776B1 (en) * | 1998-03-10 | 2001-04-17 | Billions Of Operations Per Second | Merged array controller and processing element |
EP0953898A3 (en) * | 1998-04-28 | 2003-03-26 | Matsushita Electric Industrial Co., Ltd. | A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor |
DE60044300D1 (de) * | 1999-08-30 | 2010-06-10 | Ip Flex Inc | Daten-prozessor |
JP3730455B2 (ja) * | 1999-10-01 | 2006-01-05 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US20020004897A1 (en) * | 2000-07-05 | 2002-01-10 | Min-Cheng Kao | Data processing apparatus for executing multiple instruction sets |
US20030023830A1 (en) * | 2001-07-25 | 2003-01-30 | Hogenauer Eugene B. | Method and system for encoding instructions for a VLIW that reduces instruction memory requirements |
WO2004015561A1 (en) * | 2002-08-05 | 2004-02-19 | Koninklijke Philips Electronics N.V. | Processor and method for processing vliw instructions |
CN1675619A (zh) * | 2002-08-16 | 2005-09-28 | 皇家飞利浦电子股份有限公司 | 允述在超长指令字处理器中处理可变长指令的设备、方法和编译器 |
CN1703670B (zh) * | 2002-10-11 | 2010-12-08 | Nxp股份有限公司 | 指令的寻址范围相关并行化的数据处理设备 |
JP4283131B2 (ja) * | 2004-02-12 | 2009-06-24 | パナソニック株式会社 | プロセッサ及びコンパイル方法 |
US8736620B2 (en) * | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8860722B2 (en) * | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US7146491B2 (en) * | 2004-10-26 | 2006-12-05 | Arm Limited | Apparatus and method for generating constant values |
KR100636596B1 (ko) | 2004-11-25 | 2006-10-23 | 한국전자통신연구원 | 고에너지 효율 병렬 처리 데이터 패스 구조 |
US7523295B2 (en) * | 2005-03-21 | 2009-04-21 | Qualcomm Incorporated | Processor and method of grouping and executing dependent instructions in a packet |
US7849466B2 (en) * | 2005-07-12 | 2010-12-07 | Qualcomm Incorporated | Controlling execution mode of program threads by applying a mask to a control register in a multi-threaded processor |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
US20090046105A1 (en) * | 2007-08-15 | 2009-02-19 | Bergland Tyson J | Conditional execute bit in a graphics processor unit pipeline |
US8775777B2 (en) * | 2007-08-15 | 2014-07-08 | Nvidia Corporation | Techniques for sourcing immediate values from a VLIW |
US8521800B1 (en) | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
US8599208B2 (en) * | 2007-08-15 | 2013-12-03 | Nvidia Corporation | Shared readable and writeable global values in a graphics processor unit pipeline |
US8314803B2 (en) | 2007-08-15 | 2012-11-20 | Nvidia Corporation | Buffering deserialized pixel data in a graphics processor unit pipeline |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US7870339B2 (en) | 2008-01-11 | 2011-01-11 | International Business Machines Corporation | Extract cache attribute facility and instruction therefore |
US7734900B2 (en) | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
US9280480B2 (en) | 2008-01-11 | 2016-03-08 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US7895419B2 (en) | 2008-01-11 | 2011-02-22 | International Business Machines Corporation | Rotate then operate on selected bits facility and instructions therefore |
US20100004542A1 (en) * | 2008-07-03 | 2010-01-07 | Texas Instruments Incorporated | System and method for ultrasound color doppler imaging |
US8418268B2 (en) * | 2009-12-04 | 2013-04-16 | Global Trademarks, Llc | Garment having support |
US8228109B2 (en) | 2010-06-28 | 2012-07-24 | Freescale Semiconductor, Inc. | Transmission gate circuitry for high voltage terminal |
US8804764B2 (en) | 2010-12-21 | 2014-08-12 | International Business Machines Corporation | Data path for data extraction from streaming data |
US20120198213A1 (en) * | 2011-01-31 | 2012-08-02 | International Business Machines Corporation | Packet handler including plurality of parallel action machines |
JP5813484B2 (ja) * | 2011-11-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | Vliwプロセッサと命令構造と命令実行方法 |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9317251B2 (en) | 2012-12-31 | 2016-04-19 | Nvidia Corporation | Efficient correction of normalizer shift amount errors in fused multiply add operations |
US9886277B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources |
US9483266B2 (en) * | 2013-03-15 | 2016-11-01 | Intel Corporation | Fusible instructions and logic to provide OR-test and AND-test functionality using multiple test sources |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
CA2957729C (en) | 2014-10-23 | 2019-02-26 | Talon Technologies, Inc. | Garment with multilayer internal abdominal support panels |
CN106160717B (zh) | 2015-04-03 | 2020-08-18 | 恩智浦美国有限公司 | 传输门电路 |
TWI707272B (zh) * | 2019-04-10 | 2020-10-11 | 瑞昱半導體股份有限公司 | 可執行指令的電子裝置以及指令執行方法 |
Family Cites Families (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
US5202967A (en) * | 1988-08-09 | 1993-04-13 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction |
US5000000A (en) * | 1988-08-31 | 1991-03-19 | University Of Florida | Ethanol production by Escherichia coli strains co-expressing Zymomonas PDC and ADH genes |
US5615349A (en) | 1990-09-04 | 1997-03-25 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
JP2835103B2 (ja) * | 1989-11-01 | 1998-12-14 | 富士通株式会社 | 命令指定方法及び命令実行方式 |
JPH04143819A (ja) * | 1989-12-15 | 1992-05-18 | Hitachi Ltd | 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ |
DE4040382C2 (de) * | 1989-12-15 | 1999-03-11 | Hitachi Ltd | Integrierte Halbleiterschaltungsanordnung mit niederer Leistungsaufnahme und Verfahren zu ihrem Betrieb |
US5333280A (en) * | 1990-04-06 | 1994-07-26 | Nec Corporation | Parallel pipelined instruction processing system for very long instruction word |
DE69130723T2 (de) * | 1990-10-05 | 1999-07-22 | Koninklijke Philips Electronics N.V., Eindhoven | Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten |
JP2908598B2 (ja) * | 1991-06-06 | 1999-06-21 | 松下電器産業株式会社 | 情報処理装置 |
JP3186095B2 (ja) | 1991-07-05 | 2001-07-11 | 日本電気株式会社 | 演算処理装置 |
JPH0527970A (ja) * | 1991-07-18 | 1993-02-05 | Seikosha Co Ltd | 演算装置 |
JP2848727B2 (ja) | 1991-11-18 | 1999-01-20 | 株式会社東芝 | 並列演算処理装置 |
EP0551090B1 (en) * | 1992-01-06 | 1999-08-04 | Hitachi, Ltd. | Computer having a parallel operating capability |
JPH05233281A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | 電子計算機 |
US5371864A (en) * | 1992-04-09 | 1994-12-06 | International Business Machines Corporation | Apparatus for concurrent multiple instruction decode in variable length instruction set computer |
US5617549A (en) * | 1992-10-06 | 1997-04-01 | Hewlett-Packard Co | System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer |
US6002880A (en) * | 1992-12-29 | 1999-12-14 | Philips Electronics North America Corporation | VLIW processor with less instruction issue slots than functional units |
US5485629A (en) * | 1993-01-22 | 1996-01-16 | Intel Corporation | Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines |
US5384722A (en) * | 1993-03-10 | 1995-01-24 | Intel Corporation | Apparatus and method for determining the Manhattan distance between two points |
JP2636136B2 (ja) | 1993-04-27 | 1997-07-30 | 工業技術院長 | 演算処理装置及び演算処理方法 |
EP1338957A3 (en) | 1993-11-05 | 2003-10-29 | Intergraph Corporation | Software scheduled superscalar computer architecture |
JP3199205B2 (ja) * | 1993-11-19 | 2001-08-13 | 株式会社日立製作所 | 並列演算装置 |
GB9412435D0 (en) * | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction addressing |
US6334219B1 (en) * | 1994-09-26 | 2001-12-25 | Adc Telecommunications Inc. | Channel selection for a hybrid fiber coax network |
ZA9510127B (en) * | 1994-12-01 | 1996-06-06 | Intel Corp | Novel processor having shift operations |
JP3547139B2 (ja) * | 1995-03-17 | 2004-07-28 | 株式会社 日立製作所 | プロセッサ |
US5669001A (en) * | 1995-03-23 | 1997-09-16 | International Business Machines Corporation | Object code compatible representation of very long instruction word programs |
US5774726A (en) * | 1995-04-24 | 1998-06-30 | Sun Microsystems, Inc. | System for controlled generation of assembly language instructions using assembly language data types including instruction types in a computer language as input to compiler |
JP2931890B2 (ja) | 1995-07-12 | 1999-08-09 | 三菱電機株式会社 | データ処理装置 |
US5848288A (en) | 1995-09-20 | 1998-12-08 | Intel Corporation | Method and apparatus for accommodating different issue width implementations of VLIW architectures |
US5774737A (en) * | 1995-10-13 | 1998-06-30 | Matsushita Electric Industrial Co., Ltd. | Variable word length very long instruction word instruction processor with word length register or instruction number register |
US5884323A (en) * | 1995-10-13 | 1999-03-16 | 3Com Corporation | Extendible method and apparatus for synchronizing files on two different computer systems |
US5822606A (en) * | 1996-01-11 | 1998-10-13 | Morton; Steven G. | DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
US5826054A (en) | 1996-05-15 | 1998-10-20 | Philips Electronics North America Corporation | Compressed Instruction format for use in a VLIW processor |
US5787302A (en) | 1996-05-15 | 1998-07-28 | Philips Electronic North America Corporation | Software for producing instructions in a compressed format for a VLIW processor |
US5852741A (en) | 1996-05-15 | 1998-12-22 | Philips Electronics North America Corporation | VLIW processor which processes compressed instruction format |
US5748936A (en) * | 1996-05-30 | 1998-05-05 | Hewlett-Packard Company | Method and system for supporting speculative execution using a speculative look-aside table |
JP3442225B2 (ja) | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
JP3745039B2 (ja) * | 1996-08-01 | 2006-02-15 | 株式会社ルネサステクノロジ | 遅延命令を有するマイクロプロセッサ |
EP0855648A3 (en) | 1997-01-24 | 1999-12-22 | Texas Instruments Inc. | Data processing with parallel or sequential execution of program instructions |
US5805850A (en) * | 1997-01-30 | 1998-09-08 | International Business Machines Corporation | Very long instruction word (VLIW) computer having efficient instruction code format |
JP3578883B2 (ja) * | 1997-01-31 | 2004-10-20 | 三菱電機株式会社 | データ処理装置 |
US5881307A (en) * | 1997-02-24 | 1999-03-09 | Samsung Electronics Co., Ltd. | Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor |
US6219779B1 (en) * | 1997-06-16 | 2001-04-17 | Matsushita Electric Industrial Co., Ltd. | Constant reconstructing processor which supports reductions in code size |
JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
US6256709B1 (en) * | 1997-06-26 | 2001-07-03 | Sun Microsystems, Inc. | Method for storing data in two-way set associative odd and even banks of a cache memory |
JP3414209B2 (ja) * | 1997-07-30 | 2003-06-09 | 松下電器産業株式会社 | プロセッサ |
JP3412462B2 (ja) * | 1997-07-30 | 2003-06-03 | 松下電器産業株式会社 | プロセッサ |
JP3892118B2 (ja) * | 1997-07-31 | 2007-03-14 | 高砂香料工業株式会社 | 2,2’−ビス(ジアリールホスフィノ)−6,6’−ビス(トリフルオロメチル)−1,1’−ビフェニル、これを配位子とする遷移金属錯体および光学活性な3−ヒドロキシ酪酸エステル誘導体あるいはβ−ブチロラクトンの製造方法 |
US6170051B1 (en) * | 1997-08-01 | 2001-01-02 | Micron Technology, Inc. | Apparatus and method for program level parallelism in a VLIW processor |
US5922065A (en) | 1997-10-13 | 1999-07-13 | Institute For The Development Of Emerging Architectures, L.L.C. | Processor utilizing a template field for encoding instruction sequences in a wide-word format |
US6173389B1 (en) * | 1997-12-04 | 2001-01-09 | Billions Of Operations Per Second, Inc. | Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor |
US6076154A (en) * | 1998-01-16 | 2000-06-13 | U.S. Philips Corporation | VLIW processor has different functional units operating on commands of different widths |
US5881260A (en) * | 1998-02-09 | 1999-03-09 | Hewlett-Packard Company | Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction |
US6446190B1 (en) * | 1998-03-12 | 2002-09-03 | Bops, Inc. | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor |
JP3541669B2 (ja) | 1998-03-30 | 2004-07-14 | 松下電器産業株式会社 | 演算処理装置 |
US6275927B2 (en) * | 1998-09-21 | 2001-08-14 | Advanced Micro Devices. | Compressing variable-length instruction prefix bytes |
US6058306A (en) * | 1998-11-02 | 2000-05-02 | Hughes Electronics Corporation | Compensation of dynamic doppler frequency of large range in satellite communication systems |
US6314509B1 (en) * | 1998-12-03 | 2001-11-06 | Sun Microsystems, Inc. | Efficient method for fetching instructions having a non-power of two size |
JP3841967B2 (ja) * | 1999-01-19 | 2006-11-08 | 株式会社ルネサステクノロジ | マイクロプロセッサ |
EP1165867B1 (en) * | 1999-01-25 | 2004-04-14 | E.I. Du Pont De Nemours And Company | Polysaccharide fibers |
US6116806A (en) * | 1999-02-17 | 2000-09-12 | Chang; Chin Pao | Connection tightness and swing angle adjustable pivot |
US6405301B1 (en) * | 1999-06-15 | 2002-06-11 | U.S. Philips Corporation | Parallel data processing |
US6415376B1 (en) * | 2000-06-16 | 2002-07-02 | Conexant Sytems, Inc. | Apparatus and method for issue grouping of instructions in a VLIW processor |
JP4502532B2 (ja) * | 2001-02-23 | 2010-07-14 | 株式会社ルネサステクノロジ | データ処理装置 |
-
1997
- 1997-06-16 JP JP15904897A patent/JP3790607B2/ja not_active Expired - Lifetime
-
1998
- 1998-06-12 US US09/096,715 patent/US6085306A/en not_active Expired - Lifetime
- 1998-06-15 EP EP06076804.1A patent/EP1734440B1/en not_active Expired - Lifetime
- 1998-06-15 DE DE69838966T patent/DE69838966T2/de not_active Expired - Lifetime
- 1998-06-15 EP EP98304690A patent/EP0886210B1/en not_active Expired - Lifetime
- 1998-06-15 IL IL12490498A patent/IL124904A/en not_active IP Right Cessation
- 1998-06-15 TW TW087109487A patent/TW490636B/zh not_active IP Right Cessation
- 1998-06-15 EP EP09172121A patent/EP2138932B1/en not_active Expired - Lifetime
- 1998-06-15 EP EP09172123A patent/EP2138933A1/en not_active Withdrawn
- 1998-06-16 SG SG9801438A patent/SG91248A1/en unknown
- 1998-06-16 SG SG200203000A patent/SG111062A1/en unknown
- 1998-06-16 SG SG200202999A patent/SG111061A1/en unknown
- 1998-06-16 CN CNB200410006873XA patent/CN100339824C/zh not_active Expired - Lifetime
- 1998-06-16 CN CNB981029868A patent/CN1178145C/zh not_active Expired - Lifetime
- 1998-06-16 KR KR1019980022512A patent/KR100534967B1/ko not_active IP Right Cessation
- 1998-06-16 MY MYPI98002693A patent/MY116751A/en unknown
- 1998-06-16 MY MYPI20032352A patent/MY135426A/en unknown
-
2000
- 2000-06-20 US US09/598,397 patent/US6397319B1/en not_active Expired - Lifetime
-
2002
- 2002-05-22 US US10/097,759 patent/US7533243B2/en not_active Expired - Fee Related
- 2002-05-24 US US10/155,672 patent/US6834336B2/en not_active Expired - Lifetime
-
2009
- 2009-04-06 US US12/418,965 patent/US8019971B2/en not_active Expired - Fee Related
-
2010
- 2010-02-12 US US12/705,300 patent/US8250340B2/en not_active Expired - Fee Related
-
2012
- 2012-07-06 US US13/543,437 patent/US20120272044A1/en not_active Abandoned
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615339B1 (en) | 1999-07-19 | 2003-09-02 | Mitsubishi Denki Kabushiki Kaisha | VLIW processor accepting branching to any instruction in an instruction word set to be executed consecutively |
JP2006500673A (ja) * | 2002-09-24 | 2006-01-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 処理装置、処理方法及びコンパイラ |
US7574583B2 (en) | 2002-09-24 | 2009-08-11 | Silicon Hive B.V. | Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor |
US10501446B2 (en) | 2003-07-01 | 2019-12-10 | Transitions Optical, Inc. | Photochromic compounds |
US10532998B2 (en) | 2003-07-01 | 2020-01-14 | Transitions Optical, Inc. | Photochromic compounds |
US10532997B2 (en) | 2003-07-01 | 2020-01-14 | Transitions Optical, Inc. | Photochromic compounds |
JP2007094812A (ja) * | 2005-09-29 | 2007-04-12 | Renesas Technology Corp | 並列演算装置 |
JP5168143B2 (ja) * | 2006-06-15 | 2013-03-21 | 日本電気株式会社 | プロセッサ、および、命令制御方法 |
JP2014238859A (ja) * | 2010-03-03 | 2014-12-18 | クアルコム,インコーポレイテッド | 階層型の超長命令パケットを処理するシステムおよび方法 |
US9678754B2 (en) | 2010-03-03 | 2017-06-13 | Qualcomm Incorporated | System and method of processing hierarchical very long instruction packets |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3790607B2 (ja) | Vliwプロセッサ | |
US7979676B2 (en) | Method for instructing a data processor to process data | |
JPH09311786A (ja) | データ処理装置 | |
JP3414209B2 (ja) | プロセッサ | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
KR100618247B1 (ko) | 코드크기의축소화를지원하는정수복원형프로세서 | |
JP3789583B2 (ja) | データ処理装置 | |
JP3412462B2 (ja) | プロセッサ | |
US20020116599A1 (en) | Data processing apparatus | |
JP2002251284A (ja) | データ処理装置 | |
JP3451921B2 (ja) | プロセッサ | |
JP3670801B2 (ja) | プロセッサ | |
JP2004005733A (ja) | Vliwプロセッサ | |
US11775310B2 (en) | Data processing system having distrubuted registers | |
EP1050800A1 (en) | A pipelined execution unit | |
EP1113356B1 (en) | Method and apparatus for reducing the size of code in a processor with an exposed pipeline | |
US20100115239A1 (en) | Variable instruction width digital signal processor | |
JPH1185514A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051003 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051011 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060213 |
|
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: 20060307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060403 |
|
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: 20100407 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110407 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120407 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140407 Year of fee payment: 8 |
|
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: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
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 |
|
S131 | Request for trust registration of transfer of right |
Free format text: JAPANESE INTERMEDIATE CODE: R313135 |
|
SZ02 | Written request for trust registration |
Free format text: JAPANESE INTERMEDIATE CODE: R313Z02 |
|
S131 | Request for trust registration of transfer of right |
Free format text: JAPANESE INTERMEDIATE CODE: R313135 |
|
SZ02 | Written request for trust registration |
Free format text: JAPANESE INTERMEDIATE CODE: R313Z02 |
|
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 |
|
EXPY | Cancellation because of completion of term |