Claims
- 1. An apparatus comprising a system memory and a cache memory having a plurality of memory elements, wherein system coherency for data stored in a subset of the memory elements is maintained utilizing software coherency control, while system coherency for the remaining memory elements is maintained utilizing hardware coherency control.
- 2. The apparatus of claim 1, wherein software coherency control maintains the system coherency for cache lines accessed by a resident processor.
- 3. The apparatus of claim 1, wherein software coherency control is comprised of a plurality of executable instructions executing on the resident processor to selectively invoke an invalidate operation.
- 4. The apparatus of claim 3, wherein the software coherency control issues the invalidate operation to invalidate the content of a processor accessed memory element as the processor accesses the memory element.
- 5. The apparatus of claim 1, wherein hardware coherency control maintains the system coherency for memory elements written by direct memory access (DMA) devices.
- 6. The apparatus of claim 1, wherein hardware coherency control maintains system coherency by issuing a kill operation when an appropriate memory element is written by a direct memory access (DMA) device.
- 7. The apparatus of claim 6, wherein the kill operation is selectively generated by a memory controller.
- 8. The apparatus of claim 1, wherein software coherency control is maintained by one or more processors, while hardware coherency control is maintained by one or more memory controllers.
- 9. The apparatus of claim 1 further comprising a tag buffer comprising a plurality of memory elements corresponding to the plurality of memory elements of the system and cache memories.
- 10. The apparatus of claim 9, wherein each of the memory elements of the tag buffer stores state information associated with corresponding memory elements of the system memory or the cache memory.
- 11. The apparatus of claim 10, wherein the state information denotes whether the corresponding memory element in system memory or cache memory is under hardware or software coherency control.
- 12. A method for maintaining system coherency of a plurality of memory elements in a system memory and a cache memory comprising:
maintaining the system coherency of a select subset of the plurality of memory elements through software coherency control; and maintaining the coherency of the remaining plurality of memory elements through hardware coherency control.
- 13. The method of claim 12, wherein software coherency control is performed by an accessing processor.
- 14. The method of claim 13, wherein the processor issues an invalidate operation upon accessing a memory element.
- 15. The method of claim 12, wherein hardware coherency control is maintained by a memory controller.
- 16. The method of claim 15, wherein the memory controller issues a kill operation when a memory element is written to by a direct memory access (DMA) device.
- 17. The method of claim 12, further comprising:
utilizing a tag buffer having a plurality of memory elements corresponding to the system and cache memory elements to maintain state information associated with each of the plurality of memory elements of the system and cache memories.
- 18. The method of claim 17, wherein the state information denotes whether the associated memory element is subject to hardware or software coherency control.
- 19. A storage medium having stored therein a plurality of executable instructions which, when executed, implement a system coherency function wherein the system coherency of a select subset of a plurality of memory elements are maintained through software coherency control, while the system coherency of the remaining plurality of memory elements are maintained through hardware coherency control.
Parent Case Info
[0001] The present invention is related to copending U.S. application Ser. No. ______, entitled A Bandwidth Optimized Input/Output Bus and Protocol filed contemporaneously herewith by the inventors of the present application and commonly assigned to the assignee of the present application, the content of which is expressly incorporated herein.