KR101756111B1 - 메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템 - Google Patents

메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템 Download PDF

Info

Publication number
KR101756111B1
KR101756111B1 KR1020110035353A KR20110035353A KR101756111B1 KR 101756111 B1 KR101756111 B1 KR 101756111B1 KR 1020110035353 A KR1020110035353 A KR 1020110035353A KR 20110035353 A KR20110035353 A KR 20110035353A KR 101756111 B1 KR101756111 B1 KR 101756111B1
Authority
KR
South Korea
Prior art keywords
data
read voltage
read
memory device
block
Prior art date
Application number
KR1020110035353A
Other languages
English (en)
Other versions
KR20120117542A (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 KR1020110035353A priority Critical patent/KR101756111B1/ko
Priority to US13/445,048 priority patent/US8830743B2/en
Publication of KR20120117542A publication Critical patent/KR20120117542A/ko
Application granted granted Critical
Publication of KR101756111B1 publication Critical patent/KR101756111B1/ko

Links

Images

Classifications

    • 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/10Programming or 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56008Error analysis, representation of errors
    • 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
    • G11C2029/1208Error catch memory
    • 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
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (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

리드 데이터의 신뢰성이 향상된 메모리 컨트롤러의 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템이 제공된다. 상기 메모리 컨트롤러의 구동방법은 제1 리드 전압을 이용하여, 비휘발성 메모리 장치로부터 제1 데이터를 리드하며, 상기 제1 데이터는 정정할 수 없는(uncorrectable) 에러 비트를 포함한 데이터이고, 상기 제1 리드 전압과 상이한 제2 리드 전압을 이용하여, 상기 비휘발성 메모리 장치로부터 제2 데이터를 리드하고, 상기 제2 데이터는 에러 비트 정정이 가능한 데이터이며, 상기 제1 리드 전압과 상기 제2 리드 전압의 비교 결과에 따라, 상기 비휘발성 메모리를 재프로그램하는 단계를 포함한다. 구체적으로, 제 2 리드 전압은 상기 제 1 리드 전압보다 작으며, 제 1 리드 전압과 제 2 리드전압의 차이가 기준값(reference value)보다 큰경우 재프로그램을 한다.

Description

메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템{A method of operating the memory controller, the memory controller, a memory device and a memory system}
본 발명은 메모리 컨트롤러의 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템에 관한 것이다.
메모리 장치는 휘발성(volatile) 메모리 장치와 비휘발성(non-volatile) 메모리 장치로 분류된다. 휘발성 메모리 장치는 전원(power)이 제거될 때 데이터는 유지되지 않는다. 그러나, 비휘발성 메모리 장치는 전원이 제거되더라도 데이터는 유지된다.
비휘발성 메모리 장치의 예들로서 ROM(read only memory), 또는 EEPROM (Electrically Erasable Programmable Read-Only Memory) 등이 있다.
플래시(flash) EEPROM으로 소개된 플래시 메모리 장치의 구조와 동작은 종래의 EEPROM의 구조와 동작과 서로 다르다. 플래시 메모리 장치는 블락(block) 단위로 전기적 소거(electric erase) 동작을 수행하고 비트 단위로 프로그램 동작을 수행할 수 있다.
플래시 메모리 장치에 포함된 프로그램된 다수개의 메모리 셀들의 문턱 전압들(threshold voltages)은 여러 가지 원인, 예컨대 플로팅 게이트 커플링 (floating gate coupling), 시간의 경과에 따른 전하 손실(charge loss), 등에 따라 변할 수 있다.
다수의 메모리 셀들의 문턱 전압들의 변화는 리드 데이터의 신뢰성 (reliability)을 악화시킬 수 있다.
본 발명이 해결하려는 과제는 리드 데이터의 신뢰성을 향상시키는 메모리 컨트롤러 구동방법을 제공하는 것이다.
본 발명이 해결하려는 과제는 리드 데이터의 신뢰성을 향상시키는 메모리 컨트롤러를 제공하는 것이다.
본 발명이 해결하려는 과제는 리드 데이터의 신뢰성을 향상시키는 메모리 장치를 제공하는 것이다.
본 발명이 해결하려는 과제는 리드 데이터의 신뢰성을 향상시키는 메모리 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 메모리 컨트롤러 구동방법의 일 태양(aspect)은 제1 리드 전압을 이용하여, 비휘발성 메모리 장치로부터 제1 데이터를 리드하며, 상기 제1 데이터는 정정할 수 없는(uncorrectable) 에러 비트를 포함한 데이터이고, 상기 제1 리드 전압과 상이한 제2 리드 전압을 이용하여, 상기 비휘발성 메모리 장치로부터 제2 데이터를 리드하고, 상기 제2 데이터는 에러 비트 정정이 가능한 데이터이며, 상기 제1 리드 전압과 상기 제2 리드 전압의 비교 결과에 따라, 상기 비휘발성 메모리를 재프로그램하는 단계를 포함한다. 구체적으로, 제 2 리드 전압은 상기 제 1 리드 전압보다 작으며, 제 1 리드 전압과 제 2 리드전압의 차이가 기준값(reference value)보다 큰경우 재프로그램을 한다.
상기 과제를 해결하기 위한 본 발명의 메모리 컨트롤러 구동방법의 다른 태양은 제 1 리드 전압을 사용하여, 비휘발성 메모리 장치의 셀 어레이로부터 제 1 데이터를 수신하고, 에러 비트를 정정하고, 제 1 데이터가 정정 불가능한(uncorrectable) 에러 비트 포함할때, 상기 제 1 리드 전압보다 작은 제 2 리드전압을 형성하기 위한 정보를 상기 비휘발성 메모리 장치로 제공하는 단계, 상기 제 2 리드전압을 사용하여, 상기 비휘발성 메모리 장치의 셀 어레이로부터 정정 가능한 제 2 데이터를 수신하는 단계, 상기 제 1 리드 전압과 상기 제 2 리드 전압을 비교하고, 비교결과에 따라 상기 상기 비휘발성 메모리 장치를 재프로그램하는 단계를 포함한다. 또한, 상기 메모리 컨트롤러 동작 방법은 상기 제 1 리드 데이터를 리드하는 것과 제 2 데이터 리드하는 것 사이에, 상기 제 1 리드 전압보다는 작고, 상기 제 2 리드 전압보다는 큰 적어도 하나의 제 3 리드 전압을 사용하여, 상기 비휘발성 메모리 장치의 셀 어레이로부터 제 3 데이터를 수신하는 것을 더 포함한다.
상기 다른 과제를 해결하기 위한 본 발명의 메모리 컨트롤러의 일 태양은 제 1 리드 전압과 상이한 제 2 리드 전압의 정보를 비휘발성 메모리 장치로 제공하는 중앙처리장치, 상기 제 1 리드 전압을 사용하여 리드한 제1 데이터 및 상기 제 2 리드 전압을 사용하여 리드한 제2 데이터를 리드하고, 리드한 서로 다른 상기 제 1 데이터 및 상기 제 2 데이터를 저장하는 메모리, 상기 제1 데이터 및 제2 데이터를 사용하여 에러 비트를 정정하는 ECC 디코더를 포함하고, 상기 ECC 디코더는 상기 제 1 데이터의 에러 비트를 정정할 수 없으며, 상기 ECC 디코더는 상기 제 2 데이터의 에러 비트를 정정할 수 있는 경우, 상기 중앙처리 장치는 상기 제1 리드 전압 및 상기 제2 리드 전압의 비교 결과에 따라 상기 비휘발성 메모리를 재프로그램 할 것을 결정한다.
상기 또 다른 과제를 해결하기 위한 본 발명의 메모리 장치의 일 태양은 마이크로 중앙처리장치(micro CPU), 데이터를 저장하고 다수의 페이지 및 다수의 블락을 포함하는 셀 어레이, 상기 마이크로 중앙처리장치(micro CPU)의 제어에 따라, 동일한 어드레스에 대응되는 제 1 페이지로 인가되는 서로 상이한 제 1 리드 전압 및 제 2 리드 전압을 형성하는 전압발생회로를 포함하며, 상기 마이크로 중앙처리 장치(micro CPU)는 상기 제 1 리드 전압과 상기 제 2 리드 전압을 비교하여, 비교 결과에 따라, 상기 셀 어레이를 재프로그램을 한다.
상기 또 다른 과제를 해결하기 위한 본 발명의 메모리 시스템의 일 태양은 데이터를 저장하는 다수의 페이지 및 다수의 블락을 포함하는 비휘발성 메모리, 상기 비휘발성 메모리를 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 상기 비휘발성 메모리로부터 제 1 리드 전압을 사용하여 리드한 제1 데이터, 제 2 리드 전압을 사용하여 리드한 제2 데이터 및 상기 제1 리드 전압 정보, 상기 제2 리드 전압 정보을 수신하고 저장하는 메모리, 상기 제1 데이터 및 제2 데이터를 사용하여 에러 비트를 정정하는 ECC 디코더, 및 상기 제1 데이터는 에러 비트 정정이 가능하지 않고, 상기 제2 데이터는 에러 비트 정정을 할수 있는 경우, 상기 제1 리드 전압 및 상기 제2 리드 전압을 비교하여, 비교 결과에 따라, 상기 비휘발성 메모리를 재프로그램 할 것을 결정하는 중앙처리장치를 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 개념에 따른 실시예는 메모리 컨트롤러 구동방법 및 메모리 장치에 관한 발명이며, 멀티 비트 비휘발성 메모리의 신뢰도를 향상시킬 수 있는 장점이 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 SLC(single level cell) 플래시 메모리 장치의 차지 로스(charge loss) 현상을 설명하기 위한 도면이다.
도 2은 2비트 멀티 레벨 셀(MLC) 플래시 메모리 장치의 차지 로스(charge loss) 현상을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 구동 방법을 설명하기 위한 순서도이다.
도 4a 내지 도 4c는 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 구동방법을 설명하기 위한 도면들이다.
도 5는 본 발명의 다른 실시예에 따른 리드 전압 변화를 보여주는 메모리 장치 구동방법이다.
도 6은 본 발명의 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 메모리 시스템 블락도이다.
도 8는 본 발명의 다른 실시예에 따른 메모리 시스템의 블락도이다.
도 9는 도 8의 셀어레이의 하나의 블락을 상세히보여주는 도면이다.
도 10은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치 블락도이다.
도 11은 본 발명의 일 실시예에 따른 순서도이다.
도 12는 본 발명의 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 13은 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블락도를 나타낸다.
도 14는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 15은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 SLC(single level cell) 플래시 메모리 장치의 차지 로스(charge loss) 현상을 설명하기 위한 도면이다.
도 1을 참조하면, 차지 로스 현상은 플래시 메모리 장치의 저장층(예를 들어, 플로팅 게이트(floating gate)) 또는 터널 산화물 층(tunnel oxide layer)에 포획(trap)된 전자들이 시간이 지남에 따라, 포획된 전하 중 일부가 저장층 또는 터널 산화물 층(tunnel oxide layer)로부터 빠져나오는 것을 의미한다. 또한, 프로그램 및 이레이즈를 반복하는 회수가 증가하면 터널 산화물 층(tunnel oxide layer)이 열화되고, 이에 따라 차지 로스 현상이 더 심하게 발생될 수 있다.
구체적으로, x축은 전압을 나타내며, y축은 메모리 셀의 개수를 나타낸다. 제1 프로그램 상태 산포(1-a)는 프로그램 동작 직후의 프로그램 상태 산포를 나타내며(즉, 차지 로스 현상이 발생되지 않는 상태), 제2 프로그램 상태 산포(1-b)는 차지 로스 현상이 발생된 후의 프로그램 상태 산포를 나타낸다. 즉, 차지 로스 현상이 발생됨에 따라, 제1 프로그램 상태 산포(1-a)는 제2 프로그램 상태 산포(1-b)로 이동하게 된다.
따라서, 제1 프로그램 상태 산포(1-a)는 베리파이 전압(Vverify)보다 우측에 위치하는 반면, 제2 프로그램 상태 산포(1-b)의 일부 산포(1-c)는 베리파이 전압(Vverify) 좌측에 위치하게 된다. 제2 프로그램 상태 산포(1-b)의 일부 산포(1-c)에 해당하는 비휘발성 메모리 셀의 개수가 많아지면, 일부 산포(1-c)에 해당하는 비휘발성 메모리 셀은 ECC(error correction code)를 이용하여 정정할 수 없다.
도 2은 2비트 멀티 레벨 셀(MLC) 플래시 메모리 장치의 차지 로스(charge loss) 현상을 설명하기 위한 도면이다.
MLC 플래시 메모리 장치의 경우, 하나의 메모리 셀에 k개의 비트를 프로그램 하려면, 2k 개의 문턱 전압들 중 어느 하나가 상기 메모리 셀에 형성되어야 한다. 2비트를 하나의 셀에 저장하는 경우 메모리 셀들 간의 미세한 전기적 특성의 차이로 인해, 동일한 데이터가 프로그램 된 메모리 셀들의 문턱 전압들은 일정한 범위의 문턱전압 산포(threshold voltage distribution)를 형성할 수 있다. 각각의 문턱전압 분포는 k개의 비트에 의해 생성될 수 있는 2k 개의 데이터 값 각각에 대응될 수 있다.
도 2를 참조하면, 2비트 MLC의 경우, 프로그램 동작 직후의 상태산포인 P1(2-a), P2(2-b), P3(2-c)인 3개의 프로그램 문턱전압 상태 산포를 형성하며, 하나의 이레이즈 상태(state)의 문턱전압 산포인 E(2-g)가 형성된다. P1(2-e), P2(2-c), P3(2-a)는 프로그램후 차지로스(charge loss)가 발생하지 않아, 상태 산포가 하나도 겹치지 아니한다. 각 문턱전압의 상태 산포별로 리드전압을 각각 가지게 된다. 따라서 2비트인 경우 VreadA, VreadB, VreadC로 총 3개의 리드전압을 가지게 된다. 미리 정해진 리드전압, VreadA, VreadB, VreadC는 제조과정에서 미리 정해진 디폴트 전압일 수 있다. 도면에서는 편의를 위하여 2비트를 예를 들어 설명하였으나, 이에 한정된 것은 아니다. 3비트 플래시 메모리의 경우 7개의 프로그램 산포와 1개의 이레이즈 산포를 가지며, 4비트 플래시 메모리의 경우 15개의 프로그램 산포와 1개의 이레이즈 산포를 가진다.
2비트 멀티 레벨 셀(MLC) 플래시 메모리가 프로그램 수행후, 시간이 경과하고, 또한 프로그램 및 이레이즈를 반복하여 시간이 경과한 경우, 플래시 메모리 셀의 특성 열하로 인하여 차지 로스(charge loss)로 인하여 변형될 수 있는 프로그램 및 이레이즈 상태의 문턱접압 산포를 예시적으로 보여 주는 도면이다.
도 1에서 보았듯이, 플래시 메모리의 경우, 시간이 지남에 따라, 플로팅 게이트(floating gate) 또는 터널 산화물 층(tunnel oxide layer)에 포획(trap)된 전자들이 방출되는 차지 로스가 발생한다. 또한 프로그램 및 이레이즈를 반복하면서 터널 산화물 층(tunnel oxide layer)이 열화 되어 차지 로스를 더욱 증가 시킬 수 있다. 차지 로스는 문턱전압을 감소시킬 수 있어, 문턱전압의 산포를 왼쪽을 이동 시킬 수 있다.
도시된 것과 같이, 인접한 각 상태의 문턱전압 산포들이 서로 중첩될 수 있다. 산포가 중첩되면 특정 리드전압 인가 시, 리드되는 데이터에는 많은 오류가 포함될 수 있다. 예를 들면, Vread1을 인가 시에, 온(on)상태이면 P2 쪽에 있는 리드 데이터를 말하고, 오프(off) 상태이면 P3 쪽에 있는 데이터를 말한다. 그러나, 겹쳐진 부분의 경우, P3인 메모리 셀의 상태일지라도 메모리 셀이 온(on) 상태로 리드될 수 있어 에러 비트를 야기 할 수 있다. 따라서, 문턱전압 산포가 중첩됨에 따라, 리드된 데이터에는 많은 에러 비트들이 포함될 수 있다.
도 3은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 구동 방법을 설명하기 위한 순서도이다. 도 4a 내지 도 4c는 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 구동방법을 설명하기 위한 도면들이다.
우선, 도 3 및 도 4a을 참조하면, 제1 리드 전압(Vread1)을 이용하여, 비휘발성 메모리 셀로부터 제1 데이터를 리드한다(S10).
구체적으로, 전술한 것과 같이, 제1 프로그램 상태 산포(1-a)는 프로그램 동작 직후의 프로그램 상태 산포이다. 제1 프로그램 상태 산포(1-a)는 베리파리 전압(Vverify)보다 우측에 위치한다. 제2 프로그램 상태 산포(1-b)는 차지 로스 현상이 발생된 후의 프로그램 상태 산포이다.
여기서, 제1 리드 전압(Vread1)을 이용하여, 제2 프로그램 상태 산포(1-b)에 해당하는 비휘발성 메모리 셀로부터 제1 데이터를 리드하면, 제1 데이터 중 일부는 정정할 수 없는(uncorrectable) 에러 비트가 존재하는 영역(1-c)이 발생한다.
한편, 제1 리드 전압(Vread1)은 비휘발성 메모리 장치의 제조 당시 설정된 디폴트(default) 리드 전압일 수 있으나, 이에 한정되는 것은 아니다.
도 3 및 도 4b를 참조하면, 제1 리드 전압(Vread1)과 상이한 제2 리드 전압(Vread2)을 이용하여, 비휘발성 메모리 셀로부터 제2 데이터를 리드한다(S20).
구체적으로, 제1 리드 전압(Vread1) 보다 작은 제2 리드전압(Vread2)을 사용하여, 동일한 어드레스의 데이터를 다시 리드를 수행한다. 제 2 리드 전압(Vread2)를 사용하여 리드한 데이터를 제2 데이터라 한다. 제2 리드 전압(Vread2)은 제2 프로그램 상태 산포(1-b)보다 좌측에 위치하기 때문에, 제2 리드 전압(Vread2)을 이용하여 얻은 제2 데이터는 에러 비트 정정이 가능한 데이터일 수 있다.
도 3 및 도 4c를 참조하면, 제1 리드 전압(Vread1)과 제2 리드 전압(Vread2)을 비교하여, 비교결과에 따라 비휘발성 메모리 셀을 재프로그램(reprogram)한다(S30).
구체적으로, 예를 들어, 제1 리드 전압(Vread1)및 제2 리드 전압(Vread2)를 비교하여, 차이 값이 기준값(reference value) 이상인 경우, 재프로그램할 수 있다. 재프로그램은 정정된 제 2 데이터를 사용하여 리드 어드레스와 동일한 어드레스에 다시 프로그램을 수행하는 것이다.
도시된 것과 같이, 차지 로스로 인한 변화된 제2 프로그램 상태 산포(1-b)는, 재프로그램을 통해서 우측으로 이동되어 제3 프로그램 상태 산포(1-d)가 될 수 있다. 다시 말해서, 재프로그램 동작 수행 후, 비휘발성 메모리 장치의 상태 산포는 정상적인 프로그램 후에 형성되는 제1 프로그램 상태 산포(1-a)와 동일 또는 유사한 상태로 회복 될 수 있다. 따라서, 재프로그램은 비휘발성 메모리 장치 데이터 신뢰도를 향상시켜줄 수 있으며, 비휘발성 메모리 장치의 수명을 연장시킬 수 있다.
도 5는 본 발명의 다른 실시예에 따른 리드 전압 변화를 보여주는 메모리 장치 구동방법이다.
도 5를 참조하면, 도 1에서와 같이 베리파이 전압(Vverify)보다 우측에 존재하는 제 1 프로그램 상태산포(1-a) 및 차지 로스가 발생한 이후, 제 2 프로그램 상태 산포(1-b)를 보여준다. 제 2 프로그램 상태산포에 해당하는 메모리 셀들을 제 1 리드전압(Vread 1)을 사용하여 리드시에, 정정 불가능한 에러 비트가 발생할 수 있다. 도 7 및 도 8에서 후술하겠지만, 메모리 컨트롤러는 정정 불가능한 에러 비트 발생시에 제 2 리드전압의 정보를 상기 비휘발성 메모리 장치로 제공할 수 있다.
도 5를 참조하면, 상기 제 1 리드 전압보다는 작고, 상기 제 2 리드 전압보다는 큰 적어도 하나의 제 3 리드 전압(M1_Vread1, M2_Vread2, M3_Vread3)을 사용하여, 상기 비휘발성 메모리 장치의 셀 어레이로부터 제 3 데이터를 수신하는 할 수 있다. 제 3 데이터는 정정 불가능한 에러 비트를 포함하는 데이터이다. 다시 말해서, 에러 비트 정정이 가능한 제2 데이터가 수신될때까지, 순차적으로 작게 변경된 적어도 하나의 제 3 리드 전압을 이용하여, 리드 동작을 반복할 수 있다.
도 6은 본 발명의 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 블락도이다.
도 6를 참조하면, 본 발명의 몇몇 실시예들에 따른 메모리 시스템(1)은 비휘발성 메모리 장치(20), 마이크로프로세서(microprocessor)(12), ECC 디코더(error correction code decoder)(15)를 포함 할 수 있다.
마이크로 프로세서(12)는 제1 리드 명령(READ_CMD1)과 어드레스(ADDR)를 비휘발성 메모리 장치(20)에 제공한다.
비휘발성 메모리 장치(20)는 제1 리드 명령(READ_CMD1)에 따라, 제1 리드 전압(도 4a의 Vread1 참조)을 이용하여 어드레스(ADDR)에 대응되는 제1 데이터(DATA1)를 출력한다. 전술한 것과 같이, 비휘발성 메모리 장치(20)에는 차지 로스 현상이 발생되고, 이에 따라 제1 데이터(DATA1)는 정정할 수 없는 에러 비트를 포함한다.
ECC 디코더(15)는 제1 데이터(DATA1)를 제공받고, 에러 정정에 실패하였음을 알리는 정정 실패 신호(UNCOR)를 출력한다.
마이크로프로세서(12)는 정정 실패 신호(UNCOR)를 제공받아, 제2 리드 명령(READ_CMD2)와 어드레스(ADDR)를 제공한다.
비휘발성 메모리 장치(20)는 제2 리드 명령(READ_CMD2)에 따라, 제1 리드 전압(Vread1)과 다른 제2 리드 전압(도 4b의 Vread2 참조)을 이용하여 어드레스(ADDR)에 대응되는 제2 데이터(DATA2)를 출력한다. 제 2 리드 전압(Vread2) 레벨은 제 1 리드 전압(Vread1)레벨보다 작다. 제 2 데이터(DATA2)는 ECC 디코더(15)로 제공된다. 제 2 데이터(DATA2)는 정정 불가능한 에러 비트를 포함하지 않는다. ECC 디코더(15)는 제 2 데이터의 에러 비트 정정을 수행한다. ECC 디코더(15)는 에러 정정을 수행하였다는(COR) 정보를
마이크로 프로세서(12)로 제공한다. ECC 디코더(15)가 에러 비트 정정을 성공하면, 마이크로프로세서(12)는 제1 리드 전압(Vread1)의 전압 레벨과 제 2 리드 전압(Vread2)의 전압 레벨을 비교하여, 두 전압의 차이가 기준값(reference value) 보다 클때는 비휘발성 메모리 장치를 재프로그램을 하도록 결정 할 수 있다.
도 7 본 발명의 일 실시예에 따른 메모리 시스템의 블락도이다. 메모리 시스템 블락도는 컨트롤러(10)와 비휘발성 메모리 장치(20)를 포함한다. 비휘발성 메모리 장치(20)로 낸드 플래시 메모리 장치를 예로 들었으나, 이에 한정되는 것은 아니다. 비휘발성 메모리 장치(20) 는 다수의 낸드 플래시 메모리 장치(20'-1, 20'-2, 20'-3)를 포함할 수 있다. 컨트롤러(10)는 마이크로프로세서(microprocessor; 12), 롬(ROM;13), 램(RAM;14), ECC 디코더(decoder; 15), ECC 인코더(encoder; 16), 명령어 발생부(CMD generator; 17), 호스트 I/O (input/output; 11), 버스(18)를 포함 할 수 있다. 상기 컨트롤러(10)의 구성요소들은 상기 버스(18)를 통하여 서로 전기적으로 연결될 수 있다.
마이크로 프로세서(microprocessor;12)는 컨트롤러(10)를 포함한 메모리 시스템(100)의 동작을 전반적으로 제어한다. 메모리 시스템(100)에 전원이 인가되면, 마이크로 프로세서(microprocessor;12)는 상기 롬(ROM;13)에 저장된 상기 메모리 시스템(100) 동작을 위한 펌웨어(firmware)를 램(RAM;14))상에서 구동시킴으로써 상기 메모리 시스템(100)의 전반적인 동작을 제어할 수 있다.
도 7에서 상기 메모리 시스템의 구동 펌웨어 코드는 롬(ROM;13)에 저장되나 본 발명의 범위가 이에 한정되는 것은 아니다. 펌웨어 코드는 롬(ROM;13)이외의 다양한 비휘발성 메모리 장치, 예를 들면, 낸드 플래시 메모리 장치(20))에 저장될 수도 있다. 따라서, 마이크로프로세서(microprocessor; 12)의 제어 또는 개입 개입이란, 마이크로그로세서(microprocessor; 12)의 직접적 제어뿐만 아니라, 마이크로프로세서에 의해서 구동되는 소프트웨어인 펌웨어의 간섭도 포함 할 수 있다.
램(RAM; random access memory; 14)은 버퍼(buffer)역할을 하는 메모리로, 호스트 I/O(11)를 통하여 입력되는 최초 명령어, 데이터, 각종 변수들 또는 비휘발성 메모리 장치(20)로부터 출력되는 데이터들을 저장할 수 있다. 비휘발성 메모리 장치(20)로 입력되고 출력되는 데이터, 각종 파라미터 및 변수들을 저장할 수 있다.
호스트 I/O(input / output;11)는 미리 결정된 프로토콜에 따라서 상기 컨트롤러를 포함한 메모리 시스템과 호스트 사이의 인터페이스를 수행할 수 있다.
호스트 인터페이스는 외부 호스트와 USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI) 등을 통해서 통신할 수 있다.
ECC 디코더(15) 및 ECC 인코더(16)는 에러 비트 정정을 수행한다. ECC 인코더(16)는 메모리시스템의 호스트 I/O(11) (또는 인터페이스)를 통해 입력되는 데이터를 오류정정 인코딩을 하여, 패리티(parity) 비트가 부가된 데이터를 형성한다. 패리티 비트는 메모리 장치(20)에 저장될 수 있다.
ECC 디코더(15)는 출력된 데이터에 대하여 에러 정정 디코딩을 수행하고 수행 결과에 따라 상기 에러 정정 디코딩의 성공 여부를 판단하고 판단 결과에 따라 지시 신호를 출력한다. 리드한 데이터는 ECC 디코더(15)로 전송되고, ECC 디코더(15)는 페리티(parity) 비트를 사용하여 데이터의 에러 비트를 정정 할 수 있다. 에러 비트 개수가 정정 가능한 에러 비트 한계치 이상 발생하면, ECC 디코더(15)는 에러 비트를 정정할 수 없고, 에러 정정 실패(fail)가 발생한다. ECC 인코더(16)와 ECC 디코더(15)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 할 수 있으며 이에 한정되는 것은 아니다.
ECC 인코더(16) 및 ECC 디코더(15)는 오류정정화를 위한 회로, 시스템 또는 장치를 모두 포함할 수 있다.
명령어 발생부(command generator; 17)란 비휘발성 메모리 장치(20)가 수행하고자 하는 명령어를 발생하고, 명령어를 메모리 장치(20)로 인가할 수 있다. 명령어에는 프로그램 명령어, 리드 명령어, 재리드 명령어, 제 2 리드명령어 등이 있을 수 있으며, 이에 한정되는 것은 아니다.
도 6 및 도 7을 참조하면, 마이크로프로세서(microprocessor; 12)의 제어로 인하여, 명령어 발생부(17)는 제 1 리드명령어(Read_CMD1) 및 어드레스(ADDR)를 비휘발성 메모리 장치(20)로 인가할 수 있다. 비휘발성 메모리는 지정된 어드레스(ADDR)의 데이터를 제 1 리드 전압(Vread1)을 사용하여, 리드한다.
도 7에서는 비휘발성 메모리 장치(20)를 낸드 플래시 메모리 장치(20'-1, 20'-2, 20'-3)로 예를 들었으나, 이에 한정되는 것은 아니다. 본 실시예의 설명을 위해서, 낸드 플래시 메모리 장치(20)를 예를 들어 설명하도록 한다.
도 4b를 참조하면, 제 1 리드 전압 (Vread1)은 제조과정에서 설정된 디폴트 전압이 될 수 있다. 제 1 리드 전압(Vread1)정보는 롬(ROM;13) 또는 낸드 플래시 메모리 장치(20)에 저장되어 있을 수 있다. 제 1 리드 전압(Vread1)을 사용하여, 리드한 제 1 데이터는 ECC 디코더(15)로 전송되고, 에러 비트 개수가 정정 가능한 에러 비트 한계치 이상 발생하면, ECC 디코더(15)는 에러 비트를 정정할 수 없고, 에러 정정 실패(fail)가 발생한다. ECC 디코더(15)는 에러 정정 실패가 발생하면, 정정 실패 신호(UNCOR)를 마이크로프로세서(12)로 전송한다. 마이크로프로세서(12)는 제 2 전압 정보, 다시 말해서, 제1 리드 전압에서 얼마만큼 이동하라는 오프세트 값 (offset value)을 낸드 플래시 메모리 장치(20)로 전송할 수 있다. 낸드 플래시 메모리 장치(20)는 제1 전압에서 전송 받은 오프세트 값만큼 작은 제 2 리드전압(Vread2)을 사용하여 낸드 플래시 메모리 장치(20)의 동일힌 어드레스로부터 제 2 데이터를 읽을 수 있다.
제 2 데이터는 정정 불가능한 에러 비트를 포함하지 않으며, ECC 디코더(15)는 제 2 데이터의 에러 비트 정정을 할 수 있다.
제 2 데이터를 수신하면, 마이크로프로세서(12)는 제 1 리드 전압과 제 2 리드 전압값을 비교하여, 낸드 플래시 메모리 장치(20)의 재프로그램 여부를 결정할 수 있다. 도 4c를 참조하면, 제1 리드 전압(Vread1) 레벨과 제 2 리드전압(Vread2) 레벨 차이가 기준값(reference value)보다 클 경우, 마이크로프로세서(microprocessor; 12)는 낸드 플래시 메모리 장치(20)를 재프로그램 할 것을 결정할 수있다.
또한, 도 5 및 도 7를 참조하면, 제 1 리드 데이터를 리드하는 것과 제 2 데이터 리드하는 것 사이에, 상기 제 1 리드 전압(Vread1)보다는 작고, 상기 제 2 리드 전압(Vread2)보다는 큰 적어도 하나의 제 3 리드 전압(M1_Vread1, M2_Vread1, M3_Vread1)을 사용하여, 낸드 플래시 메모리 장치(20)로부터 제 3 데이터를 수신할 수 있다.
도 5를 참조하면, 구체적으로, 제 1 리드 전압(Vread1)을 사용하여 리드 한 결과, 정정 불가능한 에러 비트가 발생한 경우, 마이크로프로세서(microprocessor; 12)는 0.2 라는 오프세트(offset) 값인 전압 정보를 낸드 플래시 메모리 장치(20)로 전송해 줄 수 있다. 낸드 플래시 메모리 장치(20)는 제 1 리드 전압(Vread1)보다 0.2 볼트 작은 변형된 리드 전압 값인, 제 3 리드 전압(M_Vread1)을 사용하여 동일한 어드레스의 데이터를 다시 리드 할 수 있다. 마이크로프로세서(12)는 정정 불가능한(uncorrectable) 에러 비트가 발생하지 않을 때까지, 반복적으로 오프세트 값을 낸드 플래시 메모리 장치(20)로 전송할 수 있다. 따라서, 에러 비트 정정이 가능한 제 2 데이터(DATA2)가 수신될때까지, 적어도 하나 이상의 제 3 리드 전압을 사용하여, 리드 동작을 반복할 수 있다.
도 7에 따른 다른 실시예를 기술하도록 한다. 제 1 리드 전압(Vread1)을 사용하여 리드한 데이터가 정정 불가능한(uncorrectable) 에러 비트를 포함한 제 1 데이터라고 가정한다. 이경우, 마이크로프로세서(12)의 제어에 의해서, 명령어 발생부(17)는 리드 리트라이(read retry) 명령어를 생성하고, 낸드 플래시 메모리 장치(20)로 전송할 수 있다. 리드 리트라이(read retry) 명령어에 대응되는 리드 전압 값의 정보는 그룹핑이 되어 낸드 플래시 메모리 장치(20)에 저장되어 있을 수 있다. 마이크로프로세서(microprocessor)는 낸드 플래시 메모리 장치(20)에 저장되어 있는 리드 레벨 그룹 중에서 특정 레벨을 선택하도록, 신호를 전송할 수 있다. 또는 리드 리트라이 명령어를 낸드 플래시 메모리 장치(20)로 전송하면, 낸드 플래시 메모리 장치(20)가 저장된 리드 전압 정보를 선택하여 리드 전압을 변경하고, 변경된 리드 전압을 사용하여, 동일한 어드레스에 해당되는 데이터를 리드할 수 있다. 제 2 데이터가 출력될때까지, 변경된 리드 전압을 사용하여 리드를 반복할 수 있다. 본 실시예의 경우도 상기 실시한 실시예와 동일하게 마이크로프로세서(microprocessor; 12)는 제 1 리드 전압과 제2 리드전압 값의 차이를 계산하여, 차이 값이 기준값(reference value)보다 큰경우, 낸드 플래시 메모리 장치(20)의 재프로그램을 결정 할 수 있다. 재프로그램 관련해서는 도 8이하에서 자세히 설명하도록 한다.
도 8는 본 발명의 다른 실시예에 따른 메모리 시스템의 블락도이고, 도 9는 도 8의 셀어레이(28)의 하나의 블락(30)을 자세히 보여주는 도면이다.컨트롤러(10) 구성요소는 도 8에서 설명한 바와 동일하고, 마이크로프로세서(microprocessor; 12), 램(RAM;14), 롬(ROM;13), ECC 인코더(16)ECC 디코더(15), 명령어 발생부(CMD generator;17)를 포함할 수 있다. 또한 각각 구성요소는 도 7에서 살펴본바와 같이 버스(18)로 전기적으로 연결되어 있다. 컨트롤러(10) 내부의 각각의 구성요소의 역할은 상기 설명한 것과 동일하다. 도 7를 참조하면, 비휘발성 메모리 장치(20)는 낸드 플래시 메모리 장치를 예로 들었으나, 이에 한정되는 것은 아니다.
낸드 플래시 메모리 장치(20)는 셀 어레이(28), X-decoder(행선택회로;29), 전압발생회로(26), 입출력 패드(Input/ output pad,22) 입출력 버퍼(Input output buffer;23), 페이지 버퍼(27), 제어(컨트롤) 로직(24)을 포함할 수 있다.
메모리 셀 어레이(28)는 다수의 워드라인(W/L)과 다수의 비트라인(B/L)을 포함하며, 각 메모리 셀은 1-비트 데이터 또는 M-비트(멀티-비트) 데이터(M은 2 또는 그 보다 큰 자연수)를 저장할 수 있다. 각 메모리 셀은 플로팅 게이트 또는 전하 트랩층과 같은 전하 저장층을 갖는 메모리 셀 또는 가변 저항 소자를 갖는 메모리 셀로 구현될 수 있다.
셀어레이(28)는 다수의 블락(30)및 다수의 페이지(31)를 포함 할 수 있다. 도9는 도 8의 셀어레이(28)의 하나의 블락(30)을 자세히 보여주는 도면이다. 도 9을 참조하면, 하나의 블락은 다수의 페이지(31)를 포함한다. 또한 하나의 페이지는 다수의 섹터(sector; 32)를 포함한다. 구체적으로는, 하나의 페이지(31)는 8개의 섹터(32)를 포함할 수 있다. 페이지(31)는 프로그램 및 리드 동작시 단위가 될 수 있으며, 블락(30)은 이레이즈(erase) 동작의 단위가 될 수 있다.
메모리 셀 어레이(28)는 단층 어레이 구조(single-layer array structure)(또는, 2차원 어레이 구조라고 불림) 또는 다층 어레이 구조(multi-layer array structure)(또는, 3차원 어레이 구조라고 불림)를 갖도록 구현될 것이다.
도 8을 참조하면, 컨트롤(제어) 로직(24)은 플래시 메모리 장치(20)의 동작을 전반적으로 제어한다. 컨트롤러(10)로부터 명령어(CMD)가 입력되면, 컨트롤 로직(24)은 명령어(CMD)를 해석을 하고 플래시 메모리 장치(20)가 해석된 명령어에 따른 동작, 예컨대 프로그램(program) 동작, 리드(read) 동작, 리드 리트라이(read retry) 동작, 이레이즈(erase) 동작등을 수행 하도록 한다.
X-디코더(행선택 회로; 29)는 컨트롤 로직(24)에 의해서 제어되며, 로우 어드레스에 따라 메모리 셀 어레이(28)에 구현된 다수의 워드 라인들 중에서 적어도 하나의 워드 라인을 구동한다.
전압발생회로(voltage generator;26)는 제어(컨트롤) 로직(24)의 제어에 따라 프로그램 동작, 제 1 리드 동작, 제 2 리드 동작 또는 이레이즈 동작에 필요한 적어도 하나의 전압을 생성하고 X- 디코더(29)에 의하여 선택된 적어도 하나로 생성된 적어도 하나의 전압을 공급한다.
레지스터(25)는 컨트롤러(10)로부터 입력되는 정보들을 저장하는 공간이며, 다수의 래치(latch)들을 포함할 수 있다. 예를 들어, 컨트롤러(10)내의 마이크로프로세서(12)가 리드 전압 정보인, 오프세트 값(offset value)을 플래시 메모리(20)로 전송하면, 레지스터(25)에 오프세트 값을 저장할 수 있다. 또는, 레지스터(25)는 리드 전압 정보를 그룹핑하여 테이블로 형성한 정보를 저장할 수 있다.
페이지 버퍼 회로(27)는 컨트롤 로직(24)에 의해서 제어되며, 동작 모드, 예컨대 리드 동작 또는 프로그램 동작에 따라 감지 증폭기로서 또는 라이트 드라이버로서 동작한다.
입출력 패드(Input/ output pad; 22), 입출력 버퍼(Input output buffer;23 )는 외부 장치, 예컨대 컨트롤러(10) 또는 호스트와 비휘발성 메모리 장치(20) 사이에서 주고 받는 데이터의 입출력 경로가 될 수 있다.
낸드 플래시 메모리 장치(20)는 제 1 리드 명령어(READ_CMD1)을 수신하면, 전압 발생기(26)는 디폴트 리드 전압인 제1 리드 전압을 형성한다. 제 1 리드 전압은 X-디코더(29)를 통해서 어드레스에 대응되는 제 1 페이지(31)로 인가될 수 있다. 리드 데이터는 페이지 버퍼에 의해서 감지(sensing)되며, 입출력(I/O) 패드(22)를 통해서 ECC 디코더(15)로 보내진다. ECC 디코더(15)는 리드된 데이터의 에러 비트 정정을 수행한다. 리드된 데이터가 정정 불가능한(uncorrectable) 에러 비트를 포함하는 제 1 데이터인 경우, ECC 디코더(15)는 에러 비트 정정이 실패하였다는 신호(UNCOR)를 마이크로프로세서(12)로 보내 줄 수 있다. 마이크로프로세서(12)는 제 1 리드 전압에서 특정 값만큼 이동하라는, 리드 전압 정보인 오프세트 값(offset value)을 플래시 메모리로 전송할 수 있다. 오프세트 값(offset value)은 레지스터(25)에 저장될 수 있다. 전압발생기(voltage generator,26)는 레지스터(25)에 저장된 오프세트 값을 참조하여, 제 1 리드 전압보다 레지스터(25)에 저장된 오프세트 값에 대응되는 전압값 만큼 변형된 제 2 리드 전압 형성할 수 있다. 제 2 리드 전압은 X-디코더(29)를 통해서 제 2 페이지로 인가될수 있다. 메모리 셀 어레이(28)는 제 2 리드 볼티지를 사용하여 제 2 페이지를 리드 하여, 에러 비트 정정 가능한 제 2 데이터를 I/O 패드(22)를 통해서 ECC 디코더(15) 제공할 수 있다. 제 1 데이터는 낸드 플래시 장치(20)의 제 1 페이지 어드레스에 대응되는 제 1 페이지를 포함하는 제 1 블락에 저장되고, 상기 제 2 데이터는 상기 비휘발성 메모리 장치의 제 2 페이지 어드레스에 대응되는 제 2 페이지를 포함하는 제 2 블락에 저장될 수 있다. 제 1 페이지 어드레스와 제 2 페이지 어드레스는 물리적으로 동일한 어드레스이다. 제 1 블락과 제 2 블락은 물리적으로 동일한 블락 어드레스를 가질 수 있다.
또한, 도 5 및 도 8을 참조하면, 도 7에서 기술한 바와 같이, 정정 불가능한(uncorrectable) 에러 비트가 발생하지 않을 때까지, 마이크로프로세서(12)는 리드 전압 정보인, 오프세트 값(offset value)를 반복하여 낸드 플래시 메모리 장치(20)으로 제공한다. 오프세트 값을 제공 받은 낸드 플래시 메모리 장치(20)는 오프세트 값에 대응되는 제 3 리드 전압을 사용하여, 낸드 플래시 장치(20)의 리드 를 반복할 수 있다.. 낸드 플래시 메모리 장치(20)는 제 2 전압(Vread2)이 발생할때까지, 제 3 리드 전압(M1_Vread1, M2_Vread2, M3_VReade3)를 사용하여 낸드 플래시 메모리 장치(20)의 동일한 어드레스 영역을 반복하여 리드한다. 2 리드 전압(Vread2)을 사용하여 제 2 데이터를 리드하고, 제 2 데이터를 ECC 디코더(15)에서 에러 비트를 정정 할 수 있다.
ECC 디코더(15)가 에러 비트를 정정하면, 마이크로프로세서(12)는 제 1 리드 전압과 제 2 리드 전압값을 비교하여, 낸드 플래시 메모리 장치(20)의 재프로그램 여부를 결정할 수 있다. 재프로그램이란, 에러 비트가 정정된 제 2 데이터를 사용하여, 제 1 페이지 또는 제 2 페이지에프로그램을 하는 것이다. 재프로그램은 에러 비트가 정정된 제 2 데이터를 사용하여 리드한 제 1 페이지에 다시 프로그램을 하는 것이다. 다시 말해서, 제 1 페이지를 포함한 제 1 블락을 배드 블락(bad block)처리 하지 않고, 계속 사용할 수 있다.
따라서, 재프로그램은 배드 블락 관리(bad block management)에 있어서 효과적이다. 또한, 제 1 페이지뿐만 아니라, 제 1 페이지를 포함하는 제 1 블락 전체에 대해서도 재프로그램을 수행할 수 있다. 또는, 제 2 페이지뿐만 아니라, 제 2 페이지를 포함하는 제 2 블락 전체에 대해서도 재프로그램을 수행할 수 있다. 블락 전체에 대해서 재프로그램을 수행하는 경우, 각각의 페이지별로 데이터를 리드한다. 그리고, ECC 디코더(15)는 리드된 데이터의 에러 비트 정정을 수행하여, 정정된 데이터를 사용하여, 각각의 리드 페이지에 재프로그램을 수행하는 것이다.
또한, 마이크로프로세서(microprocessor; 12)는 웨어 레벨링(wear leveling) 방식에 따라 프로그램 및/또는 소거 사이클들을 관리할 수 있다. 프로그램 및/또는 이레이즈 사이클들은 각 메모리 블락(30)의 프로그램 및/또는 이레이즈 회수를 나타낸다. 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려진 바와 같이, 프로그램 및/또는 이레이즈 사이클들을 나타내는 정보는 플래시 메모리 장치(20)의 메모리 셀 어레이(28) 또는 램(RAM;14)에 저장될 수 있다. 웨어 레벨링 방식(wear leveling manner)은 프로그램 및/또는 이레이즈 동작이 몇몇 특정 메모리 블락들에 편중되는 것을 방지하기 위한 것이다. 웨어 레벨링(wear leveling) 방식에 의하면, 프로그램 및/또는 소거 동작이 메모리 블락들에 대해서 균등하게 수행될 수 있다. 이레이즈 회수가 동일한 블락들은 프로그램 회수도 동일 할 수 있으며, 웨어 아웃(wear out)정도가 비슷 할 수 있다. 따라서, 마이크로프로세서(microprocessor; 12)는 제 1 페이지에 대해서 재프로그램을 결정하였으면, 제 1 페이지를 포함하는 제 1 블락 및/또는 이레이즈 회수가 동일한 적어도 하나의 제 3 블락을 재프로그램 할 수 있다.
또는 제 1 페이지에 대해서 재프로그램을 결정하면, 마이크로프로세서(12)는 제 1 페이지를 포함한 제 1 블락 및/또는 제 1 블락과 프로그램 회수가 동일한 적어도 하나의 제 4 블락을 재프로그램할 수 있다..
또한, 호스트 I/O (input/output; 11)를 통해서 프로그램 될 연속적인 데이터가 컨트롤러로 입력된다고 가정할 수 있다. 데이터의 프로그램 단위는 페이지(31)단위이며, 각각의 페이지(31)는 다수개의 섹터(32)를 포함할 수 있다. 도 9를 참조하면, 하나의 블락(30)은 다수의 페이지(31)를 포함한다. 하나의 페이지(31)는 다수의 섹터(sector; 32)를 포함할 수 있다. 예를 들면, 16Gb 낸드 플래시 메모리 장치의 경우, 하나의 페이지는 512Byte 메모리 셀을 포함한다. 또한 하나의 페이지는 8개의 섹터(sector)로 나뉘어 진다. 예를들어, 프로그램될 데이터가 5K섹터 이상의 용량인경우 연속적인 데이터 분류될 수 있다. 연속적인 데이터는 제 1 페이지를 포함하는 제 1 블락 및 적어도 하나의 제 5블락에 저장될 수 있다. 다시 말해서, 연속적인 데이터는 플래시 메모리 장치(20)의 다수의 블락(30)에 나뉘어서 프로그램 될 수 있다.
5K 섹터는 하나의 예시에 불과한 것이고, 연속적인 데이터란, 특정 기준 섹터 개수 이상의 데이터인 경우라고 정의 할 수 있다. 제 1 블락 및 적어도 하나의 제 5 블락은 프로그램 시기가 동일 하므로, 프로그램된 이후에 차지 로스(charge loss)가 동일하게 발생할 가능성이 존재한다. 따라서, 마이크로프로세서(microprocessor; 12)가 제 1 페이지 대해서, 재프로그램을 결정을 하면, 제 1 페이지를 포함하는 제 1 블락 및/또는 대용량 데이터가 저장된 적어도 하나의 제 5 블락을 재프로그램을 할 수 있다.
또한, 호스트 I/O (input/output; 11)를 통해서 프로그램 될 대용량의 파일 데이터가 컨트롤러로 입력된다고 가정할 수 있다. 일반적으로 대용량 파일 데이터는 동영상 데이터 등을 말한다. 데이터 프로그램 단위는 페이지(31)단위이며, 각각의 페이지(31)는 다수개의 섹터(32)를 포함할 수 있다. 연속적인 데이터에서 설명한 바와 같이, 대용량 파일은 특정 기준 섹터 개수 이상의 데이터라고 할 수 있다. 예를들면, 프로그램될 파일 데이터가 8K섹터 이상의 용량인경우 대용량 파일 데이터로 분류될 수 있다. 대용량 파일 데이터는 제 1 페이지를 포함하는 제 1 블락 및 적어도 하나의 제 6 블락에 저장될 수 있다. 다시말해서, 대용량 파일 데이터는 플래시 메모리 장치(20)의 다수의 블락(30)에 나뉘어서 프로그램 될 수 있다.
제 1 블락 및 적어도 하나의 제 6 블락은 프로그램 시기가 동일 하므로, 프로그램된 이후에 차지 로스(charge loss)가 동일하게 발생할 가능성이 존재한다. 따라서, 마이크로프로세서(microprocessor; 12)가 제 1 페이지 대해서, 재프로그램 결정을 하면, 제 1 페이지를 포함하는 제 1 블락 및/또는 대용량 데이터가 저장된 적어도 하나의 제 6 블락을 재프로그램을 할 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치(20) 블락도이다. 도 10을 참조하면, 도 8에서 설명했던 것과 동일하게, 비휘발성 메모리 장치(20)는 낸드 플래시 메모리 장치(20-1)를 예시적으로 보여 주고 있다. 낸드 플래시 메모리 장치(20)는 셀 어레이(28), X-decoder(행선택회로; 29), 전압 발생회로(26)), 입출력 패드(Input/ output pad;22), 입출력 버퍼(Input output buffer;23), 페이지 버퍼(27)를 포함 할 수 있다. 도 10을 참조하면, 셀 어레이(28), X-디코더(29), 전압 발생회로(26), 입출력 패드(22), 입출력 버퍼(23), 페이지 버퍼(27)는 도 8에서 살펴본 것과 유사 할 수 있다. 도 10을 참조하면, 낸드 플래시 메모리 장치(20)는 마이크로 중앙처리장치(Micro CPU;33)를 포함 할 수 있다. 마이크로 중앙처리 장치(Micro CPU;33)는 낸드 플래시 메모리 장치(20)를 전반적으로 제어할 수 있다. 마이크로 중앙처리 장치(33)는 입출력 패드(I/O Pad;22)로부터 리드 명령어 및 특정주소를 수신하였다고 가정한다. 마이크로 중앙처리장치(33)의 제어로, 전압 발생기(26)은제 1 리드 전압을 생성하여 X-디코더(29)에 제공해준다.. 제 1 리드 전압을 사용하여 리드한 제1 페이지 데이터는 입출력 패드(22)를 통하여 컨트롤러(10)로 출력되고, 컨트롤러(10)는 에러 비트 정정을 한결과 제 1 데이터가 정정 불가능한(uncorrectable) 에러 비트를 포함하고, 에러 정정이 실패할 때, 컨트롤러(10)는 메모리 장치(20-1)로 다시리드 명령어를 제공 할 수 있다. 입출력 패드(I/O pad;22)를 통해서 리드 명령어를 수신한 마이크로 중앙처리장치(micro CPU;33)는 전압 발생기(26)를 제어할 수 있다. 다시 말해서, 마이크로 중앙처리장치(33)는 리드 전압 감소분을 결정하고, 1 리드 전압보다 작은 제 2 리드 전압을 생성하도록 전압 발생기(26)를 제어할 수 있다. 낸드 플래시 메모리 장치(20-1)는 제 2 리드 전압을 사용하여, 제 1 페이지와 동일한 어드레스에 대응되는 페이지의 데이터를 리드한다. 제 2 전압을 사용하여 리드한 제 2 데이터는 역시 컨트롤러(10)로 출력되고 컨트롤러(10)는 에러 비트 정정을 수행한다.
제 2 데이터 에러 비트를 정정하면, 컨트롤러(10)는 리드를 종료하도록 낸드 플래시 메모리 장치(20)를 제어할 수 있다. 리드가 종료되면, 마이크로 중앙처리 장치(33)는 제 1 리드 전압과 제 2 리드 전압과의 차이값을 계산한다. 차이 값이 기준값(referece value) 보다 큰 경우에는 낸드 플래시 메모리 장치(20)에 재프로그램(reprogram or recharging)을 결정할 수 있다. 재프로그램을 결정하면, 마이크로 중앙처리장치(33)는 리드한 페이지에 제 2 데이터를 사용하여 재프로그램을 수행하도록 제어할 수 있다. 또한, 도 5를 참조하면, 제 1 리드 전압보다는 작고, 제 2 리드 전압보다는 큰 제 3 리드 전압을 사용하여, 제 2 데이터가 수신될때까지, 반복하여 동일한 페이지를 리드할 수있다.
재프로그램은 도8 에서 설명한 바와 같이, 마이크로 중앙처리장치(micro CPU;33)는 제 1 페이지(31)를 포함하는 제 1 블락(30) 전체를 재프로그램 하도록 결정할 수 있다. 또한, 대용량 데이터가 제 1 블락 및 적어도 하나의 제 6블락에 나뉘어서 저장될 수 있다. 제1 페이지에 대해서 재프로그램을 결정하면, 마이크로 중앙처리 장치(33)는 제 1 블락 및 적어도 하나의 제 6 블락을 재프로그램 할 수 있다. 제 1 페이지에 대해 재프로그램이 결정되면, 마이크로 중앙처리장치(33)는 대용량 파일 데이터들이 프로그램된 적어도 하나의 블락 모두 재프로그램 결정을 할 수 있다. 또한, 연속적인 데이터도 플래시 메모리의 다수의 블락에 프로그램 될 수 있으므로, 연속적인 데이터가 프로그램된 블락 모두를 재프로그램 결정을 할 수 있다. 그리고, 도 8에서 설명한 바와 같이, 컨트롤러는 웨어레벨링(wear leveling)을 수행하므로 이레이즈 회수 및/또는 프로그램 회수가 동일한 적어도 하나 이상의 블락을 재프로그램 결정할 수 있다.
도 10에서 명시하지는 않았지만, 마이크로 중앙처리 장치(33)는 리드 데이터에 대한 에러 비트를 정정하는 ECC 디코더를 포함할 수 있다. 마이크로 중앙처리장치(micro processor;33)는 제 1 리드 전압을 사용하여 리드한 제 1 데이터를 사용하여, 에러 비트 정정 여부를 판단할 수 있다. 제 1데이터가 정정 불가능하므로, 마이크로 중앙처리장치(micro processor;33) 제어 하에, 전압 발생기(26)는 제 1 리드 전압보다 작은 리드 전압을 생성하고 X-디코더(29)로 제공하도록 할 수 있다. 마이크로 중앙처리장치(micro CPU;33)는 리드한 데이터가 정정 불가능한 에러 비트를 포함하는지를 확인하여, 정정 불가능한 에러 비트가 존재하지 않을 때까지, 전압 발생기(26)를 제어한다.
마이크로 중앙처리장치(33)제어하에, 전압 발생기(26)는 순차적으로 낮은 전압을 생성하고, 메모리 장치(20-1)변형된 리드 전압을 사용하여, 동일 페이지의 리드동작을 반복 할 수 있다. 제 2 리드 전압을 이용하여, 에러 비트를 정정 할 수 있는 제 2 데이터가 리드될때, 리드 동작은 종료된다. 마이크로 중앙처리장치(micro cpu;33)는 제 1 전압과 제 2 전압의 차이를 연산하여, 차이 값이 기준값보다 큰경우, 마이크로 중앙처리장치(micro CPU;33)는 재프로그램을 결정할 수 있다.
도 11은 본 발명의 일 실시예에 따른 순서도이다. 도 11에서는 낸드 플래시 메모리 장치(20)를 예를 들어 설명하고 있다. 도 11을 참조하면, 낸드 플래시메모리 장치의 데이터 리드를 시작한다.(S11) 낸드 플래시 메모리 장치(20)는 제 1 리드 전압을 사용하여 리드동작을 수행한다. 낸드 플래시 메모리 장치(20)의 경우 리드 단위는 페이지 단위이므로, 제 1 페이지 어드레스에 대응되는 제1 페이지를 리드한다.(S12) 리드한 제 1 데이터가 정정 불가능한(uncorrectable) 에러 비트를 포함하여 에러 정정이 실패한 경우를 가정해 볼 수 있다.(S13) 에러 비트 정정을 실패하면, 컨트롤러(10)는 낸드 플래시 메모리 장치(20)가 리드 전압를 변경시키도록 제어할 수 있다. 낸드 플래시 메모리 장치(20)는 변형된 리드 전압을 사용하여 제 1 페이지와 동일한 어드레스에 대응되는 페이지를 다시 리드한다. (S14) 변형된 리드 전압를 사용하여 리드한 데이터가 정정 불가능한 에러 비트를 포함하면 S14 단계로 다시 돌아간다. 그리고, 리드 전압을 다시 변경하고, 재차 변경된 리드 전압을 사용하여 제 1 페이지와 동일한 어드레스에 대응되는 페이지를 다시 리드한다.
리드한 데이터가 정정 불가능한 에러 비트를 포함하지 않을때까지 리드 전압를 변경 시키고, 변경된 전압을 사용하여 제 1 페이지와 동일한 어드레스에 대응되는 페이지를 리드하는 동작을 반복한다. 제 2 리드 전압을 사용하여 제 2 데이터를 리드한경우, ECC 디코더는(20) 에러 비트를 정정하고, 컨트롤러(10)는 S12 단계에서 사용한 제 1 리드 전압과 제 2 리드 전압을 비교한다. 제 1 리드 전압과 제 2 리드 전압의 차이가 기준값 보다 작은 경우, 리드 동작은 종료된다.(S17) 제 1 리드 전압과 제 2 리드 전압 차이가 기준값 이상인 경우 컨트롤러(20)는 낸드 플래시 메모리 장치에 재프로그램 할 것을결정한다.(S18)
도 12는 본 발명의 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 12를 참조하면, 이동 전화기(cellular phone), 스마트 폰(smart phone), 또는 태블릿(tablet) PC와 같은 전자 장치(200)는 플래시 메모리 장치로 구현될 수 있는 비휘발성 메모리 장치(20)와, 비휘발성 메모리 장치(20)의 동작을 제어할 수 있는 메모리 컨트롤러(10)를 포함할 수 있다.
비휘발성 메모리 장치(20)는 도 7 및 도 8에서 도시된 비휘발성 메모리 장치(20)을 위미 할 수 있다. 또한, 메모리 컨트롤러(10)는 도 7 및 도 8에 도시된 메모리 컨트롤러(10)를 의미할 수 있다.
메모리 컨트롤러(10)는 전자 장치(200)의 전반적인 동작을 제어하는 프로세서(210)에 의하여 제어된다.
비휘발성 메모리 장치(20)에 저장된 데이터는 프로세서(210)의 제어에 따라 동작하는 메모리 컨트롤러(10)의 제어에 따라 디스플레이(230)를 통하여 디스플레이될 수 있다.
무선 송수신기(220)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(220)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(210)가 처리할 수 있는 신호로 변환할 수 있다. 따라서 프로세서(210)는 무선 송수신기(220)로부터 출력된 신호를 처리하고, 처리된 신호를 메모리 컨트롤러 (10)를 통하여 비휘발성 메모리 장치(20)에 저장하거나 또는 디스플레이(230)를 통하여 디스플레이할 수 있다.
무선 송수신기(220)는 프로세서(210)로부터 출력된 신호를 무선 신호로 변환하고, 변환된 무선 신호를 안테나(ANT)를 통하여 외부로 출력할 수 있다.
입력 장치(240)는 프로세서(210)의 동작을 제어하기 위한 제어 신호 또는 프로세서(210)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(210)는 비휘발성 메모리 장치(20)로부터 출력된 데이터, 무선 송수신기(220)로부터 출력된 무선 신호, 또는 입력 장치(240)로부터 출력된 데이터가 디스플레이(230)를 통하여 디스플레이될 수 있도록 디스플레이(230)를 제어할 수 있다.
도 13은 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블락도를 나타낸다.
도 13을 참조하면, PC(personal computer), 태블릿 컴퓨터(tablet computer), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(300)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(20)와, 비휘발성 메모리 장치(20)의 동작을 제어할 수 있는 메모리 컨트롤러(10)를 포함한다.
메모리 컨트롤러(10)는 도 8에 도시된 메모리 컨트롤러(10)와 동일한 기능, 즉 리드 동작 동안 제 1 데이터에 대한 에러 정정 가능여부를 판단하고, 비휘발성 메모리 장치(20)에 재프로그램을 결정할 수 있다.
전자 장치(300)는 전자 장치(300)의 전반적인 동작을 제어하기 위한 프로세서(340)를 포함할 수 있다. 메모리 컨트롤러(10)는 프로세서(210)에 의하여 제어된다.
프로세서(340)는 입력 장치(350)에 의하여 발생한 입력 신호에 따라 비휘발성 메모리 장치(20)에 저장된 데이터를 디스플레이(330)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(350)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
도 14는 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 14를 참조하면, 전자 장치(400)는 카드 인터페이스(410), 메모리 컨트롤러(10), 및 비휘발성 메모리 장치(20), 예컨대 플래시 메모리 장치를 포함한다.
전자 장치(400)는 카드 인터페이스(410)를 통하여 호스트(HOST)와 데이터 통신을 수행할 수 있다. 실시예에 따라, 카드 인터페이스(410)는 SD 카드 인터페이스 또는 MMC 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(410)는 전자 장치(400)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(10) 사이에서 데이터 통신을 수행할 수 있다.
메모리 컨트롤러(10)는 전도 8에서 도시한 메모리 컨트롤러(10)와 기능이 유사하다. 또한 메모리 컨트롤러(10)는 전자 장치(400)의 전반적인 동작을 제어하며, 카드 인터페이스(410)와 비휘발성 메모리 장치(20) 사이에서 데이터의 교환을 제어할 수 있다.
또한, 메모리 컨트롤러(10)에 포함된 버퍼 메모리(14)는 전자 장치(400)의 전반적인 동작을 제어하기 위한 각종 데이터를 저장할 수 있다. 메모리 컨트롤러(20)는 데이터 버스(DATA) 및 어드레스 버스(ADDRESS)를 통하여 카드 인터페이스(410)와 비휘발성 메모리(20)와 접속될 수 있다.
또한, 메모리 컨트롤러(10)는 카드 인터페이스(410) 또는 비휘발성 메모리 (60) 각각에 접속된 데이터 버스(DATA)를 통하여 리드 데이터 또는 라이트 데이터를 수신하거나 전송할 수 있다.
도 14의 전자 장치(400)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(410)와 메모리 컨트롤러(10)를 통하여 비휘발성 메모리(20)에 저장된 데이터를 주거나 받을 수 있다.
도 15은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 15을 참조하면, 전자 장치(500)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(20), 비휘발성 메모리 장치(20)의 동작을 제어하기 위한 메모리 컨트롤러(10), 및 전자 장치(500)의 전반적인 동작을 제어할 수 있는 CPU(510)를 포함한다.
전자 장치(500)는 CPU(510)의 동작 메모리(operation memory)로서 사용될 수 있는 메모리(550)를 포함한다. 메모리(550)는 ROM과 같은 비휘발성 메모리 또는 DRAM같은 휘발성 메모리로 구현될 수 있다.
전자 장치(500)에 접속된 호스트(HOST)는 메모리 컨트롤러(550)와 호스트 인터페이스(540)를 통하여 비휘발성 메모리 장치(20)와 데이터를 주거나 받을 수 있다. 이때 메모리 컨트롤러(550)는 메모리 인터페이스, 예컨대 플래시 메모리 인터페이스의 기능을 수행할 수 있다. 메모리 컨트롤러(10)는 도 8에서 도시한 메모리 컨트롤러와 유사한 기능을 할 수 있다. 실시예에 따라 전자 장치(500)는 ECC(error correction code) 블록(530)을 더 포함할 수 있다. CPU(510)의 제어에 따라 동작하는 ECC 블록(530)은 메모리 컨트롤러(10)를 통하여 비휘발성 메모리 장치(20)로부터 리드된 데이터에 포함된 에러를 검출하고 정정할 수 있다.
CPU(510)는 버스(501)를 통하여 메모리 컨트롤러(550), ECC 블록(530), 호스트 인터페이스(540), 및 메모리(550) 사이에서 데이터의 교환을 제어할 수 있다.
전자 장치(500)는 USB(Universal Serial Bus) 메모리 드라이브 또는 메모리 스틱(memory stick) 등으로 구현될 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1: 메모리 시스템 12: 마이크로프로세서
15: ECC 디코더 20: 비휘발성 메모리 장치

Claims (11)

  1. 제1 리드 전압을 이용하여, 비휘발성 메모리 장치로부터 제1 데이터를 리드하며, 상기 제1 데이터는 정정할 수 없는(uncorrectable) 에러 비트를 포함한 데이터이고,
    상기 제1 리드 전압과 상이한 제2 리드 전압을 이용하여, 상기 비휘발성 메모리 장치로부터 제2 데이터를 리드하고, 상기 제2 데이터는 에러 비트 정정이 가능한 데이터이며,
    상기 제1 리드 전압과 상기 제2 리드 전압의 비교 결과에 따라, 상기 비휘발성 메모리를 재프로그램하되,
    상기 재프로그램하는 것은 상기 제1 리드 전압과 제2 리드 전압의 차이가 기준값(reference value) 보다 큰경우 상기 재프로그램을 하는 메모리 컨트롤러 구동방법.
  2. 제 1항에 있어서,
    상기 제2 리드 전압은 상기 제1 리드 전압보다 작은 메모리 컨트롤러 구동방법.
  3. 삭제
  4. 제 1항에 있어서,
    상기 제1 데이터는 상기 비휘발성 메모리 장치의 제1 페이지 어드레스에 대응되는 제1 페이지를 포함하는 제1 블락에 저장되고,
    상기 제2 데이터는 상기 비휘발성 메모리 장치의 제2 페이지 어드레스에 대응되는 제2 페이지를 포함하는 제2 블락에 저장되며,
    상기 제1 페이지 어드레스와 상기 제2 페이지 어드레스는 동일한 메모리 컨트롤러 구동방법.
  5. 제 4항에 있어서,
    상기 재프로그램하는 것은 상기 제1 페이지를 재프로그램하는 메모리 컨트롤러 구동방법.
  6. 제 4항에 있어서,
    상기 재프로그램하는 것은 상기 제1 블락을 재프로그램하는 메모리 컨트롤러 구동방법.
  7. 제 4항에 있어서,
    상기 비휘발성 메모리 장치는 상기 제1 블락과 이레이즈 회수가 동일한 적어도 하나의 제3 블락을 더 포함하고,
    상기 재프로그램 하는 것은, 상기 제1 블락 및 상기 제3 블락을 재프로그램하는 메모리 컨트롤러 구동방법.
  8. 제 4항에 있어서,
    상기 비휘발성 메모리 장치는 상기 제1 블락과 프로그램 회수가 동일한 적어도 하나의 제4 블락을 더 포함하고,
    상기 재프로그램하는 것은, 상기 제1 블락 및 상기 제4 블락을 재프로그램하는 메모리 컨트롤러 구동방법.
  9. 제 4항에 있어서,
    상기 제1 블락과 적어도 하나의 제5 블락은 연속적인 데이터가 연속적으로 저장되고,
    상기 재프로그램하는 것은 상기 제1 블락 및 상기 제5 블락을 재프로그램하는 메모리 컨트롤러 구동방법.
  10. 마이크로 중앙처리장치(micro CPU);
    데이터를 저장하고 다수의 페이지 및 다수의 블락을 포함하는 셀 어레이; 및
    상기 마이크로 중앙처리장치(micro CPU)의 제어에 따라, 동일한 어드레스에 대응되는 제1 페이지로 인가되는 서로 상이한 제1 리드 전압 및 제2 리드 전압을 형성하는 전압발생회로를 포함하며;
    상기 마이크로 중앙처리장치(micro CPU)는 상기 제1 리드 전압과 상기 제2 리드 전압을 비교하여, 비교 결과에 따라, 상기 셀 어레이를 재프로그램 하되,
    상기 재프로그램하는 것은 상기 제1 리드 전압과 제2 리드 전압의 차이가 기준값(reference value) 보다 큰경우 상기 재프로그램을 하는 메모리 장치.
  11. 삭제
KR1020110035353A 2011-04-15 2011-04-15 메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템 KR101756111B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110035353A KR101756111B1 (ko) 2011-04-15 2011-04-15 메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템
US13/445,048 US8830743B2 (en) 2011-04-15 2012-04-12 Method of operating memory controller, memory controller, memory device and memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110035353A KR101756111B1 (ko) 2011-04-15 2011-04-15 메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20120117542A KR20120117542A (ko) 2012-10-24
KR101756111B1 true KR101756111B1 (ko) 2017-07-10

Family

ID=47007276

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110035353A KR101756111B1 (ko) 2011-04-15 2011-04-15 메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템

Country Status (2)

Country Link
US (1) US8830743B2 (ko)
KR (1) KR101756111B1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102048765B1 (ko) * 2013-01-15 2020-01-22 삼성전자주식회사 메모리 시스템의 동작 방법 및 메모리 시스템
KR102131802B1 (ko) * 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
US9697905B2 (en) 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
US9728263B2 (en) * 2013-05-31 2017-08-08 Sandisk Technologies Llc Method and device for iteratively updating read voltages
US10475523B2 (en) 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9218890B2 (en) * 2013-06-03 2015-12-22 Sandisk Technologies Inc. Adaptive operation of three dimensional memory
US9620202B2 (en) 2013-11-01 2017-04-11 Seagate Technology Llc Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
US9209835B2 (en) * 2013-11-27 2015-12-08 Seagate Technology Llc Read retry for non-volatile memories
US9378083B2 (en) * 2013-12-04 2016-06-28 Seagate Technology Llc Adaptive read error recovery for memory devices
US9397703B2 (en) 2013-12-04 2016-07-19 Seagate Technology Llc Adaptive read error recovery for memory devices
TWI515734B (zh) * 2014-03-13 2016-01-01 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
JP2015204126A (ja) 2014-04-16 2015-11-16 株式会社東芝 半導体記憶装置
US9472299B2 (en) * 2014-04-21 2016-10-18 Advanced Micro Devices, Inc. Methods and systems for mitigating memory drift
US20210255927A1 (en) * 2014-08-07 2021-08-19 Pure Storage, Inc. Granular Voltage Tuning
US9875803B2 (en) * 2015-09-10 2018-01-23 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
US9502129B1 (en) 2015-09-10 2016-11-22 Kabushiki Kaisha Toshiba Memory system and method of controlling nonvolatile memory
KR102381218B1 (ko) * 2015-09-25 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10152262B2 (en) 2016-05-03 2018-12-11 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions
KR20180025357A (ko) * 2016-08-29 2018-03-09 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10418097B2 (en) 2017-11-27 2019-09-17 Western Digital Technologies, Inc. Non-volatile storage system with read calibration
KR102567314B1 (ko) * 2018-04-27 2023-08-17 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
TWI668695B (zh) * 2018-07-24 2019-08-11 群聯電子股份有限公司 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置
US10811091B2 (en) 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
TWI801207B (zh) * 2022-04-18 2023-05-01 華邦電子股份有限公司 半導體記憶裝置以及讀取半導體記憶裝置的方法
US12067267B2 (en) 2022-12-16 2024-08-20 Macronix International Co., Ltd. Managing data reliability in semiconductor devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7477547B2 (en) 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US20100020616A1 (en) 1992-05-20 2010-01-28 Auclair Daniel L Soft Errors Handling in EEPROM Devices
US20100182830A1 (en) 2009-01-21 2010-07-22 Ryu Seung Han Nonvolatile memory device and method of operating the same
US20100202196A1 (en) 2009-02-06 2010-08-12 Sang Kyu Lee Method of reading nonvolatile memory device and nonvolatile memory device for implementing the method
WO2011024015A1 (en) * 2009-08-25 2011-03-03 Sandisk Il Ltd. Restoring data into a flash storage device
US20130128666A1 (en) 2011-11-21 2013-05-23 Chris Avila Scrub Techniques for Use with Dynamic Read

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4335659B2 (ja) 2003-12-19 2009-09-30 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP2010160816A (ja) 2010-03-29 2010-07-22 Toshiba Corp 半導体記憶装置の制御方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100020616A1 (en) 1992-05-20 2010-01-28 Auclair Daniel L Soft Errors Handling in EEPROM Devices
US7477547B2 (en) 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US20100182830A1 (en) 2009-01-21 2010-07-22 Ryu Seung Han Nonvolatile memory device and method of operating the same
US20100202196A1 (en) 2009-02-06 2010-08-12 Sang Kyu Lee Method of reading nonvolatile memory device and nonvolatile memory device for implementing the method
WO2011024015A1 (en) * 2009-08-25 2011-03-03 Sandisk Il Ltd. Restoring data into a flash storage device
US8254170B2 (en) 2009-08-25 2012-08-28 Sandisk Il Ltd. Preloading data into a flash storage device
US20130128666A1 (en) 2011-11-21 2013-05-23 Chris Avila Scrub Techniques for Use with Dynamic Read

Also Published As

Publication number Publication date
KR20120117542A (ko) 2012-10-24
US20120265927A1 (en) 2012-10-18
US8830743B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
KR101756111B1 (ko) 메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템
KR101824068B1 (ko) 메모리 컨트롤러 구동방법, 및 메모리 컨트롤러를 포함하는 메모리 시스템, 메모리 카드 및 휴대용 전자장치
US9672942B2 (en) Data decoding method of non-volatile memory device and apparatus for performing the method
US9412471B2 (en) Method of reading data from a nonvolatile memory device, nonvolatile memory device, and method of operating a memory system
KR101736337B1 (ko) 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법
US8499217B2 (en) Memory device and error control codes decoding method
US9177660B2 (en) Method of operating memory device
US9891991B2 (en) Decoding method, memory storage device and memory control circuit unit
KR101811298B1 (ko) 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러
CN106257594B (zh) 读取干扰收回策略
US9147483B2 (en) Apparatus and method of operating memory device
KR20150044753A (ko) 데이터 저장 장치의 동작 방법
KR20210128704A (ko) 컨트롤러 및 컨트롤러의 동작 방법
US10522234B2 (en) Bit tagging method, memory control circuit unit and memory storage device
US20140136925A1 (en) Method of operating a data storage device
KR20130089472A (ko) 비휘발성 메모리 장치 및 이를 포함하는 메모리 카드
CN112241333B (zh) 用于存储器系统的编码器及其方法
US9430325B2 (en) Method for programming data, memory storage device and memory control circuit unit
CN105304142A (zh) 解码方法、存储器存储装置及存储器控制电路单元
KR20130127234A (ko) 메모리의 구동 방법
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
CN107608817B (zh) 解码方法、存储器存储装置及存储器控制电路单元
KR20230000724A (ko) 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법
CN107301873B (zh) 译码方法、存储器储存装置及存储器控制电路单元
US10978163B2 (en) Voltage identifying method, memory controlling circuit unit and memory storage device

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