(57)【特許請求の範囲】
【請求項１】
中央演算装置と補助演算装置とがバスを介して接続された情報処理装置において、
前記バスにて前記中央演算装置と前記補助演算装置とを接続する経路上に、該経路を制御信号に応じて連通／遮断するスイッチが設けられており、該スイッチの遮断により、前記中央演算装置と前記補助演算装置とが並列に動作するようになっており、
更に、前記補助演算装置は、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えており、該レジスタ部の何れかのアドレスに前記中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行すると共に、その演算処理の実行状態に応じて前記スイッチを開閉制御するよう構成されていること、
を特徴とする情報処理装置。
【請求項２】
前記補助演算装置は、前記バスとは予め分離された専用バスに接続されていること、
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記専用バスには、前記補助演算装置が演算に用いる定数データを記憶したメモリが接続されていること、
を特徴とする請求項２に記載の情報処理装置。
【請求項４】
中央演算装置と補助演算装置とがバスを介して接続され、
更に、前記補助演算装置は、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えており、該レジスタ部の何れかのアドレスに前記中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行するよう構成された情報処理装置であって、
互いに独立した２組のポートの各々を介して、２つのデータの読み出し及び書き込みを同時に行うことができるデュアルポートメモリを備え、
該デュアルポートメモリの２組のポートのうち、一方のポートが前記バスに接続され、他方のポートが前記バスとは予め分離された第２のバスを介して前記補助演算装置に接続されており、前記中央演算装置と前記補助演算装置とが並列に動作することを特徴とする情報処理装置。
【請求項５】
前記補助演算装置は、前記バス及び前記第２のバスとは予め分離された専用バスに接続されていること、
を特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記専用バスには、前記補助演算装置が演算に用いる定数データを記憶したメモリが接続されていること、
を特徴とする請求項５に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、中央演算装置（ＣＰＵ）と補助演算装置とがバス接続された構成の情報処理装置に関する。
【０００２】
【従来の技術】
一般に、マイクロコンピュータにおいて、ＣＰＵが演算処理を行う際の動作内容は、ＲＯＭやＲＡＭ等の周辺メモリから実行すべき命令を読み出す命令読出ステージ（フェッチステージ）と、その読み出した命令の内容を解読する解読ステージ（デコードステージ）と、その解読した命令の内容を実行する実行ステージと、周辺メモリとの間でデータのやり取りを行うメモリアクセスステージと、内部レジスタや周辺メモリへのデータ書き込みを行うライトバックステージとの、５つのステージからなる。
【０００３】
また、近年の機器制御等においては、高速で且つ高精度な制御が求められており、それに伴い、機器制御等に用いられるマイクロコンピュータに対しては、ＣＰＵの高速化（演算速度の向上）とデジタル信号処理能力の向上とが要求されている。
【０００４】
ここで、ＣＰＵの高速化は、上記５つのステージを並列的に行う所謂パイプライン処理によって、ある程度実現することができる。
これに対して、デジタル信号処理能力の向上は、ＣＰＵがパイプライン処理を行うようにしても実現することができず、そのためには、例えば以下の２つの方法を採ることが考えられる。
【０００５】
まず、第１の方法としては、ＣＰＵとは全く別にＤＳＰ（デジタル・シグナル・プロセッサ）を搭載する。
また、第２の方法としては、ＣＰＵと、ＣＰＵでは高速に実行することができない特殊な演算（例えば、対数演算（ｌｏｇ）や積和演算等）を行う補助演算装置とを、バスを介して接続し、その補助演算装置がＣＰＵからの起動指令に応じて上記特殊演算を行うようにする。
【０００６】
【発明が解決しようとする課題】
ここで、上記第１の方法では、ＤＳＰ自体の回路規模が大きいため、ＬＳＩのチップサイズを小さくすることができず実用的ではない。
よって、デジタル信号処理能力を向上させるためには、一般に上記第２の方法を採ることとなるが、その場合には、ＣＰＵと補助演算装置とが同時に演算処理を行うことができなかった。つまり、ＣＰＵと補助演算装置とが同時に演算処理を行うようにすると、仮に両者が演算処理中に異なる周辺メモリをアクセスするとしても、ＣＰＵと補助演算装置との両方から同じバス上へデータが出されることとなり、周辺メモリへの適切なアクセスが不能になってしまうからである。
【０００７】
このため、上記第２の方法を採った場合には、比較的小さい回路規模でデジタル信号処理能力を向上させることができるものの、演算速度を向上させるのには限界が生じていた。
本発明は、こうした問題に鑑みなされたものであり、中央演算装置と補助演算装置とがバスを介して接続された構成の情報処理装置において、その演算速度の高速化を達成することを目的としている。
【０００８】
【課題を解決するための手段、及び発明の効果】
上記目的を達成するためになされた請求項１に記載の情報処理装置では、中央演算装置と補助演算装置とがバスを介して接続されているが、特に、前記バスにて中央演算装置と補助演算装置とを接続する経路上に、その経路を制御信号に応じて連通／遮断するスイッチが設けられている。
【０００９】
この請求項１に記載の情報処理装置によれば、補助演算装置が中央演算装置からの起動指令に応じて演算処理を行う際に、前記スイッチへの制御信号を切り換えて該スイッチを解放させることにより、スイッチよりも中央演算装置側のバス（以下、「中央演算装置系のバス」という）と、スイッチよりも補助演算装置側のバス（以下、「補助演算装置系のバス」という）とを分離することができる。すると、補助演算装置は、中央演算装置の影響を受けることなく、補助演算装置系のバスに接続されたメモリにアクセスして演算処理を進めることができ、また、中央演算装置も、補助演算装置の影響を受けることなく、中央演算装置系のバスに接続されたメモリにアクセスして演算処理を進めることができる。
【００１０】
例えば、中央演算装置系のバスに、プログラムを格納したＲＯＭと中央演算装置の演算結果等を一時的に格納する第１のＲＡＭとを接続しておくと共に、補助演算装置系のバスに、補助演算装置による演算対象のデータ（演算データ）を一時的に格納する第２のＲＡＭを接続しておき、中央演算装置が、補助演算装置を起動させる前に（つまり、スイッチが解放される前に）、上記第２のＲＡＭに演算データを書き込んでおくようにすれば、補助演算装置は上記第２のＲＡＭに書き込まれた演算データを確実に読み出して所定の演算処理を行うことができ、それと並行して、中央演算装置は、自己の演算処理を進めることができる。
【００１１】
このように、請求項１に記載の情報処理装置によれば、中央演算装置と補助演算装置とでデータを共有しつつ、中央演算装置と補助演算装置との並列処理動作が可能となり、その結果、演算速度の高速化を達成することができる。
そして更に、請求項１に記載の情報処理装置では、補助演算装置が、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えている。そして、補助演算装置は、前記レジスタ部の何れかのアドレスに中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行すると共に、その演算処理の実行状態に応じて前記スイッチを開閉制御する。
【００１２】
例えば、補助演算装置は、演算処理を実行している間、前記スイッチを常に解放させるように構成することができる。また、補助演算装置は、補助演算装置系のバスに接続されたメモリにアクセスしなければならない演算処理を実行する場合にのみ、前記スイッチを解放させるように構成しても良い。
【００１３】
このような請求項１に記載の情報処理装置によれば、中央演算装置が、補助演算装置への起動指令として、前記レジスタ部の所望のアドレスにデータを書き込むだけで、所望の演算処理を補助演算装置に実行させることができる。そして、補助演算装置の動作中に前記スイッチが解放させれるため、中央演算装置は、補助演算装置と並列に演算処理を行うことができ、その結果、演算速度の高速化が達成される。
【００１４】
次に、請求項２に記載の情報処理装置では、上記請求項１に記載の情報処理装置において、補助演算装置が、前記バス（特に、補助演算装置系のバス）とは予め分離された専用バスに接続されている。
このような請求項２に記載の情報処理装置によれば、補助演算装置は、補助演算装置系のバスに接続されたメモリ（例えば、上記第２のＲＡＭ）と、前記専用バスに接続されたメモリとの各々から、演算対象の２つのデータを同時に読み出すことができるため、その両データを用いた演算処理を効率良く実行することができるようになる。
【００１５】
特に、請求項３に記載の如く、前記専用バスに、補助演算装置が演算に用いる定数データを記憶したメモリを接続しておけば、補助演算装置は、中央演算装置によって上記第２のＲＡＭに書き込まれた演算対象としての演算データａと、前記専用バスに接続されたメモリ内の定数データｂとを同時に読み出して、例えば、その演算データａに定数データｂを乗ずる乗算処理等を効率良く実行することができる。そして更に、例えば、補助演算装置が、上記両データａ，ｂの読み出しと、両データａ，ｂの乗算結果の加算とを繰り返せば、デジタルフィルタ等のための積和演算「Σ（ａ×ｂ）」を高速に且つ中央演算装置と並列に行うことができるようになり、非常に有利である。
【００１６】
一方、上記目的を達成するためになされた請求項４に記載の情報処理装置では、請求項１に記載の情報処理装置と同様に、中央演算装置と補助演算装置とがバス（以下、第１のバスという）を介して接続されていると共に、補助演算装置は、複数種類の演算内容に夫々対応付けされたアドレスを有するレジスタ部を備えており、該レジスタ部の何れかのアドレスに中央演算装置によってデータが書き込まれると、そのアドレスに対応した内容の演算処理を該アドレスに書き込まれたデータを用いて実行する。
【００１７】
このため、請求項４に記載の情報処理装置においても、中央演算装置が、補助演算装置への起動指令として、前記レジスタ部の所望のアドレスに第１のバスを介してデータを書き込むことにより、補助演算装置にて所望の演算処理が実行されることとなる。
【００１８】
ここで特に、請求項４に記載の情報処理装置では、請求項１〜３に記載の情報処理装置の如きスイッチを設けるのではなく、互いに独立した２組のポートの各々を介して２つのデータの読み出し及び書き込み（リード／ライト）を同時に行うことができるデュアルポートメモリを備えており、そのデュアルポートメモリの２組のポートのうち、一方のポートが上記第１のバス（中央演算装置と補助演算装置とを接続するバス）に接続され、他方のポートが第１のバスとは予め分離された第２のバスを介して補助演算装置に接続されている。
【００１９】
よって、この請求項４に記載の情報処理装置によれば、中央演算装置が、補助演算装置を起動させる前に（つまり、補助演算装置のレジスタ部のアドレスに第１のバスを介してデータを書き込む前に）、第１のバス及びデュアルポートメモリの一方のポートを介して該デュアルポートメモリに演算対象の演算データを書き込んでおくようにすれば、補助演算装置は、そのデュアルポートメモリに書き込まれた演算データを、該デュアルポートメモリの他方のポート及び第２のバスを介し読み出して、中央演算装置の影響を受けることなく所定の演算処理を行うことができる。そして、それと並行して、中央演算装置は、補助演算装置の影響を受けることなく、デュアルポートメモリや第１のバスに接続された他のメモリ（例えば、プログラムを格納したＲＯＭ）にアクセスして、演算処理を進めることができる。
【００２０】
このように、請求項４に記載の情報処理装置によっても、中央演算装置と補助演算装置とでデータを共有しつつ、中央演算装置と補助演算装置との並列処理動作が可能となり、その結果、演算速度の高速化を達成することができる。
次に、請求項５に記載の情報処理装置では、上記請求項４に記載の情報処理装置において、補助演算装置が、請求項２に記載の情報処理装置と同様に、前記第１のバス及び前記第２のバスとは予め分離された専用バスに接続されている。
【００２１】
このような請求項５に記載の情報処理装置によれば、請求項２に記載の情報処理装置と同様に、補助演算装置は、デュアルポートメモリと、前記専用バスに接続されたメモリとの各々から、演算対象の２つのデータを同時に読み出すことができるため、その両データを用いた演算処理を効率良く実行することができるようになる。
【００２２】
そして特に、請求項６に記載の如く、前記専用バスに、補助演算装置が演算に用いる定数データを記憶したメモリを接続しておけば、請求項３に記載の情報処理装置と同様に、補助演算装置は、中央演算装置によってデュアルポートメモリに書き込まれた演算対象としての演算データａと、前記専用バスに接続されたメモリ内の定数データｂとを同時に読み出して、例えば、その演算データａに定数データｂを乗ずる乗算処理等を効率良く実行することができ、更に、例えば、補助演算装置が、上記両データａ，ｂの読み出しと、両データａ，ｂの乗算結果の加算とを繰り返せば、デジタルフィルタ等のための積和演算「Σ（ａ×ｂ）」を高速に且つ中央演算装置と並列に行うことができるようになる。
【００２３】
【発明の実施の形態】
以下、本発明が適用された実施形態の情報処理装置としてのマイクロコンピュータについて、図面を用いて説明する。
まず図１は、第１実施形態のマイクロコンピュータＭ１の構成を表すブロック図である。
【００２４】
図１に示すように、本第１実施形態のマイクロコンピュータＭ１は、一般的な加減算，論理演算，及びシフト演算等を実行可能な中央演算装置としての周知のＣＰＵ１と、ＣＰＵ１が実行するプログラムが予め格納されたＲＯＭ２と、ＣＰＵ１の演算結果等を一時的に格納するためのＲＡＭ３と、ＣＰＵ１では高速に実行することができない特殊な演算（例えば、階乗，ｅｘｐ，ｌｏｇ，ｓｉｎ，ｃｏｓ，ｔａｎ等）を行う補助演算装置４と、補助演算装置４が演算の対象とする演算データ等を一時的に格納するためのＲＡＭ５とを備えている。
【００２５】
そして、ＣＰＵ１と、補助演算装置４と、周辺メモリとしてのＲＯＭ２及びＲＡＭ３，５は、データバス６とアドレスバス７によって接続されている。尚、本第１実施形態では、データバス６とアドレスバス７が、請求項１に係る発明におけるバスに相当している。
【００２６】
ここで特に、データバス６とアドレスバス７との各々において、ＣＰＵ１と補助演算装置４とを接続する経路上には、その経路を補助演算装置４（詳しくは、後述する補助演算装置４内の制御部４−１）からの制御信号Ｓに応じて連通／遮断する分離スイッチ８，９が設けられている。そして、分離スイッチ８，９よりもＣＰＵ１側（図１にて分離スイッチ８，９よりも左側）のデータバス６とアドレスバス７に、上記ＲＯＭ２と上記ＲＡＭ３が接続されており、分離スイッチ８，９よりも補助演算装置４側（図１にて分離スイッチ８，９よりも右側）のデータバス６とアドレスバス７に、上記ＲＡＭ５が接続されている。
【００２７】
また、マイクロコンピュータＭ１には、ＣＰＵ１の割り込み動作を制御する割り込みコントローラ（ＩＮＴＣ）１０が設けられており、その割り込みコントローラ１０は、制御線１１を介して補助演算装置４（詳しくは、補助演算装置４内の制御部４−１）に接続されていると共に、制御線１２を介してＣＰＵ１に接続されている。そして、割り込みコントローラ１０は、補助演算装置４から制御線１１を介して割り込み待機信号を受けると、ＣＰＵ１が割り込み動作に移行するのを禁止し、また、補助演算装置４から制御線１１を介して割り込みリクエスト信号を受けると、ＣＰＵ１に所定の割り込みルーチンを実行させる。
【００２８】
次に、補助演算装置４は、演算を行う演算部４−２と、ＣＰＵ１によって指定された内容の演算を演算部４−２に実行させるための制御を行う制御部４−１とを備えており、演算部４−２と制御部４−１は制御線４−３を介して互いに接続されている。また、演算部４−２がデータバス６に接続され、制御部４−１がアドレスバス７に接続されている。
【００２９】
そして、演算部４−２は、ＣＰＵ１によりアクセス可能なレジスタ部としてのレジスタユニット４−２−１と、演算動作の中核を成す演算ユニット４−２−２とを備えている。また、制御部４−１は、デコーダユニット４−１−１と、周辺メモリをアクセスするためにアドレスバス７へアドレスを出力するアドレス生成ユニット４−１−２とを備えている。
【００３０】
ここで、図２に示すように、演算部４−２のレジスタユニット４−２−１には、複数種類の演算内容に夫々対応したアドレスＡ0 ，Ａ1 ，Ａ2 ，…が付与されている。換言すれば、レジスタユニット４−２−１の各アドレスＡ0 ，Ａ1 ，Ａ2 ，…には、予め演算内容が夫々定められている。
【００３１】
そして、補助演算装置４は、ＣＰＵ１によってレジスタユニット４−２−１の何れかのアドレスＡx （但し、x は正の整数）にデータが書き込まれると、そのアドレスＡx に対応した内容の演算処理を、当該アドレスＡx に書き込まれたデータを用いて実行すると共に、その演算処理の実行中に、制御信号Ｓにより分離スイッチ８，９を開いて、分離スイッチ８，９よりもＣＰＵ１側のデータバス６及びアドレスバス７と、分離スイッチ８，９よりも補助演算装置４側のデータバス６及びアドレスバス７とが分離された状態にする。
【００３２】
尚、補助演算装置４が演算処理を実行している最中に、ＣＰＵ１が補助演算装置４の起動命令（即ち、補助演算装置４に演算処理を行わせる命令であって、レジスタユニット４−２−１の何れかのアドレスＡx にデータを書き込む命令）を実行すると、その際には分離スイッチ８，９が開いているため、ＣＰＵ１が補助演算装置４に新たな演算処理を行わせようとしたにも拘わらず補助演算装置４側でその演算処理が行われない、という不具合が生じる。
【００３３】
そこで、本実施形態では、補助演算装置４が、演算処理の実行中に、図１に示す制御線１３を介してＣＰＵ１へハイレベルの信号を出力し、ＣＰＵ１は、上記制御線１３の信号がハイレベルである時には、補助演算装置４の起動命令を実行しないようにしている。尚、上記不具合を解消するための手法としては、例えば、ＣＰＵ１の内部に、補助演算装置４の起動命令を実行した時にフラグをセットし、補助演算装置４での演算処理が終了した時に上記フラグをリセットするユニットを設け、そのフラグがセットされている時にＣＰＵ１が補助演算装置４の起動命令を実行しないように構成したり、或いは、補助演算装置４が、ＣＰＵ１からのリクエスト信号に対して、演算処理を実行していない場合にのみ応答信号（いわゆるアック信号）を返すようにし、ＣＰＵ１は、補助演算装置４の起動命令を実行する直前に、補助演算装置４へ上記リクエスト信号を出力して、補助演算装置４から応答信号が返って来なければ、その起動命令を実行しないようにしても良い。
【００３４】
また、本実施形態では、演算部４−２への演算データの取得方法として、直接アドレッシングモードと間接アドレッシングモードとの２種類を採用している。つまり、直接アドレッシングモードでは、ＣＰＵ１によってレジスタユニット４−２−１のアドレスＡx に書き込まれたデータが、そのまま演算データとなり、間接アドレッシングモードでは、ＣＰＵ１によってレジスタユニット４−２−１のアドレスＡx に書き込まれたデータが、演算データの格納されている周辺メモリ（本実施形態ではＲＡＭ５）のアドレスを示すアドレスポインタとなる。
【００３５】
このため、図２に示すように、レジスタユニット４−２−１には、同じ演算に対応するアドレスとして、直接アドレッシングモード用のアドレスと、間接アドレッシングモード用のアドレスとが設けられている。例えば、アドレスＡ0 が直接アドレッシングモードの階乗演算に対応し、アドレスＡ10が間接アドレッシングモードの階乗演算に対応している。また例えば、アドレスＡ1 が直接アドレッシングモードのｅｘｐ演算に対応し、アドレスＡ11が間接アドレッシングモードのｅｘｐ演算に対応している。
【００３６】
そこで以下、補助演算装置４の動作について、具体例を挙げて説明する。
最初に、補助演算装置４がｅｘｐ演算を間接アドレッシングモードで行う場合を例に挙げて説明する。
（Ｋ１）まず、ＣＰＵ１がメモリ転送命令によりレジスタユニット４−２−１のアドレスＡ11にデータを書き込むと、制御部４−１のデコーダユニット４−１−１は、上記アドレスＡ11にデータが書き込まれたことから、ＣＰＵ１によって指定された演算内容が間接アドレッシングモードのｅｘｐ演算であると判別する。
【００３７】
（Ｋ２）そして、デコーダユニット４−１−１は、上記分離スイッチ８，９が開くように制御信号Ｓを出力する。
すると、ＣＰＵ１と補助演算装置４とでバス６，７が分離された状態となる。つまり、分離スイッチ８，９よりもＣＰＵ１側のデータバス６及びアドレスバス７と、分離スイッチ８，９よりも補助演算装置４側のデータバス６及びアドレスバス７とが分離された状態になる。
【００３８】
（Ｋ３）次に、デコーダユニット４−１−１は、上記アドレスＡ11に書き込まれたデータを、制御線４−３を介して取り込み、そのデータをアドレス生成ユニット４−１−２からアドレスバス７へ出力させる。また、これと同時に、デコーダユニット４−１−１は、ＲＡＭ５へメモリ読み出し信号（リード信号）を出力して、上記アドレスＡ11に書き込まれたデータをアドレスポインタとするＲＡＭ５内の演算データを、演算部４−２の演算ユニット４−２−２にデータバス６を介して取り込ませる。
【００３９】
特に、この状態においては、分離スイッチ８，９が開いてＣＰＵ１と補助演算装置４とでバス６，７が分離された状態となっているため、補助演算装置４は、ＣＰＵ１の影響を受けることなくＲＡＭ５にアクセスすることができ、また、ＣＰＵ１も、当該補助演算装置４の影響を受けることなくＲＯＭ２やＲＡＭ３にアクセスして演算処理を進めることができる。
【００４０】
（Ｋ４）そして、デコーダユニット４−１−１は、演算ユニット４−２−２へ、制御線４−３を介してｅｘｐ演算用の制御信号を送る。
すると、演算ユニット４−２−２は、ＲＡＭ５から取り込んだ上記演算データに対してｅｘｐ演算を行い、その演算結果を、レジスタユニット４−２−１のアドレスのうち演算内容が定められていない特定の演算結果用アドレスに格納する。尚、この演算結果用アドレスは、例えばレジスタユニット４−２−１の最終アドレスＡm として設定されている。
【００４１】
（Ｋ５）こうして演算ユニット４−２−２での演算が終わると、デコーダユニット４−１−１は、分離スイッチ８，９が閉じるように制御信号Ｓを出力する。そして、これにより、補助演算装置４の動作が終了する。
すると、分離スイッチ８，９よりもＣＰＵ１側のデータバス６及びアドレスバス７と、分離スイッチ８，９よりも補助演算装置４側のデータバス６及びアドレスバス７とが接続されて、元の状態に戻ることとなる。そして、ＣＰＵ１は、レジスタユニット４−２−１の上記演算結果用アドレスに格納されたデータを読み出すことにより、ｅｘｐ演算の結果を取得することができる。
【００４２】
ここで、上記（Ｋ１）〜（Ｋ５）の動作内容を、ＣＰＵ１と補助演算装置４との動作タイミングを示す図３のタイムチャートを用いて、より詳細に説明する。尚、ここでは、ＣＰＵ１が一般的な５段パイプライン処理を行うＣＰＵであるものとする。そして、５段パイプライン処理を行うＣＰＵとは、図３における「ＣＰＵ側の動作タイミング」の欄に示すように、演算処理機能を、ＩＦ（命令読出：フェッチ），ＩＤ（命令解読：デコード），ＥＸ（実行），ＭＡ（メモリアクセス），及びＷＢ（ライトバツク）の５つのステージに分割し、それら各ステージの動作を、クロックＣＬＫに同期し且つ１つずつずらして並列に行うＣＰＵのことである。つまり、ＣＰＵ１は、ＩＦステージにて、ＲＯＭ２から命令を読み出し、ＩＤステージにて、ＩＦステージで読み出した命令をＣＰＵ１内のデコーダユニット（図示せず）により解読し、ＥＸステージにて、ＩＤステージで解読した命令の内容をＣＰＵ１内の演算ユニット（図示せず）により演算する。また、ＣＰＵ１は、ＭＡステージにて、ＥＸステージでの演算結果をアドレスとして、データバス６及びアドレスバス７に接続されているメモリ（ＲＯＭ２，ＲＡＭ３，ＲＡＭ５，補助演算装置４のレジスタユニット４−２−１）にアクセス（データ読み出し或いは書き込み）し、ＷＢステージにて、ＥＸステージでの演算結果又はＭＡステージで上記メモリから読み出したデータを、当該ＣＰＵ１の内部レジスタ（図示せず）に書き込む。
【００４３】
まず、図３における「ＣＰＵ側の動作タイミング」の欄の最初の命令処理Ｃ１のＩＦステージＳＴ１で、ＣＰＵ１が、補助演算装置４にｅｘｐ演算を間接アドレッシングモードで行わせる起動命令（つまり、レジスタユニット４−２−１のアドレスＡ11にデータを書き込む命令）をＲＯＭ２から読み出したとすると、ＣＰＵ１は、その命令処理Ｃ１のＭＡステージＳＴ２にて、補助演算装置４に対し、チップイネーブル信号ＣＥＮ及びライトイネーブル信号ＷＥＮ（図１にて図示省略）をアクティブレベルであるロウレベルにする。そして更に、ＣＰＵ１は、アドレスバス７へ、アドレス値“Ａ11”を出力すると共に、データバス６へ、レジスタユニット４−２−１のアドレスＡ11に書き込むべきデータを出力する。
【００４４】
すると、補助演算装置４では、図３における「補助演算装置側の動作タイミング」の欄のＩＤステージＳＴ３にて、デコーダユニット４−１−１が、上記チップイネーブル信号ＣＥＮ及びライトイネーブル信号ＷＥＮと、上記アドレス値“Ａ11”とにより、ＣＰＵ１によって指定された演算内容が間接アドレッシングモードのｅｘｐ演算であると判別する。また、同ＩＤステージＳＴ３にて、デコーダユニット４−１−１は、上記アドレス値“Ａ11”に基づきレジスタユニット４−２−１から該当するデータ（つまり、ＣＰＵ１によって書き込まれたデータ）を読み出して、アドレス生成ユニット４−１−２にアドレスバス７へ出力すべきアドレスを生成させる。
【００４５】
そして、次のＭＡステージＳＴ４にて、デコーダユニット４−１−１は、分離スイッチ８，９への制御信号Ｓをハイレベルにして、その両分離スイッチ８，９を開くと共に、アドレス生成ユニット４−１−２で生成したアドレスをアドレスバス７へ出力させる。また、これと同時に、デコーダユニット４−１−１は、ＲＡＭ５に対するチップイネーブル信号及びアウトプットイネーブル信号（図１及び図３にて図示省略）をアクティブレベルであるロウレベルにして、ＲＡＭ５内の該当するアドレスの演算データを、データバス６を介し当該補助演算装置４に取り込む。
【００４６】
そして更に、続くＥＸステージ（ＥＸ１）ＳＴ５にて、デコーダユニット４−１−１は、分離スイッチ８，９への制御信号Ｓをロウレベルにして、その両分離スイッチ８，９を閉じる。また、このＥＸステージ（ＥＸ１）ＳＴ５と、それに続くＥＸステージ（ＥＸ２）ＳＴ６とで、演算ユニット４−２−２によりｅｘｐ演算が行われる。尚、補助演算装置４側でのＥＸステージのサイクル数は、命令によって異なり、図３は２サイクルの場合を例示している。また、分離スイッチ８，９への制御信号Ｓは、ＥＸステージの後のＷＢステージＳＴ７でロウレベルにしても良い。
【００４７】
そして、補助演算装置４では、ＷＢステージＳＴ７にて、演算ユニット４−２−２による演算結果がレジスタユニット４−２−１の演算結果用アドレスに書き込まれる。
また、ＣＰＵ１は、補助演算装置４のレジスタユニット４−２−１からデータを読み出す命令により、例えば、図３における「ＣＰＵ側の動作タイミング」の欄の６番目の命令処理Ｃ６のＭＡステージＳＴ８にて、補助演算装置４に対し、チップイネーブル信号ＣＥＮ及びアウトプットイネーブル信号ＯＥＮ（図１にて図示省略）をアクティブレベルであるロウレベルにすると共に、アドレスバス７へ上記演算結果用アドレスに応じたアドレス値を出力して、レジスタユニット４−２−１の上記演算結果用アドレスからデータバス６を介して演算結果を読み出し、その読み出した演算結果を自己の内部レジスタに書き込むことにより、ｅｘｐ演算の結果を取得することができる。
【００４８】
尚、例えば、ＣＰＵ１がレジスタユニット４−２−１のアドレスＡ10にデータを書き込んだ場合には、上記（Ｋ１）〜（Ｋ５）と同様の手順で、そのアドレスＡ10に書き込まれたデータをアドレスポインタとするＲＡＭ５内の演算データに対し、階乗演算が行われることとなる。同様に、ＣＰＵ１がレジスタユニット４−２−１のアドレスＡ12にデータを書き込んだ場合には、上記（Ｋ１）〜（Ｋ５）と同様の手順で、そのアドレスＡ12に書き込まれたデータをアドレスポインタとするＲＡＭ５内の演算データに対し、ｌｏｇ演算が行われることとなる。
【００４９】
次に、補助演算装置４がｅｘｐ演算を直接アドレッシングモードで行う場合を例に挙げて説明する。
（Ｄ１）まず、ＣＰＵ１がメモリ転送命令によりレジスタユニット４−２−１のアドレスＡ1 にデータを書き込むと、デコーダユニット４−１−１は、上記アドレスＡ1 にデータが書き込まれたことから、ＣＰＵ１によって指定された演算内容が直接アドレッシングモードのｅｘｐ演算であると判別する。
【００５０】
（Ｄ２）そして、デコーダユニット４−１−１は、上記分離スイッチ８，９が開くように制御信号Ｓを出力する。
（Ｄ３）そして更に、デコーダユニット４−１−１は、演算ユニット４−２−２へ、制御線４−３を介してｅｘｐ演算用の制御信号を送る。
【００５１】
すると、演算ユニット４−２−２は、レジスタユニット４−２−１のアドレスＡ1 に書き込まれたデータを演算データとしてｅｘｐ演算を行い、その演算結果を、レジスタユニット４−２−１の上記演算結果用アドレスに格納する。
（Ｄ４）こうして演算ユニット４−２−２での演算が終わると、デコーダユニット４−１−１は、分離スイッチ８，９が閉じるように制御信号Ｓを出力する。そして、これにより、補助演算装置４の動作が終了する。
【００５２】
尚、例えば、ＣＰＵ１がレジスタユニット４−２−１のアドレスＡ0 にデータを書き込んだ場合には、上記（Ｄ１）〜（Ｄ４）と同様の手順で、そのアドレスＡ0 に書き込まれたデータを演算データとして、階乗演算が行われることとなる。同様に、ＣＰＵ１がレジスタユニット４−２−１のアドレスＡ2 にデータを書き込んだ場合には、上記（Ｄ１）〜（Ｄ４）と同様の手順で、そのアドレスＡ2 に書き込まれたデータを演算データとして、ｌｏｇ演算が行われることとなる。
【００５３】
次に、マイクロコンピュータＭ１の全体動作の一例について、図４を用いて説明する。
まず、図４（ｂ）において、プログラムＡとプログラムＢは、ＣＰＵ１で順次繰り返し処理されるメインルーチンのプログラム（メインプログラム）であり、プログラムＣは、ＣＰＵ１で処理される割り込みルーチンのプログラムである。
【００５４】
そして、プログラムＤは、プログラムＣによる演算結果を使用する割り込みルーチンのプログラムであり、補助演算装置４で処理される。つまり、プログラムＤは、前述の特殊演算（階乗，ｌｏｇ，ｅｘｐ，ｓｉｎ，ｃｏｓ，ｔａｎ等）の何れかを行うためのものであり、実際には、補助演算装置４の演算動作である。
【００５５】
また、プログラムＥは、プログラムＤによる演算結果（補助演算装置４の演算結果）を使用する割り込みルーチンのプログラムであり、ＣＰＵ１によって処理される。
尚、プログラムＣの最後の２命令は、プログラムＤを起動させる起動命令（即ち、補助演算装置４内のレジスタユニット４−２−１の何れかのアドレスにデータを書き込んで、補助演算装置４を作動させる命令）と、当該プログラムＣからメインプログラムＡ，Ｂに戻るための割り込みリターン命令とになっている。また、プログラムＥの最後の命令は、当該プログラムＥからメインプログラムＡ，Ｂに戻るための割り込みリターン命令になっている。
【００５６】
このような前提のもとで、ＣＰＵ１がメインプログラムＡ，Ｂを実行している最中に非同期の割り込みが発生すると、ＣＰＵ１は、自己の内部レジスタ，プログラムカウンタ，及びステータスレジスタの退避等を行った後、図４（ｂ）の矢印Ｙ１に示すように、プログラムＣの実行を開始する。
【００５７】
そしてその後、ＣＰＵ１がプログラムＣの最後の２命令（プログラムＤの起動命令と、割り込みリターン命令）を実行すると、図４（ｂ）の矢印Ｙ２に示すように、補助演算装置４が動作を開始してプログラムＤの処理（即ち、前述の特殊演算）が行われると共に、図４（ｂ）の矢印Ｙ３に示すように、ＣＰＵ１はメインプログラムＡ，Ｂの実行を再開することとなる。
【００５８】
ここで、プログラムＤの実行中（即ち、補助演算装置４が動作している間）は、前述したように、補助演算装置４の制御部４−１（詳しくは、デコーダユニット４−１−１）により分離スイッチ８，９が開かれて、ＣＰＵ１と補助演算装置４とでバス６，７が分離された状態となる。よって、この状態では、ＣＰＵ１によるメインプログラムＡ，Ｂの処理と補助演算装置４によるプログラムＤの処理とが並列に行われることとなる。
【００５９】
そして、プログラムＤが終了すると（即ち、補助演算装置４の動作が終了すると）、前述したように、補助演算装置４の制御部４−１により分離スイッチ８，９が閉じられて、ＣＰＵ１と補助演算装置４とがバス６，７で接続された元の状態に戻ることとなる。また、これと同時に、上記制御部４−１から割り込みコントローラ１０へ割り込みリクエスト信号が出力され、それに伴い、ＣＰＵ１は、図４（ｂ）の矢印Ｙ４に示すように、プログラムＥの実行を開始することとなる。
【００６０】
その後、ＣＰＵ１がプログラムＥの最後の命令（割り込みリターン命令）を実行すると、ＣＰＵ１は、図４（ｂ）の矢印Ｙ５に示すように、メインプログラムＡ，Ｂの実行を再開することとなる。
このように本第１実施形態のマイクロコンピュータＭ１では、補助演算装置４の動作中に、分離スイッチ８，９を開いて、ＣＰＵ１と補助演算装置４とでバス６，７が分離された状態にしているため、ＣＰＵ１と補助演算装置４との並列処理動作が可能となる。よって、図４（ｂ）に例示した如く、メインプログラムＡ，ＢとプログラムＤとを並列に処理することができ、その結果、当該マイクロコンピュータＭ１全体の演算速度の高速化が達成される。
【００６１】
即ち、仮に分離スイッチ８，９を備えていなければ、補助演算装置４によるＲＡＭ５へのアクセスと、ＣＰＵ１によるＲＯＭ２或いはＲＡＭ３へのアクセスとが同時に行えないため、ＰＣＵ１と補助演算装置４とが同時に動作することができない。よって、この場合には、図４（ａ）に示すように、プログラムＣ，Ｄ，Ｅを順次実行してからメインプログラムＡ，Ｂに復帰しなければならず、特に、プログラムＤの実行中（補助演算装置４の動作中）にＣＰＵ１によるメインプログラムＡ，Ｂの実行が停止されることとなり、演算速度を高速化することができない。これに対して、本第１実施形態のマイクロコンピュータＭ１によれば、そのような問題を解決することができるのである。
【００６２】
また更に、本第１実施形態のマイクロコンピュータＭ１では、補助演算装置４が、ＣＰＵ１によってレジスタユニット４−２−１の何れかのアドレスＡx にデータが書き込まれると、そのアドレスＡx に対応した内容の演算処理を該アドレスＡx に書き込まれたデータを用いて実行すると共に、その演算処理の実行中に分離スイッチ８，９を開けるようにしている。このため、ＣＰＵ１は、レジスタユニット４−２−１の所望のアドレスにデータを書き込むだけで、所望の演算処理を補助演算装置４に実行させることができる。
【００６３】
尚、本第１実施形態では、補助演算装置４の制御部４−１が、直接アドレッシングモードの場合にも分離スイッチ８，９を開くようにしたが、周辺メモリ（ＲＡＭ５）にアクセスしなければならない間接アドレッシングモードの場合にのみ、分離スイッチ８，９を開くようにしても良い。
【００６４】
次に、第２実施形態のマイクロコンピュータについて説明する。
まず図５は、本第２実施形態のマイクロコンピュータＭ２の構成を表すブロック図である。
図５に示すように、第２実施形態のマイクロコンピュータＭ２は、第１実施形態のマイクロコンピュータＭ１（図１）に対して、補助演算装置４が特定の演算を行う際に用いる定数データを予め格納したＲＯＭ１４と、そのＲＯＭ１４と補助演算装置４（詳しくは、補助演算装置４の演算部４−２）とを接続する専用のデータバス（以下、専用データバスという）１５と、上記ＲＯＭ１４と補助演算装置４（詳しくは、補助演算装置４の制御部４−１）とを接続する専用のアドレスバス（以下、専用アドレスバスという）１６とを、追加して備えている。つまり、補助演算装置４が、データバス６及びアドレスバス７とは予め分離された専用データバス１５と専用アドレスバス１６に接続されており、その専用データバス１５と専用アドレスバス１６には、補助演算装置４が演算に用いる定数データを格納したＲＯＭ１４が接続されている。
【００６５】
尚、本第２実施形態では、上記専用データバス１５と専用アドレスバス１６が、請求項２，３に係る発明における専用バスに相当しており、上記ＲＯＭ１４が、定数データを記憶したメモリに相当している。
そして、本第２実施形態のマイクロコンピュータＭ２において、ＲＯＭ１４には、上記定数データとして、少なくとも、補助演算装置４がデジタルフィルタ処理用の積和演算「Σ（ａ[ｎ]×ｂ[ｎ]）：ｎ＝０，１，２，…，Ｎ−１」を行うために用いる複数のフィルタ係数ｂ[ｎ]が格納されている。
そして更に、本第２実施形態のマイクロコンピュータＭ２では、図６に示すように、補助演算装置４の演算部４−２に備えられたレジスタユニット４−２−１のアドレスのうち、例えば、３つのアドレスＡ20，Ａ21，Ａ22が、上記デジタルフィルタ処理用の積和演算に対応付けられている。
【００６６】
具体的には、アドレスＡ20には、積和演算の最初の演算データａ[０]が格納された周辺メモリ（本実施形態ではＲＡＭ５）のアドレスを示すアドレスポインタがＣＰＵ１によって書き込まれ、また、アドレスＡ21には、積和演算の最初のフィルタ係数ｂ[０]が格納されているＲＯＭ１４のアドレスを示すアドレスポインタがＣＰＵ１によって書き込まれるようになっている。そして、アドレスＡ22には、積和の回数（フィルタ次数）を示すデータＮがＣＰＵ１によって書き込まれるようになっている。
【００６７】
そして、本第２実施形態において、補助演算装置４は、以下のような手順で積和演算の処理を行う。尚、ＲＡＭ５には、予めＣＰＵ１により積和演算の演算データ（ａ[ｎ]：ｎ＝０，１，２，…，Ｎ−１）が書き込まれているものとする。一方、補助演算装置４が積和演算以外の特殊演算を行う場合の動作は、前述した第１実施形態と同じである。
【００６８】
（Ｗ１）まず、ＣＰＵ１がメモリ転送命令によりレジスタユニット４−２−１のアドレスＡ20，Ａ21，Ａ22にデータを順次書き込むと、制御部４−１のデコーダユニット４−１−１は、上記アドレスＡ22にデータが書き込まれたことから、ＣＰＵ１によって指定された演算内容が積和演算であると判別する。
【００６９】
（Ｗ２）そして、デコーダユニット４−１−１は、分離スイッチ８，９が開くように制御信号Ｓを出力する。
（Ｗ３）そして更に、デコーダユニット４−１−１は、上記アドレスＡ22に書き込まれたデータ（Ｎ）を、制御線４−３を介して取り込んで、そのデータを積和の回数として自己の内部カウンタ（図示省略）にセットする。
【００７０】
（Ｗ４）次に、デコーダユニット４−１−１は、上記アドレスＡ20に書き込まれたデータ（ａ[０]のアドレスポインタ）と、上記アドレスＡ21に書き込まれたデータ（ｂ[０]のアドレスポインタ）とを、制御線４−３を介して取り込み、上記アドレスＡ20に書き込まれたデータをアドレス生成ユニット４−１−２からアドレスバス７へ出力させると共に、上記アドレスＡ21に書き込まれたデータをアドレス生成ユニット４−１−２から専用アドレスバス１６へ出力させる。
【００７１】
また、これと同時に、デコーダユニット４−１−１は、ＲＡＭ５とＲＯＭ１４との各々へメモリ読み出し信号を出力して、上記アドレスＡ20に書き込まれたデータをアドレスポインタとするＲＡＭ５内の最初の演算データａ[０]と、上記アドレスＡ21に書き込まれたデータをアドレスポインタとするＲＯＭ１４内の最初のフィルタ係数ｂ[０]とを、演算部４−２の演算ユニット４−２−２にデータバス６及び専用データバス１５を介して取り込ませる。
【００７２】
（Ｗ５）そして更に、デコーダユニット４−１−１は、演算ユニット４−２−２へ、制御線４−３を介して積和演算用の制御信号を送る。
すると、演算ユニット４−２−２は、ＲＡＭ５とＲＯＭ１４から取り込んだ上記演算データａ[０]とフィルタ係数ｂ[０]とに対して１回目の積和演算を行い、その演算結果を、レジスタユニット４−２−１の前述した演算結果用アドレスに格納する。
【００７３】
以後、デコーダユニット４−１−１は、下記の（Ｗ６）と（Ｗ７）の制御動作を、内部カウンタの値に基づきＮ回繰り返して行うことにより、演算ユニット４−２−２にＮ回の積和演算を行わせる。
（Ｗ６）デコーダユニット４−１−１は、アドレスバス７へ前回出力したデータに所定のオフセット（例えば１）を加算又は減算したデータを、アドレス生成ユニット４−１−２からアドレスバス７へ出力させると共に、専用アドレスバス１６へ前回出力したデータに所定のオフセット（例えば１）を加算又は減算したデータを、アドレス生成ユニット４−１−２から専用アドレスバス１６へ出力させる。
【００７４】
また、これと同時に、デコーダユニット４−１−１は、ＲＡＭ５とＲＯＭ１４との各々へメモリ読み出し信号を出力して、ＲＡＭ５内のｎ（≧２）番目の演算データａ[ｎ]とＲＯＭ１４内のｎ番目のフィルタ係数ｂ[ｎ]とを、演算ユニット４−２−２にデータバス６及び専用データバス１５を介して取り込ませる。
【００７５】
（Ｗ７）更に、デコーダユニット４−１−１は、演算ユニット４−２−２へ、制御線４−３を介して積和演算用の制御信号を送る。
すると、演算ユニット４−２−２は、ＲＡＭ５とＲＯＭ１４から取り込んだ上記演算データａ[ｎ]とフィルタ係数ｂ[ｎ]とに対してｎ回目の積和演算を行い、その演算結果を、レジスタユニット４−２−１の上記演算結果用アドレスに更新して格納する。
【００７６】
（Ｗ８）そして、デコーダユニット４−１−１は、上記（Ｗ６）と（Ｗ７）の制御動作をＮ回行うと、分離スイッチ８，９が閉じるように制御信号Ｓを出力する。これにより、補助演算装置４の動作が終了する。また、ＣＰＵ１は、レジスタユニット４−２−１の上記演算結果用アドレスに格納されたデータを読み出すことにより、Ｎ回積和演算「Σ（ａ[ｎ]×ｂ[ｎ]）：ｎ＝０，１，…，Ｎ−１」の結果を取得することができる。
【００７７】
ここで、上記（Ｗ１）〜（Ｗ８）の動作内容を、ＣＰＵ１と補助演算装置４との動作タイミングを示す図７のタイムチャートを用いて、より詳細に説明する。尚、ここでは、図３の場合と同様に、ＣＰＵ１が一般的な５段パイプライン処理を行うＣＰＵであるものとし、図７における「ＣＰＵ側の動作タイミング」の欄の最初の命令処理Ｃ１１のＩＦステージＳＴ１１にて、ＣＰＵ１が、補助演算装置４に積和演算を行わせる起動命令（つまり、レジスタユニット４−２−１のアドレスＡ22にデータを書き込む命令）をＲＯＭ２から読み出したものとする。また、図７は、補助演算装置４が積和演算を５回連続して行う場合（即ち、レジスタユニット４−２−１のアドレスＡ22に書き込まれたデータＮが４であった場合）を示している。
【００７８】
まず、この場合、ＣＰＵ１は、上記命令処理Ｃ１１のＭＡステージＳＴ１２にて、補助演算装置４に対し、チップイネーブル信号ＣＥＮ及びライトイネーブル信号ＷＥＮ（図５にて図示省略）をアクティブレベルであるロウレベルにする。そして更に、ＣＰＵ１は、アドレスバス７へ、アドレス値“Ａ22”を出力すると共に、データバス６へ、レジスタユニット４−２−１のアドレスＡ22に書き込むべきデータＮ（この例の場合、４を示すデータ）を出力する。
【００７９】
すると、補助演算装置４では、図７における「補助演算装置側の動作タイミング」の欄の最初の命令処理Ｃ２１のＩＤステージＳＴ１３にて、デコーダユニット４−１−１が、上記チップイネーブル信号ＣＥＮ及びライトイネーブル信号ＷＥＮと、上記アドレス値“Ａ22”とにより、ＣＰＵ１によって指定された演算内容が積和演算であると判別する。また、同ＩＤステージＳＴ１３にて、デコーダユニット４−１−１は、レジスタユニット４−２−１のアドレスＡ20〜Ａ22から、ＣＰＵ１によって書き込まれたデータを読み出し、アドレス生成ユニット４−１−２にアドレスバス７と専用アドレスバス１６との各々へ出力すべき各アドレスを生成させる。尚、この最初の命令処理Ｃ２１では、レジスタユニット４−２−１のアドレスＡ20から読み出したデータが、アドレスバス７へ出力すべきアドレスとなり、また、アドレスＡ21から読み出したデータが、専用アドレスバス１６へ出力すべきアドレスとなる。
【００８０】
そして、次のＭＡステージＳＴ１４にて、デコーダユニット４−１−１は、分離スイッチ８，９への制御信号Ｓをハイレベルにして、その両分離スイッチ８，９を開くと共に、アドレス生成ユニット４−１−２で生成した各アドレスを、アドレスバス７と専用アドレスバス１６との各々へ出力させる。また、これと同時に、デコーダユニット４−１−１は、ＲＡＭ５とＲＯＭ１４とに対するチップイネーブル信号及びアウトプットイネーブル信号（図５及び図７にて図示省略）をアクティブレベルであるロウレベルにして、ＲＡＭ５内の該当するアドレスの演算データと、ＲＯＭ１４内の該当するアドレスのフィルタ係数とを、データバス６と専用データバス１５との各々を介して当該補助演算装置４に取り込む。
【００８１】
そして更に、次のＥＸステージ（ＥＸ１）ＳＴ１５と、それに続くＥＸステージ（ＥＸ２）ＳＴ１６とで、演算ユニット４−２−２により、上記ＭＡステージＳＴ１４で取り込んだ演算データとフィルタ係数とに対し積和演算が１回行われる。尚、補助演算装置４側でのＥＸステージのサイクル数は、命令によって異なり、図７は２サイクルの場合を例示している。
【００８２】
そして、補助演算装置４では、ＷＢステージＳＴ１７にて、演算ユニット４−２−２による演算結果がレジスタユニット４−２−１の演算結果用アドレスに書き込まれる。尚、積和演算を連続で行う場合には、演算結果をレジスタユニット４−２−１内に格納せず、他の一時格納レジスタ（アキュムレータ）に格納するようにしても良い。
【００８３】
以上が１回目の積和演算を行う最初の命令処理Ｃ２１の動作であるが、補助演算装置４は、積和演算を連続して行う場合に、上記命令処理Ｃ２１と同様の動作を、図７における「補助演算装置側の動作タイミング」の欄に示すように、パイプライン処理により並列に行う。
【００８４】
つまり、積和演算を例えば５回連続して行う場合には、最初の命令処理Ｃ２１と他の４つの命令処理Ｃ２２〜Ｃ２５を、各ステージの動作が１つずつずれるように行うこととなる。
但し、最初の命令処理Ｃ２１以外の各命令処理Ｃ２２〜Ｃ２５のＩＤステージにおいて、デコーダユニット４−１−１は、アドレス生成ユニット４−１−２に、アドレスバス７と専用アドレスバス１６との各々へ前回出力したアドレスから次のＭＡステージで出力すべきアドレスを生成させる。つまり、前述したように、前回出力したアドレスに所定のオフセットを加算又は減算したデータが、次に出力されるアドレスとなる。
【００８５】
また、分離スイッチ８，９への制御信号Ｓは、ＭＡステージが連続して続いている間、デコーダユニット４−１−１によりハイレベルに維持され、これにより、ＣＰＵ１と補助演算装置４との並列動作が可能となる。そして、図７に示す例では、５番目の命令処理Ｃ２５のＥＸステージ（ＥＸ１）ＳＴ１８にて、上記制御信号Ｓがロウレベルにされ、分離スイッチ８，９が閉じられる。
【００８６】
一方、ＣＰＵ１が補助演算装置４による演算結果を取得するための手法としては、補助演算装置４が演算終了時にＣＰＵ１への割り込みリクエスト信号ＩＮＴＲ（制御線１１への信号）をアクティブレベルとしてのハイレベルにし、ＣＰＵ１が上記割り込みリクエスト信号ＩＮＴＲによって起動される割り込みルーチンにて、レジスタユニット４−２−１の演算結果用アドレスに格納されたデータを読み出すようにすることができる。
【００８７】
但し、一般に、ＣＰＵ１が割り込みルーチンへ移行するためには、その前に、プログラムカウンタ，ステータスレジスタ，及び汎用レジスタ等の値を退避させるための割り込みシーケンサ処理を行う必要がある。このため、その割り込みシーケンサ処理のサイクル数を考慮して、補助演算装置４での演算終了直後にＣＰＵ１が割り込みルーチンにて補助演算装置４から演算結果を読み出す命令を実行できるように、補助演算装置４から割り込みリクエスト信号ＩＮＴＲが出力される（ハイレベルにされる）タイミングを設定すれば、より効率的である。尚、図７では、最後の命令処理Ｃ２５のＥＸステージ（ＥＸ１）ＳＴ１８にて、割り込みリクエスト信号ＩＮＴＲをハイレベルにしている。
【００８８】
尚、図７では特に示していないが、ＣＰＵ１が補助演算装置４から演算結果を読み出す際には、前述した図３における命令処理Ｃ６のＭＡステージＳＴ８と同様に、補助演算装置４に対し、チップイネーブル信号ＣＥＮ及びアウトプットイネーブル信号ＯＥＮ（図５にて図示省略）をアクティブレベルであるロウレベルにすると共に、アドレスバス７へレジスタユニット４−２−１の上記演算結果用アドレスに応じたアドレス値を出力すれば良い。
【００８９】
次に、マイクロコンピュータＭ２の全体動作の一例について、図８を用いて説明する。
まず、図８（ｂ）において、プログラムＡとプログラムＢは、ＣＰＵ１で順次繰り返し処理されるメインプログラムである。
【００９０】
そして、プログラムＤは、メインプログラムＢによる演算結果を使用してデジタルフィルタ処理用の積和演算を行うサブルーチンのプログラムであり、補助演算装置４で処理される。つまり、プログラムＤは、前述の特殊演算のうちの積和演算を行うためのものであり、実際には、補助演算装置４の演算動作である。
【００９１】
また、プログラムＣは、プログラムＤによる演算結果（補助演算装置４による積和演算の演算結果）を使用する割り込みルーチンのプログラムであり、ＣＰＵ１によって処理される。
尚、プログラムＢの最後の２命令は、プログラムＤを起動させる起動命令（即ち、補助演算装置４内のレジスタユニット４−２−１のアドレスＡ20，Ａ21，Ａ22にデータを書き込んで、補助演算装置４に積和演算の動作をさせる命令）と、当該プログラムＢからメインプログラムＡの先頭に戻るためのジャンプ命令とになっている。また、プログラムＣの最後の命令は、当該プログラムＣからメインプログラムＡ，Ｂに戻るための割り込みリターン命令になっている。
【００９２】
このような前提のもとで、ＣＰＵ１がメインプログラムＢの最後の２命令（プログラムＤの起動命令と、メインプログラムＡの先頭へのジャンプ命令）を実行すると、図８（ｂ）の矢印Ｙ６に示すように、補助演算装置４が動作を開始してプログラムＤの処理（即ち、前述の積和演算）が行われる。また、ＣＰＵ１はメインプログラムＡ，Ｂを再びメインプログラムＡの先頭から実行することとなる。
【００９３】
ここで、プログラムＤの実行中（即ち、補助演算装置４が動作している間）は、前述したように分離スイッチ８，９が開かれて、ＣＰＵ１と補助演算装置４とでバス６，７が分離された状態となる。よって、この状態では、ＣＰＵ１によるメインプログラムＡ，Ｂの処理と補助演算装置４によるプログラムＤの処理とが並列に行われることとなる。
【００９４】
そして、プログラムＤが終了すると（即ち、補助演算装置４の動作が終了すると）、前述したように分離スイッチ８，９が閉じられて、ＣＰＵ１と補助演算装置４とがバス６，７で接続された元の状態に戻ることとなる。また、これと同時に、上記制御部４−１から割り込みコントローラ１０へ割り込みリクエスト信号が出力され、それに伴い、ＣＰＵ１は、図８（ｂ）の矢印Ｙ７に示すように、プログラムＣの実行を開始することとなる。
【００９５】
その後、ＣＰＵ１がプログラムＣの最後の命令（割り込みリターン命令）を実行すると、ＣＰＵ１は、図８（ｂ）の矢印Ｙ８に示すように、メインプログラムＡ，Ｂの実行を再開することとなる。
以上のように本第２実施形態のマイクロコンピュータＭ２においても、補助演算装置４の動作中に、分離スイッチ８，９を開いて、ＣＰＵ１と補助演算装置４とでバス６，７が分離された状態にしているため、図８（ｂ）に例示した如く、メインプログラムＡ，ＢとプログラムＤとを並列に処理することができ、その結果、当該マイクロコンピュータＭ２全体の演算速度の高速化が達成される。
【００９６】
即ち、仮に分離スイッチ８，９を備えていなければ、既述したようにＰＣＵ１と補助演算装置４とが同時に動作することができないため、例えば図８（ａ）に示すように、プログラムＣをサブルーチンに変更して、プログラムＤの直後に実行しなければならず、しかも、その間はメインプログラムＡ，Ｂを処理することができない。これに対して、本第２実施形態のマイクロコンピュータＭ２によれば、そのような問題は無い。
【００９７】
そして更に、本第２実施形態のマイクロコンピュータＭ２では、補助演算装置４と、補助演算装置４が積和演算に用いるフィルタ係数を格納したＲＯＭ１４とを、専用データバス１５及び専用アドレスバス１６を介して接続するようにしているため、補助演算装置４は、ＲＡＭ５とＲＯＭ１４との各々から、積和演算の演算データａとフィルタ係数ｂとを同時に読み出して、積和演算の処理を効率良く実行することができる。特に、この種の積和演算を行うには一般に時間がかかるため、本第２実施形態のマイクロコンピュータＭ２が有効である。
【００９８】
ここで、上記各実施形態のマイクロコンピュータＭ１，Ｍ２の効果を一層明らかにするために、各マイクロコンピュータＭ１，Ｍ２の動作と、分離スイッチ８，９を備えない従来構成のマイクロコンピュータの動作とを、図９を用いて比較説明する。尚、図９（ａ）は、従来構成のマイクロコンピュータの状態遷移を表しており、図９（ｂ）は、第１及び第２実施形態のマイクロコンピュータＭ１，Ｍ２の状態遷移を表している。また、図９及び以下の説明において、「ＣｏＰｒｏ」とは、補助演算装置４を意味している。
【００９９】
まず、図９（ａ）に示すように、分離スイッチ８，９を備えない従来構成のマイクロコンピュータの状態としては、リセット状態Ｊａ１と、ＣＰＵ動作状態Ｊａ２と、ＣｏＰｒｏ動作状態Ｊａ３との、３状態である。
そして、リセット状態Ｊａ１は、ＣＰＵ内部のプログラムカウンタや状態レジスタの内容をクリアする状態である。また、ＣＰＵ動作状態Ｊａ２は、ＣＰＵ１がＲＯＭ２の命令内容を実行しているか、或いは、例外処理時にＣＰＵ内部のシーケンサが動作している状態であり、この状態Ｊａ２の時に、ＣｏＰｒｏ（補助演算装置４）は、内部レジスタの内容を保持したまま次サイクルの命令（処理内容）を実行しない状態（ＣｏＰｒｏ停止状態）にある。また更に、ＣｏＰｒｏ動作状態Ｊａ３は、ＣＰＵ１のＣｏＰｒｏ起動命令（即ち、レジスタユニット４−２−１にデータを書き込む命令）により指定内容をＣｏＰｒｏで実行している状態であり、この状態Ｊａ３の時に、ＣＰＵ１は、内部レジスタの内容を保持したまま次サイクルの命令（処理内容）を実行しない状態（ＣＰＵ停止状態）にある。
【０１００】
次に、従来構成のマイクロコンピュータの状態遷移条件について説明すると、まず、初期状態ではリセット状態Ｊａ１であり、リセット信号解除後、無条件にＣＰＵ動作状態Ｊａ２へ遷移する。
そして、ＣＰＵ動作状態Ｊａ２では、ＣＰＵ命令や複数サイクルに及ぶＣＰＵ命令の実行中には、状態遷移せず、ＣＰＵ１にてＣｏＰｒｏ起動命令が実行されると、ＣｏＰｒｏ動作状態（ＣＰＵ停止状態）Ｊａ３へ遷移する。
【０１０１】
また、ＣｏＰｒｏ動作状態Ｊａ３では、ＣｏＰｒｏが動作中には、状態遷移せず、ＣｏＰｒｏ動作が終了すると、ＣＰＵ動作状態Ｊａ２へ遷移する。
そして、全状態において、リセット時には、リセット状態Ｊａ１へ遷移する。一方、図９（ｂ）に示すように、第１及び第２実施形態のマイクロコンピュータＭ１，Ｍ２の状態としては、リセット状態Ｊｂ１と、「ＣＰＵ動作，ＣｏＰｒｏ停止」状態Ｊｂ２と、「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３と、「ＣＰＵ停止，ＣｏＰｒｏ動作」状態Ｊｂ４との、４状態である。
【０１０２】
尚、リセット状態Ｊｂ１は、従来のリセット状態Ｊａ１と同様である。また、「ＣＰＵ動作，ＣｏＰｒｏ停止」状態Ｊｂ２は、ＣＰＵ１は従来のＣＰＵ動作状態Ｊａ２と同様で、且つ、ＣｏＰｒｏは停止状態である。また更に、「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３は、ＣＰＵ１は従来のＣＰＵ動作状態Ｊａ２と同様で、且つ、ＣｏＰｒｏは従来のＣｏＰｒｏ動作状態Ｊａ３と同様である。そして、「ＣＰＵ停止，ＣｏＰｒｏ動作」状態Ｊｂ４は、ＣＰＵ１は停止状態であり、且つ、ＣｏＰｒｏは従来のＣｏＰｒｏ動作状態Ｊａ３と同様である。
【０１０３】
次に、第１及び第２実施形態のマイクロコンピュータＭ１，Ｍ２の状態遷移条件について説明すると、まず、初期状態ではリセット状態Ｊｂ１であり、リセット信号解除後、無条件に「ＣＰＵ動作，ＣｏＰｒｏ停止」状態Ｊｂ２へ遷移する。
【０１０４】
そして、「ＣＰＵ動作，ＣｏＰｒｏ停止」状態Ｊｂ２では、ＣＰＵ命令や複数サイクルに及ぶＣＰＵ命令の実行中には、状態遷移せず、ＣＰＵ１にてＣｏＰｒｏ起動命令が実行されると、「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３へ遷移して、ＣＰＵ１とＣｏＰｒｏとが並列動作する。
【０１０５】
また、「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３では、ＣｏＰｒｏ動作が終了すると、「ＣＰＵ動作，ＣｏＰｒｏ停止」状態Ｊｂ２へ戻るが、この「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３にて、ＣＰＵ１がＲＯＭ２から読み出した次の命令がＣｏＰｒｏ起動命令であったときには、「ＣＰＵ停止，ＣｏＰｒｏ動作」状態Ｊｂ４へ遷移する。尚、これは、ＣｏＰｒｏが動作中には、前述したように、ＣｏＰｒｏからＣＰＵ１へ制御線１３を介して出力される信号がハイレベルになっているためである。そして、この「ＣＰＵ停止，ＣｏＰｒｏ動作」状態Ｊｂ４において、ＣｏＰｒｏは上記状態Ｊｂ２で起動及び指定された演算処理（つまり、上記状態Ｊｂ２でＣＰＵ１により実行されたＣｏＰｒｏ起動命令に対応した演算処理）を行っており、ＣＰＵ１はＲＯＭ２から読み出した上記次のＣｏＰｒｏ起動命令を実行しない停止状態となっている。
【０１０６】
そして、「ＣＰＵ停止，ＣｏＰｒｏ動作」状態Ｊｂ４では、ＣｏＰｒｏが動作中には、状態遷移せず、ＣｏＰｒｏ動作が終了すると、「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３へ遷移する。尚、この時にＣｏＰｒｏで実行する内容は、最初の「ＣＰＵ動作，ＣｏＰｒｏ停止」状態Ｊｂ２時のＣｏＰｒｏ起動命令の内容ではなく、「ＣＰＵ停止，ＣｏＰｒｏ動作」状態Ｊｂ４へ遷移する直前にＣＰＵ１がＲＯＭ２から読み出したＣｏＰｒｏ起動命令であって、「ＣＰＵ停止，ＣｏＰｒｏ動作」状態Ｊｂ４から「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３へ戻ったときにＣＰＵ１にて実行されるＣｏＰｒｏ起動命令の内容である。
【０１０７】
また、全状態において、リセット時には、リセット状態Ｊｂ１へ遷移する。
ここで、図９（ａ），（ｂ）の対比から明らかなように、従来構成のマイクロコンピュータでは、ＣＰＵ１とＣｏＰｒｏ（補助演算装置４）とが並列に動作する状態はないが、第１及び第２実施形態のマイクロコンピュータＭ１，Ｍ２では、ＣＰＵ１とＣｏＰｒｏとが並列動作する「ＣＰＵ動作，ＣｏＰｒｏ動作」状態Ｊｂ３が存在する。そして、その状態Ｊｂ３の存在が第１及び第２実施形態のマイクロコンピュータＭ１，Ｍ２における最大の特徴であり、バス６，７に分離スイッチ８，９を設けることによって、上記状態Ｊｂ３を実現できるのである。
【０１０８】
次に、第３実施形態のマイクロコンピュータについて、図１０を用いて説明する。尚、図１０において、前述した第１及び第２実施形態のマイクロコンピュータＭ１，Ｍ２と同じ構成要素については、同一の符号を付しているため、詳細な説明は省略する。
【０１０９】
図１０に示すように、第３実施形態のマイクロコンピュータＭ３は、第１実施形態のマイクロコンピュータＭ１（図１）に対して、データバス６とアドレスバス７に分離スイッチ８，９が設けられておらず、その代わりに、互いに独立した２組のアドレスポートＰＡ１，ＰＡ２及びデータポートＰＤ１，ＰＤ２の各々を介して２つのデータの読み出し及び書き込みを同時に行うことができる、デュアルポートメモリとしてのデュアルポートＲＡＭ１７を備えている。更に、デュアルポートＲＡＭ１７を設けたため、ＲＡＭ３とＲＡＭ５を削除している。
【０１１０】
そして、上記デュアルポートＲＡＭ１７の一方のデータポートＰＤ１とアドレスポートＰＡ１は、夫々、データバス６とアドレスバス７とに接続されており、他方のデータポートＰＤ２とアドレスポートＰＡ２は、夫々、上記データバス６及びアドレスバス７とは予め分離された第２のデータバス１８と第２のアドレスバス１９とを介して、補助演算装置４に接続されている。具体的には、データポートＰＤ２は、第２のデータバス１８を介して、補助演算装置４の演算部４−２に接続され、アドレスポートＰＡ２は、第２のアドレスバス１９を介して、補助演算装置４の制御部４−１に接続されている。
【０１１１】
尚、本第３実施形態では、データバス６とアドレスバス７が、請求項４に係る発明にて中央演算装置と補助演算装置とを接続するバス（第１のバス）に相当しており、第２のデータバス１８と第２のアドレスバス１９が、請求項４に係る発明における第２のバスに相当している。
【０１１２】
以上のように構成された本第３実施形態のマイクロコンピュータＭ３においては、デュアルポートＲＡＭ１７が、第１実施形態における２つのＲＡＭ３，５（特にＲＡＭ５）の代わりに用いられる。つまり、ＣＰＵ１は、データバス６及びアドレスバス７とデュアルポートＲＡＭ１７の一方のデータポートＰＤ１及びアドレスポートＰＡ１を介して、該デュアルポートＲＡＭ１７に自己の演算結果や補助演算装置４での演算対象となる演算データを書き込み、また、そのデュアルポートＲＡＭ１７から必要なデータを読み出す。
【０１１３】
そして、補助演算装置４は、間接アドレッシングモードの演算動作を行う際には、第２のデータバス１８及び第２のアドレスバス１９とデュアルポートＲＡＭ１７の他方のデータポートＰＤ２及びアドレスポートＰＡ２を介して、該デュアルポートＲＡＭ１７から、ＣＰＵ１によって書き込まれた演算対象の演算データを読み出す。
【０１１４】
特に、ＣＰＵ１と補助演算装置４との各々によるデュアルポートＲＡＭ１７へのアクセスは、互いの影響を受けることなく独立に行うことができる。
よって、本第３実施形態のマイクロコンピュータＭ３によっても、第１実施形態のマイクロコンピュータＭ１と同様に、ＣＰＵ１と補助演算装置４とでデータを共有しつつ、ＣＰＵ１と補助演算装置４との並列処理動作が可能となり、その結果、演算速度の高速化が達成される。
【０１１５】
次に、第４実施形態のマイクロコンピュータについて、図１１を用いて説明する。尚、図１１において、前述した第１〜第３実施形態のマイクロコンピュータＭ１〜Ｍ３と同じ構成要素については、同一の符号を付しているため、詳細な説明は省略する。
【０１１６】
図１１に示すように、第４実施形態のマイクロコンピュータＭ４は、第２実施形態のマイクロコンピュータＭ２（図５）に対して、第１実施形態と第３実施形態との関係と全く同様に、データバス６とアドレスバス７に分離スイッチ８，９が設けられておらず、その代わりに、デュアルポートメモリとしてのデュアルポートＲＡＭ１７を備えている。また、デュアルポートＲＡＭ１７を設けたため、ＲＡＭ３とＲＡＭ５を削除している。そして、上記デュアルポートＲＡＭ１７の一方のデータポートＰＤ１とアドレスポートＰＡ１は、夫々、データバス６とアドレスバス７とに接続されており、他方のデータポートＰＤ２とアドレスポートＰＡ２は、夫々、第２のデータバス１８と第２のアドレスバス１９とを介して、補助演算装置４に接続されている。
【０１１７】
換言すれば、本第４実施形態のマイクロコンピュータＭ４は、第３実施形態のマイクロコンピュータＭ３（図１０）に対して、補助演算装置４が特定の演算を行う際に用いる定数データを予め格納したＲＯＭ１４と、そのＲＯＭ１４と補助演算装置４とを接続する専用データバス１５及び専用アドレスバス１６とを、追加して備えている。
【０１１８】
尚、本第４実施形態では、上記専用データバス１５と専用アドレスバス１６が、請求項５，６に係る発明における専用バスに相当しており、上記ＲＯＭ１４が、定数データを記憶したメモリに相当している。
そして、このような本第４実施形態のマイクロコンピュータＭ４によっても、第２実施形態のマイクロコンピュータＭ２と同じ効果を得ることができる。
【０１１９】
尚、上記第３及び第４実施形態のマイクロコンピュータＭ３，Ｍ４においても、第１及び第２実施形態のマイクロコンピュータＭ１，Ｍ２と同様に、図９（ｂ）の如く状態が遷移する。
以上、本発明の一実施形態について説明したが、本発明は、上記各実施形態に限定されるものではなく、種々の形態を採り得ることは言うまでもない。
【０１２０】
例えば、上記各実施形態の補助演算装置４では、演算部４−２への演算データの取得方法として、直接アドレッシングモードと間接アドレッシングモードとを採用したが、間接アドレッシングモードの代わりに、例えば、ディスプレースメント付きアドレッシングモード、ポストインクリメント付きアドレッシングモード、或いはデクリメント付きアドレッシングモード等の、他のアドレッシングモードを採用しても良い。
【０１２１】
また、上記各実施形態の補助演算装置４では、レジスタユニット４−２−１のアドレス毎にアドレッシングモードが決っていたが、例えば、ＣＰＵ１によってレジスタユニット４−２−１に書き込まれるデータ中の特定のビットを、アドレッシングモードの識別ビットとし、補助演算装置４の制御部４−１が、その識別ビットによってアドレッシングモードの種別を判別するようにしても良い。そして、この場合には、レジスタユニット４−２−１のアドレス数を少なくすることができる。
【０１２２】
また更に、レジスタユニット４−２−１に書き込まれるデータ中の特定のビットを、命令の種類を示す命令識別ビットとすることも可能である。
一方、上記第２及び第４実施形態のマイクロコンピュータＭ２，Ｍ４において、ＲＯＭ１４の代わりにＲＡＭを用い、そのＲＡＭへ、例えば当該マイクロコンピュータＭ２，Ｍ４の動作開始時等に定数データを転送しておくようにしても良い。
【０１２３】
また、上記第３及び第４実施形態のマイクロコンピュータＭ３，Ｍ４においては、補助演算装置４が演算結果をデュアルポートＲＡＭ１７に書き込むようにしても良い。そして、この場合、ＣＰＵ１は、デュアルポートＲＡＭ１７のデータポートＰＤ１及びアドレスポートＰＡ１側から補助演算装置４の演算結果を読み出せば良い。
【図面の簡単な説明】
【図１】  第１実施形態のマイクロコンピュータの構成を表すブロック図である。
【図２】  第１実施形態の補助演算装置に備えられたレジスタユニットを説明する説明図である。
【図３】  第１実施形態のマイクロコンピュータにおけるＣＰＵと補助演算装置との動作タイミングを示すタイムチャートである。
【図４】  第１実施形態のマイクロコンピュータの全体動作の一例を説明する説明図である。
【図５】  第２実施形態のマイクロコンピュータの構成を表すブロック図である。
【図６】  第２実施形態の補助演算装置に備えられたレジスタユニットを説明する説明図である。
【図７】  第２実施形態のマイクロコンピュータにおけるＣＰＵと補助演算装置との動作タイミングを示すタイムチャートである。
【図８】  第２実施形態のマイクロコンピュータの全体動作の一例を説明する説明図である。
【図９】  第１及び第２実施形態のマイクロコンピュータの効果を説明する説明図である。
【図１０】  第３実施形態のマイクロコンピュータの構成を表すブロック図である。
【図１１】  第４実施形態のマイクロコンピュータの構成を表すブロック図である。
【符号の説明】
Ｍ１，Ｍ２，Ｍ３，Ｍ４…マイクロコンピュータ
１…ＣＰＵ（中央演算装置）
２，１４…ＲＯＭ    ３，５…ＲＡＭ    ４…補助演算装置
４−１…制御部    ４−１−１…デコーダユニット
４−１−２…アドレス生成ユニット    ４−２…演算部
４−２−１…レジスタユニット    ４−２−２…演算ユニット
４−３…制御線    ６…データバス    ７…アドレスバス
８，９…分離スイッチ    １０…割り込みコントローラ
１１，１２，１３…制御線    １５…専用データバス
１６…専用アドレスバス    １７…デュアルポートＲＡＭ
１８…第２のデータバス    １９…第２のアドレスバス
【図１】
0003829504.tif 000002
【図２】
0003829504.tif 000003
【図３】
0003829504.tif 000004
【図４】
0003829504.tif 000005
【図５】
0003829504.tif 000006
【図６】
0003829504.tif 000007
【図７】
0003829504.tif 000008
【図８】
0003829504.tif 000009
【図９】
0003829504.tif 000010
【図１０】
0003829504.tif 000011
【図１１】
0003829504.tif 000012