IP Library Granted Patent US 12,743,339
Granted Patent B2
US 12,743,339 · App. 17/712,121 · Granted Sep 22, 2026

Synchronous microthreading

Inventors: David B. Sheffield (Portland, OR); Erich Boleyn (Portland, OR); Jonathan Pearce (Portland, OR); Sofia Pediaditaki (Portland, OR); Jeffrey Cook (Portland, OR); Shreesha Srinath (Portland, OR); Ching-Kai Liang (Beaverton, OR); Tyler Sondag (Beaverton, OR)
Assignee: Intel Corporation
G06F11/1405G06F9/226G06F9/3009G06F9/3861G06F15/7889
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,743,339
App. No.
17/712,121
Granted
Sep 22, 2026
Kind
B2
Abstract

Techniques for synchronous microthreaded execution are described. An example includes a logical processor to execute one or more threads in a first mode; and a synchronous microthreading (SyMT) co-processor coupled to the logical processor to execute lightweight microthreads, with each lightweight microthread having an independent register state, upon an execution of an instruction to enter into SyMT mode.

Claims (36)

1 . A method comprising:

saving state from all executing microthreads to a microthread state save area upon a detection of a fault by at least one microthread during microthread execution;

marking each fault in a bit vector indicating which microthread faulted, wherein each microthread has an independent register state;

transitioning to a host execution mode and setting a microthread execution event type indication in event information to be delivered by an event delivery logic;

using a fault handler to handle the fault using the saved state;

restarting microthreaded execution.

2 . The method of claim 1 , wherein microcode saves the state.

3 . The method of claim 1 , wherein the state includes error codes and register state.

4 . The method of claim 1 , wherein a retirement unit detects the fault.

5 . The method of claim 1 , wherein the event information includes an error code, an event vector, and the event type.

6 . The method of claim 5 , wherein the event vector indicates one or more of faults of divide, debug, overflow, invalid opcode, general protection, page fault, alignment check, machine check, and vector exception.

7 . The method of claim 1 , further comprising:

halting all microthreads upon a detection of a fault.

8 . An apparatus comprising:

a processor core including microcode to:

save state from all executing microthreads to a microthread state save area upon a detection of a fault by at least one microthread during microthread execution, wherein each microthread has an independent register state,

mark each fault in a bit vector indicating which microthread faulted, and

transition to a host execution mode and setting a microthread execution event type indication in event information to be delivered by an event delivery logic;

a fault handler to handle the fault using the saved state, wherein the microcode is to restart microthreaded execution upon the fault being handled.

9 . The apparatus of claim 8 , wherein the state is to include error codes and register state.

10 . The apparatus of claim 8 , wherein a retirement unit is to detect the fault.

11 . The apparatus of claim 8 , wherein the event information is to include an error code, an event vector, and the event type.

12 . The apparatus of claim 11 , wherein the event vector is to indicate one or more of faults of divide, debug, overflow, invalid opcode, general protection, page fault, alignment check, machine check, and vector exception.

13 . The apparatus of claim 8 , wherein the microcode is further to halt all microthreads upon a detection of a fault.

14 . A system comprising:

memory to store microthread save state;

a hardware processor core including microcode to:

save state from all executing microthreads to the microthread state save upon a detection of a fault by at least one microthread during microthread execution, wherein each microthread has an independent register state,

mark each fault in a bit vector indicating which microthread faulted, and

transition to a host execution mode and setting a microthread execution event type indication in event information to be delivered by an event delivery logic; and

a fault handler to handle the fault using the saved state, wherein the microcode is to restart microthreaded execution upon the fault being handled.

15 . The system of claim 14 , wherein the state is to include error codes and register state.

16 . The system of claim 14 , wherein a retirement unit is to detect the fault.

17 . The system of claim 14 , wherein the event information is to include an error code, an event vector, and the event type.

18 . The system of claim 17 , wherein the event vector is to indicate one or more of faults of divide, debug, overflow, invalid opcode, general protection, page fault, alignment check, machine check, and vector exception.

19 . The system of claim 15 , wherein the microcode is further to halt all microthreads upon a detection of a fault.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2026
From: INTEL CORPORATION
To: INTEL PRODUCTS IP LLC
Reel/Frame 075991/0981 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2026
From: SHEFFIELD, DAVID B.; PEARCE, JONATHAN; PEDIADITAKI, SOFIA; COOK, JEFFREY; SRINATH, SHREESHA; LIANG, CHING-KAI; SONDAG, TYLER
To: INTEL CORPORATION
Reel/Frame 075095/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2026
From: BOLEYN, ERICH
To: INTEL CORPORATION
Reel/Frame 075095/0447 →
Continuity (1)
Related Publication 20230315572A1 · Oct 5, 2023
References Cited (6)
US 12229565B2 · Zaidi · 2025 [cited by examiner]
US 20050132376A1 · Rodgers · 2005 [cited by examiner]
US 20060004988A1 · Jordan · 2006 [cited by examiner]
US 20080140998A1 · Kissell · 2008 [cited by examiner]
US 20110225589A1 · Pirog · 2011 [cited by examiner]
“Microcode.” in: Wikipedia. Mar. 21, 2022 [online]. Retrieved from the Internet <URL: https://en.wikipedia.org/w/index.php?title=Microcode&oldid=1078414677> (Year: 2022). [cited by examiner]