Deborah L. See - Placerville CA, US Robert N. Hasbun - Placerville CA, US Jeffrey A. Dunlap - Sacramento CA, US Phillip J. del Pozo, III - El Dorado Hills CA, US Richard P. Garner - Cameron Park CA, US
Methods for storing data in an erasable nonvolatile memory are described herein. In one embodiment, an example method includes allocating a space within a block of an erasable nonvolatile memory for an object, wherein the allocated space is within a single block of the erasable nonvolatile memory and the allocated space includes a plurality of areas capable of storing multiple instances of the object, storing a first instance of the object in one of the areas within the allocated space, storing a superseding second instance of the object in another one of the areas within the allocated space without erasing any of the allocated space, and for each of the first and second instances of the object, storing status information corresponding to the respective instance of the object within the allocated space which is within the single block of the erasable nonvolatile memory.
Dynamic Allocation For Efficient Management Of Variable Sized Data Within A Nonvolatile Memory
Deborah L. See - Placerville CA Robert N. Hasbun - Placerville CA Jeffrey A. Dunlap - Folsom CA Phillip J. del Pozo - Folsom CA
Assignee:
Intel Corporation - Santa Clara CA
International Classification:
G06F 1206
US Classification:
711171
Abstract:
A method of storing data in a nonvolatile memory includes the step of receiving the data to be stored. A storage structure is selected for the data according to the relative size (z) of the data with respect to a plurality of thresholds including: a minimum number of instances (m), a maximum single instance size (s*g), and an allocation granularity (g). The data is then stored in the selected structure within the nonvolatile memory. If z is less than a first threshold, the data is stored within a multiple instance object structure. If z is less than a second threshold, the data is stored as a single instance object. If z exceeds the second threshold, the data is fragmented. The fragmented data can then be stored among the plurality of blocks of nonvolatile memory. If the number of fragments is less than a maximum sequence table size, then a sequence table indicative of the order and the locations of the data fragments is stored in the nonvolatile memory. If the number of data fragments exceeds the maximum sequence table size, then a plurality of sequence table fragments and a group table are stored in the nonvolatile memory.