(57)【要約】【課題】  シミュレーション速度の低下を防ぐ。【解決手段】  初期化手段６ａは、ユーザハードウェアモデル２がアクセスするメモリモデル３上の所定の領域に相当する領域をユーザハードウェア用メモリ５としてコンピュータのメモリ上に確保し、ユーザハードウェアモデル２からのメモリアクセスは、すべてユーザハードウェア用メモリ５へアクセスさせる。アクセス制御手段６ｂは、プロセッサコアモデル１からのユーザハードウェア用メモリ５へのメモリアクセスを可能にし、ユーザハードウェアモデル２のアクセスと競合しないように制御する。【選択図】  図１
2007034680.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサコアとユーザハードウェアが混在する対象論理回路の機能をコンピュータ上で検証するためのシステムシミュレーション方法において、
初期化手段が、前記コンピュータ上に構築された前記プロセッサコアの機能をモデル化したプロセッサコアモデル、前記ユーザハードウェアの機能をモデル化したユーザハードウェアモデル及び前記対象論理回路のメモリの構造をモデル化したメモリモデルについて、前記ユーザハードウェアモデルが利用する前記メモリモデルの領域に応じたユーザハードウェア用メモリを前記コンピュータのメモリ領域に確保し、前記ユーザハードウェアモデルのアクセス先を前記ユーザハードウェア用メモリに置き換え、
アクセス制御手段が、アクセス要求に応じて前記プロセッサコアモデルのアクセス先を制御する、
ことを特徴とするシステムシミュレーション方法。
【請求項２】
前記アクセス制御手段が、前記プロセッサコアモデルからのメモリアクセス要求に対し、アクセス要求先のメモリ領域が前記ユーザハードウェア用メモリに置き換えられた領域に含まれているかどうかを判定し、
含まれていない場合はアクセス先を前記メモリモデルとし、含まれている場合はアクセス先を前記ユーザハードウェア用メモリとする、
ことを特徴とする請求項１記載のシステムシミュレーション方法。
【請求項３】
前記アクセス制御手段が、前記プロセッサコアモデルのアクセス先が前記ユーザハードウェア用メモリであって、前記ユーザハードウェアモデルから同じメモリ領域にアクセス要求があった場合には、予め設定された優先度に基づき、前記優先度の高い側のアクセス要求を先に処理する、
ことを特徴とする請求項２記載のシステムシミュレーション方法。
【請求項４】
前記初期化手段が、前記プロセッサコアモデルが実行する対象プログラムが前記メモリモデルにロードされる際に、前記対象プログラムに記述された初期設定情報に基づき、前記コンピュータのメモリ領域に前記ユーザハードウェア用メモリを設定する、
ことを特徴とする請求項１記載のシステムシミュレーション方法。
【請求項５】
反映手段が、前記システムシミュレーションの終了を含む前記システムシミュレーションが停止された場合に、前記ユーザハードウェア用メモリの内容を前記メモリモデルに反映する、
ことを特徴とする請求項１記載のシステムシミュレーション方法。
【請求項６】
前記ユーザハードウェア用メモリの内容を前記メモリモデルに反映する際は、前記メモリモデルのデータ構造に応じた形式に変換して前記ユーザハードウェア用メモリの内容を書き込む、
ことを特徴とする請求項５記載のシステムシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステムシミュレーション方法に関し、特にプロセッサコアとユーザハードウェアが混在する対象論理回路の機能をコンピュータ上で検証するためのシステムシミュレーション方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）コアとユーザハードウェアが同一チップ上に混在するＳｏＣ（System on Chip）のモデルシミュレータは、ソフトウェアの検証のためにＣＰＵ動作をシミュレートする機能と、ユーザハードウェアを検証するためのシミュレート機能の双方を同時に実現することが求められている。
【０００３】
図１４は、従来のＳｏＣモデルシミュレータの構成図である。
従来のＳｏＣモデルシミュレータは、検証対象のソフトウェアを実行するＣＰＵの機能をモデル化したプロセッサコアモデル９０１、検証対象のユーザハードウェアの機能をモデル化したユーザハードウェアモデル９０２、所定の構造を持つメモリをモデル化したメモリモデル９０３及びメモリアクセスＡＰＩ（Application Program Interface）関数９０４を具備する。メモリアクセスＡＰＩ関数９０４は、アドレスやサイズなどを引数として呼び出しを受けると、メモリモデル９０３の構造に応じたデータ形式に変換し、メモリモデル９０３にアクセスする関数であり、プロセッサコアモデル９０１及びユーザハードウェアモデル９０２は、メモリアクセスＡＰＩ関数９０４を通じてメモリモデル９０３にリードライトする。
【０００４】
プロセッサコアモデル９０１、ユーザハードウェアモデル９０２、メモリモデル９０３及びメモリアクセスＡＰＩ関数９０４の各モデル部は、ソフトウェアにより実現され、パーソナルコンピュータ（ＰＣ）またはワークステーションにロードされて実行される。以下、ＳｏＣモデルシミュレータを、単にシステムシミュレータという。
【０００５】
従来のシステムシミュレータでは、メモリ空間の一貫性を保つため、メモリモデル９０３を１つにして管理を行っており、プロセッサコアモデル９０１またはユーザハードウェアモデル９０２のうちの一方がメモリアクセスＡＰＩ関数９０４を通じてメモリモデル９０３にアクセスしている間に他方がアクセスしようとしても、処理が終了するまで待たされる。
【０００６】
そこで、検証時間の短縮を図るため、ユーザハードウェアモデルとプロセッサコアモデルのそれぞれにメモリモデルを設け、その間をインタフェース（Ｉ／Ｆ）モデルで接続し、情報授受の整合をとるシステムシミュレータが提案されている（たとえば、特許文献１参照）。
【特許文献１】特開２０００−３５８９８号公報（段落番号〔００２２〕〜〔００３１〕、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のシステムシミュレーションでは、プロセッサコアモデル９０１とユーザハードウェアモデル９０２からメモリモデル９０３へのアクセスは、共通のメモリアクセスＡＰＩ関数９０４を通して行われる。このような構造であることから、アクセス頻度（メモリアクセスＡＰＩ関数９０４の呼び出し）が増大すると、シミュレータのスピードが落ちるという問題点があった。
【０００８】
特に、ユーザハードウェアがメモリに頻繁にリードライトするデータ処理を担うようなシステム、たとえば、画像処理システムでは、ユーザハードウェアが画像データの処理を行い、プロセッサはユーザハードウェアがデータ処理を行うためのコントロールや、オペレーティングシステム（Operating System；以下、ＯＳとする）などを動作させる構成が一般的である。このようなシステムの動作を従来のシステムシミュレータで検証しようとした場合、ユーザハードウェアモデル９０２からデータアクセスが大量に発生し続けるため、プロセッサコアモデル９０１側のメモリアクセスが待たされ、スピードの劣化が顕著になるなど、ＳｏＣモデルのパフォーマンスが低くなる。この結果、プロセッサコアモデル９０１により検証を行うファームウェアなどのソフトウェア開発作業への影響も大きくなり、ＳｏＣ設計の全体工程に悪影響を与える。
【０００９】
また、ユーザハードウェアモデルとプロセッサコアモデルのそれぞれにメモリモデルを設け、それらをＩ／Ｆモデルを用いて同期させるシミュレーションモデルでは、システム構成によっては、同期が頻繁に発生するケースが想定される。このように、同期が頻繁に発生してしまうと、シミュレーション速度が極端に遅くなるという問題点がある。
【００１０】
本発明はこのような点に鑑みてなされたものであり、シミュレーション速度の低下を防ぐシステムシミュレーション方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では上記課題を解決するために、図１に示すようなプロセッサコアとユーザハードウェアが混在する対象論理回路の機能をコンピュータ上で検証するためのシステムシミュレーション方法が提供される。
【００１２】
本発明に係るシステムシミュレーション方法では、プロセッサコアの機能をモデル化したプロセッサコアモデル１、ユーザハードウェアの機能をモデル化したユーザハードウェアモデル２及び対象論理回路のメモリ構造をモデル化したメモリモデル３がコンピュータ上に構築される。初期化手段６ａは、ユーザハードウェアモデル２がアクセスするメモリモデル３の領域に応じたユーザハードウェア用メモリ５をコンピュータのメモリ領域に確保し、ユーザハードウェアモデル２のアクセス先をユーザハードウェア用メモリ５に置き換える。システムシミュレーション実行中、アクセス制御手段６ｂは、プロセッサコアモデル１からのアクセス要求を受けると、その要求に応じてアクセス先を制御する。
【００１３】
このようなシステムシミュレーション方法によれば、初期化手段６ａは、ユーザハードウェアモデル２がアクセスするメモリモデル３上の所定の領域に相当する領域をユーザハードウェア用メモリ５としてコンピュータのメモリ上に確保する。そして、ユーザハードウェアモデル２のメモリアクセス先をユーザハードウェア用メモリ５に置き換える。これにより、シミュレーション実行時、ユーザハードウェアモデル２のメモリアクセスは、ユーザハードウェア用メモリ５に対して実行されるようになる。一方、プロセッサコアモデル１からのメモリアクセスは、アクセス制御手段６ｂによって、アクセス要求に応じてアクセス先がメモリモデル３またはユーザハードウェア用メモリ５のいずれかが選択されるように制御される。このように、ユーザハードウェアモデル２のアクセス先をユーザハードウェア用メモリ５にすることにより、プロセッサコアモデル１からメモリモデル３へのアクセス処理を並列して実行できる。
【発明の効果】
【００１４】
本発明のシステムシミュレーション方法では、対象論理回路のプロセッサコア、ユーザハードウェア及びメモリのモデルをコンピュータ上に構築する。そして、ユーザハードウェア用メモリをメモリモデルとは別に設け、ユーザハードウェアモデルをユーザハードウェア用メモリにアクセスさせる。一方、プロセッサコアモデルは、主としてメモリモデルへアクセスするため、ユーザハードウェアモデルからメモリに大量のアクセスが発生した場合でも、プロセッサコアモデルのアクセスへの影響を抑制することができる。これにより、シミュレーションの高速化を実現することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、本発明の実施の形態に適用される発明の概念図である。
【００１６】
本発明に係るシステムシミュレータは、検証の対象論理回路の各部の機能をソフトウェアによってコンピュータ上に実現したモデルを用いて、対象の論理回路の検証を行うシステムシミュレーション方法に適用され、プロセッサコアモデル１、ユーザハードウェアモデル２、メモリモデル３、メモリアクセス処理部４、ユーザハードウェア用メモリ５及びメモリ管理部６を具備する。なお、対象論理回路は、所定の構造を持ったメモリと、単独でこのメモリに頻繁にアクセスして所定の演算処理を実行するユーザハードウェアと、ユーザハードウェアの演算結果をときどき参照し、必要に応じて処理変更させるなどユーザハードウェアをコントロールするＣＰＵコアから構成される。
【００１７】
プロセッサコアモデル１は、対象論理回路のＣＰＵコアの機能をモデル化したものであり、ＣＰＵコアの機能を実現するプログラムがコンピュータで実行されることにより、コンピュータ上に構築される。コンピュータ上に構築されたプロセッサコアモデル１は、ターゲットプログラムを順次読み込み、読み込んだデータを解読し、解読された命令を実行する処理を行う。処理の際のメモリアクセスは、メモリアクセス処理部４を通じて行われる。
【００１８】
ユーザハードウェアモデル２は、対象論理回路のユーザハードウェアの機能をモデル化したものであり、ユーザハードウェアの機能を実現するプログラムがコンピュータで実行されることにより、コンピュータ上に構築される。コンピュータ上に構築されたユーザハードウェアモデル２は、ユーザハードウェアを構成するロジックや回路素子の接続情報に基づき、所定の入力信号を順次処理して出力信号を生成する。ここでは、プロセッサコアモデル１からの処理開始指令または所定の条件が成立した場合に、一連の演算処理を実行し、演算結果を生成する。処理の際のメモリアクセスは、ユ−ザハードウェア用メモリ５に対して行う。
【００１９】
メモリモデル３は、対象論理回路のメモリの構造をモデル化したものであり、メモリ構造に応じたデータのリードライトを実現するプログラムがコンピュータ上で実行されることにより、コンピュータ上に構築される。メモリモデル３は、プロセッサコアモデル１が実行するターゲットプログラムの格納領域、プロセッサコアモデル１がプログラム実行時に一時的に保存する情報などの格納領域及びユーザハードウェアモデル２の演算処理用のデータの格納領域などを有する。そして、メモリアクセス処理部４及びメモリ管理部６を通じて入力されるメモリ構造に応じた所定の形式のアクセス要求を受付けると、データのリードライトを行って、所定の形式の応答を返す。
【００２０】
メモリアクセス処理部４は、プロセッサコアモデル１からのメモリアクセス要求を受付け、メモリ管理部６と協調し、要求されるアクセスアドレスが、ユーザハードウェア用メモリ５に対応する領域でなければ、メモリモデル３の持つデータ構造に合わせた形式に変換し、メモリモデル３へアクセスしてデータのリードライトを行う。また、要求のアクセスアドレスがユーザハードウェア用メモリ５の領域であれば、メモリ管理部６にアクセス要求を引き渡す。
【００２１】
ユーザハードウェア用メモリ５は、メモリ管理部６によって、メモリモデル３の領域のうち、ユーザハードウェアモデル２がアクセスする演算処理用の格納領域に対応付けて、コンピュータのメモリ上に確保される。このメモリは、構造を持っていない（コンピュータのＯＳが割り当てる）通常のメモリ領域であるので、ユーザハードウェアモデル２から直接アクセスすることができる。これにより、メモリ構造に応じたデータ変換を行う場合に比べて、ユーザハードウェアモデル２がアクセスする速度を高速化することができる。
【００２２】
メモリ管理部６は、初期化手段６ａ、アクセス制御手段６ｂ及び反映手段６ｃを具備し、メモリモデル３とユーザハードウェア用メモリ５の整合性を確保する管理処理を行う。初期化手段６ａは、システムシミュレーション開始前または実行中のユーザハードウェア用メモリ空間設定時に、初期設定情報に基づき、ユーザハードウェアモデル２がメモリアクセスするメモリモデル３上のアクセス領域に相当するユーザハードウェア用メモリ５をユーザハードコンピュータのメモリ上に確保するとともに、ユーザハードウェアモデル２のアクセス先をユーザハードウェア用メモリ５に置き換える。ユーザハードウェアモデル２のアクセス領域指定（開始アドレスとサイズなど）を含む初期設定情報は、たとえば、プロセッサコアモデル１を通じてロードされるターゲットプログラムなどに予め登録される。初期化手段６ａでは、ターゲットプログラムのロード時などに、初期設定情報を取得し、これに基づき初期化処理を行う。また、必要であれば、ユーザハードウェア用メモリ５に相当するメモリモデル３の領域に格納されるデータをユーザハードウェア用メモリ５にコピーし、内容を一致させる。なお、読み出しの際には、メモリモデル３の構造に応じたデータ形式でアクセスが行われる。
【００２３】
アクセス制御手段６ｂは、メモリアクセス処理部４の取得したプロセッサコアモデル１からのメモリアクセス要求の要求先アドレスがユーザハードウェア用メモリ５に対応する領域がどうかをチェックする。ユーザハードウェア用メモリ５に対応する領域でなければ、その旨をメモリアクセス処理部４に通知し、メモリモデル３へのメモリアクセス処理を実行させる。また、要求先アドレスがユーザハードウェア用メモリ５の領域内であれば、該当するユーザハードウェア用メモリ５のアドレスへアクセスする。このとき、プロセッサコアモデル１とユーザハードウェアモデル２のアクセス要求が競合する場合には、予め決められた優先度に基づき、アクセス順を決める。ユーザハードウェアモデル２の優先度が高い場合には、ユーザハードウェアモデル２のメモリアクセスが終了した後、プロセッサコアモデル１のアクセス要求を処理する。プロセッサコアモデル１の優先度が高い場合には、ユーザハードウェアモデル２のアクセス処理を待機させてプロセッサモデル１のアクセス要求を処理し、その後アクセス権をユーザハードウェアモデル２に引き渡す。
【００２４】
なお、プロセッサコアモデル１からのメモリアクセス要求の要求先アドレスがユーザハードウェア用メモリ５に対応する領域がどうかのチェックは、メモリアクセス処理部４が行うとしてもよい。その場合、メモリアクセス処理部４が、要求先アドレスがユーザハードウェア用メモリ５の領域内であると判断したときのみ、アクセス制御手段６ｂが呼び出される。
【００２５】
反映手段６ｃは、ユーザにメモリモデル３の読み出しを許可するソフトウェアのデバッグ時のブレイクやシミュレーション終了時など、シミュレーションが停止される際に、ユーザハードウェア用メモリ５の内容をメモリモデル３に書き込んで一致させる。このとき、データはメモリモデル３の持つデータ構造にあわせて変換され、書き込みが行われる。
【００２６】
このようなシステムシミュレータを用いたシステムシミュレーション方法の手順について説明する。
シミュレーションを行うコンピュータ上に、対象論理回路のプロセッサコアモデル１、ユーザハードウェアモデル２、メモリモデル３及びメモリアクセス処理部４が構築される。シミュレーションの開始前にターゲットプログラムが読み込まれると、メモリ管理部６の初期化手段６ａは、ターゲットプログラムの初期設定情報に含まれるメモリモデル３のユーザハードウェアモデル２のアクセス領域指定に基づき、コンピュータのメモリ上にユーザハードウェア用メモリ５を確保する。そして、ユーザハードウェアモデル２のアクセス先をユーザハードウェア用メモリ５に置き換える。以降、ユーザハードウェアモデル２は、メモリモデル３ではなく、ユーザハードウェア用メモリ５にメモリアクセスする。
【００２７】
シミュレーションが開始され、プロセッサコアモデル１からの開始指示などにより、ユーザハードウェアモデル２の演算処理が開始される。このとき、ユーザハードウェアモデル２のメモリアクセスは、ユーザハードウェア用メモリ５に対して実行される。一方、プロセッサコアモデル１からのメモリアクセスは、メモリアクセス処理部４が受付け、メモリアクセス処理部４またはメモリ管理部６のアクセス制御手段６ｂが、要求アドレスがユーザハードウェア用メモリ５に対応するかどうかをチェックする。そして、要求アドレスが、ユーザハードウェア用メモリ５に対応する領域でなければ、メモリアクセス処理部４は、メモリモデル３の持つデータ構造に合わせた形式に変換し、データのリードライトを行う。また、ユーザハードウェア用メモリ５の領域であれば、アクセス制御手段６ｂが、該当するユーザハードウェア用メモリ５のアドレスへアクセスし、データのリードライトを行う。このとき、ユーザハードウェアモデル２からも該当するユーザハードウェア用メモリ５にメモリアクセスがあった場合、排他処理が行われ、予め決められた高優先度のメモリアクセスを処理し、これが終了した後、他方のメモリアクセスを処理する。
【００２８】
そして、シミュレーションが終了すると、メモリ管理部６の反映手段６ｃによって、ユーザハードウェア用メモリ５の内容がメモリモデル３の該当領域にコピーされ、双方の内容が一致する。なお、ソフトウェアデバッグ時のブレイクでも同様の処理が行われる。
【００２９】
以上のように、ユーザハードウェアモデル２がアクセスするメモリ領域を、メモリモデル３とは別領域に用意することにより、プロセッサコアモデル１とユーザハードウェアモデル２のアクセスが競合する頻度を大幅に削減することができる。この結果、プロセッサコアモデル１とユーザハードウェアモデル２は、並列実行が可能となり、システムシミュレーションの速度を高速化することができる。
【００３０】
また、ユーザハードウェア用メモリ５として用意されるメモリは、構造を持っていないコンピュータのメモリであるので、ユーザハードウェアモデル２から直接アクセスすることができるため、アクセス速度も高速化することができる。
【００３１】
以下、実施の形態を、ＣＰＵコアとユーザハードウェアが並列に動作する対象論理回路のシミュレーションに適用した場合を例に図面を参照して詳細に説明する。
図２は、本発明の実施の形態のシステムシミュレータの機能ブロック図である。図１と同じものには同じ番号を付す。
【００３２】
本発明に係るシステムシミュレータは、プロセッサコアモデル（以下、コアモデルとする）１、ユーザハードウェアモデル（以下、ＵＨＷモデルとする）２、メモリモデル３、メモリアクセスＡＰＩ関数４１、ユーザハードウェア用メモリ（以下、ＵＨＷメモリとする）５ａとＵＨＷレジスタ５ｂ、及びメモリリンクＡＰＩ関数６１を有する。
【００３３】
メモリアクセスＡＰＩ関数４１は、メモリアクセス処理部４であり、コアモデル１のメモリアクセス時に呼び出される関数の形式をとる。
ＵＨＷレジスタ５ｂには、ＵＨＷモデル２のアクセスするメモリ領域、すなわち、ＵＨＷメモリ５ａの領域を指示する値が設定される。
【００３４】
メモリリンクＡＰＩ関数６１は、メモリ管理部６の機能処理を実現する関数であり、メモリアクセスＡＰＩ関数４１と協調してメモリアクセス処理を行う。
ここで、メモリアクセスＡＰＩ関数４１とメモリリンクＡＰＩ関数６１を詳細に説明する。
【００３５】
メモリアクセスＡＰＩ関数４１は、コアモデル１がメモリアクセスする際に呼び出される関数であり、メモリモデル３の構造にあったデータ形式に変換する機能と、メモリリンクＡＰＩ関数６１とのリンク機能と２つの機能を有する。
【００３６】
第１のデータ形式を変換する機能について説明する。図３は、本実施の形態のメモリモデルへのアクセス例を示した図である。
上述のように、メモリモデル３は、構造化されているメモリであり、その構造にあったデータ形式でアクセスする必要がある。たとえば、ＳｏＣモデルのメモリ属性を持つ構造で、メモリ属性を含めてアクセス要求を行う必要がある場合や、メモリを節約するための処理が必要な構造となっている場合などがある。また、ＳｏＣモデルがビックエンディアン（big endian）であり、コンピュータがリトルエンディアン（little endian）であれば、エンディアン変換を行う必要がある。
【００３７】
そこで、コアモデル１は、読み込み時にはアドレス、サイズ、書き込み時にはさらに書き込みデータを引数としてメモリアクセスＡＰＩ関数４１を呼び出す。メモリアクセスＡＰＩ関数４１は、上述のようなメモリモデル３の構造にあったデータ形式に変換し、アクセス要求を行う。そして、得られた読み込みデータは、逆変換を行ってコアモデル１に返す。なお、この形式は、モデルに依存する。
【００３８】
次に、第２のメモリリンクＡＰＩ関数６１とのリンク機能は、コアモデル１の要求するアドレスがＵＨＷメモリ５ａへのアクセスである場合、メモリリンクＡＰＩ関数６１にＵＨＷメモリ５ａへのアクセスを依頼する。
【００３９】
図４は、本実施の形態の第１のアクセスメモリ選択処理の手順を示したフローチャートである。コアモデル１のメモリアクセスによってメモリアクセスＡＰＩ関数４１が呼び出され、処理が開始される。
【００４０】
［ステップＳ０１］  ＵＨＷメモリ領域の範囲を読み出す。ＵＨＷメモリ領域の範囲は、メモリモデル３に格納される初期設定情報や、メモリリンクＡＰＩ関数６１を介してＵＨＷレジスタ５ｂの値を読み出すことなどにより得られる。
【００４１】
［ステップＳ０２］  コアモデル１のメモリアクセスのアクセス要求先と、ステップＳ０１で読み出したＵＨＷメモリ領域とを比較し、アクセス要求先がＵＨＷメモリ領域に含まれているかどうかを判定する。含まれている場合、処理をステップＳ０５へ進める。
【００４２】
［ステップＳ０３］  アクセス要求先がＵＨＷメモリ領域に含まれていない場合、アクセス要求をメモリモデル３の構造に対応したデータ形式に変換するメモリモデル構造対応処理を行う。
【００４３】
［ステップＳ０４］  ステップＳ０３で得られたメモリモデル３の構造に対応したデータ形式のアクセス要求により、メモリモデル３にアクセスし、処理を終了する。
［ステップＳ０５］  アクセス要求先がＵＨＷメモリ領域に含まれている場合、メモリリンクＡＰＩ関数６１を呼び出してＵＨＷメモリ５ａへのアクセスを実行させ、処理を終了する。
【００４４】
なお、メモリアクセスＡＰＩ関数４１でアドレスチェックを行わず、メモリリンクＡＰＩ関数６１でチェックを行うこともできる。
メモリリンクＡＰＩ関数６１は、メモリアクセスＡＰＩ関数４１から呼びさされるとともに、シミュレーション終了やデバッグ時のブレイクなど所定の条件が成立した場合に呼び出される関数であり、ＵＨＷメモリ５ａとメモリモデル３をリンクさせる機能を有する。具体的には、ＵＨＷレジスタ５ｂへのアクセス処理機能、コアモデル１からＵＨＷメモリ５ａへのアクセス処理機能、コアモデル１とＵＨＷモデル２のアクセス競合時の排他処理機能及びメモリモデル３とＵＨＷメモリ５ａの一致化機能の４つの機能を有する。
【００４５】
ＵＨＷレジスタ５ｂへのアクセス処理機能は、初期化処理において、ＵＨＷメモリ５ａをコンピュータのメモリ上に設定する機能である。ＵＨＷモデル２の利用するＵＨＷメモリ５ａのメモリ領域は、コアモデル１が指定したレジスタアドレスとサイズによって決まる。そのレジスタ名のメモリ変数（ポインタ）にコンピュータのメモリを割り当てることで設定する。レジスタに開始アドレスと、サイズを設定することにより、ＵＨＷメモリ５ａのメモリ領域のスタートアドレスとエンドアドレスがわかる。
【００４６】
たとえば、レジスタ１のアドレス（Ｒｅｇ１Ａｄｄｒ）に０ｘ０１００００００、レジスタ１のサイズ（Ｒｅｇ１Ｓｉｚｅ）に０ｘ１００が設定されるとすると、レジスタ１で表されるメモリ領域は、
スタートアドレス＝  Ｒｅｇ１Ａｄｄｒ、
エンドアドレス＝  Ｒｅｇ１Ａｄｄｒ  ＋  Ｒｅｇ１Ｓｉｚｅ、
となる。なお、ＵＨＷレジスタ５ｂには、このようなレジスタの組を複数持つことができる。
【００４７】
次に、コアモデル１のＵＨＷメモリ５ａへのアクセス処理機能は、メモリアクセスＡＰＩ関数４１から呼び出され、処理を開始する。
図５は、本実施の形態の第２のアクセスメモリ選択処理の手順を示したフローチャートである。図では、メモリアクセスＡＰＩ関数とメモリリンクＡＰＩ関数の両方の処理手順が示されている。
【００４８】
コアモデル１のメモリアクセスによってメモリアクセスＡＰＩ関数４１が呼び出され、メモリアクセスＡＰＩ関数４１による処理が開始される。
［ステップＳ１１］  コアモデル１からのメモリアクセス要求を取得したので、メモリリンクＡＰＩ関数を呼び出し、メモリアクセス要求を送り、処理を開始させる。
【００４９】
［ステップＳ１２］  処理時間を短縮するため、メモリリンクＡＰＩ関数６１からの応答を待たずに、メモリモデル３に適したデータ形式に変換するメモリモデル構造対応処理を行う。
【００５０】
［ステップＳ１３］  メモリモデル３へアクセスする。
以上の処理手順が実行されることにより、メモリモデル３のアクセス要求先にアクセスが行われ、メモリリンクＡＰＩ関数６１からの応答を待つ。
【００５１】
一方、ステップＳ１１によって起動されたメモリリンクＡＰＩ関数は、以下の処理を行う。
［ステップＳ２１］  ＵＨＷメモリ領域の範囲を読み出す。ＵＨＷメモリ領域の範囲は、ＵＨＷレジスタ５ｂの値を読み出して取得する。
【００５２】
［ステップＳ２２］  初期値として、メモリアクセス無効の応答を設定しておく。そして、コアモデル１のメモリアクセスのアクセス要求先と、ステップＳ０１で読み出したＵＨＷメモリ領域とを比較し、アクセス要求先がＵＨＷメモリ領域に含まれているかどうかを判定する。アクセス要求先がＵＨＷメモリ５ａに含まれていない場合、何もせず、処理をステップＳ２４へ進める。
【００５３】
［ステップＳ２３］  アクセス要求先がＵＨＷメモリ領域に含まれている場合、アクセス要求先のＵＨＷメモリ５ａへアクセスする。リードの場合は、ＵＨＷメモリ５ａの該当領域からデータを読み出し、読み出しデータとメモリアクセス有効を伝える応答を設定する。ライトの場合、コアモデル１の書き込みデータをメモリアクセスＡＰＩ関数４１経由で取得し、これをＵＨＷメモリ５ａの該当領域に書き込む。このとき、ＵＨＷモデル２のアクセスと競合する場合には、後述する排他処理を行う。書き込み終了後、メモリアクセス有効を伝える応答を設定する。
【００５４】
［ステップＳ２４］  応答をメモリアクセスＡＰＩ関数４１に返し、処理を終了する。アクセス先がＵＨＷメモリ５ａ領域の場合は、ステップＳ２３によってメモリアクセス有効（リードの場合は読み出しデータも含む）の応答が設定される。ＵＨＷメモリ５ａ外の場合は、ステップＳ２２によって、メモリアクセス無効の応答が設定される。
【００５５】
メモリアクセスＡＰＩ関数の処理に戻って説明する。
［ステップＳ１４］  応答を取得し、応答に基づきＵＨＷメモリ領域の処理であったかどうか、すなわち、メモリアクセスが有効であるか無効であるかを判定する。ＵＨＷメモリ領域でなければ、処理を終了する。すなわち、ステップＳ１３で行われたメモリアクセスの結果がコアモデル１に戻る。
【００５６】
［ステップＳ１５］  応答がＵＨＷメモリ領域（メモリアクセス有効）であった場合には、応答として取得した情報に基づき、データを更新する。リードであれば、メモリリンクＡＰＩ関数６１がＵＨＷメモリ５ａから読み出したデータがコアモデル１に戻る。ライトであれば、メモリリンクＡＰＩ関数６１がＵＨＷメモリ５ａに書き込みを行った結果がコアモデル１に戻る。
【００５７】
なお、上記の説明では、処理を高速化するため、メモリアクセスＡＰＩ関数４１は、ステップＳ１２とステップＳ１３の処理をメモリリンクＡＰＩ関数６１の応答取得前に行っているが、これらの処理は、応答を取得した後、ＵＨＷメモリ領域外のアクセスと判定された場合に実行するようにしてもよい。一般に、メモリアクセスＡＰＩ関数４１によるデータ構造の変換処理は時間を要するので、高速化のためには、判定後にステップＳ１２及びステップＳ１３の処理を行うか、ＵＨＷメモリ５ａ領域でのアクセスであれば、ステップＳ１３の処理を中断することが望ましい。
【００５８】
次に、アクセスの排他処理機能は、コアモデル１からのＵＨＷメモリ５ａアクセスと、ＵＨＷモデル２のＵＨＷメモリ５ａのアクセスが競合した場合に排他処理を実行する。コアモデル１とＵＨＷモデル２のアクセス権に関する設計仕様に従って決まる優先度に基づき、高優先度のアクセスを先に処理する。そして、そのアクセスが終了したら、他方のアクセスを処理する。なお、一般に、コアモデル１は、全体の制御を主な機能とし、ＵＨＷモデル２の処理する内容とは重ならないように設計される。したがって、コアモデル１とＵＨＷモデル２がメモリ領域を共有することは、少ないと想定される。このため、大部分の時間は、コアモデル１とＵＨＷモデル２は、別々のメモリ領域をアクセスする。
【００５９】
次に、メモリモデル３とＵＨＷメモリ５ａのデータ一致化機能は、ファームなどのソフトウェアデバッグ時にブレイクでとまったとき、あるいはシミュレーション終了時などにメモリモデル３の内容をＵＨＷメモリ５ａの内容に一致させる。このとき、メモリリンクＡＰＩ関数６１は、ＵＨＷメモリ５ａのデータをメモリモデル３の構造に合わせたデータ形式に変換して、メモリモデル３へデータ転送を行う。
【００６０】
ここで、本実施の形態のシミュレーション方法を実現するシミュレータのハードウェア構成について説明する。図６は、本実施の形態のシミュレータのハードウェア構成例を示すブロック図である。
【００６１】
シミュレータ１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。
【００６２】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワークに接続されており、ネットワークを介して他装置との間でデータの送受信を行う。
【００６３】
このようなシミュレータ１００に上記の説明の対象論理回路のモデルを実現するプログラムと実行プログラムがロードされ、シミュレーションが行われる。
以下、本実施の形態のシミュレーション方法を手順に従って説明する。
【００６４】
図７は、本実施の形態のシミュレーション方法における実行プログラムのロード手順を示した図である。
コアモデル１、ＵＨＷモデル２、メモリモデル３及びメモリアクセスＡＰＩ関数４１より成るＳｏＣモデルを起動し、シミュレーションを開始する前に、ファームなどの実行プログラム（ロードモジュール）１０をロードする。
【００６５】
実行プログラム１０は、コアモデル１によって、メモリアクセスＡＰＩ関数４１を通じてメモリモデル３の所定の領域に書き込まれる。図の例では、メモリ領域３１ａとメモリ領域３１ｂに実行プログラム１０が書き込まれる。実行プログラム１０には、命令コードの他、データ空間、周辺回路の設定値、レジスタ設定などの初期設定値もしくは初期設定の命令が登録されている。実行プログラム１０もしくは、その初期設定情報に従って、データ空間や周辺回路、レジスタなどの設定が行われる。なお、ＵＨＷモデル２のメモリ領域は、レジスタにより設定されるが、図の例では、この時点ではまだレジスタは設定されず、コンピュータ上のメモリにＵＨＷメモリ５ａは、設定されていない。なお、初期設定時ＵＨＷモデル２のレジスタ設定がされれば、ＵＨＷメモリ５ａも同時に割り当てられることになる。
【００６６】
続いて、コアモデルが実行プログラム１０の実行を開始する場合について説明する。
図８は、本実施の形態のシミュレーション方法における実行プログラム開始の際の手順を示した図である。
【００６７】
実行プログラム１０にＵＨＷモデル２の使用するメモリ空間を設定するレジスタの書き込み命令が含まれている場合がある。このような命令があった場合、コアモデル１は、命令に従って、メモリアクセスＡＰＩ関数４１を通じて、メモリモデル３にＵＨＷ領域３２を設定する。これと同時に、メモリリンクＡＰＩ関数６１を通じて、ＵＨＷレジスタ５ｂにＵＨＷメモリ５ａの領域指定を書き込み、コンピュータのメモリ上にＵＨＷメモリ５ａを確保する。このように、ＵＨＷモデル２のメモリ領域として、メモリモデル３上の領域３２と、ＵＨＷメモリ５ａの両メモリの割当てを必ず行う。
【００６８】
次に、コアモデル１からＵＨＷメモリ５ａにアクセスがあった場合について説明する。
コアモデル１からメモリアクセスがあると、メモリアクセスＡＰＩ関数４１またはメモリリンクＡＰＩ関数６１がメモリアクセスのアクセス先がＵＨＷメモリ５ａに含まれているかどうかを判定し、含まれていない場合は、メモリアクセスＡＰＩ関数４１を通じてメモリモデル３へアクセスする。含まれている場合は、メモリリンクＡＰＩ６１を通じて、ＵＨＷメモリ５ａにアクセスする。
【００６９】
それぞれのケースについて図面を用いて説明する。以下の説明では、ＵＨＷメモリの領域チェックは、メモリアクセスＡＰＩ関数４１で行うこととし、メモリアクセスＡＰＩ関数４１からＵＨＷレジスタ５ｂの内容を直接読みだせることとする。なお、ＵＨＷレジスタ５ｂではなく、ＵＨＷレジスタ５ｂと同一のデータをメモリアクセスＡＰＩ関数４１から直接読み出し可能な領域に格納しておき、これを参照するとしてもよい。
【００７０】
図９は、本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス（ＵＨＷメモリ領域以外）の際の手順を示した図である。
コアモデル１からＵＨＷメモリ５ａ領域以外のメモリアクセスが発生し、メモリアクセスＡＰＩ関数４１が呼び出される。メモリアクセスＡＰＩ関数４１は、アクセス要求先がＵＨＷメモリ５ａ領域に含まれるかチェックするが、含まれていないので、メモリモデル３の該当領域にアクセスを行う。このとき、図に示したように、メモリリンクＡＰＩ関数６１は、起動されない。また、ＵＨＷモデル２からＵＨＷメモリ５ａへは、コアモデル１のアクセス状況とは関係なく、任意にアクセスできる。このように、コアモデル１とＵＨＷモデル２のメモリアクセスが同じアドレス空間でない（競合しない）場合は、それぞれのメモリをアクセスすることができるので、並列実行が可能となる。これにより、ＳｏＣモデルをマルチスレッド化したとき、高速シミュレーションが可能となる。
【００７１】
次に、コアモデル１からＵＨＷメモリ５ａにアクセスがあるか、ＵＨＷモデル２と競合しない場合について説明する。
図１０は、本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス（ＵＨＷメモリ領域で競合なし）の際の手順を示した図である。
【００７２】
コアモデル１からＵＨＷメモリ５ａ領域内のメモリアクセスが発生し、メモリアクセスＡＰＩ関数４１が呼び出される。メモリアクセスＡＰＩ関数４１は、アクセス要求先がＵＨＷメモリ５ａ領域に含まれるかチェックし、含まれているのでメモリリンクＡＰＩ関数６１にメモリアクセス要求を引き継ぐ。メモリリンクＡＰＩ関数６１は、ＵＨＷモデル２のアクセス状態をチェックし、競合しないと判断されれば、メモリアクセスＡＰＩ関数４１を通じて取得したコアモデル１のアクセス要求に応じてＵＨＷメモリ５ａにアクセスする。リードであれば、読み出した結果を、メモリアクセスＡＰＩ関数を通じてコアモデル１に返す。
【００７３】
この場合も、コアモデル１とＵＨＷモデル２が競合しないので、それぞれのメモリをアクセスすることができ、並列実行が可能となる。これにより、ＳｏＣモデルをマルチスレッド化したとき、高速シミュレーションが可能となる。
【００７４】
次に、コアモデル１からＵＨＷメモリ５ａにアクセスがあり、ＵＨＷモデル２と競合する場合について説明する。
図１１は、本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス（ＵＨＷメモリ領域で競合あり）の際の手順を示した図である。
【００７５】
コアモデル１からＵＨＷメモリ５ａ領域内のメモリアクセスが発生し、メモリアクセスＡＰＩ関数４１が呼び出される。メモリアクセスＡＰＩ関数４１は、アクセス要求先がＵＨＷメモリ５ａ領域に含まれるかチェックし、含まれているのでメモリリンクＡＰＩ関数６１にメモリアクセス要求を引き継ぐ。メモリリンクＡＰＩ関数６１は、ＵＨＷモデル２のアクセス状態をチェックすると、この場合は、同じ空間のアクセス要求がある（競合する）と判断される。同じメモリ領域にアクセス要求があった場合は、排他制御により、優先度の高い方を実行する。ＵＨＷモデル２が優先であれば、ＵＨＷモデル２のリードライトが終了した後、メモリアクセスＡＰＩ関数４１を通じて取得したコアモデル１のアクセス要求に応じてＵＨＷメモリ５ａにアクセスする。優先度が逆であれば、ＵＨＷモデル２のアクセスを待機させた後、コアモデル１のアクセス要求を処理した後、ＵＨＷモデル２の待機を解除する。この優先順位は、ＳｏＣモデルの仕様に依存する。たとえば、書き込みと読み出しでは優先度が異なってもよい。
【００７６】
なお、以上の処理は、アクセス要求が競合した場合であり、一方がアクセス中にアクセス要求があった場合には、アクセス中の処理が優先される。
次に、シミュレーション実行後などにＵＨＷメモリ５ａの内容をメモリモデル３に反映する処理について説明する。
【００７７】
図１２は、本実施の形態のシミュレーション方法におけるシミュレーション終了時の手順を示した図である。なお、デバッグのブレイクポイントで止まった時点など、シミュレーションが停止した場合にも同様の処理を行う。
【００７８】
シミュレーションが停止すると、メモリリンクＡＰＩ関数６１が呼び出される。メモリリンクＡＰＩ関数６１は、ＵＨＷメモリ５ａの内容を対応するメモリモデル３のＵＨＷ領域３２に書き込み、両メモリの一致を図る。このとき、メモリリンクＡＰＩ関数６１では、構造を持たないＵＨＷメモリ５ａのデータをメモリモデル３の構造に応じて変換処理し、書き込みを行う。
【００７９】
以上のように、ＵＨＷモデル２用のメモリ領域を、構造を持たないコンピュータのメモリ上に設けたことにより、コアモデル１と競合せず、それぞれのメモリをアクセスすることができ、並列実行が可能となる。また、ＵＨＷモデル２用のＵＨＷメモリ５ａをコンピュータ上に確保したことにより、ＵＨＷモデル２のアクセス速度も高速化することができる。この結果、ＳｏＣモデルをマルチスレッド化したとき、高速シミュレーションが可能となる。
【００８０】
図１３は、本実施の形態のシミュレーション方法にマルチスレッドを適用した場合の処理の流れを示した図である。
コアモデル１を実行するスレッドと、ＵＨＷモデル２を実行するスレッドが並列動作し、マルチスレッドを構成している。コアモデル１は、メモリモデル３に格納される実行プログラムに従って処理を実行し、命令に従って、メモリモデル３のＵＨＷ領域を設定する。このとき、ＵＨＷモデル２が使用するＵＨＷメモリ５ａがコンピュータ上に設定され、ＵＨＷモデル２は、ＵＨＷメモリ５ａにアクセスするように設定される。
【００８１】
そして、コアモデル１は、実行プログラムに従って、必要時にＵＨＷモデル２を起動する。コアモデル１は、ＵＨＷモデル２を起動した後も、ＵＨＷモデル２と並列に処理を実行する。ＵＨＷモデル２は、ＵＨＷメモリ５ａにアクセスしながら、所定の演算処理を行っている。このように、両スレッドは、並列に動作している。
【００８２】
この状態で、コアモデル１のＵＨＷメモリ５ａアクセス要求と、ＵＨＷモデル２のアクセス要求が競合した場合には、高い優先度から順に処理が行われる。図の例では、コアモデル１のデータ書き込みは、ＵＨＷモデル２の後で処理され、コアモデル１のデータ読み出しは、ＵＨＷモデル２の前に実行される。
【００８３】
このように、コアモデル１とＵＨＷモデル２は、それぞれのメモリにアクセスし、並列動作を行うことができ、シミュレーションの高速化が可能となる。
（付記１）  プロセッサコアとユーザハードウェアが混在する対象論理回路の機能をコンピュータ上で検証するためのシステムシミュレーション方法において、
初期化手段が、前記コンピュータ上に構築された前記プロセッサコアの機能をモデル化したプロセッサコアモデル、前記ユーザハードウェアの機能をモデル化したユーザハードウェアモデル及び前記対象論理回路のメモリの構造をモデル化したメモリモデルについて、前記ユーザハードウェアモデルが利用する前記メモリモデルの領域に応じたユーザハードウェア用メモリを前記コンピュータのメモリ領域に確保し、前記ユーザハードウェアモデルのアクセス先を前記ユーザハードウェア用メモリに置き換え、
アクセス制御手段が、アクセス要求に応じて前記プロセッサコアモデルのアクセス先を制御する、
ことを特徴とするシステムシミュレーション方法。
【００８４】
（付記２）  前記アクセス制御手段が、前記プロセッサコアモデルからのメモリアクセス要求に対し、アクセス要求先が前記ユーザハードウェア用メモリに置き換えられた領域に含まれているかどうかを判定し、
含まれていない場合はアクセス先を前記メモリモデルとし、含まれている場合はアクセス先を前記ユーザハードウェア用メモリとする、
ことを特徴とする付記１記載のシステムシミュレーション方法。
【００８５】
（付記３）  前記アクセス制御手段が、前記プロセッサコアモデルのアクセス先が前記ユーザハードウェア用メモリであって、前記ユーザハードウェアモデルから同じメモリ領域にアクセス要求があった場合には、予め設定された優先度に基づき、前記優先度の高い側のアクセス要求を先に処理する、
ことを特徴とする付記２記載のシステムシミュレーション方法。
【００８６】
（付記４）  前記アクセス制御手段は、前記プロセッサコアモデルからの前記メモリアクセス要求に対する処理を、前記プロセッサコアモデルの前記アクセス先として選択されなかった前記メモリモデルまたは前記ユーザハードウェア用メモリに対しては実行しない、
ことを特徴とする付記２記載のシステムシミュレーション方法。
【００８７】
（付記５）  前記初期化手段が、前記プロセッサコアモデルが実行する対象プログラムが前記メモリモデルにロードされる際に、前記対象プログラムに記述された初期設定情報に基づき、前記コンピュータのメモリ領域に前記ユーザハードウェア用メモリを設定する、
ことを特徴とする付記１記載のシステムシミュレーション方法。
【００８８】
（付記６）  反映手段が、前記システムシミュレーションの終了を含む前記システムシミュレーションが停止された場合に、前記ユーザハードウェア用メモリの内容を前記メモリモデルに反映する、
ことを特徴とする付記１記載のシステムシミュレーション方法。
【００８９】
（付記７）  前記ユーザハードウェア用メモリの内容を前記メモリモデルに反映する際は、前記メモリモデルのデータ構造に応じた形式に変換して前記ユーザハードウェア用メモリの内容を書き込む、
ことを特徴とする付記６記載のシステムシミュレーション方法。
【００９０】
（付記８）  プロセッサコアとユーザハードウェアが混在する対象論理回路の機能を検証するためのシステムシミュレータにおいて、
前記プロセッサコアの機能をモデル化したプロセッサコアモデル部と、
前記ユーザハードウェアの機能をモデル化したユーザハードウェアモデル部と、
前記対象論理回路のメモリの構造をモデル化したメモリモデル部と、
前記ユーザハードウェアモデル部が利用するユーザハードウェア用メモリと、
前記ユーザハードウェアモデル部がアクセスする前記メモリモデル部の領域に応じた領域を前記ユーザハードウェア用メモリとして前記コンピュータのメモリ領域に確保する初期化手段と、
前記ユーザハードウェアモデル部から前記メモリモデル部へのアクセス要求があった場合に、アクセス対象の前記メモリモデル部の領域に対応する前記ユーザハードウェア用メモリの領域に対して前記アクセス要求を実行させるメモリ管理部と、
を具備することを特徴とするシステムシミュレータ。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態のシステムシミュレータの機能ブロック図である。
【図３】本実施の形態のメモリモデルへのアクセス例を示した図である。
【図４】本実施の形態の第１のアクセスメモリ選択処理の手順を示したフローチャートである。
【図５】本実施の形態の第２のアクセスメモリ選択処理の手順を示したフローチャートである。
【図６】本実施の形態のシミュレータのハードウェア構成例を示すブロック図である。
【図７】本実施の形態のシミュレーション方法における実行プログラムのロード手順を示した図である。
【図８】本実施の形態のシミュレーション方法における実行プログラム開始の際の手順を示した図である。
【図９】本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス（ＵＨＷメモリ領域以外）の際の手順を示した図である。
【図１０】本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス（ＵＨＷメモリ領域で競合なし）の際の手順を示した図である。
【図１１】本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス（ＵＨＷメモリ領域で競合あり）の際の手順を示した図である。
【図１２】本実施の形態のシミュレーション方法におけるシミュレーション終了時の手順を示した図である。
【図１３】本実施の形態のシミュレーション方法にマルチスレッドを適用した場合の処理の流れを示した図である。
【図１４】従来のＳｏＣモデルシミュレータの構成図である。
【符号の説明】
【００９２】
１  プロセッサコアモデル（コアモデル）
２  ユーザハードウェアモデル（ＵＨＷモデル）
３  メモリモデル
４  メモリアクセス処理部
５  ユーザハードウェア用メモリ
５ａ  ＵＨＷメモリ
５ｂ  ＵＨＷレジスタ
６  メモリ管理部
６ａ  初期化手段
６ｂ  アクセス制御手段
６ｃ  反映手段
４１  メモリアクセスＡＰＩ関数
６１  メモリリンクＡＰＩ関数
【図１】
2007034680.tif 000003
【図２】
2007034680.tif 000004
【図３】
2007034680.tif 000005
【図４】
2007034680.tif 000006
【図５】
2007034680.tif 000007
【図６】
2007034680.tif 000008
【図７】
2007034680.tif 000009
【図８】
2007034680.tif 000010
【図９】
2007034680.tif 000011
【図１０】
2007034680.tif 000012
【図１１】
2007034680.tif 000013
【図１２】
2007034680.tif 000014
【図１３】
2007034680.tif 000015
【図１４】
2007034680.tif 000016