JP2007034680A - システムシミュレーション方法 - Google Patents
システムシミュレーション方法 Download PDFInfo
- Publication number
- JP2007034680A JP2007034680A JP2005217114A JP2005217114A JP2007034680A JP 2007034680 A JP2007034680 A JP 2007034680A JP 2005217114 A JP2005217114 A JP 2005217114A JP 2005217114 A JP2005217114 A JP 2005217114A JP 2007034680 A JP2007034680 A JP 2007034680A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- model
- access
- user hardware
- uhw
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/08—HW-SW co-design, e.g. HW-SW partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】 初期化手段6aは、ユーザハードウェアモデル2がアクセスするメモリモデル3上の所定の領域に相当する領域をユーザハードウェア用メモリ5としてコンピュータのメモリ上に確保し、ユーザハードウェアモデル2からのメモリアクセスは、すべてユーザハードウェア用メモリ5へアクセスさせる。アクセス制御手段6bは、プロセッサコアモデル1からのユーザハードウェア用メモリ5へのメモリアクセスを可能にし、ユーザハードウェアモデル2のアクセスと競合しないように制御する。
【選択図】 図1
Description
従来のSoCモデルシミュレータは、検証対象のソフトウェアを実行するCPUの機能をモデル化したプロセッサコアモデル901、検証対象のユーザハードウェアの機能をモデル化したユーザハードウェアモデル902、所定の構造を持つメモリをモデル化したメモリモデル903及びメモリアクセスAPI(Application Program Interface)関数904を具備する。メモリアクセスAPI関数904は、アドレスやサイズなどを引数として呼び出しを受けると、メモリモデル903の構造に応じたデータ形式に変換し、メモリモデル903にアクセスする関数であり、プロセッサコアモデル901及びユーザハードウェアモデル902は、メモリアクセスAPI関数904を通じてメモリモデル903にリードライトする。
図1は、本発明の実施の形態に適用される発明の概念図である。
シミュレーションを行うコンピュータ上に、対象論理回路のプロセッサコアモデル1、ユーザハードウェアモデル2、メモリモデル3及びメモリアクセス処理部4が構築される。シミュレーションの開始前にターゲットプログラムが読み込まれると、メモリ管理部6の初期化手段6aは、ターゲットプログラムの初期設定情報に含まれるメモリモデル3のユーザハードウェアモデル2のアクセス領域指定に基づき、コンピュータのメモリ上にユーザハードウェア用メモリ5を確保する。そして、ユーザハードウェアモデル2のアクセス先をユーザハードウェア用メモリ5に置き換える。以降、ユーザハードウェアモデル2は、メモリモデル3ではなく、ユーザハードウェア用メモリ5にメモリアクセスする。
図2は、本発明の実施の形態のシステムシミュレータの機能ブロック図である。図1と同じものには同じ番号を付す。
UHWレジスタ5bには、UHWモデル2のアクセスするメモリ領域、すなわち、UHWメモリ5aの領域を指示する値が設定される。
ここで、メモリアクセスAPI関数41とメモリリンクAPI関数61を詳細に説明する。
上述のように、メモリモデル3は、構造化されているメモリであり、その構造にあったデータ形式でアクセスする必要がある。たとえば、SoCモデルのメモリ属性を持つ構造で、メモリ属性を含めてアクセス要求を行う必要がある場合や、メモリを節約するための処理が必要な構造となっている場合などがある。また、SoCモデルがビックエンディアン(big endian)であり、コンピュータがリトルエンディアン(little endian)であれば、エンディアン変換を行う必要がある。
[ステップS05] アクセス要求先がUHWメモリ領域に含まれている場合、メモリリンクAPI関数61を呼び出してUHWメモリ5aへのアクセスを実行させ、処理を終了する。
メモリリンクAPI関数61は、メモリアクセスAPI関数41から呼びさされるとともに、シミュレーション終了やデバッグ時のブレイクなど所定の条件が成立した場合に呼び出される関数であり、UHWメモリ5aとメモリモデル3をリンクさせる機能を有する。具体的には、UHWレジスタ5bへのアクセス処理機能、コアモデル1からUHWメモリ5aへのアクセス処理機能、コアモデル1とUHWモデル2のアクセス競合時の排他処理機能及びメモリモデル3とUHWメモリ5aの一致化機能の4つの機能を有する。
スタートアドレス= Reg1Addr、
エンドアドレス= Reg1Addr + Reg1Size、
となる。なお、UHWレジスタ5bには、このようなレジスタの組を複数持つことができる。
図5は、本実施の形態の第2のアクセスメモリ選択処理の手順を示したフローチャートである。図では、メモリアクセスAPI関数とメモリリンクAPI関数の両方の処理手順が示されている。
[ステップS11] コアモデル1からのメモリアクセス要求を取得したので、メモリリンクAPI関数を呼び出し、メモリアクセス要求を送り、処理を開始させる。
以上の処理手順が実行されることにより、メモリモデル3のアクセス要求先にアクセスが行われ、メモリリンクAPI関数61からの応答を待つ。
[ステップS21] UHWメモリ領域の範囲を読み出す。UHWメモリ領域の範囲は、UHWレジスタ5bの値を読み出して取得する。
[ステップS14] 応答を取得し、応答に基づきUHWメモリ領域の処理であったかどうか、すなわち、メモリアクセスが有効であるか無効であるかを判定する。UHWメモリ領域でなければ、処理を終了する。すなわち、ステップS13で行われたメモリアクセスの結果がコアモデル1に戻る。
以下、本実施の形態のシミュレーション方法を手順に従って説明する。
コアモデル1、UHWモデル2、メモリモデル3及びメモリアクセスAPI関数41より成るSoCモデルを起動し、シミュレーションを開始する前に、ファームなどの実行プログラム(ロードモジュール)10をロードする。
図8は、本実施の形態のシミュレーション方法における実行プログラム開始の際の手順を示した図である。
コアモデル1からメモリアクセスがあると、メモリアクセスAPI関数41またはメモリリンクAPI関数61がメモリアクセスのアクセス先がUHWメモリ5aに含まれているかどうかを判定し、含まれていない場合は、メモリアクセスAPI関数41を通じてメモリモデル3へアクセスする。含まれている場合は、メモリリンクAPI61を通じて、UHWメモリ5aにアクセスする。
コアモデル1からUHWメモリ5a領域以外のメモリアクセスが発生し、メモリアクセスAPI関数41が呼び出される。メモリアクセスAPI関数41は、アクセス要求先がUHWメモリ5a領域に含まれるかチェックするが、含まれていないので、メモリモデル3の該当領域にアクセスを行う。このとき、図に示したように、メモリリンクAPI関数61は、起動されない。また、UHWモデル2からUHWメモリ5aへは、コアモデル1のアクセス状況とは関係なく、任意にアクセスできる。このように、コアモデル1とUHWモデル2のメモリアクセスが同じアドレス空間でない(競合しない)場合は、それぞれのメモリをアクセスすることができるので、並列実行が可能となる。これにより、SoCモデルをマルチスレッド化したとき、高速シミュレーションが可能となる。
図10は、本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス(UHWメモリ領域で競合なし)の際の手順を示した図である。
図11は、本実施の形態のシミュレーション方法におけるコアモデルのデータアクセス(UHWメモリ領域で競合あり)の際の手順を示した図である。
次に、シミュレーション実行後などにUHWメモリ5aの内容をメモリモデル3に反映する処理について説明する。
コアモデル1を実行するスレッドと、UHWモデル2を実行するスレッドが並列動作し、マルチスレッドを構成している。コアモデル1は、メモリモデル3に格納される実行プログラムに従って処理を実行し、命令に従って、メモリモデル3のUHW領域を設定する。このとき、UHWモデル2が使用するUHWメモリ5aがコンピュータ上に設定され、UHWモデル2は、UHWメモリ5aにアクセスするように設定される。
(付記1) プロセッサコアとユーザハードウェアが混在する対象論理回路の機能をコンピュータ上で検証するためのシステムシミュレーション方法において、
初期化手段が、前記コンピュータ上に構築された前記プロセッサコアの機能をモデル化したプロセッサコアモデル、前記ユーザハードウェアの機能をモデル化したユーザハードウェアモデル及び前記対象論理回路のメモリの構造をモデル化したメモリモデルについて、前記ユーザハードウェアモデルが利用する前記メモリモデルの領域に応じたユーザハードウェア用メモリを前記コンピュータのメモリ領域に確保し、前記ユーザハードウェアモデルのアクセス先を前記ユーザハードウェア用メモリに置き換え、
アクセス制御手段が、アクセス要求に応じて前記プロセッサコアモデルのアクセス先を制御する、
ことを特徴とするシステムシミュレーション方法。
含まれていない場合はアクセス先を前記メモリモデルとし、含まれている場合はアクセス先を前記ユーザハードウェア用メモリとする、
ことを特徴とする付記1記載のシステムシミュレーション方法。
ことを特徴とする付記2記載のシステムシミュレーション方法。
ことを特徴とする付記2記載のシステムシミュレーション方法。
ことを特徴とする付記1記載のシステムシミュレーション方法。
ことを特徴とする付記1記載のシステムシミュレーション方法。
ことを特徴とする付記6記載のシステムシミュレーション方法。
前記プロセッサコアの機能をモデル化したプロセッサコアモデル部と、
前記ユーザハードウェアの機能をモデル化したユーザハードウェアモデル部と、
前記対象論理回路のメモリの構造をモデル化したメモリモデル部と、
前記ユーザハードウェアモデル部が利用するユーザハードウェア用メモリと、
前記ユーザハードウェアモデル部がアクセスする前記メモリモデル部の領域に応じた領域を前記ユーザハードウェア用メモリとして前記コンピュータのメモリ領域に確保する初期化手段と、
前記ユーザハードウェアモデル部から前記メモリモデル部へのアクセス要求があった場合に、アクセス対象の前記メモリモデル部の領域に対応する前記ユーザハードウェア用メモリの領域に対して前記アクセス要求を実行させるメモリ管理部と、
を具備することを特徴とするシステムシミュレータ。
2 ユーザハードウェアモデル(UHWモデル)
3 メモリモデル
4 メモリアクセス処理部
5 ユーザハードウェア用メモリ
5a UHWメモリ
5b UHWレジスタ
6 メモリ管理部
6a 初期化手段
6b アクセス制御手段
6c 反映手段
41 メモリアクセスAPI関数
61 メモリリンクAPI関数
Claims (6)
- プロセッサコアとユーザハードウェアが混在する対象論理回路の機能をコンピュータ上で検証するためのシステムシミュレーション方法において、
初期化手段が、前記コンピュータ上に構築された前記プロセッサコアの機能をモデル化したプロセッサコアモデル、前記ユーザハードウェアの機能をモデル化したユーザハードウェアモデル及び前記対象論理回路のメモリの構造をモデル化したメモリモデルについて、前記ユーザハードウェアモデルが利用する前記メモリモデルの領域に応じたユーザハードウェア用メモリを前記コンピュータのメモリ領域に確保し、前記ユーザハードウェアモデルのアクセス先を前記ユーザハードウェア用メモリに置き換え、
アクセス制御手段が、アクセス要求に応じて前記プロセッサコアモデルのアクセス先を制御する、
ことを特徴とするシステムシミュレーション方法。 - 前記アクセス制御手段が、前記プロセッサコアモデルからのメモリアクセス要求に対し、アクセス要求先のメモリ領域が前記ユーザハードウェア用メモリに置き換えられた領域に含まれているかどうかを判定し、
含まれていない場合はアクセス先を前記メモリモデルとし、含まれている場合はアクセス先を前記ユーザハードウェア用メモリとする、
ことを特徴とする請求項1記載のシステムシミュレーション方法。 - 前記アクセス制御手段が、前記プロセッサコアモデルのアクセス先が前記ユーザハードウェア用メモリであって、前記ユーザハードウェアモデルから同じメモリ領域にアクセス要求があった場合には、予め設定された優先度に基づき、前記優先度の高い側のアクセス要求を先に処理する、
ことを特徴とする請求項2記載のシステムシミュレーション方法。 - 前記初期化手段が、前記プロセッサコアモデルが実行する対象プログラムが前記メモリモデルにロードされる際に、前記対象プログラムに記述された初期設定情報に基づき、前記コンピュータのメモリ領域に前記ユーザハードウェア用メモリを設定する、
ことを特徴とする請求項1記載のシステムシミュレーション方法。 - 反映手段が、前記システムシミュレーションの終了を含む前記システムシミュレーションが停止された場合に、前記ユーザハードウェア用メモリの内容を前記メモリモデルに反映する、
ことを特徴とする請求項1記載のシステムシミュレーション方法。 - 前記ユーザハードウェア用メモリの内容を前記メモリモデルに反映する際は、前記メモリモデルのデータ構造に応じた形式に変換して前記ユーザハードウェア用メモリの内容を書き込む、
ことを特徴とする請求項5記載のシステムシミュレーション方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005217114A JP4346587B2 (ja) | 2005-07-27 | 2005-07-27 | システムシミュレーション方法 |
US11/336,967 US20070038429A1 (en) | 2005-07-27 | 2006-01-23 | System simulation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005217114A JP4346587B2 (ja) | 2005-07-27 | 2005-07-27 | システムシミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007034680A true JP2007034680A (ja) | 2007-02-08 |
JP4346587B2 JP4346587B2 (ja) | 2009-10-21 |
Family
ID=37743618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005217114A Expired - Fee Related JP4346587B2 (ja) | 2005-07-27 | 2005-07-27 | システムシミュレーション方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070038429A1 (ja) |
JP (1) | JP4346587B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011501466A (ja) * | 2007-10-26 | 2011-01-06 | クリー エル イー ディー ライティング ソリューションズ インコーポレイテッド | 1つまたは複数の発光体を有する照明デバイス、およびその製作方法 |
JP2014021572A (ja) * | 2012-07-13 | 2014-02-03 | Meidensha Corp | デジタル回路用シミュレーション装置及びそのプログラム。 |
US9448931B2 (en) | 2011-03-18 | 2016-09-20 | Fujitsu Limited | Endian conversion method and system |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9125647B2 (en) | 2008-02-21 | 2015-09-08 | Ethicon, Inc. | Method and apparatus for elevating retainers on self-retaining sutures |
BRPI0911132B8 (pt) | 2008-04-15 | 2021-06-22 | Angiotech Pharm Inc | sutura para ser usada em um procedimento aplicado ao tecido |
EP3338192A1 (en) * | 2015-08-18 | 2018-06-27 | Telefonaktiebolaget LM Ericsson (PUBL) | Method for observing software execution, debug host and debug target |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE134779T1 (de) * | 1987-06-12 | 1996-03-15 | Bmc Software Inc | Supervisorverfahren für ein rechnerbetriebssystem |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US6144930A (en) * | 1993-06-09 | 2000-11-07 | Compaq Computer Corporation | Method for providing a memory model of a memory device for use in simulation |
US5678028A (en) * | 1994-10-25 | 1997-10-14 | Mitsubishi Electric Information Technology Center America, Inc. | Hardware-software debugger using simulation speed enhancing techniques including skipping unnecessary bus cycles, avoiding instruction fetch simulation, eliminating the need for explicit clock pulse generation and caching results of instruction decoding |
US5838948A (en) * | 1995-12-01 | 1998-11-17 | Eagle Design Automation, Inc. | System and method for simulation of computer systems combining hardware and software interaction |
US5911059A (en) * | 1996-12-18 | 1999-06-08 | Applied Microsystems, Inc. | Method and apparatus for testing software |
US6751583B1 (en) * | 1999-10-29 | 2004-06-15 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating a target processor using binary translation |
US6263302B1 (en) * | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
US6230114B1 (en) * | 1999-10-29 | 2001-05-08 | Vast Systems Technology Corporation | Hardware and software co-simulation including executing an analyzed user program |
US6993469B1 (en) * | 2000-06-02 | 2006-01-31 | Arm Limited | Method and apparatus for unified simulation |
US6865502B2 (en) * | 2001-04-04 | 2005-03-08 | International Business Machines Corporation | Method and system for logic verification using mirror interface |
JP4475621B2 (ja) * | 2001-04-18 | 2010-06-09 | キヤノン株式会社 | メモリ制御回路の論理検証装置及び方法 |
US7353156B2 (en) * | 2002-02-01 | 2008-04-01 | International Business Machines Corporation | Method of switching external models in an automated system-on-chip integrated circuit design verification system |
US7266786B2 (en) * | 2002-11-05 | 2007-09-04 | Sonics, Inc. | Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems |
ITMI20040600A1 (it) * | 2004-03-26 | 2004-06-26 | Atmel Corp | Sistema dsp su chip a doppio processore a virgola mobile nel dominio complesso |
US20060036424A1 (en) * | 2004-08-13 | 2006-02-16 | Petsinger Jeremy P | Method and apparatus for verifying resources shared by multiple processors |
US20060106988A1 (en) * | 2004-11-16 | 2006-05-18 | Charbel Khawand | Method and system for exchanging data |
US7478027B2 (en) * | 2005-03-30 | 2009-01-13 | International Business Machines Corporation | Systems, methods, and media for simulation of integrated hardware and software designs |
JP4717492B2 (ja) * | 2005-04-12 | 2011-07-06 | 富士通株式会社 | マルチコアモデルシミュレータ |
US7500066B2 (en) * | 2005-04-30 | 2009-03-03 | Tellabs Operations, Inc. | Method and apparatus for sharing instruction memory among a plurality of processors |
US7434182B2 (en) * | 2005-07-14 | 2008-10-07 | International Business Machines Corporation | Method for testing sub-systems of a system-on-a-chip using a configurable external system-on-a-chip |
-
2005
- 2005-07-27 JP JP2005217114A patent/JP4346587B2/ja not_active Expired - Fee Related
-
2006
- 2006-01-23 US US11/336,967 patent/US20070038429A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011501466A (ja) * | 2007-10-26 | 2011-01-06 | クリー エル イー ディー ライティング ソリューションズ インコーポレイテッド | 1つまたは複数の発光体を有する照明デバイス、およびその製作方法 |
US9448931B2 (en) | 2011-03-18 | 2016-09-20 | Fujitsu Limited | Endian conversion method and system |
JP2014021572A (ja) * | 2012-07-13 | 2014-02-03 | Meidensha Corp | デジタル回路用シミュレーション装置及びそのプログラム。 |
Also Published As
Publication number | Publication date |
---|---|
US20070038429A1 (en) | 2007-02-15 |
JP4346587B2 (ja) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10078882B2 (en) | Priority-based command execution | |
JP5787629B2 (ja) | マシンビジョン用マルチプロセッサシステムオンチップ | |
US7543295B2 (en) | Method for enhancing efficiency in mutual exclusion | |
US7773090B1 (en) | Kernel mode graphics driver for dual-core computer system | |
JP4896376B2 (ja) | コプロセッサの性能を強化するシステムおよび方法 | |
JP4346587B2 (ja) | システムシミュレーション方法 | |
US9454397B2 (en) | Data processing systems | |
US7856635B2 (en) | Dynamic address windowing on a PCI bus | |
JP2012038293A5 (ja) | ||
JP2004272894A (ja) | グラフィックス処理ユニットのマルチスレッド式カーネル | |
JP2007122602A (ja) | マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法 | |
US9164799B2 (en) | Multiprocessor system | |
JP2007219816A (ja) | マルチプロセッサシステム | |
JP4425177B2 (ja) | グラフィックプロセッサ、情報処理装置 | |
WO2006123547A1 (ja) | 情報処理装置、システム、方法およびプロセッサ | |
US7552269B2 (en) | Synchronizing a plurality of processors | |
JP2009181579A (ja) | 機能を呼び出す方法、サブシステムおよびシステム | |
EP2449472A1 (en) | A programmable controller | |
JPH0855097A (ja) | データ処理システム及びそのメモリアクセス方法 | |
JPH02297594A (ja) | データ処理装置、データ処理システム及びアウトラインフォントデータ発生方法 | |
JP6396715B2 (ja) | データ処理装置 | |
JP2022072452A (ja) | 情報処理装置、及びプログラム | |
JP2021174051A (ja) | インタフェース回路およびインタフェース回路の制御方法 | |
WO2006070939A1 (en) | Program executed under control of operating system providing kernel mode and user mode | |
JPS5856277A (ja) | 情報処理装置ならびに方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080312 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080318 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080516 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090714 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090714 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |