KR20160059050A - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents
데이터 저장 장치 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR20160059050A KR20160059050A KR1020140160064A KR20140160064A KR20160059050A KR 20160059050 A KR20160059050 A KR 20160059050A KR 1020140160064 A KR1020140160064 A KR 1020140160064A KR 20140160064 A KR20140160064 A KR 20140160064A KR 20160059050 A KR20160059050 A KR 20160059050A
- Authority
- KR
- South Korea
- Prior art keywords
- read data
- memory
- error
- bit distribution
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F11/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
본 발명에 따른 데이터 저장 장치는 메모리 장치 및 상기 메모리 장치로부터 리드된 리드 데이터의 비트 분포에 근거하여 상기 리드 데이터에 대해 제1 에러 감지 동작을 수행하도록 구성된 비트 분포 체크 유닛을 포함한다.
Description
본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 데이터 저장 장치의 신뢰성을 향상시키기 위한 구성 및 동작 방법에 관한 것이다.
반도체 장치, 그 중에서도 반도체 메모리 장치는 데이터를 저장하는 용도로 사용될 수 있다. 메모리 장치는 그 타입을 크게 불휘발성과 휘발성으로 구분할 수 있다.
불휘발성 메모리 장치는 전원이 인가되지 않더라도 저장된 데이터를 유지할 수 있다. 불휘발성 메모리 장치는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory) 등을 포함할 수 있다.
휘발성 메모리 장치는 전원이 인가되지 않는 경우 저장된 데이터를 유지하지 못하고 소실할 수 있다. 휘발성 메모리 장치는 SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory) 등을 포함할 수 있다. 휘발성 메모리 장치는 비교적 빠른 처리 속도에 기반하여, 데이터 처리 시스템에서 일반적으로 버퍼 메모리 장치, 캐시 메모리 장치, 동작 메모리 장치 등의 용도로 사용될 수 있다.
본 발명의 실시 예는 향상된 복구 정보 관리 능력 및 에러 검출 능력을 통해 데이터 신뢰성을 더욱 보장하는 데이터 저장 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 메모리 장치 및 상기 메모리 장치로부터 리드된 리드 데이터의 비트 분포에 근거하여 상기 리드 데이터에 대해 제1 에러 감지 동작을 수행하도록 구성된 비트 분포 체크 유닛을 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 메모리 장치로부터 리드된 리드 데이터의 비트 분포에 근거하여 상기 리드 데이터에 대해 제1 에러 감지 동작을 수행하는 단계 및 에러 정정 코드 알고리즘에 근거하여 상기 리드 데이터에 대해 제2 에러 감지 동작을 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 라이트 데이터에 대한 복구 정보를 생성하는 단계 및 상기 라이트 데이터 및 상기 복구 정보를 복수의 메모리 장치들에 저장하는 단계를 포함하되, 상기 복구 정보는 소거 카운트 정보에 근거하여 선택된 지정 메모리 영역에 저장될 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 향상된 복구 정보 관리 능력 및 에러 검출 능력을 통해 데이터 신뢰성을 더욱 보장할 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치를 도시한 도면,
도2는 도1의 ECC 유닛과 비트 분포 체크 유닛이 리드 데이터에 대해 에러 감지 동작을 각각 수행한 결과 및 결과에 대응하는 후속 처리가 정리된 테이블,
도3은 도1에 도시된 제1 메모리 장치를 예시적으로 도시한 블록도,
도4a 및 도4b는 도1의 데이터 저장 장치가 복구 정보를 저장하기 위한 지정 메모리 영역을 선택하는 방법을 예시적으로 설명하기 위한 도면들,
도5는 도1의 데이터 저장 장치가 라이트 데이터 및 복구 정보를 저장하는 방법을 예시적으로 설명하기 위한 순서도,
도6은 도1의 데이터 저장 장치가 라이트 데이터 및 복구 정보를 저장하는 방법을 예시적으로 설명하기 위한 도면,
도7은 도1의 비트 분포 체크 유닛이 에러 감지 동작을 수행하는 방법을 설명하기 위한 순서도이다.
도2는 도1의 ECC 유닛과 비트 분포 체크 유닛이 리드 데이터에 대해 에러 감지 동작을 각각 수행한 결과 및 결과에 대응하는 후속 처리가 정리된 테이블,
도3은 도1에 도시된 제1 메모리 장치를 예시적으로 도시한 블록도,
도4a 및 도4b는 도1의 데이터 저장 장치가 복구 정보를 저장하기 위한 지정 메모리 영역을 선택하는 방법을 예시적으로 설명하기 위한 도면들,
도5는 도1의 데이터 저장 장치가 라이트 데이터 및 복구 정보를 저장하는 방법을 예시적으로 설명하기 위한 순서도,
도6은 도1의 데이터 저장 장치가 라이트 데이터 및 복구 정보를 저장하는 방법을 예시적으로 설명하기 위한 도면,
도7은 도1의 비트 분포 체크 유닛이 에러 감지 동작을 수행하는 방법을 설명하기 위한 순서도이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치(10)를 도시한 도면이다.
데이터 저장 장치(10)는 외부 장치(미도시)의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치(10)는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 외부 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 데이터 저장 장치(10)는 외부 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 외부 장치에 연결될 때 동작할 수 있다.
데이터 저장 장치(10)는 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick), 다양한 멀티 미디어(Multi Media) 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 고체 상태 드라이브(Solid State Drive) 등으로 구성될 수 있다.
데이터 저장 장치(10)는 컨트롤러(100) 및 저장 매체(200)를 포함할 수 있다.
컨트롤러(100)는 프로세서(110), 메모리(120), 에러 정정 코드(Error Correcting Code, ECC) 유닛(130) 및 비트 분포 체크 유닛(140)을 포함할 수 있다.
프로세서(110)는 데이터 저장 장치(10)의 제반 동작을 제어할 수 있다. 프로세서(110)는 메모리(120) 상에서 데이터 저장 장치(10)의 동작을 제어하기 위한 소프트웨어 프로그램을 구동할 수 있다.
프로세서(110)는 저장 매체(200)에 라이트할 데이터(이하, 라이트 데이터)에 대한 복구 정보를 생성할 수 있다. 복구 정보는, 라이트 데이터가 저장 매체(200)에 저장되고 추후에 저장 매체(200)로부터 리드될 때 에러를 포함하는 경우, 에러 정정 동작을 위해서 사용될 수 있다. 예를 들어, 복구 정보는 라이트 데이터에 대한 패리티 데이터를 포함할 수 있다.
프로세서(110)는 생성된 복구 정보가 보다 안전하게 보관되도록, 소거 카운트 정보(125)에 근거하여 선택된 지정 메모리 영역에 저장되도록 제어할 수 있다. 프로세서(110)는 소거 카운트 정보(125)에 근거하여 복구 정보가 저장될 지정 메모리 영역을 선택할 수 있다.
소거 카운트 정보(125)는, 예를 들어, 메모리 장치들(210~240) 각각에 대해 카운트된 소거 카운트들을 포함할 수 있다. 프로세서(110)는 메모리 장치들(210~240) 각각에 대해 카운트된 소거 카운트들을 참조하여, 어느 하나의 메모리 장치를 지정 메모리 영역으로 선택할 수 있다. 다른 예로서, 소거 카운트 정보는 메모리 장치들(210~240)에 포함된 메모리 블록들 각각에 대해 카운트된 소거 카운트들을 포함할 수 있다. 프로세서(110)는 메모리 블록들 각각에 대해 카운트된 소거 카운트들을 참조하여, 어느 하나의 메모리 블록을 지정 메모리 영역으로 선택할 수 있다.
데이터 저장 장치(10)는 소거 카운트 정보(125)를 일정한 단위의 메모리 영역들의 수명 또는 성능을 가늠하는데 사용할 수 있고, 소거 카운트 정보(125)에 근거하여 보다 안전한 메모리 영역에 복구 정보를 저장함으로써 향상된 데이터 신뢰성을 제공할 수 있다.
프로세서(110)는 라이트 데이터 및 생성된 복구 정보가 메모리 장치들(210~240)에 저장되도록 제어할 수 있다. 프로세서(110)는 지정 메모리 영역에 복구 정보가 저장되고, 라이트 데이터가 지정 메모리 영역 이외의 메모리 영역에 저장되도록 제어할 수 있다. 라이트 데이터 및 복구 정보가 저장되는 방법은 도4 및 도5를 통해 상세하게 후술될 것이다.
프로세서(110)는 저장 매체(200)로부터 리드된 데이터(이하, 리드 데이터)에 대한 에러 감지 보고를 비트 분포 체크 유닛(140)으로부터 수신한 경우, 리드 데이터에 대응하는 복구 정보에 근거하여 에러 정정 동작을 수행할 수 있다. 프로세서(110)는 에러 정정 동작을 수행하기 위해 리드 데이터에 대응하는 복구 정보를 저장 매체(200)로부터 리드할 수 있다.
메모리(120)는 프로세서(110)의 동작 메모리, 버퍼 메모리 또는 캐시 메모리 등의 기능을 수행할 수 있다. 메모리(120)는 동작 메모리로서 프로세서(110)에 의해 구동되는 소프트웨어 프로그램 및 각종 프로그램 데이터를 저장할 수 있다. 메모리(120)는 버퍼 메모리로서 외부 장치 및 저장 매체(200) 간에 전송되는 데이터를 버퍼링할 수 있다. 메모리(120)는 캐시 메모리로서 캐시 데이터를 임시 저장할 수 있다. 메모리(120)는 프로세서(110)에 의해 참조될 소거 카운트 정보(125)를 저장할 수 있다.
ECC 유닛(130)은 라이트 데이터 및 프로세서(110)에 의해 생성된 복구 정보가 저장 매체(200)에 저장되기 전에 ECC 알고리즘에 근거하여 인코딩할 수 있다. ECC 유닛(130)은 라이트 데이터 및 복구 정보를 메모리 장치들(210~240) 각각에서 라이트 동작이 수행되는 단위, 예를 들어, 페이지 단위로 제공받을 수 있고, 페이지 단위로 인코딩할 수 있다.
ECC 유닛(130)은 ECC 알고리즘에 근거하여 리드 데이터가 에러를 포함하는지를 판단하기 위한 에러 감지 동작을 수행할 수 있다. ECC 유닛(130)은 리드 데이터가 에러를 포함하는 것으로 판단하는 경우 ECC 알고리즘에 근거하여 리드 데이터를 디코딩함으로써 에러를 자체적으로 정정할 수 있다.
비트 분포 체크 유닛(140)은 리드 데이터의 비트 분포에 근거하여 리드 데이터에 대해 에러 감지 동작을 수행할 수 있다. 구체적으로, 비트 분포 체크 유닛(140)은 리드 데이터의 비트 분포, 즉, "0"과 "1"의 분포에 근거하여 리드 데이터의 편향률을 산출할 수 있다. 비트 분포 체크 유닛(140)은 산출된 편향률이 임계값을 초과하는 경우 리드 데이터가 에러를 포함하는 것으로 판단할 수 있다. 비트 분포 체크 유닛(140)은 판단 결과에 따라 에러 감지 보고를 프로세서(110)로 전달할 수 있다.
편향률은 리드 데이터의 비트 분포가 특정 값으로 편향된 정도를 의미할 수 있다. 편향률은 리드 데이터에서 "0"과 "1"의 분포율들 중 더 높은 값을 의미할 수 있다(이때, "0"과 "1"의 분포율들의 합은 100%이다.). 예를 들어, 리드 데이터 "0000010000"의 편향률은 90%일 것이다. 다른 예로서, 리드 데이터 "1100011111"의 편향률은 70%일 것이다.
즉, 리드 데이터는 임계값을 초과하여 극단적으로 높은 편향률을 나타내는 경우 높은 확률로 에러를 포함할 수 있기 때문에, 비트 분포 체크 유닛(140)은 리드 데이터의 비트 분포에 근거하여 에러 감지 동작을 수행할 수 있다.
ECC 유닛(130)과 비트 분포 체크 유닛(140)은 저장 매체(200)로부터 독출된 리드 데이터를 각각 입력받고, 리드 데이터에 대한 에러 감지 동작을 각각 독립적으로 수행할 수 있다. ECC 유닛(130)과 비트 분포 체크 유닛(140)의 에러 감지 동작은 서로 상호 보완적으로 수행될 수 있다. 예를 들어, 비트 분포 체크 유닛(140)은, 리드 데이터에서 ECC 유닛(130)의 에러 정정 능력을 초과함에 따라 ECC 유닛(130)에 의해 감지되지 못하는 에러를 감지할 수 있다. 따라서, 데이터 저장 장치(10)는 ECC 유닛(130) 만을 사용하여 에러 감지 동작을 수행할 때보다 향상된 에러 감지 능력을 제공할 수 있고, 데이터 신뢰성을 더욱 보장할 수 있다.
도2는 도1의 ECC 유닛(130)과 비트 분포 체크 유닛(140)이 리드 데이터에 대해 에러 감지 동작을 각각 수행한 결과 및 결과에 대응하는 후속 처리가 정리된 테이블을 도시한다. 도2에서 "에러 감지"는 에러 감지 동작을 통해 리드 데이터가 에러를 포함하는 것으로 판단된 경우를 의미한다.
만일 ECC 유닛(130)이 에러를 감지한 경우, ECC 유닛(130)은 ECC 알고리즘에 따라 에러를 정정할 수 있다.
만일 비트 분포 체크 유닛(140)이 에러를 감지한 경우, 비트 분포 체크 유닛(140)으로부터 에러 감지 보고를 전송받은 프로세서(110)는 복구 정보를 사용하여 에러를 정정할 수 있다.
만일 ECC 유닛(130) 및 비트 분포 체크 유닛(140) 모두가 에러를 감지한 경우, ECC 유닛(130)이 ECC 알고리즘에 따라 에러를 정정하거나 프로세서(110)가 복구 정보를 사용하여 에러를 정정할 수 있다.
만일 ECC 유닛(130) 및 비트 분포 체크 유닛(140) 모두가 에러를 감지하지 못한 경우, 프로세서(110)는 리드 데이터를 정상으로 처리할 수 있다.
정리하면, ECC 유닛(130)에 의해 에러가 감지되는 경우 ECC 유닛(130)에 의해 ECC 알고리즘에 따라 자체적으로 에러 정정 동작이 수행될 수 있고, 비트 분포 체크 유닛(140)에 의해 에러가 감지되는 경우 프로세서(110)에 의해 복구 정보를 사용하여 에러 정정 동작이 수행될 것이다.
다시 도1을 참조하면, 저장 매체(200)는 제1 내지 제4 메모리 장치들(210~240)을 포함할 수 있다. 제1 내지 제4 메모리 장치들(210~240)은, 예를 들어, 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory)과 같은 불휘발성 메모리 장치일 수 있다. 도1은 저장 매체(200)가 4개의 메모리 장치들(210~240)을 포함하는 것으로 도시하나, 저장 매체(200)에 포함되는 메모리 장치들(210~240)의 개수는 이에 제한되지 않는다. 제1 내지 제4 메모리 장치들(210~240) 각각은 컨트롤러(100)의 제어에 따라 컨트롤러(100)로부터 전송된 데이터를 라이트하고, 저장된 데이터를 리드하여 컨트롤러(100)로 전송할 수 있다.
도3은 도1에 도시된 제1 메모리 장치(210)를 예시적으로 도시한 블록도이다. 도1에 도시된 제2 내지 제4 메모리 장치들(220~240)은 제1 메모리 장치(210)와 실질적으로 동일하게 구성되고 동작할 수 있다.
제1 메모리 장치(210)는 제어 로직(211), 인터페이스부(212), 어드레스 디코더(213), 데이터 입출력부(214) 및 메모리 영역(215)을 포함할 수 있다.
제어 로직(211)은 컨트롤러(100)의 제어에 따라 제1 메모리 장치(210)의 라이트 동작, 리드 동작 및 소거 동작과 같은 제반 동작들을 제어할 수 있다.
인터페이스부(212)는 컨트롤러(100)와 커맨드, 어드레스를 포함한 각종 제어 신호들 및 데이터를 주고 받을 수 있다. 인터페이스부(212)는 입력된 각종 제어 신호들 및 데이터를 제1 메모리 장치(210)의 내부 유닛들로 전송할 수 있다.
어드레스 디코더(213)는 전송된 로우 어드레스 및 컬럼 어드레스를 디코딩할 수 있다. 어드레스 디코더(213)는 로우 어드레스의 디코딩 결과에 따라 워드 라인들(WL)이 선택적으로 구동되도록 제어할 수 있다. 어드레스 디코더(213)는 컬럼 어드레스의 디코딩 결과에 따라 비트 라인들(BL)이 선택적으로 구동되도록 데이터 입출력부(214)를 제어할 수 있다.
데이터 입출력부(214)는 인터페이스부(212)로부터 전송된 데이터를 비트 라인들(BL)을 통해 메모리 영역(215)으로 전송할 수 있다. 데이터 입출력부(214)는 메모리 영역(215)으로부터 비트 라인들(BL)을 통해 리드된 데이터를 인터페이스부(212)로 전송할 수 있다.
메모리 영역(215)은 워드 라인들(WL)을 통해 어드레스 디코더(213)와 연결될 수 있고, 비트 라인들(BL)을 통해 데이터 입출력부(214)와 연결될 수 있다. 메모리 영역(215)은, 예를 들어, 3차원 구조의 메모리 셀 어레이를 포함할 수 있다. 메모리 영역(215)은 복수의 메모리 블록들(B1~Bk)을 포함할 수 있다. 메모리 블록들(B1~Bn) 각각은 복수의 페이지들(예를 들어, P1~Pn)을 포함할 수 있다.
제1 메모리 장치(210)는 메모리 블록 단위로 소거 동작을 수행할 수 있다. 제1 메모리 장치(210)는 페이지 단위로 라이트 동작 또는 리드 동작을 수행할 수 있다. 소거된 프리 메모리 블록에 포함된 페이지들은 라이트 순서에 따라 라이트될 수 있다. 라이트 순서는 오프셋 값에 따라 부여된 페이지 번호 순서일 수 있다.
도4a 및 도4b는 도1의 데이터 저장 장치(10)가 복구 정보를 저장하기 위한 지정 메모리 영역을 선택하는 방법을 예시적으로 설명하기 위한 도면들이다.
도4a는 메모리 장치들(210~240) 각각에 대해 카운트된 소거 카운트들을 예시적으로 도시한다. 프로세서(110)는 메모리 장치들(210~240) 각각에 대해 카운트된 소거 카운트들을 참조하여, 가장 작은 소거 카운트를 가진 메모리 장치(예를 들어, 제2 메모리 장치(220))를 복구 정보가 저장될 지정 메모리 영역으로 선택할 수 있다.
도4b는 메모리 장치들(210~240) 각각에 포함된 프리 메모리 블록들(B1~B4) 각각에 대해 카운트된 소거 카운트들을 예시적으로 도시한다. 프로세서(110)는 메모리 블록들(B1~B4) 각각에 대해 카운트된 소거 카운트들을 참조하여, 가장 작은 소거 카운트를 가진 메모리 블록(예를 들어, 제3 메모리 블록(B3))을 지정 메모리 영역으로 선택할 수 있다.
프로세서(110)는, 예를 들어, 선택된 지정 메모리 영역에 복구 정보가 저장될 공간이 더 이상 없는 경우에 지정 메모리 영역을 새롭게 선택할 수 있다. 다른 예로서, 프로세서(110)는, 주기적인 시간마다 지정 메모리 영역을 새롭게 선택할 수 있다.
도5 및 도6은 도1의 데이터 저장 장치(10)가 라이트 데이터(WD) 및 복구 정보(RC)를 저장하는 방법을 예시적으로 설명하기 위한 순서도 및 도면이다. 도6에서, 데이터 저장 장치(10)는 메모리 장치들(210~240) 각각에 대해 카운트된 소거 카운트들에 근거하여 제2 메모리 장치(220)를 지정 메모리 영역으로 선택한 것으로 가정한다.
S110 단계에서, 프로세서(110)는 라이트 데이터(WD)에 대한 복구 정보(RC)를 생성할 수 있다. 예를 들어, 프로세서(110)는 메모리(120) 상에서 라이트 데이터(WD)에 대한 복구 정보(RC)를 생성할 수 있다. 프로세서(110)는 복구 정보(RC)를 페이지 단위로 생성할 수 있다. 복구 정보(RC)는 라이트 데이터(WD)에 대한 패리티 데이터를 포함할 수 있다. 프로세서(110)는, 예를 들어, 메모리 장치들(210~240)에 인터리빙 방식으로 라이트 동작을 수행할 수 있는
S120 단계에서, 프로세서(110)는 라이트 데이터(WD) 및 복구 정보(RC)가 메모리 장치들(210~240)에 저장되도록 제어할 수 있다. 이때, 복구 정보(RC)는 지정 메모리 영역(220)에 저장되고, 라이트 데이터(WD)는 지정 메모리 영역 이외의 메모리 영역에 저장될 수 있다. 예를 들어, 라이트 데이터(WD)는 페이지 단위로 분할될 수 있고, 분할된 라이트 데이터(WD1~WD3)는 메모리 장치들(210, 230, 240) 각각에 저장될 수 있다. 라이트 데이터(WD) 및 복구 정보(RC)는 메모리 블록들에서 서로 동일한 오프셋 값을 가진 페이지들(예를 들어, 메모리 장치들(210~240) 각각의 제1 페이지(P1))에 저장될 수 있다. 라이트 데이터(WD) 및 복구 정보(RC)는 ECC 유닛(130)에 의해 인코딩된 후 메모리 장치들(210~240) 각각에 저장될 수 있다.
도7은 도1의 비트 분포 체크 유닛(140)이 에러 감지 동작을 수행하는 방법을 설명하기 위한 순서도이다.
S210 단계에서, 비트 분포 체크 유닛(140)은 저장 매체(200)로부터 리드된 리드 데이터를 입력받을 수 있다.
S220 단계에서, 비트 분포 체크 유닛(140)은 리드 데이터의 비트 분포에 근거하여 편향률을 산출할 수 있다. 편향률은 리드 데이터의 비트 분포가 특정 값으로 편향된 정도를 의미할 수 있다. 편향률은 리드 데이터에서 "0"과 "1"의 분포율들 중 더 높은 값을 의미할 수 있다.
S230 단계에서, 비트 분포 체크 유닛(140)은 리드 데이터의 편향률이 임계값을 초과하는지 여부를 판단할 수 있다. 리드 데이터의 편향률이 임계값을 초과하는 것으로 판단되는 경우, 절차는 S240 단계로 진행될 수 있다. 리드 데이터의 편향률이 임계값을 초과하지 않는 것으로 판단되는 경우, 절차는 종료할 수 있다.
S240 단계에서, 비트 분포 체크 유닛(140)은 프로세서(110)로 에러 감지 보고를 전송할 수 있다. 이후, 프로세서(110)는 에러 감지 보고에 응답하여, 리드 데이터에 대응하는 복구 정보를 리드하고 리드 데이터에 대해 에러 정정 동작을 수행할 것이다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 데이터 저장 장치
100 : 컨트롤러
110 : 프로세서
120 : 메모리
125 : 소거 카운트 정보
130 : ECC 유닛
140 : 비트 분포 체크 유닛
200 : 저장 매체
210~240 : 메모리 장치
100 : 컨트롤러
110 : 프로세서
120 : 메모리
125 : 소거 카운트 정보
130 : ECC 유닛
140 : 비트 분포 체크 유닛
200 : 저장 매체
210~240 : 메모리 장치
Claims (17)
- 메모리 장치; 및
상기 메모리 장치로부터 리드된 리드 데이터의 비트 분포에 근거하여 상기 리드 데이터에 대해 제1 에러 감지 동작을 수행하도록 구성된 비트 분포 체크 유닛을 포함하는 데이터 저장 장치. - 제1항에 있어서,
에러 정정 코드(ECC) 알고리즘에 근거하여 상기 리드 데이터에 대해 제2 에러 감지 동작을 수행하도록 구성된 ECC 유닛을 더 포함하는 데이터 저장 장치. - 제2항에 있어서,
상기 비트 분포 체크 유닛과 상기 ECC 유닛은 상기 리드 데이터에 대해 상기 제1 및 제2 에러 감지 동작을 각각 독립적으로 수행하는 데이터 저장 장치. - 제1항에 있어서,
상기 비트 분포 체크 유닛은 상기 비트 분포에 근거하여 상기 리드 데이터의 편향률을 산출하고, 상기 편향률이 임계값을 초과하는 경우 상기 리드 데이터가 에러를 포함하는 것으로 판단하는 데이터 저장 장치. - 제1항에 있어서,
상기 비트 분포 체크 유닛의 상기 제1 에러 감지 동작의 수행 결과에 따라, 상기 리드 데이터에 대응하는 패리티 데이터에 근거하여 상기 리드 데이터에 대해 에러 정정 동작을 수행하도록 구성된 프로세서를 더 포함하는 데이터 저장 장치. - 메모리 장치로부터 리드된 리드 데이터의 비트 분포에 근거하여 상기 리드 데이터에 대해 제1 에러 감지 동작을 수행하는 단계; 및
에러 정정 코드 알고리즘에 근거하여 상기 리드 데이터에 대해 제2 에러 감지 동작을 수행하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제6항에 있어서,
상기 제1 및 제2 에러 감지 동작은 각각 독립적으로 수행되는 데이터 저장 장치의 동작 방법. - 제6항에 있어서,
상기 제1 에러 감지 동작을 수행하는 단계는,
상기 비트 분포에 근거하여 상기 리드 데이터의 편향률을 산출하는 단계; 및
상기 편향률이 임계값을 초과하는 경우 상기 리드 데이터가 에러를 포함하는 것으로 판단하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제6항에 있어서,
상기 제1 에러 감지 동작의 수행 결과에 따라, 상기 리드 데이터에 대응하는 패리티 데이터에 근거하여 상기 리드 데이터에 대해 제1 에러 정정 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 제6항에 있어서,
상기 제2 에러 감지 동작의 수행 결과에 따라, 상기 에러 정정 코드 알고리즘에 근거하여 상기 리드 데이터에 대해 제2 에러 정정 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 라이트 데이터에 대한 복구 정보를 생성하는 단계; 및
상기 라이트 데이터 및 상기 복구 정보를 복수의 메모리 장치들에 저장하는 단계를 포함하되,
상기 복구 정보는 소거 카운트 정보에 근거하여 선택된 지정 메모리 영역에 저장되는 데이터 저장 장치의 동작 방법. - 제11항에 있어서,
상기 복수의 메모리 장치들 각각에 대해 카운트된 소거 카운트들 중 가장 작은 소거 카운트를 가진 메모리 장치를 상기 지정 메모리 영역으로 선택하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 제12항에 있어서,
상기 라이트 데이터는 상기 지정 메모리 영역으로 선택된 메모리 장치 이외의 메모리 장치들에 저장되는 데이터 저장 장치의 동작 방법. - 제11항에 있어서,
상기 복수의 메모리 장치들 각각에서 프리 메모리 블록을 선택하는 단계; 및
선택된 프리 메모리 블록들 각각에 대해 카운트된 소거 카운트들 중 가장 작은 소거 카운트를 가진 프리 메모리 블록을 상기 지정 메모리 영역으로 선택하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 제14항에 있어서,
상기 라이트 데이터는 상기 지정 메모리 영역으로 선택된 프리 메모리 블록 이외의 프리 메모리 블록들 각각에 페이지 단위로 분할되어 저장되는 데이터 저장 장치의 동작 방법. - 제14항에 있어서,
상기 라이트 데이터 및 상기 복구 정보는 상기 선택된 프리 메모리 블록들에서 서로 동일한 오프셋 값을 가진 페이지들에 저장되는 데이터 저장 장치의 동작 방법. - 제11항에 있어서,
상기 복수의 메모리 장치들에 포함된 메모리 블록들 각각에 대해 카운트된 소거 카운트들 중 가장 작은 소거 카운트를 가진 메모리 블록을 상기 지정 메모리 영역으로 선택하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140160064A KR20160059050A (ko) | 2014-11-17 | 2014-11-17 | 데이터 저장 장치 및 그것의 동작 방법 |
US14/631,389 US9619323B2 (en) | 2014-11-17 | 2015-02-25 | Data storage device and operating method thereof |
CN201510232815.7A CN106201761A (zh) | 2014-11-17 | 2015-05-08 | 数据储存装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140160064A KR20160059050A (ko) | 2014-11-17 | 2014-11-17 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160059050A true KR20160059050A (ko) | 2016-05-26 |
Family
ID=55961778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140160064A KR20160059050A (ko) | 2014-11-17 | 2014-11-17 | 데이터 저장 장치 및 그것의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9619323B2 (ko) |
KR (1) | KR20160059050A (ko) |
CN (1) | CN106201761A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678633B2 (en) | 2017-11-30 | 2020-06-09 | SK Hynix Inc. | Memory system and operating method thereof |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11119850B2 (en) * | 2018-06-29 | 2021-09-14 | International Business Machines Corporation | Determining when to perform error checking of a storage unit by using a machine learning module |
GB201905209D0 (en) * | 2019-04-12 | 2019-05-29 | Vaion Ltd | Method of strong items of data |
KR20220058224A (ko) * | 2020-10-30 | 2022-05-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20031260A (fi) * | 2003-09-04 | 2005-03-05 | Nokia Corp | Median suoratoisto palvelimelta asiakaslaitteelle |
US7685496B2 (en) * | 2003-11-14 | 2010-03-23 | Hitachi, Ltd. | Data transmission method and data transmission device for transmitting data through a transmission line that is integrated with a plurality of links |
KR100871206B1 (ko) * | 2004-12-22 | 2008-12-01 | 삼성전자주식회사 | 리드-솔로몬 부호의 복호 장치 및 방법 |
CN100483539C (zh) * | 2006-03-10 | 2009-04-29 | 清华大学 | 一种降低集成电路中存储器功耗的方法 |
JP4461170B2 (ja) * | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
US8578247B2 (en) * | 2008-05-08 | 2013-11-05 | Broadcom Corporation | Bit error management methods for wireless audio communication channels |
US8484542B2 (en) | 2011-02-08 | 2013-07-09 | Sandisk Technologies Inc. | Data recovery using additional error correction coding data |
KR101941270B1 (ko) | 2012-01-03 | 2019-04-10 | 삼성전자주식회사 | 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 |
US20140089560A1 (en) * | 2012-09-25 | 2014-03-27 | Adesto Technologies Corporation | Memory devices and methods having write data permutation for cell wear reduction |
US9369150B2 (en) * | 2014-07-29 | 2016-06-14 | Freescale Semiconductor, Inc. | Data storage device and method for protecting a data item against unauthorized access |
-
2014
- 2014-11-17 KR KR1020140160064A patent/KR20160059050A/ko not_active Application Discontinuation
-
2015
- 2015-02-25 US US14/631,389 patent/US9619323B2/en active Active
- 2015-05-08 CN CN201510232815.7A patent/CN106201761A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678633B2 (en) | 2017-11-30 | 2020-06-09 | SK Hynix Inc. | Memory system and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20160139984A1 (en) | 2016-05-19 |
US9619323B2 (en) | 2017-04-11 |
CN106201761A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11854596B2 (en) | Data storage device and operating method thereof | |
US9678827B2 (en) | Access counts for performing data inspection operations in data storage device | |
TWI566252B (zh) | 非揮發性記憶體裝置進行耗損管理之方法 | |
US11094364B2 (en) | Data storage device and operating method thereof | |
KR102378541B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20160074237A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11010289B2 (en) | Data storage device and operating method thereof | |
KR102513505B1 (ko) | 비휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치의 동작 방법 | |
US10747660B2 (en) | Method and system for forming and using memory superblocks based on performance grades | |
US11810627B2 (en) | Selective read disturb sampling | |
US9619323B2 (en) | Data storage device and operating method thereof | |
KR20160024550A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20160071703A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20170018315A1 (en) | Test system and test method | |
US9064569B1 (en) | Memory controller with resistive random access memory (ReRAM) | |
US11188485B2 (en) | Memory system and operating method thereof | |
US10838766B2 (en) | Memory system and operating method thereof | |
US20160322087A1 (en) | Data storage device and operating method thereof | |
KR102246843B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20150122493A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102527288B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20160056446A (ko) | 데이터 저장 장치 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |