Skip Operations for Solid State Disks
First Claim
1. A method of reading data from a plurality of non-contiguous sectors of a solid-state memory, the method comprising:
- at a host layer;
receiving a read request to read data from non-contiguous sectors of the solid-state memory, wherein the read request comprises i) a starting sector address, ii) a skip mask indicating a span of sector addresses in the request and the sectors to be read, and iii) a total number of sectors to be read;
at a buffer layer;
segmenting the span of the read request into a plurality of chunks, wherein each chunk corresponds to at least one sector;
determining, based on the skip mask, a number of chunks to be read from the solid-state memory; and
allocating storage space in the buffer corresponding to the number of chunks to be read; and
then;
transferring, by a flash translation layer, data from the solid-state memory for each chunk to the buffer; and
transferring to a communication link, by the host layer, only data for requested sectors, based on the skip mask.
8 Assignments
0 Petitions
Accused Products
Abstract
Described embodiments provide skip operations for transferring data to or from a plurality of non-contiguous sectors of a solid-state memory. A host layer module sends data to, and receives commands from, a communication link. Received commands are one of read requests or write requests, with commands including i) a starting sector address, ii) a skip mask indicating the span of all sector addresses in the request and the sectors to be transferred, iii) a total number of sectors to be transferred; and, for write requests, iv) the data to be written to the sectors. A buffer stores data for transfer to or from the solid-state memory. A buffer layer module i) manages the buffer, ii) segments the span of the request into a plurality of chunks, and iii) determines, based on the skip mask, a number of chunks to be transferred to or from the solid-state memory.
131 Citations
20 Claims
-
1. A method of reading data from a plurality of non-contiguous sectors of a solid-state memory, the method comprising:
-
at a host layer; receiving a read request to read data from non-contiguous sectors of the solid-state memory, wherein the read request comprises i) a starting sector address, ii) a skip mask indicating a span of sector addresses in the request and the sectors to be read, and iii) a total number of sectors to be read; at a buffer layer; segmenting the span of the read request into a plurality of chunks, wherein each chunk corresponds to at least one sector; determining, based on the skip mask, a number of chunks to be read from the solid-state memory; and allocating storage space in the buffer corresponding to the number of chunks to be read; and
then;transferring, by a flash translation layer, data from the solid-state memory for each chunk to the buffer; and transferring to a communication link, by the host layer, only data for requested sectors, based on the skip mask. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of writing data to a plurality of non-contiguous sectors of a solid-state memory, the method comprising:
-
at a host layer; receiving a write request to write data to non-contiguous sectors of the solid-state memory, wherein the write request comprises i) a starting sector address, ii) a skip mask indicating a span of sector addresses in the request and the sectors to be written, iii) a total number of sectors to be written, and iv) the data to be written to the sectors; at a buffer layer; segmenting the span of the write request into a plurality of chunks, wherein each chunk corresponds to at least one sector; determining, based on the skip mask, a number of sectors to be written to the solid-state memory; allocating storage space in the buffer corresponding to the number of sectors to be written; and
thentransferring from a communication link, by the host layer, data for the provided sectors to the allocated buffer space, based on the skip mask; and providing to a flash translation layer, based on the skip mask, chunks having data to be written; at the flash translation layer; retrieving, from the solid-state memory, page data corresponding to the chunks having data to be written; merging the chunks having data to be writ en with the page data, based on the skip mask; and transferring, to the solid-state memory, the page data. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for transferring data to or from a plurality of non-contiguous sectors of a solid-state memory, the apparatus comprising:
-
a host layer module adapted to send data to, and receive commands from, a communication link, wherein received commands are one of read requests or write requests, and wherein the command comprises i) a starting sector address, ii) a skip mask indicating a span of sector addresses in the request and the sectors to be transferred, iii) a total number of sectors to be transferred, and, for write requests, iv) the data to be written to the sectors; a buffer for storing data to be transferred to or from the solid-state memory; a buffer layer module for i) managing the buffer, ii) segmenting the span of the request into a plurality of chunks, wherein each chunk corresponds to at least one sector, iii) determining, based on the skip mask, a number of chunks requiring data to be transferred to or from the solid-state memory, iv) allocating storage space in the buffer corresponding to, for read requests, the number of chunks requiring data to be read, and, for write requests, the number of sectors to be written; and a flash translation layer module for i) retrieving, for a read request, data from the solid-state memory to the buffer for each chunk requiring data to be read, and ii) transferring, for a write request, data from the buffer to the solid-state memory for each chunk to be written. - View Dependent Claims (18, 19, 20)
-
Specification