KR20170007927A - 반도체장치 및 반도체시스템 - Google Patents
반도체장치 및 반도체시스템 Download PDFInfo
- Publication number
- KR20170007927A KR20170007927A KR1020150098956A KR20150098956A KR20170007927A KR 20170007927 A KR20170007927 A KR 20170007927A KR 1020150098956 A KR1020150098956 A KR 1020150098956A KR 20150098956 A KR20150098956 A KR 20150098956A KR 20170007927 A KR20170007927 A KR 20170007927A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- setting
- command flag
- test
- enabled
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
반도체시스템은 커맨드 및 설정신호를 출력하는 제1 반도체장치; 및 상기 커맨드를 디코딩하여 저장제어신호 및 테스트개시신호를 생성하고, 상기 저장제어신호에 응답하여 상기 설정신호로부터 설정코드를 추출하여 저장하며, 상기 테스트개시신호에 응답하여 상기 설정코드에 대응하는 적어도 하나의 동작구간 동안 어드레스패턴에 따라 엑세스되는 메모리셀어레이에 대한 불량 여부를 테스트하는 제2 반도체장치를 포함한다.
Description
본 발명은 테스트를 수행하는 반도체장치 및 반도체시스템에 관한 것이다.
최근, 반도체장치의 설계와 제조가 더욱 복잡해짐에 따라 반도체장치를 테스트하는 과정도 복잡하고 어려워졌다. 집적도가 높아진 반도체장치를 테스트하기 위한 과정이 더욱 복잡해진 만큼 테스트 과정을 수행하기 위해 많은 테스트 시간이 필요하게 되었다.
테스트 시간을 줄여 소요되는 비용을 감소시키기 위한 방법으로 장시간이 요구되는 테스트 과정을 대치할 수 있는 방법이 개발되어왔다. 대표적인 예로, 반도체장치의 패키지 제작 후 수행되는 Test During Burn-In(이하, TDBI로 지칭함) 과정을 들 수 있다. 여기서, TDBI 과정은 패키지로 제작된 반도체장치를 단순한 패턴의 쓰기 동작을 반복시켜 스트레스를 가해 불량 여부를 판단하는 테스트 과정 중 하나이다. 구체적으로, TDBI 과정은 패키징 후에 반도체장치를 상대적으로 고온(최대 100 도정도)에서 상대적으로 높은 전압에서 장시간(최대 수시간까지) 동안 단순한 쓰기 패턴으로 동작시켜 반도체장치에 스트레스를 가하는 것이다.
한편, 반도체장치를 패키징하기 전에 보다 효율적으로 테스트하기 위해서, 반도체장치가 Built-In Self-Test(이하, BIST로 지칭함) 회로를 내부에 포함하는 방법이 제안되고 있다. 또한, 반도체장치의 수율을 증대시키기 위해, 웨이퍼 상태에서의 테스트(Wafer level Burn-In, WBI)를 통해 검출된 결함을 복구할 수 있도록 반도체장치가 Built-In Self-Repair(이하, BISR로 지칭함) 회로를 포함하는 방법도 제안되고 그 사용이 널리 확대되고 있다. 여기서, 반도체장치의 BISR 회로는 결함 검출을 위한 BIST 회로뿐만 아니라 Built-In Self-Diagnostics(BISD) 회로 및 Built-In Redundancy Analysis(BIRA) 회로 등을 포함할 수 있다.
본 발명은 기설정된 설정코드를 통해 테스트에 필요한 동작구간들을 순환적으로 설정하고, 동작구간들에서 어드레스패턴 및 데이터패턴을 생성하여 반도체장치 내부에 포함된 메모리셀 또는 메모리셀어레이의 불량 여부를 확인하여 리페어할 수 있는 테스트를 수행할 수 있도록 한 반도체장치 및 반도체시스템을 제공한다.
이를 위해 본 발명은 커맨드 및 설정신호를 출력하는 제1 반도체장치; 및 상기 커맨드를 디코딩하여 저장제어신호 및 테스트개시신호를 생성하고, 상기 저장제어신호에 응답하여 상기 설정신호로부터 설정코드를 추출하여 저장하며, 상기 테스트개시신호에 응답하여 상기 설정코드에 대응하는 적어도 하나의 동작구간 동안 어드레스패턴에 따라 엑세스되는 메모리셀어레이에 대한 불량 여부를 테스트하는 제2 반도체장치를 포함하는 반도체시스템을 제공한다.
또한, 본 발명은 커맨드를 출력하는 제1 반도체장치; 및 상기 커맨드를 디코딩하여 저장제어신호 및 테스트개시신호를 생성하고, 상기 저장제어신호에 응답하여 설정코드를 생성하고, 상기 테스트개시신호에 응답하여 상기 설정코드에 대응하는 적어도 하나의 동작구간 동안 어드레스패턴에 따라 엑세스되는 메모리셀어레이에 대한 불량 여부를 테스트하는 제2 반도체장치를 포함하는 반도체시스템을 제공한다.
또한, 본 발명은 제1 설정코드에 대응하는 개시구간이 경과된 시점부터 제2 설정코드에 대응하는 제1 동작구간 동안 인에이블되는 제1 커맨드플래그를 생성하고, 상기 제1 동작구간이 경과된 시점부터 제3 설정코드에 대응하는 제2 동작구간 동안 인에이블되는 제2 커맨드플래그를 생성하며, 상기 제2 동작구간이 경과된 시점부터 제4 설정코드에 대응하는 제3 동작구간 동안 인에이블되는 제3 커맨드플래그를 생성하는 커맨드플래그생성회로; 및 테스트개시신호에 응답하여 생성된 로우어드레스패턴 및 컬럼어드레스패턴에 응답하여 엑세스되는 메모리셀어레이에 데이터패턴을 라이트하고 리드하는 동작을 통해 불량정보를 생성하여 저장하는 테스트회로를 포함하는 반도체장치를 제공한다.
본 발명에 의하면 기설정된 설정코드를 통해 테스트에 필요한 동작구간들을 순환적으로 설정함으로써, 레이턴시(latency) 없이 동작구간들이 수행되어 테스트 시간을 감소시킬 수 있는 효과가 있다.
또한, 본 발명에 의하면 기설정된 설정코드를 통해 테스트에 필요한 동작구간들을 순환적으로 설정할 수 있는 회로를 반도체장치 내부에 구비함으로써, 테스트장치를 구현하는데 필요한 비용을 감소시킬 수 있고, 다수의 반도체장치에 대한 테스트를 동시에 수행할 수 있는 효과도 있다.
또한, 본 발명에 의하면 기설정된 설정코드에 의해 설정된 동작구간들에서 생성된 어드레스패턴 및 데이터패턴을 이용하여 반도체장치 내부에 포함된 메모리셀 또는 메모리셀어레이의 불량 여부를 빠르게 검출한 후 불량 메모리셀 또는 불량 메모리셀어레이를 빠르게 리페어할 수 있는 효과도 있다.
도 1은 본 발명의 일 실시예에 따른 반도체시스템의 구성을 도시한 블럭도이다.
도 2는 도 1에 도시된 반도체시스템에 포함된 커맨드플래그생성회로의 일 실시예에 따른 구성을 도시한 블럭도이다.
도 3은 도 2에 도시된 커맨드플래그생성회로의 동작을 설명하기 위한 타이밍도이다.
도 4는 도 1에 도시된 반도체시스템에 포함된 테스트회로의 일 실시예에 따른 구성을 도시한 블럭도이다.
도 5는 도 1 내지 도 4에 도시된 반도체장치에서 수행되는 테스트를 설명하기 위한 플로우차트이다.
도 6은 본 발명의 다른 실시예에 따른 반도체시스템의 구성을 도시한 블럭도이다.
도 7은 도 1 내지 도 6에 도시된 반도체장치 및 반도체시스템이 적용된 전자시스템의 일 실시예에 따른 구성을 도시한 도면이다.
도 2는 도 1에 도시된 반도체시스템에 포함된 커맨드플래그생성회로의 일 실시예에 따른 구성을 도시한 블럭도이다.
도 3은 도 2에 도시된 커맨드플래그생성회로의 동작을 설명하기 위한 타이밍도이다.
도 4는 도 1에 도시된 반도체시스템에 포함된 테스트회로의 일 실시예에 따른 구성을 도시한 블럭도이다.
도 5는 도 1 내지 도 4에 도시된 반도체장치에서 수행되는 테스트를 설명하기 위한 플로우차트이다.
도 6은 본 발명의 다른 실시예에 따른 반도체시스템의 구성을 도시한 블럭도이다.
도 7은 도 1 내지 도 6에 도시된 반도체장치 및 반도체시스템이 적용된 전자시스템의 일 실시예에 따른 구성을 도시한 도면이다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시예에 의해 제한되는 것은 아니다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 반도체시스템은 제1 반도체장치(11) 및 제2 반도체장치(12)를 포함할 수 있다. 제2 반도체장치(12)는 커맨드디코더(121), 코드저장회로(122), 커맨드플래그생성회로(123), 어드레스패턴생성회로(124), 데이터패턴생성회로(125) 및 테스트회로(126)를 포함할 수 있다.
제1 반도체장치(11)는 커맨드(CA<1:J>) 및 설정신호(OP<1:H>)를 출력할 수 있다. 커맨드(CA<1:J>)는 다양한 논리레벨조합으로 설정될 수 있다. 커맨드(CA<1:J>)의 논리레벨조합에 따라 테스트개시신호(T_EN) 또는 저장제어신호(S_CON)가 인에이블될 수 있다. 커맨드(CA<1:J>)는 커맨드만 전송되는 라인들 또는 커맨드 및 어드레스가 동시에 전송되는 라인들을 통해 전송될 수 있다. 커맨드(CA<1:J>)에 포함된 비트수는 실시예에 따라 다양하게 설정할 수 있다. 설정신호(OP<1:H>)는 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 설정하기 위한 정보를 포함될 수 있다. 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)에 대한 정보는 설정신호(OP<1:H>)에 모두 포함되어 한꺼번에 제1 반도체장치(11)에서 출력될 수 있다. 실시예에 따라서, 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)에 대한 정보가 설정신호(OP<1:H>)에 포함되어 순차적으로 제1 반도체장치(11)에서 출력되도록 구현될 수도 있다. 설정신호(OP<1:H>)에 포함된 비트수는 실시예에 따라 다양하게 설정할 수 있다. 설정신호(OP<1:H>)는 어드레스, 커맨드 및 데이터 중 적어도 하나가 전송되는 라인들을 통해 전송될 수 있다. 도 1에서는 커맨드(CA<1:J>) 및 설정신호(OP<1:H>)가 별도의 라인들을 통해 전송되는 것으로 도시하였지만 실시예에 따라서는 동일한 라인들을 통해 전송되도록 구현될 수 있다. 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 비트수는 실시예에 따라서 1 비트로 구현하거나 3 비트 이상으로 구현될 수 있다.
커맨드디코더(121)는 커맨드(CA<1:J>)를 디코딩하여 테스트개시신호(T_EN) 및 저장제어신호(S_CON)를 생성할 수 있다. 테스트개시신호(T_EN)는 커맨드(CA<1:J>)가 제1 논리레벨조합으로 입력되는 경우 인에이블될 수 있고, 저장제어신호(S_CON)는 커맨드(CA<1:J>)가 제2 논리레벨조합으로 입력되는 경우 인에이블될 수 있다. 테스트개시신호(T_EN)가 인에이블되는 경우 메모리셀 또는 메모리셀어레이에 대한 불량 여부를 확인하고 리페어할 수 있는 테스트가 수행될 수 있다. 저장제어신호(S_CON)가 인에이블되는 경우 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)에 대한 정보가 설정신호(OP<1:H>)로부터 추출되어 저장될 수 있다. 테스트개시신호(T_EN) 및 저장제어신호(S_CON)가 인에이블되는 방식은 실시예에 따라서 다양하게 설정될 수 있다. 예를 들어, 테스트개시신호(T_EN) 및 저장제어신호(S_CON)는 기설정된 논리레벨로 인에이블되거나 인에이블시점에서 발생되는 펄스들을 포함할 수 있다. 제1 논리레벨조합 및 제2 논리레벨조합은 실시예에 따라서 다양하게 설정될 수 있다. 커맨드디코더(121)는 인에이블된 저장제어신호(S_CON)를 생성한 후 인에이블된 테스트개시신호(T_EN)를 생성하도록 구현될 수 있다. 이 경우 설정신호(OP<1:H>)로부터 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)에 대한 정보가 추출되어 저장된 후 메모리셀 또는 메모리셀어레이에 대한 불량 여부가 확인되고 리페어될 수 있다. 실시예에 따라서 커맨드디코더(121)는 인에이블된 테스트개시신호(T_EN)를 생성한 후 인에이블된 저장제어신호(S_CON)를 생성하도록 구현될 수 있다. 이 경우 메모리셀 또는 메모리셀어레이에 대한 불량 여부를 확인하고 리페어할 수 있는 테스트가 개시된 후 저장제어신호(S_CON)가 인에이블되어 설정신호(OP<1:H>)로부터 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)에 대한 정보가 추출되어 저장될 수 있다.
코드저장회로(122)는 저장제어신호(S_CON)에 응답하여 설정신호(OP<1:H>)로부터 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)에 대한 정보를 추출한 후 저장할 수 있다. 좀 더 구체적으로, 코드저장회로(122)는 저장제어신호(S_CON)가 인에이블되는 경우 설정신호(OP<1:H>)로부터 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 추출하여 저장할 수 있다. 코드저장회로(122)는 인에이블된 저장제어신호(S_CON)에 동기하여 설정신호(OP<1:H>)를 통해 동시에 입력되는 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 추출하여 저장할 수 있다. 실시예에 따라서, 코드저장회로(122)는 인에이블된 저장제어신호(S_CON)에 동기하여 설정신호(OP<1:H>)를 통해 순차적으로 입력되는 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 추출하여 저장할 수 있다. 코드저장회로(122)는 내부에 저장된 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 출력할 수 있다. 코드저장회로(122)가 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 출력하는 시점은 저장제어신호(S_CON)를 지연시킨 신호에 의해 설정될 수 있고, 실시예에 따라서는 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)가 저장되는 시점과 동시에 출력되도록 설정될 수도 있다. 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 비트수는 실시예에 따라서 다양하게 설정할 수 있다.
커맨드플래그생성회로(123)는 테스트개시신호(T_EN)에 응답하여 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)로부터 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)를 생성할 수 있다. 커맨드플래그생성회로(123)는 테스트개시신호(T_EN)가 인에이블되는 시점부터 제1 설정코드(SC1<1:2>)에 따라 설정되는 개시구간이 경과된 시점에 동기하여 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)의 생성 동작을 개시한다. 커맨드플래그생성회로(123)는 제2 설정코드(SC2<1:2>)에 따라 설정되는 제1 동작구간동안 인에이블되는 제1 커맨드플래그(CFLAG1)를 생성할 수 있다. 커맨드플래그생성회로(123)는 제3 설정코드(SC3<1:2>)에 따라 설정되는 제2 동작구간동안 인에이블되는 제2 커맨드플래그(CFLAG2)를 생성할 수 있다. 커맨드플래그생성회로(123)는 제4 설정코드(SC4<1:2>)에 따라 설정되는 제3 동작구간동안 인에이블되는 제3 커맨드플래그(CFLAG3)를 생성할 수 있다. 개시구간, 제1 동작구간, 제2 동작구간 및 제3 동작구간은 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 논리레벨 조합으로부터 실시예에 따라 다양하게 설정될 수 있다. 예를 들어, 제1 설정코드(SC1<1:2>)가 '10', 제2 설정코드(SC2<1:2>)가 '11', 제3 설정코드(SC3<1:2>)가 '11' 및 제4 설정코드(SC4<1:2>)가 '01'의 논리레벨조합을 갖는 경우 개시구간은 단위구간의 2배만큼의 구간을 갖고, 제1 동작구간 및 제2 동작구간은 단위구간의 3배만큼의 구간을 가지며, 제3 동작구간은 단위구간을 가질 수 있다. 여기서, 제1 설정코드(SC1<1:2>)가 '10'이라 함은 제1 설정코드의 첫번째 비트(SC1<1>)가 로직로우레벨이고, 제1 설정코드의 두번째 비트(SC1<2>)가 로직하이레벨임을 의미한다. 단위구간은 실시예에 따라서 다양하게 설정될 수 있다. 제1 동작구간, 제2 동작구간 및 제3 동작구간에서는 리드동작, 라이트동작, 리프레쉬동작, 프리차지동작, 모드레지스터셋동작, 불량정보저장동작 및 리페어동작 등의 다양한 동작이 수행될 수 있다. 예를 들어, 제1 동작구간에서는 라이트동작이 수행되고, 제2 동작구간에서는 리드동작이 수행되며, 제3 동작구간에서는 불량정보저장동작이 수행되도록 설정될 수 있다. 커맨드플래그생성회로(123)는 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)로부터 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)를 순환적으로 생성할 수 있다. 즉, 개시구간이 경과된 후 제1 동작구간, 제2 동작구간 및 제3 동작구간이 순환적으로 수행된다. 본 실시예에서는 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 비트수를 2 비트로 구현하여 개시구간, 제1 동작구간, 제2 동작구간 및 제3 동작구간을 단위구간의 1배부터 3배까지의 구간으로 설정할 수 있는 방법을 설명하였다. 실시예에 따라서, 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 비트수를 n으로 구현하는 경우 개시구간, 제1 동작구간, 제2 동작구간 및 제3 동작구간을 단위구간의 1배부터 2n-1배까지의 구간으로 설정할 수 있다. 여기서, n은 자연수로 설정될 수 있다. 커맨드플래그생성회로(123)의 보다 구체적인 구성 및 동작은 도 2 및 도 3을 참고하여 후술한다.
어드레스패턴생성회로(124)는 테스트개시신호(T_EN) 및 제3 커맨드플래그(CFLAG3)에 응답하여 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)을 생성할 수 있다. 좀 더 구체적으로, 테스트가 개시되어 테스트개시신호(T_EN)가 인에이블되는 경우 어드레스패턴생성회로(124)는 제1 동작구간 및 제2 동작구간의 동작들을 위한 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)을 생성할 수 있다. 이때, 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 논리레벨 조합은 기설정된 메모리셀 또는 메모리셀어레이를 엑세스하기 위해 설정된다. 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 논리레벨 조합에 따라 엑세스되는 메모리셀 또는 메모리셀어레이는 실시예에 따라서 다양하게 설정될 수 있다. 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 비트수는 실시예에 따라서 다양하게 설정할 수 있다.어드레스패턴생성회로(124)는 제3 동작구간의 동작이 종료되는 경우 디스에이블되는 제3 커맨드플래그(CFLAG3)에 동기하여 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 논리레벨 조합을 변화시킨다. 이에 따라 순환적으로 수행되는 제1 동작구간 및 제2 동작구간의 동작들에서 엑세스되는 메모리셀 또는 메모리셀어레이는 앞선 제1 동작구간 및 제2 동작구간의 동작들에서와 상이하게 설정된다. 예를 들어, 제1 메모리셀어레이에 대해 제1 동작구간동안 라이트동작이 수행되고, 제2 동작구간동안 리드동작이 수행된 후 제3 동작구간동안 제1 메모리셀어레이에 대한 불량확인 결과 생성된 불량정보 저장동작이 종료되면 제2 메모리셀어레이에 대한 라이트동작, 리드동작 및 불량정보 저장동작으로 구성된 테스트가 순차적으로 수행된다. 이때, 제1 메모리셀어레이 및 제2 메모리셀어레이에 대한 설정은 실시예에 따라서 다양하게 구현될 수 있다. 라이트동작, 리드동작 및 불량정보 저장동작으로 구성된 테스트는 제2 반도체장치(12)에 포함된 모든 메모리셀어레이에 대해서 수행될 수 있다. 실시예에 따라서는 테스트가 제2 반도체장치(12)에 포함된 일부 메모리셀어레이에 대해서도 수행될 수도 있다.
데이터패턴생성회로(125)는 테스트개시신호(T_EN)에 응답하여 데이터패턴(DQ<1:L>)을 생성할 수 있다. 좀 더 구체적으로, 데이터패턴생성회로(125)는 테스트가 개시되어 테스트개시신호(T_EN)가 인에이블되는 경우 데이터패턴(DQ<1:L>)을 생성할 수 있다. 데이터패턴(DQ<1:L>)의 논리레벨조합 및 비트수는 실시예에 따라서 다양하게 설정할 수 있다. 데이터패턴(DQ<1:L>)은 1비트 신호로 구현될 수도 있다. 예를 들어, 메모리셀어레이에 대해 제1 동작구간동안 라이트동작이 수행되고, 제2 동작구간동안 메모리셀어레이에 대한 리드동작이 수행된 후 제3 동작구간동안 메모리셀어레이에 대한 불량확인 결과 생성된 불량정보를 저장하는 동작으로 구성된 테스트가 수행되는 경우 데이터패턴(DQ<1:L>)이 메모리셀어레이에 라이트된 후 리드되는 방식으로 테스트가 진행된다.
테스트회로(126)는 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2), 제3 커맨드플래그(CFLAG3), 로우어드레스패턴(RADD<1:N>), 컬럼어드레스패턴(CADD<1:M>) 및 데이터패턴(DQ<1:L>)에 응답하여 테스트를 수행한다. 좀 더 구체적으로 테스트회로(126)에 의해 진행되는 테스트동작을 살펴보면 다음과 같다.
테스트회로(126)는 제1 커맨드플래그(CFLAG1)가 인에이블되는 제1 동작구간동안 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 제1 메모리셀어레이에 데이터패턴(DQ<1:L>)을 라이트하는 동작을 수행할 수 있다. 테스트회로(126)는 제2 커맨드플래그(CFLAG2)가 인에이블되는 제2 동작구간동안 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 제1 메모리셀어레이에 저장된 데이터패턴(DQ<1:L>)을 리드하는 동작을 수행할 수 있다. 이때, 리드된 데이터패턴(DQ<1:L>)이 라이트된 데이터패턴(DQ<1:L>)과 동일한 지 여부에 따라 제1 메모리셀어레이의 불량 여부를 확인하여 불량정보를 생성할 수 있다. 실시예에 따라 불량 여부를 확인하는 방식으로 압축병렬테스트를 이용할 수도 있다. 예를 들어, 압축병렬테스트는 메모리셀어레이에 모두 로직하이레벨을 라이트한 후 리드하여 리드된 데이터들 중 적어도 하나의 데이터가 로직로우레벨인 경우 메모리셀어레이가 불량이라는 불량정보가 생성되는 방식으로 진행될 수 있다. 테스트회로(126)는 제3 커맨드플래그(CFLAG3)가 인에이블되는 제3 동작구간동안 불량정보를 저장하는 동작을 수행할 수 있다. 테스트회로(126)는 제1 메모리셀어레이에 대한 테스트가 종료되는 경우 제2 반도체장치(12)에 포함된 다른 메모리셀어레이에 대한 테스트를 순차적으로 수행할 수 있다. 테스트회로(126)의 보다 구체적인 구성 및 동작은 도 4를 참고하여 후술한다.
도 2를 참고하면 본 발명의 일 실시예에 따른 커맨드플래그생성회로(123)는 테스트코드생성부(21), 코드선택부(22), 코드비교부(23), 펄스분배부(24) 및 플래그생성부(25)를 포함할 수 있다.
테스트코드생성부(21)는 테스트개시신호(T_EN), 클럭(CLK) 및 비교신호(COM)에 응답하여 테스트코드(TC<1:2>)를 생성할 수 있다. 좀 더 구체적으로, 테스트코드생성부(21)는 테스트가 개시되어 테스트개시신호(T_EN)가 인에이블되는 경우 클럭(CLK)에 동기하여 카운팅되는 테스트코드(TC<1:2>)를 생성할 수 있다. 테스트코드생성부(21)는 테스트코드(TC<1:2>)를 업카운팅 하거나 다운카운팅할 수 있는 카운터를 포함할 수 있다. 예를 들어, 테스트코드생성부(21)는 테스트가 개시되어 테스트개시신호(T_EN)가 인에이블되는 경우 '00', '01', '10', '11'의 순서로 순차적으로 1 비트씩 업카운팅되는 테스트코드(TC<1:2>)를 생성할 수 있다. 테스트코드(TC<1:2>)가 '01'이라 함은 테스트코드의 첫번째 비트(TC<1>)가 로직하이레벨이고, 테스트코드의 두번째 비트(TC<2>)가 로직로우레벨임을 의미한다. 테스트코드생성부(21)는 비교신호(COM)의 펄스가 입력되는 경우 테스트코드(TC<1:2>)를 '00'으로 초기화할 수 있다. 테스트코드생성부(21)는 초기화된 테스트코드(TC<1:2>)를 클럭(CLK)에 동기하여 '00', '01', '10', '11'의 순서로 순차적으로 1 비트씩 업카운팅할 수 있다.
코드선택부(22)는 테스트개시신호(T_EN), 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)에 응답하여 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>) 중 하나를 선택코드(SEL<1:2>)로 선택하여 출력할 수 있다. 좀 더 구체적으로 코드선택부(22)의 동작을 살펴보면 다음과 같다. 코드선택부(22)는 테스트가 개시되어 테스트개시신호(T_EN)가 인에이블되는 경우 제1 설정코드(SC1<1:2>)를 선택코드(SEL<1:2>)로 선택하여 출력할 수 있다. 코드선택부(22)는 제1 커맨드플래그(CFLAG1)가 인에이블되는 경우 제2 설정코드(SC2<1:2>)를 선택코드(SEL<1:2>)로 선택하여 출력할 수 있다. 코드선택부(22)는 제2 커맨드플래그(CFLAG2)가 인에이블되는 경우 제3 설정코드(SC3<1:2>)를 선택코드(SEL<1:2>)로 선택하여 출력할 수 있다. 코드선택부(22)는 제3 커맨드플래그(CFLAG3)가 인에이블되는 경우 제4 설정코드(SC4<1:2>)를 선택코드(SEL<1:2>)로 선택하여 출력할 수 있다. 코드선택부(22)가 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>) 중 하나를 선택코드(SEL<1:2>)로 선택하여 출력하는 방식은 실시예에 따라서 다양하게 설정될 수 있다.
코드비교부(23)는 테스트코드(TC<1:2>)와 선택코드(SEL<1:2>)를 비교하여 비교신호(COM)를 생성할 수 있다. 좀 더 구체적으로, 코드비교부(23)는 테스트코드(TC<1:2>)와 선택코드(SEL<1:2>)가 동일한 논리레벨조합을 갖는 경우 비교신호(COM)의 펄스를 생성할 수 있다. 비교신호(COM)의 펄스폭은 실시예에 따라서 다양하게 설정될 수 있다.
펄스분배부(24)는 비교신호(COM)를 입력받아 제1 펄스신호(PUL1), 제2 펄스신호(PUL2) 및 제3 펄스신호(PUL3)를 생성할 수 있다. 좀 더 구체적으로, 펄스분배부(24)는 비교신호(COM)에 포함된 펄스들을 순차적으로 제1 펄스신호(PUL1), 제2 펄스신호(PUL2) 및 제3 펄스신호(PUL3)로 출력할 수 있다. 예를 들어, 펄스분배부(24)는 비교신호(COM)에 포함된 첫번째 펄스를 제1 펄스신호(PUL1)로 출력하고, 비교신호(COM)에 포함된 두번째 펄스를 제2 펄스신호(PUL2)로 출력하며, 비교신호(COM)에 포함된 세번째 펄스를 제3 펄스신호(PUL3)로 출력하고, 비교신호(COM)에 포함된 네번째 펄스를 제1 펄스신호(PUL1)로 출력할 수 있다.
플래그생성부(25)는 제1 펄스신호(PUL1), 제2 펄스신호(PUL2) 및 제3 펄스신호(PUL3)에 동기하여 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)를 생성할 수 있다. 좀 더 구체적으로, 플래그생성부(25)는 제1 펄스신호(PUL1)의 펄스에 동기하여 인에이블되고, 제2 펄스신호(PUL2)의 펄스에 동기하여 디스에이블되는 제1 커맨드플래그(CFLAG1)를 생성할 수 있다. 플래그생성부(25)는 제2 펄스신호(PUL2)의 펄스에 동기하여 인에이블되고, 제3 펄스신호(PUL3)의 펄스에 동기하여 디스에이블되는 제2 커맨드플래그(CFLAG2)를 생성할 수 있다. 플래그생성부(25)는 제3 펄스신호(PUL3)의 펄스에 동기하여 인에이블되고, 제1 펄스신호(PUL1)의 펄스에 동기하여 디스에이블되는 제3 커맨드플래그(CFLAG3)를 생성할 수 있다.
이상 살펴본 바와 같이 구성된 커맨드플래그생성회로(123)의 동작을 도 3을 참고하면 살펴보면 다음과 같다. 본 실시예에서 제1 설정코드(SC1<1:2>)가 '10', 제2 설정코드(SC2<1:2>)가 '11', 제3 설정코드(SC3<1:2>)가 '11' 및 제4 설정코드(SC4<1:2>)가 '01'의 논리레벨조합을 갖는 경우를 가정한다.
T31 시점에서, 테스트가 개시되어 테스트개시신호(T_EN)가 로직하이레벨로 인에이블되는 경우 테스트코드(TC<1:2>)가 클럭(CLK)에 동기하여 '00'에서부터 1 비트씩 업카운팅된다.
T32 시점에서, 테스트코드(TC<1:2>)가 '10'으로 카운팅되면 제1 설정코드(SC1<1:2>)와 동일해지므로, 비교신호(COM)의 첫번째 펄스가 생성되어 제1 펄스신호(PUL1)로 출력된다. 제1 펄스신호(PUL1)의 펄스에 따라 제1 커맨드플래그(CFLAG1)는 로직하이레벨로 인에이블된다. T31~T32 구간은 개시구간으로 설정되어 테스트가 개시된 후 제1 커맨드플래그(CFLAG1)가 인에이블되는데 필요한 준비구간으로 설정될 수 있다. 비교신호(COM)의 첫번째 펄스에 따라 테스트코드(TC<1:2>)가 '00'으로 초기화되고, 다시 1 비트씩 업카운팅된다.
T33 시점에서, 테스트코드(TC<1:2>)가 '11'으로 카운팅되면 제2 설정코드(SC2<1:2>)와 동일해지므로, 비교신호(COM)의 두번째 펄스가 생성되어 제2 펄스신호(PUL2)로 출력된다. 제2 펄스신호(PUL2)의 펄스에 따라 제1 커맨드플래그(CFLAG1)는 로직로우레벨로 디스에이블되고, 제2 커맨드플래그(CFLAG2)는 로직하이레벨로 인에이블된다. 제1 커맨드플래그(CFLAG1)가 인에이블되는 T32~T33 구간은 제1 동작구간으로 설정되어 도 1에서 살펴본 바와 같이 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 제1 메모리셀어레이에 데이터패턴(DQ<1:L>)을 라이트하는 동작이 수행될 수 있다. 비교신호(COM)의 두번째 펄스에 따라 테스트코드(TC<1:2>)가 '00'으로 초기화되고, 다시 1 비트씩 업카운팅된다.
T34 시점에서, 테스트코드(TC<1:2>)가 '11'으로 카운팅되면 제3 설정코드(SC3<1:2>)와 동일해지므로, 비교신호(COM)의 세번째 펄스가 생성되어 제3 펄스신호(PUL3)로 출력된다. 제3 펄스신호(PUL3)의 펄스에 따라 제2 커맨드플래그(CFLAG2)는 로직로우레벨로 디스에이블되고, 제3 커맨드플래그(CFLAG3)는 로직하이레벨로 인에이블된다. 제2 커맨드플래그(CFLAG2)가 인에이블되는 T33~T34 구간은 제2 동작구간으로 설정되어 도 1에서 살펴본 바와 같이 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 제1 메모리셀어레이에 저장된 데이터패턴(DQ<1:L>)을 리드하는 동작이 수행될 수 있다. 비교신호(COM)의 세번째 펄스에 따라 테스트코드(TC<1:2>)가 '00'으로 초기화되고, 다시 1 비트씩 업카운팅된다.
T33~T34 구간에서 제1 메모리셀어레이에서 리드된 데이터패턴(DQ<1:L>)과 앞서, T32~T33 구간에서 제1 메모리셀어레이에 라이트되는 데이터패턴(DQ<1:L>)을 비교하여 메모리셀어레이의 불량여부에 대한 정보를 포함하는 불량정보가 생성될 수 있다. 이때 불량정보를 생성하는 방식으로 압축병렬테스트가 이용될 수 있다.
T35 시점에서, 테스트코드(TC<1:2>)가 '01'으로 카운팅되면 제3 설정코드(SC3<1:2>)와 동일해지므로, 비교신호(COM)의 네번째 펄스가 생성되어 제1 펄스신호(PUL1)로 출력된다. 제1 펄스신호(PUL1)의 펄스에 따라 제3 커맨드플래그(CFLAG3)는 로직로우레벨로 디스에이블되고, 제1 커맨드플래그(CFLAG1)는 로직하이레벨로 인에이블된다. 제3 커맨드플래그(CFLAG3)가 인에이블되는 T34~T35 구간은 제3 동작구간으로 설정되어 도 1에서 살펴본 바와 같이 불량정보를 저장하는 동작이 수행될 수 있다. 비교신호(COM)의 첫번째 펄스에 따라 테스트코드(TC<1:2>)가 '00'으로 초기화되고, 다시 1 비트씩 업카운팅된다.
T36 시점에서, 테스트코드(TC<1:2>)가 '11'으로 카운팅되면 제2 설정코드(SC2<1:2>)와 동일해지므로, 비교신호(COM)의 다섯번째 펄스가 생성되어 제2 펄스신호(PUL2)로 출력된다. 제2 펄스신호(PUL2)의 펄스에 따라 제1 커맨드플래그(CFLAG1)는 로직로우레벨로 디스에이블되고, 제2 커맨드플래그(CFLAG2)는 로직하이레벨로 인에이블된다. 제1 커맨드플래그(CFLAG1)가 인에이블되는 T32~T33 구간은 제1 동작구간으로 설정되어 도 1에서 살펴본 바와 같이 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 제2 메모리셀어레이에 데이터패턴(DQ<1:L>)을 라이트하는 동작이 수행될 수 있다. 비교신호(COM)의 두번째 펄스에 따라 테스트코드(TC<1:2>)가 '00'으로 초기화되고, 다시 1 비트씩 업카운팅된다.
이상 살펴본 바와 같이, 본 발명의 일실시예에 따른 커맨드플래그생성회로(123)는 기설정된 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 논리레벨조합에 따라 인에이블구간이 조절되는 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)를 순환적으로 생성할 수 있다. 즉, 메모리셀어레이에 데이터패턴을 라이트하는 동작이 수행되는 제1 동작구간동안 인에이블되는 제1 커맨드플래그(CFLAG1), 메모리셀어레이에 저장된 데이터패턴을 리드하는 동작이 수행되는 제2 동작구간동안 인에이블되는 제2 커맨드플래그(CFLAG2) 및 메모리셀어레이에 대한 불량정보를 저장하는 동작이 수행되는 제3 동작구간동안 인에이블되는 제3 커맨드플래그(CFLAG3)를 순환적으로 생성함으로써 레이턴시(latency) 없이 제2 반도체장치(12)에 포함된 모든 메모리셀어레이에 대한 불량 여부를 테스트하여 불량이 발생된 메모리셀레이를 리페어할 수 있다.
도 4를 참고하면 본 발명의 일 실시예에 따른 테스트회로(126)는 로우경로제어부(41), 컬럼경로제어부(42), 데이터입출력부(43), 불량정보생성부(44), 불량정보저장부(45) 및 리페어부(46)를 포함할 수 있다.
로우경로제어부(41)는 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 로우어드레스패턴(RADD<1:N>)에 응답하여 워드라인신호(WL<1:X>)를 생성할 수 있다. 로우경로제어부(41)는 제1 커맨드플래그(CFLAG1) 또는 제2 커맨드플래그(CFLAG2)가 인에이블되는 경우 로우어드레스패턴(RADD<1:N>)을 디코딩하여 워드라인신호(WL<1:X>)를 생성할 수 있다. 즉, 로우경로제어부(41)는 제1 커맨드플래그(CFLAG1)가 인에이블되는 제1 동작구간에서 수행되는 리드동작 또는 제2 커맨드플래그(CFLAG2)가 인에이블되는 제2 동작구간에서 수행되는 라이트동작을 수행하기 위해 메모리셀어레이가 연결된 워드라인들을 선택적으로 활성화하기 위한 워드라인신호(WL<1:X>)를 생성할 수 있다. 로우어드레스패턴(RADD<1:N>)을 디코딩하여 생성되는 워드라인신호(WL<1:X>)의 논리레벨 및 비트수는 실시예에 따라 다양하게 설정될 수 있다.
컬럼경로제어부(42)는 제1 커맨드플래그(CFLAG1) 또는 제2 커맨드플래그(CFLAG2)가 인에이블되는 경우 컬럼어드레스패턴(CADD<1:M>)을 디코딩하여 출력인에이블신호(YI<1:Y>)를 생성할 수 있다. 즉, 컬럼경로제어부(42)는 리드동작 또는 라이트동작 시 데이터가 입출력되는 데이터 경로를 선택적으로 활성화하기 위한 출력인에이블신호(YI<1:Y>)를 생성할 수 있다. 컬럼어드레스패턴(CADD<1:M>)을 디코딩하여 생성되는 출력인에이블신호(YI<1:Y>)의 논리레벨 및 비트수는 실시예에 따라 다양하게 설정될 수 있다.
데이터입출력부(43)는 워드라인신호(WL<1:X>) 및 출력인에이블신호(YI<1:Y>)에 응답하여 데이터패턴(DQ<1:L>)을 입력받아 저장하고, 저장된 데이터패턴(DQ<1:L>)을 출력데이터(DOUT<1:K>)로 출력할 수 있다. 데이터입출력부(43)는 라이트동작 시 워드라인신호(WL<1:X>)에 의해 활성화된 워드라인들에 연결된 메모리셀어레이에 출력인에이블신호(YI<1:Y>)에 의해 활성화된 데이터경로를 통해 입력된 데이터패턴(DQ<1:L>)을 저장할 수 있다. 데이터입출력부(43)는 리드동작 시 워드라인신호(WL<1:X>)에 의해 활성화된 워드라인들에 연결된 메모리셀어레이에 저장된 데이터패턴(DQ<1:L>)을 출력인에이블신호(YI<1:Y>)에 의해 활성화된 데이터경로를 통해 출력데이터(DOUT<1:K>)로 출력할 수 있다.
불량정보생성부(44)는 출력데이터(DOUT<1:K>)로부터 데이터패턴(DQ<1:L>)이 저장된 메모리셀어레이에 대한 불량 여부에 대한 정보를 포함하는 불량정보(PF)를 생성할 수 있다. 불량정보생성부(44)는 압축병렬테스트회로로 구현될 수 있으며, 출력데이터(DOUT<1:K>)에 포함된 논리레벨 중 적어도 하나가 다른 경우 인에이블되는 불량정보(PF)를 생성할 수 있다. 예를 들어, 불량정보생성부(44)는 출력데이터(DOUT<1:K>) 중 적어도 한비트가 로직로우레벨인 경우 인에이블되는 불량정보(PF)를 생성하도록 구현될 수 있다.
불량정보저장부(45)는 제3 커맨드플래그(CFLAG3)에 응답하여 불량정보(PF)를 저장할 수 있다. 좀 더 구체적으로, 불량정보저장부(45)는 제3 커맨드플래그(CFLAG3)가 인에이블되는 경우 불량정보(PF)를 저장할 수 있다.
리페어부(46)는 불량정보(PF)에 응답하여 메모리셀어레이를 리페어할 수 있다. 좀 더 구체적으로, 리페어부(46)는 불량정보(PF)가 인에이블되는 경우 출력데이터(DOUT<1:K>)가 출력된 메모리셀어레이에 대한 리페어 동작을 수행할 수 있다.
이상 도 1 내지 도 4를 통해 살펴본 반도체시스템의 동작을 도 5를 참고하여 살펴보면 다음과 같다.
우선, 테스트에 진입하면 커맨드플래그 생성 동작이 개시된다.(S51) 커맨드플래그 생성 동작은 기설정된 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)에 따라 인에이블구간들이 설정되는 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)가 설정되는 방식으로 진행된다. 예를 들어, 제2 설정코드(SC2<1:2>)가 '11', 제3 설정코드(SC3<1:2>)가 '11' 및 제4 설정코드(SC4<1:2>)가 '01'의 논리레벨조합을 갖는 경우 제1 커맨드플래그(CFLAG1)가 인에이블되는 제1 동작구간 및 제2 커맨드플래그(CFLAG2)가 인에이블되는 제2 동작구간은 단위구간의 3배만큼의 구간을 가지며, 제3 커맨드플래그(CFLAG3)가 인에이블되는 제3 동작구간은 단위구간을 가질 수 있다.
다음으로, 리드동작 및 라이트동작을 수행하기 위해 어드레스패턴 및 데이터패턴이 생성된다.(S52) 좀 더 구체적으로, 제1 커맨드플래그(CFLAG1)가 인에이블되는 제1 동작구간 동안 수행되는 라이트동작 및 제2 커맨드플래그(CFLAG2)가 인에이블되는 제2 동작구간 동안 수행되는 리드동작을 위해 로우어드레스패턴(RADD<1:N>), 컬럼어드레스패턴(CADD<1:M>) 및 데이터패턴(DQ<1:L>)을 생성할 수 있다.
다음으로, 메모리셀어레이의 불량 여부에 대한 정보를 포함하는 불량정보를 생성하고 저장한다.(S53) 불량정보의 생성은 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 메모리셀어레이에 데이터패턴(DQ<1:L>)을 라이트하고, 메모리셀어레이에 저장된 데이터패턴(DQ<1:L>)을 리드한 후 데이터들을 비교하는 방식으로 진행된다. 불량정보는 제3 커맨드플래그(CFLAG3)가 인에이블되는 제3 동작구간에서 저장될 수 있다.
마지막으로, 메모리셀어레이에 불량이 존재하는 여부를 판단(S54)하여, 불량이 있는 경우 메모리셀어레이에 대한 리페어 동작을 수행한다.(S55)
본 실시예에서 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)는 순환적으로 인에이블되어 생성되므로, 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)가 순차적으로 인에이블되는 한번의 순환 구간동안 하나의 메모리셀어레이에 대한 불량 정보가 생성되어 저장될 수 있다. 따라서, 제2 반도체장치(12)에 포함된 적어도 2 이상의 메모리셀어레이에 대한 리드동작 및 라이트동작을 수행하기 위해 어드레스패턴 및 데이터패턴이 생성(S52) 동작과 불량정보 생성 및 저장(S53) 동작은 순환적으로 반복되어 수행될 수 있다.
이상 살펴본 바와 같이, 본 실시예에 따른 반도체시스템은 테스트를 수행하는 회로를 반도체장치 내부에 구비함으로써 테스트장치를 구현하는데 필요한 비용을 감소시킬 수 있고, 다수의 반도체장치들에 대한 테스트를 동시에 수행할 수 있다. 또한, 본 실시예에 따른 반도체시스템은 기설정된 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 논리레벨조합에 따라 인에이블구간이 조절되는 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)를 순환적으로 생성하여 테스트에 필요한 동작구간들을 순환적으로 설정함으로써, 레이턴시(latency) 없이 동작구간들이 수행되어 테스트 시간을 감소시킬 수 있다. 또한, 본 실시예에 따른 반도체시스템은 순환적으로 설정된 동작구간들에서 생성된 어드레스패턴 및 데이터패턴을 이용하여 반도체장치 내부에 포함된 메모리셀 또는 메모리셀어레이의 불량 여부를 빠르게 검출한 후 불량 메모리셀 또는 불량 메모리셀어레이를 빠르게 리페어할 수 있다.
도 6을 참고하면 본 발명의 다른 실시예에 따른 반도체시스템은 제3 반도체장치(61) 및 제4 반도체장치(62)를 포함할 수 있다. 제4 반도체장치(62)는 커맨드디코더(621), 코드생성회로(622), 커맨드플래그생성회로(623), 어드레스패턴생성회로(624), 데이터패턴생성회로(625) 및 테스트회로(626)를 포함할 수 있다.
제3 반도체장치(61)는 커맨드(CA<1:J>)를 출력할 수 있다. 커맨드(CA<1:J>)는 다양한 논리레벨조합으로 설정될 수 있다. 커맨드(CA<1:J>)의 논리레벨조합에 따라 테스트개시신호(T_EN) 또는 저장제어신호(S_CON)가 인에이블될 수 있다. 커맨드(CA<1:J>)는 커맨드만 전송되는 라인들 또는 커맨드 및 어드레스가 동시에 전송되는 라인들을 통해 전송될 수 있다. 커맨드(CA<1:J>)에 포함된 비트수는 실시예에 따라 다양하게 설정할 수 있다.
커맨드디코더(621)는 커맨드(CA<1:J>)를 디코딩하여 테스트개시신호(T_EN) 및 저장제어신호(S_CON)를 생성할 수 있다. 테스트개시신호(T_EN)는 커맨드(CA<1:J>)가 제1 논리레벨조합으로 입력되는 경우 인에이블될 수 있고, 저장제어신호(S_CON)는 커맨드(CA<1:J>)가 제2 논리레벨조합으로 입력되는 경우 인에이블될 수 있다. 테스트개시신호(T_EN)가 인에이블되는 경우 메모리셀 또는 메모리셀어레이에 대한 불량 여부를 확인하고 리페어할 수 있는 테스트가 수행될 수 있다. 저장제어신호(S_CON)가 인에이블되는 경우 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)가 생성될 수 있다. 테스트개시신호(T_EN) 및 저장제어신호(S_CON)가 인에이블되는 방식은 실시예에 따라서 다양하게 설정될 수 있다. 예를 들어, 테스트개시신호(T_EN) 및 저장제어신호(S_CON)는 기설정된 논리레벨로 인에이블되거나 인에이블시점에서 발생되는 펄스들을 포함할 수 있다. 제1 논리레벨조합 및 제2 논리레벨조합은 실시예에 따라서 다양하게 설정될 수 있다. 커맨드디코더(621)는 인에이블된 저장제어신호(S_CON)를 생성한 후 인에이블된 테스트개시신호(T_EN)를 생성하도록 구현될 수 있다. 이 경우 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)가 생성된 후 메모리셀 또는 메모리셀어레이에 대한 불량 여부가 확인되고 리페어될 수 있다. 실시예에 따라서 커맨드디코더(621)는 인에이블된 테스트개시신호(T_EN)를 생성한 후 인에이블된 저장제어신호(S_CON)를 생성하도록 구현될 수 있다. 이 경우 메모리셀 또는 메모리셀어레이에 대한 불량 여부를 확인하고 리페어할 수 있는 테스트가 개시된 후 저장제어신호(S_CON)가 인에이블되어 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)가 생성될 수 있다.
코드생성회로(622)는 저장제어신호(S_CON)에 응답하여 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 생성할 수 있다. 좀 더 구체적으로, 코드생성회로(622)는 저장제어신호(S_CON)가 인에이블되는 경우 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 생성하여 출력할 수 있다. 코드생성회로(622)는 기설정된 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)를 내부에 저장하도록 구현될 수도 있다.
커맨드플래그생성회로(623)는 테스트개시신호(T_EN)에 응답하여 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)로부터 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)를 생성할 수 있다. 커맨드플래그생성회로(623)는 테스트개시신호(T_EN)가 인에이블되는 시점부터 제1 설정코드(SC1<1:2>)에 따라 설정되는 개시구간이 경과된 시점에 동기하여 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)의 생성 동작을 개시한다. 커맨드플래그생성회로(623)는 제2 설정코드(SC2<1:2>)에 따라 설정되는 제1 동작구간동안 인에이블되는 제1 커맨드플래그(CFLAG1)를 생성할 수 있다. 커맨드플래그생성회로(623)는 제3 설정코드(SC3<1:2>)에 따라 설정되는 제2 동작구간동안 인에이블되는 제2 커맨드플래그(CFLAG2)를 생성할 수 있다. 커맨드플래그생성회로(623)는 제4 설정코드(SC4<1:2>)에 따라 설정되는 제3 동작구간동안 인에이블되는 제3 커맨드플래그(CFLAG3)를 생성할 수 있다. 개시구간, 제1 동작구간, 제2 동작구간 및 제3 동작구간은 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 논리레벨 조합으로부터 실시예에 따라 다양하게 설정될 수 있다. 예를 들어, 제1 설정코드(SC1<1:2>)가 '10', 제2 설정코드(SC2<1:2>)가 '11', 제3 설정코드(SC3<1:2>)가 '11' 및 제4 설정코드(SC4<1:2>)가 '01'의 논리레벨조합을 갖는 경우 개시구간은 단위구간의 2배만큼의 구간을 갖고, 제1 동작구간 및 제2 동작구간은 단위구간의 3배만큼의 구간을 가지며, 제3 동작구간은 단위구간을 가질 수 있다. 여기서, 제1 설정코드(SC1<1:2>)가 '10'이라 함은 제1 설정코드의 첫번째 비트(SC1<1>)가 로직로우레벨이고, 제1 설정코드의 두번째 비트(SC1<2>)가 로직하이레벨임을 의미한다. 단위구간은 실시예에 따라서 다양하게 설정될 수 있다. 제1 동작구간, 제2 동작구간 및 제3 동작구간에서는 리드동작, 라이트동작, 리프레쉬동작, 프리차지동작, 모드레지스터셋동작, 불량정보저장동작 및 리페어동작 등의 다양한 동작이 수행될 수 있다. 예를 들어, 제1 동작구간에서는 라이트동작이 수행되고, 제2 동작구간에서는 리드동작이 수행되며, 제3 동작구간에서는 불량정보저장동작이 수행되도록 설정될 수 있다. 커맨드플래그생성회로(623)는 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)로부터 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2) 및 제3 커맨드플래그(CFLAG3)를 순환적으로 생성할 수 있다. 즉, 개시구간이 경과된 후 제1 동작구간, 제2 동작구간 및 제3 동작구간이 순환적으로 수행된다. 본 실시예에서는 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 비트수를 2 비트로 구현하여 개시구간, 제1 동작구간, 제2 동작구간 및 제3 동작구간을 단위구간의 1배부터 3배까지의 구간으로 설정할 수 있는 방법을 설명하였다. 실시예에 따라서, 제1 설정코드(SC1<1:2>), 제2 설정코드(SC2<1:2>), 제3 설정코드(SC3<1:2>) 및 제4 설정코드(SC4<1:2>)의 비트수를 n으로 구현하는 경우 개시구간, 제1 동작구간, 제2 동작구간 및 제3 동작구간을 단위구간의 1배부터 2n-1배까지의 구간으로 설정할 수 있다. 여기서, n은 자연수로 설정될 수 있다.
어드레스패턴생성회로(624)는 테스트개시신호(T_EN) 및 제3 커맨드플래그(CFLAG3)에 응답하여 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)을 생성할 수 있다. 좀 더 구체적으로, 테스트가 개시되어 테스트개시신호(T_EN)가 인에이블되는 경우 어드레스패턴생성회로(624)는 제1 동작구간 및 제2 동작구간의 동작들을 위한 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)을 생성할 수 있다. 이때, 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 논리레벨 조합은 기설정된 메모리셀 또는 메모리셀어레이를 엑세스하기 위해 설정된다. 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 논리레벨 조합에 따라 엑세스되는 메모리셀 또는 메모리셀어레이는 실시예에 따라서 다양하게 설정될 수 있다. 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 비트수는 실시예에 따라서 다양하게 설정할 수 있다.어드레스패턴생성회로(624)는 제3 동작구간의 동작이 종료되는 경우 디스에이블되는 제3 커맨드플래그(CFLAG3)에 동기하여 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)의 논리레벨 조합을 변화시킨다. 이에 따라 순환적으로 수행되는 제1 동작구간 및 제2 동작구간의 동작들에서 엑세스되는 메모리셀 또는 메모리셀어레이는 앞선 제1 동작구간 및 제2 동작구간의 동작들에서와 상이하게 설정된다. 예를 들어, 제1 메모리셀어레이에 대해 제1 동작구간동안 라이트동작이 수행되고, 제2 동작구간동안 리드동작이 수행된 후 제3 동작구간동안 제1 메모리셀어레이에 대한 불량확인 결과 생성된 불량정보 저장동작이 종료되면 제2 메모리셀어레이에 대한 라이트동작, 리드동작 및 불량정보 저장동작으로 구성된 테스트가 순차적으로 수행된다. 이때, 제1 메모리셀어레이 및 제2 메모리셀어레이에 대한 설정은 실시예에 따라서 다양하게 구현될 수 있다. 라이트동작, 리드동작 및 불량정보 저장동작으로 구성된 테스트는 제4 반도체장치(62)에 포함된 모든 메모리셀어레이에 대해서 수행될 수 있다. 실시예에 따라서는 테스트가 제4 반도체장치(62)에 포함된 일부 메모리셀어레이에 대해서도 수행될 수도 있다.
데이터패턴생성회로(625)는 테스트개시신호(T_EN)에 응답하여 데이터패턴(DQ<1:L>)을 생성할 수 있다. 좀 더 구체적으로, 데이터패턴생성회로(625)는 테스트가 개시되어 테스트개시신호(T_EN)가 인에이블되는 경우 데이터패턴(DQ<1:L>)을 생성할 수 있다. 데이터패턴(DQ<1:L>)의 논리레벨조합 및 비트수는 실시예에 따라서 다양하게 설정할 수 있다. 데이터패턴(DQ<1:L>)은 1비트 신호로 구현될 수도 있다. 예를 들어, 메모리셀어레이에 대해 제1 동작구간동안 라이트동작이 수행되고, 제2 동작구간동안 메모리셀어레이에 대한 리드동작이 수행된 후 제3 동작구간동안 메모리셀어레이에 대한 불량확인 결과 생성된 불량정보를 저장하는 동작으로 구성된 테스트가 수행되는 경우 데이터패턴(DQ<1:L>)이 메모리셀어레이에 라이트된 후 리드되는 방식으로 테스트가 진행된다.
테스트회로(626)는 제1 커맨드플래그(CFLAG1), 제2 커맨드플래그(CFLAG2), 제3 커맨드플래그(CFLAG3), 로우어드레스패턴(RADD<1:N>), 컬럼어드레스패턴(CADD<1:M>) 및 데이터패턴(DQ<1:L>)에 응답하여 테스트를 수행한다. 좀 더 구체적으로 테스트회로(626)에 의해 진행되는 테스트동작을 살펴보면 다음과 같다.
테스트회로(626)는 제1 커맨드플래그(CFLAG1)가 인에이블되는 제1 동작구간동안 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 제1 메모리셀어레이에 데이터패턴(DQ<1:L>)을 라이트하는 동작을 수행할 수 있다. 테스트회로(626)는 제2 커맨드플래그(CFLAG2)가 인에이블되는 제2 동작구간동안 로우어드레스패턴(RADD<1:N>) 및 컬럼어드레스패턴(CADD<1:M>)에 의해 엑세스되는 제1 메모리셀어레이에 저장된 데이터패턴(DQ<1:L>)을 리드하는 동작을 수행할 수 있다. 이때, 리드된 데이터패턴(DQ<1:L>)이 라이트된 데이터패턴(DQ<1:L>)과 동일한 지 여부에 따라 제1 메모리셀어레이의 불량 여부를 확인하여 불량정보를 생성할 수 있다. 실시예에 따라 불량 여부를 확인하는 방식으로 압축병렬테스트를 이용할 수도 있다. 예를 들어, 압축병렬테스트는 메모리셀어레이에 모두 로직하이레벨을 라이트한 후 리드하여 리드된 데이터들 중 적어도 하나의 데이터가 로직로우레벨인 경우 메모리셀어레이가 불량이라는 불량정보가 생성되는 방식으로 진행될 수 있다. 테스트회로(626)는 제3 커맨드플래그(CFLAG3)가 인에이블되는 제3 동작구간동안 불량정보를 저장하는 동작을 수행할 수 있다. 테스트회로(626)는 제1 메모리셀어레이에 대한 테스트가 종료되는 경우 제4 반도체장치(62)에 포함된 다른 메모리셀어레이에 대한 테스트를 순차적으로 수행할 수 있다.
이상 살펴본 바와 같이 구성된 반도체시스템은 도 1에 도시된 반도체시스템과 코드생성회로(622)의 구성을 제외하고는 동일한 구성을 가지므로, 보다 구체적인 구성 및 동작에 대한 설명은 생략한다.
앞서, 도 1 내지 도 6에서 살펴본 반도체장치 및 반도체시스템은 메모리시스템, 그래픽시스템, 컴퓨팅시스템 및 모바일시스템 등을 포함하는 전자시스템에 적용될 수 있다. 예를 들어, 도 7을 참고하면 본 발명의 일 실시예에 따른 전자시스템(1000)은 데이터저장부(1001), 메모리컨트롤러(1002), 버퍼메모리(1003) 및 입출력인터페이스(1004)를 포함할 수 있다.
데이터저장부(1001)는 메모리컨트롤러(1002)로부터의 제어신호에 따라 메모리컨트롤러(1002)로부터 인가되는 데이터를 저장하고 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 데이터저장부(1001)는 도 1에 도시된 제2 반도체장치(12) 또는 도 6에 도시된 제4 반도체장치(62)를 포함할 수 있다. 한편, 데이터저장부(1001)는 전원이 차단되어도 데이터를 잃지 않고 계속 저장할 수 있는 비휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 플래쉬 메모리(Nor Flash Memory, NAND Flash Memory), 상변환 메모리(Phase Change Random Access Memory; PRAM), 저항 메모리(Resistive Random Access Memory;RRAM), 스핀 주입자화반전 메모리(Spin Transfer Torque Random Access Memory; STTRAM), 자기메모리(Magnetic Random Access Memory; MRAM)로 구현될 수 있다.
메모리컨트롤러(1002)는 입출력인터페이스(1004)를 통해 외부기기(호스트 장치)로부터 인가되는 명령어를 디코딩하고 디코딩된 결과에 따라 데이터저장부(1001) 및 버퍼메모리(1003)에 대한 데이터 입출력을 제어한다. 메모리컨트롤러(1002)는 도 1에 도시된 제1 반도체장치(11) 및 도 6에 도시된 제3 반도체장치(61)를 포함할 수 있다. 도 7에서는 메모리컨트롤러(1002)가 하나의 블록으로 표시되었으나, 메모리컨트롤러(1002)는 데이터저장부(1001)를 제어하기 위한 컨트롤러와 휘발성 메모리인 버퍼메모리(1003)를 제어하기 위한 컨트롤러가 독립적으로 구성될 수 있다.
버퍼메모리(1003)는 메모리컨트롤러(1002)에서 처리할 데이터 즉 데이터저장부(1001)에 입출력되는 데이터를 임시적으로 저장할 수 있다. 버퍼메모리(1003)는 제어신호에 따라 메모리컨트롤러(1002)에서 인가되는 데이터(DATA)를 저장할 수 있다. 버퍼메모리(1003)는 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 버퍼메모리(1003)는 DRAM(Dynamic Random Access Memory), Moblie DRAM, SRAM(Static Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다.
입출력인터페이스(1004)는 메모리컨트롤러(1002)와 외부기기(호스트) 사이의 물리적 연결을 제공하여 메모리컨트롤러(1002)가 외부기기로부터 데이터 입출력을 위한 제어신호를 수신하고 외부기기와 데이터를 교환할 수 있도록 해준다. 입출력인터페이스(1004)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 및 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 포함할 수 있다.
전자시스템(1000)은 호스트 장치의 보조 기억장치 또는 외부 저장장치로 사용될 수 있다. 전자시스템(1000)은 고상 디스크(Solid State Disk; SSD), USB 메모리(Universal Serial Bus Memory), 씨큐어 디지털 카드(Secure Digital; SD), 미니 씨큐어 디지털 카드(mini Secure Digital card; mSD), 마이크로 씨큐어 디지털 카드(micro SD), 고용량 씨큐어 디지털 카드(Secure Digital High Capacity; SDHC), 메모리 스틱 카드(Memory Stick Card), 스마트 미디어 카드(Smart Media Card; SM), 멀티 미디어 카드(Multi Media Card; MMC), 내장 멀티 미디어 카드(Embedded MMC; eMMC), 컴팩트 플래시 카드(Compact Flash; CF) 등을 포함할 수 있다.
11: 제1 반도체장치
12: 제2 반도체장치
121: 커맨드디코더 122: 코드저장회로
123: 커맨드플래그생성회로 124: 어드레스패턴생성회로
125: 데이터패턴생성회로 126: 테스트회로
21: 테스트코드생성부 22: 코드선택부
23: 코드비교부 24: 펄스분배부
25: 플래그생성부 41: 로우경로제어부
42: 컬럼경로제어부 43: 데이터입출력부
44: 불량정보생성부 45: 불량정보저장부
46: 리페어부
S51: 커맨드플래그 생성단계
S52: 어드레스패턴 및 데이터패턴 생성단계
S53: 불량정보 생성 및 저장단계 S54: 불량 존재 여부 확인단계
S55: 리페어단계
121: 커맨드디코더 122: 코드저장회로
123: 커맨드플래그생성회로 124: 어드레스패턴생성회로
125: 데이터패턴생성회로 126: 테스트회로
21: 테스트코드생성부 22: 코드선택부
23: 코드비교부 24: 펄스분배부
25: 플래그생성부 41: 로우경로제어부
42: 컬럼경로제어부 43: 데이터입출력부
44: 불량정보생성부 45: 불량정보저장부
46: 리페어부
S51: 커맨드플래그 생성단계
S52: 어드레스패턴 및 데이터패턴 생성단계
S53: 불량정보 생성 및 저장단계 S54: 불량 존재 여부 확인단계
S55: 리페어단계
Claims (30)
- 커맨드 및 설정신호를 출력하는 제1 반도체장치; 및
상기 커맨드를 디코딩하여 저장제어신호 및 테스트개시신호를 생성하고, 상기 저장제어신호에 응답하여 상기 설정신호로부터 설정코드를 추출하여 저장하며, 상기 테스트개시신호에 응답하여 상기 설정코드에 대응하는 적어도 하나의 동작구간 동안 어드레스패턴에 따라 엑세스되는 메모리셀어레이에 대한 불량 여부를 테스트하는 제2 반도체장치를 포함하는 반도체시스템.
- 제 1 항에 있어서, 상기 설정코드는 제1 설정코드 및 제2 설정코드를 포함하고, 상기 제1 설정코드 및 상기 제2 설정코드는 상기 설정신호에 모두 포함되어 상기 제1 반도체장치에서 출력되는 반도체시스템.
- 제 1 항에 있어서, 상기 설정코드는 제1 설정코드 및 제2 설정코드를 포함하고, 상기 제1 설정코드 및 상기 제2 설정코드는 각각 상기 설정신호를 통해 순차적으로 상기 제1 반도체장치에서 출력되는 반도체시스템.
- 제 1 항에 있어서, 상기 설정코드는 제1 설정코드 및 제2 설정코드를 포함하고, 상기 제2 반도체장치는 상기 제1 설정코드에 대응하는 제1 동작구간에서 상기 어드레스패턴에 따라 엑세스되는 상기 메모리셀어레이에 데이터패턴을 라이트하는 동작을 수행하는 반도체시스템.
- 제 4 항에 있어서, 상기 제2 반도체장치는 상기 제2 설정코드에 대응하는 제2 동작구간에서 상기 메모리셀어레이에 저장된 데이터를 리드하는 동작을 수행하는 반도체시스템.
- 제 5 항에 있어서, 상기 설정코드는 제3 설정코드를 더 포함하고, 상기 제2 반도체장치는 상기 제3 설정코드에 대응하는 제3 동작구간에서 불량정보를 저장하는 동작을 수행하되, 상기 불량정보는 상기 데이터패턴과 상기 리드 동작에서 메모리셀어레이에서 출력된 데이터를 비교하여 생성되는 반도체시스템.
- 제 1 항에 있어서, 상기 제2 반도체장치는
상기 저장제어신호에 응답하여 상기 설정신호로부터 제1 내지 제4 설정코드를 추출하여 저장한 후 출력하는 코드저장회로;
상기 테스트개시신호에 응답하여 상기 제1 내지 제4 설정코드로부터 제1 내지 제3 커맨드플래그를 생성하는 커맨드플래그생성회로;
상기 테스트개시신호에 응답하여 생성된 로우어드레스패턴 및 컬럼어드레스패턴에 응답하여 엑세스되는 상기 메모리셀어레이에 데이터패턴을 라이트하고 리드하는 동작을 통해 불량정보를 생성하여 저장하는 테스트회로를 포함하는 반도체시스템.
- 제 7 항에 있어서, 상기 커맨드플래그생성회로는
상기 제1 설정코드에 대응하는 개시구간이 경과된 시점부터 상기 제2 설정코드에 대응하는 제1 동작구간 동안 인에이블되는 상기 제1 커맨드플래그를 생성하고, 상기 제1 동작구간이 경과된 시점부터 상기 제3 설정코드에 대응하는 제2 동작구간 동안 인에이블되는 상기 제2 커맨드플래그를 생성하며, 상기 제2 동작구간이 경과된 시점부터 상기 제4 설정코드에 대응하는 제3 동작구간 동안 인에이블되는 상기 제3 커맨드플래그를 생성하는 반도체시스템.
- 제 8 항에 있어서, 상기 제1 커맨드플래그, 상기 제2 커맨드플래그 및 상기 제3 커맨드플래그는 순환적으로 인에이블되어 생성되는 반도체시스템.
- 제 7 항에 있어서, 상기 커맨드플래그생성회로는
상기 테스트개시신호에 응답하여 클럭에 동기하여 테스트코드를 카운팅하는 테스트코드생성부;
상기 테스트개시신호 및 상기 제1 내지 제3 커맨드플래그에 응답하여 상기 제1 내지 제4 설정코드 중 하나를 선택코드로 선택하여 출력하는 코드선택부;
상기 테스트코드와 상기 선택코드를 비교하여 비교신호를 생성하는 코드비교부;
상기 비교신호에 포함된 펄스들을 제1 내지 제3 펄스신호로 순차적으로 분배하여 출력하는 펄스분배부; 및
상기 제1 내지 제3 펄스신호에 응답하여 상기 제1 내지 제3 커맨드플래그를 생성하는 플래그생성부를 포함하는 반도체시스템.
- 제 10 항에 있어서, 상기 테스트코드는 상기 비교신호의 펄스가 생성되는 경우 리셋되는 반도체시스템.
- 제 10 항에 있어서, 상기 코드선택부는
상기 테스트개시신호가 인에이블되는 경우 상기 제1 설정코드를 상기 선택코드로 선택하여 출력하고, 상기 제1 커맨드플래그가 인에이블되는 경우 상기 제2 설정코드를 상기 선택코드로 선택하여 출력하며, 상기 제2 커맨드플래그가 인에이블되는 경우 상기 제3 설정코드를 상기 선택코드로 선택하여 출력하고, 상기 제3 커맨드플래그가 인에이블되는 경우 상기 제4 설정코드를 상기 선택코드로 선택하여 출력하는 반도체시스템.
- 제 10 항에 있어서, 상기 코드비교부는 상기 테스트코드와 상기 선택코드가 동일한 경우 상기 비교신호의 펄스를 생성하는 반도체시스템.
- 제 10 항에 있어서, 상기 제1 커맨드플래그는 상기 제1 펄스신호의 펄스에 응답하여 인에이블되고, 상기 제2 펄스신호의 펄스에 응답하여 디스에이블되는 반도체시스템.
- 제 7 항에 있어서, 상기 테스트회로는 상기 불량정보를 통해 불량이 발생된 메모리셀어레이를 리페어하는 반도체시스템.
- 제 7 항에 있어서, 상기 테스트회로는
상기 제1 커맨드플래그가 인에이블되는 제1 동작구간동안 상기 데이터패턴을 입력받아 상기 메모리셀어레이에 라이트하고, 상기 제2 커맨드플래그가 인에이블되는 제2 동작구간동안 상기 메모리셀어레이에 저장된 데이터를 출력데이터로 출력하는 데이터입출력부;
상기 출력데이터로부터 상기 불량정보를 추출하여 출력하는 불량정보생성부;
상기 제3 커맨드플래그가 인에이블되는 제3 동작구간동안 상기 불량정보를 저장하는 불량정보저장부; 및
상기 불량정보를 토대로 불량이 발생된 메모리셀어레이를 리페어하는 리페어부를 포함하는 반도체시스템.
- 커맨드를 출력하는 제1 반도체장치; 및
상기 커맨드를 디코딩하여 저장제어신호 및 테스트개시신호를 생성하고, 상기 저장제어신호에 응답하여 설정코드를 생성하며, 상기 테스트개시신호에 응답하여 상기 설정코드에 대응하는 적어도 하나의 동작구간 동안 어드레스패턴에 따라 엑세스되는 메모리셀어레이에 대한 불량 여부를 테스트하는 제2 반도체장치를 포함하는 반도체시스템.
- 제 17 항에 있어서, 상기 설정코드는 제1 설정코드 및 제2 설정코드를 포함하고, 상기 제2 반도체장치는 상기 제1 설정코드에 대응하는 제1 동작구간에서 상기 어드레스패턴에 따라 엑세스되는 상기 메모리셀어레이에 데이터패턴을 라이트하는 동작을 수행하는 반도체시스템.
- 제 18 항에 있어서, 상기 제2 반도체장치는 상기 제2 설정코드에 대응하는 제2 동작구간에서 상기 메모리셀어레이에 저장된 데이터를 리드하는 동작을 수행하는 반도체시스템.
- 제 19 항에 있어서, 상기 설정코드는 제3 설정코드를 더 포함하고, 상기 제2 반도체장치는 상기 제3 설정코드에 대응하는 제3 동작구간에서 불량정보를 저장하는 동작을 수행하되, 상기 불량정보는 상기 데이터패턴과 상기 리드 동작에서 메모리셀어레이에서 출력된 데이터를 비교하여 생성되는 반도체시스템.
- 제 17 항에 있어서, 상기 제2 반도체장치는
상기 저장제어신호에 응답하여 제1 내지 제4 설정코드를 생성한 후 출력하는 코드생성회로;
상기 테스트개시신호에 응답하여 상기 제1 내지 제4 설정코드로부터 제1 내지 제3 커맨드플래그를 생성하는 커맨드플래그생성회로;
상기 테스트개시신호에 응답하여 생성된 로우어드레스패턴 및 컬럼어드레스패턴에 응답하여 엑세스되는 상기 메모리셀어레이에 데이터패턴을 라이트하고 리드하는 동작을 통해 불량정보를 생성하여 저장하는 테스트회로를 포함하는 반도체시스템.
- 제1 설정코드에 대응하는 개시구간이 경과된 시점부터 제2 설정코드에 대응하는 제1 동작구간 동안 인에이블되는 제1 커맨드플래그를 생성하고, 상기 제1 동작구간이 경과된 시점부터 제3 설정코드에 대응하는 제2 동작구간 동안 인에이블되는 제2 커맨드플래그를 생성하며, 상기 제2 동작구간이 경과된 시점부터 제4 설정코드에 대응하는 제3 동작구간 동안 인에이블되는 제3 커맨드플래그를 생성하는 커맨드플래그생성회로; 및
테스트개시신호에 응답하여 생성된 로우어드레스패턴 및 컬럼어드레스패턴에 응답하여 엑세스되는 메모리셀어레이에 데이터패턴을 라이트하고 리드하는 동작을 통해 불량정보를 생성하여 저장하는 테스트회로를 포함하는 반도체장치.
- 제 22 항에 있어서, 상기 제1 커맨드플래그, 상기 제2 커맨드플래그 및 상기 제3 커맨드플래그는 순환적으로 인에이블되어 생성되는 반도체장치.
- 제 22 항에 있어서, 상기 커맨드플래그생성회로는
상기 테스트개시신호에 응답하여 클럭에 동기하여 테스트코드를 카운팅하는 테스트코드생성부;
상기 테스트개시신호 및 상기 제1 내지 제3 커맨드플래그에 응답하여 상기 제1 내지 제4 설정코드 중 하나를 선택코드로 선택하여 출력하는 코드선택부;
상기 테스트코드와 상기 선택코드를 비교하여 비교신호를 생성하는 코드비교부;
상기 비교신호에 포함된 펄스들을 제1 내지 제3 펄스신호로 순차적으로 분배하여 출력하는 펄스분배부; 및
상기 제1 내지 제3 펄스신호에 응답하여 상기 제1 내지 제3 커맨드플래그를 생성하는 플래그생성부를 포함하는 반도체장치.
- 제 24 항에 있어서, 상기 테스트코드는 상기 비교신호의 펄스가 생성되는 경우 리셋되는 반도체장치.
- 제 24 항에 있어서, 상기 코드선택부는
상기 테스트개시신호가 인에이블되는 경우 상기 제1 설정코드를 상기 선택코드로 선택하여 출력하고, 상기 제1 커맨드플래그가 인에이블되는 경우 상기 제2 설정코드를 상기 선택코드로 선택하여 출력하며, 상기 제2 커맨드플래그가 인에이블되는 경우 상기 제3 설정코드를 상기 선택코드로 선택하여 출력하고, 상기 제3 커맨드플래그가 인에이블되는 경우 상기 제4 설정코드를 상기 선택코드로 선택하여 출력하는 반도체장치.
- 제 24 항에 있어서, 상기 코드비교부는 상기 테스트코드와 상기 선택코드가 동일한 경우 상기 비교신호의 펄스를 생성하는 반도체장치.
- 제 24 항에 있어서, 상기 제1 커맨드플래그는 상기 제1 펄스신호의 펄스에 응답하여 인에이블되고, 상기 제2 펄스신호의 펄스에 응답하여 디스에이블되는 반도체장치.
- 제 22 항에 있어서, 상기 테스트회로는 상기 불량정보를 통해 불량이 발생된 메모리셀어레이를 리페어하는 반도체장치.
- 제 22 항에 있어서, 상기 테스트회로는
상기 제1 커맨드플래그가 인에이블되는 상기 제1 동작구간동안 상기 데이터패턴을 입력받아 상기 메모리셀어레이에 라이트하고, 상기 제2 커맨드플래그가 인에이블되는 상기 제2 동작구간동안 상기 메모리셀어레이에 저장된 데이터를 출력데이터로 출력하는 데이터입출력부;
상기 출력데이터로부터 상기 불량정보를 추출하여 출력하는 불량정보생성부;
상기 제3 커맨드플래그가 인에이블되는 상기 제3 동작구간동안 상기 불량정보를 저장하는 불량정보저장부; 및
상기 불량정보를 토대로 불량이 발생된 메모리셀어레이를 리페어하는 리페어부를 포함하는 반도체장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150098956A KR20170007927A (ko) | 2015-07-13 | 2015-07-13 | 반도체장치 및 반도체시스템 |
US14/927,076 US10083760B2 (en) | 2015-07-13 | 2015-10-29 | Semiconductor devices and semiconductor systems including the same |
CN201610258640.1A CN106356101B (zh) | 2015-07-13 | 2016-04-22 | 半导体器件和包括其的半导体*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150098956A KR20170007927A (ko) | 2015-07-13 | 2015-07-13 | 반도체장치 및 반도체시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170007927A true KR20170007927A (ko) | 2017-01-23 |
Family
ID=57775214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150098956A KR20170007927A (ko) | 2015-07-13 | 2015-07-13 | 반도체장치 및 반도체시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10083760B2 (ko) |
KR (1) | KR20170007927A (ko) |
CN (1) | CN106356101B (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102647419B1 (ko) * | 2016-09-28 | 2024-03-14 | 에스케이하이닉스 주식회사 | 반도체장치 |
KR20180106127A (ko) * | 2017-03-17 | 2018-10-01 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 위한 플래그 생성회로와 데이터 출력 방법 |
KR20180106492A (ko) * | 2017-03-20 | 2018-10-01 | 에스케이하이닉스 주식회사 | 반도체장치 |
KR102512897B1 (ko) * | 2018-01-11 | 2023-03-23 | 에스케이하이닉스 주식회사 | 반도체 장치와 그를 포함하는 반도체 시스템 |
JP6917930B2 (ja) * | 2018-03-15 | 2021-08-11 | キオクシア株式会社 | 不良解析装置および不良解析方法 |
KR20200088702A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
US11288076B2 (en) | 2019-09-13 | 2022-03-29 | Flex Logix Technologies, Inc. | IC including logic tile, having reconfigurable MAC pipeline, and reconfigurable memory |
KR20210108740A (ko) * | 2020-02-26 | 2021-09-03 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4064557A (en) * | 1974-02-04 | 1977-12-20 | International Business Machines Corporation | System for merging data flow |
US5182597A (en) * | 1978-10-15 | 1993-01-26 | Canon Kabushiki Kaisha | Image forming device |
KR910005615B1 (ko) * | 1988-07-18 | 1991-07-31 | 삼성전자 주식회사 | 프로그래머블 순차코오드 인식회로 |
KR100341181B1 (ko) * | 1999-11-05 | 2002-06-20 | 윤종용 | 연속적인 읽기 동작을 지원하는 동기형 마스크 롬 장치 |
DE10334801B3 (de) * | 2003-07-30 | 2005-01-27 | Infineon Technologies Ag | Halbleiterschaltung und Verfahren zum Testen, Überwachen und applikationsnahen Einstellen einer Halbleiterschaltung |
JP4381750B2 (ja) | 2003-08-28 | 2009-12-09 | 株式会社ルネサステクノロジ | 半導体集積回路 |
JP4699882B2 (ja) * | 2005-11-22 | 2011-06-15 | ルネサスエレクトロニクス株式会社 | 電圧−パルス変換回路及び充電制御システム |
KR100827658B1 (ko) * | 2006-09-11 | 2008-05-07 | 삼성전자주식회사 | 반도체 메모리 장치, 이 장치를 구비하는 메모리 시스템,및 이 시스템의 테스트 방법 |
KR100825779B1 (ko) | 2006-09-28 | 2008-04-29 | 삼성전자주식회사 | 반도체 메모리장치 및 이에 대한 웨이퍼 레벨 테스트 방법 |
JP2008118297A (ja) * | 2006-11-01 | 2008-05-22 | Matsushita Electric Ind Co Ltd | デジタルビデオデータ検査システム及び半導体装置 |
JP2008269669A (ja) * | 2007-04-17 | 2008-11-06 | Renesas Technology Corp | 半導体装置及びデータ処理システム |
TW200842385A (en) * | 2007-04-20 | 2008-11-01 | Compal Electronics Inc | A testing system and its method for recognizing the number sequence |
KR20100005610A (ko) * | 2008-07-07 | 2010-01-15 | 주식회사 하이닉스반도체 | 반도체 메모리 디바이스의 테스트모드 제어 회로 및 방법 |
CN103137212A (zh) * | 2011-12-05 | 2013-06-05 | 北大方正集团有限公司 | Sdram测试方法 |
US9087613B2 (en) * | 2012-02-29 | 2015-07-21 | Samsung Electronics Co., Ltd. | Device and method for repairing memory cell and memory system including the device |
KR20130134610A (ko) * | 2012-05-31 | 2013-12-10 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 테스트 방법 |
KR102025341B1 (ko) * | 2012-12-04 | 2019-09-25 | 삼성전자 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
KR102189533B1 (ko) * | 2013-12-18 | 2020-12-11 | 에스케이하이닉스 주식회사 | 메모리 및 이를 포함하는 메모리 시스템 |
-
2015
- 2015-07-13 KR KR1020150098956A patent/KR20170007927A/ko unknown
- 2015-10-29 US US14/927,076 patent/US10083760B2/en active Active
-
2016
- 2016-04-22 CN CN201610258640.1A patent/CN106356101B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106356101B (zh) | 2021-01-01 |
US20170018314A1 (en) | 2017-01-19 |
CN106356101A (zh) | 2017-01-25 |
US10083760B2 (en) | 2018-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106356101B (zh) | 半导体器件和包括其的半导体*** | |
US9990251B2 (en) | Semiconductor system with a column control circuit | |
CN106033684B (zh) | 存储器件和包括存储器件的存储*** | |
US10614871B2 (en) | Semiconductor devices and semiconductor systems including the semiconductor devices | |
KR20150040481A (ko) | 메모리 장치, 메모리 장치 및 메모리 시스템의 동작방법 | |
KR102517700B1 (ko) | 반도체 메모리 장치 및 그의 동작 방법 | |
CN107919160B (zh) | 测试单元阵列的方法及执行其的半导体器件 | |
US9362004B2 (en) | Semiconductor device, semiconductor memory device and memory system | |
US9911505B2 (en) | Cost effective semiconductor devices and semiconductor systems with reduced test time | |
KR20160014976A (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
KR20170109142A (ko) | 반도체장치 | |
CN108281162B (zh) | 半导体器件 | |
US10796747B2 (en) | Semiconductor device | |
KR20180009076A (ko) | 반도체장치 및 반도체시스템 | |
US9779837B1 (en) | Semiconductor test system during burn-in process | |
KR20170100380A (ko) | 반도체장치 | |
KR102535416B1 (ko) | 반도체장치 및 반도체시스템 | |
KR101921101B1 (ko) | 불휘발성 메모리 장치 및 그것의 동작 방법 | |
US10636510B2 (en) | Fuse rupture method and semiconductor device related to a rupture operation | |
KR102615807B1 (ko) | 래치회로를 테스트할 수 있는 테스트방법을 제공하는 반도체장치 | |
KR20200008388A (ko) | 반도체장치 | |
JP2013161509A (ja) | 半導体装置の冗長救済方法 | |
KR20170005715A (ko) | 반도체장치 및 반도체시스템 | |
KR20170112631A (ko) | 반도체장치 및 반도체시스템 | |
KR20150130608A (ko) | 메모리 장치 |