Method of writing data to non-volatile memory
First Claim
Patent Images
1. A non-volatile memory system comprising:
- volatile memory;
non-volatile memory including control data structures; and
a controller coupled to said non-volatile memory, said controller comprising means for maintaining lists in the volatile memory of blocks in the non-volatile memory allocated for storage of logical sector data, associated with logical addresses, and of blocks recently erased in the non-volatile memory, a plurality of cyclic write pointers for tracking the sequence of sector writing using the logical addresses, said controller further comprising transferring means for transferring information from the lists in the volatile memory to control data structures in the non-volatile memory less frequently than the rate at which the contents of the lists in volatile memory are changed, and means for including with every sector when written in the non-volatile memory a header containing logical address information representative of its logical address and further comprising means for reconstructing the lists in the volatile memory from existing information within the non-volatile memory wherein said existing information includes the logical address information in the headers of recently written sectors, the cyclic write pointers used to track the sequence of sector writing using logical addresses in the header of sectors in sequential physical position,the memory system including means for maintaining a Sector Address Table (SAT) of a list of physical sectors addressing the sectors in non-volatile memory corresponding to all sectors in the memory system, the SAT being maintained in a plurality of SAT blocks and having n number of entries, the nth entry including the physical address for the sector having logical address n, each SAT block having two equal partitions, a SAT partition dedicated to SAT entries and a temporary SAT (TSAT) partition, the TSAT partition of the block being an area in which TSAT sectors, which are written during a control write operation, are temporarily stored before being written in the SAT partition, an index of valid TSAT sectors and their position in the TSAT partition being maintained in a TSAT Index (TSATI) field in the most recently written TSAT sector,wherein when a TSAT sector is written, it is located at the first available sector position in the TSAT partition of the SAT block to which the sector relates, a SAT block is rewritten when its TSAT partition is full with valid TSAT sectors in the previous TSAT partition replacing the corresponding SAT sectors in the SAT partition, and the TSAT partition being left empty.
9 Assignments
0 Petitions
Accused Products
Abstract
According to a first aspect of the invention, there is provided a controller connected to a non-volatile memory and including a volatile memory, wherein the controller maintains lists in volatile memory of blocks in the non-volatile memory allocated for storage of logical sector data and of blocks recently erased in the non-volatile memory.
-
Citations
10 Claims
-
1. A non-volatile memory system comprising:
-
volatile memory; non-volatile memory including control data structures; and a controller coupled to said non-volatile memory, said controller comprising means for maintaining lists in the volatile memory of blocks in the non-volatile memory allocated for storage of logical sector data, associated with logical addresses, and of blocks recently erased in the non-volatile memory, a plurality of cyclic write pointers for tracking the sequence of sector writing using the logical addresses, said controller further comprising transferring means for transferring information from the lists in the volatile memory to control data structures in the non-volatile memory less frequently than the rate at which the contents of the lists in volatile memory are changed, and means for including with every sector when written in the non-volatile memory a header containing logical address information representative of its logical address and further comprising means for reconstructing the lists in the volatile memory from existing information within the non-volatile memory wherein said existing information includes the logical address information in the headers of recently written sectors, the cyclic write pointers used to track the sequence of sector writing using logical addresses in the header of sectors in sequential physical position, the memory system including means for maintaining a Sector Address Table (SAT) of a list of physical sectors addressing the sectors in non-volatile memory corresponding to all sectors in the memory system, the SAT being maintained in a plurality of SAT blocks and having n number of entries, the nth entry including the physical address for the sector having logical address n, each SAT block having two equal partitions, a SAT partition dedicated to SAT entries and a temporary SAT (TSAT) partition, the TSAT partition of the block being an area in which TSAT sectors, which are written during a control write operation, are temporarily stored before being written in the SAT partition, an index of valid TSAT sectors and their position in the TSAT partition being maintained in a TSAT Index (TSATI) field in the most recently written TSAT sector, wherein when a TSAT sector is written, it is located at the first available sector position in the TSAT partition of the SAT block to which the sector relates, a SAT block is rewritten when its TSAT partition is full with valid TSAT sectors in the previous TSAT partition replacing the corresponding SAT sectors in the SAT partition, and the TSAT partition being left empty. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-volatile memory system comprising:
-
non-volatile memory including blocks, each block having sectors addressed by logical addresses and stored and read from the non-volatile memory using physical addresses identifying sectors in physical locations or positions within the non-volatile memory, the blocks being in the erased states and blocks which have been recently erased; and a controller coupled to a non-volatile memory and including a volatile memory, wherein the controller maintains a first list of all blocks in the non-volatile memory which are in the erased state and which are not included in other lists, the controller further maintains a second list of blocks in the non-volatile memory which have been recently erased, the lists allocated for storage of logical sector data, associated with logical addresses, and of blocks recently erased in the non-volatile memory, a plurality of cyclic write pointers for tracking the sequence of sector writing using the logical addresses, the cyclic write pointers used to track the sequence of sector writing using logical addresses in the header of sectors in sequential physical position, wherein even use of blocks in the non-volatile memory for storage of data over a long period of operation is achieved and “
hotspots”
in non-volatile memory usage is avoided thereby increasing reliability of the memory system,the memory system including means for maintaining a Sector Address Table (SAT) of a list of physical sectors addressing the sectors in non-volatile memory corresponding to all sectors in the memory system, the SAT being maintained in a plurality of SAT blocks and having n number of entries, the nth entry including the physical address for the sector having logical address n, each SAT block having two equal partitions, a SAT partition dedicated to SAT entries and a temporary SAT (TSAT) partition, the TSAT partition of the block being an area in which TSAT sectors, which are written during a control write operation, are temporarily stored before being written in the SAT partition, an index of valid TSAT sectors and their position in the TSAT partition being maintained in a TSAT Index (TSATI) field in the most recently written TSAT sector, wherein when a TSAT sector is written, it is located at the first available sector position in the TSAT partition of the SAT block to which the sector relates, a SAT block is rewritten when its TSAT partition is full with valid TSAT sectors in the previous TSAT partition replacing the corresponding SAT sectors in the SAT partition, and the TSAT partition being left empty. - View Dependent Claims (8)
-
-
9. A method of operating a non-volatile memory system including a volatile memory and a non-volatile memory including control data structures, the method comprising:
-
maintaining lists in the volatile memory of blocks in the non-volatile memory allocated for storage of logical sector data and of blocks recently erased in the non-volatile memory; transferring information from the lists in the volatile memory to control data structures in the non-volatile memory less frequently than the rate at which the contents of the lists in volatile memory are changed; including with every sector when written in the non-volatile memory, a header containing logical address information representative of its logical address; and reconstructing the lists in the volatile memory during initialization of the system from existing information within the non-volatile memory, wherein said existing information including the logical address information in the headers of recently written sectors; maintaining a Sector Address Table (SAT) of a list of physical sectors addressing the sectors in non-volatile memory corresponding to all sectors in the memory system, the SAT being maintained in a plurality of SAT blocks and having n number of entries, the nth entry including the physical address for the sector having logical address n, each SAT block having two equal partitions, a SAT partition dedicated to SAT entries and a temporary SAT (TSAT) partition, the TSAT partition of the block being an area in which TSAT sectors, which are written during a control write operation, are temporarily stored before being written in the SAT partition, an index of valid TSAT sectors and their position in the TSAT partition being maintained in a TSAT Index (TSATI) field in the most recently written TSAT sector; writing a TSAT sector in a location that is at the first available sector position in the TSAT partition of the SAT block to which the sector relates; and rewriting a SAT block when its TSAT partition is full with valid TSAT sectors in the previous TSAT partition replacing the corresponding SAT sectors in the SAT partition, and the TSAT partition being left empty. - View Dependent Claims (10)
-
Specification