Disk emulation for a non-volatile semiconductor memory utilizing a mapping table
First Claim
1. A non-volatile semiconductor memory system that emulates a disk storage device comprising at least one allocation unit, each allocation unit comprising at least one sector, said non-volatile semiconductor memory system comprising non-volatile semiconductor memory comprising a plurality of blocks, wherein said memory is erased in blocks, each of said blocks comprising a plurality of sectors, said system comprising:
- (A) an active block for storing first data;
(B) a reserve block for storing second data, wherein the second data is a copy of the first data, wherein the copy is made during a clean-up operation prior to an erasure of the active block;
(C) a mapping table for mapping a logical address of an allocation unit of a disk storage device to a physical address of a sector within the non-volatile semiconductor memory, said mapping table comprising;
(1) at least one logical address field corresponding to a logical address of an allocation unit on a disk storage device emulated,(2) a first corresponding physical address field of a sector within the non-volatile semiconductor memory,(3) a next logical address field comprising a first value if the first corresponding physical address is clean such that valid data is located in the non-volatile semiconductor memory at that first physical address, said next logical address comprising a logical address value pointing to a second logical address and corresponding second physical address in the mapping table if said first physical address is dirty such that invalid data is located at the first physical address, andsaid mapping table being updated during a clean-up operation to change the first value of the next logical address field to point to the second logical address and to update the corresponding physical address to identify the second physical address, the second physical address being an address of the data copied into the reserve block in the non-volatile semiconductor memory.
0 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile semiconductor memory that is erased in blocks is described. The non-volatile semiconductor memory includes an active block for storing first data and a reserve block for storing second data. The second data is a copy of the first data. The copy is made during a clean-up operation prior to erasure of the active block. The non-volatile semiconductor memory also includes a mapping table for mapping a logical address of an allocation unit to a physical address of a sector within the non-volatile semiconductor memory.
371 Citations
26 Claims
-
1. A non-volatile semiconductor memory system that emulates a disk storage device comprising at least one allocation unit, each allocation unit comprising at least one sector, said non-volatile semiconductor memory system comprising non-volatile semiconductor memory comprising a plurality of blocks, wherein said memory is erased in blocks, each of said blocks comprising a plurality of sectors, said system comprising:
-
(A) an active block for storing first data; (B) a reserve block for storing second data, wherein the second data is a copy of the first data, wherein the copy is made during a clean-up operation prior to an erasure of the active block; (C) a mapping table for mapping a logical address of an allocation unit of a disk storage device to a physical address of a sector within the non-volatile semiconductor memory, said mapping table comprising; (1) at least one logical address field corresponding to a logical address of an allocation unit on a disk storage device emulated, (2) a first corresponding physical address field of a sector within the non-volatile semiconductor memory, (3) a next logical address field comprising a first value if the first corresponding physical address is clean such that valid data is located in the non-volatile semiconductor memory at that first physical address, said next logical address comprising a logical address value pointing to a second logical address and corresponding second physical address in the mapping table if said first physical address is dirty such that invalid data is located at the first physical address, and said mapping table being updated during a clean-up operation to change the first value of the next logical address field to point to the second logical address and to update the corresponding physical address to identify the second physical address, the second physical address being an address of the data copied into the reserve block in the non-volatile semiconductor memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 18, 23)
-
-
10. A computer system comprising:
-
(A) a central processing unit; (B) a non-volatile semiconductor memory system that emulates a disk storage device comprising at least one allocation unit, each allocation unit comprising at least one sector, said non-volatile semiconductor memory system comprising non-volatile semiconductor memory comprising a plurality of blocks, wherein said memory is erasable in blocks, each of said blocks comprising a plurality of sectors, wherein the non-volatile semiconductor memory is accessed by the central processing unit, and wherein the non-volatile memory comprises; (1) an active block for storing first data; (2) a reserve block for storing second data, wherein the second data is a copy of the first data, wherein the copy is made during a clean-up operation prior to an erasure of the active block; (3) a mapping table for mapping a logical address of an allocation unit of a disk storage device to a physical address of a sector within the non-volatile semiconductor memory, said mapping table comprising; (a) at least one logical address field corresponding to a logical address of an allocation unit on a disk storage device emulated, (b) a first corresponding physical address field of a sector within the non-volatile semiconductor memory, (c) a next logical address field comprising a first value if the first corresponding physical address is clean such that valid data is located in the non-volatile semiconductor memory at that first physical address, said next logical address comprising a logical address value pointing to a second logical address and corresponding second physical address in the mapping table if said first physical address is dirty such that invalid data is located at the first physical address, and said mapping table being updated during a clean-up operation to change the first value of the next logical address field to point to the second logical address and to update the corresponding physical address to identify the second physical address, the second physical address being an address of the data copied into the reserve block in the non-volatile semiconductor memory such that a disk storage device is emulated and the mapping table performs translations to perform the emulation; and (C) storage means for storing code for controlling the non-volatile memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 19, 24)
-
-
20. In a non-volatile semiconductor memory comprising a plurality of blocks, a method for emulating a disk storage device comprising at least one allocation unit, each allocation unit comprising at least one sector, said method comprising the steps of:
-
(A) providing a mapping table comprising at least one entry that maps a logical address for accessing the disk storage device to a physical address of the semiconductor memory, each entry including a logical address field corresponding to a logical address of an allocation unit on a disk storage device emulated, a first corresponding physical address field of a sector within the non-volatile semiconductor memory, and a next logical address field comprising a first value if the first corresponding physical address is clean such that valid data is located in the non-volatile semiconductor memory at that first physical address, said next logical address comprising a logical address value pointing to another logical address and another corresponding physical address in the mapping table if said first physical address is dirty such that invalid data is located at the first physical address; (B) generating a linked list of entries for each logical address corresponding to a given logical address of an allocation unit on a disk storage device emulated, said linked list added to each time data is moved in the non-volatile semiconductor memory, said next logical address field pointing to a next logical address entry in the table, the next logical address field of a last entry containing a first value to indicate the end of the linked list and that valid data is located in the memory at the corresponding physical address; (C) updating data by writing new data to a free memory location, adding a new entry at an available logical address to the linked list to identify the physical address at which the new data is located, said corresponding next logical address field being set to the first value to identify a new last entry in the linked list and the location of the valid data, and updating the next logical address field of a prior last entry in the linked list from the first value to a value which points to the logical address in the table at which the new entry is located. - View Dependent Claims (21, 25)
-
-
22. A non-volatile semiconductor memory system that emulates a disk storage device comprising at least one allocation unit, each allocation unit comprising at least one sector, said non-volatile semiconductor memory system comprising non-volatile semiconductor memory comprising a plurality of blocks, each of said blocks comprising a plurality of sectors, said system comprising:
-
(A) a mapping table for mapping logical addresses of an allocation unit of a disk storage device to physical addresses of a sector within the non-volatile semiconductor memory, said mapping table comprising; (1) at least one logical address field corresponding to a logical address of an allocation unit on a disk storage device emulated; and (2) a first corresponding physical address field of a sector within the non-volatile semiconductor memory; (B) a read/write controller for performing read and write operations to the non-volatile semiconductor memory, said controller performing a read operation by referencing the mapping table for translating the logical address to be accessed to the corresponding physical address in the non-volatile semiconductor memory, said controller performing a write operation by writing the data to a free memory location identified by a different physical address, said controller updating the mapping table to identify the different physical address; wherein memory write operations are performed in a timely manner without performing a prior erasure operation to emulate a disk storage device. - View Dependent Claims (26)
-
Specification