JP2007048020A - エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム - Google Patents
エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム Download PDFInfo
- Publication number
- JP2007048020A JP2007048020A JP2005231529A JP2005231529A JP2007048020A JP 2007048020 A JP2007048020 A JP 2007048020A JP 2005231529 A JP2005231529 A JP 2005231529A JP 2005231529 A JP2005231529 A JP 2005231529A JP 2007048020 A JP2007048020 A JP 2007048020A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- pipeline
- cycle number
- phase
- instruction
- 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
- Advance Control (AREA)
Abstract
【解決手段】
MIPSコアに対応するMIPSオブジェクト102と、パイプラインに対応してその前後が関連付けられ、MIPSオブジェクト102の制御に従ってそれぞれ並列かつ独立に動作可能な複数段の処理ブロック103〜106と、入力されたインストラクションのステップ毎に、複数段の処理ブロック103〜106のうち最も動作した処理ブロックの動作サイクル数を保持するステップサイクル数保持用レジスタ101とを備えてエミュレータを構成する。MIPSオブジェクト102は、ステップサイクル数保持用レジスタ101に保持されている動作サイクル数を当該ステップにおけるパイプラインの実行ステップサイクル数として出力する。
【選択図】 図7
Description
そのため、パイプライン動作するプロセッサを有するコンピュータをエミュレートしたときに、エミュレート後のプログラムの動作タイミングの調節が非常に難しいという問題があった。
本発明の他の課題は、エミュレーション方法を好適に実施することができるエミュレータ、コンピュータ組込型のデバイス、ならびに、このエミュレータをコンピュータ上で実行させるためのエミュレータ用プログラムを提供することにある。
次に、対象システムをエミュレートする本発明のエミュレータの構成例を説明する。
本発明のエミュレータは、エミュレータ用プログラムと、メモリを有するコンピュータないしコンピュータシステムとの協働により実現される。すなわち、エミュレートしようとするコンピュータ等(以下、「第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 (7)
- インストラクションをパイプラインにより実行するプロセッサの機能をエミュレートする方法であって、
その前後が関連付けられた複数段の処理ブロックにより前記パイプラインを構成し、各処理ブロックを、前記プロセッサに対応するプロセッサオブジェクトが並列かつ独立に動作可能にする過程と、
前記プロセッサオブジェクトが、前記インストラクションを前記複数段の処理ブロックに入力する過程と、
前記インストラクションのステップ毎に、前記複数段の処理ブロックのうち動作した処理ブロックが、動作する度に増加する動作サイクル数を保持する過程と、
前記保持されている動作サイクル数の最大値を当該ステップにおける前記パイプラインの実行ステップサイクル数として出力する過程とを含む、
エミュレーション方法。 - 前記複数段の処理ブロックがアクセス可能なレジスタを設け、いずれかの処理ブロックが前記レジスタに自己の動作サイクル数を保持するとともに、既に保持されている動作サイクル数よりも多く動作した処理ブロックが、前記レジスタに保持されている動作サイクル数を自己の動作サイクル数に更新する、
請求項1記載のエミュレーション方法。 - インストラクションをパイプラインにより実行するプロセッサの動作をエミュレートするエミュレータであって、
前記プロセッサに対応するプロセッサオブジェクトと、
前記パイプラインに対応してその前後が関連付けられ、前記プロセッサオブジェクトの制御に従ってそれぞれ並列かつ独立に動作可能な複数段の処理ブロックと、
入力された前記インストラクションのステップ毎に、前記複数段の処理ブロックのうち最も動作した処理ブロックの動作サイクル数を保持するサイクル数保持手段とを備えており、
前記プロセッサオブジェクトは、前記サイクル数保持手段に保持されている動作サイクル数を当該ステップにおける前記パイプラインの実行ステップサイクル数として出力する、
エミュレータ。 - 前記プロセッサオブジェクトは、前記インストラクションの最初のステップでは前記サイクル数保持手段に保持される動作サイクル数を初期値にセットするとともに、各段の処理ブロックが動作する度に、動作した処理ブロックの動作サイクル数が既に前記サイクル数保持手段に保持されている動作サイクル数よりも大きいかどうかを判定し、大きいときに前記サイクル数保持手段に保持されている動作サイクル数を更新可能にする、
請求項3記載のエミュレータ。 - 前記複数段の処理ブロックは、動作サイクル数が前記インストラクションに関わらず固定となる処理ブロックを含む、
請求項3記載のエミュレータ。 - インストラクションをパイプラインにより実行するプロセッサの機能を前記プロセッサが搭載されたものと異なる装置においてエミュレートするためのデバイスであって、
前記装置に組み込まれたときに当該装置のハードウエア資源との協働により、
当該装置に、
前記プロセッサに対応するプロセッサオブジェクトと、
前記パイプラインに対応してその前後が関連付けられ、前記プロセッサオブジェクトの制御に従ってそれぞれ並列かつ独立に動作可能な複数段の処理ブロックと、
入力された前記インストラクションのステップ毎に、前記複数段の処理ブロックのうち最も動作した処理ブロックの動作サイクル数を保持するサイクル数保持手段とを形成し、
前記プロセッサオブジェクトに、前記サイクル数保持手段に保持されている動作サイクル数を当該ステップにおける前記パイプラインの実行ステップサイクル数として出力させる、
コンピュータ組込型デバイス。 - コンピュータを、インストラクションをパイプラインにより実行するプロセッサの動作をエミュレートするエミュレータとして動作させるためのプログラムであって、
前記コンピュータを、
前記プロセッサに対応するプロセッサオブジェクト;
前記パイプラインに対応してその前後が関連付けられ、前記プロセッサオブジェクトの制御に従ってそれぞれ並列かつ独立に動作可能な複数段の処理ブロック;
入力された前記インストラクションのステップ毎に、前記複数段の処理ブロックのうち最も動作した処理ブロックの動作サイクル数を保持するサイクル数保持手段;として動作させ、
前記プロセッサオブジェクトに、前記サイクル数保持手段に保持されている動作サイクル数を当該ステップにおける前記パイプラインの実行ステップサイクル数として出力させる、
エミュレータ用プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005231529A JP2007048020A (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 |
---|---|---|---|
JP2005231529A JP2007048020A (ja) | 2005-08-10 | 2005-08-10 | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007048020A true JP2007048020A (ja) | 2007-02-22 |
Family
ID=37850793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005231529A Pending JP2007048020A (ja) | 2005-08-10 | 2005-08-10 | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007048020A (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11238004A (ja) * | 1998-02-20 | 1999-08-31 | Ricoh Co Ltd | システムシミュレータ |
JP2003216678A (ja) * | 2001-04-06 | 2003-07-31 | Pacific Design Kk | データ処理システムおよび設計システム |
JP2004206699A (ja) * | 2002-12-12 | 2004-07-22 | Matsushita Electric Ind Co Ltd | シミュレーション装置、シミュレーション方法及びプログラム |
JP2005135436A (ja) * | 2000-10-17 | 2005-05-26 | Nec Corp | 電子回路と制御プログラムとのコバリデーション方法 |
-
2005
- 2005-08-10 JP JP2005231529A patent/JP2007048020A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11238004A (ja) * | 1998-02-20 | 1999-08-31 | Ricoh Co Ltd | システムシミュレータ |
JP2005135436A (ja) * | 2000-10-17 | 2005-05-26 | Nec Corp | 電子回路と制御プログラムとのコバリデーション方法 |
JP2003216678A (ja) * | 2001-04-06 | 2003-07-31 | Pacific Design Kk | データ処理システムおよび設計システム |
JP2004206699A (ja) * | 2002-12-12 | 2004-07-22 | Matsushita Electric Ind Co Ltd | シミュレーション装置、シミュレーション方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8312254B2 (en) | Indirect function call instructions in a synchronous parallel thread processor | |
US9830158B2 (en) | Speculative execution and rollback | |
US7617384B1 (en) | Structured programming control flow using a disable mask in a SIMD architecture | |
US9195786B2 (en) | Hardware simulation controller, system and method for functional verification | |
JP5787629B2 (ja) | マシンビジョン用マルチプロセッサシステムオンチップ | |
JP5035277B2 (ja) | 共有メモリに対するアトミックな更新を可能にするロックメカニズム | |
EP2483772B1 (en) | Trap handler architecture for a parallel processing unit | |
WO2012068494A2 (en) | Context switch method and apparatus | |
JP2012038293A5 (ja) | ||
EP2480979A1 (en) | Unanimous branch instructions in a parallel thread processor | |
US20130198759A1 (en) | Controlling work distribution for processing tasks | |
US9395997B2 (en) | Request coalescing for instruction streams | |
US8572355B2 (en) | Support for non-local returns in parallel thread SIMD engine | |
US20200319893A1 (en) | Booting Tiles of Processing Units | |
CN114579188A (zh) | 一种risc-v向量访存处理系统及处理方法 | |
JP4130465B2 (ja) | メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 | |
JP2007048019A (ja) | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム | |
US7155718B1 (en) | Method and apparatus to suspend and resume on next instruction for a microcontroller | |
US20080172507A1 (en) | Methods and Apparatus for Synchronizing a Plurality of Processors | |
US20070038435A1 (en) | Emulation method, emulator, computer-attachable device, and emulator program | |
JP2007048020A (ja) | エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム | |
JPH0384632A (ja) | データ処理装置 | |
JP2668987B2 (ja) | データ処理装置 | |
JP7137058B2 (ja) | 演算処理装置、情報処理装置及び情報処理装置の制御方法 | |
US20070288675A1 (en) | Bus system, bus slave and bus control method |
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: 20100225 |
|
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 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110426 |