JP2007048019A - エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム - Google Patents
エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム Download PDFInfo
- Publication number
- JP2007048019A JP2007048019A JP2005231528A JP2005231528A JP2007048019A JP 2007048019 A JP2007048019 A JP 2007048019A JP 2005231528 A JP2005231528 A JP 2005231528A JP 2005231528 A JP2005231528 A JP 2005231528A JP 2007048019 A JP2007048019 A JP 2007048019A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- processor
- computer
- peripheral
- access
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
【解決手段】
エミュレート後のバスアクセスサイクル数を正しく見積もる。そのために、プロセッサ(MIPS)から命令を発行したときのバスアクセスにかかるサイクル数を、その要因ごとに分割し、それぞれの要因毎にかかるサイクル数の総和として、そのバスアクセスサイクル数を見積もる。例えばBusArbiterオブジェクトが、MIPSからの要求を遂行するペリフェラルフェラレルから当該要求の遂行に要した実質時間を表すデータを受け取るとともに、DMAコントローラから現在のDMAの状態を受け取り、これらをMIPSに伝える。MIPSは、実質時間に応じて自己の仮想動作タイミングを最適化する。
【選択図】 図4
Description
例えば、CPUの内部にキャッシュがあるかどうかにより、あるいは、キャッシュがあってもキャッシュにヒットするかミスヒットするかにより、動作サイクル数が異なってくる。キャッシュにヒットした場合は、CPUの内部で閉じてデータのやりとりが完了するが、キャッシュにミスヒットした場合は、バスアクセス権を取得するまでの動作サイクル数を計算する必要がある。
本発明の他の課題は、エミュレーション方法を好適に実施することができるエミュレータ、コンピュータ組込型のデバイス、ならびに、このエミュレータをコンピュータ上で実行させるためのエミュレータ用プログラムを提供することにある。
「ペリフェラル」は、例えばコンピュータの周辺デバイスのようなものである。「実質時間」は、実質的に時間情報といえるものをいう。一例でいえば、前記第1コンピュータの仮想動作タイミングを決定するバスアクセスサイクル数である。動作クロックのようなものも実質時間といえる。
前記第1コンピュータのキャッシュメモリおよび自己に要求された命令の遂行に要した実質時間を前記プロセッサオブジェクトに返送する機能を有するキャッシュ管理手段に対応して形成されるキャッシュ管理手段をさらに備え、前記キャッシュ管理手段は、さらに、前記キャッシュメモリにおけるヒット又はミスの判定を行うとともに、この判定結果に応じて前記プロセッサオブジェクトに返送すべき実質時間にさらに加算すべき実質時間を決定するようにしてもよい。
次に、対象システムをエミュレートする本発明のエミュレータの構成例を説明する。
本発明のエミュレータは、エミュレータ用プログラムと、メモリを有するコンピュータないしコンピュータシステムとの協働により実現される。すなわち、エミュレートしようとするコンピュータ等(以下、「第2コンピュータ」という)のプロセッサがエミュレータ用プログラムを読み込んで実行することにより、あるいは、第2コンピュータに組込型デバイスが装着されることにより、当該第2コンピュータがエミュレータとして動作する。本発明のエミュレータは、また、組込型デバイスを第2コンピュータの内部バスあるいは外部バスに接続することにより、あるいは、第2コンピュータのプロセッサにつながる所定のスロットに装着することによっても実現が可能である。
DMA_Controllerオブジェクトは、対象システムのDMAコントローラのエミュレートを行うもので、現時点で起動中のDMAの状態を監視している。そのため、バス・アービトレーションのサイクル数を見積もるために、BusArbiterオブジェクトからDMA状態取得のリクエストが来る。
次に、上記のように構成されるエミュレータにおいて、エミュレート後のバスアクセスサイクル数の見積もり方法について説明する。バスアクセスサイクル数とは、バスマスタ(BusMaster)が、バスアクセスを要求してからそのバスアクセスが完了するまでの動作サイクル数である。ここでは、インストラクションバス・リードアクセス、データバス・リードアクセス、データバス・ライトアクセスの3種類のアクセスが起きた場合の動作と、バス・レイテンシの見積もり方法を説明する。
図3は、インストラクションバス・リードアクセスのシーケンス図である。上段はオブジェクト名を示している。図3を参照すると、MIPSオブジェクトは、インストラクションリードアクセスをI−BUSオブジェクトに向けて発行する(iRA1)。このときI−BUSオブジェクトへ送出される要求コマンドは「ReadBus()」である。I−BUSオブジェクトは、所定のアドレス変換を行った後、インストラクション要求、例えばデータ要求をBusArbiterオブジェクトに向けて送出する(iRA2)。このときBusArbiterオブジェクトへ送出される要求コマンドは「ReadBus()」である。
BusArbiterオブジェクトは、また、DMA_ControllerオブジェクトにDMAの状態を表すデータを要求する(iRA5)。このときDMA_Controllerオブジェクトへ送出される要求コマンドは「GetDMAStatus()」である。DMA_Controllerオブジェクトは、DMAの状態を表すDMAステータス(ST11)をBusArbiterオブジェクトへ返す(iRA5)。これにより、BusArbiterオブジェクトは、現在のDMAの状態を把握することができる(iRA6)。そこで、BusArbiterオブジェクトは、DMAの状態からアービトレーションのサイクル数を決定し、これを読み出しにかかったアクセスサイクル数に上乗せし、読出データおよび上乗せ後のアクセスサイクル数のデータ(AS12)をI−BUSオブジェクトへ送出する(iRA7)。
図4は、データバス・リードアクセスのシーケンス図である。上段はオブジェクト名を示している。図4を参照すると、MIPSオブジェクトは、データリードアクセスをD−BUSオブジェクトに向けて発行する(dRA1)。このときD−BUSオブジェクトへ送出される要求コマンドは「ReadBus()」である。D−BUSオブジェクトは、所定のアドレス変換を行った後、データ読出要求をBusArbiterオブジェクトに向けて送出する(dRA2)。このときBusArbiterオブジェクトへ送出される要求コマンドは「ReadBus()」である。
なお、データバス・リードアクセスにおいても、インストラクションバス・リードアクセスと同様、キャッシュ管理機能を考慮してアクセスサイクル数を上乗せするようにしてもよい。
図5は、データバス・ライトアクセスのシーケンス図である。上段はオブジェクト名を示している。図5を参照すると、MIPSオブジェクトは、データライトアクセスをD−BUSオブジェクトに向けて発行する(dWA1)。このときD−BUSオブジェクトへ送出される要求コマンドは「WriteBus()」である。D−BUSオブジェクトは、所定のアドレス変換を行った後、データ書込要求をBusArbiterオブジェクトに向けて送出する(dWA2)。このときBusArbiterオブジェクトへ送出される要求コマンドは「WriteBus()」である。
また、バスアクセスにかかるサイクル数の要因ごとにブロックを分割し、それぞれのブロックでかかるサイクル数の総和として、そのバスアクセスサイクル数を見積もるようにしたので、見積もり精度が高まるという効果がある。
MIPSのようなRISCプロセッサでは、動作の並列性を高め、見かけ上のインストラクションの実行サイクル数を減らすために、上述したハーバードアーキテクチャのほか、パイプラインをも採用している。パイプラインは、インストラクション動作を適当な段数のフェーズに分け、それぞれフェーズを並列に動作させることで、インストラクションの動作を高速にするものである。MIPSコアの動作をエミュレートするにあたり、このパイプラインの動作をも考慮することで、より確度の高いインストラクション実行の動作サイクル数を見積もり、それを外部に出力することが可能となる。
そこで、ここでは、MIPSオブジェクトのパイプラインをエミュレートし、I−BUS、D−BUSそれぞれのアクセスを独立させ、インストラクションの動作クロック数をより正確に見積もる場合の動作例を説明する。
これらのフェーズはそれぞれ並行に動作するが、前後が関連付けられる。そのため、独走することができない。歩調を合わせる必要がある。つまり、それぞれのフェーズでかかったサイクル数のうち最大のものが、そのときにかかったサイクル数となる。この様子を図6に示す。
また、図6において、i102は、命令#9のインストラクションフェッチが遅れたために、すべてのフェーズがフェッチ完了まで待たされる様子を示している。同じくi103は、命令#9の実行が2サイクル必要となるため、他のフェーズが実行完了まで待たされる様子を示している。
つまり、パイプラインにおけるこれら3つの要素のサイクル数を独立に見積もり、それらのうちサイクル数の最大値をそのときの実行ステップサイクル数とすることで、より確度の高い動作サイクル数を見積もることが可能となる。
MIPSオブジェクト100の内部には、ステップサイクル数保持用レジスタ101、MIPSレジスタブロック102、Fetch処理ブロック103、Decode・Execute処理ブロック104、MemoryAccess処理ブロック105、WriteBack処理ブロック106および各処理ブロック103〜106の処理結果を動作時に一時的に保持するための3つのExecDataオブジェクト113,114,115が存在する。これらのブロック101〜106の動作は、図示しないMIPSオブジェクト100の制御機構により制御される。
MIPSレジスタブロック102は、MIPSのハードウエアレジスタをエミュレートするブロックである。MIPSオブジェクトの「PC」、「Hi」、「Low」および32本の「GPR(汎用レジスタ)」を持つ。「PC」はプログラムカウンタの値、「Hi」および「Low」は固有の値である。
3つのExecDataオブジェクト113,114,115には、それぞれ「PC」、「Inst」、「Decode」、「TReg」、「Result」、「AccessType」のようなメンバが存在する。
「PC」は「Inst」を読み込んだときのアドレスである。「Inst」はインストラクションコードである。「Decode」はインストラクションの解析結果である。Load・Store命令、ターゲットレジスタのブロックは何か(MIPSレジスタ又はコプロセッサレジスタ)、分岐命令か等の判別に用いられる。「TReg」には、Store命令の場合、書き込むデータが格納される。それ以外の場合は、ターゲットレジスタ番号が格納される。「Result」には、Load・Store命令の場合、アクセス対象アドレスが格納される。それ以外の場合は、演算結果データが格納される。「AccessType」には、Load・Store命令の場合、アクセスデータ長もしくはアクセス対象となるコプロセッサの番号が格納される。コプロセッサ命令の場合、アクセス対象となるコプロセッサの番号が格納される。それ以外の場合は、未使用となる。
このWriteBack処理ブロック106は、まず、MIPSレジスタブロック102の「PC」のインクリメントを行う。次に、ExecDataオブジェクト114の「Decode」を参照し、メモリアクセス命令かどうかを判別する。メモリアクセス命令の場合、何も処理をせず、終了する。メモリアクセス命令でない場合、「AccessType」と「TReg」を参照し、どのブロックのどのレジスタを更新するかを判別する。そして、「Result」の値を対象レジスタに更新する。この処理は、MIPSでは、必ず1サイクルで処理が完了するため、特にステップサイクル数保持用レジスタ101を更新する必要はない。
=第1の理由=
パイプライン段数を考慮したものである。パイプラインは、その段数が深いと処理が重くなる。例えば、データハザードを回避するためのフォワーディングなども考慮しなければならなくなる。そのため、なるべく浅い段数で処理した方が得策である。MIPSは、1段の遅延分岐と、1段のロード遅延とを取り入れている。遅延分岐とは、分岐がTaken(分岐が成立)した場合であっても、分岐命令の次の命令は、分岐先の命令ではなく、分岐命令の後ろの命令が実行されるというものである。MIPSでは、後ろの1つの命令が実行される(1段)。また、ロード遅延とは、ロード命令を実行した場合、ロード命令の次の命令では、ロードしてきた値を使用できないが、そのケアはソフトウエアに任せるというものである。この2つを取り入れることのメリットは、ハードウエアの実装がシンプルになり、動作周波数をあげることが可能というものである。
データハザードとフォワーディングを考慮したものである。
例えば以下のような2つの命令があったとする。
$1=$2+$3 (命令1 )
$4=$1+$1 (命令2 )
最初の条件として、$1=0、$2=1、$3=2となっていた場合、$4には、結果として6が入らなければならない。ハードウエアでは、これらの命令が上述の5段のパイプラインを通るが、レジスタファイルに書き出されるのは、Wフェーズである。
命令2がDフェーズに入り、レジスタファイルにアクセスして$1の値を読み出そうとしたとき、命令1はまだEフェーズにあり、Wフェーズにない。そのため、レジスタファイルにある$1は、まだ、0のままである。このまま処理を行うと、$4には0が入る。つまり、この処理を正確に行うためには、命令1がWフェーズに来るまで命令2はDフェーズで待たなければならなくなる。この現象が、データハザードである。このデータハザードを避けるための技術がフォワーディングである。
エミュレータでパイプラインをエミュレートする際、DフェーズとEフェーズとWフェーズを分割、すなわちExecDataオブジェクトを分けて実行すると、同様の問題が発生し、それに対する処理を行う必要が出てくる。
つまり、エミュレータでは、EフェーズとDフェーズとWフェーズを一つの処理として行いたい。これによって、データハザードを考慮する必要がなくなる。
遅延分岐を考慮したものである。遅延分岐をエミュレートするためには、Fフェーズの次のフェーズで分岐の実行が行われればよい。分岐命令の実行は、PCに分岐先のアドレスを書き込むことであり、Wフェーズで実行されるのがシンプルな実装となる。レジスタの値を書き換えるのは、Wフェーズのみというポリシーを維持できるためである。
第2の理由で示したように、DフェーズとEフェーズとWフェーズが一つになれば、Fフェーズの次のサイクルでWフェーズが実行されるため、遅延分岐に関しては、第2の理由と利害が一致する。
ロード遅延を考慮したものである。ロード遅延は、ロード命令の次の命令でのロード対象レジスタのアクセスをハードウエアで保障しないというものである。つまり、ソフトウエアで保障しなければならない。仮に、ロード命令の次の命令に、ロード対象レジスタを参照するような命令がきた場合、ロード命令が実行される前の値が読み出される。このエミュレートは、Dフェーズ及びEフェーズとMフェーズとを分けることで、実装が可能である。ロード命令の次の命令でのロード対象レジスタの上書き命令を考慮したものである。
このような場合、命令の順序は守られなければならない。そのためには、WフェーズはMフェーズの実行後に実行される必要がある。
MIPSオブジェクトで行いたいのは、サイクル数の見積もりである。サイクル数を見積もる上で必要になるのがFフェーズ、Eフェーズ、Mフェーズであることは、前述のとおりである。これらのフェーズは、それぞれが独立に動く必要がある。一方で、DフェーズとWフェーズは、Eフェーズと同時に動くことが望ましい。更に、Wフェーズは、Mフェーズの後に実行されなければならない。そのため、DフェーズはEフェーズと同時に実行させる。また、WフェーズはMフェーズの実行後に実行させなければならないが、仮想ステップとしては、Eフェーズと同時に行う。これにより、DフェーズとEフェーズは一つになり、Wフェーズ用のExecDataオブジェクトは、D/Eフェーズ共通に使用するという方式を採用したものである。以上の各理由から、本実施形態では、D/Eフェーズの処理を一つにまとめ、WフェーズのExecDataオブジェクトは、D/Eフェーズのものと共有することとした。
命令の順番は、当然、ハードウエアと同様にしなければならないため、以下の4つのステップでパイプラインをエミュレートすることになる。
Fetch→Decode&Execute→Memory→WriteBackおよびPCの更新
ORI $r1, $r0, 0x300
LW $r2, 0($r1)
ADDI $r1, $r1, 4
LW $r3, 0($r1)
その後、バスアクセスにかかったサイクル数をステップ実行サイクル数とする(ここでは、仮に「5」であったとする)。その結果、ステップ実行サイクル数は「1」から「5」に更新される(図11(a))。
Dフェーズでは、D・E/Wフェーズ用のExecDataオブジェクト114の「Inst」を読み込み、デコードする。現時点では「Inst」は空なので、無処理、実行サイクル数は「1」とする。ステップ実行サイクル数「5」と比較して小さいので、更新しない。
Mフェーズでは、Mフェーズ用のExecDataオブジェクト115の「Decode」を読み込み、メモリアクセスの有無を確認する。現時点では「Decord」は空なので無処理、実行サイクル数は「1」とする。ステップ実行サイクル数「5」と比較して小さいので、更新しない。Wフェーズでは、MIPSレジスタブロック102の「PC」に「4」を加算し、結果を更新する(図11(b))。この処理では、メモリアクセス以外の命令かどうかをチェックする。現時点では「Inst」は空なので無処理となる。ここで、次のステップに進むために、各ExecDataオブジェクト113〜115の関連をシフトさせる。つまり、Fフェーズ用のExecDataオブジェクト113の内容がD・E/Wフェーズ用のExecDataオブジェクト114にシフトする(図12(a))。
以上のエミュレート動作の結果、各フェーズでの実行サイクル数は、図20(a)に示されるように、Fフェーズの処理に引っ張られ、動作サイクル数は「5」、つまりステップサイクル数保持レジスタ101に格納されている値となる。
以上のエミュレート動作の結果、各フェーズでの実行サイクル数は、図21(b)に示されるように、すべてのフェーズの処理が「1」で完了したため、この場合のステップサイクル数保持レジスタ101に格納される値は「1」となる。
以上のエミュレート動作の結果、各フェーズでの実行サイクル数は、図20(c)に示されるように、すべてのフェーズの処理が「1」で完了したため、この場合のステップサイクル数保持レジスタ101に格納される値は「1」となる。
以上のエミュレート動作の結果、各フェーズでの実行サイクル数は、図20(d)に示されるように、Mフェーズの処理に引っ張られ、動作サイクル数は「5」となる。
なお、本実施形態および実施例では、オブジェクト指向ツールを用いてエミュレータを構成した場合の例を示したが、本発明は、必ずしもこのようなツールによってのみ実施されるものではない。例えば、ソフトウエアエミュレータとして実施する場合のほか、エミュレータの一部の機能をソフトウエアとし、残部をハードウエアにより構成することもできる。
11 バスブリッジ
12 バスブリッジ
13 CPU
14 コプロセッサ
15 DMAコントローラ
16〜19 内部ペリフェラルブロック
20 システムメモリ
30 GPU
40,50外部ペリフェラルIC
B1 内部バス
B2 外部バス
100 MIPSオブジェクト
101 ステップサイクル数保持用レジスタ
102 MIPSレジスタブロック
103 Fetch処理ブロック
104 Decode・Execute処理ブロック
105 MemoryAccess処理ブロック
106 WriteBack処理ブロック
113,114,115 ExecDataオブジェクト
Claims (10)
- 第1コンピュータのプロセッサ、前記プロセッサおよびペリフェラルが接続されるバス、並びに前記バスのアクセス権を調停するための調停手段の機能を、第2コンピュータにおいてそれぞれソフトウエアにより形成する段階と、
前記ソフトウエアにより形成された前記プロセッサが、前記バスに接続されたペリフェラルに向けて所定の要求を発行する段階と、
前記ソフトウエアにより形成された調停手段が、前記バスに発行された前記要求を前記ペリフェラルに送出するとともに、該ペリフェラルから当該要求の遂行に要した実質時間を表すデータを受け取り、受け取った前記データを前記プロセッサへ送出する段階と、
前記データを受け取った前記プロセッサが、当該データが表す実質時間に応じて自己の仮想動作タイミングを制御する段階とを含む、
エミュレーション方法。 - 前記調停手段が、前記バスに対する前記プロセッサのアクセスの一部を制限する制限手段との調停を行うとともに、該調停に要した実質時間を前記ペリフェラルから受け取ったデータが表す実質時間に加算し、加算したバスアクセスサイクル数のデータを前記プロセッサへ送出する、
請求項1記載のエミュレーション方法。 - 前記制限手段が、前記プロセッサとの間で前記バスに対するアクセス権をとりあうDMA(ダイレクト・メモリ・アクセス)機能ブロックである、
請求項2記載のエミュレーション方法。 - 前記第1コンピュータのキャッシュメモリと、前記キャッシュメモリにおけるヒット又はミスの判定を行うとともに、この判定結果に応じて前記加算した実質時間にさらに加算すべき実質時間を決定するキャッシュ管理手段とを、
さらにソフトウエアにより形成する、
請求項2記載のエミュレーション方法。 - 前記実質時間が、前記第1コンピュータの仮想動作タイミングを決定するバスアクセスサイクル数である、
請求項4記載のエミュレーション方法。 - 自己とは異なる第1コンピュータが有する複数のハードウエア資源の機能をソフトウエアにより実現するエミュレータであって、
前記第1コンピュータのプロセッサに対応して形成されるプロセッサオブジェクトと、
前記第1コンピュータのペリフェラルに対応して形成されるペリフェラルオブジェクトと、
前記プロセッサおよび前記ペリフェラルが接続されるバスに対応して形成されるバスオブジェクトと、
前記バスオブジェクトへのアクセスを調停するための調停手段とを備えており、
前記ペリフェラルオブジェクトおよび前記調停手段は、それぞれ自己に要求された命令の遂行に要した実質時間を該命令の要求元に返送する機能を有しており、
前記プロセッサオブジェクトは、前記調停手段の調停によりアクセスが許容された前記バスオブジェクトに接続されているペリフェラルオブジェクトに向けて前記要求を発行するとともに、該要求の結果を受け取るまでの実質時間に応じて自己の仮想動作タイミングを制御する機能を有している、
エミュレータ。 - 前記プロセッサとの間でバスのアクセス権をとりあうDMAコントローラに対応して形成されるDMAコントローラオブジェクトをさらに備えており、
前記調停手段は、前記DMAコントローラオブジェクトとの調停を行い、この調停に要した実質時間を自己が返信する前記実質時間に加算する、
請求項6記載のエミュレータ。 - 前記第1コンピュータのキャッシュメモリおよび自己に要求された命令の遂行に要した実質時間を前記プロセッサオブジェクトに返送する機能を有するキャッシュ管理手段に対応して形成されるキャッシュ管理手段をさらに備えており、
前記キャッシュ管理手段は、さらに、前記キャッシュメモリにおけるヒット又はミスの判定を行うとともに、この判定結果に応じて前記プロセッサオブジェクトに返送すべき実質時間にさらに加算すべき実質時間を決定する、
請求項7記載のエミュレータ。 - 第1コンピュータが有するプロセッサ、前記プロセッサおよびペリフェラルが接続されるバス、並びに前記バスのアクセス権を調停するための調停手段の機能を、第2コンピュータにおいて実現するためのデバイスであって、
前記第2コンピュータに組み込まれたときに当該第2コンピュータのハードウエア資源との協働により、当該第2コンピュータに、
前記第1コンピュータのプロセッサに対応して形成されるプロセッサオブジェクトと、
前記第1コンピュータのペリフェラルに対応して形成されるペリフェラルオブジェクトと、
前記プロセッサおよび前記ペリフェラルが接続されるバスに対応して形成されるバスオブジェクトと、
前記バスオブジェクトへのアクセスを調停するための調停手段とを形成し、
前記ペリフェラルオブジェクトおよび前記調停手段には、それぞれ自己に要求された命令の遂行に要した実質時間を該命令の要求元に返送する機能を与え、
前記プロセッサオブジェクトには、前記調停手段の調停によりアクセスが許容された前記バスオブジェクトに接続されているペリフェラルオブジェクトに向けて前記要求を発行するとともに、該要求の結果を受け取るまでの実質時間に応じて前記第2コンピュータにおける仮想動作タイミングを制御する機能を与えるように構成されている、
コンピュータ組込型のデバイス。 - コンピュータを、自己とは異なる第1コンピュータが有する複数のハードウエア資源の機能をソフトウエアにより実現するエミュレータとして動作させるためのエミュレータ用プログラムであって、
前記コンピュータを、
前記第1コンピュータのプロセッサに対応して形成されるプロセッサオブジェクト、
前記第1コンピュータのペリフェラルに対応して形成されるペリフェラルオブジェクト、
前記プロセッサおよび前記ペリフェラルが接続されるバスに対応して形成されるバスオブジェクト、
前記バスオブジェクトへのアクセスを調停するための調停手段として機能させ、
前記ペリフェラルオブジェクトおよび前記調停手段には、それぞれ自己に要求された命令の遂行に要した実質時間を該命令の要求元に返送する機能を与え、
前記プロセッサオブジェクトには、前記調停手段の調停によりアクセスが許容された前記バスオブジェクトに接続されているペリフェラルオブジェクトに向けて前記要求を発行するとともに、該要求の結果を受け取るまでの実質時間に応じて自己の仮想動作タイミングを制御する機能を与える、
エミュレータ用プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005231528A JP2007048019A (ja) | 2005-08-10 | 2005-08-10 | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム |
US11/498,046 US20070038435A1 (en) | 2005-08-10 | 2006-08-03 | Emulation method, emulator, computer-attachable device, and emulator program |
CN200610114917XA CN1912838B (zh) | 2005-08-10 | 2006-08-10 | 仿真方法、仿真器、计算机可连接设备及仿真器程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005231528A JP2007048019A (ja) | 2005-08-10 | 2005-08-10 | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007048019A true JP2007048019A (ja) | 2007-02-22 |
Family
ID=37721779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005231528A Pending JP2007048019A (ja) | 2005-08-10 | 2005-08-10 | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2007048019A (ja) |
CN (1) | CN1912838B (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521365B2 (en) * | 2014-10-05 | 2019-12-31 | Amazon Technologies, Inc. | Emulated endpoint configuration |
CN116401184A (zh) * | 2016-01-22 | 2023-07-07 | 索尼互动娱乐股份有限公司 | 模拟向后兼容的传统总线行为 |
CN106354549A (zh) * | 2016-10-08 | 2017-01-25 | 深圳市讯方技术股份有限公司 | 一种仿真实验方法及虚拟仿真系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05233277A (ja) * | 1992-02-21 | 1993-09-10 | Fujitsu Ltd | マイクロプロセッサ |
JPH06348530A (ja) * | 1992-12-22 | 1994-12-22 | Sony Electron Inc | コンピュータシステムの開発、検証、および、試験を遂行する可搬的方法とその装置 |
JPH07160537A (ja) * | 1993-12-03 | 1995-06-23 | Matsushita Electric Ind Co Ltd | シミュレータ |
JPH11282693A (ja) * | 1998-03-30 | 1999-10-15 | Toshiba Corp | Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2003216678A (ja) * | 2001-04-06 | 2003-07-31 | Pacific Design Kk | データ処理システムおよび設計システム |
JP2005135436A (ja) * | 2000-10-17 | 2005-05-26 | Nec Corp | 電子回路と制御プログラムとのコバリデーション方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205414B1 (en) * | 1998-10-02 | 2001-03-20 | International Business Machines Corporation | Methodology for emulation of multi-threaded processes in a single-threaded operating system |
EP1102163A3 (en) * | 1999-11-15 | 2005-06-29 | Texas Instruments Incorporated | Microprocessor with improved instruction set architecture |
US6675289B1 (en) * | 2000-06-30 | 2004-01-06 | Broadcom Corporation | System and method for executing hybridized code on a dynamically configurable hardware environment |
US6665795B1 (en) * | 2000-10-06 | 2003-12-16 | Intel Corporation | Resetting a programmable processor |
-
2005
- 2005-08-10 JP JP2005231528A patent/JP2007048019A/ja active Pending
-
2006
- 2006-08-10 CN CN200610114917XA patent/CN1912838B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05233277A (ja) * | 1992-02-21 | 1993-09-10 | Fujitsu Ltd | マイクロプロセッサ |
JPH06348530A (ja) * | 1992-12-22 | 1994-12-22 | Sony Electron Inc | コンピュータシステムの開発、検証、および、試験を遂行する可搬的方法とその装置 |
JPH07160537A (ja) * | 1993-12-03 | 1995-06-23 | Matsushita Electric Ind Co Ltd | シミュレータ |
JPH11282693A (ja) * | 1998-03-30 | 1999-10-15 | Toshiba Corp | Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2005135436A (ja) * | 2000-10-17 | 2005-05-26 | Nec Corp | 電子回路と制御プログラムとのコバリデーション方法 |
JP2003216678A (ja) * | 2001-04-06 | 2003-07-31 | Pacific Design Kk | データ処理システムおよび設計システム |
Also Published As
Publication number | Publication date |
---|---|
CN1912838B (zh) | 2010-10-06 |
CN1912838A (zh) | 2007-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6243935B2 (ja) | コンテキスト切替方法及び装置 | |
JP5787629B2 (ja) | マシンビジョン用マルチプロセッサシステムオンチップ | |
US9830158B2 (en) | Speculative execution and rollback | |
US7617384B1 (en) | Structured programming control flow using a disable mask in a SIMD architecture | |
EP2483772B1 (en) | Trap handler architecture for a parallel processing unit | |
JP2012038293A5 (ja) | ||
US20130198760A1 (en) | Automatic dependent task launch | |
US9921873B2 (en) | Controlling work distribution for processing tasks | |
US9395997B2 (en) | Request coalescing for instruction streams | |
US5896517A (en) | High performance processor employing background memory move mechanism | |
JP2018519587A (ja) | 構成可能メールボックスデータバッファ装置 | |
CN114579188A (zh) | 一种risc-v向量访存处理系统及处理方法 | |
JP2007157146A (ja) | メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 | |
US10152329B2 (en) | Pre-scheduled replays of divergent operations | |
Leibson et al. | Configurable processors: a new era in chip design | |
CN108958903B (zh) | 嵌入式多核中央处理器任务调度方法与装置 | |
JP2007048019A (ja) | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム | |
US10802828B1 (en) | Instruction memory | |
Asokan | Designing multiprocessor systems in platform studio | |
US7155718B1 (en) | Method and apparatus to suspend and resume on next instruction for a microcontroller | |
US7552269B2 (en) | Synchronizing a plurality of processors | |
US20120151153A1 (en) | Programmable Controller | |
US20070038435A1 (en) | Emulation method, emulator, computer-attachable device, and emulator program | |
US7389405B2 (en) | Digital signal processor architecture with optimized memory access for code discontinuity | |
US10803007B1 (en) | Reconfigurable instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100223 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100714 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100818 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20101125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110106 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110303 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110628 |