Method of performing clean-up of a solid state disk while executing a read command
First Claim
Patent Images
1. A solid state memory disk comprising:
- a) a flash memory array storing valid sectors of data, free memory, and invalid sectors of data;
b) a buffer for storing sectors of data;
c) a counter having a count, the count being incremented when a sector of data is written into the buffer and the count being decremented when a sector of data is read from the buffer; and
d) a memory array controller for controlling the reading and clean-up of the flash memory array, the memory array controller performing clean-up of the flash memory array while executing a command from the host to read a first number of sectors of data, the memory array controller including;
1) a clean-up state machine for converting invalid sectors of data into free memory, the clean-up state machine including a multiplicity of states, each state of the clean-up state machine modifying a next state pointer so that the next state pointer points to a next state to be executed; and
2) a read controller for executing the read command, the read controller writing the first number of sectors of data into the sector buffer and enabling execution of the next state of the clean-up state machine while the host is reading a sector of data from the buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of executing states of a clean-up state machine while executing a command from a host CPU to read a sector of data stored within a memory array. First, a number of sectors of data are copied from the memory array into a sector buffer. Then, while the host CPU is reading sectors from the sector buffer, a number of states of a clean-up state machine are executed to aid in the conversion of invalid user data into free memory. Also described is a solid state memory disk that converts invalid sectors of data to free memory while executing a read command from a host CPU.
108 Citations
18 Claims
-
1. A solid state memory disk comprising:
-
a) a flash memory array storing valid sectors of data, free memory, and invalid sectors of data; b) a buffer for storing sectors of data; c) a counter having a count, the count being incremented when a sector of data is written into the buffer and the count being decremented when a sector of data is read from the buffer; and d) a memory array controller for controlling the reading and clean-up of the flash memory array, the memory array controller performing clean-up of the flash memory array while executing a command from the host to read a first number of sectors of data, the memory array controller including; 1) a clean-up state machine for converting invalid sectors of data into free memory, the clean-up state machine including a multiplicity of states, each state of the clean-up state machine modifying a next state pointer so that the next state pointer points to a next state to be executed; and 2) a read controller for executing the read command, the read controller writing the first number of sectors of data into the sector buffer and enabling execution of the next state of the clean-up state machine while the host is reading a sector of data from the buffer.
-
-
2. A computer system including:
-
a) a central processing unit generating a command to read a first number of sectors of data; and b) a solid state memory disk responsive to the command to read the first number of sectors of data, the solid state memory disk including; 1) a flash memory array storing valid sectors of data, free memory and invalid sectors of data; 2) a buffer for storing sectors of data, the buffer being coupled to the central processing unit; 3) a counter having a count, the count being incremented when a sector of data is written into the buffer and the count being decremented when a sector of data is read from the buffer; and 4) a memory array controller for controlling the reading, and clean-up of the flash memory array, the memory array controller including; A) a clean-up state machine for converting invalid sectors of data into free memory, the clean-up state machine including a multiplicity of states, each state modifying a next state pointer so that the next state pointer points to a next state to be executed; and B) a read controller for executing the read command, the read controller writing the first number of sectors of data into the sector buffer and enabling execution of the next state of the clean-up state machine while the central processing unit is reading a sector of data from the sector buffer.
-
-
3. A method of performing a clean-up operation for a solid state disk, wherein the clean-up operation comprises a plurality of states, comprising the steps of:
-
a) receiving a read command from a host processor, the read command requesting a first number of sectors of data from the solid state disk wherein the solid state disk comprises nonvolatile semiconductor memory; b) writing a second number of sectors of data from the nonvolatile semiconductor memory to a sector buffer; and c) executing at least one state of the plurality of states of the clean-up operation while the host processor is reading the sector buffer. - View Dependent Claims (4, 5, 6)
-
-
7. A method of performing a clean-up operation for a solid state disk, wherein the clean-up operation comprises a plurality of states, comprising the steps of:
-
a) receiving a read command from a host processor, the read command requesting a first number of sectors of data from the solid state disk, wherein the solid state disk comprises nonvolatile semiconductor memory; b) writing a second number of sectors of data from the nonvolatile semiconductor memory to a sector buffer; c) determining an available number of sectors of data within the sector buffer wherein the available number represents sectors available to be read by the host processor; d) compare the available number to a threshold number; and e) executing at least one state of the plurality of states of the clean-up operation while the host processor is reading the sector buffer if the available number exceeds the threshold number. - View Dependent Claims (8, 9, 10)
-
-
11. A method of performing a clean-up operation for a solid state disk, wherein the clean-up operation comprises a plurality of states, comprising the steps of:
-
a) receiving a read command from a host processor, the read command requesting a first number of sectors of data from the solid state disk wherein the solid state disk comprises nonvolatile semiconductor memory; b) writing a second number of sectors of data from the nonvolatile semiconductor memory to a sector buffer; c) determining a number left representing the number of sectors yet to be read by the host processor from the sector buffer; d) compare the number left to a minimum number; and e) executing at least one state of the plurality of states of the clean-up operation while the host processor is reading the sector buffer if the number left exceeds the minimum number. - View Dependent Claims (12, 13, 14)
-
-
15. A method of performing a clean-up operation for a solid state disk, wherein the clean-up operation comprises a plurality of states, comprising the steps of:
-
a) receiving a read command from a host processor, the read command requesting a requested number of sectors of data from the solid state disk, wherein the solid state disk comprises nonvolatile semiconductor memory; b) write a sector of data from the nonvolatile semiconductor memory to a sector buffer; c) increment a counter, wherein the counter is decremented in accordance with a number of sectors read by the host processor from the sector buffer; d) returning to step b) if a value of the counter is less than a threshold number; e) performing the following steps if the value of the counter is equal to or greater than the threshold number; d1) executing at least one state of the plurality of states of the clean-up operation while the host processor is reading the sector buffer; d2) comparing the value of the counter with a minimum number, d3) returning to step d1) if the value of the counter is greater than or equal to a minimum number; and d4) returning to step b) if the value of the counter is less than the minimum number and a number of sectors written into the sector buffer is less than the requested number. - View Dependent Claims (16, 17, 18)
-
Specification