KR880002100B1 - 멀티프로세서 시스템(multiprocessor system) - Google Patents

멀티프로세서 시스템(multiprocessor system) Download PDF

Info

Publication number
KR880002100B1
KR880002100B1 KR8202624A KR820002624A KR880002100B1 KR 880002100 B1 KR880002100 B1 KR 880002100B1 KR 8202624 A KR8202624 A KR 8202624A KR 820002624 A KR820002624 A KR 820002624A KR 880002100 B1 KR880002100 B1 KR 880002100B1
Authority
KR
South Korea
Prior art keywords
bus
interrupt
processor
signal
controller
Prior art date
Application number
KR8202624A
Other languages
English (en)
Other versions
KR840000834A (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 KR8202624A priority Critical patent/KR880002100B1/ko
Publication of KR840000834A publication Critical patent/KR840000834A/ko
Application granted granted Critical
Publication of KR880002100B1 publication Critical patent/KR880002100B1/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

Landscapes

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

Abstract

내용 없음.

Description

멀티프로세서 시스템(multiprocessor system)
제 1 도는 종래의 멀티프로세서 시스템의 블럭도.
제 2 도는 본 발명의 한 실시예의 개략블럭도.
제 3 도는 제 2 도에 나타낸 버스콘트롤러(bus controller)의 상세한 블럭도.
제 4 도는 제 2 도에 나타낸 인터럽트 제어회로(interrupt control circuit)의 상세한 블록도.
제 5 도는 제 4 도에 나타낸 ROM(Read Only Memory)에 기억한 데이터를 나타낸 도표.
제 6 도는 제 4 도에 나타낸 RAM(Random Access Memory)에 기억한 데이터를 나타낸 도표.
제 7 도는 제 2 도에 나타낸 바와같이 버스셀럭터의 상세한 블록도.
제 8 도는 본 발명이 한 실시예의 동작을 설명하는 플로챠트.
* 도면의 주요부분에 대한 부호의 설명
3 : 버스셀럭터(bus selector) 4 : 버스콘트롤러(bus controler)
5 : 공통버스(common bus) 7 : 버스콘트롤러
8 : 인터럽트 콘트롤러(interrupt controller)
11-1n: 프로세서(precessor) 61, 62 : 장치(devices)
21-2n: 로컬버스(local bus) 31-3n: 셀렉터(selector)
REQl-REQn: 버스요구신호(bus request signal)
ITRl-ITRn: 인터럽트신호(interrupt signals)
81 : 멀티플랙서(multiplexer) 83 : ROM
84, 86, 87 : 레지스터(register) 85 : RAM
73 : 엔코우더(encoder) 74 : 디코우더(decoder)
77 : 제로검출회로(zero detecting circuit)
71 : NOT회로 721-72n: 게이트회로(gate circuits)
761-76n: 플립-플롭(flip-flops) 751-75n: 인버터(inverter)
830-83n: 저장장소구역(storage areas) 881-88n: AND 게이트
ACK : 인터럽트 허용신호(interrupt permitting signal).
본 발명의 멀티프로세서 시스템(multiprooessor system)에 관한 것이다. 좀더 구체적으로 말하면 본 발명은 한장치(device) 또는 여러장치를 복수대의 프로세서(processor)에 의해 공통으로 제어하는 멀티프로세서 시스템의 개량에 의한 것이다.
멀티프로세서 시스템은 복수대의 프로세서가 하나의 장치(device)나 여러장치(device)를 공통으로 사용할 경우 일반적으로 사용된다.
이와같은 장치는 메모리(memory), 프로세서 입출력장치(process imput output apparatus), 타이프라이터, 프로피디스크(floppy disk) 및 음극선관(CRT) 표시장치들과 같은 컴퓨터용 주변기기로 구성된다.
이와같은 장치를 공통으로 제어하기 위한 목적에서 공통버스(common bus)를 사용하는 버스구조(bus structure)의 멀티프로세서 시스템이 고속으로 처리할 수 있는 염가의 방법으로 사용된다.
제 1 도는 종래의 멀티프로세서의 개략블록도이다.
제 1 도에서는 복수대의 프로세서(precessor) (11-1n)가 예로서 두장치(61) (62)를 공통으로 제어한다.
이와같은 목적에서, 각 프로세서 (11-1n) 의 로컬버스(local bus) (21-2n) 가 버스셀럭터(bus selector) (3)에 접속되어있다. 이 버스셀럭터(3)는 로컬버스, (21-2n)중 어느하나를 선택하여 공통버스(common bus) (5)에 접속한다.
또 장치(61)과 (62)가 그 공통버스(5)에 공통으로 접속되어있고 그 버스셀렉터(3)는 버스콘트롤러(bus controller) (4)의 제어신호에 의해 세어된다.
좀더 구체적으로 말하면, 그 버스콘트롤러(4)가 각 프로세서(11-1n)로부터 버스요구신호(bus request signal) (REQl-REQn)중 어느 신호하나를 수신한 경우 그 버스콘트롤러(4)는 이 버스요구신호를 식별하여 로컬 중 어느 로컬버스를 그 공통버스(5)에 접속시켜야하는지를 확인하고 제어신호를 그 버스셀럭터 로 한다.
프로세서(11)가 버스요구신호 REQ1를 출력하면은 버스콘트롤러(4)는 버스셀럭터(3)를 제어 버스(21)를 공통버스(5)에 접속시킨다.
그결과 프로세서(11)은 그 공통장치(61) 및 (62)와 통할 수 있게 된다. 다른한편, 일반적으로 한대의 프로세서만을 가진 자립시스템(stand alone system)에서는 장치측에서 프로세서에 대하여 긴급처리요구를 할때가 가끔있다.
이와같은 긴급처리요구(emergency processing request)는 외부신호로부터 타이밍(timing)이 발생하여 프로세서에 입력될때, 또는 작업완료(completion of job), 데이터만재(fullness of the data), 데이터엠프티(empty of the data)등 장치에 대한 상태변화신호(status changing signal)의 발생이 있을때이다.
상기 자립시스템에서는 인터럽트번호를 장치로부터의 요구의 각 요인별로 설정하며 인터럽트신호가 프로세성 입력되면은 해당인터럽트 번호를 인식하고 대응하는 인터럽트처리를 실행하게 딘다.
이와같은 인터럽트 각장치(device)단위로 행하며, 필요한 인터럽트 번호의 수는 인터럽트를 필요로하는 장치의 수와 같게 된다.
제 1 도에 나타낸 멀티프로세서 시스템에 있어서도 그 장치측에서 그 프로세서에 대하여 상기 자립시스템에서와 같은 동일한 방법으로 인터럽트요구를 할경우가 있으며 따라서 인터럽트 제어(interrupt control)를 필요로 하게 된다.
그러나, 멀티프로세서 시스템에는 복수대의 프로세서와 복수대의 장치(device)로 구성되어 있어 이들간의 많은 조합이 있게 된다.
이와같은 이유로, 그 멀티프로세서 시스템의 인터럽트제어는 상기 자립 시스템과 비교해서 상당히 복잡하다.
따라서, 이와같이 복잡한 처리를 하지 않을경우 그 장치(device)로부터의 해당프로세서에 대한 인터럽트요구를 처리할수 없게 된다.
좀더 구체적으로 말하면, 인터럽트요구가 있는 장치(device)의 대수를 m대라고할때 m개의 인터럽트 요구를 n대의 프로세서중 어느 프로세서에 요구할건가를 판단할 필요가 있다.
앞에서 설명한 이유로해서, 종래의 멀티프로세서 시스템은 다음과 같은 방법을 채택하였다.
즉, 장치(device)의 인터럽트요구에 대처하는 방법으로는 인터럽트 상태신호(interrupt status signal)를 공통버스(5)로 출력시켜 모든 프로세서(11-1n)가 항상 정기적으로프로그램(program)에 의해 그 인터럽트상태신호를 스캔(scan)하여 인터럽트요구의 발생을 인식하는 방법과, 또 다른 방법으로는 인터럽트를 요구하는 한장치 또는 여러장치(device)를 각 프로세서 (11-1n)가 공통으로 제어할 수 있는 장치로 구성하지 않고 인터럽트 시킬 프로세서의 로컬버스에 접속하며 그 프로세서의 전용장치(dedicated device)로서 사용하므로서 자립시스템에서와 같은 동일한 인터럽트 제어방법을 사용하는 방법이다.
앞서 설명한 바와같이 종래의 멀티프로세서 시스템에 의하면 한장치에서 여러프로세서중 어느하나의 프로세서에 대하여 인터럽트요구를 할 경우 인터럽트를 인식할 수있도록 각 프로세서마다 프로그램에 의한 스캔(scan)을 실시하므로 인터럽트응답(interrupt response)이 저하된다. 또, 한 장치(a device)가 특정 프로세서에 의해 전용할 경우 일체의 다른 프로세서는 그 장치(device)를 제어할 수 없다.
더 나아가서, 한 장치(a device)가 다수의 프로세서중 어느하나의 프로세서에 의해 전용될 경우 전용되는 장치의 수가 그장치를 필요로하는 프로세서의 수만큼 되어야 한다. 따라서 이 시스템은 극히 고가로 되는 등의 결점이 있었다.
이 발명은 상기와 같은 종래의 결함을 해소하기 위한 것으로서 본 발명은 각장치(devices)에 의해 인터럽트 프로세서에 관한 데이터를 데이터 기억수단(date storing means)에 기억하고, 그 장치들중 어느하나의 장치에서 인터럽트요구가 발생될때 그 해당프로세서에 대한 인터럽트제어를 기억데이터에 기준하여 실행하도록 구성한 것이다
좀더 구체화하면 그 데이터기억수단은 복수대의 장치(device)중 어느 하나의 장치에 의하여 인터럽트 되어야할 하나의 프로세서를 지정하기 위한 종착테이터(destination date)를 기억한다. 어느 장치로부터의 인터럽트 요구에 응답하여 그 데이터기억수단에서 종착데이터를 판독하여 그 수신지에 해당되는 프로세서를 인식하고 따라서 이 인식결과에 따라 해당 프로세서에 대하여 인터럽트 제어를 실행하게 되는 것이다.
인터럽트제어를 받은 그 프로세서로부터의 버스요구신호에 의하여 버스선택수단은 그 프로세서의 로컬버스를 복수대의 장치(device)에 접속된 공통버스(common bus 5) 로 절환하므로서 그 프로세서의 그 장치(device) 사이에는 버스선로가 설정된다.
본 발명에 의하며 인터럽트될 프로세서는 데이터기억수단에 기억된 종착데이터에의해 용이하게 지정할 수 있다. 따라서, 인터럽트처리는 복수대의 장치중 어느 하나의 장치에서 임의 프로세서로하여 실행할수 있고, 이들 두장치 사이의 통신도 비교적 간단한 구조로 달성될 수 있는 것이다. 좀더 구체적으로 말하면, 종래 기술에 있어서 각 프로세서가 그 자체에 대하여 인터럽트 요구가 있는 가를 판단하기 위하여 각 프로세서는 장치하나 또는 여러장치에서 공통버스를 통하여 출력된 인터럽트 상태신호를 항상 스캔하여(scan) 인터럽트의 발생을 인식하는 복잡한 처리가 불필요하게 된다. 부가하여 종착데이터의 변경으로 한장치가 인터럽트를 필요로하는 수신지에 해당하는 프로세서를 용이하게 변경시킬 수도 있다.
또한, 본 발명에 의하면 예를 들어 하나의 장치에서 2대의 프로세서로 인터럽트를 실행하는 것은 종착데이터를 기준하여 극히 용이하게 달성될 수 있는 것이다.
본 발명의 한 실시예에 의하면 제 1 단계로서 각 장치(device)가 각 프로세서의 인터럽트허용을 나타내는 인터럽틀 허용신호(interrupt permitting signal)를 각 장치(device)에 공통으로 입력시킬 경우 그 장치들(devices)중 어느 한 장치는 어드레스신호(address signal)로서 고유장치번호신호(inher ent device number signal)를 기억수단으로 출력하게 되며 따라서 그 기억수단은 그 장치(device)가 인터럽트를 필요로하는 프로세서의 종착데이터를 판독하게 된다. 그 다음 제2단계에서는 인터럽트 지령신호(interrupt instruction signal)가 종착데이터에 기준하여 발생하며 인터럽트신호가 그 인터럽트지령신호와 그 인터럽트데이터에 입각한 해당프로세서에 입력된다. 인터럽트 신호를 입력한 프로세서는 버스요구신호를 발생하며 이 버스요구신호에 따라 버스콘트롤러(7)는 버스선택신호를 발생하게 된다. 해당프로세서의 로컬버스는 그 버스선택신호에 응답하여 공통버스에 공통으로 접속한다.
따라서, 상기 제 2 단계의 동작이 여러대의 프로세서에 의하여 반복될때 모든 장치(devices)에서의 인터럽트 요구에 따라 각 프로세서에 대한 인터럽트제어가 가능하게 되는 것이다. 그러므로 본 발명의 주목적은 다중장치(device)중 어느 한 장치에서 다중 프로세서(processor)중 어느 한 프로세서에 대하여 인터럽트제어가 가능한 염가의 효율적인 멀티프로세서시스템(multiprocessor system)을 제공하는데 있다.
본 발명의 다른 목적이나 특징 및 장점은 첨부도면에 따른 본 발명의 하기 상세한 설명에서 더욱 명백하게 밝히기로 한다.
제 2 도는 본 발명이 한 실시예의 개략 블록도이다.
제 2 도에 의해 본 발명의 한 실시예의 개략적인 구조를 설명한다.
제 2 도에서와 같이 다중프로세서(processor) (11-1n)와 버스셀렉터(3)는 제 1 도에서와 동일하다. 다중장치(device) (61-6m)는 공통버스(common bus) (5)에 접속되어있고, 또 인터럽트콘트롤러(interrupt controler) (8)가 장치 (61-6m)에서의 요구에 따라 프로세서(11-1n)중 어느 하나의 프로세서로 인터럽트신호(interrupt signal)를 입력하도록 구성되어있다. 그 인터럽트콘트롤러(8)에는 장치 (61-6m)중 어느 한 장치에서 인터럽트요구를 입력하면 어느 프로세서로 인터럽트신호를 출력할것인가를 나타내는 데이터가 기억된 RAM(Random Access Memory) (85)이 포함되어 있으며 그 공통버스(5)는 그 인터럽트콘트롤러(8)에 접속되어 있다. 그 인터럽트콘트롤로(8)는 공통버스(5)를 통하여 각 장치 (61-6m)로 인터럽트허용신호를 출력한다. 장치(device)중 어느 한 장치가 그 프로세서중 어느 한 프로세서를 인터럽트시킬때 해당장치를 나타내는 장치번호데이터(device number date)는 인터럽트신호로서 공통버스(5)를 통하여 인터럽트콘트롤러(8)에 입력된다. 그 인터럽트콘트롤러(8)는 RAM(85)에 기억된 데이터에 의해 인터럽트될 프로세서를 인식하고 이프로세서로 인터럽트신호 ITR을 출력한다. 버스요구신호, 예로서 「L」레벨의 신호가 프로세서 (11-1n)중 어느한 프로세서에서 버스콘트롤러(bus controller) (7)에 입력될 경우 그 버스콘트롤러(7)는 인터럽트콘트롤러(8)에 버스교신신호(bus busy signal)를 출력하므로서 장치(61-6m)로부터의 인터럽트요구를 금지한다.
제 3 도는 제 2 도에 나타낸 버스콘트롤러(7)의 상세한 블록도이다.
제 3 도에 따라 버스콘트롤러(7)의 특정구조를 설명한다. 프로세서(11-1n)에서 출력된 「L」레벨의 버스요구신호 REQL-REQn은 NOT 회로(71)에 입력된다. 이 NOT 회로(71)는 버스요구신호가 입력되는 동시에 「L」레벨의 버스교신신호가 출력되도록 구성되며 예를들면 게이트회로를 조합하여 구성한다. 또, 버스요구신호 REQL-REQn은또한 게이트회로(721-72n)를 통하여 엔코우더(encoder) (73)에 입력된다. 이 엔코우더(73)는 가장 우선 순위가 높은 프로세서의 번호를 부호화한 우선 순위 엔코우더(priority encoder)를 포함하며 그 버스요구신호 REQL-REQn에 응답하여 부호화된 출력을 그 출력단자에서 출력한다. 좀더 구체적으로 설명하면, 4대의 프로세서를 구비하여 그 우선 순위를 부여하여 프로세서(11)를 최우선순위로 프로세서, (12)를 제 2 의 우선순위로 프로세서, (13)를 제 3의 우선 순위로 프로세서, (14)를 최저의 우선 순위로 하였다고 가정한다.
우선 순위가 높은 3대의 프로세서(11-13n)가 동시에 버스요구신호 (REQL-REQn)를 각각을 출력할 경우 코우드(code) "1" 엔코우터(73)에서 순이진수(pure binary number)의 방식으로 출력되어 디코우더(decoder) (74)에 입력된다. 그리고 "1"과 같은 코우드신호를 디코우더(74)의 출력단자에서 출력하며 이 디코우더(74)의 각 출력신호는 해당 각 프로세서 (11-1n)에 설치된 플립-플롭(flip-flops) (761-76n)의 세트입력단자에 입력된다.
플립-플롭(761-76n)의 리세트입력단자에는 버스요구신호를 전환하는 인버터(inverter) (751-75n)에서 신호를 공급하며, 따라서 각 플립-플롭(761-76n)는 디코우더(74)의 출력신호에 의하여 각각 세트되고 버스요구신호 REQL-REQn가 철회되거나 버스요구신호의 레벨이 「H」레벨이 될때 리세트된다.
플립-플롭(761-76n)의 각 출력신호는 로컬버스(21-2n)를 선택하는 선택신호로서 버스셀렉터(3)에 입력된다. 제로(zero) 검출회로(17)에서는 엔코우더(73)의 출력내용이 모두 "0"인 것을 검출한다.
즉, 상기 제로검출회로(77)는 모든 프로세서 (11-1n)로부터도 전혀 버스요구신호가 버스콘트롤러(7)에 입력되지 않았다는 것을 검출하다.
상기 제로검출회로(77)에서 출력된 제로검출신호가 플립-플롭(781-78n)의 세트입력단자에 입력된다. 또, 디코우더(74)에서 출력신호가 플립-플롭(781-78n)의 리세트입력단자에 입력된다. 그리고 플립-플롭(781-78n)의 출력신호는 위에서 설명한 게이트회로 (721-72n)에 입력된다.
상기 제로검출회로(77)와 플립-플롭(781-78n)이 구성되어있는 이유는 프로세서(11-1n)의 우선 순위를 미리 정하였기 때문에 낮은 우선 순위의 프로세서로부터 버스요구를 받아들일수 없는 상태를 제거시키는데 있다.
좀더 구체화하면, 프로세서(11) (12) 및 (13)이 동시에 버스요구신호를 출력한 다음 프로세서(14)가 버스요구신호를 출력하고 그때 프로세서(11)는 공통버스(5)의 사용을 완료한 후 일단 다시 버스요구신호를 출력하였다고 가정한다.
이와같은 경우, 그 프로세서(12) (13)가 공통버스(5)의 사용을 종료할때 프로세서(11)의 2차버스요구신호와 프로세서(14)의 1차 버스요구신호를 출력하면 우선 순위에 비추어볼때 프로세서(14)가 실제로 처음 버스요구신호를 출력하였다 하더라고 공통버스(5)를 프로세서(11)가 우선적으로 점유하게 될 것이다. 그 다음, 요구신호가 출력되지 않을 경우 제로검출회로(77)는 플립-플롭(781-78n)을 세트하는 제로신호를 검출한다. 플립-플롭(781-78n)이 세트될때 각 게이트회로(721-72n)는 개로되므로서 버스요구신호 REQL-REQn가 엔코우더(73)에 입력된다. 예로서, 프로세서(11)에서 버스요구신호가 입력될때 그 플립-플롭(781)은 디코우더(74)의 출력에 의해 리세트되고 그 대응되는 게이트회로(721)가 폐로된다.
따라서, 다른 버스요구신호 REQL-REQn가 출력되는 한 최우선순위 프로세서(11)의 버스요구 신호 REQL를 받아들이지 않는다.
제 4 도는 제 2 도에 나타낸 바와같이 인터럽트 콘트롤러(8)를 구체화한 블록도이며, 제 5 도는 제 4 도에 나타낸 ROM(Read Only Memory) (89)에 기억된 데이터를 나타낸 도표이고, 제 6 도는 제 4 도에 나타낸 RAM(85)에 기억된 데이터를 나타낸 도표이다.
제 4 도에 나타낸 인터럽트콘트롤러(8)는 제 1 단계(1)과 제 2 단계(2)의 n반복으로 구성된 마이크로프로그램(microprogram)에 의해 인터럽트 처리를 실행한다.
제 1 단계에서는 인터럽트허용신호(interrupt permittiong signal) ACX가 공통버스(5)를 통하여 각 장치(devices) (61-6m)에 출력되고, 장치번호 데이터(device number data)가 각 장치(61-6m)의 인터럽트 요구로서 되돌아오는가를 감지한다.
제 2 단계(2)에서는 RAM(85)에 기억된 내용을 각 장치(61-6m)의 장치번호데이터에 의해 판독하여, 인터럽트프로세서를 판정하여, 따라서 그 해당프로세서는 인터럽트처리를 실행한다.
따라서 그 해당프로세서는 인터럽트처리를 실행한다.
제 2 단계(2)의 동작을 각 프로세서에 대하여 반복한다.
이와같은 마이크로프로그램은 ROM(83)에 기억된다. 좀더 구체적으로 설명하면, ROM(83)은 제 5 도에 나타낸 저장장소구역(storage areas) (830-83n)을 포함하며 제 1 단계의 프로그램은 저장장소구역(830)에 기억되고, 제 2 단계의 프로그램은 저장장소구역(830-83n)에 기억된다.
제 1 단계의 프로그램은 어드레스(address)데이터 "0" 및 선택신호를 포함하고 있다.
제 2 단계의 프로그램에는 어드레스데이터(1-n), 선택신호 및 인터럽트지령신호(interrupt instruction signal)를 포함한다.
ROM(83)에서 각 단계의 프로그램을 순서적으로 판독하여 레지스터(resister) (84)에 기억시킨다. 그 레지스터(84)에 기억된 프로그램의 인터럽트 허용신호가 공통버스(5)를 통하여 각 장치(61-6m)에 입력된다. 그리고, 그 어드레스 데이터는 가산회로(82)에 입력되고, 선택신호는 멀티플렉서(multiplexer) (81)에 입력되며, 인터럽트 지령신호는 AND 게이트(881-88n)중 하나의 입력단자에 입력된다. 그 레지스터(84)의 인터럽트 허용신호가 각 장치(61-6m)에 입력될때 하나의 장치번호 데이터는 공통버스(5)를 통하여 여러장치중 어느 하나의 장치로부터의 레지스터(86)와 RAM(85)에 대한 인터럽트 요구신호로서 입력된다.
제 6 도에서와 같이, RAM(85)에는 어드레스(address) A~A+(m-1)는 각 장치(61-6m)에 대응하여 구성되어 있다.
즉, 각 어드레스에 대한 장치번호는 ITO-IT(m-1)이다. 1 비트 정장장소구역(one bit stroage area)이 각 프로세서(11-1n)에 대응하여 구성되어 있고, 인터럽트의 필요성 여부를 나타내는 데이터가 그속에 기억되어 있다. 좀더 구체적으로 말하면 인터럽트가 필요할때 논리(logic) "1"이 기억되고 인터럽트가 불필요한 경우에는 논리 "0"이 기억된다. 따라서, 장치번호 데이터가 어느 장치(devices)로부터 RAM(85)에 어드레스 신호로서 입력될때 해당 프로세서 번호데이터가 어드레스신호에 대응되는 RAM(85)의 저장장소 구역에서 판독되어 레지스터(87)에 기억된다. 그 레지스터(87)는 각 프로세서에 대응하는 종착데이터를 출력하여 AND 게이트(881-88n)와 멀티플렉서(multiplexer) (81)의 각 입력단자에 입력시킨다.
제 3 도에 표시한 바와같이, 버스콘트롤러(7)에서 그 버스교신신호(bus busy signal)가 상기 멀티플렉서(81)로 입력된다. 프로세서(11-1n)가 버스콘트롤러(7)에 버스요구신호를 출력할때 그 버스교신신호가 멀티플렉서(81)에 의한 프로세서 번호데이터의 선택을 금지시킨다.
상기 멀티플렉서(81)는 상기 레지스ㅌ(84)의 선택신호를 기준한 프로세서 번호데이터를 차례로 선택하여 그 프로세서 번호데이터 중에는 "1"이 있으면 가산회로 (82)에 +1 신호를 입력한다. 그 가산회로(82)는 레지스터(84)로부터의 어드레스데이터에 +1를 가산하고 ROM(83)에 어드레서신호로서 가산결과를 입력한다. 위에서 설명한 AND 게이트(881-88n)가 레지스터(87)로부터 그 프로세서 번호데이터와 레지스터(84)로부터 인터럽트지령을 입력하면은 그 AND 게이트(881-88n)는 인터럽트신호 ITRl-ITRn를 해당 프로세서로 출력한다. 레지스터(86)는 그 장치 번호데이터를 기억하고 공통버스(5)에도 그 데이터를 출력한다.
제 7 도는 제 2 도에 표시한 버스셀렉터(3)를 구체호한 블록도이다. 그 버스셀렉터(3)에는 각 프로세서(11-1n)에 대응하는 셀렉터(31-3n)가 있고, 로컬버스(21-2n)가 각 셀렉터(31-3n)에 접속되며 버스콘트롤러(7)에서 선택신호(1-n)가 셀렉터(31-3n)에 각각 입력된다. 그리고 셀렉터(31-3n)로부터의 출력은 공통버스(5)에 공통으로 접속되어있다.
제 8 도는 본 발명의 1 실시예의 동작을 설명하는 플로챠트이다.
제 2 도 내지 제 8 도에 의해 본 발명의 1 실시예의 구체적인 동작을 설명한다. 초기상태에서는 제 1 단계의 프로그램이 ROM(83)에서 판독되어 레지스터(84)에 기억된다. 그리고 인터럽트 허용신호가 레지스터(84)로부터 공통버스(5)를 통하여 각 장치(61-6m)에 입력된다. 각 인터럽트신호에 의해 각 장치(61-6m)에 입력된다. 각 인터럽트신호에 의해 각 장치(61-6m)는 인터럽트허용을 인식한 다음 예로서 장치(61)는 공통버스(5)로 인터럽트 요구신호로서 장치번호 데이터 ITO를 출력한다. 그 장치번호 데이터 ITO는 레지스터(86)에 기억되는 동시에 어드레스신호로서 RAM(85)에 입력된다. 이와 상응하게 RAM(85)은 어드레스 A에서 장치(61)에 의해 인터럽트 시킬 수 있는 프로세서(11)를 나타낸 데이터를 출력한다. 이 데이터는 데이터를 기억하는 레지스터(87)에 입력된다. 따라서, 레지스터(87)의 일차비트(first bit)만이 논리 "1"이 된다. 이 신호는 AND 게이트(881)의 하나의 입력단자와 멀티플렉서(81)에 입력된다.
이때, 그 버스교신신호(bus busy siganl)는 프로세서(11)가 버스요구신호 REQ1를 출력하지 않으므로 「H」레벨이다.
이와같은 이유때문에 멀티플렉서(81)는 레지스터(87)에서 적어도 하나의 인터럽트가 요구되는 프로세서가 있음을 나타내는 데이터에 의해 +1 신호를 입력하여 가산되고 (82)에 +1 신호를 입력한다. 그 가산회로(82)는 레지스터(84)로부터의 어드레스 데이터에 +1를 가산하여 ROM(83)에 그 가산결과를 입력한다.
따라서, 다음 어드레스에 기억된 제 2 단계 프로그램은 ROM(83)에서 판독하여 레지스터(84)에 기억된다. 그리고, 레지스터(84)에서 인터럽트 지령신호는 AND 게이트(881-88n)에 입력된다.
이때 그 AND 게이트(881)가 개방되므로서 인터럽트신호 ITR1은 프로세서(11)에 입력되며 따라서 인터럽트 지령데이터는 AND 게이트(881)에만 입력된다. 그 프로세서(11)는 인터럽트신호 ITR1를 수신하여 버스요구신호 REQ1을 버스콘트롤러(7)에 출력한다.
제 3 도에서와 같이 그 버스콘트롤러(7)는 버스요구신호 REQ1에 의해 버스셀렉터(3)에 선택신호(1)을 입력한다. 그 버스셀렉터(3)는 제 7 도에서와 같이 선택신호(1)에 셀렉터(31)만이 응답할 수가 있는 것이다. 그 결과, 프로세서(11)의 로컬버스(21)은 공통버스(5)에 접속된다.
상기와 같이 버스셀렉터(3)와 버스콘트롤러(7)는 버스선택수단을 구성한다. 로컬버스(21)가 공통버스(5)에 접속되면 프로세서(11)은 레지스터(86)에 기억된 장치번호데이터 ITO를 판독(read)한다. 따라서, 프로세서(11)은 그 장치(61)에서 인터럽트요구가 요청되고 있는 것을 즉시 판단할 수 있다.
따라서, 그 프로세서(11)은 로컬버스(21)와 공통버스(5)를 통하여 장치(61)와 연통된다. 그 다음, 장치(62)에서 인터럽트 요구신호가 입력될때 앞서 설명한 일연의 작동을 반복한다. 이와 같은 동작을 모든 프로세서에 대하여 반복 실시한 다음 제 1 단계 순서로 되돌아 가게한다. 앞서 설명한 바와 같이, 본 발명의 1 실시예에 의해 각 장치(device)에 대응하여 인터럽트 되도록 요구되는 프로세서를 지정하는 데이터가 RAM(85)에 기억되어 장치의 인터럽트 요구 즉시 해당 데이터를 RAM(85)에서 판독되므로서 해당 프로세서에 대한 인터럽트처리(interrupt processing)를 하게 된다.
따라서 어떠한 수의 프로세서 및 장치라도 임의 조합시켜 인터럽트 처리를 할수가 있는 것이다. 인터럽트될 프로세서를 변경시키고자할 경우에는 RAM(85)의 내용만을 변경시킬 필요가 있을뿐이다.
본 발명은 도시하여 구체적으로 설명하였으나 여기에 한정되어있는 것은 아니며 본 발명의 범위와 그 기술적 요지는 청구범위에 의하여서 만이 한정된다.

Claims (6)

  1. 버스요구신호(REQ1-REQn)를 발생하는 복수대의 프로세서(11-1n)와, 상기 각 프로세서로 접속된 로컬버스(21-2n)와, 인터럽트신호(ITRl-ITRn)를 각각 발생하며, 상기 각 프로세서에 의해 공통으로 제어되는 복수대의 장치(61-6m)와, 상기 각 장치에 공통으로 접속된 공통버스(5)와, 상기 각 장치에 의해 인터럽트하도록 요구되는 상기 복수대의 프로세서중 적어도 하나의 프로세서를 지정하는 종착데이터(destinationdata)를 기억하는 RAM(85)과, 상기 장치로부터의 인터럽트요구에 응답하여 상기 RAM(85)으로부터 종착데이터를 판독하고 이 종착데이터에 의한 수신지의 프로세서를 인식하여 해당 프로세서에 인터럽트신호를 출력하는 인터럽트콘트롤러(8)와, 그리고 상기 인터럽트신호를 입력한 프로세서의 버스요구신호에 의해 상기 공통버스(5)에 해당프로세서의 로컬버스를 접속하는 버스선택수단(3) (7)로 구성된 것을 특징으로 하는 멀티프로세서시스템.
  2. 제 1 항에 있어서, 상기장치(61-6m)에는 서로 다른 장치번호(ITO-IT(m-1))가 각각 미리 설정되고, 이 장치번호를 기준으로 인터럽트신호를 출력하는 동시에, 이 장치번호에 대응하여 상기 RAM(85)에 저장장소구역이 설정되고 이 장치번호에 의한 종착데이터를 상기 저장장소구역에 기억시키는 구성으로 된 것을 특징으로 하는 멀티프로세서시스템.
  3. 제 1 항에 있어서, 상기 인터럽트콘트롤러(8)는 인터럽트허용신호(ACK)를 상기 장치에 출력하며 이 장치는 상기 인터럽트허용신호(ACK)에 응답하여 인터럽트신호를 출력하는 구성으로 된 것을 특징으로 하는 멀티프로세서시스템.
  4. 제 3 항에 있어서, 상기 인터럽트콘트롤러(8)는 RAM(85)에서 판독된 종착데이터에 의한 수신지프로세서에 인터럽트신호를 출력하는 구성으로 된것을 특징으로 하는 멀티프로세서시스템.
  5. 제 4 항에 있어서, 상기 인터럽트콘트롤러(8)는 상기 RAM(85)으로부터 종착데이터의 존재 또는 부재에 대한 인식에 대응하여 상기 인터럽트지령신호를 발생하도록 구성한 것을 특징으로 하는 멀티프로세서시스템.
  6. 제 1 항에 있어서, 상기 버스선택수단(3) (7)은 상기 프로세서(11-1n)의 버스요구신호(REQl-REQn)에 의해 버스선택신호를 발생하는 버스콘트롤러(7)와, 상기 버스선택신호에 대응하여 공통버스(5)에 해당하는 프로세서의 로컬버스를 접속하기 위한 버스셀렉터(3)로 구성된 것을 특징으로 하는 멀티프로세서시스템.
KR8202624A 1982-06-12 1982-06-12 멀티프로세서 시스템(multiprocessor system) KR880002100B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR8202624A KR880002100B1 (ko) 1982-06-12 1982-06-12 멀티프로세서 시스템(multiprocessor system)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR8202624A KR880002100B1 (ko) 1982-06-12 1982-06-12 멀티프로세서 시스템(multiprocessor system)

Publications (2)

Publication Number Publication Date
KR840000834A KR840000834A (ko) 1984-02-27
KR880002100B1 true KR880002100B1 (ko) 1988-10-15

Family

ID=19224901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR8202624A KR880002100B1 (ko) 1982-06-12 1982-06-12 멀티프로세서 시스템(multiprocessor system)

Country Status (1)

Country Link
KR (1) KR880002100B1 (ko)

Also Published As

Publication number Publication date
KR840000834A (ko) 1984-02-27

Similar Documents

Publication Publication Date Title
US4495569A (en) Interrupt control for multiprocessor system with storage data controlling processor interrupted by devices
KR900002581B1 (ko) 프로세서 선택 시스템
EP0099620B1 (en) Memory controller with data rotation arrangement
US6192442B1 (en) Interrupt controller
US3569938A (en) Storage manager
EP0242882A2 (en) Storage control method and apparatus
US3668651A (en) Working device code method of i/o control
US5146595A (en) Grouping device for forming input signals into groups
US6141713A (en) Bus arbitrator with a hierarchical control structure
US4591833A (en) Keyboard unit control system using block scanning techniques
US3680058A (en) Information processing system having free field storage for nested processes
US3290658A (en) Electronic computer with interrupt facility
GB2360612A (en) Interrupt controller with priority levels
US3710349A (en) Data transferring circuit arrangement for transferring data between memories of a computer system
US3226692A (en) Modular computer system
KR890015142A (ko) 다이렉트 메모리 액세스 제어장치
US5293591A (en) Processing system including memory selection of multiple memories and method in an interrupt environment
KR880002100B1 (ko) 멀티프로세서 시스템(multiprocessor system)
EP0118669B1 (en) Channel subsystem
US5668936A (en) Printer for exclusively selecting a host apparatus and a command system for use with the selected host apparatus
JPS6242306B2 (ko)
US4408271A (en) Circuit for implementing a digital computer instruction
US3544965A (en) Data processing system
US4969090A (en) Program routine vectoring circuit for selectively using either stored interupt instructions or incoming interupt handling instructions
CA1169157A (en) Communication multiplexer having an apparatus for establishing a single line priority