KR910001792B1 - 디지탈 컴퓨터 시스템의 데이타 프로세싱 시스템 및 이의 통신로 접속 장치 - Google Patents

디지탈 컴퓨터 시스템의 데이타 프로세싱 시스템 및 이의 통신로 접속 장치 Download PDF

Info

Publication number
KR910001792B1
KR910001792B1 KR1019840005838A KR840005838A KR910001792B1 KR 910001792 B1 KR910001792 B1 KR 910001792B1 KR 1019840005838 A KR1019840005838 A KR 1019840005838A KR 840005838 A KR840005838 A KR 840005838A KR 910001792 B1 KR910001792 B1 KR 910001792B1
Authority
KR
South Korea
Prior art keywords
transaction
data
communication path
interlock
retry
Prior art date
Application number
KR1019840005838A
Other languages
English (en)
Other versions
KR850002619A (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 KR850002619A publication Critical patent/KR850002619A/ko
Application granted granted Critical
Publication of KR910001792B1 publication Critical patent/KR910001792B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4213Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Abstract

내용 없음.

Description

디지탈 컴퓨터 시스템의 데이타 프로세싱 시스템 및 이의 통신로 접속 장치
제1a도 내지 제1c도는 본 발명에 따른 상호 접속 수단으로 실시될 수 있는 여러가지 프로세서 및 장치의 구성을 도시한 블럭도.
제2도는 상호 접속 수단의 신호 구조를 도시한 도면.
제3b도 내지 제3c도는 국부 타이밍(local timing) 신호가 발생되고 상호 접속 수단에 접속된 장치들 사이의 트랜잭션으로 정하는 데 사용되는, 상호 접속 수단의 특정한 실시예에 사용된 여러가지의 타이밍 신호를 도시한 도면.
제3e도는 BSY 및 ARB 순서를 도시한 도면.
제4h도는 상호 접속 수단에 의해 이용된 각각의 트랜잭션 형태의 구조를 도시한 도표.
제5a도는 상호접속 수단의 명령코드를 요약한 도표.
제5b도는 상호 접속 수단의 명령 코드(code)를 요약한 도표.
제5c도는 상호 접속 수단의 데이타 길이 코드를 요약한 도표.
제6도는 응답 코드를 요약한 도표.
제7a도 내지 제7i도는 각각의 레지스터 내의 여러가지 비트에 대한 특정한 이용 상태를 도시한 상호 접속 수단에 의해 이용된 기본 레지스터 셋트를 도시한 도면.
제8a도 내지 제8d도는 본 발명의 재시도 장치를 실시하는 장치들의 블럭도.
* 도면의 주요부분에 대한 부호의 설명
10,32및 50 : 프로세서 12,34, 54및 56 : 메모리
14,36 및 70 : 터미날 16,38 및 74 : 대용량 기억장치
18, : 상호 접속 수단 20,30,42,58,60,68 및 78 : 통신로
22,24,40,72 및 76 : 아답터 140 및 142 : 정보 송수신 장치
144 : 마스터 클럭 146 : 플립 플롭
148 : ANB 게이트 200 : 장치-형 레지스터
202 : 제어 및 상태 레지스터 204 : 버스 오류 레지스터
206 : 오류 인터럽트 제어 레지스터
208 : 오류 벡터 레지스터 210 : 인터럽트 수신지 레지스터
212 : 인터프로세서 인터럽트 마스크 레지스터
214 : 인터프로세서 인터럽트 수신지 레지스터
216 : 인터프로세서 인터럽트 소오스 레지스터
302 : 명령 디코드 유니트 304 : 인터록크 비트 레지스터
312 : 카운터 314 : 제한 셋팅 유니트
330 : 이중 포트 메모리 332 : 제1억세스 포트
334 : 제2억세스 포트 336 : 포트 억세스 레지스터
342 : 인터페이사 344 : 제어기.
본 발명은 디지탈 컴퓨터 구조에 관한 것으로, 더욱 상세하게 말하자면, 프로세서, 메모리(주기억 장치), 및 대용량 기억 장치(예를 들면, 디스크 및 테이프), 콘솔 터미날 (console terminal) 또는 프린터와 같은 I/O(입·출력) 장치 및 그 밖의 다른 디지탈 컴퓨터 시스템에서 사용되는 장치들 상호간의 통신을 위한 상호 접속 수단에 관한 것이다.
특히, 본 발명은 통신로상의 한 장치가 트랜잭션으로 진입하기 위해 통신로상의 다른 장치에 의한 요청에 즉시 응답할 수 없을 때 디지탈 컴퓨터 시스템의 통신로의 제어를 해제하기 위한 개량된 수단을 포함하는 통신로 접속 수단에 관한 것이다.
디지탈 텀퓨터 시스템 및 그 구성 부품들의 제조 가격이 감소됨에 따라, 보다 다양한 형태의 데이타 처리 장치들이 이러한 시스템내에 상호 접속된다. 이러한 데이타 처리 장치들은 속도(즉, 데이타를 수신하거나 송신할 수 있는 속도), 요구된 제어 정보, 데이타 포맷(format) 및 그밖의 다른 특성에 관련된 아주 다양한 특성을 갖고 있고, 이러한 특성 차이하에서는 이 데이타 처리 장치들은 서로 통신되어야 한다. 예를 들어, 프로세서는 종종 주기억 장치(초고속), 디스크 메모리(고속)와 같은 대용량 기억 장치, 및 프린터(초저속)와 같은 출력 장치와 통신해야 한다. 상호 접속 수단의 중요한 특징은 서로 통신하기를 원하는 장치들의 경합 요구(Competing Demand)를 중재할 수 있는 능력에 있다. 따라서, 통신로로 억세스 (Acess)하기 위한 요구를 허용하는데 있어서 소정 형태의 중재가 수행되어야 하므로, 그렇지 못하면 컴퓨터 시스템의 자원(Resource)중 어떤 부분을 부당하게 소모할 수 있기 때문에 중재 프로세스는 효율적이어야 한다. 더욱이, 일반적으로 통신로를 요구하는 장치들사이에 통신로를 할당할때 중재 프로세스가 융통성있게 소정의 측정을 제공하는 것이 바람직하다. 여러가지 장치를 통신로에 부착시키는 경우에, 특히 다중 프로세서를 통신로에 부수적으로 부착시키는 경우에, 중재 장치에 경합 요구가 발생되어, 시스템 동작 및 융통성면에서 바람직하지 못한 제한을 받게 된다.
상호 접속 수단의 또 다른 중요한 특징은 인터럽트(Interrupt)를 어떻게 지지하느냐 하는 점이다. 인터럽트를 급속하는 방식이 종종 통신로에 장치를 부착시킬 수 있는 융통성을 상당히 제한시키게 된다.
단일 중앙 프로세서에 부착된 장치들사이에 통신을 제공하는 것외에도, 이러한 장치들과 1개 이상의 부수적인 프로세서들사이에서, 또한 여러개의 프로세서 자체들 사이에서 억세스하는 것이 종종 요구된다. 이러한 복잡한 상호 접속 문제점이 추가되었다. 특히, 주의를 요하는 프로세서들사이의 통신에는 1개 이상의 프로세서에 캐쉬(Cache)를 사용함으로써 야기되는 문제점이 있었다. 이러한 캐쉬는 캐쉬 데이타가 “유효”할때, 즉 캐쉬 데이타가 일단 캐쉬되기 때문에 주기억 장치내에서 변경되지 않았을 때에 캐쉬로의 억세스가 일어나도록 하기 위한 적절한 단계가 취해지지 않으면 캐쉬가 프로세싱 오류(Processing Error)를 야기시킬 수 있다. 캐쉬 제어가 효율적으로 수행되지 않으면, 시스템의 전체 성능은 상당히 감소될 수 있다.
따라서, 본 발명의 목적은 효율적으로 트랜잭션이 종료되도록 하는 장치들을 상호 접속하기 위한 개량된 수단을 제공하기 위한 것이다.
본 발명의 또 다른 목적은 일정한 시간내에 요청된 응답을 제공할 수 없는‘인터록크’된 형태의 통신로상의 장치가 트랜잭션을 종료하도록 하는 디지탈 컴퓨터에서의 장치들을 상호 접속하기 위한 수단을 제공하기 위한 것이다.
본 발명은 본 발명과 동시에 출원되고 그 내용들이 본 출원 발명에 담겨지는 5개의 관련 출원중의 하나이다. 즉, 관련 출원으로서는 후랭크 씨, 봄바(Frank C. Bomba), 윌리엄 디. 스트렉커(William D. Strecker) 스테펜 알. 젠킨스(Stephen R. Jenkins)의 1983년 9월 22일자 출원된 미합중국 특허 출원 제534, 829호의 디지탈 컴퓨터 시스템에서의 통신로 제어 할당용 중재 메카니즘, 후랭크 씨. 봄바 및 스테펜알. 젠킨스의 1983년 9월 22일자 출원된 미합중국 특허 출원 제434, 652호의 다중 프로세서 시스템용 메세지 중심 인터럽트 메카니즘, 후랭크 씨. 봄바, 스테펜 알. 젠킨스, 레인하드 슈만(Reingard Schumann) 및 폴 바인더(Paul Binder)의 1983년 9월 22일자 출원된 미합중국 특허 출원 제534,781호의 다중 프로세서 시스템용 제어 메카니즘 및 후랭크, 씨. 봄바, 딜립 피. 반다르카, 제이. 제이. 그래디, 스탠리 에이. 락키, 제프리 더불유 미첼2세 , 레인하드 슈만에 의해 미합중국 특허 출원 제534, 782호의 다중프로세서 시스템용 캐쉬 무효 메카니즘이다.
상세하게 말하자면, 본 발명은 트랜잭션에 대해 요청된 응답을 제공할 수 없는 것들은 일순간 동안 트랜잭션을 종료시킴으로써 다른 트랜잭션을 위해 통신로를 자유롭게 해제하는 수단으로 한 것이다. 완전한 시스템의 개개의 특성들사이의 상호 연관 관계를 감안하여 먼저 완전한 시스템의 구조에 대해 기술하고, 이에 관련하여 본 발명의 특정한 시스템의 특성에 대해 상세하게 기술하겠다.
1. 상호 접속 수단에 관한 일반적인 설명.
본 명세서에 기재된 상호 접속 수단은 상호 접속될 각각의 장치에 관련되고, 바람직하게는 장치의 일부를 각각 형성한다. 이 상호 접속 수단은 각각의 장치를 상호 접속시키는 통신로[예, 병렬 연결 버스(parallel wired dus)]상에서 신호의 송·수신을 제어한다. 상호 접속 수단은 통신로에 의해 상호 접속된 장치들 사이의 통신을 일정하게 제어한다. 이 장치들은 통신로에 대해 병렬로 접속되고, 그 동작은 통신로의 실제배치와는 무관하게 이루어진다. 통신로에 접속된 각각의 장치에는 후술하는 바와 같이 여러가지 목적을 위해 사용되는 식별 번호(ID)가 할당된다. 상호 접속 수단의 한 실시예로서는, 장치와 연결부내에 삽입된 플러그(plug)를 이용하여 식별 번호를 지정하기 위한 할당이 행해진다. 이 플러그는 슬롯트(slot)와 슬롯트사이에서 이동될 수 있기 때문에, 장치와 이 장치가 존재하게 되는 슬롯트사이에는 논리적인 의존성은 없다. 이식별 신호는 시스템의 초기화 과정에서 제어 레지스터내에 적재된 다음에, 통신로에 의해 상호 접속되는 장치에 사용된다.
상호 접속 수단은 장치들사이에 효율적인 통신을 제공하는 특정 셋트의 명령을 실시한다. 이 명령들은 다수의 상이한 동작[이후부터 트랜잭션(transaction)이하 함]으로 수행되어 전송된다. 특정 트랜잭션용 동작코드(operation code)(예를 들어, 판독, 기입, 인터럽트등)가 명령이 전달되는 장치를 식별하고 이 명령에 관련되는 또 다른 정보를 제공하는 정보와 함께 버스를 통해 다른 장치로 전송되는 명령 /어드레스 사이클; 다음번에 통신로를 억세스하는 것이 허용되는 장치를 식별하기 위한 매입 중재 싸이클(imbedded arbitation cycle) ; 및 사용자 데이타 (즉, 프로세싱의 최종 목적) 또는 그 밖의 다른 정보가 전송되는 1개 이상의 데이타 싸이클을 포함하는 다수의 싸이클로 트랜잭션이 각각 세분된다. 트랜잭션 신호들은 이후로는 정보 전송 유별 라인, 제어 유별 라인 및 전력 유별 라인이라고 하는 개개의 라인들의 그룹을 경유해 통신로를 거쳐서 전송된다. 다음에 기술할 시간 및 위상 신호 이외의, 상기한 신호들은 1개 이상의 상호 접속 수단이 이 신호들을 주장할 때마다 주장되는 것으로 검출된다. 정보 전송 유별 라인은 정보, 즉 데이타 및 패리티 코드, 전송 명령, 데이타 상태 및 트랜잭션에 사용되는 그밖의 다른 정보를 포함한다. 응답 유별 라인은 긍정적 확인형태(positive conformation)의 무오류(error-free)수신을 제공하며, 또한 트랜잭션을 제어하거나 변경하기 위한부수적인 응답도 제공한다. 이 오류를 모니터함으로써 시스템의 신뢰성에 상당히 기역하게 되고 대역폭을 거의 부가할 필요가 없으며, 또한 응답 장치가 정상적인 트랜잭션의 진행을 변경시킬 수 있으므로, 시스템 융통성에 크게 기여한다.
예를 들면, 어떤 장치가 이 장치에 전달된 명령에 응답하는 시간에 있어서 이 명령에 의해 정상적으로 제공된 시간을 초과하여 추가적인 시간을 필요로 한다면, 이 장치는 응답할 준비가 될때까지(선정된 한계내에서) 트랜잭션의 수행 종료를 지연시키기 위해 1개 이상의 응답 신호를 사용하거나, 또는 당해 장치에 지금으로서는 응답할 수 없음을 통보한 다음 다른 트랜잭션을 위해 통신로르르 해제(개방)시킬 수 있다.
각각의 장치에서는 상호 접속 수단에 의해 한 셋트의 제어 신호들이 발생되어 이용됨으로써 어느 한 장치로부터 다른 장치에로 통신로에 대한 억세스를 효율적이고도 순서적으로 전송시키게 된다. 부수적으로, 각각의 장치는 공통 시스템 클럭으로부터 국부(local)타이밍 신호를 발생시키어 동기 동작을 하게 한다. 이 신호들 뿐만 아니라. 검사 제어 신호들은 버스를 통해 개개의 라인상으로 전송된다. 최종적으로, 장치들은 시스템내의 AC및 DC 전력의 상태를 모니터하고, 필요할 때 적절한 조치가 취해지도록 이 전력 공급원의 상태를 나타내는 신호를 제공한다.
본 명세서에 기술된 상호 접속 수단은 그 유래가 없을 정도로 강력하고도 그 용도가 다양하며, 또한 현재 이용되고 있는 대규모 집적화 기술에 의해 이 장치를 용이하고도 경제적으로 제조할 수 있다. 이것은 장치들간에 명령, 제어, 정보 및 데이타 신호들을 반송시키는데 필요한 각각의 연결부들의 수를 상당히 한정시킨 결과이고, 이 라인들사이에서 기능을 효율적으로 선택하고 분배시킴으로써 얻어지게 되는 것이다. 그럼에도 불구하고, 상호 접속 수단은 이에 부착되는 장치들의 물리적 위치에 대해서는 전혀 제한하지 않는다. 더욱이, 이것은 다수의 장치들을 상호 접속시킬 수 있고, 단일 프로세서와 멀티프로세서 구성에도 효율적으로 사용할 수 있다.
2. 본 발명의 양호한 실시예의 일반적 설명
본 발명에 따르면, 다른 장치와 함께 트랜잭션에 참여하기 위해 통신로의 제어를 요하는 각각의 장치는 NO ARB제어 라인을 통제한다. NO ARB가 주장되지 않은 것이 발견될 때마다. 장치는 다음 싸이클에서 중재된다. 이싸이클은 현재 통신로상에서 트랜잭션이 발생되고 있지 않을때 발생하는 “아이들(idle)” 중재 싸이클이거나, 통신로 상에서의 트랜잭션이 진행되는 동안에 발생하는 “매입(imbedded)” 중재 싸이클일 수 있다.
중재 싸이클을 검출하면, 각각의 이러한 장치는 NO ARB및 이장치의 우선 순위에 대응하는 단일 라인을 주장한다. 신호들은 통신로의 데이타 라인상에서 디코드된 형태(즉, N을 제공된 상이한 우선 순위 레벨의 갯수라 할때, N중의 어느 하나)로 주장된다. 이와 때를 같이하여, 각각의 장치는 데이타 라인들을 모니터하여 중재되는 장치들 중에서 선정된 우선 순위 특성을 갖고 있는 장치인지의 여부를 스스로 결정한다. 본 발명의 특정한 실시예에 있어서, 2개의 우선 순위 레벨, 즉, 고레벨 및 저레벨에서 중재가 실행된다. 또한 , 각각의 레벨내에는 장치의 식별 번호에 관련하여 반전하는, 즉 식별 번호가 증가하면 부레벨 우선 순위(subleveel prioty)가 감소하는 고레벨에서 저레벨까지의 부레벨 우선 순위 장치인지의 여부를 스스로 결정한다. 억세스를 요하는 최고 우선순위 장치인지를 겨정하는 장치는 통신로를 제어하기 위해 펜딩 마스터(pending master)상태를 취하고, 이 장치가 통신로를 제어할 때까지는 다른 장치가 통신로의 제어를 중재하지 못하도록 NO ARB를 계속해서 주장한다. 펜딩 마스터는 이에 뒤따르는 싸이클에서 통신로를 제어할 수 있는데, 이 후속 싸이클에서 BSY가 주장되지 않으므로 현재 마스터가 된다.
본 발명에 따르면, 상이한 우선 순위 레벨에서 중재가 실시될 뿐만 아니라 상이한 모우드 (mode)에서도 실시된다. 더욱 상세하게 말하자면, 다수의 고정된 우선 순위 레벨들중 한 레벨에서, 또는 동적으로 변하는 것에 기초[예를 들어, 이후에 기술될 “이중 라운드 로빈(deal round robin)”중재 모우드로]하여 장치에 의한 중재를 확보하기 위한 모우드 제어 장치가 제공된다. 또한 , 장치가 중재를 디스에이블시키도록 설정될수도 있는데, 이렇게 함으로써 이 장치가 통신로를 제어할 수 없게 한다.
중재 모우드 제어는 시스템내의 모든 장치로 억세스시킬 수 있고, 이 모든 장치에 의해 변화될 수 있는 제어 레지스터를 통해 확보된다. 그러므로, 장치에 대한 중재 모우드는 시스템의 필요에 따라 변경될 수 있다. 또한 , 이중 라운드 로빈 모우드에 있어서, 통신로에 대한 억세스는 소정 기간동안 거의 동일한 억세스를 장치들에 할당하도록 하는 것에 기초하여 제공된다. 본 명세서에서 사용되는 “이중 라운드 로빈”이란 용어는 상호 접속 수단의 동적 중재 모우드의 동작을 특성화하도록 사용되며, 이는 “순수”라운드 로빈(“pure”round robin)구조와 상대되는 것으로서 이 순수 라운드 로빈 구조는 윌리암 디. 스트렉커(William D. Strecker)등이 1982년 5월 7일자로 “직렬 버스의 이중-계수 라운드 로빈 분배 중재 기술(Dual-Count Round-Robin Distributed Arbitration Techniqne for Serial Buses)”이란 명칭으로 출원한 미합중국 특허 출원 제375, 983호에 기술된 형태이다. 통신로에 접속된 모든 장치들이 이 순수 라운드 로빈 모우드로 동작한다면, 각각의 장치는 소정의 장치가 통신로를 다시 제어하기전에 정확하게 한번씩 통신로를 제어하게 된다. 반면에, 이중 라운드 로빈 모우드에서는, 각각의 “순수”라운드 로빈을 2개의 라운드 로빈 링(rings)들이 스스로 설정한다. 이것은 우선 순위 계산에 있어서 이전의 통신로 마스터(Master)의 식별 번호(ID)를 사용함으로써 우선 순위를 선별한다. 이 링들은 효율적으로 중첩되므로, 이중 라운드 로빈 모우드는 어떠한 장치도 통신로를 제어할 수 있는 기회가 봉쇄당하지 않는다는 점에서 순수 라운드 로빈과 마찬가지로 공평성(fairness)을 제공하게 되며, 최악의 경우에 소정의 장치에 대한 회전 지연(latency)은 순수 라운드 로빈에서와 동일하다.
특정 시간에 소정의 장치가 더 큰 대역폭을 필요로 하는 경우에, 이 장치의 중재 우선 순위 모우드는 동적 모우드로부터 특히 고정된 우선 순위 모우드를 포함하고, 고정 모우드로 변화될 수 있다. 이러한 모우드에 있어서, 소정의 장치는 다른 장치들 보다 더 장기간동안 통신로를 억세스할 수 있으므로, 일정한 기간동안 더 많은 양의 데이타를 전송할 수 있게 된다.
이중 라운드 로빈 모우드로 동작하는 각각의 장치는 각각의 매입 중재 싸이클동안 각각의 장치의 식별 번호를 현재 마스터(Current Master)의 식별 번호와 비교한다. 소정 장치의 식별 번호가 현재 마스터의 식별번호보다 높으면, 당해 장치는 자체의 우선 순위를 고 우선 순위 레벨로 갱신한다. 그렇지 않은 경우에는, 장치 자체의 순위는 저 우선 순위 레벨로 유지되거나 고정된다. 특정한 매입 중재 싸이클에서의 중재 결정은 당해 싸이클에서 우선 순위를 갱신하기 전에 행해지므로, 중재 결정은 이전의 마스터의 식별 번호에 기초하여 이루어진다. 따라서, 낮은 ID 번호를 갖고 있는 높은 ID번호를 갖는 장치에 의해 통신로에 대한 억세스를 취소하게 되는 장치들은 주기적으로 낮은 우선 순위 레벨로 강등된다.
본 발명의 상호 접속 수단은 다음과 같은 상당한 잇점을 제공한다. 우선, 이 상호 접속 수단은중재 프로세스용 설비를 제공하기 위해 통신로에서 단 하나의 부수적인 라인만을 사용한다. 중재용으로 필요한 나머지 라인들은 상호 통신의 최종 목적인 데이타를 전송하기 위해 필수적으로 존재하는 데이타 라인들에 의해 제공된다. 그러므로, 시스템 그 자체는 단일 집적 회로로 실시하도록 되어 있고, 이러한 장점은 경제적인 시스템을 구성할 때 특히 유리하며 때로는 결정적인 것이 될 수 있다. 또한 , 중재 시스템은 제한 된 설비, 즉 통신로에 대한 억세스를 요하는 경합 장치(competing device)들사이에 자원을 매우 융통성있게 할당하는 방법을 제공한다. 장치들사이에 상대적인 우선 순위를 할당하는 것은 소정 시간에 억세스를 위한 경합 장치들사이에서 선정된 방법으로 변경할 수 있거나, 다양한 시스템 요구에 따라서도 변경할 수 있다. 또한 , 중재는 통신로에 접속된 모든 장치들사이에서 분배되기 때문에, 통상적으로 집중되 중재에 관련하여 일어나는 다중 라인들이나 물리적 배치 제한의 심각한 오버헤드(overhead)와 같은 문제점이 제거된다. 그러므로, 강력하고도 유례가 없는 융통성 있는 동작 모우드를 구성하게 된다.
이제부터, 첨부된 도면을 참조하여 본 발명의 상술한 목적 및 그밖의 다른 목적과 장점들에 대해서 상세하게 기술하겠다.
상세한 설명
1. 상호 접속 장치의 상세한 설명
제1a는 소형이면서도 비교적 값이 저렴한 컴퓨터 시스템에 본 명세서에 기술된 상호 접속 장치를 이용하는 것한 도시한 것이다. 도시한 바와 같이, 프로세서(10), 메모리(12), 터미날(14 ; 14a, 4b) 및 대용량 기억 장치(디스크, 16 ; 16a, 16b)은 상호 접속 수단(18) 및 통신로(20)을 통해 서로 접속된다. 프로세서(10)과 메모리(12)의 경우에, 상호 접속수단(18)은 장치내에 양호하게 일체로 배치되므로, 장치에 대한 통신 인터페이스를 제공한다. 터미날(14)와 기억 장치(16)의 경우에는, 단일 상호 접속 수단(18)에 다수의 터미날(14) 또는 기억 장치(16)을 접속시킬 수 있도록 중간 아답터(22, 24)가 각각 제공될 수 있다. 아답터는 나머지 장치로의 통신로(20)을 인터페이스시키도록 작용한다. 본 명세서에서 사용되는 “장치”란 용어는 공통 상호 접속 수단에 의해 통신로에 접속된 1개 이상의 실체(entity)를 말한다. 그러므로, 제1a도에 있어서, 터미날(14) 및 아답터(220는 단일 장치(26)를 구성하며, 이와 마찬가지로, 프로세서(10)과 주 메모리 (12)는 각각 하나의 장치이다. 제1b도에서, 프로세서(32)와 메모리(34)는 아답터(40)과 함께 단일 장치를 구성한다.
제1a도에 있어서, 프로세서(10)은 메모리(12)를 공유하는데, 다른 장치는 통신로(20)에 접속된다. 이것은 시스템 제조 비용을 절감할 수 있지만, 통신로(20)을 공유하기 위한 필요성으로 인해 시스템 속도를 제한시킨다. 제1b도에 있어서, 이러한 문제점은 프로세서(32)와 메모리(34) 사이에 분리 메모리 통신로(30)을 제공함으로써 해결된다. 이때, 프로세서(32)와 메모리(34)는 아답터(40), 통신로(42) 및 아답터(46 및 48)를 통해 터미날 장치(36)과 대용량 기억 장치(38)에 접속된다. 아답터(40, 46 및 48)은 상호 접속 수단(18)과 일체로 되어 있고, 아답터를 통신로 (42)에 족속시킬 수 있다. 이와 마찬가지로, 아답터(46 및 48)은 각각 갖고 있다. 이 형태의 시스템은 고성능을 제공하지만, 제조비가 많이 든다는 문제점이 있다.그러나, 본 명세서에 기술한 상호 접속 수단과 충분히 호환성이 있다.
마지막으로, 제1c도는 멀티프로세서 시스템내에 상호 접속 수단을 사용하는 것을 도시한 것이다. 제1c도에 있어서, 프로세서(50 및 52)는 각각의 메모리 통신로(58, 60)에 의해서 주 메모리(54, 56)에 각각 접속된다. 프로세서-메모리 쌍은 상호 접속 수단(18)과 일체로 사용되고, 통신로(68)에 의해 상호 접속되는 각각의 아답터(62, 64)를 통해 각각 나머지 시스템에 접속된다. 캐쉬 메모리(190)은 프로세서들 중의 한 프로세서, 예를 들어 프로세서(52)에 관련된다. 나머지 시스템은 근본적으로 제1b도에 도시한 것과 같다. 즉, 1개 이상의 터미날 (70)은 내부에 상호 접속 수단(18)을 갖고 있는 아답터(72)를 통해 통신로(68)에 접속되고, 대용량 기억 장치(74)는 상호 접속 수단(18)을 갖고 있는 아답터(76)을 통해 통신로(68)에 상호 접속된다. 이러한 구성에 있어서, 각각의 프로세서는 시스템내의 각각의 장치와 통신할 뿐만 아니라, 프로세서들이 서로 직접 통신할 수 있다. 또한 , 캐쉬 메모리(190)은 효율적으로 수용된다. 동일한 시스템에 이와 같은 장치들을 혼용함으로 인해 부과되는 상이한 특성 및 복잡성에도 불구하고, 본 명세서에 기재된 상호 접속 수단은 동일한 방식으로 모든 통신을 효율적으로 제어한다.
제2도를 다시 참조하면, 상호 접속수단에 의해 발생되고 이용되는 여러가지 종류의 신호가 주된 기능유별에 따라 요약되어 있다. 각 유별내에서 이 신호들은 개개의 부기능 (subfunction)에 의해 군(group)을 이루고 있다. 부수적으로, 한 장치로부터 다른 장치로 이 신호들을 반송하는 연결부 그룹[또는, 통신로(78)]중의 특정 연결부들은 다음의 설명으로부터 용이하게 알 수 있도록 도시되어 있다. 라인은 이 라인에 부착된 장치가 이 라인을 주장(요청)하면 주장(요청)된 것으로 간주된다. 따라서, 어떤 장치도 라인을 주장하지 않으면 이 라인은 주장되지 않게 된다. 설명을 용이하게 하기 위해, 각A, B로 지정된 2개의 분리된 상호 접속 수단 및 이들이 통신을 제어하는 대응 장치와 일체로 이 상호 접속 수단들에 의해 사용되는 신호들에 의해 개략적으로 도시되어 있으며, 통신로(78)에 의해 신호를 변환하기 위해 상호 접속된 것으로 도시되어 있다. 그러나, 현재 마스터(current Master)에 의해 선택된 장치들 만이 실제적으로 트랜잭션에 관련되지만, 전형적으로, 통신로(78)은 2개 이상의 장치들을 동시에 연결하게 된다는 것을 유념해야한다. 나머지 장치들은 사실상 통신로에 접속된 상태를 유지하지만, 트랜잭션에 관련되는 것은 아니다.
제1도에 도시한 바와 같이, 상호 접속 수단에 의해 이용되는 크게 4개 유별의 신호, 즉 정보 전송 유별신호, 응답 유별 신호, 제어 유별 신호 및 전력 유별 신호들이 있다. 정보 전송 우별 신호들은 통신로(78)의 4개의 개별 라인(80)을 통해 송·수신되는 정보 필드(information field; I<3 : 0>)를 포함한다. 이정보 필드는 명령 코드나 트랜잭션(현재 마스터)를 개시하는 장치를 식별하는 코드나 싸이클중에 다른 정보사이로 전송되는 데이타의 상태를 지정하는 정보와 같은 정보를 전송한다. 제2도에서 라인(82)를 통해 전송되는 32비트 데이타 워드(D<31/0>)는, (판독형 및 기입형 트랜잭션에 사용되는) 발생되는 데이타 전송의 길이, 트랜잭션의 관련성으로 선택되는 장치의 식별; 데이타 전송을 위해 억세스되는 메모리 위치 어드레스; 및 전송되는 데이타와 같은, 트랜잭션에 필요한 소정의 정보를 제공한다. 이 워드는 32개의 별도 라인(82)를 통해 송·수신된다. 2개의 라인(84 및 86)들 중 한 라인(84)는 즉, 정보 및 데이타 라인들 상에 패리티를 표시하는데 사용되는 것이 ”PO ”로 지정되어 있고, 다른라인(86)은 라인(84) 및 오류상태를 나타내는 신호를 발생시키는데 사용되는 것이“BAD”로 지정되어 있다.
“응답”유별 신호들은 라인(88)을 통해 전송되는 3-비트 필드(CNF<2 : 0>)를 포함하는데, 이것은 장치로 전송된 여러가지의 정보에 대한응답을 제공하고, 보다 상세히 후술한 바와 같이 장치가 트랜잭션의 진행을 변화시킬 수 있다.
“제어”유별 신호들은 8개의 라인(90-104)의 그룹을 통해 전송된다. 이 신호들 중 제1신호인 NO APRB는 중재 프로세스를 제어한다. 제2신호인 BSY는 장치에 의한 통신로의 현재 제어를 표시한다. 이 2개의 신호들은 통신로의 제어를 요하는 장치들사이에서의 순서적인 제어 이행(transition)을 제공하기 위해 서로에 관련하여 사용된다.
제어 유별 신호들의 나머지 신호들 중에는, 시간(+) 및 시간(-) 신호들은 통신로(98)에 접속된 단일 소오스에 의해 발생되어 라인(94, 96)을 통해 각각 전송되는 파형을 포함한다. 이 신호들은 각각의 장치에서 상호 접속 수단의 동작용의 국부 타이밍 기준을 설정하도록 위상(+) 및 위상(-) 파형에 관려하여 사용되는데, 이 위상(+) 및 위상(-) 파형은 단일 소오스에 의해서도 발생되어, 라인(98 및 100)을 통해 각각 전송된다. 더욱 상세하게 말하자면, 통신로(78)에 접속된 가각의 장치의 상호 접속 수단은 시간 및 위상 신호들로부터 국부 송·수신 클럭 신호(TCLK 및 RCLK)를 각각 발생시킨다. 최종적으로, 라인(102)를 통해 전송된 STF신호는 상세하게 후술한 바와 같이 국부 장치의 “신속 자체 검사(Fast Self Test)”를 수행하기 위해 사용되고, 라인(104)를 통해 전송된 RSESET신호는 통신로에 부착된 장치들을 초기치 설정(공지된 상태로 셋팅) 수단을 제공한다.
전력 신호 유별에서, AC LO 및 DC LO 신호들은 라인(106, 108)을 통해 각각 전송되고, 시스템내에서 AC 및 DC전력의 상태를 결정하기 의해 각각의 장치에 의해 모니터 된다. 예비 라인(110)은 후에 확장할 경우를 대비해 제공된다.
본 명세서에 기재된 상호 접속 수단은 통신 형태로 취해지게 지정하는 일련의 동작을 수행함으로써 선택된 장치들사이에서 통신을 설정하는 기능을 수행한다. 각각의 동작은 다른 장치 또는 통신로에 접속된 장치들과의 사이에서 요구된 통신을 이행하도록 여러가지 정보 요소들이 통신로상에 배치되거나 통신로로부터 수신되는 일련의 싸이클을 포함한다. 이 싸이클들은 시간(+) 및 시간(-) 클럭 신호(120 및 122) 뿐만아니라, 위상(+) 및 위상(-) 신호(124 및 126)을 각각 도시한 제3a도를 참조하면 명확히 알 수 있는 바와 같이, 시간 및 위상 클럭에 의해 정해진다. 이 신호들은 통신로에 접속된 단일 마스터 클럭에 의해 발생된다. 이 신호들은 각각의 장치의 상호 접속 수단에 의해 수신되고, 정보의 송·수신을 제어하는 국부 TCLK 및 RCLK 신호(128 및 130)을 각각 발생시키는데 사용된다.
그러므로, 제3b도에 도시한 바와 같이, 다수의 장치(140, 142)등이 라인들을 통해 정보를 송·수신하도록 통신로에 병렬로 접속된다. 이 장치들은 프린터, 디스플레이, 터미널들과 같은 입력/출력(I/O) 장치일 수도 있고, 프로세서와 같은 장치일 수도 있다. 이러한 장치들을 통신로상의 어디에 배치하느냐 하는 것은 중요하지 않다. 통신로에도 접속된 마스터 클럭(144)는 라인 (94-100)을 통해 각각의 장치에 전송되는 시간 및 위상 신호를 발생시킨다. 각각의 상호 접속 수단은 국부 송·수신 클럭(TCLK 및 RCLK)를 각각 발생 시키기 위한 타이밍 회로를 포함한다. 예를 들어, 장치(140)은 Q 출력이 TCLK를 발생시키는 플립 플롭(146)을 포함한다. 이 플립 플롭은 게이트(148)로부터 셋트되고, 라인(94)로부터의 시간(+) 신호에 의해 클럭된다. 게이트(148)은 라인(98)에 의해 엔에이블되고,
Figure kpo00002
출력을 내보낸다. 이와 유사한 형태로, 국부 슬레이브(slave) 수신 클럭(RCLK)가 수신된 시간(+) 및 위상(-) 신호로부터 발생된다.
제3c도에 도시한 바와 같이, 연속 TCLK 신호들사이의 시간은 싸이클을 정한다. 양호한 정보 교환을 수행하는데 사용되는 연속 싸이클 순서를 본 명세서에서는 "트랜잭션"이라 하겠다. 각각의 트랜잭션의 상세한 특성들은 이 트랜잭션에 의해서 수행된 동작에 따라서 변하지만, 일반적으로 각각의 트랜잭션은 명령/어드레스 싸이클, 매입 중재 싸이클 및 데이터 싸이클로 공통적으로 이정되는 1개 이상의 추가 싸이클로 구성된다. 제3c도에는 설명을 용이하게 하기 위해 단지 2개의 데이터 싸이클을 도시하였다. 일반적으로, 정보는 TCLK의 선단 연부 (leading edge)에는 통신로(78)상에 배치되고, 동일한 싸이클의 RCLK중에 장치의 상호 접속 수단내에 래치(latch)된다.
3d도에는 각각의 상호 접속 수단에 의해 수행되는 중재 기능의 상태도가 도시되어 있다. 중재 기능은 장치내의 소정 소자(Element)가 제3d도에 REQ 도시한 바와 같이 트랜잭션의 개시를 그 장치로 하여금 요구하고자 할 때까지 아이들 상태(Idle State ; 150)으로 유지된다. 이러한 경우가 발생하면, 상호 접속 수단은 NO ARB 라인을 검사함으로서 통신로(78)상에 중재 신호를 주장할 수 있는지의 여부를 결정한다. NO ARB가 주장되어 있는 한, 중재 기능은 아이들 상태로 유지된다. 그러나, NO ARB가 주장되지 않고, REQ가 께속 주장되면, 장치는 다음 싸이클 동안 중재된다. 이 생태하에서, 장치는 중재 상태(152)로 진입하게 되는데, 이 중재 상태에서 상기 장치는 통신로의 억세스를 요하는 다른 장치들과 중재한다. 중재방법은 이후에 상세히 기술하겠다.
중재 기능을 상실한 장치는 아이들 상태(150)으로 복귀되어, REQ가 주장되는 한 다시 중재를 요청할 수 있다. 이와 반대로, 중재 기능을 획득한 장치는 현재 마스터 상태로 된다.
상호 접속에 의애 제공되는 각각의 트랜잭션의 동작 순서를 설명하기 전에, 소정의 제어, 응답 및 정보 전송 유별 신호들을 본질적으로 모든 트랜잭션의 형태와 공통이므로, 이 신호들에 대해서 상세히 이해하는 것이 유익한 것이다. 그러므로, 지금부터 이들 신호들에 대해 상세히 설명하겠다.
제어신호 : NO ARB, BSY
NO ARB 신호는 중재용 데이터 라인들에 대한 억세스를 제어한다. 장치들은 NO ARB가 이전의 싸이클동안 주장되지 않은 싸이클에서만 통신로를 상요하기 위해 중재할 수 있다. 상호 접속 수단(현재 마스터)을 제어하는 장치는 제1 싸이클과 최종 예상 데이타 싸이클 동안을 제외하고는 트랜잭션 전반에 걸쳐 NO ARB를 주장한다. 트랜잭션의 최종 예상 데이터 싸이클은 실제로 퇴종 데이터 싸이클이지만, 이후에 상세히 기술하는 바와 같이 장치는 소정의 상태하에서는 트랜잭션의 완료를 지연시킬 수 있다. 이렇게 되면, 최종 데이터 싸이클이라고 예상되는 싸이클은 더 이상 없고, 모든 데이터가 전송되기 전에 다음 싸이클이 뒤따르게 된다. NO ARB는 펜딩 마스터가 현재 마스터가 될 따까지 이 펜딩 마스터에 의해서도 주장된다. 언제나, 적어도 하나의 현재 마스터와 하나의 펜딩 마스터와 하나의 펜딩 마스터만이 있을 뿐이다.
또한 , NO ARB는 중재 싸이클중에 모든 중재 장치에 의해 주장된다. 매입 중재 싸이클 동안에, 이 주장은 현재 마스터에 의한 NO ARB의 주장에 추가된다. 아이들 중재 싸이클 동안에, 중재 장치에 의해 NO ARB가 주장되면, 현재 중재중인 장치들 중 한 장치가 현재 마스터 상태로 될 때까지 다음 중재가 배재된다.
부수적으로, NO ARB는 슬레이브가 STALL을 주장하는 모든 싸이클(후에 기술함) 뿐만 아니라, 최종 싸이클을 제외한 모든 데이터 싸이클 동안(현재 마스터에 의해 선택된) 슬레이브 장치들에 의해서도 주장된다. 또한 , NO ARB는 상호 접속 수단이 그 자체의 장치에 대해 서비스를 제공함으로써 점유될 때의 특정 모우드동안(BSY 주장과 일치하여) 어떤 장치에 의해서도 주장된다. 이와 같은 모우드들에 있어서, 장치는 BSY 및 NO ARB 이외의 다른 통신로 라인을 사용하지는 않는다. 슬레이브로 선택되는 가능성으로 인해, 명령/어드레스 싸이클동안 장치는 특정 모우드로 진입하지 못하게 한다. 장치는, 예를 들어 통신로의 정보 전송 유별 라인들을 사용할 필요가 없이 상호 접속 수단내의 레지스터를 억세스시키기 위한 특정 모우드로 동작할 수 있다. 또한 , 현재 마스터가 통상의 종료 싸이클을 초과하여 계속해서 NO ARB를 주장함으로써 통신로 제어를 철회하지 않고서도 트랜잭션 순서를 수행할 수 있는 것이 바람직하다. 이것은 정보 전송 싸이클을 연장하여 그 장치에서의 이용할 수 있는 대역폭을 효율적으로 증가시킴으로써 고속의 장치에 특히 유용할 수 있다.
BSY는 트랜잭션이 진행중이라는 것을 나타내다. BSY는 최종 예상 싸이클 동안에 제외한 트랸잭션 전반에 걸쳐 현재 마스터에 의해 주장된다. BSY는 트랜잭션의 진행을 지연시킬 필요가 있는 슬레이브 장치(예를 들면, 특정 메모리 위치를 억세스하기 위한 시간을 추가로 필요로 하는 메모리 장치)에 의해서도 주장되는데, 이 지연은(후술될) STALL 응답 코드와 함께 SBY 및 NO ARB를 주장함으로써 이루어진다. 또한 , BSY는 최종 데이터 싸이클을 제외한 모든 데이터 싸이클 동안에도 주장된다. 장치는 다음 트랜잭션의 개시를 지연시키기 위해, 도한 상술한 특별 모우드로 동작중일 때 BSY를 주장하는 것을 연장할 수도 있다.
BSY는 각각의 싸이클의 종료시에 장치에 의해 검사된다. 즉, 주장되지 않을 때, 펜딩 마스터가 BSY를 주장하여 현재 마스터로서의 제어를 가정할 때 검사된다.
제3e도는 본 발명의 실시예에서의 BSY 및 NO ARB 제어 라인들의 가능한 순서들의 상태를 도시한 것이다. 이 상태도는 이러한 신호들을 함께 관찰함으로서 통신로상에서 장치들 사이에서 정보가 교환되는 것을 효율적으로 제어하는 방법을 설명하는데 사용된다.
전력이 증가할 때, 모든 장치들은 NO ARB 주장 (상태 "A")를 주장함으로써 통신로가 아이들 상태로 진입하게 되는 때인 모든 장치들이 라인을 주장하지 않을 때 (상태 "B")까지 어떠한 장치에 의한 억세스를 효율적으로 방지한다. 이렇게 함으로서 모든 장치들이 필요한 경우에 소정의 전력 증가 초기화 순서를 완료시킬 수 있는 시간을 허용한다. 일단 NO ARB가 주장되지 않음으로써 상태 "B"로 진입되면, 장치들은 통신로의 제어를 경합하기 위해 자유로이 요청할 수 있다. 일단 어떤 장치가 중재되면, 상태 "A"로 다시 진입되므로, 이에 의해 "획득(winning)" 장치가 명령/어드레스 상태 "C"로 진입된다. 주목할 점은 이명령/어드레스 싸이클은 주장되지 않은 상태로부터 주장된 상태로 BSY가 이행되는 것 뿐만 아니라, 이전의 싸이클에서 NO ARB가 주장된 것으로서 모든 장치에 의해 인지된다. 장치들이 명령/어드레스 상태로서 특정 모우드 상태를 무시하기 위해 NO ARB를 관찰하는 것이 필요하다.
명령/어드레스 상태로부터 먼저 상태 "D"로 진입하는 것은 트랜잭션의 매입 중재 싸이클을 나타낸다. 바로 이 싸이클에서 장치들은 엔코드된 마스터 ID를 관찰함으로써 (이중 라운드 로빈 모우드의 경우) 장치들은 자체의 동적 우선 순위를 갱신한다. 트랜잭션의 데이터 길이에 따라 변하는 제어는 다음 싸이클들 동안에도 이 상태로 유지될 수 있다. 중재가 전혀 발생하지 않으면, 마스터 및 슬레이브는 결과적으로 통신로의 제어를 포기하고 플로우 (flow)는 다시 상태 "B"로 되돌아가게 되어, 제어 신호들을 모두 주장하지 않게 된다. 그러나, 펜딩 마스터가 존재하면 상태 "F"가 다음으로 진입되어, 이에 따라 NO ARB를 주장하는 장치가 이 싸이클에서 BSY의 주장되지 않음을 통보하여 다른 장치들에 이한 추가적인 중재를 배제시키기 위한 결정 [도표에는 "버스트 모우드"(BURST MODE)로 표시됨]이 마스터에 의해 결정되는지의 여부에 따라 명령/어드레서 "C" 또는 "G"로 진행한다. 상태 "G"에서, 명령/어드레스 제어 신호들은 NO ARB와 BSY가 모두 주장된 것을 나타내는데, 이것은 명령 어드레스 상태 "C"와 구별시켜 준다.
이전의 트랜잭션이 BSY의 주장에 의해 연장되고 펜딩 마스터가 전혀 존재하지 않으면, 제어는 상태 "D"로부터 "E"로 진행되고 필요에 따라서는 1개 이상의 싸이클 동안 상태 "E"로 유지된다. BSY가 주장된 것이 목격되면 제어가 1개 이상의 싸이클 동안 상태 "E"로 유지되므로, 이에 따른 순서는 아이들 상태 "B"로 다시 되돌아간 다음 전송을 위해 통신로를 포기하게 된다.
상술한 바와 같이 한 특정 장치가 다른 장치에 의해 슬레이브로서의 선택을 배제시키기를 원하는 경우에, 특정 동작 모우드는 1개 이상의 싸이클 동안 선택적으로 제어가 상태 "D"로 복귀되도록 할 수 있다. 이 때, BSY와 NO ARB가 동시에 주장되지 않게 되면, 제어는 상태 "B" 즉 아이들 상태로 다시 복귀된다.
그러므로 NO ARB와 BSY의 결합 동작은 순서적인 제어 흐름의 변환과 통신로상의 정보 전송을 조절한다.
응답 신호 : ACK, NO ACK, STALL, RETRY
시스템 신뢰성은 정보라인 및 데이터 라인을 통한 전송에 대해 응답을 요구함으로써 크게 증가된다. 일반적으로 응답을 위해서는 특정한 전송후에 정확히 2개의 싸이클이 기대된다. 장치들의 응답 코드는 제6도에 도시되어 있는데, 여기서 "0"비트는 주장(저레벨)을 나타내고 "1"비트는 비주장(고레벨)을 나타낸다.
ACK 응답은 송신에 대해 수신하고자 하는 의도된 수신 장치에 의해 송·수신을 성공적으로 완료한 것을 나타낸다. 모든 트랜잭션 형태에 대해서 트랜잭션의 제1데이타 싸이클 동안 ACK가 주장되면 2개의 싸이클전에 전송된 명령/어드레스 정보를 정확히 수신했다(즉, 패리티 오류가 없다)는 것을 확인하게 된다. 부수적으로 판독-싸이클 형태 및 IDENT 트랜잭션에서 제1데이타 싸이클과 다음 데이터 싸이클에서, ACK는 판독 또는 벡터 데이터가 슬레이브에 의해 주장된는 것을 나타내는 반면, 기입형 트랜잭션에서, ACK는 슬레이브가 기입 데이터를 받아들일 준비가 되었다는 것을 나타낸다.
NO ACK는 송·수신이 실패했거나 슬레이브가 선택되지 않는 경우를 나타낸다. ACK와 NO ACK는 명령 송신뿐만 아니라 데이터 송신에 대해서도 허용되는 응답인데, 데이터 송신의 경우에, 최종 데이터 싸이클을 뒤따르는 2개의 싸이클이 후속 트랜잭션과 일치하더라도, 이 2개의 싸이클을 통해 응답이 발생한다. NO ACK는 응답 라인들의 디폴트(default)상태이다. 이 상태는 다른 코드가 이를 무시함으로써 정해진다.
STALL은 데이터 싸이클동안 슬레이브 장치에 의해 주장될 수 있다. 예를 들어, 이것은 판독 억세스에 대해 허용된 시간을 연장시키거나, 트랜잭션중에 재생(refresh) 또는 오류 정정 싸이클에 시간을 제공하기 위한 메모리에 의해 사용된다. 또한, 이것은 메모리 기입 버퍼에 여유가 없을 때 마스터로부터의 데이터 전송을 추가적으로 지연시키기 위한 메모리에 의해서도 사용된다. 이것은 다른 통신로에 동기시키기 위한 장치들에 의해 사용된다. 장치가 슬레이브인 것을 인식한 경우에 ACK 또는 NO ACK 명령 확인을 지연시키기 위해 1개 이상의 STALL이 사용될 수 있다.
RETRY는 트랜잭션에 즉시 응답할 수 없는 슬레이브 장치에 의해 주장된다. 예를 들어 이것은 장기간 동안 내부 초기화 순서를 필요로 하는 장치 ; 다른 통신로에 억세스를 대기하는 장치 ; 및 후술하는 바와 같이 인터록크(Inter lock) 판독 명령에 의해 록크된 메모리에 사용된다. 현재 마스터는 트랜잭션을 종료시킴으로써 슬레이브 재시도 (RETRY) 응답에 응답한다. 본 발명의 실시예에 있어서, RETRY는 트랜잭션의 제1데이타 싸이클후에는 사용되지 않는다. 이렇게 함으로써 상호 접속 논리를 단순화시킨다. 1개이상의 STALL이 RETRY의 주장보다 선행할 수도 있다.
어떤 장치가 통신로를 독점하지 못하게 하기 위해서, STALL, RETRY, BSY 및 NO ARB가 연장되거나 연속적으로 주장되는 것은 제한된다.
시스템 구조 : 특정한 트랜잭션 순서
제4a도 내지 제4h도는 상호 접속 수단에 의해 제공되는 특정한 트랜잭션의 특성을 상세하게 보여주고 있다. 특히 데이터를 판독 및 기입하기 위한 트랜잭션(READ, READ WITH CACHE INTENT, INTERLOCK READ WITH CACHE INTENT, WRITE, WRITE WITH CACHE INTENT, WRITE MASK WITH CACHE INTENT, 및 UNLOCK WRITE MASK WITH CACHE INTENT), 불확실하게 캐쉬된 데이터를 무효화시키기 위한 트랜잭션(INVALIDATE), 인터럽트를 처리하기 위한 트랜잭션(INTERRUPT, INTERPROCESSOR INTERRUPT, IDENTITY)(제4d도 내지 제4f도) 장치에 의한 트랜잭션 발생을 정지시키기 위한 트랜잭션(STOP) 및 정보를 다수의 장치로 동시에 송신하기 위한 방송 트랜잭션(BROADCAST)이 상세히 도시되어 있다. 각각의 도면에는 허용 가능한 CNF 응답의 범위가 설명되어 있고 예시된 특정한 응답은 점(·)으로 표시되어 있다.
또한, 단지 예시의 목적으로 트랜잭션은 단지 2개의 데이터 전송 싸이클만을 포함하는 것으로 도시되어 있으나, 더 많거나 적은 수의 싸이클들이 사용될 수도 있다.
본 명세서에 기재된 명령들은 2가지 일반적인 형태, 즉 단일 응답기 명령(판독형, 기입형 명령 및 IDENTIFY)과 다중 응답기 명령(STOP, INVALIDATE, INTERRUPT, INRTERPROCESSOR INTERRUPT, BROADCAST)으로 되어 있다.
다중 응답이 동일 라인상에서 주장될 때 응답들의 유일 인식을 위해서, 다중 응답기 명령의 허용 가능한 응답들은 ACK 및 NO ACK로 제한된다.
판독형 트랜잭션
제4a도를 참조하면 판독형 트랜잭션의 특성이 상세하게 도시되어 있다. 이 형태의 트랜잭션은 READ 명령 뿐만 아니라, READ WITH CACHE INTENT 및 INTERLOCK READ WITH CACHE INTENT 명령도 포함한다.
이 명령들의 4-비트 코드는 장치의 상호 접속 수단에 의해 이용되는 다른 명령들에 대한 코드와 함께 제5a도에 도시되어 있다. 제5a도에서 대쉬선[dash, (-)]으로 도시한 바와 같이 부수적인 코드들이 추가될 수 있다.
트랜잭션은 다수의 연속적인 싸이클 즉 명령/어드레스 싸이클(180) 매입 중재 싸이클(182) 및 다수의 데이터 싸이클을 포함한다. 예시의 목적으로 트랜잭션은 2개의 데이터 싸이클(184, 186)을 포함하는 것으로 도시되어 있다. 정보가 전송되는 주요 라인(제2도 참조)들을 이들의 기능적인 명칭, 즉 정보라인 I[3 : 0] 데이터 라인 D[31 : 0], 확인 라인 CNF[3 : 0] 및 NO ARB, BSY 및 P(패리티)라인들로 표시된다.
명확한 예시를 위해서 나머지 라인 (즉, 시간, 위상, STF, 리셋트, AC LO, DC LO, BAD 및 예비)들은 트랜잭션 동작을 이해하는데 필수적인 것은 아니므로 생략했다.
제4a도에 도시한 바와 같이, 판독형 트랜잭션의 명령/어드레스 싸이클 동안, 4-비트 명령 코드는 정보라인 I[3 : 0]상에 배치된다. 명령에 관련하여 필요로 하는 추가적인 데이터는 데이터 라인 D[31 : 0]상에 배치된다. 상세하게 말하자면, 발생할 전송 길이를 명시하는 2-비트 데이터 길이는 코드는 상호 접속 수단에 의해 데이터 라인 D[31 : 30]에 인가되고, 전송이 발생할 장치 어드레스는 데이터 라인 D[29 : 0]에 인가된다. 이 신호들이 현재 상호 접속 수단(현재 마스터)을 제어하는 장치에 의해 적절한 라인들상에서 주장된다는 사실은 제4a도에서의 적절한 블럭내에 문자 "M"으로 표시된다. 슬레이브 장치에 의해 소정의 라인 또는 라인들의 셋트 상에서의 정보의 주장은 제4a도에 문자 "S"로 표시된다.
이와 마찬가지로 문자 AD, AAD, APS 및 PM [즉, 전 장치(All Device), 전중재 장치(All Arbitrating Device), 전 가능성 슬레이브(All Potential Slave) 및 펜딩 마스터(Pending Master)]은 특정한 싸이클 동안 통신로의 선택된 라인들상에서 신호를 주장할 수 있는 여러 가지의 다른 장치를 나타낸다.
어드레스는 판독형 또는 기입형 트랜잭션이 발생하는 특정한 기억 위치를 나타내는 단일 30-비트 워드로 구성된다. 분리된 어드레스 블럭은 각각의 장치에 할당된다. 블럭의 위치는 관련된 장치의 식별 번호를 기초로 한다.
명령/어드레스 싸이클 동안 현재 마스터는 제4a도에서 참조번호(158)로서 도시한 바와 같이 NO ARB를 주장하지 않는다(본 명세서의 이해를 돕기 위해, 신호가 저레벨에 있을 때 "주장된 것"으로 고레벨에 있을 때 "주장되지 않은 것"으로 간주한다).
NO ARB가 주장되지 않으면 통신로의 제어를 요하는 다른 장치들은 그 다음 싸이클 동안 이러한 억세스를 중재할 수 있게 된다. 이와 때를 같이하여 장치는 BSY를 주장함으로써 현재의 트랜잭션이 진행중인 동안 다른 장치가 통신로를 제어하지 못하게 한다. 이때, 현재 마스터에 의해 CNF 라인들에 아무런 신호도 인가되지 않지만 트랜잭션들의 순서 과정에서 현재 마스터에 의한 트랜잭션중에 다른 장치들에 의해 CNF라인들에 1개 이상의 응답 신호들이 인가될 수도 있다.
제2트랜잭션 싸이클은 중재 싸이클을 포함한다. 이 싸이클은 트랜잭션내에 포함되어 있기 때문에 "매입"중재 싸이클이라고 한다. 트랜잭션의 외부에서 발생하는 중재를 "아이들"중재 싸이클이라고 한다. 제4a도의 매입 중재 싸이클 동안, 현재 마스터는 자신의 식별번호(ID)를 정보 라인 I(3 : 0)상에 배치시킨다. 이 코드는 상술한 바와 같이 장치들의 중재 우선 순위를 갱신하기 위해 모든 장치들에 의해 사용한다.
이때 통신로의 사용을 요하는 장치들은 저 우선 순위 레벨라인 D(31 : 16) 또는 고 우선 순위 레벨 라인들 (15 : 0)상의 자체의 식별 번호에 대응하는 단일 -비트 신호를 주장한다.
즉, 장치(11) (제7c도)은 고 우선 순위에서 중재하는 경우에 라인 D(11)을 주장하고, 저 우선 순위에서 중재하는 경우에 라인 D(27)을 주장한다.
장치들이 중재되는 레벨은 이 장치의 중재 모우드 뿐만 아니라, 이전의 마스터의 ID에 의해 결정된다. 본 발명의 실시예이서, 중재 모우드는 특정한 장치의 제어 및 상태 레지스터, 즉 CSR(5 : 4)의 비트 4 및 5에 의해 정해진다. (제7c도 참조)
본 발명의 실시예에서와 같이, 4개의 모우드, 즉 고정된 고 우선 순위, 고정된 저 우선 순위, 이중 라운드 로빈 및 중재 불능의 모우드가 제공된다. 상호 접속 수단은 중재 모우드 비트 CSR(5 : 4)를 적절히 셋팅시킴으로써 이 모우드들을 혼합할 수 있다.
고정된 우선 순위 모우드에서 중재하는 경우에, 고정된 고레벨인지 저레벨인지의 여부에 따라서는, 우선 순위가 한 트랜잭션에서 다른 트랜잭션으로 변하지 않는다. 이와 반대로, 이중 라운드 로빈 중재의 경우에, 장치의 우선 순위는 상술한 바와 같이 한 트랜잭션에서 다른 트랜잭션으로 변할 수 있다.
특히, 이중 라운드 로빈 중재 모우드에 있어서, 소정의 트랜잭션중에, 장치는 ID번호가 바로 선행하는 트랜잭션의 마스터의 ID번호와 같거나 이보다 작은 경우에, 저 우선 순위 레벨(즉, 라인 D[31 : 6])에서 중재를 하게 되고, 그렇지 않은 경우에는 고 우선 순위, 즉 라인 D (15 : 0)에서 중재를 하게 된다.
제4a도에 도시한 트랜잭션을 계속하여 설명하면, 매입 중재 싸이클의 종료시에 이 싸이클 동안 중재되고 이 중재를 획득한 장치가 펜딩 마스터로 되고, 제4a도에 점선으로 도시한 바와 같이 현재 마스터로 될 때 까지 NO ARB를 주장한다. 이렇게 함으로써 펜딩 마스터가 이러한 제어를 취하기 전에 다른 장치들이 후속적으로 통신로를 중재하거나 제어를 획득하지 못하게 한다.
중재 싸이클은 1개 이상의 데이터 싸이클이 뒤따른다. 예시의 목적으로, 제4a도에는 2개의 데이터 싸이클만을 도시하였다. 상술한 바와 같이, 각각의 트랜잭션에서 전송될 실제데이터량과 트랜잭션에 의해 이용되는 데이터 싸이클의 수는 비트 D(31 : 30)에 의해 명령/어드레스 싸이클에 지정된다. 제4a도에 도시한 특정한 실시예에서는, 1에서 4까지의 데이터 싸이클(여기서는 32비트/싸이클)이 한 트랜잭션에 전송될 수 있다. 물론, 데이터 길이 명세서(specification)에 더 많거나 적은 비트를 제공함으로써, 데이터 싸이클 수와 트랜잭션 싸이클의 수가 가감될 수 있다.
제4a도에 도시한 바와 같은 판독형 트랜잭션의 경우에, 트랜잭션에 의해 호출된 데이터는 트랜잭션이 어드레스되는 슬레이브에 의해 공급된다. 이 장치는 메모리 장치일 수 있으며, 입력/출력 터미널과 같은 소정의 다른 장치일 수도 있다. 양쪽의 경우에 이렇게 선택된 장치는 데이터 싸이클 중에 데이터 라인 D[31 : 0] 상에서 이 장치 자신의 데이터를 주장한다. 이 때 이 장치는 데이터의 상태를 나타내는 코드를 라인 I[3 : 0]상에서도 주장한다.
예를 들어, 메모리 참조를 위해, 코드는 데이터가 정정 알고리즘을 이용하지 않고서 검색되는 데이터[간단히 판독 데이터(READ DATA)라고 함]인지 데이터 라인들상에 주장되기 전에 정정된 데이터[정정된 판독 데이터(CORRECTED READ DATA)라고 함]인지 아니면 어떤 이유로든지 신뢰할 수 없는 데이터[판독 데이터 대응(READ DATA SUBSTITUTE)이라고 함]인지의 여부를 나타낼 수 있다. 또한, 상태 코드는 이러한 데이터 범주(category) 중 각각에 대해 데이터가 캐쉬될 수 있는지의 여부를 나타낸다. 돈트 캐쉬(don't cache) 기능을 사용하면 시스템의 성능이 크게 증가한다. 이 코드들은 제5b도에 도시되어 있다.
제1데이타 싸이클중에, 슬레이브는 마스터로부터의 명령/어드레스 정보의 수신을 확인하고, 슬레이브의 응답에 관련하여 마스터에 다른 정보를 제공하는 확인 코드를 라인 CNF[2 : 0]으로 복귀시킨다. 그러므로 확인 신호들의 제1주장이 현재 트랜잭션에 대해서 제1데이터 싸이클 동안, 즉 트랜잭션을 개시하는 명령/어드레스 싸이클 후의 2개의 싸이클 동안 실시된다. 제4a도에 도시한 판독 트랜잭션의 경우에, 제1데이타 싸이클에서 허용 가능한 응답은 ACK(긍정 응답 : ACKNOWLEDGE), NO ACK(부정 응답 : NOT ACKNOWLEDGE), STALL 및 RETRY이다.
이것들은 특정 트랜잭션에 관련하여 기술될 소정의 예와 같이 거의 모든 트랜잭션에 공통적으로 적용된다.
일반적으로 제1데이타 싸이클 동안 ACK가 주장되면, 요구된 동작, 즉 판독 데이터 복귀를 취하기 위한 슬레이브의 능력과 함께, 명령/어드레스 정보를 정확히 수신하는 것을 나타낸다. 이와 반대로, NO ACK가 주장되면 명령 송신시에 오류가 발생되거나 슬레이브의 응답 무능력을 나타내게 된다. STALL이 주장되면, 슬레이브는 마스터에 의해 요구된 판독 데이터를 슬레에브 자신이 준비하기 위해 트랜잭션을 연장시킬 수 있게 되고, RETRY가 주장되면, 현재로서는 명령에 응답할 수 없고 마스터가 후속 시간에 다시 시도하는 요구에 의해 달성된다는 것을 나타낸다.
RETRY가 적절히 사용될 때는 예상된 슬레이브 응답 시간이 너무 길어서 일반적인 STALL응답을 주장 함으로써 과대 수의 싸이클 동안 트랜잭션을 연장시키는 것 바람직하지 않을 때이다.
제4a도에 있어서 ACK응답[응답전은 점(·)으로 도시됨]이 도시되어 있다. 응답이 NO ACK이었다면, 마스터에 의해 취해진 동작은 ACK에 응답하여 취해진 동작과 다르게 된다. 예를 들면, 마스터는 제한된 횟수로 트랜잭션을 반복하는 것을 요하고, 인터럽트 등을 요구할 수도 있다. STALL응답은 ACK응답과 유사하지만, 요구된 데이터가 복귀되기 전의 트랜잭션은 1개 이상의 공백(blank) 싸이클(유효 데이터가 데이터 라인 상에 존재하지 않는 싸이클)만큼 연장된다.
제4a도에 있어서 제2 및 최종 데이터 싸이클은 선행의 데이터 싸이클과 유사하다.
즉, 슬레이브는 라인 I[3 : 0]상의 데이터에 상태를 표시하는 코드와 함께 라인 D[31 : 0]상에 요구된 데이터를 주장한다. 이와 때를 같이하여, 이것은 CNF[2 : 0]에 대해 확인 신호를 주장한다. 그러나 슬레이브가 제1 데이터 싸이클에 응답하는 것과는 달리, 슬레이브는 ACK, NO ACK 또는 STALL에만 응답한다.
즉, 이것은 RETRY를 주장하지 않는다. 더욱이, 제2데이타 싸이클은 제4a도에서 트랜잭션의 최종 데이터 싸이클이기 때문에 슬레이브는 NO ARB 및 BSY를 주장하지 않는다. 판독 데이터의 복귀가 후속 싸이클로 연기되도록 슬레이브가 STALL을 주장함으로써 트랜잭션을 연장하게 되면, 슬레이브는 실제로 최종 데이터 싸이클이 발생할 때까지 계속해서 NO ARB 와 BSY를 주장하게 된다. 그다음, 최종 데이타 싸이클동안 슬레이브는 NO ARB 와 BSY를 주장하지 않게 된다.
상술한 바와 같이, BSY가 주장되지 않으면, 펜딩 마스터는 다음 싸이클에서 통신로를 제어할 수 있게 되고 슬레이브가 NO ARB를 주장하지 않으면, 통신로로의 억세스를 위해 후속 중재가 발생하도록 준비된다.
제2 및 최종 데이터 싸이클이 완료되면, 제4a도의 트랜잭션의 주요 정보 전송 기능이 완료된다. 그러나 데이터를 정확하게 수신하였는지를 확인해야 한다.
이것은 마스터가 데이터의 수신에 관련하여 CNF[2 : 0]에 대해 적절한 확인 신호를 주장하게 되는 최종 데이터 싸이클 다음의 2개의 싸이클 동안 달성된다.
도시한 바와 같이, 적절한 확인 신호는 ACK나 NO ACK이다. 확인 최종 데이터 싸이클을 초과하여 연장되므로, 다음 트랜잭션의 명령/어드레스 및 매입 중재 싸이클과 중첩된다. 그러나, 확인 라인들은 다음 트랜잭션의 제1의 2싸이클 동안 이 트랜잭션에 의해 사용되지 않기 때문에 중첩되어도 아무런 오류가 발생되지 않는다.
명령/어드레스 싸이클 동안, 패리티(P)가 현재 마스터에 의해 I[3 : 0]과 D[31 : 0] 라인들상에 발생되어 모든 장치에 의해 검사된다. 매입 중재 싸이클 동안, 패리티는 마스터에 의해서 I[3 : 0] 라인들 상에서만 발생되어 모든 장치에 의해 검사된다.
데이터 싸이클 동안에 패리티는 슬레이브에 의해서 I[3 : 0] 및 D[31 : 0]라인들 상에서 발생되어 현재 마스터에 의해 검사된다. 패리티 오류의 특정한 결과는 이 오류가 발생될 때의 소정의 싸이클 동안 전송되는 정보의 특성에 따라 정해진다. 최소한 명령/어드레스 싸이클 중에 패리티 오류를 검사하는 장치는 선택적으로 응답해서는 안되고, 이 장치들은 오류 플래그(flag)를 셋팅하거나 인터럽트를 유발하거나 그밖의 다른 동작을 취함으로써 패리티 오류를 나타낼 수도 있다.
상술한 바와 같이, READ WITH CACHE INTENT 명령은 해독 트랜잭션과 동일한 포맷으로 되어 있다. 이명령은, 요구된 판독 데이터가 마스터의 캐쉬내에 배치되어 있을 수 있다는 것을 슬레이브에 지시하기 위해 캐쉬를 가지고 있는 장치에 의해 발생된다. 이 명령이 후술하는 INVALIDATE명령과 함께 사용되면, 캐쉬된 장치를 가지고 있는 시스템의 성능이 크게 증가된다.
INTERLOCK READ 트랜잭션도 판독 트랜잭션과 동일 포맷으로 되어 있다. 이 명령은 프로세서 및 그 밖의 다른 지능(intelligent) 장치에 의한 데이터에 대한 배타적(exclusive) 억세스를 제공하도록 공유 데이터 구조와 함께 사용된다.
INTERLOCK READ 명령을 지지하는 슬레이브는 지정된 기억 위치에 대응하는 1개 이상의 인터록크 비트(Interlock Bit)를 갖고 있다.
INTERLOCK READ 명령에 의해 억세스되면, 슬레이브는 어드레스된 위치에 대응하는 적절한 비트를 셋트시킨다. 이것은 비트가 리셋트되어 소정의 위치를 해제할 때까지 그 위치에 대해 후속적인 INTERLOCK READ 억세스가 일어나는 것을 방지한다. 이 비트는 후술할 UNLOCK WRITE MASK WITH CACHE INTENT 명령에 의해서 리셋트된다. INTERLOCK READ 명령이 특히 유용한 것은 이 명령을 사용하는 중간에 개재되는 장치가 초기화 이후에 데이터에 대한 억세스가 배제되도록 하기 위한 판독-수정-기입 동작(Read-Modify-Write Operation)을 제공하는 프로세서를 갖고 있는 시스템에 유용하다.
인터록크 동안에 INTERLOCK READ에 의해 어드레스된 슬레이브는 RETRY를 내보내도록 셋트된다.
INTERLOCK 비트는 INTERLOCK READ트랜잭션이 성공적으로 수행된 경우에만, 즉, 마스터가 슬레이브의 판독 데이터를 정확하게 수신한 것을 확인한 경우에만 셋트된다.
기입형 트랜잭션
제4b도를 참조하면, 기입형 트랜잭션[WRITE, WRITE WITH CACHE INTENT, WRITE MASK WITH CACHE INTENT, UNLOCK WRITE MASK WITH CACHE INTENT]이 상세하게 도시되어있다.
명령/어드레스 싸이클에서 개시하면, 현재 마스터는 명령에 적절한 4비트 코드를 정보 라인 I[3 : 0]상에 배치시키고, 데이터 전송 길이를 식별하는 2-비트 코드를 데이터 라인 D[31 : 30]상에 배치시키며, 어드레스를 데이터 라인 D[29 : 0]상에 배치시킨다. 이와 때를 같이하여, 이 현재 마스터는 통신로의 점유 상태를 표시하도록 BSY를 주장하고 바로, 다음 싸이클 동안 중재용 데이터 라인들의 이용가능성을 신호하기 위해 NO ARB를 주장하지 않는다.
제2싸이클 동안, 현재 마스터는 이 현재 마스터의 ID를 정보 라인 I[3 : 0]상에 배치시킨다. 이때 후속 트랜잭션에 대해 통신로의 제어를 요하는 장치들은 이들의 ID에 대응하는 단일 비트를 데이터 라인들상에서 주장한다.
상술한 경우와 같이, 이 출력은 저 우선 순위 레벨에서의 중재에 대해서는 저 우선 순위 데이터 라인 D[31 : 16]상에서 주장되고, 고 우선 순위 레벨에서의 중재에 대해서는 고 우선 순위 데이터 라인 D[15 : 0]상에서 주장된다. 이때, 마스터는 BSY를 계속 주장하고 마스터 뿐만 아니라 중재에 관련된 장치들은 NO ARB를 주장한다.
제4b도에 도시한 예에 있어서, 제3및 제5싸이클은 데이터 싸이클이다. 2개의 데이터 싸이클이 도시되어 있지만 명령/어드레스 싸이클에서 라인 D[31 : 30]상에 지정된 전송 길이에 따라서 더 많거나 더 적은 수의 데이터 싸이클이 이용될 수 있다. 마스터에 의해 기입되는 데이터는 이 싸이클 동안에 데이터 라인 D[29 : 0]에 인가된다. 정보라인 I[3 : 0]은 트랜잭션 동안에 기입될 선택된 비이트 또는 비이트들을 나타내기 위해 데이터 싸이클 동안에 (WRITE MASK 트랜잭션의 경우에) 기입 마스크를 전송시키거나, (WRITE 및 WRITE WITH CACHE INTENT 트랜잭션의 경우에) "비정의(undefined)"로 된다.
I[3 : 0]의 "비정의" 상태는, 이 라인들상의 소정의 정보가 트랜잭션용의 장치들에 의해 무시되는 것을 나타낸다.
제1데이타 싸이클 동안에, 현재 마스터는 BSY 및 NO ARB를 계속 주장한다. 현재 마스터가 최종 데이터 싸이클일 것을 기대하는 제4 데이터 싸이클 동안에, 현재 마스터는 통신로 제어를 순서적으로 이행시킬 준비를 하도록 BSY 및 NO ARB를 주장하지 않는다. 트랜잭션을 연장하기 위한 슬레이브의 능력을 설명하기 위해서 제4싸이클 (데이타2)는 슬레이브가 STALL의 슬레이브 주장에 의해 정지되는 것으로 도시되어 있다.
예를 들어, 이것은 슬레이브가 제2데이타 워드를 받아들일 수 없을 때 연장될 수 있다. 이 슬레이브는 이 싸이클 동안 BSY 및 NO ARB를 주장한다. 이 트랜잭션의 최종 데이터 싸이클은 싸이클 5이다.
이 싸이클 동안, 마스터는 데이터 2를 재송신함으로써 STALL의 주장에 응답한다. 슬레이브는 ACK를 CNF라인들상에서 주장하고 BSY와 NO ARB는 주장하지 않는다. 최종 데이터 싸이클 다음의 2개의 싸이클에서, 슬레이브는 기입 데이터의 정확한 수신 상태를 확인하도록 ACK를 계속 주장한다.
기입형 트랜잭션이 통신로상에서 발생하면, 통신로에 접속되고 상주(resident)캐쉬 메모리를 갖고 있는 장치들은 기입 명령의 어드레스 범위내에서 소정의 캐쉬된 데이터를 무효화시킨다. READ WITH CACHE INTENT 명령의 경우와 같이, WRITE WITH CACHE INTENT 명령은 INVALIDATE명령과 함께 사용될 때 시스템의 성능에 상당한 장점들을 제공한다.
기입 마스크는 1개 이상의 4-비트 위치들중에서 주장된 비트의 존재, 즉 기입될 대응하는 8-비트 바이트를 선택에 의해 나타나는 4-비트 코드이다. 그러므로 크드 1001은 4바이트(32비트)워드 중(D[31 : 24]에 각각 대응하는)제1 및 제4 바이트만이 기입된다는 것을 나타낸다.
UNLOCK WRITE MASK WITH CACHE INTENT명령은 판독-수정-기입 동작과 같은 분할 불가능한 동작을 실시하기 위해 INTERLOCK READ명령에 관련하여 사용된다.
제4b도로부터 알 수 있는 바와 같이, 기입형 트랜잭션 동안에, 패리티(P)는 모든 트랜잭션 싸이클 동안 마스터에 의해 발생된다. 이 패리티는 명령/어드레스 및 매입 중재 싸이클 동안에 모든 장치에 의해 검사되고, 데이터 싸이클 동안에는 슬레이브에 의해 검사된다.
무효 트랜잭션
무효 트랜잭션(Invalidate Transaction)은 이에 관련된 캐쉬 메모리들을 갖고 있는 시스템에 의해 사용된다. 이 무효 트랜잭션이 발생되는 것은 다른 장치의 캐쉬내에 존재할 수 있는 불확실한 데이터가 사용되지 않도록 소정의 상태하에 있는 장치에 의해서 발생된다. 제4c도에 도시한 바와 같이, 이 트랜잭션의 명령/어드레스 싸이클에 있어서, 현재 마스터는 INVALIDATE명령을 정보 라인 I[3 : 0]상에 주장하고, 무효화될 데이터의 개시 어드레스를 데이터 라인 D[290]상에서 주장한다. 무효화될 캐쉬 메모리의 연속적인 위치들의 번호는 라인 D[31 : 30]상의 데이터 길이 코드에 의해 표시된다. 명령/어드레스 싸이클 다음에는 통상적으로 매입 중재 싸이클 및 정보가 전송되지 않는 데이터 싸이클이 수반된다. 다른 다중-응답기 명령과 같이, 특정한 허용 가능 응답들은 ACK 및 NO ACK이다.
인터럽트 및 식별 트랜잭션
제4d도에는 인터럽트 트랜잭션이 도시되어 있다. 이 트랜잭션의 목적은 다른 장치(전형적으로 프로세서)에 다른 동작을 취하기 위해 현재의 동작을 인터럽트할 필요성을 알리기 위한 것이다. 인터럽트된 장치는 인터럽트 벡터를 구하기 위한 IDENT명령에 응답한다. 이 벡터는 필요한 동작을 설정하게 될 메모리내에 기억된 인터럽트 루틴(routine)의 어드레스에 대한 포인터(pointer)로서 작용한다.
인터럽트 트랜잭션은 명령/어드레스 싸이클, 매입 중재 싸이클 및 정보가 전송되지 않는 데이터 싸이클을 포함한다. 명령/어드레스 싸이클 동안, 인터럽트 명령 코드는 인터럽트를 요하는 장치에 의해 정보 라인 I[3 : 0]상에서 주장한다. 이 싸이클 동안, 인터럽팅 장치(interrupting device)는 요구된 써비스의 긴급성을 식별하기 위해 1개 이상의 인터럽트 우선 순위 레벨을 데이터 라인 D[19 : 16]상에서 주장한다. 또한, 이 인터럽팅 장치는 인터럽트 수신지 마스크를 데이터 라인 D[15 : 0]상에 배치시킨다.
이 마스크는 인터럽트가 지향되는 장치를 지정한다. 통신로상의 모든 장치들은 이 마스크를 수신한다. 마스크내의 소정의 주장된 비트가 장치의 디코드된 ID에 대응하면, 이때 장치가 선택된다. 그 다음에, 이 장치는 식별 트랜잭션에 응답한다.
인터럽트에 의해 선택되는 장치들은 명령/어드레스 싸이클 다음의 2개의 싸이클 동안 ACK신호를 송신함으로써 응답한다. 모든 다른 다중-응답기 명령에서와 같이, ACK 및 NO ACK는 허용 가능한 응답들이다.
인터럽트 동안에 선택된 장치들은 인터럽트 프로세스를 완료하기 위해서 후속 트랜잭션에 인터럽트-요구장치를 결합시킬 수 있다. 따라서, 각각의 응답 장치는 인터럽트가 대응 레벨에서 수신되었는지의 여부를 나타내기 위해 각각의 인터럽트 레벨에 대한 기록을 유지한다. 전형적으로, 이 "기록"은 플립플롭내의 플래그 비트로 구성된다(이후부터, 인터럽트 펜딩 플립-플롭이라 칭함).
각각의 비트는 대응 인터럽트가 써비스될 때까지 계속 셋트된 상태로 유지된다.
제2 및 제3싸이클은 상술한 바와 같은 통상적인 매입 중재 싸이클과 더 이상 정보가 송신되지 않는 데이터 싸이클을 포함한다. 확인은 다중-응답기 명령, 즉 ACK 또는 NO ACK에 대해 허용 가능한 확인 코드들 중 1개의 확인 코드에 의해 행해진다.
제4e도에는 식별 트랜잭션이 도시되어 있다.
이 트랜잭션은 인터럽트 트랜잭션에 응답하여 발생된다. 명령/어드레스 싸이클 동안 현재 마스터는 IDENTIFY명령 코드를 정보 라인 I[3 : 0]상에서 주장하고, 써비스될 1개 이상의 인터럽트 레벨에 대응하는 코드를 데이타 라인 D[19 : 16]상에서 주장한다. 이 현재 마스터는 BSY를 주장하고, NO ARB를 주장하지는 않는다. 다음 싸이클은 통상적으로 매입 중재 싸이클이다.
다음 싸이클에 있어서, 현재 마스터는 이 현재 마스터의 ID번호를 디코드된 형태로 데이타 라인 D[31 : 1]상에서 다시 주장한다. 명령/어드레스 싸이클에서 지정된 인터럽트 레벨에서 써비스를 요구하는 각각의 장치는 디코드된 마스터 ID를 이 장치가 IDENTIFY 명령이 보내지는 장치들 중 한 장치인지의 여부를 결정하기 위해 이미 전송된 인터럽트 수신지 마스크와 비교한다.
각각의 장치가 그러한 장치라는 것을 결정하면, 이 장치는 인터럽트 중재 싸이클에 관련되는 가능한 슬레 이브로서 이 장치의 상태를 나타낸다. 디코드된 마스터와 인터럽트 중재 싸이클 동안에, 인터럽팅 슬레이브는 BSY 및 NO ARB를 주장한다. 인터럽트 중재 싸이클 동안에. 인터럽트 벡터를 송신하도록 중재하는 장치는 이 장치의 디코드된 ID번호를 데이타 라인 D[31 : 16]중 어느 한 라인상에서 주장한다. 중재는 상술한 방법, 즉 최고 우선 순위(최저 ID번호)를 갖고 있는 장치가 중재를 "획득"함으로써 슬레이브로 되는 방법으로 행해진다.
그다음, 슬레이브는 이 슬레이브의 인터럽트 벡터를 데이타 라인들상에서 주장한다. 이 벡터는 인터럽트 써비스 루틴의 개시를 식별하는 다른 벡터를 갖고 있는 메모리내의 위치를 지적한다.
이와 때를 같이하여, 슬레이브는 정보 라인 I[3 : 0]상에 벡터 상태코드를 송신하여 데이타 상태가 판독 트랜잭션동안의 이 정보 라인들상에서의 판독 데이타를 나타내는 것과 마찬가지로 벡터 상태를 나타낸다.
상술한 트랜잭션에서와 같이, BSY신호는 제1 싸이클로부터 최종 예상 싸이클까지의 트랜잭션 동안 마스터에 의해 주장되는 반면, NO ARB는 매입 중재 싸이클로부터 최종 예상 싸이클까지 주장된다.
ACK, NO ACK, STALL 및 RETRY는 IDENTIFY명령에 응답하여 슬레이브에 의해 주장될 수 있다. 이 응답은 모든 다른 형태의 트랜잭션보다 2싸이클만큼 늦은 싸인클 5에서 발생한다. 벡터 싸이클 다음의 2개의 싸이클 동안에, 마스터는 트랜잭션의 성공적 완료를 나타내기 위해 ACK확인 로드를 주장한다. IDENTIFY명령에 대한 슬레이브의 긍정 응답을 수신하면, 마스터는 인터럽트 벡터가 송신되는 인터럽트 레벨에 대응하는 인터럽트 플립 플롭을 리셋트한다. 슬레이브가 인터럽트 벡터의 전송에 대해 마스터의 긍정응답을 수신하지 못하면, 슬레이브는 인터럽트 트랜잭션으로 재송신한다.
장치가 명령/어드레스 또는 디코드된 마스터 ID싸이클에서 패리티 오류를 검출한 경우에는 이 장치는 인터럽트 중재 싸이클에 관련될 수 없다.
인터럽트 중재 싸이클 동안 중재되지만 중재를 상실한 장치는 INTERRUPT명령을 다시 발생시켜야 한다. 이것은 이미 지정된 인터럽트가 상실되지 않게 한다.
인터프로세서 인터럽트 트랜잭션
1개의 프로세서가 1개 이상의 다른 프로세서들을 인터럽트하도록 할때 간단한 형태의 인터럽트가 멀티프로세서 시스템에 제공된다. 제4f도에 도시한 인터프로세서 인터럽트 트랜잭션(Interprocessor Interrupt Transaction)은 명령/어드레스 싸이클, 매입 중재 싸이클 및 정보가 송신되지 않는 데이타 싸이클을 포함한다.
본 명세서에서 상호 통신 수단을 설명하는데 사용된 특정 실시예에 있어서, 이 트랜잭션은 3개의 레지스터, 즉 인터프로세서 인터럽트 마스크, 수신지(Destination) 및 소오스 레지스터(212,214 및 216)을 사용한다(제7a도 참조).
마스크 레지스터는 인터프로세서 인터럽트 명령이 받아들여지는 프로세서를 식별하는 필드(field)를 포함한다. 수신지 레지스터는 인터프로세서, 인터럽트 명령이 지향되는 프로세서를 식별하는 필드를 포함하고, 소오스 레지스터는 프로세서에 의해 수신된 인터프로세서 인터럽트 트랜잭션의 소오스를 식별하는 필드를 포함한다.
명령/어드레스 싸이클 동안에, 인터럽팅 프로세서는 정보 라인 I(3 : 0)상에서 INTERPROCESSOR INTERRUPT명령 코드를 주장함과 동시에, 이 인터럽팅 프로세서는 데이타 라인 D[31 : 16]상에서 이 프로세서의 디코드된 마스터 ID를 주장하고, 데이타 라인 D[15 : 0]상에서 (예를 들어, 인터프로세서 인터럽트 수신지 레지스터로부터의)수신지 코드를 주장한다. 다음의 매입 중재 싸이클 동안에, 인터럽팅 프로세서는 정보 라인 I[3: 0]상에서 이 프로세서의 ID를 주장하고, 중재는 통상적인 방법으로 진행된다.
제3싸이클 동안에, 명령/어드레스 싸이클에서 주장된 수신지 코드에 의해 어드레스된 장치들은 디코드된 마스터 ID를 마스크 레지스터내의 마스크와 비교하여 마스터가 이 장치들이 응답할 수 있는 장치인지의 여부를 결정한다. 부수적으로, 응답할 수 있는 장치이면, 인터럽트 장치들의 동일성을 유지하기 위해 디코드된 마스터 ID가 인터프로세서 인터럽트 소오스 레지스터내에 양호하게 기억된다. 이렇게 함으로써 인터럽트 트랜잭션에서 행해지는 것과 같이 인터럽트 벡터를 요하는 프로세서의 오버헤드(overhead)를 절약하게 된다. 허용 가능한 슬레이브 확인 신호들은 그밖의 다른 다중 응답기 명령의 경우와 같이 ACK 및 NO ACK이다.
정지 트랜젝션
정지 트랜잭션(Stop Transaction)은 제4g도에 도시되어 있다. 이 정지 트랜잭션은 고장난 시스템을 용이하게 진단할 수 있는데, 선택된 장치들을 슬레이브로서 계속 응답시키면서 이 선택된 장치들에 의해 추가적인 트랜잭션이 발생하는 것을 중지시킴으로써 고장난 시스템의 진단이 용이하게 이루어진다. 정지 트랜잭션에 의해 선택된 장치들은 펜딩 마스터 상태를 무효화시켜야 하고, NO ARB를 주장하지 않아야 한다. 오류 진단을 용이하게 하기 위해, 이러한 장치들은 정지 트랜잭션시에 존재하는 오류 상태에 관한 최소한의 정보를 유지하는 것이 바람직하다. 예를 들어, 통신로 버스 오류 레지스터 (204, 제7d도)내에 포함된 정보가 후속 분석을 위해 유지되는 것이 요구된다.
명령/레지스터 싸이클 동안에, 정지 트랜잭션을 실행하는 현재 마스터는 정보 라인 I[3 : 0]상에 적절한 STOP(정지) 명령을 주장하고, 데이타 라인 D[31 : 0]상에서 수신지 마스크를 주장한다. 이 마스크는 셋트시에, 정지될 장치들을 식별하는 다수의 비트를 포함한다. 명령/어드레스 싸이클 다음에는 통상적인 매입 중재 싸이클 및 정보가 송신되지 않는 데이타 싸이클이 뒤따른다. 명령/어드레스 싸이클 동안에 송신된 정보는 정지 트랜잭션에 의해 선택된 모든 장치들에 의해 나중의 2개의 싸이클 동안 확인된다.
방송 트랜잭션
제4h도에 도시한 방송 트랜잭션(Broadcast Transaction)은 통신로상의 장치들에 중요한 사건을 널리 알리고 인터럽트 트랜잭션의 오버헤드에 따른 비용을 제거하는 편리한 수단을 제공한다. 트랜잭션의 명령/어드레스 싸이클 동안에, 방송 트랜잭션을 개시하는 현재 마스터는 정보 라인 I[3 : 0]상에서 적절할 BROADCAST 명령 코드를 주장하고, 데이타 라인 D[31 : 10]상에 2-비트 데이타 길이 코드를 배치시킨다. 이와 때를 같이하여, 이 현재 마스터는 데이타 라인 D[15 . 0]상에서 수신지 마스크를 배치시킨다. 이마스크는 방송 트랜잭션에 의해 선택되는 장치들을 지정한다. 예를 들어, 데이타 라인(2,3,5,9,12,13 및14)상에 주장된 "1"비트는 방송(BROADCAST)을 수신하기 위한 장치(2,3,5,9,12,13 및 14)를 선택한다. 명령/어드레스 싸이클 다음에는 통상의 매입 중재 싸이클이 뒤따르고 이어서 1 이상의 데이타 싸이클이 뒤따른다. 설명의 목적만을 위해, 제4h도에는 2개의 데이타 싸인클만을 도시하였다 이 데이타 자체는 마스터에 의해 데이타 라인 D[31 : 0]상에서 주장된다. 기입형 트랜젝션에서와 마찬가지로, 슬이브브는 2개의 싸이클후에 ACK 또는 NO ACK를 발생시킨다.
레지스터 보수(Register Complement)
제7a도에는 본 발명의 상호 접속 수단의 실시예에 포함된 레지스터 파일(file)이 도시되어 있다. 레지스터 파일에는 장치-형 레지스터(200), 제어 및 상태 레지스터(202), 버스 오류 레지스터(204), 오류 인터럽트 제어 레지스터(206), 오류 벡터 레지스터(208), 인터럽트 수신지 레지스터(210), 인터프로세서 인터럽트 마스크 레지스터 (212), 인터프로세서 인터럽트 수신지 레지스터(214) 및 인터프로세서 인터럽트 소오스 레지스터(216)이 포함된다. 이 레지스터들은 32비르 레지스터[예를 들어, 레지스터 (200,204)]와 16비트 레지스터(예를 들어, 레지스터(202,206,208,210,212,214 및 216)으로 구성된다.
장치-형 레지스터(200, 제7b도)이서, 이 장치-형 레지스터용 코드는 레지스터의 하반부(DTR[l5 : 0])에 기억된다. 장치-형 레지스터는 시스템의 전력 증가시 또는 시스템 후속 초기화시에 레지스터내에 적재된다. 이 레지스터는 시스템 구성을 최적화시키고 동적으로 재배치하기 위해 시스템에 장치들이 어떻게 접속되는지를 결정하기 위해 통상적으로 프로세서와 같은 시스템내의 다른 요소들에 의해 조회될 수 있다. 수정 코드 필드(Revision Code Field) (DTR[31, 16])은 장치 -형 레지스터의 상반부에 제공된다.
제어 및 상태 레지스터(Control and Status Register ; CSR) (202)는 장치 및 이 장치가 부착되는 상호 접속 수단내의 여러가지 조건들의 상태들을 나타내는 다수의 비트를 포함한다. 부수적으로. 이 제어 및 상태 레지스터는 통신로의 제어를 중재하는데 사용되는 정보를 기억한다. 그러므로, 비트 CSR[3: 0]은 전력 증가시 또는 후속 초기화시에도 이 레지지스터내에 적재되는 엔코드된 형태의 장치 ID를 기억한다.
비트 CSR[5 : 4)]는 장치가 중재되는 중재(Arbitration : Arb) 모우드를 지정한다. 이미 기술한 바와 같이, 이 모우드들은 "이중 라운드 로빈", 고정된 고 레벨, 고정된 저 레벨, 및 중재 불능 모우드를 포함한다. 전력 증가시 또는 후속 초기화시에, 중재 모우드는 "이중 라운드 로빈" 모우드로 셋트된다. 그러나, 이 모우드는 시스템 동작중에 이 비트들에 다른 모우드를 기입시킴으로써 변환될 수 있다.
CSR[7] 및 CSR[6]은 각각 하드 오류 인터럽트 엔에이블(Hard Error Interrupt Enable ; HEIE) 및 소프트 오류 인터럽트 엔에이블(Soft Error Interrupt Enable : SEIE) 비트이다. 셋트시에, 이 CSR[7] 및 CSR[6] 하드 오류 요약(Hard Error Summary : HES) 비트 CSR[15] 또는 소프트 오류 요약(Soft Error Summary : SES) 비트 CSR[14]가 각각 셋트될 때마다(이후부터 오류 인터럽트 트랜잭션이라함) 인터럽트 트랜잭션을 발생시키도록 장치를 엔에이블시킨다. 이 후자의 비트들은 하드 또는 소프트 오류가 검출될 때 각각 셋트된다. "하드" 오류는 이 시스템상의 데이타의 집중도에 영향을 미치는 오류인데. 예를들면 데이타 송신 중에 데이타 라인들상에서 검출된 패리티 오류는 하드 오류이다. 이와 반대로. "소프트"오류는 시스템내의 데이타의 집중도에 영향을 미치지 않는 오류인데, 예를 들어 매입 중재 싸이클 동안에 식별 라인 I[3 : 0]상에서 검출된 패리티 오류는 장치에 의해 부정확하게 계산될 수 있지만 통신로상의 데이타의 집중도에는 영향을 미치지 않는다. 따라서, 이 오류는 소프트 오류이다.
언록크 기입 펜딩(Unlock Write Pending ; UWP) 비트 CSR[8]은 인터럽트 판독 트랜잭션이 장치에 의해 성공적으로 송신되었으나, 후속 UNLOCK WRITE MASK WITH CACHE INTENT 명령이 아직 전송되지 않았다는 것을 나타낸다. 개시 자체 검사(Start Self Test : SST) 비트 CSR[10]은 셋트시에, 상호 접속 논리 동작을 검사하는 자체 검사를 나타낸다. 자체 검사 상태(Self Test Status : STS) CSR[11]은 이 자체 검사가 성공적으로 완료될 때까지 계속 리셋트되는데, 이 완료시에, STS 비트는 검사의 성공적인 완료를 표시하도록 셋트된다. 또한, 브로크(BROKE) 비트 CSR[12]는 장치가 자체 검사에 실패했을 경우에 셋트된다.
초기화(Initialization : INT) 비트 CSR[13]는 시스템 초기화에 관련하여 사용된다. 예를 들어, 이 비트는 장치가 초기화 과정을 수행하는 동안에 상태 지시사(indicator)로서 사용될 수 있다. SCR[23 : 16]은 특정한 형태의 상호 접속 수단을 지정한다. 비트 CSR[31 : 24]는 여기서는 사용하지 않는다.
버스 오류 레지스터(Bus Error Register ; BET)(204)는 시스템 동작중에 여러 가지 오류 조건들을 기억한다. 널 패리티 오류(Null Parity Error ; NPE) 비트 BER[0], 정정 판독 데이터(Corrected Read Data ; CRD) 비트 BER[1] 및 ID 패리티 오류(ID Parity Error ; IPE) 비트 BER[2]는 소프트 오류를 기억하지만, 나머지 비트들은 하드 오류를 기억한다. 널 패리티 오류 비트는 NO ARB 및 BSY가 주장되지 않는 2-싸이클 순서의 제2싸이클 동안에 부정확한 패리티가 검출된 경우에 셋트된다. 정정 판독 데이터 비트는 정정 판독 데이터 상태 코드가 판독-GUYD 트랜잭션에 응답하여 수신되는 경우에 셋트된다. ID 패리티 오류 비트는 패리티 오류가 매입 중에 판독-형 트랜잭션에 응답하여 수신되는 경우에 셋트된다. ID 패리티 오류 비트는 패리티 오류가 매입 중재 싸이클 동안에 엔코드된 마스터 ID를 전송하는 라인 I[3 : 0]들 상에서 검출되는 경우에 셋트된다.
불법 확인 오류(Illegal Confirmation Error : ICE) 비트 BER[16]은 트랜잭션중의 불법 확인 코드의 수신을 나타낸다. 부재 어드레스(Nonexistent Address ; NEX) 비트 BER[17]은 판독-형 또는 기입-형 명령에 응답하여 NO ACK 수신에 의해 셋트된다. 버스 타임아웃(Bis Timeout ; BTO) 비트 BER[18]은 펜딩 마스터가 상호 접속 수단의 제어를 취하기 위해 선정된 싸이클 수 이상으로 대기하는 경우에 셋트된다. 본 명세서에 기술한 특정한 실시예에서는, 4096번의 싸이클의 타임아웃이 실행된다. STALL 타임아웃(STALL Timeout ; STO) 비트 BER[19]는 응답(슬레이브) 장치가 선정된 싸이클 수보다 많은 싸이클에 대해 STALL을 응답 라인 CNF[2 : 0]상에서 주장하는 경우에 셋트된다. 본 실시예에서는, 128개의 싸이클에 후에 STALL 타임아웃이 발생한다. RETRY 타임아웃(RETRY Timeout ; RTO) 비트 BER[20]는 현재 마스터가 통신하는 슬레이브로부터 선정된 수의 연속 RETRY 응답을 수신하는 경우에 셋트된다. 본 실시예에서, 이 타임아웃은 128개의 연속 RETRY 응답에 대해 셋트된다.
판독 데이터 대용(Read Data Substitute ; RDS) 비트 BER[21]은 판독 데이터 대용 도는 예약(Seserved) 상태 코드를 포함하는 데이터 상태가 판독-형 또는 식별 트랜잭션 이행 동안에 수신되고, 이 싸이클 동안 패리티 오류가 없는 경우에 셋트된다. 슬레이브 패리티 오류(Slave Parity Error ; SPE) 비트 BER[22]는 슬레이브가 기입-형 또는 방송 트랜잭션의 데이터 싸이클 동안에 통신로상에서 패리티 오류를 검출할 때 셋트된다. 명령 패리티 오류(Command Parity Error ' CPE) 비트 BER[23]은 패리티 오류가 명령/어드레스 싸이클 동안 검출될 때 셋트된다.
식별 벡터 오류(Identify Vector Error ; IVE) 비트 BER[24]는 마스터 식별 트랜잭션으로 ACK에 의해서가 아니라 확인 코드 수신시에 슬레이브에 의해 셋트된다. 고장 중 송신기(Transmitter During Fault ; TDF) 비트 BER[25]는 SPE, MPE, CPE 또는 IPE 비트를 셋팅시키는 싸이클 동안 데이터 및 정보 라인들상에(또는, 매입 중재 중에는 직접 정보 라인들상에) 정보를 주장하고 있었던 경우에 셋트된다. 인터룩크 순서 오류(Interlock Sequence Error ; ISE) 비트 BER[26]은 대응하는 인터록크 판독 트랜잭션을 미리 송신하지 않고서도 마스터가 기입 언록크 트랜잭션을 성공적으로 송신한 경우에 셋트된다. 마스터 패리티오류(Master Parity Error ; MPE) 비트 BER[27]은 라인 CNF[2 : 0]들상의 ACK 확인을 갖고 있는 데이터 싸이클 동안에 마스터 패리티 오류를 검출하는 경우에 셋트된다. 제어 전송 오류(Control Transmit Error ; CTE) 비트 BER[28]은 장치가 NO ARB, BSY 또는 CNF 라인들을 주장하려고도 시도할 때 이 라인들상에서 이 장치가 주장되지 않은 상태를 검출한 때 셋트된다. 마지막으로, 마스터 송신 검사 오류(Master Transmit Check Error ; MTCE) 비트 BER[29]는 마스터가 데이타, 정보 또는 패리티 라인상에서 주장하는 데이타가 이 라인들상에 실제로 존재하는 데이타와 일치하지 않을 때 셋트된다. 그러나, 매입 중재중에 마스터 ID의 주장은 검사되지 않는다.
제7e도를 참조하면, 오류 인터럽트 제어 레지스터(Error Interrupt Control Register : EICR) (206)의 구조가 상세하게 도시되어 있다. 한 비트가 버스 오류 레지스터내에 셋트되고 적절한 오류 인터럽트 엔에이블 비트가 제어 및 상태 레지스터내에 셋트될 때, 또는 강제(force) 비트가 오류 인터럽트 제어 레지스터내에 셋트될 때, 오류 인터럽트가 발생한다. 강제비트 EICR[13 : 2]는 오류 인터럽트 벡터를 포함한다. 강제비트 EICR[20]이 셋트되면, 상호 접속 수단은 비트 EICR[19 : 16]에 의해 지정된 레벨에서 오류 인터럽트 트랜잭션을 발생시킨다. 송신(Sent) 비트 ECIR[21]은 오류 인터럽트가 송신된 후에 셋트된다. 셋트시에, 이 송신 비트는 이 레지스터에 의해 더 이상의 인터럽트가 발생하지 못하게 한다. 이 비트는 오류 인터럽트에 대한 인터럽트 중재를 상실시예 리셋트된다. 인터럽트 완료(Interrupt Completion ; INTC) 비트 EICR[23]은 오류 인터럽트 벡터의 성공적인 송신시에 셋트된다.
인터럽트 포기(정지) (Interrup Abort : INTAB) 비트 EICR[24]는 오류 인터럽트 트랜잭션이 성공적이지 못한 경우에 셋트된다.
제7f도를 참조하면, 인터럽트 수신지 레지스터(Interrupt Destination Register ; IDR) (210)은 상술한바와 같이 장치가 이 장치에 의해 개시된 인터럽트 명령에 의해 선택되는지를 식별하는 인터럽트 수신지 필드 IDR[15 : 0]를 포함한다.
제7g도에는 인터프로세서 인터럽트 마스크 레지스터(Interprocessor Interrupt Mask Register ; IIMR) (212)가 도시되어 있다. 이 레지스터는 인터프로세서 인터럽트가 받아들일 장치를 식별하는 마스크 필드IIMR[31 : 16]을 포함한다. 이와 마찬가지로, 인터프로세서 인터럽트 수신지 레지스터(Interprocessor Interrupt Destinatilin Register ; IIDR) (214)는 인터프로세서 인터럽트 명령이 보내지는 장치를 식별하는 수신지 필드 IIDR[15 : 0]을 포함한다. 마지막으로 인터프로세서 인터럽트 소오스 레지스터(Interprocessor Interrupt Source Register : IISR) (216)은 소오스 식별 필드 IISR[31 : 16]을 포함하는데, 이 필드는 발송장치의 ID가 이 장치의 인터프로세서 인터럽트 마스크 레진스터와 정합하면, 이 장치에 인터프로세서 인터럽트 명령을 발송 장치의 디코드된 ID를 기억한다.
2. 재시도 장치의 상세한 설명
상술한 재시도 응답(Retry Response)은, 장치가 인터록크형 통신로상에서 초과 완료 시간을 요구하는 동작들을 종료시킬 수 있게 함으로써 시스템 성능을 증가시킨다. 인터록크형 통신로에 있어서, 제어가 트랜잭션을 실행하도록 허여되면, 트랜잭션이 완료될 때까지 계속되어야 한다. 부수적으로, 이것은 다른 버스 또는 이중 포트(Port) 메모리에 적응하는 수단을 제공한다는 점에서 시스템 융통성을 증가시킨다. 이 트랜잭션에 의해 제공되는 능력이 특히 유용한 상황은 제8a도 내지 제8d도에 도시되어 있다.
제8a도에 있어서, 장치(300)은 명령 디코드 유니트(302), 인터록크 비트 레지스터(304) 및 AND 게이트(306)을 갖고 있다. 명령 디코드 유니트(302)는 INTERLOCK READ 명령이 장치에 의해 수신될 때마다 게이트(306)으로 출력을 발생시킨다. 또한 , INTERLOCK READ 명령은 레지스터(304)를 셋트시킨다. 이 레지스터는 UNLOCK WRITE와 같은 후속 UNLOCK 명령에 의해서 클리어 (Clear)된다. 설명의 목적을 위해, 레지스터는 성공적인 INTERLOCK READ 트랜잭션을 완료한 후에만 셋트되는 것으로 도시되어 있다.
제2의 INTERLOCK 명령이 UNLOCK WRITE 전에 장치에 수신되면, 레지스터(304)가 셋트되고 이에 따라 AND 게이트(306)은 엔에이블된다. 그다음, 명령 디코드 유니트(302)의 출력은 게이트(306)에 인가되어, 이 게이트가 RETRY 응답으로 작용할 수 있는 출력을 발생시키게 한다. 이 응답은 이미 기술한 바와 같이 명령 확인(Command Confirmation)의 일부로서 현재 마스터로 복귀된다. 그 다음, 마스터는 NO ACK 응답을 수신하는 것과 마찬가지 방법으로 트랜잭션을 종료시키고, RETRY에 대해 후속 시간에서 트랜잭션을 요하거나 적절한 다른 동작을 취하게 된다.
제8b도에는 스톨(STALL) 응답 대신에 RETRY 응답을 사용하는 일예가 도시되어 있는데, 이 예는 카운터(312) 및 제한 셋팅 유니트(314)를 갖고 있는 장치(310)을 포함한다. 카운터(312)는 스톨(STALL) 응답이 장치에 의해 주장되는 횟수를 계수한다. 이 수가 유니트(314)내의 선정된 제한 셋트를 초과하면, 유니트(314)는 RETRY 응답으로서 작용하는 출력을 제공한다. 이 응답은 마스터에 송신되어 장치(310)이 마스터와 통신하는 것에 관련하여 트랜잭션들 종료시킨다. 제8b도에 도시한 바와 같이, RETRY를 사용하는 것이 적절한 경우에는 트랜잭션이 제한된 수의 싸이클만큼 연장된다면, 트랜잭션에 의해 요구되는 동작을 장치가 실행할 수 있을 때이다. 스톨(STALL)이 주장될 수 있는 수에 상한을 정함으로써 장치는 소정의 시간내에 응답하도록 시도하게 되지만, 이 시간을 초과해서는 통신로를 점유하지 못하게 한다. 이것은 통신로를 해제시키고 다른 장치에 의해 발생된 트랜잭션이 진행되게 한다. 그다음, 장치는 마스터에 의한 추가적인 억세스 시도에 대해 더 적은 수의 STALL로 트랜잭션을 완료시킬 수 있다,
이중 포트 메모리는 다중프로세서 시스템에서 시스템 성능을 향상시키기 위해 종종 사용된다. 이러한 시스템에서는 2개의 포트 모두로부터 메모리에 억세스할 수 있게 한다. 소정의 상황하에서, 이것은 적절한 예방 조치가 취해지지 않는한 문제점을 야기시킨다. 예를 들어, 제1트랜잭션이 발생한 후 또는 최종 트랜잭션이 완료되기 전의 일정 시간에 기억된 데이타를 변화시키도록 트랜잭션들의 순서를 예상할 수 있는 경우에는, 변화가 이루어질 때까지 다른 장치에 의한 데이타의 억세스를 제한시켜야 한다. 이것은 예를 들어, 판독-수정-기입(read-modify-write) 동작이 바람직한 동작을 실행하기 위해 트랜잭션 순차를 사용하는 경우이다. RETRY 응답은 이 상황에서 특히 유용하다. 그러므로, 제8c도에 있어서, 이중 포트 메모리(330)은 제1억세스 포트(332)와 제2억세스 포트(334)를 갖고 있다. 포트 억세스 레지스터(336)은 포트(332)를 통해 현재 메모리를 사용하는 것을 기록하는 제1레지스터 섹션(336a), 및 포트(334)를 통해 현재 메모리를 사용하는 것을 기록하는 제2레지스터 섹션(336b)를 갖고 있다. 제1aND 게이트(338)은 레지스터 섹션(336b)에 의해 엔에이블된다. 게이트(338)은 포트(332)가 트랜잭션을 위해 장치에 의해 억세스될 때마다 이 포트(332)로부터 제2입력을 수신한다. 이와 마찬가지로, 제2AND 게이트(340)은 레지스터(336a)에 의해 엔에이블되고, 포트(334)가 억세스될 때 이 포트(334)로부터 입력을 수신한다. 게이트(338 및 340)의 출력은 OR 게이트(342)에 인가된다.
포트(332)가 INTERLOCK READ와 같은 인터록크형 트랜잭션을 실행하기를 요하는 장치에 의해 억세스되면, 레지스터(336a)는 이 사실을, 예를 들어 상태 비트를 셋팅시킴으로써 기록하는데, 이로써 AND 게이트(340)을 엔에이블시킨다. 포트(334)가 현재 억세스되면, 게이트(340)은 포트(334)를 통해 메모리(330)에 대한 억세스를 요하는 장치에 RETRY 응답으로서 작용하는 출력을 발생시킨다. 그 다음, 억세스를 요하는 장치는 이미 기술한 바와 같이 이 장치의 트랜잭션을 종료하게 된다. 인터록크형 순차를 실행하기를 요하는 장치에 의해 포트(334)가 억세스된 다음, 인터록크 상태가 계속 유효하게 지속되는 동안 포트(332)가 억세스될 때에도 이와 마찬가지의 결과가 얻어진다.
장치들간의 통신의 필요성이 증가하면 이러한 장치들에 의해 사용되는 상이한 인터록크 통신로를 상호 접속시키기 위한 필요성이 크게 증가된다. 이러한 통신로들은 이 통신로상에 상이한 제한을 부과시키는 별도의 제어 소오스로부터 제어된다. 상호 접속될 때, 각각의 통신로는 완전히 상이한 동작에 대해서 동시에 다른 통신로에 대한 억세스를 요청할 수 있다. 이러한 경우가 발생하면, 이 통신로들은 단절(hang-up)되어, 결과적으로 통신 효율에 역기능하게 된다. 본 발명의 재시도 응답 절차는 경합하는 통신로들사이의 분쟁을 해결하기 위한 매우 간단하고 효율적인 장치를 제공한다.
그러므로, 제8d도에 도시한 바와 같이, 본 발명의 통신로(78)은 인터페이스(342)를 통해 별도의 통신로(340)에 접속된다. 인터페이스(342)는 통신로가 사용되는 때를 결정하기 위해 각각의 통신로 상의 1개 이상의 신로 라인을 모니터하는 제어기(344)를 포함한다. 예를 들어, 제어기(344)는 통신로(78)이 트랜잭션에 대해 통신로(340)에 의해 현재 억세스되고 있는지의 여부를 결정하기 위해 이 통신로(78)상에서 슬레이브로서의 선택을 모니터한다. 이와 마찬가지로, 이 제어기는 동일한 목적으로 통신로(340)상의 1개 이상의 적절한 신호를 모니터한다. 다른 통신로로의 접속을 위한 요청이 부합하는 것을 검출하면, 제어기(344)는 통신로(340)의 제어를 요하는 트랜잭션의 명령 확인 응답 싸이클 동안 통신로(78)상으로 복귀되는 RETRY 명령을 발생시킨다. 이것은 통신로(340)이 현재 점유되어 적절한 동작이 취해질 수 있다는 신호를 통신로(340)의 제어를 원하는 장치로 보낸다.
결론
본 명세서에 기술한 재시도(RETRY) 장치는 트랜잭션을 보증하는 장치가 과도한 지연을 요구하지 않고서는 트랜잭션을 완료할 수 없을 때 통신로를 해제시키는 효율적인 수단을 제공한다. 이것은 응답 장치에 의한 긴 억세스 시간의 필요성에 의해 생길수도 있고, 다른 요인, 예를 들어 트랜잭션들의 순차를 요구하는 동작(예를 들어, 판독-수정-기입 동작)이 다른 트랜잭션들이 허용되기전에 종료되도록 하는 필요성에 의해 생길 수도 있다. 또한 , 이 재시도 장치는 트랜잭션이 다른 반응들에 의해 연장될 수 있는 정도를 제한시키는데 유용하다. 마지막으로. 이 재시도 장치는 인터록크 형태의 통신로들 사이에서의 트랜잭션을 용이하게 처리하는데 특히 유용하다.

Claims (4)

  1. 판독되거나 기입되는 데이타를 나타내는 데이타 신호들을 반송하는 것으로서 데이타가 판독될 메모리 위치를 나타내는 신호들을 반송하기 위한 어드레스 라인(82), 어드레스 신호들에 의해 지정되는 메모리 위치로부터 데이타가 판독되도록 요청하는 인터록크 명령과 어드레스 신호에 의해 지정되는 메모리 위치내로 데이타가 기입되도록 요청하는 언록크 기입 명령을 포함하는 명령들을 반송하기 위한 명령 라인(80), 및 긍정 응답(ACKNOWLEDGE) 신호와 어떠한 장치가 신호들을 응답 라인들상에 배치시키지 않을 때 발생되는 부정 응답(NO ACKNOWLEDGE) 신호와 재시도 신호의 최소한 세개의 응답 신호들 중 한 신호를 반송하기 위한 상기 응답 라인(88)을 포함하는 공통 통신로(20,78)에 접속하기 위한 데이타 프로세싱 시스템내의 메모리 장치 (12,300)에 있어서, (A). 긍정 응답 수단(12의 18,300) 및 (B). 데이타를 기억하기 위한 다수의 메모리 위치(12의 메모리)을 포함하고, (a) 상기 긍정 응답 수단(12의 18,300)이 최소한 하나의 인터록크-비트 레지스터(304)를 포함하고, 각각의 인터록크-비트 레지스터가 최소한 하나의 어드레스에 관련되며, 재시도-엔에이블 상태 및 재시도-디스에이블 상태중의 한 상태를 선택적으로 취하도록 정렬되며, 메모리 장치가 상기 공통 통신로에 접속될 때 (1) 상기 인터록크-비트 레지스터가 인터록크-판독 명령을 수신하고 재시도-디스에이블 상태에 있을 때 상기 인터록크-비트 레지스터의 재시도-엔에이블 상태를 취하고, (2) 상기 인터록크-비트 레지스터가 언록크-기입 명령을 수신하고 재시도-엔에이블 상태에 있을때 상기 인터록크-비트 레지스터의 재시도-디스에이블 상태를 취하도록 상기 인터록크-비트 레지스터에 관련되는 어드레스를 나타내는 어드레스 신호들에 응답하며, 상기 긍정 응답 수단이 (1) 상기 공통 통신로상의 상기 어드레스 신호들에 관련된 상기 인터록크-비트-레지스터가 재시도-엔에이블 상태에 있을 때 상기 공통 통신로상에 재시도 신호들을 발생시키고, (2) 상기 공통 통신로상의 상기 어드레스 신호들이 재시도-디스에이블 상태에 있을 때 상기 공통 통신로 상에 긍정 응답 신호들을 발생시키도록 연관되는 인터록크-비트 레지스터에 관련되는 인터록크-판독 명령 및 어드레스가 상기 공통 통신로상에 존재하는 것에 응답하고 ; (b) 상기 다수의 메모리 위치(12의 메모리)의 각각의 메모리 위치가 어드레스에 관련되고, (1) 상기메모리 장치가 상기 공통 통신로에 접속될 때 상기 위치의 상기 어드레스에 관련되는 상기 인터록크-비트 레지스터가 재시도-디스에이블 상태에 있으면, 상기 위치에 기억되어 있는 데이타를 나타내는 데이타 신호들을 상기 공통 통신로 상에 발생시키고, 또한 상기 위치의 상기 어드레스에 관련된 상기 인터록크-비트 레지스터가 재시도-엔에이블 상태에 있으면, 상기 위치에 기억되어 있는 데이타를 나타내는 신호들을 상기공통 통신로상에 발생시키지 않도록 하는 것에 관련된 상기 어드레스의 상기 공통 통신로 상에서의 존재에 대하여, 또한 인터록크-판독 명령에 대하여, 또한 상기 메모리 위치의 상기 어드레스에 관련된 상기 인터록크 비트의 상태에 대하여 응답하며, (2) 상기 공통 통신로상의 자신의 어드레스에 응답하고, 상기 공통 통신로에 의해 반송된 데이타 신호들에 의해 표현되는 데이타를 기억하기 위해 언록크-기입 명령에 응답하는 것을 특징으로 하는 메모리 장치.
  2. 실행될 트랜잭션을 지정하는 명령들을 반송하고, 트랜잭션의 길이를 연장시키기를 요청하는 스톨(STALL) 신호(88)을 반송하며, 상기 트랜잭션을 한 형태로 종료시키는 부정 응답 신호(88)을 반송하고 상기 트랜잭션을 또다른 형태로 종료시키는 재시도 신호(88)을 반송하기 위한 라인(80)을 포함하는 공통 통신로(20,78)에 접속시키기 위한 데이타 프로세싱 시스템내의 슬레이브 장치(12, 300)에 있어서, (A). 상기 슬레이브 장치가 상기 공통 통신로에 접속될 때 상기 공통 통신로상에 명령에 배치시킨 마스터 장치로 트랜잭션을 실행하기 위해 상기 공통 통신로상의 상기 마스터 장치로부터의 명령에 응답하는 트랜잭션 수단(12의 18, 300) ; (B). 트랜잭션을 완료하기 위해 상기 트랜잭션 수단에 의해 요구되는 시간이 할당된 기간을 초과할 경우 상기 슬레이브 장치가 상기 공통 통신로에 접속될 때 상기 명령 신호에 의해 지정된 상기 트랜잭션을 상기 장치의 실행중에 상기 공통 통신로상에 스톨(STALL) 신호를 발생시키기 위해 상기 트랜잭션수단에 응답하는 스톨(STALL) 수단(12의 18, 300) ; 및 (C). 상기 장치가 얼마나 오랫동안 상기 스톨(STALL) 신호를 주장했는지를 추적하도록 상기 스톨(STALL) 수단을 모니터하고, 상기 장치가 선정된 최대 시간 이상동안 상기 스톨 신호를 주장한 경우 상기 공통 통신로상에 상기 재시도 신호를 발생시키기 위한 재시도 수단(12의 18, 300)을 포함하는 것을 특징으로 하는 슬레이브 장치.
  3. (A). 공통 통신로(20,78), (B). 최소한 하나의 마스터 장치(10), 및 (C). 메모리 장치(12,300)을 포함하고, 상기 최소한 하나의 마스터 장치가 (i). (a) 데이타가 판독될 메모리 위치를 지정하는 어드레스 신호들과 상기 어드레스 신호들에 의해 지정된 메모리 위치로부터 데이타가 판독되도록 요청하는 인터록크-판독 명령들을 상기 공통 통신로상에 발생시킴으로써 최소한 몇개의 판독 트랜잭션을 개시시키고, (b) 데이타가 기입될 메모리 위치를 지정하는 어드레스 신호들을 상기 공통 통신로상에 발생시키고, 기억될 데이타를 상기 공통 통신로에 발생시키며, 상기 공통 통신로에 발생된 상기 데이타들이 상기 어드레스 신호들에 의해 지정된 위치에 기억되도록 요청하는 언록크-기입 명령들을 상기 공통 통신로에 발생시킴으로써 최소 한 몇개의 기입 트랜잭션들을 개시시키기 위한 수단(10의 프로세서) ; (ⅱ). 상기 개시 수단이 판독 트랜잭션을 개시한 후에 긍정 응답 신호와 부정 응답 신호와 재시도 신호의 최소한 세개의 응답 신호들 중 하나의 신호에 대하여 상기 공통 통신로를 모니터하는 수단(10의 18) ; (iii). 상기 긍정 응답 신호에 응답하여 상기 판독 트랜잭션을 완료시키기 위한 수단(10의 프로세서) ; (iv). 상기 부정 응답 신호에 응답하여 한 형태로 상기 트랜잭션을 종료시키기 위한 수단(10의 프로세서) ; 및 (v). 상기 재시도 신호에 응답하여 다른 형태로 상기 트랜잭션을 종료시키기 위한 수단(10의 프로세서)를 포함하며, 상기 메모리 장치(12, 300)이 (i) . 긍정 응답 수단(12의 18, 300), 및 (ii). 데이타를 기억하기 위한 다수의 메모리 위치 (12의 메모리, 300)을 포함하고, 상기 긍정 응답 수단(12의 18, 300)이 최소한 하나의 인터록크-비트 레지스터(304)를 포함하고, 각각의 인터록크-비트 레지스터가 최소한 하나의 어드레스에 관련되며, 재시도-엔에이블 상태 및 재시도-디스에이블 상태중 한 상태를 선택적으로 취하도록 정렬되며, (a) 상기 인터록크-비트 레지스터가 인터록크-판독 명령을 수신하고 재시도-디스에이블 상태에 있을 때 상기 인터록크-비트 레지스터의 재시도-엔에이블 상태를 취하고, (b) 상기 인터록크-비트 레지스터가 언록크-기입 명령을 수신하고 재시도-엔에이블 상태에 있을 때 상기 인터록크-비트 레지스터의 재시도-디스에이블 상태를 취하도록 상기 인터록크-비트 레지스터에 관련되는 어드레스를 나타내는 어드레스 신호들에 응답하며, 상기 긍정 응답 수단이 (a) 상기 공통 통신로상의 상기 어드레스 신호들에 관련된 상기 인터록크-비트 레지스터가 재시도-엔에이블 상태에 있을 때 상기 공통 통신로상에 재시도 신호들을 발생시키고, (b) 상기 공통 통신로상의 상기 어드레스 신호들이 재시도-디스에이블 상태에 있을 때 상기 공통 통신로상에 긍정 응답 신호들을 발생시키도록 연관되는 인터록크-비트 레지스터에 관련되는 인터록크-판독 명령 및 어드레스가 상기 공통 통신로상에 존재하는 것에 응답하고, 상기 다수의 메모리 위치(12의 메모리)의 각각의 메모리 위치가 어드레스에 관련되고, (a) 자체의 어드레스에 관련되는 상기 인터록크-비트 레지스터가 재시도-디스에이블 상태에 있으면, 상기 위치에 기억되어 있는 데이타를 나타내는 데이타 신호들을 상기 공통 통신로상에 발생시키고, 자체의 어드레스에 관련된 상기 인터록크-비트 레지스터가 재시도-엔에이블 상태에 있으면, 상기 위치에 기억되어 있는 데이타를 나타내는 신호들을 상기 공통 통신로상에 발생시키지 않도록 상기 공통 통신로상에서의 자체의 어드레스에 대하여, 또한 인터록크-판독 명령에 대하여, 또한 상기 메모리 위치의 상기 어드레스에 관련된 상기 인터록크 비트의 상태에 대하여 응답하고, (b) 상기 공통 통신로상의 자신의 어드레스에 응답하고 마스터 장치에 의해 상기 공통 통신로상에 배치된 데이타 신호들에 의해 표현되는 데이타를 기억하기 위해 언록크-기입 명령에 응답하는 것을 특징으로 하는 데이타 프로세싱 시스템.
  4. (A). 공통 통신로(20, 78), (B). 상기 공통 통신로상에 접속된 최소한 하나의 마스터 장치(10), 및 (C). 슬레이브 장치(12, 300)을 포함하고, 상기 최소한 하나의 마스터 장치(10)이 (i). 명령을 상기 공통 통신로상에 발생시킴으로써 트랜잭션을 개시하기 위한 수단(10의 프로세서) ; (ii). 상기 트랜잭션에 관련하여 선정된 트랜잭션 시간동안 상기 트랜잭션을 실행하기 위한 수단(10의 프로세서) ; (ⅲ). 상기 공통 통신로상의 선정된 스톨(STALL) 신호의 존재에 응답하여 상기 트랜잭션 시간을 연장하기 위한 수단(10의 프로세서) ; (iv). 상기 공통 통신로상의 부정 응답 신호의 존재에 응답하여 한 형태로 상기 트랜잭션을 종료시키기 위한 수단(10의 프로세서), 및 (V). 상기 공통 통신로상의 재시도 신호의 존재에 응답하여 다른 형태로 상기 트랜잭션을 종료시키는 수단(10의 프로세서)를 포함하며, 상기 슬레이브 장치(12, 300)이 (i). 상기 공통 통신로상에 명령에 배치시킨 마스터 장치에 대하여 트랜잭션을 실행하기 위해 상기 공통 통신로상의 상기 마스터 장치로부터의 상기 명령에 응답하는 트랜잭션 수단(12의 18, 300) ; (ii) . 상기 트랜잭션을 완료하기 위해 상기 트랜잭션에 의해 요구되는 시간이 할당된 기간을 초과할 경우 상기 명령 신호에 의해 지정된 상기 트랜잭션을 상기 장치가 실행중일 때 상기 공통 통신로상에 스톨(STALL) 신호를 발생시키기 위해 상기 트랜잭션 수단에 응답하는 스톨(STALL) 수단(12의 18,300), 및 (iii). 상기 장치가 얼마나 오랫동안 상기 스톨 신호를 주장했는가를 추적하기 위해 상기 스톨 수단을 모니터하고, 상기 장치가 선정된 최대 시간이상동안 상기 스톨(STALL) 신호를 주장한 경우, 상기 공통 통신로상에 재시도 신호를 배치시키기 위한 재시도(RETRY) 수단(12의 18, 300)을 포함하는 것을 특징으로 하는 데이타 프로세싱 시스템.
KR1019840005838A 1983-09-22 1984-09-22 디지탈 컴퓨터 시스템의 데이타 프로세싱 시스템 및 이의 통신로 접속 장치 KR910001792B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53472083A 1983-09-22 1983-09-22
US534,720 1983-09-22

Publications (2)

Publication Number Publication Date
KR850002619A KR850002619A (ko) 1985-05-15
KR910001792B1 true KR910001792B1 (ko) 1991-03-23

Family

ID=24131248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019840005838A KR910001792B1 (ko) 1983-09-22 1984-09-22 디지탈 컴퓨터 시스템의 데이타 프로세싱 시스템 및 이의 통신로 접속 장치

Country Status (6)

Country Link
EP (2) EP0301610B1 (ko)
JP (1) JPS60144850A (ko)
KR (1) KR910001792B1 (ko)
AU (1) AU564271B2 (ko)
CA (1) CA1217280A (ko)
DE (2) DE3485980T2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2165726B (en) * 1984-10-05 1988-07-27 Mitsubishi Electric Corp Arbitration system for data bus
US4719622A (en) * 1985-03-15 1988-01-12 Wang Laboratories, Inc. System bus means for inter-processor communication
JPS6275860A (ja) * 1985-09-30 1987-04-07 Toshiba Corp デ−タ転送制御装置
GB2193066B (en) * 1986-07-07 1990-07-04 Perkin Elmer Corp Computer bus
US4807118A (en) * 1987-01-14 1989-02-21 Hewlett-Packard Company Method for handling slot requests over a network
US4817037A (en) * 1987-02-13 1989-03-28 International Business Machines Corporation Data processing system with overlap bus cycle operations
US4941083A (en) * 1987-05-01 1990-07-10 Digital Equipment Corporation Method and apparatus for initiating interlock read transactions on a multiprocessor computer system
US5341510A (en) * 1987-05-01 1994-08-23 Digital Equipment Corporation Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor
US4949239A (en) * 1987-05-01 1990-08-14 Digital Equipment Corporation System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer system
WO1988008575A1 (en) * 1987-05-01 1988-11-03 Digital Equipment Corporation Interrupting node for providing interrupt requests to a pended bus
US4858116A (en) * 1987-05-01 1989-08-15 Digital Equipment Corporation Method and apparatus for managing multiple lock indicators in a multiprocessor computer system
US4937733A (en) * 1987-05-01 1990-06-26 Digital Equipment Corporation Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
AU596535B2 (en) * 1987-05-01 1990-05-03 Digital Equipment Corporation Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor computer system
US4953072A (en) * 1987-05-01 1990-08-28 Digital Equipment Corporation Node for servicing interrupt request messages on a pended bus
US5060139A (en) * 1989-04-07 1991-10-22 Tektronix, Inc. Futurebus interrupt subsystem apparatus
JP3261665B2 (ja) * 1993-01-29 2002-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーション データ転送方法及びデータ処理システム
JP2502932B2 (ja) * 1993-01-29 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ転送方法及びデ―タ処理システム
JP3348331B2 (ja) * 1995-04-21 2002-11-20 ソニー株式会社 電子機器及びその動作モード制御方法
EP0887741B1 (en) * 1997-06-27 2005-04-13 Bull S.A. Interface bridge between a system bus and a local bus for controlling at least one slave device, such as a ROM memory
KR100519285B1 (ko) * 1998-03-20 2005-11-25 엘지전자 주식회사 버스 리셋 지연장치 및 그 방법
TWI671638B (zh) * 2018-05-24 2019-09-11 新唐科技股份有限公司 匯流排系統

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4030075A (en) * 1975-06-30 1977-06-14 Honeywell Information Systems, Inc. Data processing system having distributed priority network
JPS594733B2 (ja) * 1975-11-10 1984-01-31 日本電気株式会社 キヨウツウバスセイギヨカイロ
DE3009530A1 (de) * 1979-03-12 1980-09-25 Digital Equipment Corp Datenverarbeitungssystem
US4390944A (en) * 1980-05-13 1983-06-28 Bti Computer Systems System for controlling access to a common bus in a computer system
US4380798A (en) * 1980-09-15 1983-04-19 Motorola, Inc. Semaphore register including ownership bits

Also Published As

Publication number Publication date
DE3485980D1 (de) 1992-12-17
EP0138676A3 (en) 1986-11-05
JPH0246974B2 (ko) 1990-10-18
CA1217280A (en) 1987-01-27
EP0138676A2 (en) 1985-04-24
JPS60144850A (ja) 1985-07-31
EP0301610A3 (en) 1989-08-02
EP0138676B1 (en) 1991-01-02
AU3334984A (en) 1985-03-28
EP0301610B1 (en) 1992-11-11
DE3485980T2 (de) 1993-06-09
EP0301610A2 (en) 1989-02-01
KR850002619A (ko) 1985-05-15
AU564271B2 (en) 1987-08-06
DE3483807D1 (de) 1991-02-07

Similar Documents

Publication Publication Date Title
KR910001789B1 (ko) 디지탈 컴퓨터 시스템의 다중 프로세서 시스템용 캐쉬 무효 장치
KR910001790B1 (ko) 디지탈 컴퓨터 시스템에서의 통신로 제어 할당용 중재 장치 및 이의 중재 방법
KR910001792B1 (ko) 디지탈 컴퓨터 시스템의 데이타 프로세싱 시스템 및 이의 통신로 접속 장치
KR910001791B1 (ko) 동기식 버스를 갖고 있는 컴퓨터 시스템용 버스 제어 장치 및 이의 방법
US4763249A (en) Bus device for use in a computer system having a synchronous bus
US4706190A (en) Retry mechanism for releasing control of a communications path in digital computer system
US4769768A (en) Method and apparatus for requesting service of interrupts by selected number of processors
US4648030A (en) Cache invalidation mechanism for multiprocessor systems
US4870704A (en) Multicomputer digital processing system
US5191649A (en) Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5261109A (en) Distributed arbitration method and apparatus for a computer bus using arbitration groups
US5282272A (en) Interrupt distribution scheme for a computer bus
US5459840A (en) Input/output bus architecture with parallel arbitration
JPH02500784A (ja) 保留バスにおいて割り込み要求メッセージを処理するノード
KR910001788B1 (ko) 다중 프로세서 시스템용 메세지 전송 인터럽팅 장치 및 이의 실행방법
US5150466A (en) Flexible distributed bus priority network
EP0340347B1 (en) Bus arbitration system
JPH0689257A (ja) バスブリッジの調停装置
CA1232691A (en) Retry mechanism for releasing control of a communications path in a digital computer system
JPS61177560A (ja) 高速の並列バス構造およびデ−タ転送方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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
FPAY Annual fee payment

Payment date: 19920706

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee