KR101925384B1 - 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법 - Google Patents

불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법 Download PDF

Info

Publication number
KR101925384B1
KR101925384B1 KR1020110046380A KR20110046380A KR101925384B1 KR 101925384 B1 KR101925384 B1 KR 101925384B1 KR 1020110046380 A KR1020110046380 A KR 1020110046380A KR 20110046380 A KR20110046380 A KR 20110046380A KR 101925384 B1 KR101925384 B1 KR 101925384B1
Authority
KR
South Korea
Prior art keywords
memory
memory cells
data
read
read voltage
Prior art date
Application number
KR1020110046380A
Other languages
English (en)
Other versions
KR20120128433A (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 KR1020110046380A priority Critical patent/KR101925384B1/ko
Priority to US13/473,317 priority patent/US8908460B2/en
Publication of KR20120128433A publication Critical patent/KR20120128433A/ko
Application granted granted Critical
Publication of KR101925384B1 publication Critical patent/KR101925384B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/5678Digital 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 amorphous/crystalline phase transition storage elements
    • 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/5685Digital 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 storage elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods

Abstract

본 발명은 불휘발성 메모리를 포함하는 메모리 시스템 및 그것의 제어 방법에 관한 것이다. 본 발명의 실시 예에 따른 제어 방법은, 제 1 엑세스 요청에 응답하여 선택된 메모리 셀들에 제 1 데이터를 프로그램하는 단계, 제 2 엑세스 요청에 응답하여 제 1 데이터가 프로그램된 시점으로부터 제 2 엑세스 요청이 발생한 시점까지의 경과 시간을 판별하는 단계, 및 불휘발성 메모리의 읽기 전압을 조절하는 단계를 포함한다.

Description

불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법{MEMORY SYSTEM INCLUDING A NONVOLATILE MEMORY AND METHOD OF CONTROLLING THE NONVOLATILE MEMORY}
본 발명은 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법에 관한 것이다.
반도체 메모리(semiconductor memory)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리는 크게 휘발성 메모리(Volatile memory)와 불휘발성 메모리(Nonvolatile memory)로 구분된다.
휘발성 메모리는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다. 플래시 메모리는 크게 노어 타입과 낸드 타입으로 구분된다.
본 발명의 목적은 프로그램 동작 전에 수행되는 읽기 동작의 신뢰성을 향상시키는 것이다.
본 발명의 실시 예에 따른 불휘발성 메모리의 제어 방법은 제 1 엑세스 요청에 응답하여 선택된 메모리 셀들에 제 1 데이터를 프로그램하는 단계; 상기 선택된 메모리 셀들을 엑세스하기 위한 제 2 엑세스 요청에 응답하여, 상기 제 1 데이터가 프로그램된 시점으로부터 상기 제 2 엑세스 요청이 발생한 시점까지의 경과 시간을 판별하는 단계; 상기 경과 시간에 따라, 상기 불휘발성 메모리의 읽기 전압을 조절할지 여부를 결정하고, 상기 불휘발성 메모리의 읽기 전압을 조절하는 단계; 및 상기 조절된 읽기 전압에 따라 상기 선택된 메모리 셀들에 대한 읽기를 수행하는 단계를 포함한다.
실시 예로서, 상기 읽기 전압을 조절하는 단계는 상기 경과 시간이 임계 값보다 클 때 상기 읽기 전압을 조절하는 단계를 포함할 것이다.
실시 예로서, 상기 제 2 엑세스 요청은 상기 선택된 메모리 셀들을 프로그램하기 위한 요청이고, 상기 읽어진 데이터를 참조하여 상기 선택된 메모리 셀들에 상기 제 2 데이터를 프로그램하는 단계를 더 포함할 수 있다.
실시 예로서, 상기 프로그램하는 단계는 상기 선택된 메모리 셀들을 프로그램하고, 상기 선택된 메모리 셀들에 대응하는 엑세스 마크를 업데이트하는 단계를 포함할 수 있다.
실시 예로서, 상기 엑세스 마크가 업데이트된 시점으로부터 미리 정해진 시간이 경과되기 전에 상기 제 2 엑세스 요청이 발생하는지에 따라 상기 엑세스 마크를 초기화하는 단계를 더 포함할 수 있다.
실시 예로서, 상기 경과 시간을 판별하는 단계는 상기 제 2 엑세스 요청이 수신될 때 상기 엑세스 마크를 참조함으로써 상기 경과 시간을 판별하는 단계를 포함할 수 있다.
실시 예로서, 상기 읽기 전압을 조절하는 단계는 상기 엑세스 마크의 초기화 여부에 따라 상기 읽기 전압을 조절하는 단계를 포함할 수 있다.
실시 예로서, 상기 읽기 전압을 조절하는 단계는 상기 읽기 전압의 레벨을 결정하는 단계; 및 상기 결정된 읽기 전압 레벨이 사용되도록 상기 불휘발성 메모리를 재설정하는 단계를 포함할 수 있다.
본 발명의 다른 일면은 불휘발성 메모리 및 그것을 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템에 관한 것이다. 메모리 시스템은 복수의 메모리 셀들을 포함하는 불휘발성 메모리; 및 제 1 엑세스 요청에 응답하여 상기 불휘발성 메모리의 선택된 메모리 셀들에 제 1 데이터를 프로그램하는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 선택된 메모리 셀들을 엑세스하기 위한 제 2 엑세스 요청에 응답하여, 상기 제 1 데이터가 프로그램된 시점으로부터 상기 제 2 엑세스 요청이 발생한 시점까지의 경과 시간을 판별하고, 상기 판별 결과에 따라 선택적으로 상기 불휘발성 메모리의 읽기 전압을 조절한다.
실시 예로서, 상기 제 2 엑세스 요청이 상기 선택된 메모리 셀들에 제 2 데이터를 프로그램하기 위한 요청일 때, 상기 불휘발성 메모리는 상기 메모리 컨트롤러의 제어에 응답하여, 상기 조절된 읽기 전압에 따라 상기 선택된 메모리 셀들을 읽고, 상기 읽어진 데이터를 참조하여 상기 선택된 메모리 셀들에 상기 제 2 데이터를 프로그램할 것이다.
실시 예로서, 상기 제 2 엑세스 요청이 상기 선택된 메모리 셀들의 데이터를 읽기 위한 요청일 때, 상기 불휘발성 메모리는 상기 메모리 컨트롤러의 제어에 응답하여 상기 조절된 읽기 전압에 따라 상기 선택된 메모리 셀들의 데이터를 읽을 것이다.
실시 예로서, 상기 메모리 컨트롤러는 버스; 엑세스 마크를 저장하는 램; 및 상기 버스를 통해 상기 램에 연결되고, 상기 제 1 데이터의 프로그램 시에 상기 엑세스 마크를 업데이트하는 프로세싱 유닛을 포함할 수 있다. 상기 프로세싱 유닛은 상기 엑세스 마크가 업데이트된 시점으로부터 미리 정해진 시간이 경과되기 전에 상기 제 2 엑세스 요청이 발생하는지에 따라 상기 엑세스 마크를 초기화할 것이다.
실시 예로서, 상기 프로세싱 유닛은 상기 제 2 엑세스 요청이 발생할 때 상기 엑세스 마크를 참조함으로써 상기 경과 시간을 판별할 것이다.
실시 예로서, 상기 불휘발성 메모리는 상기 복수의 메모리 셀들을 가지는 복수의 메모리 블록들을 포함하고, 상기 메모리 컨트롤러는 상기 복수의 메모리 블록들 각각에 대응하는 소거 카운트 값들을 저장하는 램; 및 상기 각 메모리 블록에 대한 소거 동작이 수행될 때마다, 소거 동작이 수행된 메모리 블록에 대응하는 소거 카운트 값이 변경하는 프로세싱 유닛을 포함할 수 있다.
실시 예로서, 상기 프로세싱 유닛은 상기 경과 시간이 미리 정해진 시간보다 클 때, 최적의 읽기 전압 레벨을 결정하고 상기 결정된 읽기 전압 레벨을 발생하도록 상기 불휘발성 메모리를 재설정함으로써, 상기 읽기 전압 레벨을 조절할 수 있다. 그리고, 상기 프로세싱 유닛은 상기 경과 시간이 미리 정해진 시간보다 작을 때, 상기 선택된 메모리 셀들을 포함하는 메모리 블록에 대응하는 소거 카운트 값에 따라 상기 읽기 전압 레벨을 조절할 수 있다.
본 발명의 실시 예에 따르면, 메모리 컨트롤러는 프로그램 동작 이전의 가장 최근에 프로그램이 수행된 때로부터 경과된 시간에 따라, 불휘발성 메모리의 읽기 전압 레벨을 조절할지 결정한다. 그리고, 메모리 컨트롤러는 불휘발성 메모리의 읽기 전압 레벨을 최적의 읽기 전압 레벨로 조절한다. 따라서, 향상된 신뢰성을 가지는 메모리 시스템이 제공된다.
도 1은 불휘발성 메모리의 프로그램 방법을 보여주는 순서도이다.
도 2는 도 1의 프로그램 방법에 따라 프로그램되는 메모리 셀들의 문턱 전압 분포를 보여주는 다이어그램이다.
도 3은 본 발명의 제 1 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 4는 도 2의 최하위 비트들이 저장된 메모리 셀들의 변경된 문턱 전압 분포를 보여주는 다이어그램이다.
도 5는 도 2의 중간 비트들이 저장된 메모리 셀들의 변경된 문턱 전압 분포를 보여주는 다이어그램이다.
도 6은 본 발명의 실시 예에 따른 프로그램 방법을 보여주는 순서도이다.
도 7은 읽기 전압의 레벨을 결정하는 제 1 실시 예를 보여주는 순서도이다.
도 8은 엑세스 마크 테이블의 실시 예를 개념적으로 보여주는 테이블이다.
도 9는 각 메모리 블록의 메모리 셀들이 프로그램되는 순서를 예시적으로 보여주는 도면이다.
도 10은 읽기 전압의 레벨을 결정하는 제 2 실시 예를 보여주는 순서도이다.
도 11은 읽기 전압의 레벨을 결정하는 제 3 실시 예를 보여주는 순서도이다.
도 12는 본 발명의 제 2 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 13은 도 3의 메모리 시스템의 응용 예를 보여주는 블록도이다.
도 14는 도 13을 참조하여 설명된 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 불휘발성 메모리(도 3의 200)의 프로그램 방법을 보여주는 순서도이다. 이하, 불휘발성 메모리 내의 각 메모리 셀은 멀티(Multi) 비트들을 저장한다고 가정한다. 즉, 불휘발성 메모리 내의 각 메모리 셀은 멀티 레벨 셀(Multi Level Cell, MLC)이라고 가정한다.
도 1을 참조하면, 먼저, 불휘발성 메모리는 수행될 프로그램이 최하위 페이지 프로그램인지 여부를 판별한다(S110). 이때, 최하위 페이지는 선택된 메모리 셀들의 최하위 비트(Least Significant bit, LSB)들로 구성된다. 최하위 페이지 프로그램인 경우에, 불휘발성 메모리는 선택된 메모리 셀에 대한 프로그램 동작을 수행할 것이다(S120). 반면, 최하위 페이지 프로그램이 아닌 경우에, 불휘발성 메모리는 선택된 메모리 셀들의 데이터를 읽고(S130), 읽어진 데이터에 기반하여 프로그램 동작을 수행할 것이다.
도 2는 도 1의 프로그램 방법에 따라 프로그램되는 메모리 셀들의 문턱 전압 분포를 보여주는 다이어그램이다. 도 2를 참조하면, 가로 축은 문턱 전압(Vth)을 나타내고, 세로 축은 메모리 셀들의 수를 나타낸다. 문턱 전압(Vth)에 따라 메모리 셀의 논리 값이 결정되는 경우에, 가로 축은 메모리 셀들의 논리 상태들을 나타내는 것으로 이해될 것이다. 도 2를 참조한 설명에서, 메모리 셀들은 각각 3 비트들을 저장하는 것으로 가정한다.
예시적으로, 불휘발성 메모리는 플래시 메모리인 것으로 가정한다. 즉, 불휘발성 메모리의 읽기 및 프로그램 동작의 단위는 페이지인 것으로 가정한다. 그러나, 본 발명의 실시 예에 따른 불휘발성 메모리는 플래시 메모리로 한정되지 않을 것이다. 예를 들면, 본 발명의 실시 예에 따른 불휘발성 메모리는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등과 같은 메모리들을 포함할 수 있음이 이해될 것이다.
하나의 메모리 셀에 3 비트들이 저장되면, 하나의 워드 라인을 공유하는 메모리 셀들은 3 개의 페이지 크기의 데이터를 저장할 것이다. 예를 들면, 하나의 워드 라인을 공유하는 메모리 셀들에 저장되는 최하위 비트들(Least Significant Bit, LSB)은 최하위 페이지를 형성할 것이다. 하나의 워드 라인을 공유하는 메모리 셀들에 저장되는 최상위 비트들(Most Significant Bit, MSB)은 최상위 페이지를 형성할 것이다. 그리고, 하나의 워드 라인을 공유하는 메모리 셀들에 저장되는 중간 비트들(Central Significant Bit, CSB)은 중간 페이지를 형성할 것이다.
하나의 워드 라인을 공유하는 메모리 셀들은 최하위 페이지로부터 최상위 페이지의 순서로 순차적으로 프로그램된다. 도 2를 참조하면, 메모리 셀들은 논리 값 "1"을 나타내는 소거 상태(10)로부터 프로그램된다. 최하위 페이지 프로그램 시에, 메모리 셀들은 소거 상태(10) 및 논리 값 "0"을 나타내는 논리 상태(21)로 프로그램된다.
중간 페이지 프로그램 시에, 불휘발성 메모리는 제 1 읽기 전압(R11)을 이용하여 메모리 셀들에 저장된 최하위 비트들을 읽는다. 따라서, 각 메모리 셀의 논리 상태가 판별될 것이다. 그리고, 판별된 논리 상태를 참조하여, 불휘발성 메모리는 각 메모리 셀에 저장될 중간 비트에 따라 각 메모리 셀의 논리 상태를 변경할 것이다. 소거 상태(10)의 메모리 셀은 논리 값 "11" 및 "01"을 각각 나타내는 논리 상태들(10, 31)로 프로그램된다. 그리고, 논리 상태(21)의 메모리 셀은 논리 값 "01" 및 "00"을 각각 나타내는 논리 상태들(32, 33)로 프로그램된다.
최상위 페이지 프로그램 시에, 불휘발성 메모리는 제 2 내지 제 4 읽기 전압들(R21, R31, R41)을 이용하여 메모리 셀들에 저장된 최하위 비트들 및 중간 비트들을 읽는다. 따라서, 각 메모리 셀의 논리 상태가 판별될 것이다. 그리고, 판별된 논리 상태를 참조하여, 불휘발성 메모리는 각 메모리 셀에 저장될 최상위 비트에 따라 각 메모리 셀의 논리 상태를 변경할 것이다. 소거 상태(10)의 메모리 셀은 논리 값 "111" 및 "011"을 각각 나타내는 논리 상태들(10, 41)로 프로그램된다. 논리 상태(31)의 메모리 셀은 논리 값 "101" 및 "001"을 각각 나타내는 논리 상태들(42, 43)로 프로그램된다. 논리 상태(32)의 메모리 셀은 논리 값 "110" 및 "010"을 각각 나타내는 논리 상태들(44, 45)로 프로그램된다. 논리 상태(33)의 메모리 셀은 논리 값 "100" 및 "000"을 각각 나타내는 논리 상태들(46, 47)로 프로그램된다.
즉, 최하위 페이지 프로그램이 아닌 경우에, 불휘발성 메모리는 선택된 메모리 셀들의 데이터를 읽고, 읽어진 데이터에 기반하여 프로그램 동작을 수행한다.
각 논리 상태의 문턱 전압 분포는 다양한 원인들로 인해서 원하는 윈도우보다 더 넓은 문턱 전압 분포로 변경될 수 있다(도 4 및 도 5 참조). 각 논리 상태의 문턱 전압의 레벨은 인접한 메모리 셀들 간의 커플링으로 인해 증가할 수 있다. 이 커플링은 "전계 커플링(electric field coupling)" 또는 "F-poly 커플링"이라고 불린다. 또한, 각 논리 상태의 문턱 전압의 레벨은 시간이 지남에 따라 낮아질 수 있다. 이는 메모리 셀에 축적된 전하들이 기판으로 빠져나감으로써 발생된다.
만약, 메모리 셀들에 최하위 페이지가 프로그램된 상태에서, 논리 상태(21)의 메모리 셀들 중 일부의 문턱 전압 레벨이 제 1 읽기 전압(R11)보다 낮도록 변경된다고 가정한다. 중간 페이지 프로그램이 수행될 때, 이러한 변경된 문턱 전압 레벨을 가지는 메모리 셀들은 소거 상태(10)로 판별될 것이다. 그리고, 이러한 변경된 문턱 전압 레벨을 가지는 메모리 셀들은 논리 상태(10) 및 논리 상태(31)로 프로그램될 것이다. 결과적으로, 중간 페이지 프로그램 시에, 선택된 메모리 셀들 중 일부의 최하위 비트들은 손실 또는 변경될 수 있다.
메모리 셀들에 최하위 페이지 및 중간 페이지가 프로그램된 상태에서, 논리 상태들(31, 32, 33)의 문턱 전압 레벨들이 감소한다고 가정한다. 마찬가지로, 최상위 페이지 프로그램 시에, 선택된 메모리 셀들 중 일부의 최하위 비트들 및 중간 비트들은 손실 또는 변경될 수 있다.
도 3은 본 발명의 제 1 실시 예에 따른 메모리 시스템(1000)을 보여주는 블록도이다. 도 3을 참조하면, 본 발명의 실시 예에 따른 메모리 시스템(1000)은 메모리 컨트롤러(Memory Controller, 100) 및 불휘발성 메모리(Nonvolatile Memory, 200)를 포함한다.
메모리 컨트롤러(100)는 불휘발성 메모리(200)의 제반 동작을 제어한다. 메모리 컨트롤러(100)는 엑세스 요청을 수신한다. 프로그램 시에, 엑세스 요청은 논리 어드레스(Logical Address, LA) 및 데이터(DATA)를 포함할 것이다. 읽기 시에, 호스트로부터의 엑세스 요청은 논리 어드레스(LA)를 포함할 것이다. 이하, 설명의 편의를 위해 메모리 컨트롤러(100)에 수신되는 엑세스 요청은 호스트로부터 전송된다고 가정한다.
호스트로부터의 엑세스 요청에 응답하여, 불휘발성 메모리(200)를 엑세스하도록 구성된다. 예시적으로, 메모리 컨트롤러(100)는 불휘발성 메모리(200)의 읽기, 프로그램, 소거, 그리고 배경(background) 동작을 제어하도록 구성된다. 예를 들면, 메모리 컨트롤러(100)는 불휘발성 메모리(200)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성될 것이다.
프로그램 시에, 메모리 컨트롤러(100)는 호스트로부터 논리 어드레스(LA) 및 데이터(DATA)를 수신한다. 메모리 컨트롤러(100)는 논리 어드레스(LA)를 물리 블록 어드레스(Physical Block Address, PBA)로 변환할 것이다. 그리고, 메모리 컨트롤러(100)는 물리 블록 어드레스(PBA), 데이터(DATA) 및 프로그램이 수행되도록 제어하기 위한 제어 신호(CTRL)를 불휘발성 메모리(200)에 제공할 것이다.
읽기 시에, 메모리 컨트롤러(100)는 외부로부터 논리 어드레스(LA)를 수신한다. 메모리 컨트롤러(100)는 논리 어드레스(LA)를 물리 블록 어드레스(PBA)로 변환하고, 물리 블록 어드레스(PBA) 및 읽기가 수행되도록 제어하기 위한 제어 신호(CTRL)를 불휘발성 메모리(200)에 제공할 것이다.
메모리 컨트롤러(100)는 램(RAM, 110), 프로세싱 유닛(Processing Unit, 120), 에러 정정 유닛(Error Correcting Unit, 130), 호스트 인터페이스(Host I/F, 140), 메모리 인터페이스(Memory I/F, 150) 및 버스(160)를 포함한다.
램(110)은 버스(160)에 연결된다. 램(110)은 프로세싱 유닛(120)의 제어에 응답하여 동작한다. 램(110)은 어드레스 매핑 테이블을 저장한다. 어드레스 매핑 테이블은 논리 어드레스(LA), 물리 블록 어드레스(PBA), 그리고 논리 어드레스(LA) 및 물리 블록 어드레스(PBA)의 매핑 관계를 저장한다.
램(110)은 엑세스 마크 테이블을 더 저장한다. 엑세스 마크 테이블은 복수의 엑세스 마크들을 포함한다. 예시적으로, 각 엑세스 마크는 메모리 어레이(210)의 메모리 블록들 중 하나에 대응할 수 있다. 예시적으로, 각 엑세스 마크는 메모리 어레이(210)의 페이지들 중 하나에 대응할 수 있다.
엑세스 마크는 가장 최근에 프로그램이 수행된 때의 시간 정보에 대응한다. 예시적으로, 램(110)은 각 엑세스 마크에 대응하는 타임 스탬프(Time Stamp)를 더 저장할 것이다. 타임 스탬프는 엑세스 마크가 업데이트된 시점에 대한 정보이다.
엑세스 마크의 값은 엑세스 마크가 업데이트 된 때로부터 경과된 시간(elapsed time)에 따라 가변한다. 엑세스 마크가 업데이트된 때는 엑세스 마크의 값이 변경 또는 유지된 때를 의미할 것이다.
예를 들면, 메모리 시스템(100)에 전원이 공급되기 시작할 때, 엑세스 마크 테이블의 엑세스 마크들의 값들은 "0"으로 초기화된다. 제 1 프로그램이 수행될 때, 제 1 프로그램된 메모리 블록에 대응하는 엑세스 마크의 값은 "1"로 변경된다. 그 후에, 제 2 프로그램이 수행되기 전까지 소정의 시간의 경과 여부에 따라 엑세스 마크의 값은 변경된다. 소정의 시간의 경과 여부는 타임 스탬프를 참조하여 판별될 수 있다. 소정의 시간이 경과한 후에도 그 메모리 블록이 엑세스되지 않으면, 그 메모리 블록에 대응하는 엑세스 마크의 값은 "0"으로 변경될 것이다. 반면, 소정의 시간이 경과하기 전에 그 메모리 블록에 제 2 프로그램이 수행되면, 그 메모리 블록에 대응하는 엑세스 마크의 값은 "1"로 유지되고, 유지된 엑세스 마크에 대응하는 타임 스탬프는 업데이트될 것이다.
예시적으로, 메모리 시스템(100)에 전원이 공급되기 시작할 때뿐만 아니라, 엑세스 마크들의 값들은 주기적으로 "0"으로 초기화될 수 있다. 예시적으로, 메모리 셀 어레이(210)의 특정한 메모리 셀이 관찰 메모리 셀로 지정될 수 있다. 예를 들면, 관찰 메모리 셀이 프로그램된 후에, 미리 정해진 메모리 셀의 문턱 전압 레벨이 감소함으로써 소정의 전압 레벨에 도달할 때, 엑세스 마크들의 값들은 "0"으로 초기화될 수 있다.
예시적으로, 램(110)은 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등으로 구성될 수 있다. 예시적으로, 램(110)은 프로세싱 유닛(120)의 동작 메모리로 이용될 수 있다. 또한, 램(110)은 불휘발성 메모리(200) 및 호스트 사이의 버퍼 메모리 중 적어도 하나로서 이용될 수 있다. 예를 들면, 읽기 시에, 불휘발성 메모리(200)로부터의 데이터(DATA)는 램(110)에 임시 저장되고, 호스트로 전송될 수 있다. 프로그램 시에, 호스트로부터의 데이터(DATA)는 램(110)에 임시 저장되고, 불휘발성 메모리(200)에 제공될 수 있다.
프로세싱 유닛(120)은 버스(160)를 통해 램(110), 에러 정정 유닛(130), 호스트 인터페이스(140) 및 메모리 인터페이스(150)에 연결된다. 프로세싱 유닛(120)은 메모리 컨트롤러(100)의 제반 동작을 제어한다.
프로세싱 유닛(120)은 램(110)의 어드레스 매핑 테이블을 관리한다. 예시적으로, 프로세싱 유닛(120)은 플래시 변환 레이어(Flash Translation Layer, FTL)의 기능을 수행할 것이다. 프로세싱 유닛(220)은 논리 어드레스(LA)를 물리 블록 어드레스(PBA)로 변환한다. 그리고, 프로세싱 유닛(120)은 논리 어드레스(LA) 및 물리 블록 어드레스(PBA)의 매핑 관계에 대한 정보를 램(110)에 저장한다.
프로세싱 유닛(120)은 램(110)의 엑세스 마크를 참조함으로써 불휘발성 메모리(200)의 읽기 전압(R)의 레벨을 조절할지 결정하고, 읽기 전압(R)의 레벨을 조절한다. 제 1 시간에 물리 블록 어드레스(PBA)에 대응하는 메모리 셀들에 제 1 프로그램이 수행되고, 제 2 시간에 같은 메모리 셀들에 제 2 프로그램이 수행된다고 가정한다. 제 2 프로그램은 중간 페이지 프로그램 또는 최상위 페이지 프로그램에 해당된다. 제 2 프로그램 동작은 읽기 동작을 포함할 것이다(도 1 참조).
프로세싱 유닛(120)은 제 1 시간 및 제 2 시간의 차이에 따라 불휘발성 메모리(200)의 읽기 전압(R)의 레벨을 조절할지 결정한다. 프로세싱 유닛(120)은 램(110)에 저장된 엑세스 마크 테이블을 참조함으로써, 제 1 시간 및 제 2 시간의 차이를 판별할 수 있다. 즉, 프로그램을 위한 논리 어드레스(LA)가 수신될 때, 프로세싱 유닛(120)은 해당 엑세스 마크의 값을 참조할 것이다. 그리고, 해당 엑세스 마크의 값이 "0"인 경우에 읽기 전압(R)의 레벨을 조절할 것이다. 예시적으로, 프로세싱 유닛(120)은 전압 레벨에 대한 정보를 불휘발성 메모리(200)에 전송함으로써 읽기 전압(R)의 레벨을 조절할 것이다. 전압 레벨 정보를 수신함에 따라, 읽기 동작 시에 발생되는 읽기 전압(R)의 레벨은 재설정될 것이다. 그 후에, 프로세싱 유닛(120)은 제 2 프로그램을 위한 제어 신호(CTRL), 물리 블록 어드레스(PBA) 및 데이터(DATA)를 전송할 것이다. 해당 엑세스 마크의 값이 "1"인 경우에 프로세싱 유닛(120)은 읽기 전압(R)의 레벨을 조절하지 않을 것이다.
프로세싱 유닛(120)은 읽기 동작 시에도 엑세스 마크의 값에 따라 읽기 전압(R)의 레벨을 조절할지 결정할 수 있다. 제 1 시간에 물리 블록 어드레스(PBA)에 대응하는 메모리 셀들에 제 1 프로그램이 수행되고, 제 2 시간에 같은 메모리 셀들의 데이터를 읽는다고 가정한다. 프로세싱 유닛(120)은 엑세스 마크의 값을 참조하여 제 1 시간 및 제 2 시간의 차이를 판별하고, 불휘발성 메모리(200)의 읽기 전압(R)의 레벨을 조절할지 결정할 것이다.
읽기 전압(R)의 레벨이 어떻게 결정되는지에 대한 제한은 없다. 예시적으로, 읽기 전압(R)의 레벨이 조절되기 전에 읽기 전압(R)의 레벨은 디폴트 값으로 설정될 수 있다. 그리고, 조절된 읽기 전압(R)의 레벨은 디폴트 값보다 소정의 값만큼 낮은 레벨을 가질 수 있다.
예시적으로, 서로 다른 레벨들의 복수의 읽기 전압들을 이용하여 선택된 메모리 셀들이 가지는 문턱 전압 분포를 감지하고, 최적(optimum)의 읽기 전압(R)의 레벨을 결정할 수 있다. 예를 들면, 메모리 컨트롤러(100)는 읽기 전압(R)의 레벨을 조절하는 동작 및 조절된 상태에서 선택된 메모리 셀들을 읽는 동작을 반복함으로써 선택된 메모리 셀들이 가지는 문턱 전압 분포를 감지할 것이다.
예시적으로, 읽기 전압(R)의 레벨이 조절되기 전에 설정된 디폴트 값의 읽기 전압(R)을 이용하여 선택된 메모리 셀들의 데이터를 읽고, 읽혀진 데이터에 포함된 에러 비트들이 개수에 기반하여 읽기 전압(R)의 레벨이 결정될 수 있다. 예시적으로, 메모리 컨트롤러(100)는 에러 비트들의 개수가 클수록 디폴트 값보다 더 작은 레벨을 가지는 읽기 전압(R)을 선택할 것이다. 예시적으로, 메모리 컨트롤러(100)는 에러 비트들의 개수가 미리 정해진 개수보다 작을 때까지, 읽기 전압(R)의 레벨을 조절하는 동작 및 조절된 상태에서 읽혀진 데이터에 포함된 에러 비트들의 개수를 검출하는 동작을 반복할 수 있다.
전원 오프(power off) 시에, 프로세싱 유닛(120)은 램(110)에 저장된 어드레스 매핑 테이블 및 엑세스 마크 테이블은 불휘발성 메모리(100)에 저장할 것이다. 어드레스 매핑 테이블 및 엑세스 마크 테이블은 메모리 셀 어레이(210) 내의 미리 정해진 메모리 블록 내에 저장될 것이다. 전원 온(power on) 시에, 프로세싱 유닛(120)은 불휘발성 메모리(200)로부터의 어드레스 매핑 테이블 및 엑세스 마크 테이블을 램(110)에 저장할 것이다. 또한, 프로세싱 유닛(120)은 메모리 시스템(1000)이 활성화 상태일 때 업데이트되는 어드레스 매핑 테이블 및 어드레스 마크 테이블을 주기적으로 불휘발성 메모리(200)에 저장할 것이다.
에러 정정 유닛(130)은 에러 정정 코드(Error Correcting Code, ECC)를 이용하여 불휘발성 메모리(200)로부터 읽어진 데이터에 포함된 에러 비트들을 검출하고, 정정하도록 구성된다. 정정된 데이터는 호스트로 전송될 것이다. 예시적으로, 에러 정정 유닛(130)은 에러 비트들의 개수 정보를 프로세싱 유닛(120)에 제공할 수 있다. 이때, 프로세싱 유닛(120)은 에러 비트들의 개수 정보에 기반하여 읽기 전압(R)의 레벨을 조절할 것이다.
호스트 인터페이스(140)는 호스트 및 메모리 컨트롤러(100) 사이의 데이터 교환 프로토콜을 구비한다. 호스트 인터페이스(140)는 호스트로부터 수신된 논리 어드레스(LA)를 버스(160)를 통해 프로세싱 유닛(120)에 전송할 것이다.
호스트 인터페이스(140)는 호스트 및 메모리 컨트롤러(100) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함한다. 예시적으로, 호스트 인터페이스(140)는 USB (Universal Serial Bus) 프로토콜, MMC (multimedia card) 프로토콜, PCI (peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA (Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI (enhanced small disk interface) 프로토콜, 그리고 IDE (Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(호스트)와 통신하도록 구성된다. 예시적으로, 호스트 인터페이스(124)는 위에 예시된 프로토콜들이 아닌 사유(proprietary) 인터페이스로 구성될 수 있다.
메모리 인터페이스(150)는 불휘발성 메모리(200)와 인터페이싱한다. 예를 들면, 메모리 인터페이스(150)는 낸드 인터페이스 또는 노어 인터페이스를 포함한다.
버스(160)는 램(110), 프로세싱 유닛(120), 에러 정정 유닛(130), 호스트 인터페이스(140) 및 메모리 인터페이스(150)를 연결하기 위한 적어도 하나의 채널을 제공한다.
불휘발성 메모리(200)는 프로그램 시에 메모리 컨트롤러(100)로부터 수신된 물리 블록 어드레스(PBA)에 따라, 데이터(DATA)를 저장하도록 구성된다. 불휘발성 메모리(200)는 읽기 시에 메모리 컨트롤러(100)로부터 수신된 물리 어드레스(PBA)에 따라 저장된 데이터(DATA)를 출력하도록 구성된다. 예시적으로, 불휘발성 메모리(200)는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등과 같은 메모리 중 적어도 하나를 포함할 것이다. 불휘발성 메모리(200)는 메모리 셀 어레이(Memory Cell Array, 210), 어드레스 디코더(ADDR Decoder, 220), 읽기 및 쓰기 회로(Read & Write Circuit, 230), 전압 발생기(Voltage Generator, 240) 그리고 제어 로직(Control Logic, 250)을 포함한다.
메모리 셀 어레이(210)는 워드 라인들(WL)을 통해 어드레스 디코더(220)에 연결되고, 비트 라인들(BL)을 통해 읽기 및 쓰기 회로(230)에 연결된다. 메모리 셀 어레이(210)는 복수의 메모리 블록들(미도시)을 포함한다. 각 메모리 블록은 복수의 메모리 셀들을 포함한다. 행 방향으로 배열되는 메모리 셀들은 워드 라인들(WL)에 연결될 것이다. 열 방향으로 배열되는 메모리 셀들은 비트 라인들(BL)에 연결될 것이다. 예시적으로, 불휘발성 메모리(200)의 읽기 및 프로그램은 페이지 단위로 수행된다. 그리고, 소거 동작은 메모리 블록 단위로 수행된다.
하나의 워드 라인을 공유하는 메모리 셀들은 하나 또는 둘 이상의 페이지를 포함할 것이다. 메모리 셀 어레이(210)의 각 메모리 셀이 x 비트를 저장하는 경우에(x는 정수), 워드 라인을 공유하는 메모리 셀들은 x 개의 페이지들을 포함할 것이다. 이하에서, 메모리 셀 어레이(210)의 각 메모리 셀은 3 비트들을 저장한다고 가정한다. 따라서, 워드 라인을 공유하는 메모리 셀들은 3개의 페이지들을 포함할 것이다. 그러나, 본 발명의 기술적 사상이 각 메모리 셀이 3 비트들을 저장하는 경우에만 한정되는 것은 아니다. 각 메모리 셀이 2 비트들을 저장하는 경우, 및 3 비트들보다 많은 비트들을 저장하는 경우에도 본 발명의 기술적 사상은 적용될 것이다.
어드레스 디코더(220)는 워드 라인들(WL)을 통해 메모리 셀 어레이(210)에 연결된다. 어드레스 디코더(220)는 전압 발생기(240)에 연결된다. 어드레스 디코더(220)는 제어 로직(250)의 제어에 응답하여 동작한다.
프로그램 시에, 어드레스 디코더(220)는 전압 발생기(240)로부터 프로그램 전압(Vpgm) 및 프로그램 패스 전압(Vpps)을 수신한다. 읽기 시에, 어드레스 디코더(220)는 전압 발생기(240)로부터 읽기 전압(R) 및 읽기 패스 전압(Rps)을 수신한다.
어드레스 디코더(220)는 메모리 컨트롤러(100)로부터의 물리 블록 어드레스(PBA)를 수신한다. 어드레스 디코더(220)는 물리 블록 어드레스(PBA)를 이용하여 하나의 페이지를 선택한다. 프로그램 시에, 어드레스 디코더(220)는 선택된 페이지에 프로그램 전압(Vpgm)을 인가한다. 그리고, 어드레스 디코더(220)는 비선택된 페이지에 프로그램 패스 전압(Vpgm)을 인가한다. 읽기 시에, 어드레스 디코더(220)는 선택된 페이지에 읽기 전압(R)을 인가한다. 그리고, 어드레스 디코더(220)는 비선택된 페이지에 읽기 패스 전압(Rps)을 인가한다.
어드레스 디코더(220)는 수신된 물리 블록 어드레스(PBA)를 이용하여 비트라인 선택 신호를 발생한다. 비트 라인 선택 신호는 읽기 및 쓰기 회로(230)에 전송된다.
읽기 및 쓰기 회로(230)는 비트 라인들(BL)을 통해 메모리 셀 어레이(210)에 연결된다. 읽기 및 쓰기 회로(230)는 제어 로직(250)의 제어에 응답하여 동작한다. 읽기 및 쓰기 회로(230)는 메모리 컨트롤러(100)와 데이터(DATA)를 교환하도록 구성된다. 비트 라인 선택 신호를 이용하여, 읽기 및 쓰기 회로(230)는 비트 라인들(BL)을 선택할 것이다.
최하위 페이지 프로그램 시에, 읽기 및 쓰기 회로(230)는 메모리 컨트롤러(100)로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 선택된 메모리 셀들에 저장할 것이다. 중간 페이지 프로그램 또는 최상위 페이지 프로그램 시에, 읽기 및 쓰기 회로(230)는 먼저 선택된 메모리 셀들에 저장된 데이터를 읽을 것이다. 그리고, 읽기 및 쓰기 회로(230)는 읽어진 데이터를 참조하여 프로그램될 데이터(DATA)에 따라 선택된 메모릿 셀들의 문턱 전압을 변경할 것이다.
읽기 시에, 읽기 및 쓰기 회로(230)는 메모리 셀 어레이(210)로부터 데이터(DATA)를 읽고, 읽어진 데이터(DATA)를 메모리 컨트롤러(100)로 출력할 것이다.
예시적으로, 읽기 및 쓰기 회로(230)는 감지 증폭기, 쓰기 드라이버, 페이지 버퍼, 열 선택 회로, 데이터 버퍼 등과 같은 구성 요소들을 포함할 것이다.
전압 발생기(240)는 어드레스 디코더(220) 및 제어 로직(250)에 연결된다. 전압 발생기(240)는 제어 로직(250)의 제어에 따라 동작한다. 예시적으로, 전압 발생기(240)는 전원 전압을 수신하고, 전원 전압을 승압함으로써 프로그램 전압(Vpgm), 프로그램 패스 전압(Vpps), 읽기 전압(R) 및 읽기 패스 전압(Rps)을 생성한다. 예시적으로, 전압 발생기(240)는 복수의 커패시터들(미도시)을 이용하여 전원 전압을 승압할 것이다.
프로그램 시에, 전압 발생기(240)는 제어 로직(250)의 제어에 따라 어드레스 디코더(220)에 프로그램 전압(Vpgm) 및 프로그램 패스 전압(Vpps)을 제공한다. 읽기 시에, 전압 발생기(240)는 제어 로직(250)의 제어에 따라 어드레스 디코더(220)에 읽기 전압(R) 및 읽기 패스 전압(Rps)을 제공한다.
전압 발생기(240)는 변경된 읽기 전압(R)을 발생하도록 재설정될 수 있다. 제어 로직(250)의 제어에 따라 전압 발생기(240)는 재설정될 것이다. 재설정된 후의 읽기 시에, 전압 발생기(240)는 읽기 패스 전압(Rps) 및 변경된 읽기 전압(R)을 발생할 것이다.
제어 로직(250)은 어드레스 디코더(220), 읽기 및 쓰기 회로(230) 및 전압 발생기(240)에 연결된다. 제어 로직(250)은 불휘발성 메모리(200)의 제반 동작을 제어하도록 구성된다. 제어 로직(250)은 메모리 컨트롤러(100)로부터 수신되는 제어 신호(CTRL)에 응답하여 동작한다.
제어 로직(250)은 메모리 컨트롤러(100)의 제어에 응답하여 읽기 전압(R)의 레벨이 변경되도록 전압 발생기(240)를 재설정한다. 예시적으로, 제어 로직(250)은 메모리 컨트롤러(100)로부터의 전압 레벨 정보를 수신할 수 있다. 수신된 전압 레벨 정보에 따라, 제어 로직(250)은 읽기 전압(R)의 레벨이 변경되도록 전압 발생기(240)를 재설정할 것이다.
도 4는 도 2의 최하위 비트들이 저장된 메모리 셀들의 변경된 문턱 전압 분포를 보여주는 다이어그램이다. 각 논리 상태의 문턱 전압 분포는 시간이 지남에 따라 원하는 윈도우보다 더 넓은 문턱 전압 분포로 변경될 수 있다. 도 4를 참조하면, 소거 상태(10)로 프로그램된 메모리 셀들의 문턱 전압 분포는 제 1 전압 분포(16)로 변경된다. 논리 상태(21)로 프로그램된 메모리 셀들의 문턱 전압 분포는 제 2 전압 분포(26)로 변경된다.
제 2 전압 분포(26)의 메모리 셀들 중 일부는 제 1 읽기 전압(R11)의 레벨보다 낮은 레벨의 문턱 전압을 갖는다. 제 1 읽기 전압(R11)을 이용하여 읽기를 수행하는 경우에, 제 2 전압 분포(26)의 메모리 셀들 중 일부는 논리 값 "1"로 읽혀질 것이다. 메모리 컨트롤러(100, 도 3 참조)는 변경된 제 1 읽기 전압(R12)을 이용하여 읽기가 수행되도록 불휘발성 메모리(200)를 제어할 수 있다.
도 5는 도 2의 중간 비트들이 저장된 메모리 셀들의 변경된 문턱 전압 분포를 보여주는 다이어그램이다. 도 5를 참조하면, 논리 상태들(31, 32, 33)은 각각 제 3 내지 제 5 전압 분포들(36, 37, 38)로 변경된다. 제 2 내지 제 4 읽기 전압들(R21, R31, R41)을 이용하여 읽기를 수행하는 경우에, 읽어진 데이터는 에러를 포함할 것이다. 메모리 컨트롤러(100, 도 3 참조)는 변경된 제 2 내지 제 4 읽기 전압들(R22, R32, R42)을 이용하여 읽기가 수행되도록 불휘발성 메모리(200)를 제어할 수 있다.
본 발명의 실시 예에 따르면, 메모리 컨트롤러(100)는 불휘발성 메모리(200)의 읽기 전압 레벨을 조절한다. 조절된 읽기 전압 레벨에 따라, 불휘발성 메모리(200)는 읽기 동작을 수행한다. 읽어진 데이터 비트들의 에러 비트들은 감소할 것이다. 따라서, 향상된 신뢰성을 가지는 메모리 시스템(1000)이 제공된다.
도 6은 본 발명의 실시 예에 따른 프로그램 방법을 보여주는 순서도이다. 도 3 및 도 6을 참조하면, S100단계에서, 제 1 시간에 선택된 메모리 셀들에 프로그램이 수행된다. S100단계의 프로그램은 S200단계의 제 2 프로그램과 마찬가지 방법으로 수행될 것이다. 제 1 시간은 프로그램이 수행되는 시점을 의미한다. 제 1 시간은 프로그램의 수행에 소요되는 시간 중 어떤 특정한 시점을 의미할 것이다. 예를 들면, 제 1 시간은 프로그램이 수행될 때 엑세스 마크를 1로 변경 또는 유지한 시점을 의미할 수 있다.
S200단계에서, 선택된 메모리 셀들에 프로그램이 수행된다. 예를 들면, S100단계에서 선택된 메모리 셀들에 최하위 페이지 프로그램이 수행되고, S200단계에서 동일한 메모리 셀들에 중간 페이지 프로그램이 수행될 것이다. 예를 들면, S100단계에서 선택된 메모리 셀들에 중간 페이지 프로그램이 수행되고, S200단계에서 동일한 메모리 셀들에 최상위 페이지 프로그램이 수행될 것이다.
S200단계는 S210단계 내지 S260단계를 포함한다. S210단계에서, 제 2 시간에 호스트로부터의 엑세스 요청이 수신된다. 프로그램 시에, 메모리 컨트롤러(100)는 호스트로부터 논리 어드레스(LA) 및 데이터(DATA)를 수신할 것이다. 도 6에서, 제 2 시간은 액세스 요청이 수신되는 시점인 것으로 도시된다. 그러나, 이는 예시적인 설명으로서 S210단계 내지 S230단계가 수행되는 시간 중 어느 특정한 시점을 의미할 수 있다. 예를 들면, 제 2 시간은 S240단계가 수행되는 시점일 수 있다.
S220단계에서, 메모리 컨트롤러(100)는 수행될 프로그램이 최하위 페이지 프로그램인지 판별한다. 최하위 페이지 프로그램이 수행되는 경우에, S260단계가 수행된다. 즉, 최하위 페이지 프로그램이 수행되는 경우에, 읽기 동작 없이 프로그램 동작이 수행된다. 최하위 페이지 프로그램이 아닌 경우에, S230단계가 수행된다.
S230단계에서, 메모리 컨트롤러(100)는 제 1 시간 및 제 2 시간의 차이를 판별하고, 판별된 차이에 따라 읽기 전압(R)의 레벨을 조절할지 결정한다. 제 1 시간 및 제 2 시간의 차이는 다양한 방법에 따라 판별될 수 있다. 예시적으로, 엑세스 마크 테이블을 참조함으로써 제 1 시간 및 제 2 시간의 차이가 판별될 수 있다. 제 1 시간 및 제 2 시간이 소정의 임계 값보다 큰 경우에, S240단계가 수행된다. 제 1 시간 및 제 2 시간이 소정의 임계 값보다 작거나 같은 경우에, S250단계가 수행된다.
S240단계에서, 메모리 컨트롤러(100)는 읽기 전압(R)의 레벨을 조절한다. 메모리 컨트롤러(100)는 조절될 읽기 전압(R)의 레벨을 결정할 것이다. 그리고, 메모리 컨트롤러(100)는 읽기 동작 시에 결정된 레벨의 읽기 전압(R)이 발생되도록 불휘발성 메모리(200)를 재설정할 것이다.
예를 들면, 메모리 컨트롤러(100)는 전압 레벨 정보를 불휘발성 메모리(200)에 전송할 것이다. 제어 로직(250)은 전압 레벨 정보에 따라 읽기 전압(R)의 레벨이 조절되도록 전압 발생기(240)를 재설정할 것이다. 예를 들면, 도 4에서의 제 1 읽기 전압(R11)을 제공하는 전압 발생기(240)는 변경된 제 1 읽기 전압(R12)을 제공하도록 재설정될 것이다. 도 5에서의 제 2 내지 제 4 읽기 전압들(R21, R31, R41)을 발생하도록 설정된 전압 발생기(240)는 변경된 제 2 내지 제 4 읽기 전압들(R22, R32, R42)을 발생하도록 재설정될 것이다.
S250단계에서, 불휘발성 메모리(200)는 메모리 컨트롤러(100)의 제어에 따라 선택된 메모리 셀들을 읽는다. 메모리 컨트롤러(100)는 프로그램을 위한 제어 신호(CTRL), 물리 블록 어드레스(PBA) 및 데이터(DATA)를 전송할 것이다. 불휘발성 메모리(200)는 프로그램을 수행(S260)하기 전에 선택된 메모리 셀들의 데이터를 읽을 것이다.
S260단계에서, 불휘발성 메모리(200)는 읽혀진 데이터에 기반하여 프로그램 동작을 수행할 것이다. 즉, 불휘발성 메모리(200)는 각 메모리 셀로부터 읽혀진 논리 값 및 각 메모리 셀에 저장될 논리 값에 대응하는 논리 상태를 갖도록 각 메모리 셀을 프로그램할 것이다. 반면, 최하위 페이지 프로그램이 수행되는 경우에, 불휘발성 메모리(200)는 읽기 동작 없이 저장될 논리 값에 대응하는 논리 상태를 갖도록 각 메모리 셀을 프로그램할 것이다.
예시적으로, 프로그램이 종료된 후에(S260단계 후에), 메모리 컨트롤러(100)는 전압 발생기(240)에서 변경되기 전의 읽기 전압(R)이 발생되도록 불휘발성 메모리(200)를 제어할 수 있다.
도 7은 읽기 전압(R)의 레벨을 결정하는 제 1 실시 예를 보여주는 순서도이다. 도 7의 순서도는 도 6의 S230단계 및 S240단계를 더 상세히 보여준다. 도 8은 엑세스 마크 테이블의 실시 예를 개념적으로 보여주는 테이블이다. 도 9는 각 메모리 블록의 메모리 셀들이 프로그램되는 순서를 예시적으로 보여주는 도면이다. 도 3, 도 6, 도 7 및 도 9를 참조하면, S310단계에서, 프로세싱 유닛(120)은 엑세스 마크들을 검색한다.
S320단계에서, 프로세싱 유닛(120)은 엑세스 마크의 값이 "0"인지 판별한다. 엑세스 마크의 값이 "0"인 경우는 프로그램 동작이 수행된 후 소정의 시간이 경과되었음을 의미한다. 이때, S330단계가 수행된다. 엑세스 마크의 값이 "1"인 경우에, 읽기 전압(R)의 레벨은 조절되지 않는다.
예시적으로, 메모리 셀 어레이(210)의 각 메모리 블록에 대응하는 엑세스 마크는 적어도 하나 존재할 수 있다. 도 8을 참조하면, 각 메모리 블록에 대응하는 제 1 및 제 2 엑세스 마크들(AM1, AM2)이 존재한다. 각 메모리 블록에 대응하는 엑세스 마크는 2개이다. 제 1 엑세스 마크(AM1)는 각 메모리 블록 내의 페이지들 중 어느 하나에 최하위 페이지 프로그램이 수행될 때 변경 또는 유지된다. 제 2 엑세스 마크(AM2)는 각 메모리 블록 내의 페이지들 중 어느 하나에 중간 페이지 프로그램이 수행될 때 변경 또는 유지된다. 엑세스 마크가 변경 또는 유지될 때, 변경 또는 유지된 엑세스 마크에 대응하는 타임 스탬프도 업데이트될 것이다.
각 메모리 블록에 대응하는 제 1 및 제 2 엑세스 마크들(AM1, AM2)은 각각 프로그램 동작에 따라 변경 또는 유지된 후에 소정의 시간이 경과되기 전에 다음의 프로그램 동작이 수행되지 않으면 0으로 변경된다. 따라서, 엑세스 마크의 값은 가장 최근에 프로그램이 수행된 때로부터 경과된 시간에 대응한다.
프로세싱 유닛(120)은 물리 블록 어드레스(PBA)에 대응하는 메모리 블록을 판별할 것이다. 그리고, 판별된 메모리 블록에 대응하는 제 1 및 제 2 엑세스 마크들(AM1, AM2) 중 하나를 참조할 것이다. 예를 들면, 물리 블록 어드레스(PBA)에 따라, 수행될 프로그램은 최상위 페이지 프로그램임이 판별된다고 가정한다. 그리고, 프로세싱 유닛(120)은 물리 블록 어드레스(PBA)에 대응하는 메모리 블록을 판별할 것이다. 그리고, 판별된 메모리 블록의 엑세스 마크들 중, 최상위 페이지의 바로 하위 페이지(lower page)인 중간 페이지에 대응하는 제 2 엑세스 마크(AM2)의 값이 참조될 것이다. 즉, 최상위 페이지 프로그램 시에 중간 페이지 프로그램이 수행된 시점을 나타내는 제 2 엑세스 마크(AM2)의 값이 참조된다.
예를 들면, 물리 블록 어드레스(PBA)에 따라, 프로세싱 유닛(120)은 수행될 프로그램이 중간 페이지 프로그램임을 감지한다고 가정한다. 프로세싱 유닛(120)은 중간 페이지의 바로 하위 페이지인 최하위 페이지에 대응하는 제 1 엑세스 마크(AM1)의 값을 참조할 것이다. 즉, 중간 페이지 프로그램 시에 최하위 페이지 프로그램이 수행된 시점을 나타내는 제 1 엑세스 마크(AM1)의 값이 참조된다.
엑세스 마크 테이블은 도 8의 실시 예에 한정되지 않을 것이다. 즉, 엑세스 마크 테이블은 다른 방법으로 구성될 수 있다. 예시적으로, 엑세스 마크 테이블에 포함된 엑세스 마크들은 각각 불휘발성 메모리(200)의 페이지들에 대응할 수 있다.
한편, 도 9에 하나의 메모리 블록 내의 메모리 셀들의 프로그램 순서가 설명된다. 도 9의 테이블에 표시된 숫자들은 프로그램 순서를 의미한다. 도 9를 참조한 설명에서, 설명의 편의를 위하여 하나의 메모리 블록에 제 0 내지 제 4 워드 라인들(WL0~WL4)이 연결된다고 가정한다.
먼저, 제 0 워드 라인(WL0)의 메모리 셀들의 최하위 페이지가 0 번째로 프로그램되고, 제 1 워드 라인(WL1)의 메모리 셀들의 최하위 페이지가 1 번째로 프로그램된다. 제 0 워드 라인(WL0)의 메모리 셀들의 중간 페이지가 2 번째로 프로그램되고, 제 2 워드 라인(WL2)의 메모리 셀들의 최하위 페이지가 3 번째로 프로그램된다. 그 후에, 제 1 워드 라인(WL1)의 메모리 셀들의 중간 페이지가 4 번째로 프로그램되고, 제 0 워드 라인(WL0)에 연결된 메모리 셀들의 최상위 페이지가 5 번째로 프로그램된다. 이와 같은 방법으로 제 0 내지 제 4 워드 라인들(WL0~WL4)에 연결된 메모리 셀들이 프로그램된다.
이러한 프로그램 순서에 따르면, 중간 페이지 프로그램은 최하위 페이지 프로그램된 메모리 셀들 중 가장 최근에 최하위 페이지 프로그램된 메모리 셀들에 수행된다. 예를 들면, 제 0 워드 라인(WL0)의 메모리 셀들의 최하위 페이지가 프로그램된 후에 가장 먼저 수행되는 중간 페이지 프로그램은 제 0 워드 라인(WL0)의 메모리 셀들에 수행된다.
한편, 제 1 엑세스 마크(AM1)의 값은 가장 최근의 최하위 페이지 프로그램이 수행될 때 변경 또는 유지된다. 따라서, 중간 페이지 프로그램이 수행될 때의 제 1 엑세스 마크(AM1)의 값은, 중간 페이지 프로그램 될 메모리 셀들에 하위 페이지 프로그램이 수행될 때 변경 또는 유지된 값이다. 제 1 엑세스 마크(AM1)의 값을 참조함으로써, 선택된 메모리 셀들에 하위 페이지 프로그램이 수행된 시점으로부터 중간 페이지 프로그램의 수행 시점까지의 경과 시간이 판별된다.
선택된 메모리 셀들이 제 0 메모리 블록(BLK0)의 제 0 워드 라인(WL0)에 연결된다고 가정한다. 제 0 워드 라인(WL0)의 메모리 셀들에 최하위 페이지 프로그램이 수행될 때, 제 1 엑세스 마크(AM1)가 "1"로 변경될 것이다. 그 후에, 제 0 메모리 블록(BLK0)에 가장 먼저 수행되는 중간 페이지 프로그램은 제 0 워드 라인(WL0)의 메모리 셀들에 수행될 것이다. 이때, 제 0 메모리 블록(BLK0)에 대응하는 제 1 엑세스 마크(AM1)의 값을 참조함으로써, 제 0 워드 라인(WL0)의 메모리 셀들의 최하위 페이지 프로그램이 수행된 시점으로부터 경과된 시간이 임계 시간보다 큰지 판별할 수 있다.
또한, 최상위 페이지 프로그램은 가장 최근에 중간 페이지 프로그램된 메모리 셀들에 수행된다. 예를 들면, 제 0 워드 라인(WL0)의 메모리 셀들의 중간 페이지가 프로그램된 후에 가장 먼저 수행되는 최상위 페이지 프로그램은 제 0 워드 라인(WL0)의 메모리 셀들에 수행된다. 그리고, 제 2 엑세스 마크(AM2)의 값은, 최상위 페이지 프로그램될 메모리 셀들에 하위 페이지 프로그램이 수행될 때 변경 또는 유지된 값이다. 최상위 페이지 프로그램이 수행되는 경우에 제 2 엑세스 마크(AM2)의 값을 참조함으로써, 최상위 페이지 프로그램 시 선택된 메모리 셀들에 중간 페이지 프로그램이 수행된 시점으로부터 경과한 시간이 판별된다.
결과적으로, 이러한 프로그램 순서에 따르면, 각 메모리 블록에 대응하는 엑세스 마크는 2개만 제공될 수 있다.
다시 도 7을 참조하면, S330단계에서, 프로세싱 유닛(120)은 불휘발성 메모리(200)의 읽기 전압(R)의 레벨을 조절할 것이다.
또한, 프로그램 동작이 수행(도 6의 S260단계)된 후에, 엑세스 마크의 값은 "1"로 변경 또는 유지될 것이다. 예를 들면, 최하위 페이지 프로그램이 수행된 경우에, 프로그램된 메모리 블록에 대응하는 제 1 엑세스 마크(AM1)는 "1"로 변경될 것이다. 예를 들면, 중간 페이지 프로그램이 수행된 경우에, 프로그램된 메모리 블록에 대응하는 제 2 엑세스 마크(AM2)는 "1"로 변경 또는 유지될 것이다.
도 10은 읽기 전압(R)의 레벨을 결정하는 제 2 실시 예를 보여주는 순서도이다. 도 3, 도 7 및 도 10을 참조하면, 도 7과 비교할 때 제 2 실시 예는 S410단계를 더 포함한다. 이하, 중복되는 설명은 생략된다.
도 3의 램(110)은 소거 카운트 테이블을 더 저장한다. 소거 카운트 테이블은 불휘발성 메모리(200)의 각 메모리 블록에 대응하는 소거 카운트 값을 포함한다. 프로세싱 유닛(120)은 소거 동작이 수행될 때마다, 소거 동작이 수행되는 메모리 블록에 대응하는 소거 카운트 값을 증가시킨다.
프로그램 동작들 및 소거 동작들이 수행되면서, 각 논리 상태의 문턱 전압 분포는 원하는 윈도우보다 더 넓은 문턱 전압 분포로 변경될 수 있다. 즉, 프로그램 동작들 및 소거 동작들이 반복적으로 수행됨에 따라, 전계 커플링 또는 F-poly 커플링의 영향은 증가한다. 또한, 메모리 셀에 축적된 전하들이 기판으로 빠져나갈 가능성은 증가한다.
다시 도 10을 참조하면, 엑세스 마크의 값이 "0"인 경우에 S410단계가 수행된다. S410단계에서, 프로세싱 유닛(120)은 소거 카운트 테이블에 따라 읽기 전압 레벨을 결정한다.
프로세싱 유닛(120)은 선택된 메모리 블록에 대응하는 소거 카운트 값에 따라 읽기 전압(R)의 레벨을 조절할 수 있다. 예를 들면, 프로세싱 유닛(120)은 소거 카운트 값의 크기에 따라 읽기 전압(R)의 레벨이 증가 또는 감소되도록 불휘발성 메모리(200)를 제어할 것이다. 엑세스 마크의 값이 "0"인 경우에도 소거 카운트 값에 따라 읽기 전압(R)의 레벨을 조절함으로써, 읽기 동작의 신뢰성은 향상될 것이다.
도 11은 읽기 전압(R)의 레벨을 결정하는 제 3 실시 예를 보여주는 순서도이다. 도 3, 도 10 및 도 11을 참조하면, 도 10과 비교할 때 제 3 실시 예는 S510단계를 더 포함한다. 이하, 중복되는 설명은 생략된다.
프로세싱 유닛(120)은 물리 블록 어드레스(PBA)를 발생한 후에, 물리 블록 어드레스(PBA)에 대응하는 메모리 블록이 클린 블록(clean block)인지 판별한다. 클린 블록은 아직 데이터가 저장되지 않은 메모리 블록을 의미한다. 프로세싱 유닛(120)은 램(110)에 저장된 어드레스 매핑 테이블을 참조함으로써 물리 블록 어드레스(PBA)에 대응하는 메모리 블록이 클린 블록인지 판별할 것이다. 물리 블록 어드레스(PBA)에 대응하는 메모리 블록이 클린 블록(clean block)인지에 따라, S320단계 및 S410단계가 선택적으로 수행될 것이다.
도 12는 본 발명의 제 2 실시 예에 따른 메모리 시스템(2000)을 보여주는 블록도이다. 도 12를 참조하면, 메모리 시스템(2000)은 메모리 컨트롤러(2100) 및 불휘발성 메모리(2200)를 포함한다. 제어 로직(2250)을 제외하면 불휘발성 메모리(2200)는 도 3을 참조하여 설명된 불휘발성 메모리(200)와 마찬가지로 구성된다. 읽기 전압(R) 레벨의 조절 기능을 수행하지 않는 것을 제외하면, 메모리 컨트롤러(2100)는 도 3을 참조하여 설명된 메모리 컨트롤러(100)와 마찬가지로 구성된다. 이하, 중복되는 설명은 생략된다.
읽기 전압(R)의 레벨을 조절할지 결정하고, 읽기 전압(R)의 레벨을 조절하는 기능은 불휘발성 메모리(2200)의 제어 로직(2250)에서 수행된다. 제어 로직(2250)은 레지스터(2251)를 더 포함한다. 레지스터(2251)는 엑세스 마크 테이블을 저장한다. 제어 로직(2250)은 프로그램이 수행될 때마다 엑세스 마크 테이블의 엑세스 마크를 업데이트할 것이다.
프로그램 시에 불휘발성 메모리(2200)는 메모리 컨트롤러(100)로부터 제어 신호(CTRL), 물리 블록 어드레스(PBA) 및 데이터(DATA)를 수신할 것이다. 물리 블록 어드레스(PBA)에 따라, 제어 로직(2250)은 수행될 프로그램이 최하위 페이지 프로그램인지 판별할 것이다. 최하위 페이지 프로그램인 경우에, 프로그램 동작 전에 읽기 동작은 수행되지 않는다.
수행될 프로그램이 최하위 페이지 프로그렘이 아닌 경우에, 제어 로직(2250)은 엑세스 마크 테이블을 참조함으로써 읽기 전압(R)의 레벨을 조절할지 판별할 것이다. 판별 결과에 따라, 제어 로직(2250)은 읽기 동작 시에 변경된 레벨의 읽기 전압(R)을 발생하도록 전압 발생기(240)를 재설정할 것이다.
도 13은 도 3의 메모리 시스템(1000)의 응용 예(3000)를 보여주는 블록도이다. 도 13을 참조하면, 메모리 시스템(3000)은 메모리 컨트롤러(3100) 및 불휘발성 메모리(3200)를 포함한다.
불휘발성 메모리(3200)는 복수의 불휘발성 메모리 칩들을 포함한다. 복수의 불휘발성 메모리 칩들은 복수의 그룹들로 분할된다. 복수의 불휘발성 메모리 칩들의 그룹들 각각은 하나의 공통 채널을 통해 메모리 컨트롤러(3100)와 통신하도록 구성된다. 예시적으로, 복수의 불휘발성 메모리 칩들은 제 1 내지 제 k 채널들(CH1~CHk)을 통해 메모리 컨트롤러(3100)와 통신하는 것으로 도시되어 있다. 불휘발성 메모리 칩들 각각은 도 3을 참조하여 설명된 불휘발성 메모리(200)와 동일한 구조를 가지며, 동일하게 동작할 수 있다. 예를 들면, 각 불휘발성 메모리 칩은 모두 제 0 내지 제 z 메모리 블록들을 포함하도록 구성될 것이다.
메모리 컨트롤러(3100)는 도 3을 참조하여 설명된 메모리 컨트롤러(100)와 마찬가지로 동작할 것이다. 메모리 컨트롤러(3100)는 엑세스 마크 테이블에 따라 각 불휘발성 메모리 칩의 프로그램 시에 읽기 전압 레벨을 조절할지 결정하고, 읽기 전압 레벨을 조절할 것이다.
예시적으로, 메모리 컨트롤러(3100)는 서로 다른 채널들에 연결된 불휘발성 메모리 칩들의 소거 및 프로그램 동작들을 공통적으로 관리할 수 있다. 이때, 메모리 컨트롤러(3100)는 불휘발성 메모리 칩들의 읽기 전압들을 공통적으로 관리하기 위한 엑세스 마크 테이블을 저장할 것이다.
예를 들면, 소거 동작 시에, 서로 다른 채널에 연결된 각 불휘발성 메모리 칩의 제 0 메모리 블록이 공통적으로 소거될 것이다. 따라서, 각 메모리 블록에 대응하는 소거 카운트는 공통적으로 관리될 수 있다. 프로그램 동작 시에, 서로 다른 채널에 연결된 각 불휘발성 메모리 칩의 제 0 메모리 블록이 공통적으로 프로그램될 것이다. 따라서, 각 메모리 블록에 대응하는 엑세스 마크는 공통적으로 관리될 수 있다.
도 13에서, 하나의 채널에 복수의 불휘발성 메모리 칩들이 연결되는 것으로 설명되었다. 그러나, 하나의 채널에 하나의 불휘발성 메모리 칩이 연결되도록, 메모리 시스템(3000)는 변형될 수 있다.
도 14는 도 13을 참조하여 설명된 메모리 시스템(3000)을 포함하는 컴퓨팅 시스템(4000)을 보여주는 블록도이다. 도 14를 참조하면, 컴퓨팅 시스템(4000)은 중앙 처리 장치(4100), 램(4200, RAM, Random Access Memory), 사용자 인터페이스(4300), 전원(4400), 시스템 버스(4500), 그리고 메모리 시스템(3000)을 포함한다.
메모리 시스템(3000)은 시스템 버스(4500)를 통해, 중앙처리장치(4100), 램(4200), 사용자 인터페이스(4300), 그리고 전원(4400)에 전기적으로 연결된다. 사용자 인터페이스(4300)를 통해 제공되거나, 중앙 처리 장치(4100)에 의해서 처리된 데이터는 메모리 시스템(3000)에 저장된다.
도 14에서, 불휘발성 메모리(3200)는 메모리 컨트롤러(3100)를 통해 시스템 버스(4500)에 연결되는 것으로 도시되어 있다. 그러나, 불휘발성 메모리(3200)는 시스템 버스(4500)에 직접 연결되도록 구성될 수 있다. 이때, 프로세싱 유닛(120)의 기능은 중앙 처리 장치(4100)에 의해 수행될 것이다. 또한, 램(110)의 기능은 램(4200)에 의해 수행될 것이다.
도 14에서, 도 13을 참조하여 설명된 메모리 시스템(3000)이 제공되는 것으로 도시되어 있다. 그러나, 메모리 시스템(3000)은 도 3을 참조하여 설명된 메모리 시스템(1000)으로 대체될 수 있다.
예시적으로, 컴퓨팅 시스템(4000)은 도 3 및 도 13을 참조하여 설명된 메모리 시스템들(1000, 3000)을 모두 포함하도록 구성될 수 있다.
본 발명의 실시 예에 따르면, 메모리 컨트롤러는 프로그램 동작 전의 가장 최근에 프로그램이 수행된 때로부터 경과된 시간에 따라 불휘발성 메모리의 읽기 전압 레벨을 조절할지 결정한다. 그리고, 메모리 컨트롤러는 불휘발성 메모리의 읽기 전압 레벨을 최적의 읽기 전압 레벨로 조절한다. 조절된 읽기 전압 레벨에 따라, 불휘발성 메모리는 읽기 동작을 수행한다. 읽어진 데이터 비트들 중 에러 비트들은 감소할 것이다. 따라서, 읽기 동작 시에 향상된 신뢰성을 가지는 메모리 시스템이 제공된다.
한편, 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
1000: 메모리 시스템 100: 메모리 컨트롤러
110: 램 120: 프로세싱 유닛
130: 에러 정정 유닛 140: 호스트 인터페이스
150: 메모리 인터페이스 200: 불휘발성 메모리
210: 메모리 셀 어레이 220: 어드레스 디코더
230: 읽기 및 쓰기 회로 240: 전압 발생기
250: 제어 로직

Claims (10)

  1. 멀티 레벨 셀(Multi-Level Cell)을 포함하는 불휘발성 메모리의 제어 방법에 있어서:
    제 1 엑세스 요청에 응답하여 선택된 메모리 셀들에 제 1 데이터를 프로그램하는 단계;
    상기 선택된 메모리 셀들에 제 2 데이터를 프로그램하기 위한 요청인 제 2 엑세스 요청에 응답하여, 상기 제 1 데이터가 프로그램된 시점으로부터 상기 제 2 엑세스 요청이 발생한 시점까지의 경과 시간을 판별하는 단계;
    상기 경과 시간에 따라 상기 불휘발성 메모리의 읽기 전압을 조절할지 여부를 결정하고, 상기 불휘발성 메모리의 읽기 전압을 조절하는 단계;
    상기 조절된 읽기 전압에 따라 상기 선택된 메모리 셀들에 대한 읽기를 수행하는 단계; 및
    상기 조절된 읽기 전압에 따라 상기 선택된 메모리 셀들로부터 읽어진 데이터를 참조하여 상기 선택된 메모리 셀들에 상기 제 2 데이터를 프로그램하는 단계를 포함하는 제어 방법.
  2. 제 1 항에 있어서,
    상기 읽기 전압을 조절하는 단계는 상기 경과 시간이 임계 값보다 클 때 상기 읽기 전압을 조절하는 단계를 포함하는 제어 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 제 1 데이터를 프로그램하는 단계는 상기 선택된 메모리 셀들을 프로그램하고, 상기 선택된 메모리 셀들에 대응하는 엑세스 마크를 업데이트하는 단계를 포함하는 제어 방법.
  5. 제 4 항에 있어서,
    상기 엑세스 마크가 업데이트된 시점으로부터 미리 정해진 시간이 경과되기 전에 상기 제 2 엑세스 요청이 발생하는지에 따라 상기 엑세스 마크를 초기화하는 단계를 더 포함하는 제어 방법.
  6. 제 5 항에 있어서,
    상기 경과 시간을 판별하는 단계는 상기 제 2 엑세스 요청이 수신될 때 상기 엑세스 마크를 참조함으로써 상기 경과 시간을 판별하는 단계를 포함하는 제어 방법.
  7. 복수의 메모리 셀들을 포함하는 불휘발성 메모리; 및
    제 1 엑세스 요청에 응답하여 상기 불휘발성 메모리의 선택된 메모리 셀들에 제 1 데이터를 프로그램하는 메모리 컨트롤러를 포함하되,
    상기 메모리 컨트롤러는 상기 선택된 메모리 셀들을 엑세스하기 위한 제 2 엑세스 요청에 응답하여, 상기 제 1 데이터가 프로그램된 시점으로부터 상기 제 2 엑세스 요청이 발생한 시점까지의 경과 시간을 판별하고, 상기 판별 결과에 따라 선택적으로 상기 불휘발성 메모리의 읽기 전압을 조절하고,
    상기 제 2 엑세스 요청은 상기 선택된 메모리 셀들에 제 2 데이터를 프로그램하기 위한 요청이고,
    상기 불휘발성 메모리는 상기 메모리 컨트롤러의 제어에 응답하여, 상기 조절된 읽기 전압에 따라 상기 선택된 메모리 셀들을 읽고, 상기 조절된 읽기 전압에 따라 상기 선택된 메모리 셀들로부터 읽어진 데이터를 참조하여 상기 선택된 메모리 셀들에 상기 제 2 데이터를 프로그램하는 메모리 시스템.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 불휘발성 메모리는 상기 복수의 메모리 셀들을 가지는 복수의 메모리 블록들을 포함하고,
    상기 메모리 컨트롤러는
    상기 복수의 메모리 블록들 각각에 대응하는 소거 카운트 값들을 저장하는 램; 및
    상기 각 메모리 블록에 대한 소거 동작이 수행될 때마다, 소거 동작이 수행된 메모리 블록에 대응하는 소거 카운트 값을 변경하는 프로세싱 유닛을 포함하는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 프로세싱 유닛은 상기 경과 시간이 미리 정해진 시간보다 클 때 상기 읽기 전압 레벨을 조절하고,
    상기 경과 시간이 미리 정해진 시간보다 작을 때 상기 선택된 메모리 셀들을 포함하는 메모리 블록에 대응하는 소거 카운트 값에 따라 상기 읽기 전압 레벨을 조절하는 메모리 시스템.
KR1020110046380A 2011-05-17 2011-05-17 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법 KR101925384B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110046380A KR101925384B1 (ko) 2011-05-17 2011-05-17 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법
US13/473,317 US8908460B2 (en) 2011-05-17 2012-05-16 Nonvolatile memory systems using time-dependent read voltages and methods of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110046380A KR101925384B1 (ko) 2011-05-17 2011-05-17 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법

Publications (2)

Publication Number Publication Date
KR20120128433A KR20120128433A (ko) 2012-11-27
KR101925384B1 true KR101925384B1 (ko) 2019-02-28

Family

ID=47174831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110046380A KR101925384B1 (ko) 2011-05-17 2011-05-17 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법

Country Status (2)

Country Link
US (1) US8908460B2 (ko)
KR (1) KR101925384B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11699500B2 (en) 2021-04-16 2023-07-11 SK Hynix Inc. Storage device and operating method thereof

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI521525B (zh) * 2013-11-22 2016-02-11 群聯電子股份有限公司 時間估測方法、記憶體儲存裝置、記憶體控制電路單元
KR102116258B1 (ko) * 2013-12-24 2020-06-05 삼성전자주식회사 메모리 시스템 및 그것을 포함하는 유저 장치
KR102190694B1 (ko) * 2014-03-14 2020-12-14 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102222463B1 (ko) * 2014-03-14 2021-03-03 삼성전자주식회사 저장 장치 및 그것의 타이머 설정 방법 및 구동 방법들
KR102233808B1 (ko) * 2014-03-14 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 테이블 관리 방법
TWI492234B (zh) 2014-04-21 2015-07-11 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統
GB2525397A (en) * 2014-04-22 2015-10-28 Ibm Device and method for determining a cell level of a resistive memory cell
KR102285994B1 (ko) 2014-05-13 2021-08-06 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
KR102211865B1 (ko) 2014-05-20 2021-02-04 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
KR102248276B1 (ko) 2014-05-26 2021-05-07 삼성전자주식회사 스토리지 장치의 동작 방법
KR102218722B1 (ko) * 2014-06-09 2021-02-24 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
KR102292172B1 (ko) * 2014-06-23 2021-08-25 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
KR20160005264A (ko) * 2014-07-04 2016-01-14 삼성전자주식회사 저장 장치 및 그것의 읽기 방법들
KR102235516B1 (ko) * 2014-09-30 2021-04-05 삼성전자주식회사 이레이즈 컨트롤 유닛을 포함하는 메모리 시스템 및 동작 방법
US9431121B2 (en) * 2014-10-24 2016-08-30 Micron Technology, Inc. Read voltage adjustment
KR102252378B1 (ko) 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102263046B1 (ko) * 2014-10-29 2021-06-09 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102287760B1 (ko) * 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
JP6497395B2 (ja) * 2014-12-05 2019-04-10 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
KR102253592B1 (ko) 2014-12-23 2021-05-18 삼성전자주식회사 초기 문턱 전압 분포 변화를 보상할 수 있는 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템
KR102246843B1 (ko) * 2015-01-15 2021-05-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102420588B1 (ko) 2015-12-04 2022-07-13 삼성전자주식회사 비휘발성 메모리 장치, 메모리 시스템, 비휘발성 메모리 장치의 동작 방법 및 메모리 시스템의 동작 방법
CN107437431B (zh) * 2016-05-26 2022-08-30 新唐科技日本株式会社 非易失性存储装置
CN109273037B (zh) * 2017-07-17 2022-08-26 深圳大心电子科技有限公司 数据读取方法以及存储控制器
US10872009B2 (en) * 2018-02-08 2020-12-22 Micron Technology, Inc. Mitigating a voltage condition of a memory cell in a memory sub-system
KR102530500B1 (ko) * 2018-09-28 2023-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11119697B2 (en) * 2019-07-12 2021-09-14 Micron Technology, Inc. Read voltage management based on write-to-read time difference
US11158358B2 (en) 2019-07-22 2021-10-26 Micron Technology, Inc. Adaptive write operations for a memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7554879B2 (en) 2004-01-06 2009-06-30 Samsung Electronics Co., Ltd. Apparatus for testing a nonvolatile memory and a method thereof
WO2011055749A1 (ja) * 2009-11-06 2011-05-12 株式会社 東芝 メモリシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4079458B2 (ja) 1995-02-27 2008-04-23 富士通株式会社 多値データ記憶再生方法及び多値データ記憶再生装置
JP4413406B2 (ja) * 2000-10-03 2010-02-10 株式会社東芝 不揮発性半導体メモリ及びそのテスト方法
KR100385228B1 (ko) * 2001-04-18 2003-05-27 삼성전자주식회사 불휘발성 메모리를 프로그램하는 방법 및 장치
JP3875621B2 (ja) * 2002-10-30 2007-01-31 株式会社東芝 不揮発性半導体記憶装置
EP1746604B1 (en) 2005-07-22 2009-02-04 STMicroelectronics S.r.l. Method for accessing a multilevel nonvolatile memory device of the flash NAND type
US7489549B2 (en) 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7558109B2 (en) 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
KR101437102B1 (ko) * 2008-01-08 2014-09-05 삼성전자주식회사 메모리 장치 및 멀티 비트 셀 특성 추정 방법
KR101670922B1 (ko) * 2009-08-07 2016-11-09 삼성전자주식회사 아날로그 신호를 출력하는 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101635506B1 (ko) * 2010-03-29 2016-07-04 삼성전자주식회사 데이터 저장 시스템 및 그것의 읽기 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7554879B2 (en) 2004-01-06 2009-06-30 Samsung Electronics Co., Ltd. Apparatus for testing a nonvolatile memory and a method thereof
WO2011055749A1 (ja) * 2009-11-06 2011-05-12 株式会社 東芝 メモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11699500B2 (en) 2021-04-16 2023-07-11 SK Hynix Inc. Storage device and operating method thereof

Also Published As

Publication number Publication date
US20120294104A1 (en) 2012-11-22
KR20120128433A (ko) 2012-11-27
US8908460B2 (en) 2014-12-09

Similar Documents

Publication Publication Date Title
KR101925384B1 (ko) 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법
US20190362794A1 (en) Operation method of nonvolatile memory device and storage device
US8705279B2 (en) Nonvolatile memory device and reading method thereof
US8004898B2 (en) Nonvolatile memory device, program method thereof, and memory system including the same
KR102239868B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR102461447B1 (ko) 불휘발성 메모리 시스템
US20180286495A1 (en) Nonvolatile memory storage system
US8498160B2 (en) Nonvolatile memory device and related programming method using selective bit line precharging
JP2009016028A (ja) 変更された読み出し電圧を用いるマルチレベルセルを含む不揮発性メモリ装置及びシステム、並びにその動作方法
CN108735253B (zh) 非易失性存储器存储系统
JP2018160065A (ja) メモリシステム
KR20160074237A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN112435703A (zh) 存储装置及其操作方法
US11321170B2 (en) Memory system, memory controller, and method for operating memory system
US11086540B2 (en) Memory system, memory controller and memory device for configuring super blocks
US9727401B2 (en) Method of operating semiconductor memory device and memory system including semiconductor memory device
US20210365382A1 (en) Memory system, memory controller, and operation method thereof
US11307918B2 (en) Memory controller performing recovery operation, operating method of the same, and memory system including the same
KR20100004771A (ko) 공통 소스 라인 전압을 제어하는 플래시 메모리 장치,그것의 프로그램 검증 방법, 그리고 그것을 포함하는메모리 시스템
US11182108B2 (en) Memory system, memory controller, and operation method
CN112037837B (zh) 存储器系统、存储器控制器和存储器设备
CN114078533A (zh) 存储装置、存储器装置和操作该存储器装置的方法
CN111798913A (zh) 存储器系统、存储器控制器及其操作方法
KR20200113387A (ko) 메모리 시스템 및 그것의 동작방법
US11404137B1 (en) Memory system and operating method of memory system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant