KR0170506B1 - 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법 - Google Patents

멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법 Download PDF

Info

Publication number
KR0170506B1
KR0170506B1 KR1019950024214A KR19950024214A KR0170506B1 KR 0170506 B1 KR0170506 B1 KR 0170506B1 KR 1019950024214 A KR1019950024214 A KR 1019950024214A KR 19950024214 A KR19950024214 A KR 19950024214A KR 0170506 B1 KR0170506 B1 KR 0170506B1
Authority
KR
South Korea
Prior art keywords
interrupt
message
general
emergency
storage means
Prior art date
Application number
KR1019950024214A
Other languages
English (en)
Other versions
KR970012143A (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 KR1019950024214A priority Critical patent/KR0170506B1/ko
Publication of KR970012143A publication Critical patent/KR970012143A/ko
Application granted granted Critical
Publication of KR0170506B1 publication Critical patent/KR0170506B1/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)
  • Multi Processors (AREA)

Abstract

본 발명은 멀티프로세서 인터럽트 처리기 및 인터럽트 처리방법에 관한 것으로서, 그 특징은, 복수의 프로세서를 구비한 멀티프로세서 시스템에 포함되는 멀티프로세서 인터럽트 처리기에 있어서, 수신된 긴급 메시지를 저장하는 소정의 크기의 긴급 메시지 저장수단과, 수신된 일반 메시지들을 저장하는 소정개수의 일반 메시지 저장수단들과, 현재의 제어상태정보를 저장하는 제어상태 저장수단과 및 메시지가 긴급 메시지인지 일반 메시지인지를 구별하여 긴급 메시지이면 상기 긴급 메시지 저장수단에 저장하고 일반 메시지이면 상기 일반 메시지 저장수단에 저장하는 메시지의 수신 및 저장제어수단을 포함하는 데에 있으며, 그 다른 특징은, 복수의 프로세서를 구비한 멀티프로세서 시스템에 포함되는 인터럽트 처리기의 인터럽트 처리 방법에 있어서, 인터럽트를 전송하는 인터럽트 버스가 유휴상태가 될 때까지 기다리는 제1과정과, 중재상태로서 송신측에서 상기 인터럽트 버스의 사용권을 얻는 제2과정과, 상기 인터럽트 버스를 통하여 전송되는 메시지의 수신처가 자신인지 아닌지의 여부에 따라 메시지를 수신하거나 상기 제1과정으로 진행하는 제3과정과, 상기 인터럽트 버스를 통하여 수신된 메시지가 긴급 메시지인지 일반 메시지인지의 종류에 따라 상기 수신된 메시지를 긴급 메시지 저장수단에 또는 일반 메시지 저장수단에 저장하는 제4과정 및 수신된 인터럽트에 대하여 오류정보를 포함하는 응답을 송신측에 인터럽트 버스를 통하여 회신하고, 무조건 상기 제2과정으로 진행하는 제5과정을 포함하는 데에 있으며, 그 또 다른 특징은, 인터럽트 처리기의 긴급 인터럽트 구동방법에 있어서, 상기 인터럽트 처리기를 초기화하는 제1과정과, 상기 인터럽트 처리기가 중재상태인지, 긴급 인터럽트 신호가 구동되었는지 및 긴급 메시지가 저장되어 있는지를 판단하는 제2과정과, 상기 제2과정에서 상기 인터럽트 처리기가 중재상태이고 긴급 인터럽트 신호가 구동되지 않았고 긴급 메시지가 저장되어 있다고 판단되면, 긴급 인터럽트를 구동하고 나서 상기 제2과정으로 진행하는 제3과정 및 소정시간이 경과한 후, 긴급 인터럽트를 철회하는 제4과정을 포함하는 데에 있고, 그 또 다른 특징은, 인터럽트 처리기의 일반 인터럽트 구동 방법에 있어서, 상기 인터럽트 처리기를 초기화하는 제1과정과, 일반 인터럽트가 구동되었는지와 일반 메시지가 저장되어 있는지를 판단하는 제2과정과, 상기 제2과정에서 일반 인터럽트가 구동되지 않았고 일반 메시지가 저장되어 있다고 판단되면, 일반 인터럽트를 구동하고 나서 상기 제2과정으로 진행하는 제3과정 및 일반 인터럽트가 구동되어 있고 일반 인터럽트가 읽혀지면, 일반 인터럽트를 철회하는 제4과정을 포함하는 데에 있으며, 그 효과는 인터럽트를 2종류로 나누어 처리함으로써 보다 경제적으로 멀티프로세서 시스템을 운영하여 시스템의 속도를 종래보다 크게 증가시킨다는 데에 있다.

Description

멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법
제1도는 멀티프로세서 인터럽트 처리기의 연결도.
제2도는 멀티프로세서 인터럽트 처리기의 내부 레지스터 구성도.
제3도는 멀티프로세서 인터럽트 처리기의 내부 상태 천이도.
제4도는 본 발명에 따른 긴급 인터럽트의 구동방법을 나타낸 흐름도.
제5도는 본 발명에 따른 일반 인터럽트의 구동방법을 나다낸 흐름도.
* 도면의 주요부분에 대한 부호의 설명
110 : 프로세서(Processor)
120 : 프로세서 인터페이스 회로(processor interface circuit)
130 : 멀티프로세서 인터럽트 처리기(multiprocessor interrupt handler)
140 : 인터럽트 버스 인터페이스(interrupt bus interface)
IB : 인터럽트 버스(interrupt bus)
210 : 긴급 메시지 레지스터(emergency type message register)
220 : 일반 메시지 레지스터(queueing type message register)
221 : 제1일반 메시지 레지스터
222 : 제2일반 메시지 레지스터
223 : 제3일반 메시지 레지스터
224 : 제4일반 메시지 레지스터
230 : 제어상태 레지스터(control and status register)
231A 내지 231C : 유보 비트
232 : 일반 메시지 충만 비트
233 : 긴급 메시지 충만 비트
234 : 일반 메시지 수신방지 비트
235 : 태스크 우선 순위부
236 : 제1일반 메시지 유효 비트
237 : 제2일반 메시지 유효 비트
238 : 제3일반 메시지 유효 비트
239 : 제4일반 메시지 유효 비트
본 발명은 멀티프로세서 인터럽트 처리기 및 인터럽트 처리방법에 관한 것으로서, 특히 멀티프로세서 인터럽트 처리기의 구조, 인터럽트 처리 방법 및 전송된 인터럽트 메시지를 긴급 메시지와 일반 메시지로 구분하여 긴급 메시지 및 일반 메시지의 수신 사실을 프로세서에게 알려 주기 위하여 긴급 인터럽트 신호 및 일반 인터럽트 신호를 구동하는 방법에 관한 것이다.
요즘의 시스템에서는 복수의 프로세서를 구비하기도 하는데, 이때에 프로세서들끼리 충돌하지 않도록 프로세서들을 잘 중재해야 할 필요가 생겼다.
이에 따라 몇 가지 용어를 정리하면, 복수의 프로세서들을 하나로 묶어서 멀티프로세서라고 일컬으며, 복수의 프로세서들 사이에서 상호간 전송되는 인터럽트를 멀티프로세서 인터럽트라고 부르고, 복수의 프로세서들을 구비한 시스템을 멀티프로세서 시스템이라고 한다.
종래의 멀티프로세서 시스템의 멀티프로세서 인터럽트는 모든 인터럽트가 구분없이 하나의 방식으로 처리되어 시스템의 속도가 저하되는 결과를 초래한다는 문제점이 있다.
그래서, 상기 문제점을 해결하기 위한 본 발명의 목적은, 인터럽트를 두 종류로 나누어, 하나는 긴급하게 전송하여 처리해야 할 필요가 있는 인터럽트 메시지인 긴급 메시지(Emergency-type message)와 다른 하나는 긴급하게 전송할 필요가 없어서 큐잉하여 처리하는 인터럽트 메시지인 일반 메시지(Queueing-type message)로 구분하고, 이 두 가지의 메시지를 그때그때 수신하여 프로세서에게 수신 사실을 알리기 위해 인터럽트 신호를 구동하는 멀티프로세서 인터럽트 처리기, 인터럽트 처리방법 및 인터럽트 신호의 구동 방법을 제공하는 데에 있다.
상기 목적을 달성하기 위한 본 발명의 특징은, 복수의 프로세서를 구비한 멀티프로세서 시스템에 포함되는 인터럽트 처리기에 있어서, 수신된 긴급 메시지를 저장하는 소정의 크기의 긴급 메시지 저장수단과, 수신된 일반 메시지들을 저장하는 소정개수의 일반 메시지 저장수단들과, 현재의 제어 및 상태정보를 저장하는 제어상태 저장수단 및 메시지가 긴급 메시지인지 일반 메시지인지를 구별하여 긴급 메시지이면 상기 긴급 메시지 저장수단에 저장하고 일반 메시지이면 상기 일반 메시지 저장수단에 저장하는 메시지의 수신 및 저장제어 수단을 포함하는 데에 있다.
상기 목적을 달성하기 위한 본 발명의 다른 특징은, 복수의 프로세서를 구비한 멀티프로세서 시스템에 포함되는 멀티프로세서 인터럽트 처리기의 인터럽트 처리 방법에 있어서, 인터럽트를 전송하는 인터럽트 버스가 유휴상태가 될 때까지 기다리는 제1과정과, 중재상태로서 송신측에서 상기 인터럽트 버스의 사용권을 얻는 제2과정과, 상기 인터럽트 버스를 통하여 전송되는 메시지의 수신처가 자신인지 아닌지의 여부에 따라 메시지를 수신하거나 상기 제1과정으로 진행하는 제3과정과, 상기 인터럽트 버스를 통하여 수신된 메시지가 긴급 메시지인지 일반 메시지인지의 종류에 따라 상기 수신된 메시지를 긴급 메시지 저장수단 또는 일반 메시지 저장수단에 저장하는 제4과정 및 수신된 인터럽트에 대하여 오류정보를 포함하는 응답을 송신측에 인터럽트 버스를 통하여 회신하고, 무조건 상기 제2과정으로 진행하는 제5과정을 포함하는 데에 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 특징은, 멀티프로세서 인터럽트 처리기의 긴급 인터럽트 구동 방법에 있어서, 상기 인터럽트 처리기를 초기화하는 제1과정과, 상기 인터럽트 처리기가 중재상태인지, 긴급 인터럽트 신호가 구동되었는지 및 긴급 메시지가 저장되어 있는지를 판단하는 제2과정과, 상기 제2과정에서 상기 인터럽트 처리기가 중재상태이고 긴급 인터럽트 신호가 구동되지 않았고 긴급 메시지가 저장되어 있다고 판단되면, 긴급 인터럽트를 구동하고 나서 상기 제2과정으로 진행하는 제3과정 및 소정시간이 경과한 후, 긴급 인터럽트를 철회하는 제4과정을 포함하는 데에 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 특징은, 인터럽트 처리기의 일반 인터럽트 구동 방법에 있어서, 상기 인터럽트 처리기를 초기화하는 제1과정과, 일반 인터럽트가 구동되었는지와 일반 메시지가 저장되어 있는지를 판단하는 제2과정과, 상기 제2과정에서 일반 인터럽트가 구동되지 않았고 일반 메시지가 저장되어 있다고 판단되면, 일반 인터럽트를 구동하고 나서 상기 제2과정으로 진행하는 제3과정 및 일반 인터럽트가 구동되어 있고 일반 인터럽트가 읽혀지면, 일반 인터럽트를 철회하는 제4과정을 포함하는 데에 있다.
제1도는 멀티프로세서 인터럽트 처리기의 연결도이다.
제1도를 참조하면, 복수의 프로세서를 구비한 멀티프로세서 시스템은 멀티프로세서 인터럽트의 전송을 위한 인터럽트 버스(IB)와, 멀티프로세서 인터럽트 처리기(130)와, 인터럽트 버스(IB)와 인터럽트 처리기(130)를 연결시켜주는 인터럽트 버스 인터페이스(140) 및 멀티프로세서 인터럽트 처리기(130)와 프로세서(110)를 연결시켜주는 프로세서 인터페이스 회로(120)로 구성되어 있다.
멀티프로세서 인터럽트 처리기(130)는 멀티프로세서 시스템에서 인터럽트 버스(IB)를 통해 멀티프로세서 인터럽트를 수신하여 프로세서(110)에게 알려준다.
그리고 멀티프로세서 인터럽트 처리기(130)와 인터럽트 버스(IB) 사이에는 인터럽트 버스 인터페이스(140)가 있어서 멀티프로세서 인터럽트 처리기(130)와 인터럽트 버스(IB)를 연결시켜 준다.
멀티프로세서 인터럽트를 송신할 때에 송신측에서 수신처를 명시하지 않고 인터럽트를 송신하는 경우가 있는데, 이때에는 멀티프로세서 인터럽트 처리기(130)들끼리 인터럽트 버스 인터페이스(140)를 통하여 중재함으로써 수신처를 결정하게 된다.
또한 인터럽트 버스(IB)에는 멀티프로세서 인터럽트를 송신하는 멀티프로세서 인터럽트 요청기 및 멀티프로세서 인터럽트를 수신하여 처리하는 멀티프로세서 인터럽트 처리기가 각기 인터럽트 버스 인터페이스(140)를 통하여 복수개 연결될 수도 있다.
이하, 첨부한 도면을 참조하여 바람직한 일실시예를 상세히 설명한다.
제2도는 멀티프로세서 인터럽트 처리기(130)의 내부 레지스터 구성도이다.
제2도를 참조하면, 멀티프로세서 인터럽트 처리기(130)는, 수신된 긴급 메시지를 저장하는 1개의 긴급 메시지 레지스터(Emergency-type message register, 이하 EMR로 약칭함)(210), 수신된 일반 메시지를 저장하는 4개의 일반 메시지 레지스터들(Queueing-type message registers 이하, QMR0 내지 QMR3(221 내지 224)으로 약칭함)로 구성된 메시지 큐를 형성하는 일반 메시지 레지스터군(Queueing-type message register group, 이하 QMR로 약칭함)(220), 현재의 제어상태를 저장하며 저장된 제어 및 상태정보에 따라 상기 인터럽트 처리기가 인터럽트의 수신을 제어하는 데에 사용되는 1개의 제어상태 레지스터(control and status register, 이하 CSR로 약칭함)(230) 모두 6개의 레지스터를 구비하고 있다.
여기서, QMR0(221)이 상기 메시지 큐의 맨앞(head)이고, 상기 QMR3(224)이 메시지 큐의 맨뒤(tail)이며, 메시지 큐(220)에 저장된 메시지는 선입선출(First-In First-Out)의 순서로 프로세서(110)에게 알려 준다.
상술한 6개의 레지스터는 모두 32비트의 길이로 구성되어 있고, 프로그램에 의해서 액서스(access)될 수 있는 것들로서, 특히 CSR(230)은 프로세서(110)로부터 읽혀지거나 쓰여지는 것이 요구된다.
EMR(210)와 4개의 레지스터로 구성된 QMR(220)은 읽혀질 수만 있으며, 인터럽트 버스를 통하여 수신된 메시지가, 긴급 메시지이면 EMR(210)에, 일반 메시지이면 QMR(220)에 저장되고, 긴급 메시지와 일반 메시지에는 각각 수신처, 송신처, 인터럽트의 종류, 벡터의 형태 및 벡터 등이 포함되어 있다.
CSR(230)는 멀티프로세서 인터럽트 처리기(130)의 제어 정보 및 상태를 저장하는데, CSR(230)의 각 비트에 대해서 설명하면, QMR충만비트(232)는, QMR0(221), QMR1(222), QMR2(223) 및 QMR3(224)이 모두 일반 메시지로 채워져 있어서 더 이상 일반 메시지가 저장될 수 없음을 나타내며, EMR충만비트(233)는, EMR(210)이 긴급 메시지로 채워져 있음을 나타내고, QMR충만비트(232)와 EMR충만비트(233)는 모두 읽혀질 수만 있다.
일반 메시지 수신방지 비트(234)는 일반 메시지의 수신을 방지하며, 읽혀질 수도 있고 쓰여질 수도 있다.
또한, 일반 메시지 수신방지 비트(234)가 프로세서(110)에 의해 '1'로 설정되면, 인터럽트 버스(IB)를 통하여 도착되는 일반 메시지는 마스크(mask)되어 수신되지 않는다.
멀티프로세서 인터럽트를 송신하는 측에서 수신처를 명시하지 않은 경우에는, 멀티프로세서 인터럽트 처리기(130)들끼리 인터럽트 버스 인터페이스(140)를 통하여 중재함으로써 수신처를 결정하게 되는데, 이때에 태스크 우선순위부(235)의 값은 중재 정보로 사용되며, 태스크 우선순위부(235)의 값은 프로세서(110)에 의해 결정되어 쓰여지고, 이 값이 높을수록 수신처가 될 확률이 낮아져서 프로세서(110)에서 수행되는 태스크가 인터럽트에 의한 간섭을 적게 받는다.
이때, 태스크 우선순위부(235)의 값을 이용한 중재 과정은 인터럽트 버스 인터페이스(140)의 내부에 있는 중재회로가 수행한다.
중재회로는 태스크 우선순위부(235)의 값을 인터럽트 버스(IB)에 구동하고, 일정 시간 경과 후 인터럽트 버스(IB)의 값을 입력하여 중재를 수행하게 되며, 인터럽트 버스(IB)로부터 입력된 값이 자신이 구동한 값과 동일하면 중재의 승자(winner)가 되어 수신처로 결정된다.
QMR0 유효 비트(236)는 QMR0(221)에 대하여, QMR1 유효 비트(237)는 QMR1(222)에 대하여, QMR2 유효 비트(238)는 QMR2(223)에 대하여, QMR3 유효 비트(239)는 QMR3(224)에 대하여 각각 해당 QMR의 내용이 유효함을 각각 나타내고, 이들은 읽혀질 수만 있다.
유보부(reserved)(231A 내지 231C)는 향후의 기능 확장을 위하여 사용되지 않고 유보되어 있는 소정개수의 비트로 구성되어 있다.
QMR충만비트(232), EMR충만비트(233), QMR0 유효 비트(236), QMRI 유효 비트(237), QMR2 유효 비트(238) 및 QMR3 유효 비트(239)는 읽혀질 수만 있다.
EMR(210), QMR(220) 및 CSR(230)은, 프로세서(110)로부터 프로세서 인터페이스 회로(120)를 경유하여 레지스터의 읽기나 쓰기가 요구된다.
멀티프로세서 인터럽트 처리기(130)와 프로세서 인터페이스 회로(120) 사이에 읽기와 쓰기가 수행될 때에, 어드레스 스트로브(address strobe)신호선과, 5비트의 폭을 가진 어드레스 버스(address bus)와, 4비트의 폭을 가진 바이트 인에이블(byte enable) 신호선과, 읽기/쓰기 선택신호선과, 32비트의 폭을 가진 데이터 버스 및 응답(acknowledge) 신호선이 사용된다.
어드레스 버스는 어드레스 신호를 위한 5비트의 폭을 가진 버스인데, 어드레스 신호는 프로세서 인터페이스 회로(120)로 부터 상기 인터럽트 처리기(130)로 구동된다.
읽기/쓰기 선택신호선은 읽기인지 쓰기인지 선택하는 선택신호를 위한 신호선이다.
데이터 버스는 데이터의 전송을 위한 32비트의 폭을 가진 버스이다.
응답신호선은 읽기 및 쓰기의 수행이 완료되었음을 알려주기 위하여 멀티프로세서 인터럽트 처리기(130)로부터 프로세서 인터페이스 회로(120)로 구동되는 응답신호를 위한 신호선이다.
EMR(210)의 5비트 어드레스는 00100이고 QMR0(221), QMR1(222), QMR2(223) 및 QMR3(224)의 5비트 어드레스는 각각 00110, 00111, 01000 및 01001이고 CSR(230)의 5비트 어드레스는 01110이다.
바이트 인에이블 신호선은 4개의 각 바이트에 1대1로 대응된다.
즉, 최상위 바이트 인에이블 신호선은 데이터 버스의 최상위 바이트에 대응되고, 두번째 상위 바이트 인에이블 신호선은 데이터 버스의 두번째 상위 바이트에 대응되고, 세번째 상위 2바이트 인에이블 신호선은 데이터 버스의 세번째 상위 바이트에 대응되며, 마지막 최하위 바이트 인에이블 신호선은 데이터 버스의 최하위 바이트에 대응된다.
레지스터의 읽기 및 쓰기 수행 후, 멀티프로세서 인터럽트 처리기(130)는 프로세서 인터페이스 회로(120)에게 응답 신호를 구동하여 요구가 완료되었음을 알려 준다.
상기 멀티프로세서 인터럽트 처리기(130)는 다음과 같은 메커니즘으로 동작하는데, 그 상태천이에 대하여 설명한다.
제3도는 멀티프로세서 인터럽트 처리기의 내부 상태 천이도이다.
제3도에서 동그라미는 상태를, 동그라미 안에 쓰여 있는 것은 상태명을 나타내고, 화살표는 상태천이의 방향을 나타내며, 화살표와 함께 쓰여져 있는 것은 상태천이의 조건을 나타내고, 화살표만 있고 아무것도 쓰여 있지 않은 것은 무조건 다음 클럭에서 화살표 방향으로 천이됨을 나타낸다.
상태천이는 클럭의 상승 에지(rising edge)에서 일어난다.
제3도를 참조하면, 초기 상태는 유휴상태(가)이다.
유휴상태(가)에서 인터럽트 버스가 유휴상태이면 제1중재상태(나)로 천이하고, 인터럽트 버스가 사용중이면 유휴상태(가)를 유지하다가 인터럽트 버스가 유휴상태가 되면 제1중재상태(나)로 천이한다.
제1중재상태(나)에서 인터럽트 버스(IB)가 사용 중(interrupt bus busy)이면 제2중재상태(다)로 천이하고, 반대로 인터럽트 버스가 유휴상태이면 제1중재상태(나)를 유지하다가 인터럽트 버스가 사용중이 되면 제2중재상태(다)로 천이한다.
제2중재상태(다), 제3중재상태(라), 제4중재상태(마) 및 제5중재상태(바)에서는 조건없이 다음 상태로 천이한다.
제1중재상태(나), 제2중재상태(다), 제3중재상태(라), 제4중재상태(마) 및 제5중재상태(바)는 송신측에서 인터럽트 버스(IB)의 사용권을 얻는 중재과정에 대응되는 단계이다.
수신상태(사)에서는, 멀티프로세서 인터럽트를 송신하는 측에서 수신처를 명시하면 수신처가 자신인지 아닌지 쉽게 알 수 있지만, 수신처를 명시하지 않은 경우에는 멀티프로세서 인터럽트 처리기(130)들끼리 중재를 수행함으로써 수신처가 자신인지 아닌지 판단하여 인터럽트 버스(IB)를 통하여 메시지를 수신하는데, 메시지의 수신처가 자신이 아니면 유휴상태(가)로 천이하고, 수신처가 자신이면 메시지를 수신하면서 수신상태(사)에 머물다가 메시지 수신이 종료되면 디코딩(decoding)상태(아)로 천이한다.
디코딩상태(아)는 인터럽트 버스를 통하여 수신한 메시지를 디코딩하여 전송상의 오류가 없는지를 조사하고, 송신측으로 보낼 응답 정보를 준비하고, 수신한 메시지를 EMR(210) 또는 QMR(220)에 저장한다.
응답회신상태(자)는 수신된 멀티프로세서 인터럽트에 대하여 오류정보를 포함하는 응답(acknowledge)을 송신측에 인터럽트 버스(IB)를 통하여 회신하고, 무조건 제1중재상태(나)로 천이한다.
멀티프로세서 인터럽트 처리기(130)는 리세트(reset)에 의해서 초기화되어 유휴상태(가)가 된다.
초기 상태(가)에서 멀티프로세서 인터럽트 처리기(130)는 유휴 상태가 되며, CSR(230)의 QMR충만비트(232), EMR충만비트(10), 태스크우선순위부(235), QMR0 유효 비트(236), QMR1 유효 비트(237), QMR2 유효 비트(238) 및 QMR3 유효 비트(239) 부분은 모두 0이 되고, 일반 메시지 수신방지 비트(234)는 1이 된다.
상술한 바와 같이 동작되는 멀티프로세서 인터럽트 처리기(130)는 인터럽트 버스(IB)로부터 긴급 메시지를 수신했을 때에 그 사실을 프로세서에게 알리기 위하여 긴급 인터럽트를 구동하게 된다.
제4도는 본 발명에 따른 긴급 인터럽트의 구동방법을 나타낸 흐름도이다.
제4도를 참조하면, 다음과 같다.
리세트에 의해 초기화된다(S1).
그리고 나서, 긴급 인터럽트 신호(Emergency-Interrupt signal, 이하 EINT라고 약칭함)가 구동되었는지와 제1중재상태인지와 EMR충만비트(233)가 '1'인지 판단한다(S2).
상기 과정(S2)에서 EINT가 철회되고(구동되지 않았고) 제1중재상태(나)이고, EMR 충만비트(233)가 '1'이면, EINT를 구동하여 긴급 메시지의 수신 사실을 프로세서 인터페이스 회로(120)를 통하여 프로세서(110)에게 알리고 나서 상기 과정(S2)으로 진행한다(S3).
상기 조건(S2)에 만족되지 않고 EINT가 구동되어 있고, FLAG가 0인지를 판단하여(S4) FLAG가 '0'이면 FLAG를 '1'으로 설정하고 나서 상기 과정(S2)으로 진행한다(S4).
상기 조건(S4)에 만족되지 않고 FLAG가 '0'이면 상기 과정(S2)으로 진행하고, FLAG가 '1'이면 EINT를 구동하고 FLAG를 '0'으로 설정하고 나서 상기 과정(S2)으로 진행한다(S5).
FLAG는 EINT를 2클럭동안 구동하기 위한 용도로 사용된다.
또한, 멀티프로세서 인터럽트 처리기(130)는 인터럽트 버스(IB)로부터 일반 메시지를 수신했을 때에 그 사실을 프로세서(110)에게 알리기 위하여 일반 인터럽트를 구동하게 되는데, 제5도에 잘 나타나 있다.
제5도는 본 발명에 따른 일반 인터럽트의 구동방법을 나타낸 흐름도이다.
제5도를 참조하면, 다음과 같다.
리세트에 의해 초기화된다(S6).
일반 인터럽트 신호(Queueing Interrupt Signal, 이하 QINT라고 약칭함)가 구동되었는지와 QMR0유효비트가 '1'인지를 판단한다(S7).
상기 과정(57)에서 QINT가 철회되었고(구동되지 않았고) QMR0 유효비트가 '1'이면 QINT를 구동하고 상기 과정(S7)으로 진행한다(Q8).
상기 조건(S7)에 만족되지 않고 QINT가 '0'이거나 QMR0이 읽기가 아니면 상기 과정(S7)으로 진행하고, QINT가 '1'이고 QMR0 이 읽기이면 QINT를 철회하고 상기 과정(S7)으로 진행한다(S9).
본 발명의 효과는 인터럽트를 2종류로 나누어 처리함으로써 보다 경제적으로 멀티프로세서 시스템을 운영하여 시스템의 속도를 종래보다 크게 증가시킨다는 데에 있다.

Claims (10)

  1. 복수의 프로세서를 구비한 멀티프로세서 시스템에 포함되는 인터럽트 처리기에 있어서, 수신된 긴급 메시지를 저장하는 소정의 크기의 긴급메시지저장수단; 수신된 일반 메시지들을 저장하는 소정 개수의 일반메시지저장수단들; 현재의 제어 및 상태정보를 저장하는 제어상태 저장수단; 및 메시지가 긴급 메시지인지 일반 메시지인지를 구별하여 긴급 메시지이면 상기 긴급 메시지 저장수단에 저장하고 일반 메시지이면 상기 일반 메시지 저장수단에 저장하는 메시지의 수신 및 저장 제어수단을 포함하는 것을 특징으로 하는 멀티프로세서 인터럽트 처리기.
  2. 제1항에 있어서, 상기 프로세서가 상기 긴급 메시지 저장수단과 상기 일반 메시지 저장수단들 및 상기 제어상태 저장수단으로 부터 데이터를 읽거나 쓰는 것을 특징으로 하는 멀티프로세서 인터럽트 처리기.
  3. 제1항에 있어서, 상기 제어상태 저장수단에 저장된 상기 제어 및 상태정보에 따라 상기 멀티프로세서 인터럽트 처리기가 인터럽트의 수신을 제어하는 것을 특징으로 하는 멀티프로세서 인터럽트 처리기.
  4. 제1항에 있어서, 상기 제어상태 저장수단이, 상기 긴급메시지저장수단이 상기 긴급 메시지로 채워져 있음을 나타내는 긴급 메시지 저장수단 충만비트; 상기 일반 메시지 저장수단군의 소정 개수의 일반 메시지 저장수단들이 모두 일반 메시지로 채워져 있어서 더 이상 일반 메시지가 저장될 수 없음을 나타내는 일반 메시지 저당수단 충만비트; 일반 메시지의 수신을 방지하는 일반 메시지 수신방지 비트; 멀티프로세서 인터럽트를 송신하는 송신측에서 수신처를 명시하지 않은 경우에 수신처를 결정하기 위하여 중재 정보로 사용되는 소정 개수의 비트로 구성된 태스크 우선순위부; 상기 일반메시지저장수단군의 소정개수의 일반 메시지 저장수단들 각각에 대하여 각각의 일반 메시지 저장수단의 내용이 유효함을 나타내며, 일반 메시지 저장수단과 같은 개수의 일반 메시지 저장수단 유효비트; 및 향후의 기능 확장을 위하여 사용되지 않고 유보되어 있는 소정 개수의 비트로 구성되어 있는 유보부로 구성되는 것을 특징으로 하는 멀티프로세서 인터럽트 처리기.
  5. 복수의 프로세서를 구비한 멀티프로세서 시스템에 포함되는 인터럽트 처리기의 인터럽트 처리 방법에 있어서, 인터럽트를 전송하는 인터럽트 버스가 유휴상태가 될 때까지 기다리는 제1과정; 중재상태로서 송신측에서 상기 인터럽트 버스의 사용권을 얻는 제2과정; 상기 인터럽트 버스를 통하여 전송되는 메시지의 수신처가 자신인지 아닌지의 여부에 따라 메시지를 수신하거나 상기 제1과정으로 진행하는 제3과정; 상기 인터럽트 버스를 통하여 수신된 메시지가 긴급 메시지인지 일반 메시지인지의 종류에 따라 상기 수신된 메시지를 긴급 메시지 저장수단에 또는 일반 메시지 저장수단에 저장하는 제4과정; 및 수신된 인터럽트에 대하여 오류정보를 포함하는 응답을 송신측에 인터럽트 버스를 통하여 회신하고, 무조건 상기 제2과정으로 진행하는 제5과정을 포함하는 것을 특징으로 하는 인터럽트 처리방법.
  6. 제5항에 있어서, 상기 제1과정이, 인터럽트를 전송하는 상기 인터럽트 버스가 사용중인지 유휴상태인지 판단하는 제1단계; 상기 제1단계에서 상기 인터럽트 버스가 사용중이라고 판단되면, 유휴상태를 유지하는 제2단계; 및 상기 제1단계에서 상기 인터럽트 버스가 유휴상태라고 판단되면, 상기 인터럽트 버스가 유휴상태가 될 때까지 기다리는 제3단계로 이루어지는 것을 특징으로 하는 인터럽트 처리방법.
  7. 제5항에 있어서, 상기 제2과정이, 상기 인터럽트 버스가 사용중인지 유휴상태인지 판단하는 제1단계; 상기 제1단계에서 상기 인터럽트 버스가 유휴상태라고 판단되면, 상기 제1단계로 진행하는 제2단계; 및 상기 제1단계에서 상기 인터럽트 버스가 사용중이라고 판단되면, 조건없이 다음 상태로 천이하는 제3단계로 이루어지는 것을 특징으로 하는 인터럽트 처리방법.
  8. 제5항에 있어서, 상기 제4과정이, 수신된 메시지를 디코딩하여 전송상의 오류가 있는지를 판단하는 제1단계; 상기 제1단계에서 상기 수신된 메시지에 전송상의 오류 여부에 따라 송신측에 보낼 응답 정보를 준비하는 제2단계; 상기 제1단계에서 상기 수신된 메시지에 전송상의 오류가 없다고 판단되면, 상기 수신된 메시지가 일반 메시지인지 긴급 메시지인지를 판단하는 제3단계; 상기 제3단계에서 일반 메시지라고 판단되면, 상기 일반 메시지 저장수단에 상기 수신된 메시지를 저장하는 제4단계; 및 상기 제3단계에서 긴급 메시지라고 판단되면, 상기 긴급 메시지 저장수단에 상기 수신된 메시지를 저장하는 제5단계로 이루어지는 것을 특징으로 하는 인터럽트 처리방법.
  9. 인터럽트 처리기의 긴급 인터럽트 구동 방법에 있어서, 상기 인터럽트 처리기를 초기화하는 제1과정; 상기 인터럽트 처리기가 중재상태인지, 긴급 인터럽트 신호가 구동되었는지 및 긴급 메시지가 저장되어 있는지를 판단하는 제2과정; 상기 제2과정에서 상기 인터럽트 처리기가 중재상태이고 긴급 인터럽트 신호가 구동되지 않았고 긴급 메시지가 저장되어 있다고 판단되면, 긴급 인터럽트를 구동하고 나서 상기 제2과정으로 진행하는 제3과정; 및 소정시간이 경과한 후, 긴급 인터럽트를 철회하는 제4과정을 포함하는 것을 특징으로 하는 긴급 인터럽트 구동방법.
  10. 인터럽트 처리기의 일반 인터럽트 구동방법에 있어서, 상기 인터럽트 처리기를 초기화하는 제1과정; 일반 인터럽트가 구동되었는지와 일반 메시지가 저장되어 있는지를 판단하는 제2과정; 상기 제2과정에서 일반 인터럽트가 구동되지 않았고 일반 메시지가 저장되어 있다고 판단되면, 일반 인터럽트를 구동하고 나서 상기 제2과정으로 진행하는 제3과정; 및 일반 인터럽트가 구동되어 있고 일반 인터럽트가 읽혀지면 일반 인터럽트를 디서트하는 제4과정을 포함하는 것을 특징으로 하는 일반 인터럽트 구동방법.
KR1019950024214A 1995-08-05 1995-08-05 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법 KR0170506B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950024214A KR0170506B1 (ko) 1995-08-05 1995-08-05 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950024214A KR0170506B1 (ko) 1995-08-05 1995-08-05 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법

Publications (2)

Publication Number Publication Date
KR970012143A KR970012143A (ko) 1997-03-29
KR0170506B1 true KR0170506B1 (ko) 1999-03-30

Family

ID=19422952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950024214A KR0170506B1 (ko) 1995-08-05 1995-08-05 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법

Country Status (1)

Country Link
KR (1) KR0170506B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248170B1 (ko) * 2004-03-31 2013-03-27 후지쯔 세미컨덕터 가부시키가이샤 멀티코어 아키텍처 내의 리소스 관리
US8533716B2 (en) 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248170B1 (ko) * 2004-03-31 2013-03-27 후지쯔 세미컨덕터 가부시키가이샤 멀티코어 아키텍처 내의 리소스 관리
US8533716B2 (en) 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
US9779042B2 (en) 2004-03-31 2017-10-03 Synopsys, Inc. Resource management in a multicore architecture
US10268609B2 (en) 2004-03-31 2019-04-23 Synopsys, Inc. Resource management in a multicore architecture

Also Published As

Publication number Publication date
KR970012143A (ko) 1997-03-29

Similar Documents

Publication Publication Date Title
US5020020A (en) Computer interconnect system with transmit-abort function
US7277449B2 (en) On chip network
US5182800A (en) Direct memory access controller with adaptive pipelining and bus control features
US6996651B2 (en) On chip network with memory device address decoding
EP0391583B1 (en) Dual-path computer interconnect system with four-ported packet memory control
US5187780A (en) Dual-path computer interconnect system with zone manager for packet memory
EP0241129B1 (en) Addressing arrangement for a RAM buffer controller
EP0760135B1 (en) Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US7139860B2 (en) On chip network with independent logical and physical layers
US7200137B2 (en) On chip network that maximizes interconnect utilization between processing elements
US7051150B2 (en) Scalable on chip network
US7599998B2 (en) Message handling communication between a source processor core and destination processor cores
JPH06309252A (ja) 相互接続インタフェース
JPH0786863B2 (ja) マルチプロセツサシステムにおけるプロセツサアクセス制御装置
US7143226B2 (en) Method and apparatus for multiplexing commands in a symmetric multiprocessing system interchip link
US5845145A (en) System for generating and sending a critical-world-first data response packet by creating response packet having data ordered in the order best matching the desired order
WO2013052695A1 (en) Inter-processor communication apparatus and method
US6263393B1 (en) Bus switch for realizing bus transactions across two or more buses
JPH0997184A (ja) 効率的な割込み処理を含む情報処理システム
EP0551789A1 (en) Apparatus for recovering lost buffers in a data processing system
KR0170506B1 (ko) 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법
US6105071A (en) Source and destination initiated interrupt system for message arrival notification
KR100357284B1 (ko) 코프로세서 방식의 원칩 비동기 마이크로 프로세서 간의인터페이스 회로
KR0170507B1 (ko) 인터럽트 수신용 메시지 큐의 제어방법
US6098105A (en) Source and destination initiated interrupt method for message arrival notification

Legal Events

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

Payment date: 20081001

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee