KR20100104623A - 데이터 처리 시스템 및 그것의 부호율 제어 스킴 - Google Patents
데이터 처리 시스템 및 그것의 부호율 제어 스킴 Download PDFInfo
- Publication number
- KR20100104623A KR20100104623A KR1020090023167A KR20090023167A KR20100104623A KR 20100104623 A KR20100104623 A KR 20100104623A KR 1020090023167 A KR1020090023167 A KR 1020090023167A KR 20090023167 A KR20090023167 A KR 20090023167A KR 20100104623 A KR20100104623 A KR 20100104623A
- Authority
- KR
- South Korea
- Prior art keywords
- code rate
- storage area
- accessed
- data
- code
- Prior art date
Links
Images
Classifications
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/618—Shortening and extension of codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/13—Linear codes
-
- 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/353—Adaptation to the channel
-
- 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/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6356—Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
-
- 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/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
여기에 제공되는 데이터 처리 시스템은 복수의 저장 영역들을 갖는 메모리와; 설정된 부호율에 따라 액세스된 저장 영역으로부터 읽혀진 데이터를 복호화하도록 구성된 부호화 및 복호화 블록과; 그리고 상기 복수의 저장 영역들 각각에 대응하는 부호율들을 가지며, 상기 복수의 저장 영역들 중 액세스될 저장 영역에 대응하는 부호율로 상기 부호화 및 복호화 블록을 설정하도록 구성된 부호율 제어 블록을 포함한다.
Description
본 발명은 데이터 처리 시스템에 관한 것으로, 좀 더 구체적으로는 데이터 처리 시스템 및 그것의 부호율 제어 스킴에 관한 것이다.
디지털 정보가 전송되거나 기록되거나 재생될 때, 몇몇 예들에 있어서, 다양한 원인들로 인해 디지털 정보에 부분적으로 오류들이 생길 수 있다. 그러한 오류들을 검출하고 임의의 검출된 오류를 정정하기 위해서 오류 검출 부호(error detecting code) 또는 오류 정정 부호(error correction code)를 이용하는 기술들이 잘 알려져 있다. 오류 검출 부호와 오류 정정 부호 사이에는 기본적으로 차이점이 없으며, 오류 검출 부호와 오류 정정 부호는 일괄하여 오류 제어 부호(error control code)라 불릴 것이다. 마찬가지로, 오류 검출 및 오류 정정은 일괄하여 오류 제어(error control)라 불릴 것이다.
오류 제어 부호들을 이용하여 디지털 정보를 전송하거나 기록함에 있어서, 예를 들면, m-비트 오류 제어 정보(리던던트 비트들)가 k-비트 디지털 정보(정보 비트들)에 부가되어 (k+m)-비트 부호어(codeword)가 생성되며, 그 다음에 그렇게 생성된 부호어는 채널로 전송된다. 부호어의 전송 목적지에서, 부호어에 포함된 리던던트 비트들을 이용하여 오류 검출 그리고/또는 오류 정정이 행해진다. 부호어를 생성하는 과정은 부호화(encoding)라 불리고, 부호어에 의거한 오류 검출 그리고/또는 오류 정정은 복호화(decoding)라 불린다. 디지털 정보의 부호화는 디지털 정보를 기초로 하여 디지털 정보에 포함되는 오류들을 검출/정정할 목적으로 리던던트 비트들(이후, ECC 패리티 데이터라 칭함)을 생성하고 ECC 패리티 데이터를 디지털 정보에 부가하는 과정이다. 부호화 이전의 데이터(디지털 정보)는 일반적으로 "메세지"라 불린다. 부호화 다음의 데이터(부가된 ECC 패리티 데이터를 갖는 디지털 정보)는 일반적으로 "부호어"라 불린다.
디지털 정보의 전송 또는 기록 동안 신뢰성(reliability)를 더 향상시킬 목적으로, 높은 오류 정정/오류 검출 능력을 갖는 오류 제어 부호들(예를 들면, 낮은 부호율을 갖는 오류 제어 부호들)을 이용하는 것이 바람직하다. 하지만, 높은 오류 정정/오류 검출 능력을 갖는 부호들이 사용되는 경우, 리던던트 비트들의 비트 길이가 더 길어지는 경향이 있고, 정보 전송 효율이 나빠지는 경향이 있다. 게다가, 데이터가 전송되는 채널의 특성에 관계없이 일정한 부호율이 사용되기 때문에 오류 제어 부호화의 오버헤드를 최적화하는 것이 어렵다.
본 발명은 오류 제어 부호화의 오버헤드를 최적화할 수 있는 데이터 처리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 신뢰성을 향상시킬 수 있는 데이터 처리 시스템을 제공하는 것이다.
예시적인 실시예들은 복수의 저장 영역들을 갖는 메모리와; 설정된 부호율에 따라 액세스된 저장 영역으로부터 읽혀진 데이터를 복호화하도록 구성된 부호화 및 복호화 블록과; 그리고 상기 복수의 저장 영역들 각각에 대응하는 부호율들을 가지며, 상기 복수의 저장 영역들 중 액세스될 저장 영역에 대응하는 부호율로 상기 부호화 및 복호화 블록을 설정하도록 구성된 부호율 제어 블록을 포함하는 데이터 처리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 부호율 제어 블록은 상기 액세스된 저장 영역으로부터 읽혀진 데이터와 상기 부호화 및 복호화 블록에 의해서 복호화된 데이터에 의해서 결정된 비트 오류율에 따라 상기 액세스된 저장 영역에 대응하는 부호율을 변경한다.
예시적인 실시예에 있어서, 상기 비트 오류율이 기준값보다 큰 경우, 상기 부호율 제어 블록은 이전의 부호율보다 낮아지도록 상기 액세스된 저장 영역의 부호율을 변경한다.
예시적인 실시예에 있어서, 상기 복수의 저장 영역들에 각각 대응하는 부호율들은 상기 데이터 처리 시스템의 사용 초기에 가장 높은 부호율을 갖도록 설정된다.
예시적인 실시예에 있어서, 상기 액세스된 저장 영역의 부호율이 변경되면, 상기 액세스된 저장 영역의 데이터는 상기 변경된 부호율에 의거하여 재 프로그램된다.
예시적인 실시예에 있어서, 상기 부호화 및 복호화 블록은 단일 부호를 이용하여 부호화/복호화 동작을 수행하거나 2개의 다른 부호들을 이용하여 부호화/복호화 동작을 수행한다.
예시적인 실시예에 있어서, 상기 부호율 제어 블록은, 쓰기 요청시, 상기 복수의 저장 영역들 중 액세스될 저장 영역에 대응하는 부호율로 상기 부호화 및 복호화 블록을 설정하고, 상기 부호화 및 복호화 블록은 상기 설정된 부호율에 따라 저장될 데이터를 부호화한다.
예시적인 실시예에 있어서, 상기 메모리에 대한 소거 동작이 요청될 때, 상기 부호율 제어 블록은 상기 복수의 저장 영역들 중 액세스될 저장 영역의 채널 상태 정보에 의거하여 상기 액세스될 저장 영역의 부호율을 변경한다.
예시적인 실시예에 있어서, 상기 채널 상태 정보로서 상기 액세스될 저장 영역의 프로그램/소거 횟수가 기준값을 초과할 때, 상기 부호율 제어 블록은 이전의 부호율보다 낮아지도록 상기 액세스될 저장 영역의 부호율을 변경한다.
예시적인 실시예에 있어서, 상기 채널 상태 정보는 프로그램/소거 횟수, 사용 시간, 읽기 요청시 오류 제어 부호의 복호 과정을 통해 얻은 읽기 후 오류 빈도, 그리고 데이터 보관 용도 중 하나를 포함한다.
예시적인 실시예에 있어서, 상기 부호화 및 복호화 블록은 단일의 코덱 구조를 갖는다.
다른 예시적인 실시예들은 복수의 저장 영역들을 갖는 메모리와; 상기 복수의 저장 영역들 각각에 대응하는 부호율들을 저장하는 부호율 저장부와; 액세스될 저장 영역의 어드레스 정보에 의거하여 상기 부호율들 중 하나를 선택하는 채널 상태 정보 결정부와; 그리고 상기 선택된 부호율에 따라, 상기 액세스될 저장 영역으로부터 읽혀진 데이터를 복호화하도록 구성된 부호화 및 복호화 블록을 포함하는 데이터 처리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 채널 상태 정보 결정부는 상기 읽혀진 데이터와 상기 복호화된 데이터에 의거하여 비트 오류율을 결정하고, 상기 결정된 비트 오류율에 따라 상기 액세스될 저장 영역에 대응하는 그리고 상기 부호율 저장부에 저장된 부호율을 변경한다.
예시적인 실시예에 있어서, 상기 액세스될 저장 영역의 부호율이 변경되면, 상기 액세스될 저장 영역의 데이터는 상기 변경된 부호율에 의거하여 재 프로그램된다.
예시적인 실시예에 있어서, 상기 메모리에 대한 소거 동작이 요청될 때, 상기 채널 상태 정보 결정부는 상기 복수의 저장 영역들 중 액세스될 저장 영역의 프로그램/소거 횟수가 기준값보다 큰 지의 여부에 따라 상기 액세스될 저장 영역의 부호율을 변경한다.
예시적인 실시예에 있어서, 데이터 처리 시스템은 상기 선택된 부호율로 상기 부호화 및 복호화 블록을 설정하는 부호율 변경부를 더 포함한다.
예시적인 실시예에 있어서, 상기 복수의 저장 영역들 각각은 메모리 블록, 페이지, 섹터, 칩, 그리고 레이어 중 어느 하나에 대응한다.
또 다른 예시적인 실시예들은 복수의 저장 영역들을 갖는 메모리를 포함하는 데이터 처리 시스템의 동작 방법을 제공하며, 동작 방법은 읽기 동작이 요청될 때 상기 복수의 저장 영역들 각각에 대응하는 부호율들로부터 액세스될 저장 영역에 대응하는 부호율을 선택하고, 상기 액세스될 저장 영역으로부터 읽혀진 데이터를 상기 선택된 부호율로 복호화하고, 상기 읽혀진 데이터와 상기 복호화된 데이터에 의거하여 비트 오류율을 결정하고, 상기 결정된 비트 오류율에 의거하여 상기 액세스될 저장 영역의 부호율을 선택적으로 변경하는 것을 포함한다.
예시적인 실시예에 있어서, 동작 방법은 상기 액세스될 저장 영역의 부호율이 변경될 때, 상기 변경된 부호율에 의거하여 상기 액세스될 저장 영역의 데이터를 재 프로그램하는 것을 더 포함한다.
예시적인 실시예에 있어서, 동작 방법은 소거 동작이 요청될 때, 액세스될 저장 영역의 프로그램/소거 횟수가 기준값을 초과하였는 지의 여부를 판별하는 것을 더 포함하며, 상기 액세스될 저장 영역의 부호율은 상기 액세스될 저장 영역의 프로그램/소거 횟수가 기준값을 초과하는 것으로 판별될 때 변경된다.
예시적인 실시예에 있어서, 동작 방법은 프로그램 동작이 요청될 때 상기 복수의 저장 영역들 각각에 대응하는 부호율들로부터 액세스될 저장 영역에 대응하는 부호율을 선택하고, 상기 액세스될 저장 영역에 저장될 데이터를 상기 선택된 부호율로 부호화하는 것을 더 포함한다.
예시적인 실시예들에 따르면, 메모리와 같은 채널의 특성에 따라 단일의 ECC 코덱의 부호율을 가변시킴으로써 오류 제어 부호화의 오버헤드를 최적화하는 것이 가능하며, 그 결과 데이터 처리 시스템의 신뢰성이 향상될 것이다.
이하, 예시적인 실시예들에 따른 데이터 처리 시스템이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 1은 예시적인 실시예에 따른 데이터 처리 시스템을 보여주는 블록도이다.
도 1을 참조하면, 예시적인 실시예에 따른 데이터 처리 시스템은 저장 매체(storage media)로서 메모리(1000) 그리고 메모리(100)를 제어하도록 구성된 제어기(2000)를 포함한다. 메모리(1000)는 플래시 메모리, DRAM, PRAM, FRAM, MRAM, 등을 포함할 것이다. 메모리(1000)는 제어기(2000)로부터 데이터를 입력받고 입력된 데이터를 제어기(2000)로 출력하기 위한 채널로서 사용될 것이다. 메모리(1000)에는, 비록 도면에는 도시되지 않았지만, 저장 소자들이 제공될 것이다. 각 저장 소자는 단일-비트 데이터 또는 멀티-비트/멀티-레벨 데이터를 저장할 것이다. 메모리(1000)의 저장 소자들은 2차원 어레이 구조 또는 3차원 어레이 구조를 갖도록 배열될 것이다.
앞서 언급된 메모리(1000)는 반도체 메모리에 국한되지 않을 것이다. 예를 들면, 메모리(1000)는 광 디스크, 자기 디스크, 등을 포함할 것이다. 메모리(1000)를 이용한 채널은 무선 채널, 유선 채널, 등으로 구성될 수도 있다.
계속해서 도 1을 참조하면, 제어기(2000)는 외부(예를 들면, 호스트)로부터 쓰기/프로그램 동작이 요청될 때 메모리(1000)에 데이터를 저장하도록 그리고 외부로부터 읽기 동작이 요청될 때 메모리(1000)로부터 데이터를 읽도록 구성될 것이다. 제어기(2000)는 호스트 인터페이스(2100), 메모리 인터페이스(2200), 처리 유니트(2300), 버퍼 메모리(2400), ECC 부호화 및 복호화 블록(2500), 그리고 부호율 제어 블록(2600)을 포함한다.
호스트 인터페이스(2100)는 외부(예를 들면, 호스트)와 인터페이스하도록 구성될 것이다. 예를 들면, 호스트 인터페이스(2100)는 ATA, SATA, PATA, USB, SCSI, ESDI, 그리고 IDE 인터페이스와 같은 표준 인터페이스(standardized interface) 또는 노어 인터페이스에 의해서 외부와 연결될 수 있다. 메모리 인터페이스(2200)는 메모리(1000)와 인터페이스하도록 구성될 것이다. 여기서, 호스트 인터페이스(2100) 및 메모리 인터페이스(2200)가 채널로서 기능하는 메모리(1000)에 따라 그리고 호스트에 따라 다양하게 변경될 수 있음은 잘 이해될 것이다. 처리 유니트(2300)는 제어기(2300)의 동작을 전반적으로 제어한다. ECC 부호화 및 복호화 블록(2500)은 메모리(1000)에 저장될 데이터를 부호화하도록 그리고 메모리(1000)로부터 읽혀진 데이터를 복호화하도록 구성될 것이다.
예시적인 실시예에 따른 ECC 부호화 및 복호화 블록(2500)의 부호율(code rate)은 데이터 처리 시스템의 특성 그리고/또는 메모리(1000)의 상태(또는, 메모리로 구성된 채널의 상태)에 따라 부호율 제어 블록(2600)에 의해서 가변된다. 부호율의 변경은, 예를 들면, 프로그램/소거 횟수와 같은 웨어-레벨링 정보(wear-leveling information), 비트 오류율(Bit Error Rate:BER), 사용 시간, 읽기 요청시 오류 제어 부호의 복호 과정을 통해 읽기 후 오류 빈도, 등에 의거하여 행해질 것이다. 하지만, 부호율의 변경이 웨어-레벨링 정보에 국한되지 않음은 이해될 것이다. 여기서, 부호율은 ECC 부호화 및 복호화 블록(2500)에 의해서 부호화된 부호어의 비트 길이(C) 그리고 부호어에 속한 메세지의 비트 길이(M)에 의해서 결정된다. 즉, 부호율(R)은 M/C에 의해서 결정될 것이다.
부호율 제어 블록(2600)은, 이후 설명되는 바와 같이, 메모리(1000)의 저장 영역들(예를 들면, 메모리 블록, 페이지, 섹터, 또는 칩에 각각 대응하는 영역들)에 각각 대응하는 부호율들을 저장하도록 구성될 것이다. 부호율들은 비트 오류율과 웨어-레벨링 정보에 따라 부호율 제어 블록(2600)에 의해서 갱신될 것이다. 부호율 제어 블록(2600)은 메모리(1000)에 대한 프로그램 동작이 외부로부터 요청될 때 액세스될 저장 영역의 부호율을 선택하고, 선택된 부호율로 ECC 부호화 및 복호화 블록(2500)을 설정한다. ECC 부호화 및 복호화 블록(2500)은 선택된 부호율에 따라 데이터를 부호화한다. 부호율 제어 블록(2600)은 메모리(1000)에 대한 읽기 동작이 외부로부터 요청될 때 액세스될 저장 영역의 부호율을 선택하고, 선택된 부호율로 ECC 부호화 및 복호화 블록(2500)을 설정한다. ECC 부호화 및 복호화 블록(2500)은 선택된 부호율에 따라 데이터를 복호화한다.
앞서 설명된 바와 같이, ECC 부호화 및 복호화 블록(2500)의 부호율을 메모리 상태(또는 데이터 처리 시스템의 상태)에 따라 변경함으로써 에러 제어 부호화의 오버헤드를 최적화하는 것이 가능하다. 또한, 최적의 에러 제어 부호화를 통해 데이터 처리 시스템의 신뢰성이 향상될 수 있다.
도 2는 도 1에 도시된 ECC 부호화 및 복호화 블록 및 부호율 제어 블록을 개략적으로 보여주는 블록도이고, 도 3은 예시적인 실시예들에 따른 ECC 부호화 및 복호화 블록을 개략적으로 보여주는 블록도이다.
먼저 도 2를 참조하면, ECC 부호화 및 복호화 블록(2500)은 ECC 부호기(2510) 및 ECC 복호기(2520)를 포함한다. ECC 부호기(2510)는 호스트로부터 제공되는 데이터를 부호화하여 부호어를 생성하고, 그렇게 생성된 부호어를 메모리(1000)로 출력한다. ECC 부호기(2510)의 부호율은 부호율 제어 블록(2600)에 의해서 설정될 것이다. ECC 복호기(2520)는 메모리(1000)로부터 읽혀진 데이터를 복호화하고, 복호화된 데이터를 호스트로 출력한다. ECC 복호기(2510)의 부호율은 부호율 제어 블록(2600)에 의해서 설정될 것이다.
예시적인 실시예에 있어서, ECC 부호기(2510)는 단일 부호를 이용하여 데이터를 부호화하거나 2개의 다른 부호들을 이용하여 데이터를 부호화하도록 구성될 수 있다. 단일 부호를 이용하여 데이터를 부호화하는 경우, 도 3a에 도시된 바와 같이, ECC 부호기(2510)는 하나의 부호기로 구성될 것이다. 마찬가지로, 단일 부호를 이용하여 데이터를 복호화하는 경우, 도 3a에 도시된 바와 같이, ECC 복호기(2520)는 하나의 복호기로 구성될 것이다. 이에 반해서, 2개의 다른 부호들을 이용하여 데이터를 부호화하는 방식(연접 부호화 방식(concatenated coding manner)이라 불림)이 사용될 수 있다. 연접 부호화 방식을 채용하는 경우, 도 3b에 도시된 바와 같이, ECC 부호기(2510)는 외부 부호를 이용하여 외부 부호어를 생성하는 외부 부호기(outer encoder)와 내부 부호를 이용하여 내부 부호어를 생성하는 내부 부호기(inner encoder)로 구성될 것이다. 이러한 경우, 외부 부호기의 부호율과 내부 부호기의 부호율은 부호율 제어 블록(2600)에 의해서 개별적으로 설정될 것이다. ECC 부호기(2510)가 연접 부호화 방식을 이용하는 경우, 도 3b에 도시된 바와 같이, ECC 복호기(2520) 역시 내부 복호기와 외부 복호기로 구성될 것이다. ECC 부호기(2510)와 마찬가지로, 외부 복호기의 부호율과 내부 복호기의 부호율은 부호율 제어 블록(2600)에 의해서 개별적으로 설정될 것이다.
다시 도 2를 참조하면, 부호율 제어 블록(2600)은 부호율 저장부(2610), 채널 상태 정보(Channel Status Information:CSI) 결정부(2620), 그리고 부호율 변환기(2630)를 포함한다. 부호율 저장부(2610)는 메모리(1000)의 저장 영역들(예를 들면, 메모리 블록들, 페이지들, 섹터들, 칩들, 레이어들(3D 어레이 구조), 등에 대응함)에 대응하는 부호율들을 저장하는 데 사용된다. 부호율 저장부(2610)는 휘발성 또는 불 휘발성 메모리로 구성될 수 있다. 부호율 저장부(2610)가 휘발성 메모리로 구성되는 경우, 부호율 저장부(2610)의 부호율들은, 예를 들면, 메모리(1000)에 저장될 것이다. 메모리(1000)에 저장된 부호율들은 파워-업시 부호율 저장부(2610)에 로드될 것이다. 부호율 저장부(2610)는 도 1의 버퍼 메모리(2400)의 일부로 구성되거나 별도의 메모리로 구성될 수 있다.
CSI 결정부(2620)는 채널 상태 정보(Channel Status Information:CSI)와 비트 오류율(BER)에 따라 부호율 저장부(2610)에 저장된 저장 영역들의 부호율들을 관리하도록 구성될 것이다. 부호율들의 관리는 다음과 같이 행해질 것이다.
기본적으로, 부호율 저장부(2610)에 저장된 부호율들은 디폴트 값으로서 가 장 높은 부호율로 설정될 것이다. 이후, 부호율 저장부(2610)에 저장된 부호율들은 채널 상태 정보(CSI), 비트 오류율(BER), 저장 영역의 사용 시간, 읽기 요청시 오류 제어 부호의 복호 과정을 통해 읽기 후 오류 빈도, 그리고 그와 같은 것에 따라 가변될 것이다. 채널 상태 정보는 파워-업시 메모리(1000)에서 버퍼 메모리(2400)로 로드된다. 버퍼 메모리(2400)에 로드된 채널 상태 정보는 처리 유니트(2300)에 의해서 관리되며, 저장 영역들의 부호율들을 관리하는 CSI 결정부(2620)에 의해서 참조될 것이다. 메모리(1000)에 대한 프로그램 동작이 요청될 때, CSI 결정부(2620)는 액세스될 저장 영역의 어드레스 정보에 대응하는 부호율을 부호율 저장부(2610)로부터 읽고, 읽혀진 부호율을 부호율 변환부(2630)로 전달한다. 그렇게 결정된 부호율은 부호율 변환부(2630)를 통해 ECC 부호화 및 복호화 블록(2500)에 설정될 것이다. ECC 부호화 및 복호화 블록(2500)은 설정된 부호율에 따라 입력된 데이터를 부호화하고 부호화된 데이터(즉, 부호어)는 메모리(1000)에 저장될 것이다.
메모리(1000)에 대한 읽기 동작이 요청될 때, CSI 결정부(2620)는 액세스될 저장 영역의 어드레스 정보에 대응하는 부호율을 부호율 저장부(2610)로부터 읽고, 읽혀진 부호율을 부호율 변환부(2630)로 전달한다. 그렇게 결정된 부호율은 부호율 변환부(2630)를 통해 ECC 부호화 및 복호화 블록(2500)에 설정될 것이다. ECC 부호화 및 복호화 블록(2500)은 설정된 부호율에 따라 읽혀진 데이터(RD)를 복호화하고 복호화된 데이터는 외부로 출력될 것이다. 이와 동시에, CSI 결정부(2620)는 읽혀진 데이터(RD) 및 복호화된 데이터에 의거하여 비트 오류율(BER)을 결정한다. CSI 결정부(2620)는 결정된 비트 오류율이 주어진 기준값보다 큰 지의 여부를 판별한다. CSI 결정부(2620)는 판별 결과에 따라 액세스된 저장 영역의 부호율을 변경할 것이다. 액세스된 저장 영역의 결정된 비트 오류율이 주어진 기준값보다 클 때, 또는 액세스된 저장 영역의 부호율이 변경되는 경우, CSI 결정부(2620)는 액세스된 저장 영역에 대한 재 프로그램 동작을 처리 유니트(2300)에 요청할 것이다. 재 프로그램 동작을 통해 액세스된 저장 영역의 데이터는 변경된 부호율에 따라 동일 저장 영역에 재 프로그램하거나 다른 저장 영역으로 옮겨질 것이다.
예시적인 재 프로그램 동작들이 미국특허 제7079422호에 "PERIODIC REFRESH OPERATIONS FOR NON-VOLATILE MULTIPLE-BIT-PER-CELL MEMORY"라는 제목으로, 대한민국특허 제0764748호에 "FLASH MEMORY DEVICE WITH IMPROVED REFRESH FUNCTION"라는 제목으로, 미국공개특허 제2008-0068912호에 "FLASH MEMORY DEVICE AND REFRESH METHOD THEREOF"라는 제목으로, 그리고 미국공개특허 제2008-0055997호에 "FLASH MEMORY DEVICE AND REFRESH METHOD"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
메모리(1000)에 대한 소거 동작이 요청되는 경우, CSI 결정부(2620)는 소거될/액세스될 저장 영역의 채널 상태 정보(CSI)가 주어진 기준값을 초과하였는 지의 여부를 판별한다. 소거될 저장 영역의 채널 상태 정보(CSI)(예를 들면, 프로그램/소거 횟수, 사용 시간, 등)가 주어진 기준값을 초과한 경우, CSI 결정부(2620)는 소거될 저장 영역에 대한 부호율을 변경할 것이다. 이후, 요청된 소거 동작이 수행될 것이다. 소거된 저장 영역의 읽기/프로그램 동작시 부호화 및 복호화는 변경된 부호율에 따라 행해질 것이다.
예시적인 실시예에 있어서, 채널 상태 정보(CSI)를 판별하는 데 사용되는 기준값은 하나 또는 그 보다 많이 사용될 수도 있다. 채널 상태 정보(CSI)로서 메모리(100)/데이터 처리 시스템의 사용 시간, 메모리(1000)의 각 저장 영역의 사용 시간, 메모리(10000의 각 저장 영역의 액세스 횟수(예를 들면, 장기 보관용 데이터 또는 단기 보관용 데이터), 읽기 요청시 오류 제어 부호의 복호 과정을 통해 읽기 후 오류 빈도, 등이 이용될 수도 있다.
부호율의 변경은 다양한 기술들을 통해 행해질 것이다. 예를 들면, 부호율의 변경은 펑처링(puncturing), 단축(shorting), 그리고 확장(extending) 기술들을 통해 행해질 것이다. 펑처링 기술에 의하면, 도 4a에 도시된 바와 같이, 오류 정정 코드로 부호화한 후 패리티 비트들 중 일부가 제거된다. 패리티 비트들이 부분적으로 제거됨에 따라, 부호율(R)은 점차적으로 증가할 것이다. 단축 기술에 따르면, 도 4b에 도시된 바와 같이, 오류 정정 코드로 부호화한 후 메세지의 일부가 제거된다. 메세지가 부분적으로 제거됨에 따라, 부호율(R)은 점차적으로 감소할 것이다. 마지막으로, 확장 기술의 경우, 도 4c에 도시된 바와 같이, 오류 정정 코드로 부호화한 후 패리티 비트들이 추가적으로 제공된다. 패리티 비트들이 추가적으로 제공됨에 따라, 부호율(R)은 점차적으로 감소할 것이다. 부호율의 변경은 앞서 언급된 기술들 중 어느 하나를 통해 행해질 것이다.
도 5는 예시적인 실시예들에 따른 데이터 처리 시스템의 쓰기 동작을 보여주는 흐름도이고, 도 6은 도 2의 부호율 저장부에 저장되는 부호율들을 보여주는 도 면이다. 이하, 예시적인 실시예들에 따른 데이터 처리 시스템의 쓰기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
먼저, S100 단계에서, 쓰기 동작이 외부로부터 요청될 것이다. 쓰기 동작이 요청되면, 쓰여질 데이터는 버퍼 메모리(2400)에 임시 저장될 것이다. S110 단계에서, CSI 결정부(2620)는 쓰기 요청된/액세스될 저장 영역의 어드레스 정보에 응답하여 액세스될 저장 영역에 대응하는 부호율을 부호율 저장부(2610)로부터 선택한다. 예를 들면, 저장 영역으로서 메모리 블록(BLK#0)이 액세스되는 경우, 도 6에 도시된 바와 같이, 0.99의 부호율이 CSI 결정부(2620)에 의해서 선택된다. 선택된 부호율은 부호율 변환부(2630)를 통해 ECC 부호기(2510)에 설정될 것이다. 액세스될 저장 영역의 부호율이 결정되고 ECC 부호기(2510)가 결정된 부호율로 설정되면, 절차는 S120 단계로 진행할 것이다. S120 단계에서, ECC 부호기(2510)는 설정된 부호율에 따라 버퍼 메모리(2400)로부터 전송되는 데이터를 부호화한다. 부호화된 데이터는 S130 단계에서 메모리(1000)에 쓰여진다.
예시적인 실시예에 있어서, ECC 부호기(2510)가 연접 부호화 구조를 갖는 경우, 비록 도면에는 도시되지 않았지만, 외부 부호기의 부호율과 내부 부호기의 부호율이 각각 CSI 결정부(2620)에 의해서 선택될 것이다. 외부 및 내부 부호기들은 그렇게 선택된 부호율들에 따라 각각 동작할 것이다. 이러한 경우, 외부 부호기에 의해서 부호화된 부호어는 내부 부호기에 의해서 부호화되며, 내부 부호기에 의해서 부호화된 부호어가 메모리(1000)에 쓰여질 것이다.
도 7은 예시적인 실시예들에 따른 데이터 처리 시스템의 읽기 동작을 보여주 는 흐름도이다. 이하, 예시적인 실시예들에 따른 데이터 처리 시스템의 읽기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
S200 단계에서, 읽기 동작이 외부로부터 요청될 것이다. 읽기 동작이 요청되면, S210 단계에서, CSI 결정부(2620)는 읽기 요청된/액세스될 저장 영역의 어드레스 정보에 응답하여 액세스될 저장 영역에 대응하는 부호율을 부호율 저장부(2610)로부터 선택한다. 예를 들면, 저장 영역으로서 메모리 블록(BLK#3)이 액세스되는 경우, 도 6에 도시된 바와 같이, 0.97의 부호율이 CSI 결정부(2620)에 의해서 선택된다. 선택된 부호율은 부호율 변환부(2630)를 통해 ECC 복호기(2520)에 설정될 것이다. 액세스될 저장 영역의 부호율이 결정되고 ECC 복호기(2520)가 결정된 부호율로 설정되면, 절차는 S220 단계로 진행할 것이다.
S220 단계에서, 메모리(1000)의 액세스된 저장 영역으로부터 데이터가 읽혀진다. 읽혀진 데이터(RD)는 ECC 복호기(2520)로 전송된다. ECC 복호기(2520)는 부호율 제어 블록(2600)에 의해서 설정된 부호율에 따라 읽혀진 데이터를 복호화한다. 복호화된 데이터는 버퍼 메모리(2400)에 임시 저장되거나 외부로 출력될 것이다. S240 단계에서, CSI 결정부(2620)는 읽혀진 데이터와 복호화된 데이터에 의거하여 비트 오류율(BER)을 계산한다. S250 단계에서, CSI 결정부(2620)는 계산된 비트 오류율이 기준값보다 큰 지의 여부를 판별한다. 만약 계산된 비트 오류율이 기준값보다 작은 것으로 판별되면, 절차는 종료될 것이다.
이에 반해서, 만약 계산된 비트 오류율이 기준값보다 큰 것으로 판별되면, 액세스된 저장 영역의 부호율은 CSI 결정부(2620)에 의해서 변경될 것이다. 예를 들면, 액세스된 저장 영역의 부호율은 이전의 부호율과 비교하여 볼 때 낮은 부호율을 갖도록 CSI 결정부(2620)에 의해서 변경될 것이다. 일단 액세스된 저장 영역의 부호율이 변경되면, S270 단계에서, 액세스된 저장 영역에 대한 재 프로그램 동작이 수행될 것이다. 즉, 액세스된 저장 영역의 데이터는 변경된 부호율에 의거하여 동일 저장 영역에 재 프로그램되거나 다른 저장 영역으로 옮겨질 것이다. 재 프로그램 동작이 특정 방법에 국한되지 않음은 잘 이해될 수 있다. 이후, 절차는 종료될 것이다.
예시적인 실시예에 있어서, 재 프로그램 동작은 데이터 처리 시스템의 정책에 따라 실시간으로 또는 백그라운드 레벨로 수행될 것이다.
도 8은 예시적인 실시예들에 따른 데이터 처리 시스템의 소거 동작을 보여주는 흐름도이다. 이하, 예시적인 실시예들에 따른 데이터 처리 시스템의 소거 동작이 상세히 설명될 것이다.
S300 단계에서, 소거 동작이 외부로부터 요청될 것이다. 소거 동작이 요청되면, S310 단계에서, CSI 결정부(2620)는 소거될 저장 영역의 채널 상태 정보(예를 들면, 프로그램/소거 횟수)가 기준값을 초과하였는 지의 여부를 판별한다. 여기서, 소거될 저장 영역의 채널 상태 정보는 처리 유니트(2300)의 제어하에 또는 CSI 결정부(2620)의 제어하에 버퍼 메모리(2400)로부터 읽혀질 것이다. 소거될 저장 영역의 채널 상태 정보(예를 들면, 프로그램/소거 횟수)가 기준값을 초과하지 않는 것으로 판별되면, 절차는 요청된 소거 동작이 수행되는 S330 단계로 진행할 것이다. 이에 반해서, 소거될 저장 영역의 채널 상태 정보(예를 들면, 프로그램/소거 횟수) 가 기준값을 초과하는 것으로 판별되면, 소거될/액세스될 저장 영역의 부호율이 CSI 결정부(2620)의 제어하에 변경된다. 이후, 소거된 저장 영역에/로부터 저장되는/읽혀지는 데이터는 변경된 부호율에 따라 부호화/복호화될 것이다. 요청된 소거 동작이 완료되면, 절차는 종료될 것이다.
앞서 언급된 바와 같이, 각 저장 영역의 부호율은 웨어-레벨링 정보와 같은 채널 상태 정보 또는 비트 오류율에 따라 변경된다. 하지만, 각 저장 영역의 부호율이 장기 보관용 데이터인지 단기 보관용 데이터인 지의 여부를 나타태는 대응하는 저장 영역의 액세스 횟수에 따라 변경될 수 있다. 게다가, 비록 도면에는 도시되지 않았지만, 도 1의 ECC 부호화 및 복호화 블록과 부호율 제어 블록이 메모리(1000) 내에 구현될 수 있다. 또는, 도 1의 ECC 부호화 및 복호화 블록 또는 부호율 제어 블록이 메모리(1000) 내에 구현될 수 있다. 예시적인 실시예의 경우, 부호율의 변경을 판별하는 동작과 부호율을 설정하는 동작이 읽기/프로그램 동작이 요구될 때마다 행해진다. 하지만, 부호율의 변경을 판별하는 동작과 부호율을 설정하는 동작이 정해진 주기 마다 행해질 수도 있다. 예를 들면, 저장 영역의 읽기 횟수 또는 메모리의 읽기 횟수를 점검하고 점검 결과에 따라 그러한 동작들을 선택적으로 수행하는 것이 가능할 것이다.
도 9는 도 1의 메모리 및 제어기를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다. 도 9를 참조하면, 컴퓨팅 시스템은 버스(3401)에 전기적으로 연결된 마이크로프로세서(3410), 사용자 인터페이스(3420), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(3430), 제어기(3440), 그리고 저장 매체(3450)를 포함한다. 제어기(3440)과 저장 매체(3450)는 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 저장 매체(3450)에는 마이크로프로세서(3410)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 제어기(3440)를 통해 저장될 것이다. 저장 매체(3450)가 메모리에 국한되지 않음은 잘 이해될 것이다. 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2460)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 제어기(3440)와 저장 매체(3450)는 반도체 디스크(Solid State Disk/drive:SSD)로서 또는 메모리 카드로서 구성될 수 있다.
저장 매체 그리고/또는 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 저장 매체 그리고/또는 제어기는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1은 예시적인 실시예에 따른 데이터 처리 시스템을 보여주는 블록도이다.
도 2는 도 1에 도시된 ECC 부호화 및 복호화 블록 및 부호율 제어 블록을 개략적으로 보여주는 블록도이다.
도 3은 예시적인 실시예들에 따른 ECC 부호화 및 복호화 블록을 개략적으로 보여주는 블록도이다.
도 4는 부호율을 변경하기 위한 기술들을 개략적으로 보여주는 도면이다.
도 5는 예시적인 실시예들에 따른 데이터 처리 시스템의 쓰기 동작을 보여주는 흐름도이다.
도 6은 도 2에 도시된 부호율 저장부에 저장되는 부호율들을 예시적으로 보여주는 도면이다.
도 7은 예시적인 실시예들에 따른 데이터 처리 시스템의 읽기 동작을 보여주는 흐름도이다.
도 8은 예시적인 실시예들에 따른 데이터 처리 시스템의 소거 동작을 보여주는 흐름도이다.
도 9는 도 1의 메모리 및 제어기를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
Claims (21)
- 복수의 저장 영역들을 갖는 메모리와;설정된 부호율에 따라 액세스된 저장 영역으로부터 읽혀진 데이터를 복호화하도록 구성된 부호화 및 복호화 블록과; 그리고상기 복수의 저장 영역들 각각에 대응하는 부호율들을 가지며, 상기 복수의 저장 영역들 중 액세스될 저장 영역에 대응하는 부호율로 상기 부호화 및 복호화 블록을 설정하도록 구성된 부호율 제어 블록을 포함하는 데이터 처리 시스템.
- 제 1 항에 있어서,상기 부호율 제어 블록은 상기 액세스된 저장 영역으로부터 읽혀진 데이터와 상기 부호화 및 복호화 블록에 의해서 복호화된 데이터에 의해서 결정된 비트 오류율에 따라 상기 액세스된 저장 영역에 대응하는 부호율을 변경하는 데이터 처리 시스템.
- 제 2 항에 있어서,상기 비트 오류율이 기준값보다 큰 경우, 상기 부호율 제어 블록은 이전의 부호율보다 낮아지도록 상기 액세스된 저장 영역의 부호율을 변경하는 데이터 처리 시스템.
- 제 3 항에 있어서,상기 복수의 저장 영역들에 각각 대응하는 부호율들은 상기 데이터 처리 시스템의 사용 초기에 가장 높은 부호율을 갖도록 설정되는 데이터 처리 시스템.
- 제 3 항에 있어서,상기 액세스된 저장 영역의 부호율이 변경되면, 상기 액세스된 저장 영역의 데이터는 상기 변경된 부호율에 의거하여 재 프로그램되는 데이터 처리 시스템.
- 제 1 항에 있어서,상기 부호화 및 복호화 블록은 단일 부호를 이용하여 부호화/복호화 동작을 수행하거나 2개의 다른 부호들을 이용하여 부호화/복호화 동작을 수행하는 데이터 처리 시스템.
- 제 1 항에 있어서,상기 부호율 제어 블록은, 쓰기 요청시, 상기 복수의 저장 영역들 중 액세스될 저장 영역에 대응하는 부호율로 상기 부호화 및 복호화 블록을 설정하고, 상기 부호화 및 복호화 블록은 상기 설정된 부호율에 따라 저장될 데이터를 부호화하는 데이터 처리 시스템.
- 제 1 항에 있어서,상기 메모리에 대한 소거 동작이 요청될 때, 상기 부호율 제어 블록은 상기 복수의 저장 영역들 중 액세스될 저장 영역의 채널 상태 정보에 의거하여 상기 액세스될 저장 영역의 부호율을 변경하는 데이터 처리 시스템.
- 제 8 항에 있어서,상기 채널 상태 정보로서 상기 액세스될 저장 영역의 프로그램/소거 횟수가 기준값을 초과할 때, 상기 부호율 제어 블록은 이전의 부호율보다 낮아지도록 상기 액세스될 저장 영역의 부호율을 변경하는 데이터 처리 시스템.
- 제 8 항에 있어서,상기 채널 상태 정보는 프로그램/소거 횟수, 사용 시간, 읽기 요청시 오류 제어 부호의 복호 과정을 통해 읽기 후 오류 빈도, 그리고 데이터 보관 용도 중 하나를 포함하는 데이터 처리 시스템.
- 제 1 항에 있어서,상기 부호화 및 복호화 블록은 단일의 코덱 구조를 갖는 데이터 처리 시스템.
- 복수의 저장 영역들을 갖는 메모리와;상기 복수의 저장 영역들 각각에 대응하는 부호율들을 저장하는 부호율 저장 부와;액세스될 저장 영역의 어드레스 정보에 의거하여 상기 부호율들 중 하나를 선택하는 채널 상태 정보 결정부와; 그리고상기 선택된 부호율에 따라, 상기 액세스될 저장 영역으로부터 읽혀진 데이터를 복호화하도록 구성된 부호화 및 복호화 블록을 포함하는 데이터 처리 시스템.
- 제 12 항에 있어서,상기 채널 상태 정보 결정부는 상기 읽혀진 데이터와 상기 복호화된 데이터에 의거하여 비트 오류율을 결정하고, 상기 결정된 비트 오류율에 따라 상기 액세스될 저장 영역에 대응하는 그리고 상기 부호율 저장부에 저장된 부호율을 변경하는 데이터 처리 시스템.
- 제 13 항에 있어서,상기 액세스될 저장 영역의 부호율이 변경되면, 상기 액세스될 저장 영역의 데이터는 상기 변경된 부호율에 의거하여 재 프로그램되는 데이터 처리 시스템.
- 제 12 항에 있어서,상기 메모리에 대한 소거 동작이 요청될 때, 상기 채널 상태 정보 결정부는 상기 복수의 저장 영역들 중 액세스될 저장 영역의 프로그램/소거 횟수가 기준값보다 큰 지의 여부에 따라 상기 액세스될 저장 영역의 부호율을 변경하는 데이터 처 리 시스템.
- 제 12 항에 있어서,상기 선택된 부호율로 상기 부호화 및 복호화 블록을 설정하는 부호율 변경부를 더 포함하는 데이터 처리 시스템.
- 제 12 항에 있어서,상기 복수의 저장 영역들 각각은 메모리 블록, 페이지, 섹터, 칩, 그리고 레이어 중 어느 하나에 대응하는 데이터 처리 시스템.
- 복수의 저장 영역들을 갖는 메모리를 포함하는 데이터 처리 시스템의 동작 방법에 있어서:읽기 동작이 요청될 때 상기 복수의 저장 영역들 각각에 대응하는 부호율들로부터 액세스될 저장 영역에 대응하는 부호율을 선택하고,상기 액세스될 저장 영역으로부터 읽혀진 데이터를 상기 선택된 부호율로 복호화하고,상기 읽혀진 데이터와 상기 복호화된 데이터에 의거하여 비트 오류율을 결정하고,상기 결정된 비트 오류율에 의거하여 상기 액세스될 저장 영역의 부호율을 선택적으로 변경하는 것을 포함하는 데이터 처리 시스템의 동작 방법.
- 제 18 항에 있어서,상기 액세스될 저장 영역의 부호율이 변경될 때, 상기 변경된 부호율에 의거하여 상기 액세스될 저장 영역의 데이터를 재 프로그램하는 것을 더 포함하는 데이터 처리 시스템의 동작 방법.
- 제 18 항에 있어서,소거 동작이 요청될 때, 액세스될 저장 영역의 프로그램/소거 횟수가 기준값을 초과하였는 지의 여부를 판별하는 것을 더 포함하며,상기 액세스될 저장 영역의 부호율은 상기 액세스될 저장 영역의 프로그램/소거 횟수가 기준값을 초과하는 것으로 판별될 때 변경되는 데이터 처리 시스템의 동작 방법.
- 제 18 항에 있어서,프로그램 동작이 요청될 때 상기 복수의 저장 영역들 각각에 대응하는 부호율들로부터 액세스될 저장 영역에 대응하는 부호율을 선택하고,상기 액세스될 저장 영역에 저장될 데이터를 상기 선택된 부호율로 부호화하는 것을 더 포함하는 데이터 처리 시스템의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090023167A KR20100104623A (ko) | 2009-03-18 | 2009-03-18 | 데이터 처리 시스템 및 그것의 부호율 제어 스킴 |
US12/716,793 US20100241928A1 (en) | 2009-03-18 | 2010-03-03 | Data Processing System Having ECC Encoding and Decoding Circuits Therein with Code Rate Selection Based on Bit Error Rate Detection |
CN201010144746A CN101840359A (zh) | 2009-03-18 | 2010-03-18 | 数据处理系统及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090023167A KR20100104623A (ko) | 2009-03-18 | 2009-03-18 | 데이터 처리 시스템 및 그것의 부호율 제어 스킴 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100104623A true KR20100104623A (ko) | 2010-09-29 |
Family
ID=42738689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090023167A KR20100104623A (ko) | 2009-03-18 | 2009-03-18 | 데이터 처리 시스템 및 그것의 부호율 제어 스킴 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100241928A1 (ko) |
KR (1) | KR20100104623A (ko) |
CN (1) | CN101840359A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595601B2 (en) | 2010-02-25 | 2013-11-26 | Samsung Electronics Co., Ltd. | Methods of performing error detection/correction in nonvolatile memory devices |
KR20180026493A (ko) * | 2015-07-01 | 2018-03-12 | 자일링크스 인코포레이티드 | 가변 코드 레이트 고체-상태 드라이브 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101466695B1 (ko) * | 2008-04-30 | 2014-12-01 | 삼성전자주식회사 | 멀티 비트 레벨 데이터의 부호화 및 복호화 방법 |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US8892980B2 (en) * | 2010-06-15 | 2014-11-18 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
FR2961613B1 (fr) * | 2010-06-18 | 2012-07-27 | Commissariat Energie Atomique | Procede de protection memoire configurable contre les erreurs permanentes et transitoires et dispositif apparente |
JP2012128660A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | 半導体記憶装置 |
US8560922B2 (en) * | 2011-03-04 | 2013-10-15 | International Business Machines Corporation | Bad block management for flash memory |
KR101678919B1 (ko) | 2011-05-02 | 2016-11-24 | 삼성전자주식회사 | 메모리 시스템 및 에러 정정 방법 |
US20130006896A1 (en) * | 2011-06-28 | 2013-01-03 | Seagate Technology Llc | Training Datasets for Memory Devices |
WO2013032663A2 (en) * | 2011-09-01 | 2013-03-07 | Rambus Inc. | Variable code rate transmission |
US8479086B2 (en) * | 2011-10-03 | 2013-07-02 | Lsi Corporation | Systems and methods for efficient parameter modification |
US8898548B1 (en) * | 2012-08-24 | 2014-11-25 | Western Digital Technologies, Inc. | Methods, data storage devices and systems having variable size ECC page size |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US9507523B1 (en) | 2012-10-12 | 2016-11-29 | Western Digital Technologies, Inc. | Methods, devices and systems for variable size logical page management in a solid state drive |
US9489296B1 (en) | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
US8996961B2 (en) | 2012-12-11 | 2015-03-31 | Seagate Technology Llc | Error correction code rate management for nonvolatile memory |
US9214963B1 (en) * | 2012-12-21 | 2015-12-15 | Western Digital Technologies, Inc. | Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system |
US8898549B2 (en) * | 2013-02-12 | 2014-11-25 | Seagate Technology Llc | Statistical adaptive error correction for a flash memory |
RU2013128346A (ru) * | 2013-06-20 | 2014-12-27 | ИЭмСи КОРПОРЕЙШН | Кодирование данных для системы хранения данных на основе обобщенных каскадных кодов |
US20150058697A1 (en) * | 2013-08-22 | 2015-02-26 | Kabushiki Kaisha Toshiba | Storage device, controller and memory controlling method |
US8908307B1 (en) * | 2013-08-23 | 2014-12-09 | Lsi Corporation | Systems and methods for hard disk drive region based data encoding |
US9595352B2 (en) * | 2014-03-17 | 2017-03-14 | Seagate Technology Llc | Manufacturer self-test for solid-state drives |
US9354955B1 (en) | 2014-03-19 | 2016-05-31 | Western Digital Technologies, Inc. | Partial garbage collection for fast error handling and optimized garbage collection for the invisible band |
US10116336B2 (en) * | 2014-06-13 | 2018-10-30 | Sandisk Technologies Llc | Error correcting code adjustment for a data storage device |
US9213602B1 (en) * | 2014-06-23 | 2015-12-15 | Seagate Technology Llc | Write mapping to mitigate hard errors via soft-decision decoding |
US10007573B2 (en) * | 2015-04-27 | 2018-06-26 | Invensas Corporation | Preferred state encoding in non-volatile memories |
DE112015006961T5 (de) * | 2015-09-26 | 2018-06-14 | Intel Corporation | Verbindungsfehlerdetektion in mehrfachchipgehäusen |
US10223198B2 (en) * | 2016-02-18 | 2019-03-05 | Micron Technology, Inc. | Error rate reduction |
CN107643876A (zh) * | 2016-07-20 | 2018-01-30 | 大心电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
JP6725375B2 (ja) * | 2016-09-14 | 2020-07-15 | キオクシア株式会社 | メモリシステムおよび方法 |
CN107025948B (zh) * | 2017-05-17 | 2023-08-15 | 西安紫光国芯半导体有限公司 | 具有标志位指示数据长度的纠错功能的存储器和纠错方法 |
US10346346B1 (en) * | 2017-12-21 | 2019-07-09 | Xilinx, Inc. | Inline ECC function for system-on-chip |
US10644727B2 (en) * | 2018-01-11 | 2020-05-05 | Western Digital Technologies, Inc. | Code rate switching mechanism for flash memory |
KR20200034499A (ko) * | 2018-09-21 | 2020-03-31 | 삼성전자주식회사 | 메모리 장치와 통신하는 데이터 처리 장치 및 방법 |
US10942809B2 (en) * | 2018-12-20 | 2021-03-09 | Micron Technology, Inc. | Changing of error correction codes based on the wear of a memory sub-system |
US10911069B2 (en) * | 2019-01-22 | 2021-02-02 | Western Digital Technologies, Inc. | Memory device with enhanced error correction |
US10956064B2 (en) * | 2019-06-28 | 2021-03-23 | Seagate Technology Llc | Adjusting code rates to mitigate cross-temperature effects in a non-volatile memory (NVM) |
CN111404556A (zh) * | 2020-03-13 | 2020-07-10 | 深圳市航天华拓科技有限公司 | 编码方法、译码方法、设备及存储介质 |
CN112992258B (zh) * | 2021-04-14 | 2022-05-31 | 长鑫存储技术有限公司 | 含片上ecc的信号处理电路和存储器 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7079422B1 (en) * | 2000-04-25 | 2006-07-18 | Samsung Electronics Co., Ltd. | Periodic refresh operations for non-volatile multiple-bit-per-cell memory |
US6961890B2 (en) * | 2001-08-16 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Dynamic variable-length error correction code |
US7210077B2 (en) * | 2004-01-29 | 2007-04-24 | Hewlett-Packard Development Company, L.P. | System and method for configuring a solid-state storage device with error correction coding |
US7512344B2 (en) * | 2004-07-14 | 2009-03-31 | Hitachi Metals Ltd. | Variable dispersion compensator |
US7502982B2 (en) * | 2005-05-18 | 2009-03-10 | Seagate Technology Llc | Iterative detector with ECC in channel domain |
US7810017B2 (en) * | 2006-03-20 | 2010-10-05 | Micron Technology, Inc. | Variable sector-count ECC |
US20070266296A1 (en) * | 2006-05-15 | 2007-11-15 | Conley Kevin M | Nonvolatile Memory with Convolutional Coding |
JP4946249B2 (ja) * | 2006-08-07 | 2012-06-06 | 富士通セミコンダクター株式会社 | Eccのコード長が変更可能な半導体メモリ装置 |
KR100794664B1 (ko) * | 2006-09-01 | 2008-01-14 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 리프레쉬 방법 |
KR100875292B1 (ko) * | 2006-09-19 | 2008-12-23 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 리프레쉬 방법 |
KR100856129B1 (ko) * | 2006-12-29 | 2008-09-03 | 삼성전자주식회사 | 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 |
US8122323B2 (en) * | 2007-03-08 | 2012-02-21 | Intel Corporation | Method, apparatus, and system for dynamic ECC code rate adjustment |
KR100907218B1 (ko) * | 2007-03-28 | 2009-07-10 | 삼성전자주식회사 | 읽기 레벨 제어 장치 및 그 방법 |
KR100873824B1 (ko) * | 2007-05-04 | 2008-12-15 | 삼성전자주식회사 | 오류 제어 코드 장치 및 그 방법 |
US8095851B2 (en) * | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US8724381B2 (en) * | 2008-03-11 | 2014-05-13 | Agere Systems Llc | Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding |
KR101398212B1 (ko) * | 2008-03-18 | 2014-05-26 | 삼성전자주식회사 | 메모리 장치 및 인코딩/디코딩 방법 |
US7884593B2 (en) * | 2008-03-26 | 2011-02-08 | Quantum Design, Inc. | Differential and symmetrical current source |
-
2009
- 2009-03-18 KR KR1020090023167A patent/KR20100104623A/ko not_active Application Discontinuation
-
2010
- 2010-03-03 US US12/716,793 patent/US20100241928A1/en not_active Abandoned
- 2010-03-18 CN CN201010144746A patent/CN101840359A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595601B2 (en) | 2010-02-25 | 2013-11-26 | Samsung Electronics Co., Ltd. | Methods of performing error detection/correction in nonvolatile memory devices |
US8839080B2 (en) | 2010-02-25 | 2014-09-16 | Samsung Electronics Co., Ltd. | Methods of performing error detection/correction in nonvolatile memory devices |
KR20180026493A (ko) * | 2015-07-01 | 2018-03-12 | 자일링크스 인코포레이티드 | 가변 코드 레이트 고체-상태 드라이브 |
Also Published As
Publication number | Publication date |
---|---|
CN101840359A (zh) | 2010-09-22 |
US20100241928A1 (en) | 2010-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100104623A (ko) | 데이터 처리 시스템 및 그것의 부호율 제어 스킴 | |
KR101398200B1 (ko) | 메모리 장치 및 인코딩/디코딩 방법 | |
KR101518199B1 (ko) | 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치 | |
US8122329B2 (en) | Methods of operating memory devices using error correction and rereading techniques | |
KR101504083B1 (ko) | 비휘발성 메모리를 갖춘 멀티레벨 시스템에서의 진보된 비트별 동작 및 장치 | |
US8499217B2 (en) | Memory device and error control codes decoding method | |
TWI533304B (zh) | 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置 | |
JP5345201B2 (ja) | 符号化および/または復号化メモリ装置および方法 | |
US8112689B2 (en) | ECC controller for use in flash memory device and memory system including the same | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
KR101991911B1 (ko) | 비트 상태 맵핑 동작을 수행하는 코드 변조 인코더와 코드 변조 디코더를 포함하는 메모리 컨트롤러, 그것을 포함하는 데이터 저장 장치 및 플래시 메모리 시스템 | |
KR101386489B1 (ko) | 메모리 장치 및 멀티 비트 프로그래밍 방법 | |
US8543892B2 (en) | Memory device and method of storing data with error correction using codewords | |
KR20100119492A (ko) | 비휘발성 메모리의 적응형 내구성 코딩 | |
US8463985B2 (en) | Constrained coding to reduce floating gate coupling in non-volatile memories | |
KR20100109445A (ko) | 메모리 컨트롤러 및 반도체 기억 장치 | |
US20150370631A1 (en) | Write mapping to mitigate hard errors via soft-decision decoding | |
KR102628009B1 (ko) | 부분 페이지 압축을 위한 메모리 시스템 | |
KR20140032524A (ko) | 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더 | |
KR20110127001A (ko) | 페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |