IP Library Granted Patent US 8,972,824
Granted Patent B1
US 8,972,824 · App. 13/477,599 · Granted Mar 3, 2015

Systems and methods for transparently varying error correction code strength in a flash drive

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,972,824
App. No.
13/477,599
Granted
Mar 3, 2015
Kind
B1
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 implemented using relatively inexpensive MLC Flash for an enterprise storage application.

Claims (45)

1. A method of reading data from an array of flash memory devices, the method comprising:

receiving a request for data stored in the flash array, the requested data being identified by a virtual address;

looking up the following, which are associated with the virtual address:

a physical address or addresses of one or more page stripes;

a starting location for the data within the first page stripe of the one or more page stripes of the flash array; and

one or more gear settings for the one or more page stripes, wherein the gear settings are indicative of a strength of error correction assigned to a page stripe of the one or more page stripes;

requesting one or more portions of the payload of the one or more page stripes associated with the virtual address, and providing the one or more gear settings of the one or more page stripes along with the request;

receiving, from an ECC decoder, corrected retrieved portions of the one or more page stripes, and an indication of whether each portion was successfully corrected; and

if all portions of the requested data were successfully corrected by the ECC decoder, reassembling the corrected portions into the requested data and returning the same;

wherein the method is performed by an integrated circuit.

2. The method of claim 1 , further comprising:

receiving an indication from the ECC decoder as to whether or not correction for the corrected retrieved data from the flash array has met criteria indicating that a different gear should be selected for the one or more page stripes; and

storing the indication so that when the one or more page stripes are erased and made available for writing, a different gear and corresponding different payload size is used;

wherein the indication is reset after the gear setting has been changed.

3. The method of claim 1 , wherein the one or more portions of the payload comprises a first portion from a first page stripe and a second portion from a second page stripe.

4. An apparatus comprising:

a first circuit configured to receive a request for data stored in a flash array, the requested data being identified by a virtual address;

a second circuit configured to look up the following, which are associated with the virtual address:

a physical address or addresses of one or more page stripes;

a starting location for the data within the first page stripe of the one or more page stripes of the flash array; and

one or more gear settings for the one or more page stripes, wherein the gear settings are indicative of a strength of error correction assigned to a page stripe of the one or more page stripes;

the second circuit further configured to request one or more portions of the payload of the one or more page stripes associated with the virtual address, and providing the one or more gear settings of the one or more page stripes along with the request;

the second circuit further configured to receive, from an ECC decoder, corrected retrieved portions of the one or more page stripes, and an indication of whether each portion was successfully corrected; and

if all portions of the requested data were successfully corrected by the ECC decoder, the second circuit is further configured to reassemble the corrected portions into the requested data and return the same.

5. The apparatus of claim 4 , wherein the second circuit is further configured to:

receive an indication from the ECC decoder as to whether or not correction for the corrected retrieved data from the flash array has met criteria indicating that a different gear should be selected for the one or more page stripes; and

store the indication so that when the one or more page stripes are erased and made available for writing, a different gear and corresponding different payload size is used;

wherein the second circuit is further configured to reset the indication after the gear setting has been changed.

6. The apparatus of claim 4 , wherein the one or more portions of the payload comprises a first portion from a first page stripe and a second portion from a second page stripe.

7. An apparatus for reading data from an array of flash memory devices, the apparatus comprising:

a means for receiving a request for data stored in a flash array, the requested data being identified by a virtual address;

a means for looking up the following, which are associated with the virtual address:

a physical address or addresses of one or more page stripes;

a starting location for the data within the first page stripe of the one or more page stripes of the flash array; and

one or more gear settings for the one or more page stripes, wherein the gear settings are indicative of a strength of error correction assigned to a page stripe of the one or more page stripes;

a means for requesting one or more portions of the payload of the one or more page stripes associated with the virtual address;

a means for providing the one or more gear settings of the one or more page stripes along with the request;

a means for receiving, from an ECC decoder, corrected retrieved portions of the one or more page stripes, and an indication of whether each portion was successfully corrected; and

a means for reassembling;

wherein if all portions of the requested data were successfully corrected by the ECC decoder, the reassembling means further reassembling the corrected portions into the requested data and returning the same.

8. The apparatus of claim 7 , further comprising:

a means for receiving an indication from the ECC decoder as to whether or not correction for the corrected retrieved data from the flash array has met criteria indicating that a different gear should be selected for the one or more page stripes;

a means for storing the indication so that when the one or more page stripes are erased and made available for writing, a different gear and corresponding different payload size is used; and

a means for resetting the indication after the gear setting has been changed.

9. The apparatus of claim 7 , wherein the one or more portions of the payload comprises a first portion from a first page stripe and a second portion from a second page stripe.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2017
From: MICROSEMI STORAGE SOLUTIONS, INC.
To: IP GEM GROUP, LLC
Reel/Frame 043212/0221 →
CHANGE OF NAME Recorded Apr 7, 2016
From: PMC-SIERRA, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 038381/0753 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2014
From: NORTHCOTT, PHILIP L.; GEIGER, PETER DAU; SADOWSKY, JONATHAN
To: PMC-SIERRA, INC.
Reel/Frame 033863/0407 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →