KR20130069366A - 불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법 - Google Patents

불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법 Download PDF

Info

Publication number
KR20130069366A
KR20130069366A KR1020120124144A KR20120124144A KR20130069366A KR 20130069366 A KR20130069366 A KR 20130069366A KR 1020120124144 A KR1020120124144 A KR 1020120124144A KR 20120124144 A KR20120124144 A KR 20120124144A KR 20130069366 A KR20130069366 A KR 20130069366A
Authority
KR
South Korea
Prior art keywords
time
block
flash memory
program
memory
Prior art date
Application number
KR1020120124144A
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 US13/711,881 priority Critical patent/US20130159610A1/en
Publication of KR20130069366A publication Critical patent/KR20130069366A/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/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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Abstract

본 발명의 실시 예에 따른 불휘발성 반도체 메모리 장치는, 플래시 메모리의 개개의 블록마다 메모리 셀의 특성의 열화 상태를 검출하고, 플래시 메모리의 동작 조건을 개개의 블록의 열화 상태에 따라 설정한다.
플래시 메모리 내의 블록에 대해서 프로그램할 때에, 프로그램 개시부터 블록 내의 프로그램할 메모리 셀 가운데 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램 베리파이를 패스할 때까지의 제1시간(N%의 메모리 셀의 베리파이 패스 시간)을 계측한다. 그리고 상기 제1시간이 소정의 판정 기준치를 밑돈 경우에, 해당 블록의 블록 주소를 기억하여 다음에 해당 블록에 액세스할 때에, 플래시메모리의 동작 조건을 소정의 동작 조건으로 변경한다.

Description

불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법{NON-VOLATILE SEMICONDUCTOR MEMORY DEVICE AND OPERATIONAL CONDITION CONTROL METHOD THEREOF}
본 발명은 플래시 메모리를 갖는 불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법에 관한 것이다.
본 발명의 기술에 관련된 불휘발성 반도체 메모리 장치가 있다(특허 문헌 1을 참조). 특허 문헌 1의 불휘발성 반도체 메모리 장치는 기입과 소거 동작의 회수에 응답하여 최적인 소거가 수행된다. 따라서, 특허 문헌 1은 소거 회수의 증가에 수반해 소거 시간이 길어지는 것을 억제할 수 있는 불휘발성 반도체 메모리 장치를 제공하는 것을 목적으로 한다. 특허 문헌 1의 불휘발성 반도체 메모리 장치는 수행된 소거 동작의 회수를 소거 회수 기억부에 기억한다. 그리고 이 소거 회수에 따라 읽기 시간 설정 회로의 읽기 시간을 제어함으로써, 소거 회수에 근거해 읽기 시간이 설정될 수 있다.
또, 본 발명과 관련된 불휘발성 반도체 메모리 장치가 있다(특허 문헌 2를 참조). 이 특허 문헌 2는, 서브 블록들 각각의 데이터 소거 회수를 관리하는 기능을 내장하는 불휘발성 반도체 메모리 장치를 제공하는 것을 목적으로 한다. 이 불휘발성 반도체 메모리 장치에서는, 셀 어레이의 각 서브 블록이 서브 블록 단위로 소거될 때마다 데이터 소거 회수가 기억된다. 그리고 셀 어레이의 소정의 블록이 기억하는 데이터 소거 회수의 허용 최대치를 참조해, 각 서브 블록마다 데이터 소거 회수를 제한한다.
또, 본 발명과 관련된 기억 매체 상의 데이터 관리를 위한 방법이 있다(특허 문헌 3을 참조). 특허 문헌 3의 데이터 관리를 위한 방법에서는, 제1의 블록이 소거되어야 할 때, 제1의 블록의 소모 레벨(Wear Level)이 소거를 실시하는데 허용 가능한가 판정된다. 제1의 블록의 소모 레벨이 허용가능한 값이면, 제1의 블록 상의 데이터는 소거된다. 그렇지 않으면, 제1의 블록보다 낮은 소모 레벨을 가지는 제2의 블록이 선택되어 제2의 블록의 데이터가 제1의 블록에 카피된다. 각 블록은 소거된 회수를 감시하는 관련하는 카운터(을)를 가진다. 과거에 대부분 소거되어 있지 않은 블록은 미래에 소거될 가능성이 낮기 때문에, 제1의 블록은 빈번하게 소거되지 않게 될 것이다. 따라서 수명이 연기될 수 있다. 제2의 블록은 새로운 데이터를 기억하기 위해서 사용될 수가 있어보다 빈번하게 사용될 것이다.
또, 본 발명과 관련된 단말 장치가 있다(특허 문헌 4를 참조). 이 특허 문헌 4에 기재의 단말 장치는, 낸드형 플래시 메모리 상의 특정의 영역에 갱신(Update)이 집중하는 것을 막아, 낸드형 플래시 메모리 전체에 갱신 빈도를 분산시킬 수가 있다. 또, 특허 문헌 4는, 갱신의 발생시에 블록의 갱신 회수를 감소시켜 제품의 데이터 갱신에 관한 처리 속도를 향상할 수 있는 단말 장치를 제공하는 것을 목적으로 한다.
또, 본 발명과 관련된 불휘발성 반도체 메모리 장치가 있다(특허 문헌 5를 참조). 이 특허 문헌 5의 멀티 레벨 불휘발성 반도체 메모리 장치는, 불필요한 베리파이를 삭감해, 전체 데이터 기입 시간의 단축을 꾀하는 것을 목적으로 한다.
- 특허 문헌 1: 특허3946849호 명세서 - 특허 문헌 2: 특개2005-122800호 공보 - 특허 문헌 3: 특표2003-532222호 공보 - 특허 문헌 4: 특개2002-32256호 공보 - 특허 문헌 5: 특개2000-163976호 공보
낸드형 플래시 메모리에 있어서, 프로그램-소거 사이클링(Cycling)을 반복하면 메모리 셀의 산화막이 열화된다. 산화막이 열화되면, 산화막 중에 전하 트랩이 발생하여 프로그램 한 셀의 반응을 일으키는 최소의 물리량 Vt의 분포가 퍼지는 경향이 있다. 예를 들면, 도 10은, SLC(Single Level Cell)의 반응을 일으키는 최소의 물리량(Vt)의 분포를 나타내는 도면이다. 도 10(I)은 사이클링 전에 있어서의 반응을 일으키는 최소의 물리량 Vt의 분포를 나타낸다. 도 10(Ⅱ)는 사이클링 후에 있어서의 반응을 일으키는 최소의 물리량 Vt의 분포를 나타내고 있다. 이 도면에 있어서, 전압 Vpgmv는 프로그램 베리파이시의 워드 라인에 인가되는 전압을 나타낸다. 전압 Vread는, 리드시의 비선택 워드 라인에 인가되는 전압을 나타낸다. 이 도면에 도시된 바와 같이, 사이클링을 반복함에 따라 메모리 셀의 반응을 일으키는 최소의 물리량 Vt의 사이클링 후의 분포가 사이클링 전과 비교해 퍼지는 것을 알 수 있다.
이 프로그램 한 셀의 반응을 일으키는 최소의 물리량 Vt의 분포가 퍼지면, 다음과 같은 문제가 일어날 가능성이 있다. 예를 들면, 낸드형 플래시 메모리가 SLC의 경우라면, 과프로그래밍(Over Programming)에 의한 컬럼 리드(Column Read) 불량이 발생할 가능성이 있다. MLC(Multiple Level Cell)의 경우에는, 복수의 반응을 일으키는 최소의 물리량 Vt의 각각이 인접 스테이트(State)와 겹치는 것에 의한 읽기 불량이 발생할 수 있다. 이것들은 낸드형 플래시 메모리의 신뢰성의 면에서 중대한 문제가 된다.
기존에는 이러한 문제를 회피하기 위해, ECC(Error Checking and Correction:에러 검출 정정) 기능의 확충, 각 블록의 사이클링 회수(프로그램 및 소거 동작등의 실시 회수)를 가능한 한 평균화하기 위한 시스템에 의한 대처(Ware Leveling), 또는, 낸드형 플래시 메모리 전체의 평균 사이클링 회수를 관리하여 평균 사이클링 회수에 따라 낸드형 플래시 메모리의 동작 조건을 변경하는 방법을 사용하고 있다.
그렇지만, ECC를 확충하는 경우, ECC의 정보를 기억하기 위한 메모리 영역이 필요하기 때문에 낸드형 플래시 메모리의 칩 면적이 증가한다. 또, 데이터의 읽기, 쓰기 동작시에 ECC를 산출하는 처리가 필요하기 때문에, 시스템 측에도 부담이 간다. 또, 각 블록의 사이클링 회수를 평균화하는 경우는, 시스템 측에 다수의 레지스터(사이클링 회수를 블록마다 보관 유지하는 레지스터)가 필요하게 되어, 이것도 또 부담된다. 또, 사이클링 회수에 의해 낸드형 플래시 메모리의 동작 조건을 변경하는 경우는, 낸드형 플래시 메모리 전체의 사이클링 회수에 의해 동작 조건이 관리된다. 따라서, 사이클링 회수가 실제로는 적은 블록에 대해서도 새로운 동작 조건이 일괄적으로 적용되어, 낸드형 플래시 메모리의 퍼포먼스의 저하로 연결되는 결점이 있다.
이러한 실정에 따라, 본 발명의 목적은, 플래시 메모리의 개개의 블록마다 메모리 셀의 특성의 열화 상태에 의해, 플래시 메모리의 동작 조건을 개개의 블록의 열화 상태에 응해 설정할 수가 있는, 불휘발성 반도체 메모리 장치, 및 불휘발성 반도체 메모리 장치에 있어서의 동작 조건 제어 방법을 제공하는 것에 있다.
상기 과제를 해결하기 위한 본 발명의 불휘발성 반도체메모리 장치는, 플래시 메모리 내의 블록에 대해서 프로그램을 실시할 때에, 상기 블록 안의 프로그램 해야 할 메모리 셀 가운데 소정의 퍼센트의 메모리 셀의 프로그램이 완료될 때까지의 제1시간을 계측하는 기능과, 상기 제 1시간과 소정의 판정 기준치인 제2시간 사이를 비교하는 기능과, 상기 블록에 대해 상기 제 1시간이 상기 제 2시간 이하인 경우는, 해당 블록에 다음에 액세스할 때, 상기 플래시 메모리의 동작 조건을 소정의 동작 조건으로 변경해 액세스하는 기능을 갖추는 것을 특징으로 한다.
본 발명의 불휘발성 반도체 메모리 장치에 대해서는, 플래시 메모리 내의 블록에 대해서 프로그램을 실시할 때에, 블록 내의 프로그램 되어야 할 메모리 셀 가운데 소정의 퍼센트의 메모리 셀의 프로그램이 완료하는 시간을 판정해, 이 시간이 판정 기준 이하일 경우는, 다음에 그 블록에 액세스할 때에, 플래시 메모리의 동작조건을 소정의 동작 조건으로 변경한다. 이것에 의해, 본 발명의 불휘발성 반도체 메모리 장치에 대해서는, 플래시 메모리의 개개의 블록마다 메모리 셀의 특성의 열화 상태를 검출할 수 있어 플래시 메모리의 동작 조건을 개개의 블록의 열화 상태에 응해 설정할 수가 있다. 이 때문에, 플래시 메모리의 신뢰성의 향상을 꾀할 수가 있다.
도 1은 본 발명의 제1의 실시 형태와 관계되는 불휘발성 반도체 메모리 장치의 구성을 나타내는 블록도이다.
도 2는 낸드형 플래시 메모리의 구성을 나타내는 도면이다.
도 3은 메모리 셀 어레이의 구성을 나타내는 도면이다.
도 4는 사이클링 회수에 대한 프로그램 시간(tPROG)과 N% 패스 시간(tPROG_Majority)과 소거 시간(tERS)의 변화 특성을 나타내는 도면이다.
도 5는 플래시 메모리에 있어서의 동작 조건의 변경과 N%패스시(tPROG_Majority)의 변화 특성을 나타내는 도면이다.
도 6은 조건 테이블의 예를 나타내는 도면이다.
도 7은 본 실시 형태의 불휘발성 반도체 메모리 장치에 있어서의 동작의 흐름을 나타내는 순서도이다.
도 8은 본 발명의 제2의 실시 형태와 관계되는 불휘발성 반도체 메모리 장치(1A)의 구성을 나타낸다 블록도이다.
도 9는 낸드형 플래시 메모리(20)A의 구성을 나타내는 도면이다.
도 10은 SLC의 반응을 일으키는 최소의 물리량 Vt의 분포를 나타내는 도면이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
<제 1 실시 예>
이하, 본 발명의 실시의 형태를 첨부 도면을 참조해 설명한다.
본 실시 형태의 불휘발성 반도체 메모리 장치에 대해서는, 사이클링 회수가 아닌, 개개의 블록(메모리 셀 어레이에 대해서 액세스(예를 들면, 프로그램등) 할 때의 단위가 되는 블록)의 프로그램 시간을 모니터하여, 프로그램 시간이 판정 기준치를 밑돌았다고 판정되면, 해당 블록 주소를 기억해, 그 블록에 다음에 액세스할 때에, 낸드형 플래시 메모리의 동작 조건을 변경한다.
즉, 낸드형 플래시 메모리는 사이클링을 거듭하는 것으로 메모리 셀의 산화막이 열화된다. 메모리 셀의 산화막이 열화되면, 전하 트랩이 발생하고, 이 전하 트랩에 전하가 포획되는 것으로, 메모리 셀의 프로그램 시간은 빨라진다. 그러나 낸드형 플래시 메모리에서는 복수 비트의 셀을 동시에 프로그램하는 경우, 그 중에는 반드시 프로그램 속도가 늦은 비트(Slow program bit)가 존재한다. 이 때문에 프로그램 시간의 변화는, 프로그램 속도가 늦은 비트에 의해 판정되기 때문에, 개개의 비트의 경향을 알 수 없다.
거기서, 속도가 늦은(프로그램 시간이 긴) 비트에 의해 전체의 프로그램 시간의 변화가 모르게 되는 것을 막기 위해, 낸드형 플래시 메모리에는, 프로그램 페일 비트(Program fail bit)의 수를 카운트한다. 그리고 프로그램 비트 총수에 대해서 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램되었을 때에, 외부에 플래그를 출력하는 기능을 구비한다. 또, 낸드형 플래시 메모리에, 외부로부터의 요구에 응해 동작 조건을 변경하는 기능을 제공하고 있다.
그리고 낸드형 플래시 메모리를 사용하는 불휘발성 반도체 메모리 장치는, 플래시 메모리의 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램 베리파이를 패스했을 때에 출력되는 플래그(F_Majority)(N%패스 정보)를 모니터한다. 그리고 불휘발성 반도체 메모리 장치는 N%패스 시간(tPROG_Majority)(프로그램 개시부터 플래그(F_Majority)가 출력될 때까지의 시간)을 판정한다. 이때, 불휘발성 반도체 메모리 장치는, N%패스 시간(tPROG_Majority)('시간 tPROG_Majority'라고도 부른다)의 판정 기준치(예를 들면, 150㎲)와 시간 tPROG_Majority를 비교해, 시간 tPROG_Majority가 판정 기준치를 밑돈 회수에 응해, 다음에 낸드형 플래시 메모리에 적용되어야 할 동작 조건을 변경해 설정한다.
그리고 불휘발성 반도체 메모리 장치에서는, 시간 tPROG_Majority가 판정 기준치를 밑돈 회수에 응해, 다음번보다 그 블록 주소에 액세스할 경우에는 새로운 동작 조건을 적용하도록 낸드형 플래시 메모리에 요구한다. 상기 동작 조건이란, 예를 들면 프로그램/프로그램 베리파이/리드/소거(Progaram/Progarm Verify/Read/Erase)때의 동작 조건이다.
[불휘발성 반도체 메모리 장치의 구성]
도 1은 본 발명의 제 1 실시 예에 따른 불휘발성 반도체 메모리 장치의 구성을 나타내는 블록도이다. 도 1에 나타내는 불휘발성 반도체 메모리 장치(1)는, 낸드형 플래시 메모리(20, 이하 '플래시 메모리'라 칭함)를 가지는 불휘발성 반도체 메모리 장치이며, 본 발명에 직접 관계하는 부분만을 나타낸 것이다. 도 1을 참조하면, 본 실시예의 불휘발성 반도체 메모리 장치(1)는 메모리 셀이 어레이로 배열되는 낸드형 플래시 메모리(20)와 컨트롤러(10)를 포함한다. 또, 낸드형 플래시 메모리(20)는 메모리 셀이 어레이 형태로 배열되는 메모리 셀 어레이(21)를 포함한다.
컨트롤러(10)는 낸드형 플래시 메모리(20) 내의 블록(플래시 메모리(20) 내의 메모리 셀 어레이(21)에 액세스할 때의 단위가 되는 블록)에 대해서, 프로그램 실행 명령 등의 커맨드를 발행한다. 그리고 컨트롤러(10)는 낸드형 플래시 메모리(20)에 있어서의 동작 조건을 설정하기 위한 커맨드(동작 조건 변경 설정 커맨드 CMD)를 발행한다. 낸드형 플래시 메모리(20)는 컨트롤러(10)로부터 입력한 커맨드(CMD)에 포함되는 동작 조건의 변경 설정 정보에 따라, 예를 들면, 프로그램 전압이나, 리드 전압 등의 동작 조건을 설정한다. 또, 낸드형 플래시 메모리(20)는 후술하는 플래그 F_Majority(N%패스 정보)의 신호를 컨트롤러(10)에 출력한다.
컨트롤러(10)는 낸드형 플래시 메모리(20)로부터의 플래그(F_Majority)를 기본으로, N%패스 시간(tPROG_Majority) 판정부(13)에 의해, 프로그램 대상이 되는 블록에 있어서의 프로그램 개시부터 플래그(F_Majority)가 출력될 때까지의 시간(tPROG_Majority)을 계측한다, 또, N%패스 시간 판정부(13)는 시간(tPROG_Majority)이 소정의 판정 기준치(예를 들면, 150㎲)를 밑도는지를 판정한다.
블록 주소 기억부(12)는 N%패스 시간 판정부(13)에 의해 프로그램 대상과 블록에 있어서의 시간(tPROG_Majority)가 소정의 판정 기준치(예를 들면, 150㎲) 미만으로 판정되었을 경우에, 해당 블록의 주소와 해당 블록의 시간(tPROG_Majority)이 판정 기준치를 밑돈 회수(보정 회수)를 기억한다.
상기 구성의 불휘발성 반도체 메모리 장치(1)에 있어서, 낸드형 플래시 메모리(20) 내의 블록을 액세스하는 경우, 컨트롤러(10)는 최초로 블록 주소 기억부(12)와 조건 테이블(11)을 참조한다. 덧붙여 조건 테이블(11)에는 시간 tPROG_Majority의 판정 기준치와, 시간 tPROG_Majority이 판정 기준치를 밑돈 회수(보정 회수)와, 이 밑돈 회수에 대응해 다음번부터의 그 블록에 적용되어야 할 낸드형 플래시 메모리(20)의 동작 조건이 기억된다(도 6을 참조).
그리고, 컨트롤러(10)는 액세스하려는 블록의 블록 주소가 블록 주소 기억부(12)에 기억된 경우 보정 회수 및 거기에 대응하는 동작 조건을 조건 테이블(11)로부터 읽어낸다. 컨트롤러(10)는 이 조건 테이블(11)로부터 읽어낸 동작 조건을 낸드형 플래시 메모리(20)에 대해서 설정한 후에 동작(리드/프로그램/소거)을 실시한다.
낸드형 플래시 메모리(20)는 컨트롤러(10)로부터 요구된 동작 조건 변경 설정 명령(동작 조건 변경 설정 커맨드 CMD)에 응답해 동작 조건을 변경할 수 있는 기능을 갖는다. 동작 조건의 변경의 예로, 낸드형 플래시 메모리(20)는 프로그램 스트레스(Program stress)의 개시 전압(Vipgm)을 변경(또는, 강하)할 수 있다. 또, 예를 들면, 낸드형 플래시 메모리(20)는 메모리 셀의 게이트 전압을 일정 전압(Vstep) 상승시키면서 프로그램을 실행하는 증가형 펄스 프로그램(Incremental Step Pulse-Program ISPP) 사이클에 있어서의 전압 스텝폭(Vstep)을 변경(작게) 한다. 이것에 의해, 낸드형 플래시 메모리(20)에 대해, 프로그램 속도를 억제해 과프로그램(Over programming)을 방지한다.
혹은, 낸드형 플래시 메모리(20)는 리드시의 비선택 워드 라인의 전압(Vread)을 변경한다(높게 한다). 이것에 의해, 플래시 메모리(20)는 메모리 셀에 대해서 다소 과프로그램이 발생해도, 메모리 셀로부터 데이터를 읽어낼 때에 데이터를 정상적으로 읽어내기 위한 읽기 마진(여유도)을 가질 수가 있다. 혹은, 낸드형 플래시 메모리(20)는 프로그램 베리파이(Program verify) 시의 선택 워드 라인의 전압(Vsel)을 변경(높게)할 수 있다. 메모리 셀은 사이클링을 거듭하면 프로그램하기 쉬워지지만 동시에 전하의 보관 및 유지 특성도 열화한다. 따라서, 낸드형 플래시 메모리(20)는 프로그램 베리파이시의 선택 워드 라인의 전압(Vsel)을 변경(높게)함으로써, 데이터를 정상적으로 읽어낼 수 있는 마진을 가질 수 있다.
도 2는 도 1의 낸드형 플래시 메모리의 구성을 나타내는 블록도이다. 도 2는 본 발명에 관계하는 부분을 나타낸 것이다. 도 2를 참조하면, 낸드형 플래시 메모리(20)는 메모리 셀 어레이(21)와 페이지 버퍼 디코더(22A)를 갖는 페이지 버퍼(22)와 행 디코더(23)를 가진다. 또, 낸드형 플래시 메모리(20)는 낸드형 플래시 메모리(20)의 전체의 동작을 통괄해 제어하는 메모리 제어 회로(31), 동작조건변경 설정부(32), 출력 데이터 버퍼(33), 입력 데이터 버퍼(34), 프로그램 비트 카운터(35), 프로그램 비트비 계산부(36), 페일 비트 카운터(37), 그리고 동작 전압 컨트롤러(38)를 포함한다.
상술한 구성의 낸드형 플래시 메모리(20)에 대해, 메모리 셀 어레이(21)는 도 3에 나타내는 블록을 복수 개 갖추고 있다. 각 블록은, 도 3에 도시된 바와 같이, N+1개의 비트 라인(BL0~BLN)(비트선BL로 총칭)과 n+1개의 워드 라인(WL0~WLn)(word line WL로 총칭)과 공통 소스 라인(CSL)과 각 비트 라인(BL)과 공통 소스 라인(CSL)과의 사이에 각각 접속된 N+1개의 메모리 스트링(ST0~STN)(메모리 스트링 ST로 총칭)을 갖는다. 각 메모리 스트링(ST)은 서로 직렬 접속된 n+1개의 플로팅 게이트 구조의 전기적 개서 가능한 불휘발성의 메모리 셀(MC0~MCn)을 포함한다. 각 메모리 스트링(ST)의 드레인 측 메모리 셀(MCn)은 선택 게이트 트랜지스터(SS1)에 의해 대응하는 비트 라인(BL)에 접속되며, 소스 측의 메모리 셀(MC0)은 선택 게이트 트랜지스터(GS1)를 개입시켜 공통 소스 라인(CSL)에 접속된다. 또, 동일행의 메모리 셀의 제어 게이트는, 공통의 워드 라인(WL)에 접속된다.
도 3에 나타내는 블록에 대해, 메모리 셀의 소거는, 예를 들면, 반도체 기판에 고전압을 인가하고, 워드 라인(WL0~WLn)에 0V를 인가하는 것으로 행해진다. 이것에 의해, 폴리 실리콘 등으로 형성되는 전하저장층인 플로팅 게이트로부터 전자를 추출하며, 메모리 셀(MC)의 반응을 일으키는 최소의 물리량 전압을 소거 반응을 일으키는 최소의 물리량 전압 VtL(예를 들면,-1 V)로 설정한다. 한편, 프로그램 동작의 예에 있어서, 소스 및 드레인에 0V를 인가하여 제어 게이트(선택 워드 라인)에 고전압을 인가하는 것으로써, 플로팅 게이트에 전자를 주입한다. 이러한 동작에 의해서 반응을 일으키는 최소의 물리량 전압을 상승시켜 쓰기 반응을 일으키는 최소의 물리량 전압 VtH로 설정한다. 그리고, 메모리 셀(MC0~MCn)의 반응을 일으키는 최소의 물리량 전압이 반응을 일으키는 최소의 물리량 전압 VtL의 경우, 해당 메모리 셀의 데이터 치를“1”로, 반응을 일으키는 최소의 물리량 전압이 반응을 일으키는 최소의 물리량 전압 VtH의 경우, 해당 메모리 셀의 데이터 치를“0”으로 한다.
또, 메모리 셀로부터 데이터를 독출할 때는, 모든 비트선(BL)을 소정의 전압으로 프리차지한다. 그 후에, 읽기 대상의 메모리 셀(MC)에 공통에 접속된 워드 라인(WL)에 최소의 물리량 VtL와 VtH 간의 읽기 전압을 인가한다. 또, 상기 선택 메모리 셀 이외의 메모리 셀(MC) 및 선택 게이트 트랜지스터(SS1, GS1)의 각 제어 게이트에 인가해, 상기 선택 메모리 셀 이외의 메모리 셀(MC) 및 선택 게이트 트랜지스터(SS1, GS1)를 도통시킨다. 따라서, 선택 메모리 셀의 데이터 치가“1” 때에는, 해당 선택 메모리 셀에 셀 전류가 흐르는 한편, 선택 메모리 셀의 데이터 값이“0” 때에는, 해당 선택 메모리 셀에 셀 전류가 흐르지 않는다. 그렇기 때문에, 셀 전류가 흐르는지 아닌지에 근거해, 각 선택 메모리 셀에 기입된 데이터를 독출해 낼 수가 있다.
또, 도 2에 나타내는 낸드형 플래시 메모리(20)에 대해, 동작 조건 변경 설정부 (32)는, 컨트롤러(10)로부터 제공된 동작 조건 변경 설정 커맨드(CMD)가 지시하는 동작 조건에 따라, 낸드형 플래시 메모리(20)에 있어서의 동작 조건을 설정한다. 출력 데이터 버퍼(33)는 메모리 셀 어레이(21)로부터 읽어낸 데이터의 외부 출력용 버퍼 회로이다. 출력 데이터 버퍼(33)는 외부 장치와의 접속선이 되는 데이터 입출선(I/Os)으로 데이터를 출력한다. 입력 데이터 버퍼(34)는 데이터 입출선(I/Os)에 접속되어 외부 장치로부터의 데이터의 입력, 주소 신호의 입력, 그리고 동작 제어 커맨드 등의 입력에 사용되는 버퍼 회로이다. 프로그램 비트 카운터(35)는 프로그램 대상과 블록에 있어서의 프로그램해야 할 메모리 셀의 비트 수(기입해야 할 비트 총수)를 검출해, 이 프로그램 비트 수의 정보를 프로그램 비트비 계산부(36)에 제공한다.
페일 비트 카운터(37)는 베리파이 읽기시, 페일 셀로 판정된 메모리 셀의 비트수를 카운트하며, 페일 셀 수의 정보를 프로그램 비트비 계산부(36)에 출력한다. 프로그램 비트비 계산부(36)는 프로그램 비트 카운터(35)로부터 입력된 프로그램 비트수(Pb)의 정보와 페일 비트 카운터(37)로부터 입력된 페일 셀 수(Fb)의 정보를 기본으로, 이하의 수학식 1에 의해 프로그램 비트비(%)를 산출한다. 덧붙여, 패스 비트비는 프로그램하는 블록에 있어서 프로그램에 성공(프로그램 베리파이를 패스)한 메모리 셀의 비율을 나타내는 수치이다. 또, 프로그램 비트비(%)를 N% 레시오라고 칭하기도 한다.
Figure pat00001
그리고, 프로그램 비트비 계산부(36)는 프로그램 비트비(프로그램 베리파이를 패스한 메모리 셀의 비율)가 소정의 비율(예를 들면, 70%)을 넘었을 때에 플래그 F_Majority를 컨트롤러(10)로 출력한다.
동작 전압 컨트롤러(38)는 기입(Program), 소거(Erase), 독출(Read) 등의 동작시 이용하는 승압된 고전압이나 중간 전압을 발생한다. 이 동작 전압 컨트롤러(38)에 의해서 생성된 전압 신호들(Vread, Vpgm, Vers등)은 행 디코더(23)와 페이지 버퍼(22)에 출력된다. 이 동작 전압 컨트롤러(38)에 있어서의 전압 신호의 발생 동작은, 메모리 셀(MC)로부터의 데이터의 읽기, 프로그램 및 소거 동작 등을 수행하기 위해 메모리 제어 회로(31)와 동작 조건 변경 설정부(32)로부터 출력되는 제어 명령에 근거해 행해진다.
[본 실시 형태의 불휘발성 반도체 메모리 장치(1)의 동작 설명]
상술한 것처럼, 낸드형 플래시 메모리(20)는 사이클링을 거듭하는 것으로 메모리 셀의 산화막에 전하 트랩이 발생해, 메모리 셀의 프로그램 시간은 빨라진다(프로그램하기 쉬워진다). 그러나, 낸드형 플래시 메모리(20)에서는 복수 비트의 셀을 동시에 프로그램하는 경우에, 그 중에는 반드시 프로그램 속도가 늦은(프로그램 시간이 긴) 비트가 존재한다. 따라서, 합계한 프로그램 시간(tPROG)으로서는 나타나기 어렵다.
거기서, 프로그램 속도가 늦은 비트에 의해 대부분의 셀(Majority)의 프로그램 시간이 모르게 되는 것을 막기 위해, 프로그램 대상이 되는 블록에 대해 프로그램 페일 비트(Program fail bit) 수를 카운트해, 프로그램 비트 총수에 대해서 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램되었을 때에 외부에 플래그 F_Majority를 출력하는 기능을 마련한다. 또, 낸드형 플래시 메모리(20)에, 외부로부터의 요구에 응해 동작 조건을 변경할 수 있는 기능을 마련한다.
그리고, 불휘발성 반도체 메모리 장치(1)는 프로그램 대상이 되는 블록의 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램 베리파이를 패스했을 때에 출력되는 플래그 F_Majority를 모니터한다. 모니터 결과에 따라 불휘발성 반도체 메모리 장치(1)는 시간 tPROG_Majority(프로그램 개시부터 플래그 F_Majority가 출력될 때까지의 시간)를 판정한다.
그리고, 불휘발성 반도체 메모리 장치(1)는 프로그램 대상이 되는 블록에 있어서의 N% 패스 시간(tPROG_Majority)이 판정 기준치(예를 들면, 150㎲)를 밑돌았을 때, 그 블록 주소와 해당 블록에 대한 시간 tPROG_Majority이 판정 기준치를 밑돈 회수(보정 회수)를 블록 주소 기억부(12)에 기억한다. 다음 번에 그 블록 주소에 액세스할 경우에는, 보정 회수를 기본으로 조건 테이블(11)을 참조해, 새로운 동작 조건을 적용하는 것을 낸드형 플래시 메모리(20)에 요구한다.
도 4는 사이클링 회수에 대한 프로그램 시간(tPROG)과 N%패스 시간(tPROG_Majority)과 소거 시간(tERS)의 변화 특성을 나타내는 도면이다. 도 4에서, 횡축은 사이클링 회수(log 스케일)를, 세로축은 시간을 나타낸다. 덧붙여, 세로축에 나타내는 시간은, tPROG와 tPROG_Majority와 tERS의 각각의 특성 곡선에 응한 A. U.(임의 단위)이다.
도 4를 참조하면, 사이클링 회수 0으로부터 N1의 사이에서는, 프로그램 시간(tPROG)과 시간(tPROG_Majority)과 소거 시간(tERS)의 각각이, 거의 일정한 것으로 나타난다. 그리고, 사이클링 회수 N1 이후, 플래시 메모리(20)에서는, 사이클링을 거듭하는 것으로 메모리 셀의 산화막에 전하 트랩이 발생해, 메모리 셀의 프로그램 시간(tPROG)은 짧아진다(프로그램하기 쉬워진다). 또, 반대로 소거 시간(tERS)은 길어진다. 또, 프로그램 개시부터 플래그 F_Majority가 출력되는 시간(tPROG_Majority)도 짧아진다.
그리고, 시간(tPROG_Majority)이 짧아져, 판정 기준치(시간 Rtime)를 밑돌았을 때(사이클링 회수 N2 때)에, 컨트롤러(10)는 낸드형 플래시 메모리(20)에 커맨드(CMD)를 발행하여 낸드형 플래시 메모리(20)에 있어서의 동작 조건(동작조건의 상세한 내용에 대해서는 후술한다)을 변경한다. 그리고, 낸드형 플래시 메모리(20)의 동작 조건을 변경하는 것으로써, 시간(tPROG_Majority)는 일단 원래의 시간(사이클링 회수 N1 이하의 tPROG_Majority의 시간)까지 복귀한다.
도 5는 플래시 메모리에 있어서의 동작 조건의 변경과 시간(tPROG_Majority)의 변화를 나타내는 도면이다. 도 5는, 도 4와 같게, 횡축에 사이클링 회수(log 스케일), 세로축에 시간(A.U.)을 나타내고 있다. 도 5를 참조하면, 사이클링 회수 0으로부터 N1의 사이에서는, 프로그램 시간(tPROG)과 N%패스 시간(tPROG_Majority)과 소거 시간(tERS)의 각각이, 거의 일정하게 유지된다. 그리고, 사이클링 회수 N1 이후, 낸드형 플래시 메모리(20)는 사이클링을 거듭하는 것으로 메모리 셀의 산화막에 전하 트랩이 발생해, 시간(tPROG_Majority)는 짧아진다. 또, 반대로 소거 시간(tERS)은 길어진다.
그리고, 사이클링 회수 N2에 대해, 시간(tPROG_Majority)가 짧고, 판정 기준치(시간 Rtime)를 밑돌았을 때에, 컨트롤러(10)는 낸드형 플래시 메모리(20)에 커맨드(CMD)를 발행해, 낸드형 플래시 메모리(20)에 있어서의 동작 조건을 변경한다. 그리고, 낸드형 플래시 메모리(20)에 있어서의 동작 조건을 변경하는 것으로써, N%패스 시간(tPROG_Majority)의 시간은, 원래의 시간(사이클링 회수 N1이하의 tPROG_Majority의 시간)까지 복귀한다. 사이클링 회수 N2에 대해, 동작 조건을 변경하는 것으로써, 시간(tPROG_Majority)가 바탕으로 복귀하지만, 이후의 사이클링 회수를 거듭하는 것으로, 플래그 F_Majority가 출력될 때 사이(tPROG_Majority)가 점차 짧게 되어 간다.
그리고, 사이클링 회수 N3에 대해, 시간(tPROG_Majority)가 짧고, 판정 기준치(시간 Rtime)를 밑돌았을 때에, 컨트롤러(10)는 낸드형 플래시 메모리(20)에 커맨드( CMD)를 발행해, 낸드형 플래시 메모리(20)에 있어서의 동작 조건을 변경한다. 그리고, 낸드형 플래시 메모리(20)의 동작 조건을 변경하는 것으로써, 시간 tPROG_Majority 동안 다시, 원래의 시간에 복귀한다. 이와 같이, 컨트롤러(10)는 낸드형 플래시 메모리(20)로부터 출력되는 플래그 F_Majority의 신호를 모니터해 시간 tPROG_Majority를 판정해, 이 시간 tPROG_Majority가 소정의 판정 기준치를 밑돌 때마다, 낸드형 플래시 메모리(20)에 있어서의 동작 조건을 변경한다.
상술한 낸드형 플래시 메모리(20)의 동작 조건을 변경하기 위해서, 컨트롤러(10) 내의 조건 테이블(11)에는, 시간 tPROG_Majority의 판정 기준치와 tPROG_Majority를 밑돈 회수와 이 밑돈 회수에 대응해 다음 번부터의 동작으로 그 블록에 적용되어야 할 동작 조건이 기억되고 있다.
도 6은 조건 테이블의 일례를 나타내는 도면이다. 도 6에 나타내는 표에 대해서는, 위로부터 순서 차례에, 보정 회수(몇 회의 보정인지를 나타내는 수)와 이 보정 회수에 대응하는 낸드형 플래시 메모리(20)의 동작 조건(리드시, 프로그램시, 프로그램 베리파이시, 및 소거시에 있어서의 동작 조건)을 가리키고 있다. 덧붙여 이 표에 대해, 리드시의 전압 Vread는, 리드시의 비선택 워드 라인의 초기 전압을 나타낸다. 프로그램시의 전압 Vipgm는 프로그램시의 초기 전압을 나타내고 있다. 또, 프로그램 베리파이시의 전압 Vpass는, 프로그램 베리파이시의 비선택 워드 라인의 초기 전압을 나타낸다. 전압 Vsel은 선택 워드 라인의 초기 전압을 나타내고 있다. 또, 소거시의 전압 Vers는 메모리 셀의 소거시의 소거 전압(초기 전압)을 나타내고 있다. 또, 시간 (tPROG_Majority)의 판정 기준 시간(Rtime)으로서 150㎲가 설정되고 있다.
도 6에 도시되었듯이, N%패스 시간(tPROG_Majority)(정확하게는, 프로그램 개시부터 플래그 F_Majority가 출력될 때까지의 시간)이 판정 기준시 사이 150㎲보다 최초로 짧아졌을 때(도 5에 나타내는 사이클링 회수 N2 때)에, 1회째의 동작 조건의 보정을 한다. 이 보정 1회째로는, 리드시의 비선택 워드 라인 전압 Vread를 초기 전압 Vread로부터 0. 1V증가시켜 Vread1로 한다(Vread1=Vread+0.1 V). 이것은, 플래시 메모리의 산화막이 열화하는 것에 의해, 프로그램 속도가 빨라져(프로그램 전압이 저하해), 메모리 셀이 과프로그램(반응을 일으키는 최소의 물리량 Vt가 상승)되고 있을 가능성이 있기 때문에, 비선택 워드 라인의 전압 Vread를 상승시키는 것이다.
또, 보정 1회째로는, 프로그램시의 초기 전압 Vipgm를 초기 전압 Vipgm으로부터 1.0V 감소시켜 Vipgm1(Vipgm1=Vipgm-1. 0 V)로 한다. 이것은, 플래시 메모리의 산화막이 열화하는 것으로써, 프로그램 속도가 빨라져, 메모리 셀이 과프로그램되는 것을 막기 위해서 프로그램 전압 Vipgm을 저하시키는 것이다.
또, 보정 1회째로는, 증가형 펄스 프로그램(ISPP) 사이클에 있어서의 스텝 전압(Vstep1)을, 초기 전압(Vstep)인 채로 한다(Vstep1=Vstep). 덧붙여 증가형 펄스 프로그램(ISPP)은 메모리 셀의 게이트에 인가하는 전압을 스텝 상에 증가시켜 기입을 실시하는 방식이다. 낸드형 플래시 메모리(20)에 있어서, 증가형 펄스 프로그램(ISPP)은 프로그램 전압을 루프마다 일정치씩 증가시켜 선택된 메모리 셀에 데이터의 기입을 실시하는 것이다.
또, 보정 1회째로는 프로그램 베리파이시의 비선택 워드 라인의 전압 Vpass는 초기 전압 Vpass로부터 0.1V 증가시킨 Vpass1(Vpass1=Vpass+0.1V)로 한다. 이것은, 플래시 메모리의 산화막이 열화하여 반응을 일으키는 최소의 물리량 Vt가 저하되기 때문이다. 반대로, 프로그램 베리파이시에 비선택 워드 라인의 전압 Vpass를 상승시켜 대응하는 것이다. 또, 프로그램 베리파이시의 전압 Vsel를, 처음 전압 Vsel로부터 0.1V 증가시켜 Vsel1(Vsel1=Vsel+0. 1 V)으로 해, 소거시의 전압 Vers1는 초기 전압 Vers인 채로 한다(Vers1=Vers). 덧붙여, 이 예에서는, 소거시의 전압 Vers1를 초기 전압 Vers로 제공하고 있지만, 메모리 셀이 과프로그램되고 있을 가능성을 고려해 증가시킬 수도 있다.
다음에, 시간 tPROG_Majority가 기준 시간 150㎲보다 2번째 짧아졌을 때(도 5에 나타내는 사이클링 회수 N3 때)에, 2번째의 동작 조건의 보정을 실시한다. 2번째의 보정에서는, 리드시의 비선택 워드 라인의 전압 Vread를, 초기 전압 Vread로부터 0.2V 증가시켜 Vread2로 제공한다(Vread2=Vread+0.2V). 또, 프로그램 전압 Vipgm를 초기 전압 Vipgm로부터 1.5V 감소시킨 Vipgm2(Vipgm2=Vipgm-1.5V)로 제공한다. 또, ISPP 사이클에 있어서의 스텝 전압(Vstep)을 초기 전압 Vstep로부터 0.1V 감소시킨 Vstep2(Vstep2=Vstep-0.1V)로 제공한다.
또, 보정 2번째에서는, 프로그램 베리파이시의 비선택 워드 라인의 전압 Vpass를 초기 전압 Vpass로부터 0.2V 증가시킨 Vpass2(Vpass2=Vpass+0.2V)로 제공한다. 또, 프로그램 베리파이시의 전압 Vsel를 초기 전압 Vsel로부터 0.1V 증가시킨 Vsel2(Vsel2=Vsel+0.1V)로 제공한다. 덧붙여, 소거시의 전압 Vers2는 초기 전압 Vers인 채로 한다(Vers2=Vers).
같은 방법으로, 컨트롤러(10)는 시간 tPROG_Majority가 판정 기준치를 밑돈 것을 검출할 때마다, 3번째, 4번째,…, 순차적으로 보정을 반복한다.
위에서 설명한 바와 같이, 본 실시 예의 낸드형 플래시 메모리(20)를 사용하는 불휘발성 반도체 메모리 장치(1)는 플래시 메모리(20)로부터 플래그 F_Majority가 출력될 때(tPROG_Majority)를 모니터링한다. 만일, 시간 tPROG_Majority가 판정 기준치를 밑돌았을 경우, 컨트롤러(10)는 그 블록 주소와 해당 블록에 대해 tPROG_Majority가 판정 기준치를 밑돈 회수(보정 회수)를 블록 주소 기억부(12)에 저장한다(첫회라면 1, 2번째라면 2, 3번째인 3,…).
컨트롤러(10)는 블록 주소 기억부(12)에 블록 주소가 기억되고 있는 블록에 액세스하려고 하는 경우, 블록 주소 기억부(12)에 기억되고 있는 해당 블록의 보정 회수를 기본으로 조건 테이블(11)을 참조한다. 그리고 컨트롤러(10)는 이 보정 회수에 대응하는 동작 조건을 읽어내, 그 읽어낸 동작 조건을 우선 낸드형 플래시 메모리(20)에 대해서 설정하고, 그 후에, 의도한 동작(리드/프로그램/erase)을 실시한다.
덧붙여 도 6에 나타내는 조건 테이블에 있어서의 설정치는, 예를 들면, 실험 데이터에 의해 결정한다. 또, 도 6에 나타내는 조건 테이블은, 일례를 나타내는 것이며, 불휘발성 반도체 메모리 장치의 종류나 구성에 따라 그 설정 조건은 변경될 수 있을 것이다. 또, 어느 블록에 있어서의 보정 회수가 증대(특성 열화가 진행)했을 경우는, 해당 블록을 사용하지 않게 할 수가 있다. 이것에 의해, 낸드형 플래시 메모리(20)의 수명을 늘리는 것과 동시에, 낸드형 플래시 메모리(20)에 있어서의 신뢰성의 향상을 꾀할 수가 있다.
도 7은 상술한 불휘발성 반도체 메모리 장치(1)에 있어서의 개략의 동작을 설명하는 순서도이다. 도 7(I)은 낸드형 플래시 메모리(20)에 있어서의 프로그램 동작시의 처리의 흐름을, 도 7(Ⅱ)은 프로그램 동작시에 있어서의 컨트롤러(10)의 처리의 흐름을 나타내고 있다.
최초로, 도 7(I)에 나타내는 플로차트(flow chart)를 참조해, 낸드형 플래시 메모리(20)의 동작의 흐름에 대해 설명한다. 최초로, 낸드형 플래시 메모리(20)에 대해서는, 동작 조건이 초기 상태로 설정되어 있는 것으로 가정 한다(단계 S101). 그리고, 낸드형 플래시 메모리(20)는 컨트롤러(10)로부터, 메모리 셀 어레이(21)에 있는 블록에 대한 프로그램 실행 명령을 수신했을 경우에(단계 S102), 이 프로그램 실행 명령과 함께 동작 조건 변경 설정 커맨드(CMD)를 수신했는지를 판정한다(단계 S103). 낸드형 플래시 메모리(20)는 단계 S103에 대해 동작 조건 변경 설정 커맨드(CMD)를 수신하지 않았다고 판정했을 경우(단계 S103:No), 메모리 셀 어레이(21)에 대한 동작 조건의 변경없이 프로그램 대상 블록에 대한 프로그램을 실행한다(단계 S105).
한편, 낸드형 플래시 메모리(20)는 단계 S103에 대해 동작 조건 변경 설정 커맨드(CMD)를 수신했다고 판정했을 경우(단계 S103:Yes), 동작 조건 변경 설정 명령(CMD)에 포함되는 동작 조건 데이터를 기본으로, 동작 조건 변경 설정부(32)에 의해 메모리셀 어레이(21)에 대한 동작 조건을 변경한다(단계 S104). 그 후, 단계 S105로 이동하여 메모리 셀 어레이(21)에 대한 동작 조건을 변경한 상태에서 해당 블록에 대한 프로그램을 실행한다(단계 S105).
계속되어, 낸드형 플래시 메모리(20)에서는, ISPP의 각 사이클의 프로그램 베리파이 시에, 페일 비트 카운터(37) 및 프로그램 비트비 계산부(36)에 의해 N%레시오(프로그램 비트비)를 산출한다(단계 S106). 낸드형 플래시 메모리(20)는 이 N%레시오가 소정의 비율(Rn%예를 들면, 70%)을 넘는지 아닌지를 판정한다(단계 S107). 낸드형 플래시 메모리(20)는 N%레시오가 소정의 비율(Rn%)을 넘지 않은 것으로 판정되었을 경우(단계 S107:No), 단계 S109로 이행해, 대상이 되는 블록으로 프로그램이 완료되었는지 아닌지를 판정한다(단계 S109).
한편, 낸드형 플래시 메모리(20)는 단계 S107에 대해 N%레시오가 소정의 비율(Rn%)를 넘었다고 판정되었을 경우(단계 S107:Yes), 이미 플래그 F_Majority의 컨트롤러(10)로의 송신이 끝난 상태인지 아닌지를 판정한다(단계 S108). 그리고 낸드형 플래시 메모리(20)는 단계 S108에 대해 플래그 F_Majority의 송신이 끝난 상태로 판정되었을 경우(단계 S108:Yes), 단계 S110에 이행하여 프로그램이 완료되었는지를 판정한다. 또, 낸드형 플래시 메모리(20)는 단계 S108에 대해 플래그 F_Majority의 송신이 끝난 상태가 아닌 것으로 판정되었을 경우(단계 S108:No), 컨트롤러(10)에 대해서, 플래그 F_Majority를 송신하고(단계 S109), 그 후, 단계 S110로 이동한다.
단계 S110에서는 프로그램 대상이 되는 블록에의 프로그램이 완료되었는지 아닌지가 판정된다. 낸드형 플래시 메모리(20)는 단계 S110에서 블록으로의 프로그램이 완료했다고 판정되었을 경우(단계 S110:Yes), 단계 S111에 이동하여 프로그램 동작을 종료한다. 한편, 낸드형 플래시 메모리(20)는 단계 S110에서 블록으로의 프로그램이 완료되지 않은 것으로 판정되었을 경우(단계 S110:No), 단계 S105로 이동하여 프로그램 동작을 계속한다.
도 7(Ⅱ)을 참조하면, 프로그램 동작에 있어서의 컨트롤러(10)의 처리 순서에 대해 설명한다. 도 7(Ⅱ)에 나타내는 플로차트(flow chart)를 참조해, 플래시 메모리(20) 내의 프로그램 대상 블록의 프로그램이 개시되면(단계 S201), 컨트롤러(10)에서는 조건 테이블(11)과 블록 주소 기억부(12)를 참조해(단계 S202), 해당 블록에 대한 낸드형 플래시 메모리(20)의 동작 조건을 변경할지를 판정한다(단계 S203). 단계 S203의 판정에 있어서, 컨트롤러(10)는 프로그램 대상이 되는 블록의 블록 주소가 블록 주소 기억부(12)에 기억되어 있는 경우, 이 블록에 대해서 낸드형 플래시 메모리(20)의 동작 조건을 변경하면 판정함과 함께 이 블록의 보정 회수를 읽어내다. 컨트롤러(10)는 이 보정 회수에 대응하는 동작 조건을 조건 테이블(11)로부터 추출한다.
그리고, 컨트롤러(10)는 단계 S203에 있어서, 낸드형 플래시 메모리(20)의 동작조건 변경으로 판정되었을 경우(단계 S203:Yes), 낸드형 플래시 메모리(20)에 대해서 프로그램 실행 명령을 송신함과 함께(단계 S204), 동작 조건 변경 설정 커맨드를 송신한다(단계 S205). 한편, 컨트롤러(10)는 단계 S203에서 낸드형 플래시 메모리(20)의 동작 조건을 변경하지 않는 것으로 단계 S203에서 판정되었을 경우(단계 S203:No), 낸드형 플래시 메모리(20)에 대해서, 프로그램 실행 명령만을 송신한다(단계 S206).
그리고, 낸드형 플래시 메모리(20)에 대해 프로그램 동작이 개시되면, 컨트롤러(10)는 낸드형 플래시 메모리(20)로부터 출력되는 플래그 F_Majority를 모니터한다(단계 S207). 컨트롤러(10)는 모니터링을 통해서 낸드형 플래시 메모리(20)로부터 플래그 F_Majority를 수신했는지 아닌지를 판정한다(단계 S208). 컨트롤러(10)는 이 플래그 F_Majority의 모니터를, 낸드형 플래시 메모리(20)에 있어서의 프로그램 실행의 기간 동안 계속해 실행한다.
단계 S208에서, 낸드형 플래시 메모리(20)로부터 플래그 F_Majority를 수신했다고 판정되었을 경우(단계 S208:Yes), 절차는 단계 S209로 이동한다. 그리고, 컨트롤러(10)는 프로그램을 개시하고 나서 플래그 F_Majority를 수신할 때까지의 시간 (tPROG_Majority)를 산출한다(단계 S209). 그 후, 단계 S210로 이동해, 컨트롤러(10)는 시간 tPROG_Majority가 소정의 판정 기준 시간(Rtime)보다 짧은가 아닌가를 판정한다(단계 S210).
단계 S210에서, 컨트롤러(10)는 시간 tPROG_Majority가 소정의 판정 기준 시간 (Rtime)보다 길다고 판정되었을 경우(단계 S210:No), 단계 S214로 이동해 처리를 종료한다.
한편, 단계 S210에서, 컨트롤러(10)는 시간 tPROG_Majority가 소정의 판정 기준 시간(Rtime)보다 짧은 것으로 판정되었을 경우(단계 S210:Yes), 해당 블록의 블록 주소를 블록 주소 기억부(12)에 저장한다(단계 S211). 그리고 컨트롤러(10)는 해당 블록 주소에 대응하는 보정 회수를 인크리먼트(보정 회수=보정 회수+1)하여 블록 주소 기억부(12)에 저장한다(단계 S212). 그러면, 컨트롤러(10)는 해당 블록에 대해 보정 회수에 따라 동일한 낸드형 플래시 메모리(20)의 동작 조건을 설정(단계 S213)하고, 그 후에는 단계 S214로 이동해 처리를 종료한다.
이상에서 설명한 것처럼, 컨트롤러(10)는 N%(N=1~100의 임의의 수)의 프로그램해야할 셀이 프로그램 베리파이를 패스했을 때에 출력되는 플래그 F_Majority를 모니터링하고, 시간 tPROG_Majority를 판정한다. 또, 컨트롤러(10)는 시간 tPROG_Majority의 판정 기준치와 시간 tPROG_Majority가 판정 기준치를 밑돈 회수(보정 회수)에 따라 낸드형 플래시 메모리(20)에 적용되어야 할 동작 조건을 조건 테이블(11)에 유지한다.
그리고, 불휘발성 반도체 메모리 장치(1)에서는, 프로그램 대상이 되는 블록에 대해, 시간 tPROG_Majority가 판정 기준치를 밑돌았을 경우, 이 블록의 블록 주소를 이 블록에 대해 판정 기준치를 밑돈 회수(보정 회수)와 함께 블록 주소 기억부(12)에 저장한다. 그리고 이 블록에 다음에 액세스할 때, 조건 테이블(11)을 참조하여 보정 회수에 따라 새로운 동작 조건을 적용할 것을 낸드형 플래시메모리(20)에 요구한다.
이와 같이, 불휘발성 반도체 메모리 장치(1)에 대해서 낸드형 플래시 메모리(20) 상에서의 개개의 블록의 사이클링 회수를 기억해 둘 필요가 없기 때문에 레지스터 영역이 적어도 된다. 또, 개개의 블록마다 특성의 열화 상태에 따른 관리가 가능하다. 따라서, 본 발명의 불휘발성 반도체 메모리 장치(1)는 평균의 사이클링 회수를 이용해 낸드형 플래시 메모리(20)의 동작 조건을 변경하는 경우에 비하여 낸드형 플래시 메모리의 전체의 특성 열화가 적다. 따라서, 낸드형 플래시 메모리(20)의 신뢰성의 향상을 꾀할 수가 있다.
[제2의 실시 형태]
제2의 실시 형태에서는, 불휘발성 반도체 메모리 장치에서 프로그램 시간을 모니터하기 위해서, 각 블록마다 올“0”(모든 데이터가 제로)의 기입 전용 영역을 마련한다. 그리고, 낸드형 플래시 메모리(20A)를 사용하는 불휘발성 반도체 메모리 장치(1A)는, 프로그램 대상이 되는 블록의 기입 전용 영역의 N%(N=1~100의 임의의 수)의 메모리 셀들이 프로그램 베리파이를 패스했을 때에 출력되는 플래그 F_Majority(N%패스 정보)를 모니터한다. 플래그 F_Majority(N%패스 정보)를 모니터를 통해서 N%패스 시간(tPROG_Majority)_Majority(기입 전용 영역에 있어서의 프로그램 개시부터 플래그 F_Majority의 출력까지의 시간)을 판정한다. 또, 불휘발성 반도체 메모리 장치는 N%패스 시간(tPROG_Majority)의 판정 기준치와 시간(tPROG_Majority)가 판정 기준치를 밑돌았을 때에, 다음에 낸드형 플래시 메모리에 적용되어야 할 동작 조건을 보관 유지한다.
[불휘발성 반도체 메모리 장치의 구성]
도 8은 제2의 실시 형태와 관계되는 불휘발성 반도체 메모리 장치(1A)의 구성을 나타내는 도면이다. 덧붙여 도 8의 설명에 있어서, 도 1과 동일한 부분에 대해서는 동일한 부호를 교부해, 그 설명을 생략한다. 불휘발성 반도체 메모리 장치(1A)는, 메모리 셀이 어레이에 배열된 낸드형 플래시 메모리(20A)와, 낸드형 플래시 메모리(20A)를 제어하는 컨트롤러(10)를 포함한다. 낸드형 플래시 메모리(20A)는 후술하게 될 복수의 메모리 셀이 어레이에 배열된 메모리 셀 어레이(21)와 올“0”의 기입 전용 영역(21A)을 포함한다.
도 9는 낸드형 플래시 메모리(20A)의 구성을 나타내는 도면이다. 도 9에서는, 도 2와 동일한 부분에 대해서는 동일한 부호를 교부했으며, 따라서 그 설명을 생략하기로 한다. 낸드형 플래시 메모리(20A)는 메모리 셀 어레이(21)와 메모리 셀 어레이(21) 내의 기입 전용 영역(21A)과, 페이지 버퍼 디코더(22A)를 갖추는 페이지 버퍼(22)와, 행 디코더(23)를 가진다. 또, 낸드형 플래시 메모리(20)는 이 낸드형 플래시 메모리(20)의 전체의 동작을 통괄해 제어하는 메모리 제어 회로(31), 동작 조건 변경 설정부(32), 출력 데이터 버퍼(33), 입력 데이터 버퍼(34), 프로그램 비트비 계산부(36A), 페일 비트 카운터(37A), 그리고 동작 전압 컨트롤러(38)를 가지고 있다.
메모리 셀 어레이(21)에는, 기입 전용 영역(21A)이 포함되어 있다. 기입 전용 영역(21A)은 하나의 위치에 집중된 형태로 나타나고 있지만, 실제로는 프로그램 단위(예를 들면, 데이터의 기입 단위)인 각 블록에, 올“0”의 데이터의 기입 전용 영역으로서 설치되는 것이다. 기입 전용 영역(21A)에 데이터의 기입 및 소거를 실시하는 것으로, 각 블록의 특성 열화가 모니터링될 수 있다. 덧붙여 기입 전용 영역(21A)에 올“0”의 데이터가 기입되면 각 블록에 있어서의 특성 열화는 최악 조건으로 판정될 수 있다.
페일 비트 카운터(37A)는 베리파이 읽기 시 기입 전용 영역(21A)에 대해 페일 셀로 판정된 메모리 셀의 비트수(이하, '페일 셀수'라 칭함)를 카운트하고, 카운트된 페일 셀수(Fb)의 정보를 프로그램 비트비 계산부(36A)에 출력한다. 프로그램 비트비 계산부(36A)는 기입 전용 영역(21A)에 대해 올“0”을 기입한 비트수 Pb(미리 설정된 비트수)의 정보와 페일 비트 카운터(37A)로부터 제공된 페일 셀수(Fb)를 참조하여 프로그램 비트비(%)를 산출한다. 그리고, 프로그램 비트비 계산부(36A)는 프로그램 비트비(프로그램 베리파이를 패스한 메모리 셀의 비율)이 소정의 비율(예를 들면, 70%)을 넘었을 때에 플래그 F_Majority를 컨트롤러(10)로 출력한다.
낸드형 플래시 메모리(20A)는 사이클링을 거듭함에 따라 메모리 셀의 산화막에 전하 트랩이 발생하게 되며, 메모리 셀의 프로그램 시간은 빨라진다(프로그램하기 쉬워진다). 그러나, 낸드형 플래시 메모리(20A)에서 복수 비트의 셀을 동시에 프로그램하기 위해서는 그 중에는 반드시 프로그램 속도가 늦은(시간이 길다) 비트가 존재한다. 따라서, 전체 프로그램 시간은 합계한 프로그램 시간(tPROG)으로 나타나기 어렵다.
여기서, 속도가 늦은(프로그램 시간이 길다) 비트에 의해 대부분의 프로그램 시간의 변화가 모르게 되는 것을 막기 위해, 낸드형 플래시 메모리(20A)에 올“0”의 기입 전용 영역(21A)을 마련하고 있다. 낸드형 플래시 메모리(20A)는 기입 전용 영역(21A)의 프로그램 페일 비트수를 카운트해, 기입 전용 영역(21A)의 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램 베리파이를 패스했을 때에 플래그 F_Majority를 외부에 출력한다. 또, 낸드형 플래시 메모리(20A)는 외부로부터의 요구에 응답해 동작 조건을 변경하는 기능을 구비한다.
그리고, 불휘발성 반도체 메모리 장치(1A)는 도 4~도 6을 이용해 설명한 불휘발성 반도체 메모리 장치(1)와 같이 프로그램 대상이 되는 기입 전용 영역(21A)에 있어서의 시간 tPROG_Majority를 모니터링한다. 모니터링 결과, 불휘발성 반도체 메모리 장치(1A)는 시간 tPROG_Majority가 판정 기준치를 밑돌았을 경우, 그 블록 주소와 해당 블록에 대한 시간 tPROG_Majority이 판정 기준치를 밑돈 회수(보정 회수)를 블록 주소 기억부(12)에 저장한다(첫회라면 1, 2번째라면 2, 3번째라면 3, …).
 그리고, 컨트롤러(10)는 블록 주소 기억부(12) 주소가 저장된 블록을 액세스하는 경우는, 블록 주소 기억부(12)에 저장된 해당 블록의 보정 회수를 기본으로 조건 테이블(11)을 참한다. 그리고 컨트롤러(10)는 이 보정 회수에 대응하는 동작 조건을 조건 테이블(11)로부터 읽어낸다. 컨트롤러(10)는 읽어낸 동작 조건을 우선 낸드형 플래시 메모리(20A)에 대해서 설정하고, 그 후에 계획된 동작(리드/프로그램/소거)을 실시한다.
덧붙여 도 7(I)에 대해 가리킨 낸드형 플래시 메모리(20)에 있어서의 프로그램 동작시의 처리 순서는 낸드형 플래시 메모리(20A)에 있어서의 프로그램 동작시의 처리 순서에도 적용된다. 다만, 단계 S106에 있어서의 연산 처리는, 플래시 메모리(20A)에서는, 페일 비트 카운터(37A) 및 프로그램 비트비 계산부(36A)가 수행한다.
컨트롤러(10)는 기입 전용 영역(21A) 내의 N%(N=1~100의 임의의 수)의 프로그램 해야할 셀이 프로그램 베리파이를 패스했을 때에 출력되는 플래그 F_Majority를 모니터 링하여 시간 tPROG_Majority를 판정한다. 또, 컨트롤러(10)는 시간 tPROG_Majority의 판정 기준치와 시간 tPROG_Majority가 판정 기준치를 밑돈 회수(보정 회수)에 응답해 낸드형 플래시 메모리(20A)에 적용되어야 할 동작 조건을 조건 테이블(11)에 저장 유지한다.
그리고, 불휘발성 반도체 메모리 장치(1A)에서 프로그램 대상이 되는 블록에 대해 시간 tPROG_Majority이 판정 기준치를 밑돌았을 경우, 이 블록의 블록 주소를 판정 기준치를 밑돈 회수(보정 회수)와 함께 블록 주소 기억부(12)에 저장한다. 그리고 이 블록에 다음에 액세스할 때, 조건 테이블(11)을 참조해, 보정 회수에 대응하는 새로운 동작 조건을 적용하도록 낸드형 플래시 메모리(20A)에 요구한다.
이와 같이 상술한 불휘발성 반도체 메모리 장치(1A)는 낸드형 플래시 메모리(20A) 상에서의 개개의 블록의 사이클링 회수를 기억해 둘 필요가 없기 때문에 레지스터 영역이 적어도 된다. 또, 개개의 블록마다 특성의 열화 상태의 관리 가능해서, 평균의 사이클링 회수를 이용해 낸드형 플래시 메모리(20A)의 동작 조건을 변경하는 경우에 비해, 낸드형 플래시 메모리의 전체의 특성 열화를 줄이고, 낸드형 플래시 메모리(20A)의 신뢰성의 향상을 꾀할 수가 있다.
여기서, 본 발명과 상술한 실시 형태의 대응에 대해 보충해 설명해 둔다. 상술한 실시 형태에 대해, 본 발명에 있어서의 불휘발성 반도체 메모리 장치는, 도 1에 나타내는 불휘발성 반도체 메모리 장치(1)에 대응해, 본 발명에 있어서의 플래시 메모리는 낸드형 플래시 메모리(20)가 대응한다. 또, 본 발명의 제어부는, 도 1에 나타내는 컨트롤러(10)에 대응하고, 본 발명에 있어서의 조건 테이블은 조건 테이블(11)이 대응한다. 또, 본 발명에 있어서의 블록 주소 기억부는 블록 주소 기억부(12)가 대응하고, 본 발명에 있어서의 N%패스 시간 판정부는, N%패스 시간(tPROG_Majority) 판정부(13)가 대응한다. 또, 본 발명에 있어서의 N%패스 정보는 낸드형 플래시 메모리(20)로부터 출력되는 플래그 F_Majority에 대응한다. 본 발명에 있어서의 제1시간은 시간 tPROG_Majority가 대응하고, 본 발명에 있어서의 제2시간은 판정 기준치에 대응한다.
(1) 상기 실시 형태에 대해, 불휘발성 반도체 메모리 장치(1)는 플래시 메모리(20) 내의 블록에 대해서 프로그램을 실시할 때에, 이 블록 내의 프로그램해야 할 메모리 셀 가운데 소정의 퍼센트의 메모리 셀의 프로그램이 완료할 때까지의 제1시간 tPROG_Majority를 계측하는 기능과, 제1시간 tPROG_Majority과 소정의 판정 기준치인 제2시간을 비교하는 기능과, 상기 블록에 대해 제1시간 tPROG_Majority이 제2시간을 밑돌았을 경우는, 해당 블록에 다음번부터 액세스하려면, 플래시 메모리(20)의 동작 조건을 소정의 동작 조건으로 변경해 액세스하는 기능을 갖춘다.
이러한 구성의 불휘발성 반도체 메모리 장치(1)에서는, 프로그램 대상이 되는 블록에 있어 프로그램되어야 할 메모리 셀의 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램 베리파이를 패스하는 제1시간 tPROG_Majority을 판정(계측)하고, 시간 tPROG_Majority이 판정 기준치를 밑돌았을 때에, 해당 블록의 블록 주소를 기억해 두어, 다음에 그 블록에 액세스하려면, 그 블록에 대해서만 플래시 메모리(20)의 동작 조건을 변경한다. 이것에 의해, 플래시 메모리 내의 개개의 블록마다 메모리 셀의 특성의 열화 상태를 검출할 수 있어, 플래시 메모리의 동작 조건을 개개의 블록의 열화 상태에 응해 설정하지 않을 수 있다. 또, 메모리 셀이 열화되지 않은 블록에 대해서는 통상의 동작 조건을 설정할 수 있다. 또, 열화의 정도가 큰(열화가 진행된) 블록을 사용하지 않도록 설정할 수도 있다. 이 때문에, 플래시 메모리의 전체의 특성 열화를 야기하지 않고, 플래시 메모리의 수명을 늘리는 것과 동시에, 플래시 메모리의 신뢰성의 향상을 꾀할 수 있다.
(2) 또, 상기 실시 형태에 대해, 불휘발성 반도체 메모리 장치(1)는 메모리 셀이 어레이에 배열된 메모리 영역을 가지는 낸드형 플래시 메모리(20)로 플래시 메모리(20)의 동작을 제어하는 제어부(컨트롤러(10))를 가진다. 플래시 메모리(20)는 프로그램 대상이 되는 블록 내의 프로그램해야 할 메모리 셀 가운데 미리 설정한 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램 베리파이를 패스했을 때에, 이 N%의 메모리 셀이 프로그램 베리파이를 패스한 것을 나타내는 N%패스 정보(플래그 F_Majority)를 외부(컨트롤러(10))에 출력하는 기능과, 외부(컨트롤러10)로부터의 요구에 응해 해당 플래시 메모리(20)에 있어서의 동작 조건을 변경하는 기능을 가진 제어부(컨트롤러(10))를 포함한다. 제어부(컨트롤러(10))는 플래시 메모리(20)로부터 출력되는 N%파스 정보(플래그 F_Majority)를 모니터함으로써, 프로그램 대상이 되는 블록에 있어서의 프로그램의 개시부터 N%의 메모리 셀이 프로그램 베리파이를 패스하기까지 필요한 제1시간 tPROG_Majority를 판정하는 기능과, 제1시간 tPROG_Majority과 제2시간을 비교하는 기능과, 프로그램 대상이 되는 블록에 대해 제1시간 tPROG_Majority이 제2시간을 밑돌았을 경우, 해당 블록의 블록 주소를 기억함과 동시에, 다음번 해당 블록에 액세스할 때는, 플래시 메모리(20)의 동작 조건을 소정의 동작 조건으로 변경하도록 플래시 메모리(20)에 요구하는 기능을 포함한다.
이러한 구성의 불휘발성 반도체 메모리 장치(1)에서, 플래시 메모리(20)는 프로그램 대상이 되는 블록 내의 메모리 셀의 총수에 대해서 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램되었을 때에 외부(컨트롤러(10))에 N%패스 정보(플래그 F_Majority)를 출력한다. 또, 플래시 메모리(20)는 외부(컨트롤러10)로부터의 요구에 응답해 동작 조건을 변경할 수가 있다. 제어부(컨트롤러(10))에서는, 플래시 메모리(20)로부터 출력되는 N%패스 정보(플래그 F_Majority)를 모니터해, 제1시간 tPROG_Majority(프로그램 개시부터 플래그 F_Majority가 출력될 때까지의 시간)을 판정한다. 그리고, 제어부(컨트롤러(10))는 시간 tPROG_Majority가 제2시 사이(판정 기준치)를 밑돌았을 때, 그 블록 주소 및 그 블록에 다음번부터 적용해야 할 동작 조건을 기억한다. 그리고 제어부는 다음번에 그 블록 주소에 액세스할 경우에는 소정의 동작 조건을 적용하도록 플래시 메모리(20)에 요구한다. 상기 동작 조건이란, 프로그램/프로그램 베리파이/리드/소거(Progaram/Progarm Verify/Read/Erase) 때의 동작 조건이다.
따라서, 플래시 메모리에 있어서의 개개의 블록의 사이클링 회수를 기억하지 않고 개개의 블록마다 메모리 셀의 특성의 열화를 검출하고, 플래시 메모리의 동작 조건을 개개의 블록의 열화 상태에 따라 설정할 수가 있다. 이 때문에, 플래시 메모리의 수명을 늘리는 것과 동시에, 플래시 메모리의 신뢰성의 향상을 꾀하는 것이 가능하다.
(3) 또, 상기 실시 형태에 대해, 제어부(컨트롤러(10))는, 플래시 메모리(20) 내의 하나의 블록에 대해서 프로그램을 실시할 때에 제1시간 tPROG_Majority이 제2시간(판정 기준치)을 밑돌 때마다, 해당 블록에 다음에 액세스할 때, 플래시 메모리(20)에 대해서 다른 동작 조건을 설정한다.
이러한 구성의 불휘발성 반도체 메모리 장치(1)에서는, 어느 하나의 블록에 대해서 플래시 메모리(20)의 동작 조건을 제1 동작 조건으로 변경한 후에, 해당 하나의 블록에 대해 다시 제1시간(tPROG_Majority)이 제2시간(판정 기준치)을 밑돌 경우는, 해당 하나의 블록에 대한 플래시 메모리(20)의 동작 조건을 다음의 제2 동작 조건으로 변경한다. 이후, 해당 하나의 블록에 대해 제1시간(tPROG_Majority)이 제2시간을 밑돌 때 마다, 이 밑돈 회수에 응해 미리 설정(기억)된 동작 조건을 플래시 메모리(20)에 대해서 설정한다. 이것에 의해, 어느 블록에 대해, 메모리 셀의 특성 열화가 진행하는 경우에는, 이 블록에 대해서, 메모리 셀의 특성 열화 상태에 따른 동작 조건을 설정하는 것이 가능하다. 이 때문에, 플래시 메모리의 신뢰성의 향상을 꾀할 수가 있다.
(4) 또, 상기 실시 형태에 대해, 불휘발성 반도체 메모리 장치(1)는 프로그램 대상 블록에 있어서의 프로그램 개시부터 N%패스 정보(플래그 F_Majority)가 출력될 때까지의 제1시간 tPROG_Majority을 판정함과 함께, 이 제1시간 tPROG_Majority과 제2시간을 비교하는 N%패스 시간 판정부(13)와, 프로그램 대상이 되는 블록에 대해 제1시간 tPROG_Majority가 제2시간을 밑돌았을 경우에 해당 블록의 블록 주소와 해당 블록에 대해 제1시간 tPROG_Majority이 제2시간을 밑돈 회수인 보정 회수를 연관지어 기억하는 블록 주소 기억부(12)와, 보정 회수와 이 보정 회수에 따라 플래시 메모리(20)에 대해서 적용되어야 할 동작 조건을 보관 유지하는 조건 테이블(11)을 갖춘 제어부(컨트롤러(10))를 포함한다. 제어부(컨트롤러(10))는 플래시 메모리(20) 내의 블록에 대해 액세스를 개시하기 전에, 블록 주소 기억부(12)의 조건 테이블(11)을 참조하여, 해당 블록의 블록 주소가 블록 주소 기억부(12)에 기억되고 있는 경우, 해당 블록의 보정 회수에 응한 동작 조건을 조건 테이블(11)로부터 추출한다. 제어부(컨트롤러(10))는 이 추출한 동작 조건을 플래시 메모리(20)에 대해서 설정한 후에, 해당 블록에 대해서 액세스를 개시한다.
이러한 구성의 불휘발성 반도체 메모리 장치(1)에서는, N%패스 시간 판정부(13)에 의해 프로그램 대상 블록에 있어서의 프로그램 개시부터 N%패스 정보(플래그 F_Majority)가 출력될 때까지의 제1시간 tPROG_Majority을 판정하고, 제1시간 tPROG_Majority과 제2시간(판정 기준치)을 비교한다. 또, 제1시간(tPROG_Majority)이 제2시간을 밑돈 블록에 대해서, 해당 블록의 블록 주소와, 해당 블록에 대해 제1시간(tPROG_Majority)이 제2시간을 밑돈 회수(보정 회수)를 함께 블록 어드레스 기억부(12)에 저장한다. 또 보정 회수와 이 보정 회수에 따라 플래시 메모리(20)에 대해서 적용되어야 할 동작 조건을 조건 테이블(11)로 보관 및 유지한다. 그리고, 제어부(컨트롤러(10))는 플래시 메모리(20) 내의 블록에 액세스하기 전에, 블록 주소 기억부(12)의 조건 테이블(11)을 참조해, 해당 블록의 블록 주소가 블록 주소 기억부(12)에 기억되고 있는 경우, 해당 블록의 보정 회수에 응한 동작 조건을 조건 테이블(11)로부터 추출한다. 그리고 제어부(컨트롤러(10))는 이 추출한 동작조건을 플래시 메모리(20)에 대해서 설정한 후에, 해당 블록에 대해서 액세스를 개시한다.
따라서, 어느 블록에 대해 메모리 셀의 특성이 열화 했을 경우는, 이 블록의 블록 주소를 보관 유지(기억)함과 함께, 이 블록 내의 메모리 셀의 특성 열화에 따른 동작 조건을 플래시 메모리(20)에 대해서 설정할 수가 있다.
(5) 또, 상기 실시 형태에 대해, 액세스할 때로 변경하는 동작 조건은, 플래시 메모리(20)의 블록에 대해서 프로그램, 프로그램 베리파이, 리드, 소거 중 하나 또는 전부의 처리를 실시할 때의 동작 조건이다. 이것에 의해, 어느 블록에 대해 메모리 셀의 특성이 열화 했을 경우에는 이 메모리 셀의 열화 상태에 따라 프로그램시, 프로그램 베리파이시, 리드시, 및 소거시의 동작 조건(예를 들면, 프로그램 전압, 리드 전압, 베리파이 전압 등의 전압 조건) 등을 적절히 설정할 수가 있다.
(6) 또, 본 발명에 있어서의 기입 전용 영역은, 기입 전용 영역(21A)이 대응한다. 불휘발성 반도체 메모리 장치(1A)에서는, 블록에 대해서 프로그램을 행할 때에, 소정의 동일 데이터를 기입하기 위한 기입 전용 영역(21A)을 블록 내에 마련해 제1시간을 판정하는 기능으로서 블록에의 프로그램 개시부터 기입해 전용 영역(21A) 내의 메모리셀 가운데 소정의 비율의 메모리 셀의 프로그램이 완료할 때까지의 시간을 제1시간으로 판정한다.
(7) 또, 상기 실시 형태에 대해, 기입 전용 영역(21A)에 프로그램되는 데이터는, 플래시 메모리의 메모리 셀의 플로팅 게이트에 전하를 주입해 기입되는 데이터이다. 이것에 의해, 어느 블록에 있어서의 메모리 셀의 열화를 판정하는 경우에, 기입 전용 영역(21A) 내의 메모리 셀에 가장 스트레스(부담)를 주는 데이터를 기입하는 것이 가능하다. 이 때문에, 블록 내의 메모리 셀의 열화 상태를 최악 조건으로 평가할 수 있다.
이상에서, 본 발명의 실시의 형태에 대해 설명했지만, 본 발명의 불휘발성 반도체 메모리 장치는, 상술의 도시에만 한정되는 것은 아니고, 본 발명의 요지를 일탈하지 않는 범위 내에 있어 여러 가지 변경을 더하고 얻는 것은 물론이다.
예를 들면, 상술한 실시 형태에서는, 플래시 메모리가 낸드형 플래시 메모리의 예(을)를 나타냈지만, 플래시 메모리는, NOR형의 플래시 메모리여도 괜찮다. 또, 본 발명은, 상술한 불휘발성 반도체 메모리 장치에 한정하지 않고, 플래시 메모리를 내장하는 여러 가지의 시스템에 효과적으로 적용할 수 있는 것이다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1, 1A : 불휘발성 반도체 메모리 장치
10 : 컨트롤러
11 : 조건 테이블
12 : 블록 주소 기억부
13 : N% 패스 시간 판정부
20, 20A : 플래시 메모리
21 : 메모리 셀 어레이
21A : 기입 전용 영역
22 : 페이지 버퍼
22A :페이지 버퍼 디코더
23 : 행 디코더
31 : 메모리 제어 회로
32 : 동작조건변경 설정부
33 : 출력 데이터 버퍼
34 : 입력 데이터 버퍼
35 : 프로그램 비트 카운터
36, 36A : 프로그램 비트비 계산부
37, 37A : 페일 비트 카운터
38 : 동작 전압 컨트롤러

Claims (8)

  1. 플래시 메모리 내의 블록을 프로그램할 때, 상기 블록 내의 프로그램 해야 할 메모리 셀 가운데 소정의 퍼센트에 메모리 셀의 프로그램이 완료될 때까지의 제1시간을 계측하는 기능과,
    상기 제 1시간과 소정의 판정 기준치인 제2시간을 비교하는 기능과,
    상기 블록에 대해 상기 제 1시간이 상기 제 2시간을 밑돌았을 경우, 해당 블록에 다음번부터 액세스할 때에, 상기 플래시 메모리의 동작 조건을 소정의 동작 조건으로 변경해 액세스하는 기능을 갖는 불휘발성 반도체 메모리 장치.
  2. 제 1 항에 있어서,
    메모리 셀이 어레이 형태로 배열된 메모리 영역을 가지는 플래시 메모리와 상기 플래시 메모리의 동작을 제어하는 제어부를 가져,
    상기 플래시 메모리는,
    프로그램 대상이 되는 블록 내의 프로그램해야 할 메모리 셀 가운데 미리 설정된 N%(N=1~100의 임의의 수)의 메모리 셀이 프로그램 베리파이를 패스했을 때, 상기 N%의 메모리 셀이 프로그램 베리파이를 패스한 것을 나타내는 N%패스 정보를 외부에 출력하는 기능과, 외부로부터의 요구에 따라 해당 플래시 메모리의 동작 조건을 변경하는 기능을 구비하며,
    상기 제어부는,
    상기 플래시 메모리로부터 출력되는 N%패스 정보를 모니터하여, 상기 프로그램 대상 블록의 프로그램의 개시부터 상기 N%의 메모리 셀이 프로그램 베리파이를 패스하기까지 필요한 제1시간을 계측하는 기능과,
    상기 제 1시간과 상기 제 2시간을 비교하는 기능과,
    상기 프로그램 대상이 되는 블록에 대해 상기 제 1시간이 상기 제 2시간을 밑돈 회수와, 해당 블록의 블록 주소를 저장하고, 다음번 해당 블록으로의 액세스시, 상기 플래시 메모리의 동작 조건을 상기 소정의 동작 조건으로 변경할 것을 상기 플래시 메모리에 요구하는 기능을 갖는 불휘발성 반도체 메모리 장치.
  3. 제 2 항에 있어서,
    상기 제어부는, 상기 플래시 메모리 내의 상기 블록에 대해서 프로그램할 때에 상기 제 1시간이 상기 제 2시간을 밑돌 때마다, 상기 블록에 대한 다음에 액세스시, 상기 플래시 메모리에 대해서 다른 동작 조건을 설정하는 불휘발성 반도체 메모리 장치.
  4. 제 3 항에 있어서,
    프로그램 대상이 되는 블록에 있어서의 프로그램 개시부터 상기 N%패스 정보가 출력함까지의 제1시간을 계측함과 함께, 이 제1시간과 상기 제 2시간을 비교하는 N%패스 시간 판정부와;
    프로그램 대상이 되는 블록에 대해 상기 제 1시간이 상기 제 2시간을 밑돌았을 경우에, 해당 블록의 블록 주소와 해당 블록에 대해 상기 제 1시간이 상기 제 2시간을 밑돈 회수인 보정 회수를 저장하는 블록 주소 기억부와;
    상기 보정 회수와 이 보정 회수에 따라 상기 플래시 메모리에 대해서 적용되어야할 동작 조건을 저장 및 유지하는 조건 테이블을 갖추어,
    상기 제어부는,
    상기 플래시 메모리 내의 블록에 대해서 액세스를 개시하기 전에, 상기 블록 주소 기억부와 상기 조건 테이블을 참조해, 해당 블록의 블록 주소가 상기 블록 주소 기억부에 기억되고 있는 경우, 해당 블록의 보정 회수에 응한 동작 조건을 상기 조건 테이블에서 추출해, 이 추출한 동작 조건을 상기 플래시 메모리에 대해서 설정한 후에, 해당 블록에 대해서 액세스를 개시하는 불휘발성 반도체 메모리 장치.
  5. 제 4 항에 있어서,
    상기 액세스할 때로 변경하는 동작 조건은, 블록에 대해서 프로그램, 프로그램 베리파이, 리드, 소거 중 하나 또는 전부의 처리를 실시할 때의 동작 조건인 것을 특징으로 하는 불휘발성 반도체 메모리 장치.
  6. 제 5 항에 있어서,
    상기 블록에 대해서 프로그램을 행할 때에, 소정의 동일 데이터를 기입하기 위한 기입 전용 영역을 상기 블록 내에 마련해 상기 제 1시간을 판정하는 기능으로서 상기 블록에의 프로그램 개시부터 상기 기입 전용 영역 내의 메모리 셀 가운데 소정의 비율의 메모리 셀의 프로그램이 완료할 때까지의 시간을 상기 제 1시간으로서 판정하는 불휘발성 반도체 메모리 장치.
  7. 제 6 항에 있어서,
    상기 기입 전용 영역에 기입된 데이터는 플래시 메모리의 메모리 셀의 프로-팅 게이트에 전하를 주입함으로써 기입되는 불휘발성 반도체 메모리 장치.
  8. 플래시 메모리 내의 프로그램 대상이 되는 블록에 대해서 프로그램할 때에, 상기 블록 내의 프로그램해야 할 메모리 셀 가운데 소정의 퍼센트의 메모리 셀의 프로그 램이 완료할 때까지의 제1시간을 계측하는 단계와;
    상기 제 1시간과 소정의 판정 기준치인 제2시간을 비교하는 단계와;
    상기 제 1시간이 상기 제 2시간을 밑돌았을 경우에, 다음번부터 해당 블록에 액세스할때, 상기 플래시 메모리의 동작 조건을 소정의 동작 조건으로 변경하는 단계를 포함하는 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법.
KR1020120124144A 2011-12-16 2012-11-05 불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법 KR20130069366A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/711,881 US20130159610A1 (en) 2011-12-16 2012-12-12 Non-volatile semiconductor memory device related method of operation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011275700A JP2013125574A (ja) 2011-12-16 2011-12-16 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法
JPJP-P-2011-275700 2011-12-16

Publications (1)

Publication Number Publication Date
KR20130069366A true KR20130069366A (ko) 2013-06-26

Family

ID=48776724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120124144A KR20130069366A (ko) 2011-12-16 2012-11-05 불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법

Country Status (2)

Country Link
JP (1) JP2013125574A (ko)
KR (1) KR20130069366A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022040515A (ja) * 2020-08-31 2022-03-11 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリおよびプログラミング方法

Also Published As

Publication number Publication date
JP2013125574A (ja) 2013-06-24

Similar Documents

Publication Publication Date Title
EP2427885B1 (en) Multiple level program verify in a memory device
KR101184814B1 (ko) 불휘발성 메모리 장치 및 이의 프로그램 방법
KR100859258B1 (ko) 플래시 메모리 장치 및 동작 방법
TWI494931B (zh) 記憶體之可適性抺除及軟性程式化
TWI410975B (zh) 具有狀態電壓位準的調適性設定之非揮發性記憶體及其方法
CN101471135B (zh) 闪存器件及其操作方法
US20130159610A1 (en) Non-volatile semiconductor memory device related method of operation
US7646639B2 (en) Circuit and method generating program voltage for non-volatile memory device
KR20180022579A (ko) 반도체 메모리 장치
US9001576B2 (en) Semiconductor memory device and method of operating the same
KR20090113773A (ko) 불휘발성 반도체 기억 장치
KR20130034919A (ko) 반도체 장치 및 이의 동작 방법
KR20140088386A (ko) 반도체 장치 및 이의 동작 방법
KR20150007397A (ko) 반도체 메모리 장치 및 이의 동작 방법
TWI648743B (zh) 半導體裝置及其操作方法
US20150270003A1 (en) Non-volatile memory and method for programming the same
KR20090082755A (ko) 플래시 메모리 장치 및 그것의 소거 방법
KR20150035223A (ko) 반도체 메모리 장치 및 이의 동작방법
US8000154B2 (en) Non-volatile memory device and method of controlling a bulk voltage thereof
KR20130069366A (ko) 불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법
JP2013125575A (ja) 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法
KR100967010B1 (ko) 불휘발성 메모리 장치 및 그 프로그램 방법
JP2009070531A (ja) 半導体装置及びその制御方法
US11544204B2 (en) Memory system, memory controller and method for operating memory controller
KR20150075887A (ko) 메모리 시스템 및 이의 동작 방법

Legal Events

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