IP Library Granted Patent US 10,061,641
Granted Patent B2
US 10,061,641 · App. 14/580,815 · Granted Aug 28, 2018

Memory controller, storage device including the same and data encoding and decoding methods thereof

Inventors: Namshik Kim (Seoul, KR); Tae-Hwan Kim (Suwon-si, KR); Daewook Kim (Osan-si, KR); Biwoong Chung (Yongin-si, KR); Junjin Kong (Yongin-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G06F11/1012G11C11/419
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,061,641
App. No.
14/580,815
Granted
Aug 28, 2018
Kind
B2
Abstract

A storage device is provided which includes an ECC circuit. At a write operation, the ECC circuit generates a CRC (cyclic redundancy check) parity corresponding to data and generates an ECC (error correction code) parity corresponding to the data using an error correction code. At a read operation about the data stored in the at least one nonvolatile memory device, the ECC circuit corrects an error of the data using the CRC parity and the ECC parity.

Claims (41)

1. A storage device comprising:

at least one nonvolatile memory device configured to store data; and

a memory controller configured to control the at least one nonvolatile memory device, the memory controller including an error correction code (ECC) circuit, the ECC circuit, including

a first CRC generator configured to

receive the data from a host, and

generate a first cyclic redundancy check (CRC) parity corresponding to the data at a write operation,

a second CRC generator configured to

receive the data and the first CRC parity, and

generate a second CRC parity corresponding to the data and the first CRC parity at the write operation, wherein a size of the second CRC parity is different from a size of the first CRC parity, and the size of the first CRC parity and the size of the second CRC parity are selected according to a request of the host,

an ECC encoder configured to generate an error correction code (ECC) parity corresponding to the data, the first CRC parity, and the second CRC parity using an error correction code (ECC) at the write operation, wherein the data, the first CRC parity, the second CRC parity, and the ECC parity are stored in the at least one nonvolatile memory device at the write operation, and

an ECC decoder configured to

perform a decoding operation correcting an error of the data from the at least one nonvolatile memory device using the ECC parity at a read operation,

generate corrected data by iteratively performing the decoding operation and increasing a number of iterations of the decoding operation, and

perform a CRC checking operation on the corrected data using the first CRC parity and the second CRC parity if the number of iterations of the decoding operation exceeds a value such that the ECC circuit is configured to skip the CRC checking operation during an initial decoding operation,

wherein the ECC circuit is further configured to send the corrected data to the host via a host interface if no error is detected during the CRC checking operation and the CRC checking operation passes.

2. The storage device of claim 1 , wherein the data is randomized data.

3. The storage device of claim 2 , wherein the memory controller is further configured to,

randomize the data received from the host at the write operation and

de-randomize the corrected data at the read operation and output the data.

4. The storage device of claim 1 , wherein the ECC circuit further comprises:

a third CRC generator configured to

receive the data, the first CRC parity, and the second CRC parity, and

generate a third CRC parity corresponding to the data, the first CRC parity, and the second CRC parity at the write operation.

5. The storage device of claim 1 , wherein

if the number of iterations of the decoding operation is less than the value, the ECC decoder is further configured to skip the CRC checking operation.

6. The storage device of claim 1 , wherein the ECC is an iteration code.

7. The storage device of claim 6 , wherein the iteration code is a low density parity check (LDPC) code.

8. A memory controller comprising:

a processor configured to,

encode a message during a write operation by,

generating a first code word based on the message and a first cyclic redundancy check (CRC) parity,

generating a second code word based on the message, the first CRC parity, and a second CRC parity, wherein a size of the second CRC parity is different from a size of the first CRC parity, and the size of the first CRC parity and the size of the second CRC parity are selected according to a request of a host,

generating a third code word including the second code word and an error correction code (ECC) parity, and

storing the third code word in a non-volatile memory device; and

decode the message during a read operation by,

reading the third code word from the non-volatile memory device,

iteratively decoding the third code word by performing a decoding operation using the ECC parity to generate a decoded message,

performing a CRC checking operation on the decoded message using the first CRC parity and the second CRC parity if a number of iterations of the decoding operation exceeds a value such that the processor is configured to skip the CRC checking operation during an initial decoding operation, and

outputting the decoded message to the host via a host interface if no error is detected during the CRC checking operation and the CRC checking operation passes.

9. The memory controller of claim 8 , wherein the processor is configured to determine if the third code word passes the CRC checking operation by determining if the first CRC parity and the second CRC parity included therein equals read CRC parities generated based on the decoded message.

10. The memory controller of claim 8 , wherein the third code word is decoded to generate the decoded message without the CRC checking operation, if the number of iterations indicates the initial decoding operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2014
From: KIM, NAMSHIK; KIM, TAE-HWAN; KIM, DAEWOOK; CHUNG, BIWOONG; KONG, JUNJIN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 034698/0702 →
Priority Claims (1)
KR 10-2013-0161731 · Dec 23, 2013 · national
Continuity (1)
Related Publication 20150178155A1 · Jun 25, 2015
Cited By (1)
US 12,249,376