Metadata redundancy schemes for non-volatile memories
First Claim
1. A method of storing data in a non-volatile memory, the method comprising:
- receiving a first write request to write first user data to a first logical address;
receiving a second write request to write second user data to a second logical address;
determining a first physical address at which to store the first user data;
programming at least a first metadata and the first user data in the non-volatile memory at the first physical address;
identifying a second physical address at which to store the second user data based on a geometric relationship between the first and second memory locations, such that the geometric relationship defines one of eight potentially adjacent positions in which the second physical memory location is positioned relative to the first physical memory location; and
programming, at the second physical address;
the first metadata associated with the first user data,a second metadata associated with the second user data, andthe second user data in the non-volatile memory,wherein the first metadata comprises the first logical address and the second metadata comprises the second logical address, and wherein the first metadata is redundantly stored at the first physical address and the second physical address.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are provided for storing data to or reading data from a non-volatile memory (“NVM”), such as flash memory, using a metadata redundancy scheme. In some embodiments, an electronic device, which includes an NVM, may also include a memory interface for controlling access to the NVM. The memory interface may receive requests to write user data to the NVM. The user data from each request may be associated with metadata, such as a logical address, flags, or other data. In response to a write request, the NVM interface may store the user data and its associated metadata in a first memory location (e.g., page), and may store a redundant copy of the metadata in a second memory location. This way, even if the first memory location becomes inaccessible, the memory interface can still recover the metadata from the backup copy stored in the second memory location.
30 Citations
25 Claims
-
1. A method of storing data in a non-volatile memory, the method comprising:
-
receiving a first write request to write first user data to a first logical address; receiving a second write request to write second user data to a second logical address; determining a first physical address at which to store the first user data; programming at least a first metadata and the first user data in the non-volatile memory at the first physical address; identifying a second physical address at which to store the second user data based on a geometric relationship between the first and second memory locations, such that the geometric relationship defines one of eight potentially adjacent positions in which the second physical memory location is positioned relative to the first physical memory location; and programming, at the second physical address; the first metadata associated with the first user data, a second metadata associated with the second user data, and the second user data in the non-volatile memory, wherein the first metadata comprises the first logical address and the second metadata comprises the second logical address, and wherein the first metadata is redundantly stored at the first physical address and the second physical address. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A memory interface for accessing a non-volatile memory, the memory interface comprising:
-
a bus controller for communicating with the non-volatile memory; and control circuitry configured to direct the bus controller to; store first user data and metadata in a first memory location of the non-volatile memory, wherein the metadata comprises; first metadata associated with the first user data, and second metadata associated with second user data stored at a second memory location of the non-volatile memory; select the second metadata for storage in the first memory location based on a geometric relationship between the first and second memory locations, such that the geometric relationship defines one of eight potentially adjacent positions in which the second physical memory location is positioned relative to the first physical memory location; and store the second user data and the second metadata at the second memory location. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. An electronic device comprising:
-
a non-volatile memory; and control circuitry operating under the control of a plurality of modules, the modules comprising; a file system configured to; issue a first write command to write first user data to the non-volatile memory; and issue a second write command to write second user data to the non-volatile memory; and a memory interface configured to; store the first user data and first metadata at a first memory location of the non-volatile memory, wherein the first metadata is associated with the first user data; select a second memory location based on a geometric relationship between the first and second memory locations, such that the geometric relationship defines one of eight potentially adjacent positions in which the second physical memory location is positioned relative to the first physical memory location; and store the second user data, the first metadata, and second metadata at a second memory location of the non-volatile memory, wherein the second metadata is associated with the second user data, wherein the first metadata is redundantly stored at the first and second memory locations. - View Dependent Claims (14, 15, 16)
-
-
17. A method of recovering a logical address from a non-volatile memory, the method comprising:
-
determining whether first data stored at a first memory location of the non-volatile memory is accessible, wherein the first data comprises first user data and a first logical address associated with the first user data, wherein the first logical address is redundantly stored in the first memory location and a second memory location of the non-volatile memory, wherein a geometric relationship defines one of eight potentially adjacent positions in which the second physical memory location is positioned relative to the first physical memory location; in response to determining that the first data is inaccessible, reading second data from the second memory location of the non-volatile memory, the second data comprising the first logical address and second user data; and extracting the first logical address from the second data. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A memory interface for accessing a non-volatile memory, the memory interface comprising:
-
a bus controller for communicating with the non-volatile memory; and control circuitry configured to; direct the bus controller to read from a first memory location to obtain first user data, wherein the first user data comprises first metadata associated with the first user data; determine that the first user data is not accessible from the first memory location; and direct the bus controller to read second data from a second memory location based on a geometric relationship defining one of eight potentially adjacent positions in which the second physical memory location is positioned relative to the first physical memory location, wherein the second data comprises the first metadata and second user data, wherein the first metadata is redundantly stored in the first memory location and the second memory location of the non-volatile memory. - View Dependent Claims (24, 25)
-
Specification