본 발명에 따른 낸드 플래시 메모리 장치는, 복수의 플레인으로 구분되는 셀 어레이; 복수의 패러티 플레인으로 구분되며, 각각의 패러티 플레인은 각각의 플레인에 대한 패러티를 저장하는 패러티 셀 어레이; 및 카피 백 프로그램 동작 동안에 외부에서 리로드된 데이터(reloaded data)에 대한 새로운 패러티를 발생하고, 상기 리로드된 데이터가 저장될 플레인과 대응하는 패러티 플레인에 상기 새로운 패러티를 저장하는 패러티 발생 및 패러티 칼럼 선택회로를 포함한다. 상기 패러티 발생 및 패러티 칼럼 선택회로는 칼럼 어드레스에 응답하여 상기 새로운 패러티를 프로그램할 패러티 플레인을 검출한다. 그리고 상기 패러티 발생 및 패러티 칼럼 선택회로는 복수의 패러티 발생기를 포함하며, 칼럼 어드레스에 응답하여 상기 새로운 패러티를 발생할 패러티 발생기를 선택한다.
본 발명에 따른 낸드 플래시 메모리 장치의 다른 일면은, 복수의 플레인으로 구분되는 셀 어레이; 복수의 패러티 플레인으로 구분되며, 각각의 패러티 플레인은 각각의 플레인에 대한 패러티를 저장하는 패러티 셀 어레이; 상기 각각의 플레인에 저장될 데이터를 입력받고, 상기 각각의 패러티 플레인에 저장될 패러티를 발생하는 패러티 발생회로; 및 상기 패러티 발생회로로부터 패러티를 입력받고, 칼럼 어드레스에 따라 상기 입력된 패러티를 상기 패러티 셀 어레이에 제공하는 패러티 칼럼 선택 회로를 포함하되, 카피 백 프로그램 동작 동안에, 상기 패러티 발생회로는 리로드된 데이터(reloaded data)에 대한 새로운 패러티를 발생하고, 상기 패러티 칼럼 선택 회로는 상기 칼럼 어드레스에 의해 선택된 패러티 플레인에 상기 새로운 패러티를 제공한다.
실시예로서, 상기 패러티 발생 회로는, 상기 각각의 패러티 플레인에 프로그램될 각각의 패러티를 발생할 복수의 패러티 발생기; 및 카피 백 프로그램 동작 동안에, 상기 칼럼 어드레스에 응답하여 상기 복수의 패러티 발생기 중에서 상기 새로운 패러티를 발생할 패러티 발생기를 선택하는 선택회로를 포함한다.
실시예로서, 상기 패러티 칼럼 선택회로는 상기 칼럼 어드레스에 응답하여 상기 새로운 패러티를 프로그램할 패러티 플레인을 검출한다. 상기 패러티 칼럼 선택회로는, 상기 칼럼 어드레스에 응답하여 상기 새로운 패러티를 프로그램할 패러티 플레인을 검출하여 플래그 신호를 발생하는 패러티 플레인 검출기; 및 상기 플래그 신호에 응답하여 상기 새로운 패러티를 상기 선택된 패러티 플레인에 전달하는 로드 드라이버를 포함한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
본 발명에 따른 낸드 플래시 메모리 장치는 카피 백 프로그램(copy back program) 동작 시에 에러 검출 코드(Error Detection Code; EDC)를 발생하여 에러 검출 동작(error detection operation)을 수행할 수 있다. 또한, 본 발명에 따른 낸드 플래시 메모리 장치는 카피 백 프로그램 동작 중에 데이터 리로딩 동작(data reloading operation)을 수행할 수 있다. 에러 검출 동작은 도 1을 참조하여 설명 되고, 데이터 리로딩 동작은 도 2를 참조하여 설명된다.
도 1은 본 발명에 따른 낸드 플래시 메모리 장치의 에러 검출 동작을 설명하기 위한 블록도이다. 도 1을 참조하면, 낸드 플래시 메모리 장치는 셀 어레이(110), 페이지 버퍼(120), 칼럼 선택 및 패러티 발생 회로(130), 패러티 셀 어레이(210), 패러티 페이지 버퍼(220), 패러티 발생 및 패러티 칼럼 선택 회로(230), 그리고 비교기(300)를 포함한다.
셀 어레이(110) 및 패러티 셀 어레이(210)는 페이지 단위로 프로그램 및 읽기 동작을 수행한다. 셀 어레이(110)는 데이터를 저장하고, 패러티 셀 어레이(210)는 에러 검출 코드(Error Detection Code; EDC)를 저장한다. 에러 검출 코드는 패러티(parity)라고도 불린다. 패러티 셀 어레이(210)의 어느 페이지(예를 들면, 111)에 저장된 패러티는 동일 페이지(111)의 셀 어레이(110)에 있는 데이터에 대한 에러 검출 코드이다.
페이지 버퍼(120)는 셀 어레이(110)에 프로그램될 데이터 또는 셀 어레이(110)로부터 읽은 데이터를 임시로 저장한다. 패러티 페이지 버퍼(220)는 패러티 셀 어레이(210)에 프로그램될 패러티 또는 패러티 셀 어레이(210)로부터 읽은 패러티를 임시로 저장한다.
칼럼 선택 및 패러티 발생 회로(130)는 데이터 입력 버퍼(도시되지 않음)로부터 데이터를 입력받고, 칼럼 어드레스(CA)에 따라 입력된 데이터를 페이지 버퍼(120)에 제공한다. 한편, 칼럼 선택 및 패러티 발생 회로(130)는 페이지 버퍼(120)로부터 데이터를 입력받아 패러티(Py)를 발생하고, 발생한 패러티(Py)를 비교기 (300)에 제공한다.
패러티 발생 및 패러티 칼럼 선택 회로(230)는 데이터 입력 버퍼(도시되지 않음)로부터 데이터를 입력받아 패러티(Px)를 발생하고, 칼럼 어드레스(Column Address; CA)에 따라 발생된 패러티(Px)를 패러티 페이지 버퍼(220)에 제공한다. 한편, 패러티 발생 및 패러티 칼럼 선택 회로(230)는 패러티 페이지 버퍼(220)로부터 패러티(Px)를 입력받고, 입력된 패러티(Px)를 비교기(300)에 제공한다.
비교기(300)는 2개의 패러티(Px, Py)를 비교하여 에러를 검출한다. 비교기는 두 패러티(Px, Py)가 일치하면 패스신호(Pass)를 발생하고, 다르면 폐일신호(Fail)를 발생한다. 카피 백 프로그램 동작 시에 셀 어레이(110)의 소스 페이지(11)에 저장된 데이터를 읽는 과정에서 에러가 발생하면, 비교기(300)는 폐일신호(Fail)를 발생한다.
이하에서는, 카피 백 프로그램 동작을 수행하는 낸드 플래시 메모리 장치의 에러 검출 동작이 도 1의 데이터 흐름을 참조하여 설명된다.
먼저, 데이터 흐름(①)에서는 데이터 입력 버퍼(도시되지 않음)를 통해 입력된 데이터가 소스 페이지에 프로그램된다. 칼럼 선택 및 패러티 발생 회로(130)는 데이터를 입력받고, 칼럼 어드레스(CA)에 따라 입력된 데이터를 페이지 버퍼(120)에 전달한다. 여기에서, 입력된 데이터가 페이지 버퍼(120)에 전달되는 동작을 데이터 로딩 동작(data loading operation)이라 한다. 즉, 입력된 데이터는 데이터 로딩 동작에 의해 페이지 버퍼(120)에 전달된다. 한편, 패러티 발생 및 패러티 칼럼 선택 회로(230)는 데이터를 입력받아 패러티(Px)를 발생하고, 칼럼 어드레스 (CA)에 따라 발생된 패러티(Px)를 패러티 페이지 버퍼(220)에 전달한다. 페이지 버퍼(120)에 로드된 데이터(loaded data) 및 패러티 페이지 버퍼(220)에 로드된 패러티(loaded parity)는 프로그램 동작에 의해 소스 페이지(11)에 동시에 프로그램된다.
데이터 흐름(②)에서는 셀 어레이(110) 및 패러티 셀 어레이(210)의 소스 페이지(11)에 저장되어 있는 데이터 및 패러티가 페이지 버퍼(120) 및 패러티 페이지 버퍼(220)로 읽혀진다. 소스 페이지(11)의 데이터를 읽는 과정에서 1_비트 에러가 발생할 수 있다. 에러 검출 동작은 소스 페이지(11)의 데이터를 읽는 과정에서 발생된 1_비트 에러를 검출하는 동작이다.
데이터 흐름(③)에서는 칼럼 선택 및 패러티 발생 회로(130)에서 발생된 패러티(Py)와 패러티 발생 및 패러티 칼럼 선택 회로(230)에서 입력된 패러티(Px)를 비교하여 소스 페이지(11)의 데이터를 읽는 과정에서 발생된 1_비트 에러를 검출한다. 칼럼 선택 및 패러티 발생 회로(130)는 페이지 버퍼(120)에 저장된 데이터를 입력받아 패러티(Py)를 발생하고, 발생된 패러티(Py)를 비교기(300)에 제공한다. 패러티 발생 및 패러티 칼럼 선택 회로(230)는 패러티 페이지 버퍼(220)에 저장된 패러티(Px)를 비교기(300)에 제공한다. 비교기(300)는 두 패러티(Px, Py)가 일치하면 패스신호(Pass)를 발생하고, 일치하지 않으면 폐일신호(Fail)를 발생한다. 여기에서, 두 패러티(Px, Py)가 일치한다는 것은 소스 페이지(11)의 데이터를 읽는 과정에서 1_비트 에러가 발생하지 않은 것을 의미하고, 두 패러티(Px, Py)가 일치하지 않은 것은 1_비트 에러가 발생한 것을 의미한다.
데이터 흐름(④)(도시되지 않음, 도 2 참조)에서는 데이터 리로딩 동작(data reloading operation)이 수행된다. 데이터 리로딩 동작은 후술하는 도 2를 참조하여 상세히 설명된다.
데이터 흐름(⑤)에서는 페이지 버퍼(120) 및 패러티 페이지 버퍼(220)에 저장된 데이터 및 패러티를 타겟 페이지(12)에 프로그램한다. 데이터 흐름(③)에서 두 패러티(Px, Py)가 일치하면, 페이지 버퍼(120) 및 패러티 페이지 버퍼(220)에 저장된 데이터 및 패러티는 타겟 페이지(12)에 프로그램된다.
이상에서 살펴 본 바와 같이, 에러 검출 동작은 카피 백 프로그램 동작을 수행하는 도중에 소스 페이지의 데이터를 읽는 과정에서 발생한 1_비트 에러를 검출하는 동작이다. 카피 백 프로그램 동작 중에 1_비트 에러가 발생한 경우에는 카피 백 프로그램을 종료하거나 에러 정정 등의 동작을 수행한다.
도 2 내지 도 4는 본 발명에 따른 낸드 플래시 메모리 장치의 데이터 리로딩 동작을 설명하기 위한 블록도이다. 여기에서, 데이터 리로딩 동작(data reloading operation)이란 카피 백 프로그램 동작 중에 소스 페이지(11)의 일부 데이터를 새로운 데이터로 교체하기 위한 동작이다. 즉, 데이터 로딩 동작은 소스 페이지(11)의 데이터를 페이지 버퍼(120)로 읽어낸 다음에(②), 페이지 버퍼(120)에 새로운 데이터를 리로딩(reloading)하는 동작이다. 이때, 리로드된 데이터(reloaded data)에 대한 새로운 패러티가 패러티 페이지 버퍼(220)에 저장되어야 한다.
도 2는 데이터 리로딩 동작을 수행하는 낸드 플래시 메모리 장치를 보여주는 블록도이다. 도 2에서, 복수의 플레인(111~114) 및 복수의 패러티 플레인(211~214) 은 도 1의 셀 어레이(110) 및 패러티 셀 어레이(210)이다. 즉, 셀 어레이(110)는 복수의 플레인으로 구분되고, 패러티 셀 어레이(210)는 복수의 패러티 플레인(211~214)으로 구분된다. 각각의 패러티 플레인(211~214)은 각각의 플레인(111~114)에 저장되는 데이터에 대한 각각의 패러티를 저장한다. 예를 들면, 제 1 패러티 플레인(211)은 제 1 플레인(111)에 저장되는 데이터에 대한 패러티를 저장한다. 도 1의 데이터 흐름(①)을 참조하면, 각각의 패러티 플레인(211~214)에는 각각의 플레인(111~114)에 대한 패러티가 저장된다. 즉, 패러티 셀 어레이(210)에는 4_비트의 패러티가 저장된다.
소스 페이지(11)의 데이터 및 패러티가 페이지 버퍼(120) 및 패러티 페이지 버퍼(220)로 읽혀지고(②), 에러 검출 동작(③)이 수행된 다음에, 데이터 리로딩 동작(④)이 수행된다. 예를 들어, 제 1 페이지 버퍼(121)에 새로운 데이터가 리로드(reload) 된다고 가정한다. 이때 리로드된 데이터(reloaded data)에 대한 새로운 패러티는 제 1 패러티 페이지 버퍼(221)에 저장된다.
도 2를 참조하면, 칼럼 선택 및 패러티 발생 회로(130)는 데이터 리로딩 동작 시에 리로드된 데이터(reloaded data)를 입력받고, 칼럼 어드레스(CA)에 응답하여 입력된 데이터를 제 1 페이지 버퍼(121)에 전달한다. 한편, 패러티 발생 및 패러티 칼럼 선택 회로(230)는 리로드된 데이터(reloaded data)를 입력받아 새로운 패러티를 발생하고, 칼럼 어드레스(CA)에 응답하여 새로운 패러티를 제 1 패러티 페이지 버퍼(221)에 전달한다.
도 3은 도 2에 도시된 패러티 발생 및 패러티 칼럼 선택 회로(230)의 내부 구성을 보여주는 블록도이다. 도 3을 참조하면, 패러티 발생 및 패러티 칼럼 선택 회로(230)는 디멀티플렉서(410), 복수의 패러티 발생기(421~424), 패러티 플레인 검출기(430), 그리고 복수의 로드 드라이버(441~444)를 포함한다.
디멀티플렉서(410)는 데이터 리로딩 동작 시에 리로드된 데이터(reloaded data)를 입력받고, 칼럼 어드레스(CA)에 응답하여 새로운 패러티를 발생할 패러티 발생기를 선택한다. 예를 들면, 디멀티플렉서(410)는 리로드된 데이터(reloaded data)를 입력받고, 칼럼 어드레스(CA)에 응답하여 입력된 데이터를 제 1 패러티 발생기(421)에 전달한다.
복수의 패러티 발생기(421~424)는 각각 동일한 구성 및 동작 원리를 갖는다. 도 1의 데이터 흐름(①)을 참조하면, 각각의 패러티 발생기(421~424)는 각각의 패러티(P1~P4)를 발생한다. 데이터 리로딩 동작 시에, 제 1 패러티 발생기(421)는 리로드된 데이터(reloaded data)를 입력받고, 새로운 패러티(P1')를 발생한다. 이때 제 2 내지 제 4 패러티 발생기(422~424)는 이전 패러티(previous parity, P2~P4)를 그대로 유지하고 있다.
패러티 플레인 검출기(430)는 데이터 리로딩 동작 시에 칼럼 어드레스(CA)에 응답하여 패러티 플레인을 검출하고, 검출결과로서 플래그 신호를 발생한다. 위의 예에서, 패러티 플레인 검출기(430)는 제 1 패러티 플레인(211)를 검출하고, 제 1 플래그 신호(F1)를 발생한다. 패러티 플레인 검출기(430)의 구성 및 동작은 후술하는 도 4를 참조하여 상세히 설명된다.
복수의 로드 드라이버(441~444)는 동일한 구성 및 동작 원리를 갖는다. 복수 의 로드 드라이버(441~444)는 패러티 플레인 검출기(430)에서 발생한 플래그 신호에 응답하여 복수의 패러티 발생기(421~424)에서 발생한 패러티를 복수의 패러티 페이지 버퍼(221~224)에 전달한다. 위의 예에서, 제 1 로드 드라이버(441)는 데이터 로딩 동작 시에 제 1 플래그 신호(F1)에 응답하여 새로운 패러티(P1')를 제 1 패러티 페이지 버퍼(221)에 전달한다.
도 4는 도3에 도시된 패러티 플레인 검출기의 내부 구성을 보여주는 블록도이다. 도 4를 참조하면, 패러티 플레인 검출기(430)는 복수의 래치(431~434)와 디코더(435)를 포함한다.
복수의 래치(431~434)는 플래그 신호(F1~F4)를 저장하며, 데이터 로딩 동작 시에 클록 신호(CLK)에 동기 되어 플래그 신호(F1~F4)를 복수의 로드 드라이버(도 3 참조, 441~444)에 제공한다. 디코더(435)는 데이터 로딩 동작 시에 칼럼 어드레스(CA)를 디코딩하여 복수의 래치(431~434) 중에서 어느 하나의 래치를 인에이블 한다. 위의 예에서, 디코더(435)는 칼럼 어드레스(CA)를 디코딩하여 제 1 래치(431)를 인에이블 한다. 제 1 래치(431)는 클록 신호(CLK)에 동기 되어 제 1 플래그 신호(F1)를 제 1 로드 드라이버(441)에 제공한다.
이상에서 살펴 본 바와 같이, 본 발명에 따른 낸드 플래시 메모리 장치는 카피 백 프로그램 동작 동안에 에러 검출 및 데이터 리로딩 동작을 수행할 수 있다. 특히, 본 발명에 따른 낸드 플래시 메모리 장치는 카피 백 프로그램 동작 동안에 데이터 리로딩 동작을 수행하는 경우에 리로드된 데이터에 대한 새로운 패러티를 발생한다. 새로운 패러티는 칼럼 어드레스에 의해 선택된 패러티 플레인에 프로그 램된다.
한편, 본 발명의 상세한 설명에서는 바람직한 실시예로서 낸드 플래시 메모리 장치에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 다른 반도체 메모리 장치에서도 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.