KR100605141B1 - 디버깅을 위해 데이터 최적화와 동시에 객체 크기 정보의 유지 - Google Patents
디버깅을 위해 데이터 최적화와 동시에 객체 크기 정보의 유지 Download PDFInfo
- Publication number
- KR100605141B1 KR100605141B1 KR1020017005758A KR20017005758A KR100605141B1 KR 100605141 B1 KR100605141 B1 KR 100605141B1 KR 1020017005758 A KR1020017005758 A KR 1020017005758A KR 20017005758 A KR20017005758 A KR 20017005758A KR 100605141 B1 KR100605141 B1 KR 100605141B1
- Authority
- KR
- South Korea
- Prior art keywords
- data optimization
- attributes
- data
- microcontroller
- target system
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software 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)
- Memory System Of A Hierarchy Structure (AREA)
- Microcomputers (AREA)
Abstract
디버깅 환경은 목표 시스템의 기록 버퍼에 의한 데이터 최적화 조작과 동시에 객체 정보(예를 들어, 객체 크기)를 유지할 수 있다. 상기 목표 시스템 내에서, 시스템 버스는 시스템 메모리와 마이크로컨트롤러 사이에 연결된다. 상기 기록 버퍼에 의한 데이터 최적화 동작은 버스 감시 디바이스의 병합 신호 감시에 의해 검출된다. 데이터 최적화 동작이 검출되면, 데이터 최적화 동작과 연관되는 데이터 최적화 속성들(예를 들어, 객체 정보, 데이터 그리고 주소)은 버스 감시 디바이스의 포획 신호에 응답하여 객체 정보 신호의 형태로 포획된다. 상기 데이터 최적화 속성들은 상기 목표 시스템의 추적 캐시 또는 디버그 포트와 연결된 외부 추적 포획 장비의 메모리, 혹은 상기 버스 감시 디바이스의 메모리 중 하나에 저장될 것이다. 상기 데이터 최적화 속성들을 상기 마이크로컨트롤러의 외부로 제공함에 있어서, 상기 데이터 최적화 속성들은 마이크로컨트롤러 디버깅 포트의 추적 핀들에 의해 임시로 홀딩될 것이다. 상기 데이터 최적화 속성들은 상기 객체 정보 신호로부터 추출되고, 상기 외부 추적 포획 장비 또는 상기 버스 감시 디바이스에 의해 처리될 것이다. 상기 데이터 최적화 속성들의 처리를 통해서, 최적화되기 이전 기록 객체 값들은 재구성될 수 있다.
Description
본 발명은 프로세서-기반 시스템들에 대한 소프트웨어 디버깅에 관한 것으로, 보다 구체적으로는 데이터 최적화와 객체 정보를 동시에 유지하는 것에 관한 것이다.
프로세서-기반 시스템의 성능을 개선하기 위하여, 시스템 버스 성능의 제한으로부터 프로세서 성능을 독립시키려는 노력이 있어 왔다. 이러한 노력은 기록 버퍼(write buffer)를 제공하여 프로세서-기반 시스템의 시스템 자원에 대한 액세스를 제어하는 것으로써 추구되어왔다. 읽기 동작들은 일반적으로 시스템 버스에 대한 액세스에서 가장 우선된다. 기록 동작과 같은 시스템 버스에 대한 다른 액세스들은 상기 시스템 버스가 사용 가능하게 될 때까지 기록 버퍼에서의 기록 데이터의 지연을 야기한다.
데이터 코히어런시(coherency) 유지를 위해, 기록 병합(merging), 기록 붕괴(collapsing) 및 읽기 병합과 같은 데이터 최적화 동작을 수행하도록 프로세서-기반 시스템에 기록 매체를 제공하는 일이 대단히 많아졌다. 기록 버퍼 내에서 큐잉(queuing)하고자 하는 일 대기자(one candidate)는 기록 객체(write object) 값이다. 기록 객체 값들을 포함하는 데이터 최적화 동작들의 결과, 기록 객체 값들에 대한 객체 크기 정보가 소실되고 있다. 즉, 상기 최적화된 객체 값들은 해당하는 객체 크기 정보를 더 이상 포함하지 않는다. 예를 들어서, 만일 기록 버퍼가 두개의 연속적인 바이트 크기 객체 값들을 단일 워드-크기 객체 값으로 병합한다면, 새로운 데이터 객체는 바이트 크기 대신 워드 크기이므로, 기록 버퍼는 상기 원본 객체 값들의 객체 크기를 소실한다.
데이터 최적화 동작의 결과로 소실된 상기 객체 크기 정보는 프로세서-기반 시스템의 소프트웨어 디버깅에 있어 제한 요소가 되어왔다. 프로세서-기반 시스템에 의해 실행되는 소프트웨어 프로그램은 데이터 객체들에 대해서 기록 동작들을 수행하는데 사용된다. 소프트웨어 프로그램이 데이터 최적화를 이용하지 않는 경우, 상기 소프트웨어 프로그램은 전형적으로 기록 동작으로부터 기인하는 기록 객체 값들을 추적(tracing 또는 tracking)함으로써 디버그된다. 그러나, 소프트웨어 프로그램을 디버깅하는데 있어서의 기록 객체 값들의 재구성은 기록 버퍼에 의한 데이터 최적화 동작의 제약을 받아왔다. 데이터 최적화 동작으로부터 기인하는 기록 객체 값에는 최적화되기 전 기록 객체 값들로의 재구성에 필요한 객체 크기 정보가 결여되어 있다.
EP-A-0, 762,276은 데이터 처리 시스템의 디버그 기능을 수행하기 위한 방법 및 장치를 보인다. 데이터 프로세서는 외부 개발 도구가 데이터 프로세서의 효율에 심각한 영향을 주지 않을 뿐 아니라 부가적인 외부 버스를 이용하지 않고도 상기 데이터 프로세서의 내부 동작들을 능동적으로 감시할 수 있게 하는 실시간 추적 기능을 실행한다. 상기 데이터 프로세서의 내부 디버그 모듈은 데이터를 두 개의 신호라인들을 통해서 상기 디버깅 환경에 제공하며, 상기 두 개의 신호라인들 중 하나는 피연산자 및 주소 값들을 위한 것이고, 다른 하나는 상기 데이터 프로세서의 실행 상태들의 정보를 위한 것이다. 그러나, 데이터 최적화 동작의 결과로 소실된 디버깅 목적의 객체 크기 정보를 다시 획득하는 문제는 해결되지 않았다.
EP-A-0, 762,276은 데이터 처리 시스템의 디버그 기능을 수행하기 위한 방법 및 장치를 보인다. 데이터 프로세서는 외부 개발 도구가 데이터 프로세서의 효율에 심각한 영향을 주지 않을 뿐 아니라 부가적인 외부 버스를 이용하지 않고도 상기 데이터 프로세서의 내부 동작들을 능동적으로 감시할 수 있게 하는 실시간 추적 기능을 실행한다. 상기 데이터 프로세서의 내부 디버그 모듈은 데이터를 두 개의 신호라인들을 통해서 상기 디버깅 환경에 제공하며, 상기 두 개의 신호라인들 중 하나는 피연산자 및 주소 값들을 위한 것이고, 다른 하나는 상기 데이터 프로세서의 실행 상태들의 정보를 위한 것이다. 그러나, 데이터 최적화 동작의 결과로 소실된 디버깅 목적의 객체 크기 정보를 다시 획득하는 문제는 해결되지 않았다.
간단하게, 본 발명에 따르는 디버깅 환경은 목표(target) 시스템의 기록 버퍼에 의한 데이터 최적화 동작과 동시에 객체 정보를 유지할 수 있다. 상기 목표 시스템 내에서, 시스템 버스는 시스템 메모리와 마이크로컨트롤러 사이에 연결된다. 상기 기록 버퍼에 의한 데이터 최적화 동작은 버스 감시(monitoring) 디바이스에 의해 시스템 버스의 병합 신호를 감시함으로써 검출된다. 데이터 최적화 동작이 검출되면, 데이터 최적화 동작과 연관된 데이터 최적화 속성(attribute)들(예를 들어, 객체 정보, 데이터 및 주소)은, 버스 감시 디바이스로부터의 포획신호(capture signal)에 응답하여 객체 정보 신호의 형태로 포획된다. 상기 데이터 최적화 속성들은 상기 목표 시스템의 추적 캐시(trace cache), 또는 디버그 포트(port)에 연결된 외부의 추적 포획 장비의 메모리(즉, 상기 버스 감시 디바이스의 메모리) 내에 저장될 수 있다. 상기 데이터 최적화 속성들을 상기 마이크로컨트롤러의 외부로 제공함에 있어서, 상기 데이터 최적화 속성들은 마이크로컨트롤러 디버깅 포트의 추적 핀(trace pin)들에 의해 임시로 홀딩(hold)될 수 있다. 상기 데이터 최적화 속성들은 상기 객체 정보 신호로부터 추출되어, 상기 외부의 추적 포획 장비 또는 상기 버스 감시 디바이스에 의해 처리될 수 있다. 상기 데이터 최적화 속성들을 처리함으로써, 최적화 전의 기록 객체 값들을 재구성할 수 있다.
하기의 본 발명의 상세한 설명을 다음의 도면들과 함께 고찰함으로써 발명을 보다 잘 이해할 수 있다.
도 1은 본 발명에 따르는 예시적인 소프트웨어 디버깅 환경의 간략한 다이어그램이다.
도 2는 본 발명에 따르는 병합 신호에 연관된 도 1의 기록 버퍼를 묘사한 간략한 다이어그램이다.
도 3은 본 발명에 따르는 도 1 및 도 2의 기록 버퍼에 대한 간략한 예시이다.
도 4는 본 발명에 따르는 도 3의 예시적인 객체 크기 플래그의 논리표이다.
도 5는 본 발명에 따르는 데이터 최적화 속성 저장 과정의 흐름도이다.
도 6은 본 발명에 따르는 데이터 최적화 속성 디버그 과정의 흐름도이다.
삭제
삭제
삭제
삭제
하기의 관련 특허 출원들은 본원의 참고 문헌으로써 인용한다.
본원 출원인에 양도되어 1998년 1월 16일 출원된, 미국 특허 출원 제 09/008, 394호, 명칭 "랜덤 액세스 스누핑 기능을 갖춘 기록 버퍼 FIFO 아키텍쳐(Write-Buffer FIFO Architecture with Random Access Snooping Capability)" ;
본원 출원인에 양도되어 1997년 12월 7일 출원된, 미국 특허 출원 제 08/992, 160호, 명칭 "데이터 프로파일링을 행하는 소프트웨어를 포획하기 위한 캐시를 구비한 마이크로프로세서 기반 장치(Microprocessor-Based Device Incorporating a Cache for Capturing Software Performing Profiling Data)" ;
본원 출원인에 양도되어 1997년 10월 14일 출원된, 미국 특허 출원 제 09/949,879호, 명칭 "마이크로프로세서 기반 장치를 위한 추적 캐시(Trace Cache for a Microprocessor-Based Device)" ; 및
본원 출원인에 양도되어 1997년 8월 25일 출원된, 미국 특허 출원 제 08/932,597호, 명칭 "마이크로프로세서를 위한 소프트웨어 디버그 포트(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)의 특정 요소들은 생략된다.
본원 출원인에 양도되어 1998년 1월 16일 출원된, 미국 특허 출원 제 09/008, 394호, 명칭 "랜덤 액세스 스누핑 기능을 갖춘 기록 버퍼 FIFO 아키텍쳐(Write-Buffer FIFO Architecture with Random Access Snooping Capability)" ;
본원 출원인에 양도되어 1997년 12월 7일 출원된, 미국 특허 출원 제 08/992, 160호, 명칭 "데이터 프로파일링을 행하는 소프트웨어를 포획하기 위한 캐시를 구비한 마이크로프로세서 기반 장치(Microprocessor-Based Device Incorporating a Cache for Capturing Software Performing Profiling Data)" ;
본원 출원인에 양도되어 1997년 10월 14일 출원된, 미국 특허 출원 제 09/949,879호, 명칭 "마이크로프로세서 기반 장치를 위한 추적 캐시(Trace Cache for a Microprocessor-Based Device)" ; 및
본원 출원인에 양도되어 1997년 8월 25일 출원된, 미국 특허 출원 제 08/932,597호, 명칭 "마이크로프로세서를 위한 소프트웨어 디버그 포트(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)은 고집적 프로세서(11)를 제공하여 상기 시스템 메모리(M)에 저장된 코드를 실행할 수 있다. 상기 설명된 실시예의 상기 실행 유닛(10)은 캘리포니아 서니베일의 어드밴스드 마이크로 디바이시스 인코포레이티드(Advanced Micro Devices, Inc.)의 다양한 마이크로컨트롤러들에 적용된 AM186 명령 세트와 호환성을 가진다. 상기 실행 유닛(10) 대신에 다양한 다른 실행 유닛들이 이용될 수 있다.
본 발명에 따라서, 상기 추적 캐시(12) 및 상기 추적 캐시 제어부(14)는 데이터 최적화 동작과 동시에 데이터 최적화 속성들을 포획하기 위해 협동한다. 데이터 최적화 속성들에 관한 자세한 내용이 이하 제공된다. 상기 추적 캐시(12)에 저장된 데이터 최적화 속성들은 상기 호스트 시스템(H)에 제공될 수 있고, 혹은 대안적으로, 상기 추적 캐시(12) 내의 상기 데이터 최적화 속성들을 내부적으로 시험하도록 상기 목표 시스템(T)을 구성할 수 있다. 또한, 상기 추적 캐시(12)에 의한 추적 포획은 선택적으로 가능 또는 불가능할 수 있다. 상기 추적 캐시(12)는 선입선출(FIFO : first-in, first-out) 순환 캐시가 고려될 수 있다. 상기 추적 캐시는 본원 출원인에 양도된 미국 특허 출원 제 08/992,610호, 명칭 "데이터의 프로파일링을 행하는 소프트웨어를 포획하기 위한 캐시를 구비한 마이크로프로세서 기반 장치", 본원 출원인에 양도되어 1997년 10월 14일 출원된, 미국 특허 출원 제 09/949,879호, 명칭 "마이크로프로세서 기반 장치를 위한 추적 캐시", 본원 출원인에 양도되어 1997년 8월 25일 출원된, 미국 특허 출원 제 08/932,597호, 명칭 "마이크로프로세서를 위한 소프트웨어 디버그 포트" 에 상세히 설명된다.
상기 디버그 포트(18)는 바람직하게는 IEEE-11.49.1-1990을 따르는 JTAG 인터페이스 또는 유사한 표준화된 직렬 포트 인터페이스를 이용한다. 상기 디버그 포트(18)는 상기 추적 캐시(12)를 이용할 수 있다. 상기 디버그 포트(18)는 송신 레지스터(TX-DATA), 수신 레지스터(RX-DATA), 명령 추적 구성 레지스터(ITCR) 및 디버그 제어-상태 레지스터(DCSR)와 같은 다양한 레지스터들을 포함한다. 상기 송신 레지스터는 마이크로컨트롤러(C)로부터 송신되는 데이터를 홀딩하고, 상기 수신 레지스터는 상기 마이크로컨트롤러(C)에 의해 수신된 데이터를 저장한다. 상기 명령 추적 구성 레지스터는 추적 디버그 기능들의 가능, 불가능 및 구성을 위해 제공된다. 상기 디버그 제어-상태 레지스터는 언제 상기 실행 유닛(10)이 디버그 모드로 진입했는지를 나타낸다. 본 발명에 따르면, 상기 디버그 포트(18)는 외부적으로 제공되는 데이터 최적화 속성들을 임시로 홀딩하기 위한 추적 핀(20)들을 더 제공한다. 추적 캐시와 같이, 디버그 포트는 상기 특허 출원에서 상세히 설명된다.
상기 기록 버퍼(16)(도 1, 2 그리고 3)는 바람직하게는, 랜덤 액세스 스누핑 능력을 구비한 기록 버퍼이다. 상기 기록 버퍼(16)는 기록 병합, 기록 붕괴 및 읽기 병합을 지원한다. 기록 병합 또는 기록 붕괴 동작은 WR_MERGE 신호(도 2)의 표명(assertion)에 응답하여 수행될 수 있다. 읽기 병합 동작은 RD_MERGE 신호(도 2)의 표명에 응답하여 수행될 수 있다. 상기 기록 버퍼(16)는 랜덤 액세스 메모리(RAM)를 포함한다. 기록 주소의 저장에 부가적으로, 상기 랜덤 액세스 메모리의 주소 랭크(rank)는 디버깅 목적으로 비트들을 제공한다. 본 발명에 따라서, 객체 정보를 나타내는 비트들(예를 들어, 객체 크기)은 상기 랜덤 액세스 메모리로 제공된다. 기록 버퍼는, 본원 출원인에 양도된 미국 특허 출원 제 09/008,394호 명칭 "랜덤 액세스 스누핑 기능을 갖춘 기록 버퍼 FIFO 아키텍쳐"에 상세히 설명된다.
본 발명에 따라서, 객체 정보는 상기 기록 버퍼(16)에 의한 데이터 최적화와 동시에 유지된다. 도 5에서, 본 발명에 따르는 데이터 최적화 속성들의 저장 과정의 순서도가 도시된다. 단계(52)에서 시작하여, 데이터 최적화 동작이 수행되었는지 아닌지가 결정된다. 데이터 최적화 동작들(예를 들어, 기록 병합 또는 읽기 병합)은 상기 시스템 버스(SB)의 MERGE 신호(도 1 및 2)를 감시함으로써 검출된다. 도 2에서, MERGE 신호는, 입력으로써 WR_MERGE 신호와 RD_MERGE 신호를 수신하는 OR 논리 게이트(28)의 출력이다. 다른 구성의 MERGE 신호도 사용할 수 있다는 것을 이해해야 한다. 만일 상기 WR_MERGE 신호 또는 RD_MERGE 신호 중 하나가 표명되면, 상기 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'은 해당 데이터의 워드 객체 크기를 나타낸다. 상기 비트 조합 '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)의 외부에서 행해지기 때문에, 객체 정보는 방해 없이 투명한(transparent) 방식으로 유지된다. 상기 버스 감시 디바이스(BMD)는 상기 MERGE 신호를 감시함으로써, 상기 기록 버퍼(16)에 의한 데이터 최적화 동작을 검출할 수 있다. 데이터 최적화 동작이 발생하는 경우, 상기 버스 감시 디바이스(BMD)는 검출된 데이터 최적화 동작과 관련된 데이터 최적화 속성들이 포획되어야 함을 표시하도록 상기 마이크로컨트롤러(C)에 포획 신호를 제공한다. 이 CAPTURE 신호에 응답하여, 상기 신호 생성 논리부(22)는 객체 정보 신호(OBI)를 생성하고, 상기 추적 캐시 제어 블록(14)은 상기 추적 캐시(12)를 준비하여 상기 객체 정보 신호(OBI)를 수신하게 한다.
도 6에서, 본 발명에 따르는 데이터 최적화 속성들의 디버그 과정의 순서도가 도시된다. 단계(62)에서 시작하여, 상기 데이터 최적화 속성들은 상기 객체 정보 신호(OBI)로부터 추출된다. 만일 상기 데이터 최적화 속성들이 상기 마이크로컨트롤러(C)에 저장되어 있다면, 상기 속성들은 추출되기 전에 상기 호스트 시스템(H)에 제공된다. 상기 설명된 실시예에서, 상기 호스트 시스템(H)은 추적 포획 장비이다. 추적 포획 장비(H)는 상기 메모리(24)와 데이터 최적화 디코드 논리부(26)를 포함한다. 상기 데이터 최적화 디코드 논리부(26)는 기록 객체 값들을 처리하도록 구성된다. 일반적인 디코드 논리부의 설계 및 조작은 당 업계에서 공지된 것이다. 추적 포획 장비에 대안적인 것으로서, 상기 호스트 시스템(H)은 다른 형태의 소프트웨어 디버깅 장비일 수 있다. 단계(62)에 이어서, 상기 데이터 최적화 속성들은 상기 데이터 최적화 디코드 논리부(26)에 의해 처리된다. 순방향 추정(forward inferring)이나 당 업계에 공지된 다른 적절한 알고리즘들을 이용하면서, 상기 디코드 논리부(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항에 있어서, 상기 목표 시스템은 시스템 메모리와 마이크로컨트롤러를 포함하며, 상기 포획하는 단계는 상기 다수의 데이터 최적화 속성들을 제공하는 객체 정보 신호를 발생시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 1항에 있어서, 상기 포획하는 단계는 상기 기록 버퍼 내에 객체 정보 플래그를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 1항에 있어서, 상기 목표 시스템은 디버그 포트를 구비한 마이크로컨트롤러를 포함하며, 상기 저장하는 단계는 상기 디버그 포트의 다수의 추적 핀들에 의해 상기 다수의 데이터 최적화 속성들을 홀딩하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 1항에 있어서, 상기 목표 시스템은 디버그 포트를 구비한 마이크로컨트롤러를 포함하고, 상기 디버그 포트는 상기 목표 시스템을 외부의 추적 포획 장비에 연결하며, 상기 저장하는 단계는 상기 외부의 추적 포획 장비의 메모리 내에 상기 다수의 데이터 최적화 속성들을 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 1항에 있어서, 상기 목표 시스템은 버스 감시 디바이스에 연결된 시스템 버스를 구비한 마이크로컨트롤러를 포함하며, 상기 저장하는 단계는 상기 버스 감시 디바이스의 메모리 내에 상기 다수의 데이터 최적화 속성들을 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
- 기록 버퍼에 의한 데이터 최적화 동작과 동시에 객체 정보를 유지하기 위한 디버깅 환경에 있어서,목표 시스템과 버스 감시 디바이스를 포함하며,상기 목표 시스템은:마이크로 컨트롤러 - 여기서 상기 마이크로 컨트롤러는 실행 유닛과, 상기 실행 유닛에 연결되어 데이터 최적화 동작을 수행하는 기록 버퍼와, 상기 데이터 최적화 동작에 관련된 다수의 데이터 최적화 속성들을 제공하는 객체 정보 신호를 생성하는 신호 생성 논리부와, 그리고 디버그 장비와 통신하기 위한 디버그 포트를 포함한다 - 와;시스템 메모리와; 그리고상기 시스템 메모리와 상기 마이크로컨트롤러를 연결하는 시스템 버스 - 여기서 상기 시스템 버스는 상기 데이터 최적화 동작을 검출하는 병합 신호 라인을 포함한다 - 를 포함하며,상기 버스 감시 디바이스는 상기 시스템 버스의 상기 병합 신호 라인에 연결됨과 아울러 상기 마이크로컨트롤러에 의한 상기 다수의 데이터 최적화 속성들의 포획을 트리거(trigger)하는 포획 신호 라인에 연결되는 것을 특징으로 하는 디버깅 환경.
- 제 9항에 있어서, 상기 디버그 포트에 연결되어 상기 다수의 데이터 최적화 속성들을 저장하는 디버깅 장비를 더 포함하는 것을 특징으로 하는 디버깅 환경.
- 제 10항에 있어서, 상기 디버깅 장비는 추적 포획 장비를 포함하는 것을 특징으로 하는 디버깅 환경.
- 제 10항에 있어서, 상기 디버깅 장비는 상기 다수의 데이터 최적화 속성들로부터 최적화 이전의 기록 객체 값들을 재구성하는 디코드 논리부를 포함하는 것을 특징으로 하는 디버깅 환경.
- 제 9항에 있어서, 상기 버스 감시 디바이스는 상기 다수의 데이터 최적화 속성들로부터 최적화 이전의 기록 객체 값들을 재구성하는 디코드 논리부를 포함하는 것을 특징으로 하는 디버깅 환경.
- 제 9항에 있어서, 상기 마이크로컨트롤러는, 디버그 포트에 연결되어 상기 다수의 데이터 최적화 속성들을 저장하는 추적 캐시를 더 포함하는 것을 특징으로 하는 디버깅 환경.
- 제 9항에 있어서, 상기 기록 버퍼는 데이터 최적화 동작을 수행하는 것을 특징으로 하는 디버깅 환경.
- 목표 시스템에 대한 객체 정보를 디버깅하는 방법으로서, 상기 목표 시스템은 데이터 최적화 동작을 수행하는 기록 버퍼를 포함하며, 상기 목표 시스템은 상기 데이터 최적화 동작에 관련된 다수의 데이터 최적화 속성들을 제공하는 객체 정보 신호를 생성하며, 상기 방법은 상기 객체 정보 신호로부터 상기 다수의 데이터 최적화 속성들을 추출하는 단계와 상기 다수의 데이터 최적화 속성들을 처리하는 단계를 포함하는 것을 특징으로 하는 목표 시스템에 대한 객체 정보를 디버깅하는 방법.
- 제 16항에 있어서, 상기 추출하는 단계는 상기 목표 시스템에 연결된 디버깅 장비에 의해서 수행되는 것을 특징으로 하는 목표 시스템에 대한 객체 정보를 디버깅하는 방법.
- 제 16항에 있어서, 상기 추출하는 단계는 상기 목표 시스템의 시스템 버스에 연결된 버스 감시 디바이스에 의해서 수행되는 것을 특징으로 하는 목표 시스템에 대한 객체 정보를 디버깅하는 방법.
- 제 16항에 있어서, 상기 다수의 데이터 최적화 속성들은 객체 크기 정보를 포함하는 것을 특징으로 하는 목표 시스템에 대한 객체 정보를 디버깅하는 방법.
- 제 16항에 있어서, 상기 처리하는 단계는 상기 다수의 데이터 최적화 속성들로부터 최적화 이전의 기록 객체 값들을 재구성하는 것을 특징으로 하는 목표 시스템에 대한 객체 정보를 디버깅하는 방법.
- 기록 버퍼에 의한 데이터 최적화 동작과 동시에 객체 정보를 유지하기 위한 디버깅 환경으로서:상기 기록 버퍼에 의한 데이터 최적화 동작을 검출하는 수단과,상기 데이터 최적화 동작에 관련된 다수의 데이터 최적화 속성들을 포획하는 수단과, 그리고상기 다수의 데이터 최적화 속성들을 저장하는 수단을 포함하는 것을 특징으로 하는 디버깅 환경.
- 제 21항에 있어서, 상기 다수의 데이터 최적화 속성들을 추출하는 수단과 상기 다수의 데이터 최적화 속성들을 처리하는 수단을 더 포함하는 것을 특징으로 하는 디버깅 환경.
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 KR20010086008A (ko) | 2001-09-07 |
KR100605141B1 true 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3736980B2 (ja) * | 1998-12-28 | 2006-01-18 | 富士通株式会社 | マイクロコントローラの評価装置および評価方法 |
US6732307B1 (en) | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
US6615370B1 (en) * | 1999-10-01 | 2003-09-02 | Hitachi, Ltd. | Circuit for storing trace information |
US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6684348B1 (en) | 1999-10-01 | 2004-01-27 | Hitachi, Ltd. | Circuit for processing trace information |
US7346895B2 (en) * | 2002-07-31 | 2008-03-18 | International Business Machines Corporation | Method of tracing data collection |
EP1403774B1 (en) * | 2002-09-25 | 2007-07-25 | STMicroelectronics S.r.l. | Process and devices for transmitting digital signals over buses and computer program product therefor |
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 |
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 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR980004050A (ko) * | 1996-06-28 | 1998-03-30 | 모리시다 요이치 | 최적화 과정을 참조하면서 동작 검증을 행하도록 디버그 정보를 생성하는 디버그 정보 생성 장치 및 프로그래머가 최적화 과정을 의식하면서 동작 검증을 할 수 있는 디버그 장치로 이루어지는 프로그램 개발 시스템 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06290076A (ja) | 1993-04-05 | 1994-10-18 | Nec Ic Microcomput Syst Ltd | デバッグ装置 |
US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
US5740398A (en) * | 1993-10-18 | 1998-04-14 | Cyrix Corporation | Program order sequencing of data 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 |
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 |
-
1998
- 1998-11-06 US US09/187,852 patent/US6269454B1/en not_active Expired - Lifetime
-
1999
- 1999-06-29 WO PCT/US1999/014816 patent/WO2000028419A1/en active IP Right Grant
- 1999-06-29 KR KR1020017005758A patent/KR100605141B1/ko not_active IP Right Cessation
- 1999-06-29 DE DE69902936T patent/DE69902936T2/de not_active Expired - Lifetime
- 1999-06-29 EP EP99932097A patent/EP1125200B1/en not_active Expired - Lifetime
- 1999-06-29 JP JP2000581536A patent/JP2002529851A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR980004050A (ko) * | 1996-06-28 | 1998-03-30 | 모리시다 요이치 | 최적화 과정을 참조하면서 동작 검증을 행하도록 디버그 정보를 생성하는 디버그 정보 생성 장치 및 프로그래머가 최적화 과정을 의식하면서 동작 검증을 할 수 있는 디버그 장치로 이루어지는 프로그램 개발 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20010086008A (ko) | 2001-09-07 |
JP2002529851A (ja) | 2002-09-10 |
EP1125200B1 (en) | 2002-09-11 |
US6269454B1 (en) | 2001-07-31 |
DE69902936D1 (de) | 2002-10-17 |
DE69902936T2 (de) | 2003-05-28 |
WO2000028419A1 (en) | 2000-05-18 |
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) | データ処理装置用トレース要素生成システム | |
JP3105223B2 (ja) | マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置 | |
US6877114B2 (en) | On-chip instrumentation | |
JP4038372B2 (ja) | 順序外データのトレーシング | |
US7603589B2 (en) | Method and system for debugging a software program | |
US7681078B2 (en) | Debugging a processor through a reset event | |
US9021311B2 (en) | Method and apparatus for filtering trace information | |
US9201749B2 (en) | Diagnosing code using single step execution | |
US20070011492A1 (en) | Generation of trace data | |
CN109254883B (zh) | 一种片上存储器的调试装置及方法 | |
JPH11338734A (ja) | コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法 | |
KR100605141B1 (ko) | 디버깅을 위해 데이터 최적화와 동시에 객체 크기 정보의 유지 | |
US8935577B2 (en) | Method and apparatus for filtering trace information | |
US20050240820A1 (en) | Method and apparatus for multiprocessor debug support | |
US9223678B2 (en) | Data processor device having a debug control module which selectively modifies trace messages | |
JP2007257441A (ja) | プロセッサおよびプロセッサ制御方法 | |
JP2000207247A (ja) | コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法 | |
JP2002529851A5 (ko) | ||
JP2000020488A (ja) | コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法 | |
JP2003263339A (ja) | デバック機能内蔵型マイクロコンピュータ | |
JP3419392B2 (ja) | メモリアクセス監視装置、メモリアクセス監視方法およびメモリアクセス監視用プログラムを記録した記録媒体 | |
JPH02126340A (ja) | データ処理システム | |
JP2520158B2 (ja) | ディジタルシグナルプロセッサのデバッグ方式 | |
JP2001318802A (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 |