Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer
First Claim
1. A method of locating a sector of data stored in a solid state memory disk including a nonvolatile semiconductor memory device having a block, the block including a block translation table storing headers and a data space storing sectors of data, the method comprising the steps of:
- a) receiving an input sector number and a pointer into the block translation table;
b) initializing a scan count;
c) selecting a selected header from a multiplicity of headers near a location pointed to by the pointer, each of the multiplicity of headers including a selected logical sector number, a selected offset representing an offset to a selected sector of data associated with the selected logical sector number;
d) indicating the selected offset if the selected logical sector number of the selected header equals the input sector number;
e) incrementing the scan count if the selected logical sector number does not equal the input sector number;
f) comparing the scan count to a maximum scan count; and
g) repeating steps c) through f) once for each of a set of headers which excludes the selected header if the scan count is not equal to the maximum scan count.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of allocating free physical memory in a solid state memory disk for a sector of data of a given size is described. Allocation begins by determining the amount of free physical memory in each block of the solid state memory disk. Afterward, the block with the greatest amount of free physical memory is selected. Sufficient free memory to store the sector of data is reserved in the selected block, provided the amount of free memory within selected block exceeds the given size of the sector of data.
A method of allocating free physical memory for sectors of user data stored within a block that is the focus of clean-up is also described.
A method of locating a sector of data stored in a solid state memory disk given a sector number and a pointer to a block sector translation table of a block is also described.
-
Citations
12 Claims
-
1. A method of locating a sector of data stored in a solid state memory disk including a nonvolatile semiconductor memory device having a block, the block including a block translation table storing headers and a data space storing sectors of data, the method comprising the steps of:
-
a) receiving an input sector number and a pointer into the block translation table; b) initializing a scan count; c) selecting a selected header from a multiplicity of headers near a location pointed to by the pointer, each of the multiplicity of headers including a selected logical sector number, a selected offset representing an offset to a selected sector of data associated with the selected logical sector number; d) indicating the selected offset if the selected logical sector number of the selected header equals the input sector number; e) incrementing the scan count if the selected logical sector number does not equal the input sector number; f) comparing the scan count to a maximum scan count; and g) repeating steps c) through f) once for each of a set of headers which excludes the selected header if the scan count is not equal to the maximum scan count. - View Dependent Claims (2)
-
-
3. A method of locating a sector of data stored in a solid state memory disk including a nonvolatile semiconductor memory device having a block, the block including a block translation table storing headers and a data space storing sectors of data, the method comprising the steps of:
-
a) receiving an input sector number and a first pointer into the block translation table; b) initializing a scan count; c) selecting a selected header from a multiplicity of headers near a location pointed to by the first pointer, each of the multiplicity of headers including a selected logical sector number, a selected offset representing an offset to a selected sector of data associated with the selected logical sector number, and including a selected cyclical redundancy check for the selected header; d) if the selected logical sector number of the selected header equals the input sector number; 1) generating a first cyclical redundancy check for the selected header; 2) indicating the selected offset and ending if the selected cyclical redundancy check equals the first cyclical redundancy check; 3) incrementing the scan count if the first cyclical redundancy check does not equal the selected cyclical redundancy check; e) if the selected logical sector number does not equal the input sector number incrementing the scan count; f) comparing the scan count to a maximum scan count, the maximum scan count equal to a maximum number of headers in the block translation table divided by a maximum number of pointers into the block; and g) repeating steps c) through f) once for each of a set of headers which excludes the selected header if the scan count is not equal to the maximum scan count. - View Dependent Claims (4, 5, 6, 7, 8, 9)
-
-
10. A method of locating a sector of data stored in a solid state memory disk including a nonvolatile semiconductor memory device having a block, the block including a block translation table storing headers and a data space storing sectors of data, comprising the steps of:
-
a) receiving an input sector number and a pointer into the block translation table; b) initializing a scan count; and c) repeating the steps of c.1) selecting a selected header from a multiplicity of headers near a location pointed to by the pointer, each of the multiplicity of headers including a selected logical sector number, a selected offset representing an offset to a selected sector of data associated with the selected logical sector number; c.2) indicating the selected offset if the selected logical sector number of the selected header equals the input sector number; and c.3) incrementing the scan count if the selected logical sector number does not equal the input sector number; until a maximum scan count is reached or the selected logical sector number of the selected header equals the input sector number.
-
-
11. A method of locating a sector of data stored in a solid state memory disk including a nonvolatile semiconductor memory device having a block, the block including a block translation table storing headers and a data space storing sectors of data, comprising the steps of:
-
a) receiving an input sector number and a pointer into the block translation table; b) initializing a scan count; and c) repeating the steps of c.1) selecting a selected header from a multiplicity of headers near a location pointed to by the pointer, each of the multiplicity of headers including a selected logical sector number, a selected offset representing an offset to a selected sector of data associated with the selected logical sector number; c.2) if the selected logical sector number does not equal the input sector number incrementing the scan count c.3) if the selected logical sector number of the selected header equals the input sector number, c.3.a) generating a first cyclical redundancy check for the selected header; c.3.b) indicating the selected offset and ending if the selected cyclical redundancy check equals the first cyclical redundancy check; and c.3.c) incrementing the scan count if the first cyclical redundancy check does not equal the selected cyclical redundancy check; until a maximum scan count is reached or the selected logical sector number of the selected header equals the input sector number and the selected cyclical redundancy check equals the first cyclical redundancy check.
-
-
12. A method of locating a sector of data stored in a solid state memory disk including a non-volatile memory device which includes an organizational data structure storing a plurality of data descriptors and a data space for storing a plurality of sectors described by the plurality of data descriptors, comprising the steps of:
-
a) receiving an input sector number and a pointer to an initial location in the organizational structure; b) initializing a scan count; c) reading a data descriptor for a stored sector, the data descriptor containing a stored sector number and an offset of the stored sector into the data space; d) incrementing the scan count if the stored sector number does not correspond to the input sector number; e) repeating steps c) through e) for a plurality of different data descriptors until the scan count reaches a maximum count if the stored sector number does not correspond to the input sector number; and f) indicating the offset if the stored sector number corresponds to the input sector number.
-
Specification