KR100199033B1 - A multi-interrupt control device and method using compromised type on pci bus - Google Patents

A multi-interrupt control device and method using compromised type on pci bus Download PDF

Info

Publication number
KR100199033B1
KR100199033B1 KR1019960061993A KR19960061993A KR100199033B1 KR 100199033 B1 KR100199033 B1 KR 100199033B1 KR 1019960061993 A KR1019960061993 A KR 1019960061993A KR 19960061993 A KR19960061993 A KR 19960061993A KR 100199033 B1 KR100199033 B1 KR 100199033B1
Authority
KR
South Korea
Prior art keywords
interrupt
queue
flag
pci bus
priority
Prior art date
Application number
KR1019960061993A
Other languages
Korean (ko)
Other versions
KR19980044002A (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 KR1019960061993A priority Critical patent/KR100199033B1/en
Publication of KR19980044002A publication Critical patent/KR19980044002A/en
Application granted granted Critical
Publication of KR100199033B1 publication Critical patent/KR100199033B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 PCI 버스에 연결하여 사용하게 될 시스템과 호스트 시스템 사이의 인터럽트를 처리하기 위한 절충식 PCI 버스용 다중 인터럽트 제어장치 및 그 방법에 관한 것으로서, 종래기술에서의 인터럽트 처리상의 어려움, 타 시스템과의 인터럽트 사용에 있어서의 제약성, PCI 버스를 통한 최우선 인터럽트 자원 처리 불가능 등의 문제점을 해결하기 위해, 본 발명은 호스트 시스템이 PCI 버스에 연결된 시스템내의 다수개의 인터럽트 자원들을 PCI 버스중 한개의 인터럽트 라인을 통해 발생순서, 우선순위 및 사용자가 설정한 최우선순위에 따라 인터럽트를 처리할수 있도록 하기 위해 제안된 것이다.The present invention relates to a multi-interrupt control device and a method for a compromise PCI bus for handling interrupts between a system and a host system to be connected to the PCI bus, difficulty in interrupt processing in the prior art, and other systems In order to solve the problems such as the limitation of the use of interrupts and the inability to handle the highest priority interrupt resource through the PCI bus, the present invention provides a method for a host system to allocate a plurality of interrupt resources in a system connected to the PCI bus. It is proposed to handle interrupts in order of occurrence, priority, and user-set priority.

Description

절충식 PCI 버스용 다중 인터럽트 제어 장치 및 방법Multiple Interrupt Control Units and Methods for an Affordable PCI Bus

본 발명은 PCI 버스에 연결하여 사용하게 될 시스템과 호스트 시스템 사이의 인터럽트를 처리하기 위한 절충식 PCI 버스용 다중 인터럽트 제어 장치 및 방법에 관한 것이다.The present invention relates to a multiple interrupt control apparatus and method for a compromise PCI bus for handling interrupts between a system and a host system to be used in connection with a PCI bus.

종래에는 PCI 버스에 연결된 시스템내에서 한개의 인터럽트로 만족했으나, 칩의 소형화 및 시스템의 다기능화로 인해 호스트 버스에 연결된 시스템내의 인터럽트 자원들이 다수개가 되어, 인터럽트 처리상의 어려움과 인터럽트 우선순위에 따른 인터럽트 기아(Starvation)현상이 발생하고 유동적인 최우선 인터럽트 처리의 요구를 수용하기 어려우며, 타 시스템과 동시에 사용시 인터럽트의 충돌이 야기되는등 시스템의 성능 및 이용에 많은 제약을 가하는 문제점이 발생하였다. 또한 시스템 내의 인터럽트 자원중에 최우선적으로 처래해야 하는 자원이 있을 경우 이를 PCI 버스를 통하여 처리할 수 없게 된다.Conventionally, a single interrupt is satisfied in a system connected to a PCI bus, but due to the miniaturization of the chip and the multifunction of the system, there are many interrupt resources in the system connected to the host bus. (Starvation) occurs, it is difficult to accommodate the needs of the flexible priority interrupt processing, and the problem of placing a lot of restrictions on the performance and use of the system, such as causing an interrupt collision when used simultaneously with other systems. In addition, if any interrupt resources in the system need to be processed first, they cannot be processed through the PCI bus.

본 발명은 PCI 버스에 연결된 시스템내의 다수개의 인터럽트 자원들을 PCI 버스중 한개의 인터럽트 라인을 통해, 호스트 시스템이 발생순서, 우선순위 및 호스트로부터 지정된 최우선순위에 따라 인터럽트를 처리할 수 있도록 하기 위하여, 시스템내의 로컬 인터럽트 자원들로부터의 인터럽트를 큐 및 플래그를 효율적으로 관리하여, 시스템내의 로컬 인터럽트 자원들의 인터럽트 처리를 기아현상 없이 발생 순서, 우선순위 및 최우선순위에 따라 처리할 수 있도록 해주기 위한 것이다.The present invention provides a system for processing a plurality of interrupt resources in a system connected to a PCI bus through an interrupt line of one of the PCI buses so that the host system can process the interrupts according to the order of occurrence, priority, and the highest priority designated by the host. It is to efficiently manage interrupts from local interrupt resources in the queue and flags so that interrupt processing of local interrupt resources in the system can be processed according to the order of occurrence, priority and priority without starvation.

제1도는 본 발명과 주변 관계 기능 블록을 나타낸 블록 구성도.1 is a block diagram showing the present invention and the peripheral relationship functional block.

제2도는 본 발명의 절충식 PCI 버스용 다중 인터럽트 제어장치의 블럭 구성도.2 is a block diagram of a multiple interrupt controller for a compromise PCI bus of the present invention.

제3도는 본 발명에 따른 인터럽트 검출기의 제어 흐름도.3 is a control flowchart of an interrupt detector according to the present invention.

제4도는 본 발명에 따른 인터럽트 큐 제어기의 제어 흐름도.4 is a control flowchart of an interrupt queue controller according to the present invention.

제5도는 본 발명에 따른 인터럽트 큐 입출력 제어기의 제어 흐름도.5 is a control flowchart of an interrupt queue input / output controller according to the present invention.

제6도는 최우선순위 인터럽트 지정 흐름도.6 is a high priority interrupt designation flow chart.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

410 : 최우선순위 인터럽트 레지스터 420 : 인터럽트 검출기410: highest priority interrupt register 420: interrupt detector

430 : 최우선순위 플래그 440 : 인터럽트 플래그430: highest priority flag 440: interrupt flag

450 : 인터럽트 큐 제어기 451 : 큐 카운터450: interrupt queue controller 451: queue counter

460 : 인터럽트 큐 470 : 인터럽트 큐 입출력 제어기460: interrupt queue 470: interrupt queue input and output controller

480 : 우선순위 인코더480: Priority Encoder

상기 목적을 달성하기 위한 본 발명의 절충식 PCI버스용 다중 인터럽트 제어는, PCI 버스에 연결된 호스트로 부터 시스템내의 다수개의 인터럽트 자원들을 PCI 버스중 한개의 인터럽트 라인을 통해 처리하기 위해, 인터럽트 검출기로부터 인터럽트를 검출하여 인터럽트 플래그를 셋트하고 이 플래그 상태로부터 인터럽트 우선순위를 결정하며, 인터럽트 큐 제어기에 큐 입력을 요청하고 이를 확인 받아 인터럽트 플래그를 리셋트 처리하는 과정과; 큐 입력 요청을 받으면 인터럽트 큐에 인터럽트 정보를 셋트하고 큐 카운터를 증가 시키고 큐입력을 확인하며, 큐 쉬프트 요구를 받으면 인터럽트 큐를 오른쪽으로 쉬프트하고 큐 카운터를 감소시키는 과정과; 인터럽트 큐의 큐 플래그를 검사하여 세트되었으면 호스트에 인터럽트를 요구하고 호스트로부터 인터럽트 정보를 요구 받으면 이를 전송하고 큐 쉬프트 요청 하는 과정으로 이루어지고, 또한 상기 호스트로부터 최우선순위 인터럽트 지정을 요구 받으면, 이를 최우선 순위 인터럽트 레지스터에 등록하고, 이 정보를 인터럽트 검출기에 등록되도록 하는 과정을 포함한 것을 특징으로 한다.Multi-interrupt control for a compromised PCI bus of the present invention for achieving the above object, interrupt from the interrupt detector to process a plurality of interrupt resources in the system from one host connected to the PCI bus through one interrupt line of the PCI bus Detecting and setting an interrupt flag, determining an interrupt priority from the flag state, requesting a queue input from the interrupt queue controller, and acknowledging the reset flag; Setting interrupt information in the interrupt queue, incrementing the queue counter, confirming the queue input upon receiving a queue input request, and shifting the interrupt queue to the right and decreasing the queue counter upon receiving a queue shift request; If the queue flag of the interrupt queue is set and checked, the host requests an interrupt and receives interrupt information from the host, transmits it, and requests a queue shift. Also, if the host is requested to designate the highest priority interrupt, this is the highest priority. And registering the information in the interrupt register and registering the information in the interrupt detector.

이하, 본 발명을 첨부된 도면을 참조해서 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

제1도는 본 발명의 구성과 주변 관계 기능 블록을 나타낸 블록도이며, 호스트 시스템(100)과 PCI 버스(110)를 통해 연결되게 되는 PCI 버스용 시스템을 나타낸다.1 is a block diagram showing the configuration of the present invention and the peripheral function block, and shows a system for a PCI bus that is to be connected to the host system 100 and the PCI bus 110.

PCI 버스용 시스템은 필수 요소로서, PCI 버스를 통한 데이타 전송을 담당하는 PCI 버스 마스터/슬레이브 제어기(200), PCI 버스의 구성을 저장하는 PCI 버스 구성 레지스터(300)로 구성되며, 이들 필수 요소들과 본 발명에 의한 PCI 버스용 다중 인터럽트 제어기(400)와의 연결 상태를 나타낸 것이다.The system for the PCI bus is an essential element, which is composed of a PCI bus master / slave controller 200 that is responsible for data transfer over the PCI bus, and a PCI bus configuration register 300 that stores the configuration of the PCI bus. And it shows the connection state with the multiple interrupt controller 400 for the PCI bus according to the present invention.

PCI 버스용 다중 인터럽트 제어기(400)는 다수개의 로컬 인터럽트 자원들(500)로 부터의 로컬 인터럽트들을 받아 이를 PCI 버스(110)를 통해 연결된 호스트 시스템(100)으로 인터럽트를 전달하기 위한 처리를 담당하게 되며, 다중 인터럽트 제어기(400)와 호스트 시스템(100)과는 PCI 버스(110)를 통한 인터럽트 라인이 직접적으로 연결된다.The multi-interrupt controller 400 for the PCI bus receives local interrupts from the plurality of local interrupt resources 500 and is responsible for processing to deliver the interrupts to the host system 100 connected through the PCI bus 110. An interrupt line through the PCI bus 110 is directly connected to the multiple interrupt controller 400 and the host system 100.

호스트 시스템(100)으로부터의 큐 출력 요구는 PCI 버스용 시스템의 필수 요소인 PCI 버스 마스터/슬레이브 제어기(200)를 통해 다중 인터럽트 제어기(400)로 전달되게 됨을 나타낸다.The queue output request from the host system 100 indicates that it will be delivered to the multiple interrupt controller 400 via the PCI bus master / slave controller 200 which is an integral part of the system for the PCI bus.

제2도는 본 발명의 절충식 PCI 버스용 다중 인터럽트 제어장치(400)의 내부 블록 구성도로서, 크게 인터럽트 검출기(420), 인터럽트 플래그 (440), 우선순위 결정기(480), 인터럽트 큐 제어기(450), 큐 카운터(451), 인터럽트 큐(460), 인터럽트 큐 입출력 제어기(470), 최우선순위 인터럽트 레지스터(410) 및 최우선순위 플래그(430)로 구성된다.2 is an internal block diagram of the multi-interrupt controller 400 for the compromised PCI bus of the present invention, which is largely an interrupt detector 420, an interrupt flag 440, a priority determiner 480, and an interrupt queue controller 450. ), A queue counter 451, an interrupt queue 460, an interrupt queue input / output controller 470, a highest priority interrupt register 410, and a highest priority flag 430.

최우선선위 인터럽트는 상기한 호스트 시스템(100)으로부터 최우선순위 인터럽트 레지스터(410)에 지정되도록 하며, 최우선순위 인터럽트 레지스터(410)가 인터럽트 검출기(420)로 최우선순위 인터럽트 정보를 전달하게 된다.The highest priority interrupt is assigned to the highest priority interrupt register 410 from the host system 100, and the highest priority interrupt register 410 transmits the highest priority interrupt information to the interrupt detector 420.

인터럽트 검출기(420)는 로컬 인터럽트 자원(1,2,3, ... ,n)들로 부터의 인터럽트를 검출한 후, 검출된 인터럽트와 최우선순위 인터럽트 정보를 비교하여, 최우선순위 인터럽트인 경우는 최우선순위 플래그(430)를 셋트(425)하고, 그렇지 않은 경우는 해당 인터럽트 플래그(440)를 세트(425)하고, 인터럽트 정보를 인터럽트 큐(460)에 쓰기 위하여 인터럽트 큐 제어기(450)에 큐 입력 요청(426)을 한다. 이때 여러개의 인터럽트가 동시에 검출되면, 동시에 검출된 여러개의 인터럽트사이의 우선순위를 우선순위 인코더(480)에 의해 결정하고, 이 순위에 따라 순차적으로 인터럽트 큐 제어기(450)로 큐 입력 요청(426)을 하며, 인터럽트 큐 제어기(450)로부터의 큐 입력 확인 신호(427)를 받아 해당 플래그를 리셋트(425)하는 동작을 인터럽트 요구 검출 수 만큼 반복 수행한다.The interrupt detector 420 detects interrupts from local interrupt resources (1, 2, 3, ..., n), and then compares the detected interrupts with the highest priority interrupt information. Set 425 the highest priority flag 430, otherwise set 425 the corresponding interrupt flag 440, and queue the interrupt queue controller 450 to write interrupt information to the interrupt queue 460. Make a request 426. At this time, if multiple interrupts are detected at the same time, the priority among the multiple detected interrupts is determined by the priority encoder 480, and the queue input request 426 to the interrupt queue controller 450 sequentially according to the priority. In response to the queue input confirmation signal 427 from the interrupt queue controller 450, the operation of resetting the flag 425 is repeated as many as the interrupt request detection number.

그리고 인터럽트 큐 제어기(450)는 인터럽트 검출기(420)로부터의 큐 입력 요청(426) 및 인터럽트 큐 입출력 제어기(470)로부터의 큐 쉬프트 요청(471)을 받아 인터럽트 큐(460)를 제어하게 되며, 큐를 어드레싱하기 위한 큐 카운터(451)를 구비하고 있다. 이는 인터럽트 검출기(420)로부터의 큐 입력 요청(426)이 오면, 현재 큐 카운터(451) 값에 해당하는 인터럽트 큐(460)에 입력하고 큐 카운터를 증가시킨 후, 인터럽트 검출기(420)로 큐 입력 확인(427)을 보내는 것으로 큐 입력(452)을 완료하게 되고, 인터럽트 큐 입출력 제어기(470)로부터의 큐 쉬프트 요청(471)이 오면 인터럽트 큐(460)를 오른쪽으로 쉬프트하고 큐 카운터(451)를 감소 시키는 기능을 수행한다.The interrupt queue controller 450 receives the queue input request 426 from the interrupt detector 420 and the queue shift request 471 from the interrupt queue input / output controller 470 to control the interrupt queue 460. A cue counter 451 is provided for addressing. When a queue input request 426 from the interrupt detector 420 arrives, it enters the interrupt queue 460 corresponding to the current queue counter 451 value, increments the queue counter, and then queues the interrupt detector 420. Sending the acknowledgment 427 completes the queue input 452. When a queue shift request 471 from the interrupt queue input / output controller 470 arrives, the interrupt queue 460 is shifted to the right and the queue counter 451 is moved. It performs the function of reducing.

또한 인터럽트 큐 입출력 제어기(470)는 인터럽트 큐(460)가 유효한지를 나타내는 최우선 순위 플래그(430) 및 인터럽트 큐 플래그(461)를 검색하여 세트되어 있으면 호스트로 인터럽트 신호를 발생한다. 인터럽트 발생후에 호스트 시스템(100)으로 부터의 인터럽트 정보를 요구 받으면, 먼저 최우선순위 플래그(430)가 유효한지를 검사하여 유효하면 호스트 시스템(100)으로 최우선순위 인터럽트 레지스터 (410)의 내용을 선택하여 출력하게 되고, 그렇지 않은 경우는 인터럽트 큐(460)의 0번째 큐를 PCI 버스(110)를 통해 호스트 시스템(100)으로 송신하고, 인터럽트 큐 제어기(450)로 큐 쉬프트 요청(471)을 수행한다.In addition, the interrupt queue input / output controller 470 searches for the highest priority flag 430 and the interrupt queue flag 461 indicating whether the interrupt queue 460 is valid, and generates an interrupt signal to the host if it is set. When interrupt information is received from the host system 100 after an interrupt is generated, the first priority flag 430 is checked for validity, and if it is valid, the contents of the highest priority interrupt register 410 are selected and output to the host system 100. Otherwise, the 0th queue of the interrupt queue 460 is transmitted to the host system 100 through the PCI bus 110, and the queue shift request 471 is performed by the interrupt queue controller 450.

본 발명에 따른 제어 흐름은 인터럽트 검출기의 제어 흐름, 인터럽트 큐 제어기의 제어흐름 및 인터럽트 큐의 입출력 제어 흐름으로 나누어지며, 각각에 대한 설명은 다음과 같다.The control flow according to the present invention is divided into the control flow of the interrupt detector, the control flow of the interrupt queue controller, and the input / output control flow of the interrupt queue, and the description of each is as follows.

제3도는 인터럽트 검출기의 검출 흐름도이다.3 is a detection flowchart of an interrupt detector.

시작 상태에서 인터럽트가 검출되었는지를 반복적으로 검사(S1)하며, 인터럽트가 검출되면, 검출된 인터럽트가 최우선수위 인터럽트인지를 비교하며(S2), 최우선순위 인터럽트이면 최우선순위 플래그를 셋트하고(S3) 시작 상태로 분기한다.In the start state, it is repeatedly checked whether an interrupt is detected (S1), and if an interrupt is detected, the detected interrupt is compared with the highest priority interrupt (S2), and if it is the highest priority interrupt, the highest priority flag is set (S3). Branch to the state.

최우선순위 인터럽트가 아니면 검출된 인터럽트가 1개 이상인지를 먼저 검사하여(S4) 검출된 인터럽트가 1개이면, 해당 플래그를 셋트하고(S6) 인터럽트를 인코딩(S7)한 후 인터럽트 큐 제어기(450)로 큐 입력 요청(426)을 하게 된다(S8). 인터럽트 큐 제어기(450)로부터 큐 입력 확인을 검사(S9)하다가 큐 입력 확인 신호(427)가 오면, 해당 플래그를 리셋트하고 (S10)시작 상태로 분기한다.If it is not the highest priority interrupt, it is first checked whether there is more than one interrupt detected (S4), and if there is one detected interrupt, the corresponding flag is set (S6), the interrupt is encoded (S7), and the interrupt queue controller 450 is executed. In step S8, a queue input request is made. When the queue input confirmation signal 427 is received while checking the queue input confirmation from the interrupt queue controller 450 (S9), the corresponding flag is reset and branches to the start state (S10).

그러나 검출된 인터럽트가 1개 이상이면(S4), 우선순위 인코더(480)에 의해 그 검출된 인터럽트를 인코딩한 후(S11) 인터럽트 큐 제어기(450)로 큐 입력 요청(S12)을 한후 인터럽트 큐 제어기(450)로부터 큐 입력확인(427)을 검사(S13)하다가 큐 입력확인신호(427)를 받으면 해당 플래그를 리셋하며(S14), 동시에 검출된 인터럽트가 모두 인터럽트 큐에 순차적으로 입력될 때까지 이 과정을 반복적으로 수행하게 된다(S15).However, if one or more interrupts are detected (S4), the priority encoder 480 encodes the detected interrupts (S11), and then a queue input request (S12) is made to the interrupt queue controller 450, followed by an interrupt queue controller. Checking the cue input confirmation 427 from the 450 (S13) and receiving the cue input confirmation signal 427 resets the corresponding flag (S14), until all the detected interrupts are sequentially input to the interrupt queue. The process is repeatedly performed (S15).

제4도는 인터럽트 큐 제어기 제어 흐름도로서, 인터럽트 검출기와 인터럽트 큐 입출력 제어기로부터 입력을 받아 인터럽트 큐를 관리하기 위한 흐름도이다.4 is a flowchart for controlling an interrupt queue, and is a flowchart for managing an interrupt queue by receiving input from an interrupt detector and an interrupt queue input / output controller.

시작 상태에서 인터럽트 큐 입출력 제어기(470)로부터 큐 쉬프트 요청(471)이 있었는지를 체크한다(S16). 큐 쉬프트 요청이 있으면, 인터럽트 큐를 오른쪽으로 쉬프트(S17)한 후 큐 카운터를 1 감소(S18)시킨후 시작상태로 분기한다. 큐 쉬프트 요청이 없으면, 인터럽트 검출기(420)로부터 큐 입력 요청(426)이 있었는지를 확인하여(S19) 없으면 초기 상태로 분기한다. 큐 쉬프트 요청이 있으면, 큐 카운터(451)로부터 카운트 값을 읽어 큐가 비어 있나를 검사한후 큐가 비어 있으면, 이 값에 따라 해당 큐에 우선순위 인코더(480)로부터 인터럽트 큐(460)에 인터럽트 정보를 쓸수 있도록 제어하고(S21) 큐 카운터(451)를 1 증가시키며(S22), 인터럽트 검출기(420)에 큐 입력 확인 신호(427)를 보낸 후, 초기 상태로 분기한다.In the start state, it is checked whether there is a queue shift request 471 from the interrupt queue I / O controller 470 (S16). If there is a queue shift request, the interrupt queue is shifted to the right (S17), the queue counter is decremented by one (S18), and branched to the start state. If there is no queue shift request, the interrupt detector 420 checks whether there is a queue input request 426 (S19), and if not, branches to the initial state. If there is a queue shift request, it reads the count value from the queue counter 451 to check if the queue is empty and if the queue is empty, interrupts the queue 460 from the priority encoder 480 to the queue according to this value. Information is controlled to be written (S21), the queue counter 451 is incremented by one (S22), the cue input confirmation signal 427 is sent to the interrupt detector 420, and then branches to the initial state.

제5도는 인터럽트 큐의 입출력 제어 흐름도이다.5 is a flowchart of input / output control of an interrupt queue.

시작 상태에서 인터럽트 큐 입출력 제어기(470)는 먼저 최우선순위 플래그(430)가 세트되었는지를 검사하여(S23) 세트되었으면, 호스트에 인터럽트 신호를 발생하고(S24) 호스트로부터 인터럽트 정보 요구를 받으면(S25) 최우선순위 인터럽트 레지스터로부터 인터럽트 정보를 읽어 이를 호스트에 송신하고(S26) 최우선순위 플래그를 리셋트(S27) 한후 시작 상태로 분기한다.In the start state, the interrupt queue I / O controller 470 first checks whether the highest priority flag 430 is set (S23), and if it is set, generates an interrupt signal to the host (S24) and receives an interrupt information request from the host (S25). Interrupt information is read from the highest priority interrupt register and transmitted to the host (S26), and the highest priority flag is reset (S27) and then branches to the start state.

한편, 최우선순위 플래그가 세트되지 않고 인터럽트 큐 플래그(461)를 검사하여 세트되었으면(S28), 호스트에 인터럽트 신호를 발생하고(S29) 호스트로부터 인터럽트 정보 요구를 받으면(S30) 인터럽트 큐(460)로부터 인터럽트 정보를 읽어 이를 호스트에 송신하고(S31) 인터럽트 큐 제어기에 큐 쉬프트 요청(S32)을 한후 시작 상태로 분기한다.On the other hand, if the highest priority flag is not set and is set by checking the interrupt queue flag 461 (S28), if an interrupt signal is generated to the host (S29) and an interrupt information request is received from the host (S30), the interrupt queue 460 The interrupt information is read and transmitted to the host (S31), and a queue shift request (S32) is made to the interrupt queue controller.

제6도는 호스트로부터 최우선순위 인터럽트를 지정하는 흐름도이다.6 is a flow chart that designates the highest priority interrupt from the host.

호스트로부터 최우선순위 인터럽트 지정을 요구 받으면(S33), 이를 최우선순위 인터럽트 레지스터(410)에 등록하고(S34), 이 정보를 인터럽트 검출기(420)에 등록(S35)되도록 한다.If the host is requested to designate the highest priority interrupt (S33), it is registered in the highest priority interrupt register 410 (S34), and this information is registered in the interrupt detector 420 (S35).

이상과 같은 본 발명은 PCI 버스에 연결된 시스템내의 다수개의 인터럽트 자원들을 PCI 버스중 한개의 인터럽트 라인을 통해 처리함으로써, 인터럽트 사용의 편리성과 제한된 인터럽트 자원을 타 시스템이 이용할 수가 있기 때문에 호스트 시스템의 활용을 증진시킬수 있다.As described above, the present invention processes a plurality of interrupt resources in a system connected to a PCI bus through one interrupt line of the PCI bus, thereby facilitating the use of a host system because other systems can use interrupt convenience and limited interrupt resources. Can be enhanced.

또한 인터럽트 발생순서에 따라 인터럽트를 처리하고 동시에 인터럽트가 발생하는 경우 우선순위의 인터럽트를 먼저 처리함으로써 멀티미디어 처리에 용이하고, 시스템 자원의 효율적 이용이 가능하며, 특히 최우선순위 인터럽트를 호스트에서 지정할 수 있어 실시간 멀티미디어 처리에 용이하며, 큐 플래그를 사용하여 호스트와의 접속(access) 수를 감소시킬 수 있다.In addition, interrupts are processed in the order of interrupt occurrence and priority interrupts are processed first, so it is easy to process multimedia and efficient use of system resources. In particular, the highest priority interrupts can be assigned by the host. It is easy for multimedia processing, and the queue flag can be used to reduce the number of accesses with the host.

Claims (6)

PCI 버스에 연결된 호스트 시스템과 시스템내 다수개의 로컬 인터럽트 자원들을 PCI 버스중 한개의 인터럽트 라인으로 처리하기 위해, 상기 호스트 시스템에서 지정된 최우선순위 인터럽트 정보를 저장 및 전달하는 최우선순위 인터럽트 저장수단과; 상기 전달된 최우선순위 인터럽트 정보와 상기 다수개의 로컬 인터럽트 자원들로 부터 검출한 인터럽트 정보를 비교하여 해당 플래그를 제어하고, 인터럽트 우선순위에 따라 큐 입력 요청을 하고, 큐 입력확인신호를 받아 해당 플래그를 제어하는 인터럽트 검출수단과; 상기 인터럽트 검출수단의 플래그 제어에 따라 다수개의 인터럽트 상태를 나타내는 인터럽트 플래그 및 최우선순위 플래그와; 상기 인터럽트 검출수단의 인에이블신호에 따라 상기 입력된 다수개의 인터럽트 정보의 우선순위를 결정하는 우선순위 결정수단과; 상기 큐 입력요청신호 및 큐 쉬프트 요청신호를 받아 인터럽트 큐를 제어하는 인터럽트 큐 제어수단과; 상기 인터럽트 큐 제어수단의 제어에 따라 인터럽트가 입력되고 상기 우선순위 결정수단에서 결정된 순위에 따라 출력하는 인터럽트 큐와; 및 상기 인터럽트 큐의 유효상태를 검사하여 호스트 시스템으로 인터럽트 신호를 발생하고, 호스트 시스템으로 부터 인터럽트 정보 요구신호를 받아 상기 최우선순위 플래그가 유효할 때 호스트 시스템으로 최우선순위 인터럽트 저장수단의 내용을 선택하여 출력하며, 유효하지 않을 때 PCI버스를 통해 호스트 시스템으로 인터럽트 정보 데이타를 송신함과 아울러 큐 쉬프트 요청을 하는 인터럽트 큐 입출력 제어수단으로 구성된 것을 특징으로 하는 절충식 PCI 버스용 다중 인터럽트 제어 장치.A highest priority interrupt storage means for storing and delivering the highest priority interrupt information specified in the host system for processing a host system connected to the PCI bus and a plurality of local interrupt resources in the system as one interrupt line of the PCI bus; The flag is controlled by comparing the delivered highest priority interrupt information with the interrupt information detected from the plurality of local interrupt resources, requesting a queue input according to the interrupt priority, and receiving a queue input confirmation signal to receive the corresponding flag. Interrupt detecting means for controlling; An interrupt flag and a highest priority flag indicating a plurality of interrupt states according to flag control of the interrupt detection means; Priority determining means for determining the priority of the plurality of input interrupt information according to the enable signal of the interrupt detecting means; Interrupt queue control means for receiving an queue input request signal and a queue shift request signal to control an interrupt queue; An interrupt queue inputted according to the control of the interrupt queue control means and outputted according to a priority determined by the priority determining means; And checking an valid state of the interrupt queue, generating an interrupt signal to a host system, receiving an interrupt information request signal from the host system, and selecting the contents of the highest priority interrupt storage means to the host system when the priority flag is valid. And an interrupt queue input / output control means for outputting and sending interrupt information data to a host system through a PCI bus when not valid, and for performing a queue shift request. 제1항에 있어서, 상기 우선순위 결정수단은 인코더를 사용한 것을 특징으로 하는 절충식 PCI 버스용 다중 인터럽트 제어 장치.2. The multiple interrupt control apparatus for a compromise PCI bus according to claim 1, wherein said priority determining means uses an encoder. 제1항에 있어서, 상기 인터럽트 큐 제어수단은 큐를 어드레싱하기 위해 상기 인터럽트 검출수단으로 부터의 큐 입력 요청신호에 따라 증가하고, 상기 인터럽트 큐 입출력 제어수단으로 부터이 큐 쉬프트 요청신호에 따라 감소하는 큐 카운터를 구비한 것을 특징으로 하는 절충식 PCI 버스용 다중 인터럽트 제어 장치.The queue of claim 1, wherein the interrupt queue control means increases in response to a queue input request signal from the interrupt detection means to address the queue, and decreases in response to this queue shift request signal from the interrupt queue input / output control means. Multiple interrupt control device for a compromise PCI bus, characterized in that it comprises a counter. 제1항에 있어서, 상기 인터럽트 큐는 인터럽트 큐의 유효여부를 나타내는 큐 플래그를 구비한 것을 특징으로 하는 절충식 PCI 버스용 다중 인터럽트 제어 장치.The apparatus of claim 1, wherein the interrupt queue has a queue flag indicating whether the interrupt queue is valid. 인터럽트 검출기, 인터럽트 큐 제어기, 최우선순위 인터럽트 레지스터, 및 인터럽트 큐 입출력 제어기를 구비하여, PCI 버스에 연결된 호스트와 시스템내의 다수개의 인터럽트 자원들을 PCI 버스중 한개의 인터럽트 라인을 통해 처리하기 위해, 인터럽트 검출기로부터 인터럽트를 검출하여 인터럽트 플래그를 셋트하고 이 플래그 상태로부터 인터럽트 우선순위를 결정하며, 인터럽트 큐 제어기에 큐 입력을 요청하고 이를 확인 받아 인터럽트 플래그를 리셋트 처리하는 제1과정과; 상기 큐 입력 요청을 받으면 인터럽트 큐에 인터럽트 정보를 셋트하고 큐 카운터를 증가 시키고 큐입력을 확인하며, 큐 쉬프트 요구를 받으면 인터럽트 큐를 오른쪽으로 쉬프트하고 큐 카운터를 감소시키는 제2과정과; 상기 인터럽트 큐의 큐 플래그를 검사하여 세트되었으면 호스트에 인터럽트를 요구하고 호스트로부터 인터럽트 정보를 요구 받으면 이를 전송하고 큐 쉬프트 요청 하는 제3과정으로 이루어진 것을 특징으로 하는 절충식 PCI 버스용 다중 인터럽트 제어 방법.Interrupt detector, interrupt queue controller, highest priority interrupt register, and interrupt queue I / O controller, from the interrupt detector to handle multiple interrupt resources in the host and system connected to the PCI bus through one interrupt line of the PCI bus. A first step of detecting an interrupt, setting an interrupt flag, determining an interrupt priority from the flag state, requesting a queue input from an interrupt queue controller, and acknowledging the interrupt flag to reset the interrupt flag; A second step of setting interrupt information in an interrupt queue, increasing a queue counter, confirming a queue input when receiving the queue input request, shifting the interrupt queue to the right and decreasing the queue counter upon receiving a queue shift request; And a third process of requesting an interrupt from the host when the queue flag of the interrupt queue is set and transmitting interrupt and requesting a queue shift when the interrupt information is requested from the host. 제5항에 있어서, 상기 제1과정은 상기 호스트로 부터 최우선순위 인터럽트 지정을 요구 받으면, 이를 최우선 순위 인터럽트 레지스터에 등록하고, 이 정보를 인터럽트 검출기에 등록되도록 하는 과정을 포함한 것을 특징으로 하는 절충식 PCI 버스용 다중 인터럽트 제어 방법.6. The method of claim 5, wherein the first process includes registering the highest priority interrupt designation in the highest priority interrupt register upon receiving a request from the host and registering the information in an interrupt detector. Multiple interrupt control methods for the PCI bus.
KR1019960061993A 1996-12-05 1996-12-05 A multi-interrupt control device and method using compromised type on pci bus KR100199033B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960061993A KR100199033B1 (en) 1996-12-05 1996-12-05 A multi-interrupt control device and method using compromised type on pci bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960061993A KR100199033B1 (en) 1996-12-05 1996-12-05 A multi-interrupt control device and method using compromised type on pci bus

Publications (2)

Publication Number Publication Date
KR19980044002A KR19980044002A (en) 1998-09-05
KR100199033B1 true KR100199033B1 (en) 1999-06-15

Family

ID=19485929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960061993A KR100199033B1 (en) 1996-12-05 1996-12-05 A multi-interrupt control device and method using compromised type on pci bus

Country Status (1)

Country Link
KR (1) KR100199033B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100448930B1 (en) * 1997-07-30 2004-11-26 삼성전자주식회사 Computer for preferably processing an interrupt of a device connected to a pci bus, concerned with increasing the processing speed of the entire system by preferably handling interrupt request signals of devices located on the pci bus
KR100448931B1 (en) * 1997-08-11 2004-11-16 삼성전자주식회사 Device for sharing a pci interrupt, especially related to assigning two interrupt request lines to peripheral apparatuses by obtaining spare interrupt resources

Also Published As

Publication number Publication date
KR19980044002A (en) 1998-09-05

Similar Documents

Publication Publication Date Title
US5497501A (en) DMA controller using a predetermined number of transfers per request
US4860244A (en) Buffer system for input/output portion of digital data processing system
EP1012734B1 (en) Address translation in computer bus bridge devices
US5931936A (en) Multiple interrupt controller and control method using an intelligent priority-decision mechanism
KR100231897B1 (en) Dma control circuit receiving size data of dma channel
US6006287A (en) DMA transfer of an interleaved stream
US5970234A (en) PCI bus arbiter and a bus control system having the same
US6697904B1 (en) Preventing starvation of agents on a bus bridge
KR100708096B1 (en) Bus system and execution scheduling method for access commands thereof
US5339442A (en) Improved system of resolving conflicting data processing memory access requests
US4365296A (en) System for controlling the duration of the time interval between blocks of data in a computer-to-computer communication system
US5761532A (en) Direct memory access controller with interface configured to generate wait states
US5311510A (en) Data storing system for a communication control circuit
US5944788A (en) Message transfer system and control method for multiple sending and receiving modules in a network supporting hardware and software emulated modules
KR100199033B1 (en) A multi-interrupt control device and method using compromised type on pci bus
US5627968A (en) Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory
EP0473059B1 (en) Communication control system
US5717931A (en) Method and apparatus for communicating between master and slave electronic devices where the slave device may be hazardous
US5805841A (en) Symmetric parallel multi-processing bus architeture
US5418744A (en) Data transfer apparatus
KR100199021B1 (en) A multi-interrupt control device and method by interrupt order on pci bus
US6625678B1 (en) Livelock avoidance method
US20030088723A1 (en) System and method for processing interrupts
US6345332B1 (en) Bus interchange apparatus and dual system for accessing a fault information register without regard to buffer conditions
KR0161124B1 (en) Interrupt controller for shared i/o control board in the multi-processor system

Legal Events

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

Payment date: 20080303

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee