KR920003909B1 - 디버깅지원회로 - Google Patents

디버깅지원회로 Download PDF

Info

Publication number
KR920003909B1
KR920003909B1 KR1019880003124A KR880003124A KR920003909B1 KR 920003909 B1 KR920003909 B1 KR 920003909B1 KR 1019880003124 A KR1019880003124 A KR 1019880003124A KR 880003124 A KR880003124 A KR 880003124A KR 920003909 B1 KR920003909 B1 KR 920003909B1
Authority
KR
South Korea
Prior art keywords
signal
debugging
instructions
circuit
executed
Prior art date
Application number
KR1019880003124A
Other languages
English (en)
Other versions
KR880011661A (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 KR880011661A publication Critical patent/KR880011661A/ko
Application granted granted Critical
Publication of KR920003909B1 publication Critical patent/KR920003909B1/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

Landscapes

  • Engineering & Computer Science (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

디버깅지원회로
제 1 도는 본 발명에 따른 디버깅지원회로의 구성을 도시해 놓은 개략도.
제 2 도는 제 1 도에 도시된 회로의 동작을 설명하기 위한 타이밍챠트.
제 3 도는 본 발명의 디버깅지원회로가 갖추어진 프로세서를 도시해 놓은 도면이다.
* 도면의 주요부분에 대한 부호의 설명
1 : 래치 2 : 계수기
3 : 비교기 4 : 플립플롭
5,6 : 오아회로 100 : 디버깅지원회로
200 : 프로세서 201 : 레지스터
202 : 디코더 203 : 시이켄서
204 : 메모리 205 : 실행부
206 : 레지스터 300 : 메모리
[산업상의 이용분야]
본 발명은 소프트웨어의 디버깅을 지원하기 위해 프로세서에 갖추어진 하드웨어인 디버깅 지원회로에 관한 것이다.
[종래의 기술 및 그 문제점]
최근, 정보처리분야가 발전하면서 이 분야에서 사용되는 소프트웨어 및 시스템의 범위와 복잡성이 증가되어 왔는 바, 이러한 크고 복잡한 시스템에 있어서는 그 발전단계에 있어서, 소프트웨어에 에러가 혼입되어 있을 수 있다는 큰 부담이 있었기 때문에 그 혼입되게 되는 에러를 피하기 위해 소프트웨어 설계에 적용되는 각종 개념과 많은 방법에 제안되어 왔지만 그 에러를 완전히 제거한다는 것은 불가능하였다. 따라서, 소프트웨어를 가동하는 동안의 소프트웨어에 대한 디버깅(debugging)이 피할 수 없는 과정으로 되게 되었는바, 이러한 디버깅도 복잡한 소프트웨어의 경우에는 수행하기가 용이하지 않았다.
일반적으로, 디버깅지원도구가 없는 상황에서는 디버그의 대상으로 되는 소프트웨어중에 디버깅루틴을 개입시키는 보오더 섬방법(bother some method)이 있었지만 정밀하게 디버깅을 수행하기에는 부적당하였다.
또한, 디버거의 대상으로 되는 소프트웨어의 실행을 소프트웨어로 제어해 주는 소프트웨어 디버깅단이 유용하지만 이는 디버깅을 완전하게 수행하는데 오랜시간이 걸리게 되므로 디버깅효율이 저하되게 된다.
한편, 디버깅 프로세서를 하드웨어로 지원하는 것이 고려되었는바, 이러한 고려중 한가지 방법은 프로세서의 본체는 변형시키지 않으면서 내부버스등의 감시로 프로세서의 동작을 체크하여 적당한 시간에서 디버깅 소프트웨어를 실행하기 위한 내부인터럽트를 발생시키는 것이 있었다.
그러나, 최근 고기능프로세서에서는 명령 및 데이터의 독출을 행하는 것과, 파이프라인구조가 채용된 것과 같은 진보된 것등에 의해 프로세서에 의해 실행되는 명령의 상태를 외부로부터 체크한다는 것은 어려운 일로 되었기 때문에 적당한 시간에서 명령의 실행을 중지시키는 것이 용이하지않게 되었다. 따라서 이러한 문제를 해결하기 위해, 프로세서본체에 디버깅지원기능을 추가하는 것이 제안되어 있는바, 이것의 대표적인 기능은 프로세서에 의해 실행되는 매 명령마다 명령실행을 정지시키는 인터럽트를 발생시키고 미리 정해진 디버깅 소프트웨어의 실행을 시작하는 싱글 스텝기능(single step function)으로, 이 방법에서는 상기 디버깅 소프트웨어는 인터럽트순간에 레지스터 및 메모리의 내용을 독출하거나 그들에게 적당한 값을 기록하게 된다. 따라서, 소프트웨어가 변화되는 일이 없이 소프트웨어에 대해 세밀하게 디버그를 실행할 수 있게 됨으로써 디버깅작업의 효율을 증진시킬 수 있게 된다.
그렇지만, 실제의 디버깅작업에 있어서는, 매 명령마다 실행을 정지시킬 필요없이 몇개의 명령을 인터럽트없이 연속적으로 실행하는 것이 요구되는 바, 종래의 싱글 스텝방법에서는 이러한 경우에도 항상 매 명령마다 명령실행중지를 발생시키도록 되어 있기때문에 디버깅 소프트웨어는 명령실행동안에 적당한 시간이 얻어지게 될 때까지 실행되는 명령의 실행횟수를 계수해야만 하게 되고, 이로 인해 소프트웨어가 지속적으로 실행되는 것에 비해 인터럽트를 발생시키기 위한 시간만큼 많은 시간이 걸리게 되었다. 따라서, 단지 실행되는 명령의 수를 계수하기 위해 인터럽트가 반복적으로 발생하게 되는 상기 방법에 있어서는 시간의 낭비와 저효율을 초래하게 되었다.
즉, 상기한 바와같이 종래의 시스템에 있어서는 미리 정해진 횟수의 명령이 실행된 후에 일단정지를 효과적으로 발생시키는 것이 용이하지 않았다.
[발명의 목적]
이에, 본 발명은 상기한 문제점을 감안해서 발명된 것으로, 명령에 따라 실행되게 되는 명령의 횟수를 지정해서 실행된 명령의 수가 상기 지정된 횟수에 도달된 경우에는 내부인터럽트를 발생시켜서 디버깅 소프트웨어를 실행하도록 해주는 회로인 디버깅처리 소프트웨어를 지원하는 회로를 제공함에 그 목적이 있다.
[발명의 구성]
상기 목적을 달성하기 위한 본 발명에 따른 소프트웨어 디버깅지원 회로는 인터럽션이 발생하게 될 때까지 지속적으로 실행되게 되는 명령의 수를 지정해 주는 메모리장치와, 실행된 명령의 횟수가 지정된 횟수에 도달되었는지의 여부를 판정해 주는 판정회로 및 상기 판정의 결과에 따라 내부인터럽션을 발생하게 해 주는 회로가 갖추어진 구성으로 되어 있다.
[작 용]
즉, 본 발명에 따르면 디버그의 대상으로 되는 일련의 명령을 실행하기 전에 명령에 따라 명령의 횟수를 기억장치에 기억시켜 놓고, 각 일련의 명령이 실행될 때마다 실행된 명령의 횟수가 지정된 횟수에 도달하게 되었는지의 여부를 판정하게 되는 바, 이때 이러한 판정에 의해 실행된 명령의 횟수가 지정된 수에 도달했다고 판정된 경우에는 이것을 알려주기 위한 내부인터럽션이 발생하게 되어 내부인터럽션이 발생하게 됨과 동시에 시작하게 되는 디버깅 소프트웨어가 셋팅되게 됨으로써, 지정된 수의 명령의 실행이 완료된 후 일련의 명령실행이 인터럽트된 경우에 디버깅처리가 실행되게 된다.
[실시예]
이하, 도면을 참조해서 본 발명의 실시예를 상세히 설명한다.
제 1 도는 본 발명의 1실시예에 따른 디버깅지원회로를 도시해 놓은 개략도로서, 래치(1)는 초기화신호(INIT ; 102)가 인가되게 되면 명령실행횟수를 특정하는 횟수지정신호(NDAT ; 101)를 입력하게 되고, 계수기(2)는 명령실행신호(EX ; 103)가 인가될 때마다 그 계수값을 1씩 증가시키게 되는 한편, 그것의 단자(CLR)에 "1"이 입력되게 되면 상기 값을 "0"으로 클리어시키게 되며, 비교기(2)는 상기 래치(1)의 값(11)과 계수기(2)의 값(21)을 비교해서 상기 값(11,12)이 서로 일치하는 경우에 검출신호(31)를 "1"로 해주게 된다. 또 비교기(3)의 검출신호(31)는 플립플롭(4)의 단자(S)에 인가되게 되는 바, 이 플립플롭(4)은 단자(S)로의 입력이 "1"로 될 때 단자(Q)로부터 "1"을 출력하는 한편, 다른 입력단자(R)로 "1"이 입력되는 경우에는 단자(Q)로부터 "0"을 출력하게 된다. 이어, 상기 플립플롭(4)의 단자(Q)는 인터럽트신호(INTR ; 105)를 직접 출력해 주는 바, 이때 상기신호(105)가 "1"인 경우에는 인터럽션이 발생된 것을 나타낸다.
한편, 이 인터럽션이 인터럽션처리장치[이것을 후술하는 제 3 도에 나타낸 EXU(205)중의 일부에 설치되어 있는 유니트이다]에 의해 인식되게 되면 인터럽션처리장치는 오아회로(6)를 통해 상기 플립플롭(4)의 리셋트단자(R)에 "1"이라는 인터럽트인식신호(104 ; Ack)를 인가해서 인터럽트신호(105)를 리셋트시키게 된다. 또한, 상기 오아회로(6)의 다른 한 입력은 초기화신호(102 ; INIT)가 인가되는 선에 접속되어 초기화시에 플립플롭(4)을 리셋트시키게 된다.
그리고, 오아회로(5)의 입력단자는 상기 인터럽트신호(105)선과 초기화신호(102)선에 각각 접속됨과 더불어 그것의 출력단자는 계수기(2)의 단자(CLR)에 접속되게 됨으로써 계수기(2)는 인터럽션이나 초기화시에 클리어되게 된다.
제 2 도는 제 1 도에 도시된 1실시예에 따른 회로동작을 설명하기 위한 타이밍챠트로, 신호의 각 상태는 타이밍챠트로 도시되어 있다.
횟수지정신호(101)는 실행되는 명령의 수를 지정한 NDAT=n("n"은 1이상의 정수)으로 설정되어 있는 것으로, 여기서 초기화신호(102)를 "1"로 셋트하게 되면 이 "1"로 셋트된 신호는 오아회로(5)를 통해서 계수기(2)의 단자(CLR)에 전송되게 됨으로써 계수기(2)는 "0"으로 셋트되게 된다. 이때 랫치(1)의 입력신호가 출력으로 전송됨과 동시에 플립플롭(4)의 단자(R)에 오아회로(6)를 통해서 "1"이 인가되게 됨으로써 상기 플립플롭(4)은 리셋트되어 인터럽트신호(105)는 "0"으로 되게 된다. 이어, 초기화신호(102)가 "0"으로 셋트되게 되면 래치(1)에 지정번호가 축적되게 됨으로써완료되게 된다.
한편, 하나의 명령실행이 완료되게 되면 명령실행신호(103)는 "0"에서 "1"로 바뀌게 되고 계수기(2)의 값은 1씩 증가하게 되는데, 이와같이 해서 계수기(2)의 값이 래치(1)에 축적되어 있던 값인 "n"과 같아지게 되면 비교기(3)는 계수기(2)의 값과 래치(1)의 값이 같음을 검출해서 "1"이라는 검출신호(31)를 출력하여 플립플롭(4)을 셋트시키게 되는 바, 이에따라 인터럽트신호(105)가 "1"로 되어 인터럽션이 발생하게 된다. 또한, 인터럽트신호(105)는 OR회로(5)를 통해서 계수기(2)의 단자(CLR)에 전송되어 계수기(2)를 다시 클리어시킴으로써 계수기(2)의 값은 "0"으로 되게 되고, 이에 따라 비교기(3)의 검출신호(31)도 다시 "0"으로 되게 된다.
한편, 인터럽션처리장치는 인터럽션신호(105)가 예컨대 "1"로 되어 있는 것에 의해 인터럽션이 발생한 것을 인식해서 디버깅 소프트웨어가 실행될 수 있게 한다. 또, 인터럽션을 인식한 후에 인터럽션처리장치가 인식신호(104)를 "1"로 셋트시켜 주게되면 이 인식신호(104)는 OR회로(6)를 통해서 플립플롭(4)의 단자(R)에 인가되어 플립플롭(4)을 리셋트시키게 됨으로써 인터럽트신호(105)는 다시 "0"으로 되게 된다.
여기서, 인터럽션처리장치의 동작은 통상의 인터럽션처리장치와 동일하므로 그 설명은 생략한다.
또한, 이 회로의 상태는 상기 플립플롭(4)이 인식신호(104)에 의해 리셋트될 경우에 초기상태로 돌아가게 되는 바, 이에따라 명령실행신호(103)는 하나의 명령이 실행될 때 1로 셋트되게 되는 상기한 동작상태로 돌아가게 된다.
제 3 도에 본 발명에 따른 디버깅지원회로(102)가 갖추어진 LSI프로세서의 일례를 도시해 놓은 것으로, 프로세서(200)는 메모리(300)에 기억 되어 있던 명령을 연속적으로 꺼내어 이들을 레지스터(IR ; 201)에 축적시키고 마이크로프로그램(microprogram)의 제어에 따라 명령을 실행하게 된다. 이어, 레지스터(201)에 축적된 각 명령은 디코더(202)에 의해 분해된 후 시이켄서(203)를 구동시키게 되는 바, 시이켄서(sequencer ; 203)는 입력된 명령 대응되는 마이크로 루틴(micro routine)을 마이크로프로그램 메모리(204)로부터 순차 독출해서 실행부(205)에서 실행하게 된다.
한편, 디버깅지원회로(100)는 상기 메모리(300)에 축적된 디버깅 프로그램에 포함된 특정명령에 의해 초기화되게 되는바, 이 특정정보가 레지스터(201)에 셋트되게 되면 시이켄서(203)는 마이크로 루틴을 마이크로프로그램 메모리(204)로부터 독출해서 실행된(NDAT) 명령의 횟수를 셋트시킨다. 또한, 실행부(205)는 마이크로 루틴에 따라서 데이터(NDAT)를 디버깅지원회로(100)에 공급함과 더불어 초기화신호(INIT)를 공급해준다.
이후, 사용자프로그램이 시작되어 이 사용자프로그램의 명령에 대응되는 마이크로 루틴이 실행되게 되고, 이어 각 마이크로 루틴의 END 명령이 실행되게 되면 실행부(205)는 명령실행신호(EX)를 디버깅지원회로(100)에 공급해 주게 된다.
이어, 사용자프로그램에 의해 실행된 명령의 횟수가 지정횟수에 도달하게 되면 상기 디버깅지원회로(100)는 인터럽트신호(INTR)를 출력시켜서 레지스터(ER-REG ; 206)에 지정된 플래그(flag)를 "1"로 셋트하고, 실행부(205)는 신호(INTR)에 대해 레지스터(206)를 체크해서 신호(INTR)가 검출될 경우에는 실행부(EXU ; 205)는 인식신호(Ack)를 디버깅지원회로(100)에 공급하게 된다.
이상 설명한 바와 같이, 본 발명에 따른 회로는 실행되게 되는 명령의 횟수를 지정해서 실행된 명령의 횟수가 상기 지정된 수에 도달하게 되면 인터럽션을 발생하게 하고, 또 상기 횟수를 반복적으로 지정하지 않고 지정된 수만큼 명령실행이 완료되면 인터럽션을 발생하며, 지정된 수를 변화시켜서 인터럽션이 발생하게 되는 시점을 변화시키는 것이 가능하게 되어 있다.
또한, 본 발명은 상기 실시예에 한정되지 않는 바, 즉 상기 실시예에서는 계수기(2)는 "0"으로부터 1씩 증가되었지만, 이는 래치(1)에 기억되어 있는 값으로부터 하나씩 빼가는 계수기를 사용하여 상기 계수기(2)의 값이 "0"으로 되었을 때 인터럽션을 발생시키는 것도 가능하게 되고, 또 인터럽션 인식신호(Ack : 104)는 인터럽트신호를 리셋트시키는데 사용되었지만 미리 지정된 일정시간후에 인터럽트신호를 자동적으로 리셋트시켜 주는 것도 가능하게 되며, 더욱이 타이밍회로의 구성도 변형시키는 것이 가능하게 된다.
즉, 다시 말하면 본 발명의 요지를 벗어나지 않는 범위에서 여러가지로 변형실시가 가능하게 된다.
[발명의 효과]
이상 설명한 바와같이 본 발명에 따르면, 임의로 지정된 수에 해당되는 명령이 실행된 후에 인터럽션을 발생하게 하는 것이 가능하게 됨에 따라 하나의 명령이 실행된 후마다 인터럽션을 발생시키지 않고, 디버깅 소프트웨어를 원하는 시점에서 실행할 수 있게 됨으로써 효과적인 소프트웨어 디버깅을 실현할 수 있게 된다.
즉, 종래의 싱글스텁방법에 있어서는 하나의 명령을 실행한 후 항상 인터럽션을 발생시키도록 해야 했기 때문에 시간의 낭비가 있게 되었지만, 본 발명에 따른 디버깅 지원회로가 장치된 프로세서에서는 미리 지정된 수의 명령이 실행된 후에 인터럽션을 발생시킴에 따라 종래의 문제점을 제거할 수 있게 됨으로써 디버깅을 빨리 시행할 수 있게 된다.

Claims (5)

  1. 일련의 명령을 연속적으로 실행하는 프로세서에 있어서, 실행될 명령의 횟수를 셋팅하는 래치수단(1)과, 실행된 명령의 횟수를 계수하는 계수수단(2), 상기 래치수단(1)에 셋트된 값과 상기 계수수단(2)에 의한 계수값을 근거로 실행된 명령의 횟수가 셋트된 횟수에 도달되었는지의 여부를 판정하는 판정수단(3), 상기 판정수단(3)에 의한 판정결과에 따라 내부인터럽트신호(INTR)를 발생시키는 인터럽트신호발생수단(4), 상기 인터럽트신호(INTR)에 따른 인터럽션 인식신호(Ack)와 초기화 신호(INIT)에 대응해서 상기 계수수단(2)의 계수값을 초기화하는 초기화수단(5) 및, 상기 인터럽트신호(INTR)에 따른 인터럽션 인식신호(Ack)와 초기화 신호(INIT)에 대응해서 상기 인터럽트신호발생수단(4)을 리셋트시키는 리셋트수단(6)을 포함하여 구성된 것을 특징으로 하는 디버깅지원회로.
  2. 제 1 항에 있어서, 상기 판정수단(3)이 상기 래치수단(1)에 셋트된 값과, 상기 계수수단(2)에 의한 계수값을 비교하는 비교기(3)로 구성된 것을 특징으로 하는 디버깅지원회로.
  3. 제 2 항에 있어서, 상기 계수수단(2)은 명령실행신호(EX)를 인가받을 때마다 계수값이 1씩 증가되는 것을 특징으로 하는 디버깅지원회로.
  4. 제 1 항에 있어서, 상기 인터럽트신호 발생수단(4)이 플립플롭으로 구성된 것을 특징으로 하는 디버깅지원회로.
  5. 제 1 항에 있어서, 상기 계수수단은 명령실행신호(EX)를 인가받을 때마다 상기 래치수단(1)에 설정된 값에서 1씩 감산하는 감산수단으로 구성되고, 상기 판정수단은 상기 감산수단에 의해 감산된 값이 "0"으로 되었는가를 비교하도록 되어 있는 것을 특징으로 하는 디버깅지원회로.
KR1019880003124A 1987-03-23 1988-03-23 디버깅지원회로 KR920003909B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP65576 1987-03-23
JP62065576A JPS63233442A (ja) 1987-03-23 1987-03-23 デバツク支援回路を有するプロセツサ
JP62-65576 1987-03-23

Publications (2)

Publication Number Publication Date
KR880011661A KR880011661A (ko) 1988-10-29
KR920003909B1 true KR920003909B1 (ko) 1992-05-18

Family

ID=13290971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880003124A KR920003909B1 (ko) 1987-03-23 1988-03-23 디버깅지원회로

Country Status (2)

Country Link
JP (1) JPS63233442A (ko)
KR (1) KR920003909B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139107A (ja) * 1992-10-30 1994-05-20 Nec Corp ブレイクアドレス検出回路

Also Published As

Publication number Publication date
JPS63233442A (ja) 1988-09-29
KR880011661A (ko) 1988-10-29

Similar Documents

Publication Publication Date Title
US6308318B2 (en) Method and apparatus for handling asynchronous exceptions in a dynamic translation system
US7752427B2 (en) Stack underflow debug with sticky base
JPH05204709A (ja) プロセッサ
US20070174703A1 (en) Method for enhancing debugger performance of hardware assisted breakpoints
KR920003909B1 (ko) 디버깅지원회로
KR100263262B1 (ko) 마이크로프로세서
EP0525672A2 (en) Microprocessor with program tracing
KR950005523B1 (ko) 프로그램어블 로직 콘트롤러의 스텝 런 처리방법
JPH03175539A (ja) デバッグ用マイクロプロセッサ
SU959079A1 (ru) Мультимикропрограммное устройство управлени
JPH04367902A (ja) プログラマブルコントローラ
JPH02103643A (ja) デバッグ用割込発生回路
JPS6349943A (ja) 演算処理装置
JPS6382525A (ja) トレ−ス機能付マイクロプロセツサ
KR20020049789A (ko) 파워피시 마이크로프로세서에서 실행되는 병행 프로그램디버깅을 위한 스태핑 제어방법
JPS6273340A (ja) 中央処理装置
JPH05151021A (ja) 常駐領域組み込み型デバツガによるデバツグ方式
JPS613251A (ja) 処理装置のプログラムデバツグ機構
JPS62197834A (ja) マイクロプログラム制御装置
JPH0635760A (ja) トレース機能付バッファ装置
JPS58165148A (ja) 命令ストツプ回路
JPH0353348A (ja) マイクロプログラムのデバッグ方式
JPS6349941A (ja) 演算処理装置
JPH0432418B2 (ko)
JPS6349846A (ja) 演算処理装置

Legal Events

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

Payment date: 20030430

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee