JP2013171410A - トレース結合装置及びプログラム - Google Patents

トレース結合装置及びプログラム Download PDF

Info

Publication number
JP2013171410A
JP2013171410A JP2012034559A JP2012034559A JP2013171410A JP 2013171410 A JP2013171410 A JP 2013171410A JP 2012034559 A JP2012034559 A JP 2012034559A JP 2012034559 A JP2012034559 A JP 2012034559A JP 2013171410 A JP2013171410 A JP 2013171410A
Authority
JP
Japan
Prior art keywords
instruction
trace data
trace
synchronization
unit
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
JP2012034559A
Other languages
English (en)
Other versions
JP5874433B2 (ja
Inventor
Hiroaki Fujimoto
博昭 藤本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012034559A priority Critical patent/JP5874433B2/ja
Publication of JP2013171410A publication Critical patent/JP2013171410A/ja
Application granted granted Critical
Publication of JP5874433B2 publication Critical patent/JP5874433B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】 本発明の課題は、性能シミュレーションの処理性能を改善することを目的とする。
【解決手段】 上記課題は、一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータを記憶した記憶部と、
前記記憶部に記憶された前記複数のトレースデータの1つを所定順に従って選択し、各トレースデータからトレースされた命令を1つずつ読み込みながら、同期命令毎に区切って並べ替え、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合するトレース結合処理部と
を有するトレース結合装置により達成される。
【選択図】 図16

Description

本発明は、性能シミュレーションで複数のプロセッサが搭載されたシステムを評価するための複数のプロセッサのトレースを結合するトレース結合装置及びプログラムに関する。
従来より、プロセッサのアーキテクチャ検討時の性能見積りのために性能シミュレータが使用されている。ベンチマークテスト等のプログラムを実行した際に、プロセッサが処理したすべての命令を含むトレースデータを取得しておく。そして、そのトレースデータとアーキテクチャに関するパラメータ(キャッシュサイズ、キャッシュプロトコル、パイプライン仕様等)とを性能シミュレータに入力して起動することで、トレースデータに基づく性能シミュレーションが実行され、評価対象のプロセッサのキャッシュヒット率、CPI(Clock Per Instruction)等の性能情報を出力する。そして、様々なパラメータを試しながら最適なアーキテクチャを決定していくことが行われている。
そして、近年、マルチプロセッサやマルチコア等の複数のコアが同時に動作する際のシミュレーションが行われている。シングルコア、即ち、CPU(Central Processing Unit)1個のシミュレーションを行う場合は、1つのトレースデータを順次入力することで、性能シミュレーションを実行できる。しかしながら、マルチコア等の場合、命令の並列実行が可能であるプロセッサである場合には、プロセッサ間通信中に処理が進むことによりトレースデータが動的に変わる可能性があること、シングルプロセッサ用のシミュレータを用いた場合、各プロセッサのトレースデータをその都度採取してシミュレーションを行うと、シミュレーションに要する時間が膨大になるという問題があった。
プロセッサ毎に採取された実行トレースデータから、プロセッサ内での実質的な処理実行時間を見積もり、プロセッサ毎に見積もられた処理実行時間を用いてマルチプロセッシングシステムのシミュレーションを行い、そのシミュレーション結果に基づいてマルチプロセッシングシステムの性能を評価すること等が提案されている。
特開平11−096130号公報
しかしながら、上述した従来技術では、各プロセッサのトレースデータ毎に処理実行時間を見積もったものであるため、搭載されるプロセッサの数に相当するトレースデータを転送するための経路が必要となる。従って、性能シミュレーションにおいて、トレースデータの転送に係る構成がプロセッサ数に依存してしまうと言った問題があった。
よって、本発明の目的は、性能シミュレーションで複数のプロセッサが搭載されたシステムを評価するための複数のプロセッサのトレースを結合するトレース結合装置及びプログラムを提供することである。
開示の技術は、一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータを記憶した記憶部と、前記記憶部に記憶された前記複数のトレースデータの1つを所定順に従って選択し、各トレースデータからトレースされた命令を1つずつ読み込みながら、同期命令毎に区切って並べ替え、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合するトレース結合処理部とを有するトレース結合装置のように構成される。
また、上記課題を解決するための手段として、コンピュータに上記トレース結合装置として機能させるためのプログラム、そのプログラムを記録した記録媒体、及びトレース結合方法とすることもできる。
開示の技術では、複数のプロセッサの夫々に対応する複数のトレースデータに含まれる同期命令で区切って並べ替えて、前記複数のトレースデータが結合された一つの転送用トレースデータが作成される。性能シミュレーションにおいて、このように同期命令で区切って並べ替えて作成された転送用トレースデータを用いることによって、各プロセッサへの同期命令が全て終了した後に、同期命令後の命令が入力されるようにすることができる。
性能シミュレーションに係る基本構成を説明するための図である。 図1に示す性能シミュレータをソフトウェアで実行するためのコンピュータ装置のハードウェア構成を示す図である。 図2のコンピュータ装置の機能構成の概要を説明するための図である。 図1に示す性能シミュレータをハードウェアで実現するためのシステムのハードウェア構成を示す図である。 図4のシステムの構成概要を説明するための図である。 複数コアのトレースデータを1つの経路で入力するための構成例を示す図である。 転送時に命令を並べ替える構成例を示す図である。 コア毎のバッファを有する構成例を示す図である。 命令を並べ替えて一つのトレースを作成しておく構成例を示す図である。 実機での命令の実行タイミングを説明するための図である。 単純に並べ替えたトレースデータを用いた実行タイミングを説明するための図である。 実機と、図11の並べ替え済トレースデータを用いた性能シミュレーションの場合の実行タイミングのずれを比較するための図である。 プログラムに同期命令が含まれる場合の実行タイミングを説明するための図である。 性能シミュレータの動作が停止してしまう場合を説明するための図である。 トレースデータ作成方法の概要を説明するための図である。 転送用トレースデータを作成するための機能構成例を示す図である。 トレース結合処理部によるトレース結合処理を説明するためのフローチャート図である。 図17のステップS17でのバッファ出力処理を説明するための図である。 同期命令によって区切られた実行タイミングの例を示す図である。 実機と、図19の転送用トレースデータを用いた性能シミュレーションの場合の実行タイミングのずれを比較するための図である。
以下、本発明の実施の形態を図面に基づいて説明する。発明者は、マルチプロセッサやマルチコア等の複数のプロセッサ(CPU(Central Processing Unit))が同時に動作するシステムを評価するための性能シミュレーションの処理性能が、低下する原因となる同期命令を含むトレースデータを用いた場合について、処理性能が低下する現象について解析した。本実施の形態では、同期命令を含むトレースデータを用いた場合であっても、その処理性能を改善することができるトレースデータを作成することについて説明する。
まず、性能シミュレーションに係る基本構成について、図1で説明する。図1に示すシステム1000において、トレースデータ2とアーキテクチャ設定情報4とを性能シミュレータ5に入力し、性能シミュレータ5を動作させることによって、性能シミュレータ5から評価対象のプロセッサに係る性能情報レポート8が出力される。
トレースデータ2は、事前に実機又はISS(Instruction Set Simulator)等でプログラムを実行して取得した、実行順の命令3を含むデータファイルである。命令3は、PC(Program Counter)、命令、アドレス、データを示すデータである。アーキテクチャ設定情報4は、キャッシュサイズ、キャッシュプロトコル、パイプライン仕様等の評価対象のプロセッサに係るパラメータを示す。
性能シミュレータ5は、実際に命令を実行せずにパイプライン、メモリアクセス等のタイミングをシミュレーションする。性能シミュレータ5は、後述されるように、ソフトウェア又はハードウェアによって実現される。
性能情報レポート8は、CPI(Clock per Instruction)、キャッシュヒット率等を含む性能評価結果を示す。
図1に示す性能シミュレータ5がソフトウェア(プログラム)で実現されるシステム1000aにおいて、そのソフトウェアを実行するためのコンピュータ装置100aのハードウェア構成を図2で示す。図2に示すシステム1000aでは、コンピュータ装置100aが性能シミュレータ5として動作するためのハードウェア構成が示される。
コンピュータ装置100aは、CPU11と、ROM(Read-Only Memory)12と、RAM(Random Access Memory)13と、ハードディスクドライブ14と、入力装置15と、出力装置16と、通信I/F17と、ドライブ18とを有し、それらはバスBに接続される。
CPU11は、ROM12又はRAM13に格納されたプログラムに従ってコンピュータ装置100aを制御する。主記憶装置としてのROM12及びRAM13は、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、RAM13の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられる。補助記憶装置としてのハードディスクドライブ14には、各種処理を実行するプログラム等のデータが格納される。
記憶部30は、ROM12、RAM13、ハードディスクドライブ14等の記憶領域を有する。記憶部30は、トレースデータ2、アーキテクチャ設定情報4、性能情報レポート8等を記憶する。
入力装置15は、マウス、キーボード等を有し、ユーザがコンピュータ装置100aが処理を行なうための必要な各種情報を入力するために用いられる。出力装置16は、LCD(Liquid Crystal Display)又はCRT(Cathode Ray Tube)等の表示装置や、プリンタ等を有し、CPU11の制御のもとに必要な各種情報を表示、又は/及び、ユーザからの指示に応じて各種情報を出力する。性能情報レポート8が出力装置16に表示又は/及び出力される。
通信I/F17は、例えばインターネット、LAN(Local Area Network)等に接続するためのインターフェースであり、外部装置との間の通信制御をするための装置である。
コンピュータ装置100aによって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によってコンピュータ装置100aに提供される。即ち、プログラムが保存された記憶媒体19がドライブ18にセットされると、ドライブ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがバスBを介してハードディスクドライブ14にインストールされる。そして、プログラムが起動されると、ハードディスクドライブ14にインストールされたプログラムに従ってCPU11がその処理を開始する。
尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
また、コンピュータ装置100aによって行われる処理を実現するプログラムが、通信I/F17を介して外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。通信I/F17による通信は無線又は有線に限定されるものではない。
図3は、図2のコンピュータ装置100aの機能構成の概要を説明するための図である。図3では、複数コアの例として、CPUが4個の場合を例示しているが、個数を限定するものではない。以下の図においても同様である。
図3において、CPU0〜CPU3が評価対象である場合、各CPU0〜CPU3に対応するトレースデータ200〜203が記憶部30に用意され格納される。トレースデータ200はCPU0用のトレースデータであり、トレースデータ201はCPU1用のトレースデータであり、トレースデータ202はCPU2用のトレースデータであり、トレースデータ203はCPU3用のトレースデータである。
コンピュータ装置100aは、CPU11が所定のプログラムを実行することによって性能シミュレーション部50aを実現する。性能シミュレーション部50aは性能シミュレータ5に相当する機能を行う処理部である。
性能シミュレーション部50aは、ハードウェア記述言語等で表現されたCPUモデルとしての各CPU0〜CPU3等を有する。この例では、モデルとしてCPU0〜CPU3のみを例示しているが、性能シミュレーション部50aは、メモリ、バス等のモデルを含んでいる。
トレースデータ200〜203が、記憶部30から性能シミュレーション部50aに入力されることによって、性能シミュレーション部50aが各CPU0〜CPU3の性能を評価する。性能シミュレーション部50aによる性能評価の結果を示す性能情報レポート8が、記憶部30に出力され格納される。
次に、図1に示す性能シミュレータ5が専用装置等のハードウェアで実現されるシステム1000bのハードウェア構成を図4で示す。図4に示すシステム1000bは、コンピュータ装置100bと、性能シミュレーション装置50bとを有する。図4に示すコンピュータ装置100bのハードウェア構成のうち、図2に示すコンピュータ装置100aと同様のハードウェアには同様の符号を付し、その説明を省略する。
図2に示すコンピュータ装置100aとの違いにおいて、コンピュータ装置100bは、性能シミュレーション装置50bに対して上位装置であるホストPC(Personal Computer)であり、コンピュータ装置100aのハードウェア構成に加えて、更に、性能シミュレーション装置50bと接続し通信するための性能シミュレーション装置I/F20を有している。
性能シミュレーション装置I/F20を介して、コンピュータ装置100bの記憶部30からトレースデータ2、アーキテクチャ設定情報4等が、性能シミュレーション装置50bへ入力され、性能シミュレーション装置50bによって性能評価が行われる。
性能シミュレーション装置50bによって実行された性能評価の結果を示す性能情報レポート8は、性能シミュレーション装置I/F20を介してコンピュータ装置100bの記憶部30に格納される。
性能シミュレーション装置50bは、FPGA(Field-Programmable Gate Array)等の装置であり、上位装置としてのコンピュータ装置100bから必要な情報を入力し、評価対象のプロセッサの性能を評価し、その結果を示す性能情報レポート8を出力する。
図5は、図4のシステム1000bの構成概要を説明するための図である。図5において、性能シミュレーション装置50bは、性能シミュレータ5と、I/F51bと、I/F52bとを有する。
性能シミュレータ5は、ハードウェア記述言語によるモデルとして表現されるCPU0〜CPU3の各々の動作に合わせて夫々対応するトレースデータ200〜203の命令3を読み込みながらシミュレーションを行う。
I/F51bは、ホストPCであるコンピュータ装置100bから各トレースデータ200〜203を受信して性能シミュレータ5へ入力するためのインターフェースである。I/F51bから入力されたトレースデータ200〜203に従って、対応するCPU0〜CPU3がシミュレーションされる。
I/F52bは、性能シミュレータ5が行ったCPU0〜CPU3の評価結果を示す性能情報レポート8を外部装置へ出力するためのインターフェースである。外部装置がコンピュータ装置100bである場合、性能情報レポート8は、I/F52bを介して、コンピュータ装置100bへ転送されて記憶部30に格納される。記憶部30に格納された性能情報レポート8は、CPU11の制御によって、出力装置16に結果表示として出力される。又は、I/F52bがコンピュータ装置100b以外の結果表示用の外部装置に接続される場合には、性能情報レポート8が外部装置で表示されてもよい。
このようなシステム1000bの構成では、各CPU0〜CPU3毎にホストPCのコンピュータ装置100bとの経路を用意し、夫々の経路で独立にデータ転送を行う。従って、コア数が増えるに従ってPCI-Express等の転送経路で必要となるリソースが増加していくため、費用が掛かってしまう。
そこで、複数コアの夫々に対応するトレースデータ200〜203を1つの経路で入力することが考えられる。図6は、複数コアのトレースデータを1つの経路で入力するための構成例を示す図である。
図6に示すシステム1000cでは、複数コアに相当するCPU0〜CPU3の夫々に対応するトレースデータ200〜203を1つの経路でI/F51bに入力される。そのため、性能シミュレーション装置50bは、トレース受信部6を更に有する。
性能シミュレーション装置50bでは、記憶部30にトレースデータ2bが用意され格納される。トレースデータ2bに含まれる命令3bは、性能シミュレータ5のCPU0〜CPU3を特定するためのCPU番号、PC(Program Counter)、命令、アドレス、データ等を示す。
トレース受信部6は、振り分け処理部6bと、性能シミュレータ5のCPU0〜CPU3の夫々に対応するバッファ0〜3とを有する。トレース受信部6は、ホストPCであるコンピュータ装置100bからシリアルに転送されてくるトレースデータ2bを受信し、各命令3bのCPU番号に対応するCPU用のバッファに命令を書き込む処理を行う。書き込もうとしたバッファがフルの時には、それ以上、トレースデータ2bを読み込まずにそのバッファが空くまで待つ。
振り分け処理部6bは、I/F51bを介して入力される各命令3bのCPU番号に基づいて、対応するバッファ0〜3の一つに格納する。例えば、命令3bのCPU番号がCPU0を指定する場合、命令3bはバッファ0に格納され、性能シミュレータ5のCPU0に与えられる。
トレースデータ200〜203を1つの経路で転送する方法として、以下に説明する、転送時に複数コア(CPU0〜CPU3)の命令3bを並べ替える構成(図7)と、コア毎のトレースデータを予め格納しておくためのバッファを有する構成(図8)、複数コア(CPU0〜CPU3)間でトレースデータの命令3bを並べ替えて一つのトレースを作成しておく構成(図9)が考えられる。
図7は、転送時に命令を並べ替える構成例を示す図である。図7に示す構成では、ホストPCであるコンピュータ装置100bは、転送処理部33を有する。コンピュータ装置100bでは、事前に命令3bを並べ替えることをせず、性能シミュレータ5からの各CPU0〜3の命令フェッチ時に送信されるリクエストに応じて、転送処理部33が、1命令単位で、対応するトレースデータから命令3bを取得する。
このような構成の場合、性能シミュレータ5がリクエストを出してから命令3bを含む応答があるまでの間、性能シミュレータ5の動作を停止しておくことで、実機と同じタイミングで実行することができる。しかし、1命令ごとにコンピュータ装置100b(ホストPC)との間で転送を行うため、転送処理部33による処理がボトルネックとなり実行速度を十分に得られない。
図8は、コア毎のバッファを有する構成例を示す図である。図8に示す構成では、性能シミュレーション装置50bにおいて、トレース受信部6は、性能シミュレータ5のCPU0〜3の夫々に対応させてトレースサイズ分のバッファ0〜3を有する。
CPU0〜3の夫々に対応するトレースデータ200〜203は、性能シミュレータ5の動作が開始される前に、I/F51bを介してコンピュータ装置100b(ホストPC)から転送され、トレース受信部6のバッファ0〜3に格納される。しかし、この構成では、一般に、トレースデータのサイズが大きくなる(例えば、GB単位のサイズの)場合が多いため、性能シミュレーション装置50b側で全てを保持することは難しいと考えられる。
図9は、命令を並べ替えて一つのトレースを作成しておく構成例を示す図である。図9に示す構成では、性能シミュレータ5の動作の開始前に、コンピュータ装置100b(ホストPC)側で、各CPU0〜3の命令3bをトレースデータ200〜203から並べ替えて一つの並べ替え済みトレースデータ210を、記憶部30に用意しておく。
性能シミュレータ5の実行時には、コンピュータ装置100b(ホストPC)の転送処理部33は、一つの並べ替え済トレースデータ210の先頭から順に命令3bを転送するのみでよく、転送速度の低下を防ぐことができる。
次に、並べ替え済トレースデータ210に関して、複数コアの命令3を単純に並べ替えた例について説明する。図10は、実機での命令の実行タイミングを説明するための図である。図10において、CPU0〜CPU3の4つのCPUで夫々CPUn−0からCPUn−9までの順で、10個の命令を実行し、各命令の位置は、実機の実行タイミング9を示している。
例えば、CPU0の場合、クロックサイクル1でCPU0−0命令、サイクル3でCPU0−1命令、サイクル4でCPU0−2命令、サイクル6でCPU0−3命令、・・・のタイミングで実行される様子を示している。実行間隔が空く原因としては、キャッシュミス、データ依存待ち、分岐命令で分岐した場合等の様々な要因がある。
トレースデータでは命令間のタイミング情報を持たない。一方、実機の実行タイミング9では、同じ10命令であっても、各命令の遅延がコア毎に異なり、命令フェッチのタイミングが異なる。
CPU0からCPU3への順に、実行順序に従って、1命令ずつを取り出すこと(点線矢印の方向)を繰り返して、単純に並び替えた例を図11で説明する。図11は、単純に並べ替えたトレースデータを用いた実行タイミングを説明するための図である。
図11において、並べ替え済トレースデータ210を用いた場合、図10に示すように実際の命令実行時の遅延に加えて、並べ替えによるトレースの順序に依存した遅延が発生する。例えば、図10に示す実機の実行タイミング9では、CPU1−2命令よりも先にCPU2−2命令が実行されているが、図11では、入力されたトレースの順序がCPU1−2−>CPU2−2となっているため、CPU2−2命令はCPU1−2命令が実行されるまで入力できない状態となる。
また、トレースの順序に応じて遅延が追加されていき、実機の実行タイミング9と、性能シミュレーションによる実行タイミングとの誤差が大きくなっていく。
図12は、実機と、図11の並べ替え済トレースデータを用いた性能シミュレーションの場合の実行タイミングのずれを示す図である。実機と性能シミュレータ5とにおける実行タイミングの比較において、図12(A)はCPU0の実行タイミングのずれを示し、図12(B)はCPU1の実行タイミングのずれを示し、図12(C)はCPU2の実行タイミングのずれを示し、図12(D)はCPU3の実行タイミングのずれを示している。
10個の命令を終了した時点において、図12(A)では、性能シミュレータ5によるCPU0の性能シミュレーションは、実機と比べてd0遅れて終了している。図12(B)では、性能シミュレータ5によるCPU1の性能シミュレーションは、実機と比べてd1遅れて終了している。図12(C)では、性能シミュレータ5によるCPU2の性能シミュレーションは、実機と比べてd2遅れて終了している。図12(D)では、性能シミュレータ5によるCPU3の性能シミュレーションは、実機と比べてd3遅れて終了している。
この例では、CPU0〜3の夫々で実行タイミングのずれが発生しているが、性能シミュレーションの実行自体は完了している。
上述したような実行タイミングのずれに関して、マルチプロセッサの場合にはバリア同期命令等の複数のCPU間で同期を取る同期命令が使われる場合が多い。その場合、単純並べ替えで転送するとタイミングがずれるだけでなく、性能シミュレーションの途中で停止してしまう場合が発生する。その例を図13で説明する。
図13は、プログラムに同期命令が含まれる場合の実行タイミングを説明するための図である。図13に示す実行タイミングにおいて、CPU0−4命令、CPU1−4命令、CPU2−2命令、及びCPU3−6命令が同期命令である場合を示している。同期命令は、指定された複数のCPU間で同時に完了する必要がある。つまり、同期命令の次の命令は、同期するように全てのCPUで同時に実行される。このような同期により、同じメモリ領域でデータ共有される場合にデータの正しいことを保証することができる。
図13に示す実行タイミングにおいて、例えば、CPU1がCPU1−3命令で共有メモリ領域にデータを書き込み、CPU0、CPU2、及びCPU3が前記命令による書き込みが確実に完了した後で、CPU0−5命令、CPU2−3命令、CPU3−7命令によって、共有メモリ領域を読み出すために、CPU0−4命令、CPU1−4命令、CPU2−2命令、CPU3−6命令の同期命令が挿入されているとする。
この例では、最後の同期命令となるCPU1−4の実行後に、各CPU0〜CPU3で次の命令CPU0−5、CPU1−5、CPU2−3、及びCPU3−7が実行される。
このような場合、図11で説明した単純な並べ替えの方法では、図13で示すように、同期命令によって各CPU0〜CPU3の処理が待ち状態になり、更に、性能シミュレータ5の動作が途中で停止してしまう場合がある。
図14は、性能シミュレータ5の動作が停止してしまう場合を説明するための図である。図14において、並べ替え済トレースデータ210からCPU0−0命令、CPU1−0命令、CPU2−0命令、CPU3−0命令、CPU0−1命令、・・・という順で性能シミュレーション装置50bのトレース受信部6に入力され、各命令のCPU番号に従って対応するCPU用のバッファに振り分けられた後、性能シミュレータ5に入力される。図14では、説明を簡潔にするため、バッファサイズを1命令分とする。
CPU2−2命令を実行した後、全ての同期命令(CPU0−4命令、CPU1−4命令、及びCPU3−6命令)が実行されるまで、CPU2では、次の命令(CPU2−3)が実行されない。
並べ替え済トレースデータ210は、所定のCPUの順に1命令ずつを繰り返して並べているため、CPU2−2命令の後、CPU3−2命令、CPU0−3命令、CPU1−3命令と順に入力された後、CPU2−3命令がバッファ2に入った時点で、CPU2は、他のCPU0、2及び3で同期命令(CPU0−4命令、CPU1−4命令、及びCPU3−6命令)が実行されるのを待つ状態となる。CPU2は、命令フェッチを行わずに止まってしまう。
その後、更に、CPU3−3命令、CPU0−4命令、CPU1−4命令と入力された後、CPU2−4命令をバッファに入力できなくなり、そこで各CPU0〜CPU3による実行が止まり、性能シミュレータ5による性能シミュレーション全体の処理が停止してしまう。
発明者によって、上述したように、同期命令を含むトレースデータを単純に並べ替えて用いた場合に性能シミュレーションの処理が停止してしまう仕組みが解析された。そして、発明者は、以下に説明する本実施例に係るトレースデータ作成方法を見出した。
本実施例に係るトレースデータ作成方法について説明する。図15は、トレースデータ作成方法の概要を説明するための図である。トレースデータ作成方法は、コンピュータ装置100a又は100bのCPU11によって行われる。
図15において、所定順に各CPU0〜3のトレースデータ200〜203からトレースされた順に1ずつ命令を取り出して転送用トレースデータ300に追加する。その際、取り出した命令が同期命令の場合、同期命令の現われたCPUのトレースデータから転送用トレースデータ300への命令の追加を行わずにスキップして、全ての同期命令が転送用トレースデータ300に追加された後、所定順に従って各トレースデータ200〜203から同期命令以降の命令の転送用トレースデータ300への追加を再開する。
図15の例では、最初の同期命令CPU2−2が現われて、全ての同期命令CPU0−4、CPU1−4、及びCPU3−6を転送用トレースデータ300に追加するまでの、CPU0−0からCPU3−6までが最初の同期命令CPU2−2に基づく区切りとなり、同期命令CPU2−2に対応する最後の同期命令CPU3−6直後の区切り7で示している。
また、最後の同期命令CPU3−6直後から、スキップした命令を含めて、所定順に各トレースデータ200〜203から同期命令以降の命令を1ずつ取り出して、転送用トレースデータ300に追加する。
従って、図15の例では、最初の同期命令CPU2−2の後には、全ての他CPU1、3、及び4で同期命令が出現するまでCPU2の命令が含まれない。同期命令CPU2−2の後に、同期命令CPU0−4が出現すると、CPU2及びCPU0以外の他CPU1及び3で同期命令が出現するまでCPU0の命令が含まれない。
CPU1及びCPU3においても同様である。そして、同期命令CPU1−4と、同期命令CPU3−6が出現することによって、転送用トレースデータ300への命令の追加が、所定順で再開する。最後の同期命令CPU3−6後に、CPU0−5からCPU2−9までの命令が転送用トレースデータ300に追加されることによって、同期命令後に実行されることになる。
トレース中に同期命令が現われるごとにこのように並べ替えを行うことによって、同期命令で区切られ、性能シミュレーションが停止することなく正常に動作する転送用トレースデータ300を作成することができる。
図16は、転送用トレースデータを作成するための機能構成例を示す図である。図16に示す機能構成は、コンピュータ装置100a又は100bに実装される。コンピュータ装置100a又は100bは、マルチコア対応ISS部35と、トレース結合処理部36とを転送用トレースデータ300を作成するための処理部として有する。マルチコア対応ISS部35と、トレース結合処理部36とは、CPU11が対応するプログラムを実行することによる処理によって実現される。
マルチコア対応ISS部35は、記憶部30に格納されているマルチスレッドプログラム34を読み込んで、命令セットレベルのシミュレーションを行う。その結果として、トレースデータTD−1、TD−2、TD−3、・・・、TD−nが記憶部30に出力され格納される。
トレース結合処理部36は、所定順に、記憶部30に格納されているトレースデータTD−1、TD−2、TD−3、・・・、TD−nから命令を1つずつ読み出して、図15で説明したトレースデータ作成方法によって、一つの転送用トレースデータ300を作成して記憶部30に格納する。処理を簡潔にするため、各トレースデータTD−1、TD−2、TD−3、・・・、TD−nのファイル名に対応するCPU番号を含むようにして記憶部30に格納してもよい。
トレース結合処理部36によるトレース結合処理は、性能シミュレーションの実行の前に行われる。上述したように、トレース結合プログラムをCPU11が実行することによって実現されるように、ソフトウェアで実現してもよいし、ハードウェアで実現してもよい。また、コンピュータ装置100a及び100bとは、別の装置で実現してもよい。
図17は、トレース結合処理部によるトレース結合処理を説明するためのフローチャート図である。図17において、トレース結合処理部36は、トレースデータを選択するための所定順に従って、記憶部30に記憶されたCPU番号73のトレースデータからトレースされた順に命令3bを一つ読み込む(ステップS11)。
選択の所定順は、命令3bを読み込む際のトレースデータを選択する順番をCPUの番号で示す。例えば、各トレースデータのファイル名にCPU番号を含めておくことで、降順又は昇順などのCPUの番号順に従って、トレースデータが選択されるようにすればよい。所定順がCPU0、CPU1、CPU2、・・・、CPUnの順番(0、1、2、・・・、n)である場合、CPU0用のトレースデータ、CPU1用のトレースデータ、CPU2用のトレースデータ、・・・、CPUn用のトレースデータの順に選択される。
トレース結合処理部36は、読み込んだ命令3bが同期命令か否かを判断する(ステップS12)。命令3bが同期命令である場合、CPU番号73のフラグテーブル71に同期フラグをセットして(ステップS13)、命令3bを転送用トレースデータ300に出力して格納する(ステップS14)。
フラグテーブル71は、記憶部30に格納され、例えば、コア数分のビット数を少なくとも有するようにすればよい。CPU番号と同期フラグとを対応付ければよい。同期フラグは、設定されることによって「1」を示す。即ち、CPU番号に対応する同期フラグが「1」を示せば、読み出した命令が同期命令であったことを示す。また、CPU番号に対応する同期フラグが「0」を示せば、未だ同期命令が読み出されていないことを示す。
一方、ステップS12にて、読み込んだ命令が同期命令でないと判断した場合、トレース結合処理部36は、記憶部30に格納されているフラグテーブル71を参照して、CPU番号73の同期フラグがセットされているか否かを判断する(ステップS13−2)。同期フラグがセットされている場合、CPU番号73の同期用バッファ72に読み出した命令3bを保存する(ステップS14−2)。
同期用バッファ72は、記憶部30内に用意されたCPU番号毎の作業用のバッファ領域である。読み出された同期命令と同一CPU番号を示す命令3bがトレースデータから読み出された場合、他CPUに対する全ての同期命令が検出されるまで、そのCPU番号の同期用バッファ72に格納される。
ステップS13−2にて、同期フラグがセットされていないと判断した場合、トレース結合処理部36は、命令3bを転送用トレースデータ300に出力し格納する(ステップS14−4)。
ステップS14、S14−2、S14−4の処理後、トレース結合処理部36は、フラグテーブル71を参照することによって、全てのCPUに対して同期フラグがセットされたか否かを判断する(ステップS15)。全てのCPUに対して同期フラグがセットされている場合、トレース結合処理部36は、全ての同期フラグをクリアする(ステップS16)。全ての同期フラグが「0」に設定される。
そして、トレース結合処理部36は、図18に説明されるようなバッファ出力処理を実行する。バッファ出力処理の実行後、トレース結合処理部36は、ステップS18へと進む。
ステップS15にて、全てのCPUに対して同期フラグがセットされていないと判断した場合、又は、同期フラグが未セットのCPUが存在すると判断した場合、トレース結合処理部36は、所定順において、CPU番号73が最後の番号であるか否かを判断する(ステップS18)。
CPU番号73が最後の番号であると判断した場合、トレース結合処理部36は、CPU番号73を初期化して(ステップS19)、ステップS20へと進む。記憶部30に格納されているCPU番号73が、「0」に設定される。一方、CPU番号73が最後の番号ではないと判断した場合、トレース結合処理部36は、CPU番号73を1インクリメントして(ステップS19−2)、ステップS20へと進む。
そして、トレース結合処理部36は、全てのトレースの読み込みを完了したか否かを判断する(ステップS20)。全てのトレースの読み込みが未完了であると判断した場合、トレース結合処理部36は、ステップS11へ戻り、記憶部30に記憶されているCPU番号73に基づいて、上述した同様の処理を繰り返す。
一方、ステップS20にて、全てのトレースの読み込みを完了したと判断した場合、トレース結合処理部36は、この処理を終了する。
図18は、図17のステップS17でのバッファ出力処理を説明するための図である。図18において、トレース結合処理部36は、バッファ出力処理用のCPU番号73−2を初期化して(ステップS51)、CPU番号73−2の同期用バッファから命令3bを1つ読み込む(ステップS52)。
トレース結合処理部36は、読み込んだ命令を転送用トレースデータ300に出力する(ステップS53)。トレース結合処理部36は、所定順において、CPU番号73−2が最後の番号であるか否かを判断する(ステップS54)。
CPU番号73−2が最後の番号であると判断した場合、トレース結合処理部36は、CPU番号73−2を初期化して(ステップS55)、ステップS20へと進む。記憶部30に格納されているCPU番号73−2が、「0」に設定される。一方、CPU番号73−2が最後の番号ではないと判断した場合、トレース結合処理部36は、CPU番号73−2を1インクリメントして(ステップS55−2)、ステップS56へと進む。
そして、トレース結合処理部36は、全ての同期用バッファ72が空か否かを判断する(ステップS56)。全ての同期用バッファ72が空である場合、トレース結合処理部36は、ステップS52へと進む。全ての同期用バッファ72が空でない場合、トレース結合処理部36は、ステップS52へと戻り、上述した同様の処理を繰り返す。
上述したトレース結合処理部36によるトレース結合処理によって、作成された転送用トレースデータ300を用いた場合の実行タイミングについて、図19及び図20で説明する。図19及び図20では、図6に示す構成例において、トレースデータ300を用いた場合で説明する。トレースデータ300においても、命令3bのデータ構成は、トレースデータ2bの命令3bと同様である。
図19は、同期命令によって区切られた実行タイミングの例を示す図である。図19において、トレース結合処理部36によって作成された転送用トレースデータ300が、性能シミュレーション装置50bのトレース受信部6に入力されると、命令3bのCPU番号に対応するバッファに命令3bが格納される。
性能シミュレータ5によってシミュレーションされる各CPU0〜CPU3は、夫々の対応するバッファ0〜バッファ3から命令3bを読み込んで実行する。最初の同期命令CPU2−2をCPU2が実行すると、CPU2は、他CPU0、1及び3による同期命令の実行待ちとなる。
次に、CPU0で同期命令CPU0−4を実行すると、CPU0は他CPU1及び3による同期命令の実行待ちとなる。更に、CPU1で同期命令CPU1−4を実行すると、CPU1は他CPU3による同期命令の実行待ちとなる。最後に、CPU3で同期命令CPU3−6を実行すると、全ての同期命令が実行済みとなり、各CPU0〜3による命令フェッチが滞ることなく実行される。その時点が区切り7で示される。区切り7以降において、各CPU0〜3によりトレースされた命令3bが順次実行される。
図20は、実機と、図19の転送用トレースデータを用いた性能シミュレーションの場合の実行タイミングのずれを比較するための図である。実機と性能シミュレータ5とにおける実行タイミングの比較において、図20(A)はCPU0の実行タイミングのずれを示し、図20(B)はCPU1の実行タイミングのずれを示し、図20(C)はCPU2の実行タイミングのずれを示し、図20(D)はCPU3の実行タイミングのずれを示している。
10個の命令を終了した時点において、図20(A)では、性能シミュレータ5によるCPU0の性能シミュレーションは、実機と比べてd20遅れて終了している。図12(B)では、性能シミュレータ5によるCPU1の性能シミュレーションは、実機と比べてd21遅れて終了している。図12(C)では、性能シミュレータ5によるCPU2の性能シミュレーションは、実機と比べてd22遅れて終了している。図12(D)では、性能シミュレータ5によるCPU3の性能シミュレーションは、実機と比べてd23遅れて終了している。
図20(A)から図12(D)の夫々において、実機の実行タイミングにおける区切り7aに対する、性能シミュレータ5による実行タイミングにおける区切り7bの遅延分の差が性能シミュレータ5にはある。しかしながら、トレース結合処理部36によって作成された転送用トレースデータ300を用いることによって、性能シミュレーションが途中で停止することなく実行できている。また、全CPU0〜CPU3の同期による実行タイミングについても、区切り7bに示すように実現できている。
上述したように、複数のプロセッサ(CPU)を搭載したシステムの性能評価において、同期命令毎に区切られるように、複数のCPU0〜CPUnでトレースされた命令3bを並べ替えて一つのトレースデータ300を作成することによって、同期命令を含むトレースに対しても、同期命令後の各プロセッサによる命令フェッチが滞りなく行われるため、性能シミュレーションが途中で停止することなく実行される。
本実施例では、複数プロセッサのシステムを評価する性能シミュレーションのための転送用トレースデータを、複数プロセッサへの全同期命令後に次の命令が入力されるように複数のトレースを同期命令毎に区切って結合して作成する。
本実施例に係る転送用トレースデータ300は、図2、図6から図9の構成によって行われる性能シミュレーションのために適用可能である。コンピュータ装置100a及び100bは、以下に説明されるトレース結合装置に相当する。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータを記憶した記憶部と、
前記記憶部に記憶された前記複数のトレースデータの1つを所定順に従って選択し、各トレースデータからトレースされた命令を1つずつ読み込みながら同期命令毎に区切って並べ替え、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合するトレース結合処理部と
を有することを特徴とするトレース結合装置。
(付記2)
前記トレース結合処理部は、
前記記憶部の前記所定順に従って選択したトレースデータから命令を読み込む命令読込部と、
前記命令読込部によって読み込んだ命令が同期命令であるか否かを判断する同期命令判断部と、
前記同期命令判断部によって前記命令が同期命令であると判断された場合、該命令がトレースされた前記プロセッサに対応させた同期用バッファに保存する命令保存部と、
全プロセッサ夫々に対応する前記複数のトレースデータから前記同期命令の読み出しが終了した場合、前記所定順に従って選択した前記同期用バッファから命令を1つずつ読み込み、前記転送用トレースデータへ出力して追加するバッファ出力部と
を有することを特徴とする付記1記載のトレース結合装置。
(付記3)
前記バッファ出力部による前記転送用トレースデータへの出力が終了すると、前記命令読込部による処理を再開することを特徴とする付記2記載のトレース結合装置。
(付記4)
前記同期命令判断部によって前記命令が同期命令であると判断された場合、前記記憶部内に格納される前記複数のプロセッサの夫々に対応する同期フラグを有するフラグテーブル内の、該命令がトレースされたプロセッサに対応する該同期フラグを設定するフラグ設定部と、
前記同期命令判断部によって前記命令が同期命令でないと判断された場合、前記フラグテーブルを参照することによって、該命令がトレースされたプロセッサに対応する該同期フラグが設定されているか否かを判断するフラグ判断部と、
前記フラグ判断部によって前記同期フラグが設定されていないと判断された場合、前記命令を前記転送用トレースデータへ出力して追加するフラグ未設定追加部と
を有することを特徴とする付記3記載のトレース結合装置。
(付記5)
前記同期命令判断部によって前記命令が同期命令であると判断された場合であって、かつ、前記フラグ判断部によって前記同期フラグが設定されていないと判断された場合に、該命令がトレースされた前記プロセッサに対応させた同期用バッファに保存する未設定命令保存部を有することを特徴とすることを特徴とする付記4記載のトレース結合装置。
(付記6)
前記同期命令判断部によって前記命令が同期命令であると判断され、前記フラグ設定部によって、前記フラグテーブル内の、該命令がトレースされたプロセッサに対応する該同期フラグが設定されると、該命令を前記転送用トレースデータへ出力して保存する設定後命令保存部を有することを特徴とする付記4又は5記載のトレース結合装置。
(付記7)
コンピュータによって実行されるトレース結合方法であって、
記憶部に記憶された一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータから所定順に従ってトレースデータを選択し、
各トレースデータからトレースされた命令を1つずつ読み込みながら、同期命令毎に区切って並べ替えて、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合する
ことを特徴とするトレース結合方法。
(付記8)
記憶部に記憶された一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータから所定順に従ってトレースデータを選択し、
各トレースデータからトレースされた命令を1つずつ読み込みながら、同期命令毎に区切って並べ替えて、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合する、
処理をコンピュータに実行させるプログラム。
(付記9)
記憶部に記憶された一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータから所定順に従ってトレースデータを選択し、
各トレースデータからトレースされた命令を1つずつ読み込みながら、同期命令毎に区切って並べ替えて、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合する、
処理をコンピュータに実行させるプログラムを記憶したコンピュータ読取可能な記憶媒体。
2、2b トレースデータ
3、3b 命令
4 アーキテクチャ設定情報
5 性能シミュレータ
6 トレース受信部
7、7a、7b 区切り
8 性能情報レポート
9 実機の実行タイミング
11 CPU
12 ROM
13 RAM
14 ハードディスクドライブ
15 入力装置
16 出力装置
17 通信I/F
18 ドライブ
19 記憶媒体
20 性能シミュレーション装置I/F
30 記憶部
33 転送処理部
34 マルチスレッドプログラム
35 マルチコア対応ISS部
36 トレース結合処理部
50a 性能シミュレーション部
50b 性能シミュレーション装置
51b、52b I/F
71 フラグテーブル
72 同期用バッファ
73 CPU番号
100a、100b コンピュータ装置
200、201、202、203 トレースデータ
210 並べ替え済トレースデータ
300 転送用トレースデータ

Claims (5)

  1. 一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータを記憶した記憶部と、
    前記記憶部に記憶された前記複数のトレースデータの1つを所定順に従って選択し、各トレースデータからトレースされた命令を1つずつ読み込みながら、同期命令毎に区切って並べ替え、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合するトレース結合処理部と
    を有することを特徴とするトレース結合装置。
  2. 前記トレース結合処理部は、
    前記記憶部の前記所定順に従って選択したトレースデータから命令を読み込む命令読込部と、
    前記命令読込部によって読み込んだ命令が同期命令であるか否かを判断する同期命令判断部と、
    前記同期命令判断部によって前記命令が同期命令であると判断された場合、該命令がトレースされた前記プロセッサに対応させた同期用バッファに保存する命令保存部と、
    全プロセッサ夫々に対応する前記複数のトレースデータから前記同期命令の読み出しが終了した場合、前記所定順に従って選択した前記同期用バッファから命令を1つずつ読み込み、前記転送用トレースデータへ出力して追加するバッファ出力部と
    を有することを特徴とする請求項1記載のトレース結合装置。
  3. 前記バッファ出力部による前記転送用トレースデータへの出力が終了すると、前記命令読込部による処理を再開することを特徴とする請求項2記載のトレース結合装置。
  4. 前記同期命令判断部によって前記命令が同期命令であると判断された場合、前記記憶部内に格納される前記複数のプロセッサの夫々に対応する同期フラグを有するフラグテーブル内の、該命令がトレースされたプロセッサに対応する該同期フラグを設定するフラグ設定部と、
    前記同期命令判断部によって前記命令が同期命令でないと判断された場合、前記フラグテーブルを参照することによって、該命令がトレースされたプロセッサに対応する該同期フラグが設定されているか否かを判断するフラグ判断部と、
    前記フラグ判断部によって前記同期フラグが設定されていないと判断された場合、前記命令を前記転送用トレースデータへ出力して追加するフラグ未設定追加部と
    を有することを特徴とする請求項3記載のトレース結合装置。
  5. 記憶部に記憶された一つのシステムで動作する複数のプロセッサの夫々に対応する複数のトレースデータから所定順に従ってトレースデータを選択し、
    各トレースデータからトレースされた命令を1つずつ読み込みながら、同期命令毎に区切って並べ替えて、前記記憶部内の転送用トレースデータに追加することによって、各プロセッサのトレースを結合する、
    処理をコンピュータに実行させるプログラム。
JP2012034559A 2012-02-20 2012-02-20 トレース結合装置及びプログラム Expired - Fee Related JP5874433B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012034559A JP5874433B2 (ja) 2012-02-20 2012-02-20 トレース結合装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012034559A JP5874433B2 (ja) 2012-02-20 2012-02-20 トレース結合装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2013171410A true JP2013171410A (ja) 2013-09-02
JP5874433B2 JP5874433B2 (ja) 2016-03-02

Family

ID=49265302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012034559A Expired - Fee Related JP5874433B2 (ja) 2012-02-20 2012-02-20 トレース結合装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5874433B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110651250A (zh) * 2017-05-23 2020-01-03 国际商业机器公司 生成和验证包括存储器数据内容的硬件指令跟踪

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02228742A (ja) * 1989-03-01 1990-09-11 Mitsubishi Electric Corp マルチプロセッサシステムにおけるデバッグ装置
JPH08286951A (ja) * 1995-04-11 1996-11-01 Fuji Xerox Co Ltd 情報処理装置及びトレース情報格納方法
JP2011181068A (ja) * 2010-03-03 2011-09-15 Arm Ltd タイムスタンプを生成するための方法、装置およびトレースモジュール

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02228742A (ja) * 1989-03-01 1990-09-11 Mitsubishi Electric Corp マルチプロセッサシステムにおけるデバッグ装置
JPH08286951A (ja) * 1995-04-11 1996-11-01 Fuji Xerox Co Ltd 情報処理装置及びトレース情報格納方法
JP2011181068A (ja) * 2010-03-03 2011-09-15 Arm Ltd タイムスタンプを生成するための方法、装置およびトレースモジュール

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110651250A (zh) * 2017-05-23 2020-01-03 国际商业机器公司 生成和验证包括存储器数据内容的硬件指令跟踪
CN110651250B (zh) * 2017-05-23 2023-05-05 国际商业机器公司 生成和验证包括存储器数据内容的硬件指令跟踪

Also Published As

Publication number Publication date
JP5874433B2 (ja) 2016-03-02

Similar Documents

Publication Publication Date Title
US20210311707A1 (en) Method and system of command buffer between a cpu and gpu
Lustig et al. Reducing GPU offload latency via fine-grained CPU-GPU synchronization
TWI498728B (zh) 非搶占式圖形處理單元上互動除錯之方法和裝置
Van Werkhoven et al. Performance models for CPU-GPU data transfers
US7873507B2 (en) Multi-core model simulator
JP5595633B2 (ja) シミュレーション方法及びシミュレーション装置
US6507809B1 (en) Method and system for simulating performance of a computer system
US20110295587A1 (en) Methods and systems for simulating a processor
EP2615546A1 (en) Method and system, scheduler for parallel simulating processors
Xie et al. Pim-vr: Erasing motion anomalies in highly-interactive virtual reality world with customized memory cube
US9030480B2 (en) Triggering performance event capture via pipelined state bundles
CN109564515A (zh) 为了向后兼容性而对应用程序特定的操作参数进行的实时调整
Gorshkov et al. GPU instruction hotspots detection based on binary instrumentation approach
JP5874433B2 (ja) トレース結合装置及びプログラム
US20230109752A1 (en) Deterministic replay of a multi-threaded trace on a multi-threaded processor
Lázaro-Muñoz et al. A tasks reordering model to reduce transfers overhead on GPUs
JP2012203451A (ja) 半導体集積回路シミュレーション装置及び半導体集積回路のシミュレーション方法
Ma et al. MCMG simulator: A unified simulation framework for CPU and graphic GPU
JP6223637B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
JP2014194746A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
KR20100059822A (ko) 커맨드 실행 순서 결정 방법 및 이를 수행하기 위한 컴퓨팅 디바이스와 컴퓨터 판독가능 기록 매체
JP6239212B1 (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
Moeng et al. Reciprocal abstraction for computer architecture co-simulation
JP2007328775A (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
Nilsson Paravirtualizing OpenGL ES in Simics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150721

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160104

R150 Certificate of patent or registration of utility model

Ref document number: 5874433

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees