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
Application number
JP9159048A
Other languages
English (en)
Other versions
JP3790607B2 (ja
Inventor
Shuichi Takayama
秀一 高山
Nobuo Higaki
信生 桧垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=15685098&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH117387(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP15904897A priority Critical patent/JP3790607B2/ja
Priority to US09/096,715 priority patent/US6085306A/en
Priority to TW087109487A priority patent/TW490636B/zh
Priority to IL12490498A priority patent/IL124904A/en
Priority to EP98304690A priority patent/EP0886210B1/en
Priority to EP09172121A priority patent/EP2138932B1/en
Priority to EP06076804.1A priority patent/EP1734440B1/en
Priority to DE69838966T priority patent/DE69838966T2/de
Priority to EP09172123A priority patent/EP2138933A1/en
Priority to CNB200410006873XA priority patent/CN100339824C/zh
Priority to SG9801438A priority patent/SG91248A1/en
Priority to SG200203000A priority patent/SG111062A1/en
Priority to MYPI20032352A priority patent/MY135426A/en
Priority to MYPI98002693A priority patent/MY116751A/en
Priority to KR1019980022512A priority patent/KR100534967B1/ko
Priority to SG200202999A priority patent/SG111061A1/en
Priority to CNB981029868A priority patent/CN1178145C/zh
Publication of JPH117387A publication Critical patent/JPH117387A/ja
Priority to US09/598,397 priority patent/US6397319B1/en
Priority to IL14743102A priority patent/IL147431A0/xx
Priority to US10/097,759 priority patent/US7533243B2/en
Priority to US10/155,672 priority patent/US6834336B2/en
Publication of JP3790607B2 publication Critical patent/JP3790607B2/ja
Application granted granted Critical
Priority to US12/418,965 priority patent/US8019971B2/en
Priority to US12/705,300 priority patent/US8250340B2/en
Priority to US13/543,437 priority patent/US20120272044A1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30163Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction 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

(57)【要約】 【課題】 比較的短い語長の命令であって、かつ、同時
に多くのオペレーションを指定することができるコード
効率のよい構造を有する命令を実行するVLIWプロセ
ッサを提供する。 【解決手段】 32ビット長の命令50に最大3個のオ
ペレーションを指定するフィールド52、59、60を
設ける。P1.0フィールド52には、暗黙的に指定さ
れた定数レジスタ36の格納値を分岐先番地とする分岐
オペレーションを指定するオペコード”cc”のみ、又
は、定数レジスタ36にセットする定数“const”
が置かれる。いずれが置かれているかは、4ビット長の
P0.0フィールド51に置かれたフォーマットコード
によって特定される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、VLIWアーキテ
クチャを採るプロセッサに関し、特に、比較的短い語長
であってコード効率の高い命令を実行するプロセッサに
関する。
【0002】
【従来の技術】近年のマルチメディア関連機器の需要の
増大と電子機器の小型化に伴い、音声や画像データ等の
マルチメディアデータを高速に処理できるマイクロプロ
セッサが必要とされている。この要求に応えるマイクロ
プロセッサとして、VLIW(Very Long Instruction
Word)アーキテクチャを採るプロセッサ(以下、「VL
IWプロセッサ」という。)がある。
【0003】VLIWプロセッサは、内部に複数の演算
ユニットを備え、1個のVLIWに置かれた複数のオペ
レーションを同時並列に実行する。このようなVLIW
は、コンパイラよってソースプログラムにおけるオペレ
ーションレベルでの並列性が検出されスケジューリング
された後に生成されたものである。ところが、特に機器
組み込み用途においては、プログラムのコードサイズが
問題となるために、256ビットの如く長いVLIW
や、無動作命令(以下、「NOP命令」という。)が頻
繁に挿入されたコード効率の悪いVLIWは好ましくな
い。
【0004】比較的短い語長の命令を実行する従来のV
LIWプロセッサとして、最大2個のオペレーションを
同時に指定することができる32ビットの命令を実行す
るVLIWプロセッサがある(例えば、特開平9−26
878に開示されたデータ処理装置)。図15(a)及
び図15(b)は、上記従来技術における命令フォーマ
ットを示し、それぞれ、同時に2個のオペレーションを
指定する命令フォーマット、1個のオペレーションだけ
を指定する命令フォーマットを示す。この従来技術は、
2ビットのフォーマットフィールド410の値によって
その命令に置かれたオペレーションの数や実行順序を制
御することで、コード効率を向上せんとするものであ
る。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来技術では、32ビット長の1個の命令で同時に指定で
きるオペレーションの数は最高で2個であり、その並列
性は充分とは言えない。また、ある長さの語長を超える
定数を用いた演算を行わせる場合には、命令のコード効
率が低下してしまうという問題がある。例えば、32ビ
ットの定数をレジスタにセットするためにその定数を2
つに分割し、定数の上位16ビットをセットした後に下
位16ビットをセットした場合には、それらオペレーシ
ョンの指定のためだけに2個の32ビット長命令が消費
されてしまう。
【0006】そこで、本発明はかかる問題点に鑑みてな
されたものであり、比較的短い語長の命令であって、か
つ、同時に多くのオペレーションを指定することができ
るコード効率のよい構造を有する命令、例えば、32ビ
ット長の命令であれば3個以上のオペレーションを指定
することができるような並列性の高い命令を実行するV
LIWプロセッサを提供することを第1の目的とする。
【0007】また、本発明の第2の目的は、比較的短い
語長の命令であって、かつ、比較的長い語長の定数を扱
う場合においてもコード効率が低下しにくい構造を有す
る命令を実行するVLIWプロセッサを提供することで
ある。
【0008】
【課題を解決するための手段】上記第1の目的を達成す
るために本発明は、複数のオペレーションフィールドか
らなる命令を実行するVLIWプロセッサにおいて、前
記オペレーションフィールドの大きさが不均一であり、
かつ前記命令の命令語長は前記命令の持つオペレーショ
ンフィールドの数で割り切れないものであることを特徴
とする。
【0009】これによって、命令中の全てのオペレーシ
ョンフィールドが同じ語長でなければならないという制
限から解放され、コード効率のよい命令フォーマットを
定義することが可能となるので、比較的短い語長の命令
であって、かつ、同時に多くのオペレーションを指定す
ることができるコード効率のよい構造を有する命令を実
行するVLIWプロセッサが実現される。
【0010】また、上記第2の目的を達成するために本
発明は、2個以上のオペレーションフィールドを含む命
令を解読し実行するVLIWプロセッサであって、第1
の前記オペレーションフィールドにはオペレーションの
種類を指定する1個のオペコードのみ又は定数のみが置
かれ、第2の前記オペレーションフィールドには1個の
オペコードとオペレーションの対象となるデータを指定
する1個以上のオペランドとの組又は定数のみが置か
れ、前記第1のオペレーションフィールドにオペコード
が置かれた場合に前記オペコードを解読する第1の解読
手段と、前記第1の解読手段による解読結果に基づいて
前記オペコードによって指定されたオペレーションを実
行する第1の実行手段と、前記第2のオペレーションフ
ィールドにオペコードが置かれた場合に前記オペコード
を解読する第2の解読手段と、前記第2の解読手段によ
る解読結果に基づいて前記オペランドによって指定され
たデータに対して前記オペコードによって指定されたオ
ペレーションを実行する第2の実行手段とを備えること
を特徴とする。
【0011】これによって、命令中のあるオペレーショ
ンフィールドに無駄なコードを置く必要が生じた場合で
あっても、他のオペレーションで使用される定数で埋め
ておくことが可能となるので、比較的短い語長の命令で
あってもコード効率が低下しにくい構造を有する命令を
実行するVLIWプロセッサが実現される。
【0012】
【発明の実施の形態】以下、本発明に係るプロセッサの
実施の形態について、図面を用いて詳細に説明する。な
お、本明細書では、「命令」とは本プロセッサが同時並
列に解読し実行するコード全体を意味し、「オペレーシ
ョン」とは本プロセッサが並列に実行できる数値演算、
論理演算、転送、分岐等の処理単位又はその処理単位を
指定するためのコードを意味する。 (命令フォーマット)まず、本プロセッサが解読実行す
る命令の構造について説明する。
【0013】本プロセッサは、VLIWプロセッサであ
り、32ビット固定長の命令を解読実行する。図1
(a)は、本プロセッサが実行する命令50のフィール
ド構成を示す図である。図1(b)〜図1(d)は16
種類の命令フォーマットを示す図であり、そのうち、図
1(b)は3オペレーション、図1(c)は2オペレー
ション、図1(d)は1オペレーションを同時に指定で
きる命令フォーマットである。
【0014】この命令50は、32ビット固定長であ
り、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と呼ぶ。
【0015】図1(b)〜図1(d)において、“co
nst”は定数であり、これが用いられるオペレーショ
ンの種類によっては即値、絶対番地、ディスプレースメ
ント等の数値定数や文字定数を意味する。“op”はオ
ペレーションの種類を指定するオペコードを、“Rs”
はソースオペランドとなるレジスタを、“Rd”はデス
ティネーションオペランドとなるレジスタを、“cc”
は本プロセッサが備える専用の32ビットレジスタ(図
3に示される定数レジスタ36)の格納値を分岐先の絶
対番地又は相対番地(ディスプレースメント)とする分
岐オペレーションを指定するオペコードを意味する。
【0016】また、これらコードの直後に添付された数
値は、第1演算フィールド59及び第2演算フィールド
60のいずれのオペレーションのために用いられるもの
であるかを示す。例えば、フォーマットコードが“6”
である命令フォーマットの場合であれば、P1.0フィ
ールド52に置かれた4ビットの定数“const1”
とP2.1フィールド54に置かれた4ビットの定数
“const1”とは結合され、8ビットの定数として
第1演算フィールド59のオペコード“op1”に対応
するソースオペランドになることを意味する。
【0017】また、数値を伴わない定数“const”
は、本プロセッサが備える専用の32ビットレジスタ
(図3に示される定数レジスタ36)に格納される定数
を示す。例えば、フォーマットコードが“0”である命
令フォーマットにおけるP1.0フィールド52に置か
れた4ビットの定数“const”は、暗黙的に指定さ
れた定数レジスタ36に格納される定数である。
【0018】図2は、図1で用いられている3種類のオ
ペコード“cc”、“op1”及び“op2”それぞれ
によって指定される具体的なオペレーションを説明する
図である。4ビットのオペコード“cc”は、16種類
の分岐オペレーションの中の一つを指定する。1つの分
岐オペレーションは、分岐条件と分岐形式によって特定
される。分岐条件には、等しい(“eq”)、等しくな
い(“neq”)、より大きい(“gt”)等がある。
分岐形式には、上記定数レジスタ36の格納値を分岐先
の絶対番地として分岐する形式(ニーモニック表示にお
いて“i”が添付されていないもの)と相対番地として
分岐する形式(ニーモニック表示において“i”が添付
されているもの)とがある。例えば、オペコード“e
q”は、直前の比較結果が等しい場合に絶対番地指定に
よる分岐を行なうオペレーションを意味し、オペコード
“eqi”は、直前の比較結果が等しい場合に相対番地
指定による分岐を行なうオペレーションを意味する。
【0019】4ビットのオペコード“op1”は、“a
dd”(加算)、“sub”(減算)、“mul”(乗
算)、“and”(論理積)、“or”(論理和)等の
算術論理演算に属するオペレーションの一つを指定する
場合と、“mov”(ワード(32ビット)データの転
送)、“movh”(ハーフワードデータの転送)、
“movb”(バイトデータの転送)等のレジスタ・レ
ジスタ間転送に属するオペレーションの一つを指定する
場合とがある。
【0020】4ビットのオペコード“op2”は、上記
オペコード“op1”と同様の算術論理演算及びレジス
タ・レジスタ間転送に加えて、“ld”(メモリからレ
ジスタへの1ワードデータのロード)、“st”(レジ
スタからメモリへのワードデータのストア)等のレジス
タ・メモリ間転送に属するオペレーションの一つを指定
する場合がある。
【0021】次に、図1(a)に示された各フィールド
51、52、59、60の特徴を説明する。P0.0フ
ィールド51は、この命令50のフォーマットを特定す
る4ビットのフォーマットコードを置くためのフィール
ドであり、具体的には、図1(b)〜図1(d)に示さ
れた16種類の命令フォーマットの一つを特定する。
【0022】P1.0フィールド52は、定数又は分岐
用のオペコードを置くためのフィールドである。この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の場合)とがあ
る。
【0023】一方、このP1.0フィールド52に分岐
用のオペコード“cc”が置かれた場合(フォーマット
コード=2、3、Aの場合)には、定数レジスタ36に
格納された定数を分岐先の絶対番地として、又は、相対
番地(ディスプレースメント)として分岐することを意
味する。第1演算フィールド59は、本プロセッサと外
部(メモリ)とのデータの転送を伴わないオペレーショ
ン(算術論理演算、レジスタ間転送)を指定するための
オペコードとオペランド(ソース及びデスティネーショ
ン)との組又は定数が置かれる。
【0024】第2演算フィールド60は、上記第1演算
フィールド59の場合に加えて、本プロセッサと外部
(メモリ)とのデータの転送を伴うペレーション(レジ
スタ・メモリ間転送)を指定するためのオペコードとオ
ペランドとの組が置かれることもある。なお、以上のよ
うなオペレーションの種類の各フィールドへの割当て
は、ノイマン型の本プロセッサにおいては2つ以上の分
岐オペレーションを同時に実行する必要がないこと、本
プロセッサと外部(メモリ)とのオペランドの入出力ポ
ート(図3におけるオペランドアクセス部40)を1つ
に限定していること等に基づく。
【0025】ここで、図1(b)〜図1(d)に示され
た命令フォーマットには以下の特徴がある。第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に格納される。
【0026】第2に、本プロセッサでは、1個の命令に
最大3つのオペレーションを指定することができるが、
その場合には、図1(b)に示された3オペレーション
用の命令フォーマットから判るように、それら3つのオ
ペレーションの種類は次のいずれかの組み合わせにな
る。 (1)4ビットの定数を定数レジスタ36にセットする
オペレーションと2個の汎用オペレーション(フォーマ
ットコードが“0”、“1”の場合) (2)定数レジスタ36にセットされた値を絶対番地又
は相対番地として分岐するオペレーションと2個の汎用
オペレーション(フォーマットコードが“2”、“3”
の場合) このように、本プロセッサの命令は、わずか32ビット
長でありながら最大3つのオペレーションを同時に指定
することができるコード効率の高いフィールド構成を有
している。 (プロセッサのハードウェア構成)次に、本プロセッサ
のハードウェア構成を説明する。
【0027】図3は、本発明に係るプロセッサのハード
ウェア構成を示すブロック図である。本プロセッサは、
上述したように、最大3つのオペレーションを並列実行
するVLIWプロセッサであり、大きく分けて、命令レ
ジスタ10、解読部20及び実行部30から構成され
る。
【0028】命令レジスタ10は、命令フェッチ部39
から送られてきた1個の命令を保持する32ビットのレ
ジスタである。解読部20は、命令レジスタ10に保持
された命令を解読し、その解読結果に応じた制御線を実
行部30に出力するものであり、大きく分けて、フォー
マットデコーダ21と命令デコーダ22とからなる。
【0029】命令デコーダ22はさらに、P1.0フィ
ールド12に保持されたオペコード“cc”を解読しそ
の結果に基づいてPC部33を制御する分岐デコーダ2
3と、P2.0フィールド13に保持されたオペコード
を解読しその結果に基づいて第1演算部37を制御する
第1演算デコーダ24と、P3.0フィールド16に保
持されたオペコードを解読しその結果に基づいて第2演
算部38及びオペランドアクセス部40を制御する第2
演算デコーダ25とからなる。
【0030】フォーマットデコーダ21は、P0.0フ
ィールド11に保持された4ビットのフォーマットコー
ドをデコードすることによって命令レジスタ10に保持
された命令のフォーマットが図1(b)〜図1(d)に
示された16種類のうちのいずれであるかを特定し、そ
の結果に応じて分岐デコーダ23、第1演算デコーダ2
4及び第2演算デコーダ25による解読動作を許可又は
禁止したり、実行部30の定数レジスタ制御部32を動
作させたりする。
【0031】なお、上記デコーダ21、23〜25は、
基本的には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については、別の図面においてさらに詳細な構
成を示している。
【0032】実行制御部31は、解読部20での実行結
果に基づいて実行部30の各構成要素33〜40を制御
する制御回路や配線の総称であり、通常のプロセッサが
備える構成要素(タイミング制御、動作許可禁止制御、
ステータス管理、割り込み制御等の回路)の他に本プロ
セッサに特有の定数レジスタ制御部32を有する。定数
レジスタ制御部32は、フォーマットデコーダ21から
の指示に基づいて命令レジスタ10に保持された4ビッ
ト又は16ビットの定数(const)を定数レジスタ
36に格納する制御を行なう。
【0033】PC(プログラムカウンタ)部33は、分
岐デコーダ23による制御の下で、次に解読実行すべき
命令が置かれている図示されていない外部メモリ上のア
ドレスを命令フェッチ部39に出力する。命令フェッチ
部39は、32ビットのIA(インストラクションアド
レス)バス及び32ビットのID(インストラクション
データ)バスを通じて図示されていない外部メモリから
命令ブロックをフェッチし、内部の命令キャッシュに保
持すると共に、PC部33から出力されたアドレスに相
当する命令を命令レジスタ10に供給する。
【0034】レジスタ群34は、15個の32ビット汎
用レジスタ35と1個の32ビット定数レジスタ36か
ら構成される。これら16個のレジスタ35、36に格
納された値は、第1演算デコーダ24及び第2演算デコ
ーダ25での解読結果に基づいて、第1演算部37及び
第2演算部38に転送され、ここで演算が施され、又
は、ここを単に通過した後に、レジスタ群34又はオペ
ランドアクセス部40に送られる。なお、定数レジスタ
36に格納された値は、第1演算部37及び第2演算部
38での演算に用いられる他に、PC部33にも転送さ
れ、ここで分岐先となる有効アドレスを生成するために
用いられる。
【0035】第1演算部37は、2個の32ビットデー
タに対して算術論理演算を行なうALUと乗算を行う乗
算器とを内部に有し、第1演算デコーダ24による制御
の下で2種類のオペレーション(算術論理演算とレジス
タ間転送)を実行する。第2演算部38も、第1演算部
37と同様に、2個の32ビットデータに対して算術論
理演算を行なうALUと乗算を行う乗算器とを内部に有
し、第2演算デコーダ25による制御の下で2種類のオ
ペレーション(算術論理演算とレジスタ間転送)を実行
する。
【0036】オペランドアクセス部40は、第2演算デ
コーダによる制御の下でレジスタ群34と図示されてい
ない外部メモリとの間でオペランドの転送を行なう回路
であり、そのオペランドやオペランドアドレスを保持す
るバッファを内部に有する。具体的には、例えば、命令
レジスタ10のP3.1フィールド16にオペコード
“ld”が置かれていた場合には、外部メモリに置かれ
ていた1ワードのデータがオペランドアクセス部40を
経てレジスタ群34のいずれかのレジスタにロードさ
れ、また、オペコード“st”が置かれていた場合に
は、レジスタ群34のいずれかのレジスタの格納値が外
部メモリにストアされる。
【0037】上記PC部33、レジスタ群34、第1演
算部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及びその周辺回路について詳細に
説明する。
【0038】図4は、定数レジスタ36及びその周辺回
路の詳細な構成と接続関係を示すブロック図である。な
お、図中の固定値(“0”)27は、定数“0”を示す
4本の信号線の固定的な配線を意味する。定数レジスタ
制御部32は、5個の3入力セレクタ32a〜32eと
3個の4入力セレクタ32f〜32hとからなり、定数
レジスタ36は、8個の4ビット幅レジスタ36a〜3
6hからなる。なお、各入出力データは並列4ビットで
ある。
【0039】定数レジスタ制御部32は、フォーマット
デコーダ21及び命令デコーダ22からの制御信号に従
って上記8個の入力セレクタ32a〜32hを制御する
ことで、以下に示す4通りの格納方法のいずれかの方法
により、命令レジスタ10に保持された定数又はゼロを
定数レジスタ36に格納させる。図5(a)〜図5
(d)は、その4通りの格納方法を説明する図である。
【0040】図5(a)は、フォーマットデコーダ21
によってP0.0フィールド11に保持された値が
“0”又は“1”であると解読された場合の格納方法を
示す。これは、P1.0フィールド12に置かれた4ビ
ットの定数のみを定数レジスタ36に格納する場合に相
当する。具体的には、定数レジスタ36に保持されたデ
ータを4ビット単位で上位にシフトさせると同時に、命
令レジスタ10のP1.0フィールド12に保持された
4ビットの定数を定数レジスタ36の最下位の4ビット
レジスタ36hに格納する。
【0041】図5(b)は、フォーマットデコーダ21
によって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に格納す
る。
【0042】図5(c)は、フォーマットデコーダ21
によって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に格納する。
【0043】図5(d)は、フォーマットデコーダ21
によって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をクリアする)場合に相当する。
【0044】具体的には、定数レジスタ36の格納値が
PC部33、第1演算部37及び第2演算部38のいず
れかに読み出された直後に、32ビットの定数“0”を
定数レジスタ36に格納する。なお、定数レジスタ36
の使用後にクリアしておくのは、定数レジスタ36には
常にゼロ拡張された値が格納されていることを保証する
ためである。ここで、ゼロ拡張とは、ある数値の有効桁
数が一定の桁数に満たない場合に、その有効桁より上位
の桁全てをゼロで埋める処理をいう。
【0045】以上のように、命令レジスタ10のP0.
0フィールド11の値が“0”、“1”、“4”、
“5”の場合には、定数レジスタ36に既に格納された
定数をシフトさせながら新たな定数が定数レジスタ36
に格納される。また、定数レジスタ36は、その格納値
が一旦読み出されて使用されると、その内容は消去され
る。このようにして、定数レジスタ36は、その内容が
読み出されるまで、次々に格納される定数を蓄積してい
くことができる。 (PC部33の詳細な構成)次に、PC部33の詳細な
構成を説明する。
【0046】図6は、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
が解読した場合が該当する。
【0047】以上のように、このPC部33は、専用の
加算器33cを備え、定数レジスタ36に保持された値
を直接用いる構成となっているので、第1演算部37や
第2演算部38での演算とは独立並行して、定数レジス
タ36の格納値を絶対番地又は相対番地として分岐する
実行制御を行なうことができる。 (プロセッサの動作)次に、具体的な命令を解読実行し
た場合の本プロセッサの動作について説明する。
【0048】図7は、32ビットの定数を扱う処理の一
例を示すフローチャートである。本図には、レジスタR
0とR1との格納値の差を求め(ステップS80)、そ
の結果にレジスタR2の格納値を掛け(ステップS8
1)、さらにその結果に32ビットの定数“0x876
54321”(16進数の“87654321”)を加
え(ステップS82、S83)、最後にレジスタR3を
クリアしておく(ステップS85)という処理が示され
ている。
【0049】図8は、図7に示された処理内容を本プロ
セッサに行なわせるプログラムの例を示す図である。こ
のプログラムは、3個の命令71〜73から構成されて
いる。1行が1個の命令に相当し、各命令の内容は各フ
ィールドに置かれたニーモニックで表現されている。な
お、定数は全て16進数で表現されている。また、“f
mtn(n=0〜F)”はフォーマットコード“n”を
示し、“Rn(n=0〜15)”はレジスタ群34の中
の1つのレジスタを示す。なお、“R15”は定数レジ
スタ36を意味する。
【0050】図9は、図8に示されたプログラムを実行
した場合の本プロセッサの動作を示すタイミングチャー
トである。本図には、クロックサイクル、汎用レジスタ
R0〜R3及び定数レジスタR15の内容、4つのバス
L1、R1,L2,R2を流れるデータが示されてい
る。上記図8及び図9を用いて、各命令71〜73ごと
の本プロセッサの動作を説明する。 (命令71)命令71が命令レジスタ10にロードされ
ると、本プロセッサは図9のクロックサイクルt0〜t
1に示された動作をする。
【0051】フォーマットデコーダ21は、命令レジス
タ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に示された動作をする。
【0052】フォーマットデコーダ21は、上記命令7
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に示された動作をする。
【0053】フォーマットデコーダ21は、命令レジス
タ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”に変化する。
【0054】以上のようにして、本プロセッサにおい
て、32ビットの定数“0x87654321”は、2
個の命令71、72に跨って分割配置され、順次定数レ
ジスタ36にシフトされながら格納された後に、第3番
目の命令73によって利用された。このようにして、図
7のフローチャートに示された処理が3個の命令71〜
73によって実行される。次に、16ビットの定数を扱
う別のプログラムを用いて本プロセッサの動作を説明す
る。
【0055】図10は、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の場合
と同様の動作をする。
【0056】以上のようにして、本プロセッサにおいて
は、16ビットの定数“0x8765”は、4個の命令
74〜77に跨って分割配置され、順次定数レジスタ3
6にシフトされながら格納された後に、第5番目の命令
78によって利用された。 (通常のプロセッサとの比較)次に、上記図8及び図1
0に示されたプログラムと同一内容の処理を通常のプロ
セッサに行なわせた場合について説明し、本発明に係る
プロセッサと比較する。なお、ここでいう通常のプロセ
ッサとは、本発明に係るプロセッサの定数レジスタ36
や定数レジスタ制御部32の如く、分割された定数を蓄
積して格納する手段のみを有しないプロセッサをいい、
32ビット固定長の命令を実行するものとする。
【0057】図11(a)は、この通常のプロセッサが
実行する命令のフィールド定義を示し、図11(b)
は、その命令のフォーマットを示す。つまり、通常のプ
ロセッサは、3種類の2オペレーション命令101〜1
03と1種類の1オペレーション命令104を実行する
ものとする。図12は、図8に示されたプログラムと同
一内容の処理、即ち、図7のフローチャートに示された
処理を通常のプロセッサに行なわせるプログラムの例で
ある。
【0058】図12と図8とを比較して判るように、通
常のプロセッサ用のプログラムは、本発明に係るプロセ
ッサ用のものよりも2個の命令だけ多くなっている。な
お、命令105、106にnopコードが含まれるの
は、命令106は命令105での演算結果を用いるの
で、これらの命令を並列に実行させることができないか
らである。また、1個の定数“0x87654321”
を上位16ビットと下位16ビットの2つに分割して定
数レジスタRiにセットしているのは(命令107、1
08)、32ビットの1個の命令の中に、セット命令の
オペコードと32ビットの定数の両方を同時に配置する
ことは不可能だからである。
【0059】同様に、図13は、図10に示されたプロ
グラムと同一内容の処理を通常のプロセッサに行なわせ
るプログラムの例である。図13と図10とを比較して
判るように、通常のプロセッサ用のプログラムは、本発
明に係るプロセッサ用のものよりも1個の命令だけ多く
なっている。以上のように、本発明に係るプロセッサが
実行する命令は、32ビットという比較的短い語長であ
りながら最大3つのオペレーションを同時に指定するこ
とができるコード効率の高いフィールド構成を有してい
る。
【0060】そして、本発明に係るプロセッサによれ
ば、16ビットや32ビットの定数が複数の命令に跨っ
て分割配置されていても、それらは定数レジスタ36に
蓄積して格納されることで元の定数に復元され、分岐や
算術演算等のオペレーションに使用される。つまり、命
令中に生じた小さな領域であっても、定数を分割して埋
めておくことができるので、通常のプロセッサに実行さ
せる場合よりもプログラムのコードサイズは縮小され
る。以上、本発明に係るプロセッサについて、実施形態
に基づいて説明したが、本発明はこれら実施形態に限ら
れないことは勿論である。即ち、 (1)上記実施の形態では、命令50は、32ビット長
であり、8個の4ビット長のフィールドからなり、最大
3個のオペレーションを指定することができる構造を有
したが、本発明は、これら数値に限定されるものではな
い。
【0061】例えば、上記フィールド構成にさらに、1
個の4ビット長のオペコードと1個の4ビット長のオペ
ランドとの組からなる8ビット長のフィールドを加えた
合計40ビット長の命令とすることもできる。これによ
って、40ビットという比較的短い語長の命令でありな
がら最大4つのオペレーションを同時に実行させること
ができるコード効率の高い命令が定義される。 (2)また、32ビット固定長命令によって3個のオペ
レーションを同時に指定することができる命令の構造と
して、図1(a)に示された命令構造の他に、図14
(a)〜図14(d)に示された命令構造とすることも
できる。これら図中において、縦線の最小間隔は1ビッ
ト長を示し、“fmt”はフォーマットフィールドを示
す。
【0062】図14(a)に示された構造の命令であれ
ば、上記実施形態の命令に比較し、より多くの命令フォ
ーマットを定義することができる点、及び、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の周辺回路の接続関係
を変更すればよい。
【0063】
【発明の効果】以上の説明から明らかなように、本発明
は、複数のオペレーションフィールドからなる命令を実
行するVLIWプロセッサにおいて、前記オペレーショ
ンフィールドの大きさが不均一であり、かつ前記命令の
命令語長は前記命令の持つオペレーションフィールドの
数で割り切れないものであることを特徴とする。
【0064】これによって、命令中の全てのオペレーシ
ョンフィールドが同じ語長でなければならないという制
限から解放され、コード効率のよい命令フォーマットを
定義することが可能となるので、比較的短い語長の命令
であって、かつ、同時に多くのオペレーションを指定す
ることができるコード効率のよい構造を有する命令を実
行するVLIWプロセッサが実現される。
【0065】ここで、複数のオペレーションフィールド
からなる命令を実行するVLIWプロセッサにおいて、
前記オペレーションフィールドの大きさが不均一であ
り、かつ前記命令は3つのオペレーションフィールドを
32ビットの命令語長中に持つものであるとすることも
できる。これによって、32ビット長で3個のオペレー
ションを指定することができる並列性の高い命令を実行
するVLIWプロセッサが実現される。
【0066】また、複数のオペレーションフィールドか
らなる命令を実行するVLIWプロセッサにおいて、前
記オペレーションフィールドのうち少なくとも1つはオ
ペランドの数が異なるものであるとすることもできる。
これによって、命令中の全てのオペレーションフィール
ドが同じ個数のオペランドを有さなければならないとい
う制限から解放されるので、コード効率のよい命令フォ
ーマットを定義することが可能となる。
【0067】また、複数のオペレーションフィールドか
らなる命令を実行するVLIWプロセッサにおいて、前
記オペレーションフィールドのうち1つはオペコードの
みからなるとすることもできる。これによって、命令中
の全てのオペレーションフィールドにオペコードとオペ
ランドとの組が置かれる場合に比べ、命令の語長は短縮
されるので、コード効率のよい構造を有する命令を実行
するVLIWプロセッサが実現される。
【0068】また、2個以上のオペレーションフィール
ドを含む命令を解読し実行するVLIWプロセッサであ
って、第1の前記オペレーションフィールドにはオペレ
ーションの種類を指定する1個のオペコードのみが置か
れ、第2の前記オペレーションフィールドには1個のオ
ペコードとオペレーションの対象となるデータを指定す
る1個以上のオペランドとの組が置かれ、前記第1のオ
ペレーションフィールドに置かれたオペコードを解読す
る第1の解読手段と、前記第1の解読手段による解読結
果に基づいて前記オペコードによって指定されたオペレ
ーションを実行する第1の実行手段と、前記第2のオペ
レーションフィールドに置かれたオペコードを解読する
第2の解読手段と、前記第2の解読手段による解読結果
に基づいて前記オペランドによって指定されたデータに
対して前記オペコードによって指定されたオペレーショ
ンを実行する第2の実行手段とを備えるとすることもで
きる。
【0069】これによって、命令中の少なくとも1つの
オペレーションには明示的なオペランドを伴わないオペ
コードのみを置くことができるので、命令語長は短縮さ
れる。また、前記第1のオペレーションフィールドに置
かれたオペコードの桁数は前記第2のオペレーションフ
ィールドに置かれたオペコードの桁数と等しいとするこ
ともできる。
【0070】これによって、命令中に置かれる全てのオ
ペコードの桁数を共通にすることができるので、デコー
ダ回路等が簡単化される。また、前記命令に含まれるオ
ペレーションフィールドは3個であり、第3の前記オペ
レーションフィールドは前記第2のオペレーションフィ
ールドと同じ桁数であって1個のオペコードと1個以上
のオペランドとの組が置かれ、前記VLIWプロセッサ
はさらに、前記第3のオペレーションフィールドにオペ
コードが置かれた場合に前記オペコードを解読する第3
の解読手段と、前記第3の解読手段による解読結果に基
づいて前記オペランドによって指定されたデータに対し
て前記オペコードによって指定されたオペレーションを
実行する第3の実行手段とを備えるとすることもでき
る。
【0071】これによって、同時に3個のオペレーショ
ンを実行するVLIWプロセッサが実現される。また、
前記第1の実行手段は、実行すべき命令の流れを制御す
るとすることもできる。これによって、一般的に多くの
桁数を必要としない分岐オペレーションが桁数の小さい
オペレーションフィールドに割り当てられるので、コー
ド効率のよい命令セットが定義される。
【0072】また、前記第2の実行手段は、前記第2の
オペランドフィールドに置かれたオペランドによって指
定されたデータの転送を制御し、前記第3の実行手段
は、前記第3のオペランドフィールドに置かれたオペラ
ンドによって指定されたデータの算術論理演算を実行す
るとすることもできる。これによって、外部メモリとの
データ転送は命令中の1個のオペレーションだけによっ
て指定されることになるので、VLIWプロセッサが備
えるべきオペランドアクセス回路は簡単化される。
【0073】また、2個以上のオペレーションフィール
ドを含む命令を解読し実行するVLIWプロセッサであ
って、第1の前記オペレーションフィールドにはオペレ
ーションの種類を指定する1個のオペコードのみ又は定
数のみが置かれ、第2の前記オペレーションフィールド
には1個のオペコードとオペレーションの対象となるデ
ータを指定する1個以上のオペランドとの組又は定数の
みが置かれ、前記第1のオペレーションフィールドにオ
ペコードが置かれた場合に前記オペコードを解読する第
1の解読手段と、前記第1の解読手段による解読結果に
基づいて前記オペコードによって指定されたオペレーシ
ョンを実行する第1の実行手段と、前記第2のオペレー
ションフィールドにオペコードが置かれた場合に前記オ
ペコードを解読する第2の解読手段と、前記第2の解読
手段による解読結果に基づいて前記オペランドによって
指定されたデータに対して前記オペコードによって指定
されたオペレーションを実行する第2の実行手段とを備
えるとすることもできる。
【0074】これによって、命令中のあるオペレーショ
ンフィールドに無駄なコードを置く必要が生じた場合で
あっても、他のオペレーションで使用される定数で埋め
ておくことが可能となるので、比較的短い語長の命令で
あってもコード効率が低下しにくい構造を有する命令を
実行するVLIWプロセッサが実現される。また、前記
命令はさらに、前記第1及び第2のオペレーションフィ
ールドそれぞれに定数のみが置かれているか否かを指定
するフォーマットコードが置かれたフォーマットフィー
ルドを含み、前記VLIWプロセッサはさらに、前記フ
ォーマットコードを解読するフォーマット解読手段と、
前記フォーマット解読手段により前記第1、第2及び第
3の少なくとも1つのオペレーションフィールドに定数
のみが置かれていると解読された場合に、その定数を取
り出して記憶する定数記憶手段とを備えるとすることも
できる。
【0075】これによって、オペレーションフィールド
に埋められた定数は定数記憶手段に格納され、他の命令
中に置かれたオペレーションによってその定数を利用す
ることが可能となるので、比較的短い語長の命令であっ
て、かつ、比較的長い語長の定数を扱う場合においても
コード効率の低下が回避される。また、前記フォーマッ
トフィールドの桁数、前記第1のオペレーションフィー
ルドの桁数、前記第2及び第3のオペレーションフィー
ルドに置かれたオペコードの桁数、前記第2及び第3の
オペレーションフィールドに置かれた各オペランドの桁
数は、いすれもnビットであるとすることもできる。
【0076】これによって、1個の命令を構成する全て
のフィールドの桁数が同じになるので、VLIWプロセ
ッサの内部回路が簡単化される。以上のように、本発明
によって、比較的短い語長の命令であって、かつ、同時
に多くのオペレーションを指定することができるコード
効率のよい構造を有する命令を実行するVLIWプロセ
ッサが実現され、特にマルチメディアデータを処理する
組み込み用途のプロセッサとしてその実用的価値は大き
い。
【図面の簡単な説明】
【図1】図1(a)は、本発明に係るプロセッサが実行
する命令のフィールド構成を示す図である。図1(b)
〜図1(d)は、16種類の命令フォーマットを示す図
である。図1(b)は3オペレーション、図1(c)は
2オペレーション、図1(d)は1オペレーションを同
時に指定できる命令フォーマットである。
【図2】図1で用いられている3種類のオペコード“c
c”、“op1”及び“op2”それぞれによって指定
される具体的なオペレーションを説明する図である。
【図3】同プロセッサのハードウェア構成を示すブロッ
ク図である。
【図4】同プロセッサの定数レジスタ36及びその周辺
回路の詳細な構成を示すブロック図である。
【図5】図4に示された定数レジスタ制御部32による
定数の格納方法を示す図である。図5(a)はフォーマ
ットコードが“0”又は“1”である場合、図5(b)
はフォーマットデコードが“4”である場合、図5
(c)はフォーマットデコードが“5”である場合、図
5(d)はフォーマットコードが“2”、“3”及び
“A”のいずれかである場合又は定数レジスタ36の格
納値がオペランドとして指定されている場合の格納方法
を示す。
【図6】同プロセッサのPC部33の詳細な構成を示す
ブロック図である。
【図7】32ビットの定数を扱う処理の一例を示すフロ
ーチャートである。
【図8】図7に示された処理を同プロセッサに行なわせ
るプログラムの例を示す図である。
【図9】図9は、図8に示されたプログラムを実行した
場合の本プロセッサの動作を示すタイミングチャートで
ある。
【図10】16ビットの定数を扱う処理を同プロセッサ
に行なわせるプログラムの例を示す図である。
【図11】図11(a)は、通常のプロセッサが実行す
る命令のフィールド定義を示す図である。図11(b)
は、同命令フォーマットを示す図である。
【図12】図8に示されたプログラムと同一内容の処理
を上記通常のプロセッサに行なわせるプログラムの例を
示す図である。
【図13】図10に示されたプログラムと同一内容の処
理を上記通常のプロセッサに行なわせるプログラムの例
を示す図である。
【図14】図14(a)〜図14(d)は、本発明のV
LIWプロセッサにかかる命令構造の変形例を示す図で
ある。
【図15】図15(a)及び図15(b)は、従来技術
における命令フォーマットを示し、それぞれ、同時に2
個のオペレーションを指定する命令フォーマット、1個
のオペレーションだけを指定する命令フォーマットを示
す図である。
【符号の説明】
10 命令レジスタ 20 解読部 21 フォーマットデコーダ 22 命令デコーダ 23 分岐デコーダ 24 第1演算デコーダ 25 第2演算デコーダ 30 実行部 31 実行制御部 32 定数レジスタ制御部 32a〜32h セレクタ 33 PC部 33a 固定値“4” 33b、33e セレクタ 33c 加算器 33d PC 34 レジスタ群 35 汎用レジスタR0〜R14 36 定数レジスタR15 36a〜36h 4ビット幅レジスタ 37 第1演算部 38 第2演算部 39 命令フェッチ部 40 オペランドアクセス部 41 セレクタ 50 命令 51〜58 命令フィールド 59 第1演算フィールド 60 第2演算フィルド

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 複数のオペレーションフィールドからな
    る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドの大きさが不均一であ
    り、かつ前記命令の命令語長は前記命令の持つオペレー
    ションフィールドの数で割り切れないものであることを
    特徴とするVLIWプロセッサ。
  2. 【請求項2】 複数のオペレーションフィールドからな
    る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドの大きさが不均一であ
    り、かつ前記命令は3つのオペレーションフィールドを
    32ビットの命令語長中に持つものであることを特徴と
    するVLIWプロセッサ。
  3. 【請求項3】 複数のオペレーションフィールドからな
    る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち少なくとも1つは
    オペランドの数が異なるものであり、かつ前記命令の命
    令語長は前記命令の持つオペレーションフィールドの数
    で割り切れないものであることを特徴とするVLIWプ
    ロセッサ。
  4. 【請求項4】 複数のオペレーションフィールドからな
    る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち少なくとも1つは
    オペランドの数が異なるものであり、かつ前記命令は3
    つのオペレーションフィールドを32ビットの命令語長
    中に持つものであることを特徴とするVLIWプロセッ
    サ。
  5. 【請求項5】 複数のオペレーションフィールドからな
    る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち1つはオペコード
    のみからなり、かつ前記命令の命令語長は前記命令の持
    つオペレーションフィールドの数で割り切れないもので
    あることを特徴とするVLIWプロセッサ。
  6. 【請求項6】 複数のオペレーションフィールドからな
    る命令を実行するVLIWプロセッサにおいて、 前記オペレーションフィールドのうち1つはオペコード
    のみからなり、かつ前記命令は3つのオペレーションフ
    ィールドを32ビットの命令語長中に持つものであるこ
    とを特徴とするVLIWプロセッサ。
  7. 【請求項7】 2個以上のオペレーションフィールドを
    含む命令を解読し実行するVLIWプロセッサであっ
    て、 第1の前記オペレーションフィールドにはオペレーショ
    ンの種類を指定する1個のオペコードのみが置かれ、 第2の前記オペレーションフィールドには1個のオペコ
    ードとオペレーションの対象となるデータを指定する1
    個以上のオペランドとの組が置かれ、 前記第1のオペレーションフィールドに置かれたオペコ
    ードを解読する第1の解読手段と、 前記第1の解読手段による解読結果に基づいて前記オペ
    コードによって指定されたオペレーションを実行する第
    1の実行手段と、 前記第2のオペレーションフィールドに置かれたオペコ
    ードを解読する第2の解読手段と、 前記第2の解読手段による解読結果に基づいて前記オペ
    ランドによって指定されたデータに対して前記オペコー
    ドによって指定されたオペレーションを実行する第2の
    実行手段とを備えることを特徴とするVLIWプロセッ
    サ。
  8. 【請求項8】 前記第1のオペレーションフィールドの
    桁数は前記第2のオペレーションフィールドの桁数より
    も小さいことを特徴とする請求項7記載のVLIWプロ
    セッサ。
  9. 【請求項9】 前記第1のオペレーションフィールドに
    置かれたオペコードの桁数は前記第2のオペレーション
    フィールドに置かれたオペコードの桁数と等しいことを
    特徴とする請求項8記載のVLIWプロセッサ。
  10. 【請求項10】 前記命令に含まれるオペレーションフ
    ィールドは3個であり、 第3の前記オペレーションフィールドは前記第2のオペ
    レーションフィールドと同じ桁数であって1個のオペコ
    ードと1個以上のオペランドとの組が置かれ、 前記VLIWプロセッサはさらに、 前記第3のオペレーションフィールドにオペコードが置
    かれた場合に前記オペコードを解読する第3の解読手段
    と、 前記第3の解読手段による解読結果に基づいて前記オペ
    ランドによって指定されたデータに対して前記オペコー
    ドによって指定されたオペレーションを実行する第3の
    実行手段とを備えることを特徴とする請求項9記載のV
    LIWプロセッサ。
  11. 【請求項11】 前記第1の実行手段は、実行すべき命
    令の流れを制御することを特徴とする請求項10記載の
    VLIWプロセッサ。
  12. 【請求項12】 前記第2の実行手段は、前記第2のオ
    ペランドフィールドに置かれたオペランドによって指定
    されたデータの転送を制御し、 前記第3の実行手段は、前記第3のオペランドフィール
    ドに置かれたオペランドによって指定されたデータの算
    術論理演算を実行することを特徴とする請求項11記載
    のVLIWプロセッサ。
  13. 【請求項13】 2個以上のオペレーションフィールド
    を含む命令を解読し実行するVLIWプロセッサであっ
    て、 第1の前記オペレーションフィールドにはオペレーショ
    ンの種類を指定する1個のオペコードのみ又は定数のみ
    が置かれ、 第2の前記オペレーションフィールドには1個のオペコ
    ードとオペレーションの対象となるデータを指定する1
    個以上のオペランドとの組又は定数のみが置かれ、 前記第1のオペレーションフィールドにオペコードが置
    かれた場合に前記オペコードを解読する第1の解読手段
    と、 前記第1の解読手段による解読結果に基づいて前記オペ
    コードによって指定されたオペレーションを実行する第
    1の実行手段と、 前記第2のオペレーションフィールドにオペコードが置
    かれた場合に前記オペコードを解読する第2の解読手段
    と、 前記第2の解読手段による解読結果に基づいて前記オペ
    ランドによって指定されたデータに対して前記オペコー
    ドによって指定されたオペレーションを実行する第2の
    実行手段とを備えることを特徴とするVLIWプロセッ
    サ。
  14. 【請求項14】 前記命令はさらに、前記第1及び第2
    のオペレーションフィールドそれぞれに定数のみが置か
    れているか否かを指定するフォーマットコードが置かれ
    たフォーマットフィールドを含み、 前記VLIWプロセッサはさらに、 前記フォーマットコードを解読するフォーマット解読手
    段と、 前記フォーマット解読手段により前記第1、第2及び第
    3の少なくとも1つのオペレーションフィールドに定数
    のみが置かれていると解読された場合に、その定数を取
    り出して記憶する定数記憶手段とを備えることを特徴と
    する請求項13記載のVLIWプロセッサ。
  15. 【請求項15】 前記第1のオペレーションフィールド
    の桁数は前記第2のオペレーションフィールドの桁数よ
    りも小さいことを特徴とする請求項14記載のVLIW
    プロセッサ。
  16. 【請求項16】 前記第1のオペレーションフィールド
    に置かれたオペコードの桁数は前記第2のオペレーショ
    ンフィールドに置かれたオペコードの桁数と等しいこと
    を特徴とする請求項15記載のVLIWプロセッサ。
  17. 【請求項17】 前記命令に含まれるオペレーションフ
    ィールドは3個であり、 第3の前記オペレーションフィールドは前記第2のオペ
    レーションフィールドと同じ桁数であって1個のオペコ
    ードと1個以上のオペランドとの組が置かれ、 前記VLIWプロセッサはさらに、 前記第3のオペレーションフィールドにオペコードが置
    かれた場合に前記オペコードを解読する第3の解読手段
    と、 前記第3の解読手段による解読結果に基づいて前記オペ
    ランドによって指定されたデータに対して前記オペコー
    ドによって指定されたオペレーションを実行する第3の
    実行手段とを備えることを特徴とする請求項16記載の
    VLIWプロセッサ。
  18. 【請求項18】 前記第1の実行手段は、実行すべき命
    令の流れを制御することを特徴とする請求項17記載の
    VLIWプロセッサ。
  19. 【請求項19】 前記第2の実行手段は、前記第2のオ
    ペランドフィールドに置かれたオペランドによって指定
    されたデータの転送を制御し、 前記第3の実行手段は、前記第3のオペランドフィール
    ドに置かれたオペランドによって指定されたデータの算
    術論理演算を実行することを特徴とする請求項18記載
    のVLIWプロセッサ。
  20. 【請求項20】 前記フォーマットフィールドの桁数、
    前記第1のオペレーションフィールドの桁数、前記第2
    及び第3のオペレーションフィールドに置かれたオペコ
    ードの桁数、前記第2及び第3のオペレーションフィー
    ルドに置かれた各オペランドの桁数は、いすれもnビッ
    トであることことを特徴とする請求項19記載のVLI
    Wプロセッサ。
  21. 【請求項21】 前記命令は32ビット長であり、 前記nは4であることを特徴とする請求項20記載のV
    LIWプロセッサ。
  22. 【請求項22】 3個以上のオペレーションフィールド
    を含む命令を解読し実行するデータ処理装置であって、 第1の前記オペレーションフィールドには実行すべき命
    令の流れを制御するオペコードが置かれ、 第2の前記オペレーションフィールドにはデータの転送
    を制御するオペコードが置かれ、 第3の前記オペレーションフィールドにはデータの算術
    論理演算を制御するオペコードが置かれ、 前記第1のオペレーションフィールドに置かれたオペコ
    ードを解読する第1の解読手段と、 前記第1の解読手段による解読結果に基づいて前記オペ
    コードによって指定された実行すべき命令の流れの制御
    を実行する第1の実行手段と、 前記第2のオペレーションフィールドに置かれたオペコ
    ードを解読する第2の解読手段と、 前記第2の解読手段による解読結果に基づいて前記オペ
    コードによって指定されたデータの転送の制御を実行す
    る第2の実行手段と、 前記第3のオペレーションフィールドに置かれたオペコ
    ードを解読する第3の解読手段と、 前記第3の解読手段による解読結果に基づいて前記オペ
    コードによって指定されたデータの算術論理演算を実行
    する第3の実行手段とを備えることを特徴とするVLI
    Wプロセッサ。
  23. 【請求項23】 前記第1のオペレーションフィールド
    の桁数は前記第2及び第3のオペレーションフィールド
    のいずれの桁数よりも小さいことを特徴とする請求項2
    2記載のVLIWプロセッサ。
  24. 【請求項24】 前記第2のオペレーションフィールド
    の桁数は前記第3のオペレーションフィールドの桁数と
    等しいことを特徴とする請求項23記載のVLIWプロ
    セッサ。
  25. 【請求項25】 前記第1、第2及び第3のオペレーシ
    ョンフィールドに置かれた各オペコードの桁数は等しい
    ことを特徴とする請求項24記載のVLIWプロセッ
    サ。
  26. 【請求項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. 【請求項27】 前記命令が32ビット長であることを
    特徴とする請求項22又は26記載のVLIWプロセッ
    サ。
JP15904897A 1997-06-16 1997-06-16 Vliwプロセッサ Expired - Lifetime JP3790607B2 (ja)

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)

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

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

* Cited by examiner, † Cited by third party
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 株式会社ルネサステクノロジ データ処理装置

Cited By (10)

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

Publication number Publication date
EP2138932A1 (en) 2009-12-30
IL124904A0 (en) 1999-01-26
SG111061A1 (en) 2005-05-30
SG91248A1 (en) 2002-09-17
DE69838966D1 (de) 2008-02-21
US20120272044A1 (en) 2012-10-25
EP0886210A3 (en) 2001-09-05
CN1208197A (zh) 1999-02-17
US6834336B2 (en) 2004-12-21
US8019971B2 (en) 2011-09-13
MY135426A (en) 2008-04-30
US6397319B1 (en) 2002-05-28
CN100339824C (zh) 2007-09-26
US20020144084A1 (en) 2002-10-03
EP0886210A2 (en) 1998-12-23
EP2138932B1 (en) 2012-02-29
SG111062A1 (en) 2005-05-30
US20090193226A1 (en) 2009-07-30
JP3790607B2 (ja) 2006-06-28
US6085306A (en) 2000-07-04
MY116751A (en) 2004-03-31
DE69838966T2 (de) 2008-12-24
IL124904A (en) 2002-07-25
CN1178145C (zh) 2004-12-01
EP2138933A1 (en) 2009-12-30
TW490636B (en) 2002-06-11
US7533243B2 (en) 2009-05-12
EP1734440B1 (en) 2014-02-12
US20100169614A1 (en) 2010-07-01
EP1734440A2 (en) 2006-12-20
EP0886210B1 (en) 2008-01-09
EP1734440A3 (en) 2007-01-17
KR19990007023A (ko) 1999-01-25
CN1523495A (zh) 2004-08-25
KR100534967B1 (ko) 2006-03-23
US8250340B2 (en) 2012-08-21
US20020129223A1 (en) 2002-09-12

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