KR20030058130A - 프로세서의 실시간 디버깅 장치 - Google Patents

프로세서의 실시간 디버깅 장치 Download PDF

Info

Publication number
KR20030058130A
KR20030058130A KR1020010088517A KR20010088517A KR20030058130A KR 20030058130 A KR20030058130 A KR 20030058130A KR 1020010088517 A KR1020010088517 A KR 1020010088517A KR 20010088517 A KR20010088517 A KR 20010088517A KR 20030058130 A KR20030058130 A KR 20030058130A
Authority
KR
South Korea
Prior art keywords
debugging
clock
control unit
signal
clock signal
Prior art date
Application number
KR1020010088517A
Other languages
English (en)
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 KR1020010088517A priority Critical patent/KR20030058130A/ko
Publication of KR20030058130A publication Critical patent/KR20030058130A/ko

Links

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/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

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

Abstract

본 발명은 프로세서의 실시간 디버깅 장치에 관한 것으로, 종래 프로세서를 실시간으로 디버깅할 수 있는 실리콘 디버그 기술은 특정한 시점에서 프로세서의 상태를 관찰하여 디버깅을 수행할 수 있으나, 스텝명령을 지원하지 않아 프로세서의 명령어 각각을 테스트할 수 없어 그 사용효율이 저하되는 문제점이 있었다. 이와 같은 문제점을 감안한 본 발명은 호스트 컴퓨터의 스텝명령에 따라 디버깅에 사용될 테스트 클럭과 정상모드로의 귀환을 제어하는 디버깅 완료신호를 출력함과 아울러 그 스텝명령의 인가에 따른 스텝 플래그를 출력하는 디버깅 제어부와; 상기 디버깅 제어부로 부터 테스트 클럭과 디버깅 완료신호를 인가받음과 아울러 메인 클럭신호를 인가받아, 입력되는 테스트 모드신호에 따라 테스트 모드 클럭신호를 출력하거나, 정상 모드 클럭신호를 출력하는 클럭제어부와; 상기 디버깅 제어부로 부터 스텝 플래그가 인가되는 동안 어셈블리 명령어를 판단하여, 그 어셈블리 명령어가 인가되기 전 시점에서 상기 테스트 모드신호를 클럭제어부로 출력함과 아울러 그 클럭제어부의 테스트 모드 클럭신호에 따라 어셈블리 명령어 단위의 디버깅을 수행하는 디코더로 구성하여, 스텝명령에 따라 각 어셈블리 명령어 단위로 실시간 디버깅이 이루어지도록 함으로써, 그 디버깅 효율을 높임과 아울러 그 디버깅의 신뢰성을 향상시키는 효과가 있다.

Description

프로세서의 실시간 디버깅 장치{REAL TIME DEBUGING APPARATUS FOR PROCESSOR}
본 발명은 프로세서의 실시간 디버깅 장치에 관한 것으로, 특히 스텝명령을 사용하여 어셈블리 명령어를 하나의 단위씩 관찰할 수 있도록 하는 프로세서의 실시간 디버깅장치에 관한 것이다.
일반적으로, 스텝명령은 어셈블리 명령어를 하나씩 처리하도록 하는 명령이다. 이 스템명령은 다수의 어셈블리 명령어를 하나씩 단계적으로 수행되도록 하여, 디버깅시 각 명령단계마다의 테스트를 통해 디버그를 보다 용이하게 수행할 수 있도록 한다.
최근 MPU 계통의 복잡도 증가 및 속도의 증가에 의해 내장된 소프트웨어의 프로그램을 디버깅하는데 많은 어려움이 있다.
이는 개발당시 시뮬레이터 등으로 디버깅하는 과정은 비교적 용이하다 할 수 있으나, 실제 제품을 생산한 후 예측하지 못한 버그가 발생할 수 있어, 제품의 개발 후에도 실시간 디버깅이 필요하다.
이와 같이 실시간 디버깅을 위해 실리콘 디버그(SILICON DEBUG) 기술에 대한 연구가 활발하게 진행되고 있다.
상기 실리콘 디버그는 실시간 처리 도중에 프로그램을 디버깅하는 것이 가능한 기술로서, 시뮬레이터에서와 실제 프로세서의 차이에 의해 발생하는 문제점을 해결할 수 있으며, 이에 따라 디버깅 시간과 비용을 줄일 수 있는 기술이다.
또한, 새로운 프로세서를 개발하는데 드는 비용과 시간을 줄일 수 있다.
그러나, 상기 실리콘 디버그는 특정한 시점에서의 프로세서 상태를 관찰 할 수 있도록 하는 것이며, 프로세서에 내장된 명령 각각을 테스트하여 디버깅할 수 있는 스텝명령을 지원하지 않는다.
이에 따라 보다 정확한 디버깅을 위해 스텝명령을 지원할 수 있는 프로세서 디버깅 장치가 요구되고 있다.
상기한 바와 같이 종래 프로세서를 실시간으로 디버깅할 수 있는 실리콘 디버그 기술은 특정한 시점에서 프로세서의 상태를 관찰하여 디버깅을 수행할 수 있으나, 스텝명령을 지원하지 않아 프로세서의 명령어 각각을 테스트할 수 없어 그 사용효율이 저하되는 문제점이 있었다.
이와 같은 문제점을 감안한 본 발명은 하나의 어셈블리 명령어 만을 수행시키는 스텝명령을 사용하여 어셈블리 명령어 각각에 대한 프로세서의 디버깅을 수행할 수 있도록 하는 프로세서의 디버깅 장치를 제공함에 그 목적이 있다.
도1은 본 발명 프로세서의 실시간 디버깅 장치의 구성도.
도2는 도1에서 사용되는 신호의 파형도.
** 도면의 주요 부분에 대한 부호의 설명 **
10:호스트 컴퓨터20:프로세서
21:디버깅 제어부22:클럭제어부
23:디코더
상기와 같은 목적은 디버깅시 어셈블리 명령어의 상태를 검출하여, 그 검출결과에 따리 디버깅모드와 정상모드를 절환하여 동작하도록 클럭신호를 제어하고, 그 클럭신호에 따라 어셈블리 명령어 각각에 대한 테스트를 수행하고, 그 결과를 표시함으로써 달성되는 것으로, 이와 같은 본 발명을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도1은 본 발명 프로세서의 디버깅 장치의 블록도로서, 이에 도시한 바와 같이 호스트 컴퓨터(10)로 부터 제어명령을 인가받고, 저장된 프로그램에 따라 그 제어명령에 대한 각 기기의 동작을 제어하며, 디버깅을 수행하고, 그 상태를 상기 호스트 컴퓨터(10)로 전송하는 마이크로 프로세서(20)에서, 상기 마이크로 프로세서(20)에 포함되며, 상기 호스트 컴퓨터(10)의 제어명령을 인가받아 디버깅시 테스트 클럭신호(TCLK)를 출력하고, 디버깅이 완료되면 디버깅 완료신호(HALT_END)를 출력함과 아울러 스텝명령에 따라 스텝 플래그(STEP_FLAG)를 출력하는 디버깅 제어부(21)와; 상기 디버깅 제어부(21)의 테스트 클럭신호(TCLK)와 디버깅 완료신호(HALT_END)에 따라 메인 클럭신호(CLK)를 변환하여 디버그 클럭(DEBUG_CLK) 및 정상 클럭신호(NORMAL_CLK)를 출력하는 클럭제어부(22)와; 상기 클럭제어부(22)의 출력클럭신호와 디버깅 제어부(21)의 스텝플래그(STEP_FLAG)를 인가받아 어셈블리 명령어를 디코딩하여 출력함과 아울러 그 어셈블리 명령어의 상태에 따라 디버그 모드 신호(DEBUG_MODE_IN) 디코더(23)로 구성된다.
이하, 상기와 같이 구성된 본 발명을 좀 더 상세히 설명한다.
먼저, 프로세서를 정상동작시키기 위해 호스트 컴퓨터(10)에서는 상기 프로세서의 정상동작에 해당하는 명령을 하달한다.
그 다음, 상기 호스트 컴퓨터(10)로 부터 정상동작의 명령을 인가받은 디버깅 제어부(21)는 테스트 클럭신호(TCLK), 디버깅 완료신호(HALT_END)를 출력하지 않으며, 스텝 플래그(STEP_FLAG)도 출력하지 않는다.
그 다음, 상기 클럭제어부(22)는 메인 클럭신호(CLK)를 입력받아 정상 클럭신호(NORMAL_CLK)를 발생시켜, 이를 디코더(23)에 입력시킴으로써, 정상적인 프로세서의 동작이 이루어지도록 한다.
이때, 정상 클럭신호(NORMAL_CLK)는 메인클럭신호(CLK)와 동일하며, 상기 디버깅 제어부(21)에서 출력되는 테스트 클럭신호(TCLK)는 상기 클럭신호의 두배의 주파수를 가지는 신호로 출력된다.
상기와 같은 프로세서의 정상 동작 상태에서 호스트 컴퓨터(10)에서 하나의 어셈블리 명령어에 대한 디버깅을 수행하라는 스텝 명령이 입력되면, 디버깅 제어부(20)는 도2에 도시한 바와 같이 메인클럭신호(CLK)의 1/2의 주파수를 가지는 테스트 클럭신호(TCLK)와 디버깅 완료신호(HALT_END)를 상기 클럭제어부(22)로 출력함과 아울러 스텝 플래그(STEP_FLAG)를 상기 디코더(23)로 출력한다.
그 다음, 상기 디코더(23)는 상기 스텝 플래그(STEP_FLAG)에 의해 어셈블리 명령어를 수행한다.
상기 디코더(23)는 그 어셈블리 명령어를 수행하면서, 그 어셈블리 명령어의 상태를 검사한다.
어셈블리 명령어를 하나의 단위로 상기 도2에서 INSTRUCTION STATUS가 1이 되면, 디코더(23)는 디버그 모드신호(DEBUG_MODE_IN)을 고전위로 출력한다.
이때, 상기 디버그 모드신호(DEBUG_MODE_IN)는 클럭제어부(22)의 동작모드를 변경하는 신호이며, 이 신호의 발생에 의해 일반 모드에서 디버깅 모드로 변환된다.
즉, 어셈블리 명령어를 하나의 명령어 단위로 디버깅하기 위하여 어셈블리명령어의 수행을 시작하기 전에 상기 디버그 모드신호(DEBUG_MODE_IN)를 발생시켜, 어셈블리 명령어 단위의 디버깅을 수행한다.
또한, 상기 어셈블리 명령어는 각각에 대하여 명령어를 수행해야 할 클럭 사이클을 가진다. 이는 하나의 사이클일 수도 있고, 상기 도2에 도시한 바와 같이 2개의 클럭 사이클 또는 그 이상의 클럭 사이클 동안 하나의 어셈블리 명령어를 처리하게 된다.
이와 같은 어셈블리 명령어 처리 사이클을 구분하기 위해 유한 상태기를 가지고 있으며, 유한 상태기의 상태를 나타내는 새로운 명령어가 시작되기 전에 상기 디버그 모드신호(DEBUG_MODE_IN)를 발생시켜 명령어 단위의 디버깅이 이루어질 수 있도록 한다.
즉, 상기 디코더(23)의 디버깅 모드신호(DEBUG_MODE_IN)는 외부에서 입력되는 스텝 플래그(STEP_FLAG)가 인가되는 동안에, 마이크로 프로세서의 명령어 상태를 감지하여 스텝이나, 브레이크 포인터가 있는 경우 발생하게 된다.
상기 클럭제어부(22)는 상기 디버거 제어부(21)로 부터 테스트 클럭신호(TCLK)와 디버깅 완료신호(HALT_END)를 입력받아 디버그 클럭신호(DEBUG_CLK)를 테스트 클럭신호(TCLK)와 동일하게 생성하여 출력하며, 정상 클럭신호(NORMAL_CLK)에 메인 클럭신호(CLK)를 인가하지 않은 상태의 출력신호를 출력한다.
이 상태에서 상기 디버그 모드로 동작하라는 디코더(23)의 디버깅 모드신호(DEBUG_MODE_IN)이 인가되는 시점에서는 디버깅 클럭신호(DEBUG_CLK)의 입력을 중지하고, 그 디버깅 모드신호(DEBUG_MODE_IN)의 사이 구간에서는 상기 디버깅 클럭신호(DEBUG_CLK)와 정상 클럭신호(NORMAL_CLK)를 각각 메인 클럭신호(CLK)와 동일한 상태로 출력한다.
상기 디버그 모드에서 클럭제어부(22)는 디버깅 클럭신호(DEBUG_CLK)를 테스트 클럭신호(TCLK)와 동일하게 출력하고, 그 디버깅 클럭신호(DEBUG_CLK)를 인가받은 디코더(23)는 어셈블리 명령어를 하나의 단위로 처리함과 아울러 다음 처리할 명령어가 시작되기 전에 다시 클럭제어부(22)가 디버깅 모드로 동작할 수 있도록 하는 디버깅 모드신호(DEBUG_MODE_IN)를 발생시킨다.
또한, 상기 디버거 제어부(21)는 상기 각 어셈블리 명령어에 대한 테스트를 수행하고, 그 결과를 상기 호스트 컴퓨터(10)로 전송하여 사용자가 버그의 발생을 검사할 수 있도록 하며, 버그가 있는 경우 디버깅을 수행할 수 있도록 한다.
상기와 같은 과정을 통해 호스트 컴퓨터(10)로 부터 스텝명령이 전달되면, 프로세서의 클럭신호를 디버깅에 필요한 클럭신호로 변환시킴과 아울러 그 디버깅에 필요한 클럭신호를 인가받아 어셈블리 명령어를 처리하는 디코더에서 그 어셈블리 명령어 각각에 대한 디버깅을 수행할 수 있도록 그 디버깅에 필요한 클럭신호의 인가를 제어할 수 있도록 함으로써, 디버깅의 수행시 스텝명령에 따라 어셈블리 명령어 각각에 대한 디버깅이 이루어질 수 있다.
상기한 바와 같이 본 발명 프로세서의 실시간 디버깅 장치는 스텝명령에 따라 각 어셈블리 명령어 단위로 실시간 디버깅이 이루어지도록 함으로써, 그 디버깅효율을 높임과 아울러 그 디버깅의 신뢰성을 향상시키는 효과가 있다.

Claims (1)

  1. 호스트 컴퓨터의 스텝명령에 따라 디버깅에 사용될 테스트 클럭과 정상모드로의 귀환을 제어하는 디버깅 완료신호를 출력함과 아울러 그 스텝명령의 인가에 따른 스텝 플래그를 출력하는 디버깅 제어부와; 상기 디버깅 제어부로 부터 테스트 클럭과 디버깅 완료신호를 인가받음과 아울러 메인 클럭신호를 인가받아, 입력되는 테스트 모드신호에 따라 테스트 모드 클럭신호를 출력하거나, 정상 모드 클럭신호를 출력하는 클럭제어부와; 상기 디버깅 제어부로 부터 스텝 플래그가 인가되는 동안 어셈블리 명령어를 판단하여, 그 어셈블리 명령어가 인가되기 전 시점에서 상기 테스트 모드신호를 클럭제어부로 출력함과 아울러 그 클럭제어부의 테스트 모드 클럭신호에 따라 어셈블리 명령어 단위의 디버깅을 수행하는 디코더로 구성하여 된 것을 특징으로 하는 프로세서의 실시간 디버깅 장치.
KR1020010088517A 2001-12-29 2001-12-29 프로세서의 실시간 디버깅 장치 KR20030058130A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010088517A KR20030058130A (ko) 2001-12-29 2001-12-29 프로세서의 실시간 디버깅 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010088517A KR20030058130A (ko) 2001-12-29 2001-12-29 프로세서의 실시간 디버깅 장치

Publications (1)

Publication Number Publication Date
KR20030058130A true KR20030058130A (ko) 2003-07-07

Family

ID=32216060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010088517A KR20030058130A (ko) 2001-12-29 2001-12-29 프로세서의 실시간 디버깅 장치

Country Status (1)

Country Link
KR (1) KR20030058130A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298587B2 (en) 2012-05-22 2016-03-29 Samsung Electronics Co., Ltd. Integrated circuit including clock controlled debugging circuit and system-on-chip including the same
WO2019199378A1 (en) * 2018-04-10 2019-10-17 Advanced Micro Devices, Inc. Method of debugging a processor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298587B2 (en) 2012-05-22 2016-03-29 Samsung Electronics Co., Ltd. Integrated circuit including clock controlled debugging circuit and system-on-chip including the same
WO2019199378A1 (en) * 2018-04-10 2019-10-17 Advanced Micro Devices, Inc. Method of debugging a processor
US10534881B2 (en) 2018-04-10 2020-01-14 Advanced Micro Devices, Inc. Method of debugging a processor
CN112136116A (zh) * 2018-04-10 2020-12-25 超威半导体公司 调试处理器的方法
US11093676B2 (en) 2018-04-10 2021-08-17 Advanced Micro Devices, Inc. Method of debugging a processor
CN112136116B (zh) * 2018-04-10 2023-05-16 超威半导体公司 调试处理器的方法

Similar Documents

Publication Publication Date Title
US6385742B1 (en) Microprocessor debugging mechanism employing scan interface
US6598178B1 (en) Peripheral breakpoint signaler
US20080312900A1 (en) Simulation apparatus and simulation method
US9852038B2 (en) Debugging system and debugging method of multi-core processor
JPH0728670A (ja) 情報処理装置
KR20030058130A (ko) 프로세서의 실시간 디버깅 장치
JPH1078887A (ja) デバッグシステム及びデバッグ方法
CN100403275C (zh) 应用于固件程序除错的微处理器与方法
CN111858305B (zh) 一种仪表故障在线诊断方法及装置
JP2019204388A (ja) 半導体装置、およびデバッグ方法
KR100386820B1 (ko) 반도체 시험 장치의 프로그램 실행 시스템
JP3358123B2 (ja) コントローラの入出力シミュレート方法および装置
JPS59202548A (ja) デバツグ装置
JPS62264341A (ja) マイクロプログラム・デバツグ装置
JP2000250779A (ja) プログラマブルコントローラ
JPH01131934A (ja) 動的シングルクロツクトレース方式
JPH03175539A (ja) デバッグ用マイクロプロセッサ
JPH01286323A (ja) 集積回路
KR20030082319A (ko) 프로세서의 디버깅 장치 및 방법
JP2000284989A (ja) デバッグ装置
JPH03286342A (ja) タイミング発生装置及びそれを用いた擬似プロセッサ装置
JPH05173830A (ja) 異常動作検出方法、及びエミュレータ
KR20050095981A (ko) 내부동작 모니터링 기능을 갖는 마이크로 컨트롤러 및 그방법
KR20040073127A (ko) 프로토타이핑 보드의 클럭 동기화 장치 및 방법
JPH05189267A (ja) マイクロプロセッサの動作制御方式、及びエミュレータ

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination