CN108369519B - 在使用块-原子执行模型的基于处理器的系统中重放部分执行的指令块 - Google Patents

在使用块-原子执行模型的基于处理器的系统中重放部分执行的指令块 Download PDF

Info

Publication number
CN108369519B
CN108369519B CN201680072709.XA CN201680072709A CN108369519B CN 108369519 B CN108369519 B CN 108369519B CN 201680072709 A CN201680072709 A CN 201680072709A CN 108369519 B CN108369519 B CN 108369519B
Authority
CN
China
Prior art keywords
instruction
record
block
playback
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
Application number
CN201680072709.XA
Other languages
English (en)
Chinese (zh)
Other versions
CN108369519A (zh
Inventor
G·M·赖特
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN108369519A publication Critical patent/CN108369519A/zh
Application granted granted Critical
Publication of CN108369519B publication Critical patent/CN108369519B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, 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)
CN201680072709.XA 2015-12-28 2016-12-09 在使用块-原子执行模型的基于处理器的系统中重放部分执行的指令块 Active CN108369519B (zh)

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 (2)

Publication Number Publication Date
CN108369519A CN108369519A (zh) 2018-08-03
CN108369519B true CN108369519B (zh) 2022-03-01

Family

ID=59086553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680072709.XA Active CN108369519B (zh) 2015-12-28 2016-12-09 在使用块-原子执行模型的基于处理器的系统中重放部分执行的指令块

Country Status (8)

Country Link
US (1) US11188336B2 (cg-RX-API-DMAC7.html)
EP (1) EP3398060B1 (cg-RX-API-DMAC7.html)
JP (1) JP6963552B2 (cg-RX-API-DMAC7.html)
KR (1) KR102706938B1 (cg-RX-API-DMAC7.html)
CN (1) CN108369519B (cg-RX-API-DMAC7.html)
AU (1) AU2016380796B2 (cg-RX-API-DMAC7.html)
ES (1) ES2824474T3 (cg-RX-API-DMAC7.html)
WO (1) WO2017116652A1 (cg-RX-API-DMAC7.html)

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 (20)

* 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
JP3670290B2 (ja) 1995-02-14 2005-07-13 富士通株式会社 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法
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
EP2366144B1 (en) 2008-10-15 2015-09-30 Hyperion Core, Inc. Sequential processor comprising an alu array
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

Also Published As

Publication number Publication date
BR112018012686A2 (pt) 2018-12-04
KR102706938B1 (ko) 2024-09-12
ES2824474T3 (es) 2021-05-12
US11188336B2 (en) 2021-11-30
AU2016380796B2 (en) 2021-12-16
US20170185408A1 (en) 2017-06-29
WO2017116652A1 (en) 2017-07-06
JP6963552B2 (ja) 2021-11-10
KR20180099680A (ko) 2018-09-05
JP2018538628A (ja) 2018-12-27
CN108369519A (zh) 2018-08-03
EP3398060A1 (en) 2018-11-07
AU2016380796A1 (en) 2018-06-07
EP3398060B1 (en) 2020-07-29

Similar Documents

Publication Publication Date Title
US7730286B2 (en) Software assisted nested hardware transactions
US9690640B2 (en) Recovery from multiple data errors
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
US9448933B2 (en) Using redundant transactions to verify the correctness of program code execution
TW201140435A (en) Synchronizing SIMD vectors
CN101901177B (zh) 多核微处理器及其除错方法
CN108369519B (zh) 在使用块-原子执行模型的基于处理器的系统中重放部分执行的指令块
US20110202796A1 (en) Microprocessor with system-robust self-reset capability
US20140156975A1 (en) Redundant Threading for Improved Reliability
US9170903B2 (en) System level architecture verification for transaction execution in a multi-processing environment
CN114064236A (zh) 任务执行方法、装置、设备和存储介质
US9218272B2 (en) System level architecture verification of a transactional execution
US12367044B2 (en) Tracking instruction handling using opcode matching in processor-based devices
US11175926B2 (en) Providing exception stack management using stack panic fault exceptions in processor-based devices
US9361103B2 (en) Store replay policy
EP4193262B1 (en) Method, apparatus, and system for run-time checking of memory tags in a processor-based system
CN102073551B (zh) 可自我重置的微处理器及其方法
JP7401751B2 (ja) 情報処理プログラム、情報処理方法及び情報処理システム
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
CN116361233A (zh) 一种微控制器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant