KR20140147677A - 반도체 메모리 장치 - Google Patents

반도체 메모리 장치 Download PDF

Info

Publication number
KR20140147677A
KR20140147677A KR20140062359A KR20140062359A KR20140147677A KR 20140147677 A KR20140147677 A KR 20140147677A KR 20140062359 A KR20140062359 A KR 20140062359A KR 20140062359 A KR20140062359 A KR 20140062359A KR 20140147677 A KR20140147677 A KR 20140147677A
Authority
KR
South Korea
Prior art keywords
data
page buffer
bus
ecc
circuit
Prior art date
Application number
KR20140062359A
Other languages
English (en)
Other versions
KR102146080B1 (ko
Inventor
마코토 히라노
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US14/310,405 priority Critical patent/US9424953B2/en
Publication of KR20140147677A publication Critical patent/KR20140147677A/ko
Application granted granted Critical
Publication of KR102146080B1 publication Critical patent/KR102146080B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Abstract

통상 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼를 불량이 없는 페이지 버퍼로 치환하는 구제 치환 회로의 규모 증대를 막고, 또한, ECC 회로로의 데이터 전송의 고속화를 도모하는 반도체 메모리 장치가 제공된다. 데이터 전송부는, 통상 메모리 셀에 접속되는 통상 비트선의 데이터를 래치하는 페이지 버퍼 102 a와, 패리티 메모리 셀에 접속되는 패리티 비트선의 데이터를 래치하는 페이지 버퍼 102 c와, 페이지 버퍼 102 a에 불량이 있는 경우에 먼저 치환되거나, 페이지 버퍼 102 c에 불량이 있는 경우에, 먼저 치환되는 페이지 버퍼 102 b를 포함하며, ECC Bus_1은, 페이지 버퍼 102 a, 페이지 버퍼 102 c, 및 페이지 버퍼 102 b와 접속되고, Data Bus_1은, 페이지 버퍼 102 a, 및 페이지 버퍼 102 b와 접속된다.

Description

반도체 메모리 장치{Semiconductor memory device}
본 발명은 반도체 메모리 장치에 관한 것이다.
종래의 NAND형 플래쉬 메모리에서는, 여러 번의 쓰기에 수반되는 터널 산화막의 열화 등에 기인하여, 데이터의 저장중에 기억소자(메모리 셀 트랜지스터)의 저장 특성이 소실되어, 에러 비트의 발생율(에러율)이 커지는 경향이 있다. 특히, NAND형 플래쉬 메모리에서는, 메모리 셀의 대용량화, 즉 제조 프로세스에 있어서의 미세화가 진행되면 에러율은 상승해 버리는 경향이 있다. 그 때문에, 기억해야 할 데이터에 에러 정정 코드(ECC)(Error Correcting Code)의 리던던시 데이터(패리티 데이터)를 부가하여 데이터 열로서 플래쉬 메모리에 쓰는 동시에, 읽기 시에는 에러 정정 코드(ECC)의 리던던시 데이터에 근거하여 데이터의 정정을 실시함으로써, 에러 비트가 발생했을 때에 데이터의 보상을 실시하고 있다. 예를 들면, 특허 문헌 1에는, ECC 처리를 실시하는 ECC 회로를 갖춘 반도체 메모리 장치가 개시되고 있다.
또한, NAND형 플래쉬 메모리에서는, 제조 직후의 테스트에 대해, 메모리 셀 트랜지스터에, 데이터를 저장할 수 없는 등의 비트 불량, 혹은 메모리 셀 셀 트랜지스터에 접속되는 비트선에 다른 비트선이 접속되는 합선(쇼트), 혹은 비트선의 단선(오픈)이라고 하는 불량이 발견되는 경우가 있다. 이러한 경우, 메모리 셀 트랜지스터의 데이터를, 비트선을 통해 래치하고, 증폭하여 메모리 셀의 데이터를 외부로 출력하거나, 혹은 메모리 셀에 데이터를 써 넣는 페이지 버퍼와 이 페이지 버퍼에 접속되는 비트선과 비트선에 접속되는 메모리 셀 트랜지스터를, 세트로 다른 불량이 없는 세트와 치환하는 것이 행해지고 있다. 이러한 치환을 리던던시(redundancy)기술이라고 부르지만, 특허 문헌 1(일본 특개평 11-242899 공보)에 기재된 반도체 메모리 장치에서는, 리던던시 기술을 이용해 불량을 구제하는 일 없이, ECC 처리를 이용하여 불량 비트를 구제하고 있다. 그렇지만, 이 방법에서는, 본래 경년 열화에 의해 데이터 저장 특성이 없어진 메모리 셀 트랜지스터를 구제하는 ECC 처리의 정정 처리 능력이, 제조 공정에 기인하는 불량 비트의 구제에 허비되어, ECC 처리의 정정 처리 능력이 저하해 버린다.
그 때문에, 현재는, 불량 비트의 구제 처리와 ECC 처리에 의한 에러 정정 처리는, 이항에서 설명되는 바와 같이 별개로 행해지고 있다.
도 14는, NAND형 플래쉬 메모리의 일반적인 블록 구성을 나타내는 도면이다. 도 14에 나타나는 NAND형 플래쉬 메모리 80에서는, NAND형 플래쉬 메모리 80의 외부의 NAND 콘트롤러 90(메모리 콘트롤러)가 ECC 처리를 실행한다.
도 14에 나타나는 NAND형 플래쉬 메모리 80은, 메모리 어레이(Memory Array) 101, 페이지 버퍼 82, 칼럼 코딩 회로 83, 칼럼(Column)리페어 MUX(행 치환 멀티플렉서이하 컬럼 치환 회로라고 부른다) 84, I/O PAD(I/O패드) 106을 구비한다.
또한, 낸드 콘트롤러 90은, ECC Engine(ECC 회로) 87, 및 I/O PAD(I/O패드) 106c를 갖추고 있다.
메모리 어레이 101은, 복수의 메모리 셀 트랜지스터를 포함한다. 이러한 복수의 메모리 셀 트랜지스터 각각은, 1 비트의 데이터를 기억한다. 메모리 어레이 101에서, 동일한 워드라인(word line)에 접속되는 복수의 메모리 셀 트랜지스터들은 페이지를 구성한다. 하나의 페이지에 있어서 메모리 셀 트랜지스터로 데이터를 쓰고, 및 메모리 셀로부터의 데이터를 읽는 것은, 일괄적으로 실행된다.
페이지 버퍼 82는, 메모리 어레이 101의 페이지와 같은 개수의 데이터를 저장할 수 있도록 구성되어 있다. 도 15는, 페이지 버퍼 82를 구성하는 페이지 버퍼 유니트를 설명하기 위한 도면이다. 또, 도 16은, 종래의 페이지 버퍼 유니트의 내부 회로 구성을 나타내는 도면이다.
페이지 버퍼 82는, 도 15에 나타낸 페이지 버퍼 유니트가 복수개로 구성되어 이루어진다. 페이지 버퍼 유니트는, 각각이 1개의 비트선에 접속되어 메모리 셀로부터 비트선을 개재하여 읽어낸 데이터, 또는 메모리 셀에 비트선을 개재하여 쓴 데이터를 저장하는 비트 회로 51_0 a~51_7 a를 포함하여 구성되어 있다.
MUX(멀티플렉서) 52_b는, 도 14에 나타낸 컬럼 코딩 회로 83으로부터 컬럼 주소 신호(Sub BL Coding)가 입력되면, 이 컬럼 주소 신호(도 16에 있어서는 DIO<i>로 나타나 있다)에 근거하여, 비트 회로 51_0 a~비트 회로 51_7 a의 어느 하나를 선택한다. 즉, 멀티플렉서 52_b는, 8개의 비트선 가운데 어느 한 개의 비트선을, PB Control Circuit(PB제어 회로) 83_1에 접속한다.
PB제어 회로 83_1은, 도 14에 나타낸 컬럼 코딩 회로 83으로부터 컬럼 어드레스 신호(Coding;도 16에서는 선택 신호 Sel로 나타난다)가 입력되면, 멀티플렉서52_b에 의해 선택된 비트 회로를, Data Bus_1(데이터 버스)을 개재하여, 외부 회로(Peripheral Circuit)에 접속한다.
이상의 구성에 의해, 1개의 페이지에 있어서의 메모리 셀 트랜지스터 각각이, 비트선을 개재하여 페이지 버퍼 82의 비트 회로에 접속된다. 그리고, 이 중, 컬럼 어드레스에 의해 선택된 비트선이 데이터 버스에 접속되어, 메모리 셀로의 데이터의 쓰기, 또는 메모리 셀로부터의 데이터의 읽기가 실행된다.
도 14에 돌아가서, 컬럼 코딩 회로 83은, 도 14에서 도시되지 않은 주소 제 어회로로부터 입력되는 컬럼 주소에 근거하여, 컬럼 주소 신호(도 15에 나타낸 Sub BL Coding, 및 Coding)를 생성하고, 이 컬럼 주소 신호에 대응하는 페이지 버퍼 82의 페이지 버퍼 유니트를 선택한다. 이것에 의해, I/O패드 106, Data Bus_2, 및 Data Bus_1, 비트 회로, 및 비트선을 개재하여 메모리 셀 트랜지스터에 데이터가 씌여진다. 또, 메모리 셀로부터의 데이터가 비트선, 비트 회로, Data Bus_1, 및 Data Bus_2를 개재하여 I/O패드 106의 외부로 읽혀(독출)진다.
또, 페이지 버퍼 82는, 도 14에 나타낸 것처럼, PB(Page Buffer)_Data 82a(이하, 페이지 버퍼 82 a라고 한다)와 PB_CR 82b(이하, 페이지 버퍼 82 b라고 한다)로부터 구성된다. 페이지 버퍼 82 a는, 통상(노말) 메모리 셀에 접속되는 비트선의 전위를 증폭하고, 증폭 결과를 래치하는 페이지 버퍼이다. 또, 페이지 버퍼 82 b는, 페이지 버퍼 82 a에 접속되는 통상 메모리 셀이나 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 비트선과 함께 치환되는 페이지 버퍼이다. 즉, 페이지 버퍼 82 a를 구성하는 페이지 버퍼 유니트 중의 하나에 불량이 있는 경우, 이 불량 페이지 버퍼 유니트는, 페이지 버퍼 82 b를 구성하는 페이지 버퍼 유니트 중의 하나와 치환된다.
컬럼 치환 회로 84는, 불량 페이지 버퍼 유니트를, 페이지 버퍼 82 b를 구성하는 페이지 버퍼 유니트에 치환하는 회로이다. 예를 들면, 컬럼 치환 회로 84는, 메모리 셀 트랜지스터로부터의 데이터 읽기 동작에 있어서, 불량 페이지 버퍼의 위치를 가리키는 컬럼 주소가 입력되면, 컬럼 코딩 회로 83을 제어한다. 즉, 페이지 버퍼 82 a에 있어서의 불량 페이지 버퍼 유니트를 대신하여 페이지 버퍼 82 b에 있어서의 페이지 버퍼 유니트가 선택되도록 제어된다. 이것에 의해, 선택된 페이지 버퍼 유니트로부터의 데이터가, Data Bus_1, Data Bus_2, I/O패드 106을 개재하여 외부로 읽혀진다. 이러한 불량 페이지 버퍼의 위치를 나타내는 컬럼 주소는, 도 14에 나타내는 리페어 정보(Repair Information)에 포함된다. Repair Information는, NAND형 플래쉬 메모리 80의 제조 후의 테스트 시, 반도체 검사 장치(메모리 테스터)에 의해 검출된 후, 제품의 출하 전에 예를 들면 메모리 어레이 101의 시스템용 기억 영역 등에 저장된다.
한편, 컬럼 치환 회로 84는, 메모리 셀 트랜지스터로의 데이터 쓰기 동작에 있어서, 불량 페이지 버퍼의 위치를 나타내는 컬럼 주소가 입력되면, 컬럼 코딩 회로 83을 제어하여, 페이지 버퍼 82 a에 있어서의 불량 페이지 버퍼 유니트를 대신하여 페이지 버퍼 82 b에 있어서의 페이지 버퍼 유니트가 선택되도록 한다. 이것에 의해, I/O패드 106으로부터 입력되는 데이터가, Data Bus_2, 및 Data Bus_1을 개재하여, 불량 페이지 버퍼 유니트가 아닌, 페이지 버퍼 82 b 내의 페이지 버퍼 유니트에 입력된다.
Data Bus_1, Data Bus_2는, 이러한 데이터의 수수를 페이지 버퍼 82, 및 I/O패드 106의 사이에서 행하는 배선이며, 통상 8개, 혹은 16개의 배선으로 구성된다. I/O패드 106(인터페이스부)은, 낸드 콘트롤러 90와의 사이에서 상기 데이터의 수수를 행하는 외부 단자이다.
또, 낸드 콘트롤러 90에 있어서의 I/O패드 106 c(인터페이스부)는, NAND형 플래쉬 메모리 80과의 사이에 상기 데이터의 수수를 행하는 외부 단자이다.
ECC Engine(ECC 회로) 87에는, NAND형 플래쉬 메모리 80의 데이터 읽기 동작에 있어서, I/O패드 106 c를 개재하여, NAND형 플래쉬 메모리 80으로부터 입력되는 데이터(치환처 데이터를 포함하지만, 데이터에 에러를 포함하고 있는 가능성은 있다)가 입력된다. ECC 회로 87은, 입력된 데이터를, 예를 들면 자신에게 기억된 패리티 데이터에 근거하여 ECC 처리(디코드 처리)하여, 에러 정정 후의 데이터(Clear Data)를 외부로 출력한다. 한편, NAND형 플래쉬 메모리 80의 데이터 기입 동작에 있어서, ECC 회로 87은, 외부로부터 입력되는 데이터와 이 데이터를 기입하는 이전의 NAND형 플래쉬 메모리 80의 1 페이지의 데이터로부터 패리티 데이터를 생성한다. ECC 회로 87은, 패리티 데이터를 자신이 기억함과 동시에, 기입 데이터를 I/O 패드 106 c를 개재하여, NAND형 플래쉬 메모리 80로 출력한다.
상술한 바와 같이, 일반적인 NAND형 플래쉬 메모리에서는, 외부에 대하여 ECC 처리를 실시하기 때문에, ECC 처리를 실시할 때의 데이터는, 컬럼 치환 회로 84를 경유한 후의 데이터, 즉 불량 컬럼 구제 후의 데이터이다.
그렇지만, NAND형 플래쉬 메모리 80에서는, ECC 처리 시, 통상의 I/O패드 106의 버스폭으로 밖에는 데이터를 전송할 수 없기 때문에, ECC 처리에 시간을 요하게 되는 문제가 있다. 이 ECC 처리의 시간을 단축하기 위해서는, ECC 처리 때는 버스폭을 넓히는 구성을 취하는 것을 생각될 수 있다. 예를 들면, 상기 예로 말하면, NAND형 플래쉬 메모리 80의 Data Bus_1, 및 Data Bus_2의 버스폭을 넓게 하는 것이 고려된다.
그렇지만, 예를 들면 버스폭을 2배로 하면, 불량 비트의 구제 효율을 동등하게 하기 위해서는, 즉, 1회에 컬럼 치환 회로 84에 입력되어 치환되는 불량 비트가 버스폭을 넓히기 전에 비해 2배가 될 가능성이 있으므로, 컬럼 치환 회로 84의 규모를 2배의 규모로 할 필요가 있다. 또, I/O패드 106의 회로 규모의 증가, 주로 배치하는 패드 개수의 증가도 생긴다. 이와 같이, 버스폭을 넓혀 ECC 처리를 고속화하려고 하면, 불량비트의 구제를 행하기 위해 칩 사이즈가 커져 버리는 문제가 있다.
또, ECC 처리를 실시하는 ECC 회로 87을, NAND형 플래쉬 메모리 80의 내부에갖추는 구성도 생각할 수 있다. 예를 들면, 도 14에 나타내는 NAND형 플래쉬 메모리 80과 낸드 콘트롤러 90을 일체화 해, I/O패드 106, 및 106 c를 삭제하고, Clear Data를 출력하는 부분을, I/O패드로 하는 구성의 반도체 메모리 장치가 생각될 수 있다. 그렇지만, 이 경우에서도, ECC 처리를 고속으로 실시하기 위해 버스폭을 넓히면 상술한 것 같은, 불량 비트의 구제를 행하기 위해 칩 사이즈가 커지게 되는 문제가 생긴다. 게다가 ECC 회로 87에 입력되는 데이터는, 불량 비트구제 후의 데이터, 즉, 컬럼 치환 회로 84를 경유한 데이터이므로, 컬럼 치환회로에 의해 불량 비트 구제의 처리에 필요로 하는 시간만큼, ECC 처리의 시간이 길어진다고 하는 문제가 있다.
본 발명이 해결하려고 하는 과제는, 통상 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼를 불량이 없는 페이지 버퍼로 치환하는 구제 치환 회로의 규모 증대를 막고, 한편, ECC 회로로 데이터 전송의 고속화를 꾀한 반도체 메모리 장치를 제공하는 것이다.
본 발명의 반도체 메모리 장치는, 제1 데이터 버스와, 상기 제1 데이터 버스와 다른 갯수로 구성되며 상기 제1 데이터 버스와는 독립적으로 설치되는 제2 데이터 버스와, 제1 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 상기 제1 데이터 버스와 같은 갯수의 비트선과, 상기 제1 데이터 버스를 접속하여 데이터를 전송하고, 제2 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 상기 제2 데이터 버스와 같은 갯수의 비트선과 상기 제2 데이터 버스를 접속하여 데이터를 전송하는 데이터 전송부, 를 구비하고, 상기 데이터 전송부는, 통상 메모리 셀에 접속되는 통상 비트선의 데이터를 래치하는 제1 페이지 버퍼와, 패리티 메모리 셀에 접속되는 패리티 비트선의 데이터를 래치하는 제2 페이지 버퍼와, 상기 제1 페이지 버퍼에 접속되는 통상 메모리 셀 혹은 통상 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 통상 비트선과 함께 치환되거나, 상기 제2 페이지 버퍼에 접속되는 패리티 메모리 셀 혹은 패리티 비트선에 불량이 있는 경우에, 패리티 메모리 셀, 및 패리티 비트선과 함께 치환되는, 제3 페이지 버퍼를 포함하여 구성되고, 상기 제1 데이터 버스는, 상기 제1 페이지 버퍼, 상기 제2 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되고, 상기 제2 데이터 버스는, 상기 제1 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되는 것을 특징으로 한다.
또, 본 발명의 반도체 메모리 장치에 있어서, 상기 제3 페이지 버퍼는, 상기 제1 페이지 버퍼, 및 상기 제2 페이지 버퍼 중 어느 쪽이 먼저 치환되었는지를 나타내는 식별 데이터를 미리 기입하여 두고서, 상기 식별 데이터에 응답하여 제1 페이지 버퍼 또는 상기 제2 페이지 버퍼로서의 동작을 실행하는, 것을 특징으로 한다.
또, 본 발명의 반도체 메모리 장치에 있어서, 상기 제1 데이터 버스에 접속되는 것과 동시에, 패리티 데이터 입출력부에 입력되는 상기 제2 페이지 버퍼의 출력 데이터에 근거하여, 데이터 입출력부에 입력되는 상기 제1 페이지 버퍼의 출력 데이터의 에러를 정정하는 ECC 회로와,
상기 제1 데이터 버스에 접속되는 것과 동시에, 상기 제1 동작 모드에 있어서, 상기 제2 페이지 버퍼 중 패리티 메모리 셀 또는 패리티 비트선에 불량이 있는 페이지 버퍼를 상기 제3의 페이지 버퍼에 치환하는 구제 치환 회로를 구비하고,
상기 제3 페이지 버퍼는, 상기 식별 데이터가 상기 제2 페이지 버퍼에 대한 치환처를 나타내는 경우,
상기 제1 동작 모드의 데이터 읽기가 선택되면, 상기 ECC 회로의 데이터 입출력부에 고정 데이터를 상기 제1 데이터 버스를 개재하여 출력함과 동시에, 상기 ECC 회로의 패리티 데이터 입출력부에 패리티 데이터를, 상기 제1 데이터 버스, 및 상기 구제치환 회로를 개재하여 출력하고,
한편, 상기 제1 동작 모드의 데이터 기입 동작이 선택되면, 상기 ECC 회로의 데이터 입출력 부로부터의 데이터의 기입이 허가됨이 없이, 상기 ECC 회로의 패리티 데이터 입출력 부로부터의 패리티 데이터가 입력되는,
것을 특징으로 한다.
또, 본 발명의 반도체 메모리 장치에 있어서, 상기 제1 페이지 버퍼는, 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼의 출력을 고정된 데이터로 되게 하는 페이지 버퍼 제어 회로를 가지며,
상기 페이지 버퍼 제어 회로는, 메모리 셀 또는 비트선에 불량이 있는 경우에, 상기 제1 데이터 버스로부터의 기입을 허가하지 않는 것을 특징으로 한다.
본 발명의 반도체 메모리 장치는, 제1 데이터 버스와, 제1 데이터 버스와 다른 갯수로 구성되어 제1 데이터 버스와는 독립적으로 설치되는 제2 데이터 버스를 구비한다. 또한, 전송부는, 제1 동작 모드(ECC 모드)에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 제1 데이터 버스와 같은 갯수의 비트선과 제1 데이터 버스를 접속하여 데이터를 전송하고, 한편, 제2의 동작 모드에 의해 메모리 셀과의 사이에서 데이터를 전송하는 경우, 복수의 비트선 중 제2 데이터 버스와 같은 갯수의 비트선을 접속하여 데이터를 전송한다.
이것에 의해, 페이지 버퍼의 출력에 접속되는 데이터 버스를, 제1 동작 모드(ECC모드)용과 제2 동작 모드(통상 모드) 용으로 개별적으로 마련하여, 각각을 독립적으로 이용할 수가 있다. 또, 예를 들면 ECC 회로를 내장한 반도체 메모리 장치에 있어서도, 불량 컬럼을 치환하는 리던던시 기능을 가지고 있더라도, 불량 컬럼의 데이터와 치환처 데이터를 통상 데이터에 포함해, 이 통상 데이터와 패리티 데이터를 제1 동작 모드를 이용해 ECC 회로로 버스폭을 넓혀 전송하여, 에러 정정하는 구성을 취하면 좋다. 그 때문에, 불량비트의 구제를 실시하는 회로(컬럼 치환 회로)를 ECC 회로와 페이지 버퍼의 출력 사이에 둘 필요가 없어진다. 이것에 의해, 제1 동작 모드에서 버스폭을 넓혀 ECC 회로에 데이터 전송하는 경우에, 데이터가 컬럼 치환 회로를 통과할 필요가 없게되어, 컬럼 치환회로에 있어서의 처리가 불필요해지므로, ECC 처리 때의 데이터 전송의 고속화를 꾀할 수 있다. 또, 제2 데이터 버스를, 종래의 구제 효율에 대응한 버스폭 정도로 해둘 수 있다. 이것에 의해, 컬럼 치환 회로의 회로 규모는 증대하지 않기 때문에, 칩 사이즈의 증가를 억제할 수 있다.
특히, 본 발명의 반도체 메모리 장치에서는, 제2의 페이지 버퍼에 접속되는 패리티 메모리 셀 혹은 패리티 비트선에 불량이 있는 경우, 제2의 페이지 버퍼의 치환처를, 제1 페이지 버퍼에 접속되는 통상 메모리 셀 혹은 통상 비트선에 불량이 있는 경우 제1 페이지 버퍼의 치환처인 제3 페이지 버퍼로 하고 있다. 그 때문에, 반도체 메모리 장치에 있어서의 리던던시 회로의 규모의 증대를 억제할 수 있어 칩 사이즈의 증대를 방지할 수 있다.
도 1은 NAND형 플래쉬 메모리 10의 블록 구성을 나타내는 도이다.
도 2는 도 1에 나타낸 페이지 버퍼 102, 컬럼 코딩 회로 103, 및 ECC컬럼 코딩 회로 108에 대응하는 부분의 데이터 읽기 동작을 설명하기 위한 도면이다.
도 3은 도 2에 나타낸 PB 4IO 유니트의 내부의 구성, 및 PB 유니트의 내부의구성을 나타내는 도면이다.
도 4는 PB 유니트의 내부의 회로 구성을 나타내는 도면이다.
도 5는 PB 유니트의 내부의 다른 회로 구성을 나타내는 도면이다.
도 6은 도 4, 및 도 5에 나타낸 비트 내부 회로 50_i(i=0~7의 정수)의 회로구성을 나타내는 도면이다.
도 7은 도 1에 나타낸 페이지 버퍼 102, 컬럼 코딩 회로 103, 및 ECC 컬럼 코딩 회로 108에 대응하는 부분의 데이터 기입 동작을 설명하기 위한 도면이다.
도 8은 페이지 버퍼 102를 구성하는 각 페이지 버퍼를 설명하기 위한 도면이다.
도 9는 페이지 버퍼 102의 동작을 설명하기 위한 플로차트(flow chart)이다.
도 10은 NAND형 플래쉬 메모리 20의 블록 구성을 나타내는 도면이다.
도 11은 NAND형 플래쉬 메모리 20에 있어서의 페이지 버퍼 102를 구성하는 각 페이지 버퍼를 설명하기 위한 도면이다.
도 12는 페이지 버퍼 102 b에 있어서의 PB 유니트의 내부의 회로 구성을 나타내는 도면이다.
도 13은 페이지 버퍼 102, 패리티 컬럼 치환 회로 105, 및 ECC 회로 107에 대응하는 부분의 제1 동작 모드에서의 동작을 설명하기 위한 도면이다.
도 14는 NAND형 플래쉬 메모리의 일반적인 블록 구성을 나타내는 도면이다.
도 15는 페이지 버퍼 82를 구성하는 페이지 버퍼 유니트를 설명하기 위한 도면이다.
도 16은 종래의 페이지 버퍼 유니트의 내부의 회로 구성을 나타내는 도면이다.
이하, 도면을 참조하여, 본 발명의 실시의 형태에 대해 설명한다. 덧붙여 이하의 설명에 있어, 동일한 기능 및 구성을 가지는 요소에 대해서는, 동일 부호를 부여하고, 중복 설명은 필요한 경우에만 실시한다.
도 1은, NAND형 플래쉬 메모리 10의 블록 구성을 나타내는 도면이다. 도 1에 나타낸 NAND형 플래쉬 메모리 10은, Memory Array(메모리 어레이 101), PB(Page Buffer;페이지 버퍼) 102, Column Coding Circuit(컬럼 코딩 회로) 103, Main Column Repair MUX(컬럼 구제 회로) 104를 갖추고 있다. 또, NAND형 플래시 메모리 10은, Parity CR MUX(패리티 컬럼 치환 회로) 105, ECC Column Coding Circuit(ECC 컬럼 코딩 회로) 108, I/O PAD(I/O패드) 106, 및 ECC Circuit(ECC 회로) 107을 갖추고 있다. 덧붙여 도 14에 나타내는 NAND형 플래쉬 메모리 80과 동일한 부분에는 동일의 부호를 교부하여, 그 설명을 적당히 생략한다.
도 1에서, Data Bus_1, Data Bus_2, 및 Data Bus_3(제2 데이터 버스)은, 데이터의 수수를 페이지 버퍼 102와 I/O패드 106 사이에서 행하는 배선이며, 이하, 단지 Data_Bus라고 불려질 수 있다. 또, ECC Bus_1, ECC Bus_2, 및 ECC Bus_3( 제1 데이터버스)는, 데이터의 수수를 페이지 버퍼 82와 ECC 엔진 107 사이에서의 행하는 배선이며, 이하, 단지 ECC_Bus라고 불려질 수 있다.
NAND형 플래쉬 메모리 10은, 도 14에 나타낸 NAND형 플래쉬 메모리 80와는 달리, 컬럼 코딩 회로 83를 대신해, 컬럼 코딩 회로 103 및 ECC 컬럼 코딩 회로 108을 가진다. 컬럼 코딩 회로 103와 ECC 컬럼 코딩 회로 108은, 별도 계통의 컬럼 주소(Coding)가 입력된다. 또, 컬럼 코딩 회로 103와 ECC 컬럼 코딩 회로 108은, 후술 하는 바와 같이, 페이지 버퍼 102의 PB제어 회로 60에 선택 신호 Sel_A 또는 선택 신호 Sel_B를 출력하여, 페이지 버퍼 102에 직결된 부분(도 15에 나타낸 멀티플렉서 52_b, 및 PB제어 회로 83_1의 부분)으로부터, 페이지 버퍼의 출력을, ECC Bus_1과 Data Bus_1중 어느 하나의 데이터 버스에 접속한다.
특히, ECC 컬럼 코딩 회로 108은, ECC 회로 107으로부터 컬럼 주소(이하, 컬럼 주소 Address B로 한다)가 입력되어, 미도시된 주소 제어회로로부터 컬럼 코딩 회로 103에 입력되는 컬럼 주소(이하, 컬럼 어드레스 Address A로 한다)와는 독립하여, PB제어 회로 60에 대해서 선택 신호 Sel_B를 출력하여, 페이지 버퍼 102의 출력과 ECC Bus_1을 접속한다. 이에 따라, 페이지 버퍼 102의 출력과 ECC Bus_1또는 Data Bus_1과의 접속에 있어서의 주소 제어를 독립해 실행할 수가 있다.
또, 종래의 NAND형 플래쉬 메모리에서는, 페이지 버퍼의 출력(데이터 버스를 이하, 구별을 위해 IO버스로 한다)을, 제1 동작 모드와 제2 동작 모드에 있어서 공유하고 있다. 이에 대조적으로, NAND형 플래쉬 메모리 10에서는, 페이지 버퍼의 출력인 IO버스를, 제1의 동작 모드와 제2의 동작 모드에 있어 공유하는 것 없이, 독립에 마련하고 있다.
이것에 의해, 페이지 버퍼의 출력으로부터 ECC 회로 107로의 입력까지의 경로에 있어, 후술하는 컬럼 치환 회로 104등의 고속의 데이터 전송에 악영향을 미치는 회로는 불필요하게 되어, 데이터 전송을 고속으로 실시할 수가 있다. 또, 제2 데이터 버스를, 종래의 구제 효율에 대응한 버스폭으로 해둘 수가 있다. 이것에 의해, 컬럼 치환 회로 104의 회로 규모는 증대하지 않기 때문에, 칩 사이즈의 증가를 억제할 수 있다. 게다가 NAND형 플래쉬 메모리 10을, ECC 회로를 내장하지 않는 NAND형 플래쉬 메모리로 설계 변경하는 경우에 있어서도, ECC 컬럼 코딩 회로 108, 패리티 컬럼 치환 회로 105, ECC Bus_1~ECC Bus_3, ECC 회로 107을 삭제하면 좋기 때문에, 용이하게 설계될 수가 있다.
페이지 버퍼 102는, 도 1에 나타낸 바와 같이, PB(Page Buffer)_Data 102a(이하, 페이지 버퍼 102 a로 칭한다)와, PB_CR 102b(이하, 페이지 버퍼 102 b로 부른다)와, PB_Parity 102c(이하, 페이지 버퍼 102 c로 한다)와, PB_PCR 102d(이하, 페이지 버퍼 102 d로 한다)등으로 구성된다.
페이지 버퍼 102 a는, 통상 메모리 셀에 접속되는 비트선의 전위를 증폭하여, 증폭결과를 래치 하는 페이지 버퍼이다. 또, 페이지 버퍼 102 a는, 통상 모드( 제2 동작 모드)에 있어서의 데이터 읽기 시에, 컬럼 코딩 회로 103로부터 선택 신호 Sel_A가 입력되면, 증폭 결과를 데이터 읽음 신호 Data_Out_A로서 Data Bus_1, Data Bus_2, 및 Data Bus_3(제2 데이터 버스)를 개재하여, I/O패드 106로 출력한다.
한편, 페이지 버퍼 102 a는, ECC 모드(제1 동작 모드)에 있어서의 데이터 읽기 시에, ECC 컬럼 코딩 회로 108로부터 선택 신호 Sel_B가 입력되면, 증폭 결과를 데이터 읽음 신호 Data_Out_B로서 ECC Bus_1,ECC Bus_2, 및 ECC Bus_3(제1 데이터 버스)을 개재하여, ECC 회로 107로 출력한다.
또, 페이지 버퍼 102 a는, 통상 모드에 있어서의 데이터 쓰기 시에, 컬럼 코딩 회로 103으로부터 선택 신호 Sel_A가 입력되면, I/O패드 106으로부터 입력되는 기입 데이터가 Data Bus_3, Data Bus_2, 및 Data Bus_1을 개재하여 데이터 기입 신호 Data_In_A로서 입력된다. 한편, 페이지 버퍼 102 a는, ECC 모드에 있어서의 데이터 기입(쓰기) 시에, ECC 컬럼 코딩 회로 108으로부터 선택 신호 Sel_B가 입력되면, ECC 회로 107의 ECC 처리의 결과가 ECC Bus_3, ECC Bus_2, 및 ECC Bus_1을 개재하여 데이터 기입 신호 Data_In_B로서 입력된다.
페이지 버퍼 102 b는, 페이지 버퍼 102 a에 접속되는 통상 메모리 셀 또는 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 비트선과 함께 치환되는 페이지 버퍼이다. 즉, 페이지 버퍼 102 a를 구성하는 페이지 버퍼 유니트 중 하나에 불량이 있을 경우, 이 페이지 버퍼 유니트는, 페이지 버퍼 102 b를 구성하는 페이지 버퍼 유니트의 하나와 치환된다. 덧붙여 페이지 버퍼 102 b의 동작은, 상술한 페이지 버퍼 102 a와 같은 동작이므로, 설명을 생략한다.
이 페이지 버퍼 102 a로부터 페이지 버퍼 102 b로의 페이지 버퍼 유니트의 치환을 행하는 것이, 컬럼 치환 회로 104이다. 컬럼 치환 회로 104는, 페이지 버퍼 102 a에 있어서의 불량의 페이지 버퍼 유니트를 선택하는 컬럼 주소(후술하는 선택 신호 Sel_A)가 컬럼 코딩 회로 103에 입력되는 경우, 컬럼 코딩 회로 103가 페이지 버퍼 102 b에 있어서의 페이지 버퍼 유니트를 선택하도록 하는 제어를 실행한다.
페이지 버퍼 102 c는, 패리티 메모리 셀(ECC 처리용의 메모리 셀 트랜지스터. 다만, 구성은 통상 메모리 셀과 같다)에 접속되는 비트선의 전위를 증폭하여, 증폭결과를 래치하는 페이지 버퍼이다. 덧붙여 패리티 메모리 셀이 기억하는 패리티 데이터는, 통상 모드에서는, I/O패드 106을 개재하여 외부에는 출력되지 않는다. 한편, 페이지 버퍼 102 c는, ECC 모드에 있어서의 데이터 읽기 시에, ECC 컬럼 코딩 회로 108으로부터 선택 신호 Sel_B가 입력되면, 증폭 결과를 데이터 읽음 신호 Data_Out_B로서, ECC Bus_1, ECC Bus_2, 및 ECC Bus_3을 개재하여 ECC 회로 107로 출력한다.
또, 패리티 메모리 셀이 기억하는 패리티 데이터는, 통상 모드에서는, I/O패드 106을 개재하여 외부로부터 입력되지 않는다. 한편, 페이지 버퍼 102 c는, ECC 모드에 있어서의 데이터 기입 시에, ECC 컬럼 코딩 회로 108로부터 선택 신호 Sel_B가 입력되면, ECC 회로 107의 ECC 처리의 결과인 패리티 데이터가 ECC Bus_3, ECC Bus_2,및 ECC Bus_1을 개재하여 데이터 기입 신호 Data_In_B로서 입력된다.
페이지 버퍼 102 d는, 페이지 버퍼 102 c에 접속되는 패리티 메모리 셀 또는 비트선에 불량이 있는 경우에, 패리티 메모리 셀, 및 비트선과 함께 치환되는 페이지 버퍼이다. 즉, 페이지 버퍼 102 c를 구성하는 페이지 버퍼 유닛트 중의 하나에 불량이 있을 경우, 이 페이지 버퍼 유니트는, 페이지 버퍼 102 d를 구성하는 페이지 버퍼 유니트의 하나로 치환된다. 덧붙여 페이지 버퍼 102 d의 동작은, 상술한 페이지 버퍼 102 c와 같은 동작이므로, 설명을 생략한다.
이 페이지 버퍼 102 c에서 페이지 버퍼 102 d로 페이지 버퍼 유니트의 치환을 행하는 것이, 패리티 컬럼 치환 회로 105이다. 패리티 컬럼 치환 회로 105는, 페이지 버퍼 102 c에 있어서의 불량의 페이지 버퍼 유니트를 선택하는 컬럼 어드레스(후술하는 선택 신호 Sel_B)가 ECC 컬럼 코딩 회로 108에 입력되는 경우, ECC 컬럼 코딩 회로 108이 페이지 버퍼 102 d내의 페이지 버퍼 유니트를 선택하도록 하는 제어를 실행한다.
이러한 페이지 버퍼 102를 구성하는 페이지 버퍼 102 a~102 d는, 모두 동일한 회로 구성으로부터 되어, 이하에 그 회로 구성에 대해, 도 2~도 6을 이용해 상세하게 설명한다. 도 2는, 도 1에 나타낸 페이지 버퍼 102, 컬럼 코딩 회로 103, 및 ECC 컬럼 코딩 회로 108에 대응하는 부분의 데이터 읽기 동작을 설명하는 도면이다. 또, 도 3은, 도 2에 나타낸 PB 4IO 유니트의 내부의 구성, 및 PB 유니트의 내부의 구성을 나타내는 도면이다. 또, 도 4는, PB 유니트의 내부의 회로 구성을 나타내는 도면이다. 또, 도 5는, PB 유니트의 내부의 다른 회로 구성을 나타내는 도면이다. 또, 도 6은, 도 4, 및 도 5에 나타내는 비트 내부 회로 50_i(i=0~7의 정수)의 회로구성을 나타내는 도면이다.
도 2를 참조하면, 도 1에 나타낸 페이지 버퍼 102, 컬럼 코딩 회로 103, 및 ECC 컬럼 코딩 회로 108에 대응하는 부분은, 4 개의 IO선으로부터의 4개의 데이터를 래치하여, 4 개의 IO선에 대해서 데이터를 기입하는 PB 4IO 유니트를 가진다.
도 2에 있어서는, 10개의 PB 4 IO로서 PB0 IO 0123(PB 4IO 유니트 30_0), PB0 IO 4567(PB 4IO 유니트 30_1), PB1IO 0123(PB 4IO 유니트 30_2), PB1 IO 4567(PB 4IO 유니트 30_3), PB2 IO 0123(PB 4IO 유니트 30_4), PB2 IO 4567(PB 4IO 유니트 30_5), PB3 IO 0123(PB 4IO 유니트 30_6), PB3 IO 4567(PB 4IO 유니트 30_7),PB4 IO 0123(PB 4IO 유니트 30_8), PB4 IO 4567(PB 4IO 유니트 30_9)를 나타내고 있다.
여기서, IO선이란, 후술하는 PB유니트에 대해, 멀티플렉서 52_b와 PB 제어 회로 60과의 사이에 설치되는 입출력선이다. 이 IO선은, 본 실시 형태에서는, 멀티플렉서 52_b와 8개의 비트 회로 51_0 a~51_7 a를 개재하여, 8개의 비트선의 어느 하나와 전기적으로 접속된다. 즉, IO선은, 메모리 셀 트랜지스터에 기입하는 데이터 혹은 메모리 셀 트랜지스터로부터 읽어내지는 데이터가 왕래하는 신호선이다.
도 3(a)을 참조하면, 도 2에 나타내는 PB 4IO 유니트는, 동일한 구성을 가지고 있다. 도 3(a)에서는, 도 2에 나타내는 PB 4IO 유니트 30_0을 대표로 하여, 그 구성을 가리키고 있다. PB 4IO 유니트 30_0은, 4개의 PB유니트 30_00~30_03으로 구성된다.
PB유니트 30_00~30_03 각각은, 활성 레벨(이하, 예로서 H레벨이라 한다)의 선택 신호 Sel_A<0>이 컬럼 코딩 회로 103으로부터 공급되면, 자신에게 접속되는 1개의 IO선과 Data Bus( 제2 데이터 버스;후술하는 데이터 버스 Data_A<7:0>)을 접속한다. 이것에 의해, 도 3(a)에 나타낸 바와 같이, 4개의 IO선에서 데이터 버스 Data_A<3:0>로, 4 비트의 데이터 독출 신호 Data_Out_A<0>~Data_Out_A<3>이 출력된다.
또, PB유니트 30_00~30_03 각각은, 활성 레벨(이하, 예로서 H레벨이라 한다)의 선택 신호 Sel_B<0>이 ECC 컬럼 코딩 회로 108로부터 공급되면, 자신에게 접속되는 1개의 IO선과 ECC Bus( 제1 데이터 버스;후술하는 데이터 버스 Data_B<19:0>)을 접속한다. 이것에 의해, 도 3(a)에 도시된 바와 같이, 4개의 IO선으로부터 데이터 버스 Data_B<3:0>로, 4 비트의 데이터 독출신호 Data_Out_B<0>~Data_Out_B<3>이 출력된다.
도 3(b)을 참조하면, 도 3(a)에 나타내는 PB유니트 각각은, 도 15에 나타내는 비트회로와 동일 구성의 8개의 비트 회로 51_0 a~51_7 a와, 동일한 도 15에 나타내는 멀티플렉서 52_b와, 본원 발명의 특징적 부분인 PB Control Cirucuit(페이지 버퍼 제어 회로) 60등으로 구성된다.
우선, 도 4, 및 도 6을 참조하여, 1개의 PB유니트의 상세한 회로 구성에 대해 설명한다.
도 6에서는, 도 4에 나타내는 비트 내부 회로 50_0~50_7 각각의 회로에 있어서의, 쓰기 동작에 있어서의 데이터의 센싱부, 및 래치부, 읽기 동작에 있어서의 신호선을 구동하는 드라이버부의 구성을, 구체적으로 트랜지스터, 및 인버터 회로를 이용해 기재하고 있다. 덧붙여 도 3(b)에 나타내는 비트 회로 51_0 a~51_7 a와 멀티플렉서 52_b를 합한 회로가, 비트 내부 회로 50_0~50_7에 상당한다. 즉,비트 내부 회로는, 선택 신호 DIO에 의해 선택되므로, 비트 회로와 멀티플렉서 52_b의 일부의 기능을 가지고 있다. 또, 이 도 6에 나타내는 비트 내부 회로는, 도 15에 가리키는 종래의 PB유니트에 있어서의 비트 내부 회로와 동일한 회로 구성이다.
도 6에 나타낸 바와 같이, 비트 내부 회로 50_i(i를 정수로서 i=0~7의 8대는 동일한 구성의 회로이다)는, 인버터 회로 511, 인버터 회로 512, 트랜지스터513, 트랜지스터 514, 트랜지스터 515, 트랜지스터 521, 및 트랜지스터 522로 구성된다. 여기서, 트랜지스터 513, 트랜지스터 514, 트랜지스터 515, 트랜지스터 521, 및 트랜지스터 522는, N채널형 MOS(Metal Oxide Semiconductor) 트랜지스터이다.
비트 내부 회로 50_i에 있어서, 래치부는, 인버터 회로 511와 인버터 회로 512로 구성되어 있다. 여기서, 인버터 회로 511은, 출력 단자가 접속점 N2에 대해 인버터 회로 512의 입력 단자에 접속되고 입력 단자가 접속점N1에 대해 인버터 회로 512의 출력 단자에 접속되어 있다.
이 접속점N1는, 미도시된 메모리 셀 트랜지스터에 비트선을 개재하여 접속된다. 접속점N1는, 읽기 동작시 메모리 셀 트랜지스터가 기억하는 데이터가 Data_i로서 나타나고, 기입 동작시 메모리 셀에 기입해야 할 데이터가 Data_i로서 나타난다. 예를 들면, 메모리 셀 트랜지스터가 L(로우) 레벨(데이터 0으로 한다)를 기억할 때, Data_i의 전위는 L레벨이 되고, 한편, 메모리 셀 트랜지스터가 H(하이) 레벨(데이터 1로 한다)을 기억할 때, Data_i의 전위는 H레벨이 된다.
비트 내부 회로 50_i에 있어서, 드라이버부는, 트랜지스터 515, 및 트랜지스터 522로 구성된다.
트랜지스터 522는, 드레인이 읽기 신호 RD의 배선에 접속되고 게이트가 선택신호 DIO<i>의 배선에 접속되며 소스가 트랜지스터 515의 드레인에 접속되어 있다.
트랜지스터 515는, 드레인이 트랜지스터 522의 소스에 접속되고 게이트가 접속점N2에 접속되며 소스가 접지되어 있다.
여기서, 선택 신호 DIO<i>(i=0~7)는, 도 3(b)에 나타낸 Sub BL Coding이다. 예를 들면, 컬럼 코딩 회로 103은 미도시된 주소 제어 회로로부터 입력되는 3 비트의 주소 신호에 근거하여, 혹은 ECC 컬럼 코딩 회로 108은 ECC 회로 107으로부터 입력되는 3 비트의 주소 신호에 근거하여, 선택 신호 DIO<i> 가운데 하나의 신호를 H 레벨로 한다. 이것에 의해, 도 4에 나타내는 비트 내부회로 50_0~50_7중에서 하나의 비트 내부 회로가 선택된다.
이상의 구성에 의해, 메모리 셀 트랜지스터로부터의 데이터 읽기 동작에 있어서, 선택신호 DIO<i>가 H레벨이 되면, 읽기 신호 RD의 논리 레벨은 Data_i의 논리 레벨과 같은 논리 레벨로 된다. 즉, 예를 들면 읽기 신호 RD를 H레벨로 프리차아지 하는 것에 의해, Data_i가 H레벨 때는, 트랜지스터 515가 오프(비도통 상태), 트랜지스터 522가 온(도통 상태)이며, 비트 내부 회로 50_i는, 읽기 신호 RD를 H레벨로 유지한다. 한편, Data_i가 L레벨로 되는 경우에는, 트랜지스터 515가 온, 트랜지스터 522가 온이며, 비트 내부 회로 50_i는, 읽기 신호 RD를 H레벨로부터 L레벨로 변화시킨다.
읽기 신호 RD의 배선은, 도 4에 나타낸 바와 같이, PB제어 회로 60에 접속된다.
제1의 동작 모드(ECC 모드)에서는, 선택 신호 Sel_B(ECC 컬럼 코딩 회로 108이 출력하는 컬럼 주소)가 입력되면, 읽기 신호 RD의 배선은 ECC Bus에 접속된다. 이것에 의해, ECC Bus에는, 비트 내부 회로 50_i의 Data_i가 데이터 읽기 신호 Data_Out_B로서 읽어 내어진다(리드 아웃).
한편, 제2 동작 모드(통상 모드)에서는, 선택 신호 Sel_A(컬럼 코딩 회로 103이 출력하는 컬럼 주소)가 입력되면, 읽기 신호 RD의 배선은, Data Bus에 접속된다. 이것에 의해, Data Bus에는, 비트 내부 회로 50_i의 Data_i가 데이터 읽기 신호 Data_Out_A로서 읽어 내진다.
도 6로 돌아와, 비트 내부 회로 50_i에 있어서, 센싱부는, 트랜지스터 513, 트랜지스터 514, 트랜지스터 521로 구성된다.
트랜지스터 513은, 드레인이 접속점 N1에 접속되고 게이트가 기입 신호 DI의 배선에 접속되며 소스가 트랜지스터 521의 드레인에 접속되어 있다.
트랜지스터 514는, 드레인이 접속점N2에 접속되고 게이트가 기입 신호 nDI의 배선에 접속되며 소스가 트랜지스터 521의 드레인에 접속되어 있다.
트랜지스터 521은, 드레인이 트랜지스터 513의 소스, 및 트랜지스터 514의 소스에 접속되고 게이트가 선택 신호 DIO<i>의 배선에 접속되며 소스가 접지되어 있다.
기입(또는 라이트,쓰기) 신호 DI, 및 기입 신호 nDI의 배선은, 도 4에 나타낸 바와 같이, PB제어회로 60에 접속된다. 후술하는 바와 같이, 제1 동작 모드에서는 선택 신호 Sel_B에 의해 데이터 버스 ECC Bus에 접속되어, ECC Bus로부터 데이터 기입 신호 Data_In_B가 입력된다. 이것에 의해, PB제어 회로 60에서는, 이 데이터 기입 신호 Data_In_B의 레벨에 응답하여 기입 신호 DI, 및 기입 신호 nDI의 어느 한편을 L레벨에서 H레벨로 변화시켜, 다른 한편을 L레벨로 유지한다.
한편, 제2 동작 모드에서는, 선택 신호 Sel_A에 의해 Data Bus에 접속되고, Data Bus로부터 데이터 기입 신호 Data_In_A가 입력된다. 이것에 의해, PB제어 회로 60은, 이 데이터 기입 신호 Data_In_A의 레벨에 응답하여 기입 신호 DI, 및 기입 신호 nDI의 어느 한편을 L레벨에서 H레벨로 변화시켜, 다른 한편을 L레벨로 유지한다.
이상의 구성에 의해, 메모리 셀 트랜지스터로의 데이터 기입(쓰기) 동작에 있어서, 선택신호 DIO<i>가 H레벨이 되면, 기입 신호 DI, 및 기입 신호 nDI의 레벨에 응답하여, 비트 내부 회로 50_i의 Data_i의 레벨이 결정된다. 구체적으로는, 데이터 기입 신호 Data_In_A, 또는 데이터 기입 신호 Data_In_B 가 L레벨(데이터 0) 인 경우에, PB제어 회로 60은, 기입 신호 DI를 H레벨, 기입 신호 nDI를 L레벨로 한다. 이것에 의해, 비트 내부 회로 50_i에서는, 트랜지스터 513이 온되어, 트랜지스터 514가 오프된다. 그리고, 접속점N1는 L레벨, 접속점N2는 H레벨이 되어, Data_i의 논리는, 데이터 버스의 논리와 같이 L레벨(데이터 0)이 된다.
한편, 데이터 기입 신호 Data_In_A, 또는 데이터 기입 신호 Data_In_B가 H레벨(데이터 1)인 경우, PB제어 회로 60은, 기입 신호 DI를 L레벨, 기입 신호 nDI를 H레벨로 한다. 이것에 의해, 비트 내부 회로 50_i에서는, 트랜지스터 513이 오프되고, 트랜지스터 514가 온된다. 그리고, 접속점N1는 H레벨, 접속점N2는 L레벨이 되어, Data_i의 논리는, 데이터 버스의 논리와 동일하게 H레벨(데이터 1)이 된다.
도 4로 돌아와, PB제어 회로 60(전송부)의 구성을 설명한다.
PB제어 회로 60은, 데이터 버스에서 페이지 버퍼로의 데이터 전송을 실행하는 쓰기부와 페이지 버퍼에서 데이터 버스로의 데이터 전송을 실행하는 읽기부로 되어 있다.
이 가운데, PB제어 회로 60의 읽기부는, 트랜지스터 61 a, 및 트랜지스터 61 b로부터 구성된다. 트랜지스터 61 a, 및 트랜지스터 61 b는, NMOS 트랜지스터이다.
트랜지스터 61 a는, 드레인이 읽기 신호 RD의 배선에 접속되고 게이트가 선택신호 Sel_A의 배선에 접속되며 소스가 Data Bus( 제2 데이터 버스)에 접속되어 있다. 트랜지스터 61 b는, 드레인이 읽기 신호 RD의 배선에 접속되고 게이트가 선택 신호 Sel_B의 배선에 접속되며 소스가 ECC Bus( 제1 데이터 버스)에 접속되고 있다.
여기서, 선택 신호 Sel_A는, 컬럼 코딩 회로 103이, 도 1에서 미도시된 주소 제어 회로로부터 입력되는 Address A, 예를 들면 복수 비트의 주소에 근거하여 생성하는 컬럼 주소 신호이다. 또, 선택 신호 Sel_B는, ECC 컬럼 코딩 회로 108이, 도 1에 나타낸 ECC 회로 107로부터 입력되는 Address B, 예를 들면 상기 복수 비트 가운데 일부의 비트의 주소에 근거하여 생성하는 컬럼 주소 신호이다.
이와 같이, PB제어 회로 60의 읽기부는, ECC 모드( 제1 동작 모드)의 데이터 읽기시에는, H레벨의 선택 신호 Sel_B가 ECC 코딩 회로 108으로부터 입력되면, 트랜지스터 61 b를 온 시켜 읽기 신호 RD의 배선과 ECC Bus를 접속한다. 이것에 의해, 비트 내부 회로 50_0~50_7에 저장된 메모리 셀 트랜지스터의 데이터(비트 내부 회로에서는 Data_i)가, ECC Bus로 데이터 읽기 신호 Data_Out_B로서 출력된다.
또, PB제어 회로 60의 읽기부는, 통상 모드( 제2 동작 모드)의 데이터 읽기 시에는, H레벨의 선택 신호 Sel_A가 코딩 회로 103으로부터 입력되면, 트랜지스터 61 a를 온 시켜 읽기 신호 RD의 배선과 Data Bus를 접속한다. 이것에 의해, 비트 내부 회로 50_0~50_7에 저장된 메모리 셀 트랜지스터의 데이터가, Data Bus로 데이터 읽기 신호 Data_Out_A로서 출력된다.
또, PB제어 회로 60의 읽기부는, 페이지 버퍼 102 a, 및 페이지 버퍼 102 c에 대해, 메모리 셀 트랜지스터, 또는 메모리 셀 트랜지스터에 접속된 비트선에 불량이 있는 경우, ECC 모드의 데이터 읽기 시에는, ECC 회로 107에 입력되는 데이터가 고정 데이터(이 경우는 데이터 0으로 고정한다)가 되도록 하기 위해, 다음의 구성을 가지고 있다.
즉, PB제어 회로 60의 읽기부는, 도 4에 나타낸 바와 같이, 불량 정보 저장부 90a, 및 데이터 고정부 90 b를 가지고 있다.
불량 정보 격납부 90 a는, 인버터 회로 92, 인버터 회로 93, 트랜지스터 94, 트랜지스터 95, 및 트랜지스터 96으로부터 구성된다. 여기서, 트랜지스터 94, 트랜지스터 95, 및 트랜지스터 96은, N채널형 MOS 트랜지스터이다.
불량 정보 격납부 90 a에 있어서, 래치부는 인버터 회로 92와 인버터 회로 93으로 구성되어 있다. 여기서, 인버터 회로 92는, 출력 단자가 접속점 N4에 대해 인버터 회로 93의 입력 단자에 접속되고 입력 단자가 접속점N3에 대해 인버터 회로 93의 출력 단자에 접속되어 있다.
이 접속점N3는, 앤드 회로 91의 제1 입력 단자에 접속된다. 접속점N3는, 래치부가 기억하는 데이터가, 결함을 나타내는 결함 신호 PB_Defcet로서 나타난다. 또, 접속점N4는, 래치부가 기억하는 데이터가, 결함을 나타내는 결함 신호 nPB_Defcet로서 나타난다.
불량 정보 격납부 90 a에 있어서, 센싱부는, 트랜지스터 94, 트랜지스터 95, 트랜지스터 96로 구성된다.
트랜지스터 94는, 드레인이 접속점N3에 접속되고 게이트가 불량 정보 신호 SDI의 배선에 접속되며 소스가 트랜지스터 96의 드레인에 접속되어 있다.
트랜지스터 95는, 드레인이 접속점N4에 접속되고 게이트가 불량 정보 신호 nSDI의 배선에 접속되며 소스가 트랜지스터 96의 드레인에 접속되어 있다.
트랜지스터 96은, 드레인이 트랜지스터 94의 소스, 및 트랜지스터 95의 소스에 접속되고 게이트가 파워 온 리세트 신호 POR_Mode의 배선에 접속되며, 소스가 접지되어 있다.
여기서, 불량 정보 신호 SDI, 및 불량 정보 신호 nSDI는, PB제어 회로 60에 접속되는 비트선, 상기 비트선에 접속되는 메모리 셀 트랜지스터에 불량이 있는지 없는 지를 나타내는 신호이다. 이러한 불량 정보 신호는, 제조 후의 테스트에 있어서, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, 불량 정보 신호 SDI가 데이터 0(L레벨), 불량 정보 신호 nSDI가 데이터 1(H레벨)로 되어, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, 불량 정보 신호 SDI가 H레벨, 불량 정보 신호 nSDI가 L레벨로 된다. 그리고, 이러한 불량 정보 신호는, 테스트 후의 제품 출하 전에, PB제어 회로 60의 위치를 나타내는 선택 신호 Sel_B에 관련지을 수 있어, NAND형 플래쉬 메모리 10의 예를 들면 시스템용 기억 영역에 저장된다.
또, 파워 온 리세트 신호 POR_Mode는, NAND형 플래쉬 메모리 10의 전원 투입 후의 소정 기간(불량 정보 신호를 시스템용 기억 영역으로부터 PB제어 회로 60에 전송하는 기간), H레벨을 유지하는 신호이다.
이상의 구성에 의해, 불량 정보 격납부 90 a는, NAND형 플래쉬 메모리 10의 전원투입 후에, PB제어 회로 60에 접속되는 비트선등에 불량이 있는 경우, 파워온리세트 신호 POR_Mode가 H레벨이 되는 것에 의해, 트랜지스터 94가 오프, 트랜지스터 95가 온으로 된다. 이것에 의해, 노드 N3가 H레벨, 노드 N4가 L레벨로 되어, 결함 신호 PB_Defcet가 H레벨이 된다. 그리고, 불량 정보 격납부 90 a는, 전송 기간 종료후, 파워 온 리세트 신호 POR_Mode가 L레벨이 되는 것에 의해, 이후의 NAND형 플래쉬 메모리 10에 전원이 투입되고 있는 동안, 결함 신호 PB_Defcet를 H레벨로 유지한다.
또, 불량 정보 격납부 90 a는, NAND형 플래쉬 메모리 10의 전원 투입 후에, PB제어 회로 60에 접속되는 비트선 등에 불량이 없는 경우, 파워 온 리세트 신호 POR_Mode가 H레벨이 되는 것에 따라, 트랜지스터 94가 온, 트랜지스터 95가 오프 된다. 이것에 의해, 노드 N3가 L레벨, 노드 N4가 H레벨이 되어, 결함신호PB_Defcet가 L레벨이 된다. 그리고, 불량 정보 격납부 90 a는, 전송 기간종료 후, 파워 온 리세트 신호 POR_Mode가 L레벨이 되는 것에 따라, 이후의 NAND형 플래쉬 메모리 10에 전원이 투입되고 있는 동안, 결함 신호 PB_Defcet를 L레벨로 유지한다.
또, 데이터 고정부 90 b는, 앤드 회로 91, 트랜지스터 61 c를 가지고 있다. 여기서, 트랜지스터 61 c는, NMOS 트랜지스터이다.
앤드 회로 91은, 2 입력 1 출력의 논리곱 회로이며, 제1 입력 단자가 접속점N3에 접속 되고 제2 입력 단자가 선택 신호 Sel_A의 배선에 접속되며 출력 단자는, 트랜지스터 61 c의 게이트에 접속된다.
트랜지스터 61 c는, 드레인이 읽기 신호 RD의 배선에 접속되고 게이트가 앤드 회로 91의 출력 단자에 접속되며 소스가 접지되어 있다.
이상의 구성에 의해, PB제어 회로 60에 접속되는 비트선 등에 불량이 없는 경우, 데이터 고정부 90 b는, 결함 신호 PB_Defcet가 L레벨이기 때문에, 앤드 회로 91의 출력 신호는 항상 L레벨이며, 트랜지스터 61 c는 오프된다. 이 때문에, 데이터 고정부 90 b는 실질적으로 어떤 동작도 실시하지 않는다.
한편, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, 결함 신호 PB_Defcet가 H레벨이 되고 있다. ECC 사용시, 즉 ECC 모드에서는 앤드회로 91에 H레벨의 선택 신호 Sel_B가 입력되면, 앤드 회로 91의 출력 신호가 H레벨이 되어, 트랜지스터 61 c가 온 하므로, ECC Bus_1은 접지 되어 데이터 읽기 신호 Data_Out_B는 L레벨(GND 레벨)로 고정된다. 즉, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, ECC 모드에서 PB제어 회로는, ECC Bus_1에 고정 레벨(L레벨)의 데이터 읽기 신호 Data_Out_B를 출력하는 데이터 고정 회로로서 동작한다.
덧붙여 통상 모드에서의 데이터 읽기 시에는, PB제어 회로 60은 선택 신호 Sel_A로 선택되므로, 앤드 회로 91의 출력은 L레벨이 되어, 이 추가 회로인 데이터 고정부 90 b는 실질적으로 동작하지 않게 된다. 무엇보다, 이 앤드 회로 91을 사용하지 않고, 결함신호 PB_Defect를 직접 트랜지스터 61 c의 게이트에 입력하면, PB제어회로 60에 접속되는 비트선 등에 불량이 있는 경우, 읽기 신호 RD는 L레벨에 고정된다. 즉, PB제어 회로 60은, 통상 모드로 선택 신호 Sel_A가 입력되면, Data Bus_1에 고정 레벨(L레벨)의 데이터 읽기 신호 Data_Out_A를 출력하고, ECC 모드로 선택 신호 Sel_B가 입력되면, L레벨의 데이터 읽기 신호 Data_Out_B를 출력하는 데이터 고정 회로로서 동작한다.
덧붙여 도 4에 나타낸 불량 정보 격납부 90 a, 및 데이터 고정부 90 b의 구성은, 도 5에 도시한 구성이어도 괜찮다. 도 5는, PB 유니트의 내부의 다른 회로 구성을 나타내는 도면이다.
덧붙여 도 5에 있어서는 도 4와 동일한 부분에는 동일한 부호를 부여하여, 그 설명을 생략 한다.
도 5에 대해, 불량 정보 격납부 90 a 에 대해서는 도 4에 나타낸 것과 같은 구성이지만, 데이터 고정부 90 b에 대해서는, 데이터 고정부 90 b'로 되어 있다. 덧붙여 불량 정보 격납부 90a 대해서는, 접속점N4에 나타나는 신호를 결함 신호 nPB_Defect로 하고 있다.
데이터 고정부 90 b'는, 트랜지스터 61 c만으로 구성된다. 트랜지스터 61c는, 소스가 ECC Bus( 제1 데이터 버스)에 접속되고 있다. 또, 이것에 의해, 트랜지스터 61 b는, 드레인이 읽기 신호 RD의 배선에 접속되고 게이트가 선택신호 Sel_B의 배선에 접속되며 소스가 트랜지스터 61 c의 드레인에 접속되어 있다.
이 구성에 의해, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, 결함신호nPB_Defect가 L레벨이 되므로, 트랜지스터 61 c가 오프가 되어, 읽기 신호 RD의 ECC Bus_1로의 전송 패스가 끊어지게 된다. 이 때문에, 데이터 읽기 신호 Data_Out_B는, Pull Up회로에 의해 H레벨로 고정된다. 한편, PB제어 회로 60에 접속되는 비트선 등에 불량이 없는 경우, 결함 신호 nPB_Defect는 H레벨이 되어, 트랜지스터 61 c가 상시 온이 된다. 이것에 의해, 읽기 신호 RD, 즉 메모리 셀 트랜지스터의 데이터를, ECC Bus_1에 데이터 읽기 신호 Data_Out_B로서 읽어낼 수가 있다.
데이터 고정부 90 b'는, 도 5에 나타낸 데이터 고정부 90 b와 비교하여, 읽기 신호 RD의 배선과 ECC Bus_1과의 사이에, 트랜지스터 61 b와 트랜지스터 61 c가 직렬 회로로 되지만, 앤드 회로를 필요로 하지 않는 메리트가 있다.
또, 도 5에 나타내는 데이터 고정부 90 b'에 대해, 예를 들면 트랜지스터 61 c를, 읽기 신호 RD의 배선과 트랜지스터 61 a, 및 트랜지스터 61 b의 드레인과의 사이, 즉 읽기 신호 RD의 배선과 PB제어 회로 60과의 사이에 삽입하면, PB제어 회로 60은, 통상 모드로 선택 신호 Sel_A가 입력되면, Data Bus_1에 고정레벨(H레벨)의 데이터 읽기 신호 Data_Out_A를 출력하고, ECC 모드에서 선택 신호 Sel_B가 입력되면, H레벨의 데이터 읽기 신호 Data_Out_B를 출력하는 데이터 고정 회로로서 동작한다.
이상과 같은 회로 구성에 의해, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우에, 데이터 Data_Out_A 또는 데이터 Data_Out_B를 L레벨 또는 H레벨로 고정할 수가 있다.
도 4로 돌아와, PB제어 회로 60의 기입부는, 인버터 회로 62, 인버터회로 63, 낸드 회로 64, 낸드 회로 65, 논리합 회로 66, 인버터 회로 67, 앤드 회로 71, 스윗치 68, 및 스윗치 69로 구성된다.
인버터 회로 62는, 논리 반전 회로이며, 출력 단자가 기입 신호 DI의 배선에 접속 되고 입력 단자가 낸도 회로 64의 출력 단자에 접속된다. 인버터 회로 63은, 논리반전 회로이며, 출력 단자가 기입 신호 nDI의 배선에 접속되고 입력 단자가 낸드 회로 65의 출력 단자에 접속된다.
낸드 회로 64는, 3 입력 1 출력의 NAND 회로이며, 제1 입력 단자가 기입enable 신호 fDin Enable의 배선에 접속되고 제2 입력 단자가 논리합 회로 66의 출력 단자에 접속되고 제3 입력 단자가 인버터 회로 67의 출력 단자에 접속된다. 또, 낸드 회로 64의 출력 단자는, 인버터 회로 62의 입력 단자에 접속된다.
낸드 회로 65는, 3 입력 1 출력의 NAND 회로이며, 제1 입력 단자가 기입enable 신호 fDin Enable의 배선에 접속되고 제2 입력 단자가 논리합 회로 66의 출력 단자에 접속되며 제3 입력 단자가 스윗치 68의 제1 입출력 단자, 및 스윗치 69의 제1 입출력 단자에 접속된다. 또, 낸드 회로 65의 출력 단자는, 인버터 회로 63의 입력 단자에 접속된다.
논리합 회로 66은, 2 입력 1 출력의 논리합 회로이며, 제1 입력 단자가 앤드 회로 71의 출력에 접속되고 제2 입력 단자가 선택 신호 Sel_A의 배선에 접속된다. 또, 오어 회로 66의 출력 단자는, 낸드 회로 64의 제2 입력 단자, 및 낸드 회로 65의 제2 입력단자에 접속된다. 앤드 회로 71은, 선택 신호 Sel_B와 결함 신호 nPB_Defect와의 논리곱을 연산한다. 이것에 의해, 결함 신호 nPB_Defect가 H레벨인 경우(불량이 아닌 경우)에는, 선택 신호 Sel_B가 H레벨이 되는 것에 의해, 낸드 회로 65의 제2 입력 단자가 H레벨로 되어, 기입 조건의 하나를 만족할 수가 있다. 한편, 결함 신호 nPB_Defect가 L레벨의 경우(불량 페이지 버퍼이다)는 선택신호 Sel_B의 동작 모드에 있어서, 낸드 회로 65의 제2 입력 단자가 H레벨로 됨이 없이, 기입을 하지 않게 된다.
인버터 회로 67은, 논리 반전 회로이며, 입력 단자가 스윗치 68의 제1 입출력단자, 및 스윗치 69의 제1 입출력 단자에 접속되고 출력 단자가 낸드 회로 64의 제3입력단자에 접속된다.
스윗치 68은, 쌍방향으로 신호를 전달하는 스윗치이며, 제1 입출력 단자가 인버터 회로 67의 입력 단자, 및 낸드 회로 65의 제3 입력 단자에 접속되고 제2 입출력 단자가 Data Bus에 접속된다.
스윗치 69는, 쌍방향으로 신호를 전달하는 스윗치이며, 제1 입출력 단자가 인버터 회로 67의 입력 단자, 및 낸드 회로 65의 제3 입력 단자에 접속되고 제2 입출력 단자가 ECC Bus에 접속된다. 덧붙여 상기 쌍방향 스윗치가 어느쪽이라도 비선택된 경우에 인버터 회로 67의 입력이 부정이 되지 않게, 인버터 회로 67의 입력이 PMOS트랜지스터에 의해 풀업(pull-up) 처리된다.
이상의 구성에 의해, PB제어 회로 60의 기입부는, ECC 모드( 제1 동작 모드)의 데이터 기입 시에 있어, 기입 enable 신호 fDinEnable가 H레벨로, 선택 신호 Sel_B가 H레벨이 되면, 스윗치 69가 온 되어, ECC Bus로부터 입력되는 데이터 기입 신호 Data_In_B의 레벨에 응답하여, 기입신호 DI, 및 기입 신호 nDI의 어느쪽이든 한편을 L레벨에서 H레벨로 변화시킨다.
구체적으로는, 데이터 기입 신호 Data_In_B가 L레벨(데이터 0)일 때, 기입 신호 DI를 H레벨로 변화시킨다. 이것에 의해, 비트 내부 회로 50_0~50_7 가운데, 어느쪽이든 1개의 비트 내부 회로의 Data_i가, L레벨이 되고, 그 후의 프로그램 처리에 의해, 메모리 셀 트랜지스터에 데이터 0이 기입된다.
한편, 데이터 기입 신호 Data_In_B가 H레벨(데이터 1)일 때, 기입 신호 nDI를 H레벨로 변화시킨다. 이것에 의해, 비트 내부 회로 50_0~50_7 가운데, 어느 쪽이든 1개의 비트 내부 회로의 Data_i가, H레벨로 되어, 그 후의 프로그램 처리에 의해, 메모리 셀 트랜지스터에 데이터 1이 기입된다.
또, PB제어 회로 60의 기입부는, 통상 모드(제2 동작 모드)의 데이터 기입 시에 있어, 기입 enable 신호 fDinEnable가 H레벨로, 선택신호 Sel_A가 H레벨로 되면, 스윗치 68이 온 되어, Data Bus로부터 입력되는 데이터 기입 신호 Data_In_A의 레벨에 응답하여, 기입 신호 DI, 및 기입 신호 nDI의 어느 쪽이든 한편을 L레벨에서 H레벨로 변화시킨다. 구체적으로는, 데이터 기입 신호 Data_In_A가 L레벨(데이터 0)일 때, 기입 신호 DI를 H레벨로 변화시킨다. 이것에 의해, 비트 내부 회로 50_0~50_7 가운데, 어느 1개의 비트 내부 회로의 Data_i가, L레벨이 되고, 그 후의 프로그램 처리에 의해, 메모리 셀 트랜지스터에 데이터 0이 기입된다.
한편, 데이터 기입 신호 Data_In_A가 H레벨(데이터 1)일 때, 기입 신호 nDI를 H레벨로 변화시킨다. 이것에 의해, 비트 내부 회로 50_0~50_7 가운데, 어느 쪽이든 1개의 비트 내부 회로의 Data_i가, H레벨이 되어, 그 후의 프로그램 처리에 의해, 메모리 셀 트랜지스터에 데이터 1이 기입된다.
이와 같이, PB제어 회로 60은, 페이지 버퍼 102의 PB유니트를 구성하는 비트 내부 회로 50_0~50_7 가운데, 선택 신호 DIO<i>에 의해 선택된 비트 내부 회로에 비트선을 개재하여 접속되는 메모리 셀 트랜지스터와 데이터 버스( 제1 데이터 버스, 및 제2의 데이터 버스)간의 데이터 전송을 제어하는 회로이다.
또, 상술한 읽기 신호 RD의 배선, 기입 신호 DI의 배선, 및 기입 신호 nDI의 배선(IO선)은, PB유니트를 구성하는 비트 내부 회로 50_0~50_7과 PB제어 회로 60을 접속하는 배선이며, 이러한 배선은 PB유니트의 데이터 전송용의 입출력 배선이다. 따라서, 본 실시 형태에 있어서, PB제어 회로 60은, 페이지 버퍼 102의 입출력부와 제1, 및 제2의 데이터 버스(ECC Bus, Data Bus)와의 사이에서, 기입 데이터, 및 읽기 데이터를 전송한다.
도 3(a)으로 돌아와, 이상의 PB제어 회로 60의 구성에 의해, PB 4 IO유니트 30_0은 다음과 같이 설명하는 동작을 실행한다.
PB 4IO 유니트 30_0은, H레벨의 선택 신호 Sel_A<0>이 컬럼 코딩 회로 103으로부터 입력되면, 4 개선의 페이지 버퍼의 입출력선(도 4에 나타낸 데이터 읽기선 RD;IO선IO_0~IO_3으로 된다)를, 4 비트 분의 Data Bus(여기에서는 데이터 버스 Data_A<3:0>으로 한다)에 각각 접속한다. 이것에 의해, PB 4IO 유니트 30_0은, 데이터 버스 Data_A<3:0>에 데이터 읽기 신호 Data_Out_A<0>~A<3>(이하, 데이터 읽기 신호 Data_Out_A<3:0>으로 한다)를 출력한다.
또, PB 4IO 유니트 30_0은, H레벨의 선택 신호 Sel_B<0>이 ECC 컬럼 코딩 회로 108으로부터 입력되면, 4 개선의 페이지 버퍼의 입출력선 IO선IO_0~IO_3을, 4 비트 분의 ECC Bus(여기에서는, 데이터 버스 Data_B<3:0>으로 한다)에 각각 접속한다. 이것에 의해, PB 4IO 유니트 30_0은, 데이터 버스 Data_B<3:0>에 데이터 읽기 신호 Data_Out_B<0>~B<3>(이하, 데이터 읽기 신호 Data_Out_B<3:0>으로 한다)를 출력한다.
도 2로 돌아와, 이상의 PB 4 IO유니트 30_0의 구성에 의해, 도 2에 나타낸는 데이터 읽기 동작에 있어서, 페이지 버퍼 102, 및 컬럼 코딩 회로 103, 및 ECC 컬럼 코딩 회로 108(여기에서는, 데이터 읽기 모듈로 한다)은, 다음에 설명하는 동작을 실행한다. 덧붙여 도 2에 나타내는 PB 4 IO유니트 30_1~30_9에 접속되는 페이지 버퍼의 입출력선(도 4, 도 5에 나타내는 데이터 읽기선 RD)을, 이러한 PB 4 IO유니트의 순서대로, 각각 IO선IO_4~IO_7, IO선IO_8~IO_11, IO선IO_12~IO_15, IO선IO_16~IO_19, IO선IO_20~IO_23, IO선IO_24~IO_27, IO선IO_28~IO_31, IO선IO_32~IO_35, IO선IO_36~IO_39로 한다.
또, Data Bus는, 8 비트폭의 버스이며, 이것들을 데이터 버스 Data_A<7:0>으로 한다. 또, ECC Bus는, 20 비트폭의 버스이며, 이것들을 데이터 버스 Data_B<19:0>으로 한다.
통상 모드( 제2 동작 모드)에서는, 컬럼 코딩 회로 103은, 선택 신호 Sel_A<0>~Sel_A<4>의 5개의 컬럼 주소중 1개의 컬럼 주소를 H레벨, 나머지의 4개의 컬럼 주소를 L레벨로 유지하여, 데이터 읽기 모듈에 대해서 출력한다.
예를 들면, 통상 모드에 대해, 선택 신호 Sel_A<0>~Sel_A<4>의 차례로, 선택 신호를 5회, 데이터 읽기 모듈로 주면, 다음과 같이 IO선IO_0~IO_39의 40 비트의 데이터가 데이터 버스 Data_A<7:0>에 차례차례 읽어 내진다.
선택 신호 Sel_A<0>이 H레벨이 되면, PB 4 IO유니트 30_0, 및 PB 4 IO유니트 30_1은, 각각의 PB제어 회로 60에 있어서의 트랜지스터 61 a가 온 되어, IO선IO_0~IO_7과 데이터 버스 Data_A<7:0>을 접속한다. 이것에 의해, PB 4 IO유니트 30_0, 및 PB 4 IO유니트 30_1은, 데이터 버스 Data_A<7:0>로, 데이터 읽기 신호 Data_Out_A<7:0>(IO선IO_0~IO_7의 데이터)을 출력한다.
다음으로, 선택 신호 Sel_A<1>이 H레벨로 되면, PB 4 IO유니트 30_2, 및 PB 4 IO유니트 30_3은, 각각의 PB제어 회로 60에 있어서의 트랜지스터 61 a가 온 되어, IO선 IO_8~IO_15와 데이터 버스 Data_A<7:0>를 접속한다. 이것에 의해, PB 4 IO유니트 30_2, 및 PB 4 IO유니트 30_3은, 데이터 버스 Data_A<7:0>로, 데이터 읽기 신호 Data_Out_A<7:0>(IO선IO_8~IO_15의 데이터)을 출력한다.
다음에, 선택 신호 Sel_A<2>가 H레벨이 되면, PB 4 IO유니트 30_4, 및 PB 4 IO유니트 30_5는, 각각의 PB제어 회로 60에 있어서의 트랜지스터 61 a가 온 되어, IO선IO_16~IO_23에 데이터 버스 Data_A<7:0>를 접속한다. 이것에 의해, PB 4 IO유니트 30_4, 및 PB 4 IO유니트 30_5는, 데이터 버스 Data_A<7:0>에, 데이터 읽기 신호 Data_Out_A<7:0>(IO선IO_16~IO_23의 데이터)을 출력한다.
다음에, 선택 신호 Sel_A<3>이 H레벨이 되면, PB 4 IO유니트 30_6, 및 PB 4 IO유니트 30_7은, 각각의 PB제어 회로 60에 있어서의 트랜지스터 61 a가 온 되어, IO선IO_24~IO_31에 데이터 버스 Data_A<7:0>(을)를 접속한다. 이것에 의해, PB 4 IO유니트 30_6, 및 PB 4 IO유니트 30_7은, 데이터 버스 Data_A<7:0>에, 데이터 읽기 신호 Data_Out_A<7:0>(IO선IO_24~IO_31의 데이터)을 출력한다.
마지막으로, 선택 신호 Sel_A<4>가 H레벨이 되면(자), PB 4 IO유니트 30_8, 및 PB 4 IO유니트 30_9는, 각각의 PB제어 회로 60에 있어서의 트랜지스터 61 a가 온 되어, IO선IO_32~IO_39에 데이터 버스 Data_A<7:0>을 접속한다. 이것에 의해, PB 4 IO유니트 30_8, 및 PB 4 IO유니트 30_9는, 데이터 버스 Data_A<7:0>에, 데이터 읽기 신호 Data_Out_A<7:0>(IO선IO_32~IO_39의 데이터)을 출력한다.
이와 같이 하여, 선택 신호 Sel_A를 5회, 데이터 읽기 모듈에 공급하면, PB 4 IO유니트 30_0~30_9는, PB제어 회로 60에 의해, IO선IO_0~IO_39를 8개씩, 데이터 버스 Data_A<7:0>에 접속한다. 이것에 의해, 합계 40 비트의 메모리 셀 트랜지스터가 기억하는 데이터를, 비트선, 및 IO선 IO_0~IO_39를 개재하여 Data Bus로 읽어낼 수가 있다.
또, ECC 모드( 제1 동작 모드)에서는, ECC 컬럼 코딩 회로 108은, 선택 신호 Sel_B<0>~Sel_B<1>의 2개의 컬럼 주소 중 1개의 컬럼 주소를 H레벨, 나머지의 하나의 컬럼 주소를 L레벨로 유지하여, 데이터 읽기 모듈에 대해서 출력한다.
예를 들면, ECC 모드에 있어서, 선택 신호 Sel_B<0>~Sel_B<1>의 차례로, 선택 신호를 2회, 데이터 읽기 모듈로 주면, 다음과 같이 IO선IO_0~IO_39의 40 비트의 데이터가 데이터 버스 Data_B<19:0>로 차례로 읽어 내진다.
선택 신호 Sel_B<0>이 H레벨이 되면, PB 4 IO유니트 30_0, 30_2, 30_4, 30_6, 및 30_8은, 각각의 PB제어 회로 60에 있어서의 트랜지스터 61 b가 온 되어, IO선IO_0~IO_3, IO_8~IO_11, IO_16~IO_19, IO_24~IO_27, IO_32~IO_35로 데이터 버스 Data_B<19:0>을 접속한다. 이것에 의해, PB 4 IO유니트 30_0, 30_2, 30_4, 30_6, 및 30_8은, 데이터 버스 Data_B<19:0>에, 데이터 읽기 신호 Data_Out_B<19:0>(IO선IO_0~IO_3, IO_8~IO_11, IO_16~IO_19, IO_24~IO_27, IO_32~IO_35의 데이터)를 출력한다.
다음에, 선택 신호 Sel_B<1>이 H레벨이 되면, PB 4 IO유니트 30_1, 30_3, 30_5, 30_7, 및 30_9는, 각각의 PB제어 회로 60에 대한 트랜지스터 61 a가 온 되어, IO선IO_4~IO_7, IO_12~IO_15,IO_20~IO_23, IO_28~IO_31, IO_36~IO_39로 데이터 버스 Data_B<19:0>을 접속한다. 이것에 의해, PB 4 IO유니트 30_1, 30_3, 30_5, 30_7, 및 30_9는, 데이터 버스 Data_B<19:0>에, 데이터 읽기 신호 Data_Out_B<19:0>(IO선IO_4~IO_7, IO_12~IO_15, IO_20~IO_23, IO_28~IO_31, IO_36~IO_39의 데이터)를 출력한다.
이와 같이 하여, 선택 신호 Sel_B를 2회, 데이터 읽기 모듈에 공급하면, PB 4 IO유니트 30_0~30_9는, PB제어 회로 60에 의해, IO선IO_0~IO_39를 20개씩, 데이터 버스 Data_B<19:0>에 접속한다. 이것에 의해, 합계 40 비트의 메모리 셀 트랜지스터가 기억하는 데이터를, 비트선, 및 IO선 IO_0~IO_39를 개재하여 ECC Bus로 읽어낼 수가 있다.
예를 들면, 통상 모드에서는, IO선IO_0~IO_3, IO_8~IO_11, IO_16~IO_19, IO_24~IO_27, IO_32~IO_35의 데이터는, 선택신호를 5회 주지 않으면, Data Bus에 읽어낼 수가 없었다. 이것에 비해, ECC 모드에서는, 선택 신호를 1회주면(선택 신호 Sel_B<0>을 주면), IO선 IO_0~IO_3, IO_8~IO_11, IO_16~IO_19, IO_24~IO_27, IO_32~IO_35의 데이터를, ECC Bus로 읽어낼 수 있다.
또, 도 7은, 도 1에 나타내는 페이지 버퍼 102, 컬럼 코딩 회로 103, 및 ECC 컬럼 코딩 회로 108에 대응하는 부분의 데이터 기입 동작을 설명하기 위한 도면이다.
데이터 기입 동작에 대해서도, PB 4 IO유니트 30_0의 동작에 의해, 페이지 버퍼 102, 및 컬럼 코딩 회로 103, 및 ECC 컬럼 코딩회로 108(여기에서는, 데이터 기입 모듈로 한다)은, 데이터 기입 동작을 실행한다.
데이터 기입 모듈에서는, 데이터의 전송을 도 2에 나타낸 방향과 역방향으로 처리를 행하는 것이므로, 상세한 설명은 생략한다.
데이터 기입 모듈에 있어서, 예를 들면, 통상 모드에서는, IO선IO_0~IO_3, IO_8~IO_11, IO_16~IO_19, IO_24~IO_27, IO_32~IO_35에 주는 데이터는, 선택 신호를 5회 주지 않으면, Data Bus로부터 기입을 할 수가 없었다. 이에 비해, ECC 모드에서는, 선택 신호를 1회주면(선택 신호 Sel_B<0>을 주면), IO선IO_0~IO_3, IO_8~IO_11, IO_16~IO_19, IO_24~IO_27, IO_32~IO_35에 인가되는 데이터를, ECC Bus로부터 기입할 수가 있다.
이와 같이, 본 실시 형태의 NAND형 플래쉬 메모리 10(반도체 메모리 장치)은, 제1 데이터 버스(데이터 버스 Data_B<19:0>)와, 제1 데이터 버스와 다른 갯수로부터 구성되어 제1의 데이터 버스와는 독립하여 설치되는 제2의 데이터 버스(데이터 버스 Data_A<7:0>)를 구비한다. 제1의 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 제1의 데이터 버스와 같은 갯수의 비트선과 제1 데이터 버스가 접속되어 데이터가 전송된다. 한편, NAND형 플래쉬 메모리 10은, 제2 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선중 제2 데이터 버스와 같은 갯수의 비트선과 제2 데이터 버스를 접속하여 데이터를 전송하는 데이터 전송부(PB 4 IO유니트 30_0~30_9 각각에 있어서의 PB제어 회로 60)를 구비한다.
또, 비트선을, n(n는 p와 q의 공배수이며, p, 및 q는 p>q인 자연수) 개의 비트선으로 하면, 제1 데이터 버스는 p개이며, 제2의 데이터 버스는 q개로 되어, 데이터 전송부는, 제1 동작 모드에서는, (n/p) 개의 주소 신호가 입력되면, p개의 비트선과 p개의 제1 데이터 버스간의 접속을 행한다. 한편, 제2 동작 모드에서는, (n/q) 개의 주소 신호가 입력되면, q 개의 비트선과 제2 데이터 버스와의 접속을 실시한다.
또, NAND형 플래쉬 메모리 10은, 메모리 어레이 101와, 메모리 어레이 101로부터 페이지 단위로 데이터를 읽어내어 메모리 어레이 101로부터 읽어낸 읽기 데이터를 저장하는 페이지 버퍼 82와, 페이지 버퍼 82로부터 전송된 읽기 데이터에 대해서 에러를 정정해, 이 정정된 읽기 데이터를 페이지 버퍼 82에 다시 쓰는 ECC 회로 107(ECC부)과, 페이지 버퍼에 다시 씌여진 읽기 데이터를 출력하는 I/O패드 106(인터페이스부)를 구비하며, ECC Bus는, ECC회로 107에 접속되고 Data Bus는, I/O패드 106에 접속된다.
또, NAND형 플래쉬 메모리 10에 있어서, 페이지 버퍼 82는, I/O 패드 106에 입력된 기입 데이터를 저장하고, ECC 회로 107은, 페이지 버퍼로부터 전송된 기입 데이터에 대해서 패리티 데이터를 생성하여, 패리티 데이터 및 쓰기 데이터를 페이지 버퍼에 다시 기입한다.
이것에 의해, 페이지 버퍼 102로부터 복수의 데이터 버스(본 실시 형태에서는 ECC Bus, Data Bus)를 마련하여, 각각에 대해 독립적인 컬럼 코딩(Column Coding), 즉 주소 제어를 가능하게 할 수가 있다.
본 실시 형태에서는, 페이지 버퍼 102의 입출력선(상기 예로 말하면 IO_0~IO_39)로부터, 즉 페이지 버퍼에 직결한 부분으로부터 독립적인 데이터 버스의 구성, 및 독립적인 주소 제어를 하는 것이 특징이다. 그 때문에, 본 실시 형태에 있어서의 반도체 메모리 장치에서는, 이하에 설명하는 특징적인 효과를 갖게 된다.
(1) 제1 동작 모드(본 실시 형태에서는 ECC 모드)에 대해, 버스폭을 넓혀 고속화할 수 있다. 본 실시 형태의 설명에서는, 1회의 컬럼 주소 입력에 의해, 제2 동작 모드(통상모드)에서는, Data Bus에 8 비트의 데이터를 전송하고, ECC 모드에서는 20 비트의 데이터를 전송하는 경우로 설명했다. 이와 같이, Address_B의 입력(선택신호Sel_B의 PB제어 회로 60로의 입력)에 따라, 즉 페이지 버퍼 102로의 의 컬럼 코딩에 따라서는, 간단하게 버스폭을 넓힐 수가 있다. 예를 들면, 1024개의 PB유니트로 컬럼 주소를 2 주소라 하면, ECC 모드에서는 ECC Bus를 512 bit의 버스폭으로 넓혀 데이터 전송할 수 있다.
또, 페이지 버퍼에 직결한 부분으로부터 독립인 데이터 버스의 구성, 및 독립인 어드레스 제어가 된다. 그 때문에, 종래와 같이, Data Bus의 일부를 공유하여 ECC회로에 데이터를 전송하는 경우에 비해, 고속의 데이터 전송이 가능하게 된다.
특히, 불량의 PB유니트에 대해서는, PB제어 회로 60이 고정 데이터를 ECC Bus를 개재하여 ECC 회로 107에 전송하므로, ECC 처리에 대해 컬럼 치환 회로 104 그리고 구제 처리한 후의 데이터를 ECC Bus를 개재하여 ECC 회로 107에 전송할 필요는 없고, 버스폭의 확대된 ECC Bus의 경로에 컬럼 치환 회로 104를 배치할 필요가 없어진다. 이 때문에, 컬럼 치환 회로 104에서의 구제 처리에 필요로 하는 시간만큼, ECC 처리 시에 페이지 버퍼로부터 ECC 회로로의 데이터 전송 시간을 단축할 수 있다. 또, ECC처리 시에 Data Bus( 제2 데이터 버스)의 버스폭을 확대할 필요는 없어, 컬럼 치환 회로 104의 회로 규모의 증대를 억제할 수 있다.
(2) 주소 제어, 주소 맵의 자유도의 향상
본 실시 형태의 설명에서는, 통상 모드에 대해, 1개의 컬럼 주소로 8 비트의 데이터를 전송할 때, 예를 들면 PB 4 IO유니트 30_0, 30_1에 선택 신호 Sel_A<0>을 공급하고, IO선IO_0~IO_7의 데이터를 Data Bus에 전송하였다. 이것에 대해서, ECC 모드에서는, PB 4 IO유니트 30_0, 30_1에 선택신호 Sel_B<0>, Sel_B<1>으로 다른 주소를 할당하여, 전체 주소에 있어서 일괄적으로 ECC 회로에 데이터 전송을 할 수가 있다. 예를 들면, 통상 데이터와 패리티 데이터가, 통상 모드에 있어서 선택 신호 Sel_A와는 다른 주소로 할당된 경우에도, ECC 모드에 있어서 선택 신호 Sel_B의 같은 주소로 부여할 수가 있어, 통상 데이터와 패리티 데이터를 일괄하여 ECC 회로에 입력할 수 있다. 이와 같이, 제2 동작 모드에 있어서의 주소 제어가 제1 동작 모드에 있어서의 주소 제어에 대해 독립성이 매우 높고, 주소 맵의 자유도를 높게 할 수 있다.
또, 통상 모드에서 컬럼 주소는 선택 신호 Sel_A<0>~Sel_A<4>의 5개에 대해, ECC 모드에서는 컬럼 주소는 선택 신호 Sel_B<0>, Sel_B<1>의 2개가 되었다. 이것은, 통상 모드에 있어서의 규격(User Spec)에서는, 컬럼 주소가 2의 n승이 아닌(이른 바 좋지 않다) 값으로 정해져 있었다고 해도, ECC 모드에서는 address 공간을 2의 n승 등과 같이 좋은 단위 공간으로 변환 가능하다는 것을 의미하고 있다.
이것에 의해, ECC 회로 107의 코드 구성, 예를 들어 코드 길이를 몇 개로 하는지, 곱 encode 하는 경우의 코드 길이 구성의 최적화 등의 과정에 있어서, 자유도를 가지고 설계할 수 있어 보다 최적인 퍼포먼스를 얻어낼 수가 있다.
(3) 설계 변경의 용이화
또 ECC 회로를 내장한 제품을 설계하는 경우, 만일 해당 제품의 파생 제품이며 ECC회로의 내장이 불필요한 제품을 별도 설계하는 것 같은 경우, 데이터 버스(ECC 버스), 어드레스 제어와 관련되는 컬럼 코딩 회로가 ECC 모드와 통상 모드에서는 독립해 있다. 이것에 의해, ECC 모드와 관련되는 회로와 통상 모드와 관련되는 회로간의 분리가 명확하기 때문에, 불필요한 ECC 모드와 관련되는 회로의 삭감이 용이 해져, 설계 변경이 용이하게 된다.
이어서, 도 1에 나타내는 NAND형 플래쉬 메모리의 제1 동작 모드, 및 제2 동작모드에서의 동작에 대해, 페이지 버퍼 102의 개략 구성, 및 동작 플로우 차트(flow chart)를 참조하여로 설명한다. 도 8은, 페이지 버퍼 102를 구성하는 각 페이지 버퍼를 설명하기 위한 도면이다. 또, 도 9는, 페이지 버퍼 102의 동작을 설명하기 위한 플로우 차트이다. 
도 8(a)에는, 페이지 버퍼 102를 구성하는 Main Data(통상 데이터)용의 페이지 버퍼 102 a, Column Repair for Main Data(통상 데이터의 치환 데이터)용의 페이지 버퍼 102 b, ECC Parity(패리티 데이터) 용의 페이지 버퍼 102 c, 및 Parity's Column Repair(패리티 데이터의 치환 데이터) 용의 페이지 버퍼 102 d를 모식적으로 나타내고 있다. 도 8(a)에는, 이러한 페이지 버퍼 102 a~102 d를 구성하는 PB 유니트(도 4, 도 5에 나타내는 PB제어 회로 60, 및 비트 내부 회로 50_0~50_7을 단위로 하는 회로)에 번호를 부여하여 나타내고 있다. 이 번호는, 도 3(b)에 나타내는 Coding, PB 유니트의 위치를 나타내는 선택 신호 Sel_A의 번호이다.
즉, 페이지 버퍼 102 a는, 통상 데이터 용의 PB 유니트로서 256개의 PB 유니트 0~PB 유니트 255를 가지며, 페이지 버퍼 102 b는, 통상 데이터의 치환용의 PB 유니트로서 8개의 PB 유니트 256~PB 유니트 263을 가진다.
또, 페이지 버퍼 102 c는, 패리티 데이터용의 PB 유니트로서 36개의 PB 유니트 264~PB 유니트 299를 가지고, 페이지 버퍼 102 d는, 패리티 데이터 치환용의 PB 유니트로서 8개의 PB 유니트 300~PB 유니트 307을 가진다.
또, 여기에서는, 도 8(b)에 나타내는 것처럼, 페이지 버퍼 102 a의 PB 유니트 1에 접속되는 8개의 비트선, 혹은 해당 8개의 비트선에 접속되는 메모리셀 트랜지스터에 불량이 있는 경우에, 페이지 버퍼 102 b의 PB 유니트 256로 치환하는 예를 나타내고 있다. 또, 도 8(b)에서는, 페이지 버퍼 102 c의 PB 유니트 265에 접속되는 8개 비트선, 혹은 해당 8개의 비트선에 접속되는 메모리셀 트랜지스터에 불량이 있는 경우에, 페이지 버퍼 102 d의 PB 유니트 300로 치환되는 예를 나타내고 있다.
덧붙여 도 8(b)에서 사선으로 나타나 있는 페이지 버퍼 102 b에 있어서의 PB 유니트 257~263은 사용되지 않기 때문에, 이것들은 컬럼 치환 회로 104의 제어에 의해 컬럼 코딩 회로 103가 선택하는 일은 없고, 즉 불활성 상태로 되어 있다. 또, 같은 도 8(b)에 대해 사선으로 나타나 있는 페이지 버퍼 102d에 있어서의 PB 유니트 301~307은 사용되지 않기 때문에, 이것들은 패리티 컬럼 치환 회로 105의 제어에 의해 ECC 컬럼 코딩 회로 108이 선택할 것은 없고, 즉 불활성 상태로 되어 있다.
또, 페이지 버퍼 102 a에 있어서의 PB 유니트 1은, 통상 모드에서는 선택되지 않고, 치환처의 PB 유니트 256이 선택 신호 Sel_A에 의해 선택되어 데이터 읽기 신호 Data_Out_A(PB 유니트 1으로부터 읽어내야할 데이터)가, Data Bus_1, Data Bus_2, 및 Data Bus_3( 제2 데이터 버스)를 개재하여 I/O패드 106으로부터 출력된다. 또, 통상 모드에서는, 기입 데이터가 I/O패드 106으로부터 입력되면), Data Bus_3, Data Bus_2, 및 Data Bus_1을 개재하여 PB 유니트 256로, 데이터 기입 신호 Data_A_In(PB 유니트 1에 기입해야할 데이터)로서 입력된다. 이와 같이, 유저가 컬럼 주소를 공급해 사용할 수 있는 페이지 버퍼의 영역은 페이지 버퍼 102 a의 PB 유니트 0~255까지이다. 즉, 페이지 버퍼 102 b의 PB 유니트 256~263, 페이지 버퍼 102 c의 PB 유니트 264~299, 및 페이지 버퍼 102 d의 PB 유니트 300~307은, 유저가 액세스 할 수 없는 페이지 버퍼의 영역이다.
또, 페이지 버퍼 102 a에 있어서의 PB 유니트 1은, ECC 모드에서 선택 신호 Sel_B에 의해 선택되어 L레벨 또는 H레벨의 어느쪽이든 한편에 고정된 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, 및 ECC Bus_2( 제1 데이터 버스)를 개재하여 ECC 회로 107까지 전송되어 ECC 처리에 이용된다. 또한, 치환처의 PB 유니트 256도 선택 신호 Sel_B에 의해 선택되어 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, ECC Bus_2, 및 ECC Bus_3을 개재하여 ECC 회로 107까지 전송되어 유저로부터 본 PB 유니트 1의 읽기 데이터로서 ECC 처리에 이용된다.
또, ECC 모드에서는, ECC 처리가 종료하면, PB 유니트 1에 다시 쓸 데이터가 ECC Bus_3, ECC Bus_2, 및 ECC Bus_1( 제1 데이터 버스)를 개입하여 PB 유니트 256에, 데이터 기입 신호 Data_B_In으로서 입력된다. 덧붙여 이러한 ECC 처리 후의 데이터중 PB 유니트 0~255의 데이터는, 상술한 바와 같이, 데이터 버스 Data_A를 개재하여 외부로의 에러가 없는 데이터(Clear Data)로서 읽어 내진다.
또, 페이지 버퍼 102 c에 있어서의 PB 유니트 265는, ECC 모드로 선택신호 Sel_B에 의해 선택되어 L레벨 또는 H레벨의 어느 쪽이든 한편에 고정된 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, 및 ECC Bus_2(데이터 버스 Data_B)를 개재하여 패리티 컬럼 치환 회로 105까지 전송된다. 또, 치환처의 PB 유니트 300도 선택 신호 Sel_B에 의해 선택되어 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, 및 ECC Bus_2를 개재하여 패리티 컬럼 치환 회로 105까지 전송되어, 치환 처리를 한다. 이렇게 하여, PB 유니트 300의 출력하는 데이터가, PB 유니트 265의 데이터 읽기 신호로서 ECC Bus_3을 개재하여 ECC 회로 107에 전송되어, ECC 처리에 이용된다.
또, ECC 모드에서는, ECC 처리가 종료하면, PB 유니트 265에 씌여지는 데이터가 ECC Bus_3을 개재하여 패리티 컬럼 치환 회로 105까지 전송되어 치환처리된후, ECC Bus_2, 및 ECC Bus_1( 제1 데이터스)을 개재하여 PB 유니트 300에, 데이터 기입 신호 Data_B_In로서 입력된다. 덧붙여 이러한 ECC 처리 후의 데이터는, 상술한 바와 같이, 데이터 버스 Data_A를 개재하여 외부에 읽어내질 것은 없다.
도 9에 나타내는 플로차트(flow chart)를 참조해, 메모리 셀 트랜지스터로의 데이터 기입동작, 메모리 셀 트랜지스터로부터의 데이터 읽기 동작에 대해 설명한다. 덧붙여 도 9(a)는 데이터 기록 동작(Data In), 도 9(b)는, 데이터 읽기 동작(Data Out), 도 9(c)는, ECC에서의 encode(Encode) 처리 동작, 도 9(d)는 ECC에서의 디코드(Decode) 처리 동작을, 각각 가리키고 있다.
[데이터 기입 동작]
유저가 I/O패드 106을 개재하여 NAND형 플래쉬 메모리 10에, 소정의 커멘드(라이트 커멘드)를 입력하고, 주소(여기에서는, PB 유니트 1을 선택하는 컬럼 주소) 입력하고, 계속해, 기입 데이터를 입력한다(스텝 ST1).
다음에, 통상 데이터의 치환이 실행된다(스텝 ST2). 구체적으로는, 컬럼 치환회로 104의 제어에 의해 컬럼 코딩 회로 103은, PB 유니트 1을 선택하지 않고, 대신에 PB 유니트 256을 선택한다. PB 유니트 256에는 외부로부터의 데이터가 격납된다(스텝 ST3).
다음에, 유저가 소정 시간 경과 후에, 프로그램 실행 커멘드(Program Executuion Command)를 주면(Invoke)(스텝 ST5), 통상 모드(제2 동작 모드)이면, 스텝 ST6으로 진행되어 프로그램 처리(페이지 버퍼로부터 비트선을 개재하여 메모리 셀 트랜지스터에 데이터를 준다)를 실행한다(스텝 ST6). 한편, ECC 모드(제1 동작 모드)이면, 스텝 ST5로 진행하여 ECC의 encode 처리를 실행한다. (스텝 ST5). 구체적으로는 다음의 처리를 실행한다.
여기서, 도 8(c)은, ECC 처리에서의 코드 구성을 나타내고 있다. ECC로서의 Data부는, PB 유니트 0~PB 유니트 263에 격납된 데이터이며, 패리티부(ECC Parity)는, PB 유니트 264~PB 유니트 299에 격납된 데이터로 된다. 덧붙여 PB 유니트 1에 기입해야 할 데이터는, PB 유니트 256에 기입되고 저장되고, PB 유니트 1이외의 PB 유니트 0, PB 유니트 2~255에는, 각기 접속되는 비트선을 개재하여 메모리 셀 트랜지스터가 기억하는 데이터가 읽혀져 저장된다.
PB 유니트 0~ PB 유니트 263에 격납된 데이터가, ECC Bus_1, ECC Bus_2, 및 ECC Bus_3( 제1 데이터 버스)을 개재하여, ECC 회로 107에 입력(Data Load)된다(스텝 ST31).
덧붙여 이 때, 상술한 것처럼, ECC 회로 107에는, PB 유니트 1으로부터는 고정데이터(도 4에 나타내는 PB제어 회로 60이면 L데이터, 도 5에 나타내는 PB제어 회로 60이면 H데이터)가 입력된다. 또, ECC 회로 107에는, PB 유니트 256부터는, PB 유니트 1에 기입된 데이터가 입력되어야 하지만 실제는 PB 유니트 256에 기입된 데이터가 입력된다.
ECC 회로 107은, encode(Encode) 처리를 실행하여, 패리티 데이터를 생성(Parity Generation) 한다(스텝 ST32).
계속하여, ECC 회로 107은, PB 유니트 0~299에 ECC 처리 후의 데이터를 다시 쓰는(Data Store) 처리를 실행한다(스텝 ST33). 덧붙여 이 때, ECC 코딩 회로 108은, 패리티 컬럼 치환 회로 105의 제어에 의해, PB 유니트 265를 비선택으로 하고, PB 유니트 300을 선택한다. 이것에 의해, PB 유니트 265에 다시 쓸 패리티 데이터가 PB 유니트 300에 다시 기입된다. 또, PB 유니트 0~263에는, encode(Encode) 시에 데이터의 다시 쓰기를 하지 않아도 되지만, 같은 데이터(Data)를 다시 기입해도 좋다.
PB 유니트 264~307에는 패리티 데이터가 기입된다. 이와 같이, 도 8(b)에서 사선으로 표시하여 가리키고 있는 불활성 상태에 있는 페이지 버퍼에는, 도 4 또는 도 5에 나타내는 회로에 의해, 기입이 되지 않도록 되어 있다.
계속하여, 각 PB유니트에 대해, 도 6에 나타내는 래치부에 메모리 셀에 기입해야 할 데이터(Data_i)가 래치되었으므로, 메모리 셀 트랜지스터로의 데이터 기록(Program to Memory Cell)처리가 개시된다(스텝 ST6).
각 PB 유니트에서는, 기록이 성공할 때까지, 래치부로부터 메모리 셀에의 데이터 인가가 반복된다(스텝 ST7). 기입이 성공하면, 반복 처리는 종료하고(스텝 ST7-Yes), 기입이 성공하지 않으면, 기록이 성공할 때까지, 스텝 ST6로 돌아와 프로그램 처리가 실행된다(스텝 ST7-No).
[데이터 읽기 동작]
유저가 I/O패드 106을 개재하여 소정의 커멘드(리드 커멘드)를 입력하고, 어드레스(여기에서는, PB 유니트 1을 선택하는 컬럼 주소)를 입력한다(스텝 ST11).
다음에, 각 PB 유니트에 대해, 도 6에 나타내는 비트 내부 회로의 접속점N1에, 메모리 셀 트랜지스터로부터의 데이터(Data_i)가 센싱되고 래치부로 읽어 내진다(스텝 ST12).
또, 비트 내부 회로의 래치부에 Data_i가 래치 된다(스텝 ST13). 그 후, 통상 모드( 제2 동작 모드)이면, 스텝 ST15로 진행되어 센싱 처리가 종료된다(스텝 ST15). 한편, ECC 모드(제1 동작 모드)에서는, 스텝 ST14로 진행되어, ECC의 디코드(Decode) 처리를 실행한다. (스텝 ST14). 구체적으로는 다음의 처리를 실행한다.
PB 유니트 0~PB 유니트 299에 저장된 데이터가, ECC Bus_1,ECC Bus_2, 및 ECC Bus_3( 제1의 데이터 버스)을 개재하여, ECC 회로 107에 입력(Data Load)된다(스텝 ST41). 덧붙여 이 때, 상술한 것처럼, ECC 회로 107에는, PB 유니트 1으로부터는 고정데이터(도 4에 나타내는 PB제어 회로 60이면 L데이터, 도 5에 나타내는 PB제어 회로 60이면 H데이터)가 입력된다. 또, ECC 회로 107에는, PB 유니트 256로부터는, PB 유니트 1에 기입되어야 했지만 실제는 PB 유니트 256에 기입된 데이터가 입력된다. 또, 패리티 컬럼 치환 회로 105에는, PB 유니트 300으로부터는, PB 유니트 265에 기입되어야 했지만 실제는 PB 유니트 300에 기입된 패리티 데이터가 ECC Bus_1, 및 ECC Bus_2를 개재하여 입력되어, 치환 처리된 후, ECC Bus_3을 개재하여 ECC 회로 107로 입력된다.
ECC 회로 107은, 디코드(Decode) 처리를 실행하여, 패리티 데이터에 근거하여, PB 유니트 0~PB 유니트 263에 격납된 데이터의 에러를 정정(Error Correction) 한다(스텝 ST42).
계속하여, ECC 회로 107은, PB 유니트 0~299에 ECC 처리 후의 데이터를 다시 기입(Data Store)하는 처리를 실행한다(스텝 ST43). PB 유니트 0~263에는, ECC 처리 후의 데이터(잘못 정정된 데이터)가 각기 씌여진다. PB 유니트 264~307의 패리티 데이터부에 대해서는 유저가 사용하지 않기 때문에, ECC 처리 후의 데이터(잘못 정정된 데이터)를 재기입할 필요는 없지만, 재기입해도 괜찮다. 패리티 컬럼 치환 회로 105의 제어에 의해, PB 유니트 265를 비선택으로 하고, PB 유니트 300을 선택한다. 이것에 의해, PB 유니트 265에 재기입할 에러 정정 후의 패리티 데이터를 PB 유니트 300에 재기입한다. 이와 같이, 도 8(b)에서 사선으로 가리키고 있는 불활성 상태 페이지 버퍼에는 도 4 또는 도 5에 나타낸 회로에 의해, 기입이 되지 않도록 되어 있다.
계속하여, 각 PB 유니트에 대해, 도 6에 나타낸 래치부에 메모리 셀에 기입해야할 데타(Data_i)가 래치되었으므로, 센싱(Sensing)처리가 종료되고, 읽기 가능한 상태로 이행한다(스텝 ST15).
PB 유니트 0~PB 유니트 255에는, 선택 신호 Sel_A가 입력되고 격납된 데이터가, Data Bus_1, Data Bus_2, 및 Data Bus_3을 개재하여, 읽어 내진다. 이 때, 컬럼 코딩 회로 103은, 컬럼 치환 회로 104의 제어에 의해, PB 유니트 1을 비선택으로 하고, PB 유니트 256을 선택한다.
PB 유니트 256은, PB 유니트 1에 기입되어야 했지만 실제는 PB 유니트 256에 기입된 데이터를 출력한다. 즉, 불량을 가지는 컬럼의 치환(Defect Column Repair)이 실행된다(스텝 ST16).
이와 같이 하여, 유저가 PB 유니트 1을 개재하여 메모리 셀 트랜지스터에 기입된 데이터가, 불량 구제되어 다른 메모리 셀 트랜지스터에 기입되어, 또한 기입된 데이터가 에러 정정되어, I/O패드 106으로부터 출력된다(스텝 ST17).
이상 설명한 것처럼, NAND형 플래쉬 메모리 10(반도체 메모리 장치)은, ECC Bus_1~3( 제1 데이터 버스)과, 제1 데이터 버스와는 다른 갯수로 구성되고, 제1 데이터 버스와는 독립하여 설치되는 Data Bus_1~3(제2 데이터 버스)와, ECC 모드( 제1 동작 모드)에 의해 메모리 셀과의 사이에서 데이터를 전송하는 경우, 복수의 비트선중 제1 데이터 버스와 같은 갯수의 비트선과, 제1 데이터 버스를 접속하여 데이터를 전송하고, 한편, 통상 모드(제2 동작 모드)에 의해 메모리 셀과의 사이에서 데이터를 전송하는 경우, 복수의 비트선중 제2 데이터 버스와 같은 갯수의 비트선과 제2 데이터 버스를 접속하여 데이터를 전송하는 페이지 버퍼 102(데이터 전송부)를 구비한다.
또, 데이터 전송부는, 통상 메모리 셀에 접속되는 비트선의 전위를 증폭하고, 증폭결과를 래치하는 페이지 버퍼 102 a와, 페이지 버퍼 102 a에 접속되는 통상 메모리 셀 또는 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 비트선과 함께 치환되는 페이지 버퍼 102 b와, 패리티 메모리 셀에 접속되는 비트선의 전위를 증폭하고, 증폭 결과를 래치하는 페이지 버퍼 102 c를 포함하여 구성된다. 또, 제2 데이터 버스는, 페이지 버퍼 102 a, 및 페이지 버퍼 102 b와 접속되고, 제1 데이터 버스는, 페이지 버퍼 102 a, 페이지 버퍼 102 b, 및 페이지 버퍼 102 c와 접속된다.
또, 반도체 메모리 장치는, 제1의 데이터 버스에 접속되어 페이지 버퍼 102 c에 접속되는 패리티 메모리 셀 또는 비트선에 불량이 있는 경우에, 패리티 메모리 셀, 및 비트선과 함께 치환되는 페이지 버퍼 102 d와, 제2 데이터 버스에 접속됨과 함께, 페이지 버퍼 102 a중 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼를 페이지 버퍼 102 b와 치환하는 컬럼 치환 회로 104( 제1 구제치환회로)와, 제1 데이터 버스에 접속되는 것과 동시에, 페이지 버퍼 102 c중 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼를 페이지 버퍼 102 d와 치환하는 패리티 컬럼 치환 회로 105( 제2 구제 치환 회로)와, 제1 데이터 버스에 접속함과 동시에, 페이지 버퍼 102 c, 및 페이지 버퍼 102 d의 출력 데이터에 근거하여, 페이지 버퍼 102 a, 및 페이지 버퍼 102 b의 출력 데이터의 에러를 정정하는 ECC 회로 107(ECC 회로)를 갖춘다.
또, 반도체 메모리 장치는, 페이지 버퍼 102 a중 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼의 출력을 고정된 데이터로 하는 PB제어 회로 60(페이지 버퍼 제어 회로)를 가진다.
또, 페이지 버퍼 제어 회로는, 메모리 셀 또는 비트선에 불량이 있는 경우, 제1 데이터 버스로부터의 기입을 허가하지 않는다.
또, 제1 동작 모드에서는, 페이지 버퍼 102 a와, 제2 동작 모드에서의 구제치환을 전제로 해서 존재하는 페이지 버퍼 102 b 중, 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼에 대해서는 구제 치환을 실시하지 않고 , ECC 회로의 입력 데이터로서 취급한다.
또, 비트선을, n(n는 p와 q의 공배수이며, p, 및 q는 p>q인 자연수) 개의 비트선으로 하면, 제1 데이터 버스는 p개이며, 제2 데이터 버스는 q개로 되어, 데이터 전송부는, 제1의 동작 모드에서는, (n/p) 개의 주소 신호가 입력되면, p개의 비트선과 p개의 제1 데이터 버스와의 접속을 행한다. 한편, 제2 동작 모드에서는, (n/q) 개의 주소 신호가 입력되면, q개의 비트선과 제2 데이터 버스와의 접속을 실시한다. 덧붙여 상기 구성은, 논리적 공간에 있던 개념을 전제로 하고 있어, 물리적 비트선수n가 p와 q의 공배수가 아니어도 좋으며, 나머지를 더미 비트선으로서 처리할 수도 있다.
이와 같이, NAND형 플래쉬 메모리 10에 의하면, ECC 회로 107로의 ECC Bus( 제1 데이터 버스)의 버스폭을 넓히기 쉽기 때문에(상기 설명에서는, ECC 회로로의 버스폭은 300 비트), 또, Main Data부의 치환 회로(컬럼 치환회로 104)가 이 ECC Bus의 도중에는 불필요해지기 때문에, ECC 처리에서의 데이터 전송을 고속화할 수가 있다.
또, Main Data부의 치환 회로는 종래와 같이 증대되지 않는 것이므로, 칩 사이즈의 증대를 억제할 수 있어 종래에 비해 제조 시의 코스트를 저감할 수 있는 효과가 있다.
덧붙여 상기 실시 형태에서는, Main Data부의 치환 회로와 비교해, 규모가 작은 패리티 부에 전용의 PCR 치환 시스템(패리티 컬럼 치환 회로 105)을 이용하여 설명했지만, 이 구성은 필수는 아니다. 무엇보다, 패리티 컬럼 치환 회로 105는, 패리티 부의 불량을 구제하는 방법으로서 유용하다. 패리티 컬럼 치환 회로 105를 이용하지 않는 경우에는, 컬럼 1 비트 당 50%(0인가 1인가)의 확률로 1 에러 분의 정정을 할 수 없게 되어 버려, ECC 처리에 있어서의 정정 능력을 해쳐 버린다. 이것에 대해서, 상기 설명과 같이, 패리티 컬럼 치환 회로 105를 이용하여 패리티 부의 불량을 구제하면, ECC 정정 능력을 향상할 수 있다.
그런데, 상술한 NAND형 플래쉬 메모리 10의 구성에서는, 패리티 부의 불량을 치환하기 위해서, 전용의 치환 유니트인 PB_PCR102d(페이지 버퍼 102 d)를 준비할 필요가 있으므로, 칩 사이즈 증대에 의한 제조 코스트의 증가, ECC 시스템으로서의 시스템의 복잡화가 염려된다. 거기서, 페이지 버퍼 102 d의 기능을 PB_CR102b(페이지 버퍼 102 b)에 집약하는 것이 생각된다.
도 10은, NAND형 플래쉬 메모리 20의 블록 구성을 나타내는 도면이다. 덧붙여 블록 20에 대해, 도 1에 나타낸 NAND형 플래쉬 메모리 10과 동일한 부분에는 동일한 부호를 교부하고 그 설명을 적당히 생략한다. NAND형 플래쉬 메모리 20에서는, 도 1에 나타내는 NAND형 플래쉬 메모리 10으로부터 페이지 버퍼 102 d가 제거되어 있다. 페이지 버퍼 102 c를 구성하는 페이지 버퍼 유니트의 하나에 불량이 있을 경우, 이 페이지 버퍼 유니트는, 페이지 버퍼 102 b를 구성하는 페이지 버퍼 유니트 중의 1개와 치환된다.
이와 같이, NAND형 플래쉬 메모리 20에서는, NAND형 플래쉬 메모리 10에 있어서의 페이지 버퍼 102 d의 기능을 페이지 버퍼 102 b에 집약하지만, 이것으로는 ECC 코드로서의 정합성이 얻어지지 않게되는 문제가 있다. 이하에서는 이 문제가 발생하는 동작(동작 1)에 대해 설명한다. 계속하여 이 문제를 해결하기 위하여, 페이지 버퍼 유니트의 구성을 바꾼 실시 예에서의 구성, 및 동작(동작 2)에 대해 상술한다. 덧붙여 동작 1, 및 동작 2에 대한 설명 시에 이용하는 동작 플로우 차트(flow chart)는, 도 9에 나타내는 플로우 차트를 이용하는 것으로 하고, NAND형 플래쉬 메모리 20과 상위한 점에 대해서 설명한다.
여기서, 도 11은, NAND형 플래쉬 메모리 20에 있어서의 페이지 버퍼 102를 구성하는 각 페이지 버퍼를 설명하기 위한 도면이다.
도 11(a)에는, 페이지 버퍼 102를 구성하는 Main Data(통상 데이터) 용의 페이지 버퍼 102 a, CR/PCR(통상 데이터의 치환 데이터, 및 패리티 데이터의 치환 데이터) 용의 페이지 버퍼 102 b, ECC Parity(패리티 데이터) 용의 페이지 버퍼 102 c를 모식적으로 나타내고 있다. 도 11(a)에는, 이것들 페이지 버퍼 102 a~102 c를 구성하는 PB 유니트(도 4, 도 5에 나타내는 PB제어 회로 60, 및 비트 내부 회로 50_0~50_7을 단위로 하는 회로)에 번호를 교부하여 보이고 있다. 이 번호는 PB 유니트의 위치를 나타내는 선택 신호 Sel_A(PB 유니트의 내부 구성을 나타내는 도 3(b)에서는 Coding)의 번호이다.
즉, 페이지 버퍼 102 a는, 통상 데이터용의 PB 유니트로서 256개의 PB 유니트 0~PB 유니트 255를 가지며, 페이지 버퍼 102 b는, 통상 데이터, 및 패리티 데이터의 치환용의 PB 유니트로서 8개의 PB 유니트 256~PB 유니트 263을 가진다. 또, 페이지 버퍼 102 c는, 패리티 데이터용의 PB 유니트로서 36개의 PB 유니트 264~PB 유니트 299를 가진다.
또, 여기에서는, 도 11(b)에 나타내는 것처럼, 페이지 버퍼 102 a의 PB 유니트 1에 접속되는 8개의 비트선, 혹은 해당 8개의 비트선에 접속되는 메모리 셀 트랜지스터에 불량이 있을 경우에, 페이지 버퍼 102 b의 PB 유니트 256로 치환되는 예를 나타내고 있다. 또, 도 11(b)에서는, 페이지 버퍼 102 c의 PB 유니트 265에 접속되는 8개 비트선, 혹은 해당 8개의 비트선에 접속되는 메모리 셀 트랜지스터에 불량이 있을 경우에, 페이지 버퍼 102 b의 PB 유니트 263로 치환되는 예를 나타내고 있다.
덧붙여 도 11(b)에서 사선으로 나타나 있는 페이지 버퍼 102 b에 있어서의 PB 유니트 257~262는 사용되지 않기 때문에, 이것들은 컬럼 치환 회로 104의 제어에 의해 컬럼 코딩 회로 103가 선택할 것은 없고, 즉 불활성 상태로 되어 있다.
또, 페이지 버퍼 102 a에 있어서의 PB 유니트 1은, 통상 모드에서는 선택되지 않고, 치환처의 PB 유니트 256이 선택 신호 Sel_A에 의해 선택되어 데이터 읽기 신호 Data_Out_A(PB 유니트 1으로부터 읽어내야할 데이터)가, Data Bus_1, Data Bus_2, 및 Data Bus_3(제2 데이터 버스)를 개재하여 I/O패드 106으로부터 출력된다. 또, 통상 모드에서는, 기입 데이터가 I/O패드 106으로부터 입력되면, Data Bus_3, Data Bus_2, 및 Data Bus_1을 개재하여 PB 유니트 256에, 데이터 기입 신호 Data_A_In(PB 유니트 1에 기입해야할 데이터)로서 입력된다. 이와 같이, 유저가 컬럼 주소를 공급해 사용할 수 있는 페이지 버퍼의 영역은 페이지 버퍼 102 a의 PB 유니트 0~255까지이다. 즉, 페이지 버퍼 102 b의 PB 유니트 256~263, 및 페이지 버퍼 102 c의 PB 유니트 264~299는, 유저가 액세스 할 수 없는 페이지 버퍼의 영역이다.
또, 페이지 버퍼 102 a에 있어서의 PB 유니트 1은, ECC 모드로 선택 신호 Sel_B에 의해 선택되어 L레벨 또는 H레벨의 어느 쪽이든 한편으로 고정된 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, 및 ECC Bus_2( 제1 데이터 버스)를 개재하여 ECC 회로 107까지 전송되어, ECC 처리에 이용된다. 또, 치환처의 PB 유니트 256도 선택 신호 Sel_B에 의해 선택되어 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, ECC Bus_2, 및 ECC Bus_3을 개재하여 ECC 회로 107까지 전송되어, 유저로부터 본 PB 유니트 1의 읽기 데이터로서 ECC 처리에 이용된다.
또, ECC 모드에서는, ECC 처리가 종료하면, PB 유니트 1에 다시 써야할 데이터가 ECC Bus_3, ECC Bus_2, 및 ECC Bus_1( 제1 데이터 버스)를 개재하여 PB 유니트 256에, 데이터 기입 신호 Data_B_In으로서 입력된다. 덧붙여 이러한 ECC 처리 후의 데이터 중 PB 유니트 0~255의 데이터는, 상술한 바와 같이, 데이터 버스 Data_A를 개재하여 외부에 에러가 없는 데이터(Clear Data)로서 읽어 내진다(리드 아웃).
또, 페이지 버퍼 102 c에 있어서의 PB 유니트 265는, ECC 모드에서 선택신호 Sel_B에 의해 선택되어 L레벨 또는 H레벨의 어느 쪽이든 한편에 고정된 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, 및 ECC Bus_2(데이터 버스 Data_B)를 개재하여, 패리티 컬럼 치환 회로 105까지 전송된다. 또, 치환처의 PB 유니트 263도 선택 신호 Sel_B에 의해 선택되어 데이터 읽기 신호 Data_Out_B가, ECC Bus_1, 및 ECC Bus_2를 개재하여 패리티 컬럼 치환 회로 105까지 전송되어, 치환 처리가 행해진다. 이렇게 하여, PB 유니트 263의 출력하는 데이터가, PB 유니트 265의 읽기 데이터로서 ECC Bus_3을 개재하여 ECC 회로 107에 전송되어, ECC 처리에 이용된다.
또, ECC 모드에서는, ECC 처리가 종료하면, PB 유니트 265에 재기입될 데이터가 ECC Bus_3을 개재하여 패리티 컬럼 치환 회로 105까지 전송되어, 치환 처리된 후, ECC Bus_2, 및 ECC Bus_1( 제1 데이터 버스)을 개재하여 PB 유니트 263에, 데이터 기입 신호 Data_B_In로서 입력된다. 덧붙여 이러한 ECC 처리 후의 데이터는, 상술한 바와 같이, 데이터 버스 Data_A를 개재하여 외부로 출력되지는 않는다.
(동작 1)
도 9에 나타내는 플로우 차트(flow chart)를 참조하여, 메모리 셀 트랜지스터에의 데이터 기입동작, 메모리 셀 트랜지스터로부터의 데이터 읽기 동작(동작 1)에 대해 설명한다. [동작 1에서의 데이터 기입 동작]
유저가 I/O패드 106을 개재하여 NAND형 플래쉬 메모리 10에, 소정의 커멘드(라이트 커멘드)를 입력하고, 주소(여기에서는, PB 유니트 1을 선택하는 컬럼 주소) 입력하고, 계속해, 기입 데이터를 입력한다(스텝 ST1).
다음에, 통상 데이터의 치환이 실행된다(스텝 ST2). 구체적으로는, 컬럼 치환회로 104의 제어에 의해 컬럼 코딩 회로 103은, PB 유니트 1을 선택하지 않고, 대신에 PB 유니트 256을 선택한다. PB 유니트 256에는 외부로부터의 데이터가 격납(스토어 또는 저장)된다(스텝 ST3).
다음에, 유저가 소정 시간 경과 후에, 프로그램 실행 커멘드(Program Executuion Command)를 주면(Invoke)(스텝 ST5), 통상모드(제2 동작 모드)이면, 스텝 ST6으로 진행되어 프로그램 처리(페이지 버퍼로부터 비트선을 개재하여 메모리 셀 트랜지스터에 데이터를 준다)를 실행한다(스텝 ST6). 한편, ECC 모드( 제1 동작 모드)이면, 스텝 ST5로 진행하여 ECC의 encode 처리를 실행한다. (스텝 ST5). 구체적으로는 다음의 처리를 실행한다.
여기서, 도 11(c)은, ECC 처리에서의 코드 구성을 나타내고 있다. ECC로서의 Data부는, PB 유니트 0~PB 유니트 263에 격납된 데이터이며, 패리티 부(ECC Parity)는, PB 유니트 264~PB 유니트 299에 격납된 데이터로 된다. PB 유니트 263은, 유저의 Data가 I/O패드 106으로부터 Data Bus를 경유해 입력되는 것은 아니기 때문에, 초기치(여기에서는, H레벨로 해둔다.)로 되어 있다. 덧붙여 PB 유니트 1에 기입해야 할 데이터는, PB 유니트 256에 기입되고 격납되고, PB 유니트 1이외의 PB 유니트 0, PB 유니트 2~255에는, 각각 접속되는 비트선을 개재하여 메모리셀 트랜지스터가 기억하는 데이터가 읽혀져 격납된다.
PB 유니트 0~PB 유니트 263에 격납된 데이터가, ECC Bus_1, ECC Bus_2, 및 ECC Bus_3(제1 데이터 버스)을 개재하여, ECC 회로 107에 입력(Data Load)된다(스텝 ST31).
덧붙여 이 경우에, 상술한 것처럼, ECC 회로 107에는, PB 유니트 1로부터의 고정데이터(도 4에 나타내는 PB제어 회로 60이면 L데이터, 도 5에 나타내는 PB제어 회로 60이면 H데이터)가 입력된다. 또, ECC 회로 107에는, PB 유니트 256로부터, PB 유니트 1에 기입되어야 했으나 실제로는 PB 유니트 256에 기입된 데이터가 입력된다. 또, ECC 회로 107에는, PB 유니트 263으로부터, 초기치(H레벨)가 입력된다.
ECC 회로 107은, 입력되는 데이터에 대해서 encode(Encode) 처리를 실행하ㅇ여 패리티 데이터를 생성(Parity Generation)한다(스텝 ST32).
계속하여, ECC 회로 107은, PB 유니트 0~299에 ECC 처리 후의 데이터를 다시 쓰는(Data Store)처리를 실행한다(스텝 ST33).
덧붙여 이 때, ECC 코딩 회로 108은, 패리티 컬럼 치환 회로 105의 제어에 의해, PB 유니트 265를 비선택으로 하고, PB 유니트 263을 선택한다. 이것에 의해, PB 유니트 265에 재 기입해야 할 패리티 데이터가 PB 유니트 263에 다시 써진다. 이 예에서는, 문제점을 알기 쉽도록 하기 위해, PB 유니트 263에 다시 쓰는 패리티 데이터가 Low(로)인 것으로 한다.
또, PB 유니트 0~263에는, encode(Encode) 시에는 데이터의 재 쓰기를 하지 않아도 되지만, 같은 데이터(Data)를 다시 써도 괜찮다. 그렇지만, PB 유니트 263에는 이미 PB 유니트 265에 재 기입되었던 패리티 데이터가 치환되고 다시 기입되는 것이어서, 충돌하는 문제가 생겨 버린다. 여기에서는, 데이터의 재 쓰기를 실시하지 않는 것으로 한다.
PB 유니트 264~299에는 패리티 데이터가 기입된다. 이와 같이, 도 11(b)에 서 사선으로 나타낸 바와 같이 불활성 상태에 있는 페이지 버퍼에는, 도 4 또는 도 5에 나타낸 회로에 의해, 기입이 되지 않게 되어 있다.
계속하여, 각 PB유니트에 대해, 도 6에 나타낸 래치부에 메모리 셀에 기입해야할 데이터(Data_i)가 래치 되었으므로, 메모리 셀 트랜지스터에의 데이터 기록(Program to Memory Cell) 처리가 개시된다(스텝 ST6).
각 PB 유니트에서는, 기록이 성공할 때까지, 래치부로부터 메모리 셀에의 데이터 인가가 반복된다(스텝 ST7). 기입이 성공하면, 반복 처리는 종료(스텝 ST7-Yes)하고, 기입이 성공하지 않으면, 기입이 성공할 때까지, 스텝 ST6로 돌아와서 프로그램 처리가 실행된다(스텝 ST7-No).
[동작 1에서의 데이터 읽기 동작]
유저가 I/O패드 106을 개재하여 소정의 커멘드(리드 커멘드)를 입력하고, 어드레스(여기에서는, PB 유니트 1을 선택하는 컬럼 주소)를 입력한다(스텝 ST11).
다음에, 각 PB 유니트에 대해, 도 6에 나타낸 비트 내부 회로의 접속점N1에, 메모리 셀 트랜지스터로부터의 데이터(Data_i)가 센싱되어 래치부로 읽어 내진다(스텝 ST12). 또, 비트 내부 회로의 래치부에 Data_i가 래치 된다(스텝 ST13).
그 후, 통상 모드(제2 동작 모드)이면, 스텝 ST15으로 진행되어 센싱 처리가 종료한다(스텝 ST15). 한편, ECC 모드( 제1 동작 모드)에서는, 스텝 ST14으로 진행되어, ECC의 디코드(Decode) 처리를 실행한다. (스텝 ST14). 구체적으로는 다음의 처리를 실행한다.
PB 유니트 0~PB 유니트 299에 격납된 데이터가, ECC Bus_1, ECC Bus_2, 및 ECC Bus_3( 제1 데이터 버스)을 개재하여, ECC 회로 107에 입력(Data Load)된다(스텝 ST41).
덧붙여 이 때, 상술한 것처럼, ECC 회로 107에는, PB 유니트 1으로부터는 고정 데이터(도 4에 나타내는 PB제어 회로 60이면 L데이터, 도 5에 나타내는 PB제어 회로 60이면 H데이터)가 입력된다. 또, ECC 회로 107에는, PB 유니트 256로부터는, PB 유니트 1에 기입되어야 했지만 실제는 PB 유니트 256에 기입된 데이터가 입력된다.
PB 유니트 263은, encode에 있어서의 패리티 생성시는 초기치 High(하이)로 되어 있지만, PB 유니트 265에 다시 써야 할 패리티 데이터가 PB 유니트 263에 다시 쓰여져 L로 된 데이터가 입력된다. 또, 패리티 컬럼 치환 회로 105에는, PB 유니트 263으로부터는, PB 유니트 265에 기입되어야 했지만 실제는 PB 유니트 263에 기입된 패리티 데이터가 ECC Bus_1, 및 ECC Bus_2를 개재하여 입력되어, 치환 처리된 후, ECC Bus_3을 개재하여 ECC 회로 107에 입력된다.
ECC 회로 107은, 디코드(Decode) 처리를 실행해, 패리티 데이터에 근거하여, PB 유니트 0~PB 유니트 263에 격납된 데이터의 에러를 정정해(Error Correction) 한다(스텝 ST42).
계속하여, ECC 회로 107은, PB 유니트 0~299에 ECC 처리 후의 데이터를 다시 쓰는(Data Store) 처리를 실행한다(스텝 ST43).
PB 유니트 0~263에는, ECC 처리 후의 데이터(잘못 정정된 데이터)가 각기 다시 기입된다. PB 유니트 264~299의 패리티 데이터부에 있어서는 유저가 사용하지 않기 때문에, ECC 처리 후의 데이터(잘못 정정된 데이터)를 다시 쓸 필요는 없지만, 다시 써도 무방하다. 패리티 컬럼 치환 회로 105의 제어에 의해, PB 유니트 265를 비선택으로 하고, PB 유니트 263을 선택한다. 이것에 의해, PB 유니트 265에 다시 써야 할 에러 정정 후의 패리티 데이터를 PB 유니트 263에 재 기입한다.
이와 같이, 도 11(b)에서 사선으로 나타낸 바와 같이 불활성 상태 페이지 버퍼에는 도 4 또는 도 5에 나타내는 회로에 의해, 기입이 되지 않도록 되어 있다.
계속하여, 각 PB유니트에 대해, 도 6에 나타내는 래치부에 메모리 셀에 기입해야 할 데이터(Data_i)가 래치 되었으므로, 센싱(Sensing) 처리가 종료하여, 읽기 가능한 상태로 이행 한다(스텝 ST15).
PB 유니트 0~PB 유니트 255에는, 선택 신호 Sel_A가 입력되어 격납할 데이터가, Data Bus_1, Data Bus_2, 및 Data Bus_3를 개재하여, 읽어 내진다. 이 때, 컬럼 코딩 회로 103은, 컬럼 치환 회로 104의 제어에 의해, PB 유니트 1을 비선택으로 하고, PB 유니트 256을 선택한다.
PB 유니트 256은, PB 유니트 1에 기입되어야 했지만 실제는 PB 유니트 256에 기입된 데이터를 출력한다. 즉, 불량을 가지는 컬럼의 치환(Defect Column Repair)이 실행된다(스텝 ST16).
이와 같이 하여, 유저가 PB 유니트 1을 개재하여 메모리 셀 트랜지스터에 기입된 데이터가, 불량 구제되어 다른 메모리 셀 트랜지스터에 기입되어, 게다가 기입된 데이터가 에러 정정되어, I/O패드 106으로부터 출력된다(스텝 ST17).
이상 설명한 동작 1에서의 디코드 시에 문제가 되는 것은, PB 유니트 263으로부터 ECC회로 107에 입력되는 데이터가 본래 H였지만, 패리티 데이터의 치환처가 되었기 때문에, L로 변화해 버린다. 결과적으로, ECC 회로 107에 있어서 에러 비트로서 판정되어 버리는 것이다. 본래, PCR 치환은, 불량 PB유니트가, ECC 회로 107에 대해 에러 비트로서 판정, 정정되는 것으로, 정정 능력이 저하해 버리는 것을 방지하는 역할을 가지지만, 이 결과에서는 PB 유니트 263의 데이터부가 에러 비트로서 판정해 버리므로, PCR 치환의 메리트를 해쳐 버리고 있다.
거기서, 이하에 설명하는 NAND형 플래쉬 메모리 20의 구성에서는, 우선, 상술의 동작 1에 대해 설명한 것처럼, ECC의 Parity부(페이지 버퍼 102 c에 대응)의 불량 비트선을, ECC의 Data부로서 할당되어 있는 Main CR부(페이지 버퍼 102 b에 대응)로 치환할 수 있는 구성을 가진다. 또, NAND형 플래시 메모리 20의 구성에서는, 상기 동작 1에 대해 설명한 문제점을 해소하기 위하여, ECC의 코드내의 PB 유니트(페이지 버퍼 102 b에 대응)에 대해, ECC의 Data부로 할당할지, ECC의 Parity부의 불량 비트선의 치환처로서 할당할지를 선택할 수 있는 구성을 가진다.
도 12는, 페이지 버퍼 102 b에 있어서의 PB 유니트의 내부의 회로 구성을 나타내는 도면이다. 도 12에 대해, 도 5로 동일한 부분에 대해서는 동일한 부호를 교부해, 그 설명한 상세는 생략한다. 도 12에 나타내는 PB 유니트는, 도 5에 나타내는 PB 유니트에 대해서, CR/PCR Info. (CR·PCR 정보 격납부) 70과 CR/PCR Selector(CR·PCR 실렉터부) 75를 추가한 구성으로 되어 있다. CR·PCR 정보 격납부 70은, 이 PB 유니트가 CR용(Main의 불량 비트 구제용, 즉 페이지 버퍼 102 a의 PB 유니트 구제용)과 PCR용(Parity의 불량 비트 구제용, 즉 페이지 버퍼 102 c의 PB 유니트 구제용)의 어느 쪽이든 한편에 할당되었는 지를 나타내는 정보를 저장한다. 또, CR·PCR 실렉터부 75는, CR·PCR정보 격납부 70이 저장하는, PB 유니트가 CR용과 PCR용의 어느쪽이든 한편에 할당되었는 지를 나타내는 정보에 근거하여, 읽기 ECC 데이터 버스, 또는 기입 ECC 데이터 버스와 PB 유니트와의 접속을 절체한다.
여기서, 읽기 ECC 데이터 버스란, ECC_Bus 가운데, 데이터 읽기 신호 Data_Out_B_CR를 전송 하는 버스(이하, Data_Out_B_CR버스라 한다)와 데이터 읽기 신호 Data_Out_B_PCR를 전송 하는 버스(이하, Data_Out_B_PCR 버스라 한다)이다. 또, 기입 ECC 데이터 버스란, ECC_Bus 가운데, 데이터 기입 신호 Data_In_B_CR를 전송 하는 버스(이하, Data_In_B_CR버스라 한다)와 데이터 기입 신호 Data_In_B_PCR를 전송하는 버스(이하, Data_In_B_PCR 버스라고 한다)이다.
우선, 도 12를 참조하여, CR·PCR 정보 격납부 70의 회로 구성에 대해 설명하고, 이의 CR·PCR 정보 격납부 70으로의 전원 투입시에 있어서의 데이터 래치 처리에 대해 설명한다. 덧붙여 이 데이터 래치 처리는 일례이며, 이 일례에서는, 선택 신호 Sel_A에 관련된 불량 정보를, NAND형 플래쉬 메모리 20의 예를 들면 시스템용 기억 영역에 기록하고, 이것을 불량 정보 격납부 90 a에 대응하는 래치, 및 CR·PCR 정보 격납부 70으로 전송하는 동작을 설명한다. 덧붙여 불량 정보 격납부 90 a의 회로 구성에 대해서는, 도 4, 및 도 5를 이용해 설명했으므로, 그 설명을 생략한다.
또, 비트선에 불량이 있는 경우, 및 없는 경우에 대한 불량 정보 격납부 90 a의 동작은, PB유니트 0~255(페이지 버퍼 102 a), 및 PB 유니트 264~299(페이지 버퍼 102 c)에 관해서는, 도 4, 및 도 5를 이용해 설명한 것과 같으며, 변경은 없다.
한편, PB유니트 256~263(페이지 버퍼 102 b)에 관해서는, PB유니트가 도 12에 나타내는 타입으로 되고, 불량 비트선의 치환처라고 하는 것으로부터, 기본적으로는 이들 유니트는 불량이 없는 것으로서 설명을 실시한다. 다만, 실제로는, 이들 유니트에도 불량이 발생할 가능성은 있지만, 그러한 경우는, 제조 후의 웨이퍼 테스트등에 대해, 불량을 검출하여 불량 비트로서 취급하고, 한편, 페이지 버퍼 102 a, 및 페이지 버퍼 102 c의 치환처로서의 할당을 하지 않는 것에 의해 대응할 수 있다.
CR·PCR 정보 격납부 70은, 인버터 회로 112, 인버터 회로 113, 트랜지스터 114, 트랜지스터 115, 트랜지스터 116, 및 트랜지스터 117로 구성된다. 여기서, 트랜지스터 114, 트랜지스터 115, 트랜지스터 116, 및 트랜지스터 117은, N채널형 MOS 트랜지스터이다.
CR·PCR 정보 격납부 70에 대해, 래치부는, 인버터 회로 112와 인버터 회로 113로 구성되어 있다. 여기서, 인버터 회로 112는, 출력 단자가 접속점N6에 대해 인버터 회로 113의 입력 단자에 접속되고 입력 단자가 접속점N5에 대해 인버터 회로 113의 출력 단자에 접속되고 있다.
이 접속점N5에는, 래치부가 기억하는 데이터가, 읽기 ECC 데이터 버스를 Data_Out_B_CR버스로 바꾸는 전환 신호 Sel_CR로서 나타난다. 또, 접속점N6에는, 래치부가 기억하는 데이터가, 읽기 ECC 데이터 버스를 Data_Out_B_PCR 버스로 바꾸는 전환 신호 Sel_PCR로서 나타난다.
CR·PCR 정보 격납부 70에 대해, 센싱부는, 트랜지스터 114, 트랜지스터 115, 트랜지스터 116, 및 트랜지스터 117로 구성된다.
트랜지스터 114는, 드레인이 접속점N5에 접속되고 게이트가, 패리티 어드레스 신호 Parity_Addr(불량 해당 Address가 Parity 영역내에 있는 경우에 H레벨이 되는 신호)의 배선에 접속되며 소스가 트랜지스터 115의 드레인에 접속되어 있다.
트랜지스터 115는, 드레인이 트랜지스터 114의 소스에 접속되고 게이트가 불량 정보 신호 SDI의 배선에 접속되며 소스가 트랜지스터 117의 드레인에 접속되어 있다.
트랜지스터 116은, 드레인이 접속점N6에 접속되고 게이트가 불량 정보 신호 nSDI의 배선에 접속되며 소스가 트랜지스터 117의 드레인에 접속되어 있다.
트랜지스터 117은, 드레인이 트랜지스터 115의 소스, 및 트랜지스터 116의 소스에 접속되고 게이트가 파워 온 리세트 신호 POR_Mode의 배선에 접속되며 소스가 접지되어 있다.
여기서, 불량 정보 신호 SDI, 및 불량 정보 신호 nSDI는, PB제어 회로 60에 접속되는 비트선, 해당 비트선에 접속되는 메모리 셀 트랜지스터에 불량이 있는지 아닌지를 나타내는 신호이다. 이러한 불량 정보 신호는, 제조 후의 테스트에 대해, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, 불량 정보 신호 SDI가 데이터 0(L레벨), 불량 정보 신호 nSDI가 데이터 1(H레벨)으로 되고, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, 불량 정보 신호 SDI가 H레벨, 불량 정보 신호 nSDI가 L레벨로 된다.
그리고, 이러한 불량 정보 신호는, 테스트 후의 제품 출하 전에 있어서, PB제어 회로 60의 위치를 나타내는 선택 신호 Sel_A와 관련지을 수 있어, NAND형 플래쉬 메모리 20의 예를 들면 시스템용 기억 영역에 격납된다. 또, 파워 온 리세트 신호 POR_Mode는, NAND형 플래쉬 메모리 20의 전원 투입 후의 소정 기간(불량 정보 신호를 시스템용 기억 영역에서 PB제어 회로 60로 전송하는 기간)에, H레벨을 유지하는 신호이다.
이상의 구성에 의해, 불량 정보 격납부 90 a, 및 CR·PCR 정보 격납부 70은, NAND형 플래쉬 메모리 20의 전원 투입 후에, PB제어 회로 60에 접속되는 비트선 등에 불량이 있는 경우, 파워 온 리세트 신호 POR_Mode, 패리티 주소 신호 Parity_Addr가 H레벨이 되는 것에 의해, 트랜지스터 94와 트랜지스터 115, 및 트랜지스터 116의 한편이 오프, 트랜지스터 95와 트랜지스터 115, 및 트랜지스터 116의 다른 편이 온 한다. 이것에 의해, 노드 N3와 노드 N5, 및 노드 N6의 한편이 H레벨, 노드 N4와 노드 N5, 및 노드 N6의 다른 편이 L레벨이 되어, 결함 신호 PB_Defcet와 전환 신호 Sel_CR, 및 전환 신호 Sele_PCR의 한편이 H레벨이 된다. 그리고, 불량 정보 격납부 90 a, 및 CR·PCR 정보 격납부 70은, 전송기간 종료후, 파워 온 리세트 신호 POR_Mode가 L레벨이 되는 것에 의해, 이후의 NAND형 플래쉬 메모리 20에 전원이 투입되고 있는 기간, 결함 신호 PB_Defcet와 전환 신호 Sel_CR, 및 전환신호 Sele_PCR의 한편을 H레벨로 유지한다. 즉, 이 경우는 CR·PCR정보 격납부 70의 래치 데이터에 관련됨이 없이, 도 4, 및 도 5에 대해 설명했을 때와 같이, 선택 신호 Sel_B에 의한 ECC Bus로부터의 데이터 기입 신호 Data_In_B의 기입을 금지하여, ECC Bus로의 데이터 읽기 신호 Data_Out_B_CR의 읽기에 대해서는 고정치 H를 출력한다.
또, CR·PCR 정보 격납부 70은, NAND형 플래쉬 메모리 20의 전원 투입 후에, PB제어 회로 60에 접속되는 비트선 등에 불량이 없는 경우, 파워 온 리세트신호 POR_Mode가 H레벨이 되는 것에 의해, 트랜지스터 94가 온, 트랜지스터 95가 오프 한다. 이것에 의해, 노드 N3가 L레벨, 노드 N4가 H레벨이 되어, 결함 신호 PB_Defcet가 L레벨이 된다. 그리고, 불량 정보 격납부 90 a는, 전송기간 종료후, 파워 온 리세트 신호 POR_Mode가 L레벨이 되는 것에 의해, 이후 NAND형 플래쉬 메모리 20에 전원이 투입되고 있는 동안, 결함 신호 PB_Defcet를 L레벨로 유지한다.
한편, CR·PCR 정보 격납부 70에 대해서는, 이 예에서는 전원 투입 후의 래치 처리에 대한 초기치의 설정을 노드 N5(전환 신호 Sel_CR)가 H레벨이 되도록 설정하는 것으로 한다. 파워 온 리세트 신호 POR_Mode가 H레벨이 되는 것에 의해, 트랜지스터 115가 온, 트랜지스터 116이 오프된다. 이것에 의해, 패리티 어드레스 신호 Parity_Addr가 H레벨(PB 유니트(CR/PCR 유니트)의 치환원의 불량 비트 주소가 Parity 영역이면 H레벨이 된다)이면, 노드 N5(전환 신호 Sel_CR)가 L레벨, 노드 N6(전환 신호 Sel_PCR)이 H레벨이 된다. 한편, 패리티 주소 신호 Parity_Addr가 L레벨(치환원의 불량 비트 주소가 Parity 영역이 아니면 L레벨이 된다)이면, 노드 N5(전환 신호 Sel_CR)가 H레벨, 노드 N6(전환 신호 Sel_PCR)이 L레벨로 된다. 그리고, 불량 정보 격납부 90 a는, 전송기간 종료 후, 파워온 리세트 신호 POR_Mode가 L레벨이 되는 것에 의해, 이후의 NAND형 플래쉬 메모리 10에 전원이 투입되고 있는 동안에, 결함 신호 PB_Defcet를 L레벨로 유지한다. 이와 같이, CR·PCR 정보 격납부 70은, PB유니트가 CR용의 PB 유니트로서 설정되었을 경우에는, 전환 신호 Sel_CR가 H레벨, PCR용의 PB 유니트로서 설정되었을 경우는, 전환 신호 Sel_PCR가 H레벨이 되도록 동작한다.
또, CR·PCR 실렉터부 75는, 이하의 회로 구성을 가지고 있다. CR·PCR 셀렉터부 75는, 트랜지스터 118, 트랜지스터 119, 트랜지스터 120, 및 트랜지스터 121로 구성된다. 이러한 트랜지스터는, N채널형 MOS 트랜지스터이다.
트랜지스터 118은, 드레인이 트랜지스터 61 c의 소스, 게이트가 전환 신호 Sel_CR의 배선에 접속되어, 소스가 Data_Out_B_CR버스(데이터 읽기 신호 Data_Out_B_CR를 전송 하는 배선)에 접속된다.
트랜지스터 119는, 드레인이 트랜지스터 61 c의 소스, 게이트가 전환 신호 Sel_PCR의 배선에 접속되어, 소스가 Data_Out_B_PCR 버스(데이터 읽기 신호 Data_Out_B_PCR를 전송 하는 배선)에 접속된다.
도 5에 나타낸 PB 유니트의 경우, 트랜지스터 61 c의 소스는 ECC Bus(제1 데이터 버스)에 접속되어 있고, ECC Bus에는 Pull Up회로가 접속되어 있다. 그리고, ECC Bus(이하, Data_Out_B버스라고도 하기)에는, 제1 동작 모드의 읽기 동작에 있어서 PB 유니트로부터의 데이터 읽기 신호 Data_Out_B가 읽어 내진다. 도 12에 있어서는, 트랜지스터 61 c의 소스에, 데이터 읽기 신호 Data_Out_B가 읽어 내지는 것으로 한다. 또, Data_Out_B_CR버스, Data_Out_B_PCR 버스에는, Pull Up회로가 접속되어 있다.
트랜지스터 120은, 드레인이 트랜지스터 69의 소스(도 5에서는 스윗치 69의 제2 입력 단자), 게이트가 전환 신호 Sel_CR의 배선에 접속되어, 소스가 Data_In_B_CR버스(데이터 기입 신호 Data_In_B_CR를 전송 하는 배선)에 접속된다.
트랜지스터 121은, 드레인이 트랜지스터 69의 소스, 게이트가 전환 신호 Sel_CR의 배선에 접속되어, 소스가 Data_In_B_CR버스(데이터 기입신호 Data_In_B_CR를 전송 하는 배선)에 접속된다.
도 5에 나타낸 PB 유니트의 경우, 스윗치 69의 제2 입력 단자는 ECC Bus(제1 데이터 버스)에 접속되고 있다. 그리고, ECC Bus(이하, Data_In_B버스라고도 한다)로부터, 제1 동작 모드의 기입 동작에 대해 트랜지스터 69의 소스에 데이터 기입 신호 Data_In_B가 기입된다. 도 12에 대해서는, 트랜지스터 69의 소스에, 데이터 기입 신호 Data_Out_B가 기입해지는 것으로 한다.
덧붙여 도 12에 대해, CR·PCR 정보 격납부 70와 CR·PCR 셀렉터부 75는, 도 5에 나타내는 PB 유니트에 추가하는 구성이 되고 있지만, 도 4에 나타내는 PB 유니트에 추가하는 구성이어도 좋다. 또, CR·PCR 정보 격납부 70와 CR·PCR 셀렉터부 75는, 회로 배치적으로 PB 유니트에 넣어질 필요는 없고, PB 유니트와는 개별적으로 이루어지는 구성이라고 해도 좋다. 또, CR·PCR 정보 격납부 70은, 다른 등가적인 논리회로, 예를 들면 플립 플롭 등에 의해도 구성 가능하다.
계속하여, 이상과 같은 구성을 가지는 PB 유니트의 회로 동작에 대해 설명한다. 또한, 제2 동작 모드(선택 신호 Sel_A로 선택되는 Data Bus)의 회로 동작에 대해서는, 도 4, 및 도 5를 이용해 설명되었으므로, 여기서의 설명을 생략한다. 여기서는, 제1 동작 모드(선택 신호 Sel_B로 선택되는 ECC Bus)에 대해 설명하지만, 데이터 읽기 신호 Data_Out_B를 읽어 내거나 혹은 데이터 기입신호 Data_In_B를 기입하는 동작의 설명은 생략한다.
(도 12에 나타내는 PB 유니트의 회로 동작)
(1) 데이터 읽기 시(PB활성화시)
데이터 읽기 신호 Data_Out_B의 배선에는, 메모리 셀로부터 센싱한 읽기 데이터(읽기 신호 RD)가 입력된다. 이 PB유니트가 CR용이면 절체신호 Sel_CR가 H레벨이므로, Data_Out_B_CR버스에는, 읽기 신호 RD가 데이터 읽기 신호 Data_Out_B_CR로서 출력된다.
한편, Data_Out_B_PCR 버스에는, Pull Up회로에 의한 고정치 H가 출력된다. 
반대로, 이 PB유니트가 PCR용이면, 전환 신호 Sel_PCR가 H레벨로 되어, Data_Out_B_PCR 버스에는, 읽기 신호 RD가 Data_Out_B_PCR로서 출력된다. 한편, Data_Out_B_CR버스에는, Pull Up회로에 의한 고정치 H가 출력된다.
(2) 데이터 기입시(PB활성시)
이 PB유니트가 CR용이면, 전환 신호 Sel_CR가 H레벨이므로, Data_In_B_CR버스로부터의 데이터 기입 신호 Data_In_B_CR가, 도 12에 나타내는 데이터 기입 신호 Data_In_B의 배선에 기입된다.
반대로, 이 PB 유니트가 PCR용이면, 전환 신호 Sel_PCR가 H레벨로 되어있으므로, Data_In_B_PCR 버스로부터의 데이터 기입 신호 Data_In_B_PCR가, 도 12에 나타내는 데이터 기입 신호 Data_In_B의 배선에 기입된다.
(3) 데이터 읽기시(PB불활성시)
결함 nPB_Defect가 L레벨이므로, 트랜지스터 61 c가 오프하고, CR용과 PCR용의 어느 PB 유니트로 설정되어 있어도, Data_Out_B_CR버스, 및 Data_Out_B_PCR 버스에는, Pull Up회로에 의한 고정값 H가 출력된다.
(4) 데이터 기입시(PB불활성시)
도 4, 및 도 5를 이용해 설명한 것처럼, CR용과 PCR용과의 어느 PB 유니트로 설정되어 있어도, 데이터 기입 신호 Data_In_B의 배선에는 기입되지 않는다.
페이지 버퍼 유니트의 구성을 변경한 실시 예에서의 동작(동작 2)에 대해 설명한다.
이 동작 설명에서는, 동작 1에 대해 설명했을 경우와 같이, ECC 처리에서의 코드 구성에 대해서는 도 11(c)에 나타낸 것을 이용한다. 또, 도 11(a)에 나타낸 페이지 버퍼 102 b의 PB 유니트 256~263에 대해서는, 상술한 도 5에 나타낸 PB 유니트를 배치한다. 덧붙여 페이지 버퍼 102 a의 PB유니트 0~255(Main Data부), 및 PB 유니트 264~299(Parity부)는, 도 4, 및 도 5에 나타낸 PB 유니트를 이용하면 좋다.
또, 도 13은, 페이지 버퍼 102, 패리티 컬럼 치환 회로 105, 및 ECC 회로 107에 대응하는 부분의 제1의 동작 모드에서의 동작을 설명하기 위한 도면이다.
도 13은, 도 10에 나타내는 NAND형 플래쉬 메모리 20에 대해, 제1 동작 모드 그리고 사용하는 페이지 버퍼 102, 패리티 컬럼 치환 회로 105, 및 ECC 회로 107의 부분을, 아래와 같이 설명하는 동작 2의 설명을 위해서 고쳐서 도시한 것이다.
덧붙여 도 13에 있어서, 컬럼 코딩부 108은 생략되어 있다. 또, 페이지 버퍼 102 a(Main Data용의 PB 유니트 0~255)와 페이지 버퍼 102 b(PB CR/PCR용 PB 유니트 256~263)의 합계 264개의 PB 유니트가, ECC Bus에 의해 ECC 회로 107의 Data부 0~263에 1 대 1로 접속되고 있다.
이 ECC Bus 가운데, PB 유니트 0~255 각각과, ECC 회로 107의 Data부 0~255 각각에 대응하는 ECC Bus를, Data_In_B(Main)버스, Data_Out_B(Main) 버스라고 부르는 것으로 한다. Data_In_B(Main) 버스는, 데이터 기입 신호 Data_In_B(Main)가 전송되는 버스이며, Data_Out_B(Main) 버스는, 데이터 읽기 신호 Data_Out_B(Main)가 전송되는 버스이다.
또, PB 유니트 256~263 각각과, ECC 회로 107의 Data부 256~263 각각에 대응하는 ECC Bus를, 위에서 설명한 바와 같이, Data_In_B_CR 버스, Data_Out_B_CR버스라고 부르는 것으로 한다. Data_In_B_CR 버스는, 데이터 기입 신호 Data_In_B_CR가 전송 되는 버스이며, Data_Out_B_CR버스는, 데이터 읽기 신호 Data_Out_B_CR가 전송되는 버스이다.
또, Parity용 PB 유니트 264~299의 36개의 PB유니트 각각과 ECC 회로 107의 Parity부 264~299 각각이, 1대 1로 대응하고 있는 것으로 한다. 즉, Parity용 PB 유니트 264~299의 PB유니트 각각과, 패리티 컬럼 치환 회로 105로에 대응하는 ECC Bus(ECC Bus_1, 및 ECC Bus_2;도 10 참조)를, Data_In_B(Parity) 버스, Data_Out_B(Parity) 버스라고 부르는 것으로 한다. 또, 패리티 컬럼 치환회로 105와 ECC 회로 107의 Parity부 264~299 각각과에 대응하는 ECC Bus(ECC Bus_3;도 10 참조)를, Data_In_B_MUX 버스, Data_Out_B_MUX 버스라고 부르는 것으로 한다. Data_In_B(Parity)버스, 및 Data_In_B_MUX 버스는, 데이터 기입 신호 Data_In_B(Parity)가 전송 되는 버스이며, Data_Out_B(Parity) 버스, 및 Data_Out_B_MUX 버스는, 데이터 읽기 신호 Data_Out_B(Parity)가 전송 되는 버스이다.
또, PB 유니트 256~263 각각과 패리티 컬럼 치환 회로 105에 대응하는 ECC Bus(ECC Bus_1, 및 ECC Bus_2;도 10 참조)를, 상술한 대로, Data_In_B_PCR 버스, Data_Out_B_PCR 버스라고 하는 것으로 한다. Data_In_B_PCR 버스는, 데이터 기입 신호 Data_In_B_PCR가 전송되는 버스이며, Data_Out_B_PCR 버스는, 데이터 읽기 신호 Data_Out_B_PCR가 전송되는 버스이다.
즉, PB CR/PCR부(PB 유니트 256~263)는, 도 12에 나타내는 PB 유니트가 배치되고 있어 Data_In_B_CR버스는 ECC 회로 107의 Data부에, Data_In_B_PCR 버스는 패리티 컬럼 치환 회로 105에 접속되고, Data_Out_B_CR버스는 ECC 회로 107의 Data부에, Data_Out_B_PCR 버스는, 패리티 컬럼 치환 회로 105에 접속되고 있다.
이상의 구성을 정리하면, 도 13을 참조하여, NAND형 플래쉬 메모리 20의 페이지 버퍼 102는, 페이지 버퍼 102 a, 페이지 버퍼 102 b, 및 페이지 버퍼 102 c를 갖추고 있다.
페이지 버퍼 102 a는, 도 4, 또는 도 5에 예시하는 통상 데이터용의 PB 유니트로서 256개의 PB 유니트 0~PB 유니트 255를 가지고 있다. 또, 페이지 버퍼 102 b는, 통상 데이터의 치환용 또는 패리티 데이터의 치환용으로서 사용 가능한, 도 12에 예시하는 CR/PCR PB유니트로서 8개의 PB 유니트 256~PB 유니트 263을 가진다. 또, 페이지 버퍼 102 c는, 패리티 데이터용의 PB 유니트로서 36개의 PB 유니트 264~PB 유니트 299를 가진다.
또, 여기에서는, 도 11(b)에 나타내는 것처럼, 페이지 버퍼 102 a의 PB 유니트 1에 접속되는 8개의 비트선, 혹은 해당 8개의 비트선에 접속되는 메모리 셀 트랜지스터에 불량이 있을 경우에, 페이지 버퍼 102 b의 PB 유니트 256로 치환되는 예를 나타내고 있다. 이 때, PB 유니트 256의 CR·PCR 정보 격납부 70에는, 전환 신호 Sel_CR가 H레벨이 되는 래치 데이터가 저장되고 있다(저장시키는 방법은 전원 투입 시 등의 순서를 이용하는 것으로서 상술했다).
또, 도 11(b)에서는, 페이지 버퍼 102 c의 PB 유니트 265에 접속되고 8개 비트선, 혹은 해당 8개의 비트선에 접속되는 메모리 셀 트랜지스터에 불량이 있는 경우에, 페이지 버퍼 102 b의 PB 유니트 263에 치환되는 예를 나타내고 있다. 이 때, PB 유니트 263은, PCR의 치환처가 되므로, CR·PCR정보 격납부 70에는, 전환 신호 Sel_PCR가 H레벨이 되는 래치 데이터가 저장되어 있다.
덧붙여 도 11(b)에서 사선으로 나타내고 페이지 버퍼 102 b에 있어서의 PB 유니트 257~262는 사용되지 않기 때문에, 이것들은 컬럼 치환 회로 104의 제어에 의해 컬럼 코딩 회로 103이 선택할 것은 없고, 즉 불활성 상태로 되어 있다.
또, 페이지 버퍼 102 a에 있어서의 PB 유니트 1은, 통상 모드에서는 선택되지 않고, 치환처의 PB 유니트 256이 선택 신호 Sel_A에 의해 선택되어 데이터 읽기 신호 Data_Out_A(PB 유니트 1으로부터 읽어내야할 데이터)가, Data Bus_1, Data Bus_2, 및 Data Bus_3( 제2 데이터 버스)를 개재하여 I/O패드 106으로부터 출력된다. 또, 통상 모드에서는, 기입 데이터가 I/O패드 106으로부터 입력되면, Data Bus_3, Data Bus_2, 및 Data Bus_1을 개재하여 PB 유니트 256로, 데이터 기입 신호 Data_A_In(PB 유니트 1에 기입해야할 데이터)로서 입력된다. 이와 같이, 유저가 컬럼 주소를 공급하여 사용할 수 있는 페이지 버퍼의 영역은 페이지 버퍼 102 a의 PB 유니트 0~255까지이다. 즉, 페이지 버퍼 102 b의 PB 유니트 256~263, 및 페이지 버퍼 102 c의 PB 유니트 264~299은, 유저가 액세스 할 수 없는 페이지 버퍼의 영역이다.
또, 페이지 버퍼 102 a에 있어서의 PB 유니트 1은, ECC 모드에서 선택 신호Sel_B에 의해 선택되어 L레벨 또는 H레벨의 어느 쪽이든 한편으로 고정된 데이터읽기 신호 Data_Out_B(Main)가, Data_Out_B(Main)버스(ECC Bus_1, ECC Bus_2, 및 ECC Bus_3;제1의 데이터 버스)를 개재하여 ECC 회로 107까지 전송되어, ECC 처리에 이용된다.
또, 치환처의 PB 유니트 256도 선택 신호 Sel_B에 의해 선택되지만, 전환신호 Sel_CR가 H레벨이므로, 데이터 읽기 신호 Data_Out_B_CR가, Data_Out_B_CR버스(ECC Bus_1, ECC Bus_2, 및 ECC Bus_3)을 개재하여 ECC 회로 107까지 전송되어 유저로부터 본 PB 유니트 1의 읽기 데이터로서 ECC 처리에 이용된다.
또, 치환처의 PB 유니트 263도 선택 신호 Sel_B에 의해 선택되지만, 전환신호 Sel_PCR가 H레벨이므로, 고정 데이터인 데이터 읽기 신호 Data_Out_B_CR가, Data_Out_B_CR버스(ECC Bus_1, ECC Bus_2, 및 ECC Bus_3)을 개재하여 ECC 회로 107까지 전송되어, 고정 데이터로서 ECC 처리에 이용된다.
또, ECC 모드에서는, ECC 처리가 종료하면, PB 유니트 1에 다시 써야할 데이터가 Data_Out_B(Main) 버스(ECC Bus_3, ECC Bus_2, 및 ECC Bus_1;제1의 데이터 버스)를 개재하여 PB 유니트 256에, 데이터 기입 신호 Data_B_In로서 입력된다.
또 PB유니트 256에도, Data_B_In_CR버스를 개재하여 데이터 기입 신호 Data_B_In_CR가 입력된다. 또, PB유니트 263은, Data_B_In_CR버스를 개재하여 데이터 기입 신호 Data_B_In_CR가 입력되지 않는다.
덧붙여 이러한 ECC 처리 후의 데이터 중 PB 유니트 0~255의 데이터는, 상술한 바와 같이, Data Bus를 개재하여 외부로, 에러가 없는 데이터(Clear Data)로서 읽어 내진다.
또, 페이지 버퍼 102 c에 있어서의 PB 유니트 265는, ECC 모드에서 선택신호 Sel_B에 의해 선택되어 L레벨 또는 H레벨의 어느 쪽이든 한편으로 고정된 데이터 읽기 신호 Data_Out_B(Parity)가, Data_In_B(Parity) 버스(ECC Bus_1, 및 ECC Bus_2;데이터 버스 Data_B)를 개재하여 패리티 컬럼 치환 회로 105까지 전송된다.
또, 치환처의 PB 유니트 263도 선택 신호 Sel_B에 의해 선택되어 데이터 읽기 신호 Data_Out_B_PCR가, Data_Out_B_PCR 버스(ECC Bus_1, 및 ECC Bus_2)를 개재하여 패리티 컬럼 치환 회로 105까지 전송되어, 치환 처리가 수행된다. 이렇게 하여, PB 유니트 263의 출력 데이터가, PB 유니트 265의 데이터 읽기 신호로서 Data_Out_B_MUX 버스(ECC Bus_3)을 개재하여 ECC 회로 107에 전송되어, ECC 처리에 이용된다.
또, ECC 모드에서는, ECC 처리가 종료하면, PB 유니트 265에 다시 써질 데이터가 Data_In_B_MUX 버스(ECC Bus_3)를 개재하여 패리티 컬럼 치환 회로 105까지 전송되어, 치환 처리된 후, Data_In_B_PCR 버스(ECC Bus_2, 및 ECC Bus_1;제1의 데이터 버스)를 개재하여 PB 유니트 263에, 데이터 기입 신호 Data_B_In_PCR로서 입력된다. 덧붙여, 이러한 ECC 처리 후의 데이터는, 상술한 바와 같이, 데이터 버스 Data_A를 개재하여 외부로 출력되지는 않는다.
(동작 2)
이하, 도 9에 나타낸 플로우 차트(flow chart)를 참조하여, 메모리 셀 트랜지스터로의 데이터 쓰기(기입, 라이트) 동작, 메모리 셀 트랜지스터로부터의 데이터 읽기 동작(동작 2)에 대해 설명한다.
[동작 2에서의 데이터 기입 동작]
유저가 I/O패드 106을 개재하여 NAND형 플래쉬 메모리 10에, 소정의 커멘드(라이트 커멘드)를 입력하고, 주소(여기에서는, PB 유니트 1을 선택하는 컬럼 주소)입력을 하며, 계속해, 기입 데이터를 입력한다(스텝 ST1).
다음에, 통상 데이터의 치환이 실행된다(스텝 ST2). 구체적으로는, 컬럼 치환회로 104의 제어에 의해 컬럼 코딩 회로 103은, PB 유니트 1을 선택하지 않고, 대신에 PB 유니트 256을 선택한다. PB 유니트 256에는 외부로부터의 데이터가 격납된다(스텝 ST3).
다음에, 유저가 소정 시간 경과 후에, 프로그램 실행 커멘드(Program Executuion Command)를 주면(Invoke)(스텝 ST5), 통상 모드( 제2의 동작 모드)이면, 스텝 ST6으로 진행되어 프로그램 처리(페이지 버퍼로부터 비트선을 개재하여 메모리 셀 트랜지스터에 데이터를 준다)를 실행한다(스텝 ST6). 한편, ECC 모드(제1 동작 모드)이면, 스텝 ST5로 진행하여 진보 ECC의 encode 처리를 실행한다. (스텝 ST5). 구체적으로는 다음의 처리를 실행한다.
여기서, 도 11(c)은, ECC 처리에서의 코드 구성을 나타내고 있다. ECC로서의 Data부는, PB 유니트 0~PB 유니트 263에 격납된 데이터로 되어 있고, 패리티 부(ECC Parity)는, PB 유니트 264~PB 유니트 299에 격납된 데이터로 되어 있다. PB 유니트 263은, 유저의 Data가 I/O패드 106로부터 Data Bus를 경유해 입력되는 것은 아니기 때문에, 초기치(여기에서는, H레벨로 해둔다. )로 되어 있다. 덧붙여 PB 유니트 1에 기입해야 할 데이터는, PB 유니트 256에 기입되고 격납되어 PB 유니트 1이 외의 PB 유니트 0, PB 유니트 2~255에는, 각각 접속되는 비트선을 개재하여 메모리 셀 트랜지스터에 기억된 데이터가 읽어 내어져 격납(저장)되고 있다.
PB 유니트 0~PB 유니트 263에 격납된 데이터가, ECC Bus_1,ECC Bus_2, 및 ECC Bus_3( 제1의 데이터 버스)을 개재하여, ECC 회로 107에 입력(Data Load)된다(스텝 ST31).
덧붙여 이 때, 상술한 것처럼, ECC 회로 107에는, PB 유니트 1에는 고정 데이터(도 4에 나타내는 PB제어 회로 60이면 L데이터, 도 5에 나타내는 PB제어 회로 60이면 H데이터)가 입력된다. 또, ECC 회로 107에는, PB 유니트 256로는, PB 유니트 1에 기입되어 있어야 했지만 실제는 PB 유니트 256에 기입된 데이터가 입력된다. 또, PB 유니트 257~262는 불활성 상태에 있으므로, ECC 회로 107에는 고정치가 입력된다. 또, PB 유니트 263은, 전환 신호Sel_PCR가 H레벨이므로, ECC 회로 107에는 고정치가 입력된다.
ECC 회로 107은, 입력되는 데이터에 대해서 encode(Encode) 처리를 실시하여, 패리티 데이터를 생성(Parity Generation)한다(스텝 ST32).
계속하여, ECC 회로 107은, PB 유니트 0~299에 ECC 처리 후의 데이터를 다시 쓰는(Data Store) 처리를 실행한다(스텝 ST33).
덧붙여 이 때, ECC 코딩 회로 108은, 패리티 컬럼 치환 회로 105의 제어에 의해, PB 유니트 265를 비선택으로 하고, PB 유니트 263을 선택한다. 이것에 의해, PB 유니트 265에 다시 써야 할 패리티 데이터가 PB 유니트 263에 다시 기입된다.
또, PB 유니트 0~263에는, encode(Encode) 시에는 데이터의 재 기입을 하지 않아도 되지만, 같은 데이터(Data)를 다시 써도 괜찮다. 같은 데이터를 다시 쓰는 경우, PB 유니트 1, 및 PB 유니트 257~262는 불활성 상태에 있기 때문에 다시 쓰여지는 것은 아니다. PB 유니트 263은, 전환 신호 Sel_PCR가 H레벨이므로, ECC Bus로부터의 데이터 기입 신호 Data_In_B_CR의 기입은 허가되지 않는다. 이와 같이, PB 유니트 263은, 패리티 데이터가 지켜질 수 있어 상술의 동작 1에서 설명된 바와 같은 ECC Bus에서 데이터 기입 신호와의 충돌이 회피되고 있다.
PB 유니트 264~299에는 패리티 데이터가 기입된다. 이와 같이, 도 11(b)에 대해 사선으로 나타낸 바와 같이 불활성 상태에 있는 페이지 버퍼에는, 쓰기가 되지 않도록 되어 있다.
계속하여, 각 PB유니트에 대해, 도 6에 나타내는 래치부에 메모리 셀로 기입해야 할 데이터(Data_i)가 래치 되었으므로, 메모리 셀 트랜지스터에의 데이터 기록(Program to Memory Cell) 처리가 개시된다(스텝 ST6).
각 PB 유니트에서는, 기록이 성공할 때까지, 래치부로부터 메모리 셀에의 데이터 인가가 반복된다(스텝 ST7). 기입이 성공하면, 반복 처리는 종료하고(스텝 ST7-Yes), 기입이 성공하지 않으면, 기록이 성공할 때까지, 스텝 ST6로 돌아와 프로그램 처리가 실행된다(스텝 ST7-No).
[동작 2에서의 데이터 읽기 동작]
유저가 I/O패드 106을 개재하여 소정의 커멘드(리드 커멘드)를 입력하고, 어드레스(여기에서는, PB 유니트 1을 선택하는 컬럼 주소)를 입력한다(스텝 ST11).
다음에, 각 PB 유니트에 대해, 도 6에 나타내는 비트 내부 회로의 접속점N1에, 메모리셀 트랜지스터로부터의 데이터(Data_i)가 센싱되고 래치부로 읽혀진다(스텝 ST12).
또, 비트 내부 회로의 래치부에 Data_i가 래치된다(스텝 ST13).
그 후, 통상 모드(제2 동작 모드)이면, 스텝 ST15로 진행되어 센싱 처리가 종료한다(스텝 ST15). 한편, ECC 모드( 제1 동작 모드)에서는, 스텝 ST14으로 진행되어, ECC의 디코드(Decode) 처리를 실행한다. (스텝 ST14). 구체적으로는 다음의 처리를 실행한다.
PB 유니트 0~PB 유니트 299에 격납된 데이터가, ECC Bus_1,ECC Bus_2, 및 ECC Bus_3( 제1 데이터 버스)을 개재하여, ECC 회로 107에 입력(Data Load)된다(스텝 ST41).
덧붙여 이 때, 상술한 것처럼, ECC 회로 107에는, PB 유니트 1으로 고정데이터(도 4에 나타내는 PB제어 회로 60이면 L데이터, 도 5에 나타내는 PB제어 회로 60이면 H데이터)가 입력된다.
또, ECC 회로 107에는, PB 유니트 256으로는, PB 유니트 1에 기입되어 있어야 했지만 실제는 PB 유니트 256에 기입된 데이터가 입력된다.
PB 유니트 263에는, PB 유니트 265에 다시 써야 할 패리티 데이터가 PB 유니트 263에 다시 씌여져 L레벨로 된 데이터가 격납되고 있다. 이 PB유니트 263은 PCR 치환처로서 지정되고 있고 전환 신호 Sel_PCR가 H레벨로 되어 있어, 데이터 읽기 신호 Data_Out_B_CR는 고정치 H 데이터가 되어, ECC회로 107에는, 이 고정치 H데이터가 입력된다.
또, 패리티 컬럼 치환 회로 105에는, PB 유니트 263에는, PB 유니트 265에 기입되어야 했지만 실제는 PB 유니트 263에 기입된 패리티 데이터가 Data_Out_B_PCR 버스(ECC Bus_1, 및 ECC Bus_2)를 개재하여 입력되어 치환 처리된 후, ECC Bus_3을 개재하여 ECC 회로 107에 입력된다.
ECC 회로 107은, 디코드(Decode) 처리를 실행하여, 패리티 데이터에 근거하여, PB 유니트 0~PB 유니트 263에 격납된 데이터의 에러를 정정(Error Correction) 한다(스텝 ST42).
계속하여, ECC 회로 107은, PB 유니트 0~299에 ECC 처리 후의 데이터를 다시 쓰는(Data Store) 처리를 실행한다(스텝 ST43).
PB 유니트 0~263에는, ECC 처리 후의 데이터(잘못 정정된 데이터)가 다시 씌여진다. PB 유니트 264~299의 패리티 데이터부에 대해서는 유저가 사용하지 않기 때문에, ECC 처리 후의 데이터(잘못 정정된 데이터)를 재기입할 필요는 없지만, 다시 써도 괜찮다. 패리티 컬럼 치환 회로 105의 제어에 의해, PB 유니트 265를 비선택으로 하고, PB 유니트 263을 선택한다. 이것에 의해, PB 유니트 265에 재기입 해야 할 에러 정정 후의 패리티 데이터가 PB 유니트 263에 다시 기입된다.
계속하여, 각 PB유니트에 대해, 도 6에 나타낸 래치부에 메모리 셀로 기입해야 할 데이터(Data_i)가 래치 되었으므로, 센싱(Sensing) 처리가 종료하고, 읽기 가능한 상태로 이행 한다(스텝 ST15).
PB 유니트 0~PB 유니트 255에는, 선택 신호 Sel_A가 입력되어 저장할 데이터가, Data Bus_1, Data Bus_2, 및 Data Bus_3을 개재하여, 읽어 내진다. 이 때, 컬럼 코딩 회로 103은, 컬럼 치환 회로 104의 제어에 의해, PB 유니트 1을 비선택으로 하고, PB 유니트 256을 선택한다.
PB 유니트 256은, PB 유니트 1에 기입되어야 했지만 실제는 PB 유니트 256에 기입된 데이터를 출력한다. 즉, 불량을 가지는 컬럼의 치환(Defect Column Repair)이 실행된다(스텝 ST16).
이와 같이 하여, 유저가 PB 유니트 1을 개재하여 메모리 셀 트랜지스터에 기입할 데이터가, 불량 구제되어 다른 메모리 셀 트랜지스터로 기입되고, 게다가 기입된 데이터가 에러 정정되어, I/O패드 106으로부터 출력된다(스텝 ST17).
이와 같이, PB 유니트 256~263은, Main Data의 불량 치환처 또는 Parity의 치환처로서 사용할 수가 있어, ECC의 Data부이면서도, Parity가 불량 치환처로서 설정되었을 때에는 ECC의 Data부로는 고정 데이터를 출력하는 것에 의해, ECC 코드의 정합성을 유지할 수가 있다.
NAND형 플래쉬 메모리 20은, ECC Bus(제1 데이터 버스)와, 제1 데이터 버스와는 다른 갯수로 구성되어 제1의 데이터 버스와는 독립적으로 설치되는 Data Bus( 제2 데이터 버스)와를 구비한다. 또, NAND형 플래쉬 메모리 20는, 제1 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 제1 데이터 버스와 같은 갯수의 비트선과 제1 데이터 버스를 접속하여 데이터를 전송하고, 한편, 제2 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 제2 데이터 버스와 같은 갯수의 비트선과 제2 데이터 버스를 접속 하여 데이터를 전송하는 페이지 버퍼 102(데이터 전송부)를 구비한다. 데이터 전송부는, 통상 메모리 셀에 접속되는 통상 비트선의 데이터를 래치하는 페이지 버퍼 102 a(제1 페이지 버퍼)로 패리티 메모리 셀에 접속되는 패리티 비트선의 데이터를 래치하는 페이지 버퍼 102 c( 제2의 페이지 버퍼)를 포함한다. 또, 제1 페이지 버퍼에 접속되는 통상 메모리 셀 혹은 통상 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 통상 비트선과 함께 치환되거나, 또는, 제2 페이지 버퍼에 접속되는 패리티 메모리 셀 혹은 패리티 비트선에 불량이 있는 경우에, 패리티 메모리 셀, 및 패리티 비트선과 함께 치환되는, 페이지 버퍼( 제3 페이지 버퍼)를 포함한다.
제1 데이터 버스는, 제1 페이지 버퍼, 제2 페이지 버퍼, 및 제3 페이지 버퍼와 접속되고, 제2 데이터 버스는, 제1 페이지 버퍼, 및 제3 페이지 버퍼와 접속된다.
NAND형 플래쉬 메모리 20에 의하면, Parity 전용의 불량 치환 영역(페이지 버퍼 102 d)를 마련하는 경우에 비해, 구제 치환 회로의 규모 증대를 막을 수가 있어 칩 사이즈의 증대를 억제할 수 있다. 또, redundancy의 페이지 버퍼, 패리티 데이터의 페이지 버퍼를 선택하는 Address의 매핑을 간략화할 수 있다.
또, 페이지 버퍼 102 b(제3 페이지 버퍼)는, 제1 페이지 버퍼, 및 제2 페이지 버퍼의 어느 쪽이든 한편의 치환처로서 치환되었는지를 나타내는 식별 데이터가 미리 기입되어 있어, 식별 데이터에 따라 제1 페이지 버퍼 또는 제2 페이지 버퍼로서의 동작을 실행한다.
ECC Data부에 속하지만, 유효한 Data가 격납되지 않는 비트(페이지 버퍼 102 b의 PB유니트 256~263에 있어서의 미사용의 PB 유니트)에 패리티 데이터를 격납할 수가 있다.
또, CR/PCR의 할당을 설정할 수 있는 것으로부터 불량 치환의 효율화도 기대할 수 있어 코스트를 삭감할 수가 있다. 예를 들어, 제조상의 격차 등에 의해, Main Data부에는 불량이 적지만, Parity부에 다수의 불량이 존재하는 경우(혹은 그 반대의 경우)에 있어서도, 불량 총수가, 준비되어 있는 치환용 PB유니트 수 이하이면,완전하게 구제가 가능해진다.
또, 도 12에 나타낸 PB 유니트는, 도 4, 및 도 5에 나타낸 PB유니트에 회로를 추가하여, CR/PCR 를 바꾸어 사용할 수가 있는 기능을 가지고 있다. 이 도 12에 나타내는 PB 유니트를, PB유니트 모두로 채용하는 일도 가능하지만, 회로규모의 증가가 많아진다. 거기서, 페이지 버퍼 102 b(PB유니트 256~263의 CR/PCR부)에, 이 도 12에 나타낸 PB 유니트를 탑재하는 것을 제안하여, 리던던시 영역의 삭감이라고 하는 충분한 효과를 얻을 수 있는 것을 나타내고 있다.
NAND형 플래쉬 메모리 20은, 제1 데이터 버스에 접속되는 것과 동시에, 패리티 데이터 입출력부에 입력되는 제2 페이지 버퍼의 출력 데이터에 근거하여, 데이터 입출력부에 입력되는 제1 페이지 버퍼의 출력 데이터의 에러를 정정하는 ECC 회로 107와, 제1 데이터 버스에 접속되는 것과 동시에, ECC 모드에 대해, 제2 페이지버퍼 중 패리티 메모리 셀 또는 패리티 비트선에 불량이 있는 페이지 버퍼를 제3 페이지 버퍼로 치환하는 패리티 컬럼 치환 회로 105를 구비한다.
제3 페이지 버퍼는, 상기 식별 데이터(전환 신호 Sel_PCR)가 제2 페이지 버퍼의 치환처로서 치환된 것을 나타내는 경우, 제1 동작 모드의 데이터 읽기에 대해 선택되면, ECC 회로 107의 데이터 입출력부에 고정 데이터를 Data_Out_B_CR버스(제1 데이터 버스)를 개재하여 출력함과 함께, ECC 회로 107의 패리티 데이터 입출력부에 패리티 데이터를, Data_Out_B_PCR 버스(제1 데이터 버스), 및 패리티 컬럼 치환 회로 105(구제 치환 회로)를 개재하여 출력한다. 한편, 제1 동작 모드의 데이터 기입 동작에 대해서 선택되면, ECC 회로 107의 데이터 입출력부로부터의 데이터 기입 신호 Data_In_CR(데이터)의 기입을 허가하지 않고, ECC 회로 107의 패리티 데이터 입출력부로부터의 패리티 데이터가 입력된다.
위에서 설명한 바와 같이 ECC 코드에는 Data부와 Parity부가 존재하지만, 본 실시형태에서는 임의의 비트에 대해서, Data부에 속하지만, Parity부에도 속하는 기구를 제공해, 유효한 Data가 격납되지 않는 비트에, Parity 데이터를 격납하는 것을 할 수 있다. 이 경우는, ECC Data부로서의 읽기 값은 고정치로 하고, Data부로서의 비트로의 데이터의 기입은 불가하도록 하고, Parity부로서의 읽고 쓰기는 허가하는 것으로 하여, ECC 코드의 정합성을 유지할 수가 있다.
이상, 이 발명의 실시 형태를, 도면을 참조하여 상술해 왔지만, 구체적인 구성은 이 실시 형태에 한정되는 것은 아니고, 이 발명의 요지를 일탈하지 않는 범위의 설계 등에도 포함된다.
10, 20, 80…NAND형 플래쉬 메모리,
101…메모리 어레이,
102, 102 a, 102 b, 102 c, 102 d, 82, 82 a, 82 b…페이지 버퍼,
83, 103, 108…컬럼 코딩 회로,
84, 104…컬럼 치환 회로,
105…패리티 컬럼 치환 회로,
107…ECC 회로,
106, 106 c…I/O패드

Claims (10)

  1. 제1 데이터 버스;
    상기 제1 데이터 버스와 다른 갯수로 구성되며 상기 제1 데이터 버스와는 독립적으로 설치되는 제2 데이터 버스; 및
    제1 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 상기 제1 데이터 버스와 같은 갯수의 비트선과, 상기 제1 데이터 버스를 접속하여 데이터를 전송하고, 제2 동작 모드에 의해 메모리 셀과의 사이에 데이터를 전송하는 경우, 복수의 비트선 중 상기 제2 데이터 버스와 같은 갯수의 비트선과 상기 제2 데이터 버스를 접속하여 데이터를 전송하는 데이터 전송부;
    를 구비하고,
    상기 데이터 전송부는;
    통상 메모리 셀에 접속되는 통상 비트선의 데이터를 래치하는 제1 페이지 버퍼와,
    패리티 메모리 셀에 접속되는 패리티 비트선의 데이터를 래치하는 제2 페이지 버퍼와,
    상기 제1 페이지 버퍼에 접속되는 통상 메모리 셀 혹은 통상 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 통상 비트선과 함께 치환되거나, 상기 제2 페이지 버퍼에 접속되는 패리티 메모리 셀 혹은 패리티 비트선에 불량이 있는 경우에, 패리티 메모리 셀, 및 패리티 비트선과 함께 치환되는, 제3 페이지 버퍼를 포함하며,
    상기 제1 데이터 버스는, 상기 제1 페이지 버퍼, 상기 제2 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되고,
    상기 제2 데이터 버스는, 상기 제1 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되는,
    것을 특징으로 하는 반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 제3 페이지 버퍼는, 상기 제1 페이지 버퍼, 및 상기 제2 페이지 버퍼 중 어느 쪽이 먼저 치환되었는지를 나타내는 식별 데이터를 미리 기입하여 두고서, 상기 식별 데이터에 응답하여 제1 페이지 버퍼 또는 상기 제2 페이지 버퍼로서의 동작을 실행하는, 것을 특징으로 하는 반도체 메모리 장치.
  3. 제2항에 있어서,
    상기 제1 데이터 버스에 접속되는 것과 동시에, 패리티 데이터 입출력부에 입력되는 상기 제2 페이지 버퍼의 출력 데이터에 근거하여, 데이터 입출력부에 입력되는 상기 제1 페이지 버퍼의 출력 데이터의 에러를 정정하는 ECC 회로와,
    상기 제1 데이터 버스에 접속되는 것과 동시에, 상기 제1 동작 모드에 있어서, 상기 제2 페이지 버퍼 중 패리티 메모리 셀 또는 패리티 비트선에 불량이 있는 페이지 버퍼를 상기 제3의 페이지 버퍼에 치환하는 구제 치환 회로를 구비하고,
    상기 제3 페이지 버퍼는, 상기 식별 데이터가 상기 제2 페이지 버퍼에 대한 치환처를 나타내는 경우,
    상기 제1 동작 모드의 데이터 읽기가 선택되면, 상기 ECC 회로의 데이터 입출력부에 고정 데이터를 상기 제1 데이터 버스를 개재하여 출력함과 동시에, 상기 ECC 회로의 패리티 데이터 입출력부에 패리티 데이터를, 상기 제1 데이터 버스, 및 상기 구제치환 회로를 개재하여 출력하고,
    한편, 상기 제1 동작 모드의 데이터 기입 동작이 선택되면, 상기 ECC 회로의 데이터 입출력부로부터의 데이터의 기입이 허가됨이 없이, 상기 ECC 회로의 패리티 데이터 입출력부로부터의 패리티 데이터가 입력되는,
    것을 특징으로 하는 반도체 메모리 장치.
  4. 제3항에 있어서,
    상기 제1 페이지 버퍼는, 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼의 출력을 고정된 데이터로 되게 하는 페이지 버퍼 제어 회로를 가지며,
    상기 페이지 버퍼 제어 회로는, 메모리 셀 또는 비트선에 불량이 있는 경우에, 상기 제1 데이터 버스로부터의 기입을 허가하지 않는 것을 특징으로 하는 반도체 메모리 장치.
  5. 통상 데이터를 저장하는 제1 페이지 버퍼, 패리티 데이터를 저장하는 제2 페이지 버퍼, 및 불량 컬럼 구제를 위한 치환 시 공유 페이지 버퍼로서 기능하기 위해 상기 제1,2 페이지 버퍼들 내의 선택된 페이지 버퍼 유니트로서 동작하는 제3 페이지 버퍼를 포함하는 데이터 전송부; 및
    상기 제2 페이지 버퍼 내에서 패리티 메모리 셀 또는 패리티 비트선에 불량이 있는 페이지 버퍼 유니트를 상기 제3 페이지 버퍼의 버퍼 유니트로 치환하는 구제 치환 회로를 구비하는 반도체 메모리 장치.
  6. 제5항에 있어서,
    상기 제1,2,3 페이지 버퍼들과 접속되는 제1 데이터 버스에 접속되고, 패리티 데이터 입출력부에 입력되는 상기 제2 페이지 버퍼의 출력 데이터에 근거하여, 데이터 입출력부에 입력되는 상기 제1 페이지 버퍼의 출력 데이터의 에러를 정정하는 ECC 회로를 더 구비하는 반도체 메모리 장치.
  7. 제6항에 있어서,
    상기 제3 페이지 버퍼는 상기 제1,2 페이지 버퍼들 중 어느 페이지 버퍼의 페이지 버퍼 유니트를 치환하였는 지를 나타내는 식별 데이터를 미리 기입하고 있는 반도체 메모리 장치.
  8. 제6항에 있어서, 상기 데이터 전송부는,
    제1 동작 모드에서는 복수의 비트선 중 상기 제1 데이터 버스와 같은 갯수의 비트선과, 상기 제1 데이터 버스를 서로 접속하여 데이터가 전송되도록 하고,
    제2 동작 모드에서는 복수의 비트선 중 상기 제1 데이터 버스와는 독립적으로 설치되는 제2 데이터 버스와 같은 갯수의 비트선과 상기 제2 데이터 버스를 서로 접속하여 데이터가 전송되도록 하는 반도체 메모리 장치.
  9. 제6항에 있어서,
    상기 제2 데이터 버스는, 상기 제1 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되는 반도체 메모리 장치.
  10. 제6항에 있어서, 상기 제3 페이지 버퍼는,
    상기 제1 페이지 버퍼에 접속되는 통상 메모리 셀 혹은 통상 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 통상 비트선과 함께 치환되거나,
    상기 제2 페이지 버퍼에 접속되는 패리티 메모리 셀 혹은 패리티 비트선에 불량이 있는 경우에, 패리티 메모리 셀, 및 패리티 비트선과 함께 치환되는 반도체 메모리 장치.

KR1020140062359A 2013-06-20 2014-05-23 반도체 메모리 장치 KR102146080B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/310,405 US9424953B2 (en) 2013-06-20 2014-06-20 Semiconductor memory device including repair circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2013-129547 2013-06-20
JP2013129547A JP2015005315A (ja) 2013-06-20 2013-06-20 半導体記憶装置

Publications (2)

Publication Number Publication Date
KR20140147677A true KR20140147677A (ko) 2014-12-30
KR102146080B1 KR102146080B1 (ko) 2020-08-21

Family

ID=52301081

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140062359A KR102146080B1 (ko) 2013-06-20 2014-05-23 반도체 메모리 장치

Country Status (2)

Country Link
JP (1) JP2015005315A (ko)
KR (1) KR102146080B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150001612A (ko) * 2013-06-20 2015-01-06 삼성전자주식회사 반도체 메모리 장치
US10671478B2 (en) 2016-11-28 2020-06-02 Samsung Electronics Co., Ltd. Scrubbing controllers of semiconductor memory devices, semiconductor memory devices and methods of operating the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113539347B (zh) * 2021-07-21 2023-08-18 长鑫存储技术有限公司 存储器修补线路确定方法及装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2658267B2 (ja) * 1988-09-27 1997-09-30 日本電気株式会社 半導体メモリの冗長回路
KR20040102599A (ko) * 2003-05-28 2004-12-08 삼성전자주식회사 플렉서블한 열 리던던시 스킴을 갖는 반도체 메모리 장치
KR20100088915A (ko) * 2009-02-02 2010-08-11 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
JP2011197819A (ja) * 2010-03-17 2011-10-06 Toshiba Corp 半導体装置
KR20150001612A (ko) * 2013-06-20 2015-01-06 삼성전자주식회사 반도체 메모리 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2658267B2 (ja) * 1988-09-27 1997-09-30 日本電気株式会社 半導体メモリの冗長回路
KR20040102599A (ko) * 2003-05-28 2004-12-08 삼성전자주식회사 플렉서블한 열 리던던시 스킴을 갖는 반도체 메모리 장치
KR20100088915A (ko) * 2009-02-02 2010-08-11 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
JP2011197819A (ja) * 2010-03-17 2011-10-06 Toshiba Corp 半導体装置
KR20150001612A (ko) * 2013-06-20 2015-01-06 삼성전자주식회사 반도체 메모리 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150001612A (ko) * 2013-06-20 2015-01-06 삼성전자주식회사 반도체 메모리 장치
US10671478B2 (en) 2016-11-28 2020-06-02 Samsung Electronics Co., Ltd. Scrubbing controllers of semiconductor memory devices, semiconductor memory devices and methods of operating the same

Also Published As

Publication number Publication date
KR102146080B1 (ko) 2020-08-21
JP2015005315A (ja) 2015-01-08

Similar Documents

Publication Publication Date Title
US9424953B2 (en) Semiconductor memory device including repair circuit
US9013921B2 (en) Semiconductor memory device
JP4102338B2 (ja) 半導体記憶装置
JP5378574B1 (ja) 半導体記憶装置
JP4111762B2 (ja) 半導体記憶装置
US9362007B2 (en) Semiconductor memory device
JP4820795B2 (ja) 半導体記憶装置
KR102146071B1 (ko) 반도체 메모리 장치
JP4284154B2 (ja) マルチチップパッケージ型メモリシステム
JP5657079B1 (ja) 半導体記憶装置
JP2007257791A (ja) 半導体記憶装置
JP5106151B2 (ja) 積層型スタックnandメモリ及び半導体装置
EP1700314A1 (en) Flexible and area efficient column redundancy for non-volatile memories
WO2010004664A1 (ja) 半導体記憶装置
JP2005346758A (ja) 半導体記憶装置および信号処理システム
JP3799197B2 (ja) 半導体記憶装置
KR102146080B1 (ko) 반도체 메모리 장치
US20020181280A1 (en) Nonvolatile semiconductor memory device and electronic information apparatus
JP4351649B2 (ja) 半導体記憶装置
JPWO2007110927A1 (ja) 半導体メモリ
JP2014137834A (ja) 半導体記憶装置
JP2014142976A (ja) 半導体記憶装置
JP2014116049A (ja) 半導体記憶装置
TWI478170B (zh) 記憶體裝置以及冗餘方法
TWI539465B (zh) 半導體儲存裝置及其冗餘方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant