JP5326708B2 - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP5326708B2 JP5326708B2 JP2009065959A JP2009065959A JP5326708B2 JP 5326708 B2 JP5326708 B2 JP 5326708B2 JP 2009065959 A JP2009065959 A JP 2009065959A JP 2009065959 A JP2009065959 A JP 2009065959A JP 5326708 B2 JP5326708 B2 JP 5326708B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- command
- history
- instruction
- asi
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
Description
理を起動する起動命令を検出し、起動命令にしたがって制御命令を管理部に引き渡す入力部と、管理部が制御命令にしたがって読み出した動作履歴を管理部から受け取る出力部と、を備える処理装置として例示される。
取得され、ユーザのコンピュータに提供される。ここで、「安全に」とは、例えば、ユーザのコンピュータからコンピュータの障害につながる可能性のあるアクセスがあった場合に、そのようなアクセスを検出し、そのようなアクセスを禁止できる状態をいう。また、「ユーザのコンピュータシステムの処理と連携して取得」とは、例えば、ユーザのコンピュータで、ユーザ指定の処理が実行されたときにコンピュータで発生したイベントを蓄積でき、ユーザに提供できることをいう。すなわち、本実施例では、ユーザのコンピュータがユーザ指定の処理を実行したときに、コンピュータの内部で何が発生したかを示す情報を提供できるようにする。
機能、動作履歴の取得等を実行する。そして、管理部4は、監視結果、診断結果、あるいは、動作履歴を、インターフェースを通じてサービスプロセッサ100に引き渡す。サービスプロセッサ100は、管理部4とのインターフェースによって、処理装置の監視、診断機能を実行する。サービスプロセッサ100による監視や診断の機能は、通常、ユーザには開放されない。サービスプロセッサ100の処理では、処理装置の内部がアクセスされるため、サービスプロセッサ100の機能がユーザにそのまま開放されると、処理装置の動作が影響を受ける場合もあるからである。
図2は、本実施例に係る処理装置の構成を例示する図である。図2の処理装置は、例えば、コンピュータのCPU、あるいは、CPUを含むコンピュータシステムである。本実施例では、処理装置は、複数のプロセッサ部1と、プロセッサ部1からのメモリアクセス等の要求を受け取るL2キャッシュ制御部30と、L2キャッシュ制御部30からアクセスされるL2(Level−2)キャッシュデータ部61と、各種のインターフェースとを有する。本実施形態では、複数のプロセッサ部1は、個々に示す場合にはプロセッサ部1−1、1−2、1−N等のように呼ばれる。また、複数のプロセッサ部は、総称してプロセッサ部1と呼ばれる。プロセッサ部1は、プロセッサコア、あるいは、単にコアとも呼ばれる。
コマンドは、CPUなどLSIチップを制御するためのコマンド体系が定義されたコマンドである。JTAGコマンドは、LSIの動作を起動し、あるいは、停止する他、CPU内部のスキャンチェーンや特定のレジスタの読み出しなど、CPUの動作を制御する特殊な処理を実行することができる。JTAGインターフェース65から受け取ったコマンドは、L2キャッシュ制御部30に備えるJTAGコマンド制御部40へと送られる。JTAGコマンド制御部40は、実施例1の管理部4に相当する。JTAGコマンド制御部40は、受け取ったJTAGコマンドをデコードし、実行する。必要があれば、JTAGコマンド制御部40は、JTAGインターフェース65を通じて実行結果をサービスプロセッサ100へ送り返す。
命令処理装置11が備えるヒストリRAM51は、現在実行中の命令アドレスと仕掛かり中の命令のいくつかを記録する機能を有する。仕掛かり中とは、命令フェッチ後、まだ命令のデコードあるいは命令の実行が完了していない状態をいう。L1キャッシュ制御部20のヒストリRAM52およびL2キャッシュ制御部30のヒストリRAM53は、キャッシュパイプラインの動作状況、キャッシュがヒットしたアドレス、ヒットしたときの要求の種別、キャッシュミスしたアドレス、ミスしたときの要求の種別等を記録する機能を有する。他CPUインターフェース62のヒストリRAM54、メモリインターフェース63のヒストリRAM55、I/Oインターフェース64のヒストリRAM56は、それぞれのインターフェースに届いた要求を記録する機能を有する。
RAM51−56に付随して設けられている。ヒストリ制御部として、図6のヒストリ制御部51Aが例示される。ヒストリ制御部は、JTAGコマンド制御部40からの指示にしたがって、ヒストリRAM51−56に蓄積する履歴情報を複数種類の情報の中から選択できる。ヒストリ制御部は、RAM読み書き論理ユニットとも呼ばれる。ヒストリ制御部は、JTAGコマンド制御部40からの要求に応じて、記録する履歴情報を選択し、あるいは、記録するタイミングを指定し、履歴情報をヒストリRAMに記録することができる。なお、「履歴情報の記録」は、以下「記憶」あるいは「採取」とも称する。ヒストリ制御部は、履歴制御部に相当する。
本実施例の処理装置では、JTAGコマンドのうち、ヒストリ操作に関わるコマンドがユーザに開放される。ここで、ヒストリ操作としては、例えば、ヒストリ記録の開始・停止・読み出し・記録の再開・履歴情報の選択機能が例示できる。そのような装置を実現するため、処理装置は、プロセッサ部1が実行する命令から、ヒストリ操作に関わるコマンドをJTAGコマンド制御40に引き渡すインターフェースを有する。以下では、処理装置として、SPARC(登録商標)チップを例に説明する。
処理装置にはそのようなASI空間が定義されている。また、処理装置内の制御レジスタが読み書きされる場合には、制御レジスタの読み書きに使用される仮想アドレスの下位8ビット中の一部、例えば5ビットが使用される。そして、1つのASI空間番号に対して、32種類のレジスタのいずれか1つが選択されるようにしてもよい。このようにして、レジスタアクセスの実行対象が拡張され得る。
、ロード命令とストア命令とを識別するコードが指定される。Register Destination(ビット29:25)には、ロードまたはストアされるデータを保持するプロセッサ部1のレジス
タが指定される。RS1(ビット18:14)とRS2(ビット4:0)とによって、メモリの仮想アドレスが指定される。例えば、RS1がベースアドレスであり、RS2がディスプレースメントアドレスである。I=0(ビット13)は、ASI空間番号を直接指定するコマンドであることを示す。直接指定では、レジスタを介さずに、コマンドのオペランド中に、ASI空間番号が指定される。すなわち、データパターン中のIMM_ASI(ビット12:5)に、ASI空間番号が指定される。
(ビット12:0)によって、メモリの仮想アドレスが指定される。
合、ビットの並び順を意識してビットパターンが定義されることもある。しかし、本実施形態では、ビットの並び順は明確には区別しない。例えば、data[62:56]という記述は、
ビット62からビット52のビットパターンということを意味する。
間の競合を回避するための排他制御時の指定である。
する情報である。
内の装置(COREn/UNITm)を選択する選択情報である。例えば、JTAGコマンドによっ
て、ヒストリ記録を蓄積する対象のプロセッサ部1が指定される。
できたか否かが示される。
、data[55:54]="01")のとき、エラーコードが、data[31:28](すなわち、下記JDR[0:3]
)に設定される。このとき、data[31:28]に設定される値は、NACK_code[3:0]として、図
4に記述される。
する表である。図4に示す表の各行は、NACK_code[3:0]の値、値の内容の説明、および備考の説明を含む。NACK_code[3:0]=0は、サービスプロセッサ100がJTAGコマンド
制御部40を使用中、言い換えればJTAGコマンドを実行中であることを示す。data[55:54]=NACKとともに、NACK_code[3:0]=0が返されたときには、プロセッサ部1で実行さ
れるユーザプログラムは、NACK_code[3:0]=0が返される前に書き込んだ『ASI_CM
D_ACCESS_REG』コマンドでリトライする。
する。この値は、例えば、ASIコマンドからのJTAGコマンド実行要求があったが、JTAGコマンドの実行が許可されていない状態、あるいは実行を許可されていないユーザが検知されたことを示す。
コマンドが実行禁止であったことを意味する。これは、例えば、ユーザに許可されていないJTAGコマンドをJIR[0:7]に指定して『ASI_CMD_ACCESS_REG』コマンドが書き込まれたことを示す。これは、通常、ユーザプログラムの欠陥(bug)が原
因である。
とを示す。ここで、BUSY状態は、新たに起動要求される前のJTAGコマンド、例えば、他のプロセッサ部1によるJTAGコマンドの実行がまだ完了していない状態をいう。これは、通常、ユーザプログラムの欠陥(bug)が原因である。
上説明した値以外の値(NACK_code[3:0]=4〜e)は、本実施例では未使用であるものとす
る。
data[47:40]=reserve(all="0")
data[39:32]=reserve(all="0")
data[31:00]=JDR[0:31] : このビットは、JTAGコマンドの返り値である。なお、本明細書中では、『ASI_CMD_RECEIVE_REG』コマンドのデータパターンは、asi_cmd_receive_reg.LOCK、asi_cmd_receive_reg.LOCK_ID、asi_cmd_receive_reg.BUSY/NACK、asi_cmd_receive_reg.JDR、asi_cmd_receive_reg.NACK_codeのように記述される。また、『ASI_CMD_RECEIVE_REG』コマンドのデータパターンが省略されて、データパターンの各部が単にrcv.LOCK、rcv.LOCK_ID、rcv.BUSY/NACK、rcv.JDR、rcv.NACK_codeのように記述される場合もある。
ドの発行がロック中であるか否かを示すビットである。
る経路の構成を説明する図である。
れる。
JTAGコマンド等が書き込まれた場合である。そして、書き込み許可が与えられていれば、JTAGコマンド実行可否検証部41は、『ASI_CMD_ACCESS_REG』コマンドを受け付けるレジスタCMD_ACC(図6参照)の値を更新する。そして、JTAGコマンド実行部42が、書き込まれたJTAGコマンドを実行する。
JTAGコマンド実行部42は、書き込まれたJTAGコマンドに応じて、該当する信号、つまり制御コマンドを処理装置内の各部に送る。例えば、JTAGコマンド実行部42は、ヒストリRAM51−56のヒストリ制御部へ記録開始を指示する。このような指示に対する応答として、例えば、ヒストリRAM51−56のヒストリ制御部からコマンド完了通知が返される。コマンド完了通知によって、JTAGコマンド実行部42は、コマンドの実行を完了する。なお、レジスタCMD_ACCは、例えば、JTAGコマンド制御部40内のレジスタであり(図6参照)、ASI_CMD_ACCESS_REG』コマンドが書き込まれる。
20を経由して、演算器12に返される。
ると、L2キャッシュ制御部30は、さらに、JDR[0:31]を、L1キャッシュ制御部20
を経由して、演算器12へと送り返す。より具体的には、JTAGコマンド制御部40のロードデータ部43が、読み出した値(JDR[0:31])をL2キャッシュ制御部30のコマ
ンド完了通知およびロードデータ部33に引き渡す。さらに、コマンド完了通知およびロードデータ部33は、引き渡された値(JDR[0:31])をL1キャッシュ制御部20のロー
ドデータ部23に転送する。コマンド完了通知およびロードデータ部33は、実施例1で示した出力部3の他の例である。
次にASIコマンドによるJTAGコマンドの発行手順を説明する。本実施例の処理装置は、ユーザプログラムからJTAGコマンドを実行する手段として、この手順を含むユーザプログラムを実行する。以下の説明の中で、各種排他制御のための手順が現れる。排他制御が行われるのは、JTAGコマンドの発行元が、サービスプロセッサ100および処理装置の複数のプロセッサ部1(コア)となり得るからである。すなわち、複数の発行元が同時にJTAGコマンドを発行したとき、排他制御により、単一の発行元からのJTAGコマンド要求が実行され、それ以外の発行元からの要求が待たされる。このようにして、JTAGコマンドを複数同時に実行することによる誤動作が回避される。
セッサ100がJTAGコマンドを実行中である。したがって、読み出した値が"0"でな
い場合には、プロセッサ部1は、他のプロセッサ部、またはサービスプロセッサ100によるJTAGコマンドの完了を待つ。そして、他のプロセッサ部あるいはサービスプロセッサ100によるJTAGコマンドの完了後に、プロセッサ部1は、JTAGコマンドを発行する。そのために、プロセッサ部1は、読み出した値が"0"になるまで所定の間隔を
置いて、『ASI_CMD_RECEIVE_REG』命令の発行を繰り返す。『ASI_CMD_RECEIVE_REG』命令発行が繰り返される場合には、プロセッサ部1は、asi_cmd_receive_reg.LOCKビットを繰り返して読み出す。そして、asi_cmd_recive_reg.LOCKビットが"0"になると、プロセッサ部1は、処理2のF3の手順に移る。
x7fを使用しない。後述するように、0x7fの番号は特別な役割を有している。したがって、プロセッサ部1が番号0x7fをコアごとのユニークな番号として使用すると、正しくLOCKが取得できなくなって誤動作が引き起こされる。
とき、F3で発行された『ASI_CMD_ACCESS_REG』によって、プロセッ
サ部1は、排他制御を経て実行権を獲得する。したがって、プロセッサ部1によりJTAGコマンドが実行されることになる。この2つの条件が満たされた場合、つまりF5,F6がともにYESの場合には、プロセッサ部1は、制御を処理4のF7へ進める。一方、上記2つの条件のいずれかが満たされていないときは、処理2のF3で発行した『ASI_CMD_ACCESS_REG』の実行による実行権の獲得が失敗し、命令が実行されなかったことを意味する。命令が実行されなかったときは、プロセッサ部1は処理1のF1に制御を戻す。
ービスプロセッサ100からのJTAGコマンドに排他制御権を奪われたため、ASIコマンドからのJTAGコマンドが実行されなかったことを意味する。この場合には、プロセッサ部1は、処理2のF3で発行したJTAGコマンドを再度発行する(F12)。ただし、このとき、ASIコマンド間の排他制御は取得済みである。そこで、ロック獲得済みのプロセッサ部1から2回目以降のASIコマンドによるJTAGコマンドを発行したことを示すために、プロセッサ部1は、asi_cmd_access_reg.LOCK_IDに0x7fの値を使用する。そして、プロセッサ部1は、asi_cmd_access_reg.LOCK="1"で『ASI_CMD_ACC
ESS_REG』命令を発行して(F13)、処理4のF7に戻る。asi_cmd_receive_reg.NACK="0"であるときは、ASIコマンドによるJTAGコマンドが無事終了したことを意味するので、プロセッサ部1は、次の処理6に移る。
1は、ASIコマンドによるJTAG−SENSE動作を完了する。
一方、LOADコマンドは処理装置の状態を書き換える、もしくは処理装置に何らかの動作を行うことを指示するコマンドである。処理装置状態の書き換え、あるいは、処理装置への指示動作をJTAG−LOAD動作という。ASIコマンドから発行されたJTAGコマンドがLOADコマンドであった場合には(F14でNOの場合)、LOADコマンドが処理装置の状態を書き換えた段階で、JTAG−LOAD動作が完了する。例えば、F9の正常終了の判定によって、JTAG−LOAD動作の完了が確認される。
.LOCK="1"で『ASI_CMD_ACCESS_REG』命令を発行し(F17、F13
)、手順4のF7に制御を戻す。一方、1つのプロセッサ部1から単発のASIコマンドによるJTAGコマンドを発行する場合、および複数のASIコマンドによるJTAGコマンドのうちの最後のASIコマンドによるJTAGコマンドを発行する場合は、処理6(すなわち、F14、F15)まででJTAGコマンド処理が完了している。そこで、プロセッサ部1は、asi_cmd_access_reg.LOCK="0"で『ASI_CMD_ACCESS_R
EG』命令を発行する。この命令により、プロセッサ部1は、ASIコマンドによるJTAGコマンドの排他制御権を開放し、一連のJTAGコマンド処理を終了する(F18)。
処理装置内部の状態が読み出される。『ASI_CMD_RECEIVE_REG』命令は、また、プロセッサ部1−1と他のプロセッサ部1−2との間といったプロセッサ部1間、あるいはプロセッサ部とサービスプロセッサ100と間の排他制御のためにも使用される。
図9に、JTAGコマンド実行依頼元が、ロックの獲得および開放の実施を試みたときのコマンドデータ『ASI_CMD_ACCESS_REG』への設定値、および、その設定値によるレジスタ『ASI_CMD_RECEIVE_REG』の状態の変化を例示する。
ている。以下、各行での操作内容およびそのときの動作を説明する。なお、図9の表で、上3行は、表のそれぞれのエントリのエントリを分類するためのフィールドである。したがって、以下の説明中の第1行とは、図9の表の第4行目を意味する。すなわち、表の太枠で囲まれた上3行が除外されて、図9の表の行数が数えられる。
OCK_IDを変更しないように制御する。また、実行結果通知(rcv.BUSY/NACK)の状態は、変更されない。また、このとき指示したJTAGコマンドは実行されない。
また、JTAGコマンド制御部40は、レジスタrcv.BUSY/NACK=1/0をセットして、JTAGコマンドの実行を開始する。以上のように、要求元がプロセッサ部1で動作するユーザプログラムである場合の排他制御が行われる。
以上の排他制御とは別に、プロセッサ部1によるJTAGコマンドの実行と、サービスプロセッサ100によるJTAGコマンドの実行とが競合する場合もある。このような競合に対応するための排他制御について、以下に説明する。
(手続1)サービスプロセッサ100は、JTAGのLOADコマンドにより、レジスタJTAG_LOCK_SP_REG="1"の設定をJTAGコマンド制御部40に要求する
(手続2)JTAGコマンド制御部40は、ASIコマンドによるJTAGコマンドを実行中であれば、JTAG_LOCK_SP_REGの更新を一時保留する。そして、実行中のASIコマンドが完了すると、すなわち、asi_cmd_receive_reg.BUSYが"1"から"0"に変わると、JTAGコマンド制御部40は、JTAG_LOCK_SP_REG="1"を設定する。
(手続3)サービスプロセッサ100は、JTAGのSENSEコマンドにより、JTAG_LOCK_SP_REG="1"であることが確認できるまで待つ。
(手続4)TAG_LOCK_SP_REG="1"を確認後、サービスプロセッサ100は、実行すべきJ
TAGコマンド、例えばLOADまたはSENSEを実行する。
(手続5)JTAGコマンド実行終了後、JTAGのLOADコマンドにより、JTAG_LOCK_SP_REG="0"を設定する。
まず、ヒストリRAMに記録する情報は、それぞれのプロセッサ部1、またはL1キャッシュ制御部20、L2キャッシュ制御部30等の各ユニットで毎サイクル取得することも可能である。また、記録すべきイベントが発生したときにヒストリRAMへの書き込み信号をオンにすることで、イベントが発生したときの履歴を採取することが可能となる。本実施形態では、L1キャッシュ部20にキャッシュミスが発生したときに、キャッシュミスしたアドレスとそれに付随する情報、例えばロード・ストアの区別、VIPT(Virtually Indexed Physically Tagged)方式のキャッシュであれば仮想アドレスの一部などが記録される。
トリRAMに記録されるときに実行中のユーザプログラムは、被解析プログラムと呼ばれる。本実施例では、被解析プログラムを実行する本処理装置が、さらに、ASIコマンド経由で、JTAGコマンドを発行し、ヒストリRAMの記録を読み出す。
採取するイベントの種類として、例えば、キャッシュミスが指定される。ただし、他の条件は指定されない。この場合には、キャッシュミス等のイベントが発生するごとに、その動作履歴がヒストリRAMに記録される。動作履歴の記録データが、ヒストリRAMの容量をオーバーフローしない限り、本処理装置(解析プログラム)は、ヒストリRAMに記録されたそれぞれのイベントをそのまま収集された履歴として解析の対象とする。
この場合も、本処理装置(解析プログラム)による処理は、無条件に動作履歴の記録データを収集する場合と同様である。
この場合、本処理装置がユーザプログラム(被解析プログラム)を1回実行したときに、1回の収集による動作履歴が採取される。この場合は、本処理装置(解析プログラム)が、そのような1回の収集結果を解析する。過去に同一のユーザプログラム実行に収集した動作履歴の記録データと、最新の動作履歴の記録データとを結合して、解析の対象としてもよい。
といったJTAGコマンドで定義されるレジスタ(履歴指定部に相当)から指定可能である。本実施形態の処理装置では、これらのレジスタはASIコマンドからのJTAGコマ
ンド、またはサービスプロセッサ100からのJTAGコマンドにより設定可能である。
リRAM51の記録に関する制御の条件、記録するべき履歴の種類等が指定される。また、例えば、レジスタCORE_DEBUG_REG1にはL1キャッシュ制御部20に備えるヒストリR
AM52の記録に関する制御の条件、記録するべき履歴の種類等が指定される。また、レジスタCHIP_DEBUG_REGnには、L2キャッシュ制御部30の他、他CPUインターフェー
ス部62、メモリインターフェース部63、I/Oインターフェース部64にそれぞれ備えるヒストリRAM53−56の記録に関する制御の条件、記録するべき履歴の種類等が指定される。これらのレジスタの値を設定することで、ユーザは既定のヒストリ情報を選択して、指定の条件の下で採取することができる。これらのレジスタの値が記録条件に相当する。
するヒストリ制御部に入力される。このヒストリ制御部は、レジスタCORE_DEBUG_REG0に
よって指定された命令コードを検出したときに、ヒストリ記録を停止する機能を備える。このとき指定する命令コードとしては、ダイアグ命令などが好適である。ダイアグ命令自体は、実際には何もしないが、その命令の空きフィールドにユーザ所望の情報、言い換えれば解析に利用できる情報を埋め込むことができる。ここで、命令の空きフィールドとしては、例えば、直接指定形式のオペランド部分が例示される。なお、直接指定は、命令に指定されるオペランドがレジスタによって間接指定される形式ではないオペランドの指定形式である。また、例えば、ダイアグ命令の代わりに、ネバーブランチ命令、つまり分岐することのない分岐命令は、上記ダイアグ命令と同様に利用され得る。ネバーブランチ命令の分岐先を指定するフィールドが、上記ダイアグ命令の空きフィールドと同様に利用できるからである。このような命令を埋め込む位置は、例えば、画面上に表示されたソースプログラムに対して、ユーザの停止ポイント、つまりブレークポイントの設定によって決定すればよい。そして、ソースコードに対する停止ポイントの指示がなされた後、コンパイラがそのソースプログラムをコンパイルすればよい。
イアグ命令を指示しておく。このレジスタCORE_DEBUG_REG0への指定は、ヒストリRAM
51のヒストリ制御部に引き渡される。このような指定によって、上記固有の番号が埋め込まれたダイアグ命令を検出したときに、ヒストリ制御部は、ヒストリRAM51の記録処理を停止する。このようにして、ユーザは、処理装置にて1つのプログラムが実行される一方、停止ポイントの命令が実行されたときにヒストリRAM51の記録処理を停止させることができる。すなわち、ユーザは、プログラム上の任意の場所をピンポイントにヒストリ停止場所に指示することができる。逆に、固有の番号が埋め込まれたダイアグ命令が実行されたときに、ヒストリRAM51の記録処理を開始することもできる。そのように動作するJTAGコマンドの仕様が定められ、ヒストリ制御部の回路が設けられている。
再開もプログラムに埋め込むことが可能である。したがって、プログラムを走行することで、所望のポイントの履歴が採取される。さらに、この指定とともに、採取するイベントの種類として、ユーザはキャッシュミスの履歴採取を指示してもよい。そのような指定により、所望の命令列におけるキャッシュミスのアドレス履歴が採取できる。さらに、ユーザが、キャッシュミスの履歴採取の他に、命令実行のヒストリ記録として、実行中のプログラムの命令アドレス(プログラムカウンタの値と等価)や命令のデコード、コミット状況など命令実行に関わる情報の採取を指示できるようにしてもよい。このような指定により、ユーザは、ユーザ所望の命令列がハードウェアでどのように実行されているかの履歴を見ることができる。
ジスタCORE_DEBUG_REG1は、ビット0からビット21までの22ビットを有している。レ
ジスタCORE_DEBUG_REG1のそれぞれのビットによってL1キャッシュ制御部20のヒスト
リRAM52への記録が制御される。ユーザプログラム(被解析プログラム)を実行するプロセッサ1は、ASI経由のJTAGコマンドにより、レジスタCORE_DEBUG_REG1に値
を設定する。
ベントが複数設定可能である場合に、どのイベントを採取するか指示する。この指示によって、L1キャッシュ内部のパイプライン動作を観測することも可能である。図10のように、HIS_MODE[2:0]は、複数のイベント(例えば、History_event0からHistory_event4
)を採取したデータの先端回路への選択信号となる。
の場合の指示としては、例えば、L1キャッシュへの新規キャッシュラインの登録(Move−In動作)、L1キャッシュからL2キャッシュ階層へのキャッシュラインの吐き出し(Move−Out動作)、および、L2キャッシュへのキャッシュラインのプリフェッチ(Prefetch動作)の3つのイベントのいずれかが選択して指示される。こ
の指示よって、これらのイベントが発生したときに、そのイベントが選択されて、ヒストリRAM52に記録される。
通常のヒストリ採取ではイベントが発生したタイミングでヒストリRAMへの記録が行われる。一方、ビット17(FRC_CYCLE)が1に設定されると、ヒストリ制御部52Aは、
強制的に毎サイクルのイベントを記録する。
動作履歴が記録される方が好ましい場合がある。すなわち、ユーザは、毎サイクル動作した結果を観測した方が、パイプライン動作の内容が見やすくなる場合がある。ビット17(FRC_CYCLE)は、そのような制御にも利用される。
に加えられる。このMove−Out動作が記録されると、ヒストリRAM52の記録は、プロセッサ部1間のデータの取り合いによる問題の発生を観測する用途にも用いることができる。Move−In動作の記録が残ることでMove−Out動作の記録が減ることが問題になる場合には、DIS_MI_EVENTビットが値1に設定される。この設定は、Move−In動作をヒストリRAMに記録しない指示である。
作のタイミングを確認するためのヒストリ記録を採取する。
となる。この選択信号は、MI_EVEVT、MO_EVENT、およびPF_EVENTを採取したデータのいずれか1つ以上を選択する選択回路に入力される。
ルゼロが設定されているときは、ヒストリ制御部52Aは、FREEZEラッチ523を1にしないように制御する。この制御により、ヒストリ制御部52Aは、イベント回数の観測によるヒストリ記録の停止が不要なケースの履歴採取に備える。
図である。
ド)の各フィールドを有している。ENおよびHIS_MODE[2:0]の指定は、図10の場合と同
様である。OPCODEは、HIS_MODE[2:0]で指定するイベントとともに観測する命令コードの
指定である。COUNTは、その命令コードの発生回数である。
スタ511に格納される。一方、レジスタ512には、L1命令キャッシュ13、命令バッファ13Aを通じて、命令処理装置11にて処理される命令コードが設定される。そして、比較器513が、レジスタ511とレジスタ512とでビットパターンを比較し、比較結果が一致すると、カウンタ514がインクリメントされる。
れた場合は、上記ダイアグ命令が検出されるまではヒストリRAM51への記録を停止するように制御しておく。上記ダイアグ命令が検出された後は、カウンタ514の値と、レジスタ515の値が一致しなくなる。この時点から、ダイアグ命令検出後に、ヒストリRAM51への書き込みが継続するように制御する。こうすることで、ダイアグ命令の埋め込まれた位置が、イベントの採取の開始する開始ポイントとなる。
MIREQ_VALID : このフィールドは、キャッシュミスにより、Move-In Requestを送出した
ことを示す。
MOREQ_VALID : このフィールドは、L2キャッシュからの指示により、Move-Out Requestを送出したことを示す。
PFREQ_VALID : このフィールドは、プリフェッチ要求を送出したことを示す。
REQ_CODE[5:0] : このフィールドの値は、MI/MO/PFREQ_VALIDの要求種別を示すコードで
ある。すなわち、Move-In Request、Move-Out Request、およびPrefetch Requestという
それぞれの要求の詳細分類である。
REQ_SRC_CODE[1:0] :このフィールドの値は、MI/PFREQ_VALIDの要求元を示すコードであ
る。例えば、プロセッサ部1(ユーザプログラム)、分岐予測機構等の処理装置1内の制御部を示すコードである。
REQ_AADRS[40:3] : このフィールドの値は、MI/MO/PFREQ_VALID対象の物理アドレスであ
る。
REQ_LADRS[13] : このフィールドの値は、MI/MO/PFREQ_VALID対象の論理アドレスである
。なお、論理アドレスの[12:0]は、物理アドレスと一致するため、記録されない。さらに、例えば、論理アドレスの上位7ビット[13:7]は、キャッシュのインデックスアドレスとなる。
MIB_VALID[5:0] : このフィールドの値は、MIREQ_VALID要求元のMove-In-Bufferが有効であることを示す、Bufferごとのフラグである。
トリ記録間隔から、コアサイクル単位のイベント数を算出すれば、イベントの頻度が算出できる。
のうちの1つが選択され、ヒストリRAMに書き込む回路の詳細を示している。図13では、ヒストリRAMに記録されるイベント1つ分のデータを一時的に保持するバッファが2個設けられている。この2つのバッファは、バッファBUF0とバッファBUF1で示される。
ロであることを意味する。したがって、識別情報のパターンは、イベント発生時に動作履歴を記録するモードを指示しているときには、ヒストリ記録に残ることがないデータパタ
ーンが記録されていることになる。識別情報のパターンがヒストリに残っていなければ、ユーザは、採取したヒストリに記録されたすべての情報を最新の情報とみなすことができる。識別情報のパターンがいくつか残っていれば、ユーザは、前回の履歴との差分を取るツールを処理装置にて実行することにより、過去に読み出し済みの履歴情報を除外して、最新の履歴情報を取り出すことができる。
以上のようなハードウェアを用いて取得した履歴情報は、OS配下で動作するユーザプログラムへと渡される。この例では、一旦被解析プログラム中で、履歴情報を取得し、処理装置の外部記憶装置のファイルに蓄積する。そして、処理装置が解析プログラムを実行し、そのようなファイル中の履歴情報を解析する。以下、本方式でキャッシュミスアドレスの履歴を取得した場合について、本処理装置で実行されるユーザプログラム、例えば性能解析プログラムでの扱いを説明する。
2ビットの領域を通じて、ヒストリRAMの値を取得する。そのため、この構成では、本処理装置は、JDR[0:31]を通じて1024回の読み出し処理を実行し、32ビット×10
24個の動作履歴を取得する。
きに、短期間、例えば数分から数時間に頻発した動作履歴であってもよい。また、この動作履歴は、長期、例えば数日から数ヶ月に渡って処理装置が被解析プログラムを実行したときに、採取された1024個の動作履歴であってもよい。
イン内のアドレス部分であり、このアドレス部分はキャッシュインデックスアドレスとしては識別されないため、いずれも0となっている。また、次の7ビット"1111111"は、キ
ャッシュインデックスアドレスを識別するビット部分である。結合履歴にあるそれぞれのアドレスに対してこの操作を行ってインデックスタグを付与することで、キャッシュインデックスアドレス表示を含んだキャッシュミスの結合履歴が作成される。
スアドレスがスラッシングを起こしているアドレスであるとして認識できる。
Only Memory)、フラッシュメモリである。メモリ201には、CPU200で実行されるプログラム、およびCPU200が処理するデータが格納される。プログラムには、図14に示したようなユーザプログラム、およびコンパイラ、OS(Operating System)等のシステムプログラムが含まれる。
以上述べたように、本実施例の処理装置は、サービスプロセッサ100の一部機能を、特定の命令セット、以上説明した例ではASIコマンドと呼ばれるSPARC−V9命令セットで定義される体系の中の命令を経由してユーザに開放する。これにより、ユーザからのサービスプロセッサ100の機能の利用が可能となるため、ユーザプログラムからのヒストリの記録制御が可能となる。
る手段を提示した。しかし、本処理装置の構成は、実施例2の構成に限定される訳ではない。例えば、一般的なCPUにはASIコマンドが実装されているとは限らない。しかしながら、それぞれのCPUに固有もしくは一般的なコマンドを使用して、実施例1、2の処理装置と同様の仕組みを実装することも可能である。すなわち、ASIコマンド以外のコマンド体系において、JTAGコマンドを利用する仕組みが以下に例示される。なお、本実施例では、ASIコマンド以外のコマンド体系によってJTAGコマンドを利用する点以外の構成および作用は、実施例1および実施例2と同様である。そこで、同一の構成要素については、同一の符号を付してその説明を省略する。また、実施例1、実施例2で参照した図面に示される、ASIコマンドの処理に関する構成以外の構成は、本実施例にそのまま適用できる。
このノンキャッシュ空間に本方式の2つのアドレス、つまり『ASI_CMD_ACC
ESS_REG』、『ASI_CMD_RECEIVE_REG』用のデータパターンが追加定義され得る。そして、その2つのアドレスへの書き込みが検出されたときに、上記実施例1の処理装置の動作が起動するようにすればよい。このような構成および手順によって、一般的なCPUにおいても実施例1の処理装置と同様の仕組みが、ユーザに利用可能となる。
図5に示した実施例2では、プロセッサ部1内にL2−ASI命令検出部21が設けられている。そして、L2−ASI命令検出部21が検出したASIコマンドは、L2キャッシュ制御部30内のASI命令解釈部31から、JTAGコマンド制御部40のレジスタに書き込まれている。また、JTAGコマンド制御40にて読み出された動作履歴は、L2キャッシュ制御部30内のコマンド完了通知部およびロードデータ部33から、プロセッサ部1に引き渡されている。この構成は、実施例1の入力部2と出力部3とが、L2キャッシュ制御部にある構成を例示している。この構成は、実施例3の図16においても同様である。しかし、本処理装置は、このような構成に限定される訳ではない。
ッシュ制御部30内のJTAGコマンド制御40に設けられたJTAGコマンド可否検証部41に書き込むようにすればよい。また、JTAGコマンド制御40のロードデータ部43が、L1キャッシュ制御部20内のロードデータ部23に、ヒストリRAMから読み出した動作履歴を引き渡すようにすればよい。この場合、L2キャッシュ制御部30の代わり、例えば、データ伝送路が設けられればよい。このような構成は、図16に示す実施例3においても同様に可能である。
I/O命令が『ASI_CMD_ACCESS_REG』を指定すると定義する。また、例えば、識別ビット[0:1]="10"は、特権I/O命令が『ASI_CMD_RECEIVE_REG』を指定すると定義する。
クとして、特権命令検出部11Cが命令処理装置11内に設けられる。特権命令検出部11Cは、命令処理装置11内で、特権命令を検出する既存の回路ブロックと識別ビット[0:1]を検出する回路とを含む。
ASI_CMD_ACCESS_REG』あるいは『ASI_CMD_RECEIVE_REG』として検知する。すると、特権命令検出部11Cは、『ASI_CMD_ACCESS_REG』あるいは『ASI_CMD_RECEIVE_REG』の命令コードをL1キャッシュ制御部20内のレジスタ21Cに書き込む。また、このとき、特権命令検出部11Cは、演算器12からストアデータ部に、JTAGコマンド制御部40に引き渡されるデータパターンをストアレジスタ22に書き込むように指示する。したがって、処理装置は、特権I/O命令実行前に、演算器12に、JTAGコマンド制御部40に引き渡されるデータパターンを生成し、準備しておくことになる。
。また、このとき、ストアデータ部30は、書き込まれたデータをJTAGコマンド実行可否検証部41に転送する。以降の処理は、実施例1−3と同様である。
定し、JTAGコマンド制御部40宛にデータを送出する。この点で、実施例1の入力部2と出力部3がプロセッサ1内に含まれる例と考えることができる。
。なお、JTAGコマンドの書き込みは、例えば、実施例3、4に例示したインターフェースによるものでもよい。これによって、JTAGコマンドが、JTAGコマンドに引き渡され、履歴情報が取得される。なお、JTAGコマンド書き込み時のエラー処理等は、ここでは、省略されている。ただし、S12の処理では、図7、図8に示したエラー処理の手順が実行されるようにしてもよい。
れる。プロセスを終了しない場合、処理装置は、制御をS111に戻す。このようにして、所定時間間隔で、被監視プログラムから停止の指示を受けるまで、記録された動作履歴の読み出しを継続することになる。一方、被監視プロセスから終了の指示を受けると、監視プログラムは、プロセスを終了する。なお、所定時間は0であってもよい。この場合には、処理装置は、待ち時間なしでS111からS116までの処理を繰り返すことになる。ただし、待ち時間なしでも、S111からS115の処理には、処理時間が必要である。
様々なヒストリ情報を、どのようなタイミングで採取し、どのようにその情報を解析し、どのように性能向上にフィードバックしていくかの詳細については、上記以外に様々な手法が存在する。しかしながら、上記で述べたにように、目的に応じたヒストリ情報を選択して取得し、その結果を様々な手法で解析することで、性能向上に向けた取り組みをすることができる。
本処理装置のユーザは、JTAGコマンドが持つ豊富で強力な機能を、安全にユーザが使用することができる。ただし、ユーザがOSを通じて非公開の機能を利用できるように、そのような機能がOS経由で起動されるようにしてもよい。そのような機能は、一般には開放されないが、システム管理用途にユーザに使用され得る。そうすると、例えば、ユーザは、JTAGコマンドが備えるクロック制御機構を使って、OSからCPUのクロックを起動したり停止したり、動作周波数を変更することも可能となる。また、ユーザは、JTAGコマンドが備えるキャッシュメモリ容量の変更機能を使って、OSなどからキャッシュ容量を変更することによる電力対策を行うことも可能となる。
2 入力部
3 出力部
4 管理部
5 履歴記録部
11 命令処理装置
12 演算器
13 L1命令キャッシュ
14 L1オペランドキャッシュ
20 L1キャッシュ制御部
21 ASI命令検出部
22,32 ストアデータ部
23 ロードデータ部
30 L2キャッシュ制御部
31 ASI命令解釈部
33 コマンド完了通知部およびロードデータ部
40 JTAGコマンド制御部
41 JTAGコマンド実行可否検証部
42 JTAGコマンド実行部
43 ロードデータ部
51,52,53,54,55,56 ヒストリRAM
51A、52A ヒストリ制御部
100 サービスプロセッサ
Claims (7)
- 命令を含むプログラムを実行する実行部と、
前記実行部の動作のうち記録の対象となる動作の種類と、前記動作を記録する条件である記録条件とを保持する履歴レジスタと、
前記実行部が実行した動作の履歴である動作履歴を記録する履歴記録部と、
前記プログラムに含まれる命令のうち、前記実行部が実行する命令以外の命令である制御命令を引き渡す処理を起動する起動命令を検出した場合、前記制御命令を引き渡す起動部と、
前記起動部が起動命令を検出し、且つ、前記制御命令が書き込み命令の場合、前記動作の種類と前記記録条件とに応じた動作履歴を前記履歴記録部に記録させるとともに、前記起動部が起動命令を検出し、且つ、前記制御命令が読み出し命令の場合、前記履歴記録部に記録された動作履歴を読み出す管理部と、
前記管理部が読み出した動作履歴を受け取る出力部とを有することを特徴とする演算処理装置。 - 前記記録条件は、前記プログラム中のいずれかの命令の指定を含み、前記実行部が前記指定された命令を実行することが、記録開始の条件または記録停止の条件とされている請求項1に記載の演算処理装置。
- 前記実行対象のプログラムに含まれる命令または前記命令に指定されるデータを格納するメモリ上のアドレスでのキャッシュミスの検出回数を、前記命令またはデータをキャッシュに登録するときのインデックスアドレスごとに集計する手段をさらに備える請求項1または2に記載の演算処理装置。
- 前記履歴記録部は、記録容量の限界に相当する記録領域の末端まで前記動作履歴を記録した後に、記録領域の先頭から新たな動作履歴を記録する環状記録部と、
前記管理部からの制御によって前記動作履歴の記録を開始するときに、記録の開始を示す所定の識別情報を設定する識別情報設定部と、を有する請求項1から3のいずれか1項に記載の演算処理装置。 - 前記実行部が前記プログラムの実行を開始した後の複数の時点で、前記出力部から動作履歴を取得する取得部と、
前記複数の時点でそれぞれ取得された動作履歴を結合し、単一のファイルに格納する履歴結合部と、をさらに備える請求項1から4のいずれか1項に記載の演算処理装置。 - 前記実行部が命令および前記命令に指定されるデータにアクセスするアドレス空間は、
前記起動命令、前記管理部宛の制御命令、および前記制御命令に指定されるデータが格納される第1のアドレス空間と、
前記起動命令以外の命令およびその命令に指定されるデータが格納される少なくとも1つの第2のアドレス空間と、を含む請求項1から5のいずれか1項に記載の演算処理装置。 - 演算処理装置の制御方法において、
前記演算処理装置が有する実行部が、命令を含むプログラムを実行し、
前記演算処理装置が有する履歴記録部が、前記実行部が実行した動作の履歴である動作履歴を記録し、
前記演算処理装置が有する起動部が、前記プログラムに含まれる命令のうち、前記実行部が実行する命令以外の命令である制御命令を引き渡す処理を起動する起動命令を検出した場合、前記制御命令を引き渡し、
前記起動部が起動命令を検出し、且つ、前記制御命令が書き込み命令の場合、前記演算処理装置が有する履歴レジスタに保持された、前記実行部の動作のうち記録の対象となる動作の種類と前記動作を記録する条件である記録条件とに基づき、前記演算処理装置が有する管理部が、動作履歴を前記履歴記録部に記録させ、
前記起動部が起動命令を検出し、且つ、前記制御命令が読み出し命令の場合、前記管理部が、前記履歴記録部に記録された動作履歴を読み出し、
前記演算処理装置が有する出力部が、前記管理部が読み出した動作履歴を受け取ることを特徴とする演算処理装置の制御方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009065959A JP5326708B2 (ja) | 2009-03-18 | 2009-03-18 | 演算処理装置および演算処理装置の制御方法 |
| US12/726,121 US8731688B2 (en) | 2009-03-18 | 2010-03-17 | Processing apparatus and method for acquiring log information |
| EP10156867A EP2230602B1 (en) | 2009-03-18 | 2010-03-18 | Processing apparatus and method for acquiring log information |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009065959A JP5326708B2 (ja) | 2009-03-18 | 2009-03-18 | 演算処理装置および演算処理装置の制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010218367A JP2010218367A (ja) | 2010-09-30 |
| JP5326708B2 true JP5326708B2 (ja) | 2013-10-30 |
Family
ID=42236597
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009065959A Expired - Fee Related JP5326708B2 (ja) | 2009-03-18 | 2009-03-18 | 演算処理装置および演算処理装置の制御方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8731688B2 (ja) |
| EP (1) | EP2230602B1 (ja) |
| JP (1) | JP5326708B2 (ja) |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9043584B2 (en) * | 2010-07-26 | 2015-05-26 | International Business Machines Corporation | Generating hardware events via the instruction stream for microprocessor verification |
| JPWO2012172682A1 (ja) * | 2011-06-17 | 2015-02-23 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
| JP5923987B2 (ja) * | 2012-01-06 | 2016-05-25 | オムロン株式会社 | ノード装置およびネットワークシステム |
| JP2013191162A (ja) * | 2012-03-15 | 2013-09-26 | Ricoh Co Ltd | 動作解析装置、画像形成装置、動作解析方法およびプログラム |
| US9454462B2 (en) | 2012-03-16 | 2016-09-27 | International Business Machines Corporation | Run-time instrumentation monitoring for processor characteristic changes |
| US9411591B2 (en) | 2012-03-16 | 2016-08-09 | International Business Machines Corporation | Run-time instrumentation sampling in transactional-execution mode |
| US9430238B2 (en) | 2012-03-16 | 2016-08-30 | International Business Machines Corporation | Run-time-instrumentation controls emit instruction |
| US9367316B2 (en) | 2012-03-16 | 2016-06-14 | International Business Machines Corporation | Run-time instrumentation indirect sampling by instruction operation code |
| US9280447B2 (en) | 2012-03-16 | 2016-03-08 | International Business Machines Corporation | Modifying run-time-instrumentation controls from a lesser-privileged state |
| US9483268B2 (en) | 2012-03-16 | 2016-11-01 | International Business Machines Corporation | Hardware based run-time instrumentation facility for managed run-times |
| US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
| US9465716B2 (en) | 2012-03-16 | 2016-10-11 | International Business Machines Corporation | Run-time instrumentation directed sampling |
| US9405541B2 (en) | 2012-03-16 | 2016-08-02 | International Business Machines Corporation | Run-time instrumentation indirect sampling by address |
| US9158660B2 (en) | 2012-03-16 | 2015-10-13 | International Business Machines Corporation | Controlling operation of a run-time instrumentation facility |
| US9471315B2 (en) | 2012-03-16 | 2016-10-18 | International Business Machines Corporation | Run-time instrumentation reporting |
| US9250902B2 (en) | 2012-03-16 | 2016-02-02 | International Business Machines Corporation | Determining the status of run-time-instrumentation controls |
| JP6089492B2 (ja) * | 2012-08-14 | 2017-03-08 | 富士通株式会社 | システム制御装置、情報処理システム、システム制御装置の制御方法およびシステム制御装置の制御プログラム |
| US9170968B2 (en) * | 2012-09-27 | 2015-10-27 | Intel Corporation | Device, system and method of multi-channel processing |
| US9519568B2 (en) | 2012-12-31 | 2016-12-13 | Nvidia Corporation | System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application |
| US9471456B2 (en) * | 2013-05-15 | 2016-10-18 | Nvidia Corporation | Interleaved instruction debugger |
| JP6331865B2 (ja) | 2014-08-13 | 2018-05-30 | 富士通株式会社 | プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 |
| US20160124651A1 (en) * | 2014-11-03 | 2016-05-05 | Texas Instruments Incorporated | Method for performing random read access to a block of data using parallel lut read instruction in vector processors |
| WO2016097791A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for programmable load replay preclusion |
| US10191844B2 (en) * | 2015-04-29 | 2019-01-29 | Cisco Technology, Inc. | Automatic garbage collection thrashing monitoring |
| US11232453B2 (en) * | 2015-09-30 | 2022-01-25 | Mastercard International Incorporated | Method and system for authentication data collection and reporting |
| US10740002B1 (en) * | 2016-05-05 | 2020-08-11 | Arista Networks, Inc. | System status log |
| US9875167B1 (en) * | 2017-03-29 | 2018-01-23 | Google Inc. | Distributed hardware tracing |
| US10365987B2 (en) | 2017-03-29 | 2019-07-30 | Google Llc | Synchronous hardware event collection |
| JP7013901B2 (ja) * | 2018-02-05 | 2022-02-01 | オムロン株式会社 | 制御装置、監視方法、および監視プログラム |
| US11436524B2 (en) * | 2018-09-28 | 2022-09-06 | Amazon Technologies, Inc. | Hosting machine learning models |
| US11562288B2 (en) | 2018-09-28 | 2023-01-24 | Amazon Technologies, Inc. | Pre-warming scheme to load machine learning models |
| GB2577708B (en) * | 2018-10-03 | 2022-09-07 | Advanced Risc Mach Ltd | An apparatus and method for monitoring events in a data processing system |
| CN114826773B (zh) * | 2022-06-02 | 2024-04-16 | 合肥卓讯云网科技有限公司 | 一种基于日志数据的自定义日志告警方法和装置 |
| CN120123201B (zh) * | 2025-05-12 | 2025-07-18 | 迪思杰(北京)数据管理技术有限公司 | 数据库日志分析控制方法、装置、电子设备及存储介质 |
Family Cites Families (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0689141A3 (en) | 1994-06-20 | 1997-10-15 | At & T Corp | Disruption-based hardware support for system performance profiling |
| EP0742677A3 (en) * | 1995-05-08 | 1999-09-15 | Fujitsu Limited | Header converting method |
| JPH1185573A (ja) * | 1997-09-04 | 1999-03-30 | Nec Eng Ltd | 性能測定システム及びその測定方法並びにその測定制御プログラムを記録した記録媒体 |
| JP2000047974A (ja) * | 1998-07-27 | 2000-02-18 | Fujitsu Ltd | バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム |
| US6212652B1 (en) | 1998-11-17 | 2001-04-03 | Sun Microsystems, Inc. | Controlling logic analyzer storage criteria from within program code |
| JP2001051874A (ja) * | 1999-08-12 | 2001-02-23 | Hitachi Ltd | マイクロコンピュータ |
| US6792563B1 (en) * | 2000-04-28 | 2004-09-14 | Intel Corporation | Method and apparatus for bus activity tracking |
| US7093108B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Apparatus and method for efficiently incorporating instruction set information with instruction addresses |
| JP4445160B2 (ja) * | 2001-05-18 | 2010-04-07 | 富士通株式会社 | イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム |
| US7047521B2 (en) * | 2001-06-07 | 2006-05-16 | Lynoxworks, Inc. | Dynamic instrumentation event trace system and methods |
| US7080289B2 (en) * | 2001-10-10 | 2006-07-18 | Arm Limited | Tracing multiple data access instructions |
| US7313734B2 (en) * | 2002-01-14 | 2007-12-25 | International Business Machines Corporation | Method and system for instruction tracing with enhanced interrupt avoidance |
| JP3961371B2 (ja) * | 2002-08-21 | 2007-08-22 | 富士通株式会社 | 情報処理装置 |
| US7181723B2 (en) | 2003-05-27 | 2007-02-20 | Intel Corporation | Methods and apparatus for stride profiling a software application |
| US7392370B2 (en) * | 2004-01-14 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics |
| JP2005215816A (ja) | 2004-01-28 | 2005-08-11 | Hitachi Ltd | ハードウェアモニタを用いた性能プロファイリング方法 |
| JP4451188B2 (ja) * | 2004-04-05 | 2010-04-14 | 株式会社日立製作所 | 情報処理システム、及び情報処理システムの制御方法 |
| JP4504737B2 (ja) | 2004-05-26 | 2010-07-14 | ルネサスエレクトロニクス株式会社 | パフォーマンス・モニタ回路 |
| US20060129999A1 (en) * | 2004-11-16 | 2006-06-15 | Sony Computer Entertainment Inc. | Methods and apparatus for using bookmarks in a trace buffer |
| US7437618B2 (en) * | 2005-02-11 | 2008-10-14 | International Business Machines Corporation | Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing |
| US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
| US7886198B2 (en) * | 2005-05-16 | 2011-02-08 | Texas Instruments Incorporated | Method and system of identifying overlays used by a program |
| US8001427B2 (en) * | 2005-05-16 | 2011-08-16 | Texas Instruments Incorporated | Method and system of indexing into trace data based on entries in a log buffer |
| US7673101B2 (en) * | 2005-05-16 | 2010-03-02 | Texas Instruments Incorporated | Re-assigning cache line ways |
| US20070150871A1 (en) * | 2005-12-22 | 2007-06-28 | International Business Machines Corporation | Autonomically adjusting the collection of performance data from a call stack |
| JP2007241918A (ja) * | 2006-03-13 | 2007-09-20 | Fujitsu Ltd | プロセッサ装置 |
| JP4832125B2 (ja) | 2006-03-15 | 2011-12-07 | 富士通セミコンダクター株式会社 | 性能解析装置、性能解析方法、性能解析プログラム、および記録媒体 |
| JP4681491B2 (ja) | 2006-03-31 | 2011-05-11 | 富士通株式会社 | プロファイリングプログラムおよびプロファイリング方法 |
| JP2008009829A (ja) * | 2006-06-30 | 2008-01-17 | Fujitsu Ltd | ストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法 |
| WO2008029450A1 (fr) * | 2006-09-05 | 2008-03-13 | Fujitsu Limited | Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement |
| JP4895908B2 (ja) * | 2006-09-12 | 2012-03-14 | 株式会社リコー | ログ転送装置、ログ転送プログラムおよび記録媒体 |
| US20080155352A1 (en) * | 2006-11-01 | 2008-06-26 | Senthil Bakthavachalam | Method and system for carrying out an operation based on a log record of a computer program |
| JP2008134830A (ja) * | 2006-11-28 | 2008-06-12 | Hitachi Ltd | 節電機能と診断機能の両方を備えたストレージシステム |
| JP5029245B2 (ja) * | 2007-09-20 | 2012-09-19 | 富士通セミコンダクター株式会社 | プロファイリング方法及びプログラム |
| US8863091B2 (en) * | 2007-10-19 | 2014-10-14 | Oracle International Corporation | Unified tracing service |
| US8453121B2 (en) * | 2007-10-25 | 2013-05-28 | International Business Machines Corporation | Managing the tracing of the execution of a computer program |
| US8627302B2 (en) * | 2007-11-27 | 2014-01-07 | Oracle America, Inc. | Sampling based runtime optimizer for efficient debugging of applications |
| JP5157424B2 (ja) * | 2007-12-26 | 2013-03-06 | 富士通セミコンダクター株式会社 | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
| JP5119994B2 (ja) * | 2008-03-14 | 2013-01-16 | 富士通株式会社 | 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置 |
| JP2009259089A (ja) * | 2008-04-18 | 2009-11-05 | Nec Corp | プログラム実行経路追跡装置、プログラム実行経路追跡方法、及びプログラム |
| GB2459741B (en) * | 2008-05-08 | 2012-05-02 | Icera Inc | Debugging system and method |
| JP5067266B2 (ja) * | 2008-06-04 | 2012-11-07 | 富士通株式会社 | Jtag機能付き集積回路ボード |
| JP5423232B2 (ja) * | 2009-08-17 | 2014-02-19 | 富士通株式会社 | プロセス状態検知プログラム、情報処理装置、プロセス状態検知方法 |
| US8086633B2 (en) * | 2009-08-27 | 2011-12-27 | International Business Machines Corporation | Unified user identification with automatic mapping and database absence handling |
| CN102231130B (zh) * | 2010-01-11 | 2015-06-17 | 国际商业机器公司 | 计算机系统性能分析方法和装置 |
-
2009
- 2009-03-18 JP JP2009065959A patent/JP5326708B2/ja not_active Expired - Fee Related
-
2010
- 2010-03-17 US US12/726,121 patent/US8731688B2/en not_active Expired - Fee Related
- 2010-03-18 EP EP10156867A patent/EP2230602B1/en not_active Not-in-force
Also Published As
| Publication number | Publication date |
|---|---|
| EP2230602B1 (en) | 2012-12-12 |
| US8731688B2 (en) | 2014-05-20 |
| EP2230602A1 (en) | 2010-09-22 |
| JP2010218367A (ja) | 2010-09-30 |
| US20100242025A1 (en) | 2010-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5326708B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
| USRE49305E1 (en) | Data processing system having cache memory debugging support and method therefor | |
| US6754856B2 (en) | Memory access debug facility | |
| US11853424B2 (en) | Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location | |
| EP2037368A2 (en) | Simulation of program execution to detect problem such as deadlock | |
| JP2021510434A (ja) | 投機的キャッシュ記憶領域 | |
| US7844860B2 (en) | Apparatus and computer program product in a processor for performing in-memory tracing using existing communication paths | |
| US20090031173A1 (en) | Method, Apparatus, and Computer Program Product in a Processor for Dynamically During Runtime Allocating Memory for In-Memory Hardware Tracing | |
| US20030135719A1 (en) | Method and system using hardware assistance for tracing instruction disposition information | |
| US8347274B2 (en) | Debugging support device, debugging support method, and program thereof | |
| KR20070080589A (ko) | 메모리 속성들을 사용하기 위한 기술 | |
| JP7684989B2 (ja) | 処理回路によって処理されるサンプル操作のプロファイリング | |
| US20060184837A1 (en) | Method, apparatus, and computer program product in a processor for balancing hardware trace collection among different hardware trace facilities | |
| CN103443776B (zh) | 半导体装置 | |
| US7177982B2 (en) | Method to maintain order between multiple queues with different ordering requirements in a high frequency system | |
| US20030135718A1 (en) | Method and system using hardware assistance for instruction tracing by revealing executed opcode or instruction | |
| CN107003897B (zh) | 监控事务处理资源的利用率 | |
| US8516226B1 (en) | Executing a prefetching policy responsive to entry into an execution phase of an application | |
| CN105980979B (zh) | 用于检测暂停的逻辑分析器 | |
| WO2025114684A1 (en) | Collecting diagnostic information | |
| Saravu | Multi-Processor Memory Scoreboard: A multi-processor memory ordering and data consistency checker |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111107 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130213 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130226 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130430 |
|
| 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: 20130625 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130708 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5326708 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |