KR19990061480A - 로컬 인터럽트 제어기에서 인터럽트 처리방법 - Google Patents

로컬 인터럽트 제어기에서 인터럽트 처리방법 Download PDF

Info

Publication number
KR19990061480A
KR19990061480A KR1019970081746A KR19970081746A KR19990061480A KR 19990061480 A KR19990061480 A KR 19990061480A KR 1019970081746 A KR1019970081746 A KR 1019970081746A KR 19970081746 A KR19970081746 A KR 19970081746A KR 19990061480 A KR19990061480 A KR 19990061480A
Authority
KR
South Korea
Prior art keywords
interrupt
processor
register
service
local
Prior art date
Application number
KR1019970081746A
Other languages
English (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 KR1019970081746A priority Critical patent/KR19990061480A/ko
Publication of KR19990061480A publication Critical patent/KR19990061480A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

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

Abstract

본 발명은 시스템 버스를 이용하는 다중 프로세서시스템의 입출력 제어보드 에서 로컬 인터럽트 제어기에 의해 인터럽트를 처리하는 방법에 관한 것이다.
이러한 본 발명의 방법은 인터럽트가 요청되면 인터럽트 요청 레지스터(IRR)를 설정하는 단계; 요청된 인터럽트가 인터럽트 마스크 레지스터(IMR)상에서 마스크되었는지를 판단하고, 마스크되지 않았으면 우선순위를 비교하는 단계; 우선순위가 높으면 인터럽트 서비스중인지를 판단한 후 서비스중이 아니면 인 서비스 레지스터(ISR)를 설정하고 프로세서에 인터럽트를 거는 단계; 프로세서로부터 제1 인터럽트 응락(ACK0)이 수신되면 인터럽트를 클리어시키는 단계; 프로세서로부터 제2 인터럽트 응락(ACK1)이 수신되면 데이터 버스를 통해 인터럽트 벡터를 전송한 후 인터럽트 요청 레지스터(IRR)를 클리어시키는 단계; 및 프로세서에 의해 인터럽트 종료(EOI)가 설정되면 인 서비스 레지스터(ISR)를 클리어시키는 단계를 구비한다.
따라서, 본 발명은 로컬 인터럽트 제어기에서 인터럽트 소스로부터 인터럽트가 발생되면 프로세서에 인터럽트를 걸어 처리를 요구하고 프로세서의 인터럽트 응락에 따라 인터럽트 벡터를 전송한 후 인터럽트를 종료하여 처리속도를 향상시킬 수 있다.

Description

로컬 인터럽트 제어기에서 인터럽트 처리방법(Method of processing interrupt in a local interrupt controller)
본 발명은 시스템 버스를 이용하는 다중 프로세서시스템의 입출력 제어보드 에서 로컬 인터럽트 제어기에 의해 인터럽트를 처리하는 방법에 관한 것이다.
일반적으로 다중 프로세서 시스템은 도 1에 도시된 바와 같이, 공통의 시스템 버스(1)에 다수개의 프로세서보드(2)와 메모리보드(3), 입출력 제어보드(4), 및 시스템 제어보드(5)가 연결되어 데이터를 교환하도록 구성되어 있다.
도 1과 같은 구성의 예로서, 고속 중형컴퓨터에 있어서 시스템 버스(1)는 정보전달의 통로가 되는 백플레인 버스로서 주전산기 II의 시스템버스인 HiPi버스를 개량한 HiPi+버스이고, 프로세서보드(2)는 팬티엄 프로세서 및 캐쉬 메모리가 구비되며 운영체재 및 사용자의 프로그램을 수행하는 주 보드로서 공유 버스상에 10개의 보드까지 확장이 가능한 밀결합 다중 프로세서이다. 메모리 보드(3)는 운영체제 및 사용자의 프로그램 및 데이터를 저장하는 보드로서, 공유버스상에 최대 8장까지 실장할 수 있다. 또한, 입출력 제어보드(4)는 디스크와 테이프등과 같은 대용량의 디바이스와 주기억장치 사이의 데이터전송을 효율적으로 처리하기 위한 프로세싱과 통로역할을 담당하는 보드로서, 블록 입출력 디바이스의 제어를 위한 디바이스를 저장하기 위한 롬 및 로칼 램을 구비하며 전송데이터를 임시 저장하기 위한 대용량의 버퍼도 가지고 있고, 공유 시스템버스상에 4개의 보드까지 확장가능하며 블록 입출력디바이스를 위한 4개의 SCSI-2버스 인터페이스를 제공한다. 그리고 시스템 제어보드(5)는 콘솔, 터미날, 프린터등의 문자 입출력처리 디바이스와, LAN,WAN,ISDN등의 통신 디바이스와 주기억장치 사이의 데이터 전송을 효율적으로 처리하기 위한 프로세싱과 통로역할을 담당하고, 문자 및 통신 입출력 디바이스의 제어를 위한 디바이스 드라이버를 내장할 수 있는 롬 및 로칼 램을 구비하며 시스템 전체자원으로서 TODC 및 배터리 백업 램도 가진다.
이러한 다중프로세서 시스템의 입출력 보드에서는 시스템 버스상에 연결되는 자원과 입출력버스상에 연결되는 자원을 연결하기 위하여 로컬 인터럽트 기능이 필요하다.
이에 본 발명은 상기와 같은 필요성을 충족시키기 위하여 제안된 것으로, 다중 프로세서시스템의 로컬 인터럽트 제어기에서 인터럽트를 처리하는 방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 인터럽트가 요청되면 인터럽트 요청 레지스터(IRR)를 설정하는 단계; 요청된 인터럽트가 인터럽트 마스크 레지스터(IMR)상에서 마스크되었는지를 판단하고, 마스크되지 않았으면 우선순위를 비교하는 단계; 우선순위가 높으면 인터럽트 서비스중인지를 판단한 후 서비스중이 아니면 인 서비스 레지스터(ISR)를 설정하고 프로세서에 인터럽트를 거는 단계; 프로세서로부터 제1 인터럽트 응락(ACK0)이 수신되면 인터럽트를 클리어시키는 단계; 프로세서로부터 제2 인터럽트 응락(ACK1)이 수신되면 데이터 버스를 통해 인터럽트 벡터를 전송한 후 인터럽트 요청 레지스터(IRR)를 클리어시키는 단계; 및프로세서에 의해 인터럽트 종료(EOI)가 설정되면 인 서비스 레지스터(ISR)를 클리어시키는 단계를 구비한 것을 특징으로 한다.
도 1은 일반적인 다중 프로세서시스템의 예를 도시한 블록도,
도 2는 본 발명에 따른 로컬 인터럽트 제어기가 적용된 입출력 제어보드의 구성예,
도 3은 본 발명에 따른 로컬 인터럽트 제어기의 구성을 도시한 블록도,
도 4는 본 발명에 따라 로컬 인터럽트를 처리하는 절차를 설명하기 위한 순서도이다.
*도면의 주요부분에 대한 부호의 설명
210: 프로세서부 211: 리셋부
212: DMAC 213: 데이터 버퍼
214: 입출력 확장부 215: 시스템 인터페이스부
216: 시스템 클럭부 217: BTL로직
220: 로컬인터럽트 제어기 230: 다중프로세서 인터럽트 제어기(MPIC)
221: 인터럽트 요구 레지스터(IRR) 222: 인터럽트 마스크 레지스터(IMR)
223: 우선순위 처리부 224: 인 서비스 레지스터(ISR)
225: 제어로직
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 자세히 설명하기로 한다.
먼저, 본 발명에 따른 로컬 인터럽트 제어기가 적용되는 입출력 제어보드의 구성은 도 2에 도시된 바와 같이, 프로세서부(210), 리셋부(211), 로컬 인터럽트 제어기(220), 직접 메모리 억세스 제어기(DMAC:212), 데이터 버퍼(213), 입출력 확장부(214), 시스템 인터페이스부(215), 시스템 클럭부(216), 다중 프로세서 인터럽트 제어기(MPIC:230), 및 BTL로직(217)을 포함한다. 이러한 입출력 제어보드는 블록(block) 디바이스를 지원하는 SCSI버스와 캐릭터(character) 디바이스를 지원하는 VME버스를 동시에 지원하며 시스템 버스와 입출력장치들간의 접속기능을 제공한다.
또한 입출력 제어보드는 동일한 하드웨어로서 시스템 제어기 혹은 입출력제어기로서 동작 가능한데, 시스템 제어기로 동작시에는 시스템 버스상의 각 보드들의 제어를 통하여 시스템의 초기화, 시스템 제어, 시스템 진단, 운영체제의 부팅 등과 관련된 제어기능을 수행하고, 운영체제가 부팅된 후에도 시스템 공유자원을 관리하는 기능을 갖는다. 입출력 제어기로 동작시에는 주처리장치 블록으로부터 입출력 요구를 받아 이를 해석하고, 해석된 내용에 따라 블록 입출력장치(예컨대, Disk Drive, M/T Drive)와 문자 및 문자의 패킷 전송을 담당하는 통신보드들(예컨대, LAN, TTY, X.25, WAN)부터 데이터를 전송받아 이를 시스템 블록의 주기억장치로 전송해 주는( 혹은 그역으로) 기능을 수행하여 주처리장치의 입출력 처리에 대한 부하를 경감시키고, 고속의 데이터 전송 능력을 갖게 한다.
도 2를 참조하면, 프로세서부(210)는 프로세서와 로컬 메모리, 어드레스 디코더, SIO, RTC 등을 포함하여 전체 동작을 처리한다. 리셋부(211)는 로컬 클럭, 리셋신호 및 와치독 타이머 기능을 프로세서부(210)에 제공하고, DMAC(212)는 데이터 버퍼(213)로부터 시스템 주기억장치로 (혹은 그 역으로) 고속의 데이터 전송을 가능하게 하여 프로세서의 부하를 최소화한다.
입출력확장부(214)는 SCSI버스 제어기와 VME버스 제어기를 포함하여 SCSI버스와 VME버스에 의한 입출력장치의 접속 기능을 제공한다.
인터럽트 제어기는 다중 프로세서시스템을 지원하기 위한 프로세서간의 인터럽트 및 동적 인터럽트 분배가 가능하고, 시스템의 인터럽트 버스를 통해 인터럽트 메시지를 송수신할 수 있는 다중 프로세서 인터럽트 제어기(MPIC:Multi Processor Controller,230)와, 로컬 입출력 디바이스로부터의 인터럽트를 우선순위별로 처리하여 프로세서로 인터럽트를 요청하고, 인터럽트 응락(ACK) 사이클동안 그 인터럽트에 해당하는 인터럽트 벡터를 제공하는 로컬 인터럽트 제어기(LIC:Local Interrupt Controller,220)로 구성되어 있다. 로컬 인터럽트 제어기(220)는 인터럽트의 우선순위를 처리하기 위한 인터럽트 마스크 레지스터(IMR)와 인터럽트 벡터를 저장하는 인터럽트 벡터 레지스터를 가지고 있다.
시스템 버스 인터페이스부(215)는 시스템 버스(1)와의 입출력 기능을 제공하고, 시스템 클럭부(216)는 시스템 버스의 시스템 클럭을 제공하며, BTL로직(217)은 시스템버스(1)를 구동하기 위한 것이다.
도 3은 본 발명에 따른 로컬 인터럽트 제어기의 구성을 도시한 블록도이다. 로컬 인터럽트 제어기는 도 3에 도시된 바와 같이, 인터럽트 요구 레지스터(IRR:221)와 인터럽트 마스크 레지스터(IMR:222), 우선순위 처리부(223), 인서비스 레지스터(ISR), 제어로직(225)으로 구성된다. 이러한 로컬 인터럽트 제어기(220)는 로컬 및 I/O 유니트의 인터럽트 소스 즉, 주변 디바이스로부터 인터럽트 요구가 왔을 때, 이를 우선순위별로 처리하여 프로세서로 인터럽트가 발생되었음을 알려주고(Interrupt Request), 프로세서로부터 인터럽트 승인신호가 오면 데이터 버스를 통해 인터럽트 벡터를 전송한다.
이러한 로컬 인터럽트의 동작을 개략적으로 살펴보면, 인터럽트 소스로부터 인터럽트가 발생되면, 마스킹 여부를 검사한 후 우선순위별로 처리하여 프로세서로 알린다. 프로세서로부터 첫 번째 인터럽트 승인 사이클에서 인터럽트신호는 래치된다. 데이터 버스는 하이 임피던스 상태를 유지하고, 두 번째 인터럽트승인 동작시 데이터 버스를 통해 인터럽트 벡터를 전송함과 아울러 우선순위가 높은 인 서비스 레지스터(ISR)비트를 셋하고, 인터럽트 요구 레지스터(IRR)비트를 리셋한다. 프로세서에 의해 인터럽트 서비스 프로그램이 수행되고, 프로세서에 의해 제어 레지스터의 EOI 비트가 1로 셋된 후 인 서비스 레지스터의 해당 비트를 리셋한다.
이때 로컬 인터럽트 소스로는 RTC 인터럽트, DMA 인터럽트, VME 인터럽트, NMI 등이 있고, NMI를 요구할 수 있는 소스로는 시스템 페일, E-타입 인터럽트, VME시스템 페일, CPU 어보트 등이다.
그리고 인터럽트의 종류로는 인터럽트 전송 방법에 따라 인터럽트 처리기를 요청기가 선정하여 인터럽트를 전송하는 지정 인터럽트(DI: Direct Interrupt)와 인터럽트 처리기를 요청기 사이의 중재를 통하여 선정되도록 하는 중재 인터럽트(AI: Arbitration Interrupt)로 크게 분류할 수 있다. 중재 인터럽트는 전송정보의 양에 따라 중재 인터럽트 1, 중재 인터럽트 0으로 구분된다. 이와 같이 3종류의 인터럽트는 인터럽트 전송순서에 있어서 우선순위가 있으며, 지정 인터럽트가 높은 우선순위를 가지며 중재 인터럽트 1, 중재 인터럽트 0의 순서로 우선순위가 낮아진다.
그리고 인터럽트 벡터는 전송된 인터럽트의 중심이 되는 정보로써 8비트와 16비트 크기가 있다. 인터럽트 벡터가 갖고 있는 의미는 인터럽트 발생원인과, 요청하는 동작이 무엇인지를 나타낸다.
도 4는 본 발명에 따른 로컬 인터럽트 제어기의 동작을 설명하기 위한 순서도이다.
도 4를 참조하면, 인터럽트 요청 소스로부터 인터럽트 요청기로 인터럽트가 수신되면, 단계 401에서 인터럽트 요구(IRR) 레지스터를 설정하고, 단계 402에서 요구된 인터럽트가 인터럽트 마스크 레지스터(IMR)상에 마스크되었는지를 판단한다. 마스크되지 않았으면, 단계 403은 발생된 인터럽트가 다른 인터럽트보다 우선순위가 높은가를 판단한 후 높으면 단계 404에서 인터럽트가 서비스중인지를 판단한다. 인터럽트가 서비스중이 아니면 단계 405에서 인 서비스 레지스터(ISR)를 설정한 후 프로세서에 인터럽트를 건다. 이어 프로세서로부터 인터럽트 응락(ACK0) 0이 수신되면 인터럽트를 클리어시킨다. 이어 인터럽트 응락(ACK) 1이 수신되면 단계 407에서 인터럽트 벡터를 전송한 후, 단계 407에서 인터럽트 요구 레지스터(IRR)를 클리어시킨다. 이어 프로세서에 의해 제어 레지스터의 EOI비트가 셋되면 단계 408에서 인 서비스 레지스터(ISR)를 클리어시킨다.
이상에서 살펴본 바와 같이, 본 발명은 로컬 인터럽트 제어기에서 인터럽트소스로부터 인터럽트가 발생되면 프로세서에 인터럽트를 걸어 처리를 요구하고 프로세서의 인터럽트 응락에 따라 인터럽트 벡터를 전송한 후 인터럽트를 종료하여 처리속도를 향상시킬 수 있다.

Claims (1)

  1. 인터럽트가 요청되면 인터럽트 요청 레지스터(IRR)를 설정하는 단계;
    요청된 인터럽트가 인터럽트 마스크 레지스터(IMR)상에서 마스크되었는지를 판단하고, 마스크되지 않았으면 우선순위를 비교하는 단계;
    우선순위가 높으면 인터럽트 서비스중인지를 판단한 후 서비스중이 아니면 인 서비스 레지스터(ISR)를 설정하고 프로세서에 인터럽트를 거는 단계;
    프로세서로부터 제1 인터럽트 응락(ACK0)이 수신되면 인터럽트를 클리어시키는 단계;
    프로세서로부터 제2 인터럽트 응락(ACK1)이 수신되면 데이터 버스를 통해 인터럽트 벡터를 전송한 후 인터럽트 요청 레지스터(IRR)를 클리어시키는 단계; 및
    프로세서에 의해 인터럽트 종료(EOI)가 설정되면 인 서비스 레지스터(ISR)를 클리어시키는 단계를 구비한 것을 특징으로 하는 로컬 인터럽트 제어기에서 인터럽트 처리방법.
KR1019970081746A 1997-12-31 1997-12-31 로컬 인터럽트 제어기에서 인터럽트 처리방법 KR19990061480A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970081746A KR19990061480A (ko) 1997-12-31 1997-12-31 로컬 인터럽트 제어기에서 인터럽트 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970081746A KR19990061480A (ko) 1997-12-31 1997-12-31 로컬 인터럽트 제어기에서 인터럽트 처리방법

Publications (1)

Publication Number Publication Date
KR19990061480A true KR19990061480A (ko) 1999-07-26

Family

ID=66181650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970081746A KR19990061480A (ko) 1997-12-31 1997-12-31 로컬 인터럽트 제어기에서 인터럽트 처리방법

Country Status (1)

Country Link
KR (1) KR19990061480A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100410985B1 (ko) * 2001-08-09 2003-12-18 삼성전자주식회사 오토벡터 방식 마이크로 프로세서의 벡터드 인터럽트 처리장치
KR20210053448A (ko) 2019-11-02 2021-05-12 한상혁 술자판기
KR20220079072A (ko) 2020-12-04 2022-06-13 최치훈 키오스크 방식의 주류 자판기

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100410985B1 (ko) * 2001-08-09 2003-12-18 삼성전자주식회사 오토벡터 방식 마이크로 프로세서의 벡터드 인터럽트 처리장치
KR20210053448A (ko) 2019-11-02 2021-05-12 한상혁 술자판기
KR20220079072A (ko) 2020-12-04 2022-06-13 최치훈 키오스크 방식의 주류 자판기

Similar Documents

Publication Publication Date Title
US5594882A (en) PCI split transactions utilizing dual address cycle
US6983337B2 (en) Method, system, and program for handling device interrupts
US5740376A (en) Signaling protocol for a peripheral component interconnect
US7647416B2 (en) Full hardware based TCP/IP traffic offload engine(TOE) device and the method thereof
US6094700A (en) Serial bus system for sending multiple frames of unique data
US6496890B1 (en) Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters
US5937200A (en) Using firmware to enhance the functionality of a controller
EP0535793B1 (en) Method for managing data transfers in a computing system having a dual bus structure
US20050066099A1 (en) Interrupt disabling apparatus, system, and method
US5819111A (en) System for managing transfer of data by delaying flow controlling of data through the interface controller until the run length encoded data transfer is complete
JPH04318654A (ja) マイクロプロセッサへの割り込みのリダイレクションシステム
US6470408B1 (en) Apparatus and method for delivering interrupts via an APIC bus to IA-32 processors
US6128674A (en) Method of minimizing host CPU utilization in driving an adapter by residing in system memory a command/status block a soft interrupt block and a status block queue
US6658515B1 (en) Background execution of universal serial bus transactions
US6789142B2 (en) Method, system, and program for handling interrupt requests
JPS623362A (ja) デ−タ受信方式
KR100347076B1 (ko) 2차 버스로부터의 메시징 유닛 액세스
US6418497B1 (en) Method and system for interrupt handling using system pipelined packet transfers
US20030212845A1 (en) Method for high-speed data transfer across LDT and PCI buses
JPH10105489A (ja) 処理システム内でのデータパケット送信のための方法、および、バッファ管理のためのシステム、ならびに、データパケット送信のためのプログラム情報を含むコンピュータ可読な媒体
JP3600536B2 (ja) 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム
EP0632626B1 (en) Method and system for interrupt responsive execution of communications protocols
KR19990061480A (ko) 로컬 인터럽트 제어기에서 인터럽트 처리방법
US20010021967A1 (en) Method and apparatus for arbitrating deferred read requests
US6112272A (en) Non-invasive bus master back-off circuit and method for systems having a plurality of bus masters

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application