KR101022639B1 - 디버그 회로에 안전성을 제공하는 방법 및 장치 - Google Patents

디버그 회로에 안전성을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR101022639B1
KR101022639B1 KR1020067002820A KR20067002820A KR101022639B1 KR 101022639 B1 KR101022639 B1 KR 101022639B1 KR 1020067002820 A KR1020067002820 A KR 1020067002820A KR 20067002820 A KR20067002820 A KR 20067002820A KR 101022639 B1 KR101022639 B1 KR 101022639B1
Authority
KR
South Korea
Prior art keywords
debug
state
circuit
programming
authentication
Prior art date
Application number
KR1020067002820A
Other languages
English (en)
Other versions
KR20060060017A (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 KR20060060017A publication Critical patent/KR20060060017A/ko
Application granted granted Critical
Publication of KR101022639B1 publication Critical patent/KR101022639B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

본 발명은 디버그 회로(20), 특히 디버그 회로(20)에 대해 안전성을 제공하는 방법 및 장치에 관한 것이다. 일 실시예에 있어서, 복수의 비휘발성 요소들(38)은 디버그 회로(20)의 적어도 한 부분을 선택적으로 디스에이블 및 재-인에이블하는 단계를 제공하여 사용된다. 인증이 또한 사용될 수 있다. 본 발명은 IEEE에 의해 규정된 JTAG 디버그 인터페이스(JTAG debug interface)와 같은 표준 디버그 인터페이스들을 포함하는 어떠한 디버그 인터페이스도 사용할 수 있다.
Figure R1020067002820
디버그 회로, 집적 회로, 바이패스 안전 디버그, 디버그 포트, 인에이블 안전 디버그

Description

디버그 회로에 안전성을 제공하는 방법 및 장치{Method and apparatus for providing security for debug circuitry}
본 발명은 디버그 회로(debug circuitry), 특히 디버그 회로에 안전성을 제공하는 방법 및 장치에 관한 것이다.
집적 회로들에 대한 안전성은 집적 회로들이 점차로 안전성 지각 애플리케이션들에서 사용됨에 따라 점점 더 중요시되고 있다. 그러한 애플리케이션들의 몇 가지 예들로는 스마트 카드들, 이동 전화기들, 인터넷 통신 장치들 등등이 있다. 특히, 집적 회로의 하나 이상의 부분들에 부정적이거나 인증되지 않은 액세스에 대한 안전성을 제공하는 것이 종종 바람직하다. 많은 집적 회로들은 그 집적 회로로부터/집적 회로로 정보를 입력 및/또는 출력하기 위해 사용될 수 있는 단자들을 포함한다. 그러한 입력/출력 단자들은 집적 회로의 하나 이상의 부분들에 인증되지 않은 액세스에 대한 경로를 제공할 수 있다. 추가로, 집적 회로에 대한 몇 가지 입력/출력 단자들은 디버그, 에뮬레이션, 및/또는 테스트 목적들을 위해 사용될 수 있고, 또한 그 집적 회로의 하나 이상의 부분들에 인증되지 않은 액세스에 대한 경로를 제공할 수 있다.
집적 회로 디버그, 에뮬레이션, 및/또는 테스트 목적들을 위해 사용되는 하나의 공통 표준은 JTAG(Joint Test Action Group) IEEE(Institute of Electrical and Electronic Engineers) 1194.1 테스트 액세스 포트 및 경계 스캔 아키텍처로 공지되어 있다. 상기 표준 JTAG 인터페이스 이외에, 집적 회로들에 대해 사용되는 폭넓은 다양한 다른 디버그, 에뮬레이션, 및/또는 테스트 인터페이스들이 존재한다.
도 1은 본 발명의 일 실시예에 따른 집적 회로(10)를 블록도 형태로 도시하는 도면.
도 2는 본 발명의 일 실시예에 따른 도 1의 디버그 포트(debug port; 20)의 일부를 개략적인 블록도 및 부분적인 개략도 형태로 도시하는 도면.
도 3은 본 발명의 일 실시예에 따른 도 2의 디버그 회로(42)에 대해 안전성을 점진적으로 인에이블(enable) 및 디스에이블(disable)하는 방법을 상태도 형태로 도시하는 도면.
본 발명은 예의 방식으로 기술되고 첨부된 도면들이 본 발명을 제한하지 않으며, 동일 요소들에는 동일 부호들을 병기한다.
당업자는 도면에서의 요소들이 단순성과 명확성을 위해 반드시 비율에 따라 도시되지는 않았다는 것을 이해할 것이다. 예를 들어, 상기 요소들 중 몇 가지의 치수들은 본 발명의 실시예의 이해를 돕기 위해 다른 요소들에 비해 과장될 수 있 다.
용어들 "단언하다(assert)" 및 "부정하다(negate)"는 신호, 상태 비트, 또는 유사한 장치의 렌더링에 대해 언급할 때 그것의 논리적 사실 또는 논리적 거짓 상태 각각으로 사용된다. 논리적 사실 상태가 논리 레벨 1인 경우, 논리적 거짓 상태는 논리 레벨 0이다. 그리고, 논리적 사실 상태가 논리 레벨 0인 경우, 논리적 거짓 상태는 논리 레벨 1이다. 또한, 용어들 "논리 레벨(logic level)" 및 "논리 상태(logic state)"는 본 명세서에서 상호교환가능하게 사용된다. 본 명세서에서 사용되는 용어 "디버그"는 매우 포괄적으로 의미되고, 테스트 기능들뿐만 아니라 에뮬레이션을 포함할 것이다.
도 1은 본 발명의 일 실시예에 따른 집적 회로(IC)(10)를 블록도 형태로 도시한다. 일 실시예에서, IC(10)는 디버그 포트(20) 및 보호된 기능 회로(12)를 포함한다. 일 실시예에서, 보호된 기능 회로(12)는 통신 신호들(26)을 통해 서로 양방향으로 연결되고 디버그 포트(20)에 연결되는 프로세서(14), 다른 회로(16), 및 입력/출력(I/O) 회로(18)를 포함한다. 일 실시예에서, 프로세서(14)는 예를 들면, 중앙 처리 유닛, 디지털 신호 프로세서, 타이머 처리 유닛 등과 같은 어떠한 형태의 명령어들을 실행하는 프로세서일 수 있다. 일 실시예에서, 다른 회로(16)는 IC(10)의 하나 이상의 의도된 기능들을 수행하는 회로일 수 있지만, 그 의도된 기능을 수행하기 위해 명령어들의 실행을 반드시 요구하지는 않는다. 보호된 기능 회로의 대안적인 실시예들은 프로세서(14)만, 다른 회로(16)만, 또는 프로세서(14) 및 다른 회로(16) 양자 모두를 포함할 수 있다. 일 실시예에서, I/O 회로(18)는 IC(10) 외부에 있는 회로(도시되지 않음)로 통신하기 위해 하나 이상의 IC 단자들(24)에 연결된다. 본 발명의 대안적인 실시예들에서, I/O 회로(18)는 데이터/어드레스/제어 버스 구조를 포함하는 외부 버스 구조의 어떠한 형태를 포함할 수 있다. 그러나, IC(10)의 다른 실시예들은 예를 들면, 외부 버스를 갖지 않는 단일 칩 모드로 동작하는 IC(10)와 같이, I/O 회로(18) 및 IC 단자들(24)을 갖지 않을 수도 있다. 본 발명의 일 실시예에서, 디버그 포트(20)가 IC(10) 외부에 있는 디바이스들(도시되지 않음)과 통신하도록 허용하는, 하나 이상의 IC 단자들(22)에 디버그 포트(20)가 양방향으로 연결된다.
도 2는 본 발명의 일 실시예에 따른 도 1의 디버그 포트(20)의 일부를 도시한 블록도이다. 일 실시예에서, 디버그 포트(20)는 비휘발성 요소들(non-volatile elements; 38)에 대한 제어 및/또는 프로그래밍을 제공하기 위해 비휘발성 요소들(38)에 연결되는 제어 회로(46)를 포함한다. 본 발명의 일 실시예에서, 하나 이상의 비휘발성 요소들(38)은 한번 프로그래밍 가능한 메모리와 같은 일 회 프로그래밍 가능 메모리를 사용하여 형성될 수 있다. 본 발명의 대안적인 실시예들에서, 하나 이상의 비휘발성 요소들(38)은 퓨즈의 어떠한 형태를 사용하여 형성될 수 있다. 비휘발성 요소들(38)이 비휘발성 요소의 단지 하나의 형태만을 사용하여 형성될 수 있거나, 대안적으로 비휘발성 요소들의 복수의 서로 다른 형태들을 사용하여 형성될 수 있다는 것에 주의하자. 도 2에 도시된 실시예에서, 비휘발성 요소들(38)은 인에이블 안전 디버그 요소(enable secure debug element; 30), 바이패스 안전 디버그 요소(bypass secure debug element; 32), 재-인에이블 안전 디버그 요소(re-enable secure debug element; 34), 및 디스에이블 디버그 요소(disable debug element; 36)를 포함한다. 본 발명의 대안적인 실시예들은 어떠한 수의 비휘발성 요소들(38)도 사용할 수 있다. 제어 회로(46)는 비휘발성 요소들(38)의 논리 상태를 변경하기 위해 사용된다. 본 발명에 따른 일 실시예에서, 제어 회로(46)는 미리 결정된 양의 시간을 제공하기 위해 사용될 수 있는 카운터(47)를 포함한다.
디버그 인에이블 회로(debug enable circuitry; 40)는 비휘발성 요소들(38) 및 인증 회로(authentication circuitry; 44)로부터 신호들을 수신하고, 그러한 수신된 신호들에 기초하여 디버그 인에이블 회로(40)는 선택적으로 인에이블 디버그 신호(58)를 확인한다. 인에이블 디버그 신호(58)는 디버그 인에이블 회로(40)로부터 디버그 로직(debug logic; 43)으로 제공된다. 디버그 로직(43)은 인에이블 디버그 신호(58)에 의해 영향을 받는 디버그 회로(42)를 포함한다. 본 발명의 대안적인 실시예들에 있어서, 디버그 회로(42)는 디버그 로직(43)의 모두 또는 단지 일부만을 포함할 수 있다. 몇몇 실시예들에서, 디버그 로직(43)은 인에이블 디버그 신호(58)에 의해 인에이블 또는 디스에이블되지 않는 디버그 목적들을 위해 사용되는 다른 회로를 포함할 수 있다. 인에이블 디버그 신호(58)는 디버그 회로(42)에 의해 수행되는 하나 이상의 디버그 기능들을 인에이블하기 위해 디버그 회로(42)에 의해 사용된다. 디버그 회로(42)는 IC(10) 상에서 보호된 기능 회로(12)의 하나 이상의 부분들을 디버그하기 위해 사용될 수 있다(도 1 참조).
인증 회로(44)가 하드웨어 및 소프트웨어의 어떠한 조합을 사용하여 인증의 어떠한 형태도 수행할 수 있다. 추가로, 본 발명의 몇몇 실시예들은 인증 회로(44)를 전혀 사용하지 않을 수도 있다. 본 발명을 통해 사용될 수 있는 인증의 일례에 대해서, 본 명세서에 참고 자료로 포함되고 양수인에 의해 양도되어 2002년 3월 18일 출원된 미국 특허 제 10/100,462 호, "집적 회로 안전성 및 그의 방법(INTEGRATED CIRCUIT SECURITY AND METHOD THEREFOR)"을 참조하자.
상기 예시된 실시예에서, 디버그 인에이블 회로(40)는 OR 게이트(50), AND 게이트(52), 및 AND 게이트(52)를 사용하여 구현된다. 본 발명의 대안적인 실시예들은 어떠한 바람직한 회로를 사용하여 디버그 인에이블 회로(40)를 구현할 수 있다. 도 2에 예시된 특정 게이트들은 디버그 인에이블 회로(40)에 대해 단지 하나의 가능한 실시예이다. 도 2에 예시된 디버그 인에이블 회로의 실시예에 있어서, AND 게이트(54)는 바이패스 안전 디버그 요소(32)로부터 제 1 입력을 수신하고, 재-인에이블 안전 디버그 요소(34)로부터 제 2 입력을 수신한다. OR 게이트(50)는 인증 회로(44)로부터 제 1 입력을 수신하고, 인에이블 안전 디버그 요소(30)로부터 제 2 입력을 수신하고, AND 게이트(54)의 출력으로부터 제 3 입력을 수신한다. AND 게이트(52)는 OR 게이트(50)의 출력으로부터 제 1 입력을 수신하고, 디스에이블 디버그 요소(36)로부터 제 2 입력을 수신한다. 게이트들(50, 52, 54)을 사용하는 디버그 인에이블 회로(40)의 특정 실시예에 대해, 인에이블 안전 디버그 요소(30)는 초기에 로직 레벨 1이고, 바이패스 안전 디버그 요소(32)는 초기에 로직 레벨 0이고, 재-인에이블 안전 디버그 요소(34)는 초기에 로직 레벨 1이며, 디스에이블 디버그 요소(36)는 초기에 로직 레벨 1이다.
인증 회로(44)를 사용하는 발명의 실시예들에서, 인증 회로(44)는 제어 회로(46)에 양방향으로 연결될 수 있다. 본 발명의 몇몇 실시예들에서, 인증 회로(44)는 통신 신호들(26) 및/또는 IC 단자들(22)에 연결될 수 있다. 본 발명의 몇몇 실시예들에 있어서, 디버그 로직(43)은 통신 신호들(26) 및/또는 IC 단자들(22)에 연결될 수 있다.
도 3은 본 발명의 일 실시예에 따른 도 2의 디버그 회로(42)에서 점진적으로 인에이블 및 디스에이블 안전성에 대한 방법을 상태도 형태로 도시한다. 이러한 상태도의 목적들을 위해서, 본 발명의 다른 실시예들이 비휘발성 요소들(38)을 구현하기 위해 어떠한 바람직한 회로를 사용할 수 있을지라도, 비휘발성 요소들(38)이 퓨즈들로 구현될 수 있다고 가정된다. 도 3에 예시된 상태도는 상태(A)에서 시작한다. 본 발명의 일 실시예에서, 상태(A)는 IC(10)의 제조 후의 초기 상태이다. 예시된 상태(A)에서, 디버그 회로(42)가 인에이블되고, 보호된 기능 회로(12)로의 충분한 디버그 액세스가 사용가능하다(도 1 참조). 몇몇 실시예들에서, 인증은 상태(A)를 빠져나오기 위해 요구될 수 있고, 다른 실시예들에 있어서, 어떠한 인증도 상태(A)를 빠져나오기 위해 요구될 수 없다. 로직 레벨 1로부터 로직 레벨 0으로 영구적으로 전이하는 인에이블 안전 디버그 퓨즈(30)를 끊음으로써 상태(A)로부터 상태(B)가 입력될 수 있다.
초기의 안전성 상태, 상태(B)에서, 디버그 회로(42)는 안전하게 되고, 보호된 기능 회로(12)로의 어떠한 디버그 액세스도 사용가능하지 않다(도 1 참조). 그 후에, 상태(B)로부터 상태(C)로 전이하기 위해 사용되는 인증은 선택적으로 상태 (A)를 빠져나오기 위해 사용되는 인증과 동일하거나 서로 다를 수 있다는 것에 주의하자.
본 발명의 일 실시예에서, 상태(C)는 안전 디버그 인에이블 상태이다. 예시된 상태(C)에 있어서, 디버그 회로(42)는 인에이블되고 보호된 기능 회로(12)로의 완전한 디버그 액세스가 사용가능하다(도 1 참조). 본 발명의 대안적인 실시예들에 있어서, 상태(C)에서 인에이블되는 디버그 로직(43)의 하나 이상의 부분들이 상태(A)에서 인에이블되는 디버그 로직(43)의 하나 이상의 부분들과 동일하거나 서로 다를 수 있다는 것에 주의하자.
상태(C)로부터 상태(B)로의 복귀는 선택적이다. 상태(C)로부터 상태(B)로의 복귀가 존재하는 경우, 상기 복귀는 예를 들면, 하드웨어 리셋, 소프트웨어 리셋, 디버그 명령어, 또는 상태 변경을 자동적으로 일으키는 타임 아웃과 같은 어떠한 바람직한 메커니즘에 의해 일어날 수 있다. 타임 아웃이 상태(B)로 복귀하기 위해 사용되는 경우, 그 후에 디버그 회로(42)는 디버그 회로(42)를 재-인에이블한 후에 미리 결정된(고정되거나 사용자 프로그래밍 가능한) 시간의 양으로 디스에이블된다. 카운터(47)가 제어 회로(46)에 미리 결정된 시간의 양을 제공하기 위해 사용될 수 있다. 한 가지 가능한 예로써, 카운터(47)는 미리 결정된 시간의 양을 제공하기 위해 0으로 카운트되는 미리 결정된(고정되거나 사용자 프로그래밍 가능한) 값으로 로딩될 수 있다. 대안적인 실시예들에서, 어떠한 바람직한 방식으로 미리 결정된 시간의 양을 제공하기 위해 사용될 수 있다.
상태(D)는 로직 레벨 0으로부터 로직 레벨 1로 영구적으로 전이하는 바이패스 안전 디버그 퓨즈(32)를 끊음으로서 상태(C)로부터 입력될 수 있고, 따라서 도 2에 예시된 디버그 인에이블 회로(40)의 실시예에 적절한 입력들을 제공한다. 본 발명의 일 실시예에서, 상태(D)는 바이패스 안전 상태이다. 예시된 상태(D)에 있어서, 디버그 회로(42)가 인에이블되고 보호된 기능 회로(12)로의 완전한 디버그 액세스가 사용가능하다(도 1 참조). 다시, 본 발명의 대안적인 실시예들은 디버그 로직(43)의 모든 것 보다는, 디버그 로직(43)의 하나 이상의 부분들을 인에이블하기 위해 상태(D)를 사용할 수 있다. 디버그 회로(42)는 특정 시간에서 디스에이블 및/또는 재-인에이블 될 수 있는 디버그 로직(43)의 하나 이상의 부분들만을 표현한다. 몇몇 실시예들에서, 인증은 상태(D)에서 빠져나오기 위해 요구될 수 있고, 다른 실시예들에서, 어떠한 인증도 상태(D)에서 빠져나오기 위해 요구될 수 없다. 인증이 상태(D)를 빠져나오기 위해 사용되는 경우, 상태(D)로 빠져나오기 위해 사용되는 인증은 상태(A)로 빠져나오기 위해 선택적으로 사용되는 인증 및/또는 상태(B)로부터 상태(C)로 전이하기 위해 사용되는 인증과 동일하거나 서로 다를 수 있다. 본 발명의 대안적인 실시예들에 있어서, 상태(D)에서 인에이블되는 디버그 로직(43)의 하나 이상의 부분들은 상태(A) 및/또는 상태(C)에서 인에이블되는 디버그 로직(43)의 하나 이상의 부분들과 동일하거나 서로 다를 수 있다는 것에 주의하라.
상태(E)는 로직 레벨 1로부터 로직 레벨 0으로 영구적으로 전이하는 재-인에이블 안전 디버그 퓨즈(34)를 끊음으로써 상태(D)로부터 입력될 수 있고, 따라서 도 2에 예시된 디버그 인에이블 회로(40)의 실시예에 적절한 입력들을 제공한다. 본 발명의 일 실시예에서, 상태(E)는 재-인에이블 안전성 상태이다. 예시된 상태(E)에서, 디버그 회로(42)는 안전하게 되고 보호된 기능 회로(12)로의 어떠한 디버그 액세스도 사용가능하지 않다(도 1 참조). 그 후에, 인증은 상태(E)로부터 상태(F)로 전이하기 위해 사용된다. 다시, 인증의 어떠한 형태가 사용될 수 있다. 상태(E)로부터 상태(F)로 전이하기 위해 사용되는 인증이 선택적으로 상태(A)를 빠져나오기 위해 사용되는 인증 및/또는 상태(B)로부터 상태(C)로 전이하기 위해 사용되는 인증과 동일하거나 서로 다를 수 있다는 것을 주의하라.
본 발명의 일 실시예에서, 상태(F)는 안전 디버그 인에이블된 상태이다. 예시된 상태(F)에서, 디버그 회로(42)는 인에이블되고 보호된 기능 회로(12)로의 완전한 디버그 액세스가 사용가능하다(도 1 참조). 본 발명의 대안적인 실시예들에서, 상태(F)에서 인에이블되는 디버그 로직(43)의 하나 이상의 부분들이 상태(A) 및/또는 상태(C) 및/또는 상태(D)에서 인에이블되는 디버그 로직(43)의 하나 이상의 부분들과 동일하거나 서로 다를 수 있다는 것을 주의하라.
상태(F)로부터 상태(E)로의 복귀는 선택적이다. 상태(F)로부터 상태(E)로의 복귀가 존재하는 경우, 상기 복귀는 예를 들면, 하드웨어 리셋, 소프트웨어 리셋, 디버그 명령어, 또는 상태 변경을 자동적으로 일으키는 타임 아웃과 같은 어떠한 바람직한 메커니즘에 의해 일어날 수 있다. 타임 아웃이 상태(E)로 복귀하기 위해 사용되는 경우, 그 후에 디버그 회로(42)는 디버그 회로(42)를 재-인에이블한 후에 미리 결정된(고정되거나 사용자 프로그래밍 가능한) 시간의 양으로 디스에이블된다. 카운터(47)(도 2 참조)는 제어 회로(46)에 미리 결정된 시간의 양을 제공하기 위해 사용될 수 있다. 한 가지 가능한 예로써, 카운터(47)는 미리 결정된 시간의 양을 제공하기 위해 0으로 카운트되는 미리 결정된(고정되거나 사용자 프로그래밍 가능한) 값으로 로딩될 수 있다. 대안적인 실시예들에서, 어떠한 바람직한 방식이 미리 결정된 시간의 양을 제공하기 위해 사용될 수 있다.
본 발명의 일 실시예에서, 상태(G)는 디스에이블 상태이다. 상태(G)는 로직 레벨 1로부터 로직 레벨 0으로 영구적으로 전이하는 디스에이블 디버그 퓨즈(36)를 끊음으로써 상태(A), 상태(E), 또는 상태(F) 중 어느 하나로부터 입력될 수 있고, 따라서 도 2에 도시된 디버그 인에이블 회로(40)의 실시예에 적절한 입력들을 제공한다. 예시된 상태(G)에서, 디버그 회로(42)는 디스에이블되고 보호된 기능 회로(12)로의 어떠한 디버그 액세스도 사용가능하지 않다(도 1 참조). 본 발명의 일 실시예에 있어서, 상태(G)는 빠져나올 수 없는 최종 상태에 있도록 간주된다.
상술된 상태들(E, F, G)은 본 발명의 다양한 실시예들에서 구현될 수 있는 그것들 중 하나 이상이고 선택적이다. 따라서, 본 발명의 몇몇 실시예들에 대해, 재-인에이블 안전 디버그 요소들(34) 및/또는 디스에이블 디버그 요소(36)가 구현될 수 없다. 또한, 본 발명의 대안적인 실시예에 있어서, 바이패스 안전 디버그 요소(32) 및 재-인에이블 안전 디버그 요소(34)가 구현될 수 없다; 대신에, 디스에이블 디버그 요소(36)는 상태(C)로부터 상태(G)로 직접적으로 전이하기 위해 사용될 수 있다.
도 3에 도시된 상태도는 제어 회로(46) 및 디버그 인에이블 회로(40)의 어떠한 형태를 사용하여 구현될 수 있다. 따라서, 도 3의 기능성이 상태도의 형태로 도시되었을지라도, 도 3의 기능성은 클럭된 로직을 사용하는 상태 머신(state machine), 조합 로직, 또는 어떠한 그의 조합으로 구현될 수 있다. 이전에 언급된 바와 같이, 비휘발성 요소들(38)은 비휘발성 회로의 어떠한 형태를 사용하여 구현될 수 있다: 퓨즈들은 단지 하나의 예이다.
도 3에 도시된 특정 실시예를 사용하는 것에 대한 다른 것들 중에서 한 가지 가능한 장점은 비휘발성 요소들(38)이 어떠한 바람직한 인증 접근 방식과의 조합으로 선택적으로 사용될 수 있다는 것이다. 이것은 IC(10)가 IC(10)의 제품 개발 단계 동안 완전한 디버그 액세스를 허용하는 최초 상태(상태 A)에서 제조되도록 허용한다. 그에 따라, 본래의 장비 제조업자(예를 들면, 핸드폰들, 자동차들 등의 제조업자)에게 IC(10)의 판매 이전에, 인에이블 안전 디버그 요소(30)의 로직 상태는 디버그 회로(42)를 거쳐 회로(12)로의 디버그 액세스의 모두 또는 일부가 디스에이블되도록(상태 B) 변경된다. 그러나, 제조업자가 IC(10) 또는 IC(10)를 사용하는 제품이 판매된 후에 IC(10)를 사용하는 그들의 제품이나 시스템을 디버그할 수 있도록 "본래의 장비 제조업자(OEM) 및/또는 IC 제조업자"(본 명세서에서는 집합적으로 제조업자로 언급된다)에게 디버그 회로(42)에 의해 보호된 기능 회로(12)에 액세스를 허용하는 것이 일반적으로 바람직하다. 그러나, 단지 제조업자만 디버그 회로(42)에 의해 보호된 기능 회로(12)로 액세스를 갖기 위해 요구되는 인증 절차(상태(B)로부터 상태(C)로의 전이)를 종종 원한다. 그에 따라, 제조업자는 상태(C) 및/또는 상태(D)에서 디버그 동작들을 수행하는 것이 자유롭다.
상태(C)에 대한 한 가지 사용은 상태(D)가 입력될 수 있기 전에 인증을 요구하는 것이다. 상태(C)의 또 다른 사용은 디버깅 단계와, 그 후에 사용될 디버그 또는 다른 소프트웨어 툴들이 요구되는 인증 프로세스를 수행하는 단계를 취급할 수 있는 경우 상태(B)로 복귀하는 것을 허용하는 것이다. 인증이 요구되기에 바람직한 경우, 시스템은 디버그 동작이 수행될 수 있을 때까지 상태(B)로 유지될 수 있다. 그러한 점에서, 인증은 디버그 기능들을 수행하기 위해 상태(C)로 전이하도록 수행될 수 있다. 반대로, 제조업자는 어떠한 인증도 디버그 동작들을 수행하도록 요구되기 위해 바람직하지 않다는 것을 나중에 결정할 수 있고, 따라서 인증이 디버그 동작을 수행하기 위해 더 이상 요구되지 않는 상태(D)로 상기 회로를 배치할 수 있다. 상태(D)에 대한 한 가지 사용은 제조업자가 인증 프로세서의 이해를 갖지 않는 남은 디버그 및 다른 소프트웨어 툴들을 사용하도록 허용하는 것이다. 상태(C)로부터, 제조업자는 인증 프로세스의 이해를 갖지 않는 소프트웨어 틀들이 자유롭게 동작할 수 있는 상태(D)로 전이할 수 있다. 본 발명의 일 실시예에서, 바이패스 안전 디버그 요소(32)의 로직 상태는 상태(C)로부터 상태(D)로 진행하기 위해 전이된다.
상태(D)로부터, 일단 제조업자가 그들의 제품 개발을 끝마치고 소비자들에게 그들의 제품들을 제공할 준비가 되었다면, 그 후에 제조업자는 디버그 회로(42)에 의해 회로(12)로의 모든 디버그 액세스가 디스에이블 되도록(상태 E) 재-인에이블 안전 디버그 요소(34)의 로직 상태를 변경할 수 있다. 본 발명의 몇몇 실시예들에 대해, 제조업자가 상태(C)로부터 직접적으로 영구적인 디스에이블 상태(예로써, 상태 G)로 직접적으로 전이하기 위해 대신 바람직할 수 있다는 것에 주의하자. 영구적인 디스에이블 상태(상태 G)를 위한 한 가지 목적은 디버그 회로(42)에 의해 보호된 기능 회로(12)로의 어떠한 추가적인 액세스도 예방하는 것이다. 그러나, 제조업자의 전자 디바이스 상의 추가적인 서비스, 보수, 또는 실패 분석을 수행하기 위해, 비영구적인 디스에이블 상태(예로써, 상태 E)가 요구될 수 있다. 비영구적인 디스에이블 상태(상태 E)가 사용되는 경우, 그에 따라 디버그 회로(42)에 의해 보호된 기능 회로(12)로의 액세스는 미리 결정된 인증 프로세스를 완료함으로써 다시 달성될 수 있다(인증은 상태 E로부터 상태 F로 상태 전이를 제공한다). 실제로 IC(10)을 디버그 또는 분석하기 위해 상태들(A, C, D, F)에서 이용될 수 있는 몇몇 디버그 및/또는 에뮬레이션 소프트웨어는 어떠한 암호들 또는 키들을 포함하는 인증 프로세스의 이해를 갖는 것을 요구하지 않을 수 있다. 인증 프로세스는 디버그 및/또는 에뮬레이션 소프트웨어로부터 분리될 수 있다. 인증 프로세스는 "어떠한 디버그 액세스도 사용가능하지 않은 상태"로부터 "디버그 액세스 사용가능 상태"로 전이하기 위해 사용되는 디버그 회로(42)로부터 분리된 하드웨어 및/또는 소프트웨어를 포함할 수 있다(도 3을 참조로, 상태 B로부터 상태 C로, 상태 E로부터 상태 F로의 전이들).
몇몇 실시예들에 있어서, 후속하는 비휘발성 요소(38)를 확인하는 단계는 이전에 확인된 비휘발성 요소(38)를 무효화하는 효과를 가질 수 있다. 예를 들면, 바이패스 안전 디버그 요소(32)의 확인은 인에이블 안전 디버그 요소(30)를 무효로 하는 효과를 가질 수 있다. 유사하게는, 재-인에이블 안전 디버그 요소(34)의 확인은 바이패스 안전 디버그 요소(32)를 무효로 하는 효과를 가질 수 있다.
상술된 본 명세서에서, 본 발명은 특정 실시예들을 참조로 하여 기술되었다. 그러나, 당업자들은 이하 특허청구범위에서 설명되는 바와 같은 본 발명의 범위로부터 벗어나지 않고 다양한 수정들 및 변경들이 이루어질 수 있다는 것을 이해할 것이다. 예를 들면, 디버그 회로(42)(도 2 참조)는 예를 들어 JTAG 인터페이스 및 프로토콜과 같은 하나 이상의 표준 디버그, 에뮬레이션, 또는 테스트 인터페이스들, 및 프로토콜들을 구현하는 회로를 포함할 수 있다. 일 실시예에서, IC 단자들(22)은 JTAG TDO(테스트 데이터 아웃) 및 TDI(테스트 데이터 인) 신호들을 포함할 수 있다.
따라서, 본 명세서 및 도면들은 제한적인 의미보다는 예시적인 것으로 간주되며, 모든 그러한 수정들은 본 발명의 범위 내에 포함되도록 의도된다.
이익들, 다른 장점들, 및 문제들에 대한 해결책들은 특정 실시예들과 관련하여 기술되었다. 그러나, 발생하거나 보다 명확하게 설명되도록 어떠한 이익, 장점, 또는 해결책을 야기할 수 있는 이익들, 장점들, 문제들에 대한 해결책들, 및 어떠한 요소(들)는 특허청구범위 내에서 만의 중요하거나, 요구되거나, 본질적인 특징 또는 요소로 구성되지는 않는다. 본 명세서에서 사용되는 바와 같이, 용어들 "포함하다", "포함하는" 또는 그의 다른 활용은 요소들의 리스트를 포함하는 프로세스, 방법, 물품, 또는 장치가 단지 그러한 요소들만을 포함하지는 않으며 그러한 프로세스, 방법, 물품, 또는 장치에 고유하거나 표현적으로 열거되지 않은 다른 요소들을 포함할 수 있는 그러한 배타적이지 않은 포함을 커버하도록 의도된다.
추가 텍스트:
1. 디버그 회로에 대해 안전성을 제공하는 방법은:
인에이블되는 상기 디버그 회로를 제공하는 단계;
상기 디버그 회로를 디스에이블하기 위해 제 1 비휘발성 요소를 프로그래밍하는 단계; 및
상기 제 1 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로를 재-인에이블하는 단계 및 상기 디버그 회로를 영구적으로 디스에이블하는 단계 중 하나를 수행하기 위해 제 2 비휘발성 요소를 프로그래밍하는 단계를 포함한다.
2. 제 1 항의 방법에서, 상기 제 1 비휘발성 요소를 프로그래밍한 후에 그리고 상기 제 2 비휘발성 요소를 프로그래밍하기 이전에, 상기 디버그 회로는 인증에 응답하여 선택적으로 인에이블될 수 있다.
3. 제 1 항의 방법에서, 상기 제 2 비휘발성 요소는 상기 디버그 회로를 재-인에이블하기 위해 프로그래밍된다.
4. 제 3 항의 방법에서, 상기 제 2 비휘발성 요소를 프로그래밍한 후에, 디버그를 디스에이블하기 위해 제 3 비휘발성 요소를 프로그래밍하는 단계를 더 포함하고, 여기서 상기 제 3 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있다.
5. 제 4 항의 방법에서,
상기 제 1 비휘발성 요소는 제 1 퓨즈를 포함하고, 상기 제 2 비휘발성 요소는 제 2 퓨즈를 포함하고, 상기 제 3 비휘발성 요소는 제 3 퓨즈를 포함하며, 여기서, 상기 제 1 비휘발성 요소를 프로그래밍하는 단계는 상기 제 1 퓨즈를 끊는 단계를 포함하고,
상기 제 2 비휘발성 요소를 프로그래밍하는 단계는 상기 제 2 퓨즈를 끊는 단계를 포함하고,
상기 제 3 비휘발성 요소를 프로그래밍하는 단계는 상기 제 3 퓨즈를 끊는 단계를 포함한다.
6. 제 4 항의 방법에서, 상기 제 3 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로를 영구적으로 디스에이블하기 위해 제 4 비휘발성 요소를 프로그래밍하는 단계를 더 포함한다.
7. 제 1 항의 방법에서, 상기 제 2 비휘발성 요소는 상기 디버그 회로를 영구적으로 디스에이블하기 위해 프로그래밍된다.
8. 제 1 항의 방법에서, 상기 제 1 비휘발성 요소는 제 1 퓨즈를 포함하고 상기 제 2 비휘발성 요소는 제 2 퓨즈를 포함하며, 여기서 상기 제 1 비휘발성 요소를 프로그래밍하는 단계는 상기 제 1 퓨즈를 끊는 단계를 포함하고 상기 제 2 비휘발성 요소를 프로그래밍하는 단계는 상기 제 2 퓨즈를 끊는 단계를 포함한다.
9. 디버그 회로에 대해 안전성을 제공하는 방법은:
상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있는 안전 디버그 상태로 상기 디버그 회로를 제공하는 단계;
인증에 응답하여 상기 디버그 회로를 인에이블하는 단계; 및
인증에 응답하여 상기 디버그 회로를 인에이블 한 후에, 제 1 비휘발성 요소를 프로그래밍하는 단계를 포함한다.
10. 제 9 항의 방법에서, 상기 제 1 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로가 인에이블되는 바이패스 안전 상태에 있다.
11. 제 9 항의 방법에서, 상기 제 1 비휘발성 요소를 프로그래밍한 후에, 제 2 비휘발성 요소를 프로그래밍하는 단계를 더 포함하고, 여기서 상기 제 2 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있는 재-인에이블 안전 디버그 상태에 있다.
12. 제 11 항의 방법에서, 상기 제 1 비휘발성 요소는 제 1 퓨즈를 포함하고 상기 제 2 비휘발성 요소는 제 2 퓨즈를 포함하며, 여기서 상기 제 1 비휘발성 요소를 프로그래밍하는 단계는 상기 제 1 퓨즈를 끊는 단계를 포함하고 상기 제 2 비휘발성 요소는 상기 제 2 퓨즈를 끊는 단계를 포함한다.
13. 제 11 항의 방법에서, 상기 제 2 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로를 영구적으로 디스에이블하기 위해 제 3 비휘발성 요소를 프로그래밍하는 단계를 더 포함한다.
14. 디버그 회로에 대해 안전성을 제공하는 방법은:
인증에 응답하여 상기 디버그 회로를 인에이블하는 단계; 및
상기 디버그 회로를 인에이블 한 후에 미리 결정된 시간의 양으로 상기 디버그 회로를 디스에이블하는 단계를 포함한다.
15. 제 14 항의 방법에서, 상기 미리 결정된 시간의 양은 카운터에 의해 제공된다.
16. 제 15 항의 방법에서, 상기 디버그 회로를 디스에이블하는 단계는 만기된 상기 카운터에 응답하여 수행된다.
17. 제 14 항의 방법에서, 상기 미리 결정된 시간의 양은 사용자 프로그래밍 가능하다.
18. 제 14 항의 방법에서,
인증에 응답하여 상기 디버그 회로를 인에이블하기 전에,
인에이블된 상태에서 상기 디버그 회로를 제공하는 단계; 및
상기 디버그 회로를 디스에이블하기 위해 제 1 비휘발성 요소를 프로그래밍하는 단계를 더 포함한다.
19. 집적 회로는:
디버그 회로,
제 1 비휘발성 요소,
제 2 비휘발성 요소, 및
상기 제 1 및 제 2 비휘발성 요소들에 기초하여 상기 디버그 회로에 디버그 인에이블 표시자를 제공하는 디버그 인에이블 회로로서,
상기 제 1 비휘발성 요소는 상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있는 안전 디버그 상태에 상기 디버그 회로가 있는지의 여부를 표시하고,
상기 제 2 비휘발성 요소는 상기 제 1 비휘발성 요소를 무효로 하는 것인지의 여부를 표시한다.
20. 제 19 항의 방법에서, 상기 제 2 비휘발성 요소는 상기 디버그 회로가 재-인에이블되는 바이패스 안전 상태에 상기 디버그 회로가 있는지의 여부를 표시함으로써 상기 제 1 비휘발성 요소를 무효로 하는 것인지의 여부를 표시한다.
21. 제 20 항의 방법에서, 상기 제 2 비휘발성 요소를 무효로 하는 것인지의 여부를 표시하는 제 3 비휘발성 요소를 더 포함한다.
22. 제 21 항의 방법에서, 상기 제 3 비휘발성 요소는 상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있는 재-인에이블 안전 상태에 상기 디버그 회로가 있는지의 여부를 표시함으로써 상기 제 2 비휘발성 요소를 무효로 하는 것인지의 여부를 표시한다.
23. 제 22 항의 방법에서, 상기 디버그 회로가 영구적으로 디스에이블 되는지의 여부를 표시하는 제 4 비휘발성 요소를 더 포함한다.
24. 제 21 항의 방법에서, 상기 제 3 비휘발성 요소는 상기 디버그 회로가 영구적으로 디스에이블 되는지의 여부를 표시함으로써 상기 제 2 비휘발성 요소를 무효로 하는 것인지의 여부를 표시한다.
25. 제 19 항의 방법에서, 상기 제 2 비휘발성 요소는 상기 디버그 회로가 영구적으로 디스에이블 되는지의 여부를 표시함으로써 상기 제 1 비휘발성 요소를 무효로 하는 것인지의 여부를 표시한다.
26. 제 19 항의 방법에서, 상기 제 1 비휘발성 요소는 제 1 퓨즈를 포함하고 상기 제 2 비휘발성 요소는 제 2 퓨즈를 포함한다.

Claims (10)

  1. 디버그 회로에 안전성을 제공하는 방법에 있어서:
    인에이블되는 상기 디버그 회로를 제공하는 단계;
    상기 디버그 회로를 디스에이블하기 위해 제 1 비휘발성 요소를 프로그래밍하는 단계; 및
    상기 제 1 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로를 재-인에이블하는 것과 상기 디버그 회로를 영구적으로 디스에이블하는 것 중 하나를 수행하기 위해 제 2 비휘발성 요소를 프로그래밍하는 단계를 포함하는, 디버그 회로 안전성 제공 방법.
  2. 제 1 항에 있어서,
    상기 제 1 비휘발성 요소를 프로그래밍한 후에 그리고 상기 제 2 비휘발성 요소를 프로그래밍하기 전에, 상기 디버그 회로는 인증에 응답하여 선택적으로 인에이블될 수 있는, 디버그 회로 안전성 제공 방법.
  3. 디버그 회로에 안전성을 제공하는 방법에 있어서:
    상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있는 안전한 디버그 상태에서 상기 디버그 회로를 제공하는 단계;
    인증에 응답하여 상기 디버그 회로를 인에이블하는 단계; 및
    인증에 응답하여 상기 디버그 회로를 인에이블 한 후에, 제 1 비휘발성 요소를 프로그래밍하는 단계; 및
    상기 제 1 비휘발성 요소를 프로그래밍한 후에, 제 2 비휘발성 요소를 프로그래밍하는 단계로서, 상기 제 2 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로는, 상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있는 재-인에이블된 안전한 디버그 상태에 있는, 상기 제 2 비휘발성 요소를 프로그래밍하는 단계를 포함하는, 디버그 회로 안전성 제공 방법.
  4. 삭제
  5. 제 3 항에 있어서,
    상기 제 2 비휘발성 요소를 프로그래밍한 후에, 상기 디버그 회로를 영구적으로 디스에이블하기 위해 제 3 비휘발성 요소를 프로그래밍하는 단계를 더 포함하는, 디버그 회로 안전성 제공 방법.
  6. 삭제
  7. 삭제
  8. 집적 회로에 있어서:
    디버그 회로;
    제 1 비휘발성 요소;
    제 2 비휘발성 요소; 및
    상기 제 1 및 제 2 비휘발성 요소들에 기초하여 상기 디버그 회로에 디버그 인에이블 표시자를 제공하는 디버그 인에이블 회로를 포함하며,
    상기 제 1 비휘발성 요소는, 상기 디버그 회로가 인증에 응답하여 선택적으로 인에이블될 수 있는 안전한 디버그 상태 내에 있는지의 여부를 표시하고,
    상기 제 2 비휘발성 요소는 상기 제 1 비휘발성 요소를 무효로 하는 것인지의 여부를 표시하는, 집적 회로.
  9. 삭제
  10. 삭제
KR1020067002820A 2003-08-11 2004-07-15 디버그 회로에 안전성을 제공하는 방법 및 장치 KR101022639B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/638,795 US7248069B2 (en) 2003-08-11 2003-08-11 Method and apparatus for providing security for debug circuitry
US10/638,795 2003-08-11

Publications (2)

Publication Number Publication Date
KR20060060017A KR20060060017A (ko) 2006-06-02
KR101022639B1 true KR101022639B1 (ko) 2011-03-22

Family

ID=34135734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067002820A KR101022639B1 (ko) 2003-08-11 2004-07-15 디버그 회로에 안전성을 제공하는 방법 및 장치

Country Status (7)

Country Link
US (1) US7248069B2 (ko)
EP (1) EP1656762A2 (ko)
JP (1) JP4728237B2 (ko)
KR (1) KR101022639B1 (ko)
CN (1) CN1820453B (ko)
TW (1) TWI360991B (ko)
WO (1) WO2005020280A2 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058856B2 (en) * 2000-07-18 2006-06-06 Oki Electric Industry Co., Ltd. Semiconductor circuit with flash ROM and improved security for the contents thereof
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
US7827510B1 (en) 2002-06-07 2010-11-02 Synopsys, Inc. Enhanced hardware debugging with embedded FPGAS in a hardware description language
US9633213B2 (en) * 2005-05-16 2017-04-25 Texas Instruments Incorporated Secure emulation logic between page attribute table and test interface
US20060259828A1 (en) 2005-05-16 2006-11-16 Texas Instruments Incorporated Systems and methods for controlling access to secure debugging and profiling features of a computer system
JP2007026051A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 情報処理装置および情報処理システム
US7665002B1 (en) 2005-12-14 2010-02-16 Advanced Micro Devices, Inc. Multi-core integrated circuit with shared debug port
GB0615392D0 (en) * 2006-08-03 2006-09-13 Wivenhoe Technology Ltd Pseudo random number circuitry
DE102006043167B4 (de) 2006-09-14 2014-10-16 Ams Ag Mikrocontroller und Verfahren zum Starten eines Anwendungsprogramms auf einem Mikrocontroller
GB2446831B (en) * 2007-02-22 2011-06-15 Advanced Risc Mach Ltd Selective disabling of diagnostic functions within a data processing system
US20100205376A1 (en) * 2007-07-05 2010-08-12 Nxp B.V. Method for the improvement of microprocessor security
US7975307B2 (en) * 2007-09-07 2011-07-05 Freescale Semiconductor, Inc. Securing proprietary functions from scan access
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
US8332641B2 (en) 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US8276199B2 (en) 2009-04-09 2012-09-25 Freescale Semiconductor, Inc. Method and device for secure test port authentication
KR101554326B1 (ko) * 2009-05-21 2015-09-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US8495758B2 (en) * 2010-06-18 2013-07-23 Alcatel Lucent Method and apparatus for providing scan chain security
US9292713B2 (en) * 2013-03-13 2016-03-22 Intel Corporation Tiered access to on chip features
EP2843429B1 (en) 2013-09-03 2016-11-23 Telefonaktiebolaget LM Ericsson (publ) Enabling secured debug of an integrated circuit
CN104699575B (zh) * 2013-12-09 2018-04-20 华为技术有限公司 Fpga芯片和fpga系统
US9942049B2 (en) * 2014-04-04 2018-04-10 Qualcomm Incorporated Remote station and method for re-enabling a disabled debug capability in a system-on-a-chip device
EP3437103B1 (en) * 2016-04-01 2021-10-13 Hewlett-Packard Development Company, L.P. Integrated circuit device using multiple one-time programmable bits to control access to a resource
FR3072195B1 (fr) 2017-10-11 2019-10-18 Stmicroelectronics (Rousset) Sas Procede de gestion d'un retour de produit pour analyse et produit correspondant
US20200341058A1 (en) * 2019-04-28 2020-10-29 Nuvoton Technology Corporation Time-limited debug mode
CN110334551A (zh) * 2019-06-28 2019-10-15 深圳忆联信息系统有限公司 提升固态硬盘主控芯片安全性的方法及装置
US11940494B2 (en) 2021-11-11 2024-03-26 Samsung Electronics Co., Ltd. System on chip for performing scan test and method of designing the same
CN115378422B (zh) * 2022-10-20 2022-12-20 成都市硅海武林科技有限公司 一种反熔丝fpga开发者模式电路及用户编程方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020018380A1 (en) * 2000-07-18 2002-02-14 Nobuaki Shinmori Semiconductor circuit
US20030005335A1 (en) * 2001-06-28 2003-01-02 Hidekazu Watanabe Protecting secured codes and circuits in an integrated circuit

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855023A (ja) 1994-07-25 1996-02-27 Motorola Inc データ処理システムおよびその方法
US5627478A (en) 1995-07-06 1997-05-06 Micron Technology, Inc. Apparatus for disabling and re-enabling access to IC test functions
US5898776A (en) * 1996-11-21 1999-04-27 Quicklogic Corporation Security antifuse that prevents readout of some but not other information from a programmed field programmable gate array
JP4260984B2 (ja) * 1999-06-04 2009-04-30 株式会社東芝 情報処理装置および情報処理方法
JP2001092686A (ja) * 1999-09-22 2001-04-06 Hitachi Ltd 半導体装置
JP3760087B2 (ja) * 2000-07-18 2006-03-29 株式会社 沖マイクロデザイン 半導体回路
US7103782B1 (en) * 2000-09-27 2006-09-05 Motorola, Inc. Secure memory and processing system having laser-scribed encryption key
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US6925570B2 (en) 2001-05-15 2005-08-02 International Business Machines Corporation Method and system for setting a secure computer environment
EP1276033B1 (de) 2001-07-10 2012-03-14 Trident Microsystems (Far East) Ltd. Speichereinrichtung mit Datenschutz in einem Prozessor
JP2003177938A (ja) * 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
EP1329787B1 (en) * 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020018380A1 (en) * 2000-07-18 2002-02-14 Nobuaki Shinmori Semiconductor circuit
US20030005335A1 (en) * 2001-06-28 2003-01-02 Hidekazu Watanabe Protecting secured codes and circuits in an integrated circuit

Also Published As

Publication number Publication date
TW200522640A (en) 2005-07-01
WO2005020280A2 (en) 2005-03-03
CN1820453B (zh) 2010-10-27
TWI360991B (en) 2012-03-21
KR20060060017A (ko) 2006-06-02
JP4728237B2 (ja) 2011-07-20
JP2007502462A (ja) 2007-02-08
EP1656762A2 (en) 2006-05-17
US20050039039A1 (en) 2005-02-17
US7248069B2 (en) 2007-07-24
CN1820453A (zh) 2006-08-16
WO2005020280A3 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
KR101022639B1 (ko) 디버그 회로에 안전성을 제공하는 방법 및 장치
KR100977675B1 (ko) 집적 회로 보안과 그 방법
EP3287800B1 (en) Jtag debug apparatus and jtag debug method
EP1502466B1 (en) Prevention of the use of unauthorised software stored in the memory of an electronic device such as a cell phone
US8051345B2 (en) Method and apparatus for securing digital information on an integrated circuit during test operating modes
US6968420B1 (en) Use of EEPROM for storage of security objects in secure systems
CN101243453B (zh) 控制内置存储器访问的方法和设备
US9152749B2 (en) Management system, method and apparatus for licensed delivery and accounting of electronic circuits
CN102947719A (zh) 用于提供扫描链安全性的方法及设备
US20030212897A1 (en) Method and system for maintaining secure semiconductor device areas
US7228440B1 (en) Scan and boundary scan disable mechanism on secure device
JP4182740B2 (ja) マイクロコンピュータ
US8397079B2 (en) Method and apparatus for securing digital information on an integrated circuit read only memory during test operating modes
US20080028263A1 (en) Apparatus and method for protection of JTAG scan chains in a microprocessor
US10289872B2 (en) Secure mechanism for finite provisioning of an integrated circuit
US7058980B1 (en) Device and method for protecting memory data against illicit access
CN115938462A (zh) 一种测试模式的控制方法、装置、芯片、介质及模组设备
US20220301649A1 (en) Protection of the content of a fuse memory
JP2002365337A (ja) テスト回路およびデジタル回路

Legal Events

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

Payment date: 20140225

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee