Systems and methods for decoding data for solid-state memory
First Claim
Patent Images
1. An electronically-implemented method of retrieving user data, the method comprising:
- receiving a logical address and a read request for the user data;
determining a journaling cell slot, a first page stripe, and a page grid corresponding to the logical address, wherein the page grid comprises a plurality of related page stripes including the first page stripe, wherein the page stripes of the page grid are related by having a grid error correction code having codewords spanning the page grid, wherein a page stripe of the plurality of related page stripes comprises a plurality of pages or integer fractions thereof, wherein the journaling cell slot is allocated to the first page stripe;
retrieving information indicative of a capacity of journaling cell slots per page stripe of the page grid, wherein the capacity is zero for at least a second page stripe of the page grid;
identifying data corresponding to the at least second page stripe as identically zero for a decoder of the grid error correction code;
retrieving data from a set of page stripes of the page grid having non-zero journaling cell slot capacity, wherein page stripes having non-zero journaling cell slot capacity each have a primary error correction code within the page stripe;
performing error correction within the page stripes of the page grid having non-zero journaling cell slot capacity;
decoding the grid error correction code to correct errors throughout the page grid to generate a first corrected first page stripe;
performing primary error correction on the first corrected first page stripe to generate a second corrected first page stripe; and
providing the user data from the journaling cell slot of the second corrected first page stripe.
7 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and methods provide relatively low uncorrectable bit error rates, low write amplification, long life, fast and efficient retrieval, and efficient storage density such that a solid-state drive (SSD) can be reliably implemented using various types of memory cells, including relatively inexpensive multi-level cell flash. One embodiment intelligently coordinates remapping of bad blocks with error correction code control, which eliminates the tables used to avoid bad blocks.
-
Citations
20 Claims
-
1. An electronically-implemented method of retrieving user data, the method comprising:
-
receiving a logical address and a read request for the user data; determining a journaling cell slot, a first page stripe, and a page grid corresponding to the logical address, wherein the page grid comprises a plurality of related page stripes including the first page stripe, wherein the page stripes of the page grid are related by having a grid error correction code having codewords spanning the page grid, wherein a page stripe of the plurality of related page stripes comprises a plurality of pages or integer fractions thereof, wherein the journaling cell slot is allocated to the first page stripe; retrieving information indicative of a capacity of journaling cell slots per page stripe of the page grid, wherein the capacity is zero for at least a second page stripe of the page grid; identifying data corresponding to the at least second page stripe as identically zero for a decoder of the grid error correction code; retrieving data from a set of page stripes of the page grid having non-zero journaling cell slot capacity, wherein page stripes having non-zero journaling cell slot capacity each have a primary error correction code within the page stripe; performing error correction within the page stripes of the page grid having non-zero journaling cell slot capacity; decoding the grid error correction code to correct errors throughout the page grid to generate a first corrected first page stripe; performing primary error correction on the first corrected first page stripe to generate a second corrected first page stripe; and providing the user data from the journaling cell slot of the second corrected first page stripe. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for retrieving user data, the apparatus comprising:
-
a circuit configured to; receive a logical address and a read request for the user data; determine a journaling cell slot, a first page stripe, and a page grid corresponding to the logical address, wherein the page grid comprises a plurality of related page stripes including the first page stripe, wherein the page stripes of the page grid are related by having a grid error correction code having codewords spanning the page grid, wherein a page stripe of the plurality of related page stripes comprises a plurality of pages or integer fractions thereof, wherein the journaling cell slot is allocated to the first page stripe; retrieve information indicative of a capacity of journaling cell slots per page stripe of the page grid, wherein the capacity is zero for at least a second page stripe of the page grid; identify data corresponding to the at least second page stripe as identically zero for a decoder of the grid error correction code; retrieve data from a set of page stripes of the page grid having non-zero journaling cell slot capacity, wherein page stripes having non-zero journaling cell slot capacity each have a primary error correction code within the page stripe; and an ECC encoder/decoder configured to; perform error correction within the page stripes of the page grid having non-zero journaling cell slot capacity; decode the grid error correction code to correct errors throughout the page grid to generate a first corrected first page stripe; perform primary error correction on the first corrected first page stripe to generate a second corrected first page stripe; and provide the user data from the journaling cell slot of the second corrected first page stripe. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification