KR19990057788A - 정지점 생성 장치에서의 주소 매치 회로 - Google Patents

정지점 생성 장치에서의 주소 매치 회로 Download PDF

Info

Publication number
KR19990057788A
KR19990057788A KR1019970077867A KR19970077867A KR19990057788A KR 19990057788 A KR19990057788 A KR 19990057788A KR 1019970077867 A KR1019970077867 A KR 1019970077867A KR 19970077867 A KR19970077867 A KR 19970077867A KR 19990057788 A KR19990057788 A KR 19990057788A
Authority
KR
South Korea
Prior art keywords
address
bits
breakpoint
comparing
detecting
Prior art date
Application number
KR1019970077867A
Other languages
English (en)
Other versions
KR100257773B1 (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 KR1019970077867A priority Critical patent/KR100257773B1/ko
Priority to JP37770398A priority patent/JP3590282B2/ja
Priority to US09/223,388 priority patent/US6477664B1/en
Publication of KR19990057788A publication Critical patent/KR19990057788A/ko
Application granted granted Critical
Publication of KR100257773B1 publication Critical patent/KR100257773B1/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

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

본 발명은 보다 작은 하드웨어 자원을 이용하여 면적을 줄인 정지점 주소와 범위 사이에 제약이 존재하지 않는 경우에 대한 정지점 생성 장치에서의 주소 매치 회로를 제공하기 위한 것으로, 이를 위해 본 발명은 정지점 주소와 주소 생성 장치로부터의 메모리 참조 주소를 입력받아 감산하는 감산 수단; 상기 감산 수단으로부터 출력되는 감산 결과의 하위 2비트를 제외한 나머지 비트가 모두 "0"인 지를 디텍팅하는 제1 디텍팅 수단; 상기 하위 2비트가 상기 정지점 주소의 범위보다 작거나 같은 지를 비교하는 제1 비교 수단; 상기 감산 수단으로부터 출력되는 감산 결과의 하위 2비트를 제외한 나머지 비트가 모두 "1"인 지를 디텍팅하는 제2 디텍팅 수단; 상기 하위 2비트가 반전된 상기 주소 생성 장치로부터의 오퍼랜드 크기보다 크거나 같은 지를 비교하는 제2 비교 수단; 및 상기 제1 및 제2 디텍팅 수단과 상기 제1 및 제2 비교 수단으로부터 출력되는 비교 결과를 입력받아 주소 매치 신호를 출력하는 논리 수단을 포함한다.

Description

정지점 생성 장치에서의 주소 매치 회로
본 발명은 마이크로프로세서에 관한 것으로서, 특히 컴퓨터 프로그램의 정지점(breakpoint)을 생성하기 위한 정지점 생성 장치에서의 주소 매치 회로에 관한 것이다.
컴퓨터 프로그램을 개발하는 과정에서, 프로그램의 성능을 분석하거나 프로그램 상의 에러(error)를 제거하기 위하여 프로그램 디버깅(program debugging)의 과정을 거친다. 프로그램을 디버깅하는 일은 프로그램을 개발하는 과정 중에서 중요한 부분으로 인식되어지고 있는데, 이러한 과정은 종종 프로그램을 작성하는 시간보다 훨씬 더 많은 시간을 필요로 할 때가 있다.
컴퓨터 프로그램을 디버깅하기 위한 하나의 방법은 관찰하고 싶은 이벤트들(event)을 미리 설정해 놓고, 프로그램을 수행시키다가 설정한 이벤트가 발생하게 되면 프로그램 수행을 중단시키고, 그때의 프로그래머 비져블 레지스터(programmer visible register) 값 같은 것들을 분석하는 것이다. 메모리에 있는 프로그램이나 데이터를 참조하기 위하여, 사용되는 주소를 미리 설정해 놓고, 프로그램을 수행시키다가 이러한 주소가 생성되는 경우를 이러한 이벤트의 일 예로 들 수 있다.
컴퓨터에 의해 생성된 주소가 미리 설정된 주소와 일치하였을 때, 정지점(breakpoint)이 발생하여 컴퓨터의 수행이 중단되고, 상황을 분석할 수 있는 상태가 된다.
이러한 정지점 인터럽트(breakpoint interrupt)를 생성하기 위한 방법이 다양하게 제기되고 있는데, 그 중 하나는 프로그램을 수정하는 것이다. 즉, 프로그램의 어떤 주소에 소프트웨어(software) 인터럽트 명령어(instruction)를 집어 넣는 것이다. 그러나, 이와 같은 방법은 구현이 용이하기는 하나, 데이터를 참조하는 주소에 대해서는 정지점을 설정할 수 없다는 단점이 있다.
정지점 인터럽트를 생성하기 위한 또다른 방법은 컴퓨터나 마이크로프로세서(microprocessor)의 외부에 정지점 인터럽트를 발생시킬 수 있는 하드웨어(hardware)를 설치하는 것이다. 이러한 하드웨어는 컴퓨터로부터 생성된 주소를 미리 설정되어 있는 주소와 비교하여, 일치되면 하드웨어 인터럽트 신호를 컴퓨터나 마이크로프로세서에게 보내어 수행을 중단시킨다. 그러나, 이와 같은 방법은 비용이 많이 들고, 인쇄회로기판(Printed Circuit Board)의 추가 공간도 필요하게 되며, 또한 고속의 프로세서에 대해서는 구성한 하드웨어가 프로세서의 동작 속도를 따라가지 못하여, 실제로 정지점을 발생하여야 할 시점에 발생시키지 못하고, 나중에 정지점을 발생시키게 되는 경우가 생길 수 있다. 그리고, 프로세서가 내부적으로 주소 생성 장치(address generation unit)를 가지고 있는 경우에는, 프로세서의 밖에서 볼 수 있는 주소가 프로그램의 논리 주소가(logical address)가 아니라 메모리 억세스를 위한 물리 주소(physical address)가 되게 되어 이러한 방법을 사용하여 정지점을 생성할 수 없게 된다.
최근에는 정지점을 생성할 수 있는 장치를 프로세서 내부에 두며, 이러한 장치는 비교해야 할 주소들을 미리 저장해 놓을 수 있는 다수개의 주소 레지스터, 정지점 인터럽트를 발생시키기 위한 제어 정보들을 저장하고 있는 다수개의 레지스터 및 미리 설정된 주소와 프로세서에서 생성된 주소를 비교하는 비교기를 포함한다.
이러한 방법을 리스크(Reduced Instruction Set Computer, RISC) 프로세서에 적용하였을 경우에는 명령어와 데이터의 길이가 4바이트(32비트)로 항상 일정한 값을 가져 비교해야 하는 값들이 4의 배수가 되므로, 비교기 구현이 별로 복잡하지 않으나, 인텔(Intel) X86계열과 같은 시스크(Complex Instruction Set Computer) 프로세서에 적용하였을 경우에는 명령어의 길이나 데이터의 길이가 다양하기 때문에, 비교기를 구현하기 위해서 많은 하드웨어 자원(hardware resource)이 필요하게 된다.
여기서, 정지점 주소와 정지점 주소의 범위에 제약 조건(constraint)을 주면 다소 비교기 설계가 쉬워질 수 있는데, 예를 들면, 인텔의 386 프로세서의 경우는 정지점 주소의 값을 범위가 "1"일 때는 아무 값이나 비교 가능하고, 범위가 "2"일 때는 짝수 주소만 비교 가능하고, 범위가 "4"일 때는 4의 배수 주소만 비교 가능하게 제약조건을 줌으로써 비교기 설계를 간단히 할 수 있다. 그러나, 인텔 펜티움(Pentium)과 같이 n-웨이 수퍼스칼라(superscalar) 방식으로 동작하는 프로세서에서는 1사이클에 여러 개의 메모리 참조 주소가 생성되기 때문에, 각각의 정지점 주소 레지스터는 n개의 읽기 포트(read port)를 가지고 있어야 하며, 또 각각의 정지점 주소 레지스터마다 비교를 위한 n개의 비교기가 필요함으로 인해 하드웨어 자원이 상당히 많이 소모되는 문제점이 있다.
본 발명은 제약 조건이 없는 경우에 대한 것으로서, 이와 관련한 종래의 주소 매치 회로는 도 1에 도시된 바와 같다. 먼저 정지점 주소 레지스터로부터 정지점의 시작 주소(이하, Bstart라 함)를 정하고, 제1 가산기(100)를 통해 정지점 주소와 범위(이하, R이라 함)를 가산한 후 정지점의 스톱 주소(이하, Bstop라 함)를 생성한다. 예를 들어, 정지점 주소 레지스터의 값이 16진수 0XFFF이고, R이 4 바이트(byte)이면, Bstart는 16진수 0XFFF이고, Bstop은 0×1002가 된다. 그리고, 주소 생성 유닛(address generation unit)으로부터 생성된 주소로부터 메모리 참조에 대한 시작 주소(이하,Mstart라 함)를 정하고, 제2 가산기(120)를 통해 메모리 참조 주소와 오퍼랜드 크기(이하, OS라 함)를 가산한 후 메모리 참조에 대한 스톱 주소(이하,Mstop라 함)를 생성한다. 예를 들어, 주소 생성 유닛으로부터 생성된 주소가 0X1000이고, OS가 2 바이트이면, Mstart는 0X1000 이 되고, Mstop은 0×1001이 된다.
다음으로, 정지점 인터럽트가 발생하기 위해서는 Bstart, Bstop, Mstart, 그리고 Mstop사이에 아래 수학식 1과 같은 조건이 만족되어야 한다.
Bstart≤ Mstop, Mstart≤ Bstop
이를 위해, Bstart, Bstop, Mstart, 그리고 Mstop이 상기 수학식 1을 만족하는 지를 제1 비교기(140)와 제2 비교기(160)를 통해 비교한 후, 각 비교 결과를 논리곱 게이트(180)를 통해 논리곱하여 최종 매치 신호를 발생한다. 예를 들면, 상술한 예의 경우에 Bstart가 0XFFF이고, Bstop이 0X1002, Mstart가 0X1000, 그리고 Mstop이 0X1001이므로 위의 조건을 만족하여 최종 매치 신호를 발생하게 된다.
상술한 바와 같이 정지점 주소와 범위 사이에 제약이 존재하지 않는 경우에 대한 정지점 생성 장치에 있어서의 종래의 주소 매치 회로는, 정지점 주소의 매치 여부를 알기 위해 가산기, 비교기 및 논리 게이트 등과 같은 하드웨어 자원이 많이 필요하게 되고, 이로 인해 매치 신호 발생에 대한 시간이 크리티컬(critical)해 질 수 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 보다 작은 하드웨어 자원을 이용하여 면적을 줄인 정지점 주소와 범위 사이에 제약이 존재하지 않는 경우에 대한 정지점 생성 장치에서의 주소 매치 회로를 제공하는데 그 목적이 있다.
도 1은 종래의 주소 매치 회로를 개념적으로 도시한 블록도.
도 2는 본 발명의 일실시예인 주소 매치 회로를 도시한 블록도.
* 도면의 주요부분에 대한 부호의 설명
200 : 감산기 210 : "0" 디텍터
220 : 제1 비교기 230 : "1" 디텍터
240 : 제2 비교기 250, 260 : 논리곱 게이트
270 : 논리합 게이트
상기 목적을 달성하기 위한 본 발명은 정지점 주소와 주소 생성 장치로부터의 메모리 참조 주소를 입력받아 감산하는 감산 수단; 상기 감산 수단으로부터 출력되는 감산 결과의 하위 2비트를 제외한 나머지 비트가 모두 "0"인 지를 디텍팅하는 제1 디텍팅 수단; 상기 하위 2비트가 상기 정지점 주소의 범위보다 작거나 같은 지를 비교하는 제1 비교 수단; 상기 감산 수단으로부터 출력되는 감산 결과의 하위 2비트를 제외한 나머지 비트가 모두 "1"인 지를 디텍팅하는 제2 디텍팅 수단; 상기 하위 2비트가 반전된 상기 주소 생성 장치로부터의 오퍼랜드 크기보다 크거나 같은 지를 비교하는 제2 비교 수단; 및 상기 제1 및 제2 디텍팅 수단과 상기 제1 및 제2 비교 수단으로부터 출력되는 비교 결과를 입력받아 주소 매치 신호를 출력하는 논리 수단을 포함하여 이루어지는 정지점 주소와 범위 사이에 제약이 존재하지 않는 경우에 대한 정지점 생성 장치에서의 주소 매치 회로를 포함하여 이루어진다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 살펴본다.
상술한 수학식 1을 다시 기술하여, (OS-1)을 좌변으로 옮기고, Bstart를 옮기면, 아래의 수학식 2로 표현될 수 있다.
Bstart≤ Mstart+ (OS - 1), Mstart≤ Bstart+ (R - 1)
Bstart-(OS-1)≤Mstart≤Bstart+(R-1), -(OS-1)≤Mstart-Bstart≤(R-1)
-OS≤Mstart-Bstart≤R
일반적으로, 32비트 프로세서에서 OS와 R은 각각 1에서 4바이트까지의 값을 가지므로, 2비트로 표현 가능하며, "0"이 1바이트, "1"이 2바이트, "10"이 3바이트, 그리고 "11"이 4 바이트를 각각 나타낸다.
상기 수학식 2에서, 정지점이 발생하기 위해서는 Mstart가 Bstart보다 큰 경우는 그 차가 R보다 작아야 하고, Mstart가 Bstart보다 작은 경우는 그 차가 OS의 음수 값 보다는 커야 함을 알 수 있다. 이때 OS와 R이 각각 2 비트로 표현되므로, 정지점을 발생하기 위해서는 Mstart-Bstart가 양수일 경우에 그 차의 상위 비트들은 모두 "0"이고, 하위 2비트는 R보다 작거나 같아야하며, Mstart-Bstart가 음수일 경우에 그 차의 상위 비트들은 모두 "1"이고, 하위 2비트는 OS의 반전된 값 보다 크거나 같아야 한다.
이를 바탕으로 도 2의 본 발명의 주소 매치 회로는 정지점 주소와 메모리 참조 주소를 입력받아 감산하는 감산기(200), 감산 결과(Sub[32:0])가 양수일 경우 하위 2비트를 제외한 나머지 비트가 모두 "0"인 지를 디텍팅하는 제1 디텍터(detector, 210), 하위 2비트가 범위보다 작거나 같은 지를 비교하는 제1 비교기(220), 감산 결과(Sub[32:0])가 음수일 경우 하위 2비트를 제외한 나머지 비트가 모두 "1"인 지를 디텍팅하는 제2 디텍터(230), 하위 2비트가 반전된 OS보다 크거나 같은 지를 비교하는 제2 비교기(240), 상기 제1 디텍터(210) 및 상기 제1 비교기(220)로부터 출력되는 신호를 논리곱하는 제1 논리곱 게이트(250), 상기 제2 디텍터(230) 및 상기 제2 비교기(240)로부터 출력되는 신호를 논리곱하는 제2 논리곱 게이트(260) 및 상기 제1 및 제2 논리곱 게이트(250, 260)로부터 출력되는 신호를 논리합하여 최종 매치 신호를 생성하는 논리합 게이트(270)로 구성된다.
주소 매치 과정을 살펴보면, 먼저 감산기(200)를 통해 Mstart와 Mstart의 차를 구한다. 이때 감산기(200)로 입력되는 두 주소값은 모두 비부호화 값이므로, 상위에 "0"을 한 비트씩 추가하여 사용한다. 그 감산 결과 신호의 상위 31 비트와 하위 2비트를 이용하여, 감산 결과가 양수일 경우는 상위 31비트가 모두 "0"인지와 하위 2비트가 R보다 작거나 같은지를 체크하고, 결과가 음수일 경우는 상위 31비트가 모두 "1"인지와 하위 2비트가 OS의 반전된 값보다 큰지를 체크한다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같이 이루어지는 본 발명은, 정지점 주소와 범위 사이에 제약이 존재하지 않는 경우에 대한 정지점 생성 장치에 있어서의 주소 매치 회로를 적은 하드웨어 자원을 이용해 구현함으로써 면적 감소 및 전력 감소의 효과를 얻을 수 있다.

Claims (5)

  1. 정지점 주소와 범위 사이에 제약이 존재하지 않는 경우에 대한 정지점 생성 장치의 주소 매치 회로에 있어서,
    정지점 주소와 주소 생성 장치로부터의 메모리 참조 주소를 입력받아 감산하는 감산 수단;
    상기 감산 수단으로부터 출력되는 감산 결과의 하위 2비트를 제외한 나머지 비트가 모두 "0"인 지를 디텍팅하는 제1 디텍팅 수단;
    상기 하위 2비트가 상기 정지점 주소의 범위보다 작거나 같은 지를 비교하는 제1 비교 수단;
    상기 감산 수단으로부터 출력되는 감산 결과의 하위 2비트를 제외한 나머지 비트가 모두 "1"인 지를 디텍팅하는 제2 디텍팅 수단;
    상기 하위 2비트가 반전된 상기 주소 생성 장치로부터의 오퍼랜드 크기보다 크거나 같은 지를 비교하는 제2 비교 수단; 및
    상기 제1 및 제2 디텍팅 수단과 상기 제1 및 제2 비교 수단으로부터 출력되는 비교 결과를 입력받아 주소 매치 신호를 출력하는 논리 수단
    을 포함하여 이루어지는 주소 매치 회로.
  2. 제 1 항에 있어서,
    상기 논리 수단은
    상기 제1 디텍팅 수단 및 상기 제1 비교 수단으로부터 출력되는 신호를 논리곱하는 제1 논리 수단;
    상기 제2 디텍팅 수단 및 상기 제2 비교 수단으로부터 출력되는 신호를 논리곱하는 제2 논리 수단; 및
    상기 제1 및 제2 논리 수단으로부터 출력되는 신호를 논리합하여 상기 매치 신호를 생성하는 제3 논리 수단
    을 포함하는 주소 매치 회로.
  3. 제 1 항에 있어서,
    상기 정지점 주소 및 상기 메모리 참조 주소는
    32비트의 비부호화된 값으로 최상위 비트에 "0"을 1비트씩 각각 추가하여 상기 감산 수단으로 입력되는 것을 특징으로 하는 주소 매치 회로.
  4. 제 3 항에 있어서,
    상기 감산 수단은
    33비트의 감산 연산을 수행하는 것을 특징으로 하는 주소 매치 회로.
  5. 제 4 항에 있어서,
    상기 제1 디텍팅 수단 및 상기 제2 디텍팅 수단은
    상기 감산 결과의 상위 31비트에 대해 상기 디텍팅 동작을 각각 수행하는 것을 특징으로 하는 주소 매치 회로.
KR1019970077867A 1997-12-30 1997-12-30 정지점 생성 장치에서의 주소 매치 회로 KR100257773B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1019970077867A KR100257773B1 (ko) 1997-12-30 1997-12-30 정지점 생성 장치에서의 주소 매치 회로
JP37770398A JP3590282B2 (ja) 1997-12-30 1998-12-29 スーパースカラーマイクロプロセッサーの停止点インターラプト発生装置
US09/223,388 US6477664B1 (en) 1997-12-30 1998-12-30 Breakpoint interrupt generating apparatus in a superscalar microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970077867A KR100257773B1 (ko) 1997-12-30 1997-12-30 정지점 생성 장치에서의 주소 매치 회로

Publications (2)

Publication Number Publication Date
KR19990057788A true KR19990057788A (ko) 1999-07-15
KR100257773B1 KR100257773B1 (ko) 2000-06-01

Family

ID=19529682

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970077867A KR100257773B1 (ko) 1997-12-30 1997-12-30 정지점 생성 장치에서의 주소 매치 회로

Country Status (1)

Country Link
KR (1) KR100257773B1 (ko)

Also Published As

Publication number Publication date
KR100257773B1 (ko) 2000-06-01

Similar Documents

Publication Publication Date Title
US4347565A (en) Address control system for software simulation
Freericks The nML machine description formalism
US7962729B2 (en) Dynamic runtime range checking of different types on a register using upper and lower bound value registers for the register
US5201043A (en) System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking
JPH0743646B2 (ja) 条件コ−ド発生装置
Orenbach et al. {CoSMIX}: A Compiler-based System for Secure Memory Instrumentation and Execution in Enclaves
US20050246696A1 (en) Method and apparatus for hardware awareness of data types
US11210402B2 (en) Gate-level information flow security
Danger et al. CCFI-cache: A transparent and flexible hardware protection for code and control-flow integrity
US5717909A (en) Code breakpoint decoder
US7328374B2 (en) Method and apparatus for implementing assertions in hardware
JP3590282B2 (ja) スーパースカラーマイクロプロセッサーの停止点インターラプト発生装置
US7774758B2 (en) Systems and methods for secure debugging and profiling of a computer system
JPS62179033A (ja) 集積回路マイクロプロセツサ
KR100257773B1 (ko) 정지점 생성 장치에서의 주소 매치 회로
Hollingsworth et al. The Clipper processor: Instruction set architecture and implementation
KR100257772B1 (ko) 수퍼스칼라 마이크로프로세서의 정지점 생성 장치
Leontie et al. No principal too small: Memory access control for fine-grained protection domains
Grieve et al. ARMOR: A recompilation and instrumentation-free monitoring architecture for detecting memory exploits
Pecatte Processor Anchor to Increase the Robustness Against Fault Injection and Cyber Attacks
Clark Trace-based hardware control flow signature checking
Wilcke Architectural overview of HaL systems
Gerhorst Flexible and Low-Overhead System-Call Aggregation using BPF
Ian Computer science from the bottom up
Kargén Development of a prototype taint tracing tool for security and other purposes

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050221

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee