IP Library Granted Patent US 8,499,139
Granted Patent B2
US 8,499,139 · App. 12/855,201 · Granted Jul 30, 2013

Avoiding stall in processor pipeline upon read after write resource conflict when intervening write present

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,499,139
App. No.
12/855,201
Granted
Jul 30, 2013
Kind
B2
Abstract

An apparatus having a processor and a circuit is disclosed. The processor generally has a pipeline. The circuit may be configured to (i) detect a first write instruction in the pipeline that writes to a resource, (ii) stall a read instruction in the pipeline where (a) a first read-after-write conflict exists between the first write instruction and the read instruction and (b) no other write instruction to the resource is scheduled between the first write instruction and the read instruction and (iii) not stall the read instruction due to the first read-after-write conflict where a second write instruction to the resource is scheduled between the first write instruction and the read instruction.

Claims (31)

1. An apparatus comprising:

a processor having a pipeline; and

a circuit configured to (i) detect a first write instruction in said pipeline that writes to a resource, (ii) stall a read instruction in said pipeline where (a) a first read-after-write conflict exists between said first write instruction and said read instruction and (b) no other write instruction to said resource is scheduled between said first write instruction and said read instruction and (iii) not stall said read instruction where (a) said first read-after-write conflict exists and (b) a second write instruction to said resource is scheduled between said first write instruction and said read instruction.

2. The apparatus according to claim 1 , wherein said circuit is further configured to examine a determined number of subsequent instructions scheduled after said first instruction.

3. The apparatus according to claim 2 , wherein said circuit is further configured to cancel said first read-after-write conflict in response to finding said second write instruction among said subsequent instructions.

4. The apparatus according to claim 2 , wherein said determined number matches a stage number in said pipeline where said first instruction writes to said resource.

5. The apparatus according to claim 1 , wherein said second write instruction writes to said resource before said read instruction reads from said resource.

6. The apparatus according to claim 1 , wherein said first write instruction writes to said resource at a particular stage of said pipeline.

7. The apparatus according to claim 6 , wherein (i) said read instruction reads from said resource at a given stage of said pipeline and (ii) said given stage is earlier in said pipeline than said particular stage.

8. The apparatus according to claim 6 , wherein (i) said second write instruction writes to said resource at a given stage of said pipeline and (ii) said given stage is earlier in said pipeline than said particular stage.

9. The apparatus according to claim 1 , wherein said circuit is further configured to check for a second read-after-write conflict between said second write instruction and said read instruction.

10. The apparatus according to claim 1 , wherein said pipeline is an interlocked pipeline.

11. A method for eliminating read-after-write conflicts in a processor, comprising the steps of:

(A) detecting a first write instruction in a pipeline of said processor that writes to a resource;

(B) stalling a read instruction in said pipeline where (i) a first read-after-write conflict exists between said first write instruction and said read instruction and (ii) no other write instruction to said resource is scheduled between said first write instruction and said read instruction; and

(C) not stalling said read instruction where (i) said first read-after-write conflict exists and (ii) a second write instruction to said resource is scheduled between said first write instruction and said read instruction.

12. The method according to claim 11 , further comprising the step of:

examining a determined number of subsequent instructions scheduled after said first instruction.

13. The method according to claim 12 , further comprising the step of

canceling said first read-after-write conflict in response to finding said second write instruction among said subsequent instructions.

14. The method according to claim 12 , wherein said determined number matches a stage number in said pipeline where said first instruction writes to said resource.

15. The method according to claim 11 , wherein said second write instruction writes to said resource before said read instruction reads from said resource.

16. The method according to claim 11 , wherein said first write instruction writes to said resource at a particular stage of said pipeline.

17. The method according to claim 16 , wherein (i) said read instruction reads from said resource at a given stage of said pipeline and (ii) said given stage is earlier in said pipeline than said particular stage.

18. The method according to claim 16 , wherein (i) said second write instruction writes to said resource at a given stage of said pipeline and (ii) said given stage is earlier in said pipeline than said particular stage.

19. The method according to claim 11 , further comprising the step of:

checking for a second read-after-write conflict between said second write instruction and said read instruction.

20. A method for eliminating read-after-write conflicts in a processor, comprising the steps of:

(A) detecting a first write instruction schedule in a pipeline of said processor that writes to a resource;

(B) inserting one or more no-operation instructions before a read instruction where (i) a first read-after-write conflict exists between said first write instruction and said read instruction and (ii) no other write instruction to said resource is scheduled between said first write instruction and said read instruction; and

(C) not inserting said no-operation instructions before said read instruction where (i) said first read-after-write conflict exists and (ii) a second write instruction to said resource is scheduled between said first write instruction and said read instruction.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2016
From: INTEL CORPORATION
To: BEIJING XIAOMI MOBILE SOFTWARE CO., LTD.
Reel/Frame 037733/0440 →
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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded May 29, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION
Reel/Frame 035797/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
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 →