IP Library Granted Patent US 8,479,217
Granted Patent B2
US 8,479,217 · App. 13/221,119 · Granted Jul 2, 2013

Apparatus, system, and method for persistent user-level thread

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 8,479,217
App. No.
13/221,119
Granted
Jul 2, 2013
Kind
B2
Abstract

Embodiments of the invention provide a method of creating, based on an operating-system-scheduled thread running on an operating-system-visible sequencer and using an instruction set extension, a persistent user-level thread to run on an operating-system-sequestered sequencer independently of context switch activities on the operating-system-scheduled thread. The operating-system-scheduled thread and the persistent user-level thread may share a common virtual address space. Embodiments of the invention may also provide a method of causing a service thread running on an additional operating-system-visible sequencer to provide operating system services to the persistent user-level thread. Embodiments of the invention may further provide apparatus, system, and machine-readable medium thereof.

Claims (36)

1. A method comprising:

creating a persistent user-level thread to run on an operating-system-sequestered sequencer independently of context switch activities on an operating-system-scheduled thread running on an operating-system-visible sequencer, wherein the persistent user-level thread continues execution when the operating-system-scheduled thread is context switched;

suspending running of the persistent user-level thread when the persistent user-level thread encounters an event to be handled by an operating system; and

communicating to another operating-system-visible sequencer a control-transfer instruction, and executing the control-transfer instruction at a privileged level.

2. The method of claim 1 , wherein the operating-system-scheduled thread and the persistent user-level thread share a common virtual address space.

3. The method of claim 1 , further comprising causing a service thread running on another operating-system-visible sequencer to imitate the suspended persistent user-level thread to provide operating system services to the suspended persistent user-level thread, the imitating enabling the service thread to access an execution state of the suspended persistent user-level thread.

4. The method of claim 3 , further comprising:

causing the service thread to access the execution state of the persistent user-level thread through a common shared virtual address space;

providing a proxy execution to the persistent user-level thread; and

returning a post execution state to the persistent user-level thread.

5. The method of claim 4 , further comprising resuming running of the persistent user-level thread from the post execution state.

6. The method of claim 4 , wherein the service thread and the persistent user-level thread run in the context of a same application.

7. The method of claim 1 , further comprising running the operating-system-visible sequencer and the operating-system-sequestered sequencer on a single core of a processor.

8. The method of claim 1 , further comprising processing instructions at a first rate in the operating-system-visible sequencer and at a second rate in the operating-system-sequestered sequencer.

9. The method of claim 1 , wherein the privileged level includes a ring-0 level.

10. An article comprising a non-transitory machine-accessible storage medium including instructions that when executed cause a system to:

create a persistent user-level thread to run on an operating-system-sequestered sequencer independently of context switch activities on an operating-system-scheduled thread running on an operating-system-visible sequencer, wherein the persistent user-level thread continues execution when the operating-system-scheduled thread is context switched;

suspend running of the persistent user-level thread when the persistent user-level thread encounters an event to be handled by an operating system; and

communicate to another operating-system-visible sequencer a control-transfer instruction, and execute the control-transfer instruction at a privileged level.

11. The article of claim 10 , further comprising instructions that when executed enable the system to share a common virtual address space.

12. The article of claim 10 , further comprising instructions that when executed enable the system to cause a service thread running on another operating-system-visible sequencer to imitate the suspended persistent user-level thread to provide operating system services to the suspended persistent user-level thread, the imitating enabling the service thread to access an execution state of the suspended persistent user-level thread.

13. The article of claim 12 , further comprising instructions that when executed enable the system to:

cause the service thread to access the execution state of the persistent user-level thread through a common shared virtual address space;

provide a proxy execution to the persistent user-level thread; and

return a post execution state to the persistent user-level thread.

14. The article of claim 13 , further comprising instructions that when executed enable the system to resume running of the persistent user-level thread from the post execution state.

15. The article of claim 13 , further comprising instructions that when executed enable the system to run in the context of a same application.

16. The article of claim 10 , further comprising instructions that when executed enable the system to run the operating-system-visible sequencer and the operating-system-sequestered sequencer on a single core of a processor.

17. A processor comprising:

at least one operating-system-visible sequencer to execute instructions scheduled by an operating system; and

at least one operating-system-sequestered sequencer for which the operating system does not schedule instructions, wherein the at least one operating-system-visible sequencer is to create a persistent user-level thread to run on the at least one operating-system-sequestered sequencer independently of context switch activities of an operating-system-scheduled thread executed on the at least one operating-system-visible sequencer, wherein the persistent user-level thread is to continue execution when the operating-system-scheduled thread is context switched, wherein the processor is to suspend execution of the persistent user-level thread when the persistent user-level thread encounters an event to be handled by the operating system, and to communicate to a second operating-system-visible sequencer a control-transfer instruction for execution at a privileged level.

18. The processor of claim 17 , further comprising a sequencer manager to cause a service thread executed on the at least one operating-system-visible sequencer to imitate the suspended persistent user-level thread to provide operating system services to the suspended persistent user-level thread.

19. The processor of claim 18 , wherein the sequencer manager is to:

cause the service thread to pick up a state of the persistent user-level thread via the imitation;

to provide a proxy execution to the persistent user-level thread; and

to return a post execution state to the persistent user-level thread to enable the persistent user-level thread is to resume running from the post execution state.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →