KR20190076589A - 플래시 메모리 컨트롤러의 에러 정정 방법 - Google Patents
플래시 메모리 컨트롤러의 에러 정정 방법 Download PDFInfo
- Publication number
- KR20190076589A KR20190076589A KR1020170178505A KR20170178505A KR20190076589A KR 20190076589 A KR20190076589 A KR 20190076589A KR 1020170178505 A KR1020170178505 A KR 1020170178505A KR 20170178505 A KR20170178505 A KR 20170178505A KR 20190076589 A KR20190076589 A KR 20190076589A
- Authority
- KR
- South Korea
- Prior art keywords
- ecc
- stripe
- flash memory
- data
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1014—Compression, i.e. RAID systems with parity using compression techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
도 1은 본 발명의 실시 예가 적용되는 SSD의 구성을 보인 도이다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 콘트롤러의 세부적인 구성을 보인 도이다.
도 3은 본 발명의 실시 예에 따른 플래시 메모리 콘트롤러의 에러 정정 과정을 보인 순서도이다.
도 4는 본 발명의 실시 예에 따른 플래시 메모리 콘트롤러의 에러 정정 과정의 RAID 분산 배치 과정을 상세하게 보인 순서도이다.
도 5는 본 발명의 실시 예에 따른 플래시 메모리 콘트롤러의 에러 정정 과정의 RAID 분산 배치 과정을 설명하기 위한 예시도이다.
도 6은 본 발명의 실시 예에 따른 플래시 메모리 콘트롤러의 에러 정정 과정의 ECC 소스 길이 가변 과정을 세부적으로 보인 순서도이다.
도 7은 본 발명의 실시 예에 따른 플래시 메모리 콘트롤러의 에러 정정 과정의 ECC 소스 길이 가변 과정을 설명하기 위한 예시도이다.
Claims (4)
- 낸드 플래시 메모리 장치를 제어하기 위한 플래시 메모리 콘트롤러의 에러 정정 방법에 있어서,
쓰기 명령 수신 시 수신된 데이터를 압축하는 과정; 및
압축된 데이터를 RAID 분산 배치하는 과정을 포함하는 것을 특징으로 하는 플래시 메모리 컨트롤러의 에러 정정 방법.
- 제1항에 있어서, 상기 RAID 분산 배치하는 과정은
스트라이프 태에 속하는 블록 그룹 SG(Stripe Group), 스트라이프 그룹 내의 칩 번호 CI(Chip Index), 페이지 사이즈와 CI의 비로부터 도출된 페이지 사이즈 SB(Scatter Base), 및 SB와 CI의 곱으로부터 연산하여 스트라이프 그룹 내의 압축 데이터의 배치 오프셋 값 SI(Scatter Index)을 포함하는 RAID 에 대해,
플래시 컨트롤러에 의해 스트라이프 내에 속하는 블록 그룹 SG(Stripe Group) 내의 부분 스트라이프의 압축 데이터에 대해 SI를 토대로 각 플래시 메모리 칩에 분산 배치하는 단계;
부분 스트라이프의 패리티 데이터를 쓰기가 완료될 때까지 별도의 버퍼 메모리에 저장하는 단계;
모든 스트라이프 로깅을 위해 루트 블록, 스트라이프 맵 블록, 페이지 맵 블록, 및 스트라이프 맵 로그 블록을 포함하는 스트라이프 로그를 생성하고 생성된 스트라이프 로그를 메타 데이터로 기록하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 컨트롤러의 에러 정정 방법.
- 제2항에 있어서, 상기 플래시 메모리 콘트롤러의 오류 정정 방법은
분산 배치된 한 페이지 내의 에러 정정 코드(ECC) 소스 길이를 적응적으로 가변시켜 인코딩하는 과정을 더 포함하는 것을 특징으로 하는 플래시 메모리 컨트롤러의 에러 정정 방법.
- 제3항에 있어서, 상기 적응적 소스 길이로 인코딩하는 과정은,
압축된 ECC 소스 길이를 고정된 각 페이지의 ECC 수로 나누어 ECC 소스 길이를 설정하는 단계;
동일한 수의 ECC 리던던시를 페이지의 추가 영역에 기록하는 단계; 및
상기 설정된 ECC 소스 길이로 압축된 ECC에 대해 인코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 컨트롤러의 에러 정정 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170178505A KR102032878B1 (ko) | 2017-12-22 | 2017-12-22 | 플래시 메모리 컨트롤러의 에러 정정 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170178505A KR102032878B1 (ko) | 2017-12-22 | 2017-12-22 | 플래시 메모리 컨트롤러의 에러 정정 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190076589A true KR20190076589A (ko) | 2019-07-02 |
KR102032878B1 KR102032878B1 (ko) | 2019-10-16 |
Family
ID=67258091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170178505A Expired - Fee Related KR102032878B1 (ko) | 2017-12-22 | 2017-12-22 | 플래시 메모리 컨트롤러의 에러 정정 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102032878B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12379842B2 (en) | 2022-10-07 | 2025-08-05 | Samsung Electronics Co., Ltd. | Storage device operating on zone basis and data processing system including the same |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210152738A (ko) | 2020-06-09 | 2021-12-16 | 에스케이하이닉스 주식회사 | 스트라이프 형태로 데이터를 액세스하는 메모리 시스템 및 메모리 시스템의 동작방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08123627A (ja) * | 1994-10-20 | 1996-05-17 | Fuji Xerox Co Ltd | ディスクアレイ装置 |
KR20090102789A (ko) * | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
KR101274950B1 (ko) * | 2006-05-12 | 2013-06-17 | 애플 인크. | 조절가능한 용량을 가진 메모리 디바이스 |
KR20160068690A (ko) * | 2014-12-04 | 2016-06-15 | 삼성디스플레이 주식회사 | 송신 스트림에서 에러 정정 코드들을 전송하는 방법 및 송신 스트림으로부터 데이터 스트림을 추출하는 방법 |
KR20170140614A (ko) * | 2016-06-13 | 2017-12-21 | 주식회사 래코랩 | 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법 |
-
2017
- 2017-12-22 KR KR1020170178505A patent/KR102032878B1/ko not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08123627A (ja) * | 1994-10-20 | 1996-05-17 | Fuji Xerox Co Ltd | ディスクアレイ装置 |
KR101274950B1 (ko) * | 2006-05-12 | 2013-06-17 | 애플 인크. | 조절가능한 용량을 가진 메모리 디바이스 |
KR20090102789A (ko) * | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
KR20160068690A (ko) * | 2014-12-04 | 2016-06-15 | 삼성디스플레이 주식회사 | 송신 스트림에서 에러 정정 코드들을 전송하는 방법 및 송신 스트림으로부터 데이터 스트림을 추출하는 방법 |
KR20170140614A (ko) * | 2016-06-13 | 2017-12-21 | 주식회사 래코랩 | 압축률을 이용한 낸드 플래시 메모리 컨트롤러 및 이를 이용한 낸드 플래시 메모리 저장 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12379842B2 (en) | 2022-10-07 | 2025-08-05 | Samsung Electronics Co., Ltd. | Storage device operating on zone basis and data processing system including the same |
Also Published As
Publication number | Publication date |
---|---|
KR102032878B1 (ko) | 2019-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8397101B2 (en) | Ensuring a most recent version of data is recovered from a memory | |
US10884914B2 (en) | Regrouping data during relocation to facilitate write amplification reduction | |
US10592110B2 (en) | Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics | |
US8910017B2 (en) | Flash memory with random partition | |
US8694865B2 (en) | Data storage device configured to reduce buffer traffic and related method of operation | |
US9632702B2 (en) | Efficient initialization of a thinly provisioned storage array | |
US12125549B2 (en) | Apparatus and method for correcting an error in data transmission of a data processing system | |
US11340986B1 (en) | Host-assisted storage device error correction | |
US11893269B2 (en) | Apparatus and method for improving read performance in a system | |
US20210279180A1 (en) | Apparatus and method for controlling map data in a memory system | |
US11442811B1 (en) | Apparatus and method for using an error correction code in a memory system | |
US11507501B2 (en) | Apparatus and method for transmitting, based on assignment of block to HPB region, metadata generated by a non-volatile memory system | |
US11360697B2 (en) | Apparatus and method for encoding and decoding operations to protect data stored in a memory system | |
US12050795B2 (en) | Apparatus and method for managing map data between host and memory system | |
US12216914B2 (en) | Apparatus and method for power-loss data protection in a system | |
KR20190076589A (ko) | 플래시 메모리 컨트롤러의 에러 정정 방법 | |
TWI866827B (zh) | 用來進行預定通訊架構中的記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
US11934264B2 (en) | ECC parity biasing for Key-Value data storage devices | |
US12032843B2 (en) | Apparatus and method for increasing operation efficiency in data processing system | |
US11854657B2 (en) | Memory device and memory system supporting interleaving operation and operation method thereof | |
US11704281B2 (en) | Journaling apparatus and method in a non-volatile memory system | |
US11645002B2 (en) | Apparatus and method for controlling and storing map data in a memory system | |
US12379849B2 (en) | Apparatus and method for sharing data between a host and a memory system based on data characteristics | |
US20250165389A1 (en) | Apparatus and method for distributing and storing write data in plural memory regions | |
US20240070006A1 (en) | Memory system and method of controlling nonvolatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20241011 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20241011 |