제 8 장 버스 연결 구조

8장 버스 연결 구조

ꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏ

8.1	버스의 신호선

8.2	버스의 계층

8.3	버스의 구현

8.4	시스템 버스

ꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏ

○ 구성된 컴퓨터 시스템 내의 각 부분들 사이에 데이터를 병렬	전송하는 물리적인 연결선들의 모임

○ 버스의 개념 과 신호선

8장 버스 연결 구조

― 버스 :	컴퓨터 시스템의 계층별로 구성 요소들 간의 데이터 경로를 제공하고, 여러 개의 통신선경로들 또는 통신 선들로 이루어짐

* 통신선은 2 진수 한 비트의 신호를 전송 *

그림 8-1.  버스에 연결된 장치들

● 버스의 개념

2 개 이상의 장치들을 연결하는 통신 경로이며 공유 전송 매체(shared transmission media)

― 버스에 연결된 장치들이 정보를 통신하는 원리 : 그림 8-1

1) 장치 1이 장치 2와 통신하려면 장치 1은 우선 장치 2가 응답할 수 있게 만드는 선택 신호를 버스에 보낸다. 이때 버스에 연결된 여러 장치들 중에서 장치 2가 선택되게 하는 신호를 장치 2 의 주소(address)라 한다. 만일 장치 1이 장치 2에 데이터를 전송한다면 장치 1이	장치 2에 기록(write),	장치 2가 장치 1에 데이터를 전송한다면 장치 1이 장치	2로부터 판독(read)한다.

2) 장치 1은 주소 신호 이외에 기록 혹은 판독 제어 신호를	장치 2에 보내야 된다.

― Bus master :	통신을 개시시키며, 제어하는 장치

― Bus slave :	통신에 응답하는 장치

― 동시에 마스터와 슬레이브로 지정될 수는 없다.

― 버스를 사용하는 단계:

연결 설정단계: 마스터가 버스에 연결되는 단계

트랜잭션 단계: 마스터에 의해 데이터 전송이 이루어짐.

연결 해제 단계: 마스터가 사용 끝난 버스를 반납

― 버스 tenure : 마스터가 버스에 대한 제어권을 행사하는 시간

― 버스 중재기(arbiter):	두 개의 장치가 동시에 버스를 사용하려고 하면 이들이 버스에 가하는 신호들은 서로 방해하는 현상이 발생하지 않게 하는 장치. 버스의 종류에 따라 중재 방법도 다름.

― 버스의 오퍼레이션상의 문제와 해결

전기적인 신호의 송수신 방법

수신 장치가 데이터의 수신 시점을 알아내는 방법

수신 장치가 자기의 주소를 알고 버스에 송신된 주소에서	자기의 주소를 인식하는 방법

수신 장치와 송신 장치의 논리적 접속 방법

● 버스의 신호 선(signal lines)

(1) 전원선(power lines) : 각 기능 장치에 전원 공급.

(2) 클럭선(clock lines) : 각 기능 장치들의 동기화.

(3) 주소선(address lines) : 주기억 장치의 주소나 입출력	장치의 포트 주소 지정.

(4) 데이터선(data lines) : CPU 와 나머지 장치와의 데이터 전송.

(5) 데이터 전송 제어선(data transfer control lines): 데이터의 전송 방향 및 시점 제어, 주기억 장치 또는 입출력 장치 읽기/쓰기 제어, 데이터/주소 스트로브, 준비 신호를 전달.

(6) 인터럽트(interrupt lines) : 정전, 버스 오류 및 입출력	장치의 준비 상태를 알림, 인터럽트 요청 및 요청 허락.

(7) 버스 제어선(bus control lines) : 버스 사용권 제어, 버스 요청 및 허락.

(8) 초기화선(reset line) : 시스템의 상태를 초기화.

(9) 기타 : 진단(diagnostic)-프로세서 칩의 오동작 유무의	검사.

― Broadcast :	복수의 장치들 혹은 모든 장치들에 동시에 같은 정보를 전달할 수 있게 하며, 마스터가 모든 슬레이브들에게 정보를 전달하는 데 사용

― 정렬 버스: 부분 단어의 전달하고자 하는 바이트를 최소 유효 바이트에 정렬시켜서 전달하므로 최소 유효 데이터 바이트에 해당하는 데이터선을 통하여 전달

― 비정렬 버스:	부분 단어의 전달하고자 하는 바이트를 최소 유효 바이트에 정렬시키지 않기 때문에 전달하고자 하는 바이트의 위치에 해당하는 데이터선을 통해 전달

― 데이터선의 수와 주소선의 수는 서로 영향을 미치지 않는다. 흔히, 주소/테이타선 수의 조합은 16/8, 16/16, 20/8, 20/16, 24/16, 24/32, 32/32 이다.

― 다중화 버스(multiplexed bus) :	버스의 데이터선과 주소선을 같은 선을 다중화시켜서 사용	하는 것으로 한 가지 회선을 두 가지 용도로 사용하기 때문에 속도가 느리지만 버스선의 수가 큰 경우에 유리

― 제어버스, 상태버스, 중재선, 인터럽트선 등

― 기타 버스선 :

스트로브 신호(strobe)

싱크 신호(sync)

클럭들을 위한 타이밍선

전원과 접지선

○  버스의 계층

― 버스에 접속 장치수와 컴퓨터의 성능 저하원인 :

(1) 버스에 많은 장치들이 접속될수록 전파 지연이 늘어난다. 이 전파 지연은 장치들이 버스의 사용을 조정하는 데 걸리는 시간을 결정한다. 버스의 제어를 받는 장치가 자주 바뀌면 이 전파 지연은 컴퓨터의 성능에 큰 영향을 미칠 것이다.

(2) 전체 데이터의 전송 요구가 버스의 용량에 접근할수록	버스는 병목이 된다. 이 병목 문제는 버스의 데이터 전송률을 증가시키거나, 더 폭이 넓은 버스 (32 비트 데이터 버스에서 64 비트 데이터 버스로)를 사용함으로써 다소 해결할 수 있다. 그러나 접속된 장치들에 의한 데이터 발생률이 급속히 증가하면, 단일 버스로는 감당할 수 없게 된다.

― 버스의 계층 구조(p.347) :

대부분의 컴퓨터 시스템에서는 다중 버스를 사용하고 있는	데, 이 다중 버스는 계층 구조를 가짐(그림 8-2(a))

그림 8-2(b) : 중이층(mezzanine) 구조의 전형적인 구현

(a) 전통적인 버스 구조

(b) 고성능 구조

그림 8-2 버스의 구성

○ 버스의 구현

표 8-1. 버스의 기본적인 설계 요소

설계 요소	구분
형태	전송(dedicated) 버스, 다중화(multiplexed) 버스
중재 방법	중앙 집중(centralized) 중재, 분산(distributed) 중재
타이밍 제어	동기 타이밍 제어, 비동기 타이밍 제어
버스의 종류	주소 버스, 데이터 버스, 제어 버스
데이터 전송 형태	읽기(read), 쓰기(write), 읽기-수정-쓰기(read-modify-write)

● 버스의 형태

― 버스의 형태 :	전용(dedicated) bus,	다중화(multiplexed) bus

― 버스 구동기(bus driver): 데이터, 주소, 제어정보 등을 버스에 보내는 회로

― 버스 수신기(bus receiver): 수신된 신호 전압을 논리 신호로 변환

― 버스 트랜시버(transceiver): 하나의 회로에 버스 구동기와 버스 수신기를 포함시킨 것

― 버스 구동기를 구현하는 방법:	3 상(tri-state) 구동기, TTL 회로의 컬렉터 개방형(open collector) 구동기, ECL 회로의 에미터 개방형(open emitter) 구동기

● 중재 방법(bus arbitration)

하나 이상의 장치가 동시에 버스를 사용할 수 없게 하려면, 버스를 사용하려는 장치들이 어떠한 형식으로든지 버스 사용의 허가를 받는 절차가 필요

― 버스 중재기:	버스에 여러 장치가 접속되어 있을 때 버스 사용의 혼란을	방지하기 위하여 그 내부에 구현된 알고리즘을 이용하여 버스 사용의 질서를 유지. 각 장치들과	버스 요청(bus request)선 및 버스 허가(bus grant)선으로 연결.

[1] 개별 요청 방식

그림 8-3과 같이 별(star) 모양으로 각 장치들과 접속되어 있는 중앙 집중형 중재기로서 개별 요청(independent requesting) 방식의 중재기라고도 하며, 각 장치들은 독립된 버스 요청선과 버스 허가선에 의하여 중재기와 연결. 장단점(p. 350)

그림 8-3.  개별 요청 방식의 중재기

[2] 폴링 방식

그림 8-4와 같이 폴링(polling) 마스터에 의한 버스 중재기로 개별 요청 방식보다 간단함.

1. 각 장치들의 버스 사용 요청 신호 발생 시 중재기가 인식.

2. 중재기가 폴링을 목적으로 폴링선으로 counter 신호 발생.

3. 어떤 장치의 번호가 폴링선에 나타난 번호와 일치할 때 버스 사용중 신호를 발생하고 버스 사용권을 획득함.

. 버스 사용권 우선순위는 폴링 계수 순서에 의해 결정되므로 임의로 변경할 수 있음. 순차적 계수 방식 사용으로 버스 요청 후 사용권 부여 받을 때 까지의 시간이 긴 단점 있음.

그림 8-4.  폴링 방식에 의한 중재기

[3] 데이지 체인

그림 8-5와 같은 데이지 체인(daisy chain)으로 연결된 장치들에는 두 개의 단자가 있는데, 데이지 입력 단자에 버스 허가 신호가 입력되고, 데이지 출력 단자로 버스 허가 신호가 출력될 수 있어서 장치들을 사슬(chain) 형태로 연결하도록 되어 있다.

그림 8-5.  데이지 체인에 의한 버스 중재

1. 버스 요청 신호 발생 후 중재기가 인식

2. 버스 허가 신호가 데이지 입력으로 발생

3. 요청하지 않은 장치는 데이지 입력 신호를 다음 장치로 출력

4. 요청한 장치는 데이지 입력 신호를 받아 버스 사용 중 신호 발생 후 버스 사용

버스 사용권 우선순위는 장치의 중재기에 물리적 연결 순위

― 각 장치들이 연결된 데이지 체인 자체가 사실상 중재 알고리	즘의 하드웨어적 구현이다.

― 단점 :

(1) 높은 우선 순위의 장치가 계속 버스 사용 요청을 할 경우에 버스의 사용을 독점할 우려가 있다. 이러한 경우에 대비한 별도의 중재 규칙을 둘 수도 있으나 중재기가 복잡해지는 문제가 있다.

(2) 데이지 체인은 특수한 형태로 직접 연결된 장치들이므로 만일 데이지 체인 중간의 한 장치를 제거하면 데이지 체인은 끊어진다. 따라서 데이지 체인에 연결된 모든 장치들의 위치에는 실제로 존재하는 장치를 연결하든가 그렇지 않으면 데이지 입력 단자로 들어온 버스 허가 신호가 그대로 데이지 출력 단자로 출력되게 하는 점퍼 카드(jumper card)를 연결해야만 버스 허가 신호가 모든 장치에 가해질 수 있다.

(3) 데이지 체인은 버스 중재에 관한 정보를 거의 제공하지 않기 때문에 버스 조작의 감시와 장애 진단이 어렵다.

[3] 중재 버스

버스 신호선을 중재에 이용하기 때문에 모든 중재에 관한 정보는 버스 신호선 전반에 나타나며, 우선 순위는 버스를 사용하려는 장치의 위치에 무관하고, 장치들을 특수한 형태로 연결시킬 필요도 없는 효율적인 방법

― SLAC 의 Fastbus, TI 의 NuBus, Intel 의 Multibus-Ⅱ 등

― 중재버스를 통하여 버스 사용 요청을 할 때는 요청하는 장치가 자신의 우선 순위를 중재 버스에 실어 보냄. 중재기는 중재버스에 나타난 가장 높은 우선순위 번호에 해당하는 장치에 버스 사용권을 부여함. 사용 완료 후 그 우선순위 번호를 중재버스에서 제거하여 다음 우선 순위 장치에게 버스 사용권을 부여하게 함.

― 공평(fairness) 규칙:	버스사용을 요청한 후 차례가 오기를 기다리고 있는 장치가 있을 때에는 새로운 요청을 할 수 없게 하면 우선 순위가 높은 장치가 버스사용을 독점할 수 없게 함

― 패리티 비트를 이용하여 고장난 버스 구동기나 불량 커넥터를 탐지할 수 있다.(고장 판별 가능)

● 버스 프로토콜과 타이밍

― 버스 조작의 2 사이클

주소 사이클 :	주소에 의하여 슬레이브를 선택하는 조작

데이터 사이클 :	선택된 장치와 데이터 교환을 하는 조작

― 스큐(skew) 현상 :	마스터가 주소를 주소 버스에 가하면 모든 주소 비트가 동시에 슬레이브에 도달하지 않는다. 각 비트들이 슬레이브에 도달하는 데에는 시간적인 차이로서 버스 시스템을 설계할	때에는 시스템이 주소 스큐와 데이터 스큐를 모두 허용하도록 설계해야 함

― 버스 프로토콜:	동기식과	비동기식(asynchronous)

동기식 프로토콜 :	필요한 회선의 수가 적고 프로토콜이 간단하여 구현 및 시험이 용이하다. 동기식 프로토콜은 이를 구현하는 부품에 의하여 클럭의 주파수가 결정되기 때문에 속도가 빠른 새로운 부품이 개발되어도 이의 이용이 불가능하기 때문에 비동기식 프로토콜보다 확장성이 적다고 알려져 있다. 그러나 현재 버스의 속도는 물리적인 속도의 한계에 접근하고 있기 때문에 이 점은 문제시되고 있지 않다.

비동기식 프로토콜 :	버스 신호에 필요한 시간 신호를 시스템이 제공하는 것이 아니라 통신에 관련된 장치들 자신이 발생하도록 한다. 따라서 비동기식 프로토콜은 고속 장치와 저속 장치가 공존하는 시스템에서도 무난하게 사용될 수 있다. 비동기식 프로토콜을 사용하면 통신하고 있는 장치들에 따라 버스의 속도가 자동으로 적용된다. 따라서 공유 메모리 혹은 다중 버스(multiple-bus) 시스템에서 볼 수 있는 동적으로 변화하는 시간적 요구에 적용될 수 있다.

― 타이밍 : 버스 상에서 이벤트가 서로 협조하는 방식을 말하며 클럭 발생기(clock oscillator)가 같은 시간 동안 1 들과 0 들이 섞여 있는 시퀀스를 전송하게 되는 데 한 1-0 전송을 클럭 사이클 또는 버스 사이클이라 하며 한 시간 단위를 정의

그림 8-6.  동기식과 비동기식 프로토콜을 사용한 타이밍

● 데이터의 전송

― 데이터의 전송(transmission) : 주기억 장치가 신호선에 전압을 가하면 버스 전반에 걸쳐서 같은 전압이 나타나며, 사실상 모든 수신 장치에 의하여 감지가 가능하다. 그러므로 마스터가 신호를 보내려면 버스에 가하는 전압을 정보에 맞추어 변화시키면 됨

― 전송 절차 :	버스 중재기에 의하여 버스를 사용할 장치가 결정된 후 버스의 사용이 허용된 마스터는 우선 버스에 주소를 가한다. 이 주소는 마스터가 통신하고자 하는 슬레이브의 주소로서 이에 의하여 여러 장치들 중에서 하나의 슬레이브가 선택되며, 버스에 주소가 가해지고 그것에 해당하는 슬레이브가 그 주소를 인식하면 마스터와 슬레이브 사이에 통신선이 접속됨

― 버스를 통한 데이터의 전송 :	버스 구동기, 버스, 그리고 버스 수신기로 구성된 전자 회로	에서 전류의 흐름인데, 논리적으로는 매우 간단한 동작을 행함. 전자적 특성은 복잡.

― 버스 신호의 왜곡(distortion) 현상

― 교화(cross talk) :	하나의 신호선에 전류가 흐르면 그 신호선의 주위에 자장이	생성된다. 따라서 한 신호선에 정보에 해당하는 신호가 전송되면 그 근접한 신호선의 전하의 이동을 유발하게 되어	강도는 약하지만 잡음에 해당하는 전류가 흐르게 되는 것을 말하며, 정보의 신뢰성을 잃게 한다.

― 버스의 지연 시간 :	구동기가 구동되면 신호선의 구동기가 연결된 곳에서부터 전압 변화가 일어나는데 이것이 수신기의 입력 단자에 도달	하는 데까지 필요한 시간으로 구동기와 수신기를 조작하는데 있어서 중요한 요소

○ 시스템 버스

시스템 버스란 CPU 보드와, 기억 장치 보드 및 입출력 보드들을 상호 연결하는데 이용되는 연결 구조를 말한다.

확장버스는 입출력 장치들이 갖는 낮은 전송률 때문에 직접 시스템 버스에 연결되지 못하고 입출력 인터페이스를 통해 간접적으로 연결되는 데, 이러한 입출력 인터페이스와 주변 장치 사이를 연결하는 연결 구조를 말한다.

― 전형적인 시스템 버스 :	100 개의 신호선

예) IEEE 표준 796 다중 버스 시스템의 구성: 16개의 데이터선,	24개의 주소선,	26개의 제어선, 20개의 전원선

표 8-2. 주요 시스템 버스의 특징 비교

버스의 종류	VME 버스	멀티버스 Ⅱ	퓨처버스+
타이밍	비동기	동기	비동기
중재방식	중앙 집중	분산	모두
클럭(㎒)	16	10	100
데이터 버스	32	32	256
주소 버스	32	32	64
방송 기능	안됨	제한	허용
전송 속도(Mbps)	57	40	3.2Gbps
IEEE 표준	P1014	P1296	P896
즉시-쓰기 (Write-Through)	제한	제한	허용
나중-쓰기 (Write-Back)	안됨	안됨	허용

● VME버스

― VME(Versa Module Eurocard) 버스 : 모토롤라사가 개발한 초기 버스인 버사버스(Versabus)에서 유래. 유럽의 산업용 컴퓨터 표준처럼 사용되던 Eurocard 사용자들이 버사버스의 채용을 제안하고 이에	모토롤라사는 Mostek과 Signetics/Philips사와 함께 VME 라는 새로운 버스를 지원. VME 버스는 32 비트 버스 표준의 하나로 IEEE P1014 로	공인

그림 8-7.  VME 버스의  구성

― VME 버스는 최대 32 비트의 데이터를 한 번에 전송할 수 있지만, 동적 버스 크기 조절(dynamic bus sizing)로써 8 비트, 16 비트, 24 비트, 32 비트 단위로 사용할 수 있다.

[1] 개요

― VME 버스의 기본적인 버스 주기 :	각 버스 주기는 1바이트, 2 바이트 또는 4 바이트로 조합된	데이터에 대하여 적용

그림 8-8..  RMW 주기

[2] 전송 시점 제어

그림 8-9 : 비동기 타이밍 제어에 따른 32 비트 VME 버스에서의	읽기 주기

그림 8-9. VME 버스의 읽기 주기

[3] 버스 중재

VME 버스는 중앙 집중 비동기 시점 제어를 갖는 버스로 마스터와 슬레이브 사이에 핸드쉐이킹을 사용해서 버스의 동작이 이루어짐

그림 8-10. VME 버스의 중재

[4] 인터럽트와 유틸리티 처리

VME 버스에서 인터럽트 처리 방법은 기본적으로 우선 순위와 데이지 체인 인터럽트 허용선(daisy-chained interrupt grant line)을 기반으로 이루어진다. 유틸리티 신호선들은 CPU에 클럭을 공급해주고, 버스 주기가 시작된 후 일정한 시간 동안 주기억 장치로부터 응답이 없을 경우 버스 오류(bus error) 신호를 발생시키며 VME 버스를 확장시키기 위해서 이들을 직렬로 연결하는데 이용 됨

● MultibusⅡ

1983년에 인텔사에서 발표한 32 비트 버스로서 1987년 ANSI/IEEE에 의해 표준화(ANSI/IEEE 1296)됨

표 8-3. 멀티버스 Ⅱ의 신호선

[1] 개요

동기 시점 제어에 기반을 둔 분산중재를 지원하는 32 비트 버스

표 8-4. VME 버스와 멀티버스Ⅱ의 비교

버스의 종류 구분		멀티버스 Ⅱ	VME 버스
데이터 전송	전송시점 전송률 데이터 선의 수 다중화 주소/데이터 버스 주소 버스의 폭	동기 40 32 허용 32	비동기 40 32 안됨 16/24/32
인터럽트 처리	인터럽트 선의 수 버스 백터에 의한 인터럽트	1 안됨	8 허용
버스 마스터	복수 마스터 중재 방법 중재 알고리즘	허용 분산 공정 우선순위	허용 중앙 집중 요청시 반환 종료후 반환
기계적 특성	사용자 정의 보드 크기(inch) 핀의 수 연결 장치의 수 최대 버스선의 길이(m)	허용 8.7×9.2/8.7×14.4 96 21 0.5	허용 3.9×6.3/6.3×9.2 96 21 0.5

[2] 전송 시점 제어

그림 8-11 :

멀티버스 Ⅱ 에서 한 번의 전송이 발생하는 읽기와 쓰기 동작

(a) 읽기

(b) 쓰기

그림 8-11. 멀티버스 II 의 데이터 전송

[3] 버스 중재

멀티버스 Ⅱ의 시점 제어는 공통 클럭을 이용하는 동기 방법을 따르며, 중재기가 에이전트 각각에 분산되어 있는 분산 중재 방법을 지원한다. 한 버스 주기는 100 ㎱로 동작하며, 멀티버스 Ⅱ 에 연결된 각 보드는 5 비트의 ID 를 가지며 버스 요청을 할 수 있는 이들 각각을 에이전트라고 한다. 우선 중재와 관련된 선은 전체 6 개(ARB5, … ARB0)지만 ARB5 를 제외한 ARB4-ARB0 까지의 5 개 선만이 각 에이전트의 ID 를 제시하는데 이용된다. 버스 중재에 이용되며 중재에 소요되는 시간은 2 클럭 주기이다. 특정 시점에서 5 개의 선에 나타난 ID 값에 대한 논리합을 구해보면 그 시점에서의 버스 패턴을 구할 수 있다.

∙멀티버스 Ⅱ 의 중재 과정

(1) 버스 사용권을 요청하려는 모든 에이전트들은 자신의 ID 를 버스선 ARB4-ARB0 을 이용해서 제시한다.

(2) 에이전트의 ID 를 기초로 분산 중재가 시작되며 첫 번째  중재 구간에 서는 각 에이전트의 ID 값을 가중치가 높은 쪽인 ARB4 로부터 비교한 다음, 의사 ID 를 생성한다. 의사 ID 란 ARB4 로부터 비교하면서 에이전트의 ID 가 서로 같지 않은 최초의 비트 이후부터 모두 0 으로 채운 값을 말한다. 이 경우 에이전트 10011 의 의사 ID 는 10000 이 되고 나머지 세 에이전트의 의사 ID 는 11000 이 된다. 4 개 에이전트의 의사 ID 를 버스를 통해서 제시한다.

(3) 의사 ID 들 가운데 버스 패턴과 일치되는 에이전트들은 제 1 구간에서의 승자가 된다. 즉 이 경우는 각 에이전트의 의사 ID 인 10000, 11000, 11000, 11000 값에 대한 논리합인 11000 과 일치되는 의사 ID 를 갖는 세 에이전트인 11101, 11011, 11111 이 승자가 된다.

(4) 제 1 구간의 승자로 결정된 에이전트들을 대상으로 ID 를 버스를 통해서 제시하게 해서 버스 패턴과 일치되는 ID 를 갖는 에이전트가 최종 승자로서 결정된다. 이 경우에 버스 패턴은 11111 이 되기 때문에 에이전트 11111 이 버스 사용권을 갖는 최종 승자로 결정된다. 버스 사용권을 갖게 된 에이전트는 이전 버스 사용자가 버스 사용을 끝내는 순간 새로운 버스 사용권자로서 버스를 사용하기 시작한다.

(5) 제 2 구간의 패자와 제 1 구간에서의 패자는 단계 2 부터 단계 4 까지의 중재 과정을 반복한다. 이 과정은 버스 중재에 참여하는 더 이상의 에이전트가 없을 때까지 계속된다.

[4] 인터럽트

멀티버스 Ⅱ 에는 VME 의 경우와는 달리 전용 인터럽트 제어선과 인터럽트 응답 과정이 없기 때문에 인터럽트를 요청하는 장치들이 버스 중재 과정을 통해서 인터럽트 정보를 특별한 메시지 형식으로 전송해야하고 메시지에 응답하기 위한 소프트웨어가 추가되어야 함

● Futurebus+

[1] 개요

퓨처버스+(Futurebus+)는 고성능 비동기 버스 표준으로서 IEEE 에 의해서 개발되었으며, 이것의 초기 버전(version)인 퓨처버스(Futurebus)는 32 비트 버스로서 1987 년에 ANSI/IEEE 표준 896 으로 발표

∙퓨처버스+ 의 요구 사항

(1) 구조, 프로세서 및 기술에 대한 독립성.

(2) 비동기 전송 프로토콜을 기본으로 할 것.

(3) 소스 동기화(synchronized) 프로토콜의 선택적 지원 가능.

(4) 성능의 기술적인 한계로부터의 독립성.

(5) 분산 병렬 중재를 기반으로 한 분리 트랜잭션(transaction) 프로토콜 지원.

(6) 결함 허용(fault tolerant)과 고신뢰성 유지.

(7) 캐쉬 기반의 공유 메모리 지원 가능.

(8) 호환성 있는 메시지 전송 프로토콜 제공.

∙퓨처버스+ 의 중요 개념

(1) 중재된 메시지(arbitrated message): 버스 상에 있는 모든 모듈들에게 중재 메시지 선을 통해 어떤 숫자가 통보된다.

(2) 비이트(beat): 하나 이상의 슬레이브에 의한 응답선(Ack. line)의 해제 후에 등장하는 마스터에 의해서 동기화 선을 통해서 시작되는 작업.

(3) 버스 테뉴어(bus tenure): 마스터가 버스를 제어하는 기간.

(4) 버스 트랜잭션(bus transaction): 연결 단계로 시작하고 연결 해제 (disconnection)단계로 끝나는 작업.

(5) 강제 데이터 전송 프로토콜(compelled data transfer protocol): 마스터가 다음 전송을 계속하기 전에, 슬레이브로 하여금 응답을 하도록 강요하는 기술.

(6) 잠금(locking): 어떤 모듈로 하여금 데이터를 다른 모듈이 접근하지 못하도록 막아서 독립적인 접근이 가능하도록 해주는 기능.

(7) 병렬 경쟁 중재(parallel contention arbitration) : 모듈들이 자신의 고유 중재번호를 병렬 버스 상에 인가하고, 철회하는 순서는 승자의 번호가 버스에 나타나는 것과 같은 알고리즘을 따르게 하는 중재 방법.

(8) 분리 트랜잭션 : 요청이 하나의 버스 트랜잭션으로 전송되며 이것에 대한 응답은 연속되는 트랜잭션으로 분리되어 전송되는 시스템 트랜잭션.

(9) 기아(starvation) : 하나 이상의 모듈이 버스나 다른 시스템 자원에 접근하지 못함으로서 불필요한 일을 무한정 수행하는 시스템 상태.

(10) 시스템 트랜잭션(system transaction) : 장치의 초기화로부터 메모리 읽기 또는 쓰기와 같은, 하나의 완전한 작업(complete operation).

표 8-5. 퓨처버스+의 특징

구분	용도	신호선의 수
기호	데이터 경로의 폭	32 64 128 256
AD0-AD63 D0-D255 BP0-BP31 TG0-TG7 TP CM0-CM7 CP ST0-ST7 CA0-CA2	주소/데이터 데이터 버스 패리티 태그 태그 패리티 지시어 지시어 패리티 상태 용량	32 64 64 64 - - 64 192 4 8 16 32 8 8 8 8 1 1 1 1 8 8 8 8 1 1 1 1 8 8 8 8 3 3 3 3
	동기 신호
AS,AK,AI,DS,DK,DI,ET	주소 핸드쉐이크 데이터 핸드쉐이크 테뉴의 마지막	3 3 3 3 3 3 3 3 1 1 1 1

[2] 주소 기법

버스상의 각 모듈은 고유한 지역 주소(geographical address)를 부여받으며 이는 백플레인(backplain)의 각 슬롯에 하드웨어적으로 연결

[3] 분산 중재

퓨처버스+의 중재 절차는 버스 상에서 데이터 전송과 병렬로 진행된다. 이 버스에서 지원되는 중재 방법은 분산 중재와 중앙 집중 중재가 모두 가능

그림 8-13. 퓨쳐버스+ 중재 논리 회로

․퓨처버스+의 중재 단계

(0) 휴지(idle)

(1) 결정(decision)

(2) 경쟁

(3) 오류 검사

(4) 마스터 해제

(5) 사용권(tenure)

그림 8-14. 퓨쳐버스 + 중재 과정

[4] 중앙 집중 중재

퓨처버스+ 시스템은 중앙 집중 중재자를 갖도록 구성될 수 있다. 중앙 집중 중재방법은 RQ(1…0), GR, PE 선을 이용해서 이루어진다. RQ 와 GR 선은 실제로 공통 버스의 일부는 아니고, 2개의 별도 요청선과, 중앙 중재자로부터 버스를 통해서 각 모듈로 연결된 한 개의 허가선이 존재한다. 이 구성은 복수개의 모듈로부터 동시에 들어오는 요청을 처리할 때 필요한 주소 구별(address resolution) 문제를 피할 수 있다.

[5] 데이터 전송

퓨처버스+ 는 다양한 데이터 전송 능력을 제공

그림 8-15. 퓨쳐버스+ 의 데이터 전송 예

― 데이터 전송의 순서

● 지역 버스(local bus)

지역 버스(local bus)란 동영상(또는 비디오)을 비롯한 멀티미디어 데이터 처리와 더불어 대두된 데이터 입출력 과정을 고속화하기 위해 등장한 버스 기술

― 지역 버스의 기본 구조

VL(Vesa local) 버스

PCI(peripheral component interconnect)  버스

MCA(micro channel adapter)

EISA 버스

표 8-6. 지역 버스의 비교

특 징	ISA	EISA	MCA	VL	PCI
데이터 폭	16	32	32	32	32/64
클럭(MHz)	8	8.3	10	33	33
전송률(Mbps)	16	32	40	132	120
접속 주변 장치의 수	12 이상	12 이상	12 이상	3	10
발표 년도	1981	1989	1987	1991	1992

그림 8-16. PCI 버스의 기본 구성

표 8-7. VL 버스와 PCI 버스의 비교

구분	VL 버스	PCI 버스
장점	· 현재 시스템에서 이용 가능. · 가격 저렴. · 내장 카드 제조 판매 회사 많음. · 성능 시험 데이터 및 검토 가능. · ISA/EISA/MCA에 대해 역방향 호환성 있음.	· 10개의 주변기기 지원. · 팬티엄 시스템에 대해 64 비트 지원. · 호환성 많음. · 인텔사 및 산업 주도 업체들이 지원. · 내장 카드 존재함. · 보드상 자동 구성 특성 보유. · ISA/EISA/MCA에 대해 역방향 호환성 있음.
단점	· 단 3개의 주변기기 지원. · 안정성과 호환성의 문제. · 팬티엄에 대한 성능 향상 경로 설정 불가능. · 33MHz 이상의 클럭 속도에서 문제 있음.	· VL 버스보다 고가임.

● SCSI

SCSI(small computer system interface)는 대표적인 주변기기 버스(또는 입출력 버스)로서 다른 여러 장치들과 간편하게 연결될 수 있다는 장점을 가지고 있으며, 최근 많이 사용되는 광 저장 매체인 CD-ROM, RAID 시스템, MIDI 장치, 사운드 시스템, 플로피 디스크 드라이브, MO(magneto-optical) 드라이브, 통신 어댑터를 컴퓨터에 연결하는데 널리 이용

그림 8-18. SCSI ANSI 사양의 X3T9.2/86-109

그림 8-19. 버스제어 및 데이터 전송 단계

● 그 밖의 버스

(1) S-100버스 (IEEE 696)

(2) STD버스 (IEEE 961)

(3) RS-232C

RS : Recommmended Standard(표준 권고안)

232 : 그 특정 규격에 대한 식별 번호

C  : RS-232C 규격에 가해진 최종의 개정을 나타냄.

그림 8-20.  시스템 버스와 RS-232C, SCSI, GPIB 버스가 연결되어 있는 예

(4) RS-422A

(5) CENTRONICS

(6) GP-IB

(7) USB