IP Library › Granted Patent US 9,047,171
Granted Patent B2
US 9,047,171 · App. 13/631,894 · Granted Jun 2, 2015

Differentiating cache reliability to reduce minimum on-die voltage

Inventors: Zhen Fang (Portland, OR); Shih-Lien Lu (Portland, OR); Ravishankar Iyer (Portland, OR); Srihari Makineni (Hillsboro, OR)
Assignee: Intel Corporation
G06F11/004G06F1/3225G06F1/3275G06F1/3296G11C5/14Y02B60/1225Y02B60/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,047,171
App. No.
13/631,894
Granted
Jun 2, 2015
Kind
B2
Abstract

Systems and methods may provide for determining whether a memory access request is error-tolerant, and routing the memory access request to a reliable memory region if the memory access request is error-tolerant. Moreover, the memory access request may be routed to an unreliable memory region if the memory access request is error-tolerant. In one example, use of the unreliable memory region enables a reduction in the minimum operating voltage level for a die containing the reliable and unreliable memory regions.

Claims (45)

1. A system comprising:

at least one processor core;

a local on-die memory including a reliable region and an unreliable region, wherein the reliable region has a failure probability below a given threshold for a set operational voltage and the unreliable region has a failure probability above the given threshold for the set operational voltage;

logic to,

determine whether a memory access request is error-tolerant,

route the memory access request to the reliable region if the memory access request is not error-tolerant, wherein the logic is to identify an instruction annotation in the memory access request to determine whether the memory access request is error-tolerant, or wherein the logic is to identify a physical memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant or wherein the logic is to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant, and

route the memory access request to the unreliable region if the memory access request is error-tolerant; and a power supply coupled to the at least one processor core and the local on-die memory.

2. The system of claim 1 , wherein the logic is to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant and wherein the logic is to access a reliability bit in a page table.

3. The system of claim 1 , wherein the logic is to determine that the memory access request corresponds to a level one (L1) cache miss.

4. The system of claim 1 , further including a voltage regulator having an input coupled to the power supply and an output coupled to the at least one processor core and the local on-die memory.

5. The system of claim 4 , further including a die coupled to the at least one processor core and the local on-die memory, wherein the output of the voltage regulator establishes a common operational voltage for the die.

6. The system of claim 1 , wherein the unreliable region has more storage capacity than the reliable region.

7. The system of claim 1 , wherein the reliable region is to include instructions and data, and the unreliable region is to be dedicated to data.

8. An apparatus comprising:

logic, implemented in one or more of configurable logic or fixed-functionality logic hardware, to,

determine whether a memory access request is error-tolerant wherein the logic is to identify a physical memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant, or wherein the logic is to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant, or wherein the logic is to identify an instruction annotation in the memory access request to determine whether the memory access request is error-tolerant,

route the memory access request to a reliable memory region if the memory access request is not error-tolerant, and

route the memory access request to an unreliable memory region if the memory access request is error-tolerant, wherein the reliable memory region has a failure probability below a given threshold for a set operational voltage and the unreliable memory region has a failure probability above the given threshold for the set operational voltage.

9. The apparatus of claim 8 , wherein the logic is to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant and wherein the logic is to access a reliability bit in a page table.

10. The apparatus of claim 8 , wherein the logic is to determine that the memory access request corresponds to a level one (L1) cache miss.

11. A non-transitory computer readable storage medium comprising a set of instructions which, if executed by a processor, cause a computer to:

determine whether a memory access request is error-tolerant wherein the instructions, if executed, cause a computer to identify a physical memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant, or wherein the instructions, if executed, cause a computer to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant, or wherein the instructions, if executed, cause a computer to identify an instruction annotation in the memory access request to determine whether the memory access request is error-tolerant;

route the memory access request to a reliable memory region if the memory access request is not error-tolerant; and

route the memory access request to an unreliable memory region if the memory access request is error-tolerant, wherein the reliable memory region has a failure probability below a given threshold for a set operational voltage and the unreliable memory region has a failure probability above the given threshold for the set operational voltage.

12. The medium of claim 11 , wherein the instructions, if executed, cause a computer to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant and wherein the instructions, if executed, cause a computer to access a reliability bit in a page table.

13. The medium of claim 11 , wherein the instructions, if executed, cause a computer to determine that the memory access request corresponds to a level one (L1) cache miss.

14. A computer implemented method comprising:

determining whether a memory access request is error-tolerant, wherein determining whether the memory access request is error-tolerant includes identifying a physical memory allocation for a variable associated with the memory access request, or wherein determining whether the memory access request is error-tolerant includes identifying a virtual memory allocation for a variable associated with the memory access request, or wherein determining whether the memory access request is error-tolerant includes identifying an instruction annotation in the memory access request;

routing the memory access request to a reliable memory region if the memory access request is not error-tolerant; and

routing the memory access request to an unreliable memory region if the memory access request is error-tolerant, wherein the reliable memory region has a failure probability below a given threshold for a set operational voltage and the unreliable memory region has a failure probability above the given threshold for the set operational voltage.

15. The method of claim 14 , wherein determining whether the memory access request is error-tolerant includes identifying a virtual memory allocation for a variable associated with the memory access request and wherein identifying the virtual memory allocation includes accessing a reliability bit in a page table.

16. The method of claim 14 , further including determining that the memory access request corresponds to a level one (L1) cache miss.

17. A system comprising:

at least one processor core;

a local on-die memory including a reliable region and an unreliable region, wherein the reliable region has a failure probability below a given threshold for a set operational voltage and the unreliable region has a failure probability above the given threshold for the set operational voltage; and

logic to,

determine whether a memory access request is error-tolerant wherein the logic is to identify a physical memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant, or wherein the logic is to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant, or wherein the logic is to identify an instruction annotation in the memory access request to determine whether the memory access request is error-tolerant,

route the memory access request to the reliable region if the memory access request is not error-tolerant, and

route the memory access request to the unreliable region if the memory access request is error-tolerant.

18. The system of claim 17 , wherein the logic is to identify a virtual memory allocation for a variable associated with the memory access request to determine whether the memory access request is error-tolerant and wherein the logic is to access a reliability bit in a page table.

19. The system of claim 17 , wherein the logic is to determine that the memory access request corresponds to a level one (L1) cache miss.

20. The system of claim 17 , further including a voltage regulator having an input coupled to the power supply and an output coupled to the first processor core, the second processor core and the local on-die memory.

21. The system of claim 20 , further including a die coupled to the first processor core, the second processor core and the local on-die memory, wherein the output of the voltage regulator establishes a common operational voltage for the die.

22. The system of claim 17 , wherein the unreliable region has more storage capacity than the reliable region.

23. The system of claim 17 , wherein the reliable region is to include instructions and data, and the unreliable region is to be dedicated to data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2013
From: FANG, ZHENG; LU, SHIH-LIEN; IYER, RAVISHANKAR; MAKINENI, SRIHARI
To: INTEL CORPORAITION
Reel/Frame 029714/0686 →
Continuity (1)
Related Publication 20140095799A1 · Apr 3, 2014