Method and apparatus for cleaning up a solid state memory disk storing floating sector data
First Claim
1. A method of cleaning up a solid state memory disk, the solid state memory disk communicating with a host computer via a conventional disk drive interface, the solid state memory disk including a multiplicity of nonvolatile semiconductor memory devices, each nonvolatile semiconductor memory device including a multiplicity of blocks and wherein each nonvolatile semiconductor memory device is erasable only in blocks, each block storing valid sectors and dirty sectors, the method of cleaning up comprising the steps of:
- a) selecting a first block to clean-up;
b) allocating a sufficient amount of memory in a second block to store a valid sector located within the first block;
c) checking whether an amount of data remaining to be copied from the first block exceeds a threshold;
d) copying the data from the first block to the second block if the amount of data remaining to be copied from the first block does not exceed the threshold, otherwise copying a portion of the data remaining to be copied from the first block to the second block;
e) repeating steps c) and d) until all of the valid sectors from the first block have been copied to the second block; and
f) erasing the first block.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of cleaning-up a solid state memory disk is described. Clean-up begins with the selection of a focus block for clean-up. Next, on a sector-by-sector basis, memory is allocated within a destination block to store valid sectors of user data. User data is then copied into the destination block on a sector-by-sector basis. Afterward, the focus block is erased, converting dirty sectors into free memory without loss of valid sectors of data.
-
Citations
30 Claims
-
1. A method of cleaning up a solid state memory disk, the solid state memory disk communicating with a host computer via a conventional disk drive interface, the solid state memory disk including a multiplicity of nonvolatile semiconductor memory devices, each nonvolatile semiconductor memory device including a multiplicity of blocks and wherein each nonvolatile semiconductor memory device is erasable only in blocks, each block storing valid sectors and dirty sectors, the method of cleaning up comprising the steps of:
-
a) selecting a first block to clean-up; b) allocating a sufficient amount of memory in a second block to store a valid sector located within the first block; c) checking whether an amount of data remaining to be copied from the first block exceeds a threshold; d) copying the data from the first block to the second block if the amount of data remaining to be copied from the first block does not exceed the threshold, otherwise copying a portion of the data remaining to be copied from the first block to the second block; e) repeating steps c) and d) until all of the valid sectors from the first block have been copied to the second block; and f) erasing the first block. - View Dependent Claims (2, 3, 4, 5, 6, 8, 9, 27, 28)
-
-
7. A method of cleaning up a solid state memory disk, the solid state memory disk including a multiplicity of blocks, each block storing valid sectors and dirty sectors, the method of cleaning up comprising the steps of:
-
a) allocating a sufficient amount of memory in a first block to store a valid sector located within a second block; b) selecting a valid sector from a group of valid sectors remaining to be copied from the second block; c) determining whether a number of words remaining to be copied from the selected valid sector exceeds a threshold; d) copying the number of words remaining to be copied from the selected valid sector if the number of words remaining to be copied from the valid sector does not exceed the threshold; e) copying a subset of the number of the words remaining to be copied from the selected valid sector if the number of words remaining to be copied from the valid sector exceeds the threshold; f) repeating steps c) through e) until all of the words in the selected valid sector have been copied; g) repeating steps b) through f) until all of the valid sectors within the second block have been copied out of the second block; and h) erasing the second block. - View Dependent Claims (21, 22, 23, 24, 25)
-
-
10. A method of cleaning up a solid state memory disk storing floating sector data, the solid state memory disk receiving industry standard disk drive commands from a host computer, the solid state memory disk including a multiplicity of nonvolatile semiconductor memory devices, each nonvolatile semiconductor memory device including a multiplicity of blocks and wherein each nonvolatile semiconductor memory device is erasable only in blocks, each block storing valid sectors and dirty sectors, the method of cleaning up comprising the steps of:
-
a) selecting a first block to clean-up; b) on a sector by sector basis; 1) selecting a valid sector from a group of valid sectors remaining to be copied from the first block; 2) allocating sufficient free memory in a selected block to store the selected valid sector; 3) determining whether a number of bytes remaining to be copied from the first block exceeds a predetermined number of bytes; 4) copying the bytes remaining to be copied from the first block to the selected block if the number of bytes does not exceed the predetermined number of bytes, otherwise copying less than all of the bytes remaining to be copied from the first block to the selected block; and 5) repeating steps
1) through
4) until all valid sectors within the first block have been copied; andc) erasing the first block. - View Dependent Claims (11, 12, 13, 14)
-
-
15. In a solid state memory disk which receives industry standard disk drive commands from a host computer via a conventional disk drive interface, a method of cleaning up the solid state memory disk, the solid state memory disk including a multiplicity of nonvolatile semiconductor memory devices, each nonvolatile semiconductor memory device including a multiplicity of blocks and wherein each nonvolatile semiconductor memory device is erasable only in block, each block storing valid sectors and dirty sectors, the method of cleaning up comprising the steps of:
-
a) evaluating whether clean-up of the solid state memory disk is necessary; b) selecting a first block to clean-up if clean-up is necessary; c) on a sector by sector basis; 1) selecting a valid sector from a group of valid sectors remaining to be copied from the first block; 2) allocating sufficient free memory to store the selected valid sector in a selected block; 3) checking whether an amount of data remaining to be copied from the selected valid sector exceeds a threshold; 4) copying the data from the selected valid sector to the selected block if the amount of data remaining to be copied from the selected valid sector does not exceed the threshold, otherwise copying a portion of the data remaining to be copied from the selected valid sector to the selected block; and 5) repeating steps
1) through
4) until all valid sectors within the first block have been copied; andd) erasing the first block. - View Dependent Claims (16, 17, 18, 19, 20, 26)
-
-
29. A method of cleaning up a solid state memory disk, the solid state memory disk including a multiplicity of nonvolatile semiconductor memory devices, each nonvolatile semiconductor memory device including a multiplicity of blocks and wherein each nonvolatile semiconductor memory device is erasable only in blocks, each block storing valid sectors and dirty sectors, the method of cleaning up comprising the steps of:
-
a) evaluating whether clean-up of the solid state memory disk is necessary, the step of evaluating including, calculating a first number representative of an amount of available memory within the solid state memory disk, available memory including free memory and dirty memory, comparing a second number representative of an amount of dirty memory within the solid state memory disk to the first number, and deciding clean-up of the solid state memory disk is necessary if the second number is greater than a predetermined portion of the first number; b) decreasing the predetermined portion if greater than a first predetermined number of fore-ground clean-ups have occurred within a second predetermined number of previous sector writes by a central processing unit; c) increasing the predetermined portion if greater than a third predetermined number of foreground erases have occurred within a fourth predetermined number of sector writes by the central processing unit; d) selecting a first block to clean-up; e) allocating a sufficient amount of memory in a second block to store a valid sector located within the first block; f) copying the valid sector from the first block into the second block; and g) erasing the first block.
-
-
30. An apparatus comprising:
-
a solid state memory disk which includes a plurality of nonvolatile semiconductor memory devices, wherein each nonvolatile semiconductor memory device includes a plurality of blocks and wherein each nonvolatile semiconductor memory device is erasable only in blocks, and wherein each block can store valid sectors and dirty sectors; and a solid state disk controller configured to select a first block to clean-up, to allocate a sufficient amount of memory in a second block to store a valid sector located within the first block, to check whether an amount of data remaining to be copied from the first block exceeds a threshold, to copy the data from the first block to the second block if the amount of data remaining to be copied from the first block does not exceed the threshold, otherwise to copy a portion of the data remaining to be copied from the first block to the second block, to repeat the copying from the first block to the second block until all of the valid sectors from the first block have been copied to the second block, and to erase the first block after all of the valid sectors from the first block have been copied to the second block.
-
Specification