KR20080099874A - Jtag 전력 폭락 디버그 - Google Patents

Jtag 전력 폭락 디버그 Download PDF

Info

Publication number
KR20080099874A
KR20080099874A KR1020087024587A KR20087024587A KR20080099874A KR 20080099874 A KR20080099874 A KR 20080099874A KR 1020087024587 A KR1020087024587 A KR 1020087024587A KR 20087024587 A KR20087024587 A KR 20087024587A KR 20080099874 A KR20080099874 A KR 20080099874A
Authority
KR
South Korea
Prior art keywords
processor
debug
state
power
detecting
Prior art date
Application number
KR1020087024587A
Other languages
English (en)
Other versions
KR101059038B1 (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 KR20080099874A publication Critical patent/KR20080099874A/ko
Application granted granted Critical
Publication of KR101059038B1 publication Critical patent/KR101059038B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

전력 폭락 후 프로세서 상에서 디버그 연산을 수행하는 방법이 제공된다. 프로세서의 실행 모드 동안 상기 프로세서의 유휴 상태가 검출된다. 유휴 상태가 전력 폭락 이벤트와 관련되는지 결정된다. 실행 모드 동안 상기 프로세서 내에 디버그 레지스터들을 로딩함으로써 상기 프로세서의 디버그 상태가 복구된다.

Description

JTAG 전력 폭락 디버그{JTAG POWER COLLAPSE DEBUG}
본 개시는 일반적으로 프로세서에서 실행하는 소프트웨어의 디버그 연산에 관한 것이다. 보다 구체적으로, 본 개시는 전력 폭락(collapse) 이벤트를 통해 프로세서에서 실행하는 소프트웨어의 디버그 연산을 수행하는 시스템 및 방법에 관한 것이다.
기술의 발전으로 개인 연산 디바이스들은 더 작고 더 강력해져 왔다. 예를 들어, 현재 작고 가벼우며 사용자들이 쉽게 휴대하는 휴대용 무선 전화, 휴대용 디지털 보조 기기(PDA) 및 호출 장치와 같은 무선 연산 디바이스들을 포함하여 다양한 휴대용 개인 연산 디바이스가 있다. 보다 구체적으로, 셀룰러 전화 및 IP 전화와 같은 휴대용 무선 전화들은 무선 네트워크를 통해 음성 및 데이터 패킷들을 전달할 수 있다. 또한, 이러한 많은 무선 전화는 그 안에 통합되는 다른 타입들의 디바이스들을 포함한다. 예를 들어, 무선 전화는 디지털 스틸 카메라, 디지털 비디오 카메라, 디지털 레코더 및 오디오 파일 플레이어를 포함할 수도 있다. 또한, 이러한 무선 전화들은 인터넷에 액세스하는데 사용될 수 있는 웹 인터페이스를 포함할 수 있다. 이 때문에, 이들 무선 전화는 상당한 연산 용량을 포함한다.
통상적으로, 이러한 디바이스들은 더 많은 기능을 포함하기 때문에 디바이스 들의 다양한 기능들을 지원하는데 필요할 수 있는 각종 내부 컴포넌트들에 의해 더 많은 전력이 소비된다. 결과적으로, 미사용 기간 동안 전력을 절약하기 위해, 모바일 디바이스들은 다양한 전력 절약 기술들을 통합하였다. 고급 RISC 머신(ARM) 프로세서들이 디버그 통신을 중지하거나 방지할 전력을 보존하기 위해 진입할 수 있는 세 가지 다른 모드: 유휴 모드, 슬립 모드 및 전력 폭락 모드가 있다. 유휴 모드 동안, ARM 프로세서 클록은 중단하지만, 나머지 칩은 전력을 그대로 유지한다. 슬립 모드 동안, ARM 프로세서 클록이 오프되고, 기준 클록이 오프되고, 전압 레벨이 감소한다. 전력 폭락 동안, ARM 프로세서는 전력이 다운된다.
이러한 세 가지 전력 절약 모드 중 어느 모드에서든, ARM 클록이 토글(toggle)하지 않기 때문에 프로세서는 액세스가 어려울 수도 있다. 그러나 전력 폭락 전 및/또는 후 디바이스의 코어 및 프로세서에서 작동하는 소프트웨어의 디버그는 여전히 필요하다.
잠재적인 한 가지 방법은 칩을 재부팅하고 재부팅 프로세스의 일부로서 레지스터 데이터를 복구하는 것이다. 그러나 이 방법은 재부팅 프로세스에 감시자 코드가 필요하기 때문에 감시자 코드의 디버그를 허용하지 않는다. 더욱이, 재부팅 프로세스 동안 레지스터들 중 하나 이상은 복구를 위해 액세스 가능하지 않을 수도 있다. 예를 들어, 디버그 구조 레지스터는 재부팅 프로세스 동안 리셋될 수 있으며 이러한 레지스터를 액세스 가능하게 하는 것은 보안 허점을 제공할 수 있다. 통상적으로, 디버그 구조 레지스터는 쉽게 복구될 수 없다.
따라서 코어 및 프로세서들의 디버그에 사용하기 위한 개선된 시스템 및 방 법을 제공하는 것이 유리하다.
특정한 한 실시예로, 전력 폭락 후 프로세서 상에서 디버그 연산을 수행하는 방법이 제공된다. 프로세서의 실행 모드 동안 상기 프로세서의 유휴 상태가 검출된다. 유휴 상태가 전력 폭락 이벤트와 관련되는지 결정된다. 실행 모드 동안 상기 프로세서 내에 디버그 레지스터들을 로딩함으로써 상기 프로세서의 디버그 상태가 복구된다.
특정 실시예에서, 상기 프로세서의 유휴 상태를 검출한 후 상기 프로세서의 상태가 문의된다. 또한, 특정 실시예에서, 복구된 디버그 레지스터들 중 적어도 하나를 사용하는 디버그 연산이 실행된다. 다른 특정 실시예에서, 디버그 연산은 휴지점(breakpoint) 및 감시점(watchpoint) 디버그 연산 중 하나이다.
특정 실시예에서, 프로세서는 ARM 타입의 마이크로프로세서 코어를 포함한다. 다른 특정 실시예에서, 프로세서의 프로세서 클록이 비활성화일 때 유휴 상태가 검출된다. 또 특정 실시예에서, 프로세서가 적어도 500 밀리초 동안 유휴 상태일 때 상기 유휴 상태가 전력 폭락 이벤트와 관련되는지가 결정된다. 다른 특정 실시예에서, 프로세서의 유휴 상태를 검출하기 위해 JTAG(Joint Test Action Group) 디버거를 이용하여 레지스터 스캔이 수행된다. 또 다른 특정 실시예에서, 상기 디버그 레지스터들 중 적어도 하나는 상기 프로세서가 감시자 모드로 실행할 때 테스트 가능한 디버그 구성 레지스터이다.
또 다른 특정 실시예에서, 유휴 상태의 검출 또는 전력 폭락 이벤트의 종료 검출과 관련하여 재동기 타이밍 클록(RTCK) 신호가 평가된다. 특정 실시예에서, 디버그 상태를 복구하기 전에 상기 전력 폭락 이벤트의 종료가 검출된다.
다른 특정 실시예에서, 프로세서 코어를 갖는 프로세서 상에서 디버그 연산을 수행하는 방법이 제공된다. 상기 프로세서의 실행 모드 동안 상기 프로세서 코어의 유휴 상태가 검출된다. 상기 프로세서가 유휴 상태인 동안 디버그 연산에 대한 요청이 제공된다. 상기 프로세서가 정지한 동안 상기 프로세서의 상태를 문의함으로써 상기 유휴 상태가 전력 폭락 이벤트와 관련되는지가 결정된다. 상기 방법은 또한 JTAG(Joint Test Action Group) 대기 모드로 진입하는 단계, 상기 전력 폭락 이벤트의 종료를 검출하는 단계, 디버그 레지스터들을 로딩함으로써 상기 프로세서의 디버그 상태를 복구하는 단계, 디버그 승인 신호를 검출하는 단계, 및 요청되었던 디버그 연산을 수행하는 단계를 포함한다.
특정 실시예에서, JTAG 대기 모드에 진입하기 전에 상기 프로세서에 공급되는 전력과 관련된 전력 신호가 오프된다. 다른 특정 실시예에서, 상기 방법은 유휴 상태를 검출하기 전에 클록 타이머의 만료를 검출하는 단계를 더 포함한다. 다른 특정 실시예에서, 상기 프로세서 코어의 입력/출력 인터페이스는 상기 전력 폭락 이벤트의 종료 전에 동결 상태이다.
또 다른 특정 실시예에서, 상기 프로세서 코어의 JTAG 입력/출력 인터페이스는 상기 전력 폭락 이벤트 동안 동결되고 상기 전력 폭락 이벤트의 종료를 검출한 후 동결 해제된다. 다른 특정 실시예에서, 상기 디버그 연산은 휴지점 및 감시점 디버그 연산 중 하나이다. 다른 특정 실시예에서, 상기 프로세서는 적어도 500 밀리초 동안 유휴 상태이다. 또 다른 특정 실시예에서, 상기 방법은 상기 프로세서의 유휴 상태를 검출하기 위해 JTAG 디버그 시스템을 이용하여 레지스터 스캔을 수행하는 단계를 포함한다.
다른 특정 실시예에서, 프로세서 디버깅 디바이스가 개시되며 프로세서의 유휴 상태를 검출하는 수단, 상기 프로세서가 유휴 상태인 동안 디버그 연산에 대한 요청을 제공하는 수단, 상기 유휴 상태가 전력 폭락 이벤트와 관련되는지를 결정하는 수단, 상기 전력 폭락 이벤트의 종료를 검출하고 상기 프로세서의 디버그 상태를 복구하는 수단, 및 요청되었던 디버그 연산을 수행하는 수단을 포함한다.
다른 특정 실시예에서, 집적 회로는 디버그 인터페이스, 디버그 레지스터, 모뎀 전력 관리기 및 프로세서를 포함한다. 디버그 인터페이스는 디버그 연산과 관련된 명령들을 수신하도록 적응된다. 디버그 레지스터는 상기 디버그 연산과 관련된 데이터를 저장하도록 적응된다. 모뎀 전력 관리기는 디지털 전압 레벨을 제어하며, 프로세서 비활성화 기간 동안 전력을 보존하기 위해 상기 디지털 전압 레벨을 폭락시키고 상기 프로세서 비활성화 기간이 종료되면 상기 디지털 전압 레벨을 복구하도록 적응된다. 프로세서는 상기 디버그 인터페이스 및 상기 모뎀 전력 관리기에 응답하며, 상기 디지털 전압 레벨의 복구에 응답하여 전력 출구 핀을 지정된 논리 레벨로 구동하도록 적응된다.
특정 실시예에서, 상기 디지털 전압 레벨의 복구시 상기 디버그 레지스터에 데이터가 복구된다. 다른 특정 실시예에서, JTAG(Joint Test Action Group) 인터페이스는 디버그 시스템에 접속하도록 적응된다. 상기 프로세서는 상기 디지털 전압 레벨의 폭락에 응답하여 상기 JTAG 인터페이스의 적어도 하나의 핀의 논리 레벨을 동결하도록 적응된다. 또한, 특정 실시예에서, 상기 프로세서는 상기 디지털 전압 레벨의 복구시 상기 적어도 하나의 핀의 논리 레벨을 동결 해제하도록 적응된다.
다른 특정 실시예에서, 디버그 시스템은 디버그 인터페이스, 프로세서 판독 가능 명령들 및 프로세서를 포함한다. 디버그 인터페이스는 타깃 프로세서에 접속하도록 적응된다. 프로세서 판독 가능 명령들은 디버그 연산들을 정의하고 사용자 상호 작용들을 위한 사용자 인터페이스를 정의하도록 적응된다. 프로세서는 상기 프로세서 판독 가능 명령들을 기초로 상기 사용자 인터페이스를 생성하며, 상기 프로세서 판독 가능 명령들에 응답하여 상기 디버그 연산들을 제어하도록 적응된다. 상기 프로세서는 상기 디버그 인터페이스의 핀의 상태 변화를 기초로 상기 프로세서의 전력 폭락 상태를 검출하도록 적응된다.
특정 실시예에서, 상기 프로세서는 상기 디버그 연산들 동안 상기 메모리에 디버그 레지스터들의 상태를 저장하도록 적응된다. 상기 디버그 시스템은 상기 상태의 변화에 응답하여 상기 메모리로부터 상기 디버그 레지스터들의 상태를 복구하도록 적응된다. 다른 특정 실시예에서, 상기 핀은 클록 핀을 포함하고, 상기 상태의 변화는 비활성화 기간 후 상기 클록 핀에서 상승하는 클록 에지를 포함한다.
특정 실시예에서, 휴대용 통신 디바이스는 디지털 신호 프로세서 및 제어기를 포함한다. 상기 제어기는 모뎀 전력 관리기 및 프로세서를 포함한다. 상기 모뎀 전력 관리기는 디지털 전압 레벨을 제어하고, 프로세서 비활성화 기간 동안 전력을 보존하기 위해 상기 디지털 전압 레벨을 폭락시키고 상기 프로세서 비활성화 기간이 종료되면 상기 디지털 전압 레벨을 복구하도록 적응된다. 상기 프로세서는 상기 모뎀 전력 관리기에 응답하며, 상기 통신 디바이스의 일부의 동작을 제어하도록 적응된다. 상기 프로세서는 폭락한 전력 상태로부터 상기 디지털 전압 레벨의 복구에 응답하여 전력 폭락 회복 표시를 제공하는 디버그 기능을 포함한다.
특정 실시예에서, 상기 제어기 및 상기 디지털 신호 프로세서는 테스트 핀들을 가진 집적 회로에 제공된다. 또한, 다른 특정 실시예에서, 휴대용 통신 디바이스는 아날로그 기저대역 프로세서, 스테레오 오디오 코더/디코더(CODEC), 무선 주파수(RF) 트랜시버, RF 스위치 및 RF 안테나를 포함한다. 아날로그 기저대역 프로세서는 디지털 신호 프로세서에 연결된다. 스테레오 오디오 코더/디코더(CODEC)는 아날로그 기저대역 프로세서에 연결된다. 무선 주파수(RF) 트랜시버는 아날로그 기저대역 프로세서에 연결된다. RF 스위치는 RF 트랜시버에 연결된다. RF 안테나는 RF 스위치에 연결된다.
특정 실시예에서, 프로세서 상에서 디버그 연산을 수행하기 위한 실행 가능 명령들을 구현하는 프로세서 판독 가능 매체가 제공된다. 상기 실행 가능 명령들은 프로세서의 실행 모드 동안 상기 프로세서의 유휴 상태를 검출하기 위한 명령들, 상기 유휴 상태가 전력 폭락 이벤트와 관련되는지를 결정하기 위한 명령들, 및 상기 실행 모드 동안 상기 프로세서의 디버그 레지스터들을 로딩함으로써 상기 프로세서의 디버그 상태를 복구하기 위한 명령들을 포함한다.
다른 특정 실시예에서, 프로세서 판독 가능 매체는 상기 프로세서의 유휴 상태를 검출한 후 상기 프로세서의 상태를 문의하기 위한 명령들을 더 포함한다. 또 다른 특정 실시예에서, 상기 프로세서 판독 가능 매체는 상기 디버그 레지스터들 중 적어도 하나를 사용하는 디버그 연산을 실행하기 위한 명령들을 더 포함한다. 다른 특정 실시예에서, 상기 디버그 연산은 휴지점 및 감시점 디버그 연산 중 하나를 실행하기 위한 명령들을 포함한다. 또 다른 특정 실시예에서, 상기 프로세서의 프로세서 클록이 비활성화일 때 유휴 상태가 검출된다. 또 다른 특정 실시예에서, 프로세서 판독 가능 매체는 상기 프로세서의 유휴 상태를 검출하기 위해 JTAG(Joint Test Action Group) 디버그 시스템을 이용하여 레지스터 스캔을 수행하기 위한 명령들을 더 포함한다. 또 다른 특정 실시예에서, 프로세서 판독 가능 매체는 상기 디버그 레지스터들 중 디버그 구성 레지스터를 테스트하기 위해 감시자 모드를 실행하기 위한 명령들을 더 포함한다. 또 다른 특정 실시예에서, 프로세서 판독 가능 매체는 상기 디버그 상태를 복구하기 전에 상기 전력 폭락 이벤트의 종료를 검출하기 위한 명령들을 더 포함한다.
여기서 설명하는 하나 이상의 실시예의 이점은 전력 폭락 이벤트 도중 및 후에 디버그 연산들이 수행될 수 있게 한다는 것을 포함할 수 있다.
여기서 설명하는 하나 이상의 실시예들의 다른 이점은 측대역 신호들의 추가 없이 전력 폭락 및 전력 회복 프로세스를 통해 디버그 연산들을 수행하는 것을 포함할 수 있다.
본 개시의 다른 형태, 이점 및 특징들은 다음 섹션들: 도면의 간단한 설명, 실시예 및 청구범위를 포함하여, 전체 명세서의 검토 후 명백해질 것이다.
여기서 설명하는 실시예들의 형태들 및 수반하는 이점들은 첨부 도면과 관련하여 다음의 상세한 설명을 참조로 보다 쉽게 명백해질 것이다.
도 1은 디버그 기능을 가진 고급 RISC 머신(ARM) 프로세서에 대한 디버그 구조를 설명하는 블록도이다.
도 2는 모뎀 전력 관리기를 구비한 프로세서의 블록도이다.
도 3은 프로세서 클록, 기준 클록 및 전원에 대한 유휴 상태, 슬립 상태 및 전력 폭락 상태를 설명하는 타이밍도의 일부이다.
도 4는 전력 폭락 후 디버그 레지스터들을 복구하는 방법을 설명하는 흐름도이다.
도 5는 프로세서의 전력 폭락을 검출하고 프로세서에 대한 전력 복구시 디버그 데이터를 복구하는 방법을 설명하는 흐름도이다.
도 6은 프로세서의 여러 가지 동작 모드 동안의 한 세트의 신호들을 설명하는 타이밍도의 일부이다.
도 7은 프로세서, JTAG(Joint Test Action Group) 인터페이스 및 모뎀 전력 관리기(MPM) 사이의 디버그 상호 접속의 블록도이다.
도 8은 전력 폭락 상태를 진단하고 프로세서에 대한 전원의 복구시 디버그 레지스터들을 복구하는데 사용되는 한 세트의 신호들을 설명하는 타이밍도의 일부이다.
도 9는 도 1-도 8 중 임의의 도면에 따른 디버그 기능을 가진 프로세서들을 포함하는 제어기들과 디버그 기능을 가진 프로세서를 통합하는 휴대용 통신 디바이스의 일반적인 도면이다.
도 10은 도 1-도 8 중 임의의 도면에 따른 디버그 기능을 가진 ARM 프로세서를 각각 포함할 수 있는 여러 제어기를 통합하는 예시적인 셀룰러 전화의 일반적인 도면이다.
도 11은 도 1-도 8 중 임의의 도면에 따른 디버그 기능을 가진 프로세서들을 포함하는 여러 제어기를 통합하는 예시적인 무선 인터넷 프로토콜의 일반적인 도면이다.
도 12는 도 1-도 8 중 임의의 도면에 따른 디버그 기능을 가진 프로세서들을 포함하는 여러 제어기를 통합하는 예시적인 휴대용 디지털 보조 기기의 일반적인 도면이다.
도 13은 도 1-도 8 중 임의의 도면에 따른 디버그 기능을 가진 프로세서들을 포함하는 제어기를 통합하는 예시적인 오디오 파일 플레이어의 일반적인 도면이다.
도 1은 고급 RISC 머신(ARM) 프로세서(106)와 같은 프로세서에 대한 디버그 구조(100)를 설명하는 블록도이다. 디버그 구조(100)는 호스트 컴퓨터(102), 인터페이스 프로토콜 컨버터(104) 및 프로세서(106)를 포함한다. 프로세서는 ARM 타입의 마이크로프로세서 코어일 수도 있고 프로세서 코어를 가진 프로세서일 수도 있다. 호스트 컴퓨터(102)는 컴퓨터 워크스테이션 또는 데스크탑 컴퓨터로 도시되어 있지만, 컴퓨터(102)는 휴대용 컴퓨터, 핸드헬드 연산 디바이스, 윈도우 PC, 썬 워 크스테이션 등을 포함하는 임의의 프로세서 기반 디바이스일 수도 있는 것으로 이해해야 한다. 호스트 컴퓨터(102)는 RS232 인터페이스, 병렬 인터페이스 또는 임의의 다른 적당한 인터페이스와 같은 적당한 인터페이스(112)에 의해 인터페이스 프로토콜 컨버터(104)에 접속된다. 인터페이스 프로토콜 컨버터(104)는 적당한 인터페이스(114)를 통해 프로세서(106)에 접속된다. TAP 제어기(110)를 가진 JTAG(Joint Test Action Group) 인터페이스(108)는 인터페이스(114)를 통해 프로세서(106)를 인터페이스 프로토콜 컨버터(104)에 접속한다. 인터페이스(112)를 통해 호스트 컴퓨터(102)로부터 전송되는 명령들은 인터페이스 프로토콜 컨버터(104)에 의해 프로세서(106)의 인터페이스 신호들로 변환되어 인터페이스(114)를 통해 프로세서(106)에 제공된다.
일반적으로, 인터페이스 프로토콜 컨버터(104) 개별 엘리먼트로서 도시되지만, 구현에 따라 호스트 컴퓨터(102)에 통합될 수도 있다. 인터페이스 프로토콜 컨버터(104)는 호스트 컴퓨터(102)에서 실행하는 디버그 소프트웨어가 프로세서(106)와 통신할 수 있게 한다. 일반적으로, 호스트 컴퓨터(102)는 (휴지점, 감시점 등과 같은) 고 레벨 명령들을 발행하여 프로세서(106)의 메모리의 내용을 검사하기 위한 디버그 소프트웨어 애플리케이션 또는 디버그 시스템을 실행하는 프로세서를 포함한다. 디버그 소프트웨어는 인터페이스 프로토콜 컨버터(104)를 사용하여 프로세서(106)를 디버깅하기 위한 스캔 체인들에 액세스할 수 있다. 스캔 체인들은 호스트 컴퓨터(102)의 디버그 소프트웨어가 프로세서(106)에 직접 명령들을 삽입할 수 있게 한다. 명령들은 프로세서(106) 상에서 실행되고 명령의 타입에 따 라 프로세서(106)의 상태가 검사되거나, 구해지거나 변경될 수 있다. 일반적으로, 디버그 구조는 느린 디버그 속도, 시스템 속도 또는 다른 속도들로 명령들이 실행될 수 있도록 프로세서(106) 상에서 명령들의 실행 속도를 제어하는 수단을 제공한다. 또한, 디버그 구조(100)는 사용자/운영자가 프로세서 내에서 프로세서 판독 가능 명령들의 실행을 모니터하여 프로세서, 프로세서 판독 가능 명령들 또는 이들의 임의의 조합을 디버깅할 수 있게 한다.
프로세서(106)의 JTAG 인터페이스(108)는 프로세서(106)의 디버그 연산들을 위한 스캔 체인들에 대해 호스트 컴퓨터(102)에 의한 액세스를 제공한다. 또한, JTAG 인터페이스(108)는 프로세서(106)의 디버그 데이터 및 시스템 상태 데이터에 대해 호스트 컴퓨터(102)에 의한 액세스를 제공한다. 일반적으로, 프로세서(106)는 디버그 연산들을 시작하기 위해 실행하고 있을 필요가 없다. 정지 디버그 모드에서, 디버그 연장은 호스트 컴퓨터(102)가 프로세서(106)를 디버그 상태에 놓게 할 수 있어, 프로세서(106)의 내부 상태가 검사될 수 있게 하는 동시에, 다른 시스템 활동의 진행이 허용될 수 있다. 모니터 디버그 모드에서, 정지 디버그 모드에 들어가지 않고 프로세서(106)를 디버깅하기 위해 휴지점 또는 감시점에서 명령 중단이 발생할 수 있다. 호스트 컴퓨터(102)에서 실행하는 디버그 모니터 소프트웨어 애플리케이션과 관련하여 이용될 때, 프로세서(106)를 디버깅할 수 있는 동시에 중요한 인터럽트 서비스 루틴의 실행을 가능하게 할 수 있다.
호스트 컴퓨터(102)는 메모리(120), 소프트웨어 디버그 시스템을 정의하는 프로세서 판독 가능 명령들(122), 및 프로세서(124)를 포함한다. 프로세서(124)는 메모리(120)에 액세스하고 프로세서 판독 가능 명령들(122)을 실행하여 그래픽 디버거 사용자 인터페이스(126)를 가진 디버그 소프트웨어 애플리케이션을 생성하도록 적응된다. 사용자는 그래픽 사용자 인터페이스(126)와 상호 작용하여 프로세서(106) 상에서의 디버그 연산들을 시작하고, 디버그 연산들을 위한 세팅들을 정의하며, 디버그 연산들의 진행을 모니터할 수 있다. 메모리(120)는 디버그 세팅들, 프로세서 상태 데이터, 및 디버그 연산 동안 전력 폭락이 일어날 때의 디버그 레지스터 데이터를 저장하는데 사용될 수 있다. 호스트 컴퓨터(102) 상에서 실행하는 디버그 소프트웨어 애플리케이션은 메모리(120)에 저장된 데이터를 이용하여 디버그 레지스터들 및 전력이 복구될 때 프로세서(106)의 다른 디버그 세팅들을 복구할 수 있다. 일 실시예에서, 디버그 레지스터들 중 하나는 프로세서가 감시자 모드로 실행할 때는 테스트 가능하고 프로세서가 사용자 모드로 실행할 때는 테스트 가능하지 않은 디버그 구성 레지스터이다.
도 2는 모뎀 전력 관리기(210)를 구비한 대표적인 프로세서(106)의 블록도(200)이다. 프로세서(106)는 JTAG 인터페이스(108), TAP 제어기(110), 메인 프로세서 로직(202), 임베디드 로직(204), 스캔 체인(206, 208), 모뎀 전력 관리기(MPM)(210) 및 디버그 레지스터들(212)을 포함한다. 일반적으로, JTAG 인터페이스(108)는 인터페이스 프로토콜 컨버터(104)를 통해 (도 1의 호스트 컴퓨터(102)와 같은) 호스트 디버거 시스템에 접속되도록 적응된다. JTAG 인터페이스(108)는 명령들을 수신하여 명령들을 TAP 제어기(110)에 제공하며, TAP 제어기(110)는 프로세서(106) 내의 디버그 연산들을 제어한다. 특히, 호스트 디버거 시스템은 스캔 체 인(206, 208)에 액세스함으로써 TAP 제어기(110)에 의해 프로세서(106)에 명령들을 삽입할 수 있다.
MPM(210)은 전력 폭락 모드와 같은 전력 절약 피처의 입장 및 퇴장을 제어하도록 적응된다. 전력 폭락은 디지털 로직 도메인(VDD DIG)의 전압을 제어하는 전압 조정기가 차단되는 전력 관련 이벤트이다. 전력 조정기를 차단함으로써 프로세서(및 관련 회로)의 정적 또는 대기 전류 소비가 감소한다. 전력 폭락 모드 동안 MPM(210)에 전력이 공급되더라도, 전력 폭락 후 MPM(210) 외부의 어떠한 레지스터들의 상태도 알려지지 않을 수 없다. 따라서 전력 폭락 후 MPM(210)은 리셋 신호를 선언하여 메인 프로세서 로직(202) 및 임베디드 로직(204)과 같은 내부 프로세서 코어들을 초기화한다. 리셋은 디버그 로직을 리셋하기 위한 리셋 디버그 로직(TRST_n)을 포함한다.
프로세서(106)의 디버그 레지스터들(212)은 전력 폭락 영역에 상주하기 때문에, 디버그 레지스터들(212)은 상태를 잃고 전력이 복구될 때 복구될 필요가 있다. 디버그 레지스터들(212)의 상태를 복구하기 위해, 메인 프로세서 로직(202) 및 임베디드 로직(204)은 디버그 모드가 되고, 호스트 컴퓨터(102) 상의 디버거 애플리케이션은 예를 들어 메모리(120)로부터 디버그 레지스터들(212)을 복구하고 프로세서(106)를 재시작한다.
도 3은 프로세서 클록, 기준 클록 및 전원에 대한 유휴 상태, 슬립 상태 및 전력 폭락 상태를 설명하는 타이밍도(300)의 일부이다. 일반적으로, 유휴 상태, 슬립 상태 및 전력 폭락 상태는 프로세서(106)가 진입할 수 있고 JTAG 통신을 방지 또는 중지할 수 있는 서로 다른 세 가지 저 전력 또는 전력 절약 모드를 나타낸다. 세 가지 상태 중 임의의 상태에서, ARM 클록이 동결되기 때문에(예를 들어, 토글하지 않기 때문에) JTAG 레지스터들의 스캔은 실패한다. ARM9-S 코어에서, 예를 들어 디버그 레지스터 스캔은 기준 클록(TCK)에 의해 게이트되는 ARM 클록에 의해 구동된다. 호스트 컴퓨터(102) 상에서 실행하는 디버거 애플리케이션은 세 가지 전력 절약 상태를 구분하도록 적응된다.
도 3에 나타낸 것과 같이, 유휴 상태 동안 전원(VDD_DIG)은 하이(high)이고, 기준 클록(TCXO)은 토글하며, 프로세서 클록(ARM_CLK)은 유휴 상태이다. 유휴 상태는 프로세서에 의해 수행되어야 하는 작업이 없을 때 전력을 절약한다. 대부분의 경우, 유휴 상태는 인터럽트가 수신될 때까지 비교적 짧은 기간 동안 지속한다. 인터럽트는 몇 클록 주기 내에 프로세서 클록을 인에이블하거나 재가동시킨다. 구현에 따라, 프로세서에 대한 디버그 명령은 여러 가지 방식으로 처리될 수 있다. 한 구현에서, 프로세서는 디버그 명령이 제시되는지에 상관없이 유휴 상태에 진입한다. 다른 구현에서, 프로세서는 현재 스캔을 마치고 유휴 상태에 진입하기 전에 디버그 명령이 무효화(deassert)될 때까지 대기한다. 어떤 프로세서들은 유휴 상태일 때 디버그 명령의 수신시 프로세서 클록을 인에이블할 것이다.
슬립 상태 또는 모드 동안, 전원(VDD_DIG)은 하이이고, 기준 클록(TXCO)은 몇 클록 사이클 후 유휴 상태가 되며, 프로세서 클록(ARM_CLK)은 유휴 상태이다. 슬립 모드 또는 상태는 장기간의 프로세서 비활성화 동안 프로세서 및 버스 전력을 절약한다. 예를 들어, 디지털 무선 전화(셀룰러, PCS 또는 다른 타입의 무선 전 화) 내의 프로세서에는, 전화가 온 상태이지만 사용되고 있지 않을 때 긴 비활성화 기간이 존재할 수 있다. 대부분의 경우, 슬립 모드는 유휴 모드보다 긴 기간 동안 지속한다. 슬립 모드 동안 수신된 디버그 명령은 다음 인터럽트가 수신될 때까지 무시되고, 이 시점에서 프로세서는 인터럽트를 서비스하고 그리고/또는 수신된 디버그 명령에 응답하기로 결정한다.
전력 폭락 상태 동안, 전원(VDD_DIG)은 로우(low)이고, 기준 클록(TXCO)은 몇 클록 사이클 후 유휴 상태가 되며, 프로세서 클록(ARM_CLK)은 유휴 상태이다. 전력 폭락 상태는 긴 비활성화 기간 동안 디지털 전원 전압(VDD_DIG)을 차단함으로써 전력을 절약한다. 전력 폭락 상태에 들어가기 위해, 프로세서는 모든 클록 지배 기간(regime)을 디세이블하고, 모든 위상 고정 루프(PLL)를 오프하며, SDRAM을 셀프-리프레시 모드로 하고, 프로세서 및 버스 클록을 디세이블하고, 기준 클록(TXCO)을 디세이블하고, 칩의 입력/출력(I/O)을 동결하고, 전원 조정기를 오프한다.
전력 폭락 모드는 높은 우선순위의 인터럽트가 수신되지 않는 한 두 번째보다 오래 지속한다. 프로세서가 전력 폭락 상태에 있는 동안 디버그 명령이 수신되지 않는다면, 다음 인터럽트가 수신될 때까지 디버그 명령이 무시된다. 일단 인터럽트가 수신되면, 기준 클록(TXCO)이 인에이블되고, 전원 조정기(VDD_DIG)는 전력이 상승하며, 리셋이 선언되고, ARM 및 버스 클록이 재시작된다. 재동기 타이밍 클록(RTCK)이 재시작되고, 호스트 컴퓨터의 디버거 소프트웨어가 칩의 입력/출력(I/O)이 해제되기 전 약 4 밀리초 내에 디버그 레지스터들을 복구한다.
일반적으로, 재동기 타이밍 클록(RTCK)은 타이밍 클록(TCK)의 재동기화된 지연 버전이다. 디버거는 RTCK를 이용하도록 구성될 수 있다. 프로세서가 정지될 때 RTCK 신호는 프로세서가 저 전력 모드에 있는지와 상관없이 고 레벨로 또는 저 레벨로 동결된다. RTCK 타임아웃이 구성될 수도 있고 사용자 프로그램될 수도 있다. 특정 실시예에서, RTCK 타임아웃 세팅은 대부분의 유휴 기간이 타임아웃을 트리거하지 않고 표준 슬립 기간이 타임아웃을 트리거하기에 충분히 길도록 구성된다.
일반적으로, 전력 폭락 듀레이션이 RTCK 타임아웃 기간보다 짧다면, 현재 스캔이 훼손될 수 있다. 그러나 디버거는 상태 레지스터들만을 스캔하고 있는 것으로 가정되기 때문에, 스캔 훼손은 문제가 되지 않는다. 유휴 상태 듀레이션이 RTCK 타임아웃을 일으킨다면, 클록들이 재가동된 후 시프트 레지스터들에 쓰레기가 남을 수도 있다. 그러나 스캔은 상태 레지스터 판독 동작인 것으로 가정되기 때문에 디버거는 스캔을 안전하게 중단하고 이동할 수 있다.
마지막 기준 클록 에지가 타임아웃 기간 내에 프로세서의 재동기 타이밍 클록(RTCK) 핀에 나타나지 않으면, 디버거의 현재 스캔이 중단될 수 있고, 디버거는 TAP 제어기를 디버그 로직 리셋 상태로 설정한다. 일반적으로, RTCK 타임아웃은 클록 타이머의 만료를 기초로 결정될 수 있다. 일 실시예에서, 5개의 기준 클록 사이클에 대해 코어 리셋 핀의 전압 레벨을 하이로 유지함으로써 디버그 로직 리셋 상태가 설정될 수 있다. 다음 재동기 타이밍 클록(RTCK) 신호가 검출되면, 프로세서는 동작을 다시 시작한다. 디버그 로직 리셋 상태로의 전이 동안 임의의 시점에 RTCK 타임아웃이 발생한다면, 프로세스가 재시작된다.
TAP 제어기가 디버그 로직 리셋 상태라면, 디버그 시스템은 상태 레지스터들의 스캔을 수행할 수 있다. 상태 레지스터 값은 프로세서의 현재 상태를 결정하게 된다. 상태 레지스터에 의해 지시되는 현재 상태가 프로세서가 실행중임을 지시한다면, 프로세서는 슬립 또는 유휴 모드일 수 있으며, 디버거는 어떠한 추가 동작도 취하지 않는다. 상태 레지스터가 프로세서 정지를 지시한다면, 정지한 동작은 사용자 휴지점(유휴 모드 또는 슬립 모드)에 기인할 수 있으며, 이 경우 디버거는 사용자 휴지점에 응답하여 통상의 단계들을 수행한다. 모뎀 전력 관리기(MPM) 내의 전력 폭락 회복 로직으로부터의 디버그 명령(EDBGRQ)으로 인해 프로세서가 정지한다면, 디버거는 4 밀리초 내에 디버그 레지스터들, ETB 레지스터들 또는 이들의 임의의 조합을 복구한다. 디버그 레지스터들이 복구되면, 디버거는 디버그 승인(DBGACK)을 해제하여 프로세서를 다시 시작한다.
도 4는 전력 폭락 후 디버그 레지스터들을 복구하는 방법을 설명하는 흐름도이다. 프로세서의 실행 모드 동안 프로세서의 유휴 상태가 검출된다(블록 400). 유휴 상태가 전력 폭락 이벤트와 관련되는지가 결정된다(블록 402). 실행 모드 동안 프로세서 내에 디버깅 레지스터들을 재로딩함으로써 프로세서의 디버그 상태가 복구된다(블록 406). 일 실시예에서, 프로세서는 유휴 상태를 검출하기 전 적어도 500 밀리초 동안 유휴 상태에 있다.
도 5는 프로세서의 전력 폭락을 검출하고 프로세서에 대한 전력 복구시 디버그 데이터를 복구하는 방법을 설명하는 흐름도이다. 디버거를 이용하여 프로세서 의 상태 레지스터들이 스캔된다(블록 500). 기준 블록의 클록 에지가 시간 주기 내에 JTAG 인터페이스의 재동기 타이밍 클록(RTCK) 핀에 나타나는데 실패할 때 타임아웃 상태가 검출된다(블록 502). 디버거가 디버그 로직 리셋 상태에 진입한다(블록 504). 디버거가 다음 RTCK 신호 에지를 검출하며(블록 506), 이는 프로세서가 또 활성화되었음을 지시한다. 디버거는 상태 레지스터들을 스캔하여 프로세서의 현재 상태를 결정한다(블록 508). 디버거가 전력 폭락으로 인해 프로세서가 정지했다고 결정하면, 디버거는 통상적으로 4 밀리초 내에 디버그 레지스터들, ETM 레지스터들, ETB 레지스터들, 또는 이들의 임의의 조합을 복구한다(블록 510). 레지스터들이 복구되면 디버거는 프로세서를 다시 시작한다(블록 512).
일반적으로, 모뎀 전력 관리기(MPM)는 전력 폭락 디버그 기능을 가진 이동 통신 디바이스 내의 회로와 같은 집적 회로와 통합될 수 있다. MPM의 레지스터 비트(DEBUG_SELECT)는 전력 폭락 디버그 기능을 인에이블한다. 특정 실시예에서, 전력 폭락 동안 모든 JTAG 입력/출력(I/O)이 동결되고 디지털 전원(VDD_DIG)이 안정되고 리셋이 해제되면 동결 해제된다.
MPM은 프로세서 코어에 대한 리셋 디버그 로직 신호(TRST_N)를 선언한다. 전력 폭락 복구 동안, MPM은 외부 디버그 요청(MPM_EDBGRQ)을 선언한다. 특정 실시예에서, 5개의 기준 클록 사이클 내에 외부 디버그 요청의 수신시 프로세서가 정지한다. 외부 디버그 요청이 검출되고 프로세서가 정지하면 디버그 승인(DBGACK)이 선언된다. 클록 사이클 수를 적게 유지함으로써, 프로세서는 디버그 요청을 검출하고 정지하기 전에 더 적은 명령들을 실행한다.
도 6은 프로세서의 여러 가지 동작 모드 동안의 한 세트의 신호들을 보여주는 타이밍도(600)의 일부를 설명한다. 특히, 타이밍도는 20-핀 JTAG(Joint Test Action Group) 인터페이스의 여러 핀 상의 신호를 설명한다. 일반적으로, 이들 핀은 전력 폭락 상태를 검출하고 전력 폭락 복구를 실행하여 디버그 레지스터들을 복구하는데 이용될 수 있다. 도시한 바와 같이, 프로세서의 ARM 상태가 602에 표시된다.
실행 상태 동안, 프로세서에 대한 디지털 전원 전압(VDD_DIG)은 하이이고, 리셋은 논리 로우로 유지되며, 리셋 디버그 로직(TRST_N)은 논리 하이로 유지된다. 외부 디버그 요청(EDBGRQ) 핀 및 디버그 승인 핀(DBGACK)은 논리 로우로 유지된다. 기준 클록(TCXO) 및 프로세서 클록(ARM_CLK)은 토글한다. 타이밍 클록(TCK) 및 재동기 타이밍 클록(RTCK)은 토글한다.
프로세서가 유휴 상태로 변경될 때 프로세서에 대한 디지털 전원 전압(VDD_DIG)은 실행 상태의 레벨 이하로 떨어진다. 리셋은 논리 로우로 유지되고, 리셋 디버그 로직(TRST_N)은 논리 하이로 유지된다. 외부 디버그 요청(EDBGRQ) 핀 및 디버그 승인 핀(DBGACK)은 논리 로우로 유지된다. 기준 클록(TCXO)은 토글한다. 그러나 프로세서 클록(ARM_CLK)은 정지한다. 타이밍 클록(TCK)은 정지하고 재동기 타이밍 클록(RTCK)은 동결 상태를 유지한다.
프로세서가 전력 폭락 상태로 변경될 때 프로세서에 대한 디지털 전원 전압(VDD_DIG)은 차단된다(거의 0 볼트로 떨어진다). 리셋은 논리 로우로 유지되고, 리셋 디버그 로직(TRST_N)은 논리 하이로 동결된다. 외부 디버그 요청(EDBGRQ) 핀 및 디버그 승인 핀(DBGACK)은 논리 로우로 동결된다. 기준 클록(TCXO)은 몇 클록 사이클 동안 토글한 다음 정지한다. 프로세서 클록(ARM_CLK)은 그대로 정지해 있다. 타이밍 클록(TCK)은 정지하고 재동기 타이밍 클록(RTCK)은 동결 상태를 유지한다.
디지털 전원(VDD_DIG)이 복구될 때 프로세서는 전력 폭락 복구 상태 또는 리셋 상태에 진입한다. 코어 리셋 핀은 논리 하이로 구동되고, 리셋 디버그 로직 핀은 논리 로우로 구동된다. 외부 디버그 요청(EDBGRQ)은 논리 하이로 구동되는 한편, 디버그 승인 핀(DBGACK)은 논리 로우로 유지된다. 기준 클록(TCXO)은 토글하기 시작하는 한편, 프로세서 클록(ARM_CLK)은 그대로 정지해 있다. 타이밍 클록(TCK)은 그대로 정지해 있고, 재동기 타이밍 클록(RTCK)은 동결 상태를 유지한다.
짧은 기간의 시간 후에, 디지털 전원 전압(VDD_DIG)은 안정적인 높은 전압 레벨로 복구되고, 이는 통상적으로 프로세서의 실행 상태에 해당한다. 그러나 프로세서는 여전히 리셋 상태에 있다. 이 시점에서, 프로세서 클록(ARM_CLK)은 토글을 시작한다. 코어 리셋 핀은 논리 로우로 구동되고, 리셋 디버그 로직 핀(TRST_N)은 논리 하이로 구동된다.
이 시점에서, 프로세서는 실행 상태에 진입한다. 재동기 타이밍 클록(RTCK)은 동결 해제된다. JTAG 디버그 시스템은 재동기 타이밍 클록(RTCK)의 하강 에지를 이용하여 JTAG 대기 모드에 진입함으로써 타이밍 클록(TCK) 핀의 상태를 모니터하여 프로세서가 언제 유휴, 슬립 또는 전력 폭락 상태를 빠져나왔는지 검출할 수 있다.
몇 클록 사이클 후 프로세서는 (프로세서에 의한 외부 디버그 요청 핀(EDBGRQ)의 논리 하이 상태 검출시) 디버그 중단 상태에 들어간다. JTAG 디버그 시스템은 상승 에지에 대해 타이밍 클록(TCK)을 모니터한다. 타이밍 클록(TCK)의 상승 에지가 검출되면, JTAG 디버그 시스템은 프로세서를 정지하고 상태 레지스터들을 문의하거나 스캔하여 프로세서의 상태를 결정한다. 디버그 승인 핀(DBGACK)은 논리 하이로 구동되고, 외부 디버그 요청 핀(EDBGRQ)은 논리 로우로 구동된다. 이 시점에서, JTAG 디버그 시스템이 프로세서가 전력 폭락 상태로부터 복구되고 있다고 결정하면, JTAG 디버그 시스템은 메모리로부터 휴지점 및 감시점을 포함하는 디버그 레지스터들의 상태를 포함하는 디버그 상태를 복구한다. 디버그 승인 핀(DBGACK)이 논리 하이로 유지되는 동안 복구 동작이 일어난다. 바람직하게는, 약 4 밀리초 내에 복구 동작이 완료한다.
디버그 레지스터들 및 프로세서의 사전-전력 폭락 상태가 JTAG 디버그 시스템에 의해 복구되면, JTAG 디버그 시스템은 디버그 승인 핀(DBGACK)의 논리 레벨을 해제함으로써 디버그 세팅에 따라 디버그 모드로 정상적인 프로세서 실행을 재시작한다. JTAG 디버그 시스템은 복구된 디버그 레지스터들 중 적어도 하나를 이용하여 프로세서에 대한 디버그 연산을 수행할 수 있다. 예를 들어, 디버그 연산들이 느린 프로세서 실행을 위해 구성되었다면, 프로세서는 느린 실행을 재개하게 된다.
정적 재동기 타이밍 클록(RTCK)을 이용하여 프로세서의 상태 변화를 검출하고 JTAG 디버그 시스템에 의한 프로세서 상태의 스캔을 트리거함으로써, 도 1 및 도 2에 나타낸 것과 같은 기존 20-핀 JTAG 인터페이스가 측대역 신호들의 추가 없이 전력 폭락 및 전력 복구 프로세스를 통해 디버그 연산을 수행하는데 이용될 수 있다.
도 7은 프로세서(704), JTAG 인터페이스(108) 및 모뎀 전력 관리기(MPM; 702) 사이의 디버그 상호 접속의 블록도(700)이다. JTAG 인터페이스(108)는 프로세서(704)에 대해 3개의 접속 핀을 갖는 것으로 도시된다. JTAG 인터페이스는 프로세서(704)와 상호 접속하기 위한 20개의 핀을 포함하지만, 설명을 간소화하기 위해 전력 폭락 및 복구 프로세서의 디버깅과 관련하여 3개의 접속만 도시되는 것으로 이해해야 한다. JTAG 인터페이스(108)는 호스트 디버그 시스템이 타이밍 클록 핀(TCK) 및 재동기 타이밍 클록 핀(RTCK)을 스캔할 수 있게 한다. 또한, JTAG 인터페이스(108)는 로직(708)을 통해 리셋 디버그 로직 핀(TRST_N)에 접속된다.
일반적으로, MPM(702)은 프로세서(704)의 코어 리셋 핀 및 외부 디버그 요청 핀(EDBGRQ)의 논리 레벨을 제어한다. MPM(702)은 전력 조정기를 차단하고 디지털 논리 영역의 전압을 제어하기 때문에, MPM(702)은 프로세서(704)에 언제 리셋 디버그 로직(TRST_N)을 선언해야 하는지를 알고 있다. 또한, 전력 폭락 복구 동안 MPM(702)은 프로세서(704)에 외부 디버그 요청(EDBGRQ)을 선언하여 디버그 정지를 시작한다. 프로세서(704)로부터 디버그 승인(DBGACK)이 수신되면, MPM(702)은 외부 디버그 요청(EDGBRQ)을 무효화하고, JTAG 디버그 시스템은 코드 내에 휴지점 및 감시점을 포함하는 선택된 디버그 레지스터들의 상태 및 프로세서(702)의 상태를 복구할 수 있다.
도 7의 실시예에서, 프로세서(704)는 디버그 승인 핀(DBGACK)에 전력 출구 신호를 제공하도록 적응될 수 있다. 특히, MPM(702)은 멀티플렉서(706)에 대한 디버그 인에이블을 제공한다. 전력 출구 신호가 하이 논리 레벨이면, 프로세서(704)는 전력 폭락을 빠져나갈 때 디버그 모드에서 정지한다. 전력 출구 신호는 멀티플렉서(706)를 통해 JTAG 20-핀 커넥터의 핀(11)(재동기 클록 RTCK)으로 라우팅될 수 있다. 전력 폭락 모드 동안, 정상적인 재동기 타이밍 클록(RTCK)은 프로세서(704)에서 디세이블될 수 있다. 사용자는 재동기 타이밍 클록(RTCK) 대신 고정 타이밍 클록(TCK)을 이용하도록 JTAG 디버그 시스템을 구성할 수 있다.
프로세서(704)가 전력 폭락 상태에 들어갈 때 JTAG 신호들은 현재 레벨로 동결된다. JTAG 인터페이스(702)를 통해 프로세서에 연결된 호스트 프로세서 상에서 실행하는 JTAG 디버그 소프트웨어 애플리케이션은 타이밍 클록(TCK)/TDK/TD0 핀에서 전력 폭락이 일어났음을 나타내는 비트 시퀀스를 검출하기 위한 알고리즘을 통합할 수 있다. JTAG 디버그 시스템에 의한 임의의 부분 스캔들은 중단될 수 있고 디버거는 JTAG 대기 모드로 진행하여 재동기 타이밍 클록(RTCK) 핀에서 활성 하이 레벨을 기다릴 수 있으며, 이는 프로세서(704)가 전력 폭락을 빠져나왔고 디버그 모드로 정지함을 지시한다. JTAG 디버그 시스템은 프로세서(704)의 디버그 및 ETM 레지스터 세팅을 복구할 수 있다. JTAG 디버그 시스템은 복구 연산을 구현하기 위해 디버그 레지스터들 및 ETM 레지스터들에 기록된 값들의 로컬 카피를 메모리에 유지한다. 디버그 및 ETM 레지스터들이 복구된 후 JTAG 디버그 시스템은 프로세서(704)가 프로그램 실행을 재시작하게 하는 명령들을 스캔할 수 있다.
일반적으로, JTAG 디버그 시스템은 전력 폭락 전 진행중이었던 임의의 ETM 자취와 관련된 데이터를 보유해야 한다. 프로세서(704)가 전력 다운될 경우, JTAG 디버그 시스템은 재동기 타이밍 클록(RTCK)이 동결될 때 치명적인 에러를 발생시키지 않아야 한다. JTAG 디버그 시스템은 구성 가능한 타임아웃 세팅에 디버거 그래픽 사용자 인터페이스를 제공하도록 적응될 수 있다.
재동기 타이밍 클록(RTCK)은 전력 폭락 전 또는 전력 출구 신호가 무효화된 후 토글할 수 있는 것으로 이해해야 한다. 이는 (동결 상태를 검출하고 동결 상태에 응답하여 JTAG 대기 모드에 들어가기 위해 재동기 타이밍 클록 신호의 동결 상태가 모니터될 때와 같은) 정적 다중화가 아니라 프로세서(702) 재동기 타이밍 클록(RTCK) 및 전력 출구 신호의 동적 다중화의 경우에 일어날 수 있다. 디버그 승인(DBGACK) 또는 (도시하지 않은) 개별 전력 출구 핀으로부터의 전력 출구 신호를 다중화하기 위해 MUX(706)가 사용된다면, JTAG 디버그 시스템은 이 토글을 무시하도록 적응된다.
전력 출구 신호는 프로세서(704)로부터의 디버그 승인(DBGACK)의 지연 버전을 나타내기 때문에, 전력 출구 신호는 하이 논리 레벨을 유지해야 하는 한편, 프로세서(704)는 디버그 모드이다. 일반적으로, 전력 출구 신호는 레벨 민감 상태 비트로서 취급된다. 따라서 이는 JTAG 디버그 시스템에 의해 샘플링되기에 충분히 길게 논리 하이를 유지해야 한다. 특정 실시예에서, 전력 출구 신호는 적어도 20 마이크로초 동안 논리 하이를 유지해야 한다. 프로세서(704)가 디버그 모드중에 단기간 동안 디버그 승인(DBGACK)을 무효화한다면, 디버그 모드 동안 디버그 승 인(DBGACK)을 논리 하이로 하기 위해 프로세서의 (도 2의 스캔 체인(206, 208)과 같은) JTAG 스캔 체인에 제어 비트를 제공하는 것이 바람직할 수 있다.
도 8은 전력 폭락 상태를 진단하고 도 7의 프로세서에 대한 전원의 복구시 디버그 레지스터들을 복구하는데 사용되는 한 세트의 신호들을 설명하는 타이밍도(800)의 일부이다. 전력 폭락으로부터의 복구시 디지털 전원(VDD_DIG)이 상승한다. 코어 리셋 핀은 논리 하이로 구동되고 리셋 디버그 로직(TRST_N) 논리 로우로 구동된다. 모뎀 전력 관리기는 외부 디버그 요청 핀(EDBGRQ)을 논리 하이로 구동한다.
디지털 전원이 하이 상태로 안정화된 후, 코어 리셋 핀은 논리 로우로 구동되고 리셋 디버그 로직 핀은 논리 하이로 구동된다. 리셋 신호의 하강 에지에 의해 프로세서는 외부 디버그 요청(EDBGRQ) 핀이 논리 하이임을 검출한다. 프로세서는 디버그 승인 신호를 논리 하이 레벨로 구동한다. 이 시점에서, 모뎀 전력 관리기는 외부 디버그 요청 핀(EDBGRQ)을 논리 로우 레벨로 구동하고, 프로세서는 전력 출구 핀을 논리 하이로 구동한다. 전력 출구의 논리 하이 상태는 예를 들어 재동기 타이밍 클록(RTCK) 핀에서 JTAG 디버그 시스템에 의해 검출될 수 있다. (도 7의) 멀티플렉서(706)는 전력 출구 신호를 RTCK 핀에 다중화할 수 있다. 따라서 RTCK 핀의 상태 변화가 전력 폭락을 검출하는데 사용될 수 있고, JTAG 디버그 시스템은 디버그 및 ETM 레지스터의 상태를 복구할 수 있다.
도 9는 일반적으로 표시되는 휴대용 통신 디바이스(900)의 예시적이지만 한정적이지 않은 실시예를 나타낸다. 도 9에 나타낸 것과 같이, 휴대용 통신 디바이 스는 디지털 신호 프로세서(910)를 포함하는 온-칩(on-chip) 시스템(922)을 포함한다. 도 9는 또한 디지털 신호 프로세서(910) 및 디스플레이(928)에 연결되는 디스플레이 제어기(926)를 나타낸다. 더욱이, 입력 디바이스(930)가 디지털 신호 프로세서(910)에 연결된다. 도시한 바와 같이, 메모리(932)가 디지털 신호 프로세서(910)에 연결된다. 추가로, 코더/디코더(CODEC; 934)가 디지털 신호 프로세서(910)에 연결될 수 있다. 스피커(936) 및 마이크(938)가 CODEC(930)에 연결될 수 있다.
도 9는 또한 디지털 신호 프로세서(910) 및 무선 안테나(942)에 무선 제어기(940)가 연결될 수 있음을 나타낸다. 특정 실시예에서, 온-칩 시스템(922)에 전원(944)이 연결된다. 더욱이, 특정 실시예에서는, 도 9에 나타낸 것과 같이 디스플레이(928), 입력 디바이스(930), 스피커(936), 마이크(938), 무선 안테나(942) 및 전원(944)이 온-칩 시스템(922) 외부에 있다. 그러나 각각은 온-칩 시스템(922)의 컴포넌트에 연결된다.
사용자의 음성을 나타내는 전기 신호들이 CODEC(934)에 전송되어 인코딩될 수 있다. 디지털 신호 프로세서(910)는 CODEC(934)에 대한 데이터 처리 동작들을 수행하여 마이크로부터의 전기 신호들을 인코딩하도록 적응된다. 또한, 무선 안테나(942)를 통해 수신되는 들어오는 신호들은 무선 제어기(940)에 의해 CODEC(934)에 전송되어 디코딩되고 스피커(936)에 전송될 수 있다. 디지털 신호 프로세서(910)는 또한 무선 안테나(942)를 통해 수신되는 신호를 디코딩할 때 CODEC(934)에 대한 데이터 처리를 수행하도록 적응된다.
또한, 디지털 신호 프로세서(910)는 무선 통신 세션 전, 무선 통신 세션 도중, 무선 통신 세션 후, 또는 이들의 임의의 조합에서 입력 디바이스(930)로부터 수신되는 입력들을 처리할 수 있다. 예를 들어, 무선 통신 세션 도중 사용자는 입력 디바이스(930) 및 디스플레이(928)를 이용하여 휴대용 통신 디바이스(900)의 메모리(932) 내에 임베드된 웹 브라우저를 통해 인터넷 서핑을 할 수 있다.
일반적으로, 휴대용 통신 디바이스(900) 도 1-8에서 설명한 것과 같은 디버그 기능을 가진 ARM 프로세서(106)를 포함한다. ARM 프로세서(106)는 휴대용 통신 디바이스(900)의 동작을 제어할 수 있다. 또한, 디스플레이 제어기(926) 및 무선제어기(940)는 각각 도 1-8에서 상술한 것과 같은 디버그 기능을 가진 프로세서를 포함할 수 있다. 온-칩 시스템(922)은 프로세서(106)와 같은, 그리고 디스플레이 제어기(926) 및 무선 제어기(940) 내의 프로세서들과 같은 프로세서들의 동작을 디버깅하기 위한 JTAG(Joint Test Action Group) 디버거에 연결하기 위한 (도시하지 않은) 테스트 핀들을 포함할 수 있다.
도 10을 참조하면, 셀룰러 전화(1000)의 예시적이지만 한정적이지 않은 실시예가 도시되고 일반적으로 표시된다. 도시된 바와 같이, 셀룰러 전화(1000)는 함께 연결된 디지털 기저대역 프로세서(1010) 및 아날로그 기저대역 프로세서(1026)를 포함하는 온-칩 시스템(1022)을 포함한다. 도 10에 나타낸 것과 같이, 디스플레이 제어기(1028) 및 터치스크린 제어기(1030)가 디지털 기저대역 프로세서(1010)에 연결된다. 그리고 온-칩 시스템(1022) 외부의 터치스크린 디스플레이(1032)가 디스플레이 제어기(1028) 및 터치스크린 제어기(1030)에 연결된다.
도 10은 또한 비디오 인코더(1034), 예를 들어 위상 교대 라인(PAL) 인코더, SECAM(sequential couleur a memoire) 인코더 또는 NTSC(national television system(s) committee) 인코더가 디지털 기저대역 프로세서(1010)에 연결됨을 지시한다. 또한, 비디오 증폭기(1036)가 비디오 인코더(1034) 및 터치스크린 디스플레이(1032)에 연결된다. 또한, 비디오 포트(1038)가 비디오 증폭기(1036)에 연결된다. 도 10에 나타낸 것과 같이, 범용 직렬 버스(USB) 제어기(1040)가 디지털 기저대역 프로세서(1010)에 연결된다. 또한, USB 포트(1042)가 USB 제어기(1040)에 연결된다. 메모리(1044) 및 가입자 식별 모듈(SIM) 카드(1046) 또한 디지털 기저대역 프로세서(1010)에 연결될 수 있다. 또한, 도 10에 나타낸 것과 같이, 디지털 카메라(1048)가 디지털 기저대역 프로세서(1010)에 연결될 수 있다. 예시적인 실시예에서, 디지털 카메라(1048)는 전하 결합 소자(CCD) 카메라 또는 상보성 금속 산화물 반도체(CMOS) 카메라이다.
도 10에 나타낸 것과 같이, 스테레오 오디오 CODEC(1080)이 아날로그 기저대역 프로세서(1026)에 연결될 수 있다. 더욱이, 오디오 증폭기(1082)가 스테레오 오디오 CODEC(1080)에 연결될 수 있다. 예시적인 실시예에서, 제 1 스테레오 스피커(1084) 및 제 2 스테레오 스피커(1086)가 오디오 증폭기(1082)에 연결된다. 도 10은 마이크 증폭기(1088) 또한 스테레오 오디오 CODEC(1080)에 연결될 수 있음을 나타낸다. 추가로, 마이크(1060)가 마이크 증폭기(1088)에 연결될 수 있다. 특정 실시예에서, 주파수 변조(FM) 라디오 튜너(1062)가 스테레오 오디오 CODEC(1080)에 연결될 수 있다. 또한, FM 안테나(1064)가 FM 라디오 튜너(1062)에 연결된다. 또 스테레오 헤드폰(1066)이 스테레오 오디오 CODEC(1080)에 연결될 수 있다.
도 10은 또한 무선 주파수(RF) 트랜시버(1068)가 아날로그 기저대역 프로세서(1026)에 연결될 수 있음을 지시한다. RF 스위치(1070)는 RF 트랜시버(1068) 및 RF 안테나(1072)에 연결될 수 있다. 도 10에 나타낸 바와 같이, 키패드(1074)가 아날로그 기저대역 프로세서(1026)에 연결될 수 있다. 또한, 마이크를 구비한 모노 헤드셋(1076)이 아날로그 기저대역 프로세서(1026)에 연결될 수 있다. 또한, 진동기 디바이스(1078)가 아날로그 기저대역 프로세서(1026)에 연결될 수 있다. 도 10은 전원(1080)이 온-칩 시스템(1022)에 연결될 수 있음을 나타낸다. 특정 실시예에서, 전원(1080)은 전력을 필요로 하는 셀룰러 전화(1000)의 각종 컴포넌트에 전력을 제공하는 직류(DC) 전원이다. 또한, 특정 실시예에서, 전원은 교류(AC)에서 AC 전원에 접속된 DC 변압기로 유도되는 DC 전원 또는 재충전 가능한 DC 배터리이다.
특정 실시예에서, 도 10에 나타낸 것과 같이, 터치스크린 디스플레이(1032), 비디오 포트(1038), USB 포트(1042), 카메라(1048), 제 1 스테레오 스피커(1084), 제 2 스테레오 스피커(1086), 마이크(1060), FM 안테나(1064), 스테레오 헤드폰(1066), RF 스위치(1070), RF 안테나(1072), 키패드(1074), 모노 헤드셋(1076), 진동기(1078) 및 전원(1080)은 온-칩 시스템(1022) 외부에 있다.
일반적으로, 셀룰러 전화(1000)의 온-칩 시스템(1022)은 도 1-8 중 임의의 도면에 따른 디버그 기능을 가진 하나 이상의 프로세서를 포함할 수 있다. 예를 들어, 디스플레이 제어기(1028), 터치스크린 제어기(1030) 및 USB 제어기(1040)는 ARM 프로세서(106)와 같은 디버그 기능을 가진 프로세서들을 포함할 수 있다. 또한, (도시하지 않은) 개별 제어 프로세서가 온-칩 시스템(1022)에 포함되어 셀룰러 전화(1000)의 동작을 제어할 수도 있다. 온-칩 시스템(1022)은 각종 프로세서의 동작을 디버깅하는 JTAG(Joint Test Action Group) 디버거에 연결하기 위한 (도시하지 않은) 테스트 핀들을 포함할 수 있다.
도 11을 참조하면, 무선 인터넷(IP) 전화(1100)의 예시적이지만 한정적이지 않은 실시예가 도시되고 일반적으로 표시된다. 도시된 바와 같이, 무선 IP 전화(1100)는 디지털 신호 프로세서(DSP; 1104)를 포함한다. 도 11에 나타낸 것과 같이, 디스플레이 제어기(1106)가 DSP(1104)에 연결되고, 디스플레이(1108)가 디스플레이 제어기(1106)에 연결된다. 예시적인 실시예에서, 디스플레이(1108)는 액정 디스플레이(LCD)이다. 도 11은 또한 키패드(1110)가 DSP(1104)에 연결될 수 있음을 나타낸다.
도 11에 나타낸 바와 같이, 플래시 메모리(1112)가 DSP(1104)에 연결될 수 있다. 동기 동적 랜덤 액세스 메모리(SDRAM; 1114), 정적 랜덤 액세스 메모리(SRAM; 1116) 및 전기적으로 소거 가능한 프로그램 판독 전용 메모리(EEPROM; 1118) 또한 DSP(1104)에 연결될 수 있다. 도 11은 또한 발광 다이오드(LED; 1120)가 DSP(1104)에 연결될 수 있음을 보여준다. 또한, 특정 실시예에서, 음성 CODEC(1122)이 DSP(1104)에 연결될 수 있다. 증폭기(1124)가 음성 CODEC(1122)에 연결될 수 있고 모노 스피커(1126)가 증폭기(1124)에 연결될 수 있다. 도 11은 또한 모노 헤드셋(1128)이 음성 CODEC(1122)에 연결될 수 있음을 보여준다. 특정 실 시예에서, 모노 헤드셋(1128)은 마이크를 포함한다.
도 11은 또한 무선 근거리 통신망(WLAN) 기저대역 프로세서(1130)가 DSP(1104)에 연결될 수 있음을 나타낸다. RF 트랜시버(1132)가 WLAN 기저대역 프로세서(1130)에 연결될 수 있고 RF 안테나(1134)가 RF 트랜시버(1132)에 연결될 수 있다. 특정 실시예에서, 블루투스 제어기(1136) 또한 DSP(1104)에 연결될 수 있으며 블루투스 안테나(1138)가 제어기(1136)에 연결될 수 있다. 도 11은 또한 USB 포트(1140)가 DSP(1104)에 연결될 수 있음을 보여준다. 더욱이, 전원(1142)이 온-칩 시스템(1102)에 연결되고 온-칩 시스템(1102)을 통해 무선 IP 전화(1100)의 각종 컴포넌트들에 전력을 제공한다.
특정 실시예에서는, 도 11에 나타낸 것과 같이 디스플레이(1108), 키패드(1110), LED(1120), 모노 스피커(1126), 모노 헤드셋(1128), RF 안테나(1134), 블루투스 안테나(1138), USB 포트(1140) 및 전원(1142)이 온-칩 시스템(1102) 외부에 있다. 그러나 이들 컴포넌트 각각은 온-칩 시스템의 하나 이상의 컴포넌트에 연결된다.
일반적으로, 무선 IP 전화(1100)는 상기 도 1-8 중 임의의 도면에 따른 디버그 기능을 가진 ARM 프로세서를 포함할 수 있다. 일 실시예에서, 무선 IP 전화(1100)는 무선 IP 전화(1100)의 동작을 제어하는 (도시하지 않은) 제어 프로세서를 포함한다. 또한, 디스플레이 제어기(1106) 및 블루투스 제어기(1136)는 도 1-8 중 임의의 도면에 따른 ARM 프로세서(106)와 같이 디버그 기능을 가진 프로세서를 포함할 수 있다. 온-칩 시스템(1102)은 각종 프로세서들을 디버깅하는 JTAG(Joint Test Action Group) 디버거 시스템과의 접속을 위한 (도시하지 않은) 테스트 핀들을 포함할 수 있다.
도 12는 일반적으로 표시되는 휴대용 디지털 보조 기기(1200)의 예시적이지만 한정적이지 않은 실시예를 나타낸다. 도시한 바와 같이, PDA(1200)는 디지털 신호 프로세서(DSP; 1204)를 포함하는 온-칩 시스템(1202)을 포함한다. 도 12에 나타낸 것과 같이, 터치스크린 제어기(1206) 및 디스플레이 제어기(1208)가 DSP(1204)에 연결된다. 또한, 터치스크린 디스플레이가 터치스크린 제어기(1206) 및 디스플레이 제어기(1208)에 연결된다. 도 12는 또한 키패드(1212)가 DSP(1204)에 연결될 수 있음을 나타낸다.
도 12에 나타낸 바와 같이, 플래시 메모리(1214)가 DSP(1204)에 연결될 수 있다. 또한, 판독 전용 메모리(ROM; 1216), 동적 랜덤 액세스 메모리(DRAM; 1218) 및 전기적으로 소거 가능한 프로그램 판독 전용 메모리(EEPROM; 1220)가 DSP(1204)에 연결될 수 있다. 도 12는 또한 적외선 데이터 관련(IrDA; 1222) 포트가 DSP(1204)에 연결될 수 있음을 보여준다. 또한, 특정 실시예에서, 디지털 카메라(1224)가 DSP(1204)에 연결될 수 있다.
도 12에 나타낸 것과 같이, 특정 실시예에서 스테레오 오디오 CODEC(1226)이 DSP(1204)에 연결될 수 있다. 제 1 스테레오 증폭기(1228)가 스테레오 오디오 CODEC(1226)에 연결될 수 있고 제 1 스테레오 스피커(1230)가 제 1 스테레오 증폭기(1228)에 연결될 수 있다. 또한, 마이크 증폭기(1232)가 스테레오 오디오 CODEC(1226)에 연결될 수 있고 마이크(1234)가 마이크 증폭기(1232)에 연결될 수 있다. 도 12는 또한 제 2 스테레오 증폭기(1236)가 스테레오 오디오 CODEC(1226)에 연결될 수 있고 제 2 스테레오 스피커(1238)가 제 2 스테레오 증폭기(1236)에 연결될 수 있음을 보여준다. 특정 실시예에서, 스테레오 헤드폰(1240) 또한 스테레오 오디오 CODEC(1226)에 연결될 수 있다.
도 12는 또한 802.11 제어기(1242)가 DSP(1204)에 연결될 수 있고 1102.11 안테나(1244)가 1102.11 제어기(1242)에 연결될 수 있음을 나타낸다. 더욱이, 블루투스 제어기(1246)가 DSP(1204)에 연결될 수 있고 블루투스 안테나(1248)가 블루투스 제어기(1246)에 연결될 수 있다. 도 12에 나타낸 것과 같이, USB 제어기(1280)가 DSP(1204)에 연결될 수 있고 USB 포트(1282)가 USB 제어기(1280)에 연결될 수 있다. 추가로, 스마트 카드(1284), 예를 들어, 멀티미디어 카드(MMC) 또는 보안 디지털 카드(SD)가 DSP(1204)에 연결될 수 있다. 또한, 도 12에 나타낸 것과 같이, 전원(1286)이 온-칩 시스템(1202)에 연결되어 온-칩 시스템(1202)을 통해 PDA(1200)의 각종 컴포넌트에 전력을 제공할 수 있다.
특정 실시예에서는, 도 12에 나타낸 것과 같이 디스플레이(1210), 키패드(1212), IrDA 포트(1222), 디지털 카메라(1224), 제 1 스테레오 스피커(1230), 마이크(1234), 제 2 스테레오 스피커(1238), 스테레오 헤드폰(1240), 1102.11 안테나(1244), 블루투스 안테나(1248), USB 포트(1282) 및 전원(1280)은 온-칩 시스템(1202) 외부에 있다. 그러나 이들 컴포넌트 각각은 온-칩 시스템(1202)의 하나 이상의 컴포넌트에 연결된다.
일반적으로, PDA(1200)는 도 1-8에 관해 설명한 ARM 프로세서와 같이 디버그 기능을 가진 하나 이상의 프로세서를 포함할 수 있다. PDA(1200)는 디스플레이 제어기(1208), 터치스크린 제어기(1206), 802.11 제어기(1042), 블루투스 제어기(1246) 및 USB 제어기(1250)를 포함하며, 이들 각각은 도 1-8에 관해 상술한 것과 같은 디버그 기능을 가진 프로세서를 포함할 수 있다. 추가로, PDA(1200)는 PDA(1200)의 동작을 제어하기 위한 디버그 기능을 가진 ARM 프로세서를 포함할 수 있다. 온-칩 시스템(1202)은 디버그 연산들을 수행하는 각종 프로세서들의 스캔 체인들에 액세스하기 위해 JTAG 디버그 시스템에 의해 액세스 가능한 (도시하지 않은) 테스트 핀들을 포함할 수 있다.
도 13을 참조하면, 동영상 전문가 그룹 오디오 계층-3(MP3) 플레이어와 같은 오디오 파일 플레이어(1300)의 예시적이지만 한정적이지 않은 실시예가 도시되고 일반적으로 표시된다. 도시된 바와 같이, 오디오 파일 플레이어(1300)는 디지털 신호 프로세서(DSP; 1304)를 포함하는 온-칩 시스템(1302)을 포함한다. 도 13에 나타낸 것과 같이, 디스플레이 제어기(1306)가 DSP(1304)에 연결되고, 디스플레이(1308)가 디스플레이 제어기(1306)에 연결된다. 예시적인 실시예에서, 디스플레이(1308)는 액정 디스플레이(LCD)이다. 도 13은 또한 키패드(1310)가 DSP(1304)에 연결될 수 있음을 나타낸다.
도 13에 나타낸 바와 같이, 플래시 메모리(1312) 및 판독 전용 메모리(ROM; 1314)가 DSP(1304)에 연결될 수 있다. 또한, 특정 실시예에서, 오디오 CODEC(1316)이 DSP(1304)에 연결될 수 있다. 증폭기(1318)가 오디오 CODEC(1316)에 연결될 수 있고 모노 스피커(1320)가 증폭기(1318)에 연결될 수 있다. 도 13은 또한 마이크 입력(1322) 및 스테레오 입력(1324)이 오디오 CODEC(1316)에 연결될 수 있음을 보여준다. 특정 실시예에서, 스테레오 헤드셋(1326) 또한 오디오 CODEC(1316)에 연결될 수 있다.
도 13은 또한 USB 포트(1328) 및 스마트 카드(1330)가 DSP(1304)에 연결될 수 있음을 나타낸다. 추가로, 전원(1332)이 온-칩 시스템(1302)에 연결되고 온-칩 시스템(1302)을 통해 오디오 파일 플레이어(1300)의 각종 컴포넌트들에 전력을 제공할 수 있다.
특정 실시예에서는, 도 13에 나타낸 것과 같이 디스플레이(1308), 키패드(1310), 모노 스피커(1320), 마이크 입력(1322), 스테레오 입력(1324), 스테레오 헤드폰(1326), USB 포트(1328) 및 전원(1332)이 온-칩 시스템(1302) 외부에 있다. 그러나 이들 컴포넌트 각각은 온-칩 시스템의 하나 이상의 컴포넌트에 연결된다.
일반적으로, 오디오 파일 플레이어(1300)는 도 1-8에 관해 설명한 ARM 프로세서(106)와 같은 디버그 기능을 가진 하나 이상의 프로세서들을 포함할 수 있다. 오디오 파일 플레이어(1300)는 디스플레이 제어기(1306)를 포함하며, 이는 도 1-8에 관해 상술한 것과 같은 디버그 기능을 가진 프로세서를 포함할 수 있다. 또한, 오디오 파일 플레이어(1300)는 오디오 파일 플레이어(1300)의 동작을 제어하기 위해 이러한 디버그 기능을 포함하는, 프로세서(106)와 같은 ARM 프로세서를 포함할 수 있다. JTAG 디버그 시스템은 온-칩 시스템(1302)에 제공된 (도시하지 않은) 테스트 핀들을 통해 각종 프로세서에 액세스할 수 있다.
당업자들은 본원에 개시된 실시예들에 관련하여 설명한 다양한 예시적인 논 리 블록, 구성, 모듈, 회로 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합으로서 구현될 수 있는 것으로 인식한다. 이러한 하드웨어와 소프트웨어의 호환성을 명확히 설명하기 위해, 각종 예시적인 컴포넌트, 블록, 구성, 모듈, 회로 및 단계들은 일반적으로 그 기능과 관련하여 상술하였다. 이러한 기능이 하드웨어로 구현되는지 소프트웨어로 구현되는지는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 좌우된다. 당업자들은 설명한 기능을 특정 애플리케이션마다 다른 방식으로 구현할 수도 있지만, 이러한 구현 결정은 본 발명의 범위를 벗어나는 것으로 해석되지 않아야 한다.
본원에 개시된 실시예들과 관련하여 설명되는 방법 또는 알고리즘의 단계들은 하드웨어에 직접, 또는 프로세서에 의해 실행되는 소프트웨어 모듈에, 또는 이 둘의 조합에 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 착탈식 디스크, CD-ROM, 또는 공지된 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 읽고 저장 매체에 정보를 기록할 수 있도록 프로세서에 연결된다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수도 있다. ASIC는 연산 디바이스나 사용자 단말에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 연산 디바이스 또는 사용자 단말에 개별 성분으로서 상주할 수도 있다.
개시된 실시예들의 상기 설명은 당업자들이 본 발명을 제작 또는 사용할 수 있도록 제공된다. 이들 실시예에 대한 다양한 변형이 당업자들에게 쉽게 명백할 것이며, 본원에 정의된 일반 원리들은 발명의 진의 또는 범위를 벗어나지 않고 다른 실시예들에 적용될 수 있다. 따라서 본 발명은 본원에 나타낸 실시예로 한정되는 것이 아니라 본원에 개시된 원리 및 신규한 특징들에 부합하는 가장 넓은 범위에 따르는 것이다.

Claims (38)

  1. 전력 폭락(collapse) 후 프로세서 상에서 디버그 연산을 수행하는 방법으로서,
    상기 프로세서의 실행 모드 동안 상기 프로세서의 유휴(idle) 상태를 검출하는 단계;
    상기 유휴 상태가 전력 폭락 이벤트와 관련되는지를 결정하는 단계; 및
    상기 실행 모드 동안 상기 프로세서 내에 디버그 레지스터들을 로딩함으로써 상기 프로세서의 디버그 상태를 복구하는 단계를 포함하는, 디버그 연산 수행 방법.
  2. 제 1 항에 있어서,
    상기 프로세서의 유휴 상태를 검출한 후 상기 프로세서의 상태를 문의하는 단계를 더 포함하는 것을 특징으로 하는 디버그 연산 수행 방법.
  3. 제 1 항에 있어서,
    상기 복구된 디버그 레지스터들 중 적어도 하나를 사용하는 디버그 연산을 실행하는 단계를 더 포함하는 것을 특징으로 하는 디버그 연산 수행 방법.
  4. 제 3 항에 있어서,
    상기 디버그 연산은 휴지점(breakpoint) 및 감시점(watchpoint) 디버그 연산 중 하나인 것을 특징으로 하는 디버그 연산 수행 방법.
  5. 제 1 항에 있어서,
    상기 프로세서는 ARM 타입의 마이크로프로세서 코어인 것을 특징으로 하는 디버그 연산 수행 방법.
  6. 제 1 항에 있어서,
    상기 프로세서의 프로세서 클록이 비활성화일 때 상기 유휴 상태가 검출되는 것을 특징으로 하는 디버그 연산 수행 방법.
  7. 제 1 항에 있어서,
    상기 프로세서는 적어도 500 밀리초 동안 유휴 상태인 것을 특징으로 하는 디버그 연산 수행 방법.
  8. 제 1 항에 있어서,
    상기 프로세서의 유휴 상태를 검출하기 위해 JTAG(Joint Test Action Group) 디버그 시스템을 이용하여 레지스터 스캔을 수행하는 단계를 더 포함하는 것을 특징으로 하는 디버그 연산 수행 방법.
  9. 제 1 항에 있어서,
    상기 디버그 레지스터들 중 적어도 하나는 상기 프로세서가 감시자 모드로 실행할 때 테스트 가능한 디버그 구성 레지스터인 것을 특징으로 하는 디버그 연산 수행 방법.
  10. 제 1 항에 있어서,
    상기 유휴 상태의 검출 또는 상기 전력 폭락 이벤트의 종료 검출과 관련하여 재동기 타이밍 클록(RTCK) 신호가 평가되는 것을 특징으로 하는 디버그 연산 수행 방법.
  11. 제 1 항에 있어서,
    상기 디버그 상태를 복구하기 전에 상기 전력 폭락 이벤트의 종료를 검출하는 단계를 더 포함하는 것을 특징으로 하는 디버그 연산 수행 방법.
  12. 프로세서 코어를 갖는 프로세서 상에서 디버그 연산을 수행하는 방법으로서,
    상기 프로세서의 실행 모드 동안 상기 프로세서 코어의 유휴 상태를 검출하는 단계;
    상기 프로세서가 유휴 상태인 동안 디버그 연산에 대한 요청을 제공하는 단계;
    상기 프로세서가 정지한 동안 상기 프로세서의 상태를 문의함으로써 상기 유 휴 상태가 전력 폭락 이벤트와 관련되는지를 결정하는 단계;
    JTAG(Joint Test Action Group) 대기 모드로 진입하는 단계;
    상기 전력 폭락 이벤트의 종료를 검출하는 단계;
    디버그 레지스터들을 로딩함으로써 상기 프로세서의 디버그 상태를 복구하는 단계;
    디버그 승인 신호를 검출하는 단계; 및
    요청되었던 디버그 연산을 수행하는 단계를 포함하는, 디버그 연산 수행 방법.
  13. 제 12 항에 있어서,
    상기 JTAG 대기 모드에 진입하기 전에 상기 프로세서에 공급되는 전력과 관련된 전력 신호가 오프되는 것을 특징으로 하는 디버그 연산 수행 방법.
  14. 제 13 항에 있어서,
    상기 유휴 상태를 검출하기 전에 클록 타이머의 만료를 검출하는 단계를 더 포함하는 것을 특징으로 하는 디버그 연산 수행 방법.
  15. 제 12 항에 있어서,
    상기 프로세서 코어의 입력/출력 인터페이스는 상기 전력 폭락 이벤트의 종료 전에 동결 상태인 것을 특징으로 하는 디버그 연산 수행 방법.
  16. 제 12 항에 있어서,
    상기 프로세서 코어의 JTAG(Joint Test Action Group) 입력/출력 인터페이스는 상기 전력 폭락 이벤트 동안 동결되고 상기 전력 폭락 이벤트의 종료를 검출한 후 동결 해제되는 것을 특징으로 하는 디버그 연산 수행 방법.
  17. 제 12 항에 있어서,
    상기 디버그 연산은 휴지점 및 감시점 디버그 연산 중 하나인 것을 특징으로 하는 디버그 연산 수행 방법.
  18. 제 12 항에 있어서,
    상기 프로세서는 적어도 500 밀리초 동안 유휴 상태인 것을 특징으로 하는 디버그 연산 수행 방법.
  19. 제 12 항에 있어서,
    상기 프로세서의 유휴 상태를 검출하기 위해 JTAG(Joint Test Action Group) 디버그 시스템을 이용하여 레지스터 스캔을 수행하는 단계를 더 포함하는 것을 특징으로 하는 디버그 연산 수행 방법.
  20. 프로세서 디버깅 디바이스로서,
    프로세서의 유휴 상태를 검출하는 수단;
    상기 프로세서가 유휴 상태인 동안 디버그 연산에 대한 요청을 제공하는 수단;
    상기 유휴 상태가 전력 폭락 이벤트와 관련되는지를 결정하는 수단;
    상기 전력 폭락 이벤트의 종료를 검출하고 상기 프로세서의 디버그 상태를 복구하는 수단; 및
    요청되었던 디버그 연산을 수행하는 수단을 포함하는, 프로세서 디버깅 디바이스.
  21. 집적 회로로서,
    디버그 연산과 관련된 명령들을 수신하기 위한 디버그 인터페이스;
    상기 디버그 연산과 관련된 데이터를 저장하기 위한 디버그 레지스터;
    디지털 전압 레벨을 제어하기 위한 모뎀 전력 관리기 - 상기 모뎀 전력 관리기는 프로세서 비활성화 기간 동안 전력을 보존하기 위해 상기 디지털 전압 레벨을 폭락시키고 상기 프로세서 비활성화 기간이 종료되면 상기 디지털 전압 레벨을 복구함 -; 및
    상기 디버그 인터페이스 및 상기 모뎀 전력 관리기에 응답하며, 상기 디지털 전압 레벨의 복구에 응답하여 전력 출구 핀을 지정된 논리 레벨로 구동하는 프로세서를 포함하는, 집적 회로.
  22. 제 21 항에 있어서,
    상기 디지털 전압 레벨의 복구시 상기 디버그 레지스터에 데이터가 복구되는 것을 특징으로 하는 집적 회로.
  23. 제 21 항에 있어서,
    디버그 시스템에 접속하기 위한 JTAG(Joint Test Action Group) 인터페이스를 더 포함하며,
    상기 프로세서는 상기 디지털 전압 레벨의 폭락에 응답하여 상기 JTAG 인터페이스의 적어도 하나의 핀의 논리 레벨을 동결하는 것을 특징으로 하는 집적 회로.
  24. 제 23 항에 있어서,
    상기 프로세서는 상기 디지털 전압 레벨의 복구시 상기 적어도 하나의 핀의 논리 레벨을 동결 해제하는 것을 특징으로 하는 집적 회로.
  25. 디버그 시스템으로서,
    타깃 프로세서에 접속하기 위한 디버그 인터페이스;
    디버그 연산들을 정의하고 사용자 상호 작용들을 위한 사용자 인터페이스를 정의하기 위한 프로세서 판독 가능 명령들; 및
    상기 프로세서 판독 가능 명령들을 기초로 상기 사용자 인터페이스를 생성하 며, 상기 프로세서 판독 가능 명령들에 응답하여 상기 디버그 연산들을 제어하고, 상기 디버그 인터페이스의 핀의 상태 변화를 기초로 상기 프로세서의 전력 폭락 상태를 검출하는 프로세서를 포함하는, 디버그 시스템.
  26. 제 25 항에 있어서,
    메모리를 더 포함하며,
    상기 프로세서는 상기 디버그 연산들 동안 상기 메모리에 디버그 레지스터들의 상태를 저장하고, 상기 디버그 시스템은 상기 상태의 변화에 응답하여 상기 메모리로부터 상기 디버그 레지스터들의 상태를 복구하는 것을 특징으로 하는 디버그 시스템.
  27. 제 25 항에 있어서,
    상기 핀은 클록 핀을 포함하고,
    상기 상태의 변화는 비활성화 기간 후 상기 클록 핀에서 상승하는 클록 에지를 포함하는 것을 특징으로 하는 디버그 시스템.
  28. 휴대용 통신 디바이스로서,
    디지털 신호 프로세서; 및
    제어기를 포함하며, 상기 제어기는,
    디지털 전압 레벨을 제어하기 위한 모뎀 전력 관리기 - 상기 모뎀 전 력 관리기는 프로세서 비활성화 기간 동안 전력을 보존하기 위해 상기 디지털 전압 레벨을 폭락시키고 상기 프로세서 비활성화 기간이 종료되면 상기 디지털 전압 레벨을 복구함 -; 및
    상기 모뎀 전력 관리기에 응답하며, 상기 통신 디바이스의 일부의 동작을 제어하는 프로세서를 포함하고, 상기 프로세서는 폭락한 전력 상태로부터 상기 디지털 전압 레벨의 복구에 응답하여 전력 폭락 회복 표시를 제공하는 디버그 기능을 포함하는, 휴대용 통신 디바이스.
  29. 제 28 항에 있어서,
    상기 제어기 및 상기 디지털 신호 프로세서는 테스트 핀들을 가진 집적 회로에 제공되는 것을 특징으로 하는 휴대용 통신 디바이스.
  30. 제 28 항에 있어서,
    상기 디지털 신호 프로세서에 연결되는 아날로그 기저대역 프로세서;
    상기 아날로그 기저대역 프로세서에 연결되는 스테레오 오디오 코더/디코더(CODEC);
    상기 아날로그 기저대역 프로세서에 연결되는 무선 주파수(RF) 트랜시버;
    상기 RF 트랜시버에 연결되는 RF 스위치; 및
    상기 RF 스위치에 연결되는 RF 안테나를 더 포함하는 것을 특징으로 하는 휴대용 통신 디바이스.
  31. 프로세서 상에서 디버그 연산을 수행하기 위한 실행 가능 명령들을 구현하는 프로세서 판독 가능 매체로서, 상기 실행 가능 명령들은,
    프로세서의 실행 모드 동안 상기 프로세서의 유휴 상태를 검출하기 위한 명령들;
    상기 유휴 상태가 전력 폭락 이벤트와 관련되는지를 결정하기 위한 명령들; 및
    상기 실행 모드 동안 상기 프로세서의 디버그 레지스터들을 로딩함으로써 상기 프로세서의 디버그 상태를 복구하기 위한 명령들을 포함하는, 프로세서 판독 가능 매체.
  32. 제 31 항에 있어서,
    상기 프로세서의 유휴 상태를 검출한 후 상기 프로세서의 상태를 문의하기 위한 명령들을 더 포함하는 것을 특징으로 하는 프로세서 판독 가능 매체.
  33. 제 31 항에 있어서,
    상기 디버그 레지스터들 중 적어도 하나를 사용하는 디버그 연산을 실행하기 위한 명령들을 더 포함하는 것을 특징으로 하는 프로세서 판독 가능 매체.
  34. 제 33 항에 있어서,
    상기 디버그 연산은 휴지점 및 감시점 디버그 연산 중 하나를 실행하기 위한 명령들을 포함하는 것을 특징으로 하는 프로세서 판독 가능 매체.
  35. 제 31 항에 있어서,
    상기 프로세서의 프로세서 클록이 비활성화일 때 상기 유휴 상태가 검출되는 것을 특징으로 하는 프로세서 판독 가능 매체.
  36. 제 31 항에 있어서,
    상기 프로세서의 유휴 상태를 검출하기 위해 JTAG(Joint Test Action Group) 디버그 시스템을 이용하여 레지스터 스캔을 수행하기 위한 명령들을 더 포함하는 것을 특징으로 하는 프로세서 판독 가능 매체.
  37. 제 31 항에 있어서,
    상기 디버그 레지스터들 중 디버그 구성 레지스터를 테스트하기 위해 감시자 모드를 실행하기 위한 명령들을 더 포함하는 것을 특징으로 하는 프로세서 판독 가능 매체.
  38. 제 31 항에 있어서,
    상기 디버그 상태를 복구하기 전에 상기 전력 폭락 이벤트의 종료를 검출하기 위한 명령들을 더 포함하는 것을 특징으로 하는 프로세서 판독 가능 매체.
KR1020087024587A 2006-03-08 2007-03-08 Jtag 전력 폭락 디버그 KR101059038B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/370,696 2006-03-08
US11/370,696 US20070214389A1 (en) 2006-03-08 2006-03-08 JTAG power collapse debug
PCT/US2007/063603 WO2007104027A2 (en) 2006-03-08 2007-03-08 Jtag power collapse debug

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020117013713A Division KR101095176B1 (ko) 2006-03-08 2007-03-08 Jtag 전력 폭락 디버그

Publications (2)

Publication Number Publication Date
KR20080099874A true KR20080099874A (ko) 2008-11-13
KR101059038B1 KR101059038B1 (ko) 2011-08-24

Family

ID=38330232

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020117013713A KR101095176B1 (ko) 2006-03-08 2007-03-08 Jtag 전력 폭락 디버그
KR1020087024587A KR101059038B1 (ko) 2006-03-08 2007-03-08 Jtag 전력 폭락 디버그

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020117013713A KR101095176B1 (ko) 2006-03-08 2007-03-08 Jtag 전력 폭락 디버그

Country Status (6)

Country Link
US (1) US20070214389A1 (ko)
EP (1) EP2002341A2 (ko)
JP (2) JP2010507135A (ko)
KR (2) KR101095176B1 (ko)
CN (1) CN101395584B (ko)
WO (1) WO2007104027A2 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US7543185B2 (en) * 2006-06-23 2009-06-02 Intel Corporation Debug system with event-based virtual processing agents
KR100849215B1 (ko) * 2007-01-17 2008-07-31 삼성전자주식회사 전원제어장치, 방법, 및 상기 전원제어장치를 구비하는시스템
GB0709105D0 (en) * 2007-05-11 2007-06-20 Univ Leicester Debugging tool
US8190139B2 (en) * 2007-08-24 2012-05-29 Delphi Technologies, Inc. Telematics system and method of communication
US8441298B1 (en) 2008-07-01 2013-05-14 Cypress Semiconductor Corporation Analog bus sharing using transmission gates
US9448964B2 (en) * 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8135884B1 (en) 2009-05-04 2012-03-13 Cypress Semiconductor Corporation Programmable interrupt routing system
US8179161B1 (en) 2009-05-05 2012-05-15 Cypress Semiconductor Corporation Programmable input/output circuit
US8487655B1 (en) 2009-05-05 2013-07-16 Cypress Semiconductor Corporation Combined analog architecture and functionality in a mixed-signal array
US9612987B2 (en) * 2009-05-09 2017-04-04 Cypress Semiconductor Corporation Dynamically reconfigurable analog routing circuits and methods for system on a chip
US8161328B1 (en) * 2010-05-27 2012-04-17 Western Digital Technologies, Inc. Debugger interface
US8601315B2 (en) 2010-11-01 2013-12-03 Freescale Semiconductor, Inc. Debugger recovery on exit from low power mode
US8402314B2 (en) 2010-12-09 2013-03-19 Apple Inc. Debug registers for halting processor cores after reset or power off
US8713388B2 (en) 2011-02-23 2014-04-29 Qualcomm Incorporated Integrated circuit testing with power collapsed
US8639981B2 (en) 2011-08-29 2014-01-28 Apple Inc. Flexible SoC design verification environment
US8788886B2 (en) 2011-08-31 2014-07-22 Apple Inc. Verification of SoC scan dump and memory dump operations
US8640007B1 (en) 2011-09-29 2014-01-28 Western Digital Technologies, Inc. Method and apparatus for transmitting diagnostic data for a storage device
GB2503882B (en) 2012-07-09 2014-07-02 Ultrasoc Technologies Ltd Debug architecture
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
KR20150019457A (ko) 2013-08-14 2015-02-25 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템
US20150370673A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated System and method for providing a communication channel to a power management integrated circuit in a pcd
US10101797B2 (en) * 2014-09-27 2018-10-16 Intel Corporation Efficient power management of UART interface
KR102415388B1 (ko) * 2015-11-13 2022-07-01 삼성전자주식회사 시스템 온 칩 및 그것의 보안 디버깅 방법
CN107346282B (zh) 2016-05-04 2024-03-12 世意法(北京)半导体研发有限责任公司 用于微处理器的调试支持单元
CN107656513A (zh) * 2017-08-25 2018-02-02 歌尔丹拿音响有限公司 嵌入式设备的模式切换方法和嵌入式设备
US10997029B2 (en) * 2019-03-07 2021-05-04 International Business Machines Corporation Core repair with failure analysis and recovery probe
CN110096399B (zh) * 2019-04-25 2023-07-07 湖南品腾电子科技有限公司 一种硬件接口的调试方法
CN114625639B (zh) * 2022-03-03 2024-05-28 上海先楫半导体科技有限公司 一种基于片上系统的调试方法、系统以及芯片

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61213910A (ja) * 1985-03-18 1986-09-22 Fujitsu Ltd ノツトレデイ状態表示方式
JPH03116244A (ja) * 1989-09-29 1991-05-17 Hitachi Ltd エミュレータ
JPH0652070A (ja) * 1992-05-29 1994-02-25 Toshiba Corp 集積回路のデータ保護装置およびデータ保護方法
US6393584B1 (en) * 1995-04-26 2002-05-21 International Business Machines Corporation Method and system for efficiently saving the operating state of a data processing system
US5935266A (en) * 1996-11-15 1999-08-10 Lucent Technologies Inc. Method for powering-up a microprocessor under debugger control
US6189140B1 (en) * 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6145100A (en) * 1998-03-04 2000-11-07 Advanced Micro Devices, Inc. Debug interface including timing synchronization logic
US6643803B1 (en) * 1999-02-19 2003-11-04 Texas Instruments Incorporated Emulation suspend mode with instruction jamming
US6446221B1 (en) * 1999-05-19 2002-09-03 Arm Limited Debug mechanism for data processing systems
US6343358B1 (en) * 1999-05-19 2002-01-29 Arm Limited Executing multiple debug instructions
US6601189B1 (en) * 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
TWI282918B (en) * 2000-11-13 2007-06-21 Intel Corp Method, device, and system for placing a processor in an idle state
US6691270B2 (en) * 2000-12-22 2004-02-10 Arm Limited Integrated circuit and method of operation of such a circuit employing serial test scan chains
KR20030015531A (ko) * 2001-08-16 2003-02-25 엘지전자 주식회사 차세대 단말기의 셀 선택 개선 방법
US7539878B2 (en) * 2001-09-19 2009-05-26 Freescale Semiconductor, Inc. CPU powerdown method and apparatus therefor
US20030212821A1 (en) * 2002-05-13 2003-11-13 Kiyon, Inc. System and method for routing packets in a wired or wireless network
GB2395302B (en) * 2002-11-13 2005-12-28 Advanced Risc Mach Ltd Hardware driven state save/restore in a data processing system
JP4479002B2 (ja) * 2004-03-31 2010-06-09 日本電気株式会社 Cpuの省電力機能を有する機器のデバッグシステム及び方法
US7213172B2 (en) * 2004-03-31 2007-05-01 Intel Corporation Debugging power management
US7334161B2 (en) * 2004-04-30 2008-02-19 Arm Limited Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
WO2006008721A2 (en) * 2004-07-16 2006-01-26 Koninklijke Philips Electronics, N.V. Emulation and debug interfaces for testing an integrated circuit with an asynchronous microcontroller

Also Published As

Publication number Publication date
KR101095176B1 (ko) 2011-12-20
WO2007104027A2 (en) 2007-09-13
JP2013047964A (ja) 2013-03-07
KR101059038B1 (ko) 2011-08-24
CN101395584B (zh) 2012-05-02
CN101395584A (zh) 2009-03-25
WO2007104027A3 (en) 2008-03-13
US20070214389A1 (en) 2007-09-13
KR20110075049A (ko) 2011-07-05
EP2002341A2 (en) 2008-12-17
JP5479556B2 (ja) 2014-04-23
JP2010507135A (ja) 2010-03-04

Similar Documents

Publication Publication Date Title
KR101059038B1 (ko) Jtag 전력 폭락 디버그
CN100428115C (zh) 开盖使用的便携电子设备和控制便携电子设备的方法
US8019929B2 (en) Data processing apparatus and data control circuit for use therein
JP5410109B2 (ja) 電力制御システム及び電力制御方法
US7752467B2 (en) Integrated circuit device
US8140872B1 (en) Restoring processor context in response to processor power-up
US8055889B2 (en) BIOS management device and method for managing BIOS setting value
US6769076B1 (en) Real-time processor debug system
US20080276132A1 (en) Microprocessor supervision in a special purpose computer system
JP2608532B2 (ja) コンピュータシステムにおけるユーザ入力デバイス存在のエミュレート方法
US20040153762A1 (en) Hardware driven state save/restore in a data processing system
US20020116081A1 (en) Data processing system having an on-chip background debug system and method therefor
JPH06502510A (ja) 電源が限られているコンピュータにおける低速メモリ・リフレッシュ
KR20060028664A (ko) 휴대 전화기
US20030070065A1 (en) Suspending to nonvolatile storage
US7100033B2 (en) Controlling the timing of test modes in a multiple processor system
JP2002182803A (ja) コンピュータ・システムの動作のサスペンドとレジュームを行う方法および装置
CN207281744U (zh) 操作系统启动装置和系统主板
US6877113B2 (en) Break determining circuit for a debugging support unit in a semiconductor integrated circuit
JP2010055265A (ja) システムlsi、システムlsiの制御方法、プログラム、及び記憶媒体
TWI769399B (zh) 具有除錯記憶體介面之晶片及其除錯方法
JP2001117663A (ja) コンピュータシステムおよびその処理速度制御方法
US6803784B2 (en) Microprocessor using an interrupt signal for terminating a power-down mode and method thereof for controlling a clock signal related to the power-down mode
JP2000293398A (ja) 内蔵周辺機能モジュールのクロック制御回路を持つプロセッサ
JP2004280789A (ja) 半導体集積回路装置およびマイクロコンピュータ開発支援装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 8