KR100572622B1 - 멀티 타임 프로그래머블 반도체 메모리 장치 및 멀티 타임프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍방법 - Google Patents

멀티 타임 프로그래머블 반도체 메모리 장치 및 멀티 타임프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍방법 Download PDF

Info

Publication number
KR100572622B1
KR100572622B1 KR1020040110009A KR20040110009A KR100572622B1 KR 100572622 B1 KR100572622 B1 KR 100572622B1 KR 1020040110009 A KR1020040110009 A KR 1020040110009A KR 20040110009 A KR20040110009 A KR 20040110009A KR 100572622 B1 KR100572622 B1 KR 100572622B1
Authority
KR
South Korea
Prior art keywords
unit
programmable
signal
cell
programming
Prior art date
Application number
KR1020040110009A
Other languages
English (en)
Inventor
정종훈
김규홍
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040110009A priority Critical patent/KR100572622B1/ko
Priority to US11/316,421 priority patent/US7227802B2/en
Priority to CNB2005101216377A priority patent/CN100568394C/zh
Priority to JP2005370636A priority patent/JP4528257B2/ja
Application granted granted Critical
Publication of KR100572622B1 publication Critical patent/KR100572622B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory

Landscapes

  • Read Only Memory (AREA)

Abstract

복수개의 원 타임 프로그래머블 셀을 구비한 복수개의 프로그래머블 유닛을 포함한 유닛 어레이, 어드레스 신호에 응답하여 유닛 어레이에 포함된 프로그래머블 유닛을 특정하는 유닛 선택 신호를 발생시키는 유닛 디코더 회로, 및 유닛 어레이로부터 입력받은 유닛 선택 신호에 의해 특정된 프로그래머블 유닛에 현재 기록된 데이터와, 외부로부터 입력받은 유닛 선택 신호에 의해 특정된 프로그래머블 유닛에 기록할 입력 데이터를 논리 조합하여, 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 기수 번째 원 타임 프로그래머블 셀들 중 하나를 프로그래밍하기 위한 기수 셀 프로그래밍 신호 또는 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 우수 번째 원 타임 프로그래머블 셀들 중 하나를 프로그래밍하기 위한 우수 셀 프로그래밍 신호를 유닛 어레이로 출력하는 셀 분배 회로를 포함하여 구성된 멀티 타임 프로그래머블 반도체 메모리 장치를 제공한다. 따라서, 원 타임 프로그래머블 셀을 이용하면서도 여러 번의 프로그래밍이 가능한 멀티 타임 프로그래머블 반도체 메모리 장치를 구성할 수 있다.

Description

멀티 타임 프로그래머블 반도체 메모리 장치 및 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법{MULTI-TIME PROGRAMMABLE SEMICONDUCTOR MEMORY DEVICE AND MULTI-TIME PROGRAMMING METHOD FOR THE SAME}
도1은 종래 기술에 의한 다단계 재 프로그래머블 퓨즈 구조의 블록도이다.
도2는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 블록도이다.
도3은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 레벨 쉬프터 회로의 구성예를 도시한 블록도이다.
도4는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 입력 데이터 레벨 쉬프터 회로의 구성예를 도시한 회로도이다.
도5는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 셀 분배 회로의 구성예를 도시한 블록도이다.
도6은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 셀 분배 회로의 자세한 구성예를 도시한 회로도이다.
도7은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 유닛 어레이의 구성예를 도시한 블록도이다.
도8은 본 발명의 유닛 어레이에 포함된 최소 두 번의 프로그래밍이 가능한 프로그래머블 유닛의 구성예를 도시한 블록도이다.
도9는 본 발명의 유닛 어레이에 포함된 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛의 구성예를 도시한 블록도이다.
도10은 본 발명의 유닛 어레이에 포함된 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛의 다른 구성예를 도시한 블록도이다.
도11은 최소 두 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 첫 번째 OTP 셀의 구성예를 도시한 회로도이다.
도12는 최소 두 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 두 번째 OTP 셀의 구성예를 도시한 회로도이다.
도13은 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 두 번째 OTP 셀의 구성예를 도시한 회로도이다.
도14는 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 세 번째 OTP 셀의 구성예를 도시한 회로도이다.
도15는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 풀 상태 검출 회로의 구성예를 도시한 회로도이다.
도16은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 에러 상태 검출 회로의 구성예를 도시한 회로도이다.
도17은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 레벨 다운 컨버터 회로의 구성예를 도시한 블록도이다.
도18은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 레벨 다운 컨버터의 구성예를 도시한 회로도이다.
도19는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쉬프트 레지스터 회로의 실시예를 도시한 블록도이다.
도20은 쉬프트 레지스터 회로의 쉬프트 레지스터의 실시예를 도시한 회로도이다.
도21은 쉬프트 레지스터 회로의 마지막 쉬프트 레지스터의 실시예를 도시한 회로도이다.
도22a와 도22b는 최소 두 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 플로우 차트이다.
도23a와 도23b는 최소 세 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 플로우 차트이다.
도24a 내지 도24e는 최소 두 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 타이밍도이다.
도25a 내지 도25f는 최소 세 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 타이밍도이다.
도26은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 유닛 어레이의 읽기 동작 타이밍도이다.
도27a와 도27b는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쉬프트 레지스터 회로의 동작 타이밍도이다.
* 도면의 주요부분에 대한 부호의 설명 *
20: 멀티 타임 프로그래머블 반도체 메모리 장치
21: 레벨 쉬프터 회로 22: 유닛 디코더 회로
23: 셀 분배 회로 24: 유닛 어레이
25: 풀 상태 검출 회로
26: 에러 상태 검출 회로
27: 레벨 다운 컨버터 회로 28: 쉬프트 레지스터 회로
본 발명은 원 타임 프로그래머블 소자를 이용한 반도체 메모리 장치에 대한 것으로 특히 복수개의 원 타임 프로그래머블 셀을 구비하여 여러 번의 프로그래밍이 가능한 멀티 타임 프로그래머블 반도체 메모리 장치 및 그 프로그래밍 동작 방법에 대한 것이다.
비 휘발성(NV; Non-Volatile) 저장 장치는 가능한 프로그래밍 동작의 횟수에 따라 원 타임 프로그래머블(OTP; One-Time Programmable; 이하 OTP)과 멀티 타임 프로그래머블(MTP; Multi-Time Programmable; 이하 MTP)로 분류된다. OTP 소자는 회로 상에서 단 한번의 프로그래밍만이 가능하고 추가 프로그래밍이 안 되는 소자 를 지칭하며, 여기에는 퓨즈(Fuse), 앤티 퓨즈(Anti-Fuse), 전기 퓨즈(e-FUSE; Electrically Programmable FUSE), 이피 롬(EPROM; Erasable Program ROM) 등이 있다. 이들 소자는 별도의 추가적인 장치가 없다면 프로그래밍된 내용을 지우는 것이 불가능하기에 단지 한번의 프로그래밍 동작만 허용된다. 물론 이피 롬의 경우는 자외선을 조사할 경우 지우는(erase) 동작이 가능하지만, 이 경우 지우는 동작을 위해서는 물리적인 보조 장치가 필요하며, 또한 비트 단위의 지우기는 불가능하다는 단점을 갖는다.
따라서, 이들 OTP 소자들을 가지고 데이터 저장용 어레이를 구성했을 때는 추가적인 프로그래밍이 불가능하기에 일단 웨이퍼 단계에서나, 최종 사용자 단계에서 한 번 프로그래밍한 후에는 데이터의 갱신이 불가능하다. 그러므로 OTP 소자에 기록된 데이터의 갱신이 필요한 경우에는, OTP 소자가 기타 MTP 소자에 대비하여 가지는 다양한 장점들, 즉, 낮은 단가, 로직 호환성(logic compatibility)등의 장점들에도 불구하고 어쩔 수 없이 MTP 소자를 이용하여야만 한다.
이러한 OTP 소자들의 단점을 극복하기 위해서 다양한 비휘발성 MTP 소자들이 개발되었는데, 여기에는 이이피 롬(EEPROM; Electrically Erasable Program ROM), 에프 램(FRAM; Ferro-electric RAM), 엠 램(MRAM; Magnetic RAM), 피 램(PRAM; Phase-Change RAM) 등이 대표적이다. 하지만 이들 소자들의 경우 내구(endurance) 한도 내에서 여러 번의 프로그래밍 동작이 가능하긴 하지만, 이를 위해 소자 구조가 복잡해지고 따라서 별도의 마스크가 추가됨에 따른 제조 비용이 높다. 따라서 수십 내지 수천 비트의 비교적 적은 양의 데이터를 저장하는 용도에서는 생산 비용 상의 경쟁력이 떨어지게 된다.
위와 같은 종래 기술에 대한 대안으로서 IBM(International Business Machines)사의 미합중국 등록 특허 제 5,966,339호에서는 다수 개의 퓨즈 셀들을 이용하여 하나의 비트를 기록하는 유닛을 구성하고, 다수개의 퓨즈 셀들의 상태를 배타적 논리합(XOR)하여 출력하는 방식으로 데이터의 갱신이 가능하도록 구현된 퓨즈 셀을 이용한 멀티 타임 프로그래머블 반도체 메모리 장치를 개시하였다.
상기 IBM이 개시한 방식은 하나의 유닛을 프로그래밍할 경우에 포함된 퓨즈 셀을 순차적으로 프로그래밍하도록 함으로써 퓨즈 셀의 추가 프로그래밍이 있을 때마다 그 유닛의 데이터가 반복적으로 바뀌도록 한 방식이다.
도1은 상기한 특허와 동일 유사한 유형의 다단계 재 프로그래머블 퓨즈 구조의 블록도이다.
즉, 퓨즈 A(1)에서 퓨즈 D(4)까지 퓨즈 링크 어드레스(P1,P2,P3,P4)를 바꾸어 가면서 순차적으로 프로그래밍하는 방식으로 상기 네 개의 퓨즈를 포함하여 구성된 하나의 유닛의 출력 값을 반복적으로 재 프로그래밍한다.
그러나 상기 미합중국 등록 특허 제5,966,339호에서 적용된 방식의 경우 다음과 같은 보완이 필요한 사항을 가진다.
첫째, 현재 유닛에 기록된 데이터의 갱신을 위해서는 우선적으로 각각의 유닛에 저장된 데이터를 외부에서 알아야 한다. 따라서 각각의 유닛에 기록된 데이터를 일단 외부로 보낸 다음, 이 정보를 외부에서 새롭게 기록될 데이터와 비교하는 일련의 동작 및 그 장치가 추가로 필요하다.
둘째, 현재 유닛에 기록된 데이터를 갱신하여야 하는 경우 해당 유닛에 포함된 퓨즈들 중에서 어느 퓨즈를 프로그래밍해야 하는 지 자동적으로 알 수 가 없다. 따라서 한 개의 퓨즈를 두 번 이상 프로그래밍하는 오버 프로그래밍(over-programming) 또는 한 개의 유닛 내에 있는 두 개 이상의 퓨즈를 동시에 프로그래밍하는 동시 프로그래밍(simultaneous programming)의 가능성이 있다. 특히, 전기 퓨즈는 통상 가느다란 폴리 실리콘(poly-silicon) 퓨즈에 일정 시간, 즉 프로그래밍 동작 동안 임계치 이상의 강한 전류를 흘러 줌으로써 폴리 실리콘 퓨즈가 절단되는 현상을 이용한다. 따라서 레이저에 의해 퓨즈를 절단하는 레이저 퓨즈 방식과는 달리 프로그래밍된 상태와 프로그래밍되지 않은 상태의 차이가 크지 않고 각 상태의 내구(endurance) 특성이 좋지 않아서, 상기한 오버 프로그래밍등의 동작에 취약한 측면이 있기 때문에 이에 대한 대책이 필요하다.
그러므로 선택된 유닛 내에서 원하는 퓨즈를 프로그래밍하기 위해서는 현재 선택된 유닛에 포함된 퓨즈들의 프로그래밍 여부를 외부에서 알아야 한다. 이를 위해서는 모든 퓨즈의 프로그래밍 상태를 직렬 또는 병렬로 외부로 보내는 수단이 필요하다. 이는 하나의 유닛에 포함된 퓨즈의 수에 비례하는 다수의 패드 또는 레지스터를 필요로 하기에 칩 면적 관점에서 불리하다.
셋째, 한 번에 한 개의 퓨즈를 순차적으로 프로그래밍하는 것이 가능하기 위해서는 한 개의 유닛을 구성하는 다수의 퓨즈들 중 한 개의 퓨즈를 선택하기 위한 어드레스 및 이를 가능하게 하는 디코딩 회로가 필요하다. 이는 추가적인 어드레스 패드 또는 레지스터 및 추가 회로를 필요로 하기에 칩 면적 관점에서 불리하다.
넷째, 유닛에 포함된 모든 퓨즈가 프로그래밍되어 추가적인 프로그래밍이 불가능할 경우에 이 상태를 외부에서 알 방법이 없다.
다섯째, 유닛을 구성하는 퓨즈가 프로그래밍된 경우에 현재 유닛에 기록된 데이터와 반대의 데이터를 기록하기 위한 프로그래밍 명령이 들어 올 경우, 추가 프로그래밍을 방지하는 장치 및 이를 외부에 알려 주는 장치가 없다.
상기와 같은 문제점을 해결하기 위해서 본 발명의 목적은 복수개의 OTP 셀을 포함한 프로그래머블 유닛을 이용하여 여러 번의 프로그래밍 동작이 가능한 멀티 타임 프로그래머블 반도체 메모리 장치를 제공하는데 있다.
본 발명의 다른 목적은 복수개의 OTP 셀을 포함한 프로그래머블 유닛을 이용하여 여러 번의 프로그래밍 동작이 가능한 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법을 제공하는데 있다.
상기 목적을 달성하기 위해 본 발명은, 복수개의 OTP 셀을 구비한 복수개의 프로그래머블 유닛을 포함한 유닛 어레이, 어드레스 신호에 응답하여 상기 유닛 어레이에 포함된 프로그래머블 유닛을 특정하는 유닛 선택 신호를 발생시키는 유닛 디코더 회로, 및 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 현재 기록된 데이터를 상기 유닛 어레이로부터 입력받고, 상기 유닛 선택 신호에 의 해 특정된 상기 프로그래머블 유닛에 기록할 입력 데이터를 외부로부터 입력받아, 상기 프로그래머블 유닛에 포함된 OTP 셀들 중 기수 번째 OTP 셀들 중 하나를 프로그래밍하기 위한 기수 셀 프로그래밍 신호 또는 상기 프로그래머블 유닛에 포함된 OTP 셀들 중 우수 번째 OTP 셀들 중 하나를 프로그래밍하기 위한 우수 셀 프로그래밍 신호를 상기 유닛 어레이로 출력하는 셀 분배 회로를 포함하여 구성된 멀티 타임 프로그래머블 반도체 메모리 장치를 제공한다.
여기에서, 상기 셀 분배 회로는 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 현재 기록된 데이터가 '0'이고, 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 기록할 입력 데이터가 '1'인 경우에는 상기 기수 셀 프로그래밍 신호를 발생시키고, 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 현재 기록된 데이터가 '1'이고, 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 기록할 입력 데이터가 '0'인 경우에는 상기 우수 셀 프로그래밍 신호를 발생시키는 방식으로 동작할 수 있다.
또한 여기에서, 상기 프로그래머블 유닛은 상기 기수 셀 프로그래밍 신호를 입력받아, 프로그래밍되지 않은 첫 번째 기수 번째 OTP 셀을 프로그래밍하고, 상기 우수 셀 프로그래밍 신호를 입력받아, 프로그래밍되지 않은 첫 번째 우수 번째 OTP 셀을 프로그래밍하는 방식으로 동작할 수 있다.
여기에서, 상기 프로그래머블 유닛은 복수개의 OTP 셀, 및 상기 OTP 셀들의 프로그래밍 상태를 논리 조합하여 상기 프로그래머블 유닛의 데이터로 출력하는 논리 조합 회로를 포함하여 구성될 수 있다.
또한 여기에서, 상기 프로그래머블 유닛의 데이터를 출력하는 논리 조합 회로는 포함된 OTP 셀들이 모두 프로그래밍되어 있지 않거나, 상기 프로그래머블 유닛에 포함된 OTP 셀들 중 짝수개의 OTP 셀들이 프로그래밍된 경우에 상기 프로그래머블 유닛의 데이터로 '0'을 출력하고, 포함된 OTP 셀들 중 홀수개의 OTP 셀들이 프로그래밍된 경우에 상기 프로그래머블 유닛의 데이터로 '1'을 출력하는 방식으로 동작할 수 있다.
여기에서, 상기 프로그래머블 유닛은 상기 프로그래머블 유닛에 포함된 모든 OTP 셀이 프로그래밍된 경우에는 상기 프로그래머블 유닛의 유닛 풀 상태 신호를 출력할 수 있다.
여기에서, 상기 프로그래머블 유닛은 상기 프로그래머블 유닛에 현재 기록된 데이터와 상기 프로그래머블 유닛에 기록할 입력 데이터가 상이하고, 상기 프로그래머블 유닛에 포함된 모든 OTP 셀이 프로그래밍된 경우에는 상기 프로그래머블 유닛의 유닛 에러 상태 신호를 출력할 수 있다.
여기에서, 상기 OTP 셀은 예컨대 전기 퓨즈 소자를 이용하여 구성될 수 있다.
상기 다른 목적을 달성하기 위해 본 발명의 한 형태는 입력 데이터 신호와 어드레스 신호를 수신하는 단계, 어드레스 신호에 응답하여 입력 데이터를 기록할 프로그래머블 유닛을 선택하는 단계, 선택된 프로그래머블 유닛에 저장된 데이터를 출력하는 데이터 트랜스퍼 단계, 상기 선택된 프로그래머블 유닛에 저장된 데이터 가 '0'이며, 상기 입력 데이터 신호가 '1'인 경우에는 기수 셀 프로그래밍 신호를 출력하는 단계, 상기 선택된 프로그래머블 유닛에 저장된 데이터가 '1'이며, 상기 입력 데이터 신호가 '0'인 경우에는 우수 셀 프로그래밍 신호를 출력하는 단계, 상기 기수 셀 프로그래밍 신호에 응답하여 상기 선택된 프로그래머블 유닛에 포함된 프로그래밍되지 않은 첫 번째 기수 번째 OTP 셀을 프로그래밍하는 단계, 및 상기 우수 셀 프로그래밍 신호에 응답하여 상기 선택된 프로그래머블 유닛에 포함된 프로그래밍되지 않은 첫 번째 우수 번째 OTP 셀을 프로그래밍하는 단계를 포함한 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법을 제공한다.
여기에서, 상기 선택된 프로그래머블 유닛에 저장된 데이터를 출력하는 데이터 트랜스퍼 단계는 상기 프로그래머블 유닛에 포함된 상기 OTP 셀들의 프로그래밍 상태를 논리 조합하여 상기 선택된 프로그래머블 유닛에 저장된 데이터로 출력하는 단계를 포함하여 구성될 수 있다.
또한 여기에서, 상기 OTP 셀들의 프로그래밍 상태를 논리 조합하여 상기 선택된 프로그래머블 유닛에 저장된 데이터로 출력하는 단계는 상기 프로그래머블 유닛에 포함된 OTP 셀들이 모두 프로그래밍되어 있지 않거나, 상기 프로그래머블 유닛에 포함된 OTP 셀들 중 짝수개의 OTP 셀들이 프로그래밍된 경우에 상기 선택된 프로그래머블 유닛에 저장된 데이터로 '0'을 출력하는 단계, 상기 프로그래머블 유닛에 포함된 OTP 셀들 중 홀수개의 OTP 셀들이 프로그래밍된 경우에 상기 선택된 프로그래머블 유닛에 저장된 데이터로 '1'을 출력하는 단계를 포함하여 구성될 수 있다.
여기에서, 상기 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법은 상기 선택된 프로그래머블 유닛에 포함된 모든 OTP 셀이 프로그래밍된 경우에는 유닛 풀 상태 신호를 출력하는 단계를 더 포함할 수 있다.
여기에서, 상기 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법은 상기 선택된 프로그래머블 유닛에 포함된 모든 OTP 셀이 프로그래밍되어 있고, 상기 선택된 프로그래머블 유닛에 저장된 데이터와 상기 입력 데이터 신호가 상이한 경우에는 상기 선택된 프로그래머블 유닛에 대한 더 이상의 프로그래밍이 불가능함을 지시하는 유닛 에러 상태 신호를 출력하는 단계를 더 포함할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도2는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 블록도이다.
도2를 참조하면, 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치(20)는 유닛 디코더 회로(unit decoder; 22), 셀 분배 회로(cell distributor; 23) 및 유닛 어레이(unit array; 24)를 구비한다.
또한, 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치(20)는 풀 상태 검출 회로(full state detector; 25), 에러 상태 검출 회로(error detector; 26) 및 쉬프트 레지스터 회로(shift register; 28)를 추가적으로 구비할 수 있다.
또한, 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치(20)는 레벨 쉬프터 회로(level shifter; 21), 레벨 다운 컨버터(level down converter; 27)를 추가적으로 구비할 수 있다.
레벨 쉬프터 회로(21)는 외부 입력 신호를 멀티 타임 프로그래머블 반도체 메모리 장치(20)의 내부 동작용 전압에 준한 내부 신호로 변환한다. 예를 들면, 상기 외부 입력 신호는 약 1.2V 정도의 전압 신호로 구성되고, 내부 신호는 약 3.3V 정도의 내부 동작용 전압 신호로 구성될 수 있다. 따라서, 레벨 쉬프터 회로(21)는 외부 입력 데이터 신호(DIN), 외부 쓰기 신호(WRITE), 외부 어드레스 신호(ADD<0:6>) 및 외부 읽기 신호(READ)를 입력받아서, 각각에 해당하는 멀티 타임 프로그래머블 반도체 메모리 장치(20)의 내부 동작용 신호들, 입력 데이터 신호(DIN_H), 쓰기 신호(WRITE_H), 어드레스 신호(ADD_H<0:6>) 및 읽기 신호(READ_H)로 변환하여 출력한다. 도2에서 예시한 멀티 타임 프로그래머블 반도체 메모리 장치(20)는 상기 외부 어드레스 신호(ADD<0:6>) 및 어드레스 신호(ADD_H<0:6>)가 예컨대, 7비트로 구성되어 총 128개의 프로그래머블 유닛(unit)으로 구성된 유닛 어레이(24)에 억세스할 수 있게 구성된 것을 예시하고 있다. 여기에서, 상기 어드레스 신호의 비트수와 이에 따른 유닛 어레이(24)에 포함된 프로그래머블 유닛의 수는 다르게 구성될 수 있음은 자명하다.
유닛 디코더 회로(22)는 상기 어드레스 신호(ADD_H<0:6>)를 디코딩하여 유닛 어레이(24)를 구성하는 128개의 프로그래머블 유닛 중에서 상기 어드레스 신호 (ADD_H<0:6>)가 지정하는 하나의 프로그래머블 유닛을 선택하기 위한 유닛 선택 신호(CSL<0:127>)를 생성한다.
유닛 어레이(24)는 128개의 프로그래머블 유닛으로 구성되어 있다. 유닛 어레이(24)에 포함된 각각의 프로그래머블 유닛들은 다수 개의 OTP 셀(cell)들로 구성되어 있으며, 하나의 프로그래머블 유닛은 한 비트의 정보를 저장한다.
유닛 어레이(24)는 유닛 어레이(24)에 포함된 유닛들 중 어느 프로그래머블 유닛을 선택할지를 결정하는 유닛 선택 신호(CSL<0:127>)와 쓰기 동작의 경우에 하나의 프로그래머블 유닛에 포함된 다수 개의 OTP 셀들 중 어느 OTP 셀을 선택할지를 결정하는 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)를 입력 신호로 받아들인다.
유닛 어레이(24)의 출력 신호로는 각각의 프로그래머블 유닛에 저장된 값을 출력하는 유닛 출력 신호(OUT<0:127>)와 각각의 프로그래머블 유닛에 포함된 모든 OTP 셀들이 모두 프로그래밍되었는지를 지시하는 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)를 출력한다. 여기에서 상기 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)는 프로그래머블 유닛에 포함된 마지막 OTP 셀의 프로그래밍 상태가 될 수 있다. 또한 유닛 어레이(24)는 쓰기 동작 시에 선택된 프로그래머블 유닛이 에러 상태인지를 나타내는 유닛 에러 상태 신호(ERR<0:127>)를 출력한다. 또한 유닛 어레이(24)는 유닛 출력 신호(OUT<0:127>)와는 별도로 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)를 셀 분배 회로(23)로 피드백(feedback)하여 출력한다.
셀 분배 회로(23)는 3개의 입력 신호들, 입력 데이터 신호(DIN_H), 쓰기 신 호(WRITE_H) 및 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)를 입력으로 해서 2개의 출력 신호들, 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 또는 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)를 출력한다.
즉, 데이터 입력(DIN_H), 쓰기 신호(WRITE_H), 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)의 논리 조합을 통해 각각의 프로그래머블 유닛을 구성하는 다수 개의 OTP 셀들 중 기수 번째의 OTP 셀을 프로그래밍할 것인지, 아니면 우수 번째의 OTP 셀을 프로그래밍할 것인지를 결정한다. 여기에서 유닛 어레이(24)의 출력인 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)를 다시 셀 분배 회로(23)로 피드백하는 이유는 선택된 프로그래머블 유닛에 현재 기록된 데이터가 그 프로그래머블 유닛을 구성하는 다수 개의 OTP 셀들 중 어느 OTP 셀을 프로그래밍할 것인지에 대해 영향을 미치기 때문이다.
풀 상태 검출 회로(25)는 유닛 어레이(24)에 포함된 128개의 프로그래머블 유닛에서 출력된 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)를 입력받아 풀 상태 신호(FULL)를 출력한다.
에러 상태 검출 회로(26)는 유닛 어레이(24)에 포함된 128개의 프로그래머블 유닛에서 출력된 유닛 에러 상태 신호(ERR<0:127>)를 입력받아 에러 상태 신호(ERR)를 출력한다.
레벨 다운 컨버터 회로(27)는 멀티 타임 프로그래머블 반도체 메모리 장치(20)의 내부 신호들을 멀티 타임 프로그래머블 반도체 메모리 장치(20)의 외부 동작용 전압에 준한 외부 신호로 변환한다. 즉, 상기 레벨 쉬프터 회로(21)의 반대 동작을 수행한다. 따라서, 상기한 예의 경우에, 약 3.3V 정도의 내부 동작용 전압 신호인 내부 신호들을 약 1.2V 정도의 외부 동작용 전압 신호로 변환한다.
쉬프트 레지스터 회로(28)는 읽기 동작시에 유닛 어레이(24)로부터 출력된 128 비트의 데이터를 로드 신호(LOAD)와 클록 신호(CLK)에 응답하여 직렬(serial)로 출력 데이터 신호(DOUT) 패드로 전송한다. 상기 128 비트의 데이터는 유닛 어레이(24)로부터 출력되어 상기 레벨 다운 컨버터 회로(27)에 의해서 외부 동작 전압으로 변환된 외부 유닛 출력 신호(OUT_L<0:127>) 또는 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>)가 될 수 있다. 풀 상태 테스트 신호(FULL_TEST) 신호는 외부 유닛 출력 신호(OUT_L<0:127>)와 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>) 중에서 어느 신호를 쉬프트 레지스터 회로(28)로 로드하여 외부로 출력할 것인지를 선택하는 역할을 수행한다.
상기 각 구성요소들의 구성과 동작은 이하에서 다시 자세히 설명된다.
도3은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 레벨 쉬프터 회로의 구성예를 도시한 블록도이다.
도3을 참조하면, 레벨 쉬프터 회로(21)는 입력 데이터 레벨 쉬프터(DIN LEVEL SHIFTER; 31), 쓰기 신호 레벨 쉬프터(WRITE LEVEL SHIFTER; 32), 어드레스 신호 레벨 쉬프터(ADD<0:6> LEVEL SHIFTER; 33) 및 읽기 신호 레벨 쉬프터(READ LEVEL SHIFTER; 34)를 포함하여 구성된다.
각각의 레벨 쉬프터들(31,32,33,34)은 각각 외부 입력 데이터(DIN), 외부 쓰기 신호(WRITE), 외부 어드레스 신호(ADD<0:6>) 및 외부 읽기 신호(READ)를 입력받 아서, 각각에 해당하는 내부 동작용 신호들, 입력 데이터(DIN_H), 쓰기 신호(WRITE_H), 어드레스 신호(ADD_H<0:6>) 및 읽기 신호(READ_H)로 변환하는 역할을 수행한다.
도4는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 입력 데이터 레벨 쉬프터 회로의 구성예를 도시한 회로도이다.
도4를 참조하면, 도3의 레벨 쉬프터 회로(21) 중에서 입력 데이터 레벨 쉬프터(31)의 회로도가 예시되어 있다. 도4에서 예시한 입력 데이터 레벨 쉬프터(31)는 외부 동작 전압(VCC)에 준한 외부 입력 데이터 신호(DIN)를 입력받아, 내부 동작 전압(VCCH)에 준한 입력 데이터 신호(DIN_H)를 발생시키는 역할을 수행한다. 예를 들면, 상기 외부 동작 전압(VCC)은 약 1.2V, 상기 내부 동작 전압(VCCH)은 약 3.3V 일 수 있음은 도2의 설명에서 이미 언급한 바와 같다. 도4에서 예시한 입력 데이터 레벨 쉬프터(31)는 통상적인 레벨 쉬프터 회로이며 쓰기 신호 레벨 쉬프터(32), 어드레스 신호 레벨 쉬프터(33) 및 읽기 신호 레벨 쉬프터(34)도 동일하게 구성될 수 있다.
도5는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 셀 분배 회로의 구성예를 도시한 블록도이다.
도5를 참조하면, 본 발명의 셀 분배 회로(23)는 유닛 어레이 출력 신호 레지스터(UNIT_ARRAY_OUT REGISTER; 41)와 셀 프로그래밍 신호 발생부(CELL_PGM GENERATOR; 44)를 포함하여 구성된다.
유닛 어레이 출력 신호 레지스터(41)는 선택된 프로그래머블 유닛에 대한 프 로그래밍 동작을 수행하기 이전에 선택된 프로그래머블 유닛에 현재 프로그래밍된 값을 유닛 어레이(24)로부터 읽어와 저장함으로써 오동작을 방지하는 역할을 한다.
즉, 유닛 어레이 출력 신호 레지스터(41)는 유닛 어레이(24)로부터 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)를 입력받아 셀 프로그래밍 신호 발생부(42)로 전달하는 역할을 수행한다.
셀 프로그래밍 신호 발생부(44)는 입력 데이터 신호(DIN_H) 및 쓰기 신호(WRITE_H)를 레벨 쉬프터 회로(21)를 거쳐서 입력받고, 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)를 유닛 어레이 출력 신호 레지스터(41)를 거쳐서 유닛 어레이(24)로부터 입력받는다. 셀 프로그래밍 신호 발생부(44)는 입력 데이터 신호(DIN_H), 쓰기 신호(WRITE_H) 및 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)를 논리 조합하여 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 또는 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)를 발생시킨다. 상기 셀 프로그래밍 신호 발생부(44)의 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 또는 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)를 발생시키기 위한 논리 조합은 하기 표1과 같이 정리될 수 있다.
경우 DIN_H WRITE_H UNIT_ARRAY_OUT ODD_CELL_PGM EVEN_CELL_PGM
1 0 1 0 0 0
2 1 1 0 1 0
3 0 1 1 0 1
4 1 1 1 0 0
상기 표1을 참조하면, 쓰기 신호(WRITE_H)가 활성화된 상태에서 셀 프로그래밍 신호 발생부(44)에서 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 또는 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 출력된다.
유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 '0'이고, 입력 데이터 신호(DIN_H)가 '0'인 경우(경우1)에는, 현재 프로그래머블 유닛의 프로그래밍 상태를 그대로 유지하면 되므로 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 모두 비활성화, '0' 상태가 된다.
유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 '0'이고, 입력 데이터 신호(DIN_H)가 '1'인 경우(경우2)에는, 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 활성화, '1' 상태가 된다.
반대로 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 '1'이고 입력 데이터 신호(DIN_H)가 '0'인 경우(경우3)에는, 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 활성화, '1' 상태가 된다.
마지막으로 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)와 입력 데이터(DIN_H)가 모두 '0' 상태인 경우(경우4)에는, 경우1과 마찬가지로 현재 프로그래머블 유닛의 프로그래밍 상태를 그대로 유지하면 되므로 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 모두 비활성화, '0' 상태가 된다.
도6은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 셀 분배 회로의 자세한 구성예를 도시한 회로도이다.
도6을 참조하면, 본 발명의 셀 분배 회로(23)는 유닛 어레이 출력 신호 레지스터(UNIT_ARRAY_OUT REGISTER; 41)와 셀 프로그래밍 신호 발생부(CELL_PGM GENERATOR; 44)를 포함하여 구성된다.
또한, 유닛 어레이 출력 신호 레지스터(41)는 더 자세하게 유닛 어레이 출력 신호 스위치(UNIT_ARRAY_OUT SWITCH; 42)와 유닛 어레이 출력 신호 래치부(UNIT_ARRAY_OUT LATCH; 43)를 포함하여 구성될 수 있다.
쓰기 동작의 데이터 트랜스퍼 단계, 즉, 선택된 프로그래머블 유닛에 기록된 값을 읽어올 때에는 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 둘 다 비활성화 상태가 된다. 따라서, 유닛 어레이 출력 신호 스위치(42)를 구성하는 전송 게이트(TG41)가 열리게 되고 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 유닛 어레이 출력 신호 래치부(43)에 저장된다. 반대로 선택된 프로그래머블 유닛의 프로그래밍 단계에서는 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM) 중 적어도 하나는 활성화된 상태이기에 유닛 어레이 출력 신호 스위치(42)를 구성하는 전송 게이트(TG41)가 닫힌 상태가 된다. 여기에서 상기 쓰기 동작을 구성하는 데이터 트랜스퍼 단계와 프로그래밍 단계에 대해서는 이하에서 자세히 설명된다.
도7은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 유닛 어레이의 구성예를 도시한 블록도이다.
도7을 참조하면, 본 발명의 유닛 어레이(24)는 총 128개의 프로그래머블 유닛으로 구성된 경우를 예시하고 있다.
유닛 어레이(24)에 포함된 128개의 프로그래머블 유닛들은 유닛 선택 신호(CSL<0:127>) 또는 읽기 신호(READ_H)에 응답하여, 유닛 출력 신호(OUT<0:127>)와 유닛 풀 상태 신호(Nth CELL_OUT <0:127>)를 출력한다.
또한 유닛 어레이(24)에 포함된 128개의 프로그래머블 유닛들은 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 또는 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)에 응답한 프로그래밍 동작 과정 중에 에러가 발생시에 유닛 에러 상태 신호(ERR <0:127>)를 출력한다.
한편, 유닛 어레이(24)가 출력하는 유닛 출력 신호(OUT<0:127>)는 현재 유닛 선택 신호(CSL<0:127>)에 의해서 제어되는 전송 게이트(TG70,TG71,...)들 중의 하나에 의해서 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)로 출력되어 셀 분배 회로(23)로도 입력된다. 도2에서 예시하고 있는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치(20)의 실시예에 따르면, 읽기 동작 시에는 유닛 선택 신호(CSL<0:127>)에 의한 프로그래머블 유닛의 선택없이 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛의 유닛 출력 신호(OUT<0:127>)가 동시에 출력된다. 그러나, 쓰기 동작 시에는 유닛 선택 신호(CSL<N>)에 의해서 선택된 프로그래머블 유닛의 유닛 출력 신호(OUT<N>) 만이 출력되며, 후단의 전송 게이트에 의해서 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)로서 후단의 셀 분배 회로(23)로 출력된다.
도8은 본 발명의 유닛 어레이에 포함된 최소 두 번의 프로그래밍이 가능한 프로그래머블 유닛의 구성예를 도시한 블록도이다.
도8을 참조하면, 최소한 두 번까지 프로그래밍을 할 수 있도록 두 개의 OTP 셀을 포함한 프로그래머블 유닛의 구성예를 알 수 있다. 도2에서 예시한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치(20)에 따르면 유닛 어레이(24)는 128개의 프로그래머블 유닛을 포함한다. 128개의 프로그래머블 유닛의 구성은 모두 동일하게 구성될 수 있다. 도8에서 예시한 프로그래머블 유닛(80)은 유닛 어레이(24)에 포함될 수 있는 128개의 프로그래머블 유닛들 중 0번째의 프로그래머블 유닛을 도시한 것이다.
도8에서 예시한 프로그래머블 유닛(80)은 제 1 OTP 셀(81)과 제 2 OTP 셀(82)을 포함하여 구성되며, 제 1 OTP 셀(81)은 기수 셀 프로그래밍 신호(ODD_CELL_PGM)을 입력받고, 제 2 OTP 셀(82)은 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)를 입력받는다.
두 개의 OTP 셀(81,82)의 프로그래밍 상태가 배타 논리합 게이트(XOR81)를 통해 조합되어 유닛 출력 신호(OUT<0>)로 출력되는 방식을 사용함으로써, 데이터를 최소한 두 번 프로그래밍 할 수 있다. 두 개의 OTP 셀(81,82)의 상태에 의해서 유닛 출력 신호(OUT<0>)의 상태는 달라지게 되며, 이러한 관계는 하기 표2와 같이 정리된다.
경우 1st CELL_OUT<0> 2nd CELL_OUT<0> OUT<0> 설명
1 1 1 0 제 1 OTP 셀과 제 2 OTP 셀이 모두 프로그래밍되지 않은 상태
2 0 1 1 제 1 OTP 셀만 프로그래밍된 상태
3 0 0 0 제 1 OTP 셀과 제 2 OTP 셀이 모두 프로그래밍된 상태
한편 제 2 OTP 셀(82)의 출력(2nd CELL_OUT<0>)이 제 1 OTP 셀(81)로 연결됨으로써, 제 1 OTP 셀(81)과 제 2 OTP 셀(82)이 모두 프로그래밍된 상태(상기 표2의 경우3)에 제 1 OTP 셀(81)에 대한 오버 프로그래밍(over-programming)을 방지한다. 즉, 제 2 OTP 셀(82)이 프로그래밍되지 않은 경우에 한해 제 1 OTP 셀(81)을 프로그래밍하도록 한다. 그리고 제 1 OTP 셀(81)과 제 2 OTP 셀(82)이 모두 프로그래밍된 경우(상기 표2의 경우3)에 반대 데이터로의 추가적인 프로그래밍 명령이 들어오게 되면 유닛 에러 상태 신호 발생부(83)에 의하여 유닛 에러 상태 신호(ERR<0>)가 발생된다. 예를 들면, 제 2 OTP 셀(82)이 프로그래밍된 경우에 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 재입력되어 유닛 출력 신호(OUT<0>)를 '1'로 변경하고자 하는 경우에는 유닛 에러 상태 신호 발생부(83)에 의하여 유닛 에러 상태 신호(ERR<0>)가 발생된다.
한편, 제 2 OTP 셀(82)의 프로그래밍 상태(2nd CELL_OUT<0>)는 유닛 풀 상태 신호(Nth CELL_OUT<0>)로서도 출력된다. 상기 유닛 풀 상태 신호(Nth CELL_OUT<0>)는 풀 상태 검출 회로(25)로 입력되어 유닛 어레이(24)의 풀 상태를 지시하는 역할을 수행하고, 레벨 다운 컨버터 회로(27)를 통하여 외부 사용자에게 풀 상태에 이 른 프로그래머블 유닛을 통보하는 역할을 수행할 수 있다.
도9는 본 발명의 유닛 어레이에 포함된 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛의 구성예를 도시한 블록도이다.
도9에 도시된 프로그래머블 유닛(90)은 도8에 도시된 프로그래머블 유닛(80)과 달리 최소한 세 번까지 프로그래밍이 가능한 프로그래머블 유닛의 구성예이다. 따라서 프로그래머블 유닛(90)은 제 1 OTP 셀(91), 제 2 OTP 셀(92) 및 제 3 OTP 셀(93)의 세 개의 OTP 셀을 포함하여 구성된다. 제 1 OTP 셀(91)과 제 3 OTP 셀(93)은 기수 셀 프로그래밍 신호(ODD_CELL_PGM)을 입력받고, 제 2 OTP 셀(92)은 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)를 입력받는다.
세 개의 OTP 셀이 사용되기 때문에 배타 논리합 게이트는 두 개(XOR91,XOR92)가 사용된다. 제 1 OTP 셀(91)과 제 2 OTP 셀(92)의 프로그래밍 상태를 배타 논리합하고 그 출력을 반전하여 다시 제 3 OTP 셀(93)의 출력과 배타 논리합하여 유닛 출력 신호(OUT<0>)를 출력한다. 따라서, 하기 표3에서 정리된 관계에 의해서 유닛 출력 신호(OUT<0>)가 구현된다.
경우 1st CELL_OUT <0> 2nd CELL_OUT <0> 3rd CELL_OUT <0> OUT<0> 설명
1 1 1 1 0 제 1,2,3 OTP 셀이 모두 프로그래밍되지 않은 상태
2 0 1 1 1 제 1 OTP 셀은 프로그래밍되고, 제 2,3 OTP 셀은 프로그래밍되지 않은 상태
3 0 0 1 0 제 1,2 OTP 셀은 프로그래밍되고 제 3 OTP 셀은 프로그래밍되지 않은 상태
4 0 0 0 1 제 1,2,3 OTP 셀이 모두 프로그래밍된 상태
한편 제 2 OTP 셀(92)의 출력(2nd CELL_OUT<0>)이 제 1 OTP 셀(91)로 연결됨으로써, 제 2 OTP 셀(92)이 프로그래밍되지 않은 경우에 한해서 제 1 OTP 셀(91)을 프로그래밍하도록 한다. 또한 제 2 OTP 셀(92)의 출력(2nd CELL_OUT<0>)의 반전값(2nd CELL_OUTB<0>)이 제 3 OTP 셀(93)로 연결됨으로써 제 2 OTP 셀(92)이 프로그래밍된 경우에 한해서 제 3 OTP 셀(93)이 프로그래밍되도록 한다. 그리고 제 3 OTP 셀(93)의 출력(3rd CELL_OUT<0>)이 제 2 OTP 셀(92)에 연결됨으로써, 제 3 OTP 셀(93)이 프로그래밍되지 않은 경우에 한해서 제 2 OTP 셀(92)을 프로그래밍하도록 하여, 모든 OTP 셀들(91,92,93)이 프로그래밍된 경우에 제 2 OTP 셀(92)에 대한 오버 프로그래밍을 방지하도록 하였다. 이는 모든 OTP 셀들이 프로그래밍된 경우, 즉 유닛 출력 신호(OUT<0>)가 '1'인 상태에서 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)에 의해서 제 2 OTP 셀(92)에 대한 오버 프로그래밍을 방지하는 역할을 한다.
또한 세 개의 OTP 셀들(91,92,93)이 모두 프로그래밍된 경우 반대 데이터로의 추가적인 프로그래밍 명령이 들어오게 되면 유닛 에러 상태 신호 발생부(94)에 의하여 유닛 에러 상태 신호(ERR<0>)를 발생하게 된다. 예를 들면, 제 3 OTP 셀(93)이 프로그래밍된 경우에 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 재입력되면 유닛 에러 상태 신호 발생부(94)에 의하여 유닛 에러 상태 신호(ERR<0>)가 발생된다.
한편, 제 3 OTP 셀(93)의 프로그래밍 상태(3rd CELL_OUT<0>)는 유닛 풀 상태 신호(Nth CELL_OUT<0>)로서도 출력된다. 상기 유닛 풀 상태 신호(Nth CELL_OUT<0>)는 풀 상태 검출 회로(25)로 입력되어 유닛 어레이(24)의 풀 상태를 지시하는 역할을 수행하고, 레벨 다운 컨버터 회로(27)를 통하여 외부 사용자에게 풀 상태에 이른 프로그래머블 유닛을 통보하는 역할을 수행할 수 있다.
도10은 본 발명의 유닛 어레이에 포함된 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛의 다른 구성예를 도시한 블록도이다.
도10에 도시된 프로그래머블 유닛(100)은 도9에 도시된 프로그래머블 유닛(90)과 마찬가지로 최소한 세 번까지 프로그래밍이 가능한 프로그래머블 유닛의 다른 구성예이다. 프로그래머블 유닛(100)은 프로그래머블 유닛(90)과 마찬가지로, 제 1 OTP 셀(101), 제 2 OTP 셀(102) 및 제 3 OTP 셀(103)의 세 개의 OTP 셀을 포함하여 구성된다. 제 1 OTP 셀(101)과 제 3 OTP 셀(103)은 기수 셀 프로그래밍 신호(ODD_CELL_PGM)를 입력받고, 제 2 OTP 셀(102)은 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)를 입력받는다.
그러나, 프로그래머블 유닛(90)과 비교하여, 프로그래머블 유닛(100)은 제 1 OTP 셀(101)과 제 2 OTP 셀(102)의 프로그래밍 상태를 배타 논리합한 결과를, 제 3 OTP 셀(103)의 프로그래밍 상태의 반전값과 배타 논리합하여 유닛 출력 신호(OUT<0>)로서 출력한다.
따라서, 프로그래머블 유닛(90)과 마찬가지의 유닛 출력 신호(OUT<0>)를 출력하기는 하지만, 논리 조합 게이트의 구성은 다르게 취해질 수 있음을 보여주고 있다. 상기 표3에서 정리된 관계와 동일한 관계에 의해서 유닛 출력 신호(OUT<0>)가 구현된다.
한편, 상기 오버 프로그래밍을 방지하기 위한 OTP 셀들간의 출력의 연결과 유닛 에러 상태의 검출과 유닛 에러 상태 신호의 출력 및, 유닛 풀 상태 신호의 출력은 상기 도9의 프로그래머블 유닛(90)과 동일한 구성을 취하고 있으므로 설명은 생략된다.
한편, 도9 및 도10에 도시된 프로그래머블 유닛(90,100)의 구성은 4개 이상의 OTP 셀을 포함하여 필요한 만큼의 최소 프로그래밍 횟수를 보장하는 형태로 확장이 가능하다. 예를 들면, N 번의 최소 프로그래밍 횟수를 보장하기 위해서는 N 개의 OTP 셀을 포함하여 프로그래머블 유닛을 구성할 수 있다.
또한, 상기 N 번의 최소 프로그래밍 횟수를 보장하기 위한 프로그래머블 유닛에 포함된 OTP 셀들은 배타 논리합 게이트와 반전기를 이용한 논리 조합을 통하여, 프로그래머블 유닛의 출력을 조합해낼 수 있다.
도9에 도시된 프로그래머블 유닛(90) 형태로 최소 N 번의 프로그래밍이 가능한 프로그래머블 유닛을 구성하기 위해서는 N개의 배타 논리합 게이트와 N-1개의 반전기를 포함하여 프로그래머블 유닛의 출력을 조합할 수 있다. 마찬가지로, 도10에 도시된 프로그래머블 유닛(100) 형태로 최소 N 번의 프로그래밍이 가능한 프로그래머블 유닛을 구성하기 위해서는 N-1 개의 배타 논리합 게이트와 1개의 반전기를 포함하여 프로그래머블 유닛의 출력을 조합할 수 있음을 알 수 있다. 즉, 하나의 프로그래머블 유닛에 포함된 OTP 셀들이 모두 프로그래밍되어 있지 않거나, 하나의 프로그래머블 유닛에 포함된 OTP 셀들 중 짝수개의 OTP 셀들이 프로그래밍된 경우에 상기 프로그래머블 유닛의 데이터로 '0'을 출력하도록 구성한다. 반대로, 하나의 프로그래머블 유닛에 포함된 OTP 셀들 중 홀수개의 OTP 셀들이 프로그래밍된 경우에 상기 프로그래머블 유닛의 데이터로 '1'을 출력하도록 구성한다. 따라서, 도9 및 도10에서 예시한 OTP 셀들의 논리 조합이외에도 상기 관계를 만족시키는 다른 형태의 논리 조합이 가능함은 당해 기술 분야에서 통상의 지식을 가진 자에게 있어서는 자명하다.
도11은 최소 두 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 첫 번째 OTP 셀의 구성예를 도시한 회로도이다.
도11은 도8에서 예시한 프로그래머블 유닛(80)에 이용될 수 있는 제 1 OTP 셀(81)의 회로 구성예를 도시한 것이다.
도11을 참조하면, 제 1 OTP 셀(81)은 셀 프로그래밍 신호(1st CELL_PGM<0>) 생성부(111), 셀 데이터 트랜스퍼 신호(1st CELL_TRANSFER<0>) 생성부(112) 및 셀 제어부(113)를 포함하여 구성된다. 도11의 셀 제어부(113)는 전기 퓨즈(electrically programmed fuse)를 OTP 소자로서 사용한 경우를 예시한 것으로, 실 시예에 따라서는 앤티 퓨즈 등의 다양한 OTP 소자들이 사용될 수 있다.
제 1 OTP 셀(81)의 동작은 크게 읽기 동작과 쓰기 동작으로 구분된다. 이러한 전기 퓨즈 셀의 동작은 제 2 OTP 셀(82) 등에서도 동일하다.
읽기 동작의 경우에는 읽기 신호(READ_H)가 활성화된 경우에 셀 데이터 트랜스퍼 신호 생성부(112)에서 셀 데이터 트랜스퍼 신호(1st CELL_TRANSFER<0>)가 셀 제어부(113)로 출력되고, 셀 제어부(113)에서 OTP 소자, 예컨대 도11의 실시예에서는 전기 퓨즈(E-FUSE)의 프로그래밍 상태를 제 1 OTP 셀(81)의 출력(1st CELL_OUT<0>)으로 출력한다.
쓰기 동작의 경우에는 두 개의 단계를 거쳐서 이루어진다. 즉, 현재 OTP 셀의 프로그래밍 상태를 읽어들이는 데이터 트랜스퍼 단계와 프로그래밍 단계로 이루어진다.
먼저 데이터 트랜스퍼 단계는 셀 데이터 트랜스퍼 신호 생성부(112)에서 유닛 선택 신호(CSL<0>)가 활성화되고 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 비활성화된 경우에 이루어지는 과정을 의미한다. 셀 데이터 트랜스퍼 신호 생성부(112)에서 셀 데이터 트랜스퍼 신호(1st CELL_TRANSFER<0>)를 활성화시키면 셀 제어부(113)에서 OTP 소자, 예컨대 도11의 실시예에서는 퓨즈(E-FUSE)의 상태를 제 1 OTP 셀(81)의 출력(1st CELL_OUT<0>)으로 출력한다. 이러한 데이터 트랜스퍼 단계에서의 셀 제어부(113)의 동작은 상기한 읽기 동작의 경우와 동일하다.
다음으로 프로그래밍단계는 셀 분배 회로(23)에 의해서 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 활성화된 경우에 이루어지는 과정을 의미한다. 셀 분배 회로 (23)에 의해 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 활성화되면 데이터 트랜스퍼 단계는 멈추고 셀 프로그래밍 신호 생성부(111)에서 제 2 OTP 셀(82)의 출력(2nd CELL_OUT<0>)에 따라 프로그래밍 동작의 진행여부를 판단하게 된다. 즉, 제 2 OTP 셀(82)의 출력(2nd CELL_OUT<0>)이 '0' 상태, 프로그래밍이 된 상태이면 셀 프로그래밍 신호(1st CELL_PGM<0>)가 비활성화되어 OTP 소자, 예컨대 퓨즈(E-FUSE)에 대한 프로그래밍을 수행하지 않는다. 반면 제 2 OTP 셀(82)의 출력(2nd CELL_OUT<0>)이 '1' 상태, 프로그래밍되지 않은 상태이면 셀 프로그래밍 신호(1st CELL_PGM<0>)가 활성화되어 OTP 소자, 예컨대 퓨즈(E-FUSE)에 대한 프로그래밍을 수행하게 된다.
한편, 상기 언급한바와 같이, 도11에서의 셀 제어부(113)의 구성은 전기 퓨즈의 프로그래밍과 판독을 위한 전기 퓨즈 프로그래밍/판독 회로를 예시한 것에 지나지 않는다. 따라서 사용된 OTP 소자의 종류에 따라서 다양한 구성을 취할 수 있고, 동일한 OTP 소자에 대해서도 다양한 회로 구성을 취할 수 있다. 도11에 도시된 셀 제어부(113)의 구성예는 하나의 예시에 지나지 않는 것으로, 상기 셀 제어부(113)에 대한 자세한 설명은 생략한다.
도12는 최소 두 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 두 번째 OTP 셀의 구성예를 도시한 회로도이다.
도12는 도8에서 예시한 프로그래머블 유닛(80)에 이용될 수 있는 제 2 OTP 셀(82)의 회로 구성예를 도시한 것이다.
도12를 참조하면, 제 2 OTP 셀(82)은 제 1 OTP 셀(81)과 마찬가지로 셀 프로그래밍 신호 생성부(121), 셀 데이터 트랜스퍼 신호 생성부(122) 및 셀 제어부(123)를 포함하여 구성된다. 도12의 셀 제어부(123)는 도11의 셀 제어부(113)과 마찬가지로 전기 퓨즈를 OTP 소자로서 사용한 경우를 예시한 것으로, 실시예에 따라서는 앤티 퓨즈 등의 다양한 OTP 소자들이 사용될 수 있다.
읽기 동작의 경우와 쓰기 동작의 데이터 트랜스퍼 단계에서의 셀 프로그래밍 신호 생성부(121), 셀 데이터 트랜스퍼 신호 생성부(122) 및 셀 제어부(123)의 동작은 상기 도11을 통해서 설명된 제 1 OTP 셀(81)의 대응 구성 요소의 동작과 동일하다. 다만, 도11을 통해서 설명된 제 1 OTP 셀(81)과는 달리 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 아닌 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)에 의해서 동작되는 점에서 차이가 있다.
또한 쓰기 동작의 프로그래밍 단계에 있어서, 도11의 제 1 OTP 셀(81)의 셀 프로그래밍 신호 생성부(111)는 제 2 OTP 셀(82)의 출력(2nd CELL_OUT<0>)에 의해서, OTP 소자, 예컨대 퓨즈(E-FUSE)에 대한 프로그래밍 진행 여부를 결정한 반면, 제 2 OTP 셀(82)은 다른 OTP 셀의 상태에 무관하게 프로그래밍 진행 여부를 결정하는 부분에서 차이가 있다. 왜냐하면, 두 개의 OTP 셀을 가진 프로그래머블 유닛의 경우, 오버 프로그래밍이 발생할 수 있는 경우는 기수 셀 프로그래밍 신호(ODD_CELL_PGM)에 의해서 프로그래밍되는 경우로만 국한되기 때문에 제 2 OTP 셀(82)의 프로그래밍의 경우에는 다른 OTP 셀의 상태를 확인할 필요가 없다.
도13은 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 두 번째 OTP 셀의 구성예를 도시한 회로도이다.
도13은 도9에서 예시한 프로그래머블 유닛(90)에 이용될 수 있는 제 2 OTP 셀(92)의 회로 구성예를 도시한 것이다. 도10에서 예시한 프로그래머블 유닛(100)에 이용될 수 있는 제 2 OTP 셀(102)의 구성도 도13의 제 2 OTP 셀(92)과 동일한 구성을 취할 수 있다.
한편, 도9 및 도10에서 예시한 프로그래머블 유닛(90,100)에 이용될 수 있는 제 1 OTP 셀(91,101)의 구성은 상기 도11에서 예시한 제 1 OTP 셀(81)의 구성과 동일하게 취해질 수 있으므로 설명이 생략된다.
도13을 참조하면, 제 2 OTP 셀(92)은 셀 프로그래밍 신호 생성부(131), 셀 데이터 트랜스퍼 신호 생성부(132) 및 셀 제어부(133)를 포함하여 구성된다.
읽기 동작의 경우에는 읽기 신호(READ_H)가 활성화될 경우에 셀 데이터 트랜스퍼 신호 생성부(132)에서 셀 데이터 트랜스퍼 신호(2nd CELL_TRANSFER<0>)가 셀 제어부(133)로 출력되고, 셀 제어부(133)에서, OTP 소자, 예컨대 전기 퓨즈(E-FUSE)의 상태를 제 2 OTP 셀(92)의 출력(2nd CELL_OUT<0>)으로 출력한다.
쓰기 동작의 데이터 트랜스퍼 단계에서는 셀 데이터 트랜스퍼 신호 생성부(132)에서 유닛 선택 신호(CSL<0>)가 활성화되고 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 비활성화된 경우에는 셀 데이터 트랜스퍼 신호(2nd CELL_TRANSFER<0>)가 활성화되어 셀 제어부(133)의, OTP 소자, 예컨대 퓨즈(E-FUSE) 상태를 제 2 OTP 셀(92)의 출력(2nd CELL_OUT<0>)으로 출력한다.
다음으로 쓰기 동작의 프로그래밍단계에서는 셀 분배 회로(23)에 의해 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 활성화되면 데이터 트랜스퍼 단계는 멈추고 제 3 OTP 셀(93)의 출력(3rd CELL_OUT<0>)에 따라 프로그래밍 동작의 진행여부를 판단하게 된다. 즉, 제 3 OTP 셀(93)의 출력(3rd CELL_OUT<0>)이 '0' 상태이면 셀 프로그래밍 신호(2nd CELL_PGM<0>)가 비활성화되어, OTP 소자, 예컨대 퓨즈(E-FUSE)에 대한 프로그래밍을 수행하지 않는다. 반면 제 3 OTP 셀(93)의 출력(3rd CELL_OUT<0>)이 '1'이면 셀 프로그래밍 신호(2nd CELL_PGM<0>)가 활성화되어, OTP 소자, 예컨대 퓨즈(E-FUSE)에 대한 프로그래밍을 수행하게 된다.
도14는 최소 세 번의 프로그래밍이 가능한 프로그래머블 유닛에 사용될 수 있는 세 번째 OTP 셀의 구성예를 도시한 회로도이다.
도14는 도9에서 예시한 프로그래머블 유닛(90)에 이용될 수 있는 제 3 OTP 셀(93)의 회로 구성예를 도시한 것이다. 도10에서 예시한 프로그래머블 유닛(100)에 이용될 수 있는 제 3 OTP 셀(103)의 구성도 도14의 제 3 OTP 셀(93)과 동일한 구성을 취할 수 있다.
도14를 참조하면, 제 3 OTP 셀(93)은 도11, 도12, 도13에서 예시한 OTP 셀들(81,82,92)과 마찬가지로 셀 프로그래밍 신호 생성부(141), 셀 데이터 트랜스퍼 신호 생성부(142) 및 셀 제어부(143)를 포함하여 구성된다.
쓰기 동작의 데이터 트랜스퍼 단계에서는 셀 데이터 트랜스퍼 신호 생성부(142)에서 유닛 선택 신호(CSL<0>)가 활성화되고 기수 셀 프로그래밍 신호 (ODD_CELL_PGM)가 비활성화된 경우에는 셀 데이터 트랜스퍼 신호(3rd CELL_TRANSFER<0>)가 활성화되어 셀 제어부(143)의 OTP 소자, 예컨대 퓨즈(E-FUSE) 상태를 제 3 OTP 셀(93)의 출력(3rd CELL_OUT<0>)으로 출력한다.
다음으로 쓰기 동작의 프로그래밍단계에서는 셀 분배 회로(23)에 의해 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 활성화되면 데이터 트랜스퍼 단계를 멈추고 제 2 OTP 셀(92)의 출력의 반전값(2nd CELL_OUTB<0>)에 따라 프로그래밍 동작의 진행여부를 판단하게 된다. 즉, 제 2 OTP 셀(92)의 출력의 반전값(2nd CELL_OUTB<0>)이 '0' 상태이면 셀 프로그래밍 신호(3rd CELL_PGM<0>)가 비활성화되어, OTP 소자, 예컨대 퓨즈(E-FUSE)에 대한 프로그래밍을 수행하지 않는다. 반면 제 2 OTP 셀(92)의 출력의 반전값(2nd CELL_OUTB<0>)이 '1'이면 셀 프로그래밍 신호(3rd CELL_PGM<0>)가 활성화되어, OTP 소자, 예컨대 퓨즈(E-FUSE)에 대한 프로그래밍을 수행하게 된다.
도15는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 풀 상태 검출 회로의 구성예를 도시한 회로도이다.
도15를 참조하면, 풀 상태 검출 회로(25)는 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛들의 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)를 입력받아 부정 논리곱(NAND) 연산을 하는 논리 게이트로 구성된다.
따라서, 풀 상태 검출 회로(25)는 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛들의 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)중 하나라도 '0' 상태에 있 는 경우에 풀 상태 신호(FULL)를 출력한다. 즉, 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛들 중 하나라도 프로그래머블 유닛이 포함하고 있는 마지막 OTP 셀이 프로그래밍된 경우에는 풀 상태 신호(FULL)가 풀 상태 검출 회로(25)로부터 출력되게 된다.
도16은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 에러 상태 검출 회로의 구성예를 도시한 회로도이다.
도16을 참조하면, 에러 상태 검출 회로(26)는 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛들의 유닛 에러 상태 신호(ERR<0:127>)를 입력받아 논리합(OR) 연산을 하는 논리 게이트로 구성된다.
따라서, 에러 상태 검출 회로(26)는 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛들의 유닛 에러 상태 신호(ERR<0:127>)중 하나라도 '1' 상태에 있는 경우에 에러 상태 신호(ERR)를 출력한다. 즉, 에러 상태 검출 회로(26)는 쓰기 동작 중에 하나의 프로그래머블 유닛에서만 유닛 에러 상태 신호(ERR<0:127>)가 출력되어도 에러 상태 신호(ERR)를 출력한다.
도17은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 레벨 다운 컨버터 회로의 구성예를 도시한 블록도이다.
도17을 참조하면, 레벨 다운 컨버터 회로(27)는 128개의 유닛 출력 신호 레벨 다운 컨버터(OUT<0:127> LEVEL DOWN CONVERTER), 128개의 유닛 풀 상태 신호 레벨 다운 컨버터(Nth CELL_OUT<0:127> LEVEL DOWN CONVERTER) 및 에러 상태 신호 레벨 다운 컨버터(ERR LEVEL DOWN CONVERTER)를 포함하여 구성된다.
각각의 레벨 다운 컨버터들은 각각 유닛 출력 신호(OUT<0:127>), 유닛 풀 상태 신호(Nth CELL_OUT<0:127>) 및 에러 상태 신호(ERR)를 입력받아 각각에 해당하는 외부 동작용 신호들, 외부 유닛 출력 신호(OUT_L<0:127), 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>) 및 외부 에러 상태 신호(ERR_L)를 출력한다.
도18은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 레벨 다운 컨버터의 구성예를 도시한 회로도이다.
도18을 참조하면, 도17의 레벨 다운 컨버터 회로(27) 중에서 유닛 출력 신호 레벨 다운 컨버터들 중의 하나(OUT<0> LEVEL DOWN CONVERTER)의 회로도가 예시되어 있다.
도18에서 예시한 유닛 출력 신호 레벨 다운 컨버터(OUT<0> LEVEL DOWN CONVERTER)는 외부 신호 전압 레벨(VCC)로 레벨 다운을 시키기 위해 두 개의 직렬 연결된 반전기로 구성된 통상적인 레벨 다운 컨버터 회로이다. 상기 유닛 풀 상태 신호 레벨 다운 컨버터들 및 에러 상태 신호 레벨 다운 컨버터도 상기 도18에서 예시한 유닛 출력 신호 레벨 다운 컨버터와 동일하게 구성될 수 있다.
도19는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쉬프트 레지스터 회로의 실시예를 도시한 블록도이다.
도19를 참조하면, 본 발명의 쉬프트 레지스터 회로(28)는 총 128개의 직렬 연결된 쉬프트 레지스터들(SHIFT REGISTER<0:127>)로 구성되어 있다.
총 128개의 쉬프트 레지스터들(SHIFT REGISTER<0:127>)은 외부 유닛 출력 신호(OUT_L<0:127>) 또는 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>)를 로드 신 호(LOAD)에 의해서 레벨 다운 컨버터 회로(27)로부터 입력받는다.
또한 직렬 연결된 128개의 쉬프트 레지스터들(SHIFT REGISTER<0:127>)은 클록 신호(CLK)에 의해 외부 유닛 출력 신호(OUT_L<0:127>) 또는 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>)를 순차적으로 출력 데이터(DOUT) 패드로 전달하게 된다. 즉, 본 발명의 쉬프트 레지스터 회로(28)는 읽기 신호(READ_H)에 의해서 유닛 어레이(24)에서 병렬로 출력된 프로그래머블 유닛들의 128비트 데이터를 직렬로 전환하여 출력하는 역할을 수행한다.
한편 풀 상태 테스트 신호(FULL_TEST)는 레벨 다운 컨버터 회로(27)로부터 출력된 외부 유닛 출력 신호들(OUT_L<0:127>)과 외부 유닛 풀 상태 신호들(Nth CELL_OUT_L<0:127>)중에서 쉬프트 레지스터들(SHIFT REGISTER<0:127>)로 로드될 입력을 선택하는 신호이다. 따라서, 풀 상태 테스트 신호(FULL_TEST)가 '0'이면 쉬프트 레지스터들(SHIFT REGISTER<0:127>)에는 외부 유닛 출력 신호(OUT_L<0:127>)가 로드되고, 풀 상태 테스트 신호(FULL_TEST)가 '1'이면 쉬프트 레지스터들(SHIFT REGISTER<0:127>)에는 외부 유닛 풀 상태 신호들(Nth CELL_OUT_L<0:127>)이 로드된다.
도20은 쉬프트 레지스터 회로의 쉬프트 레지스터의 실시예를 도시한 회로도이다.
도20은 도19의 쉬프트 레지스터 회로(28)의 쉬프트 레지스터(SHIFT REGISTER<0>)의 실시예를 도시한 회로도이다. 마지막 쉬프트 레지스터(SHIFT REGISTER<127>)를 제외한 나머지 쉬프트 레지스터들은 도20에서 예시한 쉬프트 레 지스터(SHIFT REGISTER<0>)와 동일한 구성을 취할 수 있다.
로드 신호(LOAD)가 '1'이면 풀 상태 테스트 신호(FULL_TEST)에 따라 전송 게이트들(TG201, TG202)에 의해서 외부 유닛 출력 신호(OUT_L<0>) 또는 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0>)를 제 1 래치(201)에 저장하고, 이후 클록 신호(CLK)가 '1'이 되면 제 1 래치(201)의 데이터를 제 2 래치(202)로 전달한다. 이후 로드 신호(LOAD)가 '0'으로 되면 새로운 레지스터 데이터 입력(REGISTER_DIN<0>)이 제 1 래치(201)에 저장된다. 레지스터 데이터 입력(REGISTER_DIN<0>)은 쉬프트 레지스터(SHIFT REGISTER<1>)의 레지스터 데이터 출력(REGISTER_DOUT<1>)을 통해 전달된 값으로 결국 외부 유닛 출력 신호(OUT_L<1>) 또는 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<1>)에 해당된다. 이런 식으로 클록 신호(CLK)를 토글링(toggling)해가면서 128개의 쉬프트 레지스터(SHIFT REGISTER<0:127>)에 저장된 데이터를 레지스터 데이터 출력(REGISTER_DOUT<0>)으로 전달한다. 한편 쉬프트 레지스터(SHIFT REGISTER<0>)의 레지스터 데이터 출력(REGISTER_DOUT<0>)은 출력 데이터(DOUT) 패드에 바로 연결되어 외부로 출력된다.
도21은 쉬프트 레지스터 회로의 마지막 쉬프트 레지스터의 실시예를 도시한 회로도이다.
도21은 도19의 쉬프트 레지스터 회로(28)의 마지막 쉬프트 레지스터(SHIFT REGISTER<127>)의 실시예를 도시한 회로도이다. 도20을 통하여 설명된 쉬프트 레지스터(SHIFT REGISTER<0>)와 구성 및 동작이 유사하지만, 이전 쉬프트 레지스터로부터의 입력, 예를 들면, 도20의 쉬프트 레지스터(SHIFT REGISTER<0>)의 레지스터 데 이터 입력(REGISTER_DIN<0>)이 존재하지 않는다. 왜냐하면, 쉬프트 레지스터(SHIFT REGISTER<127>)에 저장된 데이터가 출력 데이터(DOUT) 패드를 통해 마지막으로 외부로 출력되기 때문이다. 이하 도21에서 도시된 쉬프트 레지스터(SHIFT REGISTER<127>)의 구성 및 동작은 상기 도20에서 설명된 쉬프트 레지스터(SHIFT REGISTER<0>)의 구성 및 동작과 유사하므로 설명은 생략한다.
도22a와 도22b는 최소 두 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 플로우 차트이다.
도22a와 도22b의 플로우 차트는 도8에서 예시한 두 개의 OTP 셀을 가진 프로그래머블 유닛(80)을 사용하여 최소 두 번의 프로그래밍을 보장하는 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 절차를 설명하기 위한 것이다.
외부 쓰기 신호(WRITE)가 활성화 전압 레벨(VCC)로 입력되고, 적절한 외부 어드레스 신호(ADD)가 입력되며, 외부 읽기 신호가 비활성화 상태 '0'이 되면 멀티 타임 프로그래머블 반도체 메모리 장치에 대한 쓰기 동작이 시작된다(S11).
레벨 쉬프터 회로(21)에 의해서 상기 외부 쓰기 신호(WRITE), 외부 어드레스 신호(ADD), 외부 읽기 신호(READ)는 내부 신호로 레벨 쉬프팅된다(S12). 또한 유닛 디코더 회로(22)는 어드레스 신호(ADD)에 응답하여 유닛 어레이(24)에서 하나의 프로그래머블 유닛을 선택하기 위한 유닛 선택 신호(CSL<N>)를 발생시킨다(S12).
쓰기 신호(WRITE_H)보다 유닛 선택 신호(CSL<N>)를 먼저 유닛 어레이(24)에 인가함에 따라서, 즉, 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 또는 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 아직 활성화되지 않은 상태에서 쓰기 동작의 데이터 트랜스퍼 단계가 먼저 수행된다. 따라서, 유닛 어레이(24)에서는 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)를 셀 분배 회로(23)로 출력한다(S13).
다음으로 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)의 값을 확인하는 단계(S14)가 진행된다. 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 '1' 인 상태인 경우, 즉, 현재 유닛 선택 신호(CSL<N>)에 의해 선택된 프로그래머블 유닛에 기록된 데이터가 '1'인 경우에는 도22b의 입력 데이터 신호(DIN_H)의 값을 판단하는 단계(S15)로 진행하게 된다.
입력 데이터(DIN_H)의 값을 판단하는 단계(S15)에서 현재 선택된 프로그래머블 유닛에 기록하여야 하는 입력 데이터(DIN_H)의 값이 '1'로 판단된 경우에는 상기 표1의 경우4에 해당하므로 아무런 프로그래밍 동작을 하지 않는다(S16).
반대로 현재 선택된 프로그래머블 유닛에 기록하여야 하는 입력 데이터(DIN_H)의 값이 '0'으로 판단된 경우에는 셀 분배 회로(23)에 의해서 기수 셀 프로그래밍 신호(ODD_CELL_PGM)는 '0', 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)는 '1'로 출력된다(S17). 즉, 이 경우는 상기 표1의 경우3에 해당된다. 상기 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)에 의해서 선택된 프로그래머블 유닛의 제 2 OTP 셀에서는 OTP 소자에 대한 프로그래밍을 실시하게 된다(S18).
상기 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)의 값을 확인하는 단계(S14)에서 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 '0' 인 경우에도 입력 데이터 신호(DIN_H)의 값이 '1'인지를 확인하는 단계(S20)로 진행한다.
입력 데이터 신호(DIN_H)의 값이 '1'인지를 확인하는 단계(S20)에서 입력 데 이터 신호(DIN_H)의 값이 '0'인 경우에는 상기 표1의 경우1에 해당하므로 아무런 프로그래밍 동작을 하지 않는다(S21).
반대로 현재 선택된 프로그래머블 유닛에 기록하여야 하는 값이 '1'로 판단된 경우에는 셀 분배 회로(23)에 의해서 기수 셀 프로그래밍 신호(ODD_CELL_PGM)는 '1', 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)는 '0'으로 출력된다(S22). 즉, 이 경우는 상기 표1의 경우2에 해당된다.
다음으로, 선택된 프로그래머블 유닛의 제 2 OTP 셀이 프로그래밍이 되어 있는지를 확인하는 단계(S23)를 거친다. 만약, 제 2 OTP 셀이 아직 프로그래밍되지 않았다면 제 1 OTP 셀을 프로그래밍하는 단계(S24)로 진행한다. 그러나, 제 2 OTP 셀이 이미 프로그래밍된 상태라면, 해당 프로그래머블 유닛은 이미 풀 상태에 이른 경우이므로, 유닛 에러 상태 신호(ERR<N>)가 활성화된다(S25).
에러 상태 검출 회로(26)에서는 상기 유닛 에러 상태 신호(ERR<N>)가 활성화된 것에 응답하여 에러 상태 신호(ERR)를 활성화시킨다(S26). 마지막으로 레벨 다운 컨버터 회로(27)가 정상 동작하여 상기 에러 상태 신호(ERR)를 외부 에러 상태 신호(ERR_L)로 레벨 다운하여 출력한다(S27).
도23a와 도23b는 최소 세 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 플로우 차트이다.
도23a와 도23b의 플로우 차트는 도9 및 도10에서 예시한 세 개의 OTP 셀을 가진 프로그래머블 유닛들(90,100)을 사용하여 최소 세 번의 프로그래밍을 보장하 는 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 절차를 설명하기 위한 것이다.
외부 쓰기 신호(WRITE)가 활성화 전압 레벨(VCC)로 입력되고, 적절한 외부 어드레스 신호(ADD)가 입력되며, 외부 읽기 신호가 비활성화 상태 '0'이 되면 멀티 타임 프로그래머블 반도체 메모리 장치에 대한 쓰기 동작이 시작된다(S31).
레벨 쉬프터 회로(21)에 의해서 상기 외부 쓰기 신호(WRITE), 외부 어드레스 신호(ADD), 외부 읽기 신호(READ)는 내부 신호로 레벨 쉬프팅된다(S32). 또한 유닛 디코더 회로(22)는 어드레스 신호(ADD)에 응답하여 유닛 선택 신호(CSL<N>)를 발생시킨다(S32).
쓰기 신호(WRITE_H)보다 유닛 선택 신호(CSL<N>)를 먼저 유닛 어레이(24)에 인가함에 따라서, 즉, 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 또는 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 아직 활성화되지 않은 상태에서 쓰기 동작의 데이터 트랜스퍼 단계가 먼저 수행된다. 따라서, 유닛 어레이(24)에서는 유닛 선택 신호(CSL<N>)에 의해 선택된 프로그래머블 유닛의 유닛 출력 신호(OUT<N>)를 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)로서 셀 분배 회로(23)로 출력한다(S33).
다음으로 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)의 값을 확인하는 단계(S34)가 진행된다. 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 '0' 인 상태인 경우, 즉, 현재 유닛 선택 신호(CSL<N>)에 의해 선택된 프로그래머블 유닛에 기록된 값이 '0'인 경우에는 도23b의 입력 데이터 신호(DIN_H)의 값을 판단하는 단계(S35)로 진행하게 된다.
입력 데이터 신호(DIN_H)의 값을 판단하는 단계(S35)에서 현재 선택된 프로그래머블 유닛에 기록하여야 하는 값이 '0'으로 판단된 경우에는 상기 표1의 경우1에 해당하므로 아무런 프로그래밍 동작을 하지 않는다(S36).
반대로 현재 선택된 프로그래머블 유닛에 기록하여야 하는 값이 '1'로 판단된 경우에는 셀 분배 회로(23)에 의해서 기수 셀 프로그래밍 신호(ODD_CELL_PGM)는 '1', 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)는 '0'으로 출력된다(S37). 즉, 이 경우는 상기 표1의 경우2에 해당된다.
다음으로, 선택된 프로그래머블 유닛의 제 2 OTP 셀이 프로그래밍이 되어 있는지를 확인하는 단계(S38)를 거친다. 만약, 제 2 OTP 셀이 아직 프로그래밍되지 않았다면 제 1 OTP 셀을 프로그래밍하는 단계(S39)로 진행한다. 반대로 제 2 OTP 셀이 이미 프로그래밍되었다면 제 3 OTP 셀을 프로그래밍하는 단계(S40)로 진행한다.
상기 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)의 값을 확인하는 단계(S34)에서 유닛 어레이 출력 신호(UNIT_ARRAY_OUT)가 '1' 인 경우에도 입력 데이터(DIN_H)가 '0'인지를 확인하는 단계(S41)로 진행한다.
입력 데이터(DIN_H)가 '0'인지를 확인하는 단계(S41)에서 입력 데이터(DIN_H)가 '1'인 경우에는 상기 표1의 경우4에 해당하므로 아무런 프로그래밍 동작을 하지 않는다(S42).
반대로 현재 선택된 프로그래머블 유닛에 기록하여야 하는 값이 '0'으로 판단된 경우에는 셀 분배 회로(23)에 의해서 기수 셀 프로그래밍 신호(ODD_CELL_PGM) 는 '0', 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)는 '1'로 출력된다(S43). 즉, 이 경우는 상기 표1의 경우3에 해당된다.
다음으로, 선택된 프로그래머블 유닛의 제 3 OTP 셀이 프로그래밍이 되어 있는지를 확인하는 단계(S44)를 거친다. 만약, 제 3 OTP 셀이 아직 프로그래밍되지 않았다면 제 2 OTP 셀을 프로그래밍하는 단계(S45)로 진행한다. 그러나, 제 3 OTP 셀이 이미 프로그래밍된 상태라면, 해당 프로그래머블 유닛은 이미 풀 상태에 이른 경우이므로, 유닛 에러 상태 신호(ERR<N>)가 활성화된다(S46).
에러 상태 검출 회로(26)에서는 상기 유닛 에러 상태 신호(ERR<N>)가 활성화된 것에 응답하여 에러 상태 신호(ERR)를 활성화시킨다(S47). 마지막으로 레벨 다운 컨버터 회로(27)가 정상 동작하여 상기 에러 상태 신호(ERR)를 외부 에러 상태 신호(ERR_L)로 레벨 다운하여 출력한다(S48).
도24a 내지 도24e는 최소 두 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 타이밍도이다.
도24a 내지 도24e는 유닛 어레이(24)의 제 1 프로그래머블 유닛과 제 2 프로그래머블 유닛에 대한 쓰기 동작이 이루어지는 과정을 예시한 타이밍도이다. 편의상, 제 1 프로그래머블 유닛과 제 2 프로그래머블 유닛은 현재 같은 데이터를 저장하고 있고, 같은 입력 데이터를 입력받아 쓰기 동작이 이루어지는 것을 예시하고 있다.
도8에서 예시한 두 개의 OTP 셀을 가진 프로그래머블 유닛(80)을 사용하여 최소 두 번의 프로그래밍을 보장하는 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작은 다음의 다섯 가지의 경우로 나누어질 수 있다.
첫째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '0'이고, 입력 데이터 신호(DIN)가 '0'인 경우이다. 이 경우에는 현재 저장된 데이터를 그대로 유지하면 되므로, 프로그래밍 동작이 이루어지지 않는다.
도24a를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(241a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(241b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 242a)와 유닛 선택 신호(CSL<1>; 242b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '0' 상태이고(243), 입력 데이터 신호(DIN)가 '0'상태이므로(244), 상기 쓰기 동작의 첫째 경우에 해당한다. 따라서, 이 경우에는 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 모두 비활성화 상태에 머무른다(245,246).
둘째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '0'이고, 입력 데이터 신호(DIN)가 '1'이며, 선택된 프로그래머블 유닛에 포함된 두 개의 OTP 셀이 모두 프로그래밍되지 않은 상태인 경우이다. 이 경우에는 해당 프로그래머블 유닛의 제 1 OTP 셀이 프로그래밍된다.
도24b를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(251a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(251b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 252a)와 유닛 선택 신호(CSL<1>; 252b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '0' 상태이고(253), 입력 데이터 신호(DIN)가 '1'상태이므로(254), 상기 쓰기 동작의 둘째 경우에 해당한다. 따라서, 이 경우에는 각 프로그래머블 유닛에 대한 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 발생한다(255a,255b). 기수 셀 프로그래밍 신호(ODD_CELL_PGM)에 응답하여 각 프로그래머블 유닛에서는 제 1 OTP 셀 프로그래밍 신호가 발생하게 된다(256a,256b).
셋째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '1'이고, 입력 데이터 신호(DIN)가 '1'인 경우이다. 이 경우에도 현재 저장된 데이터를 그대로 유지하면 되므로, 상기 첫째 경우와 동일하게 프로그래밍 동작이 이루어지지 않는다.
도24c를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(261a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(261b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 262a)와 유닛 선택 신호(CSL<1>; 262b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '1' 상태이고(263), 입력 데이터 신호(DIN)가 '1'상태이므로(264), 상기 쓰기 동작의 셋째 경우에 해당한다. 따라서, 이 경우에는 기수 셀 프 로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 모두 발생하지 않는다(265,266).
넷째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '1'이고, 입력 데이터 신호(DIN)가 '0'인 경우이다. 이 경우에는 해당 프로그래머블 유닛의 제 2 OTP 셀이 프로그래밍된다.
도24d를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(271a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(271b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 272a)와 유닛 선택 신호(CSL<1>; 272b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '1' 상태이고(273), 입력 데이터 신호(DIN)가 '0'상태이므로(274), 상기 쓰기 동작의 넷째 경우에 해당한다. 따라서, 이 경우에는 각 프로그래머블 유닛에 대한 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 발생된다(275a,275b). 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)에 응답하여 각 프로그래머블 유닛에서는 제 2 OTP 셀 프로그래밍 신호가 발생하게 된다(276a,276b).
다섯째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '0'이고, 입력 데이터 신호(DIN)가 '1'이며, 선택된 프로그래머블 유닛에 포함된 두 개의 OTP 셀이 모두 프로그래밍된 상태인 경우이다. 이 경우에는 해당 프로그래머블 유닛이 풀 상태에 이른 경우인데도 저장된 데이터와 반대 값을 저장하려고 시도하는 경우이므로 에러 상태 신호(ERR)가 발생되게 된다.
도24e를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(281a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(281b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 282a)와 유닛 선택 신호(CSL<1>; 282b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '0' 상태이고(283), 입력 데이터 신호(DIN)가 '1'상태이므로(284), 상기 쓰기 동작의 둘째 경우 또는 다섯째 경우에 해당할 수 있다. 그러나, 상기 쓰기 동작의 둘째 경우와는 달리 프로그래머블 유닛에 포함된 OTP 셀이 모두 프로그래밍된 상태라는 점에서 차이점이 있다. 먼저, 도24b에서 예시한 경우와 마찬가지로 각 프로그래머블 유닛에 대한 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 발생한다(285a,285b). 그러나, 상기 기수 셀 프로그래밍 신호(ODD_CELL_PGM)를 입력받은 각 프로그래머블 유닛에서는 제 1 OTP 셀에 대한 프로그래밍 동작 대신에 유닛 상태 에러 신호(ERR<0>, ERR<1>)를 발생시키게 된다. 에러 상태 검출 회로(26)에서는 상기 유닛 상태 에러 신호(ERR<0>, ERR<1>)에 응답하여 에러 상태 신호(ERR)를 발생시키게 된다(286a, 286b).
도25a 내지 도25f는 최소 세 번까지 프로그래밍이 가능한 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작 타이밍도이다.
도25a 내지 도25f는 유닛 어레이(24)의 제 1 프로그래머블 유닛과 제 2 프로그래머블 유닛에 대한 쓰기 동작이 이루어지는 과정을 예시한 타이밍도이다. 편의상, 제 1 프로그래머블 유닛과 제 2 프로그래머블 유닛은 현재 같은 데이터를 저장 하고 있고, 같은 입력 데이터를 입력받아 쓰기 동작이 이루어지는 것을 예시하고 있다.
도9 및 도10에서 예시한 세 개의 OTP 셀을 가진 프로그래머블 유닛(90,100)을 사용하여 최소 세 번의 프로그래밍을 보장하는 멀티 타임 프로그래머블 반도체 메모리 장치의 쓰기 동작은 다음의 여섯 가지의 경우로 나누어질 수 있다.
첫째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '0'이고, 입력 데이터 신호(DIN)가 '0'인 경우이다. 이 경우에는 현재 저장된 데이터를 그대로 유지하면 되므로, 프로그래밍 동작이 이루어지지 않는다.
도25a를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(291a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(291b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 292a)와 유닛 선택 신호(CSL<1>; 292b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '0' 상태이고(293), 입력 데이터 신호(DIN)가 '0'상태이므로(294), 상기 쓰기 동작의 첫째 경우에 해당한다. 따라서, 이 경우에는 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 모두 비활성화 상태에 머무른다(295,296).
둘째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '0'이고, 입력 데이터 신호(DIN)가 '1'이며, 선택된 프로그래 머블 유닛에 포함된 세 개의 OTP 셀이 모두 프로그래밍되지 않은 상태인 경우이다. 이 경우에는 해당 프로그래머블 유닛의 제 1 OTP 셀이 프로그래밍된다.
도25b를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(301a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(301b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 302a)와 유닛 선택 신호(CSL<1>; 302b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '0' 상태이고(303), 입력 데이터(DIN)가 '1'상태이므로(304), 상기 쓰기 동작의 둘째 경우에 해당한다. 따라서, 이 경우에는 각 프로그래머블 유닛에 대한 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 발생된다(305a,305b). 기수 셀 프로그래밍 신호(ODD_CELL_PGM)에 응답하여 각 프로그래머블 유닛에서는 제 1 OTP 셀 프로그래밍 신호가 발생하게 된다(306a,306b).
셋째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '1'이고, 입력 데이터 신호(DIN)가 '1'인 경우이다. 이 경우에도 현재 저장된 데이터를 그대로 유지하면 되므로, 상기 첫째 경우와 동일하게 프로그래밍 동작이 이루어지지 않는다.
도25c를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(311a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(311b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 312a)와 유닛 선택 신호(CSL<1>; 312b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '1' 상태이고(313), 입력 데이터(DIN)가 '1'상태이므로(314), 상기 쓰기 동작의 셋째 경우에 해당한다. 따라서, 이 경우에는 기수 셀 프로그래밍 신호(ODD_CELL_PGM)와 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 모두 발생하지 않는다(315,316).
넷째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '1'이고, 입력 데이터 신호(DIN)가 '0'이고, 선택된 프로그래머블 유닛에 포함된 세 개의 OTP 셀 중에 제 1 OTP 셀이 프로그래밍된 경우이다. 이 경우에는 해당 프로그래머블 유닛의 제 2 OTP 셀이 프로그래밍된다.
도25d를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(321a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(321b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 322a)와 유닛 선택 신호(CSL<1>; 322b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '1' 상태이고(323), 입력 데이터 신호(DIN)가 '0'상태이므로(324), 상기 쓰기 동작의 넷째 경우에 해당한다. 따라서, 이 경우에는 각 프로그래머블 유닛에 대한 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)가 발생한다(325a,325b). 우수 셀 프로그래밍 신호(EVEN_CELL_PGM)에 응답하여 각 프로그래머블 유닛에서는 제 2 OTP 셀 프로그래밍 신호가 발생하게 된다(326a,326b).
다섯째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '0'이고, 입력 데이터 신호(DIN)가 '1'이며, 선택된 프로그래머블 유닛에 포함된 세 개의 OTP 셀 중에 제 1 OTP 셀과 제 2 OTP 셀이 프로그래밍된 경우이다. 이 경우는 상기 쓰기 동작의 두 번째 경우와 유사하다. 그러나, 상기 두 번째 경우에 있어서는 세 개의 OTP 셀이 모두 프로그래밍되지 않은 경우이나, 본 다섯 번째 경우는 세 개의 OTP 셀들 중 제 1 OTP 셀과 제 2 OTP 셀이 프로그래밍된 상태인 점에서 차이가 있다. 따라서, 본 경우에는 제 3 OTP 셀이 프로그래밍된다.
도25e를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(331a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(331b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 332a)와 유닛 선택 신호(CSL<1>; 332b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '0' 상태이고(333), 입력 데이터(DIN)가 '1'상태이므로(334), 상기 쓰기 동작의 둘째 경우 또는 다섯째 경우에 해당한다. 따라서, 이 경우에는 각 프로그래머블 유닛에 대한 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 발생한다(335a,335b). 그러나, 기수 셀 프로그래밍 신호(ODD_CELL_PGM)를 입력받은 각 프로그래머블 유닛에서는 제 1 OTP 셀과 제 2 OTP 셀이 이미 프로그래밍된 상태이므로, 상기 둘째 경우와는 달리 제 3 OTP 셀을 프로그래밍한다(336a,336b).
여섯째는, 어드레스 신호(ADD<0:6>)에 의해서 선택된 프로그래머블 유닛에 현재 저장된 데이터가 '1'이고, 입력 데이터 신호(DIN)가 '0'이며, 선택된 프로그 래머블 유닛에 포함된 세 개의 OTP 셀이 모두 프로그래밍된 상태인 경우이다. 이 경우에는 해당 프로그래머블 유닛이 풀 상태에 이른 경우인데도 저장된 데이터와 반대값을 저장하려고 시도하는 경우이므로 에러 상태 신호(ERR)가 발생되게 된다.
도25f를 참조하면, 제 1 프로그래머블 유닛에 대한 어드레스 신호(341a)와 제 2 프로그래머블 유닛에 대한 어드레스 신호(341b)가 순차적으로 입력되고, 이들에 대한 유닛 선택 신호(CSL<0>; 342a)와 유닛 선택 신호(CSL<1>; 342b)가 순차적으로 발생된다.
제 1 프로그래머블 유닛의 유닛 출력 신호와 제 2 프로그래머블 유닛의 유닛 출력 신호가 모두 '1' 상태이고(343), 입력 데이터(DIN)가 '0'상태이므로(344), 상기 쓰기 동작의 둘째 경우 또는 넷째 경우에 해당할 수 있다. 그러나, 상기 쓰기 동작의 둘째 경우와 넷째 경우와는 달리 프로그래머블 유닛에 포함된 OTP 셀이 모두 프로그래밍된 상태라는 점에서 차이점이 있다. 먼저, 도25b 및 도25d에서 예시한 경우와 마찬가지로 각 프로그래머블 유닛에 대한 기수 셀 프로그래밍 신호(ODD_CELL_PGM)가 발생한다(345a,345b). 그러나, 상기 기수 셀 프로그래밍 신호(ODD_CELL_PGM)를 입력받은 각 프로그래머블 유닛에서는 유닛 상태 에러 신호(ERR<0>, ERR<1>)를 발생시키게 된다. 에러 상태 검출 회로(26)에서는 상기 유닛 상태 에러 신호(ERR<0>, ERR<1>)에 응답하여 에러 상태 신호(ERR)를 발생시키게 된다(346a, 346b).
도26은 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 유닛 어레이의 읽기 동작 타이밍도이다.
도26을 참조하면, 읽기 신호(READ)가 활성화(351)되면 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 유닛 어레이(24)에 대한 읽기 동작이 시작된다.
도2에서 예시하고 있는 멀티 타임 프로그래머블 반도체 메모리 장치(20)는 읽기 신호(READ)가 입력되면 유닛 어레이(24)에 저장된 데이터를 순차적으로 직렬로 출력하는 방식으로 동작한다. 따라서, 읽기 동작 중에는 어드레스 신호(ADD) 및 입력 데이터 신호(DIN)는 무시된다.
읽기 신호(READ)가 활성화된 이후에, 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛의 저장 데이터가 유닛 출력 신호(OUT<0:127>)로 동시에 출력된다(352).
동시에 출력된 유닛 출력 신호(OUT<0:127>)는 레벨 다운 컨버터 회로(27)에서 레벨 다운되는 과정을 거친다. 또한, 레벨 다운된 외부 유닛 출력 신호(OUT_L<0:127>)는 쉬프트 레지스터 회로(28)에 의해서 직렬화되는 과정을 거쳐서 출력된다.
한편, 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛의 저장 데이터가 유닛 출력 신호(OUT<0:127>)로 출력됨과 함께, 모든 프로그래머블 유닛의 풀 상태가 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)로 동시에 출력된다.
풀 상태 검출 회로(25)에서는 상기 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)를 입력받아 풀 상태 신호(FULL)를 출력된다. 유닛 어레이(24)에 포함된 프로그래머블 유닛들 중 하나의 프로그래머블 유닛이라도 풀 상태에 이른 경우에는 풀 상태 신호(FULL)가 활성화 상태(353)가 되며, 모든 프로그래머블 유닛이 풀 상태에 이르지 않은 경우에는 풀 상태 신호(FULL)가 비활성화 상태(354)가 됨은 이미 설명된 바와 같다.
또한, 상기 도26에서는 생략되어 있으나 유닛 어레이(24)에서는 읽기 동작의 경우에 유닛 어레이(24)에 포함된 모든 프로그래머블 유닛의 저장 데이터가 유닛 출력 신호(OUT<0:127>)와 함께 모든 프로그래머블 유닛의 유닛 풀 상태 신호(Nth CELL_OUT<0:127>)가 동시에 출력됨은 이미 설명한 바 있다.
상기 유닛 출력 신호(OUT<0:127>)와 마찬가지로, 유닛 풀 상태 신호(Nth CELL_OUT<0:127>) 역시 레벨 다운 컨버터 회로(27)에서 레벨 다운되는 과정을 거치고 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>)로 변환되어 쉬프트 레지스터 회로(28)로 입력된다.
따라서, 쉬프트 레지스터 회로(28)에서는 상기 외부 유닛 출력 신호(OUT_L<0:127>)와 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>)를 동시에 입력받고, 풀 상태 테스트 신호(FULL_TEST)에 따라서 선택적으로 상기 외부 유닛 출력 신호(OUT_L<0:127>) 또는 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>)를 직렬 화하여 출력하는 과정을 거치게 된다. 상기 풀 상태 테스트 신호(FULL_TEST)에 따른 쉬프트 레지스터의 동작은 하기 도27a 및 도27b를 통하여 설명된다.
도27a와 도27b는 본 발명의 멀티 타임 프로그래머블 반도체 메모리 장치의 쉬프트 레지스터 회로의 동작 타이밍도이다.
도27a와 도27b를 참조하면, 도26의 상기 유닛 어레이(24)의 읽기 동작의 경 우와 마찬가지로 어드레스 신호(ADD)와 입력 데이터 신호(DIN)는 무시된다.
도27a를 참조하면, 풀 상태 테스트 신호(FULL_TEST)가 비활성화된 상태(361)이다. 따라서, 로드 신호(LOAD; 362)에 의해서 128개의 프로그래머블 유닛의 외부 유닛 출력 신호(OUT_L<0:127>)를 128개의 쉬프트 레지스터에 저장한 다음, 클록 신호(CLK)를 토글링(363)해 가면서 128개의 쉬프트 레지스터에 저장된 데이터를 출력 데이터(DOUT) 패드를 통하여 순차적으로 출력한다(364).
도27b를 참조하면, 풀 상태 테스트 신호(FULL_TEST)가 활성화된 상태(371)이다. 따라서 상기 도27a의 경우와는 달리 로드 신호(LOAD; 372)에 의해서 128개의 프로그래머블 유닛의 외부 유닛 풀 상태 신호(Nth CELL_OUT_L<0:127>)를 128개의 쉬프트 레지스터에 저장한 다음, 클록 신호(CLK)를 토글링(373)해 가면서 128개의 쉬프트 레지스터에 저장된 데이터를 출력 데이터(DOUT) 패드를 통하여 순차적으로 출력한다(374).
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
상기와 같은 본 발명에 따르면, 원 타임 프로그래머블 소자를 이용하면서도 여러 번의 프로그래밍이 가능한 멀티 프로그래머블 반도체 메모리 장치를 구성할 수 있다. 따라서, 상대적으로 낮은 비용과 로직 호환성을 유지하면서도 영구적으로 기록 내용이 보존되어야 하고 수회의 프로그래밍도 가능하여야 하는 응용 영역에 이용될 수 있다.

Claims (24)

  1. 복수개의 원 타임 프로그래머블 셀을 구비한 복수개의 프로그래머블 유닛을 포함한 유닛 어레이;
    어드레스 신호에 응답하여 상기 유닛 어레이에 포함된 프로그래머블 유닛을 특정하는 유닛 선택 신호를 발생시키는 유닛 디코더 회로; 및
    상기 유닛 어레이로부터 입력받은 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 현재 기록된 데이터와, 외부로부터 입력받은 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 기록할 입력 데이터를 논리 조합하여,
    상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 기수 번째 원 타임 프로그래머블 셀들 중 하나를 프로그래밍하기 위한 기수 셀 프로그래밍 신호 또는 상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 우수 번째 원 타임 프로그래머블 셀들 중 하나를 프로그래밍하기 위한 우수 셀 프로그래밍 신호를 상기 유닛 어레이로 출력하는 셀 분배 회로를 포함하여 구성된 멀티 타임 프로그래머블 반도체 메모리 장치.
  2. 제 1 항에 있어서,
    상기 셀 분배 회로는
    상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 현재 기록된 데이터가 '0'이고, 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 기록할 입력 데이터가 '1'인 경우에 상기 기수 셀 프로그래밍 신호를 발생하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  3. 제 2 항에 있어서,
    상기 프로그래머블 유닛은
    상기 기수 셀 프로그래밍 신호를 입력받아, 프로그래밍되지 않은 첫 번째 기수 번째 원 타임 프로그래머블 셀을 프로그래밍하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  4. 제 1 항에 있어서,
    상기 셀 분배 회로는
    상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 현재 기록된 데이터가 '1'이고, 상기 유닛 선택 신호에 의해 특정된 상기 프로그래머블 유닛에 기록할 입력 데이터가 '0'인 경우에 상기 우수 셀 프로그래밍 신호를 발생하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  5. 제 4 항에 있어서,
    상기 프로그래머블 유닛은
    상기 우수 셀 프로그래밍 신호를 입력받아, 프로그래밍되지 않은 첫 번째 우 수 번째 원 타임 프로그래머블 셀을 프로그래밍하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  6. 제 1 항에 있어서,
    상기 셀 분배 회로는
    상기 유닛 선택 신호에 의해 특정된 프로그래머블 유닛에 저장된 데이터를 입력받아 상기 기수 셀 프로그래밍 신호 또는 상기 우수 셀 프로그래밍 신호의 발생이전에 출력하는 유닛 어레이 출력 신호 레지스터; 및
    상기 유닛 출력 신호 레지스터가 출력한 상기 유닛 선택 신호에 의해 특정된 프로그래머블 유닛에 저장된 데이터, 상기 유닛 선택 신호에 의해 특정된 프로그래머블 유닛에 기록할 상기 입력 데이터 및 상기 쓰기 신호를 논리 조합하여 기수 셀 프로그래밍 신호 또는 우수 셀 프로그래밍 신호를 활성화시키는 셀 프로그래밍 신호 발생부를 포함하여 구성된 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  7. 제 1 항에 있어서,
    상기 프로그래머블 유닛은
    복수개의 원 타임 프로그래머블 셀; 및
    상기 원 타임 프로그래머블 셀들의 프로그래밍 상태를 논리 조합하여 상기 프로그래머블 유닛의 데이터로 출력하는 논리 조합 회로를 포함하여 구성된 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  8. 제 7 항에 있어서,
    상기 논리 조합 회로는
    상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들이 모두 프로그래밍되어 있지 않거나, 상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 짝수개의 원 타임 프로그래머블 셀들이 프로그래밍된 경우에 상기 프로그래머블 유닛의 데이터로 '0'을 출력하고,
    상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 홀수개의 원 타임 프로그래머블 셀들이 프로그래밍된 경우에 상기 프로그래머블 유닛의 데이터로 '1'을 출력하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  9. 제 8 항에 있어서,
    상기 논리 조합 회로는 적어도 하나의 배타 논리합 게이트를 포함하여 구성되는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  10. 제 8 항에 있어서,
    상기 논리 조합 회로는 적어도 하나의 반전기를 포함하여 구성되는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  11. 제 7 항에 있어서,
    상기 원 타임 프로그래머블 셀은
    전기 퓨즈 소자를 이용하여 구성된 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  12. 제 7 항에 있어서,
    상기 원 타임 프로그래머블 셀은
    앤티 퓨즈 소자를 이용하여 구성된 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  13. 제 1 항에 있어서,
    상기 프로그래머블 유닛은
    상기 프로그래머블 유닛에 현재 기록된 데이터와 상기 프로그래머블 유닛에 기록할 입력 데이터가 상이하고,
    상기 프로그래머블 유닛에 포함된 모든 원 타임 프로그래머블 셀이 프로그래밍된 경우에는 상기 프로그래머블 유닛의 유닛 에러 상태 신호를 활성화시키는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  14. 제 13 항에 있어서,
    상기 멀티 타임 프로그래머블 반도체 메모리 장치는
    상기 유닛 어레이에 포함된 모든 프로그래머블 유닛들 중 적어도 하나의 유닛 에러 상태 신호가 활성화되면, 에러 상태 신호를 출력하는 에러 상태 검출 회로를 추가로 포함한 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  15. 제 1 항에 있어서,
    상기 프로그래머블 유닛은
    상기 프로그래머블 유닛에 포함된 모든 원 타임 프로그래머블 셀이 프로그래밍된 경우에는 상기 프로그래머블 유닛의 유닛 풀 상태 신호를 활성화시키는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  16. 제 15 항에 있어서,
    상기 프로그래머블 유닛은
    상기 프로그래머블 유닛에 포함된 마지막 원 타임 프로그래머블 셀의 상태를 상기 유닛 풀 상태 신호로 출력하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  17. 제 15 항에 있어서,
    상기 멀티 타임 프로그래머블 반도체 메모리 장치는
    상기 유닛 어레이에 포함된 모든 프로그래머블 유닛들 중 적어도 하나의 유닛 풀 상태 신호가 활성화되면, 풀 상태 신호를 출력하는 풀 상태 검출 회로를 추가로 포함한 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  18. 제 1 항에 있어서,
    상기 멀티 타임 프로그래머블 반도체 메모리 장치는
    외부 어드레스 신호, 외부 쓰기 신호, 외부 어드레스 신호를 입력받아 상기 멀티 타임 프로그래머블 반도체 메모리 장치의 내부 전압 레벨에 상응하는
    상기 어드레스 신호, 상기 쓰기 신호, 상기 어드레스 신호를 발생시키는 레벨 쉬프터 회로를 더 포함한 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치.
  19. 입력 데이터 신호와 어드레스 신호를 수신하는 단계;
    어드레스 신호에 응답하여 입력 데이터를 기록할 프로그래머블 유닛을 선택하는 단계;
    선택된 프로그래머블 유닛에 저장된 데이터를 출력하는 데이터 트랜스퍼 단계;
    상기 선택된 프로그래머블 유닛에 저장된 데이터가 '0'이며, 상기 입력 데이터 신호가 '1'인 경우에는 기수 셀 프로그래밍 신호를 출력하는 단계;
    상기 선택된 프로그래머블 유닛에 저장된 데이터가 '1'이며, 상기 입력 데이 터 신호가 '0'인 경우에는 우수 셀 프로그래밍 신호를 출력하는 단계;
    상기 기수 셀 프로그래밍 신호에 응답하여 상기 선택된 프로그래머블 유닛에 포함된 프로그래밍되지 않은 첫 번째 기수 번째 원 타임 프로그래머블 셀을 프로그래밍하는 단계; 및
    상기 우수 셀 프로그래밍 신호에 응답하여 상기 선택된 프로그래머블 유닛에 포함된 프로그래밍되지 않은 첫 번째 우수 번째 원 타임 프로그래머블 셀을 프로그래밍하는 단계를 포함한 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법.
  20. 제 19 항에 있어서,
    상기 선택된 프로그래머블 유닛에 저장된 데이터를 출력하는 데이터 트랜스퍼 단계는
    상기 프로그래머블 유닛에 포함된 상기 원 타임 프로그래머블 셀들의 프로그래밍 상태를 논리 조합하여 상기 선택된 프로그래머블 유닛에 저장된 데이터로 출력하는 단계를 포함하여 구성된 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법.
  21. 제 20 항에 있어서,
    상기 원 타임 프로그래머블 셀들의 프로그래밍 상태를 논리 조합하여 상기 선택된 프로그래머블 유닛에 저장된 데이터로 출력하는 단계는
    상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들이 모두 프로그래밍되어 있지 않거나, 상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 짝수개의 원 타임 프로그래머블 셀들이 프로그래밍된 경우에 상기 선택된 프로그래머블 유닛에 저장된 데이터로 '0'을 출력하는 단계; 및
    상기 프로그래머블 유닛에 포함된 원 타임 프로그래머블 셀들 중 홀수개의 원 타임 프로그래머블 셀들이 프로그래밍된 경우에 상기 선택된 프로그래머블 유닛에 저장된 데이터로 '1'을 출력하는 단계를 포함하여 구성된 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법.
  22. 제 19 항에 있어서,
    상기 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법은
    상기 선택된 프로그래머블 유닛에 포함된 모든 원 타임 프로그래머블 셀이 프로그래밍된 경우에는 상기 선택된 프로그래머블 유닛에 포함된 모든 원 타임 프로그래머블 셀이 프로그래밍되었음을 지시하는 유닛 풀 상태 신호를 출력하는 단계를 더 포함하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법.
  23. 제 22 항에 있어서,
    상기 유닛 풀 상태 신호를 출력하는 단계는
    상기 선택된 프로그래머블 유닛의 마지막 원 타임 프로그래머블 셀의 프로그래밍 상태를 상기 유닛 풀 상태 신호로 출력하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법.
  24. 제 19 항에 있어서,
    상기 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법은
    상기 선택된 프로그래머블 유닛에 포함된 모든 원 타임 프로그래머블 셀이 프로그래밍되어있고, 상기 선택된 프로그래머블 유닛에 저장된 데이터와 상기 입력 데이터 신호가 상이한 경우에는 상기 선택된 프로그래머블 유닛에 대한 더 이상의 프로그래밍이 불가능함을 지시하는 유닛 에러 상태 신호를 출력하는 단계를 더 포함하는 것을 특징으로 하는 멀티 타임 프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍 방법.
KR1020040110009A 2004-12-22 2004-12-22 멀티 타임 프로그래머블 반도체 메모리 장치 및 멀티 타임프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍방법 KR100572622B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020040110009A KR100572622B1 (ko) 2004-12-22 2004-12-22 멀티 타임 프로그래머블 반도체 메모리 장치 및 멀티 타임프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍방법
US11/316,421 US7227802B2 (en) 2004-12-22 2005-12-21 Multi-time programmable semiconductor memory device and multi-time programming method therefor
CNB2005101216377A CN100568394C (zh) 2004-12-22 2005-12-22 多次可编程半导体存储设备及其多次编程方法
JP2005370636A JP4528257B2 (ja) 2004-12-22 2005-12-22 マルチタイムプログラマブル半導体メモリ装置及びマルチタイムプログラマブル半導体メモリ装置のマルチタイムプログラミング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040110009A KR100572622B1 (ko) 2004-12-22 2004-12-22 멀티 타임 프로그래머블 반도체 메모리 장치 및 멀티 타임프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍방법

Publications (1)

Publication Number Publication Date
KR100572622B1 true KR100572622B1 (ko) 2006-04-24

Family

ID=36653056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040110009A KR100572622B1 (ko) 2004-12-22 2004-12-22 멀티 타임 프로그래머블 반도체 메모리 장치 및 멀티 타임프로그래머블 반도체 메모리 장치의 멀티 타임 프로그래밍방법

Country Status (4)

Country Link
US (1) US7227802B2 (ko)
JP (1) JP4528257B2 (ko)
KR (1) KR100572622B1 (ko)
CN (1) CN100568394C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974115B2 (en) 2006-07-04 2011-07-05 Samsung Electronics Co., Ltd. One-time programmable devices including chalcogenide material and electronic systems including the same

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7567449B2 (en) * 2006-10-27 2009-07-28 Xilinx, Inc. One-time-programmable logic bit with multiple logic elements
US7515498B2 (en) * 2007-02-13 2009-04-07 International Business Machines Corporation Electronic fuse apparatus and methodology including addressable virtual electronic fuses
EP2476036A4 (en) * 2009-09-09 2013-04-10 Marvell World Trade Ltd MEMORY HAVING MULTIPLE POWER SUPPLIES AND / OR MULTIPLE MODES WITH LOW POWER
US8462575B2 (en) 2010-07-14 2013-06-11 Broadcom Corporation Multi-time programmable memory
KR101756811B1 (ko) 2010-08-11 2017-07-11 삼성전자주식회사 비트 시이퀀스 스킴을 수행할 수 있는 메모리 장치
KR101771523B1 (ko) 2010-08-11 2017-08-25 삼성전자주식회사 메모리 장치와 이의 동작 방법
GB2505874B (en) * 2012-09-03 2016-02-03 Cambridge Silicon Radio Ltd Programmable memory with restricted reprogrammability
US8913454B2 (en) 2012-10-10 2014-12-16 Cambridge Silicon Radio Limited Programmable memory with restricted reprogrammability
KR101994350B1 (ko) * 2012-12-28 2019-07-01 삼성디스플레이 주식회사 멀티-타임 프로그래머블 동작의 오류 검출 방법 및 이를 채용한 유기 발광 표시 장치
CN103971750B (zh) * 2013-01-29 2017-02-08 中国航空工业集团公司西安飞机设计研究所 一种ram的9相邻单元敏感故障检测方法
KR102247562B1 (ko) 2014-12-15 2021-05-03 삼성전자 주식회사 멀티 프로그램을 수행하는 오티피 메모리, 및 이를 포함하는 반도체 메모리 장치
KR102466355B1 (ko) 2016-04-05 2022-11-14 삼성전자주식회사 라이트 성능을 개선할 수 있는 otp 메모리 장치
US10176882B1 (en) 2017-06-29 2019-01-08 Cisco Technology, Inc. Secure storage apparatus
CN109360595B (zh) * 2018-08-31 2021-08-24 宁波中车时代传感技术有限公司 一种基于熔丝技术的芯片参数多次编程电路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03241597A (ja) * 1990-02-19 1991-10-28 Japan Electron Control Syst Co Ltd データ書込装置
KR930006931A (ko) * 1991-09-26 1993-04-22 정몽헌 가상접지 형태를 갖는 nand형 마스크롬
JPH0798990A (ja) * 1993-09-29 1995-04-11 Sanyo Electric Co Ltd Romの読出切換回路
JP2000260194A (ja) 1999-03-04 2000-09-22 Micronics Internatl Co Ltd 単一の電流経路を有するマルチレベルマスクrom

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH035997A (ja) * 1989-06-02 1991-01-11 Fujitsu Ltd 半導体記憶装置
JP2654215B2 (ja) * 1990-01-19 1997-09-17 株式会社東芝 半導体メモリシステム
DE4342821C1 (de) 1993-12-15 1994-12-15 Sgs Thomson Microelectronics Elektronische Speicherschaltung
US5412593A (en) * 1994-01-12 1995-05-02 Texas Instruments Incorporated Fuse and antifuse reprogrammable link for integrated circuits
US5966339A (en) * 1998-06-02 1999-10-12 International Business Machines Corporation Programmable/reprogrammable fuse
JP2000267846A (ja) 1999-03-16 2000-09-29 Toshiba Corp 半導体集積回路装置
US6370074B1 (en) * 2000-05-05 2002-04-09 Agere Systems Guardian Corp Redundant encoding for buried metal fuses
US6477103B1 (en) * 2001-09-21 2002-11-05 Silicon Storage Technology, Inc. Reprogrammable fuse and method of operating
KR100481870B1 (ko) * 2002-12-06 2005-04-11 삼성전자주식회사 일회적 프로그래밍이 가능한 롬을 구비하는 반도체 장치및 그 제조방법
US7177182B2 (en) * 2004-03-30 2007-02-13 Impinj, Inc. Rewriteable electronic fuses
US7136322B2 (en) * 2004-08-05 2006-11-14 Analog Devices, Inc. Programmable semi-fusible link read only memory and method of margin testing same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03241597A (ja) * 1990-02-19 1991-10-28 Japan Electron Control Syst Co Ltd データ書込装置
KR930006931A (ko) * 1991-09-26 1993-04-22 정몽헌 가상접지 형태를 갖는 nand형 마스크롬
JPH0798990A (ja) * 1993-09-29 1995-04-11 Sanyo Electric Co Ltd Romの読出切換回路
JP2000260194A (ja) 1999-03-04 2000-09-22 Micronics Internatl Co Ltd 単一の電流経路を有するマルチレベルマスクrom

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974115B2 (en) 2006-07-04 2011-07-05 Samsung Electronics Co., Ltd. One-time programmable devices including chalcogenide material and electronic systems including the same

Also Published As

Publication number Publication date
JP2006179171A (ja) 2006-07-06
JP4528257B2 (ja) 2010-08-18
CN100568394C (zh) 2009-12-09
CN1825488A (zh) 2006-08-30
US7227802B2 (en) 2007-06-05
US20060152959A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
JP4528257B2 (ja) マルチタイムプログラマブル半導体メモリ装置及びマルチタイムプログラマブル半導体メモリ装置のマルチタイムプログラミング方法
JP2777083B2 (ja) 半導体メモリ装置の冗長プログラム方法及び回路
KR0158484B1 (ko) 불휘발성 반도체 메모리의 행리던던씨
US7151694B2 (en) Integrated circuit memory with fast page mode verify
KR102160598B1 (ko) 반도체 메모리 장치 및 이의 동작방법
US8365026B2 (en) Methods for performing fail test, block management, erasing and programming in a nonvolatile memory device
US7200025B2 (en) Semiconductor memory device
US7336537B2 (en) Handling defective memory blocks of NAND memory devices
KR20080027448A (ko) 반도체 기억 장치
JP2001291394A (ja) 半導体記憶装置およびその救済方法
JP5174323B2 (ja) ロードフリー型ワイアードオアの構成を有する不揮発性半導体メモリ装置、およびその駆動方法
JP2006286166A (ja) 面積が減少した半導体メモリ装置のリペア制御回路
US7372751B2 (en) Using redundant memory for extra features
US6888764B2 (en) Semiconductor device including semiconductor memory
US6198659B1 (en) Defective address data storage circuit for nonvolatile semiconductor memory device having redundant function and method of writing defective address data
US20090049348A1 (en) Semiconductor storage device
JP3815716B2 (ja) 不揮発性半導体記憶装置
KR20110001088A (ko) 불휘발성 메모리 소자
US7239548B2 (en) Method and apparatus for applying bias to a storage device
US7085181B2 (en) Semiconductor device having storage circuit which stores data in nonvolatile manner by using fuse element
JP2773786B2 (ja) 書き込み電圧発生回路
KR100284904B1 (ko) 불 휘발성 반도체 메모리 장치 및 그 장치의 무효 메모리 블록데이블 세팅 방법
JP4515781B2 (ja) 半導体メモリ
KR940006075B1 (ko) 반도체집적회로
JP2005149548A (ja) 半導体集積回路

Legal Events

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

Payment date: 20190329

Year of fee payment: 14