New Paragraph

Paragraphs

Actions Matter Content Para # Notes Modified
View Edit
Delete
2380.2.01 wherein the write data pipeline is configured to store a first portion of the ECC block on a page of a first one of the solid-state storage elements and a second portion of the ECC block on a page of a second one of the solid-state storage elements. 227 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 generating an error-correcting code (ECC) block comprising at least a portion of the received data and an error-correcting code capable of correcting an error in the ECC block; and 214 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 receiving, at a write data pipeline, data to be stored on the solid-state storage device, the write data pipeline communicatively coupled to the two or more solid-state storage elements; 213 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 Claim 1.A method of storing data on a solid-state storage device comprising two or more solid-state storage elements, each partitioned into a plurality of pages, the method comprising: 212 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 The schematic flow chart diagrams that follow are generally set forth as logical flow chart diagrams. As such, the depicted order and labeled steps are indicative of one embodiment of the presented method. Other steps and methods may be conceived that are equivalent in function, logic, or effect to one or more steps, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical steps of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow chart diagrams, they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated steps of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding steps shown. 211 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 The depacketizer 324 receives 618 the requested packet after the ECC correction module 322 corrects any errors and depacketizes 618 the packets by checking and removing the packet header of each packet. The alignment module 326 receives packets after depacketizing, removes unwanted data, and re-formats 620 the data packets as data or metadata segments of an object in a form compatible with the device requesting the segment or object. The output buffer 330 receives requested packets after depacketizing and buffers 622 the packets prior to transmission to the requesting device 155, and the method 600 ends 624. 210 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 The ECC correction module 322 receives the ECC blocks of the requested packets held in the read synchronization buffer 328 and corrects 616 errors within each ECC block as necessary. If the ECC correction module 322 determines that one or more errors exist in an ECC block and the errors are correctable using the ECC syndrome, the ECC correction module 322 corrects 616 the error in the ECC block. If the ECC correction module 322 determines that a detected error is not correctable using the ECC, the ECC correction module 322 sends an interrupt. 209 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 The ECC generator 304 receives a packet from the packetizer 302 and generates 608 one or more ECC blocks for the packets. The write synchronization buffer 308 buffers 610 the packets as distributed within the corresponding ECC blocks prior to writing ECC blocks to the solid-state storage 110 and then the solid-state storage controller 104 writes 612 the data at an appropriate time considering clock domain differences. When data is requested from the solid-state storage 110, ECC blocks comprising one or more data packets are read into the read synchronization buffer 328 and buffered 614. The ECC blocks of the packet are received over the storage I/O bus 210. Since the storage I/O bus 210 is bi-directional, when data is read, write operations, command operations, etc. are halted. 208 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 FIG. 6 is a schematic flow chart diagram illustrating another embodiment of a method 600 for managing data in a solid-state storage device 102 using a data pipeline in accordance with the present invention. The method 600 begins 602 and the input buffer 306 receives 604 one or more data or metadata segments to be written to the solid-state storage 110. The packetizer 302 adds a header to each packet which typically includes the length of the packet within the object. The packetizer 302 receives 604 the one or more segments that were stored in the input buffer 306 and packetizes 606 the one or more segments by creating one or more packets sized for the solid-state storage 110 where each packet includes a header and data from the one or more segments. 207 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 The write synchronization buffer 308 buffers 510 the packets as distributed within the corresponding ECC blocks prior to writing ECC blocks to the solid-state storage 110 and then the solid-state storage controller 104 writes 512 the data at an appropriate time considering clock domain differences, and the method 500 ends 514. The write synch buffer 308 is located at the boundary between a local clock domain and a solid-state storage 110 clock domain. Note that the method 500 describes receiving one or more data segments and writing one or more data packets for convenience, but typically a stream of data segments is received and a group. Typically a number of ECC blocks comprising a complete virtual page of solid-state storage 110 are written to the solid-state storage 110. Typically the packetizer 302 receives data segments of one size and generates packets of another size. This necessarily requires data or metadata segments or parts of data or metadata segments to be combined to form data packets to capture all of the data of the segments into packets. 206 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 The ECC generator 304 receives a packet from the packetizer 302 and generates 508 ECC for the data packets. Typically, there is no fixed relationship between packets and ECC blocks. An ECC block may comprise one or more packets. A packet may comprise one or more ECC blocks. A packet may start and end anywhere within an ECC block. A packet may start anywhere in a first ECC block and end anywhere in a subsequent ECC block. 205 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 storing a first portion of the ECC block on a page of a first one of the solid-state storage elements and a second portion of the ECC block on a page of a second one of the solid-state storage elements responsive to a single solid-state element page program command. 238 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 a read data pipeline configured to read the ECC block from the solid-state storage elements, wherein reading the ECC block comprises reading the first portion of the ECC block from the first solid-state storage element and the second portion from the second solid-state storage element, the read data pipeline comprising, 249 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 wherein the write data pipeline is configured to store a first portion of the ECC block on a first one of the solid-state storage elements and a second portion of the ECC block on a second one of the solid-state storage elements; and 248 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 an error-correcting code (ECC) generator configured to generate an ECC block comprising at least a portion of one or more of the packets and an error-correcting code configured to correct an error in the ECC block, the ECC block having no fixed relationship between a size of the packets and a size of the ECC block, 247 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 a packetizer configured to packetize a stream of data into one or more packets, each packet comprising at least a portion of the data stream; 246 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 a write data pipeline comprising, 245 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 a solid-state storage controller communicatively coupled to the two or more solid-state storage elements and comprising, 244 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 a solid-state storage device comprising two or more solid-state storage elements; and 243 Added by DJM 3 2021 3/16/21, 12:00 AM
View Edit
Delete
2380.2.01 Claim 22.An apparatus to manage data in a solid-state storage device, comprising: 242 Added by DJM 3 2021 3/16/21, 12:00 AM

Page 368 of 438, showing 20 record(s) out of 8,747 total