IP Library Granted Patent US 9,324,072
Granted Patent B1
US 9,324,072 · App. 12/229,574 · Granted Apr 26, 2016

Bit-flipping memory controller to prevent SRAM data remanence

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,324,072
App. No.
12/229,574
Granted
Apr 26, 2016
Kind
B1
Abstract

A memory is organized into blocks. In a bit-flipping operation, a memory block is read, the read bit data values are inverted, and the inverted data is written back to the memory block. Inverted memory blocks are tracked by setting a flag bit in the memory block, or by storing a pointer to a memory block. In a read operation, a memory block is read and, if the tracking method indicates the memory block is inverted, the read data values are reverted before being returned. In a write operation, a memory block is read and, if the tracking method indicates the memory block is inverted, the write data values are inverted before being written. Inversion of data values and tracking of inverted memory blocks may be performed by a specialized memory controller or by a processor executing secure memory code. Data remanence is thus prevented in the memory.

Claims (46)

1. An integrated circuit comprising:

a memory having a plurality of memory blocks, wherein each memory block has a set of bits, and wherein each bit has a value;

a secure memory controller that inverts and reverts the value of each bit of each memory block of the memory such that the amount of time each bit of the memory contains a digital logic one value is substantially equal to the amount of time the bit contains a digital logic zero value, wherein the secure memory controller uses an inversion flag bit to track whether a memory block contains bits with inverted values, and wherein the inversion flag bit is a bit of the memory block; and

a tamper detect circuit that causes the memory to be erased if a tamper detect condition is detected.

2. The integrated circuit of claim 1 , further comprising:

a processor; and

a set of processor-executable instructions stored on a processor-readable medium, wherein execution of the set of processor-executable instructions by the processor causes said inverting and reverting and said tracking of whether the memory block contains bits with inverted values.

3. The integrated circuit of claim 1 , wherein the secure memory controller comprises:

an inverted data path, wherein a read request to the secure memory controller results in read data being returned via the inverted data path if the read request references a memory block containing bits with inverted values.

4. The integrated circuit of claim 1 , wherein the memory is erased by a method taken from the group consisting of: writing a digital logic one value into each bit of each memory block of the first memory, writing a digital logic zero value into each bit of each memory block of the memory, writing random digital logic values into the bits of each memory block of the memory, and overwriting each memory block of the memory with information different from information stored in the memory block at the time the tamper detect condition is detected.

5. An integrated circuit comprising:

a memory having a plurality of memory blocks, wherein each memory block has a set of bits, wherein each bit has a value;

a secure memory controller that inverts and reverts the value of each bit of each memory block of the memory such that the amount of time each bit of the memory contains a digital logic one value is substantially equal to the amount of time the bit contains a digital logic zero value, wherein the secure memory controller uses an inversion tracking pointer to track whether a memory block contains bits with inverted values, wherein the inversion tracking pointer identifies a memory location in the memory; and

a tamper detect circuit that causes the memory to be erased if a tamper detect condition is detected.

6. The integrated circuit of claim 5 , further comprising:

a processor; and

a set of processor-executable instructions stored on a processor-readable medium, wherein execution of the set of processor-executable instructions by the processor causes said inverting and reverting and said tracking of whether a memory block contains bits with inverted values.

7. The integrated circuit of claim 5 , wherein the secure memory controller comprises:

an inverted data path, wherein a read request to the memory controller results in read data being returned via the inverted data path if the read request references a memory block containing bits with inverted values.

8. The integrated circuit of claim 5 , wherein the memory is erased by a method taken from the group consisting of: writing a digital logic one value into each bit of each memory block of the first memory, writing a digital logic zero value into each bit of each memory block of the memory, writing random digital logic values into the bits of each memory block of the memory, and overwriting each memory block of the memory with information different from information stored in the memory block at the time the tamper detect condition is detected.

9. A method comprising:

(a) managing at least a portion of a memory such that each bit of the portion contains a digital logic one value an amount of time substantially equal to an amount of time that the bit contains a digital logic zero value, wherein the portion includes a plurality of memory blocks;

(b) tracking whether each memory block of the portion contains bits with inverted bit values, wherein the tracking involves using an inversion flag bit in a memory block to track whether the memory block contains bits with inverted bit values; and

(c) erasing the portion of memory if a tamper detect condition is detected.

10. The method of claim 9 , further comprising:

(d) reading a memory block and thereby obtaining read data; and

(e) reverting the value of each bit of read data if the read memory block contains bits with inverted bit values.

11. The method of claim 9 , wherein the steps (a) and (b) are performed by a secure memory controller.

12. The method of claim 9 , wherein the steps (a) and (b) are performed by a processor.

13. The method of claim 9 , wherein an inverted data path is used to manage the memory in step (a).

14. The method of claim 9 , wherein the erasing of the portion of memory in step (c) is performed by writing to the memory in response to a signal received from a tamper detect circuit.

15. A method comprising:

(a) managing a memory such that each bit of the memory contains a digital logic one value an amount of time substantially equal to an amount of time that the bit contains a digital logic zero value, wherein the memory includes a plurality of memory blocks;

(b) tracking whether each memory block contains bits with inverted values, wherein said tracking involves storing a memory address pointer; and

(c) erasing the memory if a tamper detect condition is detected.

16. The method of claim 15 , further comprising:

(d) reading a memory block and thereby obtaining read data; and

(e) reverting the value of each bit of read data if the read memory block contains bits with inverted values.

17. The method of claim 15 , wherein the steps (a) and (b) are performed by a secure memory controller.

18. The method of claim 15 , wherein the steps (a) and (b) are performed by a processor.

19. The method of claim 15 , wherein an inverted data path is used to manage the memory in step (a).

20. An apparatus comprising:

a memory, having a plurality of memory blocks, wherein each memory block has a set of bits, wherein each bit has a value; and

means for cyclically inverting and reverting the value of each bit of each memory block of the memory, for tracking whether each memory block contains bits with inverted values, for responding to a read operation by reverting the value of each bit of read data if it is detected that a target memory block of the read operation contains bits with inverted values, for responding to a write operation by inverting the value of each bit of write data if it is detected that a target memory block of the write operation contains bits with inverted values, and for erasing the memory upon detection of a tamper detect condition.

21. The apparatus of claim 20 , wherein the means is an integrated circuit, wherein tracking whether a memory block contains bits with inverted values references an inversion tag bit in the memory block.

22. The apparatus of claim 20 , wherein the means is an integrated circuit, wherein tracking whether a memory block contains bits with inverted values references a memory address of a memory block of the first memory.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2015
From: IXYS CH GMBH
To: IXYS INTL LIMITED
Reel/Frame 035672/0304 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT INCLUSION OF APPLICATION 11/731423 WITH THE OTHER 39 PATENT DOCUMENT BEEING ASSIGNED AND PREVIOUSLY RECORDED ON REEL 025066 FRAME 0847. ASSIGNOR(S) HEREBY CONFIRMS THE SALE AND ASSIGNMENT OF PATENT DOCUMENTS LISTED IN ANNEX A OF THE RECORDED PATENT ASSIGNMENT. Recorded Apr 4, 2011
From: ZILOG, INC.
To: IXYS CH GMBH
Reel/Frame 026074/0359 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT INCLUSION OF APPLICATION 11/731423 WITH THE OTHER 39 PATENT DOCUMENTS BEING ASSIGNED AND PREVIOUSLY RECORDED ON REEL 025066 FRAME 0847.ASSIGNOR(S) HEREBY CONFIRMS THE SALE AND ASSIGNMENT OF THE PATENT DOCUMENTS LISTED IN ANNEX A OF THE RECORDED PATENT ASSIGNMENT Recorded Feb 9, 2011
From: ZILOG, INC.
To: IXYS CH GMBH
Reel/Frame 025779/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2010
From: ZILOG, INC.
To: IXYS CH GMBH
Reel/Frame 025066/0847 →