KR102154296B1 - 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치 - Google Patents

저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치 Download PDF

Info

Publication number
KR102154296B1
KR102154296B1 KR1020120148367A KR20120148367A KR102154296B1 KR 102154296 B1 KR102154296 B1 KR 102154296B1 KR 1020120148367 A KR1020120148367 A KR 1020120148367A KR 20120148367 A KR20120148367 A KR 20120148367A KR 102154296 B1 KR102154296 B1 KR 102154296B1
Authority
KR
South Korea
Prior art keywords
program
write drivers
write
resistive memory
memory cells
Prior art date
Application number
KR1020120148367A
Other languages
English (en)
Other versions
KR20140078980A (ko
Inventor
이용규
김보근
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to KR1020120148367A priority Critical patent/KR102154296B1/ko
Priority to US14/083,470 priority patent/US9208874B2/en
Publication of KR20140078980A publication Critical patent/KR20140078980A/ko
Application granted granted Critical
Publication of KR102154296B1 publication Critical patent/KR102154296B1/ko

Links

Images

Classifications

    • 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/0064Verifying circuits or methods
    • 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
    • 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/5678Digital 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 amorphous/crystalline phase transition storage elements
    • 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/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • G11C2013/0076Write operation performed depending on read result
    • 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
    • G11C2013/0078Write using current through the cell
    • 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
    • G11C2013/0085Write a page or sector of information simultaneously, e.g. a complete row or word line
    • 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/5622Concurrent multilevel programming of more than one cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/72Array wherein the access device being a diode

Abstract

저항체를 이용한 비휘발성 메모리 장치의 구동방법이 제공된다. 연속된 제1 및 제2 프로그램 루프를 포함하는 프로그램 구간을 이용한 저항성 메모리 장치의 구동 방법에 있어서, 제 1 프로그램 루프에서, 선택된 다수의 제 1 라이트 드라이버는 다수의 저항성 메모리 셀을 프로그램하고, 제 2 프로그램 구간에서, 선택된 다수의 제 2 라이트 드라이버는 다수의 저항성 메모리 셀을 프로그램하며, 다수의 제1 라이트 드라이버와 다수의 제2 라이트 드라이버는 서로 일부 겹친다.

Description

저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치{A driving method of nonvolatile memory device using variable resistive element and the nonvolatile memory device}
본 발명은 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치에 관한 것이다.
저항체(resistance material)를 이용한 비휘발성 메모리 장치에는 상변화 메모리 장치(PRAM: Phase change Random Access Memory), 저항 메모리 장치(RRAM: Resistive RAM), 자기 메모리 장치(MRAM: Magnetic RAM) 등 있다. 동적 메모리 장치(DRAM: Dynamic RAM)나 플래시 메모리 장치는 전하(charge)를 이용하여 데이터를 저장하는 반면, 저항체를 이용한 비휘발성 메모리 장치는 캘코제나이드 합금(chalcogenide alloy)과 같은 상변화 물질의 상태 변화(PRAM), 가변 저항체의 저항 변화(RRAM), 강자성체의 자화상태에 따른 MTJ(Magnetic Tunnel Junction) 박막의 저항 변화(MRAM) 등을 이용하여 데이터를 저장한다.
여기서, 상변화 메모리 셀을 예를 들어 설명하면, 상변화 물질은 가열 후 냉각되면서 결정 상태 또는 비정질 상태로 변화되는데, 결정 상태의 상변화 물질은 저항이 낮고 비정질 상태의 상변화 물질은 저항이 높다. 따라서, 결정 상태는 셋(set) 데이터 또는 0데이터로 정의하고 비정질 상태는 리셋(reset) 데이터 또는 1데이터로 정의할 수 있다.
본 발명이 해결하려는 과제는, 향상된 프로그램 속도 및 파워 소모가 감소한 비휘발성 메모리 장치의 구동 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 향상된 프로그램 속도 및 파워 소모가 감소한 비휘발성 메모리 장치를 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 비휘발성 메모리 장치의 구동 방법의 일 면(aspect)은 기결정된 전류를 기초로, 제 1 라이트 드라이버들을 선택하고, 제 1 라이트 드라이버에 대응되는 저항성 메모리 셀들을 제 1 프로그램한다. 기졀정된 전류는 저항성 메모리 장치의 제조시에 결정된 최대 구동 전류이다. 그리고, 메모리 셀들의 프로그램의 패스 또는 페일을 확인하고, 페일된 메모리 셀들의 정보를 소팅(sorting)한다. 그리고 소팅된 메모리 셀들의 어드레스에 대응되고, 상기 기결정된 전류를 기초로 제 2 라이트 드라이버들을 선택한다. 그리고, 제 2 라이트 드라이버들에 대응되는 저항성 메모리 셀들을 제 2 프로그램한다. 상기 저항성 메모리 셀은, PRAM 셀, RRAM셀 또는 MRAM 셀일 수 있다.
상기 과제를 해결하기 위한 본 발명의 비휘발성 메모리 장치의 구동 방법의 다른 면(aspect)은 멀티 레벨 스테이트 중 제 1 로직 스테이트에 대응되는 저항성 메모리 셀들을 선택하고, 상기 선택된 저항성 메모리 셀들 중에, 기설정된 전압으로 구동 가능한 제 1 라이트 드라이버들을 선택하고, 상기 선택된 제 1 라이트 드라이버들은 상기 메모리 셀들을 상기 제 1 로직 스테이트로 프로그램한 후, 베리파이하여, 프로그램이 페일된 저항성 메모리 셀들의 어드레스를 소팅(sorting)하고, 상기 페일된 저항성 메모리 셀들 중에서, 상기 기설정된 전류로 구동가능한 제 2 라이트 드라이버들을 선택하여 상기 제1 로직 스테이트로 다시 프로그램할 수 있다.
상기 과제를 해결하기 위한 본 발명의 비휘발성 메모리 장치의 구동 방법의 또 다른 면(aspect)은 연속된 제1 및 제2 프로그램 루프를 포함하는 프로그램 구간을 이용한 저항성 메모리 장치의 구동 방법에 있어서, 제 1 프로그램 루프에서, 선택된 다수의 제 1 라이트 드라이버는 다수의 저항성 메모리 셀을 프로그램하고, 제 2 프로그램 구간에서, 선택된 다수의 제 2 라이트 드라이버는 다수의 저항성 메모리 셀을 프로그램하며, 다수의 제1 라이트 드라이버와 상기 다수의 제2 라이트 드라이버는 서로 일부 겹친다. 상기 저항성 메모리 셀은, PRAM 셀, RRAM셀 또는 MRAM 셀일 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 비휘발성 메모리 장치의 구동 방법의 일 면은 다수의 저항성 메모리 셀에 프로그램 전류를 제공하는 다수의 라이트 드라이버; 상기 다수의 저항성 메모리 셀에 프로그램 패스와 페일을 베리파이하는 센스 앰프;및 상기 베리파이 결과, 페일인 다수의 저항성 메모리셀의 어드레스를 저장하는 레지스터를 포함하되, 상기 다수의 라이트 드라이버 중 상기 레지스터에 저장된 어드레스에 대응되는 일부의 라이트 드라이버가 구동되며, 구동되는 라이트 드라이버의 개수는 기결정된 최대 구동 전류를 기초로 결정된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 저항성 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1에 도시된 저항성 메모리 장치의 블록도이다.
도 3는 본 발명의 몇몇 실시예에 따른 저항성 메모리 장치를 설명하기 위한 블록도이다.
도 4 a 및 도 4b는 도 2 및 도 3의 메모리 셀 어레이를 설명하기 위한 도면이다.
도 5도 본 발명의 몇몇 실시예에 따른 저항성 메모리 장치에서 사용되는 저항성 메모리 셀의 저항 분포를 설명하기 위한 도면이다
도 6은 저항성 메모리 장치를 구동할 수 있는 최대 구동 전류(Imax)를 도시한다.
도 7은 본 발명의 몇몇 실시예에 따른 메모리 셀들, 라이트 및 베리파이 드라이버를 도시한 개념도이다.
도 8은 본 발명의 몇몇 실시예들에 의한 저항성 메모리 셀들의 예시적 저항 분포 및 프로그램 방법을 도시하고 있다.
도 9a 및 도 9b는 본 발명의 일 실시 예에 따른 저항성 메모리 장치의 복수개의 구간의 프로그램 방법을 도시한 개념도이다.
도 10a 내지 도 10c는 본 발명의 다른 실시 예에 따른 저항성 메모리 장치의 복수개의 구간의 프로그램 방법을 도시한 개념도이다.
도 11a 및 도 11b는 본 발명의 또 다른 실시 예에 따른 저항성 메모리 장치의 복수개의 구간의 프로그램 방법을 도시한 개념도이다.
도 12는 본 발명의 몇몇 실시예에 의한 저항성 메모리 장치의 프로그램 방법을 보여주는 순서도이다.
도 13는 본 발명의 일 실시예에 의한 저항성 메모리 장치의 프로그램 방법을 보여주는 순서도이다.
도 14는 본 발명의 일 실시예에 따른 MLC(multi level cell) 저항성 메모리 장치의 프로그램 방법을 설명한 순서도이다.
도 15 내지 도 19은 본 발명의 몇몇 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 20은 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 예시적 블록도이다.
도 21은 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 다른 예시적 블록도이다.
도 22는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 다른 예시적 블록도이다.
도 23은 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 또 다른 예시적 블록도이다.
도 24는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 또 다른 예시적 블록도이다.
도 25는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 또 다른 예시적 블록도이다.
도 26은 SCM이 사용된 메모리 시스템을 도시한 다른 예시적 블록도이다.
도 27은 SCM이 사용된 메모리 시스템을 도시한 다른 예시적 블록도이다.
도 28은 SCM이 사용된 메모리 시스템을 도시한 다른 예시적 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "연결된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 연결된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 연결된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 본 발명의 실시예들은 상변화 메모리 장치(PRAM: Phase change Random Access Memory)를 이용하여 설명할 것이다. 그러나, 본 발명은 저항 메모리 장치(RRAM: Resistive RAM), 자기 메모리 장치(MRAM: Magnetic RAM) 과 같이 저항체를 이용한 비휘발성 메모리 장치에 모두 적용될 수 있음은 본 발명이 속하는 기술의 당업자에게 자명하다.
도 1은 본 발명의 일 실시예에 따른 저항성 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 메모리 시스템은 저항성 메모리 장치(100) 및 컨트롤러(200)를 포함한다.
저항성 메모리 장치(100)는 메모리 셀 어레이, 메모리 셀 어레이의 메모리 셀들에 데이터 입출력을 제어하는 논리 회로들을 포함한다. 본 발명의 실시예에 따른 저항성 메모리 장치에 대해서는 도 2 내지 도 11을 참조하여 상세히 설명한다.
컨트롤러(200)는 호스트(Host)로부터의 읽기/쓰기 요청에 응답하여 저항성 메모리 장치(100)로부터 저장된 데이터를 독출 또는 기입하도록 저항성 메모리 장치(100)를 제어한다.
컨트롤러(200)는 램(RAM), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 및 메모리 인터페이스(memory interface)를 포함할 수 있다. 램은 프로세싱 유닛의 동작 메모리로서 이용될 수 있다. 프로세싱 유닛은 컨트롤러(200)의 동작을 제어할 수 있다. 호스트 인터페이스는 호스트(Host) 및 컨트롤러(200) 사이의 데이터 교환을 수행하기 위한 프로토콜(protocol)을 포함할 것이다. 예를 들어, 컨트롤러(200)는 USB, MMC, PCI-E, ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, 그리고 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(호스트)와 통신하도록 구성될 수 있다.
컨트롤러(200) 및 저항성 메모리 장치(100)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 컨트롤러(200) 및 저항성 메모리 장치(100)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들어, 컨트롤러(200) 및 저항성 메모리 장치(100)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM/SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD), 유니버설 플래시 기억장치(UFS), 등을 구성할 수 있다.
다른 실시예에 따르면, 저항성 메모리 장치(100) 및 컨트롤러(200)는 하나의 반도체 장치로 집적되어 반도체 디스크/드라이브(SSD, Solid State Disk/Drive)를 구성할 수 있다.
도 2는 도 1에 도시된 저항성 메모리 장치의 블록도이다.
도 2를 참조하면, 본 발명의 실시예들에 따른 저항성 메모리 장치(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 라이트 및 베리파이 드라이버(130), 라이트 버퍼(140), 입출력 버퍼(160) 및 제어 로직(170)을 포함한다.
메모리 셀 어레이(110)는 복수의 워드 라인들(WL) 및 복수의 비트 라인(BL)들을 포함하며, 워드 라인(WL)과 비트 라인(BL)이 교차하는 지점들에 메모리 셀들이 연결된다. 메모리 셀 어레이(110)의 구성은 도 3내지 도 4를 참조하여 상세히 설명된다.
어드레스 디코더(120)는 워드 라인들(WL)을 통해 메모리 셀 어레이(110)와 연결된다. 어드레스 디코더(120)는 외부에서 입력된 어드레스(ADDR)를 디코딩하여, 워드 라인(WL) 및 비트 라인(BL)을 선택한다. 어드레스(ADDR)는 워드 라인(WL)을 선택하기 위한 로우 어드레스(row address)와 비트 라인(BL)을 선택하기 위한 칼럼 어드레스(column address)를 포함한다.
라이트 및 베리파이 드라이버(130)은 메모리 셀 어레이(110)에 데이터들(DI)을 프로그램 한다. 구체적으로, 라이트 및 베리파이 드라이버(130)은 는 프로그램 펄스, 검증 펄스 및 데이터를 입력받고, 메모리 셀 어레이(110)에 프로그램 전류 및 검증 전류를 제공한다. 여기에서, 프로그램 펄스는 셋 펄스 및 리셋 펄스를 포함한다. 프로그램 전류는 셋 전류 및 리셋 전류를 포함한다. 라이트 및 베리파이 드라이버(120)는 데이터 '0'이 입력되는 경우에는 셋 펄스에 응답하여 셋 전류를 제공하고, 데이터 '1'이 입력되는 경우에는 리셋 펄스에 응답하여 리셋 전류를 제공한다.
라이트 버퍼(140)는 라이트 및 베리파이 드라이버(130)를 통해 기입될 데이터를 임시로 저장하고, 출력한다. 또한, 라이트 버퍼(140)는 데이터 캐쉬(Data Cache)로 사용된다. 즉, 컨트롤 로직(170)으로부터 억세스되는 데이터를 라이트 버퍼(140)가 저장하고 있는 경우, 라이트 버퍼(130)는 데이터 입출력 버퍼 회로(140)를 통하여 상기 데이터를 출력한다.
라이트 버퍼(140)은 라이트 및 베리파이 드라이버(130)에서 페일된 메모리 셀들 정보를 저장하는 페일 비트 정보 레지스터(150)를 포함한다.
입출력 버퍼(160)는 외부에서 입력된 데이터(DATA)를 라이트 버퍼(140)에 제공하거나, 리드 회로에서 독출한 데이터(DATA)를 외부로 출력한다.
제어 로직(170)는 외부에서 제공된 명령 신호(CMD)에 따라, 저항성 메모리 장치를 제어하는 제어 신호들을 출력한다.
그리고, 제어 로직(170)은 기입 동작시에는 라이트 및 베리바이 드라이버(140)의 동작을 제어한다. 구체적으로, 제어 로직(170)에서는 기입 동작시 프로그램 전류를 발생시키기 위한 셋 펄스(SET Pulse) 또는 리셋 펄스(RESET Pulse)를 라이트 버퍼(140)로 제공한다. 그리고, 제어 로직(170)은 멀티 비트 셀에 공급되는 전류량을 제어하기 위한 바이어스 전압(DC_BIAS)을 라이트 버퍼(140)로 제공한다. 또한, 제어 로직(170)은 라이트 및 베리파이 드라이버(130)가 베리파이한 결과에 따라, 페일 비트(fail bit)의 메모리 셀 정보를 소팅(sorting)한다. 예시적으로, 페일 비트 정보는 메모리 장치의 어드레스 정보로, 컬럼 어드레스 또는 로우 어드레스를 포함할 수 있다.
또한, 제어 로직(170)은 페일 비트 정보 레지스터(150)에 저장된 페일 비트 메모리 셀의 정보 및 제조시 정해진 최대 구동 전류를 기초로, 라이트 및 베리파이 드라이버(130) 에서 사용할 라이트 드라이버를 선택 할 수 있다. 구체적으로, 선택된 적어도 하나의 제1 라이트 드라이버를 사용하여 저항성 메모리 셀들에 제 1 프로그램을 할 수 있다. 베리파이 드라이버는 제 1 프로그램의 페스 및 페일을 베리파이하여, 페일된 메모리 셀들의 정보를 소팅한다. 소팅된 페일 메모리 셀들의 정보는 페일 비트 정보 레지스터에 저장된다. 또한, 제어 로직(170)은 페일 비트 메모리 셀들의 주소에 대응되는 라이트 드라이버들 중에, 최대 구동 전류로 동작 가능한 적어도 하나의 제2 라이트 드라이버를 선택하여, 제 2 프로그램을 수행한다. 실시예에 따라서, 제 2 프로그램 전류는 제 1 프로그램 전류와 동일하거나 낮을 있으며, 또는 높을 수 있다. 따라서, 제 1 프로그램 구간에서 선택된 제 1 라이트 드라이버들과 제 2 프로그램 구간에서 선택된 제 2 라이트 드라이버들은 일부 겹칠 수 있다.
도 3는 본 발명의 몇몇 실시예에 따른 저항성 메모리 장치를 설명하기 위한 블록도이다. 도 3에서는 설명의 편의를 위해서 16개의 메모리 뱅크로 구성된 저항성 메모리 장치를 예로 드나, 이에 한정되는 것은 아니다.
도 3를 참조하면, 본 발명의 실시예들에 따른 저항성 메모리 장치는 메모리 셀 어레이, 리드/라이트 회로(2_1~2_8), 주변 회로 영역(3)을 포함한다.
메모리 셀 어레이는 다수의 메모리 뱅크(1_1~1_16)로 구성될 수 있고, 각 메모리 뱅크(1_1~1_16)는 각각 다수의 메모리 블록(BLK0~BLK7)으로 구성될 수 있고, 각 메모리 블록(1_1~1_16)은 매트릭스 형태로 배열된 다수의 저항성 메모리 셀을 포함한다. 본 발명의 실시 예들에서는, 메모리 블록이 8개씩 배치된 경우를 예로 들었으나, 이에 한정되는 것은 아니다.
또한, 도면에는 자세히 도시하지 않았으나, 메모리 뱅크(1_1~1_16)에 대응하여 라이트/리드하려는 저항성 메모리 셀의 행 및 열을 각각 지정하는 로우 선택 회로 및 컬럼 선택 회로가 배치된다.
리드/라이트 회로(2_1~2_8)는 전술한 라이트 드라이버 및 베리파이 드라이버(도 2의 130)을 포함할 수 있다. 또한, 리드/라이트 회로(2_1~2_8)는 2개의 메모리 뱅크(1_1~1_16)에 대응하여 배치되어, 대응하는 메모리 뱅크에서의 리드 및 라이트 동작을 한다. 본 발명의 실시예들에서는, 리드/라이트 회로(2_1~2_8)는 2개의 메모리 뱅크(1_1~1_16)에 대응되는 경우를 예로 들었으나, 이에 한정되는 것은 아니다. 즉, 리드/라이트 회로(2_1~2_8)는 (2_1~2_8)는 1개 또는 4개의 메모리 뱅크 등에 대응하여 배치되어도 무방하다.
주변 회로 영역(3)에는 여러가지 회로 블록(예를 들어, 리드/라이트 회로(2_1~2_8) 등)을 동작시키기 위한 다수의 로직 회로 블록과 전압 생성부가 배치될 수 있다.
도 4a 및 도 4b는 도 2 및 도 3의 메모리 셀 어레이를 설명하기 위한 도면이다.
도 4a를 참조하면, 메모리 셀 어레이는 크로스 포인트 구조(cross point structure)를 가질 수 있다. 크로스 포인트 구조는 하나의 라인과 다른 라인이 서로 교차되는 영역에, 하나의 메모리 셀이 형성되어 있는 구조를 의미한다. 예를 들어, 비트 라인(BL1_1~BL4_1)이 제1 방향으로 연장되어 형성되고, 워드 라인(WL1_1~WL3_1)이 상기 비트 라인(BL1_1~BL4_1)과 서로 교차되도록 제2 방향으로 연장되어 형성되고, 각 비트 라인(BL1_1~BL4_1)과 각 워드 라인(WL1_1~WL3_1)이 교차되는 영역에 저항성 메모리 셀(MC)이 형성될 수 있다.
또는, 메모리 셀 어레이는 도 4b에 도시된 것과 같이, 3차원 적층 구조를 가질 수도 있다. 3차원 적층 구조는 다수의 메모리 셀 레이어(111_1~111_8)가 수직으로 적층된 형태를 의미한다. 도면에서는 8개의 메모리 셀 레이어(111_1~111_8)가 적층된 것을 예로 들고 있으나, 이에 한정되는 것은 아니다. 여기서, 각 메모리 셀 레이어(111_1~111_8)는 다수의 메모리 셀 그룹 및/또는 다수의 리던던시 메모리 셀 그룹을 포함할 수 있다. 메모리 셀 어레이가 3차원 적층 구조일 경우, 각 메모리 셀 레이어(111_1~111_8)는 도 4a에 도시된 크로스 포인트 구조일 수 있으나, 이에 한정되는 것은 아니다.
도 4a에서 도시된 저항성 메모리 셀(MC)은 메모리 셀 어레이 내의 다수의 저항성 메모리 셀 중에서 예를 들면, 리드 또는 프로그램 하기 위해 선택된 저항성 메모리 셀을 나타낸다. 여기서, 저항성 메모리 셀(MC)이 PRAM인 경우에는, 저항성 메모리 셀(MC)은 상변화 물질을 구비하는 가변 저항 소자(B)와, 가변 저항 소자(B)에 흐르는 전류를 제어하는 억세스 소자(A)를 포함할 수 있다. 여기서, 억세스 소자(A)는 가변 저항 소자(B)와 직렬로 연결된 다이오드 또는 트랜지스터일 수 있다. 또한, 상변화 물질은 2개의 원소를 화합한 GaSb, InSb, InSe. Sb2Te3, GeTe, 3개의 원소를 화합한 GeSbTe, GaSeTe, InSbTe, SnSb2Te4, InSbGe, 4개의 원소를 화합한 AgInSbTe, (GeSn)SbTe, GeSb(SeTe), Te81Ge15Sb2S2 등 다양한 종류의 물질을 사용할 수 있다. 이 중에서 게르마늄(Ge), 안티모니(Sb), 텔루리움(Te)으로 이루어진 GeSbTe를 주로 이용할 수 있다.
한편, 저항성 메모리 셀이 RRAM인 경우에는, 가변 저항 소자(B)는 예를 들어, NiO 또는 페로브스카이트(perovskite)를 포함할 수 있다. 페로브스카이트는 망가나이트(Pr0.7Ca0.3MnO3, Pr0.5Ca0.5MnO3, 기타 PCMO, LCMO 등), 타이터네이트(STO:Cr), 지르코네이트(SZO:Cr, Ca2Nb2O7:Cr, Ta2O5:Cr) 등의 조합물(composition)일 수 있다.
도 5는 본 발명의 몇몇 실시예에 따른 저항성 메모리 장치에서 사용되는 저항성 메모리 셀의 저항 분포를 설명하기 위한 도면이다. 도 5를 참조하면, X축은 저항값을 의미하고, Y축은 메모리 셀들의 개수를 나타낸다.
예를 들어, 메모리 셀은 2N 비트(N은 자연수)를 저장할 수 있으며, 메모리 셀은 전기적 펄스에 의해 저항 레벨이 가변될 수 있는 상변화 물질을 포함하는 가변 저항 소자를 포함할 수 있다. 도 5를 참조하면, 각각의 메모리 셀에 2비트가 저장되는 경우, 가변 저항 소자는 4개의 저항 산포를 가질 수 있다. 가변 저항 소자의 저항 산포들은 상 변화 물질에 포함되는 비정질의 양을 조절함으로써 구현할 수 있다. 이러한 4개의 저항 산포를 갖는 메모리 셀은 4개의 저항 산포들 중 어느 하나의 저항 산포를 갖도록 프로그램될 수 있다.
상변화 물질에 포함된 비정질의 양이 많을수록 저항값이 증가하므로, 제 1 저항 산포(S)는 저항값이 가장 작은 결정 상태의 저항 산포를 나타내고, 제 4 저항 산포(R3)는 저항값이 가장 큰 비정질 상태의 저항 산포를 나타낸다. 제 2 저항 산포(R1)은 제 1 저항 산포(S)보다 크고 제 3 저항 산포(R2)보다 작은 저항 산포를 나타내며, 제 3 저항 산포(R2)는 제 2 저항 산포(R1)보다 크고 제 4 저항 산포(R3)보다 작은 저항산포를 나타낸다. 상세하게, 제 1 저항 산포(S)는 RL1보다 작다. 제 2 저항 산포(R1)는 RH1보다 크고 RL2보다 작다. 제 3 저항 산포(R2)는 RH2보다 크고 RL3보다 작다. 제 4 저항 산포(R3)는 RH3보다 크다. 따라서, RL1, RL2, RL3, RH1, RH2, RH3은, 라이트 동작시 라이트가 정확하게 이루어졌는지 확인하는 베리파이(verify) 동작시 사용되는 기준값일 수 있다.
또한, 리드 마진(read margin)을 확보하기 위하여 상기 각 저항 산포들(S, R1, R2, R3)은 서로 중복되지 않는 저항범위(resistor range)를 갖는다. 그리고 각각의 저항 산포들(S, R1, R2, R3)은 00 데이터, 01 데이터, 10 데이터, 및 11 데이터 중 어느 하나에 해당할 수 있다. 일 실시예에서, 저항 레벨은 11 데이터, 01 데이터, 00 데이터, 10 데이터 순서로 커질 수 있다. 즉, 일 실시예에서, 제 1 저항 산포(S)는 11데이터에 해당하고, 제 2 저항 산포(R1)는 01데이터에 해당하고, 제 3 저항 산포(R2)는 00 데이터에 해당하며, 제 4 저항 산포(R3)는 10데이터에 해당할 수 있다.
도 6은 저항성 메모리 장치를 구동할 수 있는 최대 구동 전류(Imax)를 도시한다. 도 6을 참조하면, X축은 시간을 의미하고 Y축은 전류를 의미한다.
도 6을 참조하면, 저항성 메모리 장치는 구동의 소스로 전류를 사용하며, 제조시에 최대 구동 전류는 정해진다. 따라서, 최대 구동 전류는 일정한 값을 가진다. 또한, 저항성 메모리 장치는 최대 구동 전류 이상의 전류를 사용할 수 없다. 그리고, 저항성 메모리 장치가 최대 구동 전류보다 상당히 작은 전류를 사용할 경우에는, 파워 손실이 상당히 커질 수 있다.
도 7은 본 발명의 몇몇 실시예에 따른 메모리 셀들, 라이트 및 베리파이 드라이버를 도시한 개념도이다.
도 7을 참조하면, 메모리 블록(BLK0)은 다수의 상변화 메모리 셀(Cp), 다수의 글로벌 비트 라인(GBL0~GBLn), 다수의 비트 라인(LBL0, LBL1, LBL2, LBL3), 다수의 워드 라인(WL0, WL1), 컬럼 선택 트랜지스터(YSEL0~YSEL3), 라이트 및 베리파이 드라이버 등을 포함한다.
다수의 상변화 메모리 셀(Cp)은 워드 라인(WL0, WL1)과 비트 라인(LBL0, LBL1, LBL2, LBL3)이 교차되는 영역에 위치하고, 특히, 다수의 비트 라인(LBL0, LBL1, LBL2, LBL3)은 계층적 비트 라인 구조를 갖기 위해 각 글로벌 비트 라인(GBL0~GBLn)으로부터 분지되어 있을 수 있다. 자세히 설명하면, 다수의 글로벌 비트 라인(GBL0~GBLn)은 다수의 메모리 블록(도 3의 BLK0~BLK7 참조)에 공통되도록 일방향으로 연장되어 형성된다. 다수의 비트 라인(LBL0, LBL1, LBL2, LBL3)은 각각 컬럼 선택 트랜지스터(YSEL0~YSEL3)를 통해서 글로벌 비트 라인(GBL0~GBLn)과 선택적으로 연결되고, 각 비트 라인(LBL0, LBL1, LBL2, LBL3)에는 다수의 상변화 메모리 셀(Cp)이 연결된다.
상변화 메모리 셀(Cp)은 관통 전류에 따라 결정 상태 또는 비정질 상태로 변화하고, 각 상태마다 서로 다른 저항을 갖는 상변화 물질(Rp)와, 상변화 물질(Rp)에 흐르는 관통 전류를 제어하는 억세스 소자(D)를 포함한다.
컬럼 선택 트랜지스터(YSEL0~YSEL3)는 컬럼 선택 신호에 응답하여 글로벌 비트 라인(GBL0~GBLn)과 비트 라인(LBL0, LBL1, LBL2, LBL3)을 선택적으로 연결한다. 여기서, 컬럼 선택 신호는 컬럼 어드레스 및 블록 정보(block information)를 디코딩한 신호일 수 있다.
각각의 라이트 및 베리파이 드라이버(131~13n)는 각 글로벌 비트 라인(GBL0~GBLn)에 연결되어 있다. 라이트 및 베리파이 드라이버(131~13n)는 라이트 드라이버(W/D0~W/Dn)와 베리파이를 위한 센스 앰프(S/A0~S/An)를 포함할 수 있다. 라이트 드라이버는 프로그램 전류를 저항성 메모리 셀로 제공하여 데이터를 프로그램 되도록 한다. 또한, 도 6에서 도시한 바와 같이, 라이트 드라이버(W/D0~W/Dn)은 최대 구동전류에 기초하여 선택될 수 있다. 최대 구동 전류를 기초로, 제 1 라이트 드라이버들을 선택해서, 제 1 라이트 드라이버에 연결된 메모리 셀들을 제 1 프로그램한다. 컬럼 선택 트랜지스터(YSEL0~YSEL3)는 컬럼 선택 신호에 응답하여 비트 라인(LBL0, LBL1, LBL2, LBL3)을 선택하여, 메모리 셀에 프로그램 되도록 한다. 센스 앰프(S/A0~S/An)은 제 1 프로그램의 패스 또는 페일 여부를 확인하고, 페일된 메모리 셀들의 정보를 소팅한다. 그리고, 소팅된 메모리 셀들의 정보에 대응되는 라이트 드라이버들 중에서, 최대 구동 전류를 기초로 하여 제 2 라이트 드라이버들은 선택된다. 그리고 제 2 라이트 드라이버들은 프로그램 전류를 비휘발성 메모리 셀들에 제공하여, 제 2 프로그램을 수행한다. 상세한 사항은 도 9 내지 도 11에서 설명하도록 한다.
도 8은 본 발명의 몇몇 실시예들에 의한 저항성 메모리 셀들의 예시적 저항 분포 및 프로그램 방법을 도시하고 있다.
도 8의 케이스 ①은 저항을 증가시키는 방향으로 프로그램하는 것을 도시한 것이다. 구체적으로, 도 8의 케이스 ①을 참조하면, 프로그램 구간에 기초해서 프로그램 전류가 높아지는 프로그램 펄스 제공방법(ISPP: Increment Step Program Pulse)을 사용하여, 프로그램 루프 수가 증가함에 따라서, 프로그램 전류 값은 높아진다. 또한, 프로그램 전류 인가하고, 연속적으로 베리파이 전류를 제공하여, 프로그램 패스 또는 패일 여부를 확인한다.
도 8의 케이스 ②는 저항을 감소시키는 방향으로 프로그램하는 것을 도시한 것이다. 구체적으로, 도 8의 케이스 ②을 참조하면, 프로그램 구간에 기초하여 프로그램 전류가 낮아지는 프로그램 펄스 제공 방법(DSPP : Decrement Step Program Pulse)을 사용하여, 프로그램 루프 수가 증가함에 따라서, 프로그램 전류값은 낮아진다. 또한, 프로그램 전류 인가하고, 연속적으로 베리파이 전류를 제공하여, 프로그램 패스 또는 패일 여부를 확인한다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른 저항성 메모리 장치의 복수개의 구간의 프로그램 방법을 도시한 개념도이다.
도 9a 및 도 9b는 메모리 셀(C1, C2, C3, C4, C5, C6, C7, C8), 라이트 드라이버 및 베리파이 드라이버와 데이터 버퍼를 보여주고 있다.
도 9a는 첫번째 프로그램 루프에서, 선택된 제 1 라이트 드라이버들(WD1, WD2, WD3, WD4, WD5, WD6)의 동작을 보여준다. 제어 로직(도 2의 170 참조)은 데이터 버퍼(도 2의 140 참조)에 저장된 메모리 셀들의 프로그램 패스 또는 페일 정보를 참조하고, 최대 구동 전류(도 6 참조)에 기초하여, 구동 가능한 제1 라이트 드라이버들(WD1, WD2, WD3, WD4, WD5, WD6)을 선택하고, 선택된 제1 라이트 드라이버들(WD1, WD2, WD3, WD4, WD5, WD6)은 메모리 셀 C1, C2, C3, C4, C5, C6에 프로그램 한다.
그리고, 베리파이 드라이버는 제1 프로그램의 패스 또는 페일 여부를 확인하여, 페일된 비트의 메모리 셀의 정보를 소팅한다. 예시적으로, 페일된 비트 정보는 메모리 장치의 어드레스로, 컬럼 어드레스 또는 로우 어드레스를 포함할 수 있다. 소팅된 페일된 메모리 셀들의 정보는 데이터 버퍼에 저장된다.
최대 구동 전류는 기결정된 전류로, 저항성 메모리 장치 제조 당시에 기결정된 전류로, 저항성 메모리 장치는 최대 구동 전류 이상을 사용할 수 없다.
도 9b는 두 번째 프로그램 루프에서, 선택된 제2 라이트 드라이버들(WD2, WD3, WD4, WD6, WD7, WD8)의 동작을 보여준다. 제어 로직(도 2의 170 참조)은 도 9a 에서 소팅된 메모리들의 어드레스에 대응되고, 최대 구동 전류를 기초로 제2 라이트 드라이버들(WD2, WD3, WD4, WD6, WD7, WD8)을 선택하여 제 2 프로그램을 한다. 도 9b를 참조하면, 페일된 메모리 셀들(C2, C3, C4, C6, C7, C8)에 대응되고, 최대 구동 전류(도 6 참조)에 기초하여, 제 2 라이트 드라이버들(WD2, WD3, WD4, WD6, WD7, WD8)을 선택할 수 있다. 따라서, 제 2 라이트 드라이버들(WD2, WD3, WD4, WD6, WD7, WD8)은 C2, C3, C4, C6, C7, C8에 프로그램 한다.
제1 라이트 드라이버(WD1, WD2, WD3, WD4, WD5, WD6) 및 제 2 라이트 드라이버(WD2, WD3, WD4, WD6, WD7, WD8)는 프로그램시에 동일한 프로그램 전류를 사용하고, 제 1 라이트 드라이버(WD1, WD2, WD3, WD4, WD5, WD6)의 개수(6개)와 제 2 라이트 드라이버(WD2, WD3, WD4, WD6, WD7, WD8)의 개수(6개)가 동일할 수 있다. 또한, 제 1 프로그램 및 제 2 프로그램은 동일 로직 상태(R1, R2, 또는 R3)의 데이터를 프로그램한다.
도 10a 내지 도 10c는 본 발명의 다른 실시 예에 따른 저항성 메모리 장치의 복수개의 구간의 프로그램 방법을 도시한 개념도이다. 설명의 편의를 위해서, 도 10a 내지 도 10c를 설명시, 도 6 내지 도 8을 함께 참조한다.
도 10a 내지 도 10c는 메모리 셀(C1, C2, C3, C4, C5, C6, C7, C8, C9), 라이트 드라이버, 베리파이 드라이버 및 데이터 버퍼를 보여주고 있다.
도 10a는 첫번째 프로그램 루프에서, 선택된 제1 라이트 드라이버들(WD2, WD3, WD4, WD6, WD9)의 동작을 보여준다. 제어 로직(도 2의 170 참조)은 데이터 버퍼(도 2의 140 참조)에 저장된 메모리 셀들의 프로그램 패스 또는 페일 정보를 참조하고, 최대 구동 전류에 기초하여, 구동 가능한 제 1 라이트 드라이버(WD2, WD3, WD4, WD6, WD9)를 선택하고, 제 1 라이트 드라이버(WD2, WD3, WD4, WD6, WD9)는 메모리 셀 C2, C3, C4, C6, C9에 프로그램 한다. 즉, 최대 구동 전류를 기초하여, 예를 들어, 5개의 제1 라이트 드라이버(WD2, WD3,WD4, WD6, WD9)의 구동이 가능하다고 판단될 경우, 5개의 라이트 드라이버(WD2, WD3,WD4, WD6, WD9)를 구동시킨다.
그리고, 베리파이 드라이버는 제 1 프로그램의 패스 또는 페일 여부를 확인하여, 페일된 비트의 메모리 셀의 정보를 소팅한다. 예시적으로, 페일된 비트 정보는 메모리 장치의 어드레스로, 컬럼 어드레스 또는 로우 어드레스를 포함할 수 있다. 소팅된 페일된 메모리 셀의 정보는 데이터 버퍼에 저장된다.
최대 구동 전류는 도 6에서 도시하였으며, 기결정된 전류로, 저항성 메모리 장치 제조 당시에 기결정된 전류로, 저항성 메모리 장치는 최대 구동 전류 이상을 사용할 수 없다.
도 10b는 두 번째 프로그램 루프에서, 선택된 제 2 라이트 드라이버들(WD2, WD3, WD4, WD6)의 동작을 보여준다. 제어 로직(도 2의 170 참조)은 도 10a에서 소팅된 메모리 셀들의 어드레스에 대응되고, 최대 구동 전류를 기초로 제2 라이트 드라이버들(WD2, WD3, WD4, WD6)을 선택하여 제 2 프로그램을 한다. 도 10b를 참조하면, 페일된 메모리 셀들(C2, C3, C4, C6)에 대응되고, 최대 구동 전압에 기초하여, 제 2 라이트 드라이버들(WD2, WD3, WD4, WD6)을 선택할 수 있다. 따라서, 제 2 라이트 드라이버들은 C2, C3, C4, C6에 프로그램 한다. 최대 구동 전류는 기결정된 전류로 도 6에서 도시한 바와 같이 제조시 정해진 일정한 값을 가진다.
제 2 프로그램 구간에서는 제 1 프로그램보다 높은 프로그램 전류를 사용할 수 있다. 도 8의 케이스①에서 도시한 바와 같이, 프로그램 구간 또는 프로그램 루프수가 증가함에 따라서, 프로그램 전류 값은 일정 스텝만큼 증가할 수 있다. 이러한 경우, 제2 라이트 드라이버 개수(예를 들어, 4개)는 제1 라이트 드라이버 개수(예를 들어, 5개) 보다 작다. 또한, 제 1 프로그램 및 제 2 프로그램은 동일 로직 상태(R1, R2, 또는 R3)의 데이터를 프로그램한다.
베리파이 드라이버는 제 2 프로그램의 패스 또는 페일 여부를 확인하여, 페일된 비트의 메모리 셀의 정보를 소팅한다. 예시적으로, 페일된 비트 정보는 메모리 장치의 어드레스로, 컬럼 어드레스 또는 로우 어드레스를 포함할 수 있다. 소팅된 페일된 메모리 셀의 정보는 데이터 버퍼에 저장된다.
도 10c는 세 번째 프로그램 루프에서, 선택된 제 3 라이트 드라이버들(WD2, WD3)의 동작을 보여준다. 제어 로직(도 2의 170 참조)은 도 10c에서 소팅된 메모리 셀들의 어드레스에 대응되고, 최대 구동 전류를 기초로 제3 라이트 드라이버들(WD2, WD3)을 선택하여 제 3 프로그램을 한다. 도 10 c를 참조하면, 페일된 메모리 셀들(C2, C3)에 대응되고, 최대 구동 전압에 기초하여, 제 3 라이트 드라이버들(WD2, WD3)을 선택할 수 있다. 따라서, 제3 라이트 드라이버들(WD2, WD3)은 C2, C3에 프로그램 한다. 최대 구동전압은 기결정된 전류로 도 6에서 도시한 바와 같이 제조시 정해진 일정한 값을 가진다.
제 3 프로그램 구간에서는 제 2 프로그램 보다 높은 프로그램 전류를 사용할 수 있다. 도 8의 케이스①에서, 프로그램 구간 또는 프로그램 루프수가 증가함에 따라서, 프로그램 전류 값은 일정 스텝만큼 증가할 수 있다. 따라서, 제 3 라이트 드라이버 개수(예를 들어, 2개)는 제 2 라이트 드라이버 개수(예를 들어, 4개) 보다 작을 수 있다.
도 11a 및 도 11b는 본 발명의 또 다른 실시 예에 따른 저항성 메모리 장치의 복수개의 구간의 프로그램 방법을 도시한 개념도이다.
도 11a 및 도 11b는 메모리 셀(C1, C2, C3, C4, C5, C6, C7, C8), 라이트 드라이버, 베리파이 드라이버 및 데이터 버퍼를 보여주고 있다.
도 11a는 첫번째 프로그램 루프에서, 선택된 제 1 라이트 드라이버들(WD2, WD3, WD4, WD5)의 동작을 보여준다. 제어 로직(170)은 데이터 버퍼(140)에 저장된 메모리 셀들의 프로그램 패스 또는 페일 정보를 참조하고, 최대 구동 전류에 기초하여, 구동 가능한 제 1 라이트 드라이버들(WD2, WD3, WD4, WD5)를 선택하여, 메모리 셀 C2, C3, C4, C5, C6에 프로그램 한다. 즉, 최대 구동 전류를 기초하여, 예를 들어, 4개의 제1 라이트 드라이버(WD2, WD3, WD4, WD5)의 구동이 가능하다고 판단될 경우, 4개의 라이트 드라이버(WD2, WD3, WD4, WD5)를 구동시킨다.
그리고, 베리파이 드라이버는 제 1 프로그램의 패스 또는 페일 여부를 확인하여, 페일된 비트의 메모리 셀의 정보를 소팅한다. 예시적으로, 페일된 비트의 메모리 셀의 정보는 메모리 장치의 어드레스로, 컬럼 어드레스 또는 로우 어드레스를 포함할 수 있다. 소팅된 페일된 메모리 셀 정보는 데이터 버퍼에 저장된다.
최대 구동 전류는 기결정된 전류로, 저항성 메모리 장치 제조 당시에 기결정된 전류로, 저항성 메모리 장치는 최대 구동 전류 이상을 사용할 수 없다.
도 11b는 두 번째 프로그램 루프에서, 선택된 제2 라이트 드라이버들의 동작을 보여준다. 제어 로직은 도 11a에서 소팅된 메모리 셀들의 어드레스에 대응되고, 최대 구동 전류를 기초로 제2 라이트 드라이버들을 선택하여 제 2 프로그램을 한다. 도 11b를 참조하면, 페일된 메모리 셀들(C2, C3, C4, C6, C7, C8)에 대응되고, 최대 구동 전압에 기초하여, 제 2 라이트 드라이버들(WD2, WD3, WD4, WD6, WD7, WD8)을 선택할 수 있다. 따라서, 제2 라이트 드라이버들은 C2, C3, C4, C6, C7, C8에 프로그램 한다. 최대 구동전압은 기결정된 전류로 도 6에서 도시한 바와 같이 제조시 정해진 일정한 값을 가진다.
제2 프로그램 구간에서는 제 1 프로그램 보다 낮은 프로그램 전류를 사용할 수 있다. 도 8의 케이스 ②에서, 프로그램 구간 또는 프로그램 루프수가 증가함에 따라서, 프로그램 전류 값은 일정 스텝만큼 감소할 수 있다. 따라서, 제 2 라이트 드라이버 개수(예를 들어, 6개)는 제 1 라이트 드라이버 개수(예를 들어, 4개) 보다 클 수 있다.
베리파이 드라이버는 제 2 프로그램의 패스 또는 페일 여부를 확인하여, 페일된 비트의 메모리 셀의 정보를 소팅한다. 예시적으로, 페일된 비트의 메모리 셀의 정보는 메모리 장치의 어드레스로, 컬럼 어드레스 또는 로우 어드레스를 포함할 수 있다. 소팅된 페일된 메모리 셀 정보는 데이터 버퍼에 저장된다.
도 12는 본 발명의 몇몇 실시예에 의한 저항성 메모리 장치의 프로그램 방법을 보여주는 순서도이다.
도 12를 참조하면, 저항성 메모리 장치는 메모리 셀들에 특정 스테이트를 프로그램 한다(S100). 그리고, 베리파이 드라이버는 각각의 메모리 셀들의 프로그램 패스 또는 패일 여부를 확인한다.(S120). 베리파이가 패스가 된 메모리 셀들은 프로그램은 종료된다(S120). 그리고, 베리파이가 페일된 비트의 메모리 셀의 정보는 소팅되고, 라이트 버퍼에 저장된다(S130). 페일 비트 정보에 대응되는 메모리 셀들은 다시 프로그램을 한다(S100). 프로그램은 베리파이가 패스 될때까지 반복된다.
도 13는 본 발명의 일 실시예에 의한 저항성 메모리 장치의 프로그램 방법을 보여주는 순서도이다.
도 13을 참조하면, 저항성 메모리 장치는 기결정된 전류를 기초로, 제 1 라이트 드라이버들을 선택한다(S200). 기결정된 전류는 도 6에서 기재한 저항성 메모리 장치 제조시에 결정된 최대 구동 전류이다. 그리고, 제 1 라이트 드라이버에 대응되는 저항성 메모리 셀들을 제 1 프로그램한다(S210). 베리파이 드라이버는 메모리 셀들의 프로그램의 패스 또는 페일을 확인 또는 베리파이하고, 페일된 비트의 메모리 셀의 정보를 소팅(sorting)한다(S220). 소팅된 메모리 셀의 정보는 저항성 메모리 장치의 컬럼 및 로우 주소일 수 있다.
그리고, 제어 로직은 페일된 메모리 셀 정보는 데이터 버퍼에 저장한다(S230). 제어 로직은 저장된 페일된 메모리 셀 주소에 대응되고, 기결정된 전류를 기초로 제 2 라이트 드라이버들을 선택한다(S240). 저항성 메모리 장치는 제 2 라이트 드라이버들에 대응되는 저항성 메모리 셀들을 제 2 프로그램한다(S250).
제 1 프로그램 및 제 2 프로그램은 동일 로직 상태의 데이터를 프로그램한다.
제 2 라이트 드라이버들을 선택시에 제 2 프로그램시 인가하는 전류 값을 참조한다. 제 2 프로그램시에, ISPP(increment step pulse program)를 사용하는 경우, 상기 제 2 라이트 드라이버들의 개수는 상기 제 1 라이트 드라이버 개수들보다 작을 수 있다. 반대로, 제 2 프로그램시에, DSPP(decrement step pulse program)를 사용하는 경우, 상기 제 2 라이트 드라이버들의 개수는 상기 제 1 라이트 드라이버 개수들보다 클 수 있다.
도 14는 본 발명의 일 실시예에 따른 MLC(multi level cell) 저항성 메모리 장치의 프로그램 방법을 설명한 순서도이다. 도 14에서는 예시적으로 2 비트 저항성 메모리 장치의 프로그램 방법을 설명하고 있다. 도 14번의 순서도 설명시, 편의를 위해 도 2, 및 도 5 내지 도 7을 참조하여 설명하도록 한다.
도 14를 참조하면, 예시적으로 저항 분포가 높은 상태(R3)의 데이터부터 저항 분포가 낮은 상태(R2, R1)으로 프로그램 되는 것으로 되어 있으나, 이에 한정된 것은 아니다.
제3 스테이트(R3)의 데이터가 저항성 메모리 셀들에 프로그램된다(S300). 그리고, 베리파이 드라이버는 베리파이 드라이버는 각각의 메모리 셀들의 제 3 스테이트(R3)에 대한 프로그램 패스 또는 패일 여부를 확인한다(S310). 그리고, 베리파이 드라이버는 베리파이가 페일된 비트의 메모리 셀의 정보를 소팅하고, 라이트 버퍼에 소팅된 정보를 저장한다(S320). 페일 비트 정보에 대응되는 메모리 셀들은 다시 제3 스테이트(R3)의 데이터를 프로그램을 한다(S300). 프로그램은 제3 스테이트(R3)의 베리파이가 패스 될때까지 반복된다. 베리파이가 패스가 되면, 저항성 메모리 장치는 제2 스테이트(R2)의 데이터를 프로그램한다(S330).
그리고, 베리파이 드라이버는 각각의 메모리 셀들의 제 2 스테이트(R2)에 대한 프로그램 패스 또는 패일 여부를 확인한다 (S340). 그리고, 베리파이 드라이버는 베리파이가 페일된 비트의 메모리 셀의 정보를 소팅하고, 라이트 버퍼에 소팅된 정보를 저장한다(S350). 페일 비트 정보에 대응되는 메모리 셀들은 다시 제 2 스테이트(R2)의 데이터를 프로그램을 한다(S340). 프로그램은 제 2 스테이트(R2)의 베리파이가 패스 될때까지 반복된다. 베리파이가 패스가 되면, 저항성 메모리 장치는 제 1 스테이트(R1)의 데이터를 프로그램한다(S360).
그리고, 베리파이 드라이버는 베리파이 드라이버는 각각의 메모리 셀들의 제 1 스테이트(R1)에 대한 프로그램 패스 또는 패일 여부를 확인한다(S370). 그리고, 베리파이 드라이버는 베리파이가 페일된 비트의 메모리 셀의 정보를 소팅하고, 라이트 버퍼에 소팅된 정보를 저장한다(S380). 페일 비트 정보에 대응되는 메모리 셀들은 다시 제 1 스테이트(R2)의 데이터를 프로그램을 한다(S360). 프로그램은 제 1 스테이트(R1)의 베리파이가 패스 될때까지 반복된다. 베리파이가 패스가 되면, 저항성 메모리 장치는 프로그램을 종료한다(S390).
도 15는 도 1에 도시된 저항성 메모리 장치의 블록도의 다른 예시이다.
도 15를 참조하면, 도 2에서 기술한 바와 같이, 저항성 메모리 장치(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 라이트 및 베리파이 드라이버(130), 라이트 버퍼(140), 입출력 버퍼(160) 및 제어 로직(170)을 포함한다. 또한, 도 15를 참조하면, 저항성 메모리 장치(100)는 페일 비트 스캐너(180), 라이트 비트 개수 결정 유닛(181), 및 최대 전류 결정유닛(max current set up unit; 182)를 포함한다.
도 6 및 도 15를 참조하면, 최대 전류 결정 유닛(181)는 메모리 셀 어레이(110)에 공급되는 최대 전류를 설정한다.
제어 로직(170)에서는 기입 동작시 프로그램 전류를 발생시키기 위한 셋 펄스(SET Pulse) 또는 리셋 펄스(RESET Pulse)를 라이트 버퍼(140)로 제공하여, 제 1 프로그램을 수행한다.
페일 비트 스캐너(180)는 프로그램 및 베리파이 결과에 따라서 프로그램 의 페일 비트의 메모리 셀의 정보들을 소팅한다. 소팅된 페일 비트의 메모리 셀의 정보는 페일 비트 정보 레지스터(150)에 저장된다.
라이트 비트 개수 결정 유닛(181)은 페일 비트 정보 레지스터(150)에 저장된 페일 비트 메모리 셀의 정보 및 최대 전류 결정 유닛(182)에서 결정한 최대 구동 전류를 기초로, 라이트 드라이버들(130)을 선택 할 수 있다. 선택된 라이트 드라이버를 사용하여 저항성 메모리 셀들은 제 2 프로그램 된다.
페일 비트 스캐너(180)는 제 2 프로그램 및 베리파이한 결과를 기초로 프로그램 페일 비트의 메모리 셀의 정보들을 소팅한다. 소팅된 페일 비트의 메모리 셀의 정보는 페일 비트 정보 레지스터(150)에 저장된다. 라이트 비트 개수 결정 유닛(181)은 페일 비트 정보 레지스터(150)에 저장된 페일 비트 메모리 셀의 정보 및 최대 전류 결정 유닛(182)에서 결정한 최대 구동 전류를 기초로, 라이트 드라이버들(130)을 다시 선택 할 수 있다. 제 1 프로그램 구간에서 선택된 라이트 드라이버들과 제 2 프로그램 구간에서 선택된 라이트 드라이버들은 일부 겹칠 수 있다.
도 16 내지 도 20은 본 발명의 몇몇 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다. 여기서, 도 16 내지 도 20는 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 사용하는 메모리 시스템에 관한 것이다.
도 16는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 휴대폰 시스템(cellular phone system)의 예시적 도면이다.
도 16를 참조하면, 휴대폰 시스템은 소리를 압축하거나 압축된 소리를 푸는(compression or decompression) ADPCM 코덱 회로(1202), 스피커(speaker)(1203), 마이크로폰(microphone)(1204), 디지털 데이터를 시분할 멀티플렉싱하는 TDMA회로(1206), 무선 신호의 캐리어 주파수(carrier frequency)를 세팅하는 PLL회로(1210), 무선 신호를 전달하거나 받기 위한 RF 회로(1211) 등을 포함할 수 있다.
또한, 휴대폰 시스템은 여러가지 종류의 메모리 장치를 포함할 수 있는데, 예를 들어, 비휘발성 메모리 장치(1207), ROM(1208), SRAM(1209)를 포함할 수 있다. 비휘발성 메모리 장치(1207)는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용될 수 있고, 예를 들어, ID번호를 저장할 수 있다. ROM(1208)은 프로그램을 저장할 수 있고, SRAM(1209)은 시스템 컨트롤 마이크로컴퓨터(1212)를 위한 작업 영역으로써 역할을 하거나 데이터를 일시적으로 저장한다. 여기서, 시스템 컨트롤 마이크로컴퓨터(1212)는 프로세서로서, 비휘발성 메모리 장치(1207)의 라이트 동작 및 리드 동작을 제어할 수 있다.
도 17는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 카드(memory card)의 예시적 도면이다. 메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 17를 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(1221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 컨트롤러(1222), 본 발명의 실시예들에 따른 비휘발성 메모리 장치(1207)을 적어도 하나 포함할 수 있다. 컨트롤러(1222)는 프로세서로서, 비휘발성 메모리 장치(1207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 컨트롤러(1222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 비휘발성 메모리 장치(1207), 인터페이스부(1221)와 커플링되어 있다.
도 18은 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 디지털 스틸 카메라(digital still camera)의 예시적 도면이다.
도 18을 참조하면, 디지털 스틸 카메라는 바디(1301), 슬롯(1302), 렌즈(303), 디스플레이부(1308), 셔터 버튼(1312), 스트로브(strobe)(1318) 등을 포함한다. 특히, 슬롯(1308)에는 메모리 카드(1331)가 삽입될 수 있고, 메모리 카드(1331)는 본 발명의 실시예들에 따른 비휘발성 메모리 장치(1207)를 적어도 하나 포함할 수 있다.
메모리 카드(1331)가 접촉형(contact type)인 경우, 메모리 카드(1331)가 슬롯(1308)에 삽입될 때 메모리 카드(1331)와 회로 기판 상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(1331)가 비접촉형(non-contact type)인 경우, 메모리 카드(1331)는 무선 신호를 통해서 메모리 카드(1331)와 통신하게 된다.
도 19은 도 17의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
도 19을 참조하면, 메모리 카드(331)는 (a) 비디오 카메라, (b) 텔레비전, (c) 오디오 장치, (d) 게임장치, (e) 전자 음악 장치, (f) 휴대폰, (g) 컴퓨터, (h) PDA(Personal Digital Assistant), (i) 보이스 레코더(voice recorder), (j) PC 카드 등에 사용될 수 있다.
도 20은 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 이미지 센서(image sensor) 시스템의 예시적 도면이다.
도 20를 참조하면, 이미지 센서 시스템은 이미지 센서(1332), 입출력 장치(1336), RAM(1348), CPU(1344), 본 발명의 실시예들에 따른 비휘발성 메모리 장치(1354) 등을 포함할 수 있다. 각 구성요소, 즉, 이미지 센서(1332), 입출력 장치(1336), RAM(1348), CPU(1344), 비휘발성 메모리 장치(1354)는 버스(1352)를 통해서 서로 통신한다. 이미지 센서(1332)는 포토게이트, 포토다이오드 등과 같은 포토센싱(photo sensing) 소자를 포함할 수 있다. 각각의 구성 요소는 프로세서와 함께 하나의 칩으로 구성될 수도 있고, 프로세서와 각각 별개의 칩으로 구성될 수도 있다.
도 21은 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 예시적 블록도이다.
도시된 것과 같이, 메모리(3010)은 메모리 컨트롤러(3020)과 커플링된다. 메모리(3010)은 전술한 실시예들 중 어느 것이어도 무방하다. 메모리 컨트롤러(3020)는 메모리(3010)의 동작 제어를 위해 입력 신호를 제공한다. 예를 들어, 메모리 컨트롤러(3020)은 커맨트(CMD)와 어드레스 신호를 보낼 수 있다. 메모리 컨트롤러(3020)는 메모리 인터페이스, 호스트 인터페이스, ECC회로, CPU(central processing unit), 버퍼 메모리 등을 포함할 수 있다. 메모리 인터페이스는 데이터를 버퍼 메모리로부터 메모리(3010)으로 전송할 수 있고, 메모리(3010)으로부터 데이터를 읽어 버퍼 메모리로 전송할 수도 있다. 또한, 메모리 인터페이스는 커맨드 또는 어드레스를 외부 호스트로부터 메모리(3010)으로 전송할 수 있다.
호스트 인터페이스는 외부 호스트와 USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI) 등을 통해서 통신할 수 있다.
본 발명의 실시예들에 따른 메모리 시스템은, ECC회로를 가질 수 있다. ECC회로는 메모리(3010)에 전송되는 데이터를 이용하여 패러티 비트를 생성할 수 있다. 생성된 패러티 비트는 메모리(3010)의 특정 영역에 데이터와 함께 저장될 수 있다. ECC 회로는 메모리(3010)에서 리드되는 데이터의 에러를 감지한다. 만약 감지된 에러가 수정가능하면, ECC회로는 데이터를 수정한다.
CPU는 호스트 인터페이스 또는 메모리 인터페이스를 통해서 외부 호스트 또는 메모리(3010)을 제어한다. CPU는 메모리를 구동하는 펌웨어에 따라서, 라이트, 리드, 이레이즈 동작을 제어할 수 있다.
버퍼 메모리는 외부 소스트로부터 제공된 라이트 데이터 또는 메모리(3010)로부터 리드된 데이터를 일시적으로 저장한다. 또한, 버퍼 메모리는 메모리(3010)에 저장될 메타 데이터 또는 캐쉬 데이터를 저장할 수 있다. 갑작스런 파워 오프 동작 중에, 버퍼 메모리에 저장되어 있는 메타 데이터 또는 캐쉬 데이터는 메모리(3010)에 저장될 수 있다. 버퍼 데이터는 DRAM 또는 SRAM 일 수 있다.
도 22은 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 다른 예시적 블록도이다. 도 20의 메모리 시스템과 실질적으로 동일하다. 다른 점은, 메모리(3010), 메모리 컨트롤러(3020)은 카드(3130)에 임베디드된다는 점이다. 예를 들어, 카드(3130)은 플래쉬 메모리 카드일 수 있다. 즉, 카드(3130)는 디지털 카메라, 퍼스널 컴퓨터 등과 같은 소비자 전자 기기에 사용되는 스탠다드 제품일 수 있다. 메모리 컨트롤러(3020)는 다른 장치(외부 장치)로부터 제공된 제어 신호에 따라서 메모리(3010)를 제어할 수 있다.
도 23는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 또 다른 예시적 블록도이다. 도시된 것과 같이, 메모리(3010)은 호스트 시스템(3210)에 커플링될 수 있다. 호스트 시스템(3210)는 퍼스널 컴퓨터, 디지털 카메라 등과 같은 프로세싱 시스템일 수 있다. 호스트 시스템(3210)은 지울 수 있는 저장 장치로서 메모리(3010)을 사용할 수 있다. 전술한 것과 같이, 호스트 시스템(3210)은 메모리(3010)를 제어하기 위해 입력 신호를 제공할 수 있다. 예를 들어, 호스트 시스템(3210)은 커맨드(CMD)와 어드레스 신호를 제공할 수 있다.
도 24는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 또 다른 예시적 블록도이다. 호스트 시스템(3210)과 카드(3130)이 커플링된다. 호스트 시스템(3210)이 제어 신호를 카드(3130)에 제공하여, 메모리 컨트롤러(3020)가 메모리(3010)을 제어하도록 한다.
도 25는 본 발명의 실시예들에 따른 비휘발성 메모리 장치가 사용되는 메모리 시스템의 또 다른 예시적 블록도이다. 메모리(3010)는 컴퓨터 시스템(3410) 내의 CPU(3120)에 저장된다. 예를 들어, 컴퓨터 시스템(3410)는 퍼스널 컴퓨터, PDA 등일 수 있다. 메모리(3010)는 버스 등을 통해서 CPU(3120)과 직접 연결될 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 장치는 SCM(storage class memory)으로 사용될 수 있다. SCM은 비휘발성 특성과 억세스 특성을 동시에 지닌 일반적 메모리 컨셉을 의미한다. SCM은 데이터 저장 영역 및 프로그램 동작 영역으로 사용될 수 있다.
전술한 PRAM, RRAM, MRAM 등의 저항체를 이용한 비휘발성 메모리 장치는 SCM으로 사용될 수 있다. 이러한 SCM은 플래쉬 메모리를 대신하여 데이터 저장 메모리로 사용될 수도 있고, SRAM을 대신하여 메인 메모리로 사용될 수 있다. 하나의 SCM은 플래쉬 메모리와 SRAM을 대체할 수 있다.
도 26은 SCM이 사용된 메모리 시스템을 도시한 예시적 블록도이다. 메모리 시스템(4100)은 CPU(4110), SDRAM(4120), 플래시 메모리를 대신하여 사용된 SCM(4130)을 포함한다.
메모리 시스템(4100)에서, SCM(4130)의 데이터 억세스 스피드는 플래시 메모리의 스피드보다 빠르다. 예를 들어, PC 환경에서, CPU(4110)은 4GHz로 동작할 때, SCM의 일종인 PRAM의 억세스 속도는 플래시의 억세스 속도보다 약 32배 빠르다. 따라서, 메모리 시스템(4100)은 플래쉬 메모리를 장착한 메모리 시스템보다 더 빠른 스피드 억세스 이득(higher-speed access gain)을 얻을 수 있다.
도 27은 SCM이 사용된 메모리 시스템을 도시한 다른 예시적 블록도이다. 메모리 시스템(4200)은 CPU(4210), SDRAM을 대신하여 사용된 SCM(4220), 플래쉬 메모리(4230)을 포함한다.
메모리 시스템(4200)에서, SCM(4220)의 파워 사용은 SDRAM의 파워 사용보다 작다. 컴퓨터 시스템의 메인 메모리에 의해 사용된 에너지는, 전체 시스템에서 사용되는 에너지의 약 40% 정도이다. 그러므로, 많은 사람들이 메인 메모리에서 사용되는 에너지를 줄이기 위한 노력한다. SCM은 동적 에너지 사용을 평균적으로 약 53% 절감할 수 있고, 전력 누수로 인한 에너지 사용을 평균적으로 약 73% 절감할 수 있다. 그 결과, 메모리 시스템(4200)은 SDRAM을 장착한 메모리 시스템보다 에너지를 절감할 수 있다.
도 28은 SCM이 사용된 메모리 시스템을 도시한 다른 예시적 블록도이다. 메모리 시스템(4300)은 CPU(4310), SDRAM 및 플래쉬 메모리를 대신하여 사용된 SCM(4320)을 포함한다. SCM(4320)은 SDRAM 대신 메인 메모리로 사용되고, 플래쉬 메모리 대신 데이터 저장 메모리로 사용된다. 이러한 메모리 시스템(4300)은 데이터 억세스 스피드, 로우 파워, 스페이스 활용, 비용 등에서 장점이 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
110: 메모리 셀 어레이
120: 어드레스 디코더
130: 라이트 및 베리파이 드라이버
140: 라이트 버퍼
160: 입출력 버퍼
170: 제어 로직

Claims (27)

  1. 기결정된 전류를 기초로, 제 1 라이트 드라이버들을 선택하고,
    상기 제 1 라이트 드라이버에 대응되는 저항성 메모리 셀들을 제 1 프로그램하고,
    상기 메모리 셀들의 프로그램의 패스 또는 페일을 확인하고, 페일된 메모리 셀들의 정보를 소팅(sorting)하고,
    상기 소팅된 메모리 셀들의 어드레스에 대응되고, 상기 기결정된 전류를 기초로 제 2 라이트 드라이버들을 선택하고,
    상기 제 2 라이트 드라이버들에 대응되는 저항성 메모리 셀들을 제 2 프로그램하는 것을 포함하고,
    상기 제 1 라이트 드라이버들 선택 시에, 상기 제 1 프로그램시 인가하는 전류 값을 참조하고,
    상기 제 2 라이트 드라이버들을 선택시에, 상기 제 2 프로그램시 인가하는 전류 값을 참조하고,
    만일 상기 제 1 프로그램시 인가하는 전류 값과 상기 제2 프로그램시 인가하는 전류 값이 서로 동일한 경우 상기 제 1 라이트 드라이버의 개수와 상기 제 2 라이트 드라이버의 개수는 서로 동일하고,
    만일 상기 제 1 프로그램시 인가하는 전류 값과 상기 제2 프로그램시 인가하는 전류 값이 서로 다른 경우 상기 제 1 라이트 드라이버의 개수와 상기 제 2 라이트 드라이버의 개수는 서로 다른 저항성 메모리 장치의 구동 방법.
  2. 제1항에 있어서,
    상기 제 1 프로그램 및 제 2 프로그램에서, 동일한 로직 상태의 데이터가 프로그램되는 저항성 메모리 장치의 구동 방법.
  3. 제1항에 있어서,
    상기 기결정된 전류는, 상기 저항성 메모리 장치의 제조시에 결정된 최대 구동 전류인 저항성 메모리 장치의 구동 방법.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    상기 소팅된 어드레스는 라이트 버퍼의 레지스터에 저장되는 저항성 메모리 장치의 구동 방법.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    상기 소팅된 어드레스는 컬럼 및 로우 어드레스인 저항성 메모리 장치의 구동 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 멀티 레벨 스테이트 중 제 1 로직 스테이트에 대응되는 저항성 메모리 셀들을 선택하고,
    상기 선택된 저항성 메모리 셀들 중에, 기설정된 전류로 구동 가능한 제 1 라이트 드라이버들을 선택하고,
    상기 선택된 제 1 라이트 드라이버들을 이용하여 상기 저항성 메모리 셀들을 상기 제 1 로직 스테이트로 프로그램한 후, 베리파이하여, 프로그램이 페일된 저항성 메모리 셀들의 어드레스를 소팅(sorting)하고,
    상기 프로그램이 페일된 저항성 메모리 셀들 중에서 적어도 일부를, 상기 기설정된 전류로 구동가능한 제 2 라이트 드라이버들을 선택하여 상기 제1 로직 스테이트로 다시 프로그램하는 것을 포함하되,
    만일 상기 제1 라이트 드라이버들을 이용하여 상기 저항성 메모리 셀들을 상기 제 1 로직 스테이트로 프로그램시 인가하는 전류 값과, 상기 제2 라이트 드라이버들을 이용하여 상기 프로그램이 페일된 저항성 메모리 셀들 중 적어도 일부를 상기 제1 로직 스테이트로 다시 프로그램시 인가하는 전류 값이 서로 동일한 경우, 상기 선택된 제 1 라이트 드라이버의 개수와 상기 선택된 제 2 라이트 드라이버의 개수는 서로 동일하고,
    만일 상기 제1 라이트 드라이버들을 이용하여 상기 저항성 메모리 셀들을 상기 제 1 로직 스테이트로 프로그램시 인가하는 전류 값과, 상기 제2 라이트 드라이버들을 이용하여 상기 프로그램이 페일된 저항성 메모리 셀들 중 적어도 일부를 상기 제1 로직 스테이트로 다시 프로그램시 인가하는 전류 값이 서로 다른 경우, 상기 선택된 제 1 라이트 드라이버의 개수와 상기 선택된 제 2 라이트 드라이버의 개수는 서로 다른 저항성 메모리 장치의 구동 방법.
  15. 제 14항에 있어서,
    상기 선택된 제 1 라이트 드라이버들과 상기 선택된 제 2 라이트 드라이버들은 적어도 하나의 동일한 라이트 드라이버를 포함하는 저항성 메모리 장치의 구동 방법.
  16. 제 14항에 있어서,
    상기 제 2 라이트 드라이버들을 선택할 때, 상기 제 2 라이트 드라이버가 ISPP(increment step pulse program)를 사용하는 경우, 제 2 라이트 드라이버들의 개수는 상기 제 1 라이트 드라이버 개수들보다 적은 저항성 메모리 장치의 구동 방법.
  17. 제 14항에 있어서,
    상기 제 2 라이트 드라이버들을 선택할 때, 상기 제 2 라이트 드라이버가 DSPP(decrement step pulse program)를 사용하는 경우, 제 2 라이트 드라이버들의 개수는 상기 제 1 라이트 드라이버 개수들보다 많은 저항성 메모리 장치의 구동 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제 14항에 있어서,
    상기 제 2 라이트 드라이버 선택시에, 상기 제 1 로직 스테이트에 대응되는 메모리 셀들을 확인하고, 확인된 셀들을 고려하여 상기 제2 라이트 드라이버를 선택하는 것을 더 포함하는 저항성 메모리 장치의 구동 방법.
  19. 제 14항에 있어서,
    상기 제 1 로직 스테이트에 대응되는 저항성 메모리 셀들이 모두 베리파이시에 패스가 되면, 제 2 로직 스테이트에 대응되는 저항성 메모리 셀들을 선택하고, 상기 선택된 메모리 셀들에 대응되고, 기설정된 전압으로 구동가능한 제 2 라이트 드라이버들을 선택하며, 상기 제 1 라이트 드라이버에 대응되는 메모리 셀들을 상기 제 2 로직 스테이트로 프로그램하고, 베리파이하여, 페일된 메모리 셀들의 어드레스를 소팅(sorting)하는 것을 더 포함하는 저항성 메모리 장치의 구동 방법.
  20. 연속된 제1 및 제2 프로그램 루프를 포함하는 프로그램 구간을 이용한 저항성 메모리 장치의 구동 방법에 있어서,
    상기 제 1 프로그램 루프에서, 선택된 다수의 제 1 라이트 드라이버는 다수의 저항성 메모리 셀을 프로그램하고,
    상기 제 2 프로그램 루프에서, 선택된 다수의 제 2 라이트 드라이버는 다수의 저항성 메모리 셀을 프로그램하며,
    상기 선택된 다수의 제1 라이트 드라이버와 상기 선택된 다수의 제2 라이트 드라이버는 적어도 하나의 동일한 라이트 드라이버를 포함하되,
    만일 상기 제 1 프로그램 루프에서 인가하는 전류 값과 상기 제2 프로그램 루프에서 인가하는 전류 값이 서로 동일한 경우 상기 선택된 제 1 라이트 드라이버의 개수와 상기 선택된 제 2 라이트 드라이버의 개수는 서로 동일하고,
    만일 상기 제 1 프로그램 루프에서 인가하는 전류 값과 상기 제2 프로그램 루프에서 인가하는 전류 값이 서로 다른 경우 상기 선택된 제 1 라이트 드라이버의 개수와 상기 선택된 제 2 라이트 드라이버의 개수는 서로 다른 저항성 메모리 장치의 구동 방법.
  21. ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20 항에 있어서,
    상기 제 1 프로그램 루프와 상기 제 2 프로그램 루프에서, 동일한 로직 스테이트의 데이터가 프로그램되는 저항성 메모리 장치의 구동 방법.
  22. ◈청구항 22은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20 항에 있어서,
    상기 각 프로그램 루프는, 상기 프로그램의 결과를 베리파이하는 것을 더 포함하는 저항성 메모리 장치의 구동 방법.
  23. ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈
    제 22항에 있어서,
    상기 제2 프로그램 루프에서 선택된 다수의 제2 라이트 드라이버는, 기결정된 최대 구동 전류를 기초로 선택되는 저항성 메모리 장치의 구동 방법.
  24. 제 20항에 있어서,
    상기 제1 프로그램 루프에서 사용되는 상기 다수의 제1 라이트 드라이버의 총 프로그램 전류는, 상기 제2 프로그램 루프에서 사용되는 상기 다수의 제2 라이트 드라이버의 총 프로그램 전류와 동일한 저항성 메모리 장치의 구동 방법.
  25. 삭제
  26. 삭제
  27. 삭제
KR1020120148367A 2012-12-18 2012-12-18 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치 KR102154296B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120148367A KR102154296B1 (ko) 2012-12-18 2012-12-18 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치
US14/083,470 US9208874B2 (en) 2012-12-18 2013-11-19 Nonvolatile memory device having variable resistive elements and method of driving the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120148367A KR102154296B1 (ko) 2012-12-18 2012-12-18 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치

Publications (2)

Publication Number Publication Date
KR20140078980A KR20140078980A (ko) 2014-06-26
KR102154296B1 true KR102154296B1 (ko) 2020-09-14

Family

ID=50930705

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120148367A KR102154296B1 (ko) 2012-12-18 2012-12-18 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치

Country Status (2)

Country Link
US (1) US9208874B2 (ko)
KR (1) KR102154296B1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105378849B (zh) * 2013-07-17 2018-04-10 松下知识产权经营株式会社 非易失性半导体存储装置及其改写方法
US9269432B2 (en) * 2014-01-09 2016-02-23 Micron Technology, Inc. Memory systems and memory programming methods
KR102126760B1 (ko) * 2014-04-07 2020-06-25 삼성전자 주식회사 비휘발성 메모리 장치의 구동 방법
KR102231945B1 (ko) * 2014-08-22 2021-03-25 삼성전자주식회사 커플링 노이즈가 감소된 비휘발성 메모리 장치 및 그 구동 방법
KR102217243B1 (ko) 2014-10-28 2021-02-18 삼성전자주식회사 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법
KR102347180B1 (ko) * 2015-07-31 2022-01-04 삼성전자주식회사 저항성 메모리 장치
US10453511B2 (en) * 2016-02-25 2019-10-22 Agency For Science, Technology And Research Circuit arrangement, method of forming and operating the same
US9767909B1 (en) 2016-03-17 2017-09-19 Micron Technology, Inc. Memory cell programming utilizing conditional enabling of memory cells
KR20180032391A (ko) * 2016-09-22 2018-03-30 에스케이하이닉스 주식회사 반도체 메모리 장치
US9899083B1 (en) * 2016-11-01 2018-02-20 Arm Ltd. Method, system and device for non-volatile memory device operation with low power high speed and high density
US9959928B1 (en) 2016-12-13 2018-05-01 Macronix International Co., Ltd. Iterative method and apparatus to program a programmable resistance memory element using stabilizing pulses
US9947403B1 (en) 2017-03-27 2018-04-17 Macronix International Co., Ltd. Method for operating non-volatile memory device and applications thereof
US10546638B2 (en) 2017-09-28 2020-01-28 Taiwan Semiconductor Manufacturing Co., Ltd. Resistive random access memory device
KR20190130869A (ko) 2018-05-15 2019-11-25 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
KR102641097B1 (ko) * 2018-12-31 2024-02-27 삼성전자주식회사 저항성 메모리 장치 및 저항성 메모리 장치의 프로그램 방법
IT201900019976A1 (it) * 2019-10-29 2021-04-29 St Microelectronics Srl Metodo di programmazione di un dispositivo di memoria a cambiamento di fase di tipo differenziale, dispositivo di memoria a cambiamento di fase, e sistema elettronico
US11094379B1 (en) 2020-03-31 2021-08-17 Micron Technology, Inc. Memory cell programming
CN111727477A (zh) * 2020-05-06 2020-09-29 长江存储科技有限责任公司 3d nand闪存的控制方法和控制器
KR20220030125A (ko) * 2020-09-02 2022-03-10 에스케이하이닉스 주식회사 메모리 셀 및 메모리 셀의 동작 방법
KR20230012638A (ko) * 2020-09-24 2023-01-26 양쯔 메모리 테크놀로지스 씨오., 엘티디. Nand 메모리 프로그래밍 아키텍처 및 방법
US11942165B2 (en) 2020-09-24 2024-03-26 Yangtze Memory Technologies Co., Ltd. Architecture and method for NAND memory programming

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100587702B1 (ko) 2004-07-09 2006-06-08 삼성전자주식회사 피크 전류의 감소 특성을 갖는 상변화 메모리 장치 및그에 따른 데이터 라이팅 방법
KR100809333B1 (ko) 2006-09-04 2008-03-05 삼성전자주식회사 상변화 메모리 장치의 기입 검증 방법 및 그 방법을사용하는 상변화 메모리 장치
KR100819106B1 (ko) 2006-09-27 2008-04-02 삼성전자주식회사 상변화 메모리 장치에서의 라이트 동작방법
JP5253784B2 (ja) * 2007-10-17 2013-07-31 株式会社東芝 不揮発性半導体記憶装置
KR101552209B1 (ko) 2008-10-17 2015-09-11 삼성전자주식회사 멀티 비트를 프로그램하는 가변 저항 메모리 장치
KR101448915B1 (ko) 2008-10-17 2014-10-14 삼성전자주식회사 프로그램 및 검증 동작을 수행하는 가변 저항 메모리 장치
US8397024B2 (en) 2008-10-25 2013-03-12 Sandisk 3D Llc Page buffer program command and methods to reprogram pages without re-inputting data to a memory device
JP2010182373A (ja) 2009-02-05 2010-08-19 Sony Corp 不揮発性半導体メモリデバイスと、そのベリファイ書き込み方法
JP5039079B2 (ja) 2009-03-23 2012-10-03 株式会社東芝 不揮発性半導体記憶装置
US8582353B2 (en) 2009-12-30 2013-11-12 Hynix Semiconductor Inc. Nonvolatile memory device
US8880778B2 (en) 2010-05-13 2014-11-04 Micron Technology, Inc. Memory buffer having accessible information after a program-fail
US8503233B2 (en) * 2010-07-07 2013-08-06 Skymedi Corporation Method of twice programming a non-volatile flash memory with a sequence
US8305807B2 (en) * 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8775901B2 (en) * 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US9165683B2 (en) * 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection

Also Published As

Publication number Publication date
US9208874B2 (en) 2015-12-08
KR20140078980A (ko) 2014-06-26
US20140169068A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
KR102154296B1 (ko) 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치
US10741245B2 (en) Resistive memory device and resistive memory system including a plurality of layers, and method of operating the system
US9472275B2 (en) Method of operating memory device using different read conditions
KR102005226B1 (ko) 저항체를 이용한 비휘발성 메모리 장치 및 그 구동 방법
US10770138B2 (en) Method of operating resistive memory device reducing read disturbance
JP5837916B2 (ja) 抵抗体を利用する不揮発性メモリ装置及びその駆動方法
US8988929B2 (en) Nonvolatile memory device and related operating method
US9443586B2 (en) Nonvolatile memory device, memory system including the same and method for driving nonvolatile memory device
US8995203B2 (en) Non-volatile memory device, driving method of memory controller controlling the non-volatile memory device and memory system including the memory controller and the non-volatile memory device
US8254158B2 (en) Semiconductor device having resistance based memory array and method of operation associated therewith
KR102081590B1 (ko) 저항체를 이용한 비휘발성 메모리 장치 및 그 구동 방법
KR102055375B1 (ko) 저항체를 이용한 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템
US10074426B2 (en) Memory device having resistance change material and operating method for the memory device
KR102030326B1 (ko) 비휘발성 메모리 장치 및 그 구동 방법
KR20110120013A (ko) 저항체를 이용한 비휘발성 메모리 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant