KR20140102733A - 비-휘발성 메모리 디바이스와 그 디바이스를 프로그램하는 방법 - Google Patents

비-휘발성 메모리 디바이스와 그 디바이스를 프로그램하는 방법 Download PDF

Info

Publication number
KR20140102733A
KR20140102733A KR1020147018843A KR20147018843A KR20140102733A KR 20140102733 A KR20140102733 A KR 20140102733A KR 1020147018843 A KR1020147018843 A KR 1020147018843A KR 20147018843 A KR20147018843 A KR 20147018843A KR 20140102733 A KR20140102733 A KR 20140102733A
Authority
KR
South Korea
Prior art keywords
memory cells
memory cell
programming
unit
indicator
Prior art date
Application number
KR1020147018843A
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 실리콘 스토리지 테크놀로지 인크
Publication of KR20140102733A publication Critical patent/KR20140102733A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2263Write conditionally, e.g. only if new data and old data differ
    • 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/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

  • Read Only Memory (AREA)

Abstract

비-휘발성 메모리 디바이스는 프로그래밍 전류를 제공하는 전하 펌프와 비-휘발성 메모리 셀들의 어레이를 구비한다. 상기 어레이의 각 메모리 셀은 상기 전하 펌프로부터의 프로그래밍 전류에 의해 프로그램된다. 상기 비-휘발성 메모리 셀들의 어레이는 복수의 유닛으로 분할되고, 각 유닛은 복수의 메모리 셀을 포함한다. 표시자 메모리 셀은 비-휘발성 메모리 셀들의 각 유닛과 연관된다. 프로그래밍 회로는 각 유닛의 상기 메모리 셀들 중 50퍼센트 이하의 메모리 셀이 프로그램되어야 할 때, 상기 프로그래밍 전류를 사용하여 각 유닛의 상기 메모리 셀들을 프로그램하고, 각 유닛의 상기 메모리 셀들 중 50퍼센트를 초과하는 메모리 셀이 프로그램되어야 할 때, 상기 프로그래밍 전류를 사용하여 각 유닛과 연관된 상기 표시자 메모리 셀과 각 유닛의 메모리 셀들의 반전(inverse)을 프로그램한다.

Description

비-휘발성 메모리 디바이스와 그 디바이스를 프로그램하는 방법{A NON-VOLATILE MEMORY DEVICE AND A METHOD OF PROGRAMMING SUCH DEVICE}
본 발명은 비-휘발성 메모리 디바이스와 이러한 비-휘발성 메모리 디바이스를 프로그램하는 방법에 관한 것이다.
상부에 전하를 저장하기 위한 플로팅 게이트(floating gate) 또는 트래핑 전하층(trapping charge layer)을 구비한 비-휘발성 메모리 셀은 당해 분야에서 잘 알려져 있다. 도 1을 참조하면, 종래 기술의 비-휘발성 메모리 셀(10)(스플리트 게이트 소스측에 셀을 프로그램하는 열 전자를 주입)의 단면도가 도시되어 있다. 메모리 셀(10)은 예컨대, P형과 같은 제1 도전형(conductivity type)의 단결정 기판(single crystalline substrate)(12)을 포함한다. 기판(12)의 표면 또는 기판(12)의 표면 근처에는 예컨대, N형과 같은 제2 도전형의 제1 영역(14)이 마련된다. 제1 영역(14)으로부터 이격되어 또한 제2 도전형의 제2 영역(16)이 마련된다. 제1 영역(14)과 제2 영역(16) 사이에는 채널 영역(18)이 마련된다. 폴리실리콘(polysilicon)으로 이루어진 워드 라인(20)이, 채널 영역(18)의 제1 부분 위에 위치한다. 워드 라인(20)은 예컨대, 실리콘(이)산화물(silicon(di)oxide)과 같은 절연층(22)에 의해 채널 영역(18)으로부터 이격되어 있다. 또한 폴리실리콘으로 이루어진 플로팅 게이트(24)는 워드 라인(20)에 바로 인접하면서 그로부터 이격되어 있고, 채널 영역(18)의 또 다른 부분 위에 위치한다. 플로팅 게이트(24)는 또 다른 절연층(30)에 의해 채널 영역(18)으로부터 분리되는데, 이 다른 절연층(18)도 또한 전형적으로 실리콘(이)산화물이다. 또한 폴리실리콘으로 이루어진 커플링 게이트(26)가 플로팅 게이트(24) 위에 위치하고, 또 다른 절연층(32)에 의해 그로부터 절연된다. 플로팅 게이트(24)의 다른 측 상에 그로부터 이격되고, 또한 폴리실리콘으로 이루어진 소거 게이트(28)가 마련된다. 소거 게이트(28)는 제2 영역(16) 위에 위치하고 그로부터 절연된다. 소거 게이트(28)는 커플링 게이트(26)에 인접하면서 그로부터 이격되어 있다. 소거 게이트(28)는 플로팅 게이트(24) 위에 작은 돌출부(slight overhang)를 가질 수 있다. 메모리 셀(10)의 동작에서, 플로팅 게이트(24)상에 저장된 전하가 제1 영역(14)과 제2 영역(16) 사이의 전류 흐름을 제어한다. 플로팅 게이트(24)의 상부가 음적(nagatively)으로 충전(charge)되면, 메모리 셀은 프로그램된다. 플로팅 게이트(24)의 상부가 양적(positively)으로 충전되면, 메모리 셀은 소거된다. 메모리 셀(10)은 USP 7,868,375호에 충분하게 개시되어 있으며, 상기 문헌은 그 전체가 참고로서 본 명세서에 통합된다.
메모리 셀(10)은 다음과 같이 동작한다. 소거 동작 동안, 전자들이 플로팅 게이트(24)로부터 제거될 때, 높은 양 전압(예컨대, 8-11V)이 소거 게이트(28)에 인가된다. 음 전압(예컨대, -6V 내지 -8V ) 또는 접지 전압이 커플링 게이트(26) 및/또는 워드 라인(20)에 인가될 수 있다. 전자들은, 플로팅 게이트(24)와 소거 게이트(28) 사이의 절연층을 관통하는 파울러-노드하임 터널링(Fowler-Nordheim tunneling)에 의해, 플로팅 게이트(24)로부터 소거 게이트(28)로 이송된다. 특히, 플로팅 게이트(24)는 소거 게이트(28)에 대면하는 샤프 팁(sharp tip)을 구비하여 형성될 수 있고, 이로써 전자들의 상기 터널링을 촉진시킨다. 소거 동작 동안, 높은 양 전압이 전하 펌프(52)(도 2 참조)로부터 공급된다. 전형적으로, 소거 동작은 플로팅 게이트(24)로부터 전자들을 제거하는 것에만 관여되기 때문에, 전하 펌프(52)는 큰 전류(전형적으로 나노 암페어 범위 단위)를 공급할 필요는 없다.
그 후, 메모리 셀(10)이 프로그램될 수 있다. 프로그래밍 동작 동안, 반전(inversion)으로 플로팅 게이트(24)의 아래 있는 채널 영역(18)의 부분에 있는 전자들이 열-전자 주입(hot-electron injection)을 통해 플로팅 게이트(24)에 주입될 때, 펄스형상의 제1 양 전압(positive voltage)(예컨대, 1V 내지 2V)이 워드 라인(20)에 인가되어, 워드 라인(20)의 아래 있는 채널 영역(18)의 부분이 도전성으로 된다. 또한 펄스형상의 제2 양 전압(예컨대, 8V 내지 10V)이, 플로팅 게이트(24)에 커플링되는 전압을 최대화시키기 위해 커플링 게이트(26)와 플로팅 게이트(24) 사이의 고 커플링 비율을 이용하도록, 커플링 게이트(26)에 인가된다. 또한 펄스형상의 제3 양 전압(예컨대, 3V 내지 6V)이, 플로팅 게이트(24)에 커플링되는 전압을 최대화시키기 위해 소거 게이트(28)와 플로팅 게이트(24) 사이의 커플링 비율을 이용하도록, 소거 게이트(28)에 인가된다. 또한 펄스형상의 높은 전압 차(voltage differential)(예컨대, 4V 내지 7V)가, 채널(18) 내 열 전자들의 생성을 제공하기 위해, 제1 영역(14)과 제2 영역(16) 사이에 인가된다. 따라서 프로그래밍 동작 동안, 전하 펌프(52)로부터 제공되는 전류(전형적으로 마이크로암페어 단위)가 제1 영역(14)과 제2 영역(16)의 사이에 흐른다.
판독 동작 동안, 제1 양 전압(예컨대, 1V 내지 3V)이 워드 라인(20)에 인가되어 워드 라인(20)의 아래 있는 채널 영역(18)의 부분을 턴온시킨다. 제2 양 전압(예컨대, 0V 내지 4V)이 커플링 게이트(26)에 인가된다. 제3 양 전압(예컨대, 0V 내지 3V)가 소거 게이트(28)에 인가된다. 전압 차(예컨대, 0.5V 내지 2V)가 제1 영역(14)과 제2 영역(16)에 인가된다. 플로팅 게이트(24)가 프로그램되었으면, 즉 플로팅 게이트(24)가 전자들을 저장하고 있으면, 커플링 게이트(26)에 인가된 제2 양 전압과 소거 게이트(28)에 인가된 제3 양 전압은, 플로팅 게이트(24) 상에 저장된 음 전자(negative electron)들을 극복(overcome)할 수 없으며, 플로팅 게이트(24)의 아래 있는 채널 영역(18)의 부분은 비-도전성을 유지한다. 따라서 무 전류 또는 무시할 정도로 작은 양의 전류가 제1 영역(14)과 제2 영역(16) 사이에 흐를 것이다. 그러나 플로팅 게이트(24)가 프로그램되지 않았으면, 즉 플로팅 게이트(24)가 중립 또는 양적으로 충전된 상태를 유지하고 있으면, 커플링 게이트(26)에 인가된 제2 양 전압과 소거 게이트(28)에 인가되는 제3 양 전압은, 플로팅 게이트(24)의 아래 있는 채널 영역(18)의 부분을 도전성이 되도록 할 수 있다. 따라서 전류가 제1 영역(14)과 제2 영역(16) 사이에 흐를 것이다.
잘 알려진 바와 같이, 메모리 셀(10)은 전형적으로 반도체 웨이퍼 상에, 복수의 행과 열의 메모리 셀들(10)을 구비한 어레이로 형성된다. 도 2를 참조하면, 메모리 셀들(10)의 어레이(60)를 구비한 종래 기술의 메모리 디바이스(50)의 블록 레벨 다이어그램이 도시되어 있다. 도 3은 도 2에 도시된 어레이(60)의 보다 상세한 다이어그램이다. 어레이(60)는 예컨대, 복수의 행과 열로 배열된 메모리 셀들(10)과 같은 복수의 메모리 셀을 구비한 복수의 서브어레이(62a-62d)를 포함한다. 행 디코더(64)(aka xdec, 또한 워드 라인 디코더)가 서브어레이(62a-62d)를 가로질러 이어지는 메모리 셀들(10)의 각 행과 연관된다. 각 서브어레이, 예컨대 서브어레이(62a)에 있는 메모리 셀들(10)의 열들이 감지 증폭기(70a, 70b)와 연관된다. 열(비트라인) 디코더(ymax, 도시하지 않음)가 감지 증폭기들 내로 메모리 셀들의 열들을 선택(멀티플렉스, 디코드)하는데 사용된다. 감시 증폭기들(70)로부터, 신호들이 출력 레지스터(72)에 공급된다. 도 3에 도시된 실시예에서, 각 서브어레이(62)는 각각이 16비트를 갖는, 2개의 워드로 멀티플렉싱(즉, ymux(도시하지 않음)로 디코딩됨)된다. 일 실시예에서, 서브어레이(62)에는, 각 행이 2048개의 메모리 셀이 있으며, 첫 번째 1024개의 셀은 (프로그램되어야 하는) 제1 워드로 멀티플렉싱되고, 두 번째 1024개의 셀은 (프로그램되어야 하는) 제2 워드로 멀티플렉싱된다.
소거 동안, 메모리 셀들의 유닛들의 블록이나 그룹(예컨대, 다수의 (1바이트가 되는 8비트로 이루어진) 바이트)이 동시에 소거된다. 소거 동작은 복수의 비트를 "FF"(16진수) 즉, "11111111"의 상태로 둔다. 프로그래밍 동안, 한 바이트 중 선택된 비트들은 플로팅 게이트에 전자들을 주입함으로써 로직 상태 "0"으로 프로그램된다. 그러나 전하 펌프(52)는 마치 한 바이트 중 모든 비트들이 프로그래밍되어야 하는 것처럼, 프로그래밍 전류를 공급할 수 있어야 한다. 따라서 전하 펌프(52)는 마치 한 바이트 중 모든 비트가 상태 "00"(16진수) 즉, "00000000"으로 프로그램되어야 하는 것처럼 프로그래밍 전류를 공급할 수 있는 능력을 가지도록 설계되어야 한다. 이에 더하여, 성능을 향상시키기 위해, 다수의 바이트가 동시에 프로그램된다. 이것은 큰 프로그래밍 전류를 제공하는 전하 펌프(52)에 부담을 더욱 가중시킨다. 큰 전류를 제공할 수 있는 전하 펌프(52)는 실리콘 다이 상에 다량의 점유 면적(real estate)을 요구하기 때문에, 전하 펌프(52)가 클수록 더 넓은 실리콘 점유 면적을 차지한다. 따라서 본 발명의 하나의 목적은 전하 펌프(52)의 크기를 줄이는 것이다.
마지막으로, 패리티 비트(parity bit)들은 이 기술 분야에 잘 알려져 있다. 패리티 비트는 복수의 비트(예컨대, 한 바이트)와 연관된 비트로서, 바이트 내에 저장된 데이터에 대한 에러 체크를 나타내는 상태로 프로그램된다. 그러나 전형적인 패리티 비트들은 휘발성 메모리 셀들과 함께 사용되어 왔으며, 에러 정정을 위해서만 사용되어 왔다.
본 발명은 프로그래밍 전류를 제공하는 전하 펌프를 구비한 비-휘발성 메모리 디바이스이다. 메모리 디바이스는 상기 프로그래밍 전류에 의해 프로그램되는 각 메모리 셀로 이루어진 비-휘발성 메모리 셀들의 어레이를 구비한다. 상기 비-휘발성 메모리 셀들의 어레이는, 각 유닛이 복수의 메모리 셀을 포함하는 복수의 유닛으로 분할된다. 표시자 메모리 셀(indicator memory cell)은 비-휘발성 메모리 셀들의 각 유닛과 연관된다. 프로그래밍 전류는 각 유닛의 상기 메모리 셀들 중 소정 퍼센트 이하의 메모리 셀이 프로그램되어야 할 때, 상기 프로그래밍 전류를 사용하여 각 유닛의 상기 메모리 셀들을 프로그램하고, 각 유닛의 상기 메모리 셀들 중 소정 퍼센트보다 많은 메모리 셀이 프로그램되어야 할 때, 상기 프로그래밍 전류를 사용하여 각 유닛과 연관된 상기 표시자 메모리 셀과 각 유닛의 메모리 셀들의 반전(inverse)을 프로그램한다.
본 발명은 또한 프로그래밍 동작 동안에 프로그래밍 전류를 공급하는 전하 펌프에 의존하는 비-휘발성 메모리를 프로그래밍하는 방법이다.
도 1은 상부에 전하들을 저장하기 위한 플로팅 게이트를 구비한 종래 기술로서, 본 발명의 프로그래밍 방법이 적용가능하고, 본 발명의 메모리 디바이스에 사용될 수 있는 비-휘발성 메모리 셀의 단면도이다.
도 2는 비-휘발성 메모리 셀들의 프로그래밍 동안 사용하는 프로그래밍 전류를 제공하는 전하 펌프를 구비하는 종래 기술의 비-휘발성 메모리 디바이스의 블록 레벨 다이어그램이다.
도 3은 도 2에 도시된 종래 기술의 비-휘발성 메모리 디바이스의 어레이 부분의 상세 블록 레벨 다이어그램이다.
도 4는 본 발명의 비-휘발성 메모리 디바이스의 일 실시예의 어레이 부분의 상세 블록 레벨 다이어그램이다.
도 5는 본 발명의 비-휘발성 메모리 디바이스의 또 다른 실시예의 어레이 부분의 상세 블록 레벨 다이어그램이다.
도 6은 본 발명의 비-휘발성 메모리 디바이스에 사용하는 프로그래밍 회로의 블록 레벨 다이어그램이다.
도 7은 본 발명의 비-휘발성 메모리 디바이스에 사용하는 판독 회로의 블록 레벨 다이어그램이다.
도 8은 본 발명의 비-휘발성 메모리 디바이스에서 사용하는 데이터인(datain) '0' 검출 아날로그 회로이다.
도 9는 본 발명의 비-휘발성 메모리 디바이스에서 사용하는 데이터인 '0' 아날로그 검출을 위한 흐름도이다.
도 10은 본 발명의 비-휘발성 메모리 디바이스에서 사용하는 데이터인 '0' 검출 디지털 회로의 블록도이다.
도 11은 본 발명의 비-휘발성 메모리 디바이스에서 사용하는 프로그래밍을 위한 흐름도이다.
도 12는 본 발명의 비-휘발성 메모리 디바이스에서 사용하는 프로그래밍을 위한 대안적 흐름도이다.
도 13은 본 발명의 비-휘발성 메모리 디바이스에서 사용하는 프로그래밍을 위한 또 다른 대안적 흐름도이다.
도 4를 참조하면, 본 발명의 비-휘발성 메모리 어레이(200)의 일 실시예의 블록 레벨 다이어그램이 도시되어 있다. 비-휘발성 메모리 어레이(200)는 어레이(60)를 대신하여 도 2에 도시된 비-휘발성 메모리 디바이스(50)에 사용될 수 있다. 본 발명의 메모리 어레이(200)는 메모리 어레이(60)와 유사하기 때문에, 동일 부호들이 동일 부분들을 위해 사용될 것이다.
어레이(200)는 예컨대, 복수의 행과 열로 배열된 메모리 셀(10)과 같은 복수의 메모리 셀로 이루어진, 복수의 서브어레이(62a-62d)를 포함한다. 행 디코더(64)가 서브어레이(62a-62d)를 가로질러 이어지는 메모리 셀들(10)의 각 행과 연관된다. 각 서브어레이, 예컨대 서브어레이(62a)에 있는 메모리 셀들(10)의 각 열이 감지 증폭기(70a, 70b)와 연관된다. 감지 증폭기(70)로부터, 신호들이 출력 레지스터(72)에 공급된다. 도 4에 도시된 실시예에서, 각 서브어레이(62)는 각 행이 2048개의 메모리 셀(10)을 갖는 다수의 행을 갖는데, 첫 번째 1024개의 셀은 제1 워드(각 워드는 프로그램되어야 하는 16비트를 가짐)로 멀티플렉싱되고, 두 번째 1024개의 셀은 (프로그램되어야 하는) 제2 워드로 멀티플렉싱된다. 따라서 어레이(60) 내의 메모리 셀들(10)의 전체 행은 128개의 메모리 셀(10)로 된 다수의 유닛을 포함하는데, 각 유닛은 8개의 워드(word 1-word 7)로 멀티플렉싱되며, 감지 증폭기(S0-SA127, 70)에 연결된다
어레이(200)는 메모리 셀(표시자 메모리 셀이라고 불림)들의 어레이(80)를 더 포함하는데, 서브어레이(62a-62d)에서 사용되는 메모리 셀(즉, 메모리 셀들(10))의 유형과 동일할 수 있으며, 어레이(80)의 각 행은 다수의 표시자 메모리 셀들을 갖는다. 메모리 셀들의 어레이(80)는 서브어레이(62d)와 행 디코더(64)의 사이에 위치되며, 표시자 메모리 셀들(10)의 한 행은 서브어레이(62a-62d) 내의 메모리 셀들(10)의 각 행과 연관된다. 표시자 비트(indicator bit)와 연관되는 로직으로 인한 전체 속도의 영향을 완화하기 위해 행 디코딩으로부터 가장 빠른 액세스 시간을 갖도록, 표시자 셀 어레이(80)는 행 디코더(64)에 바로 인접하여 위치된다. 일 실시예에서, 하나의 표시자 메모리 셀은 각 서브어레이(62)에 있는 2개의 선택된 워드(32개의 선택된 메모리 셀들(10))과 연관된다. 다른 실시예에서는, 하나의 표시자 메모리 셀(10)은 선택된 8개의 워드로 된 각각의 유닛(128개의 메모리 셀들(10))과 연관된다. 물론, 이하에서 확인할 수 있는 것처럼, 본 발명은 이에 한정되는 것은 아니며, 각 표시자 메모리 셀(10)은 메모리 셀들의 유닛과 연관될 수 있는데, 유닛의 메모리 셀은 임의 개수이다. 감지 증폭기(82)는 어레이(80) 내의 표시자 메모리 셀들(10)과 연관된다. 확인되어질 것처럼, 감지 증폭기들(82)의 출력은 감지 증폭기(70a-70h)로부터의 출력의 레지스터(72a-72h)로의 인가를 제어한다. 일 실시예에서, 각 표시자 비트(셀)는 하나의 (기본) 메모리 셀(10)로 구성된다. 다른 실시예에서, 각 표시자 비트는 2개 이상의 (기본) 메모리 셀(10)로 구성되는데, 이 경우 표시자 셀의 감지는 데이터 출력의 체크 및 반전(inversion)으로 인하여 전체 속도에 영향을 미치지 않도록 빨라야 한다.
본 발명의 동작은 후술되는 예로 최적으로 이해될 수 있다. 표시자 메모리 셀(10)이 연관된 메모리 셀들(10)의 유닛이 1바이트 즉 8비트라고 가정한다. 바이트 즉 8 비트가 소거된 후에, 그것들은 상태 "FF"(16진수) 즉 비트 패턴 "11111111"로 된다. 상기 바이트에 프로그램되어야 하는 새 데이터가 "00000000"이라면, 8개의 메모리 셀(10)의 상태를 변경하기에 충분한 프로그래밍 전류를 공급하는 대신에, 본 발명의 메모리 디바이스(200)는 대신하여 단지 연관된 표시자 메모리 셀(10)만을 "1"에서 "0"으로 프로그램하고, 연관된 바이트의 비트들의 상태를 "11111111"로 유지한다. 이 방식에서는, 단지 1 비트만이 프로그램되며, 단지 1개의 메모리 셀(10)만을 프로그램하기에 충분한 프로그래밍 전류가 전하 펌프(52)에 의해 제공되면 된다.
본 발명의 다른 예시들은 다음과 같다. 다시, 표시자 메모리 셀(10)이 연관된 메모리 셀들(10)의 유닛이 1바이트 즉 8비트라고 가정한다. 바이트 즉 8 비트가 소거된 후에, 그것들은 상태 "FF"(16진수) 즉 비트 패턴 "11111111"로 된다. 연관된 바이트에 프로그램되어야 하는 새 데이터가 "01010101"(연관된 유닛 내의 50 퍼센트의 비트들)이라면, 프로그래밍 회로는 비트 패턴 "01010101"이 연관된 바이트의 상기 비트들에 프로그램되도록 한다. 이 경우, 단지 4개의 비트만 프로그램되며, 요구되는 총 프로그래밍 전류는 4비트의 프로그래밍을 위한 것이다. 그러나 연관된 바이트에 프로그램되어야 하는 새 데이터가 "01010100"(연관된 바이트에서 50 퍼센트 비트보다 많음)이라면, 프로그래밍 회로는 반전 비트 패턴 즉, "10101011"이 연관된 바이트의 상기 비트들에 프로그램되도록 하고, 상기 연관된 표시자 비트가 상태 "0"으로 프로그램되도록 한다. 이 예에서는, 또 4개의 비트만이 프로그램되면 되어, 총 프로그래밍 전류는 4비트만을 위한 것이다. 이들 예로부터 알 수 있는 것처럼, 본 발명의 방법에 의해, 종래 기술의 어레이(60)와 비교하여, 전하 펌프(52)가 어레이(200)를 프로그램하기 위해 공급해야 하는 프로그래밍 전류의 최대 양이, 종래 기술의 메모리 어레이(60)를 위하여 필요했던 프로그래밍 전류의 반 즉, 50 퍼센트에 불과하다. 이 설명된 방법에서, 저장되어야 하는 데이터 패턴은 (만약 '0' 데이터가 50 퍼센트를 초과하면, '1' 데이터로 반전되기 때문에) 주로 '1' 데이터이다. 대안적 실시예들은 정확하게 50 퍼센트일 필요는 없지만, 대략 50 퍼센트 또는 임의 수치의 퍼센트일 수 있다. 50 퍼센트 미만인 경우에는, 칩 동작에 덜 적합하다.
도 5를 참조하면, 본 발명의 비-휘발성 메모리 어레이(300)의 또 다른 실시예의 블록 레벨 다이어그램이 도시되어 있다. 비-휘발성 메모리 어레이(300)는 도 4에 도시된 비-휘발성 메모리 어레이(200)와 유사하며, 어레이(60)를 대신하여 도 2에 도시된 비-휘발성 메모리 디바이스(50)에 사용될 수 있다. 본 발명의 메모리 어레이(300)는 메모리 어레이(200)와 유사하기 때문에, 동일한 부호들이 유사한 부분들에 사용될 것이다.
어레이(300)는 예컨대, 복수의 행과 열로 배열된 메모리 셀들(10)과 같은 복수의 메모리 셀로 이루어진, 복수의 서브어레이(62a-62d)를 포함한다. 행 디코더(64)가 서브어레이(62a-62d)를 가로질러 이어지는 메모리 셀들(10)의 각 행과 연관된다. 각 서브어레이, 예컨대 서브어레이(62a)에 있는 메모리 셀들(10)의 각 열이 감지 증폭기(70a, 70b)와 연관된다. 감지 증폭기(70)로부터, 신호들이 출력 레지스터(72)에 공급된다. 도 5에 도시된 실시예에서, 각 서브어레이(62)는 각 행이 2048개의 메모리 셀(10)을 갖는 다수의 행을 갖는데, 첫 번째 1024개의 셀은 제1 워드(각 워드는 프로그램되어야 하는 16비트를 가짐)로 멀티플렉싱되고, 두 번째 1024개의 셀은 (프로그램되어야 하는) 제2 워드로 멀티플렉싱된다. 따라서 어레이(60) 내의 메모리 셀들(10)의 전체 행은 128개의 메모리 셀(10)로 된 유닛들을 포함하며, 각 유닛은 8개의 워드(word1-word7)로 멀티플렉싱되며, 감지 증폭기(SA0-SA127, 70)에 연결된다.
어레이(300)는 (표시자 메모리 셀이라고 칭해지는) 메모리 셀들의 복수의 어레이(80)를 더 포함하는데, 서브어레이(62a-62d)에서 사용되는 메모리 셀(즉, 메모리 셀들(10))의 유형과 동일할 수 있다. 표시자 메모리 셀들의 각 어레이(80)는 메모리 셀들의 서브어레이(62)와 연관되며, 연관된 서브어레이(62)와 연관된 감지 증폭기(70)의 사이에 위치되며, 하나의 표시자 메모리 셀(10)은 서브어레이(62)에 있는 메모리 셀들(10)의 연관 열들과 연관된다. 각 표시자 메모리 셀이 메모리 셀들의 행과 연관되어 있다는 것에 관하여 이전에 설명한 것과 유사하게, 각 표시자 메모리 셀(10)은 메모리 셀들의 한 열과 연관될 필요가 없으며, 메모리 셀들의 유닛과 연관될 수 있는데, 상기 유닛의 메모리 셀은 임의 개수이다. 감지 증폭기(82)가 표시자 메모리 셀들의 각 어레이(80)와 연관되는데, 이 감지 증폭기(82)의 출력은 감지 증폭기(70)로부터의 출력의 레지스터들(72)로의 인가를 제어한다.
도 6을 참조하면, 본 발명의 방법에 따라서 데이터 또는 그 데이터의 반전이 프로그램되어야 하는지를 판단하기 위해 프로그램되어야 하는 데이터를 테스트하는 회로(210)가 도시되어 있다. 회로(210)는 디지트 카운터 회로(246), 반전 회로(204) 및 멀티플렉서 MUX(202)를 포함한다. 디지트 카운터 회로(246)는 데이터인(datain) 스트림 내의 로직 비트 '0'의 개수를 카운트하는데 사용된다. 논리 비트 '0'의 개수가 소정의 미리 결정된 디지트 퍼센트(예를 들어 50 퍼센트)보다 많으면, 그 데이터는 선택 MUX(202)와 반전 회로(204)를 통해 반전된다. 대안적으로, 디지트 퍼센트는 예를 들어, 33%, 66%, 51% 등이 이용될 수 있다. MUX 회로(202)의 출력은 메모리 셀들(10)에 저장되어야 하는 데이터이다.
도 7을 참조하면, 본 발명의 방법에 따라서 감지 증폭기(70)로부터의 출력의 레지스터(72)로의 인가를 제어하기 위한 데이터 출력 MUX 회로(260)가 도시되어 있다. 데이터 출력 MUX 회로(260)는 표시자 감지 증폭기(82), 감지 증폭기(70), 반전 회로(264), 및 멀티플렉싱 회로 MUX(262)를 구비한다. 표시자 감지 증폭기(82)로의 입력에는 어레이(80)로부터의 표시자 메모리 셀들이 연결된다. 감지 증폭기(70)로의 입력에는 어레이(62)로부터의 메모리 셀들(10)이 연결된다. 표시자 감지 증폭기(82)의 출력에 기초하여, 감지 증폭기(70)의 출력은 MUX(262)를 통과하거나, MUX(262) 및 반전 회로(264)에 의해 반전되어 제공된다. 전형적으로, MUX(262)의 출력은 IOBUF(Input/Output Buffer) 회로에 연결된 DOUT(Data Output) 회로(72)로 인가된다.
도 8을 참조하면, 아날로그 디지트 '0' 카운터(검출) 회로(310)가 도시되어 있다. 회로(310)는 복수의 활성화 바이어스 회로(enabling bias circuit)(320), PMOS 트랜지스터(316), PMOS 트랜지스터(330), 전류 바이어스 회로(332)를 구비한다. 활성화 바이어스 회로(320)는 전류 바이어스 회로 IBIAS(324) 및 NMOS 트랜지스터(322)를 포함한다. NMOS(322)의 게이트로의 입력은 반전된 데이터인 IN/이며, 따라서 데이터인 IN='0'이면, 반전 데이터인 IN/= '1'이 NMOS 트랜지스터(322)를 인에이블시킬 것이다. 바이어스 회로(324)는 유닛 바이어스 전류 IBIAS, 예컨대 IBIAS=2uA로서 구현된다. 예를 들어, 16개의 데이터인 IN<0-15>이 존재하면, 이로 인해 16개의 회로(320)가 존재한다. 예를 들어, 9개의 데이터인='0'(그 밖의 7개 데이터인='1')이면, 9개의 바이어스 전류 IBIAS(324) 유닛이 PMOS(316)를 인에이블되게 한다. 이 전류는 PMOS 트랜지스터(330)로 미러링된다. 예를 들어, 회로(332)는 M×IBIAS이며, 여기서 M=8이고 IBIAS=2uA이다. PMOS(330) 내의 전류는 9×IBIAS인 반면, 회로(332) 내의 전류는 8×IBIAS이며, 이로써 출력(334)은 디지트 '0'의 개수가 16개의 데이터인 비트 중 8개보다 많다는 것을 나타내는 '하이(high)'로 풀(pull)될 것이다. 회로(310)는 동시에 모든 데이터인 비트에 대해 동작한다.
도 9를 참조하면, 디지털 디지트 '0' 검출의 흐름도 알고리즘이 도시되어 있다. 시작 단계 410에서, 초기화 시퀀스는 Dn=D0(예를 들어, 64개 중 제1 데이터인), 클록 펄스 CKn=CK0(제1 클록), 및 카운터 Cn=0으로 초기화한다. 다음 단계 412에서, 데이터인 Dn=0(디지트 '0')인지를 체크하여, Y(예)이면 단계 414로 진행하여 카운트 Cn을 1만큼 증가(Cn=Cn+1)시키고, N(아니오)이면 단계 416으로 진행하여 카운트 Cn을 현재 카운트와 동일하게 유지한다. 다음으로, 단계 418로 진행하여 클록 펄스를 다음 클록 펄스 CKn=CKn+1로 증가시키고, 다음 데이터인 Dn=Dn+1을 입력한다. 다음으로 단계 420으로 진행하여 n=K(예컨대, K=64)인지를 체크하여, N(아니오)이면 단계 412 루프로 되돌아가서 디지트 '0'에 대한 체크를 반복한다. 만약 n=K 즉 Y(예)이면, 단계 422로 진행한다. 여기서 카운트 Cn>M(예컨대, M=33)인지를 체크하여, 참(true)이면 '0'을 검출 DET0=true=1이고, 만약 그렇지 않으면, DET0=false=1이다. 다음은 마지막 단계 424로서, 종료 시퀀스이다.
도 10을 참조하면, 디지털 디지트 '0' 검출 회로(500)가 도시되어 있다. 회로(500)는 a-비트 카운터(510) 및 검출 로직 (Det-Logic) 회로(520)를 구비한다. a-비트 카운터는 클록킹 펄스 CKn을 제공하고, 검출 로직(520)은 Dn에 대한 디지트 '0', 체크 Cn, Dn, CKn에 대한 증가 기능, 카운트 Cn에 대한 체크, 초기화(initialization), 시작, 종료 기능을 제공한다. 예를 들어, 64개의 데이터인 비트 D<0:63>의 경우, 33개의 데이터인=0이면, 출력 DECTO(522)=1이 되는데, 이는 '0' 디지트의 개수가 64개 중에서 32보다 많다는 것을 나타낸다. 회로(500)는 한 번에 한 비트씩 순차적으로 동작을 수행하는데, 예를 들어 64개의 데이터인 비트에 대해서는, 64개의 클록 펄스로 동작한다.
도 11, 도 12 및 도 13에 도시된 프로그래밍 알고리즘은, 필요한 데이터 비트들에 대해서만 행해지는 동작시, 운용을 좀 더 최적화시키기 위하여, 상술되어진 발명들과 함께 조합하여 이용될 수 있다.
도 11을 참조하면, '0' 데이터인 패턴의 효율적인 프로그래밍을 위한 프로그래밍 알고리즘(600)의 흐름도가 도시되어 있다. 본 실시예에서는, 64개의 데이터인 비트(도 4 및 도 5에서는 128개의 데이터인 비트가 존재함)가 존재하며, 16 비트의 '0' 데이터인만이 한번에 프로그래밍될 수 있다[이는 (전하 펌프 영역을 최소화하기 위해서) 고전압 전하 펌프가 프로그래밍시 한번에 16비트에 대해 공급하도록 설계된다는 것을 의미하고, 예를 들어, 32비트를 프로그램하기 위해서는, 각각의 프로그래밍 펄스가 한번에 16개의 비트를 프로그램하고, 순차적으로 동작하는 2개의 프로그래밍 펄스가 필요할 것이다.] 이 알고리즘은 제1 데이터인에서부터 시작하여 '0' 데이터인 디지트를 카운트할 것이고, '0' 디지트가 16개에 도달하면, 프로그램(기록) 동작이 수행되어 적절한 메모리 셀들(10)에 이 16비트를 프로그램하는데, 이는 이러한 셀들의 메모리 셀 저장 상태가 소거 상태 ('1')에서 프로그램 상태 ('0')로 변하는 것을 의미한다. 이 프로그래밍이 종료되면, 프로그램되어야 하는 다음 16개의 '0' 데이터인 디지트를 카운트하고 식별한다. 이 시퀀스는 모든 64개 데이터인에 대해 프로그래밍 동작이 수행될 때까지 계속된다.
프로그램 알고리즘 시퀀스는 다음과 같이 동작한다. 모든 선택된 메모리 셀을 소거하는 소거 동작 이후에, 알고리즘(600)이 데이터인을 메모리 셀들(10)에 프로그램하기 위해 사용된다. 시작 단계 602에서, 초기화 단계는 DINn=DIN0로 초기화시키고, 다음으로 단계 604에서 카운트 인에이블(C=0)시키고, 다음으로 단계 606에서 DINn=0인 것이 체크되면 추후에 프로그램(기록)되도록 DINn을 인에이블시키고, 카운트 C를 1만큼 증가(C=C+1)시키며, 만약 DINn=1인 것이 체크되면, 추후 프로그래밍 동작을 위해 DINn을 디스에이블시키고 카운트 C를 현재 상태로 유지한다. 다음으로 단계 608에서, 데이터인은 다음 데이터인(DINn=DINn+1)이 되며, 다음으로 단계 610에서, 데이터인이 마지막 데이터인에 도달했는지(DINn=DlN63)를 체크한다. 만약 N(아니오)이면 단계 612로 진행하여 카운트 C가 16에 도달했는지를 체크하고, 만약 Y(예)이면 단계 614로 진행하여 16개의 인에이블된 데이터인 DINn에 대하여 프로그램 동작을 수행한다. 만약 카운트 C가 16에 도달하지 않았으면, 단계 606으로 되돌아가서 다음 '0' 데이터인을 인에이블시킬지를 체크한다. 만약 단계 610에서, DINn=DlN63이면 단계 616으로 진행하여, 현재 카운트가 C<1이면(프로그램되어야 하는 메모리 셀이 존재하지 않음), 최종 단계 666으로 진행하여 종료하고, 현재 카운트가 C≥1이면 단계 618로 진행하여 프로그래밍을 위해 인에이블된 데이터인 비트들에 대해 프로그램 동작을 수행한 후, 최종 단계 666으로 진행하여 종료한다.
단계 12를 참조하면, '0'데이터인 패턴의 효율적인 프로그래밍을 위한 또 다른 프로그래밍 알고리즘(600)의 흐름도가 도시되어 있다. 본 실시예에서, '0' 디지트 검출은 워드(16 비트) 단위로 동작된다. 이 실시예에서는, 선택된 워드들의 프로그램(기록)될 수 있는 0의 개수는 한 번에 16개이다. 이 실시예에서는, 4개의 워드를 예로서 나타냈다. 이 알고리즘은 오직 필요한 워드들을 '0' 디지트로 프로그램하는데, 이것은 메모리 셀 저장 상태를 소거 상태 ('1')에서 프로그램 상태('0')로 변화시키는 것을 의미한다. 이 방법은 도 11에 도시된 방법(워드 대신에 비트에 대해 동작하는 방법)보다 덜 효율적이지만, 보다 간단한 구현을 필요로 한다.
이 알고리즘은 다음과 같이 동작한다. 먼저 시작 단계 702에서, 모든 필요한 파라미터들을 초기화시킨다. 다음으로 단계 704에서, 4개의 워드 W0-W3 중 '0' 디지트의 개수가 <1(프로그램되어야 하는 메모리 셀이 없음)인지를 체크하고, 만약 Y(예)이면 마지막 단계 777로 진행하여 종료한다(수행해야 할 프로그래밍 동작이 없다는 것을 의미함). 만약 N(아니오)이면, 단계 706으로 진행하여 4개의 워드 W0-W3 중 '0' 디지트의 개수가 <16인지를 체크하여, 만약 Y(예)이면 단계 708로 진행하여 (프로그램되어야 하는 비트의 개수가, 동시에 프로그램될 수 있는 비트 개수인 16비트보다 적기 때문에) 모든 워드를 프로그램한 후 마지막 단계 777로 진행하여 종료한다. 만약 단계 706에서, 4개의 워드 W0-W3 중 '0' 디지트의 개수가 <16이 아니면, 단계 710으로 진행하여 2개의 워드 W0, W1 중 '0' 디지트의 개수가 <1인지를 체크하고, 만약 N(아니오)이면 단계 712로 진행하여 2개의 워드 W0, W1 중 '0' 디지트의 개수가 <16인지를 체크하며, 만약 Y(예)이면 2개의 워드 W0, W1을 동시에 프로그램한 후 단계 720로 진행하고, 만약 N(아니오)이면 개별적으로 W0를 프로그램하고 W1을 프로그램(즉, 한번에 한 워드씩 순차적으로)한 후 단계 720으로 진행한다. 만약 단계 710에서, 체크 결과가 Y(예)이면 단계 720으로 진행한다. 단계 720에서, 이제 워드 W2, W3 중 '0' 디지트의 개수가 <1인지를 체크하여, 만약 Y(예)이면 마지막 단계 777로 진행하여 종료하고, 만약 N(아니오)이면 단계 722로 진행하여 워드 W2, W3 중 '0' 디지트의 개수가 <16인지를 체크한다. 만약 Y(예)이면 단계 724로 진행하여 2개의 워드 W2, W3을 동시에 프로그램하고, N(아니오)이면 단계 726으로 진행하여 워드 W2와 W3을 개별적(순차적)으로 프로그램한 후, 마지막 단계 777로 진행하여 종료한다.
단계 13을 참조하면, '0'데이터인 패턴의 효율적인 프로그래밍을 위한 다른 프로그래밍 알고리즘(600)의 흐름도가 도시되어 있다. 본 실시예에서는, '0' 디지트 검출은 워드(16 비트) 단위로 동작된다. 이 실시예에서는, 선택된 워드들의 프로그램(기록)될 수 있는 0의 개수는 한 번에 16개이다. 이 실시예에서는, 4개의 워드를 예로서 나타냈다. 이 알고리즘은 오직 필요한 워드들을 '0' 디지트로 프로그램한다. 이 방법은 도 12에 도시된 방법보다 더 효율적이지만, 보다 상세한(exhaustive) 워드 조합 체크를 위해 더 복잡한 구현을 필요로 한다.
이 알고리즘은 다음과 같이 동작한다. 먼저 단계 802에서 시작하여, 모든 필요한 파라미터들을 초기화시킨다. 다음으로 단계 804에서, 4개의 워드 W0-W3 중 '0' 디지트의 개수가 <16인지를 체크한다. 만약 Y(예)이면 단계 806으로 진행하여 모든 워드를 동시에 프로그램한 후 마지막 단계 888로 진행하여 종료한다. 만약 N(아니오)이면 단계 810으로 진행하여, 워드 W0, W1 중 '0' 디지트의 개수가 <16인지를 체크한다. 만약 Y(예)이면 단계 812로 진행하여 2개의 워드 W0, W1을 동시에 프로그램한다. 단계 812 후에, 단계 814로 진행하여 워드 W2, W3 중 '0' 디지트의 개수가 <16인지를 체크한다. 만약 Y(예)이면 단계 816으로 진행하여 2개의 워드 W2, W3을 동시에 프로그램한 후 마지막 단계 888로 진행하여 종료한다. 만약 단계 814에서의 체크 결과가 N(아니오)이면 단계 818로 진행하여 개별적(순차적)으로 워드 W2를 프로그램하고 W3을 프로그램한 후, 마지막 단계 888로 진행하여 종료한다. 유사하게, 나머지 4개의 워드에 대한 상세한 조합들을 위한 단계 820-828, 단계 830-838, 단계 840-848, 단계 850-858, 단계 860-868은 단계 810-818과 유사하다. 단계 870은 각 워드 W0, W1, W2, W3을 개별적으로 프로그램한 후, 마지막 단계 888로 진행하여 종료한다.
도 12 및 도 13에 도시된 상술되어진 4개의 워드 데이터인(64 데이터인 비트)에 대한 어레이 구조는, 각각이 서브어레이(62a, 62b)((서브어레이(62c,62d)는 아님)만으로 구성된, 도 4 및 도 5에 도시된 어레이(200) 또는 어레이(300)와 유사한 어레이 구조이다.
복수의 서브어레이(62a-62d)로 구성된 메모리 어레이에 대하여, 선택된(인에이블된) 워드 또는 워드들이 프로그램되어야 하는 경우, 이 워드들과 연관된 서브어레이들이 인에이블되고(프로그래밍 바이어스, 프로그래밍 고전압, 및 회로가 어레이 메모리 셀들(10)로 인가되도록 인에이블됨), 선택되지 않은(디스에이블된) 워드들과 연관된 서브어레이들은 디스에이블되어(프로그래밍 바이어스, 프로그래밍 고전압, 및 회로가 어레이 메모리 셀들(10)로 인가되지 않도록 디스에이블됨), 선택되지 않은 서브어레이를 방해하는 임의의 프로그래밍 고전압 및 바이어스를 최소화한다.
상술된 발명들에서, 표시자 비트와 동작 알고리즘은 프로그래밍 데이터 패턴과 연관된다. 그리고 데이터인 '0'은 프로그램된 상태와 연관된다. 데이터 '1'은 데이터인을 반전시킨 프로그래밍 상태와 연관되며 상기 데이터 출력을 반전시킨다. 대안적 실시예는 소거 동작에 대해 최적화될 수 있는 기술을 위한 소거 데이터 패턴과 연관된 표시자 비트 및 동작 알고리즘들을 구비한다.
또 다른 실시예는 내구성(endurance)(동작 수명 동안의 소거/프로그램 사이클 수)과 데이터 보존성(data retention)(동작 수명(예컨대, 10년) 동안 데이터를 영구적으로 보유할 수 있는 능력)에 대해 최적화될 수 있는 기술을 위한 데이터 패턴과 연관된 표시자 비트 및 동작 알고리즘을 구비하는데, 예를 들어 최고의 내구성과 데이터 보존 성능을 위해 내구성과 데이터 보존성이 '1' 상태를 선호하면, 메모리에 저장되는 데이터 패턴은 동작 알고리즘에 의해 처리된 후 '1' 상태로 있는 데이터가 더 많을 수 있다. 다른 실시예는 소정 데이터 패턴이 덜 방해를 받는다는 점에서, 방해에 대해 최적화(소거 또는 프로그래밍 동작에서 선택되지 않은 셀들의 데이터 상태를 덜 변화시킨다는 것을 의미함)될 수 있는 기술을 위한 데이터 패턴과 연관된 표시자 비트와 동작 알고리즘을 구비한다.
또 다른 실시예는 전체 최적 비트 에러율(BER)에 대해 최적화(소거 또는 프로그래밍 또는 판독 동작에서 메모리 셀들의 데이터 상태를 덜 변화시키는 것을 의미함)될 수 있는 기술 및/또는 설계를 위한 데이터 패턴과 연관된 표시자 비트 및 동작 알고리즘을 구비한다. 이것은 동작 수명이 다했을 때 동작 모드들의 제품 설계 및 기술의 특징과, 메모리 셀들에 저장되어야 할 가장 적합한 데이터 패턴(예를 들어 주로 '1' 또는 주로 '0' 데이터 패턴)을 위한 알고리즘을 찾는 사용자 애플리케이션들에 관련될 수 있다.
또 다른 실시예는 판독 전력 소비에 대해 최적화(예컨대, '0' 상태에서는 메모리 셀 전류가 존재하지 않기 때문에, 메모리 셀에 저장되어야 하는 데이터 패턴이, 메모리 셀(10)을 위한 알고리즘에 의해 처리된 후에 더 많은 데이터 '0' 상태를 가지며, 이는 메모리 셀(10)에 의한 전력 소비가 없다는 것을 의미함)될 수 있는 기술을 위한 데이터 패턴과 연관된 표시자 비트 및 동작 알고리즘들을 구비한다. 또 다른 실시예는 사용자의 사용 방법에 따라 달라지는 전력 프로파일에 따라서 모든 동작 모드(예컨대, 판독, 프로그램, 소거)의 전체 전력 모비에 대해 최적화될 수 있는 설계와 기술을 위한 데이터 패턴과 연관된 표시자 비트 및 동작 알고리즘들을 구비한다.
상기로부터 알 수 있는 것처럼, 본 발명은 프로그래밍 전류를 공급하는 전하 펌프를 필요로 하는 임의의 비-휘발성 메모리 디바이스에 적용될 수 있다. 따라서 본 발명은 전하들을 저장하는 플로팅 게이트와 프로그래밍 동안 플로팅 게이트에 전하를 저장하는 전하 펌프를 구비한 비-휘발성 메모리 디바이스에 적용될 수 있는데, 도 1에 도시된 메모리 셀(10)의 유형으로 제한되지는 않는다. 이에 더하여, 본 발명은 또한 전하들을 저장하는 트래핑 전하층과 프로그래밍 동안 트래핑 전하층에 전하들을 저장하는 전하 펌프를 구비한 메모리 디바이스에 적용될 수 있다.

Claims (23)

  1. 프로그래밍 전류(programming current)를 제공하는 전하 펌프(charge pump);
    상기 프로그래밍 전류에 의해 프로그램되는 각 메모리 셀로 구성된 비-휘발성 메모리 셀들의 어레이―상기 비-휘발성 메모리 셀들의 어레이는 복수의 유닛으로 분할되며, 각 유닛은 복수의 메모리 셀을 포함함―;
    비-휘발성 메모리 셀들의 각 유닛과 연관된 표시자 메모리 셀(indicator memory cell); 및
    프로그래밍 전류는 각 유닛의 상기 메모리 셀들 중 소정 퍼센트 이하의 메모리 셀이 프로그램되어야 할 때, 상기 프로그래밍 전류를 사용하여 각 유닛의 상기 메모리 셀들을 프로그램하고, 각 유닛의 상기 메모리 셀들 중 소정 퍼센트보다 많은 메모리 셀이 프로그램되어야 할 때, 상기 프로그래밍 전류를 사용하여 각 유닛과 연관된 상기 표시자 메모리 셀과 각 유닛의 메모리 셀들의 반전(inverse)을 프로그램하는 프로그래밍 회로;를 포함하는 비-휘발성 메모리 디바이스.
  2. 청구항 1에 있어서,
    그 하나가 한 유닛의 각 비-휘발성 메모리 셀에 연결되어, 상기 비-휘발성 메모리 셀들의 상태를 감지하는 복수의 감지 증폭기(sense amplifier);
    상기 표시자 메모리 셀에 연결되어, 상기 감지된 유닛과 연관된 상기 표시자 메모리 셀의 상태를 감지하는 표시자 감지 증폭기(indicator sense amplifier);
    상기 표시자 감지 증폭기가 상기 표시자 메모리 셀의 상태가 한 상태인 것을 감지한 경우, 상기 복수의 감지 증폭기의 상기 상태를 출력하고, 상기 표시자 감지 증폭기가 상기 표시자 메모리 셀이 다른 상태인 것을 감지한 경우, 상기 복수의 감지 증폭기의 반전 상태를 출력하는 로직 회로를 더 포함하는 메모리 디바이스.
  3. 청구항 1에 있어서,
    상기 비-휘발성 메모리 셀들의 상기 어레이는 복수의 행과 열로 배열되어, 행 방향(row direction)으로 상기 비-휘발성 메모리 셀들의 어레이에 인접하게 배치된 표시자 메모리 셀들의 어레이를 가지며, 각 표시자 메모리 셀은 동일한 행에 있는 복수의 메모리 셀과 연관되는 메모리 디바이스.
  4. 청구항 1에 있어서,
    상기 비-휘발성 메모리 셀들의 상기 어레이는 복수의 행과 열로 배열되어, 열 방향(column direction)으로 상기 비-휘발성 메모리 셀들의 어레이에 인접하게 배치된 표시자 메모리 셀들의 어레이를 가지며, 각 표시자 메모리 셀은 동일한 열에 있는 복수의 메모리 셀과 연관되는 메모리 디바이스.
  5. 청구항 1에 있어서, 상기 메모리 셀들의 각각은,
    평면(planar surface)을 가지는 제1 도전형의 반도체 기판(conductivity type);
    상기 평면 상에 마련되는 제2 도전형의 제1 영역;
    상기 제1 영역으로부터 이격되어, 상기 평면 상에 마련되는 상기 제2 도전형의 제2 영역―상기 제1 영역과 상기 제2 영역 사이에 채널 영역이 마련됨―;
    상기 채널 영역의 제1 부분으로부터 이격되어 마련되는 플로팅 게이트;
    상기 채널 영역의 제2 부분으로부터 이격되고, 상기 플로팅 게이트의 일 측에 인접하되 그로부터 절연되는 워드 라인;
    상기 제2 영역으로부터 이격되고, 상기 플로팅 게이트의 다른 측에 인접하되 그로부터 절연되는 소거 게이트; 및
    상기 플로팅 게이트로부터 이격되어 상기 플로팅 게이트의 위이면서, 상기 워드 라인과 상기 소거 게이트의 사이에 마련되되, 그들로부터 절연되는 커플링 게이트를 포함하는 메모리 디바이스.
  6. 청구항 1에 있어서,
    상기 소정 퍼센트는 50퍼센트인 메모리 디바이스.
  7. 청구항 1에 있어서,
    디지털 '0' 비트 검출기를 더 포함하는 메모리 디바이스.
  8. 청구항 7에 있어서,
    상기 디지털 '0' 비트 검출기는 클록 펄스 생성기를 포함하고, 클록에 따른 순차적(sequentially)으로 행해진 디지털 '0' 비트 검출에 기초하는 메모리 디바이스.
  9. 청구항 1에 있어서,
    아날로그 '0' 비트 검출기를 더 포함하는 메모리 디바이스.
  10. 청구항 9에 있어서,
    상기 아날로그 '0' 비트 검출기는 전류 바이어스의 유닛에 기초하여 검출하는 메모리 디바이스.
  11. 청구항 10에 있어서,
    상기 전류 바이어스는 마이크로암페어 단위인 메모리 디바이스.
  12. 청구항 1에 있어서,
    상기 메모리 어레이는 복수의 메모리 서브어레이(subarray)를 더 포함하는 메모리 디바이스.
  13. 청구항 12에 있어서,
    프로그래밍을 위한 메모리 셀들을 갖지 않는 각 서브어레이는, 디스에이블된(disabled) 프로그래밍 바이어스들을 갖는 메모리 디바이스.
  14. 비-휘발성 메모리 디바이스를 프로그램하는 방법으로서,
    상기 메모리 디바이스는, 각각이 복수의 메모리 셀을 가지는 복수의 메모리 유닛을 가지고, 각 메모리 유닛은 연관된 표시자 메모리 셀을 가지며, 한 유닛의 복수의 메모리 셀 및 상기 연관된 표시자 메모리 셀은 전하 펌프로부터의 프로그래밍 전류에 의해 프로그램되며,
    상기 방법은
    유닛의 메모리 셀들 중 소정 퍼센트 이하의 메모리 셀이 상기 프로그래밍 전류에 의해 프로그램되어야 하는지를 판단하는 단계;
    만약 그렇다면, 상기 메모리 셀들을 상기 프로그래밍 전류로 프로그램하는 단계; 및
    만약 그렇지 않다면, 상기 메모리 셀들의 반전 및 상기 연관된 표시자 메모리 셀을 상기 프로그래밍 전류로 프로그램하는 단계를 포함하는 단계를 포함하는 방법.
  15. 청구항 14에 있어서,
    동일 유닛에 속하는 각 메모리 셀의 상태를 감지하는 단계;
    동일 유닛과 연관된 상기 표시자 메모리 셀의 상태를 감지하는 단계;
    상기 연관된 표시자 메모리 셀이 한 상태인 경우, 동일 유닛에 속하는 각 메모리 셀의 상태를 출력하는 단계; 및
    상기 연관된 표시자 메모리 셀이 다른 상태인 경우, 동일 유닛에 속하는 각 메모리 셀의 반전 상태를 출력하는 단계를 더 포함하는 방법.
  16. 청구항 14에 있어서,
    상기 소정 퍼센트는 대략 50 퍼센트인 방법.
  17. 청구항 14에 있어서,
    표시자 메모리 셀은 복수의 기본 메모리 셀(basic memory cells)을 구비하는 방법.
  18. 청구항 14에 있어서,
    표시자 메모리는 행 디코더(row decoder)에 인접하여 위치한 방법.
  19. 비-휘발성 메모리 디바이스를 프로그램하는 방법으로서,
    상기 메모리 디바이스는, 각각이 복수의 메모리 셀을 가지는 복수의 메모리 유닛을 가지고, 한 유닛의 상기 복수의 메모리 셀은 고전압 전하 펌프로부터의 프로그래밍 전류에 의해 프로그램되며,
    상기 방법은
    유닛의 첫 번째 메모리 셀에서부터 마지막 메모리 셀까지 순차적으로, 상기 고전압 전하 펌프에 의해 저장 상태(storage state)를 소거 상태(erase state)에서 프로그램 상태(program state)로 변경시켜야 하는 상기 유닛의 상기 메모리 셀들의 개수가 미리 결정된 수에 도달하는지를 판단하는 단계;
    도달한 것으로 판단되면, 상기 판단된 개수의 메모리 셀을 상기 고전압 전하 펌프에 의해 프로그램하는 단계;
    도달하지 않은 것으로 판단되면, 상기 유닛의 모든 메모리 셀에 대해 프로그램되어야 하는지에 대한 여부를 판단할 때까지, 상기 유닛의 상기 메모리 셀의 남은 개수에 대하여 프로그램되어야 하는지에 대한 판단을 계속하는 단계를 포함하는 방법.
  20. 청구항 19에 있어서,
    상기 판단하는 단계는 비트 단위(bit basis)에 기초하는 방법.
  21. 청구항 19에 있어서,
    상기 판단하는 단계는 워드 단위에 기초하는 방법.
  22. 청구항 19에 있어서,
    각 메모리 유닛은 연관된 표시자 메모리 셀을 더 포함하는 방법.
  23. 청구항 19에 있어서,
    상기 프로그래밍을 하는 것으로 판단된 메모리 셀은 데이터인 비트(datain bot) '0'에 상응하는 방법.
KR1020147018843A 2011-12-08 2012-11-13 비-휘발성 메모리 디바이스와 그 디바이스를 프로그램하는 방법 KR20140102733A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/315,213 US8804429B2 (en) 2011-12-08 2011-12-08 Non-volatile memory device and a method of programming such device
US13/315,213 2011-12-08
PCT/US2012/064881 WO2013085676A1 (en) 2011-12-08 2012-11-13 A non-volatile memory device and a method of programming such device

Publications (1)

Publication Number Publication Date
KR20140102733A true KR20140102733A (ko) 2014-08-22

Family

ID=48571871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018843A KR20140102733A (ko) 2011-12-08 2012-11-13 비-휘발성 메모리 디바이스와 그 디바이스를 프로그램하는 방법

Country Status (7)

Country Link
US (2) US8804429B2 (ko)
EP (1) EP2788987A4 (ko)
JP (1) JP2015500546A (ko)
KR (1) KR20140102733A (ko)
CN (1) CN104081462B (ko)
TW (1) TWI543156B (ko)
WO (1) WO2013085676A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286982B2 (en) * 2014-08-08 2016-03-15 Silicon Storage Technology, Inc. Flash memory system with EEPROM functionality
US9922715B2 (en) * 2014-10-03 2018-03-20 Silicon Storage Technology, Inc. Non-volatile split gate memory device and a method of operating same
US10283207B2 (en) * 2016-06-03 2019-05-07 Samsung Electronics Co., Ltd. Non-volatile memory devices comprising high voltage generation circuits and operating methods thereof
KR102546306B1 (ko) * 2016-06-03 2023-06-23 삼성전자주식회사 고전압 발생 회로를 포함하는 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 동작 방법
US10861564B2 (en) 2018-10-17 2020-12-08 Winbond Electronics Corp. Memory circuit and data bit status detector thereof
US10937495B2 (en) 2019-07-02 2021-03-02 Winbond Electronics Corp. Resistive memory apparatus and method for writing data thereof
US10714157B1 (en) 2019-08-27 2020-07-14 Winbond Electronics Corp. Non-volatile memory and reset method thereof
CN112530494B (zh) 2019-09-17 2024-06-25 硅存储技术股份有限公司 具有存储的索引信息的非易失性存储器设备
CN111785308B (zh) * 2020-06-10 2021-09-10 芯天下技术股份有限公司 减少非型闪存编程泵面积的方法、系统、储存介质和终端
CN114203242A (zh) * 2021-12-02 2022-03-18 普冉半导体(上海)股份有限公司 Nor型闪存编程电路

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6271096A (ja) * 1985-09-25 1987-04-01 Toshiba Corp 半導体集積回路装置
US5280447A (en) * 1992-06-19 1994-01-18 Intel Corporation Floating gate nonvolatile memory with configurable erasure blocks
JPH07334991A (ja) * 1994-06-07 1995-12-22 Sony Corp 半導体不揮発性記憶装置
JPH08321193A (ja) * 1995-05-23 1996-12-03 Sony Corp 半導体不揮発性記憶装置
US6292868B1 (en) * 1996-10-15 2001-09-18 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
US5867425A (en) * 1997-04-11 1999-02-02 Wong; Ting-Wah Nonvolatile memory capable of using substrate hot electron injection
JP3156636B2 (ja) * 1997-05-30 2001-04-16 日本電気株式会社 不揮発性半導体記憶装置
US20020136050A1 (en) * 2001-03-23 2002-09-26 Henry Fang Method of programming a memory device
US6438032B1 (en) 2001-03-27 2002-08-20 Micron Telecommunications, Inc. Non-volatile memory with peak current noise reduction
JP2002366419A (ja) 2001-06-07 2002-12-20 Mitsubishi Electric Corp データ処理装置およびデータ処理方法
JP2004046974A (ja) * 2002-07-12 2004-02-12 Renesas Technology Corp 半導体記憶装置
KR100474203B1 (ko) * 2002-07-18 2005-03-10 주식회사 하이닉스반도체 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법
KR100555506B1 (ko) * 2003-07-11 2006-03-03 삼성전자주식회사 프로그램된 메모리 셀들과 프로그램 및 소거 가능한메모리 셀들을 포함하는 메모리 장치
JP2005116132A (ja) * 2003-10-10 2005-04-28 Toshiba Corp 不揮発性半導体記憶装置
JP4398750B2 (ja) * 2004-02-17 2010-01-13 株式会社東芝 Nand型フラッシュメモリ
ITMI20050780A1 (it) 2005-04-29 2006-10-30 St Microelectronics Srl Metodo di memorizzazione di un array di celle di memoria non-volatile con codice di correzione di errore e relativo dispositivo
US7443732B2 (en) * 2005-09-20 2008-10-28 Spansion Llc High performance flash memory device capable of high density data storage
JP4804479B2 (ja) * 2005-12-13 2011-11-02 スパンション エルエルシー 半導体装置およびその制御方法
US7555659B2 (en) * 2006-02-28 2009-06-30 Mosaid Technologies Incorporated Low power memory architecture
US7577028B2 (en) * 2007-03-23 2009-08-18 Intel Corporation Memory storage technique for a bi-directionally programmable memory device
US7729165B2 (en) 2007-03-29 2010-06-01 Flashsilicon, Incorporation Self-adaptive and self-calibrated multiple-level non-volatile memories
US7577036B2 (en) 2007-05-02 2009-08-18 Micron Technology, Inc. Non-volatile multilevel memory cells with data read of reference cells
US20090039410A1 (en) 2007-08-06 2009-02-12 Xian Liu Split Gate Non-Volatile Flash Memory Cell Having A Floating Gate, Control Gate, Select Gate And An Erase Gate With An Overhang Over The Floating Gate, Array And Method Of Manufacturing
US7800159B2 (en) 2007-10-24 2010-09-21 Silicon Storage Technology, Inc. Array of contactless non-volatile memory cells
JP2010129154A (ja) * 2008-11-28 2010-06-10 Samsung Electronics Co Ltd 不揮発性半導体記憶装置
US8040730B2 (en) * 2008-11-28 2011-10-18 Samsung Electronics Co., Ltd. Nonvolatile memory device
KR20100129179A (ko) 2009-05-29 2010-12-08 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 이의 프로그램 및 독출 방법
US20100302856A1 (en) 2009-05-29 2010-12-02 Sung Hoon Ahn Nonvolatile memory device and method of programming and reading the same

Also Published As

Publication number Publication date
TWI543156B (zh) 2016-07-21
JP2015500546A (ja) 2015-01-05
US20130148428A1 (en) 2013-06-13
CN104081462A (zh) 2014-10-01
TW201337922A (zh) 2013-09-16
WO2013085676A1 (en) 2013-06-13
US20150003166A1 (en) 2015-01-01
US8804429B2 (en) 2014-08-12
EP2788987A4 (en) 2015-07-29
CN104081462B (zh) 2017-06-06
EP2788987A1 (en) 2014-10-15
US9646700B2 (en) 2017-05-09

Similar Documents

Publication Publication Date Title
KR20140102733A (ko) 비-휘발성 메모리 디바이스와 그 디바이스를 프로그램하는 방법
JP5270061B2 (ja) プログラマブル消去不要メモリの製造方法
JP5133682B2 (ja) 不揮発性メモリおよび改善された部分的ページプログラミング機能を備えた制御処理
JP5361182B2 (ja) 半導体記憶装置
US20170090873A1 (en) Secure true random number generation using 1.5-t transistor flash memory
CN204991153U (zh) 存储器单元和非易失性存储器
CN113284539B (zh) 循环期间的编程电压调制
JP5280660B2 (ja) 低電圧、低キャパシタンスのフラッシュメモリアレイ
JP5000845B2 (ja) プログラマブル消去不要メモリ
US9390799B2 (en) Non-volatile memory cell devices and methods, having a storage cell with two sidewall bit cells
US20220101926A1 (en) Non-volatile memory with switchable erase methods
US20100074007A1 (en) Flash mirror bit architecture using single program and erase entity as logical cell
JP5015420B2 (ja) プログラマブル消去不要メモリに対するプログラミング方法
KR101227368B1 (ko) 낸드 플래시 메모리 소자의 프로그래밍 방법 및 데이터읽기 방법.
US7881105B2 (en) Quad+bit storage in trap based flash design using single program and erase entity as logical cell
CN105474324A (zh) 半导体装置
JP2001236791A (ja) 不揮発性半導体記憶装置、該不揮発性半導体記憶装置からのデータの読み出し方法及び、該不揮発性半導体記憶装置へのデータの書き込み方法
US20100074004A1 (en) High vt state used as erase condition in trap based nor flash cell design
TWI451418B (zh) 程式化一多階記憶體的裝置與方法
JP5341858B2 (ja) フラッシュepromの閾値電圧降下方法及びその構造
WO2019135866A1 (en) System and method for storing and retrieving multibit data in non-volatile memory using current multipliers
TW201044393A (en) A NAND string based NAND/NOR flash memory cell, array, and memory device having parallel bit lines and source lines, having a floating gate select gating transistor, and circuits and methods for operating same
US20100074008A1 (en) Sector configure registers for a flash device generating multiple virtual ground decoding schemes
JP5755909B2 (ja) 半導体不揮発性メモリ及びデータ書き込み方法
JP4004527B2 (ja) 多状態eepromの読み書き回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150817

Effective date: 20151123