상기 목적을 달성하기 위한 본 발명의 반도체 메모리 장치는, 복수 개의 리던던시 로우와 리던던시 칼럼을 갖는 리페어 수단을 포함하는 메모리 수단과, 상기 메모리 부의 메모리 셀의 패일 여부를 단위 로우 스캔 또는 칼럼 스캔으로 테스트하는 테스트 수단과, 상기 테스트 수단에 의해 검출된 패일 셀에 대한 어드레스 데이터를 로우 또는 칼럼 단위로 이동 또는 교환 등의 재배열을 수행하여 저장하여 리페어 해석을 수행하는 리페어 해석 수단을 포함하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 반도체 메모리 장치의 리페어 해석 방법은, 단위 로우 스캔 또는 칼럼 스캔 테스트가 진행되어 상기 임시 버퍼 수단에 패일 어드레스 데이터가 저장될 때까지 기다리는 데이터 대기 단계와, 상기 테스트 수단에 의한 테스트 수행을 종료하여 임시 버퍼 수단에 저장된 패일 어드레스 데이터를 데이터 버퍼로 전송하는 데이터 버퍼 라이트 단계와, 상기 데이터 저장 수단에 저장된 패일 어드레스 데이터를 데이터 버퍼에 전송한 후에 상기 데이터 저장 수단을 정리하는 제1 엔트리 수집 단계와, 상기 데이터 버퍼에 저장된 데이터를 상기 데이터 저장 수단에 라이트 하는 동작을 수행하는 리페어 해석 단계와, 상기 데이터 버퍼의 패일 어드레스 데이터를 상기 데이터 저장 수단에 라이트 한 후에 상기 데이터 저장 수단을 정리하는 제2 엔트리 수집 단계를 포함하여 실행되는 것을 특징으로 한다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부도면과 관련한 다음의 상세한 설명을 통해 보다 분명해 질 것이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
도 1은 본 발명에 따른 리페어 해석을 수행하기 위한 반도체 메모리 장치의 주요부분을 보인 블록도이다. 하나의 실시예로써, 4개의 스페어 로우 라인과 4개의 스페어 칼럼 라인을 갖는 리던던시 회로를 포함하는 반도체 메모리 장치를 설명한다.
이에 도시된 바와 같이, 데이터를 저장하기 위한 메모리 셀 및 패일 셀들을 대체하기 위한 리던던시 셀들로 구성된 메모리부(3)와, 메모리 부(3)의 메모리 셀에 대해 빌트-인 셀프 테스트를 수행하는 테스트부(1)와, 테스트부(1)에 의해 검출된 패일 어드레스 데이터 FAD를 사용하여 리페어 동작을 수행하는 리페어부(2)로 구성된다.
여기서, 리페어 부(2)는 테스트 부(1)에 의해 검출된 패일 어드레스 데이터 FAD를 임시 저장하는 임시 버퍼부(4)와, 임시 버퍼부(4)로부터 패일 어드레스 데이터 FAD를 입력받아 저장하는 데이터 버퍼(5)와, 데이터 버퍼(5)에 저장된 패일 어드레스 데이터 FAD를 저장하는 CAM(6)과, 임시 버퍼부(4), 데이터 버퍼(5) 및 CAM(6)의 동작을 제어하는 제어부(7)를 포함한다.
도 2는 도 1의 블록도에서 CAM(6)의 상세 블록도이다.
이에 도시된 바와 같이, CAM(6)은 패일 어드레스 데이터 FAD를 저장하기 위한 엔트리 저장부(8)와, 엔트리 저장부(8)를 선택하기 위해 어드레스 신호 A<5:3>를 디코딩하는 디코딩부(9)와, 엔트리 저장부(8)에 패일 어드레스 데이터 FAD를 저장하기 위한 동작을 제어하는 제어신호를 출력하는 기능부(10)를 포함한다.
엔트리 저장부(8)는 리페어 해석 동작에서 CAM(6)을 액세스할 때 실질적인 코어(core)가 되는 8 개의 레지스터(register)로 구성되는데, 각 레지스터가 단위 엔트리 저장부(11a-11h)가 된다.
도 3은 도 2의 엔트리 저장부(8)에서 단위 엔트리 저장부(11a)의 상세 블록도이다. 여기서는 단위 엔트리 저장부(11a)가 하나의 메인 엔트리 저장소(12)와 4 개의 서브 엔트리 저장소(13a-13d)를 갖는 경우를 일예로 설명한다.
이에 도시된 바와 같이, 단위 엔트리 저장부(11a-11h)는 메인 엔트리를 저장하는 한 개의 메인 엔트리 저장소(12)와, 서브 엔트리를 저장하는 4 개의 서브 엔트리 저장소(13a-13d)와, 메인 엔트리의 상태를 나타내는 상태 플래그(state flag)를 저장하는 메인 상태 저장소(14)와, 서브 엔트리의 상태를 나타내는 상태 플래그(state flag)를 저장하는 4 개의 서브 상태 저장소(15a-15d)와, 패일 어드레스 데이터 FAD의 개수가 서브 엔트리 개수를 넘어서게 되면 그 서브 엔트리에 대한 퓨즈 라인을 고정(fix)시키기 위한 고정 플래그(fix flag)를 저장하는 고정 플래그 저장소(16)를 포함한다. 여기서, 로우 스캔 테스트일 경우, 4개의 단위 엔트리 저장부(11a-11d)의 메인 엔트리 저장소(12)에는 로우 패일 어드레스 데이터 FAD가 저장되며, 나머지 4개의 단위 엔트리 저장부(11e-11h)의 메인 엔트리 저장소(12)에는 칼럼 패일 어드레스 데이터 FAD가 저장된다.
기능부(10)는 CAM(6)에 저장된 패일 어드레스 데이터 FAD가 테스트에 의해 데이터 버퍼(5)에 저장된 패일 어드레스 데이터 FAD를 비교하여 매치(match)되는지 여부를 판별하는 데이터 비교부(17a-17h)와, 유효한 엔트리를 카운트하며, 비어있는 메인 엔트리 저장 공간을 찾는 데이터 위치 상태 비교부(18)를 포함한다.
여기서, 메인 엔트리 저장소(12)와 서브 엔트리 저장소(13a-13d)는 자유로운 인터페이스를 위해 [표 1]과 같이 어드레스 값이 지정 되어있다.
[표 1]
비트 |
내용 |
5 |
0 |
로우 퓨즈 |
1 |
칼럼 퓨즈 |
4 |
메인 퓨즈 번호 |
3 |
2 |
0 |
메인 퓨즈 |
1 |
서브 퓨즈 |
1 |
서브 퓨즈 번호 |
0 |
예를 들어, 세 번째 칼럼 단위 엔트리 저장부(11g)의 어드레스 값을 표시하면 [표 2]와 같다.
[표 2]
110000 |
110100 |
|
110101 |
110110 |
110111 |
여기서, 메인 엔트리 저장소(12)의 어드레스 값은 (110000)2가 되고, 두 번째 서브 엔트리 저장소(13)의 어드레스 값은 (110101)2가 된다.
디코딩부(9)는 제어부(7)로부터 출력되는 어드레스 ADD<5:3>를 사용하여 엔트리 저장부(8)를 선택한다. 여기서, 디코딩부(9)는 클럭 신호 CLK에 동기되지 않고 단지 어드레스 값을 이용하여 엔트리 저장부(8)의 단위 엔트리 저장부(11a-11h)를 선택하게 된다.
즉, 어드레스 ADD<5:3>를 디코딩하여 엔트리 저장부(8)의 단위 엔트리 저장부(11a-11h)를 선택하는 선택 어드레스 BS<7:0>를 출력한다.
도 4는 도 3의 기능부(10)에서 데이터 비교부(17a)의 상세 블록도이다.
이에 도시된 바와 같이, 데이터 비교부(17a)는 어드레스 ADD<1:0>을 사용하여 CAM(6)의 선택된 단위 엔트리 저장부(11a-11h)에 저장되어 있는 서브 엔트리 데이터 IN1<7:0> 내지 IN4<7:0> 중에서 하나를 선택적으로 출력하는 멀티플렉서(19)와, 어드레스 ADD<3>을 사용하여 멀티플렉서(19)의 출력과 메인 엔트리 데이터 IN0<7:0> 중에서 하나를 선택적으로 출력하는 멀티플렉서(20)와, 상태 데이터 ST<4:0>을 사용하여 엔트리 데이터 IN0<7:0> 내지 IN4<7:0>와 데이터 버퍼(5)에 저장된 패일 어드레스 데이터 FAD<7:0>를 비교하여 비교 데이터 COMP<4:0>를 출력하는 비교 데이터 출력부(21)를 포함한다.
도 5를 참조하여, 데이터 비교부(17a)의 비교 데이터 출력부(21)의 세부 구성을 설명하면 다음과 같다.
비교 데이터 출력부(21)는 데이터 버퍼(5)의 패일 어드레스 데이터 FAD<7:0>와 메인 엔트리 데이터 IN0<7:0>를 비교하여 조합된 결과를 구하는 다뉘 비교부(21a)와, 데이터 버퍼(5)의 패일 어드레스 데이터 FAD<7:0>와 서브 엔트리 데이터 IN1<7:0>, IN2<7:0>, IN3<7:0> 및 IN4<7:0>를 각각 비교하여 조합된 결과를 구하는 단위 비교부들(21b, 21c, 21d 및 21e)을 구비하며, 단위 비교부들(21a, 21b, 21c, 21d 및 21e)은 비교 데이터 COMP<4:0>로써 순차적으로 출력하도록 구성된다.
먼저 단위 비교부(21a)는 데이터 버퍼(5)의 패일 어드레스 데이터 FAD<7:0>와 메인 엔트리 데이터 IN0<7:0>를 비교하는 익스클루시브 노아게이트 XNOR0-XNOR7와, 그 익스클루시브 노아게이트 XNOR0-XNOR7의 출력신호를 순차적으로 4 개씩을 부정 논리곱하는 낸드게이트 ND0, ND1와, 그 낸드게이트 ND0, ND1의 출력신호와 상태 데이터 ST<0>가 인버터 INV0에 의해 반전된 신호를 부정 논리합하여 비교 데이터 COMP<0>를 출력하는 노아게이트 NOR0를 포함한다.
그리고, 다른 단위 비교부(21b, 21c, 21d 및 21e)는 단위 비교부(21a)와 동일한 구성을 가지며, 이들 단위 비교부(21b, 21c, 21d 및 21e)에 포함되는 익스클루시브 노아 게이트들 XNOR8-XNOR15, XNOR16-XNOR23, XNOR24-XNOR31 및 XNOR32-XNOR39에는 각각 서브 엔트리 데이터 IN1<7:0>, IN2<7:0>, IN3<7:0> 및 IN4<7:0>가 대응된다. 그리고 이들 단위 비교부(21b, 21c, 21d 및 21e)에 포함되는 낸드게이트 ND2, ND3, ND4, ND5, ND6, ND7, 및 ND8, ND9는 단위 비교부(21a)의 낸드게이트 ND0, ND1에, 인버터 INV1, INV2, INV3 및 INV4는 단위 비교부(21a)의 인버터 INV0에, 노아게이트 NOR1, NOR2, NOR3 및 NOR4는 단위 비교부(21a)의 노아게이트(NOR0)에 대응된다.
도 6은 기능부(10)의 데이터 위치 상태 비교부(18)의 상세 블록도이다.
이에 도시된 바와 같이, 데이터 위치 상태 비교부(18)는 매치 타입 명령 MTTYPE<2:0> 및 어드레스 ADD<5:3>에 따라서 비교 데이터 COMP<39:0>, 상태 데이터 ST<39:0>, 로우 고정 상태 데이터 XFIXST<3:0> 및 칼럼 고정 상태 데이터 YFIXST<3:0>를 활용하여 데이터 레지스터 DATAREG<19:0>를 생성하는 데이터 레지스터 부(22)와, 클럭 신호 CLK에 동기되고, 매치 명령 MATCH, 리셋신호 RESET 및 시프트 신호 SHIFT의 제어를 받아서, 데이터 레지스터 부(22)의 데이터 레지스터DATAREG<19:0>를 이용하여 매치 어드레스 생성 입력 데이터 ADDGENIN<19:0>를 생성하는 어드레스 생성부(23)와, 어드레스 생성부(23)의 매치 어드레스 생성 입력 데이터 ADDGENIN<19:0>를 인코딩하여 어드레스 생성 데이터 ADDGEN<4:0>를 생성하고, 매치 타입 명령 MTTYPE<2:0> 및 어드레스 ADD<5>에 따라서 로우 어드레스, 칼럼 어드레스 또는 매치 어드레스 인지를 결정하는 어드레스 생성 데이터 ADDGEN<5>를 생성하는 어드레스 인코딩부(24)와, 어드레스 인코딩부(24)의 어드레스 생성 데이터 ADDGEN<5:0>에 따라서 한번 출력된 어드레스 생성 입력 데이터 ADDGENIN<19:0>를 지우는 포인트 데이터 PNT<3:0>를 출력하는 포인트 부(25)와, 어드레스 생성 입력 데이터 ADDGENIN<19:0>에 따라서 어드레스 정보를 가지는 어드레스 번호 데이터 ADDNO<2:0>를 출력하는 어드레스 번호 부여부(26)를 포함한다.
여기서, 데이터 레지스터부(22)는 비교 데이터 COMP<39:0> 및 상태 데이터 ST<39:0>를 로우 데이터 COMP<19:0>, ST<19:0>와 칼럼 데이터 COMP<39:20>, ST<39:20>로 나누어서 데이터 레지스터 DATAREG<19:0>와 비교해 보면, 메인에 해당하는 데이터 레지스터는 DATAREG<0>, <5>, <10>, <15>이며, 로우인지 칼럼인지는 매치 타입 명령 MTTYPE<2:0>에 의해 결정되고, 나머지는 서브에 해당된다.
여기서, 데이터 레지스터 DATAREG<19:0> 값은 비교 데이터 COMP<39:0>, 상태 데이터 ST<39:0>, 로우 고정 상태 데이터 XFIXST<3:0> 및 칼럼 고정 상태 데이터 YFIXST<3:0>의 조합에 의해 결정되는데, 이때 어드레스 ADD<5:3>에 의해 로우 또는 칼럼인지를 결정하고, 메인 데이터 레지스터 DATAREG<0>, <5>, <10>, <15> 값은, 매치 타입 명령 MTTYPE<2:0>이 메인 매치인 경우(매치 타입 명령 MTTYPE<2:0>이(000, 001)2), 고정인 경우(100, 101)2, 비어 있는(empty) 경우(111, 111)2및 상태 카운트인 경우(110, 110)2에 따라 결정되고, 서브 데이터 레지스터 DATAREG<4:1>, <9:6>, <14:11>, <19:16> 값은, 매치 타입 명령 MTTYPE<2:0>이 서브 매치인 경우 (010, 011)2에 따라 결정된다.
예를 들어, 데이터 레지스터 DATAREG<4:0>의 값 중에서 데이터 레지스터 DATAREG<0>의 값이 메인 매치인 경우는 비교 데이터 COMP<0>, <20>이 있고, 로우 고정 상태 데이터 XFIXST<3:0> 및 칼럼 고정 상태 데이터 YFIXST<3:0>는 모두 (0)2일 경우이고, 값이 비어 있는(empty) 경우는 상태 데이터 ST<0>, <20>가 (0)2일 경우이며, 상태 카운트인 경우는 상태 데이터 ST<0>, <20> 값이 있는 경우이다.
데이터 레지스터 DATAREG<4:0>의 값 중에서 데이터 레지스터 DATAREG<4:1>의 값은 서브 매치일 경우만 고려하면 되기 때문에 비교 데이터 COMP<4:1>, <24:21>가 있는 경우와 로우 고정 상태 데이터 XFIXST<3:0> 및 칼럼 고정 상태 데이터 YFIXST<3:0>가 없는 경우만 고려하면 결정할 수 있다.
이와 같은 방법에 의해 데이터 레지스터 DATAREG<4:0>의 값은 결정되고, 동일한 방법에 의해 나머지 데이터 레지스터 DATAREG<19:5>의 값을 결정할 수 있다.
어드레스 생성부(23)는 매치 명령 MATCH이 인에이블 되면, 데이터 레지스터 DATAREG<19:0>를 입력받고, 이어서, 시프트 명령 SHIFT이 인에이블 되면, 매치 어드레스 생성 입력 데이터 ADDGENIN<19:0>가 피드백 입력되고, 그 매치 어드레스 생성 입력 데이터 ADDGENIN<19:0>의 출력된 값은 포인트부(25)의 포인트 데이터 PNT<3:0>에 의해 지워진다.
예를 들어, 매치 명령 MATCH이 인에이블 되어, 데이터 레지스터 DATAREG<19:0> (00001000010000100001)2는 시프트 명령 SHIFT이 인에이블 되고, 포인트 데이터 PNT<3:0>에 따라 그 출력된 값이 지워지게 되어, (00001000010000100000)2가 되고, 다시 시프트 명령 SHIFT이 인에이블 되면, 포인트 데이터 PNT<3:0>에 의해 그 출력된 값이 지워지게 되어 (00001000010000000000)2가 된다.
어드레스 인코딩부(24)는 어드레스 생성부(23)의 매치 어드레스 생성 입력 데이터 ADDGENIN<19:0>를 인코딩하여 어드레스 생성 데이터 ADDGEN<4:0>를 생성하는 인코딩부(27)와, 매치 타입 명령 MTTYPE<2:0> 및 어드레스 ADD<5>에 따라서 로우 어드레스 매치 또는 칼럼 어드레스 매치인지를 결정하는 어드레스 생성 데이터 ADDGEN<5>를 생성하는 결정부(28)를 포함한다.
어드레스 인코딩 부(24)의 인코딩 부(27)는 매치 어드레스 생성 입력 데이터 ADDGENIN<19:0>를 인코딩하여 어드레스를 찾아내는 소자이며, 결정부(28)는 매치 타입 명령 MTTYPE<2:0>과 어드레스 ADD<5>를 비교하여 로우 또는 칼럼인지를 비교하여 출력하는데, 매치 명령 MATCH이 인에이블된 후에 로우, 칼럼 또는 매치 어드레스 인지를 결정한다.
포인트 부(25)는 어드레스 생성 데이터 ADDGEN<4:3>에 따라 어드레스 인코딩부(24)에서 대표되는 위치를 알 수 있는데, 크게 4개의 부분(00, 01, 10, 11)으로 나누어져 있기 때문에, 예를 들어 어드레스 생성 데이터 ADDGEN<4:0>가 (01111)2일 때, 대표되는 어드레스 생성 데이터 ADDGEN<4:3>는 (01)2이다. 따라서, 메인과 서브에 상관없이 대표되는 위치에 해당하는 포인트 데이터 PNT<3:0>는 (0010)2가 된다. 그리고, 그 대표되는 위치에 해당하는 어드레스 생성 데이터 ADDGEN<4:0> (01111)2는 출력되었기 때문에 다음에 해당하는 어드레스 생성 데이터 ADDGEN<4:0>를 출력하기 위해 포인트 데이터 PNT<3:0>는 그 대표되는 위치에 해당하는 데이터 레지스터 DATAREG<19:0>를 지우고, 시프트 명령 SHIFT에 의해 다음 어드레스 생성 입력 데이터 ADDGENIN<19:0>를 출력하는데, 이러한 동작은 시프트 동작이 종료될 때까지 계속 반복 수행된다.
어드레스 번호 부여부(26)는 어드레스 생성 입력 데이터 ADDGENIN<19:0>를 5비트씩 조합하는 4개의 오아 게이트(미도시)로 구성된 조합부(29)와, 조합부(29)에 의해 조합된 조합 데이터 ADDNOIN<3:0>를 사용하여 카운트 정보인 어드레스 번호 데이터 ADDNO<2:0>를 출력하는 어드레스 번호 생성부(30)를 포함한다.
카운트에 해당되는 데이터는 각 서브의 상태 값을 확인해야 하므로 데이터 레지스터 DATAREG<0>을 예를 들면, 로우 카운트 매치 타입일 때 해당되는 상태는 ST<1>, <6>, <11>, <16>이다. 그리고, 어드레스 ADD<5:3>에 의해 해당되는 상태 ST<1>, <6>, <11>, <16> 중에서 선택한다. 이러한 방법에 의해 데이터 레지스터 DATAREG<5>, <10>, <15>에 대한 카운트 정보를 알 수 있고, 이 값에 의해 몇 개가있는지 카운트할 수 있다. 따라서, 조합 데이터 ADDNOIN<3:0>가 (0010)2이라고 했을 때 어드레스 번호 생성부(30)에서 연산하여 어드레스 번호 데이터 ADDNO<2:0> (001)2이라는 정보를 출력하고, 이와 동일하게 조합 데이터 ADDNOIN<3:0>가 (0110)2이면 어드레스 번호 데이터 ADDNO<2:0> (010)2이라는 정보를 출력하고, 조합 데이터 ADDNOIN<3:0>가 (1110)2이면 어드레스 번호 데이터 ADDNO<2:0> (011)2이라는 정보를 출력한다.
데이터 위치 상태 비교부(18)의 동작은 매치 타입 명령 데이터 MTTYPE<2:0>에 따라 a) 메인 엔트리 데이터에 매치되는 경우(000, 001)2, b) 서브 엔트리 데이터에 매치되는 경우(010, 011)2, c) 고정(fixed)되는 경우(100, 101)2, d) 상태 값이 비어(empty) 있는 경우(111, 111)2, e) 상태 값을 셈하는 경우(110, 110)2로 나눌 수 있다.
상기와 같은 경우는 하나의 실시예로써 매치 타입 명령 데이터 MTYPE<2:0>에 따라 결정되는데 명령은 다음의 [표 3]과 같이 정의 할 수 있다.
[표 3]
명령 |
데이터 |
단위 엔트리 저장부(11a-11d)의 메인 매치 |
0 0 0 |
단위 엔트리 저장부(11e-11h)의 메인 매치 |
0 0 1 |
단위 엔트리 저장부(11a-11d)의 메인 고정 |
1 0 0 |
단위 엔트리 저장부(11e-11h)의 메인 고정 |
1 0 1 |
단위 엔트리 저장부(11a-11d)의 서브 매치 |
0 1 0 |
단위 엔트리 저장부(11e-11h)의 서브 매치 |
0 1 1 |
단위 엔트리 저장부(11a-11d)의 상태 카운트 |
1 1 0 |
단위 엔트리 저장부(11e-11h)의 상태 카운트 |
1 1 0 |
단위 엔트리 저장부(11a-11d)의 상태 비우기(empty) |
1 1 1 |
단위 엔트리 저장부(11e-11h)의 상태 비우기(empty) |
1 1 1 |
데이터 위치 상태 비교부(18)는 상기한 데이터 비교부(17a-17h)에서 설명한 바와 같이 비교한 데이터를 직접 내보내는 경우와는 다르게 상태 값 ST, COMP으로 표현하여 그 값을 비교하기 때문에 다양한 경우의 연산을 할 수 있다.
예를 들어, 비교 상태 값 COMP<39:0>은 매치 타입 명령 MTYPE<2:0>(<도 3> 참조)에 따라서 연산을 하는데, 고정된 값 XFIXST<3:0> 또는 YFIXST<3:0>(데이터가 레지스터에 모두 저장되었다고 프로세서에 알리는 값)이 없고 비교 상태 값 COMP<39:0>이 있으면, 새롭게 지정된 데이터 레지스터 DATAREG(19:0>의 하나의 비트의 값은 (1)2가 되고, 비교 상태 값 COMP<39:0>이 없으면, 새롭게 지정된 데이터 레지스터 DATAREG<19:0>의 하나의 비트의 값은 (0)2가 된다.
데이터 상태 값 ST<39:0>은 d) 경우에서 데이터가 비어 있는가와 e) 경우에서 데이터 상태를 셈하는 경우로 나누어 실제 데이터는 상관없이 상태들의 비트만을 가지고 연산을 한다.
데이터 상태 값 ST<39:0>은 서브의 데이터 상태 비트로 새로운 데이터 레지스터 DATAREG<19:0>의 0번, 5번, 10번, 15번에 쓰여지도록 하였다.
새로운 데이터 레지스터 DATAREG<19:0>는 매치 타입 명령 MTTYPE<2:0>과 비교 데이터 상태 값 COMP<39:0>, 데이터 상태 값 ST<39:0>을 어드레스 ADD<5:3>와 조합하여 20비트로 축소시킨 것이다.
새로 만들어진 데이터 레지스터 DATAREG<19:0>는 데이터가 매치되는 부분의 어드레스 값을 출력하는 경우와 데이터 상태 값에서 하나씩 빼나가면서 값을 나타내는 기능을 한다.
먼저, 데이터가 매치되는 부분의 번지 값을 출력하는 경우는, 디코더(인코딩부(27))를 사용한다.
즉, 20비트를 5비트로 만들어서 20비트 데이터 레지스터 DATAREG<19:0>에 있는 각각의 값에 디코딩부(9)에서 나타낸 선택 어드레스 값 BS<7:0>을 대입한다. 상위 비트인 5번 비트는 매치 타입 명령 MTTYPE<2:0>(<표 3>참조)에서와 같이 메인이 되는 부분이 (1)2가 되는 값만 체크하고 나머지는 (0)2의 값을 내보내면 된다.
따라서, 20비트에 관한 6비트 어드레스 디코더(결정부(28)는 쉽게 설계할 수 있다.
매치 신호 MATCH가 인에이블 되어 20비트 데이터 레지스터 DATAREG<19:0>에 값을 이전 상태 값이 클럭 신호 CLK의 폴링 에지에 동기 하여 값을 저장한 후 출력하고, 다음의 데이터 상태 값 ST<39:0>을 내보내라는 제어신호 SHIFT가 인에이블 되면 처음 상위 값은 지워지고 그 다음 값에 해당하는 어드레스를 출력하게 된다.
예를 들면 매치 신호 MATCH가 인에이블 되어 저장되는 상태 값은 데이터 레지스터 DATAREG<19:0>이 (00001000010000100001)2, 어드레스 생성 데이터 ADDGEN<5:0>가 (011000)2가 된다. 이때 매치신호 MATCH가 디스에이블 되고, 제어신호 SHIFT가 인에이블 되면서 데이터 레지스터 DATAREG<19:0>와 어드레스 생성 데이터 ADDGEN<5:0>는 다음과 같이 변한다.
데이터 레지스터 DATAREG<19:0>가 (00000000010000100001)2, 어드레스 생성 데이터 ADDGEN<5:0>가 (010000)2가 된다.
이와 같이 어드레스 값을 지우기 위해서는 4번째와 3번째 어드레스를 가지고 인코더를 만들어야 하는데, 예에서 어드레스 생성 데이터 값 (011000)2를 주면 두 개의 어드레스 값을 가지고 인코더에서 어드레스 생성 데이터 값(011000)2를 해석하여 인코더에 해당되는 부분에 (1)2를 주어 지우는 기능을 하는 것이다. 여기서, 5번째 어드레스 생성 데이터 ADDGEN<5>는 매치 타입 명령 MTTYPE<2:0>에 따라 결정된다.
이러한 방법으로 매치 타입 명령 MTTYPE<2:0>에 따른 값과 어드레스 값 ADD<5:3>의 조합에 따라 비교 데이터 값 COMP<39:0> 및 데이터 상태 값 ST<39:0>에 관한 어드레스 정보를 알 수 있는 것이다.
마지막으로, 데이터 상태 값 ST<39:0>을 셈하는 경우(e)는 데이터 레지스터에 값 DATAREG<19:0>을 가지고 셈을 하는 것이다. 여기서는, (1)2의 값이 4개 이상표현될 수 없기 때문에 3비트로 표현하였다.
이어서, 제어부(7)는 데이터 위치 상태 비교부(18)로부터의 출력 ADDGEN<5:0>, ADDNO<2:0>, DATAREG<19:0>을 수신하고 리드 제어신호 RD, 라이트 제어신호 WR 및 지움 제어신호 ER를 CAM(6) 및 데이터 버퍼(5)에 출력하고, 이에 따라서 CAM(6)에서 이동(move), 교환(exchange) 및 재배열(rearrange) 동작이 수행된다.
CAM(6)에서 엔트리 저장부(8)의 각 단위 엔트리 저장부(11a-11h)는 단위 로우(또는 단위 칼럼)마다의 테스트에서 하나의 로우 리던던시(또는 칼럼 리던던시)에서 패일 셀이 5개 이상 검출되면 해당하는 로우 또는 칼럼 리던던시를 고정시키는 고정 플래그(fix flag)를 저장하는 고정 플래그 저장소(16)를 포함한다.
이러한 고정 플래그(fix flag)는 단위 로우(또는 단위 칼럼)마다 테스트를 수행할 때 하나의 로우(또는 칼럼)에서 5개 이상의 패일 셀이 발생하면, 퓨즈 구성상 로우 퓨즈(또는 칼럼 퓨즈)를 반드시 사용해야 하기 때문이다.
도 7a는 도 1의 블록도에서 임시 버퍼부(4)를 보인 상세 블록도이다.
이에 도시된 바와 같이, 임시 버퍼부(4)는 테스트 부(1)에서 테스트하여 출력된 패일 어드레스 데이터 FAD를 저장하는 2개의 임시 버퍼(31, 32)와, 패일 어드레스 데이터 FAD를 2개의 임시 버퍼(31, 32) 중에 하나의 임시 버퍼(31 또는 32)에 선택적으로 전송하는 입력 선택부(33)와, 각 임시 버퍼(31 또는 32)에서 출력된 데이터를 선택적으로 출력하는 출력 선택부(34)와, 입력 선택부(33)와 출력 선택부(34)의 선택 동작을 제어하는 선택 제어부(35)를 포함한다.
도 7b는 도 7a의 블록도에서 임시 버퍼(31)의 상세 블럭도이다.
이에 도시된 바와 같이, 입력 선택부(33)로부터 입력된 패일 어드레스 데이터 FAD를 저장하는 복수개의 레지스터(36, 37a-37d)와, 레지스터(36, 37a-37d)에 리페어 해석 동작을 수행해야 하는 데이터가 들어있는 상태를 나타내는 유효 플래그(valid flag)를 저장하는 유효 플래그 저장부(38)를 포함한다.
레지스터(36, 37a-37d)는 메인 데이터를 저장하는 한 개의 메인 레지스터(36)와 서브 데이터를 저장하는 4 개의 서브 레지스터(37a-37d)로 구성된다. 여기서, 서브 레지스터(37a-37d)의 개수가 4 개가되는 이유는 스페어 로우와 스페어 칼럼의 개수가 4 개씩이기 때문이다.
입력 선택부(33)는 현재의 테스트 타입이 로우 어드레스를 고정시키고 칼럼 어드레스를 변화시키면서 테스트를 진행시키는 타입이라면, 제어부(7)로부터 테스트 타입 신호 TSTP가 로우 레벨이 되어 로우 패일 어드레스 데이터 FAD를 메인 데이터 MD로 선택하여 메인 레지스터(36)에 저장하고, 칼럼 패일 어드레스 데이터 FAD를 서브 데이터 SD로 선택하여 서브 레지스터(37a-37d)에 저장한다.
반대로, 현재의 테스트 타입이 칼럼 어드레스를 고정시키고 로우 어드레스를 변화시키면서 테스트를 진행시키는 타입이라면, 테스트 타입 신호 TSTP가 하이 레벨이 되어 칼럼 패일 어드레스 데이터 FAD를 메인 데이터 MD로 선택하여 메인 레지스터(36)에 저장하고, 로우 패일 어드레스 데이터 FAD를 서브 데이터 SD로 선택하여 서브 레지스터(37a-37d)에 저장한다.
또한, 입력 선택부(33)는 테스트가 수행되어 패일 셀이 발생하면 데이터 기록 신호 DWR를 입력받아 임시 버퍼(31 또는 32)에 버퍼 라이트 신호 BWR를 인가하여 메인 데이터 MD와 서브 데이터 SD를 선택된 임시 버퍼(31 또는 32)의 메인 레지스터(36)와 서브 레지스터(37a-37d)에 각각 저장한다.
제어부(7)로부터 리페어 해석 인에이블 신호 RAEN가 인가되면, 이전의 단위 로우(또는 단위 칼럼)의 테스트가 종료되어 다음 단위 로우(또는 단위 칼럼)를 테스트하고, 이전의 테스트가 진행된 단위 로우(또는 단위 칼럼)의 패일 셀에 대한 리페어 해석 동작을 수행하게 된다.
또한, 선택된 임시 버퍼(31 또는 32)에 입력 선택부(33)로부터 유효 데이터 세트 신호 VSET를 인가하여 유효 플래그를 세트하여 처리해야 할 데이터가 들어있음을 나타내고, 입력 선택부(33)로부터 버퍼 선택신호 BSEL의 레벨 상태를 변화시켜 임시 버퍼들(31, 32)의 입력 경로와 출력 경로를 서로 바꾸게 된다.
버퍼 제어부(35)는 버퍼 선택신호 BSEL를 입력 선택부(33)에 인가하고, 버퍼 선택신호 BSEL와 위상이 반대인, 즉 반전된 신호인 반전 버퍼 선택신호 /BSEL를 출력 선택부(34)에 인가하여 2 개의 임시 버퍼(31, 32) 중에서 어느 하나의 임시 버퍼(31 또는 32)에 테스트 부(1)으로부터 패일 어드레스 데이터 RAD를 입력받아 저장하고, 다른 하나의 임시 버퍼(32 또는 31)는 리페어 해석을 수행하기 위해 저장된 데이터를 출력하게 된다. 따라서, 테스트 동작과 리페어 해석을 동시에 수행할 수 있다.
이와 같이 구성되는 반도체 메모리 장치에 의한 리페어 해석 동작을 설명하면 다음과 같다.
먼저, 테스트 부(1)가 임의 번째 로우(또는 칼럼)를 테스트하여 패일 셀이 발생할 경우 발생된 패일 셀의 패일 어드레스 데이터 FAD를 데이터 라이트 명령 DWR을 사용하여 두 개의 임시 버퍼(31, 32) 중에서 비어있는 임시 버퍼(31 또는 32)에 라이트 한다. 여기서, 비어있는 버퍼의 선택은 입력 선택부(33)의 버퍼 선택신호 BSEL를 사용하여 제어된다.
이어서, 임의 번째 로우(또는 칼럼)의 테스트가 끝나면 다음 번째 로우(또는 칼럼)의 테스트를 수행하여 패일 셀이 발생할 경우, 상기한 단계에서 검출된 패일 셀의 패일 어드레스 데이터 FAD가 저장된 임시 버퍼(31 또는 32)가 아닌 나머지 하나의 임시 버퍼(31 또는 32)에 데이터 라이트 명령 DWR을 사용하여 패일 셀의 패일 어드레스 데이터 FAD를 라이트 한다.
이와 동시에 첫 번째 단계에서 저장된 임시 버퍼(31 또는 32)의 패일 셀에 대한 패일 어드레스 데이터 FAD를 데이터 버퍼(5)에 전송하여 임의 번째 로우(칼럼)의 패일 셀에 대해 리페어 해석을 수행한다.
이어서, 상기한 두 번째 단계에서부터 다시 반복 수행한다.
상기한 반도체 메모리 장치의 동작을 도 8에 도시된 바와 같은 순서도를 참조하여 상세히 설명하면 다음과 같다.
먼저, 데이터 대기 상태 S1은 단위 로우 테스트가 진행되어 임시 버퍼부(4)에 패일 어드레스 데이터 FAD가 저장될 때까지 기다리는 단계이다.
데이터 버퍼 라이트 상태 S2는 빌트-인 셀프 테스트에 의한 단위 로우 테스트 수행을 종료하여 임시 버퍼부(4)에 저장된 패일 어드레스 데이터 FAD를 데이터버퍼(5)로 전송하는 단계이다.
이어서, 첫 번째 엔트리 수집 상태(first entry collection state) S3은 CAM(6) 내부에 저장된 패일 어드레스 데이터 FAD를 데이터 버퍼(5)에 전송한 후에 단위 엔트리 저장부(11a-11h)를 정리하는 단계이다.
다음으로, 리페어 해석 프로세스 상태 S4는 데이터 버퍼(5)에 저장된 데이터를 CAM(6)에 라이트 하는 동작을 수행한다.
마지막으로, 두 번째 엔트리 수집 상태(second entry collection state) S5는 데이터 버퍼(5)의 패일 어드레스 데이터 FAD를 CAM(6) 내부에 라이트 한 후에 단위 엔트리 저장부(11a-11h)를 다시 정리하는 단계이다.
두 번째 엔트리 수집 상태 S5에서 데이터 정리 과정을 마치면 다시 데이터 대기 상태 S1로 가서 상기한 동작들을 반복하게 된다.
여기서, 데이터 버퍼 라이트 상태 S2에서 임시 버퍼부(4)의 임시 버퍼(31 또는 32)에 저장된 패일 어드레스 데이터 FAD를 데이터 버퍼(5)로 전송하는 방법은 다음과 같은 규칙에 따라 수행된다.
먼저, CAM(6) 내부의 단위 엔트리 저장부(11a-11d)의 메인 엔트리 저장소(12)와 임시 버퍼부(4)의 로우 데이터와 비교하여 같은 것이 있다면 메인 엔트리 저장소(12)와 서브 엔트리 저장소(13a-13d)의 데이터를 데이터 버퍼(5)로 전송하고, 임시 버퍼부(4)의 데이터를 데이터 버퍼(5)로 전송한다.
이러한 동작은 첫 번째 테스트 아이템(예를 들어 번-인 테스트)으로 테스트를 수행한 후 두 번째 테스트 아이템(예를 들어 스페셜 테스트)으로 테스트를 수행할 경우의 규칙이다.
다음으로, 단위 엔트리 저장부(11a-11d)의 메인 엔트리 저장소(12)의 데이터와 임시 버퍼부(4)의 로우 데이터를 비교하여 같은 것이 없고, 단위 엔트리 저장부(11e-11h)의 서브 엔트리 저장소(13a-13d)에 같은 데이터가 있다면, 단위 엔트리 저장부(11e-11h)의 그 동일한 서브 엔트리 데이터 및 그 서브 엔트리 데이터에 해당하는 메인 엔트리 데이터를 데이터 버퍼(5)에 전송하고, 임시 버퍼부(4)의 데이터를 데이터 버퍼(5)로 전송한다.
이러한 동작은 첫 번째 테스트 아이템(예를 들어 번-인 테스트)으로 테스트가 진행되고 있는 경우이거나, 두 번째 테스트 아이템(예를 들어 스페셜 테스트)으로 테스트가 진행되고 있는 경우의 규칙이다. 왜냐하면, 첫 번째 테스트 아이템으로 테스트를 수행하여 검출된 패일 셀이 두 번째 테스트 아이템으로 테스트를 진행하여 반드시 패일되는 것이 아닌 경우가 발생하기 때문이다.
마지막으로, 임시 버퍼부(4)의 로우 데이터와 동일한 데이터가 단위 엔트리 저장부(11a-11d)의 메인 엔트리 저장소(12)와 단위 엔트리 저장부(11e-11h)의 서브 엔트리 저장소(13a-13d)에 존재하지 않다면, 임시 버퍼부(4)의 데이터를 데이터 버퍼(5)에 전송한다.
또한, 첫 번째 엔트리 수집 상태 S3은 다음에 진행될 리페어 해석 프로세싱, 즉, 데이터 버퍼(5)의 패일 어드레스 데이터 FAD를 CAM(6) 내부에 라이트 하는 작업에 대비하여 효율적인 재배열(rearrangement)을 하는 것이다.
도 9는 첫 번째 엔트리 수집 상태(S3)에서 수행되는 재배열의 일예로써, 이에 도시된 바와 같이, 현재의 테스트 아이템이 로우 스캔 테스트이면, 단위 엔트리 저장부(11a-11d)를 정리하여, 단위 엔트리 저장부(11e-11h)로 데이터를 전송한다.
즉, 단위 엔트리 저장부(11a-11d)의 서브 엔트리 저장소(13a-13d)의 데이터와 단위 엔트리 저장부(11e-11h)의 메인 엔트리 저장소(12)의 데이터를 비교하여 동일한 데이터가 있는 경우 그 동일한 데이터(도 9에서 2 번째 칼럼 데이터 및 6 번째 로우 데이터)의 메인 엔트리 저장소(12)에 저장된 로우 데이터(도 9에서 1, 3 및 5 번째)를 단위 엔트리 저장부(11e-11h)의 동일한 데이터의 서브 엔트리 저장소(13a-13d)에 전송하여 단위 엔트리 저장부(11a-11d)를 최대한 비워놓는다.
이러한 동작을 하는 이유는 로우 스캔 테스트에서 데이터 버퍼(5)에 저장된 데이터가 하나의 로우 어드레스와 다수의 칼럼 어드레스를 가지기 때문이다.
한편, 현재의 테스트 아이템이 칼럼 스캔 테스트이면, 단위 엔트리 저장부(11e-11h)를 상기와 같은 방법에 따라 정리하여 동일한 데이터를 단위 엔트리 저장부(11a-11d)로 전송한다.
데이터 버퍼 라이트 상태 S2와 첫 번째 엔트리 수집 상태 S3에서 CAM(6) 내부의 데이터를 이동하는 동작이 종료되면, 전송된 데이터를 저장하고 있던 이전의 단위 엔트리 저장부(11a-11h)의 메인 또는 서브 엔트리 저장소(12, 13a-13d)는 상태 플래그 저장소(14, 15a-15d)에 그 메인 또는 서브 엔트리 저장소(12, 13a-13d)가 비어 있음을 알리는 상태 플래그(state flag)를 저장시켜 다시 데이터를 저장할 수 있는 상태임을 나타낸다.
도 10a 및 도 10b는 데이터 재배열(data rearrangement) 동작 중에서이동(move) 동작을 수행할 경우를 예를 들어 개략적으로 보인 블록도이다.
도 10a는 패일 셀의 어드레스 데이터에 따른 배치를 보인 배치도로써, 검은색으로 표시된 것은 이전의 테스트 아이템에 따라 발생된 패일 셀의 어드레스 데이터를 나타내며, 흰색으로 표시된 것은 현재의 테스트 아이템에 따라 발생된 패일 셀의 어드레스 데이터를 나타낸다.
즉, 첫 번째 테스트 아이템(예를 들어 번-인 테스트)에 의한 테스트 결과, 첫 번째 로우에서 2, 3, 5 및 7 번째 칼럼의 셀이 패일되고, 두 번째 로우에서 2, 3 및 5 번째 칼럼의 셀이 패일되고, 세 번째 로우에서 2 및 3 번째 칼럼의 셀이 패일되고, 네 번째 로우에서 2 번째 칼럼의 셀이 패일되었을 경우, 두 번째 테스트 아이템(예를 들어 스페셜 테스트)에 의한 테스트 결과, 다섯 번째 로우에서 3, 4, 6 및 8 번째 칼럼의 셀이 패일되었다면, 단위 엔트리 저장부(11a-11d)는 4 개의 메인 엔트리 저장소(15)를 가지고 있기 때문에 저장할 공간이 없게 된다.
만약, 5 번째 로우에서 4 개의 패일 셀이 발견되었을 경우 단위 엔트리 저장부(11a-11d)에 빈 공간이 없게 되지만, 단위 엔트리 저장부(11a-11d)의 4 번째 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)의 개수가 1 개이므로 데이터를 단위 엔트리 저장부(11e-11h)로 이동(move) 한다.
이때, 다른 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)의 데이터들과 비교하여 동일한 것이 있다면 동시에 이동한다.
따라서, 단위 엔트리 저장부(11a-11d)의 4 번째 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)를 비워 5 번째 로우에서 발생된 4 개의 패일 셀에 대한 어드레스를 저장할 수 있기 때문에 효과적으로 리페어 할 수 있게 된다.
도 10b는 상기한 동작을 간략히 보인 블록도이다.
이에 도시된 바와 같이, 단위 엔트리 저장부(11a-11d)의 4 번째 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)에는 1 개의 칼럼 패일 어드레스 데이터 FAD, 즉 2 번째 칼럼 패일 어드레스 데이터 FAD만이 저장되어 있기 때문에 이를 단위 엔트리 저장부(11e-11h)의 메인 엔트리 저장소(12)로 이동시킨다.
이때, 4 번째 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)의 칼럼 어드레스 데이터, 즉 2 번째 칼럼 어드레스 데이터와 동일한 칼럼 어드레스 데이터가 1, 2 및 3 번째 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)에 존재하므로 4 번째 메인 엔트리 저장소(12)의 서브 엔트리 저장소(13a-13d)에 저장된 데이터를 이동시킬 때 동시에 동일한 칼럼 패일 어드레스 데이터들 FAD을 이동시킨다.
따라서, 단위 엔트리 저장부(11a-11d)의 4 번째 메인 엔트리 저장소(12)에 5 번째 로우의 패일 어드레스 데이터 FAD를 저장할 수 있다.
도 11a 및 도 11b는 데이터 재배열(data rearrangement) 동작 중에서 교환(exchange) 동작을 수행할 경우를 예를 들어 개략적으로 보인 블록도이다.
도 11a는 패일 셀의 어드레스 데이터에 따른 배치를 보인 배치도로써, 검은색으로 표시된 것은 이전의 테스트 아이템에 따라 발생된 패일 셀의 어드레스 데이터를 나타내며, 흰색으로 표시된 것은 현재의 테스트 아이템에 따라 발생된 패일셀의 어드레스 데이터를 나타낸다.
즉, 첫 번째 테스트 아이템(예를 들어 번-인 테스트)에 의한 테스트 결과, 첫 번째, 두 번째, 세 번째 및 네 번째 로우에서 2, 3, 4 및 5 번째 칼럼의 셀이 패일되어 단위 엔트리 저장부(11a-11d)에 저장하고, 5, 6, 7 및 8 번째 로우에서 6, 7, 8 및 9 번째 칼럼의 셀이 패일되어 단위 엔트리 저장부(11e-11h)에 저장하였을 경우, 두 번째 테스트 아이템(예를 들어 스페셜 테스트)에 의한 테스트 결과, 8 번째 로우에서 1 번째 칼럼의 셀이 패일되었다면, 8 번째 로우에서는 4 개 이상(여기서는 5개)의 패일 셀이 발생하였기 때문에 8번째 로우 퓨즈를 무조건 사용하도록 고정 플래그를 이용하여 고정시킨다.
그러나, 단위 엔트리 저장부(11a-11d)의 메인 엔트리 저장소(12)에는 고정시켜야 하는 8번째 로우 어드레스 데이터가 저장되어 있지 않다.
그래서, 단위 엔트리 저장부(11e-11h)의 서브 엔트리 저장소들(13a-13d)에 8번째 로우 어드레스 데이터가 저장되어 있기 때문에 단위 엔트리 저장부(11a-11d)에 저장된 데이터와 단위 엔트리 저장부(11e-11h)의 데이터를 교환(exchange)하여 8번째 로우를 고정(fix)시킬 수 있게 된다.
이와 같은 동작은, 도 2에 도시된 바와 같이 단위 엔트리 저장부(11a-11h) 중에서, 단위 엔트리 저장부(11a-11d)의 데이터를 데이터 버퍼(4)에 전송한 후, 단위 엔트리 저장부(11a-11d)의 데이터를 지운 후에 로우 패일 어드레스 데이터 FAD와 칼럼 패일 어드레스 데이터 FAD를 맞추어서 단위 엔트리 저장부(11e-11h)의 데이터를 단위 엔트리 저장부(11a-11d)에 전송하고, 데이터 버퍼(4)에 저장된 어드레스 데이터를 로우 패일 어드레스 데이터 FAD와 칼럼 패일 어드레스 데이터 FAD를 맞추어서 단위 엔트리 저장부(11e-11h)에 전송함으로써 달성될 수 있다.
여기서, 상기한 모든 재배열 동작을 사용하여 데이터 버퍼(5)의 어드레스 데이터를 CAM(6)내부에 라이트 할 수 없다면, 현재 테스트한 칩은 리페어가 불가능한(unrepairable) 칩이 된다.
도 12는 리페어 해석 프로세스 상태(S4)에서 수행되는 동작을 나타낸 순서도이다.
이에 도시된 바와 같은 순서도에 따라서 데이터 버퍼(5)의 데이터를 CAM(6)에 라이트 한다.
첫 번째로, 단위 엔트리 저장부(11a-11d) 중에서 비어있는 단위 엔트리 저장부(11a-11d)(즉, 메인 엔트리 저장소(12) 및 그에 따른 서브 엔트리 저장소(13a-13d))가 있다면, 비어 있는 단위 엔트리 저장부(11a-11d)에 데이터 버퍼(5)의 데이터를 저장한다(S11).
여기서, 단위 엔트리 저장부(11a-11d) 중에서 비어있는지 여부는 메인 상태 저장소(14) 및 서브 상태 저장소(15a-15d)에 저장된 상태 플래그를 사용하여 판단하게 된다.
두 번째로, 단위 엔트리 저장부(11e-11h)의 메인 엔트리 저장소(12)들과 데이터 버퍼(5)의 칼럼 패일 어드레스 데이터들 FAD과 비교하여 동일한 데이터가 있다면, 데이터 버퍼(5)의 로우 패일 어드레스 데이터 FAD를 그 동일한 데이터가 저장된 단위 엔트리 저장부(11e-11h)의 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)에 저장하게 된다(S12).
이때, 데이터 버퍼(5)의 칼럼 패일 어드레스 데이터 FAD가 여러 개 있다면 그 개수만큼 상기한 두 번째 동작(S12)을 반복하게 된다.
CAM(6)의 기능부(10)에서 데이터 비교부(17a-17h)에서 데이터 버퍼(5)에 저장된 칼럼 패일 어드레스 데이터 FAD와 단위 엔트리 저장부(11e-11h)의 메인 엔트리 저장소(12)에 저장된 데이터를 비교한다.
이때, 단위 엔트리 저장부(11e-11h)의 선택은 어드레스 ADD<5:3>를 디코딩부(9)에서 디코딩한 선택신호 BS<7:0>에 따라 제어된다.
또한, 어드레스 ADD<2:0>을 사용하여 현재 비교되고 있는 데이터가 메인 엔트리 저장소(12)에 저장된 데이터인지, 서브 엔트리 저장소(13a-13d)에 저장된 데이터인지를 판별하여 출력하게 된다.
이어서, 데이터 위치 상태 비교부(18)는 상기한 동작에 의한 비교 데이터 COMP<39:0>를 참조하여 제어부(7)에 어드레스 번호 ADDNO<2:0>, 어드레스 생성 데이터 ADDGEN<5:0> 및 데이터 레지스터 DATAREG<19:0>를 출력하여 데이터 비교부(17a-17h)의 비교결과 동일한 데이터가 있는 경우 라이트 명령 WR을 출력하여 해당하는 단위 엔트리 저장부(11e-11h)의 메인 엔트리 저장소(12)에 대한 서브 엔트리 저장소(13a-13d)에 저장하게 된다.
세 번째로, 상기한 첫 번째 동작 S11과 두 번째 동작 S12을 수행하여 데이터 버퍼(5)의 어드레스 데이터를 CAM(6)에 모두 저장하지 못한다면, 단위 엔트리 저장부(11e-11h)에서 각 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)의 개수(여기서, 개수는 상태 저장소(14, 15a-15d)의 유효 상태 플래그가 저장되어 있는 상태 저장소(14, 15a-15d)의 개수이다)와 데이터 버퍼(5) 내의 칼럼 패일 어드레스 데이터 FAD의 개수와 비교한다(S13).
먼저, 특정한 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)의 개수가 데이터 버퍼(5)에 저장된 칼럼 패일 어드레스 데이터 FAD의 개수보다 많다면, 단위 엔트리 저장부(11e-11h)의 비어있는 메인 엔트리 저장소(12)에 데이터 버퍼(5)의 칼럼 패일 어드레스 데이터 FAD를 라이트 한다(S14).
그러나, 데이터 버퍼(5)의 칼럼 어드레스 데이터를 CAM(6) 내부의 단위 엔트리 저장부(11e-11h)의 비어있는 메인 엔트리 저장소(12)에 모두 라이트 하지 못하면, CAM(6) 내부의 단위 엔트리 저장부(11a-11h)의 데이터들을 재배열하여(S15) 상기한 첫 번째 S11 및 두 번째 동작 S12를 다시 수행한다.
한편, 특정한 메인 엔트리 저장소(12)에 해당하는 서브 엔트리 저장소(13a-13d)의 개수가 데이터 버퍼(5) 내의 칼럼 패일 어드레스 데이터 FAD의 개수보다 적다면, 데이터 재배열(data rearrangement)을 통하여 효율적으로 CAM(6) 내부의 저장공간을 재배열한다(S15). 왜냐하면, 로우 퓨즈를 사용하더라도 칼럼 패일이 많이 발생한 칼럼 리페어 라인을 사용하여야 하는 이유 때문이다.
이어서, 재배열 동작 S15가 완료되면 상기한 첫 번째 동작 S11 및 두 번째 동작 S12를 수행하게 된다.
상기한 모든 동작 S11, S12 및 S14에서 데이터 버퍼(5)의 모든 데이터를 CAM(6)에 라이트 하였다면, 스탠바이 상태 S10으로 돌아간다.
본 발명은 스페어 로우와 스페어 칼럼의 개수가 4 개이기 때문에, 임의 번째 로우에서 5 개 이상의 패일 셀이 발생할 경우, 임의 번째 로우는 4 개의 스페어 칼럼을 사용하여 대체될 수 없으므로 반드시 스페어 로우를 사용하여 대체되어야 한다.
또한, 임의 번째 칼럼에서 5 개 이상의 패일 셀이 발생할 경우, 임의 번째 칼럼은 4 개의 스페어 로우를 사용하여 대체될 수 없으므로 반드시 스페어 칼럼을 사용하여 대체되어야 한다.
따라서, 하나의 로우나 칼럼에서 5 개 이상의 패일 셀이 발생할 경우 테스트가 진행중인 로우나 칼럼 어드레스만 리페어 해석 과정에 필요하고, 4 개 이하의 패일 셀이 발생한 경우 다음의 테스트 결과에 따라 발생되는 패일 셀의 위치에 따라 스페어 로우 또는 스페어 칼럼으로 대체할지 결정되므로 임시 버퍼부(4)의 임시 버퍼들(23, 24)은 현재 테스트 중인 로우(또는 칼럼)의 어드레스를 저장하는 하나의 메인 레지스터(28)와 4 개 이하의 패일 셀의 어드레스를 저장하는 4 개의 서브 레지스터(29)를 포함한다.
메모리 부(3)의 하나의 로우 또는 칼럼을 테스트할 때, 수백 클럭 사이클이 소요되므로, 테스트와 동시에 리페어 해석을 진행하기 위해 4 번째 로우의 테스트를 수행하면서 발생되는 패일 셀의 어드레스를 첫 번째 임시 버퍼(31)에 저장하고, 3 번째 로우에서 발생된 패일 셀의 어드레스가 저장된 두 번째 임시 버퍼(32)의 데이터를 데이터 버퍼(5)에 전송하여, 4 번째 로우를 테스트하는 클럭 사이클 동안 3 번째 로우의 패일 셀의 어드레스를 처리할 리페어 해석 사이클을 확보할 수 있다.
이어서, 5 번째 로우를 테스트하여 발생된 패일 셀의 어드레스를 두 번째 임시 버퍼(32)에 저장하는 동안 첫 번째 임시 버퍼(31)에 저장된 4 번째 로우에서 발견된 패일 셀의 어드레스를 리페어 해석 처리하여 테스트와 리페어 해석을 동시에 수행됨으로써 실시간으로 리페어 해석을 수행할 수 있다.
즉, 하나의 임시 버퍼(31 또는 32)가 테스트 부(1)로부터 패일 셀의 패일 어드레스 데이터(FAD)를 입력받는 동안, 다른 임시 버퍼(32 또는 31)에 저장된 이전 테스트 결과인 패일 어드레스 데이터 FAD를 데이터 버퍼(5)에 전송하여, 테스트를 수행하면서 리페어 해석을 동시에 진행할 수 있다.