IP Library Granted Patent US 8,176,298
Granted Patent B2
US 8,176,298 · App. 10/930,938 · Granted May 8, 2012

Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline

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,176,298
App. No.
10/930,938
Granted
May 8, 2012
Kind
B2
Abstract

An advanced processor comprises a plurality of multithreaded processor cores each having a data cache and instruction cache. A data switch interconnect is coupled to each of the processor cores and configured to pass information among the processor cores. A messaging network is coupled to each of the processor cores and a plurality of communication ports. In one aspect of an embodiment of the invention, the data switch interconnect is coupled to each of the processor cores by its respective data cache, and the messaging network is coupled to each of the processor cores by its respective message station. Advantages of the invention include the ability to provide high bandwidth communications between computer systems and memory in an efficient and cost-effective manner.

Claims (36)

1. A processing system to provide an instruction re-ordering, the processing system comprising:

a plurality of processor cores;

a pipeline to receive a plurality of instructions in a first ordering,

an instruction fetch unit to pass the plurality of instructions in parallel to both an instruction decoding unit and a buffer; and

a processor core of the plurality of processor cores to execute at least some of the plurality of instructions in a second ordering,

the second ordering based at least in part on a stall, where the stall is to cause an instruction of a first thread in the pipeline to be held in the buffer while an instruction of a second thread is to proceed through the pipeline.

2. The system of claim 1 , wherein the plurality of processor cores includes at least eight processor cores.

3. The system of claim 1 , wherein the processor core is to support a plurality of different operating systems.

4. The system of claim 1 , wherein the processor comprises a data cache that includes a 32 KB 4-way set associative data cache, and the processor further comprises an instruction cache that includes a 32 KB 4-way set associative instruction cache.

5. The system of claim 1 , wherein the pipeline includes ten stages.

6. The system of claim 1 , wherein the processor is to execute multiple threads that include four threads.

7. The system of claim 1 , further comprising:

a user-programmable register to direct an external type interrupt to multiple threads to initiate instruction re-ordering or re-threading.

8. The system of claim 1 , wherein if a signal is provided to the buffer requesting the stall, instructions after a stop point are re-threaded.

9. The system of claim 1 , wherein the buffer reorders one or more previously scheduled threads.

10. The system of claim 1 , wherein out-of-order load or store scheduling is supported in the pipeline.

11. The system of claim 1 , wherein Load-Load Re-ordering, Load-Store Re-ordering, Store-Store Re-ordering, and Store-Load Reordering are supported.

12. A method of controlling an ordering of operations in a processor core, the processor core executing multiple threads, the method comprising:

receiving a plurality of operations in a pipeline in a first ordering, the plurality of operations scheduled in the first ordering for processing at the processor core of a processor including a plurality of processor cores;

passing the plurality of operations from an instruction fetch unit in parallel to both an instruction decoding unit that decodes the plurality of operations and a buffer that stores the plurality of operations; and

re-ordering at least some of the plurality of operations in a second ordering, wherein

the second ordering is based at least in part upon a stall, where the stall causes an instruction of a first thread in the pipeline to be held in the buffer while an instruction of a second thread is allowed to proceed through the pipeline.

13. The method of claim 12 , the stall corresponding to a user-programmable control that includes a bit vector in a register.

14. The method of claim 13 , wherein the user-programmable control indicates an interrupt.

15. The method of claim 14 , further comprising:

interrupting the pipeline;

executing the plurality of operations from the buffer; and

executing the plurality of operations from the pipeline when the interrupt is resolved.

16. The method of claim 15 , wherein the buffer operates within a 3-cycle cache in the processor core.

17. The method of claim 13 , wherein the user-programmable control changes a strongly ordered model to a weakly ordered model.

18. The method of claim 12 , wherein the processor core supports a plurality of different operating systems.

19. A multi-threaded processing system configured to provide an instruction reordering, the multi-threaded processing system comprising:

a plurality of processor cores;

a pipeline to receive a plurality of instructions in a first ordering;

an instruction fetch unit to pass the plurality of instructions in parallel to both an instruction decoding unit to decode the plurality of instructions and a buffer that stores the plurality of instructions; and

a processor core of the plurality of processor cores to execute at least some of the plurality of instructions using a second ordering, the second ordering based at least in part on a stall, where the stall is to cause an instruction of a first thread in the pipeline to be held in the buffer while an instruction of a second thread is to proceed through the pipeline.

Assignments (12)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: NETLOGIC I LLC
To: BROADCOM CORPORATION
Reel/Frame 035443/0763 →
CHANGE OF NAME Recorded Apr 16, 2015
From: NETLOGIC MICROSYSTEMS, INC.
To: NETLOGIC I LLC
Reel/Frame 035443/0824 →
RELEASE OF SECURITY INTEREST Recorded Sep 2, 2011
From: VENTURE LENDING & LEASING, INC
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 026855/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2010
From: RMI CORPORATION
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 023926/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2008
From: RAZA MICROELECTRONICS, INC.
To: RMI CORPORATION
Reel/Frame 020476/0351 →
SECURITY INTEREST Recorded Apr 24, 2007
From: RAZA MICROELECTRONICS, INC.
To: VENTURE LENDING & LEASING IV, INC.
Reel/Frame 019224/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2006
From: HASS, DAVID T.
To: RAZA MICROELECTRONICS, INC.
Reel/Frame 018561/0363 →