KR20150075887A - 메모리 시스템 및 이의 동작 방법 - Google Patents

메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20150075887A
KR20150075887A KR1020130164279A KR20130164279A KR20150075887A KR 20150075887 A KR20150075887 A KR 20150075887A KR 1020130164279 A KR1020130164279 A KR 1020130164279A KR 20130164279 A KR20130164279 A KR 20130164279A KR 20150075887 A KR20150075887 A KR 20150075887A
Authority
KR
South Korea
Prior art keywords
memory cells
memory
data
program operation
msb
Prior art date
Application number
KR1020130164279A
Other languages
English (en)
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 KR1020130164279A priority Critical patent/KR20150075887A/ko
Publication of KR20150075887A publication Critical patent/KR20150075887A/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/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
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Read Only Memory (AREA)

Abstract

본 기술은 데이터가 저장되는 복수의 메모리 셀들이 포함된 메모리 저장부; 상기 메모리 셀들 중 LSB 데이터가 프로그램된 제1 메모리 셀들의 MSB 프로그램 동작이 시작되면, 상기 제1 메모리 셀들 중 문턱전압이 변한 메모리 셀들의 개수에 따라 상기 제1 메모리 셀들의 위험도를 평가하고, 상기 위험도 평가 결과, 상기 제1 메모리 셀들이 안전한 것으로 평가되면, 상기 제1 메모리 셀들에 MSB 데이터를 프로그램하고, 상기 위험도 평가 결과, 상기 제1 메모리 셀들이 안전하지 않은 것으로 평가되면, 상기 제1 메모리 셀들과 다른 제2 메모리 셀들에 상기 MSB 데이터를 LSB 데이터로써 프로그램하도록 상기 메모리 저장부를 제어하는 메모리 제어부를 포함하는 메모리 시스템 및 이의 동작방법을 포함한다.

Description

메모리 시스템 및 이의 동작 방법{Memory system and operating method thereof}
본 발명은 메모리 시스템 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 멀티 레벨 셀을 포함하는 메모리 시스템의 프로그램 방법에 관한 것이다.
메모리 시스템은 컴퓨터, 휴대폰 등 대부분의 전자기기에 사용되고 있다. 특히, 최근에는 전자기기가 처리하는 데이터의 량이 증가하고, 휴대성이 강조되면서 메모리 시스템의 대용량화 및 경량화가 이슈(issue)가 되고 있다. 메모리 시스템은 데이터가 저장되는 메모리 저장부와, 메모리 저장부를 제어하기 위한 메모리 제어부를 포함한다.
메모리 저장부는 데이터 저장 방식 및 셀의 구조에 따라 다양한 메모리 장치가 사용되는데, 최근에는 전원공급 없이도 데이터가 유지되는 플래시 메모리 장치(flash memory device)가 많이 사용되고 있다. 플래시 메모리 장치는 대용량화 및 경량화를 위하여 1비트 데이터를 저장하는 싱글 레벨 셀(single level cell; SLC)에서 다수의 비트 데이터를 저장하는 멀티 레벨 셀(multi level cell; MLC)로 전환되고 있다. 예를 들면, 싱글 레벨 셀(SLC)은 '0' 또는 '1' 데이터를 저장하는 반면에, 멀티 레벨 셀(MLC)은 '11', '01', '10' 또는 '00' 데이터를 저장할 수 있다. 즉, 멀티 레벨 셀(MLC) 방식의 반도체 메모리 장치에서, 하나의 메모리 셀은 소거 상태, 제1 프로그램 상태, 제2 프로그램 상태 또는 제3 프로그램 상태가 될 수 있다. 이처럼, 메모리 셀이 소거 상태가 되거나 다양한 프로그램 상태로 프로그램되기 위해서는 메모리 셀의 문턱전압의 신뢰도가 뒷받침되어야 한다.
하지만, 서로 다른 문턱전압 분포들 간의 간격은 싱글 레벨 셀(SLC)보다 멀티 레벨 셀(MLC)에서 더 좁기 때문에, 멀티 레벨 셀(MLC) 방식의 메모리 시스템의 신뢰도가 저하될 수 있다.
본 발명의 실시예는 멀티 레벨 셀에서 상위비트 데이터의 프로그램 동작 시, 하위비트 데이터가 프로그램된 페이지 또는 메모리 블록의 위험도에 따라, 프로그램 대상 페이지 또는 메모리 블록을 변경함으로써 프로그램 동작의 신뢰도를 개선할 수 있는 메모리 시스템 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 메모리 시스템은, 데이터가 저장되는 복수의 메모리 셀들이 포함된 메모리 저장부; 상기 메모리 셀들 중 LSB 데이터가 프로그램된 제1 메모리 셀들의 MSB 프로그램 동작이 시작되면, 상기 제1 메모리 셀들 중 문턱전압이 변한 메모리 셀들의 개수에 따라 상기 제1 메모리 셀들의 위험도를 평가하고, 상기 위험도 평가 결과, 상기 제1 메모리 셀들이 안전한 것으로 평가되면, 상기 제1 메모리 셀들에 MSB 데이터를 프로그램하고, 상기 위험도 평가 결과, 상기 제1 메모리 셀들이 안전하지 않은 것으로 평가되면, 상기 제1 메모리 셀들과 다른 제2 메모리 셀들에 상기 MSB 데이터를 LSB 데이터로써 프로그램하도록 상기 메모리 저장부를 제어하는 메모리 제어부를 포함한다.
본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은, LSB 프로그램 동작이 수행된 제1 메모리 셀들을 노말 리드전압보다 낮은 제1 평가전압과 제2 평가전압을 각각 사용하여 리드하는 단계; 상기 제1 메모리 셀들 중 문턱전압이 상기 제1 평가전압과 상기 제2 평가전압 사이에 분포하는 메모리 셀들의 개수를 카운팅하는 단계; 상기 카운팅된 메모리 셀들의 개수가 미리 설정된 임계개수 미만이면, 상기 제1 메모리 셀들에 MSB 데이터를 프로그램하고, 상기 카운팅된 메모리 셀들의 개수가 상기 임계개수 이상이면, 상기 제1 메모리 셀들과 다른 제2 메모리 셀들에 상기 MSB 데이터를 LSB 데이터로써 프로그램하는 단계를 포함한다.
본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은, 제1 페이지의 LSB 프로그램 동작 완료시간과 MSB 프로그램 동작 시작시간 간의 시간차를 연산하는 단계; 상기 시간차와 미리 설정된 임계시간을 서로 비교하는 단계; 및 상기 비교 결과, 상기 시간차가 상기 임계시간 미만이면, 상기 제1 페이지에 MSB 프로그램 동작을 수행하고, 상기 비교 결과, 상기 시간차가 상기 임계시간 이상이면, 상기 제1 페이지와 다른 제2 페이지에 새로운 LSB 프로그램 동작 및 MSB 프로그램 동작을 수행하는 단계를 포함한다.
본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은, 제1 메모리 블록의 싸이클링 횟수에 대한 정보를 리드하는 단계; 상기 싸이클링 횟수와 미리 설정된 임계횟수를 서로 비교하는 단계; 상기 비교 결과, 상기 싸이클링 횟수가 상기 임계횟수 미만이면, 상기 제1 메모리 블록에 MSB 프로그램 동작을 수행하고, 상기 비교 결과, 상기 싸이클링 횟수가 상기 임계횟수 이상이면, 제2 메모리 블록에 상기 LSB 프로그램 동작 및 상기 MSB 프로그램 동작을 수행하는 단계를 포함한다.
본 기술은 멀티 레벨 셀에서 하위비트 데이터가 프로그램된 페이지 또는 메모리 블록의 위험도를 평가하고, 평가 결과에 따라 상위비트 데이터를 프로그램함으로써 데이터 변형에 따른 메모리 시스템의 신뢰도 저하를 방지할 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 메모리 저장부를 설명하기 위한 블록도이다.
도 3은 도 2에 도시된 메모리 블록을 구체적으로 설명하기 위한 회로도이다.
도 4는 본 발명의 실시예에 따른 메모리 시스템의 프로그램 방법을 설명하기 위한 순서도이다.
도 5는 본 발명에 따른 위험도 평가 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 제1 실시예에 따른 위험도 평가 방법 및 프로그램 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 제2 실시예에 따른 위험도 평가 방법 및 프로그램 방법을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 메모리 시스템(1000)은 데이터를 저장하도록 구성된 메모리 저장부(1100) 및 메모리 저장부(1100)를 제어하도록 구성된 메모리 제어부(1200)를 포함한다. 메모리 시스템(1000)의 프로그램 동작이 시작되면, 메모리 제어부(1200)는 명령신호(CMD) 및 어드레스(ADD)를 메모리 저장부(1100)에 전송하고, 메모리 저장부(1100)는 명령신호(CMD) 및 어드레스(ADD)에 응답하여 프로그램, 리드 또는 소거동작을 수행한다. 또한, 메모리 제어부(1200)는 메모리 저장부(1100)로부터 리드된 데이터(DATA)를 전송받고, 이를 위부로 전송하기도 한다.
도 2는 본 발명의 실시예에 따른 메모리 저장부를 설명하기 위한 블록도이다.
도 2를 참조하면, 메모리 저장부(1100)는 데이터가 저장되는 메모리 셀 어레이(110), 메모리 셀 어레이(110)에 프로그램 동작, 리드 동작 또는 소거 동작을 수행하도록 구성된 주변회로들(120) 및 주변회로들(120)을 제어하도록 구성된 제어회로(130)를 포함한다.
메모리 셀 어레이(110)는 다수의 메모리 블록들을 포함하며, 각각의 메모리 블록들은 하위비트(least significant bit; 이하, LSB) 데이터 및 상위비트(most significant bit; 이하, MSB) 데이터를 저장하는 멀티 레벨 셀들(multi level cells; MLC)을 포함한다. 메모리 블록들은 서로 동일하게 구성되는데, 구체적인 구성에 대해서는 도 2에서 설명하도록 한다.
주변회로들(120)은 전압 생성 회로(21), 로우 디코더(22), 페이지 버퍼(23), 컬럼 디코더(24) 및 입출력 회로(25)를 포함한다.
전압 생성 회로(21)는, 동작명령신호(OP_CMD)에 응답하여 다양한 레벨의 동작전압들을 생성한다. 예를 들어, 프로그램 동작에 관련된 동작명령신호(OP_CMD)가 인가되면 전압 생성 회로(21)는 프로그램 전압(Vpgm)을 생성하고, 리드 동작에 관련된 동작명령신호(OP_CMD)가 인가되면 전압 생성 회로(21)는 리드 전압(Vread)을 생성한다. 전압 생성 회로(21)는 프로그램 전압(Vpgm) 및 리드 전압(Vread) 외에도 패스전압, 소거전압 등 다양한 동작에서 필요한 다양한 레벨의 전압들을 생성할 수 있다.
로우 디코더(22)는 로우 어드레스(RADD)에 응답하여 메모리 셀 어레이(110)에 포함된 메모리 블록들 중 하나를 선택하고, 선택된 메모리 블록에 연결된 워드라인들(WL), 드레인 셀렉트 라인들(DSL) 및 소오스 셀렉트 라인들(SSL)에 동작전압들을 전달한다.
페이지 버퍼(23)는 비트라인들(BL)을 통해 메모리 블록들과 연결되며, 프로그램, 리드 및 소거 동작시 각 동작에 필요한 데이터를 임시로 저장한다.
컬럼 디코더(24)는 컬럼 어드레스(CADD)에 응답하여 페이지 버퍼(23)와 데이터를 주고받는다.
입출력 회로(25)는 외부로부터 전달받은 명령신호(CMD) 및 어드레스(ADD)를 제어회로(130)에 전달하고, 외부로부터 전달받은 데이터(DATA)를 컬럼 디코더(24)에 전송하고, 컬럼 디코더(24)로부터 전달받은 데이터(DATA)를 외부로 출력하거나 제어회로(130)에 전달한다.
제어회로(130)는 명령신호(CMD) 및 어드레스(ADD)에 응답하여 주변회로들(120)을 제어한다. 예를 들면, 프로그램 동작시, 제어회로(130)는 LSB 데이터 및 MSB 데이터를 메모리 어레이(110)의 선택된 메모리 블록의 선택된 페이지(page)에 프로그램하도록 주변회로들(120)을 제어한다. 특히, 제어회로(130)는 MSB 데이터의 프로그램 동작시, 이전 동작에서 LSB 프로그램 동작이 완료된 선택된 페이지 또는 선택된 메모리 블록의 위험도를 평가하고, 평가 결과에 따라 MSB 데이터를 선택된 페이지 또는 선택된 메모리 블록에 프로그램하거나, 다른 페이지 또는 다른 메모리 블록에 프로그램한다.
도 3은 도 2에 도시된 메모리 블록을 구체적으로 설명하기 위한 회로도이다.
도 3을 참조하면, 다수의 메모리 블록들 중 어느 하나의 메모리 블록이 도시되어있다. 메모리 블록은 다수의 스트링들(ST)을 포함하는데, 노말 데이터(normal data)가 저장되는 노말 메모리 셀들을 포함하는 스트링들은 노말 스트링 영역(normal string region; NSR)에 배치되고, 플래그 데이터(flag data)가 저장되는 플래그 메모리 셀들을 포함하는 스트링들은 플래그 스트링 영역(flag string region; FSR)에 배치된다. 노말 데이터는 LSB 데이터 및 MSB 데이터를 포함한다. 플래그 데이터는 메모리 시스템의 각종 동작에 대한 정보를 포함할 수 있다. 예를 들면, 플래그 데이터는 LSB 프로그램 완료 여부 정보, MSB 프로그램 완료 여부 정보, LSB 프로그램 완료시간 정보, MSB 프로그램 시작시간 정보, EW(erase/write) 싸이클링 횟수 정보, EW 싸이클링 임계횟수 정보 및 ECC(error correction codes) 가능한 셀들의 임계개수 정보 등을 포함할 수 있다.
스트링들(ST)은 서로 동일하게 구성되므로, 어느 하나의 스트링(ST)을 예를 들어 설명하도록 한다.
스트링(ST)은 서로 직렬로 연결된 드레인 셀렉트 트랜지스터(DST), 메모리 셀들(F0 내지 Fn) 및 소오스 셀렉트 트랜지스터(SST)를 포함한다. 드레인 셀렉트 트랜지스터(DST)의 드레인(drain)은 비트라인(BL0)에 연결되고, 소오스 셀렉트 트랜지스터(SST)의 소오스(source)는 소오스 라인(SL)에 연결된다. 서로 다른 스트링들(ST)에 포함된 드레인 셀렉트 트랜지스터들(DST)의 게이트들은 드레인 셀렉트 라인(DSL)에 연결되고, 메모리 셀들(F0 내지 Fn)의 게이트들은 워드라인들(WL0 내지 WLn)에 연결되고, 소오스 셀렉트 트랜지스터들(SST)의 게이트들은 소오스 셀렉트 라인(SSL)에 연결된다. 스트링들(ST)은 비트라인들(BL0 내지 BLi+j)에 각각 연결된다. 동일한 워드라인에 연결된 메모리 셀들의 그룹을 페이지(page; PG)라 한다. 프로그램 및 리드 동작은 페이지(PG) 단위로 수행된다.
멀티 레벨 셀(multi level cell: 이하, MLC)에서, 각각의 페이지(PG)는 LSB 페이지와 MSB 페이지를 포함한다. 따라서, 선택된 페이지(PG)의 프로그램 동작은 LSB 프로그램 동작이 먼저 수행된 후에 동일 페이지(PG)의 MSB 프로그램 동작이 수행되는 순서로 진행된다. 또한, 선택된 페이지(PG)의 리드 동작도 LSB 리드 동작이 먼저 수행된 후에 동일 페이지(PG)의 MSB 리드 동작이 수행되는 순서로 진행된다.
상술한 장치를 참조하여 본 발명에 따른 프로그램 방법을 설명하도록 한다.
도 4는 본 발명의 실시예에 따른 메모리 시스템의 프로그램 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 제어회로(도 2의 130)에 프로그램 명령신호가 인가되면, 프로그램 동작이 LSB 프로그램 동작인지 또는 MSB 프로그램 동작인지를 판단한다(S31). 'S31' 단계에서 프로그램 동작이 LSB 프로그램 동작이라고 판단되면, 선택된 페이지에 포함된 메모리 셀들은 소거 상태이므로, 선택된 페이지에 LSB 프로그램 동작을 수행한다(S32). 선택된 페이지의 LSB 프로그램 동작이 종료된 후, 선택된 페이지의 다음 프로그램 동작이 시작되면, 'S31' 단계에서 해당 프로그램 동작이 LSB 프로그램 동작인지 또는 MSB 프로그램 동작인지를 판단한다. 'S31' 단계에서 프로그램 동작이 MSB 프로그램 동작이라고 판단되면, LSB 프로그램 동작이 수행된 선택된 페이지의 위험도를 평가한다(S33).
위험도란, MSB 프로그램 동작을 수행한 이후에, MSB 데이터가 변형될 가능성을 의미한다. 도 5를 참조하여, 위험도 평가 방법을 더욱 구체적으로 설명하도록 한다.
도 5는 본 발명에 따른 위험도 평가 방법을 설명하기 위한 도면이다.
도5를 참조하면, 선택된 페이지의 메모리 셀들 중 문턱전압이 가변한 메모리 셀들의 개수를 토대로 하여 위험도를 평가할 수 있다.
구체적으로 설명하면, LSB 프로그램이 완료된 직후에는 메모리 셀들은 문턱전압 분포(61)를 유지한다. 하지만, 다양한 원인들에 의해 메모리 셀들의 문턱전압 분포가 점차 낮아질 수 있다(62, 63). 예를 들면, LSB 프로그램 동작이 완료된 후에 오랜 시간이 경과하거나, 선택된 페이지가 포함된 메모리 블록의 EW 싸이클링 횟수가 많으면 문턱전압이 점차 낮아질 수 있다.
LSB 프로그램이 완료된 선택된 페이지의 메모리 셀들을 노말 리드전압(Vr)보다 낮은 제1 평가전압(V1)과 제1 평가전압(V1)보다 낮은 제2 평가전압(V2)을 사용하여 각각 리드하고, 문턱전압이 제1 평가전압(V1)과 제2 평가전압(V2) 사이에 분포하는 메모리 셀들의 개수를 카운팅한다. 카운팅된 메모리 셀들의 개수와 미리 설정된 임계개수를 서로 비교한다. 임계개수는 테스트 동작을 수행하여 설정할 수 있는데, LSB 프로그램 동작이 수행된 메모리 셀들의 에러 정정이 가능한 최대 개수로 설정할 수 있다. 에러 정정은 ECC(error correction codes)를 사용하여 수행할 수 있다.
카운팅된 메모리 셀들의 개수가 임계개수 미만이면, 선택된 페이지는 위험도가 낮은 페이지, 즉 안전한 페이지로 평가한다. 만약, 카운팅된 메모리 셀들의 개수가 임계개수 이상이면, 선택된 페이지는 위험도가 높은 페이지, 즉 위험한 페이지로 평가한다.
다시, 도 4를 참조하면, 'S33' 단계에서 선택된 페이지의 위험도가 안전한 것으로 평가되면, 선택된 페이지에 MSB 프로그램 동작을 수행한다(S34). 만약, MSB 프로그램 동작이 LSB 프로그램 동작을 수행한 후에 연속적으로 수행되는 경우에는 위험도 평가 단계를 생략하고 선택된 페이지에 MSB 프로그램 동작을 수행할 수도 있다(S34).
'S33' 단계에서 선택된 페이지의 위험도가 위험한 것으로 평가되면, 다른 페이지 또는 다른 메모리 블록의 페이지에 해당 데이터를 저장하기 위한 프로그램 동작을 수행한다. 이때, 다른 페이지에 저장되는 데이터는 LSB 데이터가 되고, 해당 페이지에 저장된 데이터를 LSB 데이터로 맵핑한다. 즉, 위험도가 높은 것으로 판단된 페이지는 LSB 데이터만 저장된 상태로 유지되고, 저장하려 했던 MSB 데이터는 다른 페이지에 LSB 프로그램 동작을 수행하여 저장하고, 이때 저장된 데이터를 LSB 데이터로 맵핑한다. 따라서, 선택된 페이지가 위험한 것으로 평가되면, 다른 페이지 또는 다른 메모리 블록의 페이지에 새로운 LSB 프로그램 동작을 수행한다. 이어서, 해당 페이지에 새로운 MSB 프로그램 동작을 수행할 수 있다. 상술한 'S33' 단계와 ‘S35’ 단계에서, 위험도 평가 및 프로그램 동작은 다양한 방법으로 수행할 수 있는데, 이를 구체적으로 설명하면 다음과 같다.
도 6은 본 발명의 제1 실시예에 따른 위험도 평가 방법 및 프로그램 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 제1 실시예에서는 선택된 페이지의 LSB 프로그램 완료시간(T1)과 MSB 프로그램 시작시간(현재시간; T2) 간의 차이(T3)를 비교하여 위험도를 평가할 수 있다.
선택된 페이지가 제1 메모리 블록의 제1 페이지인 경우를 예를 들어 설명하면, 제1 페이지의 플래그 데이터 중에서 LSB 프로그램 완료시간(T1) 정보를 리드한다(41).
LSB 프로그램 완료시간(T1)과 현재시간(T2) 간의 시간차(T3)를 연산하고, 시간차(T3)와 미리 설정된 임계시간(Tr)을 서로 비교 연산한다(40). 임계시간(Tr)은 테스트 동작을 수행하여 LSB 데이터가 저장된 메모리 셀들의 문턱전압이 변하는 시간을 측정하되, 측정된 시간 중에서 문턱전압 마진(margin)을 고려하여 안전하다고 판단되는 최대 시간으로 설정할 수 있다. 예를 들면, LSB 데이터가 저장된 메모리 셀들의 문턱전압은 시간이 지남에 따라 낮아지는데, 테스트 동작시 LSB 리드전압과 전압차이를 고려하여 임의의 전압을 설정하고, 임의로 설정된 전압까지 문턱전압이 낮아지는 시간을 측정한다. 테스트 동작에서 측정된 시간을 임계시간(Tr)으로 설정하고, 상술한 시간차(T3)와 임계시간(Tr)을 서로 비교한다.
시간차(T3)가 임계시간(Tr) 미만이면, LSB 데이터가 저장된 메모리 셀들의 위험도가 위험한 상태가 아닌 것으로 판단하고(42), LSB 데이터가 저장된 제1 페이지에 MSB 프로그램 동작을 수행한다.
만약, 시간차(T3)가 임계시간(Tr) 이상이면, LSB 데이터가 저장된 메모리 셀들의 위험도가 위험한 상태인 것으로 판단하고(43), LSB 데이터가 저장된 제1 페이지가 아닌 다른 페이지(예컨대, 제n 페이지)에 새로운 LSB 프로그램 동작을 수행한다. 새로운 LSB 프로그램 동작은 제1 페이지의 MSB 프로그램 동작시 저장할 데이터를 제n 페이지의 LSB 데이터로 저장하는 동작을 의미한다. 새로운 LSB 프로그램 동작이 수행된 페이지에는 추후에 MSB 프로그램 동작이 수행될 수 있다. 이러한 경우, 제1 페이지에는 LSB 데이터만 저장된 것으로 맵핑하고, 제1 페이지에 저장하려 했던 MSB 데이터는 제n 페이지의 LSB 데이터로 맵핑한다.
상술한 바와 같이, 위험도가 높은 것으로 판단되는 페이지에는 MSB 프로그램 동작을 수행하지 않는 대신, MSB 데이터를 다른 페이지의 LSB 데이터로써 저장하는 프로그램 동작을 수행함으로써 제1 및 제n 페이지들에 저장된 데이터의 신뢰도를 개선할 수 있다.
도 7은 본 발명의 제2 실시예에 따른 위험도 평가 방법 및 프로그램 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 제2 실시예에서는 선택된 메모리 블록의 싸이클링 횟수(C1)에 따라 위험도를 평가할 수 있다.
제1 메모리 블록에 LSB 데이터가 저장된 경우를 예를 들어 설명하면, 제1 메모리 블록의 싸이클링 횟수에 대한 정보를 리드한다(51). 제1 메모리 블록의 싸이클링 횟수에 대한 정보는 제1 메모리 블록의 플래그 스트링 영역에 저장된 플래그 데이터로부터 얻을 수 있다. 싸이클링 횟수(C1)는 제1 메모리 블록에 저장된 EW(erase/write) 싸이클링(cycling) 횟수가 될 수 있다.
리드된 싸이클링 횟수(C1)와 임계횟수(Cr)를 서로 비교한다(50). 임계횟수(Cr)는 메모리 저장부를 테스트하여 메모리 블록의 리텐션(retention) 특성이 저하되는 시점을 임의로 설정할 수 있다. 예를 들면, 임계횟수(Cr)는 1000회로 설정될 수 있다. 리텐션 특성은 메모리 저장부에 따라 다를 수 있으므로, 임계횟수(Cr)도 메모리 저장부에 따라 다르게 설정될 수 있다.
싸이클링 횟수(C1)가 임계횟수(Cr) 미만이면, 제1 메모리 블록의 위험도가 위험한 상태가 아닌 것으로 판단하고(52), LSB 데이터가 저장된 제1 메모리 블록에 MSB 프로그램 동작을 수행한다.
만약, 싸이클링 횟수(C1)가 임계횟수(Cr) 이상이면, 제1 메모리 블록의 위험도가 위험한 상태인 것으로 판단하고(53), LSB 데이터가 저장된 제1 메모리 블록이 아닌 다른 메모리 블록(예컨대, 제k 메모리 블록)에 새로운 LSB 프로그램 동작을 수행한다. 새로운 LSB 프로그램 동작은 제1 메모리 블록의 MSB 프로그램 동작시 저장할 데이터를 제k 메모리 블록의 LSB 데이터로 저장하는 동작을 의미한다. 새로운 LSB 프로그램 동작이 수행된 메모리 블록에는 추후에 MSB 프로그램 동작이 수행될 수 있다. 이러한 경우, 제1 메모리 블록에는 LSB 데이터만 저장된 것으로 맵핑하고, 제1 메모리 블록에 저장하려 했던 MSB 데이터는 제n 메모리 블록의 LSB 데이터로 맵핑한다.
상술한 바와 같이, 위험도가 높은 것으로 판단되는 메모리 블록에 MSB 프로그램 동작을 수행하지 않는 대신, MSB 데이터를 다른 메모리 블록의 LSB 데이터로써 저장하는 프로그램 동작을 수행함으로써 제1 및 제k 메모리 블록들에 저장된 데이터의 신뢰도를 개선할 수 있다. 또한, 위험도 평가를 위하여 상술한 제1 및 제2 실시예들을 혼합할 수도 있다. 상술한 바와 같이, 문턱전압이 위험구간까지 낮아진 메모리 셀들의 개수가 많은 페이지 또는 메모리 블록에는 LSB 데이터만 저장하고, MSB 데이터는 다른 페이지 또는 다른 메모리 블록에 LSB 데이터로써 저장함으로써, 메모리 시스템의 신뢰도를 개선할 수 있다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시 예에서 구체적으로 기술되었으나, 상기한 실시 예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시 예가 가능함을 이해할 수 있을 것이다.
1000: 메모리 시스템 1100: 메모리 저장부
1200: 메모리 제어부 110: 메모리 셀 어레이
120: 주변회로들 130: 제어회로
21: 전압 생성 회로 22: 로우 디코더
23: 페이지 버퍼 24: 컬럼 디코더
25: 입출력 회로 NSR: 노말 스트링 영역
FSR: 플래그 스트링 영역

Claims (14)

  1. 데이터가 저장되는 복수의 메모리 셀들이 포함된 메모리 저장부;
    상기 메모리 셀들 중 LSB 데이터가 프로그램된 제1 메모리 셀들의 MSB 프로그램 동작이 시작되면, 상기 제1 메모리 셀들 중 문턱전압이 변한 메모리 셀들의 개수에 따라 상기 제1 메모리 셀들의 위험도를 평가하고,
    상기 위험도 평가 결과, 상기 제1 메모리 셀들이 안전한 것으로 평가되면, 상기 제1 메모리 셀들에 MSB 데이터를 프로그램하고,
    상기 위험도 평가 결과, 상기 제1 메모리 셀들이 안전하지 않은 것으로 평가되면, 상기 제1 메모리 셀들과 다른 제2 메모리 셀들에 상기 MSB 데이터를 LSB 데이터로써 프로그램하도록 상기 메모리 저장부를 제어하는 메모리 제어부를 포함하는 메모리 시스템.
  2. 제1항에 있어서, 상기 메모리 제어부는,
    상기 제1 메모리 셀들을 노말 리드전압보다 낮은 제1 평가전압과 제2 평가전압을 각각 사용하여 리드하도록 상기 메모리 저장부를 제어하고,
    상기 리드결과로부터 문턱전압이 상기 제1 평가전압과 상기 제2 평가전압 사이에 포함되는 메모리 셀들의 개수를 카운팅하고,
    상기 카운팅된 개수가 미리 설정된 임계개수 미만이면 상기 제1 메모리 셀들을 안전한 것으로 평가하고,
    상기 카운팅된 개수가 상기 임계개수 이상이면 상기 제1 메모리 셀들을 안전하지 않은 것으로 평가하는 메모리 시스템.
  3. 제1항에 있어서, 상기 메모리 제어부는,
    LSB 프로그램 동작이 수행된 상기 제1 메모리 셀들에 연속적으로 MSB 프로그램 동작을 수행하는 경우, 상기 제1 메모리 셀들의 위험도 평가를 생략하고, 상기 MSB 데이터를 상기 제1 메모리 셀들에 프로그램하도록 상기 주변회로들을 제어하는 메모리 시스템.
  4. 제1항에 있어서,
    상기 메모리 저장부는 플래그 데이터(flag data)가 저장되는 플래그 메모리 셀들을 더 포함하는 메모리 시스템.
  5. 제4항에 있어서,
    상기 플래그 데이터는 LSB 프로그램 완료 여부 정보, MSB 프로그램 완료 여부 정보, LSB 프로그램 완료시간 정보, MSB 프로그램 시작시간 정보, EW(erase/write) 싸이클링 횟수 정보, EW 싸이클링 임계횟수 정보 및 ECC(error correction codes) 가능한 셀들의 임계개수 정보를 포함하는 메모리 시스템.
  6. LSB 프로그램 동작이 수행된 제1 메모리 셀들을 노말 리드전압보다 낮은 제1 평가전압과 제2 평가전압을 각각 사용하여 리드하는 단계;
    상기 제1 메모리 셀들 중 문턱전압이 상기 제1 평가전압과 상기 제2 평가전압 사이에 분포하는 메모리 셀들의 개수를 카운팅하는 단계;
    상기 카운팅된 메모리 셀들의 개수가 미리 설정된 임계개수 미만이면, 상기 제1 메모리 셀들에 MSB 데이터를 프로그램하고,
    상기 카운팅된 메모리 셀들의 개수가 상기 임계개수 이상이면, 상기 제1 메모리 셀들과 다른 제2 메모리 셀들에 상기 MSB 데이터를 LSB 데이터로써 프로그램하는 단계를 포함하는 메모리 시스템의 동작 방법.
  7. 제6항에 있어서,
    상기 임계개수는 LSB 프로그램 동작이 수행된 메모리 셀들의 에러 정정이 가능한 최대 개수로 설정되는 메모리 시스템의 동작 방법.
  8. 제6항에 있어서,
    상기 프로그램 동작들은 페이지(page) 단위 또는 메모리 블록 단위로 수행되는 메모리 시스템의 동작 방법.
  9. 제1 페이지의 LSB 프로그램 동작 완료시간과 MSB 프로그램 동작 시작시간 간의 시간차를 연산하는 단계;
    상기 시간차와 미리 설정된 임계시간을 서로 비교하는 단계; 및
    상기 비교 결과, 상기 시간차가 상기 임계시간 미만이면, 상기 제1 페이지에 MSB 프로그램 동작을 수행하고,
    상기 비교 결과, 상기 시간차가 상기 임계시간 이상이면, 상기 제1 페이지와 다른 제2 페이지에 새로운 LSB 프로그램 동작 및 MSB 프로그램 동작을 수행하는 단계를 포함하는 메모리 시스템의 동작 방법.
  10. 제9항에 있어서,
    상기 제2 페이지에 수행되는 상기 LSB 프로그램 동작과 상기 MSB 프로그램 동작은 연속적으로 수행되는 메모리 시스템의 동작 방법.
  11. 제9항에 있어서,
    상기 임계시간은 테스트 동작 수행시 LSB 프로그램 동작이 수행된 메모리 셀들의 문턱전압이 변하는 시간을 측정하여 설정하는 메모리 시스템의 동작 방법.
  12. 제1 메모리 블록의 싸이클링 횟수에 대한 정보를 리드하는 단계;
    상기 싸이클링 횟수와 미리 설정된 임계횟수를 서로 비교하는 단계;
    상기 비교 결과, 상기 싸이클링 횟수가 상기 임계횟수 미만이면, 상기 제1 메모리 블록에 MSB 프로그램 동작을 수행하고,
    상기 비교 결과, 상기 싸이클링 횟수가 상기 임계횟수 이상이면, 상기 제1 메모리 블록과 다른 제2 메모리 블록에 새로운 LSB 프로그램 동작 및 MSB 프로그램 동작을 수행하는 단계를 포함하는 메모리 시스템의 동작 방법.
  13. 제12항에 있어서,
    상기 싸이클링 횟수는 상기 제1 메모리 블록의 EW(erase/write) 싸이클링 횟수인 메모리 시스템의 동작 방법.
  14. 제12항에 있어서,
    상기 임계횟수는 메모리 블록의 리텐션을 측정하기 위한 테스트 동작을 수행하고, 상기 테스트 동작에서 상기 리텐션 특성이 저하되는 시점의 싸이클링 횟수로 설정되는 메모리 시스템의 동작 방법.
KR1020130164279A 2013-12-26 2013-12-26 메모리 시스템 및 이의 동작 방법 KR20150075887A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130164279A KR20150075887A (ko) 2013-12-26 2013-12-26 메모리 시스템 및 이의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130164279A KR20150075887A (ko) 2013-12-26 2013-12-26 메모리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20150075887A true KR20150075887A (ko) 2015-07-06

Family

ID=53788931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130164279A KR20150075887A (ko) 2013-12-26 2013-12-26 메모리 시스템 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR20150075887A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180025491A (ko) * 2016-08-31 2018-03-09 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180025491A (ko) * 2016-08-31 2018-03-09 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Similar Documents

Publication Publication Date Title
US9064581B2 (en) Method of programming non-volatile memory device and non-volatile memory device using the same
KR101434403B1 (ko) 플래시 메모리 장치, 그것의 프로그램 방법, 그리고 그것을포함하는 메모리 시스템
KR101184814B1 (ko) 불휘발성 메모리 장치 및 이의 프로그램 방법
KR100967003B1 (ko) 불휘발성 메모리 소자 및 그 동작 방법
KR101214285B1 (ko) 메모리 시스템 및 이의 동작 방법
KR102192910B1 (ko) 반도체 장치, 메모리 시스템 및 이의 동작 방법
US9318191B2 (en) Programming nonvolatile memory device using program voltage with variable offset between programming state distributions
KR101468096B1 (ko) 불휘발성 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템
KR101669550B1 (ko) 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US10224102B2 (en) Semiconductor memory device and operation method thereof
US8520435B2 (en) Nonvolatile memory device and method of operating the same
JP2007122855A (ja) 信頼性を向上させることができるフラッシュメモリ装置
KR20160117713A (ko) 반도체 장치 및 그것의 동작 방법
KR20110125029A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
US11854623B2 (en) Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods
CN110648708B (zh) 半导体存储器装置、其操作方法以及存储器***
KR20140088386A (ko) 반도체 장치 및 이의 동작 방법
KR20170011324A (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20150007397A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR101644979B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
KR20210145073A (ko) 반도체 기억장치 및 판독 방법
CN107045888B (zh) 数据擦除方法
US9588700B2 (en) Semiconductor device and method for programming healing patterns on memory blocks
KR20150035223A (ko) 반도체 메모리 장치 및 이의 동작방법
KR20170092959A (ko) 반도체 메모리 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination