KR20160150553A - 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법 - Google Patents

적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법 Download PDF

Info

Publication number
KR20160150553A
KR20160150553A KR1020150088722A KR20150088722A KR20160150553A KR 20160150553 A KR20160150553 A KR 20160150553A KR 1020150088722 A KR1020150088722 A KR 1020150088722A KR 20150088722 A KR20150088722 A KR 20150088722A KR 20160150553 A KR20160150553 A KR 20160150553A
Authority
KR
South Korea
Prior art keywords
program
erase
memory
loops
memory device
Prior art date
Application number
KR1020150088722A
Other languages
English (en)
Other versions
KR102314135B1 (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 KR1020150088722A priority Critical patent/KR102314135B1/ko
Priority to US15/065,920 priority patent/US9941016B2/en
Publication of KR20160150553A publication Critical patent/KR20160150553A/ko
Application granted granted Critical
Publication of KR102314135B1 publication Critical patent/KR102314135B1/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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/3445Circuits or methods to verify correct erasure of nonvolatile memory cells
    • 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • 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/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법이 개시된다. 본 발명의 기술적 사상에 따른 메모리 장치의 동작방법은, 프로그램/소거 사이클을 검출하는 단계와, 상기 검출 결과에 따라, 프로그램 루프 횟수에 관련된 설정값을 변경하는 단계와, 기록 커맨드 수신에 따라, 하나 이상의 프로그램 루프를 수행함에 의해 데이터를 프로그램하는 단계 및 상기 변경된 설정값에 기반하여 프로그램 패스/페일 여부를 판정하는 단계를 구비하는 것을 특징으로 한다.

Description

적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법{Flash memory device performing adaptive loop, Memory system and Operating method thereof}
본 발명의 기술적 사상은 플래시 메모리 장치에 관한 것으로, 자세하게는 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법에 관한 것이다.
반도체 메모리 장치로서 불휘발성 메모리 장치는 데이터를 불휘발성하게 저장하는 다수의 메모리 셀들을 포함한다. 불휘발성 메모리 장치의 일 예로서, 플래시 메모리 장치는 휴대폰, 디지털 카메라, 휴대용 정보 단말기(PDA), 이동식 컴퓨터 장치, 고정식 컴퓨터 장치 및 기타 장치에서 사용될 수 있다.
플래시 메모리 장치는 진행성 불량에 의해 데이터 신뢰성이 저하될 가능성이 있다. 일 예로서, 플래시 메모리 장치의 구조상 워드라인들 사이, 워드라인과 채널, 워드라인과 공통 소스 라인 등 다양한 형태로 브릿지가 발생될 수 있으며, 브릿지 발생에 따라 플래시 메모리 장치에는 진행성 불량이 발생될 수 있다. 이에 따라, 진행성 불량에 대응하여 데이터의 신뢰성을 확보할 필요가 있다.
본 발명의 기술적 사상은, 진행성 대응하여 데이터의 신뢰성을 향상할 수 있는 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법을 제공하는데 있다.
본 발명의 기술적 사상에 따른 메모리 장치의 동작방법은, 프로그램/소거 사이클을 검출하는 단계와, 상기 검출 결과에 따라, 프로그램 루프 횟수에 관련된 설정값을 변경하는 단계와, 기록 커맨드 수신에 따라, 하나 이상의 프로그램 루프를 수행함에 의해 데이터를 프로그램하는 단계 및 상기 변경된 설정값에 기반하여 프로그램 패스/페일 여부를 판정하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 메모리 시스템의 동작방법에 있어서, 상기 메모리 시스템은 메모리 콘트롤러 및 메모리 장치를 포함하고, 상기 메모리 장치의 프로그램/소거 사이클을 검출하는 단계와, 상기 검출 결과에 따라, 프로그램 동작 및/또는 소거 동작의 루프 횟수의 최대값을 변경하는 단계와, 상기 변경된 루프 횟수의 최대값에 기반하여 메모리 동작의 패스/페일 여부를 판정하는 단계 및 상기 판정 결과에 따라, 상기 메모리 동작이 요청된 셀 영역을 배드 영역으로 관리하는 단계를 구비하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 플래시 메모리 장치, 메모리 시스템 및 그 동작방법은, 프로그램/소거 루프 횟수에 관련된 설정값을 변경함으로써, 진행성 불량이 발생될 가능성이 높은 메모리 셀 영역을 미리 관리할 수 있는 효과가 있다.
또한, 본 발명의 일 실시예에 따른 플래시 메모리 장치, 메모리 시스템 및 그 동작방법은, 프로그램/소거 사이클에 따라 프로그램/소거 루프 횟수에 관련된 설정값이 변경되므로, 프로그램/소거 동작을 효율적으로 수행할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템(10)을 나타내는 블록도이다.
도 2a,b는 도 1의 메모리 콘트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 도 1의 메모리 장치의 일 구현 예를 나타내는 블록도이다.
도 4는 도 1의 메모리 장치에 포함된 메모리 셀 어레이의 구현 예를 나타내는 블록도이다.
도 5는 도 4의 블록들 중 하나인 제1 블록의 일 예를 나타내는 사시도이다.
도 6은 도 5의 제1 블록(BLK1)의 등가 회로를 나타내는 회로도이다.
도 7 및 도 8은 ISPP 방식에 따른 프로그램 루프 및 ISPE 방식에 따른 소거 루프의 일 예를 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 프로그램/소거 횟수를 변경하는 일 예를 나타내는 블록도이다.
도 10 및 도 11은 프로그램/소거 사이클에 따라 루프 횟수의 최대값이 변경되는 예를 나타내는 그래프이다.
도 12는 본 발명의 실시예에 따른 메모리 시스템의 동작 전반의 개요를 나타내는 도면이다.
도 13은 본 발명의 일 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 14는 본 발명의 일 실시예에 따른 메모리 콘트롤러의 동작방법을 나타내는 플로우차트이다.
도 15a,b는 본 발명의 실시예에 따라 루프 횟수의 최대값/최소값을 변경하는 일 예를 나타내는 그래프이다.
도 16은 본 발명의 다른 실시예에 따른 메모리 장치의 구현 예를 나타내는 블록도이다.
도 17은 본 발명의 또 다른 실시예에 따른 메모리 장치의 구현 예를 나타내는 블록도이다.
도 18a,b은 본 발명의 또 다른 실시예에 따른 메모리 장치 및 그 동작 예를 나타내는 그래프 및 블록도이다.
도 19a,b,c는 프로그램/소거 루프 횟수의 최대값/최소값을 다양하게 설정하는 예를 나타내는 도면이다.
도 20은 본 발명의 실시예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 나타내는 블록도이다.
도 21은 본 발명의 실시예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 22는 본 발명의 실시예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템(10)을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 콘트롤러(100) 및 메모리 장치(200)를 포함할 수 있다. 메모리 콘트롤러(100)는 메모리 장치(200)에 대한 제어 동작을 수행하며, 일예로서 메모리 콘트롤러(100)는 메모리 장치(200)에 어드레스(ADD) 및 커맨드(CMD)를 제공함으로써, 메모리 장치(200)에 대한 기록(또는 프로그램), 독출 및 소거 동작을 제어할 수 있다. 또한, 프로그램 동작을 위한 데이터(DATA)와 독출된 데이터(DATA)가 메모리 콘트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
메모리 장치(200)는 메모리 셀 어레이(210), 제어 로직(220) 및 사이클 검출부(230)를 포함할 수 있다. 메모리 셀 어레이(210)는 복수의 워드 라인들과 복수의 비트 라인들이 교차하는 영역들에 배치되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(210)는 데이터를 불휘발성하게 저장하는 불휘발성 메모리 셀들을 포함할 수 있으며, 불휘발성 메모리 셀들로서, 메모리 셀 어레이(210)는 낸드(NAND) 플래시 메모리 셀 어레이 또는 노어(NOR) 플래시 메모리 셀 어레이 등의 플래시 메모리 셀들을 포함할 수 있다. 이하에서는, 메모리 셀 어레이(210)가 플래시 메모리 셀들을 포함하고, 이에 따라 메모리 장치(200)가 플래시 메모리 장치임을 가정하여 본 발명의 실시예들을 상술하기로 한다.
메모리 콘트롤러(100)는 프로세싱 유닛(110) 및 플래시 변환 레이어(FTL, 121)를 포함할 수 있다. FTL(121)은 플래시 메모리 장치의 기록, 독출 및 소거 동작 등에 대한 관리를 수행하는 시스템 소프트웨어(또는, 펌웨어)를 포함하고, 동작 메모리(미도시)에 로딩되어 프로세싱 유닛(110)에 의해 구동될 수 있다.
프로세싱 유닛(110)은 메모리 콘트롤러(100)의 전반적인 동작을 제어할 수 있다. FTL(121)은 호스트로부터의 데이터 억세스 요청에 따라, 논리적 어드레스를 물리적 어드레스로 변환하여 메모리 장치(200)로 제공할 수 있다. 또한, FTL(121)은 메모리 셀 어레이(210)에 구비되는 다양한 셀 영역들(예컨대, 칩 단위, 블록 단위 및 페이지 단위 등)에 대한 관리 동작을 수행하며, 예컨대 진행성 불량 등에 의해 그 특성이 저하된 셀 영역을 배드 영역으로 처리함으로써, 데이터가 특성이 저하된 셀 영역에 기록되는 것을 방지한다.
한편, 메모리 셀 어레이(210)는 다양한 형태로 구현될 수 있으며, 예컨대 메모리 셀 어레이(210)는 3차원(또는 수직형, Vertical) NAND(VNAND) 메모리 셀들을 포함할 수 있다. 또한, 메모리 장치(200)가 다수 개의 플래시 메모리 칩들을 포함하는 경우, 메모리 셀 어레이(210)는 다수 개의 플래시 메모리 칩들에 구비되는 메모리 셀들을 포함하는 것으로 정의될 수 있다. 또한, 메모리 셀 어레이(210)는 다수 개의 블록들을 포함할 수 있으며, 상기 블록들 각각은 다수 개의 페이지들을 포함할 수 있다. 일 예로서, 블록은 메모리 장치(200)의 소거 단위일 수 있으며, 페이지는 메모리 장치(200)의 프로그램/독출 단위일 수 있다.
메모리 장치(200)는 메모리 콘트롤러(100)의 제어에 따라 프로그램 및 소거 동작을 수행할 수 있다. 메모리 콘트롤러(100)로부터의 기록 커맨드에 따라 메모리 장치(200)는 데이터 프로그램 동작을 수행한다. 데이터 프로그램 동작은 다수 회의 프로그램 루프들에 의해 수행될 수 있다. 각각의 프로그램 루프에서 프로그램 전압은 그 레벨이 상이할 수 있으며, 일 예로서 계단형 스텝 펄스 프로그램(Incremental Step Pulse Program) 방식에 따라 프로그램 루프가 증가할수록 프로그램 전압은 점차 상승할 수 있다.
한편, 메모리 콘트롤러(100)로부터의 소거 커맨드에 따라, 메모리 장치(200)는 블록 단위로 소거 동작을 수행할 수 있다. 데이터 소거 동작은 다수 회의 소거 루프들에 의해 수행될 수 있다. 각각의 소거 루프에서 소거 전압은 그 레벨이 상이할 수 있으며, 일 예로서 계단형 스텝 펄스 소거(Incremental Step Pulse Erase) 방식에 따라 소거 루프가 증가할수록 소거 전압은 점차 상승할 수 있다.
본 발명의 실시예에 따른 메모리 시스템(10)에서, 메모리 장치(200)는 프로그램/소거 사이클(P/E Cycle)을 검출하고, 그 검출 결과에 따라 프로그램 및 소거 동작 등에 관계된 설정값을 변경할 수 있다. 상기 프로그램/소거 사이클을 검출하는 방법은 다양하게 구현될 수 있으며, 예컨대 메모리 콘트롤러(100)로부터 기록 커맨드나 소거 커맨드의 수신에 응답하여 카운팅 동작을 수행함으로써 사이클이 검출될 수 있다. 이하에서, 본원발명의 실시예에 따라 프로그램/소거 사이클을 검출하는 동작은, 기록 커맨드 수신에 응답하여 카운팅 동작을 수행하거나 소거 커맨드 수신에 응답하여 카운팅 동작을 수행하거나, 기록/소거 커맨드 수신에 응답하여 카운팅 동작을 수행하는 등 다양한 방식을 포함하는 것으로 정의된다.
설정값을 변경하는 일 예로서, 프로그램/소거 사이클을 검출한 결과에 따라 프로그램 루프의 횟수를 변경할 수 있으며, 예컨대 프로그램 루프 횟수의 최대값 및/또는 최소값을 변경할 수 있다. 또한, 프로그램/소거 사이클을 검출한 결과에 따라 소거 루프의 횟수를 변경할 수 있으며, 예컨대 소거 루프 횟수의 최대값 및/또는 최소값을 변경할 수 있다.
프로그램 루프 횟수에 관련된 설정값이 변경되면, 메모리 콘트롤러(100)로부터의 기록 커맨드에 응답하여 프로그램 동작을 수행함에 있어서, 상기 변경된 설정값에 따라 프로그램 루프가 수행된다. 예컨대, 프로그램 루프 횟수의 최대값이 M 회로 설정된 경우, 메모리 장치(200)는 데이터 프로그램 및 검증을 포함하는 프로그램 루프를 M 회 이하로 수행한다. 만약, M 회 이하의 프로그램 루프를 수행함에 의해 데이터가 모두 정상적으로 기록된 것으로 판단된 경우에는, 해당 프로그램 동작을 패스로 판정할 수 있다. 반면에, M 회의 프로그램 루프를 수행한 후에도 데이터가 정상적으로 기록되지 않은 경우에는, 더 이상의 프로그램 루프를 진행하지 않고 해당 프로그램 동작을 페일로 판정할 수 있다.
한편, 상기한 프로그램 동작과 유사하게, 소거 동작 또한 변경된 설정값에 기반하여 수행될 수 있다. 예컨대, 메모리 콘트롤러(100)로부터의 소거 커맨드에 응답하여, 소거 요청된 블록에 대해 소거 루프가 수행될 수 있다. 소거 루프 횟수의 최대값이 N 회로 설정된 경우, 메모리 장치(200)는 데이터 소거 및 검증을 포함하는 소거 루프를 수행한다. 만약, N 회 이하의 소거 루프를 수행함에 의해 데이터가 모두 정상적으로 소거된 것으로 판단된 경우에는, 해당 소거 동작을 패스로 판정할 수 있다. 반면에, N 회의 소거 루프를 수행한 후에도 데이터가 정상적으로 소거되지 않은 경우에는, 더 이상의 소거 루프를 진행하지 않고 해당 소거 동작을 페일로 판정할 수 있다.
메모리 시스템(10)은 상기 프로그램 동작 및 소거 동작이 페일로 판정된 경우, 해당 셀 영역에 대한 관리 동작을 수행할 수 있다. 예컨대, 메모리 장치(200)는 프로그램/소거 동작을 수행한 결과에 기반하여 패스 및 페일 여부를 나타내는 패스/페일 정보(P/F)를 메모리 콘트롤러(100)로 제공할 수 있다. 메모리 콘트롤러(100)는 기록 요청된 셀 영역(예컨대, 페이지)에 대해 프로그램 페일이 발생된 경우, 기록 요청된 페이지 이외의 다른 페이지에 데이터가 기록되도록 메모리 장치(200)를 제어할 수 있다. 일 예로서, FTL(121)은 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보를 변환함에 의해, 호스트(미도시)로부터의 데이터를 다른 페이지에 기록할 수 있다.
또는, 메모리 콘트롤러(100)는 프로그램 페일이 발생된 페이지를 포함하는 블록(예컨대, 제1 블록)을 배드 블록으로 처리할 수 있다. 만약, 제1 블록 내에 유효한 데이터가 존재하는 경우에는, 상기 유효한 데이터를 다른 블록(예컨대, 제2 블록)으로 이동시킴과 함께, 기록 요청된 데이터를 상기 제2 블록에 기록할 수 있다.
한편, 소거 동작이 요청된 셀 영역(예컨대, 블록)에 대해 소거 페일이 발생된 경우, 메모리 콘트롤러(100)는 해당 블록을 배드 블록으로 관리할 수 있다. 일 예로서, FTL(121)은 소거 페일된 블록의 정보를 저장하고, 상기 소거 페일된 블록에 대한 데이터 기록을 금지할 수 있다.
플래시 메모리 셀들은 프로그램/소거 사이클이 증가할수록 그 특성이 변동될 수 있으며, 예컨대 프로그램 패스 및 소거 패스로 판정되는 루프 횟수가 통계적으로 변동될 수 있다. 상기와 같은 본 발명의 실시예에 따르면, 플래시 메모리 셀들의 특성 변동에 적응하여 프로그램/소거 루프 횟수에 관련된 설정값을 변동하므로, 플래시 메모리 셀들에 최적화된 루프로서 프로그램 및 소거 동작이 수행되도록 한다. 또한, 진행성 불량 등으로 인해 신뢰성이 저하될 가능성이 큰 셀 영역을 미리 배드 영역으로 처리하기 때문에, 상기 신뢰성이 저하될 수 있는 셀 영역에 데이터를 기록함으로써 발생될 수 있는 데이터 유실을 방지할 수 있다.
이하, 본 발명의 기술적 사상에 따른 동작들을 설명하면 다음과 같다. 설명의 편의상, 프로그램/소거 루프 횟수를 변경함에 있어서 프로그램/소거 루프 횟수의 최대값이 주로 설명될 것이나, 본 발명의 실시예는 프로그램/소거 루프 횟수의 최소값이 변경되어도 무방하다. 또한, 프로그램/소거 루프 횟수의 최대값 및 최소값이 모두 변경되어도 무방하다. 또한, 설명의 편의상 루프 횟수를 변경한다 함은, 프로그램 루프 횟수를 변경하거나 소거 루프 횟수를 변경하는 개념으로 정의될 수 있다. 또한, 프로그램 루프 횟수 및 소거 루프 횟수를 모두 변경하는 개념으로 정의되어도 무방하다.
도 2a,b는 도 1의 메모리 콘트롤러의 일 구현 예를 나타내는 블록도이다.
도 2a,b를 참조하면, 메모리 콘트롤러(100)는 프로세싱 유닛(processing unit, 110), 동작 메모리(working memory, 120), 설정 관리부(130), 에러 정정부(140), 호스트 인터페이스(150) 및 메모리 인터페이스(160)를 포함할 수 있다. FTL(121)은 동작 메모리(120)에 로딩될 수 있다. 전술한 바와 같이 FTL(121)은 펌웨어를 포함할 수 있으며, 상기 펌웨어에 의해 구현되는 기능에 따라, FTL(121)은 웨어-레벨링 모듈(122), 배드 블록 관리 모듈(123), 가비지 콜렉션 모듈(124) 및 어드레스 맵핑 테이블(125)을 포함할 수 있다.
도 2a,b에 도시되지는 않았으나, 메모리 콘트롤러(100)는 이외에도 다양한 구성들을 더 포함할 수 있으며, 예컨대 메모리 시스템이 채용된 장치의 초기 부팅에 필요한 코드 데이터(code)를 저장하는 ROM(read only memory)이나, 버퍼 메모리 장치를 제어하는 버퍼 메모리 콘트롤러 등을 더 포함할 수 있다. 또한, 메모리 콘트롤러(100)는 호스트로부터의 요청에 따른 메모리 동작을 제어하기 위한 커맨드(CMD)를 생성하는 커맨드 생성 모듈(미도시)을 더 포함할 수 있다.
프로세싱 유닛(110)은 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 메모리 콘트롤러(100)의 전반적인 동작을 제어할 수 있다. 프로세싱 유닛(110)은 메모리 콘트롤러(100)를 제어하기 위하여 동작 메모리(120)에 로딩된 펌웨어(firmware)를 구동할 수 있다. 메모리 콘트롤러(100)는 외부의 호스트와 다양한 표준 인터페이스들을 통해 통신할 수 있으며, 호스트 인터페이스(150)는 호스트와 메모리 콘트롤러(100) 사이의 인터페이스를 제공한다. 상기 표준 인터페이스는, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), 유니버설 플래시 기억장치(UFS), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함할 수 있다.
한편, 메모리 인터페이스(150)는 메모리 콘트롤러(100)와 메모리 장치(200) 사이의 인터페이스를 제공할 수 있으며, 예컨대 기록 데이터 및 독출 데이터가 메모리 인터페이스(150)를 통해 메모리 장치(200)와 송수신될 수 있다. 또한, 메모리 인터페이스(150)는 커맨드(CMD) 및 어드레스(ADD)를 메모리 장치(200)로 제공할 수 있으며, 또한 메모리 장치(200)로부터 각종 정보들을 수신하여 이를 메모리 콘트롤러(100) 내부로 제공할 수 있다.
한편, 동작 메모리(120)에는 메모리 콘트롤러(100)를 제어하기 위한 펌웨어와, 펌웨어 구동에 필요한 메타 데이터 등이 저장될 수 있다. 동작 메모리(120)는 각종 메모리로 구현될 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나로 구현될 수 있다.
웨어-레벨링 모듈(122)은 메모리 장치(200)의 메모리 셀들에 대한 마모도(wear-level)를 관리한다. 메모리 셀들은 기록 및 소거 동작 등에 의해 노화(aging)될 수 있으며, 노화된 메모리 셀(또는, 마모된 메모리 셀)은 결함을 야기할 수 있다. 웨어-레벨링 모듈(122)은 메모리 셀 어레이에 대한 프로그램 및 소거 사이클을 관리함으로써 특정 셀 영역이 다른 셀 영역보다 빨리 마모되는 것을 방지한다. 일 예로서, 웨어-레벨링 모듈(122)은 메모리 셀 어레이의 셀 영역들에 대해 균등하게 프로그램 및 소거 횟수가 부여되도록 어드레스 맵핑 테이블(125)을 관리할 수 있다.
한편, 배드 블록 관리 모듈(123)은 메모리 장치(200)에 구비되는 다수의 블록들에 대해 결함이 발생된 블록을 관리한다. 예컨대, 전술한 바와 같이, 프로그램/소거 사이클이 증가함에 따라 프로그램/소거 루프 횟수의 설정값이 변경될 수 있으며, 상기 변경된 설정값에 기반하여 프로그램 페일 또는 소거 페일이 발생된 블록을 배드 블록으로 처리할 수 있다. 배드 블록 관리 모듈(123)은 배드 블록으로 처리된 블록에 데이터가 기록되는 것이 차단되도록 어드레스 맵핑 테이블(125)을 관리할 수 있다.
한편, 가비지 콜렉션 모듈(124)은 조각난 데이터들이 저장된 블록들을 정리할 수 있다. 예컨대, 플래시 메모리 장치에서 프로그램 단위보다 소거 단위가 더 크게 설정되며, 프로그램 및 소거 동작이 반복되고 난 후에는 임의의 프리 블록을 이용하여 물리적으로 상이한 위치에 분산된 연속된 데이터들을 동일한 어드레스 영역으로 모으는 작업이 수행될 수 있다. 상기와 같은 가비지 콜렉션 모듈(124)의 동작에 따라 프리 블록이 생성될 수 있다.
한편, 어드레스 맵핑 테이블(125)은 호스트로부터의 논리적 어드레스와, 이에 대응하여 실제 데이터가 억세스될 물리적 위치를 나타내는 물리적 어드레스 사이의 맵핑 정보를 저장할 수 있다. 맵핑 정보를 참조함에 의해, 호스트로부터 제공된 논리적 어드레스는 실제 억세스될 메모리 셀의 물리적 위치를 나타내는 물리적 어드레스로 변환될 수 있다. 본 발명의 실시예에 따라, 프로그램 페일 처리된 데이터는 메모리 장치(200)의 다른 셀 영역(예컨대, 페이지)에 저장될 수 있으며, 이 경우 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보가 변경될 수 있다. 변경된 맵핑 정보는 어드레스 맵핑 테이블(125)에 업데이트 될 수 있다.
또한, 어드레스 맵핑 테이블(125)에서, 전술한 각종 기능 블록들의 관리 결과에 따라 맵핑 정보가 변경될 수 있다. 예컨대, 마모도가 증가된 메모리 셀들이나 배드 블록 처리된 메모리 셀들에 기록된 데이터들이 정상 메모리 셀들로 이동되고, 이에 대응하여 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보가 변경될 수 있다. 또한, 가비지 콜렉션 동작에 의해 데이터가 이동되고 난 후 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보가 변경될 수 있다.
한편, 설정 관리부(130)는 메모리 시스템(10)의 초기 동작시에 메모리 장치(200)의 메모리 동작에 관련된 각종 설정을 관리할 수 있다. 일 예로서, 메모리 장치(200) 내부에서 수행된 사이클 검출 결과는 메모리 콘트롤러(100)로 제공될 수 있으며, 설정 관리부(130)는 상기 사이클 검출 결과에 따라 메모리 장치(200)의 프로그램/소거 루프 횟수에 관련된 설정을 수행할 수 있다. 예컨대, 사이클 검출 결과는 하나 이상의 기준 값들과 비교되고, 그 비교 결과에 따라 프로그램/소거 루프 횟수에 관련된 설정값을 변경할 필요가 있는지 판단된다. 설정 관리부(130)는, 상기 판단 결과에 기반하여 프로그램/소거 루프 횟수의 최대값/최소값이 변경되도록 메모리 장치(200)를 관리할 수 있다. 한편, 에러 정정부(140)는 메모리 장치(200)로부터 제공된 데이터(DATA)에 대한 에러 검출 및 정정 동작을 수행할 수 있다. 다른 실시예로서, 상기 에러 검출 및 정정 기능은 메모리 장치(200)에 구비되어도 무방하다.
도 3은 도 1의 메모리 장치의 일 구현 예를 나타내는 블록도이다. 도 3에 도시된 바와 같이, 메모리 장치(200)는 메모리 셀 어레이(210), 제어 로직(220) 및 사이클 검출부(2300)를 포함할 수 있다. 또한, 메모리 장치(200)는 로우 디코더(240), 전압 발생기(250), 페이지 버퍼(260), 입출력 회로(270), 루프 정보 발생부(280) 및 패스/페일 정보 발생부(290) 더 포함할 수 있다.
메모리 셀 어레이(210)는 하나 이상의 스트링 선택 라인(SSL), 복수 개의 워드 라인들(WLs, 노멀 워드라인 및 더미 워드라인을 포함) 및 하나 이상의 접지 선택 라인(GSL)에 연결될 수 있으며, 또한 복수 개의 비트 라인들(BLs)에 연결될 수 있다. 전압 발생부(250)는 하나 이상의 워드라인 전압들(VWL)을 발생할 수 있으며, 상기 워드라인 전압들(VWL)은 어드레스 디코더(240)로 제공될 수 있다. 또한, 기록될 데이터(DATA)는 입출력 회로(270)를 통해 제공되어 페이지 버퍼(260)에 일시 저장될 수 있다. 또한 독출된 데이터(DATA)는 페이지 버퍼(260) 및 입출력 회로(270)를 통해 외부로 제공될 수 있다. 제어 로직(220)은 메모리 동작과 관련된 각종 제어 신호들을 어드레스 디코더(240), 전압 발생부(250) 및 기타 각종 기능 블록들로 제공할 수 있다.
전술한 실시예에 따라, 메모리 장치(200)는 프로그램/소거 사이클을 검출하고, 그 검출 결과에 따라 프로그램/소거 루프 횟수에 관련된 설정값을 변경할 수 있다. 사이클 검출부(2300)는 수신된 커맨드(CMD)가 기록 요청이거나 소거 요청에 해당할 때, 카운팅 동작에 기반하여 프로그램/소거 사이클을 검출하고 그 검출 결과를 제공할 수 있다.
제어 로직(220)은 상기 사이클 검출 결과에 기반하여 프로그램/소거 루프 횟수에 관련된 설정값을 변경할 수 있다. 일 실시예로서, 제어 로직(220)은 루프 횟수에 관련된 설정값을 저장하는 레지스터(Reg)를 포함할 수 있다. 상기 레지스터에는 프로그램/소거 동작시 수행될 루프 횟수의 최대값 및 최소값의 정보가 저장될 수 있다. 제어 로직(220)은 레지스터(Reg)에 저장된 정보에 기반하여, 메모리 장치(200)의 프로그램 동작 및 소거 동작을 수행할 수 있다.
루프 정보 발생부(280)는 프로그램/소거 루프 횟수에 관련된 각종 정보를 저장할 수 있다. 일 실시예로서, 루프 정보 발생부(280)는 프로그램/소거 사이클이 증가함에 따라 프로그램/소거 루프 횟수의 최대값 및 최소값에 관련된 정보를 저장하는 룩업 테이블(Look-up Table, LUT)을 포함할 수 있다. 제어 로직(220)은 사이클 검출부(2300)로부터의 검출 결과 및 루프 정보 발생부(280)의 정보를 이용하여 프로그램/소거 루프 횟수에 관련된 설정값을 변경하고, 변경된 설정값을 레지스터에 저장할 수 있다.
다른 실시예로서, 루프 정보 발생부(280)는 다양한 방식으로 구현될 수 있으며, 예컨대 루프 정보 발생부(280)는 소정의 연산 동작을 수행함에 의해 프로그램/소거 루프 횟수의 최대값 및 최소값을 산출할 수 있다. 제어 로직(220)은 사이클 검출부(2300)로부터의 검출 결과를 루프 정보 발생부(280)로 제공하고, 루프 정보 발생부(280)는 상기 검출 결과를 소정의 연산식에 적용하여 프로그램/소거 루프 횟수의 최대값 및 최소값을 산출할 수 있다. 제어 로직(220)은 산출된 프로그램/소거 루프 횟수의 설정 값을 저장하고, 이후 기록 및 소거 동작시 변경된 설정값에 기반하여 프로그램 동작 및 소거 동작을 수행할 수 있다.
한편, 제어 로직(220)은 변경된 설정값에 기반하여 프로그램/소거 동작을 수행하고, 그 수행 결과에 기반하여 프로그램 패스/페일과 소거 패스/페일 여부를 판정할 수 있다. 판정 결과는 패스/페일 정보 발생부(290)로 제공될 수 있으며, 패스/페일 정보 발생부(290)는 이에 기반하여 프로그램 패스/페일이나 소거 패스/페일 여부를 나타내는 정보(P/F)를 제공할 수 있다.
본 발명의 실시예에 따라, 프로그램/소거 사이클을 검출한 결과에 따라 프로그램/소거 루프 횟수의 설정값을 변경하는 구체적인 예를 설명하면 다음과 같다. 설명의 편의상 프로그램 사이클을 검출하여 프로그램 루프 횟수의 최대값을 변경하는 예가 설명된다.
플래시 메모리 장치에서, 메모리 셀들은 그 물리적인 특성상 프로그램 사이클이 증가하면 1 회의 프로그램 루프에 의해 문턱전압의 변동 량이 커지는 특성을 갖게 된다. 일 예로서, 프로그램 사이클이 3k에 해당하는 상태에서 일정한 프로그램 전압을 이용하여 데이터를 프로그램 하는 경우, 프로그램 사이클이 1k에 해당하는 상태에 비하여 문턱전압의 상승 량이 커지게 된다. 예컨대, 프로그램 사이클이 3k에 해당하는 상태에서 대부분의 메모리 셀들은 4 회 미만의 프로그램 루프를 통해 데이터가 정상적으로 기록되는 것으로 가정할 때, 프로그램 사이클이 1k에 해당하는 상태에서 메모리 셀들에 정상적으로 데이터를 기록하기 위해서는 5 회 이상의 프로그램 루프를 수행할 필요가 있다.
이를 다른 관점에서 설명하면, 프로그램 사이클이 3k에 해당하는 경우, 프로그램 루프를 4 회 수행하였음에도 불구하고 하나 이상의 메모리 셀에 데이터가 정상적으로 기록되지 않은 경우에는, 해당 셀 영역은 특성이 상대적으로 낮은 영역에 해당하며, 이후 진행성 불량으로 인해 상기 셀 영역의 데이터가 유실될 가능성이 높다. 이에 따라, 프로그램 루프를 4 회 수행한 이후에도 데이터가 정상적으로 기록되지 않은 경우에는 해당 셀 영역을 배드 영역으로 처리할 수 있다.
반면에, 프로그램 사이클이 1k에 해당하는 경우, 각각의 프로그램 루프를 통한 문턱전압의 상승량이 상대적으로 작으므로, 프로그램 루프를 4 회 수행한 상태에서 데이터가 정상적으로 기록되지 않더라도, 해당 메모리 셀의 특성이 낮다고 판단될 필요가 없다. 이에 따라, 프로그램 루프를 더 반복함으로써 프로그램 동작이 완료될 수 있다. 만약, 프로그램 사이클이 1k에 대응하여 프로그램 루프의 최대값이 7 회로 설정된 경우, 프로그램 루프를 7 회 수행한 이후에도 데이터가 정상적으로 기록되지 않은 경우에는 해당 셀 영역을 배드 영역으로 처리할 수 있다.
상기와 같은 특성을 고려하여, 프로그램 사이클이 증가할수록 프로그램 루프 횟수의 최대값이 감소되도록 설정값이 변경될 수 있다. 제어 로직(220)은 사이클 검출부(2300)로부터의 검출 결과에 따라 현재 프로그램 사이클을 판단할 수 있으며, 루프 정보 발생부(280)에 저장된 정보에 기반하여 현재 프로그램 사이클에 대응하는 프로그램 루프 횟수의 최대값을 변경할 수 있다.
한편, 소거 동작과 관련하여, 플래시 메모리 장치의 메모리 셀들은 그 물리적인 특성상 소거 사이클이 증가하면 1 회의 소거 루프에 의해 문턱전압의 변동량이 작아지는 특성을 갖게 된다. 이에 따라, 소거 사이클이 증가할수록 소거 루프 횟수의 최대값이 증가되도록 설정값이 변경될 수 있다.
도 4는 도 1의 메모리 장치에 포함된 메모리 셀 어레이의 구현 예를 나타내는 블록도이다. 도 4에 도시된 바와 같이, 메모리 셀 어레이(210)는 3차원(또는 수직형, Vertical) NAND(VNAND) 메모리 셀들을 포함할 수 있다.
도 4를 참조하면, 메모리 셀 어레이(210)는 복수의 블록들(BLK1 ~ BLKz)을 포함한다. 각 블록은 3차원 구조(또는 수직 구조)를 가질 수 있다. 구체적으로, 블록들(BLK1 ~ BLKz) 각각은 제1 내지 제3 방향들을 따라 신장된 구조물들을 포함한다. 예를 들면, 각각의 블록은 제2 방향을 따라 신장된 복수의 스트링들 또는 낸드 스트링들을 포함한다. 이때, 복수의 스트링들은 제1 및 제3 방향들을 따라 특정 거리만큼 이격되어 제공될 수 있다.
블록들(BLK1 ~ BLKz)은 도 3에 도시된 어드레스 디코더(240)에 의해 선택될 수 있다. 블록들(BLK1 ~ BLKz) 각각은 복수의 비트 라인들(BLs), 스트링 선택 라인들(SSLs). 복수의 워드 라인들(WLs), 접지 선택 라인(GSL), 그리고 공통 소스 라인(CSL)에 연결된다. 블록들(BLK1 ~ BLKz) 각각의 구현 예는 도 5를 참조하여 더 상세하게 설명된다.
도 5는 도 4의 블록들 중 하나인 제1 블록(BLK1)의 일 예를 나타내는 사시도이다.
도 5를 참조하면, 제1 메모리 블록(BLK1)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 도 5에서는, 제1 블록(BLK1)이 2 개의 선택 라인들(GSL, SSL), 8 개의 워드 라인들(WL1 ~ WL8), 그리고 3 개의 비트 라인(BL1 ~ BL3)을 포함하는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제1 방향을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 신장되는 복수의 절연막들(IL)이 제2 방향을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 제2 방향을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 순차적으로 배치되며, 제2 방향을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(pillar)(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부(I)는 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에 게이트 전극(GE)이 제공된다.
복수의 필라들(P) 상에는 드레인들(DR)이 각각 제공된다. 예를 들어, 드레인들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제3 방향으로 신장되고 제1 방향을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL)이 제공된다.
도 6은 도 5의 제1 블록(BLK1)의 등가 회로를 나타내는 회로도이다.
도 6을 참조하면, 제1 블록(BLK1)은 수직 구조의 낸드 플래쉬 메모리일 수 있고, 도 4에 도시된 블록들(BLK1 ~ BLKz) 각각은 도 6과 같이 구현될 수 있다. 제1 블록(BLK1)은 복수의 낸드 스트링들(NS11 ~ NS33), 복수의 워드 라인들(WL1 ~ WL8), 복수의 비트 라인들(BL1 ~ BL3), 접지 선택 라인(GSL), 복수의 스트링 선택 라인들(SSL1 ~ SSL3) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 낸드 스트링들의 개수, 워드 라인들의 개수, 비트 라인들의 개수, 그라운드 선택 라인의 개수 및 스트링 선택 라인들의 개수는 실시예에 따라 다양하게 변경될 수 있다.
제1 비트 라인(BL1)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS11, NS21, NS31)이 제공되고, 제2 비트 라인(BL2)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12, NS22, NS32)이 제공되고 제3 비트 라인(BL3)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS13, NS23, NS33)이 제공된다. 각 낸드 스트링(예컨대, NS11)은 직렬로 연결된 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 ~ MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 이하에서는, 편의상 낸드 스트링을 스트링이라고 지칭하기로 한다.
하나의 비트 라인에 공통으로 연결된 스트링들은 하나의 칼럼을 구성한다. 예를 들어, 제1 비트 라인(BL1)에 공통으로 연결된 스트링들(NS11, NS21, NS31)은 제1 칼럼에 대응되고, 제2 비트 라인(BL2)에 공통으로 연결된 스트링들(NS12, NS22, NS32)은 제2 칼럼에 대응되며, 제3 비트 라인(BL3)에 공통으로 연결된 스트링들(NS13, NS23, NS33)은 제3 칼럼에 대응될 수 있다.
하나의 스트링 선택 라인에 연결되는 스트링들은 하나의 로우(또는, 페이지)를 구성한다. 예를 들어, 제1 스트링 선택 라인(SSL1)에 연결된 스트링들(NS11, NS12, NS13)은 제1 로우에 대응되고, 제2 스트링 선택 라인(SSL2)에 연결된 스트링들(NS21, NS22, NS23)은 제2 로우에 대응되며, 제3 스트링 선택 라인(SSL3)에 연결된 스트링들(NS31, NS32, NS33)은 제3 로우에 대응될 수 있다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL1 ~ SSL3)에 연결된다. 복수의 메모리 셀들(MC1 ~ MC8)은 각각 대응하는 워드 라인(WL1 ~ WL8)에 연결된다. 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)에 연결된다. 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL)에 연결되고, 그라운드 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결된다.
동일 높이의 워드 라인(예컨대, WL1)은 공통으로 연결되어 있고, 스트링 선택 라인들(SSL1 ~ SSL3)은 서로 분리되어 있다. 예를 들어, 제 1 워드 라인(WL1)에 연결되어 있고 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀들을 프로그램하는 경우에는, 제1 워드 라인(WL1)과 제1 스트링 선택 라인(SSL1)이 선택된다.
도 7 및 도 8은 ISPP 방식에 따른 프로그램 루프 및 ISPE 방식에 따른 소거 루프의 일 예를 나타내는 도면이다.
도 7에 도시된 바와 같이, 프로그램 동작은 계단형 스텝 펄스 프로그램(Incremental Step Pulse Program)에 의해 수행될 수 있다. 프로그램 루프가 증가할 때마다 프로그램 전압(Vpgm)은 소정의 크기만큼 증가할 수 있으며, 하나의 프로그램 루프에서 프로그램 전압(Vpgm)을 이용한 프로그램 동작 및 검증 전압(Vvfy)을 이용한 검증 동작이 수행될 수 있다. 예컨대, 프로그램 루프 횟수의 최대값이 M 으로 설정된 경우, 프로그램 루프가 수행될 때마다 프로그램 전압(Vpgm)은 제1 프로그램 전압(Vpgm1)에서 제M 프로그램 전압(VpgmM)으로 증가할 수 있다.
한편, 도 8에 도시된 바와 같이, 소거 동작 또한 계단형 스텝 펄스 소거(Incremental Step Pulse Erase)에 의해 수행될 수 있다. 소거 루프가 증가할 때마다 소거 전압(Vers)은 소정의 크기만큼 증가할 수 있으며, 하나의 소거 루프에서 소거 전압(Vers)을 이용한 소거 동작 및 검증 전압(Vvfy)을 이용한 검증 동작이 수행될 수 있다. 예컨대, 소거 루프 횟수의 최대값이 N 으로 설정된 경우, 소거 루프가 수행될 때마다 소거 전압(Vers)은 제1 소거 전압(Vers1)에서 제N 소거 전압(VersN)으로 증가할 수 있다.
전술한 실시예에서와 같이, 메모리 장치의 프로그램/소거 사이클이 증가함에 따라, 상기 프로그램 루프 횟수의 최대값(M) 및 소거 루프 횟수의 최대값(N)이 변경될 수 있다. 프로그램 루프 횟수의 최대값(M)이 증가되는 경우, 기록 요청에 대응하여 더 많은 횟수의 프로그램 루프를 통해 데이터가 기록될 수 있다. 또한, 프로그램 페일 판정에 있어서, 패스/페일 판정의 기준이 되는 프로그램 루프의 횟수가 증가하게 된다.
도 9는 본 발명의 실시예에 따른 프로그램/소거 횟수를 변경하는 일 예를 나타내는 블록도이다.
도 9에 도시된 바와 같이, 메모리 장치(300)는 제어 로직(310), 카운터(320), 비교기(330), 룩업 테이블(340) 및 패스/페일 정보 발생부(350)를 포함할 수 있다. 이외에도, 메모리 셀 어레이, 어드레스 디코더 및 전압 발생기 등등 메모리 동작에 관련된 기능 블록들이 메모리 장치(300)에 더 구비될 수 있으며, 설명의 편의상 기타 다른 기능 블록들에 대한 구체적인 도시는 생략된다.
제어 로직(310)은 메모리 장치(300)의 전반적인 동작을 제어하며, 일 예로서 프로그램 루프 횟수의 최대값/최소값에 관련된 정보와, 소거 동작시 수행되는 소거 루프 횟수의 최대값/최소값에 관련된 정보를 저장하는 레지스터(311)를 포함할 수 있다. 제어 로직(310)은 커맨드(CMD) 및 어드레스(ADD)를 분석함에 기반하여 메모리 동작에 관련된 각종 제어 신호들을 발생할 수 있다.
일 실시예로서, 제어 로직(310)은 기록 커맨드 및 소거 커맨드가 수신될 때마다 이에 대한 정보를 카운터(320)로 제공하며, 카운터(320)는 수신된 정보에 응답하여 카운팅 동작을 수행한다. 카운터(320)의 카운팅 결과에 따라 프로그램/소거 사이클이 검출될 수 있다.
비교기(330)는 검출된 프로그램/소거 사이클과 소정의 기준값을 비교하여 그 비교 결과를 발생한다. 제어 로직(310)은 비교 결과에 기반하여 프로그램/소거 루프 횟수의 설정값을 변경할 타이밍을 판단할 수 있다. 판단 결과, 프로그램/소거 사이클이 증가하고 현재 타이밍에서 프로그램/소거 루프 횟수의 설정값이 변경될 타이밍에 해당하는 경우, 제어 로직(310)은 룩업 테이블(340)에 저장된 정보를 참조하여 현재 프로그램/소거 사이클에 대응하는 루프 횟수에 관련된 정보를 판단할 수 있다. 변경된 프로그램/소거 루프 횟수의 최대값/최소값에 관련된 정보는 레지스터(311)에 저장될 수 있다.
이후, 메모리 장치(300)로 제공된 커맨드(CMD)가 기록/소거 요청에 해당하는 경우, 제어 로직(310)은 프로그램 동작 및 소거 동작에 관련된 각종 제어 신호들(CTRL_PE)을 생성하고 출력한다. 또한, 프로그램 동작 및 소거 동작에서, 제어 로직(310)은 레지스터(311)에 저장된 설정값에 기반하여 프로그램/소거 루프가 수행되도록 메모리 장치(300)를 제어한다.
만약, 변경된 설정값에 따른 횟수로서 루프를 수행한 결과, 정상적으로 데이터가 기록되지 않은 메모리 셀이 존재하는 경우(또는, 정정 불가능한 에러가 발생되는 경우)에는, 이를 나타내는 패스/페일 정보(P/F)를 발생할 것을 지시하는 제어신호(CTRL_P/F)가 패스/페일 정보 발생부(350)로 제공될 수 있다. 패스/페일 정보 발생부(350)는 이에 응답하여 프로그램 동작의 패스/페일 정보(P/F)를 제공할 수 있다. 소거 동작에 대해서도 이와 유사하게 동작될 수 있으며, 변경된 설정값에 따른 횟수로서 루프를 수행한 결과 정상적으로 소거되지 않은 메모리 셀이 존재하는 경우, 패스/페일 정보 발생부(350)는 이를 나타내는 패스/페일 정보(P/F)를 제공할 수 있다.
한편, 도 9에서는 루프 횟수의 최대값/최소값 정보를 제공하는 수단으로써 룩업 테이블(340)이 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 예컨대, 룩업 테이블(340) 대신에 연산기가 구비될 수 있으며, 제어 로직(310)의 제어하에서 프로그램/소거 사이클에 관련된 정보가 연산기로 제공될 수 있으며, 연산기의 소정의 연산 동작에 기반하여 루프 횟수의 최대값 및/또는 최소값이 산출될 수 있다.
도 10 및 도 11은 프로그램/소거 사이클에 따라 루프 횟수의 최대값이 변경되는 예를 나타내는 그래프이다.
도 10에 도시된 바와 같이, 프로그램/소거 사이클이 증가할수록, 메모리 셀들의 특성상 상대적으로 적은 횟수의 프로그램 루프에 의해 데이터 프로그램 동작이 완료될 수 있다. 상기와 같은 메모리 셀들의 특성에 기반하여, 프로그램/소거 사이클의 증가에 대응하여 프로그램 루프 횟수의 최대값이 감소되도록 설정값이 변경될 수 있다. 상기 설정값은 다양한 방식에 따라 변경될 수 있으며, 예컨대 도 10에서와 같이 프로그램/소거 사이클의 증가에 따라 프로그램 루프 횟수의 최대값이 단계적으로 변경될 수 있다. 일 예로서, 프로그램/소거 사이클이 1k 이내에 해당하는 경우에는 프로그램 루프 횟수의 최대값이 12 회로 설정되고, 1k 에서 2k 사이에 해당하는 경우에는 프로그램 루프 횟수의 최대값이 11 회로 변경되고, 2k 에서 3k 사이에 해당하는 경우에는 프로그램 루프 횟수의 최대값이 10 회로 변경될 수 있다.
한편, 도 11에 도시된 바와 같이, 프로그램/소거 사이클이 증가할수록, 메모리 셀들의 특성상 상대적으로 많은 횟수의 소거 루프가 수행되어야 소거 동작이 완료될 수 있다. 상기와 같은 메모리 셀들의 특성에 기반하여, 프로그램/소거 사이클의 증가에 대응하여 소거 루프 횟수의 최대값이 증가되도록 설정값이 변경될 수 있다. 일 예로서, 프로그램/소거 사이클이 1k 이내에 해당하는 경우에는 소거 루프 횟수의 최대값이 3 회로 설정되고, 1k 에서 2k 사이에 해당하는 경우에는 소거 루프 횟수의 최대값이 4 회로 변경되고, 2k 에서 3k 사이에 해당하는 경우에는 소거 루프 횟수의 최대값이 5 회로 변경될 수 있다.
도 12는 본 발명의 실시예에 따른 메모리 시스템의 동작 전반의 개요를 나타내는 도면이다.
도 12에 도시된 바와 같이, 메모리 시스템이 초기 구동되는 동안, 메모리 콘트롤러와 메모리 장치 사이에서 각종 정보들(Info)이 송수신될 수 있으며, 메모리 콘트롤러는 메모리 장치의 동작 환경을 설정하기 위한 각종 설정 정보들(SETTING)을 제공할 수 있다. 일 예로서, 메모리 장치는 메모리 콘트롤러로 프로그램/소거 사이클을 카운팅한 정보를 제공할 수 있으며, 또한 메모리 장치는 그 내부에 불휘발성하게 저장된 테이블 정보(예컨대, 프로그램/소거 사이클에 따른 루프 횟수에 관계된 정보)를 메모리 콘트롤러로 제공할 수 있다.
본 발명의 일 실시예에 따라, 메모리 콘트롤러가 제공하는 설정 정보들(SETTING)은 프로그램 루프 횟수의 최대값/최소값을 설정하기 위한 정보를 포함할 수 있다. 또한, 상기 설정 정보들(SETTING)은 소거 루프 횟수의 최대값/최소값을 설정하기 위한 정보를 포함할 수 있다. 메모리 장치는 설정된 값에 따라 프로그램 동작 및 소거 동작을 수행할 수 있다.
메모리 콘트롤러는 메모리 동작을 위해 각종 커맨드를 메모리 장치로 제공할 수 있으며, 예컨대 기록 및 소거 동작을 요청하는 커맨드(CMD_PE)를 메모리 장치로 제공할 수 있다. 메모리 콘트롤러와 메모리 장치 각각은 메모리 동작에 관계된 내부 동작을 각각 수행할 수 있다. 전술한 실시예에서와 동일 또는 유사하게, 메모리 장치는 기록/소거 커맨드(CMD_PE)의 수신에 응답하여 카운팅 동작을 수행함으로써 프로그램/소거 사이클을 검출할 수 있다. 또한, 사이클을 검출한 결과에 따라, 프로그램/소거 루프 횟수에 관련된 설정값을 변경할 수 있다.
이후, 메모리 장치는 변경된 설정값에 따라 프로그램 루프 및 소거 루프를 수행하게 되고, 상기 변경된 설정값에 기반하여 프로그램 동작의 패스/페일 여부를 나타내는 정보(P/F)나 소거 동작의 패스/페일 여부를 나타내는 정보(P/F)를 발생할 수 있다. 메모리 콘트롤러는 상기 정보(P/F)를 수신하고, 이에 응답하여 해당 셀 영역(예컨대, 페이지나 블록 등)을 배드 영역으로 처리할 수 있다. 만약, 데이터 기록을 요청한 페이지에 프로그램 페일이 발생된 경우, 메모리 콘트롤러는 어드레스 맵핑 정보를 변경함에 의하여 해당 데이터가 다른 페이지에 기록되도록 메모리 장치를 관리할 수 있다. 또는, 프로그램 페일이 발생된 페이지를 포함하는 블록을 배드 블록으로 처리하거나, 소거 페일이 발생된 블록을 배드 블록으로 처리할 수 있다.
한편, 전술한 바와 같이 메모리 장치는 그 내부적으로 카운팅 동작 및 설정값 변경 동작을 수행할 수 있으며, 그 수행 결과를 메모리 콘트롤러로 제공할 수 있다. 예컨대, 메모리 장치는 프로그램/소거 사이클이 일정 값에 도달할 때마다 카운팅 정보(Info_CNT)를 메모리 콘트롤러로 제공할 수 있다. 또한, 프로그램/소거 사이클을 검출한 결과에 따라 프로그램/소거 루프 횟수에 변경이 발생된 경우, 이를 나타내는 루프 횟수 정보(Info_LN)를 메모리 콘트롤러로 제공할 수 있다.
도 13은 본 발명의 일 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 13에 도시된 바와 같이, 메모리 장치는 메모리 동작에 관련된 각종 커맨드 및 어드레스를 메모리 콘트롤러로부터 수신할 수 있다(S11). 메모리 장치는 수신된 커맨드를 분석함에 의해 프로그램/소거 요청을 판별할 수 있으며, 판별 결과에 따라 카운팅 동작을 수행함으로써 프로그램/소거 사이클을 검출할 수 있다(S12). 검출 결과는 소정의 기준값과 비교될 수 있다.
상기 비교 결과에 따라 프로그램/소거 루프 횟수가 변경될 수 있으며, 예컨대 프로그램/소거 사이클이 소정의 횟수에 도달할 때마다 프로그램/소거 루프 횟수가 변경될 수 있다. 즉, 상기 비교 결과에 따라 프로그램/소거 사이클이 소정의 값에 도달하는지 판단될 수 있으며, 프로그램/소거 사이클이 소정의 값에 도달할 때마다 프로그램/소거 루프 횟수의 설정값이 변경될 수 있다(S13).
이후, 메모리 콘트롤러로부터 각종 커맨드가 수신될 수 있으며, 메모리 콘트롤러로부터 기록 커맨드 또는 소거 커맨드가 제공되면, 상기 변경된 설정값에 기반하여 프로그램/소거 동작을 수행한다(S14). 일 예로서, 상기 설정값은 프로그램 루프 횟수의 최대값 및 소거 루프 횟수의 최대값에 관련된 정보를 포함할 수 있으며, 상기 설정된 최대값에 따라 프로그램/소거 루프가 수행된다. 메모리 장치는, 상기 설정된 최대값 이내의 루프에서 프로그램/소거 동작이 완료된 경우 해당 동작을 패스로 판정할 수 있다. 반면에, 상기 설정된 최대값에 해당하는 루프 수행 후에도 프로그램/소거 동작이 완료되지 않은 경우 해당 동작을 페일로 판정할 수 있다(S15).
도 14는 본 발명의 일 실시예에 따른 메모리 콘트롤러의 동작방법을 나타내는 플로우차트이다.
메모리 시스템의 동작 초기에 메모리 콘트롤러와 메모리 장치 사이에서 각종 정보들이 송수신될 수 있다. 일 예로서 메모리 콘트롤러는 메모리 장치의 프로그램/소거 사이클을 나타내는 카운팅 정보를 수신할 수 있으며, 또한 프로그램/소거 사이클에 따른 프로그램/소거 루프 횟수에 관련된 정보를 테이블 정보를 수신할 수 있다(S21).
메모리 콘트롤러는 상기 수신된 정보에 기반하여 메모리 장치의 동작 환경에 관련된 다양한 설정 동작을 수행할 수 있으며, 예컨대 상기 카운팅 정보 및 테이블 정보를 참조하여 메모리 장치의 프로그램/소거 루프 횟수를 설정할 수 있다(S22). 일 예로서, 메모리 콘트롤러는 기록 커맨드에 응답하여 수행될 프로그램 루프 횟수의 최대값에 관련된 정보를 설정할 수 있으며, 또한 소거 커맨드에 응답하여 수행될 소거 루프 횟수의 최대값에 관련된 정보를 설정할 수 있다.
상기와 같은 초기 설정 동작이 완료되면, 메모리 콘트롤러와 메모리 장치 사이에서 메모리 동작을 위한 각종 정보가 송수신되며, 예컨대 메모리 콘트롤러는 커맨드 및 어드레스를 메모리 장치로 출력할 수 있다(S23). 메모리 장치는 전술한 실시예에 따라 프로그램/소거 루프를 수행함에 의해 메모리 동작을 수행할 수 있다. 메모리 장치는, 설정값에 기반하여 프로그램/소거 루프를 수행하고, 또한 프로그램/소거 동작의 패스 및 페일 여부를 판정할 수 있다. 메모리 콘트롤러는 메모리 장치로부터 프로그램/소거 동작의 패스 및 페일 여부를 나타내는 정보를 수신할 수 있다(S24). 메모리 콘트롤러는 수신된 정보에 기반하여 어드레스 맵핑 정보에 대한 관리 및 배드 블록 관리를 수행할 수 있다(S25).
도 15a,b는 본 발명의 실시예에 따라 루프 횟수의 최대값/최소값을 변경하는 일 예를 나타내는 그래프이다.
도 15a에 도시된 바와 같이, 프로그램/소거 사이클이 증가함에 따라 메모리 셀들의 평균 프로그램 루프 횟수는 감소하게 되며, 이에 대응하여 프로그램 루프 횟수의 최대값이 점차 감소되도록 그 설정값이 변경될 수 있다. 이와 유사하게, 프로그램 루프 횟수의 최소값 또한 그 설정값이 변경될 수 있으며, 예컨대 프로그램/소거 사이클이 증가함에 따라 프로그램 루프 횟수의 최소값이 점차 감소되도록 그 설정값이 변경될 수 있다.
변경된 설정값에 기반하여 프로그램 동작을 수행함에 있어서, 상기 최소값 이상, 최대값 이하의 루프 횟수에서 데이터가 정상적으로 기록될 때 기록이 패스된 것으로 판정될 수 있다. 반면에, 상기 최소값 미만의 루프 횟수에서 데이터가 정상적으로 기록된 경우에는, 해당 메모리 셀들이 비정상적으로 문턱 전압의 산포가 이동된 것으로 판단될 수 있으며, 이에 따라 상기 메모리 셀들을 포함하는 셀 영역은 배드 영역으로 관리되는 것이 적절할 수 있다. 또한, 상기 최대값에 해당하는 횟수의 루프를 수행한 후에도 적어도 일부의 데이터가 정상적으로 기록되지 않은 경우에는, 해당 셀 영역이 배드 영역으로 관리될 수 있다.
한편, 도 15b에 도시된 바와 같이, 프로그램/소거 사이클이 증가함에 따라 소거 루프 횟수의 설정값이 변경될 수 있다. 예컨대, 프로그램/소거 사이클이 증가함에 따라 소거 루프 횟수의 최대값이 점차 증가되도록 그 설정값이 변경될 수 있으며, 또한 소거 루프 횟수의 최소값이 점차 증가되도록 그 설정값이 변경될 수 있다.
소거 패스/페일 여부를 판정하는 동작은 전술한 프로그램 동작에서와 동일 또는 유사하게 수행될 수 있다. 예컨대, 상기 최소값 이상 최대값 이하의 소거 루프를 통해 데이터가 정상적으로 소거되었을 때, 소거 동작이 패스로 판정될 수 있다. 반면에, 상기 최소값 미만의 루프 횟수에서 데이터가 모두 소거되거나, 또는 최대값에 해당하는 루프 횟수에서도 적어도 일부의 데이터가 정상적으로 소거되지 않은 경우에는, 해당 셀 영역이 배드 영역으로 관리될 수 있다.
도 16은 본 발명의 다른 실시예에 따른 메모리 장치의 구현 예를 나타내는 블록도이다. 도 16에서는, 프로그램/소거 사이클 이외에도 적어도 하나의 다른 요소를 이용하여 루프 횟수의 설정값을 변경하는 예가 도시된다.
도 16에 도시된 바와 같이, 메모리 장치(400)는 제어 로직(410), 사이클 검출부(420), 루프 정보 발생부(430), 온도 센서(440) 및 타이머(450)를 포함할 수 있다. 이외에도, 메모리 셀 어레이, 어드레스 디코더 및 전압 발생기 등등 메모리 동작에 관련된 기능 블록들이 메모리 장치(400)에 더 구비될 수 있으며, 설명의 편의상 기타 다른 기능 블록들에 대한 구체적인 도시는 생략된다. 또한, 도 16에 도시된 각종 기능 블록들 중 전술한 실시예에서와 동일한 기능 블록은 그 동작 또한 동일 또는 유사하므로 이에 대한 구체적인 설명은 생략된다.
제어 로직(410)은 메모리 장치(400)의 전반적인 동작을 제어하며, 또한 제어 로직(410)은 프로그램/소거 동작에 대한 패스 및 페일 여부를 판정할 수 있다. 제어 로직(410)은 레지스터(411) 및 패스/페일 판정부(412)를 포함할 수 있으며, 프로그램 동작시 프로그램 결과를 수신하여 패스 및 페일 여부를 판정하거나, 소거 동작시 소거 결과를 수신하여 패스 및 페일 결과를 여부할 수 있다.
사이클 검출부(420)는 전술한 실시예에서와 유사하게 프로그램/소거 사이클을 검출할 수 있으며, 예컨대 기록 커맨드 및 소거 커맨드의 수신에 응답하여 카운팅 동작을 수행함으로써 사이클을 검출할 수 있다. 루프 정보 발생부(430)는 사이클에 대응하는 루프 횟수의 최대값/최소값 정보를 포함하는 룩업 테이블을 포함할 수 있다. 또는 다른 실시예로서, 루프 정보 발생부(430)는 검출된 사이클 정보를 이용한 소정의 연산 동작을 수행함으로써, 루프 횟수의 최대값/최소값 정보를 발생할 수 있다.
한편, 온도 센서(440)는 메모리 장치(400) 내부의 온도를 검출하고 온도 정보(Info_temp)를 발생할 수 있다. 타이머(450)는 메모리 장치(400) 내에서 수행되는 각종 메모리 동작과 관련된 시간 정보(Info_time)를 발생할 수 있다. 제어 로직(410)은 전술한 실시예에 따라 프로그램/소거 루프 횟수의 설정값이 변경되도록 제어 동작을 수행할 수 있으며, 예컨대 제어 로직(410)은 상기 온도 정보(Info_temp) 및 시간 정보(Info_time)를 이용하여 제어 동작을 수행할 수 있다.
일 실시예로서, 프로그램/소거 루프 횟수의 최대값 및 최소값을 설정함에 있어서, 메모리 장치(400) 내부의 온도에 따라 상기 최대값 및 최소값이 조절될 수 있다. 루프 정보 발생부(430)에 구비되는 룩업 테이블은 프로그램/소거 사이클 값과 온도 값, 그리고 프로그램/소거 루프 횟수에 관련된 테이블 정보를 포함할 수 있다. 제어 로직(410)은 룩업 테이블의 정보를 참조함으로써, 메모리 장치(400) 내부의 온도를 반영하여 루프 횟수의 설정값을 변경할 수 있다.
프로그램 동작 또는 소거 동작시, 메모리 장치(400) 내부의 온도에 따라, 동일한 프로그램 전압(또는, 소거 전압)을 이용하여 루프를 수행하더라도, 이에 따른 메모리 셀의 문턱 전압의 변화량이 달라질 수 있다. 온도 정보를 반영하여 루프 횟수에 관련된 설정값을 변경하는 방식은 다양하게 수행될 수 있으며, 예컨대 프로그램/소거 사이클이 증가함에 따라 프로그램 루프 횟수의 최대값이 감소되는 경우, 온도 정보(Info_temp)에 따라 프로그램 루프 횟수의 최대값이 더 감소되거나 덜 감소되도록 조절될 수 있다.
한편, 루프 횟수의 설정값을 변경하는 타이밍을 판단함에 있어서, 전술한 실시예에서와 같이 사이클을 검출하는 방식 이외에도, 타이머(450)를 이용하여 타이밍이 판단될 수 있다. 예컨대, 프로그램 동작을 참조하면, 프로그램/소거 사이클이 적은 경우에는 상대적으로 많은 횟수의 프로그램 루프를 수행함에 의해 데이터 프로그램이 완료될 수 있다. 타이머(450)는 프로그램 동작에 소요되는 시간을 검출하고 이를 나타내는 시간 정보(Info_time)를 제공할 수 있다.
제어 로직(410)은 상기 시간 정보(Info_time)를 참조하여 프로그램 루프 횟수에 관련된 설정값을 변경할 수 있다. 예컨대, 프로그램/소거 사이클이 증가함에 따라 상대적으로 적은 횟수의 프로그램 루프를 통해 데이터가 기록될 수 있으며, 이에 따라 상대적으로 짧은 시간 내에 프로그램이 완료될 수 있다. 제어 로직(410)은 시간 정보(Info_time)를 검출하여 프로그램 동작에 소요된 시간을 분석하고, 프로그램/소거 루프 횟수의 설정값을 변경하는 타이밍을 판단할 수 있다. 또한, 제어 로직(410)은 상기 판단 결과에 따라 프로그램 루프 횟수의 최대값이 감소하도록 그 설정값을 변경할 수 있다.
한편, 프로그램/소거 사이클의 증가에 따라 프로그램/소거 루프의 횟수를 변경하는 방식 이외에도, 본 발명의 실시예는 다양하게 변동이 가능하다. 예컨대, 제어 로직(410)은 프로그램 동작 시간의 최대값/최소값을 변경할 수 있으며, 또한 소거 동작 시간의 최대값/최소값을 변경할 수 있다. 또한, 다른 실시예로서, 제어 로직(410)은 타이머(450)로부터의 시간 정보(Info_time)를 이용하여 프로그램 또는 소거 동작에 대한 패스/페일 판정을 수행할 수 있다.
예컨대, 프로그램/소거 사이클이 증가함에 따라, 프로그램 동작이 수행되는 시간의 최대값/최소값이 감소되도록 그 설정값이 변경될 수 있다. 예컨대, 프로그램 루프가 소정의 시간 간격으로 일정하게 수행되는 경우, 프로그램 동작이 수행되는 시간의 감소는 루프 횟수의 감소에 상응할 수 있다. 이에 따라, 상기 설정된 시간 내에서 프로그램 루프들이 수행되고, 설정된 시간 이내에 데이터 프로그램이 완료되지 않은 경우에는 프로그램 페일이 발생된 것으로 판정될 수 있다.
도 17은 본 발명의 또 다른 실시예에 따른 메모리 장치의 구현 예를 나타내는 블록도이다. 도 17에서는 메모리 장치(500)에서 발생될 수 있는 진행성 불량을 미리 검출하고, 검출 결과에 기반하여 프로그램/소거 루프 횟수의 설정값이 변경되는 예가 도시된다.
도 17에 도시된 바와 같이, 메모리 장치(500)는 메모리 셀 어레이(510), 제어 로직(520), 어드레스 디코더(530), 전압 발생부(540), 전압/전류 검출부(550), 루프 정보 발생부(560) 및 패스/페일 정보 발생부(570)를 포함할 수 있다. 이외에도, 페이지 버퍼, 입출력 회로 등 메모리 동작에 관련된 기능 블록들이 메모리 장치(500)에 더 구비될 수 있다. 또한, 도 17에 도시된 각종 기능 블록들 중 전술한 실시예에서와 동일한 기능 블록은 그 동작 또한 동일 또는 유사하므로 이에 대한 구체적인 설명은 생략된다.
수직형 낸드(VNAND) 등 플래시 메모리 장치의 경우, 각종 신호 전달 경로(예컨대, 워드 라인, 스트링 선택 라인, 접지 선택 라인, 공통 소스 라인 등) 사이에서 브릿지가 진행성으로 발생될 수 있으며, 상기 브릿지에 의해 전류가 누설됨에 따라 메모리 동작의 성능 저하가 발생될 수 있다.
본 발명의 실시예에 따르면, 상기 각종 경로를 통해 전달되는 신호의 전압/전류 레벨이 검출되고, 그 검출 결과에 기반하여 진행성 불량 정도가 판별될 수 있다. 일 예로서, 전압 발생부(540)는 메모리 동작에 관련된 각종 전압 신호들을 발생하며, 예컨대 스트링 선택 라인(SSL)으로 제공되는 스트링 선택 전압(Vssl)을 발생하고, 워드 라인들(WLs)로 제공되는 워드 라인 전압들(Vwls)을 발생하며, 또한 접지 선택 라인(GSL)으로 제공되는 접지 선택 전압(Vgsl)을 발생할 수 있다. 전압 발생부(540)에서 발생되는 각종 전압들은 어드레스 디코더(530)를 통해 상기 각종 라인들(SSL, WLs, GSL)로 제공될 수 있다.
전압/전류 검출부(550)는 상기 전압 발생부(540)의 적어도 하나의 출력에 연결되어 전압 및/또는 전류 레벨을 검출할 수 있다. 또한, 전압/전류 검출부(550)는 검출 결과(Det)를 발생할 수 있으며, 제어 로직(520)은 상기 검출 결과(Det)를 이용하여 전술한 실시예에 따른 프로그램/소거 루프 횟수에 관련된 설정값을 변경할 수 있다.
일 동작 예로서, 메모리 셀 어레이(510)에 대한 독출 동작이 수행되는 경우, 상기 각종 라인들(SSL, WLs, GSL)에 대한 셋업(set-up) 동작이 수행됨에 따라 소정의 셋업-레벨을 갖는 전압들(Vssl¸ Vwls, Vgsl)이 제공될 수 있다. 만약, 상기 전압들(Vssl¸ Vwls, Vgsl)을 전달하는 라인이나 메모리 셀 어레이(510)에 연결된 각종 라인들(SSL, WLs, GSL)에 브릿지가 발생된 경우, 전압/전류 검출부(550)는 상기 전압들(Vssl¸ Vwls, Vgsl)의 전압/전류 레벨을 검출함에 의해 누설 정도가 모니터링될 수 있다.
또는, 다른 실시예로서, 프로그램 동작 및 독출 동작 등에서 상기 각종 라인들(SSL, WLs, GSL) 중 일부(예컨대, 비선택 워드 라인)는 높은 레벨의 전압이 인가되고, 다른 일부(예컨대, 선택 워드 라인)는 낮은 레벨의 전압이 인가될 수 있다. 예컨대, 비선택 워드 라인에 브릿지가 발생된 경우 비선택 워드 라인의 전압 레벨은 낮아질 수 있으며, 반면에 선택 워드 라인에 브릿지가 발생된 경우 비선택 워드 라인의 전압 레벨은 높아질 수 있다.
전압/전류 검출부(550)로부터의 검출 결과(Det)를 참조하여 진행성 불량의 정도를 분석하고, 이에 따라 프로그램/소거 루프 횟수에 관련된 설정값이 변경될 수 있다. 예컨대, 진행성 불량이 발생되지 않거나 그 정도가 작은 경우에는, 전술한 실시예에 따라 상대적으로 적은 횟수의 프로그램/소거 사이클에 상응하도록 루프 횟수의 최대값 및 최소값이 설정될 수 있다. 반면에, 진행성 불량의 발생 정도가 큰 경우에는, 전술한 실시예에 따라 상대적으로 많은 횟수의 프로그램/소거 사이클에 상응하도록 루프 횟수의 최대값 및 최소값이 설정될 수 있다. 제어 로직(520)은 상기 검출 결과(Det) 및 루프 정보 발생부(560)의 정보를 참조하여 상기 프로그램/소거 루프 횟수에 관련된 설정값을 변경할 수 있다. 또한, 제어 로직(520)은 프로그램 루프 수행(또는, 소거 루프 수행) 결과에 따라 패스/페일 여부를 판정할 수 있으며, 패스/페일 정보 발생부(570)는 패스/페일 신호를 발생할 수 있다.
도 18a,b은 본 발명의 또 다른 실시예에 따른 메모리 장치 및 그 동작 예를 나타내는 그래프 및 블록도이다. 도 18a,b의 실시예에서는, 프로그램 동작의 일 예로서 원 샷 프로그램(One shot Program) 수행 결과를 기반으로 하여 프로그램/소거 루프 횟수의 설정값이 변경되는 예가 도시된다.
원 샷 프로그램은 멀티 비트의 데이터를 저장하는 메모리 셀들에 대해, 다수 비트의 데이터를 동시에 프로그램하는 동작을 나타낸다. 이에 따라, 도 18a에 도시된 바와 같이, 소거 상태(E)의 메모리 셀들은 원 샷 프로그램에 의해 다수의 상태들(예컨대, 제1 내지 제3 프로그램 상태, P1 ~ P3)로 변동될 수 있다.
전술한 것과 유사하게, 프로그램/소거 사이클이 증가할수록, 동일한 프로그램 전압을 이용한 프로그램 루프를 수행할 때 메모리 셀의 문턱전압이 더 크게 증가될 수 있다. 예컨대, 소정의 프로그램 전압을 이용하여 원 샷 프로그램을 수행할 때, 도 8a에 도시된 바와 같이 프로그램/소거 사이클이 적은 경우(예컨대, 1k), 실선으로 도시된 것과 같은 문턱전압 산포를 가질 수 있다. 반면에, 프로그램/소거 사이클이 많은 경우(예컨대, 3k), 점선으로 도시된 것과 같은 문턱전압 산포를 가질 수 있다.
원 샷 프로그램을 수행한 후, 데이터 판별 동작을 통하여 문턱전압 산포의 분석이 가능하다. 예컨대, 각각의 상태를 판별하기 위한 독출 전압을 이용하여 독출 동작을 수행하고, 독출된 데이터를 분석함에 의해 문턱전압 산포가 분석될 수 있다. 상기 분석 결과를 참조하면, 메모리 장치(600)의 특성(예컨대, 메모리 셀의 특성이나 개략적인 프로그램/소거 사이클)이 판단될 수 있다.
도 18b를 참조하면, 메모리 장치(600)는 메모리 셀 어레이(610), 제어 로직(620), 어드레스 디코더(630), 페이지 버퍼(640), 입출력 회로(650), 데이터 판별부(660), 루프 정보 발생부(670) 및 패스/페일 정보 발생부(680)를 포함할 수 있다. 메모리 동작에 관련된 다른 기능 블록들이 메모리 장치(600)에 더 구비될 수 있다.
제어 로직(620)은 메모리 장치(600)의 전반적인 동작을 제어하며, 예컨대 전술한 바와 같은 원 샷 프로그램이 수행되도록 메모리 장치(600)의 각종 내부 구성들을 제어할 수 있다. 원 샷 프로그램이 수행된 후, 프로그램 수행된 메모리 셀들의 데이터가 독출될 수 있으며, 독출된 데이터는 페이지 버퍼(640)를 통해 데이터 판별부(660)로 제공될 수 있다. 데이터 판별부(660)는 독출된 데이터의 값을 판별한 결과를 제어 로직(620)으로 제공할 수 있다.
제어 로직(620)은 데이터 판별 결과에 기반하여 프로그램/소거 루프 횟수에 관련된 설정값을 변경할 수 있다. 전술한 실시예에서와 유사하게, 데이터 판별 결과와 루프 정보 발생부(670)의 정보를 이용하여 상기 설정값을 변경할 수 있다. 또한, 제어 로직(620)은 변경된 설정값에 기반하여 기록 패스/페일 여부를 판정하거나 소거 패스/페일 여부를 판정할 수 있다. 패스/페일 정보 발생부(680)는 제어 로직(620)의 제어하에서 패스/페일 정보를 발생할 수 있다.
도 19a,b,c는 프로그램/소거 루프 횟수의 최대값/최소값을 다양하게 설정하는 예를 나타내는 도면이다.
도 19a에 도시된 바와 같이, 메모리 장치는 다수 개의 메모리 칩들(예컨대, 플래시 메모리 칩들)을 포함할 수 있으며, 상기 메모리 칩들은 서로 다른 프로그램/소거 사이클 값을 가질 수 있다. 예컨대, 메모리 칩들 각각에 대해 별도의 사이클 검출부(미도시)가 구비될 수 있으며, 각각의 사이클 검출부는 대응하는 메모리 칩의 프로그램/소거 사이클을 검출할 수 있다.
본 발명의 일 실시예에 따라, 메모리 칩들은 서로 다른 프로그램/소거 사이클 값을 가질 수 있으므로, 프로그램/소거 루프 횟수의 최대값/최소값 또한 메모리 칩 별로 서로 다르게 설정될 수 있다. 예컨대, 제1 메모리 칩(Flash 1)의 프로그램 루프 횟수의 최대값은 a 값을 가질 수 있으며, 제2 메모리 칩(Flash 2)의 프로그램 루프 횟수의 최대값은 b 값을 가지며, 제3 메모리 칩(Flash 3)의 프로그램 루프 횟수의 최대값은 c 값을 가질 수 있다.
한편, 도 19b에 도시된 바와 같이, 어느 하나의 메모리 칩(예컨대, 제1 메모리 칩)은 다수 개의 블록들(Block 1 ~ Block 4)을 포함할 수 있으며, 하나의 메모리 칩에서 상기 다수의 블록들(Block 1 ~ Block 4)은 서로 다른 프로그램/소거 사이클 값을 가질 수 있다. 일 예로서, 제1 메모리 칩(Flash 1)에 구비되는 사이클 검출부(미도시)는 블록 단위로 프로그램/소거 사이클을 검출할 수 있다. 또한, 일 예로서, 도 19b에는 제1 블록(Block 1)의 프로그램 루프 횟수의 최대값은 a 값을 가지고, 제2 블록(Block 2)의 프로그램 루프 횟수의 최대값은 b 값을 가지며, 제3 블록(Block 3)의 프로그램 루프 횟수의 최대값은 c 값을 가지고, 제4 블록(Block 4)의 프로그램 루프 횟수의 최대값은 d 값을 갖는 예가 도시된다.
한편, 도 19c에 도시된 바와 같이, 어느 하나의 메모리 블록(예컨대, 제1 블록)은 다수 개의 페이지들(Page 1, Page 2,...)을 포함할 수 있으며, 하나의 블록에서 상기 다수의 페이지들(Page 1, Page 2,...)은 서로 다른 프로그램/소거 사이클 값을 가질 수 있다. 일 예로서, 제1 블록을 포함하는 메모리 칩에 구비되는 사이클 검출부(미도시)는 페이지 단위로 프로그램/소거 사이클을 검출할 수 있다. 도 19c에 도시된 바와 같이, 페이지 별로 프로그램 루프 횟수의 최대값이 서로 다르게 설정될 수 있다.
도 20은 본 발명의 실시예에 따른 메모리 시스템을 메모리 카드 시스템(700)에 적용한 예를 나타내는 블록도이다. 상기 메모리 시스템은 플래시 메모리 시스템인 것으로 가정한다.
도 20을 참조하면, 메모리 카드 시스템(700)은 호스트(710) 및 메모리 카드(720)를 포함할 수 있다. 호스트(710)는 호스트 컨트롤러(711) 및 호스트 접속부(712)를 포함할 수 있다. 메모리 카드(720)는 카드 접속부(721), 카드 컨트롤러(722) 및 메모리 시스템(723)을 포함할 수 있다. 이 때, 메모리 시스템(723)은 도 1 내지 도 19에 도시된 실시예들을 이용하여 구현될 수 있다. 이에 따라 메모리 시스템(723)은 메모리 콘트롤러 및 플래시 메모리 장치를 포함할 수 있다. 또한, 메모리 시스템(723)은 호스트(710)로부터의 요청에 응답하여 수행되는 프로그램/소거 사이클을 검출하고, 그 검출 결과에 기반하여 프로그램 루프 횟수에 관련된 설정값을 변경하거나, 소거 루프 횟수에 관련된 설정값을 변경할 수 있다. 또한, 변경된 설정값을 기반으로 하여 기록 패스/페일 여부를 판정하거나 소거 패스/페일 여부를 판정할 수 있다. 또한, 상기 판정 결과에 따라 배드 블록 관리 동작이 수행될 수 있다.
호스트(710)는 메모리 카드(720)에 데이터를 기록하거나, 메모리 카드(720)에 저장된 데이터를 독출할 수 있다. 호스트 컨트롤러(711)는 커맨드(CMD), 호스트(710) 내의 클럭 발생기(미도시)에서 발생한 클럭 신호(CLK) 및 데이터(DATA)를 호스트 접속부(712)를 통해 메모리 카드(720)로 전송할 수 있다.
카드 컨트롤러(722)는 카드 접속부(721)를 통해 수신된 요청에 응답하여, 카드 컨트롤러(722) 내에 있는 클럭 발생기(미도시)에서 발생한 클럭 신호에 동기하여 데이터를 메모리 시스템(723)에 제공할 수 있다. 메모리 시스템(723)은 호스트(710)로부터 전송된 데이터를 저장할 수 있다.
메모리 카드(720)는 컴팩트 플래시 카드(CFC: Compact Flash Card), 마이크로 드라이브(Microdrive), 스마트 미디어 카드(SMC: Smart Media Card) 멀티미디어 카드(MMC: Multimedia Card), 보안 디지털 카드(SDC: Security Digital Card), 유니버설 플래시 기억장치(UFS), 메모리 스틱(Memory Stick), 및 USB 플래시 메모리 드라이버 등으로 구현될 수 있다.
도 21은 본 발명의 실시예들에 따른 메모리 시스템을 SSD 시스템(700)에 적용한 예를 나타내는 블록도이다.
도 21을 참조하면, SSD 시스템(800)은 호스트(810) 및 SSD(820)를 포함할 수 있다. SSD(820)는 신호 커넥터(signal connector)를 통해 호스트(810)와 신호를 주고 받으며, 전원 커넥터(power connector)를 통해 전원을 입력 받는다. SSD(820)는 SSD 컨트롤러(821), 보조 전원 장치(822) 및 복수의 메모리 시스템들(823, 824, 825)을 포함할 수 있다. 복수의 메모리 시스템들(823, 824, 825) 각각은 메모리 콘트롤러 및 플래시 메모리 장치를 포함할 수 있다. 본 발명의 실시예에 따라, 메모리 시스템들(823, 824, 825) 각각은 호스트(810)로부터의 요청에 응답하여 수행되는 프로그램/소거 사이클을 검출하고, 그 검출 결과에 기반하여 프로그램 루프 횟수에 관련된 설정값을 변경하거나, 소거 루프 횟수에 관련된 설정값을 변동할 수 있다. 또한, 변경된 설정값을 기반으로 하여 기록 패스/페일 여부를 판정하거나 소거 패스/페일 여부를 판정할 수 있다. 또한, 상기 판정 결과에 따라 배드 블록 관리 동작이 수행될 수 있다.
도 22는 본 발명의 실시예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템(900)을 나타내는 블록도이다.
도 22를 참조하면, 컴퓨팅 시스템(900)은 메모리 시스템(910), 프로세서(920), RAM(930), 입출력 장치(940) 및 전원 장치(950) 포함할 수 있다. 또한, 메모리 시스템(910)은 메모리 장치(911) 및 메모리 콘트롤러(912)를 포함할 수 있다. 한편, 도 22에는 도시되지 않았지만, 컴퓨팅 시스템(900)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다. 컴퓨팅 시스템(900)은 퍼스널 컴퓨터로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(personal digital assistant) 및 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
프로세서(920)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(920)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 프로세서(920)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(960)를 통하여 RAM(930), 입출력 장치(940) 및 메모리 시스템(910)과 통신을 수행할 수 있다. 메모리 시스템(910)은 도 1 내지 도 19에 도시된 실시예들의 메모리 장치를 이용하여 구현될 수 있다.
일 실시예에 따라, 프로세서(920)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
RAM(930)는 컴퓨팅 시스템(900)의 동작에 필요한 데이터를 저장할 수 있다. 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 엠램(MRAM), 알램(RRAM) 등이 RAM(830)으로 이용될 수 있다.
입출력 장치(940)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(950)는 컴퓨팅 시스템(900)의 동작에 필요한 동작 전압을 공급할 수 있다.
이상에서와 같이 도면과 명세서에서 실시예가 개시되었다. 다만, 이는 의미 한정이나 특허청구범위에 기재된 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 프로그램/소거 사이클을 검출하는 단계;
    상기 검출 결과에 따라, 프로그램 루프 횟수에 관련된 설정값을 변경하는 단계;
    기록 커맨드 수신에 따라, 하나 이상의 프로그램 루프를 수행함에 의해 데이터를 프로그램하는 단계; 및
    상기 변경된 설정값에 기반하여 프로그램 패스/페일 여부를 판정하는 단계를 구비하는 것을 특징으로 하는 플래시 메모리 장치의 동작방법.
  2. 제1항에 있어서,
    상기 설정값을 변경하는 단계는, 상기 프로그램 루프 횟수의 최대값 및/또는 최소값을 변경하는 것을 특징으로 하는 플래시 메모리 장치의 동작방법.
  3. 제2항에 있어서,
    상기 프로그램 패스/페일 여부를 판정하는 단계는, 변경된 프로그램 루프 횟수의 최대값 이하에서 데이터 프로그램이 완료되었을 때 프로그램 패스인 것으로 판정하는 것을 특징으로 하는 플래시 메모리 장치의 동작방법.
  4. 제1항에 있어서,
    상기 기록 패스/페일에 따라, 기록 요청된 페이지를 포함하는 블록이 배드 블록으로 처리되는 것을 특징으로 하는 플래시 메모리 장치의 동작방법.
  5. 제1항에 있어서,
    상기 프로그램/소거 사이클을 검출하는 단계는,
    기록/소거 커맨드 수신에 응답하여 카운팅을 수행함에 의해 카운팅 값을 발생하는 단계; 및
    상기 카운팅 값과 소정의 기준값을 비교함에 의해 상기 설정값 변경 타이밍을 판단하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 장치의 동작방법.
  6. 제1항에 있어서,
    상기 설정값을 변경하는 단계는, 프로그램/소거 사이클 검출 결과와 프로그램 루프 횟수에 관련된 테이블 정보를 포함하는 룩업-테이블을 참조하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 장치의 동작방법.
  7. 제1항에 있어서,
    상기 검출 결과에 따라, 소거 루프 횟수에 관련된 설정값을 변경하는 단계;
    소거 커맨드 수신에 따라, 하나 이상의 소거 루프를 수행함에 의해 데이터를 소거하는 단계; 및
    상기 소거 루프 횟수에 관련된 설정값에 기반하여, 소거 패스/페일 여부를 판정하는 단계를 더 구비하는 것을 특징으로 하는 플래시 메모리 장치의 동작방법.
  8. 메모리 시스템의 동작방법에 있어서, 상기 메모리 시스템은 메모리 콘트롤러 및 메모리 장치를 포함하고,
    상기 메모리 장치의 프로그램/소거 사이클을 검출하는 단계;
    상기 검출 결과에 따라, 프로그램 동작 및/또는 소거 동작의 루프 횟수의 최대값을 변경하는 단계;
    상기 변경된 루프 횟수의 최대값에 기반하여 메모리 동작의 패스/페일 여부를 판정하는 단계; 및
    상기 판정 결과에 따라, 상기 메모리 동작이 요청된 셀 영역을 배드 영역으로 관리하는 단계를 구비하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  9. 제8항에 있어서,
    상기 프로그램/소거 사이클이 증가함에 따라, 상기 프로그램 동작의 루프 횟수의 최대값은 점차 감소하고, 상기 소거 동작의 루프 횟수의 최대값은 점차 증가하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  10. 제8항에 있어서,
    상기 메모리 동작은, 기록 커맨드에 대응하는 프로그램 동작 및 소거 커맨드에 대응하는 소거 동작을 포함하고,
    프로그램 페일된 페이지를 포함하는 블록 및 소거 페일된 블록이 배드 블록으로 관리되는 것을 특징으로 하는 메모리 시스템의 동작방법.
KR1020150088722A 2015-06-22 2015-06-22 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법 KR102314135B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150088722A KR102314135B1 (ko) 2015-06-22 2015-06-22 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법
US15/065,920 US9941016B2 (en) 2015-06-22 2016-03-10 Flash memory device performing adaptive loop, memory system and method of operating the memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150088722A KR102314135B1 (ko) 2015-06-22 2015-06-22 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20160150553A true KR20160150553A (ko) 2016-12-30
KR102314135B1 KR102314135B1 (ko) 2021-10-18

Family

ID=57588062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150088722A KR102314135B1 (ko) 2015-06-22 2015-06-22 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법

Country Status (2)

Country Link
US (1) US9941016B2 (ko)
KR (1) KR102314135B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10818367B2 (en) 2018-07-23 2020-10-27 Samsung Electronics Co., Ltd. Controller and method of operating the same

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180076425A (ko) * 2016-12-27 2018-07-06 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US10453539B2 (en) * 2017-01-03 2019-10-22 Samsung Electronics Co., Ltd. Device for detecting leakage current and memory device
US10657078B1 (en) 2018-10-30 2020-05-19 Micron Technology, Inc. Providing information for a controller memory buffer elasticity status of a memory sub-system to a host system
JP7435470B2 (ja) * 2018-12-19 2024-02-21 ソニーグループ株式会社 情報処理装置、情報処理方法および情報処理プログラム
KR20200124937A (ko) * 2019-04-25 2020-11-04 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
KR20210034711A (ko) * 2019-09-20 2021-03-31 삼성전자주식회사 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법
KR20220045769A (ko) * 2020-10-06 2022-04-13 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090132878A (ko) * 2008-06-23 2009-12-31 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
US20140059281A1 (en) * 2010-02-10 2014-02-27 Kabushiki Kaisha Toshiba Memory system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4220319B2 (ja) 2003-07-04 2009-02-04 株式会社東芝 不揮発性半導体記憶装置およびそのサブブロック消去方法
US7239557B2 (en) 2005-06-17 2007-07-03 Micron Technology, Inc. Program method with optimized voltage level for flash memory
US7230854B2 (en) * 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop
JP4761910B2 (ja) 2005-10-05 2011-08-31 株式会社東芝 不揮発性半導体記憶装置及びそれを用いた不揮発性メモリシステム
KR20070109684A (ko) 2006-05-12 2007-11-15 주식회사 하이닉스반도체 낸드 플래시 메모리 장치의 소거방법
KR20080090801A (ko) 2007-04-06 2008-10-09 주식회사 하이닉스반도체 낸드 플래시 메모리소자의 소거방법
JP2008262623A (ja) 2007-04-11 2008-10-30 Toshiba Corp 不揮発性半導体記憶装置
KR100898039B1 (ko) 2007-05-21 2009-05-19 삼성전자주식회사 불휘발성 반도체 메모리 장치 및 그것의 프로그램 방법
US8130551B2 (en) * 2010-03-31 2012-03-06 Sandisk Technologies Inc. Extra dummy erase pulses after shallow erase-verify to avoid sensing deep erased threshold voltage
JP2012027969A (ja) 2010-07-21 2012-02-09 Toshiba Corp 不揮発性半導体記憶装置
KR101855435B1 (ko) 2010-11-15 2018-05-08 삼성전자주식회사 최대 검증-시간을 조절할 수 있는 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
CN103165183A (zh) * 2011-12-09 2013-06-19 株式会社东芝 非易失性半导体存储装置
JP2014053060A (ja) * 2012-09-07 2014-03-20 Toshiba Corp 半導体記憶装置及びその制御方法
KR102090589B1 (ko) 2013-01-14 2020-03-18 삼성전자주식회사 비휘발성 메모리 장치의 데이터 저장 방법 및 비휘발성 메모리 장치의 테스트 방법
US9214240B2 (en) * 2013-03-04 2015-12-15 Sandisk Technologies Inc. Dynamic erase depth for improved endurance of non-volatile memory
US9042181B2 (en) * 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium
US8995200B1 (en) * 2013-09-23 2015-03-31 Freescale Semiconductor, Inc. Non-volatile memory (NVM) with dynamically adjusted reference current
KR20160071120A (ko) * 2014-12-11 2016-06-21 에스케이하이닉스 주식회사 반도체 메모리 장치 그것의 동작 방법
US9418000B2 (en) * 2014-12-22 2016-08-16 Intel Corporation Dynamically compensating for degradation of a non-volatile memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090132878A (ko) * 2008-06-23 2009-12-31 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
US20140059281A1 (en) * 2010-02-10 2014-02-27 Kabushiki Kaisha Toshiba Memory system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10818367B2 (en) 2018-07-23 2020-10-27 Samsung Electronics Co., Ltd. Controller and method of operating the same
US11183254B2 (en) 2018-07-23 2021-11-23 Samsung Electronics Co., Ltd. Controller and method of operating the same

Also Published As

Publication number Publication date
US9941016B2 (en) 2018-04-10
KR102314135B1 (ko) 2021-10-18
US20160371026A1 (en) 2016-12-22

Similar Documents

Publication Publication Date Title
KR102423291B1 (ko) 프로그램 전압을 보정하는 플래시 메모리 장치, 3차원 메모리 장치, 메모리 시스템 및 그의 프로그램 방법
KR102314135B1 (ko) 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법
KR102564563B1 (ko) 메모리 시스템 및 그 동작 방법
KR101944793B1 (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
US10437518B2 (en) Memory system and method of operating the same
KR102585221B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR102360211B1 (ko) 메모리 시스템의 동작 방법
US20140043901A1 (en) Nonvolatile memory device and operating method with variable memory cell state definitions
KR20130033017A (ko) 불휘발성 메모리 장치의 동작 방법
KR102452994B1 (ko) 반도체 메모리 장치 및 그 동작 방법
US10802761B2 (en) Workload prediction in memory system and method thereof
KR20200129467A (ko) 스토리지 컨트롤러 및 이를 포함하는 스토리지 장치
KR20170101000A (ko) 메모리 장치의 프로그램 방법 및 이를 적용하는 메모리 시스템
KR20180046067A (ko) 메모리 제어 장치 및 방법
CN111128280B (zh) 存储装置及其操作方法
US11183250B2 (en) Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods
KR102601211B1 (ko) 빠른 재사용 메모리 블록 검출 방법 및 이를 이용한 메모리 블록 관리 방법
KR20220032268A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
WO2022247775A1 (zh) 存储器及其擦除验证方法、操作方法、存储器系统
CN116403629A (zh) 存储装置
US11061615B2 (en) Memory system, memory controller and operating method thereof
CN115525210A (zh) 存储设备及其操作方法、操作非易失性存储器装置的方法
KR102632690B1 (ko) 비휘발성 메모리 장치 및 그 프로그램 방법
US11275524B2 (en) Memory system, memory controller, and operation method of memory system

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