KR100802606B1 - 데이터의 천이 상태에 따른 디버깅 장치 및 방법 - Google Patents

데이터의 천이 상태에 따른 디버깅 장치 및 방법 Download PDF

Info

Publication number
KR100802606B1
KR100802606B1 KR1020010019883A KR20010019883A KR100802606B1 KR 100802606 B1 KR100802606 B1 KR 100802606B1 KR 1020010019883 A KR1020010019883 A KR 1020010019883A KR 20010019883 A KR20010019883 A KR 20010019883A KR 100802606 B1 KR100802606 B1 KR 100802606B1
Authority
KR
South Korea
Prior art keywords
address
data
processor core
memory
debugger
Prior art date
Application number
KR1020010019883A
Other languages
English (en)
Other versions
KR20020079163A (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 엘지전자 주식회사
Priority to KR1020010019883A priority Critical patent/KR100802606B1/ko
Priority to US10/058,847 priority patent/US6934886B2/en
Publication of KR20020079163A publication Critical patent/KR20020079163A/ko
Application granted granted Critical
Publication of KR100802606B1 publication Critical patent/KR100802606B1/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
    • 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
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

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

Abstract

본 발명은 데이터의 천이 상태에 따른 디버깅 장치 및 방법에 관한 것으로, 프로세서 디버깅 중 데이터 메모리의 특정 어드레스를 감시하여 데이터의 변환을 관측하고 그에 상관관계가 있는 어드레스 및 데이터를 출력하여 프로세서를 디버깅 하도록 함을 특징으로 한다. 이를 위하여 본 발명은 프로그램 메모리에 저장된 프로그램에 따라 동작하는 프로세서 코어와; 디버깅을 수행하는 호스트 컴퓨터로부터 명령을 받아 상기 프로세서 코어를 제어하는 디버거 제어부와; 상기 디버거 제어부를 통하여 상기 호스트 컴퓨터로부터 브레이크 포인트 어드레스를 받아 상기 프로세서 코어가 사용하는 프로그램 메모리 어드레스를 관측하고, 동일한 어드레스가 감지되면 디버거 브레이크 포인트로 인식하여 상기 디버거 제어부로 인식 신호를 전달하는 브레이크 포인트 감지부와; 상기 프로세서 코어의 데이터를 저장하는 데이터 메모리와; 상기 데이터 메모리의 어드레스와 데이터를 감시하고 해당 어드레스를 감지시 상기 디버거 제어부로 브레이크 신호를 보내어 프로세서 코어의 동작을 중지시키고 해당 어드레스와 데이터를 출력하는 메모리 브레이크 컨트롤러로 구성 한다.

Description

데이터의 천이 상태에 따른 디버깅 장치 및 방법{DEBUGGING DEVICE AND METHOD BY DATA CHANGING}
도 1은 종래의 디버깅 장치 블록도.
도 2는 본 발명의 데이터의 천이 상태에 따른 디버깅 장치 블록도.
도 3은 본 발명의 메모리 브레이크 컨트롤러 블록도.
도 4는 본 발명의 데이터의 천이 상태에 따른 디버깅 동작 순서도.
***** 도면의 주요 부분에 대한 부호의 설명 *****
10,20 : 호스트 컴퓨터 11,21 : 디버거 제어부
12,22 : 브레이크 포인트 감지부 13,23 : 프로세서 코어
14,24 : 프로그램 메모리 15,25 : 데이터 메모리
26 : 메모리 브레이크 컨트롤러 31 : 메모리 브레이크 컨트롤 레지스터
32 : 어드레스 레지스터 33 : 어드레스 비교부
34 : 데이터 레지스터 35 : 데이터 비교부
본 발명은 디버깅 장치 및 방법에 관한 것으로, 특히 프로세서 디버깅 중 데이터 흐름을 관측하여 프로세서를 중지 시킬수 있도록 한 데이터 천이 상태에 따른 디버깅 장치 및 방법에 관한 것이다.
도 1은 종래의 디버깅 장치에 관한 블록도로서, 이에 도시된 바와 같이 디버깅을 수행하는 호스트 컴퓨터(10)로부터 명령을 받는 디버거 제어부(11)와, 상기 디버거 제어부(11)의 제어를 받아 동작하는 프로세서 코어(13)와, 상기 디버거 제어부 (11)로 부터 브레이크 포인트 어드레스를 받아 프로세서 코어(13)에서 실행중인 프로그램 메모리(14)의 어드레스를 관측하여 동일한 어드레스가 감지되면 디버거 브레이크 포인트로 인식하여 디버거 제어부(11)로 인식 신호를 전달하는 브레이크 포인트 감지부(12)와, 상기 프로세서 코어(13)의 프로그램을 저장하는 프로그램 메모리(14)와; 상기 프로세서 코어(13)의 데이터를 저장하는 데이터 메모리(15)로 구성된다.
이와 같이 구성된 종래의 디버깅 장치의 동작을 설명한다.
디버깅 모드로 전환되면, 디버깅을 하기위해 상기 호스트 컴퓨터(10)는 상기 디버거 제어부(11)를 통하여 상기 프로세서 코어(13)를 멈추게 하고, 상기 프로그램 메모리(14) 내에서 프로세서 코어(13)가 멈추기 원하는 프로그램 어드레스를 상기 브레이크 포인트 감지부(12)에 저장한 후, 상기 프로세서 코어(13)를 상기 프로 그램 메모리(14)에 저장된 프로그램 순서대로 동작시킨다.
상기 브레이크 포인트 감지부(12)에서는 프로그램 메모리(14)에 저장된 순서대로 동작하는 프로세서 코어(13)를 감시하게 되고, 상기 프로세서 코어(13)가 상기 브레이크 포인트 감지부(12)에 저장된 프로그램 어드레스와 동일한 프로그램 메모리(12)의 프로그램 어드레스를 읽을 경우 상기 브레이크 포인트 감지부(12)는 상기 디버거 제어부(11)로 브레이크 신호를 전달하게 된다. 상기 디버거 제어부(11)는 브레이커 포인트 감지부(12)에서 받은 브레이크 신호에 의해 프로세서 코어(13)를 멈추게 한 후 호스트 컴퓨터(10)로 제어권을 이동시키고 상기 호스트 컴퓨터(10)는 디버깅 작업을 수행한다.
따라서, 종래에는 순차적인 프로그램에서 프로그램 메모리의 특정 어드레스를 브레이크 포인트로 설정하고 프로세서 동작중 이와 상응하는 프로그램 메모리의 어드레스를 패치(Fetch)하는 경우 브레이크 포인트로 인식하여 프로세서의 동작을 중단하는 방법으로 디버깅 하고 있다.
그러나, 상기와 같은 종래 기술에 있어서, 데이터 메모리의 관점에서 데이터의 흐름을 파악하기는 불가능하며, 실제 데이터의 흐름 자체가 프로그래밍의 중요한 축을 이루기 때문에 프로그램을 작성하는 경우 메모리 할당 오류를 유발시키고 아울러 연산 과정에서 오류 값을 가지게 되어 시스템이 오동작 하는 문제점이 있다.
따라서, 상기와 같은 문제점을 감안하여 창안한 본 발명은, 프로세서 디버깅 중 데이터 메모리의 특정 어드레스를 감시하여 데이터의 변환을 관측하고 그에 상 관관계가 있는 어드레스 및 데이터를 출력하여 프로세서를 디버깅 할수 있는 데이터 천이 상태에 따른 디버깅 장치 및 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명은, 프로그램 메모리에 저장된 프로그램에 따라 동작하는 프로세서 코어와; 디버깅을 수행하는 호스트 컴퓨터로부터 명령을 받아 상기 프로세서 코어를 제어하는 디버거 제어부와; 상기 디버거 제어부를 통하여 상기 호스트 컴퓨터로부터 브레이크 포인트 어드레스를 받아 상기 프로세서 코어가 사용하는 프로그램 메모리의 어드레스를 관측하고, 동일한 어드레스가 감지되면 디버거 브레이크 포인트로 인식하여 상기 디버거 제어부로 인식 신호를 전달하는 브레이크 포인트 감지부와; 상기 프로세서 코어의 데이터를 저장하는 데이터 메모리와; 상기 데이터 메모리의 어드레스와 데이터를 감시하고 해당 어드레스를 감지시 상기 디버거 제어부로 브레이크 신호를 보내어 프로세서 코어의 동작을 중지시키고 해당 어드레스와 데이터를 출력하는 메모리 브레이크 컨트롤러로 구성한 것을 특징으로 한다.
또한, 디버거 모드로 전환시, 디버거 제어부의 브레이크 인에이블 신호에 의해 메모리 브레이크 컨트롤 레지스터를 초기화하고 관측대상 어드레스를 어드레스 레지스터에 저장하는 제1단계와; 현재 프로세서 코어가 사용하는 데이터 메모리 어드레스와 상기 관측대상 어드레스를 어드레스 비교부에서 비교하는 제2단계와; 상기 제2단계의 비교결과, 상기 관측대상 어드레스와 현재 프로세서 코어가 사용하는 데이터 메모리 어드레스가 동일하면, 프로세서 코어가 데이터 메모리의 데이터를 읽어오는 것인지를 판단하는 제3단계와; 상기 제3단계의 판단결과, 상기 프로세서 코어가 데이터 메모리의 데이터를 읽어오면, 브레이크 메모리 컨트롤 레지스터의 어드레스 트레이스 체크 플래그와 데이터 체크 플래그를 셋하고, 다시 현재 프로세서 코어가 사용하는 데이터 메모리 어드레스를 어드레스 비교부에서 비교하는 제4단계와; 상기 제4단계의 비교결과, 상기 관측대상 어드레스와 현재 프로세서 코어가 사용하는 데이터 메모리 어드레스가 동일하면, 프로세서 코어가 데이터를 기록하는 것인지를 판단하는 제5단계와; 상기 제5단계의 판단결과, 상기 프로세서 코어가 데이터 메모리에 데이터를 기록하면, 프로세서 코어의 동작을 중지시키는 제6단계로 동작 하는 것을 특징으로 한다.
이하 본 발명에 의한 데이터 천이 상태에 따른 디버깅 장치 및 방법의 작용 및 효과를 첨부한 도2 및 도3을 참조하여 설명한다.
도 2는 본 발명 데이터 천이 상태에 따른 디버깅 장치 및 방법의 구성을 보인 블록도로서, 이에 도시한 바와 같이 프로그램 메모리(24)에 저장된 프로그램에 따라 동작하는 프로세서 코어(23)와, 디버깅을 수행하는 호스트 컴퓨터(20)로부터 명령을 받아 상기 프로세서 코어(23)를 제어하는 디버거 제어부(21)와, 상기 디버거 제어부(21)를 통하여 상기 호스트 컴퓨터(20)로부터 브레이크 포인트 어드레스를 받아 상기 프로세서 코어(23)가 사용하는 프로그램 메모리(24)의 어드레스를 관측하고, 동일한 어드레스가 감지되면 디버거 브레이크 포인트로 인식하여 상기 디버거 제어부(21)로 인식 신호를 전달하는 브레이크 포인트 감지부(22)와, 상기 프로세서 코어(23)의 데이터를 저장하는 데이터 메모리(25)와, 상기 데이터 메모리(25)의 어드레스와 데이터를 감시하고 관측 대상 어드레스를 감지시 상기 디버거 제어부(21)로 브레이크 신호를 보내어 프로세서 코어(23)의 동작을 중지시키고 해당 어드레스와 데이터를 상기 디버거 제어부(21)를 통하여 상기 호스트 컴퓨터(20)로 출력하는 메모리 브레이크 컨트롤러(26)로 구성한다.
또한, 도 3은 본 발명 메모리 브레이크 컨트롤러(26)의 구성을 보인 블록도로서, 이에 도시한 바와 같이 상기 메모리 브레이크 컨트롤러(26)는 상기 디버거 제어부(21)로부터 신호를 받아 메모리 브레이크 컨트롤러(26)를 활성화 시키고, 상기 디버거 제어부(21)로부터 관측대상 어드레스와 그 데이터를 받는 메모리 브레이크 컨트롤 레지스터(31)와, 상기 메모리 브레이크 컨트롤 레지스터(31)로부터 관측대상 어드레스를 받아 저장하는 어드레스 레지스터(32)와, 상기 데이터 메모리(25)로 부터 받은 현재 어드레스와 상기 어드레스 레지스터(32)에 저장된 관측대상 어드레스를 비교하는 어드레스 비교부(33)와, 상기 어드레스 레지스터(32)에 저장되어 있는 관측대상 어드레스의 데이터 값을 저장하는 데이터 레지스터와(34), 상기 데이터 메모리(25)로 부터 받은 현재 데이터와 상기 데이터 레지스터(34)에 저장되어있는 관측대상 어드레스의 데이터 값을 비교하는 데이터 비교부 (35)로 구성한다.
또한, 상기 메모리 브레이크 컨트롤 레지스터(31)는 상기 메모리 브레이크 컨트롤러(26)를 활성화시키는 메모리 브레이크 인에이블 플래그(MBEF)와, 상기 어드레스 비교부(33)에서 상기 어드레스 레지스터(32)에 저장된 어드레스와 동일한 어드레스를 감지해서 그에 해당하는 데이터의 내용을 알았을때 셋(Set) 되는 데이터 체크 플래그(DCF)와, 최초 관측대상 어드레스를 지정한 후 프로세싱 과정 중에서 관측대상 어드레스의 내용을 읽어 갔을 경우 셋(Set) 되는 어드레스 트레이스 체크 플래그(ACF)로 구성된다.
또한, 도4는 본 발명 데이터 천이 상태에 따른 디버깅 방법에 대한 동작 흐름도로서 이에 도시한 바와 같이 디버거 모드로 전환시, 디버거 제어부(21)의 브레이크 인에이블 신호에 의해 메모리 브레이크 컨트롤 레지스터(31)를 초기화(ST1)하고 관측대상 어드레스를 어드레스 레지스터(32)에 저장(ST2)하는 제1단계와, 현재 프로세서 코어(23)가 사용하는 데이터 메모리(25)의 어드레스와 상기 관측대상 어드레스를 어드레스 비교부(33)에서 비교(ST3)하는 제2단계와, 상기 제2단계의 비교결과, 상기 관측대상 어드레스와 현재 프로세서 코어(23)가 사용하는 데이터 메모리(25)의 어드레스가 동일하면, 프로세서 코어(23)가 데이터 메모리(25)의 데이터를 읽어오는 것인지를 판단(ST4)하는 제3단계와, 상기 제3단계의 판단결과, 상기 프로세서 코어(23)가 데이터 메모리(25)의 데이터를 읽어오면, 메모리 브레이크 컨트롤 레지스터(31)의 어드레스 트레이스 체크 플래그(ACF)와 데이터 체크 플래그(DCF)를 셋(ST5)하고, 다시 현재 프로세서 코어(23)가 사용하는 데이터 메모리(25)의 어드레스를 어드레스 비교부(33)에서 비교(ST7)하는 제4단계와, 상기 제4단계의 비교결과, 상기 관측대상 어드레스와 현재 프로세서 코어(23)가 사용하는 데이터 메모리(25)의 어드레스가 동일하면, 프로세서 코어(23)가 데이터를 기록하는 것인지를 판단(ST9)하는 제5단계와, 상기 제5단계의 판단결과, 상기 프로세서 코어(23)가 데이터 메모리(25)에 데이터를 기록하면, 프로세서 코어(23)의 동작을 중지(ST10)시키는 제6단계로 동작한다.
상기 제3단계의 결과가 프로세서 코어(23)가 데이터 메모리(25)에 데이터를 기록하면 메모리 브레이크 컨트롤 레지스터(31)의 데이터 체크 플래그(DCF)를 셋(ST6)하고 프로세서 코어(23)의 동작을 중지(ST10)시킨다.
또한, 상기 제4단계의 결과가 상기 관측대상 어드레스와 현재 프로세서 코어(23)가 사용하는 데이터 메모리(25) 어드레스가 다르면 현재 프로세서 코어(23)가 읽어온 데이터 메모리(25)의 어드레스와 데이터를 호스트 컴퓨터(20)로 출력(ST8)하고 다음 연산에서 현재 프로세서 코어(23)가 사용하는 데이터 메모리(25) 어드레스를 어드레스 비교부(33)에서 비교한다.
또한, 상기 제5단계의 결과가 상기 프로세서 코어(23)가 데이터를 읽어오면 다음 연산에서 현재 프로세서 코어(23)가 사용하는 데이터 메모리(25)의 어드레스를 어드레스 비교부(33)에서 비교(ST7) 한다.
이와 같이 구성 및 동작하는 본 발명을 설명한다.
상기 어드레스 레지스터(32)에서 하나의 데이터를 관측하는 경우는, 디버그 모드 상태에 진입하면 상기 호스트 컴퓨터(20)는 디버거 리셋에 의해 상기 메모리 브레이크 컨트롤러(26)의 메모리 브레이크 컨트롤 레지스터(31)에 MBEF=1, ACF=0, DCF=0 을 주어 초기화를 시키고 상기 데이터 메모리(25)에서 관측할 어드레스를 상기 메모리 브레이크 컨트롤러(26)의 어드레스 레지스터(32)에 저장시킨다.
상기 프로그램 메모리(24)에 저장된 프로그램에 따라 프로세서 코어(23)는 동작하게 되고, 상기 메모리 브레이크 컨트롤러(26)의 어드레스 비교부(33)는 상기 데이터 메모리(25)의 어드레스를 감시하게 된다.
상기 어드레스 비교부(33)가 상기 어드레스 레지스터(32)에 저장되어 관측할 데이터 메모리(25)의 어드레스를 감지하면 상기 어드레스 비교부(33)는 상기 디버거 제어부(21)로 신호(AC=1)를 보내고 상기 디버거 제어부(21)는 상기 데이터 메모리(25)의 어드레스에 대한 데이터를 읽어오는(Read) 것인지, 아니면 상기 데이터 메모리(25)의 어드레스에 데이터를 기록하는(Write) 것인지를 판단한다.
만약, 기록(Write) 상태라면 상기 메모리 브레이크 컨트롤 레지스터(31)는 데이터 체크 플래그를 셋하고(DCF=1) 상기 디버거 제어부(21)로 프로그램의 실행을 중지시키는 신호를 보내게 되고 상기 프로세서 코어(23)는 중지하게 된다.
그러나, 만약 읽어오는(Read) 상태라면 상기 메모리 브레이크 컨트롤 레지스터(31)는 어드레스 트레이스 체크 플래그와 데이터 체크 플래그를 셋(ACF=1, DCF=1)한다. 프로세서 코어(23)가 데이터 메모리(25)의 특정 어드레스의 데이터를 읽어오는 것은 다른 어드레스의 데이터 값과 산술 및 논리적인 연산관계를 가지거나 데이터 메모리(25)의 특정 어드레스와 상관 관계를 가질수 밖에 없다. 따라서 읽어오는 상태에서는 어드레스 트레이스 체크 플래그와 데이터 체크 플래그를 셋(ACF=1, DCF=1) 한 후에, 다시 상기 메모리 브레이크 컨트롤러(26)의 어드레스 비교부(33)는 상기 데이터 메모리(25)의 어드레스를 감시하게 된다.
상기 어드레스 비교부(33)가 상기 어드레스 레지스터(32)에 저장된 관측대상 데이터 메모리(25)의 어드레스를 감지하면 상기 어드레스 비교부(33)는 상기 디버거 제어부(21)로 신호(AC=1)를 보낸다.
만약, 상기 어드레스 비교부(33)의 값이 AC≠1 이면 관측대상 어드레스와 산술적 논리적으로 관련된 데이터 메모리(25)의 다른 어드레스 및 데이터이기 때문에 디버깅 작업을 위해 상기 메모리 브레이크 컨트롤러(26)의 어드레스 비교부(33)에 있는 어드레스와 데이터 비교부(35)에 있는 데이터를 상기 디버거 제어부(21)를 통해 호스트 컴퓨터(20)로 전송한다.
그러나, 만약 상기 어드레스 비교부(33)의 값이 AC=1 이면 이전에 읽어온 관측 대상 어드레스가 사용되는 것이기 때문에 다시 상기 디버거 제어부(21)는 상기 프로세서 코어(23)가 상기 데이터 메모리(25)의 관측 대상 어드레스의 데이터를 읽어오는 (Read) 것인지, 아니면 상기 프로세서 코어(23)가 어떤 데이터 값을 관측대상 어드레스에 기록하는(Write) 것인지를 판단한다.
만약, 읽어오는(Read) 것이면 이전에 읽어온 관측 대상 어드레스 이기 때문에 다시 어드레스를 감지하는 작업으로 돌아간다.
만약, 기록하는(Write) 것이면 이전에 읽어온 관측 대상 어드레스에 어떤 연산에 의한 결과값을 기록하는 것이기 때문에 관측대상 어드레스의 데이터 값이 변하는 것이 되므로 상기 디버거 제어부(21)에 프로세서 코어(23)의 동작을 중단시키는 신호가 전달되고 상기 디버거 제어부(21)는 프로세서 코어(23)의 동작을 중단시키고 프로세서 코어(23)의 제어권을 상기 호스트 컴퓨터(20)로 넘기게 된다.
한 가지 프로그램을 가정해서 동작을 설명하면,
A0 = a
A1 = b
A2 = c
A2 = A0 + ( A1 * A2) 라고 프로그램이 구현되어 있다고 가정한다.
이때 상기의 A0, A1 및 A2는 데이터 메모리(25)의 어드레스이다. 우리는 디버깅을 하기 위해서 상기 데이터 메모리(25)의 어드레스에서 A2번지가 관측대상의 어드레스라고 가정한다.
상기의 프로그램을 디버그 모드에서 실행시키면 상기의 프로그램은 관측대상 어드레스인 A2와 현재 사용중인 어드레스를 비교하면서 실행되다가 3번째 줄에서 A2에 해당하는 데이터값 c를 읽기(Read) 때문에 관측대상 어드레스인 A2를 어드레스 비교부(33)가 감지하게 될 것이며 프로세서 코어(23)는 멈추게 된다. 그 결과로서 A2의 어드레스와 데이터값 c를 상기 호스트 컴퓨터(20)에 전달하게 된다.
그리고, 계속해서 실행시킬 경우 4번째 줄에서 다시 멈추게 될 것이며 우변의 A0, A1 및 A2를 관측대상 어드레스인 A2와 비교하게 될 것이다. A0 및 A1과 관측대상 어드레스를 비교한 후에는 A0 및 A1에 해당하는 어드레스와 데이터값을 호스트 컴퓨터(20)로 전송하고, A2와 비교한 후에는 다시 읽기(Read)인지 기록(Write)인지를 판단하게 되는데 여기서는 읽기(Read)이므로 상기에서 확인된 내용이므로 그냥 지나가게 된다. 상기 4번째 줄의 우변을 비교한 후에는 다시 좌변을 비교하게 되는데 A2를 감지하고 다시 읽기(Read)인지 기록(Write)인지를 판단하게 되는데 여기서는 계산 결과를 기록(Write)하는 것이므로 프로세서 코어(23)는 멈추게 된다.
상기 어드레스 레지스터(32)에서 배열로 구성된 데이터를 관측하는 경우는, 상기 동작 설명에 있어서 상기 메모리 브레이크 컨트롤러(26)의 어드레스 레지스터(32)에 배열의 최상위 어드레스와 최하위 어드레스를 저장하고, 상기 데이터 레지스터(34)에 배열의 데이터를 저장 할수 있는 공간을 설정한 후, 상기 어드레스 비교부(33)에서 상기 어드레스 레지스터(32)에 저장된 배열의 범위와 비교하여 배열의 범위에 해당하는 상기 데이터 메모리(25)의 어드레스를 감지한다. 이후의 동작은 상기 하나의 데이터를 관측하는 경우와 동일한 동작을 수행하게 된다.
이상에서 상세히 설명한 바와 같이 본 발명은 프로세서의 디버깅 작업에 있어서 데이터 메모리의 특정 어드레스의 데이터를 감시하여 데이터의 흐름 및 변화를 감지하기 때문에 디버깅 작업시 시간과 비용을 절약 할수 있는 효과가 있다.

Claims (6)

  1. 프로그램 메모리에 저장된 프로그램에 따라 동작하는 프로세서 코어와;
    디버깅을 수행하는 호스트 컴퓨터로부터 명령을 받아 상기 프로세서 코어를 제어하는 디버거 제어부와;
    상기 디버거 제어부를 통하여 상기 호스트 컴퓨터로부터 브레이크 포인트 어드레스를 받아 상기 프로세서 코어가 사용하는 프로그램 메모리의 어드레스를 관측하고, 동일한 어드레스가 감지되면 디버거 브레이크 포인트로 인식하여 상기 디버거 제어부로 인식 신호를 전달하는 브레이크 포인트 감지부와;
    상기 프로세서 코어의 데이터를 저장하는 데이터 메모리와;
    상기 데이터 메모리의 어드레스와 데이터를 감시하고 해당 어드레스를 감지시 상기 디버거 제어부로 브레이크 신호를 보내어 프로세서 코어의 동작을 중지시키고 해당 어드레스와 데이터를 출력하는 메모리 브레이크 컨트롤러를 포함하여 구성되며,
    여기서, 상기 메모리 브레이크 컨트롤러는,
    데이터가 상기 프로세서 코어에 의해 상기 해당 어드레스로부터 읽어오는 것이면, 상기 브레이크 포인트 어드레스와 동일한 상기 해당 어드레스가 기록될 때까지, 상기 프로세서 코어에 의해 접근되는 데이터 메모리 위치의 상기 해당 어드레스 및 해당 데이터를 상기 호스트 컴퓨터에 출력하는 것을 특징으로 하는 데이터의 천이 상태에 따른 디버깅 장치.
  2. 제1항에 있어서, 상기 메모리 브레이크 컨트롤러는,
    상기 디버거 제어부의 신호에 의해 활성화되는 메모리 브레이크 컨트롤 레지스터와;
    상기 메모리 브레이크 컨트롤 레지스터로부터 관측대상 어드레스를 받아 저장하는 어드레스 레지스터와;
    상기 데이터 메모리로부터 받은 현재 프로세서 코어가 사용하는 데이터 메모리의 어드레스와 상기 어드레스 레지스터에 저장된 관측대상 어드레스를 비교하는 어드레스 비교부와;
    상기 어드레스 레지스터에 저장되어 있는 브레이크 포인트 어드레스의 데이터 값을 저장하는 데이터 레지스터와;
    상기 데이터 메모리로부터 받은 현재 데이터와 상기 데이터 레지스터에 저장되어있는 관측대상 어드레스의 데이터 값을 비교하는 데이터 비교부로 구성된 것을 특징으로 하는 데이터 천이 상태에 따른 디버깅 장치.
  3. 디버거 모드로 전환시, 관측대상 어드레스를 저장하고 현재 프로세서 코어가 사용하는 데이터 메모리 어드레스와 상기 관측대상 어드레스를 비교하는 제1단계와;
    상기 제1단계의 비교결과, 어드레스가 동일하면, 프로세서 코어가 상기 관측대상 어드레스에 해당하는 데이터를 읽어오는 것인지 기록하는 것인지를 판단하는 제2단계와;
    상기 제2단계의 판단결과, 프로세서 코어가 데이터를 읽어오면, 어드레스 트레이스 체크 플래그와 데이터 체크 플래그를 셋하고 프로세서 코어의 동작을 중지시키는 제3단계와;
    상기 제2단계의 판단결과, 프로세서 코어가 데이터를 기록하면, 데이터 체크 플래그를 셋하고 프로세서 코어의 동작을 중지시키는 제4단계로 이루어진 것을 특징으로 하는 데이터 천이 상태에 따른 디버깅 방법.
  4. 제3항에 있어서,
    상기 제3단계에서 어드레스 트레이스 체크 플래그와 데이터 체크 플래그를 셋 한 후, 현재 프로세서 코어가 사용하는 데이터 메모리 어드레스와 관측대상 어드레스를 비교하여 동일하지 않은 경우, 현재 어드레스 레지스터와 데이터 레지스터에 저장된 어드레스와 데이터를 출력시키고, 프로세서 코어가 사용하는 다음 데이터 메모리 어드레스와 관측대상 어드레스를 비교하는 단계를 더 포함하는 것을 특징으로 하는 데이터 천이 상태에 따른 디버깅 방법.
  5. 제3항에 있어서,
    상기 제3단계에서 어드레스 트레이스 체크 플래그와 데이터 체크 플래그를 셋 한 후, 현재 프로세서 코어가 사용하는 데이터 메모리 어드레스와 관측대상 어드레스를 비교하여 동일한 경우, 읽기인지 기록인지를 판단하여 기록이면 프로세서 코어의 동작을 중지시키는 단계를 더 포함하는 것을 특징으로 하는 데이터 천이 상태에 따른 디버깅 방법.
  6. 제5항에 있어서,
    상기 읽기인지 기록인지의 판단 결과, 읽기이면 상기 프로세서 코어가 사용하는 다음 데이터 메모리 어드레스와 관측대상 어드레스를 비교하는 단계를 포함하는 것을 특징으로 하는 데이터 천이 상태에 따른 디버깅 방법.
KR1020010019883A 2001-04-13 2001-04-13 데이터의 천이 상태에 따른 디버깅 장치 및 방법 KR100802606B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020010019883A KR100802606B1 (ko) 2001-04-13 2001-04-13 데이터의 천이 상태에 따른 디버깅 장치 및 방법
US10/058,847 US6934886B2 (en) 2001-04-13 2002-01-25 Debugging apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010019883A KR100802606B1 (ko) 2001-04-13 2001-04-13 데이터의 천이 상태에 따른 디버깅 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20020079163A KR20020079163A (ko) 2002-10-19
KR100802606B1 true KR100802606B1 (ko) 2008-02-13

Family

ID=19708220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010019883A KR100802606B1 (ko) 2001-04-13 2001-04-13 데이터의 천이 상태에 따른 디버깅 장치 및 방법

Country Status (2)

Country Link
US (1) US6934886B2 (ko)
KR (1) KR100802606B1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763490B1 (en) * 2000-09-25 2004-07-13 Agilent Technologies, Inc. Method and apparatus for coordinating program execution in a site controller with pattern execution in a tester
US6857083B2 (en) * 2000-12-18 2005-02-15 International Business Machines Corporation Method and system for triggering a debugging unit
JP3764405B2 (ja) * 2002-05-27 2006-04-05 株式会社東芝 デバッグ装置及びデバッグ方法
KR100952762B1 (ko) * 2003-02-27 2010-04-14 엘지전자 주식회사 디지털 시그널 프로세서의 실시간 디버깅 방법
JP2005070949A (ja) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd プログラム処理装置
US20050060690A1 (en) * 2003-09-15 2005-03-17 Kuo-Jung Tung Microprocessor system with software emulation processed by auxiliary hardware
JP2006164185A (ja) * 2004-12-10 2006-06-22 Matsushita Electric Ind Co Ltd デバッグ装置
US7546585B2 (en) * 2005-01-24 2009-06-09 International Business Machines Corporation Method, system and computer program product for testing computer programs
JP2006268727A (ja) * 2005-03-25 2006-10-05 Seiko Epson Corp 集積回路装置、デバッグシステム、マイクロコンピュータ及び電子機器
US7610517B2 (en) * 2006-09-14 2009-10-27 Innovasic, Inc. Microprocessor with trace functionality
US7689868B2 (en) * 2007-06-22 2010-03-30 Sony Computer Entertainment Inc. Memory handling techniques to facilitate debugging
CN101539767A (zh) * 2008-03-21 2009-09-23 鸿富锦精密工业(深圳)有限公司 可编程控制器的快速侦错方法
US8434057B2 (en) 2010-08-17 2013-04-30 Oracle International Corporation Optimized implementation of breakpoint in java debugger agent
US8572579B2 (en) 2010-08-19 2013-10-29 Oracle International Corporation Break on next called function or method in java debugger agent
JP5252014B2 (ja) * 2011-03-15 2013-07-31 オムロン株式会社 制御装置、制御システム、ツール装置および収集指示プログラム
CN103443776B (zh) * 2011-03-24 2017-02-15 瑞萨电子株式会社 半导体装置
US8726244B2 (en) * 2011-11-09 2014-05-13 Mediatek Singapore Pte. Ltd. Software breakpoint handling by eliminating instruction replacement and execution under certain conditions
CN103514072B (zh) * 2012-06-28 2017-11-10 中兴通讯股份有限公司 一种用于可视化编程的图形化业务的调试方法及装置
CN104346274B (zh) * 2013-07-29 2017-06-06 国际商业机器公司 程序调试器及一种程序的调试方法
CN107645398A (zh) * 2016-07-22 2018-01-30 北京金山云网络技术有限公司 一种诊断网络性能和故障的方法和装置
JP6744806B2 (ja) * 2016-11-28 2020-08-19 ルネサスエレクトロニクス株式会社 マルチプロセッサ
US10949203B2 (en) * 2019-06-29 2021-03-16 Intel Corporation Technologies for ensuring functional safety of an electronic device
CN112098770A (zh) * 2020-08-20 2020-12-18 深圳市宏旺微电子有限公司 针对动态耦合故障模拟极端环境下的测试方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884023A (en) * 1995-12-14 1999-03-16 Texas Instruments Incorporated Method for testing an integrated circuit with user definable trace function

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6682822B2 (en) * 1999-05-27 2004-01-27 Exxon Mobil Oil Corporation Multilayer polymeric film
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
US20020188813A1 (en) * 2001-05-04 2002-12-12 Hugo Cheung On-chip hardware breakpoint generator with comprehensive memory operation detection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884023A (en) * 1995-12-14 1999-03-16 Texas Instruments Incorporated Method for testing an integrated circuit with user definable trace function

Also Published As

Publication number Publication date
US20020152427A1 (en) 2002-10-17
KR20020079163A (ko) 2002-10-19
US6934886B2 (en) 2005-08-23

Similar Documents

Publication Publication Date Title
KR100802606B1 (ko) 데이터의 천이 상태에 따른 디버깅 장치 및 방법
JP5905911B2 (ja) シングルステップ実行を用いる診断コード
US20020144235A1 (en) Debugging embedded systems
US20240012727A1 (en) Processor with debug pipeline
US20090063907A1 (en) Debugging system, debugging apparatus and method
US20070226418A1 (en) Processor and method for controlling processor
US20100122072A1 (en) Debugging system, debugging method, debugging control method, and debugging control program
US5257269A (en) Error controller for use in debugging microprocessor
US5930470A (en) Debugging system and debugging method
US20050060690A1 (en) Microprocessor system with software emulation processed by auxiliary hardware
EP3572943B1 (en) Semiconductor device and debug method
US20030037257A1 (en) Debugging device
CN100403275C (zh) 应用于固件程序除错的微处理器与方法
US7299386B2 (en) Apparatus and method for detecting address characteristics for use with a trigger generation unit in a target processor
JPH10254738A (ja) エミュレータ装置及びエミュレーション方法
KR100285976B1 (ko) 에뮬레이션장치
US5838952A (en) Emulator apparatus to break running program when variable is read without being initialized
JP4892406B2 (ja) 情報処理装置のトランザクション管理方法及び情報処理装置
GB2393272A (en) Controlling performance counters within a data processing system
KR950001057B1 (ko) 마이크로 프로세서(micro processor)
EP0525672A2 (en) Microprocessor with program tracing
JPH10228395A (ja) 制御用コントローラの異常診断装置
JPS63204327A (ja) 未定義命令検出制御システム
JP2004272679A (ja) デバッグ装置およびデバッグ方法
JP2734382B2 (ja) インサーキットエミュレータおよびそのデバッグ方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130128

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140124

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150128

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160122

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170113

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee