KR101650123B1 - 페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법 - Google Patents
페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법 Download PDFInfo
- Publication number
- KR101650123B1 KR101650123B1 KR1020100046596A KR20100046596A KR101650123B1 KR 101650123 B1 KR101650123 B1 KR 101650123B1 KR 1020100046596 A KR1020100046596 A KR 1020100046596A KR 20100046596 A KR20100046596 A KR 20100046596A KR 101650123 B1 KR101650123 B1 KR 101650123B1
- Authority
- KR
- South Korea
- Prior art keywords
- decoding
- memory
- time
- sector
- data
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2948—Iterative decoding
- H03M13/2951—Iterative decoding using iteration stopping criteria
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2948—Iterative decoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
여기에는 채널을 통해 전송되는 데이터를 반복 복호화하는 방법이 제공되며, 그러한 방법은 (a) 상기 데이터의 섹터들 중 하나를 반복적으로 복호화하는 단계와; (b) 상기 하나의 섹터의 복호화가 성공적으로 행해진 것으로 판별될 때, 유휴 상태없이 상기 데이터에 속한 다음 섹터에 대한 반복 복호 동작을 바로 수행하는 단계와; 그리고 (c) 상기 데이터의 섹터들이 모두 복호화될 때까지 상기 (a) 및 (b) 단계들을 반복하는 단계를 포함한다.
Description
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 메모리 시스템에 관한 것이다.
디지털 정보가 전송되거나 기록되거나 재생될 때, 몇몇 예들에 있어서, 다양한 원인들로 인해 디지털 정보에 부분적으로 오류들이 생길 수 있다. 그러한 오류들을 검출하고 임의의 검출된 오류를 정정하기 위해서 오류 검출 부호(error detecting code) 또는 오류 정정 부호(error correction code)를 이용하는 기술들이 잘 알려져 있다. 오류 검출 부호와 오류 정정 부호 사이에는 기본적으로 차이점이 없으며, 오류 검출 부호와 오류 정정 부호는 일괄하여 오류 제어 부호(error control code)라 불릴 것이다. 마찬가지로, 오류 검출 및 오류 정정은 일괄하여 오류 제어(error control)라 불릴 것이다.
오류 제어 부호들을 이용하여 디지털 정보를 전송하거나 기록함에 있어서, 예를 들면, m-비트 오류 제어 정보(리던던트 비트들)가 k-비트 디지털 정보(정보 비트들)에 부가되어 (k+m)-비트 부호어(codeword)가 생성되며, 그 다음에 그렇게 생성된 부호어는 채널로 전송된다. 부호어의 전송 목적지에서, 부호어에 포함된 리던던트 비트들을 이용하여 오류 검출 그리고/또는 오류 정정이 행해진다. 부호어를 생성하는 과정은 부호화(encoding)라 불리고, 부호어에 의거한 오류 검출 그리고/또는 오류 정정은 복호화(decoding)라 불린다. 디지털 정보의 부호화는 디지털 정보를 기초로 하여 디지털 정보에 포함되는 오류들을 검출/정정할 목적으로 리던던트 비트들(이후, ECC 패리티 데이터라 칭함)을 생성하고 ECC 패리티 데이터를 디지털 정보에 부가하는 과정이다. 부호화 이전의 데이터(디지털 정보)는 일반적으로 "메세지"라 불린다. 부호화 다음의 데이터(부가된 ECC 패리티 데이터를 갖는 디지털 정보)는 일반적으로 "부호어"라 불린다.
디지털 정보의 전송 또는 기록 동안 신뢰성(reliability)를 더 향상시킬 목적으로, 높은 오류 정정/오류 검출 능력을 갖는 오류 제어 부호들을 이용하는 것이 바람직하다. 하지만, 높은 오류 정정/오류 검출 능력을 갖는 부호들이 사용되는 경우, 리던던트 비트들의 비트 길이가 더 길어지는 경향이 있고, 정보 전송 효율이 나빠지는 경향이 있다.
본 발명의 목적은 비트 오류율(BER) 성능을 향상시킬 수 있는 메모리 시스템 및 그것의 페이지-기반 반복복호 방법을 제공하는 것이다.
본 발명의 일 특징은 채널을 통해 전송되는 데이터를 반복 복호화하는 방법을 제공하는 것이며, 방법은 (a) 상기 데이터의 섹터들 중 하나를 반복적으로 복호화하는 단계와; (b) 상기 하나의 섹터의 복호화가 성공적으로 행해진 것으로 판별될 때, 유휴 상태없이 상기 데이터에 속한 다음 섹터에 대한 반복 복호 동작을 바로 수행하는 단계와; 그리고 (c) 상기 데이터의 섹터들이 모두 복호화될 때까지 상기 (a) 및 (b) 단계들을 반복하는 단계를 포함한다.
본 발명의 다른 특징은 메모리와; 그리고 상기 메모리로부터 읽혀진 데이터를 저장하는 버퍼 메모리와 상기 메모리로부터 읽혀진 데이터를 복호화하는 ECC 부호화 및 복호화 블록을 갖는 제어기를 포함하며, 상기 ECC 부호화 및 복호화 블록은 디폴트 복호화 시간 내에 상기 데이터를 구성하는 섹터들 각각의 복호화를 반복적으로 수행하도록 구성되며; 그리고 현재 처리되는 섹터의 복호화가 상기 디폴트 복호화 시간보다 짧은 시간에 완료될 때, 상기 ECC 부호화 및 복호화 블록은 다음에 처리될 섹터의 디폴트 복호화 시간을 상기 현재 처리되는 섹터의 나머지 시간만큼 증가시키는 데이터 저장 시스템을 제공하는 것이다.
본 발명의 예시적인 실시예들에 따르면, 복호기의 처리량에 대한 열화 없이 비트 오류율(BER)의 성능을 향상시키는 것이 가능하다.
도 1은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 ECC 부호화 및 복호화 블록의 반복 복호 동작을 개략적으로 설명하기 위한 도면이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 시스템의 읽기 동작을 설명하기 위한 흐름도이다.
도 4는 도 3에서 설명된 페이지-기준 복호화 동작을 구체적으로 설명하기 위한 흐름도이다.
도 5는 페이지-기반 반복 복호화 동작이 수행될 때 가변되는 각 섹터의 복호화 시간을 설명하기 위한 도면이다.
도 6은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 ECC 부호화 및 복호화 블록의 반복 복호 동작을 개략적으로 설명하기 위한 도면이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 시스템의 읽기 동작을 설명하기 위한 흐름도이다.
도 4는 도 3에서 설명된 페이지-기준 복호화 동작을 구체적으로 설명하기 위한 흐름도이다.
도 5는 페이지-기반 반복 복호화 동작이 수행될 때 가변되는 각 섹터의 복호화 시간을 설명하기 위한 도면이다.
도 6은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 본 발명의 예시적인 실시예에 따른 메모리 시스템은 메모리(1000)와 제어기(2000)를 포함할 것이다. 메모리(1000)는 제어기(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)을 포함한다. 비록 도면에는 도시되지 않았지만, 제어기(2000)에는 암호화 및 복호화 블록, 롬, 버스 중재기, 등이 더 제공될 수 있음은 잘 이해될 것이다.
호스트 인터페이스(2100)는 외부(예를 들면, 호스트)와 인터페이스하도록 구성될 것이다. 예를 들면, 호스트 인터페이스(2100)는 ATA(AT Attachment), SATA(Serial ATA), PATA(Parallel ATA), USB(Universal Serial Bus), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), 그리고 IDE(Integrated Drive Electronics) 인터페이스와 같은 표준 인터페이스(standardized interface), 노어 인터페이스, 또는 무선 인터페이스, 또는 유선 및 무선 인터페이스들의 조합에 의해서 외부와 연결될 수 있다. 메모리 인터페이스(2200)는 메모리(1000)와 인터페이스하도록 구성될 것이다. 여기서, 호스트 인터페이스(2100) 및 메모리 인터페이스(2200)가 채널로서 기능하는 메모리(1000)에 따라 그리고 호스트에 따라 다양하게 변경될 수 있음은 잘 이해될 것이다. 처리 유니트(2300)는 제어기(2300)의 동작을 전반적으로 제어한다. 버퍼 메모리(2400)는 외부에서 메모리(1000)로 전송될 데이터 그리고 메모리(1000)에서 외부로 전송될 데이터를 임시적으로 저장하는 데 사용될 것이다. ECC 부호화 및 복호화 블록(2500)은 메모리(1000)에 저장될 데이터를 부호화하도록 그리고 메모리(1000)로부터 읽혀진 데이터를 복호화하도록 구성될 것이다.
도 1에 도시된 바와 같이, ECC 부호화 및 복호화 블록(2500)은 ECC 부호기(2510), ECC 복호기(2520), 그리고 제어 로직(2530)을 포함할 것이다. ECC 부호기(2510)는 제어 로직(2530)의 제어에 응답하여 메모리(1000)로 전송될 데이터를 부호화하도록 구성될 것이다. ECC 복호기(2520)는 제어 로직(2530)의 제어에 응답하여 메모리(1000)로부터 전송되는 데이터를 복호화하도록 구성될 것이다. ECC 부호화 및 복호화 블록(2500)은 반복 복호 방식(iterative decoding manner)에 따라 메모리(1000)로부터 전송되는 데이터를 복호화하도록 구성될 것이다. 특히, ECC 부호화 및 복호화 블록(2500)은 반복 복호 단위인 섹터의 디코딩 시간(또는, 반복 복호 동작들의 횟수)을 가변적으로 제어하도록 구성되며, 이는 이후 상세히 설명될 것이다. 섹터의 디코딩 시간(또는 반복 복호 동작들의 횟수)를 가변적으로 제어함으로써 ECC 복호기(2520)의 유휴 시간(idle time)을 제거하는 것이 그리고 복호기(2520)의 처리량의 열화없이 비트 오류율(BER)을 향상시키는 것이 가능하다.
도 2는 도 1에 도시된 ECC 부호화 및 복호화 블록의 반복 복호 동작을 개략적으로 설명하기 위한 도면이다.
채널로 사용되는 도 1의 메모리(1000)가 낸드 플래시 메모리로 구성되는 경우, 예를 들면, 메모리(1000)는 페이지 단위로 프로그램 동작을 수행할 것이다. 잘 알려진 바와 같이, 페이지는 복수의, 예를 들면, n개의 섹터들로 구성된다. 제어기(2000)에서 메모리(1000)로 데이터가 전송될 때, ECC 부호기(2510)는 페이지를 구성하는 섹터들 각각에 대한 에러 검출 및 정정을 위한 패리티 정보(또는, ECC 패리티 데이터라 불림)를 생성할 것이다. 이는 섹터 단위로 에러 검출 및 정정이 행해짐을 의미한다. 반복 복호 방식에 따르면, 메모리(1000)로부터 읽혀진 각 섹터의 복호화는 반복적으로 행해질 것이다. 예를 들면, 도 2를 참조하면, 섹터의 복호화는 섹터의 디폴트 복호화 시간(default decoding time: Tdds) 내에서 반복적으로 행해질 것이다. 단위 복호화 시간(Tuds) 내에서 섹터에 대한 복호화가 한번 행해질 것이다. 섹터들을 복호화하는 데 걸리는 시간 즉, 페이지의 복호화 시간(Tdp)은 본 발명의 예시적인 실시예에 따른 메모리 시스템이 적용되는 장치(예를 들면, 그러한 장치의 동작 주파수)에 따라 미리 결정될 것이다. 비록 디폴트 복호화 시간이 미리 결정되더라도, 본 발명의 경우, 페이지를 구성하는 섹터들의 복호화 시간들(Tdds)은 페이지를 복호화하는 데 걸리는 시간 내에서 가변될 것이다.
예시적인 실시예에 있어서, 비록 각 섹터의 디폴트 복호화 시간(Tdds)이 미리 설정되어 있더라도, ECC 부호화 및 복호화 블록(2500)은 현재 처리되는 섹터의 실제 복호화 시간에 따라 다음에 처리될 섹터의 디폴트 복호화 시간(Tdds)을 조정하도록 구성될 것이다. 예를 들면, 현재 처리되는 섹터의 실제 복호화 시간이 디폴드 복호화 시간(Tdds)보다 짧은 경우, ECC 부호화 및 복호화 블록(2500)은 (디폴트 복호화 시간-실제 복호화 시간)만큼 다음에 처리될 섹터의 디폴트 복호화 시간(Tdds)을 증가시킬 것이다. 이는 다음에 처리될 섹터에 대한 복호화가 (디폴트 복호화 시간-실제 복호화 시간) 동안 추가적으로 행해짐을 의미한다. 다시 말해서, 현재 선택된 섹터의 복호화가 디폴드 복호화 시간(Tdds)보다 짧은 시간 내에 완료될 때, 현재 선택된 섹터에 대한 ECC 복호기(2520)의 나머지 시간은 유휴 시간으로 처리되는 것이 아니라, 다음에 선택될 섹터를 복호화하는 데 활용될 것이다. 따라서, ECC 복호기(2520)의 유휴 상태는 존재하지 않을 것이다. 앞서 설명된 반복 복호화 동작은 페이지를 복호화하는 데 필요한 시간(Tdp)을 기준으로 행해질 것이다. 페이지의 복호화 시간(Tdp)이 고정되어 있지만, 각 섹터를 복호화하는 데 필요한 시간(Tdds)은 가변적으로 제어될 것이다.
예시적인 실시예에 있어서, 테스트 과정을 통해 메모리(1000)로부터 읽혀진 적어도 하나의 페이지에 속한 섹터들을 복호화하는 데 걸리는 시간들을 측정하는 것이 가능하다. 그러한 측정에 의하면, 평균적인 복호화 시간(Tda)과 최악의 복호화 시간(Tdw)을 구하는 것이 가능하다. 페이지 당 섹터 수가 N이고, 단일 섹터의 디폴트 복호화 시간이 Tdds일 때, 단일 페이지의 최대 복호 시간은 (N*Tdds)일 것이다. 잘 이해되는 바와 같이, 최악의 복호화 시간(Tdw)은 실험 환경 및 방법 등에 의해서 달라질 수 있다. 일반적으로, 각 섹터의 디폴트 복호화 시간은 최악의 복호화 시간(Tdw)으로 설정될 것이다. 이에 반해서, 본 발명의 경우, 각 섹터의 디폴트 복호화 시간(Tdds)은 ((Tdw-Tda)+Tdw)으로 설정될 것이다. 이러한 경우, 섹터들의 디폴트 복호화 시간들(Tdds)의 합은 페이지를 복호화하는 데 걸리는 시간(Tdp)보다 길게 설정될 것이다. 비록 섹터들의 디폴트 복호화 시간들(Tdds)의 합은 페이지를 복호화하는 데 걸리는 시간(Tdp)보다 길게 설정되더라도, 앞서 설명된 방식에 따라 ECC 복호기(2520)의 유휴 시간을 제거함으로써 페이지를 복호화하는 데 걸리는 시간(Tdp) 내에 반복 복호화 동작을 완료하는 것이 가능하다.
다른 예시적인 실시예에 있어서, 각 섹터의 디폴트 복호화 시간은 미리 설정되지 않는다. 이러한 경우, 현재 처리된 섹터의 실질적인 복호화 시간이 다음에 처리될 섹터의 디폴트 복호화 시간으로 사용될 수 있다. 또는, 복수의 섹터들을 복호화하는 데 걸리는 시간들이 실시간으로 측정되고, 측정된 시간들의 평균값이 이후 처리될 섹터들의 디폴트 복호화 시간으로 사용되는 방식이 반복 복호 동작에 적용될 수 있다.
본 발명의 예시적인 실시예에 있어서, 디폴트 복호화 시간을 설정하는 방식에 관계없이 현재 처리되는 섹터를 복호화한 후 남은 시간(또는, 남은 반복 복호 횟수)은 다음에 처리될 섹터의 복호화 동작에 적용될 것이다. 결과적으로, 각 섹터를 복호화하는 데 필요한 실질적인 시간은, 앞서 설명된 바와 같이, ECC 복호기(2510)의 유휴 시간이 생기지 않도록 가변적으로 결정될 것이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 시스템의 읽기 동작을 설명하기 위한 흐름도이다. 이하, 본 발명의 예시적인 실시예에 따른 메모리 시스템의 읽기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 3을 참조하면, S100 단계에서 외부(예를 들면, 호스트)로부터 읽기 요청이 입력되면, 제어기(2000)는 S110 단계에서 메모리(1000)로부터 읽기 요청된 데이터를 읽을 것이다. 읽혀진 데이터는 도 1에 도시된 버퍼 메모리(2400)에 임시 저장될 것이다. 버퍼 메모리(2400)에 저장된 데이터는, 예를 들면, 적어도 하나의 페이지를 구성하는 복수의 섹터들을 포함할 것이다. S120 단계에서, ECC 부호화 및 복호화 블록(2500)은 처리 유니트(2300)의 제어 하에 페이지-기반 반복 복호화 동작을 수행할 것이다. 이는 도 3에서 좀 더 구체적으로 설명될 것이다. S130 단계에서, 복호화 동작이 성공하였는 지의 여부가 제어 로직(2530)에 의해서 판별될 것이다. 만약 그렇다면, S140 단계에서, 읽기 요청된 데이터가 처리 유니트(2300)의 제어하에 외부로 전송될 것이다. 만약 그렇지 않으면, S150 단계에서, 에러 메시지가 처리 유니트(2300)의 제어하에 외부로 전송될 것이다.
도 4는 도 3에서 설명된 페이지-기반 반복 복호화 동작을 구체적으로 설명하기 위한 흐름도이고, 도 5는 페이지-기반 반복 복호화 동작이 수행될 때 가변되는 각 섹터의 복호화 시간을 설명하기 위한 도면이다. 이하. 본 발명의 예시적인 실시예에 따른 페이지-기반 반복 복호화 동작이 참조 도면들에 의거하여 상세히 설명될 것이다. 설명의 편의상, 페이지-기반 반복 복호화 동작은 페이지가 n개의 섹터들로 구성되고, 디폴트 복호화 시간(Tdds)이 앞서 설명된 시간 즉, (Tdw+(Tdw-Tda))로 설정된다고 가정하에서 설명될 것이다.
페이지-기반 복호화 동작이 개시되면, S121 단계에서, 변수들(SN, SIN)이, 예를 들면, 1로 초기화될 것이다. 여기서, 변수(SN)는 페이지에 속한 섹터의 번호를 나타내는 데 사용되고, 변수(SIN)는 섹터의 반복 복호화 횟수를 나타내는 데 사용될 것이다. S122 단계에서, ECC 복호기(2520)는 제어 로직(2530)의 제어 하에 변수(SN)에 대응하는 섹터(예를 들면, 첫 번째 섹터)에 대한 복호화 동작을 수행할 것이다. 복호화 동작은 단위 복호화 시간(Tuds) 동안 행해질 것이다. S123 단계에서, 제어 로직(2530)은 섹터의 복호화 동작이 조기에 종료되었는 지의 여부를 판별할 것이다. 섹터의 복호화 동작이 조기에 종료되었음은 섹터(SN)의 복호화가 디폴트 복호화 시간(Tdds)보다 짧은 시간 내에 성공적으로 행해졌음을 의미한다. 만약 섹터의 복호화 동작이 조기에 종료되지 않은 것으로 판별되면, 절차는 S124 단계로 진행할 것이다.
S124 단계에서, 제어 로직(2530)은 반복 복호화 횟수(SIN)가 최대 반복 복호화 횟수(MIN)(디폴트 복호화 시간(Tdds)/단위 복호화 시간(Tuds))보다 작은 지의 여부를 판별할 것이다. 반복 복호화 횟수(SIN)가 최대 반복 복호화 횟수(MIN)보다 작은 것으로 판별되면, S125 단계에서 변수(SIN)의 값이 1만큼 증가된다. 이후, 절차는 S122 단계로 진행할 것이다. 반복 복호화 횟수(SIN)가 최대 반복 복호화 횟수(MIN)보다 큰 것으로 판별되면, 절차는 S126 단계로 진행할 것이다. S126 단계에서, 복호화 동작의 실패 정보가 처리 유니트(2300)으로 제공될 것이다. 복호화 동작의 실패를 처리하는 방식은 다양하게 구현될 수 있다. 예를 들면, 읽기 동작이 페일되었음이 외부로 통보되거나, 읽기 전압들의 조정과 함께 메모리(1000)의 읽기 동작이 다시 수행될 수도 있다.
만약 섹터의 복호화 동작이 조기에 종료된 것으로 판별되면, 절차는 S127 단계로 진행할 것이다. S127 단계에서, 제어 로직(2530)은 다음에 처리될 섹터의 최대 반복 복호화 횟수(MIN)(또는, 디폴트 복호화 시간)를, 조기 종료에 따라 생기는 나머지 시간(301, 도 5 참조)에 대응하는 복호화 횟수(또는, 복호화 시간)만큼 증가시킬 것이다. 비록 최대 반복 복호화 횟수가 미리 설정되더라도, 각 섹터의 최대 반복 복호화 횟수는 이전에 처리된 섹터의 복호화 동작이 조기에 종료되었는 지의 여부에 따라 가변될 것이다. 이는 나머지 시간(301, 도 5 참조) 동안 ECC 복호기(2520)가 유휴 상태로 남아있지 않음을 의미한다. 첫 번째 섹터의 복호화 동작이 조기에 종료된다는 것(또는, 첫 번째 섹터의 복호화 성공)은, 도 5에 도시된 바와 같이, 첫 번째 섹터의 복호화 동작을 수행하는 데 걸리는 시간(302)이 첫 번째 섹터의 디폴트 복호화 시간(Tdds)보다 짧음을 의미한다.
S128 단계에서, 제어 로직(2530)은 페이지에 속한 n개의 섹터들이 모두 복호화되었는 지의 여부를 판별할 것이다. 만약 그렇지 않으면, 절차는 S129 단계로 진행할 것이다. S129 단계에서 변수(SN)는 다음의 섹터가 선택되도록 1만큼 증가될 것이다. 이후, 절차는 S122 단계로 진행할 것이다. 페이지에 속한 n개의 섹터들이 모두 복호화된 것으로 판별되면, 복호화 동작은 종료될 것이다.
이상의 설명으로부터 이해되는 바와 같이, 섹터의 복호화 동작을 수행하는 데 걸리는 시간이 디폴트 복호화 시간을 초과하는 경우가 생길 수 있다. 이러한 경우, 현재 처리되는 섹터의 복호화 동작이 조기에 종료됨에 따라 생기는 시간을 다음에 처리될 섹터의 복호화 동작에 적용함으로써 섹터의 복호화 동작을 성공적으로 완료하는 것이 가능하다.
예시적인 실시예에 있어서, 다음에 복호화될 섹터는 현재 선택된 섹터의 복호화 동작 동안 메모리(1000)에서 버퍼 메모리(2400)로 전송될 수 있다.
메모리(1000)를 구성하는 플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다.
도 6은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 6을 참조하면, 본 발명에 따른 컴퓨팅 시스템은 버스(3001)에 전기적으로 연결된 마이크로프로세서(3100), 사용자 인터페이스(3200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(3300), 메모리 제어기(3400), 그리고 저장 매체로서 불 휘발성 메모리(3500)를 포함한다. 메모리 제어기(3400)와 불 휘발성 메모리(3500)는 도 1에 도시된 것(2000, 1000)과 실질적으로 동일하게 구성되며, 그러므로 그것에 대한 설명은 생략될 것이다. 도 6에 도시된 바와 같이, 불 휘발성 메모리(3500)는 복수의 메모리 칩들로 구성될 것이다. 불 휘발성 메모리(3500)에는 마이크로프로세서(3100)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(3400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(3600)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 제어기(3400)와 불 휘발성 메모리(3500)는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 반도체 드라이브/디스크(Solid State Drive/Disk: SSD)를 구성할 수 있다. 또는, 메모리 제어기(3400)와 불 휘발성 메모리(3500)는 메모리 카드를 구성할 수 있다.
본 발명의 예시적인 실시예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있으며, 예시적인 가변 저항 메모리 셀 및 그것을 포함한 메모리 장치가 미국특허번호 제7529124호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명의 다른 예시적인 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.
전하 저장층으로서 전하 트랩 플래시 구조를 갖는 메모리 장치가 미국특허 제6858906호, 미국공개특허 제2004-0169238호, 그리고 미국공개특허 제2006-0180851호에 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다. 소오스/드레인이 없는 플래시 구조는 대한민국특허 제673020호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
1000: 메모리
2000: 제어기
2000: 제어기
Claims (10)
- 채널을 통해 전송되는 데이터를 반복 복호화하는 방법에 있어서:
(a) 상기 데이터의 섹터들 중 하나를 반복적으로 복호화하는 단계와;
(b) 상기 하나의 섹터의 복호화가 성공적으로 행해진 것으로 판별될 때, 유휴 상태없이 상기 데이터에 속한 다음 섹터에 대한 반복 복호 동작을 바로 수행하는 단계와; 그리고
(c) 상기 데이터의 섹터들이 모두 복호화될 때까지 상기 (a) 및 (b) 단계들을 반복하는 단계를 포함하고,
상기 각 섹터의 복호화는 디폴트 복호화 시간 내에서 반복적으로 행해지고,
현재 처리되는 섹터의 복호화가 상기 디폴트 복호화 시간보다 짧은 시간에 완료될 때, 다음에 처리될 섹터의 복호화의 디폴트 복호화 시간은 상기 현재 처리되는 섹터의 나머지 시간만큼 증가되고,
상기 채널은 메모리로 구성되고, 상기 데이터는 상기 메모리로부터 페이지 단위로 읽혀지고,
상기 디폴트 복호화 시간은 (Tdw+(Tdw-Tda))로 설정되되, 상기 Tdw 및 Tda는 상기 메모리로부터 읽혀진 섹터들의 복호화 시간들을 테스트하여 얻어지는 최악의 복호화 시간 및 평균 복호화 시간인 것을 특징으로 하는 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 메모리와; 그리고
상기 메모리로부터 읽혀진 데이터를 저장하는 버퍼 메모리와 상기 메모리로부터 읽혀진 데이터를 복호화하는 ECC 부호화 및 복호화 블록을 갖는 제어기를 포함하며,
상기 ECC 부호화 및 복호화 블록은 디폴트 복호화 시간 내에 상기 데이터를 구성하는 섹터들 각각의 복호화를 반복적으로 수행하도록 구성되며; 그리고 현재 처리되는 섹터의 복호화가 상기 디폴트 복호화 시간보다 짧은 시간에 완료될 때, 상기 ECC 부호화 및 복호화 블록은 다음에 처리될 섹터의 디폴트 복호화 시간을 상기 현재 처리되는 섹터의 나머지 시간만큼 증가시키고,
상기 디폴트 복호화 시간은 (Tdw+(Tdw-Tda))로 설정되되, 상기 Tdw 및 Tda는 상기 메모리로부터 읽혀진 섹터들의 복호화 시간들을 테스트하여 얻어지는 최악의 복호화 시간 및 평균 복호화 시간인 데이터 저장 시스템. - 제 6 항에 있어서,
상기 버퍼 메모리에 저장될 데이터는 상기 메모리로부터 페이지 단위로 읽혀지는 데이터 저장 시스템. - 제 7 항에 있어서,
상기 페이지 단위로 읽혀진 데이터를 복호화하는 데 걸리는 시간은 고정되는 데이터 저장 시스템. - 삭제
- 제 6 항에 있어서,
상기 데이터에 속한 각 섹터의 반복 복호 시간은 일정하게 유지되는 데이터 저장 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100046596A KR101650123B1 (ko) | 2010-05-18 | 2010-05-18 | 페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법 |
US13/110,395 US8635512B2 (en) | 2010-05-18 | 2011-05-18 | Memory system with page-based iterative decoding structure and page-based iterative decoding method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100046596A KR101650123B1 (ko) | 2010-05-18 | 2010-05-18 | 페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110127001A KR20110127001A (ko) | 2011-11-24 |
KR101650123B1 true KR101650123B1 (ko) | 2016-08-24 |
Family
ID=44973486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100046596A KR101650123B1 (ko) | 2010-05-18 | 2010-05-18 | 페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8635512B2 (ko) |
KR (1) | KR101650123B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301980B2 (en) * | 2009-09-28 | 2012-10-30 | Nvidia Corporation | Error detection and correction for external DRAM |
US8190974B2 (en) * | 2009-09-28 | 2012-05-29 | Nvidia Corporation | Error detection and correction for external DRAM |
US9564920B2 (en) * | 2012-02-23 | 2017-02-07 | Qualcomm Incorporated | Method and apparatus for mitigation of false packet decodes due to early decoding |
KR102364158B1 (ko) * | 2020-04-17 | 2022-02-21 | 인하대학교 산학협력단 | Lr-dimm 애플리케이션을 위한 동시 오류-정정 메모리 인터페이스 시스템 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7253467B2 (en) | 2001-06-28 | 2007-08-07 | Samsung Electronics Co., Ltd. | Non-volatile semiconductor memory devices |
US20060180851A1 (en) | 2001-06-28 | 2006-08-17 | Samsung Electronics Co., Ltd. | Non-volatile memory devices and methods of operating the same |
DE10228768A1 (de) | 2001-06-28 | 2003-01-16 | Samsung Electronics Co Ltd | Nicht-flüchtige Floating-Trap-Halbleiterspeichervorrichtungen, die Sperrisolationsschichten mit hohen Dielektrizitätskonstanten enthaltend, und Verfahren |
WO2006038829A1 (en) | 2004-09-29 | 2006-04-13 | Intel Corporation | Iterative decoding with buffering and restoring intermediate decoder states |
US7577891B2 (en) * | 2005-05-27 | 2009-08-18 | Aquantia Corporation | Method and apparatus for extending decoding time in an iterative decoder using input codeword pipelining |
KR100673020B1 (ko) | 2005-12-20 | 2007-01-24 | 삼성전자주식회사 | 전계효과 소오스/드레인 영역을 가지는 반도체 장치 |
KR100764738B1 (ko) | 2006-04-06 | 2007-10-09 | 삼성전자주식회사 | 향상된 신뢰성을 갖는 상변화 메모리 장치, 그것의 쓰기방법, 그리고 그것을 포함한 시스템 |
US7533328B2 (en) | 2006-07-04 | 2009-05-12 | Sandisk Il, Ltd. | Method of error correction in a multi-bit-per-cell flash memory |
US20080320366A1 (en) | 2007-06-25 | 2008-12-25 | Lin Jason T | Methods of reading nonvolatile memory |
US8301963B2 (en) | 2007-10-23 | 2012-10-30 | Spansion Llc | Low-density parity-check code based error correction for memory device |
US8700970B2 (en) * | 2010-02-28 | 2014-04-15 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US8433970B2 (en) * | 2010-03-31 | 2013-04-30 | Silicon Laboratories Inc. | Techniques to control power consumption in an iterative decoder by control of node configurations |
-
2010
- 2010-05-18 KR KR1020100046596A patent/KR101650123B1/ko active IP Right Grant
-
2011
- 2011-05-18 US US13/110,395 patent/US8635512B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8635512B2 (en) | 2014-01-21 |
KR20110127001A (ko) | 2011-11-24 |
US20110289384A1 (en) | 2011-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8560901B2 (en) | Apparatus, method and memory device for error correction by increasing or decreasing a read voltage and analyzing frequency information for a read error pattern | |
US7890818B2 (en) | Read level control apparatuses and methods | |
KR101398200B1 (ko) | 메모리 장치 및 인코딩/디코딩 방법 | |
JP5345201B2 (ja) | 符号化および/または復号化メモリ装置および方法 | |
US20100241928A1 (en) | Data Processing System Having ECC Encoding and Decoding Circuits Therein with Code Rate Selection Based on Bit Error Rate Detection | |
US8499217B2 (en) | Memory device and error control codes decoding method | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
US8301978B2 (en) | Memory device and method of storing data with error correction using codewords | |
US9141467B2 (en) | Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof | |
US8650458B2 (en) | Methods of encoding/decoding for error correction code utilizing interdependent portions of codewords and related circuits | |
TWI543178B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
KR101386489B1 (ko) | 메모리 장치 및 멀티 비트 프로그래밍 방법 | |
US9100054B2 (en) | Data processing systems and methods providing error correction | |
KR20110097439A (ko) | 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법 | |
KR101650123B1 (ko) | 페이지-기반 반복 복호 구조를 갖는 메모리 시스템 및 그것의 페이지-기반 반복 복호 방법 | |
JP5336501B2 (ja) | ビット列間のエラー制御コードをエンコードする方法およびエンコードシステム | |
CN107590018B (zh) | 译码方法、存储器控制电路单元及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190731 Year of fee payment: 4 |