JP3829504B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP3829504B2
JP3829504B2 JP31478798A JP31478798A JP3829504B2 JP 3829504 B2 JP3829504 B2 JP 3829504B2 JP 31478798 A JP31478798 A JP 31478798A JP 31478798 A JP31478798 A JP 31478798A JP 3829504 B2 JP3829504 B2 JP 3829504B2
Authority
JP
Japan
Prior art keywords
unit
address
auxiliary
cpu
bus
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
JP31478798A
Other languages
English (en)
Other versions
JPH11296372A (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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP31478798A priority Critical patent/JP3829504B2/ja
Priority to EP99103007A priority patent/EP0936540B1/en
Priority to DE69932657T priority patent/DE69932657T2/de
Priority to US09/250,134 priority patent/US6249858B1/en
Publication of JPH11296372A publication Critical patent/JPH11296372A/ja
Application granted granted Critical
Publication of JP3829504B2 publication Critical patent/JP3829504B2/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/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Description

【0001】
【発明の属する技術分野】
本発明は、中央演算装置(CPU)と補助演算装置とがバス接続された構成の情報処理装置に関する。
【0002】
【従来の技術】
一般に、マイクロコンピュータにおいて、CPUが演算処理を行う際の動作内容は、ROMやRAM等の周辺メモリから実行すべき命令を読み出す命令読出ステージ(フェッチステージ)と、その読み出した命令の内容を解読する解読ステージ(デコードステージ)と、その解読した命令の内容を実行する実行ステージと、周辺メモリとの間でデータのやり取りを行うメモリアクセスステージと、内部レジスタや周辺メモリへのデータ書き込みを行うライトバックステージとの、5つのステージからなる。
【0003】
また、近年の機器制御等においては、高速で且つ高精度な制御が求められており、それに伴い、機器制御等に用いられるマイクロコンピュータに対しては、CPUの高速化(演算速度の向上)とデジタル信号処理能力の向上とが要求されている。
【0004】
ここで、CPUの高速化は、上記5つのステージを並列的に行う所謂パイプライン処理によって、ある程度実現することができる。
これに対して、デジタル信号処理能力の向上は、CPUがパイプライン処理を行うようにしても実現することができず、そのためには、例えば以下の2つの方法を採ることが考えられる。
【0005】
まず、第1の方法としては、CPUとは全く別にDSP(デジタル・シグナル・プロセッサ)を搭載する。
また、第2の方法としては、CPUと、CPUでは高速に実行することができない特殊な演算(例えば、対数演算(log)や積和演算等)を行う補助演算装置とを、バスを介して接続し、その補助演算装置がCPUからの起動指令に応じて上記特殊演算を行うようにする。
【0006】
【発明が解決しようとする課題】
ここで、上記第1の方法では、DSP自体の回路規模が大きいため、LSIのチップサイズを小さくすることができず実用的ではない。
よって、デジタル信号処理能力を向上させるためには、一般に上記第2の方法を採ることとなるが、その場合には、CPUと補助演算装置とが同時に演算処理を行うことができなかった。つまり、CPUと補助演算装置とが同時に演算処理を行うようにすると、仮に両者が演算処理中に異なる周辺メモリをアクセスするとしても、CPUと補助演算装置との両方から同じバス上へデータが出されることとなり、周辺メモリへの適切なアクセスが不能になってしまうからである。
【0007】
このため、上記第2の方法を採った場合には、比較的小さい回路規模でデジタル信号処理能力を向上させることができるものの、演算速度を向上させるのには限界が生じていた。
本発明は、こうした問題に鑑みなされたものであり、中央演算装置と補助演算装置とがバスを介して接続された構成の情報処理装置において、その演算速度の高速化を達成することを目的としている。
【0008】
【課題を解決するための手段、及び発明の効果】
上記目的を達成するためになされた請求項1に記載の情報処理装置では、中央演算装置と補助演算装置とがバスを介して接続されているが、特に、前記バスにて中央演算装置と補助演算装置とを接続する経路上に、その経路を制御信号に応じて連通/遮断するスイッチが設けられている。
【0009】
この請求項1に記載の情報処理装置によれば、補助演算装置が中央演算装置からの起動指令に応じて演算処理を行う際に、前記スイッチへの制御信号を切り換えて該スイッチを解放させることにより、スイッチよりも中央演算装置側のバス(以下、「中央演算装置系のバス」という)と、スイッチよりも補助演算装置側のバス(以下、「補助演算装置系のバス」という)とを分離することができる。すると、補助演算装置は、中央演算装置の影響を受けることなく、補助演算装置系のバスに接続されたメモリにアクセスして演算処理を進めることができ、また、中央演算装置も、補助演算装置の影響を受けることなく、中央演算装置系のバスに接続されたメモリにアクセスして演算処理を進めることができる。
【0010】
例えば、中央演算装置系のバスに、プログラムを格納したROMと中央演算装置の演算結果等を一時的に格納する第1のRAMとを接続しておくと共に、補助演算装置系のバスに、補助演算装置による演算対象のデータ(演算データ)を一時的に格納する第2のRAMを接続しておき、中央演算装置が、補助演算装置を起動させる前に(つまり、スイッチが解放される前に)、上記第2のRAMに演算データを書き込んでおくようにすれば、補助演算装置は上記第2のRAMに書き込まれた演算データを確実に読み出して所定の演算処理を行うことができ、それと並行して、中央演算装置は、自己の演算処理を進めることができる。
【0011】
このように、請求項1に記載の情報処理装置によれば、中央演算装置と補助演算装置とでデータを共有しつつ、中央演算装置と補助演算装置との並列処理動作が可能となり、その結果、演算速度の高速化を達成することができる。
そして更に、請求項に記載の情報処理装置では、補助演算装置が、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えている。そして、補助演算装置は、前記レジスタ部の何れかのアドレスに中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行すると共に、その演算処理の実行状態に応じて前記スイッチを開閉制御する。
【0012】
例えば、補助演算装置は、演算処理を実行している間、前記スイッチを常に解放させるように構成することができる。また、補助演算装置は、補助演算装置系のバスに接続されたメモリにアクセスしなければならない演算処理を実行する場合にのみ、前記スイッチを解放させるように構成しても良い。
【0013】
このような請求項に記載の情報処理装置によれば、中央演算装置が、補助演算装置への起動指令として、前記レジスタ部の所望のアドレスにデータを書き込むだけで、所望の演算処理を補助演算装置に実行させることができる。そして、補助演算装置の動作中に前記スイッチが解放させれるため、中央演算装置は、補助演算装置と並列に演算処理を行うことができ、その結果、演算速度の高速化が達成される。
【0014】
次に、請求項に記載の情報処理装置では、上記請求項1に記載の情報処理装置において、補助演算装置が、前記バス(特に、補助演算装置系のバス)とは予め分離された専用バスに接続されている。
このような請求項に記載の情報処理装置によれば、補助演算装置は、補助演算装置系のバスに接続されたメモリ(例えば、上記第2のRAM)と、前記専用バスに接続されたメモリとの各々から、演算対象の2つのデータを同時に読み出すことができるため、その両データを用いた演算処理を効率良く実行することができるようになる。
【0015】
特に、請求項に記載の如く、前記専用バスに、補助演算装置が演算に用いる定数データを記憶したメモリを接続しておけば、補助演算装置は、中央演算装置によって上記第2のRAMに書き込まれた演算対象としての演算データaと、前記専用バスに接続されたメモリ内の定数データbとを同時に読み出して、例えば、その演算データaに定数データbを乗ずる乗算処理等を効率良く実行することができる。そして更に、例えば、補助演算装置が、上記両データa,bの読み出しと、両データa,bの乗算結果の加算とを繰り返せば、デジタルフィルタ等のための積和演算「Σ(a×b)」を高速に且つ中央演算装置と並列に行うことができるようになり、非常に有利である。
【0016】
一方、上記目的を達成するためになされた請求項に記載の情報処理装置では、請求項に記載の情報処理装置と同様に、中央演算装置と補助演算装置とがバス(以下、第1のバスという)を介して接続されていると共に、補助演算装置は、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えており、該レジスタ部の何れかのアドレスに中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行する。
【0017】
このため、請求項に記載の情報処理装置においても、中央演算装置が、補助演算装置への起動指令として、前記レジスタ部の所望のアドレスに第1のバスを介してデータを書き込むことにより、補助演算装置にて所望の演算処理が実行されることとなる。
【0018】
ここで特に、請求項に記載の情報処理装置では、請求項1〜に記載の情報処理装置の如きスイッチを設けるのではなく、互いに独立した2組のポートの各々を介して2つのデータの読み出し及び書き込み(リード/ライト)を同時に行うことができるデュアルポートメモリを備えており、そのデュアルポートメモリの2組のポートのうち、一方のポートが上記第1のバス(中央演算装置と補助演算装置とを接続するバス)に接続され、他方のポートが第1のバスとは予め分離された第2のバスを介して補助演算装置に接続されている。
【0019】
よって、この請求項に記載の情報処理装置によれば、中央演算装置が、補助演算装置を起動させる前に(つまり、補助演算装置のレジスタ部のアドレスに第1のバスを介してデータを書き込む前に)、第1のバス及びデュアルポートメモリの一方のポートを介して該デュアルポートメモリに演算対象の演算データを書き込んでおくようにすれば、補助演算装置は、そのデュアルポートメモリに書き込まれた演算データを、該デュアルポートメモリの他方のポート及び第2のバスを介し読み出して、中央演算装置の影響を受けることなく所定の演算処理を行うことができる。そして、それと並行して、中央演算装置は、補助演算装置の影響を受けることなく、デュアルポートメモリや第1のバスに接続された他のメモリ(例えば、プログラムを格納したROM)にアクセスして、演算処理を進めることができる。
【0020】
このように、請求項に記載の情報処理装置によっても、中央演算装置と補助演算装置とでデータを共有しつつ、中央演算装置と補助演算装置との並列処理動作が可能となり、その結果、演算速度の高速化を達成することができる。
次に、請求項に記載の情報処理装置では、上記請求項に記載の情報処理装置において、補助演算装置が、請求項に記載の情報処理装置と同様に、前記第1のバス及び前記第2のバスとは予め分離された専用バスに接続されている。
【0021】
このような請求項に記載の情報処理装置によれば、請求項に記載の情報処理装置と同様に、補助演算装置は、デュアルポートメモリと、前記専用バスに接続されたメモリとの各々から、演算対象の2つのデータを同時に読み出すことができるため、その両データを用いた演算処理を効率良く実行することができるようになる。
【0022】
そして特に、請求項に記載の如く、前記専用バスに、補助演算装置が演算に用いる定数データを記憶したメモリを接続しておけば、請求項に記載の情報処理装置と同様に、補助演算装置は、中央演算装置によってデュアルポートメモリに書き込まれた演算対象としての演算データaと、前記専用バスに接続されたメモリ内の定数データbとを同時に読み出して、例えば、その演算データaに定数データbを乗ずる乗算処理等を効率良く実行することができ、更に、例えば、補助演算装置が、上記両データa,bの読み出しと、両データa,bの乗算結果の加算とを繰り返せば、デジタルフィルタ等のための積和演算「Σ(a×b)」を高速に且つ中央演算装置と並列に行うことができるようになる。
【0023】
【発明の実施の形態】
以下、本発明が適用された実施形態の情報処理装置としてのマイクロコンピュータについて、図面を用いて説明する。
まず図1は、第1実施形態のマイクロコンピュータM1の構成を表すブロック図である。
【0024】
図1に示すように、本第1実施形態のマイクロコンピュータM1は、一般的な加減算,論理演算,及びシフト演算等を実行可能な中央演算装置としての周知のCPU1と、CPU1が実行するプログラムが予め格納されたROM2と、CPU1の演算結果等を一時的に格納するためのRAM3と、CPU1では高速に実行することができない特殊な演算(例えば、階乗,exp,log,sin,cos,tan等)を行う補助演算装置4と、補助演算装置4が演算の対象とする演算データ等を一時的に格納するためのRAM5とを備えている。
【0025】
そして、CPU1と、補助演算装置4と、周辺メモリとしてのROM2及びRAM3,5は、データバス6とアドレスバス7によって接続されている。尚、本第1実施形態では、データバス6とアドレスバス7が、請求項1に係る発明におけるバスに相当している。
【0026】
ここで特に、データバス6とアドレスバス7との各々において、CPU1と補助演算装置4とを接続する経路上には、その経路を補助演算装置4(詳しくは、後述する補助演算装置4内の制御部4−1)からの制御信号Sに応じて連通/遮断する分離スイッチ8,9が設けられている。そして、分離スイッチ8,9よりもCPU1側(図1にて分離スイッチ8,9よりも左側)のデータバス6とアドレスバス7に、上記ROM2と上記RAM3が接続されており、分離スイッチ8,9よりも補助演算装置4側(図1にて分離スイッチ8,9よりも右側)のデータバス6とアドレスバス7に、上記RAM5が接続されている。
【0027】
また、マイクロコンピュータM1には、CPU1の割り込み動作を制御する割り込みコントローラ(INTC)10が設けられており、その割り込みコントローラ10は、制御線11を介して補助演算装置4(詳しくは、補助演算装置4内の制御部4−1)に接続されていると共に、制御線12を介してCPU1に接続されている。そして、割り込みコントローラ10は、補助演算装置4から制御線11を介して割り込み待機信号を受けると、CPU1が割り込み動作に移行するのを禁止し、また、補助演算装置4から制御線11を介して割り込みリクエスト信号を受けると、CPU1に所定の割り込みルーチンを実行させる。
【0028】
次に、補助演算装置4は、演算を行う演算部4−2と、CPU1によって指定された内容の演算を演算部4−2に実行させるための制御を行う制御部4−1とを備えており、演算部4−2と制御部4−1は制御線4−3を介して互いに接続されている。また、演算部4−2がデータバス6に接続され、制御部4−1がアドレスバス7に接続されている。
【0029】
そして、演算部4−2は、CPU1によりアクセス可能なレジスタ部としてのレジスタユニット4−2−1と、演算動作の中核を成す演算ユニット4−2−2とを備えている。また、制御部4−1は、デコーダユニット4−1−1と、周辺メモリをアクセスするためにアドレスバス7へアドレスを出力するアドレス生成ユニット4−1−2とを備えている。
【0030】
ここで、図2に示すように、演算部4−2のレジスタユニット4−2−1には、複数種類の演算内容に夫々対応したアドレスA0 ,A1 ,A2 ,…が付与されている。換言すれば、レジスタユニット4−2−1の各アドレスA0 ,A1 ,A2 ,…には、予め演算内容が夫々定められている。
【0031】
そして、補助演算装置4は、CPU1によってレジスタユニット4−2−1の何れかのアドレスAx (但し、x は正の整数)にデータが書き込まれると、そのアドレスAx に対応した内容の演算処理を、当該アドレスAx に書き込まれたデータを用いて実行すると共に、その演算処理の実行中に、制御信号Sにより分離スイッチ8,9を開いて、分離スイッチ8,9よりもCPU1側のデータバス6及びアドレスバス7と、分離スイッチ8,9よりも補助演算装置4側のデータバス6及びアドレスバス7とが分離された状態にする。
【0032】
尚、補助演算装置4が演算処理を実行している最中に、CPU1が補助演算装置4の起動命令(即ち、補助演算装置4に演算処理を行わせる命令であって、レジスタユニット4−2−1の何れかのアドレスAx にデータを書き込む命令)を実行すると、その際には分離スイッチ8,9が開いているため、CPU1が補助演算装置4に新たな演算処理を行わせようとしたにも拘わらず補助演算装置4側でその演算処理が行われない、という不具合が生じる。
【0033】
そこで、本実施形態では、補助演算装置4が、演算処理の実行中に、図1に示す制御線13を介してCPU1へハイレベルの信号を出力し、CPU1は、上記制御線13の信号がハイレベルである時には、補助演算装置4の起動命令を実行しないようにしている。尚、上記不具合を解消するための手法としては、例えば、CPU1の内部に、補助演算装置4の起動命令を実行した時にフラグをセットし、補助演算装置4での演算処理が終了した時に上記フラグをリセットするユニットを設け、そのフラグがセットされている時にCPU1が補助演算装置4の起動命令を実行しないように構成したり、或いは、補助演算装置4が、CPU1からのリクエスト信号に対して、演算処理を実行していない場合にのみ応答信号(いわゆるアック信号)を返すようにし、CPU1は、補助演算装置4の起動命令を実行する直前に、補助演算装置4へ上記リクエスト信号を出力して、補助演算装置4から応答信号が返って来なければ、その起動命令を実行しないようにしても良い。
【0034】
また、本実施形態では、演算部4−2への演算データの取得方法として、直接アドレッシングモードと間接アドレッシングモードとの2種類を採用している。つまり、直接アドレッシングモードでは、CPU1によってレジスタユニット4−2−1のアドレスAx に書き込まれたデータが、そのまま演算データとなり、間接アドレッシングモードでは、CPU1によってレジスタユニット4−2−1のアドレスAx に書き込まれたデータが、演算データの格納されている周辺メモリ(本実施形態ではRAM5)のアドレスを示すアドレスポインタとなる。
【0035】
このため、図2に示すように、レジスタユニット4−2−1には、同じ演算に対応するアドレスとして、直接アドレッシングモード用のアドレスと、間接アドレッシングモード用のアドレスとが設けられている。例えば、アドレスA0 が直接アドレッシングモードの階乗演算に対応し、アドレスA10が間接アドレッシングモードの階乗演算に対応している。また例えば、アドレスA1 が直接アドレッシングモードのexp演算に対応し、アドレスA11が間接アドレッシングモードのexp演算に対応している。
【0036】
そこで以下、補助演算装置4の動作について、具体例を挙げて説明する。
最初に、補助演算装置4がexp演算を間接アドレッシングモードで行う場合を例に挙げて説明する。
(K1)まず、CPU1がメモリ転送命令によりレジスタユニット4−2−1のアドレスA11にデータを書き込むと、制御部4−1のデコーダユニット4−1−1は、上記アドレスA11にデータが書き込まれたことから、CPU1によって指定された演算内容が間接アドレッシングモードのexp演算であると判別する。
【0037】
(K2)そして、デコーダユニット4−1−1は、上記分離スイッチ8,9が開くように制御信号Sを出力する。
すると、CPU1と補助演算装置4とでバス6,7が分離された状態となる。つまり、分離スイッチ8,9よりもCPU1側のデータバス6及びアドレスバス7と、分離スイッチ8,9よりも補助演算装置4側のデータバス6及びアドレスバス7とが分離された状態になる。
【0038】
(K3)次に、デコーダユニット4−1−1は、上記アドレスA11に書き込まれたデータを、制御線4−3を介して取り込み、そのデータをアドレス生成ユニット4−1−2からアドレスバス7へ出力させる。また、これと同時に、デコーダユニット4−1−1は、RAM5へメモリ読み出し信号(リード信号)を出力して、上記アドレスA11に書き込まれたデータをアドレスポインタとするRAM5内の演算データを、演算部4−2の演算ユニット4−2−2にデータバス6を介して取り込ませる。
【0039】
特に、この状態においては、分離スイッチ8,9が開いてCPU1と補助演算装置4とでバス6,7が分離された状態となっているため、補助演算装置4は、CPU1の影響を受けることなくRAM5にアクセスすることができ、また、CPU1も、当該補助演算装置4の影響を受けることなくROM2やRAM3にアクセスして演算処理を進めることができる。
【0040】
(K4)そして、デコーダユニット4−1−1は、演算ユニット4−2−2へ、制御線4−3を介してexp演算用の制御信号を送る。
すると、演算ユニット4−2−2は、RAM5から取り込んだ上記演算データに対してexp演算を行い、その演算結果を、レジスタユニット4−2−1のアドレスのうち演算内容が定められていない特定の演算結果用アドレスに格納する。尚、この演算結果用アドレスは、例えばレジスタユニット4−2−1の最終アドレスAm として設定されている。
【0041】
(K5)こうして演算ユニット4−2−2での演算が終わると、デコーダユニット4−1−1は、分離スイッチ8,9が閉じるように制御信号Sを出力する。そして、これにより、補助演算装置4の動作が終了する。
すると、分離スイッチ8,9よりもCPU1側のデータバス6及びアドレスバス7と、分離スイッチ8,9よりも補助演算装置4側のデータバス6及びアドレスバス7とが接続されて、元の状態に戻ることとなる。そして、CPU1は、レジスタユニット4−2−1の上記演算結果用アドレスに格納されたデータを読み出すことにより、exp演算の結果を取得することができる。
【0042】
ここで、上記(K1)〜(K5)の動作内容を、CPU1と補助演算装置4との動作タイミングを示す図3のタイムチャートを用いて、より詳細に説明する。尚、ここでは、CPU1が一般的な5段パイプライン処理を行うCPUであるものとする。そして、5段パイプライン処理を行うCPUとは、図3における「CPU側の動作タイミング」の欄に示すように、演算処理機能を、IF(命令読出:フェッチ),ID(命令解読:デコード),EX(実行),MA(メモリアクセス),及びWB(ライトバツク)の5つのステージに分割し、それら各ステージの動作を、クロックCLKに同期し且つ1つずつずらして並列に行うCPUのことである。つまり、CPU1は、IFステージにて、ROM2から命令を読み出し、IDステージにて、IFステージで読み出した命令をCPU1内のデコーダユニット(図示せず)により解読し、EXステージにて、IDステージで解読した命令の内容をCPU1内の演算ユニット(図示せず)により演算する。また、CPU1は、MAステージにて、EXステージでの演算結果をアドレスとして、データバス6及びアドレスバス7に接続されているメモリ(ROM2,RAM3,RAM5,補助演算装置4のレジスタユニット4−2−1)にアクセス(データ読み出し或いは書き込み)し、WBステージにて、EXステージでの演算結果又はMAステージで上記メモリから読み出したデータを、当該CPU1の内部レジスタ(図示せず)に書き込む。
【0043】
まず、図3における「CPU側の動作タイミング」の欄の最初の命令処理C1のIFステージST1で、CPU1が、補助演算装置4にexp演算を間接アドレッシングモードで行わせる起動命令(つまり、レジスタユニット4−2−1のアドレスA11にデータを書き込む命令)をROM2から読み出したとすると、CPU1は、その命令処理C1のMAステージST2にて、補助演算装置4に対し、チップイネーブル信号CEN及びライトイネーブル信号WEN(図1にて図示省略)をアクティブレベルであるロウレベルにする。そして更に、CPU1は、アドレスバス7へ、アドレス値“A11”を出力すると共に、データバス6へ、レジスタユニット4−2−1のアドレスA11に書き込むべきデータを出力する。
【0044】
すると、補助演算装置4では、図3における「補助演算装置側の動作タイミング」の欄のIDステージST3にて、デコーダユニット4−1−1が、上記チップイネーブル信号CEN及びライトイネーブル信号WENと、上記アドレス値“A11”とにより、CPU1によって指定された演算内容が間接アドレッシングモードのexp演算であると判別する。また、同IDステージST3にて、デコーダユニット4−1−1は、上記アドレス値“A11”に基づきレジスタユニット4−2−1から該当するデータ(つまり、CPU1によって書き込まれたデータ)を読み出して、アドレス生成ユニット4−1−2にアドレスバス7へ出力すべきアドレスを生成させる。
【0045】
そして、次のMAステージST4にて、デコーダユニット4−1−1は、分離スイッチ8,9への制御信号Sをハイレベルにして、その両分離スイッチ8,9を開くと共に、アドレス生成ユニット4−1−2で生成したアドレスをアドレスバス7へ出力させる。また、これと同時に、デコーダユニット4−1−1は、RAM5に対するチップイネーブル信号及びアウトプットイネーブル信号(図1及び図3にて図示省略)をアクティブレベルであるロウレベルにして、RAM5内の該当するアドレスの演算データを、データバス6を介し当該補助演算装置4に取り込む。
【0046】
そして更に、続くEXステージ(EX1)ST5にて、デコーダユニット4−1−1は、分離スイッチ8,9への制御信号Sをロウレベルにして、その両分離スイッチ8,9を閉じる。また、このEXステージ(EX1)ST5と、それに続くEXステージ(EX2)ST6とで、演算ユニット4−2−2によりexp演算が行われる。尚、補助演算装置4側でのEXステージのサイクル数は、命令によって異なり、図3は2サイクルの場合を例示している。また、分離スイッチ8,9への制御信号Sは、EXステージの後のWBステージST7でロウレベルにしても良い。
【0047】
そして、補助演算装置4では、WBステージST7にて、演算ユニット4−2−2による演算結果がレジスタユニット4−2−1の演算結果用アドレスに書き込まれる。
また、CPU1は、補助演算装置4のレジスタユニット4−2−1からデータを読み出す命令により、例えば、図3における「CPU側の動作タイミング」の欄の6番目の命令処理C6のMAステージST8にて、補助演算装置4に対し、チップイネーブル信号CEN及びアウトプットイネーブル信号OEN(図1にて図示省略)をアクティブレベルであるロウレベルにすると共に、アドレスバス7へ上記演算結果用アドレスに応じたアドレス値を出力して、レジスタユニット4−2−1の上記演算結果用アドレスからデータバス6を介して演算結果を読み出し、その読み出した演算結果を自己の内部レジスタに書き込むことにより、exp演算の結果を取得することができる。
【0048】
尚、例えば、CPU1がレジスタユニット4−2−1のアドレスA10にデータを書き込んだ場合には、上記(K1)〜(K5)と同様の手順で、そのアドレスA10に書き込まれたデータをアドレスポインタとするRAM5内の演算データに対し、階乗演算が行われることとなる。同様に、CPU1がレジスタユニット4−2−1のアドレスA12にデータを書き込んだ場合には、上記(K1)〜(K5)と同様の手順で、そのアドレスA12に書き込まれたデータをアドレスポインタとするRAM5内の演算データに対し、log演算が行われることとなる。
【0049】
次に、補助演算装置4がexp演算を直接アドレッシングモードで行う場合を例に挙げて説明する。
(D1)まず、CPU1がメモリ転送命令によりレジスタユニット4−2−1のアドレスA1 にデータを書き込むと、デコーダユニット4−1−1は、上記アドレスA1 にデータが書き込まれたことから、CPU1によって指定された演算内容が直接アドレッシングモードのexp演算であると判別する。
【0050】
(D2)そして、デコーダユニット4−1−1は、上記分離スイッチ8,9が開くように制御信号Sを出力する。
(D3)そして更に、デコーダユニット4−1−1は、演算ユニット4−2−2へ、制御線4−3を介してexp演算用の制御信号を送る。
【0051】
すると、演算ユニット4−2−2は、レジスタユニット4−2−1のアドレスA1 に書き込まれたデータを演算データとしてexp演算を行い、その演算結果を、レジスタユニット4−2−1の上記演算結果用アドレスに格納する。
(D4)こうして演算ユニット4−2−2での演算が終わると、デコーダユニット4−1−1は、分離スイッチ8,9が閉じるように制御信号Sを出力する。そして、これにより、補助演算装置4の動作が終了する。
【0052】
尚、例えば、CPU1がレジスタユニット4−2−1のアドレスA0 にデータを書き込んだ場合には、上記(D1)〜(D4)と同様の手順で、そのアドレスA0 に書き込まれたデータを演算データとして、階乗演算が行われることとなる。同様に、CPU1がレジスタユニット4−2−1のアドレスA2 にデータを書き込んだ場合には、上記(D1)〜(D4)と同様の手順で、そのアドレスA2 に書き込まれたデータを演算データとして、log演算が行われることとなる。
【0053】
次に、マイクロコンピュータM1の全体動作の一例について、図4を用いて説明する。
まず、図4(b)において、プログラムAとプログラムBは、CPU1で順次繰り返し処理されるメインルーチンのプログラム(メインプログラム)であり、プログラムCは、CPU1で処理される割り込みルーチンのプログラムである。
【0054】
そして、プログラムDは、プログラムCによる演算結果を使用する割り込みルーチンのプログラムであり、補助演算装置4で処理される。つまり、プログラムDは、前述の特殊演算(階乗,log,exp,sin,cos,tan等)の何れかを行うためのものであり、実際には、補助演算装置4の演算動作である。
【0055】
また、プログラムEは、プログラムDによる演算結果(補助演算装置4の演算結果)を使用する割り込みルーチンのプログラムであり、CPU1によって処理される。
尚、プログラムCの最後の2命令は、プログラムDを起動させる起動命令(即ち、補助演算装置4内のレジスタユニット4−2−1の何れかのアドレスにデータを書き込んで、補助演算装置4を作動させる命令)と、当該プログラムCからメインプログラムA,Bに戻るための割り込みリターン命令とになっている。また、プログラムEの最後の命令は、当該プログラムEからメインプログラムA,Bに戻るための割り込みリターン命令になっている。
【0056】
このような前提のもとで、CPU1がメインプログラムA,Bを実行している最中に非同期の割り込みが発生すると、CPU1は、自己の内部レジスタ,プログラムカウンタ,及びステータスレジスタの退避等を行った後、図4(b)の矢印Y1に示すように、プログラムCの実行を開始する。
【0057】
そしてその後、CPU1がプログラムCの最後の2命令(プログラムDの起動命令と、割り込みリターン命令)を実行すると、図4(b)の矢印Y2に示すように、補助演算装置4が動作を開始してプログラムDの処理(即ち、前述の特殊演算)が行われると共に、図4(b)の矢印Y3に示すように、CPU1はメインプログラムA,Bの実行を再開することとなる。
【0058】
ここで、プログラムDの実行中(即ち、補助演算装置4が動作している間)は、前述したように、補助演算装置4の制御部4−1(詳しくは、デコーダユニット4−1−1)により分離スイッチ8,9が開かれて、CPU1と補助演算装置4とでバス6,7が分離された状態となる。よって、この状態では、CPU1によるメインプログラムA,Bの処理と補助演算装置4によるプログラムDの処理とが並列に行われることとなる。
【0059】
そして、プログラムDが終了すると(即ち、補助演算装置4の動作が終了すると)、前述したように、補助演算装置4の制御部4−1により分離スイッチ8,9が閉じられて、CPU1と補助演算装置4とがバス6,7で接続された元の状態に戻ることとなる。また、これと同時に、上記制御部4−1から割り込みコントローラ10へ割り込みリクエスト信号が出力され、それに伴い、CPU1は、図4(b)の矢印Y4に示すように、プログラムEの実行を開始することとなる。
【0060】
その後、CPU1がプログラムEの最後の命令(割り込みリターン命令)を実行すると、CPU1は、図4(b)の矢印Y5に示すように、メインプログラムA,Bの実行を再開することとなる。
このように本第1実施形態のマイクロコンピュータM1では、補助演算装置4の動作中に、分離スイッチ8,9を開いて、CPU1と補助演算装置4とでバス6,7が分離された状態にしているため、CPU1と補助演算装置4との並列処理動作が可能となる。よって、図4(b)に例示した如く、メインプログラムA,BとプログラムDとを並列に処理することができ、その結果、当該マイクロコンピュータM1全体の演算速度の高速化が達成される。
【0061】
即ち、仮に分離スイッチ8,9を備えていなければ、補助演算装置4によるRAM5へのアクセスと、CPU1によるROM2或いはRAM3へのアクセスとが同時に行えないため、PCU1と補助演算装置4とが同時に動作することができない。よって、この場合には、図4(a)に示すように、プログラムC,D,Eを順次実行してからメインプログラムA,Bに復帰しなければならず、特に、プログラムDの実行中(補助演算装置4の動作中)にCPU1によるメインプログラムA,Bの実行が停止されることとなり、演算速度を高速化することができない。これに対して、本第1実施形態のマイクロコンピュータM1によれば、そのような問題を解決することができるのである。
【0062】
また更に、本第1実施形態のマイクロコンピュータM1では、補助演算装置4が、CPU1によってレジスタユニット4−2−1の何れかのアドレスAx にデータが書き込まれると、そのアドレスAx に対応した内容の演算処理を該アドレスAx に書き込まれたデータを用いて実行すると共に、その演算処理の実行中に分離スイッチ8,9を開けるようにしている。このため、CPU1は、レジスタユニット4−2−1の所望のアドレスにデータを書き込むだけで、所望の演算処理を補助演算装置4に実行させることができる。
【0063】
尚、本第1実施形態では、補助演算装置4の制御部4−1が、直接アドレッシングモードの場合にも分離スイッチ8,9を開くようにしたが、周辺メモリ(RAM5)にアクセスしなければならない間接アドレッシングモードの場合にのみ、分離スイッチ8,9を開くようにしても良い。
【0064】
次に、第2実施形態のマイクロコンピュータについて説明する。
まず図5は、本第2実施形態のマイクロコンピュータM2の構成を表すブロック図である。
図5に示すように、第2実施形態のマイクロコンピュータM2は、第1実施形態のマイクロコンピュータM1(図1)に対して、補助演算装置4が特定の演算を行う際に用いる定数データを予め格納したROM14と、そのROM14と補助演算装置4(詳しくは、補助演算装置4の演算部4−2)とを接続する専用のデータバス(以下、専用データバスという)15と、上記ROM14と補助演算装置4(詳しくは、補助演算装置4の制御部4−1)とを接続する専用のアドレスバス(以下、専用アドレスバスという)16とを、追加して備えている。つまり、補助演算装置4が、データバス6及びアドレスバス7とは予め分離された専用データバス15と専用アドレスバス16に接続されており、その専用データバス15と専用アドレスバス16には、補助演算装置4が演算に用いる定数データを格納したROM14が接続されている。
【0065】
尚、本第2実施形態では、上記専用データバス15と専用アドレスバス16が、請求項2,3に係る発明における専用バスに相当しており、上記ROM14が、定数データを記憶したメモリに相当している。
そして、本第2実施形態のマイクロコンピュータM2において、ROM14には、上記定数データとして、少なくとも、補助演算装置4がデジタルフィルタ処理用の積和演算「Σ(a[n]×b[n]):n=0,1,2,…,N−1」を行うために用いる複数のフィルタ係数b[n]が格納されている。
そして更に、本第2実施形態のマイクロコンピュータM2では、図6に示すように、補助演算装置4の演算部4−2に備えられたレジスタユニット4−2−1のアドレスのうち、例えば、3つのアドレスA20,A21,A22が、上記デジタルフィルタ処理用の積和演算に対応付けられている。
【0066】
具体的には、アドレスA20には、積和演算の最初の演算データa[0]が格納された周辺メモリ(本実施形態ではRAM5)のアドレスを示すアドレスポインタがCPU1によって書き込まれ、また、アドレスA21には、積和演算の最初のフィルタ係数b[0]が格納されているROM14のアドレスを示すアドレスポインタがCPU1によって書き込まれるようになっている。そして、アドレスA22には、積和の回数(フィルタ次数)を示すデータNがCPU1によって書き込まれるようになっている。
【0067】
そして、本第2実施形態において、補助演算装置4は、以下のような手順で積和演算の処理を行う。尚、RAM5には、予めCPU1により積和演算の演算データ(a[n]:n=0,1,2,…,N−1)が書き込まれているものとする。一方、補助演算装置4が積和演算以外の特殊演算を行う場合の動作は、前述した第1実施形態と同じである。
【0068】
(W1)まず、CPU1がメモリ転送命令によりレジスタユニット4−2−1のアドレスA20,A21,A22にデータを順次書き込むと、制御部4−1のデコーダユニット4−1−1は、上記アドレスA22にデータが書き込まれたことから、CPU1によって指定された演算内容が積和演算であると判別する。
【0069】
(W2)そして、デコーダユニット4−1−1は、分離スイッチ8,9が開くように制御信号Sを出力する。
(W3)そして更に、デコーダユニット4−1−1は、上記アドレスA22に書き込まれたデータ(N)を、制御線4−3を介して取り込んで、そのデータを積和の回数として自己の内部カウンタ(図示省略)にセットする。
【0070】
(W4)次に、デコーダユニット4−1−1は、上記アドレスA20に書き込まれたデータ(a[0]のアドレスポインタ)と、上記アドレスA21に書き込まれたデータ(b[0]のアドレスポインタ)とを、制御線4−3を介して取り込み、上記アドレスA20に書き込まれたデータをアドレス生成ユニット4−1−2からアドレスバス7へ出力させると共に、上記アドレスA21に書き込まれたデータをアドレス生成ユニット4−1−2から専用アドレスバス16へ出力させる。
【0071】
また、これと同時に、デコーダユニット4−1−1は、RAM5とROM14との各々へメモリ読み出し信号を出力して、上記アドレスA20に書き込まれたデータをアドレスポインタとするRAM5内の最初の演算データa[0]と、上記アドレスA21に書き込まれたデータをアドレスポインタとするROM14内の最初のフィルタ係数b[0]とを、演算部4−2の演算ユニット4−2−2にデータバス6及び専用データバス15を介して取り込ませる。
【0072】
(W5)そして更に、デコーダユニット4−1−1は、演算ユニット4−2−2へ、制御線4−3を介して積和演算用の制御信号を送る。
すると、演算ユニット4−2−2は、RAM5とROM14から取り込んだ上記演算データa[0]とフィルタ係数b[0]とに対して1回目の積和演算を行い、その演算結果を、レジスタユニット4−2−1の前述した演算結果用アドレスに格納する。
【0073】
以後、デコーダユニット4−1−1は、下記の(W6)と(W7)の制御動作を、内部カウンタの値に基づきN回繰り返して行うことにより、演算ユニット4−2−2にN回の積和演算を行わせる。
(W6)デコーダユニット4−1−1は、アドレスバス7へ前回出力したデータに所定のオフセット(例えば1)を加算又は減算したデータを、アドレス生成ユニット4−1−2からアドレスバス7へ出力させると共に、専用アドレスバス16へ前回出力したデータに所定のオフセット(例えば1)を加算又は減算したデータを、アドレス生成ユニット4−1−2から専用アドレスバス16へ出力させる。
【0074】
また、これと同時に、デコーダユニット4−1−1は、RAM5とROM14との各々へメモリ読み出し信号を出力して、RAM5内のn(≧2)番目の演算データa[n]とROM14内のn番目のフィルタ係数b[n]とを、演算ユニット4−2−2にデータバス6及び専用データバス15を介して取り込ませる。
【0075】
(W7)更に、デコーダユニット4−1−1は、演算ユニット4−2−2へ、制御線4−3を介して積和演算用の制御信号を送る。
すると、演算ユニット4−2−2は、RAM5とROM14から取り込んだ上記演算データa[n]とフィルタ係数b[n]とに対してn回目の積和演算を行い、その演算結果を、レジスタユニット4−2−1の上記演算結果用アドレスに更新して格納する。
【0076】
(W8)そして、デコーダユニット4−1−1は、上記(W6)と(W7)の制御動作をN回行うと、分離スイッチ8,9が閉じるように制御信号Sを出力する。これにより、補助演算装置4の動作が終了する。また、CPU1は、レジスタユニット4−2−1の上記演算結果用アドレスに格納されたデータを読み出すことにより、N回積和演算「Σ(a[n]×b[n]):n=0,1,…,N−1」の結果を取得することができる。
【0077】
ここで、上記(W1)〜(W8)の動作内容を、CPU1と補助演算装置4との動作タイミングを示す図7のタイムチャートを用いて、より詳細に説明する。尚、ここでは、図3の場合と同様に、CPU1が一般的な5段パイプライン処理を行うCPUであるものとし、図7における「CPU側の動作タイミング」の欄の最初の命令処理C11のIFステージST11にて、CPU1が、補助演算装置4に積和演算を行わせる起動命令(つまり、レジスタユニット4−2−1のアドレスA22にデータを書き込む命令)をROM2から読み出したものとする。また、図7は、補助演算装置4が積和演算を5回連続して行う場合(即ち、レジスタユニット4−2−1のアドレスA22に書き込まれたデータNが4であった場合)を示している。
【0078】
まず、この場合、CPU1は、上記命令処理C11のMAステージST12にて、補助演算装置4に対し、チップイネーブル信号CEN及びライトイネーブル信号WEN(図5にて図示省略)をアクティブレベルであるロウレベルにする。そして更に、CPU1は、アドレスバス7へ、アドレス値“A22”を出力すると共に、データバス6へ、レジスタユニット4−2−1のアドレスA22に書き込むべきデータN(この例の場合、4を示すデータ)を出力する。
【0079】
すると、補助演算装置4では、図7における「補助演算装置側の動作タイミング」の欄の最初の命令処理C21のIDステージST13にて、デコーダユニット4−1−1が、上記チップイネーブル信号CEN及びライトイネーブル信号WENと、上記アドレス値“A22”とにより、CPU1によって指定された演算内容が積和演算であると判別する。また、同IDステージST13にて、デコーダユニット4−1−1は、レジスタユニット4−2−1のアドレスA20〜A22から、CPU1によって書き込まれたデータを読み出し、アドレス生成ユニット4−1−2にアドレスバス7と専用アドレスバス16との各々へ出力すべき各アドレスを生成させる。尚、この最初の命令処理C21では、レジスタユニット4−2−1のアドレスA20から読み出したデータが、アドレスバス7へ出力すべきアドレスとなり、また、アドレスA21から読み出したデータが、専用アドレスバス16へ出力すべきアドレスとなる。
【0080】
そして、次のMAステージST14にて、デコーダユニット4−1−1は、分離スイッチ8,9への制御信号Sをハイレベルにして、その両分離スイッチ8,9を開くと共に、アドレス生成ユニット4−1−2で生成した各アドレスを、アドレスバス7と専用アドレスバス16との各々へ出力させる。また、これと同時に、デコーダユニット4−1−1は、RAM5とROM14とに対するチップイネーブル信号及びアウトプットイネーブル信号(図5及び図7にて図示省略)をアクティブレベルであるロウレベルにして、RAM5内の該当するアドレスの演算データと、ROM14内の該当するアドレスのフィルタ係数とを、データバス6と専用データバス15との各々を介して当該補助演算装置4に取り込む。
【0081】
そして更に、次のEXステージ(EX1)ST15と、それに続くEXステージ(EX2)ST16とで、演算ユニット4−2−2により、上記MAステージST14で取り込んだ演算データとフィルタ係数とに対し積和演算が1回行われる。尚、補助演算装置4側でのEXステージのサイクル数は、命令によって異なり、図7は2サイクルの場合を例示している。
【0082】
そして、補助演算装置4では、WBステージST17にて、演算ユニット4−2−2による演算結果がレジスタユニット4−2−1の演算結果用アドレスに書き込まれる。尚、積和演算を連続で行う場合には、演算結果をレジスタユニット4−2−1内に格納せず、他の一時格納レジスタ(アキュムレータ)に格納するようにしても良い。
【0083】
以上が1回目の積和演算を行う最初の命令処理C21の動作であるが、補助演算装置4は、積和演算を連続して行う場合に、上記命令処理C21と同様の動作を、図7における「補助演算装置側の動作タイミング」の欄に示すように、パイプライン処理により並列に行う。
【0084】
つまり、積和演算を例えば5回連続して行う場合には、最初の命令処理C21と他の4つの命令処理C22〜C25を、各ステージの動作が1つずつずれるように行うこととなる。
但し、最初の命令処理C21以外の各命令処理C22〜C25のIDステージにおいて、デコーダユニット4−1−1は、アドレス生成ユニット4−1−2に、アドレスバス7と専用アドレスバス16との各々へ前回出力したアドレスから次のMAステージで出力すべきアドレスを生成させる。つまり、前述したように、前回出力したアドレスに所定のオフセットを加算又は減算したデータが、次に出力されるアドレスとなる。
【0085】
また、分離スイッチ8,9への制御信号Sは、MAステージが連続して続いている間、デコーダユニット4−1−1によりハイレベルに維持され、これにより、CPU1と補助演算装置4との並列動作が可能となる。そして、図7に示す例では、5番目の命令処理C25のEXステージ(EX1)ST18にて、上記制御信号Sがロウレベルにされ、分離スイッチ8,9が閉じられる。
【0086】
一方、CPU1が補助演算装置4による演算結果を取得するための手法としては、補助演算装置4が演算終了時にCPU1への割り込みリクエスト信号INTR(制御線11への信号)をアクティブレベルとしてのハイレベルにし、CPU1が上記割り込みリクエスト信号INTRによって起動される割り込みルーチンにて、レジスタユニット4−2−1の演算結果用アドレスに格納されたデータを読み出すようにすることができる。
【0087】
但し、一般に、CPU1が割り込みルーチンへ移行するためには、その前に、プログラムカウンタ,ステータスレジスタ,及び汎用レジスタ等の値を退避させるための割り込みシーケンサ処理を行う必要がある。このため、その割り込みシーケンサ処理のサイクル数を考慮して、補助演算装置4での演算終了直後にCPU1が割り込みルーチンにて補助演算装置4から演算結果を読み出す命令を実行できるように、補助演算装置4から割り込みリクエスト信号INTRが出力される(ハイレベルにされる)タイミングを設定すれば、より効率的である。尚、図7では、最後の命令処理C25のEXステージ(EX1)ST18にて、割り込みリクエスト信号INTRをハイレベルにしている。
【0088】
尚、図7では特に示していないが、CPU1が補助演算装置4から演算結果を読み出す際には、前述した図3における命令処理C6のMAステージST8と同様に、補助演算装置4に対し、チップイネーブル信号CEN及びアウトプットイネーブル信号OEN(図5にて図示省略)をアクティブレベルであるロウレベルにすると共に、アドレスバス7へレジスタユニット4−2−1の上記演算結果用アドレスに応じたアドレス値を出力すれば良い。
【0089】
次に、マイクロコンピュータM2の全体動作の一例について、図8を用いて説明する。
まず、図8(b)において、プログラムAとプログラムBは、CPU1で順次繰り返し処理されるメインプログラムである。
【0090】
そして、プログラムDは、メインプログラムBによる演算結果を使用してデジタルフィルタ処理用の積和演算を行うサブルーチンのプログラムであり、補助演算装置4で処理される。つまり、プログラムDは、前述の特殊演算のうちの積和演算を行うためのものであり、実際には、補助演算装置4の演算動作である。
【0091】
また、プログラムCは、プログラムDによる演算結果(補助演算装置4による積和演算の演算結果)を使用する割り込みルーチンのプログラムであり、CPU1によって処理される。
尚、プログラムBの最後の2命令は、プログラムDを起動させる起動命令(即ち、補助演算装置4内のレジスタユニット4−2−1のアドレスA20,A21,A22にデータを書き込んで、補助演算装置4に積和演算の動作をさせる命令)と、当該プログラムBからメインプログラムAの先頭に戻るためのジャンプ命令とになっている。また、プログラムCの最後の命令は、当該プログラムCからメインプログラムA,Bに戻るための割り込みリターン命令になっている。
【0092】
このような前提のもとで、CPU1がメインプログラムBの最後の2命令(プログラムDの起動命令と、メインプログラムAの先頭へのジャンプ命令)を実行すると、図8(b)の矢印Y6に示すように、補助演算装置4が動作を開始してプログラムDの処理(即ち、前述の積和演算)が行われる。また、CPU1はメインプログラムA,Bを再びメインプログラムAの先頭から実行することとなる。
【0093】
ここで、プログラムDの実行中(即ち、補助演算装置4が動作している間)は、前述したように分離スイッチ8,9が開かれて、CPU1と補助演算装置4とでバス6,7が分離された状態となる。よって、この状態では、CPU1によるメインプログラムA,Bの処理と補助演算装置4によるプログラムDの処理とが並列に行われることとなる。
【0094】
そして、プログラムDが終了すると(即ち、補助演算装置4の動作が終了すると)、前述したように分離スイッチ8,9が閉じられて、CPU1と補助演算装置4とがバス6,7で接続された元の状態に戻ることとなる。また、これと同時に、上記制御部4−1から割り込みコントローラ10へ割り込みリクエスト信号が出力され、それに伴い、CPU1は、図8(b)の矢印Y7に示すように、プログラムCの実行を開始することとなる。
【0095】
その後、CPU1がプログラムCの最後の命令(割り込みリターン命令)を実行すると、CPU1は、図8(b)の矢印Y8に示すように、メインプログラムA,Bの実行を再開することとなる。
以上のように本第2実施形態のマイクロコンピュータM2においても、補助演算装置4の動作中に、分離スイッチ8,9を開いて、CPU1と補助演算装置4とでバス6,7が分離された状態にしているため、図8(b)に例示した如く、メインプログラムA,BとプログラムDとを並列に処理することができ、その結果、当該マイクロコンピュータM2全体の演算速度の高速化が達成される。
【0096】
即ち、仮に分離スイッチ8,9を備えていなければ、既述したようにPCU1と補助演算装置4とが同時に動作することができないため、例えば図8(a)に示すように、プログラムCをサブルーチンに変更して、プログラムDの直後に実行しなければならず、しかも、その間はメインプログラムA,Bを処理することができない。これに対して、本第2実施形態のマイクロコンピュータM2によれば、そのような問題は無い。
【0097】
そして更に、本第2実施形態のマイクロコンピュータM2では、補助演算装置4と、補助演算装置4が積和演算に用いるフィルタ係数を格納したROM14とを、専用データバス15及び専用アドレスバス16を介して接続するようにしているため、補助演算装置4は、RAM5とROM14との各々から、積和演算の演算データaとフィルタ係数bとを同時に読み出して、積和演算の処理を効率良く実行することができる。特に、この種の積和演算を行うには一般に時間がかかるため、本第2実施形態のマイクロコンピュータM2が有効である。
【0098】
ここで、上記各実施形態のマイクロコンピュータM1,M2の効果を一層明らかにするために、各マイクロコンピュータM1,M2の動作と、分離スイッチ8,9を備えない従来構成のマイクロコンピュータの動作とを、図9を用いて比較説明する。尚、図9(a)は、従来構成のマイクロコンピュータの状態遷移を表しており、図9(b)は、第1及び第2実施形態のマイクロコンピュータM1,M2の状態遷移を表している。また、図9及び以下の説明において、「CoPro」とは、補助演算装置4を意味している。
【0099】
まず、図9(a)に示すように、分離スイッチ8,9を備えない従来構成のマイクロコンピュータの状態としては、リセット状態Ja1と、CPU動作状態Ja2と、CoPro動作状態Ja3との、3状態である。
そして、リセット状態Ja1は、CPU内部のプログラムカウンタや状態レジスタの内容をクリアする状態である。また、CPU動作状態Ja2は、CPU1がROM2の命令内容を実行しているか、或いは、例外処理時にCPU内部のシーケンサが動作している状態であり、この状態Ja2の時に、CoPro(補助演算装置4)は、内部レジスタの内容を保持したまま次サイクルの命令(処理内容)を実行しない状態(CoPro停止状態)にある。また更に、CoPro動作状態Ja3は、CPU1のCoPro起動命令(即ち、レジスタユニット4−2−1にデータを書き込む命令)により指定内容をCoProで実行している状態であり、この状態Ja3の時に、CPU1は、内部レジスタの内容を保持したまま次サイクルの命令(処理内容)を実行しない状態(CPU停止状態)にある。
【0100】
次に、従来構成のマイクロコンピュータの状態遷移条件について説明すると、まず、初期状態ではリセット状態Ja1であり、リセット信号解除後、無条件にCPU動作状態Ja2へ遷移する。
そして、CPU動作状態Ja2では、CPU命令や複数サイクルに及ぶCPU命令の実行中には、状態遷移せず、CPU1にてCoPro起動命令が実行されると、CoPro動作状態(CPU停止状態)Ja3へ遷移する。
【0101】
また、CoPro動作状態Ja3では、CoProが動作中には、状態遷移せず、CoPro動作が終了すると、CPU動作状態Ja2へ遷移する。
そして、全状態において、リセット時には、リセット状態Ja1へ遷移する。一方、図9(b)に示すように、第1及び第2実施形態のマイクロコンピュータM1,M2の状態としては、リセット状態Jb1と、「CPU動作,CoPro停止」状態Jb2と、「CPU動作,CoPro動作」状態Jb3と、「CPU停止,CoPro動作」状態Jb4との、4状態である。
【0102】
尚、リセット状態Jb1は、従来のリセット状態Ja1と同様である。また、「CPU動作,CoPro停止」状態Jb2は、CPU1は従来のCPU動作状態Ja2と同様で、且つ、CoProは停止状態である。また更に、「CPU動作,CoPro動作」状態Jb3は、CPU1は従来のCPU動作状態Ja2と同様で、且つ、CoProは従来のCoPro動作状態Ja3と同様である。そして、「CPU停止,CoPro動作」状態Jb4は、CPU1は停止状態であり、且つ、CoProは従来のCoPro動作状態Ja3と同様である。
【0103】
次に、第1及び第2実施形態のマイクロコンピュータM1,M2の状態遷移条件について説明すると、まず、初期状態ではリセット状態Jb1であり、リセット信号解除後、無条件に「CPU動作,CoPro停止」状態Jb2へ遷移する。
【0104】
そして、「CPU動作,CoPro停止」状態Jb2では、CPU命令や複数サイクルに及ぶCPU命令の実行中には、状態遷移せず、CPU1にてCoPro起動命令が実行されると、「CPU動作,CoPro動作」状態Jb3へ遷移して、CPU1とCoProとが並列動作する。
【0105】
また、「CPU動作,CoPro動作」状態Jb3では、CoPro動作が終了すると、「CPU動作,CoPro停止」状態Jb2へ戻るが、この「CPU動作,CoPro動作」状態Jb3にて、CPU1がROM2から読み出した次の命令がCoPro起動命令であったときには、「CPU停止,CoPro動作」状態Jb4へ遷移する。尚、これは、CoProが動作中には、前述したように、CoProからCPU1へ制御線13を介して出力される信号がハイレベルになっているためである。そして、この「CPU停止,CoPro動作」状態Jb4において、CoProは上記状態Jb2で起動及び指定された演算処理(つまり、上記状態Jb2でCPU1により実行されたCoPro起動命令に対応した演算処理)を行っており、CPU1はROM2から読み出した上記次のCoPro起動命令を実行しない停止状態となっている。
【0106】
そして、「CPU停止,CoPro動作」状態Jb4では、CoProが動作中には、状態遷移せず、CoPro動作が終了すると、「CPU動作,CoPro動作」状態Jb3へ遷移する。尚、この時にCoProで実行する内容は、最初の「CPU動作,CoPro停止」状態Jb2時のCoPro起動命令の内容ではなく、「CPU停止,CoPro動作」状態Jb4へ遷移する直前にCPU1がROM2から読み出したCoPro起動命令であって、「CPU停止,CoPro動作」状態Jb4から「CPU動作,CoPro動作」状態Jb3へ戻ったときにCPU1にて実行されるCoPro起動命令の内容である。
【0107】
また、全状態において、リセット時には、リセット状態Jb1へ遷移する。
ここで、図9(a),(b)の対比から明らかなように、従来構成のマイクロコンピュータでは、CPU1とCoPro(補助演算装置4)とが並列に動作する状態はないが、第1及び第2実施形態のマイクロコンピュータM1,M2では、CPU1とCoProとが並列動作する「CPU動作,CoPro動作」状態Jb3が存在する。そして、その状態Jb3の存在が第1及び第2実施形態のマイクロコンピュータM1,M2における最大の特徴であり、バス6,7に分離スイッチ8,9を設けることによって、上記状態Jb3を実現できるのである。
【0108】
次に、第3実施形態のマイクロコンピュータについて、図10を用いて説明する。尚、図10において、前述した第1及び第2実施形態のマイクロコンピュータM1,M2と同じ構成要素については、同一の符号を付しているため、詳細な説明は省略する。
【0109】
図10に示すように、第3実施形態のマイクロコンピュータM3は、第1実施形態のマイクロコンピュータM1(図1)に対して、データバス6とアドレスバス7に分離スイッチ8,9が設けられておらず、その代わりに、互いに独立した2組のアドレスポートPA1,PA2及びデータポートPD1,PD2の各々を介して2つのデータの読み出し及び書き込みを同時に行うことができる、デュアルポートメモリとしてのデュアルポートRAM17を備えている。更に、デュアルポートRAM17を設けたため、RAM3とRAM5を削除している。
【0110】
そして、上記デュアルポートRAM17の一方のデータポートPD1とアドレスポートPA1は、夫々、データバス6とアドレスバス7とに接続されており、他方のデータポートPD2とアドレスポートPA2は、夫々、上記データバス6及びアドレスバス7とは予め分離された第2のデータバス18と第2のアドレスバス19とを介して、補助演算装置4に接続されている。具体的には、データポートPD2は、第2のデータバス18を介して、補助演算装置4の演算部4−2に接続され、アドレスポートPA2は、第2のアドレスバス19を介して、補助演算装置4の制御部4−1に接続されている。
【0111】
尚、本第3実施形態では、データバス6とアドレスバス7が、請求項に係る発明にて中央演算装置と補助演算装置とを接続するバス(第1のバス)に相当しており、第2のデータバス18と第2のアドレスバス19が、請求項に係る発明における第2のバスに相当している。
【0112】
以上のように構成された本第3実施形態のマイクロコンピュータM3においては、デュアルポートRAM17が、第1実施形態における2つのRAM3,5(特にRAM5)の代わりに用いられる。つまり、CPU1は、データバス6及びアドレスバス7とデュアルポートRAM17の一方のデータポートPD1及びアドレスポートPA1を介して、該デュアルポートRAM17に自己の演算結果や補助演算装置4での演算対象となる演算データを書き込み、また、そのデュアルポートRAM17から必要なデータを読み出す。
【0113】
そして、補助演算装置4は、間接アドレッシングモードの演算動作を行う際には、第2のデータバス18及び第2のアドレスバス19とデュアルポートRAM17の他方のデータポートPD2及びアドレスポートPA2を介して、該デュアルポートRAM17から、CPU1によって書き込まれた演算対象の演算データを読み出す。
【0114】
特に、CPU1と補助演算装置4との各々によるデュアルポートRAM17へのアクセスは、互いの影響を受けることなく独立に行うことができる。
よって、本第3実施形態のマイクロコンピュータM3によっても、第1実施形態のマイクロコンピュータM1と同様に、CPU1と補助演算装置4とでデータを共有しつつ、CPU1と補助演算装置4との並列処理動作が可能となり、その結果、演算速度の高速化が達成される。
【0115】
次に、第4実施形態のマイクロコンピュータについて、図11を用いて説明する。尚、図11において、前述した第1〜第3実施形態のマイクロコンピュータM1〜M3と同じ構成要素については、同一の符号を付しているため、詳細な説明は省略する。
【0116】
図11に示すように、第4実施形態のマイクロコンピュータM4は、第2実施形態のマイクロコンピュータM2(図5)に対して、第1実施形態と第3実施形態との関係と全く同様に、データバス6とアドレスバス7に分離スイッチ8,9が設けられておらず、その代わりに、デュアルポートメモリとしてのデュアルポートRAM17を備えている。また、デュアルポートRAM17を設けたため、RAM3とRAM5を削除している。そして、上記デュアルポートRAM17の一方のデータポートPD1とアドレスポートPA1は、夫々、データバス6とアドレスバス7とに接続されており、他方のデータポートPD2とアドレスポートPA2は、夫々、第2のデータバス18と第2のアドレスバス19とを介して、補助演算装置4に接続されている。
【0117】
換言すれば、本第4実施形態のマイクロコンピュータM4は、第3実施形態のマイクロコンピュータM3(図10)に対して、補助演算装置4が特定の演算を行う際に用いる定数データを予め格納したROM14と、そのROM14と補助演算装置4とを接続する専用データバス15及び専用アドレスバス16とを、追加して備えている。
【0118】
尚、本第4実施形態では、上記専用データバス15と専用アドレスバス16が、請求項5,6に係る発明における専用バスに相当しており、上記ROM14が、定数データを記憶したメモリに相当している。
そして、このような本第4実施形態のマイクロコンピュータM4によっても、第2実施形態のマイクロコンピュータM2と同じ効果を得ることができる。
【0119】
尚、上記第3及び第4実施形態のマイクロコンピュータM3,M4においても、第1及び第2実施形態のマイクロコンピュータM1,M2と同様に、図9(b)の如く状態が遷移する。
以上、本発明の一実施形態について説明したが、本発明は、上記各実施形態に限定されるものではなく、種々の形態を採り得ることは言うまでもない。
【0120】
例えば、上記各実施形態の補助演算装置4では、演算部4−2への演算データの取得方法として、直接アドレッシングモードと間接アドレッシングモードとを採用したが、間接アドレッシングモードの代わりに、例えば、ディスプレースメント付きアドレッシングモード、ポストインクリメント付きアドレッシングモード、或いはデクリメント付きアドレッシングモード等の、他のアドレッシングモードを採用しても良い。
【0121】
また、上記各実施形態の補助演算装置4では、レジスタユニット4−2−1のアドレス毎にアドレッシングモードが決っていたが、例えば、CPU1によってレジスタユニット4−2−1に書き込まれるデータ中の特定のビットを、アドレッシングモードの識別ビットとし、補助演算装置4の制御部4−1が、その識別ビットによってアドレッシングモードの種別を判別するようにしても良い。そして、この場合には、レジスタユニット4−2−1のアドレス数を少なくすることができる。
【0122】
また更に、レジスタユニット4−2−1に書き込まれるデータ中の特定のビットを、命令の種類を示す命令識別ビットとすることも可能である。
一方、上記第2及び第4実施形態のマイクロコンピュータM2,M4において、ROM14の代わりにRAMを用い、そのRAMへ、例えば当該マイクロコンピュータM2,M4の動作開始時等に定数データを転送しておくようにしても良い。
【0123】
また、上記第3及び第4実施形態のマイクロコンピュータM3,M4においては、補助演算装置4が演算結果をデュアルポートRAM17に書き込むようにしても良い。そして、この場合、CPU1は、デュアルポートRAM17のデータポートPD1及びアドレスポートPA1側から補助演算装置4の演算結果を読み出せば良い。
【図面の簡単な説明】
【図1】 第1実施形態のマイクロコンピュータの構成を表すブロック図である。
【図2】 第1実施形態の補助演算装置に備えられたレジスタユニットを説明する説明図である。
【図3】 第1実施形態のマイクロコンピュータにおけるCPUと補助演算装置との動作タイミングを示すタイムチャートである。
【図4】 第1実施形態のマイクロコンピュータの全体動作の一例を説明する説明図である。
【図5】 第2実施形態のマイクロコンピュータの構成を表すブロック図である。
【図6】 第2実施形態の補助演算装置に備えられたレジスタユニットを説明する説明図である。
【図7】 第2実施形態のマイクロコンピュータにおけるCPUと補助演算装置との動作タイミングを示すタイムチャートである。
【図8】 第2実施形態のマイクロコンピュータの全体動作の一例を説明する説明図である。
【図9】 第1及び第2実施形態のマイクロコンピュータの効果を説明する説明図である。
【図10】 第3実施形態のマイクロコンピュータの構成を表すブロック図である。
【図11】 第4実施形態のマイクロコンピュータの構成を表すブロック図である。
【符号の説明】
M1,M2,M3,M4…マイクロコンピュータ
1…CPU(中央演算装置)
2,14…ROM 3,5…RAM 4…補助演算装置
4−1…制御部 4−1−1…デコーダユニット
4−1−2…アドレス生成ユニット 4−2…演算部
4−2−1…レジスタユニット 4−2−2…演算ユニット
4−3…制御線 6…データバス 7…アドレスバス
8,9…分離スイッチ 10…割り込みコントローラ
11,12,13…制御線 15…専用データバス
16…専用アドレスバス 17…デュアルポートRAM
18…第2のデータバス 19…第2のアドレスバス

Claims (6)

  1. 中央演算装置と補助演算装置とがバスを介して接続された情報処理装置において、
    前記バスにて前記中央演算装置と前記補助演算装置とを接続する経路上に、該経路を制御信号に応じて連通/遮断するスイッチが設けられており、該スイッチの遮断により、前記中央演算装置と前記補助演算装置とが並列に動作するようになっており、
    更に、前記補助演算装置は、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えており、該レジスタ部の何れかのアドレスに前記中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行すると共に、その演算処理の実行状態に応じて前記スイッチを開閉制御するよう構成されていること、
    を特徴とする情報処理装置。
  2. 前記補助演算装置は、前記バスとは予め分離された専用バスに接続されていること、
    を特徴とする請求項1に記載の情報処理装置。
  3. 前記専用バスには、前記補助演算装置が演算に用いる定数データを記憶したメモリが接続されていること、
    を特徴とする請求項に記載の情報処理装置。
  4. 中央演算装置と補助演算装置とがバスを介して接続され、
    更に、前記補助演算装置は、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えており、該レジスタ部の何れかのアドレスに前記中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行するよう構成された情報処理装置であって、
    互いに独立した2組のポートの各々を介して、2つのデータの読み出し及び書き込みを同時に行うことができるデュアルポートメモリを備え、
    該デュアルポートメモリの2組のポートのうち、一方のポートが前記バスに接続され、他方のポートが前記バスとは予め分離された第2のバスを介して前記補助演算装置に接続されており、前記中央演算装置と前記補助演算装置とが並列に動作することを特徴とする情報処理装置。
  5. 前記補助演算装置は、前記バス及び前記第2のバスとは予め分離された専用バスに接続されていること、
    を特徴とする請求項に記載の情報処理装置。
  6. 前記専用バスには、前記補助演算装置が演算に用いる定数データを記憶したメモリが接続されていること、
    を特徴とする請求項に記載の情報処理装置。
JP31478798A 1998-02-16 1998-11-05 情報処理装置 Expired - Fee Related JP3829504B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP31478798A JP3829504B2 (ja) 1998-02-16 1998-11-05 情報処理装置
EP99103007A EP0936540B1 (en) 1998-02-16 1999-02-15 Information processing apparatus having a CPU and an auxiliary arithmetic unit
DE69932657T DE69932657T2 (de) 1998-02-16 1999-02-15 Datenverarbeitungsvorrichtung mit CPU und arithmetischer Zusatzeinheit
US09/250,134 US6249858B1 (en) 1998-02-16 1999-02-16 Information processing apparatus having a CPU and an auxiliary arithmetic unit for achieving high-speed operation

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3319998 1998-02-16
JP10-33199 1998-02-16
JP31478798A JP3829504B2 (ja) 1998-02-16 1998-11-05 情報処理装置

Publications (2)

Publication Number Publication Date
JPH11296372A JPH11296372A (ja) 1999-10-29
JP3829504B2 true JP3829504B2 (ja) 2006-10-04

Family

ID=26371846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31478798A Expired - Fee Related JP3829504B2 (ja) 1998-02-16 1998-11-05 情報処理装置

Country Status (4)

Country Link
US (1) US6249858B1 (ja)
EP (1) EP0936540B1 (ja)
JP (1) JP3829504B2 (ja)
DE (1) DE69932657T2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334179B1 (en) * 1998-09-23 2001-12-25 Masaana Research Limited DSP coprocessor having control flags mapped to a dual port section of memory for communicating with the host
WO2001079995A2 (en) * 2000-04-05 2001-10-25 Chicory Systems, Inc. Method for making efficient service calls to a hardware coprocessor using load and/or store instructions
JP5090591B2 (ja) * 2000-04-12 2012-12-05 ソニー株式会社 電子装置の制御方法,電子装置及び電子装置の機能の認識方法
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法
JP3709553B2 (ja) * 2000-12-19 2005-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 演算回路および演算方法
JP2005038203A (ja) * 2003-07-15 2005-02-10 Denso Corp メモリ制御方法及び装置
US7584345B2 (en) * 2003-10-30 2009-09-01 International Business Machines Corporation System for using FPGA technology with a microprocessor for reconfigurable, instruction level hardware acceleration
FR2942556B1 (fr) 2009-02-24 2011-03-25 Commissariat Energie Atomique Unite d'allocation et de controle

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593316A (en) * 1969-11-03 1971-07-13 Incoterm Corp Data terminal processor
US3909800A (en) * 1973-12-18 1975-09-30 Honeywell Inf Systems Improved microprogrammed peripheral processing system
JPS63143660A (ja) * 1986-12-08 1988-06-15 Fanuc Ltd コ・プロセツサを有する演算処理装置
US4908748A (en) * 1987-07-28 1990-03-13 Texas Instruments Incorporated Data processing device with parallel circular addressing hardware
JPH01255037A (ja) 1988-04-05 1989-10-11 Mitsubishi Electric Corp 電子計算機
JPH04262450A (ja) 1991-02-15 1992-09-17 Omron Corp プロセッサ
ATE180339T1 (de) * 1991-10-29 1999-06-15 Advanced Micro Devices Inc Datensignalverarbeitungsgerät

Also Published As

Publication number Publication date
EP0936540B1 (en) 2006-08-09
DE69932657T2 (de) 2007-08-09
JPH11296372A (ja) 1999-10-29
US6249858B1 (en) 2001-06-19
DE69932657D1 (de) 2006-09-21
EP0936540A2 (en) 1999-08-18
EP0936540A3 (en) 1999-10-20

Similar Documents

Publication Publication Date Title
JP3623840B2 (ja) データ処理装置及びマイクロプロセッサ
JP2834837B2 (ja) プログラマブルコントローラ
JP3983857B2 (ja) ベクトルレジスタの複数バンクを用いた単一命令複数データ処理
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
AU681604B2 (en) High speed programmable logic controller
US5822779A (en) Microprocessor-based data processing apparatus that commences a next overlapping cycle when a ready signal is detected not to be active
JP2003196084A (ja) リードモディファイライトユニットを有するシステム
JP2816624B2 (ja) 2乗演算を実行する速度改良型データ処理システム及びその方法
JP2001142692A (ja) 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
JP3829504B2 (ja) 情報処理装置
JP4243271B2 (ja) データ処理装置およびデータ処理方法
JP2001142693A (ja) 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
KR100267089B1 (ko) 스칼라/벡터연산이조합된단일명령복수데이터처리
JP3662259B2 (ja) データ処理条件コード・フラグ
JP2690406B2 (ja) プロセッサおよびデータ処理システム
JPH08255476A (ja) データ処理システムにおけるメモリ拡張スタック装置および方法
JPH02306361A (ja) マイクロプロセッサ
JPH04104350A (ja) マイクロプロセッサ
JPH10124312A (ja) 中央処理装置
JP2636821B2 (ja) 並列処理装置
JPH0524537B2 (ja)
IE990788A1 (en) A DSP Coprocessor
JPH06103064A (ja) データ処理装置及びそのデータ処理方法
JP3547585B2 (ja) 条件実行命令を有するマイクロプロセッサ
JP2956707B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060524

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060703

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100721

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110721

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120721

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120721

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130721

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees