KR20170078662A - 전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (usb) 디버그 (eud) - Google Patents

전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (usb) 디버그 (eud) Download PDF

Info

Publication number
KR20170078662A
KR20170078662A KR1020177011873A KR20177011873A KR20170078662A KR 20170078662 A KR20170078662 A KR 20170078662A KR 1020177011873 A KR1020177011873 A KR 1020177011873A KR 20177011873 A KR20177011873 A KR 20177011873A KR 20170078662 A KR20170078662 A KR 20170078662A
Authority
KR
South Korea
Prior art keywords
usb
eud
debug
electronic system
coupled
Prior art date
Application number
KR1020177011873A
Other languages
English (en)
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 KR20170078662A publication Critical patent/KR20170078662A/ko

Links

Images

Classifications

    • 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/221Detection 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 buses, lines or interfaces, e.g. stuck-at or open line faults
    • 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/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 가 개시된다. 전자 시스템들은 양호한 품질 및 성능을 보장하기 위하여 대규모의 테스팅 및 디버깅을 요구하는 복잡한 집적 회로 (IC) 들을 포함한다. 예시적인 양태들에서, EUD 는 전자 시스템에서 제공된다. EUD 는 제어 정보를 전자 시스템에서의 다수의 내부 디버깅 인터페이스들로 전송하고 및/또는 전자 시스템에서의 다수의 내부 디버깅 인터페이스들로부터 디버깅 정보를 수집하도록 구성된다. EUD 는 또한, 디버깅 정보가 전자 시스템에 의해 제공된 USB 인터페이스를 통해 외부적으로 액세스될 수 있도록, 디버깅 정보를 USB 포맷으로 변환하도록 구성된다. EUD 는 전자 시스템의 비-침투적 모니터링을 제공할 수 있다. 전자 시스템은 EUD 가 인에이블되는 동안에 미션 모드에서의 통신들을 위하여 USB 포트를 이용할 수 있다. 추가적으로, 전자 시스템은 EUD 가 기능하는 것을 계속하면서, 전력-절감 모드 동안에 모든 시스템 클록들을 턴 온 또는 턴 오프 할 수 있다.

Description

전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD){EMBEDDED UNIVERSAL SERIAL BUS (USB) DEBUG (EUD) FOR MULTI-INTERFACED DEBUGGING IN ELECTRONIC SYSTEMS}
우선권 출원
본 출원은, 전체적으로 참조로 본원에 편입되고, "EMBEDDED UNIVERSAL SERIAL BUS (USB) DEBUG (EUD) FOR MULTI-INTERFACED DEBUGGING IN ELECTRONIC SYSTEMS (전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD))" 라는 명칭인, 2014 년 10 월 30 일자로 출원된 미국 특허 출원 제 14/527,873 호에 대해 우선권 주장한다.
개시물의 기술은 일반적으로 전자 시스템을 디버깅 (debugging) 하는 것에 관한 것이다.
모바일 컴퓨팅 디바이스들은 현대 사회에서 보편적으로 되었다. 모바일 컴퓨팅 디바이스들의 보급은 이러한 컴퓨팅 디바이스들 내에서 인에이블 되는 다수의 기능들에 기인할 수도 있다. 점점 더 복잡한 집적 회로 (integrated circuit; IC) 들은 모바일 컴퓨팅 디바이스들에서 점점 더 큰 기능성을 제공하기 위하여 설계되고 제조되었다. 일부 경우들에는, 모바일 컴퓨팅 시스템의 전체 시스템이 시스템-온-칩 (system-on-chip; SOC) 으로서 알려진 단일 IC 내로 통합된다. 일부 다른 경우들에는, 모바일 컴퓨팅 디바이스의 전체 시스템이 시스템-인-패키지 (system-in-package; SIP) 로서 알려진 통합된 모듈 내로 패키징되는 다수의 IC 들에 의해 지원된다.
IC 들 및 모바일 컴퓨팅 디바이스들은 모바일 컴퓨팅 디바이스들을 고객들에게 배포하기 전에 잠재적인 에러들을 검출하고 제거하기 위한 노력으로 그 개개의 개발 수명 사이클들의 상이한 국면들 동안에 반복적으로 테스팅되고 디버깅된다. 테스팅은 특정 조건들 하에서 의심된 에러들을 검출하기 위한 프로세스이지만, 디버깅은 의심된 에러들의 정확한 원인들을 조사하기 위하여 이용된 프로세스이다. 디팩토 (de facto) 디버깅 접근법은 테스트 대상 디바이스 (device under test; DUT) 로부터의 다양한 테스트 조건들 하에서 획득된 실행 로그들을 분석하는 것을 수반한다. 모바일 컴퓨팅 디바이스들 및 그 내부의 IC 들을 디버깅할 경우, 공동 테스트 액션 그룹 (joint test action group; JTAG) 로깅, 직렬 배선 디버그 (serial wire debug; SWD), 시스템 트레이스, 및 유니버셜 비동기 수신기/송신기 (universal asynchronous receiver/transmitter; UART) 로깅과 같은 확립된 디버깅 방법론들 및 툴들이 종종 채용된다. 이 디버깅 방법론들의 각각은 DUT 에서의 특정 회로, 컴포넌트, 및/또는 기능적 블록으로부터의 특정 조건들 하에서 실행 로깅 (execution logging) 들을 캡처하도록 구체적으로 설계된다.
모바일 컴퓨팅 디바이스들의 복잡도가 증가하는 것을 계속하고 IC 들의 크기가 감소하는 것을 계속함에 따라, 테스팅 및 디버깅은 더욱 번거롭고 시간 소모적으로 되고 있다. 따라서, 모바일 컴퓨팅 디바이스들의 설계자들 및 개발자들은 더욱 양호한 테스팅 및 디버깅 툴들을 요구한다.
상세한 설명에서 개시된 양태들은 전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (Universal Serial Bus; USB) 디버그 (embedded USB debug; EUD) 를 포함한다. 모바일 컴퓨팅 시스템들과 같은 전자 시스템들은 양호한 품질 및 성능을 보장하기 위하여 대규모의 테스팅 및 디버깅을 요구하는 복잡한 집적 회로 (IC) 들을 포함한다. 예시적인 양태들에서, EUD 는 전자 시스템에서 제공된다. EUD 는 제어 정보를 제공하고 및/또는 전자 시스템에서의 다수의 내부 디버깅 인터페이스들 (예컨대, 공동 테스트 액션 그룹 (JTAG), 직렬 배선 디버그 (SWD), 시스템 트레이스, 유니버셜 비동기 수신기/송신기 (UART) 등) 로부터 디버깅 정보를 수집하도록 구성된다. EUD 는 디버깅 정보가 전자 시스템에 의해 제공된 USB 인터페이스를 통해 외부적으로 액세스될 수 있도록, 디버깅 정보를 USB 포맷으로 변환한다. EUD 의 예시적인 속성 (attribute) 은 그것이 전자 시스템의 비-침투적 (non-invasive) 모니터링을 제공할 수 있다는 것이다. 전자 시스템은 EUD 가 인에이블되는 동안에 미션 모드 (mission mode) 에서의 통신들을 위하여 USB 포트를 여전히 이용할 수 있다. 게다가, 전자 시스템은 EUD 가 기능하는 것을 계속하는 동안에, 모든 시스템 클록들을 여전히 턴 온 또는 턴 오프 할 수 있고 전력-절감 (power-saving) 모드로, 그리고 전력-절감 모드로부터 전환할 수 있다. 전자 시스템의 정상적인 거동에 영향을 주지 않으면서, 멀티-인터페이싱된 디버깅 정보를 USB 인터페이스를 통해 외부적으로 액세스가능하게 하기 위하여 전자 시스템에서 EUD 를 제공함으로써, 테스팅 및 디버깅은 전자 시스템으로부터 다수의 접속 인터페이스들을 요구하지 않으면서, 더욱 용이하게 그리고 효율적으로 달성될 수 있다.
이와 관련하여, 하나의 양태에서는, 전자 시스템에서의 내장된 EUD 가 제공된다. EUD 는 USB 허브를 포함한다. USB 허브는 적어도 하나의 업스트림 인터페이스를 포함한다. 적어도 하나의 업스트림 인터페이스는 전자 시스템에서 USB PHY 에 결합된다. USB 허브는 또한, 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 복수의 다운스트림 인터페이스들을 포함한다. EUD 는 또한, 복수의 다운스트림 인터페이스들 중의 하나에 결합된 디버그 주변기기를 포함한다. 디버그 주변기기는 복수의 다운스트림 인터페이스들 중의 하나 상에서 USB 포맷된 데이터 패킷들을 USB 허브와 교환하도록 구성된다. 디버그 주변기기는 적어도 하나의 디버그 기능부로부터 디버깅 정보를 수신하기 위하여 전자 시스템에서의 복수의 디버그 기능부들 사이의 적어도 하나의 디버그 기능부에 통신가능하게 결합된다. 디버그 주변기기는 적어도 하나의 디버그 기능부로부터 수신된 디버깅 정보를, USB 허브에 제공되어야 할 USB 포맷된 데이터 패킷들로 변환하도록 구성된다. USB 허브는 적어도 하나의 업스트림 인터페이스 상에서 USB 포맷된 데이터 패킷들을 USB PHY 에 제공하도록 구성된다.
또 다른 양태에서는, EUD 를 이용하여 전자 시스템에서 디버깅 프로세스를 가능하게 하기 위한 방법이 제공된다. 방법은 전자 시스템을 USB 호스트에 연결하는 단계를 포함한다. 방법은 또한, EUD 에 의해 USB 호스트의 존재를 검출하는 단계를 포함한다. 방법은 또한, EUD 에 의해, 디버깅 프로세스가 전자 시스템에서 허용되는지를 검출하는 단계를 포함한다. 방법은 또한, USB 호스트로부터 적어도 하나의 EUD 구성을 수신하는 단계를 포함한다. 방법은 또한, USB 호스트로부터 EUD 에 의한 적어도 하나의 디버그 커맨드를 수신하는 단계를 포함한다. 방법은 또한, 적어도 하나의 디버그 커맨드에 따라 디버깅 정보를 수집하는 단계를 포함한다.
또 다른 양태에서는, EUD-기반 테스트 시스템이 제공된다. EUD-기반 테스트 시스템은 USB 호스트 인터페이스를 포함하는 USB 호스트를 포함한다. EUD-기반 테스트 시스템은 또한, 전자 시스템을 포함한다. 전자 시스템은 USB 케이블 상에서 USB 호스트 인터페이스에 결합된 USB PHY 를 포함한다. 전자 시스템은 또한, EUD 를 포함한다. EUD 는 USB 허브를 포함한다. USB 허브는 적어도 하나의 업스트림 인터페이스를 포함한다. USB 허브는 또한, 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 적어도 하나의 제 1 다운스트림 인터페이스를 포함한다. USB 허브는 또한, 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 복수의 제 2 다운스트림 인터페이스들을 포함한다. EUD 는 또한, 복수의 제 2 다운스트림 인터페이스들 중의 적어도 하나에 결합된 적어도 하나의 디버그 주변기기를 포함한다. EUD 는 또한, 적어도 하나의 제 1 다운스트림 인터페이스에 결합된 접속해제 스위치 (disconnect switch) 를 포함한다. EUD 는 또한, 우회 스위치 (bypass switch) 를 포함한다. 우회 스위치는 전도성 배선을 포함한다. 우회 스위치는 또한, 적어도 하나의 업스트림 인터페이스 및 전도성 배선에 교대로 접속하도록 구성된 제 1 우회 스위치를 포함한다. 우회 스위치는 또한, 전도성 배선 및 접속해제 스위치에 교대로 접속하도록 구성된 제 2 우회 스위치를 포함한다. EUD 는 또한, USB PHY 에 결합된 EUD 전력 공급 장치를 포함한다. EUD 는 또한, USB PHY 에 결합된 EUD 발진기 (oscillator) 를 포함한다. 전자 시스템은 또한, 적어도 하나의 디버그 주변기기에 결합된 적어도 하나의 디버그 기능부들을 포함한다. 전자 시스템은 또한, 제 2 우회 스위치에 결합된 USB 제어기를 포함한다.
또 다른 양태에서는, 전자 시스템에서의 EUD 가 제공된다. EUD 는 USB 허브를 포함한다. USB 허브는 적어도 하나의 업스트림 인터페이스를 포함한다. 적어도 하나의 업스트림 인터페이스는 전자 시스템에서 USB PHY 에 결합되어야 한다. USB 허브는 또한, 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 복수의 다운스트림 인터페이스들을 포함한다. EUD 는 또한, 복수의 다운스트림 인터페이스들 중의 적어도 하나에 결합된 적어도 하나의 디버그 주변기기를 포함한다. 적어도 하나의 디버그 주변기기는 복수의 다운스트림 인터페이스들 중의 적어도 하나 상에서 USB 포맷된 데이터 패킷들을 USB 허브와 교환하도록 구성된다. 적어도 하나의 디버그 주변기기는 제어 정보를 적어도 하나의 디버그 기능부로 전송하기 위하여, 및/또는 적어도 하나의 디버그 기능부로부터 디버깅 정보를 수신하기 위하여, 전자 시스템에서의 복수의 디버그 기능부들 사이의 적어도 하나의 디버그 기능부에 통신가능하게 결합된다. 적어도 하나의 디버그 주변기기는 적어도 하나의 디버그 기능부로부터 수신된 디버깅 정보를, USB 허브에 제공되어야 할 USB 포맷된 데이터 패킷들로 변환하도록 구성된다. 적어도 하나의 디버그 주변기기는 전자 시스템을 제어하도록 구성된다. USB 허브는 적어도 하나의 업스트림 인터페이스 상에서 USB 포맷된 데이터 패킷들을 USB PHY 에 제공하도록 구성된다.
또 다른 양태에서는, 전자 시스템에서의 EUD 가 제공된다. 수단은 전자 시스템을 USB 호스트에 연결하기 위한 수단을 포함한다. 수단은 또한, EUD 에 의해 USB 호스트의 존재를 검출하는 것을 포함한다. 수단은 또한, EUD 에 의해, 디버깅 프로세스가 전자 시스템에서 허용되는지를 검출하는 것을 포함한다. 수단은 또한, USB 호스트로부터 EUD 에 의한 적어도 하나의 EUD 구성을 수신하는 것을 포함한다. 수단은 또한, USB 호스트로부터 EUD 에 의한 적어도 하나의 디버그 커맨드를 수신하는 것을 포함한다. 수단은 또한, 적어도 하나의 디버그 커맨드에 따라 디버깅 정보를 수집하는 것을 포함한다.
도 1 은 본 개시물의 예시적인 양태들로부터 이익을 얻을 수도 있는 전자 시스템을 테스팅하고 디버깅하기 위한 디버깅 시스템의 기존의 구성의 블록도이고;
도 2 는 제어 정보를 전자 시스템 내부의 적어도 하나의 디버그 기능부로 전송하거나, 전자 시스템 내부의 적어도 하나의 디버그 기능부로부터 디버깅 정보를 수집하고, 디버깅 정보를, USB 인터페이스를 통해 외부적으로 액세스될 수 있는 USB 포맷된 데이터 패킷들로 변환하도록 구성된 예시적인 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 의 개략도이고;
도 3 은 본 개시물의 예시적인 양태들에 따라, 제어 정보를 전자 시스템 내부의 다수의 디버그 기능부들로 전송하거나, 전자 시스템 내부의 다수의 디버그 기능부들로부터 디버깅 정보를 수집하여, 이에 따라, 멀티-인터페이싱된 디버깅 정보를 USB 호스트에 제공하도록 구성된 예시적인 EUD-기반 테스트 시스템의 개략도이고;
도 4 는 전자 시스템이 접속해제 스위치에 의해 USB 호스트로부터 분리되는 동안에, EUD 가 전자 시스템에서 디버깅 모드를 인에이블하도록 우회 스위치에 의해 구성되는 예시적인 EUD-기반 테스트 시스템의 개략도이고;
도 5 는 전자 시스템이 접속해제 스위치에 의해 USB 호스트에 연결되는 동안에, EUD 가 전자 시스템에서 디버깅 모드를 인에이블하도록 우회 스위치에 의해 구성되는 예시적인 EUD-기반 테스트 시스템의 개략도이고;
도 6 은 EUD 가 전자 시스템에서 미션 모드를 인에이블하도록 우회 스위치에 의해 구성되는 예시적인 EUD-기반 테스트 시스템의 개략도이고;
도 7 은 멀티-인터페이싱된 제어 정보 및/또는 디버깅 정보가 주 전자 시스템에서 EUD 를 통해 적어도 하나의 보조 전자 시스템과 교환될 수도 있는, 주 전자 시스템 및 적어도 하나의 보조 전자 시스템을 포함하는 예시적인 전자 시스템의 개략도이고;
도 8 은 멀티-인터페이싱된 제어 및/또는 디버깅 정보가 주 전자 시스템에서 복수의 디버그 주변기기들 중의 하나를 통해 적어도 하나의 보조 전자 시스템과 교환될 수도 있는, 도 7 의 주 전자 시스템 및 적어도 하나의 보조 전자 시스템을 포함하는 예시적인 전자 시스템의 개략도이고;
도 9 는 EUD 를 이용하여 도 3 에서의 전자 시스템에서 디버깅 프로세스를 가능하게 하기 위한 예시적인 기동 프로세스를 예시하는 플로우차트이고; 그리고
도 10 은 도 2 의 예시적인 EUD 를 포함할 수 있는 예시적인 프로세서-기반 시스템의 블록도이다.
도면의 도면들을 지금부터 참조하면, 본 개시물의 몇몇 예시적인 양태들이 설명된다. 단어 "예시적" 은 "예, 사례, 또는 예시로서 작용함" 을 의미하기 위하여 본원에서 이용된다. "예시적" 으로서 본원에서 설명된 임의의 양태는 다른 양태들에 비해 바람직하거나 유익한 것으로 반드시 해석되어야 하는 것은 아니다.
상세한 설명에서 개시된 양태들은 전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 를 포함한다. 모바일 컴퓨팅 시스템들과 같은 전자 시스템들은 양호한 품질 및 성능을 보장하기 위하여 대규모의 테스팅 및 디버깅을 요구하는 복잡한 집적 회로 (IC) 들을 포함한다. 예시적인 양태들에서, EUD 는 전자 시스템에서 제공된다. EUD 는 제어 정보를 제공하고 및/또는 전자 시스템에서의 다수의 내부 디버깅 인터페이스들 (예컨대, 공동 테스트 액션 그룹 (JTAG), 직렬 배선 디버그 (SWD), 시스템 트레이스, 유니버셜 비동기 수신기/송신기 (UART) 등) 로부터 디버깅 정보를 수집하도록 구성된다. EUD 는 디버깅 정보가 전자 시스템에 의해 제공된 USB 인터페이스를 통해 외부적으로 액세스될 수 있도록, 디버깅 정보를 USB 포맷으로 변환한다. EUD 의 핵심 속성은 그것이 전자 시스템의 비-침투적 모니터링을 제공할 수 있다는 것이다. 전자 시스템은 EUD 가 인에이블되는 동안에 미션 모드에서의 통신들을 위하여 USB 포트를 여전히 이용할 수 있다. 게다가, 전자 시스템은 EUD 가 기능하는 것을 계속하는 동안에, 모든 시스템 클록들을 여전히 턴 온 또는 턴 오프 할 수 있고 전력-절감 모드로, 그리고 전력-절감 모드로부터 전환할 수 있다. 전자 시스템의 정상적인 거동에 영향을 주지 않으면서, 멀티-인터페이싱된 디버깅 정보를 USB 인터페이스를 통해 외부적으로 액세스가능하게 하기 위하여 전자 시스템에서 EUD 를 제공함으로써, 테스팅 및 디버깅은 전자 시스템으로부터 다수의 접속 인터페이스들을 요구하지 않으면서, 더욱 용이하게 그리고 효율적으로 달성될 수 있다.
본 개시물의 특정 양태들을 포함하는 EUD 의 양태들을 논의하기 전에, 본 개시물의 예시적인 양태들로부터 이익을 얻을 수도 있는 전자 시스템을 테스팅하고 디버깅하기 위한 기존의 접근법의 간략한 개요는 도 1 을 참조하여 제공된다. EUD 의 특정 예시적인 양태들의 논의는 도 2 를 참조하여 이하에서 시작된다.
도 1 은 전자 시스템 (12) 을 테스팅하고 디버깅하기 위한 디버깅 시스템 (10) 의 기존의 구성의 블록도이다. 예를 들어, 모바일 컴퓨팅 디바이스일 수도 있는 전자 시스템 (12) 은 다른 컴포넌트들 중에서 하나 이상의 IC 들을 포함한다. 전자 시스템 (12) 은 설계에 있어서 아주 복잡하고 기능성에 있어서 특이하므로, 확립된 테스팅 및 디버깅 툴들 (예컨대, JTAG, SWD, 시스템 트레이스, UART 등) 중의 어느 것도 전자 시스템 (12) 에서의 모든 회로들, 컴포넌트들, 및/또는 기능적 블록들을 위한 디버깅 정보를 생성할 수 없다. 종종, 다수의 테스팅 및 디버깅 툴들은 테스트 중인 전자 시스템 (12) 의 모든 양태들을 테스트하기 위하여 협력적으로 이용되어야 한다. 테스팅 및 디버깅 툴들의 각각은 통신을 위한 개개의 미리 정의된 접속 인터페이스에 의존하므로, 전자 시스템 (12) 은 테스팅 및 디버깅 툴들에 의해 요구된 복수의 접속 인터페이스들을 제공하도록 구성될 수도 있다. 예를 들어, 전자 시스템 (12) 은 각각 JTAG 디버깅 및 UART 로깅을 위한 제 1 JTAG 인터페이스 (14) 및 제 1 UART 인터페이스 (16) 를 제공하도록 구성될 수도 있다.
제 1 USB 인터페이스 (20) 를 포함하는 개인용 컴퓨터 (personal computer; PC) (18) 는 디버깅 시스템 (10) 에서 제어 호스트로서 제공된다. 디버깅 시스템 (10) 은 또한, 디버깅 인터페이스 모듈 (22) (예컨대, 동글 (dongle) 또는 테스트 기판) 을 포함한다. 디버깅 인터페이스 모듈 (22) 은 제 2 USB 인터페이스 (24), 제 2 JTAG 인터페이스 (26), 및 제 2 UART 인터페이스 (28) 를 포함한다. 디버깅 인터페이스 모듈 (22) 에서의 제 2 USB 인터페이스 (24) 는 USB 케이블 (30) 에 의해 PC (18) 에서의 제 1 USB 인터페이스 (20) 에 결합된다. 디버깅 인터페이스 모듈 (22) 에서의 제 2 JTAG 인터페이스 (26) 는 표준 JTAG 접속 케이블 (32) 상에서 전자 시스템 (12) 에서의 제 1 JTAG 인터페이스 (14) 에 결합된다. 디버깅 인터페이스 모듈 (22) 에서의 제 2 UART 인터페이스 (28) 는 표준 UART 접속 케이블 (34) 상에서 전자 시스템 (12) 에서의 제 1 UART 인터페이스 (16) 에 결합된다. PC (18) 는 테스트 절차들의 미리 정의된 세트를 실행하도록 구성된다. 테스트 절차들의 미리 정의된 세트는 PC (18) 상에서 로컬 방식으로, 전자 시스템 (12) 상에서 원격으로, 또는 PC (18) 와 전자 시스템 (12) 사이에서 대화식으로 실행될 수도 있다. 디버깅 인터페이스 모듈 (22) 은 테스트 절차들의 미리 정의된 세트가 실행되는 동안에, 제 2 JTAG 인터페이스 (26) 및 제 2 UART 인터페이스 (28) 를 통해 디버깅 정보를 수신하도록 구성된다. 디버깅 인터페이스 모듈 (22) 은 제 2 JTAG 인터페이스 (26) 및 제 2 UART 인터페이스 (28) 로부터 수신된 디버깅 정보를 USB 디버깅 정보로 변환한다. 그 다음으로, 디버깅 인터페이스 모듈 (22) 은 USB 케이블 (30) 상에서 USB 디버깅 정보를 PC (18) 에 제공한다. PC (18) 는 궁극적으로, USB 디버깅 정보를 프로세싱하고, 컴퓨터 모니터, 프린터, 또는 데이터 저장 매체와 같은 다양한 출력 매체들 (도시되지 않음) 에 제시한다.
명확하게, 디버깅 시스템 (10) 이 기능하기 위하여, 전자 시스템 (12) 은 개개의 테스팅 및 디버깅 툴들에 의해 요구된 제 1 JTAG 인터페이스 (14), 제 1 UART 인터페이스 (16), 및 다른 접속 인터페이스들을 제공하도록 구성되어야 한다. 그러나, 다양한 테스팅 및 디버깅 툴들에 의해 요구된 다수의 접속 인터페이스들은 설계 복잡도, 비용 영향, 및 공간 제약으로 인해 전자 시스템 (12) 으로부터 제거되었다. 그 결과, 전자 시스템 (12) 의 테스팅 및 디버깅은 더욱 어렵고 시간 소모적으로 되었다.
이와 관련하여, 도 2 는 전자 시스템 (38) 내부의 적어도 하나의 디버그 기능부로부터 디버깅 정보를 수집하고, 디버깅 정보를, USB 물리적 계층 (physical layer; PHY) (40) 을 통해 외부적으로 액세스될 수 있는 USB 포맷된 데이터 패킷들 (도시되지 않음) 로 변환하도록 구성된 예시적인 EUD (36) 의 개략도이다. 비-제한적인 예에서, USB PHY (40) 는 USB 고속 인터페이스 및/또는 USB 초고속 (super-speed) 인터페이스를 제공하도록 구성된다. EUD (36) 는 적어도 하나의 업스트림 인터페이스 (44) 및 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 을 더 포함하는 USB 허브 (42) 를 포함한다. 또 다른 비-제한적인 예에서, 업스트림 인터페이스 (44) 및 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 은 표준 USB 업스트림 포트 및 다운스트림 포트 기능성들을 각각 지원한다. 업스트림 인터페이스 (44) 는 접속성 링크 (48) 상에서 USB PHY (40) 에 결합된다. 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 은, USB 포맷된 데이터 패킷들이 업스트림 인터페이스 (44) 와 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 사이에서 교환될 수 있도록, 업스트림 인터페이스 (44) 에 통신가능하게 결합된다. EUD (36) 는 또한, 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 에 통신가능하게 결합된, M 이 하나 (1) 이상인, 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 을 포함한다. EUD (36) 는 M 이 1 과 동일할 때에 오직 하나의 디버그 주변기기 (50) 를 가질 것이다. 이와 관련하여, 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 은 또한, 적어도 하나의 디버그 주변기기 (50) 로서 취급될 수도 있다. 비-제한적인 예에서, EUD (36) 는 디버그 주변기기들 (50(1) 내지 50(M)) 보다 더 많은 다운스트림 인터페이스들 (46(1) 내지 46(N)) 을 가지도록 구성되어, 이에 따라, 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 중에서 적어도 하나의 다운스트림 인터페이스 (46) 가 비-디버깅 관련 사용을 위하여 구성되는 것을 허용한다.
도 2 를 계속 참조하면, 전자 시스템 (38) 은 EUD (36) 에서 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 에 각각 결합된 복수의 디버그 기능부들 (52(1) 내지 52(M)) 을 포함한다. 복수의 디버그 기능부들 (52(1) 내지 52(M)) 의 각각은 제어 정보를 전자 시스템 (38) 에서의 특정 기능적 블록들 (예컨대, IC 들, 하드웨어 컴포넌트들, 및/또는 소프트웨어 기능부들) 로 전송하고, 및/또는 특정 기능적 블록들로부터 특정 디버깅 정보를 수집하도록 구성된다. 비-제한적인 예에서, 제 1 디버그 기능부 (예컨대, 52(1)) 는 JTAG 디버그 기능부가 되도록, 그리고 JTAG 디버깅 정보를 수집하도록 구성되고, 제 2 디버그 기능부 (예컨대, 52(2)) 는 SWD 디버그 기능부가 되도록, 그리고 SWD 디버깅 정보를 수집하도록 구성되고, 제 3 디버그 기능부 (예컨대, 52(3)) 는 시스템 트레이스 디버그 기능부가 되도록, 그리고 시스템 트레이스 (예컨대, Trace32) 디버깅 정보를 수집하도록 구성되고, 제 4 디버그 기능부는 UART 디버그 기능부가 되도록, 그리고 UART 디버깅 정보를 수집하도록 구성되고, 제 5 디버그 기능부는 통신 (COM) 포트 디버그 기능부가 되도록, 그리고 COM 포트 디버깅 정보를 수집하도록 구성되는 등등과 같다. 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 의 각각은 복수의 디버그 기능부들 (52(1) 내지 52(M)) 중에서의 대응부로부터 디버깅 정보를 수신한다. 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 은 궁극적으로, 디버깅 정보를 USB 포맷된 데이터 패킷들로 변환하고, USB 포맷된 데이터 패킷들을 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 중에서의 대응부들에 제공한다. 업스트림 인터페이스 (44) 는 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 로부터 USB 포맷된 데이터 패킷들을 수신하고, USB 포맷된 데이터 패킷들을 외부 액세스가능성을 위하여 USB PHY (40) 에 제공한다. 이와 관련하여, USB 허브 (42) 는 복수의 다운스트림 인터페이스들 (46(1) 내지 46(N)) 로부터 멀티-인터페이싱된 디버깅 정보를 수집하고 멀티-인터페이싱된 디버깅 정보를 USB PHY (40) 에 제공하도록 구성된다. 전자 시스템들 (38) 내부에 EUD (36) 를 제공함으로써, 도 1 에서의 PC (18) 와 같은 외부 호스트가 USB PHY (40) 를 통해 전자 시스템 (38) 으로부터 멀티-인터페이싱된 디버깅 정보를 편리하게 획득하는 것이 가능하다. 이에 따라, 전자 시스템 (38) 은 전자 시스템 (12) 이 도 1 의 디버깅 시스템 (10) 에서 행하는 것과 같이 다수의 접속 인터페이스들을 지원해야 하는 것과 반대로, USB PHY (40) 를 외부 호스트에 제공한다.
이와 관련하여, 도 3 은 본 개시물의 예시적인 양태들에 따라, 전자 시스템 (62) 에서 멀티-인터페이싱된 디버깅 정보를 전송하고 및/또는 수집하고, 멀티-인터페이싱된 디버깅 정보를 USB 호스트 (64) 에 제공하도록 구성된 예시적인 EUD-기반 테스트 시스템 (60) 의 개략도이다. 도 2 와 도 3 사이의 공통적인 엘리먼트들은 공통적인 엘리먼트 번호들로 도시되어 있고, 이에 따라, 여기에서 다시 설명되지 않을 것이다. USB 호스트 (64) 는 USB 케이블 (66) 에 의해, USB 인터페이스 (도시되지 않음) 를 인에이블하는 USB PHY (40) 에 결합된다. 도 1 에서의 PC (18) 와 유사하게, USB 호스트 (64) 는 EUD-기반 테스트 시스템 (60) 을 구성하고, 테스트 절차들의 미리 정의된 세트를 실행하고, USB 케이블 (66) 상에서 멀티-인터페이싱된 디버깅 정보를 수집하고, 멀티-인터페이싱된 디버깅 정보를, 컴퓨터 모니터, 프린터, 또는 데이터 저장 매체와 같은 다양한 출력 매체들 (도시되지 않음) 에 제공한다. 비-제한적인 예에서, USB 호스트 (64) 는 전자 시스템 (62) 을 USB 호스트 (64) 에 접속하기 위한 수단을 인에이블한다.
전자 시스템 (62) 은 USB PHY (40), EUD (36(1)), 및 USB 제어기 (68) 를 포함한다. EUD (36(1)) 는 USB 허브 (42(1)) 를 포함한다. 비-제한적인 예에서, USB PHY (40) 는 EUD (36(1)) 에 의해 USB 호스트 (64) 의 존재를 검출하기 위한 수단을 인에이블한다. 따라서, EUD (36(1)) 는 디버깅 프로세스가 전자 시스템 (62) 에서 허용되는지를 검출하기 위한 수단, USB 호스트 (64) 로부터 적어도 하나의 EUD 구성을 수신하기 위한 수단, USB 호스트 (64) 로부터 적어도 하나의 디버그 커맨드를 수신하기 위한 수단, 및 적어도 하나의 디버그 커맨드에 따라 디버깅 정보를 수집하기 위한 수단을 인에이블한다. USB 허브 (42(1)) 는 업스트림 인터페이스 (44), 적어도 하나의 제 1 다운스트림 인터페이스 (70), 및 복수의 제 2 다운스트림 인터페이스들 (72(1) 내지 72(N)) 을 포함한다. 제 1 다운스트림 인터페이스 (70) 및 복수의 제 2 다운스트림 인터페이스들 (72(1) 내지 72(N)) 은 오직 본 개시물에서의 참조의 편리성을 위하여 상이하게 명명된 동일한 USB 다운스트림 인터페이스들인 것에 주목한다. EUD (36(1)) 가 전자 시스템 (62) 내로 추가되기 전에, USB 제어기 (68) 는 전자 시스템 (62) 을 위한 USB 접속을 제공하기 위하여 USB PHY (40) 에 직접적으로 결합된다. EUD (36(1)) 가 전자 시스템 (62) 내로 추가된 후에, USB 허브 (42(1)) 또는 USB 제어기 (68) 의 어느 하나는 전자 시스템 (62) 을 위한 USB 접속을 제공하기 위하여 USB PHY (40) 에 결합될 수 있다. 도 4 내지 도 6 에서 추가로 논의되는 바와 같이, EUD (36(1)) 는 USB PHY (40), USB 허브 (42(1)), 및/또는 USB 제어기 (68) 사이의 접속성 구성들을 변경함으로써 디버깅 모드 또는 미션 모드에서 동작하도록 구성될 수도 있다. 또한, 디버깅 모드 동안에 전자 시스템 (62) 을 전력-절감 모드에서 설정하는 것이 가능하다. 전자 시스템 (62) 이 전력-절감 모드에서 설정될 때, 전자 시스템 (62) 은 EUD (36(1)) 가 디버깅 모드 또는 미션 모드의 어느 하나로 유지되더라도 유지 모드 (retention mode) 에 있는 것으로 말해진다.
도 3 을 계속 참조하면, USB PHY (40), USB 허브 (42(1), 및/또는 USB 제어기 (68) 사이의 접속성 구성들을 동적으로 변경하기 위하여, 우회 스위치 (74) 및 접속해제 스위치 (76) 가 EUD (36(1)) 에서 제공된다. 우회 스위치 (74) 는 제 1 우회 스위치 (78), 제 2 우회 스위치 (80), 및 전도성 배선 (82) 을 포함한다. 비-제한적인 예에서, 제 1 우회 스위치 (78) 및 제 2 우회 스위치 (80) 는 양자 모두 3 방향 (three-way) 스위치들이고; 접속해제 스위치 (76) 는 2 방향 (two-way) 개방-폐쇄 스위치이다. 또 다른 비-제한적인 예에서, 접속해제 스위치 (76) 는 제 1 다운스트림 인터페이스 (70) 와 통합될 수도 있는 소프트웨어 기반 2 방향 개방-폐쇄 스위치 또는 하드웨어 기반 2 방향 개방-폐쇄 스위치로서 제공된다. 제 1 우회 스위치 (78) 는 USB PHY (40) 에 결합되고, EUD (36(1)) 에서의 업스트림 인터페이스 (44) 와 전도성 배선 (82) 사이에서 토글 (toggle) 하도록 구성된다. 제 1 우회 스위치 (78) 가 EUD (36(1)) 에서의 업스트림 인터페이스 (44) 에 접속될 때, 업스트림 인터페이스 (44) 는 그 다음으로 USB PHY (40) 에 결합된다. 제 1 우회 스위치 (78) 가 전도성 배선 (82) 에 접속될 경우, 업스트림 인터페이스 (44) 는 그 다음으로 USB PHY (40) 로부터 결합해제된다. 접속해제 스위치 (76) 는 EUD (36(1)) 에서의 제 1 다운스트림 인터페이스 (70) 에 결합된다. 제 2 우회 스위치 (80) 는 USB 제어기 (68) 에 결합되고, 전도성 배선 (82) 과 접속해제 스위치 (76) 사이에서 토글하도록 구성된다. 제 2 우회 스위치 (80) 가 접속해제 스위치 (76) 에 접속되고 접속해제 스위치 (76) 가 폐쇄될 때, USB 제어기 (68) 는 그 다음으로, EUD (36(1)) 에서의 제 1 다운스트림 인터페이스 (70) 에 결합된다. 대조적으로, 접속해제 스위치 (76) 가 개방되어 있을 경우, USB 제어기 (68) 는 EUD (36(1)) 에서의 제 1 다운스트림 인터페이스 (70) 로부터 결합해제된다.
도 3 을 계속 참조하면, 비-제한적인 예에서, 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 중에서 적어도 하나의 디버그 주변기기 (예컨대, 50(1)) 는 또한, 디버깅 제어 주변기기 (84) 가 되도록 구성된다. 디버깅 제어 주변기기 (84) 는 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 중에서의 디버그 주변기기를 선택적으로 인에이블하거나 선택적으로 디스에이블하도록 구성된다. 디버깅 제어 주변기기 (84) 는 또한, USB 허브 (42(1)) 가 USB 호스트 (64) 를 검출할 때에 전자 시스템 (62) 을 위한 충전을 인에이블하거나 디스에이블하도록 구성된다. 비-제한적인 예에서, USB 허브 (42(1)) 는 USB 호스트 (64) 를 감지함으로써, 또는 USB 호스트 (64) 로부터 통지를 수신하는 것을 통해, USB 호스트 (64) 를 검출한다. 디버깅 제어 주변기기 (84) 는 전자 시스템 (62) 을 재설정하거나 전력 사이클화하도록 추가로 구성된다. 비-제한적인 예에서, 디버깅 제어 주변기기 (84) 는 또한, 칩 재설정을 수행하거나, 새로운 이미지를 다운로딩하기 위하여 전자 시스템 (62) 을 구성하도록 구성될 수도 있다. 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 중에서 적어도 하나의 디버그 주변기기 (예컨대, 50(2)) 는 프로세서들을 정지시키거나 단일 단계화하거나, 레지스터들 또는 메모리를 수정하거나, 또는 메시지들을 소프트웨어 프로세스들로 전송하도록 구성될 수 있다. EUD (36(1)) 는 또한, USB PHY (40) 에 양자 모두 결합되는 EUD 전력 공급 장치 (86) 및 EUD 발진기 (88) 를 포함한다. 도 4 에서 추가로 상술되는 바와 같이, EUD 전력 공급 장치 (86) 및 EUD 발진기 (88) 는 전자 시스템 (62) 이 유지 모드에 있을 때에 동작 전력 및 동작 클록을 EUD (36(1)) 에 각각 제공하도록 구성된다. 전력 소비를 감소시키기 위하여, 전자 시스템 (62) 은 시스템에서의 모든 프로세스들이 낮은 전력에 대해 찬성할 때에 디지털 전력 공급 전압들을 비-동작 레벨로 감소시킬 수도 있다. 디지털 전력 공급 전압은 전자 시스템 (62) 에서의 디지털 로직들 (도시되지 않음) 이 개개의 상태들을 여전히 보유하지만 (예컨대, 유지), 더 이상 토글할 수 없는 레벨로 감소될 수도 있다. USB 제어기 (68) 와 연관된 USB 소프트웨어는 USB 제어기 (68) 가 USB 호스트 (64) 로부터 분리될 때마다 유지 모드에 대하여 찬성할 수도 있다. 디버깅 모드 동안, 이것은 접속해제 스위치 (76) 를 개방함으로써 달성될 수도 있다.
이와 관련하여, 도 4 는 전자 시스템 (62(1)) 이 유지 모드에 있는 동안에, EUD (36(2)) 가 전자 시스템 (62(1)) 에서 디버깅 모드를 인에이블하도록 구성되는 예시적인 EUD-기반 테스트 시스템 (60(1)) 의 개략도이다. 도 3 과 도 4 사이의 공통적인 엘리먼트들은 공통적인 엘리먼트 번호들로 도시되어 있고, 이에 따라, 여기에서 다시 설명되지 않을 것이다. 전자 시스템 (62(1)) 에서 유지 모드를 인에이블하기 위하여, 제 1 우회 스위치 (78) 는 업스트림 인터페이스 (44) 에 접속되어, 이에 따라, 업스트림 인터페이스 (44) 를 USB PHY (40) 에 결합한다. 또한, 제 2 우회 스위치 (80) 는 접속해제 스위치 (76) 에 결합되고, 접속해제 스위치 (76) 는 개방되어 있다. 그 결과, USB 제어기 (68) 는 제 1 다운스트림 인터페이스 (70) 로부터 결합해제된다. USB 제어기 (68) 가 제 1 다운스트림 인터페이스 (70) 로부터 결합해제될 때, USB 제어기 (68) 는 USB 호스트 (64) 를 더 이상 검출할 수 없고, 이에 따라, USB 제어기 (68) 가 USB 호스트 (64) 가 분리된다는 것을 신뢰하게 할 수 있다. 결과적으로, USB 제어기 (68) 는 그것이 유지 모드에 진입할 수도 있다는 것을 전자 시스템 (62(1)) 에 통지한다. 한편, EUD (36(2)) 는 USB PHY (40) 에 결합된 상태로 유지되고, 복수의 디버그 기능부들 (52(1) 내지 52(M)) 을 통해 전자 시스템 (62(1)) 의 유지 모드에 관련된 디버깅 정보를 수집하도록 완전히 동작 중이다. 디버깅 정보는 유지 모드로의, 그리고 유지 모드로부터의 전환들 동안에 전자 시스템 (62(1)) 을 검증하기 위하여 특히 유용하다. EUD 전력 공급 장치 (86) 및 EUD 발진기 (88) 는 유지 모드 동안에 동작 전력 및 동작 클록을 EUD (36(2)) 에 각각 제공하도록 구성된다. 비-제한적인 예에서, EUD 발진기 (88) 는 전자 시스템 (62(1)) 에서의 다른 시스템 클록들 (도시되지 않음) 이 턴 오프 될 때에 USB PHY (40) 를 위한 기준 클록을 생성하기 위하여 전자 시스템 (62(1)) 에서 32 킬로헤르쯔 (kHz) 슬립 클록 (도시되지 않음) 을 이용한다.
유지 모드는 디버깅 정보가 전자 시스템 (62(1)) 의 하나의 중요한 양태에 대하여 획득되는 것을 허용하지만, USB 제어기 (68) 가 USB 호스트 (64) 와 통신하고 있는 동안에 디버깅 정보를 획득할 수 있다는 것이 동일하게 중요하다. 이와 관련하여, 도 5 는 전자 시스템 (62(2)) 이 유지 모드에 있지 않은 동안에, EUD (36(3)) 가 전자 시스템 (62(2)) 에서 디버깅 모드를 인에이블하도록 구성되는 예시적인 EUD-기반 테스트 시스템 (60(2)) 의 개략도이다. 도 3 과 도 5 사이의 공통적인 엘리먼트들은 공통적인 엘리먼트 번호들로 도시되어 있고, 이에 따라, 여기에서 다시 설명되지 않을 것이다. 전자 시스템 (62(2)) 에서, 제 1 우회 스위치 (78) 는 업스트림 인터페이스 (44) 에 접속되어, 이에 따라, 업스트림 인터페이스 (44) 를 USB PHY (40) 에 결합한다. 또한, 제 2 우회 스위치 (80) 는 접속해제 스위치 (76) 에 결합되고, 접속해제 스위치 (76) 는 폐쇄된다. 그 결과, USB 제어기 (68) 는 USB 허브 (42(1)) 에서의 제 1 다운스트림 인터페이스 (70) 에, 그리고 USB 허브 (42(1)) 를 통해 USB PHY (40) 에 결합된다. USB 제어기 (68) 는 USB 호스트 (64) 를 검출할 수 있어서, 이에 따라, USB 제어기 (68) 가 그것이 USB 호스트 (64) 에 연결되고 USB 호스트 (64) 와 통신할 수 있다는 것을 신뢰하게 한다. 비-제한적인 예에서, EUD 전력 공급 장치 (86) 및 EUD 발진기 (88) 는 디버깅 모드 동안에 디스에이블될 수도 있고, 전자 시스템 (62(2)) 으로부터의 기준 클록 및 전력 공급을 이용할 수도 있다. 한편, EUD (36(3)) 는 USB PHY (40) 에 결합된 상태로 유지되고, 복수의 디버그 기능부들 (52(1) 내지 52(M)) 을 통해 디버깅 모드에 관련된 디버깅 정보를 수집하도록 완전히 동작 중이다.
전자 시스템 (62(2)) 이 디버깅되고 있지 않을 때, EUD (36(3)) 를 중단시키고, 전자 시스템 (62(2)) 에서 시그널링 지연 및 전력 소비를 감소시키는 것을 돕기 위하여 USB 제어기 (68) 를 USB PHY (40) 에 직접적으로 결합하는 것이 바람직하다. 이와 관련하여, 도 6 은 EUD (36(4)) 가 전자 시스템 (62(3)) 에서 디버깅 모드를 인에이블하도록 구성되는 예시적인 EUD-기반 테스트 시스템 (60(3)) 의 개략도이다. 도 3 과 도 6 사이의 공통적인 엘리먼트들은 공통적인 엘리먼트 번호들로 도시되어 있고, 이에 따라, 여기에서 다시 설명되지 않을 것이다. 전자 시스템 (62(3)) 에서, 제 1 우회 스위치 (78) 및 제 2 우회 스위치 (80) 는 전도성 배선 (82) 에 양자 모두 접속된다. 이러한 구성 하에서, 제 1 우회 스위치 (78) 및 제 2 우회 스위치 (80) 는 또한, 전도성 배선 (82) 이 존재하지 않는 것처럼 서로에 직접적으로 결합하는 것으로서 취급될 수 있다. 마찬가지로, 제 1 우회 스위치 (78) 가 제 2 우회 스위치 (80) 에 결합되거나 그 반대일 때, 제 1 우회 스위치 (78) 및 제 2 우회 스위치 (80) 를 양자 모두 전도성 배선 (82) 에 결합되게 하는 것은 등가적이다. 그 결과, USB 제어기 (68) 는 USB PHY (40) 에 직접적으로 결합되고, USB 허브 (42(1)) 는 완전히 우회된다. 그러므로, EUD (36(4)) 는 미션 모드에서 전자 시스템 (62(3)) 으로부터 디버깅 정보를 캡처할 수 없다. 이와 관련하여, 미션 모드는 전자 시스템 (62(3)) 이 최종 사용자들의 수중에 있을 때에 정상적인 동작 모드이다.
도 3 을 다시 참조하면, 일부 경우들에는, 전자 시스템 (62) 이 더욱 대형의 전자 시스템 (예컨대, SIP-기반 전자 시스템) 에서의 다수의 컴포넌트들 중의 하나일 수도 있다. 이와 관련하여, 도 7 은 멀티-인터페이싱된 디버깅 정보가 주 전자 시스템 (62(4)) 에서의 EUD (36(5)) 를 통해 보조 전자 시스템 (92) 으로부터 획득될 수도 있는, 주 전자 시스템 (62(4)) 및 적어도 하나의 보조 전자 시스템 (92) 을 포함하는 예시적인 전자 시스템 (90) 의 개략도이다. 도 3 과 도 7 사이의 공통적인 엘리먼트들은 공통적인 엘리먼트 번호들로 도시되어 있고, 이에 따라, 여기에서 다시 설명되지 않을 것이다.
도 7 을 참조하면, 보조 전자 시스템 (92) 은 보조 EUD (36(6)) 를 포함한다. 보조 EUD (36(6)) 는 보조 USB 허브 (42(3)) 를 포함하고, 보조 USB 허브 (42(3)) 는 적어도 하나의 보조 업스트림 인터페이스 (44(1)) 를 포함한다. 보조 업스트림 인터페이스 (44(1)) 는 주 전자 시스템 (62(4)) 의 USB 허브 (42(2)) 에서의 복수의 제 2 다운스트림 인터페이스들 (72(1) 내지 72(N)) 중에서 제 2 다운스트림 인터페이스 (예컨대, 72(N)) 에 통신가능하게 결합된다. 보조 EUD (36(6)) 는 보조 전자 시스템 (92) 으로부터 디버깅 정보를 수집하고, 멀티-인터페이싱된 디버깅 정보를 USB 포맷된 데이터 패킷들 (도시되지 않음) 로 변환하고, USB 포맷된 데이터 패킷들을 주 전자 시스템 (62(4)) 에서의 USB 허브 (42(2)) 에 제공한다. 주 전자 시스템 (62(4)) 에서의 USB 허브 (42(2)) 는 궁극적으로, USB 포맷된 데이터 패킷들이 USB PHY (40) 를 통해 액세스가능하게 한다. 보조 전자 시스템 (92) 이 주 전자 시스템 (62(4)) 에서의 EUD (36(5)) 를 통해 디버깅되고 있는 동안에, 주 전자 시스템 (62(4)) 은 도 4 내지 도 5 에서 이전에 논의된 바와 같이 유지 모드 또는 디버깅 모드에서 동작하도록 구성될 수도 있다.
보조 전자 시스템 (92) 이 보조 EUD (36(6)) 를 포함하지 않을 경우, 주 전자 시스템 (62(4)) 은 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 중의 하나를 통해 보조 전자 시스템 (92) 으로부터 디버깅 정보를 수집하도록 구성될 수도 있다. 이와 관련하여, 도 8 은 멀티-인터페이싱된 제어 및/또는 디버깅 정보가 주 전자 시스템 (62(4)) 에서 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 중의 하나를 통해 적어도 하나의 보조 전자 시스템 (92(1)) 과 교환될 수도 있는, 도 7 의 주 전자 시스템 (62(4)) 및 적어도 하나의 보조 전자 시스템 (92(1)) 을 포함하는 예시적인 전자 시스템 (90(1)) 의 개략도이다. 도 7 과 도 8 사이의 공통적인 엘리먼트들은 공통적인 엘리먼트 번호들로 도시되어 있고, 이에 따라, 여기에서 다시 설명되지 않을 것이다.
도 8 을 참조하면, 복수의 디버그 주변기기들 (50(1) 내지 50(M)) 중에서 디버그 주변기기 (50(X)) (1 ≤ X ≤ M) 는 보조 전자 시스템 (92(1)) 을 제어하고 및/또는 보조 전자 시스템 (92(1)) 으로부터 디버깅 정보를 수집하도록 구성된다. 비-제한적인 예에서, 디버그 주변기기 (50(X)) 는 보조 전자 시스템 (92(1)) 에서의 JTAG 인터페이스 (도시되지 않음) 또는 SWD 인터페이스 (도시되지 않음) 에 의해 보조 전자 시스템 (92(1)) 을 제어할 수도 있다.
도 9 는 EUD (36(1)) 를 이용하여 도 3 에서의 전자 시스템에서 디버깅 프로세스를 가능하게 하기 위한 예시적인 기동 프로세스 (100) 를 예시하는 플로우차트이다. 도 3 에서의 엘리먼트들은 도 9 와 관련하여 참조되고, 여기에서 다시 설명되지 않을 것이다. 시동 프로세스 (100) 에 따르면, 전자 시스템 (62) 은 USB 호스트 (64) 에 연결된다 (블록 (102)). 다음으로, EUD (36(1)) 는 USB 호스트 (64) 의 존재를 검출한다 (블록 (104)). 상기 논의들에 따르면, USB 호스트 (64) 의 검출은 전자 시스템 (62) 이 USB 호스트 (64) 에 연결되었다는 표시이다. 그 후에, EUD (36(1)) 는 디버깅 프로세스가 전자 시스템 (62) 에 의해 허용되는 것을 검출한다 (블록 (106)). 비-제한적인 예에서, 전자 시스템 (62) 은 디버그 디스에이블 퓨즈 (debug disablement fuse) 를 포함할 수도 있고, 디버깅 프로세스는 디버그 디스에이블 퓨즈가 (예컨대, 참 상태 (true state) 에서) 블로우 (blow) 될 때에 금지된다. 대조적으로, 디버그 디스에이블 퓨즈가 (예컨대, 거짓 상태 (false state) 에서) 블로우되지 않을 경우, 디버깅 프로세스는 진행하도록 허용된다. 다음으로, EUD (36(1)) 는 USB 호스트 (64) 로부터 적어도 하나의 EUD 구성을 수신한다 (블록 (108)). 그 후에, EUD (36(1)) 는 USB 호스트 (64) 로부터 적어도 하나의 디버그 커맨드를 수신하고 (블록 (110)), 최종적으로, EUD (36(1)) 는 디버그 커맨드에 따라 디버깅 정보를 수집한다 (블록 (112)).
본원에서 개시된 양태들에 따른 전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 EUD 는 임의의 프로세서-기반 디바이스에서 제공될 수도 있거나, 임의의 프로세서-기반 디바이스 내로 통합될 수도 있다. 예들은 제한 없이: 셋톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정식 로케이션 데이터 유닛, 이동식 로케이션 데이터 유닛, 이동 전화, 셀룰러 전화, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인 정보 단말 (personal digital assistant; PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 음악 플레이어, 디지털 음악 플레이어, 휴대용 음악 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크 (digital video disc; DVD) 플레이어, 및 휴대용 디지털 비디오 플레이어를 포함한다.
이와 관련하여, 도 10 은 도 2 내지 도 6 에서 예시된 EUD 들 (36, 36(1), 36(2), 36(3), 36(4)) 을 채용할 수 있는 프로세서-기반 시스템 (114) 의 예를 예시한다. 이 예에서, 프로세서-기반 시스템 (114) 은, 각각이 하나 이상의 프로세서들 (118) 을 포함하는 하나 이상의 중앙 프로세싱 유닛 (central processing unit; CPU) 들 (116) 을 포함한다. CPU (들) (116) 는 일시적으로 저장된 데이터에 대한 급속한 액세스를 위하여 프로세서 (들) (118) 에 결합된 캐시 메모리 (120) 를 가질 수도 있다. CPU (들) (116) 는 시스템 버스 (122) 에 결합되고, 프로세서-기반 시스템 (114) 내에 포함된 디바이스들을 상호-결합할 수 있다. 잘 알려진 바와 같이, CPU (들) (116) 는 시스템 버스 (122) 상에서 어드레스, 제어, 및 데이터 정보를 교환함으로써 이 다른 디바이스들과 통신한다. 도 10 에서 예시되지 않았지만, 다수의 시스템 버스들 (122) 이 제공될 수 있고, 여기서, 각각의 시스템 버스 (122) 는 상이한 구조를 구성한다.
다른 디바이스들은 시스템 버스 (122) 에 접속될 수 있다. 도 10 에서 예시된 바와 같이, 이 디바이스들은 메모리 시스템 (124), 하나 이상의 입력 디바이스들 (126), 하나 이상의 출력 디바이스들 (128), 하나 이상의 네트워크 인터페이스 디바이스들 (130), 및 하나 이상의 디스플레이 제어기들 (132) 을 예들로서 포함할 수 있다. 입력 디바이스 (들) (126) 는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하지만, 이것으로 제한되지는 않는 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스 (들) (128) 는 오디오, 비디오, 다른 시각적 표시기들 등을 포함하지만, 이것으로 제한되지는 않는 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스 (들) (130) 는 네트워크 (134) 로, 그리고 네트워크 (134) 로부터의 데이터의 교환을 허용하도록 구성된 임의의 디바이스들일 수 있다. 네트워크 (134) 는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, 로컬 영역 네트워크 (local area network; LAN), 무선 로컬 영역 네트워크 (wireless local area network; WLAN), 무선 광역 네트워크 (wireless wide area network; WWAN), 및 인터넷을 포함하지만, 이것으로 제한되지는 않는 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스 (들) (130) 는 희망하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다.
CPU (들) (116) 는 또한, 하나 이상의 디스플레이들 (136) 로 전송된 정보를 제어하기 위하여 시스템 버스 (122) 상에서 디스플레이 제어기 (들) (132) 를 액세스하도록 구성될 수도 있다. 디스플레이 제어기 (들) (132) 는, 디스플레이되어야 할 정보를 디스플레이 (들) (136) 를 위하여 적당한 포맷으로 프로세싱하는 하나 이상의 비디오 프로세서들 (138) 을 통해 디스플레이되도록 하기 위하여 정보를 디스플레이 (들) (136) 로 전송한다. 디스플레이 (들) (136) 는 음극선 관 (cathode ray tube; CRT), 발광 다이오드 (light emitting diode; LED) 디스플레이, 액정 디스플레이 (liquid crystal display; LCD), 플라즈마 디스플레이 등을 포함하지만, 이것으로 제한되지는 않는 임의의 타입의 디스플레이를 포함할 수 있다.
당해 분야의 당업자들은 본원에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘들이 전자 하드웨어, 메모리 내에 또는 또 다른 컴퓨터-판독가능 매체 내에 저장되고 프로세서 또는 다른 프로세싱 디바이스에 의해 실행된 명령들, 또는 양자의 조합들로서 구현될 수도 있다는 것을 추가로 인식할 것이다. 본원에서 설명된 마스터 디바이스들 및 슬레이브 디바이스들은 임의의 회로, 하드웨어 컴포넌트, 집적 회로 (IC), 또는 IC 칩에서 예들로서 채용될 수도 있다. 본원에서 개시된 메모리는 임의의 타입 및 크기의 메모리일 수도 있고, 희망하는 임의의 타입의 정보를 저장하도록 구성될 수도 있다. 이 교환가능성을 명확하게 예시하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그 기능성의 측면에서 위에서 설명되었다. 이러한 기능성이 어떻게 구현되는지는 특정한 애플리케이션, 설계 선택들, 및/또는 전체적인 시스템에 부과된 설계 제약들에 종속된다. 당업자들은 설명된 기능성을 각각의 특정한 애플리케이션을 위한 다양한 방법들로 구현할 수도 있지만, 이러한 구현 판단들은 본 개시물의 범위로부터의 이탈을 야기시키는 것으로 해석되지 않아야 한다.
본원에서 개시된 양태들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 및 회로들은 프로세서, 디지털 신호 프로세서 (Digital Signal Processor; DSP), 애플리케이션 특정 집적 회로 (Application Specific Integrated Circuit; ASIC), 필드 프로그래밍가능한 게이트 어레이 (Field Programmable Gate Array; FPGA) 또는 다른 프로그래밍가능한 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 그 임의의 조합으로 구현될 수도 있거나 수행될 수도 있다. 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신 (state machine) 일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예컨대, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다.
본원에서 개시된 양태들은 하드웨어로, 그리고 하드웨어에서 저장되는 명령들로 구체화될 수도 있고, 예를 들어, 랜덤 액세스 메모리 (Random Access Memory; RAM), 플래시 메모리, 판독 전용 메모리 (Read Only Memory; ROM), 전기적 프로그래밍가능한 ROM (Electrically Programmable ROM; EPROM), 전기적 소거가능 프로그래밍가능한 ROM (Electrically Erasable Programmable ROM; EEPROM), 레지스터들, 하드 디스크, 분리가능한 디스크, CD-ROM, 또는 당해 분야에서 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독할 수 있고 정보를 저장 매체에 기록할 수 있도록 프로세서에 결합된다. 대안적으로, 저장 매체는 프로세서에 일체적일 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC 은 원격 스테이션 내에 상주할 수도 있다. 대안적으로, 프로세서 및 저장 매체는 원격 스테이션, 기지국, 또는 서버에서 개별 컴포넌트들로서 상주할 수도 있다.
본원에서의 예시적인 양태들 중의 임의의 것에서 설명된 동작 단계들은 예들 및 논의를 제공하기 위하여 설명된다는 것에 또한 주목한다. 설명된 동작들은 예시된 시퀀스들 이외의 여러 상이한 시퀀스들에서 수행될 수도 있다. 또한, 단일 동작 단계에서 설명된 동작들은 다수의 상이한 단계들에서 실제적으로 수행될 수도 있다. 추가적으로, 예시적인 양태들에서 논의된 하나 이상의 동작 단계들이 조합될 수도 있다. 플로우차트 도면들에서 예시된 동작 단계들은 당해 분야의 당업자에게 용이하게 명백한 바와 같이 여러 상이한 수정들에 종속될 수도 있다는 것을 이해해야 한다. 당해 분야의 당업자들은 또한, 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중의 임의의 것을 이용하여 표현될 수도 있다는 것을 이해할 것이다. 예를 들어, 상기 설명의 전반에 걸쳐 참조될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학 필드들 또는 입자들, 또는 그 임의의 조합에 의해 표현될 수도 있다.
개시물의 이전의 설명은 당해 분야의 당업자가 개시물을 제조하거나 이용하는 것을 가능하게 하도록 제공된다. 개시물에 대한 다양한 수정들은 당해 분야의 당업자들에게 용이하게 명백할 것이고, 본원에서 정의된 일반적인 원리들은 개시물의 사상 또는 범위로부터 이탈하지 않으면서 다른 변동들에 적용될 수도 있다. 따라서, 개시물은 본원에서 설명된 예들 및 설계들에 제한되도록 의도된 것이 아니라, 본원에서 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 따르도록 하기 위한 것이다.

Claims (32)

  1. 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 로서,
    USB 허브로서,
    상기 전자 시스템에서의 USB 물리부 (PHY) 에 결합된 적어도 하나의 업스트림 인터페이스; 및
    상기 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 복수의 다운스트림 인터페이스들
    을 포함하는, 상기 USB 허브; 및
    상기 복수의 다운스트림 인터페이스들 중의 하나에 결합된 디버그 주변기기로서, 상기 디버그 주변기기는 상기 복수의 다운스트림 인터페이스들 중 하나 상에서 USB 포맷된 데이터 패킷들을 상기 USB 허브와 교환하도록 구성되는, 상기 디버그 주변기기를 포함하고;
    상기 디버그 주변기기는 적어도 하나의 디버그 기능부로부터 디버깅 정보를 수신하기 위하여 상기 전자 시스템에서의 복수의 디버그 기능부들 중의 상기 적어도 하나의 디버그 기능부에 통신가능하게 결합되고;
    상기 디버그 주변기기는 상기 적어도 하나의 디버그 기능부로부터 수신된 상기 디버깅 정보를, 상기 USB 허브에 제공되어야 할 상기 USB 포맷된 데이터 패킷들로 변환하도록 구성되고; 그리고
    상기 USB 허브는 상기 적어도 하나의 업스트림 인터페이스 상에서 상기 USB 포맷된 데이터 패킷들을 상기 USB PHY 에 제공하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  2. 제 1 항에 있어서,
    상기 USB PHY 에 결합된 EUD 전력 공급 장치로서, 상기 EUD 전력 공급 장치는 동작 전력을 상기 EUD 에 제공하도록 구성되는, 상기 EUD 전력 공급 장치; 및
    상기 USB PHY 에 결합된 EUD 발진기로서, 상기 EUD 발진기는 동작 클록을 상기 EUD 에 제공하도록 구성되는, 상기 EUD 발진기를 더 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  3. 제 1 항에 있어서,
    상기 USB PHY 에 결합된 EUD 전력 공급 장치를 더 포함하며,
    상기 EUD 전력 공급 장치는 상기 전자 시스템에서의 디지털 전력 공급 전압들이 비-동작 레벨로 설정되었는지 여부에 관계 없이, 동작 전력을 상기 EUD 에 제공하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  4. 제 1 항에 있어서,
    상기 USB PHY 에 결합된 EUD 발진기를 더 포함하며,
    상기 EUD 발진기는 상기 전자 시스템에서의 다른 시스템 클록들이 턴 오프 되는지 여부에 관계 없이, 동작 클록을 상기 EUD 에 제공하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  5. 제 1 항에 있어서,
    상기 전자 시스템을 위한 디버깅 모드를 인에이블하도록 구성된 우회 스위치를 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  6. 제 5 항에 있어서,
    상기 우회 스위치는,
    상기 적어도 하나의 업스트림 인터페이스 및 상기 USB PHY 에 결합된 제 1 우회 스위치; 및
    상기 전자 시스템에서의 USB 제어기 및 상기 복수의 다운스트림 인터페이스들 중의 하나에 결합된 제 2 우회 스위치를 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  7. 제 6 항에 있어서,
    접속해제 스위치를 개방되도록 유지함으로써, 상기 USB 허브로부터 상기 전자 시스템을 분리시키도록 구성된 접속해제 스위치를 더 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  8. 제 6 항에 있어서,
    접속해제 스위치를 폐쇄되도록 유지함으로써, 상기 전자 시스템을 상기 USB 허브에 연결하도록 구성된 접속해제 스위치를 더 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  9. 제 1 항에 있어서,
    상기 USB PHY 를 상기 USB 제어기에 직접적으로 접속함으로써, 상기 전자 시스템을 위한 미션 모드를 인에이블하도록 구성된 우회 스위치를 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  10. 제 9 항에 있어서,
    상기 우회 스위치는,
    상기 USB PHY 에 결합되고 상기 적어도 하나의 업스트림 인터페이스로부터 결합해제된 제 1 우회 스위치; 및
    상기 전자 시스템에서의 USB 제어기 및 상기 제 1 우회 스위치에 결합된 제 2 우회 스위치를 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  11. 제 1 항에 있어서,
    상기 디버그 주변기기는 상기 전자 시스템에서의 공동 테스트 액션 그룹 (JTAG) 디버그 기능부에 결합되고, 개개의 상기 JTAG 디버그 기능부로 JTAG 디버깅 정보를 전송하거나 수신하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  12. 제 1 항에 있어서,
    상기 디버그 주변기기는 상기 전자 시스템에서의 직렬 배선 디버그 (SWD) 디버그 기능부에 결합되고, 개개의 상기 SWD 디버그 기능부로 SWD 디버깅 정보를 전송하거나 수신하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  13. 제 1 항에 있어서,
    상기 디버그 주변기기는 상기 전자 시스템에서의 시스템 트레이스 디버그 기능부에 결합되고, 개개의 상기 시스템 트레이스 디버그 기능부로 시스템 트레이스 디버깅 정보를 전송하거나 수신하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  14. 제 1 항에 있어서,
    상기 디버그 주변기기는 상기 전자 시스템에서의 통신 (COM) 포트 디버그 기능부에 결합되고, 개개의 상기 COM 포트 디버그 기능부로 COM 포트 디버깅 정보를 전송하거나 수신하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  15. 제 1 항에 있어서,
    상기 USB PHY 는 USB 고속 인터페이스 또는 USB 초고속 인터페이스인, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  16. 제 1 항에 있어서,
    상기 전자 시스템은 시스템-온-칩 (SOC) 집적 회로 (IC) 인, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  17. 제 1 항에 있어서,
    상기 전자 시스템은 적어도 하나의 보조 전자 시스템을 포함하는 시스템-인-패키지 (SIP) 기반 전자 시스템이고, 상기 적어도 하나의 보조 전자 시스템은 적어도 하나의 보조 업스트림 인터페이스를 가지는 보조 EUD 를 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  18. 제 17 항에 있어서,
    상기 복수의 다운스트림 인터페이스들 중의 하나는 상기 적어도 하나의 보조 전자 시스템으로 디버깅 정보를 전송하거나 수신하기 위하여, 상기 적어도 하나의 보조 업스트림 인터페이스에 결합되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  19. 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 를 이용하여 전자 시스템에서 디버깅 프로세스를 가능하게 하기 위한 방법으로서,
    상기 전자 시스템을 USB 호스트에 연결하는 단계;
    상기 EUD 에 의해 상기 USB 호스트의 존재를 검출하는 단계;
    상기 EUD 에 의해, 상기 디버깅 프로세스가 상기 전자 시스템에서 허용되는지를 검출하는 단계;
    상기 USB 호스트로부터 적어도 하나의 EUD 구성을 수신하는 단계;
    상기 USB 호스트로부터 상기 EUD 에 의한 적어도 하나의 디버그 커맨드를 수신하는 단계; 및
    상기 적어도 하나의 디버그 커맨드에 따라 디버깅 정보를 수집하는 단계를 포함하는, 전자 시스템에서 디버깅 프로세스를 가능하게 하기 위한 방법.
  20. 제 19 항에 있어서,
    상기 디버깅 프로세스가 상기 전자 시스템에서 허용되는지를 검출하는 단계는, 거짓 상태에서 디버그 디스에이블 퓨즈를 검출하는 단계를 포함하는, 전자 시스템에서 디버깅 프로세스를 가능하게 하기 위한 방법.
  21. 제 19 항에 있어서,
    상기 전자 시스템을 상기 USB 호스트에 연결하는 단계는, 상기 전자 시스템의 USB 물리부 (PHY) 를 개인용 컴퓨터 (PC) 에 연결하는 단계를 포함하는, 전자 시스템에서 디버깅 프로세스를 가능하게 하기 위한 방법.
  22. 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템으로서,
    USB 호스트 인터페이스를 포함하는 USB 호스트; 및
    전자 시스템을 포함하며,
    상기 전자 시스템은,
    USB 케이블 상에서 상기 USB 호스트에 결합된 USB 물리부 (PHY);
    EUD 로서, 상기 EUD 는,
    USB 허브로서, 상기 USB 허브는,
    적어도 하나의 업스트림 인터페이스;
    상기 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 적어도 하나의 제 1 다운스트림 인터페이스; 및
    상기 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 복수의 제 2 다운스트림 인터페이스들
    을 포함하는, 상기 USB 허브;
    상기 복수의 제 2 다운스트림 인터페이스들 중의 적어도 하나에 결합된 적어도 하나의 디버그 주변기기;
    상기 적어도 하나의 제 1 다운스트림 인터페이스에 결합된 접속해제 스위치;
    우회 스위치로서, 상기 우회 스위치는,
    전도성 배선;
    상기 적어도 하나의 업스트림 인터페이스 및 상기 전도성 배선에 교대로 접속하도록 구성된 제 1 우회 스위치; 및
    상기 전도성 배선 및 상기 접속해제 스위치에 교대로 접속하도록 구성된 제 2 우회 스위치
    를 포함하는, 상기 우회 스위치;
    상기 USB PHY 에 결합된 EUD 전력 공급 장치; 및
    상기 USB PHY 에 결합된 EUD 발진기
    를 포함하는, 상기 EUD;
    상기 적어도 하나의 디버그 주변기기에 결합된 적어도 하나의 디버그 기능부; 및
    상기 제 2 우회 스위치에 결합된 USB 제어기를 포함하는, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  23. 제 22 항에 있어서,
    상기 USB 호스트는 개인용 컴퓨터 (PC) 인, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  24. 제 22 항에 있어서,
    상기 USB 호스트 인터페이스는 USB 고속 인터페이스 또는 USB 초고속 인터페이스인, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  25. 제 22 항에 있어서,
    상기 USB PHY 는 USB 고속 인터페이스 또는 USB 초고속 인터페이스인, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  26. 제 22 항에 있어서,
    상기 적어도 하나의 디버그 주변기기는 디버깅 제어 주변기기가 되도록 구성되는, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  27. 제 22 항에 있어서,
    상기 접속해제 스위치는 소프트웨어 기반 2 방향 개방-폐쇄 스위치 또는 하드웨어 기반 2 방향 개방-폐쇄 스위치인, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  28. 제 22 항에 있어서,
    상기 접속해제 스위치는 상기 적어도 하나의 제 1 다운스트림 인터페이스와 통합되는, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  29. 제 22 항에 있어서,
    상기 제 1 우회 스위치 및 상기 제 2 우회 스위치는 3 방향 스위치들인, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  30. 제 22 항에 있어서,
    상기 적어도 하나의 제 1 다운스트림 인터페이스 및 상기 복수의 제 2 다운스트림 인터페이스들은 USB 다운스트림 인터페이스들인, 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 기반 테스트 시스템.
  31. 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 로서,
    USB 허브로서,
    상기 전자 시스템에서의 USB 물리부 (PHY) 에 결합되어야 할 적어도 하나의 업스트림 인터페이스; 및
    상기 적어도 하나의 업스트림 인터페이스에 통신가능하게 결합된 복수의 다운스트림 인터페이스들을 포함하는, 상기 USB 허브; 및
    상기 복수의 다운스트림 인터페이스들 중의 적어도 하나에 결합된 적어도 하나의 디버그 주변기기로서, 상기 적어도 하나의 디버그 주변기기는 상기 복수의 다운스트림 인터페이스들 중 적어도 하나 상에서 USB 포맷된 데이터 패킷들을 상기 USB 허브와 교환하도록 구성되는, 상기 적어도 하나의 디버그 주변기기를 포함하고;
    상기 적어도 하나의 디버그 주변기기는 제어 정보를 적어도 하나의 디버그 기능부로 전송하기 위하여, 및/또는 상기 적어도 하나의 디버그 기능부로부터 디버깅 정보를 수신하기 위하여, 상기 전자 시스템에서의 복수의 디버그 기능부들 중의 상기 적어도 하나의 디버그 기능부에 통신가능하게 결합되고;
    상기 적어도 하나의 디버그 주변기기는 상기 적어도 하나의 디버그 기능부로부터 수신된 상기 디버깅 정보를, 상기 USB 허브에 제공되어야 할 상기 USB 포맷된 데이터 패킷들로 변환하도록 구성되고;
    상기 적어도 하나의 디버그 주변기기는 상기 전자 시스템을 제어하도록 구성되고; 그리고
    상기 USB 허브는 상기 적어도 하나의 업스트림 인터페이스 상에서 상기 USB 포맷된 데이터 패킷들을 상기 USB PHY 에 제공하도록 구성되는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
  32. 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD) 로서,
    상기 전자 시스템을 USB 호스트에 연결하기 위한 수단;
    상기 EUD 에 의해 상기 USB 호스트의 존재를 검출하기 위한 수단;
    상기 EUD 에 의해, 디버깅 프로세스가 상기 전자 시스템에서 허용되는지를 검출하기 위한 수단;
    상기 USB 호스트로부터 상기 EUD 에 의한 적어도 하나의 EUD 구성을 수신하기 위한 수단;
    상기 USB 호스트로부터 상기 EUD 에 의한 적어도 하나의 디버그 커맨드를 수신하기 위한 수단; 및
    상기 적어도 하나의 디버그 커맨드에 따라 디버깅 정보를 수집하기 위한 수단을 포함하는, 전자 시스템에서의 내장된 유니버셜 직렬 버스 (USB) 디버그 (EUD).
KR1020177011873A 2014-10-30 2015-10-05 전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (usb) 디버그 (eud) KR20170078662A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/527,873 2014-10-30
US14/527,873 US9684578B2 (en) 2014-10-30 2014-10-30 Embedded universal serial bus (USB) debug (EUD) for multi-interfaced debugging in electronic systems
PCT/US2015/053938 WO2016069206A1 (en) 2014-10-30 2015-10-05 Embedded universal serial bus (usb) debug (eud) for multi-interfaced debugging in electronic systems

Publications (1)

Publication Number Publication Date
KR20170078662A true KR20170078662A (ko) 2017-07-07

Family

ID=54293427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011873A KR20170078662A (ko) 2014-10-30 2015-10-05 전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (usb) 디버그 (eud)

Country Status (16)

Country Link
US (1) US9684578B2 (ko)
EP (1) EP3213215B1 (ko)
JP (1) JP6594972B2 (ko)
KR (1) KR20170078662A (ko)
CN (1) CN107077409B (ko)
AU (1) AU2015339839A1 (ko)
BR (1) BR112017008712A2 (ko)
CA (1) CA2962771A1 (ko)
CL (1) CL2017001033A1 (ko)
CO (1) CO2017003937A2 (ko)
MX (1) MX2017005636A (ko)
PH (1) PH12017500531A1 (ko)
RU (1) RU2017114719A (ko)
SG (1) SG11201702090QA (ko)
TW (1) TWI689813B (ko)
WO (1) WO2016069206A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11470018B2 (en) 2018-09-13 2022-10-11 Electronics And Telecommunications Research Institute System-on-chip including network for debugging

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201627862A (zh) * 2015-01-26 2016-08-01 鴻海精密工業股份有限公司 除錯電路、除錯請求電路及除錯系統
US20170138998A1 (en) * 2015-11-16 2017-05-18 Mediatek Inc. Testing Device for Connection Interface and Related Testing Methods
US10503683B2 (en) * 2015-11-20 2019-12-10 Parade Technologies, Ltd. Service redirect over USB Type-C
US10705142B2 (en) * 2016-12-29 2020-07-07 Intel Corporation Device, system and method for providing on-chip test/debug functionality
US10846201B1 (en) * 2018-09-21 2020-11-24 Amazon Technologies, Inc. Performance debug for networks
FR3089657B1 (fr) * 2018-12-06 2021-05-28 Idemia Identity & Security France Dispositif tel qu’un objet connecté pourvu de moyens pour contrôler l’exécution d’un programme exécuté par le dispositif
KR20200123680A (ko) * 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 테스트 기판
TWI748297B (zh) 2019-12-04 2021-12-01 瑞軒科技股份有限公司 自動化測試方法
TWI710778B (zh) * 2019-12-04 2020-11-21 瑞軒科技股份有限公司 自動化測試系統及其裝置
CN112416835A (zh) * 2021-01-25 2021-02-26 智道网联科技(北京)有限公司 智能车载网联终端主板、智能车载网联终端及调试方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732301B1 (en) * 2000-03-06 2004-05-04 Hewlett-Packard Development Company, L.P. Serial bus diagnostic port of a digital system
US6823224B2 (en) 2001-02-21 2004-11-23 Freescale Semiconductor, Inc. Data processing system having an on-chip background debug system and method therefor
JP4479002B2 (ja) 2004-03-31 2010-06-09 日本電気株式会社 Cpuの省電力機能を有する機器のデバッグシステム及び方法
US20050268195A1 (en) * 2004-04-29 2005-12-01 Lund Morten W Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems
CN100435110C (zh) * 2004-11-26 2008-11-19 上海芯华微电子有限公司 片上系统的片上调试器
JP4222370B2 (ja) 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
JP4422134B2 (ja) * 2006-09-29 2010-02-24 Okiセミコンダクタ株式会社 Usbテスト回路
US8205095B2 (en) 2007-11-02 2012-06-19 Nvidia Corporation Method and system for remotely debugging a failed computer machine
US8296469B2 (en) * 2008-12-31 2012-10-23 Intel Corporation Scalable method and apparatus for link with reconfigurable ports
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US8683221B2 (en) * 2010-05-18 2014-03-25 Lsi Corporation Configurable memory encryption with constant pipeline delay in a multi-core processor
US8487655B1 (en) * 2009-05-05 2013-07-16 Cypress Semiconductor Corporation Combined analog architecture and functionality in a mixed-signal array
TW201145016A (en) * 2010-06-15 2011-12-16 Nat Univ Chung Cheng Non-intrusive debugging framework for parallel software based on super multi-core framework
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US9037911B2 (en) * 2010-12-09 2015-05-19 Advanced Micro Devices, Inc. Debug state machines and methods of their operation
US8826081B2 (en) 2011-08-25 2014-09-02 Ultrasoc Technologies, Ltd. Data processing apparatus and related methods of debugging processing circuitry
GB2500074B (en) 2012-07-09 2014-08-20 Ultrasoc Technologies Ltd Debug architecture
US9927486B2 (en) 2012-07-09 2018-03-27 Ultrasoc Technologies Ltd. Debug architecture
GB2500441B (en) 2012-07-09 2014-03-05 Ultrasoc Technologies Ltd Data prioritisation in a debug architecture
CN103226506B (zh) * 2013-04-28 2015-04-22 杭州士兰微电子股份有限公司 内嵌于芯片的usb转jtag调试装置及其调试方法
US9404968B1 (en) * 2013-10-25 2016-08-02 Altera Corporation System and methods for debug connectivity discovery
TWM483532U (zh) * 2014-01-21 2014-08-01 Elitegroup Computer Sys Co Ltd 主機板及除錯裝置
CN203838699U (zh) * 2014-05-29 2014-09-17 国家电网公司 一种多功能调试接口转换装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11470018B2 (en) 2018-09-13 2022-10-11 Electronics And Telecommunications Research Institute System-on-chip including network for debugging

Also Published As

Publication number Publication date
RU2017114719A (ru) 2018-12-03
BR112017008712A2 (pt) 2017-12-19
TWI689813B (zh) 2020-04-01
PH12017500531A1 (en) 2017-08-07
JP2017537382A (ja) 2017-12-14
US20160124822A1 (en) 2016-05-05
JP6594972B2 (ja) 2019-10-23
EP3213215A1 (en) 2017-09-06
RU2017114719A3 (ko) 2019-04-24
AU2015339839A1 (en) 2017-04-13
CL2017001033A1 (es) 2018-01-05
TW201633128A (zh) 2016-09-16
CN107077409A (zh) 2017-08-18
CN107077409B (zh) 2021-01-15
SG11201702090QA (en) 2017-05-30
MX2017005636A (es) 2017-06-29
CA2962771A1 (en) 2016-05-06
EP3213215B1 (en) 2019-11-20
US9684578B2 (en) 2017-06-20
WO2016069206A1 (en) 2016-05-06
CO2017003937A2 (es) 2017-07-11

Similar Documents

Publication Publication Date Title
US9684578B2 (en) Embedded universal serial bus (USB) debug (EUD) for multi-interfaced debugging in electronic systems
JP6490803B2 (ja) システムオンチップ(SoC)及びシステムのための低電力デバッグアーキテクチャ
EP3274836B1 (en) System and method to enable closed chassis debug control interface using a usb type-c connector
CN108475227B (zh) 测试功能组件及数据调试方法
EP2158495B1 (en) Integrated circuit with self-test feature for validating functionality of external interfaces
KR101487181B1 (ko) 시스템 온 칩 내에 독립 로직 블록의 통합
US10824530B2 (en) System, apparatus and method for non-intrusive platform telemetry reporting using an all-in-one connector
US20150220140A1 (en) Device, method and system for operation of a low power phy with a pcie protocol stack
US9454213B2 (en) Method, apparatus, system for lane staggering and determinism for serial high speed I/O lanes
US20150127994A1 (en) Trace Data Export to Remote Memory Using Remotely Generated Reads
CN104077203A (zh) 一种可经由usb接口实现计算机硬件诊断的方法及装置
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
KR20180037422A (ko) 집적 회로 및 애플리케이션 프로세서
US20080010541A1 (en) Integrated circuit device, debugging tool, debugging system, microcomputer, and electronic instrument
US7908533B2 (en) Processor to JTAG test access port interface
US11257560B2 (en) Test architecture for die to die interconnect for three dimensional integrated circuits
US20240094287A1 (en) Low power environment for high performance processor without low power mode
CN102402492A (zh) 一种服务器管理模块和时序控制模块的通信方法
JP2011155066A (ja) 半導体処理装置、および半導体処理システム