Legal claims defining the scope of protection, as filed with the USPTO.
1. A method to refresh a dynamic random access memory (DRAM) that stores a cache coherence directory of a multicore chip, the method comprising: accessing a directory entry in the cache coherence directory stored in the DRAM, the directory entry comprising a sharers item that identifies which of a plurality of cache memories in the multicore chip store a block associated with the directory entry, and an error correction code (ECC) for either or both detection and correction of an error in the sharers item; detecting the error in the sharers item based on the ECC; in response to a determination that the detected error is not correctable by use of the ECC: broadcasting a message to each cache memory of the plurality of cache memories in the multicore chip, wherein the message requests each cache memory to determine if the corresponding cache memory contains the block; receiving replies to the message; and updating the sharers item to correct the detected error based on the received replies; identifying the cache coherence state of the block associated with the directory entry; and selectively disabling a refresh of the directory entry in the cache coherence directory stored in the DRAM based on the identified cache coherence state of the block such that energy associated with the multicore chip is conserved.
2. The method of claim 1 , wherein selectively disabling further comprises disabling the refresh of the directory entry when the cache coherence state is identified as one of an exclusive state, a modified state, an invalid state, or an uncached state.
3. The method of claim 1 , further comprising selectively enabling the refresh of the directory entry when the cache coherence state is identified as one of an exclusive state, a modified state, an invalid state, or an uncached state.
4. The method of claim 1 , further comprising selectively enabling the refresh of the directory entry when the cache coherence state is identified as a shared state.
5. The method of claim 1 , further comprising: when the cache coherence state of the block is identified as a shared state: identifying a last time when the block was accessed; calculating a difference between a current time and the last time; determining if the difference exceeds a threshold; disabling refresh of the directory entry when the difference exceeds the threshold; and enabling refresh of the directory entry when the difference does not exceed the threshold.
6. The method of claim 1 , wherein the directory entry further comprises a tag identifying the block and the cache coherence state of the block.
7. The method of claim 6 , further comprising: determining whether the detected error is correctable using the ECC; and correcting the detected error using the ECC when the detected error is correctable.
8. The method of claim 1 , wherein detecting the error in the sharers item based on the ECC comprises: reading the sharers item and the ECC in the directory entry; computing a new ECC based on the sharers item; and detecting the error in the sharers item when the new ECC does not match the ECC in the directory entry.
9. The method of claim 7 , wherein accessing the directory entry comprising the sharers item identifying which of the plurality of cache memories in the multicore chip store the block comprises: accessing the sharers item comprising a bit vector, the bit vector comprising a plurality of bits, wherein each of the plurality of bits in the bit vector is associated with one or more cache memories of the plurality of cache memories in the multicore chip.
10. The method of claim 8 , wherein detecting the error in the sharers item when the new ECC does not match the ECC in the directory entry comprises: detecting up to a two-bit error in the bit vector and correcting a one-bit error in the bit vector using the ECC, the ECC comprising a 1-error-correction, 2-error-detection (1EC2ED) code.
11. The method of claim 10 , further comprising: detecting a greater than two-bit error in the bit vector using an additional error direction code contained in the directory entry.
12. A non-transitory computer-readable storage medium having computer-executable instructions stored thereon which, in response to execution by a computing device, cause the computing device to: access a directory entry in a cache coherence directory of a multicore chip stored in a dynamic random access memory (DRAM), the directory entry comprising a sharers item that identifies which of a plurality of cache memories in the multicore chip store a block associated with the directory entry, and an error correction code (ECC) for either or both detection and correction of an error in the sharers item; detect the error in the sharers item based on the ECC; in response to a determination that the detected error is not correctable by use of the ECC: broadcast a message to each cache memory of the plurality of cache memories in the multicore chip, wherein the message requests each cache memory to determine if the corresponding cache memory contains the block; receive replies to the message; and update the sharers item to correct the detected error based on the received replies; identify the cache coherence state of the block associated with the directory entry; and selectively disable a refresh of the directory entry in the cache coherence directory stored in the DRAM based on the identified cache coherence state of the block such that energy associated with the multicore chip is conserved.
13. The non-transitory computer-readable storage medium of claim 12 , wherein the computer-executable instructions, in response to execution by the computing device, further cause the computing device to: selectively disable the refresh of the directory entry stored in the DRAM when the cache coherence state of the block is identified as one of an exclusive state, a modified state, an invalid state, or an uncached state.
14. The non-transitory computer-readable storage medium of claim 12 , wherein the computer-executable instructions, in response to execution by the computing device, further cause the computing device to: selectively enable the refresh of the directory entry stored in the DRAM when the cache coherence state of the block is identified as one of an exclusive state, a modified state, an invalid state, or an uncached state.
15. The non-transitory computer-readable storage medium of claim 12 , wherein the computer-executable instructions, in response to execution by the computing device, further because the computing device to: selectively enable the refresh of the directory entry stored in the DRAM when the cache coherence state is identified as a shared state.
16. The non-transitory computer-readable storage medium of claim 12 , wherein the computer-executable instructions, in response to execution by the computing device, further cause the computing device to: when the cache coherence state of the block is identified as a shared state: identify a last time when the block was last accessed; calculate a difference between a current time and the last time; determine if the difference exceeds a threshold; disable the refresh of the directory entry stored in the DRAM when the difference is determined to exceed the threshold; and enable the refresh of the directory entry stored in the DRAM when the difference is determined not to exceed the threshold.
17. The non-transitory computer-readable storage medium of claim 12 , wherein to refresh the directory entry, the computer-executable instructions, in response to execution by the computing device, cause the computing device to: charge one or more capacitors corresponding to the directory entry.
18. A multicore chip, comprising: a plurality of processor cores and a plurality of cache memories, wherein each cache memory of the plurality of cache memories corresponds to one or more of the plurality of processor cores; a directory stored in dynamic random access memory (DRAM), wherein the directory comprises a directory entry, the directory entry comprising a sharers item that identifies which of a plurality of cache memories in the multicore chip store a block associated with the directory entry, and an error correction code (ECC) for either or both detection and correction of an error in the sharers item; and a directory controller configured to: access the directory entry in the directory; detect the error in the sharers item based on the ECC; in response to a determination that the detected error is not correctable by use of the ECC: broadcast a message to each cache memory of the plurality of cache memories in the multicore chip, wherein the message requests each cache memory to determine if the corresponding cache memory contains the block; receive replies to the message; and update the sharers item to correct the detected error based on the received replies; identify the cache coherence state of the block associated with the directory entry; and selectively disable a refresh of the directory entry in the directory based on the identified cache coherence state of the block such that energy associated with the multicore chip is conserved.
19. The multicore chip of claim 18 , wherein in being configured to selectively disable, the directory controller is configured to selectively disable the refresh of the directory entry when the cache coherence state of the block is identified as one of an exclusive state, a modified state, an invalid state, or an uncached state.
20. The multicore chip of claim 18 , wherein the directory controller is further configured to: selectively enable the refresh of the directory entry when the cache coherence state of the block is identified as one of an exclusive state, a modified state, an invalid state, or an uncached state.
21. The multicore chip of claim 18 , wherein the directory controller is further configured to: selectively enable the refresh of the directory entry when the cache coherence state is identified as a shared state.
22. The multicore chip of claim 18 , wherein the directory controller is further configured to: when the cache coherence state of the block is identified as a shared state: identify a last time when the block was last accessed; calculate a difference between a current time and the last time; determine if the difference exceeds a threshold; disable the refresh of the directory entry when the difference is determined to exceed the threshold; and enable the refresh of the directory entry when the difference is determined not to exceed the threshold.
23. The multicore chip of claim 18 , wherein to refresh the directory entry, the directory controller is further configured to: charge of one or more capacitors corresponding to the directory entry.
Unknown
March 1, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.