KR920006616B1 - 멀티프로세서 시스템장치 및 그 통신방법 - Google Patents

멀티프로세서 시스템장치 및 그 통신방법 Download PDF

Info

Publication number
KR920006616B1
KR920006616B1 KR1019860003591A KR860003591A KR920006616B1 KR 920006616 B1 KR920006616 B1 KR 920006616B1 KR 1019860003591 A KR1019860003591 A KR 1019860003591A KR 860003591 A KR860003591 A KR 860003591A KR 920006616 B1 KR920006616 B1 KR 920006616B1
Authority
KR
South Korea
Prior art keywords
processor
bus
mailbox
interrupt
state
Prior art date
Application number
KR1019860003591A
Other languages
English (en)
Other versions
KR860009352A (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 KR860009352A publication Critical patent/KR860009352A/ko
Application granted granted Critical
Publication of KR920006616B1 publication Critical patent/KR920006616B1/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
    • 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/167Interprocessor communication using a common memory, e.g. mailbox

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)
  • Computer And Data Communications (AREA)

Abstract

내용 없음.

Description

멀티프로세서 시스템장치 및 그 통신방법
제1도는 2개의 프로세서를 갖는 시스템으로 본 발명에 따른 전자자료처리 시스템(EDPS (Electronic Data Processing System)) 장치의 블럭도.
제2도는 공동자원의 정해진 기능(메일박스) 및 공동자원에 대한 록킹 레지스터의 정해진 기능에 특별한 메모리영역의 할당을 도시한 블럭도.
제3도는 제1도의 EDPS장치에 사용되고 통지 및 인터럽트신호를 발생하는 논리유닛의 제1실시예를 나타낸 회로도.
제4도는 제1도의 EDPS장치에 사용되고 통지 및 인터럽트신호를 발생하는 논리유닛의 제2실시예를 나타낸 회로도이다.
* 도면의 주요부분에 대한 부호의 설명
1 : 주프로세서 2 : 부프로세서
3 : 오실레이터 4 : 주메모리
5 : 부동점유닛 6 : 버스확장유닛
7,20 : 디코더 8,21 : 인터럽트 논리유닛
9 : ROM 10 : RAM
11,14,16,18 : 제어유닛 15 : 자기테이프유닛
17 : 프린터 19 : 자기디스크유닛
22 : 단방향채널 23 : 드라이버
25 : 트랜시버 27 : 통지논리유닛
40,41 : J-K플립플롭 ABUS1, ABUS2 : 어드레스버스
DATA BUS1, DATA BUS2 : 데이타버스 X1, X2 : 선택신호
BG : 버스인가신호
본 발명은 멀티프로세서(multiprocessor) 시스템장치 및 그 통신방법에 관한 것으로, 특히 프로세서간의 통신을 가능케 해주는 멀티프로세서 시스템장치 및 그 통신방법에 관한 것이다.
지금까지 여러가지 형태의 멀티프로세서 시스템장치가 제안되었다.
그중에 버스통신장치가 많이 사용되어 왔지만 그 특성상 복잡하고 원가가 높다.
상기 버스통신장치는 여러개의 프로세서가 시분할 액세스되는 통신버스를 통해서 하나 또는 그 이상의 메모리를 서로 연결시키도록 되어있다.
이러한 버스시템장치의 일례는 미국특허 제 4,404,628호에 예시되어있다.
통신버스는 하나 혹은 그 이상의 공통, 분할된 메모리 및 공통 주변유닛과 통신하기 위해서 각 프로세서를 동작시키는 리드로 구성하고 있다.
프로세서와 주변유닛간의 통신메카니즘은 일반적으로 주변유닛 선택형인 직접형이며 적절한 명령에 의하여 프로세서가 주변유닛을 선택하고 만일 프로세서가 이용가능한 상태라고 하면 적절한 명령을 주변장치에 전송하도록 되어있다.
따라서 프로세서는 주변유닛로 되는 마스터로써 동작하고 이 주변유닛는 슬래이브로써 응답하게 되어있다.
주변유닛은 인터럽트 메카니즘에 의하여 마스터프로세서와 통신을 시작하고, 시스템버스의 일부가 아닌 인터럽트 리드상에 인더럽트신호를 발생해 주게 된다.
잠시후 진행동작이 종결 혹은 중단되면서 인터럽트신호를 수신한 프로세서는 인터럽트의 이유 및 성격을 파악하기 위하여 인터럽트유닛에 적절한 명령을 테스트동작으로 부여함으로써 인터럽트상태를 조사하게 되어있다.
프로세서와 주변유닛간의 이러한 통신메카니즘은 효과적이긴 하지만 프로세서와 주변유닛 각각에 마스터 및 슬래이브의 역할에 대한 차이가 할당되는 문제점이 있다.
중앙처리유닛(CPU) 및 주변제어프로세서(또는 I/0프로세서)등의 프로세서 사이의 통신에 있어서 마스터로써 동일한 위치에서 동작하게 되는데 통신프로세에 포함되는 프로세서의 역활에 변화가 요구되지 않는 통신메카니즘이 우선적으로 사용된다.
사용된 통신방법은 메일박스(mailbox)를 통해서 진행되는 통신이다.
여러가지 프로세서에 의하여 액세스될 수 있는 분할된 메모리에 있어서 메모리영역 혹온 메일박스는 한정되어 있으며 각각은 프로세서에만 사용되고 또한 모든 프로세서에 대해서는 액세스 가능하다.
프로세서 B와 통신하려는 프로세서 A는 간단히 프로세서 B의 메일박스내에 메세지를 쓰게 되어있다.
메일박스내에 있는 메세지를 프로세서 B가 어떻게 알 수 있고 수신된 메세지를 프로세서 A가 어떻게 알수 있는가가 문제다.
종래의 기술에 있어서는 메일박스내의 내용을 주기적으로 파악하는 것으로는 폴링(polling)하는 방식이 있는데 구체적으로는 프로세서 B가 그 내에 번지가 지정된 메세지의 상태를 파악하기 위하여 주기적으로 메일박스의 내용을 읽어내게 되어있다.
마찬가지로 프로세서 A는 송신된 메세지를 지닌 메일박스로부터 그 내용을 판독하기 위하여 프로세서 B의 메일박스로부터 읽어내고 프로세서 A의 메일박스에 응답메세지의 상태를 주기적으로 파악하게 되어있다.
이러한 과정은 많은 시간을 요구하게 되고 다음과 같은 두가지 이유로 인해 시스템의 특성이 저하되게 되어있다.
먼저 첫번째는 각 프로세서가 폴링동작동안 할당된 시간만큼 소비해야만 하고, 두번째는 요구된 폴링동작이 메모리동작을 판독할때 공통버스를 차지하기 때문에 두개의 기본적인 공동자원가 메모리와 버스로 사용되어 다른 프로세서에 의해서 사용되지 못하게 된다는 점이다.
메세지유무를 신호화하는 과정은 인터럽트 메카니즘과 매우 유사하므로 메일박스를 통한 통신과정과 관련있다.
이러한 과정은 '통지과정'이라고 정의되고 있다.
전술한 미국특허 제 4,404,628호에서 이러한 통신방법을 밝히고 있다.
간단히 말하자면 프로세서 A는 메세지를 프로세서 B의 메일박스에 메세지를 기록한 후에 프로세서 B에 의하여 수신되고 기억된 통지신호를 발생하고 있다(예를들면, 플리플롭).
공통메모리와의 액세스를 제어할때 중앙제어기의 중간매체를 통과하더라도 동일한 "정교성(alterting)"접근은 US-A 348520호에 기록되어있다.
이렇게 프로세서 B는 번지가 지정된 메세지의 상태를 검증하기 위한 메모리 폴링동작에는 효가를 나타내지 못하고 있기 때문에 시스템의 공동자원을 사용하지 않고 통지하는 플립플롭장치를 주기적으로 파악해야만 한다.
메세지가 수신되었는지를 프로세서 A가 알기를 원한다면 다음 두가지 방식으로 가능할 수 있다.
즉 만약 프로세서 B의 메일박스가 판독되어지는가를 검증하기 위해 공통메모리를 데스트할 수 있고 아니면 기록하는 메일박스의 메카니즘으로 응답 메세지형태를 프로세서 B로부터 기대할 수 있으며 동시에 이미 서술한 것과 비슷하게 통지할 수 있다.
이상 두가지 경우에 있어서 공동자원(자원)에 대해서 하나 혹은 두개의 프로세서가 필요하게 된다.
고려될 또 다른점은 프로그램레벨시에 통지된 메세지에 대해 조정할때에 메일박스와 같은 분할된 자원데 대한 액세스(여러개의 프로세서에 의해 액세스 되는 경우)의 방해상태를 제거해야하는 문제점이 있다는 것이다.
멀티프로세서 시스템의 작업프로그램의 조정에 있어서 중단방식(Preemption) 동작이 종종 사용되고 있다.
통지동작을 참조해보면 중단방식동작의 개념은 프로세서 B에 의하여 프로세서 A의 메일박스에 기록된 메세지가 만일 수신프로세서가 송신프로세서 B에 의해 아직 고려되지 않고 있다면 소거될 수 있어 새로운 메세지로 대체될 수 있음을 의미하고 있다.
중단방식의 동작은 만약 몇몇의 프로그램의 전개시에 통지메세지의 주제를 미리 구성하고 있는 다른 프로그램대신에 어떤 동작을 우선적으로 수행하는 것을 순차적으로 검출한다는 편리함이 있다면 요구되어진다.
이러한 중단방식동작은 종래기술에 있어서 수신프로세서에 의하여 메세지가 고찰되지 않음을 검증하기 위하여 메일박스내에 이미 기록된 메세지를 읽도록 송신프로세서를 갖는 것으로서 제작되어, 메세지를 소거할수 있어 다른 메세지로 대체시키는 것이다.
이러한 검증동작을 수행하기 위하여 메모리로의 액세스가 다른 유닛로 하여금 할당된 자원(버스 및 메모리)을 사용하는 것을 방지하도록 한다는 사실이 명확하다.
방해동작에 대해서 공동자원데 대한 액세스의 방해방지에 관하여 일반적으로 채택되는 표현으로 테스트 및 세트명령의 사용을 포함하고 있다.
메모리지정 위치는 각 공동자원, 예를들면 메일박스와 결합되어 진다. 이러한 지정위치에 있는 2진 정보는 자원이 가용상태, 아니면 로크(불용)상태인가를 지시하는 것으로 기록된다.
메세지를 기록하기 위하여 자원(메일박스)을 액세스하기를 원하는 프로세서는 무엇보다 먼저 프로세서가 동시에 사용되지 않음을 검증해야만 한다.
이러한 목적을 위해서 자원을 액세스하기전에 자원과 결합된 메모리지정위치의 판독 및 기록동작을 분리하지 않고 실행하게 된다.
상기 동작을 통해서 로크상태의 자원정보를 기록 혹은 재기록한 후에 직접 지정위치의 미리 설정된 내용을 판독해낸다.
이와 같은 동작은 단지 실행될 수 있는 시스템중의 하나에 데스트 및 세트지시를 하는 곳에서만 가능하고 다른 유닛에 의해서 발생되는 공통지시를 막는 공동자원의 사용을 요구하게 된다.
상기와 같은 모든 메모리액세스동작은 비록 다른 이유에 기인한다고 할지라도 시스템 특성에 대한 큰 제한 및 절감의 원인이 될 수 있다.
이러한 제한성은 본 발명인 멀티프로세서 시스템장치에 의하여 해결될 수 있다.
상기 멀티프로세서 시스템장치에 있어서, 시스템버스는 물리적, 논리적으로 서로 연결가능하면서도 독립적인 두부분으로 분리되어있다.
시스템의 각 부분은 각각의 프로세서에 대해서 사용되는 논리적시스템버스를 포함하고 있고, 통지신호와 동일한 인터럽트신호는 자체 시스템버스를 통하여 판독 및 세트동작용 프로세서에 의해서 번지지정되고, 다른 프로세서의 시스템을 통해서 리세트동작용 프로세서에 의하여 번지지정될 수 있는 적어도 하나의 플립플롭으로써 각 프로세서에 발생되어지고, 이 인터럽트신호는 다른 2개의 버스를 결합시킴으로서 수신프로세서에 전달되어진다.
멀티프로세서 시스템의 구성은 2개의 개별시스템버스를 기본으로 하며, 버스로 서로 연결될 수 있으며 US-A-3940743에서 잘 알려져 있다.
그러나, 버스중 어느 하나에 결합된 하나의 프로세서와 다른 버스에 결합된 다른 프로세서 사이의 인터럽트신호의 전달은 양쪽버스들의 사용을 포함하고 있다.
그러므로, 레지스터수단에 버스가 마련되어도 하나의 프로세서의 버스와 액세스하는 일없이 다른 프로세서에 의해 프로세서중 어느 하나의 상태를 판독하는 것이 허락되며, 인터럽트 및 통지프로세서에 사용하는 공동자원의 문제점은 일부분만 극복되었다.
인터럽트 상태레지스터의 판독가능성의 동일개념은 WO-A-82/02442에 거론되어있다.
그러나, 이러한 경우에 이 시스템에는 인터럽트 상태레지스터의 판독 및 인터럽트 전달동작을 배제하면 버스의 사용을 요구하는 어떤 동작에 있어서 프로세서에 따른 피할 수 없는 것으로 하나의 버스가 마련되어있다.
반대로 이러한 구조에 의해 본 발명의 목적은 다음의 큰 잇점을 달성할 수 있다.
송신통지메세지의 상태를 확인하기 위해 어떤 메모리폴링동작이 피해지고, 공통메모리자원에 액세스를 가지지 않고서 단지 자체의 국부버스만을 사용하여 송신통지메세지의 상태를 각 프로세서가 알 수 있으며, 메일박스의 내용을 사전에 검증하지 않고서 새로운 메세지에 대한 중단방식 혹은 통지동작을 각 프로세서가 실행할 수 있고, 통지동작을 요구함이 없이 메세지 인식신호가 공급되어지며, 만약 요구된다면 테스트 및 세트동작의 실행을 요구함이 없이 방해문제가 해결되도록 되어있다.
다른말로 표현하면 공동자원의 사용은 시스템성능면에서 간단한 회로구성에 의하여 최소로 감소되게 된다.
첨부된 도면에 따라 설명하면 다음과 같다.
제1도는 본 발명에 따른 EDPS장치의 블럭도이다.
이러한 시스템은 중앙처리장치로써의 주프로세서(CPU)(1)와 주변제어장치로써의 부프로세서(I/OP)(2)를 지니고 있다.
바람직하게 프로세서는 예를들어 각각 모토롤라사의 68010 및 68000등으로 표시된 집적유닛(마이크로프로세서)로 구성된다.
주프로세서(1)에는 주프로세서용 시스템버스로 구성된 어드레스버스(ABUS1) 및 데이타버스(DATA BUS1)가 연결되어 있으며, 부프로세서(2)에는 부프로세서용 국부 버스로 구성된 어드레스버스(ABUS2) 및 데이타버스(DATA BUS2)가 연결되어있다.
오실레이터(3)는 두 프로세서와 다른 시스템유닛에 타임펄스(T)를 공급한다.
작업, 랜덤액세스 또는 주메모리(MM)(4)에는 데이타버스(DATA BUS1) 및 어드레스버스(ABUS1)가 연결되어 있으며, 주메모리(4), 부동점유닛(FPU)(5) 및 버스확장유닛(6)는 주변장치의 시스템버스에 연결되어 있는 바로 어드레스버스(ABUS1) 및 데이타버스(DATA BUS2)에 연결된다.
주메모리(4), 부동점유닛(5), 버스확장유닛(6) 및 다른 가능한 유닛의 선택은 적절한 어드레스코드로 시간신호 및 제어신호를 사용하는 주프로세서(1)에 의해서 가능하진다.
이러한 목적을 위해서 하나 혹은 그 이상의 프로그래머블어레이 로직으로 구성원 디코더(7)는 어드레스버스(ABUSl)에 연결된 입력을 가지고 있으며, 출력단에는 선택신호(S1,…,SN)단이 연결되 있다.
주프로세서(1)의 시스템버스에 연결된 유닛의 동작은 버스를 통해서 주프로세서(1)에 의해서 송신된 명령에 좌우된다.
주메모리(4), 부동점유닛(5) 및 버스확장유닛(6)와 같은 유닛은 주프로세서(1)에 대해서 인터럽트신호(INT)로 중재를 요청하게 되어있다.
이러한 인터럽트신호(INT)는 계층적인 우선권에 따라 주프로세서(1)에 대한 상호제한적인 통로에 전달시키는 인터럽트 논리유닛(8)에 의하여 모아진다.
인터럽트 논리유닛(8)는 주프로세서(1)로부터 인지신호를 수신하여 이러한 인지신호를 인터럽트장치에 송신한다.
주프로세서(1), 어드레스버스(ABUSl), 데이타버스(DATA BUS1), 오실레이터(3), 주메모리(4), 부동점유닛(5), 버스확장유닛(6), 디코더(7) 및 인터럽트 논리유닛(8)등은 종래의 장치에 따라 스스로 동작할수 있는 데이타 처리시스템을 구성하고 있다.
따라서 더 구체적인 설명은 요구되지 않는다.
부프로세서(2)는 어드레스버스(ABUS2) 및 데이타버스(DATA BUS2)로 구성된 입/출력버스를 제어한다.
여러 유닛가 부프로세서(2)의 입/출력단에 연결되어있다.
이러한 유닛로는 다음과 같다.
초기프로그램을 포함하도록 설계된 ROM(9), 작업메모리 또는 RAM(10), 통신라인(12)(13)용 제어유닛(11), 자기테이프유닛(15), 예를들어 "스트리머 테이프"용 제어유닛(14), 프린터(17)용 제어유닛(16), 자기 디스크유닛(19)용 제어유닛(18) 및 디코더(20)등이 바람직하게는 1 이상의 PAL을 출력선택명령(Z1,…,ZN)에 공급하고 입/출력버스에 연결되는 여러장치로 구성된다.
입/출력버스에 연결된 유닛의 작업은 버스를 통해서 부프로세서(2)에 의하여 송신된 명령에 따라 항상 종속되어진다.
제어유닛(11)(14)(16)(18)등은 제어프로세서인 부프로레서(2)의 중재를 요구할 수 있고 인더럽트신호를 통해서 시스템중앙처리장치로써 동작한다.
상기 신호(INT)는 인터럽트 논리유닛(21)에 의하여 수신되며, 상호제한된 방식으로 계층적인 우선권에 따라 부프로세서(2)에 전달하게 되어있다.
부프로세서(2), 어드레스버스(ABUS2), 데이타버스(DATA BUS2), 유닛(9)(10) (11)(12)(13)(14)(15)(16)(17)(18)(19)(20)등으로 종래 알려진 장치에 따라 스스로 동작할 수 있는 데이타처리시스템을 구성하게 되어있다.
본 발명에 따른 멀티프로세서 시스템장치의 특징을 상세히 설명해 보기로 한다.
본 발명에 따른 멀티프로세서 시스템장치는 앞서 설명했던 주프로세서(1) 및 부프로세서(2)의 상호접속 이러한 주,부프로세서(1)(2)간의 통신메카니즘으로 이루어진다.
어드레스버퍼(ABUS2)는 단방향채널(22)을 통해서 어드레스버스(ABUS1)에 연결되어 있고 선택신호(X1)에 의하여 동작이 시작되는 드라이버(23)가 이러한 어드레스버스(ABUS2)의 동작을 제어한다.
데이타버스(DATA BUS2)는 양방향채널(24)을 거쳐서 데이타버스(DATA BUS1)에 연결되어 있고, 선택명령(X2)에 의하여 이네이블되고 전달방향을 한정하며 논리레벨에 따라 명령(R/W)에 의해서 효과적인 신호전달을 할 수 있는 트랜시버(25)에 의해서 제어되도록 되어있다.
선택명령(X1)(X2)는 충돌해결유닛(26)을 통해서 간접적으로 발생되며, 반면에 명령(R/W)는 부프로세서(2)에 의해서 직접 발생되어진다.
따라서 드라이버(23) 및 트랜시버(25)를 제어하는 부프로세서(2)는 주프로세서(1)와 부프로세서(2)에 의하여 공동자원으로써 사용되는 주메모리(4)에 대한 번지지정 및 판독/기록동작을 위해서 시스템버스에 액세스동작을 부여하게 된다는 것은 명백하다.
시스템버스와 주메모리(4)로의 액세스동작시에 충돌현상 및 간섭현상을 해결해야되는 것은 필수적이다.
이러한 목적을 위해서 충돌해결유닛(26)는 부프로세서(2)로부터 버스 액세스요구신호(BR1)를 수신하도록되어 있으며, 가능한 다른 유닛로부터 버스액세스 요구신호(BR2,…,BRN)을 수신하도록 되어 있고, 시스템버스를 통해서 공통메모리를 액세스하게 되어있다.
버스액세스 요구신호(BR1)은 디코더(20)를 통해서 부프로세서(2)에서 발생되고, 이러한 버스액세스 요구신호(BR1)는 디코더(20)에서 주프로세서(1)의 입력신호(BR)으로 전달되어진다.
시장에서 존재하는 대부분의 마이크로컴퓨터, 특히 본 발명의 바람직한 실시예에서 사용되는 마이크로프로세서 68010은 이러한 목적을 위한 입력으로서 설치된다.
주프로세서(1)는 버스인가신호(BG)로 응답하고 실제적으로 동작종결시에 버스액세스를 허용하게 된다.
상기 버스인가신호(BG)는 충돌해결유닛(26)에 의하여 적절한 유닛 즉 논리우선에 따라 부프로세서(2)등에 발송되어진다.
충돌해결유닛(26)는 모트롤라사 68452의 집적회로로 구성되며, 신호 BG를 수신할 때에 클럭(T)에 의해서 시분할 되고, 버스가 실제로 사용되는 것을 검출한 후에 적절한 주프로세서(1)에 보내어지는 신호(BACK), 드라이버(23)에 대한 이네이블명령(X1), 그리고 트랜시버(25)에 대한 선택신호(X2)를 발생한다.
그래서 주프로세서(1) 및 부프로세서(2)는 시스템버스 및 주메모리(4)의 사용시에 시분할되게 되어있다.
반면에 주프로세서(1)는 부프로세서버스(즉, ABUS2 및 DATAT BUS2)의 사용을 시분할하지 않을뿐만아니라 상기 버스에 연결된 유닛를 제어할 수 없다.
전술한 주프로세서(1) 및 부프로세서(2) 사이의 통신에 대해서 이하 설명하기로 한다.
제2도를 보면 주메모리(4)는 두개의 메모리영역(30)(31)을 포함하고 있으며, 각각 메일박스 CPU 및 메일박스 I/OP로 불리우며, 통신수단으로써 사용되어 진다.
메모리위치(32)(33) 각각은 메모리영역(30)(31)과 결합되어 있으며 이러한 메모리위치(32)(33)의 내용은 이러한 메일박스 CPU와 메일박스 I/OP의 상태(STATUS)를 한정한다.
상기 메모리위치(32)(33)에서 최소비트 'L'은 로크비트에 포함된 로직레벨비트로 한정되어 있고, 만약 결합된 자원, 즉 메일박스가 이용가능한 상태이거나 또는 그렇지 않으면, 즉, 프로세서가 메일박스에서 판독/기록동작을 실행하지 못하거나 또는 프로세서가 이미 동일한 메모리영역에서 동작을 실시한다면, 다른 프로세서가 메일박스내의 내용을 수정하거나 방해하지 못하도록 되어있다.
부프로세서(2)가 주프로세서(1)와 통신을 원할때 메모리위치(32)를 개별적인 판독/기록 동작, "테스트 및 세트"동작으로 테스트하므로 비트 L이 논리레벨 1로 기억되어 진다.
그러나 만약 판독동작을 거쳐서 부프로세서(2)가 L이 사전에 논리레벨 1이라고 검출한다면, 자원이 필요치않게 되고 메일박스 CPU상에 어떤 더이상의 동작이 부여되지 않게된다.
반면에 L=0이라고 검색되어지면, L을 1로 상승시켜 자원을 로크시키고 부프로세서(2)는 주프로세서(1)에 메세지를 기록함으로써 메일박스 CPU의 위치가 번지지정(어드레스)되게 된다.
이상과 같은 동작을 종결할싱 로크비트 L을 논리레벨 0으로 강하시킴으로써 부프로세서(2)는 주프로세서(1)에 의해서 형성된 판독/기록 동작에 대해서 사용될 자원을 만들어준다.
비슷한 동작이 번지지정된 메세지를 판독/삭제하기 위하여 주프로세서(1)에 의해서 실행되어지고 부프로세서(2)가 메일박스 I/OP(31)에 메세지를 기록하게 된다.
주메모리(4)가 유닛에 수동적일때, 주프로세서(1) 및 부프로세서(2)는 만약 주프로세서(1)와 부프로세서(2)내에 번지지정된 메세지가 단지 메모리 '폴링'동작 즉, 메모리(4) 및 시스템버스 록킹에 의한 주기적인 테스트를 통해서만 존재하는지를 검증할 수 있으므로 다른 동작의 실행을 방해하게 된다.
이러한 결정을 극복하기 위해서 본 발명에 따라서 직접 프로세서 통지하드웨어가 통지된 프로세서 및 통지하는 프로세서에 의하여 그 상태가 검색될 수 있도록 되어있다.
통지하는 프로세서에 의해서 그 상태의 검색뿐만 아니라 통지하드웨어의 세트 및 그것의 리세트는 국부버스 즉, CPU(1)에 대한 시스템버스 및 I/OP 프로세서에 대한 I/O 버스의 제한된 사용을 요구하므로 시스템레벨로 동작하는 것을 방해하지 않고 단지 중앙처리 혹은 입/출력과 같은 국부적인 레벨동작시에만 방해하게 된다.
제1도에서 보면 통지하는 하드웨어는 통지논리유닛(27)로 구성되어 있으며, 이러한 통지는 통지논리유닛(27)는 양방향채널(28)(29)를 통해서 데이타버스(DATA BUS1)(DTAT BUS2)에 선택적으로 연결되어 있다.
통지논리유닛(27)는 디코더(7)(20)로부터 출력되는 선택신호(S1)(S2)(S3)(Z1)(Z2)(Z3)에 의하여 제어되고, 인터럽트 논리유닛(21)(8)에 각각 송신되는 두가지의 통지 혹은 인터럽트 신호(NOTIFY)(INTIOP)를 발생하게 된다.
제3도는 통지논리유닛(27)에 대한 상세한 도면이다.
이러한 통지논리유닛(27)는 두개의 J-K플립플롭(40)(41) 및 두개의 트리스테이트 드라이버(42)(43)로 구성되어있다.
J-K플립플롭(40)은 그 세트입력시에 디코더(20)로부더 출력되는 선택신호(X1)을 수신하게 되고, 이러한 신호에 의해 세트된다.
J-K플립플롭(40)의 직접출력(Q)시에 인터럽트신호(INTIOP)는 발생되어지고 이러한 신호는 제1도에 도시된 주프로세서(1)의 인터럽트 논리유닛(8)에 송신된다.
J-K플립플롭(40)의 직접출력(Q)은 드라이버(42)의 입력단에 연결되어 있으며, 이러한 드라이머(42)의 출력은 버스(29)를 통해서(이 경우에 하나의 리드만으로 이루어져 있다) 데이타버스(DATA BUS2)에 연결되어있다.
드라이버(42)는 디코더(20)으로부터 출력되는 선택신호(Z3)에 의하여 이네이블 된다.
J-K플립플롭(40)의 J-K입력은 항상 논리레벨 "0" 및 "1"로 각각 유지되게 되어있고, 클럭신호의 수신을 위해서 상기 J-K플립플롭(40)의 입력 CK는 리세트된다.
J-K플립플롭(40)의 클럭입력은 디코더(20)에서 출력된 선택신호(S2)를 수신한다.
마찬가지로 J-K플립플롭(41)은 세트입력시에 디코더(7)에서 출력된 세트신호(S1)를 수신하고 동시에 디코더(20)에서 출력된 리세트신호(Z2)를 클럭입력 CK단으로 받는다.
J-K플립플롭(41)의 출력 Q는 드라이버(43) 및 버스(28)(이 경우에 하나의 리드만으로 이루어져 있다)를 통해서 데이타버스(DATA BUS1)에 연결되어진다.
드라이버(43)은 디코더(7)에서 출력된 신호(S3)에 의하여 이네이블된다. J-K플립플롭(41)의 출력 Q는 리드(44)를 통해서 인터럽트 논리유닛(21)의 입력에 연결되어있다.
J-K플립플롭(41)이 인터럽트를 설정할때 통지신호(NOTIFY)가 리드(44)를 통해서 인터럽트 논리유닛(21)에 송신되고 이러한 신호는 부프로세서(2)에 전송되게 된다.
통지논리유닛(27)과 두개의 프로세서시스템의 동잘은 매우 단순하다.
부프로세서(2)가 주프로세서(1)에 메세지를 송신하기를 원할때 혹은 처리(예를들어 연산처리)를 실행하기 위해서 주프로세서(1)와 통신하기를 원할때 부프로세서(2)는 다음과 같은 동작순서로 실행되어진다.
1) 테스트 및 세트동작을 통해서 메일박스 CPU(1)가 유효상태(로크비트=0)인가를 검증하고 만약 유효상태라면 자원을 설정해둔다.
2) 메일박스 CPU(1)에 메세지를 기록한다.
3) 로크비트를 리세트시킴으로써 메일박스 CPU를 유효상태로 만든다.
상기 동작과정(1)(2)(3)은 주프로세서(1)의 버스 및 주메모리(4)에 액세스를 요구하고 일시적으로 전체시스템 버스와 공동자원 주메모리(4)를 로크하게 된다.
4) 디코더(20)에 의해서 복호화될때 신호(Z1)를 발생하고 적절한 어드레스코드를 어드레스버스(ABUS2)상에 발생시킴으로써 J-K플립플롭(40)을 세트상태로 만든다.
그러므로 인터럽트신호(INTIOP)가 발생되고, 발생된 이 신호는 인터럽트 논리유닛(26)를 통해서 서술된 우선에 따라 미리 설정된 우선 레벨(PL)을 가지는 인터럽트 코드로써 주프로세서(1)에 전달되어진다(제1도참조).
이러한 동작은 단지 입/출려버스의 필요로하고 주프로세서(l)의 버스 및 주메모리 공동자원은 사용치 않는다.
이에 인터럽트된 주프로세서(1)는 인터럽트 우선 레벨보다 더 높은 우선 레벨을 지닌 모든 동작을 실행하고 이러한 주프로세서(1)는 인터럽트를 고려하여 다음 동작순서를 포함한 인터럽트 조정처리를 실행하게 된다.
5) 테스트 및 세트동작을 통하여 메일박스 CPU(1)가 유효상태(로크비트=0)인가를 검증하면 만약 실제로 유효하면 공동자원을 로크시킨다.
6) 메일박스 CPU(1)로부터 메세지를 판독한다.
7) 메세지를 삭제한다.
8) 로크비트를 리세트함으로써 메일박스 CPU(1)를 유효상태로 만든다.
9) 디코더(7)로 복호화할때 신호(S2)를 발생시키고 적절한 어드레스코드를 어드레스버스(ABUS1)상에만 발생시켜 줌으로써 J-K플립플롭(40)을 리세트시켜준다.
10) 수시된 메세지에 포함된 정보 혹은 지시에 따라 동작한다.
전술한 모든 동작은 주프로세서(1)의 버스만을 사용하고 부프로세서(2)의 버스는 사용하지 않기 때문에 부프로세서(2)는 모든 자원가 부프로세서(2)의 버스에 연결되어 사용되는 다른 프로세서를 자체적으로 실행하게 되어 특히 부프로세서(2)는 주프로세서(1)에 다른 메세지를 보낼 수 있기 때문에 메일박스 CPU(1)가 유효상태인지 아닌지를 검증할 수 있다.
이러한 목적하에서 부프로세서(2)는 메모리 '폴링'동작을 실행할 수 없으므로 주프로세서(1) 및 메모리를 포함하고 있지만, 디코더(20)에 의해서 복호화되고 신호(Z3)를 발생시키는 어드레스코드를 어드레스버스(ABUS2)상에 발생시켜야만 된다.
상기 신호(Z3)는 게이트(42)를 동작가능상태로 만들어주고 데이타 버스(DATA BUS2)를 통해서 J-K플립플롭(40)를 판독상태로 만들어준다.
만약 J-K플립플롭(40)이 세트상태라면 인터럽트상태가 아직 고려되지 않거나 주프로세서(1)에 의한 메일박스의 판독이 아직 종결되지 않았음을 의미해준다.
다음에 만약 메일박스(30)의 판독이 실행되는지를 검증하기 위해서, 부프로세서(2)는 J-K플립플롭(40)의 상태를 결정하는 동작을 실행해야만 되며, 주프로세서(1)의 동작을 방해하는 일없이 부프로세서(2)버스의 사용만이 필요로 된다.
반면에 J-K플립플롭(40)이 리세트상태라면 인터럽트 상태는 확실히 고려된 적이 있음을 알게되고 메일박스는 판독되어 결국 새로운 메세지를 받아들일 수 있게 된다.
따라서 부프로세서(2)가 새로운 메세지를 기록하기 위하여 CPU(1)의 메일 박스를 액세스할 수 있어 '폴링'동작이 요구되지 않고 테스트 및 세트동작(동작과정(1))이 확실히 실행될 것임을 확인해준다.
다시 말하면 J-K 플립플롭(40)상태의 검증가능성은 부프로세서(2)에 여러가지 방향으로 사용될 수 있는 중요한 정보를 제공하게 된다.
무엇보다도 먼저 미리 수신된 메세지가 고찰되기 전에 메일박스가 새로운 메세지를 수신할 수 없는 규칙이 관련되어 있다면 테스트 및 세트동작과정(1)(5)은 불필요하게 됨을 알 수 있다.
그러므로 메일박스 및 통지(또는 인터럽트를 통해서 여러 프로세서들간의 통신 메카니즘은 프로세서가 분리될 수 없는 테스트 및 세트동작의 실행을 가능하게 하지 않는 시스템에 대해서 사용될 수 있다.
실제로 만약 J-K플립플롭(40)이 리세트상태가 된다면 부프로세서(2)는 주프로세서(1)가 어떤 통지 혹은 인터럽트 신호가 없이 빈 메일박스상태로 이유없이 동작이 이루어질때 유효한 메일박스를 찾을 것이다.
상기와 동일한 이유로 인터럽트 혹은 통지 메세지가 수신된 즉시 주프로세서(1)는 부프로세서(2)가 메일박스내에 이미 저장된 메세지를 고찰하기 전에 새로운 메세지를 다시 기록하기 위하여 메일박스를 액세스하지 않을 것이다.
이러한 관점에서 시스템의 성능은 매우 개선되어졌는데 그 이유는 J-K플립플롭(40)의 상태가 국부 버스레벨시에 자원의 사용을 요구하는 결과적인 어떤 동작(테스트와 세트동작 및 로크비트가 리세트상태가 됨)이 완전히 배제되기 때문이다.
다르게는 우선 메세지와 함께 메일박스내에 이미 저장된 메세지의 교환 즉 '중단방식'동작이 실행될 가능성이 있다.
에러발생요인이 없이 이러한 동작을 가능하게 하기 위해서는 주프로세서(1)가 인터럽트 상태를 조정하는 절차를 변형하기에 충분하므로 결국 이미 표현된 동작과정(9)은 동작과정(8)에 서술된 동작보다 선행되어 동작한다.
다른말로 표현하면 로크비트 L전에 주프로세서(1)는 J-K 플립플롭(40)을 리세트상태로 만든다.
만약 이러한 조건이 달성되어진다면 CPU(1)의 메일박스내에 메세지를 저장시키고 J-K플립플롭을 세트시키는 즉시, 부프로세서(2)가 주프로세서(1)의 버스와 메모리를 액세스시키지 않고 J-K플립플롭(40)의 폴링동작을 실행할 수 있음이 명확하다.
이미 전송된 메세지가 제거되고 다른 메세지로 교체될때 부프로세서(2)는 J-K플립플롭(40)의 상태를 테스트하게 된다.
만일 J-K플립플롭(40)이 리세트상태라면 메세지는 이미 주프로세서(1)에 의하여 고찰되어지고 메일박스CPU(1)는 이미 판독되었거나 아니면 판독이 진행될 것이다.
이러한 경우에 중단방식동작은 실행될 수 없고 메일박스 CPU(1)가 실제적으로 유효한 상태인가를 테스트한 후에 부프로세서(2)가 새로운 메세지를 그안에 저장할 수 있다.
반면에 J-K플립플롭(40)이 계속 세트상태라고하면 메세지는 아직 고찰되지 않고 있으며, 판독과정에 있게 된다.
로크비트상태는 다른 비트가 발생함을 지시한다. 따라서 부프로세서(2)는 테스트 및 세트동작을 통해서 로크비트상태를 점검할 수 있다.
만일 자원영역이 유효상태(L=0)라면 메세지는 메일박스내에 확실히 존재하며 어떤 판독도 이러한 상태를 증명키 위해 요구되지 않는다.
따라서 메세지는 새로운 메세지에 의하여 대체될 수 있다.
반면에 자원영역이 유효상태가 아니라면 주프로세서(1)에 의한 메세지는 판독과정중에 있으며, 중단방식동작은 가능치 않게 된다.
중단방식동작을 실행할 가능성은 공동자원을 사용하지 않고 즉 어떤 메모리폴링 동작없이 확인될 수 있음이 명확하다.
에러가능성이 없는 중단방식동작을 만들기 위해서 J-K플립플롭(40)은 로크비트 L전에 리세트되어야만 된다.
실제로 로크비트 L이 플립플롭(40)에 앞서 리세트상태가 되지 않아야만 된다. 따라서 이러한 두 동작은 동시에 발생할 수 있고 이러한 목적을 위해서 신호(S2)는 CPU(1)의 메일박스를 어드레스지정하고 어드레스코드를 복호화하므로서 리세트 혹은 기록명령으로부터 얻어진다.
다른말로 표현하면 디코더(7)는 (ABUS1)상에 존재하는 신호들에 덧붙여서 출력단에 실행될 동작형태를 표현하는 주프로세서(1)로부터 명령(R/W1)을 수신할 수 있다.
이러한 명령은 제1도 및 제2도에 도시되어 있다.
J-K플립플롭(40)에 관련되어 만들어진 전술한 고찰은 J-K플립플롭(41)에 대해서도 명백히 이용가능하고, 주프로세서(1)에 의하여 부프로세서(2)에 메세지를 통지하는 메카니즘이다.
제3도를 참고로 거론된 통지논리유닛(27)는 본 발명에 따라 편리한 구조로된 통지논리유닛로 구성되어있고 몇가지 변화가 본 발명의 범위에 벗어남이 없이 주어진다.
제4도는 다른 두 요인을 고려한 통지논리유닛(27)의 적절한 형태를 도시하고 있다.
인터럽트 통지메카니즘 자체가 프로그램번지를 지정하는 인터럽트를 공급하고 동시에 프로세서가 통지메세지에 의하여 요구된 형태에 따른 여러가지 다른 레벨로 인터럽트 통지신호를 공급하고 있다.
상기 두가지 개념은 제4도를 고찰하기 전에 명확하게 해둬야 된다.
인터럽트 신호에 대한 프로세서의 응답은 알려진 바와 같이 두 종류가 있는데 즉 인더럽트 조정이 두 가지 다른 방식으로 발생할 수 있다.
첫번째 방식으로는 '오토벡터(autovector)'조정으로써 정의되며 프로세서가 진행동작 및 진행프로그램을 정지시키고 적절한 시간에 인터럽트 프로그램을 재호출하기 위해서 필요한 정보의 세트를 세이브하고, 자체적인 방식으로 프로세서가 알고 있는 소정의 어드레스에서 시작되는 인터럽트 조정프로그램으로 점프하게 된다.
또 전술한 서술에 있어서는 이러한 종류의 인더럽트 조정으로 이루어졌었다. 오토벡터 조정이 매우 어렵고 그 조정은 일반적으로 길고 복잡한 프로그램을 요구하게 되고 이러한 프로그램의 일부는 특별한 이유로 인터럽트의 종류를 검색하는데 사용되어진다.
인터럽트 조정 혹은 프로그램의 할당에 있어서 매우 유용한 효과를 얻는 것은 인터럽트의 조정을 벡터방식으로 할 수 있다.
이러한 경우에 수신된 인터럽트가 고려될때 인터럽트된 프로세서는 인식 인터럽트로서 신호(INTACK)를 발생하고 벡터화된 코드를 통해서 정보화된 인터럽트유닛에서 이러한 상기 신호를 요구하게 되고, 인터럽트 조정프로그램의 어드레스에 대해서는 특별한 인더럽트동작이 사용되어져야만 된다. 이러한 인터럽트상태의 구별시에 다음 개념이 서술되어진다.
유닛은 완전히 다른 이유로 프로세서를 인터럽트할 수 있다.
예를들면 1세트 이상의 데이타와 같은 캐릭터가 전달(I/O전달 인터럽트로서 한정된 인터럽트)되어야만되기 때문에 필수적인 구별동작이 인터럽트 동작시에 송신되어야 되고 동시에 인터럽트동작의 송신시에는 프린터의 경우에는 인쇄 혹은 종이피드동작 및 디스크장치의 경우에는 트랙검색과 같은 어떤 동작이 종결됨을 신호와 해야만 되기 때문이다.
이러한 인터럽트의 마지막 종류로는 'I/O단말인터럽트'로써 나타내어져 있다.
다른 인더럽트의 요구가 다른 인터럽트신호를 발생시키거나 인터럽트벡터를 지닌 공통신호를 특성화시킴으로써 발생될 것이다. 대부분의 마이크로프로세서는 두가지 메카니즘에 따른 몇가지 인터럽트 동작을 취급하도륵 되어 있다.
이러한 프로세서중에는 알려진 시스템인 마이크로프로세서 68000 및 68010이 있다.
마이크로프로세서 68000(혹은 68010)은 세개의 비트인터럽트코드를 수신하기 위하여 세개의 입력(IPLEV)을 가지고 있고, 7가지의 다른 레벨로된 인터럽트 상태를 분별할 수 있고 세개의 출력(FCO)은 진행사이클 및 프로세서의 상태를 외향적으로 신호화하도록 되어 있다.
특히 세개의 출력이 논리레벨 1일때 진행사이클은 인터럽트 인식형태로 되어 있다.
논리적인 AND동작에 의하여 세개의 출력상에 인터럽트를 인식하게되는 신호(INTACK)가 발생될 수 있다.
마이크로프로세서 68000(또는 68010)은 또한 재생신호를 수신하는 입력(VPA(제1도에 도시됨)을 공급하고 이러한 입력(VPA)은 인터럽트 인식사이클 중에 논리레벨 0에서 인터럽트가 오토벡터형임을 나타내게 된다.
제4도는 그곳에 연결된 시스템 구성부와 함께 있는 통지논리유닛(27)의 바람직한 실시예를 구체적으로 나타내고 있다.
따라서 몇개의 버스(ABUS1), (DATA BUS1), (ABUS2), (DATA BUS2), 어드레스 디코더(7)(20) 및 인더럽트 논리유닛(8)(21)등이 표시되어 있다.
통지논리유닛(27)는 집적회로인 CIO회로(49), 입/출력제어기(49), 세개의 플립플롭(50)(51)(52) 및 두개의 드라이버게이트(53)(54)로 구성된다. CIO회로(49)는 자이로그사에서 제조되었으며 코드번호 Z8536으로 되어 있다.
상기 CIO회로(49)는 기본적으로 프로그래머블 타이밍카운터, 세개의 데이터 입/출력 게이트 세트 및 내부제어 레지스터도 구성된다.
그리고 자이로그사의 기술 매뉴울인 "Z8036-Z-CIO/Z8536-CIO/카운터타이머 및 병렬 I/O유닛"에 상세한 구성과 실행될 회로의 동작이 잘 표현되어 있기 때문에 구체적으로 고찰하지 않을 것이다.
그러나 상기 CIO회로(49)는 데이타 버스(DATA BUS1)와의 데이타교환을 위한 8비트 입/출력 양방향게이트(55)와, 기록명령(W), 판독명령(R), 선택명령(CSLCIO)을·각각 받아들이는 세개의 제어입력(56)(57)(58)과, 레지스터 선택신호(3입/출력 게이트 레지스터 및 제어레지스터)를 받아들이는 두개의 입력(A1)(A0)과 인터럽트신호(INT)를 출력시키는 하나의 터미날과 인터럽트 인식신호(INTACK)를 받아들이는 하나의 입력단등을 지니고 있다.
CIO회로(49)는 또한 외부와 통신하기 위해서 3개의 포트레지스터를 갖고 있다.
이러한 레지스터는 외부정보를 수신하거나 2진정보를 출력하기 위해서 제어될 수 있다.
몇몇의 레지스터 셀은 입/출력성분을 구성하기 위하여 각각 제어될 수 있다. 게다가 이러한 레지스터셀이 외부로부터 신호를 받아들이기 위해서 세트상태가 될때 미리 설정된 레벨로 신호를 수신하거나 아니면 신호변이(레벨 0에서 1, 레벨 1에서 0으로)를 받아들일때 CIO회로(49)가 인더럽트신호를 발생하도록 이러한 레지스터셀은 제어될 수 있다.
각 요소(입력셀)에 있어서 인터럽트 어드레스 "벡터"는 결합될 수 있으며 CIO회로(49)의 내부에 있는 제어레지스터에 저장되고 포트(55)를 통해서 판독될 수 있다.
본 발명의 목적에 대해서 제4도는 (61)∼(66)으로 표시된 6개의 셀이 부착된 CIO회로(49)를 나타내고 있다.
CIO회로(49)는 디코더(7)의 적절한 출력으로부터 선택신호(CSLCIO), 기록 명령(W) 및 판독명령(R)을 수신하게 된다.
그리고 선택입력(A0)(A1)은 어드레스버스(ABUS1)의 2개의 리드에 연결되어 있다.
따라서 CIO회로(49)는 기록동작(정보저장) 및 판독동작(게이트(55) 및 데이타버스(DATA BUS1)를 통해서 정보판독)을 형성하기 위하여 어드레스버스(ABUS1) 및 디코더(7)를 통해서 적절한 번지코드로써 번지가 지정될 수 있고 제어되어지는 동시에 적당한 방법으로 동작하기 위해서 미리 세트된다.
특히 CIO회로(49)는 셀(61)(63)(65)이 출력셀로써 그리고 셀(62)(64)(66)이 입력셀로써 동작하기 위해서 세트상태가 되고 셀(64)(66)에 신호 0에서 1로의 변이가 입력되면 인터럽트 신호가 발생된다.
미리 설정된 우선권을 지닌 두개의 다른 인터럽트벡터가 셀(64)(66)(PRIORITY ENCODED VECTOR모드)에 결합된다.
플립플롭(50)의 세트입력은 셀(61)의 출력에 연결되고 직접출력(Q)은 입력으로 작용하는 셀(62)에 연결되며 뿐만 아니라 인터럽트 논리유닛에 있어서 출력(Q)은 통지신호(NOTIFY)를 공급하게 된다.
플립플롭(51)(52)은 셀(63)(65)의 출력에 연결된 클럭입력을 갖고 있고 또한 출력(Q)가 셀(64)(66)에 연결되어 있고 동시에 드라이버(53)(66)에 연결되어 있고 동시에 드라이버(53)(54)를 통해서 상기 플립플롭(51)(52)은 데이타버스(DATA BUS2)에 연결되어 있다.
디코더(20)의 적절한 출력이 플립플롭(50)의 클럭입력 및 플립플롭(51)(52)의 세트입력에 각각 연결되어 신호(Z1)(Z2)(Z3)(Z4)를 각각 공급하게 된다.
디코더(20)의 출력단에 있는 네번째 신호(Z4)는 드라이버게이트(53)(54)를 이네블한다.
CIO회로(49)카 세트될때 적절한 명령신호를 통해서 통지논리유닛(27)의 동작은 매우 간단해진다.
주프로세서(1)가 통지신호를 부프로세서(2)에 송신할때 적절한 어드레스를 갖는 CIO회로를 선택하고 셀(61)이 출력할때 논리레벨 1에서 펄스의 발생을 제어하게 된다.
이러한 펄스는 통지/인터럽트신호를 인터럽트 논리유닛(21)의 입력단에 송신하는 플립플롭(50)을 세트시킨다.
전술한 바와 같이 가장 우선적인 레벨에서 이러한 결손 인터럽트신호는 부프로세서(2)에 보내진 인터럽트코드(IPLEV)를 발생한다.
부프로세서(2)가 인터러트를 고찰할때 인터럽트 논리유닛(21)에 보내진 코드(FC(논리 레벨 1에서 모든 비트를 가진다))를 발생하게 되고 동시에 디코드 동작에 의해서 부프로세서(2)의 입력(VPA)에 인가된 인터럽트 인식신호(INTACK)를 발생하고 방금 인식된 인터럽트가 "오토벡터"인터럽트 상태임을 가르켜준다.
따라서 부프로세서(2)는 주메모리의 메일박스로부터 메세지를 판독해냄으로써 인터럽트조정으로 스스로 계속 동작되게 된다.
결국 어드레스버스(ABUS2)에 인가된 적절한 어드레스코드 및 디코더(20)를 통해서 플립플롭(50)을 리세트시키는 신호(Z1)를 발생시킨다.
이러한 전체시간 간격중에 주프로세서(1)는 셀(62)로부터 판독동작을 실행하기 위하여 CIO회로(49)에 어드레스 지정과 선택을 함으로써 통지동작상태를 검증할 수 있게 된다.
이러한 동작은 주프로세서(1)의 버스에 액세스를 요구하고 결국 부프로세서(2)가 공동자원로 사용되지 못하게 한다.
그러나 이러한 동작을 실행하기 위해서 요구되는 시간 즉 판독동작은 만약 동일한 정보를 얻기 위하여 메모리 폴링동작과 비교되어지면 매우 짧은 시간에 이루어진다.
상기와 같은 마지막 동작은 실제로 루틴실행을 요구하고 있으며, 그 첫번째 단계는 "테스트 및 세트"동작이고 만약 그 동작이 가능하게 되면 메일박스의 위치 및 로크비트의 결과적인 리세트상태를 판독하게 된다.
마찬가지로 부프로세서(2)는 통지신호를 주프로세서(1)에 보낼 수 있고 따라서 어드레스버스(ABUS2)상에 적절한 코드를 발생하게 된다.
신호(Z2)가 발생함으로써 플립플롭(51)이 세트되고 신호(Z3)의 발생은 플립플롭(52)를 세트되게 해준다.
플립플롭(51)(52)에서의 신호변이는 각각 인더럽트신호(INT)를 발생해주는 CIO회로(49)의 입력셀(64) 또는 입력셀(66)에 의하여 수신되어진다.
인터럽트 논리유닛(8)에 의하여 수신된 이러한 신호는 인터럽트신호가 코드화된 형태 IPLEV에 존재하는 경우에 우선 레벨에 따라 주프로세서(1)에 전달된다.
적절한 시간에 주프로세서(1)는 인식코드(FC)로 응답을 하게되고 이 인식 코드(FC)는 인터럽트 논리유닛(8)에 의하여 디코드되어 인터럽트 인식신호(INTACK)로 출력된다.
CIO회로(49)에 의하여 수신된 상기 인터럽트 인식신호(INTACK)는 게이트(55)를 통해서 데이타버스(DATA BUS1)상에 인식된 인터럽트상태에 상응하는 인터럽트벡터를 전달하기 위해서 CIO회로(49)가 동작한다.
인더럽트가 데이타 전달 필요성으로 플립플롭(51)에 의하여 발생되는지 혹은 플립플롭(52)에 의하여 발생되는지에 따라서 서로 다른 인터럽트벡터가 주프로세서(1)에 송신된다.
따라서 주프로세서(1)는 특별한 인터럽트의 핸들링루틴을 직접적으로 액세스할 수 있고, 인터럽트 파라미터를 포함한 메세지를 메일박스로부터 판독할 수 있으며, 메세지를 판독하고 삭제한 후 주프로세서(1)는 리세트펄스가 출력셀(63)(65)에 나타나도록 CIO회로(49)를 선택하고 제어함으로써 플립플롭(51) 혹은 플립플롭(52)을 리세트시키게 된다.
상기 동작시간 간격중에 부프로세서(2)는 데이타버스(DATA BUS2)상에 플립플롭(51)(52)의 상태를 전달하기 위하여 드라이버게이트(53)(54)를 이네이블하는 신호(Z4)를 발생시킴으로써 통지메세지의 상태를 확인할 수 있다.
이러한 동작은 주프로세서(1)의 버스 혹은 공동자원에 액세스를 요구하지 않고, 매우 짧은 머신사이클로 종결하며, 요구된 정보가 즉시 사용되기 때문에 지연간격이 필요없게 되어 있다.
따라서 제4도의 구조는 통지논리유닛(27)를 오토벡터 및 벡터메카니즘을 사용하기 위해서 제3도에 있는 형태에 있어서 밝혀진 잇점을 손실함이 없이 배열할 수 있고 뿐만 아니라 여러종류의 통지레벨을 각 통지유닛가 발생할 수 있음을 나타내고 있다.
더 명확한 것은 두 프로세서시스템이 서로 개방될때 하나의 버스와 각 버스에 연결된 메모리를 가지는 각각의 프로세서는 두 프로세서에 의하여 액세될 수 있는 공동자원으로 구성되어 있고, 동일한 발명개념이 두개의 프로세서가 사용된 시스템에 시스템에 사용될 수 있으며, 종래의 알려진 기술을 명확하게 할 적절한 변화가 주어질 것이다.
전술한 서술에 있어서 사용된 프로세서의 종류에 광범위하게 의존되고 본 발명에 이해에 필요없는 프로세서타이밍 및 구체적인 다일로그에 대해서는 서술하지 않았다.
더 구체적인 것을 위해서 모트롤라사 및 모스테크사에 의하여 제조된 마이크로프로세서 68000,68010을 참조하고 참고내용은 1982년 5월에 출간된 "모스테크 1982/1983마이크로일렉트로닉 데이타북"의 페이지 VI-1-VI-50에 서술되어 있다.

Claims (5)

  1. 서로 선택적으로 연결될 수 있는 제1(ABUS1,DATA BUS1) 및 제2논리버스(ABUS2,DATABUS2)를 각각 갖추고 있고, 상기 버스중 하나에 연결되고, 인터럽트신호(INTIOP,NOTIFY)를 통해서 메모리 자원(4)내에 포함된 메일박스로 저장된 메세지를 서로 통신할 수 있도록 구성한 제1 및 제2프로세서(1)(2)를 포함하는 멀티프로세서 시스템장치에 있어서, 제 1인터럽트신호(INTIOP)와 제 2 인터럽트신호(NOTIFY)를 발생하고, 제1 및 제2버스에 대한 접속부(28,29)를 가지고, 상기 제2프로세서에서 상기 제2버스에 신호를 인가시킴으로써 인터럽트 신호가 존재하는 제1상태로 세트되고, 상기 제1프로세서에서 상기 제1버스에 신호를 인가시킴으로써 상기 제1신호가 존재하지 않는 제2상태로 세트되고, 상기 제1프로세서에서 상기 제1버스에 신호를 인가시킴으로써 제2인터럽트신호가 존재하는 제3상태로 세트되며, 상기 제2프로세서에서 상기 제2버스에 신호를 인가시킴으로써 상기 제2인터럽트신호가 존재하지 않는 제4상태로 세트되도록 구성되는 인터럽트 신호발생기(27), 상기 제1버스와는 별개로 제1버스와 액세스하는 일없이 상기 제1프로세서(1)에 대한 상기 제1인터럽트신호(INTIOP)를 입력하는 제1결합장치(8)와, 상기 제2버스와는 별개로 제2버스와 액세스하는 일없이 상기 제2프로세서(2)에 대한 상기 제2인티럽트신호(NOTIFY)를 입력하는 제2결합장치(21)를 포함하고 있는 것을 특징으로 하는 멀티프로세서 시스템장치.
  2. 제1항에 있어서, 상기 제 1버스를 통해서 제 1프로세서에 의해 제어되고, 판독시에는 제1버스 및 상기 제1버스와 발생기의 접속부를 통해서 상기 발생기의 상태(제3 또는 제4상태)가 제어되도록 하는, 제1수단(43)을 더 포함하고 있는 것을 특징으로 하는 멀티프로세서 시스템 장치.
  3. 제2항에 있어서, 상기 제2버스를 통해서 제2프로세서에 의해 제어되고, 판독시에는 제2버스 및 상기 제2버스와 발생기의 접속부를 통해서 상기 발생기의 상태(제1또는 제2상태)가 제어되도록 하는 제2수단(42)을 더 포함하고 있는 것을 특징으로 하는 멀티프로세서 시스템 장치.
  4. 제1프로세서와 제2프로세서사이를 통신하는 방법에 있어서, 인터럽트 신호발생기가 제1프로세서에 의해 제4상태로 있음을 검증하는 단계와, 상기 제1프로세서에 의하여 메일박스가 로크되지 않고서 상기 제2프로세서에 대해 만들어진 만든 메세지를 제2프로세서에 결합된 상기 메일박스에 기록하는 단계와, 상기 제1프로세서에 의하여 제3상태로 인터럽트 신호발생기를 세트하여 상기 제2인터럽트신호를 발생하는 단계와, 제2프로세서에 의하여 메일박스를 로크하지 않고서 제2인터럽트 신호로 응답함으로써 제2프로세서에 결합된 상기 메일박스를 판독하는 단계와, 제2프로세서에 의해서 상기 발생기(27)를 제4상태로 세트시키는 단계로 구성되어 있는 것을 특징으로 하는 프로세서간의 통신방법.
  5. 제1프로세서와 제2프로세서사이에 메세지를 교환하는 메세지 교환 및 메세지 재기록방법에 있어서, a) 제1프로세서에 의하여 상기 제2프로세서에 결합된 메일박스가 유효상태인지 록킹상태인지를 검증하는 단계와, b) 상기 제1프로세서에 의하여 상기 메일박스내에 상기 제2프로세서에 대해 만들어진 메세지를 기록하는 단계와, c) 상기 제1프로세서에 의하여 상기 제2프로세서에 결합된 메일 박스를 자유상태로 세트하는 단계와, d) 상기 제1프로세서에 의하여 인터럽트 신호발생기를 제3상태로 세트하여 제2인터럽트신호를 발생하는 단계와, e) 상기 제2인터럽트신호에 응답하여 상기 제2프로세서에 의하여 제2프로세서에 결합된 메일박스가 유효상태인지 록킹상태인지를 검증하는 단계와, f) 상기 제2프로세서에 의하여 메일박스가 판독되는 단계와, g) 상기 제2프로세서에 의하여 상기 발생기가 제4상태로 세트되는 단계와, h)상기 제2프로세서에 의하여 상기 단계(g)후에 동시에 메일박스가 자유상태로 세트되는 단계와, i) 단계(d)이후 어떤 순간에 제1프로세서에 의하여 상기 발생기가 상기 제3상태로 되어 있는 것을 검증하는 단계와, j) 제1프로세서에 의하여 상기 메일박스가 로크되지 않은 것을 검증하는 단계와, k) 제1프로세서에 의하여 새로운 메세지로 이미 기록된 메세지를 재기록하는 단계와, l) 상기 제1프로세서에 의하여 상기 메일박스를 자유상태로 세트하는 단계로 구성되어 있는 것을 특징으로 하는 프로세서간의 통신방법.
KR1019860003591A 1985-05-07 1986-05-07 멀티프로세서 시스템장치 및 그 통신방법 KR920006616B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IT20599/85A IT1184553B (it) 1985-05-07 1985-05-07 Architettura di sistema a piu' processori
IT20599A/85 1985-05-07

Publications (2)

Publication Number Publication Date
KR860009352A KR860009352A (ko) 1986-12-22
KR920006616B1 true KR920006616B1 (ko) 1992-08-10

Family

ID=11169369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019860003591A KR920006616B1 (ko) 1985-05-07 1986-05-07 멀티프로세서 시스템장치 및 그 통신방법

Country Status (7)

Country Link
US (1) US4862354A (ko)
EP (1) EP0201020B1 (ko)
JP (1) JPS61286961A (ko)
KR (1) KR920006616B1 (ko)
CA (1) CA1254663A (ko)
DE (1) DE3687426T2 (ko)
IT (1) IT1184553B (ko)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU597980B2 (en) * 1986-05-30 1990-06-14 Honeywell Bull Inc. Apparatus and method for interprocessor communication
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
JPS63284660A (ja) * 1987-05-16 1988-11-21 Nec Corp プロセッサ間通信方式
US5280589A (en) * 1987-07-30 1994-01-18 Kabushiki Kaisha Toshiba Memory access control system for use with a relatively small size data processing system
US5367688A (en) * 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US5136718A (en) * 1987-09-04 1992-08-04 Digital Equipment Corporation Communications arrangement for digital data processing system employing heterogeneous multiple processing nodes
US4969090A (en) * 1987-09-11 1990-11-06 Beehive International Program routine vectoring circuit for selectively using either stored interupt instructions or incoming interupt handling instructions
JPH02128267A (ja) * 1988-11-09 1990-05-16 Fujitsu Ltd 共有メモリによる通信方式
EP0376003A3 (en) * 1988-12-29 1991-12-18 International Business Machines Corporation Multiprocessing system with interprocessor communications facility
US5210828A (en) * 1988-12-29 1993-05-11 International Business Machines Corporation Multiprocessing system with interprocessor communications facility
EP0429780B1 (en) * 1989-11-29 1997-11-12 Kabushiki Kaisha Toshiba Computer system capable of connecting an expansion unit
EP0443876A3 (en) * 1990-02-23 1992-01-02 Kabushiki Kaisha Toshiba Computer system capable of connecting expansion unit
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
US6343363B1 (en) 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
US5581770A (en) * 1992-06-04 1996-12-03 Mitsubishi Denki Kabushiki Kaisha Floating interruption handling system and method
JPH07507892A (ja) * 1992-06-12 1995-08-31 ザ、ダウ、ケミカル、カンパニー プロセス制御コンピュータ用透過型インターフェース
US5613135A (en) * 1992-09-17 1997-03-18 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
JPH06214969A (ja) * 1992-09-30 1994-08-05 Internatl Business Mach Corp <Ibm> 情報通信方法および装置
DE69316559T2 (de) * 1992-12-03 1998-09-10 Advanced Micro Devices Inc Servoregelkreissteuerung
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
EP0640929A3 (en) * 1993-08-30 1995-11-29 Advanced Micro Devices Inc Interprocessor communication via a post MEV.
JPH07105023A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> データ処理システム内でスプリアス割込みを検出するための方法及び装置
CA2123447C (en) * 1993-09-20 1999-02-16 Richard L. Arndt Scalable system interrupt structure for a multiprocessing system
US5673415A (en) * 1993-12-03 1997-09-30 Unisys Corporation High speed two-port interface unit where read commands suspend partially executed write commands
US5680624A (en) * 1993-12-21 1997-10-21 Object Licensing Corporation Object oriented interrupt system
US5555430A (en) * 1994-05-31 1996-09-10 Advanced Micro Devices Interrupt control architecture for symmetrical multiprocessing system
US5574863A (en) * 1994-10-25 1996-11-12 Hewlett-Packard Company System for using mirrored memory as a robust communication path between dual disk storage controllers
GB9505724D0 (en) * 1995-03-21 1995-05-10 Newbridge Networks Corp ATM without traffic shaping
GB2308902B (en) * 1996-01-04 2000-03-29 Motorola Inc Peripheral module and microprocessor system
EP0813710B1 (en) 1996-01-09 2001-08-22 Koninklijke Philips Electronics N.V. A method and system for synchronizing concurrent sequential processes by means of intra-process update operations and inter-process adapt operations
US5778236A (en) * 1996-05-17 1998-07-07 Advanced Micro Devices, Inc. Multiprocessing interrupt controller on I/O bus
US6141697A (en) * 1997-06-25 2000-10-31 Unisys Corp. System and method for performing external procedure calls in heterogeneous computer systems utilizing program stacks
US6289391B1 (en) * 1997-06-25 2001-09-11 Unisys Corp. System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer
US6151638A (en) * 1997-06-25 2000-11-21 Unisys Corp. System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer
US6192418B1 (en) * 1997-06-25 2001-02-20 Unisys Corp. System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer
US6131113A (en) * 1998-02-24 2000-10-10 International Business Machines Corporation Managing a shared resource in a multi-processor system
US7233977B2 (en) * 1998-12-18 2007-06-19 Emc Corporation Messaging mechanism employing mailboxes for inter processor communications
US6295573B1 (en) 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US6205508B1 (en) 1999-02-16 2001-03-20 Advanced Micro Devices, Inc. Method for distributing interrupts in a multi-processor system
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6389526B1 (en) 1999-08-24 2002-05-14 Advanced Micro Devices, Inc. Circuit and method for selectively stalling interrupt requests initiated by devices coupled to a multiprocessor system
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6587930B1 (en) 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6606677B1 (en) * 2000-03-07 2003-08-12 International Business Machines Corporation High speed interrupt controller
FR2817058B1 (fr) * 2000-11-21 2003-01-24 St Microelectronics Sa Dispositif et procede de traitement des interruptions dans une transmission d'informations sur un bus
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7516456B2 (en) * 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US20050071828A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for compiling source code for multi-processor environments
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7318218B2 (en) 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7475257B2 (en) 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US8555395B2 (en) * 2004-02-03 2013-10-08 Media Rights Technologies, Inc. Method and system for providing a media change notification on a computing system
US8510491B1 (en) * 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
EP2008281B1 (en) 2006-03-30 2012-01-25 Silicon Image, Inc. Multi-port memory device having variable port speeds
US7831778B2 (en) * 2006-03-30 2010-11-09 Silicon Image, Inc. Shared nonvolatile memory architecture
US8677034B2 (en) * 2006-04-28 2014-03-18 Hewlett-Packard Development Company, L.P. System for controlling I/O devices in a multi-partition computer system
DE102007063291A1 (de) * 2007-12-27 2009-07-02 Robert Bosch Gmbh Sicherheitssteuerung
US10684965B2 (en) 2017-11-08 2020-06-16 Advanced Micro Devices, Inc. Method to reduce write responses to improve bandwidth and efficiency
TWI680375B (zh) * 2018-08-23 2019-12-21 慧榮科技股份有限公司 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3483520A (en) * 1966-04-20 1969-12-09 Gen Electric Apparatus providing inter-processor communication in a multicomputer system
US3940743A (en) * 1973-11-05 1976-02-24 Digital Equipment Corporation Interconnecting unit for independently operable data processing systems
US4038644A (en) * 1975-11-19 1977-07-26 Ncr Corporation Destination selection apparatus for a bus oriented computer system
US4402046A (en) * 1978-12-21 1983-08-30 Intel Corporation Interprocessor communication system
IT1126475B (it) * 1979-12-03 1986-05-21 Honeywell Inf Systems Apparato di comunicazione tra piu' processori
US4420806A (en) * 1981-01-15 1983-12-13 Harris Corporation Interrupt coupling and monitoring system
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
US4590556A (en) * 1983-01-17 1986-05-20 Tandy Corporation Co-processor combination
JPS59218560A (ja) * 1983-05-26 1984-12-08 Fuji Electric Co Ltd 割込コントロ−ル方式

Also Published As

Publication number Publication date
KR860009352A (ko) 1986-12-22
DE3687426T2 (de) 1993-07-29
IT8520599A0 (it) 1985-05-07
US4862354A (en) 1989-08-29
EP0201020A3 (en) 1989-06-14
JPS61286961A (ja) 1986-12-17
EP0201020A2 (en) 1986-12-17
EP0201020B1 (en) 1993-01-07
DE3687426D1 (de) 1993-02-18
IT1184553B (it) 1987-10-28
CA1254663A (en) 1989-05-23

Similar Documents

Publication Publication Date Title
KR920006616B1 (ko) 멀티프로세서 시스템장치 및 그 통신방법
US4571672A (en) Access control method for multiprocessor systems
US4665483A (en) Data processing system architecture
US4471457A (en) Supervisory control of peripheral subsystems
US4737932A (en) Processor
US4698746A (en) Multiprocessor communication method and apparatus
US4404628A (en) Multiprocessor system
US4197580A (en) Data processing system including a cache memory
US4275440A (en) I/O Interrupt sequencing for real time and burst mode devices
KR20030040021A (ko) 마이크로컴퓨터
JPH0246974B2 (ko)
JPH0626336B2 (ja) 制御リンク
US4040031A (en) Computer instruction control apparatus and method
RU99120288A (ru) Способ и устройство для выполнения с высокой надежностью одним процессором нескольких функций с различным уровнем критичности
JP4642531B2 (ja) データ要求のアービトレーション
KR100516538B1 (ko) 통신버스시스템
EP0033915A1 (en) Method for releasing common memory resources in a multiprocessor system
US5436856A (en) Self testing computer system with circuits including test registers
KR910001788B1 (ko) 다중 프로세서 시스템용 메세지 전송 인터럽팅 장치 및 이의 실행방법
US5247640A (en) Dual access control system including plural magnetic disk control units and contention control circuitry
US5218688A (en) Data processing system with memory-access priority control
JPS642978B2 (ko)
US6535943B1 (en) Information processing device enabling floating interrupt to be pending and a method executing an interrupt condition change instruction
EP0087368B1 (en) Interchangeable interface circuit structure
JP3635996B2 (ja) 情報処理システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee