KR101483190B1 - 메모리 시스템 및 그것의 데이터 처리 방법 - Google Patents

메모리 시스템 및 그것의 데이터 처리 방법 Download PDF

Info

Publication number
KR101483190B1
KR101483190B1 KR20080087877A KR20080087877A KR101483190B1 KR 101483190 B1 KR101483190 B1 KR 101483190B1 KR 20080087877 A KR20080087877 A KR 20080087877A KR 20080087877 A KR20080087877 A KR 20080087877A KR 101483190 B1 KR101483190 B1 KR 101483190B1
Authority
KR
South Korea
Prior art keywords
data
sub
sector
read
error
Prior art date
Application number
KR20080087877A
Other languages
English (en)
Other versions
KR20100028924A (ko
Inventor
최진혁
오화석
송종욱
Original Assignee
삼성전자주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR20080087877A priority Critical patent/KR101483190B1/ko
Priority to US12/512,097 priority patent/US8230303B2/en
Priority to CN200910168379.6A priority patent/CN101667454B/zh
Publication of KR20100028924A publication Critical patent/KR20100028924A/ko
Application granted granted Critical
Publication of KR101483190B1 publication Critical patent/KR101483190B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5646Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 플래시 메모리를 포함하는 메모리 시스템의 데이터 처리 방법을 제공하며, 이 데이터 처리 방법은 상기 플래시 메모리의 선택된 페이지로부터 초기에 읽혀진 데이터가 정정 가능한 지의 여부를 판별하는 단계와; 상기 초기에 읽혀진 데이터가 정정 가능하지 않은 것으로 판별되면, 새롭게 결정된 읽기 전압들 각각에 의거하여 상기 선택된 페이지로부터 데이터를 다시 읽는 단계와; 상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여, 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들을 모으는 단계와; 그리고 상기 초기에 읽혀진 데이터의 이씨씨 데이터에 의거하여, 상기 에러가 없는 서브-섹터들로 구성된 데이터를 정정하는 단계를 포함한다.

Description

메모리 시스템 및 그것의 데이터 처리 방법{MEMORY SYSTEM AND DATA PROCESSING METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 메모리 시스템에 관한 것이다.
플래시 메모리 장치는 복수의 메모리 영역들이 한번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. 일반적인 EEPROM은 단지 하나의 메모리 영역이 한 번에 소거 또는 프로그램 가능하게 하며, 이는 플래시 메모리 장치를 사용하는 시스템들이 동시에 다른 메모리 영역들에 대해 읽고 쓸 때 보다 빠르고 효과적인 속도로 플래시 메모리 장치가 동작할 수 있음을 의미한다. 플래시 메모리 및 EEPROM의 모든 형태는 데이터를 저장하는 데 사용되는 전하 저장 수단을 둘러싸고 있는 절연막의 마멸로 인해서 특정 수의 소거 동작들 후에 마멸된다.
플래시 메모리 장치는 실리콘 칩에 저장된 정보를 유지하는 데 전원을 필요로 하지 않는 방법으로 실리콘 칩 상에 정보를 저장한다. 이는 만약 칩에 공급되는 전원이 차단되면 전원의 소모없이 정보가 유지됨을 의미한다. 추가로, 플래시 메모리 장치는 물리적인 충격 저항성 및 빠른 읽기 접근 시간을 제공한다. 이러한 특징 들때문에, 플래시 메모리 장치는 배터리에 의해서 전원을 공급받는 장치들의 저장 장치로서 일반적으로 사용되고 있다. 플래시 메모리 장치는 각 저장 소자에 사용되는 로직 게이트의 형태에 따라 2가지 종류 즉, 노어 플래시 메모리 장치와 낸드 플래시 메모리 장치로 이루어진다.
플래시 메모리 장치는 셀이라 불리는 트랜지스터들의 어레이에 정보를 저장하며, 각 셀은 1-비트 정보를 저장한다. 멀티-레벨 셀 장치라 불리는 보다 새로운 플래시 메모리 장치들은 셀의 플로팅 게이트 상에 놓인 전하량을 가변시킴으로써 셀 당 1 비트보다 많이 저장할 수 있다.
플로팅 게이트 기술들을 이용하는 플래시 메모리 장치에 있어서, 데이터 보유 특성(data-retention characteristics) 및 질적 저하없는 프로그램/소거 사이클 수(또는 내구성)은 가장 중요한 신뢰성 관심사이다. 저장된 전하(또는 전자들)는 결함 인터폴리 절연막을 통한 열이온 방출 및 전하 확산, 이온 불순물, 프로그램 디스터브 스트레스, 등과 같은 다양한 페일 메카니즘들을 통해 플로팅 게이트로부터 누설될 수 있다. 이는 문턱 전압의 감소를 야기할 것이다. 제어 게이트가 소정 전압(예를 들면, 전원 전압 또는 읽기 전압)으로 유지된 상태에서 플로팅 게이트가 서서히 전하들을 얻을 때, 즉, 읽기 디스터브(read disturbance)로 인해서 전하 획득의 반대 효과가 생길 수 있다. 이는 문턱 전압의 증가를 야기한다.
따라서, 메모리 셀들의 문턱 전압 분포들은 전하 손실 및 전하 획득으로 인해서 점차적으로 넓어지게 될 것이다. 예를 들면, 메모리 셀 당 2-비트 데이터가 저장된다고 가정하자. 이러한 가정에 의하면, 도 1a에 도시된 바와 같이, 각 메모 리 셀은 하나의 소거 상태(E) 및 3개의 프로그램 상태들(P1, P2, P3) 중 어느 하나를 가질 것이다. 이상적으로, 상태들(E, P1, P2, P3) 즉, 상태들(E, P1, P2, P3)에 각각 대응하는 문턱 전압 분포들(10, 11, 12, 13) 사이에는 일정한 셀 마진(또는, 읽기 마진)이 존재할 것이다. 하지만, 도 1b에 도시된 바와 같이, 앞서 언급된 전하 손실 및 전하 획득으로 인해서 문턱 전압 분포들(10, 11, 12, 13) 특히, 프로그램 상태들(P1, P2, P3)에 대응하는 문턱 전압 분포들(11, 12, 13)은 넓어질 것이다. 이는 메모리 셀들로부터 읽혀진 데이터에 많은 에러 비트들이 존재함을 의미한다. 특히, 이러한 현상은 메모리 셀에 저장되는 데이터 비트들의 수가 증가함에 따라 더욱 심각해질 것이다.
본 발명의 목적은 에러 정정 능력을 향상시킬 수 있는 데이터 처리 기법 및 그것을 포함한 메모리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 제한된 에러 정정 능력을 초과하는 에러를 정정할 수 있는 데이터 처리 기법 및 그것을 포함하는 메모리 시스템을 제공하는 것이다.
본 발명의 일 특징은 플래시 메모리를 포함하는 메모리 시스템의 데이터 처리 방법을 제공하며, 이 데이터 처리 방법은 상기 플래시 메모리의 선택된 페이지로부터 초기에 읽혀진 데이터가 정정 가능한 지의 여부를 판별하는 단계와; 상기 초기에 읽혀진 데이터가 정정 가능하지 않은 것으로 판별되면, 새롭게 결정된 읽기 전압들 각각에 의거하여 상기 선택된 페이지로부터 데이터를 다시 읽는 단계와; 상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여, 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들을 모으는 단계와; 그리고 상기 초기에 읽혀진 데이터의 이씨씨 데이터에 의거하여, 상기 에러가 없는 서브-섹터들로 구성된 데이터를 정정하는 단계를 포함한다.
본 발명의 다른 특징은 플래시 메모리와; 그리고 에러 정정 프로세서 및 에러 검사 정정 블록을 가지며, 상기 플래시 메모리를 제어하도록 구성된 메모리 제어기를 포함하는 메모리 시스템은 제공하는 것이다. 상기 플래시 메모리의 선택된 페이지로부터 초기에 읽혀진 데이터가 상기 에러 검사 정정 블록에 의해서 정정 가능하지 않은 것으로 판별될 때, 상기 에러 정정 프로세서는 새롭게 결정된 읽기 전압들 각각에 의거하여 상기 선택된 페이지로부터 데이터가 다시 읽혀지도록 상기 플래시 메모리를 제어하며; 상기 에러 정정 프로세서는 상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들을 모으도록 구성된다.
본 발명에 의하면, 향상된 에러 정정 능력을 제공함으로써 집적도의 증가에 따라 셀 마진이 감소하는 경우 그리고/또는 하나의 메모리 셀에 여러 개의 비트 정보를 저장하는 경우 메모리 셀의 신뢰성을 크게 높일 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되 어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 반도체 메모리 장치로서 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
본 발명에서 사용되는 용어 "섹터"는 ECC 처리 단위를 의미한다. 설명의 편의상, 하나의 섹터가 ECC 처리 단위를 구성한다는 가정 하에서 본 발명이 설명될 것이다. 하지만, 둘 또는 그 보다 많은 섹터들이 ECC 처리 단위를 구성함은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. ECC 처리 단위를 나타내는 용어가, 또한, 섹터로 제한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 2는 본 발명의 다양한 특징들이 구현된 메모리 시스템을 보여주는 블록도이다.
도 2를 참조하면, 본 발명에 따른 메모리 시스템(101)은 컴퓨터 시스템과 같은 호스트 전자 시스템의 시스템 버스(102)에 연결되어 있다. 몇몇 예시적인 전자 시스템들은 본 발명에 따른 메모리 시스템(101)을 사용하는 컴퓨터, 랩탑 컴퓨터(laptop computers), 포켓용 컴퓨터(handheld computers), 팜탑 컴퓨터(palmtop computers), PDA, MP3 및 다른 오디오 재생기, 디지털 카메라, 비디오 카메라, 전자 게임기(electronic game machines), 유무선 전화 장치(wireless and wired telephony devices), 자동 응답기(answering machines), 보이스 리코더(voice recoders), 네트워크 라우터(network routers), 또는 다른 시스템을 포함할 것이다.
호스트 전자 시스템은 시스템 버스(102), 마이크로프로세서와 같은 중앙 프로세서(300), 입력-출력 장치들(input-output devices) 또는 회로들과의 연결을 제공하기 위한 회로(400), 그리고 휘발성 메모리(500)를 갖는다. 몇몇 예시적인 입력-출력 장치들은 키보드, 모니터, 모뎀, 그리고 그와 같은 것일 것이다. 메모리 시스템(101)은 메모리 제어기(100)와 플래시 메모리 셀들의 어레이를 갖는 플래시 메모리(200)를 포함할 것이다. 메모리 제어기(100) 및 플래시 메모리(200)는 단일의 집적 회로 상에 구현될 수 있다. 집적 회로는 종종 칩이라 불린다. 또는, 메모리 시스템(101)을 형성하기 위해서 2개 또는 그 보다 많은 집적 회로 칩들이 사용될 수 있다. 예를 들면, 메모리 제어기(100)는 전용 집적 회로로 구성되고, 플래시 메모리(200)는 요구되는 메모리 용량에 따라 하나 또는 그 보다 많은 칩들로 구성될 것이다. 메모리 시스템(101)은 호스트 장치인 컴퓨터에 영구적으로 장착되거나 호스트에 탈착가능하게 연결되는 작은 카드(small card)로 포장될 수 있다.
예시적인 실시예에 있어서, 플래시 메모리(200)는 단일-비트 데이터 그리고/ 또는 멀티-비트(멀티-레벨) 데이터를 저장할 것이다. 특히, 플래시 메모리(200)의 각 메모리 셀은 2-비트 데이터, 3-비트 데이터, 또는 4-비트 데이터를 저장할 것이다.
도 3은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 3을 참조하면, 메모리 제어기(100)는 호스트 인터페이스(110), 플래시 인터페이스(120), 내장 프로세서(embedded processor)(130), 버퍼(140), 에러 정정 프로세서(150), 그리고 에러 검사 정정(ECC) 블록(160)을 포함할 것이다.
호스트 인터페이스(110)는 외부 장치(즉, 호스트 시스템)와의 인터페이스를 제공하며, 플래시 인터페이스(120)는 플래시 메모리(200)와의 인터페이스를 제공할 것이다. 예를 들면, 플래시 인터페이스(120)는 외부 장치(예를 들면, 호스트 시스템)의 요청에 따라 플래시 메모리(200)에 대한 읽기 및 쓰기 동작들을 제어할 것이다. 내장 프로세서(130)는 메모리 제어기(100)의 전반적인 동작을 제어할 것이다. 버퍼(140)는 플래시 메모리(200)에 저장될 데이터 또는 플래시 메모리(200)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 것이다. 게다가, 버퍼(140)는 메모리 제어기(100) 내에서 처리되는 데이터를 임시 저장하는 데 사용될 것이다. 버퍼(140)는 하나 또는 그 보다 많은 휘발성 메모리들로 구성될 수 있다. 에러 정정 프로세서(150)는 쓰기 동작시 플래시 메모리(200)에 저장될 데이터를 에러 검출이 용이한 데이터로 변경하도록 구성되며, 이는 이후 상세히 설명될 것이다. 에러 정정 프로세서(150)는 읽기 동작시 플래시 메모리(200)로부터 읽혀진 데이터의 에러 비트들을 최소화하도록 구성되며, 이는 이후 상세히 설명될 것이다. ECC 블록(160)은 쓰 기 동작시 플래시 메모리(200)에 저장될 데이터로부터 ECC 데이터를 생성하도록 그리고 읽기 동작시 플래시 메모리(200)로부터 읽혀진 데이터의 에러를 검출 및 정정하도록 구성될 것이다. 본 발명의 ECC 블록(160)은 일반적인 에러 정정 능력을 갖도록 구현될 것이다.
도 4는 본 발명의 메모리 시스템에 따른 데이터 처리 방식을 개략적으로 설명하기 위한 도면이다.
도 4를 참조하면, 쓰기 동작이 외부 장치(즉, 호스트 시스템)으로부터 요청될 때, 호스트 시스템으로부터 메모리 시스템(101)으로 데이터가 입력될 것이다. 입력된 데이터는 호스트 인터페이스(110)를 통해 버퍼(140)에 임시 저장될 것이다. 이때, 입력된 데이터는 에러 정정 프로세서(150)에 의해서 에러 검출이 용이한 데이터로 변경될 것이다(1010). 에러 검출이 용이한 데이터를 생성하기 위한 코딩 방법은 다양하게 구현될 수 있으며, 이는 이후 상세히 설명될 것이다. 그 다음에, ECC 블록(160)을 통해 변경된 데이터에 ECC 데이터가 부가될 것이다(1020). 마지막으로, 변경된 데이터는 ECC 데이터와 함께 플래시 메모리(200)에 저장될 것이다(1030). 읽기 동작이 외부 장치 즉, 호스트 시스템으로부터 요청될 때, 플래시 메모리(200)로부터 데이터가 읽혀질 것이다. 앞서 언급된 바에 따르면, 읽혀진 데이터에는 변경된 데이터와 ECC 데이터가 포함될 것이다. 그 다음에, ECC 데이터와 관계없이 에러 정정 프로세서(150)를 통해 읽혀진 데이터의 에러가 있는 비트들이 최소화될 것이다(1050). 마지막으로, ECC 데이터에 의거하여 읽혀진 데이터에 대한 에러가 ECC 블록(160)을 통해 검출 및 정정될 것이다(1060). 에러-처리된 데이터는 외부 장치 즉, 호스트 시스템으로 전송될 것이다.
예시적인 실시예에 있어서, 입력된 데이터를 에러 검출이 용이한 데이터로 변경하는 동작은 데이터 입력시에 수행되는 대신에 플래시 메모리로의 데이터 전송시에 수행될 수도 있다.
쓰기 동작시 에러 검출이 용이하도록 데이터를 변경하고 읽기 동작시 변경된 데이터의 에러 비트들을 최소화시킴으로써 고성능 에러 정정 능력 대신 일반적인 에러 정정 능력을 갖는 ECC 블록(160)을 이용하여 에러 정정 능력을 벗어난 에러 비트들을 정정하는 것이 가능하다.
도 5는 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 쓰기 방법을 개략적으로 보여주는 흐름도이고, 도 6은 본 발명의 예시적인 실시예들에 따른 데이터 변경 방식을 개략적으로 보여주는 도면이다. 이하, 도 5 및 도 6을 참조하여 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 쓰기 방법이 설명될 것이다.
외부 장치(즉, 호스트 시스템)로부터 쓰기 동작이 요청됨에 따라, 플래시 메모리(200)에 쓰여질 데이터가 호스트 인터페이스(110)를 통해 버퍼(140)에 저장될 것이다(S100). 예를 들면, 입력 데이터는 섹터 데이터일 것이다. 즉, 512B 데이터가 전송 단위에 따라 순차적으로 버퍼(140)에 저장될 것이다. 이때, 에러 정정 프로세서(150)는 입력 데이터를 복수의 서브-섹터들(또는 복수의 그룹들)로 구분하고, 각 서브-섹터에 대응하는 플래그 정보를 생성할 것이다(S120). 예시적인 실시예에 있어서, 플래그 정보는 대응하는 서브-섹터의 에러를 검출하는 데 사용되며, 패리티 데이터일 것이다. 패리티 데이터는 N-비트 패리티 데이터(N은 1 또는 그 보 다 큰 양의 정수)로 구성될 것이다. 따라서, 도 6에 도시된 바와 같이, 입력된 512B의 섹터 데이터는 복수의 서브-섹터 데이터로 나눠지고, 각 서브-섹터 데이터에는 N-비트 패리티 데이터(PT)가 부가될 것이다. 이는 에러 정정 프로세서(150)를 통해 행해질 것이다. 서브-섹터들의 수가 다양하게 변경될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
그 다음에, 입력 데이터 즉, 에러 검출이 용이한 데이터로 변경된 입력 데이터는 플래시 메모리(200)로 전송될 것이다. 이때, 입력 데이터에 의거하여 잘 알려진 방식에 따라 ECC 데이터가 ECC 블록(160)을 통해 생성될 것이다(S140). ECC 데이터는 플래그 정보 및 입력 데이터에 의거하여 생성되거나 입력 데이터에 의거하여 생성될 것이다. 마지막으로, ECC 데이터 및 플래그 정보와 함께 입력 데이터는 플래시 메모리(200)에 저장될 것이다(S160). 입력 데이터는 플래시 메모리(200)의 메인 필드(또는, 영역)에 저장되고, ECC 데이터 및 플래그 정보는 플래시 메모리(200)의 스페어 필드(또는, 영역)에 저장될 것이다.
도 7은 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 읽기 방법을 개략적으로 보여주는 흐름도이고, 도 8은 본 발명의 예시적인 실시예들에 따른 데이터 읽기 방식을 개략적으로 보여주는 도면이다. 이하, 도 7 및 도 8을 참조하여 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 읽기 방법이 설명될 것이다.
읽기 동작이 요청됨에 따라, 메모리 제어기(100)의 제어하에 플래시 메모리(200)로부터 데이터가 읽혀질 것이다. 좀 더 구체적으로 설명은 다음과 같다. 먼저, 메모리 제어기(100)의 제어하에 플래시 메모리(200)로부터 데이터가 읽혀질 것 이다(S200). 읽혀진 데이터는 ECC 데이터 및 플래그 정보를 포함하며, 버퍼(140)에 저장될 것이다. 잘 알려진 바와 같이, 읽혀진 데이터에 에러가 포함되었는 지의 여부가 ECC 블록(160)을 통해 검출될 것이다. 만약 에러가 검출되면, 검출된 에러가 정정 가능한 지의 여부가 ECC 블록(160)에 의해서 판별될 것이다. 만약 정정 가능한 에러가 검출되면, 잘 알려진 방식에 따라 ECC 데이터에 의거하여 읽혀진 데이터의 에러가 정정될 것이다(S260). 이후, 읽혀진 데이터는 외부 장치(즉, 호스트 시스템)으로 전송되며, 읽기 동작은 종료될 것이다. 마찬가지로, 만약 에러가 검출되지 않으면, 읽혀진 데이터는 외부 장치(즉, 호스트 시스템)으로 전송되며, 읽기 동작은 종료될 것이다.
다시 S210 단계로 돌아가서, 만약 검출된 에러가 ECC 블록(160)에 의해서 정정 가능하지 않은 것으로 판별되면, 에러 정정 프로세서(150)의 제어하에 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들이 모아질 것이다(S220). 에러가 없는 서브-섹터(error-free sub-sector)는 대응하는 플래그 정보 즉, 대응하는 패리티 데이터에 의거하여 선택될 것이다. 즉, 에러 정정 프로세서(150)는 버퍼(140)에 저장된 각 서브-섹터의 데이터의 에러 여부를 대응하는 패리티 데이터에 의거하여 판별할 것이다. 판별 결과로서, 도 8에 도시된 바와 같이, 에러가 없는 서브-섹터 즉, 최종 데이터는 버퍼(140)의 다른 영역에 저장될 것이다. 에러가 없는 서브-섹터들이 선별된 후, 에러 정정 프로세서(150)는 플래시 메모리(200)로부터 데이터가 다른 읽기 조건하에서 읽혀지도록 플래시 메모리(200)를 제어할 것이다(S230). 예를 들면, 에러 정정 프로세서(150)는 현재의 읽기 동작을 위한 읽기 전압이 이전 의 읽기 동작을 위한 읽기 전압보다 소정 전압만큼 낮아지도록/높아지도록 플래시 인터페이스(120)를 통해 플래시 메모리(200)를 제어할 것이다. 또는, 에러 정정 프로세서(150)는 미리 설정된 전압으로 읽기 전압이 설정되고 읽기 전압이 읽기 동작의 반복에 따라 점차적으로 증가하도록 플래시 메모리(200)를 제어할 것이다. 변경된 읽기 조건 하에서 다시 읽혀진 데이터는 버퍼(140)에 저장될 것이다.
예시적인 실시예에 있어서, 읽기 동작의 반복시 결정되는 시작 읽기 전압은 최초의 읽기 동작에서 사용된 읽기 전압보다 낮으며, 시작 읽기 전압은 메모리 셀에 저장되는 데이터 비트들의 수, 데이터 유지 시간, 등을 고려하여 다양하게 결정될 것이다. 또는, 읽기 동작의 반복시 결정되는 시작 읽기 전압은 최초의 읽기 동작에서 사용된 읽기 전압보다 높을 것이다. 읽기 동작의 반복은 에러 정정 프로세서(150) 대신 내장 프로세서(130)의 제어하에 행해질 수도 있다.
그 다음에, 변경된 읽기 조건에 따라 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들이 에러 정정 프로세서(150)의 제어하에 모아질 것이다(S240). 이러한 경우, 이전에 에러가 없는 서브-섹터로 판별된 서브-섹터는 판별 과정에서 제외될 것이다. 앞서 언급된 바와 같이, 에러가 없는 서브-섹터는 대응하는 플래그 정보 즉, 대응하는 패리티 데이터에 의거하여 선택될 것이다. 그 다음에, 앞서 설명된 동작 즉, 모든 서브-섹터에 대한 에러 판별 및 읽기 과정이 종료되었는 지의 여부가 판별될 것이다(S250). 만약 모든 서브-섹터에 대한 에러 판별 및 읽기 과정이 종료되지 않은 것으로 판별되면, 절차는 S230 단계로 진행할 것이다. 만약 모든 서브-섹터에 대한 에러 판별 및 읽기 과정이 종료된 것으로 판별되면, 절차는 S260 단계로 진행하며, 이 단계에서는 잘 알려진 방식에 따라 ECC 데이터에 의거하여 읽혀진 데이터의 에러가 정정될 것이다(S260). 이후, 읽혀진 데이터는 외부 장치(즉, 호스트측)으로 전송되며, 읽기 동작은 종료될 것이다.
본 발명의 예시적인 실시예에 있어서, 서브-섹터들에 대한 에러 판별 및 읽기 과정은 에러가 있는 서브-섹터에 대한 정해진 읽기 횟수로 제한될 것이다. 예를 들면, 임의의 서브-섹터가 정해진 읽기 횟수 내에서 계속해서 에러가 있는 것으로 판별되더라도, 모든 서브-섹터들에 대한 에러 판별 및 읽기 과정이 에러 정정 프로세서(150)에 의해서 완료된 것으로 처리될 것이다.
앞서 설명으로부터 알 수 있듯이, 입력된 데이터를 에러 검출이 용이한 데이터로 변경하여 저장하고, 반복적인 읽기 과정을 통해 읽혀진 데이터 중 에러가 없는 서브-섹터들을 선별함으로써 읽혀진 데이터의 에러 비트들의 수를 최소화시키는 것이 가능하다. 이후, 에러가 최소화된 데이터는 ECC 데이터에 의거하여 정정될 것이다. 다시 말해서, 제조 공정의 미세화와 메모리 셀에 저장된 데이터 비트들의 증가에 따라 그리고 전하 손실 및 전하 획득에 따라, 도 1b에 도시된 바와 같이, 인접한 문턱 전압 분포들이 중첩될 수 있다. 인접한 문턱 전압 분포들의 중첩으로 인해 ECC 블록(160)의 에러 정정 능력을 초과한 에러가 발생할 수 있다. ECC 블록(160)의 에러 정정 능력을 향상시키지 않은 상태에서, 본 발명의 데이터 처리 기법을 통해 에러 정정 능력을 초과한 에러를 정정하는 것이 가능하다.
본 발명의 예시적인 실시예에 잇어서, 플래그 정보로서 패리티 데이터의 비트 수는 다양하게 변경될 것이다. 예시적인 몇몇 방법들이 이하 상세히 설명될 것 이다.
<1-비트 패리티 데이터를 사용하는 경우>
1-비트 패리티 데이터의 경우, '1'의 개수가 홀수 일때 패리티 데이터를 '1'로 그리고 '1'의 개수가 짝수일 때 패리티 데이터를 '0'으로 설정할 것이다. 이러한 조건하에서 서브-섹터의 데이터 중 하나의 비트가 잘못 읽힐 경우. 계산된 패리티 데이터와 읽은 패리티(쓰기 동작시 저장됨)가 서로 다르기 때문에, 그러한 서브-섹터는 에러 정정 프로세서(150)에 의해서 잘못된 서브-섹터(즉, 에러가 있는 서브-섹터)로서 판별될 것이다. 서브-섹터의 데이터 중 2개의 데이터 비트들이 손상이 되었을 경우, 서브-섹터에 대한 에러 여부를 판단할 수 없다. 그러나 실제의 상황에서, 예를 들어, ECC 블록(160)이 8-비트 ECC 능력을 갖지만, 10-비트 에러가 발생하여 데이터를 복구할 수 없는 경우를 가정하자. 이러한 가정에 의하면, 한 섹터를 32개의 서브-섹터들로 구별한 경우, 하나의 서브-섹터에서 2개의 비트들이 동시에 발생하여 10-비트 에러를 복구할 수 없게 될 확률은 낮기 때문에 적용 가능하다. 만약 그런 경우가 발생하여도 다른 서브-섹터의 에러가 복구되면, 섹터의 에러 비트 수는 ECC 블록(160)의 수정이 가능한 범위에 들게 되며, 그 결과 마지막의 ECC 과정(ECC 블록)을 통하여 데이터를 복구할 수 있다.
<2-비트 패리티 데이터를 사용하는 경우>
2-비트 패리티 데이터를 사용하는 경우, 서브-섹터에 포함된 '1'의 개수(X)에 대한 4의 나눗셈을 한 나머지 (X Modulo 4)가 패리티 데이터로 결정될 것이다. 즉, 서브-섹터의 크기가 16B라고 가정하자. 이러한 가정하에서, 만약 16B의 서브- 섹터에 포함된 '1'의 개수가 65개라면, (65 modulo 4)는 '1'이 되며, 그 결과 '1'에 해당하는 '01'이 2-비트 패리티 데이터로 결정될 것이다. 이 경우, 에러의 발생 여부 뿐 아니라 '1'의 개수가 더 많은 지 아니면 더 적은지를 알 수 있기 때문에, 더 정확한 데이터 보상이 가능하다. 만약 하나의 서브-섹터 내에 2개의 데이터 비트들이 손상되었으나 우연히 한 비트는 '0'의 데이터가 '1'로 읽히고 다른 한 비트는 '1'의 데이터가 '0'으로 읽힐 경우 데이터 복구가 불가능한 문제가 있을 수 있다. 하지만, 이러한 확률은 통상적으로 아주 낮을 뿐 아니라 에러 발생을 크게 낮출 수 있어 통상적인 에러 정정 능력(예를 들면, 8-비트 ECC 또는 16-비트 ECC)을 갖는 ECC 블록(160)을 통해 에러를 검출 및 정정하는 것이 가능하다.
다른 예로서, 3-비트 패리티 데이터를 사용하는 경우, 2-비트 패리티 데이터와 마찬가지로, 서브-섹터에 포함된 '1'의 개수(X)의 Modulo 8 (X modulo 8)을 패리티 데이터로 결정함으로써 에러 검출 능력을 더욱 향상시킬 수 있다.
본 발명에서 제안하는 패리티 데이터 구성의 또 다른 방법으로는 CRC (Cyclic Redundancy Check)를 패리티로서 사용하는 것이 가능하다. 이 경우, 앞서 설명한 방법과 비교하여 볼 때, '0' 및 '1'의 에러가 동시에 발생하여도 에러를 검출 할 수 있다. 즉, 3-비트 패리티 데이터를 사용하는 경우, 에러를 검출할 능력을 크게 높일 수 있다. 이에 반해서, '1'의 개수가 더 많거나 적은 지의 여부를 판단하는 것이 불가능하다.
본 발명에 따른 패리티 구현이 앞서 설명된 방식에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
서브-섹터에 포함된 '1'의 개수(X)에 대한 Modulo 4 (X modulo 4)를 2-비트 패리티 데이터로 사용하는 경우 방향성을 이용하여 더욱 더 향상된 방법을 이용할 수 있다. 예를 들면, 서브-섹터에 포함된 '1'의 개수(X)에 대한 Modulo 4 (X modulo 4)를 패리티 데이터로서 사용하는 경우, 서브-섹터에서 계산된 패리티 값과 실제 읽은 패리티 값이 차이가 생길 때, 서브-섹터의 데이터가 '1'이 많이 읽히는 데이터인지 또는 '1'이 더 적게 읽히는 데이터인 지의 여부를 판별하는 것이 가능하다. 예를 들면, 계산된 패리티 값이 '00'이고 읽혀진 패리티 값이 '01'이라고 가정하면, 서브-섹터의 데이터는 '1'이 적게 읽히는 데이터로서 판별될 것이다. 이러한 경우, '1'이 많이 읽혀지도록 읽기 조건이 변경되며, 도 9에 도시된 바와 같이, 변경된 읽기 조건에 따라 플래시 메모리(200)에서 데이터가 읽혀질 것이다. 이에 반해서, 계산된 패리티 값이 '01'이고 읽혀진 패리티 값이 '00'이라고 가정하면, 서브-섹터의 데이터는 '1'이 많이 읽히는 데이터로서 판별될 것이다. 이러한 경우, 도 9에 도시된 바와 같이, '1'이 적게 읽혀지도록 읽기 조건이 변경되며, 변경된 읽기 조건에 따라 플래시 메모리(200)에서 데이터가 읽혀질 것이다.
따라서, 읽기 전압이 어떤 방향으로 다시 설정되는 지에 따라, '1'이 더 많이 읽히는 방향인지 '1'이 더 적게 읽히는 방향인지를 미리 알 수 있다. 다만, 읽기 조건을 변경하는 것이 반드시 에러가 작아지는 방향을 의미하지는 않는다. 그러나, 본 발명의 경우, 에러가 없는 서브-섹터는 더 이상 처리되지 않음으로써, 제대로 읽힌 데이터가 다음 조건에서 잘못 읽힐 확률을 없애고, '1'이 더 적게 읽힌 서브-섹터는 '1'이 더 많게 읽히는 읽기 조건에서만 패리티를 확인하고 확인 결과 에 러가 없는 것으로 판명된 서브-섹터만 최종 데이터로 선택된다. 다시 말해서, '1'이 더 적게 읽힌 서브-섹터를 '1'이 더욱 더 적게 읽히는 방향으로 읽기 동작을 수행하였으나 에러가 없는 것으로 판별되면, 실제 에러가 없어진 것이 아니라 추가의 에러가 발생하여 우연히 패리티가 일치하였을 확률이 높으므로 이 값은 제거될 것이다. 마찬가지로 '1'이 더 많게 읽힌 서브-섹터는 '1'이 적게 나오는 방향으로 다시 읽었을 경우 제대로 읽힐 확률이 높으므로 이 경우에 패리티가 일치하는 데이터만 이 선택될 것이다. 이러한 방법으로 읽을 경우 패리티 확인 만으로 에러를 크게 줄일 수 있다.
예시적인 실시예에 있어서, 에러 정정 프로세서는 플래시 메모리의 사용 초기부터 동작하도록 또는 일정 시간(또는 일정 프로그램-소거 사이클)이 경과한 후 동작하도록 설정될 수 있다.
도 10은 본 발명의 다른 실시예에 따른 메모리 시스템의 데이터 처리 방식을 개략적으로 설명하기 위한 도면이다.
도 10을 참조하면, 쓰기 동작이 외부 장치(즉, 호스트 시스템)으로부터 요청될 때, 호스트 시스템으로부터 메모리 시스템(101)으로 데이터가 입력될 것이다. 입력된 데이터는 호스트 인터페이스(110)를 통해 버퍼(140)에 임시 저장될 것이다(3010). 이후, 버퍼(140)에 저장된 데이터는 플래시 메모리(200)로 전송될 것이다. 버퍼(140)에 저장된 데이터가 플래시 메모리(200)로 전송되는 동안, ECC 블록(160)은 전송되는 데이터에 의거하여 ECC 데이터를 생성하고, 에러 정정 프로세서(150)는 전송되는 데이터에 의거하여 서브-섹터 단위의 EDC 데이터를 생성할 것 이다(3020). 여기서, 섹터 단위의 데이터는 복수의 서브-섹터들로 구성되며, 각 서브-섹터에 대해서 EDC 데이터가 생성될 것이다. 이는 이후 상세히 설명될 것이다. 마지막으로, 전송된 데이터는 ECC 데이터 및 EDC 데이터와 함께 플래시 메모리(200)에 저장될 것이다(3030).
읽기 동작이 외부 장치 즉, 호스트 시스템으로부터 요청될 때, 플래시 메모리(200)로부터 데이터가 읽혀질 것이다(3040). 읽혀진 데이터에는 본래의 데이터와 ECC 데이터가 포함될 것이다. 그 다음에, ECC 블록(160)은 ECC 데이터에 의거하여, 읽혀진 데이터가 에러가 있는 지의 여부를 판별할 것이다. 만약 읽혀진 데이터가 에러가 있는 것으로 판별되면, ECC 블록(160)은 읽혀진 데이터의 에러가 정정 가능한 지의 여부를 판별할 것이다(3050). 만약 읽혀진 데이터의 에러가 ECC 데이터를 이용하여 정정 가능하지 않은 것으로 판별되면, ECC 데이터와 관계없이 에러 정정 프로세서(150)를 통해 읽혀진 데이터의 에러가 있는 비트들이 최소화될 것이다(3060). 이는 이후 상세히 설명될 것이다. 읽혀진 데이터의 에러가 있는 비트들이 최소화된 후, ECC 데이터에 의거하여 읽혀진 데이터에 대한 에러가 ECC 블록(160)을 통해 검출 및 정정될 것이다(3070). 만약 읽혀진 데이터의 에러가 ECC 데이터를 이용하여 정정 가능한 것으로 판별되면, 앞서 설명된 절차(3070)가 수행될 것이다. 에러-처리된 데이터는 외부 장치 즉, 호스트 시스템으로 전송될 것이다.
쓰기 동작시 에러 검출이 용이하도록 데이터를 변경하고 읽기 동작시 변경된 데이터의 에러 비트들을 최소화시킴으로써 고성능 에러 정정 능력(예를 들면, 16- /24-비트 ECC) 대신 일반적인 에러 정정 능력(예를 들면, 8-비트 ECC)을 갖는 ECC 블록(160)을 이용하여 에러 정정 능력을 벗어난 에러 비트들을 정정하는 것이 가능하다. 특히, 이러한 데이터 처리 스킴은 3-비트 또는 4-비트 데이터를 저장하는 메모리 시스템에 유용할 것이다.
예시적인 실시예에 있어서, 에러 비트들을 최소화시키는 동작은 플래시 메모리의 설정된 프로그램-소거 사이클 이후에 또는 설정된 기준 시간이 경과한 후 행해질 것이다. 하지만, 에러 비트들을 최소화시키는 동작이 행해지는 시점이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 11은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 쓰기 방법을 개략적으로 보여주는 흐름도이고, 도 12는 본 발명의 다른 예시적인 실시예들에 따른 데이터 변경 방식을 개략적으로 보여주는 도면이다. 이하, 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 쓰기 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
외부 장치(즉, 호스트 시스템)로부터 쓰기 동작이 요청됨에 따라, 플래시 메모리(200)에 쓰여질 데이터가 호스트 인터페이스(110)를 통해 버퍼(140)에 저장될 것이다(S300). 예를 들면, 입력 데이터는 섹터 데이터일 것이다. 즉, 512B 데이터가 전송 단위에 따라 순차적으로 버퍼(140)에 저장될 것이다. 그 다음에, 버퍼(140)에 저장된 데이터는 플래시 메모리(200)로 전송될 것이다. 버퍼(140)에 저장된 데이터가 플래시 메모리(200)로 전송되는 동안, 도 12에 도시된 바와 같이, ECC 블록(160)은 전송되는 데이터에 의거하여 ECC 데이터를 생성하고, 에러 정정 프로세서(150)는 전송되는 데이터에 의거하여 서브-섹터 단위의 EDC 데이터를 생성할 것이다(S310). 다시 말해서, 에러 정정 프로세서(150)는 전송되는 데이터를 서브-섹터들로 구분하고, 각 서브-섹터에 대한 EDC 데이터를 생성할 것이다. 결과적으로, 섹터 단위의 데이터는 복수의 서브-섹터들로 구성되며, 각 서브-섹터에 대한 EDC 데이터가 생성될 것이다. 마지막으로, 입력된 데이터는 ECC 데이터 및 EDC 데이터와 함께 플래시 메모리(200)에 저장될 것이다(S320). 입력 데이터는 플래시 메모리(200)의 메인 필드(또는, 영역)에 저장되고, ECC 데이터 및 EDC 데이터는 플래시 메모리(200)의 스페어 필드(또는, 영역)(또는, 페이지 메타 영역/필드라 불림)에 저장될 것이다. 메타 영역에는 페이지에 관련된 정보가 저장되며, EDC 데이터 및 관련된 정보의 메타 ECC 데이터가 메타 영역에 함께 저장될 것이다.
예시적인 실시예에 있어서, EDC 데이터는 CRC 데이터이며, CRC 데이터는 4-비트 CRC 데이터일 것이다. 하지만, CRC 데이터가 4-비트 CRC 데이터로 제한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. CRC 데이터의 비트 수가 증가함에 따라 에러 비트들을 검출하는 능력이 향상될 것이다. 또한, 서브-섹터들의 수가 다양하게 변경될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 13은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 읽기 방법을 개략적으로 보여주는 흐름도이고, 도 14는 본 발명의 다른 예시적인 실시예들에 따른 읽기 방법의 경우 최적의 읽기 전압을 결정하는 과정을 설명하기 위한 도 면이며,도 15는 본 발명의 다른 예시적인 실시예들에 따른 데이터 읽기 방식을 개략적으로 보여주는 도면이다. 이하, 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 읽기 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
읽기 동작이 요청됨에 따라, 메모리 제어기(100)의 제어하에 플래시 메모리(200)로부터(또는 플래시 메모리(200)의 선택된 페이지로부터) 데이터가 읽혀질 것이다. 좀 더 구체적으로 설명은 다음과 같다. 먼저, 메모리 제어기(100)의 제어하에 플래시 메모리(200)로부터 데이터가 읽혀질 것이다(S400). 읽혀진 데이터는 ECC 데이터를 포함하며, 버퍼(140)에 저장될 것이다. 잘 알려진 바와 같이, ECC 블록(160)은 ECC 데이터에 의거하여, 읽혀진 데이터에 에러가 포함되었는 지의 여부를 검출할 것이다. 만약 에러가 검출되면, 검출된 에러가 정정 가능한 지의 여부가 ECC 블록(160)에 의해서 판별될 것이다(S410). 만약 정정 가능한 에러가 검출되면, 잘 알려진 방식에 따라 ECC 데이터에 의거하여 읽혀진 데이터의 에러가 정정될 것이다(S450). 이후, 읽혀진 데이터는 외부 장치(즉, 호스트 시스템)으로 전송되며, 읽기 동작은 종료될 것이다. 마찬가지로, 만약 에러가 검출되지 않으면, 읽혀진 데이터는 에러 정정 동작없이 외부 장치(즉, 호스트 시스템)으로 전송되며, 읽기 동작은 종료될 것이다.
다시 S410 단계로 돌아가면, 만약 검출된 에러가 ECC 블록(160)에 의해서 정정 가능하지 않은 것으로 판별되면, 절차는 S420 단계로 진행할 것이다. S420 단계에서, 에러 정정 프로세서(150)는 최적의 읽기 전압을 결정할 것이다. 좀 더 구체적인 설명은 다음과 같다. 도 14를 참조하면, 버퍼(140)에 저장된 데이터는 초기 읽기 전압(VR(0))을 이용하여 읽혀진 데이터일 것이다. 초기 읽기 전압(VR(0))은 읽기 동작이 요청될 때 생성되는 플래시 메모리(200)의 디폴트 읽기 전압일 것이다. 에러 정정 프로세서(150)는 초기 읽기 전압(VR(0))을 기준으로 소정 값만큼 순차적으로 증가되는 읽기 전압들(VR(1), VR(2))과 초기 읽기 전압(VR(0))을 기준으로 소정 값만큼 순차적으로 감소되는 읽기 전압들(VR(-1), VR(-2))을 이용하여 읽기 동작이 연속적으로 수행되도록 플래시 메모리(200)를 제어할 것이다. 연속적으로 읽혀진 데이터는 버퍼(140)에 저장될 것이다. 여기서, 소정 값은, 예를 들면, 40㎷일 것이다. 하지만, 소정값이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 에러 정정 프로세서(150)는 초기 읽기 전압(VR(0))에 따라 읽혀진 데이터에 의거하여, 변경된 읽기 조건들(VR(-2)∼VR(2)) 각각에 따라 읽혀진 데이터의 반전되는/토글되는 비트들(flipped/toggled bits)의 수를 검출할 것이다. 에러 정정 프로세서(150)는 검출 결과에 따라 반전되는/토글되는 비트들의 수가 가장 적은 데이터를 읽는 데 사용된 읽기 전압을 최적의 읽기 전압으로 결정할 것이다. 예를 들면, 도 14에 도시된 바와 같이, 읽기 전압(VR(-1))을 이용하여 읽혀진 데이터의 반전되는/토글되는 비트들의 수가 가장 적으며, 그 결과 읽기 전압(VR(-1))이 최적의 읽기 전압으로 결정될 것이다.
다른 예시적인 실시예에 있어서, 최적의 읽기 전압을 결정하는 동작은 에러 정정 프로세서(150) 대신에 내장 프로세서(130)의 제어에 따라 수행될 수도 있다.
다시 도 13을 참조하면, 최적의 읽기 전압이 결정된 후, EDC 데이터에 의거하여 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들이 에러 정정 프로 세서(150)의 제어하에 모아질 것이다(S440). 이를 위해서, 먼저, 에러 정정 프로세서(150)는 최적의 읽기 전압을 기준으로 소정 값만큼 순차적으로 증가되는 읽기 전압들과 최적의 읽기 전압을 기준으로 소정 값만큼 순차적으로 감소되는 읽기 전압들을 이용하여 읽기 동작이 연속적으로 수행되도록 플래시 메모리(200)를 제어할 것이다. 읽혀진 데이터는 버퍼(140)에 임시 저정될 것이다. 그 다음에, 앞서 언급된 바와 같이, 에러 정정 프로세서(150)는, 도 15에 도시된 바와 같이, 대응하는 EDC 데이터에 의거하여 에러가 없는 서브-섹터를 선택할 것이다. 에러가 없는 서브-섹터를 선택하는 동작 동안 에러가 있는 서브-섹터(예를 들면, 도 15의 서브-섹터(SS30)가 존재할 수도 있다. 이러한 경우, 반전되는/토글되는 비트들의 조합 또는 반전되는/토글되는 비트들의 높은 빈도수의 조합에 따라 에러가 있는 서브-섹터는 에러가 없는 서브-섹터로 처리될 것이다. 이는 이후 상세히 설명될 것이다. 그 다음에, 에러가 없는 서브-섹터들이 모아진 후, 절차는 S450 단계로 진행하며, 이 단계에서는 잘 알려진 방식에 따라 ECC 데이터에 의거하여 읽혀진 데이터의 에러가 정정될 것이다. 이후, 읽혀진 데이터는 외부 장치(즉, 호스트측)으로 전송되며, 읽기 동작은 종료될 것이다.
예시적인 실시예에 있어서, 변경된 읽기 조건에 따라 데이터를 읽는 동작은 앞서 설명된 것과 같이 연속적으로 수행되고, 에러가 없는 서브-섹터에 대한 에러 판별 과정은 반복적으로 수행될 것이다. 이에 반해서, 데이터를 읽고 읽혀진 데이터 중 에러가 없는 서브-섹터들을 선택하는 과정들이 변경된 읽기 조건들 각각에 대해서 독립적으로 수행될 수도 있다.
예시적인 실시예에 있어서, EDC 데이터는 읽기 조건이 변경되기 이전에 읽혀질 것이다. 또는, EDC 데이터는 ECC 데이터와 함께 읽혀질 것이다. 하지만, EDC 데이터의 읽는 시점이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 16은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템에서 에러가 없는 서브-섹터들을 모으는 동작을 설명하기 위한 흐름도이고, 도 17은 에러가 없는 서브-섹터들을 모으는 동작을 개략적으로 보여주는 도면이다. 이하, 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템에서 에러가 없는 서브-섹터들을 모으는 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 13에서 설명된 바와 같이, 변경된 읽기 조건에 따라 데이터가 연속적으로 읽혀지고, 읽혀진 데이터는 버퍼(140)에 저장될 것이다. 이후, 에러 정정 프로세서(150)는 EDC 데이터에 의거하여 에러가 없는 서브-섹터들을 선택하며, 도 15에 도시된 바와 같이, 선택된 서브-섹터들을 최종 데이터로서 관리할 것이다(S441). 다음 단계(S442)에서, 에러 정정 프로세서(150)는 에러가 있는 서브-섹터가 존재하는 지의 여부를 판별할 것이다. 만약 에러가 있는 서브-섹터가 존재하지 않는 것으로 판별되면, 절차는 도 13의 S450 단계로 진행할 것이다. 만약 에러가 있는 서브-섹터가 존재하는 것으로 판별되면, 절차는 S443 단계로 진행할 것이다. S443 단계에서, 에러 정정 프로세서(150)는 에러가 있는 서브-섹터의 반전되는/토글되는 비트들을 이용하여 가능한 패턴들을 생성할 것이다. 다시 말해서, 도 17에 도시된 바와 같이, 에러가 있는 서브-섹터의 비트들 중 반전되는/토글되는 비트들(예를 들 면, 2개의 비트들)을 이용하여 즉, 00, 01, 10, 00의 값들을 이용하여 4개의 서브-섹터 패턴들이 생성될 것이다. 모든 가능한 패턴들을 생성한 후, 에러 정정 프로세서(150)는 대응하는 EDC 데이터에 의거하여, 생성된 서브-섹터 패턴들 중 하나가 에러가 없는 지의 여부를 판별할 것이다(S444). 만약 생성된 서브-섹터 패턴들 중 하나가 에러가 없는 것으로 판별되면, 도 17에 도시된 바와 같이, 그러한 서브-섹터 패턴은 에러가 없는 서브-섹터로서 취해질 것이다(S445). 이후, 절차는 S447 단계로 진행할 것이다.
만약 생성된 서브-섹터 패턴들 모두 에러가 있는 것으로 판별되면, 절차는 S446 단계로 진행할 것이다. S446 단계에서, 에러 정정 프로세서(150)는 읽혀진 데이터 중 반전되는/토글되는 비트들로부터 높은 빈도를 갖는 비트들을 옳은 비트들로서 취할 것이다. 예를 들면, 도 17에 도시된 바와 같이, 두번째 비트(3001)의 경우, '0'의 값이 높은 빈도를 갖는 비트일 것이다. 네번째 비트(3002)의 경우, '1'의 값이 높은 빈도를 갖는 비트일 것이다. 따라서, 높은 빈도를 갖는 비트들을 갖는 서브-섹터는 에러가 없는 서브-섹터로서 취해질 것이다. 다음 단계(S447)에서, 에러 정정 프로세서(150)는 에러가 있는 서브-섹터가 존재하는 지의 여부를 판별할 것이다. 만약 존재하지 않으면, 절차는 S450 단계로 진행할 것이다. 만약 에러가 있는 서브-섹터가 존재하는 것으로 판별되면, 절차는 앞서 설명된 단계들(S443∼S446)이 반복적으로 수행되도록 S443 단계로 진행할 것이다.
앞서 설명된 바와 같이, EDC 데이터에 의거하여 에러가 없는 서브-섹터들을 모으고, 에러가 있는 서브-섹터에 대해서 반전되는/토글되는 비트들을 이용하여 최 적의 서브-섹터를 생성함으로써 읽혀진 데이터의 에러 비트들을 최소화시키는 것이 가능하다. 결과적으로, 상대적으로 높은 성능의 ECC 블록 대신 상대적으로 낮은 성능의 ECC 블록을 이용하여 에러 정정 동작을 수행하는 것이 가능하다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다. 본 발명에 따른 메모리 시스템을 포함한 컴퓨팅 시스템이 도 18에 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템은 버스(2001)에 전기적으로 연결된 마이크로프로세서(2100), 사용자 인터페이스(2200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2300), 메모리 제어기(2400), 그리고 플래시 메모리 장치(2500)를 포함한다. 메모리 제어기(2400) 및 플래시 메모리 장치(2500)는 도 3에 도시된 것과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(2500)에는 마이크로프로세서(2100)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2600)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 제어기(2400)와 플래시 메모리 장치(2500)는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
도 19는 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 보여주는 블록도이다.
도 19에 도시된 메모리 기반 저장 장치는 메모리(3510)와 메모리 제어기(3520)가 카드(3530)를 구성하도록 구현된다. 예를 들면, 카드(3530)는 플래시 메모리 카드와 같은 메모리 카드일 수 있다. 즉, 카드(3530)는 디지털, 카메라, 개인 컴퓨터 등과 같은 전자 장치를 사용하기 위한 어떤 산업 표준을 만족하는 카드일 수 있다. 메모리 제어기(3520)가 카드(3530)에 의해 또 다른 (예를 들면, 외부) 장치로부터 수신된 제어 신호들에 기초하여 메모리(3510)를 제어할 수 있다는 것이 이해될 것이다.
도 20은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 포함한 메모리 시스템을 보여주는 블록도이다.
도 20에 도시된 시스템은 휴대용 장치(4000)를 나타낸다. 휴대용 장치(4000)는 MP3 플레이어, 비디오 플레이어, 콤비네이션 비디오 및 오디오 플레이어 등일 수 있다. 도시된 바와 같이, 휴대용 장치(4000)는 메모리(3510) 및 메모리 제어기(3520)를 포함한다. 휴대용 장치(4000)는 또한 인코더 및 디코더(4610), 프리젠테이션 구성요소들(4620) 및 인터페이스(4630)를 포함할 수 있다.
인코더 및 디코더(EDC)(4610)에 의해 처리된 데이터(비디오, 오디오, 등)는 메모리 제어기(3520)를 통해 메모리(3510)로 입력되고 메모리(3510)로부터 출력될 수 있다. 도 9에서 점선들에 의해 도시된 바와 같이, 데이터는 EDC(4610)로부터 메모리(3510)로 직접 입력되고 그리고/또는 메모리(3510)로부터 EDC(4610)로 직접 출력될 수 있다.
EDC(4610)는 메모리(3510)에 저장하기 위해 데이터를 인코딩할 수 있다. 예를 들면, EDC(4610)는 메모리(3510)에 저장하기 위해 오디오 데이터에 대해 MP3 인코딩을 수행할 수 있다. 다른 방법으로, EDC(4610)는 메모리(3510)에 저장하기 위해 비디오 데이터에 대해 MPEG 인코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(4610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 인코딩하기 위한 복수의 인코더들을 포함할 수 있다. 예를 들면, EDC(4610)는 오디오 데이터를 위한 MP3 인코더 및 비디오 데이터를 위한 MPEG 인코더를 포함할 수 있다.
EDC(4610)는 메모리(3510)로부터의 출력을 디코딩할 수 있다. 예를 들면, EDC(4610)는 메모리(3510)로부터 출력된 오디오 데이터에 대해 MP3 디코딩을 수행할 수 있다. 다른 방법으로, EDC(4610)는 메모리(3510)로부터 출력된 비디오 데이터에 대해 MPEG 디코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(4610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 디코딩하기 위한 복수의 디코더들을 포함할 수 있다. 예를 들면, EDC(4610)는 오디오 데이터를 위한 MP3 디코더 및 비디오 데이터를 위한 MPEG 디코더를 포함할 수 있다.
EDC(4610)가 디코더들만을 포함할 수 있다는 것이 또한 이해될 것이다. 예를 들면, 이미 인코딩된 데이터는 EDC(4610)에 의해 수신될 수 있고 메모리 제어기(3520) 및/또는 메모리(3510)로 패스될 수 있다.
EDC(4610)는 인터페이스(4630)를 통해 인코딩을 위한 데이터를 수신하거나 이미 인코딩된 데이터를 수신할 수 있다. 인터페이스(4630)는 알려진 표준(예를 들면, 펌웨어, USB, 등)에 따를 수 있다. 인터페이스(4630)는 또한 하나 이상의 인터페이스를 포함할 수 있다. 예를 들면, 인터페이스(4630)는 펌웨어 인터페이스, USB 인터페이스, 등을 포함할 수 있다. 메모리(3510)로부터의 데이터는 인터페이스(4630)를 통해 출력될 수도 있다.
프리젠테이션 구성요소들(4620)은 메모리로부터 출력되고 그리고/또는 EDC(4610)에 의해 디코딩된 데이터를 사용자에게 표시할 수 있다. 예를 들면, 프리젠테이션 구성요소들(4620)은 오디오 데이터를 출력하기 위한 스피커 잭, 비디오 데이터를 출력하기 위한 디스플레이 스크린, 등을 포함할 수 있다.
본 발명에 따른 플래시 메모리 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1a는 2-비트 데이터를 저장하는 플래시 메모리의 문턱 전압 분포들을 보여주는 도면이다.
도 1b는 전하 손실 및 전하 획득으로 인한 도 1a에 도시된 문턱 전압 분포들의 변화를 보여주는 도면이다.
도 2는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 3은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 4는 본 발명의 메모리 시스템에 따른 데이터 처리 방식을 개략적으로 설명하기 위한 도면이다.
도 5는 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 쓰기 방법을 개략적으로 보여주는 흐름도이다.
도 6은 본 발명의 예시적인 실시예들에 따른 데이터 변경 방식을 개략적으로 보여주는 도면이다.
도 7은 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 읽기 방법을 개략적으로 보여주는 흐름도이다.
도 8은 본 발명의 예시적인 실시예들에 따른 데이터 읽기 방식을 개략적으로 보여주는 도면이다.
도 9는 본 발명의 다른 예시적인 실시예들에 따른 데이터 읽기 방식을 개략적으로 보여주는 도면이다.
도 10은 본 발명의 다른 실시예에 따른 메모리 시스템의 데이터 처리 방식을 개략적으로 설명하기 위한 도면이다.
도 11은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 쓰기 방법을 개략적으로 보여주는 흐름도이다.
도 12는 본 발명의 다른 예시적인 실시예들에 따른 데이터 변경 방식을 개략적으로 보여주는 도면이다.
도 13은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 읽기 방법을 개략적으로 보여주는 흐름도이다.
도 14는 본 발명의 다른 예시적인 실시예들에 따른 읽기 방법의 경우 최적의 읽기 전압을 결정하는 과정을 설명하기 위한 도면이다.
도 15는 본 발명의 다른 예시적인 실시예들에 따른 데이터 읽기 방식을 개략적으로 보여주는 도면이다.
도 16은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템에서 에러가 없는 서브-섹터들을 모으는 동작을 설명하기 위한 흐름도이다.
도 17은 에러가 없는 서브-섹터들을 모으는 동작을 개략적으로 보여주는 도면이다.
도 18은 본 발명에 따른 메모리 시스템을 포함한 다른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 19는 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 보여주는 블록도이다.
도 20은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 포함한 메모리 시스템을 보여주는 블록도이다.

Claims (20)

  1. 플래시 메모리를 포함하는 메모리 시스템의 데이터 처리 방법에 있어서:
    상기 플래시 메모리의 선택된 페이지로부터 초기에 읽혀진 데이터가 정정 가능한 지의 여부를 판별하는 단계와;
    상기 초기에 읽혀진 데이터가 정정 가능하지 않은 것으로 판별되면, 새롭게 결정된 읽기 전압들 각각에 의거하여 상기 선택된 페이지로부터 데이터를 다시 읽는 단계와;
    상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여, 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들을 모으는 단계와; 그리고
    상기 초기에 읽혀진 데이터의 이씨씨 데이터에 의거하여, 상기 에러가 없는 서브-섹터들로 구성된 데이터를 정정하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  2. 제 1 항에 있어서,
    상기 선택된 페이지로부터 데이터를 다시 읽는 데 사용된 제 1 읽기 전압들은
    상기 초기에 읽혀진 데이터에 대응하는 초기 읽기 전압을 기준으로 단계적으로 증가되는 제 2 읽기 전압들과 단계적으로 감소하는 제 2 읽기 전압들을 이용하 여 상기 선택된 페이지로부터 데이터를 연속적으로 읽고, 상기 연속적으로 읽혀진 데이터 중 상기 초기에 읽혀진 데이터를 기준으로 반전되는/토글되는 비트들의 수가 가장 적은 데이터에 대응하는 제 2 읽기 전압을 최적의 읽기 전압으로서 결정하고, 상기 결정된 최적의 읽기 전압을 기준으로 단계적으로 감소하는 제 3 읽기 전압들 및 단계적으로 증가하는 제 3 읽기 전압들을 상기 제 1 읽기 전압들로서 선택함으로써 새롭게 결정되는 것을 특징으로 하는 데이터 처리 방법.
  3. 제 2 항에 있어서,
    상기 제 3 읽기 전압들의 증가분 및 감소분은 동일하게 설정되는 것을 특징으로 하는 데이터 처리 방법.
  4. 제 1 항에 있어서,
    상기 에러가 없는 서브-섹터들을 모으는 단계는
    상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들을 모으는 단계와;
    상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 있는 서브-섹터가 존재하는 지의 여부를 판별하는 단계와;
    에러가 있는 서브-섹터가 존재하는 경우, 상기 에러가 있는 서브-섹터의 반전되는/토글되는 비트들을 이용하여 서브-섹터 패턴들을 생성하는 단계와;
    상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여, 상기 서 브-섹터 패턴들 각각이 에러가 없는 지의 여부를 판별하는 단계와; 그리고
    에러가 없는 것으로 판별된 서브-섹터 패턴을 에러가 없는 서브-섹터로 취하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  5. 제 4 항에 있어서,
    상기 서브-섹터 패턴들 모두가 에러가 있는 것으로 판별되면, 상기 에러가 있는 서브-섹터는 상기 새롭게 결정된 읽기 전압들 각각에 의거하여 읽혀진 데이터의 반전되는/토글되는 비트들 중 높은 빈도를 갖는 비트들을 올바른 비트들로 선택하고, 상기 반전되는/토글되는 비트들을 선택된 비트들로 대체함으로써 에러가 없는 서브-섹터로 처리되는 것을 특징으로 하는 데이터 처리 방법.
  6. 제 1 항에 있어서,
    상기 에러가 없는 서브 섹터들을 모으는 동안 에러가 있는 서브-섹터가 검출될 때, 상기 에러가 있는 서브-섹터는 상기 새롭게 결정된 읽기 전압들 각각에 의거하여 읽혀진 데이터의 반전되는/토글되는 비트들의 조합에 따라 또는 상기 반전되는/토글되는 비트들 중 높은 빈도를 갖는 비트들에 따라 에러가 없는 서브-섹터로 처리되는 것을 특징으로 하는 데이터 처리 방법.
  7. 제 1 항에 있어서,
    상기 에러가 없는 서브-섹터들을 모으는 동안 에러가 있는 서브-섹터가 검출 되는 경우,
    상기 에러가 없는 서브-섹터들을 모으는 단계는 상기 새롭게 결정된 읽기 전압들 각각에 의거하여 읽혀진 데이터의 반전되는/토글되는 비트들 중 높은 빈도를 갖는 비트들을 올바른 비트들로 선택하는 단계와; 그리고 상기 반전되는/토글되는 비트들을 선택된 비트들로 대체하여 상기 에러가 있는 서브-섹터를 에러가 없는 서브-섹터로 처리하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  8. 제 1 항에 있어서,
    상기 플래시 메모리는 단일-비트 데이터 또는 M-비트 데이터(M은 2 또는 그 보다 큰 정수)를 저장하는 낸드 플래시 메모리인 것을 특징으로 하는 데이터 처리 방법.
  9. 제 1 항에 있어서,
    상기 메모리 시스템은 메모리 카드 및 에스에스디 중 어느 하나인 것을 특징으로 하는 데이터 처리 방법.
  10. 제 1 항에 있어서,
    상기 다시 읽는 단계, 상기 모으는 단계, 그리고 상기 정정하는 단계는 상기 플래시 메모리의 설정된 프로그램-소거 사이클 이후에 또는 설정된 기준 기간이 경과한 후 행해지는 것을 특징으로 하는 데이터 처리 방법.
  11. 제 1 항에 있어서,
    상기 선택된 페이지로부터 읽혀진 데이터는 복수의 서브-섹터들로 구성된 섹터 데이터이며, 상기 섹터 데이터가 상기 선택된 페이지에 쓰여질 때 상기 서브-섹터들 각각에 대응하는 이디씨 데이터가 생성되는 것을 특징으로 하는 데이터 처리 방법.
  12. 제 11 항에 있어서,
    상기 이디씨 데이터는 상기 선택된 페이지에 대응하는 페이지 메타 영역에 저장되는 것을 특징으로 하는 데이터 처리 방법.
  13. 제 11 항에 있어서,
    상기 섹터 데이터는 이씨씨 처리 단위인 것을 특징으로 하는 데이터 처리 방법.
  14. 제 1 항에 있어서,
    상기 이디씨 데이터는 씨알씨 데이터인 것을 특징으로 하는 데이터 처리 방법.
  15. 플래시 메모리와; 그리고
    에러 정정 프로세서 및 에러 검사 정정 블록을 가지며, 상기 플래시 메모리를 제어하도록 구성된 메모리 제어기를 포함하며,
    상기 플래시 메모리의 선택된 페이지로부터 초기에 읽혀진 데이터가 상기 에러 검사 정정 블록에 의해서 정정 가능하지 않은 것으로 판별될 때, 상기 에러 정정 프로세서는 새롭게 결정된 읽기 전압들 각각에 의거하여 상기 선택된 페이지로부터 데이터가 다시 읽혀지도록 상기 플래시 메모리를 제어하며;
    상기 에러 정정 프로세서는 상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들을 모으도록 구성되는 메모리 시스템.
  16. 제 15 항에 있어서,
    상기 에러 검사 정정 블록은 상기 초기에 읽혀진 데이터의 이씨씨 데이터에 의거하여 상기 에러가 없는 서브-섹터들로 구성된 데이터를 정정하는 메모리 시스템.
  17. 제 15 항에 있어서,
    상기 에러가 없는 서브 섹터들을 모으는 동안 에러가 있는 서브-섹터가 검출될 때, 상기 에러 정정 프로세서는 상기 새롭게 결정된 읽기 전압들 각각에 의거하여 읽혀진 데이터의 반전되는/토글되는 비트들의 조합에 따라 또는 상기 반전되는/토글되는 비트들 중 높은 빈도를 갖는 비트들에 따라 상기 에러가 있는 서브-섹터 를 에러가 없는 서브-섹터로 처리하는 메모리 시스템.
  18. 제 15 항에 있어서,
    상기 에러가 없는 서브-섹터들을 모으는 동안 에러가 있는 서브-섹터가 검출되는 경우,
    상기 에러 정정 프로세서는 상기 새롭게 결정된 읽기 전압들 각각에 의거하여 읽혀진 데이터의 반전되는/토글되는 비트들 중 높은 빈도를 갖는 비트들을 올바른 비트들로 선택하고, 상기 반전되는/토글되는 비트들을 선택된 비트들로 대체함으로써 상기 에러가 있는 서브-섹터를 에러가 없는 서브-섹터로 처리하는 메모리 시스템.
  19. 제 15 항에 있어서,
    상기 에러 정정 프로세서는 상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 없는 서브-섹터들을 모으고, 상기 다시 읽혀진 데이터의 서브-섹터들 중 에러가 있는 서브-섹터가 존재하는 지의 여부를 판별하고, 에러가 있는 서브-섹터가 존재하는 경우, 상기 에러가 있는 서브-섹터의 반전되는/토글되는 비트들을 이용하여 서브-섹터 패턴들을 생성하고, 상기 초기에 읽혀진 데이터에 대응하는 이디씨 데이터에 의거하여, 상기 서브-섹터 패턴들 각각이 에러가 없는 지의 여부를 판별하고, 에러가 없는 것으로 판별된 서브-섹터 패턴을 에러가 없는 서브-섹터로 취함으로써 에러가 없는 서브-섹터들을 모으는 메모리 시스템.
  20. 제 15 항에 있어서,
    상기 서브-섹터 패턴들 모두가 에러가 있는 것으로 판별되면, 상기 에러 정정 프로세서는 상기 새롭게 결정된 읽기 전압들 각각에 의거하여 읽혀진 데이터의 반전되는/토글되는 비트들 중 높은 빈도를 갖는 비트들을 올바른 비트들로 선택하고, 상기 반전되는/토글되는 비트들을 선택된 비트들로 대체함으로써 상기 에러가 있는 서브-섹터를 에러가 없는 서브-섹터로 처리하는 메모리 시스템.
KR20080087877A 2008-09-05 2008-09-05 메모리 시스템 및 그것의 데이터 처리 방법 KR101483190B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR20080087877A KR101483190B1 (ko) 2008-09-05 2008-09-05 메모리 시스템 및 그것의 데이터 처리 방법
US12/512,097 US8230303B2 (en) 2008-09-05 2009-07-30 Memory system and data processing method thereof
CN200910168379.6A CN101667454B (zh) 2008-09-05 2009-08-31 存储系统及其数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080087877A KR101483190B1 (ko) 2008-09-05 2008-09-05 메모리 시스템 및 그것의 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20100028924A KR20100028924A (ko) 2010-03-15
KR101483190B1 true KR101483190B1 (ko) 2015-01-19

Family

ID=41800206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080087877A KR101483190B1 (ko) 2008-09-05 2008-09-05 메모리 시스템 및 그것의 데이터 처리 방법

Country Status (3)

Country Link
US (1) US8230303B2 (ko)
KR (1) KR101483190B1 (ko)
CN (1) CN101667454B (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2545554A4 (en) * 2010-03-12 2015-03-11 Lsi Corp LDPC CLEARANCE DECODING FOR FLASH MEMORY
KR101727704B1 (ko) 2010-10-04 2017-04-18 삼성전자주식회사 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
JP5651457B2 (ja) * 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
KR101212387B1 (ko) 2011-01-03 2012-12-13 에스케이하이닉스 주식회사 반도체 메모리 소자의 독출 방법
JP2012177964A (ja) * 2011-02-25 2012-09-13 Nec Computertechno Ltd メモリシステム及びメモリモジュール制御方法
CN102880567B (zh) * 2011-07-11 2016-02-10 澜起科技(上海)有限公司 数据读写系统
JP5490062B2 (ja) * 2011-07-19 2014-05-14 株式会社東芝 不揮発性半導体記憶装置
WO2013074528A1 (en) * 2011-11-18 2013-05-23 SanDisk Technologies, Inc. Non-volatile storage with broken word line screen and data recovery
KR20130087092A (ko) * 2012-01-27 2013-08-06 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템
US20140075094A1 (en) * 2012-09-12 2014-03-13 GM Global Technology Operations LLC Method to implement a binary flag in flash memory
US9081708B2 (en) * 2012-11-16 2015-07-14 Freescale Semiconductor, Inc. Dynamic read scheme for high reliability high performance flash memory
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
CN103229444B (zh) * 2012-12-28 2016-01-13 华为技术有限公司 编码/解码方法、装置及系统
US9349489B2 (en) 2013-01-11 2016-05-24 Sandisk Technologies Inc. Systems and methods to update reference voltages in response to data retention in non-volatile memory
US9318215B2 (en) * 2013-02-14 2016-04-19 Sandisk Technologies Inc. Systems and methods to update reference voltages of non-volatile memory
TWI502597B (zh) * 2013-05-13 2015-10-01 Univ Nat Taiwan Science Tech 非揮發性記憶體的資料反轉與回復方法
US20140359202A1 (en) * 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
US9152497B2 (en) * 2013-08-23 2015-10-06 Sandisk Technologies Inc. Data recovery from blocks with gate shorts
US9520901B2 (en) * 2014-03-06 2016-12-13 Kabushiki Kaisha Toshiba Memory controller, memory system, and memory control method
CN103914358A (zh) * 2014-04-03 2014-07-09 深圳市硅格半导体有限公司 一种对闪存进行重读操作的方法及装置
KR20160073834A (ko) * 2014-12-17 2016-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템 동작 방법
JP2017055254A (ja) * 2015-09-09 2017-03-16 株式会社東芝 データ復元回路、半導体記憶装置およびデータ復元方法
KR102435873B1 (ko) * 2015-12-18 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 리드 리클레임 방법
CN106205720B (zh) * 2016-07-06 2019-07-09 记忆科技(深圳)有限公司 一种恢复Nand Flash错误数据的方法
CN106980594A (zh) * 2017-04-06 2017-07-25 上海航天测控通信研究所 一种低成本高性能空间用计算机
CN109215716B (zh) * 2017-07-05 2021-01-19 北京兆易创新科技股份有限公司 提高nand型浮栅存储器可靠性的方法及装置
CN111813336B (zh) * 2020-06-05 2022-08-09 浙江大华存储科技有限公司 一种固态硬盘的数据存储方法及装置
US11455254B2 (en) * 2020-12-10 2022-09-27 Macronix International Co., Ltd. Flash memory system and flash memory device thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606532A (en) 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
JP2005025825A (ja) 2003-06-30 2005-01-27 Matsushita Electric Ind Co Ltd データ転送方法、およびデータ処理回路
KR20060032098A (ko) * 2004-10-11 2006-04-14 삼성전자주식회사 가변적인 반복 에러 정정 횟수를 갖는 디지털 신호 처리방법
US7346828B2 (en) 2000-08-25 2008-03-18 Kabushiki Kaisha Toshiba Data processing method and apparatus, recording medium, reproducing method and apparatus using the same method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69535009T2 (de) * 1994-03-19 2007-01-04 Sony Corp. Optische Platte und Verfahren und Gerät zur Aufzeichnung und Wiedergabe von dieser Platte
DE69531265T2 (de) * 1994-03-19 2004-06-03 Sony Corp. Optische Platte und Methode und Gerät zur Aufzeichnung auf und danach Wiedergabe von Informationen von dieser Platte
JP2001332096A (ja) 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
US6751766B2 (en) 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
CN1293562C (zh) * 2003-09-15 2007-01-03 威盛电子股份有限公司 数据读取装置与方法
JP4135680B2 (ja) 2004-05-31 2008-08-20 ソニー株式会社 半導体記憶装置および信号処理システム
KR100632952B1 (ko) * 2004-09-30 2006-10-11 삼성전자주식회사 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
KR20070076849A (ko) * 2006-01-20 2007-07-25 삼성전자주식회사 메모리 카드의 카피백 동작을 수행하는 장치 및 방법
JP4896605B2 (ja) 2006-07-04 2012-03-14 株式会社東芝 不揮発性半導体記憶システム
KR100802059B1 (ko) * 2006-09-06 2008-02-12 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
JP2008077810A (ja) * 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
KR100845529B1 (ko) * 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
WO2008139441A2 (en) * 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606532A (en) 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US7346828B2 (en) 2000-08-25 2008-03-18 Kabushiki Kaisha Toshiba Data processing method and apparatus, recording medium, reproducing method and apparatus using the same method
JP2005025825A (ja) 2003-06-30 2005-01-27 Matsushita Electric Ind Co Ltd データ転送方法、およびデータ処理回路
KR20060032098A (ko) * 2004-10-11 2006-04-14 삼성전자주식회사 가변적인 반복 에러 정정 횟수를 갖는 디지털 신호 처리방법

Also Published As

Publication number Publication date
CN101667454B (zh) 2014-01-22
US20100064200A1 (en) 2010-03-11
KR20100028924A (ko) 2010-03-15
US8230303B2 (en) 2012-07-24
CN101667454A (zh) 2010-03-10

Similar Documents

Publication Publication Date Title
KR101483190B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
US8200607B2 (en) Memory devices and data decision methods
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
US8499217B2 (en) Memory device and error control codes decoding method
KR101434405B1 (ko) 메모리 장치 및 메모리 데이터 읽기 방법
US8281217B2 (en) Memory devices and encoding and/or decoding methods
US8122329B2 (en) Methods of operating memory devices using error correction and rereading techniques
CN107133122B (zh) 存储器控制方法
US8179718B2 (en) Memory device and memory programming method
US7872909B2 (en) Memory device and memory data read method
US8713411B2 (en) Encoding and/or decoding memory devices and methods thereof
US7903459B2 (en) Memory devices and methods for determining data of bit layers based on detected error bits
US9286972B2 (en) Method, memory controller and system for reading data stored in flash memory
US8230157B2 (en) Memory device and method of multi-bit programming
US8543892B2 (en) Memory device and method of storing data with error correction using codewords
US20090190397A1 (en) Memory device and data reading method
KR20100033195A (ko) 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법
US8589756B2 (en) Semiconductor memory device, semiconductor memory system, and erasure correction method
US20130182503A1 (en) Method, memory controller and system for reading data stored in flash memory
US10685711B1 (en) Decoding method, memory controlling circuit unit and memory storage device
US11145372B2 (en) Decoding method, memory controlling circuit unit, and memory storage device
CN111435604B (zh) 解码方法、存储器控制电路单元以及存储器存储装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 6