IP Library Granted Patent US 10,732,976
Granted Patent B2
US 10,732,976 · App. 14/655,122 · Granted Aug 4, 2020

Integrated circuit processor and method of operating the integrated circuit processor in different modes of differing thread counts

Inventors: Alistair Robertson (Glasgow, GB); Jeffrey W. Scott (Austin, TX)
Assignee: NXP USA, Inc.
G06F9/30189G06F9/30123G06F9/3851G06F9/3891G06F9/462G06F9/48G06F9/50
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 10,732,976
App. No.
14/655,122
Granted
Aug 4, 2020
Kind
B2
Abstract

A processor includes an instruction pipeline. The pipeline can be operated alternatively in a multi-thread mode and in a single-thread mode. In the multi-thread mode, the instruction pipeline processes multiple threads in an interleaved or simultaneous manner. In the single-thread mode, the pipeline processes a single thread. The instruction pipeline comprises multiple functional units, each of which is reserved for one thread among the multiple threads when the pipeline is in the multi-thread mode and reserved for one context layer among multiple context layers when the instruction pipeline is in the single-thread mode.

Claims (22)

1. A integrated circuit processor comprising an instruction pipeline operable alternatively in a multi-thread mode and in a single-thread mode; wherein said instruction pipeline, when in said multi-thread mode, is arranged to process multiple threads, and when in said single-thread mode is arranged to process a single thread;

said instruction pipeline comprising multiple register sets including a first register set and a second register set, each of said multiple register sets reserved for one thread among said multiple threads when said pipeline is in said multi-thread mode, and each of said multiple register sets is capable of being used for a corresponding context layer when said instruction pipeline is in said single-thread mode, wherein, in said single-thread mode, said multiple register sets enable a context switch from a first context layer in the first register set executed during a first particular time range of the execution of the single thread to a second context layer in the second register set executed during a second particular time range of the execution of the single thread, in which the first register set stores data associated with the first context layer which includes state information for restoring an interrupted process,

wherein the integrated circuit processor further comprises a control register which is accessed in single-thread mode and has a first binary variable which indicates that the single thread may use a register set of the multiple register sets corresponding to a disabled thread of the multiple threads for the second context layer upon the context switch, and a second binary variable which identifies the second register set to be used for the second context layer upon the context switch in the single thread wherein the second binary variable of the control register identifies the second register set during execution of the first context layer, prior to the context switch to the second context layer.

2. The integrated circuit processor of claim 1 , each of said multiple register sets comprising a set of registers.

3. The integrated circuit processor of claim 1 , wherein when said pipeline is in said single-thread mode, each of said multiple register sets stores data associated with the corresponding context layer of the multiple context layers.

4. The integrated circuit processor of claim 3 , wherein said data associated with the corresponding context layer of the multiple context layers includes state information for restoring an interrupted process.

5. The integrated circuit of claim 1 , further comprising a mode selection unit for selecting an active mode among said multi-thread mode and said single-thread mode.

6. The integrated circuit processor of claim 1 , wherein said instruction pipeline is implemented in a single core of said integrated circuit processor.

7. The integrated circuit processor of claim 1 , wherein said instruction pipeline is capable of containing instructions from different threads when in said multi-thread mode.

8. The integrated circuit processor of claim 1 , wherein said instruction pipeline is arranged to contain instructions from only one thread when in said single-thread mode.

9. The integrated circuit processor of claim 1 , wherein said instruction pipeline is arranged to be flushed in response to a context change.

10. The integrated circuit processor of claim 1 , wherein said instruction pipeline is arranged to process multiple threads in an interleaved or simultaneous manner when in said multi-thread mode.

11. A method of operating an integrated circuit processor comprising an instruction pipeline, said method comprising:

operating said instruction pipeline alternatively in a multi-thread mode and in a single-thread mode;

when said instruction pipeline, is operating in said multi-thread mode, processing multiple threads in an interleaved or simultaneous manner;

when said instruction pipeline is operating in said single-thread mode, processing a single thread having multiple context layers,

wherein said instruction pipeline comprises multiple register sets including a first register set and a second register set, wherein each of said multiple register sets is reserved for one thread among said multiple threads when said pipeline is in said multi-thread mode, and each of said multiple register sets is capable of being used for a different context layer among said multiple context layers when said instruction pipeline is in said single-thread mode; and

storing, in a first control register, a first binary variable which indicates that the single thread may use a register set of the multiple register sets corresponding to a disabled thread of the multiple threads for the second context layer upon the rapid context switch, and a second binary variable which identifies the second register set to be used for the second context layer upon the rapid context switch in the single thread;

performing a context switch in said single-thread mode from a first context layer in the first register set executed during a first particular time range of the execution of the single thread to a second context layer in the second register set executed during a second particular time range of the execution of the single thread, in which the first register set stores data associated with the first context layer which includes state information for restoring an interrupted process, wherein performing the context switch comprises accessing the first control register, wherein the storing occurs prior to performing the context switch such that the second binary variable of the control register identifies the second register set during execution of the first context layer, prior to the context switch to the second context layer.

12. The method of claim 11 , wherein when said instruction pipeline is operating in said multi-threaded mode, the method further comprises processing multiple threads using time multiplexing.

13. The method of claim 11 , wherein said instruction pipeline is arranged to contain instructions from only one thread when in the single-thread mode.

14. The method of claim 11 , wherein said instruction pipeline is arranged to process multiple threads simultaneously.

Assignments (15)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
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 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 20, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037565/0510 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 20, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037565/0527 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0859 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 6, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036284/0105 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 6, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036284/0363 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 6, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036284/0339 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2015
From: ROBERTSON, ALISTAIR; SCOTT, JEFFREY W
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 035962/0238 →
Cited By (1)
US 12,461,749