상기의 과제를 이루기 위한 본 발명에 따른 메모리 장치는, 초기화 데이터가 저장되는 초기화 데이터 영역을 포함하는 셀 어레이; 및 초기화 동작시, 상기 초기화 데이터 영역 중 비어있는 셀 영역에 대응하는 독출 데이터를 패스로 판정하는 상태 검출기를 포함한다.
이 실시예에 있어서, 상기 초기화 동작시, 상기 초기화 데이터는 제 1 데이터로, 그리고 상기 비어있는 셀 영역은 제 2 데이터로 각각 독출되어 상기 상태 검출기로 제공된다.
이 실시예에 있어서, 상기 초기화 데이터 영역은 복수의 입출력 라인들 각각에 대응하는 복수의 영역들을 가지며, 상기 복수의 영역들 각각에는 상기 초기화 데이터가 확장되어 프로그램된다.
이 실시예에 있어서, 상기 초기화 데이터의 비트 '1'은 상기 복수의 영역들 중 짝수 영역들에는 '1'로, 홀수 영역들에는 '0'으로 각각 프로그램된다.
이 실시예에 있어서, 상기 초기화 데이터의 비트 '0'은 상기 복수의 영역들 중 짝수 영역들에는 '0'으로, 홀수 영역들에는 '1'로 각각 프로그램된다.
이 실시예에 있어서, 상기 상태 검출기는 상기 제 1 데이터를 디코딩하여 상기 초기화 데이터의 비트값을 복원한다.
이 실시예에 있어서, 상기 초기화 동작시, 상기 초기화 데이터 영역에 포함되는 메모리 셀들을 감지하여 데이터를 래치하는 페이지 버퍼; 상기 페이지 버퍼에 저장된 데이터를 상기 입출력 단위에 대응하는 상기 제 1 데이터로 상기 상태 검출기에 전달하는 열 선택회로; 및 상기 상태 검출기에 의해서 디코딩된 초기화 데이터의 비트값을 저장하는 초기화 데이터 레지스터를 더 포함한다.
이 실시예에 있어서, 상기 상태 검출기의 패스 또는 페일의 여부를 지시하는 상태 신호에 응답하여 상기 초기화 데이터 영역을 재독출하도록 상기 페이지 버퍼를 제어하는 제어 로직을 더 포함한다.
이 실시예에 있어서, 상기 열 선택회로로부터 전달되는 제 1 데이터 또는 상기 제 2 데이터의 홀수 입출력 단위에 대응하는 비트들을 반전하여 상기 상태 검출기에 제공하는 선택 반전 회로를 더 포함한다.
이 실시예에 있어서, 상기 상태 검출기는, 상기 제 1 데이터의 각 비트 값 중 소수 비트의 수가 규정된 수 이상인 경우, 상기 제 1 데이터를 페일(Fail)로 결정한다.
이 실시예에 있어서, 상기 상태 검출기는 상기 제 2 데이터의 비트 수를 카운트하되, 짝수 입출력 단위에 대응하는 '1'의 비트 수와 홀수 입출력 단위에 대응하는 '0'의 비트 수 각각을 카운트하여 동일하거나 또는 각각의 비트 수가 특정 비트 수 이상인 경우에 제 2 데이터를 패스(Pass)로 결정한다.
이 실시예에 있어서, 상기 상태 검출기는 상기 제 1 데이터의 각 비트 값 중 다수 비트를 상기 초기화 데이터의 1-비트 값으로 결정한다.
이 실시예에 있어서, 상기 비어 있는 셀 영역은 소거 상태이다.
이 실시예에 있어서, 상기 상태 검출기는 상기 제 2 데이터로부터 결정되는 비트 값이 상기 초기화 데이터 레지스터로 저장되는 것을 차단한다.
이 실시예에 있어서, 상기 비어 있는 셀 영역은 특정 데이터 패턴으로 프로그램된다.
이 실시예에 있어서, 상기 상태 검출기는 상기 제 2 데이터로부터 결정되는 비트 값이 상기 초기화 데이터 레지스터로의 저장되는 것을 허용한다.
이 실시예에 있어서, 복수의 상기 제 2 데이터로부터 결정되어 상기 초기화 데이터 레지스터에 저장되는 비트들은 하나의 초기화 데이터 단위를 구성하되, 상기 초기화 데이터 단위 중에는 무효한 초기화 데이터임을 지시하는 비트 값이 포함된다.
상기 목적을 달성하기 위한 본 발명의 셀 어레이의 초기화 데이터 영역에 초기화 데이터가 프로그램되는 플래시 메모리 장치의 초기화 방법은, (a) 상기 초기화 데이터 영역을 독출하는 단계; (b) 상기 독출된 데이터 중 입출력 단위에 대응하는 비트 수의 데이터를 전달받아 에러의 포함 여부를 검출하되, 상기 초기화 데이터 영역 중 비어 있는 영역에 대응하는 데이터를 패스로 판단하도록 설정되는 상태 검출 단계; 및 (c) 상기 상태 검출 단계에서 패스로 결정된 데이터로부터 상기 초기화 데이터의 1-비트를 디코딩하여 레지스터에 저장하는 단계를 포함한다.
이 실시예에 있어서, 상기 초기화 데이터의 비트들 각각은 입출력 단위 각각에 대응하는 복수의 영역들 각각에 적어도 1-비트씩 확장되어 프로그램된다.
이 실시예에 있어서, 상기 초기화 데이터의 비트 '1'은 상기 복수의 영역들 중 짝수 영역들에는 '1'로, 홀수 영역들에는 '0'으로 각각 프로그램된다.
이 실시예에 있어서, 상기 초기화 데이터의 비트 '0'은 상기 복수의 영역들 중 짝수 영역들에는 '0'으로, 홀수 영역들에는 '1'로 각각 프로그램된다.
이 실시예에 있어서, 상기 (b) 단계에서, 상기 입출력 단위에 대응하는 비트 수의 데이터 중 상기 홀수 입출력 단위에 대응하는 비트들을 반전하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 비어 있는 영역에 대응하는 메모리 셀들은 소거 상태에 대응하는 문턱 전압 상태를 갖는다.
이 실시예에 있어서, 상기 (b) 단계에서, 상기 비어 있는 영역에 대응하는 데이터는 짝수 입출력 단위에 대응하는 '1'의 비트 수와 홀수 입출력 단위에 대응하는 '0'의 비트 수 각각을 카운트하고, 상기 카운트된 '1'의 비트 수와 상기 '0'의 비트 수의 합이 소정의 비트 수 이상인 경우에 패스(Pass)로 결정된다.
이 실시예에 있어서, 상기 (c) 단계에서, 상기 비어 있는 영역에 대응하는 데이터로부터 디코딩된 1-비트의 상기 레지스터로의 저장은 차단된다.
이 실시예에 있어서, 상기 비어 있는 영역에 대응하는 메모리 셀들은 특정 데이터 패턴으로 프로그램된다.
이 실시예에 있어서, 상기 (b) 단계에서, 상기 비어 있는 영역에 대응하는 데이터는 짝수 입출력 단위에 대응하는 '1'의 비트 수와 홀수 입출력 단위에 대응하는 '0'의 비트 수 각각을 카운트하고, 상기 카운트된 '1'의 비트 수와 상기 '0' 의 비트 수의 합이 소정의 비트 수 이상인 경우에 패스(Pass)로 결정된다.
이 실시예에 있어서, 상기 (c) 단계에서, 상기 비어 있는 영역에 대응하는 데이터들로부터 디코딩된 복수의 비트들은 상기 레지스터에 저장되되, 복수의 비트들 중에는 초기화 데이터로의 사용을 차단하도록 설정되는 비트를 포함한다.
상기 목적을 달성하기 위한 본 발명에 따른 메모리 시스템은 플래시 메모리 장치; 및 상기 플래시 메모리 장치를 제어하기 위한 메모리 컨트롤러를 포함하되, 상기 플래시 메모리 장치는, 초기화 데이터가 저장되는 초기화 데이터 영역을 포함하는 셀 어레이; 및 초기화 동작시, 상기 초기화 데이터 영역 중 비어있는 셀 영역에 대응하는 독출 데이터를 패스로 판정하는 상태 검출기를 포함하는 플래시 메모리 장치이다.
이상의 구성 및 방법에 따르면, 고신뢰성을 갖는 초기화 데이터를 독출하여 메모리 장치 및 메모리 시스템의 신뢰성을 높일 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 낸드형(NAND type) 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 또한, 1-비트의 데이터가 셀 어레이의 복수 영역 각각에 반복적으로 기입되는 프로그램 방식을 '스프레드 프로그램(Spread program)', 스프레드 프로그램에 의해서 저장된 데이터를 '스프레드 데이터(Spread data)'라 칭하기로 한다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 플래시 메모리 장치를 간략히 보여주는 블록도이다. 도 2에 도시된 플래시 메모리 장치(100)의 셀 어레이(110)에는 초기화 데이터가 입출력 단위(I/O 단위)로 확장되어 프로그램된다. 파워-온시 초기화 동작이 시작되면, 셀 어레이(110)에 저장된 초기화 데이터가 독출되고, 독출된 데이터가 상태 검출기(130)에 전달된다. 상태 검출기(130)는 독출된 데이터를 검색하여 초기화 데이터의 독출 동작의 성공 여부를 판단한다. 또한, 상태 검출기(130)는 독출된 데이터로부터 초기화 데이터를 복원한다. 좀더 자세히 설명하면 다음과 같다.
셀 어레이(110)는 비트 라인 및 워드 라인에 연결되는 플래시 메모리 셀들을 포함한다. 일반적으로, 낸드형 플래시 메모리의 경우, 메모리 셀들은 하나의 비트 라인에 직렬로 연결되도록 스트링(String)을 구성한다. 복수의 스트링 단위의 메모리 셀들은 다시 소거의 기본 단위가 되는 메모리 블록(Memory block)을 구성한다. 일반적으로 셀 어레이(110)는 정상 동작시 일반적인 데이터가 프로그램되는 노말 데이터 영역과 파워-업 동작시에 독출되는 초기화 데이터가 저장되는 초기화 데이 터 영역을 포함한다. 초기화 데이터 영역에는 결함 셀의 리페어 정보 또는 직류 전압의 레벨을 조정하기 위한 트리밍 정보가 저장된다. 일반적으로 DC 트리밍 정보는 고정적인 크기를 가지는 반면에, 리페어 데이터는 결함 셀의 수에 따라 가변적인 크기를 갖는다. 따라서, 초기화 데이터 영역은 리페어 정보와 같은 가변적인 크기를 갖는 데이터에 따른 정보를 포함하지 않는 빈공간을 포함한다. 따라서, 초기화 동작시, 초기화 데이터 영역을 독출하는 동작에 의해 초기화 데이터와 빈공간에 대응하는 데이터가 모두 독출될 것이다. 초기화 데이터 영역에 대한 설명은 후술하게되는 도 3에서 더욱 상세히 설명하기로 한다.
페이지 버퍼 및 디코더(120)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 페이지 버퍼 및 디코더(120)는 읽기 동작 모드에서 셀 어레이(110)의 선택된 메모리 셀들에 저장된 데이터를 감지하여 저장한다. 그리고 페이지 버퍼 및 디코더(120)는 선택된 열 어드레스에 대응하는 데이터를 입출력 단위로 출력한다. 입출력 단위로 출력되는 데이터는 초기화 데이터의 1-비트에 대응하는 스프레드 데이터이다. 페이지 버퍼 및 디코더(120)는, 예를 들면, 페이지 버퍼와 열 어드레스에 응답하여 입출력 단위로 칼럼을 선택하는 Y-디코더로 구성될 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
상태 검출기(130)는 페이지 버퍼 및 디코더(120)로부터 제공되는 스프레드 데이터(Spread data)를 일시 저장한다. 여기서, 페이지 버퍼 및 디코더(120)로부터 제공되는 스프레드 데이터는 입출력 단위(예를 들면, 8-비트)로 상태 검출기(130)에 전달된다. 상태 검출기(130)에 전달된 8-비트의 스프레드 데이터는 다수 비트 결정(Majority Decision) 알고리즘에 따라 에러의 존재 여부가 검출된다. 상태 검출기(130)는 에러의 검출 여부에 따라 상태 신호(Status; 패스/페일의 여부)를 생성하여 초기화 제어부(150)로 전달한다. 본 발명에 따른 상태 검출기(130)는 초기화 데이터 영역의 빈공간에 대응하는 스프레드 데이터를 검출하고, 상태 신호(Status)를 패스(Pass)로 출력한다. 그리고 소거 상태로 빈공간이 유지되는 제 1 실시예의 경우, 빈공간에 대응하는 1-비트 데이터는 저장되지 않고 버려진다. 제 2 실시예의 경우, 빈공간에 대응하는 스프레드 데이터가 디코딩되고, 디코딩된 1-비트 데이터는 초기화 데이터 레지스터(140)에 저장된다. 그러나 제 2 실시예의 경우, 초기화 데이터 레지스터(140)에 저장되는 비트들 중에는 초기화 데이터로서 무효한 데이터임을 지시하는 비트가 포함된다.
초기화 데이터 레지스터(140)는 상태 검출기(130)로부터 디코딩된 초기화 데이터 또는 빈공간에 대응하는 데이터가 저장된다. 그러나 본 발명의 제 1 실시예의 경우, 빈공간에 대응하는 디코딩된 데이터는 버려진다. 반면에, 특정 패턴으로 빈공간이 프로그램되는 제 2 실시예의 경우, 빈공간에 대응하는 디코딩 데이터는 초기화 데이터 레지스터(140)에 저장된다. 그러나, 빈공간에 대응하는 디코딩 데이터에는 초기화 데이터로의 사용을 차단하기 위한 인스트럭션 비트(Instruction bit)가 포함된다. 초기화 데이터 레지스터(140)에 저장된 초기화 데이터는 이후에 메모리 장치의 DC 트리밍을 위하여 또는 결함 셀을 리페어하기 위하여 사용된다.
초기화 제어부(150)는 파워-업 검출부(160)로부터 제공되는 초기화 신호(예를 들면, POR 신호)에 응답하여 초기화 동작을 위한 제어 동작을 수행한다. 파워- 업 동작 동안, 초기화 제어부(150)는 초기화 데이터 영역에 저장된 초기화 데이터를 독출하도록 페이지 버퍼 및 디코더(120)를 제어한다. 그리고 초기화 제어부(150)는 상태 검출기(130)로부터 전달되는 상태 신호(Status)를 참조하여 재독출 여부를 결정한다. 초기화 제어부(150)는 초기화 데이터 레지스터(140)에 저장되는 초기화 데이터를 참조하여 DC 트리밍이나 리페어를 위한 제반 초기화 동작을 수행한다.
파워-업 검출기(160)는 플래시 메모리 장치(100)로의 전원 인가시에 내부 전원의 레벨을 검출한다. 검출된 내부 전압(VDD)이 일정 레벨 이상으로 상승하면, 파워-업 검출기(160)는 내부 회로들이 정상적인 동작을 시작하도록 초기화 신호(POR)를 생성한다. 일반적으로 셀 어레이(110)의 초기화 데이터 영역으로부터 DC 트리밍 정보나 리페어 데이터를 독출하는 초기화 동작은 메모리 장치에 전원이 인가되고 전원 전압이 안정화되는 파워-업 구간에서 이루어진다. 따라서, 충분히 안정화되지 못한 전원 전압 때문에 독출된 초기화 데이터에는 에러가 포함될 수 있다.
이상의 본 발명의 플래시 메모리 장치(100)는 셀 어레이(110) 영역에 스프레드 프로그램 방식에 따라 저장된 초기화 데이터를 독출한다. 상태 검출기(130)는 상술한 독출 동작에 따라 출력되는 스프레드 데이터를 디코딩하여 초기화 데이터로 복원한다. 동시에 상태 검출기(130)는 빈공간에 대응하는 독출 데이터가 전달되는 경우, 빈공간 임을 인식하고 에러 검출 결과를 패스(Pass)로 판정하여 초기화 제어부(150)로 전달한다. 그리고 상태 검출기(130)는 디코딩된 빈공간에 대응하는 데이터를 초기화 데이터 레지스터(140)에 저장하거나 또는 버린다. 제 1 실시예의 경 우, 빈공간에 대응하는 디코딩된 데이터는 버려진다. 그러나, 제 2 실시예의 경우, 빈공간에 대응하는 디코딩 데이터는 초기화 데이터 레지스터에 저장되지만, 무효한 데이터임을 지시하는 비트가 포함된다. 이러한 동작은 파워-업 동작 구간에 이루어지며, 안정화되지 않은 전원 전압 하에서 상태 검출기(130)는 신뢰성 높은 초기화 데이터를 제공할 수 있다. 이상에서 초기화 데이터를 1:8 스프레드 프로그램 및 8:1 다수 비트 결정(Majority decision) 알고리즘에 따라서 프로그램 및 독출되는 것을 예를 설명하였다. 그러나, 이러한 방식은 입출력 구조(I/O structure)에 따라 다양한 방식으로 변경가능함은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
도 3은 본 발명에 따른 초기화 데이터의 스프레드 프로그램 방법을 간략히 보여주는 도면이다. 도 3을 참조하면, 셀 어레이(110)는 일반적인 데이터가 저장되는 노말 데이터 영역(111)과 초기화 데이터가 저장되는 초기화 데이터 영역(112)을 포함한다. 따라서, 초기화 데이터는 테스트 공정에서 초기화 데이터 영역(112)에 저장된다. 초기화 데이터의 프로그램 동작은 1-비트의 데이터가 8-비트로 확장되는 스프레드 프로그램(Spread program)에 따른다. 초기화 데이터 영역(112)에 존재하는 빈공간은 소거된 상태, 또는 특정 패턴으로 프로그램될 수 있다. 초기화 데이터 영역(112)의 프로그램 동작을 좀더 자세히 설명하면 다음과 같다.
초기화 데이터 중 1-비트는 스프레드 프로그램 방식에 따라 초기화 데이터 영역(112)에 입출력 단위(I/O수, 예를 들면 8-비트)에 대응하는 비트 수로 확장되어 프로그램된다. 도시된 바와 같이, 하나의 비트 데이터 '1'(113)은 각각의 입출 력 단위(I/O0~I/O7)에 대응하는 8-비트로 확장된다. 즉, 초기화 데이터 '1'(113)은 8-비트의 스프레드 데이터 '10101010'(114)로 확장되고, 확장된 8-비트 데이터 각각은 입출력 단위들 각각에 대응하는 초기화 데이터 영역(112)에 프로그램된다. 초기화 데이터의 비트 '0'(115)는 8-비트의 스프레드 데이터 '01010101'(116)로 확장되어 초기화 데이터 영역(112)에 프로그램된다. 그러나, 초기화 데이터들 사이에 존재하게 되는 빈공간(Empty area)은 본 발명의 제 1 실시예에 따라 또는 제 2 실시예에 따라 소거 상태 또는 특정 데이터 상태로 프로그램된다. 즉, 제 1 실시예의 경우, 빈공간은 소거된 상태 '11111111'(117)로 둘 수 있다. 또는 제 2 실시예에 따라, 빈공간(Empty area)는 특정 데이터 패턴 '01010101'(118)으로 프로그램될 수 있다.
상술한 초기화 데이터 영역의 스프레드 프로그램을 통하여, 결함 셀 또는 불안정한 전원에 의해서 발생하는 에러에 대해서도 충분한 신뢰성을 갖는 초기화 동작이 가능하다. 그리고 빈공간에 대응하는 초기화 데이터 영역(112)의 처리를 통하여 빈공간에 대한 검출 및 인식이 용이하게 수행될 수 있다.
도 4는 상술한 도 3의 프로그램 방법에 따라서 데이터가 저장되는 초기화 데이터 영역, 특히, 입출력 단위들 중 하나에 대응하는 영역을 간략히 보여주는 도면이다. 도 4를 참조하면, 하나의 입출력 단위에 대응하는 초기화 데이터 영역은 리페어 데이터 영역(Repair data area)과 DC 트리밍 데이터 영역(DC trimming data area)를 포함한다. DC 트리밍 데이터 영역은 메모리 장치 고유의 고정된 데이터 크기를 가진다. 반면에, 리페어 데이터 영역은 결함 셀의 수에 따라서 결정되는 데이 터 크기를 가진다. 따라서, 리페어 데이터 영역의 데이터 크기는 메모리 장치마다 달라진다. 데이터 영역 'A'에는 리페어 데이터가 프로그램된다. 그리고 데이터 영역 'C'에는 DC 트리밍 데이터가 프로그램된다. 그러나, 데이터 영역 'B'는 리페어 데이터 영역임에도 리페어 데이터가 프로그램되지 않을 수 있다. 이미 리페어 데이터는 데이터 영역 'A'에 모두 프로그램되어 있기 때문에 데이터 영역 'B'는 더이상의 데이터가 프로그램될 필요가 없는 빈공간이다.
도 5는 페이지 버퍼 및 디코더(120)에 독출된 데이터가 상태 검출기(130)로 전달되는 방식을 설명하는 도면이다. 도 5를 참조하면, 페이지 버퍼 및 디코더(120)에 의해서 감지 및 래치된 스프레드 데이터는 입출력 단위(I/O 단위)로 상태 검출기(130)에 전달된다. 그러나, 독출된 스프레드 데이터는 프로그램 이전 데이터에 대비해 비반전된 4-비트와 반전된 4-비트를 포함한다. 스프레드 프로그램 동작시, 스프레드 데이터 중 입출력 라인들 (I/O0, I/O2, I/O4, I/O6)에 대응하는 비트들은 비반전된 비트들이다. 스프레드 데이터 중 입출력 라인들 (I/O1, I/O3, I/O5, I/O7)에 대응하는 비트들은 반전된 비트들이다. 8-비트의 스프레드 데이터로부터 1-비트의 초기화 데이터를 디코딩하기 위해서는, 반전된 4-비트가 복원되어야 한다. 따라서, 입출력 라인들 (I/O1, I/O3, I/O5, I/O7)에 대응하는 비트들은 상태 검출기(130)에 전달되기 전에 선택 반전 수단(135)에 의해서 반전된다. 선택 반전 수단(135)에 의해서 복원된 8-비트의 스프레드 데이터는 상태 검출기(130)에 의해서 에러의 유무가 판정된다. 규정된 비트 수 이하의 에러를 포함하는 경우, 상태 검출기(130)는 패스(Pass)로 상태 신호(Status)를 출력한다.
본 발명에 따른 상태 검출기(130)는 복원된 8-비트의 스프레드 데이터를 스케닝하여 1-비트의 초기화 데이터로 디코딩 가능한지를 판단한다. 특히, 상태 검출기(130)는 빈공간에 대응하는 스프레드 데이터를 인식하고 상태 신호(Status)를 패스(Pass)로 출력한다. 전달된 스프레드 데이터에 만일 1-비트, 또는 허용 가능한 수의 소수 비트 값을 갖는 경우, 상태 검출기(130)는 패스(Pass)를 나타내는 상태 신호(Status)를 출력한다. 상태 검출기(130)는 독출된 8-비트 단위의 스프레드 데이터를 1-비트의 초기화 데이터로 디코딩한다. 독출된 8-비트 단위의 스프레드 데이터에는 에러가 포함될 수 있다. 따라서, 상태 검출기(130)는 에러를 정정하는 디코딩 동작을 수행한다. 그리고 에러 비트의 수가 상대적으로 많은 경우 또는 정정이 불가한 경우에는 동일한 스프레드 데이터를 다시 독출해야 한다. 이를 위하여, 상태 검출기(130)는 초기화 제어부(150)로 페일(Fail)을 지시하는 상태 신호(Status)를 전달한다. 만일 상태 검출기(130)에 전달된 스프레드 데이터가 '11110000'인 경우, 논리 '1'과 논리 '0'의 수가 동일하기 때문에 다수 비트 결정(Majority decision)이 불가능하다. 또는, 독출된 스프레드 데이터에 포함되는 에러 비트의 수가 상대적으로 많은 경우, 독출된 스프레드 데이터의 신뢰도는 높지 못하다. 즉, 독출된 스프레드 데이터가 '10001100'으로 논리 '1'이 3-비트, 논리 '0'가 5-비트인 경우, 다수 비트 결정(Majority decision)에 의해서 결정된 데이터는 신뢰도가 높지 못하다. 이 경우, 에러 비트는 5-비트의 논리 '0'일 수도 있기 때문이다. 따라서, 스프레드 데이터의 신뢰도를 높이기 위해서는 소수 비트들(Minority bits) 수의 상한이 설정되어야 한다. 예를 들면, 소수 비트가 2-비트 이하일 경우에만 유효한 스프레드 데이터로 판단하도록 상태 검출기(130)의 알고리즘이 구성될 수 있다. 또는 소수 비트가 1-비트 이하일 경우에만 유효한 스프레드 어드레스로 판단하도록 상태 검출기(130)의 알고리즘이 구성될 수 있다. 만일 설정된 소수 비트 수보다 많은 소수 비트가 검출되면, 상태 검출기(130)는 무효한 스프레드 데이터임을 초기화 제어부(150)로 알려준다. 초기화 제어부(150)는 상태 신호(Status)가 무효한 스프레드 데이터임을 지시하는 경우, 동일한 스프레드 데이터를 포함하는 페이지 데이터를 독출하도록 페이지 버퍼 및 디코더(120)를 위시한 기타 구성들을 제어한다. 그리고 상태 검출기(130)는 상술한 빈공간에 대응하는 데이터에 스프레드 데이터의 경우에도 에러 검출 결과를 패스(Pass)로 판정한다. 이러한 동작은 후술하게 되는 도 6에서 설명하기로 한다.
에러 검출 결과가 패스(Pass)로 판정되는 경우, 상태 검출기(130)는 다수 비트 결정(Majority decision) 알고리즘에 따라 8-비트의 스프레드 데이터로부터 1-비트의 초기화 데이터를 결정하고 초기화 데이터 레지스터(140)에 전달한다.
도 6은 상술한 도 5의 디코딩 방식에 따라 빈공간에 대응하는 데이터를 처리하기 위한 방법의 제 1 실시예를 간략히 보여주는 도면이다. 본 발명의 제 1 실시예에 따르면, 초기화 데이터 영역(112, 도 3 참조)의 빈공간은 소거 상태로 유지된다. 이 경우, 상태 검출기(130)는 소수 비트의 수에 따라 에러 상태를 판정하고 페일(Fail)을 지시하는 상태 신호(Status)가 출력될 것이다. 따라서, 제반 초기화 동작은 중지될 수 있다. 그러나 본 발명의 제 1 실시예에 따르면, 상태 검출기(130)는 빈공간에 대응하는 스프레드 데이터의 에러 검출 결과를 패스(Pass)로 판정한 다. 좀더 자세히 설명하면 다음과 같다.
페이지 버퍼 및 디코더(120)에 래치되는 빈공간에 대응하는 독출 데이터는 모두 논리 '1'에 대응한다. 따라서 페이지 버퍼 및 디코더(120)로부터 출력되는 스프레드 데이터는 '11111111'이다. 이러한 패턴은 단계 (a)에 도시되어 있다. 스프레드 데이터 '11111111'은 선택적 반전 연산에 의하여 데이터 '10101010'으로 전환된다. 상태 검출기(130)에 전달되는 스프레드 데이터에 있어서, 입출력 라인들 (I/O0, I/O2, I/O4, I/O6)에 대응하는 비트들은 '1111', 입출력 라인들 (I/O1, I/O3, I/O5, I/O7)에 대응하는 비트들은 '0000'이다.
단계 (b)에 있어서, 빈공간의 처리를 위해 상태 검출기(130)는 '1'의 비트 수와 '0'의 비트 수를 카운트한다. 즉, 상태 검출기(130)는 (I/O0, I/O2, I/O4, I/O6)에 대응하는 '1'의 비트 수를 카운트한다. '1'의 비트 수를 지시하는 변수를 x라 칭하기로 한다. 그리고 상태 검출기(130)는 (I/O1, I/O3, I/O5, I/O7)에 대응하는 '0'의 비트 수를 카운트한다. '0'의 비트 수에 대응하는 변수를 y라 칭하기로 한다. 이 경우, 상태 검출기(130)는 비트 카운트 <x,y>를 참조하여 빈공간 데이터임을 인식한다. 그리고 상태 검출기(130)는 패스(Pass) 또는 페일(Fail) 여부를 결정하여 상태 신호(Status)를 출력한다. 즉, 빈공간 데이터의 경우, 비트 '1'의 수와 비트 '0'의 수가 동일하게 카운트될 것이다. 따라서, 비트 카운트 값은 <4,4>로 결정된다. 그러나, 빈공간 데이터는 결함 셀이나 또는 불안정한 전원 전압에 따라 에러가 포함될 수 있다. 이러한 에러의 발생을 고려하여, 비트 카운트가 <4,3> 또는 <3,4>으로 검출되더라도 상태 검출기(130)는 빈공간 데이터임을 인식하고 패 스(Pass)를 지시하는 상태 신호(Status)를 출력한다.
도 7은 상술한 도 6의 제 1 실시예에 따른 초기화 데이터의 읽기 방법을 간략히 보여주는 순서도이다. 도 6을 참조하면, 초기화 동작시 상태 검출기(130)는 페이지 버퍼 및 디코더(120)에 독출된 스프레드 데이터를 입출력 단위로 제공받는다. 스프레드 데이터를 검출하여 8:1 디코딩을 수행하고 디코딩된 1-비트의 데이터는 초기화 데이터 레지스터(140)에 저장된다. 그러나, 빈공간에 대응하는 8-비트 스프레드 데이터가 전달되면, 상태 검출기(130)는 상태 신호(Status)를 패스(Pass)로 출력하되, 디코딩된 1-비트 데이터를 초기화 데이터 레지스터(140)에 저장하지 않는다. 이하에서는 상술한 도면들에 의거하여 초기화 데이터 및 빈공간 데이터의 독출 및 검출 방법이 상세히 설명될 것이다.
전원이 제공되면, 파워-업 검출기(160)는 플래시 메모리 장치의 내부에 설정되는 전원 전압(VDD)의 레벨을 검출한다. 내부 전원 전압(VDD)의 레벨이 초기화 동작의 실행을 위한 레벨에 이르면, 초기화 제어부(150)에 의해서 초기화 동작이 실시된다. 초기화 제어부(150)는 셀 어레이(110)의 초기화 데이터 영역을 독출하도록 페이지 버퍼 및 디코더(120)를 제어한다(S100). 페이지 버퍼 및 디코더(120)로부터 초기화 데이터 또는 빈공간 데이터는 입출력 단위(8-비트)로 출력되고 상태 검출기(130)로 제공된다. 상태 검출기(130)는 입출력 단위의 스프레드 데이터를 검출하여 패스(Pass) 또는 페일(Fail)의 여부를 판단한다. 이때, 상태 검출기(130)는 소수 비트의 수가 소정의 비트 수 이상일 경우, 페일(Fail)로 상태 신호(Status)를 출력하고, 소수 비트의 수가 소정 비트 수 미만일 경우에는 패스(Pass)를 지시하도 록 상태 신호(Status)를 출력한다. 그리고, 상태 검출기(130)는 빈공간에 대응하는 데이터의 경우에는 상술한 도 6에서 설명된 알고리즘에 따라 상태 신호(Status)를 패스(Pass)를 출력한다(S120). 상태 검출기(130)는 패스(Pass)로 판정된 8-비트의 스프레드 데이터가 의미있는 초기화 데이터에 대응하는지 또는 빈공간 데이터인지를 판단한다(S130). 판단 결과에 따라, 초기화 데이터의 래치 여부가 결정된다(S140). 만일, 스프레드 데이터의 비트 카운트가 <8,0>,<7,1> 또는 <0,8>,<1,7> 등으로 검출되는 경우, 다수 비트 결정 알고리즘에 의해서 디코딩된다. 그리고 디코딩된 1-비트의 초기화 데이터는 초기화 데이터 레지스터(140)에 저장된다(S150). 반면에, 스프레드 데이터의 비트 카운트가 <4,4>, <4,3> 또는 <3,4>로 검출되는 경우, 상태 검출기(130)는 대응하는 8-비트의 스프레드 데이터를 빈공간 데이터로 판정한다. 따라서, 대응하는 스프레드 데이터는 초기화 데이터 레지스터(140)에 저장되지 않고 버려진다(S160). 이러한 스프레드 데이터의 디코딩 연산은 초기화 데이터의 독출이 완료되는 시점까지 반복된다(S170). 페이지 버퍼 및 디코더(120)의 최종 초기화 데이터가 독출될 때까지 열 어드레스가 증가되어 상태 검출기(130)로 스프레드 데이터가 순차적으로 제공된다(S180).
반면에, 상태 검출기(130)로 출력되는 스프레드 데이터에 포함되는 에러가 기준 비트 수 이상 존재하는 경우, 초기화 데이터 영역(112, 도 3 참조)에 대한 독출 동작이 재개된다(S190, S195). 이러한 재독출 동작에 따라 출력되는 데이터로부터 에러가 적정 수준 이하로 검출되지 않으면, 상태 검출기(130)는 상태 신호(Status)를 패스(Pass)로 판정하며, 절차는 단계 (S130)으로 이동한다. 그러나 지속적으로 에러가 발생하는 경우, 독출 횟수의 상한(Max count)까지만 초기화 데이터의 독출 동작이 실시된다. 독출 동작이 상한(Max count)에 이르면, 초기화 데이터의 독출 동작은 페일(Fail)로 결정된다.
이상의 본 발명의 제 1 실시예에 따르면, 빈공간에 대응하는 메모리 셀들은 초기화 데이터 영역에 소거 상태(예를 들면, '1')로 유지된다. 그리고 초기화 동작시, 상태 검출기(130)는 빈공간 데이터의 에러 검출 결과를 패스(Pass)로 결정한다. 비록, 빈공간 데이터는 에러 검출시 패스(Pass)로 판정되었으나, 빈공간 데이터로부터 디코딩된 비트 값의 초기화 데이터 레지스터(140)로의 저장은 차단된다.
도 8은 초기화 데이터 영역의 빈공간에 대응하는 독출 데이터를 처리하기 위한 방법의 제 2 실시예를 간략히 보여주는 도면이다. 제 2 실시예에 따라, 셀 어레이(110)의 초기화 데이터 영역의 빈공간은 특정 패턴으로 프로그램된다. 예를 들면, 초기화 데이터 영역의 빈공간은 각 입출력 단위에 따라 '01010101'로 프로그램된다. 초기화 데이터 영역에 대응하는 빈공간이 독출되면 페이지 버퍼 및 디코더(120)에 저장된다.
단계 (a)에 도시된 스프레드 데이터는 독출된 빈공간 데이터가 페이지 버퍼 및 디코더(120)로부터 출력되는 양상을 표현한다. 페이지 버퍼 및 디코더(120)에 래치된 초기화 데이터 영역의 감지 데이터는 입출력 단위(예를 들면 8-비트 단위)로 출력되어 상태 검출기(130)에 제공된다.
단계 (b)는 상태 검출기(130)에 전달되는 빈공간 데이터에 대응하는 스프레드 데이터를 간략히 보여준다. 상태 검출기(130)에 전달되는 스프레드 데이터는 입 출력 라인들 (I/O1, I/O3, I/O5, I/O7)에 대응하는 비트들이 반전된 값들을 갖는다. 즉, 빈공간 데이터의 패턴 '01010101'은 데이터 '00000000'로 상태 검출기(130)에 제공된다.
단계 (c)는 8:1 다수 비트 결정(8:1 Majority decision) 알고리즘에 의해서 디코딩되어, 초기화 데이터 레지스터(140)에 저장되는 빈공간 데이터를 보여준다. 그러나 초기화 데이터 레지스터(140)에 저장되는 디코딩 데이터에는 빈공간으로부터 독출된 데이터임을 지시하는 비트(Instruction bit)가 포함된다. 즉, 초기화 데이터 레지스터(140)에 저장되는 빈공간 데이터에 대응하는 디코딩 비트들에는 유효한 초기화 데이터 또는 무효한 초기화 데이터임을 지시하는 인스트럭션 비트(Instruction bit)가 포함된다. 따라서, 무효를 지시하는 인스트럭션 비트를 포함하는 초기화 데이터는 초기화 동작시에 사용되지 못하도록 설정된다.
도 9는 상술한 도 8에 따른 빈공간 데이터의 설정 방식을 적용하는 경우의 초기화 동작을 간략히 보여주는 흐름도이다. 도 9를 참조하면, 본 발명의 제 2 실시예에 따른 빈공간으로부터 독출된 스프레드 데이터가 상술한 도 8의 방식으로 처리된다. 빈공간에 대응하는 스프레드 데이터는 상태 검출기(130)에 의해서 패스(Pass)로 판정되며, 디코딩된 1-비트 데이터는 초기화 데이터 레지스터(140)에 저장된다. 그러나, 초기화 데이터 레지스터(140)에 저장되는 디코딩된 초기화 데이터에는 빈공간 임을 지시하는 인스트럭션 비트(Instruction bit)가 포함된다. 따라서, 빈공간에 대응하는 데이터는 초기화 동작시 사용이 차단될 수 있다. 이하에서는 상술한 도면들에 의거하여 초기화 데이터 및 빈공간 데이터의 독출 및 검출 방 법이 상세히 설명될 것이다.
전원이 제공되면, 파워-업 검출기(160)는 플래시 메모리 장치의 내부에 설정되는 전원 전압(VDD)의 레벨을 검출한다. 내부 전원 전압(VDD)의 레벨이 초기화 동작의 실행을 위한 레벨(V1)에 이르면, 초기화 제어부(150)에 의해서 초기화 동작이 실시된다. 초기화 제어부(150)는 셀 어레이(110)의 초기화 데이터 영역을 독출하도록 페이지 버퍼 및 디코더(120)를 제어한다(S200). 페이지 버퍼 및 디코더(120)에 래치된 페이지 단위의 독출 데이터는 입출력 단위(예를 들면, 8-비트)의 스프레드 데이터로 출력되고 상태 검출기(130)로 제공된다(S210). 상태 검출기(130)는 스프레드 데이터의 에러를 검출하여 패스(Pass) 또는 페일(Fail)를 지시하는 상태 신호(Status)를 출력한다. 이때, 소수 비트의 수가 소정의 비트 수 이상일 경우, 상태 검출기(130)는 페일(Fail)로 상태 신호(Status)를 출력한다. 그러나, 소수 비트의 수가 소정 비트 수 미만일 경우, 상태 검출기(130)는 패스(Pass)를 지시하는 상태 신호(Status)를 출력한다. 빈공간 데이터는 특정 패턴(예를 들면, '01010101')으로 프로그램되어 있기 때문에 상태 검출기(130)는 패스(Pass)를 지시하는 상태 신호(Status)를 출력하게 될 것이다(S220). 상태 검출기(130)는 패스(Pass)로 판정한 8-비트의 스프레드 데이터를 1-비트의 초기화 데이터로 디코딩한다. 디코딩된 데이터는 초기화 데이터 레지스터(140)에 저장된다(S230). 이러한 스프레드 데이터의 입출력 단위 연산은 초기화 데이터의 독출이 완료되는 시점까지 반복된다(S240). 페이지 버퍼 및 디코더(120)는 초기화 데이터 중 최종 데이터가 출력될 때까지 열 어드레스를 증가하여 스프레드 데이터를 출력하여 상태 검출기(130)로 제공한다(S250).
그러나, 상태 검출기(130)로 출력되는 스프레드 데이터에 에러가 기준 비트 수 이상 존재하면, 상태 검출기(130)는 에러 검출 결과를 페일(Fail)로 처리한다(S220). 그리고, 절차는 초기화 데이터 영역에 대한 재독출 동작을 위한 단계(S260)로 이동한다. 재독출 동작은 에러가 적정 수준 이하로 검출되지 않으면, 패스(Pass)로 판정되며, 따라서 절차는 단계 (S230)으로 이동한다. 동일한 데이터를 재독출하는 횟수(Max count)는 정해져 있다. 그러나 지속적으로 페일(Fail)로 판정되어 독출 횟수(count)가 상한(Max count)에 도달하면, 초기화 데이터의 독출 동작은 페일(Fail)로 처리된다.
이상의 도 9을 통해서 설명된 본 발명의 제 2 실시예에 따르면, 빈공간에 대응하는 스프레드 데이터는 다수 비트 결정 알고리즘 등의 처리 방법에 따라 디코딩되어 초기화 데이터 레지스터(140)에 저장된다. 그러나, 인스트럭션 비트(Instruction bit)가 무효임을 지시하는 비트 값을 갖는 초기화 데이터 레지스터(140)의 데이터는 초기화 동작에서의 사용이 차단된다.
도 10는 본 발명의 플래시 메모리 장치(210)를 구비하는 메모리 카드(200)의 일예를 간략히 도시한 블록도이다. 도 10를 참조하면, 고용량의 데이터 저장 능력을 지원하기 위한 메모리 카드(200)는 본 발명의 플래시 메모리 장치(210)를 장착한다. 본 발명에 따른 메모리 카드(200)는 호스트(Host)와 플래시 메모리 장치(210) 간의 제반 데이터 교환을 제어하는 메모리 컨트롤러(220)를 포함한다. 본 발명의 메모리 카드(200)는 전원의 투입 이후에 이루어지는 초기화 동작 동안에 신뢰성 높은 초기화 동작이 가능하다. 따라서, 높은 신뢰도를 갖는 메모리 카드를 제공할 수 있다.
SRAM(221)은 프로세싱 유닛(222)의 동작 메모리로써 사용된다. 호스트 인터페이스(223)는 메모리 카드(200)와 접속되는 호스트의 데이터 교환 프로토콜을 구비한다. 에러 정정 블록(224)은 멀티 비트 플래시 메모리 장치(210)로부터 독출된 데이터에 포함되는 에러를 검출 및 정정한다. 메모리 인터페이스(225)는 본 발명의 플래시 메모리 장치(210)와 인터페이싱 한다. 프로세싱 유닛(222)은 메모리 컨트롤러(220)의 데이터 교환을 위한 제반 제어 동작을 수행한다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 카드(200)는 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
이상의 본 발명의 플래시 메모리 장치는 파워-업 구간 동안 이루어지는 초기화 동작시 발생하는 초기화 데이터의 에러를 획기적으로 줄일 수 있다. 그리고 유동적으로 발생하는 빈공간에 대응하는 스프레드 데이터를 처리하여 플래시 메모리 장치의 동작 신뢰성을 높일 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부 터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.