IP Library › Granted Patent US 9,112,537
Granted Patent B2
US 9,112,537 · App. 13/992,504 · Granted Aug 18, 2015

Content-aware caches for reliability

Inventors: Tanausu Ramirez (Barcelona, ES); Javier Carretero Casado (Barcelona, ES); Enric Herrero (Cardedeu, ES); Matteo Monchiero (Menlo Park, CA); Xavier Vera (Barcelona, ES)
Assignee: Intel Corporation
H03M13/2906G06F1/3275G06F1/3296G06F11/1064G06F12/0895H03M13/09H03M13/356Y02B60/1228Y02B60/1285
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,112,537
App. No.
13/992,504
Granted
Aug 18, 2015
Kind
B2
Abstract

Embodiments of systems, apparatuses, and methods for reducing data cache power consumption and error protection overhead are described. In some embodiments, the data cache is partitioned into cache portions. Each cache portion stores data that has a different fault tolerance and uses a different type of error detection mechanism than the other cache portions.

Claims (56)

1. An apparatus comprising:

a data cache comprising:

a first cache portion to store a first data;

a second cache portion to store a second data; and

a third cache portion to store a third data,

wherein a first type of error detection code is used to protect the first data,

a second type of error detection code is used to protect the second data, and

the third data is unprotected; and

an error detection code generation circuitry to generate at least one of the first and second types of error detection code.

2. The apparatus of claim 1 , wherein the first data includes integer data, and the first type of error detection code is an Error Correcting Code (ECC).

3. The apparatus of claim 1 , wherein the second data includes floating-point (FP) data, and the second type of error detection code is a parity bit.

4. The apparatus of claim 1 , wherein the third data includes Single Instruction Multiple Data (SIMD) data.

5. The apparatus of claim 1 , further comprising:

a translation look-aside buffer (TLB) to store page table entries that indicate virtual-to-physical address translations corresponding to page frames, wherein each page table entry includes a data-type flag to identify the cache portion that is associated with the page frame of that page table entry.

6. The apparatus of claim 1 , further comprising:

a plurality of address range buffers, wherein each address range buffer is associated with a context, and each address range buffer is to store, for each of the cache portions, a range of addresses that is mapped to that cache portion.

7. The apparatus of claim 1 , further comprising;

a hardware decoder to decode protection-level specific memory instructions; and

execution logic to perform accesses to the cache portions based on the protection-level specific memory instructions.

8. The apparatus of claim 1 , wherein the first cache portion has a first supply voltage, the second cache portion has a second supply voltage, and the third cache portion has a third supply voltage, and wherein the first supply voltage is less than or equal to the second supply voltage, and the second supply voltage is less than or equal to the third supply voltage.

9. The apparatus of claim 1 , wherein the data cache is a first level data cache.

10. A method comprising:

partitioning a data cache into a plurality of cache portions based on a fault tolerance of data to be stored in each cache portion;

performing a data cache access comprising:

determining which of the cache portions to access; and

accessing that cache portion using a type of error detection mechanism that is associated with that cache portion.

11. The method of claim 10 , wherein the plurality of cache portions include a first cache portion for storing integer data, a second cache portion for storing floating-point (FP) data, and a third cache portion for storing Single Instruction Multiple Data (SIMD) data.

12. The method of claim 11 , wherein the step of accessing includes:

accessing the first cache portion using an Error Correcting Code (ECC) error detection mechanism.

13. The method of claim 11 , wherein the step of accessing includes:

accessing the second cache portion using a parity bit error detection mechanism.

14. The method of claim 11 wherein the step of accessing includes:

accessing the third cache portion without performing error detection.

15. The method of claim 10 , wherein the step of determining which of the cache portions to access includes:

looking up a data-type flag in a page table entry associated with the data cache access.

16. The method of claim 10 , wherein the step of determining which of the cache portions to access includes:

looking up an address associated with the data cache operation in an address range buffer to determine which of the cache portions that the address is mapped to.

17. The method of claim 10 , wherein the step of determining which of the cache portions to access includes:

decoding a protection-level specific memory instruction.

18. A method comprising:

partitioning a data cache into a plurality of cache portions based on a fault tolerance of data to be stored in each cache portion; and

providing at least one supply voltage to one cache portion that is less than another supply voltage that is provided to another cache portion based on the fault tolerance of the data to be stored in each respective cache portion.

19. The method of claim 18 , wherein the plurality of cache portions include a first cache portion for storing integer data, a second cache portion for storing floating-point (FP) data, and a third cache portion for storing Single Instruction Multiple Data (SIMD) data.

20. The method of claim 19 , wherein the step of providing different supply voltages to the cache portions includes:

providing a first supply voltage to the first cache portion;

providing a second supply voltage to the second cache portion; and

providing a third supply voltage to the third cache portion, wherein the first supply voltage is higher than or equal to the second supply voltage, and the second supply voltage is higher than or equal to the third supply voltage.

21. The method of claim 19 , further comprising:

applying an Error Correcting Code (ECC) error detection mechanism to the first cache portion; and

applying a parity bit error detection mechanism to the second cache portion; and

wherein the step of providing different supply voltages to the cache portions include:

providing a first supply voltage to the first cache portion;

providing a second supply voltage to the second cache portion; and

providing a third supply voltage to the third cache portion, wherein the first supply voltage is less than or equal to the second supply voltage, and the second supply voltage is less than or equal to the third supply voltage.

22. The method of claim 18 , further comprising:

dynamically turning off one of the cache portions when the data corresponding to that cache portion is not being used.

Continuity (1)
Related Publication 20140019823A1 · Jan 16, 2014