11 시스템 버스 IT CookBook, 컴퓨터 구조와 원리 2.0
학습목표 컴퓨터 버스에 대하여 이해한다. 시스템 버스의 기능과 기억장치 용량에 대해여 이해한다 다중버스의 계층 구조와 장점을 이해한다. 버스 중재의 개념과 분류를 이해한다.
목 차 컴퓨터 버스의 개요 시스템 버스의 개념 다중버스 계층 구조 버스 중재
01 컴퓨터 버스의 개요 버스의 분류 연결되는 장치에 따라서 버스는 3가지 형태가 존재 중앙처리장치와 주기억장치 그리고 외부의 입출력장치 간에 정보를 전송하기 위해서 공용으로 사용하는 전기적 통로를 버스라고 한다. 데이터 버스, 주소 버스 그리고 제어버스로 구성된다. 연결되는 장치에 따라서 버스는 3가지 형태가 존재 내부 버스 컴퓨터 시스템 내의 칩들 사이에 신호를 전달한다. 외부 버스 주변장치들 사이에서 신호를 전달하기 위한 범용의 인터페이스 버스다. 이것은 대부분 표준화되어 있다. 시스템 카드들을 연결하는 버스로서 기억 장치의 주소 버스, 공유된 데이터 버스, 제어 신호 버스 등과 관련 있으며, 표준화가 되지 않아 많은 문제점이 있다. 버스의 분류
01 컴퓨터 버스의 개요 버스 위치에 따른 분류 내부 버스(Internal Bus) 외부 버스(External Bus) 컴퓨터 시스템에서 시스템 내 또는 장치 내에 밀폐되어 있는 버스다. 중앙처리장치와 주기억장치, 입출력 장치, 외부 기억장치, 주변장치, 통신처리장치 등의 제어부 사이를 연결하는 버스다. 외부장치에 해당되는 입출력장치, 외부기억장치, 주변장치, 통신처리장치 등은 내부 버스를 경유해서 외부버스와 연결된다. 외부 버스(External Bus) 내부 버스를 경유하여 CPU와 외부 장치를 연결하는 버스다. 내부 버스와는 달리 공개되어 있는 경우가 많은데, 다중 판매자 환경에서 컴퓨터 시스템을 구축하는 경우가 많기 때문이다. 외부 버스의 공개화 또는 표준화는 장치 설계상 필수 조건으로, 표준화되었거나 업계 표준이 되어 있는 버스로는 GPIB, VME 버스, 멀티버스, ISA 버스, EISA 버스, MCA 버스 등이 있다.
01 컴퓨터 버스의 개요 데이터 처리 양에 따른 분류 ISA(Industry Standard Architecture) 버스 중앙처리장치와 각종 주변장치를 연결하여 정보를 전달하는 버스 설계 규격 IBM PC와 호환 기종의 표준 확장 슬롯에 플러그 인(plug-in) 카드 또는 보드를 삽입하는데 사용, PC/AT 버스 또는 AT 버스라고도 한다. IBM PC/AT의 16비트 버스 구조는 업계 표준 구조라고 한다. 속도는 이론상 4MB/sec, 실속도 2MB/sec 정도로 느린 편이만, 호환성과 저렴한 가격 등으로 인해 널리 사용되어 왔으며, 현재는 PCI 버스로 대체되고 있다. EISA(Extended Industry Standard Architecture) 버스 16비트의 ISA 버스를 32비트로 확장하고 개선한 PC/AT 호환기의 버스 규격으로 ‘확장 ISA’ 또는 ‘확장 업계 표준 구조’라 불린다. EISA 버스는 ISA 버스보다 훨씬 높은 주파수로 동작할 수 있고 데이터 전송 속도도 훨씬 고속이다. 결과적으로 하위 기종의 호환성 단절이라는 위험을 극복하면서 버스를 고속화 하였다. 가격이 비교적 비싸기 때문에 크게 보급되지 않았으며, PCI 버스의 등장으로 현재는 널리 사용되지 않는다.
01 컴퓨터 버스의 개요 VESA(Video Electronics Standards Association) 로컬 버스 비디오 일렉트로닉스 표준 협회 VESA에서 표준화한 로컬 버스 규격으로 간략하게 VLB 또는 VL 버스라고도 한다. 버스 제어기를 통하지 않고 직접 중앙처리장치와 데이터를 송수신하는 방식을 채택하여 전송 속도를 높였다. 중앙처리장치와 주변장치를 직접 연결하여 고속으로 데이터를 전달하는 데이터 통로를 제공한다. ISA 버스나 EISA 버스에 비해 데이터 전송 속도가 매우 빠른 것이 특징이다. VRSA 로컬 버스 확장 슬롯에 대용량의 데이터 고속 전송이 요구되는 비디오 카드나 소형 컴퓨터 시스템 인터페이스(SCSI) 확장 보드를 삽입할 수 있다. VESA 로컬 버스는 32비트 또는 64비트 버스(펜티엄 CPU의 경우)이다. VESA 로컬 버스를 사용하고 있는 그래픽 카드와 주기억장치 (a) 그래픽 카드 (b) 주회로 기판
01 컴퓨터 버스의 개요 PCI(Peripheral Component Interconnect) 버스 중앙처리장치와 주변장치를 연결하는 ISA나 EISA, VESA의 후속으로 개발된 로컬 버스 규격으로 PCI 버스 또는 PCI 로컬 버스로 널리 알려져 있다. 주소를 전달하는 신호와 데이터를 전달하는 신호를 시분할 다중화하여 하나의 선을 가지고 전송하기 때문에 신호선의 수가 적다. 32비트 또는 64비트 버스로 사용가능하며, 중앙처리장치와 버스 사이에 브리지 회로를 두어 중앙처리장치의 종류가 달라도 그에 대응하는 브리지 회로를 갖추기만 하면 어떤 중앙처리장치와도 연결할 수 있다. 버스 마스터링을 지원하여 중앙처리장치와는 독자적으로 작업을 처리할 수 있다. 따라서 전송 속도가 서로 다른 여러 주변장치가 접속해도 동영상 등의 멀티미디어 데이터를 우선적으로 처리할 수 있다. 주회로기판의 PCI 버스 슬롯
01 컴퓨터 버스의 개요 PCI Express(Peripheral Component Interconnect Express) 기존의 PCI 병렬 버스의 성능을 향상시키고 소프트웨어 관련 호환성을 유지하는 방식이 PCI Express이다. 이것은 스위치 패브릭(switched fabric) 구조와 점 대 점(point-to-point) 패킷 연결망 방식을 채택하여 성능과 확장성을 향상시켰으며, 개인용 컴퓨터의 고속 버스 규격이다. 2004년부터 본격적으로 쓰이기 시작했으며, 1초에 8기가바이트 정도의 데이터를 전송할 수 있다.
버스 대역폭 = 8byte / (50 × 10-9 sec) = 160 [Mbytes/sec] 01 컴퓨터 버스의 개요 버스의 폭과 대역폭(Bus Bandwidth) 버스의 폭 버스 선의 수는 버스가 데이터를 전송할 수 있는 능력으로 버스 폭이라고도 한다. 버스의 폭은 한 번에 전송할 수 있는 데이터 비트의 수를 나타낸다. 그런데 버스 선의 수는 기억장치 주소의 비트 수와 제어 신호의 수에 따라 결정이 된다. 소형 컴퓨터의 경우에는 50 ∼ 100개의 버스 선을 사용하므로, 20 ~ 100비트의 데이터 전송 능력을 갖는다. 중대형 급 시스템에서는 100개 이상의 버스 선을 사용하므로 100비트 이상의 데이터 전송능력을 갖는다. 버스의 대역폭 버스의 속도를 나타내는 척도다. 그래서 버스의 대역폭은 단위 시간당 전송할 수 있는 데이터 양을 나타내며, 버스 클록의 주기에 의해 결정된다. 예) 버스 클록 주기가 50nsec (클록 주파수: 20 MHz)이고, 데이터 버스 폭이 64비트(8바이트)라면, 버스 대역폭은 초당 전송되는 비트의 수 이므로 버스 대역폭 = 8byte / (50 × 10-9 sec) = 160 [Mbytes/sec] 계산 결과에서 주어진 버스를 통하여 초당 1억 6천 바이트의 데이터 전송이 가능하다는 것을 확인할 수 있다.
02 시스템 버스의 개념 컴퓨터의 기본 모듈 컴퓨터 기본 모듈들이 서로 전달하는 데이터의 전송 유형들의 분류 컴퓨터 시스템의 구성 장치들을 연결하고 교환할 각종 정보들을 전송하는 공유 전송 매체를 버스라고 한다. 컴퓨터의 기본 모듈 컴퓨터 시스템을 구성하는 기본적인 장치인 중앙처리장치, 주기억장치, 외부기억장치, 입출력장치들을 컴퓨터의 기본 모듈이라고 한다. 컴퓨터의 기본 모듈들은 필요에 의해서 상호 간의 데이터를 전달하고 전달받는 통신 작업을 수행한다. 컴퓨터 기본 모듈들이 서로 전달하는 데이터의 전송 유형들의 분류 중앙처리장치가 주기억장치에서 명령어와 데이터를 읽고 중앙처리장치가 기억장치에서 데이터를 저장하는 유형이다. 중앙처리장치가 입출력 모듈을 통하여 입출력장치에서 데이터를 읽어 오고 중앙처리장치가 입출력장치로 데이터를 내보내는 전송 유형이다. DMA 제어기의 동작으로 입출력 모듈이 직접 주기억장치에 접근하여 주기억장치와 데이터를 교환하는 유형이다.
02 시스템 버스의 개념 시스템 버스의 정의 시스템 버스의 개념도 중앙처리장치를 중심으로 주기억장치, 외부기억장치 그리고 입출력장치가 데이터를 교환하는 통로를 시스템 버스(system bus)라고 한다. 시스템 버스의 개념도 중앙처리장치(CPU)는 주기억장치와 직접 연결되고, 외부 기억장치와 입출력장치는 입출력 모듈을 통해서 연결되는 것을 확인할 수 있다.
02 시스템 버스의 개념 시스템 버스의 유형별 분류 버스를 유형별로 분류하면 전용 버스와 다중화 버스로 구분할 수 있다. 전용 버스(Dedicated Bus) 지정된 신호만을 전송할 수 있는 버스를 전용 버스라고 한다. 데이터를 전달하는 전용 버스를 데이터 버스라고 하며, 주소 만을 전달하는 전용 버스를 주소 버스라고 한다. 그리고 제어 신호를 전달하는 전용 버스를 제어 버스라고 한다. 다중화 버스(Multiplexed Bus) 제어 신호에 의해 여러 용도의 신호를 전달하는 버스를 다중화 버스라고 한다. 주소 및 데이터 버스는 주소 유효(address valid) 신호를 이용해서, 주소 데이터를 전달하거나 일반 데이터를 전달할 수 있다. 다중화 버스의 장점은 버스로 사용되는 선의 수가 적기 때문에 공간과 비용을 절감할 수 있다. 제어 회로가 복잡하고, 시분할다중화(time multiplexing) 방식으로 인한 성능 저하의 단점이 있다.
02 시스템 버스의 개념 시스템 버스의 기능별 분류 버스가 전달하는 정보의 기능에 따라 데이터 버스(data bus), 주소 버스 (address bus), 제어 버스(control bus)로 분류 기능별로 분리하여 표현한 시스템 버스에 컴퓨터 기본 모듈의 연결 데이터 버스(Data Bus) 컴퓨터 시스템을 구성하는 장치들 사이에 데이터를 전송하는 데 사용되는 선들의 집합을 데이터 버스라 한다. 이 버스는 연결된 장치들 간에 서로 양방향 전송이 가능하다. 그리고 데이터 버스의 폭(선들의 수)은 중앙처리장치와 주기억장치 사이에 한 번에 전송되는 비트 수가 된다.
02 시스템 버스의 개념 주소 버스(Address Bus) 주소 버스의 비트에 따른 기억장치 용량 계산 중앙처리장치가 주기억장치로 데이터를 쓰기(write) 동작을 하거나 데이터를 읽기(read) 동작을 할 때, 해당하는 주기억장치 장소를 지정하는 주소를 전송하기 위한 선들의 집합이 주소 버스다. 주소 버스는 CPU에서 주기억장치 및 입출력 모듈로 주소를 전송할 수 있지만, 반대로는 주소를 전송할 수 없다. 따라서 주소 버스는 단방향 전송을 한다. 주소 버스의 비트 수는 중앙처리장치가 액세스할 수 있는 기억장치의 주소 수를 결정한다. 또는 기억장소의 수를 결정한다. 주소 버스의 비트에 따른 기억장치 용량 계산 주소 버스의 폭이 16비트 이면, 주소지정 가능한 최대 기억장소의 수 = 216 = 65,536개 바이트 단위 주소 지정일 경우 최대 기억장치 용량 = 64Kbyte 주소 버스의 폭이 24비트이면, 주소지정 가능한 최대 기억장소의 수 = 224 = 16,777,216개 바이트 단위 주소 지정일 경우 최대 기억장치 용량 = 16 Mbyte
02 시스템 버스의 개념 제어 버스(Control Bus) 컴퓨터에서 사용되는 주요 제어 신호 중앙처리장치와 주기억장치 및 입출력장치 사이에 제어 신호들을 전송하는 선들의 집합이 제어 버스다. 컴퓨터에서 사용되는 주요 제어 신호 기억장치 읽기/쓰기(memory read/write) 입출력 읽기/쓰기(memory read/write) 전송 확인(transfer acknowledge) 버스 요구(bus request) 버스 승인(bus grant) 인터럽트 요구(interrupt request) 인터럽트 확인(interrupt acknowledge) 클록(clock) 리셋(reset)
02 시스템 버스의 개념 관련 장치에 따른 제어 신호 분류 중앙처리장치, 주기억장치와 관련된 제어 신호 기억장치 쓰기(memory write) 신호 : 버스에 적재된 데이터를 주소가 지정하는 기억장치의 장소에 저장되도록 하는 제어 신호다. 기억장치 읽기(memory read) 신호 : 주소가 지정하는 기억장치 장소의 내용을 읽어서 버스에 적재하는 제어 신호다. 중앙처리장치, 입출력장치와 관련된 신호 입출력 쓰기(I/O write) 신호 : 버스에 적재된 데이터를 지정된 입출력장치로 출력되게 하는 제어 신호다. 입출력 읽기(I/O read) 신호 : 지정된 입출력장치에서 데이터를 읽어서 데이터 버스에 적재하게 하는 제어 신호다. 전송 확인(transfer acknowledge) 신호 : 데이터 전송 동작이 완료되었음을 알려주는 신호다.
02 시스템 버스의 개념 버스 중재에서 사용되는 제어 신호 여러 장치가 동시에 버스를 사용하려는 경우에 각 장치들이 순서대로 버스를 사용하도록 제어해주는 기능을 버스 중재(bus arbitration)라고 한다. 버스 사용의 주체가 되는 중앙처리장치, 입출력 모듈 등의 요소들을 버스 마스터(bus master)라고 한다. 버스 중재는 시스템 버스에 접속된 버스 마스터들이 동시에 버스를 사용하고자 할 때 순서대로 마스터 한 개씩 버스를 사용할 수 있게 해준다. 버스 중재를 위한 제어 신호 선들의 집합을 중재 버스(arbitration bus)라고 한다. 중재 버스에는 버스 요구 신호, 버스 승인 신호, 버스 사용 중 신호 등이 있다. 버스 요구(bus request) 신호 : 버스 마스터가 버스 사용을 요청했음을 알리는 제어 신호다. 버스 승인(bus grant) 신호 : 버스 사용을 요청한 버스 마스터에게 버스의 사용을 허가하는 제어 신호 버스 사용 중(bus busy) 신호 : 현재 다른 버스 마스터가 버스를 사용하고 있는 상태임을 나타내는 제어 신호다.
02 시스템 버스의 개념 인터럽트 버스에서 사용되는 제어 신호 그 밖의 제어 신호 인터럽트 버스는 인터럽트 동작을 위한 제어 신호 선들의 집합이다. 인터럽트 요구(interrupt request) 신호 : 입출력장치가 인터럽트를 중앙처리장치로 요구했음을 알리는 신호다. 인터럽트 확인(interrupt acknowledge) 신호 : 중앙처리장치 인터럽트 요구를 인식했음을 알리는 신호다. 그 밖의 제어 신호 버스 클록(bus clock) : 동기식 버스에서 버스 동작들의 시작 시간을 일치시키기 위하여 제공되는 공통 신호다. 리셋(reset) 신호 : 컴퓨터 시스템의 모든 요소의 동작을 초기화시키는 신호다
02 시스템 버스의 개념 버스의 동작과 동작 타이밍에 따른 분류 시스템 버스의 기본동작 버스의 동작 타이밍에 따른 분류 쓰기 동작(write operation) 과정 : 버스 마스터가 버스 사용권을 획득한 다음, 주소 버스를 통하여 기억장치 주소를 전달한다. 이와 동시에 데이터 버스로 데이터를 전송하며 제어 버스로 쓰기 신호를 전송한다. 읽기 동작(read operation) 과정 : 우선 버스 마스터가 버스 사용권을 회득하고 주소 버스로 해당 장치의 주소를 전달한다. 이와 동시에 제어 버스를 통해서 읽기 신호를 전달한다. 그리고 데이터 버스를 통해서 목적한 데이터가 수신될 때까지 대기한다. 버스의 동작 타이밍에 따른 분류 시간적 관계에 따라서 버스의 동작은 동기식 버스와 비동기식 버스로 구분할 수 있다 동기식 버스(synchronous bus) : 시스템 버스에서 모든 버스 동작이 공통의 버스 클록을 기준으로 발생한다. 비동기식 버스(asynchronous bus) : 버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정된다.
02 시스템 버스의 개념 동기식과 비동기식 버스 동기식 버스의 특징과 동작 비동기식 버스의 특징과 동작 인터페이스 회로가 간단하다는 장점이 있지만, 버스 클록의 주기가 가장 오래 걸리는 버스 동작의 소요 시간을 기준으로 동작시간이 결정된다는 단점이 있다. 클록 주기보다 더 짧은 시간이 걸리는 버스 동작의 경우에는 동작이 완료된 후에도 다음 주기가 시작될 때까지 대기해야 한다. 비동기식 버스의 특징과 동작 각 버스 동작이 완료 즉시 연관된 다음 동작이 발생하기 때문에 동기식 버스와는 달리 낭비되는 시간이 없다. 연속 동작을 처리하기 위한 인터페이스 회로가 복잡하다. 따라서 전체적으로 시스템의 복잡도가 작은 소규모 컴퓨터 시스템에서는 인터페이스 회로가 복잡한 비동기식 버스의 사용이 가능하다. 반면 시스템의 복잡도가 큰 중형급 이상의 시스템에서는 인터페이스 회로가 간단한 동기식 버스를 사용하는 것이 더 유리하다.
02 시스템 버스의 개념 동기식과 비동기식 버스의 동작
03 다중버스 계층 구조 단일버스 구조 시스템 버스에 연결된 장치들의 처리 속도는 다양 중앙처리장치는 속도가 가장 바른 장치고, 기억장치의 계층 구조에서 보았듯이 주기억장치는 보조기억장치보다 빠르다. 또한 입출력장치들은 주기억장보다 처리 속도가 느리다. 시스템 버스에 연결된 각 장치들의 속도를 고려하여 효율적인 연결이 되도록 버스구조를 설계해야 하며, 이를 위해 제안된 것이 다중 버스 계층(Multiple-Bus Hierarchy)이다. 단일버스 구조 하나의 시스템 버스에 컴퓨터 구성 장치들이 연결되는 가장 간단한 구조 단일 버스에서는 장치가 버스에 연결될 수록 각 장치가 버스의 사용을 조정하거나 또는 중재하는 시간이 길어져서, 전파 지연(propagation delay)이 증가한다. 중앙처리장치가 다른 장치로 데이터를 요청하는 것이 주된 버스의 동작 이므로 버스의 병목 현상이 발생 데이터 전송률을 증가시키거나 버스 폭의 확대로 부분적으로는 해결 가능하지만, 단일 버스 구조의 한계로 인해서 근원적인 해결 방법은 아니다.
03 다중버스 계층 구조 계층의 다중 버스 구조 다중 버스 계층(Multiple-bus hierarchy) 전파 지연과 병목 현상이 발생하는 단일 버스의 문제점을 해결하기 위해서 설계된 버스로 여러 버스를 사용하는 계층적 구조다. 전통적으로 사용하는 2계층의 다중 버스 구조 액세스가 가장 많이 일어나는 주기억장치만이 시스템 버스에 단독으로 연결되고 중앙처리장치는 내부의 지역버스(Local Bus)를 이용해서 지역 입출력 제어기(Local I/O controller), 캐시와 연결된다. 캐시는 시스템 버스를 통해서 주기억장치와 연결된다. 주변장치들이 연결되는 하위 계층에서는 확장 버스에 입출력장치가 연결되고, 확장 버스 인터페이스를 통해서 시스템 버스와 연결된다. 액세스의 빈도가 적고, 처리 속도가 저속인 장치들은 시스템 버스에 직접 연결되지 않고 확장 버스를 거쳐서 연결된다. 중앙처리장치와 주기억장치 간에 데이터를 송신하는 경우와 주변장치와 주기억장치가 직접적으로 데이터를 송신하는 경우에만 시스템 버스를 이용한다. 단일 버스 구조에서 발생하던 주기억장치에 대한 전파 지연과 병목 현상을 피할 수 있다
03 다중버스 계층 구조 2계층 다중버스 구조
03 다중버스 계층 구조 3계층의 다중 버스 구조 연결된 주변장치들의 특징을 세분화하여, 시스템 버스와 확장버스 이외 에 고속버스를 추가한 고성능 계층 버스 조직 외부 연결 장치들에게 요구되는 데이터 전송속도에 따라서 고속 버스와 확장 버스로 분류된다. 중앙처리장치의 지역 버스와 시스템 버스 그리고 새롭게 추가된 고속 버스가 브리지에 연결되어 있다. 고속 버스와 확장 버스에 연결되는 주변장치들의 구분은 데이터 처리속도에 따른다. 그래서 고속 버스에는 고속의 처리를 요하는 그래픽 장치, 비디오 장치, 고속의 통신 장치가 연결된다. 최하위 계층의 확장 버스에는 고속의 데이터 처리를 요구하지 않은 외부 장치들이 연결된다. 확장 버스와 고속 버스, 시스템 버스는 중앙처리장치 간의 데이터 전달과 수신에 전혀 관여하지 않는다. 시스템 버스는 주기억장치를 액세스하는 경우에만 사용되게 된다. 단일 버스의 전파 지연과 병목 현상을 피하는 구조이며, 2계층의 다중 버스 구조와 비교할 때 전파 지연의 개선 효과와 병목 현상의 제거 정도가 더 높다.
03 다중버스 계층 구조 3계층의 다중 버스 구조
04 버스 중재 버스 중재 방식의 분류 버스 마스터 버스 경합(bus contention) 시스템 버스에 연결된 컴퓨터의 기본 장치들을 버스 마스터라고 한다. 버스 경합(bus contention) 여러 개의 버스 마스터들이 동시에 시스템 버스의 사용을 요구하는 경우, 버스 경합이 발생하게 된다. 버스 중재(Bus Arbitration) 버스 경합이 발생했을 때, 각 버스 마스터가 미리 정해진 기준에 따라 순서대로 버스를 사용할 수 있게 해주는 동작을 버스 중재(Bus Arbitration)라고 한다. 버스 중재를 수행하는 하드웨어 모듈을 버스 중재기(Bus Arbiter)라고 한다. 버스 중재 방식의 분류 버스 중재 방법의 가장 기본적인 분류 버스 중재기가 위치하는 것에 따른 분류 버스 중재에 사용되는 제어 신호들의 연결 구조에 따른 분류 우선순위의 결정 방식에 따른 분류
04 버스 중재 버스 중재기의 위치에 따른 분류 중재기 위치에 따라 중앙집중식 중재 방식과 분산식 중재 방식으로 분류 중앙집중식 중재 방식(Centralized Arbitration Scheme) 컴퓨터 시스템 내에 버스 중재기가 한 개만 존재하는 방식으로, 여러 버스 마스터들이 생성하는 버스 요구 신호들은 버스 중재기가 단독으로 수신한다. 그 다음 버스 중재기는 미리 정해진 중재 원칙에 따라 선택된 버스 마스터에게 버스를 사용할 수 있는 승인 신호를 전달한다. 분산식 중재 방식(Decentralized Arbitration Scheme) 여러 개의 버스 중재기가 존재하는 방식으로 버스 마스터들이 각각 별도의 버스 중재기를 가지고 있다. 그래서 버스 중재 동작이 각 버스 마스터의 버스 중재기에 의하여 이루어지는 방식이다. 장점 : 각 버스 마스터가 소유하고 있는 버스 중재회로가 간단하여 동작속도가 빠르며, 한 버스 중재기에 고장이 발생하여도 해당 버스 마스터에만 영향을 미치므로 신뢰도가 높다. 단점 : 고장난 버스 중재기를 찾는 방법이 복잡하고 하나의 버스 중재기 고장이 전체 시스템에 영향을 줄 수 있는 가능성이 존재한다.
04 버스 중재 제어 신호들의 연결 구조에 따른 중재 방식의 분류 버스 중재 과정에서 사용되는 제어 신호들의 연결 형태에 따라서, 병렬 중재 방식과 직렬 중재 방식으로 분류한다. 병렬 중재 방식(Parallel Arbitration Scheme) 버스에 연결된 버스 마스터들은 독립적으로 버스 사용 요구 신호와 버스 사용 승인 신호를 사용하므로 버스 마스터와 같은 수의 버스 요구선과 승인 신호선들이 필요하다. 각 버스 마스터가 독립적인 버스 요구 신호선을 통해서 각각의 버스 요구 신호를 버스 중재회로로 입력한다. 그리고 버스 중재기는 버스 승인 신호를 각 버스 마스터에 대응하여 별도로 발생시킨다. 직렬 중재 방식(Serial Arbitration Scheme) 버스 요구선과 승인 신호 선이 각각 한 개씩만 존재하며, 각 신호 선이 버스 마스터들 에 직렬로 접속하는 방식이다. 접속되는 버스 마스터들의 순서에 의해서 우선순위가 결정되기도 한다.
04 버스 중재 우선순위 결정 방식에 따른 분류 고정 우선순위 방식(Fixed Priority Scheme) 버스 경합이 발생하면 우선순위가 높은 버스 마스터가 버스를 먼저 사용한다. 이 방식에서 우선순위의 변경 여부에 따라서 고정 우선순위 방식과 가변 우선순위 방식 등으로 분류된다. 고정 우선순위 방식(Fixed Priority Scheme) 각 버스 마스터에 우선순위가 지정되면 고정되어 변경할 수 없는 방식이다. 즉, 정해진 우선순위 방식이 하드웨어적으로 고정되어서 변경이 불가능하다. 가변 우선순위 방식(Dynamic Priority Scheme) 각 버스 마스터의 우선순위를 버스 마스터의 상태에 따라서 수시로 변경할 수 있는 방식이다.
04 버스 중재 병렬 중재 방식과 우선순위 방식이 조합된 버스 중재 병렬 중재 방식은 버스 마스터들이 버스를 사용하기 위한 요구 신호와 버스 중재기가 버스를 사용 가능하도록 하는 승인 신호 등의 제어 신호들이 병렬로 전달한다. 버스 마스터의 수만큼 버스 요구 신호선과 버스 승인 신호선이 존재한다. 중앙집중식 고정 우선순위 방식(Centralized Fixed Priority Arbitration Scheme) 버스의 사용을 요구하는 모든 버스 마스터는 버스 중재기에 연결되는데, 버스 중재기와 가장 가까이 위치한 버스 마스터가 우선순위가 가장 높으며 버스 중재기에서 멀어질수록 우선순위가 낮아진다. 우선순위는 하드웨어적으로 설계되어 있어서 변경이 불가능하다.
04 버스 중재 병렬 버스 중재기의 내부 회로 버스 마스터 4개에 대한 우선순위를 결정하는 것으로, NOT 게이트와 AND 게이트 각각 3개를 이용하여 우선순위의 결정 회로를 설계한 것이다. 고정적인 우선순위를 제공하며, 우선순위를 변경하기 위해서는 회로의 설계를 변경하여야 한다.
04 버스 중재 분산식 고정 우선순위 방식 분산식 고정-우선순위 방식의 구성 버스에 연결된 모든 버스 마스터가 독립적으로 버스 중재기를 보유, 버스 경합 상태에서 버스 사용 요청이 발상하면 정해진 우선순위에 따라 버스를 사용한다. 분산식 고정-우선순위 방식의 구성 중앙집중식 고정 우선순위 중재 방식에 비하여 독립된 중재 회로가 간단하므로 버스 사용 여부에 대한 동작 속도가 빠르다는 장점을 갖는다. 어느 한 버스 중재기에서 고장이 발생하면, 중재기들에서 고장을 찾아내는 방법이 복잡하며, 한 중재기의 고장이 전체 시스템의 동작에 영향을 미칠 수가 있다.
04 버스 중재 가변 우선순위 방식 회전 우선순위(rotating priority) 방식 시스템의 상태 또는 조건에 따라서 각 버스 마스터들의 우선순위를 계속 변화시킬 수 있는 방식이다. 이 방식을 활용하면 모든 버스 마스터가 공정하게 버스를 사용할 수 있다는 장점을 가질 수 있다. 우선순위의 계속적인 변화는 중재 회로가 복잡하다는 단점이 있다. 회전 우선순위(rotating priority) 방식 버스 중재기에서 버스 사용 승인을 받은 버스 마스터는 최하위 우선순위가 되어 다음 버스 사용 승인을 기다린다. 그리고 바로 다음에 위치한 버스 마스터가 버스를 사용할 수 있는 최상위 우선순위를 가지게 된다.
04 버스 중재 회전 우선순위 방식의 동작 (a) 단계 : 현재 버스 사용 승인을 얻은 버스 마스터를 표시하는 포인터가 3을 가리키므로, 버스 마스터 3은 최하위 우선순위를 가지고 다음 버스 사용 승인을 기다린다. 다음에 위치한 버스 마스터 4는 버스 사용 승인을 얻기 위한 최고의 우선순위가 된다. (b) 단계 : 포인터가 6을 나타내고 있으므로 버스 마스터 6번이 지금 현재 버스 사용 승인을 얻어서 버스를 사용하는 것을 나타낸다. 또한 최저 우선순위가 버스 마스터 6번이라는 것을 나타낸다. 그리고, 바로 다음에 위치한 버스 마스터 7번이 최고 우선순위가 된다.
04 버스 중재 임의 우선순위 방식 동등 우선순위 방식 최소-최근 사용(LRU, Least-Recently Used) 방식 임의 우선순위 방식은 버스 사용 승인을 얻을 버스 마스터가 정해진 원칙 없이 임의로 결정된다. 버스 마스터들이 동일한 경우 사용할 수 있다. 여러 특징의 버스 마스터가 존재할 경우 비효율적일 수 있다. 동등 우선순위 방식 버스 마스터들이 동등한 우선순위를 가지며, 가장 먼저 버스 사용 요구를 한 버스 마스터가 버스 사용 승인을 먼저 받게 되는 것이 동등 우선순위 방식이다. 선입력 선출력(FIFO, First-In First-Out) 알고리즘을 사용하며, 우선순위를 결정하는 회로의 설계가 간단하다. 최소-최근 사용(LRU, Least-Recently Used) 방식 최근까지 가장 오랫동안 버스 요구 신호를 보내지 않은, 결과적으로 가장 최소로 버스를 사용한 버스 마스터에게 최상위 우선순위를 할당하는 방식이다. 버스 마스터가 어느 시기에 버스를 사용하였는지에 대한 정보가 필요하므로, 회로가 매우 복잡하다는 단점이 있다.
04 버스 중재 직렬 중재 방식 중앙 집중식 직렬 중재 방식 버스 요구 신호선과 버스 승인 신호선들에 버스 마스터와 버스 중재기가 일렬로 연결되는 방식이다. 중재기가 하나만 존재하느냐 아니면 여러 개 존재하느냐에 따라서 중앙집중식 직렬 중재 방식과 분산식 직렬 중재방식으로 분류된다. 중앙 집중식 직렬 중재 방식 버스 중재기에서 출력되는 버스사용 승인 BGNT의 신호 선이 하나로, 이 신호 선에 데이지-체인(daisy-chain)형태로 모든 버스 마스터들을 직렬로 연결한 구조다. 우선순위는 버스 중재기에서 버스승인신호 선에 연결된 버스 마스터의 순서대로 결정된다.
04 버스 중재 분산식 직렬 중재 방식 버스 마스터들은 각각의 독립적인 버스 중재기를 소유하고 있으며, 이 버스 중재기를은 순환형 구조를 형성한다. 그리고 이 버스 중재기들에 데이지-체인 버스 승인 신호(DBGNT, Daisy-chained Bus Grant Signal)가 순환하면서 버스 사용 승인을 허가하는 방식이다. 버스 사용 승인을 받으면 다음 중재 동작에서는 버스 사용의 최하위의 순위가 된다. 그리고 데이터를 전송 중인 버스 마스터의 우측에 이웃한 버스 마스터는 최상위 우선순위를 가지게 된다. 순환형 구조이므로 어느 한 중재기에서 결함이 발생하면 전체 시스템의 동작이 중단되는 단점이 있다.
04 버스 중재 폴링 방식(polling) 하드웨어 폴링 방식 버스 마스터가 버스의 사용을 원하고 있는지를 버스 중재기가 주기적으로 검사하여 버스 사용 승인 여부를 결정하는 방식이다. 버스 요구 신호 선 이외에 별도의 폴링을 위한 폴링 선(polling line)이 필요하며 하드웨어 폴링 방식과 소프트웨어 폴링 방식으로 분류한다. 하드웨어 폴링 방식 버스 중재기가 각 버스 마스터들에게 버스 사용 여부를 주기적으로 질의하기 위해, 폴링 선이라는 별도의 선을 버스 중개기와 각 버스 마스터 사이에 두는 구조다.
04 버스 중재 하드웨어 폴링 방식에서 우선순위의 결정 소프트웨어 폴링 방식 버스 중재기가 버스 마스터를 검사하는 순서에 의하여 정해진다. 검사할 버스 마스터의 번호 2진 카운터(binary counter)를 이용하여 구한다. 소프트웨어 폴링 방식 하드웨어 폴링 방식과 동일한 구성을 가지나 폴링의 순서와 과정을 소프트웨어로 수행하는 방식이다. 프로그램을 수행하려면 버스 중재기는 프로세서를 포함하여야 하며, 이 프로세서는 폴링 할 버스 마스터의 주소를 기억하고 순서에 맞게 과정을 진행하도록 하고 경우에 따라서 폴링의 순서를 변경하기도 한다. 우선순위 또는 폴링 순서의 변경이 용이하다. 그러나 프로그램을 실행해야 하므로 하드웨어 방식에 비하여 속도가 느리다는 단점이 있다.
Thank You IT CookBook, 컴퓨터 구조와 원리 2.0