KR20160125918A - 직렬 와이어 디버그 브리지 - Google Patents

직렬 와이어 디버그 브리지 Download PDF

Info

Publication number
KR20160125918A
KR20160125918A KR1020160049362A KR20160049362A KR20160125918A KR 20160125918 A KR20160125918 A KR 20160125918A KR 1020160049362 A KR1020160049362 A KR 1020160049362A KR 20160049362 A KR20160049362 A KR 20160049362A KR 20160125918 A KR20160125918 A KR 20160125918A
Authority
KR
South Korea
Prior art keywords
external
power
control circuit
dib
debugger
Prior art date
Application number
KR1020160049362A
Other languages
English (en)
Other versions
KR101788970B1 (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 KR20160125918A publication Critical patent/KR20160125918A/ko
Application granted granted Critical
Publication of KR101788970B1 publication Critical patent/KR101788970B1/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/2801Testing of printed circuits, backplanes, motherboards, hybrid circuits or carriers for multichip packages [MCP]
    • G01R31/281Specific types of tests or tests for a specific type of fault, e.g. thermal mapping, shorts testing
    • G01R31/2815Functional tests, e.g. boundary scans, using the normal I/O contacts
    • 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/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test 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/2851Testing of integrated circuits [IC]
    • 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/2851Testing of integrated circuits [IC]
    • G01R31/2855Environmental, reliability or burn-in testing
    • G01R31/2856Internal circuit aspects, e.g. built-in test features; Test chips; Measuring material aspects, e.g. electro migration [EM]
    • 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/302Contactless testing
    • G01R31/3025Wireless interface with the DUT
    • 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/31712Input or output aspects
    • G01R31/31713Input or output interfaces for test, e.g. test pins, buffers
    • 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/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)

Abstract

디버거에 인터페이스하기 위한 브리지를 갖는 집적 회로(IC) 및 집적 회로를 동작시키는 방법이 제공된다. 일 실시예에서, IC는 그 위에 구현된 디버그 제어 회로와 디버그 인터페이스 블록(DIB)을 포함한다. DIB는 디버그 제어 회로에 결합된다. IC는 디버거에 대한 인터페이스 및 외부 회로들에 대한 다수의 인터페이스들을 또한 포함하고, 이러한 인터페이스들 각각은 디버그 제어 회로에 결합된다. 디버그 제어 회로는 인터페이스들 중 대응하는 인터페이스들을 통하여 IC에 결합된 외부 회로들에 그리고 DIB에 외부 디버거를 결합하기 위한 브리지로서 기능할 수 있다. 디버그 제어 회로는 외부 회로들 중 하나와 디버거 사이의 연결을 설정할 수 있다. 디버거와 외부 회로 사이의 통신은 DIB를 우회하면서 수행될 수 있다.

Description

직렬 와이어 디버그 브리지{SERIAL WIRE DEBUG BRIDGE}
본 개시 내용은 집적 회로들에 관한 것이며, 더 구체적으로는 집적 회로들에 대한 디버그 액세스를 제공하는 것에 관한 것이다.
바운더리 스캔 테스팅은 처음에 집적 회로(IC)들과 인쇄 회로 기판(PCB)들 사이의 연결들을 정밀 조사할 다른 방법들이 없을 때 그 연결들을 테스트하기 위해 개발되었다. 바운더리 스캔은 IEEE(Institute of Electrical and Electronic Engineers) 규격 1149.1이라고도 알려져 있는, JTAG(Joint Test Action Group) 규격에 기초한다. 특히, IEEE 1149.1 규격은 적절한 연결들의 존재를 결정하기 위해 IC의 핀들로의 액세스를 제공하기 위한 메커니즘을 제공하였다.
비록 IEEE 1149.1 규격은 처음에 바운더리 스캔을 위해 개발되었지만, 그것의 용도는 다른 분야들로 확장되었다. 예를 들어, JTAG 포트들은 지금 개발 단계 동안 디버깅을 위해 IC로의 액세스를 획득하기 위해 이용된다. 예를 들어, JTAG 컨트롤러는 새로운 설계의 시스템 소프트웨어의 테스트를 수행하는 동안 IC의 부분들에 액세스하는 데 이용될 수 있다.
일부 IC들은 테스트와 디버그를 지원하는 데 전용될 수 있는 제한된 핀 수를 가지고 있으므로, 직렬 와이어 디버그(serial wire debug)(SWD) 인터페이스가 개발되었다. SWD 인터페이스는 2개의 핀만을 이용하지만 그럼에도 불구하고 내부 디버그 인터페이스 블록들로의 액세스를 제공하는 인터페이스이다. 적은 핀 수에도 불구하고, SWD 인터페이스는 많은 핀 수의 JTAG 인터페이스들과 동등한 기능을 제공할 수 있다.
디버거에 인터페이스하기 위한 브리지를 갖는 집적 회로(IC) 및 집적 회로를 동작시키는 방법이 제공된다. 일 실시예에서, IC는 그 위에 구현된 디버그 제어 회로와 디버그 인터페이스 블록(debug interface block)(DIB)을 포함한다. DIB는 디버그 제어 회로에 결합된다. IC는 디버거에 대한 인터페이스 및 외부 회로들에 대한 다수의 인터페이스들을 또한 포함하고, 이러한 인터페이스들 각각은 디버그 제어 회로에 결합된다. 디버그 제어 회로는 대응하는 인터페이스들 중 하나를 통해 IC에 결합된 외부 회로들에 또는 DIB에 외부 디버거를 결합하기 위한 브리지로서 기능할 수 있다. 디버그 제어 회로는 외부 회로들 중 하나와 디버거 사이의 연결을 설정하는 데 이용될 수 있다. 연결이 설정된 후에, DIB를 우회하면서 후속 통신이 수행될 수 있다.
일 실시예에서, 인터페이스들을 통해 디버그 제어 회로에 결합된 외부 회로들과 외부 디버거 사이의 연결들은 다른 연결들에 영향을 주지 않고 온라인으로 되거나 오프라인으로 될 수 있다. 예를 들어, 디버거가 제1 및 제2 외부 회로들에 연결되어 이들과 통신할 수 있다. 제1 외부 회로는 디버거와 제2 외부 회로 사이의 연결, 또는 임의의 다른 연결들(예컨대, 디버그 제어 회로를 통해 디버거와 DIB 사이)에 영향을 주지 않고 파워 다운될 수 있다(그렇게 함으로써 디버거와의 그것의 연결을 제거할 수 있다).
일 실시예에서, DIB는 디버그 제어 회로와는 상이한 파워 도메인에 있을 수 있고, DIB는 파워 게이팅 가능하다. 디버거와 하나 이상의 외부 회로 사이의 연결들은 디버그 제어 회로에 의해 설정될 수 있다. 그 후, 통신은, DIB가 파워 다운되더라도, DIB를 우회할 수 있다.
다음의 상세한 설명은 지금 간단히 설명되는 첨부 도면들을 참조한다.
도 1은 외부 디버거에 결합되도록 구성된 SoC를 갖는 시스템의 일 실시예의 블록도이다.
도 2는 도 1의 시스템에 구현될 수 있는 SoC의 일 실시예의 블록도이다.
도 3은 디버거와 다수의 외부 회로 사이에 브리지 기능을 제공하도록 구성된 회로를 동작시키기 위한 방법의 일 실시예를 예시하는 흐름도이다.
도 4는 예시적인 시스템의 일 실시예의 블록도이다.
개시된 주제는 다양한 변경들 및 대안 형태들이 가능하지만, 그것의 특정한 실시예들이 도면들에 예로서 도시되고 본 명세서에서 상세히 설명될 것이다. 그러나, 도면들과 그에 대한 상세 설명은 본 주제를 개시된 특정한 형태로 제한하려는 것이 아니고, 오히려, 그 의도는 첨부된 청구항들에 의해 정의된 바와 같은 개시된 주제의 정신 및 범위 안에 있는 모든 변형들, 등가물들 및 대안들을 포괄하기 위한 것임을 이해해야 한다. 본 명세서에서 이용된 제목들은 단지 조직을 위한 것일 뿐이고 이 설명의 범위를 제한하기 위해 이용하려는 것은 아니다. 이 출원의 전체에 걸쳐 사용될 때, "~일 수 있다(may)"라는 표현은 의무적 의미(즉, 그래야 함을 의미함)라기보다는, 허용의 의미(즉, 가능성이 있음을 의미함)로 사용된다. 유사하게, "포함하다", "포함하는", 및 "포함한다"라는 표현은 포함하지만, 이에 제한되지 않는다는 것을 의미한다.
다양한 유닛들, 회로들, 또는 기타 구성 요소들이 작업 또는 작업들을 수행"하도록 구성되는"으로 기술될 수 있다. 이러한 맥락에서, "~하도록 구성되는"은 동작 동안에 작업 또는 작업들을 수행하는 "회로를 가진"을 일반적으로 의미하는 구조의 광범위한 설명이다. 따라서, 유닛/회로/구성 요소는 그 유닛/회로/구성 요소가 현재 켜져 있지 않은 경우에도 그 작업을 수행하도록 구성될 수 있다. 일반적으로, "~하도록 구성되는"에 대응하는 구조를 형성하는 회로는 하드웨어 회로들 및/또는 동작을 구현하기 위해 실행 가능한 프로그램 명령들을 저장하는 메모리를 포함할 수 있다. 메모리는 정적 또는 동적 랜덤 액세스 메모리와 같은 휘발성 메모리 및/또는 광 또는 자기 디스크 저장소, 플래시 메모리, 프로그램 가능한 판독 전용 메모리 등과 같은 비휘발성 메모리를 포함할 수 있다. 유사하게, 설명의 편의를 위해, 다양한 유닛/회로/구성 요소는 작업 또는 작업들을 수행하는 것으로 기술될 수 있다. 이러한 설명들은 "~하도록 구성되는"이라는 표현을 포함하는 것으로 해석되어야 한다. 하나 이상의 작업을 수행하도록 구성되는 유닛/회로/구성 요소를 말하는 것은 명확히 해당 유닛/회로/구성 요소에 대해 35 U.S.C. § 112, 단락 (f)를 적용하려는 것이 아니다.
도 1은 외부 디버거에 결합되도록 구성된 SoC를 갖는 시스템의 일 실시예를 예시하는 블록도이다. 도시된 실시예에서, 시스템(5)은 SoC인 IC(10)를 포함한다. 시스템(5)은 또한 무선 칩(radio chip)(22), 오디오 칩(24), NAND 칩(28), 및 적어도 하나의 다른 칩(26)을 포함하는, 다수의 외부 회로를 포함한다. 무선 칩(22)은 무선 통신을 송신도 하고 수신도 하도록 구성된 무선 트랜시버일 수 있다. NAND 칩(28)은 NAND 플래시 메모리 및 그것에의 판독 및 기입 액세스를 지원하는 다양한 회로를 포함할 수 있다. 다른 칩(26)은 디스플레이 지원 칩, 또는 특정 유형의 버스 인터페이스(예컨대, 범용 직렬 버스, 즉 USB)를 지원하는 칩과 같은, 임의의 다른 유형의 주변 칩일 수 있다.
도시된 실시예에서 IC(10)는 AOP(always-on processor)(15) 및 디버그 인터페이스 블록(DIB)(14)을 포함한다. AOP(15) 및 DIB(14)는 상이한 파워 도메인들에 구현된다. AOP(15)는 IC(10) 자체가 전력을 수신하고 있는 때에 항상 파워 온 상태를 유지하는 파워 도메인에 구현될 수 있다. 그에 대조적으로, DIB(14)가 구현되는 파워 도메인은 파워 게이팅될 수 있는, 즉, IC(10)가 달리 전력을 수신하고 있더라도 그로부터 전력이 제거될 수 있는, IC(10) 상의 하나 이상의 파워 도메인 중 하나이다. 이는 DIB(14)(및 파워 게이팅되는 도메인들의 다른 회로)가 슬립 모드(sleep mode)에 놓이게 할 수 있다. 아래 설명되는 바와 같이, 디버거(11)와 위에서 언급된 다양한 외부 회로들 중 임의의 것 사이의 통신은, 일단 설정되면, DIB(14)가 파워 다운되는 때들을 포함하여, DIB(14)를 우회할 수 있다.
도시된 실시예에서 AOP(15)는 디버그 제어 회로(20)를 포함한다. 디버그 제어 회로(20)에 의해 제공되는 기능들 중 하나는 디버깅과 관련된 다양한 동작들의 제어이다. 디버깅은 IC(10)의 하드웨어 기능을 테스트하기 위해서뿐만 아니라 존재할지도 모르는 임의의 오류를 찾아내기 위해 하드웨어 설계 단계에서 수행될 수 있다. 디버깅은 또한 소프트웨어가 시스템에서 제대로 실행되는 것을 보장하기 위해 그리고 존재할지도 모르는 임의의 소프트웨어 버그들을 찾아내기 위해 수행될 수 있다.
디버그 제어 회로(20)에 의해 수행될 수 있는 다른 기능은 외부 디버거(11)와 DIB(14) 사이에, 그리고 또한, 디버거(11)와 도면에 도시된 다양한 외부 회로들(칩들) 사이에 브리지로서의 역할을 하는 것이다. 디버그 제어 회로(20)는, 브리지로서의 역할을 함으로써, 디버거(11)와 다양한 외부 회로들 사이의 통신이 그 초기 설정 후에 DIB(14)를 우회하게 할 수 있다.
도시된 실시예에서 디버그 제어 회로(20)는 디버거 인터페이스(33)를 통해 외부 디버거(11)에 결합될 수 있다. 디버거(11)는 여기에 도시된 것과 같은 시스템(5)의 다양한 구성 요소에 테스트 자극을 입력하기 위해서뿐만 아니라 분석을 위한 데이터를 수신하기 위해 이용될 수 있다. 디버그 제어 회로(20)와 DIB(14)를 통하여, 디버거(11)는 IC(10) 내의 다른 기능 회로들에 액세스할 수 있다. 디버거(11)는 또한 외부 인터페이스들(34)을 통해, 디버그 제어 회로(20)를 통해 다른 외부 회로들 내의 기능 유닛들에 액세스할 수 있다.
디버거 인터페이스(33)와 외부 인터페이스들(34)을 구현하기 위해 다양한 유형의 인터페이스 프로토콜들이 이용될 수 있다. 일 실시예에서, 이러한 인터페이스들은 2-와이어 인터페이스들(2WI)로서 구현될 수 있다. 그 이름이 암시하는 바와 같이, 2WI 인터페이스는 2개의 핀만을 이용한다. 제1 핀은 테스트 모드 선택(2WIIO) 신호들을 전달하기 위해 이용되는 데 반해, 제2 핀은 테스트 클록(2WICLK) 신호를 전달하기 위해 이용된다. 디버그 제어 회로(20)는 공통 2WICLK 신호를 DIB(14)에 그리고 도면에 도시된 외부 회로들 각각에 전달할 수 있다. 게다가, 디버그 제어 회로(20)는 DIB(14) 및 다양한 외부 회로들과 2WIIO 신호의 별개의 독립적인 버전들(예컨대, 2WIIO1, 2WIIO2 등)을 통한 통신을 용이하게 할 수 있다.
디버거(11)와 다른 디바이스(DIB(14) 또는 무선 칩(22)과 같은 외부 회로들 중 임의의 것) 사이에 통신이 설정되어야 할 때, 연결의 초기 구성은 디버그 제어 회로(20)에 의해 수행될 수 있다. 디버거(11)와 외부 회로들 중 하나 사이의 통신 중에, DIB(14)는 우회될 수 있다. 따라서, 디버거와 다른 디바이스들(칩의 내부 및 외부) 사이의 모든 통신에 DIB가 관련되는 종래 기술의 실시예들과 대조적으로, 여기서, 브리지로서 동작하는, 디버그 제어 회로(20)의 존재는 DIB(14)의 어떤 관련도 요구되지 않고 디버거(11)와 다른 디바이스들 사이의 통신을 가능하게 한다.
위에서 언급된 바와 같이, DIB(14)와 디버그 제어 회로(20)는 별개의 파워 도메인들에 구현된다. 또한 언급된 바와 같이, 디버그 제어 회로(20)는 그럼에도 불구하고 DIB(14)가 파워 다운되더라도 디버거(11)와 외부 회로들(예컨대, 무선 칩(22), 오디오 칩(24) 등) 각각의 사이에 브리지로서의 역할을 할 수 있다. 즉, DIB(14)가 파워 온일 때 디버거(11)와 외부 회로 사이의 통신 중에 DIB(14)를 우회할 수 있는 것에 더하여, 통신은 또한, 일단 설정되면, DIB(14)가 파워 다운되더라도, 계속될 수 있다. 일반적으로 말해서, 임의의 디바이스(DIB 또는 외부 회로들)의 전력 상태는 디버거와 임의의 다른 디바이스 사이의 통신에 영향을 주지 않고 동작 동안에 변화할 수 있다. 예를 들어, 디버거(11)와 외부 회로들 중 임의의 것 사이에 설정된 통신은 DIB(14)가 후속하여 파워 다운되더라도 DIB(14)를 우회하면서 계속해서 수행될 수 있다.
더욱이, 외부 회로들 중 일부가 디버거(11)와 다른 외부 회로들 사이의 통신 중에 파워 다운될 수도 있다. 예를 들어, 디버그 제어 회로(20)는 DIB(14)와 나머지 외부 회로들(예컨대, 오디오 칩(24) 등) 각각이 파워 다운되더라도 디버거(11)와 무선 칩(22) 사이의 통신을 용이하게 할 수 있다. 이는 모든 디버거 통신이 DIB를 통하여 라우팅되고/되거나 모든 디바이스들이 파워 업되는 것이 요구되는 종래 기술의 실시예들과는 대조적이다. 더욱이, 외부 회로들 중 다양한 것들이 다른 연결들에 영향을 주지 않고 통신을 설정하는 것에 후속하여 파워 다운될 수 있다. 예를 들어, 디버거(11)가 설정된 연결들을 통하여 무선 칩(22) 및 오디오 칩(24)과 통신하고 있는 시나리오를 생각해보자. 통신이 시작된 후 소정의 시점에, 오디오 칩(24)이 파워 다운될 수 있다. 그러나, 디버거(11) 및 무선 칩(22)으로부터의 연결은 오디오 칩(24)의 상태의 변화에 의해 영향을 받지 않고 계속해서 동작할 수 있고, 통신은 DIB(14)를 우회하면서 디버그 제어 회로(20)를 통하여 계속해서 수행된다. 이는 하나의 연결에 대한 전력 상태의 변화가 다른 연결들에 영향을 주지 않고는 수행될 수 없는 종래 기술의 실시예들과는 대조적이다. 그러한 종래 기술의 실시예들에서, 그러한 상태의 변화는 나머지 연결들 각각의 재설정을 필요로 할 것이다. 따라서, 디버그 제어 회로(20)의 존재는 종래 기술의 실시예들에서는 발견되지 않는 융통성을 제공한다.
도 2는 도 1의 시스템에 구현될 수 있는 SoC의 일 실시예의 블록도이다. 도시된 실시예에서, IC(10)는 4개의 상이한 파워 도메인을 포함한다. 파워 도메인 #1은 DIB(14)와 기능 유닛(16)을 포함한다. 파워 도메인 #2는 AOP(15)를 포함하고, 그 안에 디버그 제어 회로(20)와 전력 관리 회로(25)가 구현되어 있다. 파워 도메인 #2는 IC(10)의 이 실시예에서 파워 게이팅 가능하지 않은 유일한 파워 도메인이고, 따라서 그 안의 회로는 IC(10)가 Vdd2를 통해 전력을 수신하고 있는 언제든 파워 온 상태를 유지한다. 파워 도메인 #3는 기능 유닛(17)을 포함하고, 파워 도메인 #4는 기능 유닛(18)을 포함한다. 이 기능 유닛들은 IC(10)의 동작을 수행하는 다양한 회로를 포함할 수 있다. 이들 유닛은 프로세서 코어, 그래픽 프로세서, I/O 회로 등을 포함할 수 있지만, 이에 제한되는 것은 아니다.
위에서 언급된 바와 같이, 전력 관리 회로(25)는 AOP(15)의 일부로서 포함된다. 전력 관리 회로(25)에 의해 수행되는 기능들 중 하나는 파워 도메인 #1, #3, 및 #4 내의 회로들에 전력이 제공되는지를 제어하는 것이다. 일부 실시예들에서, 전력 관리 회로(25)는 아이들 상태(idleness) 또는 일반 활동 레벨의 표시가 있는지 이들 다른 파워 도메인 내의 기능 유닛들을 모니터링할 수 있다. 이들 파워 도메인 내의 회로로부터 전력 관리 회로(25)로 표시가 제공되는 실시예들도 가능하고 고려된다. 전력 관리 회로(25)가, 수신된 표시를 통하여 또는 그 자신의 모니터링으로부터, 파워 도메인 내의 회로가 아이들 상태에 있다고 결정하면, 그것은 그로부터 전력을 제거하기 위해(즉, 그 회로를 "슬립 모드"에 두기 위해) 대응하는 파워 스위치를 비활성화시킬 수 있다. 파워 도메인들 각각은 해당 도메인 내의 회로로부터 전력을 제거하기 위해 비활성화될 수 있는 적어도 하나의 파워 스위치(예컨대, 파워 도메인 #1 내의 S1)를 포함한다.
다른 파워 도메인들의 현재 전력 상태(활성 또는 슬립 모드)에 관계없이, 디버그 제어 회로(20)는 외부 디버거(11)뿐만 아니라 도 1에 도시된 외부 칩들과 같은 외부 회로들과의 통신을 계속해서 지원할 수 있다. 이는 디버거(11)와 외부 회로 사이에 통신 링크 또는 연결이 설정된 후에 적용되고, 연결을 설정하는 것에 후속하여 DIB(14)가 파워 다운되더라도 마찬가지로 유지될 수 있다.
도 3은 디버거와 다수의 외부 회로 사이에 브리지 기능을 제공하도록 구성된 회로를 동작시키기 위한 방법의 일 실시예를 예시하는 흐름도이다. 도 3에 도시된 방법(300)은 도 1 및 2와 관련하여 위에서 논의된 하드웨어의 다양한 실시예를 이용하여 수행될 수 있다. 본 명세서에 명시적으로 논의하지 않은 하드웨어 실시예들에 의해 방법(300)이 수행될 수 있는 것도 가능하고 고려된다.
방법(300)은, IC 외부의 하나 이상의 회로 및 IC의 DIB와 디버그 제어 회로 사이에 통신을 수행하는 것으로 시작된다(블록 305). 디버그 제어 회로는 외부 디버거와 DIB 사이의 브리지로서의 역할을 하고, 따라서 그들 사이의 통신을 용이하게 할 수 있다. 동작 동안 소정의 시점들에서, DIB는 비활성이고, 따라서 디버그 제어 회로와의 어떤 통신에도 관련되지 않을 수 있다. 그러한 경우에, DIB는 우회될 수 있다(블록 315, 예). DIB가 우회되는 동작 동안에, 통신은 그럼에도 불구하고 DIB와 IC 외부의 회로들 사이에 수행될 수 있다(블록 315). 외부 회로들은 DIB와 디버그 제어 회로가 구현되어 있는 IC에 결합된 무선 칩, 오디오 칩, 또는 임의의 다른 칩과 같은 다른 IC들일 수 있다. DIB는, 비활성일 때, 슬립 모드에 놓일 수 있다(예컨대, 클록 게이팅되고, 일부 경우에 파워 게이팅도 된다).
DIB가 우회되지 않는다면(블록 310, 아니오), 디버그 제어 회로와의 통신이 계속될 수 있다(블록 305). 외부 회로들과 디버그 제어 회로 사이의 통신은 디버그 제어 회로와 DIB 사이의 통신과 동시에 수행될 수도 있다.
DIB가 현재 우회되지만 통신을 재개해야 한다면(블록 320, 예), 방법은 블록 305로 돌아갈 수 있다. 이는 DIB가 파워 게이팅되고/되거나 클록 게이팅되었다면 그것을 슬립 상태로부터 깨우는 것을 포함할 수 있다. 그렇지 않고, DIB가 계속해서 우회될 수 있다면(블록 320, 아니오), 방법은 블록 315로 돌아갈 수 있고, 디버그 제어 회로와 외부 회로들 중 하나 이상의 사이의 통신이 계속된다.
전술한 방법 및 장치의 다양한 실시예들은 이전의 실시예들에 비하여 소정의 이점들을 제공할 수 있다. 예를 들어, SWD 인터페이스를 갖는 디버그 액세스 포트(DAP)를 이용하는 이전의 실시예에서는, DAP를 포함하는 모든 디바이스들이 파워 온 상태를 유지해야 했다. 따라서, 그러한 실시예들에서는, DAP가 슬립 모드에 있을 때 외부 디바이스들과의 통신은 가능하지 않았다. 그에 대조적으로, 도 1-3을 참조하여 논의한 다양한 방법 및 장치 실시예들은 DIB 자체가 파워 다운되거나 달리 비활성인 경우에도 디버그 제어 회로를 갖는 IC와 DIB 사이의 통신을 가능하게 할 수 있다. 또한, 디버거는 외부 회로들 각각에 개별적으로 연결되지 않아도 되고, 대신에 디버그 제어 회로를 통하여 각각에 연결될 수 있다. 셋째로, DIB의 상태에 관계없이, 외부 디바이스들은 동작 동안에 언제든 파워 업 및/또는 다운될 수 있다.
다음으로 도 4를 보면, 시스템(150)의 일 실시예의 블록도가 도시되어 있다. 예시된 실시예에서, 시스템(150)은 외부 메모리(158)에 결합된 집적 회로(10)의 적어도 하나의 인스턴스를 포함한다. 집적 회로(10)는 하나 이상의 주변 장치(154)와 외부 메모리(158)에 결합된다. 집적 회로(10)로의 공급 전압들뿐만 아니라 메모리(158) 및/또는 주변 장치들(154)로의 하나 이상의 공급 전압을 공급하는 전원(156)도 제공된다. 일부 실시예들에서, 집적 회로(10)의 하나보다 많은 인스턴스가 포함될 수 있다(그리고 하나보다 많은 외부 메모리(158)가 포함될 수도 있다).
주변 장치들(154)은, 시스템(150)의 유형에 따라, 임의의 원하는 회로를 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(150)은 모바일 디바이스(예컨대, PDA(personal digital assistant), 스마트폰 등)일 수 있고 주변 장치들(154)은 WiFi, 블루투스, 셀룰러, GPS(global positioning system) 등과 같은 다양한 유형의 무선 통신을 위한 디바이스들을 포함할 수 있다. 주변 장치들(154)은 RAM 저장소, 솔리드-스테이트 저장소, 또는 디스크 저장소를 포함하는, 부가의 저장소를 포함할 수도 있다. 주변 장치들(154)은 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린을 포함하는 디스플레이 스크린, 키보드 또는 기타 입력 디바이스, 마이크, 스피커 등과 같은 사용자 인터페이스 디바이스들을 포함할 수 있다. 다른 실시예들에서, 시스템(150)은 임의의 유형의 컴퓨팅 시스템(예컨대, 데스크톱 퍼스널 컴퓨터, 랩톱, 워크스테이션, 태블릿 등)일 수 있다.
외부 메모리(158)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들어, 외부 메모리(158)는 SRAM, 동적 RAM(DRAM), 예를 들어, 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3, LPDDR1, LPDDR2 등) SDRAM, RAMBUS DRAM 등일 수 있다. 외부 메모리(158)는 메모리 디바이스들이 장착되는 하나 이상의 메모리 모듈, 예를 들어 싱글 인라인 메모리 모듈(SIMM), 듀얼 인라인 메모리 모듈(DIMM) 등을 포함할 수 있다.
위의 개시 내용이 완전히 이해되면 통상의 기술자들에게 많은 변형들 및 수정들이 명백해질 것이다. 다음의 청구항들은 모든 그러한 변형들 및 수정들을 포괄하는 것으로 해석되어야 한다.

Claims (20)

  1. 집적 회로(IC)로서,
    디버그 제어 회로;
    디버그 인터페이스 블록(DIB);
    상기 디버그 제어 회로를 외부 디버거에 결합하도록 구성된 디버거 인터페이스; 및
    상기 디버그 제어 회로를 복수의 외부 회로 중 대응하는 외부 회로에 결합하도록 각각 구성된 복수의 외부 인터페이스
    를 포함하고,
    상기 디버그 제어 회로는 상기 복수의 외부 회로 중 적어도 하나와 상기 외부 디버거 사이에 연결을 설정하도록 구성되고, 상기 디버그 제어 회로가 상기 연결을 설정하는 것에 후속하여, 상기 디버그 제어 회로는 상기 DIB를 우회하면서 상기 복수의 외부 회로 중 적어도 하나와 상기 디버거 사이의 통신을 용이하게 하도록 구성되는 집적 회로.
  2. 제1항에 있어서,
    상기 DIB는 제1 파워 도메인(power domain)에 있고, 상기 디버거 인터페이스 및 상기 디버그 제어 회로는 제2 파워 도메인에 있고, 상기 IC는 전력 관리 회로를 더 포함하고, 상기 전력 관리 회로는 상기 제2 파워 도메인에 구현되고, 상기 전력 관리 회로는, 상기 DIB를 포함하여 상기 제1 파워 도메인 내의 회로를 파워 다운하도록 구성되는 집적 회로.
  3. 제2항에 있어서,
    상기 전력 관리 회로는 상기 제1 파워 도메인의 파워 게이팅(power-gating)을 수행하도록 구성되고, 상기 제2 파워 도메인은 상기 집적 회로의 동작 중에 전력을 보유하도록 구성되고, 상기 디버그 제어 회로는, 상기 DIB를 파워 다운하는 것에 후속하여, 상기 외부 회로들과 상기 디버거 사이의 통신을 용이하게 하도록 구성되는 집적 회로.
  4. 제2항에 있어서,
    상기 디버그 제어 회로는, 상기 복수의 외부 회로 중 하나 이상의 부가의 외부 회로 또는 상기 DIB의 전력 상태의 변화에 관계없이, 상기 복수의 외부 회로 중 선택된 외부 회로와 상기 디버거 사이의 통신을 용이하게 하도록 구성되는 집적 회로.
  5. 제1항에 있어서,
    상기 디버그 제어 회로 및 상기 디버거 인터페이스는 AOP(always-on processor)에 구현되고, 상기 AOP는 상기 집적 회로의 동작 중에 파워 온 상태를 유지하도록 구성되는 집적 회로.
  6. 제1항에 있어서,
    상기 디버그 제어 회로는 상기 외부 디버거로부터 제1 테스트 모드 선택 신호 및 테스트 클록 신호를 수신하도록 구성되는 집적 회로.
  7. 제6항에 있어서,
    상기 디버그 제어 회로는 상기 테스트 클록 신호를 상기 DIB에 그리고 상기 복수의 외부 인터페이스 각각을 통하여 전달하도록 결합되고, 상기 디버그 제어 회로는 상기 외부 인터페이스들 각각을 통하여 테스트 모드 선택 신호의 독립적인 인스턴스들을 독립적으로 전달하도록 또한 결합되는 집적 회로.
  8. 제2항에 있어서,
    상기 집적 회로는 상기 제1 파워 도메인과 상기 제2 파워 도메인을 포함하는 복수의 파워 도메인을 포함하고, 상기 제2 파워 도메인을 제외한 상기 파워 도메인들 각각은 파워 게이팅 가능하고, 상기 디버그 제어 회로는, 상기 제2 파워 도메인 외의 파워 도메인들이 전력을 수신하고 있는지에 관계없이, 상기 디버그 제어 회로에 결합된 상기 외부 인터페이스들 각각을 통하여 통신을 수행하도록 구성되는 집적 회로.
  9. 방법으로서,
    집적 회로(IC)의 제1 파워 도메인에 구현된 디버그 제어 회로가 상기 IC의 제2 파워 도메인에 구현된 디버그 인터페이스 블록(DIB)과 통신하는 단계;
    상기 디버그 제어 회로가 상기 IC 외부의 하나 이상의 회로와 연결을 설정하는 단계 - 상기 IC 외부의 하나 이상의 회로와 연결을 설정하는 단계는 상기 디버그 제어 회로와 상기 DIB 사이의 통신과 동시에 수행됨 -; 및
    상기 IC 외부의 하나 이상의 회로와 연결을 설정하는 것에 후속하여, 외부 디버거가 상기 IC 외부의 하나 이상의 회로와 통신하는 단계 - 상기 IC 외부의 하나 이상의 회로와 상기 외부 디버거 사이의 통신은 상기 DIB를 우회하면서 수행됨 -
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 디버그 제어 회로가 공통 테스트 클록 신호를 상기 IC 외부의 하나 이상의 회로들 각각에 전달하고, 테스트 모드 선택 신호의 개별적인 인스턴스들을 상기 IC 외부의 하나 이상의 회로들 각각에 전달하는 단계를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 디버그 제어 회로가 상기 테스트 모드 선택 신호의 개별적인 인스턴스 및 상기 공통 테스트 클록 신호를 상기 DIB에 전달하는 단계를 더 포함하는 방법.
  12. 제9항에 있어서,
    상기 제1 파워 도메인이 상기 IC의 동작 중에 파워 온 상태를 유지하는 단계;
    상기 제1 파워 도메인 내의 전력 관리 회로가 상기 DIB를 포함하여 상기 제2 파워 도메인에 대해 전력을 선택적으로 제공 및 제거하는 단계; 및
    상기 DIB가 파워 온되는지에 관계없이, 상기 IC 외부의 하나 이상의 회로와 상기 디버거 사이의 통신을 계속하는 단계
    를 더 포함하는 방법.
  13. 제9항에 있어서,
    상기 IC 외부의 상기 회로들 중 제2 회로의 전력 상태의 변화에 관계없이, 상기 IC 외부의 상기 회로들 중 제1 회로와 상기 디버거 사이의 통신을 계속하는 단계를 더 포함하는 방법.
  14. 시스템으로서,
    제1 파워 도메인 내의 디버그 인터페이스 블록(DIB) 및 제2 파워 도메인 내의 AOP(always-on processor)를 갖는 시스템 온 칩(SoC) - 상기 AOP는 상기 DIB와 통신하도록 결합된 디버그 제어 회로를 포함함 -;
    상기 디버그 제어 회로를 외부 디버거에 결합하도록 구성된 상기 제2 파워 도메인 내의 디버거 인터페이스; 및
    상기 SoC 상에 구현된 복수의 외부 디버그 인터페이스 중 대응하는 외부 디버그 인터페이스들을 통해 상기 디버그 제어 회로에 각각 결합된 복수의 외부 회로
    를 포함하고,
    상기 디버그 제어 회로는, 하나 이상의 대응하는 요청에 응답하여, 상기 복수의 외부 회로 중 하나 이상과 상기 외부 디버거 사이에 연결을 설정하도록 구성되고, 상기 연결을 설정하는 것에 후속하여, 상기 디버그 제어 회로는 상기 DIB를 우회하면서 상기 복수의 외부 회로 중 하나 이상과 상기 디버거 사이의 통신을 용이하게 하도록 구성되는 시스템.
  15. 제14항에 있어서,
    상기 제2 파워 도메인에 구현된 전력 관리 회로를 더 포함하고, 상기 전력 관리 회로는, 상기 DIB를 포함하여 상기 제1 파워 도메인으로부터 전력을 제거하도록 구성되는 시스템.
  16. 제15항에 있어서,
    상기 AOP를 포함하는 상기 제2 파워 도메인 내의 회로가 IC의 동작 중에 파워 온 상태를 유지하도록 구성되는 시스템.
  17. 제14항에 있어서,
    상기 복수의 외부 회로 중 선택된 외부 회로와 상기 외부 디버거 사이에 연결을 설정하는 것에 후속하여, 상기 디버그 제어 회로는, 상기 복수의 외부 회로 중 하나 이상의 부가의 외부 회로 또는 상기 DIB의 전력 상태의 변화에 관계없이, 상기 복수의 외부 회로 중 선택된 외부 회로와 상기 디버거 사이의 통신을 용이하게 하도록 구성되는 시스템.
  18. 제14항에 있어서,
    상기 디버그 제어 회로는 상기 외부 디버거로부터 제1 테스트 모드 선택 신호 및 테스트 클록 신호를 수신하도록 구성되는 시스템.
  19. 제18항에 있어서,
    상기 디버그 제어 회로는 상기 테스트 클록 신호를 상기 복수의 외부 디버그 인터페이스 각각 중 대응하는 외부 디버그 인터페이스들을 통하여 상기 복수의 외부 회로 각각에 전달하도록 결합되고, 상기 디버그 제어 회로는 상기 복수의 외부 디버그 인터페이스 각각 중 대응하는 외부 디버그 인터페이스들을 통하여 상기 복수의 외부 회로 각각에 테스트 모드 선택 신호의 독립적인 인스턴스들을 독립적으로 전달하도록 또한 결합되는 시스템.
  20. 제19항에 있어서,
    상기 디버그 제어 회로는, 상기 제1 파워 도메인이 전력을 수신하고 있을 때 상기 테스트 모드 선택 신호의 개별적인 인스턴스 및 상기 테스트 클록 신호를 상기 DIB에 전달하도록 결합되는 시스템.
KR1020160049362A 2015-04-22 2016-04-22 직렬 와이어 디버그 브리지 KR101788970B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/693,116 2015-04-22
US14/693,116 US9632137B2 (en) 2015-04-22 2015-04-22 Serial wire debug bridge

Publications (2)

Publication Number Publication Date
KR20160125918A true KR20160125918A (ko) 2016-11-01
KR101788970B1 KR101788970B1 (ko) 2017-10-20

Family

ID=57110930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160049362A KR101788970B1 (ko) 2015-04-22 2016-04-22 직렬 와이어 디버그 브리지

Country Status (5)

Country Link
US (1) US9632137B2 (ko)
KR (1) KR101788970B1 (ko)
CN (1) CN106066453B (ko)
DE (1) DE102016206170B4 (ko)
TW (1) TWI570550B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318070B2 (en) * 2017-02-15 2019-06-11 Honeywell International Inc. Touch detector with a code debugger
US11256605B2 (en) 2017-10-19 2022-02-22 Samsung Electronics Co., Ltd. Nonvolatile memory device
KR102396448B1 (ko) 2017-10-19 2022-05-11 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
DE102018101028B3 (de) 2018-01-18 2019-05-29 Infineon Technologies Austria Ag Mikrocontrollersystem mit schaltungsinternem Debugger
CN112650665A (zh) * 2019-10-12 2021-04-13 深圳市汇顶科技股份有限公司 无线调试器及无线调试系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895530B2 (en) * 2003-01-24 2005-05-17 Freescale Semiconductor, Inc. Method and apparatus for controlling a data processing system during debug
TWI300524B (en) * 2005-04-13 2008-09-01 Via Tech Inc System-on-a-chip and test/debug method thereof
KR20110124617A (ko) 2010-05-11 2011-11-17 삼성전자주식회사 시스템-온-칩 및 그것의 디버깅 방법
US8161328B1 (en) 2010-05-27 2012-04-17 Western Digital Technologies, Inc. Debugger interface
US20120102462A1 (en) * 2010-10-26 2012-04-26 Microsoft Corporation Parallel test execution
US8601315B2 (en) 2010-11-01 2013-12-03 Freescale Semiconductor, Inc. Debugger recovery on exit from low power mode
GB2493793B (en) * 2010-12-23 2020-07-08 Intel Corp Test, validation, and debug architecture
US8826079B2 (en) * 2011-12-16 2014-09-02 Arm Limited Data processing apparatus and method for identifying debug events
US9158661B2 (en) 2012-02-15 2015-10-13 Apple Inc. Enhanced debugging for embedded devices
GB2503882B (en) * 2012-07-09 2014-07-02 Ultrasoc Technologies Ltd Debug architecture
CN103455419B (zh) * 2013-08-09 2016-06-15 北京创毅讯联科技股份有限公司 现场可编程门阵列平台及其调试方法
US9329963B2 (en) 2013-09-16 2016-05-03 Advanced Micro Devices, Inc. Debug apparatus and methods for dynamically switching power domains
US20160070634A1 (en) * 2014-09-05 2016-03-10 Qualcomm Incorporated System and method for system-on-a-chip subsystem trace extraction and analysis

Also Published As

Publication number Publication date
US20160313396A1 (en) 2016-10-27
KR101788970B1 (ko) 2017-10-20
DE102016206170B4 (de) 2022-06-15
TW201638783A (zh) 2016-11-01
CN106066453A (zh) 2016-11-02
DE102016206170A1 (de) 2016-10-27
CN106066453B (zh) 2018-11-09
TWI570550B (zh) 2017-02-11
US9632137B2 (en) 2017-04-25

Similar Documents

Publication Publication Date Title
KR101788970B1 (ko) 직렬 와이어 디버그 브리지
US8694830B2 (en) Debug registers for halting processor cores after reset or power off
US10585783B2 (en) Integrated circuit and application processor
US8904248B2 (en) Noise rejection for built-in self-test with loopback
US8972754B2 (en) Computer device and frequency adjusting method for central processing unit
KR20110121357A (ko) 디버깅 기능을 지원하는 타겟 장치 및 그것을 포함하는 테스트 시스템
TWI515570B (zh) 用以提供對於多重記憶體技術的平台支援之設備、系統及方法
JP2005533296A (ja) 電力低減方法およびシステム
US9619011B2 (en) System on chip for debugging a cluster regardless of power state of the cluster, method of operating the same, and system having the same
US10049073B2 (en) Interface emulator using FIFOs
US9310783B2 (en) Dynamic clock and power gating with decentralized wake-ups
CN110442216B (zh) 集成电路的电压调节器的灵活控制的系统、装置和方法
KR101861743B1 (ko) 이종의 전력 제어와 동종의 전력 제어를 선택적으로 수행할 수 있는 시스템-온 칩과 이의 동작 방법
US9304571B2 (en) Interrupt based power state management
US20150046763A1 (en) Apparatus and Method for Controlling Internal Test Controllers
JP2015069520A (ja) データ処理装置、マイクロコントローラ、及び半導体装置
US9405604B2 (en) Method and apparatus for connecting debug interface to processing circuits without sideband interface
US8949756B2 (en) Debug access with programmable return clock
US20220018901A1 (en) Techniques to enable integrated circuit debug across low power states
KR101835494B1 (ko) 프로세서의 버퍼의 자율 제어
CN116701192A (zh) 固件调试方法、装置、系统、设备及存储介质
TW200839498A (en) Method for ensuring system shutdown completion
JP2013164691A (ja) 情報処理装置、半導体装置、及び消費電力抑制方法
KR20110131712A (ko) 반도체 장치

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