Version based non-volatile memory translation layer
First Claim
1. A method of operating a non-volatile memory comprising:
- storing a version number associated with a logical sector stored in the non-volatile memory; and
storing one or more frequently updated logical sectors separately from non-frequently updated logical sectors including storing one or more frequently updated logical sectors in one or more frequently updated random sector clusters, wherein each one or more frequently updated random sector clusters contains a version number data field and a plurality of physical sectors for storage of a single logical sector, such that each update of the stored logical sector is written to a new unused physical sector of the cluster.
8 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile memory and erase block/data block/sector/cluster update and address translation scheme utilizing a version number is detailed that enhances data updating and helps reduce program disturb of the memory cells of the non-volatile memory device. The various embodiments utilize a version number associated with each erase block, data block, sector, and/or cluster. This allows for determination of currently valid data block, sector and/or cluster associated with the logical ID of the data grouping by locating the most recent version associated with the logical ID. With this approach, old data need not be invalidated by programming a valid/invalid flag, avoiding the risk of program disturb in the surrounding data rows.
127 Citations
32 Claims
-
1. A method of operating a non-volatile memory comprising:
-
storing a version number associated with a logical sector stored in the non-volatile memory; and storing one or more frequently updated logical sectors separately from non-frequently updated logical sectors including storing one or more frequently updated logical sectors in one or more frequently updated random sector clusters, wherein each one or more frequently updated random sector clusters contains a version number data field and a plurality of physical sectors for storage of a single logical sector, such that each update of the stored logical sector is written to a new unused physical sector of the cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of operating a non-volatile memory comprising:
-
translating a logical address of the logical sector to a physical sector address by using a stored version number and the logical address to retrieve the physical sector containing the most recent version number which is associated with the logical address of the accessed logical sector; and accessing one or more frequently updated logical sectors separately from non-frequently updated logical sectors including accessing one or more frequently updated logical sectors in one or more frequently updated random sector clusters, where each of the one or more frequently updated random sector clusters contains a plurality of physical sectors for storage of a single logical sector, such that each update of the stored logical sector is written to a new, unused physical sector of the cluster. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A method of translating a logical sector address to a physical sector address in a non-volatile memory comprising:
retrieving the physical address of a physical sector that is assigned to the logical address which contains the most recent version number stored in association with the physical sector wherein one or more frequently updated logical sectors of the non-volatile memory are accessed separately from non-frequently updated logical sectors and one or more frequently updated logical sectors are accessed in one or more frequently updated random sector clusters, where each of the one or more frequently updated random sector clusters contains a plurality of physical sectors for storage of a single logical sector, such that each update of the stored logical sector is written to a new, unused physical sector of the cluster. - View Dependent Claims (21, 22)
-
23. A non-volatile memory device comprising:
-
a memory array having a plurality of non-volatile memory cells arranged in a plurality of clusters, wherein each cluster contains a plurality of sectors; a plurality of version data fields, each version data field associated with a cluster of the plurality of clusters; and a control circuit, wherein the control circuit is configured to access a sector from the memory array by translating a logical address of the sector to a physical sector address of the memory array in reference to a logical cluster address and a version number stored in the version number data field associated with each of the physical clusters associated with the logical cluster address wherein the control circuit is further configured to access one or more frequently updated logical sectors separately from non-frequently updated logical sectors and access one or more frequently updated logical sectors in one or more frequently updated random sector clusters, where each of the one or more frequently updated random sector clusters contains a plurality of physical sectors for storage of a single logical sector, such that each update of the stored logical sector is written to a new, unused physical sector of the cluster. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
-
31. A method of operating a non-volatile memory comprising:
-
storing a version number associated with a logical cluster address stored in the non-volatile memory, wherein each cluster contains a plurality of sequentially addressed logical sectors; accessing logical sectors in a non-volatile memory by reference to the logical cluster address; and accessing one or more frequently updated logical sectors separately from non-frequently updated logical sectors including accessing one or more frequently updated logical sectors in one or more frequently updated random sector clusters, where each of the one or more frequently updated random sector clusters further contains a version number data field and a plurality of physical blocks for storage of a random logical sector, such that each update of the stored logical sector is written to a new unused physical block of the cluster without having to update the version number data field until all physical blocks of the random sector cluster have been utilized. - View Dependent Claims (32)
-
Specification