상기의 목적을 달성하기 위한 본 발명의 구성은 복수의 행들과 복수의 열들의 매트릭스 형태로 배열되는 복수의 메모리 셀들을 구비한 메모리 셀 어레이와; 상기 열들에 각각 대응하는 복수의 페이지 버퍼들을 포함하는 페이지 버퍼회로;를 포함하는 반도체 메모리장치에 있어서, 상기 각 페이지 버퍼는 페이지를 구성하는 일군의 메모리 셀들 각각에 데이터를 프로그램하는데 사용되는 제 1레지스터 및 동시에 외부로부터 입력되는 데이터를 저장하는데 사용되는 제 2레지스터를 포함하며, 상기 제 1레지스터들을 사용하여 프로그램되는 각 페이지에 대한 프로그램 패스/페일 여부를 점검하는 패스/페일 점검회로와; 상기 패스/페일 점검회로의 점검결과를 이용하여, 연속적으로 프로그램되는 n 개의 페이지 전부가 성공적으로 프로그램되었는지 여부를 점검하고, 점검결과를 저장하는 패스/페일 점검래치회로;를 더 포함하는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 페이지 버퍼는 상기 제 1레지스터와 상기 제 2레지스터를 선택적으로 절연시키기 위한 절연 스위치를 더 포함하며, 상기 제 1 및 제 2 레지스터들은 각각: 상기 데이터를 저장하는 래치와; 상기 레지스터를 프리차지하기 위한 프리차지회로;를 포함한다.
바람직한 실시예에 있어서, 상기 패스/페일 점검래치회로는: 상기 연속적인 n 개의 페이지들 중 k(k=1,2,...n) 번째 페이지에 대한 상기 패스/페일 점검회로의 점검결과를 저장하는 제 1점검래치; 상기 연속적인 상기 n 개의 페이지들 중 k-1 번째 페이지에 대한 상기 패스/페일 점검회로의 점검결과를 저장하는 제 2점검래치; 및 상기 제 1점검래치에 저장되는 상기 n개의 각 페이지에 대한 점검결과를 입력받아 '페일'상태의 페이지의 존재여부를 검출하고, 검출결과를 저장하는 제 3점검래치;를 포함하며, 상기 제 3점검래치는 한번 '페일' 상태의 페이지가 검출되면 상기 n 개의 페이지들 모두에 대한 프로그램 동작이 수행될 때까지 계속 '페일' 상태값을 유지한다.
상기의 목적을 달성하기 위한 본 발명의 다른 구성은 복수의 행들과 복수의 열들의 매트릭스 형태로 배열되는 복수의 메모리 셀들을 구비한 메모리 셀 어레이와; 상기 열들에 각각 대응하는 복수의 페이지 버퍼들을 포함하는 페이지 버퍼회로;를 포함하는 불휘발성 반도체 메모리장치에 있어서, 상기 각 페이지 버퍼는 페이지를 구성하는 일군의 메모리 셀들 각각에 데이터를 프로그램하는데 사용되는 레지스터를 포함하며, 상기 레지스터들을 사용하여 프로그램되는 각 페이지에 대한 프로그램 패스/페일 여부를 점검하는 패스/페일 점검회로와; 상기 패스/페일 점검회로의 점검결과를 이용하여, 연속적으로 프로그램되는 n 개의 페이지 전부가 성공적으로 프로그램되었는지 여부를 점검하고, 점검결과를 저장하는 패스/페일 점검래치회로;를 더 포함하는 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 레지스터는: 상기 데이터를 저장하는 래치와; 상기 래치를 프리차지하기 위한 프리차지회로;를 포함한다.
바람직한 실시예에 있어서, 상기 패스/페일 점검래치회로는: 상기 연속적인 n 개의 페이지들 중 k(k=1,2,...n) 번째 페이지에 대한 상기 패스/페일 점검회로의 점검결과를 저장하는 제 1점검래치; 상기 제 1점검래치에 저장되는 상기 n개의 각 페이지에 대한 점검결과를 입력받아 '페일'상태의 페이지의 존재여부를 검출하고, 검출결과를 저장하는 제 2점검래치;를 포함하며, 상기 제 2점검래치는 한번 '페일' 상태의 페이지가 검출되면 상기 n 개의 페이지들 모두에 대한 프로그램 동작이 수행될 때까지 계속 '페일' 상태값을 유지한다.
이하 첨부한 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 3은 본 발명의 실시예에 따른 불휘발성 메모리장치의 패스/페일 점검회로의 구성을 보여주는 도면이다. 도 4는 도 3의 페이지 버퍼회로 및 패스/페일 점검회로의 구성을 보여주는 도면이다.
도 3을 참조하면, 본 발명의 실시예에 따른 패스/페일 점검회로는 메모리셀 어레이(100)와; 페이지 버퍼회로(200)와; 패스/페일 점검회로(300)와; 패스/페일 점검래치회로(400);를 포함한다.
상기 메모리 셀 어레이(100)는 복수의 행들과 복수의 열들이 매트릭스 형태로 배열되는 복수의 메모리 셀들을 구비하고 상기 메모리 셀들에는 데이터들이 저장된다.
도 4를 참조하면, 상기 페이지 버퍼회로(200)는 다수 개의 페이지 버퍼들로 구성되며, 각 페이지 버퍼는 제어신호(nWDO)를 출력한다.
상기 제어신호(nWDO)는 프로그램 동작시 각 페이지 버퍼에 있는 데이터가 성공적으로 프로그램 되었는지 여부에 대한 판별결과신호이다.
상기 메모리 셀들에 대한 프로그램의 패스 또는 페일 여부에 따라 상기 제어신호(nWDO)는 하이 또는 로우 논리레벨을 갖는다.
상기 패스/페일 점검회로(300)는 상기 페이지 버퍼회로(200)에서 출력되는 제어신호(nWDO)들을 와이어드 오아링(Wired-Oring) 하여 신호(nWDO_OUT)를 출력하는 와이어드 오아 회로(Wired OR Circuit)이다.
상기 패스/페일 점검회로(300)는 NMOS트랜지스터와 인버터 그리고 래치로 구성되며 도 4에 도시된 바와 같이 연결된다.
도 5는 도 4의 페이지 버퍼의 구성을 보여주는 도면이다.
도 5에서 볼 수 있는 바와 같이, 상기 각 페이지 버퍼는 페이지를 구성하는 일군의 메모리 셀들 각각에 데이터를 프로그램하는데 사용되는 제 1레지스터(REG1) 및 동시에 외부로부터 입력되는 데이터를 저장하는데 사용되는 제 2레지스터(REG2)를 포함하여 구성된다.
도 5를 참조하면, 페이지 버퍼는 비트라인(BL)에 연결되어 있다. 전원전압(VCC)과 감지노드(ND0) 사이에는 PMOS 트랜지스터(M1)가 연결되며, 트랜지스터 (M1)는 제어 신호 (PLOAD)에 의해서 제어된다. 페이지 버퍼는 제 1 래치(LAT10)와 제 2 래치(LAT20)를 포함한다. 제 1 래치 (LAT10)는 래치를 형성하는 인버터들 (INV11,INV12)로 구성되며, 제 1 및 제 2 래치 노드들 (ND1,NDB1)을 갖는다. 제 2 래치(LAT20)는 래치를 형성하는 인버터들 (INV21,INV22)로 구성되며, 제 1 및 제 2 래치 노드들 (ND2,NDB2)을 갖는다. 전원 전압 (VCC)과 제 1 래치(LAT10)의 제 2 래치 노드(NDB1) 사이에는 PMOS 트랜지스터(M2)가 연결되며, 트랜지스터(M2)는 제어신호(PBRST)에 의해서 제어된다. 제 2 래치노드 (NDB1)와 접지전압(VSS) 사이에는 NMOS 트랜지스터들 (M3, M4)이 직렬 연결되며, NMOS 트랜지스터들 (M3, M4)은 감지 노드 (ND0)의 전압 레벨과 제어 신호 (PBLCH)에 의해서 각각 제어된다. PMOS 트랜지스터(M5)는 전원 전압 (VCC)과 nWDO 단자 사이에 연결되며, 제 1 래치노드(ND1)의 로직 상태에 따라 턴 온/오프된다. nWDO 단자는 와이어드 오아회로(도 4참조)에 전기적으로 연결된다. nWDO 단자의 로직 레벨은 제 1 래치노드(ND1)와 상보적이다. 예를 들면, 제 1 래치노드(ND1)가 로우 레벨을 가지면, nWDO 노드는 하이 레벨을 갖도록 전원 전압 (VCC)에 전기적으로 연결된다. 제 1 래치노드(ND1)가 하이레벨을 가지면, nWDO 노드는 플로팅 상태를 갖도록 전원 전압 (VCC)과 전기적으로 분리된다.
계속해서 도 5를 참조하면, NMOS 트랜지스터(M6)는 제어 신호 (BLSLT)에 의해서 턴 온/오프되며, 감지노드(ND0)와 제 1 래치(LAT10)의 제 1 래치노드(ND1) 사이에 연결되어 있다.
내부노드(ND3)와 제 1 래치노드(ND1) 사이에는 NMOS 트랜지스터 (M13)가 연결되며, 트랜지스터(M13)는 제어신호(PBDO)에 의해서 턴 온/오프된다.
PMOS 트랜지스터(M7)는 전원전압(VCC)과 제 2 래치(LAT20)의 제 1 래치노드(ND2) 사이에 연결되며, 제어 신호 (PBRST)에 의해서 턴 온/오프된다. NMOS 트랜지스터(M8)는 제 1 래치노드(ND2)와 감지노드(ND0) 사이에 연결되고, 제어 신호 (nDUMP)에 의해서 제어된다. 제 1 래치노드(ND2)와 접지전압(VSS) 사이에는 NMOS 트랜지스터들(M9, M10)이 직렬 연결된다. NMOS 트랜지스터(M9)는 감지노드(ND0)의 로직상태에 따라 제어되고, NMOS 트랜지스터(M10)는 제어 신호 (PBLCH)에 의해서 제어된다.
제 2 래치(LAT20)의 제 2 래치노드(NDB2)와 내부노드(ND3) 사이에는 NMOS 트랜지스터(M11)가 연결되고, 제 2 래치(LAT20)의 제 1 래치노드(ND2)와 내부노드(ND3) 사이에는 NMOS 트랜지스터(M12)가 연결되어 있다. NMOS 트랜지스터들(M11, M12)은 상보적인 레벨을 갖는 데이터 신호들 (DIN, nDIN)에 의해서 각각 제어된다.
페이지 버퍼에 로드되는 프로그램 데이터 비트가 '1'인 경우, 예를 들면, 데이터 신호(DIN)는 로직 하이 레벨을 갖고 데이터 신호(nDIN)는 로직 로우 레벨을 갖는다. 내부 노드(ND3)는 Y-게이팅회로를 통해 데이터 라인에 연결된다.
앞서 설명한 바와 같이, 각 페이지 버퍼의 출력단자(nWDO)는 제 1 래치(LAT10)의 제 1 래치 노드(ND1)의 로직 상태에 의해서 결정된다. 예를 들면, 제 1 래치 노드(ND1)가 '1'의 하이 레벨일 때, PMOS 트랜지스터(M5)는 턴 오프된다. 제 1 래치 노드(ND1)가 '0'의 로우 레벨일 때, PMOS 트랜지스터 (M5)는 턴 온된다. 여기서, 제 1 래치 노드(ND1)가 '1'의 하이 레벨이라는 것은 대응하는 메모리 셀이 성공적으로 프로그램/소거되었음을 나타낸다. 제 1 래치 노드(ND1)가 '0'의 로우 레벨이라는 것은 대응하는 메모리 셀이 충분히 프로그램/소거되지 않았음을 나타낸다.
도 6은 상기 패스/페일 점검래치회로의 구성을 보여주는 도면이다.
도 6을 참조하면, 상기 패스/페일 점검래치회로(400)는 제 1 점검래치(410)와; 제 2 점검래치(420); 및 제 3점검래치(430);를 포함한다.
상기 제 1점검래치(410)는 현재 프로그램되는 페이지 즉, 상기 각 페이지버퍼의 제 1레지스터(REG1)에 저장되어 있는 페이지에 대해 와이어드 오아 방식으로 패스/페일 점검한 결과를 전달받아 저장하는 회로이다.
상기 제 2점검래치(420)는 제어신호(nDUMP)에 의해 상기 각 페이지 버퍼의 제 2레지스터(REG2)에서 상기 제 1레지스터(REG1)로 데이터가 덤프(DUMP)될 때 상기 제 1 점검래치(410)로부터 패스/페일 점검결과를 전달받아 저장하는 회로이다.
도 6을 참조하면, 상기 제 1 점검래치(410)는 상기 패스/페일 점검회로의 출력신호(nWDO_OUT)를 입력으로 하는 인버터(IN4)와, 상기 인버터(IN4)의 출력신호 및 제어신호(nPFCHK)를 두 입력으로 하는 노아 게이트(G1)와, 상기 패스/페일 점검회로의 출력신호(nWDO_OUT) 및 상기 제어신호(nPFCHK)를 두 입력으로 하는 노아 게이트(G4)와, 상기 노아 게이트(G4)의 출력신호와 리셋신호(RESET)를 두 입력으로 하는 노아 게이트(G5)와, 상기 노아 게이트(G5)의 출력을 입력으로 하는 인버터(IN5)와, 상기 노아 게이트(G1)의 출력과 상기 인버터(IN5)의 출력을 두 입력으로 하는 래치회로(LAT2)로 구성된다.
상기 래치회로(LAT2)는 두 개의 노아 게이트(G2, G3)들로 구성된다.
상기 제 2 점검래치(420)는 상기 제 1 점검래치(410)의 출력신호를 입력으로 하는 인버터(IN7)와, 상기 인버터(IN7)의 출력신호와 제어신호(nDUMP)를 두 입력으로 하는 노아 게이트(G9)와, 상기 제 1 점검래치(410)의 출력신호와 상기 제어신호(nDUMP)를 두 입력으로 하는 오아 게이트(G11)와, 리셋신호(RESET)를 입력으로 하는 인버터(IN8)와, 상기 오아 게이트(G11)의 출력신호와 상기 인버터(IN8)의 출력신호를 두 입력으로 하는 낸드 게이트(G10)와, 상기 노아 게이트(G9)의 출력신호와 상기 낸드 게이트(G10)의 출력신호를 두 입력으로 하는 래치회로(LAT4)로 구성된다.
상기 래치회로(LAT4)는 두 개의 노아 게이트들(G12, G13)로 구성된다.
다시, 도 6을 참조하면, 상기 제 3 점검래치(430)는 상기 제 1 점검래치의 출력신호를 입력으로 하는 인버터(IN6)와, 상기 인버터(IN6)의 출력신호와 제어신호(nPGMEND)를 두 입력으로 하는 노아 게이트(G6)와, 상기 노아 게이트(G6)의 출력과 상기 리셋신호(RESET)를 두 입력으로 하는 래치회로(LAT3)로 구성된다.
상기 래치회로(LAT3)는 두 개의 노아 게이트(G7, G8)들로 구성된다.
도 6을 참조하면, 제어신호(nDUMP)가 인가되면, 제 1 점검래치(410)에 저장되어 있던 첫 번째 선택된 페이지의 패스/페일 점검결과 값, 즉 상태값(STATUS0)이 그대로 제 2 점검래치(420)에 옮겨지게 된다. 그리고 제 1 점검래치(410)는 두 번째로 선택된 페이지에 대한 패스/페일 점검결과를 저장한다.
따라서, 제 1 점검래치(410)에 저장되는 상태값(STATUS0)는 현재 프로그램 진행중인 페이지의 프로그램 패스/페일 점검 결과값을 나타낸다. 제 2 점검래치(420)에 저장되는 상태값(STATUS1)은 그 바로 직전에 프로그램된 페이지의 프로그램 패스/페일 점검 결과값을 나타낸다.
도 7은 세 개의 페이지가 연속적으로 프로그램 되는 것을 설명하기 위한 타이밍도이다. 도 7에서는 각각의 페이지의 프로그램시 한 번의 프로그램 루프에서 프로그램하고 프로그램 상태를 확인한 후 정상적인 프로그램이 되지 않았을 때 최대 5번까지 연속적인 프로그램 루프를 실행하도록 구현된 경우를 예로 들어 보여주고 있다.
도 7을 참조하면, 리셋(RESET)신호가 인가된 후 첫 번째 페이지의 프로그램이 시작된다. 도면에서, 제 1페이지구간(P1)은 페이지 버퍼회로(200)에서 첫 번째로 선택된 페이지인 제 1페이지에 대한 프로그램 루프(program loop)가 실행되는 구간이다.
각 페이지버퍼에서의 확인 읽기(Verify Read)의 결과를 와이어드 오아링한 신호인 신호(nWDO_OUT)는 프로그램이 성공적으로 되었는지 여부에 따라서 논리레벨이 천이하거나 또는 그 값을 유지한다.
신호(nWDO_OUT)는 확인읽기의 결과 프로그램이 성공적으로 이루어진 경우에는 이전의 상태를 그대로 유지하지만 확인읽기 결과 프로그램이 성공적으로 이루어지지 않은 경우, 예컨대 충분히 프로그램되지 않은 경우에는 하이펄스 형태로 천이된다. 즉 페이지 데이터의 프로그램 결과가 '패스'인 경우에는 로우 상태의 논리레벨을 그대로 유지하고, '페일'인 경우에는 하이펄스로 천이된다.
선택된 페이지의 각 프로그램 루프가 끝날 때마다 패스/페일 점검신호(nPFCHK)가 로우펄스 형태로 천이되어 상기 패스/페일 점검 결과신호인 신호(nWDO_OUT)를 계속 상기 제 1점검래치(410)에 저장한다.
다시, 도 7을 참조하면, 제 1페이지구간(P1)의 첫 번째 프로그램 루프(L1)가 실행된 후 패스/페일 점검신호(nPFCHK)가 로우펄스 형태로 천이된다. 이때 확인읽기의 결과신호(nWDO_OUT) 역시 하이펄스 형태로 천이된 값을 갖는다. 이는 제 1 페이지에 대한 프로그램 결과가 '페일'임을 나타낸다.
상태값(STATUS0)은 현재 프로그램되는 페이지의 패스/페일 상태값을 저장하고 있는 레지스터의 논리값이다.
상기 도 7에서 볼 수 있는 바와 같이 상태값(STATUS0)은 상기 리셋신호, 패스/페일 점검신호(nPFCHK), 신호(nWDO_OUT)를 입력으로 하는 제 1 패스/페일 점검래치회로의 출력신호이다.
상태값(STATUS0)은 패스/페일 점검신호(nPFCHK)가 로우펄스 형태로 천이될 때의 신호(nWDO_OUT)의 값이 '논리하이'이면 프로그램이 페일되었다는 것을 의미하는 '1'의 값을 갖게 된다.
그리고 패스/페일 점검신호(nPFCHK)가 로우펄스 형태로 천이될 때의 신호(nWDO_OUT)의 값이 '논리로우'이면 프로그램이 성공적으로 되었다는 것을 의미하는 '0'의 값을 갖는다.
상기 제 1페이지구간(P1)에서는 첫 번째 프로그램 루프(L11)가 실행된 후에 프로그램이 성공적으로 되지 않아 상태값(STATUS0)이 '1'의 값을 갖게 되었다. 그리고 두 번째 프로그램 루프(L12)가 실행된 후에도 신호(nWDO_OUT)의 값이 하이펄스 형태로 천이되어 '논리하이'이므로 프로그램이 '페일' 상태임을 알 수 있고, 따라서 상태값(STATUS0)은 계속 '1'의 값을 유지한다.
제 1페이지구간(P1)의 세 번째 프로그램 루프(L13)가 실행된 후에는 패스/페일 점검신호(nPFCHK)가 인가되었을 때 신호(nWDO_OUT)의 값이 프로그램이 성공적으로 이루어졌다는 것을 의미하는 '논리로우' 상태를 유지하고 있으므로 상태값(STATUS0)은 프로그램이 성공적으로 되었다는 것을 의미하는 '0'의 값을 갖는다.
제 1페이지구간(P1)에서 세 번의 프로그램 루프(L13)가 실행되어 첫 번째 페이지에 대한 프로그램이 성공적으로 이루어지면 소정의 회복기간이 경과한 후 프로그램종료신호(nPGMEND)가 로우펄스로 천이되어 첫 번째 페이지에 대한 프로그램이 종료된다.
상기 프로그램종료신호(nPGMEND)가 로우펄스로 천이되면 상기 제 3점검래치는 상기 제 1점검래치에 저장되어 있는 첫 번째로 선택된 페이지인 제 1페이지의 패스/페일 결과인 상태값(STATUS0)을 점검하여 페일을 나타내는 '1'의 값을 갖는지 여부를 점검한다.
두 번째 페이지인 제 2페이지의 프로그램이 시작되고 제어신호(nDUMP)가 로우펄스로 천이되면 상기 제 1점검래치에 저장되어 있던 제 1페이지의 패스/페일 결과값 '0'이 그대로 상기 제 2점검래치로 옮겨진다. 그리고, 상기 제 1점검래치는 다시 제 2페이지구간(P2)에서 프로그램되는 제 2페이지의 패스/페일 결과값을 저장한다.
다시, 도 7을 참조하면, 첫 번째 페이지의 프로그램이 종료된 후 두 번째 페이지의 프로그램이 시작된다. 도면에서, 제 2페이지구간(P2)은 페이지 버퍼회로에서 두 번째로 선택된 페이지인 제 2페이지에 대한 프로그램 루프(program loop)가 실행되는 구간이다.
제 2페이지구간(P2)에서도 역시 각 프로그램 루프가 실행되고 프로그램이 성공적으로 이루어졌는지를 확인하기 위한 확인 읽기(Verify Read) 동작이 반복적으로 수행된다. 상기 확인읽기 동작의 결과 프로그램이 성공적으로 이루어지지 않은 경우에는 상기 신호(nWDO_OUT)는 하이펄스 형태로 상태가 천이되고 프로그램이 성공적으로 이루어진 경우에는 상태의 천이가 일어나지 않고 계속 논리로우 상태를 유지한다.
제 1페이지구간(P1)에서와 마찬가지로 프로그램이 성공적으로 이루어졌는 여부를 확인하기 위해 프로그램 루프가 끝날 때마다 패스/페일 점검신호(nPFCHK)가 로우펄스 형태로 천이된다.
역시 제 1페이지구간(P1)에서와 마찬가지로 상기 패스/페일 점검신호(nPFCHK)와 상기 신호(nWDO_OUT)는 상기 제 1 패스/페일 점검회로의 입력이 된다.
역시 제 1페이지구간(P1)에서와 마찬가지로 상기 패스/페일 점검신호(nPFCHK)가 로우펄스 형태로 천이되고 상기 신호(nWDO_OUT)가 하이펄스 형태로 천이되면 상기 제 1 패스/페일 점검회로의 출력인 상태값(STATUS0)은 '1'의 값을 갖게 되어 프로그램이 성공적으로 이루어지지 않았음을 나타낸다.
제 2페이지구간(P2)에서는 다섯 번의 프로그램 루프들(L21,L22,L23,L24,L25)이 실행된 후에도 여전히 신호(nWDO_OUT)가 하이펄스로 천이되며 상태값(STATUS0) 역시 계속 '1'의 값을 유지하게 된다. 따라서, 두 번째 페이지에 대한 프로그램은 성공적으로 프로그램 되지 못하고 다음 세 번째 페이지의 프로그램이 진행된다.
제 2페이지구간(P2)에서 프로그램 루프의 최대 한계값인 5회의 프로그램 루프가 실행된 후에도 프로그램이 성공적으로 이루어지지 않으면 소정의 시각이 경과한 후 프로그램 종료신호(nPGMEND)가 로우펄스 형태로 천이되어 두 번째 페이지에 대한 프로그램이 종료된다.
상태값(STATUS_CUM)의 변화는 상기 프로그램종료신호(nPGMEND)가 인가되는 시점에서 일어난다.
상기 도 7에서 볼 수 있는 바와 같이, 상태값(STATUS_CUM)은 상기 리셋신호, 상태값(STATUS0), 신호(nPGMEND)를 입력으로 하는 제 2 점검래치의 출력신호이다.
프로그램 종료신호(nPGMEND)가 로우펄스 형태로 천이되면 상태값(STATUS0)에 따라 상태값(STATUS_CUM)은 '1' 또는 '0'의 값을 저장하게 된다.
도 7에서는, 프로그램 종료신호(nPGMEND)에 의해 제 2 페이지구간(P2)에서의 프로그램이 종료될 때, 상태값(STATUS0)은 '1'의 값을 유지한다. 그리고, 상태값(STATUS_CUM)은 프로그램 종료신호(nPGMEND)가 로우펄스 형태로 천이될 때 그 값이 '0'에서 '1'로 변한다.
특히, 상태값(STATUS_CUM)은 이후 상태값(STATUS0)의 값이 변화하더라도 계속 '1'의 값을 유지하며 그 값이 변하지 않는다. 즉, 상태값(STATUS_CUM)은 리셋신호가 인가된 후 다음 리셋신호가 인가될 때까지 연속적으로 프로그램되는 모든 페이지들 중 어느 하나의 페이지가 성공적으로 프로그램되지 않으면 상기 성공적으로 프로그램되지 않은 페이지에 대한 프로그램 종료신호(nPGMEND)가 로우펄스로 천이된 때부터 상기 다음 리셋신호가 인가될 때까지는 계속 프로그램이 성공적으로 이루어지지 않았음을 나타내는 '1'의 값을 저장하고 있게 된다.
다시 도 7을 참조하면, 두 번째 페이지에 대한 프로그램이 페일상태로 종료된 후 제 3페이지구간(P3)에서 세 번째 페이지에 대한 프로그램이 시작된다.
세 번째 페이지인 제 3페이지의 프로그램이 시작되고 제어신호(nDUMP)가 로우펄스로 천이되면 상기 제 1점검래치에 저장되어 있던 제 1페이지의 패스/페일 결과값 '1'의 값이 그대로 상기 제 2점검래치로 옮겨진다. 그리고, 상기 제 1점검래치는 다시 제 2페이지구간(P3)에서 프로그램되는 제 2페이지의 패스/페일 결과값을 저장한다.
도면에서 볼 수 있는 바와 같이, 제 3 페이지구간(P3)의 첫 번째 프로그램 루프(L31)가 실행된 후 패스/페일 점검신호(nPFCHK)가 로우펄스 형태로 천이된다. 이와 함께 확인읽기의 결과신호(nWDO_OUT) 역시 하이펄스 형태로 천이된다. 이는 제 3 페이지에 대한 프로그램이 성공적으로 이루어지지 않았음을 보여준다.
두 번째 프로그램 루프(L32)와 세 번째 프로그램 루프(L33)가 실행된 후에도 신호(nWDO_OUT)의 값이 하이펄스 형태로 천이되어 '논리하이'이므로 프로그램이 페일상태임을 알 수 있고, 따라서 상태값(STATUS0)은 계속 '1'의 값을 유지한다.
제 3 페이지구간(P3)의 네 번째 프로그램 루프(L34)가 실행된 후에는 패스/페일 점검신호(nPFCHK)가 인가되었을 때 신호(nWDO_OUT)의 값이 프로그램이 성공적으로 이루어졌다는 것을 의미하는 '논리로우' 상태를 유지하고 있으므로 상태값(STATUS0)은 프로그램이 성공적으로 되었다는 것을 의미하는 '0'의 값을 갖게 된다.
제 3 페이지구간(P3)에서 네 번의 프로그램 루프(L34)가 실행되어 제 3 페이지에 대한 프로그램이 성공적으로 이루어지면 소정의 회복기간이 경과한 후 프로그램종료신호(nPGMEND)가 인가되어 첫 번째 페이지에 대한 프로그램이 종료된다.
상기에서 살펴본 바와 같이 상태값(STATUS_CUM)은 한번 '1'의 값을 저장한 후로는 상기 상태값(STATUS0)의 값이 변화하더라도 그 값이 변화하지 않으며, 연속적인 페이지들에 대한 프로그램이 모두 끝난 후 하이펄스의 리셋신호(RESET)신호가 다시 인가되어야 그 값이 변한다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
특히, 본 발명의 실시예에서는 듀얼 레지스터를 갖는 페이지 버퍼가 구비된 반도체 메모리장치를 예로 들어 설명하였으나, 단일 레지스터를 갖는 페이지 버퍼를 갖는 반도체 메모리 장치에도 본 발명의 적용이 가능하다. 단일 레지스터를 갖는 페이지 버퍼를 갖는 반도체 메모리장치에 본 발명을 적용할 경우 상기 도 6에서의 패스/페일 점검래치회로는 상기 제 1래치회로 및 상기 제 2래치회로만으로 구성되며, 상기 제 3래치회로는 불필요하다.