IP Library Granted Patent US 10,992,323
Granted Patent B2
US 10,992,323 · App. 16/265,693 · Granted Apr 27, 2021

Early decoding termination for a memory sub-system

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 10,992,323
App. No.
16/265,693
Granted
Apr 27, 2021
Kind
B2
Abstract

A decoder can receive an indication that a portion of a codeword has been decoded during a decoding operation. The decoder can determine a group of candidate output values of the decoding operation for the portion of the codeword, and eliminate one or more candidate output values from the group of candidate output values based on a decoded check code for each of the group of candidate output values. In response to determining that all of the candidate output values have been eliminated from the group of candidate output values, the decoder can terminate the decoding operation.

Claims (60)

1. A method comprising:

receiving an indication that a portion of a codeword has been decoded during a decoding operation;

determining a plurality of candidate output values of the decoding operation for the portion of the codeword;

eliminating one or more candidate output values from the plurality of candidate output values based on a decoded check code for each of the plurality of candidate output values; and

in response to determining that all of the candidate output values have been eliminated from the plurality of candidate output values, terminating, by a processing device, the decoding operation.

2. The method of claim 1 , further comprising:

in response to determining that at least one of the candidate output values has not been eliminated from the plurality of candidate output values, determining to not terminate the decoding operation.

3. The method of claim 2 , further comprising:

in response to determining to not terminate the decoding operation, determining whether the entire codeword has been decoded; and

in response to determining that the entire codeword has not been decoded:

receiving a subsequent portion of the codeword, wherein the subsequent portion is in a location of the codeword that is after a location of the portion of the same codeword;

eliminating one or more additional candidate output values from the plurality of candidate output values based on an additional decoded check code for each of the plurality of candidate output values; and

determining whether at least one of the plurality of candidate output values has not been eliminated.

4. The method of claim 3 , further comprising:

in response to determining that the entire codeword has been decoded, outputting a decoded result comprising at least one of the plurality of output values that has not been eliminated.

5. The method of claim 1 , wherein the plurality of candidate output values comprises a set of potential output values that potentially match an expected decoded host data that is expected to be a result of the decoding operation for the portion of the codeword.

6. The method of claim 1 , wherein eliminating the one or more candidate output values further comprises:

identifying a decoded host data sector and a decoded check code for each of the plurality of candidate output values; and

determining that the decoded check code does not match the corresponding decoded host data sector for the one or more candidate output values.

7. The method of claim 1 , wherein terminating the decoding operation comprises determining to not perform the decoding operation for remaining portions of the codeword.

8. A system comprising:

a memory component; and

a processing device, operatively coupled with the memory component, to:

receive a request for host data;

receive a codeword that is associated with the host data;

perform a decoding operation for a first portion of the codeword to generate a segment of decoded data;

determine whether the segment of the decoded data satisfies the request for the host data;

in response to determining that the segment of the decoded data satisfies the request for the host data, determine whether a single candidate output value has been validated for the decoding operation; and

in response to determining that a single candidate output value has been validated, terminate the decoding operation for remaining portions of the codeword.

9. The system of claim 8 , wherein the processing device is further to:

in response to determining that the segment of the decoded data does not satisfy the request for the host data, perform the decoding operation for a second portion of the codeword that is associated with the host data.

10. The system of claim 8 , wherein to perform the decoding operation, the processing device is further to:

determine a plurality of candidate output values of the decoding operation for the codeword; and

eliminate one or more candidate output values from the plurality of candidate output values based on a decoded check code for each of the plurality of candidate output values.

11. The system of claim 10 , wherein the processing device is further to:

in response to determining that more than a single candidate output value has been validated, perform the decoding operation for a second portion of the codeword that is associated with the host data.

12. The system of claim 8 , wherein the decoding operation is based on a polar decoder.

13. The system of claim 8 , wherein to determine whether the segment of the decoded data satisfies the request for the host data, the processing device is further to:

determine whether a first data range associated with candidate output values for the segment of the decoded data matches a second data range associated with the host data.

14. A non-transitory computer readable medium comprising instructions, which when executed by a processing device, cause the processing device to perform operations comprising:

receiving an indication that a portion of a codeword has been decoded during a decoding operation;

determining a plurality of candidate output values of the decoding operation for the portion of the codeword;

eliminating one or more candidate output values from the plurality of candidate output values based on a decoded check code for each of the plurality of candidate output values; and

in response to determining that all of the candidate output values have been eliminated from the plurality of candidate output values, terminating, by a processing device, the decoding operation.

15. The non-transitory computer readable medium of claim 14 , wherein the operations further comprise:

in response to determining that at least one of the candidate output values has not been eliminated from the plurality of candidate output values, determining to not terminate the decoding operation.

16. The non-transitory computer readable medium of claim 15 , wherein the operations further comprise:

in response to determining to not terminate the decoding operation, determining whether the entire codeword has been decoded; and

in response to determining that the entire codeword has not been decoded:

receiving a subsequent portion of the codeword, wherein the subsequent portion is in a location of the codeword that is after a location of the portion of the same codeword;

eliminating one or more additional candidate output values from the plurality of candidate output values based on an additional decoded check code for each of the plurality of candidate output values; and

determining whether at least one of the plurality of candidate output values has not been eliminated.

17. The non-transitory computer readable medium of claim 16 , wherein the operations further comprise:

in response to determining that the entire codeword has been decoded, outputting a decoded result comprising at least one of the plurality of output values that has not been eliminated.

18. The non-transitory computer readable medium of claim 14 , wherein the plurality of candidate output values comprises a set of potential output values that potentially match an expected decoded host data that is expected to be a result of the decoding operation for the portion of the codeword.

19. The non-transitory computer readable medium of claim 14 , wherein eliminating the one or more candidate output values further comprises:

identifying a decoded host data sector and a decoded check code for each of the plurality of candidate output values; and

determining that the decoded check code does not match the corresponding decoded host data sector for the one or more candidate output values.

20. The non-transitory computer readable medium of claim 14 , wherein to terminate the decoding operation, the operations further comprise:

determining to not perform the decoding operation for remaining portions of the codeword.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2019
From: XIE, TINGJUN; TAI, YING YU; ZHU, JIANGLI
To: MICRON TECHNOLOGY, INC.
Reel/Frame 048256/0321 →