KR20040008533A - 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법 - Google Patents

비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법 Download PDF

Info

Publication number
KR20040008533A
KR20040008533A KR1020020042172A KR20020042172A KR20040008533A KR 20040008533 A KR20040008533 A KR 20040008533A KR 1020020042172 A KR1020020042172 A KR 1020020042172A KR 20020042172 A KR20020042172 A KR 20020042172A KR 20040008533 A KR20040008533 A KR 20040008533A
Authority
KR
South Korea
Prior art keywords
program
program data
clock
bits
data
Prior art date
Application number
KR1020020042172A
Other languages
English (en)
Other versions
KR100474203B1 (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 KR10-2002-0042172A priority Critical patent/KR100474203B1/ko
Priority to JP2002359163A priority patent/JP3887304B2/ja
Priority to US10/320,521 priority patent/US6751158B2/en
Publication of KR20040008533A publication Critical patent/KR20040008533A/ko
Application granted granted Critical
Publication of KR100474203B1 publication Critical patent/KR100474203B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • 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
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells

Landscapes

  • Read Only Memory (AREA)

Abstract

본 발명은 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로 및 프로그램 방법에 관한 것으로, 워드(word)단위 프로그램 동작시, 프로그램 데이터의 비트를 카운팅(counting)하는 비트 카운터를 이용하여, 펌핑구간 내에서 프로그램 데이터들중 프로그램할 데이터만을 카운팅한 후 프로그램할 데이터의 비트수가 8개 미만일 경우에는 프로그램 동작을 한번에 워드단위로 수행함으로써, 프로그램 동작시간을 단축시킬 수 있는 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로 및 프로그램 방법을 개시한다.

Description

비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로 및 프로그램 방법{Bit counter, program circuit and method for programming of semiconductor device using the same}
본 발명은 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로 및 프로그램 방법에 관한 것으로, 프로그램 동작시, 프로그램 동작시간을 단축시킬 수 있는 비트 카운터와, 이를 이용한 EEROM(Electrically Erasable and Programmable Read Only Memory) 계열을 포함하는 불휘발성 메모리 소자의 프로그램 회로 및 프로그램 방법에 관한 것이다.
불휘발성 반도체 메모리 소자의 일종인 EEPROM(Electrically Erasable and Programmable Read Only Memory)의 메모리 셀에서는, 플로팅 게이트전극(Floating gate electrode)에 전자(electron)를 축적하여 프로그램(program)을 행하고, 전자의 존재 유무에 따른 문턱전압(Threshold Voltage; Vth)의 변화를 검출하여 데이터의 독출(read)을 행하고 있다. EEPROM에는, 메모리셀 어레이 전체에서 데이터의 소거(erase)를 행하거나, 메모리 셀 어레이를 임의의 블록으로 나눠 각 블록 단위로데이터 소거동작을 행하는 플래시 EEPROM(이하, '플래시 메모리 소자'라 함)이 있다.
일반적으로, 플래시 메모리 소자의 메모리 셀은 그 구조에 따라 스택 게이트형(stack gate type) 및 스플리트 게이트형(split gate type)이 제안되고 있다. 스택 게이트형 메모리 셀의 프로그램 동작은, 크게 프로그램단계와, 프로그램 검증단계(progam verify)로 분리된다. 각 단계에서의 바이어스(bias)는 일례로, 하기의 표1과 같다.
단계 프로그램단계 프로그램 검증단계
게이트전압 9V 6V
드레인전압 4V 1V
소오스전압 0V 0V
일반적으로, 프로그램 동작은, 플래시 메모리 소자의 메모리 셀의 문턱전압을 목표치 문턱전압으로 상승시키는 동작으로서, 프로그램단계에서는, 핫 캐리어의 주입을 통하여 플로팅 게이트전극 내에 전자를 주입하여 해당 메모리 셀의 문턱전압을 상승시키는 단계이고, 프로그램 검증단계에서는, 프로그램단계 진행시, 목표치 문턱전압까지의 변화량을 감지하여 적정한 수준에서 프로그램 동작을 멈추게 하는 단계를 말한다.
상기 표1을 토대로, 도 6 및 도 7를 참조하여 플래시 메모리 소자의 메모리 셀의 프로그램 동작을 설명하기로 한다. 여기서, 도 6은 프로그램 단계를 설명하기 위하여 도시한 단면도이며, 도 7는 프로그램 검증단계를 설명하기 위하여 도시한 단면도들이다. 한편, 도 6 및 도 7에 도시된 스택 구조의 게이트전극은 게이트산화막(608), 플로팅 게이트전극(610), 유전체막(612) 및 컨트롤 게이트전극(614)을 포함하며, 반도체 기판(602)은 P-웰(P-well), 소오스(604) 및 드레인(606)을 포함한다.
도 6을 참조하면, 프로그램 동작중, 프로그램단계에서는, 상기 표1에 나타낸 바와 같이, 컨트롤 게이트전극(614)에는 '9V'의 게이트전압을 인가하고, 드레인(606)에는 '4V'의 드레인전압을 인가하며, 소오스(604) 및 P-웰에는 '0V'(ground; GD)를 인가한다. 이로써, 도시된 화살표 방향과 같이, 소오스(604)에서 드레인(606) 및 플로팅 게이트전극(610)으로 핫 캐리어가 이동하게 되며, 이에 따라 플로팅 게이트전극(610) 내에 전자가 주입되어 메모리 셀의 문턱전압이 상승되게 된다.
도 7을 참조하면, 도 6에서, 프로그램 단계를 통해, 플로팅 게이트전극(610) 내에 전자가 주입되는 상태에서, 실시간으로 메모리 셀의 문턱전압을 감지하고, 문턱전압이 목표치에 도달하게 되면, 메인 셀(main cell; MC)의 컨트롤 게이트전극(114)에는 '6V'의 게이트전압을 인가하고, 드레인에는 '1V'의 드레인전압을 인가하는 한편, 참조 셀(referance cell; RC)의 컨트롤 게이트전극(614)에는 '3V'의 게이트전압을 인가하고, 드레인에는 '1V'의 드레인전압을 인가하여 프로그램 검증단계를 수행한다. 이때, 프로그램 검증단계는 메인 셀(MC)과 센스 앰프(sense amplifier)와 접속되는 참조 셀(RC)의 바이어스 조건에 따라 변화할 수 있다.
이러한, 전체 프로그램 동작은, 전체 메모리 셀에 대하여 모두 수행하기 위하여 반복적으로 수행되며, 이를 일례로 도 8에 도시된 흐름도를 통해 설명하면 다음과 같다. 예컨대, 전체 메모리 셀을 워드(word)단위(즉, 16비트)로 프로그램 동작을 수행한다. 이 경우에는, 우선적으로, 워드단위에 포함되는 모든 해당 메모리 셀에 대하여 프로그램 단계와 프로그램 검증단계를 수행한다(S810 및 S820). 그런 다음, 워드단위에 포함된 해당 메모리 셀중 프로그램 단계 및 프로그램 검증단계에서 패일된 메모리 셀이 존재하는지 검사한다(S830). 만일 단계 'S830'에서 패일된 셀이 존재할 경우에는 패일된 셀에 한하여 프로그램 단계와 프로그램 검증단계를 수행한다(S840 및 S850). 이러한 동작은, 해당 메모리 셀이 모두 패스할 때까지 반복적으로 수행된다.
일반적으로, 워드단위로 프로그램 동작을 수행하는 경우에는, 드레인에서 소오스로 흐르는 프로그램 전류(program current)가 매우 크기 때문에 드레인 펌핑(pumping)의 동작전류를 줄이고, 프로그램 효율을 증가시키기 위하여 내부적으로 바이트(byte) 단위로 프로그램 동작을 수행한다. 즉, 워드단위 프로그램 동작시, 먼저 I/O(Input/Output)<7:0>(즉, 8비트)에 대하여 프로그램단계를 수행하고, 그 다음 I/O<15:8>(즉, 8비트)에 대하여 프로그램단계를 수행한다. 그런 다음, I/O<15:0>(즉, 16비트)에 대하여 한번에 프로그램 검증단계를 수행하여, 패일(fail)이 발생할 경우, 상기 동작을 반복하여 수행하고, 패스(pass)되면 프로그램 동작을 종료한다.
그러나, 도 9에 도시된 전체 메모리 셀의 분포도에서 나타난 바와 같이, 프로그램 동작시에는, 'A'부위(셀의 문턱전압이 4.5V인 지점)에서, 한계치(marginal)셀(즉, 패스 기준의 커트라인(cut line)에 해당하는 셀)이 존재하게 되는데, 이런 상태에서 프로그램 검증단계를 진행하는 경우, 바이어스의 마진(margine)에 따라 한계치 셀들이 패스(pass)에서, 다시 패일(fail)로 판명되는 경우가 발생하게 된다.
상기와 같이, 패일이 발생하여 프로그램 동작이 반복적으로 수행될 경우에는, 16개 셀중에 패스된 비트가 있다고 하더라도 항상 8비트씩 두번 프로그램 펄스(program pulse)가 인가되게 된다. 즉 프로그램 타임(program time)이 5㎲라고 한다면, 항상 '5 ×2 = 10㎲'가 패일날 때마다 반복되어 프로그램 타임이 정수배로 늘어난다. 이에 따라, 프로그램 동작시 바이어스를 공급하는 펌핑회로(Pumping circuit)의 부담을 유발할 뿐만 아니라, 전체 프로그램 동작시간을 증가시키는 원인이 된다. 또한, 이미 프로그램된 셀에 반복적으로 바이어스가 인가되어 과도 프로그램(over program)이 발생하어 데이터의 보존능력(retention)을 저하시키는 문제를 가져온다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 안출된 것으로서, 프로그램 동작시, 프로그램 동작시간을 단축시킬 수 있는 비트 카운터를 제공하는데 그 목적이 있다.
또한, 본 발명은 상기 비트 카운터를 이용한 반도체 소자의 프로그램 회로를 제공하는데 다른 목적이 있다.
또한, 본 발명은 상기 비트 카운터를 이용한 반도체 소자의 프로그램 방법을 제공하는데 또 다른 목적이 있다.
도 1은 본 발명의 바람직한 실시예에 따른 비트 카운터의 블럭도이다.
도 2는 도 1에 도시된 비트 카운터의 상세 회로도이다.
도 3은 도 1에 도시된 비트 카운터의 동작 파형도이다.
도 4는 도 1에 도시된 비트 카운터를 이용한 반도체 소자의 프로그램 방법을 설명하기 위한 흐름도이다.
도 5는 도 1에 도시된 클럭 발생부의 클럭신호들의 파형도이다.
도 6은 일반적인 플래시 메모리 소자의 프로그램 단계를 설명하기 위하여 도시한 메모리 셀의 단면도이다.
도 7은 일반적인 플래시 메모리 소자의 프로그램 검증단계를 설명하기 위하여 도시한 메모리 셀의 단면도이다.
도 8은 일반적인 플래시 메모리 소자의 전체 프로그램 동작을 설명하기 위하여 도시한 흐름도이다.
도 9는 일반적인 플래시 메모리 소자의 라인(line)별 메모리 셀의 분포도이다.
〈도면의 주요 부분에 대한 부호의 설명〉
110 : 지연부 120 : 클럭 발생부
130 : 논리 조합부 140 : 프로그램 동작 제어부
본 발명에서는, 입력되는 프로그램 데이터들과 대응되고, 상기 프로그램 데이터들중 프로그램할 프로그램 데이터에 의해서만 동기되어, 서로 다른 클럭신호를 발생하기 위한 다수의 클럭 발생부와, 상기 클럭 발생부로부터 출력되는 상기 클럭신호에 따라 동기되고, 동기시 입력 데이터를 순차적으로 쉬프트시켜, 상기 프로그램 데이터들중 프로그램할 프로그램 데이터의 비트 수를 카운팅하는 카운터를 포함하는 비트 카운터를 제공한다.
또한, 본 발명에서는, 프로그램 데이터들을 전송하는 I/O 단자와, 상기 I/O 단자로부터 전송된 프로그램 데이터들중 프로그램할 상기 프로그램 데이터의 비트수를 카운팅하는 상기 비트 카운터와, 상기 비트 카운터에 의해 카운팅된 상기 비트수에 따라, 프로그램 동작을 워드단위 또는 바이트단위로 선택하여 프로그램 동작을 수행하는 스테이트 머쉰을 포함하는 프로그램 회로를 제공한다.
또한, 본 발명에서는, 상기 프로그램 회로를 이용한 프로그램 방법에 있어서, 프로그램 동작을 수행하기 위하여, 프로그램 데이터 및 어드레스를 셋업하고, 프로그램 커맨드를 입력하는 단계와, 상기 프로그램 동작을 수행하기 위하여, 프로그램 전압을 펌핑하는 펌핑구간 내에 상기 프로그램 데이터중 프로그램할 프로그램 데이터의 비트수를 카운팅하는 단계와, 상기 전단계에서 카운팅된 비트수에 따라,상기 프로그램 동작을 워드단위 또는 바이트단위로 선택하여 수행하는 단계를 포함하는 프로그램 방법을 제공한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 한편, 도면상에서 동일 부호는 동일한 요소를 지칭하며, 중복되는 요소에 대해서는 설명을 생략하기로 한다.
도 1은 본 발명의 바람직한 실시예에 따른 비트 카운터(bit counter circuit)를 설명하기 위하여 도시한 블럭도이고, 도 2는 도 1에 도시된 비트 카운터의 상세 회로도이다.
도 1 및 도 2를 참조하면, 본 발명의 바람직한 실시예에 따른 비트 카운터는 지연부(delay unit; 110), 클럭 발생부(clock generator unit; 120), 논리 조합부(logic combination unit; 130) 및 카운터(counter; 140)를 포함한다. 한편, 이하에서, 설명하는, 프로그램 데이터신호들(program data signals ; D0 내지 D15, <15:0>)은 I/O 단자(미도시)로부터 전송된다. 일반적으로 프로그램 데이터신호의 상태가 로우상태(low state; '0')의 경우에는 프로그램하고, 하이상태(high state; '1')의 경우에는 프로그램 하지 않고 소거(erase) 상태로 유지한다.
상기 지연부(110)는 입력되는 프로그램 데이터신호들(D1 내지 D15)과 일대응되도록 다수의 지연부들(110a 내지 110o), 예컨대 15개의 지연부들(110a 내지110o)을 포함한다. 이러한 이유는, 프로그램 데이터신호(D0)는 지연시킬 필요가 없기 때문에, 프로그램 데이터신호(D1)부터 지연시키기 위함이다. 각 지연부들(110a 내지 110o)은 I/O 단자들로부터 전송되는 프로그램 데이터신호들(D1 내지 D15)을 각각 입력받아, 대략 '1' 클럭(clock)씩 지연시켜 출력한다. 이는, 클럭 발생부(120)에 포함된 다수(예컨대, 16개)의 클럭 발생부들(120a 내지 120p)에서 발생하는 각 클럭신호들(CLK0 내지 CLK15)이 서로 중첩되지 않도록 하기 위함이다. 이를 위하여, 지연부들(110a 내지 110o)은 정수배씩 지연된 각 지연신호들(DELAY1 내지 DELAY15)을 출력한다. 예컨대, 지연부들(110a 내지 110o)의 각 지연신호들(DELAY1 내지 DELAY15)의 클럭은 하기의 표 2와 같다.
DELAY1 DELAY2 DELAY3 DELAY4 DELAY5 DELAY6 DELAY7 DELAY8 DELAY9 DELAY10 DELAY11 DELAY12 DELAY13 DELAY14 DELAY15
1(CLK) 2(CLK) 3(CLK) 4(CLK) 5(CLK) 6(CLK) 7(CLK) 8(CLK) 9(CLK) 10(CLK) 11(CLK) 12(CLK) 13(CLK) 14(CLK) 15(CLK)
상기 클럭 발생부(120)는 프로그램 데이터신호들(D0 내지 D15)과 일대응되도록 다수의 클럭 발생부들(120a 내지 120p)을 포함한다. 클럭 발생부들중(120a 내지 120p), 맨 처음의 클럭 발생부(120a)는 프로그램 데이터신호(D0)에 의해 동기되고, 이 외의 클럭 발생부들(120b 내지 120p)은 각 지연부들(110a 내지 110o)로부터 출력되는 지연신호들(DELAY1 내지 DELAY15)에 의해 동기된다. 각 클럭 발생부들(120a 내지 120p)은 대략 '10㎱'의 주기를 가지는 클럭을 생성시키며, 프로그램 데이터신호가 로우상태일 경우에만 동기되어 클럭을 생성한다. 예컨대, 프로그램 데이터신호들(D0 내지 D15)의 값이 '0000'(즉, 0000, 0000, 0000, 0000, 0000)일 경우에 각클럭신호들(CLK0 내지 CLK15)은 도 5와 같다. 한편, 도 5에는 각 클럭신호들(CLK0 내지 CLK15)은 전 클럭신호(예컨대, CLK0)의 하강에지(down edge)에 동기되어 클럭신호가 발생하는 것처럼 도시되어 있으나, 실제로는, 후속 논리 조합부(130)에서의 논리합을 위하여 후속 클럭신호(예컨대, CLK1)는 전 클럭신호의 하강에지에 동기되지 않고, 일정 시간후 후속 클럭신호가 발생하게 된다.
상기 논리 조합부(130)는 오아 게이트(OR gate)로 이루어지며, 각 클럭 발생부들(120a 내지 120p)로부터 출력되는 각 클럭신호들(CLK0 내지 CLK15)을 논리합하여, 프로그램 동작 제어부(140)를 구성하는 각 D-플립플롭들(D-Flip/Flops; D-FF)(D-FF0 내지 D-FF7)을 동기시키기 위한 동기 클럭신호(GCLK)를 출력한다. 여기서, 논리 조합부(130)는 오아 게이트로만 이루어져 있으나, 이는 일례로 클럭신호들(CLK0 내지 CLK15)중 어느 하나의 클럭신호가 하이상태로 출력되는 경우 동기 클럭신호(GCLK)를 생성할 수 있도록, 논리 조합할 수 있는, 앤드 게이트(AND gate), 노아 게이트(NOR gate), 난드 게이트(NAND gate) 및 인버터(inverter) 들의 조합으로 구성할 수도 있다.
상기 카운터(140)(이하, '프로그램 동작 제어부(program operation control unit'라 함)는 논리 조합부(130)로부터 출력되는 동기 클럭신호(GCLK)에 의해 동기되어, 쉬프터 레지스터(shifter resister)로 기능하는 다수의 D-플립플롭들(D-FF0 내지 D-FF7)(예컨대, 8개)을 포함한다. 이는, 일반적으로 프로그램 동작을 16비트로 할 경우, 16비트를 8비트씩 하이바이트(high byte; H-Byte)와 로우바이트(low byte; L-Byte)로 분리하여 프로그램 동작을 수행하기 때문이다. 프로그램 동작 제어부(104)는 동기 클럭신호(GCLK)가 발생할 때마다, 전원단자(Vcc)로부터 'D' 단자로 입력되는 데이터(즉, '1')를 순차적으로 이동시킨다. 이는 하기의 표 3과 같다.
GCLK Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
0 0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
2 1 1 1 0 0 0 0 0
3 1 1 1 1 0 0 0 0
4 1 1 1 1 1 0 0 0
5 1 1 1 1 1 1 0 0
6 1 1 1 1 1 1 1 0
7 1 1 1 1 1 1 1 1
상기 표 3을 참조하면, 동기 클럭신호(GCLK)는 클럭 발생부들(120a 내지 120p)로부터 출력되는 각 클럭신호들(CLK0 내지 CLK15)중 어느 하나가 하이상태(즉, 펄스가 발생할 경우)일 경우에 발생된다. 이에 따라, 각 클럭신호들(CLK0 내지 CLK15)중 어느 하나가 하이상태일 경우에는 하이상태의 동기 클럭신호(GCLK)가 발생되어, 각 D-플립플롭들(D-FF0 내지 D-FF7)로 입력된다. 이로써, 각 D-플립플롭들(D-FF0 내지 D-FF7)은 동기 클럭신호(GCLK)가 하이상태로 발생될때마다 동기되어, 순차적으로 'D' 단자로 입력되는 데이터(즉, '1')를 'D-FF0' 에서 'D-FF7'로 이동시켜 출력한다.
만약, 표 3과 같이, 프로그램 동작 제어부(140)의 D-플립플롭(D-FF7)의 출력신호(Q7; 오버플로우(overflow))가 하이상태로 출력될 경우(즉, 오버플로우가 발생할 경우)에는 프로그램 데이터신호들(D0 내지 D15)중 로우상태(즉, 프로그램 동작 수행)인 데이터가 8개 이상 존재한다는 것을 의미한다. 이 경우에는, 일반적인 방법과 동일하게 프로그램 동작을 하이바이트와 로우바이트로 분리하여 각각 실시한다. 그러나, 프로그램 동작 제어부(140)의 D-플립플롭(D-FF7)의 출력신호(Q7; 오버플로우(overflow))가 로우상태로 출력될 경우(즉, 오버플로우가 발생하지 않을 경우)에는 프로그램 데이터신호들(D0 내지 D15)중 로우상태인 프로그램 데이터신호가 8개 미만으로 존재한다는 것을 의미한다. 이 경우에는, 프로그램 동작을 하이바이트와 로우바이트로 분리하지 않고, 하이바이트와 로우바이트를 모두 한번(즉, 16비트)에 실시한다.
이하에서는, 상기에서 설명한 비트 카운터의 동작 특성에 대해서, 도 3을 통해 구체적으로 설명하기로 한다. 도 3은 도 2에 도시된 비트 카운터의 동작 파형도로서, 일례로 프로그램 데이터신호(D0 내지 D15)가 'F844'(즉, 1111, 1000, 0100, 0100)일 때의 파형도이다. 도 4는 도 2에 도시된 비트 카운터를 이용한 프로그램 방법을 설명하기 위한 흐름도이다.
도 3 및 도 4를 참조하면, 우선 초기 독출(read) 상태에서, 프로그램 동작을 수행하기 위하여, 프로그램 데이터 및 어드레스를 셋업(program data and address set up)하고(S410), 프로그램 인에이블바신호(write enable bar signal; WEb)와 데이터 큐(data queue; DQ)를 사용하여 프로그램 커맨드(program command)를 입력한다(S420). 일반적으로, 프로그램 동작을 수행하기 위한 내부 스테이트 머쉰(state machine; 미도시)은 프로그램 인에이블바신호(WEb)가 하이상태로 천이하는 순간 동기된다.
한편, 도 2에 도시된 본 발명의 비트 카운터는 셀의 게이트전압과 드레인전압을 생성하기 위한 펌핑구간(Pumping)(즉, 펌핑회로의 동작구간)에서 동작된다.예컨대, 프로그램 동작시, 셀의 게이트전압(PQP파형 참조)은 일반적으로 '9V'가 필요하다. 이에 따라, 목표치 게이트전압을 얻기 위해서는 불가피하게 펌핑구간(Pumping)이 필요하다. 따라서, 본 발명에서는, 이 펑핑구간(Pumping) 동안(일반적으로, 다른 회로(미도시)들은 동작을 하지 않음)에 비트 카운터를 동작시켜, 프로그램할 비트를 카운팅한다(S430).
단계 'S430' 동안에는, 프로그램 데이터신호(D0 내지 D15)가 지연부(도 1의 '110'참조)로 입력되면, 지연부(110)는 이 프로그램 데이터신호(D1 내지 D15)를 상기 표 2와 같이 '1' 클럭씩 지연시켜, 클럭 발생부(도 1의 '120'참조)로 출력한다. 클럭 발생부(120)는 프로그램 데이터신호(D0 내지 D15)에 의해 순차적으로 동기되어 각 클럭신호들(CLK0 내지 CLK15)을 출력한다. 이때, 클럭 발생부(120)로부터 출력되는 각 클럭신호들(CLK0 내지 CLK15)중, 클럭신호들(CLK0 및 CLK1, CLK3 내지 CLK5, CLK7 내지 CLK10)만 펄스가 발생된다. 이는, 프로그램 데이터신호가 로우상태로 입력되는 경우에만 클럭 발생부(120)를 통해 펄스가 발생되기 때문이다. 이후, 클럭 발생부(120)로부터 출력되는 클럭신호들(CLK0 내지 CLK15)은 논리 조합부(130)로 입력된다. 논리 조합부(130)는 이 클럭신호들(CLK0 내지 CLK15)을 논리합하여 동기 클럭신호(GLK)를 출력한다. 이때, 동기 클럭신호(GLK)는 '9개'(즉, 0000, 0111, 1011, 1011)의 하이펄스(high pulse)가 출력된다. 이에 따라, 프로그램 동작 제어부(도 1의 '140'참조)의 D-플립플롭(D-FF7)은 하이상태의 오버플로우를 출력한다.
단계 'S430'에서 프로그램 동작 제어부(140)의 D-플립플롭(D-FF7)에서 오버플로우가 발생할 경우에는(S440), 프로그램 데이터신호들(D0 내지 D15)중 프로그램 동작을 수행할 데이터가 '8개'이상 존재하는 것으로서, 이 경우 프로그램 동작을 로우바이트(L-Byte; program-1)와 하이바이트(H-Byte; program-2)로 분리하여 수행한다(S450 및 S460). 그러나, 단계 'S430'에서 프로그램 동작 제어부(140)의 D-플립플롭(D-FF7)에서 오버플로우가 발생하지 않은 경우에는(S440), 프로그램 데이터신호들(D0 내지 D15)중 프로그램 동작을 수행할 데이터가 '8개' 미만으로 존재하는 것으로서, 이 경우 프로그램 동작을 워드단위(즉, L-Byte 및 H-Byte를 포함)로 수행한다(S470).
이후, 해당 셀에 대한 프로그램 동작이 이루어진 후, 이 셀에 대하여 프로그램 검증단계를 수행하여, 패일(Fail)이 발생할 경우, 상기 단계 'S430'을 이동하여 프로그램 동작을 반복하여 수행하고, 패스(Pass)되면 프로그램 동작을 완료한다(S480 및 S490).
상기에서 설명한 바와 같이, 본 발명에서는 비트 카운터를 이용하여, 펌핑구간 내에, 프로그램 데이터신호들중 프로그램하고자 할 데이터신호만을 카운팅한다. 즉, 클럭 발생부(도 1의 '120'참조)로부터 출력되는 클럭신호들(CLK0 내지 CLK15)은 '10㎱'의 주기를 가지며, 모든 I/O 단자로부터 전송되는 프로그램 데이터신호가, '0000H'(hexadecimal)가 되어도 전체 주기는 '10㎱ ×16 = 160㎱'정도가 된다. 이에 따라, 펌핑구간은 '1㎲' 정도이기 때문에 펌핑구간 내에 프로그램 데이터신호의 비트 카운팅 동작은 이미 완료가 가능하다.
또한, 상기에서 설명한 바와 같이, 프로그램 데이터신호들(D0 내지 D15)이'F844'(즉, 1111, 1000, 0100, 0100)일 경우에는, 프로그램할 데이터신호의 '0'의 갯수가 '9개'가 존재한다. 이에 따라, '160㎱' 전체 주기 동안, 동기 클럭신호(GCLK)는 '9개'가 발생한다. 이로써, D-플립플롭들(D-FF0 내지 D-FF7)은 동기 클럭신호(GCLK)에 의해 순차적으로 '9번' 이동되고, 동기 클럭신호(GCLK)의 '8번째' 클럭에서 오버플로우가 래치(latch)된다. 따라서, 프로그램할 데이터신호의 비트수가 '16개'중 '8개' 이상이므로, '8개'를 프로그램하기 위해 설계된 일반적인 드레인전압 발생용 펌프회로(미도시)로는 한번에 프로그램 동작을 수행하기는 불가능하다. 이에 따라 프로그램 동작은 두번으로 나누어서 수행되어져야 한다. 즉, 오버플로우가 발생하게 되면, 프로그램 동작은 두번으로 나누어 수행되게 된다. 반면, 프로그램할 데이터신호가 '8개'가 넘지않을 경우에는 펌핑구간에서 오버플로우가 발생하지 않기 때문에 충분히 드레인전압 발생용 펌프회로를 이용하여 동시에 모든 비트(즉, 워드단위)에 대하여 프로그램 동작을 수행하는 것이 가능하다. 따라서, 프로그램 데이터신호의 갯수가 '8개' 미만일 경우에는 프로그램 동작을 두번에 나누어서 수행하지 않고, 한번에 수행함으로써 전체 프로그램 동작시간을 단축시킬 수 있다. 또한, 검증후 패일되어 프로그램 동작이 다시 진행될 경우에도 프로그램 동작시간을 단축시킬 수 있다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예들에서 구체적으로 기술되었으나, 상기한 실시예들은 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
이상 설명한 바와 같이, 본 발명에서는, 프로그램 동작시, 비트 카운터를 이용하여, 펌핑구간 내에 프로그램 데이터들중 프로그램할 데이터만을 카운팅한 후 프로그램할 데이터가 8개 미만일 경우에는 프로그램 동작을 한번에 워드단위로 수행함으로써, 프로그램 동작시간을 단축시킬 수 있다.

Claims (14)

  1. 입력되는 프로그램 데이터들과 대응되고, 상기 프로그램 데이터들중 프로그램할 프로그램 데이터에 의해서만 동기되어, 서로 다른 클럭신호를 발생하기 위한 다수의 클럭 발생부; 및
    상기 클럭 발생부로부터 출력되는 상기 클럭신호에 따라 동기되고, 동기시 입력 데이터를 순차적으로 쉬프트시켜, 상기 프로그램 데이터들중 프로그램할 프로그램 데이터의 비트 수를 카운팅하는 카운터를 포함하는 것을 특징으로 하는 비트 카운터.
  2. 제 1 항에 있어서,
    상기 클럭신호들이 서로 중첩되지 않도록, 상기 프로그램 데이터들과 대응되며, 상기 프로그램 데이터들이, 각각 서로 다른 크기로 지연되어 상기 클럭 발생부로 입력되도록 하는 다수의 지연부를 더 포함하는 것을 특징으로 하는 비트 카운터.
  3. 제 1 항에 있어서, 상기 클럭신호의 주기는,
    10㎱인 것을 특징으로 하는 비트 카운터.
  4. 제 1 항에 있어서,
    상기 클럭 발생부로부터 출력되는 상기 클럭신호들을 논리 조합하여, 상기 카운터를 동기시키기 위한 동기 출력신호를 출력하는 논리 조합부를 더 포함하는 것을 특징으로 하는 비트 카운터.
  5. 제 4 항에 있어서, 상기 논리 조합부는,
    상기 클럭신호들중 어느 하나가 하이상태로 입력되면, 하이상태의 클럭펄스를 출력하는 것을 특징으로 하는 비트 카운터.
  6. 제 1 항에 있어서, 상기 카운터는,
    상기 클럭신호에 의해 동기되는 다수의 D-플립플롭을 포함하는 것을 특징으로 하는 비트 카운터.
  7. 제 1 항에 있어서, 상기 카운터는,
    상기 클럭신호에 의해 동기되고, 서로 직렬 접속되는 8개의 D-플립플롭을 포함하는 것을 특징으로 하는 비트 카운터.
  8. 프로그램 데이터들을 전송하는 I/O 단자;
    상기 I/O 단자로부터 전송된 프로그램 데이터들중 프로그램할 상기 프로그램 데이터의 비트수를 카운팅하는 제 1 항의 비트 카운터; 및
    상기 비트 카운터에 의해 카운팅된 상기 비트수에 따라, 프로그램 동작을 워드단위 또는 바이트단위로 선택하여 프로그램 동작을 수행하는 스테이트 머쉰을 포함하는 것을 특징으로 하는 프로그램 회로;
  9. 제 8 항에 있어서,
    상기 비트수가 적어도 8개 이상일 경우, 상기 스테이트 머쉰은, 상기 프로그램 동작을 바이트단위로 나누어 두번에 걸쳐 수행하는 것을 특징으로 하는 프로그램 회로.
  10. 제 8 항에 있어서,
    상기 비트수가 7개 이하일 경우, 상기 스테이트 머쉰은, 상기 프로그램 동작을 워드단위로 한번에 수행하는 것을 특징으로 하는 프로그램 회로.
  11. 제 8 항의 프로그램 회로를 이용한 프로그램 방법에 있어서,
    (a) 프로그램 동작을 수행하기 위하여, 프로그램 데이터 및 어드레스를 셋업하고, 프로그램 커맨드를 입력하는 단계;
    (c) 상기 프로그램 동작을 수행하기 위하여, 프로그램 전압을 펌핑하는 펌핑구간 내에 상기 프로그램 데이터중 프로그램할 프로그램 데이터의 비트수를 카운팅하는 단계; 및
    (d) 상기 (c)단계에서 카운팅된 비트수에 따라, 상기 프로그램 동작을 워드단위 또는 바이트단위로 선택하여 수행하는 단계를 포함하는 것을 특징으로 하는프로그램 방법.
  12. 제 11 항에 있어서,
    상기 (d) 단계에서, 상기 프로그램 동작은, 상기 비트수가 적어도 8 이상일 경우에 상기 바이트단위로 나누어 두번에 걸쳐 수행하는 것을 특징으로 하는 프로그램 방법.
  13. 제 11 항에 있어서,
    상기 (d) 단계에서, 상기 프로그램 동작은, 상기 비트수가 7개 이하일 경우에, 상기 워드단위로 한번에 수행하는 것을 특징으로 하는 프로그램 방법.
  14. 제 11 항에 있어서,
    상기 (d) 단계이후, 프로그램 검증단계를 실시하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 방법.
KR10-2002-0042172A 2002-07-18 2002-07-18 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법 KR100474203B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2002-0042172A KR100474203B1 (ko) 2002-07-18 2002-07-18 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법
JP2002359163A JP3887304B2 (ja) 2002-07-18 2002-12-11 ビットカウンタとこれを用いた半導体素子のプログラム回路及びプログラム方法
US10/320,521 US6751158B2 (en) 2002-07-18 2002-12-17 Bit counter, and program circuit in semiconductor device and method of programming using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0042172A KR100474203B1 (ko) 2002-07-18 2002-07-18 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법

Publications (2)

Publication Number Publication Date
KR20040008533A true KR20040008533A (ko) 2004-01-31
KR100474203B1 KR100474203B1 (ko) 2005-03-10

Family

ID=30439345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0042172A KR100474203B1 (ko) 2002-07-18 2002-07-18 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법

Country Status (3)

Country Link
US (1) US6751158B2 (ko)
JP (1) JP3887304B2 (ko)
KR (1) KR100474203B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7417896B2 (en) 2004-12-14 2008-08-26 Samsung Electronics Co., Ltd. Flash memory device capable of reduced programming time

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100743994B1 (ko) 2005-09-14 2007-08-01 주식회사 하이닉스반도체 내부 전압 제어 장치
US7382661B1 (en) 2007-02-07 2008-06-03 Elite Semiconductor Memory Technology Inc. Semiconductor memory device having improved programming circuit and method of programming same
US7525849B2 (en) * 2007-02-13 2009-04-28 Elite Semiconductor Memory Technology, Inc. Flash memory with sequential programming
US8570828B2 (en) * 2010-04-12 2013-10-29 Mosaid Technologies Incorporated Memory programming using variable data width
US8804429B2 (en) * 2011-12-08 2014-08-12 Silicon Storage Technology, Inc. Non-volatile memory device and a method of programming such device
KR102341261B1 (ko) 2017-11-13 2021-12-20 삼성전자주식회사 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3607439B2 (ja) * 1996-11-11 2005-01-05 株式会社日立製作所 半導体集積回路装置
JP4154771B2 (ja) * 1998-11-10 2008-09-24 ソニー株式会社 不揮発性半導体記憶装置およびそのデータ書き込み方法
KR20000044664A (ko) * 1998-12-30 2000-07-15 김영환 바이트 단위의 프로그램이 가능한 플래시 이이피롬
KR20010091656A (ko) * 2000-03-17 2001-10-23 박종섭 이피롬(eprom)프로그래밍 장치
JP4762435B2 (ja) * 2001-05-09 2011-08-31 富士通セミコンダクター株式会社 内部カウンタを複数備えた不揮発性半導体記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7417896B2 (en) 2004-12-14 2008-08-26 Samsung Electronics Co., Ltd. Flash memory device capable of reduced programming time
US7492642B2 (en) 2004-12-14 2009-02-17 Samsung Electronics Co., Ltd. Flash memory device capable of reduced programming time

Also Published As

Publication number Publication date
US20040013026A1 (en) 2004-01-22
JP2004055107A (ja) 2004-02-19
US6751158B2 (en) 2004-06-15
JP3887304B2 (ja) 2007-02-28
KR100474203B1 (ko) 2005-03-10

Similar Documents

Publication Publication Date Title
JP2607470B2 (ja) プログラム可能な論理装置
US5434815A (en) Stress reduction for non-volatile memory cell
US9213389B2 (en) Non-volatile semiconductor memory device with power-saving feature
KR100265390B1 (ko) 자동 센싱시간 트래킹 회로를 구비한 플래쉬 메모리 셀의래치 회로
JP4472839B2 (ja) フラッシュメモリ装置
KR100474203B1 (ko) 비트 카운터 및 이를 이용한 반도체 소자의 프로그램 회로및 프로그램방법
US6809983B2 (en) Clock generator for pseudo dual port memory
US10802721B2 (en) Memory devices configured to latch data for output in response to an edge of a clock signal generated in response to an edge of another clock signal
JP2003338188A (ja) プログラムカウント回路及びこれを用いたフラッシュメモリ素子のプログラムワードライン電圧発生回路
KR20110001088A (ko) 불휘발성 메모리 소자
EP1054408B1 (en) Semiconductor storage device
KR100296329B1 (ko) 플래쉬 메모리 장치의 소거 방법 및 리커버리용기판 전압공급 회로
KR101132105B1 (ko) 반도체 메모리 장치 및 그 동작 방법
US6525961B2 (en) Method and circuit for programming a multilevel non-volatile memory
US6822908B1 (en) Synchronous up/down address generator for burst mode read
JP4266498B2 (ja) フラッシュメモリ回路
CN104464806A (zh) 一种适用于eeprom和flash的灵敏放大器
US7145803B2 (en) Semiconductor memory device
US11646088B2 (en) Flash memory programming check circuit
CN103310832B (zh) 侦测地址转变的电路与方法
US9093159B2 (en) Semiconductor memory device
US6995596B2 (en) Process and skew tolerant precharge circuit
KR100195272B1 (ko) 다수상태 불휘발성 메모리에서의 프로그램 인터럽트장치및그방법
TWI473114B (zh) 偵測位址轉變之電路與方法
JPH1145581A (ja) 半導体記憶装置

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: 20130221

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140205

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150205

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160211

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180119

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190130

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20191219

Year of fee payment: 16