바람직한 실시형태의 설명
이하, 첨부된 도면을 참조하여 본 발명의 반도체 집적회로를 설명한다.
도 1 은 본 발명의 제 1 실시형태에 따른 반도체 집적회로의 구성을 나타내는 블록도이다. 도 1 을 참조하여, 반도체 집적회로는 내부 상태가 내부 상태 데이터로서 보존된 타겟 회로 (11), 타겟 회로 (11) 의 내부 상태 데이터를 저장하는 백업 메모리 (13), 타겟 회로 (11) 의 내부 상태 데이터의 보존 동작 및 복구 동작을 제어하는 백업 제어 회로 (12), 및 타겟 회로 (11) 의 전력 공급을 제어하는 스위치 (14) 를 포함한다. 타겟 회로 (11) 의 내부 상태는 타겟 회로 (11) 내에 플립-플롭에 의해 유지된 내부 상태 데이터에 기초하여 복구된다.
백업 제어 회로 (12) 는 타겟 회로 (11) 로부터 명령 (WFI) 을 수신하고, 타겟 회로 (11) 의 작동 모드 (MD) 를 스위치하고, 타겟 회로 (11) 의 내부 상태를 나타내는 데이터, 즉, 백업 메모리 (13) 내의 내부 상태 데이터를 보존한다. 또한, 타겟 회로 (11) 에 백업 메모리 (13) 에 저장된 내부 상태 데이터를 세팅하고 타겟 회로 (11) 의 내부 상태를 복구하기 위해 외부 인터럽트 신호 (INT) 에 응하여 백업 제어 회로 (12) 가 개시된다. 이 내부 상태의 보존/복구 동작에서, 백업 제어 회로 (12) 는 백업 메모리 (13) 의 저장 어드레스 (ADDR) 및 타겟 회로 (11) 의 기록/판독 타이밍 (CTR) 을 제어한다.
타겟 회로 (11) 의 전력 공급 시스템은 집적회로 내에서 다른 회로와 분리된다. 따라서, 타겟 회로 (11) 의 전력 공급만이 턴 오프될 수 있다. 스위치 (14) 는 백업 제어 회로 (12) 에 의한 제어 (PWC) 에 기초하여 전력 공급을 턴 온/오프한다.
*백업 메모리 (13) 는 타겟 회로 (11) 의 내부 상태를 나타내는 내부 상태 데이터를 유지한다. 백업 메모리 (13) 는 타겟 회로 (11) 의 내부 상태 데이터에 대한 커패시티를 가지기에 충분하다. 데이터 폭 (워드 길이) 은 내부 노드 데이터 (TO) 를 효과적으로 획득하기 위해 넓혀진다. 예를 들어, 32 개의 스캔 체인이 있을 때, 각각의 32 개 스캔 체인으로부터 4 개 위치의 내부 상태 데이터가 획득되는 경우, 128 비트의 데이터가 개별 스캔 클럭에 대해 동시에 출력된다. 따라서, 백업 메모리 (13) 내에 128 비트 이상의 워드 길이가 필요하다. 백업 메모리 (13) 의 어드레스 (ADDR) 및 기록/판독 동작 타이밍 (CTR) 이 백업 제어 회로 (12) 에서 제공된다. 백업 메모리 (13) 는 높은 역치 전압 (high threshold voltage), 및 낮은 누설 전류를 가진다. 따라서, 비록, 백업 메모리 (13) 의 동작 속도가 너무 빠르지 않지만, 전력 소비는 작다. 또한, 플래시 메모리와 같은 비휘발성 메모리가 백업 메모리 (13) 에 대해 이용되는 경우, 백업 메모리 (13) 의 전력 공급은 전력 소비를 감소시키기 위해 대기 상태에서 턴 오프될 수 있다.
타겟 회로 (11) 의 내부 상태를 나타내는 내부 상태 데이터는 스캔 체인 (15) 으로 및 스캔 체인 (15) 으로부터 공급되고 출력된다. 스캔 체인 (15) 은 반도체 집적회로의 무결함성 (non-defectiveness) 을 시험하는 스캔 경로 테스트에 이용된다. 스캔 경로가 스캔 경로 테스트 모드에 이용될 때, 스캔 체인 (15) 은 스캔 입력 SI 로부터 테스트 데이터를 연속적으로 수신하고, 스캔 출력 SO 으로부터 테스트 결과를 출력한다. 본 명세서에 명시되지 않지만, 백업 제어 회로 (12) 및 백업 메모리 (13) 는 스캔 경로 테스트를 목표로 할 수도 있다.
타겟 회로 (11) 는 보존 모드에서 대기 상태를 유지해야만 하는 내부 상태를 가지는 회로 유닛이다. 타겟 회로 (11) 는 그 내부에 타겟 회로 (11) 의 생산 결함을 검출하기 위해 스캔 경로 테스트를 위한 회로를 포함한다. 스캔 경로 테스트를 위한 이 회로에서, 플립-플롭은 시프트 레지스터를 형성하기 위해 테스트 실행하에서 체인 방식으로 접속된다. 이 시프트 레지스터는 소위 스캔 체인으로 지칭된다. 타겟 회로 (11) 에서, 하나 이상의 스캔 체인 (15) 이 세팅된다. 비록, 약 32 개의 스캔 체인 (15) 이 최근의 반도체 집적회로 내에 세팅되지만, 더 많은 스캔 체인이 세팅될 수도 있고, 또는, 단지 하나의 스캔 체인만이 세팅될 수도 있다. 스캔 경로 테스트를 위한 연속적인 데이터가 각각의 스캔 체인 (15) 의 스캔 입력 SI (SI1 내지 SIn 내지 SIN) 에 공급되고, 스캔 경로 테스트는, 데이터가 그 스캔 출력 SO (SO1 내지 SOn 내지 SON) 에서 연속적으로 출력된다는 것을 도출한다. 각각의 스캔 체인으로/으로부터 연속적인 데이터의 입력/출력은 동시에 발생할 필요가 없고, 각각의 스캔 체인은 개별적으로 동작할 수도 있다. 이하, 스캔 체인 (15) 은, 예컨대, 스캔 입력 SIn 및 스캔 출력 SOn (여기서, n=1, 2,…,N) 을 가지는 회로로서 설명된다.
타겟 회로 (11) 에서, 내부 논리 회로가 동작할 때, 논리 회로 내에 포함된 순차 회로 (플립-플롭) 의 동작 상태가 유지된다. 즉, 플립-플롭은 타겟 회로 (11) 의 내부 상태를 유지한다. 이들 플립-플롭 내부에 유지된 내부 상태 데이터는 타겟 회로 (11) 의 내부 상태 회로로 보존될 수 있고, 타겟 회로 (11) 의 내부 상태는 내부 상태 데이터를 플립-플롭에 세팅함으로써 복구될 수 있다. 반면에, 스캔 경로가 테스트될 때, 플립-플롭은 스캔 체인 (15) 을 형성하고 유지하고 있는 데이터를 연속으로 출력할 수 있다. 또한, 스캔 체인 (15) 은 연속으로 데이터를 수신하고, 스캔 경로 테스트에 대한 데이터를 플립-플롭에 세팅할 수 있다. 따라서, 플립-플롭의 상태는 이 스캔 체인 (15) 을 이용함으로써 판독되고 기록될 수 있다.
타겟 회로 (11) 는 백업 제어 회로 (12) 의 제어에 기초하여 데이터 TO 로서 복수의 스캔 체인 (15) 에서 백업 메모리 (13) 로 스캔 출력 SO 을 출력한다. 타겟 회로 (11) 의 모든 플립-플롭에 유지된 데이터가 출력될 때, 타겟 회로 (11) 의 내부 상태가 백업 메모리 (13) 내에 보존된다. 또한, 타겟 회로 (11) 는 그 내부에 백업 메모리 (13) 로부터 출력된 데이터 TI 를 취하고, 이들을 백업 제어 회로 (12) 의 제어에 기초하는 스캔 체인 (15) 에 세팅한다. 데이터가 스캔 체인 (15) 에 세팅될 때, 타겟 회로 (11) 의 내부 상태가 복구된다. 타겟 회로 (11) 가 복구 상태에서 표준 동작 상태로 스위치될 때, 타겟 회로 (11) 는 표준 동작으로 반환된다.
도 2 는 스캔 체인이 유효할 때 스캔 체인 (15) 의 구성을 나타낸다. 스캔 체인 (15) 은 스캔 테스트에서 복수의 레지스터를 접속함으로써 구성된 하나의 체인이다. 이 체인은 서브 스캔 체인으로 분할된다. 즉, 스캔 체인 (15) 은 복수의 서브 스캔 체인을 포함한다. 이 예시에서, 스캔 체인 (15) 이 4 개의 서브 스캔 체인 (21, 22, 23 및 24) 을 포함한다는 것이 가정된다. 서브 스캔 체인 (21, 22, 23 및 24) 은 동일한 수의 플립-플롭을 각각 포함한다. 서브 스캔 체인 (21, 22, 23 및 24) 은 캐스캐이드-접속되고, 스캔 경로가 테스트될 때, 하나의 스캔 체인 (15) 으로서 동작한다. 내부 상태 데이터가 복수의 서브 내부 상태 데이터로서 수신될 때, 서브 스캔 체인 (21, 22, 23 및 24) 은 병렬로 동작하고, 동시에 복수의 서브 내부 상태 데이터를 수신한다. 서브 스캔 체인 (21) 은 선택기 회로 (210) 및 플립-플롭 (211 내지 214) 을 포함한다. 유사하게, 서브 스캔 체인 (22) 은 선택기 회로 (220) 및 플립-플롭 (221 내지 224) 를 포함하고, 서브 스캔 체인 (23) 은 선택기 회로 (230) 및 플립-플롭 (231 내지 234) 을 포함하며, 서브 스캔 체인 (24) 은 선택기 회로 (240) 및 플립-플롭 (241 내지 244) 을 포함한다. 각각의 선택기 회로 (210, 220, 230 및 240) 은 선택 신호 TB 에 기초하여 2 개의 입력 신호중 하나를 선택하고 출력한다.
서브 스캔 체인 (21) 에서, 선택기 회로 (210) 는 스캔 입력 (SIn) 및 백업 메모리 (13) 로부터의 서브 내부 상태 데이터 TI1 을 수신한다. 선택기 회로 (210) 는, 스캔 경로가 테스트될 때 스캔 입력 SIn 으로부터 데이터를 선택하고 출력하며, 내부 상태 데이터가 복구될 때 선택 신호 TB 에 응하여 서브 내부 상태 데 이터 TI1 를 선택하고 출력한다. 플립-플롭 (211 내지 214) 은 시프트 레지스터를 형성하기 위해 체인 방식으로 접속되고, 선택기 회로 (210) 의 출력을 수신한다. 플립-플롭 (214) 의 출력은 서브 내부 상태 데이터 TO1 으로 접속되고, 다음 스테이지에서 서브 스캔 체인 (22) 으로 전송된다.
서브 스캔 체인 (22) 에서, 선택기 회로 (220) 는 이전의 스테이지에서 서브 스캔 체인 (21) 으로부터 서브 내부 상태 데이터 TO1 및 백업 메모리 (13) 로부터 현재 스테이지에 대한 서브 내부 상태 데이터 TI2 를 수신한다. 선택기 회로 (220) 는, 선택 신호 TB 에 의존하여, 스캔 경로가 테스트될 때 이전의 스테이지에서 서브 내부 상태 데이터 TO1 를 선택하고 출력하며, 서브 내부 상태 데이터가 복구될 때 메모리 (13) 에서 서브 내부 노드 데이터 TI2 를 선택하고 출력한다. 플립-플롭 (221 내지 224) 은 시프트 레지스터를 형성하기 위해 체인 방식으로 접속되고, 선택기 회로 (220) 의 출력을 수신한다. 플립-플롭 (224) 의 출력은 서브 내부 상태 데이터 TO2 로서 접속되고, 다음 스테이지에서 서브 스캔 체인 (23) 으로 전송된다.
유사하게, 서브 스캔 체인 (23) 에서, 선택기 회로 (230) 는 사전 스테이지의 서브 스캔 체인 (22) 으로부터 서브 내부 상태 데이터 TO2 및 백업 메모리 (13) 로부터 서브 내부 상태 데이터 TI3 를 수신한다. 선택기 회로 (230) 는, 선택 신호 TB 에 기초하여, 스캔 경로가 테스트될 때 사전 스테이지의 출력 데이터 TO2 를 출력하고, 내부 상태가 복구될 때 백업 메모리 (13) 로부터 서브 내부 상태 데이터 TI3 를 출력한다. 플립-플롭 (231 내지 234) 은 시프트 레지스터를 형성 하기 위해 체인 방식으로 접속되고, 선택기 회로 (230) 의 출력을 수신한다. 플립-플롭 (234) 의 출력은 서브 내부 상태 데이터 TO3 로서 접속되고, 다음 스테이지에서 서브 스캔 체인 (24) 으로 전송된다.
유사하게, 서브 스캔 체인 (24) 에서, 선택기 회로 (240) 는 이전 단계에서 서브 스캔 체인 (23) 의 출력 데이터 TO3 및 백업 메모리 (13) 내에 저장된 내부 상태 데이터 TI4 를 입력한다. 선택기 회로 (240) 는, 선택 신호 TB 에 기초하여, 스캔 경로가 테스트될 때 사전 스테이지에서 출력 데이터 TO3 를 선택하고 출력하며, 내부 상태가 보존되고/복구될 때, 메모리 (13) 에서 내부 상태 데이터 TI4 를 선택하고 출력한다. 플립-플롭 (241 내지 244) 은 시프트 레지스터를 형성하기 위해 체인 방식으로 접속되고, 선택기 회로 (240) 의 출력을 수신한다. 플립-플롭 (244) 의 출력은 내부 상태 데이터 TO4 로서 출력되고, 스캔 체인 (15) 의 출력 SOn 으로서 출력된다.
다음으로, 스캔 체인 (15) 의 동작이 설명된다. 타겟 회로 (11) 의 본래의 기능이 수행될 때, 내부 논리 회로의 레지스터로서 플립-플롭 (211 내지 214), 플립-플롭 (221 내지 224), 플립-플롭 (231 내지 234), 및 플립-플롭 (241 내지 244) 이 내부 상태 데이터로서 타겟 회로 (11) 의 내부 상태를 유지한다.
도 2 에 도시된 바와 같이, 타겟 회로 (11) 내의 플립-플롭은 스캔 경로 테스트에서 스캔 체인 (15) 을 구성하기 위해 접속된다. 사실상, 플립-플롭 내에 확립된 선택 회로 (미도시) 의 신호 선택은 스캔 체인을 형성하기 위해 스위칭된다. 선택기 회로 (210, 220, 230 및 240) 는 선택기 신호 TB 에 응하여 스캔 체인 측면 상에 데이터를 선택하기 위해 세팅된다. 따라서, 서브 스캔 체인 (21 내지 24) 내에 포함된 플립-플롭은 시프트 레지스터를 형성한다. 스캔 데이터는 스캔 입력 SIn 으로부터 수신되고, 스캔 클럭 신호로 동기화된 스캔 출력 SOn 을 순차적으로 향해서 플립-플롭 상에서 시프트된다. 스캔 데이터가 모든 플립-플롭에 세팅될 때, 각각의 플립-플롭은 스캔 체인 (15) 으로부터 방출되고 (released), 그 내부에 타겟 회로 (11) 내에서 본래의 내부 논리 회로의 데이터를 취한다. 동시에, 각각의 플립-플롭이 스캔 데이터를 출력하기 때문에, 각각의 플립-플롭은 스캔 경로 테스트의 결과를 유지한다. 다음으로, 플립-플롭은 스캔 체인 (15) 으로 반환된다. 시프트 레지스터는 스캔 클럭에 기초하여 스캔 출력 SOn 으로부터 스캔 경로 테스트의 결과 데이터를 출력한다.
내부 상태 데이터가 보존 모드에 보존될 때, 스캔 체인 (15) 이 세팅되어, 서브 스캔 체인 (21 내지 24) 이 병렬로 동작한다. 이는 둘 다로 세팅될 수도 있지만, 이 예시에서는, 선택 신호 TB 가 백업 메모리 (13) 의 서브 내부 상태 데이터 TI 를 선택하기 위해 세팅된다. 플립-플롭 내에 유지된 내부 상태 데이터는 스캔 경로가 테스트될 때와 동일한 방법으로 클럭 신호로 동기화되는 서브 스캔 체인의 서브 내부 상태 데이터 TO1 내지 TO4 로서 병렬로 백업 메모리 (13) 에 순차적으로 출력된다. 백업 메모리 (13) 의 어드레스 (ADDR) 는 클럭 신호로 동기화된 백업 제어 회로 (12) 에 의해 업데이트된다. 다음으로, 서브 스캔 체인의 서브 내부 상태 데이터 TO1 내지 TO4 는 백업 메모리 (13) 내에 순차적으로 저장된다. 서브 내부 상태 데이터가 서브 스캔 체인의 플립-플롭의 수에 대해 출 력되는 경우, 이 스캔 체인 (15) 의 내부 상태 데이터 전체를 백업 메모리 (13) 로 보존하는 동작이 완료된다. 따라서, 스캔 체인 (15) 의 내부 상태 데이터 SOn 만이 메모리 (13) 과 접속되는 경우와 비교하여, 출력 시간이 단축될 수 있다. 도 2 에 도시된 바와 같이, 스캔 체인 (15) 이 4 개의 서브 스캔 체인 (21 내지 24) 로 분할될 때, 출력 시간은 1/4 로 감소된다.
내부 상태 데이터가 복구될 때, 즉, 백업 메모리 (13) 내에 유지된 서브 내부 상태 데이터가 본래의 플립-플롭으로 세팅될 때, 스캔 체인 (15) 이 세팅되어 서브 스캔 체인 (21 내지 24) 이 병렬로 동작한다. 선택 신호 TB 가 서브 내부 상태 데이터 TI 를 선택하기 위해 백업 메모리 (13) 로부터 세팅된다. 서브 내부 상태 데이터 TI1 내지 TI4 는 백업 메모리 (13) 에서 서브 스캔 체인 (21 내지 24) 으로 공급된다. 백업 제어 회로 (12) 가 디폴트값으로부터 클럭 신호로 동기화된 백업 메모리 (13) 의 어드레스 (ADDR) 를 업데이트하여, 서브 내부 상태 데이터 TI1 내지 TI4 는 보존을 위해서 서브 스캔 체인 (21 내지 24) 으로 공급된다. 서브 스캔 체인 (21 내지 24) 으로 공급된 서브 내부 상태 데이터 TI1 내지 TI4 는 선택기 회로 (120, 220, 230 및 240) 를 통해서 출력 TO1 내지 TO4 를 향하여 시프트 레지스터의 서브 스캔 체인에서 시프트된다. 서브 내부 상태 데이터 TI1 내지 TI4 가 서브 스캔 체인의 플립-플롭의 수에 대해 시프트되는 경우, 본래의 내부 상태 데이터가 플립-플롭으로 세팅된다. 따라서, 타겟 회로 (11) 의 내부 상태가 복구된다. 그 후, 복구 동작이 종료될 때, 타겟 회로 (11) 가 표준 동작으로 반환된다.
도 3 을 참조하여, 내부 상태 데이터가 스캔 체인 또는 서브 스캔 체인을 이용하여 백업 메모리 (13) 내에서 보존되고, 내부 상태 데이터가 백업 메모리 (13) 로부터 복구되는, 반도체 집적회로의 동작이 설명된다. 여기서, 타겟 회로 (11) 는 반도체 집적회로 내에 확립된 CPU (Central Processing Unit) 이고, 타겟 회로 (11) 의 상태로서 CPU 에 의해 실행된 소프트웨어의 프로세싱 상태가 설명된다는 것을 가정한다. 소프트웨어의 관점에서 반도체 집적회로의 동작 상태가 도 3 의 좌측에 나타난다. 반도체 집적회로의 하드웨어적인 관점에서, 타겟 회로 (11), 백업 제어 회로 (12) 및 백업 메모리 (13) 의 동작 상태는 도 3 의 우측에 나타난다.
반도체 집적회로는 표준 동작에서의 주기적인 프로세스, 맨-머신 (man-machine) 인터페이스 프로세스 등으로 인해서 대기 상태로 종종 세팅된다. 이 때, CPU (11) 는 WFI (Wait for Interrupt) 명령을 실행하고, 대기 상태로 전환한다. 일반적으로, 소프트웨어의 실행은 대기 상태에서 중단된다. 이러한 경우에, 하드웨어는 전력 소비의 감소를 위해 전력 공급 전압을 스탠바이 전압으로 감소시킨다. 하드웨어는 인터럽트 신호 INT 가 프로세스 재시작을 명령하기 위해 수신되는 즉시 소프트웨어의 실행을 재시작할 수 있다. 도 3 에 점선으로 개시된 바와 같이, 전력 소비를 감소시키기 위해, CPU (11) 의 전력 공급이 중단되고, 대기 상태에서 누설 전류가 감소된다. CPU (11) 의 전력 공급이 턴오프 될 때 CPU (11) 의 내부 상태가 재세팅되기 때문에, CPU (11) 의 내부 상태는 전력 공급이 턴오프 되기 전에 백업 메모리 (13) 내에 보존된다.
인터럽트 신호 INT 가 CPU (11) 을 재시작시키기 위해 백업 제어 회로 (12) 에 공급될 때, CPU 의 전력 공급이 턴온된다. CPU (11) 의 내부 상태가 백업 메모리 (13) 으로부터 재저장되고, 소프트웨어의 실행이 재시작된다. 인터럽트 신호 INT 가 수신되기 때문에, 소프트웨어는 인터럽트 프로세싱을 먼저 실행하고, 그 후, 보통의 프로세싱으로 반환된다. 따라서, 소프트웨어는 마치 대기 상태가 전력 공급의 온/오프에 상관없이 유지되는 것처럼 실행된다. 즉, 타겟 회로 (CPU) (11) 가 WFI 명령이 송신될 때까지 보통의 동작 상태에 있기 때문에, 소프트웨어는 WFI 명령에 응하여 중단되고, 내부 상태는 고정된다. WFI 명령이 송신될 때, 백업 제어 회로 (12) 와 백업 메모리 (13) 가 대기 상태로부터 활성화된다. 백업 제어 회로 (12) 는 스캔 체인이 구성되는 보존 상태로 타겟 회로 (CPU) (11) 를 세팅한다. 백업 제어 회로 (12) 가 타겟 회로 (CPU) (11) 의 고정된 내부 상태 데이터를 백업 메모리 (13) 에 보존한다. 타겟 회로 (CPU) (11) 의 전체적인 내부 상태 데이터가 보존될 때, 백업 제어 회로 (12) 가 스위치 (14) 를 제어하여, 타겟 회로 (CPU) 의 전력 공급이 중단된다. 백업 제어 회로 (12) 는 인터럽트 신호 INT 가 수신될 때까지 대기 상태로 전환된다. 백업 제어 회로 (12) 와 백업 메모리 (13) 의 회로 스케일이 타겟 회로 (CPU) (11) 보다 작기 때문에, 누설 전류가 감소되어 전력소비가 감소된다.
인터럽트 신호 INT 가 수신될 때, 백업 제어 회로 (12) 는 대기 상태에서 동작 상태로 반환된다. 먼저, 백업 제어 회로 (12) 는 타겟 회로 (CPU) 의 전력 공급을 재시작하기 위해 스위치 (14) 를 제어한다. 다음으로, 백업 제어 회로 (12) 는 스캔 체인이 구성되는 복구 상태로 타겟 회로 (CPU) (11) 를 세팅한다. 백업 제어 회로 (12) 는 내부 상태 데이터 TI 를 백업 메모리 (13) 에서 서브 스캔 체인으로 공급하고, 타겟 회로 (11) 의 내부 상태를 복구한다. 타겟 회로 (CPU) (11) 의 내부 상태가 본래의 상태로 복구될 때, 백업 제어 회로 (12) 가 복구 상태에서 타겟 회로 (CPU) (11) 를 방출하고, 타겟 회로 (CPU) (11) 를 활성화시킨다. 따라서, 타겟 회로 (CPU) (11) 는 동작을 재시작한다. 백업 제어 회로 (12) 와 백업 메모리 (13) 는 WFI 명령이 다음에 송신될 때까지 대기 상태로 진행한다. 여기서, 타겟 회로 (11) 로서 CPU 를 간주하여 설명되지만, 타겟 회로 (11) 는 CPU 로 제한되지 않고, 랜덤 논리 회로일 수도 있다. 이러한 경우, 연속적인 데이터가 서브 스캔 체인 (21 내지 24) 에 전송되고, 내부 상태가 재생성된다. 그 결과, 복구 시간이 단축된다. 전술한 바와 같이, 본 발명에 따르면, 더 짧은 시간으로 내부 상태의 보존/복구가 가능하게 되고, 대기 상태에서 누설전류가 감소될 수 있다.
*도 4 는 최소 복구 시간을 단축시키기 위해 본 발명의 제 2 실시형태에 따른반도체 집적회로에서 스캔 체인의 구성을 나타내는 블록도이다. 최소의 복구 시간은, 내부 상태 데이터가 보존되기 시작한 직후에 내부 상태 데이터의 복구가 명령될 때, 타겟 회로의 초기 상태를 복구하기 위해 요구되는 시간이 최소 복구 시간이다. 도 4 에 도시된 스캔 체인 (15) 에서, 선택기 회로는 도 2 에 도시된 서브 스캔 체인 (21 내지 24) 의 헤드 부분에 제공된다. 이러한 스캔 체인 (15) 은 서브 스캔 체인 (31, 32, 33 및 34) 을 포함한다. 서브 스캔 체인 (31) 은 선택기 회로 (319 및 310) 및 플립-플롭 (311 내지 314) 을 포함한다. 유사하게, 서브 스캔 체인 (32) 은 선택기 회로 (329 및 320) 및 플립-플롭 (321 내지 324) 을 포함하고, 서브 스캔 체인 (33) 은 선택기 회로 (339 및 330) 및 플립-플롭 (331 내지 334) 을 포함하고, 서브 스캔 체인 (34) 은 선택기 회로 (349 및 340) 및 플립-플롭 (341 내지 344) 을 포함한다. 선택기 회로 (319, 329, 339 및 349) 이외의 스캔 체인 (15) 의 부분은 도 2 에 도시된 스캔 체인과 동일하다.
선택기 회로 (319, 329, 339 및 349) 는 백업 메모리 (13) 에서 공급된 보존된 서브 내부 상태 데이터 TI 또는 선택 신호 BR 에 기초하여 서브 스캔 체인에서 출력된 서브 내부 상태 데이터 TO 를 선택하고, 선택된 데이터를 선택기 회로 (310, 320, 330 및 340) 에 출력한다. 서브 스캔 체인 (31) 에서, 선택기 회로 (319) 는 백업 메모리 (13) 에서 공급된 서브 내부 상태 데이터 TI1 및 서브 스캔 체인 (31) 에서 출력된 서브 내부 상태 데이터 TO1 를 수신한다. 선택기 회로 (319) 는, 선택 신호 BR 에 기초하여, 내부 상태가 보존될 때 서브 내부 상태 데이터 TO1 을 선택하고, 내부 상태가 복구될 때 보존된 서브 내부 상태 데이터 TI1 를 출력한다. 선택기 회로 (310) 는 스캔 입력 SIn 및 선택기 회로 (319) 에서의 출력 데이터를 수신한다. 선택기 회로 (310) 는, 선택 신호 TB 에 기초하여, 스캔 경고가 테스트될 때 스캔 입력 데이터 SIn 을 선택하고, 내부 상태 데이터가 보존되고 복구될 때 선택기 회로 (319) 에서의 출력 데이터를 선택한다. 플립- 플롭 (311 내지 314) 은 시프트 레지스터를 형성하기 위해 체인-방법으로 접속되고, 선택기 회로 (310) 로부터 출력 데이터를 수신한다. 플립-플롭 (314) 로부터의 출력 데이터는 서브 내부 상태 데이터 TO1 로서 출력되고, 다음 스테이지에서 서브 스캔 체인 (32) 으로 전송된다.
서브 스캔 체인 (32) 에서, 선택기 회로 (329) 는 백업 메모리 (13) 에서 공급된 서브 내부 상태 데이터 TI2 및 서브 스캔 체인 (32) 에서 출력된 서브 내부 상태 데이터 TO2 를 수신한다. 선택기 회로 (329) 는, 선택 신호 BR 에 기초하여, 내부 상태가 보존될 때 서브 내부 상태 데이터 TO2 를 선택하고, 내부 상태 데이터가 복구될 때 보존된 서브 내부 상태 데이터 TI2 를 선택한다. 선택기 회로 (320) 는 사전 스테이지의 서브 스캔 체인 (31) 에서 서브 내부 상태 데이터 TO1 및 선택기 회로 (329) 로부터 출력 데이터를 수신한다. 선택기 회로 (320) 는, 선택 신호 TB 에 기초하여, 스캔 경로가 테스트될 때 사전 스테이지에서의 출력 데이터 TO1 를 선택하고, 내부 상태 데이터가 보존되고 복구될 때 선택기 회로 (329) 의 출력 데이터를 선택한다. 플립-플롭 (321 내지 324) 는 시프트 레지스터를 형성하기 위해 체인 방식으로 접속되고, 선택기 회로 (320) 로부터 출력 데이터를 수신한다. 플립-플롭 (324) 으로부터의 출력 데이터는 서브 내부 상태 데이터 TO2 로서 출력되고, 다음 스테이지에서 서브 스캔 체인 (33) 으로 전송된다.
유사하게, 서브 스캔 체인 (33) 에서, 선택기 회로 (339) 는 백업 메모리 (13) 에서 공급된 서브 내부 상태 데이터 TI3 및 서브 스캔 체인 (33) 에서 출력된 서브 내부 상태 데이터 TO3 를 수신한다. 선택기 회로 (339) 는, 선택 신호 BR 에 기초하여, 내부 상태 데이터가 보존될 때 서브 내부 상태 데이터 TO3 를 선택하고, 내부 상태가 복구될 때 보존된 서브 내부 상태 데이터 TI3 를 선택한다. 선택기 회로 (330) 는 사전 스테이지의 서브 스캔 체인 (32) 에서 출력 데이터 TO2 및 데이터 회로 (339) 로부터 출력 데이터를 수신한다. 선택기 회로 (330) 는, 선택 신호 TB 에 기초하여, 스캔 경로가 테스트될 때 사전 스테이지에서 출력 데이터 TO2 를 선택하고, 내부 상태 데이터가 보존되고 복구될 때 선택기 회로 (339) 로부터 출력 데이터를 선택한다. 플립-플롭 (331 내지 334) 은 시프트 레지스터를 형성하기 위해 체인 방식으로 접속되고, 선택기 회로 (330) 의 출력 신호를 수신한다. 플립-플롭 (334) 의 출력은 서브 내부 상태 데이터 TO3 로서 출력되고, 다음 스테이지에서 서브 스캔 체인 (34) 으로 전송된다.
유사하게, 서브 스캔 체인 (34) 에서, 선택기 회로 (349) 는 백업 메모리 (13) 에서 공급된 서브 내부 상태 데이터 TI4 및 서브 스캔 체인 (34) 에서 출력된 서브 내부 상태 데이터 TO4 를 수신한다. 선택기 회로 (349) 는, 선택 신호 BR 에 기초하여, 내부 상태 데이터가 보존될 때 서브 내부 상태 데이터 TO4 를 선택하고, 내부 상태 데이터가 복구될 때 보존된 서브 내부 상태 데이터 TI4 를 선택한다. 선택기 회로 (340) 는 사전 스테이지의 서브 스캔 체인 (33) 에서 출력 데이터 TO3 및 선택기 회로 (349) 에서 출력 데이터를 수신한다. 선택기 회로 (340) 는, 선택기 신호 TB 에 기초하여, 스캔 경로가 테스트될 때 사전 스테이지로부터의 출력 데이터 TO3 를 선택하고, 내부 상태 데이터가 보존되고 복구될 때 선 택기 회로 (349) 에서 출력 데이터를 선택한다. 플립-플롭 (341 내지 344) 은 시프트 레지스터를 형성하기 위해 체인 방식으로 접속되고, 선택기 회로 (340) 의 출력 신호를 수신한다. 플립-플롭 (344) 의 출력은 서브 내부 상태 데이터 TO4 로서 출력되고, 스캔 체인 (15) 의 출력 SOn 으로서 출력된다.
도 5a, 도 5b 및 도 5c 를 참조하여, 스캔 체인 (15) 의 동작이 설명된다. 스캔 체인이 형성되지 않았을 때, 플립-플롭 (311 내지 314), 플립-플롭 (321 내지 324), 플립-플롭 (331 내지 334), 및 플립-플롭 (341 내지 344) 은 타겟 회로 (11) 의 내부 상태를 유지한다.
도 5a 에 도시된 바와 같이, 스캔 경로가 테스트될 때, 타겟 회로 (11) 의 플립-플롭은 스캔 체인을 형성한다. 이 예시에서, 선택 신호 TB 는 스캔 경로 테스트에 대한 데이터를 선택하기 위해 세팅된다. 그러나, 선택 신호 BR 의 세팅이 데이터의 경로에 영향을 주지 않기 때문에, 모두 가능하다. 플립-플롭 (311 내지 314), 플립-플롭 (321 내지 324), 플립-플롭 (331 내지 334), 및 플립-플롭 (341 내지 344) 은 하나의 연속적인 시프트 레지스터를 형성한다. 도 5a 에 두꺼운 선으로 도시된 바와 같이, 스캔 경로 테스트에 대한 데이터는 스캔 입력 SIn 에서 공급되고, 플립-플롭 상에서 순차적으로 시프트되며, 각각의 플립-플롭에 세팅된다. 스캔 경로 테스트에 대한 데이터가 각각의 플립-플롭에 세팅될 때, 스캔 체인이 방출되면, 내부 논리 회로의 동작 체크가 수행된다. 각각의 플립-플롭에서 결과가 취해지고, 다음으로, 스캔 체인이 다시 형성된다. 각각의 플립-플롭에 세팅된 체크 결과는 플립-플롭에서 시프트되고, 스캔 출력 SOn 에서 순 차적으로 출력된다. 따라서, 데이터는 스캔 경로 테스트에서 수신되고 출력된다.
다음으로, 도 5b 를 참조하여, 타겟 회로 (11) 의 내부 상태 데이터가 백업 메모리 (13) 에 보존된, 보존 동작이 설명된다. 내부 상태 데이터의 보존 동작의 경우, 선택기 회로 (310, 320, 330 및 340) 는 선택 신호 TB 에 기초하여 선택기 회로 (319, 329, 339 및 349) 에서 출력된 데이터를 선택하기 위해 세팅된다. 선택 신호 BR 는 서브 스캔 체인 (31 내지 34) 에서 출력 데이터 TO1 내지 TO4 를 선택하기 위해 세팅된다. 즉, 서브 내부 상태 데이터는, 두꺼운 선으로 도 5b 에 나타난 바와 같이, 각각의 서브 스캔 체인 내에서 순환하도록 시프트된다. 따라서, 서브 스캔 체인 (31) 에 의해 유지된 전체적인 서브 내부 상태 데이터는 서브 내부 상태 데이터 TO1 로서 출력되고, 본래의 서브 내부 상태 데이터가 플립-플롭 (311 내지 314) 에 세팅된다. 서브 스캔 체인 (32, 33 및 34) 에서와 유사하게, 전체적인 서브 내부 상태 데이터가 출력된 후에, 플립-플롭 (321 내지 324), 플립-플롭 (331 내지 334), 및 플립-플롭 (341 내지 344) 은 본래의 서브 내부 상태 데이터를 유지한다. 이는, 서브 내부 상태 데이터의 보존 동작 및 복구 동작을 동시에 실행하는 것이다. 예를 들어, 인터럽트 신호 INT 가 공급될 때, 타겟 회로 (11) 의 내부 상태 데이터가 백업 메모리 (13) 에 보존되어 복구 동작의 시작이 필요하게 되면, 타겟 회로의 동작은 보존 동작이 완성됨과 동시에 재시작될 수 있다. 도 2 에 도시된 스캔 체인 (15) 의 구성에서, 보존 동작이 시작되면, 전체적인 내부 상태 데이터가 백업 메모리 (13) 에 보존되고, 다음으로, 백업 메모리 (13) 로부터의 서브 내부 상태 데이터를 스캔 체인 (15) 로 복구시키는 것이 필요하다. 반면에, 서브 스캔 체인 (31 내지 34) 의 서브 내부 상태 데이터 TO1 내지 TO4 가 순환되기 때문에, 타겟 회로 (11) 의 표준 동작이 보존 동작이 완성된 직후에 복구될 수 있다. 따라서, 보존 동작의 시작시점부터 복구 동작의 종료시점까지의 시간적 주기가 단축될 수 있다.
백업 메모리 (13) 내에 저장된 서브 내부 상태 데이터로부터 타겟 회로 (11) 의 내부 상태를 복구하는 복구 동작이 도 5c 를 참조하여 설명된다. 도 5b 를 참조하여 설명된 바와 같이, 타겟 회로 (11) 의 내부 상태 데이터의 서브 내부 상태 데이터는 백업 메모리 (13) 내에 순차적으로 저장된다. 이러한 내부 상태 데이터는 타겟 회로 (11) 내에서 복구되고, 선택기 회로 (310, 320, 330 및 340) 는 선택 신호 TB 에 기초하여 선택기 회로 (319, 329, 339 및 349) 각각으로부터 공급된 데이터를 선택하기 위해 세팅된다. 선택 신호 BR 가 세팅되어, 선택기 회로 (319, 329, 339 및 349) 는 백업 메모리 (13) 에서 출력된 서브 내부 상태 데이터 TI 를 선택한다. 즉, 백업 메모리 (13) 에서 공급된 서브 내부 상태 데이터 TI1 는 서브 스캔 체인 (31) 상에서 시프트되고, 두꺼운 선으로 도 5c 에 나타난 바와 같이 플립-플롭 (311 내지 314) 로 세팅된다. 유사하게, 서브 내부 상태 데이터 TI2 는 서브 스캔 체인 (32) 상에서 시프트되고, 플립-플롭 (321 내지 324) 로 세팅된다. 서브 내부 상태 데이터 TI3 는 서브 스캔 체인 (33) 상에서 시프트되고, 플립-플롭 (331 내지 334) 에 세팅된다. 서브 내부 상태 데이터 TI4 는 서브 스캔 체인 (34) 상에서 시프트되고, 플립-플롭 (341 내지 344) 으로 세팅된다. 이 방법으로, 백업 메모리 (13) 내에 유지된 서브 내부 상태 데이터는 플립-플롭 (311 내지 314), 플립-플롭 (321 내지 324), 플립-플롭 (331 내지 334), 및 플립-플롭 (341 내지 344) 내에 저장되고, 타겟 회로 (11) 는 본래의 내부 상태로 반환된다. 다음으로, 스캔 체인이 방출되고, 타겟 회로 (11) 는 표준 동작으로 반환된다.
전술한 설명에서, 서브 스캔 체인이 동일한 수의 플립-플롭을 포함하고, 스캔 체인 (15) 에 포함된 플립-플롭이 서브 스캔 체인 수의 배수가 아니라는 가정하에서 설명되었다. 따라서, 각각의 서브 스캔 체인에 포함된 플립-플롭의 수가 다를 때, 더미 플립-플롭이 일시적으로 내부 상태 데이터를 유지하기 위해 삽입되어, 서브 스캔 체인 내에서의 플립-플롭의 수가 동일하게 하는 것이 바람직하다. 또한, 각각의 서브 스캔 체인을 구성하는 것이 가능하여, 동일한 수의 플립-플롭을 가지는 서브 스캔 체인과 동시에 백업 메모리로 데이터가 출력된다. 이 경우에, 삽입된 더미 플립-플롭의 수는 몇 안될 수도 있다. 또한, 모든 서브 스캔 체인에 대한 시프트 클락의 수를 변화시킴으로써, 상이한 수의 플립-플롭을 가지는 서브 스캔 체인의 내부 상태 데이터를 보존/복구하는 것이 가능하다.
도 6 은 본 발명의 제 3 실시형태에 따른 반도체 집적 회로에서 더미 플립-플롭을 포함하는 스캔 체인 (15) 의 예시를 나타내는 블록도이다. 이 더미 플립-플롭은 다른 스캔 체인에 속하고, 스캔 경로가 테스트될 때 다른 스캔 체인의 일부로서 동작한다. 도 6 에 도시된 바와 같이 스캔 체인 (15) 은 도 2 에 도시된 스캔 체인의 플립-플롭 (224 및 241) 을 포함하지 않는다. 즉, 서브 스캔 체인 (22 및 24) 에 포함된 플립-플롭의 수는 도 6 에 도시된 스캔 체인 (15) 의 서브 스캔 체인 (21 및 23) 의 수보다 작다. 서브 스캔 체인 (22) 에서, 스캔 체인 (15) 내에 포함되지 않은 플립-플롭 (224') (이하, "더미 플립-플롭" 으로 지칭됨) 은 플립-플롭 (223) 이후에 접속된다. 따라서, 플립-플롭 (223) 은 더미 플립-플롭 (224') 및 다음 스테이지에서 서브 스캔 체인 (23) 의 선택기 회로 (230) 와 접속된다. 더미 플립-플롭 (224') 은 출력 데이터를 플립-플롭 (223) 에서 백업 메모리 (13) 로 출력한다. 또한, 서브 스캔 체인 (24) 에서, 더미 플립-플롭 (241') 은 선택기 회로 (240) 와 접속된다. 백업 메모리 (13) 에서 출력된 서브 내부 상태 데이터 TI4 는 더미 플립-플롭 (241') 으로 공급된다. 더미 플립-플롭 (241') 의 출력은 선택기 회로 (240) 를 통해서, 시프트 레지스터가 구성된 플립-플롭 (242 내지 244) 으로 공급된다. 따라서, 서브 스캔 체인 (21 및 23) 에서와 동일한 수의 플립-플롭을 포함하는 서브 스캔 체인 (22') 및 (24') 은 더미 플립-플롭 (224' 및 241') 을 서브 스캔 체인 (22 및 24) 과 접속시킴으로써 형성된다. 따라서, 서브 스캔 체인 (21, 22', 23 및 24') 은 동일한 수의 서브 내부 상태 데이터를 백업 메모리 (13) 로 출력하는 것이 가능하게 된다. 또한, 서브 스캔 체인 (21, 22', 23 및 24') 은 그 내부에 백업 메모리 (13) 의 수와 동일한 수의 서브 내부 상태 데이터를 취하고, 이를 각각의 플립-플롭으로 세팅시키는 것을 가능하게 한다. 여기서, 플립-플롭의 초과 또는 부족의 수가 비록 서브 스캔 체인에 대해서 하나로 설명된다 할지라도, 이는 복수일 수도 있다. 따라서, 마치 더미 플립-플롭이 본래의 서브 스캔 체인 이전 또는/및 이후에 접 속되는 것과 유사하게 더미 플립-플롭이 동작할 수 있다. 또한, 제 2 선택기 회로는 이 더미 플립-플롭이 접속된 서브 스캔 체인의 헤드 부분에 위치되고, 도 4 에 도시된 헤드 부분에 각각의 서브 스캔 체인의 출력을 피드백하는 것 또한 가능하다.
이 방법으로, 스캔 경로가 테스트될 때 스캔 체인 내에 더미 플립-플롭을 포함하지 않는 서브 스캔 체인 내에 포함된 플립-플롭의 수는 더미 플립-플롭을 접속함으로써 조절될 수 있다. 이 더미 플립-플롭은 백업 제어 회로를 가지는 스캔 체인 내부에 포함될 수 있고, 타겟 회로의 스캔 경로의 테스트에 영향을 주는 것을 방지할 수 있다.
다음으로, 도 7 을 참조하여, 본 발명의 제 4 실시형태에 따른 반도체 집적 회로를 설명한다. 제 2 실시형태에서, 제 1 실시형태와 다른 스캔 체인과 백업 메모리 사이의 인터페이스의 예시가 설명된다. 반도체 집적 회로는 타겟 회로 (11), 백업 메모리 (13), 백업 제어 회로 (12), 스위치 (14) 및 버스 인터페이스 회로 (16) 를 포함한다. 타겟 회로 (11) 는 내부 상태가 보존된 회로이고, 전력 공급이 스위치 (14) 에 의해 제어된다. 스위치 (14) 는 백업 제어 회로 (12) 에 의해 제어된다. 타겟 회로 (11) 의 내부 상태는 버스 인터페이스 회로 (16) 에 의해 시스템 버스 (18) 로 옮겨지고, 백업 메모리 (13) 내에 보존된다. 또한, 백업 메모리 (13) 에 저장된 내부 상태는 시스템 버스 (18) 로 옮겨지고, 버스 인터페이스 회로 (16) 를 통해서 타겟 회로 (11) 로 복구된다. 타겟 회로 (11) 의 내부 상태의 보존/복구 동작은 백업 제어 회로 (12) 에 의해 제어된다.
타겟 회로 (11) 의 구성 및 동작은 도 1 에 도시된 회로와 동일하다. 따라서, 스캔 경로가 테스트될 때, 스캔 체인 (15) 에 유지된 내부 상태는 스캔 출력 SO 로서 출력된다. 타겟 회로 (11) 의 내부 상태가 보존될 때, 스캔 체인 (15) 에 유지된 내부 상태 데이터는 경로가 분할되는 서브 스캔 체인을 통해서 버스 인터페이스 회로 (16) 로 전송된다. 동시에, 내부 상태 데이터는 버스 인터페이스 회로 (16) 내에서의 버스 데이터 폭과 동일한 데이터 폭으로 버스 인터페이스 회로 (16) 에 전송되는 것이 바람직하다. 버스 인터페이스 회로 (16) 는 신호 레벨과 내부 상태 데이터의 타이밍을 조절함으로써 시스템 버스 (18) 에 내부 상태 데이터를 출력한다. 백업 메모리 (13) 는 그 내부에 시스템 버스 (18) 에서 내부 상태 데이터를 취하고, 이를 내부 상태 데이터로 동기화시켜서 저장한다. 백업 메모리 (13) 의 어드레스 (ADDR) 는 백업 제어 회로 (12) 로부터 공급된다.
타겟 회로 (11) 의 내부 상태가 복구될 때, 백업 메모리 (13) 내에 저장된 내부 상태 데이터는 백업 제어 회로 (12) 에서 출력된 어드레스 (ADDR) 에 기초하여 판독되고, 시스템 버스 (18) 에 전송된다. 버스 인터페이스 회로 (16) 는 그 내부에 시스템 버스 (18) 로부터 내부 상태 데이터를 취하고, 이 내부 상태 데이터로 동기화된 데이터 TI 로서 타겟 회로 (11) 의 서브 스캔 체인에 서브 내부 상태 데이터를 공급한다. 버스 인터페이스 회로 (16) 는, 서브 내부 상태 데이터가 그 내부에 시스템 버스 (18) 에서 취해진 타이밍 및 신호 레벨의 전환 등을 조절한다. 서브 스캔 체인은 제 1 실시형태에 설명된 동작을 실행한다.
따라서, 서브 내부 상태 데이터 TO 가 시스템 버스 (18) 를 통해서 백업 메 모리 (13) 에 저장된다. 또한, 백업 메모리 (13) 에 저장된 서브 내부 상태 데이터가 시스템 버스 (18) 를 통해서 내부 상태 데이터 TI 로서 타겟 회로 (11) 에 공급된다. 따라서, 타겟 회로 (11) 는 본래의 내부 상태로 반환된다.
또한, 반도체 집적회로가 시스템 버스 (18) 를 통해서 타겟 회로 (11) 의 내부 상태 데이터를 보존하고 백업 메모리 (13) 로부터 이를 복구함으로써 백업 메모리 (13) 로서 시스템 버스 (18) 와 접속된 시스템 메모리의 부분을 이용하는 것이 가능하다. 이 경우, 백업 제어 회로 (12) 는 시스템 버스 (18) 의 인터페이스 설명에 기초하는 메모리에 액세스한다.
또한, 백업 메모리 (13) 는, 시스템 버스 (18) 를 통해서 시스템 메모리로 접근가능한 경우에, 타겟 회로 (11) 를 통해서 반도체 집적회로의 외부에 있을 수도 있다. 즉, 백업 메모리로 이용된 메모리의 선택의 자유도는 일반적인-목적의 인터페이스로 지지함으로써 개선된다.
전술한 바와 같이, 타겟 회로 (11) 의 내부 상태 데이터는 스캔 체인을 서브 스캔 체인으로 분할함으로써 단시간에 보존되고 복구된다. 또한, 타겟 회로 (11) 의 내부 상태가 반도체 집적회로 외부에서 유지되기 때문에 타겟 회로 (11) 의 전력 공급이 중단될 수 있고, 전력 소비가 감소될 수 있다. 또한, 내부 상태의 보존 동작의 중단에 답하는 복구 동작의 타이밍은 서브 스캔 체인의 헤드 부분에서 선택기 회로를 삽입하고, 서브 스캔 체인의 출력을 피드백함으로써 더 단축될 수 있다.
*본 발명에 따르면, 내부 상태의 보존 및 복구 동작이 단축되는 반도체 집적 회로 및 그를 제어하는 방법은 스캔 체인을 복수의 서브 스캔 체인으로 분할하고 메모리 내에서 서브 스캔 체인의 출력을 병렬로 저장함으로써 제공될 수 있다.
전술한 바와 같이, 본 발명의 실시형태 및 변형이 설명되지만, 이 실시형태 및 변형은 본 발명의 범위를 벗어나지 않는 조건 하에서 조합될 수도 있다.