Patent US5740395A successfully refreshed from Google Patents.
US5740395A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and apparatus for cleaning up a solid state memory disk storing floating sector data
Assignee: Intel Corp
•
Filing: 1992-10-30
•
Granted: 1998-04-14
•
Expires: 2012-10-30
Abstract
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.
Inventors
- 👤 Steven Wells
- 👤 Robert N. Hasbun
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 12:38
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0604; G06F3/0607; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/0238; G06F12/0246; G06F3/0628; G06F3/0646; G06F3/0652; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674; G06F3/0676; G06F2212/00; G06F2212/72; G06F2212/7205
Claims Analysis
Total Claims: 36
Claim 1
Independent Claim
202 words
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.
Claim 2
Independent Claim
202 words
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.
Claim 3
Dependent Claim
22 words
The method of claim 1 further comprising the step of: a) evaluating whether clean-up of the solid state memory disk is necessary.
Claim 4
Dependent Claim
87 words
The method of claim 2 wherein the evaluating step comprises the steps of: a) 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; b) comparing a second number representative of an amount of dirty memory within the solid state memory disk to the first number; and c) 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.
Claim 5
Dependent Claim
21 words
The method of claim 1 wherein the selecting step comprises: a) selecting a block having a greatest amount of dirty memory.
Claim 6
Dependent Claim
95 words
The method of claim 1 wherein the selecting step comprises the steps of: a) determining for each block in the solid state memory disk a third number representative of an amount of dirty memory within the block; b) determining for each block in the solid state memory disk a fourth number representative of an amount of free memory within the block; c) generating a score for each block in the solid state memory disk by summing together the third number and the fourth number; and d) selecting for clean-up a block having a greatest score.
Claim 7
Dependent Claim
55 words
The method of claim 1 wherein the allocating step comprises the steps of: a) determining whether a valid sector remains to be copied from the first block; b) identifying a second block with sufficient free memory to store the valid sector; and c) reserving sufficient memory in the second block to store the valid sector.
Claim 8
Independent Claim
213 words
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.
Claim 9
Independent Claim
213 words
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.
Claim 10
Dependent Claim
40 words
The method of claim 1 further comprising the step of: a) updating a database after copying the valid sector into the second block, the database tracking the amount of dirty memory and free memory within the solid state memory disk.
Claim 11
Dependent Claim
19 words
The method of claim 8 further comprising the step of: a) updating the database after erasing the first block.
Claim 12
Independent Claim
223 words
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; and c) erasing the first block.
Claim 13
Independent Claim
223 words
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; and c) erasing the first block.
Claim 14
Dependent Claim
22 words
The method of claim 10 further comprising the step of: a) evaluating whether clean-up of the solid state memory disk is necessary.
Claim 15
Dependent Claim
84 words
The method of claim 11 wherein the evaluating step comprises the steps of: a) 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; b) comparing a second number representative an amount of free memory within the solid state memory disk to first number; and c) deciding clean-up of the solid state memory disk is necessary if the second number is less than or equal to the first number.
Claim 16
Dependent Claim
64 words
The method of claim 10 wherein the allocating step comprises the step of: a) identifying the selected block by determining whether the selected block includes a sufficient amount of free memory to store the valid sector; and b) reserving sufficient memory in the selected block to store the valid sector if the selected block is not included in a busy nonvolatile semiconductor memory device.
Claim 17
Dependent Claim
46 words
The method of claim 10 wherein the selecting step comprises the steps of: a) determining for each block in the solid state memory disk an amount of dirty memory within the block; and b) selecting for clean-up a block having a greatest amount of dirty memory.
Claim 18
Dependent Claim
244 words
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; and d) erasing the first block.
Claim 19
Dependent Claim
244 words
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; and d) erasing the first block.
Claim 20
Dependent Claim
86 words
The method of claim 15 wherein the evaluating step comprises the steps of: a) 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; b) comparing a second number representative of an amount of dirty memory within the solid state memory disk to the first number; and c) deciding clean-up of the solid state memory disk is necessary if the second number is greater than a half of the first number.
Claim 21
Dependent Claim
64 words
The method of claim 16 wherein the allocating step comprises the steps of: a) identifying the selected block by determining whether the selected block includes a sufficient amount of free memory to store the valid sector; and b) reserving sufficient memory in the selected block to store the valid sector if the second block is not included in a busy nonvolatile semiconductor memory device.
Claim 22
Dependent Claim
46 words
The method of claim 15 wherein the selecting step comprises the steps of: a) determining for each block in the solid state memory disk an amount of dirty memory within the block; and b) selecting for clean-up a block having a greatest amount of dirty memory.
Claim 23
Dependent Claim
40 words
The method of claim 15 further comprising the step of: a) updating a database after copying the valid sector into the selected block, the database tracking the amount of dirty memory and free memory within the solid state memory disk.
Claim 24
Dependent Claim
19 words
The method of claim 19 further comprising the step of: a) updating the database after erasing the first block.
Claim 25
Dependent Claim
22 words
The method of claim 7 further comprising the step of: a) evaluating whether clean-up of the solid state memory disk is necessary.
Claim 26
Dependent Claim
87 words
The method of claim 21 wherein the evaluating step comprises the steps of: a) 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; b) comparing a second number representative of an amount of dirty memory within the solid state memory disk to the first number; and c) 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.
Claim 27
Dependent Claim
101 words
The method of claim 7 further comprising the steps of: a) determining for each block in the solid state memory disk a third number representative of an amount of dirty memory within the block; b) determining for each block in the solid state memory disk a fourth number representative of an amount of free memory within the block; c) generating a score for each block in the solid state memory disk by summing together the third number and the fourth number; and d) selecting a block having a greatest score, wherein the block having the greatest score is the second block.
Claim 28
Dependent Claim
55 words
The method of claim 7 wherein the allocating step comprises the steps of: a) determining whether a valid sector remains to be copied from the second block; b) identifying a first block with sufficient free memory to store the valid sector; and c) reserving sufficient memory in the first block to store the valid sector.
Claim 29
Dependent Claim
40 words
The method of claim 7 further comprising the step of: a) updating a database after copying the valid sector into the first block, the database tracking the amount of dirty memory and free memory within the solid state memory disk.
Claim 30
Dependent Claim
32 words
The method of claim 15 further comprising the step of repeating steps a) through d) each time a sector is written to the solid state memory disk by a central processing unit.
Claim 31
Dependent Claim
70 words
The method of claim 1 wherein the selecting step comprises the steps of: a) generating for each block in the solid state memory disk a weighted score for each of a plurality of factors; b) generating a total score for each block by summing together the weighted scores for each of the plurality of factors for each block; and c) selecting for clean-up a block having a greatest total score.
Claim 32
Dependent Claim
75 words
The method of claim 1 further comprising the steps of: a) determining the amount of memory necessary to store all valid sectors located within the first block; and b) searching the multiplicity of blocks to locate the second block, wherein the second block has an amount of memory to store valid sectors from the first block which most closely matches the amount of memory necessary to store all valid sectors located within the first block.
Claim 33
Independent Claim
258 words
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.
Claim 34
Independent Claim
258 words
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.
Claim 35
Independent Claim
206 words
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.
Claim 36
Independent Claim
206 words
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.
References Cited (Backward Citations)
US4456971A
Cited
US4644494A
Cited
US4896262A
Cited
US4642759A
Cited
EP0175458A2
Cited
US4775932A
Cited
US4958315A
Cited
US4757533A
Cited
US4800520A
Cited
US4763305A
Cited
US4802117A
Cited
US4797810A
Cited
US5111385A
Cited
US4984149A
Cited
US5053990A
Cited
US5268870A
Cited
US5070474A
Cited
US5012425A
Cited
US5101490A
Cited
US5602987A
Cited
EP0392895B1
Cited
US5226168A
Cited
US5131089A
Cited
US5077737A
Cited
US5065364A
Cited
US5200959A
Cited
US5126808A
Cited
US5199033A
Cited
US5297096A
Cited
US5289423A
Cited
GB2251324A
Cited
GB2251323A
Cited
US5295255A
Cited
US5269019A
Cited
US5524230A
Cited
US5291584A
Cited
US5224070A
Cited
CA2088442A1
Cited
US5261055A
Cited
US5299162A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2001-04-13 | 2001-10-13 | 2002-04-14 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2005-04-13 | 2005-10-13 | 2006-04-14 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2009-04-13 | 2009-10-13 | 2010-04-14 | $7700.00 | Window Closed / Lapsed |