KR101050554B1 - 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹 - Google Patents

개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹 Download PDF

Info

Publication number
KR101050554B1
KR101050554B1 KR1020067025142A KR20067025142A KR101050554B1 KR 101050554 B1 KR101050554 B1 KR 101050554B1 KR 1020067025142 A KR1020067025142 A KR 1020067025142A KR 20067025142 A KR20067025142 A KR 20067025142A KR 101050554 B1 KR101050554 B1 KR 101050554B1
Authority
KR
South Korea
Prior art keywords
mask
delete delete
debug
bits
message
Prior art date
Application number
KR1020067025142A
Other languages
English (en)
Other versions
KR20070012845A (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 KR20070012845A publication Critical patent/KR20070012845A/ko
Application granted granted Critical
Publication of KR101050554B1 publication Critical patent/KR101050554B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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

Abstract

현재의 실시간 디버그 시스템에서, 집적 회로(10)에서 외부 개발 시스템(25)으로 제한 대역폭 포트(18)를 통해 디버그 메시지가 전송된다. 소정의 집적 회로들(10)은 메시지를 생성할 수 있는 다수의 버스 마스터(11, 12) 및/또는 다수의 버스(16)와 함께 훨씬 더 밀도 높게 패킹되므로, 제한 대역폭 포트(18)가 집적 회로(10)에서 외부 개발 시스템(25)으로 전송되는 디버그 메시지들의 볼륨을 충분히 지원하는 것은 더더욱 어려워지고 있다. 대역폭을 크게 향상시키기 위하여 복수의 마스크(70, 80, 90, 100, 110, 120, 130, 140, 150) 및 마스킹 회로(36)를 이용하여 디버그 메시지들(40, 50)의 부분들(41-45, 51-55)을 선택적으로 마스킹할 수 있다.
데이터 처리 시스템, 개발 인터페이스, 디버그 시스템, 마스크, 디버그 메시지

Description

개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템 내의 마스킹{MASKING WITHIN A DATA PROCESSING SYSTEM HAVING APPLICABILITY FOR A DEVELOPMENT INTERFACE}
<관련 출원>
본 출원은, 2000년 11월 7일자로 허여되었으며, 본 명세서에 참고로 반영된 발명의 명칭이 "데이터 프로세서용 개발 인터페이스"인 미국 특허 제6,145,122호에 관련되어 있다.
본 발명은 일반적으로 데이터 처리 시스템에 관한 것으로서, 구체적으로는 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템 내의 마스킹에 관한 것이다.
현재의 실시간 디버그 시스템에서, 집적 회로에서 외부 개발 시스템으로 제한 대역폭 포트를 통해 디버그 메시지가 전송된다. 소정의 집적 회로들은 메시지를 생성할 수 있는 다수의 버스 마스터 및/또는 다수의 버스와 함께 훨씬 더 밀도 높게 패킹되므로, 제한 대역폭 포트가 집적 회로에서 외부 개발 시스템으로 전송되는 디버그 메시지들의 볼륨을 충분히 지원하는 것은 더더욱 어려워지고 있다.
본 발명은 동일 부호가 동일 요소를 나타내는 첨부 도면에 의해 예시적으로 설명되지만 이에 한정되지 않는다
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 도 1의 개발 인터페이스의 일부의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 기입 메시지 포맷의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 데이터 판독 메시지 포맷의 블록도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 마스크 제어 레지스터(70)의 블록도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 마스크 제어 레지스터(80)의 블록도이다.
도 7은 본 발명의 일 실시예에 따른 데이터 마스크 제어 레지스터(90)의 블록도이다.
도 8은 본 발명의 일 실시예에 따른 데이터 마스크 제어 레지스터(100)의 블록도이다.
도 9는 본 발명의 일 실시예에 따른 어드레스 마스크 제어 레지스터(110)의 블록도이다.
도 10은 본 발명의 일 실시예에 따른 어드레스 마스크 제어 레지스터(120)의 블록도이다.
도 11은 본 발명의 일 실시예에 따른 소스 마스크 제어 레지스터의 블록도이 다.
도 12는 본 발명의 일 실시예에 따른 데이터 사이즈 마스크 제어 레지스터(110)의 블록도이다.
도 13은 본 발명의 일 실시예에 따른 메시지 타입 마스크 제어 레지스터(110)의 블록도이다.
도 14는 단자(18) 상에서 전송되는 출력 비트의 수를 줄이기 위해 마스킹을 어떻게 이용할 수 있는지의 일례(200)를 나타내는 테이블 도면이다.
도 15는 단자(18) 상에서 전송되는 출력 비트의 수를 줄이기 위해 마스킹을 어떻게 이용할 수 있는지의 일례(300)를 나타내는 테이블 도면이다.
도 16은 단자(18) 상에서 전송되는 출력 비트의 수를 줄이기 위해 마스킹을 어떻게 이용할 수 있는지의 일례(400)를 나타내는 테이블 도면이다.
도면의 요소들은 간명하게 도시된 것이며, 축척으로 도시될 필요는 없다는 것을 이 분야의 전문가는 이해할 것이다. 예를 들어, 본 발명의 실시예들의 이해의 향상을 돕기 위해 도면의 요소들의 일부의 치수는 다른 요소들에 비해 확대될 수 있다.
본 명세서에서 사용되는 "버스"라는 용어는 데이터, 어드레스, 제어 또는 상태와 같은 하나 이상의 다양한 타입의 정보를 전송하는 데 사용될 수 있는 복수의 신호 또는 도체를 지칭하는 데 사용된다. 숫자 앞의 심볼 "%"는 숫자가 그의 2진수 형태로 표현된다는 것을 나타낸다. 숫자 앞의 심볼 "0x"는 숫자가 그의 16진수 형태로 표현된다는 것을 나타낸다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 블록도이다. 도시된 실시예에서, 데이터 처리 시스템(10)은 하나 이상의 처리 유닛(11)을 포함하고, 하나 이상의 다른 모듈(12)을 포함하고, 버스 인터페이스(13)를 옵션으로 포함하고, 개발 인터페이스(14)를 포함하고, 하나 이상의 메모리(15)를 옵션으로 포함하며, 이들 모두는 하나 이상의 버스(16)를 통해 양방향 결합될 수 있다. 소정의 실시예들에서, 메모리(15)는 단자(19)를 통해 데이터 처리 시스템(10)의 외부에 옵션으로 결합될 수 있고, 처리 유닛(11)은 단자(20)를 통해 데이터 처리 시스템(10)의 외부에 옵션으로 결합될 수 있고, 모듈(12)은 단자(21)를 통해 데이터 처리 시스템(10)의 외부에 옵션으로 결합될 수 있으며, 버스 인터페이스(13)는 단자(17)를 통해 데이터 처리 시스템(10)의 외부에 옵션으로 결합될 수 있다.
소정의 실시예들에서, 개발 인터페이스(14)는 단자(18)를 통해 데이터 처리 시스템(10)의 외부에 결합될 수 있다. 일 실시예에서, 개발 인터페이스(14)는 단자(18)를 통해 외부 개발 시스템(25)에 결합될 수 있다. 일 실시예에서, 외부 개발 시스템(25)은 단자(18)를 통해 데이터 처리 시스템(10)에 결합되는 논리 분석기(22)를 포함한다. 소정의 실시예들에서, 논리 분석기(22)는 디버깅 소프트웨어의 기능을 저장 및/또는 실행하기 위한 회로(24)를 포함하는 컴퓨터(23)에 양방향 결합될 수 있다.
본 발명의 다른 실시예들은 데이터 처리 시스템(10)에 대해 임의 타입의 아키텍쳐를 이용할 수 있다. 도 1에 도시된 아키텍쳐는 단지 하나의 가능한 아키텍쳐이다. 본 발명의 다른 실시예들은 개발 시스템(25)에 대해 임의 타입의 개발 시스템을 이용할 수 있다. 단자들(17-21)은 데이터 처리 시스템(10)으로 또는 그로부터 정보가 전송되는 것을 허용하는 임의 타입의 단자일 수 있다. 다른 모듈들(12)은 임의의 기능을 행할 수 있다. 처리 유닛(들)(11)은 임의의 방식으로 데이터를 처리할 수 있다. 메모리(15)는 정보를 저장할 수 있는 임의 타입의 회로일 수 있다. 버스 인터페이스(13)는 하나 이상의 버스(16)와 버스 단자(17)에 결합되는 외부 버스(도시되지 않음) 간의 인터페이스를 허용하는 임의 타입의 회로일 수 있다.
도 2는 본 발명의 일 실시예에 따른 도 1의 개발 인터페이스(14)의 일부의 블록도이다. 일 실시예에서, 개발 인터페이스는 서로에, 버스(16)에, 그리고 단자(18)에 양방향 결합되는 마스크 저장 회로(32) 및 다른 디버그 회로(30)를 포함한다. 마스킹 회로(36)는 마스크 저장 회로(32) 및 단자(18)에 결합된다. 디버그 메시지 저장 회로(34)는 다른 디버그 회로(30) 및 마스킹 회로(36)에 결합된다. 일 실시예에서, 마스크 저장 회로는 레지스터(38)의 일부로서 포함된다. 본 발명의 다른 실시예들은 개발 인터페이스(14) 내의 어디에나, 또는 대안으로 데이터 처리 시스템(10) 내의 어디에나 마스크 저장 회로(32)를 배치하고 결합시킬 수 있다. 마찬가지로, 디버그 메시지 저장 회로(34) 및 마스킹 회로(36)도 어디에나 배치되고, 개발 인터페이스(14) 또는 데이터 처리 시스템(10) 내에 임의의 방식으로 결합될 수 있다.
디버그 메시지 저장 회로(34)는 데이터 저장 회로로 지칭될 수도 있다. 디버그 메시지 저장 회로(34)는, 예를 들어 개발 인터페이스(14)가 개발 기능 외의 다른 또는 추가적인 기능을 수행할 때 단자(18)를 통해 데이터 처리 시스템(10)의 외부로 전송할 데이터를 저장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 기입 메시지 포맷(40)의 블록도이다. 본 발명의 일 실시예에서, 데이터 기입 메시지 포맷(40)은 복수의 비트 필드, 즉 데이터 값 비트 필드(41), 상대/풀 어드레스 비트 필드(42), 데이터 사이즈 비트 필드(43), 소스 프로세서 비트 필드(44) 및 메시지 타입 비트 필드(45)를 포함한다. 데이터 기입 메시지 포맷(40)이 각 비트 필드에 대해 표시된 비트 수를 갖는 것으로 도시되었지만, 본 발명의 다른 실시예들은 각 비트 필드에 대해 임의의 비트 수를 이용할 수 있다.
본 발명의 소정의 실시예들에서, 어드레스 필드(42)는 풀 어드레스 또는 상대 어드레스를 나타낼 수 있다. 본 발명의 다른 실시예들은 다른 방식으로(예를 들어, 풀 어드레스만, 상대 어드레스만 등등) 어드레스 필드를 이용할 수 있다. 데이터 사이즈 필드(43)는 데이터 값(들) 필드(41)에서 전송되는 데이터 값(들)의 폭을 나타내는 데 이용될 수 있다. 일 실시예에서, 데이터 값(들)은 8 비트, 16 비트, 32 비트 또는 64 비트의 폭을 가질 수 있다. 다른 실시예들은 임의의 원하는 데이터 사이즈를 이용할 수 있다. 소스 프로세서 필드(44)는 처리 유닛(11)(도 1 참조) 내의 어느 프로세서가 특정 데이터 기입 메시지에 대응하는지를 나타내는 데 이용될 수 있다. 본 발명의 다른 실시예들은 대신에 처리 유닛(11)만이 아니라 임의의 소스 회로가 특정 데이터 기입 메시지가 대응하는 소스 회로일 수 있는 일반 소스 필드로서 필드(44)를 이용할 수 있다. 예를 들어, 소스 회로는 DMA(직접 메모리 액세스) 회로이거나, 임의의 버스(들)(16) 상의 버스 마스터이거나, 데이터 처리 시스템(10) 내의 임의의 다른 회로일 수 있다.
메시지 타입 필드(45)는 어떤 타입의 정보가 현재 메시지 내에 포함되어 있는지(예를 들어, 메시지가 데이터 기입 또는 데이터 판독 메시지인지)를 나타내는 데 이용될 수 있다. 메시지 타입 필드(45)는 예를 들어 오류 조건이 발생하였는지의 여부와 같은 특수 정보를 제공하기 위해 이용될 수도 있다. 본 발명의 일 실시예에서, 데이터 기입 메시지 포맷(40)은 IEEE에 의해 규정된 NEXUS 5001(즉, IEEE ISTO 5001)과 호환된다. 본 발명의 이 실시예에서, 메시지 타입 필드(45)는 TCODES를 전송하는 데 이용될 수 있다.
본 발명의 다른 실시예들은 도 3에 도시된 것보다 많거나, 적거나 또는 상이한 비트 필드를 이용할 수 있다는 점에 유의한다.
도 4는 본 발명의 일 실시예에 따른 데이터 판독 메시지 포맷(50)의 블록도이다. 도 4의 데이터 판독 메시지 포맷(50)은 데이터 처리 시스템(10)에 대한 판독 액세스를 위한 것인 반면, 도 3의 데이터 기입 메시지 포맷(40)은 데이터 처리 시스템(10)에 대한 기입 액세스를 위한 것이라는 점에 유의한다. 본 발명의 일 실시예에서, 메시지 타입 필드(45, 55) 내의 한 비트는 데이터 메시지 타입이 포맷(40)에서와 같이 "기입"인지, 또는 포맷(50)에서와 같이 "판독"인지를 구별하는 데 이용된다. 본 발명의 다른 실시예들은 단일 디버그 메시지 포맷만을 이용하거나, 둘보다 많은 디버그 메시지 포맷을 이용하거나, 도 3 및 4에 도시된 것과 다른 디버그 메시지 포맷들을 이용할 수 있다. 일 실시예에서, 데이터 판독 메시지 포맷(50)의 비트 필드(51-55)는 전술한 데이터 기입 메시지 포맷(40)의 대응 비트 필드(41-45)와 동일한 방식으로 기능한다. 다른 실시예들에서, 비트 필드(51-55)는 포맷(40)에 대해 전술한 것과 다른 기능을 가질 수 있다. 데이터 판독 메시지 포맷(50)이 각 비트 필드에 대해 표시된 비트 수를 갖는 것으로 도시되었지만, 본 발명의 다른 실시예들은 각 비트 필드에 대해 임의의 비트 수를 이용할 수 있다. 본 발명의 다른 실시예들은 도 4에 도시된 것보다 많거나, 적거나 또는 다른 비트 필드들을 이용할 수 있다는 점에 유의한다.
본 발명의 일 실시예에서, 데이터 판독 메시지 포맷(50)은 IEEE에 의해 규정된 NEXUS 5001TM(즉, IEEE ISTO 5001)과 호환된다. 본 발명의 이 실시예에서, 메시지 타입 필드(45)는 TCODES를 전송하는 데 이용될 수 있다.
도 5-8은 본 발명의 일 실시예에 따른 데이터 마스크 제어 레지스터(70, 80, 90, 100)의 블록도이다. 도시된 실시예에서, 개별 마스크들은 상이한 데이터 폭에 대해 이용된다. 예를 들어, 데이터 마스크 제어 레지스터(70)는 2개의 32 비트 부분(71, 72)을 갖는데, 이들 각각은 32 비트 마스크를 저장한다. 이어서, 부분들(71, 72) 내의 32 비트 마스크는 64 비트 마스크를 형성하도록 연결된다. 데이터 마스크 제어 레지스터(80)는 32 비트 마스크를 저장하고, 데이터 마스크 제어 레지스터(90)는 16 비트 마스크를 저장하며, 데이터 마스크 제어 레지스터(100)는 8 비트 마스크를 저장한다. 본 발명의 다른 실시예들은 더 많거나, 적거나 상이한 데이터 마스크 제어 레지스터를 이용할 수 있다.
또한, 다른 실시예들에서, 복수의 마스크 값이 동일 레지스터 내에 위치할 수 있다(예를 들어, 데이터 마스크 제어 레지스터(100)에 저장된 마스크에 의해 요구되는 8 비트가 데이터 마스크 레지스터(90)에 저장된 마스크에 의해 요구되는 16 비트와 동일한 32 비트 레지스터에 저장될 수 있다). 다른 실시예들은 주어진 데이터 폭에 대해 다수의 마스크를 가질 수도 있다. 예를 들어, 데이터 마스크 레지스터(100)는 상이한 디버그 메시지들을 선택적으로 마스킹하는 데 이용될 수 있는 4개의 상이한 8 비트 마스크 값을 저장할 수 있다. 예를 들어, 어느 8 비트 마스크 값이 이용되는지는 디버그 메시지 자체 내의 한 필드에 의해 결정될 수 있다. 예를 들어, 도 3 및 4를 참조하면, 메시지 타입 필드(45, 55)는 레지스터(100) 내의 복수의 마스크 값 중 어느 8 비트 마스크 값이 마스킹을 행하는 데 실제로 이용될 것인지를 선택하는 데 이용될 수 있다.
도 2-8을 참조하면, 데이터 마스크 레지스터(70, 80, 90, 100) 중 하나는 마스크 저장 회로(32)(도 2 참조)에서 마스킹 회로(36)로 마스크 값을 제공하는 데 이용된다. 선택되는 마스크는 프로세서 데이터 전송의 사이즈에 기초하거나, 액세스의 다른 속성에 기초하여 선택될 수 있다. 이어서, 마스킹 회로(36)는 이 마스크 값을 이용하여, 데이터 값(들) 비트 필드(41, 51) 내의 선택된 비트들을 마스킹한다. 이어서, 데이터 값(들) 필드(41, 51) 내의 마스킹된 비트들은 단자(18)로 전송되지 않으며, 따라서 외부 개발 시스템(25)으로 전송되지 않는다. 마스킹 회로(36)에 의해 제공되는 마스킹 프로세스는 단자(18)의 유효 대역폭을 크게 증가시킨다.
도 9는 본 발명의 일 실시예에 따른 어드레스 마스크 제어 레지스터(110)의 블록도이다. 도 10은 본 발명의 일 실시예에 따른 어드레스 마스크 제어 레지스터(120)의 블록도이다. 일 실시예에서, 개별 마스크들(레지스터(110, 120)에 각각 저장됨)은 정상 메시지에 대해, 그리고 동기화 메시지에 대해 사용된다. 다른 실시예에서, 레지스터(110)는 상대 어드레스를 마스킹하는 데 사용될 수 있고, 레지스터(120)는 풀 어드레스를 마스킹하는 데 사용될 수 있다. 또한, 개별 마스크들은 판독 메시지에 대해, 그리고 기입 메시지에 대해 제공될 수 있다. 이것의 일례로서, 다른 실시예에서, 레지스터(110)에 저장된 마스크는 데이터 기입 메시지 포맷(40)(도 3 참조) 내의 비트 필드(42) 내의 선택된 비트들을 마스킹하는 데 사용될 수 있고, 레지스터(120)에 저장된 마스크는 데이터 판독 메시지 포맷(50)(도 4 참조) 내의 비트 필드 내의 선택된 비트들을 마스킹하는 데 사용될 수 있다. 본 발명의 다른 실시예들은 더 많거나, 적거나, 또는 상이한 어드레스 마스크 제어 레지스터를 이용할 수 있다.
또한, 다른 실시예들에서, 복수의 마스크 값이 동일 레지스터에 위치할 수 있다. 다른 실시예들은 주어진 어드레스 타입(예를 들어, 상대 어드레스)에 대해 다수의 마스크를 가질 수도 있다. 예를 들어, 어드레스 마스크 레지스터(110)는 특정 어드레스 범위 내의 어드레스들을 선택적으로 마스킹하는 데 이용될 수 있는 마스크 값을 저장할 수 있으며, 어드레스 마스크 레지스터(120)는 다른 어드레스 범위 내의 마스크들을 선택적으로 마스킹하는 데 이용될 수 있는 마스크 값을 저장할 수 있다. 대안으로, 메시지 타입 필드(45, 55)(도 3 및 4 참조)는 복수의 어드레스 마스크 레지스터(110, 120) 중의 어느 어드레스 마스크 값이 실제로 마스킹을 행하는 데 이용될 것인지를 선택하는 데 이용될 수 있다.
도 2-4 및 9-10을 참조하면, 어드레스 마스크 레지스터(110, 120) 중 하나는 마스크 저장 회로(32)(도 2 참조)에서 마스킹 회로(36)로 마스크 값을 제공하는 데 이용된다. 이어서, 마스킹 회로(36)는 이 마스크 값을 이용하여, 어드레스 필드(42, 52) 내의 선택된 비트들을 마스킹한다. 이어서, 어드레스 필드(42, 52) 내의 마스킹된 비트들은 단자(18)로 전송되지 않으며, 따라서 외부 개발 시스템(25)으로 전송되지 않는다. 마스킹 회로(36)에 의해 제공되는 마스킹 프로세스는 단자(18)의 유효 대역폭을 크게 증가시킨다.
도 11은 본 발명의 일 실시예에 따른 소스 마스크 제어 레지스터(130)의 블록도이다. 일 실시예에서, 데이터 트레이스 메시지에 대한 개별 소스 프로세서 비트 마스크가 소스 마스크 제어 레지스터(130)의 일부에 저장된다. 레지스터(130)에 저장되는 이 소스 프로세서 마스크는 비트 필드(44)(도 3 참조) 및 비트 필드(54)(도 4 참조) 내의 선택된 비트들을 마스킹하는 데 이용될 수 있다. 다른 실시예들에서, 판독 메시지에 대해, 그리고 기입 메시지에 대해 개별 마스크가 제공될 수 있다. 이것의 일례로서, 다른 실시예에서, 레지스터(130)의 제1 부분에 저장된 제1 마스크가 데이터 기입 메시지 포맷(40)(도 3 참조)의 비트 필드(44) 내의 선택된 비트들을 마스킹하는 데 이용될 수 있으며, 레지스터(130)의 제2 부분에 저장된 제2 마스크가 데이터 판독 메시지 포맷(50)(도 4 참조)의 비트 필드(54) 내의 선택된 비트들을 마스킹하는 데 이용될 수 있다. 대안으로, 메시지 타입 필드(45, 55)(도 3 및 4 참조)는 복수의 소스 마스크 값 중 어느 소스 마스크 값이 실제로 마스킹을 행하는 데 이용될 것인지를 선택하는 데 이용될 수 있다. 본 발명의 다른 실시예들은 소스 마스크 레지스터(130) 내의 보다 많거나, 적거나 또는 상이한 사이즈 필드들을 이용할 수 있다.
도 2-4 및 11을 참조하면, 소스 마스크 레지스터(130)로부터의 마스크가 마스크 저장 회로(32)(도 2 참조)에서 마스킹 회로(36)로 마스크 값을 제공하는 데 이용된다. 이어서, 마스킹 회로(36)는 이 마스크 값을 이용하여, 소스 프로세서 필드(44, 54) 내의 선택된 비트들을 마스킹한다. 이어서, 소스 프로세서 필드(44, 54) 내의 마스킹된 비트들은 단자(18)로 전송되지 않으며, 따라서 외부 개발 시스템(25)으로 전송되지 않는다. 마스킹 회로(36)에 의해 제공되는 마스킹 프로세스는 단자(18)의 유효 대역폭을 크게 증가시킨다.
도 12는 본 발명의 일 실시예에 따른 데이터 사이즈 마스크 제어 레지스터의 블록도이다. 일 실시예에서, 데이터 트레이스 메시지에 대한 개별 데이터 사이즈 비트 마스크가 데이터 사이즈 마스크 제어 레지스터(140)의 일부에 저장된다. 레지스터(140)에 저장되는 이 데이터 사이즈 마스크는 비트 필드(43)(도 3 참조) 및 비트 필드(53)(도 4 참조) 내의 선택된 비트들을 마스킹하는 데 이용될 수 있다. 다른 실시예들에서, 판독 메시지에 대해, 그리고 기입 메시지에 대해 개별 마스크가 제공될 수 있다. 대안으로, 메시지 타입 필드(45, 55)(도 3 및 4 참조)는 복수의 데이터 사이즈 마스크 값 중 어느 데이터 사이즈 마스크 값이 실제로 마스킹을 행하는 데 이용될 것인지를 선택하는 데 이용될 수 있다. 본 발명의 다른 실시예들은 데이터 사이즈 마스크 레지스터(140) 내의 보다 많거나, 적거나 또는 상이한 사이즈 필드들을 이용할 수 있다.
도 2-4 및 12를 참조하면, 데이터 사이즈 마스크 레지스터(140)로부터의 마스크가 마스크 저장 회로(32)(도 2 참조)에서 마스킹 회로(36)로 마스크 값을 제공하는 데 이용될 수 있다. 이어서, 마스킹 회로(36)는 이 마스크 값을 이용하여, 데이터 사이즈 필드(43, 53) 내의 선택된 비트들을 마스킹한다. 이어서, 데이터 사이즈 필드(43, 53) 내의 마스킹된 비트들은 단자(18)로 전송되지 않으며, 따라서 외부 개발 시스템(25)으로 전송되지 않는다. 마스킹 회로(36)에 의해 제공되는 마스킹 프로세스는 단자(18)의 유효 대역폭을 크게 증가시킨다.
도 13은 본 발명의 일 실시예에 따른 메시지 타입 마스크 제어 레지스터의 블록도이다. 일 실시예에서, 모든 메시지에 대한 개별 메시지 타입 비트 마스크가 메시지 타입 마스크 제어 레지스터(150)의 일부에 저장된다. 레지스터(150)에 저장되는 이 메시지 타입 마스크는 비트 필드(45)(도 3 참조) 및 비트 필드(55)(도 4 참조) 내의 선택된 비트들을 마스킹하는 데 이용될 수 있다. 다른 실시예들에서, 판독 메시지에 대해, 그리고 기입 메시지에 대해 개별 마스크가 제공될 수 있다. 본 발명의 다른 실시예들은 메시지 타입 마스크 레지스터(150) 내의 보다 많거나, 적거나 또는 상이한 사이즈 필드들을 이용할 수 있다.
도 2-4 및 13을 참조하면, 메시지 타입 마스크 레지스터(150)로부터의 마스크가 마스크 저장 회로(32)(도 2 참조)에서 마스킹 회로(36)로 마스크 값을 제공하는 데 이용된다. 이어서, 마스킹 회로는 이 마스크 값을 이용하여, 메시지 타입 필드(45, 55) 내의 선택된 비트들을 마스킹한다. 이어서, 메시지 타입 필드(45, 55) 내의 마스킹된 비트들은 단자(18)로 전송되지 않으며, 따라서 외부 개발 시스템(25)으로 전송되지 않는다. 마스킹 회로(36)에 의해 제공되는 마스킹 프로세스는 단자(18)의 유효 대역폭을 크게 증가시킨다.
본 발명의 일 실시예에서, 레지스터(150)에 저장되는 메시지 타입 마스크는 모든 메시지를 마스킹하는 데 이용될 수 있는 반면, 선택된 다른 레지스터들(예를 들어, 레지스터(110-150))에 저장되는 마스크들은 선택된 메시지 타입(예를 들어, 데이터 트레이스 메시지)을 마스킹하는 데만 이용될 수 있다. 어떤 타입의 메시지가 전송되고 있는지는 메시지 타입 필드(45, 55)(도 3 및 4 참조)에 의해 표시됨에 유의한다. 본 발명의 다른 실시예들은 메시지 타입, 판독/기입, 또는 임의의 다른 기준에 기초하여 이용 가능 마스크들 중 하나 이상을 선택적으로 적용할 수 있다. 본 발명의 일 실시예에서, 메시지 타입 필드(45, 55)는 NEXUS 5001TM 디버그 표준에서 이용되는 TCODES를 제공하는 데 이용된다.
도 5-13에 도시된 마스크들 중 임의의 마스크는 레지스터가 충분한 비트들을 이용할 수 있다면 동일 레지스터에 함께 위치할 수 있다는 점에 유의한다. 본 발명의 일 실시예에서, 마스크 레지스터들(70, 80, 90, 100, 110, 120, 130, 140, 150)은 모두 마스크 저장 회로(32)의 일부로서 위치할 수 있다. 본 발명의 다른 실시예들에서, 마스크 레지스터들(70, 80, 90, 100, 110, 120, 130, 140, 150)은 데이터 처리 시스템(10) 내의 어디에나 위치할 수 있다. 본 발명의 도시된 실시예가 마스크 레지스터(70, 80, 90, 100, 110, 120, 130, 140 ,150)를 이용하여, 도 3 및 4에 도시된 포맷(40, 50)을 이용하는 디버그 메시지 내의 비트들을 마스킹하지만, 다른 실시예들은 유사하거나 상이한 마스크 레지스터들을 이용하여, 임의의 원하는 메시지 포맷을 이용하는 임의의 원하는 타입의 메시지 내의 비트들을 마스킹할 수 있다.
예 200
도 14는 마스킹이 단자(18) 상에서 전송되는 출력 비트들의 수(즉, 대역폭)를 줄이는 데 이용될 수 있는 방법의 일례(200)를 나타낸다. 도 14는 프로그램 흐름이 추적되고 있는 동안 메모리 내의 2개의 제어 변수(Variable1 및 Variable2)가 모니터링되는 일례를 나타낸다. 도 14의 박스 201을 참조하면, Variable1은 어드레스 0x1300D3C3에 위치하며, 8 비트의 변수 타입을 갖는다. Variable2는 어드레스 0x81001BF4에 위치하며, 16 비트의 변수 타입을 갖는다. 도 3 및 4에 도시된 데이터 메시지 포맷(기입에 대해 40, 판독에 대해 50)을 이용하는 디버그 메시지가 Variable1에 대해 사용되는 경우, 개발 인터페이스(14)에서 외부 개발 시스템(25)으로 52 비트가 전송되는 것이 요구된다(박스 202 참조). 마찬가지로, 도 3 및 4에 도시된 데이터 메시지 포맷(기입에 대해 40, 판독에 대해 50)을 이용하는 디버그 메시지가 Variable2에 대해 사용되는 경우, 개발 인터페이스(14)에서 외부 개발 시스템(25)으로 60 비트가 전송되는 것이 요구된다(박스 202 참조).
그러나, 이 예(200)에서, 디버그 메시지 내의 많은 비트들은 외부 개발 시스템(25)에 유용한 정보를 제공하고 있지 않으며, 따라서 단자(18) 상의 중요한 대역폭을 낭비하고 있다. 박스 204를 참조하면, 중요한 정보의 손실 없이 단자(18) 상에서 전송되는 비트들의 수를 크게 줄일 수 있다. 박스 204에서, 모든 데이터 비트는 유용한 정보를 포함하며, 따라서 전혀 마스킹되지 않는다. 박스 204에서, Variable1에 대한 어드레스 위치와 Variable2에 대한 어드레스 위치 사이를 구분하기 위하여 비트 A31만이 필요하다. 따라서, A31은 외부 개발 시스템(25)에 의해 요구되는 어드레스 필드(42)(도 3 참조) 내의 유일한 어드레스 비트이다. 데이터 필드의 폭이 이미 변수 타입으로부터 외부 개발 시스템(25)에 의해 알려져 있으므로, 데이터 사이즈 필드(53)(도 3 참조)로부터의 어떠한 비트들도 외부 개발 시스템(25)에 의해 요구되지 않는다. 이 예(200)에서는 하나의 소스 프로세서만이 존재하며, 결과적으로 소스 프로세서 필드(44)(도 3 참조)로부터의 어떤 비트들도 외부 개발 시스템(25)에 의해 요구되지 않는다. 이 예(200)에서, 메시지 타입 필드(45)(도 3 참조)에 의해 제공되는 유일한 유용한 정보는 오류가 발생했는지의 여부를 나타내는 개별 비트이다. 결과적으로, 메시지 타입 필드(45)로부터의 하나의 비트만이 외부 개발 시스템(25)에 의해 요구된다.
Variable1 디버그 메시지의 52 비트가 도 5-13에 도시된 관련 레지스터를 이용하여 마스킹되어, 불필요한 비트들을 제거하는 경우, 결과적인 마스킹된 메시지는 훨씬 더 적은 비트, 즉 10 비트만을 갖는다. 따라서, 단자(18)를 통해 52 비트를 전송해야 하는 대신에, 10 비트만이 전송되어야 한다. 이것은 외부 개발 시스템(25)에 대해 Variable1에 관한 필요한 정보를 제공하는 각각의 트레이스 또는 디버그 메시지에 대해 복제될 수 있는 대역폭의 상당한 절약이다. 마찬가지로, Variable2 메시지의 60 비트가 도 5-13에 도시된 관련 레지스터를 이용하여 마스킹되어, 불필요한 비트들이 제거되는 경우, 결과적인 마스킹된 메시지는 훨씬 더 적은 비트, 즉 18 비트만을 갖는다. 따라서, 단자(18)를 통해 60 비트를 전송해야 하는 대신에, 18 비트만이 전송되어야 한다. 이것은 외부 개발 시스템(25)에 대해 Variable2에 관한 필요한 정보를 제공하는 각각의 트레이스 또는 디버그 메시지에 대해 복제될 수 있는 대역폭의 상당한 절약이다.
박스 206은 Variable1에 대한 디버그 메시지(마스킹되지 않은 52 비트) 및 Variable2에 대한 디버그 메시지(마스킹되지 않은 60 비트)로부터 불필요한 비트들을 제거하기 위한 마스킹을 제공하기 위하여 마스크 레지스터(150)(도 13 참조), 마스크 레지스터(130)(도 11 참조), 마스크 레지스터(140)(도 12 참조) 및 마스크 레지스터(120)(도 10 참조)에 저장될 수 있는 값들을 나타낸다. 데이터 모두가 외부 개발 시스템(25)에 의해 요구되며, 따라서 데이터 필드(41)(도 3 참조) 상에 마스킹이 행해지지 않으므로, 데이터 마스크 레지스터들(70, 80, 90, 100)은 이 예에서 이용되지 않음에 유의한다.
예들(200, 300, 400)에 도시된 본 발명의 실시예들에 대해, 마스크 레지스터 비트 내의 2진수 1은 디버그 메시지의 대응 비트가 마스킹되어 단자(18) 상에서 전송되지 않게 하며, 마스크 레지스터 비트 내의 2진수 0은 디버그 메시지의 대응 비트가 마스킹되지 않고, 따라서 단자(18) 상에서 전송되는 것을 허용한다는 점에 유의한다. 예(200)에서, 메시지 타입 마스크 제어 레지스터(150)는 %111110을 저장하고, 소스 마스크 제어 레지스터(130)는 %1111을 저장하며, 데이터 사이즈 마스크 제어 레지스터(140)는 %111을 저장하고, 어드레스(풀) 마스크 제어 레지스터(120)는 %11111111111111111111111111111110을 저장한다.
예 300
도 15는 마스킹이 단자(18) 상에서 전송되는 출력 비트들의 수(즉, 대역폭)를 줄이는 데 이용될 수 있는 방법의 일례(300)를 나타낸다. 도 15는 프로그램 흐름이 추적되고 있는 동안 메모리 내의 혼합된 단일 정확도 및 이중 정확도 부동 소수점 제어 변수들의 어레이가 모니터링되는 일례(300)를 나타낸다. 외부 개발 시스템(25)은 제어 변수가 변수의 데이터 타입에 의해 지원되는 크기의 약 12.5%(즉, 1/8)를 언제 초과하는지를 결정하기 위하여 모니터링을 하고 있다. 도 15의 박스 301을 참조하면, Array1은 어드레스들 0x1300D300-0x1300D3FF에 위치하며, 임의 액세스될 수 있는 16개의 이중 정확도 변수 및 32개의 단일 정확도 변수로 구성된다. 도 3 및 4에 도시된 데이터 메시지 포맷(기입에 대해 40, 판독에 대해 50)을 이용하는 디버그 메시지가 Array1 내의 이중 정확도 변수들에 대해 사용되는 경우, 개발 인터페이스(14)에서 외부 개발 시스템(25)으로 85 비트가 전송되는 것이 요구된다(박스 302 참조). 마찬가지로, 도 3 및 4에 도시된 데이터 메시지 포맷(기입에 대해 40, 판독에 대해 50)을 이용하는 디버그 메시지가 Array1 내의 단일 정확도 변수들에 대해 사용되는 경우, 개발 인터페이스(14)에서 외부 개발 시스템(25)으로 53 비트가 전송되는 것이 요구된다(박스 302 참조).
그러나, 이 예(300)에서, 디버그 메시지 내의 많은 비트들은 외부 개발 시스템(25)에 유용한 정보를 제공하고 있지 않으며, 따라서 단자(18) 상의 중요한 대역폭을 낭비하고 있다. 박스 304를 참조하면, 중요한 정보의 손실 없이 단자(18) 상에서 전송되는 비트들의 수를 크게 줄일 수 있다. 박스 304에서, 데이터 필드(41)(도 3 참조)의 3 비트만이 범위 초과 상황을 결정하기 위한 유용한 정보(지수의 상위 3 비트)를 포함하며, 따라서 마스킹되지 않는다. 박스 304에서, Array1 내의 어느 변수가 이 디버그 메시지에 대응하는지를 식별하기 위하여 어드레스 필드(42)(도 3 참조)의 8 비트가 필요하다. 변수가 단일 정확도인지 이중 정확도인지를 결정하기 위하여 데이터 사이즈 필드(43)(도 3 참조) 내의 1 비트가 필요하다. 예(300)에서는 하나의 소스 프로세서만이 존재하며, 결과적으로 소스 프로세서 필드(44)(도 3 참조)로부터의 어떤 비트도 외부 개발 시스템(25)에 의해 요구되지 않는다. 예(300)에서, 메시지 타입 필드(45)(도 3 참조)에 의해 제공되는 유일한 유용한 정보는 오류가 발생했는지를 나타내는 개별 비트이다. 결과적으로, 메시지 타입 필드(45)로부터의 1 비트만이 외부 개발 시스템(25)에 의해 요구된다.
이중 정확도 Array1 디버그 메시지의 85 비트가 도 5-13에 도시된 관련 레지스터를 이용하여 마스킹되어, 불필요한 비트들이 제거되는 경우, 결과적인 마스킹된 메시지는 훨씬 더 적은 비트, 즉 13 비트만을 갖는다. 따라서, 단자(18)를 통해 85 비트를 전송해야 하는 대신에 13 비트만이 전송되어야 한다. 이것은 외부 개발 시스템(25)에 대해 이중 정확도 Array1 변수들에 관한 필요한 정보를 제공하는 각각의 트레이스 또는 디버그 메시지에 대해 복제될 수 있는 대역폭의 상당한 절약이다. 마찬가지로, 단일 정확도 Array1 디버그 메시지의 53 비트가 도 5-13에 도시된 관련 레지스터를 이용하여 마스킹되어, 불필요한 비트들이 제거되는 경우, 결과적인 마스킹된 메시지는 훨씬 더 적은 비트, 즉 13 비트만을 갖는다. 따라서, 단자(18)를 통해 53 비트를 전송해야 하는 대신에, 13 비트만이 전송되어야 한다. 이것은 외부 개발 시스템(25)에 대해 단일 정확도 Array1 변수들에 관한 필요한 정보를 제공하는 각각의 트레이스 또는 디버그 메시지에 대해 복제될 수 있는 대역폭의 상당한 절약이다.
박스 306은 이중 정확도 Array1 변수들에 대한 디버그 메시지(마스킹되지 않은 85 비트) 및 단일 정확도 Array1 변수들에 대한 디버그 메시지(마스킹되지 않은 53 비트)로부터 불필요한 비트들을 제거하기 위한 마스킹을 제공하기 위하여 마스크 레지스터(150)(도 13 참조), 마스크 레지스터(130)(도 11 참조), 마스크 레지스터(140)(도 12 참조), 마스크 레지스터(110)(도 9 참조), 마스크 레지스터(70)(도 5 참조), 및 마스크 레지스터(80)(도 6 참조)에 저장될 수 있는 값들을 나타낸다.
예들(200, 300, 400)에 도시된 본 발명의 실시예들에 대해, 마스크 레지스터 비트 내의 2진수 1은 디버그 메시지의 대응 비트가 마스킹되어 단자(18) 상에서 전송되지 않게 하며, 마스크 레지스터 비트 내의 2진수 0은 디버그 메시지의 대응 비트가 마스킹되지 않고, 따라서 단자(18) 상에서 전송되는 것을 허용한다는 점에 유의한다. 예(300)에서, 메시지 타입 마스크 제어 레지스터(150)는 %111110을 저장하고, 소스 마스크 제어 레지스터(110)는 %1111을 저장하며, 데이터 사이즈 마스크 제어 레지스터(140)는 %110을 저장하고, 어드레스(상대) 마스크 제어 레지스터(110)는 %11111111111111111111111000000000을 저장하고, 데이터 마스크 제어 레지스터(70)는 %1000111111111111111111111111111111111111111111111111111111111111을 저장하고, 데이터 마스크 제어 레지스터(80)는 %10001111111111111111111111111111을 저장한다.
예 400
도 16은 마스킹이 단자(18) 상에서 전송되는 출력 비트들의 수(즉, 대역폭)를 줄이는 데 사용될 수 있는 방법의 일례(400)를 나타낸다. 도 16은 프로그램 흐름이 추적되고 있는 동안 메모리 내의 혼합된 단일 정확도 및 이중 정확도 부동 소수점 제어 변수들의 어레이가 모니터링되는 일례(400)를 나타낸다. 외부 개발 시스템(25)은 제한된 제어 변수들의 근사 값들을 모니터링하고 있다. 도 16의 박스 401을 참조하면, Array1은 어드레스 0x1300D300-0x1300D3FF에 위치하며, 임의 액세스될 수 있는 16개의 이중 정확도 변수 및 32개의 단일 정확도 변수로 구성된다. 도 3 및 4에 도시된 데이터 메시지 포맷(기입에 대해 40, 판독에 대해 50)을 이용하는 디버그 메시지가 Array1 내의 이중 정확도 변수들에 대해 사용되는 경우, 개발 인터페이스(14)에서 외부 개발 시스템(25)으로 85 비트가 전송되는 것이 요구된다(박스 402 참조). 마찬가지로, 도 3 및 4에 도시된 데이터 메시지 포맷(기입에 대해 40, 판독에 대해 50)을 이용하는 디버그 메시지가 Array1 내의 단일 정확도 변수들에 대해 사용되는 경우, 개발 인터페이스(14)에서 외부 개발 시스템(25)으로 53 비트가 전송되는 것이 요구된다(박스 402 참조).
그러나, 이 예(400)에서, 디버그 메시지 내의 많은 비트들은 외부 개발 시스템(25)에 유용한 정보를 제공하고 있지 않으며, 따라서 단자(18) 상의 중요한 대역폭을 낭비하고 있다. 박스 404를 참조하면, 중요한 정보의 손실 없이 단자(18) 상에서 전송되는 비트들의 수를 크게 줄일 수 있다. 박스 404에서, 데이터 필드(41)(도 3 참조)의 선택된 비트들만이 유용한 정보(즉, 부호 비트, 단일 정확도 지수의 하위 5 비트, 이중 정확도 지수의 중간 5 비트, 및 가수의 최상위 비트들의 일부)를 포함하며, 따라서 마스킹되지 않는다. 박스 404에서, Array1 내의 어느 변수가 이 디버그 메시지에 대응하는지를 식별하기 위하여 어드레스 필드(42)(도 3 참조)의 8 비트가 요구된다. 변수가 단일 정확도인지 이중 정확도인지를 결정하기 위하여 데이터 사이즈 필드(43)(도 3 참조) 내의 1 비트가 요구된다. 예(400)에서는 하나의 소스 프로세서만이 존재하며, 결과적으로 소스 프로세서 필드(44)(도 3 참조)로부터의 어떤 비트도 외부 개발 시스템(25)에 의해 요구되지 않는다. 예(400)에서, 메시지 타입 필드(45)(도 3 참조)에 의해 제공되는 유일한 유용한 정보는 오류가 발생했는지를 나타내는 개별 비트이다. 결과적으로, 메시지 타입 필드(45)로부터의 1 비트만이 외부 개발 시스템(25)에 의해 요구된다.
이중 정확도 Array1 디버그 메시지의 85 비트가 도 5-13에 도시된 관련 레지스터를 이용하여 마스킹되어, 불필요한 비트들이 제거되는 경우, 결과적인 마스킹된 메시지는 훨씬 더 적은 비트, 즉 20 비트만을 갖는다. 따라서, 단자(18)를 통해 85 비트를 전송해야 하는 대신에 20 비트만이 전송되어야 한다. 이것은 외부 개발 시스템(25)에 대해 이중 정확도 Array1 변수들에 관한 필요한 정보를 제공하는 각각의 트레이스 또는 디버그 메시지에 대해 복제될 수 있는 대역폭의 상당한 절약이다. 마찬가지로, 단일 정확도 Array1 디버그 메시지의 53 비트가 도 5-13에 도시된 관련 레지스터를 이용하여 마스킹되어, 불필요한 비트들이 제거되는 경우, 결과적인 마스킹된 메시지는 훨씬 더 적은 비트, 즉 20 비트만을 갖는다. 따라서, 단자(18)를 통해 53 비트를 전송해야 하는 대신에, 20 비트만이 전송되어야 한다. 이것은 외부 개발 시스템(25)에 대해 단일 정확도 Array1 변수들에 관한 필요한 정보를 제공하는 각각의 트레이스 또는 디버그 메시지에 대해 복제될 수 있는 대역폭의 상당한 절약이다.
박스 406은 이중 정확도 Array1 변수들에 대한 디버그 메시지(마스킹되지 않은 85 비트) 및 단일 정확도 Array1 변수들에 대한 디버그 메시지(마스킹되지 않은 53 비트)로부터 불필요한 비트들을 제거하기 위한 마스킹을 제공하기 위하여 마스크 레지스터(150)(도 13 참조), 마스크 레지스터(130)(도 11 참조), 마스크 레지스터(140)(도 12 참조), 마스크 레지스터(110)(도 9 참조), 마스크 레지스터(70)(도 5 참조), 및 마스크 레지스터(80)(도 6 참조)에 저장될 수 있는 값들을 나타낸다.
예들(200, 300, 400)에 도시된 본 발명의 실시예들에 대해, 마스크 레지스터 비트 내의 2진수 1은 디버그 메시지의 대응 비트가 마스킹되어 단자(18) 상에서 전송되지 않게 하며, 마스크 레지스터 비트 내의 2진수 0은 디버그 메시지의 대응 비트가 마스킹되지 않고, 따라서 단자(18) 상에서 전송되는 것을 허용한다는 점에 유의한다. 예(400)에서, 메시지 타입 마스크 제어 레지스터(150)는 %111110을 저장하고, 소스 마스크 제어 레지스터(110)는 %1111을 저장하며, 데이터 사이즈 마스크 제어 레지스터(140)는 %110을 저장하고, 어드레스(상대) 마스크 제어 레지스터(110)는 %11111111111111111111111000000000을 저장하고, 데이터 마스크 제어 레지스터(70)는 %0111000001110000111111111111111111111111111111111111111111111111을 저장하고, 데이터 마스크 제어 레지스터(80)는 %01110000000001111111111111111111을 저장한다.
도 14-16에 도시된 예들(200, 300, 400)은 단지 예시적인 목적으로 제공됨에 유의한다. 본 발명은 임의의 원하는 기능에 이용될 수 있다. 개발 인터페이스 및 디버그 기능은 단지 본 발명이 이용될 수 있는 영역 중 하나이다. 본 발명의 다양한 실시예는 마스킹 능력이 필요한 임의의 상황에 유용할 수 있다.
전술한 명세서에서, 본 발명은 특정 실시예들을 참조하여 설명되었다. 그러나, 이 분야의 전문가는 아래의 청구범위에서 설명되는 바와 같이 본 발명의 범위를 벗어나지 않고 다양한 수정 및 변형이 이루어질 수 있음을 이해할 것이다. 따라서, 명세서 및 도면은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 하며, 그러한 모든 변형은 본 발명의 범위 내에 포함되는 것으로 의도한다.
이익, 다른 이점, 문제에 대한 해결책들이 특정 실시예들과 관련하여 위에 설명되었다. 그러나, 이익, 이점, 문제 해결책, 및 임의의 이익, 이점 또는 해결책이 생기거나 더 현저하게 하는 임의의 요소는 임의의 또는 모든 청구범위의 중요하거나, 필요하거나, 또는 필수적인 특징 또는 요소로서 해석되지 않아야 한다. 본 명세서에서 사용되는 "포함한다", "포함하는" 또는 이들의 임의의 다른 변형은 배타적이지 않은 포함을 커버하는 것으로 의도하며, 따라서 요소들의 리스트를 포함하는 프로세스, 방법, 물건 또는 장치는 이들 요소들만을 포함하는 것이 아니라, 명시적으로 리스트되지 않았거나, 그러한 프로세스, 방법, 물건 또는 장치에 고유한 다른 요소들을 포함할 수 있다.

Claims (45)

  1. 디버그 메시지들을 마스킹하기 위한 방법으로서,
    디버그 메시지를 생성하는 단계 - 상기 디버그 메시지는 복수의 필드를 포함함 - ; 및
    적어도 하나의 사용자 구성 가능 마스크를 상기 디버그 메시지에 적용(apply)하여 마스킹된 디버그 메시지를 생성하는 단계 - 상기 적어도 하나의 사용자 구성 가능 마스크를 상기 디버그 메시지에 적용하여 마스킹된 디버그 메시지를 생성하는 단계는 상기 복수의 필드 중의 적어도 하나를 마스킹하기 위해 상기 적어도 하나의 사용자 구성 가능 마스크를 적용하는 단계를 포함함 -
    를 포함하는 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 적어도 하나의 사용자 구성 가능 마스크를 상기 디버그 메시지에 적용하여 마스킹된 디버그 메시지를 생성하는 단계는 상기 복수의 필드 중 적어도 하나의 필드의 일부를 마스킹하기 위해 상기 적어도 하나의 사용자 구성 가능 마스크를 적용하는 단계 - 상기 적어도 하나의 필드의 일부는 상기 적어도 하나의 필드 전체보다 작음 - 를 포함하는 방법.
  5. 제4항에 있어서, 상기 복수의 필드는 데이터 필드 및 어드레스 필드를 포함하는 방법.
  6. 제5항에 있어서, 상기 복수의 필드는 데이터 사이즈 필드, 소스 필드 및 메시지 타입 필드를 포함하는 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 디버그 기능을 행하고 상기 디버그 기능에 대응하는 디버그 메시지를 생성하는 디버그 회로 - 상기 디버그 메시지는 복수의 필드를 포함함 - ;
    사용자 구성 가능 마스킹 정보를 저장하는 마스크 저장 회로; 및
    상기 마스크 저장 회로에 결합되고, 상기 사용자 구성 가능 마스킹 정보를 상기 디버그 메시지에 적용하여 마스킹된 디버그 메시지를 생성하는 마스킹 회로 - 상기 마스킹 회로는 상기 복수의 필드 중의 적어도 하나의 필드의 일부를 마스킹하기 위해 상기 마스킹 정보를 적용하고, 상기 적어도 하나의 필드의 일부는 상기 적어도 하나의 필드 전체보다 작음 -
    를 포함하는 장치.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
KR1020067025142A 2004-04-30 2005-04-06 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹 KR101050554B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/836,173 2004-04-30
US10/836,173 US7434108B2 (en) 2004-04-30 2004-04-30 Masking within a data processing system having applicability for a development interface
PCT/US2005/011277 WO2005111800A2 (en) 2004-04-30 2005-04-06 Masking within a data processing system having applicability for a development interface

Publications (2)

Publication Number Publication Date
KR20070012845A KR20070012845A (ko) 2007-01-29
KR101050554B1 true KR101050554B1 (ko) 2011-07-19

Family

ID=35310740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067025142A KR101050554B1 (ko) 2004-04-30 2005-04-06 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹

Country Status (7)

Country Link
US (1) US7434108B2 (ko)
EP (1) EP1756716A4 (ko)
JP (1) JP2007535760A (ko)
KR (1) KR101050554B1 (ko)
CN (1) CN100568187C (ko)
TW (1) TWI374357B (ko)
WO (1) WO2005111800A2 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9020854B2 (en) 2004-03-08 2015-04-28 Proxense, Llc Linked account system using personal digital key (PDK-LAS)
US8433919B2 (en) 2005-11-30 2013-04-30 Proxense, Llc Two-level authentication for secure transactions
US11206664B2 (en) 2006-01-06 2021-12-21 Proxense, Llc Wireless network synchronization of cells and client devices on a network
US8036152B2 (en) 2006-01-06 2011-10-11 Proxense, Llc Integrated power management of a client device via system time slot assignment
US8116179B2 (en) * 2006-07-28 2012-02-14 Apple Inc. Simultaneous viewing of multiple tool execution results
US8086904B2 (en) * 2006-07-28 2011-12-27 Apple Inc. Event-based setting of process tracing scope
US7555605B2 (en) * 2006-09-28 2009-06-30 Freescale Semiconductor, Inc. Data processing system having cache memory debugging support and method therefor
US9269221B2 (en) 2006-11-13 2016-02-23 John J. Gobbi Configuration of interfaces for a location detection system and application
US8659427B2 (en) 2007-11-09 2014-02-25 Proxense, Llc Proximity-sensor supporting multiple application services
US8171528B1 (en) 2007-12-06 2012-05-01 Proxense, Llc Hybrid device having a personal digital key and receiver-decoder circuit and methods of use
US9251332B2 (en) 2007-12-19 2016-02-02 Proxense, Llc Security system and method for controlling access to computing resources
WO2009102979A2 (en) 2008-02-14 2009-08-20 Proxense, Llc Proximity-based healthcare management system with automatic access to private information
WO2009126732A2 (en) 2008-04-08 2009-10-15 Proxense, Llc Automated service-based order processing
US8402258B2 (en) 2008-07-25 2013-03-19 Freescale Semiconductor, Inc. Debug message generation using a selected address type
US7958401B2 (en) * 2008-07-25 2011-06-07 Freescale Semiconductor, Inc. Debug trace messaging with one or more characteristic indicators
US8024620B2 (en) * 2008-07-25 2011-09-20 Freescale Semiconductor, Inc. Dynamic address-type selection control in a data processing system
US7984206B2 (en) * 2008-08-06 2011-07-19 Texas Instruments Incorporated System for debugging throughput deficiency in an architecture using on-chip throughput computations
US20100042975A1 (en) * 2008-08-13 2010-02-18 Honeywell International Inc. Message logging for software applications
US8589738B2 (en) * 2009-05-05 2013-11-19 Freescale Semiconductor, Inc. Program trace message generation for page crossing events for debug
US8438547B2 (en) * 2009-05-05 2013-05-07 Freescale Semiconductor, Inc. Address translation trace message generation for debug
US9418205B2 (en) 2010-03-15 2016-08-16 Proxense, Llc Proximity-based system for automatic application or data access and item tracking
US9322974B1 (en) 2010-07-15 2016-04-26 Proxense, Llc. Proximity-based system for object tracking
US9265450B1 (en) 2011-02-21 2016-02-23 Proxense, Llc Proximity-based system for object tracking and automatic application initialization
US9405898B2 (en) 2013-05-10 2016-08-02 Proxense, Llc Secure element as a digital pocket
US9552279B2 (en) * 2013-08-16 2017-01-24 Nxp Usa, Inc. Data bus network interface module and method therefor
GB2520724A (en) * 2013-11-29 2015-06-03 St Microelectronics Res & Dev Debug circuitry
CN115934449B (zh) * 2023-02-08 2023-06-02 合肥智芯半导体有限公司 一种寄存器的校验方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467083B1 (en) 1998-09-30 2002-10-15 Nec Corporation Debugging system for computer program, method for checking target program and information storage medium for storing checking program
US6611924B1 (en) 1999-07-16 2003-08-26 Lucent Technologies Inc. Reducing code size of debug output statements
US6728949B1 (en) 1997-12-12 2004-04-27 International Business Machines Corporation Method and system for periodic trace sampling using a mask to qualify trace data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4598364A (en) * 1983-06-29 1986-07-01 International Business Machines Corporation Efficient trace method adaptable to multiprocessors
US5513317A (en) * 1992-09-10 1996-04-30 International Business Machines Corporation System and method for permitting rapid refinement of data output from a debugger
US5826058A (en) 1995-06-02 1998-10-20 Motorola, Inc. Method and apparatus for providing an external indication of internal cycles in a data processing system
US6145122A (en) 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6732311B1 (en) * 2000-05-04 2004-05-04 Agere Systems Inc. On-chip debugger
DE10132313A1 (de) * 2001-07-06 2003-01-23 Infineon Technologies Ag Programmgesteuerte Einheit
WO2003034225A2 (en) 2001-10-12 2003-04-24 Pts Corporation Debugging of processors
US6816989B2 (en) 2001-12-28 2004-11-09 Hewlett-Packard Development Company, L.P. Method and apparatus for efficiently managing bandwidth of a debug data output port or buffer
JP2003271416A (ja) * 2002-03-12 2003-09-26 Seiko Epson Corp 情報処理装置及び電子機器
JP3609794B2 (ja) * 2002-03-26 2005-01-12 株式会社東芝 トレースデータ圧縮装置、トレースデータ圧縮方法及びトレースデータ圧縮回路を内蔵したマイクロコンピュータ
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US7149926B2 (en) * 2003-05-22 2006-12-12 Infineon Technologies Ag Configurable real-time trace port for embedded processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728949B1 (en) 1997-12-12 2004-04-27 International Business Machines Corporation Method and system for periodic trace sampling using a mask to qualify trace data
US6467083B1 (en) 1998-09-30 2002-10-15 Nec Corporation Debugging system for computer program, method for checking target program and information storage medium for storing checking program
US6611924B1 (en) 1999-07-16 2003-08-26 Lucent Technologies Inc. Reducing code size of debug output statements

Also Published As

Publication number Publication date
CN101036125A (zh) 2007-09-12
JP2007535760A (ja) 2007-12-06
EP1756716A4 (en) 2010-08-04
KR20070012845A (ko) 2007-01-29
EP1756716A2 (en) 2007-02-28
US7434108B2 (en) 2008-10-07
US20050257102A1 (en) 2005-11-17
WO2005111800A2 (en) 2005-11-24
TWI374357B (en) 2012-10-11
CN100568187C (zh) 2009-12-09
WO2005111800A3 (en) 2007-04-26
TW200606630A (en) 2006-02-16

Similar Documents

Publication Publication Date Title
KR101050554B1 (ko) 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹
US8201025B2 (en) Debug messaging with selective timestamp control
US8825922B2 (en) Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
US8438547B2 (en) Address translation trace message generation for debug
EP2324419B1 (en) Debug message generation using a selected address type
JP2012506091A (ja) データ処理システムにおける割込承認
US5862148A (en) Microcontroller with improved debug capability for internal memory
US20050273562A1 (en) Read access and storage circuitry read allocation applicable to a cache
CN107636630B (zh) 中断控制器
US7827343B2 (en) Method and apparatus for providing accelerator support in a bus protocol
US6484273B1 (en) Integrated EJTAG external bus interface
CN113254073A (zh) 数据处理方法及装置
US8589738B2 (en) Program trace message generation for page crossing events for debug
US7080191B2 (en) Method and system for accessing memory devices
US9442819B2 (en) Method and apparatus for storing trace data
US20090119420A1 (en) Apparatus and method for scaleable expanders in systems management
CN106940684B (zh) 一种按比特写数据的方法及装置
US20180054374A1 (en) Trace information encoding apparatus, encoding method thereof, and readable computer medium
US8219736B2 (en) Method and apparatus for a data bridge in a computer system
JP2005148904A (ja) リングバッファ制御装置およびリングバッファ制御方法
CN117827501A (zh) 一种内存越界防护方法以及装置
CN113721979A (zh) 可配置位宽的寄存器电路及方法、解码电路和芯片
KR20030073992A (ko) 멀티 액세스 fifo 메모리
JP2004094513A (ja) デバイス制御装置
JP2007156720A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee