IP Library › Granted Patent US 9,269,418
Granted Patent B2
US 9,269,418 · App. 13/366,660 · Granted Feb 23, 2016

Apparatus and method for controlling refreshing of data in a DRAM

Inventors: Donald Felton (Cambridge, GB); Emre Özer (Cambridge, GB); Sachin Satish Idgunji (San Jose, CA)
Assignee: ARM Limited
G11C11/40622G06F21/75G06F21/79G11C11/408G11C2211/4065
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,269,418
App. No.
13/366,660
Granted
Feb 23, 2016
Kind
B2
Abstract

An apparatus comprises a dynamic random-access memory (DRAM) for storing data. Refresh control circuitry is provided to control the DRAM to periodically perform a refresh cycle for refreshing the data stored in each memory location of the DRAM. A refresh address sequence generator generates a refresh address sequence of addresses identifying the order in which memory locations of the DRAM are refreshed during the refresh cycle. To deter differential power analysis attacks on secure data stored in the DRAM, the refresh address sequence is generated with the addresses of at least a portion of the memory locations in a random order which varies from refresh cycle to refresh cycle.

Claims (41)

1. An apparatus comprising:

a dynamic random-access memory (DRAM) for storing data;

refresh control circuitry configured to control said DRAM to periodically perform a refresh cycle for refreshing the data stored in each memory location of said DRAM; and

a refresh address sequence generator configured to generate a refresh address sequence of addresses identifying the order in which memory locations of said DRAM are refreshed during said refresh cycle;

wherein said refresh address sequence generator is configured to generate said refresh address sequence with the addresses of at least a portion of said memory locations in a random order which varies from refresh cycle to refresh cycle;

wherein said refresh address sequence generator has a normal mode in which said refresh address sequence is generated with said addresses of said at least a portion of said memory in a sequential order, and a random mode in which said refresh address sequence is generated with said addresses of said at least a portion of said memory locations in said random order; and

wherein said refresh address sequence generator is configured to operate in said normal mode when processing circuitry configured to perform data processing is operating in a normal mode and to operate in said random mode when said processing circuitry is operating in a power saving mode; or

wherein said refresh control circuitry is configured to detect accesses to said DRAM by said processing circuitry and said refresh address sequence generator is configured to operate in said normal mode when a detected volume of accesses is greater than a predetermined threshold and to operate in said random mode when said detected volume of accesses is less than said predetermined threshold.

2. The apparatus according to claim 1 , wherein said refresh address sequence generator comprises a sequential address sequence generator configured to generate a sequential address sequence of addresses in a sequential order; and

said refresh address sequence generator is configured to generate said refresh address sequence from said sequential address sequence by randomizing the order of said addresses of said at least a portion of said memory locations.

3. The apparatus according to claim 1 , comprising a random number generator configured to generate at least one random number, wherein said refresh address sequence generator is configured to randomize the order of said addresses of said at least a portion of said memory locations in dependence on said at least one random number.

4. The apparatus according to claim 3 , wherein said random number generator is configured to change said at least one random number after each refresh cycle.

5. The apparatus according to claim 3 , wherein said refresh address sequence generator comprises an exclusive or (XOR) gate configured to randomize the order of said addresses of said at least a portion of said memory locations by XORing said addresses with a first random number generated by said random number generator.

6. The apparatus according to claim 5 , wherein said refresh address sequence generator is configured to rearrange the bit positions of said addresses of said at least a portion of said memory locations according to a second random number generated by said random number generator.

7. The apparatus according to claim 6 , wherein said refresh address sequence generator is configured to rearrange said bit positions of said refresh address sequence of addresses by rotating said addresses by a number of bit positions specified by said second random number.

8. The apparatus according to claim 6 , wherein said refresh sequence generator is configured to rearrange said bit positions of said refresh address sequence of addresses using a translation matrix specifying a mapping between original bit positions and rearranged bit positions for each possible value of said second random number.

9. The apparatus according to claim 1 , wherein said DRAM has a recommended refresh period representing a maximum recommended period between successive refresh cycles, and said refresh control circuitry is configured to control said DRAM to periodically perform said refresh cycle at intervals of half said recommended refresh period.

10. The apparatus according to claim 1 , comprising processing circuitry configured to perform data processing.

11. The apparatus according to claim 10 , wherein said processing circuitry and said DRAM are integrated on the same system-on-chip or the same package.

12. The apparatus according to claim 10 , wherein said DRAM and said processing circuitry have separate power supply inputs.

13. The apparatus according to claim 10 , wherein said processing circuitry and said DRAM share a common power supply input.

14. The apparatus according to claim 10 , wherein when said refresh address sequence generator is operating in said random mode, said refresh control circuitry is configured to control said DRAM to perform said refresh cycle twice as frequently as when said refresh address sequence generator is operating in said normal mode.

15. The apparatus according to claim 1 , wherein said at least a portion of said memory locations comprises all memory locations of said DRAM.

16. The apparatus according to claim 1 , wherein said at least a portion of said memory locations comprises memory locations within a secure portion of said DRAM for storing confidential data.

17. A method comprising steps of:

storing data in a dynamic random-access memory (DRAM);

controlling said DRAM to periodically perform a refresh cycle for refreshing the data stored in each memory location of said DRAM; and

generating a refresh address sequence of addresses identifying the order in which memory locations of said DRAM are refreshed during said refresh cycle;

wherein in a random mode said refresh address sequence is generated with the addresses for at least a portion of said memory locations in a random order which varies from refresh cycle to refresh cycle, and in a normal mode said refresh address sequence is generated with said addresses of said at least a portion of said memory means in a sequential order; and

when processing circuitry configured to perform data processing is operating in a normal mode, said refresh address sequence is generated in said normal mode, and when the processing circuitry is operating in a power saving mode, said refresh address sequence is generated in said random mode; or

said refresh address sequence is generated in said normal mode when a detected volume of accesses to said DRAM by said processing circuitry is greater than a predetermined threshold and said refresh address sequence is generated in said random mode when said detected volume of accesses is less than said predetermined threshold.

18. The apparatus according to claim 1 , wherein the refresh control circuitry is configured to control said DRAM to perform said refresh cycle in response to a specified period of time having elapsed.

19. The apparatus according to claim 1 , wherein the refresh control circuitry is configured to refresh the data stored in each memory location of said DRAM by reading a data value from the memory location and rewriting the memory location with the data value which has been read.

20. An apparatus comprising:

dynamic random access memory (DRAM) means for storing data;

refresh control means for controlling said DRAM means to periodically perform a refresh cycle for refreshing the data stored in each memory location of said DRAM means; and

refresh address sequence generating means for generating a refresh address sequence of addresses identifying the order in which memory locations of said DRAM means are refreshed during said refresh cycle;

wherein said refresh address sequence generating means generates said refresh address sequence with the addresses for at least a portion of said memory locations in a random order which varies from refresh cycle to refresh cycle; and

wherein said refresh address sequence generating means has a normal mode in which said refresh address sequence is generated with said addresses of said at least a portion of said memory means in a sequential order, and a random mode in which said refresh address sequence is generated with said addresses of said at least a portion of said memory locations in said random order; and

said refresh address sequence generator means is configured to operate in said normal mode when processing means for performing data processing is operating in a normal mode, and to operate in said random mode when said processing means is operating in a power saving mode; or

said refresh control means is configured to detect accesses to said DRAM means by said processing means, and said refresh address sequence generating means is configured to operate in said normal mode when a detected volume of accesses is greater than a predetermined threshold, and to operate in said random mode when said detected volume of accesses is less than said predetermined threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2012
From: FELTON, DONALD; OZER, EMRE; IDGUNJI, SACHIN SATISH
To: ARM LIMITED
Reel/Frame 028171/0804 →
Continuity (1)
Related Publication 20130205080A1 · Aug 8, 2013