[발명의 명칭]
고성능 로우핀 카운트버스 인터페이스
[도면의 간단한 설명]
제1도는 본 발명을 이용한 시스템 버스를 포함하는 데이타 처리시스템의 블럭선도이며;
제2도는 제1도의 데이타 처리 시스템에서의 노드에 대한 블럭선도이고;
제3도는 제1도의 데이타 처리 시스템에서 사용된 타이밍 신호들을 도시한 타이밍선도이며;
제4도는 제2도의 노드에서의 데이타 인터페이스에 대한 블럭선도이고,;
제5도는 제1도의 테이타 처리 시스템에서의 중재기에 대한 블럭선도이며;
제6도는 제2도의 데이타 인터페이스 및 제2도의 노드 버스에 대한 인터페이스 회로의 상세블럭선도이고;
제7도는 제2도에 도시된 클럭디코더(63)의 부분들에 대한 블럭선도이며;
제8도는 CMOS 출력회로를 도시하고,
제9도는 CMOS 입력회로를 도시하며;
제10도는 제2도에서 도시된 노드 버스(67)에 대한 타이밍 신호를 도시한 것이다.
[발명의 상세한 살명]
[발명의 배경]
본 발명은 일반적으로 컴퓨터의 데이타 버스 분야에 관한 것으로서, 보다 구체적으로는 양방향 통신을 가능케하는 고속버스에 관한 것이다. 대부분의 버스, 특히 데이타를 병렬 포맷으로 전송하는 다중 라인을 포함하는 버스들에서는 버스상의 데이타가 유효한 상태인 동안에 시간 윈도우들이 존재한다. 동기식 버스들에 있어서, 주기적으로 반복하는 사이클들은 이러한 버스들에 대한 타이밍의 근원을 형성하는데, 이 각각의 사이클에서는 통상 하나의 버스 사이클당 한번씩 활성상태로 되는 개별 신호에 의해 윈도우들이 형성된다. 윈도우들간의 시간동안, 버스상의 데이타를 새로운 레벨로 변화시킬 수 있는데, 이러한 데이타는 무효 데이타로 간주된다.
일반적으로, 버스상의 데이타 통신은 버스상에 데이타를 배치하는 버스 구동기와 그 버스로부터 데이타를 검색 및 기억시키는 기억 장치를 수반한다. 상기 버스 구동기는 일반적으로 다음의 2가지 유형중 한가지 유형으로 할 수 있다. 그중 한가지 유형은 단지 하나의 버스 라인을 한가지 레벨로, 예컨대 접지 전위로 구동시킬 수 있게 하는 것인데, 이는 다른 버스 레벨의 확립을 위하여 풀업 또는 예비 충전 장치를 필요로 한다. 다른 한가지 유형은 버스 라인을 2가지 레벨로 구동시킬 수 있게 하는 것인데, 이는 예비 충전 또는 풀업 장치를 필요로 하지는 않는다. 버스 구동기를 제어하는 구동 신호가 상기 한가지 상태인 경우에는, 상기 한가지 유형이 버스 구동기를 인에이블하여 그 버스 구동기로 하여금 버스를 버스 구동기의 입력 단자에서 입력된 입력 데이타에 대응하는 레벨(동일하거나 혹은 반전된 레벨중 어느 하나)로 구동케한다. 또, 구동 신호가 다른 한가지 상태인 경우, 상기 다른 한가지 유형은 버스 구동기로 하여금 버스 구동을 중단되게 한다.
버스 구동기의 인에이블링직후, 버스상의 데이타가 여전히 변화하는 경우, 그 데이타도 또한 무효상태로 간주된다. 특정 구동기 기술 및 인터페이스 특성을 위해서 이러한 데이타 무효시간은 비교적 일정하지만, 실제로는 상태가 유사한 버스 길이 및 버스 구동기의 전파 지연등에 따라 달라진다. 버스 주파수가 증가함에 따라, 버스의 사이클 시간이 증가하고 이와 마찬가지로 버스 구동기 인에이블 시간은 감소한다. 따라서, 데이타가 유효 상태인 동안은 버스 구동기 인에이블 시간도 감소한다.
기억 장치는 래치 신호의 작동에 응답하여 버스상의 현재 데이타를 기억한다. 상기 래치 신호는 그것이 버스상에서 유효 상태인 동안 상기 기억 장치가 데이타를 기억하도록 적절히 조절되어야 하는데, 이 래치 신호를 적절히 조절하는 통상의 기법은 버스 구동기가 여전히 인에이블된 상태인 동안 상기 기억 장치로 하여금 데이타를 기억케 하는 것이다. 따라서, 통상의 구동 신호는 래치 신호가 작동된 후의 "홀드시간"동안 버스구동을 계속되게 한다. 직접 회로칩 세트들간의 버스들을 구동시키기 위한 통상의 기법은 버스가 구동되지 않을 때 버스상의 전압레벨이 확정되지 않을 수 있을 뿐만 아니라 이러한 시간동안 기억장치가 버스 구동기에서 버스를 통해 전달될 데이타를 실제로 기억하지 않을 수도 있기 때문에, 버스 구동기를 디스에이블링 하기전에 래치를 작동시키는 것이다.
버스 구동기의 발생과 홀드시간을 얻기 위한 래치 신호는 2개의 개별 클럭 신호, 즉 래치 신호에 대한 클럭 신호와 구동 신호에 대한 클록 신호를 필요로 한다. 그런데, 이들 2개의 클럭 신호는 버스 라인상의 단일 방향 통신인 경우에는 이들 둘만으로도 충분하다. 동일 버스라인들 상의 완전한 양방향 통신은 2개의 기억 장치/버스 구동기 쌍은 물론 4개의 클럭 신호(각 방향에 대해 2개의 신호씩)를 필요로 한다.
게다가, 버스상의 한쪽 방향으로의 통신을 위해 사용된 구동 신호가 다른 쪽 방향으로의 통신을 위해 사용된 구동 신호와 중첩하지 않아야 하므로, 각각의 방향으로의 통신을 위해 사용된 버스 구동기는 버스를 동시에 구동시키지 않게 된다. 예를 들어, 만약 그들이 클럭 왜곡에 기인해 비록 짧은 시간이라 하더라도 버스를 동시에 구동시키지 않는다면, 그 구동기 및 버스 라인들은 전류 스파이크를 초래하며, 또 제2구동 신호에 의한 데이타의 전달은 지연될 것이다.
양방향 통신에 대한 다중 클럭의 발생은 그러한 통신이 전체 시스템 클럭으로 동기화 되어야 하는 경우 더욱 복잡해지게 된다. 예를 들어, 버스의 구성요소들중 하나와 결합된 시스템 버스가 그것 자신의 버스 타이밍을 갖는다면, 양방향 통신을 위해 필요한 4개의 클럭 신호는 이러한 시스템 버스의 타이밍에 따라 동기화 될 수 있다. 이러한 동기화는 다음과 같은 몇가지 이유로 곤란해 질수 있다.
첫째로, 시스템 버스를 위해 사용된 클럭의 사이클 시간은 양방향 통신을 위한 요구조건에 부합하는 4개의 서로 다른 클럭 신호를 얻도록 그 클럭 사이클 시간을 더욱 세분하는 것이 실현될 수 없을 정도로 짧아질수 있다.
둘째로, 그들 클럭 신호를 얻는 것이 가능하다 하더라도 그들 펄스폭은 소자들내의 논리회로가 그들에 신뢰성 있게 반응할 수 없도록 좁아질수 있다.
한가지 설계방안은 2개의 단일 방향 버스를 사용함으로써 4개의 개별 클럭 신호에 대한 필요성을 제거되게 하는 것이다. 그러나, 다른 단일 방향 버스에 대한 다른 라인 세트의 부가는 버스 라인들의 갯수와 그 라인들에 전용되어야 하는 영역의 양자를 2배로 되게 한다. 아울러, 이러한 버스들의 사용은 그 버스에 결합하는 소자상의 핀 갯수를 2배로 되게 한다. 따라서, 예를 들어, 2개의 단일 방향 버스들을 사용하여 64비트 데이타를 병렬로 전송시키기 위해서는, 단일의 양방향 버스에 비해 인터페이스당 부가적인 64개의 핀을 필요로 하게 된다.
이들 모든 결점들 중, 증가된 핀 갯수는 가장 심각한 문제점일 수 있다. 요구되는 핀 카운트가 단일 집적회로 칩에서 지지될 수 있는 갯수를 초과한다면, 그 회로에는 다중칩이 사용되어야 한다. 따라서, 고속회로의 설계는 칩 경계를 횡단하는 분할 기능을 방지하기 위해 요구되는 핀 갯수를 최소화하는 기법의 개발을 수반한다. 상기 핀 카운트는 프린트회로 기판에 대한 그 핀들의 제한된 공간에 기인하여 종종 회로 설계의 제한 요인이 된다.
피전용 사용자 버스 및 메인 시스템 버스와 같은 2개의 버스들간의 고속버스 인터페이스에 대한 다른 바람직한 설계 목표는 메인 시스템 버스상의 모든 통신의 복제본을 유저 버스상에 대체시키는 것이다. 이것은 사용자 버스에 결합된 회로로 하여금 메인 시스템 버스상의 다른 리소오스들의 사용을 모니터할 수 있게 한다. 이러한 요구조건을 부합시키기 위해서는 데이타가 시스템 버스의 각각의 사이클 동안 시스템 버스에서 사용자 버스로 전송되어야 한다. 만일 사용자 버스가 양방향 통신을 위한 단일 라인을 사용한다면, 그 버스는 시스템 버스 사이클의 각 사이클 동안 2개의 통신(각각의 방향중 하나)을 허용하는 시스템 버스만큼 빠르게 2배로 동작하여야 한다. 이러한 요구조건은 타이밍의 문제점을 더욱 악화시킨다.
만일 사용자 버스가 시스템 버스로서 동기화 될 수 있고 또 그 사용자 버스로부터 시스템 버스상에 배치된 메시지들을 포함하는 트래픽을 재생한다면, 몇가지 잇점을 얻을 수 있다. 이러한 시스템의 한가지 장점은 시스템 버스의 한 사용자가 모든 다른 사용자의 시스템 버스 트랜잭션을 모니터할 수 있다는 점이다. 예를 들자면, 한 사용자가 그것의 캐쉬 메모리들로 하여금 다른 사용자들의 모든 메모리기입 동작을 체크하게 함으로써 유효상태를 보증할 수 있다는 점이다. 사용자들은 다른 사용자들의 시스템 버스 트랜잭션과 관련하여 그들 자신의 시스템 버스 트랜잭션을 관찰할 수 있다. 아울러, 사용자들은 시스템 버스를 통해 그들 자신에게 메세지를 송출할 수 있으므로 시스템 버스를 통해 액세스 할 수 있는 시스템버스 제어 및 상태 레지스터와 같은 절점 리소오스들을 용이하게 조정할 수 있게 된다.
따라서, 본 발명의 제1목적은 구동기의 중첩없이 고속 양방향성 버스 전송을 위해 필요한 클릭 신호들의 갯수를 최소화시키는 것이다.
본 발명의 제2목적은 하나의 버스가 다른 버스상의 모든 트래픽카피를 얻을 수 있도록 2개의 버스들간에 고속 데이타 전송을 제공하는 것이다.
본 발명의 제3목적은 하나의 버스로 하여금 다른 버스에 송출된 메세지들의 리턴카피를 제공케 하는 것이다.
본 발명의 제4목적은 고속 시스템 버스에 대한 인터페이스를 위해 필요한 핀의 갯수를 최소화시키는 것이다.
본 발명의 기타 목적 및 장점들은 명세서에서 부분적으로 설명되며, 또 부분적으로는 명세서로부터 명백히 알수 있거나 혹은 본 발명의 실시예에 의해 명백히 이해할 수 있게 될 것이다. 본 발명의 목적 및 장점들은 특히 첨부된 특허청구범위에서 지적된 장치 및 그들의 조합에 의해 실현되거나 혹은 얻어질수 있다.
[발명의 요약]
본 발명은 핀 단자들간에 양방향 전송을 행하여 그 전송 타이밍을 그 각각의 방향으로 조심스럽게 제어함으로써 종래기술의 문제점 및 단점들을 해소시키는 것이다.
상기 목적들을 달성하기 위하여 본 명세서에서 광범위하게 기술된 바와 같은 본 발명의 인터페이스 시스템은 데이타를 처리하기 위한 유저 부분을 가진 노드(node)와 반복 버스 사이클동안 데이타를 전파하는 시스템 버스에 대한 양방향 통신을 제공한다. 상기 인터페이스 시스템은 유저 부분에 결합되어, 데이타를 병렬로 전송하기 위한 노드 버스와; 상기 노드 버스 및 시스템 버스 사이에 결합되어, 상기 노드 버스 및 시스템 버스 사이에 결합되어, 그 시스템 버스 및 노드 버스간에 양방향 통신을 제공하고 또한 상기 시스템 버스 및 타이밍 수단 상에 전파된 모든 데이타의 카피를 상기 노드 버스에 공급하는 트랜시버 수단을 구비한다.
또, 상기 트랜시버 수단은 시스템 버스의 선택된 사이클동안 데이타를 차후 전송을 위한 노드 버스에서 시스템 버스로 수신하기 위해, 절점버스에 결합된 입력 단자들과 시스템 버스들에 결합된 출력단자들을 가지며, 각각의 시스템 버스 사이클마다 발생하는 제1클럭 신호의 액티브 부분에 응답하는 제1단일 방향 통신 수단과; 상기 시스템 버스상에 전파된 데이타를 그 시스템 버스의 매 사이클마다 노드 버스로 전송하기 위하여, 시스템 버스에 결합된 입력단자들(이 입력단자들은 각각 제1단일 방향 통신 수단의 출력단자들 중 다른 한 단자에 접속됨)과 노드 버스에 결합된 출력단자들(이 출력 단자들은 각각 제1단일 방향 통신 수단의 입력단자들 중 다른 한 단자에 접속됨)을 가지며, 각각의 시스템 버스 사이클마다 발생하는 제2클럭 신호의 액티브 부분에 응답하는 제2단일 방향 통신 수단을 포함한다. 또, 상기 타이밍 수단은 제1및 제2의 단일 방향 통신 수단에 결합되어, 제1및 제2클럭 신호를 제공하므로, 제1및 제2클럭 신호의 액티브 부분이 동시에 발생하지 않을 뿐만 아니라 제2클럭 신호의 액티브 부분도 제2의 단일 방향 통신 수단으로 하여금 노드 버스에서 시스템 버스로 전송된 데이타의 카피를 노드 버스로 복귀되게 한다.
본 명세서의 일부분을 이루는 첨부한 도면은 본 발명의 한 실시예를 예시하는 것으로서, 상세한 설명과 함께 본 발명의 원리들을 설명하는 역할을 한다.
[양호한 실시예의 상세한 설명]
이하, 첨부한 도면을 참조하여 본 발명의 양호한 실시예에 관해 상세히 설명하겠다.
A. 시스템 개관
제1도는 본 발명을 구현한 데이타 처리 시스템(20)의 일예를 도시한 것이다. 이러한 시스템(20)의 핵심은 몇몇 처리기들, 메모리 서브 시스템 및 입력/출력 시스템들간에 통신을 허용하는 동기 버스인 시스템 버스(25)이다. 시스템 버스(25)를 통한 통신은 주기적인 버스 사이클들을 사용하여 동기적으로 발생한다. 이러한 시스템 버스(25)에 대한 통산의 버스 사이클은 64(nsec)이다.
제1도에서, 시스템 버스(25)는 2개의 처리기(31,35), 메모리(39), 하나의 입/출력 장치(41)및 하나의 입/출력 장치(51)에 결합된다. 입/출력 장치(53)는 입/출력 버스(45) 및 입/출력 장치 인터페이스(41)에 의해 시스템 버스(25)에 결합된다.
데이타 처리 시스템(20)의 양호한 실시예에서는 중앙 중재기(28)가 시스템 버스(25)에 결합된다. 이 중재기(28)는 시스템 버스(25)상의 다른 장치에 타이밍 및 버스 중재 신호를 직접 공급하여, 그 장치들과 몇몇 신호를 공유한다.
제1도에 도시된 장치는 바람직한 한 실시예에 불과한 것이므로, 본 발명을 제한하는 것으로 해석되어야 하는 것은 아니다. 예를 들면, 입/출력 장치(53)는 시스템 버스(25)에 직접 결합될 수 있으며, 중재기(28)는 반드시 본 발명에서 기술된 방식으로 동작할 필요는 없다.
본 발명을 기술하는데 사용된 용어에 있어서, 처리기(31,33), 메모리(39), 입/출력 인터페이스(41)및 입/출력 장치(51)는 모두 노드로 호칭된다. 이 "노드"란 용어는 시스템 버스(25)에 접속하는 하드웨어 장치로서 정의된다.
본 발명을 기술하는데 사용되는 용어에 의하면, "신호" 또는 "라인"이란 용어는 물리적인 와이어의 명칭으로 상호 변경가능하게 사용된다. 또, "데이타" 또는 "레벨"이란 용어는 신호들 또는 라인들이 가정할 수 있는 값을 언급하는데 사용된다.
노드들은 시스템 버스(25)를 통해 다른 노드들과의 전송을 수행한다. "전송"이란 용어는 공통송신 및 공통중재를 공유하는 하나 이상의 연속 사이클이다. 예를 들면, 시스템 버스(25)상의 다른 노드로부터 정보를 얻기 위하여 하나의 노드에 의해 개시된 판독동작은 제2노드에서 제1노드로의 하나 이상의 복귀 데이타 전송이 뒤따르는 제1노드에서 제2노드로의 명령 전송을 필요로 한다.
"트랜잭션"이란 용어는 시스템 버스(25)상에서 수행되고 하나 이상의 전송을 포함할 수 있는 완전한 논리 태스크로서 정의된다. 예를 들면, 하나 이상의 복귀 데이타 전송이 나중에 뒤따르는 명령전송으로 이루어진 판독동작이 하나의 트랜잭션이다. 시스템 버스(25)의 바람직한 실시예에 있어서, 허용가능한 트랜잭션은 다른 데이타 길이의 전송을 제공하며, 판독 기입(마스크된), 인터로크 판독, 언로크기입 및 인터럽트 동작을 포함한다. 인터로크 판독 및 정규의 또는 비 인터로크 판독간의 차이점은 특수 위치에 대한 인터로크 판독이 그 위치에서 기억된 정보를 검색하여 차후 인터로크 판독 명령에 의한 기억된 정보의 액세스를 제한한다는 점이다. 이러한 액세스 제한은 로크 메카니즘을 세팅시킴으로써 수행된다. 차후 언로크 기입 명령은 특수위치내에 정보를 기억시켜, 그 위치에서 로크 메카니즘을 재세팅시킴으로써 상기 기억된 정보에 대한 액세스를 재기억시킨다. 따라서, 인터로크 판독/언로크 기입 동작은 판독 -수정-기입 동작의 구성으로 된다.
시스템 버스(25)는 "펜딩"버스이므로, 그것은 버스 리소오스들의 능률적인 사용을 촉진하여 다른 노드들로 하여금 다른 응답을 위한 대기를 초래할 수도 있는 버스 사이클들을 사용 가능케 한다. "펜딩"버스에 있어서는 하나의 노드가 트랜잭션을 개시한 후에 다른 노드들이 그 트랜잭션의 완료 이전에 버스의 액세스를 개시할 수 있다. 따라서, 그 트랜잭션을 개시한 노드는 전체 트랜잭션 시간동안 버스를 정체시키지 않는다.
이것은 버스가 전체 트랜잭션 동안 정체를 비 펜딩버스와는 대조를 이룬다. 예를 들어, 시스템 버스(25)에서는 노드가 판독 트랜잭션을 개시하여 명령전송을 행한 후에 명령전송이 관계되는 노드가 요구된 데이타를 즉시 복귀시킬 수 없을 수도 있다. 그러면 버스(25)상의 사이클들이 판독 트랜잭션의 명령전송 및 복귀 데이타 전송간에 이용될 수도 있다. 시스템 버스(25)는 그 사이클들을 사용하기 위해 다른 노드들을 허용한다.
시스템 버스(25)를 사용함에 있어서, 각각의 노드들은 정보의 전송을 실행하기 위하여 다른 롤들(roles)을 가정할 수 있다. 이들 롤중 하나가 현재 진행중인 트랜잭션을 개시한 노드로서 정의된 "커맨더(commander)"이다. 예를 들면, 기입 또는 판독동작에 있어서의 커맨더는 기입 또는 판독동작을 요구했던 노드이지만, 반드시 데이타를 송출 또는 수신하는 노드는 아니다. 시스템 버스(25)에 대한 바람직한 프로토콜에서는, 비록 다른 노드가 어떤 트랜잭션 사이클동안 시스템 버스(25)의 소유권을 취할 수 있다 하더라도, 하나의 노드가 전체 트랜잭션 곳곳에 걸쳐 커맨더로서 유지된다. 예를 들면, 비록 하나의 노드가 판독 트랜잭션의 명령전송에 응답하는 데이타의 전송동안 시스템 버스(25)의 제어를 받는다 하더라도, 그 하나의 노드는 버스의 커맨드가 되지 않는다. 이러한 노드는 "응답기"로 호칭된다.
응답기는 커맨더에 응답한다. 예를 들어, 만일 커맨더가 데이타 노드 A에서 노드 B로 기입하는 기입 동작을 개시하였다면, 노드 B는 응답기가 될 수 있다. 아울러, 데이타 처리시스템(20)에 있어서, 노드는 동시에 커맨더 및 응답기의 기능을 할 수 있다.
송신기 및 수신기는 노드들이 개개의 전송을 가정하는 롤들이다. "송신기"는 전송동작동안 시스템 버스(25)상에 배치된 정보 소스인 노드로서 정의된다. "수신기"는 송신기를 보완한 것으로서, 이를 전송동작동안 시스템 버스(25)상에 놓인 정보를 수신하는 노드로서 정의된다. 예를 들면, 판독 트랜잭션 동안의 커맨더는 명령 전송동안은 송신기의 역할을 하며, 복귀 데이타의 전송동안은 수신기의 역할을 한다.
시스템 버스(25)에 접속된 노드가 시스템 버스(25)상에서 송신기의 역할을 하는 것이 요구되는 경우, 그 노드는 중앙 중재기(28)및 그 특정 노드 사이에 접속된 2개의 요구 라인 CMD REQ(커맨드 요구)및 RES REQ(응답기 요구)중 어느 하나를 가정한다. 일반적으로, 노드의 CMD REQ 라인은 커맨더의 역할을 요구하여 시스템 버스(25)상의 트랜잭션을 개시하는데 사용하며, 노드의 RES REQ 라인은 응답기의 역할을 하여 데이타 또는 메시지를 커맨더에 복귀시키는데 사용한다. 일반적으로, 중앙 중재기(28)는 노드들이 버스에 대한 액세스를 원하는 경우를 검출한다(예컨대, 요구 라인들이 가정된 경우). 그러면, 그 중재기는 우선 순위 알고리즘에 따라 버스(25)에 대응하는 노드 액세스를 허여하는 가정된 요구 라인들중 하나에 응답한다. 바람직한 실시예에 있어서, 중재기(28)는 2개의 독립적인 원형 대기행열, 즉 하나는 커맨더 요구에 대한 대기행열 또는 하나는 응답기 요구에 대한 대기행열을 유지한다. 상기 응답기는 커맨더 요구보다 고우선순위를 가지고 커맨더 요구 이전에 처리되는 것이 바람직하다.
상기 커맨더 요구 라인들 및 응답기 요구 라인들은 중재 신호들로 간주된다. 제1도에서 예시된 바와 같이, 중재신호는 또한 중재기(28)로부터 각각의 노드로 포인트별 조건부 허여 신호를 포함하고, 시스템 버스는 다중 버스 사이클 송신기를 수행하는 신호를 확장시키며 또한 예컨대 메모리와 같은 노드가 시스템 버스상의 트래픽으로 인해 순간적으로 불안정해질때 새로운 버스 트랜잭션의 개시를 제어하는 시스템 버스 억제 신호를 확장시킨다.
시스템 버스(25)를 구성할 수 있는 다른 유형의 신호는 정보전송 신호, 응답 신호, 제어 신호, 콘솔/프론트 패널 신호 및 몇개의 잡통지 신호를 포함한다. 상기 정보전송 신호는 데이타 신호, 현재 사이클동안 시스템 버스상에서 수행될 기능을 나타내는 기능 신호, 커맨더를 식별하는 식별 신호 및 패리티 신호를 포함한다. 상기 응답 신호는 일반적으로 데이타 전송의 상태를 송신기에 알리기 위하여 수신기에서 발생된 인식 또는 확인 신호를 포함한다.
제어 신호는 클럭 신호, 저 라인 전압 또는 저 직류 전압을 식별하는 것과 같은 경고 신호, 초기화 동안 사용되는 리세트 신호, 노드 고장 신호, 유휴 버스 사이클동안 사용되는 디폴트 신호 및 애러 디폴트 신호를 포함한다. 또, 상기 콘솔/프론트 패널 신호는 직렬데이타를 시스템 콘솔로 송수신하는 신호와, 시동동안 부트 처리기의 동작을 제어하는 부트 신호, 시스템 버스(25)상의 처리기의 소거가능 PROM에 대한 수정을 인에이블하는 신호, 프론트 패널상의 RUN LIGHT를 제어하는 신호 및 어떤 노드상의 클럭 로직에 밧데리 전력을 제공하는 신호를 포함한다. 그리고 상기 잡통지 신호는 예비신호와 더불어 각각의 노드로 하여금 그 식별 코드를 정의케하는 식별 신호를 포함한다.
제2도는 시스템 버스(25)에 접속된 노드(60)의 일예를 도시한 것이다. 이 노드(60)는 처리기, 메모리, 입/출력 장치 또는 입/출력 인터페이스이다. 제2도에서 도시된 예에 있어서, 노드(60)는 노드 지정 로직(65), 노드 버스(67), 그리고 데이타 인터페이스(61)및 클럭디코더(63)를 포함하는 시스템 버스 인터페이스(64)를 포함한다. 상기 데이타 인터페이스(61), 클럭디코더(63)및 노드 버스(67) 시스템 버스(25)에 접속된 노드들에 대한 표준 소자인 것이 바람직하다. 시스템 버스 인터페이스(64)에서의 다른 직접회로를 사용하는 노드 지정 로직(65)은 노드의 특정 기능을 수행하기 위한 사용자가 지정한 회로와 더불어 인터페이스에 대한 표준회로를 노드 버스(67)로서 포함하는 것이 바람직하다. 일반적으로, 데이타 인터페이스(61)는 노드(60)및 시스템 버스(25) 사이의 기본 논리 및 전기 인터페이스이고, 상기 클럭디코더(63)는 중앙 발생 클럭 신호를 기초로하여 노드(60)에 대한 타이밍 신호를 제공하며, 또 노드 버스(67)는 데이타 인터페이스(61)및 노드 지정 로직(65)간에 고속 인터페이스를 제공한다.
제2도에서 도시된 노드(60)및 시스템 버스 인터페이스(64)의 바람직한 실시예에 있어서, 클릭디코더(63)는 시스템 버스(25)상에 놓이게 될 신호를 형성하기 위한 제어회로를 포함하므로, 중앙 중재기(28)로부터 수신된 클럭 신호를 처리하여 노드 지정 로직(65) 및 데이타 인터페이스(61)에 대한 타이밍 신호를 얻게 된다. 클럭 디코더(63)에 의해 얻어진 타이밍 신호가 중앙 발생된 클럭 신호를 사용하므로, 노드(60)는 시스템 버스(25)와 동기적으로 동작하게 된다.
제3도는 하나의 버스 사이클, 클럭디코더(63)에 의해 수신된 클럭 신호 및 클럭 디코더(63)에 의해 발생된 타이밍 신호를 도시한 타이밍도이다. 클럭디코더(65)에 의해 수신된 클럭 신호는 제3도에서 도시된 바와 같은 시간 H신호, 시간 L 신호 및 위상 신호를 포함한다. 시간 H 및 시간 L은 기본적인 클럭 신호의 반전 신호이며, 위상 신호는 기본적인 클럭 신호를 3개로 분할함으로써 얻어진다. 버스 사이클당 한번 발생하는 데이타 인터페이스(61)에 의해 요구되는 타이밍 신호는 데이타 인터페이스(61)에 제공되며, 이 데이타 인터페이스(61)에 제공된 타이밍 신호들의 등가 신호를 포함하는 완전한 타이밍 신호 세트들은 버퍼되어, 노드 지정 로직(65)에 공급된다. 이러한 버퍼링의 목적은 노드 지정 로직(65)이 시스템 버스 인터페이스(64)의 동작에 악영향을 끼치지 않도록 함으로써 타이밍 신호를 부정확하게 로우딩하지 않도록 하는 것이다. 클럭디코더(63)는 클록 신호로 하여금 각각의 버스 사이클동안 6개의 서브 사이클을 발생케 하는데 사용되며 또한 이 서브 사이클들로 하여금 6개의 타이밍 신호 CXY를 발생케 하는데 사용되는데, 여기서 X및 Y는 하나의 시간 신호를 형성하도록 결합된 2개의 인접 서브 사이클을 나타낸다.
시스템 버스내의 각각의 노드는 그 클럭디코더(63)에 의해 발생된 타이밍 신호에 대응하는 타이밍 신호세트를 갖는다. 상기 대응하는 신호가 시스템 곳곳의 모든 노드에서 사실상 동일한 시간에 발생하는 동안은 다수 노드내의 클록디코더(63)및 다른 회로 사이의 변화가 대응 신호들 간의 타이밍 변화를 초래시킨다.
이들 타이밍 변화는 통상 "클럭 스큐(skew)"로서 알려져 있다.
제4도는 데이타 인터페이스(61)의 바람직한 실시예를 도시한 것이다. 이러한 데이타 인터페이스(61)는 노드 버스(67)의 각 라인들과 시스템 버스(25)의 각 라인들 사이에 양방향성 고속 인터페이스를 제공하기 위하여 일시기억회로 및 버스 구동기 회로를 함한다.
제4도에서 도시된 바와 같은 데이타 인터페이스(61)는 노드 버스(67)에서 시스템 버스(25)까지 통신경로를 제공하도록 기억소자(70), (72)및 시스템 버스 구동기(74)를 포함하는 것이 바람직하다. 데이타 인터페이스(61)는 또한 시스템 버스(25)에서 노드 버스(67)까지의 통신통로를 제공하기 위해 기억소자(80)및 노드 버스 구동기(82)를 포함한다. 데이타 인터페이스(61)의 설명으로 사용되는 "기억소자"란 용어는 일반적으로 투명 래치 또는 마스터 슬래이브 기억소자와 같은 쌍안정 기억 장치를 의미한다. 이 분야의 기술에 숙련된자라면, 이와 같은 기억소자들의 용어가 타당한 것이라는 것을 알수 있을 것이다.
제4도에서 도시한 바와 같이, 기억소자(70)는 노드 버스(67)에서 데이타를 수신하도록 접속된 입력 및 기억소자(72)의 입력에 접속된 출력을 갖는다. 기억소자(72)의 출력은 시스템 버스 구동기(74)의 입력에 접속되며, 그 구동기(74)의 출력은 시스템 버스(25)에 접속된다. 기억소자(70)및 (72)는 각기 노드 버스 제어신호(76)및 (78)에 의해 제어되는데, 이러한 제어 신호는 클럭디코더(63)에 의해 발생된 타이밍 신호로부터 발생된다. 기억소자(70)및 (72)는 노드 버스(67)에서 시스템 버스(25)로 데이타를 전송시키기 위하여 2단 일시 저장 기능을 제공한다. 또한, 기억단의 상이한 갯수가 사용될 수 있다.
시스템 버스 구동기(74)는 시스템 버스 구동기 인에이블 신호(79)에 의해 제어된다. 상기 시스템 버스 구동기 인에이블 신호(79)의 상태에 따르면, 시스템 버스 구동기(74)의 입력은 그 출력에 결합되어, 기억소자(72)의 출력에서 시스템 버스(25)로 데이타를 전송하거나 혹은 그 출력으로부터 분리되거나 둘중 어느 하나이다. 시스템 버스 구동기 인에이블신호(79)가 시스템 버스 구동기(74)의 입력 및 출력을 분리시키는 경우, 시스템 버스 구동기(74)는 시스템 버스(25)에 대한 고 임피던스로 존재한다. 시스템 버스 구동 인에이블 신호(79)는 또한 시스템 버스(25)에서 수신된 클럭 신호와 노드 지정 로직(65)에서 수신된 제어 신호에 따라서 클럭디코더(63)에 의해 발생된다.
기억소자(80)는 시스템 버스(25)에 접속된 입력단자 및 노드 버스 구동기(82)의 입력에 접속된 출력단자를 갖는다. 이 노드 버스 구동기(82)의 출력은 다시 노드 버스(67)에 접속된다. 기억소자(80), 바람직하게는 투명 래치가 클럭디코더(63)에 의해 발생된 타이밍 신호로부터 유도되는 시스템 버스 제어 신호에 의해 제어된다. 노드 버스 구동 신호(87)는 시스템 버스 구동기(79)가 시스템 버스 구동기(74)를 제어하는 방식과 유사한 노드 버스 구동기(82)를 제어한다. 따라서, 노드 버스 구동기 신호(87)에 응답하여, 그 노드 버스 구동기(82)는 그것의 입력을 그것의 출력에 결합하거나 혹은 그것의 입력을 그것의 출력에서 분리하거나 둘중 어느 하나로서, 노드 버스(67)에 고 임피던스를 제공한다.
시스템 버스(25)를 통해 데이타가 어떻게 전송되는지를 설명하기 위해서는, 시스템 버스 구동 인에이블 제어 신호들(85)간의 관계를 이해하는 것이 중요하다. 본 발명의 실시예에서는, 이러한 관계가 제3도에 도시되어 있다. 시스템 버스 구동 인에이블 신호(79)는 공칭적으로 버스 사이클의 개시점에서 종료점까지 구동된다. 이 새로운 데이타는 구동기 전파 시간 및 버스 세팅시간이 발생된 이후에 시스템 버스(25)에서의 수신에 유용한 것이다. 본 발명의 실시예에 있어서, 기억소자(30)는 투명 래치이다. 또, 제어 신호(35)는 클럭 C45와 논리적으로 등가이다. 상기 버스 타이밍은 시스템 버스(25)의 데이타가 제어 신호(85)의 비가정 이전의 때때로의 수신에 유용하다. 기억소자(80)는 적어도 제어 신호(85)의 비가정 이전의 셋업시간을 안정화시키는 버스 데이타를 기억하여 제어 신호(85)의 비가정 이후의 홀딩시간을 안정상태로 유지한다.
노드 버스(67)는 데이타 인터페이스(61)에 의하여 노드 지정 로직(65) 및 시스템 버스(25) 사이의 양방향 데이타 전송을 허용하는 초 고속 데이타 버스인 것이 바람직하다. 제2도에서 도시된 노드(60)의 바람직한 실시예에서는, 노드(67)가 시스템 버스 인터페이스(64) 및 노드 지정 로직(65) 사이의 포인트별 접속을 이루는 상호 접속 시스템이다. 그러나, 본 발명에 따르면, 이러한 포인트별 상호 접속에 대한 요구조건은 전혀 없다.
제5도는 시스템 버스(25)에도 접속된 중앙 중재기(28)의 바람직한 실시예를 도시한 것이다. 중앙 중재기(28)는 시스템 버스(25)에 대한 클럭 신호를 제공해서, 그 버스의 소유권을 시스템 버스(25)상의 노드에 허여한다. 이러한 중앙 중재기(28)는 중재회로(90), 클럭회로(95) 및 오실레이터(97)를 포함하는 것이 바람직하다. 오실레이터(97)는 기본적인 클럭 신호를 발생시킨다. 클럭(95)는 중재회로(71)에 대한 타이밍 신호, 기본 시간 H, 시간 L 및 시스템 버스(25)상의 타이밍에 대한 위상 클럭 신호를 제공한다. 상기 중재회로(71)는 커맨더 요구 및 응답기 요구 신호를 수신하여, 시스템 버스(25)에 대한 액세스를 요구하는 노드들간의 불일치를 중재하고, 또한 커맨더 및 응답기 요구들에 대한 대기행열을 유지한다. 중재회로(71)는 또한 어떤 제어 신호를 클럭(95)에 제공한다.
B. 버스 인터페이스회로
제2도 및 제4도에서 도시된 노드(60)에 있어서, 각각의 데이타 인터페이스(61)는 단일 핀 단자에 의해 시스템 버스(25)의 대응 라인에 결합된다. 그 접속부는 직접 관여할 수도 있지만, 본 발명의 이해와는 무관하므로 저항을 통해 관여하는 것이 바람직하다. 본 발명의 배경에서 설명한 바와 같은 이유로서, 각각의 데이타 인터페이스(61)가 단일 핀 단자에 의해 시스템 버스(25)의 라인들에 대응하는 노드 버스(67)의 라인들에 대한 노드 버스(67)의 대응 라인에 결합되는 것이 바람직하다. 단일 핀 단자들을 사용함으로써, 노드 버스(67)가 2개의 병렬 버스들 대신에 단일 양방향 버스로 될 수 있으므로, 요구되는 핀 또는 단자들의 갯수가 최소화된다. 아울러, 노드 버스(67)에 접속된 회로는 2배의 병렬 버스들에 대한 인터페이스에 요구되는 증가된 핀 갯수를 만족시키기 위해 단지 몇개의 집적회로 칩 중에서 분할될 필요는 없다.
게다가, 본 발명의 배경에서, 이미 설명한 바와 같은 이유로 단일 핀 단자에 대해 단일 핀 단자를 달성하는 회로 설계에 있어서의 양방향 전송 콤플렉스는 노드(60)에 의해 제공된 시스템 버스(25)상의 데이타를 포함하는 시스템 버스(25)에서의 모든 데이타 또는 메시지들의 카피를 노드 버스(67)상에 배치하려는 요구에 의해 복잡해지게 된다. 그렇게 하는 것은 노드 지정 로직(65)으로 하여금 시스템 버스(25)상의 모든 데이타 또는 메시지들을 관찰케하여 시스템 버스(25)를 관리하는데 도움을 주게 한다. 시스템 버스(25)상의 모든 데이타 또는 메시지들을 노드 지정 로직(65)에 이용할 수 있게 함으로써, 노드(60)는 데이타 처리시스템(20)의 리소오스들이 사용되어, 그 처리들이 시스템 버스(25)의 사용에 대한 자체 관리기법을 수행하는데 사용되는 인식을 이용할 수 있다.
아울러, 시스템 버스(25)의 각각의 라인에 대한 핀 단자를 통해 데이타 인터페이스(61)및 시스템 버스(25)간에 양방향 통신을 제공하게 되면, 노드 지정 로직(65)이 자체 메시지를 감시하여 그 자체 메시지를 시스템 버스(25)로 수신한다. 이러한 접속은 또한 노드 지정 로직(65)로 하여금 시스템 버스(25)에 의해 메시지를 송출케 하므로, 다른 노드들이 그 트랜잭션을 감시할 수 있게 된다.
시스템 버스(25)의 노드 버스(67)로의 사이클 가시성에 의한 사이클의 다른 잇점은 캐쉬 코히어런시를 유지하는 것이다. 이러한 사용에 따라, 만일 노드가 시스템 버스(25)를 통해 액세스 가능한 메모리 위치에서의 내용을 수정하는 경우, 다른 노드들은 그러한 액세스들을 감시할 수 있으며 또한 그들 자신의 캐쉬들이 이들 메모리 위치들의 카피들을 포함하는지의 여부를 결정할 수 있다.
시스템 버스(25)의 각 사이클동안 양방향 전송 능력은 물론 단일 핀 단자 접속을 제공하기 위하여, 노드버스(67)는 본 발명의 배경에서 설명된 바와 같이 시스템 버스(25)의 속도의 2배로 동작하여야 한다. 그러므로, 노드 버스(67)는 시스템 버스(25)보다 더 짧은 전송시간을 가져야 한다. 시스템 버스(25)에 대한 64nesc 사이클 시간을 갖는 본 발명의 바람직한 실시예에서는, 예를 들어 CMOS 회로로 구성된 시스템 버스 인터페이스(64)에서의 회로 요구조건에 기인하여 단지 6개의 서브 사이클만이 이용가능하다. 각각 2개의 서브 사이클을 카바하는 6개의 타이밍 신호들 C12, C23, C34, C45, C56 및 C61은 노드 버스(67)의 타이밍을 위해 형성된다.
2쌍의 클럭 신호를 요구하는 양방향 버스 전송에 대한 종래의 방법에서는 그들 신호를 형성하는데 필요한 타이밍은 제3도의 타이밍 신호나 혹은 6개의 서브 사이클에 기인한 다른 신호의 사용에 대한 수행을 어렵게 한다. 실제로, 그 수행은 단지 제3도에 도시된 타이밍 신호 보다 더 긴 구동기에 대한 특수 타이밍 신호(예컨대, C123와 같은 3개의 서브 사이클에 대한 긴 신호)를 발생케 하거나 혹은 그 타이밍 신호보다 더 짧은 래치 제어 신호(예컨대, C1 또는 C2와 같은 단일 서브 사이클 신호)를 발생케 함으로써 가능해진다.
첫번째 경우에는, 보다 긴 클럭 신호(즉, C123 및 C456)가 구동기를 제어하는데 사용될 수 있으므로 2개의 다른 구동기가 동시에 그 버스를 구동하게 될 높은 확률이 존재하며, 또한 클럭 스큐가 그들 신호를 중첩케하여 그 버스를 동시에 구동케 할 높은 확률도 존재한다. 두번째 경우에는, 보다 짧은 타이밍 신호가 논리회로에 의해 효과적으로 사용될 만큼 혹은 래치의 작동 이전에 구동기로부터 래치로의 데이타 전송을 허용할 만큼 충분히 길지 않을 수 있으므로, 종래의 버스 구동 방법은 8개의 최소 서브 사이클로부터 얻어질수 있는 타이밍 신호를 필요로 한다. 이것은 중첩을 방지하기 위해 하나의 서브 사이클로 분리되는 2/3 서브 사이클 구동기 신호와 3개의 서브 사이클 구동 신호의 첫번째 2개의 구동 신호 동안 계속할 수 있는 래치 제어 신호를 허용할 수 있다.
본 발명의 회로는 제한된 수의 서브 사이클이 있는 경우 양방향 데이타 전송의 문제점과, 그리고 집적회로 칩 경계 양단의 데이타 전송의 문제점에 대해 예전에는 인지되지 않았던 버스 라인의 현상을 이용함으로써 다른 회로의 부가에 대한 필요성을 방지하는 것이다. 노드 버스(67)의 각 라인들은 통상 5-10pf 의 고유 용량값을 갖는다. 본 발명자는 이러한 고유 용량값이 버스 구동기에 의해 버스가 더 이상 특정 레벨로 구동되지 않은 다음에도 그 버스 라인상 적절한 전압 레벨을 유지하는데 사용될 수 있음을 발견하였다. 전하를 버스 라인의 고유 용량값으로 기억하기 위해서는, 그 용량값의 방전 통로에 대한 임피던스가 높아져야 한다. 일반적으로, 버스에 대한 방전은 구동기 출력 및 그 버스에 접속된 기억소자 입력을 통해 행해진다. 본 발명자는 또한 고입력 및 고 출력 임피던스를 가진 장치, 특히 버스라인들에 수 pf의 용량값을 가산하는 CMOS 장치를 사용함으로써, 그 버스 라인의 고유 용량값이 버스 구동기로부터 구동 신호가 제거된 이후에도 그 버스에 배치된 데이타를 유효상태로 되게 하는 시간동안 확장되도록 사용될 수 있음을 발견하였다.
인터페이스 장치는 각각 그 버스의 다른 라인에 대응하는 다수의 버스 구동기를 구비한다. 이 구동기의 각각은 대응하는 버스 라인을 2개의 전압 레벨중 어느 하나로 구동할 수 있다. 제6도는 노드 지정 로직(65)및 데이타 인터페이스(61)내의 회로에 접속된 버스(67)의 한 라인에 대한 일예를 도시한 것이다. 이미 기술된 버스 구동기(82)가 버스(67)의 그러한 라인에 결합된 것으로 도시되어 있다. 상기 버스 구동기(82)는 기억소자(80)에서 노드 버스(67)의 라인으로 전송될 입력 데이타를 홀딩하기 위한 입력단자(90)와, 노드버스(67)의 라인에 실제 결합된 버스 인터페이스 단자(92)를 포함한다. 상기 버스 구동기(82)는 또한 제4도에서의 2상태 구동 신호, 소위 구동기 신호(87)를 수신하며, 특히 제6도에서 C61로서 도시된 인에이블 단자(94)를 갖는다.
제3도는 신호 C61의 타이밍을 도시한 것이다. C61이 고 레벨(이러한 레벨은 변환 가능하며 필수적인 것은 아니다)일 때, 그 출력 단자(92)는 노드 버스(67)의 대응 라인을 입력 데이타에 따른 레벨들중 하나로 구동시킨다. 또, 신호 C61이 저 레벨인 경우에는, 상기 버스 구동기(82)가 버스 라인의 구동을 중단시켜 노드 버스(67)의 라인에 고 임피던스를 제공한다.
인터페이스 장치는 또한 버스의 다른 한 라인에 대응하는 다수의 래치를 포함한다. 제6도가 도시하는 바와 같이, 기억소자(110)은 구동기(82)와 마찬가지로 노드 버스(67)의 동일 라인에 결합된다. 이 기억소자(110)는 그 입력단자(112)가 노드 버스(67)의 그 라인에 결합되어 있어서, 그 라인에 고 임피던스를 제공한다. 상기 기억소자(110)는 또한 제6도에서 도시된 C61과 같은 제어 신호를 수신하기 위한 제어 단자(114)를 갖는다. 단자(114)에서의 제어 신호는 그 제어 신호가 작동될 때(즉, C61이 비가정될 때) 기억소자(110)로 하여금 노드 버스(67)의 대응하는 라인상의 레벨을 기억케한다. 일반적으로, 제어 신호는 상승 또는 하강 구간중 어느 하나와 같은 상태들간의 신호전송동안 작동된다.
상기 인터페이스 장치는 또한 버스 구동기의 입력 단자에서의 입력 데이타를 버스를 통해 래치들로 전송시키는 구동 및 제어 신호를 발생시키기 위해 다수의 래치에 결합된 신호 발생 수단을 포함한다. 제7도는 신호 C61을 구동시키는 회로를 포함하는 클럭디코더(61)의 일예를 도시한 것이다. 제7도에서, 시간 L신호는 버퍼(130)를 통해 수신되어, 3개의 비트 시프트 레지스터(132)의 클럭 입력에 결합된다. 위상 신호가 버퍼(134)를 통해 통과한 다음에는 시프트 레지스터(132)의 데이타 입력 단자에 제공된다. 그 레지스터의 Q1, Q2 및 Q3 출력은 각기 C12, C34 및 C56신호를 형성하기 위하여 버퍼(140), (138) 및 (136)를 통해 통과된다. 시프트 레지스터(132)의 Q1 출력은 그 클럭입력이 버퍼(114)를 통해 시간 H신호로 결합되는 3비트 시프트 레지스터(142)에 데이타 입력을 공급한다. 상기 레지스터(142)의 Q1, Q2 및 Q3 출력은 각기 버퍼(150), (148)및 (146)를 통해 통과되어 C23, C45 및 C61신호를 형성한다. 제3도에서 도시된 바와 같이, 본 발명의 바람직한 실시예에서의 클럭 신호 C61의 액티브 부분은 시스템 버스(25)의 사이클의 약 1/3 동안 계속된다.
신호 발생 수단은 대응하는 제어 신호가 작동되는 것과 실질상 같은 기간에 구동 신호를 제1상태에서 제2상태로 스위칭 하기 위한 제1수단을 포함한다. 다시 말해서, 구동 신호는 래치 신호 이후에는 부가적인 서브 사이클을 유지할 필요가 없다. 바람직한 실시예에 있어서, 클럭디코더(63)는 구동기 신호 및 제어 신호 양자에 대해 타이밍 신호 C61을 발생시킨다. 이미 설명했던 바와 같이, 데이타 인터페이스(61)에 송출된 타이밍 신호 C61을 노드 지정 로직(65)으로 송출된 타이밍 신호 C61로부터 분리시키는 것이 바람직하다. 그러나, 이들 양자의 타이밍 신호는 실질상 동일하다. 이러한 신호 분리는 노드 지정 로직(65)의 특성이 예컨대 부적절한 로우딩에 기인해 데이타 인터페이스(65)에 나타나는 타이밍 신호를 변동되게 하는 것을 방지함은 물론 클럭디코더(63)의 타이밍 신호에 의한 데이타 인터페이스(61)와 서비스에 악영향을 끼치는 것을 방지한다.
본 발명의 방식은 종래의 방식과는 대조적으로 버스 라인에 대한 별도의 구동기 홀드 시간이 전혀없다. 이러한 별도의 구동기 홀드 시간의 부재는 본 발명으로 가능한데, 그 이유는 버스 라인들의 고유 용량값이 노드 버스(67)가 더 이상 액티브 상태로 구동되지 않는다 하더라도 그 라인들에 대한 레벨을 유지하도록 사용되기 때문이다. 노드 버스(67) 라인들에 대한 방전 통로는 구동기가 인에이블되는 경우 기억소자(110)의 고 입력 임피던스 및 버스 구동기(82)의 고 출력 임피던스를 통해 이루어지므로, 노드 버스(67)의 라인들에 대한 전압 레벨이 비교적 소정의 시간 주기동안 일정한 레벨로 유지된다. 그 시간은 고유버스 캐패시턴스, 구동기(82) 및 기억소자(110)의 캐패시턴스 및 임피던스로부터 계산될 수 있다.
버스 구동기(82)에 대한 출력회로는 제8도에서 도시된 바와 같은 CMOS 구동기인 것이 바람직하다. 그 회로는 직렬 접속된 p채널 풀업 트랜지스터(200) 및 n 채널 풀다운 트랜지스터(210)를 포함한다. 상기 p 채널 트랜지스터(200)는 공급전압 Vcc 및 출력단자(92) 사이에 결합된 전류 통로를 갖는다. 또 상기 n채널 트랜지스터(210)는 출력단자(92) 및 기준 단자 사이에 결합된 전류 통로를 갖는다.
프리버퍼(220)는 상기 p채널 트랜지스터(200)의 게이트를 제어하기 위해 게이트 p신호를 송출하고, 또 m 채널 트랜지스터(210)의 게이트를 제어하기 위해 게이트 N신호를 송출한다. 버스 구동기(82)가 인에이블될 때, 게이트 P 및 게이트 N 신호는 각기 노드 버스(67)를 "1" 또는 "0"데이타에 대응하는 고 또는 저 레벨중 어느 하나로 구동시키기 위해 트랜지스터(200) 및 (210)를 제어한다. 특히, 노드 버스(67)가 레벨로 구동하는 경우, 게이트 P 및 게이트 N 신호는 고 레벨(Vcc에 근접함)이 되고, 또 노드 버스(67)가 고 레벨로 구동되는 경우에는 게이트 P 및 게이트 N 신호가 저레벨(접지에 근접함)로 된다. 단자(90)가 출력단자(92)로부터 분리되도록 버스 구동기(82)가 디스에이블되면, 프리버퍼(220)는 게이트 P 신호를 고 레벨로 설정되게 하고 게이트 N 신호는 저 레벨로 설정되게 한다. 이것은 트랜지스터(200)및 (210) 양자를 디스에이블되게 하여, 통상 수 메가옴의 고 임피던스를 노드 버스(67)로 제공되게 한다.
랫치(110)에 대한 입력회로는 또한 표준 CMOS 회로인 것이 바람직하다. 이에 대한 일예는 제9도에서 p 채널 트랜지스터(235) 및 n 채널 트랜지스터(237)로 이루어진 인버터회로(230)로 도시되어 있다. 제9도의 회로의 전형적인 입력 임피던스는 또한 수 메가옴 정도이다.
제8도에서 도시된 CMOS 구동기 회로를 가진 구동기(82)와, 제9도에서 도시된 CMOS 입력회로를 가진 기억소자(110)를 사용함으로써, "홀드시간"이 왜 효과적인지에 대한 데이타가 노드 버스(67)상에 유지되므로, 제어 신호(C61)의 하강 구간에서 비록 버스 구동기(82)가 그 구동 신호(또한, C61)에 의해 디스에이블되었다 하더라도 상기 기억소자(110)는 그 레벨을 기억한다. 이러한 방식으로, "홀드시간"은 통상의 버스구동회로에서의 "구동기 비중첩 시간"으로 간주되는 홀드시간과 중첩된다.
상기 타이밍은 데이타가 버스상에서 유효상태인 경우의 "원도우"동안 제어신호가 작동되게 하도록 보장하는 것이 바람직하다. 그러나, 본 발명의 회로는 버스 구동기(82)가 노드 버스(67)동안 액티브하게 중단시키는 시간을 경과한 후에는 그 윈도우의 확장을 허용한다.
노드 버스(67)의 동일 라인을 통한 양방향 통신의 경우, 다른 구동기/기억소자 쌍은 데이타를 노드 지정로직(65)에서 시스템 버스(25)로 전송시키기 위해 요구된다. 제6도에서 도시된 바와 같은 노드 지정 로직(65)은 입력단자(121), 출력단자(122) 및 인에이블 단자(124)를 갖는 버스 구동기(120)를 포함한다. 버스 구동기(120)은 버스 구동기(82)와 구조적으로 유사한 것이 바람직하다. 버스 구동기(120)의 입력단자(121)는 기억소자(130)에서 수신된 바와 같은 제2입력 레벨을 유지하는데, 이는 제6도에 도시되어 있다. 이러한 제2입력 레벨은 버스 구동기(122)의 출력단자(122)가 결합된 노드 버스(67)의 동일 라인에 결합된다. 제6도에 도시된 본 발명의 실시예에서의 인에이블 단자는 클럭디코더(63)로부터 제공된 타이밍 신호 C34에 접속된다.
데이타 인터페이스(61)는 기억소자(70)를 버스 구동기(120)에 대한 보완소자로서 포함하는 것이 바람직하다. 기억소자(70)는 입력단자(71)및 제어단자(75)를 갖는다. 제6도에 도시된 본 발명의 실시예에 있어서, 제어단자(75)에서의 제어 신호는 또한 신호 C34이다.
양방향 통신을 제공하기 위한 인터페이스 장치의 신호 발생 수단은버스 구동기(82)및 (120)의 각 입력에서의 데이타를 노드 버스(67)로 전송하기 위해 기억소자(70),(110)및 버스 구동기(82),(120)에 대한 다른 구동기 제어 신호를 발생시킨다. 그 신호 발생 수단은, (1) 대응하는 제어 신호들이 작동되는 것과 실질상 동일한 시간에 제1및 제2상태 사이의 버스 구동기들 중 하나의 구동기에 대한 구동신호를 스위칭하고, (2)대응하는 래치들에 대한 제어신호가 작동되는 것과 실질장 동일한 시간에 버스 구동기들중 다른 하나의 구동기들에 대한 구동 신호를 스위칭하며,(3) 상기 제1및 제2구동 신호들의 제1상태에서 동시에 구동하지 못하도록 보장하는 수단을 포함한다.
제7도에서 도시한 바와 같은 클럭디코더(63)는 제3도에서 알수 있는 바와 같이 중첩하지 않는 타이밍 신호 C61 및 C34를 발생시킨다. 사실, 서브 사이클(2)및 (5)에 대응하는 타이밍 신호 C34 및 C61간에는 시간 주기들이 있는데, 그 시간 주기들은 노드 버스(67)가 버스 구동기(82)및 (120)에 의해 동시에 구동되지 않도록 보장하는 것이다.
데이타 인터페이스(61)를 통한 다른 전송 관계는 물론 전체 양방향성 데이타 전송동작은 제10도의 타이밍 도로부터 이해될 수 있다. 제10도에서의 타이밍 신호 C12 내지 C61은 현재 및 기존시스템 버스 구동기 인에이블 신호, 시스템 버스(25)상의 유효 데이타 주기 및 제어 신호(85)와 마찬가지로 재생된다. 타이밍 신호 C45가 서브 사이클(5)의 종료점에서 비가정될때, 시스템 버스(25)상의 데이타는 유효상태로 되고 투명 래치(80)는 그 유효 데이타를 포획한다. 이어서, 그 데이타는 타이밍 신호 C61이 액티브 상태인 동안 노드 버스(67)에 전송되는데, 그 이유는 구동 신호(87)로서도 도시된 그 타이밍 신호가 버스 구동기(82)를 인에이블 하기 때문이다. 서브 사이클 1의 종료점에서, 예컨대 타이밍 신호 C61이 비가정될때, 기억소자(110)는 노드 버스(67)로부터 데이타를 포획한다. 이러한 방식으로, 시스템 버스(25)로부터의 데이타가 시스템 버스(25)의 매 사이클마다 기억소자(110)로 전송된다.
동일한 시스템 버스 사이클의 서브 사이클들(3)및 (4)동안은 비록 타이밍 신호 C61이 엑티브 상태가 아니라 하더라도, 버스 구동기(120)가 기억소자(130)내의 데이타를 노드 버스(67)로 전송되게 한다.
제6도가 도시하는 바와 같이 C34가 비가정되는 경우, 버스 구동기(120)에 의해 노드 버스(67)로 전송되는 데이타는 기억소자(70)에 의해 포획되는데, 그 이유는 제10도에서 도시된 제어 신호(75)때문이다. 나중에, 서브 사이클(2)의 종료점에서, 기억소자(70)내의 데이타는 노드가 버스에 액세스되어 GC12가 가정된 경우 기억소자(72)에 의해 포획될 수 있다.
C. 인터페이스 시스템
본 발명의 인터페이스 시스템은 노드및 시스템 버스 사이에 양 방향 통신을 제공한다. 시스템 버스(25)와 같은 시스템 버스는 반복 버스 사이클동안 데이타를 전파하며, 노드(6)와 같은 노드는 그 데이타를 처리하기 위해 노드 지정 로직(65)와 같은 유저 부분을 갖는다. 상기 인터페이스 시스템은 노드 지정 로직(65)에 결합되어 데이타를 병렬로 전송하는 노드 버스(67)와 같은 노드 버스를 포함한다.
본 발명의 인터페이스 시스템에 따라서, 트랜시버 수단은 시스템 버스 및 노드 버스간에 양방향 통신을 제공함과 아울러 시스템 버스상에 전파된 모든 데이타의 카피를 노드 버스에 제공하기 위해 노드 버스 및 시스템 버스 사이에 결합된다. 본 발명의 바람직한 실시예에 있어서의 데이타 인터페이스(61)가 그러한 양방향성 통신을 제공한다.
본 발명에 따르면, 트랜시버 수단은 제1및 제2의 단일 방향성 통신 수단을 추가로 포함한다. 이 단일 방향성 통신 수단은 노드 버스에 결합된 입력단자 및 시스템 버스에 결합된 출력 단자를 가지며, 그 시스템 버스의 선택된 사이클동안 시스템 버스에 전송될 노드 버스에서의 데이타를 수신한다 제4도 및 제6도에서 도시된 바와 같이, 본 발명의 양호한 실시예에서의 제1단일 방향 통신 수단은 기억소자(70),(72)및 버스 구동기(74)를 포함한다. 상기 기억소자(70)는 노드 버스에 결합된 입력단자(71)를 갖는다. 또, 상기 기억소자(70)의 출력은 기억소자(72)에 결합된다. 버스 구동기(74)는 기억소자(72)의 출력에 결합되고, 또 시스템 버스(25)에 결합된 출력단자(77)를 갖는다.
상술된 바와 같이, 클럭 C34의 작동부분(예컨대, 하강시간)동안 노드 버스(67)에서의 데이타가 기억소자(70)내에 수신된다. 이어서, 그 데이타는 그것이 제10도에서 도시된 바와 같은 신호 GC12에 의해 작동될 때 기억소자(72)로 전송된다. 신호 GC12는 2개의 신호 C12 및 GC12EN의 논리곱 신호이다. 제3도 및 제10도에서 도시된 C12신호는 클럭디코더(63)에 의해 발생된 타이밍 신호들중 하나이고, 또 GC12EN 신호는 액티브 상태일때 노드(60)가 시스템 버스(25)상의 송신기임을 가리킴과 아울러 데이타 인터페이스(61)를 통해 데이타가 시스템 버스(25)상에 전송될 수 있음을 가리키는 신호이다. 그리고, GC12신호는 중재기(28)및 노드 지정 로직(65)로부터의 신호를 이용하여 클럭디코더에 의해 발생된다.
제4도 및 제6도에서 도시된 바와 같은 구동기(74)는 그 입력으로서 구동 신호 피호출 시스템 버스 구동 인에이블 신호(79)를 갖는데, 이것은 클럭디코더(63)로부터 수신되어, 기억소자(72)내의 데이타를 시스템 버스(25)상에 전송되게 한다. 상기 시스템 버스 구동 인에이블 신호(79)는 노드 지정 로직(65)에서의 요구는 물론 데이타 처리시스템(20)에서 수신된 어떤 허가 신호에 대한 요구시에 발생된다. 따라서, 데이타는 노드(60)가 송신기인 경우 시스템 버스(25)의 사이클들 동안만 시스템 버스(5)상에 전송된다.
본 발명에 따른 제2단일 방향 통신수단은 시스템 버스에 결합된 입력 단자와 노드 버스에 결합된 출력 단자를 갖는다. 상기 제2단일 방향 통신 수단의 입력 및 출력단자는 각각 제1단일 방향 통신 수단의 대응하는 출력 및 입력단자에 각기 결합된다. 상기 제2단일 방향 통신 수단은 또한 시스템 버스상에 전파된 데이타를 시스템 버스의 매 사이클마다 노드 버스에 전송한다.
제4도 및 제6도에서 도시된 바와 같은 기억소자(80)는 시스템 버스(25)에 결합된 입력단자를 가지며, 클럭디코더(63)에서 수신된 클럭신호 C45에 의해 인에이블된다. 버스 구동기(82)는 노드 버스(67)에 의해 노드에 결합되어, 대응하는 기억소자(70)의 입력단자(71)에 결합된 출력단자(92)를 갖는다. 이 버스 구동기(82)의 인에이블 단자(94)가 C61신호에 결합된다.
본 발명의 인터페이스 시스템은 또한 상기 제1및 제2단일 방향 통신 수단에 결합되어 그 수단들을 제어하는 타이밍 수단을 포함한다. 본 발명에 의하면, 상기 타이밍 수단은 제1클럭 신호의 선택된 액티브 부분동안 노드 버스로부터 데이타를 수신하기 위해 제1단일 방향 통신 수단을 제어하며, 또한 제2클럭 신호의 액티브 부분동안 데이타를 시스템 버스에서 노드 버스로 전송하기 위해 제2단일 방향 통신 수단을 제어한다. 상기 제1수단은 또한 제1및 제1 클럭 신호를 발생시키므로, 그 클럭 신호들의 액티브 부분들은 매 사이클마다 발생하여 중첩하지 않게 된다.
이미 설명한 바와 같이, 클럭디코더(63)는 클럭 신호 C34 및 C61을 발생시킨다. 기억소자(70)는 클럭C34의 종료점에서 데이타를 수신하여, 시스템 버스(25)의 선택된 사이클들 동안 그 데이타를 시스템 버스(25)로 전송시킨다. 게다가, 기억소자(80)는 타이밍 신호 C45동안 시스템 버스(25)로부터 데이타를 수신하고, 또 구동기(82)는 C61클럭 사이클 동안 그 데이타를 노드 버스(67)로 전송시킨다. 따라서, 시스템 버스(25)의 매 사이클동안 전송된 데이타가 노드 버스(67)를 허가하도록 그 노드 버스(67)에 전송되므로, 노드 지정 로직(65)은 시스템 버스(25)상에 전송된 모든 메시지의 사진을 얻는다. 클럭 사이클들 C45및 C61이 시스템 버스 사이클당 한번씩 발생하기 때문에, 시스템 버스(25)에서 노드 버스(67)로의 전송도 또한 시스템 버스(25)의 사이클 당 한번씩 발생한다.
함께 사용되는 경우, 본 발명의 버스 인터페이스회로 및 인터페이스 시스템은 종래 기술의 시스템에 비해 몇가지 잇점을 제공한다. 그 잇점들은 클럭 신호들의 최소 갯수를 사용하여 고속 버스 전송을 포함하는데, 그에 따라 하나의 버스, 예컨대 노드 버스가 시스템 버스와 같은 다른 버스를 통해 모든 메시지들의 카피를 얻을 수 있도록 버스들간에 고속 데이타 전송을 제공한다. 이러한 카피를 제공하여 시스템 버스(25)에 대한 단일 핀 접속을 이용함으로써, 노드 버스에 결합된 노드가 그 자체 메시지들을 감시할 수 있을 뿐만 아니라 그 시스템 버스에 의해 메시지들을 다시 송출할 수 있으므로, 다른 노드들이 그 메시지들을 모니터할 수 있다.
이 분야에 기술에 숙련된자에게는 본 발명의 사상 및 범위에서 벗어나지 않고도 본 발명의 버스 인터페이스 회로 및 인터페이스에 대한 여러 가지 수정 및 변화가 이루어질 수 있음이 명백할 것이다. 본 발명은 첨부된 특허청구의 범위 및 그 등가 범위 이내에서 그러한 수정 및 변화를 카바한다.