CACHE MEMORY WITH DYNAMIC LOCKSTEP SUPPORT
First Claim
1. A method of operating a computational system that includes a plurality of processors each having an associated cache partitioned into lockstep and non-lockstep partitions, the method comprising:
- dynamically transitioning between a lockstep mode of operation and a non-lockstep mode of operation, wherein in the lockstep mode of operation, the plural processors each execute a same code sequence in temporal correspondence, and wherein in the non-lockstep mode of operation, the plural processors are capable of executing differing code sequences;
in the non-lockstep mode, satisfying at least some load hits from the lockstep partition and at least some other load hits from the non-lockstep partition; and
in the lockstep mode, satisfying load hits only from the lockstep partition.
31 Assignments
0 Petitions
Accused Products
Abstract
Cache storage may be partitioned in a manner that dedicates a first portion of the cache to lockstep mode execution, while providing a second (or remaining) portion for non-lockstep execution mode(s). For example, in embodiments that employ cache storage organized as a set associative cache, partition may be achieved by reserving a subset of the ways in the cache for use when operating in lockstep mode. Some or all of the remaining ways are available for use when operating in non-lockstep execution mode(s). In some embodiments, a subset of the cache sets, rather than cache ways, may be reserved in a like manner, though for concreteness, much of the description that follows emphasizes way-partitioned embodiments.
12 Citations
21 Claims
-
1. A method of operating a computational system that includes a plurality of processors each having an associated cache partitioned into lockstep and non-lockstep partitions, the method comprising:
-
dynamically transitioning between a lockstep mode of operation and a non-lockstep mode of operation, wherein in the lockstep mode of operation, the plural processors each execute a same code sequence in temporal correspondence, and wherein in the non-lockstep mode of operation, the plural processors are capable of executing differing code sequences; in the non-lockstep mode, satisfying at least some load hits from the lockstep partition and at least some other load hits from the non-lockstep partition; and in the lockstep mode, satisfying load hits only from the lockstep partition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An apparatus comprising:
-
plural processors dynamically transitionable between lockstep and non-lockstep modes of operation, wherein in the lockstep mode of operation, the plural processors each execute a same code sequence in temporal correspondence, and wherein in the non-lockstep mode of operation, the plural processors are capable of executing differing code sequences; and respective caches coupled to, and associated with, respective ones of the plural processors, the respective caches each including control logic operable to, in the non-lockstep mode, satisfy at least some load hits from a lockstep partition thereof and at least some other load hits from a non-lockstep partition thereof, and to, in the lockstep mode, satisfy load hits only from the lockstep partition but, for a hit in the non-lockstep partition, invalidate the hit entry in the non-lockstep partition. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. An integrated circuit comprising:
-
a processor capable of dynamic transitions between lockstep and non-lockstep modes of operation; a cache associated with the processor and having control logic operable to define a changeable boundary between a lockstep partition and non-lockstep partition of the cache; and control logic responsive to a current mode indication and operable to, in the lockstep mode, freeze allocations to entries of the non-lockstep partition and, in the non-lockstep mode, freeze allocations to entries of the lockstep partition. - View Dependent Claims (21)
-
Specification