Flash memory mass storage system
First Claim
1. A method for using flash memory to implement a mass storage system, comprising:
- dividing the flash memory into a plurality of blocks,identifying a first set of blocks from the plurality of blocks, the first set of blocks being used to store data organized in accordance with a pre-defined addressing scheme;
identifying a second set of blocks from said plurality of blocks, the second set of blocks being used as a temporary buffer for storing data intended to be written to a block in the first set of blocks; and
updating data stored in a sector of a selected block in the first set of blocks by writing the updated data into a sector of a corresponding block in the second set of blocks and marking the sector of the corresponding block in the second set of blocks.
1 Assignment
0 Petitions
Accused Products
Abstract
An architecture for a mass storage system using flash memory is described. This architecture involves organizing the flash memory into a plurality of blocks. These blocks are then divided into several categories. One of the categories is a working category used to store data organized in accordance with a pre-defined addressing scheme (such as the logical block address used in Microsoft'"'"'s operating system). The other category is a temporary buffer used to store data intended to be written to one of the working blocks. Another category contains blocks that need to be erased. When data is written into the mass storage system, a block in the second category is allocated from a block in the third category. The allocated block will then be changed to a block in the first category when writing to the allocated block is completed. The correspond block in the first category is placed into the third category. As a result, blocks can be recycled. Consequently, there is a constant supply of blocks in the second category. In another embodiment of the present invention, a new category is developed to handle random writing to the working blocks.
207 Citations
13 Claims
-
1. A method for using flash memory to implement a mass storage system, comprising:
-
dividing the flash memory into a plurality of blocks, identifying a first set of blocks from the plurality of blocks, the first set of blocks being used to store data organized in accordance with a pre-defined addressing scheme; identifying a second set of blocks from said plurality of blocks, the second set of blocks being used as a temporary buffer for storing data intended to be written to a block in the first set of blocks; and updating data stored in a sector of a selected block in the first set of blocks by writing the updated data into a sector of a corresponding block in the second set of blocks and marking the sector of the corresponding block in the second set of blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A mass storage system, comprising:
-
a flash memory including a plurality of blocks; logic to map a first set of blocks in the plurality of blocks for storing data organized in accordance with a pre-defined addressing scheme; and logic to map a second set of blocks in the plurality of blocks for use as a buffer and to mark blocks in the second set of blocks that contain updated data by writing a parameter to flash memory associated with the blocks. - View Dependent Claims (9, 10, 11, 12, 13)
-
Specification