KR20000045665A - 인터럽트 발생 회로 - Google Patents

인터럽트 발생 회로 Download PDF

Info

Publication number
KR20000045665A
KR20000045665A KR1019980062233A KR19980062233A KR20000045665A KR 20000045665 A KR20000045665 A KR 20000045665A KR 1019980062233 A KR1019980062233 A KR 1019980062233A KR 19980062233 A KR19980062233 A KR 19980062233A KR 20000045665 A KR20000045665 A KR 20000045665A
Authority
KR
South Korea
Prior art keywords
address
data
memory
interrupt
flag
Prior art date
Application number
KR1019980062233A
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 KR1019980062233A priority Critical patent/KR20000045665A/ko
Publication of KR20000045665A publication Critical patent/KR20000045665A/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

Landscapes

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

Abstract

본 발명은 인터럽트 발생 회로에 관한 것으로 특히, 중단점이 설정된 특정 메모리 번지에 읽기 또는 쓰기를 수행할 때 어떤 명령어가 그 특정 메모리 번지를 액세스하기 위한 하드웨어를 구현함으로써 오류 검출 및 수정을 위한 처리 속도를 향상시키도록 함에 목적이 있다. 이러한 목적의 본 발명은 중단점 어드레스(MBPaddr)와 데이터(MBPdata)를 저장하는 레지스터(110)와, 메모리 관리부(120)에서의 메모리 액세스 어드레스(addr)를 상기 중단점 어드레스(MBPaddr)와 비교하고 메모리(130)의 읽기/쓰기 데이터(data)를 상기 특정 데이터(MBPdata)와 비교하여 어드레스 및 데이터 플래그(addrfg)(datafg)를 생성하는 비교기(140)와, 이 비교기(140)에서 생성된 어드레스 플래그(addrfg), 데이터 플래그(datafg) 및 상기 메모리 관리부(120)에서 생성된 읽기/쓰기 신호(r/w)와 인에이블 신호(en)를 연산하여 외부에서 설정된 중단점 조건을 충족하면 입터럽트 플래그(intfg)를 발생시키는 인터럽트 발생부(150)와, 이 인터럽트 발생부(150)에서 인터럽트 플래그(intfg)가 발생하면 중단점 처리를 위한 서브 루틴의 번지(pc)를 프로그램 카운터(170)에 지정하는 인터럽트 제어부(160)로 구성한다.

Description

인터럽트 발생 회로
본 발명은 디버깅(debugging)에 관한 것으로 특히, 중단점(breakpoint)이 설정된 특정 메모리 번지를 액세스할 때 이를 처리하기 위한 인터럽트 발생 회로에 관한 것이다.
일반적으로 디버깅(debugging)이란 특정 메모리 번지에 중단점을 미리 걸어 그 번지에 읽기 또는 쓰기를 수행할 때 어떤 명령어에서 그 특정 메모리 번지를 액세스하는지를 찾아내는 것으로, 이를 위해 디버거를 채용한다.
중단점(breakpoint)이란 프로그램의 감시 또는 오류 검사를 위해 사전에 지정한 프로그램내의 위치로서, 정상적인 연산의 순서가 외부적인 요인(조작원의 지시) 또는 프로그램에 의해 인터럽트가 걸리는 것을 의미한다.
종래의 디버깅 기술은 소프트웨어적으로 처리하였다.
종래에는 디버깅의 시작을 칩 외부에서 프로그램적으로 해결해주어야 하므로 항상 칩 내부의 메모리 액세스를 외부에서 점검하여야 한다.
이러한 종래 기술에 대한 동작 과정을 설명하면 다음과 같다.
먼저, 각 명령을 처리할 때마다 소프트웨어 인터럽트를 걸어서 그 명령이 메모리를 액세스하는지를 확인한다.
만약, 메모리를 읽기/쓰기하는 명령이라면 그때의 메모리 번지를 중단점이 걸린 번지와 비교하여 그 비교 결과 번지가 동일하고 읽기/쓰기가 수행되는 경우라면 프로그램의 수행을 멈추게 한다.
이에 따라, 중단점을 걸은 메모리 번지에 읽기/쓰기 동작을 행하는 명령어로 분기(branch)를 수행한 후 'no operation'으로 설정하여 다음 명령을 수행하지 못하도록 소프트웨어적인 트랩을 걸어준다.
또한, 특정 메모리 번지에서 읽히거나 쓰여지는 값도 중단점으로 어드레스와 함께 지정해두면 상기와 동일한 방법으로 외부에서 프로그램적으로 중단점을 걸은 번지를 매 명령어가 수행될 때마다 비교하게 된다.
이에 따라, 중단점을 설정한 조건과 맞으면 프로그램 실행을 멈추고 그 명령을 수행했을 때의 칩의 여러 레지스터값들이나 정보를 외부 디버거 프로그램에서 볼 수 있게 된다.
그러나, 종래의 기술은 중단점이 설정된 특정 메모리 번지 또는 그 번지의 특정값을 디버깅할 때 디버깅할 프로그램의 명령어를 외부에서 항상 점검해야 하는 단점이 있다.
즉, 종래에는 외부에서 내부 명령어의 메모리 액세스를 점검하기 위해 한 명령이 수행될 때마다 외부로 그 명령어를 내보내서 점검을 하게 하는 서브 구틴을 구비하여야 함으로 디버깅 처리 속도의 손실을 유발시키는 문제점이 있다.
따라서, 본 발명은 종래의 문제점을 개선하기 위하여 디버깅에 있어서, 중단점이 설정된 특정 메모리 번지에 읽기 또는 쓰기를 수행할 때 어떤 명령어가 그 특정 메모리 번지를 액세스하기 위한 하드웨어를 구현함으로써 오류 검출 및 수정을 위한 처리 속도를 향상시키도록 창안한 인터럽트 발생 회로를 제공함에 목적이 있다.
도 1은 본 발명의 실시를 위한 회로의 블럭도.
* 도면의 주요부분에 대한 부호 설명 *
110 : 레지스터 120 : 메모리 관리부
130 : 메모리 140 : 비교기
150 : 인터럽트 발생부 160 : 인터럽트 제어부
170 : 프로그램 카운터
본 발명은 상기의 목적을 달성하기 위하여 중단점 어드레스와 데이터를 저장하는 레지스터(Memory Break Point Register)와, 메모리 관리부에서의 메모리 액세스 어드레스 및 메모리의 읽기/쓰기 데이터(data)를 상기 레지스터의 중단점 어드레스 및 데이터와 각기 비교하여 일치하는 경우 어드레스 플래그(addrfg) 및 데이터 플래그(datafg)를 생성하는 비교기와, 상기 비교기에서 생성된 어드레스 플래그(addrfg), 데이터 플래그(datafg) 및 상기 메모리 관리부에서 생성된 읽기/쓰기 신호(r/w)와 인에이블 신호(en)를 연산하여 외부에서의 중단점 설정 조건을 충족하는 경우 입터럽트 플래그(intfg)를 발생시킬지를 결정하는 인터럽트 발생부(Memory Break Point Interrupt Generater)와, 이 인터럽트 발생부에서 인터럽트 플래그(intfg)가 발생하면 중단점 처리를 위한 서브 루틴의 번지(pc)를 프로그램 카운터에 지정하는 인터럽트 제어부로 구성함을 특징으로 한다.
이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.
도1 는 본 발명의 실시예를 보인 블록도로서 이에 도시한 바와 같이, 중단점 어드레스(MBPaddr)와 데이터(MBPdata)를 저장하는 레지스터(110)와, 메모리(130)의 쓰기/읽기 동작을 제어하는 메모리 관리부(Momory Management Unit)(120)와, 이 메모리 관리부(120)에서의 메모리 액세스 어드레스(addr)와 상기 레지스터(110)에 저장되어 있는 중단점 어드레스(MBPaddr)를 비교하고 상기 메모리(130)의 읽기/쓰기 데이터(data)와 상기 레지스터(110)에 저장되어 있는 특정 데이터(MBPdata)를 비교하여 어드레스 및 데이터 플래그(addrfg)(datafg)를 생성하는 비교기(140)와, 이 비교기(140)에서 생성된 어드레스 플래그(addrfg) 및 데이터 플래그(datafg)와 상기 메모리 관리부(120)에서 생성된 읽기/쓰기 신호(r/w)및 인에이블 신호(en)를 연산하여 외부에서의 중단점 설정 조건을 충족하면 입터럽트 플래그(intfg)를 발생시킬지를 결정하는 인터럽트 발생부(Memory Break Point Interrupt Generater)(150)와, 이 인터럽트 발생부(150)에서 인터럽트 플래그(intfg)가 발생하면 중단점 처리를 위한 서브 루틴의 번지(pc)를 프로그램 카운터(170)에 지정하는 인터럽트 제어부(160)로 구성한다.
상기 레지스터(110)는 외부에서 할당할 수 메모리 중단점의 개수에 따라 어드레스 영역과 데이터 영역을 확장하여 구성하며, 이 경우 비교기(140)의 개수도 증설되어야 한다.
이와같이 구성한 본 발명의 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.
우선, 외부 디버거에서 특정 메모리 번지의 특정 데이터를 읽기 또는 쓰기를 수행할 때 프로그램 실행을 정지시키도록 중단점(breakpoint)를 설정한다.
이때, 디버거는 소프트웨어 인터럽트를 발생시켜 칩 내부의 레지스터(110)에 중단점이 설정된 어드레스(MBPaddr)와 특정 데이터(MBPdata)를 저장시키고 아울러 읽기/쓰기일 때인지 아니면 읽기 또는 쓰기일 때인지에 대한 정보를 저장시킨다.
만약, 특정 어드레스를 액세스하는 것을 중단점으로 설정하려는 경우 디버거에서 제어 신호(ctl)를 레지스터(110)에 전송하여 특정 데이터의 비교를 하지 않을 수도 있다.
이 후, 디버거는 프로그램을 실행시키며 이때, 실행되는 각각의 명령어들은 메모리(130)를 액세스할 수도 있고 하지 않을 수도 있다.
이때, 메모리(130)를 액세스하는 명령어들이 디코딩되면 메모리 관리부(120)는 메모리 액세스를 결정하고 액세스할 어드레스(addr)와 읽기/쓰기 신호(r/w), 인에이블 신호(en)를 출력하는데, 쓰기시에 상기 메모리(130)에 쓸 데이터(data)를 출력하고 반대로, 읽기시에는 상기 메모리(130)로부터 데이터(data)를 읽어낸다.
이 후, 메모리 관리부(120)에서의 제어 신호(r/w)(en)는 메모리(130), 비교기(140) 및 인터럽트 발생부(150)으로 입력되고 어드레스(addr)와 데이터(data)는 상기 메모리(130)와 비교기(140)에만 입력된다.
이때, 비교기(140)는 레지스터(110)에 저장된 중단점 어드레스(MBPaddr)와 특정 데이터(MBPdata)를 메모리 관리부(120)에서의 메모리 액세스 어드레스(addr)와 읽기/쓰기시의 데이터(data)와 비교하게 된다.
이에 따라, 비교 결과가 일치하면 비교기(140)는 어드레스 플래그(addrfg)와 데이터 플래그(datafg)를 생성하여 인터럽트 발생부(150)로 출력하게 된다.
이때, 인터럽트 발생부(150)는 메모리 관리부(120)에서 발생된 읽기/쓰기 신호(r/w), 인에이블 신호(en)와 비교기(140)에서 발생된 어드레스 플래그(addrfg), 데이터 플래그(datafg) 등을 조합하여 디버거에서 요구한 메모리 중단점 조건을 충족하면 메모리 중단점 인터럽트 플래그(intfg)를 발생시킨다.
여기서, 디버거에서 요구할 수 있는 중단점(breakpoint) 조건은 (1), 특정 메모리 어드레스를 읽기 또는 쓰기 또는 읽기/쓰기 모드에 상관하지 않으며 (2), (1)의 조건과 특정 메모리 어드레스와 그 번지의 특정값 등으로 나눌 수 있다.
이에 따라, 인터럽트 플래그(intfg)가 발생되면 인터럽트 제어부(160)는 메모리 중단점 처리 프로그램을 위한 서브루틴 어드레스(pc)를 생성하고 현재 실행중인 프로그램을 중지시킨 후 그 중단점 서브루틴 어드레스(pc)를 프로그램 카운터(170)에 인가함으로써 그 어드레스로 분기(branch)하여 디버거가 필요로 하는 작업을 수행시키게 된다.
한편, 본 발명은 레지스터(110), 비교기(140)와 인터럽트 발생부(150)를 하나의 블럭으로 집적할 수 있으며, 이경우 상기 블럭은 메모리 관리부(120)에서 제어하도록 구성할 수 있다.
상기에서 상세히 설명한 바와 같이 본 발명은 디버깅(debugging)을 위한 인터럽트를 발생시키기 위한 하드웨어를 칩 내부에 구성함으로써 종래 기술에서 소프트웨어적으로 처리할 때보다 디버깅 처리 속도를 향상시킬 수 있는 효과가 있다.
또한, 본 발명은 디버거를 구현할 때에도 불필요한 서브 루틴을 하드웨어적으로 처리할 수 있기 때문에 디버거의 구현이 좀 더 용이해진다.

Claims (1)

  1. 외부에서 설정되는 중단점 어드레스(MBPaddr)와 특정 데이터(MBPdata)를 저장하는 레지스터(Memory Breakpoint Register)와, 메모리 관리부(Memory Management Unit)에서의 메모리 액세스 어드레스(addr)와 상기 중단점 어드레스(MBPaddr)를 비교하고 메모리의 읽기/쓰기 데이터(data)와 상기 특정 데이터(MBPdata)를 비교하여 일치하는 경우 어드레스 플래그(addrfg)와 데이터 플래그(datafg)를 발생시키는 비교기와, 상기 비교기에서 생성된 어드레스 플래그(addrfg) 및 데이터 플래그(datafg)와 상기 메모리 관리부에서 생성된 읽기/쓰기 신호(r/w)및 인에이블 신호(en)를 연산하여 외부에서 설정한 중단점 조건과 일치하면 입터럽트 플래그(intfg)를 발생시키는 인터럽트 발생부(Memory Break Point Interrupt Generater)와, 이 인터럽트 발생부에서 인터럽트 플래그(intfg)가 발생하면 중단점 처리를 위한 서브 루틴의 번지(pc)를 프로그램 카운터에 지정하는 인터럽트 제어부로 구성함을 특징으로 하는 인터럽트 발생 회로.
KR1019980062233A 1998-12-30 1998-12-30 인터럽트 발생 회로 KR20000045665A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980062233A KR20000045665A (ko) 1998-12-30 1998-12-30 인터럽트 발생 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980062233A KR20000045665A (ko) 1998-12-30 1998-12-30 인터럽트 발생 회로

Publications (1)

Publication Number Publication Date
KR20000045665A true KR20000045665A (ko) 2000-07-25

Family

ID=19568919

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980062233A KR20000045665A (ko) 1998-12-30 1998-12-30 인터럽트 발생 회로

Country Status (1)

Country Link
KR (1) KR20000045665A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856596B2 (en) 2010-10-08 2014-10-07 Samsung Electronics Co., Ltd. Debugging apparatus and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856596B2 (en) 2010-10-08 2014-10-07 Samsung Electronics Co., Ltd. Debugging apparatus and method

Similar Documents

Publication Publication Date Title
US6708326B1 (en) Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence
KR940003318B1 (ko) 캐시 메모리를 구비한 프로세서
EP0638864B1 (en) Development support system for microcomputer with internal cache
KR20000045665A (ko) 인터럽트 발생 회로
JPH0581070A (ja) プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法
JPS60207935A (ja) イリ−ガル命令検出方式
JP2636101B2 (ja) デバッグ支援装置
JP2754899B2 (ja) デバック装置のリターンアドレス監視回路
JPH06202907A (ja) デバッグ支援装置
KR0164930B1 (ko) 에뮬레이터의 프로그램 정지 방법
JPH0795288B2 (ja) マイクロコンピュータ
JPH06149614A (ja) 命令実行装置
JPS63196952A (ja) 情報処理装置
JPH05224989A (ja) キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
JPS6270947A (ja) デバグ割込み制御方式
JPH0362233A (ja) アドレスマッチタイミングトレース機構
JPS63104151A (ja) トレ−ス機能付きマイクロプロセサ
JPH11167500A (ja) エミュレータ装置のイベント回路及びデバッグシステム
JPH0581068A (ja) デバツグ支援装置
JPH04367902A (ja) プログラマブルコントローラ
JPS61292756A (ja) プログラムデバツク補助回路
JPS6382525A (ja) トレ−ス機能付マイクロプロセツサ
JPS6170644A (ja) プログラムデバク方式
JPH0210435A (ja) アドレストラップ回路
JPH01246638A (ja) 書込み命令の領域誤り判定方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application