Cache memory sharing in a multi-core processor (MCP)
First Claim
1. A shared cache memory system, comprising:
- a main controller;
a first memory unit mounted on a bus;
a first cache manager coupled to the first memory unit;
a first set of sub-memory units coupled to the first cache manager;
a first set of sub-processing elements coupled to the first set of sub-memory units; and
a second cache manager coupled to an input and an output of a second memory unit mounted on the bus, the first cache manager;
receiving instructions to mount the first set of sub-memory units to the second memory unit, responsive to a diagnosis on the first memory unit by the main controller, from the main controller in response to a cache miss at the first set of sub-memory units;
receiving a request for memory content originating from the first set of sub-processing elements;
isolating the first memory unit from the first set of sub-memory units and the first set of sub-processing elements by;
wrapping an input and an output of the first memory unit;
bypassing the first memory unit;
configuring mounting of the first cache manager based on the received mounting instructions; and
arranging the input and the output of the first memory unit to allow sharing to the second memory unit of requests made to the first memory unit; and
sharing the request for memory content to the input of the second memory unit via the second cache manager to enable the second memory unit to function as a next-level higher cache to the first memory unit in the case that the first set of sub-memory units experience a cache miss, the first memory unit exhibits a yield below a predetermined threshold, and the first set of sub-memory units and the first set of sub-processing elements are operational,wherein the main controller is coupled at a top of a hierarchy on the bus and in communication with the first and second cache managers and the second cache manager directs the request to the input of the second memory unit to enable a search of the second memory unit and a second set of sub-memory units coupled to the second memory unit.
2 Assignments
0 Petitions
Accused Products
Abstract
This invention describes an apparatus, computer architecture, memory structure, memory control, and cache memory operation method for multi-core processor. A logic core shares requests when faced with immediate cache memory units having low yield or deadly performance. The core mounts (multiple) cache unit(s) that might already be in use by other logic cores. Selected cache memory units serve multiple logic cores with the same contents. The shared cache memory unit(s) serves all the mounting cores with cache search, hit, miss, and write back functions. The method recovers a logic core whose cache memory block is not operational by sharing cache memory blocks which might already engage other logic cores. The method is used to improve reliability and performance of the remaining system.
62 Citations
20 Claims
-
1. A shared cache memory system, comprising:
-
a main controller; a first memory unit mounted on a bus; a first cache manager coupled to the first memory unit; a first set of sub-memory units coupled to the first cache manager; a first set of sub-processing elements coupled to the first set of sub-memory units; and a second cache manager coupled to an input and an output of a second memory unit mounted on the bus, the first cache manager; receiving instructions to mount the first set of sub-memory units to the second memory unit, responsive to a diagnosis on the first memory unit by the main controller, from the main controller in response to a cache miss at the first set of sub-memory units; receiving a request for memory content originating from the first set of sub-processing elements; isolating the first memory unit from the first set of sub-memory units and the first set of sub-processing elements by; wrapping an input and an output of the first memory unit; bypassing the first memory unit; configuring mounting of the first cache manager based on the received mounting instructions; and arranging the input and the output of the first memory unit to allow sharing to the second memory unit of requests made to the first memory unit; and sharing the request for memory content to the input of the second memory unit via the second cache manager to enable the second memory unit to function as a next-level higher cache to the first memory unit in the case that the first set of sub-memory units experience a cache miss, the first memory unit exhibits a yield below a predetermined threshold, and the first set of sub-memory units and the first set of sub-processing elements are operational, wherein the main controller is coupled at a top of a hierarchy on the bus and in communication with the first and second cache managers and the second cache manager directs the request to the input of the second memory unit to enable a search of the second memory unit and a second set of sub-memory units coupled to the second memory unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 19, 20)
-
-
8. A shared cache memory system, comprising:
-
a first cache memory unit mounted on a bus; a first cache manager coupled to an input and an output of the first cache memory unit; a first set of sub-cache memory units coupled to the first cache manager; a second cache memory unit mounted on the bus; a second cache manager coupled to an input and an output of the second cache memory unit; and a second set of sub-cache memory units coupled to the second cache manager, the first cache manager; receiving instructions to mount the first set of sub-cache memory units to the second cache memory unit, responsive to a diagnosis on the first cache memory unit by a main controller, from the main controller in response to a cache miss at the first set of sub-cache memory units; receiving a request for memory content originating from a first set of sub-processing elements; isolating the first cache memory unit from the first set of sub-cache memory units by; wrapping an input and an output of the first cache memory unit; bypassing the first cache memory unit; configuring mounting of the first cache manager based on the received mounting instructions; and arranging the input and the output of the first cache memory unit to allow sharing to the second cache memory unit of requests made to the first cache memory unit; and sharing the request for memory content with the input of the second cache memory unit via the second cache manager to enable the second cache memory unit to function as a next-level higher cache to the first cache memory unit in the case that the first set of sub-cache memory units experience a cache miss, the first cache memory unit exhibits a yield below a predetermined threshold, and the first cache memory unit is coupled to an operational first set of sub-cache memory units, wherein the main controller is coupled at a top of a hierarchy on the bus and in communication with the first and second cache managers and the request is received from the second cache manager at an input of the second cache memory unit and the second set of sub-cache memory units. - View Dependent Claims (9, 10, 11)
-
-
12. A cache memory sharing method, comprising:
-
receiving a first request on a first cache manager, the first cache manager being coupled to a first memory unit, the first memory unit being coupled to a bus; receiving instructions to mount a first set of sub-cache memory units to a second cache memory unit, responsive to a diagnosis on the first memory unit by a main controller, from the main controller in response to a cache miss at the first set of sub-memory units coupled to the first cache manager; isolating the first memory unit from the first set of sub-memory units by; wrapping an input and an output of the first memory unit; bypassing the first memory unit; configuring mounting of the first cache manager based on the received mounting instructions; and arranging the input and the output of the first memory unit to allow sharing to the second memory unit of requests made to the first memory unit; and sharing the request with the second memory unit by sending the request to a second cache manager in the case that a first set of sub-processing elements coupled to the first memory unit experiences a cache miss, the first memory unit exhibits a yield below a predetermined threshold, and the first set of sub-processing elements are operational, wherein the main controller is coupled at a top of a hierarchy on the bus and in communication with the first and second cache managers and the request is received from the second cache manager at an input of the second memory unit and a second set of sub-cache memory units, the second cache manager being coupled to the second memory unit, the second memory unit being coupled to the bus, and the bus being coupled to the main controller. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification