Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
First Claim
1. A memory storage system for storing information organized in sectors within a nonvolatile memory bank defined by sector store locations spanning across two or more nonvolatile memory devices, each said sector including a user data portion and an overhead portion, said sectors being organized into blocks, each sector identified by a host provided logical block address (LBA) and an actual physical block address (PBA) derived from a virtual PBA, each block being identified by a modified LBA derived from said host-provided LBA and said virtual PBA, said host-provided LBA being received by said storage system from the host for identifying a sector of information to be accessed, said actual PBA developed by said storage system for identifying a free location within said memory bank wherein said accessed sector is to be stored, said storage system comprising:
- a memory controller coupled to said host; and
a nonvolatile memory bank coupled to said memory controller via a memory bus, said memory bank including a first non-volatile semiconductor memory unit and a second non-volatile semiconductor memory unit, said memory bank having storage blocks each of which includes at least one memory row location having a first row-portion located in said first memory unit, and a corresponding second row-portion located in said second memory unit, each said memory row location providing storage space for two of said sectors,wherein the speed of performing write operations is increased by writing sector information to two or more nonvolatile memory devices simultaneously.
11 Assignments
0 Petitions
Accused Products
Abstract
The present invention includes a digital system having a controller semiconductor device coupled to a host and a nonvolatile memory bank including a plurality of nonvolatile memory devices. The controller transfers information, organized in sectors, with each sector including a user data portion and an overhead portion, between the host and the nonvolatile memory bank and stores and reads two bytes of information relating to the same sector simultaneously within two nonvolatile memory devices. Each nonvolatile memory device is defined by a row of memory locations wherein corresponding rows of at least two semiconductor devices maintain two sectors of information therein with the overhead information relating to the two sectors maintained in one of the memory rows of the nonvolatile memory device. Each 32 sectors of information defines a block identified by a virtual physical block address with a block of information expanding between two memory devices wherein an even and an odd byte of a sector is simultaneously read from or written to two nonvolatile memory devices. In another embodiment, the controller stores an entire sector of information within a single nonvolatile memory device and reads from or writes to, a sector of information by processing corresponding bytes of at least two sectors in two nonvolatile memory devices simultaneously.
273 Citations
24 Claims
-
1. A memory storage system for storing information organized in sectors within a nonvolatile memory bank defined by sector store locations spanning across two or more nonvolatile memory devices, each said sector including a user data portion and an overhead portion, said sectors being organized into blocks, each sector identified by a host provided logical block address (LBA) and an actual physical block address (PBA) derived from a virtual PBA, each block being identified by a modified LBA derived from said host-provided LBA and said virtual PBA, said host-provided LBA being received by said storage system from the host for identifying a sector of information to be accessed, said actual PBA developed by said storage system for identifying a free location within said memory bank wherein said accessed sector is to be stored, said storage system comprising:
-
a memory controller coupled to said host; and a nonvolatile memory bank coupled to said memory controller via a memory bus, said memory bank including a first non-volatile semiconductor memory unit and a second non-volatile semiconductor memory unit, said memory bank having storage blocks each of which includes at least one memory row location having a first row-portion located in said first memory unit, and a corresponding second row-portion located in said second memory unit, each said memory row location providing storage space for two of said sectors, wherein the speed of performing write operations is increased by writing sector information to two or more nonvolatile memory devices simultaneously. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a storage system including a non-volatile memory bank and a controller coupled to said memory bank via a memory bus, said memory bank including a first non-volatile memory unit and a second non-volatile memory unit, said memory bank having storage locations defined by blocks, each block for storing a plurality of sectors of information, each sector having a user data portion and an overhead portion, each block including at least one memory row location having a first row-portion located in said first memory unit, and a corresponding second row-portion located in said second memory unit, a process of writing a first sector and a second sector to said memory bank during a single write operation, said process including the steps of:
-
simultaneously transmitting a write command to said first and second memory units; addressing one of said memory row locations of said memory bank by simultaneously addressing corresponding first and second row portions of said addressed row location; transmitting a first data byte of said first sector to said first memory unit while simultaneously transmitting a second data byte of said first sector to said second memory unit and after transmission of all of the bytes of the first sector to the first and second memory units, transmitting the first byte of said second sector to said first memory unit while simultaneously transmitting a second byte of said second sector to said second memory unit, wherein two sectors of information are stored in one memory row location of said memory bank by simultaneously transmitting two byte of sector information thereby increasing the speed of write operations of the storage system. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. In a storage system including a nonvolatile memory bank and a controller coupled to said memory bank via a memory bus, said memory bank including a first non-volatile memory unit and a second non-volatile memory unit, said memory bank having storage blocks for storing information sectors each of which includes a user data portion and an overhead portion, each block having associated therewith a logical block address (LBA) and a physical block address (PBA), said LBA provided by a host to said controller for identifying a block to be accessed, said PBA developed by said storage system for identifying a free location within said memory bank wherein said accessed block is to be stored, each block including at least one memory row location having a first row-portion located in said first memory unit, and a corresponding second row-portion located in said second memory unit, a process of writing a first sector and a second sector to said memory bank during a single write operation, said process including the steps of:
-
simultaneously providing a write command to said first and second memory units; addressing one of said memory row locations of said memory bank by simultaneously addressing corresponding first and second row portions of said addressed row location; storing even data bytes of an even sector to a first even sector field of said addressed first row-portion; storing even data bytes of an odd sector to a first odd sector field of said first addressed row-portion; storing odd data bytes of said even sector to a second even sector field of said second addressed row-portion; and storing odd data bytes of said odd sector of information to a second odd sector field of said second addressed row-portion. - View Dependent Claims (21)
-
-
22. In a storage device including a nonvolatile memory bank and a controller coupled to said memory bank via a memory bus, said memory bank including a first non-volatile memory unit and a second non-volatile memory unit, said memory bank having blocks for storing sectors of information each of which includes a user data portion and an overhead portion, each said block having associated therewith a logical block address (LBA) and a physical block address (PBA), said LBA provided by a host to said controller for identifying a sector of information to be accessed, said PBA developed by said storage system for identifying a free block location within said memory bank wherein said accessed block is to be stored, each block including at least one memory row location having a first row-portion located in said first memory unit, and a corresponding second row-portion located in said second memory unit, said controller including a data buffer;
- a process of writing sector-organized information to said memory bank, said process including the steps of;
receiving host-provided LBA values from said host, each said host-provided LBA value for identifying a sector of information; modifying a current host-provided LBA to identify a block of sectors of information; providing a map having map row locations identified by said modified LBA values or virtual PBA values, said map used as a look-up-table for storing virtual PBA values corresponding to modified LBA values; setting a sector count value equal to the number of sectors of information identified by the host; searching for a free block within said memory bank identified by a current virtual PBA; storing said current virtual PBA, corresponding to said free block, in a map row location identified by said modified current LBA in said map; determining whether said current host-provided LBA is even and whether said sector count is greater than one; if said current actual PBA value is even and said sector count is greater than one, simultaneously writing two sectors of information, one sector identified by said current host-provided LBA and a second sector of information identified by said current host-provided LBA plus one, said first sector being written to said first non-volatile memory unit and said second sector being written to said second non-volatile memory units of said memory bank, decrementing said sector count by two, determining whether said sector count is equal to zero, if said sector count is not equal to zero, increasing said current host-provided LBA value by two to point to the next sector that is to be written, if said current host-provided LBA value or said sector count is not greater than one, simultaneously writing even data bytes of a current sector of information identified by said current host-provided LBA to said first non-volatile memory unit and odd data bytes of said current sector to said second non-volatile memory unit, decrementing said sector count by one, determining whether said sector count is equal to zero, and if said sector count is not equal to zero, increasing said current host-provided LBA by one to point to the next sector of information that is to be written. - View Dependent Claims (23, 24)
- a process of writing sector-organized information to said memory bank, said process including the steps of;
Specification