IP Library Granted Patent US 8,667,244
Granted Patent B2
US 8,667,244 · App. 13/052,755 · Granted Mar 4, 2014

Methods, systems, and apparatus to prevent memory imprinting

Inventors: Ted A Hadley (Sunnyvale, CA); Susan K Langford (Sunnyvale, CA)
Assignee: Hewlett-Packard Development Company, L.P.
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 8,667,244
App. No.
13/052,755
Granted
Mar 4, 2014
Kind
B2
Abstract

In one implementation, a data set including a plurality of data values having an order is stored at a memory having a plurality of memory locations. Each data value from the data set stored a current memory location of that data value from the plurality of memory locations. Each data value from the data set is periodically moved from the current memory location of that data value from the plurality of memory locations to a next memory location of that data value from the plurality of memory locations. The next memory location of each data value from the plurality of memory locations is the current memory location of that data value from the plurality of memory locations after the moving. The plurality of data values is then provided in the order to a client in response to a request for the data set.

Claims (65)

1. A non-transitory processor-readable medium storing code representing instructions to cause a processor to perform a process, the process comprising:

storing a data set at a memory having a plurality of memory locations, the data set including a plurality of data values having an order, each data value from the data set stored at a current memory location of that data value from the plurality of memory locations;

periodically moving each data value from the data set from the current memory location of that data value from the plurality of memory locations to a next memory location of that data value from the plurality of memory locations, the next memory location of each data value from the plurality of memory locations being the current memory location of that data value from the plurality of memory locations after the moving;

updating a position indicator to be associated with a current periodic state of a movement of the data set after moving the plurality of data values from the current memory locations to the next memory locations, wherein the current periodic state of the movement of the data set is based on a periodic movement pattern; and

providing the plurality of data values in the order to a client in response to a request for the data set.

2. The processor-readable medium of claim 1 , wherein the next memory location for each data value from the data set is a current memory location of a different data value from the data set.

3. The processor-readable medium of claim 1 , wherein:

the memory locations of the memory are sequential; and

the moving includes rotating each data value from the data set from the current memory location of that data value to the next memory location of that data value, the next memory location of that data value sequentially subsequent to the current memory location of that data value.

4. The processor-readable medium of claim 1 , wherein:

the memory locations of the memory are sequential; and

the moving is based on a permutation of each data value from the data set from the current memory location of that data value to the next memory location of that data value, the next memory location of at least one data value from the data set not sequentially subsequent to the current memory location of the at least one data value.

5. The processor-readable medium of claim 1 , wherein:

the memory locations of the memory are sequential; and

the moving is based on a time-dependent permutation of each data value from the data set from the current memory location of that data value to the next memory location of that data value, the next memory location of at least one data value from the data set not sequentially subsequent to the current memory location of the at least one data value.

6. The processor-readable medium of claim 1 , the process further comprising:

identifying the position indicator within the memory; and

determining a current memory location of a first data value from the data set based on the position indicator.

7. The processor-readable medium of claim 1 , the process further comprising:

identifying a predetermined digest of the data set at memory;

accessing successively according to the order each data value from the data set;

generating a digest of the data set based on the data values from the data set and the order; and

comparing the digest of the data set to the predetermined digest.

8. The processor-readable medium of claim 1 , wherein the data set includes data values defining a data mark, the process further comprising:

generating the data values defining the data mark based on a Hamming weight value of other data values of the data set.

9. The processor-readable medium of claim 1 , wherein the data set includes a first data set and a second data set, the process further comprising:

generating each data value from the second data set based on a logical operation applied to an associated data value from the first data set.

10. An apparatus to prevent memory imprinting, comprising:

a memory having a plurality of memory locations; and

a memory controller operatively coupled to the memory to:

store data values from a data set at the memory;

periodically move each data value from the data set from a current memory location to a next memory location according to a periodic movement pattern; and

update a position indicator to be associated with a current periodic state of movement of the data set based on the periodic movement pattern.

11. The apparatus of claim 10 , further comprising:

a processor in communication with the memory and memory controller to execute code representing instructions that collectively implement a software application,

the memory controller configured to periodically move each data value from the data from a current memory location to a next memory location independent of the processor and the code representing instructions that collectively implement the software application.

12. The apparatus of claim 10 , wherein the memory controller is configured to:

identify a data mark within the memory; and

determine a current memory location of a first data value from the data set based on the data mark.

13. The apparatus of claim 10 , wherein:

the data values have an order within the data set; and

the memory controller is configured to:

identify a predetermined digest of the data set at memory;

access successively according to the order each data value from the data set;

generate a digest of the data set based on the data values from the data set and the order; and

validate the data set if the digest of the data set matches the predetermined digest.

14. The apparatus of claim 10 , further comprising:

a processor in communication with the memory to host the memory controller.

15. The apparatus of claim 10 , wherein:

the data set includes data values defining a data mark; and

the memory controller is configured to generate the data values defining the data mark based on a Hamming weight value of other data values of the data set.

16. The apparatus of claim 10 , wherein the data set includes a first data set and a second data set; and

the memory controller is configured to generate each data value from the second data set based on a logical operation applied to an associated data value from the first data set.

17. A method to prevent memory imprinting, comprising:

storing a position indicator and each data value from a data set at a memory location from a plurality of memory locations of a memory, the data set including a first data value and a last data value, the data set including a data mark, the position indicator associated with the memory location storing the first data value;

moving a data value from the data set from a current memory location of that data value to a next memory location of that data value, the position indicator associated with the current memory location;

updating the position indicator to associate with position indicator with a different memory location from the plurality of memory locations; and

repeating the moving and the updating until the last data value is located at the memory location at which the first data value was located before the moving.

18. The method of claim 17 , further comprising:

accessing the position indicator to determine a current permutation state of the data set;

identifying a current memory location of the data mark within the memory; and

determining a current memory location of a first data value from the data set based on the data mark and the permutation state.

19. The method of claim 17 , wherein the moving includes rotating each data value from the data set from the current memory location of that data value to the next memory location of that data value, the next memory location of that data value sequentially subsequent to the current memory location of that data value.

20. The method of claim 17 , wherein the moving is based on a permutation of each data value from the data set from the current memory location of that data value to the next memory location of that data value, the next memory location of at least one data value from the data set not sequentially subsequent to the current memory location of the at least one data value.

21. The method of claim 17 , wherein the moving is based on a time-dependent permutation of each data value from the data set from the current memory location of that data value to the next memory location of that data value, the next memory location of at least one data value from the data set not sequentially subsequent to the current memory location of the at least one data value.

Assignments (13)
CORRECTIVE ASSIGNMENT TO CORRECT THE COMPANY NAME OF RECEIVING PARTY PREVIOUSLY RECORDED ON REEL 72653 FRAME 454. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 9, 2026
From: ENTIT SOFTWARE LLC
To: UTIMACO INC.
Reel/Frame 074912/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2025
From: ENTIT SOFTWARE LLC
To: UTIMACO, INC.
Reel/Frame 072653/0454 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 22, 2019
From: NIBC BANK N.V., AS SECURITY AGENT
To: UTIMACO INC.
Reel/Frame 050135/0404 →
SECURITY INTEREST Recorded Feb 5, 2019
From: UTIMACO INC.
To: NIBC BANK N.V.
Reel/Frame 048240/0281 →
RELEASE OF SECURITY INTEREST Recorded Oct 24, 2018
From: JPMORGAN CHASE BANK, N.A. (AS SUCCESSOR TO BANK OF AMERICA, N.A.)
To: ENTIT SOFTWARE LLC
Reel/Frame 047297/0843 →
RELEASE OF SECURITY INTEREST Recorded Oct 24, 2018
From: JPMORGAN CHASE BANK, N.A. (AS SUCCESSOR TO BANK OF AMERICA, N.A.)
To: ENTIT SOFTWARE LLC
Reel/Frame 047299/0055 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2011
From: HADLEY, TED A.; LANGFORD, SUSAN K.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 025991/0642 →
Continuity (1)
Related Publication 20120246432A1 · Sep 27, 2012