KR101218605B1 - 반도체 메모리 장치 - Google Patents

반도체 메모리 장치 Download PDF

Info

Publication number
KR101218605B1
KR101218605B1 KR1020100095648A KR20100095648A KR101218605B1 KR 101218605 B1 KR101218605 B1 KR 101218605B1 KR 1020100095648 A KR1020100095648 A KR 1020100095648A KR 20100095648 A KR20100095648 A KR 20100095648A KR 101218605 B1 KR101218605 B1 KR 101218605B1
Authority
KR
South Korea
Prior art keywords
code
signal
counting
clock
programming
Prior art date
Application number
KR1020100095648A
Other languages
English (en)
Other versions
KR20120033899A (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 KR1020100095648A priority Critical patent/KR101218605B1/ko
Priority to US12/982,972 priority patent/US8374023B2/en
Priority to TW100101766A priority patent/TWI514383B/zh
Priority to JP2011007857A priority patent/JP2012079394A/ja
Publication of KR20120033899A publication Critical patent/KR20120033899A/ko
Application granted granted Critical
Publication of KR101218605B1 publication Critical patent/KR101218605B1/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/0038Power supply 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/0061Timing 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
    • 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
    • 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
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
    • 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/0092Write characterized by the shape, e.g. form, length, amplitude of the write pulse

Landscapes

  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Semiconductor Memories (AREA)
  • Dram (AREA)
  • Read Only Memory (AREA)

Abstract

반도체 메모리 장치는 프로그래밍 검증 플래그 신호 및 프로그래밍 인에이블 신호에 응답하여 복수의 구간동안 각 구간마다 서로 다른 주기로 업데이트 되는 제1 쓰기제어코드를 생성함에 있어서, 반복횟수 설정코드의 코드값에 따라 복수의 구간의 구간 수를 결정하고, 초기설정코드의 코드값에 따라 복수의 구간 중 최초 구간의 제1 쓰기제어코드의 업데이트 주기를 결정하는 제1 쓰기제어코드 발생부와, 업데이트 되는 상기 제1 쓰기제어코드의 코드조합에 대응하는 크기를 갖는 제1 프로그래밍 전류펄스를 출력하는 데이터 쓰기부를 구비한다.

Description

반도체 메모리 장치{SEMICONDUCTOR MEMORY APPARATUS}
본 발명은 반도체 메모리 장치에 관한 것으로서, 프로그래밍 전류펄스를 생성하는 기술에 관한 것이다.
상변화 메모리 장치(Phase Change Radom Access Memory, PCRAM)는 프로그래밍 전류펄스를 통해서 메모리 셀을 프로그래밍 하는 비휘발성 메모리(Non-Volatile Memory) 장치이다.
상변화 메모리 장치(PCRAM)는 비휘발성 메모리(Non-Volatile Memory)라는 특징을 가지면서도 랜덤 액세스가 가능하며 낮은 비용으로 고집적화가 가능하다. 상변화 메모리 장치(PCRAM)는 상변화 물질을 이용하여 데이터를 저장하게 되는데, 온도조건에 따른 상변화 물질의 상변화(Phase Change), 즉 상변화에 따른 저항값 변화를 이용하여 데이터를 저장한다.
상변화 물질은 온도조건에 따라 비정질 상태(Amorphous State) 또는 결정 상태(Crystalline State)로 전환될 수 있는 물질을 이용한다. 대표적인 상변화 물질은 칼코게나이드계 합금(Chalcogenide alloy)을 들 수 있는데, 게르마늄(Germanium, Ge), 안티몬(Antimony, Sb), 텔루륨(Tellurium, Te)를 이용한 Ge2Sb2Te5(GST)가 대표적이므로 일반적으로 상변화 물질을 'GST'라고 기술한다.
상변화 메모리 장치(PCRAM)는 상변화 물질(GST)에 대한 특정조건의 전류 또는 전압 인가에 의해 발생하는 주울열(Joule heating)을 이용하여, 상변화 물질(GST)의 결정 상태(Crystalline State)와 비정질 상태(Amorphous State)간의 가역적인 상변화를 발생시키게 된다. 일반적으로 결정 상태(Crystalline State)를 회로적으로 셋 상태(Set State)라고 기술하며, 셋 상태(Set State)에서 상변화 물질(GST)은 낮은 저항값을 갖는 금속과 같은 전기적인 특징을 가지게 된다. 또한, 비정질 상태(Amorphous State)를 회로적으로 리셋 상태(Reset State)라고 기술하며, 리셋 상태(Reset State)에서 상변화 물질(GST)은 셋 상태(Set State)보다 큰 저항값을 가지게 된다. 즉, 상변화 메모리 장치는 결정 상태(Crystalline State)와 비정질 상태(Amorphous State)간의 저항값 변화를 통해서 데이터를 저장하며, 상변화 물질(GST)에 흐르는 전류 또는 전류의 변화에 따른 전압변화를 감지하여 저장된 데이터를 판별하게 된다. 일반적으로 셋 상태(Set State)를 '0', 리셋 상태(Reset State)를 '1'의 논리레벨을 가진다고 정의하며, 상변화 물질(GST)은 전원이 차단되어도 그 상태를 계속해서 유지한다.
한편, 상변화 물질(GST)의 비정질 상태(Amorphous State)와 결정 상태(Crystalline State)는 프로그래밍 전류펄스에 의해서 서로 전환될 수 있는데, 셋 프로그래밍 전류펄스는 메모리 셀의 상변화 물질(GST)을 셋 상태(Set State)로 만들기 위한 프로그래밍 전류이며, 리셋 프로그래밍 전류펄스는 메모리 셀의 상변화 물질(GST)을 리셋 상태(Reset State)로 만들기 위한 프로그래밍 전류펄스로 정의된다.
상변화 물질(GST)은 리셋 프로그래밍 전류펄스의 공급에 의해 일정시간동안 용융화 온도보다 높은 온도로 가열된 뒤 급속히 냉각되면서 비정질 상태(Amorphous State)로 전환된다. 또한, 상변화 물질(GST)은 셋 프로그래밍 전류펄스의 공급에 의해 일정시간동안 결정화 온도보다 높고 용융화 온도보다 낮은 온도에서 가열된 뒤 서서히 냉각되면서 결정 상태(Crystalline State)로 전환된다. 한편, 상변화 물질(GST)의 비정질 양(Amorphous volume) 또는 결정 양(Crystalline volume)에 따라 저항값을 차등화 시킬 수 있으므로, 이를 이용하여 멀티 레벨(Multi Level) 형태의 메모리 셀을 구성할 수도 있을 것이다. 일반적으로 리셋 프로그래밍 전류펄스는 셋 프로그래밍 전류펄스에 비해 짧은 시간동안 큰 전류를 흘려주게 되며, 셋 프로그래밍 전류펄스는 리셋 프로그래밍 전류펄스에 비해 긴 시간동안 작은 전류를 흘려주게 된다. 즉 프로그래밍 전류펄스의 공급으로 인해서 발생하는 특정조건의 주울열(Joule heating)에 의해서 상변화 물질(GST)의 상태를 변화시키게 된다.
도 1은 일반적인 상변화 메모리 장치의 메모리 셀을 나타낸 도면이다.
도 1을 참조하면, 메모리 셀(MEMORY CELL)은 셀 다이오드(D1)와, 상변화 소자(GST)로 구성된다.
상기와 같이 구성되는 상변화 메모리 장치의 기본적인 동작을 설명하면 다음과 같다.
우선, 상변화 소자(GST)에 데이터를 프로그래밍 하기 위한 동작은 다음과 같이 이루어진다.
워드라인(WL)이 로우레벨 - 접지전압 - 로 활성화 되고 비트라인(BL)을 통해서 일정한 전압이 인가되기 시작하면 셀 다이오드(D1)가 포워드(Forward) 바이어스 상태가 되므로 셀 다이오드(D1)의 애노드(Anode)와 캐소드(Cathode) 사이의 전압차이가 임계전압보다 커질 때부터 셀 다이오드(D1)가 턴온(TURN ON) 된다. 이때 비트라인(BL),상변화 소자(GST) 및 워드라인(WL) 사이에 전류경로가 생기게 된다. 따라서 비트라인(BL)을 통해서 상변화 소자(GST)에 데이터에 대응하는 프로그래밍 전류펄스를 공급함으로서, 상변화 소자(GST)를 결정 상태(Crystalline State) 또는 비정질 상태(Amorphous State)로 변화시키게 된다. 일반적으로 프로그래밍 하기 위한 데이터가 '1'의 논리레벨을 가지면 리셋 프로그래밍 전류펄스를 공급하여 상변화 소자(GST)를 리셋 상태(Reset State)로 전환시키게 되고, 데이터가 '0'의 논리레벨을 가지면 셋 프로그래밍 전류펄스를 공급하여 상변화 소자(GST)를 셋 상태(Set State)로 전환시키게 된다. 비정질 상태(Amorphous State)인 리셋 상태는 결정 상태(Crystalline State)인 셋 상태보다 큰 저항값을 가진다.
또한, 상변화 소자(GST)에 프로그래밍 된 데이터를 검출하기 위한 동작은 다음과 같이 이루어진다.
워드라인(WL)이 로우레벨 - 접지전압 - 로 활성화 되고 비트라인(BL)을 통해서 일정한 전압이 인가되기 시작하면 셀 다이오드(D1)가 포워드(Forward) 바이어스 상태가 되므로 셀 다이오드(D1)의 애노드(Anode)와 캐소드(Cathode) 사이의 전압차이가 임계전압보다 커질 때부터 셀 다이오드(D1)가 턴온(TURN ON) 된다. 이때 비트라인, 상변화 소자(GST) 및 워드라인(WL) 사이에 전류경로가 생기게 된다. 따라서 비트라인(BL)을 통해서 상변화 소자(GST)에 일정한 전압 또는 일정한 전류를 인가하게 되면, 상변화 소자(GST)의 저항값에 따라 흐르는 전류의 양이 다르거나, 상변화 소자(GST)의 전압강하 크기가 다르므로 이를 이용하여 상변화 소자(GST)에 저장된 데이터를 판별하게 된다. 즉, 상변화 소자(GST)의 상태를 판별하게 된다.
도 2는 종래기술의 상변화 메모리 장치의 데이터 쓰기부에 대한 구성도이다.
도 2를 참조하면, 데이터 쓰기부는 전류 조절부(10)와, 전류 구동부(20)와, 선택부(30)로 구성된다.
전류 조절부(10)는 쓰기 인에이블 신호(WDEN)가 활성화 되었을 때, 셋 제어신호(SETP) 및 리셋 제어신호(RESETP)에 응답하여 제어노드(N1)의 전압레벨을 조절한다. 이때, 셋 제어신호(SETP)의 제어를 받는 NMOS 트랜지스터(MN1)와 리셋 제어신호(RESETP)의 제어를 받는 NMOS 트랜지스터(MN2)의 전류 구동력은 서로 다르게 설계된다. 또한, 셋 제어신호(SETP) 및 리셋 제어신호(RESETP)는 펄스형태로 입력된다.
전류 구동부(20)는 제어노드(N1)의 전압레벨에 대응하는 크기를 갖는 프로그래밍 전류펄스(I_PGM)를 출력단(N2)으로 구동한다. 프로그래밍 전류펄스(I_PGM)는 셋 제어신호(SETP)에 대응하는 셋 프로그래밍 전류펄스와, 리셋 제어신호(RESETP)에 대응하는 리셋 프로그래밍 전류펄스로 구분할 수 있을 것이다.
선택부(30)는 전류 구동부(20)에서 구동되는 프로그래밍 전류펄스(I_PGM)를 복수의 선택신호(YSW<0:3>)에 대응하는 해당 비트라인(BL0~BL3)으로 출력한다.
도 3은 도 2의 데이터 쓰기부에서 출력되는 프로그래밍 전류펄스를 나타낸 도면이다.
도 3을 참조하면, 리셋 프로그래밍 전류펄스는 짧은 시간동안 용융화 온도 보다 높은 형태로 구동되며, 셋 프로그래밍 전류펄스는 리셋 프로그래밍 전류펄스에 비해 긴 시간동안 용융화 온도 보다 낮은 형태로 구동되는 것을 확인할 수 있다. 참고적으로 도면에서 리셋 프로그래밍 전류펄스는 비정질화 펄스(Amorphizing pulse)로 도시되어 있으며, 셋 프로그래밍 전류펄스는 결정화 펄스(Crystallizing pulse)로 도시되어 있다. 일반적으로 리셋 프로그래밍 전류펄스의 전류 크기가 클수록 상변화 메모리 셀의 저항값은 증가한다. 또한, 셋 프로그래밍 전류펄스의 공급시간이 길어질수록 상변화 메모리 셀의 저항값은 점점 감소하게 된다.
한편, 반도체 메모리 장치에는 많은 수의 상변화 메모리 셀이 구비되는데, 공정상의 변수로 인하여 각각의 상변화 메모리 셀의 프로그래밍 특성이 다르다. 즉, 동일한 크기 및 시간의 프로그래밍 전류펄스를 인가하더라도 서로 다른 특성으로 인하여 상변화 메모리 셀은 각각 다른 저항값으로 프로그래밍 된다. 따라서 프로그래밍 특성의 차이가 있는 복수의 상변화 메모리 셀을 안정적으로 프로그래밍 할 수 있는 기술이 요구되고 있다.
본 발명은 프로그래밍 전류펄스의 공급시간을 조절할 수 있는 반도체 메모리 장치를 제공한다.
또한, 본 발명은 프로그래밍 전류펄스가 공급되는 형태를 조절할 수 있는 반도체 메모리 장치를 제공한다.
또한, 본 발명은 서로 다른 프로그래밍 특성을 갖는 복수의 메모리 셀을 안정적으로 프로그래밍 할 수 있는 반도체 메모리 장치를 제공한다.
또한, 본 발명은 프로그래밍 전류펄스가 반복적으로 공급되는 구간의 수를 조절할 수 있는 반도체 메모리 장치를 제공한다.
본 발명의 일 실시예에 따르면, 프로그래밍 검증 플래그 신호 및 프로그래밍 인에이블 신호에 응답하여 복수의 구간동안 각 구간마다 서로 다른 주기로 업데이트 되는 제1 쓰기제어코드를 생성함에 있어서, 반복횟수 설정코드의 코드값에 따라 상기 복수의 구간의 구간 수를 결정하고, 초기설정코드의 코드값에 따라 상기 복수의 구간 중 최초 구간의 상기 제1 쓰기제어코드의 업데이트 주기를 결정하는 제1 쓰기제어코드 발생부; 및 업데이트 되는 상기 제1 쓰기제어코드에 대응하는 크기를 갖는 제1 프로그래밍 전류펄스를 출력하는 데이터 쓰기부;를 포함하는 반도체 메모리 장치가 제공된다.
또한, 본 발명의 다른 실시예에 따르면, 프로그래밍 인에이블 신호에 응답하여 제1 설정시간 이후에 활성화 되는 구간제어신호를 생성하는 구간제어신호 발생부; 프로그래밍 검증 플래그 신호 및 상기 프로그래밍 인에이블 신호에 응답하여 복수의 구간동안 각 구간마다 서로 다른 주기로 업데이트 되는 제1 쓰기제어코드를 생성함에 있어서, 각 구간마다 상기 구간제어신호에 응답하여 상기 제1 쓰기제어코드의 업데이트를 활성화 시키며, 반복횟수 설정코드의 코드값에 따라 상기 복수의 구간의 구간 수를 결정하고, 초기설정코드의 코드값에 따라 상기 복수의 구간 중 최초 구간의 상기 제1 쓰기제어코드의 업데이트 주기를 결정하는 제1 쓰기제어코드 발생부; 상기 프로그래밍 인에이블 신호에 응답하여 예정된 시간 동안 활성화 되는 제2 쓰기제어코드를 생성하는 제2 쓰기제어코드 발생부; 및 업데이트 되는 상기 제1 쓰기제어코드에 대응하는 크기를 갖는 제1 프로그래밍 전류펄스를 출력하거나, 상기 제2 쓰기제어코드에 대응하는 크기를 갖는 제2 프로그래밍 전류펄스를 출력하는 데이터 쓰기부;를 포함하는 반도체 메모리 장치가 제공된다.
또한, 본 발명의 또 다른 실시예에 따르면, 예정된 시간 이후에 활성화 되는 구간제어신호 및 리셋 펄스신호에 응답하여 카운트 인에이블 신호 및 클럭 인에이블 신호를 출력하는 입력 래치부; 프로그래밍 검증 플래그 신호 및 상기 리셋 펄스신호에 응답하여 코드값이 업데이트 되는 주기설정코드 및 반복종료신호를 출력함에 있어서, 초기설정코드의 코드값에 따라 상기 주기설정코드의 최초 코드값을 결정하고 반복횟수 설정코드의 코드값에 따라 상기 주기설정코드의 업데이트 횟수를 결정하는 클럭발생 제어부; 상기 클럭 인에이블 신호 및 상기 반복종료신호에 응답하여 카운팅 클럭신호를 생성함에 있어서, 상기 주기설정코드의 코드값에 따라 상기 카운팅 클럭신호의 토글링 주기를 조절하는 카운팅 클럭 발생부; 프로그래밍 인에이블 신호, 상기 카운트 인에이블 신호 및 상기 카운팅 클럭신호의 제어에 따라 카운팅 되는 카운팅 코드를 생성하여 쓰기제어코드로서 출력하는 쓰기제어코드 카운터부; 상기 카운팅 코드가 소정의 값에 도달하면 상기 리셋 펄스신호를 생성하는 리셋펄스 발생부; 및 업데이트 되는 상기 쓰기제어코드에 대응하는 크기를 갖는 프로그래밍 전류펄스를 출력하는 데이터 쓰기부;를 포함하는 반도체 메모리 장치가 제공된다.
도 1은 일반적인 상변화 메모리 장치의 메모리 셀을 나타낸 도면이다.
도 2는 종래기술의 상변화 메모리 장치의 데이터 쓰기부에 대한 구성도이다.
도 3은 도 2의 데이터 쓰기부에서 출력되는 프로그래밍 전류펄스를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 반도체 메모리 장치의 구성도이다.
도 5는 도 4의 구간제어신호 발생부의 실시예에 따른 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 6은 도 5의 구간제어신호 발생부의 입력 래치부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 7은 도 5의 구간제어신호 발생부의 클럭 발생부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 8은 도 5의 구간제어신호 발생부의 비교부의 구성도이다.
도 9는 도 5의 구간제어신호 발생부의 리셋펄스 발생부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 10은 도 5의 구간제어신호 발생부의 카운터부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 11은 도 4의 제1 쓰기제어코드 발생부의 실시예에 따른 구성도이다.
도 12는 도 11의 클럭발생 제어부의 실시예에 따른 구성도이다.
도 13은 도 12의 클럭발생 제어부의 주기설정코드 카운터부의 실시예에 따른 구성도이다.
도 14는 도 12의 클럭발생 제어부의 가산부의 실시예에 따른 구성도이다.
도 15는 도 12의 클럭발생 제어부의 비교부의 실시예에 따른 구성도이다.
도 16은 도 11의 카운팅 클럭 발생부의 실시예에 따른 구성도이다.
도 17은 도 16의 카운팅 클럭 발생부의 출력클럭 발생부의 실시예에 따른 구성도이다.
도 18은 도 11의 제1 쓰기제어코드 발생부의 입력 래치부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 19는 도 11의 제1 쓰기제어코드 발생부의 리셋펄스 발생부 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 20은 도 11의 제1 쓰기제어코드 발생부의 쓰기제어코드 카운터부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 21은 도 4의 데이터 쓰기부의 실시예에 따른 구성도이다.
도 22는 도 21의 데이터 쓰기부에서 출력되는 프로그래밍 전류펄스를 나타낸 도면이다.
도 23은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 내부동작을 나타낸 제1 타이밍 다이어그램이다.
도 24은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 내부동작을 나타낸 제2 타이밍 다이어그램이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시예를 첨부한 도면을 참조하여 설명하기로 한다.
참고적으로, 도면 및 상세한 설명에서 소자, 블록 등을 지칭할 때 사용하는 용어, 기호, 부호등은 필요에 따라 세부단위별로 표기할 수도 있으므로, 동일한 용어, 기호, 부호가 전체회로에서 동일한 소자 등을 지칭하지 않을 수도 있음에 유의하자. 일반적으로 회로의 논리신호 및 이진 데이터 값은 전압레벨에 대응하여 하이레벨(HIGH LEVEL, H) 또는 로우레벨(LOW LEVEL, L)로 구분하며, 각각 '1' 과 '0' 등으로 표현하기도 한다. 또한, 필요에 따라 추가적으로 하이임피던스(High Impedance, Hi-Z) 상태 등을 가질 수 있다고 정의하고 기술한다.
도 4는 본 발명의 일 실시예에 따른 반도체 메모리 장치의 구성도이다.
본 실시예에 따른 반도체 메모리 장치는 제안하고자 하는 기술적인 사상을 명확하게 설명하기 위한 간략한 구성만을 포함하고 있다.
도 4를 참조하면, 반도체 메모리 장치는 구간제어신호 발생부(100)와, 제1 쓰기제어코드 발생부(200)와, 제2 쓰기제어코드 발생부(300)와, 데이터 쓰기부(400)와, 메모리부(500)를 포함한다.
상기와 같이 구성되는 반도체 메모리 장치의 세부구성과 주요동작을 살펴보면 다음과 같다.
구간제어신호 발생부(100)는 프로그래밍 인에이블 신호(DPGMP)에 응답하여 제1 설정시간 이후에 활성화 되는 구간제어신호(QSSETP)를 생성한다. 즉, 구간제어신호(QSSETP)는 프로그래밍 인에이블 신호(DPGMP)의 활성화 시점에서 제1 설정시간 이후에 활성화 된다.
제1 쓰기제어코드 발생부(200)는 프로그래밍 검증 플래그 신호(PNVFLAG) 및 프로그래밍 인에이블 신호(DPGMP)에 응답하여 복수의 구간동안 각 구간마다 서로 다른 주기로 업데이트 되는 제1 쓰기제어코드(SETP<N:0>)를 생성한다. 이때, 제1 쓰기제어코드 발생부(200)는 각 구간마다 구간제어신호(QSSETP)에 응답하여 제1 쓰기제어코드(SETP<N:0>)의 업데이트를 활성화 시킨다. 또한, 제1 쓰기제어코드 발생부(200)는 반복횟수 설정코드(PNVVAL<0:2>)의 코드값에 따라 복수의 구간의 구간 수를 결정하고, 초기설정코드(PNVINT<0:2>)의 코드값에 따라 복수의 구간 중 최초 구간의 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기를 결정한다. 본 실시예에서 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기는 복수의 구간동안 각 구간이 진행될수록 점점 증가하도록 구성된다.
제2 쓰기제어코드 발생부(300)는 프로그래밍 인에이블 신호(DPGMP)에 응답하여 예정된 시간 동안 활성화 되는 제2 쓰기제어코드(RESETP)를 생성한다.
데이터 쓰기부(400)는 업데이트 되는 제1 쓰기제어코드(SETP<N:0>)에 대응하는 크기를 갖는 프로그래밍 전류펄스(I_PGM)를 출력하거나, 제2 쓰기제어코드(RESETP)에 대응하는 크기를 갖는 프로그래밍 전류펄스(I_PGM)를 출력한다. 이때, 프로그래밍 전류펄스(I_PGM)는 제1 쓰기제어코드(SETP<N:0>)에 대응하는 제1 프로그래밍 전류펄스와 제2 쓰기제어코드(RESETP)에 대응하는 제2 프로그래밍 전류펄스로 구분할 수 있을 것이다. 데이터 쓰기부(400)에서 출력되는 프로그래밍 전류펄스(I_PGM)는 메모리부(500)로 전달되어, 복수의 메모리 셀 중 선택된 해당 메모리 셀에 공급된다. 본 실시예에서 메모리 셀은 상변화 메모리 셀이라고 가정한다.
도 5는 도 4의 구간제어신호 발생부의 실시예에 따른 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 5를 참조하면, 구간제어신호 발생부(100)는 입력 래치부(110)와, 클럭 발생부(120)와, 카운터부(130)와, 비교부(140)와, 리셋펄스 발생부(150)로 구성된다.
상기와 같이 구성되는 구간제어신호 발생부(100)의 주요동작을 타이밍 다이어그램(100_0)을 참조하여 설명하기로 한다.
입력 래치부(110)는 프로그래밍 인에이블 신호(DPGMP) 및 리셋 펄스신호(RSTP)에 응답하여 카운트 인에이블 신호(EN) 및 리셋 신호(RST)를 출력한다. 즉, 프로그래밍 인에이블 신호(DPGMP)가 하이레벨로 펄싱하면 카운트 인에이블 신호(EN)가 하이레벨로 활성화 되고, 리셋 펄스신호(RSTP)가 하이레벨로 펄싱하면 리셋 신호(RST)가 하이레벨로 활성화 된다.
클럭 발생부(120)는 카운트 인에이블 신호(EN)에 응답하여 클럭신호(CK)를 생성한다. 즉, 클럭 발생부(120)는 카운트 인에이블 신호(EN)가 하이레벨로 활성화 되어 있는 동안 토글링 하는 클럭신호(CK)를 출력한다.
카운터부(130)는 카운트 인에이블 신호(EN), 리셋 신호(RST) 및 클럭신호(CK)의 제어에 따라 카운팅 되는 카운팅 코드(Q<0:3>)를 출력한다. 즉, 카운터부(130)는 카운트 인에이블 신호(EN)가 하이레벨로 활성화 되었을 때, 클럭신호(CK)의 제어에 따라 카운팅 동작을 수행하게 된다. 리셋 신호(RST)가 하이레벨로 활성화 되면 카운터부(130)에서 출력되는 카운팅 코드(Q<0:3>)는 초기화 된다. 이와 같이 카운터부(130)를 이용하여 카운팅 코드(Q<0:3>)를 생성할 경우 회로의 크기를 감소시킬 수 있다.
비교부(140)는 카운팅 코드(Q<0:3>)가 소정의 값에 도달하면 구간제어신호(QSSETP)를 활성화 시켜 출력한다. 비교부(140)는 카운팅 코드(Q<0:3>)와 인가된 설정시간 조절코드(IPSET<0:3>)를 비교하여 카운팅 코드(Q<0:3>)가 설정시간 조절코드(IPSET<0:3>)와 동일할 때 구간제어신호(QSSETP)를 활성화 시키도록 구성된다. 즉, 설정시간 조절코드(IPSET<0:3>)를 조절하여 구간제어신호(QSSETP)의 활성화 시점을 조절할 수 있다.
리셋펄스 발생부(150)는 구간제어신호(QSSETP)를 일정시간 지연시켜 리셋 펄스신호(RSTP)를 출력한다. 리셋펄스 발생부(150)는 지연부로 구성될 수 있으며, 지연부의 지연값은 규정된 타이밍 마진을 만족시키도록 설정될 것이다.
이하, 구간제어신호 발생부(100)의 세부구성에 대해서 좀 더 살펴보기로 한다.
도 6은 도 5의 구간제어신호 발생부의 입력 래치부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 6을 참조하면, 입력 래치부(110)는 복수의 난드 게이트(NAND1,NAND2)로 구성되는 RS 래치로 구성된다. 타이밍 다이어그램(110_0)을 참조하면, 입력 래치부(110)는 프로그래밍 인에이블 신호(DPGMP)가 하이레벨로 펄싱하면 카운트 인에이블 신호(EN)가 하이레벨로 활성화 되고, 리셋 펄스신호(RSTP)가 하이레벨로 펄싱하면 리셋 신호(RST)가 하이레벨로 활성화 된다.
도 7은 도 5의 구간제어신호 발생부의 클럭 발생부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 7을 참조하면, 클럭 발생부(120)는 난드 게이트(NAND1) 및 복수의 인버터(INV1~INV5)를 포함하는 링 오실레이터로 구성된다. 타이밍 다이어그램(120_0)을 참조하면, 클럭 발생부(120)는 카운트 인에이블 신호(EN)가 하이레벨로 활성화 되어 있는 동안 토글링 하는 클럭신호(CK)를 출력한다.
도 8은 도 5의 구간제어신호 발생부의 비교부의 구성도이다.
도 8을 참조하면, 비교부(140)는 복수의 비교부(141,142,143,144)와, 신호 조합부(145)로 구성된다. 복수의 비교부(141,142,143,144)는 카운팅 코드(Q<0:3>) 및 설정시간 조절코드(IPSET<0:3>)의 각 비트값을 비교하여 복수의 비교결과신호로서 출력한다. 신호 조합부(145)는 복수의 비교부(141,142,143,144)에서 출력되는 복수의 비교결과신호를 조합하여 구간제어신호(QSSETP)로서 출력한다. 즉, 본 실시예에서 비교부(140)는 카운팅 코드(Q<0:3>)와 설정시간 조절코드(IPSET<0:3>)가 동일할 때 구간제어신호(QSSETP)를 활성화 시켜 출력한다.
도 9는 도 5의 구간제어신호 발생부의 리셋펄스 발생부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 9를 참조하면, 리셋펄스 발생부(150)는 구간제어신호(QSSETP)를 지연시키는 제1 지연부(151)와, 제1 지연부(151)에서 출력되는 신호를 지연시켜 리셋 펄스신호(RSTP)를 출력하는 제2 지연부(152)로 구성된다. 제1 지연부(151) 및 제2 지연부(152)는 저항(R) 및 MOS 캐패시터(CP,CN)로 구성되어 RC 시상수 에 의해서 지연값이 결정된다.
도 10은 도 5의 구간제어신호 발생부의 카운터부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다. 도 10은 카운터부(130)를 구성하는 복수의 1 비트 카운터(131~134) 중 최하위 1 비트 카운터(131)를 대표적으로 도시한 것이다. 카운터부(130)는 업카운팅 동작을 수행하도록 구성되었다.
도 10을 참조하면, 1 비트 카운터(131)는 신호 입력부(131_1)와, 래치부(131_2)로 구성된다.
신호 입력부(131_1)는 카운트 인에이블 신호(EN)와 제1 카운팅 코드(Q<0>)에 응답하여 래치부(131_2)의 입력노드(A)의 신호 레벨을 결정한다.
래치부(131_2)는 클럭신호(CK)의 제어에 따라 신호 입력부(131_1)에서 출력되는 신호를 래칭하며, 제1 카운팅 코드(Q<0>) 및 캐리신호(EN1)를 출력한다. 이때 캐리신호(EN1)는 두 번째 1 비트 카운터(132)의 카운트 인에이블 신호(EN1)로 이용된다. 한편, 래치부(131_2)는 리셋 신호(RST) 및 셋 신호(SET)에 응답하여 내부 노드가 초기화 되거나 특정 레벨로 변화된다.
도 11은 도 4의 제1 쓰기제어코드 발생부의 실시예에 따른 구성도이다.
도 11을 참조하면, 제1 쓰기제어코드 발생부(200)는 입력 래치부(210)와, 카운팅 클럭 발생부(220)와, 쓰기제어코드 카운터부(230)와, 리셋펄스 발생부(240)와, 지연부(250)와, 클럭발생 제어부(260)를 구비한다.
상기와 같이 구성되는 제1 쓰기제어코드 발생부(200)의 주요동작 및 세부구성에 대해서 상세히 살펴보기로 한다.
입력 래치부(210)는 구간제어신호(QSSETP) 및 리셋 펄스신호(QSRSTP)에 응답하여 카운트 인에이블 신호(ENB) 및 클럭 인에이블 신호(CKEN)를 출력한다.
클럭발생 제어부(260)는 프로그래밍 검증 플래그 신호(PNVFLAG) 및 리셋 펄스신호(QSRSTP)에 응답하여 코드값이 업데이트 되는 주기설정코드(PNVCNT<0:2>) 및 반복종료신호(PNVMAXP)를 출력한다. 이때, 클럭발생 제어부(260)는 초기설정코드(PNVINT<0:2>)의 코드값에 따라 주기설정코드(PNVCNT<0:2>)의 최초 코드값을 결정하고 반복횟수 설정코드(PNVVAL<0:2>)의 코드값에 따라 주기설정코드(PNVCNT<0:2>)의 업데이트 횟수를 결정한다. 또한, 클럭발생 제어부(260)는 반복횟수 설정코드(PNVVAL<0:2>)의 코드값에 대응하는 횟수만큼 주기설정코드(PNVCNT<0:2>)가 업데이트된 이후에 반복종료신호(PNVMAXP)를 활성화 시킨다. 본 실시예에서 주기설정코드(PNVCNT<0:2>)의 코드값은 업데이트 될 때마다 증가하도록 구성되었다. 참고적으로 프로그래밍 검증 플래그 신호(PNVFLAG)는 데이터가 메모리 셀에 정확하게 프로그래밍 되었는지 여부를 지시하는 신호로 정의된다.
카운팅 클럭 발생부(220)는 클럭 인에이블 신호(CKEN) 및 반복종료신호(PNVMAXP)에 응답하여 카운팅 클럭신호(QSCK)를 생성한다. 이때, 카운팅 클럭 발생부(220)는 주기설정코드(PNVCNT<0:2>)의 코드값에 따라 카운팅 클럭신호(QSCK)의 토글링 주기를 조절한다. 본 실시예에서는 주기설정코드(PNVCNT<0:2>)의 코드값이 커질수록 카운팅 클럭신호(QSCK)의 토글링 주기가 증가하도록 구성되었다.
쓰기제어코드 카운터부(230)는 프로그래밍 인에이블 신호(DPGMP), 카운트 인에이블 신호(ENB) 및 카운팅 클럭신호(QSCK)의 제어에 따라 카운팅 되는 카운팅 코드를 생성하여 제1 쓰기제어코드(SETP<N:0>)로서 출력한다. 따라서, 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기는 카운팅 클럭신호(QSCK)의 토글링 주기에 대응하여 조절된다.
리셋펄스 발생부(240)는 쓰기제어코드 카운터부(230)의 카운팅 코드가 소정의 값에 도달하면 리셋 펄스신호(QSRSTP)를 활성화 시킨다. 참고적으로 본 실시예에서는 리셋 펄스신호(QSRSTP)를 예정된 지연값 만큼 지연시켜 지연 리셋 펄스신호(QSENDP)로서 출력하는 지연부(250)를 포함하고 있다.
이하, 제1 쓰기제어코드 발생부(200)의 세부구성에 대해서 좀 더 살펴보기로 한다.
도 12는 도 11의 클럭발생 제어부의 실시예에 따른 구성도이다.
도 12를 참조하면, 클럭발생 제어부(260)는 주기설정코드 카운터부(261)와, 가산부(262)와, 비교부(263)와, 페일신호 출력부(264)로 구성된다.
상기와 같이 구성되는 클럭발생 제어부(260)의 세부구성과 주요 내부동작을 살펴보면 다음과 같다.
주기설정코드 카운터부(261)는 초기설정코드(PNVINT<0:2>)의 코드값을 최초 카운팅 코드값으로서 입력받으며, 프로그래밍 검증 플래그 신호(PNVFLAG) 및 리셋 펄스신호(QSRSTP)의 제어에 따라 카운팅 동작을 수행한다.
가산부(262)는 반복횟수 설정코드(PNVVAL<0:2>) 및 초기설정코드(PNVINT<0:2>)의 코드값을 합산하여 합산코드(SUM<0:3>)로서 출력한다.
비교부(263)는 합산코드(SUM<0:3>)와 주기설정코드 카운터부(261)에서 출력되는 카운팅 코드를 비교하여 그 비교결과에 따라 반복종료신호(PNVMAXP)를 활성화 시킨다. 즉, 비교부(263)는 합산코드(SUM<0:3>)와 카운팅 코드가 동일할 때 반복종료신호(PNVMAXP)를 활성화 시켜 출력한다.
페일신호 출력부(264)는 프로그래밍 검증 플래그 신호(PNVFLAG) 및 프로그래밍 확인신호(PNVRDP)에 응답하여 선택적으로 활성화 되는 페일신호(FAIL)를 출력한다. 프로그래밍 검증 플래그 신호(PNVFLAG)는 데이터가 정확하게 프로그래밍 되었는지 여부를 지시하는 신호이며, 데이터가 메모리 셀에 정확하게 프로그래밍 되기 전까지 하이레벨을 유지하다가 데이터가 메모리 셀에 정확하게 프로그래밍 된 이후에 로우레벨이 되는 신호이다. 따라서 메모리 셀에 프로그래밍이 정확하게 되었는지를 확인하라는 신호인 프로그래밍 확인신호(PNVRDP)가 활성화 되었을 때, 프로그래밍 검증 플래그 신호(PNVFLAG)가 하이레벨을 유지하고 있으면, 반복종료신호(PNVMAXP)를 고려하여 페일신호(FAIL)는 하이레벨로 활성화된다. 페일신호 출력부(264)는 프로그래밍 검증 플래그 신호(PNVFLAG) 및 프로그래밍 확인신호(PNVRDP)를 논리조합 하는 로직부 또는 프로그래밍 검증 플래그 신호(PNVFLAG) 및 프로그래밍 확인신호(PNVRDP)를 입력으로 하는 플립플롭으로 구성될 수 있을 것이다.
도 13은 도 12의 클럭발생 제어부의 주기설정코드 카운터부의 실시예에 따른 구성도이다. 도 13은 주기설정코드 카운터부(261)를 구성하는 복수의 프리셋(Preset) 1비트 카운터 중 최하위 프리셋 1비트 카운터를 대표적으로 도시한 것이다. 본 실시예에서 각각의 프리셋 1비트 카운터는 업카운팅 동작 및 래치 동작을 수행하도록 구성된다.
도 13 및 도 12를 동시에 참조하면, 주기설정코드 카운터부(261)를 구성하는 최하위 프리셋 1비트 카운터는 신호 입력부(261_1)와, 래치부(261_2)로 구성된다.
신호 입력부(261_1)는 카운트 입력신호(CNTIN)로서 입력되는 프로그래밍 검증 플래그 신호(PNVFLAG) 및 내부 클럭신호(CK)로서 입력되는 리셋 펄스신호(QSRSTP)에 응답하여 래치부(261_2)의 입력노드(A)의 신호 레벨을 결정한다.
래치부(261_2)는 내부 클럭신호(CK)의 제어에 따라 신호 입력부(261_1)에서 출력되는 신호를 래칭하며, 카운팅 코드(Q) 및 캐리신호(C)를 출력한다. 이때 캐리신호(C)는 두 번째 프리셋 1비트 카운터의 카운트 입력신호(CNTIN)로 이용된다. 한편, 래치부(261_2)는 내부 클럭신호(CK) 및 리셋신호(RST)에 응답하여 내부 노드가 초기화 되거나 특정 레벨로 변화된다. 또한, 래치부(261_2)는 입력신호(D)로서 입력되는 초기설정코드(PNVINT<0:2>)의 최하위 비트(PNVINT<0>)의 값을 내부 클럭신호(CK) 및 리셋신호(RST)의 제어에 따라 저장한다.
도 14는 도 12의 클럭발생 제어부의 가산부의 실시예에 따른 구성도이다. 도 14는 가산부(262)를 구성하는 복수의 1비트 전가산기(Full Adder) 중 최하위 1비트 전가산기를 대표적으로 도시한 것이다.
도 14를 참조하면, 가산부(262)를 구성하는 최하위 1비트 전가산기는 초기설정코드(PNVINT<0:2>)의 최하위 비트(PNVINT<0>)와 반복횟수 설정코드(PNVVAL<0:2>)의 최하위 비트(PNVVAL<0>)를 합산하는 동작을 수행하고, 그 결과로서 합산신호(SUM) 및 캐리신호(CARRY OUT)를 출력한다.
도 15는 도 12의 클럭발생 제어부의 비교부의 실시예에 따른 구성도이다.
도 15 및 도 12를 동시에 참조하면, 비교부(263)는 주기설정코드 카운터부(261)에서 출력되는 카운팅 코드의 각 비트신호와 합산코드(SUM<0:3>)의 각 비트신호를 비교하는 복수의 비교기(263_1,263_2,263_3)와, 복수의 비교기(263_1,263_2,263_3)에서 출력되는 비교결과신호를 조합하여 반복종료신호(PNVMAXP)로서 출력하는 신호 조합부(263_4)로 구성된다.
이하, 카운팅 클럭 발생부(220)의 세부구성에 대해서 좀 더 살펴보기로 한다.
도 16은 도 11의 카운팅 클럭 발생부의 실시예에 따른 구성도이다.
도 16을 참조하면, 카운팅 클럭 발생부(220)는 소스클럭 발생부(221)와, 내부 카운터부(222)와, 출력클럭 발생부(223)와, 1비트 가산기(224)로 구성된다.
상기와 같이 구성되는 카운팅 클럭 발생부(220)의 세부구성과 주요동작을 살펴보면 다음과 같다.
소스클럭 발생부(221)는 클럭 인에이블 신호(CKEN)에 응답하여 예정된 주기로 토글링 하는 소스클럭신호(CK)를 출력한다. 여기에서 소스클럭 발생부(221)는 링 오실레이터 등으로 구성될 수 있을 것이다.
내부 카운터부(222)는 반복종료신호(PNVMAXP), 소스클럭신호(CK) 및 내부리셋신호(IRST)의 제어에 따라 카운팅 동작을 수행하여 내부 카운팅 코드(Q<0:2>)를 출력한다.
출력클럭 발생부(223)는 소스클럭신호(CK)의 제어에 따라 내부 카운팅 코드(Q<0:2>) 및 주기설정코드(PNVCNT<0:2>)를 조합하여 카운팅 클럭신호(QSCK) 및 내부리셋신호(IRST)로서 출력한다.
도 17은 도 16의 카운팅 클럭 발생부의 출력클럭 발생부의 실시예에 따른 구성도이다.
도 17 및 도 16을 동시에 참조하면, 출력클럭 발생부(223)는 복수의 비교부(223_1,223_2,223_3)와, 신호 조합부(223_4)와, 신호 출력부(223_5)로 구성된다.
복수의 비교부(223_1,223_2,223_3)는 내부 카운팅 코드(Q<0:2>) 및 주기설정코드(PNVCNT<0:2>)의 각 비트값을 비교하여 복수의 비교결과신호로서 출력한다. 신호 조합부(223_4)는 복수의 비교부(223_1,223_2,223_3)에서 출력되는 복수의 비교결과신호를 조합하여 조합신호(QSCMP)로서 출력한다. 신호 출력부(223_5)는 내부클럭신호(CK) 및 조합신호(QSCMP)의 제어에 따라 카운팅 클럭신호(QSCK) 및 내부리셋신호(IRST)를 출력한다.
참고적으로 본 실시예에서 출력클럭 발생부(223)는 주기설정코드(PNVCNT<0:2>)에 기 설정된 코드값을 합산한 이후에 내부 카운팅 코드(Q<0:2>)와 조합하도록 구성되었다. 즉, 출력클럭 발생부(223)는 1비트 가산기(224)를 통해서 주기설정코드(PNVCNT<0:2>)의 코드값에 '1'을 합산한 결과(PNVD<0:2>)와 내부 카운팅 코드(Q<0:2>)를 비교하도록 구성되었다. 본 실시예에서 주기설정코드(PNVCNT<0:2>)의 코드값이 증가할수록 카운팅 클럭신호(QSCK)의 토글링 주기가 점점 길어지게 된다. 참고적으로, 1비트 가산기(224)는 설계방식에 따라 선택적으로 구비될 수 있는 요소이다.
도 18은 도 11의 제1 쓰기제어코드 발생부의 입력 래치부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 18을 참조하면, 입력 래치부(210)는 복수의 난드 게이트(NAND1,NAND2)로 구성되는 RS 래치로 구성된다. 타이밍 다이어그램(210_0)을 참조하면, 입력 래치부(210)는 구간제어신호(QSSETP) 및 리셋 펄스신호(QSRSTP)에 응답하여 카운트 인에이블 신호(ENB) 및 클럭 인에이블 신호(CKEN)를 출력한다. 즉, 구간제어신호(QSSETP)가 하이레벨로 펄싱하면 카운트 인에이블 신호(ENB)는 로우레벨로 활성화 되고, 클럭 인에이블 신호(CKEN)는 하이레벨로 활성화 된다.
도 19는 도 11의 제1 쓰기제어코드 발생부의 리셋펄스 발생부 및 그 내부동작을 나타낸 타이밍 다이어그램이다. 리셋펄스 발생부(240)는 카운팅 코드가 소정의 값에 도달하면 리셋 펄스신호(QSRSTP)를 생성한다.
도 19 및 도 11를 동시에 참조하면, 리셋펄스 발생부(240)는 최상위 1 비트 카운터(236)에서 출력되는 신호(ENB6)를 입력받는 검출용 1 비트 카운터(237)에서 출력되는 신호(QSEND)가 하이레벨로 활성화 되면, 이를 이용하여 하이레벨로 펄싱하는 리셋 펄스신호(QSRSTP)를 생성한다. 즉, 리셋펄스 발생부(240)는 검출용 1 비트 카운터(237)에서 출력되는 신호(QSEND)를 지연부에서 지연시킨 신호(A)와, 반전신호(B)와 논리조합을 통해서 하이레벨로 펄싱하는 신호를 생성한다.
도 20은 도 11의 제1 쓰기제어코드 발생부의 쓰기제어코드 카운터부의 구성도 및 그 내부동작을 나타낸 타이밍 다이어그램이다.
도 20 및 도 11을 동시에 참조하면, 쓰기제어코드 카운터부(230)는 프로그래밍 인에이블 신호(DPGMP), 카운트 인에이블 신호(ENB) 및 카운팅 클럭신호(QSCK)의 제어에 따라 카운팅 되는 카운팅 코드를 생성하여 제1 쓰기제어코드(SETP<N:0>)로써 출력한다. 즉, 쓰기제어코드 카운터부(230)는 카운트 인에이블 신호(ENB)가 로우레벨로 활성화 되었을 때, 카운팅 클럭신호(QSCK)의 제어에 따라 카운팅 동작을 수행하게 된다. 쓰기제어코드 카운터부(230)는 복수의 1 비트 카운터(231~237)로 구성되며, 다운 카운팅 동작을 수행한다. 따라서 카운팅 클럭신호(QSCK)의 토글링 주기에 따라 다운 카운팅 속도가 조절되므로, 결론적으로 카운팅 클럭신호(QSCK)의 토글링 주기에 따라 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기가 조절된다.
도 20은 쓰기제어코드 카운터부(230)를 구성하는 복수의 1 비트 카운터(231~237) 중 최하위 1 비트 카운터(231)를 대표적으로 도시한 것이다.
도 20을 참조하면, 1 비트 카운터(231)는 신호 입력부(231_1)와, 래치부(231_2)로 구성된다.
신호 입력부(231_1)는 카운트 인에이블 신호(ENB)와 제1 카운팅 코드(SETP<0>)에 응답하여 래치부(231_2)의 입력노드(A)의 신호 레벨을 결정한다.
래치부(231_2)는 카운팅 클럭신호(QSCK)의 제어에 따라 신호 입력부(231_1)에서 출력되는 신호를 래칭하며, 제1 카운팅 코드(SETP<0>) 및 바로우(borrow) 신호(ENB1)를 출력한다. 이때 바로우 신호(ENB1)는 두 번째 1 비트 카운터(232)의 카운트 인에이블 신호(ENB)로 이용된다. 한편, 래치부(131_2)는 리셋 신호(RST) 및 셋 신호(SET)에 응답하여 내부 노드가 초기화 되거나 특정 레벨로 변화된다.
도 21은 도 4의 데이터 쓰기부의 실시예에 따른 구성도이다.
도 21을 참조하면, 데이터 쓰기부(400)는 전류 조절부(410)와, 전류 구동부(420)와, 선택부(430)로 구성된다.
전류 조절부(410)는 쓰기 인에이블 신호(WDEN)가 활성화 되었을 때, 제1 쓰기제어코드(SETP<N:0>) 및 제2 쓰기제어코드(RESETP)에 따라 제어노드(N1)의 전압레벨을 조절한다. 이때, 제1 쓰기제어코드(SETP<N:0>)의 제어를 받는 복수의 NMOS 트랜지스터(MN1~MN6)는 제1 쓰기제어코드(SETP<N:0>)에 따라 선택적으로 턴온(TURN ON) 되어 제어노드(N1)의 전압레벨을 조절하게 된다. 또한, 제2 쓰기제어코드(RESETP)의 제어를 받는 NMOS 트랜지스터(MN7)는 제2 쓰기제어코드(RESETP)가 활성화 되었을 때, 턴온(TURN ON)되어 제어노드(N1)의 전압레벨을 조절하게 된다. 이때, 제1 쓰기제어코드(SETP<N:0>)는 주기적으로 업데이트 되는 신호이며, 제2 쓰기제어코드(RESETP)는 펄스형태로 입력되는 신호이다.
전류 구동부(420)는 제어노드(N1)의 전압레벨에 대응하는 크기를 갖는 프로그래밍 전류펄스(I_PGM)를 출력단(N2)으로 구동한다. 이때, 프로그래밍 전류펄스(I_PGM)는 제1 쓰기제어코드(SETP<N:0>)에 대응하는 제1 프로그래밍 전류펄스와 제2 쓰기제어코드(RESETP)에 대응하는 제2 프로그래밍 전류펄스로 구분할 수 있을 것이다.
선택부(430)는 전류 구동부(420)에서 구동되는 프로그래밍 전류펄스(I_PGM)를 복수의 선택신호(YSW<0:3>)에 대응하는 해당 비트라인(BL0~BL3)으로 출력한다.
도 22는 도 21의 데이터 쓰기부에서 출력되는 프로그래밍 전류펄스를 나타낸 도면이다.
도 22를 참조하면, 제2 프로그래밍 전류펄스는 짧은 시간동안 용융화 온도 보다 높은 형태로 구동되며, 제1 프로그래밍 전류펄스는 초기 제1 펄스구간(t1) 동안 용융화 온도에 근접하게 구동되다가, 제2 펄스구간(t2) 동안 점진적으로 작아지게 된다.
한편, 제1 프로그래밍 전류펄스의 제2 펄스구간(t2)은 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기가 길어질수록 늘어나게 된다. 따라서 제2 펄스구간(t2)이 늘어날수록 메모리 셀에 공급되는 프로그래밍 전류펄스가 서서히 감소하게 되는 시간이 길어지게 되므로 상변화 메모리 셀의 결정화 저항값이 그 길어지는 시간에 대응하여 작아진다. 참고적으로 도면에서 제2 프로그래밍 전류펄스는 비정질화 펄스(Amorphizing pulse)로 도시되어 있으며, 제1 프로그래밍 전류펄스는 결정화 펄스(Crystallizing pulse)로 도시되어 있다.
도 23은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 내부동작을 나타낸 제1 타이밍 다이어그램이다.
도 23의 타이밍 다이어그램을 참조하여, 본 발명의 일 실시예에 따른 반도체 메모리 장치의 주요 내부동작을 설명하면 다음과 같다. 제1 타이밍 다이어그램은 초기설정코드(PNVINT<0:2>)가 "Ox0h" 로 설정되고, 반복횟수 설정코드(PNVVAL<0:2>)가 "0x5h"로 설정되었을 경우의 내부동작을 나타낸 것이다. 즉, 최대 5번의 프로그래밍 구간이 진행될 수 있으며 각 구간이 진행될 때마다 메모리 셀에 데이터가 정확하게 프로그래밍 되었는지를 검증하고, 그 검증결과에 따라 프로그래밍 동작을 종료할지 또는 두 번째 프로그래밍 구간을 진행할지가 결정된다.
본 실시예에서 제1 쓰기제어코드(SETP<N:0>)는 5개의 구간동안 각 구간마다 다른 주기로 업데이트 된다. 즉, 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기는 카운팅 클럭신호(QSCK)의 토글링 주기에 대응하여 조절된다. 본 실시예에서는 각 구간이 진행될수록 카운팅 클럭신호(QSCK)의 토글링 주기가 길어지므로, 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기도 각 구간이 진행될수록 점점 증가하게 된다. 결론적으로 각 구간이 진행될수록 제1 쓰기제어코드(SETP<N:0>)의 코드값에 대응하는 크기를 갖는 제1 프로그래밍 전류펄스의 감소시간은 증가한다.
제1 타이밍 다이어그램에서 첫 번째 경우(Case 1)는 3번째 구간에서 메모리 셀에 데이터가 정확하게 프로그래밍 되었으므로, 프로그래밍 검증 플래그 신호(PNVFLAG)가 로우레벨이 되고, 더 이상의 프로그래밍 구간이 진행되지 않는 경우를 나타내었다. 또한, 두 번째 경우(Case 2)는 5번째 프로그래밍 구간까지 진행되었으나 메모리 셀에 데이터가 정확하게 프로그래밍 되지 못하였으므로, 프로그래밍 검증 플래그 신호(PNVFLAG)가 계속해서 하이레벨을 유지하고 페일신호(FAIL)가 하이레벨로 활성화 되는 경우를 나타내었다. 즉, 두 번째 경우(Case 2)는 총 5번의 프로그래밍 구간을 통해서 5번의 프로그래밍 동작을 진행하였으나, 최종적으로 메모리 셀에 데이터가 정확하게 프로그래밍 되지 못한 경우를 나타내었다.
도 24은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 내부동작을 나타낸 제2 타이밍 다이어그램이다.
도 24의 타이밍 다이어그램을 참조하여, 본 발명의 일 실시예에 따른 반도체 메모리 장치의 주요 내부동작을 설명하면 다음과 같다. 제1 타이밍 다이어그램은 초기설정코드(PNVINT<0:2>)가 "Ox2h" 로 설정되고, 반복횟수 설정코드(PNVVAL<0:2>)가 "0x4h"로 설정되었을 경우의 내부동작을 나타낸 것이다. 즉, 최대 4번의 프로그래밍 구간이 진행될 수 있으며 각 구간이 진행될 때마다 메모리 셀에 데이터가 정확하게 프로그래밍 되었는지를 검증하고, 그 검증결과에 따라 프로그래밍 동작을 종료할지 또는 두 번째 프로그래밍 구간을 진행할지가 결정된다.
본 실시예에서 제1 쓰기제어코드(SETP<N:0>)는 4개의 구간동안 각 구간마다 다른 주기로 업데이트 된다. 즉, 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기는 카운팅 클럭신호(QSCK)의 토글링 주기에 대응하여 조절된다. 이때, 초기설정코드(PNVINT<0:2>)가 "Ox2h" 로 설정되었으므로, 도 23의 제1 타이밍 다이어그램과 비교했을 때, 최초 구간의 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기가 상대적으로 더 증가한 것을 확인 할 수 있다. 본 실시예에서는 각 구간이 진행될수록 카운팅 클럭신호(QSCK)의 토글링 주기가 길어지므로, 제1 쓰기제어코드(SETP<N:0>)의 업데이트 주기도 각 구간이 진행될수록 점점 증가하게 된다. 결론적으로 각 구간이 진행될수록 제1 쓰기제어코드(SETP<N:0>)의 코드값에 대응하는 크기를 갖는 제1 프로그래밍 전류펄스의 감소시간은 증가한다.
제2 타이밍 다이어그램에서 첫 번째 경우(Case 1)는 2번째 구간에서 메모리 셀에 데이터가 정확하게 프로그래밍 되었으므로, 프로그래밍 검증 플래그 신호(PNVFLAG)가 로우레벨이 되고, 더 이상의 프로그래밍 구간이 진행되지 않는 경우를 나타내었다. 또한, 두 번째 경우(Case 2)는 4번째 프로그래밍 구간까지 진행되었으나 메모리 셀에 데이터가 정확하게 프로그래밍 되지 못하였으므로, 프로그래밍 검증 플래그 신호(PNVFLAG)가 계속해서 하이레벨을 유지하고 페일신호(FAIL)가 하이레벨로 활성화 되는 경우를 나타내었다. 즉, 두 번째 경우(Case 2)는 총 4번의 프로그래밍 구간을 통해서 4번의 프로그래밍 동작을 진행하였으나, 최종적으로 메모리 셀에 데이터가 정확하게 프로그래밍 되지 못한 경우를 나타내었다.
상술한 바와 같이 본 실시예에 따른 반도체 메모리 장치는 초기설정코드(PNVINT<0:2>) 및 반복횟수 설정코드(PNVVAL<0:2>)의 코드값을 조절하여 프로그래밍 전류펄스가 공급되는 구간의 수와 프로그래밍 전류펄스가 공급되는 시간을 조절할 수 있다. 또한, 메모리부에 프로그래밍 전류펄스가 공급되는 형태를 조절할 수 있다. 즉, 초기설정코드(PNVINT<0:2>) 및 반복횟수 설정코드(PNVVAL<0:2>)의 코드값을 적절히 설정하여 서로 다른 프로그래밍 특성을 갖는 복수의 메모리 셀을 안정적으로 프로그래밍 할 수 있다. 참고적으로 초기설정코드(PNVINT<0:2>) 및 반복횟수 설정코드(PNVVAL<0:2>)의 코드값은 모든 메모리 셀을 안정적으로 그리고 가장 빠르게 프로그래밍 할 수 있는 값으로 설정하는 것이 바람직하다. 또한, 복수의 메모리 셀을 그룹별로 구분하여 각 그룹별로 독립적인 초기설정코드(PNVINT<0:2>) 및 반복횟수 설정코드(PNVVAL<0:2>)를 설정할 수 있도록 구성할 수도 있을 것이다.
이상, 본 발명의 실시예에 따라 구체적인 설명을 하였다. 참고적으로 본 발명의 기술적 사상과는 직접 관련이 없는 부분이지만, 본 발명을 보다 자세히 설명하기 위하여 추가적인 구성을 포함한 실시예를 예시할 수 있다. 또한, 신호 및 회로의 활성화 상태를 나타내기 위한 액티브 하이(Active High) 또는 액티브 로우(Active Low)의 구성은 실시예에 따라 달라질 수 있다. 또한, 동일한 기능을 구현하기 위해 필요에 따라 트랜지스터의 구성은 변경될 수 있다. 즉, PMOS 트랜지스터와 NMOS 트랜지스터의 구성은 서로 대체될 수 있을 것이며, 필요에 따라 다양한 트랜지스터를 이용하여 구현될 수 있다. 또한, 동일한 기능을 구현하기 위해 필요에 따라 로직 게이트(LOGIC GATE)의 구성은 변경될 수 있다. 즉 부정논리곱 수단, 부정논리합 수단 등은 난드 게이트(NAND GATE), 노어 게이트(NOR GATE), 인버터(INVERTER) 등의 다양한 조합을 통해서 구성될 수 있을 것이다. 실시의 변경에 따른 구체적인 설명은 너무 경우의 수가 많고, 이에 대한 변경은 통상의 전문가라면 누구나 쉽게 유추할 수 있기에 그에 대한 열거는 생략하기로 한다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
120 : 클럭 발생부
230 : 쓰기제어코드 카운터부
261 : 주기설정코드 카운터부
222 : 내부 카운터부
도면에서 PMOS 트랜지스터와 NMOS 트랜지스터는 각각 MPi, MNi (i=0,1,2, … ) 으로 표시함.

Claims (33)

  1. 프로그래밍 검증 플래그 신호 및 프로그래밍 인에이블 신호에 응답하여 복수의 구간동안 각 구간마다 서로 다른 주기로 업데이트 되는 제1 쓰기제어코드를 생성함에 있어서, 반복횟수 설정코드의 코드값에 따라 상기 복수의 구간의 구간 수를 결정하고, 초기설정코드의 코드값에 따라 상기 복수의 구간 중 최초 구간의 상기 제1 쓰기제어코드의 업데이트 주기를 결정하는 제1 쓰기제어코드 발생부; 및
    업데이트 되는 상기 제1 쓰기제어코드에 대응하는 크기를 갖는 제1 프로그래밍 전류펄스를 출력하는 데이터 쓰기부;
    를 포함하는 반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 프로그래밍 인에이블 신호에 응답하여 예정된 시간 동안 활성화 되는 제2 쓰기제어코드를 생성하는 제2 쓰기제어코드 발생부를 더 포함하며,
    상기 데이터 쓰기부는,
    업데이트 되는 상기 제1 쓰기제어코드에 대응하는 크기를 갖는 상기 제1 프로그래밍 전류펄스를 출력하거나, 상기 제2 쓰기제어코드에 대응하는 크기를 갖는 제2 프로그래밍 전류펄스를 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  3. 제1항에 있어서,
    상기 복수의 구간동안 각 구간이 진행될수록 상기 제1 쓰기제어코드의 업데이트 주기는 점점 증가하는 것을 특징으로 하는 반도체 메모리 장치.
  4. 제1항에 있어서,
    상기 제1 쓰기제어코드 발생부는,
    예정된 시간 이후에 활성화 되는 구간제어신호 및 리셋 펄스신호에 응답하여 카운트 인에이블 신호 및 클럭 인에이블 신호를 출력하는 입력 래치부;
    상기 프로그래밍 검증 플래그 신호 및 상기 리셋 펄스신호에 응답하여 코드값이 업데이트 되는 주기설정코드 및 반복종료신호를 출력함에 있어서, 상기 초기설정코드의 코드값에 따라 상기 주기설정코드의 최초 코드값을 결정하고 상기 반복횟수 설정코드의 코드값에 따라 상기 주기설정코드의 업데이트 횟수를 결정하는 클럭발생 제어부;
    상기 클럭 인에이블 신호 및 상기 반복종료신호에 응답하여 카운팅 클럭신호를 생성함에 있어서, 상기 주기설정코드의 코드값에 따라 상기 카운팅 클럭신호의 토글링 주기를 조절하는 카운팅 클럭 발생부;
    상기 프로그래밍 인에이블 신호, 상기 카운트 인에이블 신호 및 상기 카운팅 클럭신호의 제어에 따라 카운팅 되는 카운팅 코드를 생성하여 상기 제1 쓰기제어코드로서 출력하는 쓰기제어코드 카운터부; 및
    상기 카운팅 코드가 소정의 값에 도달하면 상기 리셋 펄스신호를 생성하는 리셋펄스 발생부;를 포함하는 반도체 메모리 장치.
  5. 제4항에 있어서,
    상기 클럭발생 제어부는,
    상기 반복횟수 설정코드의 코드값에 대응하는 횟수만큼 상기 주기설정코드가 업데이트된 이후에 상기 반복종료신호를 활성화 시키는 것을 특징으로 하는 반도체 메모리 장치.
  6. 제4항에 있어서,
    상기 주기설정코드의 코드값은 업데이트 될 때마다 증가하는 것을 특징으로 하는 반도체 메모리 장치.
  7. 제4항에 있어서,
    상기 제1 쓰기제어코드의 업데이트 주기는 상기 카운팅 클럭신호의 토글링 주기에 대응하여 조절되는 것을 특징으로 하는 반도체 메모리 장치.
  8. 제4항에 있어서,
    상기 프로그래밍 검증 플래그 신호는 데이터가 정확하게 프로그래밍 되었는지 여부를 지시하는 신호인 것을 특징으로 하는 반도체 메모리 장치.
  9. 제4항에 있어서,
    상기 클럭발생 제어부는,
    상기 초기설정코드의 코드값을 최초 코드값으로서 입력받으며, 상기 프로그래밍 검증 플래그 신호 및 상기 리셋 펄스신호의 제어에 따라 카운팅 동작을 수행하는 주기설정코드 카운터부;
    상기 반복횟수 설정코드 및 상기 초기설정코드의 코드값을 합산하여 합산코드로서 출력하는 가산부;
    상기 합산코드와 상기 주기설정코드 카운터부에서 출력되는 카운팅 코드를 비교하여 그 비교결과를 상기 반복종료신호로서 출력하는 비교부; 및
    상기 프로그래밍 검증 플래그 신호 및 프로그래밍 확인신호에 응답하여 선택적으로 활성화 되는 페일신호를 출력하는 페일신호 출력부;를 포함하는 반도체 메모리 장치.
  10. 제4항에 있어서,
    상기 카운팅 클럭 발생부는,
    상기 클럭 인에이블 신호에 응답하여 예정된 주기로 토글링 하는 소스클럭신호를 출력하는 소스클럭 발생부;
    상기 반복종료신호, 상기 소스클럭신호 및 내부리셋신호의 제어에 따라 카운팅 동작을 수행하여 내부 카운팅 코드를 출력하는 내부 카운터부; 및
    상기 소스클럭신호의 제어에 따라 상기 내부 카운팅 코드 및 상기 주기설정코드를 조합하여 상기 카운팅 클럭신호 및 상기 내부리셋신호로서 출력하는 출력클럭 발생부;를 포함하는 반도체 메모리 장치.
  11. 제10항에 있어서,
    상기 출력클럭 발생부는,
    상기 내부 카운팅 코드 및 상기 주기설정코드의 각 비트값을 비교하여 복수의 비교결과신호로서 출력하는 복수의 비교부;
    상기 복수의 비교부에서 출력되는 상기 복수의 비교결과신호를 조합하여 조합신호로서 출력하는 신호 조합부; 및
    내부클럭신호 및 상기 조합신호의 제어에 따라 상기 카운팅 클럭신호 및 상기 내부리셋신호를 출력하는 신호 출력부;를 포함하는 반도체 메모리 장치.
  12. 제10항에 있어서,
    상기 출력클럭 발생부는,
    상기 주기설정코드에 기 설정된 코드값을 합산한 이후에 상기 내부 카운팅 코드와 조합하는 것을 특징으로 하는 반도체 메모리 장치.
  13. 프로그래밍 인에이블 신호에 응답하여 제1 설정시간 이후에 활성화 되는 구간제어신호를 생성하는 구간제어신호 발생부;
    프로그래밍 검증 플래그 신호 및 상기 프로그래밍 인에이블 신호에 응답하여 복수의 구간동안 각 구간마다 서로 다른 주기로 업데이트 되는 제1 쓰기제어코드를 생성함에 있어서, 각 구간마다 상기 구간제어신호에 응답하여 상기 제1 쓰기제어코드의 업데이트를 활성화 시키며, 반복횟수 설정코드의 코드값에 따라 상기 복수의 구간의 구간 수를 결정하고, 초기설정코드의 코드값에 따라 상기 복수의 구간 중 최초 구간의 상기 제1 쓰기제어코드의 업데이트 주기를 결정하는 제1 쓰기제어코드 발생부;
    상기 프로그래밍 인에이블 신호에 응답하여 예정된 시간 동안 활성화 되는 제2 쓰기제어코드를 생성하는 제2 쓰기제어코드 발생부; 및
    업데이트 되는 상기 제1 쓰기제어코드에 대응하는 크기를 갖는 제1 프로그래밍 전류펄스를 출력하거나, 상기 제2 쓰기제어코드에 대응하는 크기를 갖는 제2 프로그래밍 전류펄스를 출력하는 데이터 쓰기부;
    를 포함하는 반도체 메모리 장치.
  14. 제13항에 있어서,
    상기 복수의 구간동안 각 구간이 진행될수록 상기 제1 쓰기제어코드의 업데이트 주기는 점점 증가하는 것을 특징으로 하는 반도체 메모리 장치.
  15. 제13항에 있어서,
    상기 제1 설정시간은 설정시간 조절코드의 코드값에 따라 조절되는 것을 특징으로 하는 반도체 메모리 장치.
  16. 제13항에 있어서,
    상기 제1 쓰기제어코드 발생부는,
    상기 구간제어신호 및 리셋 펄스신호에 응답하여 카운트 인에이블 신호 및 클럭 인에이블 신호를 출력하는 입력 래치부;
    상기 프로그래밍 검증 플래그 신호 및 상기 리셋 펄스신호에 응답하여 코드값이 업데이트 되는 주기설정코드 및 반복종료신호를 출력함에 있어서, 상기 초기설정코드의 코드값에 따라 상기 주기설정코드의 최초 코드값을 결정하고 상기 반복횟수 설정코드의 코드값에 따라 상기 주기설정코드의 업데이트 횟수를 결정하는 클럭발생 제어부;
    상기 클럭 인에이블 신호 및 상기 반복종료신호에 응답하여 카운팅 클럭신호를 생성함에 있어서, 상기 주기설정코드의 코드값에 따라 상기 카운팅 클럭신호의 토글링 주기를 조절하는 카운팅 클럭 발생부;
    상기 프로그래밍 인에이블 신호, 상기 카운트 인에이블 신호 및 상기 카운팅 클럭신호의 제어에 따라 카운팅 되는 카운팅 코드를 생성하여 상기 제1 쓰기제어코드로서 출력하는 쓰기제어코드 카운터부; 및
    상기 카운팅 코드가 소정의 값에 도달하면 상기 리셋 펄스신호를 생성하는 리셋펄스 발생부;를 포함하는 반도체 메모리 장치.
  17. 제16항에 있어서,
    상기 클럭발생 제어부는,
    상기 반복횟수 설정코드의 코드값에 대응하는 횟수만큼 상기 주기설정코드가 업데이트된 이후에 상기 반복종료신호를 활성화 시키는 것을 특징으로 하는 반도체 메모리 장치.
  18. 제16항에 있어서,
    상기 주기설정코드의 코드값은 업데이트 될 때마다 증가하는 것을 특징으로 하는 반도체 메모리 장치.
  19. 제16항에 있어서,
    상기 제1 쓰기제어코드의 업데이트 주기는 상기 카운팅 클럭신호의 토글링 주기에 대응하여 조절되는 것을 특징으로 하는 반도체 메모리 장치.
  20. 제16항에 있어서,
    상기 프로그래밍 검증 플래그 신호는 데이터가 정확하게 프로그래밍 되었는지 여부를 지시하는 신호인 것을 특징으로 하는 반도체 메모리 장치.
  21. 제16항에 있어서,
    상기 클럭발생 제어부는,
    상기 초기설정코드의 코드값을 최초 코드값으로서 입력받으며, 상기 프로그래밍 검증 플래그 신호 및 상기 리셋 펄스신호의 제어에 따라 카운팅 동작을 수행하는 주기설정코드 카운터부;
    상기 반복횟수 설정코드 및 상기 초기설정코드의 코드값을 합산하여 그 비교결과를 합산코드로서 출력하는 가산부;
    상기 합산코드와 상기 주기설정코드 카운터부에서 출력되는 카운팅 코드를 비교하여 상기 반복종료신호로서 출력하는 비교부; 및
    상기 프로그래밍 검증 플래그 신호 및 프로그래밍 확인신호에 응답하여 선택적으로 활성화 되는 페일신호를 출력하는 페일신호 출력부;를 포함하는 반도체 메모리 장치.
  22. 제16항에 있어서,
    상기 카운팅 클럭 발생부는,
    상기 클럭 인에이블 신호에 응답하여 예정된 주기로 토글링 하는 소스클럭신호를 출력하는 소스클럭 발생부;
    상기 반복종료신호, 상기 소스클럭신호 및 내부리셋신호의 제어에 따라 카운팅 동작을 수행하여 내부 카운팅 코드를 출력하는 내부 카운터부; 및
    상기 소스클럭신호의 제어에 따라 상기 내부 카운팅 코드 및 상기 주기설정코드를 조합하여 상기 카운팅 클럭신호 및 상기 내부리셋신호로서 출력하는 출력클럭 발생부;를 포함하는 반도체 메모리 장치.
  23. 제22항에 있어서,
    상기 출력클럭 발생부는,
    상기 내부 카운팅 코드 및 상기 주기설정코드의 각 비트값을 비교하여 복수의 비교결과신호로서 출력하는 복수의 비교부;
    상기 복수의 비교부에서 출력되는 상기 복수의 비교결과신호를 조합하여 조합신호로서 출력하는 신호 조합부; 및
    내부클럭신호 및 상기 조합신호의 제어에 따라 상기 카운팅 클럭신호 및 상기 내부리셋신호를 출력하는 신호 출력부;를 포함하는 반도체 메모리 장치.
  24. 제22항에 있어서,
    상기 출력클럭 발생부는,
    상기 주기설정코드에 기 설정된 코드값을 합산한 이후에 상기 내부 카운팅 코드와 조합하는 것을 특징으로 하는 반도체 메모리 장치.
  25. 예정된 시간 이후에 활성화 되는 구간제어신호 및 리셋 펄스신호에 응답하여 카운트 인에이블 신호 및 클럭 인에이블 신호를 출력하는 입력 래치부;
    프로그래밍 검증 플래그 신호 및 상기 리셋 펄스신호에 응답하여 코드값이 업데이트 되는 주기설정코드 및 반복종료신호를 출력함에 있어서, 초기설정코드의 코드값에 따라 상기 주기설정코드의 최초 코드값을 결정하고 반복횟수 설정코드의 코드값에 따라 상기 주기설정코드의 업데이트 횟수를 결정하는 클럭발생 제어부;
    상기 클럭 인에이블 신호 및 상기 반복종료신호에 응답하여 카운팅 클럭신호를 생성함에 있어서, 상기 주기설정코드의 코드값에 따라 상기 카운팅 클럭신호의 토글링 주기를 조절하는 카운팅 클럭 발생부;
    프로그래밍 인에이블 신호, 상기 카운트 인에이블 신호 및 상기 카운팅 클럭신호의 제어에 따라 카운팅 되는 카운팅 코드를 생성하여 쓰기제어코드로서 출력하는 쓰기제어코드 카운터부;
    상기 카운팅 코드가 소정의 값에 도달하면 상기 리셋 펄스신호를 생성하는 리셋펄스 발생부; 및
    업데이트 되는 상기 쓰기제어코드에 대응하는 크기를 갖는 프로그래밍 전류펄스를 출력하는 데이터 쓰기부;
    를 포함하는 반도체 메모리 장치.
  26. 제25항에 있어서,
    상기 클럭발생 제어부는,
    상기 반복횟수 설정코드의 코드값에 대응하는 횟수만큼 상기 주기설정코드가 업데이트된 이후에 상기 반복종료신호를 활성화 시키는 것을 특징으로 하는 반도체 메모리 장치.
  27. 제25항에 있어서,
    상기 주기설정코드의 코드값은 업데이트 될 때마다 증가하는 것을 특징으로 하는 반도체 메모리 장치.
  28. 제25항에 있어서,
    상기 쓰기제어코드의 업데이트 주기는 상기 카운팅 클럭신호의 토글링 주기에 대응하여 조절되는 것을 특징으로 하는 반도체 메모리 장치.
  29. 제25항에 있어서,
    상기 프로그래밍 검증 플래그 신호는 데이터가 정확하게 프로그래밍 되었는지 여부를 지시하는 신호인 것을 특징으로 하는 반도체 메모리 장치.
  30. 제25항에 있어서,
    상기 클럭발생 제어부는,
    상기 초기설정코드의 코드값을 최초 코드값으로서 입력받으며, 상기 프로그래밍 검증 플래그 신호 및 상기 리셋 펄스신호의 제어에 따라 카운팅 동작을 수행하는 주기설정코드 카운터부;
    상기 반복횟수 설정코드 및 상기 초기설정코드의 코드값을 합산하여 합산코드로서 출력하는 가산부;
    상기 합산코드와 상기 주기설정코드 카운터부에서 출력되는 카운팅 코드를 비교하여 그 비교결과를 상기 반복종료신호로서 출력하는 비교부; 및
    상기 프로그래밍 검증 플래그 신호 및 프로그래밍 확인신호에 응답하여 선택적으로 활성화 되는 페일신호를 출력하는 페일신호 출력부;를 포함하는 반도체 메모리 장치.
  31. 제25항에 있어서,
    상기 카운팅 클럭 발생부는,
    상기 클럭 인에이블 신호에 응답하여 예정된 주기로 토글링 하는 소스클럭신호를 출력하는 소스클럭 발생부;
    상기 반복종료신호, 상기 소스클럭신호 및 내부리셋신호의 제어에 따라 카운팅 동작을 수행하여 내부 카운팅 코드를 출력하는 내부 카운터부; 및
    상기 소스클럭신호의 제어에 따라 상기 내부 카운팅 코드 및 상기 주기설정코드를 조합하여 상기 카운팅 클럭신호 및 상기 내부리셋신호로서 출력하는 출력클럭 발생부;를 포함하는 반도체 메모리 장치.
  32. 제31항에 있어서,
    상기 출력클럭 발생부는,
    상기 내부 카운팅 코드 및 상기 주기설정코드의 각 비트값을 비교하여 복수의 비교결과신호로서 출력하는 복수의 비교부;
    상기 복수의 비교부에서 출력되는 상기 복수의 비교결과신호를 조합하여 조합신호로서 출력하는 신호 조합부; 및
    내부클럭신호 및 상기 조합신호의 제어에 따라 상기 카운팅 클럭신호 및 상기 내부리셋신호를 출력하는 신호 출력부;를 포함하는 반도체 메모리 장치.
  33. 제31항에 있어서,
    상기 출력클럭 발생부는,
    상기 주기설정코드에 기 설정된 코드값을 합산한 이후에 상기 내부 카운팅 코드와 조합하는 것을 특징으로 하는 반도체 메모리 장치.
KR1020100095648A 2010-09-30 2010-09-30 반도체 메모리 장치 KR101218605B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100095648A KR101218605B1 (ko) 2010-09-30 2010-09-30 반도체 메모리 장치
US12/982,972 US8374023B2 (en) 2010-09-30 2010-12-31 Semiconductor memory apparatus
TW100101766A TWI514383B (zh) 2010-09-30 2011-01-18 半導體記憶體設備
JP2011007857A JP2012079394A (ja) 2010-09-30 2011-01-18 半導体メモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100095648A KR101218605B1 (ko) 2010-09-30 2010-09-30 반도체 메모리 장치

Publications (2)

Publication Number Publication Date
KR20120033899A KR20120033899A (ko) 2012-04-09
KR101218605B1 true KR101218605B1 (ko) 2013-01-04

Family

ID=45889712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100095648A KR101218605B1 (ko) 2010-09-30 2010-09-30 반도체 메모리 장치

Country Status (4)

Country Link
US (1) US8374023B2 (ko)
JP (1) JP2012079394A (ko)
KR (1) KR101218605B1 (ko)
TW (1) TWI514383B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101201840B1 (ko) * 2010-04-26 2012-11-15 에스케이하이닉스 주식회사 반도체 메모리 장치
KR101201839B1 (ko) * 2010-04-26 2012-11-15 에스케이하이닉스 주식회사 반도체 메모리 장치 및 프로그래밍 전류펄스 생성방법
KR101201859B1 (ko) * 2010-09-03 2012-11-15 에스케이하이닉스 주식회사 반도체 메모리 장치 및 프로그래밍 전류펄스 조절방법
KR101153813B1 (ko) * 2010-09-30 2012-06-13 에스케이하이닉스 주식회사 반도체 메모리 장치
JP5702573B2 (ja) * 2010-10-20 2015-04-15 スパンション エルエルシー 不揮発性半導体記憶装置およびそのデータ書き込み方法
JP2022095431A (ja) * 2020-12-16 2022-06-28 ソニーセミコンダクタソリューションズ株式会社 メモリセルアレイユニット

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060684A (ko) * 2005-12-09 2007-06-13 삼성전자주식회사 상 변화 메모리 장치 및 그것의 프로그램 방법
KR20100067842A (ko) * 2008-12-12 2010-06-22 주식회사 하이닉스반도체 상변화 메모리 장치
KR20100067841A (ko) * 2008-12-12 2010-06-22 주식회사 하이닉스반도체 상변화 메모리 장치
KR20110118925A (ko) * 2010-04-26 2011-11-02 주식회사 하이닉스반도체 반도체 메모리 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120778A (ja) 1997-10-09 1999-04-30 Matsushita Electric Ind Co Ltd 不揮発性メモリー内蔵マイコン
JP3138688B2 (ja) 1998-07-24 2001-02-26 日本電気アイシーマイコンシステム株式会社 不揮発性半導体記憶装置及びプログラムベリファイ方法
JP3866627B2 (ja) 2002-07-12 2007-01-10 株式会社東芝 不揮発性半導体メモリ
JP3863485B2 (ja) 2002-11-29 2006-12-27 株式会社東芝 不揮発性半導体記憶装置
KR100564602B1 (ko) * 2003-12-30 2006-03-29 삼성전자주식회사 상 변화 메모리 어레이의 셋 프로그래밍 방법 및 기입드라이버 회로
US20060140007A1 (en) 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7486561B2 (en) 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7706189B2 (en) * 2007-05-25 2010-04-27 Sandisk Corporation Non-volatile storage system with transitional voltage during programming
TWI342022B (en) * 2007-07-05 2011-05-11 Ind Tech Res Inst A writing circuit for a phase change memory
KR100944343B1 (ko) * 2007-08-10 2010-03-02 주식회사 하이닉스반도체 상 변화 메모리 장치
KR20100006666A (ko) 2008-07-10 2010-01-21 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 멀티 레벨 셀 프로그램 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060684A (ko) * 2005-12-09 2007-06-13 삼성전자주식회사 상 변화 메모리 장치 및 그것의 프로그램 방법
KR20100067842A (ko) * 2008-12-12 2010-06-22 주식회사 하이닉스반도체 상변화 메모리 장치
KR20100067841A (ko) * 2008-12-12 2010-06-22 주식회사 하이닉스반도체 상변화 메모리 장치
KR20110118925A (ko) * 2010-04-26 2011-11-02 주식회사 하이닉스반도체 반도체 메모리 장치

Also Published As

Publication number Publication date
JP2012079394A (ja) 2012-04-19
TW201214433A (en) 2012-04-01
TWI514383B (zh) 2015-12-21
KR20120033899A (ko) 2012-04-09
US8374023B2 (en) 2013-02-12
US20120081953A1 (en) 2012-04-05

Similar Documents

Publication Publication Date Title
US7746688B2 (en) PRAM and method of firing memory cells
US7907437B2 (en) Resistance variable memory device and method of writing data
KR101218605B1 (ko) 반도체 메모리 장치
US7916525B2 (en) Phase-change memory device
KR101153813B1 (ko) 반도체 메모리 장치
KR101201840B1 (ko) 반도체 메모리 장치
KR101201839B1 (ko) 반도체 메모리 장치 및 프로그래밍 전류펄스 생성방법
KR100763231B1 (ko) 상변화 메모리 장치
KR101372434B1 (ko) 반도체 메모리 장치, 이를 위한 분할 프로그램 제어 회로 및 프로그램 방법
JP2013097856A (ja) 半導体メモリ装置、このための連続プログラム制御回路及びプログラム方法
KR101201859B1 (ko) 반도체 메모리 장치 및 프로그래밍 전류펄스 조절방법
KR20130123905A (ko) 비휘발성 반도체 장치 및 테스트 방법
KR101201841B1 (ko) 상변화 메모리 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171124

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181126

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191125

Year of fee payment: 8