Method of controlling clean-up of a solid state memory disk storing floating sector data
First Claim
1. A method of initiating and controlling background clean-up of a solid state memory disk, the solid state memory disk including a processing unit, the processing unit allocating execution time for clean-up, the method comprising the steps of:
- a) enabling a clean-up state machine after completion of a write command, the clean-up state machine having a multiplicity of states, each state controlling the execution of a portion of clean-up, each state resetting a next state pointer to point to a next state;
b) setting the next state pointer to an evaluation state for evaluating whether clean-up is necessary;
c) executing a state pointed to by the next state pointer when the processing unit allocates execution time for clean-up, execution of each state taking no more than a selected maximum amount of execution time; and
d) repeating step c) until a block of the solid state memory disk is cleaned-up.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of initiating and controlling background clean-up of a solid state memory disk is described. Background clean-up begins by enabling a clean-up state machine after completion of a write command. Next, a next state pointer is set to an initial state for evaluating whether clean-up is necessary. Actual execution of background clean-up begins when the processing unit allocates execution time for clean-up. As each state is executed, the next state pointer is reset so that it points to the next clean-up state to be executed. States pointed to by the next state pointer are executed until a block of the solid state memory disk is cleaned-up.
Also described is a method of automatically performing foreground clean-up of a solid state memory disk. A method of forcing clean-up is also described.
-
Citations
25 Claims
-
1. A method of initiating and controlling background clean-up of a solid state memory disk, the solid state memory disk including a processing unit, the processing unit allocating execution time for clean-up, the method comprising the steps of:
-
a) enabling a clean-up state machine after completion of a write command, the clean-up state machine having a multiplicity of states, each state controlling the execution of a portion of clean-up, each state resetting a next state pointer to point to a next state; b) setting the next state pointer to an evaluation state for evaluating whether clean-up is necessary; c) executing a state pointed to by the next state pointer when the processing unit allocates execution time for clean-up, execution of each state taking no more than a selected maximum amount of execution time; and d) repeating step c) until a block of the solid state memory disk is cleaned-up. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of initiating and controlling foreground clean-up of a solid state memory disk, the method comprising the steps of:
-
a) enabling a first clean-up state machine if sufficient memory within the solid state memory disk cannot be allocated in response to a write command, the first clean-up state machine having a multiplicity of first clean-up state machine states, each of the first clean-up state machine states controlling the execution of a portion of clean-up of a first block, each of the first clean-up state machine states resetting a first next state pointer to point to a next first clean-up state machine state; b) enabling a second clean-up state machine if sufficient memory within the solid state memory disk cannot be allocated in response to a write command, the second clean-up state machine having a multiplicity of second clean-up state machine states, each of the second clean-up state machine states controlling the execution of a portion of clean-up of a second block, each of the second clean-up state machine states resetting a second next state pointer to point to a next second clean-up state machine state; c) setting the first next state pointer to an initial first clean-up state machine state for choosing the first block within the solid state memory disk to clean-up; d) setting the second next state pointer to an initial second clean-up state machine state for choosing the second block within the solid state memory disk to clean-up; e) executing each state pointed to by the first next state pointer until erasure of the first block begins; f) executing each state pointed to by the second next state pointer until erasure of the second block begins; and g) executing each state pointed to by the first next state pointer until clean-up of the first block is complete. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method of forcing and controlling clean-up of a solid state memory disk, the solid state memory disk including a processing unit, the processing unit allocating execution time for clean-up, the method comprising the steps of:
-
a) enabling a clean-up state machine in response to a force clean-up command, the clean-up state machine having a multiplicity of states, each state controlling the execution of a portion of clean-up, each state resetting a next state pointer to point to a next state; b) setting the next state pointer to an initial state for choosing a first block to clean-up; c) executing a state pointed to by the next state pointer when the processing unit allocates execution time for clean-up, execution of each state taking no more than a selected maximum amount of execution time; and d) repeating step c) until all states have been executed.
-
-
22. A method of forcing and controlling clean-up of a solid state memory disk, the solid state memory disk including a processing unit, the processing unit allocating execution time for clean-up, the method comprising the steps of:
-
a) enabling a first clean-up state machine in response to a force clean-up command, the first clean-up state machine having a multiplicity of first clean-up state machine states, each of the first clean-up state machine states controlling the execution of a portion of clean-up of a first block, each of the first clean-up state machine states resetting a first next state pointer to point to a next first clean-up state machine state; b) enabling a second clean-up state machine in response to the force clean-up command, the second clean-up state machine having a multiplicity of second clean-up state machine states, each of the second clean-up state machine states controlling the execution of a portion of clean-up of a second block, each of the second clean-up state machine states resetting a second next state pointer to point to a next second clean-up state machine state; c) setting the first next state pointer to an initial first clean-up state machine state for choosing the first block within the solid state memory disk to clean-up; d) setting the second next state pointer to an initial second clean-up state machine state for choosing the second block within the solid state memory disk to clean-up; e) executing each of the first clean-up state machine states as it is pointed to by the first clean-up state machine next state pointer until a first erase state is reached; f) executing each of the second clean-up state machine states as it is pointed to by the second clean-up state machine next state pointer until a second erase state is reached; and g) executing each of the first clean-up state machine states as it is pointed to by the first clean-Up state machine next state pointer until the first block is cleaned up. - View Dependent Claims (23, 24, 25)
-
Specification