KR19980016782A - How to reduce interrupt processing time - Google Patents

How to reduce interrupt processing time Download PDF

Info

Publication number
KR19980016782A
KR19980016782A KR1019960036474A KR19960036474A KR19980016782A KR 19980016782 A KR19980016782 A KR 19980016782A KR 1019960036474 A KR1019960036474 A KR 1019960036474A KR 19960036474 A KR19960036474 A KR 19960036474A KR 19980016782 A KR19980016782 A KR 19980016782A
Authority
KR
South Korea
Prior art keywords
interrupt
task
processing
manager
event list
Prior art date
Application number
KR1019960036474A
Other languages
Korean (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 KR1019960036474A priority Critical patent/KR19980016782A/en
Publication of KR19980016782A publication Critical patent/KR19980016782A/en

Links

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

컴퓨터 시스템에서 타스크 수행중 인터럽트를 처리하는 기술에 관한 것이다.A technique for handling interrupts during task execution in a computer system.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

인터럽트 이벤트 리스트를 별도로 구비하여 인터럽트 처리에 소요되는 시간을 최소화하는 방법을 제공함에 있다.The present invention provides a method for minimizing the time required for interrupt processing by separately providing an interrupt event list.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

임의의 타스크 실행중에 사용자모드 인터럽트가 발생하면 상기 타스크를 중지하고 인터럽트 이벤트 리스트에 상기 인터럽트의 발생 사실을 등록만 한후 다시 상기 타스크를 속행하고, 이후 시스템 호출 혹은 타이머 인터럽트가 발생하면 상기 디스패치관리자가 상기 서비스관리자를 이용하여 상기 인터럽트 이벤트 리스트에 등록된 각 인터럽트에 대한 처리를 함을 특징으로 한다.If a user mode interrupt occurs during execution of a task, the task is stopped and the task is continued again after only registering the fact of occurrence of the interrupt in the interrupt event list. A service manager is used to process each interrupt registered in the interrupt event list.

4. 발명의 중요한 용도4. Important uses of the invention

운영체제를 사용하는 무선통신시스템 혹은 단말기와 기지국간의 통신시 호처리 인터럽트 등에 사용한다.It is used for call processing interrupts in the communication between the wireless communication system using the operating system or the terminal and the base station.

Description

인터럽트 처리시간 단축방법How to reduce interrupt processing time

본 발명은 컴퓨터시스템에 있어서 타스크(task)의 수행중 발생하는 인터럽트를 처리하는 방법에 관한 것으로, 특히 인터럽트 처리에 소요되는 시간을 단축하는 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for processing interrupts that occur during the execution of a task in a computer system, and more particularly to a method for reducing the time required for interrupt processing.

컴퓨터 시스템에서 임의의 타스크를 수행하는 도중에 사용자모드 인터럽트가 발생하게 되면 상기 수행중이던 타스크를 중지하고 그 인터럽트에 대한 처리를 하게 된다. 만일 요청된 인터럽트의 수가 여럿일 경우 상기 인터럽트의 처리는 우선순위가 제일 높은 것부터 낮은 순서로 진행되며, 이렇게 모든 인터럽트가 처리된 후에야 대기상태에 있던 상기 타스크가 다시 수행될 수 있다.If a user mode interrupt occurs while performing a task in a computer system, the task that is being executed is stopped and the interrupt is processed. If there are several requested interrupts, processing of the interrupts proceeds from the highest priority to the lowest, and the task in the waiting state can be performed again after all interrupts have been processed.

도 1은 종래 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 과정을 개략적으로 나타낸 것이다. 사용자 응용 타스크(100)는 통상적인 응용 프로그램을 의미한다. 운영체제계층(200)은 시스템 호출 관리자(210)와 서비스 관리자(220)와 디스패치(dispatch) 관리자(230)와 인터럽트 관리자(240)를 포함한다. 상기 시스템 호출 관리자(210)는 상기 사용자 응용 타스크(100)가 운영체제계층(200)으로부터 서비스를 받기 위해 소프트웨어 인터럽트를 이용하여 시스템호출(system call)을 하면 이에 응답하여 그 시스템호출의 종류와 파라메타에 대한 검증을 한후 상기 서비스 관리자(220)의 해당 서비스 처리기로 제어를 넘기는 역할을 한다. 상기 서비스 관리자(220)는 사용자의 요구에 따른 다양한 서비스를 실시간으로 제공하기 위한 관리자로서, 타스크 상태 처리기, 데이터 통신 처리기, 세마포 처리기, 프로세서 간 통신 처리기, 데이터 입출력 처리기, 부가 기능 처리기 등으로 이루어진다. 상기 디스패치 관리자(230)는 상기 사용자 응용 타스크(100)의 실행중 실시간 클럭 인터럽트가 발생하거나 시스템 호출을 했을 때 해당 처리기가 그 수행을 완료한후 제어권을 넘겨 주면 이에 응답하여 동작하는 관리자이다. 상기 제어권을 넘겨 받은 디스패치 관리자(230)는 시스템의 내외부에서 발생한 모든 이벤트에 대한 적절한 처리를 한후, 우선순위에 기초한 타스크 스케쥴링을 한다. 상기 인터럽트 관리자(240)는 시스템의 내외부에서 발생하는 인터럽트를 처리한다.1 schematically illustrates a processing procedure for an interrupt that occurs during the execution of any task in the related art. The user application task 100 refers to a typical application program. The OS layer 200 includes a system call manager 210, a service manager 220, a dispatch manager 230, and an interrupt manager 240. The system call manager 210 responds to a system call using a software interrupt to receive a service from the OS layer 200 in response to the type and parameters of the system call. After the verification, the service manager 220 transfers control to the corresponding service processor. The service manager 220 is a manager for providing various services according to a user's request in real time. The service manager 220 includes a task state processor, a data communication processor, a semaphore processor, an interprocessor communication processor, a data input / output processor, and an additional function processor. The dispatch manager 230 is a manager that operates in response to the processor when the real time clock interrupt occurs or the system call is executed during the execution of the user application task 100, and the control processor transfers the control right. The dispatch manager 230, which has received the control right, performs task processing based on priority after appropriately processing all the events occurring in and out of the system. The interrupt manager 240 processes interrupts occurring in and out of the system.

도 2는 종래 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 시간을 개략적으로 나타낸 것이다. 실시간 처리 시스템(real time operating system) 인터럽트 지연(interrupt latency) IL은 인터럽트 발생 시점부터 인터럽트 처리루틴이 구동되기까지 걸리는 시간이다. 도시한 바에 따르면, 인터럽트 서비스 루틴(interrupt service routine) ISR에 커널이 연결되어 있다. 상기 커널은 인터럽트 INT에 의해 시동되어 특권모드로 동작하는 프로그램이다. 이렇게 커널이 시동되어 실제로 인터럽트를 처리하게 되면 그 만큼 타스크의 대기시간이 길어진다. 여기서 참조부호 T1은 타스크의 시작부터 완료까지 소요되는 시간을 나타낸다.Figure 2 schematically shows the processing time for interrupts occurring during the execution of any task in the prior art. Real Time Operating System Interrupt Latency IL is the time taken from the time of interrupt occurrence until the interrupt processing routine is driven. As shown, the kernel is coupled to an interrupt service routine ISR. The kernel is a program started by interrupt INT and operating in privileged mode. When the kernel starts up and actually handles interrupts, the task waits longer. Here, reference numeral T1 represents a time taken from the start of the task to completion.

인터럽트가 처리되기 위해 필요한 시간 즉 인터럽트 지연에 영향을 주는 요소는 다음의 세가지이다. 첫째 하드웨어 프로세서의 인터럽트지연, 둘째 실시간 처리 시스템이 인터럽트를 처리하고 인터럽트 서비스 루틴의 제어를 넘기는 데 걸리는 시간, 셋째 실시간 처리 시스템 인터럽트 디스에이블 시간이다.There are three factors that affect the time required for an interrupt to be processed: the interrupt delay. The interrupt latency of the first hardware processor, the time it takes for the second real-time processing system to process the interrupt and transfer control of the interrupt service routine, and the third time to disable the real-time processing system interrupt.

인터럽트 처리는 그 요청이 비교적 적은 수일 때에는 실시간 처리에 아무런 지장을 주지 않아서 큰 문제가 없다. 그러나 요청된 인터럽트의 수가 여러 개일 때에는 그 처리에 걸리는 시간은 매우 길어서 실제 타스크를 처리하는 시간이 눈에 띄게 지연될 수 있다.Interrupt handling is not a problem because it does not interfere with real-time processing when the number of requests is relatively small. However, when the number of interrupts requested is many, the processing time is very long, and the processing time of the actual task may be noticeably delayed.

따라서 본 발명의 목적은 인터럽트 처리 전용 관리자를 별도로 구비하여 인터럽트 처리에 소요되는 시간을 최소화하는 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a method for minimizing the time required for interrupt processing by separately providing an interrupt processing manager.

도 1은 종래 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 과정을 개략적으로 나타낸 도면1 is a view schematically showing a processing procedure for an interrupt that occurs during the execution of any task in the related art

도 2는 종래 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 과정을 개략적으로 나타낸 도면2 is a diagram schematically illustrating a processing procedure for interrupts generated during execution of an arbitrary task in the related art.

도 3은 본 발명의 일 실시예에 따른 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 과정을 개략적으로 나타낸 도면3 is a diagram schematically illustrating a processing procedure for an interrupt that occurs during execution of a task according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 시간을 개략적으로 나타낸 도면4 is a diagram schematically illustrating a processing time for an interrupt that occurs during execution of a task according to an embodiment of the present invention.

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기 설명에서는 구체적인 회로의 구성 소자 등과 같은 많은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술 분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, in adding reference numerals to the components of each drawing, it should be noted that the same reference numerals have the same reference numerals as much as possible even if displayed on different drawings. Also, in the following description, many specific details such as components of specific circuits are shown, which are provided to help a more general understanding of the present invention, and the present invention may be practiced without these specific details. It is self-evident to those of ordinary knowledge in Esau. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

도 3은 본 발명의 일 실시예에 따른 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 과정을 개략적으로 나타낸 것이다. 사용자 응용 타스크(100)는 통상적인 응용 프로그램을 의미한다. 운영체제계층(200)은 시스템 호출 관리자(210)와 서비스 관리자(220)와 디스패치(dispatch) 관리자(230)와 인터럽트 관리자(240)를 포함한다. 상기 시스템 호출 관리자(210)는 상기 사용자 응용 타스크(100)가 운영체제계층(200)으로부터 서비스를 받기 위해 소프트웨어 인터럽트를 이용하여 시스템호출(system call)을 하면 이에 응답하여 그 시스템호출의 종류와 파라메타에 대한 검증을 한후 상기 서비스 관리자(220)의 해당 서비스 처리기로 제어를 넘기는 역할을 한다. 상기 서비스 관리자(220)는 사용자의 요구에 따른 다양한 서비스를 실시간으로 제공하기 위한 관리자로서, 타스크 상태 처리기, 데이터 통신 처리기, 세마포 처리기, 프로세서 간 통신 처리기, 데이터 입출력 처리기, 부가 기능 처리기 등으로 이루어진다. 상기 디스패치 관리자(230)는 상기 사용자 응용 타스크(100)의 실행중 실시간 클럭 인터럽트가 발생하거나 시스템 호출을 했을 때 해당 처리기가 그 수행을 완료한후 제어권을 넘겨 주면 이에 응답하여 동작하는 관리자이다. 상기 제어권을 넘겨 받은 디스패치 관리자(230)는 시스템의 내외부에서 발생한 모든 이벤트에 대한 적절한 처리를 한후, 우선순위에 기초한 타스크 스케쥴링을 한다. 상기 인터럽트 관리자(240)는 시스템의 내외부에서 발생하는 인터럽트를 처리한다. 인터럽트 이벤트 리스트(250)는 인터럽트의 발생 사실을 등록시켜두기 위한 것이다.3 schematically illustrates a processing procedure for interrupts generated during execution of a task according to an embodiment of the present invention. The user application task 100 refers to a typical application program. The OS layer 200 includes a system call manager 210, a service manager 220, a dispatch manager 230, and an interrupt manager 240. The system call manager 210 responds to a system call using a software interrupt to receive a service from the OS layer 200 in response to the type and parameters of the system call. After the verification, the service manager 220 transfers control to the corresponding service processor. The service manager 220 is a manager for providing various services according to a user's request in real time. The service manager 220 includes a task state processor, a data communication processor, a semaphore processor, an interprocessor communication processor, a data input / output processor, and an additional function processor. The dispatch manager 230 is a manager that operates in response to the processor when the real time clock interrupt occurs or the system call is executed during the execution of the user application task 100, and the control processor transfers the control right. The dispatch manager 230, which has received the control right, performs task processing based on priority after appropriately processing all the events occurring in and out of the system. The interrupt manager 240 processes interrupts occurring in and out of the system. The interrupt event list 250 is for registering the fact that an interrupt has occurred.

상기 도 3에 따르면, 임의의 사용자 응용 타스크(100) 실행중에 사용자모드 인터럽트가 발생하면 상기 타스크(100)를 중지하고 인터럽트 이벤트 리스트(250)에 상기 인터럽트의 발생 사실을 등록만 한후 다시 상기 타스크(100)를 속행하고, 이후 시스템 호출 혹은 타이머 인터럽트가 발생하면 디스패치관리자(230)가 상기 서비스관리자(220)를 이용하여 상기 인터럽트 이벤트 리스트(250)에 등록된 각 인터럽트에 대한 처리를 한다.According to FIG. 3, if a user mode interrupt occurs while executing any user application task 100, the task 100 is stopped and only the fact that the interrupt is generated in the interrupt event list 250 is registered. If the system call or timer interrupt occurs afterwards, the dispatch manager 230 processes the respective interrupts registered in the interrupt event list 250 using the service manager 220.

도 4는 본 발명의 일 실시예에 따른 임의의 타스크 수행중 발생한 인터럽트에 대한 처리 시간을 개략적으로 나타낸 것이다. 전술한 도 2와 비교해보면 인터럽트 서비스 루틴 ISR만 있고 상기 인터럽트 서비스 루틴 ISR에 연결된 커널이 없다. 이는 인터럽트 INT가 발생해도 그때는 실제로 인터럽트를 처리하지 않고 도 3의 인터럽트 이벤트 리스트(250)에 등록만 해두도록 하기 때문이다. 이렇게 되면 그 만큼 타스크의 대기시간이 짧아진다. 여기서 참조부호 T2는 타스크의 시작부터 완료까지 소요되는 시간을 나타내는데, 전술한 도 2의 T1 보다 더 짧아진 것이다.4 schematically illustrates processing time for interrupts that occur during the execution of any task according to an embodiment of the present invention. Compared with FIG. 2 described above, there is only an interrupt service routine ISR and no kernel connected to the interrupt service routine ISR. This is because even if interrupt INT occurs, only the interrupt event list 250 of FIG. 3 is registered without actually processing the interrupt. This shortens the waiting time for the task. Here, reference numeral T2 denotes a time taken from the start of the task to completion, which is shorter than T1 of FIG.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 않되며 후술하는 특허청구의 범위뿐 만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by the equivalents of the claims.

인터럽트 이벤트 리스트를 두어 인터럽트 처리에 소요되는 시간을 줄임으로써 시스템 전반에 대하여 효율을 높일 수 있다.By placing an interrupt event list, you can increase the efficiency of the system as a whole by reducing the time spent in interrupt processing.

Claims (1)

컴퓨터 시스템의 인터럽트 처리시간 방법에 있어서,In the interrupt processing time method of a computer system, 임의의 타스크 실행중에 사용자모드 인터럽트가 발생하면 상기 타스크를 중지하고 인터럽트 이벤트 리스트에 상기 인터럽트의 발생 사실을 등록만 한후 다시 상기 타스크를 속행하고, 이후 시스템 호출 혹은 타이머 인터럽트가 발생하면 상기 디스패치관리자가 상기 서비스관리자를 이용하여 상기 인터럽트 이벤트 리스트에 등록된 각 인터럽트에 대한 처리를 함을 특징으로 하는 방법.If a user mode interrupt occurs during execution of a task, the task is stopped and the task is continued again after only registering the fact of occurrence of the interrupt in the interrupt event list. And processing each interrupt registered in the interrupt event list by using a service manager.
KR1019960036474A 1996-08-29 1996-08-29 How to reduce interrupt processing time KR19980016782A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960036474A KR19980016782A (en) 1996-08-29 1996-08-29 How to reduce interrupt processing time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960036474A KR19980016782A (en) 1996-08-29 1996-08-29 How to reduce interrupt processing time

Publications (1)

Publication Number Publication Date
KR19980016782A true KR19980016782A (en) 1998-06-05

Family

ID=66322332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960036474A KR19980016782A (en) 1996-08-29 1996-08-29 How to reduce interrupt processing time

Country Status (1)

Country Link
KR (1) KR19980016782A (en)

Similar Documents

Publication Publication Date Title
US6715016B1 (en) Multiple operating system control method
US4959781A (en) System for assigning interrupts to least busy processor that already loaded same class of interrupt routines
EP1162536A1 (en) Multiple operating system control method
US20080162764A1 (en) Processing method and processing device for a hardware interrupt
JP2009025939A (en) Task control method and semiconductor integrated circuit
WO2007049162A2 (en) Data processing arrangement comprising a reset facility.
US20060155552A1 (en) Event handling mechanism
CN110955503A (en) Task scheduling method and device
US6195715B1 (en) Interrupt control for multiple programs communicating with a common interrupt by associating programs to GP registers, defining interrupt register, polling GP registers, and invoking callback routine associated with defined interrupt register
KR19980016782A (en) How to reduce interrupt processing time
JP3005562B1 (en) Task management device and task scheduling method
EP1341092A1 (en) Method and arrangement for virtual direct memory access
WO2021057649A1 (en) Timer processing method, apparatus, electronic device, and computer storage medium
JP2001092676A (en) Task management system in integrated program
JPH02187830A (en) Interruption control system
JP2872042B2 (en) Shared memory access method
JP2001184326A (en) Multiprocessor scheduling method and computer system for multiprocessor scheduling
KR930007242B1 (en) Realtime task management method
KR100223983B1 (en) Collision protecting circuit
JPH0752393B2 (en) Data processing device
JPH03208131A (en) Task control system for operating system
JPS62217326A (en) Computer capable of storing and switching plural os
JPH02311903A (en) Programmable controller
JPS61166631A (en) Microprogram control processor
JP2000029850A (en) Task controlling method using inter-processor communication of operating system

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination