KR101445473B1 - 스캔 체인 보안을 제공하는 방법 및 장치 - Google Patents

스캔 체인 보안을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR101445473B1
KR101445473B1 KR1020127032873A KR20127032873A KR101445473B1 KR 101445473 B1 KR101445473 B1 KR 101445473B1 KR 1020127032873 A KR1020127032873 A KR 1020127032873A KR 20127032873 A KR20127032873 A KR 20127032873A KR 101445473 B1 KR101445473 B1 KR 101445473B1
Authority
KR
South Korea
Prior art keywords
scan chain
control signal
security
ocd
input
Prior art date
Application number
KR1020127032873A
Other languages
English (en)
Other versions
KR20130040202A (ko
Inventor
슈레쉬 고얄
미첼 포톨란
트루렌 브래드포드 반
Original Assignee
알까뗄 루슨트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알까뗄 루슨트 filed Critical 알까뗄 루슨트
Publication of KR20130040202A publication Critical patent/KR20130040202A/ko
Application granted granted Critical
Publication of KR101445473B1 publication Critical patent/KR101445473B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31719Security aspects, e.g. preventing unauthorised access during test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318572Input/Output interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

스캔 체인 보안 능력이 본 명세서에 제공된다. 스캔 체인 보안 능력은 예를 들어, 시스템의 배치 또는 판매 이전의 테스팅, 시스템의 배치 또는 판매 이후의 현장 테스팅, 시스템의 현장 변경 등과 같은 목적을 위해 시스템의 스캔 체인의 정상 사용을 통해 보안 제어를 인에이블한다. 스캔 체인 보안 능력은 스캔 체인의 중단 및 중단된 스캔 체인의 재확립의 중단을 통해 제어를 인에이블함으로써 스캔 체인의 정상 사용을 통해 보안 제어를 인에이블한다. 스캔 체인 보안 컴포넌트는 제어 신호에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하기 위해 구성된다. 제어 신호는 보안 키의 검증에 응답하여, 챌린지 기반(challenge-based) 인증 프로세스의 성공적인 완료에 응답하여, 또는 임의의 다른 적합한 검증 또는 인증에 응답하여 생성될 수도 있다. 스캔 체인 보안 컴포넌트는 또한 제 2 제어 신호에 응답하여 스캔 체인에서 개방 회로 상태를 생성하기 위해 구성될 수도 있다. 제 2 제어 신호는 스캔 체인을 통해 수신된 스캔 레지스터 값일 수도 있다.

Description

스캔 체인 보안을 제공하는 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING SCAN CHAIN SECURITY}
본 발명은 일반적으로 JTAG(Joint Test Action Group) 테스트용 스캔 체인들에 관한 것으로, 배타적이지 않고 더욱 구체적으로, JTAG 테스트용 스캔 체인의 보안에 관한 것이다.
JTAG(Joint Test Action Group)과 같은 테스트용 설계(DfT) 기술들은 이들이 디바이스 내부 컴포넌트들에 액세스할 뿐만 아니라 이들을 판독하고 변경하는 간단하고 효과적인 수단을 허용하기 때문에, 복합 집적 회로(IC) 및 시스템 온 칩(SoC)의 테스트에 기본적인 지원이다. 이러한 액세스는 스캔 체인들을 통해 제공된다. 그러나, 바람직하지 못하게, 테스트 동안 유익한 이러한 액세스는 제품이 판매/배치된 이후에 보안에 다수의 문제들을 초래할 수 있다. 즉, 이러한 동일한 액세스는 제품을 변경하고, 제품을 조작하고, 제품을 분해하여 모방하거나 다른 악의적인 활동들을 수행하기 위해 악의적인 이유들로 사용될 수 있다.
그 결과, IC들 및 SoC들에 대한 액세스를 보안하기 위한 시도들이 이루어져서, 테스트하기 위해 사용되는 IC들 및 SoC들에 대한 액세스는 연관된 제품들이 판매/배치된 이후에는 활용될 수 없다.
테스트 이후에 시스템의 스캔 체인의 활용을 방지하는 통상의 솔루션은 시스템에 대한 변경을 어렵게 하여서, 시스템에 대한 스캔 체인 액세스를 불가능하게 하는 것이다. 예를 들어, 시스템의 테스트 액세스 포트(TAP)는 일부 방식에서 버닝(burned)되거나 제거될 수도 있다. 그러나, 바람직하지 못하게, 이러한 솔루션은 다수의 단점들을 갖는다. 먼저, JTAG 인프라구조 자체가 시스템상에 남아 있어서, 공격자가 (예를 들어, 프로브들의 삽입에 의해) 그 JTAG 인프라구조에 여전히 액세스할 수도 있다. JTAG 배선들은 보드상에서 식별하는 것이 비교적 쉽고, 결과가 즉각적일 수 있다. 이러한 절차의 잘 알려진 예가 몇몇 시도들만으로 학생에 의해 실현된 1세대 Apple iPhone의 잠금해제(unlocking)이다. 둘째, DfT 인프라구조는 보드상에서 "데드 웨이트(dead weight)"가 되고, 다수의 애플리케이션들(예를 들어, 현장 및 온라인 테스팅)이 이러한 액세스에 의해 매우 이익을 얻을 수 있더라도 이제 사용될 수 없다.
또한, 필드 프로그램가능한 게이트 어레이(FPGA) - 복합 프로그램가능한 로직 디바이스(CPLD) 제품들에서, 2개의 상이한 접근방식들이 제품들의 디바이스들의 구성 영역에 대한 JTAG 액세스를 디스에이블하기 위해 사용된다. 제 1 접근방식은 디바이스상에서 퓨즈를 사용하는 것이고, 이것은 연소될 때, 디바이스의 구성 영역에 대한 액세스를 디스에이블시킨다. 그러나, 바람직하지 못하게, 퓨즈가 연소되면, 연소된 부분이 교체될 때까지 JTAG 액세스가 불가능하다. 제 2 접근방식은 입력 비트스트림을 암호해독하기 위해 사용되는 키를 포함하는 보안 저장부(예를 들어, 전기적으로 소거가능한 프로그램가능 판독전용 메모리(EEPROM), FLASH, 또는 유사한 저장부)를 지원하기 위해 배터리 백업(backup)을 사용하는 것이다. 그러나, 바람직하지 못하게, 이러한 접근방식이 후속 JTAG 액세스를 인에이블시키지만, 배터리 백업을 위해 요구되는 디바이스상의 실제 영역이 다수의 애플리케이션들에서 문제가 될 수 있다.
종래 기술에서의 다양한 결함들이 스캔 체인 보안을 제공하는 실시예들에 의해 다루어진다. 스캔 체인 보안 능력은 예를 들어, 시스템의 배치 또는 판매 이전의 테스팅, 시스템의 배치 또는 판매 이후의 현장 테스팅, 시스템의 현장 변경 등과 같은 목적을 위해 시스템의 스캔 체인의 정상 사용을 통해 보안 제어를 인에이블한다. 스캔 체인 보안 능력은 스캔 체인의 중단 및 중단된 스캔 체인의 재확립을 통해 제어를 인에이블함으로써 스캔 체인의 정상 사용을 통해 보안 제어를 인에이블한다. 스캔 체인 보안 컴포넌트는 제어 신호에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하기 위해 구성된다. 제어 신호는 보안 키의 검증에 응답하여, 챌린지 기반(challenge-based) 인증 프로세스의 성공적인 완료에 응답하여, 또는 임의의 다른 적합한 검증 또는 인증에 응답하여 생성될 수도 있다. 스캔 체인 보안 컴포넌트는 또한 제 2 제어 신호에 응답하여 스캔 체인에서 개방 회로 상태를 생성하기 위해 구성될 수도 있다. 제 2 제어 신호는 스캔 체인을 통해 수신된 스캔 레지스터 값일 수도 있다.
본 명세서에서의 교시들은 첨부한 도면과 함께 아래의 상세한 설명을 고려함으로써 쉽게 이해될 수 있다.
도 1a 및 도 1b는 테스팅 시스템 및 피테스트(system under test) 시스템을 포함하는 예시적인 시스템 테스팅 환경의 하이-레벨 블록도를 도시한다.
도 2는 계층적 스캔 체인 액세스를 인에이블하는데 사용하기 위해 구성되는 IEEE P1687 작업 그룹에 의해 제안된 SIB 셀의 하이-레벨 블록도를 도시한다.
도 3은 스캔 체인 보안을 제어하는데 사용하기 위해 구성된 OCD 셀의 일 실시예를 도시한다.
도 4a는 보안된 스캔 체인의 입력부로 시프트된 보안키의 키 체커(checker) 기능에 의한 검증을 통한 SecureRST의 생성의 일 실시예를 도시한다.
도 4b는 키 체커 기능의 버퍼로 시프트된 보안 키의 키 체커 기능에 의한 검증을 통한 SecureRST의 생성의 일 실시예를 도시한다.
도 5는 챌린지 기반 인증 방법의 사용을 통한 SecureRST 신호의 생성의 일 실시예를 도시한다.
도 6은 스캔 체인 보안을 제어하는데 사용하기 위해 구성된 원격 OCD 셀의 일 실시예를 도시한다.
도 7은 TAP가 JTAG 시스템의 스캔 체인에 대한 보안 액세스를 제공하기 위해 구성되는 JTAG 시스템의 TAP의 일 실시예를 도시한다.
도 8은 스캔 체인에서 개방 회로 상태를 생성하는 방법의 일 실시예를 도시한다.
도 9는 스캔 체인으로부터 개방 회로 상태를 제거하는 제어 신호를 생성하는 방법의 일 실시예를 도시한다.
도 10은 스캔 체인으로부터 개방 회로 상태를 제거하는 제어 신호를 사용하는 방법의 일 실시예를 도시한다.
도 11은 본 명세서에 설명된 기능들을 수행하는데 사용하기 위해 적합한 컴퓨터의 하이-레벨 블록도를 도시한다.
이해를 용이하게 하기 위해, 도면들에 대해 공통인 동일한 엘리먼트들을 지정하기 위해 가능하면 동일한 참조 부호들이 사용되었다.
스캔 체인 보안 능력이 본 명세서에 서술되고 설명된다. 스캔 체인 보안 능력은 예를 들어, 시스템의 배치 또는 판매 이전의 테스팅, 시스템의 배치 또는 판매 이후의 현장 테스팅, 시스템의 현장 변경 등 뿐만 아니라 이들의 다양한 조합과 같은 목적을 위해 시스템의 스캔 체인의 정상 사용을 통해 보안 제어를 인에이블한다. 스캔 체인 보안 능력은 (스캔 체인의 정상 사용을 방지하는) 스캔 체인의 중단을 통해 제어를 인에이블하고, (스캔 체인의 정상 사용을 인에이블하는) 스캔 체인의 중단 이후에 스캔 체인의 재확립을 통해 제어를 인에이블함으로써 스캔 체인의 정상 사용을 통해 보안 제어를 인에이블한다. 이러한 방식에서, 스캔 체인 보안 능력은 임의의 시간에 임의의 목적을 위해 스캔 체인의 제어가능한 잠금 및 잠금해제를 인에이블한다. 이러한 방식에서, 스캔 체인 보안 능력을 사용한 스캔 체인의 잠금은, 스캔 체인의 임의의 시도된 보안이 영구적이어서(예를 들어, 스캔 체인 액세스를 제공하는 하나 이상의 컴포넌트들의 버닝), 스캔 체인 보안 방법들의 실행 이후에 스캔 체인의 정상 사용이 불가능한 기존의 스캔 체인 보안 방법들과는 현저하게 대조적으로 가역적이다.
일 실시예에서, 스캔 체인의 제어된 중단 및 스캔 체인의 제어된 재확립이 스캔 체인의 정상 사용을 방지하기 위해 개방 회로 상태를 생성하고 스캔 체인의 정상 사용을 재-인에이블하기 위해 개방 회로 상태를 제거하기 위해 구성되는 스캔 체인 보안 컴포넌트를 사용하여 제공될 수도 있다.
일 실시예에서, 스캔 체인 보안 컴포넌트는 스캔 체인내에 배치될 수도 있다. 스캔 체인내에서 이러한 스캔 체인 보안 컴포넌트의 예시적인 사용이 도 1a에 관하여 서술되고 설명된다.
일 실시예에서, 스캔 체인 보안 컴포넌트는 IEEE(Institute of Electrical and Electronics Engineers) 1149.1 테스트 액세스 포트(TAP)와 같은, 스캔 체인에 대한 액세스를 제공하기 위해 구성된 테스트 액세스 인터페이스(TAI)내에 배치될 수도 있다. TAI에서의 이러한 스캔 체인 보안 컴포넌트의 예시적인 사용이 도 1b에 관하여 서술되고 설명된다.
도 1a 및 도 1b는 테스팅 시스템 및 피테스트 시스템을 포함하는 예시적인 시스템 테스팅 환경의 하이-레벨 블록도를 도시한다.
도 1a 및 도 1b에 도시되어 있는 바와 같이, 시스템 테스팅 환경들(101 및 102)은 테스팅 시스템(TS; 110) 및 피테스트 시스템(SUT; 120)을 각각 포함한다.
TS(110)는 SUT(120)를 테스트하는데 적합한 임의의 시스템일 수도 있다. TS(110)는 SUT(120)를 테스트하기 위해 구성된다. TS(110)는 SUT(120)의 임의의 테스팅, 예를 들어, SUT(120)의 하나 이상의 개별 컴포넌트들, SUT(120)의 컴포넌트들의 하나 이상의 조합들, SUT(120)의 컴포넌트들 사이의 하나 이상의 상호접속들, SUT(120)의 하나 이상의 시스템 레벨 기능들 등 뿐만 아니라 이들의 다양한 조합의 테스팅을 수행할 수도 있다. TS(110)는 테스트 절차들의 실행, 피테스트 시스템에 대한 입력 데이터의 제공, 피테스트 시스템으로부터 출력 데이터의 수신, 시스템 테스팅 결과를 결정하기 위해 시스템으로부터 수신된 출력 데이터의 프로세싱 등의 기능들 뿐만 아니라, 이들의 다양한 조합과 같은 피테스트 시스템의 테스팅과 통상적으로 연관된 임의의 기능들을 수행할 수도 있다. 피테스트 시스템을 테스팅하기 위한 TS(110)의 설계 및 사용이 아래에 더 상세히 설명된다.
SUT(120)는 TS(110)를 사용하여 테스트될 수도 있는 임의의 시스템일 수도 있다. SUT(120)는 그것의 적어도 일부가 TS(110)에 의해 개별적으로 및/또는 결합하여 테스트될 수도 있는 임의의 컴포넌트(들)를 포함할 수도 있다. TS(120)는 SUT(120)에 의해 테스트될 컴포넌트(들)에 대한 액세스를 제공하는 연관된 입력 및 출력 액세스 핀들의 하나 이상의 세트들을 갖는 하나 이상의 스캔 체인들을 포함할 수도 있다. 스캔 체인(들)이 SUT(120)를 테스트하기 위해 SUT(120)에서 활용될 수도 있는 방식은 당업자에 의해 이해될 것이다. 예를 들어, SUT(120)는 그 테스팅이 입력 테스팅 신호들을 SUT(120)에 적용하고 SUT(120)로부터 출력 테스팅 신호들을 수집하기 위해 사용될 수도 있는 연관된 입력 및 출력 액세스 핀들을 갖는 하나 이상의 스캔 체인들을 사용하여 수행될 수도 있는 하나 이상의 보드들을 포함할 수도 있다.
도 1a 및 도 1b에 도시되어 있는 바와 같이, TS(110)는 테스트 액세스 인터페이스(TAI; 125)를 통해 SUT(120)에 액세스한다.
TAI(125)는 TS(110), SUT(120), 수행될 테스팅의 타입 등 뿐만 아니라 이들의 다양한 조합 중 하나 이상에 의존할 수도 있는 임의의 적합한 테스트 액세스 인터페이스를 사용하여 구현될 수도 있다.
일 실시예에서, TAI(125)는 그 전체가 참조로 여기에 포함되는 IEEE 1149.1 표준에서 표준화된 바와 같은 JTAG(Joint Test Action Group) 테스트 액세스 포트(TAP)로서 구현될 수도 있다.
IEEE 1149.1 TAP는 테스트 데이터 입력(TDI), 테스트 데이터 출력(TDO), 테스트 모드 선택(TMS), 테스트 클록(TCK), 및 선택적으로 테스트 리셋 신호(TRST)를 테스트하는데 사용하기 위한 다음의 신호들의 세트를 지원한다. SUT(120)의 TDI 및 TDO 핀들은 TS(110)가 SUT(120)에 대한 테스팅을 수행할 수도 있는 경계 스캔 체인(128)에서 상호접속된다.
IEEE 1149.1 TAP는 또한 TAP 제어기, 명령 레지스터, 바이패스 레지스터, 및 선택적으로, 하나 이상의 추가 엘리먼트들(예를 들어, 데이터 레지스터들, 디코딩 모듈들 등)을 지원한다.
TAI(125)는 임의의 다른 적합한 테스트 액세스 인터페이스를 포함할 수도 있다.
TS(110), TAI(125), 및 SUT(120)가 본 명세서에 도시되고 설명되는 다양한 실시예들의 특징들을 제공하는데 적합한 임의의 방식으로 구현될 수도 있다는 것을 당업자는 이해할 것이다.
도 1a 및 도 1b에 도시되어 있는 바와 같이, 테스팅 환경들(101 및 102)은 스캔 체인 보안 컴포넌트(SCSC; 130)를 각각 포함한다.
도 1a에 도시되어 있는 바와 같이, 시스템 테스팅 환경(101)에서, 스캔 체인을 중단시키기 위해 개방 회로를 생성하고 스캔 체인을 중단시키지 않기 위해 개방 회로를 폐쇄하도록 구성된 SCSC(130)가 스캔 체인(128)내에 배치될 수도 있다. TDI 입력은 스캔 체인(128)의 입력에서 일련의 셀들에 커플링되고, 그 후, SCSC(130)에 커플링되고, 그 후, 스캔 체인(128)의 출력에서 일련의 셀들에 커플링되고, 그 후, TDO 출력에 커플링된다. 이러한 구성에서 SCS(130)의 사용은 도 2 내지 7을 참조하여 더 양호하게 이해될 수도 있다.
도 1b에 도시되어 있는 바와 같이, 시스템 테스팅 환경(102)에서, 스캔 체인을 중단시키기 위해 개방 회로를 생성하고 스캔 체인을 중단시키지 않기 위해 개방 회로를 폐쇄하기 위해 구성된 SCSC(130)가 TAI(125)내에 배치될 수도 있다. 이러한 구성에서 SCSC(130)의 사용은 도 2, 도 3 및 도 8을 참조하여 더 양호하게 이해될 수도 있다.
본 명세서에서 설명하는 바와 같이, SCSC(130)는 스캔 체인(128)내에서 개방 회로 상태를 생성하고 제거하기 위해 구성된다. 따라서, SCSC(130)는 스캔 체인(128)내에서 개방 회로 상태를 생성하고 제거하는데 적합한 임의의 방식으로 구현될 수도 있다.
일 실시예에서, SCSC(130)는 개방 회로 데드락(Open-Circuit Deadlock; OCD) 셀로서 구현되고, 이 실시예는 도 3에 관하여 도시되고 설명된다.
일 실시예에서, OCD 셀은 도 2에 관하여 도시되고 설명되는 IEEE P1687 작업 그룹에 의해 제안된 세그먼트 삽입 비트(SIB) 셀과 유사할 수도 있다.
스캔 체인 보안이 제공될 수도 있는 예시적인 시스템 테스팅 환경에 관하여 도시되고 설명되지만, 스캔 체인 보안 능력이 스캔 체인을 갖는 임의의 적합한 타입의 환경내에 제공될 수도 있다는 것이 이해될 것이다.
도 2는 계층적 스캔 체인 액세스를 인에이블하는데 사용하기 위해 구성되는 IEEE P1687 작업 그룹에 의해 제안된 SIB 셀의 하이-레벨 블록도를 도시한다.
SIB 셀(200)은 (TDI 입력 및 TDO 출력을 통해) 스캔 체인의 제 1 계층적 레벨 및 (oTDI 입력 및 iTDO 출력을 통해) 스캔 체인의 제 2 계층적 레벨을 지원하도록 구성된다.
SIB 셀(200)은 SIB 입력 MUX(220)가 연관된 인스트루먼트 비트 선택(Select Instrument Bit; SIB) 레지스터(210), UpSIB 입력 MUX(240)가 연관된 SIB 업데이트(UpSIB) 레지스터(230), 및 출력 MUX(250)를 포함한다.
SIB 레지스터(210)와 연관된 SIB 입력 MUX(220)는 SIB 레지스터(210)에 대한 입력을 제어한다. SIB 입력 MUX(220)는 2개의 입력 포트들(221 및 222)을 포함한다. SIB 입력 MUX(220)는 (a) 입력 포트(221)에서, TDI 입력(261)(예를 들어, 명확화를 위해 생략한 스캔 체인에서의 이전의 컴포넌트로부터), 및 (b) 입력 포트(222)에서, SIB 레지스터(210)의 출력을 입력들로서 수용한다. SIB 입력 MUX(220)는 SIB 입력 MUX(220)의 제어 포트(223)에 적용되는 ShDR 제어 신호(264)에 의해 제어된다. ShDR 제어 신호(264)가 "1"일 때, SIB 입력 MUX(220)는 신호를 입력 포트(221)를 통해 TDI 입력(261)으로부터 SIB 레지스터(210)로 패스한다. ShDR 제어 신호(264)가 "0"일 때, SIB 입력 MUX(220)는 신호를 입력 포트(222)를 통해 SIB 레지스터(210)의 출력으로부터 SIB 레지스터(210)로 패스한다.
SIB 레지스터(210)는 SIB 입력 MUX(220)의 출력으로부터의 입력을 수용한다. SIB 레지스터(210)는 SIB 레지스터(210)의 클록 포트(211)에 적용된 클록 신호(TCK 신호(263)로서 표기)에 의해 제어된다. SIB 레지스터(210)의 출력은 SIB 입력 MUX(220)에 대한 입력(예시적인 입력 (222)), UpSIB 입력 MUX(240)에 대한 입력(예시적으로, 입력(241)), 출력 MUX(250)에 대한 입력(예시적으로, 입력 포트(252)), 및 oTDI 포트(266)(신호들을 전파시키는 제 2 계층적 레벨의 컴포넌트들에 대한 액세스를 제공하고 스캔 체인의 제 2 계층적 레벨이 활성화될 때 제 2 계층적 레벨내에 있음) 각각에 커플링된다.
UpSIB 레지스터(230)와 연관된 UpSIB 입력 MUX(240)는 UpSIB 레지스터(230)에 대한 입력을 제어한다. UpSIB 입력 MUX(240)는 2개의 입력 포트들(241 및 242)을 포함한다. UpSIB 입력 MUX(240)는 (1) 입력 포트(241)에서, SIB 레지스터(210)로부터의 출력, 및 (2) 입력 포트(242)에서, UpSIB 레지스터(230)로부터의 출력을 입력들로서 수용한다. UpSIB 입력 MUX(240)는 UpSIB 입력 MUX(240)의 제어 포트(243)에 적용되는 UpDR 제어 신호(265)에 의해 제어된다. UpDR 제어 신호(265)가 "1"일 때, UpSIB 입력 MUX(240)는 SIB 레지스터(210)의 출력으로부터의 신호를 (입력 포트(241)를 통해) UpSIB 레지스터(230)로 패스한다. UpDR 제어 신호(265)가 "0"일 때, UpSIB 입력 MUX(240)는 UpSIB 레지스터(230)의 출력으로부터의 신호를 (입력 포트(242)를 통해) UpSIB 레지스터(230)로 패스한다.
UpSIB 레지스터(230)는 UpSIB 입력 MUX(240)의 출력으로부터의 입력을 수용한다. UpSIB 레지스터(230)는 UpSIB 레지스터(230)의 클록 포트(231)에 적용된 클록 신호(TCK 신호(263)로서 표기)에 의해 제어된다. UpSIB 레지스터(230)의 출력은 UpSIB 입력 MUX(240)에 대한 입력(예시적인, 입력(242)), 출력 MUX(250)의 제어 포트(253), 및 Select_Instr 시그널링 경로(268) 각각에 커플링된다.
출력 MUX(250)는 2개의 입력 포트들(251 및 252)을 포함한다. 출력 MUX(250)는 (1) 입력 포트(251)에서, (스캔 체인의 제 2 계층 레벨이 활성화될 때 스캔 체인의 제 2 계층 레벨의 컴포넌트로부터 스캔 체인의 제 1 계층 레벨로의 액세스를 제공하는) iTDO 포트(267)를 통한 하위 계층 레벨로부터의 입력, 및 (2) 입력 포트(252)에서, SIB 레지스터(210)로부터의 출력을 입력들로서 수용한다. 출력 MUX(250)의 출력은 (스캔 체인의 제 1 계층 레벨에서 후속 컴포넌트로의 전파를 위해) SIB 셀(200)의 TDO 출력(262)에 커플링된다. 출력 MUX(250)의 출력은 출력 MUX(250)의 제어 포트(253)에 적용되는 제어 신호에 의해 결정된다. UpSIB 레지스터(230)의 출력은 출력 MUX(250)의 제어 포트(253)에 커플링된다.
도 2에 도시되어 있는 바와 같이, UpSIB 레지스터(230)의 값은 제 2 계층 레벨이 선택(즉, 스캔 체인의 일부)되거나 선택해제(즉, 스캔 체인의 일부가 아님)되는지를 결정한다. 제 2 계층 레벨이 선택해제될 때(즉, UpSIB 레지스터(230)의 값이 "0"), 출력 MUX(250)는 SIB 레지스터(210)의 출력을 SIB 셀(200)의 TDO 출력(262)으로 패스하고, iTDO 포트(267)로부터의 값은 무시된다. 제 2 계층 레벨이 선택될 때(즉, UpSIB 레지스터(230)의 값이 "1"), 출력 MUX(250)는 제 2 계층 레벨(즉, iTDO 포트(267))로부터의 신호를 SIB 셀(200)의 TDO 출력(262)으로 패스한다.
본 명세서에서 설명하는 바와 같이, OCD 셀은 도 2에 관하여 도시되고 설명되는 바와 같이, IEEE P1687 작업 그룹에 의해 제안된 세그먼트 삽입 비트(SIB) 셀과 유사할 수도 있다. OCD 셀의 예시적인 실시예가 도 3에 관하여 도시되고 설명된다.
도 3은 스캔 체인 보안을 제어하는데 사용하기 위해 구성된 OCD 셀의 일 실시예를 도시한다.
도 2와 도 3의 비교로부터 알 수 있는 바와 같이, 도 3의 OCD 셀(300)은 적어도 일부 사항들에서 도 2의 SIB 셀(200)과 유사하다.
본 명세서에서 설명하는 바와 같이, OCD 셀(300)은 스캔 체인과 연관되고 (예를 들어, 스캔 체인내의 OCD 셀(300)의 배치를 통해, 스캔 체인이 액세스되는 테스트 액세스 인터페이스내의 OCD 셀(300)의 배치를 통해, 또는 OCD 셀(300)의 임의의 다른 적합한 배치를 통해) OCD 셀(300)이 연관되는 스캔 체인의 정상 사용을 보안하도록 구성된다.
OCD 셀(300)은 제어 신호의 수신에 응답하여 스캔 체인내에 개방 회로 상태를 생성하도록 구성되고, 여기서, 개방 회로 상태의 생성은 스캔 체인의 정상 사용을 방지한다. 스캔 체인에서 개방 회로 상태를 생성하기 위해 사용된 제어 신호는 임의의 적합한 제어 신호일 수도 있다. 일 실시예에서, 스캔 체인에서 개방 회로 상태를 생성하기 위해 사용된 제어 신호는 스캔 레지스터 값이다. 하나의 이러한 실시예에서, 스캔 레지스터 값은 스캔 체인을 통해 수신된다.
OCD 셀(300)은 제어 신호의 수신에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하도록 구성되고, 여기서, 개방 회로 상태의 제거는 스캔 체인의 정상 사용을 재인에이블한다.
OCD 셀(300)은 OCD 입력 MUX(320)가 연관된 OCD 레지스터(310), UpOCD 입력 MUX(340)가 연관된 OCD 업데이트(UpOCD) 레지스터(330), 및 입력 MUX(350)를 포함한다.
OCD 레지스터(310)와 연관된 OCD 입력 MUX(320)는 OCD 레지스터(310)에 대한 입력을 제어한다. OCD 입력 MUX(320)는 2개의 입력 포트들(321 및 322)을 포함한다. OCD 입력 MUX(320)는 (1) 입력 포트(321)에서, 입력 MUX(350)로부터의 출력, 및 (2) 입력 포트(322)에서, OCD 레지스터(310)의 출력을 입력들로서 수용한다. OCD 입력 MUX(320)는 OCD 입력 MUX(320)의 제어 포트(323)에 적용되는 ShDR 제어 신호(364)에 의해 제어된다. ShDR 제어 신호(364)가 "1"일 때, OCD 입력 MUX(320)는 입력 MUX(350)의 출력으로부터의 신호를 입력 포트(321)를 통해 OCD 레지스터(310)로 패스한다. ShDR 제어 신호(364)가 "0"일 때, OCD 입력 MUX(320)는 OCD 레지스터(310)의 출력으로부터의 신호를 입력 포트(322)를 OCD 레지스터(310)로 패스한다.
OCD 레지스터(310)는 OCD 입력 MUX(320)의 출력으로부터의 입력을 수용한다. OCD 레지스터(310)는 OCD 레지스터(310)의 클록 포트(311)에 적용된 클록 신호(TCK 신호(363)로서 표기)에 의해 제어된다. OCD 레지스터(310)의 출력은 OCD 입력 MUX(320)에 대한 입력(예시적으로, 입력(322)), UpOCD 입력 MUX(340)에 대한 입력(예시적으로, 입력(341), 및 (스캔 체인의 다운스트림 셀들에 대한 액세스를 제공하는) TDO 출력 포트(362) 각각에 커플링된다.
UpOCD 레지스터(330)와 연관된 UpOCD 입력 MUX(340)는 UpOCD 레지스터(330)에 대한 입력을 제어한다. UpOCD 입력 MUX(340)는 2개의 입력 포트들(341 및 342)을 포함한다. UpOCD 입력 MUX(340)는 (a) 입력 포트(341)에서, OCD 레지스터(310)로부터의 출력, 및 (b) 입력 포트(342)에서, UpOCD 레지스터(330)로부터의 출력을 입력들로서 수용한다. UpOCD 입력 MUX(340)는 UpOCD 입력 MUX(340)의 제어 포트(343)에 적용되는 UpDR 제어 신호(365)에 의해 제어된다. UpDR 제어 신호(365)가 "1"일 때, UpOCD 입력 MUX(340)는 OCD 레지스터(310)의 출력으로부터의 신호를 (입력 포트(341)를 통해) UpOCD 레지스터(330)로 패스한다. UpDR 제어 신호(365)가 "0"일 때, UpOCD 입력 MUX(340)는 UpOCD 레지스터(330)의 출력으로부터의 신호를 (입력 포트(342)를 통해) UpOCD 레지스터(330)로 패스한다.
UpOCD 레지스터(330)는 UpOCD 입력 MUX(340)의 출력으로부터의 입력을 수용한다. UpOCD 레지스터(330)는 UpOCD 레지스터(330)의 클록 포트(331)에 적용된 클록 신호(TCK 신호(363)로서 표기) 및 OCD 레지스터(310)의 제어 포트(332)에 적용된 보안 리셋(SecureRST) 신호(369)에 의해 제어된다. UpOCD 레지스터(330)의 출력은 UpOCD 입력 MUX(340)에 대한 입력(예시적으로, 입력(342)) 및 입력 MUX(350)의 제어 포트(353)에 커플링된다.
입력 MUX(350)는 2개의 입력 포트들(351 및 352)을 포함한다. 입력 MUX(350)는 (1) 입력 포트(351)에서, 개방 회로(예를 들어, 입력 포트(351)는 어떤 다른 컴포넌트에도 커플링되지 않음), 및(2) 입력 포트(352)에서, (스캔 체인의 업스트림 셀들로부터의 액세스를 제공하는) TDI 입력 포트(361)로부터의 입력을 입력들로서 수용한다. 입력 MUX(350)의 출력은 (OCD 레지스터(310)를 통한 OCD 셀(300)의 TDO 출력(362)으로의 신호들의 전파를 위해) OCD 입력 MUX(320)의 입력 포트(321)에 커플링된다. 입력 MUX(350)의 출력은 입력 MUX(350)의 제어 포트(353)에 적용되는 제어 신호에 의해 결정된다. UpOCD 레지스터(330)의 출력은 입력 MUX(350)를 제어하기 위해 입력 MUX(350)의 제어 포트(353)에 커플링된다. UpOCD 레지스터(330)는 UpOCD 레지스터(330)를 알려진 값('1' 또는 '0')으로 리셋하는 SecureRST 신호(369)에 의해 제어된다.
UpOCD 레지스터(330)는 입력 MUX(350)를 제어하여, (입력 MUX(350)에서의 입력 포트(351)의 선택을 통해) 스캔 체인에서 개방 회로 상태를 생성하고, (양자가 스캔에 접속되는, OCD 셀(300)의 TDI 입력(361)을 OCD 셀(300)의 TDI 출력(362)에 (OCD 레지스터(310)를 통해) 접속시키는 입력 MUX(350)에서의 입력 포트(352)의 선택을 통해) 스캔 체인으로부터 개방 회로 상태를 제거하도록 구성된다.
이러한 관점에서, UpOCD 레지스터(330) 및 입력 MUX(350)는 스캔 체인으로부터 개방 회로 상태를 생성하고 제거하기 위해 구성된 컴포넌트들인 것으로 각각 고려될 수도 있다.
UpOCD 레지스터(330)는 제 1 제어 신호(예를 들어, 스캔 체인을 통해 수신된 레지스터 값)에 응답하여 스캔 체인에서 개방 회로 상태를 생성하도록 구성된 컴포넌트이다. UpOCD 레지스터(330)는 (UpOCD 레지스터(330)의 출력으로부터 입력 MUX(350)의 제어 포트(353)에 제공된 제어 신호를 통해) 입력 MUX(351)에게 입력 포트(351)를 선택하도록 명령함으로써 개방 회로 상태를 생성하도록 구성된다.
UpOCD 레지스터(330)는 제 2 제어 신호(예를 들어, UpOCD 레지스터(330)에서 수신된 SecureRST 신호)에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하도록 구성된 컴포넌트이다. UpOCD 레지스터(330)는 (UpOCD 레지스터(330)의 출력으로부터 입력 MUX(350)의 제어 포트(353)에 제공된 제어 신호를 통해) 입력 MUX(351)에게 입력 포트(352)를 선택하도록 명령함으로써 개방 회로 상태를 생성하도록 구성된다.
입력 MUX(350)는 제 1 제어 신호에 응답하여 스캔 체인에서 개방 회로 상태를 생성하도록 구성된 컴포넌트이고, 여기서, 제 1 제어 신호는 (예를 들어, UpOCD 레지스터(330)에 의해 수신된 스캔 레지스터 값에 응답하여) UpOCD 레지스터(330)의 출력으로부터 입력 MUX(350)의 제어 포트(353)에서 수신된 제어 신호이다. 입력 MUX(350)는 제 1 제어 신호에 응답하여 입력 포트(351)를 선택함으로써 스캔 체인에서 개방 회로 상태를 생성하도록 구성된다.
입력 MUX(350)는 제 2 제어 신호에 응답하여 스캔 체인에서 개방 회로 상태를 제거하도록 구성된 컴포넌트이고, 여기서, 제 2 제어 신호는 (예를 들어, UpOCD 레지스터(330)에 의해 수신된 SecureRST 신호에 응답하여) UpOCD 레지스터(330)의 출력으로부터 입력 MUX(350)의 제어 포트(353)에서 수신된 제어 신호이다. 입력 MUX(350)는 제 2 제어 신호에 응답하여 입력 포트(352)를 선택함으로써 스캔 체인에서 개방 회로 상태를 제거하도록 구성된다.
본 명세서에 설명하는 바와 같이, SecureRST 신호(369)는 UpOCD 레지스터(330)를 통한 입력 MUX(350)를 제어하여, (스캔 체인이 그 스캔 체인의 정상 사용이 방지되는 개방 회로 상태에 영향을 받도록) 입력 포트(351)를 통한 개방 회로 입력의 선택으로부터 (개방 회로 상태가 스캔 체인으로부터 제거되고 스캔 체인의 정상 사용이 가능하도록) 입력 포트(352)를 통한 TDI 입력 포트(361)로부터의 입력의 선택까지 입력 MUX(350)에 의한 제어된 스위칭을 인에이블하는데 사용하기 위해 구성된다.
따라서, SecureRST 신호(369)는 제어된 방식으로 연관된 스캔 체인으로부터 개방 회로 상태의 제거를 인에이블하기 위해 OCD 셀(300)의 동작을 제어하도록 구성된다.
도 2와 도 3의 비교로부터 알 수 있는 바와 같이, 도 3의 OCD 셀(300)은 도 2의 SIB 셀(200)과 유사하고, 적어도 아래의 차이점들이 구현된다:
(1) oTDI - iTDO의 유도는 (입력 MUX(350)의 입력 포트(351)에서 개방 회로에 의해 표시된 바와 같이) 의도적으로 개방되어 남아 있고,
(2) 입력 MUX(350)를 제어하는 UpOCD 레지스터(330)는 상기 MUX(350) 이후에 배치된다.
이들 차이점들의 결과로서, (a) OCD 셀(300)이 인에이블되면, 스캔 체인은 데드락 상태로 진입하여, 스캔 체인의 정상 사용을 방지하고 종래의 스캔 액세스를 통해 제거될 수 없는 스캔 체인에서의 개방 회로를 생성하고, (b) 데드락 상태를 제거하여 회로를 폐쇄하고 스캔 체인의 정상 동작 능력을 복구시키기는 유일한 방식이 SecureRST 신호(369)를 선언하는 것이다. 이러한 방식에서, 스캔 체인의 정상 사용의 보안의 레벨은 SecureRST 신호가 생성되는 프로세스의 보안의 레벨에 의존하여 이루어질 수도 있다.
SecureRST 신호(369)는 임의의 적합한 방식(예를 들어, 임의의 적합한 컴포넌트에 의해, 임의의 적합한 조건(들)에 응답하여) 생성될 수도 있다.
SecureRST 신호(369)의 생성을 위한 적어도 일부의 이러한 실시예들에서, 아래의 원칙들 중 하나 이상이 이용될 수도 있다:
(1) SecureRST 신호(369)는 JTAG 스캔 액세스와 연관된 종래의 리셋 능력에 관련되지 않고, 그렇지 않으면, 정상 리셋 동작이 풀 스캔 체인 액세스를 재-인에이블하고(즉, 데드락 상태를 브레이킹하여, 회로를 폐쇄하고 스캔 체인의 정상 동작 능력을 복구한다);
(2) UpOCD 셀(300)은 (예를 들어, 배터리에 의해 전력이 공급되는) 영구 저장부이거나 리셋시에 "개방"으로 설정될 수도 있고;
(3) SecureRST 신호(369)는 (프로브를 통해 액세스하는 것이 불가능하도록) OCD 셀(300)이 배치되는 동일한 칩 내부에서 생성될 수도 있거나, SecureRST 신호(369)는 SecureRST 신호(369)를 은폐(hiding)하거나 SecureRST 신호(369)가 액세스하는 것을 어렵게 하는 방식으로 보드상에서 라우팅될 수도 있다(예를 들어, 내부층에서, SecureRST 신호(369)를 은폐하거나 SecureRST 신호(369)가 액세스하는 것을 어렵게 하는 임의의 다른 적합한 방식을 사용함).
스캔 체인의 정상 사용을 보안하는데 OCD 셀(300)이 효과적이도록, 그것의 상태는 영구적이고, 즉, 전력 사이클을 통해 저항한다.
그렇지 않으면, 간단한 전력 사이클이 OCD 셀(300)의 보안을 브레이크하고 스캔 체인의 정상 사용을 재확립하는데 충분하다. OCD 셀(300)의 상태는 다음과 같은 임의의 적합한 방식으로 영구적으로 이루어질 수도 있다.
(1) UpOCD 레지스터(330)에 대해 영구 메모리 저장부(예를 들어, 플래시 셀 또는 임의의 다른 적합한 영구 메모리 저장부)를 사용하고;
(2) 예를 들어, (a) UpOCD 레지스터(330)에 대한 리셋 신호(도 3에는 미도시)를 사용하고, (b) FPGA 애플리케이션에서, 프로그래밍 비트스트림에서 UpOCD의 디폴트 값을 정의함으로써, 임의의 적합한 방식으로 행해질 수도 있는, 전력 사이클이 개방 회로를 벗어난 이후의 디폴트 값이 활성(즉, 입력(351)이 입력 MUX(350)에서 선택됨)이라는 것을 보장함으로써 이루어질 수도 있다.
OCD 셀(300)의 상태는 임의의 다른 적합한 방식으로 영구적으로 이루어질 수도 있다.
유사하게는, SecureRST 신호(369) 및 그것의 연관된 생성 컴포넌트들/로직에 대해, 신호는 플로팅하는 것이 전혀 허용되지 않고, 부득이하게 기동시에 비활성이다. 이것은 회로 생성에서 이들 특성들을 적용하고 이들을 정규 검증과 같은 기법들로 체크하는 것과 같은 임의의 적합한 기법들을 사용하거나 임의의 다른 적합한 기법들을 사용하여 달성될 수도 있다.
SecureRST 신호(369)는 SecureRST 신호(369)의 생성을 위한 다양한 실시예들을 도시하는 도 4 내지 8에 관하여 도시되고 설명된 바와 같이, 임의의 적합한 방식으로 생성될 수도 있다.
일 실시예에서, SecureRST 신호(369)는 키 체커 기능에 의한 보안 키의 검증에 응답하여 생성된다.
도 4a는 보안된 스캔 체인의 입력부로 시프트된 보안키의 키 체커(checker) 기능에 의한 검증을 통한 SecureRST의 생성의 일 실시예를 도시한다. 도 3의 OCD 셀(300)에 의한 사용을 위해 SecureRST 신호의 생성에 관하여 주로 도시하고 설명하였지만, 도 4a의 실시예들이 임의의 적합한 스캔 체인 보안 컴포넌트에 의한 사용을 위해 보안 제어 신호를 생성하는데 활용될 수도 있다는 것이 이해될 것이다.
도 4a에 도시되어 있는 바와 같이, 스캔 체인(410)을 갖는 시스템(401)은 스캔 체인(410)내에 배치된 OCD 셀(430)을 갖는다. 시스템(401)은 보안 키의 검증에 응답하여 제어 신호를 생성하기 위해 구성된 키 체커 기능(420A)을 포함하고, 여기서, 제어 신호는 OCD 셀(430)을 제어하는데 사용하도록 구성된다.
스캔 체인(410)은 (예를 들어, TAP 또는 다른 테스트 액세스 인터페이스로부터) 시스템(401)에 대한 TDI 입력 및 OCD 셀(430)에 커플링된 스캔 체인(410)의 입력부(4101)를 포함한다. 스캔 체인(410)의 입력부(410I)는 복수의 셀들(412I)(예시적으로, 16개의 셀들)을 포함한다. 스캔 체인(410)의 입력부(410I)는 기록될 수 있지만 판독될 수는 없고, OCD 셀(430)은 스캔 체인(410)에서 개방 회로 상태를 초래하도록 구성된다.
스캔 체인(410)은 시스템(401)으로부터 (예를 들어, TAP 또는 다른 테스트 액세스 인터페이스로의) OCD 셀(430) 및 TDO 출력에 커플링되는 스캔 체인(410)의 출력부(410O)를 포함한다. 스캔 체인(410)의 출력부(410O)는 복수의 셀들(412O)(예시적으로, 16개의 셀들)을 포함한다. 스캔 체인(410)의 출력부(410O)는 판독될 수 있지만 기록될 수는 없고, OCD 셀(430)은 스캔 체인(410)에서 개방 회로 상태를 초래하도록 구성된다.
OCD 셀(430)은 임의의 적합한 방식으로 구현될 수도 있다. 일 실시예에서, OCD 셀(430)은 도 3의 OCD 셀(300)로서 구현되거나, 임의의 다른 적합한 OCD 셀 또는 다른 적합한 스캔 체인 보안 컴포넌트를 사용하여 구현될 수도 있다. OCD 셀(430)의 TDI 입력(명확화를 위해 생략되지만, 도 3의 OCD 셀(300)의 TDI 입력(361)과 유사함)은 시스템(401)에 대한 TDI 입력으로부터 가장 먼 스캔 체인(410)의 입력부(410I)의 셀에 커플링된다. OCD 셀(430)의 TDO 출력(명확화를 위해 생략되지만, 도 3의 OCD 셀(300)의 TDO 출력(362)과 유사함)은 시스템(401)으로부터의 TDO 출력으로부터 가장 먼 스캔 체인(410)의 출력부(410O)의 셀에 커플링된다.
키 체커 기능(420A)은 스캔 체인(410)의 입력부(410I)로 시프트된 보안 키의 검증에 응답하여 제어 신호(예시적으로, SecureRST 신호(425))를 생성하기 위해 구성된다.
보안 키는 개방 회로 상태를 제거하고 스캔 체인(410)의 정상 사용을 허용하도록 OCD 셀(430)을 트리거하기 위해, OCD 셀(430)이 스캔 체인(410)에서 개방 회로 상태를 초래하도록 구성될 때 스캔 체인(410)의 입력부(410I)로 시프트된다.
보안 키는 스캔 체인(410)의 입력부(410I)의 사이즈에 의존할 수도 있는 임의의 적합한 길이일 수도 있다. 일 실시예에서, 보안 키의 길이는 스캔 체인(410)의 입력부(410I)의 길이 이하이다.
보안 키는, 악의적인 공격자가 보안 키의 값을 알아야 할 뿐만 아니라 스캔 체인(410)을 잠금해제하기 위해(즉, 개방 회로 상태를 제거하기 위해) 악의적인 공격자가 보안 키를 배치할 위치를 정확하게 알아야 하기 때문에, 스캔 체인(410)의 입력부(410I)내의 임의의 적합한 위치로 스캐닝될 수도 있어서, 더 강력한 보안을 제공한다.
도 4a의 예에서, 보안 키는 스캔 체인(410)의 입력부(410I)의 비트 포지션 5 내지 14를 점유하는 10 비트 값이다(여기서, 입력부(410I)의 비트 포지션 0은 시스템(401)의 TDI에 인접하고 입력부(410I)의 비트 포지션 15는 OCD 셀(430)의 TDI에 인접한다). 보안 키가 스캔 체인(410)의 입력부(410I)내의 임의의 다른 적합한 위치로부터 판독될 수도 있는 비트들의 임의의 다른 적합한 번호를 사용할 수도 있다는 것이 이해될 것이다.
도 4b는 키 체커 기능의 버퍼로 시프트된 보안 키의 키 체커 기능에 의한 검증을 통한 SecureRST의 생성의 일 실시예를 도시한다. 도 3의 OCD 셀(300)에 의한 사용을 위해 SecureRST 신호의 생성에 관하여 주로 도시하고 설명하였지만, 도 4b의 실시예들이 임의의 적합한 스캔 체인 보안 컴포넌트에 의한 사용을 위해 보안 제어 신호를 생성하는데 활용될 수도 있다는 것이 이해될 것이다.
도 4b에 도시되어 있는 바와 같이, 키 체커 기능(420)에 의한 검증을 위한 보안 키의 소스를 제외하고, 시스템(402)은 도 4a의 시스템(401)과 거의 동일하다. 즉, 시스템(402)에서, 키 체커 기능(420B)은 (도 4a의 시스템(401)의 키 체커 기능(420A)에 의해 행해진 바와 같이, 스캔 체인(410)의 입력부(410I)로부터 보다는 오히려) 키 체커 기능(420B)과 연관된 보안 키 버퍼(422)로부터 보안 키를 판독하도록 구성된다.
보안 키 버퍼(422)는 스캔 체인(410)과 독립적이어서, 보안 키의 길이는 스캔 체인(410)의 입력부(410I)의 길에 의존하지 않는다. 그 결과, 보안 키는 임의의 적합한 길이일 수 있고, 또한, 원하는 경우 더 보안될 수도 있다(예를 들어, 은폐, 스크램블링 등).
보안 키 버퍼(422)는 임의의 적합한 방식으로 구현될 수도 있다. 일 실시예에서, 보안 키 버퍼(422)는 키 체커 기능(420B) 외부에 있을 수도 있다. 일 실시예에서, 보안 키 버퍼(422)는 키 체커 기능(420B) 내부에 있을 수도 있다.
보안 키 버퍼(422)는 임의의 적합한 소스로부터 보안 키를 수신할 수도 있다. 보안 키의 소스는 시스템(402)상에 배치될 수도 있거나 시스템(402)으로부터 원격일 수도 있다. 일 실시예에서, 보안 키 버퍼(422)는 스캔 체인(410)의 입력부(410I)로부터 보안 키를 수신할 수도 있다. 이러한 실시예에서, 보안 키 버퍼(422)는 스캔 체인(410)의 입력부(410I)에서의 임의의 적합한 위치에서 스캔 체인(410)의 입력부(410I)에 커플링될 수도 있다. 하나의 이러한 실시예에서, 예를 들어, 도 4a에 도시되어 있는 바와 같이, 보안 키 버퍼(422)는 스캔 체인(410)의 입력부(410I)가 OCD 셀(430)의 TDI 입력 포트에 커플링되는 포인트에서 스캔 체인(410)의 입력부(410I)에 커플링될 수도 있다. 보안 키 버퍼(422)가 임의의 적합한 위치에서 스캔 체인(410)의 입력부(410I)에 커플링될 수도 있다는 것이 이해될 것이다. 일 실시예에서, 보안 키 버퍼(422)는 다른 스캔 체인(미도시)으로부터 보안 키를 수신할 수도 있다. 보안 키 버퍼(422)가 임의의 다른 적합한 소스로부터 보안 키를 수신할 수도 있다는 것이 이해될 것이다.
보안 키는 개방 회로 상태를 제거하고 스캔 체인(410)의 정상 사용을 허용하도록 OCD 셀(430)을 트리거하기 위해, OCD 셀(430)이 스캔 체인(410)에서 개방 회로 상태를 초래하도록 구성될 때 보안 키 버퍼(422)에 제공된다.
키 체커 기능(420B)은 보안 키 버퍼(422)로부터 보안 키를 직렬 또는 병렬로 판독할 수도 있다.
키 체커 기능(420B)은 보안 키 버퍼(422)내에서 이용가능한 보안 키의 검증에 응답하여 제어 신호(예시적으로, SecureRST 신호(425))를 생성하기 위해 구성된다.
시스템들(401 및 402)의 키 체커 기능들(420A 및 420B) 각각은, 다양한 기능들 및/또는 능력을 공통으로 가질 수도 있어서, 일괄적으로 키 체커 기능(420)으로 칭할 수도 있다.
일 실시예에서, 키 체커 동작들이 OCD 셀(430)이 활성인지 여부에 관계없이 키 체커 기능(420)에 의해 실행될 수도 있다.
일 실시예에서, 보안 키 동작들은 OCD 셀(430)이 활성인 것으로 결정될 때만 키 체커 기능(420)에 의해 실행된다. 다른 실시예들에서, OCD 셀(430)은 보안 키가 스캔 체인의 입력부에 삽입될 때 마다 리셋된다. 이것은 보안 문제를 초래하지 않지만 무익한 스위칭 활동을 발생시킬 수도 있다.
키 체커 기능(420)은 임의의 적합한 방식으로 구현될 수도 있다.
일 실시예에서, 예를 들어, 키 체커 기능(420)은 고정 배선(hard-wired) 값에 대한 비교기로서 구현될 수도 있다. 일 실시예에서, 예를 들어, FPGA는 비트스트림 생성 시간에서 구현하는 회로들의 "고정 배선" 값을 결정할 수도 있어서, 설계자는 자신의 값을 선택할 수도 있고, 또한 각 업데이트 이후에 그 값을 변화시킬 수도 있다.
일 실시에에서, 예를 들어, 키 체커 기능(420)에 의해 검증된 보안 키는 1회 프로그램가능한 엘리먼트들(예를 들어, 퓨즈/안티퓨즈(antifuse) 박스)로부터 획득될 수도 있다.
일 실시에에서, 예를 들어, 키 체커 기능(420)에 의해 검증된 보안 키는 하나 이상의 보안 저장 엘리먼트들(예를 들어, 플립-플롭, 배터리 백업을 갖는 전기적으로 소거가능한 프로그램가능 판독전용 메모리(EEPROM) 등 뿐만 아니라 이들의 다양한 조합들)로부터 획득될 수도 있다.
일 실시예에서, 예를 들어, 키 체커 기능(420)은 암호화 IP 또는 다른 적합한 회로로서 구현될 수도 있다.
키 체커 기능(420)은 임의의 다른 적합한 방식으로 구현될 수도 있다.
따라서, 스캔 체인 보안 능력의 보안 키 기반 실시예들은 필요한 경우에 스케일링할 수 있어서, 복잡성, 보안성, 및 유연성에서 다양한 트레이드오프들을 가능하게 한다.
스캔 체인의 정상 사용을 재-인에이블하기 위해 제어 신호의 생성을 트리거하도록 보안 키의 검증을 사용하는 특정한 실시예들에 관하여 주로 도시하고 설명하였지만, 스캔 체인의 정상 사용을 재-인에이블하기 위해 제어 신호의 생성을 트리거하도록 보안 키의 검증을 사용하는 것이 임의의 다른 적합한 방식으로 구현될 수도 있다는 것이 이해될 것이다. 이러한 제어 신호들의 생성이 OCD 셀들 또는 임의의 다른 적합한 스캔 체인 보안 컴포넌트들을 제어하기 위해 수행될 수도 있다는 것이 더 이해될 것이다.
일 실시예에서, SecureRST 신호(369)는 챌린지 기반 인증 방법을 사용하여 생성된다.
도 5는 챌린지 기반 인증 방법의 사용을 통한 SecureRST 신호의 생성의 일 실시예를 도시한다. 도 3의 OCD 셀(300)에 의한 사용을 위해 SecureRST 신호의 생성에 관하여 주로 도시하고 설명하였지만, 도 5의 실시예들이 임의의 적합한 스캔 체인 보안 컴포넌트에 의한 사용을 위해 보안 제어 신호를 생성하는데 활용될 수도 있다는 것이 이해될 것이다.
도 5에 도시되어 있는 바와 같이, 시스템(500)은 제어기(501) 및 시스템(502)을 포함한다.
제어기(501)는 시스템(502)을 제어하기 위해 구성된다. 제어기(501)는 테스트 액세스 인터페이스(예를 들어, 도 1의 테스팅 시스템(110))를 통해 시스템(502)에 액세스하는데 적합한 임의의 제어기이다.
시스템(502)은 스캔 체인(510)내에 배치된 OCD 셀(530)을 갖는 스캔 체인(510)을 포함한다.
시스템(502)은 챌린지 기반 인증 방법에서의 챌린지의 충족에 응답하여 제어 신호를 생성하기 위해 구성되는 암호화 코어(520)를 포함한다.
스캔 체인(510)은 (예를 들어, TAP 또는 다른 테스트 액세스 인터페이스로부터) 시스템(502)에 대한 TDI 입력 및 OCD 셀(530)에 커플링된 스캔 체인(510)의 입력부(510I)를 포함한다. 스캔 체인(510)의 입력부(510I)는 복수의 셀들(512I)(예시적으로, 16개의 셀들)을 포함한다. 스캔 체인(510)의 입력부(510I)는 기록될 수 있지만 판독될 수는 없고, OCD 셀(530)은 스캔 체인(510)에서 개방 회로 상태를 초래하도록 구성된다.
스캔 체인(510)은 시스템(502)으로부터 (예를 들어, TAP 또는 다른 테스트 액세스 인터페이스로의) OCD 셀(530) 및 TDO 출력에 커플링되는 스캔 체인(510)의 출력부(510O)를 포함한다. 스캔 체인(510)의 출력부(510O)는 복수의 셀들(512O)(예시적으로, 16개의 셀들)을 포함한다. 스캔 체인(510)의 출력부(510O)는 판독될 수 있지만 기록될 수는 없고, OCD 셀(530)은 스캔 체인(510)에서 개방 회로 상태를 초래하도록 구성된다.
OCD 셀(530)은 임의의 적합한 방식으로 구현될 수도 있다. 일 실시예에서, OCD 셀(530)은 도 3의 OCD 셀(300)로서 구현되거나, 임의의 다른 적합한 OCD 셀 또는 다른 적합한 스캔 체인 보안 컴포넌트를 사용하여 구현될 수도 있다. OCD 셀(530)의 TDI 입력(명확화를 위해 생략되지만, 도 3의 OCD 셀(300)의 TDI 입력(361)과 유사함)은 시스템(502)에 대한 TDI 입력으로부터 가장 먼 스캔 체인(510)의 입력부(510I)의 셀에 커플링된다. OCD 셀(530)의 TDO 출력(명확화를 위해 생략되지만, 도 3의 OCD 셀(300)의 TDO 출력(362)과 유사함)은 시스템(502)으로부터의 TDO 출력으로부터 가장 먼 스캔 체인(510)의 출력부(510O)의 셀에 커플링된다. OCD 셀(530)은 제어 신호(예시적으로, OCD_active 신호(535))를 통해 암호화 코어(520)를 활성화시키도록 구성된다.
암호화 코어(520)는 챌린지 기반 인증 방법에서의 챌린지의 충족에 응답하여 제어 신호(예시적으로, SecureRST 신호(525))를 생성하기 위해 구성된다.
일 실시예에서, 챌린지 기반 인증 방법은 다음과 같이 진행한다. 암호화 코어(520)는 OCD 셀(530)로부터 암호화 코어(520)에 제공된 OCD_active 신호(535)를 통해 OCD 셀(530)에 의해 인에이블된다. 인에이블된 것에 응답하여, 암호화 코어(520)는 스캔 체인(510)의 출력부(510O)에 챌린지 값을 기록함으로써 챌린지를 이슈(issue)한다. 암호화 코어(520)는 암호화 알고리즘을 사용하여 챌린지 값을 생성한다. 제어기(501)는 스캔 동작을 통해 스캔 체인(510)의 출력부(510O)로부터 챌린지 값을 판독한다. 제어기(501)는 연관된 응답 값을 계산하기 위해 챌린지 값을 사용한다. 제어기(501)는 암호화 알고리즘을 사용하여 응답 값을 계산한다. 제어기(501)는 스캔 동작을 통해 응답 값을 스캔 체인(510)의 입력부(510I)에 기록한다. 따라서, 제어기(501)는 챌린지 기반 인증 방법에 대한 응답을 계산하기 위해 구성된 응답 컴포넌트로서 동작하도록 구성된다. 암호화 코어(520)는 스캔 체인(510)의 입력부(510I)로부터의 응답 값을 판독하고 그 응답 값의 검증을 시도한다. 암호화 코어(520)가 챌린지 값을 인증하면(즉, 챌린지가 충족되거나 만족되면), 암호화 코어(520)는 SecureRST 신호(525)를 생성한다(즉, 스캔 체인(510)에서의 개방 회로 상태가 제거되어서, 스캔 체인(510)의 정상 사용을 인에이블하기 위해 스캔 체인(510)을 잠금해제시킨다). 암호화 코어(520)가 챌린지 값을 인증하지 않으면(즉, 챌린지가 충족되지 않으면), 암호화 코어(520)는 SecureRST 신호(525)를 생성하지 않는다(즉, 스캔 체인(510)에서의 개방 회로 상태가 유지되어서, 스캔 체인(510)은 잠금을 유지하고 스캔 체인(510)의 정상 사용이 방지된다).
시스템(502)은 개방 회로 상태를 제거하고 스캔 체인(510)의 정상 사용을 허용하도록 OCD 셀(530)을 트리거하기 위해, OCD 셀(530)이 스캔 체인(510)에서 개방 회로 상태를 초래하도록 구성될 때 챌린지 기반 인증 방법을 개시하도록 구성된다.
챌린지 값 및 응답 값은 스캔 체인(510)의 입력부 및 출력부(510I 및 510O) 각각의 사이즈들에 의존할 수도 있는 임의의 적합한 길이들을 가질 수도 있다. 일 실시예에서, 챌린지 값 및 응답 값의 길이는 스캔 체인(510)의 입력부 및 출력부(510I 및 510O)의 길이들 이하이다.
챌린지 값 및 응답 값은, 악의적인 공격자가 챌린지 및 응답 값들을 알아야 할 뿐만 아니라 개방 회로 상태를 제거하여 스캔 체인의 정상 사용을 재확립하기 위해 챌린지 값을 판독할 정확한 위치 및 응답 값을 배치할 정확한 위치를 또한 알아야 하기 때문에, 스캔 체인(510)의 입력부 및 출력부(510I 및 510O)내의 임의의 적합한 위치들로 스캐닝될 수도 있어서, 더 강력한 보안을 제공한다.
도 5의 예에서, 챌린지 값 및 응답 값 각각은 스캔 체인(510)의 입력부 및 출력부(510I 및 510O) 각각의 비트 포지션 3 내지 12를 점유하는 10 비트 값들이다(여기서, 입력부(510I)의 비트 포지션 0은 시스템(502)의 TDI에 인접하고 출력부(510O)의 비트 포지션 0은 OCD 셀(530)의 TDO에 인접한다). 챌린지 값 및 응답 값이 스캔 체인(510)의 입력부 및 출력부(510I 및 510O)내의 임의의 다른 적합한 위치로부터 판독될 수도 있는 비트들의 임의의 다른 적합한 번호들을 사용할 수도 있다는 것이 이해될 것이다.
테스트 액세스 인터페이스를 통해 시스템(502)에 액세스하기 위해 구성되는 제어기(501)가 챌린지 기반 인증 방법에 대한 응답을 계산하는 응답 컴포넌트로서 동작하는 실시예들에 관하여 주로 도시하고 설명하였지만, 임의의 다른 원격 컴포넌트들이 챌린지 기반 인증 방법에 대한 응답을 계산할 수도 있다는 것이 이해될 것이다.
챌린지 및 응답 값들이 스캔 체인(510)으로부터 획득되는 실시예들에 관하여 본 명세서에서 주로 도시하고 설명하였지만, 챌린지 및/또는 응답 값들은 이러한 값들의 임의의 다른 적합한 소스로부터 획득될 수도 있다는 것이 이해될 것이다.
일 실시예에서, 예를 들어, 버퍼 기반 방식(들)(예를 들어, 도 4b에서 보안 키를 획득하기 위해 사용된 버퍼 기반 방식과 유사)이 챌린지 및/또는 응답 값들을 획득하기 위해 이용될 수도 있다. 예를 들어, 단일 버퍼가 챌린지 및 응답 값들 양자를 저장하기 위해 사용될 수도 있다. 예를 들어, 챌린지 버퍼가 챌린지 값을 저장하기 위해 사용될 수도 있고/있거나 응답 버퍼가 응답 값을 저장하기 위해 사용될 수도 있다. 이러한 버퍼 방식들의 구현이 도 4b의 버퍼 방식의 구현과 유사(즉, 도 4b의 버퍼 방식을 사용하는 도 4a의 변형과 유사)할 수도 있다는 것이 이해될 것이다.
일 실시예에서, 예를 들어, 챌린지 및/또는 응답 값들은 시스템(500)(예를 들어, 상이한 스캔 체인)과 완전하게 독립적인 소스로부터 획득될 수도 있다.
챌린지 및/또는 응답 값들이 임의의 다른 적합한 소스(들)로부터 획득될 수도 있다는 것이 이해될 것이다.
스캔 체인의 정상 사용을 재-인에이블하기 위해 제어 신호의 생성을 트리거하도록 챌린지 기반 인증 방법을 사용하는 특정한 실시예들에 관하여 주로 도시하고 설명하였지만, 스캔 체인의 정상 사용을 재-인에이블하기 위해 제어 신호의 생성을 트리거하도록 챌린지 기반 인증 방법을 사용하는 것이 임의의 다른 적합한 방식으로 구현될 수도 있다는 것이 이해될 것이다. 이러한 제어 신호들의 생성이 OCD 셀들 또는 임의의 다른 적합한 스캔 체인 보안 컴포넌트들을 제어하기 위해 수행될 수도 있다는 것이 더 이해될 것이다.
OCD 셀이 스캔 체인의 중단의 포인트가 스캔 체인상의 OCD 셀 (예를 들어, 도 3의 OCD 셀(300)) 직전인 단일 디바이스로서 구현되는 실시예들에 관하여 주로 본 명세서에서 도시하고 설명하였지만, 일 실시예에서, OCD 셀은 스캔 체인의 중단의 포인트가 OCD 레지스터들과는 상이한 위치에 있도록 변경될 수도 있다. 하나의 이러한 실시예에서, OCD 셀의 제 1 부분이 스캔 체인에서의 제 1 위치에 배치되고 OCD 셀의 제 2 부분이 스캔 체인에서의 제 2 위치에 배치되고, 여기서, 제 1 및 제 2 위치들은 스캔 체인내의 어디든지 일 수도 있다. 예시적인 실시예가 도 6에 관하여 도시되고 설명된다.
도 6은 스캔 체인 보안을 제어하는데 사용하기 위해 구성된 원격 OCD 셀의 일 실시예를 도시한다.
도 6에 도시되어 있는 바와 같이, 원격 OCD 셀(600)의 동작은 도 3의 OCD 셀(300)의 동작과 동일하지만(따라서, 원격 OCD 셀(600)의 컴포넌트들의 넘버링(numbering)은 도 3의 OCD 셀(300)의 컴포넌트들의 넘버링과 동일함), 원격 OCD 셀(600)은 (도 3의 OCD 셀(300)과 같이 스캔 체인의 단일 위치내에서 구현된 단일 물리적 디바이스를 사용하기 보다는) 스캔 체인내의 2개의 상이한 위치들에 배치된 2개의 물리적 디바이스들을 사용하여 구현된다.
도 6에 도시되어 있는 바와 같이, OCD 셀(300)의 입력 MUX(350)는 제 1 스캔 체인 위치(610)내에 배치되고 OCD 셀(300)의 나머지 컴포넌트들(예를 들어, OCD 레지스터(310), OCD 입력 MUX(320), UpOCD 레지스터(330), UpOCD 입력 MUX(340), 및 관련 컴포넌트들)은 제 2 스캔 체인 위치(620)내에 배치되어서, 원격 OCD 셀(600)을 형성한다. 제 1 스캔 체인 위치(610) 및 제 2 스캔 체인 위치(620)는 스캔 체인상의 어디에나 위치될 수도 있다.
이와 같이, 스캔 체인 중단 포인트가 제 1 스캔 체인 위치(610)에서 입력 MUX(350)의 출력에 위치되고 입력 MUX(350)가 제 2 스캔 체인 위치(620)에서 SecureRST 신호(369)의 제어하에서 UpOCD 레지스터(350)에 의해 생성된 제어 신호를 통해 제어되기 때문에, 스캔 체인 중단 포인트는 스캔 체인 중단 제어 로직의 위치로부터 물리적으로 원격이다. 이러한 방식으로, 설계자는 스캔 체인 중단 제어 로직의 위치를 은폐할 수 있어서, 스캔 체인의 정상 사용에 대한 액세스를 제어하는 추가의 보안을 제공한다.
단일 OCD 셀(예를 들어, 도 3의 OCD 셀(300) 또는 도 6의 원격 OCD 셀(600))이 스캔 체인 보안을 제공하기 위해 사용되는 실시예들에 관하여 본 명세서에서 주로 도시하고 설명하였지만, 다른 실시예들에서는, 스캔 체인 보안의 레벨이 더 강화되도록 다중의 OCD 셀들이 스캔 체인 보안을 제공하기 위해 결합하여 사용될 수도 있다.
이러한 실시예들에서, 다중의 OCD 셀들은 하나 이상의 셀 결합 아키텍처 타입들을 사용하여(예를 들어, 스캔 체인 액세스를 제공하기 위해 OCD 셀들의 결합들을 사용하는 OCD 셀들의 캐스케이딩(cascading), OCD 셀들의 연동(interlocking), 및 유사한 기법들 중 하나 이상을 사용하여) 구현될 수도 있다.
일 실시예에서, 예를 들어, (예를 들어, 도 4a에 관하여 도시하고 설명한 바와 같은) 다중 또는 더욱 많은 보안 키 기반 SecureRST 생성 구현들이 스캔 체인의 정상 사용에 대한 액세스를 보안하기 위해 스캔 체인내에서 교대로 캐스케이딩될 수도 있다.
일 실시예에서, 예를 들어, (예를 들어, 도 4a 및/또는 도 4b에 관하여 도시하고 설명한 바와 같은) SecureRST 생성을 위한 보안 키 기반 구현 및 (예를 들어, 도 5에 관하여 도시하고 설명한 바와 같은) SecureRST 생성 구현을 위한 챌린지 기반 인증 방법의 다양한 결합들이 스캔 체인의 정상 사용에 대한 액세스 보안하기 위해 사용될 수도 있다.
일 실시예에서, 예를 들어, 다중의 시간-캐스케이딩된 OCD 셀들이 보안 스캔 체인 액세스를 제공하기 위해 이용될 수도 있다. 하나의 이러한 실시예에서, 예를 들어, OCD 셀들 각각은 스캔 체인 액세스를 잠금해제하기 위해 특정한 시간에 잠금해제되어야 하고, 그렇지 않으면, 스캔 체인에 대한 잠금이 재선언된다. 이것은 임의의 적합한 방식으로 구현될 수도 있다.
이러한 OCD 셀 타입들, SecureRST 생성 구현들/방법들, 및/또는 OCD 셀 결합 아키텍처들의 다양한 다른 배열들이 (예를 들어, 도 3의 하나 이상의 OCD 셀들(300) 및/또는 도 6의 하나 이상의 원격 OCD 셀들(600)을 사용하여, 도 4a 및/또는 도 4b의 SecureRST 생성을 위한 보안 키 기반 구현들 중 하나 이상을 사용하여, 도 5의 SecureRST 생성을 위한 하나 이상의 챌린지 기반 인증 방법들을 사용하여, 뿐만 아니라 이들의 다양한 조합을 사용하여) 스캔 체인의 정상 사용에 대한 액세스를 보안하기 위해 사용될 수도 있다는 것이 이해될 것이다.
이러한 실시예들에서, (예를 들어, 도 6의 원격 OCD 셀(600)과 같은) 원격 OCD 셀들이 동일한 스캔 체인의 동일한 계층 레벨내의 상이한 위치들에서 중단 포인트와 제어 로직의 분리로 구성될 수도 있을 뿐만 아니라 상이한 스캔 체인들내의 동일한 스캔의 상이한 계층 레벨들에서 중단 포인트와 제어 로직의 분리를 제공하도록 구성될 수도 있고, 또한 이들의 다양한 조합으로 구성될 수도 있다는 것이 이해될 것이다.
이러한 실시예들에서, 각 OCD 셀이 (예를 들어, 단지 하나의 스캔 레지스터(2 비트) 및 3개의 멀티플렉서들로 이루어진) 간단한 저비용 셀이기 때문에, 동일한 시스템내에서 다중의 OCD 셀들의 사용은 강화된 스캔 체인 보안을 제공하는 비용 효율적인 방식이라는 것이 이해될 것이다.
SecureRST 신호가 스캔 체인 보안 컴포넌트가 배치되는 시스템내에서 생성되는 실시예들에 관하여 본 명세서에서 주로 도시하고 설명하였지만, SecureRST 신호는 스캔 체인 보안 컴포넌트가 배치되는 시스템의 외부의 위치들을 포함하는 임의의 적합한 위치에서 생성될 수도 있다.
일 실시예에서, 예를 들어, 칩상의 프로세서는 SecureRST 신호를 생성할 때를 결정하기 위해 인증 알고리즘을 수행하도록 구성될 수도 있다. 이러한 실시예에서, SecureRST 신호의 생성이 프로세서에 의해 제어되기 때문에, 스캔 체인 보안은 프로세서에 의해 제어되고, 따라서, 스캔 체인 보안을 제어하기 위해 다수의 가능성들이 이용가능하다. 이러한 실시예에서, 예를 들어, 프로세서는 (1) (예를 들어, 본 명세서에 도시되고 설명한 하나 이상의 스캔 체인 보안 실시예들을 사용하여 스캔 체인내에서 생성된 개방 회로 상태를 제거함으로써) 시스템의 스캔 체인의 정상 사용을 재-인에이블함으로써 시스템을 "테스트 모드"에 두도록 프로세서에게 명령하고 (2) 테스팅의 완료시에, (예를 들어, 본 명세서에 도시되고 설명한 하나 이상의 OCD 셀들 또는 다른 실시예들의 사용을 통해서 스캔 체인에서 개방 회로 상태를 재선언함으로써) 스캔 체인의 정상 사용을 방지하기 위해 스캔 체인을 보안하도록 프로세서에 명령하기 위해 원격으로 액세스될 수도 있어서, 시스템은 테스팅의 완료에 후속하여 보안 상태에 다시 배치된다. 이러한 실시예들에서, 프로세서에 대한 원격 액세스는 예를 들어, 직접 물리적 접속을 통해, 네트워킹된 접속(예를 들어, 인터넷 접속 또는 다른 적합한 네트워크 접속)을 통해 임의의 적합한 방식으로 구현될 수도 있다. 이러한 타입의 스캔 체인 보안 제어가 현장 및/또는 원격 테스팅, 메인터넌스, 업데이트 등 뿐만 아니라 이들의 다양한 조합과 같은 애플리케이션들에 대해 유익하다는 것이 이해될 것이다.
본 명세서에 설명되고 당업자에 의해 이해되는 바와 같이, 대부분의 JTAG 시스템들에서, TAP는 시스템에 대한 액세스의 단독 포인트이다. 1149.1 TAP의 구성은 종래 기술에 알려져 있다. 1149.1 TAP는 시스템의 스캔 체인에 대한 액세스를 인에이블한다. 1149.1 TAP는 표준화된 FSM(Finite State Machine), 및 그것의 행동을 정의하는 명령 레지스터(IR)에 의해 구성된다. 1149.1 TAP는 또한 바이패스 레지스터의 포함을 통해 바이패스 기능을 지원한다: 특정한 명령(즉, 바이패스)이 IR에 설정될 때, 1149.1 TAP는 투명으로서 설정되고 단지 하나의 비트(즉, 바이패스 레지스터의 비트)가 스캔 체인에 존재한다. 이것은 다중의 JTAG 시스템들이 함께 체인화될 때 유용한 JTAG의 기본 특징이다. 일 실시예에서, 스캔 체인 보안은 OCD 셀은 시스템의 1149.1 TAP내에 배치함으로써 제공된다. 시스템의 1149.1 TAP의 제어를 통해 스캔 체인 보안을 제공하는 예시적인 실시예가 도 7에 관하여 도시되고 설명된다.
도 7은 TAP가 JTAG 시스템의 스캔 체인에 대한 보안을 제공하기 위해 구성되는 JTAG 시스템의 TAP의 일 실시예를 도시한다.
도 7에 도시되어 있는 바와 같이, TAP(700)는 1149.1 TAP의 변경 버전이다. TAP(700)는 1149.1 TAP의 명령 레지스터(IR)의 시작에서 OCD 셀(710)의 삽입을 통해, 1149.1 표준에서 정의된 바와 같이 1149.1 TAP를 변경함으로써 형성된다. OCD 셀(710)은 도 3에 관하여 도시하고 설명한 바와 같은 OCD 셀(300)과 같은 임의의 적합한 OCD 셀일 수도 있다. IR의 시작에 OCD 셀(710)을 배치함으로써, TAP에 대한 바이패스-데드락(BYPASS-DEADLOCK) 상태를 정의하는 것이 가능해진다. 이러한 경우에서, 명령이 설정되면, TAP(700)는 바이패스 모드에 놓이고, OCD 셀(710)은 IR 상태를 잠금하여, IR 상태의 변경이 불가능하다. 그 결과, JTAG 시스템은 SecureRST 신호가 IR 상태를 잠금해제하기 위해 생성될 때까지 완전하게 액세스불가능해진다.
이러한 실시예에서, IR 상태를 잠금해제하여 JTAG 시스템에 대한 액세스를 제공하기 위해 구성된 SecureRST 신호가 임의의 적합한 방식으로 생성될 수도 있다.
일 실시예에서, SecureRST 신호는 본 명세서에 도시되고 설명한 SecureRST 신호 생성의 임의의 방식을 사용하여 생성된다.
일 실시예에서, SecureRST 신호는 칩 프로세서들 중 하나에 의해 생성된다.
일 실시예에서, SecureRST 신호는 다른 JTAG 시스템의 스캔 체인으로부터 수신된다.
이러한 실시예에서, TAP내에 개방 회로 상태를 도입함으로써, 연관된 시스템의 전체 스캔 체인이 제어가능하게 잠금 및 잠금해제될 수도 있다.
스캔 체인에 대한 액세스를 잠금해제하는 특정한 실시예들에 관하여 상기에 도시하고 상술하였지만, 일 실시예에서, 하나 이상의 특수 TAP 시퀀스들이 스캔 체인에 대한 액세스를 잠금해제하기 위해 활용될 수도 있다. 이러한 실시예에서, 엄밀한 JTAG 용어들에서 직접적인 의미 또는 영향을 갖지 않는 TAP FSM에서의 특수한 트랜지션(transistion)들이 스캔 체인에 대한 액세스를 잠금해제하기 위해 사용될 수도 있다. 이러한 특수한 트랜지션들은 (예를 들어, IEEE 1149.1 표준상에 다른 프로토콜들을 중첩시키는 것과 같은) 다른 목적들을 위해 사용될 수도 있고, ScanBridge 및 IEEE 1149.7 접근방식들의 핵심이다. 특수한 TAP 트랜지션 시퀀스들을 사용함으로써, 이러한 접근방식들은 새로운 시스템 상태들을 도입하는 것 및 일반 JTAG에서는 통상적으로 가능하지 않는 구성들에서 데이터를 스캔하는 것 양자가 가능하다. 그 결과, ScanBridge, IEEE 1149.7 및 다른 유사한 접근방식들이 스캔 체인에 대한 액세스를 잠금해제하기 위해 사용될 수도 있다. 스캔 체인에 대한 액세스를 잠금해제하는 이러한 기법은 본 명세서에 도시하고 설명하는 임의의 다른 OCD 기반 실시예들과 함께 사용될 수도 있다.
도 8은 스캔 체인에서 개방 회로 상태를 생성하는 방법의 일 실시예를 도시한다. 일 실시예에서, 도 8의 방법(800)은 본 명세서에 도시하고 설명한 OCD 셀과 같은 스캔 체인과 연관된 스캔 체인 보안 컴포넌트에 의해 수행된다. 단계(802)에서, 방법(800)이 시작한다. 단계(804)에서, 스캔 레지스터 값이 수신된다. 스캔 레지스터 값은 스캔 체인 보안 컴포넌트에 의해 수신된다. 스캔 레지스터 값은 스캔 체인을 통해 수신된다. 단계(806)에서, 개방 회로 상태가 스캔 레지스터 값에 응답하여 스캔 체인내에서 생성된다. 단계(808)에서, 방법(800)이 종료한다. 본 명세서에 설명한 바와 같이, 개방 회로 상태는 스캔 체인으로부터 개방 회로 상태의 제거를 트리거하는 제어 신호가 수신될 때까지 스캔 체인의 정상 사용을 방지한다.
도 9는 스캔 체인으로부터 개방 회로 상태를 제거하는 제어 신호를 생성하는 방법의 일 실시예를 도시한다. 일 실시예에서, 도 9의 방법(900)은 보안 검증 컴포넌트(들), 예를 들어, 키 체커 기능, 챌린지 기반 인증 컴포넌트(들) 등에 의해 수행된다.
단계(902)에서, 방법(900)이 시작한다.
단계(904)에서, 보안 검증이 수행된다. 보안 검증은 임의의 적합한 방식, 예를 들어, 보안 키의 검증, 챌린지 기반 인증 프로세스의 사용 등으로 수행될 수도 있다.
단계(906)에서, 보안 검증이 성공인지에 관한 결정이 이루어진다. 보안 검증이 성공이 아니면, 방법(900)은 단계(912)로 진행하고, 여기서, 방법(900)은 스캔 체인으로부터 개방 회로 상태를 제거하는데 사용하기 위해 구성된 제어 신호를 생성하지 않고 종료된다(즉, 스캔 체인의 정상 사용이 방지된다). 보안 검증이 성공이면, 방법(900)은 단계(908)로 진행한다.
단계(908)에서, 제어 신호가 생성된다. 제어 신호는 스캔 체인으로부터 개방 회로 상태를 제거하는데(즉, 스캔 체인의 정상 사용을 재-인에이블) 사용하기 위해 생성된다.
단계(910)에서, 제어 신호는 그 제어 신호에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하는데 사용하기 위해 구성된 컴포넌트로 전파된다. 단계(910)로부터, 방법(900)은 단계(912)로 진행한다.
단계(912)에서, 방법(900)이 종료한다.
도 10은 스캔 체인으로부터 개방 회로 상태를 제거하는 제어 신호를 사용하는 방법의 일 실시예를 도시한다. 일 실시예에서, 도 10의 방법(1000)은 본 명세서에 도시하고 설명한 OCD 셀과 같은 스캔 체인과 연관된 스캔 체인 보안 컴포넌트에 의해 수행된다. 단계(1002)에서, 방법(1000)이 시작한다. 단계(1004)에서, 제어 신호가 수신된다. 제어 신호는 스캔 체인 보안 컴포넌트에 의해 수신된다. 제어 신호는 임의의 적합한 소스로부터 수신될 수도 있다. 단계(1006)에서, 스캔 체인내의 개방 회로 상태가 제어 신호에 응답하여 스캔 체인으로부터 제거된다. 단계(1008)에서, 방법(1000)이 종료한다. 본 명세서에 설명한 바와 같이, 제어 신호에 응답하여 개방 회로 상태를 제거하는 것은 스캔 체인의 정상 사용을 재-인에이블한다.
특정한 구성(예시적으로, 도 3 및 도 6에 관하여 도시하고 설명한 OCD 셀의 실시예)을 갖는 OCD 셀의 사용에 관하여 본 명세서에서 주로 도시하고 설명하였지만, 임의의 다른 적합한 구성을 갖는 임의의 다른 적합한 OCD 셀이 스캔 체인 보안을 제공하기 위해 사용될 수도 있다는 것이 이해될 것이다.
하나 이상의 OCD 셀들 중 하나의 사용에 관하여 본 명세서에서 주로 도시하고 설명하였지만, 임의의 다른 적합한 스캔 체인 보안 컴포넌트(들)가 스캔 체인 보안을 제공하기 위해 OCD 셀의 사용과 함께 및/또는 그 대신에 사용될 수도 있다는 것이 이해될 것이다.
도 11은 본 명세서에 설명된 기능들을 수행하는데 사용하기 위해 적합한 컴퓨터의 하이-레벨 블록도를 도시한다.
도 11에 도시한 바와 같이, 컴퓨터(1100)는 프로세서 엘리먼트(1102)(예를 들어, 중앙 처리 유닛(CPU) 및/또는 임의의 다른 적합한 프로세서(들)), 메모리(1104)(예를 들어, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등), 협력 모듈/프로세스(1105), 및 다양한 입/출력 디바이스들(1106)(예를 들어, (키보드, 키패드, 마우스 등과 같은) 사용자 입력 디바이스들, (디스플레이, 스피커와 같은) 사용자 출력 디바이스, 입력 포트, 출력 포트, 수신기, 송신기, 및 저장 디바이스들(예를 들어, 테이프 드라이브, 플로피 드라이브, 하드 디스크 드라이브, 컴팩트 디스크 드라이브 등))을 포함한다.
본 명세서에 도시하고 설명한 기능들이 예를 들어, 범용 컴퓨터, 하나 이상의 응용 주문형 집적 회로(ASIC), 및/또는 임의의 다른 하드웨어 등가물들을 사용하여 소프트웨어 및/또는 하드웨어에서 구현될 수도 있다는 것이 이해될 것이다. 일 실시예에서, 협력 프로세스(1105)는 메모리(1104)상에 로딩될 수 있고 본 명세서에서 논의한 바와 같은 기능들을 구현하기 위해 프로세서(1102)에 의해 실행될 수 있다. 따라서, (연관된 데이터 구조들을 포함하는) 협력 프로세스(1105)는 컴퓨터 판독가능 저장 매체, 예를 들어, RAM 메모리, 자기 또는 광 드라이브 또는 디스켓 등에 저장될 수 있다.
도 11에 도시한 컴퓨터(1100)가 본 명세서에 설명한 기능적 엘리먼트들 및/또는 본 명세서에 설명한 기능적 엘리먼트들의 일부들을 구현하는데 적합한 일반 아키텍처 및 기능을 제공한다는 것이 이해될 것이다. 예를 들어, 컴퓨터(1100)는 본 명세서에서 논의한 바와 같은 제어 신호들을 생성하는데 사용하는 검증 및/또는 인증 기능들을 수행하기 위해 구성된 테스팅 시스템(110), 피테스트 시스템(120), 원격 시스템들 등 중 하나 이상을 구현하는데 적합한 일반 아키텍처 및 기능을 제공한다.
소프트웨어 방법들로서 본 명세서에서 논의한 단계들 중 일부가 예를 들어, 다양한 방법 단계들을 수행하기 위해 프로세서와 협력하는 회로로서 하드웨어내에서 구현될 수도 있다는 것이 예상된다. 본 명세서에 설명한 기능들/엘리먼트들 중 일부가, 컴퓨터에 의해 프로세싱될 때, 컴퓨터 명령들이 컴퓨터의 동작을 구성하여 여기에 설명한 방법들 및/또는 기법들이 인보크되거나 그렇지 않으면 제공되는 컴퓨터 프로그램 제품으로서 구현될 수도 있다. 본 발명의 방법들을 인보크하는 명령들은 고정 또는 착탈식 매체에 저장될 수도 있고, 브로드캐스트 또는 다른 신호 베어링 매체에서 데이터 스트림을 통해 송신될 수도 있고/있거나 명령들에 따라 동작하는 컴퓨팅 디바이스내의 메모리내에 저장될 수도 있다.
다양한 실시예들의 양태들이 청구범위에 특정된다. 다양한 실시예들의 이들 및 다른 양태들은 아래의 넘버링된 구문(clause)들에서 특정된다.
1. 장치로서,
스캔 체인과의 연관을 위해 구성된 컴포넌트를 포함하고, 이 컴포넌트는 제어 신호에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하기 위해 구성되는, 장치.
2. 구문 1에 있어서, 컴포넌트는 제 2 제어 신호에 응답하여 스캔 체인에서 개방 회로 상태를 생성하기 위해 구성되는, 장치.
3. 구문 2에 있어서, 제 2 제어 신호는 스캔 레지스터로부터의 값을 포함하는, 장치.
4. 구문 3에 있어서, 스캔 레지스터 값은 스캔 체인을 통해 수신되는, 장치.
5. 구문 1에 있어서, 제어 신호는 스캔 체인으로부터 개방 회로 상태를 제거하는 유일한 수단인, 장치.
6. 구문 1에 있어서, 컴포넌트는 스캔 체인내에 배치되는, 장치.
7. 구문 1에 있어서, 스캔 체인은 제 1 스캔 체인이고, 컴포넌트는 제 1 스캔 체인내에 배치되고, 컴포넌트는 제 2 스캔 체인으로부터 제어 신호를 수신하는, 장치.
8. 구문 1에 있어서, 컴포넌트는 보안 키의 검증에 응답하여 제어 신호를 수신하는, 장치.
9. 구문 8에 있어서, 보안 키는 키 체커 기능에 의해 검증되는, 장치.
10. 구문 9에 있어서, 키 체커 기능은 스캔 체인의 일부로부터 보안 키를 판독하는, 장치.
11. 구문 10에 있어서, 컴포넌트는 스캔 체인내에 배치되고, 스캔 체인의 일부는 스캔 체인과 연관된 TAP로부터 TDI 입력 이후 및 컴포넌트 이전에 있는 스캔 체인의 입력부를 포함하는, 장치.
12. 구문 9에 있어서, 키 체커 기능은 그 키 체커 기능과 연관된 버퍼로부터 보안 키를 판독하는, 장치.
13. 구문 12에 있어서, 버퍼는 스캔 체인의 입력부 또는 다른 스캔 체인으로부터 보안 키를 수신하는, 장치.
14. 구문 1에 있어서, 컴포넌트는 챌린지 기반 인증의 충족에 응답하여 제어 신호를 수신하는, 장치.
15. 구문 14에 있어서, 컴포넌트는 그 컴포넌트가 활성이라는 표시를 인증 컴포넌트를 향해 전파하도록 구성되는, 장치.
16. 구문 15에 있어서, 인증 컴포넌트는,
컴포넌트가 활성이라는 표시를 수신하고;
챌린지 값을 생성하고;
챌린지 값을 사용하여 응답 값을 생성하기 위해 구성된 응답 컴포넌트를 향해 챌린지 값을 전파하고;
응답 컴포넌트로부터 응답 값을 수신하며;
응답 값이 챌린지 값에 대해 유효하다는 결정에 응답하여 제어 신호를 생성하기 위해 구성되는, 장치.
17. 구문 1에 있어서, 컴포넌트는 스캔 체인에 대한 액세스를 제어하기 위해 구성된 테스트 액세스 포트(TAP)내에 배치되는, 장치.
18. 구문 17에 있어서, 컴포넌트는 TAP의 명령 레지스터(IR) 이전에 배치되는, 장치.
19. 방법으로서,
스캔 체인과 연관된 컴포넌트에서 제어 신호를 수신하는 단계; 및
제어 신호에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하는 단계를 포함하는, 방법.
20. 장치로서,
스캔 체인;
제어 신호에 응답하여 스캔 체인으로부터 개방 회로 상태를 제거하기 위해 구성된 컴포넌트; 및
제어 신호를 생성하여 그 제어 신호를 컴포넌트에 제공하기 위해 구성된 신호 생성기를 포함하는, 장치.
본 발명의 교시들을 통합하는 다양한 실시예들이 본 명세서에 상세히 도시하고 설명하였지만, 당업자는 이들 교시들을 여전히 통합하는 다수의 다른 변화된 실시예들을 쉽게 발명할 수 있다.

Claims (10)

  1. 테스트 데이터 입력(Test Data Input: TDI) 인터페이스와 테스트 데이터 출력(Test Data Output: TDO) 인터페이스를 포함하는 테스트 액세스 포트(Text Access Port: TAP)와,
    상기 TAP와 통신 가능하게 연결된 스캔 체인(scan chain) - 상기 스캔 체인은 상기 TAP의 TDI 인터페이스와 상기 TAP의 TDO 인터페이스 사이에 통신 가능하게 연결된 복수의 셀을 포함함 - 을 포함하되,
    상기 복수의 셀 중 하나는,
    상기 스캔 체인을 통해 제 1 제어 신호를 수신하고 상기 제 1 제어 신호에 응답하여 상기 스캔 체인 내에 개방 회로 상태(open-circuit condition)를 생성하고,
    상기 스캔 체인과 상이한 시그널링 경로를 통해 제 2 제어 신호를 수신하고 상기 제 2 제어 신호에 응답하여 상기 스캔 체인으로부터 상기 개방 회로 상태를 제거하는
    스캔 체인 보안 제공 장치.
  2. 제 1 항에 있어서,
    인증 프로세스에 기초하여 상기 제 2 제어 신호를 생성하는 프로세서를 더 포함하는
    스캔 체인 보안 제공 장치.
  3. 제 1 항에 있어서,
    상기 제 1 제어 신호는 상기 스캔 체인의 스캔 레지스터로부터의 값을 포함하는
    스캔 체인 보안 제공 장치.
  4. 제 1 항에 있어서,
    상기 스캔 체인은 제 1 스캔 체인이며, 상기 시그널링 경로는 제 2 스캔 체인의 적어도 일부분을 포함하는
    스캔 체인 보안 제공 장치.
  5. 제 1 항에 있어서,
    보안 키를 검증하고, 상기 보안 키의 검증에 기초하여 상기 제 2 제어 신호를 생성하는 키 체커 기능부(key checker fuction)를 더 포함하는
    스캔 체인 보안 제공 장치.
  6. 제 5 항에 있어서,
    상기 키 체커 기능부는,
    상기 스캔 체인의 일부와,
    상기 키 체커 기능부와 연관된 버퍼 중 하나로부터 상기 보안 키를 판독하는
    스캔 체인 보안 제공 장치.
  7. 제 1 항에 있어서,
    챌린지 값을 생성하고,
    상기 챌린지 값에 기초하여 응답 값을 생성하도록 구성된 응답 컴포넌트를 향해 상기 챌린지 값을 전파하고,
    상기 응답 컴포넌트로부터 상기 응답 값을 수신하고,
    상기 응답 값이 상기 챌린지 값에 대해 유효하다는 결정에 응답하여 상기 제 2 제어 신호를 생성하는
    인증 컴포넌트를 더 포함하는
    스캔 체인 보안 제공 장치.
  8. 제 7 항에 있어서,
    상기 인증 컴포넌트는
    상기 챌린지 값을 상기 복수의 셀 중 하나와 상기 TAP의 TDO 인터페이스 사이의 상기 스캔 체인의 일부에 기록함으로써, 상기 응답 컴포넌트를 향해 상기 챌린지 값을 전파하고,
    상기 TAP의 TDI 인터페이스와 상기 복수의 셀 중 하나의 사이의 상기 스캔 체인의 일부로부터 상기 응답 값을 판독함으로써, 상기 응답 컴포넌트로부터 상기 응답 값을 수신하는
    스캔 체인 보안 제공 장치.
  9. 스캔 체인의 복수의 셀 중 하나에서 제 1 제어 신호를 수신하는 단계 - 상기스캔 체인은 TDI 인터페이스와 TDO 인터페이스를 포함하는 테스트 액세스 포트(TAP)와 통신 가능하게 연결되고, 상기 스캔 체인의 복수의 셀은 상기 TAP의 TDI 인터페이스와 상기 TAP의 TDO 인터페이스 사이에 통신 가능하게 연결되며, 상기 제 1 제어 신호는 상기 스캔 체인을 통해 상기 복수의 셀 중 하나에서 수신됨 - 와,
    상기 제 1 제어 신호에 응답하여 상기 스캔 체인 내에 개방 회로 상태를 생성하는 단계와,
    상기 스캔 체인의 복수의 셀 중 하나에서 제 2 제어 신호를 수신하는 단계 - 상기 제 2 제어 신호는 상기 스캔 체인과 상이한 시그널링 경로를 통해 수신됨 - 와,
    상기 제 2 제어 신호에 응답하여 상기 스캔 체인으로부터 상기 개방 회로 상태를 제거하는 단계를 포함하는
    스캔 체인 보안 제공 방법.
  10. 제 1 항에 있어서,
    상기 복수의 셀 중 하나는,
    상기 스캔 체인 내의 이전 셀의 출력과 연결된 제 1 입력 인터페이스와, 개방 회로에 연결된 제 2 입력 인터페이스와, 출력 인터페이스와, 제어 인터페이스를 포함하는 멀티플렉서와,
    상기 멀티플렉서의 상기 제어 인터페이스에 연결된 출력 인터페이스와 상기 시그널링 경로에 연결된 제어 인터페이스를 포함하는 레지스터를 포함하는
    스캔 체인 보안 제공 장치.
KR1020127032873A 2010-06-18 2011-06-13 스캔 체인 보안을 제공하는 방법 및 장치 KR101445473B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/818,707 US8495758B2 (en) 2010-06-18 2010-06-18 Method and apparatus for providing scan chain security
US12/818,707 2010-06-18
PCT/US2011/040152 WO2011159598A1 (en) 2010-06-18 2011-06-13 Method and apparatus for providing scan chain security

Publications (2)

Publication Number Publication Date
KR20130040202A KR20130040202A (ko) 2013-04-23
KR101445473B1 true KR101445473B1 (ko) 2014-09-26

Family

ID=44627566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127032873A KR101445473B1 (ko) 2010-06-18 2011-06-13 스캔 체인 보안을 제공하는 방법 및 장치

Country Status (7)

Country Link
US (1) US8495758B2 (ko)
EP (1) EP2583112B1 (ko)
JP (1) JP5480449B2 (ko)
KR (1) KR101445473B1 (ko)
CN (1) CN102947719B (ko)
SG (1) SG186193A1 (ko)
WO (1) WO2011159598A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495758B2 (en) * 2010-06-18 2013-07-23 Alcatel Lucent Method and apparatus for providing scan chain security
US8694951B1 (en) * 2012-10-02 2014-04-08 Lsi Corporation Core wrapping in the presence of an embedded wrapped core
US9224012B2 (en) * 2013-05-20 2015-12-29 Advanced Micro Devices, Inc. Debug functionality in a secure computing environment
US9026873B2 (en) * 2013-07-23 2015-05-05 Altera Coporation Method and apparatus for securing configuration scan chains of a programmable device
US9818000B2 (en) 2014-03-23 2017-11-14 Southern Methodist University Protecting hidden content in integrated circuits
US9940486B2 (en) * 2015-02-23 2018-04-10 Cisco Technology, Inc. Detection of hardware tampering
US20170205462A1 (en) * 2016-01-06 2017-07-20 Mentor Graphics Corporation Power-on self-test and in-system test
US10572675B2 (en) 2016-11-02 2020-02-25 Cisco Technology, Inc. Protecting and monitoring internal bus transactions
US10222417B1 (en) * 2016-11-28 2019-03-05 Cadence Design Systems, Inc. Securing access to integrated circuit scan mode and data
KR102665259B1 (ko) * 2017-02-01 2024-05-09 삼성전자주식회사 반도체 장치 및 반도체 장치의 테스트 방법
US10317464B2 (en) * 2017-05-08 2019-06-11 Xilinx, Inc. Dynamic scan chain reconfiguration in an integrated circuit
CN110659037B (zh) * 2019-09-25 2021-03-09 苏州浪潮智能科技有限公司 一种基于jtag的烧录装置
CN111130754B (zh) * 2019-12-16 2022-02-18 西安电子科技大学 一种扫描链的加密解密电路及集成电路
US10996271B1 (en) * 2019-12-22 2021-05-04 Apple Inc. Fast IJTAG
CN112098818B (zh) * 2020-11-02 2021-02-02 创意电子(南京)有限公司 一种基于标准边界扫描电路的sip器件测试系统
CN112532693A (zh) * 2020-11-10 2021-03-19 杭州神甲科技有限公司 具有网络保护能力的数据防泄漏方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108807A (en) * 1997-07-28 2000-08-22 Lucent Technologies Inc. Apparatus and method for hybrid pin control of boundary scan applications
EP1443338A1 (en) * 2003-02-03 2004-08-04 STMicroelectronics Limited Secure test arrangement
KR20060133523A (ko) * 2003-08-28 2006-12-26 텍사스 인스트루먼츠 인코포레이티드 JTAG 포트, TAP 링크 모듈, 및 Off-ChipTAP 인터페이스 포트를 갖는 집적회로
KR100997775B1 (ko) * 2010-06-17 2010-12-01 엘아이지넥스원 주식회사 Jtag 스캔 체인 시스템

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61188650A (ja) * 1985-02-15 1986-08-22 インテル・コ−ポレ−シヨン メモリのアクセスを制御する装置
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US6108007A (en) 1997-10-09 2000-08-22 Silicon Graphics, Inc. Method, system, and computer program product for increasing interpolation precision using multi-channel texture mapping
US6289480B1 (en) 1998-04-24 2001-09-11 National Semiconductor Corporation Circuitry for handling high impedance busses in a scan implementation
US7248069B2 (en) * 2003-08-11 2007-07-24 Freescale Semiconductor, Inc. Method and apparatus for providing security for debug circuitry
US7031868B2 (en) * 2003-09-15 2006-04-18 Rambus, Inc. Method and apparatus for performing testing of interconnections
EP1917535B1 (en) * 2005-08-10 2010-05-19 Nxp B.V. Testing of an integrated circuit that contains secret information
US7308656B1 (en) * 2005-10-04 2007-12-11 Xilinx, Inc. Method and apparatus for generating a boundary scan description and model
JP2008152421A (ja) * 2006-12-15 2008-07-03 Renesas Technology Corp 半導体集積回路
US7954022B2 (en) * 2008-01-30 2011-05-31 Alcatel-Lucent Usa Inc. Apparatus and method for controlling dynamic modification of a scan path
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US8495758B2 (en) * 2010-06-18 2013-07-23 Alcatel Lucent Method and apparatus for providing scan chain security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108807A (en) * 1997-07-28 2000-08-22 Lucent Technologies Inc. Apparatus and method for hybrid pin control of boundary scan applications
EP1443338A1 (en) * 2003-02-03 2004-08-04 STMicroelectronics Limited Secure test arrangement
KR20060133523A (ko) * 2003-08-28 2006-12-26 텍사스 인스트루먼츠 인코포레이티드 JTAG 포트, TAP 링크 모듈, 및 Off-ChipTAP 인터페이스 포트를 갖는 집적회로
KR100997775B1 (ko) * 2010-06-17 2010-12-01 엘아이지넥스원 주식회사 Jtag 스캔 체인 시스템

Also Published As

Publication number Publication date
CN102947719B (zh) 2015-12-16
JP2013535058A (ja) 2013-09-09
US8495758B2 (en) 2013-07-23
KR20130040202A (ko) 2013-04-23
JP5480449B2 (ja) 2014-04-23
SG186193A1 (en) 2013-01-30
EP2583112A1 (en) 2013-04-24
EP2583112B1 (en) 2015-07-29
CN102947719A (zh) 2013-02-27
US20110314514A1 (en) 2011-12-22
WO2011159598A1 (en) 2011-12-22

Similar Documents

Publication Publication Date Title
KR101445473B1 (ko) 스캔 체인 보안을 제공하는 방법 및 장치
Da Rolt et al. Test versus security: Past and present
Wang et al. IIPS: Infrastructure IP for secure SoC design
US7185249B2 (en) Method and apparatus for secure scan testing
US9081991B2 (en) Ring oscillator based design-for-trust
US8051345B2 (en) Method and apparatus for securing digital information on an integrated circuit during test operating modes
Karmakar et al. A scan obfuscation guided design-for-security approach for sequential circuits
US11693052B2 (en) Using embedded time-varying code generator to provide secure access to embedded content in an on-chip access architecture
US8120377B2 (en) Integrated circuit having secure access to test modes
US9727754B2 (en) Protecting chip settings using secured scan chains
Kamali et al. On designing secure and robust scan chain for protecting obfuscated logic
US8397079B2 (en) Method and apparatus for securing digital information on an integrated circuit read only memory during test operating modes
US20230177245A1 (en) System, method, computer-accessible medium, and circuit for crippling the oracle in logic locking
Kan et al. IJTAG integrity checking with chained hashing
Bhakthavatchalu et al. Verilog design of programmable JTAG controller for digital VLSI IC’s
US7966535B2 (en) Secure scan design
Di Natale et al. Manufacturing testing and security countermeasures
Fern et al. Pre-silicon formal verification of JTAG instruction opcodes for security
Chen et al. Striking a balance between SoC security and debug requirements
Praneeth et al. A Novel Architecture Design of a USB Module in Wireless Modem for IOT Applications
Zheng et al. A Low-overhead Solution for Obfuscating Scan Data Against Scan-based Side-channel Attacks
Nahiyan CAD Framework for Automated and Systematic Security Assessment of Modern SoCs
Zygmontowicz Securing IEEE 1687 scan chains using LSIBs and the comparison of common test hardware security methods
Tehranipoor et al. SoC Security Verification

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190829

Year of fee payment: 6