(57)【要約】【課題】  内部メモリ容量を増大させると共に、高速なハードウェアリソースを増加させながら、パイプライン処理のストール増加を防止し、システムＬＳＩの仕様を満足させるパイプラインプロセッサ生成装置及びパイプラインプロセッサ生成方法並びにパイプラインプロセッサを提供する。【解決手段】  パイプラインプロセッサの実行サイクル時間を算出する実行サイクル算出部４１と、パイプラインプロセッサに内蔵される内部メモリのメモリアクセス時間を算出するメモリアクセス時間算出部４２と、内部メモリのメモリアクセス時間がパイプラインプロセッサの１実行サイクル時間より長い場合、パイプラインプロセッサの実行サイクル時間の整数倍に再設定した内部メモリのメモリアクセス時間を記憶するコンフィグレーション記憶部４７と、を備える。【選択図】        図１
2005196677.tif 000002
【特許請求の範囲】
【請求項１】
パイプラインプロセッサの実行サイクル時間を算出する実行サイクル算出部と、
前記パイプラインプロセッサに内蔵される内部メモリのメモリアクセス時間を算出するメモリアクセス時間算出部と、
前記内部メモリのメモリアクセス時間が前記パイプラインプロセッサの１実行サイクル時間より長い場合、前記パイプラインプロセッサの実行サイクル時間の整数倍に再設定した前記内部メモリのメモリアクセス時間を記憶するコンフィグレーション記憶部と、
を備えることを特徴とするパイプラインプロセッサ生成装置。
【請求項２】
前記実行サイクル算出部が算出した実行サイクル時間と演算回路の最大演算処理時間に遅延時間を加算した実行サイクル時間とを比較し、小さな値の実行サイクル時間を前記パイプラインプロセッサの実行サイクル時間に書換えるシステムＬＳＩ生成部をさらに備えることを特徴とする請求項１に記載のパイプラインプロセッサ生成装置。
【請求項３】
前記実行サイクル算出部は、前記コンフィグレーション記憶部に記憶したコンフィグレーション情報に基づき前記パイプラインプロセッサの実行サイクル時間を算出することを特徴とする請求項１又は請求項２に記載のパイプラインプロセッサ生成装置。
【請求項４】
前記メモリアクセス時間算出部で算出した内部メモリアクセス時間が複数の実行サイクルでアクセスする場合、前段の実行サイクル又は後段の実行サイクルで他のメモリをアクセスできたか否かを判定する性能評価部をさらに備えることを特徴とする請求項１乃至請求項３の何れか１項に記載のパイプラインプロセッサ生成装置。
【請求項５】
メモリアクセス時間算出部がパイプラインプロセッサに内蔵される内部メモリのメモリアクセス時間を算出するアクセス時間算出工程と、
実行サイクル算出部が前記パイプラインプロセッサの実行サイクル時間を算出する実行サイクル算出工程と、
システムＬＳＩ生成部が前記内部メモリのメモリアクセス時間が前記パイプラインプロセッサの１実行サイクル時間より長い場合、前記パイプラインプロセッサの実行サイクル時間の整数倍に再設定した前記内部メモリのメモリアクセス時間をコンフィグレーション記憶部に記憶する内部メモリアクセス時間算出工程と、
を備えることを特徴とするパイプラインプロセッサ生成方法。
【請求項６】
命令フェッチ処理を実行するアドレス計算ユニット及び命令キャッシュメモリと、
前記命令キャッシュメモリに接続し、前記命令キャッシュメモリから出力する命令をデコード処理する命令デコーダと、
前記命令デコーダに接続し、デコードされた命令を実行する演算ユニットと、
前記演算ユニットに接続し、前記デコードされた命令の実行結果を記憶すると共に、前記演算ユニットの実行サイクル時間の整数倍にメモリアクセス時間が設定されたデータキャッシュメモリと、
前記演算ユニットに接続し、前記実行結果を記憶する汎用レジスタと、
前記汎用レジスタの出力側と前記演算ユニットの入力側との間に配置され、前記実行結果を前記演算ユニットへ供給するバイパス制御ユニットと、
を備えることを特徴とするパイプラインプロセッサ。
【請求項７】
前記演算ユニットは、前記実行サイクル時間の整数倍にメモリアクセス時間が設定されたデータメモリに接続し、前記実行結果を出力することを特徴とする請求項６に記載のパイプラインプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構成変更可能なパイプラインプロセッサを備えるシステムＬＳＩの開発設計に利用される、コンピュータシステム上で動作する複数のソフトウエアから構成されるパイプラインプロセッサ生成装置及びパイプラインプロセッサ生成方法並びにパイプラインプロセッサに関する。
【背景技術】
【０００２】
従来のシステムＬＳＩ生成装置は、システムＬＳＩの開発設計に利用されるコンピュータシステム上で動作する複数のソフトウェアで構成し、システムＬＳＩの開発設計に関わる可変項目定義情報に基づいてソフトウェアを動作させ、システムＬＳＩのハードウェア記述、検証環境および開発設計ツールを生成するシステムＬＳＩ開発環境生成部を具備し、可変項目定義情報が、オプション命令情報、ユーザ定義モジュールおよびマルチプロセッサ構成に関する情報の少なくとも１つを含むプロセッサ生成装置が存在していた（例えば、特許文献１参照。）。
【特許文献１】特開２００２−２３００６５号公報（第３頁４欄、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
以上述べたプロセッサ生成装置を用いて内部メモリをシステムＬＳＩに実装した場合、内部メモリにデータを記憶して命令を実行することはアプリケーションの処理速度向上に有効であり、より大容量の内部メモリが求められていた。
【０００４】
しかしながら、内部メモリの容量を増加させると、アドレスビットの増加に伴いメモリアクセス時間が増加し、パイプライン制御のプロセッサでは、パイプラインステージのサイクルタイム内にメモリアクセス動作が終了しないという課題が発生する。
【０００５】
このため、メモリアクセスステージ以降のパイプラインステージで正しいデータが得られずパイプラインプロセッサの正常動作が保証されないという問題があった。
【０００６】
この問題を解消するため、プロセッサのサイクルタイムを大きくすると、パイプライン処理のスループットが低下してプロセッサの性能が低下し、パイプライン制御回路の再設計を行うとコスト増加と開発時間が長期化することが多い。
【０００７】
そこで、内部メモリ容量を増大させると共に、高速なハードウェアリソースを増加させながら、パイプライン処理のストール増加を防止し、システムＬＳＩの仕様を満足させるパイプラインプロセッサ生成装置及びパイプラインプロセッサ生成方法並びにパイプラインプロセッサを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の第１の特徴は、例えば、パイプラインプロセッサの実行サイクル時間を算出する実行サイクル算出部と、パイプラインプロセッサに内蔵される内部メモリのメモリアクセス時間を算出するメモリアクセス時間算出部と、内部メモリのメモリアクセス時間がパイプラインプロセッサの１実行サイクル時間より長い場合、パイプラインプロセッサの実行サイクル時間の整数倍に再設定した内部メモリのメモリアクセス時間を記憶するコンフィグレーション記憶部と、を備えるパイプラインプロセッサ生成装置であることを要旨とする。
【０００９】
本発明の第２の特徴は、例えば、メモリアクセス時間算出部がパイプラインプロセッサに内蔵される内部メモリのメモリアクセス時間を算出するアクセス時間算出工程と、実行サイクル算出部がパイプラインプロセッサの実行サイクル時間を算出する実行サイクル算出工程と、システムＬＳＩ生成部が内部メモリのメモリアクセス時間がパイプラインプロセッサの１実行サイクル時間より長い場合、パイプラインプロセッサの実行サイクル時間の整数倍に再設定した内部メモリのメモリアクセス時間をコンフィグレーション記憶部に記憶する内部メモリアクセス時間算出工程と、を備えるパイプラインプロセッサ生成方法であることを要旨とする。
【００１０】
本発明の第３の特徴は、例えば、命令フェッチ処理を実行するアドレス計算ユニット及び命令キャッシュメモリと、命令キャッシュメモリに接続し、命令キャッシュメモリから出力する命令をデコード処理する命令デコーダと、命令デコーダに接続し、デコードされた命令を実行する演算ユニットと、演算ユニットに接続し、デコードされた命令の実行結果を記憶すると共に、演算ユニットの実行サイクル時間の整数倍にメモリアクセス時間が設定されたデータキャッシュメモリと、演算ユニットに接続し、実行結果を記憶する汎用レジスタと、汎用レジスタの出力側と演算ユニットの入力側との間に配置され、実行結果を演算ユニットへ供給するバイパス制御ユニットと、を備えるパイプラインプロセッサであることを要旨とする。
【発明の効果】
【００１１】
本発明によれば、内部メモリ容量を増大させると共に、高速なハードウェアリソースを増加させながら、パイプライン処理のストール増加を防止し、システムＬＳＩの仕様を満足させるパイプラインプロセッサ生成装置及びパイプラインプロセッサ生成方法並びにパイプラインプロセッサを提供するという、格別な効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を図示例と共に説明する。図１から図７は、発明の実施形態であって、各図中に同一または類似の符号を付した部分は同一物または相当物を表わし、重複した説明は省略するものとする。
【００１３】
（第1の実施の形態）
図１は、本発明の第１の実施形態に係るプロセッサ生成装置４０のブロック図である。プロセッサ生成装置４０は、図中央の制御部４８に接続された、実行サイクル算出部４１、メモリアクセス時間算出部４２、システムＬＳＩ生成部４３、性能評価部４５、終了判定部４６、コンフィグレーション記憶部４７、入出力インタフェイス部４９を備える。
【００１４】
プロセッサ生成装置４０は、内部に各種情報を入力するための入力部５０とプロセッサ生成装置４０からの各種情報を出力するための出力部５１とに接続されている。ここで、入力部５０の形態としては、例えば、キーボード、マウスポインタ、テンキー、タッチパネルを採用することができる。
【００１５】
また、出力部５１の形態としては、例えば、ディスプレイ装置や印刷装置を採用することができる。
【００１６】
実行サイクル算出部４１は、コンフィグレーション記憶部４７に記憶したパイプラインプロセッサのオプション命令の有無に基づいて演算回路の最大演算処理時間と、コンフィグレーション記憶部４７に記憶したコンフィグレーション情報に基づいてパイプラインプロセッサの実行サイクル時間と、を比較する。
【００１７】
比較結果に基づき実行サイクル時間として実現できる実行サイクルの中から短時間なサイクルを基準サイクル時間として算出する。
【００１８】
メモリアクセス時間算出部４２は、パイプラインプロセッサに内蔵する内部メモリのメモリアクセス時間をメモリ容量から算出する。メモリ容量に基づきアクセス時間を算出するのは、内部メモリをアクセスするアドレスのビット数又はワード数が増加するため、メモリセルの選択時間が延長するからである。
【００１９】
システムＬＳＩ生成部４３は、コンフィグレーションの可能な全ての組み合わせについて、システムＬＳＩのハードウェア、検証環境および開発設計ツールを生成する。
【００２０】
また、システムＬＳＩ生成部４３は、コンパイラを生成してＣ言語プログラムのアプリケーションをコンパイルすることができ、アセンブラを生成して、アプリケーションがアセンブリ言語で記述された場合でも、アセンブルの結果としてオブジェクトファイルを得ることができる。
【００２１】
システムＬＳＩ生成部４３は、シミュレータを生成して、実行ファイルをシミュレートすることもできる。シミュレータは、シミュレーション結果を表示するだけでなく、シミュレート時に実行される命令を１つずつカウントすることで、アプリケーション全体の実行命令数を計測することができる。
【００２２】
さらに、システムＬＳＩ生成部４３は、リンカー、デバッガを生成して、実行ファイルを修正することもできる。
【００２３】
システムＬＳＩ生成部４３が、コンフィグレーションの可能な全ての組み合わせに対応したツールを生成し、ツール生成完了に応じてユーザはアプリケーションを実行させる。そして、アプリケーション実行後、性能評価部４５が、アプリケーションの実行結果を読出して、アプリケーションの性能を評価する。
【００２４】
性能評価部４５は、アプリケーションのコードサイズ、実行命令数、実行サイクル数、チップのゲートサイズおよび消費電力を見積ることができる。
【００２５】
システムＬＳＩ生成部４３は、３つの実行ステージに跨ってメモリアクセスを実行するパイプラインプロセッサを生成することができる。
【００２６】
例えば、システムＬＳＩ生成部４３は、実行ステージ数がＰｎの基本クロックサイクルで動作するパイプライン制御回路とバイパス回路などを含むプロセッサの設計情報を生成して出力部５１に出力する共に、コンフィグレーション記憶部４７にメモリアクセスステージのパイプライン段数としてＰｎの値「３」を書き込む。
【００２７】
性能評価部４５は、アプリケーションのコードサイズを評価することができると共に、アプリケーション実行時のキャッシュミスの測定、実行される各命令のサイクル数の計測を行って、アプリケーション全体の正確なサイクル数を測定することができる。
【００２８】
また、性能評価部４５は、アプリケーションプログラム内に実行命令数計測の開始点と終了点を意味する命令を記述することにより、アプリケーションプログラムの指定された２点間の実行命令数を測定することもできる。
【００２９】
性能評価部４５は、実行サイクル数の測定を実行することもできる。例えば、区間指定の方法は実行命令数の場合と同様であり、プログラムの内側のフォアループの実行サイクル数を測定する場合、内側のフォアループの前後に開始（ＳＴＡＲＴ）と終了（ＥＮＤ）を書き加える。
【００３０】
性能評価部４５は、システムＬＳＩ生成部４３から出力されるＲＴＬ記述を読出して、市販ツールによって消費電力あるいは消費電力に換算可能な数値を抽出する。また、ＲＴＬ記述を利用して、ゲートサイズあるいはゲートサイズに換算可能な数値を抽出する。
【００３１】
このように、ゲートサイズに関する情報を抽出することにより、最適なチップ面積を決定でき、ＬＳＩ製造時のコストを抑えることにつながる。
【００３２】
なお、性能評価部４５は、システムＬＳＩ生成部４３が生成したＲＴＬ記述、コンパイラ、シミュレータ、検証環境を利用して、キャッシュのミス率（あるいはヒット率）を抽出することもできる。
【００３３】
終了判定部４６は、性能評価部４５による性能評価結果に基づいて、設計されたシステムＬＳＩがユーザが予め設定した目標性能を満たしているか否かを判別する。
【００３４】
そして、目的性能を満たしていない場合には、コンフィグレーション記憶部４７が、性能評価部４５による評価結果に基づいて、次回以降の設定値を導出するように構成する。
【００３５】
コンフィグレーション記憶部４７は、パイプラインプロセッサのオプション命令や、コンフィグレーション情報を記憶し、導出することができる。
【００３６】
制御部４８は、入出力インタフェイス部４９を通してユーザの指示に従って、プロセッサ生成装置４０内の構成要素の制御を行う。
【００３７】
次に、プロセッサ生成装置４０を用いたパイプラインプロセッサ生成処理について説明する。
【００３８】
ユーザは、始めに、キャッシュサイズ、演算装置の性能に関して最大のコンフィグレーションをプロセッサ生成装置４０に対して入力する。コンフィグレーションが入力されると、プロセッサ生成装置４０内のシステムＬＳＩ生成部４３が、コンフィグレーションの可能な全ての組み合わせに対応したツールを生成し、ツール生成完了に応じてユーザはアプリケーションを実行させる。
【００３９】
次に、アプリケーション実行後、性能評価部４５が、アプリケーションの実行結果を読出して、アプリケーションの性能を評価する。性能評価部４５による性能評価が完了すると、終了判定部４６が、最初のコンフィグレーションによる性能が所望の基準に達しているか否かを判別する。
【００４０】
性能が基準に達している場合には、性能を満足する最小のパイプラインプロセッサの構成を抽出し、検証環境およびドキュメントを入出力インタフェイス部４９を通して出力部５１に出力し、ユーザに確認させることができる。
【００４１】
ここで、出力部５１に表示されるドキュメントには、指定されたコンフィグレーションを確認するための項目についての記述が含まれているものとする。
【００４２】
一方、性能が満足しない場合には、ユーザは、ユーザ定義のモジュールを設計し、開発ツール内に組み込み、ユーザ定義モジュールを利用するようにアプリケーションを書き換える。
【００４３】
そして、再びアプリケーションを実行し、書き換えたアプリケーションが所望の性能を満たしているか否かを判別する。
【００４４】
上述したプロセッサ生成装置４０は、構成変更可能なパイプラインプロセッサを用いたシステムＬＳＩの設計において、パイプラインプロセッサに内蔵する内部メモリのメモリアクセス時間をメモリサイズから算出する。
【００４５】
一方、パイプラインプロセッサのオプション命令の有無から求めた演算回路の最大演算処理時間とコンフィグレーション情報から得たプロセッサの実行サイクル時間と比較し実行サイクル時間として実現できるサイクル時間の中から短時間なサイクル時間を基準サイクル時間として選択する。
【００４６】
そして、メモリアクセス時間を基準サイクル時間で除算して小数点以下を切り上げた整数のＰｎを求め、内部メモリアクセスステージをＰｎのサイクル数で実行するパイプライン制御回路やバイパス回路を含むパイプラインプロセッサの設計情報をシステムＬＳＩ生成部４３により生成することができる。
【００４７】
図１のブロック図及び図２のフローチャートを参照して、本発明の第１の実施形態に係るプロセッサ生成方法について説明をする。
【００４８】
設計者は、アルゴリズム記述処理ステップＳＴ１（以下、ステップを単に「ＳＴ」と略記する）で、Ｃ言語によるアプリケーションのプログラムを記述し、入力部５０から入出力インタフェイス部４９及び制御部４８を経由してコンフィグレーション記憶部４７に記憶させる。
【００４９】
次に、パイプラインプロセッサの性能判定処理ＳＴ２に進み、入力部５０からパイプラインプロセッサの構成を選択し、システムＬＳＩ生成部４３を動作させコンパイラ、シミュレータなどの設計ツールを生成する。
【００５０】
システムＬＳＩ生成部４３で生成したコンパイラ、シミュレータを利用して、パイプラインプロセッサが所望の性能を達成したか否かを、パイプラインプロセッサの性能判定処理ＳＴ２で確認する。
【００５１】
判定結果が是（ＹＥＳ）のときは、実装処理ＳＴ７へ分岐しソフトウエアの微調整（チューニング）や、回路の高位合成処理を実行する。必要であれば、実装処理ＳＴ７で人手による微調整設計を追加してもよい。
【００５２】
一方、判定結果が非（ＮＯ）のときは、構成確認処理ＳＴ３に分岐し、評価すべきパイプラインプロセッサ構成の選択の組み合わせが完了したか出力部５１でユーザが確認し、システムＬＳＩの仕様をＣ言語で記述したソースプログラムの性能を評価する。
【００５３】
構成確認処理ＳＴ３の判定結果が非（ＮＯ）のときは、処理ＳＴ２へ復帰させパイプラインプロセッサの構成を他の構成に変更する。
【００５４】
構成確認処理ＳＴ３の判定結果が是（ＹＥＳ）のときは、内部メモリ容量増加処理ＳＴ４へ分岐し、システムＬＳＩ生成部４３を動作させパイプラインプロセッサの構成を生成し、コンパイラ、シミュレータの設計ツールも生成する。
【００５５】
すべてのプロセッサの変更可能な組合せでシステムＬＳＩを評価しても、システムＬＳＩの性能が満足しない場合、処理ＳＴ４で内部メモリサイズ変更評価を実行する。
【００５６】
処理ＳＴ４では、構成要素の組み合わせの中で性能未達成であるが性能の優れたコンフィグレーションのプロセッサ（Ｐａ）に対して、更に性能向上を図るために予め準備された内部メモリ容量を超えるメモリ容量を指定して性能評価を行う。
【００５７】
システムＬＳＩ生成部４３で生成したコンパイラ、シミュレータを利用して、パイプラインプロセッサが容量を増大させた内部メモリをアクセスし、所望の性能に達成したか否かを、パイプラインプロセッサの性能判定処理ＳＴ４で確認する。
【００５８】
判定結果が是（ＹＥＳ）のときは、内部メモリ容量判定処理ＳＴ５へ分岐し所望の性能に達したパイプラインプロセッサの内部メモリ容量を判定する。この判定処理は、１実行サイクル又は複数の実行サイクルでアクセスできる内部メモリの上限容量以上であるか否かを判定する。
【００５９】
プログラムとして記述されたシステムＬＳＩの処理性能が所望の性能を達成したときは、算出された内部メモリサイズが、パイプラインプロセッサのチップサイズの実装上の上限で決まるメモリサイズ、及びパイプラインプロセッサのチップコストから求められるチップサイズの上限で決まるメモリサイズと比較し、上限サイズより小さければ、実装処理ＳＴ７に移行する。
【００６０】
同様に、算出された内部メモリサイズが、上限サイズより大きければ、その内部メモリサイズを採用できないため、ソフトウェアのハードウェア化を検討する処理ＳＴ６に移行する。
【００６１】
プロセッサ生成装置４０を用いれば、システムＬＳＩをＣ言語でプログラム記述して設計を行う設計者が、プロセッサの変更可能な構成要素の組み合わせで性能評価をしてもシステムＬＳＩの性能が満足できない場合に有効である。
【００６２】
例えば、ハードウェア化する回路のハードウェアに関する情報や知識が必要なソフトウェア及びハードウェアの機能分割化による設計に着手する前に、内部メモリ容量を増やして実効的なメモリアクセス速度を向上させたときのシステムＬＳＩの性能評価を精度よく容易に行うことができ、設計開発期間が短縮できるという利点がある。
【００６３】
内部メモリ容量が上限以下と判定（ＹＥＳ）された場合は、実装処理ＳＴ７へ分岐するが、内部メモリ容量が上限を超えると判定（ＮＯ）されたときは、機能分割処理ＳＴ６へ分岐しシステムＬＳＩを構成するハードウエア化部分を入力部５０で選択する。
【００６４】
一方、パイプラインプロセッサの性能判定処理ＳＴ４の判定結果が非（ＮＯ）のときは、機能分割処理ＳＴ６へ分岐する。
【００６５】
ユーザは、機能分割処理ＳＴ６でシステムＬＳＩのハードウエア部とソフトウエア部の機能分割を入力部５０から指示し、システムＬＳＩ生成部４３からコンパイラとシミュレータを生成し、システムＬＳＩのソフトウエアプログラムをコンパイルしてから、シミュレーションする。
【００６６】
ユーザは、機能分割処理ＳＴ６で出力部５１に表示されたシステムＬＳＩのシミュレーション結果を見て、システムＬＳＩが所望の性能に達成したか否かを判定することができる。判定結果が是（ＹＥＳ）のときは、実装処理ＳＴ７へ分岐し、判定結果が非（ＮＯ）の場合は、再設計処理ＳＴ８へ分岐してから処理ＳＴ２へ戻る。
【００６７】
再設計処理ＳＴ８は、システムＬＳＩのアルゴリズム選択を含めてパイプラインプロセッサを再設計する処理である。
【００６８】
（第２の実施の形態）
図３（ａ）は、本発明の第２の実施形態に係るパイプラインプロセッサの実行ステージを示す図である。パイプラインプロセッサ１０は、合計５段のステージ２０からなるパイプライン構成で命令を実行する。
【００６９】
５段のステージ２０は、第１のステージで命令をフェッチ１２（ＩＦ）し、第２のステージで命令をデコード１３（ＩＤ）し、第３のステージで命令を実行１４（ＥＸＥ）し、第４のステージでメモリアクセス１７（ＭＥＭ）し、第５のステージでレジスタライトバック１５（ＷＢ）をするように構成する。
【００７０】
命令のフェッチ１２（ＩＦ）のステージは、命令キャッシュメモリ１８から命令をレジスタ処理１１ａ経由で読込み、デコード１３（ＩＤ）のステージで、フェッチ１２した命令をレジスタ処理１１ｂ経由でデコード１３し、汎用レジスタ１９（Reg.File）からレジスタファイルを読出してレジスタ処理１１ｃでレジスタに保存する。
【００７１】
ここで、レジスタ処理は、例えば、プロセッサを構成する演算論理回路（ＡＬＵ）の演算結果を１マシンクロックの期間保持するステージや、命令キャッシュメモリ１８からデータを１マシンクロックの期間保持するステージを意味する。
【００７２】
なお、命令キャッシュメモリ１８の代替手段として、命令ＲＡＭから命令をフェッチ１２してもよいことは勿論である。
【００７３】
引き続き、実行１４（ＥＸＥ）のステージは、デコード１３の結果に従い命令を実行し実行結果をレジスタ処理１１ｂでレジスタに保存する。
【００７４】
メモリアクセス１７（ＭＥＭ）のステージは、ロード命令、ストア命令の場合は、データキャッシュメモリやデータＲＡＭにアクセスしてデータの読み書きを処理し結果をレジスタ処理１１ｈでレジスタに保存する。
【００７５】
レジスタライトバック１５（ＷＢ）のステージでは、レジスタ処理１１ｅから命令実行結果を受取りレジスタ処理１１ｉ経由で汎用レジスタへ命令の実行結果を書き戻すように構成する。
【００７６】
一方、ロード命令やストア命令が実行される時は、メモリアクセス１７（ＭＥＭ）でアクセスするメモリのアドレス計算１６（ＡＣ）のステージが実行１４（ＥＸＥ）のステージと並列して動作する。
【００７７】
アドレス計算１６（ＡＣ）は、レジスタ処理１１ｆ経由で命令を受け取り、アドレス算結果をレジスタ処理１１ｇによりレジスタに保存する。
【００７８】
また、レジスタライトバック１５（ＷＢ）のステージでは、レジスタ処理１１ｈからメモリアクセス結果を受取りレジスタ処理１１ｉ経由で汎用レジスタへメモリアクセス結果を書き戻すように構成する。
【００７９】
５段のステージ２０からなるパイプライン構成は、後続のパイプラインの命令実行の際に、命令実行結果Ａや、第４段目のステージでレジスタ処理１１ｄ経由で保持する命令実行結果Ｂや、メモリアクセス１７のアクセス結果Ｃや、ライトバックするデータＭを利用させることができる。
【００８０】
すなわち、従来のパイプラインプロセッサが第５段目の実行ステージで出力されるデータを後続のパイプライン処理に利用させる処理時間に比して、第３段目、第４段目、第５段目の夫々の実行ステージの中間結果（Ａ、Ｂ、Ｃ、Ｍ）を後続のパイプライン処理に利用させるのでパイプラインストール（ＮＯＰ挿入）が増加しないという利点がある。
【００８１】
設計者としてのユーザは、構成変更可能なプロセッサを用いてシステムＬＳＩ設計を行う際に、大規模集積回路を製造するＬＳＩメーカから提供される設計環境生成システムを利用して、パイプラインプロセッサの変更可能な構成要素の組合せを選択し評価する。
【００８２】
システムＬＳＩのシミュレーション結果を確認し、システムＬＳＩの性能が所望の値に達した段階で、実装処理（図２参照）を遂行する。
【００８３】
図４は、本発明の第２の実施形態に係るパイプラインプロセッサのブロック図である。パイプラインプロセッサ１０は、プロセッサコア６２と命令キャッシュメモリ１８とデータキャッシュメモリ６０とを半導体基板に備え、合計５段のステージ２０からなるパイプライン構成で命令を実行するシステムＬＳＩである。
【００８４】
なお、図３（ａ）で説明した各段のレジスタ処理に用いられるレジスタは、図示していないが、第１段目〜第５段目までの実行ステージでデータを一時記憶するのは勿論である。
【００８５】
パイプラインプロセッサ１０は、例えば、命令フェッチ処理を実行するアドレス計算ユニット５６を備え、アドレス計算結果に基づいて命令キャッシュメモリ１８から命令を出力させ、命令キャッシュメモリ１８に接続した命令デコーダ５７が、命令キャッシュメモリ１８から出力する命令をデコード処理する。
【００８６】
また、パイプラインプロセッサ１０は、命令デコーダ５７に接続し、デコードされた命令を実行する演算ユニット５９と、演算ユニット５９に接続し、デコードされた命令の実行結果を記憶すると共に、演算ユニット５９の実行サイクル時間の整数倍（例えば、１倍）にメモリアクセス時間が設定されたデータキャッシュメモリ６０を備える。
【００８７】
さらに、パイプラインプロセッサ１０は、演算ユニット５９に接続し、実行結果をレジスタファイルとして記憶する汎用レジスタ１９と、汎用レジスタ１９の出力側と演算ユニット５９の入力側との間に配置され、実行結果を演算ユニット５９へ供給するバイパス制御ユニット５８と、をさらに備える。
【００８８】
アドレス計算ユニット５６は、外部から入力されるアドレスデータに基づき命令キャッシュメモリ１８に記憶した複数の命令の中から１つの命令を選択して命令デコーダ５７へ出力させる。例えば、繰返し実行される命令を命令キャッシュメモリ１８に記憶し外部のメモリに比して高速な命令フェッチ処理を遂行することができる。
【００８９】
また、アドレス計算ユニット５６は、命令デコーダ５７に接続し、アドレス計算結果を命令デコーダ５７へ渡すことができる。例えば、分岐命令やジャンプ命令のようなプログラムポインタが大きく変化する命令処理に対して有効である。
【００９０】
命令デコーダ５７は、デコードした命令を演算ユニット５９へ直接渡すこともできるが、バイパス制御ユニット５８を経由して演算ユニット５９へデコードした命令を間接的に渡すこともできる。
【００９１】
演算ユニット５９は、メモリアクセスを実行する場合は、第４段目の実行ステージで命令の実行結果をデータキャッシュメモリ６０へ記憶させ、第５段目の実行ステージでデータキャッシュメモリ６０から読み出したデータを汎用レジスタ１９へライトバック（ＷＢ）する。
【００９２】
データキャッシュメモリ６０は、１マシンクロックで演算ユニットからメモリアクセスでき、１マシンクロックで汎用レジスタ１９へライトバックできるように構成されている。
【００９３】
演算ユニット５９は、命令の実行結果を次のパイプライン処理に使用させる場合は、第４段目の実行ステージで実行結果をバイパス制御ユニット５８へ書込み、バイパス制御ユニット５８経由で演算ユニット５９へデータを渡すことができる。
【００９４】
同様に、演算ユニット５９は、第４段目の実行ステージで実行結果をバイパス制御ユニット５８へ書込み、バイパス制御ユニット５８経由で演算ユニット５９へデータを渡すこともでき、第５段目の実行ステージでも実行結果をバイパス制御ユニット５８へ書込み、バイパス制御ユニット５８経由で演算ユニット５９へデータを渡すことができる。
【００９５】
さらに、演算ユニット５９は、第５段目の実行ステージで実行結果を汎用レジスタ１９へ書込むこともできる。なお、実行結果が書き込まれるレジスタファイルは実行結果を書き込む命令が命令デコーダ５７でデコードされた際に出力され、パイプラインを伝搬してきたレジスタアドレス信号に基づき選択される。
【００９６】
バイパス制御ユニット５８は、第２段目の実行ステージで命令デコーダ５７から出力されるイミディエートデータと、汎用レジスタ１９から出力されるデータを受信し、所定の実行ステージでイミディエートデータとデータとを演算ユニット５９へ出力する。
【００９７】
（第３の実施の形態）
図３（ｂ）は、本発明の第３の実施形態のパイプラインプロセッサの実行ステージを示す図である。第３の実施形態で図示した構成要素の中で、第２の実施形態と同一の構成要素については重複する説明を省略する。
【００９８】
第３の実施形態では、合計７段のステージ２０からなるパイプライン構成で命令を実行するパイプラインプロセッサである点で、第２の実施形態のパイプラインプロセッサと構成要素が相違する。
【００９９】
コンフィグレーション記憶部４７（図１参照）に書込まれたＰｎ値「３」に基づき生成されるパイプラインプロセッサは、メモリアクセス１７ａ、メモリアクセス１７ｂ、及びメモリアクセス１７ｃの３段メモリアクセスステージを構成する。
【０１００】
第３の実施形態でも、第３段目、第４段目、第５段目、第６段目、第７段目の夫々の実行ステージの中間結果（Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｍ）を後続のパイプライン処理に利用させるのでパイプラインストール（ＮＯＰ挿入）が増加しないという利点がある。
【０１０１】
しかも、メモリアクセスステージが３つのメモリアクセス１７ａ、メモリアクセス１７ｂ、及びメモリアクセス１７ｃに分割されているため、大容量のメモリアクセスを１実行サイクルで処理する場合に比して、短い１実行サイクルで刻みながらパイプライン処理全体を高速化することができる。
【０１０２】
また、メモリアクセス１７ａで、内部メモリにアクセスしてデータの読出処理を開始し、信号伝搬時間を経てから、メモリアクセス１７ｂの開始段階で後続パイプライン命令による内部メモリの他のアドレスに対してデータの読出処理を開始し、メモリアクセス１７ｂの終了段階でメモリアクセス１７ａの読出処理によるデータを取得する多重アクセス方式を採用することができる。
【０１０３】
この場合、内部メモリのデータが信号伝搬時間を経てから出力するので、アクセスとデータ読出しは内部バスで衝突しないことは勿論である。また、内部メモリのアクセス位置はメモリマットで物理的に離れているほうが、データリテンションを未然に防止することができる。
【０１０４】
さらに、内部メモリを用いて多重アクセス方式を説明したが、本発明はこの構成に限定されず、例えば、内部メモリとキャッシュメモリを同一のメモリアクセスステージでアクセスしても多重アクセス方式を採用することができる。
【０１０５】
図５は、本発明の第３の実施形態に係るパイプラインプロセッサのブロック図である。パイプラインプロセッサ１０ａは、プロセッサコア６２と命令キャッシュメモリ１８とデータキャッシュメモリ６０とデータメモリ６１を備え、合計７段のステージ２０からなるパイプライン構成で命令を実行する。
【０１０６】
第３の実施形態のパイプラインプロセッサ１０ａは、データメモリ６１を備える点で第２の実施形態と相違する。また、第２の実施形態と同一の構成要素については、重複する説明を省略する。
【０１０７】
なお、図３（ｂ）で説明した各段のレジスタ処理に用いられるレジスタは、図示していないが、第１段目〜第７段目までの実行ステージでデータを一時記憶するのは勿論である。
【０１０８】
パイプラインプロセッサ１０ａは、演算ユニット５９から出力する演算結果をデータキャッシュメモリ６０とデータメモリ６１へ記憶させることができる。データキャッシュメモリ６０は第３の実施形態と同様に１マシンクロックの実行ステージでメモリアクセスをする。
【０１０９】
一方、データメモリ６１は、データキャッシュメモリ６０と並行して実行結果を書込めるが、内部に記憶したデータの読出しサイクルが、例えば、３つの実行ステージ（第４段目、第５段目、第６段目）に亘って長くなる点で相違する。
【０１１０】
データメモリ６１は、コンフィグレーション情報に基づいて製造され、演算ユニット５９に接続し、デコードされた命令の実行結果を記憶すると共に、演算ユニット５９の実行サイクル時間の整数倍（例えば、３倍）にメモリアクセス時間が設定されている。
【０１１１】
パイプラインプロセッサ１０ａは、バイパス制御ユニット５８が第６段目の実行ステージでデータメモリ６１のデータを要求している場合、第４段目の実行ステージでデータメモリ６１の読出サイクルを開始し、第５段目の実行ステージを経て第６段目の実行ステージでデータメモリ６１からデータを読出し、バイパス制御ユニット５８へデータを書込むように制御する。
【０１１２】
また、パイプラインプロセッサ１０ａは、汎用レジスタ１９が第７段目の実行ステージでデータメモリ６１のデータを要求している場合、第４段目の実行ステージでデータメモリ６１の読出サイクルを開始し、第５段目の実行ステージを経て第６段目の実行ステージでデータメモリ６１からデータを読出し、レジスタにデータを保持してから第７段目の実行ステージで汎用レジスタ１９へデータを書込むように制御することもできる。
【０１１３】
（第４の実施の形態）
図６は、本発明の第４の実施形態によるパイプラインプロセッサの生成フローを示すフローチャートである。
【０１１４】
図１のブロック図及び図６のフローチャートを参照して、パイプラインプロセッサの生成フローを説明する。
【０１１５】
入力部５０からユーザが予め用意されたコンフィグレーションの組合せと異なる指定を行うと、この段階で実行されるプロセッサ生成フローは、図６の処理ＳＴ２１に移行する。
【０１１６】
入力部５０から入出力インタフェイス部４９、制御部４８を経由して、ユーザが指定した内部メモリサイズ情報をコンフィグレーション記憶部４７に記憶する。
【０１１７】
メモリアクセス時間算出部４２は、内部メモリサイズ情報に基づきコンフィグレーション記憶部４７に記憶したメモリ構成情報を読出して、内部メモリのアクセスタイム（Ｔａ）を算出する。
【０１１８】
この段階で、システムＬＳＩ生成部４３は、処理ＳＴ２１に示した式を用い、パイプラインステージで必要なセットアップ時間や出力遅延時間を合計した遅延時間（Ｔｄ）を内部メモリのアクセスタイム（Ｔａ）に加算する。加算した値は変数Ｔｍａに対応させてコンフィグレーション記憶部４７に保存する。
【０１１９】
次に処理ＳＴ２２に移行し、実行サイクル算出部４１は、オプション命令を含めた命令を実行する時の演算回路の最大演算処理時間（Ｔｂ）を算出する。
【０１２０】
この段階で、システムＬＳＩ生成部４３は、処理ＳＴ２２に示した式を用い、パイプラインステージで必要なセットアップ時間や出力遅延時間を合計した遅延時間（Ｔｄ）を最大演算処理時間（Ｔｂ）に加算し変数Ｔａｂに対応させてコンフィグレーション記憶部４７に保存する。
【０１２１】
処理ＳＴ２３は、実行サイクル算出部４１が構成変更可能なプロセッサ（Ｐａ）の構成を指定するコンフィグレーション情報で指定されたプロセッサの実行サイクルタイム（Ｔｃ）を算出する。
【０１２２】
この段階で、プロセッサ生成装置４０は、Ｔｍａ、Ｔａｂを算出する場合、プロセッサ構成の候補選定段階であると位置付けて、システムＬＳＩ生成部４３でシミュレータを生成し、予めコンフィグレーション記憶部４７に登録した数値を用いてシステムＬＳＩのシミュレーションを実行する。
【０１２３】
また、コンフィグレーション記憶部４７に登録された値の中間の値や、登録した範囲を超えた値が指定された時も、システムＬＳＩ生成部４３にプログラムされた簡単な計算式でシミュレーション結果を求めて、システムＬＳＩの良好な応答性を維持することができる。
【０１２４】
次に、プロセッサ生成装置４０は、プロセッサの基準クロックサイクルタイム（Ｔｅ）を次の処理工程で定める。
【０１２５】
システムＬＳＩ生成部４３は、処理ＳＴ２４で、ユーザが、パイプラインプロセッサと連携して動作する外部回路や、システムによって固定となるシステムクロックを指定していると判定（ＹＥＳ）したときは、処理ＳＴ２５へ分岐する。
【０１２６】
システムＬＳＩ生成部４３は、処理ＳＴ２５で、基準クロックサイクルタイム（Ｔｅ）として、パイプラインプロセッサの実行サイクルタイム（Ｔｃ）を選択しコンフィグレーション記憶部４７に保存する。
【０１２７】
一方、システムＬＳＩ生成部４３は、処理ＳＴ２４で、システムサイクルに制約がないと判定（ＮＯ）した場合は、処理ＳＴ２７へ分岐しＴｃとＴａｂを比較する。ＴａｂがＴｃより小さな値（ＹＥＳ）のときは、処理ＳＴ２８へ移行し基準クロックサイクルタイム（Ｔｅ）として、Ｔａｂを選択しコンフィグレーション記憶部４７に保存する。
【０１２８】
また、システムＬＳＩ生成部４３は、処理ＳＴ２７でＴｃがＴａｂより小さな値（ＮＯ）の場合は、処理ＳＴ２５へ分岐しコンフィグレーション記憶部４７に記憶したプロセッサの実行サイクルタイム（Ｔｃ）を基準クロックサイクルタイム（Ｔｅ）に書き換える。
【０１２９】
引き続き、システムＬＳＩ生成部４３は、処理ＳＴ２６で、メモリのアクセスタイム（Ｔａ）に設計システムで予め定めた遅延時間（Ｔｄ）を加えた時間Ｔｍａを、基準クロックサイクルタイム（Ｔｅ）で除算する。この除算結果の小数点以下を切り上げた数値を整数のＰｎとしてコンフィグレーション記憶部４７に保存する。
【０１３０】
言い換えれば、システムＬＳＩ生成部４３は、メモリアクセス時間がパイプラインプロセッサの１実行サイクル時間より長い場合、パイプラインプロセッサの実行サイクル時間の整数倍に再設定し、コンフィグレーション記憶部４７に内部メモリのメモリアクセス時間を保存すればよい。
【０１３１】
システムＬＳＩ生成部４３は、メモリアクセスステージ数がＰｎの基本クロックサイクルで動作するパイプライン制御回路と、バイパス回路を含むプロセッサの設計情報を生成して出力部５１（図１参照）に出力（ＳＴ２９）すると共に、コンフィグレーション記憶部４７にメモリアクセスステージパイプライン段数を整数のＰｎとしてコンフィグレーション情報を書込む（ＳＴ３０）。
【０１３２】
（第５の実施の形態）
図７（ａ）は、本発明の第５の実施形態によるパイプラインプロセッサのタイミングチャートである。
【０１３３】
内部メモリアクセスとキャッシュメモリアクセスの各ステージが１サイクルの時は、図示するように、内部のメモリアクセス命令５２ａ（ロードワード命令）「ＬＷ $10,($1)」、キャッシュのメモリアクセス命令５２ｂ（ロードワード命令）「ＬＷ $11,($2)」、及び加算命令５２ｃ（アッド）「ＡＤＤ $10,$11」、の３種類の命令は、合計８サイクルで実行が終了する。
【０１３４】
内部のメモリアクセス命令５２ａは、レジスタ「１」番で指定した内部メモリのデータをレジスタ「１０」番に保存する命令である。
【０１３５】
キャッシュのメモリアクセス命令５２ｂは、レジスタ「２」番で指定したキャッシュメモリのデータをレジスタ「１１」番に保存する命令である。
【０１３６】
加算命令５２ｃは、レジスタ「１０」番のデータとレジスタ「１１」番のデータを加算してレジスタ「１０」番に保存する命令である。
【０１３７】
本発明は、この３種類の命令に限定するものではなく、パイプラインプロセッサが備える多数の命令を実行することができることは勿論である。
【０１３８】
インストラクション５２の一部である内部のメモリアクセス命令５２ａ「ＬＷ $10,($1)」は、フェッチ３１、命令デコード３２、アドレス算出３３、メモリアクセス３４、レジスタライトバック３５の５段パイプライン処理で実行が完了する。
【０１３９】
キャッシュのメモリアクセス命令５２ｂ「ＬＷ $11,($2)」は、パイプラインの第２実行ステージからフェッチ３１ａ、命令デコード３２ａ、アドレス算出３３ａ、メモリアクセス３４ａ、レジスタライトバック３５ａの５段パイプライン処理で実行が完了する。
【０１４０】
加算命令５２ｃ「ＡＤＤ $10,$11」は、パイプラインの第３実行ステージからフェッチ３１ｂ、命令デコード３２ｂ、ストール３７、命令実行３６、次サイクル処理３８、レジスタライトバック３５ｂの６段パイプライン処理で実行が完了する。
【０１４１】
（第６の実施の形態）
図７（ｂ）は、本発明の第６の実施形態によるパイプラインプロセッサのタイミングチャートである。
【０１４２】
上述した第５の実施形態と同一の構成要素については重複する説明を省略するが、第６の実施形態では、内部メモリアクセスが２サイクルの分割アクセスに構成した点が相違する。
【０１４３】
図示するように、内部のメモリアクセス命令５２ａ「ＬＷ $10,($1)」、内部のメモリアクセス命令５２ｂ「ＬＷ $11,($2)」、及び加算命令５２ｃ「ＡＤＤ $10,$11」、の３つ命令は、合計９サイクルで実行が終了する。
【０１４４】
インストラクション５２の一部である内部のメモリアクセス命令５２ａ「ＬＷ $10,($1)」は、第４実行ステージでメモリアクセス３４ｂを開始し、メモリアクセス３４ｃ、レジスタライトバック３５の６段パイプライン処理で実行が完了する。
【０１４５】
キャッシュのメモリアクセス命令５２ｂ「ＬＷ $11,($2)」は、パイプラインの第６実行ステージでメモリアクセス３４ａを実行し、レジスタライトバック３５ａの６段パイプライン処理で実行が完了する。
【０１４６】
メモリアクセス３４ａは、内部のメモリアクセス命令５２ａのレジスタライトバック３５と並行して同時に実行するが、第６実行ステージにおける加算命令５２ｃは、ＮＯＰ命令のようなストールが挿入されている。
【０１４７】
加算命令５２ｃ「ＡＤＤ $10,$11」は、パイプラインの第３実行ステージからフェッチ３１ｂ、命令デコード３２ｂ、ストール３７、ストール３７、命令実行３６、次サイクル処理３８、レジスタライトバック３５ｂの７段パイプライン処理で実行が完了する。
【０１４８】
（第７の実施の形態）
図７（ｃ）は、本発明の第７の実施形態によるパイプラインプロセッサのタイミングチャートである。
【０１４９】
上述した第５及び第６の実施形態と同一の構成要素については重複する説明を省略するが、第７の実施形態では、内部メモリアクセスステージが独立した２ステージの分割アクセスに構成した点が相違する。
【０１５０】
図示するように、内部のメモリアクセス命令５２ａ「ＬＷ $10,($1)」、内部のメモリアクセス命令５２ｂ「ＬＷ $11,($2)」、及び加算命令５２ｃ「ＡＤＤ $10,$11」、の３つ命令は、合計９サイクルで実行が終了する。
【０１５１】
インストラクション５２の一部である内部のメモリアクセス命令５２ａ「ＬＷ $10,($1)」は、第４実行ステージでメモリアクセス３４ｄを実行し、第５実行ステージでメモリアクセス３４ｅを実行し、第６実行ステージでレジスタライトバック３５を実行する合計６段パイプライン処理で実行が完了する。
【０１５２】
キャッシュのメモリアクセス命令５２ｂ「ＬＷ $11,($2)」は、パイプラインの第５実行ステージでメモリアクセス３４ｆを実行し、第６実行ステージで次サイクル処理を遂行し、第７実行サイクルでレジスタライトバック３５ａを実行する合計６段パイプライン処理で実行が完了する。
【０１５３】
メモリアクセス３４ｆは、内部のメモリアクセス命令５２ａのメモリアクセス３４ｅと並行して同時に実行するが、第５実行ステージにおける加算命令５２ｃは、ストールが挿入されている。
【０１５４】
加算命令５２ｃ「ＡＤＤ $10,$11」は、パイプラインの第３実行ステージからフェッチ３１ｂ、命令デコード３２ｂ、ストール３７、命令実行３６、次サイクル処理３８、次サイクル処理３８ｂ、レジスタライトバック３５ｂを実行する合計７段パイプラインで実行が完了する。
【０１５５】
第７の実施形態では、キャッシュのメモリアクセス命令５２ｂ「ＬＷ $11,($2)」の第５実行ステージでメモリアクセス３４ｆを実行しているので、第６の実施の形態に比してキャッシュメモリのデータアクセスが１実行サイクルだけ早く実行できるため、後続の命令処理にキャッシュメモリのデータを利用させることができるという利点がある。
【０１５６】
同様に、第６実行ステージで命令実行３６を処理しているので、第６の実施の形態に比して命令実行結果を１実行サイクルだけ早く利用できるため、後続の命令処理に命令実行結果を利用させることができるという利点もある。
【０１５７】
システムＬＳＩ生成部４３（図１参照）は、キャッシュメモリアクセスステージで、キャッシュがヒットした時に１実行サイクルで処理が実行されるので、Ｐｎが２以上の時コンフィグレーションファイルにメモリアクセスステージパイプライン段数をＰｎとしてメモリアクセス分割情報をコンフィグレーション記憶部４７（図１参照）に書込む。
【０１５８】
また、システムＬＳＩ生成部４３は、内部メモリアクセスステージを２種類の実行ステージに分割して、例えば、ＭＡ１とＭＡ２のメモリセルをそれぞれ独立に平行動作可能にしたパイプライン制御回路及びバイパス回路を含む設計情報に加えて、プロセッサの内部メモリへのアクセスパスとキャッシュメモリへのアクセスパスを分離させたプロセッサの設計情報を生成し出力部５１へ出力し、同時にコンフィグレーション記憶部４７に書込む。
【０１５９】
第７の実施形態では、内部メモリとキャッシュメモリを並行して同時にアクセスするように構成したが、本発明はこの構成に限定されず、例えば、図３（ｂ）に示した第３の実施形態と同様に、内部メモリの一部分と内部メモリの他の部分を並行して同時にアクセスするように構成することができるのは勿論である。
【０１６０】
この場合、内部メモリの信号伝搬時間を利用し、一方をメモリセルのアクセス処理を実行させ、他方をメモリセルからのデータ出力処理を実行させるとよい。
【０１６１】
以上のように構成されたプロセッサ生成装置によれば、システムＬＳＩをＣ言語でプログラム記述をして設計を行う設計者が、プロセッサの変更可能な構成要素の全ての組み合わせで性能評価をすることができる。
【０１６２】
この場合、システムＬＳＩの性能が初期の仕様を満足しないときに、ハードウェア化する回路などのハードウェアに関する情報や知識が必要なソフトウェア及びハードウェアの機能分割化による設計に着手する前に、内部メモリ容量を増やして実効的なメモリアクセス速度を向上させたときのシステムＬＳＩの性能評価を精度よく容易に行うことができ、設計開発期間を短縮することができる。
【０１６３】
なお、本発明の各実施形態に記載された、作用及び効果は、本発明から生じる最も好適な作用及び効果を列挙したに過ぎず、本発明による作用及び効果は、本発明の実施の形態に記載されたものに限定されるものではない。
【図面の簡単な説明】
【０１６４】
【図１】第１の実施形態としてのプロセッサ生成装置の模式的なブロック図。
【図２】第１の実施形態としてのプロセッサ生成のフローチャート。
【図３】本発明の実施形態のパイプラインプロセッサの実行ステージを示す図。
【図４】第２の実施形態としてのパイプラインプロセッサのブロック図。
【図５】第３の実施形態としてのパイプラインプロセッサのブロック図。
【図６】本発明の実施形態としてのパイプラインプロセッサ生成のフローチャート。
【図７】本発明の実施形態のパイプラインプロセッサのタイミングチャート。
【符号の説明】
【０１６５】
１０、１０ａ     パイプラインプロセッサ
１８  命令キャッシュメモリ
１９  汎用レジスタ
４０ プロセッサ生成装置
４１ 実行サイクル算出部
４２ メモリアクセス時間算出部
４３ システムＬＳＩ生成部
４５ 性能評価部
４６ 終了判定部
４７ コンフィグレーション記憶部
４８ 制御部
４９ 入出力インタフェイス部
５０ 入力部
５１ 出力部
５６  アドレス計算ユニット
５８  バイパス制御ユニット
５９  演算ユニット
６０  データキャッシュメモリ
６１  データメモリ
６２  プロセッサコア
【図１】
2005196677.tif 000003
【図２】
2005196677.tif 000004
【図３】
2005196677.tif 000005
【図４】
2005196677.tif 000006
【図５】
2005196677.tif 000007
【図６】
2005196677.tif 000008
【図７】
2005196677.tif 000009