Mechanism for proxy management of multiprocessor storage hierarchies
AssigneeMIPS Technologies, Inc.
InventorKevin D. Kissell
Life of this patent
Estimating the term…
Abstract
A method and apparatus within a processing environment is provided for proxy management of a plurality of proxy caches connected to a plurality of processing elements or cores within a unified memory environment. The proxy management system includes a proxy processor, such as a RISC core, that monitors data transfers or ownership transfers between the processing elements. If the proxy processor determines that a data transfer in one of the proxy caches will affect the coherency within another proxy cache, the proxy processor executes proxy management instructions such as invalidate, flush, prefetch to the appropriate proxy caches to insure coherency between the proxy caches and the unified memory.
Claims36
An apparatus for proxy management of a plurality of intermediate memories associated with a plurality of heterogeneous processing elements executing different instruction sets, the plurality of heterogeneous processing elements not utilizing their own coherency mechanisms, the processing elements sharing a unified memory, the apparatus comprising:
- a proxy processor, independent from the plurality of heterogeneous processing elements, said proxy processor coupled to the plurality of intermediate memories, for executing proxy management instructions upon a TLB miss in one of the plurality of intermediate memories, to manage the plurality of intermediate memories and insure coherency between the plurality of intermediate memories associated with the plurality of heterogeneous processing elements;
- and
- a first plurality of intermediate memories associated with a first plurality of processing elements, the first plurality of intermediate memories being designed to interface to said proxy processor;
- at least one intermediate memory which is not designed to interface to said proxy processor;
- and
- an interface between said at least one intermediate memory and said proxy processor;
- wherein said proxy processor monitors memory use among said first plurality of processing elements, and said at least one intermediate memory, and executes said proxy management instructions to effect transparency between the plurality of processing elements and the unified memory.
A proxy management system within a computing environment, the environment having a plurality of processing elements, the plurality of processing elements not utilizing their own coherency mechanisms, the proxy management system comprising:
- a first at least one proxy cache, coupled to a first associated one of the plurality of processing elements, for storing instructions/data for use by said first associated one of the plurality of processing elements;
- a second at least one proxy cache, coupled to a second associated one of the plurality of processing elements, for storing instructions/data for use by said second associated one of the plurality of processing elements;
- and
- a proxy processor, independent from the plurality of processing elements, and executing its own proxy instructions, coupled to said first and second at least one of proxy caches, for managing coherency between said proxy caches;
- wherein said second at least one proxy cache is not designed to interface to said proxy processor;
- and
- an interface between said second at least one proxy cache and said proxy processor;
- wherein said proxy processor monitors memory use among said first at least one and second at least one proxy caches, and executes said proxy instructions to effect transparency between the plurality of processing elements and the unified memory.
A proxy management method to allow a plurality of processing elements to utilize generic caches which do not have their own coherency mechanism between the plurality of processing elements and a unified memory, the method comprising:
- providing a proxy processor, independent from the plurality of processing elements, and executing its own proxy management instructions, for interfacing to each of the generic caches;
- monitoring ownership transfer of a memory block generated by the plurality of processing elements;
- determining whether any of the ownership transfers are directed to an address that is stored in one or more of the generic caches;
- and if so,
- executing proxy management instructions to insure coherency between the generic caches.
A computer program product for use with a computing device, the computer program product comprising:
- a computer usable medium, having computer readable program code embodied in said medium, for causing a proxy management system to be described, the proxy management system having a plurality of intermediate memories associated with a plurality of processing elements, the processing elements sharing a unified memory, said computer readable program code comprising:
- first program code for providing a proxy processor, independent from the plurality of processing elements, for executing proxy management instructions to manage the plurality of intermediate memories;
- and
- second program code for providing a cache for storing the proxy management instructions;
- wherein said proxy processor monitors ownership transfers from the plurality of processing elements, and executes the proxy management instructions to the plurality of intermediate memories to effect coherency between the plurality of processing intermediate memories and the unified memory.
Dependencies are inferred from the claim text.