Cache memory bypass in a multi-core processor (MCP)
First Claim
1. A bypass memory system, comprising:
- a first set of sub-memory elements mounted on a bus in a Multi-Core Processor (MCP) with hierarchical architecture;
a first memory unit mounted on the bus between the first set of sub-memory elements and the bus, the first memory unit being dedicated to the first set of sub-memory elements;
a first cache manager coupled to an input and an output of the first memory unit;
a second memory unit mounted on the bus between a second set of sub-memory elements and the bus, the second memory unit being on an equal hierarchical level to the first memory unit and being dedicated to the second set of sub-memory elements;
a main controller mounted on the bus and coupled to the first cache manager and a second cache manager and being operable to diagnose whether any of the first memory unit and the second memory unit is dead;
the first cache manager being operable to;
disassociate, in response to a diagnosis from the main controller that the first memory unit is dead, the first memory unit permanently from the first set of sub-memory units such that the first cache manager bypasses the first memory unit for any request originating from a first set of sub-processing elements to the first set of sub-memory elements that is operational and send the request to the second memory unit via the bus; and
the second cache manager coupled to an input and an output of the second memory unit, the second cache manager being operable to, couple, in response to the diagnosis from the main controller that the first memory unit is dead, the second memory unit to the first set of sub-memory units, allowing the coupled second cache memory to become an extension of a same level cache of the first memory unit, such that the second cache manager forwards the request from the first cache manager via the bus to the second memory unit for processing, and to manage operation between the second memory unit and the first set of sub-processing elements while the second memory unit continues to be dedicated to the second set of sub-processing units by sending the request to either of the following;
the second memory unit, and an externally located third memory unit in the case that the second memory unit fails to satisfy the request.
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 bypasses immediate cache memory units with 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.
63 Citations
16 Claims
-
1. A bypass memory system, comprising:
-
a first set of sub-memory elements mounted on a bus in a Multi-Core Processor (MCP) with hierarchical architecture; a first memory unit mounted on the bus between the first set of sub-memory elements and the bus, the first memory unit being dedicated to the first set of sub-memory elements; a first cache manager coupled to an input and an output of the first memory unit; a second memory unit mounted on the bus between a second set of sub-memory elements and the bus, the second memory unit being on an equal hierarchical level to the first memory unit and being dedicated to the second set of sub-memory elements; a main controller mounted on the bus and coupled to the first cache manager and a second cache manager and being operable to diagnose whether any of the first memory unit and the second memory unit is dead; the first cache manager being operable to;
disassociate, in response to a diagnosis from the main controller that the first memory unit is dead, the first memory unit permanently from the first set of sub-memory units such that the first cache manager bypasses the first memory unit for any request originating from a first set of sub-processing elements to the first set of sub-memory elements that is operational and send the request to the second memory unit via the bus; andthe second cache manager coupled to an input and an output of the second memory unit, the second cache manager being operable to, couple, in response to the diagnosis from the main controller that the first memory unit is dead, the second memory unit to the first set of sub-memory units, allowing the coupled second cache memory to become an extension of a same level cache of the first memory unit, such that the second cache manager forwards the request from the first cache manager via the bus to the second memory unit for processing, and to manage operation between the second memory unit and the first set of sub-processing elements while the second memory unit continues to be dedicated to the second set of sub-processing units by sending the request to either of the following;
the second memory unit, and an externally located third memory unit in the case that the second memory unit fails to satisfy the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 16)
-
-
8. A cache bypass system, comprising:
-
a first cache memory unit mounted on a bus in a Multi-Core Processor (MCP) with hierarchical architecture between the first set of sub-memory elements and the bus, the first memory unit being dedicated to the first set of sub-memory elements; 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 such that the first cache memory unit and the first cache manager are disposed between the first set of sub-cache memory units and the bus; a second cache memory unit mounted on the bus and disposed between a second set of sub-memory elements and the bus, the second memory unit being on an equal hierarchical level to the first memory unit and being dedicated to the second set of sub-memory elements; a second cache manager coupled to an input and an output of the second cache memory unit; a main controller mounted on the bus and coupled to the first cache manager and the second cache manager and being operable to diagnose whether any of the first memory unit and the second memory unit is dead; the first cache manager and the second cache manager being operable to;
disassociate, in response to a diagnosis from the main controller that an associated cache memory unit is dead, the associated cache memory unit permanently from a dedicated set of sub-memory units such that the associated cache memory unit is bypassed for any a request originating from a first set of sub-processing elements to the dedicated set of sub-memory elements that is operational and send the request to different cache memory unit; andwherein the first cache manager and second cache manager are each operable to couple, in response to the diagnosis from the main controller that the associated memory unit is dead, the different cache memory unit to the dedicated set of sub-memory units, allowing the coupled second cache memory to become an extension of a same level cache of the first memory unit, such that a request from either the dedicated set of sub-memory units or a set of sub-memory units that were preciously dedicated to the different cache memory unit are both managed by sending the request to either of the following;
the cache memory unit to which it is coupled, and an externally located different memory unit in the case the cache memory unit to which it is coupled to is unable to satisfy the request. - View Dependent Claims (9, 10)
-
-
11. A memory bypass method, comprising:
-
diagnosing, by a main controller mounted on a bus in a Multi-Core Processor (MCP) with hierarchical architecture and coupled to a first cache manager and a second cache manager, whether a first memory unit is dead; receiving a first request on the first cache manager originating from a first set of sub-processing elements to a first set of sub-memory elements that is operational, the first cache manager coupled to an input and an output of the first memory unit, the first memory unit being dedicated to the first set of sub-memory elements and being disposed between the first set of sub-memory elements and the bus; bypassing permanently, in response to a diagnosis from the main controller that the first memory unit is dead, the first memory unit by sending the first request from the first cache manager to the second cache manager, the second cache manager being coupled to the second memory unit, the second memory unit being coupled to the bus, being on an equal hierarchical level to the first memory unit, being dedicated to a second set of sub-memory elements, being on an equal hierarchical level as the first memory unit, and being disposed between the second set of sub-memory elements and the bus; and wherein the second cache manager is operable to receive the request from the first cache manager, to couple the second memory unit to the first set of sub-memory units, allowing the coupled second cache memory to become an extension of a same level cache of the first memory unit, and to manage operation between the second memory unit and both the first set of sub-memory elements and the second set of sub-memory elements by sending the request to either of the following;
the second memory unit, and an externally located third memory unit in the case that the second memory unit fails to satisfy the request. - View Dependent Claims (12, 13, 14, 15)
-
Specification