Apparatus, system, and method for managing data using a data pipeline
First Claim
1. A method of reading data, the method comprising:
- receiving a read request for data stored on a solid-state storage device comprising two or more solid-state storage elements;
reading, through a read data pipeline, an error-correcting code (ECC) block, a first portion of the ECC block read from a page of a first one of the solid-state storage elements and a second portion of the ECC block read from a page of a second one of the solid-state storage elements; and
detecting an error in the ECC block;
in response to detecting the error, determining whether the error is correctable.
14 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for managing data in a solid-state storage device. A solid-state storage and solid-state controller are included. The solid-state storage controller includes a write data pipeline and a read data pipeline The write data pipeline includes a packetizer and an ECC generator. The packetizer receives a data segment and creates one or more data packets sized for the solid-state storage. The ECC generator generates one or more error-correcting codes (“ECC”) for the data packets received from the packetizer. The read data pipeline includes an ECC correction module, a depacketizer, and an alignment module. The ECC correction module reads a data packet from solid-state storage, determines if a data error exists using corresponding ECC and corrects errors. The depacketizer checks and removes one or more packet headers. The alignment module removes unwanted data, and re-formats the data as data segments of an object.
167 Citations
25 Claims
-
1. A method of reading data, the method comprising:
-
receiving a read request for data stored on a solid-state storage device comprising two or more solid-state storage elements; reading, through a read data pipeline, an error-correcting code (ECC) block, a first portion of the ECC block read from a page of a first one of the solid-state storage elements and a second portion of the ECC block read from a page of a second one of the solid-state storage elements; and detecting an error in the ECC block; in response to detecting the error, determining whether the error is correctable. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus for reading data, the apparatus comprising:
-
a first and a second solid-state storage element; and a read data pipeline configured to read an error-correcting code (ECC) block from the solid-state storage elements, the ECC block comprising at least a portion of data requested by a requesting device and an error-correcting code capable of correcting an error in the ECC block, wherein reading the ECC block comprises reading a first portion of the ECC block from a page of the first solid-state storage element and a second portion from a page of the second solid-state storage element, the read data pipeline comprising, an ECC correction module configured to detect an error in the ECC block read from the solid-state storage elements; and an alignment module configured to format the portion of the requested data in the ECC block for transmittal to the requesting device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer readable medium having program instructions stored thereon, wherein the program instructions are executable by a computer system to cause the computer system to perform operations comprising:
-
receiving a read request from a requesting device for data stored on a solid-state storage device comprising two or more solid-state storage elements and a read data pipeline; reading, with the read data pipeline, an error-correcting code (ECC) block comprising at least a portion of the requested data and an error-correcting code capable of correcting an error in the ECC block, wherein reading the ECC block comprises reading a first portion of the ECC block from a page of a first one of the solid-state storage elements and a second portion from a page of a second one of the solid-state storage elements; and providing at least the portion of the requested data to the requesting device. - View Dependent Claims (18, 19, 20)
-
-
21. A system for reading data, the system comprising:
-
a solid-state storage device comprising two or more solid-state storage elements; and a solid-state storage controller communicatively coupled to the two or more solid-state storage elements, the solid-state storage device comprising, a read data pipeline configured to read an error-correcting code (ECC) block from the solid-state storage elements, the ECC block comprising at least a portion of data requested by a requesting device and an error-correcting code capable of correcting an error in the ECC block, wherein reading the ECC block comprises reading a first portion of the ECC block from a first one of the solid-state storage elements and reading a second portion from a second one of the solid-state storage elements, the read data pipeline comprising, an ECC correction module configured to correct an error in the ECC block read from the solid-state storage elements; a depacketizer configured to access the portion of the requested data in the ECC block; and an alignment module configured to reformat the portion of the requested data in the ECC block to a form compatible with the requesting device. - View Dependent Claims (22, 23, 24)
-
-
25. An apparatus for reading data, the apparatus comprising:
-
means for receiving a read request from a requesting device for data stored on a solid-state storage device comprising two or more solid-state storage elements; means for reading one or more error-correcting code (ECC) blocks comprising the requested data, each ECC block comprising at least a portion of the requested data and an error-correcting code capable of correcting an error in the portion of the requested data, wherein reading the one or more ECC blocks comprises reading, for a particular ECC block of the one or more ECC blocks, a first portion of the particular ECC block from a page of a first one of the solid-state storage elements and a second portion from a page of a second one of the solid-state storage elements; means for correcting errors in the one or more ECC blocks in response to detecting the error; and means for providing the requested data to the requesting device.
-
Specification