Identification and verification of a sector within a block of mass storage flash memory
First Claim
Patent Images
1. A storage device comprising:
- a nonvolatile memory adapted to be coupled to a host processor for storing information identified by a logical block address (LBA) assigned by the host processor, sad nonvolatile memory being organized in blocks of numbered rows of information storage sites, each said block being identified by a physical block address (PBA);
a memory device operative to store a table including a plurality of storage sites, each addressable by a particular LBA, and each of which is associated with a particular PBA identifying a particular block within said nonvolatile memory in which information corresponding to a particular LBA is, or is to be, stored in one or more of the rows thereof; and
a controller associated with said memory device for accessing a block in said nonvolatile memory identified by a particular PBA in response to receipt from the host of a corresponding LBA, said controller being operative to access at least a portion of a particular PBA to read data from, or to write data into the accessed block, said controller being programmed to write the identifying LBA into two different locations within said accessed block, and upon accessing of any block having data stored therein, said controller being operative to compare the LBAs written into the two different locations within the block, and if the LBAs match, to use the block for information storage, but if the LBAs do not match, then to erase the block prior to re-use.
10 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is disclosed for identifying a block being stored within flash memory devices using a cluster address for each block, the block being selectively erasable and having one or more sectors, the cluster address being stored in one of the sectors of the block. In an alternative embodiment, the cluster address is stored in at least two different sectors within the same block for ensuring that the information last written to the block is valid. Further disclosed is a novel way to use a defect flag for each block stored within the flash memory device for efficiently identifying non-defective blocks upon system power-up.
360 Citations
5 Claims
-
1. A storage device comprising:
-
a nonvolatile memory adapted to be coupled to a host processor for storing information identified by a logical block address (LBA) assigned by the host processor, sad nonvolatile memory being organized in blocks of numbered rows of information storage sites, each said block being identified by a physical block address (PBA); a memory device operative to store a table including a plurality of storage sites, each addressable by a particular LBA, and each of which is associated with a particular PBA identifying a particular block within said nonvolatile memory in which information corresponding to a particular LBA is, or is to be, stored in one or more of the rows thereof; and a controller associated with said memory device for accessing a block in said nonvolatile memory identified by a particular PBA in response to receipt from the host of a corresponding LBA, said controller being operative to access at least a portion of a particular PBA to read data from, or to write data into the accessed block, said controller being programmed to write the identifying LBA into two different locations within said accessed block, and upon accessing of any block having data stored therein, said controller being operative to compare the LBAs written into the two different locations within the block, and if the LBAs match, to use the block for information storage, but if the LBAs do not match, then to erase the block prior to re-use. - View Dependent Claims (2)
-
-
3. In a storage device including a controller, a nonvolatile memory for storing information identified by a logical block address (LBA) assigned by a host processor, and including data, and a set of flags, said nonvolatile memory being organized in blocks of numbered rows of information storage sites, at least a portion of each said block being identified by a physical block address (PBA), and a memory device addressable by the controller for storing a table for translating LBAs into corresponding PBAs identifying particular blocks within said nonvolatile memory and in which information corresponding to a particular LBA is, or is to be, stored in one or more of the rows thereof, a process of managing the storage of information in said nonvolatile memory, comprising:
-
receiving information to be stored, said information being identified by an LBA assigned by the host processor; determining an available block in said nonvolatile memory identified by a particular PBA and available for storing said information; storing the PBA of the available block into a location in said memory device addressable by a particular LBA; storing the information in the block of said nonvolatile memory identified by said PBA; setting a "used" flag in said block; storing said LBA in a first location in said block along with said information; storing said LBA in a second location in said block; and upon each power-up of said storage device, comparing the LBA stored in said first location of said block to the LBA stored in said second location of said block; and if a match is found and a corresponding "defect" flag is not set, determining that the data is not defective and continuing to use the block for information storage; but if the LBA stored in said first location of said block does not match the LBA stored in said second location of said block and no "defect" flag is set, then determining that the block is not defective and erasing the block before re-use.
-
-
4. A process of managing the storage of information in a storage device including a nonvolatile memory so that, upon each power-up, defective data can be quickly located, comprising:
-
receiving information identified by a logical block address (LBA); determining an available block or portion of a block in said nonvolatile memory for storing the information, said available block or portion thereof being identified by a physical block address (PBA); storing the PBA into a location in a memory device addressable by said LBA; storing the information in the block or portion of the block of said nonvolatile memory identified by said PBA; setting a "used" flag; storing said LBA in a first location in said block; storing said LBA in a second location in said block; and upon each power-up of said storage device; comparing the LBA stored in said first location to the LBA stored in the second location, and if a match is found and no "defect" flag is set, determining that the data is not defective and continuing to use the block for information storage; but if the LBA stored in said first location does not match the LBA stored in said second location, and no defect flag is set, then determining that the block is not defective and erasing the block before its re-use. - View Dependent Claims (5)
-
Specification