Method and circuitry for increasing reserve memory in a solid state memory disk
First Claim
1. A solid state memory disk for storing a maximum number of sectors of data for a host, the solid state memory disk comprising:
- a) an array of solid state memory devices which includes free memory and dirty memory, and stores sectors of valid data, the array being capable of storing the maximum number of sectors as uncompressed sectors, each memory device including a first multiplicity of blocks of memory;
b) a controller for controlling the array, the controller indicating to the host the maximum number of sectors, the controller writing a first compressed sector of valid data to a first location in a first block in the array in response to a first write command from the host, the controller writing a second compressed sector of data to a second location in a second block and marking dirty the first location in the first block in response to a second write command from the host;
c) a clean-up machine for generating free memory by erasing the first block after copying all compressed sectors of valid data within the first block out of the first block and into another block; and
d) a compressor responsive to the controller for compressing sectors of data received from the host and coupling compressed sectors of data to the array, the compressor having an average compression ratio, the compressor increasing reserve memory when the average compression ratio is greater than one, wherein the reserve memory includes free memory and dirty memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A solid state memory disk with increased reserve memory is described. The solid state memory disk includes an array of solid state memory devices for storing user data and reserve memory, which includes both free memory and dirty memory. The solid state memory disk also includes a controller, a clean-up state machine, and a data compressor. The data compressor increases reserve memory by compressing data received from a host and coupling compressed data to the array of memory devices under the control of the controller. In response to write commands from the host, the controller writes a first sector data, which has been compressed, to a first location in a first block within a memory device. Reserve memory within the array is thus increased, so long as the maximum number of sectors the host is allowed to write is less the average compression ratio of the data compressor multiplied by the capacity of the solid state disk. A method of increasing reserve memory in a solid state disk is also described.
-
Citations
24 Claims
-
1. A solid state memory disk for storing a maximum number of sectors of data for a host, the solid state memory disk comprising:
-
a) an array of solid state memory devices which includes free memory and dirty memory, and stores sectors of valid data, the array being capable of storing the maximum number of sectors as uncompressed sectors, each memory device including a first multiplicity of blocks of memory; b) a controller for controlling the array, the controller indicating to the host the maximum number of sectors, the controller writing a first compressed sector of valid data to a first location in a first block in the array in response to a first write command from the host, the controller writing a second compressed sector of data to a second location in a second block and marking dirty the first location in the first block in response to a second write command from the host; c) a clean-up machine for generating free memory by erasing the first block after copying all compressed sectors of valid data within the first block out of the first block and into another block; and d) a compressor responsive to the controller for compressing sectors of data received from the host and coupling compressed sectors of data to the array, the compressor having an average compression ratio, the compressor increasing reserve memory when the average compression ratio is greater than one, wherein the reserve memory includes free memory and dirty memory. - View Dependent Claims (2)
-
-
3. A solid state memory disk having reduced energy consumption, the solid state memory disk storing a maximum number of sectors of valid data for a host, the solid state memory disk comprising:
-
a) an array of nonvolatile memory devices for storing sectors of valid data, the array including reserve memory which includes free memory and dirty memory, the array being capable of storing a number of uncompressed sectors of valid data, each nonvolatile memory device including a first multiplicity of blocks of memory; b) a microprocessor for controlling the array, the microprocessor indicating the maximum number of sectors to the host, the maximum number being less than an average compression ratio multiplied by the number of uncompressed sectors of valid data the array is capable of storing, the microprocessor in response to a first write command from the host writing a first compressed sector data having a first sector number to a first location in a first block in the array, the microprocessor in response to a second write command from the host writing a second compressed sector data having the first sector number to a second location in a second block and marking dirty the first compressed sector having the first sector number; c) a clean-up machine generating free memory by erasing the first block after copying all compressed sectors of valid data within the first block out of the first block and into another block, the clean-up machine waiting a longer time to generate free memory than if the first block contained uncompressed sectors of valid data, thereby reducing energy consumption; and d) a compressor which has the average compression ratio, the compressor being responsive to the microprocessor, the compressor compressing uncompressed sectors of valid data received from the host and passing the first compressed sector of data and the second sector of data to the array. - View Dependent Claims (4, 5)
-
-
6. A method of increasing reserve memory in a solid state disk, the solid state disk including an array of nonvolatile memory devices and a compressor, the array storing sectors of valid data and including reserve memory, the reserve memory including free memory and dirty memory, the array being capable of storing a first number of uncompressed sectors, each nonvolatile memory device including a multiplicity of blocks of memory, the method including the steps of:
-
a) indicating to a host a maximum number of sectors of valid data that may be written to the solid state disk, the maximum number being equal to the first number of uncompressed sectors the array is capable of storing; b) receiving a command to write a first sector of valid data from the host, the first sector of valid data being uncompressed, uncompressed sectors of valid data including a first number of bytes; c) compressing the first sector of valid data to produce a first compressed sector of data, the first compressed sector of data including a second number of bytes, the second number of bytes being less than the first number of bytes; and d) storing the first compressed sector of data in a first block within the array. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method of reducing energy consumption in a solid state disk, the solid state disk including an array of nonvolatile memory devices and a data compressor, the array storing sectors of valid data and including reserve memory, the reserve memory including free memory and dirty memory, the array having a memory capacity of a fixed number of uncompressed sectors of data, each nonvolatile memory device including a multiplicity of blocks of memory, the data compressor having an average compression ratio, the method including the steps of:
-
a) indicating to a host a maximum number of sectors of valid data that may be written to the solid state disk, the maximum number of sectors being less than the average compression ratio multiplied by the memory capacity; b) receiving a command to write a first sector of valid data from the host, the first sector of valid data received from the host being uncompressed and being a first number of bytes; c) compressing the first sector of valid data received from the host to create a first compressed sector of valid data, the first compressed sector being a second number of bytes, the second number of bytes being less than or equal to the first number of bytes; d) storing the first compressed sector within the array; and e) cleaning-up a selected block within the array after waiting a longer time than if the selected block uncompressed sectors of valid data, thereby reducing energy consumption the cleaning-up including the steps of; i) selecting a first block to clean-up; ii) allocating a sufficient amount of memory in a second block to store the first compressed sector stored within the first block; iii) copying the first compressed sector from the first block into the second block; and iv) erasing the first block thereby converting all memory within the first block into free memory. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method of increasing reserve memory in a solid state disk, the solid state disk including an array of nonvolatile memory devices and a data compressor, the data compressor having an average compression ratio, the array storing sectors of valid data and including reserve memory, the reserve memory including free memory and dirty memory, the array having a memory capacity of a fixed number of uncompressed sectors of data, each nonvolatile memory device including a multiplicity of blocks of memory, each block of memory including a block sector translation table, each block sector translation table including a header for each sector of data stored in the block, each header including a logical sector number equal to a sector number with which the sector of valid data is associated, the method including the steps of:
-
a) indicating to a host a maximum number of sectors of valid data that may be written to the solid state disk, the maximum number of sectors being less than the average compression ratio multiplied by the memory capacity; b) receiving a command to write a first sector of valid data from the host, the first sector of valid data received from the host being uncompressed and having a first sector number, the first sector of valid data from the host being a first number of bytes; c) marking dirty a previously compressed sector of data stored within the array associated with a logical sector number equal to the first sector number; d) compressing the first sector of valid data received from the host to create a first compressed sector of valid data, the first compressed sector being a second number of bytes that is less than the first number of bytes; e) allocating a first amount of free memory in a first block having a first block sector translation table, the first amount of free memory being equal to the second number of bytes; f) writing a first header for the first compressed sector into the first block sector translation table; g) storing the first compressed sector within the first block; and f) cleaning-up a selected block within the array, cleaning-up including the steps of; i) selecting a second block to clean-up; ii) on a compressed sector by compressed sector basis; 1) selecting a compressed sector from a group of compressed sectors remaining to be copied from the second block; 2) allocating sufficient free memory to store the selected compressed sector in a selected block; 3) copying the selected compressed sector from the second block into the selected block; 4) repeating steps
1) through
3) until all compressed sectors within the first block have been copied; and5) erasing the second block. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification