(57)【特許請求の範囲】
【請求項１】
少なくとも１つのＲＩＳＣ型命令を有するプロセス命令を実行可能なマイクロプロセッサにおいて、
入出力データ転送内容を示す情報とプロセス命令の格納場所を示すアドレス情報から構成されるマイクロコードを解読する命令解読手段と、
該命令解読手段にて解読された入出力データ転送内容を示す情報に対応する入力データと、該アドレス情報に対応するプロセス命令を取り込むデータ取り込み手段と、
該データ取り込み手段にて取り込まれた入力データ、及びプロセス命令に従って演算処理を実行可能な演算器リソースを実装する演算処理実行手段と、
プロセス命令を任意に構築可能なプロセス命令記憶手段と、
前記演算処理実行手段の演算結果、及び任意に設定可能な入力データを記憶する入出力データ記憶手段と、
前記データ取り込み手段にて読み込まれた入力データをラッチ後、前記演算処理実行手段内の演算器リソースに通知するパスを有し、
前記マイクロコードは、前記プロセス命令の格納場所を示すアドレス情報に代えて、直接、少なくとも１つのＲＩＳＣ型命令を実装可能とし、
前記データ取り込み手段は、前記プロセス命令の格納場所を示すアドレス情報に基づいて、該プロセス命令記憶手段を参照することにより、対応するプロセス命令を取り込み、
更に該入出力データ記憶手段から前記入出力データ転送内容を示す情報に対応する入力データを取り込み、
前記演算処理実行手段は、該入力データを再度使用する場合、該パスからの該入力データを取り込むことを特徴とするマイクロプロセッサ。
【請求項２】
請求項１記載のマイクロプロセッサにおいて、
更に、前記データ取り込み手段にて読み込まれた入力データを直接、前記演算処理実行手段内の演算器リソースに通知するパスを有し、
前記ラッチ後に演算器リソースに通知するパスと、該直接演算器リソースに通知するパスの内、いずれか１つからの入力データを使用することを特徴とするマイクロプロセッサ。
【請求項３】
請求項１または２記載のマイクロプロセッサにおいて、
ラッチされた入力データは、前記演算処理実行手段内の全ての演算器リソースにて使用可能な構成とすることを特徴とするマイクロプロセッサ。
【請求項４】
請求項１乃至３いずれか一項記載のマイクロプロセッサにおいて、
前記演算処理実行手段は、前記プロセス命令記憶手段内のプロセス命令を変更することにより、任意接続可能な複数の演算器リソースを有し、
１つの演算器リソースの演算結果を直接次の演算器リソースの入力として使用することを特徴とするマイクロプロセッサ。
【請求項５】
請求項４記載のマイクロプロセッサにおいて、
前記演算処理実行手段は、更に前記演算器リソースを必要としない処理に対して、前記入力データを伝搬するスルーパスを有し、
スルーパスの出力結果を直接次の演算器リソースの入力として使用することを特徴とするマイクロプロセッサ。
【請求項６】
請求項４または５記載のマイクロプロセッサにおいて、
１つの演算器リソースの演算結果を直接次の演算器リソースの入力として使用する場合、
前記演算処理実行手段は、プロセス命令に対応する最終的な演算器リソースの演算処理結果のみ出力することを特徴とするマイクロプロセッサ。
【請求項７】
請求項１乃至６いずれか一項記載のマイクロプロセッサにおいて、
前記演算処理実行手段は、前記プロセス命令に実装されるＲＩＳＣ型命令を並列に実行し、演算処理実行順に関係なく、演算処理結果を演算処理終了順に出力することを特徴とするマイクロプロセッサ。
【請求項８】
請求項１乃至７いずれか一項記載のマイクロプロセッサにおいて、
前記演算処理実行手段内の各演算器リソースは、演算処理結果を独立に出力するマルチポート構成とすることを特徴とするマイクロプロセッサ。
【請求項９】
請求項１乃至８いずれか一項記載のマイクロプロセッサにおいて、
同じ機能を有する演算器リソースを複数有し、且つ１つのプロセス命令内に複数のＲＩＳＣ型命令を含み、該ＲＩＳＣ型命令の並列実行時に演算器リソースが競合する場合、
前記演算処理実行手段は、同じ機能を有する他の演算器リソースを使用して競合回避処理を実行することを特徴とするマイクロプロセッサ。
【請求項１０】
請求項３乃至９いずれか一項記載のマイクロプロセッサにおいて、
前記演算処理実行手段にて実行されるプロセス命令に対応する最終的な演算器リソースの演算処理結果を、前記入出力データ記憶手段に記憶すると同時に、
該演算処理結果を直接、前記データ取り込み手段に通知するパスと、
該演算処理結果をラッチ後、該データ取り込み手段に通知するパスとを有し、  該データ取り込み手段は、次のプロセス命令にて該演算処理結果を使用する場合、該入出力データ記憶手段からではなく、いずれかのパスからの演算処理結果を取り込むことを特徴とするマイクロプロセッサ。
【請求項１１】
請求項１乃至１０いずれか一項記載のマイクロプロセッサにおいて、
前記データ取り込み部は、入出力データ記憶部からの入力ポートをマルチポート構成とし、各演算器リソースへの入力データを同時に供給することを特徴とするマイクロプロセッサ。
【請求項１２】
請求項１乃至１１いずれか一項記載のマイクロプロセッサにおいて、
前記マイクロコードに対応する演算処理を実行可能な複数のパイプラインを有することを特徴とするマイクロプロセッサ。
【請求項１３】
請求項４記載のマイクロプロセッサにおいて、
入力データ、及びプロセス命令に従って演算処理を実行可能とし、更にプロセス命令を変更することにより任意接続可能な複数の演算器リソースを有し、
１つの演算器リソースの演算結果を一時的に記憶することなく、次の演算器リソースの入力として使用することを特徴とするマイクロプロセッサ。
【請求項１４】
請求項１３記載のマイクロプロセッサにおいて、
更に前記演算器リソースを必要としない処理に対して、前記入力データを伝搬するスルーパスを有し、
スルーパスの出力結果を一時的に記憶することなく、次の演算器リソースの入力として使用することを特徴とするマイクロプロセッサ。
【請求項１５】
請求項１３または１４記載のマイクロプロセッサにおいて、
１つの演算器リソースの演算結果を一時的に記憶することなく、次の演算器リソースの入力として使用する場合、
プロセス命令に対応する最終的な演算器リソースの演算処理結果のみ出力することを特徴とするマイクロプロセッサ。
【請求項１６】
請求項４記載のマイクロプロセッサにおいて、
前記プロセス命令に実装されるＲＩＳＣ型命令を並列に実行し、演算処理実行順に関係なく、演算処理結果を演算処理終了順に出力することを特徴とするマイクロプロセッサ。
【請求項１７】
請求項４記載のマイクロプロセッサにおいて、
入力データ、及びプロセス命令に従って演算処理を実行する複数の演算器リソースを有し、
各演算器リソースは、演算処理結果を独立に出力するマルチポート構成とすることを特徴とするマイクロプロセッサ。
【請求項１８】
少なくとも１つのＲＩＳＣ型命令を実装するプロセス命令を実行可能なマイクロプロセッサの演算処理実行方法において、
入出力データ転送内容を示す情報とプロセス命令の格納場所を示すアドレス情報から構成されるマイクロコードを解読する命令解読ステップと、
該命令解読ステップにて解読された入出力データ転送内容を示す情報に対応する入力データと、該アドレス情報に対応するプロセス命令を取り込むデータ取り込みステップと、
該データ取り込みステップにて取り込まれた入力データ、及びプロセス命令に従って演算処理を実行可能な演算器リソースで実行する演算処理実行ステップと、
プロセス命令を任意にプロセス命令記憶手段に構築するステップと、
前記演算処理実行ステップの演算結果、及び任意に設定可能な入力データを記憶する入出力データ記憶ステップと、
前記データ取り込みステップにて読み込まれた入力データをラッチ後、前記演算処理を実行可能な演算器リソースに通知するステップを有し、
前記マイクロコードは、前記プロセス命令の格納場所を示すアドレス情報に代えて、直接、少なくとも１つのＲＩＳＣ型命令を実装可能とし、
前記データ取り込みステップは、前記プロセス命令の格納場所を示すアドレス情報に基づいて、該プロセス命令記憶手段を参照することにより、対応するプロセス命令を取り込み、
更に該入出力データ記憶手段から前記入出力データ転送内容を示す情報に対応する入力データを取り込み、
前記演算処理実行ステップは、該入力データを再度使用する場合、該パスからの該入力データを取り込むことを特徴とするマイクロプロセッサの演算処理実行方法。
【請求項１９】
基本命令コードと拡張命令コードの格納場所を示す演算ＩＤとからなるマイクロコードを解読する命令解読手段と、
該命令解読手段で解読された演算命令により演算器リソースを選択して演算処理する演算処理実行手段とを備え、
前記基本命令コードにより最初の演算器リソースを選択し、前記拡張命令コードにより次の演算器リソースを選択し、それによりパイプライン演算することを特徴とするマイクロプロセッサ。
【請求項２０】
請求項１９記載のマイクロプロセッサにおいて、
前記演算処理実行手段は該命令解読手段よりも多く、かつ、並列に実行可能な複数の演算器リソースからなり、該演算器リソースの演算順序を変更可能に設けたことを特徴とするマイクロプロセッサ。
【請求項２１】
請求項２０記載のマイクロプロセッサにおいて、
前記複数の演算器リソースは、異なる演算器からなることを特徴とするマイクロプロセッサ。
【請求項２２】
請求項１９記載のマイクロプロセッサにおいて、
前記演算器リソースの出力を次の演算に用いる演算器リソースの入力に直接接続することにより、前記演算器リソース間の演算結果の入出力に入出力手段を使用しないことを特徴とするマイクロプロセッサ。
【請求項２３】
少なくとも１つのＲＩＳＣ型命令を有するプロセス命令を実行可能なマイクロプロセッサを
入出力データ転送内容を示す情報とプロセス命令の格納場所を示すアドレス情報から構成されるマイクロコードを解読する命令解読手段と、
該命令解読手段にて解読された入出力データ転送内容を示す情報に対応する入力データと、該アドレス情報に対応するプロセス命令を取り込むデータ取り込み手段と、
該データ取り込み手段にて取り込まれた入力データ、及びプロセス命令に従って演算処理を実行可能な演算器リソースを実装する演算処理実行手段と、
プロセス命令を任意に構築可能なプロセス命令記憶手段と、
前記演算処理実行手段の演算結果、及び任意に設定可能な入力データを記憶する入出力データ記憶手段と、
前記データ取り込み手段にて読み込まれた入力データをラッチ後、前記演算処理実行手段内の演算器リソースに通知するパスを有し、
前記マイクロコードは、前記プロセス命令の格納場所を示すアドレス情報に代えて、直接、少なくとも１つのＲＩＳＣ型命令を実装可能とし、
前記データ取り込み手段は、前記プロセス命令の格納場所を示すアドレス情報に基づいて、該プロセス命令記憶手段を参照することにより、対応するプロセス命令を取り込み、
更に該入出力データ記憶手段から前記入出力データ転送内容を示す情報に対応する入力データを取り込み、
前記演算処理実行手段は、該入力データを再度使用する場合、該パスからの該入力データを取り込むよう機能させるプログラムを記録したマイクロプロセッサ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコードに対応する演算処理を実行可能なマイクロプロセッサ、演算処理実行方法及び記憶媒体に関する。
近年、マイクロプロセッサは、高速化及び高集積化が進み、それに伴ってパーソナルコンピュータや携帯端末等のハードウェア技術、更にパーソナルコンピュータ等の情報処理技術も急速に発達している。
【０００２】
しかし、近年の情報処理技術の発達に伴い、演算処理体系も高度化、複雑化してきているため、キャッシュ等の記憶部のバンド幅が拡大し、その度にハードウェア、ソフトウェアを作り直している。
そこで、演算処理体系が高度化、複雑化しても、キャッシュ等の記憶部のバンド幅を拡大させることなく、開発期間を短縮可能なマイクロプロセッサが要望されている。
【０００３】
【従来の技術】
以下、命令コードであるマイクロコードに従って所定の演算処理を実行する従来の代表的なマイクロプロセッサについて説明する。
図２４は、従来のＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｎ  Ｗｏｒｄ）型のマイクロプロセッサのハードウェア構成を示す。
【０００４】
図２４のマイクロプロセッサは、大量の演算処理を高速に実行する必要性から、演算命令取り込み部３１１と演算命令解読部３１２とデータ取り込み部３１３と演算処理実行部３１４と演算結果書き込み部３１５とを有する複数のパイプラインから構成され、並列に演算処理を実行するパイプライン処理が用いられている。また、従来のマイクロプロセッサは、複数のパイプラインで構成されるため、複数のパイプラインで複雑な演算処理命令を実行する演算処理命令の水平展開を行っている。
【０００５】
例えば、図２４に示すように、パイプライン３０１、３０２、３０３、３０４の４種類のパイプラインから構成される場合、各パイプラインの演算結果は、記憶部３０５に書き込まれ、記憶部３０５を介して他のパイプラインに取り込まれることにより、パイプライン間のデータの受け渡しが可能となる。また、各パイプラインからの記憶部３０５への書き込みが競合する場合は、書き込み調停部３０６にて競合を回避する調停処理を実行する。
【０００６】
上記のように構成されるマイクロプロセッサの各パイプラインを構成する各部の機能を説明する。
演算命令取り込み部３１１は、演算処理に必要な入出力データの転送内容を示す情報と、プロセス命令（プロセス命令とは１つのパイプラインで演算処理される命令のことをいう）から構成されるマイクロコードを取り込む機能（フェッチ）を有する。
【０００７】
演算命令解読部３１２は、演算命令取り込み部３１１にて取り込まれたマイクロコードを解読する機能（デコード）を有する。
データ取り込み部３１３は、演算命令解読部３１２にて解読されたマイクロコードの入出力データの転送内容を示す情報に基づいて、記憶部３０５から演算処理に必要な入力データを取り込む機能（リード）を有する。
【０００８】
演算処理実行部３１４は、データ取り込み部３１３にて取り込まれた入力データ、及び演算命令解読部３１２にて解読されたプロセス命令に従って所定の演算を実行する機能を有する。尚、従来のマイクロプロセッサは、演算処理実行部３１４に単一の演算器リソースを有する。また、演算器リソースを１つ使用する基本的な命令をＲＩＳＣ型命令をいう。
【０００９】
演算結果書き込み部３１５は、演算処理実行部３１４にて実行された演算結果を記憶部３０５に書き込む機能（ライト）を有する。
また、図２５は、ＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）型マイクロプロセッサの演算処理のタイムチャートを示す。
【００１０】
ＣＩＳＣ型マイクロプロセッサは、乗除算、ストリング演算等の高機能で演算処理の複雑なプロセス命令を処理することを可能としている。即ち、ＣＩＳＣ型マイクロプロセッサは、１つのプロセス命令に複数のＲＩＳＣ型命令を行わせることにより、全体の実行命令数を減少させることができる。
例えば、図２５に示すように、命令ａ、及び命令ｂのプロセス命令を実行する場合のＣＩＳＣ型マイクロプロセッサの処理を説明する。尚、図２５において、Ｆａ、Ｆｂはそれぞれプロセス命令ａ、及びプロセス命令ｂのフェッチサイクルの時間を、Ｄ（１）からＤ（４）はプロセス命令ａ内のＲＩＳＣ型命令のデコード時間を、Ｄ（５）からＤ（８）はプロセス命令ｂ内のＲＩＳＣ型命令のデコード時間を、Ｒ（１）からＲ（４）はプロセス命令ａの実行に必要な入力データのリード時間を、Ｒ（５）からＲ（８）はプロセス命令ｂの実行に必要な入力データのリード時間を、Ｅ（１）からＥ（４）はプロセス命令ａ内のＲＩＳＣ型命令の実行時間を、Ｅ（５）からＥ（８）はプロセス命令ｂ内のＲＩＳＣ型命令の実行時間を、Ｗ（１）からＷ（４）はプロセス命令ａ内のＲＩＳＣ型命令の演算処理結果のライト時間を、Ｗ（５）からＷ（８）はプロセス命令ｂ内のＲＩＳＣ型命令の演算処理結果のライト時間を示す。また、プロセス命令ａ、及びプロセス命令ｂは、例えば、それぞれ４つのＲＩＳＣ型命令で構成されているものとする。
【００１１】
ＣＩＳＣ型マイクロプロセッサは、４サイクルでプロセス命令ａをフェッチし（Ｆａ）、更にプロセス命令ａ内のＲＩＳＣ型命令毎にデコード（Ｄ（１）〜Ｄ（４））、リード（Ｒ（１）〜Ｒ（４））、命令実行（Ｅ（１）〜Ｅ（４））、ライト（Ｗ（１）〜Ｗ（４））の順に処理を行い、図２５に示すように１１サイクルでプロセス命令ａの処理を終了する。
【００１２】
また、ＣＩＳＣ型マイクロプロセッサは、プロセス命令ａをフェッチ後のデコード（Ｄ（１）〜Ｄ（４））と同時に、次のプロセス命令ｂをフェッチし（Ｆｂ）、続けてプロセス命令ｂ内のＲＩＳＣ型命令毎にデコード（Ｄ（５）〜Ｄ（８））、リード（Ｒ（５）〜Ｒ（８））、命令実行（Ｅ（５）〜Ｅ（８））、ライト（Ｗ（５）〜Ｗ（８））の順に処理を行い、図２５に示すように合計１５サイクルでプロセス命令ａ、及びプロセス命令ｂの処理を終了する。
【００１３】
このように、ＣＩＳＣ型マイクロプロセッサの処理は、１つのプロセス命令に複数のＲＩＳＣ型命令を行わせることにより、ＣＰＩ（Ｃｙｃｌｅ  ｐｅｒ  Ｉｎｓｔｒｕｃｔｉｏｎ）は長くなるが、プログラム全体の実行命令数を減少させることができる。
また、図２６は、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）型マイクロプロセッサの演算処理のタイムチャートを示す。
【００１４】
ＲＩＳＣ型マイクロプロセッサは、ハードウェアが低機能な部分はソフトウェア技術で補うことを考えており、高水準言語で記述されたプログラムを実行する場合に、発生頻度の高い基本的な命令の実行サイクル数を短縮し、高速処理を可能にしている。即ち、ＲＩＳＣ型マイクロプロセッサは、１つのプロセス命令の内容をＲＩＳＣ型命令のみで構成することにより、または予めＲＩＳＣ型命令に分割することにより、ＣＰＩを短縮することができる。
【００１５】
例えば、図２６に示すように、ＲＩＳＣ型命令（１）〜（８）を実行する場合のＲＩＳＣ型マイクロプロセッサの処理を説明する。尚、図２６において、Ｆ（１）からＦ（８）はそれぞれＲＩＳＣ型命令（１）〜（８）のフェッチサイクルの時間を、Ｄ（１）からＤ（８）はそれぞれＲＩＳＣ型命令（１）〜（８）のデコード時間を、Ｒ（１）からＲ（８）はＲＩＳＣ型命令（１）〜（８）の実行に必要な入力データのリード時間を、Ｅ（１）からＥ（８）はＲＩＳＣ型命令（１）〜（８）の実行時間を、Ｗ（１）からＷ（８）はＲＩＳＣ型命令（１）〜（８）の演算処理結果のライト時間を示す。
【００１６】
ＲＩＳＣ型マイクロプロセッサは、ＲＩＳＣ型命令（１）をフェッチし（Ｆ（１））、更にＲＩＳＣ型命令（１）に対してデコード（Ｄ（１））、リード（Ｒ（１））、命令実行（Ｅ（１））、ライト（Ｗ（１））の順に処理を行い、図２６に示すように５サイクルでＲＩＳＣ型命令（１）の処理を終了する。
また、ＲＩＳＣ型マイクロプロセッサは、ＲＩＳＣ型命令（１）をフェッチ後のデコード（Ｄ（１））と同時に、次のＲＩＳＣ型命令（２）をフェッチし（Ｆ（２））、続けてＲＩＳＣ型命令（２）に対してデコード（Ｄ（２））、リード（Ｒ（２））、命令実行（Ｅ（２））、ライト（Ｗ（２））の順に処理を行い、更にＲＩＳＣ型命令（３）〜（８）に対して同様の処理を行い（Ｆ（３）〜Ｆ（８）、Ｄ（３）〜Ｄ（８）、Ｒ（３）〜Ｒ（８）、Ｅ（３）〜Ｅ（８）、Ｗ（３）〜Ｗ（８））、図２６に示すように合計１２サイクルでＲＩＳＣ型命令（１）〜（８）の処理を終了する。
【００１７】
このように、ＲＩＳＣ型マイクロプロセッサの処理は、１つのプロセス命令の内容をＲＩＳＣ型命令のみで構成することにより、ＣＰＩを短縮することができる。
【００１８】
【発明が解決しようとする課題】
しかしながら、従来のマイクロプロセッサは、命令体系の高度化、複雑化によるマイクロコードの拡大、及び演算処理パイプラインの並列化による記憶部（キャッシュ等）のバンド幅が拡大するという問題がある。
また、従来のＣＩＳＣ型マイクロプロセッサは、プロセス命令を高機能化（複数のＲＩＳＣ型命令を１つのプロセス命令に複雑化）することにより、図２５に示すようにプロセス命令数は減少できるが、ＣＰＩが増加し、一方、ＲＩＳＣ型マイクロプロセッサは、プロセス命令を簡単化（予め１つのプロセス命令を複数のＲＩＳＣ型命令に分割）することにより、図２６に示すようにＣＰＩは短縮できるが、プロセス命令数が増加する。このように従来のＣＩＳＣ型マイクロプロセッサ、及びＲＩＳＣ型マイクロプロセッサには相反する問題がある。
【００１９】
また、従来のマイクロプロセッサは、１つの演算器リソースの演算結果を記憶部（レジスタ等）に記憶し、該記憶部を参照することにより次の演算器リソースにデータの受け渡しが行われる。そのため、従来のマイクロプロセッサは、演算結果の確定時点からデータ参照までの間に、記憶部への書き込み時間を確保するために、最低でも１サイクル以上の間隔を必要とし、最小限のサイクル数で演算処理を実行できない。
【００２０】
また、従来のマイクロプロセッサは、１つのプロセス命令内に複数のＲＩＳＣ型命令を含み、一方のＲＩＳＣ型命令の演算結果を他方のＲＩＳＣ型命令が入力としていない場合、ＲＩＳＣ型命令入力順に演算結果を記憶部に書き込むため、即ち、先のＲＩＳＣ型命令の演算処理が終了するまで後のＲＩＳＣ型命令が保持され、その間にパイプラインストールが発生し、最小限のサイクル数で演算処理を実行できない。
【００２１】
また、従来のマイクロプロセッサは、各パイプラインからの記憶部への書き込みが競合する場合、書き込み調停部にて競合を回避する調停処理を実行するが、各パイプラインの並列化に伴い、調停処理の制御が複雑化するという問題がある。
また、従来のマイクロプロセッサは、記憶部から入力データを取得して所定の演算処理を実行しているが、該入力データは保持されないため、必要に応じて同じ入力データを再取得する必要があり、効率的な演算処理が実行できない。更に従来のマイクロプロセッサは、再取得した入力データが他の演算処理によって変化するという問題がある。
【００２２】
また、従来のマイクロプロセッサは、複数のパイプラインが並列に配置するように構成されるが、それに伴って、ハードウェアの規模が増大し、更に消費電力が増大するという問題がある。
本発明は、マイクロコードを拡大せずに演算処理命令（プロセス命令）の高度化、複雑化に対応し、演算処理命令に応じた効率的な演算処理を実行可能とし、更にハードウェアの規模、及び消費電力を減少可能なマイクロプロセッサ、演算処理実行方法及び記憶媒体を提供する。
【００２３】
【課題を解決するための手段】
そこで、上記課題を解決するため、本発明のマイクロプロセッサは、請求項１に記載のように、少なくとも１つのＲＩＳＣ型命令を有するプロセス命令を実行可能なマイクロプロセッサにおいて、入出力データ転送内容を示す情報とプロセス命令の格納場所を示すアドレス情報から構成されるマイクロコードを解読する命令解読手段（後述する実施例の演算命令解読部３に相当）と、該命令解読手段にて解読された入出力データ転送内容を示す情報に対応する入力データと、該アドレス情報に対応するプロセス命令を取り込むデータ取り込み手段（後述する実施例のデータ取り込み部４に相当）と、該データ取り込み手段にて取り込まれた入力データ、及びプロセス命令に従って演算処理を実行可能な演算器リソース（後述する実施例の演算器リソース３６、３７、３８、４２、４３、４４、４５、６３、６４、６５、７７、７８、７９、８０に相当）を実装する演算処理実行手段（後述する実施例の演算処理実行部７に相当）と、プロセス命令を任意に構築可能なプロセス命令記憶手段と、演算処理実行手段の演算結果、及び任意に設定可能な入力データを記憶する入出力データ記憶手段と、データ取り込み手段にて読み込まれた入力データをラッチ後、前記演算処理実行手段内の演算器リソースに通知するパスを有し、マイクロコードは、前記プロセス命令の格納場所を示すアドレス情報に代えて、直接、少なくとも１つのＲＩＳＣ型命令を実装可能とし、データ取り込み手段は、前記プロセス命令の格納場所を示すアドレス情報に基づいて、該プロセス命令記憶手段を参照することにより、対応するプロセス命令を取り込み、更に該入出力データ記憶手段から前記入出力データ転送内容を示す情報に対応する入力データを取り込み、演算処理実行手段は、該入力データを再度使用する場合、該パスからの該入力データを取り込む構成とする。
【００２４】
上記のように構成することにより、本発明のマイクロプロセッサは、マイクロコードを構成するプロセス命令の格納場所を示すアドレス情報に基づいて、プロセス命令を取り込むことが可能であるため、該マイクロコードを拡大せずに高度化、複雑化した演算処理命令に対応可能となる。
また、本発明のマイクロプロセッサにて演算処理を実行するためのマイクロコードは、前記プロセス命令の格納場所を示すアドレス情報を有することにより、演算処理が複雑な場合でも、マイクロコードを最小限におさえて、固定長とする。そのため、本発明のマイクロプロセッサは、マイクロコードの小型化を実現することで、命令キャッシュ等の記憶部を小型化できる。
【００２５】
例えば、プロセス命令が基本的な命令（ＲＩＳＣ型命令）の場合、プロセス命令の格納場所を示すアドレス情報からプロセス命令を解読する程、命令が複雑でないため、即ち、マイクロコードのビット幅、及びワード幅が拡大しないため、直接、プロセス命令として、ＲＩＳＣ型命令を実装することも可能となる。
【００２６】
従って、本発明のマイクロプロセッサにて実行されるＲＩＳＣ型命令は、該アドレス情報からプロセス命令を取り込まずに済むため、より効率的に演算処理を実行できる。
【００２７】
本発明のマイクロプロセッサは、前記アドレス情報に対応するプロセス命令記憶手段から所定のプロセス命令を取り込み、該プロセス命令に従って演算処理を実行する。また、プロセス命令記憶手段は、書き換え可能なＲＡＭで構成することにより、ユーザ任意で複雑なプロセス命令を指定可能となり、今後、更に高度化し、複雑化する演算処理にも容易に対応可能となる。
【００２８】
更にプロセス命令記憶手段を有することにより、ユーザ任意で複雑なプロセス命令を指定できるため、本発明のマイクロプロセッサは、改版が生じた場合でも、複雑な制御プログラムを変更することなく、プロセス命令記憶手段の変更で容易に対処することができる。同時にアプリケーションプログラムのコンパチビリティも保証しやすい。
本発明のマイクロプロセッサは、レジスタ、キャッシュ、メモリ等の入出力データ記憶手段からの入力データをラッチするため、再度入力する必要がなくなり、演算器リソースによる演算途中に再度利用可能である。従って、本発明のマイクロプロセッサは、他の演算処理によって入力データが書き換えられている場合でも、書き換えられる前の入力データが使用可能となる。
また、請求項１記載のマイクロプロセッサは、請求項２に記載のように、更に、前記データ取り込み手段にて読み込まれた入力データを直接、前記演算処理実行手段内の演算器リソースに通知するパス（後述する実施例の図２１及び図２２のスルーパスに相当）を有し、前記ラッチ後に演算器リソースに通知するパスと、該直接演算器リソースに通知するパスの内、いずれか１つからの入力データを使用することを特徴とする。
従って、本発明のマイクロプロセッサは、入出力データ記憶手段からの入出力データのラッチに必要な演算処理ディレイを最小限に抑えることができる。
また、請求項１または２記載のマイクロプロセッサにてラッチされた入力データは、請求項３に記載のように、前記演算処理実行手段内の全ての演算器リソースにて使用することができる。
【００２９】
また、本発明のマイクロプロセッサを構成する演算処理実行手段は、請求項４に記載のように、前記演算処理実行手段は、前記プロセス命令記憶手段内のプロセス命令を変更することにより、任意接続可能な複数の演算器リソース（後述する実施例の演算器リソース３６、３７、３８、４２、４３、４４、４５、６３、６４、６５、７７、７８、７９、８０に相当）を有し、１つの演算器リソースの演算結果を直接、即ち、一時的に記憶することなく、次の演算器リソースの入力として使用することを特徴とする。
【００３０】
加えて、本発明のマイクロプロセッサを構成する演算処理実行手段は、請求項５に記載のように、前記演算器リソースを必要としない処理に対して、前記入力データを伝搬するスルーパス（後述する実施例の図１１のスルーパスに相当）を有し、スルーパスの出力結果を直接、即ち、一時的に記憶することなく、次の演算器リソースの入力として使用することを特徴とする。
【００３１】
本発明のマイクロプロセッサは、プロセス命令の内容によって、演算処理実行手段内の演算器リソースの使用順や使用個数をユーザ任意で変更でき、更に演算器リソースを使用しない場合はスルーパスにより入出力データを伝搬することで、効率的に演算処理を行っている。
また、請求項４または５記載のマイクロプロセッサを構成する演算処理実行手段は、請求項６に記載のように、１つの演算器リソースの演算結果を直接、即ち、一時的に記憶することなく、次の演算器リソースの入力として使用する場合、前記演算処理実行手段は、プロセス命令に対応する最終的な演算器リソースの演算処理結果のみ出力することを特徴とする。
【００３２】
従って、本発明のマイクロプロセッサは、１つの演算器リソースの演算結果を直接次の演算器リソースの入力として使用することが可能なため、入出力データ記憶手段との演算処理結果の受け渡しが減少し、更に入出力データ記憶手段へのアクセスにおける競合が発生しない。
また、請求項１乃至６いずれか一項記載のマイクロプロセッサを構成する演算処理実行手段は、請求項７に記載のように、前記プロセス命令に実装されるＲＩＳＣ型命令を並列に実行し、演算処理実行順に関係なく、演算処理結果を演算処理終了順に出力することを特徴とする
本発明のマイクロプロセッサは、演算処理実行手段への演算処理命令入力順に並列に演算処理を実行し（以後、演算処理命令入力順の演算処理の実行をｉｎ−ｏｒｄｅｒ実行という）、更に演算処理結果を演算処理終了順に前記入出力データ記憶手段に書き込む（以後、演算処理結果の演算処理終了順の書き込みをｏｕｔ−ｏｆ−ｏｒｄｅｒ出力という）。
【００３３】
一方、従来のマイクロプロセッサは、本発明と同様に、ｉｎ−ｏｒｄｅｒ実行とするが、演算処理終了とは関係なく、演算処理命令入力順に演算処理結果を前記入出力データ記憶手段に書き込む（以後、演算処理結果の演算処理命令入力順の書き込みをｉｎ−ｏｒｄｅｒ出力という）。
従って、本発明のマイクロプロセッサは、先に終了した演算処理を待たせることなく、演算処理結果を演算処理終了順に前記入出力データ記憶手段に書き込むため、演算処理命令の追い越しが可能となり、それに伴って、最小限のサイクルで演算処理を実行可能となる。
【００３４】
また、請求項１乃至７いずれか一項記載のマイクロプロセッサを構成する演算処理実行手段内の各演算器リソースは、請求項８に記載のように、前記演算処理実行手段内の各演算器リソースは、演算処理結果を独立に出力するマルチポート構成（後述する実施例の書き込み部４６、４７、４８、４９に相当）とすることを特徴とする。
【００３５】
従って、本発明のマイクロプロセッサは、各演算器リソースの演算処理結果の書き込みの競合が回避可能となる。
また、請求項５乃至７いずれか一項記載のマイクロプロセッサを構成する演算処理実行手段は、請求項９に記載のように、同じ機能を有する演算器リソースを複数有し、且つ１つのプロセス命令内に複数のＲＩＳＣ型命令を含み、該ＲＩＳＣ型命令の並列実行時に演算器リソースが競合する場合、同じ機能を有する他の演算器リソースを使用して競合回避処理を実行することを特徴とする。
【００３６】
本発明のマイクロプロセッサは、同一パイプライン上に配置した同じ機能を有する複数の演算器リソースを振り分けることにより、演算処理命令の競合回避処理を実行可能とする。
また、請求項３乃至９いずれか一項記載のマイクロプロセッサは、請求項１０に記載のように、前記演算処理実行手段にて実行されるプロセス命令に対応する最終的な演算器リソースの演算処理結果を、前記入出力データ記憶手段に記憶すると同時に、該演算処理結果を直接、前記データ取り込み手段に通知するパス（後述する実施例の記憶部５１に相当）と、該演算処理結果をラッチ後、該データ取り込み手段に通知するパス（後述する実施例の記憶部５１に相当）とを有し、該データ取り込み手段は、次のプロセス命令にて該演算処理結果を使用する場合、該入出力データ記憶手段からではなく、いずれかのパスからの演算処理結果を取り込むことを特徴とする。
【００３７】
従って、本発明のマイクロプロセッサは、演算処理結果を直接、前記データ取り込み手段に通知するパスと、該演算処理結果をラッチ後、該データ取り込み手段に通知するパスとを有しているため、演算処理結果の受け渡しに入出力データ記憶手段を介する必要がなくなり、最小限のサイクル数で演算処理を実行できる。
【００４２】
また、請求項１乃至１０いずれか一項記載のマイクロプロセッサを構成する前記データ取り込み部は、請求項１１に記載のように、入出力データ記憶部からの入力ポートをマルチポート構成とし、各演算器リソースへの入力データを同時に供給することを特徴とする。
従って、本発明のマイクロプロセッサは、入力データの入力ポートをマルチポート構成とし、必要な入力データを同時に入力可能なため、入力データを繰り返し入出力データ記憶手段から取り出す必要がなく、演算処理に必要な時間を短縮することができる。
【００４３】
また、請求項１乃至１１いずれか一項記載のマイクロプロセッサは、請求項１２に記載のように、前記マイクロコードに対応する演算処理を実行可能な複数のパイプライン（後述する実施例のパイプライン１１、１１ａ、１１ｎに相当）を有することを特徴とする。
従って、本発明のマイクロプロセッサは、前記マイクロコードに対応する演算処理を実行可能な複数のパイプラインを有することにより、より効率的な演算処理を実行可能となる。
【００４４】
また、本発明のマイクロプロセッサは、請求項１３に記載のように、入力データ、及びプロセス命令に従って演算処理を実行可能とし、更にプロセス命令を変更することにより任意接続可能な複数の演算器リソース（後述する実施例の演算器リソース３６、３７、３８、４２、４３、４４、４５、６３、６４、６５、７７、７８、７９、８０に相当）を有し、１つの演算器リソースの演算結果を一時的に記憶することなく、次の演算器リソースの入力として使用することを特徴とする。
【００４５】
加えて、本発明のマイクロプロセッサは、請求項１４に記載のように、前記演算器リソースを必要としない処理に対して、前記入力データを伝搬するスルーパス（後述する実施例の図１１のスルーパスに相当）を有し、スルーパスの出力結果を一時的に記憶することなく、次の演算器リソースの入力として使用することを特徴とする。
【００４６】
本発明のマイクロプロセッサは、プロセス命令の内容によって、演算処理実行手段内の演算器リソースの使用順や使用個数をユーザ任意で変更でき、更に演算器リソースを使用しない場合はスルーパスにより入出力データを伝搬することで、効率的に演算処理を行っている。
また、請求項１３または１４記載のマイクロプロセッサは、請求項１５に記載のように、１つの演算器リソースの演算結果を一時的に記憶することなく、次の演算器リソースの入力として使用する場合、
プロセス命令に対応する最終的な演算器リソースの演算処理結果のみ出力することを特徴とする。
【００４７】
従って、本発明のマイクロプロセッサは、１つの演算器リソースの演算結果を直接次の演算器リソースの入力として使用することが可能なため、入出力データ記憶手段との演算処理結果の受け渡しが減少し、更に入出力データ記憶手段へのアクセスにおける競合が発生しない。
また、本発明のマイクロプロセッサは、請求項１６に記載のように、前記プロセス命令に実装されるＲＩＳＣ型命令を並列に実行し、演算処理実行順に関係なく、演算処理結果を演算処理終了順に出力することを特徴とする。
【００４８】
本発明のマイクロプロセッサは、演算処理実行手段への演算処理命令入力順に並列に演算処理を実行し（以後、演算処理命令入力順の演算処理の実行をｉｎ−ｏｒｄｅｒ実行という）、更に演算処理結果を演算処理終了順に前記入出力データ記憶手段に書き込む（以後、演算処理結果の演算処理終了順の書き込みをｏｕｔ−ｏｆ−ｏｒｄｅｒ出力という）。
【００４９】
一方、従来のマイクロプロセッサは、本発明と同様に、ｉｎ−ｏｒｄｅｒ実行とするが、演算処理終了とは関係なく、演算処理命令入力順に演算処理結果を前記入出力データ記憶手段に書き込む（以後、演算処理結果の演算処理命令入力順の書き込みをｉｎ−ｏｒｄｅｒ出力という）。
従って、本発明のマイクロプロセッサは、先に終了した演算処理を待たせることなく、演算処理結果を演算処理終了順に前記入出力データ記憶手段に書き込むため、演算処理命令の追い越しが可能となり、それに伴って、最小限のサイクルで演算処理を実行可能となる。
【００５０】
また、本発明のマイクロプロセッサは、請求項１７に記載のように、入力データ、及びプロセス命令に従って演算処理を実行する複数の演算器リソースを有し、
各演算器リソースは、演算処理結果を独立に出力するマルチポート構成とすることを特徴とする。
【００５１】
従って、本発明のマイクロプロセッサは、各演算器リソースの演算処理結果の書き込みの競合が回避可能となる。
また、本発明のマイクロプロセッサの演算処理実行方法は、請求項１８に記載のように、少なくとも１つのＲＩＳＣ型命令を実装するプロセス命令を実行可能なマイクロプロセッサの演算処理実行方法において、入出力データ転送内容を示す情報とプロセス命令の格納場所を示すアドレス情報から構成されるマイクロコードを解読する命令解読ステップ（後述する実施例のステップ１、ステップ２に相当）と、該命令解読ステップにて解読された入出力データ転送内容を示す情報に対応する入力データと、該アドレス情報に対応するプロセス命令を取り込むデータ取り込みステップ（後述する実施例のステップ３、ステップ４に相当）と、該データ取り込みステップにて取り込まれた入力データ、及びプロセス命令に従って演算処理を実行可能な演算器リソースで実行する演算処理実行ステップ（後述する実施例のステップ５に相当）と、
プロセス命令を任意にプロセス命令記憶手段に構築するステップと、
前記演算処理実行ステップの演算結果、及び任意に設定可能な入力データを記憶する入出力データ記憶ステップと、
前記データ取り込みステップにて読み込まれた入力データをラッチ後、前記演算処理を実行可能な演算器リソースに通知するステップを有し、
前記マイクロコードは、前記プロセス命令の格納場所を示すアドレス情報に代えて、直接、少なくとも１つのＲＩＳＣ型命令を実装可能とし、
前記データ取り込みステップは、前記プロセス命令の格納場所を示すアドレス情報に基づいて、該プロセス命令記憶手段を参照することにより、対応するプロセス命令を取り込み、
更に該入出力データ記憶手段から前記入出力データ転送内容を示す情報に対応する入力データを取り込み、
前記演算処理実行ステップは、該入力データを再度使用する場合、該パスからの該入力データを取り込む。
【００５２】
上記のような演算処理実行方法を実行することにより、本発明のマイクロプロセッサは、マイクロコードを構成するプロセス命令の格納場所を示すアドレス情報に対応するプロセス命令を取り込むことが可能であるため、該マイクロコードを拡大せずに高度化、複雑化した演算処理命令に対応可能となる。
【００５４】
本発明のマイクロプロセッサは、請求項１９記載のように、基本命令コードと拡張命令コードの格納場所を示す演算ＩＤとからなるマイクロコードを解読する命令解読手段と、該命令解読手段で解読された演算命令により演算器リソースを選択して演算処理する演算処理実行手段とを備え、前記基本命令コードにより最初の演算器リソースを選択し、前記拡張命令コードにより次の演算器リソースを選択し、それによりパイプライン演算する構成としても良い。
【００５５】
このようにマイクロコードを設定することで、複雑な演算をする（ＣＩＳＫ並み）のマイクロコードを解読するのに十分な時間的な余裕を設けると共に、複雑な演算をするマイクロコードの最初の演算やＲＩＳＣ命令と同じ簡単な演算の双方が、ＲＩＳＣプロセッサと同様に即座に演算に移れるという作用効果を有する。
本発明のマイクロプロセッサは、請求項２０記載のように、前記命令解読手段よりも多く、かつ、並列に実行可能な複数の演算器リソースからなる演算処理実行手段とを備え、該演算処理実行手段は該演算器リソースの演算順序を変更可能に設けた構成としても良い。
この場合、請求項２１記載のように、前記複数の演算器リソースは、異なる演算器からなる構成としても良い。
このように、演算器リソースの演算順序を変更可能とすることで、多様な演算命令の実現が可能となり、その機能を並列実行可能な演算リソースを有するプロセッサに用いたことで、パイプライン処理の実現あるいは並列演算処理の実現と言った、ＤＳＰ並みの高速演算やマルチプロセッサ並みの高速演算が可能となる。しかも、それぞれの演算リソースを異ならせることで、ＲＩＳＣプロセッサ並みの演算ユニット量という最小の演算ユニットで並列あるいはパイプライン処理が可能となる。
【００５７】
この場合、請求項２２記載のように、前記演算器リソースの出力を次の演算に用いる演算器リソースの入力に直接接続することにより、前記演算器リソース間の演算結果の入出力に入出力手段を使用しない構成としても良い。
つまり、入出力データ記憶手段にいったん書き込まないことにより、マイクロコード上にその入出力データ記憶手段のユニーク番号を埋め込む必要がなくマイクロコードの短縮化を図っても良い。
【００５８】
ここで、ユニーク番号とは、入力データ、および出力データの格納場所を示すアドレス情報を指す。後述する図５のマイクロコード構成の比較にあるように、同じ演算をする際、ＶＬＩＷではプロセス命令内の各演算ごとに入出力データの格納場所を示すアドレス情報をマイクロコード上に埋め込む必要がある。これに対し、本発明においては、プロセス命令内の演算途中で入出力データ記憶手段に一時的に記憶しないため、演算途中の入出力データの格納場所を示すアドレス情報をマイクロコードに埋め込む必要がなく、即ち、プロセス命令単位での入出力データを示すアドレス情報のみをマイクロコードに埋め込むことができる。
【００６０】
本発明の記憶媒体は、請求項２３記載のように、少なくとも１つのＲＩＳＣ型命令を有するプロセス命令を実行可能なマイクロプロセッサを入出力データ転送内容を示す情報とプロセス命令の格納場所を示すアドレス情報から構成されるマイクロコードを解読する命令解読手段と、該命令解読手段にて解読された入出力データ転送内容を示す情報に対応する入力データと、該アドレス情報に対応するプロセス命令を取り込むデータ取り込み手段と、該データ取り込み手段にて取り込まれた入力データ、及びプロセス命令に従って演算処理を実行可能な演算器リソースを実装する演算処理実行手段と、プロセス命令を任意に構築可能なプロセス命令記憶手段と、前記演算処理実行手段の演算結果、及び任意に設定可能な入力データを記憶する入出力データ記憶手段と、前記データ取り込み手段にて読み込まれた入力データをラッチ後、前記演算処理実行手段内の演算器リソースに通知するパスを有し、前記マイクロコードは、前記プロセス命令の格納場所を示すアドレス情報に代えて、直接、少なくとも１つのＲＩＳＣ型命令を実装可能とし、前記データ取り込み手段は、前記プロセス命令の格納場所を示すアドレス情報に基づいて、該プロセス命令記憶手段を参照することにより、対応するプロセス命令を取り込み、更に該入出力データ記憶手段から前記入出力データ転送内容を示す情報に対応する入力データを取り込み、前記演算処理実行手段は、該入力データを再度使用する場合、該パスからの該入力データを取り込むよう機能させるプログラムを記録した。
上記のように記憶媒体を構成することにより、コンピュータシステムは、回路情報に基づいてマイクロコードを構成するプロセス命令の格納場所を示すアドレス情報に基づいて、プロセス命令を取り込むことが可能で、該マイクロコードを拡大せずに高度化、複雑化した演算処理命令に対応可能なマイクロプロセッサを設計することができる。
【００６１】
上記のように記憶媒体を構成することにより、コンピュータシステムは、回路情報に基づいてマイクロコードを構成するプロセス命令の格納場所を示すアドレス情報に基づいて、プロセス命令を取り込むことが可能で、該マイクロコードを拡大せずに高度化、複雑化した演算処理命令に対応可能なマイクロプロセッサを設計することができる。
【００６２】
【発明の実施の形態】
以下、本発明のマイクロプロセッサの実施例を図面に基づいて説明する。
図１は、本発明のマイクロプロセッサの構成を示す。
図１において、本発明のマイクロプロセッサは、大量の演算処理を高速に実行する必要性から、演算命令取り込み部２と演算命令解読部３とデータ取り込み部４と演算処理実行部７と演算結果書き込み部８とを有するパイプライン１１と、該パイプラインに対してマイクロコードを入力する演算命令入力部１と、演算処理に必要な入力データ、及び演算処理結果を記憶する記憶部５と、演算処理命令コードを記憶するＬＵＴ６（ルックアップテーブル）と、記憶部５に記憶されている演算処理結果等を出力する出力制御部９、出力部１０から構成され、並列に演算処理を実行するパイプライン処理により効率的に演算処理を実行する。尚、ＬＵＴ６は、ＲＡＭ等のメモリにて構成され、ユーザ任意による設定が可能である。
【００６３】
上記のように構成されるマイクロプロセッサのパイプライン１１を構成する各部の機能を説明する。
演算命令取り込み部２は、演算処理に必要な入出力データの転送内容を示す情報と、プロセス命令又はプロセス命令の格納場所を示すアドレス情報（以後、このアドレス情報を演算ＩＤという）から構成されるマイクロコードを取り込む機能（フェッチ）を有する。
【００６４】
演算命令解読部３は、演算命令取り込み部２にて取り込まれたマイクロコードを解読する機能（デコード）を有する。
データ取り込み部４は、演算命令解読部３にて解読されたマイクロコードの入出力データの転送内容を示す情報に基づいて、記憶部３０５から演算処理に必要な入力データを取り込む機能（リード）と、更にマイクロコードが演算ＩＤを有する場合に、該演算ＩＤが示すアドレスに基づいてＬＵＴ６からプロセス命令を取り込む機能（リード）を有する。
【００６５】
演算処理実行部７は、加算、減算、乗除算、和積演算等の複数の演算器リソースを有し、データ取り込み部４にて取り込まれた入力データ、及びプロセス命令に従って所定の演算を実行する機能を有する。
演算結果書き込み部８は、演算処理実行部７にて実行された演算処理結果を、データ取り込み部４から演算処理実行部７を介して、出力データの格納位置を示すアドレスに基づいて、記憶部５に書き込む機能（ライト）を有する。
【００６６】
このような構成、及び機能を有する本発明のマイクロプロセッサは、マイクロコードを構成する演算ＩＤに基づいて、プロセス命令を取り込むことが可能であるため、該マイクロコードの小型化を実現しつつ、高度化、複雑化した演算処理命令コードに対応可能となる。
ここで、図１に示す本発明のマイクロプロセッサにて演算処理を実行するための前記マイクロコードを図２に従って説明する。
【００６７】
従来のマイクロコードは、例えば、図２上部に示すように、プロセス命令（ＲＩＳＣ命令に組み合わせ）と入出力データから構成されていたが、プロセス命令の高度化、複雑化によりマイクロコードが拡大し、演算処理情報が割り当てられない、つまり、マイクロコード上に実装しきれない場合があった。
そこで、本発明のマイクロプロセッサにて演算処理を実行するためのマイクロコードは、図２下部に示すように、演算ＩＤを有することにより、演算処理が複雑な場合でも小型化できる。演算ＩＤには、先に説明した通り、ＬＵＴ６のアドレス情報が示されているため、高度化、及び複雑化したプロセス命令はＬＵＴ６に記憶する。
【００６８】
マイクロコードが演算ＩＤ、及び入出力データの転送内容を示す情報から構成されることにより、本発明のマイクロプロセッサは、複数のＲＩＳＣ型命令（演算器リソースを１つしか使わないような基本的な命令）から構成される複雑なプロセス命令（１つのパイプラインで演算処理される命令）にも、ＬＵＴ６を使用することで容易に対応可能となるため、今後更に高度化、複雑化する演算処理にも容易に対応可能となる。
【００６９】
また、図２に示すように、マイクロコードの小型化を実現することにより、命令を一時的に記憶する命令キャッシュの小型化も可能となる。尚、図５に示すように、前記マイクロコードを従来使用していたマイクロコードと比較すると、本発明のマイクロコードは、記憶部のワード幅、ビット幅共に小型化できる。
更に前記マイクロプロセッサは、演算ＩＤに代えて、従来通り直接プロセス命令を実装可能とする。例えば、プロセス命令が１つのＲＩＳＣ型命令の場合は、マイクロコードが拡大することがないことを利用して演算ＩＤの代わりにＲＩＳＣ型命令をそのまま実装する。また、マイクロコードのサイズによっては、２つ以上の場合でも、直接実装が可能である。そのため、マイクロプロセッサは、ＬＵＴ６にアクセスすることなく、より効率的に演算処理命令を解読できる。
【００７０】
本発明では、図２と共に説明した如く、基本命令コードと拡張命令コードの格納場所を示す演算ＩＤとからなるマイクロコードを解読する命令解読手段と、該命令解読手段で解読された演算命令により演算器リソースを選択して演算処理する演算処理実行手段とを設け、前記基本命令コードにより最初の演算器リソースを選択し、前記拡張命令コードにより次の演算器リソースを選択し、それによりパイプライン演算するようにマイクロプロセッサを構成できる。このようにマイクロコードを設定することで、複雑な演算をする（ＣＩＳＫ並み）のマイクロコードを解読するのに十分な時間的な余裕を設けると共に、複雑な演算をするマイクロコードの最初の演算やＲＩＳＣ命令と同じ簡単な演算の双方が、ＲＩＳＣプロセッサと同様に即座に演算に移れる。
【００７１】
図３、及び図４は、図１に示すマイクロプロセッサに、図２のマイクロコードが入力された場合の演算処理の具体例、及び演算処理実行方法を示す。
例えば、図１に示す本発明のマイクロプロセッサのパイプライン１１に、図４に示すような演算ＩＤと、入力データ▲１▼、入力データ▲２▼、出力データの格納位置を示すアドレス情報で構成される入出力データの転送内容を示す情報とを有するマイクロコードが入力された場合、該マイクロコードは、演算命令取り込み部２にて取り込まれ、演算命令解読部３にてデコードされる（Ｓ１）。
【００７２】
演算命令解読部３にてデコードされた結果、例えば、演算ＩＤの判定ビットが’０’の場合（図４参照）、該演算ＩＤはＲＩＳＣ型命令であるため（Ｓ２、ＲＩＳＣ）、データ取り込み部４は、入力データ▲１▼、入力データ▲２▼の格納位置を示すアドレスに基づいて、記憶部５から入力データ▲１▼、入力データ▲２▼を取り込み（Ｓ３）、同時に出力データの格納位置を示すアドレスを演算処理実行部７に通知する。
【００７３】
演算処理実行部７では、例えば、ＲＩＳＣ型命令に対応する演算器リソースであるＡＬＵ２３（加算器）による加算演算を実行し、その演算処理結果を前記出力データの格納位置を示すアドレスに基づいて記憶部５に格納する（Ｓ５）。
一方、演算命令解読部３にてデコードされた結果、例えば、演算ＩＤの判定ビットが’１’の場合（図４参照）、該演算ＩＤはＬＵＴ６のアドレスのため（Ｓ２、ＩＤ）、データ取り込み部４は、該アドレス’Ｘ’に基づいてプロセス命令を取り込む（Ｓ４）。更にデータ取り込み部４は、入力データ▲１▼、入力データ▲２▼の格納位置を示すアドレスに基づいて、記憶部５から入力データ▲１▼、入力データ▲２▼を取り込み（Ｓ３）、プロセス命令と共に入力データ▲１▼、入力データ▲２▼と、出力データの格納位置を示すアドレスを演算処理実行部７に通知する。尚、ＬＵＴ６内のプロセス命令は、例えば、図４のように、アドレス’Ｘ’に、’ＭＰＹ→ＳＨＦ→ＡＤＤ’を格納している。
【００７４】
演算処理実行部７では、例えば、プロセス命令に対応する演算器リソースであるＭＰＹ２１（乗算器）、ＳＨＦ２２（シフタ）、ＡＬＵ２３（加算器）による積和演算を実行し、その演算処理結果を前記出力データの格納位置を示すアドレスに基づいて記憶部５に格納する（Ｓ５）。
上記に示す演算処理方法を実行可能な本発明のマイクロプロセッサは、ＬＵＴ６の内容をユーザ任意で変更することにより、効率よく演算処理を実行することができる。
【００７５】
また、本発明のマイクロプロセッサは、１つのプロセス命令に複数のＲＩＳＣ型命令を行わせることにより、全体の実行命令数を減少させることができる。
例えば、図６に示すように、プロセス命令ａ、及びプロセス命令ｂを実行する場合の本発明のマイクロプロセッサの処理を説明する。尚、図６において、Ｆａ、Ｆｂはそれぞれプロセス命令ａ、及びプロセス命令ｂのフェッチサイクルの時間を、Ｄａはプロセス命令ａ内のＲＩＳＣ命令のデコード時間を、Ｄｂはプロセス命令ｂ内のＲＩＳＣ命令のデコード時間を、Ｒａはプロセス命令ａの入出力データのリード時間を、Ｒｂはプロセス命令ｂの入出力データのリード時間を、Ｅ（１）からＥ（４）はプロセス命令ａ内のＲＩＳＣ命令の実行時間を、Ｅ（５）からＥ（８）はプロセス命令ｂ内のＲＩＳＣ命令の実行時間を、Ｗａはプロセス命令ａの演算処理結果のライト時間を、Ｗｂはプロセス命令ｂの演算処理結果のライト時間を示す。また、命令ａ、及び命令ｂは、例えば、それぞれ４つのＲＩＳＣ型命令で構成されているものとする。
【００７６】
本発明のマイクロプロセッサは、１サイクルでプロセス命令ａをフェッチし（Ｆａ）、更にプロセス命令ａ内のＲＩＳＣ型命令毎にデコード（Ｄａ）、リード（Ｒａ）、命令実行（Ｅ（１）〜Ｅ（４））、ライト（Ｗａ）の順に処理を行い、図６に示すように８サイクルでプロセス命令ａの処理を終了する。
また、本発明のマイクロプロセッサは、プロセス命令ａをフェッチ後のデコード（Ｄａ）と同時に、次のプロセス命令ｂをフェッチし（Ｆｂ）、続けてプロセス命令ｂ内のＲＩＳＣ型命令毎にデコード（Ｄｂ）、リード（Ｒｂ）、命令実行（Ｅ（５）〜Ｅ（８））、ライト（Ｗｂ）の順に処理を行い、図６に示すように合計９サイクルでプロセス命令ａ、及びプロセス命令ｂの処理を終了する。
【００７７】
このように、本発明のマイクロプロセッサは、１つのプロセス命令に複数のＲＩＳＣ型命令を行わせることにより、プログラム全体の実行命令数を減少、及びＣＰＩの短縮が同時に実現でき（図２５、図２６参照）、それに伴って、最小限のサイクル数で演算処理が実行可能となる。
続いて、図１に示す本発明のマイクロプロセッサを構成する演算処理実行部７の詳細について説明する。
【００７８】
図７は、従来のＲＩＳＣ型マイクロプロセッサを構成する演算処理実行部７ａを示す。
例えば、図７に示すように、演算処理命令：（ａ＋ｂ）＊ｂを演算処理する場合、ＲＩＳＣ型マイクロプロセッサは、演算処理命令：（ａ＋ｂ）＊ｂを命令▲１▼：ＡＬＵ（ａ＋ｂ）と命令▲２▼：ＭＰＹ（＊ｂ）に分割し、順に演算処理を実行する。尚、命令▲１▼：ＡＬＵ（ａ＋ｂ）は、演算器リソースＡＬＵ３３を利用してａ＋ｂを実行することを表し、命令▲２▼：ＭＰＹ（＊ｂ）は、演算器リソースＭＰＹ３１を利用して命令▲１▼の演算結果とｂとの乗算を実行することを表す。
【００７９】
ＲＩＳＣ型マイクロプロセッサは、図８に示すように、１サイクルで命令▲１▼：ＡＬＵ（ａ＋ｂ）をフェッチし（Ｆ）、更に命令▲１▼：ＡＬＵ（ａ＋ｂ）をデコード（Ｄ）、リード（Ｒ）、命令実行（Ｅ）、ライト（Ｗ）の順に処理を行い、５サイクルで命令▲１▼：ＡＬＵ（ａ＋ｂ）の処理を終了する。
更にＲＩＳＣ型マイクロプロセッサでは、命令▲２▼の演算処理を命令▲１▼の演算処理結果をもとに行うため、ダミーサイクル実行後（例えば、パイプラインストールを発生させる）、命令▲１▼：ＡＬＵ（ａ＋ｂ）の命令実行（Ｅ）と同時に、次の命令▲２▼：ＭＰＹ（＊ｂ）をフェッチし（Ｆｂ）、該命令▲２▼をデコードし（Ｄ）、命令▲１▼：ＡＬＵ（ａ＋ｂ）の演算処理結果のレジスタへのライトが終了後、該演算処理結果をレジスタからリード（Ｒ）し、続けて該命令▲２▼の命令実行（Ｅ）、演算処理結果のライト（Ｗ）の順に処理を行い、図８に示すように合計８サイクルで演算処理命令：（ａ＋ｂ）＊ｂの演算処理を終了する。
【００８０】
図９は、従来のＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等のＭＡＣ（積和）構成型マイクロプロセッサを構成する演算処理実行部７ｂを示す。
例えば、図９に示すように、演算処理命令：（ａ＋ｂ）＊ｂを演算処理する場合、ＭＡＣ構成型マイクロプロセッサは、演算処理命令：（ａ＋ｂ）＊ｂを命令▲１▼：ＡＬＵ（ａ＋ｂ）と命令▲２▼：ＭＰＹ（＊ｂ）に分割し、順に演算処理を実行する。尚、命令▲１▼：ＡＬＵ（ａ＋ｂ）は、演算器リソースＡＬＵ３５を利用してａ＋ｂを実行することを表し、命令▲２▼：ＭＰＹ（＊ｂ）は、演算器リソースＭＰＹ３４を利用して命令▲１▼の演算結果とｂとの乗算を実行することを表す。
【００８１】
ＭＡＣ構成型マイクロプロセッサは、図１０に示すように、合計８サイクルで演算処理命令：（ａ＋ｂ）＊ｂの演算処理を終了する。尚、演算処理命令：（ａ＋ｂ）＊ｂの演算処理は、図８にて説明したタイムチャートと同様のため、説明を省略する。
このように、上記２種類の従来型のマイクロプロセッサは、共にパイプラインストールが発生し、最小限のサイクルで演算処理が実行できていない。
【００８２】
そこで、図１１は、演算処理内容に応じた最小限のサイクルで演算処理が実行可能な本発明のマイクロプロセッサを構成する演算処理実行部７を示す。
例えば、図１１に示すように、演算処理命令：（ａ＋ｂ）＊ｂを演算処理する場合、ＲＩＳＣ型マイクロプロセッサは、演算処理命令：（ａ＋ｂ）＊ｂを命令▲１▼：ＡＬＵ（ａ＋ｂ）と命令▲２▼：ＭＰＹ（＊ｂ）に分割し、順に演算処理を実行する。尚、命令▲１▼：ＡＬＵ（ａ＋ｂ）は、演算器リソースＡＬＵ３８を利用してａ＋１を実行することを表し、命令▲２▼：ＭＰＹ（＊ｂ）は、演算器リソースＭＰＹ３６を利用して命令▲１▼の演算処理結果とｂとの乗算を実行することを表す。
【００８３】
本発明のマイクロプロセッサは、図１２に示すように、１サイクルで演算処理命令：（ａ＋ｂ）＊ｂを示す演算ＩＤ、及び入出力データのアドレス情報から構成されるマイクロコードをフェッチし（Ｆ）、更にマイクロコードをデコードし（Ｄ）、演算処理命令：（ａ＋ｂ）＊ｂを実行する該演算ＩＤと入出力データをリードする（Ｒ）。
【００８４】
ここで、本発明のマイクロプロセッサは、命令▲１▼：ＡＬＵ（ａ＋ｂ）の演算処理を実行し（ＥＩ）、命令▲１▼：ＡＬＵ（ａ＋ｂ）の命令実行後、出力せずに（図１１参照）、命令▲１▼の演算処理結果を次の演算器リソースＭＰＹ３６に入力し、続けて命令▲２▼：ＭＰＹ（＊ｂ）の演算処理を実行し（ＥＩＩ）、最後に命令▲２▼の演算処理結果のライトを行い（Ｗ）、図１２に示すように合計６サイクルで演算処理命令：（ａ＋ｂ）＊ｂの演算処理を終了する。
【００８５】
本発明のマイクロプロセッサは、同一パイプライン内で複雑な演算処理命令を実行する命令の垂直展開を行うため、同一パイプライン内での途中の演算処理結果のレジスタ参照が必要なく、更にパイプライン内部で演算処理結果の受け渡しが可能なため、パイプラインストールが発生しない。そのため、本発明のマイクロプロセッサは、演算処理内容に応じた最小限のサイクル数で演算処理が実行できる。
【００８６】
更に、本発明のマイクロプロセッサは、プロセス命令の内容によって、即ち、ＬＵＴ６の内容を任意に変更することによって、演算器リソースの使用順や使用個数を変更でき、更に演算器リソースを使用しない場合はスルーパスにより入出力データを伝搬することで、効率的に演算処理を行っている。
図１３は、図９に示すＭＡＣ型マイクロプロセッサを構成する演算処理実行部７ｂにて、例えば、演算処理命令：（積和演算→データ移動）を演算処理する場合のタイムチャートを示す。具体的には、例えば、以下のような演算処理命令を実行する。
【００８７】
ｍａｃ  ｒ２，ｒ１，ｒ０；ＭＡＣ（積和演算）：ＭＰＹ→ＳＨＦ→ＡＬＵ
ｍｏｖ  ｒ４，ｒ３      ；ＭＯＶ（データ移動）：スルーパス
ＭＡＣ型マイクロプロセッサは、図１３に示すように、１サイクルで命令：ＭＡＣをフェッチし（Ｆ）、更に命令：ＭＡＣをデコード（Ｄ）、及びリードし（Ｒ）、ＭＰＹ→ＳＨＦ→ＡＬＵの順に命令を実行し（Ｅ）、その演算処理結果をライトし（Ｗ）、７サイクルで命令：ＭＡＣの処理を終了する。
【００８８】
更にＭＡＣ型マイクロプロセッサは、命令：ＭＡＣをフェッチ後、命令：ＭＡＣのデコード（Ｄ）と同時に、次の命令：ＭＯＶをフェッチし（Ｆ）、該命令をデコード（Ｄ）、及びリード（Ｒ）する。ところがＭＡＣ型マイクロプロセッサは、ｉｎ−ｏｒｄｅｒ出力のため、パイプラインストールが発生し、命令：ＭＡＣの演算処理が終了するまで命令：ＭＯＶが実行できない。
【００８９】
ここで、ＭＡＣ型マイクロプロセッサは、２サイクルのパイプラインストールが終了後、命令：ＭＯＶを実行し（Ｅ）、続けてスルーパスを介してライト（Ｗ）を実行し、図１３に示すように合計８サイクルで演算処理命令：（積和演算→データ移動）の演算処理を終了する。
このように、ＭＡＣ型マイクロプロセッサは、２サイクルのパイプラインストールが発生し、演算処理内容に応じた最小限のサイクルで演算処理が実行できていない。
【００９０】
そこで、図１４は、図１１に示す本発明のマイクロプロセッサを構成する演算処理実行部７にて、例えば、演算処理命令：（積和演算→データ移動）を演算処理する場合のタイムチャートを示す。具体的には、図１３と同様の演算処理命令を実行する。
本発明のマイクロプロセッサは、図１４に示すように、１サイクルで命令：ＭＡＣをフェッチし（Ｆ）、更に命令：ＭＡＣをデコード（Ｄ）、及びリードし（Ｒ）、ＭＰＹ→ＳＨＦ→ＡＬＵの順に命令を実行し（Ｅ）、その演算処理結果をライトし（Ｗ）、７サイクルで命令：ＭＡＣの処理を終了する。
【００９１】
更に本発明のマイクロプロセッサは、命令：ＭＡＣをフェッチ後、命令：ＭＡＣのデコード（Ｄ）と同時に、次の命令：ＭＯＶをフェッチし（Ｆ）、該命令をデコード（Ｄ）、及びリード（Ｒ）する。
ここで、本発明のマイクロプロセッサは、並列に演算処理した結果を適宜出力可能としたことでｏｕｔ−ｏｆ−ｏｒｄｅｒ出力が可能となり、パイプラインストールが発生せず、命令：ＭＡＣの演算処理終了を待たずに、命令：ＭＡＣの演算処理と並列に命令：ＭＯＶを実行する（Ｅ）。
【００９２】
また、本発明のマイクロプロセッサは、命令：ＭＯＶを実行後、演算処理終了順に演算処理結果のライト（Ｗ）を実行し、図１４に示すように合計７サイクルで演算処理命令：（積和演算→データ移動）の演算処理を終了する。尚、演算処理命令：（積和演算→データ移動）では、命令：ＭＯＶの演算処理の方が先に終了するため、ｏｕｔ−ｏｆ−ｏｒｄｅｒ出力の影響による演算処理の追い越しが発生している。
【００９３】
本発明のマイクロプロセッサは、ｏｕｔ−ｏｆ−ｏｒｄｅｒ出力のため、先に終了した演算処理を待たせることなく、演算処理終了順に演算処理結果をライトする。従って、本発明のマイクロプロセッサは、演算処理命令の追い越しが可能となり、それに伴って、最小限のサイクル数で演算処理が実行できる。
図１５は、本発明のマイクロプロセッサのパイプライン構成を示す。ここで、本発明のマイクロプロセッサのパイプライン構成にてＭＡＣ型演算処理命令を繰り返し実行した場合の動作を図１７のタイムチャートに基づいて、従来のマイクロプロセッサと比較して説明する。
【００９４】
従来のマイクロプロセッサは、例えば、図２４で先に説明したように、パイプライン３０１、３０２、３０３、３０４の４種類のパイプラインから構成される場合、各パイプラインの演算結果は、記憶部３０５に書き込まれ、記憶部３０５を介して他のパイプラインに取り込まれることにより、パイプライン間のデータの受け渡しが可能となる。即ち、従来のマイクロプロセッサは、１つの演算器リソースの演算処理結果を次の演算器リソースが使用する場合、必ず記憶部３０５を介して演算処理結果の受け渡しが行われる。
【００９５】
また、ＲＩＳＣ型命令の組み合わせによるプロセス命令を実行する場合、演算処理命令は、各パイプラインに水平点展開され、それぞれ並列のパイプラインで演算処理を実行している。
図１６は、図２４に示すような従来のマイクロプロセッサのパイプライン構成にてＭＡＣ型演算処理命令を繰り返し実行した場合のタイムチャートを示す。具体的には、例えば、以下のような演算処理命令を実行する。
【００９６】
命令▲１▼：ＭＡＣ；
ＭＰＹ（Ｍ（１））→ＳＨＦ（Ｓ（１））→ＡＬＵ（Ａ（１））
命令▲２▼：ＭＡＣ；
ＭＰＹ（Ｍ（２））→ＳＨＦ（Ｓ（２））→ＡＬＵ（Ａ（２））
従来のマイクロプロセッサは、図１６に示すように、パイプライン３０１にて１サイクルで命令▲１▼：ＭＡＣのＭ（１）をフェッチし（ＦＩ）、更に命令▲１▼：ＭＡＣのＭ（１）をデコード（ＤＩ）、及び必要な入出力データをリードし（ＲＩ）、Ｍ（１）の演算を実行し（ＥＩ）、その演算処理結果を記憶部３０５にライトし（ＷＩ）、５サイクルで命令▲１▼：ＭＡＣのＭ（１）の処理を終了する。
【００９７】
次に従来のマイクロプロセッサは、パイプライン３０２にて命令▲１▼：ＭＡＣのＭ（１）の演算実行（ＥＩ）と同時に、命令▲１▼：ＭＡＣのＳ（１）をフェッチし（ＦＩＩ）、該命令をデコードし（ＤＩＩ）、命令▲１▼：ＭＡＣのＭ（１）の演算処理結果を記憶部３０５にライト後（ＷＩ）、記憶部３０５内の該演算処理結果、及び必要な入出力データをリード（ＲＩＩ）する。ここで、従来のマイクロプロセッサは、命令▲１▼：ＭＡＣのＳ（１）の演算を実行し（ＥＩＩ）、続けてＳ（１）の演算処理結果を記憶部３０５にライトし（ＷＩＩ）、図１６に示すように合計８サイクルで命令▲１▼：ＭＡＣのＭ（１）及びＳ（１）の演算処理を終了する。
【００９８】
最後に従来のマイクロプロセッサは、再度パイプライン３０１にて命令▲１▼：ＭＡＣのＳ（１）の演算実行（ＥＩＩ）と同時に、命令▲１▼：ＭＡＣのＡ（１）をフェッチし（ＦＩ）、該命令をデコードし（ＤＩ）、命令▲１▼：ＭＡＣのＳ（１）の演算処理結果を記憶部３０５にライト後（ＷＩＩ）、記憶部３０５内の該演算処理結果、及び必要な入出力データをリード（ＲＩ）する。ここで、従来のマイクロプロセッサは、命令▲１▼：ＭＡＣのＡ（１）の演算を実行し（ＥＩ）、続けてＡ（１）の演算処理結果を記憶部３０５にライトし（ＷＩ）、図１６に示すように合計１１サイクルで命令▲１▼：ＭＡＣのＭ（１）、Ｓ（１）、及びＡ（１）の演算処理を終了する。尚、命令▲２▼：ＭＡＣも上記と同様に実行される。また、パイプライン３０１では、命令▲１▼：ＭＡＣのＭ（１）と、命令▲１▼：ＭＡＣのＡ（１）の間に、パイプラインストールが発生し、５サイクルのダミーサイクルが挿入されている。
【００９９】
従って、従来のマイクロプロセッサは、演算処理内容に応じた最小限のサイクル数で演算処理が実行できていない。
そこで、本発明のマイクロプロセッサは、図１５に示すように、１つのパイプラインに複数の演算器リソースを有する構成とすることにより、最小限のサイクル数で演算処理を実行可能とする。
【０１００】
図１５において、本発明のマイクロプロセッサのパイプライン１１の構成は、図１と同様に、演算命令取り込み部２と演算命令解読部３とデータ取り込み部４と演算処理実行部７と演算結果書き込み部８とを有し、１つのパイプライン内で並列に演算処理を実行するパイプライン処理により効率的に演算処理を実行する。そのため、本発明のマイクロプロセッサは、図２４の従来のマイクロプロセッサと比較してパイプラインを減少させることにより、ハードウェアの規模が減少し、更に消費電流も減少する。
【０１０１】
また、パイプライン１１を構成する演算処理実行部７は、ＬＵＴ６内の演算処理命令コードを変更することにより、任意接続可能な複数の演算器リソース４２、４３、４４、４５から構成され、ＬＵＴ６の変更で、例えば、演算器リソースの使用順や使用個数を任意に変更することにより効率的に演算処理を実行している。
【０１０２】
また、パイプライン１１を構成する演算結果書き込み部８は、演算器リソース４２、４３、４４、４５の演算処理結果を個々に記憶部５に書き込むマルチポート構成を取り、各演算器リソースに対応する書き込み部４６、４７、４８、４９から構成され、演算処理実行部７のｉｎ−ｏｒｄｅｒ実行、ｏｕｔ−ｏｆ−ｏｒｄｅｒを利用して、各演算器リソースの演算処理結果の書き込みの競合を回避可能とする。
【０１０３】
図１７は、上記のように構成される本発明のマイクロプロセッサのパイプライン構成にてＭＡＣ型演算処理命令を繰り返し実行した場合のタイムチャートを示す。具体的には、図１６と同様に、以下のような演算処理命令を実行する。
命令▲１▼：ＭＡＣ；
ＭＰＹ（Ｍ（１））→ＳＨＦ（Ｓ（１））→ＡＬＵ（Ａ（１））
命令▲２▼：ＭＡＣ；
ＭＰＹ（Ｍ（２））→ＳＨＦ（Ｓ（２））→ＡＬＵ（Ａ（２））
本発明のマイクロプロセッサは、図１７に示すように、パイプライン１１にて１サイクルで命令▲１▼：ＭＡＣのＭ（１）、Ｓ（１）、及びＡ（１）をフェッチし（Ｆ）、更に命令▲１▼：ＭＡＣをデコードし（Ｄ）、続けて命令▲１▼：ＭＡＣにおいて必要な全ての入出力データ、及び演算ＩＤが示すアドレスをリードする（Ｒ）。
【０１０４】
ここで、本発明のマイクロプロセッサは、例えば、演算器リソース４２にて命令▲１▼：ＭＡＣのＭ（１）の演算を実行し（Ｅ（１））、更に演算器リソース４２の演算処理結果を直接、例えば、次の演算器リソース４３に受け渡し、該演算器リソース４３にて命令▲１▼：ＭＡＣのＳ（１）の演算を実行し（Ｅ（２））、続けて演算器リソース４３の演算処理結果を直接、例えば、次の演算器リソース４４に受け渡し、該演算器リソース４４にて命令▲１▼：ＭＡＣのＡ（１）の演算を実行する（Ｅ（３））。
【０１０５】
最後に、本発明のマイクロプロセッサは、最終的な演算処理結果のみを、例えば、書き込み部４８にて記憶部３０５にライトし（Ｗ）、図１７に示すように合計７サイクルで命令▲１▼：ＭＡＣのＭ（１）、Ｓ（１）、及びＡ（１）の演算処理を終了する。尚、命令▲２▼：ＭＡＣも上記と同様に実行される。
従って、本発明のマイクロプロセッサは、従来のようなパイプラインストールが発生せず、最小限のサイクル数で演算処理が実行できる。
【０１０６】
図１８は、上記のように構成される本発明のマイクロプロセッサのパイプライン構成で同じ機能を持つ演算器リソースを複数有する場合に、演算処理命令を繰り返し実行し、演算器リソースが競合した際のタイムチャートを示す。具体的には、以下のような演算処理命令を実行する。
命令▲１▼：ｏｐ１  ｒ２，ｒ１，ｒ０；  ｏｐ１：ＭＰＹ→ＳＨＦ→ＡＬＵ
命令▲２▼：ｏｐ２  ｒ５，ｒ４，ｒ３；  ｏｐ２：ＭＰＹ→ＡＬＵ
命令▲３▼：ｏｐ３  ｒ８，ｒ７，ｒ６；  ｏｐ３：ＳＨＦ→ＭＰＹ
命令▲４▼：ｏｐ４  ｒ１１，ｒ１０、ｒ９；  ｏｐ４：ＭＰＹ
本発明のマイクロプロセッサは、図１８に示すように、パイプライン１１にて１サイクルで命令▲１▼：ｏｐ１をフェッチし（Ｆ）、順に命令▲２▼：ｏｐ２、命令▲３▼：ｏｐ３、命令▲４▼：ｏｐ４をフェッチする（Ｆ）。
【０１０７】
更に本発明のマイクロプロセッサは、命令▲１▼：ｏｐ１をフェッチ後、命令▲１▼：ｏｐ１をデコードし（Ｄ）、続けて命令▲１▼：ｏｐ１において必要な全ての入出力データ、及び演算ＩＤが示すアドレスをリードし（Ｒ）、順に命令▲２▼：ｏｐ２、命令▲３▼：ｏｐ３、命令▲４▼：ｏｐ４に関してもデコード及びリードを実行する（Ｄ、Ｒ）。
【０１０８】
命令▲１▼：ｏｐ１において必要な全ての入力データ、及び演算ＩＤが示すプロセス命令をリード後、本発明のマイクロプロセッサは、４サイクル目に、演算器リソースＭＰＹにて命令▲１▼：ｏｐ１の演算を実行し（ＥＩ）、更に演算器リソース４２の演算処理結果を直接、次の演算器リソースＳＨＦに受け渡す。
更に本発明のマイクロプロセッサは、５サイクル目に、該演算器リソースＳＨＦにて命令▲１▼：ｏｐ１の演算を実行し（ＥＩＩ）、続けて演算器リソースＳＨＦの演算処理結果を直接、次の演算器リソースＡＬＵに受け渡す。同時（５サイクル目）に本発明のマイクロプロセッサは、該演算器リソースＭＰＹにて命令▲２▼：ｏｐ２の演算を実行し（ＥＩ）、続けて演算器リソースＭＰＹの演算処理結果を直接、次の演算器リソースに受け渡すが、次の演算器リソースＡＬＵが競合するため、例えば、同一機能を有する演算器リソースＡＬＵ’に該演算処理結果を受け渡す。
【０１０９】
更に本発明のマイクロプロセッサは、６サイクル目に、該演算器リソースＡＬＵにて命令▲１▼：ｏｐ１の演算を実行し（ＥＩＩＩ）、続けて７サイクル目に演算器リソースＡＬＵの演算処理結果を、例えば、書き込み部４６にて記憶部３０５にライトする（ＷＩ）。同時（６サイクル目）に本発明のマイクロプロセッサは、該演算器リソースＡＬＵ’にて命令▲２▼：ｏｐ２の演算を実行し（ＥＩＩ）、続けて７サイクル目に演算器リソースＡＬＵの演算処理結果を、例えば、書き込み部４７にて記憶部３０５にライトする（ＷＩＩ）。同時（６サイクル目）に本発明のマイクロプロセッサは、該演算器リソースＳＨＦにて命令▲３▼：ｏｐ３の演算を実行し（ＥＩ）、続けて演算器リソースＳＨＦの演算処理結果を直接、次の演算器リソースＭＰＹに受け渡す。
【０１１０】
更に本発明のマイクロプロセッサは、７サイクル目に、該演算器リソースＭＰＹにて命令▲３▼：ｏｐ３の演算を実行し（ＥＩＩ）、続けて８サイクル目に演算器リソースＭＰＹの演算処理結果を、例えば、書き込み部４６にて記憶部３０５にライトする（ＷＩ）。同時（７サイクル目）に本発明のマイクロプロセッサは、例えば、演算器リソースＭＰＹと同一機能を有する該演算器リソースＭＰＹ’にて命令▲４▼：ｏｐ４の演算を実行し（ＥＩ）、続けて８サイクル目に演算器リソースＭＰＹ’の演算処理結果を、例えば、書き込み部４７にて記憶部３０５にライトする（ＷＩＩ）。
【０１１１】
このように、本発明のマイクロプロセッサは、図１８に示すように合計８サイクルで命令▲１▼：ｏｐ１、命令▲２▼：ｏｐ２、命令▲３▼：ｏｐ３、命令▲４▼：ｏｐ４の演算処理を終了する。
従って、本発明のマイクロプロセッサは、演算器リソースが競合した場合、及び演算処理結果の記憶部３０５への書き込みが競合した場合において、パイプラインストールが発生することなく、演算処理内容に応じた最小限のサイクル数で演算処理が実行できる。
【０１１２】
図１９は、演算処理結果をフォワードすることにより演算処理時間を短縮可能な本発明のマイクロプロセッサのハードウェア構成例を示す。
図１９において、本発明のマイクロプロセッサは、図１に示すマイクロプロセッサの構成に加えて、更に演算処理実行部７の演算処理結果を記憶部５に書き込むと同時に該演算処理結果を直接、前記データ取り込み部４に通知するパスと、該演算処理結果をラッチ後、データ取り込み部４に通知するパスとから構成される記憶部５１を有する。尚、記憶部５１は、フォワードした演算処理結果をラッチするＦ／Ｆ５２と、該演算処理結果を直接通知するパスとラッチ後に通知するパスとをセレクトするセレクタ５３を有する。
【０１１３】
本発明のマイクロプロセッサは、次の演算処理命令にて先の演算処理命令の演算処理結果を使用する場合、記憶部５に書き込まれた先の演算処理命令の演算処理結果を使用することなく、データ取り込み部４が、上記、いずれかのパスからの演算処理結果を取り込む。
従って、本発明のマイクロプロセッサは、演算処理結果の受け渡しに記憶部５を介する必要がなく、最小限のサイクルで実行できる。
【０１１４】
図２０は、図１９のマイクロプロセッサの演算処理実行部７にて、例えば、命令▲１▼、命令▲２▼の演算処理を実行する場合のタイムチャートを示す。具体的には、次の命令を演算する。
命令▲１▼：ｍｏｖ  ｒ２，ｒ１；        ｍｏｖ：移動
命令▲２▼：ａｄｄ  ｒ３，ｒ０，ｒ２；  ａｄｄ：加算
本発明のマイクロプロセッサは、図２０に示すように、１サイクルで命令▲１▼をフェッチし（Ｆ）、更に命令▲１▼をデコード（Ｄ）、及び演算処理に必要なデータをリードし（Ｒ）、命令▲１▼を実行する（Ｅ）。
【０１１５】
更に本発明のマイクロプロセッサは、命令▲１▼をフェッチ後、命令▲１▼のデコードと同時に、次の命令▲２▼をフェッチし（Ｆ）、該命令をデコード（Ｄ）、及び演算処理に必要なデータをリード（Ｒ）する。尚、命令▲２▼は、命令▲１▼の演算処理結果が書き込まれたｒ２内の演算処理結果を入力とするため、データ取り込み部４では、上記記憶部５１内のパスを利用し、命令▲１▼の演算処理結果をフォワードして取り込む。
【０１１６】
この状態で、本発明のマイクロプロセッサは、命令▲２▼の演算処理を実行し（Ｅ）、命令▲２▼の演算処理結果を記憶部５に書き込む（Ｗ）。
図２１は、入出力データの再取得を実行しないことにより演算処理時間を短縮可能な本発明のマイクロプロセッサのハードウェア構成例を示す。
図２１において、本発明のマイクロプロセッサは、図１９に示すマイクロプロセッサの構成に加えて、前記データ取り込み部４にて読み込まれた入力データをラッチ６１にてラッチし、記憶部６２にて保持後、演算処理実行部７内の各演算器リソース６３、６４、６５に通知するパスを有する。
【０１１７】
このように構成される本発明のマイクロプロセッサは、演算処理実行部７内で一度使用した入力データを再度使用するような場合、記憶５からの入力データを取り込むことなく、該パスにて保持されている入力データを取り込む。
従って、本発明のマイクロプロセッサは、各演算器リソースの演算途中に同じ入力データを、他の演算器リソースで再度利用可能となり、記憶部５から再度取り込む必要がなくなり、演算処理時間の短縮が可能となる。更に本発明のマイクロプロセッサは、再取得した入力データが他の演算処理によって変化した場合も、変化前の入力データを使用することが可能となる。
【０１１８】
更に図２１のマイクロプロセッサは、データ取り込み部４にて取り込まれた入力データを直接、各演算器リソースに通知するスルーパスを有する。
また、図２１のマイクロプロセッサ内の各演算器リソース６３、６４、６５は、入力データの入力ポートをマルチポート構成とし、必要な入力データを各演算器リソースが同時に入力可能なため、記憶部５から入力データを繰り返し取り出す必要がなく、更に演算処理時間の短縮が可能となる。
【０１１９】
図２２は、図２１の構成を利用したマイクロプロセッサの実施例を示し、該マイクロプロセッサが、Ｄ１５からＤ８のアキュムレーションレジスタ（累積型データ）と、Ｄ７からＤ０の汎用レジスタのデータを用いて、演算処理を行う場合を表している。
図２２（ａ）に示す本発明のマイクロプロセッサは、汎用レジスタのデータ（Ｄ７からＤ０）を取り込んだ後、該データをセレクタ７５ａを介してスルーパスで各演算器リソース７７に通知すると同時に、演算器リソース７８、７９、８０に対応する各ラッチ７１、７２、７３に通知して保持する（図２２（ａ）、ラッチライン）。
【０１２０】
このラッチラインでは、各演算器リソース７８、７９、８０に対応する各ラッチ７１、７２、７３を有し、各演算器リソースは、必要なときにセレクタ７５ｂ、７５ｃ、７５ｄを介してデータを読み込むことが可能である。
また、アキュムレーションレジスタのように、演算処理結果が蓄積される記憶部からのデータ（Ｄ１５からＤ８）は、スループットを上げるためスルーラインに通知され、セレクタ７６を介して各演算器リソースで使用可能である。
【０１２１】
更に、データ取り込み部４の入力ポートをマルチポート構成にすることにより、すべての演算器リソースが同時に必要なデータを取り込めるため、データ取り込み部４の競合によるパイプライストールが発生せず、演算処理時間の短縮が可能となる。
上記のように構成される図２２（ａ）に示す本発明のマイクロプロセッサは、レジスタ、キャッシュ、メモリ等の記憶部５、６からの入力データをラッチするため、再度入力する必要がなくなり、演算器リソースによる演算途中に再度利用可能である。従って、本発明のマイクロプロセッサは、他の演算処理によって入力データが書き換えられている場合でも、書き換えられる前の入力データが使用可能となる。
【０１２２】
また、図２２（ｂ）に示す本発明のマイクロプロセッサは、汎用レジスタのデータ（Ｄ７からＤ０）を取り込んだ後、該データをセレクタ７５ａ、７５ｂ、７５ｃ、７５ｄを介してスルーパスで各演算器リソース７７、７８、７９、８０に通知すると同時に、該データを演算器リソース７８、７９、８０に対応する各ラッチ７１、７２、７３に通知して保持する（図２２（ｂ）、ラッチライン）。
【０１２３】
このラッチラインでは、各演算器リソース７８、７９、８０に対応する各ラッチ７１、７２、７３を有し、各演算器リソースは、必要なときにセレクタ７５ｂ、７５ｃ、７５ｄを介してデータを読み込むことが可能である。
また、アキュムレーションレジスタのように、演算処理結果が蓄積される記憶部からのデータ（Ｄ１５からＤ８）は、スループットを上げるためスルーラインに通知され、セレクタ７６を介して各演算器リソースで使用可能である。
【０１２４】
更に、データ取り込み部４の入力ポートをマルチポート構成にすることにより、すべての演算器リソースが同時に必要なデータを取り込めるため、データ取り込み部４の競合によるパイプライストールが発生せず、演算処理時間の短縮が可能となる。
上記のように構成される図２２（ｂ）に示す本発明のマイクロプロセッサは、ラッチ後に演算器リソースに通知するパスと、直接演算器リソースに通知するスルーパスの内、いずれか１つからの入力データを使用する。従って、本発明のマイクロプロセッサは、記憶部５、６からの入出力データのラッチに必要な演算処理ディレイを最小限に抑えることができる。
【０１２５】
図２３は、図１５のマイクロプロセッサのパイプライン構成を、更に並列に複数接続した本発明のマイクロプロセッサを示す。
本発明のマイクロプロセッサは、図１５のマイクロプロセッサのパイプライン１１と、該パイプラインと同一の機能を有するパイプライン１１ａ、・・・、１１ｎから構成され、各パイプラインが並列に接続されることにより、より効率的な演算処理を実行可能とする。尚、ｎは任意の整数とする。
【０１２６】
次に、本発明になるコンピュータ読み取り可能な記憶媒体の一実施例について説明する。記憶媒体には、上記の如きマイクロプロセッサの構成に関する回路情報が格納されており、図２７に示す如きコンピュータシステムにより読み取られてマイクロプロセッサが設計される。
記憶媒体は、少なくとも１つのＲＩＳＣ型命令を有するプロセス命令を実行可能なマイクロプロセッサに関するハードウェア記述言語で記述された回路情報を格納しており、入出力データ転送内容を示す情報とプロセス命令の格納場所を示すアドレス情報から構成されるマイクロコードを解読する命令解読手段に関する回路情報を格納する第１のデータ領域と、該命令解読手段にて解読された入出力データ転送内容を示す情報に対応する入力データと、該アドレス情報に対応するプロセス命令を取り込むデータ取り込み手段に関する回路情報を格納する第２のデータ領域と、該データ取り込み手段にて取り込まれた入力データ、及びプロセス命令に従って演算処理を実行可能な演算器リソースを実装する演算処理実行手段に関する回路情報を格納する第３のデータ領域とを有する。
【０１２７】
図２７に示すコンピュータシステム１００は、ＣＰＵやディスクドライブ装置等を内蔵した本体部１０１、本体部１０１からの指示により、表示画面１０２ａ上に画像を表示するディスプレイ１０２、このコンピュータシステム１００に種々の情報を入力するためのキーボード１０３、ディスプレイ１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４、外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードするモデム１０５が備えられている。ディスク１１０等の可搬型記憶媒体に格納されるか、モデム１０５等の通信装置を使って他のコンピュータの記憶媒体１０６からダウンロードされるハードウェア記述言語による回路情報は、コンピュータシステム１００に入力されコンパイルされる。コンピュータシステム１００はハードウェア記述言語により記述された回路情報をもとに、セルライブラリ情報を読みだして実回路の露光パターンや露光データを形成したり、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）のプログラムを形成するコンパイラがインストールされている。なお、セルライブラリ情報とは、例えばＣＭＯＳ用で２．５μｍピッチ配線ルールといったマイクロプロセッサが形成される半導体の種類や製造装置毎あるいは、ＦＰＧＡの種類毎に用意される。コンパイラにより形成された露光パターンは例えばステッパー等の露光装置によりシリコンウェハー等の半導体ウェハー上のフォトレジストの露光に用いられる。そして露光されたフォトレジストは現像されマスクとして働き、ｐ型あるいはｎ型の半導体を形成する不純物のドープや半導体回路を接続する配線の形成が行われる。このようにして、記憶媒体に記憶された回路情報によりマイクロプロセッサが形成される。なお、ここで用いられる記憶媒体は、ＩＣカードメモリ、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の取り外し可能な記憶媒体に限られるものではなく、モデムやＬＡＮ等の通信装置や通信手段を介して接続されるコンピュータ装置でアクセス可能な記憶媒体も含む。
【０１２８】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【０１２９】
【発明の効果】
上述の如く、本発明のマイクロプロセッサによれば、マイクロコードを構成するプロセス命令の格納場所を示すアドレス情報（演算ＩＤ）に基づいて、プロセス命令を取り込むことが可能であるため、該マイクロコードの小型化を実現しつつ、高度化、複雑化した演算処理命令に対応可能となる。
【０１３０】
また、本発明のマイクロプロセッサによれば、プロセス命令を高機能化（複数のＲＩＳＣ型命令を１つのプロセス命令に複雑化）と、マイクロコードを構成するプロセス命令の格納場所を示すアドレス情報（演算ＩＤ）の利用により、プロセス命令数を減少でき、同時にＣＰＩも減少可能となる。
また、本発明のマイクロプロセッサによれば、１つの演算器リソースの演算結果をレジスタ等に一時的に記憶することなく、直接次の演算器リソースの入力として使用するため、従来のようにデータを受け渡す間にパイプラインストールが発生せず、またダミーサイクルを挿入することもなく、演算処理内容に応じた最小限のサイクル数で演算処理を実行できる。
【０１３１】
また、本発明のマイクロプロセッサによれば、１つのプロセス命令内に複数のＲＩＳＣ型命令を含み、演算処理終了順に演算処理結果を記憶部に書き込むため、従来のように先の命令の演算処理が終了するまで後の命令が保持され、その間にパイプラインストールが発生することがなく、最小限のサイクル数で演算処理を実行できる。
【０１３２】
また、本発明のマイクロプロセッサによれば、各パイプラインからの記憶部への書き込みが競合する場合でも、同一パイプライン内の同一機能を有する演算器リソースへの命令の振り分け、及び演算処理結果出力のマルチポート構成により、競合が回避可能となる。
また、本発明のマイクロプロセッサによれば、記憶部からの入力データを取得して所定の演算処理を実行する際、該入力データを保持するため、必要に応じて同じ入力データを再取得する必要がなくなり、効率的な演算処理が実行できる。
【０１３３】
また、本発明のマイクロプロセッサは、同一パイプライン内にユーザ任意接続可能な複数の演算器リソースを有する構成のため、従来のような複数のパイプラインを並列に配置する構成と比較して、ハードウェアの規模、及び消費電流を削減できる。
従って、本発明によれば、マイクロコードを最小限におさえて演算処理命令の高度化、複雑化に対応し、演算処理命令に応じた効率的な演算処理を実行可能とし、更にハードウェアの規模、及び消費電力を減少可能なマイクロプロセッサ、演算処理実行方法及び記憶媒体を提供することができる。
【図面の簡単な説明】
【図１】本発明のマイクロプロセッサの構成である。
【図２】マイクロコードの構成である。
【図３】本発明のマイクロプロセッサの演算処理実行方法である。
【図４】本発明のマイクロプロセッサの演算処理を示す図である。
【図５】マイクロコード構成の比較である。
【図６】ＣＰＩの短縮と命令数の減少を示す図である。
【図７】ＲＩＳＣ型の命令を実行可能な演算処理実行部である。
【図８】図７の演算処理のタイムチャートである。
【図９】ＭＡＣ構成型の命令を実行可能な演算処理実行部である。
【図１０】図９の演算処理のタイムチャートである。
【図１１】本発明の演算処理実行部である。
【図１２】図１１の演算処理のタイムチャートである。
【図１３】図９の演算処理実行部にて演算処理命令（積和演算→データ移動）を実行した場合のタイムチャートである。
【図１４】図１１の演算処理実行部にて演算処理命令（積和演算→データ移動）を実行した場合のタイムチャートである。
【図１５】本発明のパイプライン構成図である。
【図１６】従来のマイクロプロセッサのパイプライン構成にてＭＡＣ演算処理命令を繰り返し実行した場合のタイムチャートである。
【図１７】図１５のマイクロプロセッサのパイプライン構成にてＭＡＣ演算処理命令を繰り返し実行した場合のタイムチャートである。
【図１８】図１５のマイクロプロセッサのパイプライン構成にて演算器リソースが競合した場合の競合回避処理である。
【図１９】演算処理結果をフォワードすることにより演算処理時間を短縮可能なマイクロプロセッサのハードウェア構成例である。
【図２０】図１９のマイクロプロセッサにて演算処理命令を実行した場合のタイムチャートである。
【図２１】入力データの再取得を実行しないことにより演算処理時間を短縮可能なマイクロプロセッサのハードウェア構成例である。
【図２２】図２１の構成によるマイクロプロセッサの構成例である。
【図２３】図１５のマイクロプロセッサのパイプライン構成を並列に複数接続したマイクロプロセッサである。
【図２４】従来のＶＬＩＷ型のマイクロプロセッサの構成である。
【図２５】命令の減少を示す図である。
【図２６】ＣＰＩの短縮を示す図である。
【図２７】本発明の記憶媒体から回路情報を読み取るコンピュータシステムを示す図である。
【符号の説明】
１      演算命令入力部
２      演算命令取り込み部
３      演算命令解読部
４      データ取り込み部
５      記憶部
６      ＬＵＴ
７      演算処理実行部
７ａ    演算処理実行部
７ｂ    演算処理実行部
８      演算結果書き込み部
９      出力制御部
１０    出力部
１１    パイプライン
１１ａ  パイプライン
１１ｎ  パイプライン
２１    ＭＰＹ
２２    ＳＨＦ
２３    ＡＬＵ
３１    ＭＰＹ
３２    ＳＨＦ
３３    ＡＬＵ
３４    ＭＰＹ
３５    ＡＬＵ
３６    ＭＰＹ
３７    ＳＨＦ
３８    ＡＬＵ
４２    演算器リソース
４３    演算器リソース
４４    演算器リソース
４５    演算器リソース
４６    書き込み部
４７    書き込み部
４８    書き込み部
４９    書き込み部
５１    記憶部
５２    Ｆ／Ｆ
５３    セレクタ
６１    ラッチ
６２    記憶部
６３    演算器リソース
６４    演算器リソース
６５    演算器リソース
７１    ラッチ
７２    ラッチ
７３    ラッチ
７５ａ  セレクタ
７５ｂ  セレクタ
７５ｃ  セレクタ
７５ｄ  セレクタ
７６    セレクタ
７７    演算器リソース
７８    演算器リソース
７９    演算器リソース
８０    演算器リソース
３０１  パイプライン
３０２  パイプライン
３０３  パイプライン
３０４  パイプライン
３０５  記憶部
３０６  書き込み調停部
３１１  演算命令取り込み部
３１２  演算命令解読部
３１３  データ取り込み部
３１４  演算処理実行部
３１５  演算結果書き込み部
【図１】
0003614646.tif 000002
【図２】
0003614646.tif 000003
【図３】
0003614646.tif 000004
【図４】
0003614646.tif 000005
【図５】
0003614646.tif 000006
【図６】
0003614646.tif 000007
【図７】
0003614646.tif 000008
【図８】
0003614646.tif 000009
【図９】
0003614646.tif 000010
【図１０】
0003614646.tif 000011
【図１１】
0003614646.tif 000012
【図１２】
0003614646.tif 000013
【図１３】
0003614646.tif 000014
【図１４】
0003614646.tif 000015
【図１５】
0003614646.tif 000016
【図１６】
0003614646.tif 000017
【図１７】
0003614646.tif 000018
【図１８】
0003614646.tif 000019
【図１９】
0003614646.tif 000020
【図２０】
0003614646.tif 000021
【図２１】
0003614646.tif 000022
【図２２】
0003614646.tif 000023
【図２３】
0003614646.tif 000024
【図２４】
0003614646.tif 000025
【図２５】
0003614646.tif 000026
【図２６】
0003614646.tif 000027
【図２７】
0003614646.tif 000028