(57)【要約】【課題】プログラムを３段以上のパイプラインステージにより実行する複数の命令セットを備えたプロセッサのシミュレーションモデルにおいて、命令シミュレーションと割り込みやバスなどを介した外部モデルとの入出力をサイクルレベルで高速かつ高精度に実行する。【解決手段】プロセッサの動作をフェッチステージ、実行ステージ、メモリおよびライトバックステージの３段のステージに集約し、それぞれのステージに必要に応じてウェイト制御を行うプロセッサモデルを備える。さらに、プロセッサモデルが外部のバスモデルと通信するデータをトランザクションとして定義し、プロセッサモデルはバス使用リクエスト、アドレス、データ転送量、リード／ライト区分を含む情報をバスモデルへ渡し、バスモデルからバス使用許可が得られるとトランザクションを一括して転送する。【選択図】  図１
2006318209.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを３段以上のパイプラインステージにより実行する複数の命令セットを備えたプロセッサのシミュレーションモデルであって、前記プロセッサの動作をフェッチステージ、実行ステージ、メモリおよびライトバックステージの３段のステージに集約し、それぞれのステージに必要に応じてウェイト制御を備え、３段のパイプラインサイクルレベルのシミュレーションを実行するプロセッサモデルを備えたシミュレーションモデル。
【請求項２】
前記フェッチステージはプログラムメモリに格納された命令コードを取得し、プログラムメモリとの通信時間に応じてウェイト制御を行う請求項１記載のシミュレーションモデル。
【請求項３】
前記実行ステージはバス使用許可を得るまでウェイト制御を行った後、前記フェッチステージにて取得した命令コードをデコードして実行し、必要に応じてメモリアドレスを生成する請求項１記載のシミュレーションモデル。
【請求項４】
前記メモリおよびライトバックステージはバス使用許可を得るまでウェイト制御を行った後、前記実行ステージで実行した結果を前記メモリアドレスに従いデータメモリに保存し、あるいは内部レジスタに保存する請求項１記載のシミュレーションモデル。
【請求項５】
前記プロセッサモデルが外部と通信するデータを単一もしくは一定量のデータによるトランザクションとして定義し、前記プロセッサモデルはバス使用リクエスト、アドレス、データ転送量、リード／ライト区分を含むバス転送情報を外部のバスモデルへ渡し、前記バスモデルからのバス使用許可が得られるまで待ち状態となり、前記バス使用許可が得られると前記トランザクションを一括して転送するインターフェイスを備えた請求項１記載のシミュレーションモデル。
【請求項６】
前記バスモデルは、前記バス使用リクエストを受けた後、前記アドレスおよび前記データ転送量を用いてバスアービトレーションおよびデータ転送時間の計算を行い、前記データ転送時間の経過後に前記バス使用許可を前記プロセッサモデルに渡すことを特徴としたバスモデルを備えた請求項５記載のシミュレーションモデル。
【請求項７】
前記バスモデルは前記バス転送情報を優先順位付きテーブルにて管理し、前記バスアービトレーションが前記優先順位付きテーブルを操作することでバスアービター機能を実現する請求項５記載のシミュレーションモデル。
【請求項８】
前記バスモデルは前記アドレスおよび前記データ転送量を用いて別途に設けた転送時間情報テーブルの値を参照することにより前記データ転送時間の計算を行う請求項６記載のシミュレーションモデル。
【請求項９】
前記転送時間情報テーブルは外部から設定可能な請求項８記載のシミュレーションモデル。
【請求項１０】
プログラムコードを記憶領域へ保存すると同時に命令の解釈を行い、プログラムコードの命令毎の実行サイクル数、インターロック発生要因、命令デコード時の関数ポインタを含む命令補助情報を作成し、これを前記実行ステージで使用する請求項１記載のシミュレーションモデル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はハードウェアのシミュレーションを高速に行うためのプロセッサモデルおよびバスモデルの設計技術に関する。
【背景技術】
【０００２】
近年のシステムＬＳＩはＣＰＵ、メモリ、キャッシュメモリ、バス、ハードウェアエンジンなどからなる複合的な大規模システムになっており、システムＬＳＩの設計とそのソフトウェアの開発期間が長期化する傾向にあり、これらの開発期間短縮への要望が高まっている。
【０００３】
設計効率を上げて開発期間を短縮するためのハードウェア設計手法として、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＶＨＤＬなどのハードウェア記述言語を用いたＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）設計手法が普及している。
【０００４】
これらのハードウェア記述言語はクロック、フリップフロップ、レジスタ、演算器などを論理回路レベルで記述することができるため、クロックレベルでハードウェアの詳細な動作を表現するには最適であるが、シミュレーション速度が遅いため、システムの大規模化に伴い、ソフトウェアの開発やソフトウェアと協調したシステム検証に適用するには困難となってきている。
【０００５】
そのため、近年は記述の抽象度を上げた言語としてＳｙｓｔｅｍＣやＣ／Ｃ＋＋言語などを用いた動作記述による設計手法が探索されている。一般にＣ／Ｃ＋＋言語を用いた場合はアンタイムド（ｕｎｔｉｍｅｄ）モデルのようにクロック概念を持たないビヘイビアモデルとなる。そこで、クロック概念を明示的に定義しているＳｙｓｔｅｍＣがタイムド（ｔｉｍｅｄ）モデルの記述言語として使用されるようになってきている。
【０００６】
これらの記述言語を活用することにより、ＲＴＬに比べて数百から数千倍にシミュレーション実行速度を高めることが可能となり、ソフトウェアの開発にも適用されるものとして注目を集めている。
【０００７】
特にシステムＬＳＩに実装されるプロセッサにおいては、命令セットを命令列として実行する命令セットシミュレータ（ＩＳＳ）が一般に知られており、抽象度の高い概念により高速にシミュレーションを実行することができる。
【０００８】
しかし、ＩＳＳは実行速度は速いがサイクル精度が失われることが問題である。そこでＩＳＳでは不可能なサイクル精度のハードウェア検証を可能にし、ＲＴＬの実行速度の遅さを解決する手段を提案しているものとして特許文献１がある。その手法は、従来のＩＳＳでシミュレートされる命令セットをサイクルレベルに分割することで問題の解決を図るものである。
【特許文献１】特開２００３−２１６６７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、サイクルレベルに分割したＩＳＳではシミュレーション実行速度がＲＴＬより速くなるものの、従来のＩＳＳよりは速度低下を招くことが問題となる。
【００１０】
また、近年のプロセッサ技術の進化は著しく、依存関係の無い複数命令を１命令にまとめたＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｉｔｏｎ  Ｗｏｒｄ）や、複数のデータに対して同一の演算処理を同時に実行するＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）など複雑なアーキテクチャが採用されている。
【００１１】
さらに、近年は組み込み機器に適用されるプロセッサに要求される動作周波数が高まっているという状況があり、パイプライン段数も組み込み向けでは５段以上、パソコンなどの高性能機器のＣＰＵでは１０段以上が普通となっている。
【００１２】
これらの複雑なアーキテクチャの採用やパイプラインの多段化に代表されるプロセッサ構成の複雑化により、サイクルレベルに分解する従来のＩＳＳでは実行速度が不十分なものとなっているという問題がある。
【００１３】
また、従来のＩＳＳではモデルがサイクルレベルに分解されるため、プロセッサに接続するバスモデルの抽象度を高めることは困難となり、メモリ、バス、周辺ハードウェアも含めたシステム全体のシミュレーションには速度的に満足できるものにならないという問題がある。
【００１４】
本発明は、命令セットをサイクルレベルに分割しながらも従来のＩＳＳに劣らない実行速度を実現し、割り込みやバスなどを介した外部モデルとの入出力においても処理速度を低下させずに高精度なシミュレーションを行うことができるシミュレーションモデルを提供することを目的とする。
【課題を解決するための手段】
【００１５】
第1の発明のシミュレーションモデルは、プログラムを３段以上のパイプラインステージにより実行する複数の命令セットを備えたプロセッサのシミュレーションモデルであって、前記プロセッサの動作をフェッチステージ、実行ステージ、メモリおよびライトバックステージの３段のステージに集約し、それぞれのステージに必要に応じてウェイト制御を備え、３段のパイプラインサイクルレベルのシミュレーションを実行するプロセッサモデルを備えたものである。
【００１６】
第２の発明のシミュレーションモデルは、第1の発明のシミュレーションモデルにおいて、前記フェッチステージはプログラムメモリに格納された命令コードを取得し、プログラムメモリとの通信時間に応じてウェイト制御を行うものである。
【００１７】
第３の発明のシミュレーションモデルは、第1の発明のシミュレーションモデルにおいて、前記実行ステージはバス使用許可を得るまでウェイト制御を行った後、前記フェッチステージにて取得した命令コードをデコードして実行し、必要に応じてメモリアドレスを生成するものである。
【００１８】
第4の発明のシミュレーションモデルは、第1の発明のシミュレーションモデルにおいて、前記メモリおよびライトバックステージはバス使用許可を得るまでウェイト制御を行った後、前記実行ステージで実行した結果を前記メモリアドレスに従いデータメモリに保存し、あるいは内部レジスタに保存するものである。
【００１９】
以上のように、本発明のプロセッサモデルでは如何なる多段のパイプライン段数を備えたアーキテクチャであってもフェッチステージ、実行ステージ、メモリおよびライトバックステージの３段のパイプラインに抽象化し、対象となる実プロセッサの消費サイクル分をウェイト制御する調整機能を持たすことを特徴とする。このパイプライン構造を３段に抽象化する理由は、外部モデルとインターフェイスをとるステージと外部モデルの動作に起因しない内部ステージとに分けることにある。
【００２０】
フェッチステージやメモリおよびライトバックステージは外部モデルとの通信形態によって消費サイクル数が異なってくる。これは外部モデルの仕様あるいは保証するサイクル精度に依存する。また、設計段階によっては外部モデルとして用意できるサイクル精度も様々であることが想定されるため、外部と通信するステージを明確化することで、設計状態と用途に応じてインターフェイス部を付け替えることも容易に対応可能となり、プロセッサ内部のサイクル精度も保証することが可能となる。
【００２１】
また、プロセッサモデル内部のステージは実行ステージのみにしており、実プロセッサのパイプラインステージを１つにまとめているため、デコードから複数サイクルに渡る命令実行まで１サイクルで実行する。このとき問題になる実プロセッサとのサイクル精度のずれは各ステージが消費するサイクル分ウェイトする機能により解決を図ることができる。
【００２２】
また、サイクル分解度を従来のサイクルレベルで分解するＩＳＳよりも減らしているため高速性はほぼ命令列を実行するシミュレータと同等となる。これは６段、７段化していくパイプラインを備えたプロセッサを対象にした場合においても同等の性能を発揮することができる。
【００２３】
また、プロセッサモデルと外部のバスモデルの間で行われる通信は、ＬＳＩ全体のシミュレーションを想定した場合にプロセッサと同様に高速化を図る上で重要な要素となる。
【００２４】
そのために、第5の発明のシミュレーションモデルは、第1の発明のシミュレーションモデルにおいて、前記プロセッサモデルが外部と通信するデータを単一もしくは一定量のデータによるトランザクションとして定義し、前記プロセッサモデルはバス使用リクエスト、アドレス、データ転送量、リード／ライト区分を含むバス転送情報を外部のバスモデルへ渡し、前記バスモデルからのバス使用許可が得られるまで待ち状態となり、前記バス使用許可が得られると前記トランザクションを一括して転送するインターフェイスを備えたものである。
【００２５】
第6の発明のシミュレーションモデルは、第5の発明のシミュレーションモデルにおいて、前記バスモデルは、前記バス使用リクエストを受けた後、前記アドレスおよび前記データ転送量を用いてバスアービトレーションおよびデータ転送時間の計算を行い、前記データ転送時間の経過後に前記バス使用許可を前記プロセッサモデルに渡すものである。
【００２６】
第7の発明のシミュレーションモデルは、第5の発明のシミュレーションモデルにおいて、前記バスモデルは前記バス転送情報を優先順位付きテーブルにて管理し、前記バスアービトレーションが前記優先順位付きテーブルを操作することでバスアービター機能を実現するものである。
【００２７】
第8の発明のシミュレーションモデルは、第6の発明のシミュレーションモデルにおいて、前記バスモデルは前記アドレスおよび前記データ転送量を用いて別途に設けた転送時間情報テーブルの値を参照することにより前記データ転送時間の計算を行うものである。
【００２８】
第9の発明のシミュレーションモデルは、第８の発明のシミュレーションモデルにおいて、前記転送時間情報テーブルは外部から設定可能なものである。
【００２９】
以上のように、本発明のシミュレーションモデルでは、トランザクションとしてプロセッサが外部と通信を行う転送形態、データ量を定義する。命令セットの中にはある一定量のデータを転送する命令を備えているものもあり、単一データをやり取りするバスインターフェイスでは外部のバスモデルの高速化が図ることができないからである。
【００３０】
インターフェイスの構造として、プロセッサモデルはバスモデルに対しアドレス、リクエスト、データ転送量を渡す。バスモデルはリクエストを受けた後、アドレス、データ量から必要に応じてアービトレーションを行い、バスの転送に要する時間を計算し、この時間経過後、データ転送を行い、プロセッサモデルへバス使用許可を渡す。
【００３１】
このとき、転送時間の計算はアクセス毎もしくはバスのレイヤ毎に不揮発な値を使用する他に、転送種別、バスレイヤ毎のレイテンシをテーブル化しておき、このテーブルを参照することで計算を行うこともできる。
【００３２】
さらに、このテーブルを外部から設定可変なものとしておくことで、アクセス先のレイテンシを接続先の仕様によってユーザが調整してシミュレーションを行うことが可能となる。
【００３３】
このトランザクション通信の利点として、バスサイクルは外部のバスモデルが保証し、プロセッサモデルとしてはバス使用許可を受け取るまでウェイトする機構にすることで通信自体の簡略化が行えるため、シミュレーションの実行速度が高速となる。
【００３４】
第10の発明のシミュレーションモデルは、第1の発明のシミュレーションモデルにおいて、プログラムコードを記憶領域へ保存すると同時に命令の解釈を行い、プログラムコードの命令毎の実行サイクル数、インターロック発生要因、命令デコード時の関数ポインタを含む命令補助情報を作成し、これを実行ステージで使用するものである。
【００３５】
上記構成によれば、プロセッサモデルが実行ステージで命令補助情報を参照することで、実行ステージのサイクル数、インターロックの発生、さらにはプログラムコード毎に使用する関数（演算モデル）を即座に判断することができ、実行ステージの処理を簡略化できることでシミュレーションの高速化を図ることができる。
【発明の効果】
【００３６】
本発明によれば、如何なるプロセッサも３段パイプラインのプロセッサモデルに抽象化し、ウェイトする調整機能を持たせることにより、ＲＴＬに比べて数百から数千倍の実行速度を実現することができ、割り込みやバスなどを介した外部モデルとの入出力から内部の演算サイクルまでサイクルレベルで高速かつ高精度なシミュレーションモデルを提供することが可能となる。
【発明を実施するための最良の形態】
【００３７】
（実施の形態１）
図１は本発明の実施の形態１に係るシミュレーションモデルを示す図である。図１において、１００はプロセッサモデル、１０１はフェッチステージ、１０２はデコード＆実行ステージ、１０３はメモリ＆ライトバックステージ、１０４は演算モデルライブラリ、１０５は内部レジスタ群、１０６はウェイト制御、１０７はインターロック制御、１０８はプログラム格納領域、１０９はデータ格納領域、１１０はバスインターフェイス、１１１はバスモデルである。
【００３８】
本シミュレーションモデルにおけるプロセッサモデルの動作は、フェッチステージ１０１でプログラムコードが格納されるプログラム格納領域１０８から命令フェッチし、フェッチした命令をデコード＆実行ステージ１０２でデコードおよび実行し、実行した結果をメモリ＆ライトバックステージ１０３で外部記憶領域あるいは内部レジスタへ格納するという３つのステージに大別される。また、各ステージにはウェイト制御１０４によりサイクル調整用にウェイトが付加される。
【００３９】
フェッチステージ１０１とメモリ＆ライトバックステージ１０３ではプロセッサ外部のバスを使用したデータ転送に必要なバスサイクル分のウェイトが挿入される。すなわち、バスインターフェイス１１０を介して通信しているバスモデル１１１からバス使用許可を受け取るまでウェイトが挿入される。
【００４０】
また、デコード＆実行ステージ１０２ではデコードサイクルや実行サイクルの調整用にウェイトが挿入される。このステージのウェイトは外部モデルに起因せず、命令セットの仕様およびパイプライン段数により一意的に決定されるものである。
【００４１】
また、デコード＆実行ステージ１０２ではウェイトに加え、インターロック制御１０７によりインターロックも付加される。インターロックとはパイプラインをロックする制御である。これは先行する命令と次の命令の関係によって発生するためウェイト制御とは別に設ける。
【００４２】
図２および図３は、具体例として５段のパイプラインステージを備えたプロセッサを取り上げ、それぞれ実プロセッサと本発明によるプロセッサモデルのタイミングチャートを示した図である。図２および図３からプロセッサモデルの各ステージの実行タイミングが実プロセッサの実行タイミングと同等となることが分かる。
【００４３】
図５は本実施の形態におけるプロセッサモデルが外部とバス通信する際のトランザクションバスモデルの動作ステート遷移図である。プロセッサモデル側に実装するバスインターフェイス５０１は、データを外部の記憶領域へ格納もしくは記憶領域から取得するときにバスモデル側にリクエストを通知する。
【００４４】
バスモデル側５０２はリクエスト受付と同時にキュー登録テーブル５０７に転送データの情報を登録する。このキュー登録テーブル５０７の構成例を図６に示す。登録する内容はバス転送情報６０１に示すバスマスター識別子、転送開始アドレス、転送データのポインタ、転送サイズ、転送形態、リード／ライト区分、転送完了までのバスレイテンシである。さらに他のバス転送に付随する情報を記憶してもよい。
【００４５】
バスレイテンシはバスモデルにて算出するが、これを外部に備えたバスレイテンシ格納テーブル５１０を参照することで算出してもよい。本テーブルを使うことでさまざまなメモリモデルなどを接続した状態でのシミュレーションが容易に可能となる。
【００４６】
（実施の形態２）
命令セットシミュレータ（ＩＳＳ）においては命令ライブラリを参照して各命令の実行関数を得る。命令セットをサイクルレベルに分割する特許文献１の手法ではサイクルレベルの情報を命令ライブラリに付加している。本実施の形態においても、実行ステージの消費サイクル数、インターロックの発生要因、命令デコード時の関数ポインタなどの情報が必要であり、これらの情報を演算モデルライブラリに付加する。
【００４７】
これに対して、プログラムコードをプログラム格納領域に保存する時などに、プログラムを実行する際に必要な命令補助情報を作成しテンポラリ記憶領域に格納しておくことで、シミュレーションをさらに高速化することができる。
【００４８】
図４は本発明の実施の形態２に係るシミュレーションモデルの設計手法を示す図であり、図１に示したプロセッサモデルに対して、命令解釈ユニット４０１および命令補助情報４０２を付加した構成となっている。
【００４９】
プログラムコードをプログラム格納領域１０８に格納するときに命令解釈ユニットにて命令補助情報を作成する。この命令補助情報４０２はプログラムコードの命令毎の実行サイクル数、インターロック発生要因、命令デコード時の関数ポインタなどである。
【００５０】
ここでインターロックとは「先行する命令が書き込んだ結果を次の命令が使用する場合」、「先行する命令が書き込んだ記憶領域を次の命令が書き換える場合」、「先行する命令が読み出す記憶領域を次の命令が書き換える場合」に実行ステージを一時的にロックさせる動作のことを指す。
【００５１】
プロセッサモデルは実行ステージでこの命令補助情報を参照することで、実行ステージのサイクル数、インターロックの発生、さらにはプログラムコード毎に使用する関数（演算モデル）を即座に判断することができ、実行ステージの処理を簡略化できることでシミュレーションの高速化を図ることができる。
【産業上の利用可能性】
【００５２】
本発明のシミュレーションモデルは、如何なるプロセッサも３段パイプラインのプロセッサモデルに抽象化し、ウェイトする調整機能を持たせることにより、ＲＴＬに比べて数百から数千倍の実行速度を実現することができ、割り込みやバスなどを介した外部モデルとの入出力から内部の演算サイクルまでサイクルレベルで高速かつ高精度なシミュレーションモデルを提供することが可能となるという効果を有し、ハードウェアのシミュレーションを高速に行うためのプロセッサモデルおよびバスモデルの設計技術等として有用である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態１に係るシミュレーションモデルを示す図。
【図２】実プロセッサの具体例によるパイプライン動作のタイミングチャート。
【図３】本発明のプロセッサモデルによるパイプライン動作のタイミングチャート。
【図４】本発明の実施の形態２に係るシミュレーションモデルを示す図。
【図５】本発明のシミュレーションモデルにおけるバスモデルの動作ステート遷移図。
【図６】本発明のシミュレーションモデルにおけるバスモデルが備えるキュー登録テーブルの構成例を示す図。
【符号の説明】
【００５４】
１００  プロセッサモデル
１０１  フェッチステージ
１０２  デコード＆実行ステージ
１０３  メモリ＆ライトバックステージ
１０４  演算モデルライブラリ
１０５  内部レジスタ群
１０６  ウェイト制御機能
１０７  インターロック制御機能
１０８  プログラム格納領域
１０９  データ格納領域
１１０  バスインターフェイス
１１１  バスモデル
４０１  命令解釈ユニット
４０２  命令補助情報
５０１  プロセッサモデル側のバスインターフェイスの状態遷移
５０２  バスモデル側の状態遷移
５０３  アイドルステート
５０４  リクエスト発行ステート
５０５  ウェイトステート
５０６  リクエスト登録＆バスレイテンシ計算ステート
５０７  キュー登録テーブル
５０８  キュー処理ステート
５０９  データ転送ステート
５１０  バスレイテンシ格納テーブル
６０１  バス転送情報
【図１】
2006318209.tif 000003
【図２】
2006318209.tif 000004
【図３】
2006318209.tif 000005
【図４】
2006318209.tif 000006
【図５】
2006318209.tif 000007
【図６】
2006318209.tif 000008
【手続補正書】
【提出日】平成18年6月29日(2006.6.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
３段以上のパイプライン処理を実行するプロセッサ及び前記プロセッサ外部のバスをシミュレートするためのシミュレーションプログラムであって、
フェッチステージと、実行ステージと、メモリおよびライトバックステージとの３段のステージが含まれる前記プロセッサの動作をシミュレートし、必要に応じて各ステージにウェイトを付加するウェイト制御機能を有するプロセッサモデルと、
前記プロセッサ外部のバスの動作をシミュレートするバスモデルと、を備え、
前記プロセッサモデルは、バス使用リクエスト、アドレス、データ転送量、及びリード／ライト区分を含むバス転送情報を前記バスモデルへ渡し、前記バスモデルからバス使用許可が得られるまで待ち状態となり、
前記プロセッサモデルは、前記バス使用許可が得られると前記バスにデータを転送するインターフェイス機能を備えたシミュレーションプログラム。
【請求項２】
前記バスモデルは、前記バス使用リクエストを受けた後、前記アドレスおよび前記データ転送量を用いてバスアービトレーションおよびデータ転送時間の計算を行い、前記データ転送時間の経過後に前記バス使用許可を前記プロセッサモデルに渡すことを特徴としたバスモデルを備えた請求項１記載のシミュレーションプログラム。
【請求項３】
前記バスモデルは前記バス転送情報を優先順位付きテーブルにて管理し、前記バスアービトレーションが前記優先順位付きテーブルを操作することでバスアービター機能を実現する請求項１記載のシミュレーションプログラム。
【請求項４】
前記バスモデルは前記アドレスおよび前記データ転送量を用いて別途に設けた転送時間情報テーブルの値を参照することにより前記データ転送時間の計算を行う請求項２記載のシミュレーションプログラム。
【請求項５】
前記転送時間情報テーブルは外部から設定可能な請求項４記載のシミュレーションプログラム。
【手続補正書】
【提出日】平成18年9月11日(2006.9.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
３段以上のパイプライン処理を実行するプロセッサ及び前記プロセッサ外部のバスをシミュレートするためのシミュレーションプログラムであって、
コンピュータを、
フェッチステージと、実行ステージと、メモリおよびライトバックステージとの３段のステージが含まれる前記プロセッサの動作をシミュレートすると共に、各ステージにウェイトを付加するウェイト制御機能を有するプロセッサモデルとして機能させ、
前記プロセッサ外部のバスの動作をシミュレートするバスモデルとして機能させ、
前記コンピュータが前記プロセッサモデルとして機能するとき、
前記プロセッサモデルは、前記バスを使用したデータ転送に必要なバスサイクル分のウェイトを前記フェッチステージと前記メモリおよびライトバックステージに付加し、命令セットの仕様及びパイプライン段数に応じて決定されるウェイトを前記実行ステージに付加し、
前記プロセッサモデルは、バス使用リクエスト、アドレス、データ転送量、及びリード／ライト区分を含むバス転送情報を前記バスモデルへ渡し、前記バスモデルからバス使用許可が得られるまで待ち状態となって、前記コンピュータは前記バスモデルとして機能し、
前記プロセッサモデルは、前記バス使用許可が得られると前記バスにデータを転送するインターフェイス機能を備えたシミュレーションプログラム。
【請求項２】
前記コンピュータが前記バスモデルとして機能するとき、
前記バスモデルは、前記バス使用リクエストを受けた後、前記アドレスおよび前記データ転送量を用いてバスアービトレーションおよびデータ転送時間の計算を行い、前記データ転送時間の経過後に前記バス使用許可を前記プロセッサモデルに渡す請求項１記載のシミュレーションプログラム。
【請求項３】
前記バスモデルは前記バス転送情報を優先順位付きテーブルにて管理し、前記バスアービトレーションが前記優先順位付きテーブルを操作することでバスアービター機能を実現する請求項１記載のシミュレーションプログラム。
【請求項４】
前記バスモデルは前記アドレスおよび前記データ転送量を用いて別途に設けた転送時間情報テーブルの値を参照することにより前記データ転送時間の計算を行う請求項２記載のシミュレーションプログラム。
【請求項５】
前記転送時間情報テーブルは外部から設定可能な請求項４記載のシミュレーションプログラム。