Method and apparatus for performing erase operations transparent to a solid state storage system
First Claim
1. A method of storing information in a digital information storage system having a controller device, a memory unit having a plurality of nonvolatile memory devices, and a host for storing digital information in the memory unit under the direction of the controller, the memory unit being organized into blocks, each block identified by the controller using a logical block address (LBA) and being identified within the memory unit by a corresponding physical block address (PBA), comprising:
- (a) assigning a predetermined number of blocks to each of the nonvolatile memory devices, each block being identified by an LBA;
(b) finding a number of free memory device blocks that are available for storage of digital information;
(c) receiving a write command including host-provided data and host-provided location information for identifying the host-provided data and storing the same in the memory unit;
(d) developing a current LBA using the host-provided location information;
(e) determining which of the nonvolatile memory devices has the greatest number of free memory device blocks;
(f) finding a free block available for storage of information within the nonvolatile memory device having the greatest number of free memory device blocks, the free block being identified by a free PBA; and
(g) storing the host-provided data in the free block identified by the free PBA within the memory unit,wherein searching the entire memory unit to find the location of a free block is reduced to searching only within a nonvolatile memory device having the greatest number of free blocks.
10 Assignments
0 Petitions
Accused Products
Abstract
In a digital system having a host, a controller device and at least one nonvolatile memory integrated circuit, such as a flash memory chip, a method and apparatus is disclosed for storing digital information, provided by the host, in the nonvolatile memory under the direction of the controller in an efficient manner so as to significantly improve system performance. The nonvolatile memory is organized into sequentially-numbered blocks. Each nonvolatile integrated circuit is assigned a predetermined number of sequential blocks and when a free block is solicited for storage of digital information provided by the host, the nonvolatile integrated circuit rather than the entire nonvolatile memory is searched for the free block. When the information stored in a block is being updated by the host, the nonvolatile integrated circuit assigned to that block is excluded from the search for the free block. Moreover, the nonvolatile integrated circuit having the greatest number of free blocks is used for searching of the free block and storing of the host-provided information to allow for equal use of the nonvolatile integrated circuits.
133 Citations
20 Claims
-
1. A method of storing information in a digital information storage system having a controller device, a memory unit having a plurality of nonvolatile memory devices, and a host for storing digital information in the memory unit under the direction of the controller, the memory unit being organized into blocks, each block identified by the controller using a logical block address (LBA) and being identified within the memory unit by a corresponding physical block address (PBA), comprising:
-
(a) assigning a predetermined number of blocks to each of the nonvolatile memory devices, each block being identified by an LBA; (b) finding a number of free memory device blocks that are available for storage of digital information; (c) receiving a write command including host-provided data and host-provided location information for identifying the host-provided data and storing the same in the memory unit; (d) developing a current LBA using the host-provided location information; (e) determining which of the nonvolatile memory devices has the greatest number of free memory device blocks; (f) finding a free block available for storage of information within the nonvolatile memory device having the greatest number of free memory device blocks, the free block being identified by a free PBA; and (g) storing the host-provided data in the free block identified by the free PBA within the memory unit, wherein searching the entire memory unit to find the location of a free block is reduced to searching only within a nonvolatile memory device having the greatest number of free blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. In a nonvolatile storage system having a controller device coupled to a host and a memory unit having a plurality of nonvolatile memory devices for storage of digital information provided by the host in the memory unit under the direction of the controller, the memory unit being organized into blocks, each block being identified by the controller using a logical block address (LBA) and being identified within the memory unit, by a corresponding physical block address (PBA) developed by the controller, the controller comprising:
-
a host interface circuit for receiving a write command from the host including host-provided data and a host-provided location information for identifying the host-provided data and storing the same in the memory unit; a processor circuit for assigning a predetermined number of blocks to each of the nonvolatile memory devices and for maintaining a number of free memory device blocks available for storage of digital information for each nonvolatile memory device, said processor operative to find the nonvolatile memory device having the greatest number of free blocks; a space manager unit being responsive to said host-provided location information and being operative to develop a current LBA, said space manager unit further being operative to find a free block within the nonvolatile memory device having the greatest number of free blocks, for storage of said host-provided data therein, and for developing a free PBA for identifying the free block; and a flash interface circuit for storing the host-provided information in the free block identified by the free PBA within the memory unit, wherein searching the entire memory unit to find the location of a free block is reduced to searching only within a nonvolatile memory device having the greatest number of free blocks thereby increasing the performance of the storage system. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification