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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B33/00—Constructional parts, details or accessories not provided for in the other groups of this subclass
- G11B33/02—Cabinets; Cases; Stands; Disposition of apparatus therein or thereon
- G11B33/04—Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers
- G11B33/0405—Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers for storing discs
- G11B33/0433—Multiple disc containers
- G11B33/0438—Multiple disc containers for disc cartridges
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2512—Floppy disks
Abstract
Description
본 발명은 인터럽트 제어 시스템에 관한 것으로서, 특히 다수개의 인터럽트를 다룰 수 있도록 인터럽트 벡터를 확장하여 사용하는 인터럽트 제어 시스템에 관한 것이다.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)
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)
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 |
-
2000
- 2000-02-22 KR KR1020000008575A patent/KR20010082982A/en not_active Application Discontinuation
Cited By (2)
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 |