KR930008685B1 - 이중 프로세서 시스템 - Google Patents

이중 프로세서 시스템 Download PDF

Info

Publication number
KR930008685B1
KR930008685B1 KR1019860700366A KR860700366A KR930008685B1 KR 930008685 B1 KR930008685 B1 KR 930008685B1 KR 1019860700366 A KR1019860700366 A KR 1019860700366A KR 860700366 A KR860700366 A KR 860700366A KR 930008685 B1 KR930008685 B1 KR 930008685B1
Authority
KR
South Korea
Prior art keywords
processor
repeater
link
circuit
response
Prior art date
Application number
KR1019860700366A
Other languages
English (en)
Other versions
KR880700353A (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 KR880700353A publication Critical patent/KR880700353A/ko
Application granted granted Critical
Publication of KR930008685B1 publication Critical patent/KR930008685B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

내용 없음.

Description

[발명의 명칭]
이중 프로세서 시스템
[도면의 간단한 설명]
제 1 도는 본 발명의 실시예를 구체화한 처리 시스템의 블럭 다이아그램
제 2 도는 제 1 도 시스템의 프로세서 연결 링크에 대한 블럭 다이아그램
제 3a 도 및 제 3b 도는 제 1 도의 프로세서 연결 링크의 두개 형태의 판독-수정-기록 트랜젝션에 대한 기능적 다이아그램.
제 4 도는 제 1 도 시스템의 시스템 버스 중계기에 대한 블럭 다이아그램.
제 5 도의 시스템 버스 중계기의 판독-수정-기록 제어기에 대한 상태 다이아그램.
[발명의 상세한 설명]
[기술분야]
본 발명은 각각 적어도 한개의 처리기와 다른 프로세서의 주축적기의 내용과 동일한 하나의 추축적기와, 소자 조사와 주축적기를 상호 접속하는 버스와, 상기 버스에 결합된 버스 엑세스 중계기와, 전송을 위해 다른 프로세서의 버스와 링크에 결합된 링크로 이루어진 비동기적으로 동작하는 한쌍의 프로세서로 구성된 이중 프로세서 시스템에 관한 것이다.
[발명의 배경]
다중 처리 환경에서, 다수의 처리는 시분할 기저상의 단일 프로세서나 다수의 프로세서상의 처리 시스템상에서 동기적으로 수행된다. 이와 같은 상황에서, 다수의 처리는 메모리내에 축적된 정보와 같은 자원을 공동 이용하게 된다. 공유 자원에 대한 엑세스가 한번에 단 한개의 처리에 의해 이루어지도록 보장하기 위해서는 몇개의 로킹 메카니즘이 이용되어 단지 몇개의 처리만이 임의의 시간에 자원을 엑세스 하도록 해야하며, 상기 시간에 다른 처리가 자원을 엑세스 하는 것을 중지시키도록 해야 한다. 공유 정보의 경우에, 정보는 일반적으로 메모리내에 축적되며, 따라서, 로킹 메카니즘은 메모리 또는 공유 정보가 축적되어 있는 메모리의 부분으로의 엑세스를 제어해야만 한다.
다중 처리 시스템에서 일반적으로 널리 사용되는 로킹 메카니즘의 형태는 세마포르(semaphore : 까치발 신호기)이다. 세마포르는 레지스터 또는 지정 메모리 위치로서 구성되는데 여기에서 판독 및 클리어 동작, 테스트 및 세트 동작, 판독-수정-기록 동작이 수행되며, 미소한 판독-수정-기록 기능을 수행하는 다른 형태의 메모리 동작이 수행된다. 미소한 판독-수정-기록 기능에서, 이 기능의 실행동안 상기 동작의 판독 및 기록 동작간에는 다른 레지스터나 메모리 기준이 허용되지 않는다.
시스템 신뢰도를 증가시키고, 메모리 엑세스용 프로세서간의 경쟁을 경감시키기 위해, 몇몇의 다중 처리 시스템은 이중의, 심지어 복사된 즉, 동일한 메모리를 사용한다. 예로, 코-프로세싱 시스템은 보통 동시에 활성화 되나 각각 독립적인 프로세서를 두개 갖는데, 이들 각각은 다른 프로세서의 메모리의 내용과 동일한 자체 메모리를 가지고 있다. 따라서 복사된 메모리를 갖는 다중 처리 시스템에서, 세마포르의 개념은 판독-수정-기록 동작과 같은 로킬 동작이 모든 복사 메모리내에 동시에 발생할 수 있도록 하는 것까지 확대되어 있다. 왜냐하면, 그와 같은 시스템내의 한개의 프로세서가 자체 메모리에 한해서만 로킹 동작을 수행한다면, 다른 프로세서에는 세마포르에 의해 보호된 정보가 로크되었다는 신호를 전달할 수 없기 때문이다. 또한, 한개의 프로세서가 동일하지 않게 모든 복사 메모리를 로크시킨다면, 복사 메모리중 몇개의 메모리가 이미 다른 프로세서에 의해 로크되었는가를 알아내기 위해 더 많은 프로세서가 자체 메모리를 로크시켜야 하며, 다른 메모리를 로크시켜야 한다는 가능성이 존재하게 될 것이다. 데드로크(deadlock)라고 알려진 이와 같은 상황은 어떠한 프로세서도 상기 로크에 의해 보호되어 있는 정보에는 엑세스할 수 없게 되는 결과를 초래한다.
데드로크 문제를 해결하는데 있어서, 모든 복사 메모리내에 로킹 동작이 동시에 발생하여야 한다는 요구조건이 시스템 성능에 심각한 문제점을 야기시킨다. 왜냐하면, 동시에 상기 동작을 수행하는데 요구되는 여러가지 자원 즉, 메모리를 엑세스 하기 위해 요구되는 전송 버스와 같은 자원이 다수의 프로세서내에 정렬되어 있는 동안 이들 프로세서의 다른 처리 활동은 정지되며, 필요한 자원이 모든 프로세서내에서 보장되고, 로킹 동작이 모든 프로세서내에서 수행되며 정렬된 자원이 이완되고 나서야 다른 처리 활동이 진행될 수 있기 때문이다. 이와 같이 모든 프로세서내의 로킹 동작의 실행을 동기화시키는데 소비한 시간은 다중처리 시스템의 처리 결과를 심각하게 손상시킬 것이다. 이와 같은 관점으로부터 상기 동기화에 대한 필요성은 바람직하지 못하다는 것을 알 수 있다.
[발명의 요약]
상기 문제점은 각 프로세서가 처리 소자로부터 버스를 통해 주축적 로킹 동작을 수신하여 다른 프로세서의 링크에 로킹 동작을 전달하고, 다른 프로세서의 링크에 의해 전달된 로킹 동작을 수신하여 주축적기상에서 전달된 동작을 수행하도록 버스를 엑세스하는 수단과, 전달된 동작의 주축적기상에서의 수행을 검출하는 수단과, 처리 소자용 중계기 버스 엑세스로 부터 주축적 로킹 동작을 수행할 것을 요청하기 위해 처리 소자에 연관된 수단과, 중계기에 연관되어 상기 요청을 다른 프로세서의 중계기에 시그널링 하라는 요청에 응답하는 수단과, 중계기에 연관되어 다른 프로세서 중계로부터 요청에 대한 시그널링에 응답하여 먼저 시그널된 확인이 검출수단에 의해 전송된 동작 수행을 검출한 다음에 이루어질때만 확인을 시그널링 하는 수단과 중계기에 연관되어 다른 프로세서의 중계기로부터의 확인이 시그널링에 응답하여 먼저 시그널된 확인이 출된 수단에 의해 전송된 동작 수행을 검출한 다음에 이루어질때만 요청된 버스 엑세스를 허용하는 수단등으로 이루어진 이중 프로세서 시스템내의 본 발명에 따라 해결된다. 본 발명에 따라, 상호 비동기적으로 동작하는 다중 처리 시스템은 복사자원 로킹 동작과 같은 다중 프로세서 동작을 명령을 수행하는 장치를 포함한다. 이와 같은 장치는 제 2 프로세서가 인수하여야 할 동작을 제 1 프로세서가 인수하여 제 2 프로세서에 인수를 통보하며, 상기 통보에 응답하여 제 1 프로세서상에 인수된 동작이 그 프로세서상에 또 인수되기 전에 제 2 프로세서 중 각각의 프로세서상에서 인수된 동작과 동일한 동작의 인수는 방지되고 다른 동작의 인수는 허용된다. 동시에 인수된 동일한 동작과는 우선 순위는 각 프로세서상에서 중계에 의해 해결되며, 우선 순위 할당에 의해 프로세서간에서 해결된다.
바람직하게는, 통보 장치는 인수된 동작과 동일한 동작이 이미 제 2 프로세서상에서 인수되었는가를 결정하며, 방지 장치는 차례로 동일한 동작이 이미 인수되었다는 결정에 응답하여 이미 인수된 동일한 동작이 제 1 프로세서상에서 인수될때까지 제 2 프로세서의 각 프로세서상에 다른 인수를 방지하며, 동일한 동작이 이미 인수되지 않았다는 결정에 응답하여 인수 동작이 제 1 프로세서상에 인수될 때까지 동일한 동작이 제 2 프로세서의 각 프로세서상에서 인수되는 것을 방지한다. 제 2 프로세서 각각은 제 2 프로세서의 다른 것과 동일한 공유 메모리와 같은 자원을 포함한다. 인수 동작은 미소한 판독-수정-기록 동작과 같은 복사 자원을 로킹시키는 동작이다.
상술된 다중 프로세서 시스템에 있어서, 다른 동일한 동작에 비해 실행 순서가 중대한 공유 복사 자원을 로킹하는 동작과 같은 다른 동일한 동작으로부터의 방해없이 다수의 프로세서 각각에서 다른 시간에 인수되도록 허용된다. 왜냐하면, 시스템은 다수의 그와 같은 동작이 동일 순서로 각 프로세서상에서 인수되는 것을 보장하기 때문이다. 그러나, 하나의 동작과 다른 동작은 하나의 프로세서가 프로세서상에 인수된 하나의 동작을 갖기 위해 대기하는 동안 인수되는 것이 방지되며, 반면에, 상기 하나의 동작은 시스템의 다른 프로세서상에서 인수된다.
인수 동작과 유사한 종류의 동작은 동일 또는 상이한 동작이 될 것이다. 예로, 기록, 판독-수정-기록 및 테스트-세트 동작과 같은 축적 위치의 내용을 변화시킬 수 있는 모든 동작은 동일 동작으로 고려될 것이다. 대안으로, 유사 동작의 다수의 예만이 동일 동작으로 고려될 것이다, 예로, 다수의 프로세서에 의해 판독-수정-기록 동작을 수행하기 위한 각 시도는 유사 동작의 예를 구성한다. 본 응용의 목적을 위해, 비동기 동작 또는 실행은 다수의 프로세서상에서 수행되어야 하는 동작이 상기 프로세서상에서 동시에 수행될 필요는 없고 오히려 다른 동작이 다른 프로세서상에서 수행되어지는 동안 임의의 다른 시간에서 프로세서 각각에서 수행되어진다는 것을 의미한다.
본 발명의 실시예에 따라, 상호 비동기적으로 동작하는 다수의 프로세서를 갖는 처리 시스템은 적어도 제 1, 제 2 프로세서상에서 수행되어질 동작을 제 1 프로세서상에서 시작하기 위한 장치를 포함하며, 시작 동작이 적어도 제 1, 제 2 프로세서상에서 수행되어지도록 허용되는가를 결정하기 위해 상호 협력하는 장치를 포함하며, 동작의 수행 허용의 결정에 응답하여 시작 동작과 유사한 제 2 동작이, 시작 동작이 상기 프로세서상에서 수행되기 전에 각 프로세서상에서 수행되어질 다른 동작을 허용하는 동안, 수행되어지는 것을 방지하는 수단을 포함한다. 프로세서 각각은 방지장치에 의해 상기 방지 동작이 행해질때 시작 동작을 수행하는 장치를 포함한다.
바람직하게, 시작 장치는 동작을 요청하기 위해 제 1 신호(즉, 인트라(intra) 프로세서 요청)을 발생하는 수단과, 제 2 신호(즉, 인트라 프로세서 허용)에 응답하여 동작의 수행을 야기시키는 장치를 포함한다. 방지장치는 시작 동작과 동일한 동작이 연관 프로세서에서 수행되는 것이 제 4 신호(프로세서 연결 허용)의 전송장치에 의해 제 4 신호가 전송된 후에 이루어질때만, 제 3 신호(프로세서 연결 요청)의 수신에 응답하여 제 4 신호를 전송하는 적어도 제 1, 제2 프로세서 각각에 연관된 장치를 포함한다. 결정 장치는 적어도 제 1, 제 2 프로세서중 하나의 프로세서에 연관되어 제 1 신호의 수신에 응답하여 적어도 제 1, 제 2 프로세서의 다른 프로세서의 제 4 신호 전송 장치에 제 3 신호를 전송하는 장치와, 시작 동작과 동일한 동작이 제 1 프로세서상에서 수행되는 것이 제 4 신호의 전송 장치에 의해 제 4 신호가 전송된 후에 이루어질때만, 적어도 제 1, 제 2 프로세서중 다른 프로세서의 제 4 신호 전송 장치로부터의 제 4 신호에 응답하여 야기 장치에 제 2 신호를 전송하는 장치를 포함한다.
제 2 프로세서를 포함하는 세마포르 판독-수정-기록 동작과 같은 동작이 다중 프로세서 시스템의 다수의 프로세서상에서 비동기적으로 수행되기 때문에, 각 프로세서의 대부분의 처리 동작은 동기 실행 및 다중 프로세서상의 동작의 완성을 대기하기 위해 멈추어질 필요가 없게 된다. 오히려, 각 프로세서의 대부분의 처리 동작은 궁극적으로 수행되어질 동작이 수행되어지는 순간에 어느 프로세서가 존재하는 가에 무관하게 계속된다. 그러므로, 자원-로킹 메카니즘은 시스템의 처리 출력에 역효과를 주지 않고 공유된 복사 메모리를 갖는 비동기 다중 프로세서 시스템내에 제공된다.
본 발명의 상술된 장점 및 다른 특징은 도면과 함께 더욱 상세히 언급될 것이다.
[상세한 설명]
제 1 도에서 코프로세서 시스템(100)이 도시되어 있다. 코프로세서 시스템(100)은 상호 독립적으로 그리고 비동기적으로 동작하는 한쌍의 프로세서(101),(111)로 이루어져 있다. 일반적으로 두개의 프로세서(101),(111)는 활성화 상태에 있으며, 프로세서(101),(111) 각각은 다른 프로세서의 타스크를 독립적으로 수행하고 있다. 두개의 프로세서(101),(111)상에서 수행되어야 하는 동작의 실행은 두개의 프로세서(101),(111)내에서 동기화 되지 않고 다른 시간에 실행된다.
프로세서(101),(111)가 독립적이기는 하지만, 각 프로세서는 자체 사용을 위해 다른 주축적 유니트의 내용과 동일한 주축적 유니트를 갖는다. 일반적인 동작 모드에서, 하나의 주축적 유니트의 내용이 변화되면 그들의 동일한 내용을 유지하기 위해 다른 주축적 유니트의 내용도 변화된다. 이와 같은 동작 모드를 갱신모드라고 언급한다. 메모리의 동일성은 프로세서(101),(111)중의 하나로 하여금 다른 프로세서의 서비스가 중단되거나 제거되었을 경우에 모든 시스템 타스트를 실행하도록 한다. 제 2 동작 모드동안, 주축적 유니트(102),(112)의 내용은 상호 동일화되는 것으로부터 중단된다. 이 제 2 모드는 프로세서중의 하나에서 실행되어지는 유지 동작이 실패했을 경우의 예외적인 상황에서만 발생된다.
이와 같은 특성의 표본 시스템은 T.P 비숍등에 의해 1984년 6월 22일 출원한 미합중국 특허출원 제823,481호, 명칭 "재구성 가능 이중 프로세서 시스템"에 언급되어 있다.
본 응용의 목적을 위해, 지시 "0" 및 "1"는 두개의 프로세서(101),(111) 및 그들의 내용을 확인하고 구별하는데 사용될 것이다. 이는 간단하게 나타내기 위한 임의의 명칭이며 "축 0" 및 "축 1" 지시에 관련된 특별한 특성은 존재하지 않는다. 본 응용의 목적을 위해, 프로세서 0(101), 프로세서 1(111)은 동일하다.
프로세서(101)는 상술된 주축적 유니트(MSU 0)(102) 이외에 적어도 한개의 처리 유니트를 포함한다. 적어도 한개의 처리 유니트 사이에는 프로세서(101)의 중앙 처리부로서 작용하는 한개 이상의 처리 소자(PEO)(103)가 포함되어 있다. 또한, 프로세서 0(101)와 외부간의 통신을 용이하게 하는 입력 및 출력 어댑터(IOA 0)(104)와 같은 다른 인텔리젼트 장치가 포함된다. 프로세서 0(101)내에 포함된 처리 유니트의 실제수 및 형태는 본 응용의 목적과는 무관하다.
처리 유니트(103),(104)는 시스템 버스(SB 0)(105)에 의해 MSU 0(102)에 접속된다. SB 0(105)의 기능은 이에 부착된 프로세서 0(101)의 여러개의 유니트간에 정보를 전송하는 것이다. SB 0(105)에 접속된 유니트에 의한 SB 0(105)로의 엑세스 및 각 버스 타임슬롯 동안 한 유니트에서 다른 유니트로의 정보 전송은 SB 0(105)에 접속된 시스템 버스 중계기(SB A)(106)에 의해 제어된다.
SB 0(105)에는 프로세서 연결 링크(IL 0)(107)가 접속되어 있다. IL 0(107)는 프로세서 0(101)의 유니트로 하여금 프로세서(111)의 유니트와 통신하도록 하는 기능을 수행한다. 특히 IL 0(107)은 MSU 0(102) 및 MSU 1(112)의 내용을 동일하게 하며, 프로세서 0(101)의 처리 유니트가 프로세서 1(111)의 MSU 1(112)내에서 수행되어질 메모리 동작을 요청할 수 있는 수단이다.
상술된 바와 같이, 프로세서(101),(111)는 본 응용의 목적을 위해 동일하다. 그러므로, 프로세서 1(111)은 주축적 유니트(MSU 1)(112), 적어도 한개의 처리 소자(PE 1)(113), 선택 입력 및 출력 어댑터(IOA 1)(114), 시스템 버스(SB 1)(115), 시스템 버스 중계기(SBA 1) 및 프로세서 연결 링크(IL 1)(117)로 이루어져 있으며, 이들 장치는 프로세서 0(101)과 관련하여 언급된 장치와 동일하다.
두개의 프로세서(101),(111)간에 통신을 가능하게 하기 위해, 프로세서 연결 링크(107),(117)는 비동기 프로세서 연결 버스(IPB)(120)에 의해 상호 결합된다. 프로세서 연결 버스(120)은 링크(107),(117)간에 정보를 전달한다.
두개의 프로세서(101),(111)의 시스템 버스 중계기(106),(116)는 중계기 연결 채널(IAC)(121)에 의해 통신을 위해 접속된다. 중계기(106),(116)는 중계기 연결 채널(121)과 함께 종래의 시스템 버스 엑세스 중계가능을 수행함은 물론, 두개의 프로세서(101),(111)에서 수행되어야 하는 동작을 시스템(100)내에서 수행하도록 하는 가능을 가능 복합 장치(150)를 갖는다. 여러개의 소자로 된 복합 장치는 두개의 프로세서(101),(111)로 하여금 임의의 프로세서상에서 동작이 수행되고 있다는 통보를 유지시키며, 상기 동작이 어느 프로세서상에서 행해지는가를 결정하고, 다수의 동작이 제 2 프로세서상에서 보다 제 1 프로세서상에서 상이한 순서로 행해지는 것을 방지한다. 특히 중계기 판결 채널(121)은 제 1 중계기로 하여금 제 1 중계기의 프로세서가 두개의 프로세서의 주축적상에서 수행되어야만 하는 판독-수정-기록(RMW) 동작을 시작할때를 제 2 중계기에 통보하여 동일한 동작이 다른 프로세서에 의해 수행되어지는가를 결정하도록 하게 한다. 각 중계기가 IAC(121)를 거쳐 다른 중계기와 협력한다해도, 제 1 RMW동작이 제 1 프로세서상에서 수행되어질때, 제 1 RMW동작이 연관 프로세서상에서 수행될때까지 중계기는 두개의 프로세서에 지정된 제 2 RMW동작이 연관 프로세서상에서 수행되는 것을 방지한다. 그러나, 이 시간 동안 다른 동작은 수행되도록 허용된다. 이들 기능을 수행하는데 있어서의 복합 장치의 동작은 중계기(106),(116)의 구성 및 가능을 고려하여 좀더 상세히 설명될 것이다.
시스템 버스(105),(115)의 프로토콜을 고려할때, 이의 기준은 제 4 도에 관련하여 이루어지는데, 제 4 도에는 시스템 버스 중계기(106)에 접속되는 시스템 버스로 이루어진 버스와 신호 라인이 도시되어 있다. 시스템 버스(115)의 구성 및 동작은 버스(105)의 경우와 동일하다. 시스템 버스(105)는 고속, 동기, 시분할, 트랜젝션 기준의 버스이다. 각 버스 타임슬롯 동안, 중계기(106)는 프로세서 0(101)의 제 1 유니트로부터 버스(105)를 거쳐 제 2 유니트로의 정보 전송을 제어한다. 차순의 타임슬롯은 두개가 완전히 다른 유니트간에 정보를 전송하는데 이용된다. 목적 유니트가 요청을 하고 있는 동안 다른 목적 유니트로부터 무엇을 요청하려는 소스 유니트는 버스(105)를 보유하지 못할 것이다. 대신, 소스 유니트는 요청을 행하기 위해 버스 타임슬롯을 사용하며, 목적 유니트는 그 요청에 응답하기 위해 얼마후의 시간에서 버스 타임슬롯을 사용한다. 요청 타임슬롯과 응답 타임슬롯간의 타임슬롯은 다른 트랜젝션에도 사용될 수 있다.
하나의 유니트로부터 다른 유니트로의 정보의 전송을 트랜젝션이라 한다. 트랜젝션을 완성하는데는 한개의 버스 타임슬롯 이상의 버스 타임슬롯을 필요로 한다. 예로, 유니트가 멀티워드의 데이타를 다른 유니트로 전송하기를 원한다면, 중계기(106)는 상기 모든 워드를 전송하는데 필요한 만큼의 많은 연속적인 타임슬롯을 소스 유니트에 할당할 것이다.
시스템 버스(105)가 어드레스 및 데이타를 전송하는 것은 물론 트랜젝션내에 포함된 유니트를 확인하기 위해 소스 및 목적 코드를 전송한다. 트랜젝션은 또한 트랜젝션의 형태 및 크기를 지시하기 위한 명령 필드를 포함한다.
시스템 버스(105)는 시스템 버스를 사용할 수 있는 각 유니트에 대해 시스템 버스 요청(SRREQ) 및 시스템 버스 허용(SBGRANT)을 포함한다. 부가적으로, 시스템 버스(105)는 두개의 프로세서(101),(111)상에 수행되어야만 하는 판독-수정-기록(RMW) 동작을 시작할 수 있는 각 유니트에 대해 판독-수정-기록 요청(RMWREQ) 라인을 포함한다. 버스(105)의 SBREQ, RMWREQ 및 SBGRAWT신호 라인은 중계기(106)에 접속된다.
아래에서 설명되어질 바와 같이, 프로세서(101),(111)중의 단지 한개의 프로세서상에서 수행되는 다른 형태의 RMW동작이 또한 존재한다. 이와 같은 형태의 RMW동작은 프로세서(101),(111)가 갱신 모드에 존재하지 않을때, 즉, 주축적 유니트(102),(112)의 내용이 동일하지 않을때만 수행된다. 프로세서(102),(112)가 갱신 모드인가 갱신 모드가 아닌가는 시스템 버스(105)의 SBUD 신호 라인의 상태에 의해 지시된다.
시스템 버스(105)를 사용하고자 하는 유니트는 그의 지정된 SBREQ라인을 포착한다. RMW동작이 두개의 프로세서(101),(111)상에서 수행되어지도록 할 목적으로 유니트가 시스템 버스를 사용하고자 할때는 유사하게, 그의 지정된 RMWREQ 라인을 포착한다. 만일 요청 유니트가 차순의 버스 타임슬롯을 허용하지 않는다면, 요청 유니트의 요청 라인 또는 라인들은 활성화 상태로 유지된다. 상기 유니트는 버스의 엑세스를 효율적으로 방지하며, 따라서 중계기(106)가 시스템 버스 허용 신호를 유니트에 보내줄때까지 RMW동작의 수행을 방지한다.
유니트가 중계기(106)로부터 SBGRANT신호를 수신할때, 유니트의 그의 SBREQ라인을 취소하며, SBGRANT 신호가 포착되었다면 RMWREQ 라인을 취소한다. 상기 유니트는 그후 시스템 버스(105)의 SBAD, SBD, SBSC, SBDC 및 SBC 버스상으로 트랜젝션을 수행하는 어드레스, 데이타, 소스코드, 목적코드 및 명령을 전송하며, 시스템버스(105)의 버스 유효(SBV) 및 명령 유효(SBCV) 신호 라인을 포착한다.
시스템 버스(103)상으로 전송이 금지되었던 정보가 버스(105)에 의해 시스템 버스(105)에 부착된 다른 모든 유니트로 전송될때, 다른 유니트가 통화중이 아니라면, 각 유니트는 자기 유니트가 현 트랜젝션의 목적지 유니트 인가를 알아보기 위해 목적지 로드(그리고 링크(107) 및 중계기(106)의 경우에는 명령 필드)를 검사한다. 만일 비-통화중 유니트가 목적지라면, 상기 유니트는 시스템 버스(105)상에 존재하는 정보를 래치하며, 그후 그의 지정된 시스템 버스 확인(SBACK)라인을 포착하므로써 중계기(106)에 시스템 버스 확인 신호를 전송한다. 통화중 유니트는 대신에 그의 지정된 BUSY 신호 라인을 포착하므로써 중계기(106)에 시스템 버스 확인 신호를 전송한다. 통화중 유니트는 대신에 그의 지정된 BUSY 신호 라인을 포착하므로써 중계기(106)에 시스템 버스 확인 신호를 전송한다. 통화중 유니트는 대신에 그의 지정된 BUSY 신호 라인을 포착한다.
중계기(106)는 목적지 코드 및 명령 필드를 검사하므로써 어느 유니트가 트랜젝션의 목적지 유니트인가를 알게 되며, 중계기는 각 목적지 유니트의 BUSY 신호 라인을 보게 된다. 만일 임의의 목적지 유니트가 통화중이라면, 중계기(106)는 시스템 버스(105)의 통화중 실패(SBBA) 신호 라인을 포착하므로써 트랜젝션을 실패로 돌린다. 소스 유니트가 통화중 실패 신호를 수신할때, 소스 유니트는 시스템 버스에 나중에 타임슬롯을 요청하기 위해 그의 SBREQ 라인을 다시 포착한다.
중계기(106)를 포함하는 유니트는 소스 유니트에 의해 시스템 버스(105)에 의해 시스템 버스(105)상으로 게이트된 명령 정보의 검사로부터 트랜젝션이 얼마나 많은 타임슬롯을 취하는 가를 알게 된다. 다중 타임슬롯 트랜젝션의 경우에, 중계기(106)는 트랜젝션의 각 타임 슬롯 동안 요청 유니트의 SBGRANT라인을 포착한다. 유사하게, 목적 유니트는 다중 타임 슬롯 트랜젝션의 각 타임 슬롯 동안 그들의 SBACK 신호라인을 내보낸다. 그런, 소스 유니트는 트랜젝션이 허용되는 트랜젝션의 매 타임 슬롯동안 그의 요청 라인을 포착하지 않는다.
제 4 도에 도시된 중계기(106)를 더욱 상세히 설명하기 전에, 프로세서 연결 링크(107),(117)의 동작을 설명하는 것이 더욱 유용할 것이다. 링크(107)의 블럭 다이아그램은 제 2 도에 도시되어 있다. 링크(117)의 구성 및 동작은 링크(107)의 것과 동일하다. 링크(107)는 5개의 주 기능 블럭으로 나뉘어지는데, 시스템 버스 인터페이스(SBI 0)(200), 프로세서 연결 버스 인터페이스(IBI 0)(201), 입력 작업 대기 행렬(IJQ 0)(202), 출력 작업 대기 행렬(DJQ 0)(203), 프로세서 연결 버스 중계기(IBAD)(204)등이다.
시스템 버스 인터페이스(200)은 시스템 버스(105)에 접속되어, 링크(107)가 시스템 버스(105)의 프로토콜에 따르도록 보장하는 책임을 진다. 링크(107)가 통화중 상태가 아니라면, 시스템버스 인터페이스(200)는 트랜젝션의 목적지로서 링크(107)를 갖는 트랜젝션을 찾기 위해 시스템 버스(105)를 계속 모니터한다. 시스템 버스 인터페이스(200)는 시스템 버스(105)상에 명령, 소스 코드, 목적지 코드 및 어드레스의 형태로 다른 프로세서(111)에 정보 전송을 하기 위한 잠재적인 트랜젝션 요청을 수신다. 상기 요청은 트랜젝션을 시작하는 프로세서(111)내의 소스 유니트로부터 전송된다.
시스템 버스 인터페이스(200)는 트랜젝션이 링크(107)로 전달되는가, 즉, 링크(107)가 트랜젝션의 목적지 중의 하나인가를 결정하기 위해 현재 시스템 버스(105)상으로 전송되는 목적지 코드 및 트랜젝션의 명령을 검사한다. 트랜젝션의 목적지로서 링크(107)의 설명은 명백하거나 함축적일 수 있다. 링크(107)는 링크가 목적지 코드내에서 설명되거나 목적지 코드의 EXTERNAL 비트가 세트되는 경우에는 명백한 목적지가 된다. 이는 링크(107)가 목적지 코드내에서 설명되는 프로세서 1(111)의 유니트로 전송하라는 것을 의미한다. 링크(107)는 트랜젝션이 목적지로서 주축적유니트(102)를 설명하는 경우에 합축적 목적지가 된다. 동작은 기록 또는 RMW 이고, SBUD 라인은 시스템이 상승 모드에 있다는 것을 지시한다. 링크(107)는 링크가 트랜젝션의 소스인 경우에는 목적지가 아니다.
링크(107)가 목적지라면, 시스템 버스 인터페이스(200)는 트랜젝션 정보를 래치한다. SBI 0(200)는 프로세서 1(111)의 링크(117)에 의해 사용하도록 트랜젝션의 소스 및 목적지 코드를 변형시키는 소스 및 소스 코드 발생 회로를 포함한다. 이와같은 회로는 소스 코드내에 EXTERNAL 비트를 세트시키고, 목적지 코드내에 EXTERNAL 비트를 클리어 시킨다. 또한, 수신된 트랜젝션이 주축적기에 대한 판독-수정-기록 동작이며, 외부 설명이 함축적이었다면 소스 코드를 "링크"로 변환시키는 역할을 한다.
그후, 시스템 버스 인터페이스(200)는 입력 작업 대기행렬(202)에 트랜젝션 정보를 전송한다.
입력 작업 대기행렬(202)은 프로세서 연결 버스 인터페이스(201)에 대한 작업을 유지한다. 상기 대기행렬은 한개의 시스템 버스 타임슬롯에 대응하여 한개의 엔트리를 갖는 다수의 엔트리, 본 예에서는 16개의 엔트리를 유지시키는 수용능력을 갖는다. 입력 작업 대기행렬(202)이 14개 이상의 엔트리를 포함할 때, 시스템 버스 인터페이스(200)는 중계기(106)로 상기 인터페이스가 통화중이라는 신호를 보낸다. 이는 중계기(106)가 임의의 다른 트랜젝션 패키지를 수신할 수 없다는 것을 의미한다. 다른 유니트가 그의 목적지중의 하나로서 링크(107)를 갖는 트랜젝션을 시작한다면, 중계기(106)는 상기 트랜젝션을 실패로 돌린다. 이와같은 동작은 시스템 버스 인터페이스(200)가 통화중 지시를 취소하는 시간에서 입력 작업 대기행렬(202)이 적어도 세 개의 점유되지 않은 엔트리 공간을 갖도록 충분히 비어 있을 때까지 계속된다.
입력 작업 대기행렬(202)이 프로세서 연결 버스 인터페이스(202)에 대한 작업을 유지하는 동안, 출력 작업 대기행렬(203)은 링크(117)에 의해 링크(107)로 전송되는 정보를 유지하며, 시스템 버스 인터페이스(200)에 의해 시스템 버스(105)상으로 전송될 것을 대기한다. 수용능력을 3개의 엔트리이다. 그러나 한번에 한개 이상의 시스템 버스 트랜젝션을 유지하는 것을 허용되지 않는다.
링크(107)가 다른 링크(117)로부터 그의 출력 작업대기행렬(202)내로 트랜젝션을 수신한 후에, 시스템 버스 인터페이스(200)는 링크의 SBREQ 신호 라인을 포착한다. 링크(107)가 두개의 프로세서(101),(111)를 포함하는 RMW동작을 시작하지 않을때, 링크(107)는 RMWREQ 신호 라인을 갖지 않는다. 링크(107)는 다른 프로세서 1(111)상에서 처음 시작된 RMW동작의 프로세서 0-특정부를 프로세서 0(101)상에서만 시작한다. 중계기(106)가 SBGRANT 신호에 응답할때, 시스템 버스 인터페이스(200)는 출력 작업 대기행렬(203)로부터 시스템 버스(105)상으로 소스코드, 목적지 코드, 명령 필드, 어드레스 및 데이타를 게이트한다. 다른 측 링크(117)는 링크(107)에 의해 중계기(106)가 링크(107)의 SBREQ를 허용할때까지 링크(107)의 출력 작업 대기행렬(203)에 대한 다른 트랜젝션을 복사하는 것이 허용되지 않으며, 출력 작업 대기행렬(203)의 제 1 엔트리는 시스템 버스(105)를 통해 성공적으로 전송된다.
링크(107)가 트랜젝션을 전송하는 목적지가 통화중일 때, 중계기(106)는 BUSY ABORT 신호 라인을 포착하므로써 트랜젝션을 실패로 돌린다. 이와같은 상황이 발생되면, 시스템 버스 인터페이스(200)는 링크의 SBREQ 리드를 재포착하며 트랜젝션을 다시 시도한다. 링크(107)의 시스템 버스 인터페이스(200)가 목적지 유니트로 트랜젝션을 성공적으로 전송할때, 목적지 유니트는 그의 지정된 시스템 버스(105)의 SBACK 라인을 포착하여 중계기(106)에 통보한다.
프로세서 연결 중계기(204)는 링크(107),(117)중의 어느 하나가 프로세서 연결 버스(120)의 제어를 하는가를 결정하는 링크(107)의 부분이다. 중계기(204)는 프로세서 연결 버스(120)의 사용을 위해 이중의 요청간에 중계를 수행한다. 중계기(204)는 시스템 버스(105)로부터 링크(107)내로 인입되는 프로세서 1(111)의 링크(117)용으로 지정된 트랜젝션 패키지와 링크(117)로부터 프로세서 연결 버스(120)를 거쳐 링크(107)내로 인입되는 트랜젝션 패키지간을 중계해야만 한다.
중계기(204)는 링크(107),(117)중의 어느 하나가 프로세서 연결 버스(120)을 제어하는 가를 결정하기 위한 고정된 우선순위 계획을 사용한다. 각 링크의 중계기는 연관 프로세서의 처리 소자로부터 상기 중계기로 인입되는 링크 확인/슬레이브(LIDS) 신호 라인을 갖는다. LIDS신호 라인은 마스터로서 하나의 링크를 지정하고, 슬레이브로서 다른 링크를 지정하는 연결부이다. 만일 두개의 링크(107),(117)가 동시에 프로세서 연결버스(120)의 사용을 요청할때, 현재 처리중에 있는 프로세서 연결 버스 트랜젝션이 존재하지 않는다면 마스터로서 지정된 링크는 슬레이브로서 지정된 링크를 거쳐 프로세서 연결 버스(120)의 사용에 대한 우선 순위를 갖는다. 만일 처리중에 있는 트랜젝션이 존재한다면, 현재 트랜젝션 패키지를 전송하지 않는 링크에 그의 트랜젝션 패키지를 전송하도록 차순의 프로세서 연결 버스(120) 사용이 허용될 것이다. 이는 두개의 링크(107),(117)간에 프로세서 연결버스(120)의 교대 사용을 위한 효과를 제공한다.
프로세서 연결버스(120)가 트랜젝션 패키지의 기저상에 중계된다. 즉, 일단 버스(120)가 링크중의 하나에 허용된다면, 상기 링크는 모든 패키지 전송이 완성될 때까지 버스(120)를 제어하게 될 것이다. 패키지는 하나의 시스템 버스 트랜젝션내에 포함된 모든 정보를 포함한다. 다른 링크로부터 전 패키지를 수신할때, 수신 링크는 그의 프로세서상의 트랜젝션을 시작하기 위해 그의 프로세서 시스템 버스의 사용을 요청할 수 있다.
프로세서 연결 버스 인터페이스(201)는 링크(107)가 프로세서 연결 버스(120)의 비동기 프로토콜을 따르도록 보장하는 책임을 진다. 인터페이스(201)는 프로세서 연결 버스 제어 신호를 발생하고, 그에 응답하도록 한다.
시스템 버스(105)로부터 트랜젝션이 수신되어 처리되고 시스템 버스 인터페이스(200)에 의해 입력 작업 대기행렬(207)내에 위치되었을 때, 프로세서 연결 버스 인터페이스(201)는 프로세서 연결 버스(120)의 링크 패키지 요청(PREQ O)리드를 포착하여 전송될 트랜젝션 패키지를 갖는 다른측상의 링크(117)에 신호를 보낸다. 만일, 링크(117)의 프로세서 연결 버스 중계기가 링크(107)가 프로세서 연결 버스(120)의 제어를 갖는다는 것을 결정하면, 링크(117)는 프로세서 연결 버스(120)의 패키지 확인(PACK 1)리드를 포착한다. 링크(107)의 프로세서 연결 버스 인터페이스(201)가 PACK 1 신호를 수신할때, 상기 인터페이스는 버스(120)의 ILAD, ILD, ILSC, ILDC 및 ILC 버스상으로 하나의 입력 작업 대기행렬 엔트리를 형성하는 어드레스, 데이타, 소스 코드, 목적지 코드 및 명령을 게이트하고, 버스(120)의 프로세서 연결 버스 유효(IBV) 신호 라인을 포착한다. 링크(117)의 프로세서 연결버스 인터페이스가 IBV 신호를 수신할때, 상기 인터페이스는 버스(120)로부터의 정보를 래치하고 그것을 자신의 출력 작업 대기행렬로 전송한다. 링크(117)의 프로세서 연결버스 인터페이스는 링크(107)에 프로세서 연결 버스 확인(IBACK) 신호를 전송하여 정보가 수신되었다는 것을 지시한다.
트랜젝션 패키지가 하나 이상의 대기행렬 엔트리를 점유할때, IBV/IBACK 신호 접속이 각 엔트리의 전달에 대해 반복된다. 링크(107)의 프로세서 연결버스 인터페이스(201)가 트랜젝션의 마지막 엔트리를 전송할때, 상기 인터페이스(201)는 BV 신호 라인을 따라 프로세서 연결 버스(120)의 프로세서 연결 링크 패키지 완성(ILPC) 신호 라인을 포착한다. 링크(107)가 패키지의 마지막 엔트리를 수신할때, 인터페이스(201)는 마지막 IBACK를 다시 전송한다. 링크(107)가 마지막 IBACK를 수신할때, 인터페이스(201)는 그의 PREQO 요청 신호를 제거한다. 링크(117)가 패키지 요청이 제거되었다는 것을 알때, PACK 1 신호를 제거한다. 만일 링크(107)가 그의 입력 작업 대기행렬(202)내에 다른 트랜젝션 패키지를 갖는다면, 먼저 패키지로부터의 PACK 1 신호가 취소된 후 인터페이스(201)는 다시 PREQ 0 라인을 포착한다.
링크가 다른 링크로부터 완성 트랜젝션 패키지를 수신하였을 때, 링크는 자신의 시스템 버스상에서 상기 트랜젝션을 시작한다.
프로세서 연결 링크의 주기능은 프로세서간에 연산적인 전송을 하도록 하는 것인데, 특히, 한 프로세서내의 처리 유니트로 부터 다른 프로세서내의 주축적기로의 전송을 허용하는 것이다.
이와같은 기능의 필요성은 두개의 프로세서에 의해 정보가 공유되는 주축적기내에 축적된 정보를 동일하게 한 결과로서 야기된다. 하나의 프로세서가 동일 축적기내의 공유 정보를 변화시키고자 할때, 상기 프로세서는 정보를 로크시키는 세이포르를 사용하여 상기 프로세서가 정보를 갱신시키는 처리중에 있는 동안 다른 프로세서가 상기 정보를 참고하지 않도록 한다. 축적기가 동일하기 때문에, 프로세서는 자신의 주축적기는 물론 다른 측상의 동일한 주축적기를 로크시켜야만 한다.
주축적기내의 여러개의 블럭의 정보를 로킹하고 언로킹하는 것은 관련 정보의 블럭과 연관된 주축적기의 세마포르상의 판독-수정-기록(RMW)동작을 수행하므로써 행해진다. 세마포르는 미리 지정된 위치에 있는 각 주축적기이다. 이름이 의미하는 바와같이, RMW동작을 축적위치의 내용을 판독하고, 판독 내용을 수정하고, 수정된 내용을 다시 축적위치내로 기록시키는 작용을 포함한다. 처음의 수정되지 않은 위치의 내용은 요청 유니트에 응답으로 전송된다. 요청 유니트는 세마포르를 성공적으로 로크했는가, 또는 세마포르가 현재 임의의 다른 유니트에 의해 로크되어 있는가를 결정하기 위해 응답을 검사한다. RMW동작은 트랜젝션의 명령 필드내에 RMW명령의 수신에 응답하여 주축적 회로에 의해 주축적기내에 실행된다. RMW동작은 자동적으로 실행된다. 여기에서, 주축적기의 실행 회로는 RMW동작의 실행동안 다른 주축적 동작이 실행되는 것을 허용하지 않는다.
프로세서 0(101)의 처리 유니트는 목적지 코드내의 EXTERNAL 비트를 포착하고, 트랜젝션의 목적지로서 주축적기를 표시하므로써 프로세서(111)의 주축적기(112)를 로크시킨다. 이는 동작의 목적지가 주축적기(112)만이며, 주축적기(102)는 아니라는 것을 나타낸다. 이와같은 동작은 프로세서(111)의 주축적기(112)상에서만 수행된다. 이는 시스템(100)이 갱신모드가 아닐때만 수행된다.
프로세서 0(101)의 처리 유니트는 시스템(100)이 갱신 모드일 때, EXTERNAL 비트를 포착함이 없이 트랜젝션의 목적지로서 주축적기를 표시하므로써 주축적기(112)를 로크 시킨다. 이는 두개의 주축적기(102),(112)가 동작의 목적지라는 것을 지시한다. 그러므로, 내부 및 외부 주축적기로의 전송은 처리 유니트의 단일 요청으로부터 초래되며, RMW동작은 두개의 프로세서(101),(111)의 주축적기(102),(112)상에서 수행된다. 그러나 다른 프로세서로 전송되는 메모리 동작은 소스 프로세서내의 메모리 동작과 동일한 시간에서 수행되지 않는다.
다른 프로세서의 주축적(외부 동작) 기만에 지정된 판독-수정-기록 동작 및 두개의 프로세서의 주축적기(갱신 동작)에 지정된 판독-수정-기록 동작 간에는 중요한 차이점이 존재한다. 전자의 경우에, 소스 처리 유니트는 다른 프로세서의 주축적기로부터의 응답을 예상하나, 후자의 경우에, 소스 처리유니트는 다른 프로세서의 외부, 주축적기로부터의 응답을 예상하지 못한다. 이는 후자의 경우에는 자신의 프로세서의 내부, 주축적기로부터 응답을 수신하기 때문이다. 그렇기 때문에, 링크(107),(117)는 외부 주축적기로부터의 판독-수정-기록 동작을 갱신시키기 위한 응답이 소스 처리 유니트에 도달되는 것을 차단시키는 수단을 제공한다.
링크로 하여금 상기 결과를 수행하도록 하는 수단이 제 3a 도 및 제 3b도에 도시되어 있다. 이들 도면이 제시됨에 따라, 소스 처리 유니트가 EXTERNAL 동작에서의 소스로서 표시되는 반면 링크는 갱신 동작에서의 판독-수정-기록의 소스로서 표시된다.
제 3a 도는 갱신 판독-수정-기록 동작의 트랜젝션을 도시한다. 프로세서 0(101)의 처리 유니트(103) 또는 (104)는 요청의 소스이며, 링크(107)는 소스 코드내의 내부 처리 유니트(103) 또는 (104)를 표시하고, 목적지 코드내의 내부 주축적 유니트(102)를 표시하는 트랜젝션을 수신한다. 주축적기(102)가 상기 트랜젝션에 응답하여 자체상의 RMW동작을 실행하는 것은 물론 링크(107)는 주축적기(102)가 트랜젝션의 함축적인 목적지라는 것을 인정한다. 상술된 바와같이, 링크(107)의 시스템 버스 인터페이스(200)는 내부 링크를 표시하기 위해 수신된 트랜젝션의 소스 코드를 변화시킨다. 링크(117)는 링크(107)가 프로세서 연결 버스(120)를 거쳐 수정된 트랜젝션을 전송하는 프로세서 1(111)의 관점으로부터의 내부 링크이다. 링크(117)는 변화없이 주축적 유니트(112)에 트랜젝션을 통과시킨다. 주축적 유니트(112)는 자체로 요청된 RMW동작을 실행하며, 트랜젝션의 소스로서 내부 주축적 유니트를, 시스템 버스(115)상에 목적지로서 내부 링크를 확인하는 응답 트랜젝션을 인정하므로써 실행을 확인한다. 주축적 유니트(112)의 관점으로부터, 내부 주축적 유니트와 링크(117)는 내부 링크이다.
링크(107)가 트랜젝션의 목적지라는 것을 알게 되면, 링크(117)는 링크(107)에 응답 트랜젝션을 전송하지 않고, 그것을 취소한다. 그러므로, 프로세서 1(111)의 주축적 유니트(112)로부터의 응답이 프로세서 0(101)의 주축적 유니트(112)로부터의 응답이 프로세서 0(101)의 소스 처리 유니트(103 또는 104)에 도달되는 것이 방지된다.
외부 판독-수정-기록 동작의 트랜젝션은 제 3b 도에 도시되어 있다. 프로세서 0(101)의 처리 유니트(103 또는 104)가 RMW 요청의 소스라고 가정하면, 링크(107)는 소스 코드내의 내부 처리 유니트(103 또는 104)를 표시하며, 목적지 코드내의 외부 주축적 유니트(112)를 표시하는 트랜젝션을 수신한다. 외부 주축적 유니트(112)가 표시되기 때문에, 주축적기(102)를 제회하고 링크(107)가 트랜젝션에 응답한다. 링크(107)의 시스템 버스 인터페이스 유니트(200)는 링크(107)가 트랜젝션의 목적지라는 것을 인정하며, 외부 처리 유니트를 표시하기 위해 트랜젝션의 소스 코드를 변화시키며, 내부 주축적 유니트를 설명하기 위해 목적지 코드를 변화시킨다.
제 3a 도의 예에서처럼, 내부 및 외부 목적지는 링크(107)가 프로세서 연결 버스(120)를 거쳐 수정된 트랜젝섹션을 전송하는 프로세서 1(111)의 관점을 반영한다. 링크(117)는 변화없이 주축적 유니트(112)에 트랜젝션을 전송한다. 주축적 유니트(112)는 요청된 RMW동작을 실행하며, 시스템 버스(115)상에 트랜젝션의 소스로서 내부 주축적 유니트(112)를, 목적지로서 외부 처리 유니트(103 또는 104)를 지정하는 응답 트랜젝션을 전송시키므로써 실행을 확인한다. 링크(117)는 트랜젝션의 목적지라는 것을 인정한다. 링크(117)의 시스템 버스 인터페이스는 트랜젝션을 수신하며, 그의 소스 코드를 외부 주축적 유니트를 표시하도록 변화시킨다. 이와 같은 경우에, 내부 및 외부 목적지는 링크(117)가 프로세서 연결 버스(120)를 거쳐 수정된 트랜젝션을 전송하는 프로세서 0(101)의 관점을 반영한다. 그후 링크(107)는 변화없이 지정된 처리 유니트(103) 또는 (104)에 트랜젝션을 전송한다.
제 4 도에 도시된 시스템 버스 중계기(SBAD)(106)로 관심을 돌려보기로 한다. 중계기(106),(116)는 동일하며, 따라서 중계기(106)의 설명을 중계(116)에도 동일하게 적용된다. 버스 중계기는 공지되어 있으며, 여기에서는 단지 본 발명의 이해에 언급된 중계기(106)의 부분만이 제 4 도에 도시되며, 설명될 것이다.
중계기(106)는 종래의 중재회로(ARB)(300)를 포함한다. 시스템 버스를 시행할 수 있는 다수의 프로세서 0(101)의 유니트중의 시스템 버스 요청(SBREQ)라인은 시스템 버스 요청 제어(SBREQCTRL)회로(301)를 통해 중계 회로(300)에 접속된다. 시스템 버스 허용(SBGRANT) 라인은 중계기(106)로부터 멀리 위치하며, 상기 유니트 각각은 버스를 사용할 수 있다. SBGRANT 라인은 또한 시스템 버스 요청 제어회로(301)에 접속된다. 갱신 v동작을 시작할 수 있는 프로세서 0(101)의 유니트중의 판독-수정-기록 프로세서 연결RMW요청(RMWREQ)라인은 시스템 버스 요청 제어회로(301) 및 OR 동작회로(303)의 입력에 접속된다. OR 동작회로의 출력은 유니트 요청(UREQ)으로 언급되며, 합성 판독-수정-기록 프로세서 연결 요청을 표현한다. 이는 판독-수정-기록-제어(RMWCTRL)회로(302)를 유도한다.
G로서 언급되는 RMWCTRL회로(302)의 출력은 합성 판독-수정-기록 프로세서 연결 허용을 표현한다. 이는 시스템 버스 요청 제어회로(301) 및 OR 동작회로(303)의 디스에이블(DIS)입력에 접속된다.
OR 동작회로(303)는 논리적으로 그의 입력에 나타나는 신호를 신호 합성 신호로 결합한다. 회로(303)는 선택적으로 합성 신호를 그의 출력으로 게이트 한다. 회로(303)의 게이팅 기능은 RMWCTRL회로(302)로부터 GO신호 라인에 의해 제어되며, 중계기(106)의 RMW시작 검출기(305)로 부터의 RMWST신호 라인에 의해 제어된다. 이와 같은 신호 라인은 회로(303)의 디스에이블(DIS) 및 인에이블(EN) 입력에 각각 접속된다. GO신호가 RMWCTRL(302)에 의해 발생될때까지, 회로(303)는 인에이블되며, 합성신호가 UREQ신호라인으로 진행하는 것을 막는다. RMWCTRL에 의해 GO신호 라인의 포착은 회로(303)을 디스에이블되도록 하며, 합성 신호를 그의 출력으로부터 차단시켜 UREQ신호 라인이 취소되도록 한다. 검출기(305)에 의해 RMWST신호 라인의 포착은 회로(303)를 다시 인에이블 시킨다.
RMWST신호는 RMW시작 검출기(305)가 링크(107)가 이닌 프로세서 0(101)의 유니트 갱신 RMW동작의 수행을 성공적으로 시작했다는 것을 검출할때 RMW 시작 검출기(305)에 의해 발생된다. RMW 시작 검출기(305)는 동작이 RMW 인가를 결정하기 위해 SBC버스를 모니터 한다. 또한 동작의 목적지가 주축적 유니트(102)인가를 결정하기 위해 SBDC 버스를 모니터한다. 또한, 링크(107)가 트랜젝션의 소스가 아니라는 것을 보장하기 위해 링크(107)의 SBGRANT리드를 모니터한다. 또한 버스 트 랜 젝션이 실패로 되지 않고 성공적으로 진행되는 것을 보장하기 위해 SBBA신호를 모니터 한다. 만일 모든 이와같은 상태가 만족되면, RMW시작 검출기(305)는 RMW신호 라인을 포착한다.
시스템 버스 요청 제어회로(301)는 게이트회로이다. GO신호가 RMWCTRL(302)에 의해 발생될때까지, 회로(301)는 RMWREQ신호를 발생하는 임의의 유니트의 SBREQ신호가 중계회로(300)에 도달되는 것을 방지한다. 그러므로, GO신호가 주어지기전에, 중계회로(300)는 시스템 버스 요청간에 중계하며, 갱신 RMW동작을 수행하는 것을 원하지 않는 유니트에만 시스템 버스 사용을 허용한다.
OR동작회로에 의한 RUEQ신호 라인의 포착은 갱신 RMW동작의 수행에 대한 요청이 진행중이라는 것을 RMWCTRL회로(302)에 지시한다. 회로(302)는 회로(302)가 RMW동작이 진행된다는 것을 결정할때 GO 라인 신호를 펄스 구동시킨다. GO신호의 수신은 SBQERCTRL회로(301)로 하여금 모든 진행중인 SBREQ신호를 중계회로(300)에 전송하도록 한다. 그러므로, GO신호가 주어진 후에, 중계회로는 RMW동작을 수행하기를 원하는 처리 유니트를 포함하여 모든 시스템 버스 요청간을 중계한다. 중계회로(300)가 SBGRANT라인을 포착하므로써 갱신 RMW동작을 수행하기를 원하는 처리유니트의 프로세서 연결 시스템 버스 사용을 허용할때, 상기 유니트는 상기 갱신 RMW동작의 성공적인 수행을 시작하며, 시작 검출기(305)는 RMWST라인을 펄스 구동한다. RMWST신호의 수신은 SBREQCTRL회로(301)로 하여금 그들의 RMWREQ라인을 현재 포착하고 있는 임의의 유니트의 SBREQ 신호가 중계회로(300)에 도달되지 못하도록 한다.
RMWCTRL회로(302)는 갱신 RMW동작이 수행되어지는 때를 제어한다. 특히, RMWCTRL회로(302)의 타스크는 임의의 프로세서내에서 시작된 갱신 RMW동작이 다른 갱신 RMW동작이 두개의 프로세서상에서 수행되어지기 전에 두개의 프로세서 상에서 행해지도록 보장하는 것이다. 다른 갱신 RMW동작은 동시에 또는 순차적으로 시작되며, 시작된 하나의 갱신 RMW동작은 하나의 갱신 RMW동작이 수행되기 전에 수행되어지는 것을 방지한다. 이와같은 목적을 위해, RMWCTRL회로(302)은 중계기 연결 통신 채널(IAC)(121)에 의해 다른 시스템 버스 중계기(116)의 유사한 회로에 접속된다.
중계기 연결 채널(121)는 4개의 신호 라인으로 이루어져 있다. RMWCTRL회로(302)는 측 0 중계기 요청(AREQ 0)라인을 포착하므로써 판독-수정-기록 프로세서 연결 요청을 발생하며, 중계기(116)에 수행되어질 갱신 RMW동작을 허용하기를 원한다는 것을 통보한다. 중계기(116)의 RMWCTRL회로는 측 1중계기 확인(AACK 1)라인을 포착하므로써 판독-수정-기록 프로세서 연결 허용을 발생한다. 유사한 방법으로, 중계기(116)의 RMWCTRL회로는 측 1 중계기 요청(AREQ 1)라인상의 중계기(106)의 RMWCTRL회로(302)에 갱신 RMW동작의 통보를 전송한다. 또한, RMWCTRL회로(302)는 측 0 중계기 확인(AACK 0)신호 라인상에 그의 순응을 시그널한다.
RMWCTRL회로(302)의 동작은 제 5 도의 상태 다이아그램에 의해 정의 된다. 프로세서 0(101)의 유니트 또는 다른 중계기(116)로부터 갱신 RMW동작에 대한 어떠한 요청도 진행되지 않을때, RMWCTRL회로(302)는 휴지상태(500)에 존재하게 된다. 회로(302)는 전력 클리어(PWCL) 신호를 활성화시키는 초기화 또는 시스템 리세트에 응답하여, 또는 에러 정지(ERST)신호를 초래하는 프로세서 0(101)내의 중대한 에러발생에 응답하여 휴지상태(500)로 된다. 휴지상태(500)에서, 회로(302)의 모든 출력 신호 라인이 취소된다. 회로(302)는 UREQ입력신호 라인이 취소되는 동안 휴지상태(500)로 남게 되어 프로세서 0(101)의 어떠한 유니트로 갱신 RMW동작을 요청하지 않는다는 것을 지시하며, AREQ 1신호 라인은 취소되어 어떠한 갱신 RMW동작도 다른 프로세세에서 시작되지 않는다는 것을 지시하며, AACK 1 신호 라인이 취소되어 다른 중계기(116)가 중계기(106)로 하여금 갱신 RMW동작을 수행하기 위해 진행하도록 하지 못한다는 것을 지시한다.
휴지상태(500)에서, 회로(302)는 다른 중계기(116)에 중계기 요청을 발생시키지 않기 때문에, 회로(302)에 의해 중계기(116)로부터의 중계기 확인 신호의 수신은 회로(302)로 하여금 에러 상태(507)로 되게 하여 중계기-중계기 통신에 에러 신호가 발생하도록 한다. 그후 회로(302)는 휴지상태(500)로 복귀된다.
UREQ신호의 수신을 프로세서 0(101)의 유니트 중의 적어도 한개가 갱신 RMW동작을 요청하고 있으며, 회로(302)가 상태(501)로 진행한다는 것을 회로(302)에 지시한다. 상태(501)에서, 회로(302)는 회로(302)가 갱신 RMW동작의 수행을 허용하기를 원한다는 것을 다른 중계기(116)에게 통보하기 위해 AREQ 0 신호 라인을 포착한다. 회로(302)는 그후 중계기(116)로부터의 중계기 확인 신호의 수신을 대기한다.
회로(302)는 중계기(106)가 마스터인가 슬레이브인가, 즉, 두개의 중계기(106),(116)중의 어느것이 중계기간 통신의 우선 순위를 갖는가를 결정하기 위해 프로세서 0(191)의 LIDS신호 라인에 접속된다. 중계기(106)가 LIDS신호 라인에 의해 마스터 중계기로 지정된다면, 회로(302)중 계기(116)로부터의 중계기 요청에 응답을 하지 않으며, 회로(302)가 중계기(116)로부터 중계기 확인을 수신할때까지 상태(501)를 유지한다.
그러나, 만일 중계기(106)가 슬레이브로 지정된다면, 회로(302)는 중계기(116)로 부터 중계기 요청을 수신하며, 회로(302)는 상태(501)를 따라, 회로(302)가 AACK 0라인을 펄스 구동하므로써 중계기(116)에 중계기 확인을 발생시켜, 중계기(116)로 하여금 갱신 RMW동작으로 진행하도록 허용하는 상태(503)로 된다. 회로(302)의 중계기(116)에 대한 중계기 요청은 진행중에 있지 않게 된다.
상태(501)로부터 상태(503)로 될때, 슬레이브 회로(302)는 중계기(116)로부터 아직 어떠한 중계기 확인을 수신하지 못한다. 즉, AACK 1라인이 포착되지 않는다. 그러므로, 회로(302)는 상태(503)를 떠나, 중계기(116)로부터 중계기 확인의 수신을 대기하는 상태(505)로 진행한다. 그러나, 중계기(116)에 중계기 확인이 제공되면, 프로세서 1(111)로 하여금 갱신 RMW동작을 시작하도록 하며, 회로(302)는 프로세서(111)의 링크(117)가 갱신 RMW트랜젝션을 링크(107)로 전송할 것을 예상하며, 링크(107)가 선정된 시간주기내에서 주축적(102)상에 갱신 RMW동작을 수행할 것을 예상한다. 프로세서 0(101)의 주축적기 유니트(102)상의 RMW 트랜젝션의 성공적인 수행은 RMWCTRL신호 라인의 포착을 통해 RMW 도착 검출기(304)에 의해 회로(302)에 시그널링한다(제 4 도 참조). 그러므로, 상태(505)에서, 회로(302)는 RMWCTRL 및 AACK 1 신호의 수신을 대기하는 선정된 시간 주기를 맞추기 시작한다.
제 4 도를 잠시 참조하면, RMWARR신호는 RMW 도착 검출기(304)가 주축적 유니트(102)에서 링크(107)로부터 갱신 RMW동작의 성공적인 도착을 검출할때 상기 RMW 도착 검출기(304)에 의해서 발생한다. 검출기(304)는 시스템(100)이 갱신 모드 상태에 있는가를 결정하기 위해 SBUD라인을 모니터한다. 또한, 동작이 RMW 상태에 있는가를 결정하기 위해 SBC 버스를 모니터하여, 동작의 목적지가 주축적 유니트(102)인가를 결정하기 위해 SBDC버스를 모니터한다. 또한, 버스 트랜젝션이 주축적 유니트(102)에 성공적으로 도착되었는가를 결정하기 위해 주축적 유니트(102)의 SBACK라인을 모니터한다. 검출기(304)가 이들 모든 조건이 만족되었다는 것을 감지했을 때, 검출기(304)는 RMWARR신호 라인을 포착한다.
제 5 도를 다시 참조하면, 중계기 요청이 아직 진행중에 있을 때, 슬레이브회로(302)가 선정된 시간이 끝나기 전에 상태(505)에서 RMWARR신호를 수신한다면, 슬레이브 회로(302)는 링크(107)가 프로세서 1(111)으로부터 수신된 RMW트랜젝션이 주축적기(102)상에서 성공적으로 수행되었다는 것을 안다. 그렇기 때문에, 회로(302)는 그의 진행중이 아닌 중계기 요청에 대한 중계기 확인의 수신을 대기하기 위해 상태(501)로 다시 진행한다. 상태(501)에서 회로(302)상술된 바와같은 방법으로 진행한다.
만일 슬레이브 회로(302)가 선정된 시간이 끝나기전 그리고 그의 중계기 요청이 아직 진행되지 않는 동안에는 상태(505)내에 RMWARR신호를 수신하지 않는다면, 회로(302)는 RMW 지연도착 에러 상태(506)로 진행하여, 시스템에 RMW동작 트랜젝션이 제때에 링크(107)에 의해 성공적으로 수행되지 않았다는 것을 시그널한다. 상태(506)로부터, 회로(302)는 아직 GO신호 라인을 포착하지 않았으며, UREQ신호 라인이 아직 포착중이다. 그러므로, 회로(302)는 휴지상태(500)로 진행한다. 그러나, 슬레이브 회로(302)가 아직 GO신호 라인을 포착하지 않았기 때문에, UREQ신호 라인이 아직 포착되고 있다. 그러므로, 회로는 AREQ 0라인을 재포착하여 AACK 1 신호의 수신을 대기하는 상태(501)로 진행한다.
만일, 슬레이브 회로(302)가 상태(505)에서 두개의 AACK 1 신호 및 RMWARR신호를 수신한다면, 회로(302)는 상태(502)로 진행하여 RMW 신호를 활성화시키며, 따라서, 그의 프로세서의 RMW동작이 처리될 수 있게 된다.
마지막으로, 만일 슬레이브 회로(302)가 상태(505)에서 AACK 1 신호를 수신하고, RMWARR신호를 수신하지 않는다면, 회로는 상태(504)로 진행한다. 상태(504)에서, 회로(302)는 RMWARR신호를 대기하는 선정된 시간주기를 계속 맞춘다.
상태(504)에서, 만일 선정된 주기가 회로(302)에 의한 RMWARR신호의 수신없이 타임 아웃된다면, 회로(302)는 상태(506)로 진행하며, 여기에서, 회로는 상술된 바와같이 동작을 수행한다. 그러나, 만일, 회로(302)가 선정된 주기가 끝나기 전에 RMWARR신호를 수신한다면, 회로(302)는 상태(504)를 떠나, 상태(502)로 진행하여 그의 프로세서의 갱신 RMW동작이 가능하도록 GO신호를 발생시킨다. 상태(502)에서의 회로(302)의 활성화 및 차순의 상태는 다음과 같다.
슬레이브회로(302)가 상태(505) 및 (504)를 통해 상태(503)으로부터 상태(502)로의 전이가 진행되는 상황하에서의 조건을 고려해 보면, 정상적인 즉, 비에러성 조건하에서, 회로(302)는 RMW신호 라인에 의해 시그널된 것처럼 프로세서 0(101)상의 갱신 RMW동작의 성공적인 수행 상태가 회로(302)에 의한 AACK 0 신호 발생 뒤에 오는 경우에만 GO신호를 발생한다.
상태(501)를 다시 참조하며, 회로(302)가 상태(501)에 존재하는 동안, 중계기(116)로부터의 중계기 확인의 수신은 회로(302)에 요청된 RMW동작이 처리된다는 것을 알린다. 이는 중계기(106)가 LIDS신호 라인에 의해 마스트 또는 슬레이브를 지정하는 경우에는 참이다. 이에 응답하여, 회로(302)는 상태(502)로 진행하는데, 여기에서, 회로(302)는 GO신호를 펄스 구동하여 요청된 RMW동작이 진행되도록 허용한다. 만일, 중계기(116)로부터의 중계기 요청이 진행처리가 된다면, 회로(302)는 휴지상태(500)로 다시 진행한다. GO라인의 포착은 회로(303)로 하여금 UREQ라인을 취소하게 하며, 따라서 회로(302)는 휴지상태(500)로 남게 된다.
만일, 회로(302)가 상태(502)에 존재하는 동안, 중계기(116)로부터 중계기 요청을 수신한다면, 회로는 상태(503)로 진행하며, 중계기(116)에 중계기 확인을 발행하여 중계기 (116)로 하여금 갱신 RMW동작을 진행하도록 허용한다.
상태(503)에서, 회로(302)는 중계기(116)로부터 중계기 확인을 수신하며, 따라서, 회로(302)는 상태(503)를 떠나 상태(504)로 진행한다. 상태(504)에서, 회로는 RMW동작 트랜젝션이 프로세서 0(101)상에서 성공적으로 수행하도록 허용하는 선정된 시간 주기를 맞추기 시작한다. 상태(504)에서의 회로(302)의 활성화 및 차순의 상태는 상술된 바와 같다.
회로(302)가 마스터인가 슬레이브인 경우의 회로(302)가 상태(503)로부터 상태(504)를 통해 상태(502)로 트랜젝션을 수행하는 경우하에서의 상태를 요약하면, 정상 상태하에서, 회로(302)는 RMW동작의 프로세서 0(101)상의 성공적인 수행이 회로(302)에 의한 AACK 0신호의 발생후에 행해지는 경우에만 GO신호를 발생한다.
지금, 회로(302)가 휴지상태(500)에 있는 동안 중계기 요청을 수신할때의 회로(302)의 동작을 고려한다. 만일, 회로(302)가 UREQ신호 수신과 동시에 AREQ1 신호를 수신하면, 회로(302)는 UREQ에 우선순위를 주며, 회로(302)는 AREQ 1을 무시하고, 상술된 바와같은 UREQ신호에 응답한다.
회로(302)가 AREQ 1신호만을 수신한다면, 회로(302)는 휴지상태(500)를 떠나 상태(503)로 진행한다. 여기에서, 회로(302)는 그의 중계기 확인 라인을 펄스 구동하며 프로세서 1(111)으로 하여금 RMW동작으로 진행하도록 허용한다.
회로(302)가 상태(503)에 있는 동안 UREQ신호를 수신한다면, 회로(302)는 그의 중계기 요청 라인을 포착하므로써 응답하며, 그후, 슬레이브 회로(302)는 상태(503)로 진행한다.
회로(302)가 중계기 요청을 포착하지 않은 경우에 상태(503)에서 중계기 확인을 수신한다면, 에러가 발생되며, 회로(302)는 상태(507)로 진행하여 시스템에 중계기-중계기통신 에러의 발생을 통보한다. 회로(302)는 그후 휴지상태(500)로 진행한다.
만일, 회로(302)가 상태(503)에서 UREQ나 AACK 1신호 어느 것도 수신하지 못한다면, 회로(302)는 상태(505)로 진행하여 RMWARR신호의 수신동안 허용되는 선정된 시간 주기를 맞춘다.
만일, 회로(302)가 상태(505)에서 UREQ신호를 수신한다면, 회로는 그의 중계기 요청 라인을 포착하므로써 응답하며, 그후 회로는 상태(505)로 진행한다.
만일, 회로(302)가 중계기 요청을 포착하지 않는 경우에 상태(505)에서 중계기 확인을 수신한다면, 에러가 발생되며, 회로(302)는 상태(507)로 진행하여 시스템에 중계기-중계기 통신 에러의 발생을 통보한다. 회로(507)로부터 회로는 휴지상태(500)로 다시 진행한다.
상태(505)에서, 중계기(302)가 RMWARR신호만을 수신한다면, 회로는 휴지상태(500)로 다시 진행한다. 그러나, 만일, 회로(302)가 중계기(116)로부터 RMWARR신호 및 중계기 요청 모두를 수신한다면, 회로(302)는 상태(503)로 다시 진행하여 중계기(116)에 중계기 확인을 발생한다. 상태(503)에서, 회로(302)는 상술된 바와 같이 진행한다.
마지막으로, 상태(504)에서, 중계기(302)가 선정된 시간 주기가 타임 아웃전에 RMWARR신호를 수신하지 않는다면, 회로는 상태(506)로 진행하여 시스템에 지연 RMW 도착 에러를 시그널한다. 상태(506)에서 회로(302)는 상술된 바와같이 진행한다.
회로(302)가 상태(500)로부터 상태(503)로 전이되는 상태를 고려할때, 정상 상태에서, 회로(302)는, RMWARR신호 라인에 의해 시그널링된 것과 같이 프로세서 0(101)상에서 RMW동작의 성공적인 수행이나, 회로(302)에 의해 AACK 0신호의 발생후에 행해지는 경우에만 AACK 0신호를 발생한다.
물론 상술된 실시예에 대한 여러 가지 변형 및 수정이 다른 동작, 예로, 기록 테스트-세트 동작 또는 갱신 모드에서 수행되는 외부 RMW동작에서도 이루어질 수 있다. RMW 제어 메카니즘은 시스템 버스 중계기에 포함될 필요가 없으며, 분리적으로 구성될 수 있다. 상술된 바와같이, 본 계획은 이중의 프로세서 시스템에 제한되는 것이 아니라 다수의 프로세서를 갖는 다중 처리 시스템에도 사용될 수 있다. 그와 같은 변형 및 수정은 본 발명의 영역을 벗어남이 없이 이루어질 수 있다. 그렇기 때문에, 그와같은 변형 및 수정은 다음의 청구범위에 의해 보호된다.

Claims (9)

  1. 각각 적어도 한개의 소자와, 다른 프로세서의 주축적기의 내용과 동일한 하나의 주축적기와, 처리 소자와 주축적기를 상호 접속하는 버스와, 상기 버스에 결합된 버스 엑세스 중계기와, 전송을 위해 다른 프로세서의 버스와 링크에 결합된 링크로 이루어진 비동기적으로 동작하는 한쌍의 프로세서로 구성된 이중 프로세서 시스템에 있어서, 프로세서 각각이, 처리 소자로부터 버스를 거쳐 주축적 로킹 동작을 수신하여 다른 프로세서의 링크에 로킹 동작을 전달하며, 다른 프로세서의 링크에 의해 전달된 로킹 동작에 수신하여 주축적기상에서 전달된 동작을 수행하도록 버스를 엑세스하기 위해 링크내에 포함된 수단과, 전달된 동작의 주축적기상에서의 수행을 검출하는 수단과, 처리 소자에 연관되어 처리 수자용 중계기 버스 엑세스로 부터 주축적 로킹 및 동작을 수행하도록 요청하는 수단과, 중계기에 연관되어 상기 요청을 다른 프로세서의 중계기에 시그널링하라는 요청에 응답하는 수단과, 중계기에 연관되어 다른 프로세서의 중계기로부터의 요청에 대한 시그널링에 응답하여 먼저 시그널된 확인이 검출 수단에 의해 전송된 동작 수행을 검출한 다음에 이루어질때만 확인을 시그널링하는 수단과, 중계기에 연관되어, 다른 프로세서의 중계기로부터의 확인의 시그널링에 응답하여, 먼저 시그널된 확인이 검출된 수단에 의해 전송된 동작 수행을 검출한 다음에 이루어질때만 요청된 버스 엑세스를 허용하는 수단등으로 이루어진 것을 특징으로 하는 이중 프로세서 시스템.
  2. 제 1 항에 있어서, 로킹 동작이 주축적기에 의해 실행되는 판독-수정-기록 동작인 것을 특징으로 하는 이중 프로세서 시스템.
  3. 제 1 항에 있어서, 주축적기상의 로킹 동작을 수행하는 처리 소자 및 링크중의 하나에 응답을 전송하기 위해 주축적기내에 포함된 수단을 더 구비하는 것을 특징으로 하는 이중 프로세서 시스템.
  4. 제 3 항에 있어서, 상기 로킹 동작이 제 1, 제2 형태의 로킹 동작중의 하나이며, 링크가 링크에 전송된 응답에 수신에 응답하여 제 1 형태의 로킹 동작에 대한 응답을 버리고, 제 2 형태의 로킹 동작에 대한 응답을 다른 프로세서의 링크에 전송하는 수단 및 다른 프로세서의 링크에 의해 전달된 응답의 수신에 응답하여 로킹 동작을 수행하는 처리 소자에 전달된 응답을 전송하는 수단을 포함하는 것을 특징으로 하는 이중 프로세서 시스템.
  5. 상호 비동기적으로 동작하는 다수의 프로세서를 갖는 처리 시스템내에서 동작을 명렬하는 방법에 있어서, 제 2 프로세서상에서 인수해야 할 동작을 제 1 프로세서 상에서 인수하는 단계(가)와, 제 2 프로세서에 동작의 인수를 통보하는 단계(나)와, 인수된 동작이 제 1 프로세서상에서 인수될때까지, 동일한 동작은 인수되는 것이 방지되고 다른 동작은 제 2 프로세서의 각 프로세서상에서 인수되어지도록 허용하는 단계(다)로 이루어진 처리 시스템내 동작 명령 방법.
  6. 제 5 항에 있어서, 상기 단계(나)가 하나의 동작이 인수에 응답하여, 동일한 동작이 하나 이상의 프로세서중 적어도 한개의 프로세서상에서 인수되는가를 결정하는 단계를 더 포함하며, 상기 단계(다)가 동일 동작의 인수결정에 응답하여 동일 동작이 제 1 프로세서상에서 인수될때까지 하나의 동작의 인수는 방지되고 다른 동작은 제 2 프로세서중의 각 프로세서상에서 인수되어지도록 허용하는 단계와, 동일 동작의 불-인수 결정에 응답하여, 인수동작이 제 1 프로세서상에서 인수될때까지 동일한 동작의 인수는 방지되고, 다른 동작은 제 2 프로세서상에서 인수되어지도록 허용하는 단계를 더 포함하는 것을 특징으로 하는 처리 시스템내 동작 명령 방법.
  7. 상호 비동기적으로 동작하는 다수의 프로세서를 갖는 처리 시스템에서 특정 동작을 명령하는 방법에 있어서, 다수의 프로세서중 적어도 제 1, 제 2 프로세서상에서 수행되어질 동작을 다수의 프로세서중 제 1 프로세서상에서 시작하는 단계와, 동작의 수행 허용에 응답하여 제 1 프로세서상에서 시작 동작이 수행될 때까지 시작된 동작과 같은 제 2 동작의 수행은 방지되고, 다른 동작은 적어도 제 1, 제 2 프로세서에서의 각 프로세서상에 수행되어지도록 허용하는 단계로 이루어진 처리 시스템내 특정 동작 명령 방법.
  8. 제 7 항에 있어서, 동작의 수행 비허용에 응답하여, 적어요 제 1, 제 2 프로세서상에서 시작동작과 같은 제 2 동작이 수행될때까지 시작동작의 수행은 방지되고, 다른 동작은 수행되도록 허용하는 단계를 더 포함하는 것을 특징으로 하는 처리 시스템내 특정동작 명령 방법.
  9. 제 7 항에 있어서, 동작의 수행 허용에 응답하여 적어도 제 1, 제 2 프로세서상에서 시작동작을 허용하는 단계를 더 포함하는 것을 특징으로 하는 처리 시스템내 특정 동작 명령 방법.
KR1019860700366A 1984-10-17 1985-10-17 이중 프로세서 시스템 KR930008685B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US66196784A 1984-10-17 1984-10-17
US661,967 1984-10-17
US661967 1984-10-17
PCT/US1985/002053 WO1986002475A1 (en) 1984-10-17 1985-10-17 Method of and arrangement for ordering of multiprocessor operations in a multiprocessor system

Publications (2)

Publication Number Publication Date
KR880700353A KR880700353A (ko) 1988-02-22
KR930008685B1 true KR930008685B1 (ko) 1993-09-11

Family

ID=24655833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019860700366A KR930008685B1 (ko) 1984-10-17 1985-10-17 이중 프로세서 시스템

Country Status (7)

Country Link
US (1) US4805106A (ko)
EP (1) EP0196331B1 (ko)
JP (1) JP2575356B2 (ko)
KR (1) KR930008685B1 (ko)
CA (1) CA1239227A (ko)
DE (1) DE3585323D1 (ko)
WO (1) WO1986002475A1 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
EP0240616B1 (en) * 1986-04-04 1993-03-24 International Business Machines Corporation Method to test and set data in a record on disk in one atomic input/output operation
US5202971A (en) * 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability
JP2749819B2 (ja) * 1987-10-26 1998-05-13 松下電工株式会社 共有メモリ制御方式
IT1223142B (it) * 1987-11-17 1990-09-12 Honeywell Bull Spa Sistema multiprocessore di elaborazione con multiplazione di dati globali
US4933901A (en) * 1988-01-11 1990-06-12 Texas Instruments Incorporated Method for assigning priority to read and write requests received closely in time
US4979105A (en) * 1988-07-19 1990-12-18 International Business Machines Method and apparatus for automatic recovery from excessive spin loops in an N-way multiprocessing system
US5175861A (en) * 1988-10-14 1992-12-29 Nec Corporation Lock processing system
US4928222A (en) * 1988-10-31 1990-05-22 International Business Machines Corporation Enhanced semaphore architecture
IT1227711B (it) * 1988-11-18 1991-05-06 Caluso Torino Sistema multiprocessore di elaborazione dati a risorse distribuite condivise e prevenzione di stallo.
IT1227360B (it) * 1988-11-18 1991-04-08 Honeywell Bull Spa Sistema multiprocessore di elaborazione dati con replicazione di dati globali.
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
DE69029995T2 (de) * 1989-11-09 1997-08-21 Ibm Multiprozessor mit relativ atomaren Befehlen
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
US5263150A (en) * 1990-04-20 1993-11-16 Chai I Fan Computer system employing asynchronous computer network through common memory
US5669002A (en) * 1990-06-28 1997-09-16 Digital Equipment Corp. Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory
JP2511588B2 (ja) * 1990-09-03 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5428783A (en) * 1990-11-28 1995-06-27 Motorola, Inc. Lan based loosely coupled large grain parallel processing method
US5293491A (en) * 1990-12-28 1994-03-08 International Business Machines Corp. Data processing system and memory controller for lock semaphore operations
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5269005A (en) * 1991-09-17 1993-12-07 Ncr Corporation Method and apparatus for transferring data within a computer system
US5359715A (en) * 1991-09-16 1994-10-25 Ncr Corporation Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces
US5339427A (en) * 1992-03-30 1994-08-16 International Business Machines Corporation Method and apparatus for distributed locking of shared data, employing a central coupling facility
JP2531903B2 (ja) * 1992-06-22 1996-09-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュ―タ・システムおよびシステム拡張装置
US5428796A (en) * 1992-08-26 1995-06-27 International Business Machines Corporation System and method for regulating access to direct access storage devices in data processing systems
US5418966A (en) * 1992-10-16 1995-05-23 International Business Machines Corporation Updating replicated objects in a plurality of memory partitions
US5455914A (en) * 1993-07-23 1995-10-03 Unisys Corporation Tie-breaking control circuit for bus modules which share command execution
US5721943A (en) * 1993-10-14 1998-02-24 International Business Machines Corporation Negotiable locks for concurrent access of control data by multiple programs
US5550973A (en) * 1995-03-15 1996-08-27 International Business Machines Corporation System and method for failure recovery in a shared resource system having a moving write lock
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US6044444A (en) * 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
DE69737366T2 (de) * 1997-03-21 2007-11-29 Hitachi, Ltd. Elektronische vorrichtung , verfahren zur verwendung der vorrichtung und system mit der vorrichtung
US6041376A (en) * 1997-04-24 2000-03-21 Sequent Computer Systems, Inc. Distributed shared memory system having a first node that prevents other nodes from accessing requested data until a processor on the first node controls the requested data
US6078981A (en) * 1997-12-29 2000-06-20 Intel Corporation Transaction stall technique to prevent livelock in multiple-processor systems
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
JP3481485B2 (ja) * 1999-01-28 2003-12-22 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム
US6453375B1 (en) * 1999-03-23 2002-09-17 Intel Corporation Method and apparatus for obtaining coherent accesses with posted writes from multiple software drivers
US6275915B1 (en) 1999-04-09 2001-08-14 Avaya Technology Corp. Selective memory duplication arrangement
TR199902280A2 (xx) * 1999-09-17 2001-02-21 Netaş Northem Electric Telecommuni̇cation A.Ş. Eş zamanlama devresi.
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
US6370625B1 (en) * 1999-12-29 2002-04-09 Intel Corporation Method and apparatus for lock synchronization in a microprocessor system
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7143414B2 (en) * 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
JP3615219B2 (ja) * 2002-10-29 2005-02-02 株式会社フォークス システムコントローラ、コントロールシステムおよびシステムコントロール方法
US7610200B2 (en) * 2004-08-30 2009-10-27 Lsi Corporation System and method for controlling sound data
JP5105713B2 (ja) * 2005-03-30 2012-12-26 日本電気株式会社 情報処理装置
KR100709385B1 (ko) * 2006-07-19 2007-04-24 주식회사 케이 썸 씨앤 에프 컴퓨터 시스템

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623014A (en) * 1969-08-25 1971-11-23 Control Data Corp Computer communications system
AT316662B (de) * 1970-11-17 1974-07-25 Siemens Ag Schaltungsanordnung für Fernmelde-, insbesondere Fernsprechvermittlungsanlage, die durch mindestens zwei Rechner zentral gesteuert werden
BE790654A (fr) * 1971-10-28 1973-04-27 Siemens Ag Systeme de traitement avec des unites de systeme
US4015426A (en) * 1972-11-20 1977-04-05 Nippondenso Co., Ltd. Fuel control system
US3889237A (en) * 1973-11-16 1975-06-10 Sperry Rand Corp Common storage controller for dual processor system
US4257099A (en) * 1975-10-14 1981-03-17 Texas Instruments Incorporated Communication bus coupler
US4187538A (en) * 1977-06-13 1980-02-05 Honeywell Inc. Read request selection system for redundant storage
US4363094A (en) * 1977-12-29 1982-12-07 M/A-COM DDC, Inc. Communications processor
US4205373A (en) * 1978-05-22 1980-05-27 Ncr Corporation System and method for accessing memory connected to different bus and requesting subsystem
US4370708A (en) * 1978-10-31 1983-01-25 Honeywell Information Systems Inc. Logic system for selectively reconfiguring an intersystem communication link
US4400775A (en) * 1980-02-28 1983-08-23 Tokyo Shibaura Denki Kabushiki Kaisha Shared system for shared information at main memory level in computer complex
US4371928A (en) * 1980-04-15 1983-02-01 Honeywell Information Systems Inc. Interface for controlling information transfers between main data processing systems units and a central subsystem
US4363096A (en) * 1980-06-26 1982-12-07 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
US4374414A (en) * 1980-06-26 1983-02-15 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
US4371754A (en) * 1980-11-19 1983-02-01 Rockwell International Corporation Automatic fault recovery system for a multiple processor telecommunications switching control
JPS58140862A (ja) * 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
US4466098A (en) * 1982-06-11 1984-08-14 Siemens Corporation Cross channel circuit for an electronic system having two or more redundant computers
US4545015A (en) * 1982-12-27 1985-10-01 Pitney Bowes Inc. Word processing system with foreground/background capability
JPS59142799A (ja) * 1983-02-04 1984-08-16 Hitachi Ltd バツクアツプ用蓄電装置付二重化記憶装置
US4594657A (en) * 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4580243A (en) * 1983-09-14 1986-04-01 Gte Automatic Electric Incorporated Circuit for duplex synchronization of asynchronous signals
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4608688A (en) * 1983-12-27 1986-08-26 At&T Bell Laboratories Processing system tolerant of loss of access to secondary storage

Also Published As

Publication number Publication date
EP0196331A1 (en) 1986-10-08
JPS62500549A (ja) 1987-03-05
WO1986002475A1 (en) 1986-04-24
US4805106A (en) 1989-02-14
KR880700353A (ko) 1988-02-22
CA1239227A (en) 1988-07-12
DE3585323D1 (de) 1992-03-12
EP0196331B1 (en) 1992-01-29
JP2575356B2 (ja) 1997-01-22

Similar Documents

Publication Publication Date Title
KR930008685B1 (ko) 이중 프로세서 시스템
EP0618532B1 (en) Deadlock detecting device
US6192391B1 (en) Process stop method and apparatus for a distributed memory multi-processor system
US4979099A (en) Quasi-fair arbitration scheme with default owner speedup
JP2724226B2 (ja) マルチバス多重プロセッサシステムのブロッキングを解除する方法
EP0429787B1 (en) Data transfer apparatus
JPH076126A (ja) プロセッサ間バス伝送方式
JPS6158357A (ja) デ−タ通信方式
JPH0248736A (ja) 情報処理システム
JPS6239789B2 (ko)
JP2001034544A (ja) 共有バス障害診断装置及び方法
JPS593775B2 (ja) バス要求処理装置
JP2842501B2 (ja) 割り込み処理方式及びマルチプロセッサシステム及び割り込み処理方法
JPH03163657A (ja) マルチプロセッサシステム
JPH0668025A (ja) バスアクセス制御方式
JPH0651910A (ja) 二重化バス装置
JPS6367670A (ja) システム間共用資源占有情報管理処理方式
JP2000105753A (ja) データ双方向転送方法
JPH0637780A (ja) 消失フレーム再送方法とその装置
JPH0431137B2 (ko)
JPH077344B2 (ja) 障害プロセッサ判別方法
JPS6228866A (ja) 主記憶アクセス方式
JPS58154029A (ja) 複数の中央処理装置による入出力機器の共有制御方式
JPH0677974A (ja) フレーム通信装置
JPS59188720A (ja) バス集中制御方式

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20020903

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee