KR101097620B1 - 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템 - Google Patents

전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101097620B1
KR101097620B1 KR1020097012383A KR20097012383A KR101097620B1 KR 101097620 B1 KR101097620 B1 KR 101097620B1 KR 1020097012383 A KR1020097012383 A KR 1020097012383A KR 20097012383 A KR20097012383 A KR 20097012383A KR 101097620 B1 KR101097620 B1 KR 101097620B1
Authority
KR
South Korea
Prior art keywords
debugging
power
registers
digital signal
signal processor
Prior art date
Application number
KR1020097012383A
Other languages
English (en)
Other versions
KR20090089425A (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 KR20090089425A publication Critical patent/KR20090089425A/ko
Application granted granted Critical
Publication of KR101097620B1 publication Critical patent/KR101097620B1/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

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

Abstract

본 발명은 통신(예를 들어, CDMA) 시스템에서 전송들의 처리를 포함하는(그러나 이에 제한되지 않는), 디지털 신호 프로세서의 설계 및 사용을 위한 기술들에 관한 것이다. 디버깅 레지스터들 및 디지털 신호 프로세서 간에 데이터를 전달하는 방법 및 시스템 제어는 상기 디지털 신호 프로세서의 전력 트랜지션 시퀀스와 관련하여 처리한다. 제어 비트들은 디버깅 레지스터들, 코어 프로세서 프로세스 및 디버깅 프로세스 간의 데이터 전달을 제어한다. 제어 비트는 전력 트랜지션 시퀀스의 발생시 디버깅 레지스터들, 코어 프로세서 프로세스 및 디버깅 프로세스 간의 데이터 전달을 방지한다. 제어 비트들은 또한 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 데이터 전달의 발생시 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 방지한다.

Description

전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템{METHOD AND SYSTEM FOR A DIGITAL SIGNAL PROCESSOR DEBUGGING DURING POWER TRANSITIONS}
본 발명은 데이터 통신들 및 유사 어플리케이션들에서의 사용을 발견할 수 있는, 통신 처리 시스템들 및 프로세스들에 관한 것이다. 더 구체적으로, 본 발명은 디지털 신호 프로세서 전력 트랜지션들 동안 디버깅 동작들을 제어하기 위한 신규하고 개선된 방법 및 시스템에 관한 것이다.
본 출원은 다음 공동 계류중인 미국 특허 출원들, "NON-INTRUSIVE, THREAD-SELECTIVE, DEBUGGING METHOD AND SYSTEM FOR A MULTI-THREADED DIGITAL SIGNAL PROCESSOR"라는 명칭의 2006년 11월 15일 출원된 출원 번호__________(출원인 관리번호 060135U1); "METHOD AND SYSTEM FOR TRUSTED/UNTRUSTED DIGITAL SIGNAL PROCESSOR DEBUGGING OPERATIONS"라는 명칭의 2006년 11월 15일에 출원된 미국 특허 출원 번호__________(출원인 관리번호 060135U3); "EMBEDDED TRACE MACROCELL FOR ENHANCED DIGITAL SIGNAL PROCESSOR DEBUGGING OPERATIONS"라는 명칭의 2006년 11월 15일에 출원된 미국 특허 출원 번호 __________(출원인 관리번호 060135U4); 및 "METHOD AND SYSTEM FOR INSTRUCTION STUFFING OPERATIONS DURING NON-INTRUSIVE DIGITAL SIGNAL PROCESSOR DEBUGGING"이라는 명칭의 2006년 11월 15일에 출원된 미국 특허 출원 번호 __________(출원인 관리번호 060135U5)와 관련된다.
비디오, 복합 오디오, 화상회의 및 다른 풍부한 소프트웨어 어플리케이션들을 지원하는 원격통신 및 다른 타입들의 전자 장비는 신호 처리를 점점 더 많이 포함한다. 신호 처리는 복잡하지만 반복적인 알고리즘으로 빠른 수학적 계산 및 복잡한 데이터 생성을 요구한다. 많은 어플리케이션들은 실시간 계산들을 요구하는데, 다시 말해, 신호는 시간의 연속 함수이며, 수치 처리를 위해 샘플링되어 디지털 신호들로 변환되어야 한다. 프로세서는 상기 샘플들이 도달할 때 상기 샘플들에 대한 이산 계산들을 수행하는 알고리즘들을 실행해야 한다.
디지털 신호 프로세서(DSP)의 아키텍쳐는 이러한 알고리즘들을 처리하도록 최적화된다. 좋은 신호 처리 엔진의 특성들은 고속이고 플렉시블한 산술 계산 유닛들, 상기 계산 유닛들로 그리고 상기 계산 유닛들로부터의 비제한적인 데이터 흐름(flow), 상기 계산 유닛들에서의 확장된 정확도 및 동적 범위, 듀얼 어드레스 생성 기술들, 효율적인 프로그램 시퀀싱, 및 프로그래밍의 용이성(ease)을 포함한다.
DSP 기술의 한가지 전망 있는 어플리케이션은 위성 또는 지상 링크를 통해 사용자들 간의 음성 또는 데이터 통신뿐만 아니라 텍스트 메시징 및 다른 어플리케이션들을 지원하는 코드 분할 다중 액세스 (CDMA) 시스템과 같은 통신 시스템들을 포함한다. 다중 액세스 통신 시스템에서의 CDMA 기술들의 사용은 "SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS"라는 명칭의 미국 특허 제 4,901,307호, 및 "SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM"라는 명칭의 미국 특허 제 5,103,459 호에서 개시되며, 이들 모두는 본 발명의 양수인에게 양도된다.
CDMA 시스템은 통상적으로 하나 이상의 표준들에 따르도록 설계된다. 한가지 이러한 제 1 세대 표준은 이하에서 IS-95 표준이라 지칭되는 TIA/EIA/IS-95 Terminal-Base Station Compatibility Standard for Dual-Mode Wideband Spread Spectrum Cellular System"이다. IS-95 CDMA 시스템들은 음성 데이터 및 패킷 데이터를 전송할 수 있다. 더 새로운 세대 표준은 "제3세대 파트너쉽 프로젝트"(3GPP)라는 명칭의 컨소시엄에 의해 제공되며 공개적으로 쉽게 사용가능한 문헌 번호 3G TS 25.211, 3G TS 25.212, 3G TS 25.213, 및 3G TS 25.214를 포함하는 일련의 문헌들에 포함된다. 3GPP 표준은 이하에서 W-CDMA 표준으로서 지칭된다.
예를 들어, W-CDMA 표준을 사용하는 복잡한 DSP 동작 소프트웨어는 로버스트(robust)한 개발 툴(tool)들을 요구한다. 이러한 개발 툴들은 코드 생성, 통합, 테스트, 디버깅 및 평가 어플리케이션 성능들을 위한 툴들을 포함할 수 있다. 고급 원격통신 어플리케이션들과 같은 복잡한 DSP 어플리케이션들 또는 소프트웨어의 개발 및 동작에 있어서, 정교하지만, 비-간섭적인(non-intrusive) 디버깅 소프트웨어에 대한 필요성이 존재한다. 즉, 디버깅 소프트웨어 어플리케이션들은 소프트웨어 결함들 및 동작상의 문제점들의 정정을 모니터링하고, 테스트하고, 지원하기에 충분히 로버스트해야 할 뿐만 아니라, 디버깅 동작들 동안 코어 프로세서 소프트웨어를 간섭하지 않도록 동작할 수 있다. 그렇지 않은 경우, 코어 처리 소프트웨어에서의 임의의 문제점들이, 이러한 디버깅 소프트웨어의 사용동안 적절히 검출되지 않을 수도 또는 검출될 수도 있다.
이러한 디버깅 동작들의 일 양상은 이들의 동적으로 발생하는 능력에 관한 것이다. 그러나, 이 능력은 DSP 수행 디버깅 동작들을 사용하는 무선 핸드셋과 같은 디바이스를 고려해야 하며 전력을 절감해야 한다. 전력을 절감하기 위해, 종종 DSP는 자동으로 턴 오프되거나 유휴 동작 모드로 시프트할 수 있다. 추가적으로, 프로세서의 부팅이 오프 또는 유휴 상태에 후속하여 발생하는 경우, DSP에서의 추가적인 동작 변경들이 발생할 수 있다. 특히 디버깅 동작들과 관련한 데이터를 포함하는 레지스터들은 디버깅 동작들 동안 동적으로 변할 수 있다. 전력 트랜지션(transition)이 발생하는 경우, 데이터 레지스터 판독 및/또는 기록 동작들이 악영향을 받을 수 있다.
따라서, 무선 핸드셋 또는 휴대용 전자 디바이스 DSP와 같은, DSP에서의 비-간섭적 DSP 디버깅 및 전력 절감의 복잡하고도 때로는 상충되는 요구들을 수용하는 방법 및 시스템에 대한 추가적인 필요성이 존재한다.
단일 및 선택적 다중-스레드 디버깅 동작들을 위한 비-간섭적 디버깅 프로세스들에 대한 멀티-스레드 DSP에서 동작할 수 있으면서, 또한 전력 차단(power collapse) 또는 다른 전력 트랜지션들 동안 디버깅 구성 레지스터 데이터의 보존을 제공하는 방법 및 시스템에 대한 추가적인 필요성이 존재한다.
멀티-스레드(multi-threaded) 디지털 신호 프로세서를 포함하여, 디지털 신호 프로세서에서 디지털 신호 프로세서 전력 트랜지션들 동안 디버깅 동작들을 제어하기 위한 기술들이 개시되며, 상기 기술들은 개인용 컴퓨터, PDA, 무선 핸드셋들, 및 유사 전자 디바이스들에서 동작하며 관련 디지털 프로세서 속도 및 서비스 품질을 증가시키는 어플리케이션들을 포함하는, 더 로버스트(robust)한 소프트웨어 어플리케이션들을 위한 디지털 신호 프로세서 명령들의 효율적 사용 및 상기 디지털 신호 프로세서의 동작 모두를 개선시킨다.
본 발명의 일 양상에 따라, 방법 및 시스템은 디지털 신호 프로세서의 전력 트랜지션 시퀀스와 연관하여 다수의 디지털 신호 프로세스들 및 다수의 디버깅 레지스터들 간에 데이터 전달을 제어한다. 코어 프로세서 내의 코어 프로세서 프로세스 및 디버깅 메커니즘 내의 디버깅 프로세스를 동작시키는 디지털 신호 프로세서에 있어서, 본 발명은 상기 코어 프로세서 프로세스 및 상기 디버깅 프로세스와 디버깅 레지스터들을 연관시킨다. 디버깅 레지스터들, 상기 코어 프로세서 프로세스 및 상기 디버깅 프로세스 간의 데이터 전달을 제어하기 위한 적어도 하나의 레지스터 제어 비트를 설정함으로써, 본 발명의 방법 및 시스템은 전력 트랜지션 시퀀스가 상기 디지털 신호 프로세서 내에서 발생하는 경우, 상기 코어 프로세서 프로세스와 상기 디버깅 프로세스 간의, 그리고 상기 다수의 디버깅 레지스터들 간의 데이터 전달을 방지하기 위해 상기 제어 비트를 방지-전달 값(prevent-transfer value)으로 설정한다. 방지-전력-트랜지션 값(prevent-power-transition value)을 방지하도록 상기 하나의 제어 비트를 설정함으로써, 본 발명은 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 데이터 전달의 발생시 상기 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 방지한다.
본 발명의 이들 및 다른 이점들 및 부가적인 신규한 특징들은 여기에 제공된 설명으로부터 명백할 것이다. 이 요약의 목적은 본 발명의 광범위한 기술이 아니라, 본 발명의 기능들 중 몇몇의 짧은 개요를 제공하는 것이다. 여기에 제공된 다른 시스템들, 방법들 및 이점들은 후속하는 도면들 및 상세한 설명의 검토시 당업자에게 명백해질 것이다. 모든 이러한 부가적인 시스템들, 방법들, 특징들 및 이점들은 이러한 설명 내에 포함되며, 첨부되는 청구항들의 범위 내에 있는 것으로 의도된다.
본 발명의 특징들, 속성, 및 이점들은 도면들과 관련하여 취해지는 경우 아래에 설명된 상세한 설명으로부터 더 명백해질 수 있으며, 상기 도면들에서 유사 참조 번호는 도면 전체에 걸쳐 대응적으로 식별된다.
도 1은 본 발명의 실시예를 구현할 수 있는 통신 시스템의 간략화된 블록도이다.
도 2는 본 발명의 실시예의 교지를 수행하기 위한 DSP 아키텍처를 예시한다.
도 3은 본 발명의 기술적 이점을 제공하는 디지털 신호 프로세서의 일 실시예의 아키텍처 블록도를 제공한다.
도 4는 본 발명의 코어 프로세서 및 디버깅 메커니즘 간의 인터페이스를 도시한다.
도 5는 디버깅 동작 모드를 포함하는, 디지털 신호 프로세서의 동작 모드에 적용가능한 프로세스 흐름도이다.
도 6은 본 발명의 일 실시예에 적용가능한 브레이크포인트 처리 방식을 도시 한다.
도 7은 파워-업 트랜지션 동안 본 발명의 동작을 도시한다.
도 8은 파워-다운 트랜지션의 경우 본 발명의 동작을 도시한다.
멀티-스레드 디지털 신호 프로세서에서의 디지털 신호 프로세서 전력 트랜지션들 동안 디버깅 동작들을 제어하기 위한 본 발명은 여기에 제시된 이점들이 유리할 수 있는 임의의 타입의 멀티-스레드 처리를 위한 어플리케이션을 가진다. 한 가지 이러한 어플리케이션은 원격통신, 특히 하나 이상의 디지털 신호 처리 회로를 사용하는 무선 핸드셋에서 나타난다. 이러한 무선 핸드셋이 어떻게 사용될 수 있는지를 설명하기 위해, 도 1은 개시된 인터럽트 처리 방법 및 시스템의 제시된 실시예들을 구현할 수 있는 통신 시스템(10)의 간략화된 블록도를 제공한다. 송신기 유닛(12)에서, 데이터는, 데이터 소스(14)로부터, 상기 데이터를 포맷하고, 코딩하고, 처리하여 하나 이상의 아날로그 신호들을 생성하는 전송(TX) 데이터 프로세서(16)로, 통상적으로 블록으로 전송된다. 이후, 상기 아날로그 신호들은, 기저대역 신호들을 변조하고, 필터링하고, 증폭하고, 상향변환하여 변조 신호를 생성하는 송신기(TMTR ; 18)에 제공된다. 상기 변조 신호는 이후 하나 이상의 수신기 유닛들로 안테나(20)를 통해 전송된다.
수신기 유닛(22)에서, 상기 전송된 신호가 안테나(24)에 의해 수신되고, 수신기(RCVR; 26)로 제공된다. 수신기(26) 내에서, 상기 수신된 신호는 증폭되고, 필터링되고, 하향변환되고, 복조되고, 디지털화되어 동상(in phase) (I) 및 (Q) 샘 플들을 생성한다. 이후, 상기 샘플들은 수신(RX) 데이터 프로세서(28)에 의해 디코딩되고 처리되어 전송된 데이터를 복원한다. 수신기 유닛(22)에서의 디코딩 및 처리는 송신기 유닛(12)에서 수행되는 코딩 및 처리와 상보적인 방식으로 수행된다. 이후 복원된 데이터는 데이터 싱크(30)에 제공된다.
위에서 설명된 신호 처리는 음성, 비디오, 패킷 데이터, 메시징의 전송 및 다른 타입들의 통신을 단방향으로 지원한다. 양방향 통신 시스템들은 양방향 데이터 전송을 지원한다. 그러나, 다른 방향에 대한 신호 처리는 간략화를 위해 도 1에는 도시되지 않는다. 통신 시스템(10)은 코드 분할 다중 액세스(CDMA) 시스템, 시분할 다중 액세스(TDMA) 통신 시스템(예를 들어, GSM 시스템), 주파수 분할 다중 액세스(FDMA) 통신 시스템, 또는 지상 링크를 통해 사용자 간의 음성 및 데이터 통신을 지원하는 다른 다중 액세스 통신 시스템일 수 있다. 특정 실시예에서, 통신 시스템(10)은 W-CDMA 표준에 따른 CDMA 시스템이다.
도 2는 도 1의 전송 데이터 프로세서(16) 및 수신 데이터 프로세서(28)로서 동작할 수 있는 DSP(40) 아키텍처를 예시한다. 여기서 제공된 교지들 및 개념들을 효율적으로 사용할 수 있는 매우 많은 가능한 디지털 신호 프로세서 실시예들 중 오직 하나의 실시예만을 나타내는 DSP(40)만이 강조된다. 따라서, DSP(40)에서, 스레드들(T0:T5)(참조 번호 42 내지 52)은 서로 다른 스레드들로부터의 명령들의 세트들을 포함한다. 회로(54)는 명령 액세스 매커니즘을 나타내며, 스레드들(T0:T5)에 대한 인출(fetch) 명령들을 위해 사용된다. 회로(54)에 대한 명령들은 명령 큐(56)로 큐잉된다. 명령 큐(56) 내의 명령들은 프로세서 파이프라 인(66)(이하 참조)으로 제공될 준비가 된다(아래 참조). 명령 큐(56)로부터, 단일 스레드, 예컨대 스레드 TO는 생성 논리 회로(58)에 의해 선택될 수 있다. 선택된 스레드의 레지스터 파일(60)이 판독되고, 판독된 데이터는 SLOTO :SLOT3에 대한 실행 데이터 경로(62)로 전송된다. 이 예에서 SLOT0:SLOT3은 본 실시예에서 사용되는 패킷 그룹화 결합을 위해 제공한다.
실행 데이터 경로들(62)로부터의 출력은, DSP(40)의 연산들로부터의 결과를 리턴시키기 위해, 개별 스레드들 T0:T5을 또한 수용하도록 구성되는, 레지스터 파일 기록 회로(64)로 간다. 따라서, 회로(54)로부터 레지스터 파일 기록 회로(64)로 가기 전까지의 데이터 경로가 처리 파이프라인(66)을 형성한다. 본 실시예는 최대 6개의 스레드들 T0:T5와 함께 단일 프로세서를 사용하는 이종 엘리먼트 프로세서(HEP) 시스템을 사용할 수 있다. 프로세서 파이프라인(66)은 회로(54)로부터 레지스터들(60 및 64)로 데이터 항목을 인출하기 위해 필요한 최소 개수의 프로세서 사이클들에 부합하는 6개 스테이지들을 가진다. DSP(40)는 프로세서 파이프라인(66) 내에서 서로 다른 스레드들 T0:T5의 명령들을 동시에 실행한다. 즉, DSP(40)는 6개의 독립 프로그램 카운터들, 프로세서 파이프라인(66) 내의 스레드들 T0:T5의 명령들을 구별하기 위한 내부 태깅(tagging) 메커니즘 및 스레드 스위치를 트리거링하는 메커니즘을 제공한다. 스레드-스위치 오버헤드는 제로에서 오직 수 개의 사이클들로 변한다.
따라서, DSP(40)는 광범위한 신호, 이미지, 및 비디오 처리 어플리케이션들을 통해 고성능 및 저전력으로 설계된 범용 디지털 신호 프로세서를 제공한다. 도 3은 본 발명의 한 가지 명확화를 위해 관련된 명령 세트 아키텍쳐의 몇몇 양상들을 포함하여, DSP(40) 아키텍처의 간략한 개요를 제공한다. DSP(40) 아키텍처의 구현예들은 인터리빙된 멀티스레딩(IMT)을 지원한다. 이러한 실행 모델에 있어서, 하드웨어는 파이프라인에서 서로 다른 스레드들로부터의 명령들을 인터리빙함으로써, 다수의 하드웨어 스레드들 T0:T5의 동시 실행을 지원한다. 이러한 특징은 DSP(40)가 전체 클록 주파수를 포함하면서 높은 코어 및 메모리 사용을 여전히 유지하도록 한다. IMT는 비순차적(out-of-order) 실행, 확장형 포워딩 네트워크 등과 같은 비싼 보상 메커니즘에 대한 필요 없이 높은 스루풋을 제공한다. 또한, DSP(40)는 " Variable Interleaved Multithreaded Processor Method and System " 및 " Method and System for Variable Thread Allocation and Switching in a Multithreaded Processor "라는 명칭으로 M. Ahmed 등에 의해 공동-양도된 미국 특허 출원들에 변형들 및 신규한 방식들과 같은, IMT의 변형들을 포함할 수 있다.
특히, 도 3은 본 발명의 교지를 사용할 수 있는 단일 스레드에 적용된 바와 같은 DSP(40)의 코어 처리 아키텍쳐(70) 블록도를 제공한다. 블록도(70)는 AXI 버스(74)로부터 버스 인터페이스(I/F; 73)를 통해 명령들을 수신하는 공유 명령 캐시(72)를 도시하며, 상기 명령들은 믹싱된 16-비트 및 32-비트 명령들을 포함한다. 이들 명령들은 시퀀서(sequencer; 76), 사용자 제어 레지스터(78), 및 스레드 T0:T5의 감독자(supervisor) 제어 레지스터(80)에 도달한다. 본 발명의 코어-레벨 시스템 아키텍처는 또한 인-실리콘 디버깅 시스템(ISDB; 82)을 포함하며, 상기 ISDB는 코어 JTAG(joint test action group) 인터페이스(84)를 통해 코어 프로세서(70)와 인터페이스하는데, 이들은 아래에 더 상세히 설명된다.
시퀀서(76)는 하이브리드 양방향 수퍼스칼라 명령들 및 4 방향 VLIW 명령들을 S-파이프 유닛(86), M-파이프 유닛(88), LD[로드]-파이프(90), 및 LD/ST[저장]-파이프(92)에 제공하며, 이들 모두는 범용 레지스터들(94)과 통신한다. AXI 버스(74)는 또한 버스 I/F(73)를 경유하여 공유 데이터 캐시(96)를 사용하여 LD/ST 명령들을 스레드들 T0:T5로 전달한다. 선택적 L2 캐시/TCM(98) 신호들은 공유 데이터 TCM(100)과 함께 LD/ST 명령들을 포함하는데, LD/ST 명령들은 또한 스레드 범용 레지스터들(94)로 흐른다. AHB 주변 버스(102)로부터 MSM 특정 제어기(104)는 인터럽트 제어기 명령들, 디버깅 명령들, 및 타이밍 명령들을 포함하며, T0:T5와의 인터럽트들을 전달한다. 글로벌 제어 레지스터들(106)은 스레드들 T0:T5과 제어 레지스터 명령들을 통신한다.
따라서, DSP(40)는 6개의 가상 DSP 코어들을 포함하는데, 각각은 글로벌 제어 레지스터들(106) 및 개별 감독자 제어 레지스터들(80)을 포함한다. 글로벌 제어 레지스터들(106)은 모든 스레드들 사이에서 공유된다. 각각의 스레드는 공통 데이터 캐시 및 공통 명령 캐시를 공유한다. 로드, 저장 및 인출 동작들은 공통 버스 인터페이스에 의해 서비스된다. 고성능 AXI 버스(74) 및 더 낮은 성능의 AHB 버스(102)는 데이터 및 명령 트래픽을 오프-코어 메모리 및 주변 장치들에 연결하는데 사용된다. 통합된 레벨의 2개 메모리(캐시 및/또는 TCM) 입력(98)은 선택적이다. 주변 액세스는 메모리-매핑된 로드들 및 저장소들을 통할 수 있다. AHB 및 AXI 사이의 물리적 어드레스 분할(partition)은 MSM 레벨에서 구성될 수 있다.
명확하게는, DSP(40)에 대해 제공된 아키텍처는 시간 경과에 따라 전개되거나 변경될 수 있다. 예를 들어, DSP(40)가 사용할 수 있는 명령 캐시들의 개수는 6개에서 1개로, 또는 캐시들의 다른 개수로 변경될 수 있다. 수퍼스칼라는 TCM(100)에서 L1 데이터를 디스패치하며, 다른 아키텍처상의 양상들은 변경될 수 있다. 그러나, 본 발명은 DSP(40)의 수정들의 큰 계열들에 대해, 그리고 광범위한 구성들에 있어서 지속적인 연관성을 가질 수 있다.
ISDB(82) 내지 JTAG 인터페이스(84)는 DSP(40)에 대한 하드웨어 디버거를 제공한다. ISDB(82)는 매 스레드 기반으로 감독자 제어 레지스터들(80)로, 그리고 분할되는 시스템 또는 감독자-전용 레지스터들 및 모든 스레드들 사이에서 글로벌 제어 레지스터들(106)을 공유함으로써 JTAG 인터페이스(84)를 통해 소프트웨어 디버그 특징들을 제공한다. 시스템 제어 레지스터들은 스레드 인터럽트 및 예외(exception) 제어를 위해, 그리고 매 스레드 메모리 관리 액티비티(activity)들을 위해 사용된다. 글로벌 레지트터들은 디버깅 동작 동안 ISDB(82)와의 상호작용을 허용한다.
ISDB(82)는 소프트웨어 개발자들이 DSP(40)가 동작하는 동안 자신들의 소프트웨어를 디버깅할 수 있게 한다. ISDB(82) 하드웨어는, ISDB(82)에서 동작하는 소프트웨어 디버거 프로그램과 공동으로, 시스템 소프트웨어를 동작시키는 DSP(40)를 디버깅하는데 사용될 수 있다. ISDB(82)는 개별적으로 하드웨어 스레드들의 디버깅을 지원한다. 사용자들은 스레드 실행, 스레드 레지스터들의 관찰 및 변형, 명령 및 데이터 메모리의 관찰 및 변경, 단일 스텝 스레드들의 관찰 및 변형, 스레드들에 대한 스터프(stuff) 명령들을 중지시키고 스레드 실행을 재개할 수 있다. 신뢰받은(trusted) 사용자들은 ISDB(82) 특징들 모두에 대한 액세스 권한을 가지지만 신뢰받지 않은(untrusted) 사용자들은 특징들의 서브세트에 대한 액세스 권한을 가진다.
ISDB(82)는 프로그램 카운터에 있는 소프트웨어를 디버깅하는 ISDB(82)와의 통신을 위해 디버거 인터페이스 카드와 인터페이스할 수 있지만, 이들 모두는 JTAG 인터페이스(84)를 통과한다. 호스트 디버거 소프트웨어는 ISDB 제어 레지스터들을 판독하고 기록함으로써 ISDB(82)와 상호작용할 수 있다. 예를 들어, 통신은 판독/기록이 발생할 ISDB 레지스터를 식별하는 40-비트 패킷 및 32-비트 데이터 페이로드를 통과해서 이뤄진다. 이러한 동작을 지원하는 패킷 포맷은 각각이 32비트 폭일 수 있는 최대 64개의 제어 레지스터들일 수 있다.
ISDB(82)는 디버깅 동작 동안 보안을 통제하기 위한 신뢰할만한 레지스터를 포함한다. 신뢰할만한 ISDB(82)가 설정되면, 모든 ISDB(82) 레지스터들은 디버거 소프트웨어에 대해 보여질 수 있으며, 모든 ISDB 지시들이 사용가능하다. 신뢰받은 ISDB가 제거되는 경우, ISDB(82)만이 동작들의 제한된 세트를 허용한다.
특정 ISDB(82) 레지스터들은 코어 소프트웨어에 대해 가시적(visible)으로 될 수도 있다. 이들은 SUPERVISOR(감독자) 모드 제어 레지스터 전달 명령들을 통해 액세스 가능하다. 코어 명령들은 브레이크포인트 명령을 포함한다. 신뢰받은 ISDB가 설정되는 경우, 이 명령은 스레드의 실행이 디버깅 동작 모드(150)로 진입하도록 한다. 이 트랜지션은 스레드 제어를 ISDB(82)로 시프트시킨다. 브레이크포인트를 실행한 스레드 뿐만 아니라, 다른 스레드들이 ISDB(82) 프로그래밍에 따라 디버그 모드(150)로 선택적으로 진입할 수 있다. ISDB(82)가 신뢰받지 못하거나 인에이블(enable)되지 않는 경우, 이 명령은 NOP으로서 처리된다. 바람직하게는 브레이크포인트 명령은 오직 패킷 내의 명령이다.
도 4는 본 발명의 코어 프로세서 및 디버깅 메커니즘 간의 인터페이스(110)를 도시하며, 디지털 신호 프로세서 전력 트랜지션들동안 디버깅 동작들을 제어할 수 있도록 본 발명에 적용가능하다. DSP(40) 코어 아키텍쳐(70)에 관련하여, ISDB(82)는 ISDB JTAG 회로(114)로부터, 경로 JTAG 인터페이스 경로(110)를 통해 JTAG(84)와 통신한다. ISDB JTAG 회로(114)는 JTAG(84)와 ISDB(83) 간의 데이터 흐름들을 처리한다. ISDB JTAG 회로(114)는 추가적으로 ISDB JTAGSync 회로(116)와 인터페이스한다. ISDB JTAGSync 회로(116)는 추가적으로 ISDB 제어기(118), IU(150) 및 CU(122)와 통신한다. 특히, ISDB JTAGSync 회로(116)는 IU(150)의 IU ISDB 논리 회로 및 CU(122)의 CU ISDB 제어기(126)와 인터페이스한다. CU ISDB 제어기(126)는 CU ISDB 논리 회로(128) 및 ISDB 제어기(118)와 통신한다. ISDB 제어기(118)로부터의 제어 출력들은 ISDB 데이터 출력(130), ISDB 리셋 신호(132), 및 ISDB 인터럽트(134)를 포함한다. ISDB 제어기(118)로의 추가적인 인터페이스들은 MCD 인터페이스(136) 및 ETM 브레이크 트리거(138)를 포함한다.
후속하는 ISDB(82)의 다양한 컴포넌트들의 열거는 동작 설명, 및 DSP(40)의 동작과 관련한 비-간섭적 디버깅 동작들의 실행을 위한 제어 또는 논리 회로의 구성 부분들의 간략한 소개이다. 특히, 그리고 상세히 나타나지는 않았지만, CU(122)는 3개의 기본 회로들을 포함한다. 이들은 (a) 브레이크포인트들의 처리 및 각각의 스레드에 대한 브레이크 트리거들의 생성; (b) 마이크로-브레이크 및 마이크로-재개 지시(command)들의 생성; (c)ISDB(82) 상태 및 메일박스 레지스터들의 유지; 및 (d)특정 ISDVB(82) 레지스터들의 구현이라는 작업들을 처리할 수 있는 회로 및 명령들을 포함한다. CU(122)는 아래 도 6에서 나타나는 바와 같이 브레이크포인트 처리 로직(BPL) 블록의 3개 서브-블록들, 메일박스 및 상태 로직 및 마이크로-지시 생성기를 포함한다. 상기 BPL 블록은 모든 브레이크포인트들을 처리하고 CU ISDB 제어기(126)의 마이크로-지시 생성기에 대한 매크로 브레이크 요청을 생성한다. 상기 마이크로 지시 생성기는 명령 스터프 지시들, 명령 단계 및 재개 지시들에 따라 상기 매크로 브레이크 요청을 처리하고, 파이프라인 제어를 위해 마이크로-브레이크 및 재개 지시들을 CU(122)로 발행한다.
CU ISDB 제어기(128)는 역으로 수신된 브레이크 및 재개 확인응답 신호들에 기초하여 ISDB(82)의 상태를 유지한다. CU ISDB 제어기(126)의 메일박스 기능들은 호스트 디버그 소프트웨어 및 DSP(40) 코어 프로세서 간의 통신을 위해 사용되는 메일박스 레지스터들을 유지한다. 이들 메일박스 기능들은 또한 ISDB(82) 상태 레지스터들을 유지한다.
도 6은 DSP(40)의 디버깅 동안 발생할 수 있는 본 발명의 다양한 브레이크포인트 트리거들을 상세화한다. 그러나, 특정 디버깅 동작 브레이크포인트들의 이해를 구축하기에 앞서, 본 발명에서 개시된 비-간섭적 디버깅 동작들과 함께 동작하는 다양한 모드들의 이해가 관련된다. 따라서, 도 5는 디버깅 프로세스들 동안 ISDB(82)의 동작들을 포함하는, DSP(40)의 다양한 모드 제어 양상들에 대한 처리 모드 다이어그램(140)을 나타낸다.
이제, 도 5를 참조하면, DSP(40)는 모든 스레드들에 대해 글로벌하면서 개별 스레드들에 대해 로컬인 처리 모드들을 지원한다. 각각의 DSP(40) 하드웨어 스레드는 2개의 실행 모드들인 사용자 모드(142) 및 감독자 모드(144), 및 3개의 비-처리 모드들인 대기 모드(146), 오프 모드(148), 및 디버그 모드(150)를 각각 지원하며, 이들 모두는 도 4에 나타난 바와 같을 수 있다. 스레드의 모드는 다른 스레드들과는 독립적일 수 있는데, 예를 들어, 하나의 스레드는 대기 모드(146)일 수 있는 반면 또다른 스레드는 사용자 모드(142)에 있는 등의 식이다.
도 5의 매-스레드(per-thread) 모드 상태도는 다양한 명령들 또는 이벤트들에 의해 지원된다. 이들은 "Except" 또는 내부 제외 이벤트, "Int" 또는 외부 인터럽트 이벤트, "RTE" 또는 제외 모드로부터의 소프트웨어 리턴 명령, 및 "SSR" 또는 SSR 레지스터 명령에 대한 업데이트, "Stop" 또는 임의의 모드로부터 진입될 수 있는 소프트웨어 중지 명령, "Start" 또는 역시 임의의 모드로부터 진입될 수 있는 소프트웨어 시작 명령, "trap" 또는 소프트웨어 트랩 명령, "Wait" 또는 소프트웨어 대기 명령, "Resume" 또는 소프트웨어 재개 명령, "DE" 또는 디버그 이벤트, 및 "DR" 또는 디버그 명령을 포함한다. 본 발명의 서로 다른 구현예들에서의 기능들이 여기에 제공된 기능들로부터 약간씩 변경될 수 있지만, "Start," "Wait," "Resume," "DE," 및/또는 "DR"의 의미는 본 발명의 범위와 부합하는 가장 넓은 해석이 주어질 수 있다.
레지스터들은 사용자 모드(142) 및 감독자 모드(144)로 DSP(40)에서 사용가 능하다. 사용자-모드 레지스터들은 범용 레지스터들의 세트 및 제어 레지스터들의 세트로 나뉘어진다. 범용 레지스터들은 어드레스 생성, 스칼라 및 벡터 연산을 포함한 모든 범용 계산을 위해 사용된다. 제어 레지스터들은 전용 기능들, 예를 들어 하드웨어 루프들, 예측들 등을 지원한다. 범용 레지스터들은 32비트 폭이며 단일 레지스터들로서 또는 두 개의 레지스터들의 정렬된 쌍으로서 액세스될 수 있다. 범용 레지스터 파일은 로드/저장을 위한 어드레스들, 수치 명령들을 위한 데이터 오퍼랜드들 및 벡터 명령들을 위한 벡터 오퍼랜드들을 포함하여, 명령들을 위한 모든 오퍼랜드들을 제공한다.
디버그 모드(150)는 스레드가 ISDB(82)로부터 명령들을 기다리는 특정 상태를 제공한다. 예를 들어, 소프트웨어 브레이크포인트 명령, ISDB(82)로부터의 브레이크 지시의 실행, 또는 하드웨어 브레이크포인트의 발생에 의해, ISDB 디버그 이벤트가 발생할 때마다, 표시된 스레드들은 디버그 모드(150)로 진입할 수 있다. 디버그 모드(150)인 동안, 코어는 JTAG 인터페이스(84)로부터의 지시들을 통해 ISDB(82)에 의해 제어된다. ISDB(82)가 재개 지시의 실행으로 인해 스레드를 배포(release)하는 경우, 상기 스레드는 현재 모드 설정에 따라 동작을 재개할 수 있다. 스레드가 디버그 모드(150)인 경우, 상기 코어는 ISDB(82)에 의해 제어되고 다른 스레드들에 의해 제어될 수 없다. 실행 중인 스레드로부터의 대기, 재개, 시작, 또는 중지 명령, 디버그 모드(150)에서 스레드를 타겟으로 하는 것은 무시될 수 있다. 유사하게, NMI(Non-Maskable Interrupt)는 디버그 모드(150)에서 스레드들에 의해 무시될 수 있다.
하드웨어 리셋 모드(미도시) 및 디버그 모드(150)는 모든 스레드들에 대해 글로벌하다. 하드웨어 리셋 핀이 어써트(assert)될 때마다, 임의의 스레드의 처리 상태와는 무관하게, DSP(40)는 하드웨어 리셋 모드로 진입할 수 있다. 리셋 모드에서, 모든 레지스터들이 자신들의 리셋 값들로 설정된다. 하드웨어 리셋 핀이 디-어써트(de-assert)될 때까지 어떠한 처리도 발생하지 않을 수 있다. 리셋 핀이 어써트되는 경우, 프로세서는 리셋 모드로 트랜지션할 수 있고, 모든 레지스터들은 자신의 리셋 값들로 리셋될 수 있다. 리셋 핀이 디-어써트된 후, 스레드 TO에 소프트 리셋 인터럽트가 주어질 수 있다. 이것은 스레드 TO가 감독자 모드(144)로 진입하여 리셋 벡터 위치에서 실행을 시작하도록 야기할 수 있다. 모든 다른 스레드들은 오프 상태로 남아 있을 수 있다. 이 점에서, 소프트웨어는 개별적으로 각각의 스레드에 대한 모드 트랜지션들을 제어하는 것이 자유롭다.
도 6을 참조하면, 하드웨어 브레이크포인트들 0/1(HWBKPT0 162 및 HWBKPT1 164), 소프트웨어 브레이크포인트 (SWBKPT 166), JTAG 84 브레이크포인트(JTAGBKPT 168), ETM(임베디드 트레이스 매크로) 브레이크포인트(ETMBKPT 170), 및 외부 브레이크 포인트(EXTBKPT 172)를 포함하는, 6개의 서로 다른 소스들로부터의 브레이크트리거들을 포함하는 것이 보여진다. 브레이크 트리거(162 내지 172) 및 디버그 모드 상태 입력(174)은 DSP(40)가 디버그 모드(150)에서 동작하도록 하기 위해 브레이크 인코더(176)로 향한다. 인코더(176)로부터의 출력은 3개의 브레이크포인트 정보 비트(178) 및 브레이크포인트 유효 비트(180)를 포함한다. 브레이크포인트 정보 데이터(178)는 브레이크포인트 정보 JTAG 인터페이스 지시(184)을 야기하도록 브레이크포인트 정보 회로(182)로 들어간다. 브레이크포인트 비트(180)는 또한 OR 게이트 입력(186) 및 리셋 회로(188) 입력을 생성한다. 리셋 회로(188)는 UCG 재개 스레드 개수 또는 리셋 입력(192)을 수신하여 리셋 제어 출력(194)을 OR 게이트(196)로 생성한다. 유효 비트(186) 또는 리셋 출력(194)은 OR 게이트(196)로 하여금 BPL(160) 브레이크포인트 출력(198)을 생성하도록 할 수 있다.
BPL 회로(160)에서의 브레이크 트리거들은 상기 스레드들 각각에 대한 매크로 브레이크 트리거를 생성하기 위해 대응하는 TNUM 마스크와 함께 처리된다. 매크로 브레이크 트리거(198), bpl_breakTnum_ANY[5:0]은 대응하는 스레드가 재개될 때까지 유지된다. BPL(160)에서 사용될 수 있는 개수의 파이프라인 스테이지들은 정교한 브레이크포인트들인 하드웨어 브레이크포인트들에 의해 구동되는데, 즉, 하드웨어 브레이크포인트 매치를 트리거링하는 명령은 실행되지 않아야 한다. 상기 스레드는 상기 명령까지 상기 프로그램을 실행한 이후 디버그 모드로 전환한다. 개시된 실시예는 브레이크 트리거들이 도달한 이후 한 사이클을 매크로 브레이크 트리거에 제공한다. 상기 이유로 인해, 브레이크 유효 입력(176)은 자신의 래치된 버전 입력(192)과 논리상으로 OR 처리되어 bpl_breakTnum_ANY 출력(198)을 생성한다.
브레이크포인트들의 사용을 통해, DSP(40)의 6개 스레드들의 사용은 개별적으로 디버그 모드(150)로 들어가고 빠져나올 수 있다. 브레이크포인트는 ISDB(82)에서 지원되는 5개의 서로 다른 타입들의 브레이크포인트들에 대응하는 5개 소스들로부터 올 수 있다. 브레이크포인트를 히트(hit)하면, 스레드는 자신의 현재 모드(예를 들어, 대기/실행)로부터 디버그 모드(150)로 트랜지션한다. 디버그 모 드(150)에서, 스레드는 ISDB(82)로부터의 지시들을 기다린다. 오프 모드(118)에 있는 스레드는 파워다운되고 ISDB(82)로부터의 어떠한 명령들도 수용하지 않을 수 있다. 디버그 모드(150) 진입의 레이턴시는, 예를 들어 전력 차단 이벤트와 관련한 것으로서 본 발명에서 구현시 정의된다. 예를 들어, 일 구현예는 디버그 모드(150)로 진입하기 전에, 소정 동작을 완료하도록, 예를 들어 미해결된(outstanding) 로드 요청을 종료하도록 선택될 수 있다. 일 실시예에서, 스레드 식별자 레지스터는 8-비트 판독/기록 필드를 포함하며 소프트웨어 스레드 식별자를 유지하기 위해 사용된다. 이 필드는 브레이크포인트들을 매치시키기 위해 하드웨어 디버거에 의해 사용된다.
브레이크포인트 프로세스로 진입하기 위한 다수의 서로 다른 방법들이 존재한다. 예를 들어, 2개의 하드웨어 브레이크포인트들이 존재한다. 레지스터가 미리 결정된 값과 같을 때, 프로그램 카운터(PC)가 미리 결정된 값을 매치시키는 경우, 이후 프로세스는 디버그 모드(150)로 간다. ASID(어드레스 공간 식별자들)들은 프로세스에서의 특정 ID들 또는 멀티스레드 프로세스에서의 특정 스레드 또는 프로세스에서의 프로세스 ID와 유사한 태그들이다. 따라서, 물리적 어드레스, 가상 어드레스, ASID, PC, 또는 다른 자격부여자들이 공간에서 프로그램의 위치의 고정을 선택적으로 획득하기 위해 사용될 수 있으며, 상기 공간에서 브레이크포인트가 발생할 수 있음을 지시한다.
여기서 참조되는 브레이크포인트들의 사용은 L. Codrescu 등에 의한 "NON-INTRUSIVE, THREAD-SELECTIVE, DEBUGGING METHOD AND SYSTEM FOR A MULTI-THREADED DIGITAL SIGNAL PROCESSOR"라는 명칭의 공동-양도된 미국 특허 출원에서 더 구체적으로 공개된다. 따라서 본 발명은 디버그 모드(150)로의 엔트리를 야기하는 브레이크포인트의 경우 디버그 모드(150)로 이동하는 경로를 제공한다. 본 발명은 멀티-스레드 프로세서 내의 어느 스레드 또는 스레드들의 세트들이 디버그 모드(150)로 이동할지를 제어한다. 브레이크포인트들 및 연관된 디버깅 알고리즘들의 사용을 통해 DSP(40)의 비-간섭적 디버깅 동작들이 발생할 수 있다. 이러한 동작들은 심지어 다양한 전력 관리 방식들 동안 발생할 수 있으며, DSP(40)에 의해 프로그래밍 될 수 있다.
따라서, 본 발명의 또다른 양상은 DSP(40)에서의 전력 차단(collapse)를 통한 디버깅 동작들의 수행을 포함한다. ISDB 구성 레지스터들은 (JTAG 인터페이스(84)를 통한) 디버거 소프트웨어 및 (제어 레지스터 전달 명령들을 통한) 감독자 코어 소프트웨어에 의해 판독가능하고 기록가능하다. 커널 소프트웨어는 이러한 특징을 사용하여 전력 차단을 통해 ISDB 구성을 저장하고 복원할 수 있다. 이러한 경우에 있어서, 이들 공유 레지스터들을 기록하는 다수의 마스터들이 존재하므로, 오직 일관적이며 서로 배타적인 방식으로 이러한 디버깅 레지스터들에 기록하는 것이 중요하다.
본 발명은 DSP(40) 코어 프로세서가 파워다운 또는 파워 업의 프로세스에 있을 수 있음을 제공하며, 상기 기간동안 JTAG 인터페이스(84)가 디버깅 구성 레지스터들에 판독/기록하지 않을 수 있다. 유사하게, JTAG 인터페이스(84)가 디버깅 레지스터들의 수정 프로세스에 있는 경우, 상기 DSP(40) 코어는 파워다운되도록 허용 되지 않는다. 이러한 정책은 하드웨어와 소프트웨어의 조합을 통해 강제된다. 시스템 구성 내의 한 비트인 ISDB 코어 대기 레지스터 비트는 오직 코어 감독자 소프트웨어에 의해서만 기록될 수 있다. 이 비트는 DSP(40)의 하드웨어 리셋시에 삭제된다. 상기 비트가 삭제되는 경우, 모든 JTAG 인터페이스(84) 판독 및 기록 패킷들은 무효 상태로 리턴할 수 있다. 이 비트를 사용하여, 코어는 그것이 파워 업 시퀀스를 완료하고 ISDB와 대화(talk)할 준비가 된 경우 호스트 소프트웨어에 지시할 수 있다. 이것은 파워 업(복원) 시퀀스들의 웜 부트(warm boot)시에 임의의 저장된 ISDB(82) 구성을 복원할 기회를 코어에 제공한다.
전력 차단을 통한 디버깅의 일 예는 셀 폰에 존재할 수 있는데, 여기서 전력이 인지될(conscious) 필요가 있다. DSP(40)는 디버깅이 수행될 필요가 있는 동안 오프되거나 유휴상태일 수 있다. 따라서, 본 발명은 전력 차단 경우에 있어서 그 자신을 명백하게 할 수 있는 브레이크포인트를 설정하는 능력을 제공한다. 이것은, 심지어 코어가 동작 중이거나 "온" 상태에 있는 것이 아닌 경우에도, 디버깅하는 능력을 제공한다.
전력 차단을 통한 디버깅은, 본 발명에서, DSP(40) 드롭 전력과 연관된 구성들에 대한 브레이크포인트들의 설정을 포함한다. DSP(40)가 전력을 드롭하기 전에, 기존의(existing) 디버깅 구성들이 디버깅 구성 레지스터들에 저장된다. 이들 특정 레지스터들 및 구성들은 "중지-대-RAM" 프로세스를 허용한다. 따라서, DSP(40)가 전력을 리턴할 때, 디버깅 구성은 다음 디버깅 동작의 수행을 허용한다.
이들 특징들의 일 실시예를 예시하기 위해, 도 7은 본 발명의 프로세스에 대한 웜 부트 파워-업 시퀀스(200)를 나타낸다. 특히, 도 1은 호스트 디버거(200) 및 DSP(40)에서 발생하는 동작들을 기술하는데, 이들 모두는 타임라인(204)에 대한 것이다. 시작을 위해, DSP(40)는 초기 시간(208)에서 단계(206)에서 파워-다운 상태에 있을 수 있다. 시간(208)에서, 외부 하드웨어 리셋 이벤트가 발생할 수 있다. 그 응답으로, JTAG(84) 제어된 ISDB(82) 레지스터는 무효 상태의 리턴들을 판독하고, 이에 의해 레지스터 콘텐츠에서의 변경을 방지한다. 따라서, 이는 코어 프로세서에 대한 "방지-전달" 값을 나타낸다. 또한, 단계(208)에 후속하여, 전력 차단 인터럽트가 디스에이블(disable)된다. ISDB(82)가 디버깅 동작들을 위한 준비가 되면, 단계(210)에서, ISDB_CORE_READY 레지스터와 마찬가지로 ISDB_TRUSTED 레지스터는 "1" 값을 취한다. 따라서, 이들 레지스터들 모두에서의 "1"들은 디버깅 동작들이 발생할 수 있음을 나타낸다. 단계(212)에서, 전력 차단 인터럽트는 인에이블되고, 단계(214)에서 JTAG ISDB가 유효 상태를 판독할 때까지 계속 인에이블될 수 있다.
단계(214)에서, 전력 차단 인터럽트는 코어 프로세서에 의해 폐기될 수 있다. 이는 1 값을 가지는 기록 레지스터 ISDB_PREVENT_POWERDOWN과 ISDB의 재구성 상태를 반영한다. 이 값은 DSP가 디버깅 구성에 있으며, 디버깅 세션이 진행중인 호스트 디버거 시스템을 지시한다. 이 상태(phase) 동안, ISDB는 ISDB(82) 레지스터들을 프로그래밍한다. 디버깅 프로세스가 더 이상 ISDB 레지스터들을 변경하지 않는 경우, ISDB_PREVENT_POWERDOWN 레지스터는 0 값을 획득하며, 이는 디버깅 구성이 안정함을 나타낸다. 따라서, 단계(116)에서, 전력 차단 인터럽트가 인에이블된다.
도 8은 본 발명에 의해 제공되는 웜 부트 파워-다운 시퀀스(220)를 나타낸다. 웜 부트 파워-다운 시퀀스(220)는 전력 차단 인터럽트가 인에이블되는 포인트(222)에서 시작할 수 있다(화살표 224). 상기 기간동안, JTAG ISDB 레지스터는 판독 리턴 유효 상태를 리턴시킬 수 있다(화살표 226). 포인트(228)에서, 전력 차단 인터럽트가 발생할 수 있으며 커널 정전 처리기가 동작하도록 한다. 그 응답으로, 전력 차단 인터럽트가 디스에이블된다(화살표 230). 포인트(232)에서, ISDB_CORE_READY 레지스터들은 0을 판독하고, JTAG 판독/기록은 무효 상태를 리턴시킨다. 화살표(234)가 커버하는 기간동안, 코어 프로세서는 1 값을 가지는 ISDB_PREVENT_POWERDOWN 레지스터에 의해 표시되는 바와 같이, ISDB 구성 변경이 진행중인지의 여부를 알도록 체크한다. 이는 변경이 진행중이며, 파워-다운 시퀀스(220)의 상쇄를 야기함을 나타낸다. 만약 구성이 진행중이지 않다면, 파워-다운 시퀀스(220)는 메모리에 ISDB 구성 레지스터 콘텐츠를 저장한다. 웜 부트 플래그 마커가 설정되고 후속하는 웜 부트에 대한 준비가 진행된다. 이후, 파워-다운 시퀀스(200)는 모든 스레드들을 중지시키고, DSP(40)가 파워-다운된다.
따라서, 본 발명은 전력 차단을 포함하는, 디지털 신호 프로세서 전력 트랜지션동안 디버깅 동작들을 수행하기 위한 방법 및 시스템을 제공한다. DSP(40)의 ISDB 구성은 디버거 소프트웨어 및 감독자 코어 소프트웨어 모두에 의해 판독가능하고 기록가능하다. 커널 소프트웨어는 전력 차단 시점에서 존재하는 구성을 저장하고 복원시키기 위해 전력 차단동안 디버깅 동작들의 수행을 사용할 수 있다. 이러한 디버깅 양상은 ISDB 구성을 포착하고, 이에 의해 전력 차단동안의 구성의 사 용 뿐만 아니라 후속적인 파워 업 시퀀스에서의 구성의 복원을 허용하는 신뢰성 있고 일관적인 방법을 제공한다.
요약하면, 본 발명은 디지털 신호 프로세서의 전력 트랜지션 시퀀스와 연관한 디지털 신호 프로세서 프로세스들 및 디버깅 레지스터들 간의 데이터 전달을 위한 방법 및 시스템을 제공한다. 디버깅 메커니즘 내의 디버깅 프로세스 및 코어 프로세서 내의 코어 프로세서 프로세스를 동작시키는 디지털 신호 프로세서에 있어서, 본 발명은 디버깅 레지스터들을 상기 코어 프로세서 프로세스 및 상기 디버깅 프로세스와 연관시킨다. 디버깅 레지스터들 간의 데이터 전달의 제어를 위해 적어도 하나의 레지스터 제어 비트를 설정함으로써, 상기 방법 및 시스템은 전력 트랜지션 시퀀스의 발생시 디버깅 레지스터들, 코어 프로세서 프로세스 및 디버깅 프로세스 간의 데이터 전달을 방지하는 방지-전달 값으로 상기 제어 비트를 설정한다. 방지-전력-트랜지션 값으로 상기 하나의 제어 비트를 설정함으로써, 본 발명은 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 데이터 전달시 상기 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 방지한다.
본 발명의 추가적인 양상들은 디지털 신호 프로세스에 의한 파워-업 시퀀스의 발생시 디버깅 레지스터들 및 코어 프로세서 프로세스 및 디버깅 프로세스 간의 데이터 전달을 방지하기 위해 적어도 하나의 레지스터 제어 비트를 방지-전달 값으로 설정하는 것을 포함한다. 또한, 본 발명은 상기 디지털 신호 프로세스에 의한 파워-다운 시퀀스의 발생시 디버깅 레지스터들 및 코어 프로세서 프로세스 및 디버깅 프로세스 간의 데이터 전달을 방지하기 위해 적어도 하나의 레지스터 제어 비트 를 방지-전달 값으로 설정하는 것; 및 추가로, 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 데이터 전달시 상기 디지털 신호프로세서의 파워-다운 시퀀스를 방지하기 위해 상기 적어도 하나의 전력 제어 비트를 방지-전력-트랜지션 값으로 설정하는 것을 허용한다.
디버깅 레지스터들은 디버깅 구성 레지스터들을 포함할 수 있는데, 여기서 본 발명은 디지털 신호 프로세서에 의해 전력 트랜지션 시퀀스가 발생하는 경우 디버깅 구성 레지스터들 및 코어 프로세서 프로세스 및 디버깅 프로세스 간의 데이터 전달을 방지하기 위해 적어도 하나의 레지스터 제어 비트를 방지-전달 값으로 설정하는 것, 및 디버깅 구성 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 데이터 전달시 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 방지하기 위해 상기 적어도 하나의 전력 제어 비트를 방지-전력 트랜지션 값으로 설정하는 것을 포함한다. 상기 디버깅 프로세스는 신뢰받은 또는 신뢰받지 못한 디버깅 프로세스일 수 있다.
동작시, 상기 방지-전달 값은 무효 상태 값일 수 있으며, 상기 무효 상태 값에 응답하여 상기 코어 프로세서의 파워-업 시퀀스의 발생시 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 기록/판독 전달들을 무효화하는(invalidating) 단계를 추가로 포함한다. 상기 방지-전달 값은 또한 무효 상태 값일 수 있으며 상기 무효 상태 값에 대한 응답으로 코어 프로세서의 파워-다운 시퀀스의 경우 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 판독/기록 전달들의 무효화 단계를 추가로 포함한다. 따라서, 상기 방지-전력-트랜지션 값은 인터럽트-디스에이블 값(interrupt-disabled value)을 포함하고, 추가로, 상기 인터럽트-디스에이블 값에 대한 응답으로 상기 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 판독/기록 전달들 동안 전력 차단을 디스에이블하는 단계를 포함한다.
추가로, 본 발명은 디지털 신호 프로세서에 의한 파워-업 시퀀스의 발생에 후속하여 디버깅 레지스터들 및 코어 프로세서 프로세스 및 디버깅 프로세스 간의 데이터 전달을 허용하기 위해 적어도 하나의 레지스터 제어 비트를 허용-전달 값(permit-transfer value)으로 설정하는 것을 제공한다. 또한, 본 발명은 디버깅 레지스터들 및 코어 프로세서 프로세스 또는 디버깅 프로세스 간의 데이터 전달의 발생에 후속하여 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 허용하기 위해 적어도 하나의 전력 제어 비트를 허용-전력-트랜지션 값(permit-power-transition value)으로 설정하는 것을 제공한다.
멀티 스레드 디지털 신호의 비-간섭적, 스레드-선택적 디버깅을 위해 여기서 설명된 처리 특징들 및 기능들은 다양한 방식들로 구현될 수 있다. 예를 들어, DSP(40)가 상기 설명된 동작들을 수행할 수 있을 뿐만 아니라, 본 실시예들 역시 주문형 반도체(ASIC), 마이크로제어기, 디지털 신호 처리기, 또는 여기에 설명된 기능들을 수행하도록 설계된 다른 전자 회로들로 구현될 수 있다. 또한, 여기서 설명된 프로세스 및 특징들은 이러한 다양한 신호 및 명령 처리 시스템들에 의한 판독 및 실행을 위해 자기, 광학 또는 다른 기록 매체에 저장될 수 있다. 따라서, 바람직한 실시예들의 전술된 설명은 당업자가 본 발명을 제작하거나 사용할 수 있도록 제공된다. 이들 실시예들에 대한 다양한 수정은 당업자들에게 자명할 것이며, 여기서 정의된 포괄 원리들은 본 발명의 권리를 사용함이 없이 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 여기서 나타난 실시예들에 제한되는 것으로 의도되는 것이 아니라, 여기서 개시된 원리들 및 신규한 특징들에 부합하는 가장 넓은 범위에 따라야 한다.

Claims (32)

  1. 디버깅 동작들을 제어하기 위한 방법으로서,
    다수의 디버깅 레지스터들을 코어 프로세서 프로세스 및 디버깅 프로세스와 연관시키는 단계;
    전력 트랜지션(transition) 시퀀스가 디지털 신호 프로세서 내에서 발생할 때 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 데이터 전달을 방지하기 위해 상기 다수의 디버깅 레지스터들 내의 적어도 하나의 레지스터 제어 비트를 방지-전달 값(prevent-transfer value)으로 선택적으로 설정하는 단계; 및
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 데이터를 전달할 때 상기 디지털 신호 프로세서의 상기 전력 트랜지션 시퀀스를 방지하기 위해 상기 다수의 디버깅 레지스터들과 연관된 적어도 하나의 전력 제어 비트를 방지-전력-트랜지션 값(prevent-power-transition value)으로 설정하는 단계를 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  2. 제1항에 있어서,
    상기 전력 트랜지션 시퀀스는 파워-다운(power-down) 시퀀스를 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  3. 제1항에 있어서,
    상기 디버깅 레지스터들은 다수의 디버깅 구성 레지스터들을 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  4. 제1항에 있어서,
    상기 방지-전달 값은 무효 상태 값을 포함하고,
    상기 무효 상태 값에 응답하여 상기 코어 프로세서의 파워-업(power-up) 시퀀스의 발생시에 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 판독/기록 전달들을 무효화하는(invalidating) 단계를 더 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  5. 제1항에 있어서,
    상기 방지-전달 값은 무효 상태 값을 포함하고,
    상기 무효 상태 값에 응답하여 상기 코어 프로세서의 파워-다운 시퀀스의 발생시에 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 판독/기록 전달들을 무효화하는 단계를 더 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  6. 제1항에 있어서,
    상기 방지-전력-트랜지션 값은 인터럽트-디스에이블 값(interrupt-disabled value)을 포함하고,
    상기 인터럽트-디스에이블 값에 응답하여 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 판독/기록 전달들 동안 전력 차단(power collapse)을 디스에이블하는 단계를 더 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  7. 제1항에 있어서,
    상기 디지털 신호 프로세서 내에서 발생하는 파워-업 시퀀스에 후속하여 상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 데이터 전달을 허용하기 위해 상기 적어도 하나의 레지스터 제어 비트를 허용-전달 값(permit-transfer value)으로 설정하는 단계를 더 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  8. 제1항에 있어서,
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 데이터 전달 이벤트에 후속하여 상기 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 허용하기 위해 상기 적어도 하나의 전력 제어 비트를 허용-전력-트랜지션 값(permit-power-transition value)으로 설정하는 단계를 더 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  9. 제1항에 있어서,
    상기 전력 트랜지션 시퀀스가 발생하기 전에 상기 다수의 디버깅 레지스터들에 기존의(existing) 디버그 구성을 저장하는 단계를 더 포함하는, 디버깅 동작들을 제어하기 위한 방법.
  10. 제1항에 있어서,
    상기 다수의 디버깅 레지스터들 및 상기 코어 프로세서 프로세스와 관련하여 데이터를 전달할 때 상기 다수의 디버깅 레지스터들과 연관되는 상기 적어도 하나의 전력 제어 비트는 상기 디지털 신호 프로세서의 상기 전력 트랜지션 시퀀스를 방지하기 위해 상기 방지-전력-트랜지션 값으로 설정되는, 디버깅 동작들을 제어하기 위한 방법.
  11. 제1항에 있어서,
    상기 다수의 디버깅 레지스터들 및 상기 디버깅 프로세스와 관련하여 데이터를 전달할 때 상기 다수의 디버깅 레지스터들과 연관되는 상기 적어도 하나의 전력 제어 비트는 상기 디지털 신호 프로세서의 상기 전력 트랜지션 시퀀스를 방지하기 위해 상기 방지-전력-트랜지션 값으로 설정되는, 디버깅 동작들을 제어하기 위한 방법.
  12. 디지털 신호 프로세서 디버깅 시스템으로서,
    디버깅 프로세스 및 코어 프로세서 프로세스와 연관된 다수의 디버깅 레지스터들;
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 데이터 전달을 제어하기 위해 상기 다수의 디버깅 레지스터들 내에 설정된 적어도 하나의 레지스터 제어 비트 ― 상기 적어도 하나의 레지스터 제어 비트는 디지털 신호 프로세서 내에서 발생하는 전력 트랜지션 시퀀스의 발생시에 상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 데이터 전달을 방지하기 위해 방지-전달 값으로 선택적으로 설정될 수 있음 ―; 및
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 데이터 전달의 발생시에 상기 디지털 신호 프로세서의 상기 전력 트랜지션 시퀀스를 방지하기 위해 방지-전력-트랜지션 값으로 설정될 수 있는 적어도 하나의 전력 제어 비트를 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  13. 제12항에 있어서,
    상기 전력 트랜지션 시퀀스는 파워-업 시퀀스를 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  14. 제12항에 있어서,
    상기 전력 트랜지션 시퀀스는 파워-다운 시퀀스를 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  15. 제12항에 있어서,
    상기 디버깅 레지스터들은 다수의 디버깅 구성 레지스터들을 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  16. 제12항에 있어서,
    상기 디버깅 프로세스가 신뢰된(trusted) 디버깅 프로세스인지에 대한 확인에서 적어도 하나의 신뢰된 디버깅 제어 비트를 제공하기 위한 신뢰된 디버깅 프로세스 레지스터를 더 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  17. 제12항에 있어서,
    상기 방지-전달 값은 무효 상태 값을 포함하고,
    상기 무효 상태 값에 응답하여 상기 코어 프로세서의 파워-업 시퀀스의 발생시에 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 판독/기록 전달들을 무효화하기 위한 명령들 및 회로를 더 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  18. 제12항에 있어서,
    상기 방지-전달 값은 무효 상태 값을 포함하고,
    상기 무효 상태 값에 응답하여 상기 코어 프로세서의 파워-다운 시퀀스의 발생시에 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 판독/기록 전달들을 무효화하기 위한 명령들 및 회로를 더 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  19. 제12항에 있어서,
    상기 방지-전력-트랜지션 값은 인터럽트-디스에이블 값을 포함하고,
    상기 인터럽트-디스에이블 값에 응답하여 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 판독/기록 전달들 동안 전력 차단을 디스에이블하기 위한 명령들 및 회로를 더 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  20. 제12항에 있어서,
    상기 전력 트랜지션 시퀀스는 상기 디지털 신호 프로세서 내에서 발생하는 파워-업 시퀀스를 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  21. 제12항에 있어서,
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 데이터 전달 이벤트에 후속하여 상기 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 허용하기 위해 상기 적어도 하나의 전력 제어 비트를 허용-전력-트랜지션 값으로 설정하기 위한 명령들 및 회로를 더 포함하는, 디지털 신호 프로세서 디버깅 시스템.
  22. 디지털 신호 프로세서로서,
    다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 디버깅 프로세스와 관련하여 데이터 전달을 제어하기 위해 적어도 하나의 레지스터 제어 비트를 상기 다수의 디버깅 레지스터들 내에 설정하기 위한 수단;
    상기 디지털 신호 프로세서 내에서 발생하는 전력 트랜지션 시퀀스의 발생시에 상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 데이터 전달을 방지하기 위해 상기 적어도 하나의 레지스터 제어 비트를 방지-전달 값으로 선택적으로 설정하기 위한 수단; 및
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 데이터 전달의 발생시에 상기 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 방지하기 위해 적어도 하나의 전력 제어 비트를 방지-전력-트랜지션 값으로 설정하기 위한 수단을 포함하는, 디지털 신호 프로세서.
  23. 제22항에 있어서,
    상기 전력 트랜지션 시퀀스는 상기 디지털 신호 프로세서 내에서 발생하는 파워-업 시퀀스를 포함하는, 디지털 신호 프로세서.
  24. 제22항에 있어서,
    상기 전력 트랜지션 시퀀스는 상기 디지털 신호 프로세서 내에서 발생하는 파워-다운 시퀀스를 포함하는, 디지털 신호 프로세서.
  25. 제22항에 있어서,
    상기 디버깅 레지스터들은 다수의 디버깅 구성 레지스터들을 포함하는, 디지털 신호 프로세서.
  26. 제22항에 있어서,
    상기 디버깅 프로세스가 신뢰된 디버깅 프로세스인지를 확인하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  27. 제22항에 있어서,
    상기 방지-전달 값은 무효 상태 값을 포함하고,
    상기 무효 상태 값에 응답하여 파워-업 시퀀스의 발생시에 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 판독/기록 전달들을 무효화하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  28. 제22항에 있어서,
    상기 방지-전달 값은 무효 상태 값을 포함하고,
    상기 무효 상태 값에 응답하여 코어 프로세서의 파워-다운 시퀀스의 발생시에 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 판독/기록 전달들을 무효화하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  29. 제22항에 있어서,
    상기 방지-전력-트랜지션 값은 인터럽트-디스에이블 값을 포함하고,
    상기 인터럽트-디스에이블 값에 응답하여 상기 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 판독/기록 전달들 동안 전력 차단을 디스에이블하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  30. 제22항에 있어서,
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 데이터 전달 이벤트에 후속하여 상기 디지털 신호 프로세서의 전력 트랜지션 시퀀스를 허용하기 위해 상기 적어도 하나의 레지스터 제어 비트를 허용-전력-트랜지션 값으로 설정하기 위한 수단을 더 포함하는, 디지털 신호 프로세서.
  31. 디지털 신호 프로세서 상에서 명령들을 처리하기 위해 구현된 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 컴퓨터-판독가능 매체로서,
    다수의 디버깅 레지스터들을 코어 프로세서 프로세스 및 디버깅 프로세스와 연관시키기 위한 컴퓨터 판독가능 프로그램 코드 수단;
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 데이터 전달을 제어하기 위해 상기 다수의 디버깅 레지스터들 내에 적어도 하나의 레지스터 제어 비트를 설정하기 위한 컴퓨터 판독가능 프로그램 코드 수단;
    상기 디지털 신호 프로세서 내에서 발생하는 전력 트랜지션 시퀀스의 발생시에 상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터 및 상기 디버깅 프로세스와 관련하여 데이터 전달을 방지하기 위해 상기 적어도 하나의 레지스터 제어 비트를 방지-전달 값으로 선택적으로 설정하기 위한 컴퓨터 판독가능 프로그램 코드 수단; 및
    상기 다수의 디버깅 레지스터들 중 임의의 디버깅 레지스터와 관련하여 데이터 전달의 발생시에 상기 디지털 신호 프로세서의 상기 전력 트랜지션 시퀀스를 방지하기 위해 적어도 하나의 전력 제어 비트를 방지-전력-트랜지션 값으로 설정하기 위한 컴퓨터 판독가능 프로그램 코드 수단을 포함하는, 컴퓨터-판독가능 매체.
  32. 제31항에 있어서,
    상기 전력 트랜지션 시퀀스는 상기 디지털 신호 프로세서 내에서 발생하는 파워-다운 시퀀스를 포함하는, 컴퓨터-판독가능 매체.
KR1020097012383A 2006-11-15 2007-11-13 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템 KR101097620B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/560,323 2006-11-15
US11/560,323 US7657791B2 (en) 2006-11-15 2006-11-15 Method and system for a digital signal processor debugging during power transitions

Publications (2)

Publication Number Publication Date
KR20090089425A KR20090089425A (ko) 2009-08-21
KR101097620B1 true KR101097620B1 (ko) 2011-12-22

Family

ID=39370693

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097012383A KR101097620B1 (ko) 2006-11-15 2007-11-13 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템

Country Status (7)

Country Link
US (1) US7657791B2 (ko)
EP (1) EP2095204A2 (ko)
JP (2) JP2010510582A (ko)
KR (1) KR101097620B1 (ko)
CN (1) CN101681191B (ko)
TW (1) TW200837557A (ko)
WO (1) WO2008061086A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020009123A (ko) * 2000-07-24 2002-02-01 채문식 암세포에 대한 다중약제내성조절용 빈랑 추출물 및 그제조방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8533530B2 (en) * 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US7681012B2 (en) * 2007-01-30 2010-03-16 Texas Instruments Incorporated Method, system and device for handling a memory management fault in a multiple processor device
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US8184763B2 (en) * 2009-01-13 2012-05-22 Areva Sa System and a process for producing at least one hydrocarbon fuel from a carbonaceous material
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US8510719B2 (en) * 2009-11-05 2013-08-13 International Business Machines Corporation Real-time user configurable debugging framework
US8601315B2 (en) * 2010-11-01 2013-12-03 Freescale Semiconductor, Inc. Debugger recovery on exit from low power mode
US9030979B2 (en) * 2011-05-11 2015-05-12 Qualcomm Incorporated Reducing power consumption in multi-threaded processor mobile devices
US9348775B2 (en) 2012-03-16 2016-05-24 Analog Devices, Inc. Out-of-order execution of bus transactions
US10831888B2 (en) * 2018-01-19 2020-11-10 International Business Machines Corporation Data recovery enhancement system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060248394A1 (en) * 2005-04-27 2006-11-02 Mcgowan Robert A Apparatus and method for test and debug of a processor/core having advanced power management

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4080650A (en) 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint
US4669059A (en) * 1983-11-07 1987-05-26 Motorola, Inc. Method and apparatus in a data processor for selectively disabling a power-down instruction
US4901307A (en) 1986-10-17 1990-02-13 Qualcomm, Inc. Spread spectrum multiple access communication system using satellite or terrestrial repeaters
US5136717A (en) 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5103459B1 (en) 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
US5551043A (en) * 1994-09-07 1996-08-27 International Business Machines Corporation Standby checkpoint to prevent data loss
US6467054B1 (en) * 1995-03-13 2002-10-15 Compaq Computer Corporation Self test for storage device
US6226749B1 (en) 1995-07-31 2001-05-01 Hewlett-Packard Company Method and apparatus for operating resources under control of a security module or other secure processor
US5544311A (en) 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
US5951696A (en) 1996-11-14 1999-09-14 Hewlett-Packard Company Debug system with hardware breakpoint trap
US5915083A (en) * 1997-02-28 1999-06-22 Vlsi Technology, Inc. Smart debug interface circuit for efficiently for debugging a software application for a programmable digital processor device
US6314530B1 (en) * 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US6029248A (en) 1997-12-15 2000-02-22 Lucent Technologies Inc. Corporation Locking system to protect a powered component interface from erroneous access by an attached, powered-off component
US6757829B1 (en) 1998-05-29 2004-06-29 Texas Instruments Incorporated Program debugging system for secure computing device having secure and non-secure modes
DE19835610A1 (de) * 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6480818B1 (en) 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6532553B1 (en) 1998-12-08 2003-03-11 Arm Limited Debugging data processing systems
US6438700B1 (en) * 1999-05-18 2002-08-20 Koninklijke Philips Electronics N.V. System and method to reduce power consumption in advanced RISC machine (ARM) based systems
CN1148656C (zh) 1999-09-07 2004-05-05 皇家菲利浦电子有限公司 面向线程的调试
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
GB2362730B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Computer register watch
US6665802B1 (en) * 2000-02-29 2003-12-16 Infineon Technologies North America Corp. Power management and control for a microcontroller
US20020065646A1 (en) 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
US7020871B2 (en) 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6915416B2 (en) * 2000-12-28 2005-07-05 Texas Instruments Incorporated Apparatus and method for microcontroller debugging
US7073059B2 (en) 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
JP2003177938A (ja) 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
US6834360B2 (en) 2001-11-16 2004-12-21 International Business Machines Corporation On-chip logic analyzer
US20030135720A1 (en) 2002-01-14 2003-07-17 International Business Machines Corporation Method and system using hardware assistance for instruction tracing with secondary set of interruption resources
US7254716B1 (en) 2002-02-13 2007-08-07 Lsi Corporation Security supervisor governing allowed transactions on a system bus
US6615371B2 (en) 2002-03-11 2003-09-02 American Arium Trace reporting method and system
DE10244922B4 (de) * 2002-09-25 2009-08-13 Infineon Technologies Ag Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US7222262B2 (en) 2003-08-05 2007-05-22 Newisys, Inc. Methods and devices for injecting commands in systems having multiple multi-processor clusters
US7383537B2 (en) 2003-08-20 2008-06-03 Microsoft Corporation Debugging an application that employs rights-managed content
US7321957B2 (en) 2003-10-24 2008-01-22 Intel Corporation Debugging a trusted component in a system
US7383540B2 (en) 2003-12-12 2008-06-03 International Business Machines Corporation Altering execution flow of a computer program
WO2005076139A1 (en) 2004-02-05 2005-08-18 Research In Motion Limited Debugging port security interface
JP4409349B2 (ja) * 2004-04-27 2010-02-03 Okiセミコンダクタ株式会社 デバッグ回路およびデバッグ制御方法
US20060253894A1 (en) 2004-04-30 2006-11-09 Peter Bookman Mobility device platform
US7783925B2 (en) * 2004-12-02 2010-08-24 Texas Instruments Incorporated Receiving control, data, and control segments of communication scan packets
US7536597B2 (en) * 2005-04-27 2009-05-19 Texas Instruments Incorporated Apparatus and method for controlling power, clock, and reset during test and debug procedures for a plurality of processor/cores
JP2007026051A (ja) 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 情報処理装置および情報処理システム
US7849315B2 (en) 2006-05-22 2010-12-07 General Dynamics C4 Systems, Inc. Method for managing operability of on-chip debug capability
US7681078B2 (en) * 2007-05-18 2010-03-16 Freescale Semiconductor, Inc. Debugging a processor through a reset event

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060248394A1 (en) * 2005-04-27 2006-11-02 Mcgowan Robert A Apparatus and method for test and debug of a processor/core having advanced power management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020009123A (ko) * 2000-07-24 2002-02-01 채문식 암세포에 대한 다중약제내성조절용 빈랑 추출물 및 그제조방법

Also Published As

Publication number Publication date
WO2008061086A3 (en) 2009-09-24
WO2008061086A2 (en) 2008-05-22
JP2010510582A (ja) 2010-04-02
CN101681191A (zh) 2010-03-24
JP2013050966A (ja) 2013-03-14
KR20090089425A (ko) 2009-08-21
TW200837557A (en) 2008-09-16
CN101681191B (zh) 2013-03-27
US7657791B2 (en) 2010-02-02
EP2095204A2 (en) 2009-09-02
US20080115145A1 (en) 2008-05-15

Similar Documents

Publication Publication Date Title
KR101097620B1 (ko) 전력 트랜지션들 동안 디지털 신호 프로세서를 위한 방법 및 시스템
KR101155673B1 (ko) 신뢰받은/신뢰받지 못한 디지털 신호 프로세서 디버깅 동작들을 위한 방법 및 시스템
KR101046137B1 (ko) 멀티-스레드 디지털 신호 프로세서를 위한 비-간섭적이고 스레드-선택적인 디버깅 방법 및 시스템
KR101078934B1 (ko) 개선된 디지털 신호 프로세서 디버깅 동작들을 위한 임베디드 트레이스 매크로셀
KR101083182B1 (ko) 비-간섭적 디지털 신호 프로세서 디버깅 동안 명령 스터핑 동작들을 위한 방법 및 시스템
US8484516B2 (en) Inter-thread trace alignment method and system for a multi-threaded processor

Legal Events

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

Payment date: 20141128

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee