KR100253196B1 - Interrupt control method and apparatus of hipi+ bus - Google Patents

Interrupt control method and apparatus of hipi+ bus Download PDF

Info

Publication number
KR100253196B1
KR100253196B1 KR1019970053001A KR19970053001A KR100253196B1 KR 100253196 B1 KR100253196 B1 KR 100253196B1 KR 1019970053001 A KR1019970053001 A KR 1019970053001A KR 19970053001 A KR19970053001 A KR 19970053001A KR 100253196 B1 KR100253196 B1 KR 100253196B1
Authority
KR
South Korea
Prior art keywords
interrupt
bus
hipi
arbitration
request signal
Prior art date
Application number
KR1019970053001A
Other languages
Korean (ko)
Other versions
KR19990032069A (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 KR1019970053001A priority Critical patent/KR100253196B1/en
Publication of KR19990032069A publication Critical patent/KR19990032069A/en
Application granted granted Critical
Publication of KR100253196B1 publication Critical patent/KR100253196B1/en

Links

Images

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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • 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

Abstract

PURPOSE: A method and apparatus for controlling an interrupt on a HIPI+ bus are provided to reduce a capacity of a controller through an arbitration device and use one set of a BTL transmitter-receiver and adapt a prior order at a round-robin in an internal arbitration of an interrupt handler by providing the arbitration device between internal processors when an interrupt controller is designed. CONSTITUTION: A HiPi+bus(10) is selected at a main calculator and applies the BTL standard. An MPIR(41) drives the HiPi+bus(10) in order that a selected interrupt transmission requesting signal may be processed by an interrupt handler in a system after performing an interrupt arbitration function when the interrupt transmission requesting signal is generated from processors(45A¯45D) in a module. An MPIH(42) confirms whether the interrupt transmission requesting signal is directly requested to one's module when the interrupt transmission requesting signal is inputted through the HiPi+bus(10), and if a condition is formed, the MPIH(42) performs the arbitration function, and stores an interrupt requesting responding signal of the selected processor in the internal register. A plurality of IRACs(43A¯43D) collect the interrupt transmission requesting signals generated from the MPIH(42) and the other interrupt sources and interrupt the processors(45A¯45D) in a module and request the process of the signals. An SBIB(44) provides a BTL transmitter-receiver and transmits an interrupt requesting signal between an interrupt control device(40) and the HiPi+bus(10).

Description

HiPi+ 버스상의 인터럽트 제어 방법 및 장치Interrupt control method and device on HiPi + bus

본 발명은 주전산기에서 채택한 HiPi+버스상에서 다수의 프로세서를 지원하는 인터럽트 제어기의 설계기술에 관한 것으로, 특히 인터럽트 제어기를 설계함에 있어서 용량 증가, 구현상의 어려움을 극복하고, 버스들간의 거리에 의해 신호의 특수성이 나빠지는 것을 방지하며, 인터럽트 핸들러내 중재기의 공정성이 확보되도록한 HiPi+버스상의 인터럽트 제어 방법 및 장치에 관한 것이다.The present invention relates to a design technique of an interrupt controller that supports a plurality of processors on a HiPi + bus adopted by a main computer. In particular, the design of an interrupt controller overcomes the increase in capacity and implementation difficulties, and the specificity of signals due to the distance between buses. The present invention relates to an interrupt control method and apparatus on a HiPi + bus which prevents the deterioration and ensures fairness of an arbitrator in an interrupt handler.

HiPi+버스는 주전산기 Ⅲ 시스템에서 채택된 시스템 버스로서 데이터 전송을 위한 데이터 전송버스(DTB: Data Transfer Bus), 인터럽트 전송을 위한 인터럽트버스(IB : Interrupt Bus), 그리고 기타 부가기능을 위한 유틸리티버스(UB : Utility Bus)로 이루어진다. 이 중에서 인터럽트버스 HiPi+버스에 연결된 버스 모듈간의 비동기적인 신호 교환의 통로로서 프로세서간의 통신을 지원한다.HiPi + bus is a system bus adopted in main computer III system. Data transfer bus (DTB) for data transfer, interrupt bus (IB) for interrupt transfer, and utility bus (UB) for other additional functions. : Utility Bus). Among them, it supports communication between processors as a path of asynchronous signal exchange between bus modules connected to Interrupt bus HiPi + bus.

통상적으로, 주전산기 Ⅲ 시스템은 도 1에서와 같이 HiPi+버스(10)를 상호접속매체로 하여 MPU(Multiple Processing Unit)모듈(11), 메모리모듈(12), IOP(Input/ Output Processor)모듈(13), SCM(System Control Module)모듈(14)로 이루어져 있으며, 여기서, 인터럽트는 상기 MPU, IOP, SCM간의 비동기 통신에 사용된다.Typically, the main computer III system is a multiple processing unit (MPU) module 11, a memory module 12, an input / output processor (IOP) module 13 using the HiPi + bus 10 as an interconnect medium as shown in FIG. SCM (System Control Module) module 14, wherein the interrupt is used for asynchronous communication between the MPU, IOP, SCM.

상기 각 모듈(11-14)에는 하나 또는 그 이상의 프로세서가 존재하는데, 각 프로세서는 시스템내의 다른 프로세서에 인터럽트신호를 송출하거나 자신에게 요청된 인터럽트를 처리한다. 이와 같이 프로세서간의 인터럽트 전송을 HiPi+버스(10)를 전달매체로 하여 전달해주는 역할을 하는 제어기를 인터럽트 제어기라 정의한다.Each module 11-14 has one or more processors, each of which sends an interrupt signal to another processor in the system or processes an interrupt requested by the module 11-14. As such, a controller that serves to transfer interrupts between processors using the HiPi + bus 10 as a transmission medium is defined as an interrupt controller.

하나의 프로세서를 지원하는 통상적인 인터럽트 제어기를 도 2에 나타내었다.A typical interrupt controller supporting one processor is shown in FIG.

상기 도 2에서, MPIR(MPIR: Multi-Processor Interrupt Requester)(21)은 모듈내의 프로세서로 부터 요청된 인터럽트 전송요구신호를 HiPi+버스(10)측으로 전송하는 기능을 수행하고, MPIH(MPIH : Multi-Processor Interrupt Handler)(22)는 상기 HiPi+버스(10)로 부터의 인터럽트 전송요구를 받아들이는 역할을 수행한다. 또한, IRAC(IRAC : Interrupt Acknowledge Controller)(23)는 상기 MPIH(22)와 그밖의 인터럽트 소오스들에서 발생된 인터럽트 처리 요구신호들을 모아 모듈내의 프로세서에 인터럽트를 걸어 이의 처리를 요구한다.In FIG. 2, MPIR (MPIR: Multi-Processor Interrupt Requester) 21 performs a function of transmitting an interrupt transmission request signal requested from a processor in a module to the HiPi + bus 10 side, and MPIH (MPIH: Multi-). Processor Interrupt Handler) 22 serves to accept the interrupt transfer request from the HiPi + bus 10. In addition, IRAC (Interrupt Acknowledge Controller) 23 collects interrupt processing request signals generated by the MPIH 22 and other interrupt sources, interrupts the processor in the module, and requests processing thereof.

이때, 상기 HiPi+버스(10)는 BTL(BTL : Bus Transfer Logic) 규격을 지원하며, 따라서, HiPi+버스 인터페이스 블록인 SBIB(SBIB : System Bus Interface Block)는 BTL 송수신기들로 이루어진다.In this case, the HiPi + bus 10 supports a BTL (Bus Transfer Logic) standard. Therefore, the SBIB (SBIB: System Bus Interface Block), which is a HiPi + bus interface block, includes BTL transceivers.

하나의 모듈내에 여러 프로세서가 존재하는 경우에는 상기에서 언급한 인터럽트 제어기가 프로세서 수만큼 필요하게 되는데, 기존의 인터럽트 제어기를 그대로 사용하는 경우 몇가지 문제점이 발생된다. 도 3은 이와 같은 경우에 대한 일실시 예를 보인 것이다. 여기서, 간과할 수 없는 사항은 제어기의 용량이 매우 커져 구현상에 어려움이 있고, HiPi+버스상의 부하 문제가 발생된 다는 것이다.When there are several processors in one module, the above-mentioned interrupt controller is required as many as the number of processors mentioned above. Some problems arise when the existing interrupt controller is used as it is. Figure 3 shows an embodiment for such a case. Here, what cannot be overlooked is that the capacity of the controller is very large, which makes it difficult to implement and causes a load problem on the HiPi + bus.

그러나, 이와 같은 종래의 인터럽트 제어기술에 있어서는 하나의 모듈내에 여러 프로세서가 존재하여 그 프로세서 수 만큼의 인터럽트 제어기를 사용하는 경우, 인터럽트 제어기는 비교적 많은 용량을 필요로하기 때문에 이에 의해 전체 제어기의 용량이 매우 커지므로 구현하는데 어려움이 있고, 또한, BTL 송수신기가 프로세서의 수만큼 증가되어 버스상의 하나의 신호가 연결된 송수신기의 수가 매우 증가되므로 전체 부하량이 커질뿐만 아니라 버스와 송수신기간의 거리가 멀어져(stub 길이 증가) 신호의 특성이 매우 나빠지는 결함이 있었다.However, in such a conventional interrupt control technique, when there are several processors in one module and using as many interrupt controllers as the number of processors, the interrupt controller needs relatively large capacity, thereby reducing the capacity of the entire controller. As it becomes very large, it is difficult to implement, and in addition, since the number of BTL transceivers is increased by the number of processors, the number of transceivers to which one signal is connected on the bus is greatly increased, thereby increasing the overall load and the distance between the bus and the transmission / reception period. Increase) the signal characteristics are very bad.

따라서, 본 발명이 이루고자 하는 기술적 과제는 인터럽트 제어기의 설계시 내부 프로세서들간에 중재기를 두어 그 중재기를 통해 제어기의 용량을 줄이고, BTL 송수신기를 하나의 셋트만 사용하며, 인터럽트 핸들러의 내부 중재시 라운드 로빈에 우선순위를 적용하는 HiPi+ 버스상의 인터럽트 제어 방법 및 장치를 제공함에 있다.Therefore, the technical problem of the present invention is to place an arbiter between internal processors when designing an interrupt controller to reduce the capacity of the controller through the arbiter, use only one set of BTL transceivers, and round robin during internal arbitration of an interrupt handler. The present invention provides a method and apparatus for controlling interrupts on a HiPi + bus.

도 1은 일반적인 주전산기의 전체적인 블록도.1 is an overall block diagram of a typical main computer.

도 2는 하나의 프로세서를 지원하는 일반적인 인터럽트 제어기의 블록도.2 is a block diagram of a typical interrupt controller supporting one processor.

도 3은 네 개의 프로세서를 지원하는 일반적인 인터럽트 제어기의 블록도.3 is a block diagram of a typical interrupt controller supporting four processors.

도 4는 본 발명에 의한 HiPi+ 버스상의 인터럽트 장치의 일실시 예시 블록도.4 is a block diagram of one embodiment of an interrupt device on a HiPi + bus in accordance with the present invention;

도 5은 본 발명에서 중재 인터럽트 처리단계별 전송 정보 표.5 is a table of transmission information for each arbitration interrupt processing step in the present invention.

도 6는 본 발명에 의한 인터럽트 핸들러의 메인 상태머신 중 중재 단계 설명도.6 is a diagram illustrating an arbitration step in the main state machine of the interrupt handler according to the present invention;

도 7은 본 발명에 의한 인터럽트 핸들러의 중재 플래그 제어 알고리듬.7 is an arbitration flag control algorithm of an interrupt handler according to the present invention.

도 8는 본 발명에서 직접 인터럽트 전송/처리과정에 대한 신호 흐름도.8 is a signal flow diagram for direct interrupt transmission / processing in the present invention.

도 9는 본 발명에서 중재 인터럽트 전송/처리과정에 대한 신호 흐름도.9 is a signal flow diagram for arbitration interrupt transmission / processing in the present invention.

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

10 : HiPi+버스 41 : MPIR10: HiPi + bus 41: MPIR

42 : MPIH 43A-43D : IRAC42: MPIH 43A-43D: IRAC

44 : SBIB 45A-45D : 프로세서44: SBIB 45A-45D: Processor

본 발명의 목적을 달성하기 위한 HiPi+ 버스상의 인터럽트 제어 방법은 직접 인터럽트 전송/처리 모드에서, MPIR이 각 프로세서에 의한 인터럽트 요구 신호를 발생하고, HiPi+버스 중재에 참여하여 인터럽트 요구신호를 선정한 후 타겟 모듈의 ID, 자신의 ID, 벡터를 순차적으로 전송한 후 내부 중재를 실시하여 선정된 프로세서로 하여금 인터럽트 처리를 요구하는 제1과정(SA1-SA10)과; 중재 인터럽트 전송/처리 모드에서, MPIR은 자신이 인터럽트 전송구간 중재에 참여한 사실을 MPIH측에 알려주고, 인터럽트 요구신호를 선정하면, 타겟 모듈의 ID, 자신의 ID, 벡터를 HiPi+버스를 통해 MPIH측으로 전송하는 제2과정(SB1-SB7)과; 중재 인터럽트 전송/처리 모드에서, MPIH는 현재 인터럽트가 중재 인터럽트임을 확인한 후 내부적으로 프로세서들간의 중재를 실시하고, MPIR이 선정되면, 상기 HiPi+버스상에 발생된 인터럽트 처리 요구가 자신이 소속된 그룹이고,MPIH들간의 중재에서 자신이 선정되는 것을 확인하여 조건이 성립되는 경우 상기 MPIR로 부터 벡터를 전송받고 응답신호를 송출하는 제3과정(SC1-SC8)으로 이루어진다.In the interrupt control method on the HiPi + bus to achieve the object of the present invention, in the direct interrupt transfer / process mode, the MPIR generates an interrupt request signal by each processor, participates in HiPi + bus arbitration, selects an interrupt request signal, and then selects a target module. A first step (SA1-SA10) of requesting interrupt processing by the selected processor by sequentially transmitting the ID, its ID, and the vector of the ID, its ID, and the vector; In the moderation interrupt transmission / processing mode, the MPIR informs the MPIH that it has participated in arbitration of the interrupt transmission section, and when the interrupt request signal is selected, the ID, its ID, and the vector of the target module are transmitted to the MPIH side via the HiPi + bus. A second process (SB1-SB7); In the moderation interrupt transmission / processing mode, the MPIH internally arbitrates between processors after confirming that the current interrupt is an arbitration interrupt, and if MPIR is selected, the interrupt processing request generated on the HiPi + bus is the group to which it belongs. In the mediation between MPIHs, a third process (SC1-SC8) is performed to receive a vector from the MPIR and send a response signal when the condition is established.

도 4는 본 발명의 다른 목적을 달성하기 위한 HiPi+ 버스상의 인터럽트 제어 장치의 일실시 예시 블록도로서 이에 도시한 바와 같이, 주전산기에 채택되어 BTL 규격을 지원하는 HiPi+버스(10)와; 모듈내의 프로세서(45A~45D)들로 부터 인터럽트 전송요구신호가 발생될 때, 인터럽트 중재기능을 수행한 후 선정된 인터럽트 요구신호가 시스템내의 인터럽트 핸들러에 의해 처리될 수 있도록 상기 HiPi+버스(10)를 구동하는 MPIR(41)과; 상기 HiPi+버스(10)를 통해 인터럽트 전송요구신호가 입력될 때 자신의 모듈로의 직접적인 인터럽트요구신호인지를 확인하여 조건이 성립될 때 중재기능을 수행한 후 선정된 프로세서의 인터럽트 응답요구신호를 내부의 레지스터에 저장하는 MPIH(42)와; 상기 MPIH(42)와 그밖의 인터럽트 소오스들로 부터 발생되는 인터럽트처리 요구신호를 모아 모듈내의 각각의 프로세서(45A~45D)에 인터럽트를 걸어 이의 처리를 요구하는 다수의 IRAC(43A~43D)와; BTL송수신기를 구비하여, 인터럽트 제어기(40)와 상기 HiPi+버스(10)간의 인터럽트 요구신호를 전달하는 SBIB(44)로 구성하였다.4 is a block diagram of an exemplary embodiment of an interrupt control apparatus on a HiPi + bus for achieving another object of the present invention. As shown therein, a HiPi + bus 10 that is adopted by a main computer and supports a BTL standard; When the interrupt transfer request signal is generated from the processors 45A to 45D in the module, the HiPi + bus 10 is operated so that the selected interrupt request signal can be processed by the interrupt handler in the system after performing the interrupt arbitration function. A driving MPIR 41; When the interrupt transmission request signal is input through the HiPi + bus 10, it checks whether it is a direct interrupt request signal to its own module, and when the condition is established, performs an arbitration function and then internalizes the interrupt response request signal of the selected processor. MPIH 42 for storing in the register of; A plurality of IRACs 43A to 43D for collecting interrupt processing request signals generated from the MPIH 42 and other interrupt sources and interrupting each processor 45A to 45D in the module to request processing thereof; A SBIB 44 having a BTL transmitter and receiver for transmitting an interrupt request signal between the interrupt controller 40 and the HiPi + bus 10 is constructed.

상기 MPIR(41)은 각 프로세서(45A~45D)별로 인터럽트 요구시 필요한 인터럽트 응답요구용 레지스터(41A~41D)를 별도로 보유하고 있으나 상기 HiPi+버스(10)상에서 인터럽트 요구신호가 발생되게 하는 일종의 제어기이며, 각 프로세서(45A~45D)의 요구를 내부적으로 중재하기 위한 라운드 로빈(round-robine) 방식의 중재기(42E)를 보유하는 구성을 갖는다.The MPIR 41 has a separate interrupt response request register 41A to 41D for each interrupt 45A to 45D, but is a kind of controller for generating an interrupt request signal on the HiPi + bus 10. And a round-robin arbiter 42E for internally arbitrating the demands of the processors 45A to 45D.

상기 MPIH(42)는 상기 HiPi+버스(10)상에서 인터럽트 요구신호 발생시 이에 응답하는 하나의 제어기로 이루어져 각 프로세서(45A~45D)별로 인터럽트 요구시 필요한 인터럽트 응답요구용 레지스터(42A~42D)를 별도로 보유하고 있으며, 상기 HiPi+버스(10)상에서 처리 요구된 인터럽트는 원칙적으로 각 프로세서(45A~45D)들간에 라운드 로빈방식으로 처리하는데 이를 위한 중재기(42E)를 보유하는 구성을 구성을 갖는다. 여기서, 중재기(42E)는 중재 인터럽트시 공정성을 보장하기 위해 우선권 체킹 기능이 부여된 중재기이다.The MPIH 42 is composed of one controller that responds to the occurrence of an interrupt request signal on the HiPi + bus 10 and separately holds the interrupt response request registers 42A to 42D required for an interrupt request for each processor 45A to 45D. The interrupt required for processing on the HiPi + bus 10 is, in principle, processed in a round robin manner between the processors 45A to 45D, and has a configuration having an arbiter 42E for this purpose. Here, the arbiter 42E is an arbiter to which priority checking function is given in order to ensure fairness in the interruption of arbitration.

이와 같이 구성한 본 발명의 작용을 첨부한 도 4 내지 도 9를 참조하여 상세히 설명하면 다음과 같다.When described in detail with reference to Figures 4 to 9 attached to the operation of the present invention configured as described above are as follows.

각각의 프로세서(45A~45D)가 MPIR(41) 내부의 인터럽트 응답요구용 레지스터(41A~41D)에 인터럽트 요구정보를 기록하면 그 MPIR(41) 내부의 중재기(41E)는 라운드 로빈방식에 의거하여 중재를 수행한 후 선택된 인터럽트 요구신호를 HiPi+버스(10)상에 송출하고, 이로 인하여 시스템내의 인터럽트 핸들러는 인터럽트 처리를 요구받는다.When each processor 45A to 45D writes interrupt request information to the interrupt response request registers 41A to 41D in the MPIR 41, the arbiter 41E in the MPIR 41 is based on a round robin method. After the arbitration is performed, the selected interrupt request signal is sent on the HiPi + bus 10, whereby the interrupt handler in the system is required to interrupt processing.

상기 HiPi+버스(10)상에서 정의된 인터럽트의 종류는 특정 프로세서에게 전송하는 직접 인터럽트와 임의의 그룹에게 전송하여 그룹내의 인터럽트 핸들러들간의 중재를 통해 전송이 이루어지는 중재 인터럽트가 있다.The types of interrupts defined on the HiPi + bus 10 are direct interrupts transmitted to a specific processor and arbitration interrupts transmitted through arbitration between interrupt handlers in a group by transmitting to an arbitrary group.

도 5는 중재 인터럽트의 단계별 전송정보를 보인 표이다. 상기 MPIR(41)은 벡터(vector)를 전송한 후 인지단계(acknowledge phase)에서 처리 수용결과를 확인하는 것으로 역할을 마친다.5 is a table showing transmission information for each step of an arbitration interrupt. The MPIR 41 finishes the role of confirming the processing acceptance result in the acknowledgment phase after transmitting the vector.

인터럽트 요청기에 의해 HiPi+버스(10)상에서 인터럽트 처리 요구신호가 발생하면 MPIH(42)는 그것이 자신의 모듈로의 직접적인 인터럽트인지를 확인한다. 상기의 확인결과 직접적인 인터럽트로 판명되면, MPIH(42)는 내부적으로 프로세서(45A~45D)들간의 라운드 로빈방식에 의한 중재를 시도하여 선정(win)된 프로세서의 정보를 인터럽트 응답요구용 레지스터(42A~42D)에 저장한다.When an interrupt processing request signal is generated on the HiPi + bus 10 by the interrupt requester, the MPIH 42 checks whether it is a direct interrupt to its module. As a result of the above confirmation, the MPIH 42 internally attempts to arbitrate by the round robin method between the processors 45A to 45D, and receives the information of the selected processor from the interrupt response request register 42A. To 42D).

상기 HiPi+버스(10)상에 액티브된 인터럽트 처리 요구신호가 중재 인터럽트신호 이면서 동시에 자신의 모듈이 해당 그룹에 속하는 경우, MPIH(42)는 내부적으로 프로세서(45A~45D)들간의 라운드 로빈방식에 의한 중재에 의해 선정된 프로세서의 ID로서 도 5에서의 제2단계부터 제16단계까지의 인터럽트 핸들러(IH)간의 중재에 참여하게 되는데, 이때 중재에서 자신이 선정되면 해당 인터럽트 처리 요구를 MPIH(42)내의 인터럽트 응답요구용 레지스터(42A~42D) 중에서 자신의 인터럽트 레지스터에 정보를 저장한다.When the interrupt processing request signal activated on the HiPi + bus 10 is an arbitration interrupt signal and its own module belongs to the group, the MPIH 42 internally performs round robin between the processors 45A to 45D. As an ID of a processor selected by arbitration, the processor participates in mediation between the interrupt handlers IH of steps 2 through 16 in FIG. 5. Information is stored in its own interrupt register from among the interrupt response request registers 42A to 42D.

상기와 같은 중재 인터럽트시 프로세서(45A~45D)들간에 내부 중재를 수행함에 있어서 라운드 로빈방법만을 사용하면 인터럽트 서비스가 마스킹되어 있지 않은 프로세서가 존재함에도 불구하고 마스킹되어 있는 프로세서가 선정될 수 있는데, 이를 해결하기 위하여 추가적인 중재방법이 필요하다.In performing the internal arbitration among the processors 45A to 45D during the arbitration interrupt, if only the round robin method is used, the processor that is masked may be selected even though there is a processor that does not mask the interrupt service. Additional mediation methods are needed to resolve.

즉, 도 5에서 -5단계부터 -1단계까지의 기간에 프로세서(45A~45D) 중에서 내부 중재로 선택된 프로세서가 인터럽트 마스킹되어 있는지 체크하여 마스킹되어 있는 것으로 판명되는 경우에는 다음 순번의 프로세서로 우선권을 넘긴다. 이것을 인터럽트 핸들러(IH)의 상태 머신(state machine)으로 나타내면 도 6과 같다.That is, in the period from -5 to -1 in FIG. 5, if the processor selected by the internal arbitration among the processors 45A to 45D is interrupt masked and found to be masked, priority is given to the next processor. Pass it over. This is represented by the state machine of the interrupt handler IH, as shown in FIG. 6.

다시말해서, 도 6에서의 ARB1 상태부터 ARB5 상태 사이에서 이러한 우선권 체크를 수행하여 내부 중재에서의 공정성을 보장한다. 이때, 중재 인터럽트를 위한 내부 프로세서(45A~45D)들간의 중재시 선정된 프로세서의 ID를 ai_flag라고 하였을 때 이의 제어 알고리듬을 도 7에 나타내었다.In other words, this priority check is performed between the ARB1 state and the ARB5 state in FIG. 6 to ensure fairness in internal arbitration. At this time, when the ID of the processor selected during arbitration between the internal processors 45A to 45D for arbitration interrupt is ai_flag, a control algorithm thereof is shown in FIG. 7.

즉, 도 7에서와 같이, 인터럽트신호의 전송 종료시 라운드 로빈에 의해 다음 프로세서로 인터럽트 책임을 넘기고, HiPi+버스(10)상의 중재 상태이면서 책임을 진 MPIH((42)가 인터럽트를 추리할 수 있는 경우에는 매 클럭마다 라운드 로빈방식에 의해 다음 프로세서로 인터럽트 책임을 넘기며, 그밖의 경우에 있어서는 책임 프로세서에서 유지한다.That is, as shown in Fig. 7, when the interrupt signal is transferred to the next processor by round robin at the end of transmission of the interrupt signal, the MPIH (42) responsible for the arbitration state and the responsible state on the HiPi + bus 10 can infer the interrupt. Each time the clock passes the interrupt responsibility to the next processor by round robin, in other cases it is held by the responsible processor.

상기 IPIH(42)내의 인터럽트 응답요구용 레지스터(42A~42D)에 저장된 인터럽트 응답 요구는 IRAC(43A~43D)로 보내지고, 그 IRAC(43A~43D)에 의한 처리가 종료되면 인터럽트 응답 요구는 말소된다.The interrupt response request stored in the interrupt response request registers 42A to 42D in the IPIH 42 is sent to the IRACs 43A to 43D. When the processing by the IRACs 43A to 43D ends, the interrupt response request is canceled. do.

상기 MPIH(42)내 인터럽트 응답요구용 레지스터(42A~42D)에 저장된 인터럽트 응답 요구신호가 IRAC(43A~43D)로 보내지면 그 IRAC(43A~43D)는 자신에 해당되는 프로세서와 관련된 모든 인터럽트 소오스를 받아서 우선순위에 따라 프로세서(45A~45D) 중 해당 프로세서에 인터럽트를 걸고 이에 대응하는 프로세서의 인터럽트 응답시 해당 벡터를 보내준다.When the interrupt response request signal stored in the interrupt response request registers 42A to 42D in the MPIH 42 is sent to the IRACs 43A to 43D, the IRACs 43A to 43D are all interrupt sources associated with the corresponding processor. In response to the priority, interrupt the corresponding processor among the processors 45A to 45D and send the corresponding vector in response to the interrupt of the corresponding processor.

상기 IRAC(43A~43D)는 프로세서별로 존재하며, 이들은 단일 프로세서를 지원하는 인터럽트 제어기와 같은 구조로 구현된다.The IRACs 43A to 43D exist for each processor, and they are implemented in the same structure as an interrupt controller supporting a single processor.

한편, 도 8은 본 발명에 의한 인터럽트 제어 방법에 있어서, 직접 인터럽트 전송/처리과정에 대한 신호 흐름도를 보인 것으로, 이를 참조하여 상기의 전송/처리과정을 좀더 상세히 설명하면 다음과 같다.Meanwhile, FIG. 8 shows a signal flow diagram for direct interrupt transmission / processing in the interrupt control method according to the present invention. The transmission / processing process will be described in detail with reference to the following.

MPIR(41)는 각 프로세서(45A~45D)에 의한 인터럽트 요구 신호를 발생하고, 전송구간(프로세서간)을 중재한다.(SA1,SA2)The MPIR 41 generates an interrupt request signal by each of the processors 45A to 45D, and arbitrates the transmission section (between processors). (SA1, SA2)

상기 MPIR(41)는 HiPi+버스(10) 중재에 참여하여 인터럽트 요구신호를 선정하게 되는데, 이와 같이 중재에 참여하면 현재 인터럽트가 직접 인터럽트인지 또는 중재 인터럽트인지를 MPIH(42)에 알려준다.(SA3,SA4)The MPIR 41 selects an interrupt request signal by participating in the HiPi + bus 10 arbitration. In this manner, the MPIR 41 informs the MPIH 42 whether the current interrupt is a direct interrupt or an arbitration interrupt. SA4)

이후, 상기 MPIR(41)은 타겟 모듈의 ID와 자신의 ID를 상기 HiPi+버스(10)측으로 전송하고, 이어서 그 HiPi+버스(10)에 벡터를 전송한다.(SA5~SA7)Thereafter, the MPIR 41 transmits the ID of the target module and its ID to the HiPi + bus 10 side, and then transmits a vector to the HiPi + bus 10. (SA5 to SA7)

이후, 상기 MPIH(42)에서는 상기 HiPi+버스(10)측에 정상적으로 응답전송이 되었는지를 확인하여 조건이 만족하지 않으면 제3스텝(SA3)으로 복귀하고, 만족하면 내부 중재에 참여하여 선정된 프로세서로 인터럽트 처리를 요구한다.(SA8~SA10)Thereafter, the MPIH 42 checks whether the response has been successfully transmitted to the HiPi + bus 10 side, and returns to the third step SA3 if the condition is not satisfied. Request interrupt processing (SA8 ~ SA10).

한편, 도 9는 본 발명에 의한 인터럽트 제어 방법에 있어서, 중재 인터럽트 전송/처리과정에 대한 신호 흐름도를 보인 것으로, 이를 참조하여 상기의 전송/처리과정을 좀더 상세히 설명하면 다음과 같다.Meanwhile, FIG. 9 shows a signal flow diagram for an arbitration interrupt transmission / process in the interrupt control method according to the present invention. Referring to this, the transmission / process described above will be described in detail as follows.

상기 MPIR(41)이 인터럽트 전송구간 중재에 참여하면(SB1) 현재 인터럽트가 중재 인터럽트임을 상기 MPIH(42)에 알려주고(SB2), MPIH(42)는 그 사실을 확인(SC1)한 후 내부 중재를 실시하게 되는데, 이때, MPIR(41)과 MPIH(42)는 동시에 인터럽트를 처리하게 된다. 즉, 스텝(SB~SB7)과 스텝(SC1~SC8)은 동시에 진행된다.When the MPIR 41 participates in interrupt transmission interval arbitration (SB1), it informs the MPIH 42 that the current interrupt is an arbitration interrupt (SB2), and the MPIH 42 confirms the fact (SC1) and then executes internal arbitration. In this case, the MPIR 41 and the MPIH 42 simultaneously handle interrupts. That is, the steps SB to SB7 and the steps SC1 to SC8 proceed simultaneously.

상기 MPIR(41)가 인터럽트 중재에 참여하여 인터럽트 요구신호를 선정하면(SB3), 타겟 모듈의 ID를 HiPi+버스(10)측으로 전송하고(SB4), 소정시간 대기한 후 자신의 ID와 벡터를 전송한다(SB5).When the MPIR 41 participates in interrupt arbitration and selects an interrupt request signal (SB3), it transmits the ID of the target module to the HiPi + bus 10 side (SB4), waits for a predetermined time, and then transmits its ID and vector. (SB5).

이후, MPIH(42)측으로 부터 응답을 받아 그 응답상태가 "양호"로 나타나면 종료하고, 그렇지 않으면 상기의 과정(SB2~SB6)을 반복 수행한다.Subsequently, when the response is received from the MPIH 42 side and the response state is "good", the process ends. Otherwise, the above processes (SB2 to SB6) are repeated.

한편, 상기 MPIH(42)는 현재 인터럽트가 중재 인터럽트임을 확인한 후 내부적으로 프로세서들간의 중재를 실시하고(SC1), 상기의 중재에서 MPIR(41)이 선정되면(SC2), 상기 HiPi+버스(10)상에 발생된 인터럽트 처리 요구가 자신이 소속된 그룹인지를 확인하여(SC3) 조건이 성립되면 MPIH(42)들간의 중재에서 자신이 선정되었는지를 확인한다(SC4).On the other hand, the MPIH 42 confirms that the current interrupt is an arbitration interrupt, and internally performs arbitration between processors (SC1), and if the MPIR 41 is selected in the arbitration (SC2), the HiPi + bus 10 It is checked whether the interrupt processing request generated in the image is a group to which it belongs (SC3), and if the condition is established, it is checked whether it is selected in arbitration between MPIH 42 (SC4).

상기의 확인결과 자신이 선정된 것으로 판단되면 MPIR(41)측으로 부터 벡터를 전송받은 후(SC5) 그 경로로 응답신호를 송출하고(SC6), 이때, "응답양호" 상태이면 프로세서측으로 인터럽트 처리를 요구하고 종료한다(SC7,SC8).If it is determined that the self is selected as a result of the above check, it receives the vector from the MPIR 41 side (SC5) and sends a response signal to the path (SC6). Request and exit (SC7, SC8).

이상에서 상세히 설명한 바와 같이, 본 발명은 주전산기 Ⅲ 시스템에서 채택한 HiPi+버스상에서 다수의 프로세서를 지원하는 인터럽트 제어기의 설계시 내부 프로세서들간의 중재기를 통해 제어기의 용량을 줄일 수 있게 함으로써 구현이 용이하게 되는 효과가 있고, 특히 BTL 송수신기를 사용한 셋트만을 사용함으로써 버스상의 전기적인 불안요소가 제거되어 안정성이 보장되는 효과가 있으며, 또한, 인터럽트 핸들러의 내부 중재시 라운드 로빈에 우선권을 보강한 방법을 사용함으로써 공정성을 최대한 확보할 수 있는 효과가 있다.As described in detail above, the present invention can be easily implemented by reducing the capacity of the controller through the arbiter between internal processors when designing an interrupt controller supporting a plurality of processors on the HiPi + bus adopted in the host computer III system. In particular, by using only a set using a BTL transceiver, electrical instability on the bus is eliminated and stability is ensured. In addition, fairness is ensured by using a method that reinforces the priority of round robin during internal arbitration of an interrupt handler. It is effective to secure as much as possible.

Claims (5)

직접 인터럽트 전송/처리 모드에서, MPIR이 각 프로세서에 의한 인터럽트 요구 신호를 발생하고, HiPi+버스 중재에 참여하여 인터럽트 요구신호를 선정한 후 타겟 모듈의 ID, 자신의 ID, 벡터를 순차적으로 전송한 후 내부 중재를 실시하여 선정된 프로세서로 하여금 인터럽트 처리를 요구하는 제1과정과; 중재 인터럽트 전송/처리 모드에서, MPIR은 자신이 인터럽트 전송구간 중재에 참여한 사실을 MPIH측에 알려주고, 인터럽트 요구신호를 선정하면, 타겟 모듈의 ID, 자신의 ID, 벡터를 HiPi+버스를 통해 MPIH측으로 전송하는 제2과정과; 중재 인터럽트 전송/처리 모드에서, MPIH는 현재 인터럽트가 중재 인터럽트임을 확인한 후 내부적으로 프로세서들간의 중재를 실시하고, MPIR이 선정되면, 상기 HiPi+버스상에 발생된 인터럽트 처리 요구가 자신이 소속된 그룹이고,MPIH들간의 중재에서 자신이 선정되는 것을 확인하여 조건이 성립되는 경우 상기 MPIR로 부터 벡터를 전송받고 응답신호를 송출하는 제3과정으로 이루어지는 것을 특징으로 하는 HiPi+ 버스상의 인터럽트 제어 방법.In the direct interrupt transmission / processing mode, the MPIR generates an interrupt request signal by each processor, participates in HiPi + bus arbitration, selects an interrupt request signal, and sequentially transmits the ID, its ID, and the vector of the target module. A first step of performing arbitration to request interrupt processing from a selected processor; In the moderation interrupt transmission / processing mode, the MPIR informs the MPIH that it has participated in arbitration of the interrupt transmission section, and when the interrupt request signal is selected, the ID, its ID, and the vector of the target module are transmitted to the MPIH side via the HiPi + bus. A second process of doing; In the moderation interrupt transmission / processing mode, the MPIH internally arbitrates between processors after confirming that the current interrupt is an arbitration interrupt, and if MPIR is selected, the interrupt processing request generated on the HiPi + bus is the group to which it belongs. And a third step of receiving a vector from the MPIR and transmitting a response signal when the condition is established by confirming that the user is selected in arbitration between MPIHs. 제1항에 있어서, 제2과정과 제3과정은 동시에 수행함을 특징으로 하는 HiPi+ 버스상의 인터럽트 제어 방법.The method of claim 1, wherein the second process and the third process are performed at the same time. 주전산기에 채택되어 BTL 규격을 지원하는 HiPi+버스(10)와; 모듈내의 프로세서(45A~45D)들로 부터 인터럽트 전송요구신호가 발생될 때, 인터럽트 중재과정을 통해 선정한 인터럽트 요구신호가 시스템내의 인터럽트 핸들러에 의해 처리될 수 있도록 상기 HiPi+버스(10)를 구동하는 MPIR(41)과; 상기 HiPi+버스(10)를 통해 인터럽트 전송요구신호가 입력될 때 자신의 모듈로의 직접적인 인터럽트요구신호인지를 확인하여 조건이 성립될 때 중재기능을 수행한 후 선정된 프로세서의 인터럽트 응답요구신호를 내부의 레지스터에 저장하는 MPIH(42)와; 상기 MPIH(42)와 그밖의 인터럽트 소오스들로 부터 발생되는 인터럽트처리 요구신호를 수집한 후 모듈내의 각각의 프로세서(45A~45D)에 인터럽트를 걸어 이의 처리를 요구하는 다수의 IRAC(43A~43D)와; BTL송수신기를 구비하여, 인터럽트 제어기(40)와 상기 HiPi+버스(10)간의 인터럽트 요구신호를 전달하는 SBIB(44)로 구성한 것을 특징으로하는 HiPi+ 버스상의 인터럽트 제어 장치.HiPi + bus 10 is adopted to the host computer supporting the BTL standard; When an interrupt transfer request signal is generated from the processors 45A to 45D in the module, an MPIR for driving the HiPi + bus 10 so that the interrupt request signal selected through the interrupt arbitration process can be processed by the interrupt handler in the system. (41); When the interrupt transmission request signal is input through the HiPi + bus 10, it checks whether it is a direct interrupt request signal to its own module, and when the condition is established, performs an arbitration function and then internalizes the interrupt response request signal of the selected processor. MPIH 42 for storing in the register of; After collecting the interrupt processing request signals generated from the MPIH 42 and the other interrupt sources, a plurality of IRACs 43A to 43D which interrupt the respective processors 45A to 45D in the module and request processing thereof. Wow; And an SBIB (44) for transmitting an interrupt request signal between the interrupt controller (40) and the HiPi + bus (10), comprising a BTL transmitter and receiver. 제3항에 있어서, MPIR(41)은 각 프로세서별로 요구된 인터럽트 요구신호를 별도로 저장하기 위한 다수의 레지스터와; HiPi+버스(10)상에 인터럽트 요구신호를 송출하기 위한 제어기와; 각 프로세서의 인터럽트 요구를 내부적으로 중재하기 위한 라운드 로빈방식의 중재기로 구성한 것을 특징으로 하는 HiPi+ 버스상의 인터럽트 제어 장치.4. The MPIR device according to claim 3, further comprising: a plurality of registers for separately storing interrupt request signals required for each processor; A controller for sending an interrupt request signal on the HiPi + bus 10; An interrupt control device on a HiPi + bus, comprising a round-robin arbitrator for internally mediating interrupt requests for each processor. 제3항에 있어서, MPIH(42)는 HiPi+버스(10)상에서 처리 요구된 인터럽트에 대해 라운드 로빈방식으로 처리하여 프로세서의 인터럽트 응답 요구신호를 선정하는 중재기와; 상기 중재기에 의해 선정된 인터럽트 응답 요구신호를 프로세서별로 저장하는 다수의 레지스터를 포함하여 구성한 것을 특징으로 하는 HiPi+ 버스상의 인터럽트 제어 장치.4. The MPIH 42 further comprises: an arbiter for processing an interrupt requested for processing on a HiPi + bus 10 in a round robin manner to select an interrupt response request signal of a processor; And a plurality of registers for storing the interrupt response request signal selected by the arbiter for each processor.
KR1019970053001A 1997-10-16 1997-10-16 Interrupt control method and apparatus of hipi+ bus KR100253196B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970053001A KR100253196B1 (en) 1997-10-16 1997-10-16 Interrupt control method and apparatus of hipi+ bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970053001A KR100253196B1 (en) 1997-10-16 1997-10-16 Interrupt control method and apparatus of hipi+ bus

Publications (2)

Publication Number Publication Date
KR19990032069A KR19990032069A (en) 1999-05-06
KR100253196B1 true KR100253196B1 (en) 2000-04-15

Family

ID=19522849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970053001A KR100253196B1 (en) 1997-10-16 1997-10-16 Interrupt control method and apparatus of hipi+ bus

Country Status (1)

Country Link
KR (1) KR100253196B1 (en)

Also Published As

Publication number Publication date
KR19990032069A (en) 1999-05-06

Similar Documents

Publication Publication Date Title
US5854906A (en) Method and apparatus for fast-forwarding slave request in a packet-switched computer system
EP0356110B1 (en) Multiprocessor interconnection and access arbitration arrangement
US6557069B1 (en) Processor-memory bus architecture for supporting multiple processors
JPH0652096A (en) Method and apparatus for executing arbitration of bus using arbiter in data processing system
US6425037B1 (en) Information processing system, bus arbiter, and bus controlling method
JP3919765B2 (en) Method and processor for managing arbitration
US5822549A (en) Computer system and bus controller for controlling access to a computer bus
CN100504824C (en) Opportunistic read completion combining
JP4669113B2 (en) Connection port for interconnect modules in integrated circuits
EP1089501B1 (en) Arbitration mechanism for packet transmission
KR100253196B1 (en) Interrupt control method and apparatus of hipi+ bus
US20110219155A1 (en) Processing system and method for transmitting data
US6701388B1 (en) Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
KR100357284B1 (en) The one chip asynchronous microprocessor Inter Processor Communication circuit
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
CN111722916B (en) Method for processing MSI-X interrupt through mapping table
EP1193607B1 (en) Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
US7356669B2 (en) Processing system and method for transmitting data
EP1193605B1 (en) Apparatus and method for the transfer of signal groups between digital signal processors in a digital signal processing unit
CN115269467B (en) Bus arbitration method and device, storage medium and electronic equipment
GB2352143A (en) Token passing scheme
WO2023016910A2 (en) Interconnecting reconfigurable regions in an field programmable gate array
JPH03210654A (en) Distributed control processor
JP3050131B2 (en) Arbitration method
JPH04335457A (en) Bus arbitration 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: 20061220

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee