JP2012502340A - 分岐オーバーライドを用いたプロセッサ実行のシミュレーション - Google Patents

分岐オーバーライドを用いたプロセッサ実行のシミュレーション Download PDF

Info

Publication number
JP2012502340A
JP2012502340A JP2011525640A JP2011525640A JP2012502340A JP 2012502340 A JP2012502340 A JP 2012502340A JP 2011525640 A JP2011525640 A JP 2011525640A JP 2011525640 A JP2011525640 A JP 2011525640A JP 2012502340 A JP2012502340 A JP 2012502340A
Authority
JP
Japan
Prior art keywords
branch
processor
execution
instruction
guidance
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
Application number
JP2011525640A
Other languages
English (en)
Other versions
JP5514211B2 (ja
Inventor
ウォルカー、アントニー、ディーン
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2012502340A publication Critical patent/JP2012502340A/ja
Application granted granted Critical
Publication of JP5514211B2 publication Critical patent/JP5514211B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

プロセッサシミュレーション環境は、ターゲットプロセッサの特性に従ってプロセッサ命令の実行をシミュレーションするプロセッサ実行モデルと、分岐オーバーライドロジックとを含む。プロセッサ実行モデルは、分岐命令をデコードすると、分岐オーバーライドロジックからの分岐案内を要求する。この要求に応答し、分岐オーバーライドロジックは分岐評価を解決する分岐案内を供給する。この要求は分岐命令アドレスを含んでもよい。分岐オーバーライドロジックは、分岐命令アドレスを用い、ターゲットプロセッサと互換性のあるプロセッサにより実行された命令の実行トレースを索引してもよい。分岐案内は、命令トレースから得られる、または、分岐オーバーライドロジックにより判断されるオーバーライド分岐ターゲットアドレスを含んでもよい。この方法により、複雑なI/Oがモデル化されていないシミュレーション環境において正確なプログラム実行指令がシミュレーションされる。
【選択図】図1

Description

本発明は、概してプロセッサのシミュレーションに関し、特に、分岐オーバーライドロジックにより分岐命令を解決するシミュレーション方法に関する。
に関する。
プロセッサ設計のシミュレーションは当該技術分野で良く知られている。実際、新たなプロセッサの設計には大規模なシミュレーションが不可欠である。シミュレーションは、ターゲットプロセッサの構成機能ユニットの特性の定量化によりターゲットプロセッサをモデリングし、それらの特性を相互に関連付けることにより、具現されるモデル(すなわち、関連特性の和)が実際のプロセッサの挙動に忠実な表現(close representation)を提供する。
ある既知のシミュレーション方法は、HDL(Hardware Description Language)構成または統合(synthesis)に続くそれらのゲートレベル実現(gate−level realizations)のような、システム要素のハードウェアアキュレートモデルを提供し、実際のデバイス状態および要素間を通る信号をシミュレーションする。これらのシミュレーションは、高精度である一方、比較的遅く、コンピュータ的な要求が厳しく、ハードウェアアキュレートモデルが開発される場合に設計プロセスにおいてのみ行われ得る。したがって、それらは、構造上のトレードオフやベンチマークパフォーマンスなどを明らかにするのに有用な早期シミュレーションには不向きである。
より効率的なシミュレーション方法は、上位レベル、ハードウェア機能ユニットのサイクルアキュレートモデル、およびトランザクション指向メッセージングシステムを介するそれらの相互作用モデルを提供する。メッセージングシステムは、各クロックサイクルを「update」フェーズと「communicate」フェーズに区分することにより、リアルタイム処理をシミュレーションする。サイクルアキュレート機能は、実際の機能ユニットの挙動をシミュレーションするために、適切なupdateフェーズにおいてシミュレーションされる。内部要素信号は、サイクルアキュレートシステム処理を達成するためにcommunicateフェーズに割り当てられる。シミュレーション精度は、機能ユニットモデルが正確に実際のユニットを機能的に反映させる程度、および内部要素を正確に段階分けする程度に依存する。高精度な機能ユニットモデルは、プロセッサのような複雑なシステムであっても、当該技術分野で既知であり、多くのアプリケーションにおける実世界のハードウェア成果に高精度に合致するシミュレーションを産出する。
しかし、機能ユニット精度は、プロセッサのような複雑なシステムの十分に忠実なシミュレーションを得るための試みの一部に過ぎない。有意義なシミュレーションは、さらに、命令実行オーダー(order)のような、プロセッサ上の正確なアクティビティモデリングを必要とする。多くのアプリケーションにおいて、プロセッサアクティビティは、プロセッサモデル上の関連プログラムを単に実行することにより正確にモデル化される。しかし、通常、特にリアルタイムプロセッサシステムをモデル化する場合、これは不可能である。例えば、入出力(I/O)挙動は重要な調査領域であり得るが、実際のI/O環境は、実際のI/Oモデルの開発を不可能または非現実的と表現するに足りるほど複雑である。これは、移動通信装置のような多くの通信型システム(communication−oriented system)についての状況である。
プロセッサシミュレーション精度の重要な観点は、命令実行オーダーである。実世界の全てのプログラムは条件付き分岐命令を含み、その評価(evaluation)はランタイムまで分からない。実際、多くのケースにおいて、プロセッサパイプラインにおいて深い実行ステージで命令が評価されるまで、分岐評価は起こらない。パイプラインの行き詰まり(stall)、すなわち、分岐条件が評価されるまでの実行停止を防ぐため、最近のプロセッサは高度な分岐予測技術を利用する。条件付き分岐命令の評価は、命令がデコードされたときに過去の分岐挙動および/または他の基準に基づいて予測され、予測に基づき命令読出しが続けられる。すなわち、分岐が実行と予測された場合、分岐ターゲットアドレス(事前にまたは動的に得られる)から命令が読みだされる。分岐が非実行と予測された場合、命令読出しは順番に(分岐命令アドレスに続くアドレスで)進められる。誤って予測されたブランチは、正しい命令が読み出された一方で、行き詰まりと同様に、パイプの誤って読み出された命令をクリアするためのパイプラインフラッシュを必要とし、実行速度および消費電力に双方に悪影響を与える。このため、正確な分岐予測はプロセッサパフォーマンスの重要な観点であり、それ故に、プロセッサシミュレーションにおける熱烈な関心領域である。しかし、多くの分岐条件の解を決定するI/O環境はシミュレーションにおいて正確にモデル化するには複雑すぎるであろう。
プロセッサシミュレーション環境は、ターゲットプロセッサの特性に従ってプロセッサ命令の実行をシミュレーションするプロセッサ実行モデルと、分岐オーバーライドロジックとを含む。プロセッサ実行モデルは、分岐命令をデコードすると、分岐オーバーライドロジックからの分岐案内を要求する。この要求に応答し、分岐オーバーライドロジックは分岐評価を解決する分岐案内を供給する。この要求および分岐案内は多様な形態をとることができる。ある実施形態では、シミュレーション中の分岐命令のアドレス、および、オプションで、予測された分岐ターゲットアドレスを含む。分岐オーバーライドロジックは、分岐命令アドレスを用い、ターゲットプロセッサと互換性のあるプロセッサにより実行された命令の実行トレースを索引してもよい。分岐案内は、命令トレースから得られる、または、分岐オーバーライドロジックにより判断されるオーバーライド分岐ターゲットアドレスを含んでもよい。この方法により、複雑なI/Oがモデル化されていないシミュレーション環境において正確なプログラム実行指令がシミュレーションされる。
プロセッサシミュレーション環境の機能ブロック図である。 プロセッサ実行のシミュレーション方法のフロー図である。
図1は、プロセッサ実行モデル12を含むプロセッサシミュレーション環境10を示す。プロセッサ実行モデル12は、ターゲットプロセッサの特性に従い命令の実行をシミュレーションする。ターゲットプロセッサは、既存のプロセッサであってもよいし、開発中の新たなプロセッサであってもよい。プロセッサ実行モデル12は、IU(Instruction Unit)、FPU(Floating Point Unit)、MMU(Memory Management Unit)などのターゲットプロセッサ内の1または2以上の機能ユニットのハードウェアアキュレートモデルを有する。代わりに、または追加的に、サイクルアキュレートモデルにより、ゼロシミュレーションタイムデータおよび/または機能ユニットモデル間を通るパラメータと共に1または2以上の機能ユニットがモデル化されてもよい。通常、プロセッサ実行モデル12は、当該技術分野で既知のどのようなプロセッサシミュレーションモデルを含み得る。
プロセッサ実行(execution)モデル12は、命令ストア14から読み出された命令の実行によりターゲットプロセッサの動作をシミュレーションする。命令ストア14は、自身がI−cache(Instruction cache)のようなメモリ機能のシミュレーションモデルで構成されてもよい。または、命令ストア14は、単純に、メモリに読み出され、ターゲットプロセッサにより実行され得る、コンパイラー/リンカー(compiler/linker)により生成されたオブジェクトモデルにあるような命令のシーケンシャルリストからなってもよい。ある実施形態では、プロセッサ実行モデル12は、命令アドレス(IA)16の提供により、命令ストア14から1または2以上の命令をフェッチ’fetch)する。そして、命令ストア14は、1または2以上の対応する命令18をプロセッサ実行モデル12に提供する。
多様な実施形態において、プロセッサシミュレーション環境10はさらにメモリのシミュレーションモデル20および入出力機能(I/O)24などを要求または要望に応じて有してもよい。例えば、メモリモデル20は1または2以上のキャッシュとして実装されてもよい。I/Oモデル24は、UART、パラレルポート、USBインタフェースまたは他のI/O機能をエミュレートしてもよい。プロセッサシミュレーション環境10は、さらに、グラフィックプロセッサ、暗号化エンジン、データ圧縮エンジン、などの(図示せず)他のシミュレーションモデル、または他の回路へのインタフェースモデルを含んでもよい。
あるケースでは、プロセッサシミュレーション環境10は、プロセッサ実行モデル12の意義のあるシミュレーションを保証するために十分に高度なI/Oモデルを提供できない。例えば、ターゲットプロセッサは無線通システム移動端末に配置される。無線通信システムとの複雑で動的な移動端末(およびそのプロセッサ)の相互作用は正確にシミュレーションできない。しかし、移動端末に配置された場合のターゲットプロセッサのパフォーマンスは重要であるので、開発者は、その環境において多くの観点からのその動作をシミュレーションできるべきである。
特に、直接的かつ深刻にパフォーマンスに影響を与えるある観点によるターゲットプロセッサの動作は、プログラム実行パス、すなわち、分岐命令の動的な解決である。本発明の1または2以上の実施形態によれば、分岐オーバーライドロジック26により既知または望まれる分岐命令の挙動がプロセッサ実行モデル12に与えられる。分岐オーバーライドロジック26は、条件付き分岐命令にプロセッサ実行モデル12が直面したときにプロセッサ実行モデル12から分岐案内の要求28を受信する。これに応答して、分岐オーバーライドロジック26は、プロセッサ実行モデル12に分岐評価の解(すなわち、実行(taken)、または非実行(not taken))を示す分岐案内30を提供する。
分岐オーバーライドロジック26は、分岐案内30をいくつかの方法により得ることができる。例えば、分岐オーバーライドロジック26は、実行トレース(execution trace)に記憶されている、関心対象のI/O条件(無線通信に参加中のような)下にある異なるプロセッサ(ターゲットプロセッサの旧バージョンのような)により実際に実行された命令を分析してもよい。または、分岐オーバーライドロジック26は、ランダム、その環境の情報およびコードの解析に基づく分岐評価を行うか否かの所定の確率分布のような、多様なアルゴリズムに従い、プログラムおよびI/O環境の動的な解析により、または他のアプローチにより、分岐案内30を算出してもよい。この場合、ターゲットI/O環境を正確にシミュレーションできなくても、有意義なシミュレーションおよびプロセッサ実行モデル12の解析が可能である。
プロセッサ実行モデル12からの分岐案内要求28、および分岐オーバーライドロジック26からの分岐案内30は、多様な形式を取ってもよい。例えば、確率テストに関して適切なある実施形態においては、プロセッサ実行モデル12は、要求28としてシンプルに信号をアサート(assert)してもよいし、分岐案内30として1ビットを受信してもよい(例えば、1=taken 0=not taken)。この場合、分岐オーバーライドロジック26は、各個別命令または実行中コードの機能を考慮せず、ある確率分布に従い分岐命令の分岐解決(branch resolution)を制御する。
他の実施形態では、プロセッサ実行モデル12からの分岐案内要求28は、BIA(Branch Instruction Address)、すなわち、シミュレーション実行中の分岐命令のアドレスの形式を取ってもよい。この実施形態では、分岐オーバーライドロジック26は、対応する以前に実行された分岐命令の実際の分岐解を得るために、BIA(およびオプションでオフセット)を用いて実行トレース32を索引(index)する。この実施形態では、分岐オーバーライドロジック26からの分岐案内30は、OBTA(Oberride Branch Target Address)、すなわち、プロセッサ実行モデル12が実行を開始すべき新たな命令のアドレスの形式を取ってもよい。
さらに他の実施形態は、プロセッサ実行モデル12内の分岐予測ロジックのシミュレーションに特に適しており、プロセッサ実行モデル12からの分岐案内要求28は、BIAおよび予測BTA(Branch Target Address)の双方を含んでもよい。この実施形態では、分岐オーバーライドロジック26からの分岐案内30は、分岐予測精度を示す1ビットからなってもよい(例えば、1=正確な予測 0=不正確な予測)。分岐オーバーライドロジック26は、分岐予測精度を算出してもよいし、BIAを用い、実行トレース32内の対応する分岐命令の実際の分岐解との比較によりそれを確かめてもよい。または、分岐オーバーライドロジック26は、分岐案内30をOBTAの形式で提供してもよい。OBTAは、非実行分岐案内30に関しては適切にインクリメントされたBIA、実行分岐案内30に関してはBTAであってもよい。なお、BTAは、プロセッサ実行モデル12による算出通りの予測された実行BTAに合致する必要は無い。例えば、分岐オーバーライドロジック26は、適切なOBTAを提供することにより割り込みまたはプログラム実行パスにおける他の変更を強制することができる。
図2は、プロセッサ実行のシミュレーション方法100を示す。ブロック102でスタートし、この方法は、1または2以上の命令のフェッチにより始まる(ブロック104)。当該技術分野で知られているように、プロセッサ実行モデル12は、命令を連続的にフェッチしてもよいし、Iキャッシュラインのようなグループにおいて命令をフェッチしてもよい。フェッチされた各命令に関し、プロセッサ実行モデル12は命令をデコードする(ブロック105)。命令が分岐命令でない場合(ブロック106)、プロセッサ実行モデル12は、実行パイプラインモデルへの命令のローディングなどにより、命令の実行をシミュレーションする(ブロック108)。プロセッサ実行モデル12が分岐命令をデコードする場合(ブロック106)、プロセッサ実行モデル12は分岐案内要求28を分岐オーバーライドロジック26に出す(ブロック110)。そして、プロセッサ実行モデル12は分岐オーバーライドロジック26から分岐案内30を受信する(ブロック112)。続いて、プロセッサ実行モデル12は、分岐案内30により決定されるアドレスの命令をフェッチして実行することにより、分岐案内の実行をシミュレーションする(ブロック114)。
要求28および分岐案内30は、プロセッサ実行モデル12(または少なくとも1のそれについてのインタフェースモデル)が、HDL(Hardware Description Language)モデル、ゲートレベルモデル機能モデルなどのようなハードウェアアキュレートシミュレーションモデルを備えるとき、シミュレーションされた電気信号であってもよい。または、プロセッサ実行モデル12がサイクルアキュレート機能モデルを備えるとき、要求28および分岐案内30は、プロセッサシミュレーション環境10に定義されたトランザクション指向メッセージングシステムに従い、プロセッサ実行モデル12と分岐オーバーライドロジック26の間を通るゼロシミュレーションタイムメッセージを含んでもよい。当業者であれば、あらゆる特定のシミュレーションに関して適切な要求28および分岐案内30を容易に実装し得る。
分岐オーバーライドロジック26により分岐案内30を提供することは、プロセッサシミュレーション環境10が最小限のI/Oモデルまたはエミュレーションでプロセッサ実行モデル12をシミュレーションすることを可能とする。プロセッサ実行モデル12は、ターゲットプロセッサとして、分岐決定のポイントでのみの介入で命令をシミュレーションし得る。これは、高いシミュレーション精度が望まれる場合に特に重要である。さらに、分岐オーバーライドロジック26をプロセッサ実行モデル12から分離することにより、特定のシミュレーションに関する要望または要求に応じて多様な分岐オーバーライドスキームが実装され得る。
本発明は、当然に、本発明の不可欠な特徴から離れない範囲で、ここで詳細に説明した以外の方法でも実行される。本実施形態は、あらゆる面で説明のためおよび非限定的に考慮され、添付の請求項の意味および等価範囲内の変更がそれに含まれることが意図される。

Claims (17)

  1. プロセッサの実行をシミュレーションする方法であって、
    プロセッサ命令を当該命令が分岐命令であるかを判断するためにデコードすること、
    分岐オーバーライドロジックからの分岐案内を要求することにより分岐命令をシミュレーションすること、
    前記要求に応答して前記分岐オーバーライドロジックから分岐案内を受信すること、
    前記分岐オーバーライドロジックからの前記分岐案内に従って前記分岐命令の実行をシミュレーションすること、を含む方法。
  2. 分岐オーバーライドロジックからの分岐案内を要求することは、分岐命令アドレスを前記オーバーライドロジックに提供することを含む、請求項1に記載の方法。
  3. 分岐オーバーライドロジックからの分岐案内を要求することは、さらに、分岐ターゲットアドレスを前記オーバーライドロジックに提供することを含む、請求項2に記載の方法。
  4. 前記分岐オーバーライドロジックから受信される前記分岐案内は、オーバーライド分岐ターゲットアドレスを含む、請求項1に記載の方法。
  5. 前記分岐オーバーライドロジックからの前記分岐案内に応じて前記分岐プロセッサ命令の実行をシミュレーションすることは、前記オーバーライド分岐ターゲットアドレスを起点とする1または2以上の命令の実行をシミュレーションすることを含む、請求項5に記載の方法。
  6. 分岐オーバーライドロジックから受信される前記分岐案内は1ビットからなる、請求項1に記載の方法。
  7. ターゲットプロセッサの特性に従ってプロセッサ命令の実行をシミュレーションし、分岐命令のデコードが行われて分岐案内を要求し、前記要求に応答して分岐案内を受信し、前記分岐案内に従って前記分岐命令の実行をシミュレーションするプロセッサ実行モデルと、
    分岐案内要求を前記プロセッサ実行モデルから受信し、前記要求に応答して分岐案内を供給する分岐オーバーライドロジックと、を有するプロセッサシミュレーション環境。
  8. 前記分岐オーバーライドロジックによりアクセス可能である命令実行トレースをさらに有し、前記命令実行トレースは、前記ターゲットプロセッサと互換性のあるプロセッサにより以前に実行された命令を含む、請求項7に記載のプロセッサシミュレーション環境。
  9. 前記プロセッサ実行モデルが命令を読み出す命令ストアをさらに有する、請求項7に記載のプロセッサシミュレーション環境。
  10. 前記命令ストアモデルは命令キャッシュである、請求項7に記載のプロセッサシミュレーション環境。
  11. 前記分岐案内要求はシミュレーションされている分岐命令のアドレスを含む、請求項7に記載のプロセッサシミュレーション環境。
  12. 前記分岐案内要求は分岐ターゲットアドレスをさらに有する、請求項11に記載のプロセッサシミュレーション環境。
  13. 前記分岐案内はオーバーライド分岐ターゲットアドレスを有する、請求項7に記載のプロセッサシミュレーション環境。
  14. 前記プロセッサ実行モデルは、前記分岐案内に従い、前記オーバーライド分岐ターゲットアドレスの起点から1または2以上の命令の実行のシミュレーションにより、前記分岐命令の実行をシミュレーションする、請求項13に記載のプロセッサシミュレーション環境。
  15. 前記分岐案内は1ビットからなる、請求項7に記載のプロセッサシミュレーション環境。
  16. 共同してターゲットプロセッサの特性に従ってプロセッサ命令の実行をシミュレーションする複数の機能ユニットモデルを備えるプロセッサ実行モデルであって、
    分岐命令のデコードが行われて分岐案内を要求し、
    前記要求に応答して分岐案内を受信し、
    前記分岐案内に従って分岐命令の実行をシミュレーションする、プロセッサ実行モデル。
  17. 前記分岐案内は、オーバーライド分岐ターゲットアドレスを含み、
    前記複数の機能ユニットモデルは、前記分岐案内に従い、前記オーバーライド分岐ターゲットアドレスの起点から1または2以上の命令の実行のシミュレーションにより、前記分岐命令の実行を共同してシミュレーションする、請求項16に記載のプロセッサ実行モデル。

JP2011525640A 2008-09-04 2009-09-04 分岐オーバーライドを用いたプロセッサ実行のシミュレーション Active JP5514211B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/204,047 US20100057427A1 (en) 2008-09-04 2008-09-04 Simulated processor execution using branch override
US12/204,047 2008-09-04
PCT/IB2009/006759 WO2010026475A1 (en) 2008-09-04 2009-09-04 Simulated processor execution using branch override

Publications (2)

Publication Number Publication Date
JP2012502340A true JP2012502340A (ja) 2012-01-26
JP5514211B2 JP5514211B2 (ja) 2014-06-04

Family

ID=41528650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011525640A Active JP5514211B2 (ja) 2008-09-04 2009-09-04 分岐オーバーライドを用いたプロセッサ実行のシミュレーション

Country Status (7)

Country Link
US (1) US20100057427A1 (ja)
EP (1) EP2335170A1 (ja)
JP (1) JP5514211B2 (ja)
KR (1) KR20110081964A (ja)
CN (1) CN102144232A (ja)
MX (1) MX2011001796A (ja)
WO (1) WO2010026475A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966324B2 (en) * 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9256451B2 (en) * 2012-06-29 2016-02-09 Oracle International Corporation Emulation time correction
CN106383926A (zh) * 2016-08-29 2017-02-08 北京中电华大电子设计有限责任公司 一种基于Cortex‑M系列处理器的指令预取方法及电路
CN110472372B (zh) * 2019-09-10 2020-12-11 中国石油大学(北京) 基于双重介质的渗透率预测方法及系统
CN111324948B (zh) * 2020-02-10 2023-04-25 上海兆芯集成电路有限公司 模拟方法及模拟系统
KR102324259B1 (ko) * 2021-07-02 2021-11-10 주식회사 페이크아이즈 복수의 플랫폼을 단일 소스코드로 개발 가능한 플랫폼 통합 sdk 제공 방법 및 장치
CN116302994B (zh) * 2023-02-28 2023-10-10 浙江大学 一种程序路径的层次化匹配方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US6662360B1 (en) * 1999-09-27 2003-12-09 International Business Machines Corporation Method and system for software control of hardware branch prediction mechanism in a data processor
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
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
US7152154B2 (en) * 2003-01-16 2006-12-19 Ip-First, Llc. Apparatus and method for invalidation of redundant branch target address cache entries
WO2006054265A2 (en) * 2004-11-19 2006-05-26 Koninklijke Philips Electronics, N.V. Co-simulation of a processor design
US7870369B1 (en) * 2005-09-28 2011-01-11 Oracle America, Inc. Abort prioritization in a trace-based processor
US7840397B2 (en) * 2005-12-02 2010-11-23 Derek Chiou Simulation method

Also Published As

Publication number Publication date
KR20110081964A (ko) 2011-07-15
EP2335170A1 (en) 2011-06-22
WO2010026475A1 (en) 2010-03-11
MX2011001796A (es) 2011-03-30
JP5514211B2 (ja) 2014-06-04
US20100057427A1 (en) 2010-03-04
CN102144232A (zh) 2011-08-03

Similar Documents

Publication Publication Date Title
US5941991A (en) Method of estimating power consumption of each instruction processed by a microprocessor
JP5514211B2 (ja) 分岐オーバーライドを用いたプロセッサ実行のシミュレーション
US7558719B1 (en) System and method for runtime analysis of system models for variable fidelity performance analysis
JP5298444B2 (ja) プロセッサ設計を特徴付けるための方法、装置、論理プログラム及びシステム
US8612944B2 (en) Code evaluation for in-order processing
US11636122B2 (en) Method and apparatus for data mining from core traces
Herdt et al. Fast and accurate performance evaluation for RISC-V using virtual prototypes
US20120029900A1 (en) Simulation method and system for simulating a multi-core hardware platform
JPH1196130A (ja) マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体
CN113868068A (zh) 一种内核性能测试方法、计算设备及存储介质
Atitallah et al. MPSoC power estimation framework at transaction level modeling
CN104020982A (zh) 具有高效返回预测能力的分支目标缓冲器
US9658849B2 (en) Processor simulation environment
JP5040625B2 (ja) Lsiの電力見積方法及びその装置
CN115858092A (zh) 时序仿真方法、装置及系统
US20120185231A1 (en) Cycle-Count-Accurate (CCA) Processor Modeling for System-Level Simulation
US8438003B2 (en) Methods for improved simulation of integrated circuit designs
Arafa et al. Ppt-gpu: Performance prediction toolkit for gpus identifying the impact of caches
US20140258688A1 (en) Benchmark generation using instruction execution information
Ma et al. Performance estimation techniques with mpsoc transaction-accurate models
US20110119044A1 (en) Processor simulation using instruction traces or markups
Saeed Analysis of Full Window Stalls using SPEC CPU 2017 and Processor Characterization for Runahead Execution
Elhossini et al. Architecture Exploration Based on GA‐PSO Optimization, ANN Modeling, and Static Scheduling
Posadas et al. Static Write Buffer Cache Modeling to Increase Host-Compiled Simulation Accuracy
Bratsaki et al. Performance Evaluation of an Enhanced x86 Microprocessor Model with Data and Instruction Cache Prefetchers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140217

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: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140328

R150 Certificate of patent or registration of utility model

Ref document number: 5514211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250