IP Library Patent Application 14963025
Patent Application
App. No. 14/963,025

SYSTEMS AND METHODS FOR PROVIDING LOW LATENCY READ PATH FOR NON-VOLATILE MEMORY

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 None
App. No.
14/963,025
Abstract

Aspects of the disclosure relate to storage systems for providing low latency read access of a non-volatile memory. One such system includes a non-volatile memory (NVM) configured for read access via a primary data path, a syndrome checker disposed along the primary read data path and configured to check a codeword read from the NVM for errors, an error correction code circuitry disposed outside of the primary data path and, if the codeword is determined to contain an error, configured to determine a location of the error in the codeword, and a queue disposed along the primary read data path. The queue is configured to receive the codeword from the syndrome checker and output the codeword to a host. If the codeword is determined to contain the error, the queue corrects the error based on the determined location of the error from the error correction code circuitry.

Claims (81)

1 . A storage system for providing low latency read access of a non-volatile memory, the system comprising:

a non-volatile memory (NVM) configured for read access via a primary data path;

a syndrome checker disposed along the primary data path and configured to check a codeword read from the NVM for errors;

an error correction code (ECC) circuitry disposed outside of the primary data path and, if the codeword is determined to contain an error, configured to determine a location of the error in the codeword; and

a queue disposed along the primary data path and configured to:

receive the codeword from the syndrome checker;

if the codeword is determined to contain no error, output the codeword to a host; and

if the codeword is determined to contain the error, correct the error based on the determined location of the error from the ECC circuitry and output the codeword to the host.

2 . The storage system of claim 1 , wherein the ECC circuitry comprises:

a syndrome queue configured to received one or more syndromes from the syndrome checker;

an error location queue configured to store one or more error locations of the codeword;

a first data path coupled between the syndrome queue and the error location queue; and

a second data path coupled in parallel to the first data path,

wherein components in the first data path and the second data path are configured to determine the one or more error locations of the codeword.

3 . The storage system of claim 2 , wherein the ECC circuitry is configured to:

if the codeword has a number of errors less than or equal to a threshold, utilize components in the first data path to determine the one or more error locations; and

if the codeword has a number of errors greater than the threshold, utilize components in the second data path to determine the one or more locations.

4 . The storage system of claim 2 ,

wherein the first data path comprises a direct solver and a direct root solver,

wherein the direct solver is configured to determine an error location polynomial (ELP) based on the one or more syndromes, and

wherein the direct root solver is configured to determine one or more roots of the ELP corresponding to the one or more error locations.

5 . The storage system of claim 2 ,

wherein the second data path comprises a Berlekamp-Massey algorithm (BMA) solver and a Chien Root Search (CRS) root solver,

wherein the BMA solver is configured to determine an error location polynomial (ELP) based on the one or more syndromes, and

wherein the CRS root solver is configured to determine one or more roots of the ELP corresponding to the one or more error locations.

6 . The storage system of claim 1 , further comprising:

a read logic configured to read the codeword from the NVM and to provide the codeword to the syndrome checker at a preselected rate,

wherein the syndrome checker is configured to perform error checking at the preselected rate.

7 . The storage system of claim 1 , wherein the queue is configured to correct the error of the codeword by inverting a bit at the location determined by the ECC circuitry.

8 . The storage system of claim 1 , wherein the syndrome checker is directly coupled to the queue via the primary data path.

9 . The storage system of claim 1 , further comprising:

a buffer,

wherein the syndrome checker is directly coupled to the buffer via the primary data path, and

wherein the buffer is directly coupled to the queue via the primary data path.

10 . A method for providing low latency read access of a non-volatile memory, the method comprising:

reading a codeword from a non-volatile memory (NVM);

determining whether the codeword contains an error;

sending, if the codeword contains no error, the codeword to a queue without attempting to locate errors in the codeword;

determining, if the codeword contains the error, a location of the error in the codeword; and

correcting, if the codeword contains the error, the error in the codeword based on the determined location of the error.

11 . The method of claim 10 , wherein the determining whether the codeword contains the error comprises:

determining a syndrome of the codeword, the syndrome indicative of whether or not the codeword comprises the error.

12 . The method of claim 10 , wherein the determining the location of the error comprises:

determining one or more syndromes of the codeword;

determining an error location polynomial (ELP) based on the one or more syndromes; and

solving for one or more roots of the ELP utilizing an algorithm based on a number of errors of the codeword, wherein the one or more roots correspond to the location of the errors.

13 . The method of claim 10 , wherein the determining the location of the error comprises:

determining one or more syndromes of the codeword; and

if the codeword has a number of errors less than or equal to a threshold:

determining, using a direct solver, an error location polynomial (ELP) based on the one or more syndromes; and

determining, using a direct root solver, one or more roots of the ELP, wherein the one or more roots correspond to the location of the error.

14 . The method of claim 13 , wherein the determining the location of the error further comprises:

if the codeword has a number of errors greater than the threshold:

determining, using a Berlekamp-Massey algorithm (BMA) solver, the ELP based on the one or more syndromes; and

determining, using a Chien Root Search (CRS) solver, one or more roots of the ELP, wherein the one or more roots correspond to the location of the error.

15 . The method of claim 10 ,

wherein the codeword is read from the NVM and provided to a syndrome checker at a preselected rate; and

wherein the determining the error comprises utilizing the syndrome checker to perform error checking at the preselected rate.

16 . The method of claim 10 , wherein the correcting the error comprises inverting a bit of the codeword at the determined location.

17 . The method of claim 10 ,

wherein the determining the error comprises utilizing a syndrome checker to determine a syndrome of the codeword,

wherein the determining the location of the error comprises utilizing an error correction code (ECC) circuitry to determine the location, and

wherein the syndrome checker is directly coupled to a queue via a primary data path, and the ECC circuitry is disposed outside of the primary data path.

18 . The method of claim 10 ,

wherein the determining the error comprises utilizing a syndrome checker to determine a syndrome of the codeword,

wherein the determining the location of the error comprises utilizing an error correction code (ECC) circuitry to determine the location, and

wherein the syndrome checker is directly coupled to a buffer via a primary data path, the buffer is directly coupled to a queue via the primary data path.

19 . An error correction code (ECC) circuitry comprising:

a syndrome queue configured to store one or more syndromes of a codeword;

an error location queue configured to store one or more error locations of the codeword;

a first data path coupled between the syndrome queue and the error location queue; and

a second data path coupled in parallel to the first data path,

wherein if the codeword has a number of errors less than or equal to a threshold, components in the first data path are configured to determine the one or more error locations, and

wherein if the codeword has a number of errors greater than the threshold, components in the second data path are configured to determine the one or more error locations.

20 . The ECC circuitry of claim 19 , wherein the first data path comprises:

a direct solver configured to determine an error location polynomial (ELP) based on the one or more syndromes; and

a direct root solver configured to determine one or more roots of the ELP, wherein the one or more roots correspond to the one or more error locations.

21 . The ECC circuitry of claim 19 , wherein the second data path comprises:

a Berlekamp-Massey algorithm (BMA) solver configured to determine an error location polynomial (ELP) based on the one or more syndromes; and

a Chien Root Search (CRS) solver configured to determine one or more roots of the ELP, wherein the one or more roots correspond to the one or more error locations.

22 . The ECC circuitry of claim 19 , wherein components in the first data path are configured to determine the error locations faster than that of the second data path.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2015
From: BANDIC, ZVONIMIR Z.; GUNNAM, KIRAN KUMAR; QIN, MINGHAI; VUCINIC, DEJAN
To: HGST NETHERLANDS B.V.
Reel/Frame 037242/0238 →