KR20110104294A - 불휘발성 메모리 장치 및 그것의 프로그램 방법 - Google Patents

불휘발성 메모리 장치 및 그것의 프로그램 방법 Download PDF

Info

Publication number
KR20110104294A
KR20110104294A KR1020100023362A KR20100023362A KR20110104294A KR 20110104294 A KR20110104294 A KR 20110104294A KR 1020100023362 A KR1020100023362 A KR 1020100023362A KR 20100023362 A KR20100023362 A KR 20100023362A KR 20110104294 A KR20110104294 A KR 20110104294A
Authority
KR
South Korea
Prior art keywords
data
scan
address
input
stored
Prior art date
Application number
KR1020100023362A
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 KR1020100023362A priority Critical patent/KR20110104294A/ko
Priority to US13/048,120 priority patent/US8432736B2/en
Publication of KR20110104294A publication Critical patent/KR20110104294A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0416Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a single floating gate transistor and no select transistor, e.g. UV EPROM
    • 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
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • 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/5642Multilevel memory with buffers, latches, registers at input or output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Abstract

본 발명은 불휘발성 메모리 장치 및 그것의 프로그램 방법에 관한 것이다. 본 발명의 실시 예에 따른 불휘발성 메모리 장치는 스캔 동작을 선택적으로 수행하기 위하여 스캔 여부를 저장하는 레지스터를 포함한다. 프로그램 동작 시에 레지스터의 값에 따라 실제 프로그램될 데이터를 검색하는 데이터 스캔 동작이 선택적으로 수행될 수 있다. 따라서, 불필요한 스캔 동작을 수행하지 않기 때문에 프로그램 속도가 향상될 수 있다.

Description

불휘발성 메모리 장치 및 그것의 프로그램 방법{NONVOLATILE MEMORY DEVICE AND PROGRAM METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 더욱 상세하게는 프로그램 시간을 단축할 수 있는 불휘발성 메모리 장치 및 그것의 프로그램 방법에 관한 것이다.
반도체 메모리 장치는 일반적으로 휘발성 메모리와 불휘발성 메모리 장치로 분류된다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리 장치는 전원이 차단되더라도 저장된 데이터를 보존할 수 있다. 불휘발성 메모리 장치들은 다양한 형태의 메모리 셀 트랜지스터를 포함한다. 불휘발성 메모리 장치에는 메모리 셀 트랜지스터의 구조에 따라 플래시 메모리(Flash Memory), 강유전체 램(Ferroelectric RAM: FRAM), 마그네틱 램(Magnetic RAM: MRAM), 상 변화 램(Phase change RAM: PRAM)등이 포함된다.
상 변화 램(PRAM)은 온도 변화에 따른 상 변화(phase change), 즉 저항 변화를 이용한 불휘발성 메모리 장치이다. 상 변화 램(PRAM)은 기억 소자(memory element)와 선택 소자(select element)로 구성된다. 상 변화 램(PRAM)은 그 제조 공정이 비교적 간단하고, 낮은 비용으로 대용량의 메모리 장치를 구현할 수 있다.
플래시 메모리 장치는 셀 어레이 구조에 따라 크게 노어(NOR) 플래시 메모리 장치와 낸드(NAND) 플래시 메모리 장치로 구분된다. 노어 플래시 메모리 장치는 채널 핫 일렉트론(channel hot electron) 방식을 사용하여 데이터를 저장하고, F-N 터널링(Fowler-Nordheim tunneling) 방식을 사용하여 데이터를 소거한다. 반면, 낸드 플래시 메모리 장치는 F-N 터널링 방식을 사용하여 데이터를 저장하고, 소거한다.
노어 플래시 메모리 장치는 메모리 셀 트렌지스터들이 각각 독립적으로 비트 라인(bit line)과 워드 라인(word line)에 연결되는 구조를 갖는다. 따라서, 노어 플래시 메모리 장치는 우수한 랜덤 액세스(random access) 시간 특성을 갖는다. 반면, 낸드 플래시 메모리 장치는 복수의 메모리 셀 트렌지스터들이 직렬로 연결되는 구조를 갖는다. 이러한 구조를 셀 스트링(string) 구조라고 하며, 셀 스트링당 한 개의 비트 라인 컨택(contact)을 필요로 한다. 따라서, 낸드 플래시 메모리 장치는 집적도면에서 우수한 특성을 갖는다.
본 발명의 목적은 프로그램 시간을 단축시킬 수 있는 불휘발성 메모리 장치 및 그것의 프로그램 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 상기 복수의 메모리 셀들에 저장될 데이터를 임시 저장하는 데이터 입출력 버퍼; 상기 데이터 입출력 버퍼에 임시 저장된 데이터를 스캔하는 데이터 스캐너; 그리고 상기 데이터가 저장될 메모리 셀의 어드레스 정보를 판독하고, 상기 판독 결과에 따라 데이터 스캔 동작이 선택적으로 수행되도록 제어하는 제어 로직을 포함한다.
실시 예에 있어서, 상기 데이터 스캐너는 데이터 스캔 동작의 수행 여부를 저장하기 위한 저장부를 포함하되, 상기 저장부는 각각의 스캔 단위마다 할당된다.
실시 예에 있어서, 상기 제어 로직은 어드레스 정보를 판독하기 위한 어드레스 감지기를 포함하되, 상기 어드레스 감지기는 상기 스캔 단위의 오프셋 어드레스와 대응되는 어드레스 정보가 입력되는지 판단하고, 상기 제어 로직은 상기 어드레스 감지기의 판단 결과에 따라 해당되는 상기 저장부에 데이터를 저장한다.
실시 예에 있어서, 상기 저장부에 저장된 데이터에 따라 상기 데이터 스캔 동작이 선택적으로 수행된다.
실시 예에 있어서, 상기 스캔 단위는 상기 데이터 입출력 버퍼에 임시 저장된 데이터를 그룹화하여 설정되고, 상기 데이터 스캔 동작은 상기 스캔 단위로 수행된다.
실시 예에 있어서, 상기 저장부는 레지스터인 것을 특징으로 한다.
실시 예에 있어서, 상기 데이터 스캐너는 상기 데이터 입출력 버퍼에 임시 저장된 데이터 값에 따라 프로그램 상태를 구별하고, 상기 구별된 프로그램 상태를 바탕으로 동시에 프로그램될 데이터를 정렬한다.
실시 예에 있어서, 상기 데이터 스캐너는 상기 데이터 입출력 버퍼에 임시 저장된 데이터 중에서 실제 프로그램될 데이터 비트들을 검색한다.
실시 예에 있어서, 상기 데이터 스캐너는 스캔된 결과를 저장하기 위한 래치 회로를 포함한다.
실시 예에 있어서, 상기 래치 회로에 저장된 데이터를 해당 메모리 셀에 동시 프로그램 비트 수만큼 동시에 프로그램하는 쓰기 드라이버를 더 포함한다.
실시 예에 있어서, 상기 데이터 입출력 버퍼는 N바이트(N은 자연수) 단위로 데이터를 입출력한다.
실시 예에 있어서, 상기 메모리 셀 어레이는 복수의 비트 라인들을 포함하고, 상기 각각의 비트 라인에는 복수의 메모리 셀들이 병렬로 배열된다.
실시 예에 있어서, 상기 메모리 셀의 기억 소자는 가변 저항 물질을 포함한다.
본 발명의 다른 실시 예에 따른 불휘발성 메모리 장치는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 상기 메모리 셀에 저장될 데이터를 임시 저장하는 데이터 입출력 버퍼; 상기 데이터 입출력 버퍼에 임시 저장된 데이터를 데이터 값에 따라 동시에 프로그램될 데이터별로 정렬하는 데이터 스캐너; 그리고 상기 데이터 스캐너의 스캔 동작을 제어하는 제어 로직을 포함하되, 상기 데이터 스캐너는 데이터 스캔 동작의 수행 여부를 저장하기 위한 저장부를 스캔 단위마다 할당하여 포함하고, 상기 제어 로직은 상기 데이터가 저장될 메모리 셀의 어드레스 정보에 따라 상기 저장부에 스캔 동작의 수행 여부를 저장하고, 상기 저장부에 저장된 값에 따라 상기 스캔 동작을 선택적으로 수행한다.
실시 예에 있어서, 상기 데이터 스캐너는 상기 데이터 입출력 버퍼에 임시 저장된 데이터 중에서 실제 프로그램될 데이터 비트들을 검색한다.
본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 장치의 프로그램 방법은, 외부 장치로부터 데이터와 어드레스가 입력되는 단계; 상기 입력된 데이터가 데이터 입출력 버퍼에 임시 저장되는 단계; 상기 입력되는 어드레스를 판독하는 단계; 상기 판독된 어드레스에 따라 상기 임시 저장된 데이터의 스캔 여부를 저장하는 단계; 그리고 상기 저장된 스캔 여부에 따라 데이터 스캔 동작이 선택적으로 수행되는 단계를 포함한다.
실시 예에 있어서, 상기 어드레스 판독 단계는 상기 임시 저장된 데이터를 그룹화하여 설정되는 스캔 단위로 수행된다.
실시 예에 있어서, 상기 스캔 여부를 저장하는 단계는 상기 스캔 단위의 오프셋 어드레스와 대응되는 어드레스가 입력되는 경우 상기 스캔 단위마다 할당된 저장부에 논리 하이 값이 저장된다.
실시 예에 있어서, 상기 스캔 단위의 오프셋 어드레스와 대응되는 어드레스가 적어도 하나 입력되면 상기 저장부는 논리 하이 값이 저장된다.
실시 예에 있어서, 상기 스캔 여부를 저장하는 단계와 상기 데이터 스캔 동작이 수행되는 단계는 프로그램 동작이 수행되기 전에 완료된다.
본 발명에 따른 불휘발성 메모리 장치는 프로그램 동작 시에 프로그램되는 데이터만을 선택하여 프로그램을 수행하므로 프로그램 시간이 단축된다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 예시적으로 보여주는 블럭도이다.
도 2는 플래시 메모리 장치의 메모리 셀 어레이의 구조를 예시적으로 보여주는 회로도이다.
도 3은 본 발명의 실시 예에 따른 메모리 셀의 구조를 예시적으로 보여주는 단면도이다.
도 4a 내지 도 4b는 본 발명의 다른 실시 예에 따른 메모리 셀의 구조를 예시적으로 보여주는 회로도이다.
도 5는 본 발명의 제 1 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 도면이다.
도 6은 본 발명의 제 2 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 제 3 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 사용자 장치를 예시적으로 보여주는 블럭도이다.
도 10은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 또 다른 사용자 장치를 예시적으로 보여주는 블럭도이다.
도 11은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 또 다른 사용자 장치를 예시적으로 보여주는 블럭도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 도면들과 명세서 전체에 걸쳐서 동일한 참조 번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다.
본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 예시적으로 보여주는 블럭도이다. 본 발명의 실시 예에 따른 불휘발성 메모리 장치는 노어 플래시 메모리 장치로 구성될 것이다. 하지만, 불휘발성 메모리 장치가 노어 플래시 메모리 장치에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 불휘발성 메모리 장치는 낸드 플래시 메모리 장치, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등과 같은 불휘발성 메모리 장치들 중 하나로 구성될 수 있다.
도 1을 참조하면, 플래시 메모리 장치(100)는 메모리 셀 어레이(memory cell array, 110), 어드레스 디코더(address decoder, 120), 열 선택 회로(column selection circuit, 130), 쓰기 드라이버(write driver, 140), 감지 증폭기(sense amplifier, 150), 데이터 입출력 버퍼(data input/output buffer, 160), 제어 로직(control logic, 170), 그리고 데이터 스캐너(180)를 포함한다.
메모리 셀 어레이(110)는 데이터를 저장하기 위한 메모리 셀들(memory cells)을 포함한다. 복수의 메모리 셀들은 블럭(block)을 구성한다. 복수의 블럭들은 뱅크(bank)를 구성한다. 플래시 메모리 장치는 구조적인 특징으로 인해 워드(word) 단위(또는, 바이트(byte) 단위)로 쓰기 동작을 수행하고, 블럭 단위로 소거(erase) 동작을 수행한다.
메모리 셀 어레이(110)의 메모리 셀들 각각은 싱글 비트 데이터(single bit data) 또는, 멀티 비트 데이터(multi bit data)를 저장할 수 있다. 싱글 비트 데이터를 저장하는 메모리 셀은 싱글 레벨 셀(single level cell: SLC)이라 하고, 두 비트 이상의 멀티 비트 데이터를 저장하는 메모리 셀은 멀티 레벨 셀(multi level cell: MLC)이라 한다. 싱글 레벨 셀(SLC)은 문턱 전압에 따라 소거 상태와 하나의 프로그램 상태를 갖는다. 멀티 레벨 셀(MLC)은 문턱 전압에 따라 소거 상태와 복수의 프로그램 상태들을 갖는다. 두 비트(2bit)의 데이터를 저장하는 멀티 레벨 셀(MLC)을 예로 들면, 멀티 레벨 셀(MLC)은 소거 상태('11' 상태)와 복수의 프로그램 상태들('10', '01', '00' 상태들)을 가질 수 있다.
어드레스 디코더(120)는 워드 라인(WL)을 통해 메모리 셀 어레이(110)와 연결된다. 어드레스 디코더(120)는 외부 어드레스(ADDR)를 디코딩하고, 워드 라인들 중 적어도 하나를 선택한다. 어드레스 디코더(120)는 선택된 워드 라인으로 바이어스 전압을 제공한다. 또한, 어드레스 디코더(120)는 비트 라인(BL)을 선택하기 위한 선택 신호(Yi)를 발생한다. 선택 신호(Yi)는 열 선택 회로(130)에 제공된다.
열 선택 회로(130)는 비트 라인(BL)을 통해 메모리 셀 어레이(110)와 연결된다. 열 선택 회로(130)는 어드레스 디코더(120)로부터 제공되는 선택 신호(Yi)에 응답하여 비트 라인을 선택한다. 열 선택 회로(130)는 선택 신호(Yi)에 응답하여 비트 라인들을 소정 단위(예를 들면, x8, x16 등)로 선택한다. 열 선택 회로(130)는 선택 신호(Yi)에 응답하여, 쓰기 동작 시에는 비트 라인(BL)과 데이터 라인(DL)을 연결하고, 읽기 동작 시에는 비트 라인(BL)과 감지 라인(SL)을 연결한다.
쓰기 드라이버(140)는 프로그램 동작 시에 제어 로직(170)의 제어에 따라 선택된 비트 라인에 프로그램 전압을 인가한다. 즉, 쓰기 드라이버(140)는 메모리 셀 어레이(110) 내의 선택된 메모리 셀을 프로그램한다. 또한, 쓰기 드라이버(140)는 소거 동작 시에 제어 로직(170)의 제어에 따라 선택된 블럭을 소거한다.
감지 증폭기(150)는 읽기 동작 시에 감지 라인(SL)의 전압과 기준 전압의 차이를 감지하여, 선택된 메모리 셀에 저장된 데이터를 읽어낸다. 여기에서, 기준 전압은 기준 전압 발생회로(미도시)로부터 제공된다. 감지 증폭기(150)는 제어 로직(170)의 제어에 따라 선택된 메모리 셀에 저장된 데이터를 읽어낸다.
데이터 입출력 버퍼(160)는 입출력 단자로부터 데이터를 입력받거나, 입출력 단자로 데이터를 출력한다. 즉, 데이터 입출력 버퍼(160)는 제어 로직(170)의 제어에 따라 쓰기 드라이버(140)로 데이터를 제공하거나, 감지 증폭기(150)에서 읽은 데이터를 외부 장치로 출력한다. 데이터 입출력 버퍼(160)는 프로그램 동작 시에 프로그램될 데이터를 쓰기 버퍼(165)에 임시 저장한다. 여기에서, 쓰기 버퍼(165)는 데이터 입출력 버퍼(160)에 포함된다. 쓰기 버퍼(165)에 저장된 데이터는 쓰기 드라이버(140)를 통하여 해당 메모리 셀에 프로그램된다. 프로그램될 데이터는 쓰기 버퍼(165)에 순차적으로 또는 선택적으로 저장될 수 있다.
제어 로직(170)은 외부 장치(예를 들면, 호스트, 메모리 컨트롤러, 메모리 인터페이스)의 커맨드(CMD) 그리고 제어 신호(CTRL)에 응답하여 플래시 메모리 장치(100)의 제반 동작을 제어한다. 예를 들면, 제어 로직(170)은 플래시 메모리 장치(100)의 읽기, 쓰기(또는 프로그램), 소거(또는 이레이즈) 동작을 제어한다. 이러한 동작을 위하여, 제어 로직(170)은 제어 신호를 발생하고, 전압 발생기(171)를 제어하여 바이어스(bias) 전압을 발생한다.
데이터 스캐너(180)는 제어 로직(170)의 제어에 따라 데이터 입출력 버퍼(160)에 임시 저장된 데이터를 스캔(scan)한다. 스캔 결과에 따라 실제 프로그램될 데이터 비트들이 검색된다. 데이터 스캐너(180)는 프로그램될 데이터를 스캔 단위로 스캔한다. 데이터 스캐너(180)는 스캔된 데이터를 데이터 패턴별로 정렬(sorting)한다. 여기에서, 데이터 패턴은 메모리 셀의 상태일 것이다. 메모리 셀의 상태는 메모리 셀의 문턱 전압 분포에 따라 구별된다. 예를 들면, 싱글 레벨 셀(SLC)의 경우, 소거 상태(데이터 '1')와 하나의 프로그램 상태(데이터 '0')일 것이다. 멀티 레벨 셀(MLC)의 경우, 소거 상태(데이터 '11')와 복수의 프로그램 상태들(데이터 '10', '01', '00')일 것이다.
정렬된 데이터는 데이터 패턴별로 소정의 개수만큼 동시에 프로그램된다. 본 발명의 실시 예에 따르면, 데이터 스캐너(180)의 스캔 동작은 스캔 단위마다 할당된 스캔 레지스터의 값에 따라 수행된다. 예를 들면, 스캔 레지스터의 값이 셋(set) 된 경우, 해당 스캔 단위의 데이터에 대하여 스캔 동작이 수행된다. 반면, 스캔 레지스터의 값이 리셋(reset) 된 경우, 해당 스캔 단위의 데이터에 대하여 스캔 동작이 수행되지 않는다. 스캔 레지스터의 값은 데이터와 함께 제공되는 어드레스에 따라 결정될 것이다. 이러한 데이터 스캐너(180)의 동작은 후술되는 도 7을 통하여 상세히 설명될 것이다.
도 2는 플래시 메모리 장치의 메모리 셀 어레이의 구조를 예시적으로 보여주는 회로도이다.
도 2를 참조하면, 노어 플래시 메모리 장치의 메모리 셀 어레이의 구조가 도시되어 있다. 노어 플래시 메모리 장치의 메모리 셀 어레이는 복수의 블럭들로 구성된다. 도 2에는 예시적으로 하나의 블럭이 도시되어 있다.
블럭은 복수의 비트 라인들(BL0~BLm)에 연결된 복수의 메모리 셀들로 구성된다. 각각의 비트 라인에는 복수의 메모리 셀들이 병렬로 배열된 구조를 갖는다. 각각의 메모리 셀 들(M0~Mn)은 비트 라인(BL0)과 공통 소스 라인(CSL) 사이에 연결된다. 또한, 복수의 워드 라인들(WL0~WLn)은 각각의 메모리 셀들의 게이트에 연결된다. 따라서, 선택 메모리 셀은 선택 워드 라인과 선택 비트 라인에 따라 결정된다.
도 3은 본 발명의 실시 예에 따른 메모리 셀의 구조를 예시적으로 보여주는 단면도이다.
도 3을 참조하면, 메모리 셀은 전하 저장 층이 부유 게이트로 구성된다. 예를 들면, 활성 영역(active region) 상에 형성되는 터널 절연막(tunnel oxide), 데이터가 저장되는 플로팅 게이트(floating gate), 게이트 층간 절연막(inter-gate dielectric layer), 그리고 플로팅 게이트를 제어하는 컨트롤 게이트(control gate)가 차례로 적층될 수 있다. 플로팅 게이트는 절연막에 의해서 절연되어 있다. 따라서, 제어 게이트로부터의 전계에 따라 플로팅 게이트에 전하가 저장될 것이다. 또한, 웰(well)로부터의 전계에 따라 플로팅 게이트에 저장된 전하가 제거될 것이다.
도 4a 내지 도 4b는 본 발명의 다른 실시 예에 따른 메모리 셀의 구조를 예시적으로 보여주는 회로도이다.
도 4a 내지 도 4b를 참조하면, 가변 저항 메모리 장치의 메모리 셀이 도시되어 있다. 메모리 셀은 기억 소자(memory element)와 선택 소자(select element)로 구성된다. 기억 소자는 가변 저항 물질(GST)을 포함한다. 선택 소자는 트랜지스터(NT) 또는 다이오드(D)를 포함한다.
기억 소자는 가변 저항 물질(예를 들면, Ge-Sb-Te(GST))이 온도에 따라 저항 값이 변화되는 소자이다. 가변 저항 물질(GST)은 온도에 따라 2개의 안정된 상태, 즉 결정 상태(crystal state) 및 비정질 상태(amorphous state) 중 어느 하나를 갖는다. 가변 저항 물질(GST)은 비트 라인(BL)을 통해 공급되는 전류에 따라 결정 상태(crystal state) 또는 비정질 상태(amorphous state)로 변한다. 결정 상태는 데이터 "0"을 저장하며, 셋 상태라고 한다. 비정질 상태는 데이터 "1"을 저장하며, 리셋 상태라고 한다. 한편, 메모리 셀은 결정 상태와 비정질 상태의 중간에 복수의 중간 상태들(intermediate states)을 가질 수 있다. 따라서, 메모리 셀은 2비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC)로 구성될 수 있다.
선택 소자는 NMOS 트랜지스터(NT)로 구성된다. NMOS 트랜지스터(NT)의 게이트에는 워드 라인(WL)이 연결된다. 워드 라인(WL)에 소정의 전압이 인가되면, NMOS 트랜지스터(NT)는 턴 온(turn on) 된다. NMOS 트랜지스터(NT)가 턴 온(turn on) 되면, 기억 소자는 비트 라인(BL)을 통해 전류를 공급받는다. 도 4a에서는 기억 소자가 비트 라인(BL)과 선택 소자(NT) 사이에 연결되어 있다. 그러나 선택 소자(NT)가 비트 라인(BL)과 기억 소자 사이에 연결될 수도 있다.
도 4b를 참조하면, 선택 소자는 다이오드(D)로 구성된다. 다이오드(D)의 애노드(Anode)에는 기억 소자가 연결되며, 캐소드(Cathode)에는 워드 라인(WL)이 연결된다. 다이오드(D)의 애노드와 캐소드 사이의 전압 차가 다이오드(D)의 문턱 전압보다 높아지면, 다이오드(D)는 턴 온(turn on) 된다. 다이오드(D)가 턴 온 되면, 기억 소자는 비트 라인(BL)을 통해 전류를 공급받는다.
도 5는 본 발명의 제 1 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 도면이다.
도 5를 참조하면, 데이터 입출력 버퍼(160) 그리고 데이터 스캐너(180)가 도시되어 있다. 플래시 메모리 장치(도 1의 100)의 구조적인 특징 때문에 플래시 메모리 장치(100)는 데이터 오버라이트(data overwrite)를 수행할 수 없다. 따라서, 플래시 메모리 장치(100)는 데이터가 저장된 메모리 셀에 새로운 데이터를 쓰기 위해서 소거 동작을 우선 실행한다. 프로그램될 데이터가 '1'(SLC의 경우) 또는 '11'(2비트 MLC의 경우)이면, 플래시 메모리 장치(100)는 프로그램 동작을 수행하지 않아도 메모리 셀에 데이터 '1' 또는 '11'을 프로그램한 것과 동일해진다.
플래시 메모리 장치(100)는 프로그램 속도를 높이기 위하여 프로그램될 데이터를 스캔한다. 데이터 스캐너(180)는 제어 로직(도 1의 170 참조)의 제어에 따라 실제 프로그램 동작이 수행될 데이터를 스캔한다. 예를 들면, 싱글 레벨 셀(SLC) 또는 멀티 레벨 셀(MLC)의 경우 데이터 '0'을 스캔할 것이다. 다른 예로써, 프로그램 상태(state)를 기반으로 프로그램하는 상태 기반 메모리 장치의 경우, 프로그램 상태(예를 들면, 프로그램 상태 '10', '01', '00')를 스캔할 것이다. 쓰기 드라이버(도 1의 140 참조)는 스캔 결과에 따라 프로그램될 데이터를 동시 프로그램 비트 수만큼 선택적으로 프로그램한다. 플래시 메모리 장치는 프로그램 동작 시에 메모리 셀의 드레인에 4V 내지 6V의 고전압을 인가한다. 즉, 큰 프로그램 전류를 소모한다. 따라서, 플래시 메모리 장치는 프로그램 동작 시에 동시에 프로그램할 수 있는 메모리 셀의 수가 제한된다.
데이터 입출력 버퍼(도 1의 160 참조)는 프로그램될 데이터를 임시 저장하기 위한 쓰기 버퍼(165)를 포함한다. 쓰기 버퍼(165)는 제어 로직(170)의 제어에 따라 외부 장치로부터 입력된 프로그램될 데이터를 임시 저장한다. 또한, 쓰기 버퍼(165)는 제어 로직(170)의 제어에 따라 임시 저장된 데이터를 데이터 스캐너(180)로 공급한다.
쓰기 버퍼(165)는 버퍼 프로그램을 위하여 프로그램 동작 시에 쓰기 드라이버(140)로 로드(load)되는 데이터보다 큰 데이터를 저장한다. 쓰기 버퍼(165)는 복수의 스캔 단위들(scan unit)로 구성된다. 본 발명의 실시 예에 따르면, 쓰기 버퍼(165)는 512워드(512word)의 데이터를 저장하도록 구성될 것이다. 또한, 쓰기 버퍼(165)는 프로그램될 데이터를 1워드(1word) 단위로 쓰기 버퍼의 크기만큼 저장할 것이다. 스캔 단위는 4워드(4word)의 크기로 쓰기 버퍼 전체에 대하여 순차적으로 구성될 것이다.
데이터 스캐너(180)는 쓰기 버퍼(165)로부터 스캔 단위(예를 들면, 4워드)의 데이터를 제공받는다. 데이터 스캐너(180)는 제공된 데이터에 대하여 실제 프로그램 동작이 수행될 데이터를 스캔한다. 데이터 검색을 위하여 데이터 스캐너(180)는 비교기(181) 그리고 복수의 래치들(183)을 포함한다. 래치들(183)은 스캔 단위 각각에 대하여 구성된다. 비교기(181)는 제어 로직(170)의 제어에 따라 쓰기 버퍼(165)로부터 제공된 데이터의 비트들을 비교한다. 스캔 래치들(183)은 제어 로직(170)의 제어에 따라 스캔된 결과를 저장한다.
예를 들어, 메모리 셀이 싱글 비트 데이터를 저장하는 싱글 레벨 셀(SLC)인 경우, 데이터 스캐너(180)는 제공된 데이터에 대하여 실제 프로그램되는 데이터 비트를 스캔한다. 즉, '0'의 값을 갖는 데이터를 스캔한다. 다른 예로써, 메모리 셀이 두 비트 이상의 멀티 비트 데이터를 저장하는 멀티 레벨 셀(MLC)인 경우, 데이터 스캐너(180)는 제공된 데이터에 대하여 실제 프로그램되는 데이터 비트를 스캔한다. 즉, '0'의 값을 갖는 데이터를 스캔한다. 또 다른 예로써, 프로그램 상태(state)를 입력받고 입력된 프로그램 상태를 기반으로 프로그램하는 상태 기반 메모리 장치의 경우, 데이터 스캐너(180)는 프로그램 상태(예를 들면, 프로그램 상태 '10', '01', '00')를 스캔할 것이다. 데이터 스캐너(180)는 스캔된 프로그램 상태들 중에서 동일한 프로그램 상태는 동시에 프로그램 되도록 정렬한다.
도 6은 본 발명의 제 2 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 도면이다.
도 6을 참조하면, 제어 로직(170)은 어드레스 감지기(173)를 포함한다. 또한, 데이터 스캐너(180)는 비교기(181), 복수의 래치들(183), 그리고 복수의 레지스터들(185)을 포함한다.
제어 로직(170)은 프로그램될 데이터와 함께 제공되는 어드레스를 감지한다. 예를 들면, 제어 로직(170)은 외부 장치로부터 데이터와 함께 제공되는 어드레스를 입력받는다. 제어 로직(170)은 입력된 어드레스가 쓰기 버퍼(165)의 어느 스캔 단위에 포함되는 어드레스인지 판단한다. 제어 로직(170)은 판단된 어드레스를 바탕으로 해당 스캔 단위의 레지스터를 셋팅한다. 어드레스 감지를 위하여 제어 로직(170)은 어드레스 감지기(173)를 포함한다.
어드레스 감지기(173)는 입력된 어드레스를 디코딩하여 쓰기 버퍼(165)의 스캔 단위들 중 어느 스캔 단위에 프로그램될 데이터가 임시 저장되는지 감지한다. 예시적으로, 프로그램될 데이터가 도시된 쓰기 버퍼(165)를 참조하여 설명하기로 한다. 어드레스 감지기(173)는 쓰기 버퍼(165)의 제 1 오프셋 어드레스와 대응되는 어드레스가 입력되는 것을 감지한다. 쓰기 버퍼(165)의 제 1 오프셋 어드레스에 임시 저장되는 데이터는 제 1 스캔 단위의 데이터 'Ox5500'이다. 또한, 어드레스 감지기(173)는 쓰기 버퍼(165)의 제 8 오프셋 어드레스와 대응되는 어드레스가 입력되는 것을 감지한다. 제 8 오프셋 어드레스에 임시 저장되는 데이터는 제 2 스캔 단위의 데이터 '0x22CA'이다.
제어 로직(170)은 어드레스 감지기(173)의 감지 결과에 따라, 데이터 스캐너(180)의 레지스터들(185)을 셋팅한다. 레지스터들(185)은 스캔 단위 각각에 대하여 구성된다. 제어 로직(170)은 스캔 단위의 오프셋 어드레스들과 대응되는 입력 어드레스가 적어도 하나 감지되면 해당 스캔 단위에 할당된 레지스터를 셋팅한다. 제어 로직(170)은 스캔 단위의 오프셋 어드레스들이 감지되지 않으면 스캔 단위의 해당 레지스터를 셋팅하지 않는다. 예를 들면, 제 1 스캔 단위의 제 1 오프셋 어드레스와 대응되는 입력 어드레스가 감지되었기 때문에 제 1 레지스터는 셋팅된다(예를 들면, 레지스터는 '1'값을 갖는다). 또한, 제 2 스캔 단위의 제 8 오프셋 어드레스와 대응되는 입력 어드레스가 감지되었기 때문에 제 2 레지스터는 셋팅된다(예를 들면, 레지스터는 '1'값을 갖는다). 반면, 제 1 및 제 2 레지스터들을 제외한 레지스터들은 셋팅되지 않는다(예를 들면, 레지스터는 '0'값을 갖는다).
쓰기 버퍼(165)에 임시 저장된 데이터들은 제어 로직(170)의 제어에 따라 데이터 스캐너(180)에 스캔 단위로 제공된다. 본 발명의 실시 예에 따르면, 데이터 스캐너(180)에 제공된 데이터들은 레지스터들(185)의 값에 따라 선택적으로 스캔된다. 즉, 제어 로직(170)은 각각의 레지스터(185)의 값을 확인한 후, 해당 데이터의 스캔 여부를 결정한다. 예를 들면, 레지스터의 값이 '1'인 경우, 해당 스캔 단위의 데이터들은 스캔된다. 반면, 레지스터의 값이 '0'인 경우, 해당 스캔 단위의 데이터들은 스캔되지 않는다. 따라서, 프로그램 동작 시에 실제 프로그램될 데이터를 검색하는 데이터 스캔 동작이 레지스터 정보에 따라 선택적으로 수행된다.
도 7은 본 발명의 제 3 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 도면이다.
도 7을 참조하면, 제어 로직(170)은 데이터 감지기(175)를 포함한다. 또한, 데이터 스캐너(180)는 비교기(181), 복수의 래치들(183), 그리고 복수의 레지스터들(185)을 포함한다.
제어 로직(170)은 쓰기 버퍼(165)에 임시 저장되는 데이터들을 감지한다. 쓰기 버퍼(165)에 임시 저장되는 데이터들은 스캔 단위로 감지된다. 감지 결과 메모리 셀에 프로그램될 데이터가 존재하는 경우, 데이터 스캐너(180)에 포함된 레지스터를 셋팅한다. 데이터 감지를 위하여 제어 로직(170)은 데이터 감지기(175)를 포함한다.
데이터 감지기(175)는 쓰기 버퍼(165)에 임시 저장되는 데이터들 중 실제 프로그램될 데이터가 적어도 하나 이상 존재하는지 감지한다. 예를 들면, 메모리 셀이 싱글 레벨 셀(SLC) 또는 멀티 레벨 셀(MLC)인 경우, 데이터 감지기(175)는 데이터 '0'을 감지할 것이다. 다른 예로써, 프로그램 상태(state)를 입력받고 입력된 프로그램 상태를 기반으로 프로그램하는 상태 기반 메모리 장치의 경우, 데이터 감지기(175)는 프로그램 상태(예를 들면, 프로그램 상태 '10', '01', '00')를 감지할 것이다. 예시적으로, 프로그램될 데이터가 도시된 쓰기 버퍼(160)를 참조하여 설명하기로 한다. 제 1 스캔 유닛의 데이터들 중 데이터 '0xAA55' 그리고 데이터 '0xFFAF'가 프로그램될 데이터로 감지된다. 또한, 제 128 스캔 유닛의 데이터들 중 데이터 '0x100B'가 프로그램될 데이터로 감지된다. 반면, 제 2 내지 제 127 스캔 유닛들의 데이터들은 모두 데이터 '0xFFFF'이기 때문에 프로그램될 데이터로 감지되지 않는다.
제어 로직(170)은 데이터 감지기(175)의 감지 결과에 따라, 데이터 스캐너(180)의 레지스터들(185)을 셋팅한다. 레지스터들(185)은 스캔 단위 각각에 대하여 구성된다. 제어 로직(170)은 스캔 단위의 데이터들 중 프로그램될 데이터가 적어도 하나 존재하면 해당 레지스터를 셋팅한다. 제어 로직(170)은 스캔 단위의 데이터들 중 프로그램될 데이터가 존재하지 않으면 해당 레지스터를 셋팅하지 않는다. 제 1 및 제 128 스캔 단위들의 데이터들 중에서 프로그램될 데이터가 존재하기 때문에 제 1 및 제 128 레지스터들은 셋팅된다(예를 들면, 레지스터는 '1'값을 갖는다). 제 2 내지 제 127 스캔 단위들의 데이터들은 프로그램될 데이터가 아니기 때문에 제 2 내지 제 127 레지스터들은 셋팅되지 않는다(예를 들면, 레지스터는 '0'값을 갖는다).
쓰기 버퍼(165)에 임시 저장된 데이터들은 제어 로직(170)의 제어에 따라 스캔 단위로 데이터 스캐너(180)에 제공된다. 본 발명의 실시 예에 따르면, 데이터 스캐너(180)에 제공된 데이터들은 레지스터들(185)의 값에 따라 선택적으로 스캔된다. 즉, 제어 로직(170)은 각각의 레지스터(185)의 값을 확인한 후, 해당 데이터의 스캔 여부를 결정한다. 즉, 레지스터의 값이 '1'인 경우, 해당 스캔 단위의 데이터들은 스캔된다. 반면, 레지스터의 값이 '0'인 경우, 해당 스캔 단위의 데이터들은 스캔되지 않는다. 따라서, 프로그램 동작 시에 실제 프로그램될 데이터를 검색하는 데이터 스캔 동작이 레지스터 정보에 따라 선택적으로 수행된다.
본 발명의 실시 예들에 따른 스캔 동작의 수행 여부가 저장되는 저장부는 레지스터로 구성될 것이다. 하지만, 저장 영역이 레지스터에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 래치, 플래그 셀 등과 같은 임시 저장부들 중 하나로 구성될 수 있다.
도 8은 본 발명의 실시 예에 따른 데이터 스캐너의 동작을 예시적으로 보여주는 순서도이다.
도 1 및 도 8을 참조하면, 외부 장치(예를 들면, 호스트, 메모리 컨트롤러, 메모리 인터페이스)로부터 입력되는 데이터는 플래시 메모리 장치(100)의 데이터 입출력 버퍼(160)에 임시 저장된다(S110 단계). 제어 로직(170)은 데이터가 입력될 때 함께 제공된 어드레스를 감지한다(S120 단계). 예를 들면, 제어 로직(170)은 데이터와 함께 제공된 어드레스를 입력받고, 입력된 어드레스가 데이터 입출력 버퍼(160)의 어느 스캔 단위에 포함되는지 판단한다.
감지 결과에 따라 제어 로직(170)은 스캔 단위들 각각에 할당된 레지스터의 값을 설정한다(S130 단계). 예를 들면, 제어 로직(170)은 스캔 단위의 오프셋 어드레스들과 대응되는 입력 어드레스가 적어도 하나 감지되면 해당 스캔 단위에 할당된 레지스터를 셋팅한다(예를 들면, 레지스터는 '1'값을 갖는다). 데이터 입출력 버퍼(160)에 임시 저장된 데이터들은 제어 로직(170)의 제어에 따라 데이터 스캐너(180)에 제공된다. 임시 저장된 데이터들은 스캔 단위로 제공될 것이다.
데이터 스캐너(180)에 제공된 데이터들은 스캔 레지스터들(도 6의 185 참조)의 값에 따라 선택적으로 스캔된다(S140 단계). 스캔 레지스터의 값이 셋팅되지 않은 경우(예를 들면, 레지스터의 값이 '0'인 경우), 해당 스캔 단위의 데이터들은 스캔되지 않는다(S150 단계). 즉, 데이터 스캔 동작은 스킵(skip)된다. 스캔 레지스터의 값이 셋팅된 경우(예를 들면, 레지스터의 값이 '1'인 경우), 해당 스캔 단위의 데이터들은 스캔된다(S160 단계). 데이터 스캔 동작이 선택적으로 수행된 후, 입력된 데이터는 메모리 셀에 프로그램된다(S170 단계).
본 발명의 실시 예에 따르면, 프로그램 동작 시에 실제 프로그램될 데이터를 검색하는 데이터 스캔 동작이 선택적으로 수행될 수 있다. 스캔 동작을 선택적으로 수행하기 위하여 스캔 여부를 저장하는 레지스터가 포함된다. 프로그램될 데이터가 어드레스와 함께 입력되면 입력된 어드레스를 감지하여 스캔 여부를 결정하는 레지스터의 값이 설정된다. 또는 입력된 데이터를 감지하여 스캔 여부를 결정하는 레지스터의 값이 설정된다. 설정된 레지스터의 값에 따라 스캔 여부가 결정된다. 따라서, 불필요한 스캔 동작이 수행되지 않기 때문에 프로그램 속도가 향상될 수 있다.
도 9는 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 사용자 장치를 예시적으로 보여주는 블럭도이다.
도 9를 참조하면, 데이터 저장 장치(1000)는 솔리드 스테이트 드라이브(solid state drive, 이하, 'SSD'라 칭함)일 것이다. SSD(1100)는 SSD 컨트롤러(SSD controller, 1200), 버퍼 메모리 장치(buffer memory device, 1300), 그리고 저장 매체(1400)를 포함한다. 본 발명의 실시 예에 따른 SSD(1100)는 슈퍼 캐패시터들(super capacitors)을 포함하는 임시 전원 회로를 더 포함할 수 있다. 이러한 임시 전원 회로는 서든 파워 오프(sudden power off)가 발생하는 경우, SSD(1100)가 정상적으로 종료되도록 전원을 공급할 수 있다.
SSD(1100)는 호스트(1500)의 액세스 요청에 응답하여 동작된다. 즉, 호스트(1500)로부터의 요청에 응답하여, SSD 컨트롤러(1200)는 저장 매체(1400)를 액세스하도록 구성된다. 예를 들면, SSD 컨트롤러(1200)는 저장 매체(220)의 읽기, 쓰기 그리고 소거 동작을 제어하도록 구성된다. 버퍼 메모리 장치(1300)에는 저장 매체(1400)에 저장될 데이터가 임시 저장된다. 또한, 버퍼 메모리 장치(1300)에는 저장 매체(1400)로부터 읽혀진 데이터가 임시 저장된다. 버퍼 메모리 장치(1300)에 저장된 데이터는 SSD 컨트롤러(1200)의 제어에 따라 저장 매체(1400) 또는 호스트(1500)로 전송된다.
SSD 컨트롤러(1200)는 복수의 채널들(CH0~CHn)을 통해 저장 매체(1400)와 연결된다. 각각의 채널들(CH0~CHn)에는 복수의 불휘발성 메모리 장치들(NVM0~NVMi, NVM0~NVMk)이 연결된다. 복수의 불휘발성 메모리 장치들은 채널을 공유할 수 있다. 본 발명의 실시 예에 따른 저장 매체(1400)는 낸드 플래시 메모리 장치(NAND flash memory device)로 구성될 것이다. 하지만, 저장 매체(220)가 낸드 플래시 메모리 장치에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 저장 매체(220)는 노어 플래시 메모리 장치(NOR flash memory device), PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등과 같은 불휘발성 메모리 장치들 중 하나로 구성될 수 있다.
도 10은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 또 다른 사용자 장치를 예시적으로 보여주는 블럭도이다.
도 10을 참조하면, 메모리 시스템(2000)은 메모리 컨트롤러(2200) 및 불휘발성 메모리 장치를 포함한다. 메모리 시스템(2000)은 복수의 불휘발성 메모리 장치들을 포함할 수 있다. 본 발명의 실시 예에 따른 메모리 시스템(2000)은 복수의 불휘발성 메모리 장치들(2900)을 포함한다.
메모리 컨트롤러(2200)는 호스트(host, 2100) 및 불휘발성 메모리 장치(2900)에 연결된다. 호스트(2100)로부터의 요청에 응답하여, 메모리 컨트롤러(2200)는 불휘발성 메모리 장치들(2900)을 액세스하도록 구성된다. 예를 들면, 메모리 컨트롤러(2200)는 불휘발성 메모리 장치들(2900)의 읽기, 쓰기 그리고 소거 동작을 제어하도록 구성된다. 메모리 컨트롤러(2200)는 불휘발성 메모리 장치들(2900) 및 호스트(2100) 사이에 인터페이스를 제공하도록 구성된다. 메모리 컨트롤러(2200)는 불휘발성 메모리 장치들(2900)을 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.
메모리 컨트롤러(2200)는 램(random access memory: RAM), 중앙처리장치(central processing unit: CPU), 호스트 인터페이스(host interface), 에러 정정 블럭(error correcting code: ECC), 그리고 메모리 인터페이스(memory interface)와 같은 잘 알려진 구성 요소들을 포함할 수 있다. 램(2600)은 중앙 처리 장치(2400)의 동작 메모리(working memory)로써 이용될 수 있다. 중앙 처리 장치(2400)는 메모리 컨트롤러(2200)의 제반 동작을 제어한다.
호스트 인터페이스(2300)는 호스트(2100) 와 메모리 컨트롤러(2200) 사이의 데이터 교환을 수행하기 위한 프로토콜(protocol)을 포함할 수 있다. 예를 들면, 메모리 컨트롤러(2200)는 USB(Universal Serial Bus) 프로토콜, MMC(Multimedia Card) 프로토콜, PCI(Peripheral Component Interconnection) 프로토콜, PCI-E(PCI-Express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, SATA(Serial ATA) 프로토콜, SCSI(Small Computer Small Interface) 프로토콜, ESDI(Enhanced Small Disk Interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
에러 정정 블럭(2700)은 불휘발성 메모리 장치들(2900)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성될 수 있다. 에러 정정 블럭(2700)은 메모리 컨트롤러(2200)의 구성 요소로 제공될 수 있다. 다른 예로써, 에러 정정 블럭(2700)은 불휘발성 메모리 장치들(2900)의 구성 요소로 제공될 수 있다. 메모리 인터페이스(2500)는 불휘발성 메모리 장치들(2900)과 메모리 컨트롤러(2200)를 인터페이싱(interfacing)할 수 있다.
메모리 컨트롤러(2200)의 구성 요소들이 위에서 언급된 구성 요소들에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 메모리 컨트롤러(2200)는 초기 부팅 동작에 필요한 코드 데이터(code data) 그리고 호스트(2100)와의 인터페이싱을 위한 데이터를 저장하는 ROM(read only memory)을 더 포함할 수 있다.
메모리 컨트롤러(2200) 및 불휘발성 메모리 장치들(2900)은 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 메모리 컨트롤러(2200) 및 불휘발성 메모리 장치들(2900)은 하나의 반도체 장치로 집적되어 PCMCIA(personal computer memory card international association) 카드, CF(compact flash) 카드, 스마트 미디어(smart media) 카드, 메모리 스틱(memory stick), 멀티 미디어(multi media) 카드(MMC, RS-MMC, MMC-micro), SD(secure digital) 카드(SD, Mini-SD, Micro-SD, SDHC), UFS(niversal flash storage) 등을 구성할 수 있다.
다른 예로써, 메모리 컨트롤러(2200) 그리고 불휘발성 메모리 장치들(2900)은 반도체 드라이브(solid state drive: SSD), 컴퓨터(computer), 휴대용 컴퓨터(portable computer), UMPC(ultra mobile personal computer), 워크스테이션(work station), 넷북(net book), PDA(personal digital assistant), 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크(home network)를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크(computer network)를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크(telematics network)를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 시스템(computer system)을 구성하는 다양한 구성 요소들 중 하나, RFID(radio frequency identification) 장치 또는 임베디드 시스템(embedded system)에 적용될 수 있다.
다른 예로써, 불휘발성 메모리 장치(2900) 또는 메모리 컨트롤러(2200)는 다양한 형태들의 패키지(package)로 실장될 수 있다. 예를 들면, 불휘발성 메모리 장치(2900) 또는 메모리 시스템(2000)은 POP(package on package), ball grid arrays(BGAs), chip scale packages(CSPs), plastic leaded chip carrier(PLCC), plastic dual in-line package(PDIP), die in waffle pack, die in wafer form, chip on board(COB), ceramic dual in-line package(CERDIP), plastic metric quad flat package(MQFP), thin quad flat package(TQFP), small outline IC(SOIC), shrink small outline package(SSOP), thin small outline package(TSOP), thin quad flat package(TQFP), system in package(SIP), multi chip package(MCP), wafer-level fabricated package(WFP), wafer-level processed stack package(WSP) 등과 같은 방식으로 패키지되어 실장될 수 있다.
도 11은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 또 다른 사용자 장치를 예시적으로 보여주는 블럭도이다.
도 11을 참조하면, 사용자 장치(User Device, 3000)는 시스템 버스(System Bus, 3100), 중앙 처리 장치(Central Processing Unit, 3200), 램(Random Access Memory, 3300), 사용자 인터페이스(User Interface, 3400), 데이터 저장 장치(3500) 및 전원 장치(Power Supply, 3900)를 포함한다.
데이터 저장 장치(3500)는 시스템 버스(3100)를 통해 사용자 장치(3000)에 전기적으로 연결된다. 데이터 저장 장치(3500)는 메모리 컨트롤러(3600) 및 불휘발성 메모리 장치(3700)를 포함한다. 데이터 저장 장치(3500)는 복수의 불휘발성 메모리 장치들을 포함할 수 있다. 불휘발성 메모리 장치(3700)에는 사용자 인터페이스(3400)를 통해서 제공되거나 또는 중앙 처리 장치(3200)에 의해서 처리된 데이터가 메모리 컨트롤러(3600)를 통해 저장된다. 불휘발성 메모리 장치(3700)에 저장된 데이터는 메모리 컨트롤러(3600)를 통해 중앙 처리 장치(3200) 또는 사용자 인터페이스(3400)에 제공된다.
램(3300)은 중앙 처리 장치(3200)의 동작 메모리(working memory)로 사용된다. 전원 장치(3900)는 사용자 장치(3000)에 동작 전원을 공급한다. 예를 들면, 사용자 장치(3000)의 휴대성을 높이기 위하여 베터리(battery)와 같은 전원 공급 장치로 구성된다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 사용자 장치에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(camera image processor) 등이 더 제공될 수 있음은 잘 이해될 것이다.
100 : 불휘발성 메모리 장치
110 : 메모리 셀 어레이
120 : 어드레스 디코더
130 : 열 선택 회로
140 : 쓰기 드라이버
150 : 감지 증폭기
160 : 데이터 입출력 버퍼
170 : 제어 로직
171 : 전압 발생기
173 : 어드레스 감지기
175 : 데이터 감지기
180 : 데이터 스캐너

Claims (10)

  1. 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    상기 복수의 메모리 셀들에 저장될 데이터를 임시 저장하는 데이터 입출력 버퍼;
    상기 데이터 입출력 버퍼에 임시 저장된 데이터를 스캔하는 데이터 스캐너; 그리고
    상기 데이터가 저장될 메모리 셀의 어드레스 정보를 판독하고, 상기 판독 결과에 따라 데이터 스캔 동작이 선택적으로 수행되도록 제어하는 제어 로직을 포함하는 불휘발성 메모리 장치.
  2. 제 1 항에 있어서,
    상기 데이터 스캐너는 데이터 스캔 동작의 수행 여부를 저장하기 위한 저장부를 포함하되,
    상기 저장부는 각각의 스캔 단위마다 할당되는 불휘발성 메모리 장치.
  3. 제 2 항에 있어서,
    상기 제어 로직은 상기 어드레스 정보를 판독하기 위한 어드레스 감지기를 포함하되,
    상기 어드레스 감지기는 상기 스캔 단위의 오프셋 어드레스와 대응되는 어드레스 정보가 입력되는지 판단하고,
    상기 제어 로직은 상기 어드레스 감지기의 판단 결과에 따라 해당되는 상기 저장부에 데이터를 저장하는 불휘발성 메모리 장치.
  4. 제 3 항에 있어서,
    상기 저장부에 저장된 데이터에 따라 상기 데이터 스캔 동작이 선택적으로 수행되는 불휘발성 메모리 장치.
  5. 제 2 항에 있어서,
    상기 스캔 단위는 상기 데이터 입출력 버퍼에 임시 저장된 데이터를 그룹화하여 설정되고, 상기 데이터 스캔 동작은 상기 스캔 단위로 수행되는 불휘발성 메모리 장치.
  6. 제 1 항에 있어서,
    상기 데이터 스캐너는 상기 데이터 입출력 버퍼에 임시 저장된 데이터 값에 따라 프로그램 상태를 구별하고, 상기 구별된 프로그램 상태를 바탕으로 동시에 프로그램될 데이터를 정렬하는 불휘발성 메모리 장치.
  7. 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    상기 메모리 셀에 저장될 데이터를 임시 저장하는 데이터 입출력 버퍼;
    상기 데이터 입출력 버퍼에 임시 저장된 데이터를 데이터 값에 따라 동시에 프로그램될 데이터별로 정렬하는 데이터 스캐너; 그리고
    상기 데이터 스캐너의 스캔 동작을 제어하는 제어 로직을 포함하되,
    상기 데이터 스캐너는 데이터 스캔 동작의 수행 여부를 저장하기 위한 저장부를 스캔 단위마다 할당하여 포함하고,
    상기 제어 로직은 상기 데이터가 저장될 메모리 셀의 어드레스 정보에 따라 상기 저장부에 스캔 동작의 수행 여부를 저장하고, 상기 저장부에 저장된 값에 따라 상기 스캔 동작을 선택적으로 수행하는 불휘발성 메모리 장치.
  8. 불휘발성 메모리 장치의 프로그램 방법에 있어서:
    외부 장치로부터 데이터와 어드레스가 입력되는 단계;
    상기 입력된 데이터가 데이터 입출력 버퍼에 임시 저장되는 단계;
    상기 입력되는 어드레스를 판독하는 단계;
    상기 판독된 어드레스에 따라 상기 임시 저장된 데이터의 스캔 여부를 저장하는 단계; 그리고
    상기 저장된 스캔 여부에 따라 데이터 스캔 동작이 선택적으로 수행되는 단계를 포함하는 프로그램 방법.
  9. 제 8 항에 있어서,
    상기 어드레스 판독 단계는 상기 임시 저장된 데이터를 그룹화하여 설정되는 스캔 단위로 수행되는 프로그램 방법.
  10. 제 9 항에 있어서,
    상기 스캔 여부를 저장하는 단계는 상기 스캔 단위의 오프셋 어드레스와 대응되는 어드레스가 입력되는 경우 상기 스캔 단위마다 할당된 저장부에 논리 하이 값이 저장되는 프로그램 방법.
KR1020100023362A 2010-03-16 2010-03-16 불휘발성 메모리 장치 및 그것의 프로그램 방법 KR20110104294A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100023362A KR20110104294A (ko) 2010-03-16 2010-03-16 불휘발성 메모리 장치 및 그것의 프로그램 방법
US13/048,120 US8432736B2 (en) 2010-03-16 2011-03-15 Nonvolatile memory device and method of programming the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100023362A KR20110104294A (ko) 2010-03-16 2010-03-16 불휘발성 메모리 장치 및 그것의 프로그램 방법

Publications (1)

Publication Number Publication Date
KR20110104294A true KR20110104294A (ko) 2011-09-22

Family

ID=44647150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100023362A KR20110104294A (ko) 2010-03-16 2010-03-16 불휘발성 메모리 장치 및 그것의 프로그램 방법

Country Status (2)

Country Link
US (1) US8432736B2 (ko)
KR (1) KR20110104294A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140031551A (ko) * 2012-09-04 2014-03-13 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101942275B1 (ko) * 2012-04-18 2019-01-25 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20140031554A (ko) * 2012-09-04 2014-03-13 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
JP6659478B2 (ja) * 2016-06-17 2020-03-04 キオクシア株式会社 半導体記憶装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4063615B2 (ja) 2002-08-30 2008-03-19 Necエレクトロニクス株式会社 不揮発性メモリおよびその書き込み処理方法
US7466597B2 (en) * 2004-09-09 2008-12-16 Samsung Electronics Co., Ltd. NAND flash memory device and copyback program method for same
KR100645045B1 (ko) 2004-09-30 2006-11-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR100645047B1 (ko) 2004-10-12 2006-11-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 고속 프로그램 방법
US7298648B2 (en) * 2004-11-19 2007-11-20 Samsung Electronics Co., Ltd. Page buffer and multi-state nonvolatile memory device including the same
KR100648289B1 (ko) * 2005-07-25 2006-11-23 삼성전자주식회사 프로그램 속도를 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법
KR100655430B1 (ko) * 2005-11-17 2006-12-08 삼성전자주식회사 플래시 메모리 장치 및 그것의 워드 라인 인에이블 방법
KR100729353B1 (ko) * 2005-11-22 2007-06-15 삼성전자주식회사 통합된 레귤레이터/펌프 구조를 갖는 플래시 메모리 장치
KR100733954B1 (ko) * 2006-06-15 2007-06-29 삼성전자주식회사 향상된 스캔 구조를 갖는 플래시 메모리 장치
KR100874914B1 (ko) * 2006-12-22 2008-12-19 삼성전자주식회사 데이터 프로그램 및 검증 시간을 단축시킨 불휘발성메모리 장치 및 그 구동방법
KR101468100B1 (ko) * 2008-09-23 2014-12-04 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 페이지 버퍼

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140031551A (ko) * 2012-09-04 2014-03-13 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치

Also Published As

Publication number Publication date
US20110228588A1 (en) 2011-09-22
US8432736B2 (en) 2013-04-30

Similar Documents

Publication Publication Date Title
US9959933B2 (en) Non-volatile memory devices and methods of operating the same
US10366769B2 (en) Nonvolatile memory device and programming method for fast and slow cells thereof
US8705279B2 (en) Nonvolatile memory device and reading method thereof
KR101832934B1 (ko) 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법
US9465584B2 (en) Method for generating random number, memory storage device and control circuit
US20160247576A1 (en) Memory controller and operating method thereof
US20170287564A1 (en) Memory system and operating method thereof
US8406062B2 (en) Charge recycling memory system and a charge recycling method thereof
CN109754827B (zh) 半导体存储器装置及其操作方法
CN109427380B (zh) 半导体存储器装置及其操作方法
TWI686811B (zh) 包括複數個記憶體區域的記憶體系統和操作該記憶體系統的方法
US20120294092A1 (en) Operating method of nonvolatile memory device and operating method of memory system including nonvolatile memory device
US8295084B2 (en) Nonvolatile memory device and related programming method
US20110205802A1 (en) Nonvolatile memory device and method of reading the same
US20100023817A1 (en) Test system and method
CN109215696A (zh) 执行编程操作的非易失性存储器件及其操作方法
US11315649B2 (en) Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods
KR20140121159A (ko) 멀티 레벨 셀 메모리 시스템
US10672481B2 (en) Semiconductor memory device and operating method thereof
US9570178B2 (en) Semiconductor memory device and operating method thereof
US10153044B2 (en) Semiconductor memory device and operating method thereof
US8432736B2 (en) Nonvolatile memory device and method of programming the same
US9754677B2 (en) Semiconductor memory device, memory system including the same, and operating method thereof
CN111290876B (zh) 存储器系统及其操作方法
US8531879B2 (en) Semiconductor memory device and an operating method thereof

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid