Legal claims defining the scope of protection, as filed with the USPTO.
1. A data processor comprising: a central processing unit including a cache, said central processing unit adapted to initiate a prefetch read in response to receiving a probe prefetch; a host bridge coupled to said central processing unit and adapted to receive a write with inject packet for a data element from a data producer; and a memory controller coupled to said central processing unit and to said host bridge and adapted to be coupled to a lower level memory system, and having an output coupled to said central processing unit, wherein said memory controller includes a buffer and stores said data element from said host bridge in said buffer, provides said probe prefetch to said central processing unit in response to receiving said data element, and provides said data element from said buffer in response to a prefetch read from said central processing unit.
2. The data processor of claim 1 wherein said central processing unit, said host bridge, and said memory controller are coupled together by means of a crossbar switch.
3. The data processor of claim 1 wherein said host bridge is adapted to be coupled to said data producer using a link substantially compatible with the I/O Link Specification, Revision 1.03 of the HyperTransport Technology Consortium.
4. The data processor of claim 1 wherein said memory controller temporarily stores data in said buffer before providing it to said lower level memory system, and wherein said memory controller removes said data element from said buffer without writing said data element to said lower-level memory system if said central processing unit reads said data element before said memory controller writes it to memory.
5. The data processor of claim 1 wherein said central processing unit, said host bridge, and said memory controller are combined into a single integrated circuit.
6. A data processor comprising: a central processing unit including a cache; a host bridge coupled to said central processing unit and adapted to receive a write with inject packet for a data clement from a data producer at an input of the data processor; and a directory/memory controller coupled to said central processing unit and to said host bridge and adapted to be coupled to a lower-level memory system over a bus separate from the input, and having an output coupled to said central processing unit, wherein said directory/memory controller is responsive to said write with inject packet to check a directory thereof to see if a cache state of a line associated with said data element is in a predetermined state, and if so to send said data element to said central processing unit for storage in said cache without accessing said lower-level memory system.
7. The data processor of claim 6 wherein said central processing unit, said host bridge, and said directory/memory controller are coupled together by means of a crossbar switch.
8. The data processor of claim 6 wherein said directory/memory controller temporarily stores data in a buffer before providing it to said lower-level memory system, and wherein said directory/memory controller removes said data element from said buffer without writing said data to said lower-level memory system if said central processing unit reads said data element before said memory controller writes it to memory.
9. The data processor of claim 6 wherein said central processing unit, said host bridge, and said directory/memory controller are combined into a single integrated circuit.
10. A data processor comprising: a central processing unit including a cache; a host bridge coupled to said central processing unit and adapted to receive a write with inject packet for a data element from a data producer at an input of the data processor; and means coupled to said central processing unit, to said host bridge, and adapted to be coupled to a lower-level memory system over a bus separate from the input for forwarding, in response to said write with inject packet, said data element to said central processing unit for storage in said cache without accessing said lower-level memory system.
11. The data processor of claim 10 wherein said central processing unit is adapted to initiate a prefetch read in response to receiving a probe prefetch and said means for forwarding comprises a memory controller including a buffer, wherein said memory controller stores said data element from said host bridge in said buffer, provides said probe prefetch to said central processing unit in response to receiving said data element, and provides said data element from said buffer in response to said prefetch read from said central processing unit.
12. The data processor of claim 11 wherein said memory controller temporarily stores data in said buffer before providing it to said lower level memory system, and wherein said memory controller removes said data element from said buffer without writing said data element to said lower-level memory system if said central processing unit reads said data element before said memory controller writes it to memory.
13. The data processor of claim 10 wherein said means for forwarding comprises a directory/memory controller, wherein said directory/memory controller is responsive to said write with inject packet to check a directory thereof to see if a cache state of a line associated with said data element is in a predetermined state and is owned by said cache, and if so to send said data element to said central processing unit for storage in said cache without accessing said lower-level memory system.
14. The data processor of claim 13 wherein said directory/memory controller temporarily stores data in a buffer before providing it to said lower-level memory system, and wherein said directory/memory controller removes said data element from said buffer without writing said data element to said lower-level memory system if said central processing unit reads said data element before said directory/memory controller writes it to memory.
15. The data processor of claim 10 wherein said central processing unit, said host bridge, and said means for forwarding are coupled together by means of a crossbar switch.
16. The data processor of claim 10 wherein said host bridge is adapted to be coupled to said data producer using a link substantially compatible with the I/O Link Specification, Revision 1.03 of the HyperTransport Technology Consortium.
17. The data processor of claim 10 wherein said central processing unit said host bridge, and said means for forwarding are combined into a single integrated circuit.
18. In a data processing system having a memory hierarchy including a cache and a lower-level memory system coupled to the cache over a bus, a method comprising the steps of: receiving a data element having a write with inject attribute associated therewith from a data producer at an input separate from the bus; forwarding, in response to the write with inject attribute, said data element to the cache without accessing the lower-level memory system; and updating at least one cache line containing said data element in the cache.
19. The method of claim 18 wherein the data element includes a value representative of the write with inject attribute.
20. The method of claim 18 wherein said step of receiving said data element comprises the step of receiving said data element at an input of a microprocessor.
21. The method of claim 18 wherein said step of receiving said data element comprises the step of receiving at least a portion of a data communication frame.
22. The method of claim 18 wherein said step of receiving said data element comprises the step of receiving said data element with said write with inject attribute using a link substantially compatible with the I/O Link Specification, Revision 1.03 of the HyperTransport Technology Consortium.
23. The method of claim 22 wherein said step of receiving further comprises the step of detecting the write with inject attribute from a reserved command field encoding in a request packet.
24. The method of claim 18 further comprising the step of performing said steps of forwarding said data element to the cache and updating at least one cache line containing said data element in the cache only if the cache is the owner of said data element.
25. The method of claim 18 wherein said step of forwarding comprises the step of temporarily storing said data element in a buffer.
26. The method of claim 25 further comprising the step of performing said step of forwarding conditionally depending upon whether the data processing system requires said buffer for another purpose before said step of forwarding is performed.
27. The method of claim 25 wherein said step of forwarding further comprises the steps of: sending a probe prefetch to a central processing unit coupled to the cache; issuing a read request by the central processing unit in response to said probe prefetch sending said data element to the cache in response to said read request; and removing said data element from said buffer.
28. The method of claim 27 wherein said step of sending said probe prefetch comprises the step of sending a broadcast probe prefetch to a plurality of nodes in the data processing system.
29. The method of claim 27 wherein said step of sending said probe prefetch comprises the step of sending a directed probe prefetch to a node associated with the cache.
30. The method of claim 18 wherein said step of forwarding comprises the step of checking a directory associated with the cache and sending said data element to the cache only if said at least one cache line is owned by the cache and is present in the directory in a predetermined state.
31. The method of claim 30 wherein said step of updating said at least one cache line further comprises the step of updating said at least one cache line only if said at least one cache line is present in the directory in a reserved state or a modified state.
32. The method of claim 18 wherein said step of updating comprises the step of marking said at least one cache line as modified.
33. The method of claim 18 further comprising the step of reading said data element from the cache using an I/O driver program executing on a central processing unit.
34. A method for use in a data processing system having a plurality of nodes each including a central processing unit and an associated cache comprising the steps of: receiving a write with inject packet having a data element associated therewith from a data producer; checking a directory to see if said data element is already present in said directory in a predetermined state; if said data element is not present in said directory in said predetermined stat; creating a directory entry for said data element and writing said data element to a lower-level memory system; and if said data element is already present in said directory in said predetermined state, forwarding said data element to a cache that is the owner of said data element without accessing said lower-level memory system.
35. The method of claim 34 wherein said step of creating said directory entry comprises the step of creating said directory entry in a written state.
36. The method of claim 35 further comprising the step of changing said directory entry from said written state to a reservation state in response to a central processing unit associated with said cache reading said data element.
37. The method of claim 36 wherein said step of checking said directory comprises the step of checking said directory to see if said data element is present in said directory in said reservation state.
38. The method of claim 37 further comprising the step of changing said directory entry from said reservation state to a modified state in response to said step of forwarding said data element to said cache and to said cache updating at least one cache line associated with said data element.
39. The method of claim 38 where said step of checking said directory further comprises the step of checking said directory to see if said data element is present in said directory in said modified state.
40. The method of claim 34 wherein said step of forwarding comprises the step of temporarily storing said data element in a buffer.
41. The method of claim 40 further comprising the step of performing said step of forwarding conditionally depending upon whether the data processing system requires said buffer for another purpose before said step of forwarding is performed.
42. The method of claim 41 wherein said step of forwarding further comprises the steps of: sending a probe prefetch to a central processing unit associated with said cache; receiving a read request by said central processing unit in response to said probe prefetch; sending said data element to said cache in response to said read request; and removing said data element from said buffer.
43. The method of claim 42 wherein said step of sending said probe prefetch comprises the step of sending a directed probe prefetch to a node having a cache that is the owner of said data element.
Unknown
December 26, 2006
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.