KR19980013834A - 마이크로 프로세서의 프로그램 수행 시간 검출 회로 - Google Patents

마이크로 프로세서의 프로그램 수행 시간 검출 회로 Download PDF

Info

Publication number
KR19980013834A
KR19980013834A KR1019960032480A KR19960032480A KR19980013834A KR 19980013834 A KR19980013834 A KR 19980013834A KR 1019960032480 A KR1019960032480 A KR 1019960032480A KR 19960032480 A KR19960032480 A KR 19960032480A KR 19980013834 A KR19980013834 A KR 19980013834A
Authority
KR
South Korea
Prior art keywords
instruction
interrupt
cycles
program
counter
Prior art date
Application number
KR1019960032480A
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 KR1019960032480A priority Critical patent/KR19980013834A/ko
Publication of KR19980013834A publication Critical patent/KR19980013834A/ko

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

본 발명은 마이크로 프로세서의 프로그램 수행 시간 검출 회로에 관한 것으로 특히, 실제 실행되는 프로그램의 인스트럭션 싸이클의 수를 카운트하여 프로그램 실행에 따른 시간 정보를 제공함으로써 주어진 시간내의 처리를 요구하는 프로그램 개발시 최적화 및 효율화를 극대화시킬 수 있도록 한다. 이러한 본 발명의 일실시예는 인스트럭션을 입력받아 싸이클 수를 카운트하는 인스트럭션 싸이클 판단부(201)와, 스타트 비트(INCY-CNT.START)가 1로 인에이블되면 상기 인스트럭션 싸이클 판단부(201)의 출력값을 전송하는 스위치(202)와, 이 스위치(202)를 전송되는 싸이클의 수를 누적하여 오버 플로우가 발생하면 인터럽트를 발생시키는 카운터(203)로 구성한다.

Description

마이크로 프로세서의 프로그램 수행 시간 검출 회로
제1도는 인터럽트 처리를 보인 타이밍도.
제2도는 인터럽트 루틴과 메인 루틴의 수행을 보인 타이밍도.
제3도는 본 발명의 일실시예를 보인 블럭도.
제4도는 본 발명의 다른 실시예를 보인 블럭도.
제5도는 프로그램 수행을 위한 신호 흐름도.
* 도면의 주요부분에 대한 부호의 설명 *
201,211 : 인스트럭션 싸이클 판단부
202,212 : 스위칭203,213 : 카운터
214,218 : 레지스터215 : 비교기
216 : 프로그램 카운터217 : 전송부
본 발명은 프로그램 수행 시간 검출에 관한 것으로 특히, 실시간 프로그램 처리를 위하여 인스트럭션의 싸이클을 검출함에 의해 프로그램 수행 시간을 검출하기 위한 프로그램 수행 시간 검출 회로에 관한 것이다.
일반적인 마이크로 프로세서는 각 인스트럭션마다 인스트럭션 싸이클이 있다.
이 인스트럭션 싸이클은 그 인스트럭션이 수행되는데 걸리는 실제 시간이며, 결국 실시간 처리에 있어서 가장 중요한 변수이다.
먼저, 제1도와 같은 타이밍으로 외부 인터럽트 요구를 처리하는 프로그램을 하나의 예로 설명한다.
여기서, 외부에서 인터럽트 1 은 60㎱ 주기로 발생되고 인터럽트 2 는 주기적으로 발생되며 인터럽트 1 이 인터럽트 2 보다 우선 순위를 가진다고 가정한다.
이 경우 구간 1 의 인터럽트 2 처리에 30㎱ 가 필요하다면 인터럽트 1 의 처리에 40㎱ 의 시간을 사용하였으므로 구간 1 에서 인터럽트 2 의 처리는 20㎱ 밖에 사용할 수 없다.
이에 따라, 인터럽트 2 관련 프로그램의 결과가 정상적으로 되지 않으므로 프로그램이 비정상적으로 동작하게 된다.
따라서, 프로그래머는 인터럽트 1 이나 인터럽트 2 의 처리 루틴에서 10㎱ 의 시간을 줄여야 한다.
또한, 제2도와 같은 타이밍으로 인터럽트와 메인 프로그램을 수행하는 프로그램을 다른 예로 설명한다.
여기서, 실시간 처리를 위하여 인터럽트 루틴이 수행된 후 반드시 메인 프로그램의 처리를 위하여 30㎱의 시간이 필요하다고 가정한다.
이 경우 인터럽트는 60㎱마다 주기적으로 요구되고 인터럽트 처리 루틴 40㎱의 시간이 걸리므로 메인 루틴은 20㎱밖에 수행되지 못함으로 비정상적인 동작을 수행하게 된다.
따라서, 프로그래머는 인터럽트 루틴이나 메인 루틴에서 10㎱의 시간을 줄여야 한다.
그러나, 이러한 타이밍에 대한 요구 시간이나 실제 수행 시간에 대한 정보는 쉽게 얻어지지 않는다.
즉, 제1도와 제2도에서 인터럽트 루틴이나 메인 루틴이 조건에 따라 요구되는 시간이 틀리다면 프로그래머는 인터럽트 루틴과 메인 루틴 각각에서 모든 경우에 대해 인스트럭션 싸이클수를 각각 계산하여야 한다.
이 후, 인스트럭션 싸이클의 수가 계산되어야만 비로소 실시간 처리를 위한 프로그램 수정을 행할 수 있다.
다시 말해서, 프로그래머는 프로그램이 실시간적으로 얼마만큼의 시간이 소요되는지를 알려면 인스트럭션 싸이클을 일일이 직접 계산하여야 하며, 만약 프로그램이 경우에 따라 여러 다른 경로로 갈 수 있다면 각각의 경우에 대하여 모든 싸이클의 수를 계산하여야 하는 엄청난 수고를 필요로 하는 문제점이 있다.
또한, 메인 프로그램의 수행 중간에 인터럽트가 요구되는 경우 실제의 타겟 보드에서 프로그램이 정상적으로 실행되는지를 실제 테스트를 통하여 판단하여야 하는 문제점이 있다.
본 발명은 종래의 문제점을 개선하기 위하여 실제 실행되는 프로그램의 인스트럭션 싸이클의 수를 카운트하여 프로그램 실행에 따른 시간 정보를 제공함으로써 프로그램 작성시 최적화 및 효율화를 이룩할 수 있도록 창안한 마이크로 프로세서의 프로그램 수행시간 검출 회로를 제공함에 목적이 있다.
본 발명은 상기의 목적을 달성하기 위하여 인스트럭션을 입력받아 싸이클 수를 카운트하는 인스트럭션 싸이클 판단 수단과, 스타트 비트가 1로 인에이블되면 상기 인스트럭션 싸이클 판단 수단의 출력값을 전송하는 스위치 수단과, 이 스위치 수단을 통해 전송되는 싸이클의 수를 누적하여 오버 플로우가 발생하면 인터럽트를 발생시키는 카운터 수단으로 구성한다.
또한, 본 발명은 상기의 목적을 달성하기 위하여 인스트럭션을 입력받아 싸이클 수를 카운트하는 인스트럭션 싸이클 판단 수단과, 스타트 비트가 1로 인에이블되면 상기 인스트럭션 싸이클 판단 수단의 출력값을 전송하는 스위치 수단과, 이 스위치 수단을 통해 전송되는 싸이클의 수를 누적하는 카운터 수단과, 이 제1 레지스터 수단의 저항값과 상기 카운터 수단의 누적 값이 같아지면 인터럽트를 발생시키는 비교 수단과, 인스트럭션의 어드레스(= 프로그램 카운트)를 출력하는 프로그램 카운터 수단과, 상기 비교 수단에서 인터럽트가 발생하면 상기 프로그램 카운터 수단의 출력 신호를 전송하는 전송 수단과, 이 전송 수단의 출력신호를 저장하는 제2 레지스터 수단으로 구성한다.
이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.
제3도는 본 발명의 제1 실시예를 보인 회로도로서 이에 도시한 바와 같이, 인스트럭션의 싸이클 수를 판단하는 인스트럭션 싸이클 판단부(201)와, 스타트 비트(INCY-CNT.START)가 1이 되면 상기 인스트럭션 싸이클 판단부(201)의 출력값을 전송하는 스위치(202)와, 이 스위치(202)를 통해 전송되는 싸이클 수를 누적하여 오버 플로우가 발생하면 인터럽트를 발생시키는 카운터(203)로 구성된다.
이와같이 구성한 본 발명의 제1 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.
초기에 카운터(203)는 0으로 세팅된다.
이 후, 중앙 처리 장치(CPU ; 도면 미표시)는 인터럽트 인이에블 신호(IE) 및 스타트 비트(INCY-CNT.START)를 1로 세팅하게 된다.
이때, 스타트 비트(INCY-CNT.START)가 1로 세팅되면 스위치(202)가 온된다.
이 후, 프로그램이 실행되면 인스트럭션 싸이클 판단부(201)는 인스트럭션이 실행되는 싸이클을 판단하여 1싸이클이면 1, 2싸이클이면 2, 그리고, 4싸이클 이면 4를 출력하게 된다.
이에 따라, 카운터(203)는 스위치(202)를 통해 전송되는 인스트럭션 싸이클 판단부(201)의 출력값을 누적하여 오버 플로우가 발생하면 중앙 처리 장치(CPU ; 도면 미표시)에 인터럽트를 요구하게 된다.
예를 들면, 프로그램이 제5도와 같은 순서로 실행된다고 할 때 프로그래머가 메인 루틴 2 에서 실행 시간을 점검하고자 한다고 가정하자.
먼저, 메인 루틴 2 의 처음 부분에서 중앙 처리 장치(CPU ; 도면 미표시)는 스타트 비트(INCY-CNT.START)를 1로 세팅하여 스위치(202)를 온시키게 된다.
동시에 인스트럭션 싸이클 판단부(201)는 메인 루틴 2 이 실행됨에 따라 인스트럭션의 싸이클 수를 계산하여 해당 싸이클의 값을 출력하게 된다.
이에 따라, 카운터(203)는 스위치(202)를 통해 전송되는 인스트럭션 싸이클 판단부(201)의 출력값을 누적하게 된다.
이 후, 중앙 처리 장치(CPU ; 도면 미표시)가 메인 루틴 2 의 마지막 부분에서 스타트 비트(INCY-CNT.START)를 0으로 클리어시키면 스위치(202)가 오프되어 카운터(203)의 누적 동작이 중지되어진다.
이에 따라, 카운터(203)의 누적값을 읽으면 메인 루터 2 의 실행 시간이 계산되므로 프로그래머는 메인 루틴 2 의 부분의 실행 시간을 점검할 수 있다.
제4도는 본 발명의 제2 실시예를 보인 회로도로서 이에 도시한 바와 같이, 인스트럭션을 입력받아 싸이클 수를 카운트하는 인스트럭션 싸이클 판단부(211)와, 스타트 비트(INCY-CNT.START)가 1로 인에이블되면 상기 인스트럭션 싸이클 판단부(211)의 출력값을 전송하는 스위치(212)와, 이 스위치(212)를 통해 전송되는 상기 인스트럭션 싸이클 판단부(211)의 출력값을 누적하는 카운터(213)와, 원하는 인스트럭션 싸이클의 수를 저장하는 제1 레지스터(214)와, 이 제 1 레지스터(214)의 저장값과 상기 카운터(213)의 누적값이 같아지면 인터럽트를 발생시키는 비교기(215)와, 인스트럭션의 어드레스(= 프로그램 카운트값)를 출력하는 프로그램 카운터(216)와, 상기 비교기(215)에서 인터럽트가 발생하면 상기 프로그램 카운터(216)의 계수값을 전송하는 전송부(217)와, 이 전송부(217)의 출력 신호를 저장하는 제2 레지스터(218)로 구성한다.
이와같이 구성한 본 발명의 제2 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.
초기에 카운터(214)를 0으로 세팅하며, 프로그래머는 원하는 인스트럭션의 싸이클 수를 레지스터(214)에 세팅하게 된다.
이 후, 중앙 처리 장치(CPU ; 도면 미표시)는 인터럽트 인이에블 신호(IE) 및 스타트 비트(INCY-CNT.START)를 1로 세팅하게 된다.
이때, 스타트 비트(INCY-CNT.START)가 1로 세팅되면 스위치(212)가 온된다.
이 후, 프로그램이 실행되면 인스트럭션 싸이클 판단부(211)는 인스트럭션이 실행되는 싸이클을 판단하여 1싸이클이면 1, 2싸이클이면 2, 그리고, 4싸이클이면 4를 출력하게 된다.
이에 따라, 카운터(213)는 스위치(212)를 통해 전송되는 인스트럭션 싸이클 판단부(211)의 출력값을 누적하게 된다.
이때, 비교기(215)는 카운터(213)의 누적값이 레지스터(214)의 세팅값과 같아지는지 비교하게 된다.
이 후, 카운터(213)의 누적값이 레지스터(214)의 세팅값과 같아지면 비교기(215)는 중앙 처리 장치(CPU ; 도면 미표시)에 인터럽트를 요구하게 된다.
동시에 카운터(213)의 누적값이 레지스터(214)에 저장된 일정값과 같아짐에 의해 인터럽트가 발생하면 전송부(217)가 인에이블된다.
이때, 프로그램 카운터(216)의 어드레스가 전송부(217)를 통해 레지스터(218)에 저장되어진다.
여기서, 레지스터(218)에 저장되는 어드레스는 카운터(213)의 누적값이 레지스터(214)의 저장값과 같아지는 인스트럭션의 어드레스(= 프로그램 카운트값)이다.
따라서, 프로그래머는 레지스터(218)의 저항값을 점검하여 프로그램이 어느 정도 수행되었는가를 판단하게 된다.
예를 들어, 프로그램이 제5도와 같은 순서로 실행된다고 할 때 프로그래머가 메인 루틴 2 을 50㎱ 이내에서 실행시키고자 한다고 가정하자.
만일, 1싸이클의 인스트럭션이 1㎱의 시간이 소요된다고 가정하면 총 50싸이클 이내에 메인 루틴 2 이 실행되어야 한다.
따라서, 프로그래머는 레지스터(214)에 50의 상수값을 저장하게 된다.
이 후, 메인 루틴 2 의 처음 부분에서 중앙 처리 장치(CPU ; 도면 미표시)는 스타트 비트(INCY-CNT.START)를 1로 세팅하여 스위치(212)를 온시키게 된다.
동시에 인스트럭션 싸이클 판단부(211)는 메인 루틴 2 가 실행됨에 따라 인스트럭션의 싸이클 수를 계산하여 해당 값을 출력하게 된다.
이에 따라, 카운터(213)는 스위치(212)를 통해 전송되는 인스트럭션 싸이클 판단부(211)의 출력값을 누적하게 된다.
이때, 비교기(215)는 카운터(213)의 누적값이 레지스터(214)에 저장된 일정값(=50)과 같아지는지 비교하게 된다.
이 후, 카운터(213)의 누적값이 레지스터(214)에 저장된 일정값과 같아지면 비교기(215)는 중앙 처리 장치(CPU ; 도면 미표시)에 인터럽트를 요구하게 된다.
이때, 비교기(215)가 인터럽트를 요구하는 시점에서 전송부(217)가 인에이블되어 프로그램 카운터(216)의 어드레스를 레지스터(218)에 전송하게 저장시키게 된다.
따라서, 프로그래머가 레지스터(218)에 저장된 값을 읽으면 프로그램 카운터(PC)값이 메인 루틴 2 의 부분에 있는지 아니면 다른 루틴의 부분에 있는지를 판단하여 자신이 요구하는 시간의 만족 여부를 판단할 수 있다.
또한, 프로그래머는 레지스터(218)의 저장값을 통하여 얼마만큼의 인스트럭션 수를 줄여야 하는지 또는 얼마만큼의 시간적인 여유가 있어서 어느 정도의 프로그램을 더 첨가시킬 수 있는지를 판가름할 수 있다.
이렇게 함으로써 프로그래머는 프로그램의 최적화와 효율화를 이룩할 수 있고 좀 더 실시간 처리에 대한 처리를 손쉽게 할 수 있게 된다.
상기에서 상세히 설명한 바와 같이 본 발명은 스캔 프로그램 또는 모터 콘트롤등과 같은 주어진 시간내의 처리를 요구하는 프로그램 개발시 효율적으로 이용, 가능하며 프로그램의 최적화 및 효율화를 극대화시킬 수 있는 효과가 있다.

Claims (2)

  1. 인스트럭션을 입력받아 싸이클 수를 카운트하는 인스트럭션 싸이클 판단 수단과, 스타트 비트가 1로 인에이블되면 상기 인스트럭션 싸이클 판단 수단의 출력값을 전송하는 스위치 수단과, 이 스위치 수단을 통해 전송되는 싸이클의 수를 누적하여 오버 플로우가 발생하면 인터럽트를 발생시키는 카운터 수단으로 구성한 것을 특징으로 하는 마이크로 프로세서의 프로그램 수행 시간 검출 회로.
  2. 인스트럭션을 입력받아 싸이클 수를 카운트하는 인스트럭션 싸이클 판단 수단과, 스타트 비트가 1로 인에이블되면 상기 인스트럭션 싸이클 판단 수단의 출력값을 전송하는 스위치 수단과, 이 스위치 수단을 통해 전송되는 싸이클의 수를 누적하는 카운터 수단과, 원하는 인스트럭션 싸이클의 수를 저장하는 제1 레지스터 수단과, 이 제1 레지스터 수단의 저장값과 상기 카운터 수단의 누적값이 같아지면 인터럽트를 발생시키는 비교 수단과, 인스트럭션의 어드레스(= 프로그램 카운트)를 출력하는 프로그램 카운터 수단과, 상기 비교 수단에서 인터럽트가 발생하면 상기 프로그램 카운터 수단의 출력 신호를 전송하는 전송 수단과, 이 전송 수단의 출력 신호를 저장하는 제2 레지스터 수단으로 구성한 것을 특징으로 하는 마이크로 프로세서의 프로그램 수행 시간 검출 회로.
KR1019960032480A 1996-08-03 1996-08-03 마이크로 프로세서의 프로그램 수행 시간 검출 회로 KR19980013834A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960032480A KR19980013834A (ko) 1996-08-03 1996-08-03 마이크로 프로세서의 프로그램 수행 시간 검출 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960032480A KR19980013834A (ko) 1996-08-03 1996-08-03 마이크로 프로세서의 프로그램 수행 시간 검출 회로

Publications (1)

Publication Number Publication Date
KR19980013834A true KR19980013834A (ko) 1998-05-15

Family

ID=66250223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960032480A KR19980013834A (ko) 1996-08-03 1996-08-03 마이크로 프로세서의 프로그램 수행 시간 검출 회로

Country Status (1)

Country Link
KR (1) KR19980013834A (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55105720A (en) * 1979-02-08 1980-08-13 Toshiba Corp Channel control system
JPS56103724A (en) * 1980-01-23 1981-08-19 Hitachi Ltd Microprocessor
JPS60247745A (ja) * 1984-05-24 1985-12-07 Matsushita Electric Ind Co Ltd 割込み制御回路
JPS62245338A (ja) * 1986-04-17 1987-10-26 Sanyo Electric Co Ltd デ−タ処理装置のソフトディレイ方式
KR940027365U (ko) * 1993-05-21 1994-12-10 엘지산전주식회사 프로그램 실행시간 측정회로

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55105720A (en) * 1979-02-08 1980-08-13 Toshiba Corp Channel control system
JPS56103724A (en) * 1980-01-23 1981-08-19 Hitachi Ltd Microprocessor
JPS60247745A (ja) * 1984-05-24 1985-12-07 Matsushita Electric Ind Co Ltd 割込み制御回路
JPS62245338A (ja) * 1986-04-17 1987-10-26 Sanyo Electric Co Ltd デ−タ処理装置のソフトディレイ方式
KR940027365U (ko) * 1993-05-21 1994-12-10 엘지산전주식회사 프로그램 실행시간 측정회로

Similar Documents

Publication Publication Date Title
KR100267427B1 (ko) 최대 인터럽트 금지 기간 측정기능을 가지는 마이크로 컴퓨터
JPH0528063A (ja) マイクロコンピユータ
KR20030018048A (ko) 리얼 타임 시스템에서 태스크의 실행 시간을 측정하기위한 장치 및 방법
US4839895A (en) Early failure detection system for multiprocessor system
CN114489801A (zh) 高精度测量嵌入式系统中断时长的方法、系统及介质
JP2002342114A (ja) トレースデータ採取可能なプロセッサ
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
US6026504A (en) Multiprocessor system and method for error tracking
KR19980013834A (ko) 마이크로 프로세서의 프로그램 수행 시간 검출 회로
US5704033A (en) Apparatus and method for testing a program memory for a one-chip microcomputer
JP3145937B2 (ja) マイクロコンピュータの暴走検出方法
US5220635A (en) Data sink having high efficiency in received data processing
US5500809A (en) Microcomputer system provided with mechanism for controlling operation of program
US20070266230A1 (en) Information processing method and instruction generating method
JPH11102298A (ja) タイマ制御方法、その回路、およびそのプログラム記録 媒体
KR0176095B1 (ko) 인터럽트 대기시간 측정방법
JPS60144840A (ja) プログラム周期測定方式
JPH0211930B2 (ko)
JP2004151846A (ja) 暴走検出装置
SU1128266A1 (ru) Устройство дл сбора статистических данных о работе программ ЭВМ
JPH02267642A (ja) Cpu専有時間測定装置
KR200293236Y1 (ko) 감시타이머장치
JPH02166523A (ja) コンピュータの割込み誤動作防止装置
JPH09113556A (ja) パルス計測回路及びその計測方法
JPH09293039A (ja) 入出力制御装置

Legal Events

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