KR950008837B1 - 멀티 프로세서 시스템용 제어시스템 - Google Patents

멀티 프로세서 시스템용 제어시스템 Download PDF

Info

Publication number
KR950008837B1
KR950008837B1 KR1019910003804A KR910003804A KR950008837B1 KR 950008837 B1 KR950008837 B1 KR 950008837B1 KR 1019910003804 A KR1019910003804 A KR 1019910003804A KR 910003804 A KR910003804 A KR 910003804A KR 950008837 B1 KR950008837 B1 KR 950008837B1
Authority
KR
South Korea
Prior art keywords
interrupt
input
output
queue
request
Prior art date
Application number
KR1019910003804A
Other languages
English (en)
Other versions
KR910017306A (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 후지쓰 가부시끼가이샤
Publication of KR910017306A publication Critical patent/KR910017306A/ko
Application granted granted Critical
Publication of KR950008837B1 publication Critical patent/KR950008837B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Abstract

내용 없음.

Description

멀티 프로세서 시스템용 제어시스템
제1도는 종래의 컴퓨터시스템의 구성도.
제2도는 종래의 다른 컴퓨터시스템의 구성도.
제3도는 본 발명을 설명하는 블록도.
제4도는 본 발명의 제1실시예의 구성도.
제5도는 본 발명의 제1실시예의 제어 정보 포멧(information format)의 설명도.
제6도는 제1실시예의 제어테이블의 구성도.
제7도는 LDVC의 대기행렬(wait queue)의 설명도.
제8도는 LDVC의 포멧의 설명도.
제9도는 PDVC의 포멧의 설명도.
제10도는 PDVC의 구동 대기행렬의 설명도.
제11도는 본 발명의 ADP 제어프로그램의 메인처리의 플로우챠트.
제12도는 I/O 지령 수신처리의 플로우챠트.
제13도는 I/O 지령실행의 플로우챠트.
제14도는 제1실시예의 재연결 처리의 플로우챠트.
제15도는 본 발명의 제2실시예의 구성도.
제16도는 제1실시예의 제어테이블의 구성도.
제17도는 LDVC의 대기행렬의 설명도.
제18도는 PMIC의 포멧의 설명도.
제19도는 PMIC의 인터럽트 대기행렬(interrut wait queue)의 설명도.
제20도는 제2실시예의 인터럽트처리 1의 플로우챠트.
제21도는 제1실시예의 인터럽트처리 2의 플로우챠트.
본 발명은 복수의 정보처리 모듈로 형성된 멀티프로세서 시스템에 관한 것이며 더 구체적으로는 각 정보처리 모듈로부터의 입력 및 출력 요구를 효과적으로 처리하고 각 입력 및 출력장치로부터의 인터럽트 요구들을 효과적으로 처리하는 제어시스템에 관한 것이다.
이후 설명에서 장치의 각 소자를 다음과 같이 약기한다.
PM : 정보처리 모듈
DVC : 입력/출력 장치
ADP : 입력/출력 어답터
IOC : 입력/출력 제어기
IOBUS : PM와 ADP를 연결하는 입력/출력 버스
DVBUS : ADP와 DVC를 연결하는 장치버스
CPU : PM중의 정보처리부
MSO : PM중의 메모리 기억부
PIBC : PM-IOBUS 콘넥터
PMBUS : PM중의 CPU, MSU 및 PIBC의 PM 버스 연결
AIBC : ADP-IOBUS 콘넥터
ADBC : ADP-DVBUS 콘넥터
APU : ADP 처리부
CSU : ADP 중의 제어기억부
LDVC : CSU에 설치된 PM-DVC간 통신을 위한 논리 입력/출력 요구 테이블
PDVC : DVC 에 대응하는 물리적 입력/출력 요구순서 테이블
PMIC : PM 인터럽트 제어 테이블
일반적으로 PM이 복수인 경우 시스템으로서 데이타 베이스 또는 유저파일(user file)등의 데이타를 일원적으로 확보할 필요가 있다. 따라서 통상 자기디스크등의 DVC(입력/출력 장치)내에 기억시켜 두고 복수의 PM에 의해서 공용하는 것이 보통이다.
어느 한 PM이 DVC를 엑세스할때 DVC가 다른 PM로부터의 입력/출력 요구를 이미 실행하고 있을 경우 그 요구가 완료되도록까지 기다려야 한다. 따라서 DVC를 사용할 수 있는 시점에서 입력/출력 요구를 재발행할 필요가 있다.
이러한 처리는 PM의 소프트웨어에 의해서 행하고있지만 인터렵선 또는 입력/출력 요구의 발행에 의한 오버헤드(Over head)가 커지게 된다.
PM의 수가 많을때에는 PM이 입력/출력 요구를 재발행하더라도 다른 PM이 먼저 DVC를 사용하는 경우가 있다. 그러므로 입력/출력 요구의 재발행수가 증가할 수 밖에 없고 PM수가 증가함에도 불구하고 전체 시스템의 능력은 증가하지 않는다.
제1도는 종래의 멀티프로세서 시스템의 일예를 나타내는 것으로 이 시스템은 PM정보처리 모듈)(1), ADP(입력/출력 어답터)(2), DVC(입력/출력 장치)(3) 및 IOC(입력/출력 제어기)(6)으로 구성되며 예를들어 8∼16대의 PM이 설비되어 있다.
PM(1)과 ADP(2)는 1 : 1식으로 설비되어 있고 모든 DVC들은 1대의 공용 IOC(6)에 의해서 제어된다.
PM(1)의 감독하에서 동작되는 각 PM(1)과 ADP(2)는 1대의 공용 IOC(6)을 거쳐서 DVC(3)를 억세스한다.
제13도에 나타낸 종래의 시스템이 최근에 범용 컴퓨터에 사용되고 있다. 각 ADP(2)는 각각 상부 PM(1)에 의해 전속되어 동작하도록 설비되어 있다. 각 DVC(3)의 입력/출력을 제어하는 IOC(6)에는 복수의 ADP(2)와 연결하기 위한 포트가 설비되어 있다.
이 경우에 각 ADP(2)는 소정의 PM(1)의 전속되어 있어 상시 PM(1)로부터의 입력/출력 요구를 수신한다.
ADP(2)는 입력/출력 요구를 IOC(6)에 통지한다.
요구받은 DVC(3)가 다른 PM에 의한(ADP를 거쳐서) 입력/출력 요구에 따라서 동작되고 있는 경우 IOC(6)는 입력/출력 요구를 행하고 있는 ADP(2)에 DVC(3)가 사용중이므로 DVC가 PM(1)로부터 입력/출력 요구를 받지 않는다는 것을 통지한다. ADP(2)는 이러한 (DVC(3)가 사용중임)을 인터럽트 동작을 통하여 PM(1)에 보고하고 입력/출력 처리를 종료한다.
PM(1)의 소프트웨어는 이 보고를 받은 후 소정시간 대기한 후에 입력/출력 요구를 재발행한다.
DVC(3)를 사용할 수 있게 되었다는 응답을 받았을때에 IOC(6)는 인터럽션에 의해 그 뜻을 보고하는 기능을 갖는다. 이 경우에 PM(1)의 소프트웨어는 이 인터럽션을 수신한 후에 입력/출력 요구를 재발행한다.
ADP(2)에는 DVC(3)가 사용될 수 있게되는 것을 기다리는 기능을 설비하여 ADP(2)가 입력/출력 요구를 재발행함으로써 PM의 소프트웨어와 오버헤드를 감소시켜준다.
종래에는 입력/출력 요구의 재발행시에 DVC(3)를 사용할 수 있다는 보장이 없다. PM(1)의 대수증가와 DVC(3)의 사용률이 증가될수록 재발행 빈도가 증가된다. 원래의 시스템에서는 재발행 처리가 불필요하기 때문에 그러한 재발행 처리들의 증가가 시스템 성능을 저하시킨다.
또 다른 모델의 PM(1)/ADP(2)가 하나의 DVC를 공용하는 경우에도 DVC가 재발행 처리를 행하는데 필요한 시간이 모델들간에서 다르다. 상이한 PM이 동시에 재발행처리를 개시하더라도 더 느린 PM(1)에 의한 입력/출력 요구의 재발행은 실패가능성이 높으므로 그 PM의 처리능력을 크게 저하시킨다.
제2도는 종래의 다른 시스템을 나타내고 이 시스템은 통신로(7)가 PM들간에 설비되고 각 PM(1)은 각각 1대의 ADP(2)와 복수의 DVC(3)를 갖고 있다.
이 시스템에서는 ADP(2)뿐만 아니라 DVC들(3)이 특정 PM(1)에 의해서 전속되어 엑세스된다. 특정 PM(1)이 자신의 감독하에 있지 않는 DVC(3)를 억세스할 필요가 있을 경우 이 특정 PM(1)은 PM들(1) 간의 통신로(7)를 사용하여 입력/출력 동작을 행하도록 DVC(3)가 연결된 다른 PM(1)에 요구하여 이 통신로(7)를 거쳐서 전송데이타를 주고 받는다.
이 시스템에서는 단 1대의 PM(1)만이 어느 DVC(3)에 대해 입력/출력 요구를 발생할 수 있고 그 PM(1)의 소프트웨어에 의해 DVC(3)의 동작상태를 항상 제어할 수 있다. 따라서 제2도에 나타낸 시스템은 제1도에 나타낸 종래의 시스템에서 발생한 바와같은 DVC 사용중에 입력/출력 요구를 재발행하는 상태를 방지할 수 있다.
그러나 이 시스템에서는 입력/출력 요구를 발행하도록 의뢰받은 PM(1)의 메모리자원이 소비되며 또한 PM들간의 통신 오버헤드가 발생한다. 따라서 이 시스템은 PM(1)에서 DVC(3)로 직접 억세스 경로를 갖는 구성에 비해서 불리하다.
특히 PM들간의 통신 오버헤드는 다른 PM(1)의 제어하에 있는 DVC(2)로의 억세스의 빈도에 크게 의존된다. 따라서 시스템 성능저하를 방지하도록 각 DVC에 데이타를 기억시키는 특별한 방법을 사용하거나 또는 처리할 어플리케이션을 특별한 목적과 용도에 제한시킴으로서 PM들간의 통신량을 감소시킬 필요가 있다. 이 방법은 고성능의 시스템을 구축하기 어렵게 하며, 또한 시스템의 목적과 용도가 제한되어 범용 시스템에 적합하지 못한것이 극히 불리한 결점이다.
DVC가 한 PM에 인터럽트 요구할 경우, 그 PM이 다른 DVC로부터의 인터럽트 요구를 이미 실행하고 있으면 그 요구가 완료될때까지 기다려야 한다. 따라서 그 PM을 사용할 수 있게될때에 인터럽트 요구를 재발행할 필요가 있다. 인터럽트가 소프트웨어에 의해서 마스크되기 때문에 PM이 인터럽트 요구를 수락할 수 없을 경우 인터럽트 요구를 재발행할 필요가 있다.
이러한 처리는 어답터내의 팜웨어(fiarmware)에 의해서 행해질 수 있다. 복수의 PM로부터 전송되는 복수의 DVC로의 I/O 요구들은 동시에 어답터내에서 처리되기 때문에 I/O 요구의 종료시에 행하는 완료 인터럽트들을 병행취급할 필요가 있다. 그러나 이것은 종래기술에 의해서는 달성될 수 없다.
본 발명의 목적은 각 PM로부터 DVC로 직접 억세스를 유지시켜 PM(1)의 입력/출력 요구의 재발행에 의해서 생기는 오버헤드를 감소시켜 멀티프로세서 시스템의 처리 성능의 저하를 방지하는데 있다.
본 발명의 다른 목적은 각 DVC로부터 PM로의 인터럽트 요구가 처리될때에 특정 PM로의 인터럽트의 접수 여부에 따라서 다른 PM들로의 인터럽트를 기다리는 상태의 발생을 감소시켜 멀티프로세서 시스템의 처리 성능의 저하를 방지하는데 있다.
본 발명의 특징은 복수의 정보처리 모듈들(PM)을 포함하는 멀티프로세서 시스템내의 입력/출력 요구 시스템에 있어서, 복수의 그룹으로 나누어져 있는 복수의 입력/출력 장치(DVC와; 상기 입력/출력 장치(DVC)의 그룹들중 하나에 각각 동작가능하게 연결되며, 상기 각 정보처리 모듈(PM)에 의해서 공용되도록 상기 정보처리 모듈(PM)에 각각 연결되는 복수의 입력/출력 어답터(ADP)와; 상기 입력/출력 어답터(ADP)는 각각 대기행렬을 사용하여 상기 정보처리 모듈들에 의해서 제어되는 상기 입력/출력 장치들의 각각마다 각 정보처리 모듈로부터의 입력/출력 요구들을 관리하는 입력/출력 요구 테이블(LDVC)을 제공하는 수단(CSU)과; 상기 입력/출력 요구 테이블(LDVC)과 상기 입력/출력 장치들(DVC)의 상태에 의해서 상기 각 정보처리 모듈(PM)로부터의 입력/출력 요구를 처리하는 수단(APU)을 포함하는 것을 특징으로 하는 입력/출력 요구 제어시스템을 구성하는데 있다.
본 발명의 다른 특징은 상기 DVC들에 따라 PDVC들이 설비되고 상기 PDVC들이 DVBUS에 대한 억세스 순서에 따라서 PDVC 구동 대기행렬을 형성하는 것을 특징으로 하는 입력/출력 요구 제어시스템을 구성하는데 있다.
제3도는 본 발명의 제1원리를 나타내고 있다. 각각의 PM(정보처리 모듈들)(1)은 복수의 ADP(입력/출력 어답터들)(2)를 공유하고 각 ADP(2)는 그들의 제어하에 있는 복수의 DVC(3)를 갖고 있다.
PM(1)로부터 개별 DVC(3)로의 억세스는 개별 DVC(3)가 속해있는 ADP(2)를 거쳐서 행해진다. 각 PM(1)의 각 DVC(3)의 대기행렬(222)을 사용하여 개별 PM(1)에 의해서 각 DVC(3)에 대해서 행해진 입력/출력 요구를 관리하는 수단이 각 ADP(2)마다 설비되어 있다.
복수의 PM(정보처리 모듈)(1)은 멀티프로세서 시스템으로 구성되어 있고 ADP(2)가 각 PM(1)로부터의 입력/출력 요구를 처리한다.
DVC(3)는 예를들어 자기 디스크 장치 또는 자기 테이프장치를 포함한다.
IOBUS(4)는 개별PM(1)을 개별ADP(2)에 연결하여 데이타와 제어 정보를 전송한다.
DVBUS(장치버스)(5)는 각 ADP(2)를 그들의 제어하에 있는 복수의 DVC(3)에 연결하여 데이타 제어정보를 전송한다.
CSU(제어기억부)(22)는 ADP(2)내에 설비되어 있으며, CSU(22)는 각 ADP(2)에 의해서 제어되는 각 DVC(3)(#0,#1,…)마다 PM(1)(#0,#1,…)으로부터의 입력/출력 요구를 보유하는 입력/출력 요구 테이블(LDVC)(221)을 포함하고 있다. LDVC(221)는 대기행렬 관리기능을 갖고 있다. 또한 각 DVC(3)마다 각 PM(1)로부터의 입력/출력 요구들의 처리순서를 관리하는 LDVC(221)에 관계되는 대기행렬(222)이 설비되어 있다. 제어프로그램(223)은 LDVC(221)를 사용하여 각 PM(1)으로부터의 입력/출력 요구들을 관리한다. APU(21)가 DVC(3)를 사용할 수 있게되면 대기행렬(222)에 연결된 순서로 APU(21)가 접속되어 입력/출력 요구들을 처리한다.
제3도에 나타낸 바와같이 PM(1)이 DVC(3)에 대해 입력/출력 요구를 생성하면 PM(1)은 제어프로그램(223)에 나타낸 것과 같이 DVC(3)가 접속된 ADP(2)에 대해 입력/출력 요구를 발행한다.
ADP(2)의 APU(21)(제4도)는 일단 각 PM(1)로부터 접수된 입력/출력 요구를 각 PM(1)/DVC(3)에 대응하는 LDVC(221)에 제각기 기억한다. ADP(2)는 각 DVC(3)마다 설비된 구동 대기행렬(222)에 입력/출력 요구를 연결해두었다가 입력/출력 요구들의 도착순서에 따라 DVC(3)에 대한 처리를 행한다. 또한 복수의 DVC(3)에 대해서 입력/출력 요구들이 행해질 때에도 DVC(3)들 역시 대기행렬(222)을 형성하여 순서에 따라 처리를 행한다.
좀더 구체적으로 입력/출력 요구에 대한 대기행렬의 처리를 설명한다.
입력/출력 요구 테이블
Figure kpo00001
예를들어 제3도의 LDVC(221)에서 상기 테이블에서와 같이 PM#2가 DVC#1에 입력/출력 요구를 발행하면 요구가 테이블내의 21(셀)내에 기억된다. 그후 PM#0이 DVC#1 입력/출력 요구를 발행하면 그 요구는 01(셀)내에 기억된다.
LDVC의 테이블 내용에 근거하여 대기행렬이 발생된다.
(DVC#1의 대기행렬)
PM#0 … PM#2 …→ DVC#1
각각의 DVC에 대해 대기행렬(제3도에 표시번호 222)이 발생된다. 상기예에서 DVC#1에 대한 대기행렬이 발생되면 PM#2로부터의 요구(21(셀)의 내용)가 대기행렬의 선두에 위치되고, PM#0로부터의 요구(01(셀)의 내용)가 그다음에 위치된다.
DVC#1이 억세스가능해진면 대기행렬의 선두에 있는 요구가 수행된다. 즉, 제7도에 보인 바와같이 PM#2으로부터의 요구가 DVC#1에 의해 수행된다. 그다음 PM#2로부터의 요구가 대기행렬로부터 제거되고 PM#0으로부터의 요구가 대기행렬의 선두에 위치되어 수행된다.
만일 복수의 DVC들에 대해 복수의 입력/출력 요구들이 발행되면 복수의 대기행렬이 발생된다. "복수의 대기행렬" 이라함은 "장치요구 대기행렬"을 말한다.
예를들어 제10도에 보인 바와같이, PM#0이 DVC#2에 대한 요구를 발행하고, PM#1이 DVC#1이 DVC#0에 대한 요구를 발행하고, PM#2이 DVC#0에 대한 요구를 발행하고, PM#0이 DVC#0에 대한 요구를 발행하고, PM#0이 DVC#1에 대한 요구를 발행하면 그때 각 DVC(DVC#2, DVC#0, DVC#1)에 대해 대기행렬들이 발행된다.
복수의 대기행렬이 있는 경우에 대기행렬중 어떤 것을 수행할지를 결정해야 한다. 왜냐하면 한번에 하나의 DVC만 억세스 가능하기 때문이다.
상기 동작을 달성하기 위해 제10도에 보인 PDVC 구동 대기행렬이 구비된다. 이 PDVC 구동 대기행렬에서 "PDVC#2", "PDVC#0" 및 "PDVC#1"이 접속된다. 여기서 예를들어 "PDVC#2"는 DVC#2에 대한 대기행렬을 나타낸다.
"PDVC#2"가 제10도에 보인 바와같이 PDVC 구동 대기행렬의 선두에 있으면 DVC#2에 대한 대기행렬의 선두에 있는 요구가 수행된다. 즉 PM#0으로부터 DVC#2로 요구가 수행된다.
그다음 "PDVC#2"가 PDVC 구동 대기행렬로부터 제거되고 "PDVC#0"이 선두에 와서 DVC#0에 대한 구동 대기행렬의 선두에 있는 요구가 수행된다.
따라서 상기 구성에 의하면 각 PM(1)은 DVC(3)가 사용중임을 판단할 필요가 없으므로 ADP(2)는 DVC(3)로 헛된 입력/출력 요구를 재발행할 필요가 없어 입력/출력 요구의 재발행에 의해서 생기는 오버헤드를 없앨 수 있다. 또 입력/출력 요구의 재발행시에 실패가 생기지 않으므로 PM(1)이 성능변화에 의해 생기는 성능의 급격한 감소가 발생되지 않는다.
제1도에 나타낸 종래의 시스템과 동일한 방법으로 데이타 전송뿐만 아니라 입력/출력 요구의 발행에 대한 DVC(3)의 입력/출력 동작이 각각의 PM(1)에 의해서 직접 행해지므로 PM들(1)간의 통신 오버헤드와 데이타 배열의 최적화란 문제가 해결되어 멀티프로세서 시스템의 고성능화를 가능하게 한다.
본 발명의 제2원리에 의하면 각 PM(1)은 복수의 ADP(2)를 공유한다.
각 ADP(2)는 그들 자신의 DVC(3)를 갖고 있다. 각 PM(1)로부터 개별 DVC(3)로의 억세스는 각 PM(1)에 속해있는 ADP(2)를 거쳐서 행해진다.
각 PM(1)마다 개별 DVC(3)의 대기행렬(222)을 사용하여 개별 DVC(3)에 의해서 각 PM(1)에 대해서 행해진 인터럽트 요구를 관리하는 수단이 각 ADP(2)에 설비되어 있다.
CSU(22)는 DVC(3)(#0, #1…)로부터 각 ADP(2)에 의해서 제어되는 각 PM(1)(#0,#1…)로의 인터럽트 요구를 보유하는 입력/출력 요구 테이블(LDVC)(221)를 포함하고 있다. 입력/출력 요구를 보유하는 입력/출력 요구 테이블(LDVC)(221)은 입력/출력 요구에 대한 입력/출력 요구 테이블과 동일하다. 입력/출력 요구 테이블(LDVC)(221)은 대기행렬 관리기능을 갖고 있다.
각 PM(1)마다 각 DVC(3)로부터의 인터럽트 요구의 처리수순을 관리하는 대응 LDVC(221)에 관계되는 대기행렬(224)이 설비되어 있다.
제어 프로그램(223)은 각각의 LDVC(221)를 사용하여 각 DVC로부터의 인터럽트 요구를 관리하고 APU(21)는 PM(1)이 사용 가능할때에 대기행렬(224)에 연결된 순서에 따라서 인터럽트 요구들을 처리한다. 대기행렬은 LDVC(221)의 로우 방향으로 셀들을 연결하기 위한 구동 대기행렬(222)과 LDVC(221)의 컬럼방향으로 셀들을 연결하기 위한 인터럽트 대기행렬(224)로 구성된다.
제3도에 나타낸 바와같이 DVC(3)가 PM(1)로의 인터럽트 요구를 생성하면 DVC(3)는 제어프로그램(223)에 나타낸 바와같이 PM(1)이 연결된 ADP(2)로 인터럽트 요구(REQ)를 발행한다. ADP(2)의 APU(21)(제4도)는 일단 DVC(3)로부터의 인터럽트 요구를 DVC/PM에 대응하는 LDVC(221)에 기억한다.
ADP(2)는 각 PM(1)에 설비된 인터럽트 대기행렬(224)에 인터럽트 요구를 연결하여 인터럽트 요구의 도착순서에 따라서 PM(1)에 대한 처리를 행한다. 인터럽트 요구들이 복수의 PM(1)에 행해지면 PM(1)은 수순에 따라서 처리를 행하는 대기행렬(224)을 형성한다.
좀더 구체적으로 인터럽트 요구에 대한 인터럽트 처리를 설명한다. 인터럽트의 처리의 기본 아이디어는 입력/출력 요구에 대한 처리와 거의 동일하다.
우선 인터럽트 동작을 설명한다. 인터럽트 요구를 발생하는 예를들면 다음과 같다.
PM#0으로부터 DVC#1로의 입력/출력 요구가 DVC#1에 의해 수행되면 DVC#1는 입력/출력 동작의 완료를 PM#0에 통지한다. DVC#1로부터 PM#0으로의 이러한 통지를 위해 인터럽트 요구가 사용된다. 다시말해 DVC#1은 PM#0으로 인터럽트 요구를 발생한다. 그다음 인터럽트 요구를 ADP(2)내의 인터럽트 요구 테이블내에 기억한다.
이하 인터럽트 동작에서 사용되는 대기행렬을 입력/출력 동작과 동일 방식으로 설명한다.
Figure kpo00002
DVC#1이 PM#0에 의해 요구된 입력/출력 동작을 완료하면 DVC#1은 PM#0으로 인터럽트 요구를 발행한다. 인터럽트 요구는 상기 인터럽트 테이블내의 01(셀)내에 기억된다. 그후, DVC#2가 PM#0에 의해 요구된 입력/출력 동작을 완료하면 DVC#1은 PM#0으로 인터럽트 요구를 발행하고 그 요구를 상기 테이블내의 02(셀)에 기억한다.
인터럽트 요구 테이블의 내용에 근거하여 인터럽트 동작에 사용되는 대기행렬을 발생한다.
예를들어 PM#0에 대한 인터럽트 대기행렬은 다음과 같다.
DVC#2 …DVC#1 …→ PM#0
각 PM마다 인터럽트 대기행렬(제3도에서 224임)이 발생된다. 상기 예에서 DVC#1로부터의 인터럽트 요구는 PM#0에 대한 인터럽트 대기행렬의 선두에 위치되며 DVC#2로부터의 인터럽트 요구는 두번째이다.
PM#0이 억세스 가능해지면 인터럽트 대기행렬의 선두에 있는 인터럽트 요구가 수행된다. 즉 DVC#1로부의 인터럽트 요구가 수행되고 PM#0이 인터럽트된다.
그때 DVC#1로부터의 인터럽트 요구가 인터럽트 대기행렬로부터 제거되고 DVC#2로부터의 인터럽트 요구가 선두에 위치되어 수행된다.
따라서 상기 구성은 각 DVC(3)로부터 PM(1)로의 인터럽트 요구가 처리될때 특정 PM(1)에 대한 인터럽트가 허가됐는지 여부에 따라 다른 PM(1)에 대한 인터럽트 대기 상태의 발생을 줄여주므로 멀티프로세서 시스템의 처리성능이 저하되는 것을 방지할 수 있다.
복수의 PM(1)으로부터 복수의 DVC(3)로 전송된 I/O 요구들이 ADP(2)에 의해서 동시에 처리될때, ADP(2)는 I/O요구들의 완료시에 행해지는 완료 인터럽트들을 병행 취급할 수 있다.
제4도에 나타낸 바와 같이 본 발명의 제1실시예의 멀티프로세서 시스템은 PM(1), ADP(2), DVC(3), IOBUS(4), DVBUS(5), CPU(11), MSU(12), PIBC(PM-IOBUS 콘넥터)(13), PMBUS(PM 버스)(14), APU(21), CSU(22), AIBC(ADP-IO 버스콘넥터)(23), ADBC(ADP-DV 버스콘넥터)(24), ADBUS(ADP 버스)(25) 및 LDVC(입력/출력 요구 테이블)(221)을 포함하고 있다.
개별 PM(1)내의 CPU(11)는 MSU(12)에 기억된 프로그램을 실행하여 일련의 처리들을 행한다. 입력/출력 동작을 요구하는 명령이 PM(1)내에서 실행될때에 CPU(11)는 입력/출력 요구의 대상이되는 ADP(2), DVC(3)등의 필요한 정보를 지정하여 PIBC(13)에 지시하여 ADP(2)에 입력/출력 동작을 요구한다.
PIBC(13)는 IOBUS(4)를 거쳐서 ADP(2)내의 AIBC(23)로 입력/출력 요구를 전송한다.
AIBC(23)는 APU(21)로 입력/출력 요구가 도착됨을 통지하고 APU(21)는 입력/출력 요구와 대상 DVC(3)를 발행하는 PM(1)에 대응하여 CSU(22)내에 설비된 DLVC(221)에 입력/출력 요구를 기억하고 LDVC(221)를 입력/출력 동작을 대기하는 대기행렬내에 등록한다.
DABUS(5)가 사용되지 않고 입력/출력 요구가 동작되고 있지 않는 DVC(3)에 대해서 행해질 때에는 APU(21)는 대기행렬의 수순에 따라서 DVC(3)에 대한 입력/출력 요구를 발행하여 LDVC(221)에 보유된 입력/출력 요구를 수순에 따라서 실행한다.
제5a-5d도는 제4도의 본 발명의 실시예에 사용되는 제어정보의 포맷을 나타내고 있다.
제5a도는 PM내의 CPU에 의해서 실행되는 입력/출력 지시를 나타내고, 제5b도는 입력/출력 지시의 파라미터를 나타내고, 제5c도는 입력/출력 제어하는 명령을 나타낸다.
제5d도는 입력/출력을 제어하는 스테이터스 블록을 나타낸다.
제5a도내의 입력/출력 명령은 연산코드(OP), 사용될 ADP(2)의 기계번호(ADP#), 억세스의 대상인 DVC(3)의 기계번호(DVC#) 및 제5b도에 나타낸 파라미터의 어드레스(파라미터 어드레스들)를 포함하고 있다.
제5b도에 나타낸 파라미터들은 제5b도에 나타낸 명령을 기억하는 어드레스(Command Adrs)와 완료정보를 기억하는 제 5d도에 나타낸 스테이터스 블록용 어드레스(Ststus Blk Adrs)를 포함하고 있다.
제5c도에 나타낸 명령은 독출, 기입, 시이크, 플래그(flg), 데이타 카운트(Data Count) 및 주기억부내의 데이타 기억 어드레스(LSU Adrs)등의 연산코드(OP)를 포함하며 복수의 명령들을 체인으로 조합하여 채널프로그램을 형성한다.
제5d도에 나타낸 스테이터스 블록은 완료 상황을 지시하는 상태(Status), 이상 완료시에 남은 데이타용 데이타 카운트 및 최종 지령 어드레스를 포함하고 있다.
제6도는 본 발명의 제1실시예에서 입력/출력 요구를 유지하는 제어테이블을 나타내고 있다.
이 제어테이블은 DVC(3)의 기계번호(#)에 대응하여 설비되고 LDVC(221)와 PDVC를 포함하고 있다.
DLVC(221)는 단일 DVC(3)에 대하여 도착순에서 따라서 대기행렬내에 입력시킴으로써 각 PM(1)로부터의 입력/출력 요구들을 관리하는 테이블을 포함하고 있다.
PDVC는 복수의 PM(1)로부터의 입력/출력 요구들이 ADP(2)의 제어하에 설비된 복수의 DVC(3)에 도착할때의 입력/출력 요구의 처리수순을 관리하는 테이블을 포함하고 있다.
제7도는 LDVC(221)의 대기행렬의 일예를 나타내고 있다. 이 경우에 DVC#0에 대한 PM(1)로부터의 입력/출력 요구가 수순(PM#2, PM#0 및 PM#1)에 따라서 ADP(2)에 도착한다.
따라서 제7도에 나타낸 바와같이 LDVC#0에 대한 대기행렬은 PM#2, PM#0 및 PM#1이 PM#2로 개시되는 수순으로 연결되어 있다.
LDVC#0은 PDVC#0에 종속되며 PDVC#0이 PDVC의 대기행렬의 선두에 도달할때에 LDVC#0이 작동되어 실행상태가 된다. 이때에 LDVC#0의 대기행렬의 선두에 제공된 입력/출력 요구(PM#2)가 실행상태로 되고, 입력/출력 요구들(PM#0, PM#1)은 실행 대기상태로 된다.
PM#2로부터의 입력/출력 요구의 실행이 완료되면 PM#2의 요구가 LDVC(221)의 대기행렬(222)로부터 제거되고 그대신 PM#0이 LDVC(221) 대기행렬(222)의 선두에 온다. 그러나 이때에 PDVC#은 PDVC 대기행렬의 선두로부터 제거되고 실행 대기상태로 된다. 따라서 PM#0의 입력/출력 요구는 PDVC#0이 다음 실행상태가 될때까지 실행 대기상태를 계속 유지한다.
제8도는 LDVC의 포멧을 나타내고 있다. 다음의 상태 정보는 LDVC(221)내의 상태(스테이터스)에 대해서 제공된다.
IDLE : 아무것도 하지 않음.
WAIT : PDVC의 사용가능 대기
WORK : 입력/출력 요구가 대기행렬의 선두에 도달하여 입력/출력 동작을 실행한다.
IRQW : LDVC가 제19도에 나타낸 바와같이 인터럽트 대기행렬에 연결되어 인터럽트 요구(IRQ) 버스명령의 발행을 기다린다. DLVC(221)가 인터럽트 대기행렬(224)의 선두에 도달할때, 즉 LDVC(221)가 LDVC 인터럽트 대기행렬의 선두와 PMIC 인터럽트 대기행렬의 선두에 도달할때에 IRQ 명령이 발행되고 IRQW 상태가 IRQEX 상태로 변경된다. 상술한 바와같이 PMIC는 PM에 상당한다.
IRQEX : LDVC가 LDVC 인터럽트 대기행렬의 선두에 도달하고 PMIC가 PMIC 인터럽트 대기행렬의 선두에 도달하므로 IRQ 버스명령이 발행되고 IRQ 버스명령이 접수됐는지에 대해 PM으로부터의 통지를 기다린다. 인터럽션의 접수통지가 "yes"이면 상태는 IACKW의 상태로 바뀌고 LDVC는 인터럽트 대기행렬로부터 제거된다.
인터럽션의 접수통지가 "no"되면 PMIC 인터럽트 대기행렬의 최후에 연결되도록 변경되어 IRQEX의 상태가 IRQW의 상태로 되돌아간다.
IACKW : 이것은 PM에 의해서 인터럽트 요구가 접수되고 ADP(2)가 IACK 버스명령을 기다리고 있는 것을 나타낸다. 이때에 LDVC(221)는 인터럽트 대기행렬(224) 및 구동 대기행렬(222)에 연결되어 있지 않다.
ADP(2)는 IACK 버스명령을 받아 IDLE 상태로 되돌아가서 새로운 I/O 명령을 기다린다.
또 LDVC는 제5c도에 나타낸 것과 같이 명령 어드레스(Command ADRS) 및 테이블의 스테이터스 블록의 어드레스(Status BLK Adrs)와 대기행렬을 형성하기 위하여 다음 LDVC 및 이전 LDVC와 연결하기 위한 연결정보(Next LDVC, Prev LDVC)를 더포함하고 있다.
제9도는 PDVC의 포멧을 가리키고 있다.
IDLE : 아무것도 행하지 않음(즉 실행상태나 대기상태의 LDVC가 없음)
WAIT : DVBUS의 사용가능을 기다림.
WORK : 입력/출력 동작이 실행되고 있다.
DISK : DVC가 동작하는 동안 DVBUS는 개방(끊김)
PDVC는 입력/출력 요구 소오스의 PM의 기계번호(Active PM#)와 PDVC를 다음의 PDVC 또는 이전의 PDVC에 연결하여 대기행렬을 형성하는 연결정보(Next PDVC, Prev PDVC)를 갖고 있다.
제10도는 PDVC의 대기행렬을 일예를 나타내고 있다. PM#0, PM#1 및 PM#2로부터의 입력/출력 요구들이 DLC#0, DVC#1 및 DVC#2로 발행되어 LDVC내에 유지되어 PDVC#2 DPVC#0 및 PDVC#1은 이 순서로 입력/출력 요구들의 도착 순서에 따라 대기행렬에 연결된다. PM#0의 LDVC는 PDVC#1에 대한 대기행렬을 형성한다. PM#1, PM#2 및 PM#0의 LDVC들은 PDVC#0에 대한 대기행렬을 형성하고, PM#0의 LDVC는 PDVC#1의 대기행렬을 형성한다.
PDVC와 LDVC를 사용하여 입력/출력 요구를 처리하는 ADP의 제어프로그램의 처리의 흐름을 제11-14도를 참조하여 설명하겠다.
제11도는 ADP 제어프로그램의 메인처리의 플로우챠트이다. 전원이 ON되어 초기화 처리가 행해지고 I/O(입력/출력) 지시가 PM(1)로부터 올때에 I/O 지시의 접수처리가 행해진다.
PDVC가 대기상태일때에 이 처리는 ADP-DVC간의 DVBUS를 사용할 수 있게 되도록까지 기다린다.
그리하여 I/O 명령을 실행한다. 이 I/O 명령의 실행의 완료는 ADP(2)로부터 PM(1)로의 인터럽트 처리(후기 하겠음)에 의해서 행해진다. DVC(3)가 재연결 요구를 전송할 때에 그들의 연결처리가 DISK 상태의 PDVC에 대하여 행해진다.
제12도는 ADP(2)의 APU(21)가 I/O 명령을 접수하는 처리의 플로우챠트를 나타내고 있다.
PMn(1)으로부터 DVCm으로의 요구가 ADP(2)에 도달할 때와 OPCODE가 IACK(인터럽트 접수)가 아닐때에 이 요구를 I/O 명령으로 판단하여 ADP(2)가 LDVCnm(221)의 상태를 조사하여 IDLE 상태가 아닐때에는 I/O 명령 "접수거절"을 PMn으로 응답한다. DLVCnm(221)이 IDLE일때에는 이 처리는 I/O 명령 "접수완료"를 PMn으로 응답하여 LDVCnm(221)의 상태를 WAIT 상태로 변경하고 파라미터 정보를 LDVCnm에 기억한 후에 LDVCnm을 LDVC 대기행렬에 가한다.
다음 ADP(2)가 LDVCm의 상태를 조사하여 처리가 IDLE 상태가 아닐때에 메인처리로 되돌아간다. IDLE의 경우에 ADP는 PDVC의 상태를 WAIT로 변경하여 PDVCm을 PDVC 대기행렬에 가하고 제11도에 나타낸 바와같이 메인처리로 되돌아간다. OPCODE가 IACK일때에 인터럽트 요구는 PM에 의해서 접수되고 LDVCnm의 상태가 공백 즉 IDLE로 된다. 그리하여 메인 처리로 되돌아 간다.
제13도는 I/O 명령실행의 플로우챠트를 나타내고 있다. 여기서 n은 PM(1)의 기계번호를 가릭키고 m은 DVC(3)의 기계번호를 가리킨다.
DVBUS(5)를 사용할 수 있을 때에 이 처리는 LDVCm(221)에 대한 PDVCm의 상태와 PMn(1)로부터 DVCm(3)으로의 LDVCnm(221)의 상태를 WORK로 변경시킨다. 다음에 이 처리는 입력/출력 동작을 실행한다. 입력/출력 동작이 먼저 DVC(3)로 명령을 보내고 데이타를 DVC(3)로 전송하고 DVBUS(5)가 끊겼는지를 조사함으로서 실행된다. DVBUS(5)가 끊겨 있으면 모든 입력/출력 동작이 완료된 경우와 DVC(3)의 기계동작중에 일시적으로 DVC가 끊긴 경우가 있다.
모든 입력/출력 처리가 완료될 수 없을때에 PDVCm의 상태는 DISC로 변경되어 대기행렬로부터 제거되어 메인처리로 되돌아간다.
모든 입력/출력 동작이 종료될때에 LDVCm(221)이 LDVC 대기행렬로부터 제거되고, 인터럽트 처리1(제20도에 나타냄)가 실행된다.
LDVC 구동 대기행렬의 길이가 0(영)이 아닌때에 PDVCm의 상태는 WAIT로 변경되고 제1도에 나타낸 바와같이 PDVCm이 PDVC 구동 대기행렬의 최후로 옮겨지고 메인처리로 되돌아간다. LDVC 구동 대기행렬의 길이가 0일 때에는 PDVCm의 상태는 IDLE로 변경되고 PDVCm은 PDVC 구동 대기행렬로부터 제거되어 메인처리로 되돌아 간다.
제14도는 재연결 처리의 플로우챠트를 나타내고 있다. 끊긴 상태에 있는 DVCm(3)이 재연결 요구를 할때, 대응하는 PDVCm의 상태가 DISC인지를 조사한다. DISC가 아니면 재연결의 거절을 DVC(3)에 통지하고 제11도에 나타낸 바와같이 DVBUS(5)를 리리스(release)시킴으로써 완료되지 않고 메인처리로 되돌아간다. PDVCm의 상태가 DISC이면 WORK로 변경되고 PDVCm이 PDVC 대기행렬의 선두로 옮겨지고, 이 처리는 재연결을 접수하여 입력/출력 동작을 재개하고 제11도에 나타낸 I/O 명령실행중의 ①로 되도돌아간다.
본 발명에 의하면 각 PM(1)로부터 개별 DVC(3)로의 억세스 버스는 다른 PM 루트들을 거쳐가지 않고 ADP(2)를 거쳐서 직접 세트되고 입력/출력 요구를 발행한 PM은 억세스된 DVC가 사용중이라도 입력/출력 요구를 재발행할 필요가 없고, 다른 PM들과의 통신을 필요로 하지 않는다. 이점이 오버헤드를 감소시키고 멀티프로세서 시스템의 성능을 향상시키는 것이다.
제15도에 나타낸 바와같이 본 발명의 제1실시예의 멀티프로세서 시스템은 PM(1), ADP(2), DVC(3), IOBUS(4), DVBUS(5), CPU(11), MSU(12), PIBC(PM-IOBUS 콘넥터)(13), PMBUS(PM 버스)(14), APU(21), CSU(22), AIBC(AKP-IOBUS 콘넥터)(23), ADBC(ADP-DVBUS 콘넥터)(24), ADBUS(ADP 버스)(25) 및 LDVC(입력/출력 요구 테이블)(221)를 포함하고 있다.
개별 ADP(2)내의 ADP(21)는 CSU(22)내에 기억된 프로그램을 실행하여 일련의 처리들을 행한다.
인터럽트 동작을 요구하는 지시가 ADP(2)에서 실행될때에 APU(21)는 인터럽트 요구의 대상인 PM 등의 필요정보를 지정하고 인터럽트 동작을 위하여 PM(1)의 PIBC(13)를 요구하도록 AIBC(23)에 지시한다.
AIBC(23)는 인터럽트 요구를 IOBUS(4)를 거쳐서 PM(1)내의 PIBC(13)으로 전송한다. PIBC(13)는 CPU(11)에 인터럽트 요구가 접수됨을 통지하고 APU(21)는 이 인터럽트 요구를 발행하는 DVC(3)에 대응해서 LDVC(221)에 기억시키고, LDVC를 인터럽트 동작을 기디라기 위하여 대기행렬내에 등록한다.
DVBUS(5)가 사용되지 않고 인터럽트가 요구가 동작하고 있지 않는 PM에 행해질때에 APU(21)는 대기행렬의 수순에 따라서 PM에 인터럽트 요구를 발행하고 수순에 맞추어 LDVC(221)중에 보유하고 있던 인터럽트 요구르 CPU(11)로 전송한다.
상기의 인터럽트 동작을 더 상세하게 설명하겠다. 기억회로의 상태의 세 종류 정의는 PIBC(13)내에서 제공된 INTSTS REG(131)이다.
IDLE : 인터럽트 접수가 가능한 상태를 가리킴. PMIRQ(PM 인터럽트 요구)는 OFF이고, IRQ(인터럽트 요구) 버스 명령이 ADP(2)로부터 접수된때 이상태는 IRQ 상태로 변경된다.
IRQ : 인터럽트 요구가 보존된 상태를 가리킨다. PMIRQ가 ON되고 ADP(2)로부터의 새로운 인터럽트가 접수되지 않는다. CPU(11)는 인터럽트를 접수하여 PCMICK(PM 인터럽트 접수확인)가 ON 되고 상태는 IACKW(인터럽트 접수확인대기)로 변경된다.
IACKW : IACK 버스 명령 전송이 보존된 상태를 가리킨다.
PMIRQ는 OFF되고 ADP(2)로부터 새로운 인터럽트가 접수되지 않는다. PIBC가 I/O 버스를 억세스하고 IACK 버스명령이 전송될때 INTSTS REG(131)의 상태가 IDLE로 변경된다. PM은 인터럽트를 접수할 수 있는 상태로 된다.
단일 PM에 대하여 인터럽트가 발생하는 메카니즘은 아래와 같다.
DVCm(3)이 인터럽트 요구를 PM(1)에 전송할때에 APU(21)(APU 상에서 동작하는 팜웨어를 포함)는 상세한 인터럽션 정보를 I/O 명령의 발생시에 PM에 의해서 지정된 MSU(12)의 영역에 스테이터스블록으로서 사전에 기억한다.
APU(21)는 인터럽트 정보(ADP#, DVC#, PM# 및 인터럽트 원인코드 등)를 AIBC(23)내의 인터럽트 생성회로(INTREQ REG)(231)내에 세트하고 PM으로의 인터럽트를 개시하도록 AIBC(23)내에 지시한다.
AIBC(23)는 I/O 버스를 억세스하고 인터럽트 요구에 대한 버스명령(IRQ 버스 명령)을 지정된 PM에 전송한다. 상기 지정된 인터럽트 정보는 이 버스명령중에 포함된다.
PIBC(13)가 AIBC(23)로부터 인터럽트 명령을 접수하고 INTSTS REG(131)이 공백(즉 IDLE 상태)일때에 인터럽트 정보는 INTSTS REG(131)에 세트되고 CPU(11)로의 인터럽트 요구(PMIRQ)가 ON되고 인터럽트 접수에 대해서 ADP(2)에 통지한다.
INTSTS REG(131)이 공백이 아닐때에는 ADP(2)는 인터럽숀이 접수되지 않음을 통지 받는다. 이들 통지들은 ADP(2)로 IO BUS의 응답신호선을 거쳐서 전송된다. 이 응답신호가 버스명령의 수신시에 수신측의 유니트에 의해서 전송측의 유니트로 전송된다.
AIBC(23)의 응답신호의 내용은 인터럽트를 통해 APU(21)에 통지된다. 따라서 APU(21)는 인터럽트 전송이 성공적인 것인지를 판단할 수 있다.
인터럽트 전송이 실패할때에는 인터럽트 요구가 후에 다시 행해진다.
PMIRQ가 ON이고 인터럽트 접수가 가능할때에는 PMIACK는 ON되어 인터럽트 동작을 실행한다. 인터럽트 접수의 가능 여부는 CPU(11)의 인터럽트 마스크의 상태에 의존한다. 이 사실은 공지 기술이다. 소포트웨어는 종정 긴 시간동안 인터럽트 금지상태로 실행된다.
이 경우에 INTSTS REG(131)는 이 상태로(즉 IRQ의 상태로) 유지된다.
PMIACK가 ON되고 IPBC(13)가 PMIRQ를 OFF하고 INTSTS REG(131)을 IACK 전송이 대기되는 IACKW상태로 놓음으로써 IOBUS(4)를 억세스하고, 인터럽트 접수에 대한 버스명령(IACK bus command)을 ADP(2)로 전송한다. 버스 명령의 전송이 완료될때에 INTSTS REG(131)는 IDLE 상태로 되돌아가서 새로운 인터럽트의 수신이 가능하게 된다.
AIBC(23)가 IACK를 접수할때 제12도에 나타낸 바와같이 예를들어 인터럽트 동작에 의해서 APU(21)로 통지한다.
APU(21)는 IACK를 접수할 때에 LDVC(221)를 IDLE 상태로 되돌린다.
제16도는 본 발명의 제2실시예에 있어서 인터럽트 요구를 유지하는 제어테이블을 나타내고 있다.
이 제어테이블은 PM(#)에 대응하여 설비되고 LDVC와 PMIC를 포함하고 있다.
LDVC는 도착순서에 따라서 대기행렬내에 집어넣음으로써 각 DVC로부터 1대의 PM으로의 인터럽트 요구들을 관리하는 테이블을 포함하고 있다. PMIC는 복수의 DVC로부터 인터럽트 요구들이 복수의 PM에 도착할때에 인터럽트 요구들의 처리수순을 관리하는 테이블을 포함하고 있다. 제17도는 LDVC의 대기행렬의 일예를 나타내고 있다. 이 경우에는 DVC로부터 PM#0로의 인터럽트 요구가 수순(DVC#2, DVC#0 및 DVC#1)에 맞추어 ADP에 도착한다. 따라서 제17도에 나타낸 바와 같이 DVC#2, DVC#0 및 DVC1이 DVC#2를 시작으로 수순에 맞추어 연결되는 대기행렬이 LDVC#0에 대하여 형성된다.
LDVC#0은 PMIC#0에 종속되며 PMIC#0은 PMIC의 대기행렬의 선두에 도달할때에 작동되어 실행상태로 된다. 이때에 PMIC#0의 대기행렬의 선두에 제공된 인터럽트 요구(DVC#2)가 실행상태로 되고 인터럽트 요구들(DVC#0와 DVC#1)이 실행 대기상태로 된다.
DVC#2로부터의 인터럽트 요구의 실행이 완료될때에 DVC#2의 요구가 LDVC 대기행렬로부터 제거되고 그 대신에 DVC#0가 LDVC 대기행렬의 선두로 온다. 그러나 이때에 PMIC#0은 PDVC 대기행렬의 선두로부터 제거되어 실행대기로 된다. 따라서 DVC#0의 인터럽트 요구는 PMIC#0이 다음 실행상태가 되도록까지 실행대기 상태를 유지한다.
인터럽트 요구에 관해서 사용되는 LDVC의 상태와 포멧은 I/O 명령에 관해서 위에 설명한 것과 같다.
제18도는 PMIC의 포멧을 가리키고 있다.
PMIC는 다음 상태를 갖고 있다.
IDLE : 이 상태는 인터럽트를 기다리고 특정 PM에 속해 있는 LDVC가 존재하지 않음을 즉 IRQW(인터럽트 요구대기)/IRQ(인터럽트 요구 실행)의 상태에 있음을 나타내고 있다.
WAIT : 이 상태는 IACKW(인터럽트 접수 대기)의 LDVC가 존재하고 PMIC가 AIBC(23)의 사용가능을 대기하는 것을 나타내고 있다. IACKW는 인터럽트 요구가 PM에 의해서 접수되고 IACK가 대기되는 상태를 가리킨다.
ACTIVE : 이상태는 PM이 AIBC(23)를 제어하는 권리를 갖음을 나타낸다. PMIC에 연결된 선두 LDVC는 IRQEX 상태에 있다.
이 PMIC는 인터럽트 요구 소오스의 DVC의 기계번호(Active LDVC#)와 PMIC를 다음의 PMIC 또는 이전의 PMIC에 연결하여 대기행렬을 형성하는 연결정보(Next PMIC and Prev PMIC)를 갖고 있다.
제19도는 PMIC의 인터럽트 대기행렬의 일예를 나타내고 있다. DVC#0, DVC#1 및 DVC#2로부터의 인터럽트 요구들이 PM#0, PM#1 및 PM22로 발행되고 LDVC내에 유지된다. PMIC#2, PMIC#0 및 PMIC#1은 인터럽트 요구들의 도착순서에 따라서 대기행렬에 순서대로 연결된다.
DVC#0의 LDVC는 PMIC#1에 대한 대기행렬을 형성한다. DVC#1, DVCA2 및 DVC#0의 LDVC들은 PMIC#1에 대한 대기행렬을 형성한다. DVC#0의 LDVC는 PMIC#1에 대한 대기행렬를 형성한다.
제20도 및 제21도는 인터럽트 처리의 플로우챠트를 나타내고 있다. 제20도에 나타낸 인터럽트 처리(1)는 I/O 명령실행처리의 일부로서 수행된다. 제20도에 나타낸 바와같이 인터럽트처리(1)는 우선 PMICm이 Idle일때 PMICM의 상태를 판단한후에 PMIC 인터럽트 대기행렬의 길이를 결정한다. 대기행렬의 길이가 0이 아닐때에 PMIC의 상태는 WAIT로 되어 PMIC는 PMIC 대기행렬에 들어간다. 그런후 LDVCmn의 상태가 IRQW로 되고 PMICn의 LDVC 인터럽트 대기행렬에 연결된다.
PMIC 인터럽트 대기행렬의 길이가 0일때에는 PMIC의 상태는 ACTIVE로 되고 PMIC는 PMIC 대기행렬의 선두에 연결된다. 그다음 PDVCmn의 상태가 IRQEX로 된후, PMIC는 PMICn의 LDVC 인터럽트 대기행렬의 선두에 들어간다.
이 처리는 인터럽트 명령을 발행하도록 AIBC에 요구한다. 그 다음 처리는 I/O 지시 실행으로 되돌아간다.
PMICM의 상태가 WAIT 또는 ACTIVE일때에 처리들은 LDVCnm의 상태를 IRQW로 직접 변경시킨다.
인터럽트 처리(2)는 AIBC로부터 APU(21)로의 인터럽트에 의해서 또 인터럽트 버스명령의 결과 통지에 의해서 작동되며 또한 인터럽트처리(1)내의 AIBC로부터 인터럽트 명령을 발생하는 단계에 의해 작동된다.
제21도에 나타내 바와같이 인터럽트 처리(2)는 인터럽트 버스 명령의 실행 결과를 판단한다. 인터럽트 버스 명령 실행이 접수될 때에 선두에 있는 LDVC의 상태는 IACKW이고 LDVC 인터럽트 대기행렬로부터 제거된다.
인터럽트 대기행렬의 길이가 0일때에 PMIC의 상태는 IDLE로 되고 PMIC는 PMIC 대기행렬로부터 제거된다. 그런다음 이 처리는 PMIC 인터럽트 대기행렬의 길이를 결정한다.
PMIC 인터럽트 대기행렬의 길이가 0이 아닐때에는 다음 PMIC의 상태는 ACTIVE로 되고 선두에 있는 LDVC는 IRQEX로 된다. 그 다음에 이 처리는 인터럽트 명령을 발행하도록 AIBC에 지시한다. 그리하여 원래의 처리로 되돌아간다. PMIC 인터럽트 대기행렬의 길이가 0일때에는 이 처리는 직접 원래의 처리로 되돌아간다.
LDVC 인터럽트 대기행렬이 0이 아닐때에는 PMIC의 상태는 WAIT로 되고 LDVC의 상태는 IRQW로 되고 PMIC 대기행렬의 최후에 연결되도록 변경된다.
인터럽트 제1명령실행의 결과가 거절일때에는 PMIC의 상태는 역시 WAIT로 되고 LDVC의 상태는 IRQW로 되고 PMIC 대기행렬의 최후점에 연결되도록 변경된다.
본 발명에 의하면 상술한 바와같이 각 PM이 다른 PM들을 거치지 않고 ADP를 거쳐서 개별 DVC로의 억세스로 직접 결정할 수 있다.
억세스된 DVC가 사용중일지라도 PM 발행 입력/출력 요구부는 입력/출력 요구를 재발행할 필요가 없고 다른 PM들과도 통신할 필요도 없다. 그리하여 오버헤드를 줄이고 멀티프로세서 시스템의 성능을 향상시킨다.
또 인터럽트 요구를 발행하는 DVC가 요구가 보내지는 PM이 사용중이라도 인터럽트 요구를 재발행할 필요가 없다.

Claims (19)

  1. 각가 메인메모리를 갖는 복수의 정보처리모듈들(PM)고, 상기 복수의 정보처리모듈들(PM)에 의한 입력/출력 요구에 따라서 동작가능하게 연결되며, 복수의 그룹으로 나누어져 있는 복수의 입력/출력 장치(DVC)와; 상기 입력/출력 장치(DVC)의 그룹들 중 하나에 각각 동작 가능하게 연결되며, 상기 각 정보처리모듈(PM)에 의해서 공용되도록 상기 정보처리모듈(PM)에 각각 연결되는 복수의 입력/출력 어답터(ADP)를 포함하는 멀티프로세서 시스템의 입력/출력 요구 시스템에 있어서, 상기 입력, 출력 어답터(ADP)는 상기 정보처리모듈에 대응하는 셀들의 로우들을 갖는 입출력 요구 테이블과 구동 대기행렬중 적어도 하나를 사용하여 상기 각 정보처리모듈(PM)(+)로부터 상기 대응하는 그룹내의 상기 입력/출력 장치(DVC)들로의 입력/출력 요구들을 관리하는 입력/출력 요구 테이블을 제공하는 수단(CSU)과; 상기 입력/출력 요구 테이블(LDVC)과 상기 입력/출력 장치들(DVC)의 내용에 의해서 상기 각 정보처리모듈(PM)로부터의 입력/출력 요구를 처리하는 수단(APU)을 포함하는 것을 특징으로 하는 입력/출력 요구 제어시스템.
  2. 제1항에 있어서, 입력/출력 요구 테이블 수단은 상기 입력/출력 장치에 대응하는 장치요구에 대기행렬을 더 포함하며 상기 구동 대기행렬은 상기 입력/출력 어답터에 의해 상기 입력/출력 장치들의 그룹들에 대한 상기 장치요구 대기행렬중에서 선택에 의해 상기 입력/출력 장치들을 억세스하는 순서를 결정하는 것을 특징으로 하는 입력/출력 요구 제어시스템.
  3. 제1항에 있어서, 상기 입력/출력 요구 테이블제공수단은 상기 입력/출력 요구가 관계되는 상기 입력/출력 장치들중 하나에 대응하는 로우의 셀들내에 정보처리모듈로부터의 상기 입력/출력 요구를 기억시키도록 입력/출력 요구 테이블을 사용하는 것이 특징으로 하는 입력/출력 요구 제어시스템.
  4. 제1항에 있어서, 상기 입력/출력 요구 테이블제공수단은 상기 입력/출력 장치들의 그룹들에 대응하는 그룹구동 대기행렬을 더 포함하며, 선택된 입력/출력 요구가 대응하는 장치 구동 대기행렬의 선두에 도달하면 선택된 입력/출력 요구는 대응하는 그룹구동 대기행렬에 삽입되고 또한 선택된 입력/출력 요구가 상응하는 그룹구동 대기행렬의 선두가 되면 선택된 입력/출력 요구의 실행이 시작되는 것이 특징으로 하는 입력/출력 요구 제어시스템.
  5. 제4항에 있어서, 상기 입력/출력 요구 테이블제공수단이 처리모듈 인터럽트 대기행렬과 어답터 인터럽트 출력 대기행렬을 더 포함하며 상기 입력/출력 요구 테이블의 셀들이 대응셀에 대해 아무런 실행요구가 수신되지 않는 상태(IDLE), 대응하는 그룹의 구동 대기행렬의 사용을 기다리는 상태(WAIT), 선택된 입력/출력 요구가 대응하는 그룹의 구동 대기행렬의 선두에 오고 또한 선택된 입력/출력 요구가 실행되는 상태(WORK), 선택된 입력/출력 요구가 대응하는 처리모듈 인터럽트 대기행렬내에 삽입되어 인터럽트 요구 버스명령을 발행할 차례를 기다리는 상태(IRQW), 선택된 인터럽트 요구가 대응하는 어답터의 인터럽트 출력 대기행렬의 선두가 될때 인터럽트 버스명령이 발행되고 또한 대응하는 정보처리모듈에 의한 접수 통지를 기다리는 상태(IRQEX), 인터럽트 요구 버스명령이 대응하는 정보처리모듈에 의해 접수되고 확인 버스명령을 대응하는 입력/출력 어답터에 의해 기다리는 상태(IACK)로부터 선택된 상태를 가지며, 그에 의해 선택된 입력/출력 요구는 그의 실행완료와 관련하여 인터럽트 버스 명령과 연관되는 것이 특징으로 하는 입력/출력 요구 제어시스템.
  6. 제4항에 있어서, 상기 입력/출력 장치들(DVC)의 그룹들을 대응하는 입력/출력 어답터들(ADP)에 접속하는 장치버스들을 더 포함하며, 상기 그룹구동 대기행렬내의 엔트리들이 대응하는 장치구동 대기행렬내에 아무런 입력/출력 요구들이 기다리지 않는 상태(IDLE), 대응하는 장치버스의 사용을 기다리는 상태(WAIT), 선택된 입력/출력 요구가 실행되는 상태(WORK), 상기 입력/출력 장치들중 하나가 동작하고 대응하는 장치 버스는 끊기는 상태(DISK)로부터 선택된 상태를 갖는 것이 특징으로 하는 입력/출력 요구 제어시스템.
  7. 제1항에 있어서, 상기 입력/출력 어답터는 새로운 입력/출력 요구가 도착된때에 새로운 입력/출력 요구를 접수하는 접수수단: 상기 선택된 입력/출력 요구가 WAIT 상태로서 대응하는 그룹구동 대기행렬의 선두가 도착할때에 선택된 입력/출력 요구를 실행하고 또한 선택된 입력/출력 요구의 완료시 정보처리모듈중 하나에 인터럽트 동작을 수행하는 실행수단: 재연결 요구가 있을시에 재연결처리를 행하는 재연결 수단을 포함하는 것을 특징으로 하는 입력/출력 요구 제어시스템.
  8. 제7항에 있어서, 상기 접수 수단이 입출력 요구 테이블내의 대응셀내에 있는 종전의 입력/출력 요구가 실행과 확인을 완료하지 않았을때 새로운 입력/출력 요구의 접수를 거절하는 수단 : 상기 새로운 입력/출력 요구가 발행되지 않고 또한 상기 입력/출력 요구 테이블내의 대응셀이 IDLE 상태에 있을때에 새로 접수한 입력/출력 요구의 접수를 나타냄으로써 정보처리모듈들중 하나에 응답하는 수단 : 상기 입력/출력 요구 테이블내의 대응셀(LDVCmn)의 상태를 WAIT 상태로 변경하고 장치구동 대기행렬에 상기 대응셀을 가하는 수단 : 그룹 구동 대기행렬내의 대응엔트리(PDVCm)가 IDLE 상태에 있을때에 그룹 구동 대기행렬내의 대응엔트리(PDVCm)를 WAIT 상태로 변경하는 수단 : 및 상기 입력/출력 장치들중 하나의 동작을 위한 정보처리모듈들중 하나로부터 확인이 수신될 때 상기 입력/출력 요구 테이블내의 대응셀을 인터럽트상태에서 IDLE 상태로 만드는 수단을 포함하는 것을 특징으로 하는 입력/출력 요구 제어시스템.
  9. 제7항에 있어서, 상기 입력/출력 장치의 그룹들을 대응하는 입력/출력 어답터에 접속하는 장치버스들을 더 포함하며, 상기 실행 수단이 대응장치버스(DVBUS)가 사용 가능할때에 상기 그룹구동 대기행렬의 선두에 있는 엔트리(PDVCm)의 상태를 WORK 로 변경하고 상기 입력/출력 요구 테이블내의 대응셀의 상태를 WORK로 변경하는 수단 : 상기 입력/출력 요구에 따라 입력/출력 동작을 실행하는 수단 : 입력/출력 동작이 완료되지 않았을때에 그룹구동 대기행렬의 선거에 있는 엔트리(PDVCm)의 상태를 DISC로 변경하고 그룹구동 대기행렬의 선두에 있는 엔트리를 제거하는 수단 : 상기 선택된 입력/출력 요구와 연관된 모든 입력/출력 동작이 완료되었을때에 장치구동 대기행렬로부터 입력/출력 요구 테이블내의 대응셀(LDVCnm)을 제거하고 또한 인터럽트 처리를 행하는 수단 : 장치 구동 대기행렬의 길이가 0(영)일때에 그룹구동 대기행렬의 선두에 있는 엔트(PDVCm)의 상태를 IDLE로 변경하고 상기 그룹구동 대기행렬의 선두에 있는 엔트리를 제거하는 수단 : 장치 구동 대기행렬이 0이 아닐때에 그룹구동 대기행렬의 선두에 있는 엔트리(PDVCm)의 상태를 WAIT로 변경하고 그룹 구동 대기행렬의 최후에 상기 PDVCm을 가하는 수단을 포함하는 것을 특징으로 하는 입력/출력 요구 제어시스템.
  10. 제9항에 있어서, 상기 입력/출력 요구 테이블수단은 PM 인터럽트 제어 테이블과 연관된 어답터 인터럽트 출력 대기행렬과 PM 인터럽트 대기행렬을 더 포함하며, 상기 인터럽트 처리수단이 대응하는 어답터 인터럽트 출력 대기행렬의 길이를 판단하는 수단 : 상기 대응하는 어답터 인터럽트 출력 대기행렬의 길이가 0이 아닐때에 PM 인터럽트 제어 테이블(PMICn)의 선택된 인티럽트 요구를 대응 PM 인터럽트 대기행렬에 추가하는 수단 : 및 대응 어답터 인터럽트 출력 대기행렬의 길이가 0일때에 인티럽트 요구를 대응 어답터의 인터럽트 출력 대기행렬의 선두에 연결하고 또 상기 인터럽트 요구를 상기 대응 PM 인티럽트 대기행렬의 선두에 연결하고 또한 인터럽트 명령을 발행할 것을 지시하는 수단을 포함하는 것을 특징으로 하는 입력/출력 요구 제어시스템.
  11. 제9항에 있어서, 상기 입력/출력 요구 테이블수단이 PM 인터럽트 대기행렬과 어답터 인터럽트 출력 대기행렬을 더 포함하며, 상기 인터럽트 처리수단이, 인터럽트 버스 명령이 접수된 때에 대응 PM 인터럽트 대기행렬의 선두에 있는 엔트리를 제거하는 수단 : 대응 PM 인터럽트 대기행렬의 길이가 0일때에 대응 어답터 인터럽트 추력 대기행렬로부터 엔트리를 제거하는 수단; 대응 어답터 인터럽트 출력 대기행렬의 길이가 0이 아닐때에 대응 어답터 인터럽트 출력 대기형렬내의 다음 엔트리의 상태를 ACTIVE로 만들고, 대응 PM 인터럽트 대기행렬의 선두의 상태를 IRQEX로 만들고, 인터럽트 버스명령을 발행하는 수단 : 대응 어답터 인터럽트 출력 대기행렬의 길이가 0일때에 원래의 처리로 되돌려 보내는 수단 : 및 인터럽트 버스명령이 접수되지 않을때와 대응 PM 인터럽트 대기행렬의 길이가 0이 아닐때에 상기 선두에 있는 엔트리를 인터럽트 버스 명령 접수후 대응 어답터 인터럽트 출력 대기행렬의 최후에 연결하는 수단을 포함하는 것을 특징으로 하는 입력/출력 요구 제어시스템.
  12. 각각 메인메모리를 갖는 복수의 정보처리모듈들(PM)과, 상기 복수의 정보처리모듈(PM)에 의한 인터럽트 요구에 따라서 동작가능하게 연결되며, 복수의 그룹으로 나누어져 있는 복수의 입력/출력 장치(DVC)와 : 상기 입력/출력 장치(DVC)의 그룹들중 하나에 각각 동작가능하게 연결되며, 상기 각 정보처리모듈(PM)에 의해서 공용되도록 상기 정보처리모듈(PM)에 각각 연결되는 복수의 입력/출력 어답터(ADP)를 포함하는 멀티프로세서 시스템의 인터럽트 요구 시스템에 있어서, 상기 입력/출력 어답터(ADP)는 상기 입출력 장치에 대응하는 셀들의 로우들을 갖는 인터럽트 요구 테이블과 구동 대기행렬중 적어도 하나를 사용하여 각 정보처리모듈(PM)로의 상기 대응하는 그룹내의 상기 입력/출력 장치(DVC)들로부터의 인터럽트 요구들을 관리하는 인터럽트 요구 테이블을 제공하는 수단(CSU)과 상기 인터럽트 요구 테이블(LDVC)과 상기 정보처리모듈(PM)의 내용에 의해서 상기 입력/출력 장치(DVC)로부터의 인터럽트 요구를 처리하는 수단(APU)을 포함하는 것을 특징으로 하는 인터럽트 요구 제어시스템.
  13. 제12항에 있어서, 상기 입력/출력 어답터들을 상기 정보처리모듈에 접속하는 입력/출력 버스를 더 포함하며, 상기 인터럽트 요구 테이블들은 상기 PM들에 대응하여 설비되고 상기 적어도 하나의 대기행렬은 상기 입력/출력 버스(IOBUS)의 억세스 순서에따라 어답터 인터럽트 출력 대기행렬을 포함하는 것을 특징으로 하는 인터럽트 요구 제어시스템.
  14. 제12항에 있어서, 상기 인터럽트 요구 테이블수단이 상기 정보처리모듈들(PM)중 하나에 대응하는 인터럽트 요구 테이블내의 로우의 한 로우의 셀들중 한 셀내에 상기 입력/출력 장치들로부터의 인터럽트 요구들을 기억시켜줌으로써 소정순서로 PM 인터럽트 대기행렬을 형성할 수 있게 하는 것을 특징으로 하는 인터럽트 요구 제어시스템.
  15. 제12항에 있어서, 상기 인터럽트 요구 테이블들이 상기 각 PM에 대응하여 설비되고, 상기 인터럽트 요구 테이블 수단이 입력/출력 요구를 기억하는 입력/출력 요구 테이블을 포함하며 상기 적어도 하나의 대기행렬이 PM 인터럽트 대기행렬과 적어도 하나의 어답터 인터럽트 출력 대기행렬을 포함하며, 선택된 인터럽트 요구가 대응 PM 인터럽트 대기행렬의 선두에 도달할때에 상기 상응 PM 인터럽트 대기행렬의 선두에 있는 선택된 인터럽트 요구가 어답터 인터럽트 출력 대기행렬에 들어가고, 선택된 인터럽트 요구가 어답터 인터럽트 출력 대기행렬의 선두에 올때에 인터럽트 실행이 개시되는 것을 특징으로 하는 인터럽트 요구 제어시스템.
  16. 제15항에 있어서, 적어도 하나의 대기행렬이 그룹구동 대기행렬과 장치구동 대기행렬들을 포함하며 상기 입력/출력 요구 테이블내의 셀들이 대응셀에 실행요구가 아무것도 수신되지 않은 IDLE 상태 : 대응하는 그룹 구동 대기행렬(PDVC)의 사용가능을 기다리는 WAIT 상태; 선택된 입력/출력 요구(LDVC)가 대기행렬의 선두에 와서 선택된 입력/출력 요구를 실행하는 WORK 상태 : 선택된 입력/출력 요구(LDVC)가 대응 PM 인터럽트 대기행렬내로 들어가서 인터럽트 요구(IRQ) 버스명령을 발행하는 차례를 기다리는 IRQW 상태 : 선택된 입력/출력 요구(LDVC)가 대응 어답터 인터럽트 출력 대기행렬의 선두에 도달할때 상기 인터럽트 요구(IRQ) 버스명령이 발행되고, 대응 PM에 의한 접수통지를 기다리는 IRQEX 상태 : 및 인터럽트 요구 버스명령이 대응 PM에 의해서 접수되고 확인(IACK) 버스명령을 대응 ADP에 의해서 기다리는 IAICKW 상태로부터 선택된 상태들을 갖는 것을 특징으로 하는 인터럽트 요구 제어시스템.
  17. 제15항에 있어서, 상기 입력/출력 장치의 그룹들을 대응 입력/출력 어답터들에 접속하는 장치 버스들을 포함하며, 상기 그룹구동 대기행렬들내의 엔트리들이 상기 대응장치 구동 대기행렬내에 입력/출력 요구가 아무것도 없는 IDLE 상태 : 대응 장치버스(DVBUS)의 사용가능을 기다리는 WAIT 상태 : 선택된 입력/출력 요구가 실행되는 WORK 상태를 포함하는 것을 특징으로 하는 인터럽트 요구 제어시스템.
  18. 제12항에 있어서, 상기 적어도 하나의 대기행렬은 PM 인터럽트 대기행렬과 어답터 인터럽트 출력 대기행렬을 포함하며, 상기 인터럽트 처리수단이 대응 인터럽트 요구 테이블내의 선택된 인터럽트 요구가 IDLE 상태일때 대응 어답터 인터럽트 출력 대기행렬의 길이를 판단하는 수단, 대응 어답터 인터럽트 출력대기행렬이 0이 아닌때에 상기 선택된 인터럽트 요구의 상태를 WAIT 상태로 하고, 상기 선택된 인터럽트 요구를 대응 어답터 인터럽트 출력 대기행렬에 추가연결하는 수단, 및 상기 대응 어답터 인터럽트 출력 대기행렬의 길이가 0일때에 상기 선택된 인터럽트 요구를 상기 대응 어답터 인터럽트 출력 대기행렬의 선두에 연결하고 또 상기 선택된 인터럽트 요구를 상기 대응 PM 인터럽트 대기행렬의 선두에 연결하고 인터럽트 버스명령 발행을 지시하는 수단을 포함하는 것을 특징으로 하는 인터럽트 요구 제어시스템.
  19. 제12항에 있어서, 적어도 하나의 대기행렬이 PM 인터럽트 대기행렬과 어답터 인터럽트 대기행렬을 포함하며, 상기 인터럽트 처리수단이 선택된 인터럽트 요구가 버스명령을 접수할때에 대응 PM 인터럽트 대기행렬의 선두에 있는 엔트리를 제거하는 수단 : 상기 대응 PM 인터럽트 대기행렬의 길이가 0일때에 대응 어답터 인터럽트 출력 대기행렬로부터의 엔트리를 제거하는 수단 : 상기 대응 어답터 인터럽트 대기행렬의 길이가 0이 아닐때에 상기 대응 어답터 인터럽트 출력 대기행렬내의 다음 엔트리의 상태를 ACTIVE로 만들고 상기 대응 PM 인터럽트 대기행렬의 선두 상태를 IRQEX로 만들어 인터럽트 버스명령을 발행하는 수단 : 상기 대응 어답터 인터럽트 출력 대기행렬의 길이가 0일때에 원래의 처리로 되돌려 보내는 수단 : 및 상기 인터럽트 버스명령이 접수되지 않거나 상기 대응 PM 인터럽트 대기행렬의 길이가 0이 아닐때에 상기 대응 어답터 인터럽트 출력 대기행렬의 최후에 상기 선두의 엔트리를 연결하는 수단을 포함하는 것을 특징으로 하는 인터럽트 요구 제어시스템.
KR1019910003804A 1990-03-09 1991-03-09 멀티 프로세서 시스템용 제어시스템 KR950008837B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2-59070 1990-03-09
JP5907090 1990-03-09

Publications (2)

Publication Number Publication Date
KR910017306A KR910017306A (ko) 1991-11-05
KR950008837B1 true KR950008837B1 (ko) 1995-08-08

Family

ID=13102725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910003804A KR950008837B1 (ko) 1990-03-09 1991-03-09 멀티 프로세서 시스템용 제어시스템

Country Status (6)

Country Link
US (1) US5507032A (ko)
EP (1) EP0446077B1 (ko)
KR (1) KR950008837B1 (ko)
AU (1) AU654268B2 (ko)
CA (1) CA2037989C (ko)
DE (1) DE69122142T2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371893A (en) * 1991-12-27 1994-12-06 International Business Machines Corporation Look-ahead priority arbitration system and method
US5717950A (en) 1994-01-11 1998-02-10 Hitachi, Ltd. Input/output device information management system for multi-computer system
US5860022A (en) * 1994-07-26 1999-01-12 Hitachi, Ltd. Computer system and method of issuing input/output commands therefrom
JP3042341B2 (ja) * 1994-11-30 2000-05-15 日本電気株式会社 クラスタ結合型マルチプロセッサシステムにおけるローカル入出力制御方法
US5592631A (en) * 1995-05-02 1997-01-07 Apple Computer, Inc. Bus transaction reordering using side-band information signals
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US5675829A (en) * 1995-07-07 1997-10-07 Sun Microsystems, Inc. Method and apparatus for coordinating data transfer between hardware and software by comparing entry number of data to be transferred data to entry number of transferred data
FR2737590B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Dispositif de gestion d'interruptions
US6021456A (en) * 1996-11-12 2000-02-01 Herdeg; Glenn Arthur Method for communicating interrupt data structure in a multi-processor computer system
US6393455B1 (en) 1997-03-28 2002-05-21 International Business Machines Corp. Workload management method to enhance shared resource access in a multisystem environment
US5960178A (en) * 1997-08-08 1999-09-28 Bell Communications Research, Inc. Queue system and method for point-to-point message passing having a separate table for storing message state and identifier of processor assigned to process the message
US6073197A (en) * 1997-08-21 2000-06-06 Advanced Micro Devices Inc. Apparatus for and method of communicating data among devices interconnected on a bus by using a signalling channel to set up communications
US6085277A (en) * 1997-10-15 2000-07-04 International Business Machines Corporation Interrupt and message batching apparatus and method
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6571206B1 (en) * 1998-01-15 2003-05-27 Phoenix Technologies Ltd. Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment
US6701429B1 (en) 1998-12-03 2004-03-02 Telefonaktiebolaget Lm Ericsson(Publ) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
US7478185B2 (en) * 2007-01-05 2009-01-13 International Business Machines Corporation Directly initiating by external adapters the setting of interruption initiatives
JP7318423B2 (ja) 2019-08-30 2023-08-01 富士通株式会社 通信制御装置、通信制御方法及び通信制御プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4271468A (en) * 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
FR2470412B1 (fr) * 1979-11-19 1986-10-03 Bull Sa Procede et dispositif de comptabilisation et de gestion des evenements asynchrones emis par des appareils peripheriques dans un systeme de traitement de donnees
US4396984A (en) * 1981-03-06 1983-08-02 International Business Machines Corporation Peripheral systems employing multipathing, path and access grouping
US4562533A (en) * 1981-12-03 1985-12-31 Ncr Corporation Data communications system to system adapter
US4796176A (en) * 1985-11-15 1989-01-03 Data General Corporation Interrupt handling in a multiprocessor computing system
US4783730A (en) * 1986-09-19 1988-11-08 Datapoint Corporation Input/output control technique utilizing multilevel memory structure for processor and I/O communication
US4888691A (en) * 1988-03-09 1989-12-19 Prime Computer, Inc. Method for disk I/O transfer

Also Published As

Publication number Publication date
DE69122142D1 (de) 1996-10-24
EP0446077B1 (en) 1996-09-18
US5507032A (en) 1996-04-09
AU7281391A (en) 1991-09-12
CA2037989A1 (en) 1991-09-10
EP0446077A2 (en) 1991-09-11
EP0446077A3 (en) 1993-01-07
DE69122142T2 (de) 1997-01-23
CA2037989C (en) 1998-07-28
AU654268B2 (en) 1994-11-03
KR910017306A (ko) 1991-11-05

Similar Documents

Publication Publication Date Title
KR950008837B1 (ko) 멀티 프로세서 시스템용 제어시스템
US6754738B2 (en) Low overhead I/O interrupt
US6880021B2 (en) Intelligent interrupt with hypervisor collaboration
EP0298396B1 (en) Function-distributed control apparatus
EP0318221A2 (en) Controlling responding by users of an intercommunications bus
US5301279A (en) Apparatus for conditioning priority arbitration
US5606703A (en) Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures
EP0320274B1 (en) An initial program load control system in a multiprocessor system
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
EP0644489A2 (en) Method and apparatus for signalling interrupt information in a data processing system
US6792483B2 (en) I/O generation responsive to a workload heuristics algorithm
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
US6748460B2 (en) Initiative passing in an I/O operation without the overhead of an interrupt
EP1115065B1 (en) Effective channel priority processing for transfer controller with hub and ports
JPH07104833B2 (ja) マルチプロセッサシステム
EP0318270A2 (en) A multiprocessor system and corresponding method
JPH0352097B2 (ko)
JPH02291039A (ja) メモリ制御システム
JP3443787B2 (ja) 自立分散型プラント制御マンマシン装置
JPH056333A (ja) マルチプロセサシステム
JP2575828B2 (ja) 割込み制御方式
JP2976343B2 (ja) 起動受け付け方法
KR960015587B1 (ko) 시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법
JP2000250713A (ja) ディスクアレイ制御装置
KR920009447B1 (ko) 다중처리 시스템에서의 입출력 전담 처리장치.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
E601 Decision to refuse application
J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

G160 Decision to publish patent application
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060725

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee