IP Library Granted Patent US 12,505,000
Granted Patent B2
US 12,505,000 · App. 18/775,652 · Granted Dec 23, 2025

Software visible and controllable lock-stepping with configurable logical processor granularities

Inventors: Vedvyas Shanbhogue (Austin, TX); Jeff A. Huxel (Austin, TX); Jeffrey G. Wiedemeier (Austin, TX); James D. Allen (Austin, TX); Arvind Raman (Austin, TX); Krishnakumar Ganapathy (Bee Cave, TX)
Assignee: Intel Corporation
G06F9/52G06F9/30101G06F9/3885G06F11/0724G06F11/0751G06F11/0772G06F11/1629G06F11/1683G06F9/45558
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,505,000
App. No.
18/775,652
Granted
Dec 23, 2025
Kind
B2
Abstract

A processor is described. The processor includes model specific register space that is visible to software above a BIOS level. The model specific register space is to specify a granularity of a processing entity of a lock-step group. The processor also includes logic circuitry to support dynamic entry/exit of the lock-step group's processing entities to/from lock-step mode including: i) termination of lock-step execution by the processing entities before the program code to be executed in lock-step is fully executed; and, ii) as part of the exit from the lock-step mode, restoration of a state of a shadow processing entity of the processing entities as the state existed before the shadow processing entity entered the lock-step mode and began lock-step execution of the program code.

Claims (53)

1 . A processor comprising:

a control register field visible to software above a BIOS level, the control register field to specify a granularity of a processing entity of a lock-step group; and

logic circuitry to support dynamic entry/exit of the lock-step group's processing entities to/from a lock-step mode that is to include:

termination of lock-step execution by the lock-step group's processing entities before a program code, executed in lock-step, is fully executed; and,

as part of an exit from the lock-step mode, restoration of a state of a shadow processing entity of the lock-step group's processing entities as the state existed before the shadow processing entity entered the lock-step mode and began lock-step execution of the program code.

2 . The processor of claim 1 , wherein the granularity is any of:

an instruction execution pipeline granularity;

a module granularity;

a tile granularity;

a die granularity; or

a core granularity.

3 . The processor of claim 1 , further comprising a second control register field to indicate that state information of the shadow processing entity of the lock step group's processing entities has been saved.

4 . The processor of claim 3 , wherein the control register field and the second control register field are assigned a class that permits the control register field and the second control register field to be accessed by at least one of a virtual machine monitor and an operating system.

5 . The processor of claim 4 , wherein the class permits the control register field and the second control register field to be accessed by a BIOS.

6 . The processor of claim 3 , further comprising a third control register field to provide information that describes an event that caused the termination of the lock-step execution of the program code.

7 . The processor of claim 6 , wherein the information is able to describe any of the following:

mis-compare during the lock-step execution of the program code;

an interrupt has been received by a shadow processing entity of the lock-step group's processing entities; or

a software initiated interrupt has occurred.

8 . The processor of claim 6 , further comprising a fourth control register field that, if a mis-compare during the lock-step execution of the program code caused the termination, provides even further information indicating any of:

the lock-step execution of the program code can be restarted without software curing a corrupted processing entity architectural state;

the lock-step execution of the program code cannot be restarted without software curing corrupted processing entity architectural state; or

the lock-step execution of the program code cannot be restarted.

9 . The processor of claim 8 , wherein the logic circuitry is to mark data processed by the lock-step group's processing entities as being poisoned.

10 . The processor of claim 8 , wherein the control register field, the second control register field, the third control register field and the fourth control register field are arranged to be maintained in one or more model specific registers.

11 . A computing system, comprising:

a processor, the processor comprising:

a control register field visible to software above a BIOS level, the control register field to specify a granularity of a processing entity of a lock-step group; and

logic circuitry to support dynamic entry/exit of the lock-step group's processing entities to/from a lock-step mode that is to include:

termination of lock-step execution by the lock-step group's processing entities before a program code, executed in lock-step, is fully executed; and

as part of an exit from the lock-step mode, restoration of a state of a shadow processing entity of the lock-step group's processing entities as the state existed before the shadow processing entity entered the lock-step mode and began lock-step execution of the program code;

a main memory coupled to the processor; and

a network interface.

12 . The computing system of claim 11 , wherein the granularity is any of:

an instruction execution pipeline granularity;

a module granularity;

a tile granularity;

a die granularity; or

a core granularity.

13 . The computing system of claim 11 , further comprising a second control register field to indicate that state information of the shadow processing entity of the lock step group's processing entities has been saved.

14 . The computing system of claim 13 , wherein the control register field and the second control register field are assigned a class that permits the control register field and the second control register field to be accessed by at least one of a virtual machine monitor and an operating system.

15 . The computing system of claim 14 , wherein the class permits the control register field and the second control register field to be accessed by a BIOS.

16 . The computing system of claim 13 , further comprising a third control register field to provide information that describes an event that caused the termination of the lock-step execution of the program code.

17 . The computing system of claim 16 , wherein the information is able to describe any of the following:

mis-compare during the lock-step execution of the program code;

an interrupt has been received by a shadow processing entity of the lock-step group's processing entities; or

a software initiated interrupt has occurred.

18 . The computing system of claim 16 , further comprising a fourth control register field that, if a mis-compare during the lock-step execution of the program code caused the termination, provides even further information indicating any of:

the lock-step execution of the program code can be restarted without software curing a corrupted processing entity architectural state;

the lock-step execution of the program code cannot be restarted without software curing corrupted processing entity architectural state; or

the lock-step execution of the program code cannot be restarted.

19 . The computing system of claim 18 , wherein the logic circuitry is to mark data processed by the lock-step group's processing entities as being poisoned.

20 . The computing system of claim 19 , wherein the control register field, the second control register field, the third control register field and the fourth control register field are arranged to be maintained in one or more model specific registers.

Continuity (2)
Division 17134065 · Dec 24, 2020
Related Publication 20240370312A1 · Nov 7, 2024
References Cited (15)
US 5226152A · Klug et al. · 1993 [cited by applicant]
US 6792525B2 · Mukherjee · 2004 [cited by examiner]
US 8239836B1 · Franz · 2012 [cited by examiner]
US 9052887B2 · Rohleder · 2015 [cited by examiner]
US 9697094B2 · Das · 2017 [cited by examiner]
US 10719356B1 · Corbett · 2020 [cited by examiner]
US 11080135B2 · Chen · 2021 [cited by examiner]
US 20060107116A1 · Michaelis et al. · 2006 [cited by applicant]
US 20060212677A1 · Fossum · 2006 [cited by applicant]
US 20220206875A1 · Shanbhogue et al. · 2022 [cited by applicant]
Office Action, EP App. No. 21198503.1, Aug. 8, 2025, 08 pages. [cited by applicant]
Doran, H.D. et al., “Dynamic Lockstep Processors for Applications with Functional Safety Relevance”, 2021 IEEE 26th International Conference on Emerging Technologies and Factory Automation (ETFA), downloaded from https:… [cited by applicant]
Extended European Search Report for Patent Application No. 21198503.1, Mailed Feb. 25, 2022, 10 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/134,065, Mailed May 8, 2024, 7 pages. [cited by applicant]
Restriction Requirement for U.S. Appl. No. 17/134,065, Mailed Feb. 12, 2024, 6 pages. [cited by applicant]