JP3623840B2 - データ処理装置及びマイクロプロセッサ - Google Patents

データ処理装置及びマイクロプロセッサ Download PDF

Info

Publication number
JP3623840B2
JP3623840B2 JP01501696A JP1501696A JP3623840B2 JP 3623840 B2 JP3623840 B2 JP 3623840B2 JP 01501696 A JP01501696 A JP 01501696A JP 1501696 A JP1501696 A JP 1501696A JP 3623840 B2 JP3623840 B2 JP 3623840B2
Authority
JP
Japan
Prior art keywords
instruction
vliw
instructions
risc
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.)
Expired - Fee Related
Application number
JP01501696A
Other languages
English (en)
Other versions
JPH09212358A (ja
Inventor
順一 西本
英雄 前島
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP01501696A priority Critical patent/JP3623840B2/ja
Priority to TW086100225A priority patent/TW334544B/zh
Priority to KR1019970001570A priority patent/KR100535852B1/ko
Priority to US08/791,811 priority patent/US6023757A/en
Publication of JPH09212358A publication Critical patent/JPH09212358A/ja
Priority to US09/382,598 priority patent/US6496919B1/en
Priority to US10/281,148 priority patent/US6760832B2/en
Application granted granted Critical
Publication of JP3623840B2 publication Critical patent/JP3623840B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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, 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
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロプロセッサやマイクロコンピュータ等のデータ処理装置に係わり、特にソフトウエアの互換を維持して高速性能を達成するデータ処理装置に適用して有効な技術に関する。
【0002】
【従来の技術】
マイクロプロセッサのアーキテクチャにはさまざまなものが存在する。例えばCISC(Complexed Instruction Set Computer)型マイクロプロセッサ、 RISC(Rediced Instruction Set Computer)型マイクロプロセッサ、V LIW(Very Long Instruction Word)(又はLIW(Long Instruction Word)型マイクロプロセッサなどが挙げられる。
【0003】
CISC型マイクロプロセッサは、例えば8ビット或いは16ビットを最小命令長単位とし、最小命令長単位の整数倍長の可変長の命令フォーマットで命令体系(命令セット)を構成している。最大命令長は48ビット長、64ビット長、80ビット長等である。命令セットを構成する命令数が多く、1命令が複数の処理を行い、また命令語長が可変である、マイクロプログラム制御等のため、ハードウエア量が多く高速性能を追及するには難点のあるアーキテクチャであるとされていた。CISC型マイクロプロセッサの例としては、モトローラ社の680X0,インテル社の80X86等がある。
【0004】
高速性能を追及する一つの解として、RISC型マイクロプロセッサが出てきた。RISC型マイクロプロセッサは、16ビット長、32ビット長或いは64ビット長等の固定長の命令フォーマットで、1命令は単純な処理を行い、比較的少ない命令数で命令体系を構成している。命令が単純であるため、マイクロプロセッサの制御部のハードウエア量もCISC型のマイクロプロセッサと比較して少なく、またパイプライン処理にも適しており、高速性能が比較的出しやすいアーキテクチャである。なお、16ビット長命令と32ビット長命令が混在した命令フォーマットで命令体系を構成したものもある。RISCプロセッサの例としては、SPARC、MIPS社のR3000等がある。
【0005】
最近、高速化のため、動作周波数を向上させる方法以外に同時に動作させる演算ユニットの数を増やす方法が取られてきている。この複数の演算ユニットを同時に実行する方式は、スーパスカラ方式と呼ばれている。しかし、スーパスカラ方式で、複数の命令が同時に実行可能かどうかを調べる、すなわち命令依存性を調べる機能が必要となり回路規模が増大する傾向にある。
【0006】
これに対して固定長ではあるが長い命令長の命令フォーマットで命令体系を構成するプロセッサとして、VLIW型プロセッサが存在する。VLIWプロセッサでは128ビット以上の長い命令を使って複数の演算器が同時に動作する。 VLIW型プロセッサではコンパイル時にあらかじめ命令の依存性をチェックし同時に実行出来る命令をまとめて1命令とする。VLIW型プロセッサでは実行時に改めて命令の依存性をチェックする必要がないため、RISC型マイクロプロセッサのスーパースカラ方式に比べて回路規模は少なくなる。 なお、VLIW型プロセッサの例としては、マルチフロー・コンピュータ社のTrace ce/300等がある。
【0007】
一方、RISC型のアーキテクチャの採用等により動作周波数の向上や同時に実行する命令数の増加で、マイクロプロセッサの性能が向上してきた。そのため、従来専用ハードウエアや専用コントローラを使用して行っていた、動画像の圧縮/伸長(MPEGデコーダ/エンコーダ)や三次元グラフィック処理をソフトウエアで行うことが考えらている。
【0008】
MPEGデコーダ/エンコーダや三次元グラフィック処理等の同一処理の繰り返しで多量のデータを扱ういわゆるマルチメデイア用途の処理にはVLIW型マイクロプロセッサが適しているとされてきている。
【0009】
【発明が解決しようとする課題】
一方、従来のマイクロプロセッサ或いはCPU(中央処理装置)はCISC型又はRISC型で、それぞれのソフトウエア資産の蓄積がある。CISC型、RISC型、VLIW型のマイクロプロセッサは、それぞれ命令セット、命令フォーマット、アドレッシングモード、プログラミングモデル等は異なり、ソフトウエアの互換性はない。
マイクロプロセッサは、同一アーキテクチャ(命令体系を含む。)では性能向上に限界が出てくる。そこで、アーキテクチャ変更を要求されるが、これまで築き上げてきたソフトウエア資産の継承が問題となる。
【0010】
本発明の目的は、従来のソフトウエアと互換性を維持しながら、新しいアーキテクチャ(命令体系)のソフトウエアを実行する高性能なプロセッサを実現することである。
【0011】
本発明の別の目的は、プロセッサ内部の資源たとえば演算ユニットなどの共有化又は共用化によるハードウエアの増加を抑えて高速性能を実現することである。
【0012】
さらに、本発明の別の目的は、プロセッサ間の動作制御方式による高速化と低消費電力化の双方を実現することである。
【0013】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0014】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0015】
データ処理装置は、第1の命令セットの命令を実行する第1のプロセッサと、第1の命令セットとは異なる第2の命令セットの命令を実行する第2のプロセッサとを有し、前記第1のプロセッサが前記第1の命令セットの中の所定命令を実行したとき、前記第2のプロセッサが前記第2の命令セットの命令を実行する。
記憶装置に記憶されるプログラムを実行するデータ処理装置は、第1の命令セットの命令によって構成されるプログラムと、第1の命令セットと異なる第2の命令セットの命令によって構成されるプログラムとを前記データ処理装置のアドレス空間に配置する。
【0016】
前記第1の命令セットの命令は可変長であり、前記第2の命令セットの命令は固定長にする。前記第1の命令セットの命令の最大語長は、前記第2の命令の語長より長い場合がある。前記第1の命令セットの命令の最大語長は、前記第2の命令の語長より短い場合がある。
【0017】
前記第1の命令セットの命令と前記第2の命令セットの命令は共に固定長である場合がある。前記第1の命令セットの命令の語長は、前記第2の命令の語長より短い場合がある。
【0018】
データ処理装置は、演算器を有し、第1の命令群を格納する第1の記憶部から命令を読み出して実行する第1のデータ処理部と、並列動作可能な複数の演算器を有し、同時に実行可能な命令を1命令として実行する第2のデータ処理部と、前記第2のデータ処理部が実行する命令群を格納する第2の記憶部とを具備し、前記第1のデータ処理部が読み出した命令が所定の命令であるとき、前記第2のデータ処理部で実行する命令を前記第2の記憶部から読み出す。
【0019】
マイクロプロセッサは、RISC命令を実行するRISCコアと、VLIW命令を格納するVLIWテーブルと、VLIW命令を実行するVLIWコアと、前記RISCコアとVLIWコアとの動作切り替えを制御するVLIW起動判定ユニットとを有し、前記RISCコアがRISC命令のうちサブルーチンコール若しくは分岐命令を実行したとき、分岐先アドレスで前記VLIWテーブルからVLIW命令を読み出し、前記VLIW起動判定ユニットが前記RISCコアから前記VLIWコアへ動作を移し、前記VLIWテーブルからVLIW命令の完了コードが読み出されるまでVLIWコアが動作する。
【0020】
前記マイクロプロセッサは、さらに分岐先アドレスをアドレス変換するTLBを有し、前記VLIWテーブルから読み出されるVLIW命令を拡張するための信号をアドレス変換の際にTLBから同時に読み出せる。
【0021】
前記マイクロプロセッサは、さらにVLIW命令へ分岐後、引き続き実行されるVLIW命令の動作とVLIW命令実行後に復帰するRISC命令の動作に関連性があるかを調べる回路を有し、関連性がない場合にVLIW命令の完了を待たずに復帰先のRISC命令を並列に実行可能である。
【0022】
前記マイクロプロセッサにおいて、VLIW命令の実行を禁止したり、実行を制御するレジスタをプロセッサ内部に有し、VLIW命令実行禁止時にはVLIW命令と同等の動作を行うRISC命令列に分岐することで、VLIWコアの動作を停止させ低消費電力化を図る機能を有する。
【0023】
前記VLIWテーブルを不揮発性メモリに内蔵する。 前記不揮発性メモリは、マスクROM、フラッシュメモリ、強誘電体メモリのうちのいづれか1つであるのが望ましい。
前記VLIWテーブルを揮発性メモリに内蔵する。前記VLIWテーブルを揮発性メモリは、SRAM或いはDRAMのうちのいづれかであるのが望ましい。
【0024】
前記VLIWテーブルをRISCコアのプロセッサで書き換え可能なメモリに内蔵するのが望ましい。
【0025】
【発明の実施の形態】
図1には本発明の実施形態に係るマイクロプロセッサ100のブロック図が示される。マイクロプロセッサ100は、RISC命令の処理を実行するRISCコア部106、VLIW命令の処理を実行するVLIWコア部140及びデータキャッシュ129から構成される。
【0026】
RISCコア部106は、命令フェッチユニット101、命令キャッシュ107、 RISCデコードユニット114、浮動小数点ユニット118、整数演算ユニット119、ロード/ストアユニット127から構成される。
【0027】
VLIWコア部140は、VLIW起動判定ユニット104、VLIWテーブル113、VLIWデコードユニット115、N個の演算ユニット120、VLIWロード/ストアユニット131から構成される。
【0028】
命令フェッチユニット101が命令アドレスバス105に実行する命令のアドレスを出力する。RISC命令実行時には命令アドレスバス105のアドレスに対応する命令が命令キャッシュ107から命令バス108に読み出され、RISCデコードユニット114においてRISC命令のデコードを行う。なお、命令キャッシュ107に該当する命令が存在しない(キャッシュミス)ときは、アドレスバス134とデータバス135を用いてバスコントローラ(図示せず)を介してマイクロプロセッサ外部のメモリから命令が読み出される。 RISCデコードユニット114でのデコードの結果はRISC演算ユニット制御信号117を通して浮動小数点ユニット118や整数演算ユニット119などの制御が行われる。図1ではVLIWコアの演算ユニット140とRISCコアの演算ユニット106をお互いに共有している状態を示しているため、演算ユニット120へのアクセスが発生することもある。
【0029】
さらに命令がメモリアクセス命令であった場合はロード/ストアユニット127へアクセスが発生し、アドレスバス126からデータキャッシュ129にアクセスが起こり、データバス128、RISC用データバス121を通してデータが整数演算ユニット119と浮動小数点ユニット118のレジスタに格納される。データキャッシュ129に該当するデータがない(キャッシュミス)とき、バスコントローラを介して、アドレスバス139とデータバス138を用いて、マイクロプロセッサ外部のメモリをアクセスする。
【0030】
RISC命令の実行中にVLIW命令の実行を行うための分岐命令(RISC命令の一部)が発生した場合、RISCデコードユニット114からVLIW分岐命令デコード信号142を通して命令フェッチユニット101へ分岐発生を知らせる。信号分岐先アドレスは分岐先アドレス用バス136を通して伝えられる。レジスタファイル内のレジスタに分岐先アドレスが格納されている場合は分岐先アドレス用バス141を通して整数演算ユニット119などからRISCデコードユニット114へアドレスが転送される。VLIW命令はRISCコアのメモリ空間の特定のアドレス空間に割り付けられており、そのアドレス空間をアクセスすることでVLIWテーブル113に格納されているVLIW命令をアクセスすることが可能となる。これによって、VLIWテーブル113からのVLIW命令の読み出し及び書き換えを行うことができる。
【0031】
VLIW分岐命令デコード信号142を通して分岐の発生を受けた命令フェッチユニット101はVLIW命令分岐信号103を通してVLIW起動判定ユニット104へVLIW命令への分岐が発生したことを知らせる。VLIW起動判定ユニット104はVLIW命令を起動する条件を判定し、RISCコア制御信号109を通しRISCデコードユニット114へ命令アドレスバス105のアドレスで読み出した命令の実行を中止させる。RISCデコードユニット114内又はVLIWデコードユニット115内のレジスタで指定された場合は、消費電力低減のためRISCコア106全体或いは一部のクロックを停止することができる。なお、VLIW命令を実行しない場合も、同様にVLIWコア全体或いは一部のクロックを停止することができる。
【0032】
VLIWテーブル113から命令アドレス命令アドレスバス105のアドレスを用いVLIW命令バス112へVLIW命令が読み出される。VLIWデコードユニット115はVLIW命令バス112のVLIW命令をVLIW起動判定ユニット104からVLIW命令デコード起動信号111を通して送られてくる起動条件をもとにデコードし、VLIW演算ユニット制御信号116を通してVLIW演算ユニット120またはRISCコア部106の整数演算ユニット119や浮動小数点ユニット118のそれぞれの制御を並列に行う。VLIW演算ユニット120とは整数演算ユニット、浮動小数点演算ユニット、DSP(Digital Signal Processor:例えば積和演算)等の演算ユニットである。図1には各演算ユニットが個別にレジスタファイルを持つローカルレジスタファイル型のプロセッサの例が示される。各演算ユニット間のデータのやりとりは演算器間データバス123を通して行われる。VLIW命令にメモリアクセス命令が含まれていた場合、VLIWロード/ストアユニット131がデータキャッシュ129に対しアドレスバス125とデータバス130、VLIW用データバス124を用いてアクセスが発生する。
【0033】
VLIW命令が連続して続く場合は命令アドレスバス105を通してVLIW起動判定ユニット104内に保持されているアドレス情報を使い命令アドレスバス132のアドレスとVLIWテーブル制御信号133を通してVLIWテーブル113からVLIW命令が読み出される。読み出されたVLIW命令が最後の命令であることを示す完了コードを含んでいる場合VLIWデコードユニット115がVLIW命令実行状態信号110を通してVLIW起動判定ユニット104にVLIW命令列の完了を知らせる。VLIW命令実行状態信号110にはVLIW命令の完了の他に割り込み、例外等のVLIW命令実行に影響を与える情報も出力される。VLIW起動判定ユニット104はVLIW命令列の完了を受けてVLIW命令完了信号102とRISCコア制御信号109を通しVLIW命令の完了を命令フェッチユニット101とRISCデコードユニット114へ伝え、RISC命令に復帰する。
【0034】
すなわち、RISC命令の実行にはRISCコア106を用い、VLIW命令の実行にはVLIWコア140を用いる。VLIWコア140の実行では新規にRISC命令に追加したVLIW命令への分岐命令もしくは特定のアドレスへの分岐をトリガとし、VLIW命令起動判定ユニット104がマイクロプロセッサ内部に保持するVLIWテーブル113から順次VLIW命令をVLIWデコーダ115へ読み出す。VLIW命令実行後、処理をRISC命令列に復帰する。つまりVLIW命令の実行をサブルーチン化しVLIWテーブル113に格納することにより高速動作が必要な処理をVLIW命令で実行することが可能となる。サブルーチン化することによりVLIW回路を有しないマイクロプロセッサであっても、分岐先にVLIW命令と同等の動作をするRISC命令列を配置することで互換性の維持が可能である。
【0035】
また低消費電力動作が必要であり、かつVLIW命令を使うような高速な動作が必要でない場合には内蔵制御レジスタの状態により、VLIWコア140の動作を停止し、RISCコア106のみで動作を行うことも可能である。逆にRISCコア106の動作が必要でない場合にはRISCコア106の動作を停止し、VLIWコア140のみで動作することも可能である。
【0036】
さらに、RISC命令の実行中にVLIWコア140の演算器(レジスタファイルを含む)を使用でき、VLIW命令実行中にRISCコア106の演算器(レジスタファイル)を使用できるので、資源の共用が可能になり半導体集積回路のチップ面積低減が可能になる。
【0037】
VLIW起動判定ユニット104は、VLIW命令実行中に実行中のVLIW命令がVLIW命令実行完了後に復帰する先のRISC命令と依存性がないかを制御信号137を通して得られるデコード結果をもとに判定し、依存性がない場合にVLIW命令完了信号102とRISCコア制御信号109を通してRISC命令とVLIW命令の並列実行の制御の選択が可能である。
【0038】
VLIWテーブル113にはマスクROM、EPROM(電気的書き込み紫外線消去の不揮発性メモリ)、EEPROM(電気的消去/書き込み可能な不揮発性メモリ)、フラッシュメモリ(フラッシュEEPROM)、FRAM(強誘電体メモリ)等の不揮発性メモリと、DRAM(ダイナミックRAM)、SRAM(スタテイックRAM)等の揮発性メモリとが使用される。書き換え可能なメモリ、例えばEEPROM、フラッシュメモリ、FRAM、DRAM、SRAM等を用いた場合、 VLIWテーブルデータバス122を通してシステムに応じたVLIWテーブルを設定することが可能である。これによって、 VLIW動作中に動的にVLIWテーブルをシステムに最適な構成にすることができる。またVLIW起動判定ユニット104内にあるレジスタへのアクセスにもこのVLIWテーブルデータバス122が用いられる。SRAMを用いると他のメモリを使用する場合に比べて書き込み及び読み出しが高速にできる。DRAMはメモリ素子が1個のトランジスタで構成され、SRAMはメモリ素子が4個又は6個のトランジスタで構成されるため、DRAMを用いることでVLIWテーブルをSRAMを用いるより小さくできる。
図2には図1に係るマイクロプロセッサの変形例が示される。図2では RISCコア106とVLIWコア140のレジスタを共通に持つグローバルレジスタ型のマイクロプロセッサが示される。図1のマイクロプロセッサ100と同一の部分には同一の記号が用いられている。
【0039】
図5には、VLIW分岐命令によりVLIW命令がRISC命令と並列に実行する場合のタイミングチャートとVLIW命令のコード割付の例が示されている。
【0040】
VLIW分岐命令はRISC命令の1つで、RISC命令1、2、3と同様にRISCコア106でパイプライン処理で実行される。記号501、504、506、507はそのパイプラインステージを示している。Iは命令フェッチ、Dは命令デコード、Eは実行、Mはメモリアクセス、Wは書き込みのステージを表す。また、VLIW命令1、2、3は、VLIWコア140でパイプライン処理で実行される。記号502、503、505はそのパイプラインステージを示している。パイプラインのVI、VD、VE、VM、VWはそれぞれVLIW用の命令フェッチ、命令デコード、実行、メモリアクセス、書き込みのステージを表す。
【0041】
VLIW分岐命令からVLIW命令1へ3サイクル後に分岐するとしたらVLIW命令1のパイプライン502がサイクル4から開始する。VLIW命令2以降のVLIW命令がVLIW命令実行後の復帰先のRISC命令と依存性がない場合、VLIW命令2の実行503とRISC命令1の実行504を並列に行うことが可能である。VLIW命令3の実行505とRISC命令2の実行506も並列に動作でき、VLIW命令が完了すると、VLIW命令用のパイプラインは消え、RISC命令3の実行507が行われる。
【0042】
VIステージでVLIWテーブルから読み出されるVLIW命令のコード割付の例を図5の下に示す。VLIW命令には複数の演算器を制御するためのコードが1命令に埋めこまれている。このVLIW命令の命令長は128ビット或いは256ビットの固定長である。記号508はVLIW演算器1を制御するためのフィールド、509はVLIW演算器2を制御するためのフィールド、510は整数演算器を制御するためのフィールド、511は浮動小数点演算器を制御するためのフィールド、512はVLIW命令の完了やその他の情報を格納するためのフィールドなどから構成されている。508、509、510、511、512の各々のフィールドは32ビット長で、513のオペコード、514のディスプレースメント、515のソースレジスタ1、5516のソースレジスタ2、517のデスティネーションレジスタなどの割付が行われている。この命令コードをVLIWデコーダがデコードし各演算器を制御する。
【0043】
本発明の実施形態では、命令セットの異なるプロセッサ間の動作を切り替える方法として、プロセッサを切り替えるための分岐命令若しくは特定アドレス空間への分岐をトリガとして用いている。第1のプロセッサと第2のプロセッサの間で動作を切り替える場合、第1のプロセッサ若しくは第2のプロセッサのどちらかのプロセッサが全体の実行を制御するマスタプロセッサとなり、もう一つがスレーブプロセッサとなる。マスタプロセッサは常に片方のプロセッサに固定であるわけでなく、動的にどちらのプロセッサでもマスタプロセッサになることは可能である。
【0044】
マスタプロセッサからスレーブプロセッサへ動作が移った後、スレーブプロセッサの動作が復帰後のマスタープロセッサの動作に影響を与えない場合、スレーブプロセッサもしくはマスタプロセッサが依存性を判断することで並列に2つのプロセッサを動作させることが可能である。
【0045】
図6には、本発明を利用したシステムの全体図が示される。601は1枚或いは複数枚のプリント基板上に構成されたシステムで、このシステムにディスプレイ611、CD−ROM612、ビデオカメラ615、LCD618、キーボードやプリンタ等の周辺デバイス620等が接続される。システム601はプロセッサ602、プログラム等を格納するROM608、データやプログラムを格納するSRAM609、DRAM614及びSDRAM614、表示用画像データ等を格納する3次元グラフィック用フレームバッファ610、CD−ROMを制御するCD−ROMデコーダ613、ビデオカメラを制御するビデオコントローラ616、液晶表示装置(LCD)を制御するLCDコントローラ619、キーボードやプリンタ等の周辺デバイス620を制御する周辺デバイスコントローラ621等がシステムバス607に接続されて構成されている。
【0046】
プロセッサ602は、第1の命令セットを持つプロセッサ1(603)と、第2の命令セットを持つプロセッサ2(605)から構成されており、制御信号606によりプロセッサ1がプロセッサ2を、制御信号604によりプロセッサ2がプロセッサ1を制御する。プロセッサ602は3次元グラッフィクス、MPEGのエンコード/デコードを高速に処理することができるので、従来のような専用のハードウエア回路が必要なく、プリント基板上に実装する半導体チップの個数を削減でき、プリント基板の枚数の削減或いはプリント基板自身の大きさを小さくできる。
【0047】
図7には、図6のプロセッサ602を一つの半導体集積回路装置で構成した(ワンチップに内蔵した)場合のブロック図が示されている。プロセッサ701は、半導体集積回路製造技術用いて単結晶シリコンのような1個の半導体基板に形成される。この半導体基板はレジンモールド技術を用いていわゆるプラスチックパッケージに封止される。このワンチップには、ROM608やRAM609などのメモリが含まれることもある。
【0048】
ワンチップのプロセッサ701は、第1の命令セットを持つプロセッサ1(708)と、第2の命令セットを持つプロセッサ2(711)、データキャッシュ712、周辺装置、クロックパルス発生回路(CPG)714、入出力回路(I/O)715等から構成される。
【0049】
プロセッサ1(708)とプロセッサ2(711)の組み合わせには16ビット固定長命令のRISCプロセッサと64ビット固定長命令のVLIWプロセッサの組み合わせや、32ビット固定長命令のRISCプロセッサと128ビット固定長命令のVLIWプロセッサの組み合わせや、64ビット固定長命令のRISCプロセッサと256ビット固定長命令のVLIWプロセッサ等がある。この組み合わせではプロセッサ1とプロセッサ2を逆にすることも可能である。図7ではプロセッサ1(708)がRISCプロセッサ(図1のRISCコア106)、プロセッサ2(711)がVLIWプロセッサ(図1のVLIWコア140)である場合が示される。
【0050】
プロセッサ1(708)は命令フェッチユニット101、命令キャッシュ107、RISCデコードユニット114、1つまたは複数の演算ユニット704、RISCロード/ストアユニット127から構成され、内部バス702により接続されている。命令フェッチユニット101が命令キャッシュ107から命令を読み出し、その読み出した命令をRISCデコードユニット114で解析し、演算ユニット704が動作し、メモリアクセスが必要な場合はロード/ストアユニット127が起動する。演算ユニット704には乗算ユニット、整数演算ユニット、浮動小数点ユニット、除算ユニット、DSPなどの演算ユニットが置かれる。また同一の演算ユニットを複数個持つ場合もある。命令キャッシュへの命令の読み込みはバス709を用いて、バスコントロールユニット712から行われる。RISCロード/ストアユニット127はバス705を用いてデータキャッシュ129にアクセスを行う。データキャッシュ129へのデータの取り込みはバスコントロールユニット712からバス707を用いて行われる。
【0051】
プロセッサ2(711)はVLIW起動判定ユニット104、VLIWテーブル113、VLIWデコードユニット115、1つまたは複数の演算ユニット704、VLIWロードストアユニット131から構成され、内部バス702により接続されている。VLIW起動判定ユニット104からVLIW命令の起動がかかると、VLIWテーブル113よりVLIW命令が読み出され、VLIWデコードユニット115で命令を解析し演算ユニット704が動作し、メモリアクセスが必要な場合はロード/ストアユニット131が起動する。VLIWテーブル113にはマスクROMやフラッシュメモリなどの不揮発性メモリ又はSRAMやDRAMなどの揮発性メモリが使用される。VLIWテーブルはチップ外に存在することもあり、その場合にはバスコントロールユニットを通して外部からVLIW命令の読み出しが行なわれる。演算ユニット704には乗算ユニット、整数演算ユニット、浮動小数点ユニット、除算ユニット、DDSPなどの演算ユニットが置かれる。また同一の演算ユニットを複数個持つ場合もある。VLIWロード/ストアユニット131はバス706を用いてデータキャッシュ129にアクセスを行う。
【0052】
バスコントロールユニット712はバス713を用いてI/O715にアクセスを行う。 I/O715はアドレス信号717、データ信号716を用いてチップの外とのデータのやりとりを行う。バス713には周辺モジュール710等が接続されることもある。また内部のクロックはCPG714によって発生される。
【0053】
プロセッサ1(708)とプロセッサ2(711)とのあいだのインターフェイスは制御信号線(又はバス)703を用いて行われる。
【0054】
図7のようにプロセッサ1とプロセッサ2をワンチップ化することにより、データキャッシュを共有できるためデータの一致制御が行いやすくなる。またプロセッサ間の信号がチップの外に出ないためセキュリティが強化される。さらにプロセッサ間の通信の高速化と情報量が削減できるため、低コスト化と高速化が図れる。
【0055】
図8には本発明に係る他の実施形態であるマイクロコンピュータ800のブロック図が示される。マイクロコンピュータ800は半導体製造プロセス技術用いてシリコンのような1つの半導体基板上に形成される。この半導体基板はレジンモールド技術を用いていわゆるプラスチックパッケージに封止される。
【0056】
マイクロコンピュータ800は、第1のプロセッサ801、第2のプロセッサ802、第1のメモリ803、第2のメモリ804、プロセッサ切り替え回路805、アドレスバス806、データバス807、及びバス制御ユニット808を有する。
【0057】
第1のプロセッサ801はRISC型プロセッサで、16ビット固定長命令を実行するプロセッサである。第2のプロセッサ802はVLIW型のプロセッサで、64ビット長命令を実行するプロセッサである。第1のプロセッサ801と第2のプロセッサ802との命令体系(命令セット、命令フォーマット或いはプログラミングモデル等)は異なる。第1のメモリ803には第1のプロセッサ801が実行する命令(プログラム)が格納される。第2のメモリ804には第2のプロセッサ802が実行される命令(プログラム)が格納される。第1のメモリ803及び第2のメモリ804は不揮発性のメモリ又は揮発性のメモリで構成される。第1のメモリ803と第2のメモリ804を書き替え可能なメモリで構成することにより、半導体供給者だけでなく、半導体の使用者がプログラムすことが可能になる。すなわち、第1の命令セットを用いたプログラムと第2の命令セットを用いたプログラムとの両方が使用者によってすることができる。不揮発性のメモリ、揮発性のメモリ及び書き替え可能なメモリには、図1のマイクロプロセッサのVLIWテーブル113で使用されるものと同様である。
【0058】
図9のメモリマップに示すように第1のプロセッサのプログラムと第2のプロセッサのプログラムは、第1のプロセッサ801或いは第2のプロセッサ802のアドレス空間上にある。第1のメモリ803には第1のプロセッサのプログラムの一部或いは全てが格納される。また、第2のメモリ804には第2のプロセッサのプログラムの一部或いは全てが格納される。
【0059】
プロセッサ切り替え回路805は、第1のプロセッサ801或いは第2のプロセッサ802のアドレスが入力され、第1のメモリ803と第2のメモリ804のどちらをアクセスするのかを判定する。第1のプロセッサ801が第1のメモリ803をアクセスする場合は、アドレス信号と制御信号812をプロセッサ切り替え回路805に入力する。プロセッサ切り替え回路805は第1のメモリ803のアクセスに必要なアドレス信号や制御信号808を出力する。また、第2のプロセッサ802に先読みされた命令の動作の中止や低消費電力化のためのクロック停止のための制御信号810を出力する。一方、第2のプロセッサ802が第2のメモリ804をアクセスする場合は、アドレス信号と制御信号813をプロセッサ切り替え回路805に入力する。プロセッサ切り替え回路805は第2のメモリのアクセスに必要なアドレス信号や制御信号を信号線809に出力する。また、第1のプロセッサ801に先読みされた命令の動作の中止や低消費電力化のためのクロック停止のための制御信号811を出力する。プロセッサ切り替え回路805によって、第1のプロセッサと第2のプロセッサが排他的に動作する。
【0060】
第1のプロセッサ801は第1のプロッセッサのプログラムを実行し、そのプログラムの中の分岐命令等で第2のプロセッサのプログラム領域を示すアドレスを出力することによって、第2のプロセッサで第2のプロセッサのプログラムを実行できる。また、第2のプロセッサは第2のプロセッサのプログラムの中の分岐命令等で第1のプロセッサのプログラム領域を示すアドレスを出力することによって、第1のプロセッサのプログラムに戻ることができる。
【0061】
なお、プロセッサ切り替え回路805内には制御レジスタがあり、このレジスタを書き替えることにより図9に示したメモリマップは変更することができる。前記制御レジスタで、第1のプロセッサのプログラム領域、第2のプロセッサのプログラム領域、データ領域のそれぞれの始まりアドレスと終わりのアドレス等を指定できる。
【0062】
これによって、命令体系の異なるプログラムが1つのマイクロコンピュータで実行でき、第1のプロセッサのプログラムが従来から蓄積されたソフウトウエアであっても、新しいアーキテクチャのプログラムが第2のプロセッサで実行できるので、ソフトウエアの互換性が維持できる。
【0063】
また、動作しないプロセッサのクロックを停止させることで、低消費電力化を実現できる。
【0064】
第1のプロセッサ801と第2のプロセッサ802の命令長は比較的短いため、命令デコーダ等の制御部や演算部を小さくできるので、第1のメモリ803又は第2のメモリ804の容量を大きくすることができる。なお、プロセッサの面積が大きくても良い場合は、命令長は長くしてもよい。
【0065】
本発明の実施の形態により、命令セットの異なるプロセッサ間の動作を特定の命令で切り替えることが可能となるため、互換性を維持しながら異なる命令セットを有するプロセッサへの拡張が可能となる。
【0066】
またプロセッサ間で演算ユニットなどの資源を共有化できるため、低コスト化につながる。
【0067】
異なる命令セットを持つプロセッサをワンチップに内蔵した場合には、プロセッサ間通信の高速化と、内部情報がチップ外部に出力されないことによるセキュリティ強化が図れる。
【0068】
動作中に高速な処理が必要でなくなったとき1つのプロセッサの動作を完全に止め、別のプロセッサで止めたプロセッサと同機能の処理をさせることにより低消費電力化が図れる。
【0069】
これによって、(1)ソフトウエアは従来と完全互換性を保ったまま1GIPS(Giga Instructions Per Second)、最大10GOPS(Giga Operation s Per Second)の高性能を実現できる。(2)既存のソフトウエアのままでミドルウエア部分の性能を1桁向上できる。(3)新しいアプリケーションもこれまでの命令セットのままで作成できる。(4)全てのアプリケーションをソフトウエアで実現できる。
【0070】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることはいうまでもない。例えば、図1のマイクロプロセッサでは、RISCコアの演算器とVLIWコアの演算器とは双方で共用できたが、図2のマイクロプロセッサのように独立させてもよい。図2ではロード/ストアユニット204RISCコアとVLIWコアとの共有にした場合をしたが、ロード/ストアユニットは図1のように2つ持っても構わない。第1のプロセッサをRISC型プロセッサ、第2のプロセッサをVLIW型プロセッサで構成したが、命令セットの異なる2つのプロセッサで構成することができる。すなわち、RISC型とRISC型、RISC型とCISC型、CISC型とCISC型、CISC型とVLIW型、VLIW型とVLIW型等のプロセッサを用いても良い。また、RISCプロセッサとVLIWプロセッサとの命令長を16ビットと64ビット、32ビットと128ビット、64ビットと256ビットとの例を示す。
【0071】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0072】
すなわち、従来のソフトウエアを実行する第1のプロセッサと、新しいアーキテクチャのソフトウエアを実行する第2のプロセッサとを有し、第1のプロセッサが第2のプロセッサに起動をかけることができるので、従来のソフトウエアと互換性を維持しながら、新しいアーキテクチャ(命令体系)のソフトウエアを実行する高性能なプロセッサを実現することができる。
【0073】
2つのプロセッサ内部の資源たとえば演算ユニットなどを共有化することにより、ハードウエアの増加を抑えて高速性能を実現することができる。
【0074】
2つのプロセッサを並列に動作させる場合と、間欠動作させる2つの制御方式が可能であるため、高速化と低消費電力化の双方を実現することができる。
【図面の簡単な説明】
【図1】本発明の一つの実施形態に係るマイクロプロセッサのブロック図。
【図2】図1に係るマイクロプロセッサの変形例のブロック図。
【図3】図1及び図2のマイクロプロセッサのVLIW起動論理に関する詳細図。
【図4】図1及び図2のマイクロプロセッサにTLBを用い場合のVLIW起動論理に関する詳細図。
【図5】VLIW命令実行時のパイプラインの構成と命令コードの例。
【図6】本発明に係るマイクロプロセッサを利用したシステムの全体図。
【図7】ワンチップのプロセッサのブロック図。
【図8】本発明に係る他の実施形態であるマイクロコンピュータのブロック図。
【図9】図8のマイクロコンピュータのメモリマップ。
【符号の説明】
100 マイクロプロセッサ
101 命令フェッチユニット
102 VLIW命令完了信号
103 VLIW命令分岐信号
104 VLIW起動判定ユニット
105、132 命令アドレスバス
106 RISCコア
107 命令キャッシュ
108 命令バス
109 RISCコア制御信号
110 VLIW命令実行状態信号
111 VLIW命令デコード起動信号
112 VLIW命令バス
113 VLIWテーブル
114 RISC命令デコードユニット
115 VLIW命令デコードユニット
116 VLIW演算ユニット制御信号
117 RISC演算ユニット制御信号
118 浮動小数点演算ユニット
119 整数演算ユニット
120 VLIW演算ユニット
121 RISC用データバス
122 VLIWテーブルデータバス
123 演算器間データバス
124 VLIW用データバス
125、126 アドレスバス
127 RISCロード/ストアユニット
128、130 データバス
129 データキャッシュ
131 VLIWロード/ストアユニット
133 VLIWテーブル制御信号
134、139 アドレスバス
135、138 データバス
136、141 分岐先アドレス用バス
137 制御信号
140 VLIWコア
142 VLIW分岐命令デコード信号
200 マイクロプロセッサ
201 レジスタファイル
202 演算ユニットとレジスタファイル間のバス
203 レジスタファイルとロードストアユニット間のバス
204 ロード/ストアユニット
205 データバス
206 アドレスバス
301 加算器
302 VLIWコア用プログラムカウンタ
303 セレクタ
304 アドレスラッチ
305 データラッチ
306 VLIWテーブル格納メモリ
307 テーブル制御回路
308 VLIWコア制御レジスタ
309 デコーダ
310 VLIW起動判定回路
311 調停回路
312 起動回路
313 マルチプレクサ
314 VLIW演算ユニット制御回路
315 VLIW分岐条件判定回路
316 RISCコア用プログラムカウンタ
317 加算器
401 アドレス変換バッファ(TLB)
402 VLIW起動補助情報信号
403 命令アドレス(物理アドレス)
501 VLIW分岐命令のパイプライン
502 VLIW命令1
503 VLIW命令2
504 RISC命令1
505 VLIW命令3
506 RISC命令2
507 RISC命令3
508 VLIW演算器1制御フィールド
509 VLIW演算器2制御フィールド
510 整数演算器制御フィールド
511 浮動小数点演算器制御フィールド
512 VLIW命令完了コード
513 オペコード
514 ディスプレースメント
515 ソースレジスタ1
516 ソースレジスタ2
517 ディスティネーションレジスタ
601 システム
602 プロセッサ
603 プロセッサ1
604 プロセッサ2からプロセッサ1の制御信号
605 プロセッサ2
606 プロセッサ1からプロセッサ2の制御信号
607 システムバス
608 ROM
609 RAM
610 3次元グラッフィクス用フレームバッファ
611 ディスプレイ
612 CD−ROM
613 CD−ROMデコーダ
614 DRAM
615 ビデオカメラ
616 ビデオコントローラ
617 SDRAM
618 LCD
619 LCDコントローラ
620 キーボードやプリンタなど周辺デバイス
621 周辺デバイスコントローラ
701 プロセッサ
702 内部バス
703 プロセッサ1とプロセッサ2の間の制御信号
704 演算ユニット(整数演算、浮動小数点演算、乗除算、DSPなど)
705 プロセッサ1とデータキャッシュ間のバス
706 プロセッサ2とデータキャッシュ間のバス
707 データキャッシュとバスコントロールユニット間のバス
708 プロセッサ1(RISCプロセッサ)
709 命令キャッシュとバスコントロールユニット間のバス
710 周辺モジュール
711 プロセッサ2(VLIWプロセッサ)
712 バスコントールユニット
713 バスコントロールユニットとI/O間のバス
714 クロックパルス発生回路(CPG)
715 入出力回路(I/O)
716 データ信号線
717 アドレス信号線
800 マイクロコンピュータ
801 第1のプロセッサ
802 第2のプロセッサ
803 第1のメモリ
804 第2のメモリ
805 プロセッサ切り替え回路
806 アドレスバス
807 データバス
808 バス制御ユニット。

Claims (16)

  1. 第1命令セットの命令を実行する第1プロセッサと、
    第1命令セットとは異なる第2命令セットの命令を実行する第2プロセッサとを有するデータ処理装置であって、
    前記第1プロセッサが前記第1命令セットの中の所定命令を実行したとき、前記第2プロセッサが前記第2命令セットの命令を実行し、
    前記データ処理装置は、前記第2命令セットの命令へ分岐後、引き続き実行される前記第2命令セットの命令の動作と前記第2命令セットの命令実行後に復帰する前記第1命令セットの命令の動作に関連性があるかを調べる回路をさらに有し、関連性がない場合に前記第2命令セットの命令の完了を待たずに復帰先の前記第1命令セットの命令を並列に実行可能であることを特徴とするデータ処理装置。
  2. 前記第1命令セットの命令は可変長であり、前記第2命令セットの命令は固定長であることを特徴とする請求項1に記載のデータ処理装置。
  3. 前記第2命令セットは、3次元画像処理のための命令を有することを特徴とする請求項1又は2に記載のデータ処理装置。
  4. 前記第1命令セットの命令と前記第2命令セットの命令は共に固定長であることを特徴とする請求項1に記載のデータ処理装置。
  5. 前記第1命令セットの命令の語長は、前記第2命令セットの命令の語長より短いことを特徴とする請求項4に記載のデータ処理装置。
  6. 演算器を有し、第1命令群を格納する第1記憶部から命令を読み出して実行する第1データ処理部と、
    並列動作可能な複数の演算器を有し、同時に実行可能な命令を1命令として実行する第2データ処理部と、
    前記第2データ処理部が実行する命令群を格納する第2記憶部とを具備するデータ処理装置であって、
    前記第1データ処理部が読み出した命令が所定の命令であるとき、前記第2データ処理部で実行する命令を前記第2記憶部から読み出し、
    前記データ処理装置は、前記第2命令セットの命令へ分岐後、引き続き実行される前記第2命令セットの命令の動作と前記第2命令セットの命令実行後に復帰する前記第1命令セットの命令の動作に関連性があるかを調べる回路をさらに有し、関連性がない場合に前記第2命令セットの命令の完了を待たずに復帰先の前記第1命令セットの命令を並列に実行可能であることを特徴とするデータ処理装置。
  7. RISC命令を実行するRISCコアと、
    VLIW命令を格納するVLIWテーブルと、
    VLIW命令を実行するVLIWコアと、
    前記RISCコアと前記VLIWコアとの動作切り替えを制御するVLIW起動判定ユニットとを有するマイクロプロセッサであって、
    前記RISCコアがRISC命令のうちサブルーチンコール若しくは分岐命令を実行したとき、分岐先アドレスで前記VLIWテーブルからVLIW命令を読み出し、前記VLIW起動判定ユニットが前記RISCコアから前記VLIWコアへ動作を移し、前記VLIWテーブルからVLIW命令の完了コードが読み出されるまで前記VLIWコアが動作し、
    前記マイクロプロセッサは、VLIW命令へ分岐後、引き続き実行されるVLIW命令の動作とVLIW命令実行後に復帰するRISC命令の動作に関連性があるかを調べる回路をさらに有し、関連性がない場合にVLIW命令の完了を待たずに復帰先のRISC命令を並列に実行可能なマイクロプロセッサ。
  8. RISC命令を実行するRISCコアと、
    VLIW命令を格納するVLIWテーブルと、
    VLIW命令を実行するVLIWコアと、
    前記RISCコアと前記VLIWコアとの動作切り替えを制御するVLIW起動判定ユニットとを有するマイクロプロセッサであって、
    前記RISCコアがRISC命令のうちサブルーチンコール若しくは分岐命令を実行したとき、分岐先アドレスで前記VLIWテーブルからVLIW命令を読み出し、前記VLIW起動判定ユニットが前記RISCコアから前記VLIWコアへ動作を移し、前記VLIWテーブルからVLIW命令の完了コードが読み出されるまで前記VLIWコアが動作し、
    LIW命令実行禁止時にはVLIW命令と同等の動作を行うRISC命令列に分岐するとともに、VLIWコアの動作を停止させるマイクロプロセッサ。
  9. 前記VLIWテーブルは、不揮発性メモリに内蔵されることを特徴とする請求項7又は8に記載のマイクロプロセッサ。
  10. 前記不揮発性メモリは、マスクROM、フラッシュメモリ、強誘電体メモリのうちのいずれか1つであることを特徴とする請求項9に記載のマイクロプロセッサ。
  11. 前記VLIWテーブルは、揮発性メモリに内蔵されることを特徴とする請求項7又は8に記載のマイクロプロセッサ。
  12. 前記揮発性メモリは、SRAM或いはDRAMのうちのいずれか一つであることを特徴とする請求項11に記載のマイクロプロセッサ。
  13. 前記VLIWテーブルは、前記RISCコアのプロセッサで書き換え可能なメモリに内蔵されることを特徴とする請求項7又は8に記載のマイクロプロセッサ。
  14. 第1命令セットと前記第1命令セットとは異なる第2命令セットを実行可能なマイクロプロセッサであって、
    前記マイクロプロセッサは、命令キャッシュと、テーブルと、実行部とを具備し、
    前記命令キャッシュは、前記第1命令セットに含まれる命令を出力し、前記テーブルは、前記第2命令セットに含まれる命令を出力し、
    前記マイクロプロセッサが前記第1命令セットに含まれる命令に基づいて動作する場合は、前記実行部は、前記命令キャッシュから出力される命令を実行し、
    前記マイクロプロセッサが前記第2命令セットに含まれる命令に基づいて動作する場合は、前記実行部は、前記テーブルから供給される命令を実行し、
    前記第1命令セットは、前記実行部が実行する命令の供給元を前記命令キャッシュからテーブルに変更する命令を含むことを特徴とするマイクロプロセッサ。
  15. 前記第1命令セットに含まれる命令のビット長は、前記第2命令セットに含まれる命令のビット長より長いことを特徴とする請求項14に記載のマイクロプロセッサ。
  16. 前記マイクロプロセッサは、命令アドレスを保持するための命令フェッチユニットを更に具備し、
    前記命令キャッシュは、前記命令フェッチユニットから命令アドレスを受けて、前記実行部に前記命令アドレスに対応する命令を出力することを特徴とする請求項14又は15に記載のマイクロプロセッサ。
JP01501696A 1996-01-31 1996-01-31 データ処理装置及びマイクロプロセッサ Expired - Fee Related JP3623840B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP01501696A JP3623840B2 (ja) 1996-01-31 1996-01-31 データ処理装置及びマイクロプロセッサ
TW086100225A TW334544B (en) 1996-01-31 1997-01-10 Data processor
KR1019970001570A KR100535852B1 (ko) 1996-01-31 1997-01-21 데이타처리장치
US08/791,811 US6023757A (en) 1996-01-31 1997-01-30 Data processor
US09/382,598 US6496919B1 (en) 1996-01-31 1999-08-25 Data processor
US10/281,148 US6760832B2 (en) 1996-01-31 2002-10-28 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01501696A JP3623840B2 (ja) 1996-01-31 1996-01-31 データ処理装置及びマイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH09212358A JPH09212358A (ja) 1997-08-15
JP3623840B2 true JP3623840B2 (ja) 2005-02-23

Family

ID=11877080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01501696A Expired - Fee Related JP3623840B2 (ja) 1996-01-31 1996-01-31 データ処理装置及びマイクロプロセッサ

Country Status (4)

Country Link
US (3) US6023757A (ja)
JP (1) JP3623840B2 (ja)
KR (1) KR100535852B1 (ja)
TW (1) TW334544B (ja)

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3623840B2 (ja) 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US6786420B1 (en) 1997-07-15 2004-09-07 Silverbrook Research Pty. Ltd. Data distribution mechanism in the form of ink dots on cards
US6803989B2 (en) * 1997-07-15 2004-10-12 Silverbrook Research Pty Ltd Image printing apparatus including a microcontroller
US6618117B2 (en) 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US6879341B1 (en) 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
AUPO802797A0 (en) * 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART54)
US6690419B1 (en) 1997-07-15 2004-02-10 Silverbrook Research Pty Ltd Utilising eye detection methods for image processing in a digital image camera
AUPO850597A0 (en) 1997-08-11 1997-09-04 Silverbrook Research Pty Ltd Image processing method and apparatus (art01a)
US7551201B2 (en) 1997-07-15 2009-06-23 Silverbrook Research Pty Ltd Image capture and processing device for a print on demand digital camera system
US7110024B1 (en) 1997-07-15 2006-09-19 Silverbrook Research Pty Ltd Digital camera system having motion deblurring means
US6985207B2 (en) * 1997-07-15 2006-01-10 Silverbrook Research Pty Ltd Photographic prints having magnetically recordable media
US6624848B1 (en) 1997-07-15 2003-09-23 Silverbrook Research Pty Ltd Cascading image modification using multiple digital cameras incorporating image processing
JP3414209B2 (ja) * 1997-07-30 2003-06-09 松下電器産業株式会社 プロセッサ
US6216223B1 (en) * 1998-01-12 2001-04-10 Billions Of Operations Per Second, Inc. Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US6219776B1 (en) * 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
JP3541669B2 (ja) * 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
JPH11306084A (ja) * 1998-04-23 1999-11-05 Fujitsu Ltd 情報処理装置及び記憶媒体
AUPP702098A0 (en) 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART73)
US7114056B2 (en) * 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US7117342B2 (en) * 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
US6438700B1 (en) * 1999-05-18 2002-08-20 Koninklijke Philips Electronics N.V. System and method to reduce power consumption in advanced RISC machine (ARM) based systems
AUPQ056099A0 (en) 1999-05-25 1999-06-17 Silverbrook Research Pty Ltd A method and apparatus (pprint01)
JP2001092663A (ja) * 1999-09-17 2001-04-06 Sanyo Electric Co Ltd データ処理装置
US6449712B1 (en) 1999-10-01 2002-09-10 Hitachi, Ltd. Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions
US7072817B1 (en) 1999-10-01 2006-07-04 Stmicroelectronics Ltd. Method of designing an initiator in an integrated circuit
US6434665B1 (en) 1999-10-01 2002-08-13 Stmicroelectronics, Inc. Cache memory store buffer
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6557119B1 (en) 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US7000078B1 (en) 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
US6598177B1 (en) 1999-10-01 2003-07-22 Stmicroelectronics Ltd. Monitoring error conditions in an integrated circuit
US6460174B1 (en) 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit
US6591369B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics, Ltd. System and method for communicating with an integrated circuit
US6502210B1 (en) 1999-10-01 2002-12-31 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6457118B1 (en) 1999-10-01 2002-09-24 Hitachi Ltd Method and system for selecting and using source operands in computer system instructions
US7260745B1 (en) 1999-10-01 2007-08-21 Stmicroelectronics Ltd. Detection of information on an interconnect
US6349371B1 (en) 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6496905B1 (en) 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
US6463553B1 (en) 1999-10-01 2002-10-08 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6298394B1 (en) 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US6701405B1 (en) 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US6629115B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6665816B1 (en) 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6859891B2 (en) 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US6408381B1 (en) 1999-10-01 2002-06-18 Hitachi, Ltd. Mechanism for fast access to control space in a pipeline processor
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US6567932B2 (en) 1999-10-01 2003-05-20 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6615370B1 (en) 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6633971B2 (en) 1999-10-01 2003-10-14 Hitachi, Ltd. Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US7266728B1 (en) 1999-10-01 2007-09-04 Stmicroelectronics Ltd. Circuit for monitoring information on an interconnect
US6928073B2 (en) 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
US6542983B1 (en) 1999-10-01 2003-04-01 Hitachi, Ltd. Microcomputer/floating point processor interface and method
US6601189B1 (en) 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6530047B1 (en) 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6487683B1 (en) 1999-10-01 2002-11-26 Stmicroelectronics Limited Microcomputer debug architecture and method
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6590907B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics Ltd. Integrated circuit with additional ports
US6693914B1 (en) 1999-10-01 2004-02-17 Stmicroelectronics, Inc. Arbitration mechanism for packet transmission
US6351803B2 (en) 1999-10-01 2002-02-26 Hitachi Ltd. Mechanism for power efficient processing in a pipeline processor
US6826191B1 (en) 1999-10-01 2004-11-30 Stmicroelectronics Ltd. Packets containing transaction attributes
US6820195B1 (en) 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
JP2003529151A (ja) 2000-03-27 2003-09-30 インフィネオン テクノロギーズ アーゲー 構成可能な長命令語(cliw)を使用するプロセッサにユーザ定義の実行ユニットを追加するための方法と装置
JP4640880B2 (ja) * 2000-07-14 2011-03-02 国立大学法人東京工業大学 マイクロプロセッサシステム
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
JP5372307B2 (ja) * 2001-06-25 2013-12-18 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
US7376812B1 (en) 2002-05-13 2008-05-20 Tensilica, Inc. Vector co-processor for configurable and extensible processor architecture
US7937559B1 (en) 2002-05-13 2011-05-03 Tensilica, Inc. System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US7346881B2 (en) * 2002-05-13 2008-03-18 Tensilica, Inc. Method and apparatus for adding advanced instructions in an extensible processor architecture
EP1378824A1 (en) * 2002-07-02 2004-01-07 STMicroelectronics S.r.l. A method for executing programs on multiple processors and corresponding processor system
US7162617B2 (en) * 2003-02-14 2007-01-09 Fine Arc Incorporated Data processor with changeable architecture
JP3805314B2 (ja) 2003-02-27 2006-08-02 Necエレクトロニクス株式会社 プロセッサ
WO2004092949A2 (en) * 2003-04-15 2004-10-28 Koninklijke Philips Electronics N.V. Processing system with instruction-and thread-level parallelism
US20050108509A1 (en) * 2003-11-13 2005-05-19 Safford Kevin D. Error detection method and system for processors that employs lockstepped concurrent threads
US7610476B1 (en) * 2003-12-05 2009-10-27 Advanced Micro Devices, Inc. Multiple control sequences per row of microcode ROM
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
ITMI20040600A1 (it) * 2004-03-26 2004-06-26 Atmel Corp Sistema dsp su chip a doppio processore a virgola mobile nel dominio complesso
EP1728171A2 (en) * 2004-03-26 2006-12-06 Atmel Corporation Dual-processor complex domain floating-point dsp system on chip
US7287185B2 (en) * 2004-04-06 2007-10-23 Hewlett-Packard Development Company, L.P. Architectural support for selective use of high-reliability mode in a computer system
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
KR100636596B1 (ko) * 2004-11-25 2006-10-23 한국전자통신연구원 고에너지 효율 병렬 처리 데이터 패스 구조
GB2420884B (en) * 2004-12-03 2009-04-15 Picochip Designs Ltd Processor architecture
US7461275B2 (en) * 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
JP4580879B2 (ja) * 2006-03-02 2010-11-17 富士通セミコンダクター株式会社 リコンフィグラブル回路
US8352713B2 (en) * 2006-08-09 2013-01-08 Qualcomm Incorporated Debug circuit comparing processor instruction set operating mode
US20080133879A1 (en) * 2006-12-05 2008-06-05 Electronics And Telecommunications Research Institute SIMD parallel processor with SIMD/SISD/row/column operation modes
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
KR100935858B1 (ko) * 2007-12-05 2010-01-07 한국전자통신연구원 재구성 가능한 산술연산기 및 이를 구비한 고효율 프로세서
EP2996035A1 (en) * 2008-10-15 2016-03-16 Hyperion Core, Inc. Data processing device
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
KR101032771B1 (ko) 2009-05-29 2011-05-06 광운대학교 산학협력단 구성형 프로세서에서 risc 명령어와 확장 명령어를 병렬 처리하기 위한 방법 및 그에 따른 구성형 프로세서
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
CN102804136B (zh) * 2009-06-23 2015-03-11 精工爱普生株式会社 副处理器、集成电路装置及电子设备
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
US8954714B2 (en) * 2010-02-01 2015-02-10 Altera Corporation Processor with cycle offsets and delay lines to allow scheduling of instructions through time
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
JP5565228B2 (ja) * 2010-09-13 2014-08-06 ソニー株式会社 プロセッサ
US20120210438A1 (en) * 2011-02-15 2012-08-16 Guobiao Zhang Secure Three-Dimensional Mask-Programmed Read-Only Memory
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
KR101849702B1 (ko) 2011-07-25 2018-04-17 삼성전자주식회사 외부 인트린직 인터페이스
US11150721B2 (en) * 2012-11-07 2021-10-19 Nvidia Corporation Providing hints to an execution unit to prepare for predicted subsequent arithmetic operations
GB2546465B (en) 2015-06-05 2018-02-28 Advanced Risc Mach Ltd Modal processing of program instructions
US10708976B2 (en) 2015-09-04 2020-07-07 Ford Global Technologies, Llc Methods and systems for a vehicle computing system to wirelessly communicate data
US10474549B2 (en) * 2017-07-31 2019-11-12 Oracle International Corporation System recovery using a failover processor
US10915324B2 (en) * 2018-08-16 2021-02-09 Tachyum Ltd. System and method for creating and executing an instruction word for simultaneous execution of instruction operations

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448746A (en) * 1990-05-04 1995-09-05 International Business Machines Corporation System for comounding instructions in a byte stream prior to fetching and identifying the instructions for execution
US5778423A (en) * 1990-06-29 1998-07-07 Digital Equipment Corporation Prefetch instruction for improving performance in reduced instruction set processor
DE69325826T2 (de) * 1992-01-06 2000-02-24 Hitachi Ltd Rechner mit einer Parallelverarbeitungsfähigkeit
US5309564A (en) * 1992-03-19 1994-05-03 Bradley Graham C Apparatus for networking computers for multimedia applications
JPH06250847A (ja) * 1993-02-25 1994-09-09 Fujitsu Ltd 並列論理型言語の命令をvliw方式の命令に変換する変換方式
JPH07110769A (ja) * 1993-10-13 1995-04-25 Oki Electric Ind Co Ltd Vliw型計算機
US5542059A (en) * 1994-01-11 1996-07-30 Exponential Technology, Inc. Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order
US5574927A (en) * 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US6496922B1 (en) * 1994-10-31 2002-12-17 Sun Microsystems, Inc. Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5752035A (en) * 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
US5699536A (en) * 1995-04-13 1997-12-16 International Business Machines Corporation Computer processing system employing dynamic instruction formatting
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5774686A (en) * 1995-06-07 1998-06-30 Intel Corporation Method and apparatus for providing two system architectures in a processor
US5826089A (en) * 1996-01-04 1998-10-20 Advanced Micro Devices, Inc. Instruction translation unit configured to translate from a first instruction set to a second instruction set
JP3623840B2 (ja) 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5784636A (en) * 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
US5828897A (en) * 1996-12-19 1998-10-27 Raytheon Company Hybrid processor and method for executing incrementally upgraded software
US6202143B1 (en) * 1997-08-21 2001-03-13 Samsung Electronics Co., Ltd. System for fetching unit instructions and multi instructions from memories of different bit widths and converting unit instructions to multi instructions by adding NOP instructions

Also Published As

Publication number Publication date
US6760832B2 (en) 2004-07-06
KR970059916A (ko) 1997-08-12
JPH09212358A (ja) 1997-08-15
US20030065911A1 (en) 2003-04-03
US6496919B1 (en) 2002-12-17
TW334544B (en) 1998-06-21
KR100535852B1 (ko) 2006-05-10
US6023757A (en) 2000-02-08

Similar Documents

Publication Publication Date Title
JP3623840B2 (ja) データ処理装置及びマイクロプロセッサ
KR100208889B1 (ko) 병렬처리장치 및 병렬처리방법
EP1010065B1 (en) Coprocessor data access control
US7000094B2 (en) Storing stack operands in registers
US20110191569A1 (en) Data processing device and semiconductor integrated circuit device
KR100462951B1 (ko) Risc 구조를 갖는 8 비트 마이크로콘트롤러
US8176478B2 (en) Process for running programs on processors and corresponding processor system
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
GB2317469A (en) Data processing system register control
JP2581236B2 (ja) データ処理装置
KR20010050792A (ko) 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JPH03233630A (ja) 情報処理装置
JP3829504B2 (ja) 情報処理装置
JP2005234968A (ja) 演算処理装置
JPH04104350A (ja) マイクロプロセッサ
JP2636821B2 (ja) 並列処理装置
JPH0524537B2 (ja)
KR930002324B1 (ko) 기억버퍼를 갖는 마이크로 프로세서
JPH0666052B2 (ja) メモリ内容を機械レジスタに自動的に写像する計算機
JP2785820B2 (ja) 並列処理装置
JP2696578B2 (ja) データ処理装置
JP2522564B2 (ja) プログラマブルコントロ―ラ
JPH11203133A (ja) 情報処理装置
JP2000066893A (ja) 演算処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040105

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041025

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: 20041124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041126

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: 20071203

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081203

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081203

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091203

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101203

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101203

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101203

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101203

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111203

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121203

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121203

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees