본 발명은, 테스트 시간을 단축할 수 있는 불휘발성 반도체 기억 장치 및 그 자기 테스트 방법을 제공하는 것을 목적으로 한다.
<실시예>
본 발명의 일 실시예의 불휘발성 반도체 기억 장치는, 정보를 기억하는 메모리 셀과, 상기 메모리 셀에 대하여 테스트를 명령하는 테스트 커맨드가 입력되는 테스트 인터페이스와, 소거 및 기입 가능한 기억 수단으로 구성되고, 상기 테스트 커맨드에 의해 명령된 테스트를 실행하기 위해 필요한 테스트 정보를 기억하는 테스트 기억 회로와, 상기 테스트 인터페이스에 입력된 상기 테스트 커맨드를 디코드하고, 상기 테스트 기억 회로에 기억된 상기 테스트 정보를 선택하는 디코더와, 상기 테스트 기억 회로로부터 상기 디코더에 의해 선택된 상기 테스트 정보를 판독하는 센스 앰프와, 상기 센스 앰프에서 판독한 상기 테스트 정보를 유지하는 유지 회로와, 상기 유지 회로에 유지된 상기 테스트 정보에 기초하여, 상기 메모리 셀이 정상적으로 동작하는지의 여부의 테스트 동작을 제어하는 제어 회로와, 상기 메모리 셀이 정상적으로 동작하지 않을 때, 상기 메모리 셀이 불량인 것을 기억하는 불량 기억 회로를 구비하는 것을 특징으로 한다.
또한, 본 발명의 일 실시예의 불휘발성 반도체 기억 장치의 자기 테스트 방법은, 테스트 커맨드에 의해 명령되는 테스트를 실행하기 위해 필요한 테스트 정보를, 소거 및 기입 가능한 기억 수단으로 구성된 테스트 기억 회로에 기입하는 스텝과, 상기 테스트 커맨드를 입력하는 스텝과, 상기 입력된 상기 테스트 커맨드에 따라, 상기 테스트 기억 회로로부터 상기 테스트 정보를 선택하는 스텝과, 상기 선택된 상기 테스트 정보를 상기 테스트 기억 회로로부터 판독하여, 유지하는 스텝과, 상기 유지된 상기 테스트 정보에 기초하여, 상기 메모리 셀이 정상적으로 동작하는지의 여부의 테스트 동작을 제어하는 스텝과, 상기 메모리 셀이 정상적으로 동작하지 않을 때, 상기 메모리 셀이 불량인 것을 기억하는 스텝과, 상기 메모리 셀이 불량인 것이 기억되어 있을 때, 상기 불량의 메모리 셀을 용장 메모리 셀로 치환하는 스텝과, 상기 불량의 메모리 셀이 상기 용장 메모리 셀로 치환되어 있는 것을 기억하는 스텝을 구비하는 것을 특징으로 한다.
<실시예>
이하, 도면을 참조하여 본 발명의 실시예의 불휘발성 반도체 기억 장치에 대해 설명한다. 여기에서는, NOR형 플래시 메모리를 예로 든다. 설명할 때, 전체 도면에 걸쳐, 공통하는 부분에는 공통하는 참조 부호를 붙인다.
본 발명의 실시예의 NOR형 플래시 메모리에 대해 설명한다. 도 1은, 실시예의 NOR형 플래시 메모리의 구성을 도시하는 블록도이다.
이 NOR형 플래시 메모리는, 유저 패드(11), 유저 인터페이스(12), 커맨드 유저 인터페이스(CUI)(13), 제어 회로(14), 블록 어드레스 버퍼 및 카운터(15), 로우 컬럼 어드레스 버퍼 및 카운터(16), 전원 회로(17), 센스 앰프(18), 유지 회로에 상당하는 테스트 신호 레지스터(19), 본체 셀 영역(20), 블록 리던던시 셀 영 역(21), 리던던시 회로(22), BIST용 패드(11A), 테스트 인터페이스에 상당하는 BIST용 인터페이스(23), BIST용 테스트 신호 기억 영역(24) 및 상태 기억 회로에 상당하는 스테이터스 레지스터(25)를 구비한다.
유저 패드(11)는 유저에게 통상적으로 사용되는 40∼50개의 패드를 갖고, 이들 유저 패드(11)에는, 어드레스, 데이터, 전원, 및 각종 커맨드가 입력된다. 유저 인터페이스(12)는, 유저 패드(11)에 입력된 이들 신호를 커맨드 유저 인터페이스(13)에 출력함과 함께, 테스트 신호 레지스터(19)에 출력한다. 커맨드 유저 인터페이스(13)는, 유저 인터페이스(12)로부터 입력된 신호에 기초해서 명령을 판정하고, 그 명령을 지시하는 신호를 제어 회로(14)에 출력한다. 블록 어드레스 버퍼 및 카운터(15)와 로우 컬럼 어드레스 버퍼 및 카운터(16)는, 유저 패드(11)에 입력된 블록 어드레스, 로우 컬럼 어드레스를 기억함과 함께, 본체 셀 영역(20), 블록 리던던시 셀 영역(21), 및 BIST용 테스트 신호 기억 영역(24)에 출력한다.
제어 회로(14)는, 커맨드 유저 인터페이스(13)로부터 제어 신호를 수취하여, 센스 앰프(18), 전원 회로(17), 블록 어드레스 버퍼 및 카운터(15), 로우 컬럼 어드레스 버퍼 및 카운터(16), 및 스테이터스 레지스터(25) 등을 제어한다. 센스 앰프(18)는, 본체 셀 영역(20), 블록 리던던시 셀 영역(21), 및 BIST용 테스트 신호 기억 영역(24)에 기억된 데이터를 판독하거나, 혹은 이들 영역에 데이터를 기입한다. 전원 회로(17)는, 본체 셀 영역(2O), 블록 리던던시 셀 영역(21), 및 BIST용 테스트 신호 기억 영역(24)에의 기입시 및 소거 시 등에, 기입 전압 및 소거 전압을 공급한다.
본체 셀 영역(20)에는, 본체 메모리 셀(블록)(20A), 디코더(20B), 및 불량 기억 회로에 상당하는 불량 블록 레지스터(20C)가 배치되어 있다. 본체 메모리 셀(20A)은, NOR형 메모리 셀로 구성되어, 통상적인 데이터를 기억한다. 디코더(20B)는, 블록 어드레스 버퍼 및 카운터(15) 및 로우 컬럼 어드레스 버퍼 및 카운터(16)로부터 블록 어드레스 및 로우 컬럼 어드레스를 수취하고, 이들 어드레스를 디코드해서 본체 메모리 셀(20A) 내의 메모리 셀을 선택한다. 또한, 불량 블록 레지스터(20C)는, 본체 메모리 셀(20A) 내에 불량의 메모리 셀이 존재하는 경우, 그 본체 메모리 셀이 불량인 것을 나타내는 페일 정보를 기억한다. 또한, 본체 메모리 셀(20A)은, 예를 들면, 소거 시에 일괄해서 소거를 행하는 최소 단위(블록)로 이루어진다.
블록 리던던시 셀 영역(21)에는, 용장 메모리 셀(블록)(21A), 디코더(21B), 불량 블록 레지스터(21C)가 배치되어 있다. 용장 메모리 셀(21A)은 본체 메모리 셀(20A)이 불량일 때, 불량의 본체 메모리 셀을 구제하기 위해, 불량의 본체 메모리 셀과 치환된다. 디코더(21B)는, 불량의 본체 메모리 셀(20A)이 용장 메모리 셀(21A)로 치환되어 있을 때, 블록 어드레스 버퍼 및 카운터(15), 및 로우 컬럼 어드레스 버퍼 및 카운터(16)로부터 블록 어드레스 및 로우 컬럼 어드레스를 수취하고, 이들 어드레스를 디코드해서 용장 메모리 셀(21A) 내의 메모리 셀을 선택한다. 불량 블록 레지스터(21C)는, 용장 메모리 셀(21A) 내에 불량의 메모리 셀이 존재하는 경우, 그 용장 메모리 셀이 불량인 것을 나타내는 페일 정보를 기억한다. 리던던시 회로(22)는, 불량의 본체 메모리 셀(20A)이 용장 메모리 셀(21A)로 치환된 경우, 치환된 불량의 본체 메모리 셀의 어드레스를 나타내는 블록 어드레스 정보를 기억한다. 또한, 용장 메모리 셀(21A)은, 예를 들면 소거 시에 일괄해서 소거를 행하는 최소 단위(블록)로 이루어진다.
BIST용 패드(11A)는, 테스트를 실행할 때에 사용되는 6개의 패드를 갖는다. 사용되는 6개의 패드 중, 1개의 패드는 테스트 전용 패드로서 인에이블 신호 EN이 입력되는 패드이며, 나머지 5개의 패드는, 유저 패드(11)와 공용하는 클럭 신호SCLK, 데이터의 입출력(I/O), 아웃풋 인에이블 신호 OE, 전원 전압 VDD, 및 기준 전압(예를 들면, 접지 전위) Vss가 입력되는 패드이다. 이들 중, 테스트 커맨드의 입력에는, 데이터 입출력(I/O) 패드가 사용되고, 1비트의 데이터를 8회 시리얼로 입력함으로써, 8비트(2의 7승=128가지)의 테스트 커맨드를 NOR형 플래시 메모리에 인식시키는 것이 가능하다.
BIST용 테스트 신호 기억 영역(24)에는, 테스트 기억 회로에 상당하는 테스트 신호 기억부 (0)∼(127)(24A)와, BIST용 디코더(24B)가 배치되어 있다. BIST용 인터페이스(23)는, 입력된 8비트 시리얼 데이터의 테스트 커맨드를, 8비트 패러랠 데이터로 변환해서 BIST용 디코더(24B)에 출력한다. BIST용 디코더(24B)는, BIST용 인터페이스(23)로부터 수취한 테스트 커맨드를 디코드하고, BIST용 테스트 신호 기억 영역(24) 내의 테스트 신호 기억부 (0)∼(127)(24A) 중 어느 하나의 테스트 신호 기억부를 선택한다. 테스트 신호 기억부 (0)∼(127)(24A)는, NOR형 메모리 셀로 구성되고, 테스트 신호 기억부 (0)∼(127)의 각각에는, 테스트를 실행하기 위해 필요한 테스트 조건을 나타내는 테스트 신호가 기억되어 있다.
테스트 신호 레지스터(19)는, 테스트 신호 기억부 (0)∼(127) 중 어느 하나로부터 판독한 테스트 신호를 기억함과 함께, 그 테스트 신호를 제어 회로(14)에 출력한다. 또한, 스테이터스 레지스터(25)에는, 테스트 실행중인 것, 혹은 테스트에 의해 판명된 테스트 불량 정보 등이 기억된다. 테스트 불량 정보는, 예를 들면 불량의 본체 메모리 셀(20A)을 용장 메모리 셀(21A)에 의해 치환할 수 없고, 불량의 본체 메모리 셀(20A)을 지정하는 어드레스가 남아 있는 경우 등을 가리킨다. 스테이터스 레지스터(25)에 기억된 이들 정보는, BIST용 패드(11A)에 의해 판독하는 것이 가능하다. 또한 여기에서는, 테스트 신호 기억부 (O)∼(127)은, NOR형 메모리 셀로 구성하였지만, 레지스터 등, 그 외의 소거 및 기입 가능한 기억 수단을 이용해서 구성하여도 된다. 또한, 테스트 신호 레지스터(19)에 유저 패드(11)로부터 테스트 신호를 직접 입력해서 테스트를 실시하는 것도 가능하다.
도 2는, BIST용 테스트 신호 기억 영역(24)에서의 테스트 신호 기억부 (0)∼(127)(24A)의 구성을 도시하는 회로도이다.
테스트 신호 기억부(24A)는, 16384비트(=8컬럼×16데이터×128로우)의 메모리 셀 MC로 구성되어 있다. 메모리 셀 MC는, 도 2에 도시한 바와 같이 행렬 형상으로 배열되어 있다. 메모리 셀 MC의 각각은, 제어 게이트와 부유 게이트를 갖는 불휘발성의 메모리 셀로 이루어져, 재기입 가능하다.
열 방향으로 배열된 메모리 셀 MC의 드레인에는, 비트선 BL<O>∼BL<7>이 각각 접속되고, 이들 비트선은 선택 트랜지스터 TH<0>∼TH<7>, 및 TS<0>을 개재하여 센스 앰프(18)에 접속되어 있다. 열 방향으로 배열된 메모리 셀 MC의 소스에는, 소스선 SL<O>이 접속되어 있다. 또한, 행 방향으로 배열된 메모리 셀 MC의 제어 게이트에는, 워드선 WLO<O>∼WL0<127>이 각각 접속되어 있다. 또한, 본체 메모리 셀(20A) 및 용장 메모리 셀(21A)을 구성하는 메모리 셀 어레이도, 도 2에 도시한 것과 마찬가지로, 행렬 형상으로 배열된 불휘발성의 메모리 셀로 이루어진다.
다음으로, 본 발명의 실시예의 NOR형 플래시 메모리에서의 BIST의 동작에 대해 설명한다. 도 3은, 실시예의 NOR형 플래시 메모리에서의 BIST의 동작을 도시하는 플로우차트이다.
우선, 유저 패드(11)로부터 데이터를 입력하고, 유저 커맨드 인터페이스(13), 제어 회로(14) 및 센스 앰프(18) 등을 이용하여, BIST용 테스트 신호 기억 영역(24) 내의 테스트 신호 기억부 (0)∼(127)의 각각에, 어떠한 테스트를 실행하거나, 그 테스트 조건을 결정하기 위한 테스트 신호를 기입한다(스텝 SO).
다음으로, BIST용 패드(11A)를 이용하여, 테스트 커맨드를 입력한다. 테스트 커맨드는, 어떠한 테스트를 실행할지를 인식시키기 위해 사용된다. 테스트 커맨드의 입력에서는, BIST용 패드(11A) 중, I/O 패드로부터 1비트 데이터를 8회 시리얼로 입력함으로써, 2의 7승=128가지의 커맨드를 인식시키는 것이 가능하다.
또한, 1비트 데이터를 8회 시리얼로 입력함으로써 128가지의 테스트 커맨드를 입력할 수 있지만, 시리얼로 입력하는 횟수를 증감함으로써 테스트 커맨드의 수는 간단히 변경할 수 있다(스텝 S1).
다음으로, BIST용 패드(11A)로부터 입력된 테스트 커맨드는, BIST용 인터페이스(23)를 통하여 BIST용 디코더(24B)에 입력된다. BIST용 디코더(24B)에 입력된 테스트 커맨드는 BIST용 디코더(24B)에 의해 디코드되고, 테스트 신호 기억부 (0)∼(127) 중 어느 하나의 테스트 신호 기억부가 선택된다. 즉, 테스트 커맨드로서 입력된 8비트의 데이터는, 그대로 테스트 신호 기억부를 지정하는 어드레스로서 사용된다. 테스트 신호 기억부 (O)∼(127)을 구성하는 NOR형 메모리 셀에, 테스트의 실행에 필요한 테스트 조건을 나타내는 테스트 신호를 미리 기입해 두면, 테스트 신호 기억부마다, 서로 다른 테스트의 테스트 조건 설정이 가능하게 된다.
계속해서, 테스트 커맨드에 의해 지정된 테스트 신호 기억부로부터 테스트 조건을 결정하기 위한 테스트 신호를 판독하고(스텝 S2), 테스트 신호 레지스터(19)에 테스트 신호를 세트한다(스텝 S3). 테스트 신호 기억부의 판독에는, 본체 메모리 셀(20A)의 판독에 사용되는 센스 앰프(18)를 사용한다. 이에 의해, 새롭게 센스 앰프를 배치할 필요가 없기 때문에, 회로의 증가를 억제하는 것이 가능하다. 또한, 예를 들면, 센스 앰프(18)에 의한 1회의 판독으로 16비트의 데이터를 판독할 수 있다고 하면, 1개의 테스트 신호 기억부에 기억된 테스트 신호가 128비트 데이터인 경우, 테스트 신호의 판독(스텝 S2)과 테스트 신호의 세트(스텝 S3)를 8회 반복함으로써(16비트×8회=128비트), 테스트 신호 레지스터(19)에 128비트 데이터를 세트할 수 있다.
다음으로, 제어 회로(14)는, 테스트 신호 레지스터(19)에 세트된 테스트 신호를 판독하고, 이 테스트 신호에 의해 결정되는 테스트 조건에 따라 테스트를 실행한다. 테스트의 실행에는, 자동 소거 시퀀스를 일부 변경한 것을 사용한다. 여기에서는 기입 테스트를 예로 들어 설명한다(스텝 S4). 자동 소거 시퀀스는 크게 나누면,
(1) 프리프로그램(PreProgram)(소거 블록 내의 셀 임계값을 높은 측에 맞춘다)
(2) 소거(Erase)(소거 블록 내의 모든 셀의 임계값을 낮춘다)
(3) 약한 기입(Weak Program)(과소거된 셀에 약한 기입을 실시하고, 일정폭으로 임계값을 입력한다)
의 3단계의 동작으로 이루어진다.
여기에서 설명하는 기입 테스트는, 본체 메모리 셀(20A)에 대하여 (1)의 프리프로그램 동작만을 실행하는 것으로 하고, (2)와 (3)의 동작은 테스트 신호에 의해 스킵시킨다. 또한, 테스트 신호에 의해, 기입 횟수를 가변으로 한다. 예를 들면, 기입 횟수를 3회로 설정하였다고 하면, 기입을 3회 실시한 후, 검증 동작 종료 후에, 강제적으로 다음의 어드레스로 진행한다. 여기에서, 베리파이가 패스하지 않고, 어드레스를 진행시킨 경우에는, 페일 정보를 본체 메모리 셀(소거 블록)(20A)마다 배치된 불량 블록 레지스터(20C)에 세트한다(스텝 S5). 이하에, 기입 테스트의 상세를 설명한다.
도 4는, 기입 테스트의 동작을 도시하는 플로우차트이다.
우선, 블록 어드레스 버퍼 및 카운터(15)의 카운터를 리세트(초기값으로)하고(스텝 P1), 계속해서, 로우 컬럼 어드레스 버퍼 및 카운터(16)의 카운터를 리세트한다(스텝 P2).
다음으로, 베리파이 전압을 설정하고(스텝 P3), 본체 메모리 셀(20A)에 대하 여 베리파이를 실행한다(스텝 P4).
스텝 P4에서의 베리파이 결과가 NG이면, 기입 데이터 생성 후에, 기입 회수가 3회인지의 여부를 판정한다(스텝 P5). 기입 횟수가 3회가 아니면, 기입 전압을 설정하고(스텝 P6), 기입을 실시하고(스텝 P7), 스텝 P3으로 되돌아간다.
스텝 P5에서 기입 횟수가 3회이면, 불량 블록 레지스터(20C)에 페일 정보를 세트한다(스텝 P8).
또한, 스텝 P4에서의 베리파이 결과가 OK일 때, 혹은 스텝 P8에서 페일 정보가 세트되었을 때에는, 로우 컬럼 버퍼 및 카운터(16)의 로우 컬럼 어드레스가 최종 번지인가의 여부를 판정한다(스텝 P9).
스텝 P9에서 로우 컬럼 어드레스가 최종 번지가 아니면, 로우 컬럼 어드레스를 인크리먼트하고(스텝 P10), 기입 데이터를 리세트하고(스텝 P11), 스텝 P4로 되돌아간다.
스텝 P9에서 로우 컬럼 어드레스가 최종 번지이면, 기입 전압을 초기의 전압 설정으로 되돌린다(스텝 P12). 계속해서, 블록 어드레스 버퍼 및 카운터(15)의 블록 어드레스가 최종 번지인지의 여부를 판정한다(스텝 P13).
스텝 P13에서 블록 어드레스가 최종 번지가 아니면, 블록 어드레스를 인크리먼트하고(스텝 P14), 스텝 P2로 되돌아간다. 한편, 블록 어드레스가 최종 번지이면, 기입 테스트의 동작을 종료한다.
이상에 의해, 기입 테스트의 종료 시에, 테스트 신호에 의해 규정한 기입 횟수 3회로 패스하지 않는 메모리 셀이 존재하는 경우, 패스하지 않는 메모리 셀을 포함하는 본체 메모리 셀(소거 블록)에 대응해서 배치된 불량 블록 레지스터에 페일 정보가 세트된다.
이상이, 스텝 S4, S5의 동작이다.
다음으로, 스텝 S6, S7에서, 불량 메모리 셀을 포함하는 본체 메모리 셀(20A)을 용장 메모리 셀(21A)로 치환하는 리던던시 동작을 행한다.
우선, 스텝 S1과 마찬가지로, 테스트 커맨드를 입력한다(스텝 S6). 이 테스트 커맨드는 리던던시 치환을 지시하는 것이다. 계속해서, 스텝 S2와 마찬가지로, 그에 필요한 테스트 신호를 테스트 신호 기억부(24A)로부터 판독하여, 테스트 신호 레지스터(19)에 세트한다. 제어 회로(14)는, 테스트 신호 레지스터(19)에 기억된 테스트 신호를 판독하여, 테스트 신호에 의해 결정되는 리던던시 치환 동작을 실행한다(스텝 S7).
리던던시 치환 동작은 이하와 같이 실행된다. 블록 어드레스 버퍼 및 카운터(15)를 리세트하고, 선두 블록으로부터 순서대로 모든 블록을 스캔한다. 본체 메모리 셀(20A)마다 준비된 불량 블록 레지스터(20C)의 값을 확인하여, 불량 블록 레지스터(20C)에 페일 정보가 세트되어 있으면, 블록 리던던시 셀 영역(21)에 공백이 있는지의 여부를 확인한다. 블록 리던던시 셀 영역(21)에 공백이 있으면, 본체 메모리 셀(20A)을 용장 메모리 셀(21A)로 치환하고, 그 용장 메모리 셀(21A)에 대응한 리던던시 회로(22)로 치환한 본체 메모리 셀의 블록 어드레스를 기입한다. 한편, 블록 리던던시 셀 영역(21)에 공백이 없으면, 불량의 본체 메모리 셀을 블록 리던던시 셀 영역으로 치환하여 구제할 수 없다. 이와 같은 경우, 테스트 불량 정 보를 스테이터스 레지스터(25)에 세트한다. 이 동작을 최종 블록까지 계속하여, 동작을 종료한다.
상술한 실시예에서는, 6개의 핀을 사용하는 것만으로 테스트가 가능해져, 동시에 테스트할 수 있는 칩 수를 늘릴 수 있으며, 1개당의 칩에 대한 테스트 시간을 단축할 수 있다. 이에 의해, 테스트 코스트를 대폭 저감할 수 있다. 또한, 상술한 실시예를 실현하기 위해서는, BIST용의 인터페이스 회로와 테스트 신호 기억부를 구성하는 메모리 셀 영역을 준비하기만 하면 되기 때문에, 칩 사이즈의 증가분을 최소한으로 억제할 수 있다.
또한, 테스트 조건 등을 기억하는 회로에 R0M 등을 이용한 경우, 제조 단계에서 테스트 조건이 결정되게 되어, 나중에 테스트 조건을 변경할 수 없고, 다종 다양한 테스트를 행할 수 없다고 하는 문제가 있었다. 본 실시예에서는, 테스트를 실행하기 직전에, 테스트 조건을 테스트 신호 기억부에 기입할 수 있기 때문에, 테스트 조건을 용이하게 변경할 수 있다. 또한, 인터페이스 회로 이외의 종래의 테스트 기능을 그대로 사용할 수 있고, 칩 내부의 동작도 완전히 동일하게 함으로써, 테스트의 회로 검증 기간 및 평가 기간도 단기간으로 할 수 있어, 개발 기간의 증가도 최소한으로 억제할 수 있다.
또한, 상술한 실시예는 유일한 실시예는 아니고, 상기 구성의 변경 혹은 각종 구성의 추가에 의해, 여러 가지의 실시예를 형성하는 것이 가능하다.