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

반도체 메모리 장치 Download PDF

Info

Publication number
KR102146071B1
KR102146071B1 KR1020140062362A KR20140062362A KR102146071B1 KR 102146071 B1 KR102146071 B1 KR 102146071B1 KR 1020140062362 A KR1020140062362 A KR 1020140062362A KR 20140062362 A KR20140062362 A KR 20140062362A KR 102146071 B1 KR102146071 B1 KR 102146071B1
Authority
KR
South Korea
Prior art keywords
data
page buffer
circuit
bus
unit
Prior art date
Application number
KR1020140062362A
Other languages
English (en)
Other versions
KR20150001612A (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,326 priority Critical patent/US9362007B2/en
Publication of KR20150001612A publication Critical patent/KR20150001612A/ko
Application granted granted Critical
Publication of KR102146071B1 publication Critical patent/KR102146071B1/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
    • 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
    • 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
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • 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 b와 접속되고 Data Bus_1은, 페이지 버퍼 102 a, 페이지 버퍼 102 c, 및 페이지 버퍼 102 b와 접속된다.

Description

반도체 메모리 장치{Semiconductor memory device}
본 발명은, 반도체 메모리 장치에 관한 것이다.
종래의 NAND형 플래쉬 메모리에서는, 여러 번의 쓰기에 수반하는 터널 산화막의 열화 등에 기인하여, 데이터 보관 유지중에 기억소자(메모리 셀 트랜지스터)의 보관 유지 특성이 멸실되어, 에러 비트의 발생율(에러율)이 커지는 경향이 있다. 특히, NAND형 플래쉬 메모리에서는, 메모리 셀의 대용량화, 즉 제조 프로세스에 있어서의 미세화가 진행되면 에러율은 상승해 버리는 경향이 있다. 그 때문에, 기억해야 할 데이터에 에러 정정 코드(ECC)(Error Correcting Code)의 용장 데이터(패리티 데이터)를 부가하여 데이터 열로서 플래쉬 메모리에 쓴다. 읽기 시에는 에러 정정 코드(ECC)의 용장(리던던시) 데이터에 근거하여 데이터의 정정을 실시하는 것으로, 에러 비트가 발생했을 때의 데이터 보상을 실시하고 있다. 예를 들면, 특허 문헌 1에는, ECC 처리를 실시하는 ECC 회로를 갖춘 반도체 메모리 장치에 대해 개시되고 있다.
또, NAND형 플래쉬 메모리에서는, 제조 직후의 테스트에서, 메모리 셀 트랜지스터에, 기억 보관 유지를 할 수 없는 등의 비트 불량, 혹은 메모리 셀 트랜지스터에 접속되는 비트선에, 다른 비트선과의 합선(쇼트), 혹은 비트선의 단선(오픈)이라고 하는 불량이 발견되는 경우가 있다. 이러한 경우, 메모리 셀 트랜지스터의 데이터를, 비트선을 개재하여 래치하고, 증폭하여 메모리 셀의 데이터를 외부로 읽어 내거나, 혹은 메모리 셀에 데이터를 써 넣는 페이지 버퍼와 이 페이지 버퍼에 접속되는 비트선과 비트선에 접속되는 메모리 셀 트랜지스터를, 세트로 다른 불량이 없는 세트와 치환하는 것이 행해지고 있다. 이러한 치환을 redundancy 기술이라고 부르지만, 특허 문헌 1(특개평 11-242899 공개공보)에 기재의 반도체 메모리 장치에서는, redundancy 기술을 이용해 불량을 구제하는 일 없이, ECC 처리를 이용해 불량 비트를 구제하고 있다. 그렇지만, 이 방법에서는, 본래 경년 열화에 의해 데이터 보관 유지 특성이 없어진 메모리 셀 트랜지스터를 구제하는 ECC 처리의 정정 처리 능력이, 제조 공정에 기인하는 불량 비트의 구제에 허비되어 버려, ECC 처리의 정정 처리 능력이 저하되어 버린다.
그 때문에, 현재는, 불량 비트의 구제 처리와 ECC 처리에 의한 에러 정정 처리는, 아래에 설명하는 바와 같이 별개로 행해지고 있다.
도 17은, NAND형 플래쉬 메모리의 일반적인 블록 구성을 나타내는 도면이다. 도 17에 나타낸 NAND형 플래쉬 메모리 80에서는, NAND형 플래쉬 메모리 80의 외부의 낸드 콘트롤러 90(메모리 콘트롤러)에서 ECC 처리를 실행한다.
도 17에 나타내는 NAND형 플래쉬 메모리 80은, Memory Array(메모리 어레이) 101, 페이지 버퍼 82, Column Coding Circuit(컬럼 코딩 회로) 83, Column Repair MUX(행 치환 멀티플렉서;이하 컬럼 치환 회로라고 부른다) 84, I/O PAD(I/O패드) 106을 구비한다. 또, 낸드 콘트롤러 90은, ECC Engine(ECC 회로) 87, 및 I/O PAD(I/O패드) 106 c를 갖추고 있다.
메모리 어레이 101은, 복수의 메모리 셀 트랜지스터를 포함한다. 이러한 복수의 메모리 셀 트랜지스터 각각은, 1 비트의 데이터를 기억한다. 메모리 어레이 101에서, 동일한 워드라인(word line)에 접속되는 복수의 메모리 셀 트랜지스터들은 페이지를 구성한다. 하나의 페이지에 있어서 메모리 셀 트랜지스터로 데이터를 쓰고, 및 메모리 셀로부터의 데이터를 읽는 것은, 일괄적으로 실행된다.
페이지 버퍼 82는, 메모리 어레이 101의 페이지와 같은 개수의 데이터를 저장할 수 있도록 구성되어 있다. 도 18은, 페이지 버퍼 82를 구성하는 페이지 버퍼 유니트를 설명하기 위한 도면이다. 또, 도 19는, 종래의 페이지 버퍼 유니트의 내부 회로 구성을 나타내는 도면이다.
페이지 버퍼 82는, 도 18에 나타낸 페이지 버퍼 유니트가 복수개로 구성되어 이루어진다. 페이지 버퍼 유니트는, 각각이 1개의 비트선에 접속되어 메모리 셀로부터 비트선을 개재하여 읽어낸 데이터, 또는 메모리 셀에 비트선을 개재하여 기입 데이터를 저장하는 비트 회로 51_0 a~51_7 a를 포함하여 구성되어 있다.
MUX(멀티플렉서) 52_b는, 도 17에 나타낸 컬럼 코딩 회로 83으로부터 컬럼 주소 신호(Sub BL Coding)가 입력되어 이 컬럼 주소 신호(도 19에 있어서는 DIO<i>로 나타나 있다)에 근거하여, 비트 회로 51_0 a~비트 회로51_7 a의 어느 쪽이든 1개를 선택한다. 즉, 멀티플렉서 52_b는, 8개의 비트선 가운데 어느 쪽이든 한 개의 비트선을, PB Control Circuit(PB제어 회로) 83_1로 접속한다.
PB제어 회로 83_1은, 도 17에 나타내는 컬럼 코딩 회로 83으로부터 컬럼 어드레스 신호(Coding;도 19에서는 선택 신호 Sel로 되어 있다)가 입력되어 멀티플렉서 52_b에 의해 선택된 비트 회로를, Data Bus_1(데이터 버스)을 개재하여, 외부 회로(Peripheral Circuit)에 접속한다.
이상의 구성에 의해, 1개의 페이지에 있어서의 메모리 셀 트랜지스터 각각이, 비트선을 개재하여 페이지 버퍼 82의 비트 회로에 접속된다. 그리고, 이 중, 컬럼 어드레스에 의해 선택된 비트선이 데이터 버스에 접속되어, 메모리 셀로의 데이터의 쓰기, 또는 메모리 셀로부터의 데이터의 읽기가 실행된다.
도 17로 돌아와, 컬럼 코딩 회로 83은, 도 17에 대해 미도시된 주소 제어회로로부터 입력되는 컬럼 주소에 근거하여, 컬럼 주소 신호(도 18에 나타낸 Sub BL Coding, 및 Coding)를 생성하여, 이 컬럼 주소 신호에 대응하는 페이지 버퍼 82의 페이지 버퍼 유니트를 선택한다. 이것에 의해, I/O패드 106, Data Bus_2, 및 Data Bus_1, 비트 회로, 및 비트선을 개재하여 메모리 셀 트랜지스터에 데이터가 써 넣어진다. 또, 메모리 셀로부터의 데이터가 비트선, 비트 회로, Data Bus_1, 및 Data Bus_2를 개재하여 I/O패드 106의 외부로 읽어 내진다.
또, 페이지 버퍼 82는, 도 17에 나타낸 것처럼, PB(Page Buffer)_Data82a(이하, 페이지 버퍼 82 a로 한다)와 PB_CR82b(이하, 페이지 버퍼 82 b로 한다)로 구성된다. 페이지 버퍼 82 a는, 통상 메모리 셀에 접속되는 비트선의 전위를 증폭해, 증폭 결과를 래치하는 페이지 버퍼이다. 페이지 버퍼 82 b는, 페이지 버퍼 82 a에 접속되는 통상 메모리 셀 또는 비트선에 불량이 있는 경우에, 통상 메모리 셀, 및 비트선과 함께 치환되는 페이지 버퍼이다. 즉, 페이지 버퍼 82 a를 구성하는 페이지 버퍼 유니트 중 1개에 불량이 있을 경우, 이 불량 페이지 버퍼 유니트는, 페이지 버퍼 82 b를 구성하는 페이지 버퍼 유니트들 중의 하나로 치환된다.
컬럼 치환 회로 84는, 불량 페이지 버퍼 유니트를, 페이지 버퍼 82 b를 구성하는 페이지 버퍼 유니트로 치환하는 회로이다. 예를 들면, 컬럼 치환 회로 84는, 메모리 셀 트랜지스터로부터의 데이터 읽기 동작에 대해, 불량 페이지 버퍼의 위치를 가리키는 컬럼 주소가 입력되면, 컬럼 코딩 회로 83을 제어하여, 페이지 버퍼 82 a에 있어서의 불량 페이지 버퍼 유니트 대신에 페이지 버퍼 82 b내에서의 페이지 버퍼 유니트가 선택되도록 제어한다. 이것에 의해, 선택된 페이지 버퍼 유니트로부터의 데이터가, Data Bus_1, Data Bus_2, I/O패드 106을 개재하여 외부로 읽어 내진다. 이러한 불량 페이지 버퍼의 위치를 나타내는 컬럼 주소는, 도 17에 나타낸 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의 내부에갖추는 구성도 생각할 수 있다. 예를 들면, 도 17에 나타내는 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 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되고, 상기 제2 데이터 버스는, 상기 제1 페이지 버퍼, 상기 제2 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되는,
것을 특징으로 한다.
또, 본 발명의 반도체 메모리 장치에 있어서, 상기 제3 페이지 버퍼는, 상기 제1 페이지 버퍼, 및 상기 제2 페이지 버퍼 중의 어느 한편의 치환처로서 치환되었는지를 나타내는 식별 데이터가 미리 기입되어 있어, 상기 식별 데이터에 응답하여 상기 제1 페이지 버퍼 또는 상기 제2 페이지 버퍼로서의 동작을 실행하는 것을 특징으로 한다.
또, 본 발명의 반도체 메모리 장치에 있어서,
상기 제1 데이터 버스에 접속된 데이터 입출력부에 입력되는 상기 제1 페이지 버퍼의 출력 데이터의 에러를, 상기 제2 데이터 버스에 접속된 패리티 데이터 입출력부에 입력되는 상기 제2 페이지 버퍼의 출력 데이터에 근거하여, 정정하는 ECC 회로와,
상기 제2 데이터 버스에 접속됨과 함께, 상기 제2 동작 모드에서, 상기 제1 페이지 버퍼 중 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼를 상기 제3 페이지 버퍼로 치환하는 구제 치환 회로를 포함하고,
상기 제3 페이지 버퍼의 상기 식별 데이터가 상기 제2 페이지 버퍼의 치환처로서 치환된 것을 나타내는 경우, 상기 구제 치환 회로는, 상기 제1 동작 모드에 서 치환원인 상기 제2 페이지 버퍼를 선택하고, 상기 제1 동작 모드에서 제1 선택 주소가 입력되면, 입력되는 상기 제1 선택 주소를 상기 제2 동작 모드에 있어서의 제2 선택 주소로 변환하고,
상기 변환 후의 제2 선택 주소와, 치환원인 상기 제2 페이지 버퍼에 대해서 미리 설정된 제2 동작 모드에 있어서의 제2 선택 주소를 비교하고,
비교 결과가 일치하는 경우에, 치환처의 상기 제3 페이지 버퍼와 상기 제2 데이터 버스를 접속하고,
치환처의 상기 제3 페이지 버퍼는, 상기 제1 동작 모드의 데이터 읽기 동작에서, 상기 제1 데이터 버스로 고정 데이터를, 상기 제2 데이터 버스로 패리티 데이터를 각각 출력하고,
한편, 상기 제1 동작 모드에서의 데이터 기입 동작에서, 상기 제1 데이터 버스로부터의 데이터 기입을 허가하지 않고, 상기 제2 데이터 버스로부터의 패리티 데이터의 기입을 허가하는,
것을 특징으로 한다.
또, 본 발명의 반도체 메모리 장치에 있어서,
상기 제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 동작 모드에 있어서, 컬럼 치환 회로에 의해 제3 페이지 버퍼에서 제2페이지 버퍼로의 치환을 실시하므로, 제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은 페이지 버퍼 102 c에 있어서의 PB 유니트의 내부의 회로 구성을 나타내는 도면이다.
도 12는 페이지 버퍼 102 b에 있어서의 PB 유니트의 내부의 회로 구성을 나타내는 도면이다.
도 13은 CR/PCR 정보 격납부 70의 보관 유지하는 데이터에 의해, Data Bus, 및 ECC Bus의 어느 버스를 이용하여 데이터의 교환을 실시하는 것을 정리한 도면이다.
도 14는 NAND형 플래쉬 메모리 20에 있어서의 페이지 버퍼 102를 구성하는 각 페이지 버퍼를 설명하기 위한 도면이다.
도 15는 address 공간 Add_A와 address 공간 Add_B와의 구성을 나타내는 도면이다.
도 16은 NAND형 플래쉬 메모리 20에 있어서의 컬럼 치환 회로 104의 구성을가리키는 도면이다.
도 17은 NAND형 플래쉬 메모리의 일반적인 블록 구성을 나타내는 도면이다.
도 18은 페이지 버퍼 82를 구성하는 페이지 버퍼 유니트를 설명하기 위한 도면이다.
도 19는 종래의 페이지 버퍼 유니트의 내부의 회로 구성을 나타내는 도면이다.
이하, 도면을 참조하여, 본 발명의 실시의 형태에 대해 설명한다. 덧붙여 이하의 설명에 있어, 동일한 기능 및 구성을 가지는 요소에 대해서는, 동일 부호를 부여하여, 중복 설명은 필요한 경우에만 실시한다.
도 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을 갖추고 있다. 덧붙여 도 17에 나타낸 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은, 도 17에 나타내는 NAND형 플래쉬 메모리 80와는 달리, 컬럼 코딩 회로 83를 대신해, 컬럼 코딩 회로 103, 및 ECC 컬럼 코딩 회로 108을 가진다. 컬럼 코딩 회로 103와 ECC 컬럼 코딩 회로 108는, 별도 계통의 컬럼 주소(Coding)가 입력된다. 또, 컬럼 코딩 회로 103와 ECC 컬럼 코딩 회로 108은, 후술 하는 바와 같이, 페이지 버퍼 102의 PB제어 회로 60로 선택 신호 Sel_A 또는 선택 신호 Sel_B를 출력하여, 페이지 버퍼 102에 직결한 부분(도 18에 보여지는 멀티플렉서 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_PCR102d(이하, 페이지 버퍼 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), PB1 IO 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유니트 각각은, 도 18에 나타내는 비트회로와 동일한 구성의 8개의 비트 회로 51_0 a~51_7 a와, 같은 도 18에 나타낸 멀티플렉서 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에 나타내는 비트 내부 회로는, 도 18에서 가리키는 종래의 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에 나타낸 바와 같이, 불량 정보 격납부 90 a, 및 데이터 고정부 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 신호 fDinEnable의 배선에 접속되고 제2 입력 단자가 논리합 회로 66의 출력 단자에 접속되며 제3 입력 단자가 인버터 회로 67의 출력 단자에 접속된다. 또, 낸드 회로 64의 출력 단자는, 인버터 회로 62의 입력 단자에 접속된다.
낸드 회로 65는, 3 입력 1 출력의 NAND 회로이며, 제1 입력 단자가 기입 enable 신호 fDinEnable의 배선에 접속되고 제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 데이터 버스를 접속하여 데이터를 전송하고, 한편, 제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의 코드 구성, 예를 들어 코드 길이를 몇 개로 하는지, 적(곱) 부호화 하는 경우의 코드 길이 구성의 최적화 등의 과정에 대해, 자유도를 가지고 설계하는 것이 가능하여 보다 최적인 퍼포먼스를 얻을 수가 있다.
(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부의 치환 회로와 비교해, 규모가 작은 Parity부에 전용의 PCR 치환 시스템(패리티 컬럼 치환 회로 105)을 이용하여 설명했지만, 이 구성은 필수는 아니다. 무엇보다, 패리티 컬럼 치환 회로 105는, Parity부의 불량을 구제하는 방법으로서 유용하다. 패리티 컬럼 치환 회로 105를 이용하지 않는 경우에는, 컬럼 1 비트 당 50%(0인가 1인가)의 확률로 1 에러 분의 정정을 할 수 없게 되어 버려, ECC 처리에 있어서의 정정 능력을 해쳐 버린다. 이것에 대해서, 상기 설명과 같이, 패리티 컬럼 치환 회로 105를 이용하여 Parity부의 불량을 구제하면, ECC 정정 능력을 향상시킬 수 있다.
그런데, 상술한 NAND형 플래쉬 메모리 10의 구성에서는, 패리티부의 불량을 치환하기 위해서, 전용의 치환 유니트인 PB_PCR102d(페이지 버퍼 102 d)를 준비할 필요가 있어, 칩 사이즈 증대에 의한 제조 코스트의 증가, ECC 시스템으로서의 시스템의 복잡화가 염려된다. 거기서, 우선, 페이지 버퍼 102 d의 기능을 PB_CR102b(페이지 버퍼 102 b)에 집약하는 것이 생각된다. 또, 제1동작 모드(ECC 모드)에 대해, Main Data용의 컬럼 치환 회로 104를 사용하여, Parity부(페이지 버퍼 102 c)의 불량 비트의 구제 치환을 실시한다. 이것에 의해, NAND형 플래쉬 메모리 10에 있어서의 패리티 컬럼 치환 회로 105가 불필요해진다.
도 10은, NAND형 플래쉬 메모리 20의 블록 구성을 나타내는 도면이다. 덧붙여 블록 20에 대해, 도 1에 나타낸 NAND형 플래쉬 메모리 10과 동일한 부분에는 동일한 부호를 부여하고, 그 설명을 적당히 생략한다. NAND형 플래쉬 메모리 20에서는, 도 1에 나타낸 NAND형 플래쉬 메모리 10에서의 페이지 버퍼 102 d가 삭감되어 있다. 페이지 버퍼 102 c를 구성하는 페이지 버퍼 유니트의 하나에 불량이 있을 경우, 이 페이지 버퍼 유니트는, 페이지 버퍼 102 b를 구성하는 페이지 버퍼 유니트의 1개와 치환된다.
또, 도 1에 나타낸 페이지 버퍼 102 d용의 치환 회로인 패리티 컬럼 치환 회로 105를 삭제하여, 유저가 페이지 버퍼 102 a에 액세스 할 때에 사용하는 컬럼치환회로 104를, 페이지 버퍼 102 c용의 치환 회로로서 이용하는 것으로써 Parity부의 불량 비트를 구제하고 있다.
또, 도 10에서는, 페이지 버퍼 102 a의 인터페이스(입출력부)를 Data_A102a_A, Data_B102a_B와 구별해 도시하고 있다. 여기서, Data_A102a_A는, 도 4 또는 도 5에 나타내는 PB유니트의 데이터 기입 신호 Data_In_A의 배선(이하, Data_A_In버스로 한다), 및 데이터 읽기신호 Data_Out_A의 배선(이하, Data_Out_A버스로 한다)이며, Data_Bus_1( 제2데이터 버스)와 PB 유니트의 PB제어 회로 60을 접속한다. 한편, Data_B102a_B는, 데이터 기입 신호 Data_In_B의 배선(이하, Data_In_B버스로 한다), 및 데이터 읽기 신호 Data_Out_B의 배선(이하, Data_Out_B버스로 한다)이며, ECC_Bus_1와 PB 유니트의 PB제어 회로 60을 접속한다.
도 10에서는, 같은 방법으로, 페이지 버퍼 102 b의 인터페이스를 Data_A102b_A, Data_B102b_B와 구별하여 도시하고 있다. Data_A102b_A는, PB유니트의 Data_A_In, 및 Data_Out_A버스이며, Data_Bus_1와 PB 유니트의 CR/PCR Selector(CR/PCR 선택부)75를 접속한다(도 12 참조). 한편, Data_B102b_B는, Data_In_B버스, 및 Data_Out_B버스이며, ECC_Bus_1와 PB 유니트의 CR/PCR 선택부 75를 접속한다. 덧붙여 PB 유니트의 구성에 대해서는 후술한다.
도 10에서는, 같은 방법으로, 페이지 버퍼 102 c의 인터페이스를 Data_A102c_A, Data_B102c_B와 구별하여 도시하고 있다. Data_A102c_A는, PB유니트의 Data_A_In, 및 Data_Out_A버스이며, Data_Bus_1와 PB 유니트의 PB제어 회로 60을 접속한다(도 11 참조). 한편, Data_B102c_B는, Data_In_B버스, 및 Data_Out_B버스이지만, 도 11에 나타내는 PB 유니트에서는 나타나지 않고, ECC_Bus_1와 PB 유니트의 PB제어 회로를 접속하고 있지 않다. 덧붙여 이것은 PB 유니트의 구성에 의한 것으로, 접속해도 괜찮다(상세 후술).
또, 도 10에서는, ECC 회로 107의 인터페이스(입출력부)를 메인 데이터의 입출력부인 Data I/F107a, Parity I/F107b와 구별하여 도시하고 있다. Data I/F 107a는, ECC_Bus1 및 ECC_Bus2를 경유하여, 페이지 버퍼 102의 PB 유니트 군에 있어서의 Data_B부(Data_B 102a_B, Data_B102b_B)와 ECC 처리와 관련되는 데이터(Main Data)의 교환을 실시한다. 한편, Parity I/F 107b는, Data_Bus_1, Data_Bus_2를 경유하여, 페이지 버퍼 102의 PB유니트 군에 대한 Data_A부(Data_A102b_A, Data_A102c_A)와, ECC처리와 관련되는 데이터(Parity Data)사이의 교환을 실시한다.
제1 동작 모드에 있어서, ECC Data부(페이지 버퍼 102 a, 102 b의 PB 유니트)는 종래와 같이 ECC Bus를 경유한 동작으로 된다. 다만, ECC Parity부(페이지 버퍼 102 c의 PB 유니트)에 대해서는, 이 때 Data Bus를 경유한 패리티 데이터의 교환을 실시하여, 결과, 도 1에 나타내는 컬럼 치환회로 105가 불필요해지는 구성으로 된다. 덧붙여 상기 ECC Data부, ECC Parity부와 ECC 회로 107의 데이터의 교환을 동시에 실시할 수가 있다.
여기서, 페이지 버퍼 102 a~102 c에 있어서의 각 PB 유니트의 구성에 대해 설명한다.
우선, 페이지 버퍼 102 a의 PB 유니트에 대해서는, 도 4 또는 도 5에 나타내는 회로구성이 이용될 수 있다.
다음에, 도 11은, 페이지 버퍼 102 c에 있어서의 PB 유니트의 내부의 회로 구성을 가리키는 도면이다. 덧붙여 도 11에 대해, 도 4, 및 도 5와 같은 부분은 동일한 부호를 부여하여, 그 설명을 생략한다.
도 5에 나타낸 PB 유니트의 구성과 다른 부분을 구체적으로 설명한다. 도 11에 나타낸 PB 유니트는, 도 5에 나타낸 PB 유니트에서, 트랜지스터 61 b, 트랜지스터 61c, 스윗치 69, 인버터 회로 67의 입력을 pull-up 처리하는 PMOS 트랜지스터, 앤드 회로 71을 삭제한 구성이다. 또, 도 11에 나타낸 PB 유니트에서는, 선택신호 Sel_B가 입력되지 않는 구성으로 되는 것으로, 도 5에 나타낸 논리합 회로 66은, 도 11에 나타낸 PB 유니트에서는 앤드 회로 66 a가 되어, 앤드 회로 66 a의 제1 입력단자는, 선택 신호 Sel_A의 배선에 접속된다.
이와 같이, 페이지 버퍼 102 c의 PB 유니트에 대해서는, 도 11에 나타낸 바와 같이, Data_In_B버스, 및 Data_Out_B버스와 관련되는 부분을 생략한 형식을 취할 수가 있다.
무엇보다, PB 유니트를, 도 4 또는 도 5에 나타낸 구성인 상태에서, 선택 신호 Sel_B를 Low 레벨에 고정(Lo Fix)과 하는 것으로써, Data_In_B 버스, 및 Data_Out_B버스를 사용하지 않도록 하는 구성도 괜찮다. 이 경우, Data_B102c는, Data_In_B버스, 및 Data_Out_B버스이며, ECC_Bus_1와 PB 유니트의 PB제어 회로 60을 접속하는 인터페이스라고 할 수 있다. 다만, ECC_Bus_1과 PB 유니트의 PB제어 회로 60는 실제로 접속되는 것은 아니다.
다음으로, 도 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용 중 어느 쪽에 할당되었는 지를 나타내는 정보에 근거하여, Data_In_A버스, 및 Data_In_B버스와 PB제어 회로 60의 접속, 혹은 Data_Out_A버스, 및 Data_Out_B버스와 PB제어 회로 60의 접속을 절체한다.
우선, 도 12를 참조하여, CR/PCR 정보 격납부 70의 회로 구성에 대해 설명하고, 그의 CR/PCR 정보 격납부 70로의 전원 투입시에 있어서의 데이터 래치 처리에 대해 설명한다. 덧붙여 이 데이터 래치 처리는 일례이며, 이 일 예에서는, 선택 신호 Sel_A에 관련된 불량 정보를, NAND형 플래쉬 메모리 20의 예를 들면 시스템용 기억 영역에 기록하고, 이것을 불량 정보 격납부 90 a에 대응하는 래치, 및 CR/PCR 정보 격납부 70에 전송하는 동작을 설명한다. 덧붙여 불량 정보 격납부 90 a의 회로 구성에 대해서는, 도 4, 및 도 5를 이용해 설명했으므로, 그 설명을 생략한다.
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에는, 래치부가 기억하는 데이터가, CR/PCR Selector 75에 있어서의 접속 제어를 행하는 전환 신호 Sel_CR로서 나타난다. 또, 접속점N6는, 래치부가 기억하는 데이터가, CR/PCR Selector75에 있어서의 접속 제어를 행하는 전환 신호 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, 및 트랜지스터 16의 다른 편이 온 한다. 이것에 의해, 노드 N3가 H레벨, 노드 N5, 및 노드 N6의 한편이 H레벨, 노드 N4가 L레벨, 노드 N5, 및 노드 N6의 다른 편이 L레벨이 되어, 결함 신호 PB_Defcet가 H레벨, 전환신호 Sel_CR, 및 전환 신호 Sele_PCR의 한편이 H레벨이 된다. 그리고, 불량 정보 격납부 90 a, 및 CR/PCR 정보 격납부 70은, 전송 기간 종료 후, 파워 온 리셋트 신호 POR_Mode가 L레벨이 되는 것에 의해, 이후의 NAND형 플래쉬 메모리 20에 전원이 투입되고 있는 기간에, 결함 신호 PB_Defcet를 H레벨, 전환 신호 Sel_CR, 및 전환 신호 Sele_PCR의 한편을 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버스(데이터 읽기 신호 Data_Out_B를 전송 하는 배선)에 접속된다.
트랜지스터 119는, 드레인 또는 소스의 한편이 Data_Out_A버스(데이터 읽기 신호 Data_Out_A를 전송 하는 배선), 게이트가 전환 신호 Sel_PCR의 배선에 접속되며 드레인 또는 소스의 한편이 트랜지스터 118의 드레인에 접속된다.
덧붙여 Data_Out_A버스, Data_Out_B버스에는, 각각 Pull Up회로가 접속되고 있다.
트랜지스터 120은, 드레인이 트랜지스터 69의 소스(도 5에서는 스윗치 69 의 제2 입력단자), 게이트가 전환 신호 Sel_CR의 배선에 접속되며 소스가 Data_In_B버스(데이터 기입 신호 Data_In_B를 전송 하는 배선)에 접속된다.
트랜지스터 121은, 드레인 또는 소스의 한편이 Data_In_A버스(데이터 기입 신호 Data_In_A를 전송 하는 배선), 게이트가 전환 신호 Sel_PCR의 배선에 접속되며 드레인 또는 소스의 한편이 트랜지스터 120의 드레인에 접속된다.
덧붙여 도 12에 대해, CR/PCR 정보 격납부 70와 CR/PCR 선택부 75는, 도 5에 나타낸 PB 유니트에 추가된 구성으로 되어 있지만, 도 4에 나타낸 PB 유니트에 추가된 구성이어도 좋다. 또, CR/PCR 정보 격납부 70와 CR/PCR 선택부 75는, 회로 배치적으로 PB 유니트에 삽입될 필요는 없고, PB 유니트와는 개별적으로 된 구성일 수 있다. CR/PCR 정보 격납부 70은, 다른 등가적인 논리회로, 예를 들면 플립플롭등에 의해도 구성 가능하다.
계속되어, 상기한 바와 같은 구성을 가지는 PB 유니트의 회로 동작에 대해 설명한다. 또한, PB유니트가 CR용의 PB 유니트로서 설정되어 CR용의 PB 유니트로서 사용되는 경우는, NAND형 플래쉬 메모리 10과 다르지 않기 때문에 동작 설명을 생략한다. 여기에서는, PB유니트가 PCR용의 PB 유니트로서 설정되어 PCR용의 PB 유니트로서 사용되는 경우에 대해 설명한다.
PCR용의 PB 유니트로서 사용하는 경우는, 상술한 대로, 전환 신호 Sel_PCR가 H레벨이 되는 데이터가 래치 되고 있다. 이 상태로 제1 동작 모드(선택 신호 Sel_B를 이용하는 ECC 동작 모드)에서 PB제어 회로 60에 액세스했을 경우, 데이터 기입 동작 때는, 데이터 기입 신호 Data_In_A가 트랜지스터 121을 경유해 PB제어 회로 60에 받아들여져 데이터 기입 신호 Data_In_B는 무시된다. 데이터 읽기 동작 때는, PB제어회로 60으로부터의 데이터가, 트랜지스터 119를 경유해 Data_Out_A버스에 출력되고 동시에 Data_Out_B버스에는 Pull Up회로에 의한 고정치가 출력된다.
한편, 제2동작 모드(선택 신호 Sel_A를 이용하는 통상 동작 모드)의 경우는, NAND형 플래쉬 메모리 10과 같이, PB제어 회로 60은 데이터 기입 동작 때는, Data_In_A버스와 데이터 읽기 동작 때는 Data_Out_A버스와 데이터의 교환을 실시한다.
도 13은, CR/PCR 정보 격납부 70의 보관 유지하는 데이터에 의해, Data Bus, 및 ECC Bus 중의 어느 버스를 이용해 데이터의 교환을 실시하는 지를 정리한 도면이다. 상술한 대로, 계속 동작을 설명하는 NAND형 플래쉬 메모리 20에서는, 도 12에 가리키는 페이지 버퍼 102 b의 PB 유니트를, 도 13에 나타낸 데이터 버스를 이용해 CR/PCR 정보 격납부 70의 보관 유지하는 데이터에 의해 동작시키는 것이 중요하다. 덧붙여 도 12에 나타낸 PB 유니트는, NMOS의 스윗치(트랜지스터 119, 121)를 이용하여, 도 13에 나타낸 동작을 실현하는 PB 유니트의 예이지만, NMOS의 스윗치로 바꾸어 논리 회로를 실장하여 동등의 기능을 실현해도 괜찮다.
계속하여, NAND형 플래쉬 메모리 20의 동작에 대해, 도면을 참조하여 설명한다.
도 14는, NAND형 플래쉬 메모리 20에 있어서의 페이지 버퍼 102를 구성하는 각 페이지 버퍼를 설명하기 위한 도면이다.
도 14(a)는, 본 실시 형태의 NAND형 플래쉬 메모리 20의 동작에 있어서의 ECC 코드 구성과 PB 유니트와의 관계를 나타내고 있다. PB 유니트는, 본 실시 형태에서는 합계 320개가 존재하고, Add_A의 address 공간에 대해 1 주소에 1개의 PB 유니트를 할당할 수 있어, 도 14(a)에 나타낸 0~319의 주소 Add_A(PB 유니트를 선택하는 선택 신호 Sel_A;제2 선택 주소)가, 각각 PB 유니트 0~PB 유니트 319에 할당되고 있다.
여기서, PB 유니트 0~PB 유니트 255(페이지 버퍼 102 a)는, Main Data부에서 유저가 읽고 쓰기를 실시할 수 있는 영역이다. 또, PB 유니트 256~287은 CR/PCR용의 PB 유니트 255(페이지 버퍼 102 b)로 되어 있어, 페이지 버퍼 102 a 또는 페이지 버퍼 102 c에 있어서의 불량 비트선의 치환처로서 준비되어 있다. PB 유니트 288~PB 유니트 319는 ECC Parity의 영역(페이지 버퍼 102 c)이다. 여기서, ECC 코드의 ECC Data부는 PB 유니트 0~PB 유니트 287의 데이터로 되고, Parity부는 PB 유니트 288~PB 유니트 319의 데이터로 된다.
또, 도 14(b)는, PB 유니트 1 및 PB 유니트 289가 불량 비트를 포함하는 PB유니트이고, 각각 CR/PCR용의 PB 유니트의 PB 유니트 256, PB 유니트 287의 PB유니트로 치환되도록 설정된 예를 나타내고 있다.
도 15는, address 공간 Add_A와 address 공간 Add_B와의 구성을 나타내는 도면이다. Add_B공간은, PB유니트를 정리하여 1개의 주소 Add_B(PB 유니트를 선택하는 선택 신호 Sel_B;제1 선택 주소)로 할당하고 있다. 예를 들면, Add_B_0(Add_B공간의 0번지)에서는, Add_A공간에서 언급된 PB 유니트 0, PB 유니트 32, PB 유니트 64, PB 유니트 96, PB 유니트 128, PB 유니트 160, PB 유니트 192, PB 유니트 224, PB 유니트 256, 및, PB 유니트 288의 10개의 PB 유니트로 1 주소가 구성되고 있다. 또, 예를 들면, Add_B_1에서는 PB 유니트 1, PB 유니트 33, PB 유니트 65,···와 같이, 같은 10개의 PB 유니트로 1 주소가 구성되어 있다. 이것에 의해, 페이지 버퍼 102를 구성하는 PB 유니트 0~PB 유니트 319로 ECC 회로(ECC Engine)와의 데이터의 수수를, Add_A로 실시한다고 하면 단순하게 320회의 액세스를 실시하여야 하지만, Add_B로 실시한다고 하면 32회의 액세스로 끝나게 된다.
덧붙여 위에서 설명한 바와 같이, Add_A의 공간을 이용하여, 간단하게 하기 위해서 1 주소 1 비트 구성으로 하고 있지만, 1 주소 8 비트(8 IO)나 16 비트(16 비트)등의 다 비트의 구성이라고 해도 좋다. 이 경우, 이것은 PB 유니트를 비트 수 만큼 준비하는 것에 의해 구성할 수 있다. 또, 예시한 address 공간은 변경할 수가 있어 PB 유니트를 복수 배치하여 복수 주소의 병렬 동작이 가능한 구성도 포함된다.
도 16은, NAND형 플래쉬 메모리 20에 있어서의 컬럼 치환 회로 104의 구성을 시한 도면이다.
컬럼 치환 회로 104는, 도 16(a)에 나타내는 주소 비교부 104_1와 도 16(b)에 나타내는 데이터 버스 치환부 104_2로 구성된다.
주소 비교부 104_1은, Address Conversion Circuit(주소 변환 회로) 104_1 a, Address Comparison Circuit(주소 비교 회로) 104_1 b, 트랜스퍼 게이트 TGN, 트랜스퍼 게이트 TGE로 구성된다.
주소 비교 회로 104_1 a는, 입력되는 주소 Add_A와 회로 내부에 보존하고 있는 불량 비트 정보를 비교해, 일치했을 경우, 해당하는 치환처의 CR_Hit 신호)를 출력한다. 한편, 주소 비교 회로 104_1 a는, 일치하지 않는 경우, 히트하지 않는 것을 가리키는, 예를 들면 H레벨의 NO_CR_Hit 신호를 출력한다.
트랜스퍼 게이트 TGN는, 통상 동작 모드(제2동작 모드) 시에 H레벨로 되는 모드 신호 Normal_Mode가 입력되면, Add_A(선택 신호 Sel_A)를 통과시켜, 주소 비교 회로 104_1 a에 주소 Add_A를 입력한다.
한편, 트랜스퍼 게이트 TGE는, ECC 동작 모드(제1동작 모드) 시에 H레벨이 되는 모드 신호 ECC_Mode가 입력되면, Add_A_Parity를 통과시켜, 주소 비교 회로 104_1 a에 주소 Add_A를 입력한다.
어드레스 변환 회로 104_1 b는, Add_B(선택 신호 Sel_B)를, ECC_Parity의 Add_A공간에 있어서의 값인 Add_A_Parity로 변환하여, 변환 후의 Add_A_Parity를 트랜스퍼 게이트 TGE에 대해서 출력한다.
데이터 버스 치환부 104_2는, 트랜스퍼 게이트 TGW_NH, 트랜스퍼 게이트 TGW_0~ 트랜스퍼 게이트 TGW_31, 트랜스퍼 게이트 TGR_NH, 트랜스퍼 게이트 TGR_0~트랜스퍼 게이트 TGR_31로 구성된다.
트랜스퍼 게이트 TGW_NH, 트랜스퍼 게이트 TGW_0~트랜스퍼 게이트 TGW_31은, 주소 비교 회로 104_1 a로부터 대응하는 CR_Hit 신호가 입력되면, Data Bus_2(Write) 또는 치환처의 Data_In_A_256 버스~Data_In_A_287 버스 가운데, 1개의 데이터 버스와 Data Bus_3(Write)을 접속한다. 여기서, Data Bus_2(Write), Data Bus_3(Write)은, 각각 도 10에 나타내는 Data Bus_2, Data Bus_3의 데이터 기입 신호가 전송 되는 배선이다. 또, Data_In_A_256 버스~Data_In_A_287 버스는, 각각 PB 유니트 256~PB 유니트 287의 Data_In_A버스(도 12 참조)이다.
트랜스퍼 게이트 TGR_NH, 트랜스퍼 게이트 TGR_0~트랜스퍼 게이트 TGR_31은, 주소 비교 회로 104_1 a로부터 대응하는 CR_Hit 신호가 입력되면, Data Bus_2(Read) 또는 치환처의 Data_Out_A_256 버스~Data_Out_A_287 버스 가운데, 1개의 데이터 버스와 Data Bus_3(Read)을 접속한다. 여기서, Data Bus_2(Read), Data Bus_3(Read)은, 각각 도 10에 나타내는 Data Bus_2, Data Bus_3의 데이터 읽기 신호가 전송 되는 배선이다. 또, Data_Out_A_256 버스~Data_Out_A_287 버스는, 각각 PB 유니트 256~PB 유니트 287의 Data_Out_A버스(도 12 참조)이다.
상술한 바와 같이 NAND형 플래쉬 메모리 20에서는, Parity 전용의 리던던시영역(도 1에 나타낸 페이지 버퍼 102 d)를 필요로 하지 않아, 한층 더 Parity부(페이지 버퍼 102 c)의 불량 비트를 CR/PCR 치환용의 PB유니트(페이지 버퍼 102 b)와 치환하는 패리티 컬럼 치환 회로 105를 불필요로 한다. 이하, NAND형 플래쉬 메모리 20의 ECC 동작 모드(제1동작 모드)에 대해 설명한다.
[encode 동작]
덧붙여 encode 동작의 설명에서는, NAND형 플래쉬 메모리 10의 설명과의 중복을 막기 위해, 유저가 I/O패드 106으로부터 데이터를 입력하고, 각 PB유니트에 데이터가 격납된 상태로부터, encode를 개시하는 것부터 설명한다.
encode 동작에서는, PB 유니트에 격납된 데이터를 ECC 회로 107에 전송하고, Parity(패리티 데이터)를 생성하여, PB 유니트에 재기입하는 동작을 한다.
Add_B 공간은, 도 15에 나타낸 것처럼 되어 있어 10개의 PB유니트의 데이터가 동시에 ECC 회로 107에 전송된다. 여기서, ECC Data부(페이지 버퍼 102 a, 및 페이지 버퍼 102 b)의 9개의 PB 유니트에 대해서는, ECC_Bus_1, ECC_Bus_2를 경유해, 불량 비트 구제를 실시하지 않는 경로에서 전송된다.
ECC_Parity부(페이지 버퍼 102 c)의 PB 유니트는, Data_Bus_1, Data_Bus_2, Data_Bus_3을 경유해 전송되어 불량비트는, 컬럼 치환 회로 104에 대해 정상 비트와 치환된다.
상세하게 설명하기 위해서, 도 15에 나타낸 Add_B_1의 데이터 전송을 실시하는 경우를 생각한다. 도 15에 나타내는, Add_A공간에 있어서의 PB 유니트 1, PB 유니트 33, PB 유니트 65,···, PB 유니트 225, PB 유니트 257에 격납된 데이터는, ECC_Bus를 경유해 전송되지만, PB 유니트 1은, 불량 비트를 포함하기 때문에 고정치를 출력한다. 불량 PB유니트 289는 ECC_Parity부(페이지 버퍼102 c)이므로, PB유니트의 Data_A부(인터페이스부)로부터 Data_Bus_1, Data_Bus_2를 경유해, 컬럼 치환 회로 104에 고정치를 인가한다.
또, PB유니트 289의 치환처로서 할당될 수 있었던 PB유니트 287은, 도 12에 있어서의 전환 신호 Sel_PCR가 H레벨이 되어 있을 것이므로, Data_Out_A버스로부터 Data_Bus_1, Data_Bus_2를 경유하여, 컬럼 치환 회로 104에 데이터를 인가한다.
여기서, 컬럼 치환 회로 104에는 Add_A공간의 주소치 289가 인가되고, 또 Add_A에 있어서의 289는 불량이며, 287으로 치환하는 설정이 되고 있는 것으로부터, PB유니트 289의 데이터는 PB유니트 287로 치환되어 ECC 회로 107로 전송된다. 덧붙여 여기에서는, 아직 Parity(패리티 데이터) 생성 전이므로, 이 전송 동작은 생략할 수가 있다.
그리고 Add_B_31까지 반복해 동작하는 것으로, ECC에의 데이터 전송은 완료하여, Parity가 생성된다. 전술한 바와 같이, PB유니트 287은 ECC_Parity의 치환처로서 지정되고 있기 때문에, Add_B_31 의 경우에 ECC_Data로 읽혀진 경우에는, 전술한 도 12에 있어서의 전환 신호 Sel_PCR가 H레벨, 전환 신호 Sel_CR가 L레벨이기 때문에, Data_Out_B버스에는 고정치가 출력되어, 결과적으로 ECC 회로 107의 ECC Data부에는 고정치가 읽어 내진다.
Parity(패리티 데이터)를 생성한 후, PB유니트에 재 기입을 실시하는 경우에도 같은 경로에서 행해진다. 덧붙여 Add_B_1 일 때, ECC_Data부는 다시 쓰기를 하지 않아도 되지만, 다시 쓰는 경우, 불량 비트를 포함한 PB 유니트 1은 기입이 허가되지 않는다. 한편, PB 유니트 33, PB 유니트 65,···, PB 유니트 225, PB 유니트 257에는 Data가 재기입된다. Ecc_Parity(패리티 데이터)는, 도 10에 나타낸 바와 같이, ECC 회로 107로부터 Data_Bus_3로 출력된다.
컬럼 치환 회로 104에 대해서는, Add_B_1의 경우, 도 15에 나타낸 바와 같이, ECC_Parity의 Add_A공간에 있어서의 값은 289이므로, Add_B는 1을 나타내고, Add_A_Parity는 289를 나타내게 된다. 이 값이 Add_A가 되어, 주소 비교부 104_1의 주소 비교 회로 104_1 a에 입력된다. 도 14(b)에 나타낸 바로서, 289는 불량 비트이며 287으로 치환하기로 되어 있으므로, 주소 비교 회로 104_1 a에 대해 주소와 불량 비트 정보와의 비교는 일치한다. 이 비교결과에 의해, 주소 비교 회로 104_1 a는, CR_Hit_31에 대해서는 H레벨, 그 외의 출력은 L레벨을 출력한다.
이 CR_Hit_31은, 도 16(b)에 나타낸 트랜스퍼 게이트 TGW_31로 입력되고, 트랜스퍼 게이트 TGW_31은 Data_Bus_3(Write)과 Data_In_A_287 버스를 전기적으로 접속한다.
따라서, ECC 회로 107으로부터 출력된 Parity 데이터는, Add_B공간으로부터 Add_A공간에 변환된 주소를 컬럼 치환 회로 104에 입력하는 것으로써, 치환동작이 가능해진다. 덧붙여, 치환이 없는 경우에는, No_CR_Hit가 H레벨, 그 외는 L레벨이 되어, Data_Bus_3(Write)과 Data_Bus_2가 전기적으로 접속되어 ECC_Bus_2에서 컬럼 코딩 회로 103로 입력된다. 컬럼 코딩 회로 103에 인가되는 주소도, 컬럼 치환 회로 104에 보여지는 바와 같이 ECC_Parity의 Add_A공간에 대한 값Add_A가 주어지기 때문에, 해당되는 Parity용 PB유니트가 선택되어 Parity가 격납된다.
[디코드 동작]
디코드 동작에서는, PB유니트에 격납되고 있는 메모리 셀 어레이로부터 읽어낸 데이터를 ECC로 전송하고, 에러 정정을 실시하여, PB유니트에 다시 쓰는 동작을 실시한다. 덧붙여 PB유니트에서 ECC 회로 107로의 데이터의 전송에 대해서는, encode시와 거의 동일하므로 적당히, 설명을 생략한다. ECC_Parity부의 PB 유니트의 데이터는, Data_Bus_1, Data_Bus_2, Data_Bus_3을 경유하여 전송되고, 불량 비트는 컬럼 치환 회로 104에서 정상 비트와 치환된다. encode시에는, 이 동작은 하지 않아도 되었지만, 디코드시에는 모든 Parity부를 올바르게 ECC에 전송하기 위해서 필요하다.
상세하게 설명하기 위해서, Add_B_1의 데이터 전송을 실시하는 경우를 생각한다. 도 16(a)의 어드레스 변환 회로 104_1 b에 입력되는 Add_B는 1로, 도 5에 나타낸 바와 같이 변환된 Add_A_Parity는 289가 된다. 그리고, 이 때는 모드 신호 ECC_Mode는 H레벨이며, 이 289가 Add_A로서 주소 비교 회로 104_1 a로 인가될 수 있다. 주소 비교 회로 104_1 a에서는, Add_A의 289는 불량비트 어드레스와 일치하므로, CR_Hit_31을 H레벨, 그 외는 L레벨로서 출력한다. 도 6(b)에 나타낸 버스 치환부 104_2에 대해, Add_A에 있어서의 PB유니트 289의 데이터가 치환되어, 본래 PB유니트 287에 보존될 데이터가 ECC_Bus_3에 출력되고 그리고 ECC 회로 107로 전송 된다.
그리고, 도 15에 나타내는 Add_B_31까지 반복해 동작하는 것으로, ECC 회로 107로의 데이터 전송은 완료되어, 에러 정정을 하여 PB유니트에의 재 기입을 한다. 이 때의 동작은 encode시의 Parity의 재 기입과 같아서, 설명을 생략한다.
덧붙여 디코드시의 데이터의 재 기입에 대해서는, 정정 후의 데이터를 PB유니트에 재기입하는 방식뿐만이 아니라, 예를 들어 에러의 검출된 비트에 H레벨, 에러가 없는 비트에는 L를 주는 것과 같은 데이터를 PB 유니트에 보내어, PB 유니트에 대해, 메모리 어레이로부터 읽어낸 데이터와 이 에러 검출 데이터와의 배타적 논리 연산을 하는 것으로부터, 에러 검출된 비트만 반전시키는 것 같은 방식에도 적용 가능하다.
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페이지 버퍼, 및 제3 페이지 버퍼와 접속되고 제2데이터 버스는, 제1페이지 버퍼, 제2 페이지 버퍼, 및 제3 페이지 버퍼와 접속된다.
또, 페이지 버퍼 102 b( 제3의 페이지 버퍼)는, 제1 페이지 버퍼, 및 제2 페이지 버퍼의 어느 한편의 치환처로서 치환되었는지를 나타내는 식별 데이터가 미리 기입되어 있어 식별 데이터에 응답하여 제1 페이지 버퍼 또는 제2 페이지 버퍼로서의 동작을 실행한다.
또, NAND형 플래쉬 메모리 20은, 제1데이터 버스에 접속되는 것과 동시에, 패리티 데이터 입출력부에 입력되는 제2페이지 버퍼의 출력 데이터에 근거하여, 데이터 입출력부에 입력되는 제1페이지 버퍼의 출력 데이터의 에러를 정정하는 ECC 회로 107을 구비한다. 또, NAND형 플래쉬 메모리 20은, 제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의 패리티 데이터 입출력부로부터의 패리티 데이터가 입력된다.
NAND형 플래쉬 메모리 20에 의하면, 다음의 효과를 얻을 수 있다.
(1) Parity 전용의 치환 영역 PCR(NAND형 플래쉬 메모리 20의 페이지 버퍼 102 d)가 불필요해져, 설계 코스트, 테스트 코스트, 면적 축소에 의한 코스트 삭감이 가능해진다.
(2) Parity 전용의 불량 치환 기구(NAND형 플래쉬 메모리 20의 패리티 컬럼 치환 회로 105)가 불필요하게 되어, 설계 코스트, 면적 축소에 의한 코스트 삭감이 가능하다.
(3) 상기(1), 및 (2)에서의 기재 효과를 가지면서, ECC_Data부와 ECC_Parity부를 같은 시각에 읽기 혹은 기입 하는 것이 가능하고, 처리 속도의 면에서도 우위성을 가진다.
(4) 또, Add_A공간만 사용해 ECC를 실행했을 경우, 도 15에 나타내는 주소할당의 예에서는 320회의 읽기와 320회의 기입을 실시할 필요가 있다. 본 발명의 경우에는 32회의 읽기와 32회의 기입으로 처리할 수 있어 처리 시간을 10분의 1으로 할 수 있다. 주소 할당에 의해 처리 시간은 변하지만, Add_B의 버스폭을 넓히는 것 같은 할당을 선택할 경우 더욱 단축할 수 있는 효과를 얻을 수 있다.
(5) ECC용의 주소 Add_B의 할당에 있어서, ECC_Parity의 부분은, 컬럼 치환 회로 104로 Add_A의 할당으로 인가되는 것이 가능한 범위에서, 자유롭게 Add_B를 설정할 수 있다.
이상, 이 발명의 실시 형태를, 도면을 참조하여 상술해 왔지만, 구체적인 구성은 이 실시형태에 한정되는 것은 아니고, 이 발명의 요지를 일탈하지 않는 범위의 설계 등도 포함된다.
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 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되고, 상기 제2 데이터 버스는, 상기 제1 페이지 버퍼, 상기 제2 페이지 버퍼, 및 상기 제3 페이지 버퍼와 접속되고,
    상기 제1 페이지 버퍼의 출력 데이터의 에러를 정정하는 ECC 회로를 더 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 제3 페이지 버퍼는, 상기 제1 페이지 버퍼, 및 상기 제2 페이지 버퍼 중의 어느 한편의 치환처로서 치환되었는지를 나타내는 식별 데이터가 미리 기입되어 있어, 상기 식별 데이터에 응답하여 상기 제1 페이지 버퍼 또는 상기 제2 페이지 버퍼로서의 동작을 실행하는 것을 특징으로 하는 반도체 메모리 장치.
  3. 제2항에 있어서,
    상기 ECC 회로는, 상기 제1 데이터 버스에 접속된 데이터 입출력부에 입력되는 상기 제1 페이지 버퍼의 상기 출력 데이터의 에러를, 상기 제2 데이터 버스에 접속된 패리티 데이터 입출력부에 입력되는 상기 제2 페이지 버퍼의 출력 데이터에 근거하여, 정정하고,
    상기 제2 데이터 버스에 접속됨과 함께, 상기 제2 동작 모드에서, 상기 제1 페이지 버퍼 중 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼를 상기 제3 페이지 버퍼로 치환하는 구제 치환 회로를 더 포함하고,
    상기 제3 페이지 버퍼의 상기 식별 데이터가 상기 제2 페이지 버퍼의 치환처로서 치환된 것을 나타내는 경우, 상기 구제 치환 회로는, 상기 제1 동작 모드에 서 치환원인 상기 제2 페이지 버퍼를 선택하고, 상기 제1 동작 모드에서 제1 선택 주소가 입력되면, 입력되는 상기 제1 선택 주소를 상기 제2 동작 모드에 있어서의 제2 선택 주소로 변환하고,
    상기 변환 후의 제2 선택 주소와, 치환원인 상기 제2 페이지 버퍼에 대해서 미리 설정된 제2 동작 모드에 있어서의 제2 선택 주소를 비교하고,
    비교 결과가 일치하는 경우에, 치환처의 상기 제3 페이지 버퍼와 상기 제2 데이터 버스를 접속하고,
    치환처의 상기 제3 페이지 버퍼는, 상기 제1 동작 모드의 데이터 읽기 동작에서, 상기 제1 데이터 버스로 고정 데이터를, 상기 제2 데이터 버스로 패리티 데이터를 각각 출력하고,
    한편, 상기 제1 동작 모드에서의 데이터 기입 동작에서, 상기 제1 데이터 버스로부터의 데이터 기입을 허가하지 않고, 상기 제2 데이터 버스로부터의 패리티 데이터의 기입을 허가하는,
    것을 특징으로 하는 반도체 메모리 장치.
  4. 제3항에 있어서,
    상기 제1 페이지 버퍼는, 메모리 셀 또는 비트선에 불량이 있는 페이지 버퍼의 출력이 고정된 데이터가 되도록 하는 페이지 버퍼 제어 회로를 구비하고,
    상기 페이지 버퍼 제어 회로는, 메모리 셀 또는 비트선에 불량이 있는 경우, 상기 제1 데이터 버스로부터의 기입을 허가하지 않는 것을 특징으로 하는 반도체 메모리 장치.
  5. 통상 데이터를 저장하는 제1 페이지 버퍼, 패리티 데이터를 저장하는 제2 페이지 버퍼, 및 불량 컬럼 구제를 위한 치환 시 공유 페이지 버퍼로서 기능하기 위해 상기 제1,2 페이지 버퍼들 내의 선택된 페이지 버퍼 유니트로서 동작하는 제3 페이지 버퍼를 포함하는 데이터 전송부; 및
    상기 제1,2 페이지 버퍼들의 불량 페이지 버퍼 유니트를 상기 제3 페이지 버퍼 내의 페이지 버퍼 유니트로 치환할 때 공통으로 사용되기 위해 구성된 구제 치환회로를 구비하는 반도체 메모리 장치.
  6. 제5항에 있어서,
    상기 제1,3 페이지 버퍼들과 접속되는 제1 데이터 버스에 접속된 데이터 입출력부에 입력되는 상기 제1 페이지 버퍼의 출력 데이터 에러를, 상기 제1 데이터 버스와는 독립적인 제2 데이터 버스에 접속된 패리티 데이터 입출력부에 입력되는 상기 제2 페이지 버퍼의 출력 데이터에 근거하여, 정정하는 ECC 회로를 더 구비하는 반도체 메모리 장치.
  7. 제6항에 있어서,
    상기 제3 페이지 버퍼는 상기 제1,2 페이지 버퍼들 중 어느 페이지 버퍼의 페이지 버퍼 유니트를 치환하였는 지를 나타내는 식별 데이터를 미리 기입하고 있는 반도체 메모리 장치.
  8. 제7항에 있어서, 상기 구제 치환회로는,
    상기 제3 페이지 버퍼의 상기 식별 데이터가 상기 제2 페이지 버퍼의 치환처로서 치환된 것을 나타내는 경우, 제1 동작 모드에서 상기 제2 페이지 버퍼를 선택하고, 상기 제1 동작 모드에서 제1 선택 주소를 제2 동작 모드에 있어서의 제2 선택 주소로 변환하는 주소 비교부; 및
    상기 제1 동작 모드의 데이터 읽기 동작에서, 상기 제3 페이지 버퍼가 상기 제1 데이터 버스로 고정 데이터를, 상기 제2 데이터 버스로 패리티 데이터를 각각 출력하도록 하고, 상기 제1 동작 모드에서의 데이터 기입 동작에서, 상기 제3 페이지 버퍼가 상기 제1 데이터 버스로부터의 데이터 기입을 허가하지 않고, 상기 제2 데이터 버스로부터의 패리티 데이터의 기입을 허가하도록 하는 데이터 버스 치환부를 포함하는 반도체 메모리 장치.
  9. 제8항에 있어서, 상기 주소 비교부는,
    상기 제1 선택 주소와 저장된 불량 비트 정보를 비교하여 일치 시에 컬럼 구제 히트신호를 생성하는 주소 비교회로; 및
    상기 제1 동작 모드에서 인가되는 상기 제1 선택 주소를 수신하여 상기 제2 동작 모드에 있어서의 제2 선택 주소로 변환하는 주소 변환회로를 포함하는 반도체 메모리 장치.
  10. 제8항에 있어서, 상기 구제 치환 회로는,
    상기 제1 동작 모드에서는 복수의 비트선 중 상기 제1 데이터 버스와 같은 갯수의 비트선과, 상기 제1 데이터 버스를 서로 접속하여 데이터가 전송되도록 하고,
    상기 제2 동작 모드에서는 복수의 비트선 중 상기 제2 데이터 버스와 같은 갯수의 비트선과 상기 제2 데이터 버스를 서로 접속하여 데이터가 전송되도록 하는 반도체 메모리 장치.
KR1020140062362A 2013-06-20 2014-05-23 반도체 메모리 장치 KR102146071B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/310,326 US9362007B2 (en) 2013-06-20 2014-06-20 Semiconductor memory device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2013-129548 2013-06-20
JP2013129548A JP2015005316A (ja) 2013-06-20 2013-06-20 半導体記憶装置

Publications (2)

Publication Number Publication Date
KR20150001612A KR20150001612A (ko) 2015-01-06
KR102146071B1 true KR102146071B1 (ko) 2020-08-21

Family

ID=52301082

Family Applications (1)

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

Country Status (2)

Country Link
JP (1) JP2015005316A (ko)
KR (1) KR102146071B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015005315A (ja) * 2013-06-20 2015-01-08 三星電子株式会社Samsung Electronics Co.,Ltd. 半導体記憶装置
KR102466239B1 (ko) * 2016-04-05 2022-11-14 에스케이하이닉스 주식회사 메모리 컨트롤러를 포함하는 메모리 시스템 및 그의 동작 방법
KR102469809B1 (ko) * 2016-05-18 2022-11-24 에스케이하이닉스 주식회사 반도체장치
KR102648774B1 (ko) 2016-11-10 2024-03-19 에스케이하이닉스 주식회사 랜더마이즈 동작을 수행하는 반도체 메모리 장치
KR102384702B1 (ko) 2017-04-10 2022-04-11 에스케이하이닉스 주식회사 어드레스 처리 회로 및 이를 포함하는 반도체 장치
KR20210021676A (ko) * 2019-08-19 2021-03-02 에스케이하이닉스 주식회사 페이지 버퍼를 구비하는 반도체 메모리 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2658267B2 (ja) 1988-09-27 1997-09-30 日本電気株式会社 半導体メモリの冗長回路
JP2011197819A (ja) 2010-03-17 2011-10-06 Toshiba Corp 半導体装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100512178B1 (ko) * 2003-05-28 2005-09-02 삼성전자주식회사 플렉서블한 열 리던던시 스킴을 갖는 반도체 메모리 장치
KR100996009B1 (ko) * 2009-02-02 2010-11-22 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
JP2015005315A (ja) * 2013-06-20 2015-01-08 三星電子株式会社Samsung Electronics Co.,Ltd. 半導体記憶装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2658267B2 (ja) 1988-09-27 1997-09-30 日本電気株式会社 半導体メモリの冗長回路
JP2011197819A (ja) 2010-03-17 2011-10-06 Toshiba Corp 半導体装置

Also Published As

Publication number Publication date
KR20150001612A (ko) 2015-01-06
JP2015005316A (ja) 2015-01-08

Similar Documents

Publication Publication Date Title
US10361722B2 (en) Semiconductor memory device performing randomization operation
KR102146071B1 (ko) 반도체 메모리 장치
US9424953B2 (en) Semiconductor memory device including repair circuit
US9013921B2 (en) Semiconductor memory device
US7610542B2 (en) Semiconductor memory in which error correction is performed by on-chip error correction circuit
KR101162271B1 (ko) 반도체 기억장치
US7405985B2 (en) Flexible and area efficient column redundancy for non-volatile memories
US7633800B2 (en) Redundancy scheme in memory
JP5378574B1 (ja) 半導体記憶装置
JP2525112B2 (ja) 誤り訂正回路を備えた不揮発性メモリ装置
JP5657079B1 (ja) 半導体記憶装置
US9362007B2 (en) Semiconductor memory device
JP4284154B2 (ja) マルチチップパッケージ型メモリシステム
JP6164712B1 (ja) フラッシュメモリ
JP5403292B2 (ja) 外部アドレスに応える不良メモリブロックの置き換え
TW202022881A (zh) 用於半導體記憶體的錯誤更正寫碼與資料匯流反轉的裝置與方法
KR102146080B1 (ko) 반도체 메모리 장치
JP2003059290A (ja) 半導体メモリ装置
JPH0831196A (ja) 半導体メモリ
JP2014137834A (ja) 半導体記憶装置
JP2014142976A (ja) 半導体記憶装置
TWI539465B (zh) 半導體儲存裝置及其冗餘方法
JP2014116049A (ja) 半導体記憶装置
TWI478170B (zh) 記憶體裝置以及冗餘方法
JP2014116037A (ja) 半導体記憶装置

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