← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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:26
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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag