IP Library Granted Patent US 7,366,884
Granted Patent B2
US 7,366,884 · App. 10/082,776 · Granted Apr 29, 2008

Context switching system for a multi-thread execution pipeline loop and method of operation thereof

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,366,884
App. No.
10/082,776
Granted
Apr 29, 2008
Kind
B2
Abstract

A context switching system for a multi-thread execution pipeline loop having a pipeline latency and a method of operation thereof. In one embodiment, the context switching system includes a context switch requesting subsystem configured to: (1) detect a device request from a thread executing within the multi-thread execution pipeline loop for access to a device having a fulfillment latency exceeding the pipeline latency, and (2) generate a context switch request for the thread. The context switching system further includes a context controller subsystem configured to receive the context switch request and prevent the thread from executing until the device request is fulfilled.

Claims (42)

1. A context switching system for a multi-thread execution pipeline ioop having a pipeline latency, comprising:

i. A single miss fulfillment first-in-first-out buffer (FIFO);

ii. A context switch requesting subsystem configured to:

(1) Detect a device request from a first thread executing within said multi-thread execution pipeline loop for access to a device having a fulfillment latency exceeding said pipeline latency, and

(2) Generate a context switch request for said first thread; and

iii. A context controller subsystem configured to receive said context switch request and, based thereon, store said first thread in said single miss fulfillment FIFO to prevent said first thread from executing until said device request is fulfilled, said first thread sequencing entirely through said single miss fulfillment FIFO at a rate equivalent to said pipeline latency before exiting therefrom.

2. The context switching system as recited in claim 1 wherein said context controller subsystem is further configured to allow a new thread to enter said multi-thread execution pipeline loop after storing said first thread in said miss fulfillment FIFO.

3. The context switching system as recited in claim 1 wherein said context controller subsystem is further configured to allow other threads within said multi-thread execution pipeline loop to continue to execute while said first thread is waiting for said device request to be fulfilled.

4. The context switching system as recited in claim 1 wherein said context controller subsystem is further configured to:

i. Store said first thread in said miss fulfillment FIFO upon reaching an end position of said multi-thread execution pipeline loop, and

ii. Reinsert said first thread into said multi-thread execution pipeline loop at a beginning position after said first thread exits said miss fulfillment FIFO.

5. The context switching system as recited in claim 1 wherein said first thread is looped back to a beginning stage of said multi-thread execution pipeline loop when said first thread reaches an end stage of said multi-thread execution pipeline loop and said first thread has not finished processing.

6. The context switching system as recited in claim 1 wherein said device request is a request to access external memory due to a cache miss status.

7. For use with a multi-thread execution pipeline loop having a pipeline latency, a method of operating a context switching system, comprising:

i. Detecting a device request from a first thread executing within said multi-thread execution pipeline loop for access to a device having a fulfillment latency exceeding said pipeline latency;

ii. Generating a context switch request for said first thread when said first thread issues said device request; and

iii. Receiving said context switch request and storing said first thread based thereon in a single miss fulfillment first-in-first-out buffer (FIFO) until said device request is fulfilled, said first thread sequencing entirely through said single miss fulfillment FIFO at a rate equivalent to said pipeline latency before exiting therefrom.

8. The method as recited in claim 7 further comprising allowing a new thread to enter said multi-thread execution pipeline loop after storing said first thread in said miss fulfillment FIFO.

9. The method as recited in claim 7 further comprising allowing other threads within said multi-thread execution pipeline loop to continue to execute while said first thread is waiting for said device request to be fulfilled.

10. The method as recited in claim 7 further comprising:

i. Storing said first thread in said miss fulfillment FIFO upon reaching an end position of said multithread execution pipeline loop, and

ii. Reinserting said first thread into said multi-thread execution pipeline loop at a beginning position after said first thread exits said miss fulfillment FIFO.

11. The method as recited in claim 7 further comprising looping said first thread back to a beginning stage of said multi-thread execution pipeline loop when said first thread reaches an end stage of said multi-thread execution pipeline loop and said first thread has not finished processing.

12. The method as recited in claim 7 wherein said device request is a request to access external memory due to a cache miss status.

13. A fast pattern processor that receives and processes protocol data units (PDUs), comprising:

i. A dynamic random access memory (DRAM) that contains instructions;

ii. A memory cache that caches certain of said instructions from said DRAM; and

iii. A tree engine that parses data within said PDUs and employs said DRAM and said memory cache to obtain ones of said instructions, including:

(1) A multi-thread execution pipeline loop having a pipeline latency, and

(2) A context switching system for said multi-thread execution pipeline loop, having:

(a) A single miss fulfillment first-in-first-out buffer (FIFO);

(b) A context switch requesting subsystem that:

(i) Detects a device request from a first thread executing within said multithread execution pipeline loop for access to a device having a fulfillment latency exceeding said pipeline latency, and

(ii) Generates a context switch request for said first thread, and

(3) A context controller subsystem that receives said context switch request and, based thereon, stores said first thread in said single miss fulfillment FIFO until said device request is fulfilled, said first thread sequencing entirely through said single miss fulfillment FIFO at a rate equivalent to having a said pipeline latency before exiting therefrom.

14. The fast pattern processor as recited in claim 13 wherein said context controller subsystem further allows a new thread to enter said multi-thread execution pipeline loop after said first thread is stored in said FIFO.

15. The fast pattern processor as recited in claim 13 wherein said context controller subsystem further allows other threads within said multi-thread execution pipeline loop to continue to execute while said first thread is waiting for said device request to be fulfilled.

16. The fast pattern processor as recited in claim 13 wherein said context switching system is further configured to:

i. Store said first thread in said miss fulfillment FIFO upon reaching an end position of said multithread execution pipeline loop, and

ii. Reinsert said first thread into said multi-thread execution pipeline loop at a beginning position after said first thread exits said miss fulfillment FIFO.

17. The fast pattern processor as recited in claim 13 wherein said first thread is looped back to a beginning stage of said multi-thread execution pipeline loop when said first thread reaches an end stage of said multi-thread execution pipeline loop and said first thread has not finished processing.

18. The fast pattern processor as recited in claim 13 wherein said device is said DRAM and said device request is a request to access said DRAM due to a cache miss status from said memory cache.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: AGERE SYSTEMS LLC
To: LSI CORPORATION
Reel/Frame 034245/0655 →
CERTIFICATE OF CONVERSION Recorded Oct 19, 2014
From: AGERE SYSTEMS INC.
To: AGERE SYSTEMS LLC
Reel/Frame 034014/0846 →
MERGER Recorded Oct 19, 2014
From: AGERE SYSTEMS GUARDIAN CORP.
To: AGERE SYSTEMS INC.
Reel/Frame 033977/0311 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →