IP Library Granted Patent US 9,424,046
Granted Patent B2
US 9,424,046 · App. 13/649,505 · Granted Aug 23, 2016

Systems and methods for load canceling in a processor that is connected to an external interconnect fabric

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 9,424,046
App. No.
13/649,505
Granted
Aug 23, 2016
Kind
B2
Abstract

Systems and methods for load canceling in a processor that is connected to an external interconnect fabric are disclosed. As a part of a method for load canceling in a processor that is connected to an external bus, and responsive to a flush request and a corresponding cancellation of pending speculative loads from a load queue, a type of one or more of the pending speculative loads that are positioned in the instruction pipeline external to the processor, is converted from load to prefetch. Data corresponding to one or more of the pending speculative loads that are positioned in the instruction pipeline external to the processor is accessed and returned to cache as prefetch data. The prefetch data is retired in a cache location of the processor.

Claims (40)

1. A method for load canceling in a processor that is connected to an external interconnect fabric, comprising:

responsive to a flush request and a corresponding cancellation of pending speculative loads from a load queue, converting an action type of one or more of said pending speculative loads, that are executing in the instruction pipeline external to said processor, from load to prefetch;

accessing data corresponding to said one or more of said pending speculative loads that are executing in said instruction pipeline external to said processor; and

placing said data in a cache location.

2. The method of claim 1 wherein said pending speculative loads that are executing at stages internal to said processor are dropped.

3. The method of claim 1 wherein said flush request is based upon a determination of a branch misprediction.

4. The method of claim 1 wherein said flush request is based upon a determination other than a branch misprediction.

5. The method of claim 1 wherein said pending speculative loads are speculative bad loads.

6. The method of claim 1 wherein said load queue has 32 entries.

7. The method of claim 1 wherein said cache location comprises a location of a level one cache.

8. A cache system, comprising:

a level two cache; and

a level one cache comprising:

a load queue; and

a cache controller comprising:

a converter component for converting an action type of one or more pending speculative loads, that are executing in an instruction pipeline external to said cache system, from load to prefetch in response to a flush request and a corresponding cancellation of pending speculative loads from a load queue;

an accessing component for accessing data corresponding to said one or more pending speculative loads that are positioned in said instruction pipeline external to said cache system; and

a data retiring component for placing said data in said cache system.

9. The cache system of claim 8 wherein said pending speculative loads that are executing at stages internal to said processor are dropped.

10. The cache system of claim 8 wherein said flush request is based upon a determination of a branch misprediction.

11. The cache system of claim 8 wherein said flush request is based upon a determination other than a branch misprediction.

12. The cache system of claim 8 wherein said pending speculative loads are speculative bad loads.

13. The cache system of claim 8 wherein said load queue has 32 entries.

14. The cache system of claim 8 wherein said data retiring component retires said data in said level one cache.

15. A processor, comprising:

a CPU; and

a cache system, comprising:

a level two cache system; and

a level one cache system comprising:

a load queue; and

a cache controller comprising:

a converter component for converting an action type of one or more pending speculative loads, that are executing in an instruction pipeline external to said processor, from load to prefetch in response to a flush request and a corresponding cancellation of pending speculative loads from a load queue;

an accessing component for accessing data corresponding to said one or more pending speculative loads that are executing in said instruction pipeline external to said processor; and

a data retiring component for placing said data in said cache system.

16. The processor of claim 15 wherein said pending speculative loads that are executing at stages internal to said processor are dropped.

17. The processor of claim 15 wherein said flush request is based upon a determination of a branch misprediction.

18. The processor of claim 15 wherein said flush request is based upon a determination other than a branch misprediction.

19. The processor of claim 15 wherein said pending speculative loads are speculative bad loads.

20. The processor of claim 15 wherein said data retiring component retires said data in said level one cache.

21. The processor of claim 15 wherein said accessing component accesses said data from sources coupled to said cache system by an interconnect fabric.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2016
From: SOFT MACHINES, INC.
To: INTEL CORPORATION
Reel/Frame 040631/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2012
From: AVUDAIYAPPAN, KARTHIKEYAN; ABDALLAH, MOHAMMAD
To: SOFT MACHINES, INC.
Reel/Frame 029112/0948 →