Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
First Claim
1. A method of improving the performance of a digital data storage system for use with a host, the digital system including a controller and a nonvolatile memory unit having memory locations organized by blocks, with each block having a plurality of sectors for storing host provided information in the form of non-user data files and user data files, the controller being operative to control the reading, writing and erasing operations performed on the nonvolatile memory, the host being operative to provide an address identifying the starting location of the user file to the controller, the method comprising:
- a. receiving a user file identified by a starting sector address for storage within the nonvolatile memory unit;
b. finding a free block having a first sector within the nonvolatile memory unit that is available for storage of information, the free block having a size defined by a plurality of sectors;
c. adding an offset value to the starting sector address of the user file, the starting sector address of the user file being identified by a host-provided logical block address (LBA);
d. aligning the user file starting sector address with the first sector of the free block, the LBA being aligned with the beginning of the free block;
e. shifting the aligned LBA by the number of sectors within a block;
f. storing the user file within the free block starting with the first sector of the free block; and
g. if the user file extends beyond the size of the free block, storing the remainder of the user file within blocks subsequent to the free block,wherein each time a user data file is stored in the nonvolatile memory unit, the beginning of the user data file is aligned with the first sector of the free block thereby increasing the performance of the digital system by decreasing the number of erase and write operations when storing user files.
6 Assignments
0 Petitions
Accused Products
Abstract
A digital system is disclosed for use with a host, the digital system including a controller and a nonvolatile memory unit having memory locations organized in blocks with each block having a plurality of sectors for storing information provided by the host in the form of non-user data files and user data files, the controller for controlling reading, writing and erasing operations performed on the nonvolatile memory, the host providing to the controller an address, identifying the starting location of the user file to the controller, and a user file identified by a starting sector address for storage within the nonvolatile memory unit. The controller finds a free block within the nonvolatile memory unit that is available for storage of information, and aligns the user file starting address with the beginning of the free block, and stores the user file within the free block starting with the beginning of the free block. If the user file extends beyond the size of the free block, the remainder of the user file is stored within blocks subsequent to the free block, wherein each time a user data file is stored in the nonvolatile memory unit, the beginning of the user data file is aligned with the beginning of the block thereby increasing performance in writing user files, and decreasing the number of erase and write operations performed on the nonvolatile memory unit.
-
Citations
10 Claims
-
1. A method of improving the performance of a digital data storage system for use with a host, the digital system including a controller and a nonvolatile memory unit having memory locations organized by blocks, with each block having a plurality of sectors for storing host provided information in the form of non-user data files and user data files, the controller being operative to control the reading, writing and erasing operations performed on the nonvolatile memory, the host being operative to provide an address identifying the starting location of the user file to the controller, the method comprising:
-
a. receiving a user file identified by a starting sector address for storage within the nonvolatile memory unit; b. finding a free block having a first sector within the nonvolatile memory unit that is available for storage of information, the free block having a size defined by a plurality of sectors; c. adding an offset value to the starting sector address of the user file, the starting sector address of the user file being identified by a host-provided logical block address (LBA); d. aligning the user file starting sector address with the first sector of the free block, the LBA being aligned with the beginning of the free block; e. shifting the aligned LBA by the number of sectors within a block; f. storing the user file within the free block starting with the first sector of the free block; and g. if the user file extends beyond the size of the free block, storing the remainder of the user file within blocks subsequent to the free block, wherein each time a user data file is stored in the nonvolatile memory unit, the beginning of the user data file is aligned with the first sector of the free block thereby increasing the performance of the digital system by decreasing the number of erase and write operations when storing user files. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A controller included in a digital system for causing read, write, erase and move operations to be performed on a nonvolatile memory unit, the nonvolatile memory unit for storing user data files organized in blocks, the digital system being coupled to a host for receiving user files therefrom, comprising:
-
means for receiving an LBA provided by the host, said LBA identifying the beginning of a user data file to be stored within the nonvolatile memory unit; means for adding an offset LBA value to the received LBA to calculate an aligned LBA; means for shifting the aligned LBA by the number of sectors within a block; means for aligning the beginning of the user data file with the first sector of a block within the nonvolatile memory that is available for storage of information; and storage means for storing the user file within the available block starting from the first sector thereof, and if the user file is larger than the size of the available block, for further storing the remainder of the user file in subsequent blocks, wherein each time a user data file is stored in the nonvolatile memory unit, the beginning of the user data file is aligned with the first sector of the available block thereby increasing the performance of the digital system by decreasing the number of erase and write operations when storing user data files. - View Dependent Claims (7, 8, 9, 10)
-
Specification