JP2018538628A5 - - Google Patents

Download PDF

Info

Publication number
JP2018538628A5
JP2018538628A5 JP2018531614A JP2018531614A JP2018538628A5 JP 2018538628 A5 JP2018538628 A5 JP 2018538628A5 JP 2018531614 A JP2018531614 A JP 2018531614A JP 2018531614 A JP2018531614 A JP 2018531614A JP 2018538628 A5 JP2018538628 A5 JP 2018538628A5
Authority
JP
Japan
Prior art keywords
instruction
replay
state
block
recording
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
JP2018531614A
Other languages
English (en)
Other versions
JP2018538628A (ja
JP6963552B2 (ja
Filing date
Publication date
Priority claimed from US15/252,323 external-priority patent/US11188336B2/en
Application filed filed Critical
Publication of JP2018538628A publication Critical patent/JP2018538628A/ja
Publication of JP2018538628A5 publication Critical patent/JP2018538628A5/ja
Application granted granted Critical
Publication of JP6963552B2 publication Critical patent/JP6963552B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (15)

  1. 命令ブロック中のすべての命令がコミットされるか、または命令のどれもコミットされない命令ブロックに命令がグループ化されるブロックアトミック実行モデルを利用するプロセッサにおいて実行された命令ブロックの実行リプレイを制御するための部分的リプレイコントローラであって、
    前記プロセッサによる前記命令ブロックの実行中に、起こり得るアーキテクチャ状態修正に関連付けられた命令の検出または前記プロセッサにおける例外の発生に応答して、命令ブロックに関して記録/リプレイ状態をアクティブ状態に設定するように構成された検出回路であって、命令は、前記プロセッサにおいてアーキテクチャ状態を修正する場合、起こり得るアーキテクチャ状態修正に関連付けられ、前記命令ブロックの外の機能またはプロセスとの観察可能な対話をもつ、検出回路と、
    前記命令ブロックに関する前記記録/リプレイ状態がアクティブ状態であることに応答して、前記プロセッサによる前記命令ブロックの再実行中に、
    以前生成されたデータが次のロード/記憶命令に関して記録されているかどうかを判断するために、前記命令ブロック中で実行されるべき前記次のロード/記憶命令に対応する記録/リプレイログファイル中のエントリ状態を検査し、
    前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていないことに応答して、前記実行された次のロード/記憶命令の生成データを前記記録/リプレイログファイルに記録し、
    前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていることに応答して、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されている、前記以前生成されたデータを使って、前記次のロード/記憶命令を実行する
    ように構成された記録/リプレイ回路と
    を備える部分的リプレイコントローラ。
  2. 前記検出回路は、
    前記プロセッサによる前記命令ブロックの前記実行中に、起こり得る副作用を有するロード/記憶命令を含む、前記命令ブロック中の前記命令を検出し、
    前記起こり得る副作用を有する前記ロード/記憶命令を含む前記命令の検出に応答して、前記命令ブロックに関して前記記録/リプレイ状態を前記アクティブ状態に設定するように構成された副作用検出回路を備える、請求項1に記載の部分的リプレイコントローラ。
  3. 前記検出回路は、
    前記プロセッサによる前記命令ブロックの前記実行中に、書込みシステム構成レジスタ命令を含む、前記命令ブロック中の前記命令を検出し、
    前記書込みシステム構成レジスタ命令を含む前記命令の検出に応答して、前記命令ブロックに関して、前記記録/リプレイ状態を前記アクティブ状態に設定するように構成された副作用検出回路を備える、請求項1に記載の部分的リプレイコントローラ。
  4. 前記検出回路は、
    前記プロセッサによる前記命令ブロックの前記実行中に、予想される例外を有する命令を含む、前記命令ブロック中の前記命令を検出し、
    前記予想される例外を有する前記命令を含む前記命令の検出に応答して、前記命令ブロックに関して前記記録/リプレイ状態を前記アクティブ状態に設定するように構成された副作用検出回路を備え
    前記予想される例外を有する前記命令は、ウォッチポイント、ブレイクポイント、デバッグステップポイント、または静的ブロック例外を引き起こす動作に関連付けられた命令を含む、請求項1に記載の部分的リプレイコントローラ。
  5. 前記予想される例外を有する前記命令は、静的ブロック例外を引き起こす動作に関連付けられた命令を含み、前記静的ブロック例外は、命令ページ障害、無効ブロックヘッダ、および無効命令符号化からなるグループから構成される、請求項4に記載の部分的リプレイコントローラ。
  6. 前記命令ブロック中のすべての命令が実行されたかどうかを判断し、
    前記命令ブロック中の前記命令すべてが実行されたと判断したことに応答して、前記命令ブロック中の前記実行された命令による外部生成値をコミットするようにさらに構成された、請求項1に記載の部分的リプレイコントローラ。
  7. 前記記録/リプレイ回路は、前記実行された次のロード/記憶命令の前記生成データについての前記記録/リプレイ状態を前記記録/リプレイログファイルに記録するようにさらに構成される、請求項1に記載の部分的リプレイコントローラ。
  8. 前記記録/リプレイ回路は、前記実行された次のロード/記憶命令によってアドレス指定された仮想アドレスを、前記実行された次のロード/記憶命令の前記生成データと関連付けて、前記記録/リプレイログファイルに記録するようにさらに構成される、請求項1に記載の部分的リプレイコントローラ。
  9. 前記命令ブロックに関する前記記録/リプレイ状態がアイドル実行状態であることに応答して、前記検出回路は、前記プロセッサによる前記命令ブロックの実行中に、前記起こり得るアーキテクチャ状態修正に関連付けられた前記命令ブロック中の前記命令を検出するように構成される、請求項1に記載の部分的リプレイコントローラ。
  10. 前記記録/リプレイ状態が前記アイドル実行状態であるときに前記命令ブロックの前記実行中に例外が発生したことに応答して、前記命令ブロックを再実行させるように構成された、請求項9に記載の部分的リプレイコントローラ。
  11. 前記記録/リプレイ状態が前記アクティブ状態であるときに前記命令ブロックの実行中に例外が発生したことに応答して、前記記録/リプレイ回路は、
    前記命令ブロックに関する前記記録/リプレイ状態をロック状態に設定し、
    前記記録/リプレイログファイルへの前記実行された次のロード/記憶命令の前記生成データの記録を中断し、前記次のロード/記憶命令について記録されている前記以前生成されたデータを使って前記次のロード/記憶命令を実行するのを中断するようにさらに構成される、請求項1に記載の部分的リプレイコントローラ。
  12. 前記命令ブロックについての前記記録/リプレイ状態が以前のロック状態からアクティブ状態に戻ったことに応答して、前記記録/リプレイ回路は、前記実行された次のロード/記憶命令の前記生成データを前記記録/リプレイログファイルに記録し、前記次のロード/記憶命令に関して記録されている、前記以前生成されたデータを使って前記次のロード/記憶命令を実行するのを再開するようにさらに構成される、請求項11に記載の部分的リプレイコントローラ。
  13. 前記記録/リプレイ状態が前記アクティブ状態にあるときの前記命令ブロックの前記実行中の前記例外の前記発生に応答して、前記記録/リプレイ回路は、前記例外の前記発生に先立って、前記命令ブロック中の実行された命令による外部生成値をコミットするようにさらに構成される、請求項12に記載の部分的リプレイコントローラ。
  14. 命令ブロック中のすべての命令がコミットされるか、または命令のどれもコミットされない命令ブロックに命令がグループ化されるブロックアトミック実行モデルを利用するプロセッサにおいて命令ブロックをリプレイする方法であって、
    前記プロセッサによる前記命令ブロックの実行中に、起こり得るアーキテクチャ状態修正に関連付けられた命令の検出または前記プロセッサにおける例外の発生に応答して、命令ブロックに関して記録/リプレイ状態をアクティブ状態に設定するステップであって、命令は、前記プロセッサにおいてアーキテクチャ状態を修正する場合、起こり得るアーキテクチャ状態修正に関連付けられ、前記命令ブロックの外の機能またはプロセスとの観察可能な対話をもつ、ステップと、
    前記命令ブロックに関する前記記録/リプレイ状態がアクティブ状態であることに応答して、前記プロセッサによる前記命令ブロックの再実行中に、
    以前生成されたデータが次のロード/記憶命令に関して記録されているかどうかを判断するために、前記命令ブロック中で実行されるべき前記次のロード/記憶命令に対応する記録/リプレイログファイル中のエントリ状態を検査するステップと、
    前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていないことに応答して、前記実行された次のロード/記憶命令の生成データを前記記録/リプレイログファイルに記録するステップと、
    前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていることに応答して、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されている、前記以前生成されたデータを使って、前記次のロード/記憶命令を実行するステップと
    を含む方法。
  15. コンピュータ実行可能命令を記憶したコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、命令ブロック中のすべての命令がコミットされるか、または命令のどれもコミットされない命令ブロックに命令がグループ化されるブロックアトミック実行モデルを利用するプロセッサによって実行されると、前記プロセッサに、
    前記プロセッサによる前記命令ブロックの実行中に、起こり得るアーキテクチャ状態修正に関連付けられた命令の検出または前記プロセッサにおける例外の発生に応答して、命令ブロックに関して記録/リプレイ状態をアクティブ状態に設定することであって、命令は、前記プロセッサにおいてアーキテクチャ状態を修正する場合、起こり得るアーキテクチャ状態修正に関連付けられ、前記命令ブロックの外の機能またはプロセスとの観察可能な対話をもつ、ことと、
    前記命令ブロックに関する前記記録/リプレイ状態がアクティブ状態であることに応答して、前記プロセッサによる前記命令ブロックの再実行中に、
    以前生成されたデータが次のロード/記憶命令に関して記録されているかどうかを判断するために、前記命令ブロック中で実行されるべき前記次のロード/記憶命令に対応する記録/リプレイログファイル中のエントリ状態を検査することと、
    前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていないことに応答して、前記実行された次のロード/記憶命令の生成データを前記記録/リプレイログファイルに記録することと、
    前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていることに応答して、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されている、前記以前生成されたデータを使って、前記次のロード/記憶命令を実行することと
    を行わせる、コンピュータ可読記憶媒体。
JP2018531614A 2015-12-28 2016-12-09 ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ Active JP6963552B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562271475P 2015-12-28 2015-12-28
US62/271,475 2015-12-28
US15/252,323 2016-08-31
US15/252,323 US11188336B2 (en) 2015-12-28 2016-08-31 Replay of partially executed instruction blocks in a processor-based system employing a block-atomic execution model
PCT/US2016/065740 WO2017116652A1 (en) 2015-12-28 2016-12-09 Replay of partially executed instruction blocks in a processor-based system employing a block-atomic execution model

Publications (3)

Publication Number Publication Date
JP2018538628A JP2018538628A (ja) 2018-12-27
JP2018538628A5 true JP2018538628A5 (ja) 2020-01-09
JP6963552B2 JP6963552B2 (ja) 2021-11-10

Family

ID=59086553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018531614A Active JP6963552B2 (ja) 2015-12-28 2016-12-09 ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ

Country Status (9)

Country Link
US (1) US11188336B2 (ja)
EP (1) EP3398060B1 (ja)
JP (1) JP6963552B2 (ja)
KR (1) KR20180099680A (ja)
CN (1) CN108369519B (ja)
AU (1) AU2016380796B2 (ja)
BR (1) BR112018012686A2 (ja)
ES (1) ES2824474T3 (ja)
WO (1) WO2017116652A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452516B2 (en) * 2017-07-10 2019-10-22 Microsoft Technology Licensing, Llc Replaying time-travel traces relying on processor undefined behavior
US10824429B2 (en) * 2018-09-19 2020-11-03 Microsoft Technology Licensing, Llc Commit logic and precise exceptions in explicit dataflow graph execution architectures
US10983801B2 (en) * 2019-09-06 2021-04-20 Apple Inc. Load/store ordering violation management
US11360773B2 (en) * 2020-06-22 2022-06-14 Microsoft Technology Licensing, Llc Reusing fetched, flushed instructions after an instruction pipeline flush in response to a hazard in a processor to reduce instruction re-fetching

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832202A (en) 1988-12-28 1998-11-03 U.S. Philips Corporation Exception recovery in a data processing system
WO1996025705A1 (en) 1995-02-14 1996-08-22 Fujitsu Limited Structure and method for high-performance speculative execution processor providing special features
US6832367B1 (en) 2000-03-06 2004-12-14 International Business Machines Corporation Method and system for recording and replaying the execution of distributed java programs
FR2882449A1 (fr) * 2005-01-21 2006-08-25 Meiosys Soc Par Actions Simpli Procede non intrusif de rejeu d'evenements internes au sein d'un processus applicatif, et systeme mettant en oeuvre ce procede
US7882339B2 (en) 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
US7506318B1 (en) 2005-06-28 2009-03-17 Replay Solutions, Inc. Recording and replaying computer programs
US7958497B1 (en) 2006-06-07 2011-06-07 Replay Solutions, Inc. State synchronization in recording and replaying computer programs
US8079019B2 (en) 2007-11-21 2011-12-13 Replay Solutions, Inc. Advancing and rewinding a replayed program execution
US8316352B2 (en) 2006-06-09 2012-11-20 Oracle America, Inc. Watchpoints on transactional variables
US8190859B2 (en) * 2006-11-13 2012-05-29 Intel Corporation Critical section detection and prediction mechanism for hardware lock elision
US8473919B2 (en) 2008-01-31 2013-06-25 Ca, Inc. System and method for repeating program flow for debugging and testing
JP5385545B2 (ja) * 2008-04-17 2014-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションの実行を制御する装置及び方法
US8291202B2 (en) * 2008-08-08 2012-10-16 Qualcomm Incorporated Apparatus and methods for speculative interrupt vector prefetching
WO2010043401A2 (en) 2008-10-15 2010-04-22 Martin Vorbach Data processing device
US8402318B2 (en) 2009-03-24 2013-03-19 The Trustees Of Columbia University In The City Of New York Systems and methods for recording and replaying application execution
US8549504B2 (en) 2010-09-25 2013-10-01 Intel Corporation Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region
US20130080738A1 (en) 2011-09-23 2013-03-28 Qualcomm Incorporated Processor configured to perform transactional memory operations
US9170915B1 (en) 2011-12-06 2015-10-27 Amazon Technologies, Inc. Replay to reconstruct program state
US9697040B2 (en) 2014-03-26 2017-07-04 Intel Corporation Software replayer for transactional memory programs

Similar Documents

Publication Publication Date Title
JP2018538628A5 (ja)
US20100031084A1 (en) Checkpointing in a processor that supports simultaneous speculative threading
KR102025078B1 (ko) 단일 스텝 실행을 이용한 코드 진단
US9183093B2 (en) Virtual machine crash management
US8321842B2 (en) Replay time only functionalities in a virtual machine
US10089126B2 (en) Function exit instrumentation for tail-call optimized code
RU2012144563A (ru) Контрольно-вычислительная система, способ управления контрольно-вычислительной системой, а также применение контрольно-вычислительной системы
US9086969B2 (en) Establishing a useful debugging state for multithreaded computer program
US7765526B2 (en) Management of watchpoints in debuggers
JP2005339561A5 (ja)
JP2014528127A5 (ja)
US8732418B1 (en) Shadow registry
Dovgalyuk Deterministic Replay of System's Execution with Multi-target QEMU Simulator for Dynamic Analysis and Reverse Debugging.
CN106030532B (zh) 用于事务存储器程序的软件回放器
US10817369B2 (en) Apparatus and method for increasing resilience to faults
JP6963552B2 (ja) ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ
TW201915761A (zh) 在例外遮罩更新指令之後允許未中止的交易處理
CN107111488B (zh) 调试数据处理事务
GB2576288A (en) Generating and verifying hardware instruction traces including memory data contents
Wang et al. VM-μcheckpoint: Design, modeling, and assessment of lightweight in-memory VM checkpointing
JP6920286B2 (ja) 例外処理
US11030075B2 (en) Efficient register breakpoints
JPH02294739A (ja) 障害検出方式
US20210089429A1 (en) Reducing trace recording overheads with targeted recording via partial snapshots
CN106095631B (zh) 一种基于有限状态机实现的多周期非流水线cpu动态调试方法