KR950012507B1 - 고속중형 컴퓨터의 인터럽트 처리방법 - Google Patents

고속중형 컴퓨터의 인터럽트 처리방법 Download PDF

Info

Publication number
KR950012507B1
KR950012507B1 KR1019930029083A KR930029083A KR950012507B1 KR 950012507 B1 KR950012507 B1 KR 950012507B1 KR 1019930029083 A KR1019930029083 A KR 1019930029083A KR 930029083 A KR930029083 A KR 930029083A KR 950012507 B1 KR950012507 B1 KR 950012507B1
Authority
KR
South Korea
Prior art keywords
interrupt
vector
message
operating system
irac
Prior art date
Application number
KR1019930029083A
Other languages
English (en)
Other versions
KR950020188A (ko
Inventor
정재열
이재경
남궁한
Original Assignee
재단법인한국전자통신연구소
양승택
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인한국전자통신연구소, 양승택 filed Critical 재단법인한국전자통신연구소
Priority to KR1019930029083A priority Critical patent/KR950012507B1/ko
Publication of KR950020188A publication Critical patent/KR950020188A/ko
Application granted granted Critical
Publication of KR950012507B1 publication Critical patent/KR950012507B1/ko

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

Landscapes

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

Abstract

내용 없음.

Description

고속중형 컴퓨터의 인터럽트 처리방법
제1도는 본 발명에 따른 하드웨어 구성을 나타낸 블럭도.
제2도는 본 발명에 따른 인터럽트 전송시 하드웨어 및 소프트웨어의 동작과정을 나타낸 블럭도.
제3도는 본 발명에 따른 인터럽트 수신시 하드웨어 및 소프트웨어의 동작과정을 나타낸 블럭도.
제4도는 본 발명에 따른 처리기간 인터럽트의 동작과정을 나타낸 회로도.
* 도면의 주요부분에 대한 부호의 설명
1 : MPU(주처리장치) 2 : SCM(시스템제어기)
3 : ICM(인터럽트 제어기 모듈) 4 : 메모리
5 : IOP(입출력 제어기) 6 : 인터럽트 제어기 모듈
7 : IRAC(인터럽트 요구응답 제어기)
8 : MPIR(인터럽트 요청기)
9 : MPIH(인터럽트 처리기) 10 : TMR(타이머)
11 : IBI(인터럽트 버스 인터페이스) 12 : 펜티엄
13 : TMR(전송메시지 레지스터) 14 : CSR(제어상태 레지스터)
15 : IVR 16 : 벡터테이블
1, 17 : 핸들러 1, 18 : 벡터테이블
2, 19 : 핸들러 2, 20 : 벡터테이블
3, 21 : 핸들러 3
본 발명은 고속중형 컴퓨터에 탑재될 운영체제의 일부에 포함되어 보드간 인터럽트와 처리기간의 인터럽트 전송 및 수신이 가능하도록 하드웨어를 제어하고 다중처리기(multiprocessor) 시스템의 부하균등을 고려하는 인터럽트 처리방법에 관한 것이다.
다중처리기용 운영체제가 고속중형 컴퓨터의 성능을 최대로 보장하기 위해서는 운영체제 코드를 공유한다.
또한 동시에 동작중인 각 처리기 보드들과 다른 시스템 보드의 자원사용에 대한 부정기적인 통신수단인 인터럽트 처리도 시스템 성능에 영향을 많이 미친다.
따라서 고속중형 컴퓨터의 시스템 버스에 탑재될 보드에 장착하기 위하여 인터럽트 컨트롤러의 하드웨어의 사양에 의해 시스템 성능을 극대화할 수 있는 소프트웨어의 설계가 요구된다.
이에 본 발명은 인터럽트 전송 및 수신을 효과적으로 구현하고 동시에 시스템 프로그래머에게 직접 및 중재 모드의 인터럽트 전송이 가능한 인터페이스를 제공하는 데 그 목적이 있다.
또한 본 발명의 또 다른 목적은 다중처리기용 운영체제의 기능에 필요한 다중처리기간 인터럽트를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명의 특징은 시스템에 장착될 각종 입출력장치와 보드 및 운영체제가 사용할 벡터테이블들에 벡터를 할당하고 IRAC(인터럽트 요구응답 제어기)의 IVR에 벡터값으로 초기화시키고 ICM(인터럽트 제어기 모듈)의 각 모듈에 위치한 제어레지스터를 세트시키는 제1단계와, 입력으로 주어진 전송모드와 타입에 따라 인터럽트 버스에 실을 인터럽트 메시지를 구축하고 MPIR(인터럽트 요청기)의 레지스터를 제어하며 메시지를 전송하는 제2단계와, 인터럽트 수신시 처리기가 IRAC(인터럽트 요구응답 제어기)로부터 받은 벡터값에 따라 벡터테이블에 저장된 운영체제의 일부인 핸들러를 수행하고 제어권을 운영체제가 가진 상태에서 운영체제가 인식하는 벡터값을 메시지로부터 읽어 요구되는 기능을 수행하는 제3단계와, 처리기간의 인터럽트에 필요한 상호간의 프로토콜을 통해 발신측은 필요한 기능을 명시하고 수신측은 이를 인지하여 필요한 기능을 수행하는 제4단계로 구성된 특징이 있다.
다음은 첨부한 도면에 의거하여 본 발명을 설명한다. 제1도는 본 발명에 따른 하드웨어 구성도를 나타낸 것이다. 시스템버스상에 장착된 주처리기(MPU)(1)와 시스템 제어기(SCM2), 입출력 제어기(IOP)(5)는 보드내에 인터럽트 제어기를 가진다.
그리고, 시스템 버스는 인터럽트 버스를 포함하고 있다. 각 보드간의 인터럽트는 인터럽트 버스를 통해 메시지를 전송함으로써 이루어지고, 인터럽트의 전송 및 수신에 대한 처리는 인터럽트 제어기(6)가 담당한다.
상기 인터럽트 제어기(6)내의 IRAC(7)는 인터럽트의 수신을 펜티엄에게 통보하고 서비스를 요구하고, 구동 인터럽트에 대해 마스킹을 수행하고, 펜티엄이 인터럽트 벡터를 요구하면 인터럽트 벡터를 전해주는 기능을 수행한다. MPIR(8)은 IRAC(7)로부터 인터럽트 전송요구를 받으면 중재를 통해 버스사용권을 획득한 후 프로토콜에 따라 인터럽트 메시지를 전송한다.
그리고 인터럽트 메시지 전송시 오류가 발생하면 그 내용을 레지스터에 기록하고 재시도 하는데 재시도 횟수만큼 중재단계부터 재시도를 시도하여 끝내 실패할 경우에는 상기 내용을 인터럽트로 IRAC(7)에 알린다.
그러면 MPIH(인터럽트 처리기)(9)는 인터럽트 버스를 감시하고 있다가 자신에게 인터럽트가 오면 이를 수신하여 저장하고 IRAC(7)에 인터럽트의 수신을 알린다.
그리고 TMR(타이머)(10)은 주기적인 인터럽트를 발생시켜 IRAC(7)에게 알리며 소프트웨어에 의해 인터럽트 발생빈도를 미리 지정한다.
그리고 IBI(11)는 인터럽트 버스의 인터페이스를 나타낸다. 제2도는 인터럽트 전송시 하드웨어 및 소프트웨어의 동작과정을 나타낸다.
인터럽트를 요구하는 측에서는 인터럽트 전송 소프트웨어에게 인터럽트의 전송모드와 타입, 발신측 주소와 수신측 주소, 인터럽트 레벨, 벡터번호를 입력 파라미터로 하여 전송을 요구한다.
인터럽트 전송처리 소프트웨어에서는 전송 인터럽트의 종류에 따라 입력 파라미터를 사용하여 메시지를 구축한 뒤 MPIR(8)의 TMR(13)에 기록할 것을 요구하면 IRA(7)가 상기 메시지를 받아 MPIR(8)에게 전달한다.
그리고 인터럽트 전송시 소프트웨어의 기능은 MPIR(8)의 CSR(제어상태 레지스터)(14)에 있는 인터럽트 전송비트를 세트함으로써 완료된다.
인터럽트 전송비트가 세트되면 MPIR(8)은 TMR(13)에 저장된 메시지를 IBI(11)에 보내 인터럽트 버스를 통해 다른 보드로 전달한다.
그러나 전송이 실패하였을 경우에는 전송이 실패한 내용을 CSR(14)에 기록하고 IRAC(7)에 Rint 핀을 구동하면, Rint 신호를 받은 IRAC(7)는 다시 펜티엄(12)에 INTR 핀을 구동시켜 처리기에게 인터럽트 전송이 실패로 끝났다는 사실을 통보한다.
제3도는 인터럽트 수신시 하드웨어 및 소프트웨어의 동작 관계를 나타낸 것이다.
IRAC(7)에는 가능한 인터럽트 원인을 나타내는 6개의 핀이 있으며 이들중 하나가 구동되면 IRAC는 마스크 불가능한 인터럽트인지 마스크 가능한 인터럽트인지를 판단해 펜티엄(12)에 NMI나 INTR 핀중 하나를 구동시킨다.
이때 상기 NMI가 구동되었을 경우 처리기는 벡터번호 2를 스스로 판단하여 벡터테이블의 해당 핸들러가 수행되게 한다.
그리고 INTR이 구동되면 처리기는 다시 IRAC(7)의 Iack 핀을 구동시켜 IRAC(7)에게 벡터번호를 보내줄 것을 요구한다.
그리고 IRAC(7)는 IVR(15) 레지스터에 기록된 벡터중 해당 벡터를 데이터 버스에 실어 처리기로 보낸다.
그 다음 처리기는 받은 벡터를 이용해 벡터테이블(16,18)의 핸들러를 수행시킨다. 운영체제의 일부인 핸들러(17)은 자신이 구체적으로 어떤 기능을 수행해야 하는지를 알기 위해 MPIH(9)의 메시지큐에서 해당 인터럽트 메시지를 읽어 인터럽트의 레벨과 벡터번호를 읽는다.
인터럽트 서비스를 하는중에 자신보다 우선순위가 낮은 인터럽트가 들어오지 못하게 인터럽트 레벨로 마스크를 수행한 다음 인터럽트가 요구하는 구체적인 서비스를 수행하는 핸들러 2(19)를 벡터번호를 통하여 구한 다음 점프한다. 벡터테이블(16,18) 및 핸들러(17,19)의 구축은 소프트웨어의 책임이며, 처리기가 수행할 핸들러를 찾을 수 있도록 IRAC(7)의 IVR(15)도 소프트웨어가 초기화한다.
제4도는 처리기들 사이에서 어떤 사건에 대한 서비스 요구를 위해 인터럽트를 사용할 때 이를 상대 처리기에 알리고 또한 수신측 처리기는 이를 인지하고 특별한 서비스를 수행하는 과정을 나타낸 것이다.
관련 자료구조로서 메모리(4)상에 배열변수를 두고 배열의 엔트리는 태그 및 해당 기능을 수행할 핸들러(21)를 할당한다.
인터럽트 전송을 원하는 처리기는 해당 기능을 수행하는 핸들러를 갖는 엔트리의 태그필드를 세트한 다음, 인터럽트 메시지를 구축하고 상대방에게 인터럽트 메시지를 전송한다. 인터럽트 버스를 통해 메시지를 수신한 처리기는 MPIH(9)의 인터럽트 메시지 레지스터를 읽어 벡터번호를 구하고 이를 이용하여 핸들러 2(19)를 수행시킨다.
핸들러 2(19)는 벡터테이블 3(20)를 탐색하여 태그필드가 세트되어 있는 엔트리를 찾아 전송측이 요구한 기능을 핸들러 2(19)는 벡터테이블 3(20)를 탐색하여 태그필드가 세트되어 있는 엔트리를 찾아 전송측이 요구한 기능을 핸들러 3(21)를 통하여 수행한다.
이상에서 설명한 바에 의한 과정으로 이루어진 본 발명은 고속중형 컴퓨터의 하드웨어에 적용하여 시스템의 입출력장치나 보드가 필요로 하는 신속한 시스템 서비스를 제공해 주고 다중처리기 시스템의 운영체제 기능에 요구되는 처리기간의 동기화 및 통신을 위해 인터럽트를 이용한 프로토콜을 제공한다.
또한 시스템의 균등한 부하를 위하여 특정 처리기에서 반드시 처리되어야만 될 필요가 없는 인터럽트 요구는 부하가 작은 처리기에서 수행될 수 있도록 중재모드의 인터럽트도 제공한다.

Claims (2)

  1. 컴퓨터 시스템의 인터럽트 처리방법에 있어서, 상기 컴퓨터 시스템에 장착되는 입출력장치(5)와 보드 및 운영체제가 사용할 3개의 벡터테이블(16,18,20)에 벡터를 할당하고 IRAC(7)에 벡터값을 기록하고 ICM(6)의 제어 레지스터를 셋트시키는 제1단계와; 입력으로 주어진 전송모드와 타입에 따라 인터럽트 버스에 실을 인터럽트 메시지를 구축하고 MPIR(8)의 레지스터를 제어하여 메시지를 전송하는 제2단계와, 인터럽트 수신시 처리기가 IRAC(7)로부터 받은 벡터값에 따라 벡터테이블에 저장된 운영체제의 일부인 핸들러를 수행하고 제어권을 운영체제가 가진 상태에서 운영체제가 인식하는 벡터값을 메시지로부터 읽어 요구되는 기능을 수행하는 제3단계와, 처리기간의 인터럽트에 필요한 상호간의 프로토콜을 통해 발신측은 필요한 기능을 명시하고 수신측은 이를 상기 필요한 기능을 인지하여 수행하는 제4단계로 구성되는 것을 특징으로 하는 고속중형 컴퓨터의 인터럽트 처리방법.
  2. 제1항에 있어서, 상기 제3단계의 인터럽트 수신은 인터럽트 메시지 레지스터를 읽어 타입에 따라 트랩번호와 벡터번호 및 인터럽트 레벨로서 인터럽트 스택을 구축하여 핸들러 루틴에게 파라미터로 전달하는 것을 특징으로 하는 고속중형 컴퓨터의 인터럽트 처리방법.
KR1019930029083A 1993-12-22 1993-12-22 고속중형 컴퓨터의 인터럽트 처리방법 KR950012507B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930029083A KR950012507B1 (ko) 1993-12-22 1993-12-22 고속중형 컴퓨터의 인터럽트 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930029083A KR950012507B1 (ko) 1993-12-22 1993-12-22 고속중형 컴퓨터의 인터럽트 처리방법

Publications (2)

Publication Number Publication Date
KR950020188A KR950020188A (ko) 1995-07-24
KR950012507B1 true KR950012507B1 (ko) 1995-10-18

Family

ID=19372137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930029083A KR950012507B1 (ko) 1993-12-22 1993-12-22 고속중형 컴퓨터의 인터럽트 처리방법

Country Status (1)

Country Link
KR (1) KR950012507B1 (ko)

Also Published As

Publication number Publication date
KR950020188A (ko) 1995-07-24

Similar Documents

Publication Publication Date Title
US8874681B2 (en) Remote direct memory access (‘RDMA’) in a parallel computer
US8495655B2 (en) Messaging in a parallel computer using remote direct memory access (‘RDMA’)
US6711643B2 (en) Method and apparatus for interrupt redirection for arm processors
US7958274B2 (en) Heuristic status polling
JP2706602B2 (ja) 割込み再試行低減装置
US7827024B2 (en) Low latency, high bandwidth data communications between compute nodes in a parallel computer
US6983337B2 (en) Method, system, and program for handling device interrupts
US5528761A (en) Message passing apparatus for determining if counted acknowledgements from a set of processors are within a defined range
JPH04318654A (ja) マイクロプロセッサへの割り込みのリダイレクションシステム
JPH1097509A (ja) 対称型マルチプロセッサ・システムにおいて割り込みを分散する方法および装置
US6470408B1 (en) Apparatus and method for delivering interrupts via an APIC bus to IA-32 processors
US7966618B2 (en) Controlling data transfers from an origin compute node to a target compute node
US6012121A (en) Apparatus for flexible control of interrupts in multiprocessor systems
US6256660B1 (en) Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts
US5381541A (en) Computer system having planar board with single interrupt controller and processor card with plural processors and interrupt director
US6789142B2 (en) Method, system, and program for handling interrupt requests
US7089457B2 (en) Efficient I/O retry over QDIO
KR950012507B1 (ko) 고속중형 컴퓨터의 인터럽트 처리방법
US6112272A (en) Non-invasive bus master back-off circuit and method for systems having a plurality of bus masters
US8151028B2 (en) Information processing apparatus and control method thereof
JPS59762A (ja) デイジタル・プロセツサ・システム
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
JPH01305461A (ja) バス使用権制御方式
JPH056333A (ja) マルチプロセサシステム
JP2001236238A (ja) 割込処理方法

Legal Events

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

Payment date: 19980929

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee