KR20010082982A - Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors - Google Patents

Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors Download PDF

Info

Publication number
KR20010082982A
KR20010082982A KR1020000008575A KR20000008575A KR20010082982A KR 20010082982 A KR20010082982 A KR 20010082982A KR 1020000008575 A KR1020000008575 A KR 1020000008575A KR 20000008575 A KR20000008575 A KR 20000008575A KR 20010082982 A KR20010082982 A KR 20010082982A
Authority
KR
South Korea
Prior art keywords
interrupt
address information
vector
interrupt vector
original
Prior art date
Application number
KR1020000008575A
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 KR1020000008575A priority Critical patent/KR20010082982A/en
Publication of KR20010082982A publication Critical patent/KR20010082982A/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B33/00Constructional parts, details or accessories not provided for in the other groups of this subclass
    • G11B33/02Cabinets; Cases; Stands; Disposition of apparatus therein or thereon
    • G11B33/04Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers
    • G11B33/0405Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers for storing discs
    • G11B33/0433Multiple disc containers
    • G11B33/0438Multiple disc containers for disc cartridges
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2512Floppy disks

Abstract

PURPOSE: A system and method for controlling an interrupt using an expanded interrupt vector is provided to process interrupts being generated from more interrupt sources than interrupt sources responding to an interrupt vector area provided from a micro processor. CONSTITUTION: An expansion interrupt vector recording unit(19) records address information of a plurality of interrupt processing routines and comprises a plurality of vectors storing address information of each interrupt processing routine. An interrupt polling unit(18) selects one interrupt out of non-processed interrupts and extracts and outputs address information of an interrupt processing routine corresponded to the selected interrupt from the expansion interrupt vector recording unit(19). A shadow register(17) stores output information of the interrupt polling unit(18). An address remapping unit(13) receives address information of the original interrupt vector being generated from a micro processor(11) and generates address information of the shadow register(17) instead of the address information of the original interrupt vector.

Description

확장된 인터럽트 벡터를 사용하는 인터럽트 제어 시스템 및 인터럽트 제어 방법{Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors}Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors

본 발명은 인터럽트 제어 시스템에 관한 것으로서, 특히 다수개의 인터럽트를 다룰 수 있도록 인터럽트 벡터를 확장하여 사용하는 인터럽트 제어 시스템에 관한 것이다.The present invention relates to an interrupt control system, and more particularly, to an interrupt control system using an extended interrupt vector to handle a plurality of interrupts.

마이크로 프로세서에서 인터럽트를 제어할 때, 일반적으로 신속한 처리를 위하여 인터럽트 벡터(interrupt vector) 영역을 설정하고, 인터럽트 발생시 인터럽트원(interrupt source)에 따라 매핑(mapping)된 인터럽트 벡터를 참조하여 해당 인터럽트 처리 루틴으로 분기하게 된다. 즉, 인터럽트 벡터에는 인터럽트 처리 루틴을 가리키는 주소 정보가 미리 저장된다. 그리고, 인터럽트 발생시, 마이크로 프로세서가 인터럽트 벡터에 저장되어 있는 내용을 읽어 봄으로써, 해당 인터럽트 처리 루틴으로 분기할 수 있는 것이다. 그런데, 마이크로 프로세서에서 기본적으로 제공하는 인터럽트 벡터 영역은 크기가 제한된다. 따라서, 마이크로 프로세서가 기본적으로 제공하는 인터럽트 벡터 보다 많은 인터럽트원을 처리하여야 할 경우, 부가적으로 소프트웨어적인 혹은 하드웨어적인 해결 방안이 필요하다.When the interrupt is controlled by the microprocessor, the interrupt vector region is generally set for rapid processing, and the interrupt processing routine is referred to by referring to the interrupt vector mapped according to the interrupt source when the interrupt occurs. Branch to. That is, address information indicating an interrupt processing routine is stored in advance in the interrupt vector. When an interrupt occurs, the microprocessor reads the contents stored in the interrupt vector to branch to the interrupt processing routine. However, the size of the interrupt vector area basically provided by the microprocessor is limited. Therefore, if a microprocessor needs to handle more interrupt sources than the interrupt vectors basically provided, an additional software or hardware solution is needed.

소프트웨어적인 해결 방안 중의 하나로는 다수의 인터럽트원들을 그룹화하여 하나의 인터럽트 벡터에 매핑시키는 방안이 있다. 그리고, 인터럽트 발생시, 인터럽트 처리 루틴에서 해당 그룹에 속하는 미처리된 인터럽트들 중에서 우선 순위(priority)에 의하여 하나의 인터럽트가 결정된다. 상기의 결정 방식이 소프트웨어적인 폴링(polling) 방식이다. 하나의 인터럽트가 결정되면, 결정된 인터럽트에 대응되는 인터럽트 처리 루틴으로 다시 분기된다. 따라서, 이러한 소프트웨어적인 해결 방안은 추가적인 하드웨어 부담은 없으나, 인터럽트 처리까지 시간이 많이 소요되는 단점이 있다.One software solution is to group multiple interrupt sources and map them to a single interrupt vector. When an interrupt occurs, one interrupt is determined by priority among unprocessed interrupts belonging to the group in the interrupt processing routine. The above decision method is a software polling method. If one interrupt is determined, branches back to the interrupt processing routine corresponding to the determined interrupt. Therefore, this software solution has no additional hardware burden, but it takes a long time to process the interrupt.

하드웨어적인 해결 방안에서도, 다수의 인터럽트원들을 그룹화하는 것은 소프트웨어적인 방안과 동일하다. 그러나, 하나의 그룹에 속하는 미처리된 인터럽트들 중의 하나의 인터럽트를 결정하는 방식이 소프트웨어적인 폴링이 아니라, 하드웨어적인 폴링으로 이루어진다. 그러나, 하드웨어적인 폴링을 하더라도 인터럽트 처리 루틴을 할당하기 위해서는 최소한 두 번 분기한다. 상기와 같이, 두 번 이상 분기하게 되는 문제점을 해결하는 방안으로 확장된 인터럽트 벡터를 사용하는 방안이 종래에 제시된 적도 있다. 그러나, 종래의 확장된 인터럽트 벡터를 사용하는 방안은 확장된 인터럽트 벡터가 위치할 수 있는 메모리 상의 영역이 제한적이고, 처리 속도도 느린 단점이 있다.Even in the hardware solution, grouping multiple interrupt sources is the same as in the software solution. However, the method of determining the interrupt of one of the unprocessed interrupts belonging to one group is not a software poll but a hardware poll. However, even with hardware polling, branches at least twice to allocate an interrupt handling routine. As described above, a method of using an extended interrupt vector has been conventionally proposed to solve the problem of branching more than once. However, the conventional method of using the extended interrupt vector has a disadvantage in that the area on the memory where the extended interrupt vector can be located is limited and the processing speed is slow.

따라서, 마이크로 프로세서가 제공하는 인터럽트 벡터 영역에 대응하는 인터럽트원 보다 많은 인터럽트원을 처리할 때, 종래 기술에 의해서는 인터럽트 처리 시간이 길거나 확장된 인터럽트 벡터의 위치가 제한되는 문제점이 있다.Therefore, when processing more interrupt sources than the interrupt sources corresponding to the interrupt vector area provided by the microprocessor, the conventional technology has a problem that the interrupt processing time is long or the location of the extended interrupt vector is limited.

본 발명이 이루고자 하는 기술적 과제는 마이크로 프로세서가 제공하는 인터럽트 벡터 영역에 대응하는 인터럽트원 보다 많은 수의 인터럽트원으로부터 발생되는 인터럽트를 신속하게 처리하는 인터럽트 제어 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made in an effort to provide an interrupt control system for rapidly processing interrupts generated from a greater number of interrupt sources than an interrupt source corresponding to an interrupt vector region provided by a microprocessor.

본 발명이 이루고자 하는 다른 기술적 과제는 마이크로 프로세서가 제공하는 인터럽트 벡터 영역에 대응하는 인터럽트원 보다 많은 수의 인터럽트원으로부터 발생되는 인터럽트를 신속하게 처리하는 인터럽트 제어 방법을 제공하는 것이다.Another object of the present invention is to provide an interrupt control method for rapidly processing interrupts generated from a greater number of interrupt sources than an interrupt source corresponding to an interrupt vector region provided by a microprocessor.

도 1은 본 발명의 일 실시예에 따른 인터럽트 제어 시스템을 나타내는 도면이다.1 is a diagram illustrating an interrupt control system according to an exemplary embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 인터럽트 제어 방법을 나타내는 플로우챠트이다.2 is a flowchart illustrating an interrupt control method according to an exemplary embodiment of the present invention.

도 3은 도 2의 인터럽트 제어 방법에 따른 인터럽트 처리 과정 및 종래의 소프트웨어적인 폴링 방식에 따른 인터럽트 처리 과정을 비교하여 나타내는 도면이다.FIG. 3 is a diagram illustrating an interrupt process according to the interrupt control method of FIG. 2 and an interrupt process according to a conventional software polling method.

상기 기술적 과제를 이루기 위한 본 발명은 소정의 인터럽트 처리 요청 신호 발생시, 마이크로 프로세서가 소정의 원본 인터럽트 벡터의 주소 정보를 발생하고, 상기 주소 정보에 대응되는 정보에 따라서, 다수의 인터럽트 처리 루틴들 중에서해당 인터럽트 처리 루틴을 할당하는 인터럽트 제어 시스템에 관한 것이다. 바람직한 실시예에 따른 인터럽트 제어 시스템은 상기 다수의 인터럽트 처리 루틴들의 주소 정보들을 기록하는 확장 인터럽트 벡터 기록부로서, 각각의 인터럽트 처리 루틴의 주소 정보를 저장하는 다수 개의 벡터로 이루어지는 상기 확장 인터럽트 벡터 기록부; 소정의 규칙에 따라, 미처리된 인터럽트 중에서 어느 하나의 인터럽트를 선택하고, 선택된 인터럽트에 해당하는 인터럽트 처리 루틴의 주소 정보를 상기 확장 인터럽트 벡터로부터 추출하여 출력하는 인터럽트 폴링부; 상기 인터럽트 폴링부의 출력 정보를 저장하는 섀도우(shadow) 레지스터; 및 상기 마이크로 프로세서가 발생하는 상기 원본 인터럽트 벡터의 주소 정보를 수신하여, 상기 원본 인터럽트 벡터의 주소 정보를 대신하여 상기 섀도우 레지스터의 주소 정보를 발생하는 주소 재매핑부를 구비한다.According to an aspect of the present invention, a microprocessor generates address information of a predetermined original interrupt vector when a predetermined interrupt processing request signal is generated, and among the plurality of interrupt processing routines, according to the information corresponding to the address information. An interrupt control system for assigning interrupt handling routines. An interrupt control system according to a preferred embodiment includes an extended interrupt vector recorder for recording address information of the plurality of interrupt processing routines, the extended interrupt vector recorder comprising a plurality of vectors storing address information of each interrupt processing routine; An interrupt polling unit for selecting any one of the unprocessed interrupts according to a predetermined rule and extracting and outputting address information of an interrupt processing routine corresponding to the selected interrupt from the extended interrupt vector; A shadow register for storing output information of the interrupt polling unit; And an address remapping unit configured to receive the address information of the original interrupt vector generated by the microprocessor and generate address information of the shadow register in place of the address information of the original interrupt vector.

상기 다른 기술적 과제를 이루기 위한 본 발명은 확장 인터럽트 벡터를 사용하여 발생되는 인터럽트를 제어하는 방법에 관한 것이다. 바람직한 실시예에 따른 인터럽트 제어 방법은 A)상기 확장 인터럽트 벡터에 인터럽트 처리 루틴들의 주소 정보들이 저장되는 단계; B)소정의 원본 인터럽트 벡터의 주소 정보가 발생되는 단계; C)주소 재매핑부가 상기 원본 인터럽트 벡터의 주소 정보를 수신하여, 상기 원본 인터럽트 벡터의 주소 정보 대신에, 소정의 섀도우 레지스터의 주소 정보를 발생하는 단계; 및 D)상기 섀도우 레지스터에 입력되어 있는 주소 정보가 가리키는 인터럽트 처리 루틴이 할당되는 단계를 구비한다. 그리고, 상기 D)단계 이전에, 상기 섀도우 레지스터에는, 미처리된 인터럽트에 따라, 상기 확장 인터럽트 벡터에저장되어 있는 상기 인터럽트 처리 루틴의 주소 정보들 중의 어느 하나의 인터럽트 처리 루틴의 주소 정보가 입력된다.The present invention for achieving the above another technical problem relates to a method for controlling an interrupt generated by using an extended interrupt vector. According to a preferred embodiment, an interrupt control method includes: A) storing address information of interrupt processing routines in the extended interrupt vector; B) generating address information of a predetermined original interrupt vector; C) the address remapping unit receives the address information of the original interrupt vector, and generates address information of a predetermined shadow register instead of the address information of the original interrupt vector; And D) assigning an interrupt processing routine indicated by address information input to the shadow register. And, before the step D), the shadow register is input with the address information of any one of address information of the interrupt processing routine stored in the extended interrupt vector according to an unprocessed interrupt.

본 발명의 인터럽트 제어 시스템에 의하여, 다수의 인터럽트원으로부터 발생되는 인터럽트를 신속하게 처리할 수 있다. 그리고, 본 발명의 인터럽트 제어 시스템에서의 확장된 인터럽트 벡터는 메모리 상에서 자유롭게 위치할 수 있다.By the interrupt control system of the present invention, interrupts generated from a plurality of interrupt sources can be processed quickly. And, the extended interrupt vector in the interrupt control system of the present invention can be freely located on the memory.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 본 명세서에서는, 설명의 편의상, 각 도면을 통하여 동일한 역할을 수행하는 신호와 구성 요소는 동일한 참조 부호 및 참조 번호로 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the present specification, for convenience of description, signals and components that perform the same roles throughout the drawings are denoted by the same reference numerals and reference numerals.

도 1은 본 발명에 따른 인터럽트 제어 시스템을 나타내는 도면이다. 이를 참조하면, 바람직한 실시예에 따른 인터럽트 제어 시스템은 주소 재매핑부(13), 섀도우 레지스터(17), 인터럽트 폴링부(18) 및 확장 인터럽트 벡터부(19)를 구비한다.1 is a diagram illustrating an interrupt control system according to the present invention. Referring to this, the interrupt control system according to the preferred embodiment includes an address remapping unit 13, a shadow register 17, an interrupt polling unit 18, and an extended interrupt vector unit 19.

본 실시예의 인터럽트 제어 시스템은 인터럽트 처리 요청 신호(INT_REQ) 발생시, 원본 인터럽트 벡터(15)의 주소 정보를 발생하는 마이크로 프로세서(11)를 내장하는 시스템에서의 인터럽트 제어 시스템에 관한 것이다. 원본 인터럽트 벡터(15)는 인터럽트 처리 요청 신호(INT_REQ) 발생시 마이크로 프로세서(11)가 기본적으로 참조하는 인터럽트 벡터이다. 그러므로, 일반적으로는 원본 인터럽트 벡터(15)에 인터럽트 처리 루틴을 가리키는 주소 정보가 저장된다. 인터럽트 처리 요청 신호(INT_REQ)는, 마이크로 프로세서(11)로 하여금 인터럽트를 처리해줄 것을 요청하는 신호이다. 일반적으로, 인터럽트원으로부터 발생된 인터럽트들 중에서 미처리된 인터럽트가 있을 때 인터럽트 처리 요청 신호(INT_REQ)가 발생된다.The interrupt control system of this embodiment relates to an interrupt control system in a system incorporating a microprocessor 11 that generates address information of the original interrupt vector 15 when an interrupt processing request signal INT_REQ is generated. The original interrupt vector 15 is an interrupt vector that the microprocessor 11 basically refers to when the interrupt processing request signal INT_REQ is generated. Therefore, in general, address information indicating an interrupt processing routine is stored in the original interrupt vector 15. The interrupt processing request signal INT_REQ is a signal for requesting the microprocessor 11 to process an interrupt. In general, an interrupt processing request signal INT_REQ is generated when there is an unprocessed interrupt among interrupts generated from an interrupt source.

확장 인터럽트 벡터 기록부(19)는 다수의 인터럽트 처리 루틴들의 주소 정보들을 저장하는 메모리 영역으로서, 다수 개의 확장 인터럽트 벡터로 이루어진다. 확장 인터럽트 벡터 기록부(19)의 각 벡터는 각각의 인터럽트 처리 루틴의 주소 정보를 저장한다. 본 명세서에서는, 확장 인터럽트 벡터 기록부(19)는 제1 내지 제n 확장 인터럽트 벡터로 구성되는 것으로 한다.The extended interrupt vector recording unit 19 is a memory area for storing address information of a plurality of interrupt processing routines, and is composed of a plurality of extended interrupt vectors. Each vector of the extended interrupt vector recording unit 19 stores address information of each interrupt processing routine. In this specification, the extended interrupt vector recording unit 19 is composed of the first to nth extended interrupt vectors.

인터럽트 폴링부(18)는 소정의 규칙에 따라, 미처리된 인터럽트 중에서 어느 하나의 인터럽트를 선택한다. 바람직하기로는, 인터럽트 폴링부(18)는 미처리된 인터럽트들 중에서 매스킹(masking) 되어 있지 않은 인터럽트들 가운데 인터럽트 우선 순위에 의하여, 하나의 인터럽트를 하드웨어적으로 선택한다. 매스킹(masking)이란, 인터럽트 발생시, 그 인터럽트를 처리해줄 것인지의 여부를 미리 정해 놓은 것이다. 인터럽트 폴링부(18)는 선택된 인터럽트에 해당하는 인터럽트 처리 루틴의 주소 정보를 저장하고 있는 하나의 확장 인터럽트 벡터를 확장 인터럽트 벡터 기록부(19) 중에서 하드웨어적으로 선택한다. 그리고, 선택된 확장 인터럽트 벡터에 저장되어 있는 정보를 추출하여 출력한다.The interrupt polling unit 18 selects one interrupt among unprocessed interrupts according to a predetermined rule. Preferably, the interrupt polling unit 18 selects one interrupt in hardware according to an interrupt priority among interrupts that are not masked among unprocessed interrupts. Masking is a decision on whether or not to handle an interrupt when an interrupt occurs. The interrupt polling unit 18 hardware-selects one extended interrupt vector storing the address information of the interrupt processing routine corresponding to the selected interrupt from the extended interrupt vector recording unit 19. The information stored in the selected extended interrupt vector is extracted and output.

바람직하기로는, 인터럽트 폴링부(18)는 선택기(183)와 선택 신호 발생부(183)를 포함한다. 선택 신호 발생부(183)는 인터럽트(INTi) 발생시, 확장인터럽트 벡터 기록부(19) 중에서 하나의 확장 인터럽트 벡터를 선택하기 위한 선택 신호(SEL)를 발생한다. 그리고, 선택기(181)는 선택 신호(SEL)에 의해 확장 인터럽트 벡터 기록부(19)의 하나의 벡터를 선택한다.Preferably, the interrupt polling unit 18 includes a selector 183 and a selection signal generator 183. The select signal generator 183 generates a select signal SEL for selecting one extended interrupt vector from the extended interrupt vector recorder 19 when an interrupt INTi is generated. The selector 181 selects one vector of the extended interrupt vector recording unit 19 by the selection signal SEL.

섀도우 레지스터(17)는 읽기 전용 (read-only) 레지스터이며, 인터럽트 폴링부(18)의 출력 정보인 인터럽트 처리 루틴의 주소 정보를 저장한다. 바람직하기로는, 섀도우 레지스터(17)의 수는 원본 인터럽트 벡터의 수보다 작거나 같으며, 확장 인터럽트 벡터 기록부(19)의 어느 한 벡터는 적어도 하나의 섀도우 레지스터(17)에 매핑된다.The shadow register 17 is a read-only register and stores address information of an interrupt processing routine which is output information of the interrupt polling unit 18. Preferably, the number of shadow registers 17 is less than or equal to the number of original interrupt vectors, and either vector of the extended interrupt vector recorder 19 is mapped to at least one shadow register 17.

주소 재매핑부(13)는 마이크로 프로세서(11)가 발생하는 원본 인터럽트 벡터(15)의 주소 정보를 수신하여, 원본 인터럽트 벡터(15)의 주소 정보 대신에, 섀도우 레지스터(17)의 주소 정보를 발생한다. 따라서, 마이크로 프로세서(11)가 발생된 인터럽트 요청 신호(INT_REQ)에 응답하여, 원본 인터럽트 벡터(15)를 참조하기 위해 원본 인터럽트 벡터(15)의 주소 정보를 발생하면, 발생된 원본 인터럽트 벡터(15)의 주소 정보에 응답하여, 얻어지는 정보는 섀도우 레지스터(17)에 저장되어 있는 정보이다. 바람직하기로는, 주소 재매핑부(13)는 섀도우 레지스터(17)가 사용되고 있음을 알려주는 소정의 제어 신호(SR_EN)가 활성화되어 있을 때만, 원본 인터럽트 벡터(15)의 주소 정보를 대신하여 섀도우 레지스터(17)의 주소 정보를 발생한다.The address remapping unit 13 receives the address information of the original interrupt vector 15 generated by the microprocessor 11, and replaces the address information of the shadow register 17 instead of the address information of the original interrupt vector 15. Occurs. Therefore, when the microprocessor 11 generates address information of the original interrupt vector 15 to refer to the original interrupt vector 15 in response to the generated interrupt request signal INT_REQ, the generated original interrupt vector 15 is generated. In response to the address information of "), the obtained information is information stored in the shadow register 17. " Preferably, the address remapping unit 13 replaces the shadow register in place of the address information of the original interrupt vector 15 only when a predetermined control signal SR_EN indicating that the shadow register 17 is being used is activated. Generates the address information of (17).

또한, 바람직하기로는, 주소 재매핑부(13)는 일반적으로 메모리 관리 장치(MMU, Memory Management Unit)로 불리는 장치에 포함된다. 메모리 관리 장치란 메모리에 편리하게 억세스할 수 있도록 메모리 주소를 관리하며, 또한 메모리의 논리 주소를 물리 주소로 변환하는 등의 기능을 담당하는 장치이다.Also, preferably, the address remapping unit 13 is included in a device generally called a memory management unit (MMU). The memory management device manages a memory address for convenient access to the memory, and is a device that performs a function such as converting a logical address of the memory into a physical address.

도 2는 본 발명의 일 실시예에 따른 인터럽트 제어 방법을 나타내는 플로우챠트이다. 이를 참조하여, 본 발명의 인터럽트 제어 방법을 기술하면, 다음과 같다. 그리고, 본 실시예의 인터럽트 제어 방법은 도 1의 인터럽트 제어 시스템에 적용되는 것으로 한다. 따라서, 설명의 편의상, 도 1의 참조 번호 및 참조 부호를 그대로 인용한다.2 is a flowchart illustrating an interrupt control method according to an exemplary embodiment of the present invention. Referring to this, the interrupt control method of the present invention is described as follows. In addition, the interrupt control method of this embodiment is applied to the interrupt control system of FIG. Therefore, for convenience of explanation, the reference numerals and reference numerals of FIG.

먼저, 확장 인터럽트 벡터 기록부(19)의 각 확장 인터럽트 벡터에 인터럽트 처리 루틴들의 주소 정보들이 저장된다(203). 이 과정은 시스템의 초기화 과정에서, 즉 마이크로 프로세서의 부팅시 주로 일어난다. 마이크로 프로세서(11)에 의하여 원본 인터럽트 벡터(15)의 주소가 발생된다(205). 이 과정은 마이크로 프로세서(11)가 인터럽트 처리 요청 신호(INT_REQ)를 수신하면 일어난다. 원본 인터럽트 벡터(15)의 주소가 발생되면, 주소 재매핑부(13)가 원본 인터럽트(15)의 주소 정보를 대신하여 섀도우 레지스터(17)의 주소 정보를 발생한다(207). 그러면, 섀도우 레지스터(17)에 저장되어 있는 주소 정보가 가리키는 인터럽트 처리 루틴이 할당되어 인터럽트가 처리된다(209). 그런데, 마지막 단계(209) 이전에 인터럽트 폴링부(18)에 의하여, 미처리된 인터럽트 중의 어느 하나의 인터럽트가 선택되고, 선택된 인터럽트에 해당하는 인터럽트 처리 루틴의 주소 정보가 확장 인터럽트 벡터부(19)로부터 추출되어 섀도우 레지스터(17)에 저장된다.First, address information of interrupt processing routines is stored in each extended interrupt vector of the extended interrupt vector recording unit 19 (203). This process occurs mainly during the initialization of the system, i.e. when the microprocessor boots. The microprocessor 11 generates the address of the original interrupt vector 15 (205). This process occurs when the microprocessor 11 receives the interrupt processing request signal INT_REQ. When the address of the original interrupt vector 15 is generated, the address remapping unit 13 generates address information of the shadow register 17 in place of the address information of the original interrupt 15 (207). Then, the interrupt processing routine indicated by the address information stored in the shadow register 17 is allocated and the interrupt is processed (209). However, before the last step 209, by the interrupt polling unit 18, any interrupt among unprocessed interrupts is selected, and address information of the interrupt processing routine corresponding to the selected interrupt is received from the extended interrupt vector unit 19. It is extracted and stored in the shadow register 17.

도 3은 도 2의 인터럽트 제어 방법에 따른 인터럽트 처리 과정 및 종래의 소프트웨어적인 폴링 방식에 따른 인터럽트 처리 과정을 비교하여 나타내는 도면이다. 이를 참조하여, 인터럽트 발생시, 본 발명의 인터럽트 제어 방법에 따라, 원하는 인터럽트 처리 루틴에 도달하는 과정을 종래의 소프트웨어 폴링 방법에 따라 동일 인터럽트 처리 루틴에 도달하는 과정과 비교하여 기술한다.FIG. 3 is a diagram illustrating an interrupt process according to the interrupt control method of FIG. 2 and an interrupt process according to a conventional software polling method. Referring to this, when an interrupt occurs, the process of reaching the desired interrupt processing routine according to the interrupt control method of the present invention will be described in comparison with the process of reaching the same interrupt processing routine according to the conventional software polling method.

과정 11 내지 13은 소프트웨어적인 폴링 방식에 따른 것이다. 먼저, 과정 11을 보면, 인터럽트 처리 요청 신호(INT_REQ)가 발생되면, 마이크로 프로세서는 원본 인터럽트 벡터를 참조한다. 그리고, 원본 인터럽트 벡터에는 소프트웨어적인 인터럽트 폴링 루틴을 가리키는 주소 정보가 들어 있다. 따라서, 소프트웨어적인 인터럽트 처리 루틴으로 분기된다(과정 12). 소프트웨어적인 인터럽트 폴링 루틴에서는, 발생된 인터럽트들 중에서 미처리된 인터럽트의 매스킹 여부 및 우선 순위 등에 따라 하나의 인터럽트가 선택된다. 그리고, 선택된 하나의 인터럽트를 처리하기 위해, 해당 인터럽트 처리 루틴으로 분기된다(과정 13). 여기서는 원하는 인터럽트 처리 루틴은 제2 인터럽트 처리 루틴인 것으로 한다. 따라서, 인터럽트 처리 요청 신호(INT_REQ) 발생 후 2번의 분기를 거친다.Steps 11 to 13 are based on software polling. First, in step 11, when the interrupt processing request signal INT_REQ is generated, the microprocessor refers to the original interrupt vector. The original interrupt vector contains address information that points to the software interrupt polling routine. Thus, the process branches to a software interrupt processing routine (step 12). In the software interrupt polling routine, one interrupt is selected among the generated interrupts according to whether or not the unprocessed interrupt is masked and priority. Then, to process the selected one interrupt, it branches to the corresponding interrupt processing routine (step 13). It is assumed here that the desired interrupt processing routine is the second interrupt processing routine. Therefore, two branches are passed after the interrupt processing request signal INT_REQ is generated.

한편, 과정 21 내지 22는 본 발명의 인터럽트 제어 방법에 따른 것이다. 먼저, 인터럽트 요청 신호(INT_REQ)가 발생되면, 마이크로 프로세서는 원본 인터럽트 벡터를 참조하려고 한다. 그러나, 실제 참조되는 것은 원본 인터럽트 벡터가 아니라, 섀도우 레지스터이다. 섀도우 레지스터에는 하드웨어 폴링에 의해 인터럽트 처리 루틴들 중의 하나인 제2 인터럽트 처리 루틴의 주소 정보가 들어 있다. 따라서, 섀도우 레지스터를 참조한 후 바로 원하는 인터럽트 처리 루틴으로 분기된다.On the other hand, processes 21 to 22 are according to the interrupt control method of the present invention. First, when the interrupt request signal INT_REQ is generated, the microprocessor tries to refer to the original interrupt vector. However, what is actually referenced is the shadow register, not the original interrupt vector. The shadow register contains address information of the second interrupt handling routine, which is one of the interrupt handling routines by hardware polling. Thus, the branch to the desired interrupt handling routine immediately after referencing the shadow register.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명의 인터럽트 제어 시스템에 의하여, 마이크로 프로세서가 제공하는 인터럽트 벡터 영역에 대응하는 인터럽트원 보다 많은 수의 인터럽트원으로부터 발생되는 인터럽트를 신속하게 처리할 수 있다.By the interrupt control system of the present invention, interrupts generated from a greater number of interrupt sources than the interrupt sources corresponding to the interrupt vector regions provided by the microprocessor can be processed quickly.

Claims (5)

소정의 인터럽트 처리 요청 신호 발생시, 마이크로 프로세서가 소정의 원본 인터럽트 벡터의 주소 정보를 발생하고, 상기 주소 정보에 대응되는 정보에 따라서, 다수의 인터럽트 처리 루틴들 중에서 해당 인터럽트 처리 루틴을 할당하는 인터럽트 제어 시스템에 있어서,When a predetermined interrupt processing request signal is generated, the microprocessor generates address information of a predetermined original interrupt vector and allocates the corresponding interrupt processing routine among a plurality of interrupt processing routines according to the information corresponding to the address information. To 상기 다수의 인터럽트 처리 루틴들의 주소 정보들을 기록하는 확장 인터럽트 벡터 기록부로서, 각각의 인터럽트 처리 루틴의 주소 정보를 저장하는 다수 개의 벡터로 이루어지는 상기 확장 인터럽트 벡터 기록부;An extended interrupt vector recording unit for recording address information of the plurality of interrupt processing routines, the extended interrupt vector recording unit comprising a plurality of vectors storing address information of each interrupt processing routine; 소정의 규칙에 따라, 미처리된 인터럽트 중에서 어느 하나의 인터럽트를 선택하고, 선택된 인터럽트에 해당하는 인터럽트 처리 루틴의 주소 정보를 상기 확장 인터럽트 벡터 기록부로부터 추출하여 출력하는 인터럽트 폴링부;An interrupt polling unit for selecting any one of the unprocessed interrupts according to a predetermined rule and extracting and outputting address information of an interrupt processing routine corresponding to the selected interrupt from the extended interrupt vector recording unit; 상기 인터럽트 폴링부의 출력 정보를 저장하는 섀도우 레지스터; 및A shadow register for storing output information of the interrupt polling unit; And 상기 마이크로 프로세서가 발생하는 상기 원본 인터럽트 벡터의 주소 정보를 수신하여, 상기 원본 인터럽트 벡터의 주소 정보를 대신하여 상기 섀도우 레지스터의 주소 정보를 발생하는 주소 재매핑부를 구비하는 것을 특징으로 하는 인터럽트 제어 시스템.And an address remapping unit configured to receive the address information of the original interrupt vector generated by the microprocessor and generate address information of the shadow register in place of the address information of the original interrupt vector. 제1 항에 있어서, 상기 주소 재매핑부는The method of claim 1, wherein the address remapping unit 상기 섀도우 레지스터가 사용되고 있음을 알려주는 소정의 제어 신호의 활성화에 응답하여, 상기 원본 인터럽트 벡터의 주소 정보를 대신하여 상기 섀도우 레지스터의 주소 정보를 발생하는 것을 특징으로 하는 인터럽트 제어 시스템.And in response to the activation of a predetermined control signal indicating that the shadow register is in use, generating address information of the shadow register in place of the address information of the original interrupt vector. 제1 항에 있어서, 상기 섀도우 레지스터는The method of claim 1, wherein the shadow register is 읽기 전용 레지스터인 것을 특징으로 하는 인터럽트 제어 시스템.Interrupt control system, characterized in that the read-only register. 제5 항에 있어서,The method of claim 5, 상기 섀도우 레지스터의 수는 상기 원본 인터럽트 벡터의 수보다 작거나 같으며,The number of shadow registers is less than or equal to the number of original interrupt vectors, 상기 확장 인터럽트 벡터 기록부의 어느 한 벡터는 적어도 하나의 섀도우 레지스터에 매핑되는 것을 특징으로 하는 인터럽트 제어 시스템.And any vector of the extended interrupt vector recorder is mapped to at least one shadow register. 확장 인터럽트 벡터를 사용하여 발생되는 인터럽트를 제어하는 방법에 있어서,In a method of controlling interrupts generated using an extended interrupt vector, A)상기 확장 인터럽트 벡터에 인터럽트 처리 루틴들의 주소 정보들이 저장되는 단계;A) storing address information of interrupt processing routines in the extended interrupt vector; B)소정의 원본 인터럽트 벡터의 주소 정보가 발생되는 단계;B) generating address information of a predetermined original interrupt vector; C)메모리 관리부가 상기 원본 인터럽트 벡터의 주소 정보를 수신하여, 상기 원본 인터럽트 벡터의 주소 정보 대신에, 소정의 섀도우 레지스터의 주소 정보를 발생하는 단계; 및C) the memory manager receiving address information of the original interrupt vector, and generating address information of a predetermined shadow register instead of the address information of the original interrupt vector; And D)상기 섀도우 레지스터에 입력되어 있는 주소 정보가 가리키는 인터럽트 처리 루틴이 할당되는 단계를 구비하며,D) assigning an interrupt processing routine indicated by the address information input to the shadow register, 상기 D)단계 이전에, 상기 섀도우 레지스터에는, 미처리된 인터럽트에 따라, 상기 확장 인터럽트 벡터에 저장되어 있는 상기 인터럽트 처리 루틴의 주소 정보들 중의 어느 하나의 인터럽트 처리 루틴의 주소 정보가 입력되는 것을 특징으로 하는 인터럽트 제어 방법.Before the step D), the shadow register is input with the address information of any one of the address information of the interrupt processing routine stored in the extended interrupt vector according to an unprocessed interrupt. Interrupt control method.
KR1020000008575A 2000-02-22 2000-02-22 Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors KR20010082982A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000008575A KR20010082982A (en) 2000-02-22 2000-02-22 Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000008575A KR20010082982A (en) 2000-02-22 2000-02-22 Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors

Publications (1)

Publication Number Publication Date
KR20010082982A true KR20010082982A (en) 2001-08-31

Family

ID=19648881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000008575A KR20010082982A (en) 2000-02-22 2000-02-22 Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors

Country Status (1)

Country Link
KR (1) KR20010082982A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100428799B1 (en) * 2001-09-04 2004-04-28 엘지전자 주식회사 Hardware interrupt handling method implementing polling scheme
KR100663709B1 (en) * 2005-12-28 2007-01-03 삼성전자주식회사 Apparatus and method of exception handling for reconfigurable architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100428799B1 (en) * 2001-09-04 2004-04-28 엘지전자 주식회사 Hardware interrupt handling method implementing polling scheme
KR100663709B1 (en) * 2005-12-28 2007-01-03 삼성전자주식회사 Apparatus and method of exception handling for reconfigurable architecture

Similar Documents

Publication Publication Date Title
US5740464A (en) Architecture for providing input/output operations in a computer system
US5758182A (en) DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus
US5721947A (en) Apparatus adapted to be joined between the system I/O bus and I/O devices which translates addresses furnished directly by an application program
US6470380B1 (en) Signal processing device accessible as memory
KR100733852B1 (en) Computer system
US3854126A (en) Circuit for converting virtual addresses into physical addresses
US6023749A (en) Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
JP3330378B2 (en) Real-time programming language accelerator
CA2137488C (en) Coexecuting method and means for performing parallel processing in conventional types of data processing systems
US6401155B1 (en) Interrupt/software-controlled thread processing
US4849882A (en) Vector processing system for processing plural vector instruction streams
US5805930A (en) System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs
US5924126A (en) Method and apparatus for providing address translations for input/output operations in a computer system
EP0523863B1 (en) Digital data processor for high level instructions
US5918050A (en) Apparatus accessed at a physical I/O address for address and data translation and for context switching of I/O devices in response to commands from application programs
US5638535A (en) Method and apparatus for providing flow control with lying for input/output operations in a computer system
US5077654A (en) Virtual machine system which translates virtual address from a selected virtual machine into real address of main storage
US5640591A (en) Method and apparatus for naming input/output devices in a computer system
KR100817047B1 (en) Interrupt controller
US5764861A (en) Apparatus and method for controlling context of input/output devices in a computer system
US5685011A (en) Apparatus for handling failures to provide a safe address translation in an improved input/output architecture for a computer system
KR20010082982A (en) Interrupt Management System and Interrupt Management Method using Expanded Interrupt Vectors
US7299467B2 (en) Method and system for minimizing memory access latency in a computer system
EP0953905A2 (en) Method and apparatus for switching tasks
JPS6336012B2 (en)

Legal Events

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