IP Library Granted Patent US 9,323,575
Granted Patent B1
US 9,323,575 · App. 14/632,568 · Granted Apr 26, 2016

Systems and methods for improving data restore overhead in multi-tasking environments

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 9,323,575
App. No.
14/632,568
Granted
Apr 26, 2016
Kind
B1
Abstract

A computer processing system includes a central processing unit (CPU) and logic instructions operable to, when a task ready to be scheduled for execution in the CPU ( 402 ) is the same as a task yielding to the task ready to be scheduled ( 406 -Y), retain context information for the yielding task in background registers in the CPU, and move the context information for the yielding task directly from the background registers to foreground registers in the CPU for the task ready to be scheduled ( 410 ). The task ready to be scheduled is executed using the context information in the foreground registers ( 316 ).

Claims (61)

1. A computer processing system comprising:

a processor core including:

a central processing unit (CPU) configured to execute one or more tasks;

a core task scheduler (CTS) coupled to communicate with the CPU;

a memory associated with the CTS;

a set of foreground context registers accessible by the CPU;

a set of background context registers accessible by the CPU and the CTS;

logic instructions operable to:

when a task is ready to be scheduled and the information in the background context registers is associated with the task ready to be scheduled, and

when an identifier of the task ready to be scheduled is the same as an identifier of a yielding task,

 using the information in the background context registers for the task without replacing the information in the background context registers with information from the memory associated with the CTS.

2. The processing system of claim 1 , further comprising:

logic instructions operable to:

when the task is ready to be scheduled, wait until the information in the background context registers is associated with the task ready to be scheduled.

3. The processing system of claim 1 , wherein when the identifier of the task ready to be scheduled is not the same as the identifier of the yielding task, replace the information in the background context registers with the information from the memory associated with the CTS.

4. The processing system of claim 1 , further comprising:

logic instructions operable to set a background valid indicator for the information in the background context registers when the identifier of the task ready to be scheduled is the same as the identifier of the yielding task.

5. The processing system of claim 1 , further comprising:

logic instructions operable to, when a task is yielding, push information in the foreground registers to the background registers.

6. The processing system of claim 5 , further comprising:

logic instructions operable to, when the task is yielding, pull information in the background registers to the foreground registers.

7. The processing system of claim 6 , further comprising:

logic instructions operable to, when the task is yielding, save the information in the background registers to the memory associated with the CTS.

8. The processing system of claim 5 , further comprising:

logic instructions operable to, when the task is yielding, set a background valid indicator to a first state when all of the information for the task ready to be scheduled has been restored to the background registers.

9. The processing system of claim 1 , further comprising:

logic instructions operable to execute the task ready to be scheduled when the background valid indicator is set to the first state.

10. A method of performing a context switch in a computer processing system comprising:

when a task ready to be scheduled for execution in a central processing unit (CPU) is the same as a task yielding to the task ready to be scheduled, retaining context information for the yielding task in background registers in the CPU, moving the context information for the yielding task directly from the background registers in the CPU to foreground registers in the CPU for the task ready to be scheduled;

when the task ready to be scheduled for execution is not the same as the task yielding to the task ready to be scheduled, moving the context information for the task ready to be scheduled from memory associated with a core task scheduler (CTS) in the processing system to the background registers in the CPU and then to the foreground registers in the CPU once the yielding task has yielded; and

executing the task ready to be scheduled using the context information in the foreground registers.

11. The method of claim 10 , further comprising:

saving the context information in the background registers to the memory associated with the CTS once the task ready to be scheduled is ready to be executed.

12. The method of claim 10 , further comprising:

setting a valid indicator to a first state for the context information in the background registers when the task ready to be scheduled is the same as a task yielding to the task ready to be scheduled, wherein the valid indicator is set before the context information for the yielding task is loaded to the foreground registers.

13. The method of claim 10 , further comprising:

waiting until the valid indicator is in the first state before loading the context information from the background registers to the foreground registers.

14. A computer processing system comprising:

a central processing unit (CPU);

logic instructions operable to:

when a task ready to be scheduled for execution in the CPU is the same as a task yielding to the task ready to be scheduled,

retain context information for the yielding task in background registers in the CPU,

move the context information for the yielding task directly from the background registers to foreground registers in the CPU for the task ready to be scheduled;

execute the task ready to be scheduled using the context information in the foreground registers.

15. The processing system of claim 14 , further comprising:

a core task scheduler (CTS);

a memory associated with the CTS;

logic instructions operable to:

when the task ready to be scheduled for execution is not the same as the task yielding to the task ready to be scheduled, move the context information for the task ready to be scheduled from the memory associated with the CTS in the processing system to the background registers in the CPU and then to the foreground registers in the CPU once the yielding task has yielded.

16. The processing system of claim 14 , further comprising:

logic instructions operable to:

save the context information in the background registers to the memory associated with the CTS once the task ready to be scheduled is ready to be executed.

17. The processing system of claim 14 , further comprising:

logic instructions operable to:

set a valid indicator to a first state for the context information in the background registers when the task ready to be scheduled is the same as the task yielding to the task ready to be scheduled, wherein the valid indicator is set before the context information for the yielding task is loaded to the foreground registers.

18. The processing system of claim 14 , further comprising:

logic instructions operable to, when a task is yielding, push information in the foreground registers to the background registers.

19. The processing system of claim 14 , further comprising:

logic instructions operable to, when the task is yielding, pull information in the background registers to the foreground registers.

20. The processing system of claim 17 , further comprising:

logic instructions operable to wait to execute the task ready to be scheduled until the background valid indicator is set to the first state.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →