US2016342352A1PendingUtilityA1

Encoding data in a memory array

Assignee: HEWLETT PACKARD ENTPR DEV LPPriority: Jan 31, 2014Filed: Jan 31, 2014Published: Nov 24, 2016
Est. expiryJan 31, 2034(~7.5 yrs left)· nominal 20-yr term from priority
G06F 2212/1036G06F 3/065G06F 3/0689G06F 3/0619G06F 11/1048G06F 3/0625G06F 2212/401G06F 12/023G06F 2212/1028G11C 7/1006Y02D10/00
47
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for encoding data in a memory array is described. The method includes receiving data to be stored in the memory array. The method also includes encoding the data, to generate a number of encoded data versions. The method also includes selecting, based on a number of optimization heuristics, which of a number of data versions to store in the memory array. The number of data versions include the number of encoded data versions and the data. The method also includes indicating, in metadata associated with the data, the selected data version. The method also includes writing the selected data version, the metadata, or combination thereof, to the memory array.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for encoding data in a memory array, comprising:
 receiving data to be stored in the memory array;   encoding the data, to generate a number of encoded data versions;   selecting, based on a number of optimization heuristics, which of a number of data versions to store in the memory array, in which the number of data versions comprise the number of encoded data versions and the data;   indicating, in metadata associated with the data, the selected data version; and   writing the selected data version, the metadata, or combination thereof, to the memory array.   
     
     
         2 . The method of  claim 1 , further comprising:
 reading the selected data version, the metadata, or combination thereof, from the memory array;   examining the metadata associated with the selected data version; and   decoding the selected data version based on the metadata.   
     
     
         3 . The method of  claim 1 , in which selecting which of the number of data versions to store in the memory array is based on reducing the power consumption of the memory array due to a value of data stored in the memory array. 
     
     
         4 . The method of  claim 1 , in which an encoding data version is a bitwise inversion of the data. 
     
     
         5 . The method of  claim 1 , in which an encoded data version is based on information from data patterns which have previously been written. 
     
     
         6 . The method of  claim 1 , in which the metadata is stored as part of an error checking and correction system. 
     
     
         7 . The method of  claim 1 , in which the optimization heuristic is based on a memory array architecture. 
     
     
         8 . The method of  claim 1 , in which encoding the data comprises:
 reading information relating to bit errors in the memory array; and   adjusting the profile of the data to ensure any bit with an error remains in a consistent state.   
     
     
         9 . The method of  claim 8 , further comprising writing an embedded pointer indicating a remapped location for the data. 
     
     
         10 . A system for encoding data in a memory array, comprising:
 a processor;   memory communicatively coupled to the processor; and   a memory manager, the memory manager comprising:   a receiver to receive data to be written to the memory array   an encode module to encode the data to generate a number of encoded data versions;   a select module to compare the encoded data versions and the data, and select one of the encoded data versions and the data based on a number of optimization heuristics;   a metadata module to generate a number of metadata bits, in which the metadata bits indicate the version selected;   an association module to associate the number of metadata bits with the selected data; and   a write module to write the selected data, metadata, or combination thereof, to the memory array.   
     
     
         11 . The system of  claim 10 , in which the memory associated with the processor is a memristor array. 
     
     
         12 . The system of  claim 10 , in which the memory associated with the processor is a cross bar memory array. 
     
     
         13 . The system in  claim 10 , in which the data is encoded at a cache line granularity. 
     
     
         14 . A computer program product for encoding data in a memory array, the computer program product comprising:
 a computer readable storage medium comprising computer usable program code embodied therewith, the computer usable program code comprising:
 computer usable program code to, when executed by a processor, receive data to be stored in a memory array; 
 computer usable program code to, when executed by a processor, encode the data to generate a number of encoded data versions; 
 computer usable program code to, when executed by a processor, select one of the data and an encoded data versions to store in the memory array. 
 computer usable program code to, when executed by a processor, indicate, via metadata associated with the data, the selected data; and 
 computer usable program code to, when executed by a processor, write the selected data and the metadata to the memory array. 
   
     
     
         15 . The product of  claim 14 , further comprising:
 computer usable program code to, when executed by a processor, read the selected data, the metadata, or combination thereof from the memory array; and   computer usable program code to, when executed by a processor, decode the selected data based on the metadata.

Join the waitlist — get patent alerts

Track US2016342352A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.