IP Library Granted Patent US 7,590,774
Granted Patent B2
US 7,590,774 · App. 11/291,735 · Granted Sep 15, 2009

Method and system for efficient context swapping

Assignees: Kabushiki Kaisha Toshiba; International Business Machines Corporation
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 7,590,774
App. No.
11/291,735
Granted
Sep 15, 2009
Kind
B2
Abstract

Systems and methods for efficiently switching context between processing elements are disclosed. These systems and methods may transfer the context of a processing element to a storage location. Using the DMA controller of a target processing element, the contents of this storage location may be transferred to another storage location associated with the target processing element. The context may then be restored from this storage location to the proper locations in the target processing element, and the target processing element may then begin processing utilizing this transferred context.

Claims (39)

1. A method for transferring context between processing elements, comprising:

transferring a context from a first storage location to a second storage location using first Direct Memory Access (DMA) logic of a first processing element, wherein the first storage location is in the first processing element of a multi-core microprocessor having a plurality of substantially identical processing elements and the context is configured to be executed by any of the plurality of processing elements, wherein the second storage location is a context area accessible by the second processing element and the transfer from the first storage location to the context area associated with the second processing element is done asynchronously to the operation of the second processing element;

transferring the context from the second storage location into a context buffer of a second processing element of the multi-core processor using second Direct Memory Access (DMA) logic of the second processing element, wherein the transfer of context from the second storage location into the context buffer is done asynchronously to the operation of the first processing element;

receiving a DMA finish signal from the second DMA logic at a context restore controller of the second processing element when the second DMA logic completes the transfer of context from the second storage location into the context buffer;

receiving a second signal at the context controller; and

in response to the DMA finish signal and the second signal, restoring the context from the context buffer of the second processing element such that the second processing element can process using the context.

2. The method of claim 1 , wherein the first storage location is a location in system memory.

3. The method of claim 2 , wherein the first storage location comprises a set of sequential addresses.

4. The method of claim 3 , wherein restoring the context is accomplished by a context restore controller.

5. The method of claim 3 , further comprising processing using the second processing element and the context.

6. The method of claim 1 , wherein the buffer is operable to store a queue of contexts.

7. The method of claim 6 , wherein restoring the context is accomplished by a context restore controller.

8. The method of claim 6 , further comprising processing using the second processing element and the context.

9. A method for transferring context between processing elements, comprising:

transferring a context from a first storage location to a second storage location using first Direct Memory Access (DMA) logic of a first processing element, wherein the first storage location is in the first processing element of a multi-core microprocessor having a plurality of substantially identical processing elements and the context is configured to be executed by any of the plurality of processing elements, wherein the second storage location is a context area accessible by the second processing element and the transfer from the first storage location to the context area associated with the second processing element is done asynchronously to the operation of the second processing element;

transferring the context from the second storage location to a third storage location, wherein the third storage location comprises a context buffer of a second processing element of the multi-core processor using second Direct Memory Access (DMA) logic of the second processing element, wherein the transfer of context from the second storage location into the context buffer is done asynchronously to the operation of the first processing element;

receiving a DMA finish signal from the second DMA logic at a context restore controller of the second processing element when the second DMA logic completes the transfer of context from the second storage location into the context buffer;

receiving a second signal at the context controller; and

in response to the DMA finish signal and the second signal, restoring the context from the context buffer of the second processing element of the multi-core processor such that the second processing element can process using the context.

10. The method of claim 9 , wherein the first storage location comprises a set of sequential addresses.

11. The method of claim 9 , wherein the context buffer is operable to store a queue of contexts.

12. A system for transferring context between processing elements, comprising:

a multi-core microprocessor having a plurality of substantially identical processing elements;

a first processing element of the plurality of substantially identical processing elements having first Direct Memory Access (DMA) logic;

a first storage location operable to store a context of the first processing element transferred from the first processing element using the first DMA logic, wherein the first storage location is an area of system memory and the context is configured to be executed by any of the plurality of processing elements wherein the first storage location is a context area accessible by the second processing element and the transfer to the context area can be done asynchronously to the operation of the second processing element using the first DMA logic;

a second processing element of the plurality of substantially identical processing elements having second Direct Memory Access (DMA) logic and a context restore controller;

a second storage location associated with the second processing element operable to store the context, wherein the second location is the context buffer corresponding to the second processing element and the context can be transferred from the first storage location to the context buffer of the second processing element using the second DMA logic, wherein the transfer of the context from the second storage location into the context buffer can be done asynchronously to the operation of the first processing element; and

the context restore controller of the second processing element is operable, in response to a DMA finish signal from the second DMA logic indicating the completion of the transfer of the context and one or more second signals, to restore the context from the context buffer of the second processing element such that the second processing element can process using the context.

13. The system of claim 12 , wherein the first storage location comprises a set of sequential addresses.

14. The system of claim 13 , wherein the context buffer is operable to store a queue of contexts.

15. A system for transferring context between processing elements, comprising:

a multi-core microprocessor having a plurality of substantially identical processing elements;

a first processing element of the plurality of substantially identical processing elements having first Direct Memory Access (DMA) logic;

a first storage location operable to store a context of a first processing element, wherein the first storage location is in the first processing element of the multi-core microprocessor having a plurality of substantially identical processing elements and the context is configured to be executed by any of the plurality of processing elements;

a second processing element of the plurality of substantially identical processing elements having second Direct Memory Access (DMA) logic;

a second storage location operable to store the context, wherein the second storage location is a context area accessible by the second processing element and the transfer from the first storage location to the context area associated with the second processing element can be done asynchronously to the operation of the second processing element using the first DMA logic;

a third storage location associated with the second processing element operable to store the context wherein the third location is a context buffer corresponding to the second processing element and the context can be transferred from the second storage location to the context buffer of the second processing element using the second DMA logic and wherein the transfer of the context from the second storage location into the context buffer can be done asynchronously to the operation of the first processing element; and

the second processing element further comprising a context restore controller operable, in response to a DMA finish signal indicating the completion of the transfer of the context from the second DMA logic and one or more second signals, to restore the context from the context buffer of the second processing element such that the second processing element can process using the context.

16. The system of claim 15 , wherein the context buffer is operable to store a queue of contexts.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2018
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA ELECTRONIC DEVICES & STORAGE CORPORATION
Reel/Frame 045007/0891 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2007
From: TOSHIBA AMERICA ELECTRONIC COMPONENTS, INC.
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 018973/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2006
From: JOHNS, CHARLES; LIU, PEICHAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 017721/0591 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2006
From: OMIZO, TAKASHI
To: TOSHIBA AMERICA ELECTRONIC COMPONENTS, INC.
Reel/Frame 017724/0390 →
Continuity (1)
Related Publication 20070162640A1 · Jul 12, 2007