KR20010086008A - 디버깅을 위한 데이터 최적화와 대상 크기 정보 동시 유지 - Google Patents

디버깅을 위한 데이터 최적화와 대상 크기 정보 동시 유지 Download PDF

Info

Publication number
KR20010086008A
KR20010086008A KR1020017005758A KR20017005758A KR20010086008A KR 20010086008 A KR20010086008 A KR 20010086008A KR 1020017005758 A KR1020017005758 A KR 1020017005758A KR 20017005758 A KR20017005758 A KR 20017005758A KR 20010086008 A KR20010086008 A KR 20010086008A
Authority
KR
South Korea
Prior art keywords
data optimization
attributes
target
data
bus
Prior art date
Application number
KR1020017005758A
Other languages
English (en)
Other versions
KR100605141B1 (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 KR20010086008A publication Critical patent/KR20010086008A/ko
Application granted granted Critical
Publication of KR100605141B1 publication Critical patent/KR100605141B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

디버깅 환경은 목표 시스템의 기록 버퍼에의한 데이터 최적화 조작과 동시에 대상 정보(예를 들어, 대상 크기)를 유지할 수 있다. 상기 목표 시스템 내에서, 시스템 버스는 시스템 메모리와 마이크로콘트롤러 사이에 연결된다. 상기 기록 버퍼에 의한 데이터 최적화 동작은 버스 관찰 디바이스의 병합 신호 관찰에 의해 검출된다. 데이터 최적화 동작이 검출되면, 데이터 최적화 동작과 연관되는 데이터 최적화 속성들(예를들어, 대상 정보, 데이터 그리고 주소)은 버스 관찰 디바이스의 포획 신호에 응답하여 대상 정보 신호의 형태로 포획된다. 상기 데이터 최적화 속성들은 상기 목표 시스템의 흔적 캐시 또는 디버그 포트와 연결된 외부 흔적 포획 장비의 메모리, 혹은 상기 버스 관찰 디바이스의 메모리 중 하나에 저장될 것이다. 상기 데이터 최적화 속성들을 상기 마이크로콘트롤러의 외부로 제공함에 있어서, 상기 데이터 최적화 속성들은 마이크로콘트롤러 디버깅 포트의 흔적 핀들에 의해 임시로 유지될 것이다. 상기 데이터 최적화 속성들은 상기 대상 정보 신호로부터 추출되고, 상기 외부 흔적 포획 장비 또는 상기 버스 관찰 디바이스에 의해 처리될 것이다. 상기 데이터 최적화 속성들의 처리를 통해서, 최적화 되기 이전 기록 대상 값들은 재구성될 수 있다.

Description

디버깅을 위한 데이터 최적화와 대상 크기 정보 동시 유지{MAINTAINING OBJECT SIZE INFORMATION CONCURRENT WITH DATA OPTIMIZATION FOR DEBUGGING}
프로세서-기반 시스템의 성능을 개선하기 위하여, 시스템 버스 성능의 제한으로부터 프로세서 성능을 분리하려는 노력이 있어 왔다. 이러한 노력은 프로세서-기반 시스템의 시스템 자원에 대한 접근을 제어하기위해 기록 버퍼를 제공하는 것에 의해 추구되어왔다. 읽기 동작들은 일반적으로 시스템 버스에 대한 접근에서 최우선 순위가 주어진다. 기록 동작과 같은 시스템 버스에 대한 다른 접근들은 상기 시스템 버스가 가용해질 때 까지 기록 버퍼에서 기록 데이터가 지연된다.
기록 버퍼는 기록 병합(merging), 기록 붕괴(collapsing), 그리고 데이터 간섭(coherency)에 대한 읽기 병합과 같은 데이터 최적화 동작을 수생하도록 프로세서-기반 시스템에서 제공되는 일이 대단히 많아졌다. 기록 버퍼에서 큐잉(queuing)하기위한 한 대기자(candidate)는 기록 대상(object) 값이다. 기록 대상 값들을 포함하는 데이터 최적화 동작들의 결과처럼, 기록 대상 값들에 대한 대상 크기 정보는 소실된다. 즉, 상기 최적화된 대상 값들은 해당하는 대상 크기 정보와 더이상 관련이 없다. 예를 들어서, 만일 기록 버퍼가 두개의 연속적인 바이트 크기 대상 값들을 단일 워드-크기 대상 값으로 병합한다면, 상기 기록 버퍼는 바이트 크기 대신 워드 크기인 새로운 데이터 대상으로 상기 원본 대상 값들의 대상 크기를 소실한다.
데이터 최적화 동작의 결과로 소실된 상기 대상 크기 정보는 프로세서-기반 시스템의 소프트웨어 디버깅에 있어 제한 요소가 되어왔다. 프로세서-기반 시스템으로 실행되는 소프트웨어 프로그램은 데이터 대상들 상에 기록 동작들을 수행하는데 사용된다. 소프트웨어 프로그램이 데이터 최적화를 이용하지 않는경우, 상기 소프트웨어 프로그램은 전형적으로 흔적 검토(tracing) 또는 기록 동작들의 결과로부터 기록 대상 값들을 추적(tracking)하는 것으로 디버그된다. 그러나, 소프트웨어 프로그램은 디버깅에서 기록 대상 값들의 재구성은 기록 버퍼에 의한 데이터 최적화 때문에 제한된다. 데이터 최적화 동작의 결과인 기록 대상 값은 최적화 되기 전 기록 대상 값들로의 재구성에 필요한 대상 크기 정보가 부족하다.
본 발명은 프로세서-기반 시스템들에 대한 소프트웨어 디버깅에 관한 것으로, 보다 구체적으로는 데이터 최적화와 대상 정보를 동시에 유지하는 것에 관한 것이다.
다음에 나오는 본 발명의 상세한 설명을 다음의 도면들과 연계하여 고려하는 것으로 본 발명을 보다 잘 이해할 수 있다.
도 1은 본 발명에 따르는 예시적인 소프트웨어 디버깅 환경의 간략한 다이어그램이다.
도 2는 본 발명에 따르는 병합 신호에 연관된 도 1의 기록 버퍼를 묘사한 간략한 다이어그램이다.
도 3은 본 발명에 따르는 도 1 및 도 2의 기록 버퍼에 대한 간략한 예시이다.
도 4는 본 발명에 따르는 도 3의 예제 대상 크기 플래그의 논리표이다.
도 5는 본 발명에 따르는 데이터 최적화 속성 저장 과정의 흐름도이다.
도 6은 본 발명에 따르는 데이터 최적화 속성 디버그 과정의 흐름도이다.
간단하게, 본 발명에 따르는 디버깅 환경은 목표(target) 시스템의 기록 버퍼에의한 데이터 최적화 조작과 동시에 대상 정보를 유지할 수 있다. 상기 목표 시스템 내에서, 시스템 버스는 시스템 메모리와 마이크로콘트롤러 사이에 연결된다. 상기 기록 버퍼에 의한 데이터 최적화 동작은 버스 관찰(monitoring) 디바이스의 병합 신호 관찰에 의해 검출된다. 데이터 최적화 동작이 검출되면, 데이터 최적화동작과 연관되는 데이터 최적화 속성들(attributes)(예를들어, 대상 정보, 데이터 그리고 주소)은 버스 관찰 디바이스의 포획(capture) 신호에 응답하여 대상 정보 신호의 형태로 포획된다. 상기 데이터 최적화 속성들은 상기 목표 시스템의 흔적 캐시(cache) 또는 디버그 포트(port)와 연결된 외부 흔적 포획 장비의 메모리, 혹은 상기 버스 관찰 디바이스의 메모리 중 하나에 저장될 것이다. 상기 데이터 최적화 속성들을 상기 마이크로콘트롤러의 외부로 제공함에 있어서, 상기 데이터 최적화 속성들은 마이크로콘트롤러 디버깅 포트의 흔적 핀들(pins)에 의해 임시로 유지(hold)될 것이다. 상기 데이터 최적화 속성들은 상기 대상 정보 신호로부터 추출되고, 상기 외부 흔적 포획 장비 또는 상기 버스 관찰 디바이스에 의해 처리될 것이다. 상기 데이터 최적화 속성들의 처리를 통해서, 최적화 되기 이전 기록 대상 값들은 재구성될 수 있다.
다음의 관련되는 특허 명세서들은 여기서 그 전체가 나열되면 참조로서 관계하며, 미국 특허 명세서 제 09/008,394호로 1998년 1월16일 제출된 "임의 접근 스누핑(snooping) 기능을 가진 기록-버퍼 FIFO 구조(WRITE-BUFFER FIFO ARCHITECTURE WITH RANDOM ACCESS SNOOPING CAPABILITY)"에 공통적으로 할당되고,
미국 특허 명세서 제 08/992,610호로 1997년 12월17일 제출된 "소프트웨어 성능 프로파일링 데이터를 포획하기위한 캐시를 가진 마이크로프로세서-기반 디바이스(MICROPROCESSOR-BASED DEVICE INCORPORATING A CHCHE FOR CAPTURING SOFTWARE PERFORMING PROFILING DATA)"에 공통적으로 할당되고,
미국 특허 명세서 제 08/949,897호로 1997년 10월14일 제출된 "마이크로프로세서-기반 디바이스를 위한 흔적 캐시(TRACE CACHE FOR A MICROPROCESSOR-BASED DEVICE)"에 공통적으로 할당되고, 그리고
미국 특허 명세서 제 08/932,597호로 1997년 8월25일 제출된 "마이크로프로세서에 관한 소프트웨어 디버그 포트(SOFTWARE DEBUG PORT FOR A MICROPROCESSOR)"에 공통적으로 할당된다.
도 1에서, 본 발명에 따르는 예시적인 소프트웨어 디버깅 환경(E)을 보인다. 상기 소프트웨어 디버깅 환경(E)은 목표 시스템(T), 호스트(host) 시스템(H), 그리고 버스 관찰 디바이스(BMD)를 제공한다. 상기 설명한 실시예에서, 상기 목표 시스템(T)은 시스템 버스(SB)를 통해 시스템 메모리(M)와 연결된 마이크로콘트롤러(C)를 포함한다. 대안적으로, 상기 마이크로콘트롤러(C) 대신에, 상기 목표 시스템(T)은 상이한 내장 프로세서 디바이스를 제공할 수 있다. 상기 설명된 마이크로 콘트롤러(C)는 실행 유닛(10), 흔적 캐시(12), 흔적 캐시 제어 블록(14), 기록 버퍼(16), 디버그 포트(18) 그리고 본 발명에 따라서 대상 정보 신호(OBI)를 생성하기위한 신호 생성 논리회로(22)를 포함한다. 본 발명을 모두 이해하는데 필요 없는 본 마이크로콘트롤러(C)의 특정 요소들은 생략된다.
상기 실행 유닛(10)은 상기 시스템 메모리(M)에 저장된 코드를 실행하기위해 고집적 프로세서(11)를 제공할 수 있다. 상기 설명된 실시예의 상기 실행 유닛(10)은 캘리포니아 서니베일의 어드밴스트 마이크로 디바이시스 인코포레이티드(Advanced Micro Devices, Inc.)의 다양한 마이크로콘트롤러들에 적용된 AM186 명령 셋과 호환된다. 상기 실행 유닛(10) 대신에 다양한 다른 실행 유닛들이 이용될 수 있다.
본 발명에 따라서, 상기 흔적 캐시(12) 및 상기 흔적 캐시 제어 블록(14)은 데이터 최적화 동작과 동시에 데이터 최적화 속성들을 포획하기위해 협동한다. 데이터 최적화 속성들에 관한 자세한 내용은 이하 제공된다. 상기 흔적 캐시(12)에 저장된 데이터 최적화 속성들은 상기 호스트 시스템(H)에 제공될 수 있고, 혹은 대안적으로, 상기 목표 시스템(T)은 상기 흔적 캐시(12)의 상기 데이터 최적화 속성들을 내부적으로 시험할 수 있다. 또한, 상기 흔적 캐시(12)에 의해 흔적 포획은선택적으로 허용 또는 불허될 수 있다. 상기 흔적 캐시(12)는 처음 들어간 것이 처음 나오는(FIFO) 순환 캐시로 간주된다. 상기 흔적 캐시는 미국 특허 명세서 제 08/992,610호로 1997년 12월17일 제출된 "소프트웨어 성능 프로파일링 데이터를 포획하기위한 캐시를 가진 마이크로프로세서-기반 디바이스"에 공통적으로 할당되고, 미국 특허 명세서 제 08/949,897호로 1997년 10월14일 제출된 "마이크로프로세서-기반 디바이스를 위한 흔적 캐시"에 공통적으로 할당되고, 그리고 미국 특허 명세서 제 08/932,597호로 1997년 8월25일 제출된 "마이크로프로세서에 관한 소프트웨어 디버그 포트"에 공통적으로 할당된다.
상기 디버그 포트(18)는 IEEE-11.49.1-1990을 따르는 JTAG 인터페이스 또는 유사한 표준화된 직렬 포트 인터페이스를 이용하는 것이 바람직하다. 상기 디버그 포트(18)는 상기 흔적 캐시(12)를 이용할 수 있다. 상기 디버그 포트(18)는 전송 레지스터(TX-DATA), 수신 레지스터(RX-DATA), 명령 흔적 설정 레지스터(ITCR), 그리고 디버그 제어-상태 레지스터(DCSR)와 같은 다양한 레지스터들을 포함한다. 상기 전송 레지스터는 마이크로콘트롤러(C)로부터 전송되는 데이터를 유지하고, 상기 수신 레지스터는 상기 마이크로콘트롤러(C)에 의해 수신된 데이터를 저장한다. 상기 명령 흔적 설정 레지스터는 흔적 디버그 기능들의 허용, 불허 그리고 설정을 위해 제공된다. 상기 디버그 제어-상태 레지스터는 상기 실행 유닛(10)이 디버스 모드로 진입하는 경우의 표시(indication)를 제공한다. 본 발명에 따르면, 상기 디버그 포트(18)는 외부적으로 제공되는 데이터 최적화 속성들을 임시로 유지하기위한 흔적 핀들(20)을 더 제공한다. 상기 흔적 캐시와 마찬가지로, 상기 디버그 포트는상기 참조된 특허 명세서들에 더 설명된다.
상기 기록 버퍼(16)(도 1, 2 그리고 3)는 임의 접근 스누핑이 가능한 기록 버퍼인 것이 바람직하다. 상기 기록 버퍼(16)는 기록 병합, 기록 붕괴, 그리고 읽기 병합을 지원한다. 기록 병합 또는 기록 붕괴 동작은 WR_MERGE 신호(도 2)의 주장(assertion)에 대한 응답으로 수행될 수 있다. 읽기 병합 동작은 RD_MERGE 신호(도 2)의 주장에 대한 응답으로 수행될 수 있다. 상기 기록 버퍼(16)는 임의 접근 메모리를 포함한다. 기록 주소를 저장하는데 부가적으로, 상기 임의 접근 메모리의 주소 열(rank)은 디버깅 목적으로 비트들을 제공한다. 본 발명에 따라서, 대상 정보를 나타내는 비트들(예를 들어, 대상 크기)은 상기 임의 접근 메모리로 제공된다. 상기 기록 버퍼는 미국 특허 명세서 제 09/008,394호로 1998년 1월16일 제출된 "임의 접근 스누핑(snooping) 기능을 가진 기록-버퍼 FIFO 구조"에 공통적으로 할당된다.
본 발명에 따라서, 대상 정보는 상기 기록 버퍼(16)에 의한 데이터 최적화와 동시에 유지된다. 도 5에서, 본 발명에 따르는 데이터 최적화 속성들 저장 과정의 순서도가 도시된다. 단계(52)의 처음에서, 데이터 최적화 동작이 수행되었는지 아닌지가 결정된다. 데이터 최적화 동작들(예를 들어, 기록 병합 또는 읽기 병합)은 상기 시스템 버스(SB)의 합병 신호(도 1 및 2)를 관찰하는 것으로 검출된다. 도 2에서, 상기 설명된 병합 신호는 WR_MERGE 신호와 RD_MERGE 신호를 입력으로 수신하는 논리 게이트(28)의 출력이다. 다른 구성의 합병 신호도 사용할 수 있다는 것을 이해해야 한다. 만일 상기 WR_MERGE 신호 또는 RD_MERGE 신호 중 하나가 주장되면,상기 합병 신호가 데이터 최적화 동작의 검출을 표기하기위해서 주장된다. 도 5에서, 만일 데이터 최적화 동작이 검출되지 않으면, 상기 제어는 단계(52)에 계속 머문다. 단계(52)에서 데이터 최적화 동작이 검출되면, 데이터 최적화 속성들은 상기 데이터 최적화 동작과 동시에 단계(54)에서 포획된다.
도 3에서, 예시적인 데이터 최적화 속성들을 저장하는 기록 버퍼(16)의 간단한 예시도가 도시된다. 데이터 최적화 속성들은 일반적으로 최적화-이전 값들을 재구성하는데 사용하기위해서 데이터 최적화 동작과 연관되는 정보를 나타낸다. 상기 설명된 예시적인 데이터 최적화 속성들은 데이터 필드(DATA)에 저장되는 데이터 최적화 동작의 데이터 결과, 주소 필드(ADDRESS)에 저장되는 특정 데이터의 주소, 그리고 대상 크기 플래그 필드(OSF)에 저장되는 특정 데이터의 대상 크기를 포함한다. 대상 크기 대신에 대상 정보 역시 데이터 최적화 속성들로 정의될 수 있다. 예시된 실시예에서, 상기 기록 버퍼(16)의 데이터 부분(40)은 데이터 필드(DATA)의 행(column)을 제공하고, 기록 버퍼(16)의 주소 부분(42)은 주소 필드(ADDRESS)의 행을 제공하고, 기록 버퍼(16)의 대상 크기 플래그 부분(38)은 대상 크기 플래그 필드(OSF)의 행을 제공한다. 상기 기록 버퍼(16)의 모든 열들(30, 32, 34 그리고 36)은 상기 데이터 부분(40), 상기 주소 부분(42), 그리고 상기 대상 크기 플래그 부분(38)에 해당하는 필드들을 포함할 수 있다.
도 4에서, 대상 크기 플래그에 대한 예시적인 논리표가 도시된다. 상기 설명된 대상 크기 플래그는 A와 B로 표시되는 2 비트들을 제공한다. 각 비트 조합(AB)의 의미는 C로 나타내어진다. 상기 비트 조합이 '00'이면 해당 데이터의 대상 크기는 바이트이다. 상기 비트 조합이 '01'이면 해당 데이터의 대상 크기는 워드(word)이다. 상기 비트 조합이 '10'이면 해당 데이터의 대상 크기는 더블 워드(double word)이다. 상기 비트 조합이 '11'인 것은 정의하지 않았다. 이러한 비트 조합들은 예시적인 것이며 배타적인 것이 아니라는 것을 이해해야 한다.
도 1에서, 상기 신호 생성 논리부(22)는 상기 데이터 최적화 속성들을 포획하는데 사용하기위한 대상 정보 신호(OBI)를 생성한다. 상기 신호 생성 논리부(22)는 필수적으로 상기 대상 크기 플래그 필드(OSF), 데이터 필드(DATA) 그리고 주소 필드(ADDRESS)(도 3)을 상기 대상 정보 신호(OBI)를 생성하기위해 결합한다. 이러한 방식에서, 대상 정보를 유지하기위한 상기 적절한 데이터 최적화 정보는 포획된다. 예시한 바와 같이, 상기 신호 생성 논리부(22)는 상기 대상 정보 신호(OBI)를 흔적 캐시(12)에 제공한다. 상기 흔적 캐시(12)는 상기 대상 정보 신호(OBI)를 상기 디버그 포트(18)의 상기 흔적 핀들(20)에 제공한다. 상기 대상 정보 신호(OBI)는 상기 흔적 핀들(20)에 의해서 임시적으로 유지된다. 상기 흔적 핀들(20)로부터, 상기 대상 정보 신호(OBI)는 상기 호스트 시스템(H)의 메모리(24) 또는 상기 버스 관찰 디바이스(BMD)의 메모리(24)에 제공된다. 상기 신호 생성 논리부(22)는 대안적으로 상기 대상 정보 신호(OBI)를 상기 디버그 포트(18)의 흔적 핀들(20)을 통해 외부로 제공할 수 있다.
도 5에서, 제어는 상기 데이터 최적화 속성들을 저장하는 단계(56)으로 넘어간다. 상기 설명된 실시예에서, 상기 데이터 최적화 속성들은 상기 흔적 캐시(12), 상기 호스트 시스템(H)의 메모리(24) 또는 상기 버스 관찰 디바이스(BMD)의메모리(24)에 저장된다. 단계(56)로부터, 상기 데이터 최적화 속성들 저장 과정은 단계(58)로 넘어가며 완결된다.
상기 설명된 실시예에서, 대상 정보는 방해 없이 유지되고, 데이터 최적화 동작의 검출과 같은 명백한 방식은 상기 버스 관찰 디바이스(BMD)에 의해서 상기 목표 시스템(T)으로 외부적으로 관리된다. 상기 버스 관찰 디바이스(BMD)는 상기 합병 신호를 관찰하는 것으로 상기 기록 버퍼(16)에 의한 데이터 최적화 동작을 검출할 수 있다. 데이터 최적화 동작이 발생하는 경우, 상기 버스 관찰 디바이스(BMD)는 포획되어야 하는 검출된 데이터 최적화 동작과 관련되는 데이터 최적화 속성들을 표시하기 위하여 상기 마이크로콘트롤러(C)에 포획 신호를 제공한다. 상기 포획 신호에 응답하면서, 상기 신호 생성 논리부(22)는 대상 정보 신호(OBI)를 생성하고, 상기 흔적 캐시 제어 블록(14)은 상기 대상 정보 신호(OBI)를 수신하기위해 상기 흔적 캐시(12)를 준비한다.
도 6에서, 본 발명에 따르는 데이터 최적화 속성들 디버그 과정의 순서도가 도시된다. 단계(62)의 처음에서, 상기 데이터 최적화 속성들은 상기 대상 정보 신호(OBI)로부터 추출된다. 만일 상기 데이터 최적화 속성들이 상기 마이크로콘트롤러(C)에 저장되어 있다면, 상기 속성들은 추출되기 전에 상기 호스트 시스템(H)에 제공된다. 상기 설명된 실시예에서, 상기 호스트 시스템(H)은 추적 포획 장비이다. 추적 포획 장비(H)는 상기 메모리(24)와 데이터 최적화 디코드 논리부(26)를 포함한다. 상기 데이터 최적화 디코드 논리부(26)는 기록 대상 값들을 처리하도록 설정된다. 일반적인 디코드 논리부의 설계 및 조작은 당 업계에서 공지된 것이다. 흔적포획 장비에 대안적인 것으로, 상기 호스트 시스템(H)은 소프트웨어 디버깅 장비의 형태일 수 있다. 다음 단계(62)에서, 상기 데이터 최적화 속성들은 상기 데이터 최적화 디코드 논리부(26)에 의해 처리된다. 순방향 추정(forward inferrinf)이나 당 업계에 공지된 다른 적절한 알고리즘들을 이용하면서, 상기 디코드 논리부(26)는 상기 원본 기록 대상 값들을 상기 데이터 최적화 속성들로부터 재구성한다. 상기 메모리(24)와 디코드 논리부(26)는 상기 호스트 시스템(H) 또는 버스 관찰 디바이스(BMD)(도 1)에 의해 제공되어질 수 있다. 상기 데이터 최적화 속성들 디버그 과정은 단계(66)에서 종료된다.
그래서, 본 발명에 따르는 디버깅 환경은 목표 시스템(T)의 기록 버퍼(16)에 의한 데이터 최적화 동작과 동시에 대상 정보를 유지한다. 상기 목표 시스템(T) 내에서, 시스템 버스(SB)는 시스템 메모리(M)와 마이크로콘트롤러(C) 사이에 연결된다. 상기 기록 버퍼(16)에 의한 데이터 최적화는 버스 관찰 디바이스(BMD)에 의해서 상기 시스템 버스(SB)의 병합 신호를 관찰하는 것으로 검출된다. 데이터 최적화가 검출되면, 데이터 최적화 동작과 연관되는 데이터 최적화 속성들(예를들어, 대상 정보, 데이터 그리고 주소)은 버스 관찰 디바이스(BMD)의 포획 신호에 응답하여 대상 정보 신호(OBI)의 형태로 포획된다. 상기 데이터 최적화 속성들은 상기 목표 시스템(T)의 흔적 캐시(12) 또는 디버그 포트(18)와 연결된 외부 흔적 포획 장비(H)의 메모리(24) 또는 상기 버스 관찰 디바이스(BMD)의 메모리 중 하나에 저장될 것이다. 상기 데이터 최적화 속성들을 상기 마이크로콘트롤러(C)의 외부로 제공함에 있어서, 상기 데이터 최적화 속성들은 마이크로콘트롤러 디버깅 포트의 흔적 핀들(20)에 의해 임시로 유지될 것이다. 상기 데이터 최적화 속성들은 상기 대상 정보 신호(OBI)로부터 추출되고, 상기 외부 흔적 포획 장비(H) 또는 상기 버스 관찰 디바이스(BMD)에 의해 처리될 것이다. 상기 데이터 최적화 속성들의 처리를 통해서, 최적화 되기 이전 기록 대상 값들은 재구성될 수 있다. 본 발명은 데이터 최적화 동작이 수행되는 어떠한 시스템에도 적용할 수 있다는 것을 이해해야 한다.
본 발명에 대한 상기 설명 및 묘사는 예시와 그 설명이며, 본 발명의 사상을 벗어나지 않으면서 그 요소들, 회로들, 신호들, 필드들, 버스들, 레지스터들, 변수들 및 연결들, 그리고 예시된 회로부, 동작의 구성 및 방법의 세부들 역시 다양하게 변할 수 있다.

Claims (22)

  1. 목표 시스템의 기록 버퍼에 의한 데이터 최적화 동작과 동시에 대상 정보를 유지하는 방법에 있어서,
    기록 버퍼에 의한 데이터 최적화 동작을 검출하는 단계와,
    상기 데이터 최적화 동작과 연관된 다수의 데이터 최적화 속성들을 포획하는 단계와, 그리고
    상기 다수의 데이터 최적화 속성들을 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서, 상기 목표 시스템은 시스템 메모리와 마이크로콘트롤러를 포함하며, 데이터 최적화 동작을 검출하는 상기 단계는,
    상기 시스템 메모리와 상기 마이크로콘트롤러 사이에 연결된 시스템 버스의 병합 신호를 관찰하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 2항에 있어서,
    상기 기록 버퍼의 기록 병합 신호와 읽기 병합 신호로부터 병합 신호를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제 1항에 있어서, 목표 시스템은 시스템 메모리와 마이크로콘트롤러를 포함하고, 상기 포획 단계는,
    다수의 데이터 최적화 속성들을 제공하는 대상 정보 신호를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 1항에 있어서, 상기 포획 단계는,
    상기 기록 버퍼의 대상 정보 플래그를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 1항에 있어서, 목표 시스템은 디버그 포트를 가진 마이크로콘트롤러를 포함하고, 상기 저장 단계는,
    상기 디버그 포트의 다수의 흔적 핀들로 다수의 데이터 최적화 속성들을 유지하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 1항에 있어서, 상기 목표 시스템은 디버그 포트를 가진 마이크로콘트롤러를 포함하고, 상기 디버그 포트는 상기 목표 시스템을 외부 흔적 포획 장비와 연결하며, 상기 저장단계는,
    상기 다수의 데이터 최적화 속성들을 상기 외부 흔적 포획 장비의 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 1항에 있어서, 상기 목표 시스템은 버스 관찰 디바이스와 연결된 시스템버스를 가진 마이크로콘트롤러를 포함하고, 상기 저장 단계는,
    상기 다수의 데이터 최적화 속성들을 상기 버스 관찰 디바이스의 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 기록 버퍼에 의한 데이터 최적화 동작과 동시에 대상 정보를 유지하기위한 디버깅 환경에 있어서,
    목표 시스템과, 이는,
    마이크로 콘트롤러와, 이는
    실행 유닛과,
    데이터 최적화 동작을 수행하기위한 상기 실행 유닛에 연결된 기록 버퍼와,
    상기 데이터 최적화 동작에 관련되는 다수의 데이터 최적화 속성들을 제공하는 대상 정보 신호를 생성하기위한 신호 생성 논리부와, 그리고
    디버그 장비와 통신하기위한 디버그 포트를 포함하고,
    시스템 메모리와, 그리고
    상기 시스템 메모리와 상기 마이크로콘트롤러를 연결하는, 상기 데이터 최적화 동작을 검출하기위한 병합 신호 라인을 가지는 시스템 버스를 포함하며,
    상기 시스템 버스의 상기 병합 신호 라인과 연결되는 버스 관찰 디바이스와, 그리고
    상기 마이크로콘트롤러에 의해서 상기 다수의 데이터 최적화 속성들의 포획을 트리거링(trigerring)하기위하여 상기 버스 관찰 시스템과 연결되는 포획 신호 라인을 포함하는 것을 특징으로 하는 디버깅 환경.
  10. 제 9항에 있어서,
    상기 다수의 데이터 최적화 속성들을 저장하기위해 상기 디버그 포트와 연결되는 디버깅 장비를 더 포함하는 것을 특징으로 하는 디버깅 환경.
  11. 제 10항에 있어서, 상기 디버깅 장비는 흔적 포획 장비를 포함하는 것을 특징으로 하는 디버깅 환경.
  12. 제 10항에 있어서, 상기 디버깅 장비는,
    상기 다수의 데이터 최적화 속성들로부터 최적화 이전의 기록 대상 값들을 재구성하기위한 디코드 논리부를 포함하는 것을 특징으로 하는 디버깅 환경.
  13. 제 9항에 있어서, 상기 버스 관찰 디바이스는,
    상기 다수의 데이터 최적화 속성들로부터 최적화 이전의 기록 대상 값들을 재구성하기위한 디코드 논리부를 포함하는 것을 특징으로 하는 디버깅 환경.
  14. 제 9항에 있어서, 상기 마이크로콘트롤러는,
    다수의 데이터 최적화 속성들을 저장하기위하여 디버그 포트와 연결된 흔적캐시를 더 포함하는 것을 특징으로 하는 디버깅 환경.
  15. 제 9항에 있어서, 상기 기록 버퍼는 데이터 최적화 동작을 수행하도록 설정되는 것을 특징으로 하는 디버깅 환경.
  16. 목표 시스템을 위하여 대상 정보를 디버깅하는 방법에 있어서, 상기 목표 시스템은 데이터 최적화 동작을 수행하기위한 기록 버퍼를 포함하고, 상기 목표 시스템은 상기 데이터 최적화 동작에 관련되는 다수의 데이터 최적화 속성들을 제공하는 대상 정보 신호를 생성하며, 상기 방법은,
    상기 대상 정보 신호로부터 상기 다수의 데이터 최적화 속성들을 추출하는 단계와, 그리고
    상기 다수의 데이터 최적화 속성들을 처리하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제 16항에 있어서, 상기 추출 단계는 상기 목표 시스템과 연결된 디버깅 장비에 의해서 수행되는 것을 특징으로 하는 방법.
  18. 제 16항에 있어서, 상기 추출 단계는 상기 목표 시스템의 시스템 버스와 연결된 버스 관찰 디바이스에 의해서 수행되는 것을 특징으로 하는 방법.
  19. 제 16항에 있어서, 상기 다수의 데이터 최적화 속성들은 대상 크기 정보를 포함하는 것을 특징으로 하는 방법.
  20. 제 16항에 있어서, 상기 처리 단계는,
    상기 다수의 데이터 최적화 속성들로부터 최적화 이전의 기록 대상 값들을 재구성하는 것을 특징으로 하는 방법.
  21. 기록 버퍼에 의한 데이터 최적화 동작과 동시에 대상 정보를 유지하기위한 디버깅 환경에 있어서,
    기록 버퍼에 의한 데이터 최적화 동작을 검출하는 수단과,
    상기 데이터 최적화 동작과 연관된 다수의 데이터 최적화 속성들을 포획하는 수단과, 그리고
    상기 다수의 데이터 최적화 속성들을 저장하는 수단을 포함하는 것을 특징으로 하는 디버깅 환경.
  22. 제 21항에 있어서,
    상기 다수의 데이터 최적화 속성들을 추출하는 수단과, 그리고
    상기 다수의 데이터 최적화 속성들을 처리하는 수단을 더 포함하는 것을 특징으로 하는 디버깅 환경.
KR1020017005758A 1998-11-06 1999-06-29 디버깅을 위해 데이터 최적화와 동시에 객체 크기 정보의 유지 KR100605141B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/187,852 US6269454B1 (en) 1998-11-06 1998-11-06 Maintaining object information concurrent with data optimization for debugging
US09/187,852 1998-11-06

Publications (2)

Publication Number Publication Date
KR20010086008A true KR20010086008A (ko) 2001-09-07
KR100605141B1 KR100605141B1 (ko) 2006-07-28

Family

ID=22690753

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017005758A KR100605141B1 (ko) 1998-11-06 1999-06-29 디버깅을 위해 데이터 최적화와 동시에 객체 크기 정보의 유지

Country Status (6)

Country Link
US (1) US6269454B1 (ko)
EP (1) EP1125200B1 (ko)
JP (1) JP2002529851A (ko)
KR (1) KR100605141B1 (ko)
DE (1) DE69902936T2 (ko)
WO (1) WO2000028419A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3736980B2 (ja) * 1998-12-28 2006-01-18 富士通株式会社 マイクロコントローラの評価装置および評価方法
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6615370B1 (en) * 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US7346895B2 (en) * 2002-07-31 2008-03-18 International Business Machines Corporation Method of tracing data collection
EP1403775B1 (en) * 2002-09-25 2006-03-08 STMicroelectronics S.r.l. Process and devices for transmiting digital signals over buses and computer program product therefor
DE60221396D1 (de) * 2002-09-25 2007-09-06 St Microelectronics Srl Verfahren und Gerät, um digitales Signal über einem Rechnerbus zu übertragen und Rechnerprogrammprodukt dafür
US7587635B2 (en) * 2004-10-04 2009-09-08 Cisco Technology, Inc. Method of debugging “active” unit using “non-intrusive source-level debugger” on “standby” unit of high availability system
US8706937B2 (en) * 2011-03-02 2014-04-22 Texas Instruments Incorporated Method and system of debugging multicore bus transaction problems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06290076A (ja) 1993-04-05 1994-10-18 Nec Ic Microcomput Syst Ltd デバッグ装置
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US5964893A (en) 1995-08-30 1999-10-12 Motorola, Inc. Data processing system for performing a trace function and method therefor
JPH1021086A (ja) * 1996-06-28 1998-01-23 Matsushita Electric Ind Co Ltd プログラム変換装置とデバッグ装置
US5729678A (en) 1996-03-04 1998-03-17 Ag Communication Systems Corporation Bus monitor system
US5941971A (en) * 1997-07-31 1999-08-24 Advanced Micro Devices, Inc. Bus bridge transaction checker for correct resolution of combined data cycles

Also Published As

Publication number Publication date
JP2002529851A (ja) 2002-09-10
DE69902936D1 (de) 2002-10-17
EP1125200B1 (en) 2002-09-11
US6269454B1 (en) 2001-07-31
WO2000028419A1 (en) 2000-05-18
KR100605141B1 (ko) 2006-07-28
DE69902936T2 (de) 2003-05-28
EP1125200A1 (en) 2001-08-22

Similar Documents

Publication Publication Date Title
USRE49305E1 (en) Data processing system having cache memory debugging support and method therefor
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
US7603589B2 (en) Method and system for debugging a software program
US7681078B2 (en) Debugging a processor through a reset event
US9047400B2 (en) Data processor device for handling a watchpoint and method thereof
US20070011492A1 (en) Generation of trace data
US9021311B2 (en) Method and apparatus for filtering trace information
KR20080022181A (ko) 마이크로컨트롤러들의 내부 메모리를 이용하여 트레이스정보를 저장 및 추출하는 메커니즘
JP2010541067A (ja) デバッグイベントを監視するためのシステム及び方法
CN109254883B (zh) 一种片上存储器的调试装置及方法
KR20100016516A (ko) 데이터 처리 시스템에서 캐시 트랜잭션들을 위한 방법 및 장치
JP2005056379A (ja) データ処理システムのトレース・バス
JP6360665B2 (ja) ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法
US20050240820A1 (en) Method and apparatus for multiprocessor debug support
US9223678B2 (en) Data processor device having a debug control module which selectively modifies trace messages
KR100605141B1 (ko) 디버깅을 위해 데이터 최적화와 동시에 객체 크기 정보의 유지
JP2007257441A (ja) プロセッサおよびプロセッサ制御方法
US6728906B1 (en) Trace buffer for a configurable system-on-chip
JP2002529851A5 (ko)
US7051237B2 (en) Program-controlled unit
GB2389931A (en) Selective generation of trace elements
JP3419392B2 (ja) メモリアクセス監視装置、メモリアクセス監視方法およびメモリアクセス監視用プログラムを記録した記録媒体
JPH02126340A (ja) データ処理システム
JP2002091795A (ja) キャッシュ制御装置
JPH03263135A (ja) 分岐制御回路

Legal Events

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

Payment date: 20100630

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee