JP6963552B2 - ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ - Google Patents
ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ Download PDFInfo
- Publication number
- JP6963552B2 JP6963552B2 JP2018531614A JP2018531614A JP6963552B2 JP 6963552 B2 JP6963552 B2 JP 6963552B2 JP 2018531614 A JP2018531614 A JP 2018531614A JP 2018531614 A JP2018531614 A JP 2018531614A JP 6963552 B2 JP6963552 B2 JP 6963552B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- replay
- record
- block
- processor
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
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)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Retry When Errors Occur (AREA)
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 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 |
| US15/252,323 | 2016-08-31 | ||
| 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 JP2018538628A5 (OSRAM) | 2020-01-09 |
| JP6963552B2 true 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 (8)
| Country | Link |
|---|---|
| US (1) | US11188336B2 (OSRAM) |
| EP (1) | EP3398060B1 (OSRAM) |
| JP (1) | JP6963552B2 (OSRAM) |
| KR (1) | KR102706938B1 (OSRAM) |
| CN (1) | CN108369519B (OSRAM) |
| AU (1) | AU2016380796B2 (OSRAM) |
| ES (1) | ES2824474T3 (OSRAM) |
| WO (1) | WO2017116652A1 (OSRAM) |
Families Citing this family (4)
| 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 (20)
| 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 |
| EP0815507B1 (en) | 1995-02-14 | 2013-06-12 | 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 |
| US8079019B2 (en) | 2007-11-21 | 2011-12-13 | Replay Solutions, Inc. | Advancing and rewinding a replayed program execution |
| US7958497B1 (en) | 2006-06-07 | 2011-06-07 | Replay Solutions, Inc. | State synchronization in recording and replaying computer programs |
| 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 |
| EP2996035A1 (en) | 2008-10-15 | 2016-03-16 | Hyperion Core, Inc. | 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 |
| US8826273B1 (en) * | 2010-12-22 | 2014-09-02 | Vmware, Inc. | Synchronously logging to disk for main-memory database systems through record and replay |
| 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 |
-
2016
- 2016-08-31 US US15/252,323 patent/US11188336B2/en active Active
- 2016-12-09 CN CN201680072709.XA patent/CN108369519B/zh active Active
- 2016-12-09 AU AU2016380796A patent/AU2016380796B2/en active Active
- 2016-12-09 JP JP2018531614A patent/JP6963552B2/ja active Active
- 2016-12-09 ES ES16820447T patent/ES2824474T3/es active Active
- 2016-12-09 EP EP16820447.7A patent/EP3398060B1/en active Active
- 2016-12-09 WO PCT/US2016/065740 patent/WO2017116652A1/en not_active Ceased
- 2016-12-09 KR KR1020187017864A patent/KR102706938B1/ko active Active
Also Published As
| Publication number | Publication date |
|---|---|
| WO2017116652A1 (en) | 2017-07-06 |
| EP3398060B1 (en) | 2020-07-29 |
| US11188336B2 (en) | 2021-11-30 |
| JP2018538628A (ja) | 2018-12-27 |
| KR102706938B1 (ko) | 2024-09-12 |
| CN108369519B (zh) | 2022-03-01 |
| BR112018012686A2 (pt) | 2018-12-04 |
| ES2824474T3 (es) | 2021-05-12 |
| EP3398060A1 (en) | 2018-11-07 |
| CN108369519A (zh) | 2018-08-03 |
| AU2016380796B2 (en) | 2021-12-16 |
| AU2016380796A1 (en) | 2018-06-07 |
| KR20180099680A (ko) | 2018-09-05 |
| US20170185408A1 (en) | 2017-06-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8495344B2 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
| US9304863B2 (en) | Transactions for checkpointing and reverse execution | |
| US9268627B2 (en) | Processor hang detection and recovery | |
| US8473921B2 (en) | Debugging mechanisms in a cache-based memory isolation system | |
| US8316366B2 (en) | Facilitating transactional execution in a processor that supports simultaneous speculative threading | |
| US8918764B2 (en) | Selective trace facility | |
| US9448933B2 (en) | Using redundant transactions to verify the correctness of program code execution | |
| CN103430158B (zh) | 使用执行单一步骤来诊断编码 | |
| CN101901177B (zh) | 多核微处理器及其除错方法 | |
| US20130318530A1 (en) | Deadlock/livelock resolution using service processor | |
| US20110179399A1 (en) | Establishing a useful debugging state for multithreaded computer program | |
| JP6963552B2 (ja) | ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ | |
| US20110145530A1 (en) | Leveraging memory isolation hardware technology to efficiently detect race conditions | |
| US20240320127A1 (en) | Event tracing | |
| US9170903B2 (en) | System level architecture verification for transaction execution in a multi-processing environment | |
| US20140156975A1 (en) | Redundant Threading for Improved Reliability | |
| US9424165B2 (en) | Debugging processor hang situations using an external pin | |
| BR112018012686B1 (pt) | Repetição dos blocos de instrução executados parcialmente em um sistema baseado em processador que emprega um modelo de execução de bloco atômico | |
| CN117389863A (zh) | Ecc故障策略的自检方法、系统、介质及电子设备 | |
| Wang et al. | Mei: A light weight memory error injection tool for validating online memory testers | |
| Heinig et al. | Who’s using that memory? A subscriber model for mapping errors to tasks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191125 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191125 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201221 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210125 |
|
| 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: 20210921 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211015 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6963552 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 |