IP Library Granted Patent US 7,707,361
Granted Patent B2
US 7,707,361 · App. 11/281,840 · Granted Apr 27, 2010

Data cache block zero implementation

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,707,361
App. No.
11/281,840
Granted
Apr 27, 2010
Kind
B2
Abstract

In one embodiment, a processor comprises a core configured to execute a data cache block write instruction and an interface unit coupled to the core and to an interconnect on which the processor is configured to communicate. The core is configured to transmit a request to the interface unit in response to the data cache block write instruction. If the request is speculative, the interface unit is configured to issue a first transaction on the interconnect. On the other hand, if the request is non-speculative, the interface unit is configured to issue a second transaction on the interconnect. The second transaction is different from the first transaction. For example, the second transaction may be an invalidate transaction and the first transaction may be a probe transaction. In some embodiments, the processor may be in a system including the interconnect and one or more caching agents.

Claims (31)

1. A processor comprising:

a core configured to execute a data cache block write instruction; and

an interface unit coupled to the core and to an interconnect on which the processor is configured to communicate;

wherein the core is configured to transmit a request to the interface unit in response to the data cache block write instruction, and wherein the interface unit is configured to issue a first transaction on the interconnect if the request is speculative, and wherein the interface unit is configured to issue a second transaction on the interconnect if the request is non-speculative, and wherein the second transaction is different from the first transaction, and wherein the first transaction is a probe, and wherein the interface unit is configured to record a state of a block affected by the data cache block write instruction in one or more caching agents as indicated by a probe response corresponding to the probe.

2. The processor as recited in claim 1 wherein the second transaction is an invalidate.

3. The processor as recited in claim 1 wherein the core is configured to reissue the request if the request is speculative.

4. The processor as recited in claim 3 wherein the interface unit is configured to monitor the address affected by the data cache block write instruction using the recorded state and a coherency protocol on the interconnect.

5. The processor as recited in claim 4 wherein the core is configured to reissue the request, and wherein the interface unit is configured to return an indication of complete for the request without transmitting a transaction on the interconnect if the request is non-speculative and the recorded state indicates that the block is invalid in the one or more caching agents.

6. The processor as recited in claim 1 wherein the interface unit comprises a request buffer, and wherein the interface unit is configured to allocate an entry in the request buffer to track the state, and wherein the interface unit is configured to compare an address of the request to addresses in the buffer to determine if the request has previously been received.

7. The processor as recited in claim 1 wherein the core comprises a load/store unit including a load/store queue, and wherein the load/store unit is configured to allocate an entry in the load/store queue for the data cache block write instruction, and wherein the load/store unit is configured to transmit the request from the entry.

8. The processor as recited in claim 1 wherein the data cache block write instruction comprises a data cache block zero instruction.

9. A system comprising:

an interconnect;

a processor coupled to the interconnect and configured to execute a data cache block write instruction, wherein the processor is configured to issue a first transaction on the interconnect if the data cache block write instruction is speculative, and wherein the processor is configured to issue a second transaction on the interconnect if the data cache block write instruction is non-speculative, and wherein the second transaction is different from the first transaction; and

one or more caching agents coupled to the interconnect; and

wherein the first transaction is a probe, and wherein the processor is configured to record a state of a block affected by the data cache block write instruction in the one or more caching agents as indicated by a probe response corresponding to the probe.

10. The system as recited in claim 9 wherein the second transaction is an invalidate.

11. The system as recited in claim 9 wherein the processor is configured to monitor the address affected by the data cache block write instruction using the recorded state and a coherency protocol on the interconnect.

12. The system as recited in claim 11 wherein the processor is configured to complete the data cache block write instruction without transmitting another transaction on the interconnect if the data cache block write instruction is non-speculative and the recorded state indicates that the block is invalid in the one or more caching agents.

13. The system as recited in claim 9 wherein the one or more caching agents comprise a second processor.

14. The system as recited in claim 9 wherein the one or more caching agents comprise a second level cache.

15. A method comprising:

executing a data cache block write instruction in a processor;

determining whether or not the data cache block write instruction is speculative;

selecting a selected transaction to be issued, the selecting between a probe and a second transaction different from the probe, and the selecting dependent on whether or not the data cache block write instruction is speculative;

issuing the selected transaction on an interconnect to which the processor is coupled; and

recording a state of a block affected by the data cache block write instruction in one or more caching agents as indicated by a probe response corresponding to the probe.

16. The method as recited in claim 15 wherein the second transaction is an invalidate.

17. The method as recited in claim 15 further comprising:

monitoring the address affected by the data cache block write instruction using the recorded state and a coherency protocol on the interconnect; and

completing the data cache block write instruction without transmitting another transaction on the interconnect if the data cache block write instruction is non-speculative and the recorded state indicates that the block is invalid in the one or more caching agents.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2009
From: PA SEMI, INC.
To: APPLE INC.
Reel/Frame 022793/0565 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2005
From: GUNNA, RAMESH; KADAMBI, SUDARSHAN; BANNON, PETER J.
To: P.A. SEMI, INC.
Reel/Frame 017254/0541 →