IP Library Granted Patent US 11,309,018
Granted Patent B2
US 11,309,018 · App. 15/874,512 · Granted Apr 19, 2022

Stable memory cell identification for hardware security

Inventors: Muqing Liu (Minneapolis, MN); Chen Zhou (Minneapolis, MN); Keshab K. Parhi (Minneapolis, MN); Hyung-Il Kim (Minneapolis, MN)
Assignee: Regents of the University of Minnesota
G11C11/417G06F12/14G06F21/44G06F21/45G06F21/73H04L9/3278
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 11,309,018
App. No.
15/874,512
Granted
Apr 19, 2022
Kind
B2
Abstract

A method includes setting an output of each memory cell in an array of memory cells to a same first value, decreasing power to the array of memory cells and then increasing power to the array of memory cells. Memory cells in the array of memory cells with outputs that switched to a second value different from the first value are then identified in response to decreasing and then increasing the power. A set of memory cells is then selected from the identified memory cells to use in hardware security.

Claims (82)

1. A method comprising:

setting an output of each memory cell in an array of memory cells to a same first value;

decreasing power to the array of memory cells;

waiting a period of time;

increasing power to the array of memory cells;

examining the outputs of the memory cells and identifying as being eligible to be used to provide consistent outputs in hardware security, all memory cells in the array of memory cells whose outputs switched to a second value different from the first value in response to decreasing and then increasing the power;

selecting from the identified memory cells, a set of memory cells to use in hardware security;

wherein the period of time is set through steps comprising:

selecting a proposed time period;

writing a first value to all memory cells of a test set of memory cells;

reducing power to the test set of memory cells for the proposed time period and then restoring power to the test set of memory cells;

reading all of the memory cells in the test set of memory cells;

identifying which memory cells switched to contain a second value different than the first value;

counting the identified memory cells that switched to contain the second value;

writing the second value to all of the memory cells in the test set of memory cells;

reducing power to the test set of memory cells for the proposed time period and then restoring power to the test set of memory cells;

reading all of the memory cells in the test set of memory cells;

identifying which memory cells switched to contain the first value;

counting the identified memory cells that switched to contain the first value,

summing the count of the identified memory cells that switched to contain the second value and the count of the identified memory cells that switched to contain the first value to produce a total count for the proposed time period; and

determining that the total count for the proposed time period exceeds a desired number of memory cells and in response setting the proposed time period as the period of time.

2. The method of claim 1 further comprising storing identifiers for the selected set of memory cells to use in hardware security and an identifier for the array of memory cells.

3. The method of claim 2 further comprising performing a hardware security task by receiving the identifier for the array of memory cells, retrieving the stored identifiers for the selected set of memory cells based on the received identifier for the array of memory cells, requesting values of the outputs of memory cells having the retrieved identifiers, and using the requested values to perform the hardware security task.

4. The method of claim 3 wherein requesting the values of the outputs of memory cells having the retrieved identifiers comprises requesting the values of the outputs formed in response to the power to the array of memory cells being increased.

5. The method of claim 1 further comprising:

setting the output of each memory cell in the array of memory cells to the second value;

decreasing power to the array of memory cells;

increasing power to the array of memory cells;

identifying memory cells in the array of memory cells with outputs that switched to the first value in response to decreasing and then increasing the power;

selecting from the identified memory cells with outputs that switched to the first value, a second set of memory cells to use in hardware security.

6. A system comprising:

a memory comprising a plurality of memory cells;

a memory controller coupled to the memory;

a power controller coupled to the memory and controlling an amount of power provided to the memory; and

a test controller coupled to the memory controller and the power controller, the test controller applying tests to memory cells of the memory through the memory controller and the power controller to identify a time period, during which no power is provided to the memory, needed to change an output state of a desired number of memory cells in the memory while retaining data remanence in other memory cells;

wherein the controller applies tests to the memory through steps comprising:

selecting a time period;

instructing the memory controller to write a first value to all memory cells of a set of memory cells in the memory;

instructing the power controller to reduce power to the set of memory cells for the selected time period and then restore power to the set of memory cells;

instructing the memory controller to read all of the memory cells in the set of memory cells;

identifying which memory cells switched to contain a second value different than the first value;

counting the identified memory cells that switched to contain the second value;

instructing the memory controller to write the second value to all of the memory cells in the set of memory cells;

instructing the power controller to reduce power to the set of memory cells for the selected time period and then restore power to the set of memory cells;

instructing the memory controller to read all of the memory cells in the set of memory cells;

identifying which memory cells switched to contain the first value;

counting the identified memory cells that switched to contain the first value,

summing the count of the identified memory cells that switched to contain the second value and the count of the identified memory cells that switched to contain the first value to produce a total count for the time period; and

comparing the total count for the time period to the desired number of memory cells.

7. The system of claim 6 further comprising a hardware security module that performs steps comprising:

receiving a unique identifier associated with a memory;

retrieving addresses of stable cells in the memory using the unique identifier associated with the memory;

receiving values read from the addresses of the stable cells; and

performing a hardware security function using the values read from the addresses of the stable cells.

8. The system of claim 7 wherein the stable cells comprise memory cells that switch output states when power is reduced to the stable cells for the period of time.

9. The system of claim 8 wherein the test controller applies tests to the memory to identify a second time period, during which no power is provided to the memory, needed to change an output state of a second desired number of memory cells in the memory and wherein the hardware security module retrieves addresses of stable cells in memory using the unique identifier associated with the memory and a number of stable cells needed for the hardware security function.

10. A method of identifying stable memory cells comprising:

reducing power to a set of memory cells for a time period and then increasing power to the set of memory cells, wherein the time period limits how many memory cells have different output values after the power is increased compared to before the power is reduced by retaining data remanence in at least one memory cell;

storing the addresses of all memory cells that had different output values after the power is increased compared to before the power is reduced as stable memory cells; and

selecting the stable memory cells to use in a hardware security task;

wherein the time period is set through steps comprising:

selecting a proposed time period;

writing a first value to all memory cells of a test set of memory cells;

reducing power to the test set of memory cells for the proposed time period and then restoring power to the test set of memory cells;

reading all of the memory cells in the test set of memory cells;

identifying which memory cells switched to contain a second value different than the first value;

counting the identified memory cells that switched to contain the second value;

writing the second value to all of the memory cells in the test set of memory cells;

reducing power to the test set of memory cells for the proposed time period and then restoring power to the test set of memory cells;

reading all of the memory cells in the test set of memory cells;

identifying which memory cells switched to contain the first value;

counting the identified memory cells that switched to contain the first value,

summing the count of the identified memory cells that switched to contain the second value and the count of the identified memory cells that switched to contain the first value to produce a total count for the proposed time period; and

determining that the total count for the proposed time period exceeds a desired number of memory cells and in response setting the proposed time period as the time period.

11. The method of claim 10 further comprising:

writing to the set of memory cells to set each memory cell to a different output value than the memory cell had before power was reduced;

reducing power to the set of memory cells again for the time period and then increasing the power to the set of memory cells again; and

storing the addresses of memory cells that had different output values after the power is increased again compared to before the power was reduced again as stable memory cells.

12. The method of claim 11 wherein the set of memory cells is subjected to only two cycles of reducing power and then increasing power while identifying stable memory cells.

13. The method of claim 12 further comprising storing an indication of whether each stable memory cell is a stable ‘1’ cell or a stable ‘0’ cell.

14. The method of claim 13 wherein each stable ‘1’ cell will have an output value of ‘1’ when power is reduced to the set of memory cells for at least the time period at a first temperature and when power is reduced to the set of memory cells for at least the time period at a second temperature.

15. The method of claim 14 wherein each stable ‘1’ cell will have an output value of ‘1’ whenever power is reduced to the set of memory cells for at least the time period.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2020
From: ZHOU, CHEN
To: REGENTS OF THE UNIVERSITY OF MINNESOTA
Reel/Frame 053114/0927 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2019
From: LIU, MUQING
To: REGENTS OF THE UNIVERSITY OF MINNESOTA
Reel/Frame 050411/0881 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2019
From: KIM, HYUNG-IL
To: REGENTS OF THE UNIVERSITY OF MINNESOTA
Reel/Frame 048607/0828 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2018
From: PARHI, KESHAB K.
To: REGENTS OF THE UNIVERSITY OF MINNESOTA
Reel/Frame 047757/0358 →
CONFIRMATORY LICENSE Recorded Mar 12, 2018
From: UNIVERSITY OF MINNESOTA
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 045567/0022 →
Continuity (1)
Related Publication 20190221254A1 · Jul 18, 2019