Basics of System Bus and Bus Arbitration in Computer Architecture week12
시스템버스와 버스 중재, 컴퓨터 구조론 12주

Goals
시스템 버스를 이해하고 설명할 수 있다. (Understand and explain System bus)
버스 중재를 이해하고 설명할 수 있다. (Understand and explain Bus Arbitration)
Contents
✏️ 시스템 버스의 조직 (Structure of System bus)
✏️ 시스템 버스의 기본동작 (Basic operation of System bus)
✏️버스 중재 (Bus Arbitration)
병렬 중재 방식(Parallel Arbitration Scheme)
직렬 중재 방식(serial arbitration method)
폴링 방식(Polling scheme)
✏️시스템 버스 (System bus)
📍개요
(Overview of System bus)

컴퓨터 시스템의 구성 요소들(CPU, 기억장치, I/O Device)을 상호 연결해주는 중심 통로이다. 버스에서 사람이 타고 내리듯이 데이터도 사람처럼 오고가는 것이다. 이러한 버스는 CPU, 메모리, 입출력 장치 등의 하드웨어 구성 요소 간에 데이터를 전송하고 제어하는 데 사용된다.

**인터럽트 요구선(Interrupt request line)**은 컴퓨터 시스템에서 장치나 하드웨어 이벤트가 CPU에게 인터럽트를 발생시키도록 하는 데 사용된다. 이는 CPU가 현재 실행 중인 작업을 중단하고 특정 이벤트에 대한 처리를 수행할 수 있도록 한다.
📍조직
(Components of System bus)
시스템 버스는 컴퓨터 시스템 내에서 구성 요소들 간에 데이터와 제어 신호를 교환하는데 사용되는 선(line)들의 집합체이다. 시스템 버스의 구성은 다음과 같다.
버스(bus): 각종 정보를 전송하는 선(line)들의 집합체이다.
버스 선의 수: 전송하는 데이터 비트의 수(버스 숫 16개 = 16비트), 기억장치 주소 비트의 수, 그리고 제어 신호의 수에 따라 결정된다.
소형 컴퓨터: 50 ~ 100 개의 신호선을 사용할 수 있다.
중대형급 시스템: 100 개 이상의 신호선을 사용할 수 있다.
이렇게 구성된 시스템 버스는 컴퓨터 시스템 내에서 중요한 역할을 담당하여 데이터 및 제어 신호의 효율적인 전달을 보장합니다.
📍종류(Type of System bus)
기능에 따른 버스의 종류는 3가지이다. 전부 양방향인데 하나만 단반향이다. 주소버스가 단방향이다.

📌 데이터 버스(data bus):
시스템 요소들 간에 데이터를 전송하는 데 사용되는 선들의 집합이다.
양방향 전송(bidirectional transfer)을 지원한다.
버스 폭(선들의 수)은 CPU와 기억장치 사이에 한 번에 전송되는 비트 수를 나타낸다.
📌 주소 버스(address bus):
CPU가 기억장치로 (또는 기억장치로부터) 데이터를 쓰거나 읽을 때 해당 기억장소를 지정하는 주소를 전송하기 위한 선들의 집합이다.
단방향 전송(unidirectional transfer)을 지원한다.
주소 버스의 비트 수에 따라 시스템에 접속될 수 있는 전체 기억장치 용량이 결정된다. (주소버스 비트수가 2비트라면 기억장치 용량은 4개가 된다.)
직접 주소지정 할 수 있는 기억장소의 단위는 바이트(byte) 혹은 단어(word)로 표현한다.
📌 제어 버스(control bus):
- CPU와 기억장치 및 I/O 장치 사이에 제어 신호들을 전송하는 선들의 집합이다.

📍제어버스가 하는 일
(Role of Control bus)
제어 버스는 다음과 같은 기능을 수행한다.
기억장치 및 I/O 장치와의 데이터 교환을 위한 제어 신호들(Control signals for data exchange between memory and I/O devices)
기억장치 쓰기(memory write) 신호: 버스에 실린 데이터를 주소가 지정하는 기억장소에 저장되도록 하는 제어 신호
기억장치 읽기(memory read) 신호: 주소가 지정하는 기억장소의 내용을 읽어서 버스에 실리게 하는 제어 신호
I/O 쓰기(I/O write) 신호: 버스에 실린 데이터를 지정된 I/O 장치로 출력되게 하는 제어 신호
I/O 읽기(I/O read) 신호: 지정된 I/O 장치로부터 데이터를 읽어서 데이터 버스에 실리게 하는 제어 신호
버스 중재를 위한 제어 신호들(control signals for bus arbitration)
- 버스 중재에 사용되는 제어 신호들의 집합이다. 이러한 신호들의 집합을 **중재 버스(arbitration bus)**라고도 부른다.
인터럽트 메커니즘을 위한 제어 신호들(control signals for interrupt mechanism)
- 인터럽트 처리를 위한 제어 신호들의 집합이다. 이러한 신호들의 집합을 인터럽트 버스라고도 한다.
💡중재 버스(arbitration bus)
시스템 버스에 접속된 여러 개의 버스 마스터(bus master) 간의 우선권을 조정하기 위한 버스이다. 이 버스를 사용하여 여러 버스 마스터들이 동시에 버스에 접근하려고 할 때 이들 간의 충돌을 방지하고, 순차적으로 버스에 접근할 수 있도록 한다. 중재 버스는 다음과 같은 요소들로 구성된다.
버스 마스터 (bus master)
- 시스템 버스에 접속되는 요소 중에서 버스를 사용하는 주체가 되는 요소들이다. CPU, 기억장치 모듈, I/O 제어기 등이 버스 마스터가 될 수 있다. 모니터, 프린터 자체는 버스마스터가 아니다.
버스 중재 (bus arbitration):
- 시스템 버스에 접속된 두 개 이상의 버스 마스터가 동시에 버스를 사용하고자 할 때, 순서대로 한 개의 마스터씩 버스를 사용할 수 있도록 해주는 동작(Operation)이다. 동시에 사용하게 되면 버스 경쟁이 발생하게 된다.
중재 버스 (arbitration bus):
버스 중재를 위한 신호 선들의 집합으로, 버스 마스터들 간의 중재를 관리한다.
주요 신호로는 버스 요구(bus request) 신호, 버스 승인(bus grant) 신호, 버스 사용중(bus busy) 신호 등이 있다.

💡인터럽트 버스(Interrupt bus)
인터럽트 버스는 컴퓨터 시스템에서 발생한 인터럽트 신호를 처리하기 위한 특수한 버스이다. 이 버스를 통해 인터럽트 컨트롤러가 CPU에게 인터럽트를 알리고, CPU는 해당 인터럽트에 대한 처리를 시작한다.
인터럽트 요구 신호(Interrupt request): I/O 장치가 인터럽트를 요구했음을 알리는 신호이다.
인터럽트 확인 신호(Interrupt acknowledge, ack): CPU가 인터럽트 요구를 인식했음을 알리는 신호
💡그 이외의 제어 신호 (Other signals)
버스 클록 신호 (bus clock signal) 동기식(Dynamic0 버스에서 버스 동작들의 시작 시간을 일치시키기 위하여 제공되는 공통 클록 신호이다. 컴퓨터 사양에서 버스 클락이 어떤지 확인할 수 있다.
리셋 신호 (reset signal) 모든 시스템 요소들의 동작을 초기화시키는 신호를 뜻한다.
📌버스 대역폭(bus bandwidth)
버스 대역폭은 버스의 속도를 나타내는 척도이다. 버스가 데이터를 얼마나 빠르게 전송할 수 있는지를 뜻한다. 단위 시간당 전송할 수 있는 데이터 양을 나타내며 한마디로 "버스 데이터 전송 속도"이다. 위에 언급된 버스 클록의 주기에 의해 결정된다.
[예] 버스 클록의 주기: 50 ns (클록 주파수= 20 MHz) 데이터 버스의 폭: 64 비트(= 8 바이트)
버스 대역폭 = 8 바이트 / (50 × 10^-9 sec) = 160 Mbytes/sec
클록 주파수는 역수의 관계로 20MHz이다.
이 버스를 통해 초당 약 1억 6천 바이트의 데이터를 전송할 수 있다.
📍제어버스의 기본동작
(Basic operation of Control bus)
시스템 버스의 기본 동작에는 쓰기(write)와 읽기(read) 동작이 포함된다. 제어 신호의 전송을 통해 이러한 동작들이 이루어진다.
쓰기 동작(Write operation)
버스 마스터가 버스 사용권 획득한다.
제어버스를 통하여 주소버스와 데이터버스 및 쓰기 신호를 전송한다.
읽기 동작(Read operation)
버스 마스터가 버스 사용권 획득한다.
주소와 읽기 신호를 보내고, 데이터가 전송되어 올 때까지 대기한다.
💡버스 동작의 타이밍에 따른 버스의 분류(Classification of buses based on bus operation timing)

- 📌동기식 버스(synchronous bus) 앞에서 언급된 버스 클록을 이용때 이용한다. 시스템 버스에서 모든 버스 동작들이 공통의 버스 클록을 기준으로 발생한다.
📌비동기식 버스(asynchronous bus) 버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정된다. 시간에 구애받지 않고 작업, 명령에 따라 순차적으로 쭉 진행한다. 버스 클록을 사용하지 않는다.
💡동기식 버스와 비동기식 버스 비교 (Comparison with Synchronous and Asynchronous bus)
일반적으로 소규모 컴퓨터에서는 비동기식(**Asynchronous)**버스를 사용하고, 중대형 이상의 컴퓨터에서는 동기식(Synchronous) 버스를 사용하는 경향이 있다.
📌동기식 버스(Synchronous bus)
장점(Pros of Synchronous bus)
- 버스 클록을 사용하기 때문에 이의 타이밍에 맞춰 동작시키면 되기 때문에 인터페이스 회로가 간단합니다.
단점(Cons of Synchronous bus)
- 버스 클럭의 주기가 가장 오래 걸리는 버스 동작의 소요 시간을 기준으로 결정된다. 따라서 클록 주기보다 더 짧은 시간이 걸리는 버스 동작의 경우에는 동작이 완료된 후에도 다음 주기가 시작될 때까지 대기해야 한다. 1초 vs 10초 작업의 경우 시간 낭비가 된다.
📌비동기식 버스(Asynchronous bus)
장점(Pros of Asynchronous bus)
- 각 버스 동작이 완료 즉시 연관된 다음 동작이 발생하기 때문에 동기식 버스에서와 같이 낭비되는 시간이 없다.
단점(Cons of Asynchronous bus)
- 연속적 동작을 처리하기 위한 인터페이스 회로가 복잡하다. 특히 중형급 컴퓨터가 되면 회로가 너무 복잡해서 구현이 불가능하다.
✏️버스 중재
(Bus Arbitration)
위에서 잠깐 언급된 버스 중재(Bus Arbitration)에 대해 좀 더 자세히 배워보자
📍버스 중재의 기본적인 동작 방식
(Basic operation of Bus arbitration)
Bus contention, bus arbitration, and bus arbiter are not independent concepts but should be understood as interconnected within a single flow. When contention occurs, arbitration is required, and arbitration is executed by the arbiter. Therefore, it is important to understand how these three interact within a system.
버스 경합, 버스 중재, 버스 중재기는 서로 독립적인 개념이 아니라, 하나의 흐름 속에서 이해되어야 하는 연관된 개념이다. 경합이 발생하면 중재가 필요하고, 중재는 중재기에 의해 실행되기 때문에, 이 세 가지가 하나의 시스템 내에서 어떻게 상호작용하는지를 이해하는 것이 중요하다.
📌버스 경합 (Bus Contention)
버스 경합은 여러 개의 버스 마스터가 동시에 버스 사용을 요청하는 현상이다. 이 때, 여러 장치들이 동일한 버스를 동시에 접근하려 하면 충돌이 발생해서 시스템 오류가 발생한다. 이를 어떻게 처리하느냐가 시스템의 성능과 안정성에 큰 영향을 미친다.
📌버스 중재 (Bus Arbitration)
버스 중재는 버스 경합이 발생할 경우, 특정 규칙(우선 순위 결정 방식, Priority determination method)따라 버스 마스터들 중에서 한개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작(operation)/ 매커니즘을 말한다. 이를 통해 충돌을 방지하고 효율적으로 버스를 사용할 수 있도록 순서를 정해준다. 버스 중재는 버스 경합 문제를 해결하기 위한 필수적인 과정이다.
Priority determination methoddetails below
📌버스 중재기 (Bus Arbiter)
버스 중재기는 이러한 경합 상황을 해결하기 위해 존재하는 하드웨어 모듈이다. 버스 중재기는 다양한 알고리즘을 사용하여 어느 버스 마스터가 버스를 사용할지 결정한다. 즉 물리적으로 버스 중재를 실행하는 역할이다.
📍요약
(Summary of basic operation)
현상(Phenomenon) 버스 경합 (Bus Contention)
동작/과정(Operation/process) 버스 중재 (Bus Arbitration)
하드웨어 모듈/장치(Hardware module, device) 버스 중재기 (Bus Arbiter)
위에서 버스 경합(Bus Contention)은 여러 버스 마스터가 동시에 버스를 사용하려고 할 때 발생하는 문제로, 모든 중재 방식에서 해결해야 하는 공통적인 문제이다. 버스 중재기(Bus Arbiter)는 이러한 문제를 해결하기 위한 하드웨어 모듈이다. 이를 이용해 구현하는 방법은 제어 신호의 연결 구조와 버스 중재기의 위치에 따라 결정된다.
📍버스 중재기를 구현하는 방법 1 - 제어 신호의 연결 구조
(Specific methods for implementing bus arbitration 1 - Connection structure of control signals )
이 방법은 주로 버스 마스터들 간의 통신 구조가 기반이 된다. 제어 신호들의 연결 구조에 따라 병렬 중재 방식(parallel arbitration scheme)과 직렬 중재 방식(serial arbitration scheme)으로 분류할 수 있다. 자세히 알아보자.
📌병렬 중재 방식 (Parallel Arbitration Scheme)
독립적인 버스 요구 및 승인 신호(Independent bus requests and grants) 각 버스 마스터는 독립적으로 버스 요구 신호를 발생시키고, 별도의 버스 승인 신호를 받는다.
다수의 신호 선(multiple signal lines) 버스 마스터의 수만큼 버스 요구 선과 승인 신호 선이 필요하다.
🙂장점(Pros of Parallel Arbitration Scheme)
빠른 응답 시간(fast response) 각 버스 마스터가 독립적으로 신호를 주고받기 때문에, 중재 결정이 빠르게 이루어질 수 있다.
병렬 처리 가능(parallel processing capability) 여러 신호가 동시에 처리될 수 있어 시스템의 처리 속도가 높아진다.
🙃단점(Cons of Parallel Arbitration Scheme)
복잡한 배선(complex wiring) 많은 수의 버스 요구 및 승인 신호 선이 필요하므로, 배선이 복잡해지고 설계가 어렵다.
비용 증가(increased cost) 필요한 신호 선이 많아짐에 따라 하드웨어 비용이 증가한다.
📌직렬 중재 방식 (Serial Arbitration Scheme)
- 단일 버스 요구 및 승인 신호(single bus request and grant) 버스 요구와 승인 신호 선이 각각 하나씩만 존재한다. 위에서 언급된 병렬과 반대이다. 이 신호 선은 버스 마스터들 간에 직렬로 연결된다.
🙂장점(Pros of Serial Arbitration Scheme)
간단한 배선(simple wiring) 단일한 신호 선을 사용하므로 배선이 간단하고 설계가 용이하다.
저비용(decreased cost) 신호 선의 수가 적어 하드웨어 비용이 낮아진다.
🙃단점(Cons of Serial Arbitration Scheme)
느린 응답 시간(slow response) 모든 버스 마스터가 직렬로 연결되어 있기 때문에, 중재 과정에서 시간이 더 걸릴 수 있습니다.
확장성 제한(limited scalability) 버스 마스터의 수가 늘어날수록 직렬 중재 방식의 효율성이 떨어질 수 있습니다.
결론(Conclusion)
병렬 중재 방식은 빠른 응답 시간이 필요하고, 복잡한 배선을 감수할 수 있는 경우에 적합합니다. 주로 고성능 시스템에서 사용된다.
직렬 중재 방식은 배선이 간단하고 비용이 낮은 것이 중요한 경우에 적합하다. 주로 저성능 시스템이나 단순한 시스템에서 사용된다.
📍버스 중재 방식을 구현하는 방법 2 - 버스 중재기의 위치
(A common approach to implementing arbitration methods - position of Bus Arbiter)
이 방법은 버스 중재기의 위치를 기준으로 중재를 수행한다. 중앙집중식과 분산식으로 나눌 수 있다.
📌중앙집중식 중재 방식 (Centralized Arbitration Scheme)
개요(overview) 이 방식에서는 시스템 내에 버스 중재기가 1개만(centralized) 존재한다.
동작(operation) 버스 마스터들이 발생하는 버스 요구 신호들은 이 중재기로 집중되며, 중재기는 정해진 중재 원칙에 따라 선택한 버스 마스터에게 승인 신호를 발생시킨다.
특징(feature)
시스템 내에 중앙 집중된 하나의 중재기로 모든 중재 동작이 이루어지므로, 중재 프로세스가 중앙집중적이다.
중재 기능에 대한 통제가 중재기에 집중되어 있으며, 중재기는 모든 버스 마스터들의 상태를 알고 있다.
시스템의 단일 지점에서 중재가 이루어지기 때문에 중재 지연이 발생할 수 있다.
📌분산식 중재 방식 (Decentralized Arbitration Scheme)
개요(overview) 이 방식에서는 여러 개의 버스 중재기가 존재한다. 일반적으로 각 버스 마스터가 중재기를 한 개씩 소유하게 된다.
동작(operation) 각 버스 마스터는 자신의 중재기에게 버스 요구를 전달하고, 각 중재기는 독립적으로 중재를 수행하여 해당 버스 마스터에게 승인을 부여한다. (좀 복잡한 형태)
특징(feature)
시스템 내에 분산된 중재기들이 동작하기 때문에 중재 프로세스가 분산적(decentralized).
각 버스 마스터는 자신의 중재기에 대한 통제를 갖고 있으며, 중재기는 해당 마스터의 상태에 대한 정보만을 알고 있다.
분산된 중재기들은 각자의 결정을 독립적(independent)으로 내리기 때문에 중앙집중식보다는 병렬적이고 병행적인 중재가 가능하다.
📌결론(Conclusion)
중앙집중식 중재 방식은 시스템 내에 단일한 중재기가 존재하며, 중재 프로세스가 중앙집중적으로 이루어진다.
분산식 중재 방식은 여러 개의 중재기가 분산되어 있으며, 중재 프로세스가 분산적으로 이루어진다.
📍버스 중재 방식을 구현하는 방법 3 - 우선 순위 결정 방식
(A common approach to implementing arbitration methods - Priority determination method )
버스 중재는 버스 경합이 발생할 경우, 특정 규칙(우선 순위 결정 방식, Priority determination method)따라 버스 마스터들 중에서 한개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작(operation)을 말한다.
위의 내용에서 '특정 규칙'이란 버스 중재에서 사용되는 우선 순위 결정 방식이다. 크게는 병렬 중재 방식, 직렬 중재 방식 기준으로 나뉜다. 이 우선 순위 결정 방식에 대해 배워보자.
병렬 중재 방식은 우선순위의 결정 방식에 따라 고정-우선순위 방식(fixed-priority scheme)과 가변-우선순위 방식(dynamic-priority scheme)으로 분류된다.
📌고정-우선순위 방식 (Fixed-Priority Scheme)
개요(overview) 이 방식에서는 각 버스 마스터에게 미리 지정된 우선순위가 고정되어 있다.
동작(operation) 버스 마스터들은 지정된 우선순위에 따라 중재를 시도하며, 우선순위가 높은 마스터가 우선적으로 버스를 사용할 수 있다.
특징(feature) 각 버스 마스터의 우선순위가 고정되어 있기 때문에 시스템이 동작하는 동안 우선순위가 변경되지 않는다. 정적인 구조이므로 구현이 비교적 간단하고 예측 가능하다.
📌가변-우선순위 방식 (Dynamic-Priority Scheme):
개요(overview)이 방식에서는 우선순위를 동적(Dynamic)으로 변경할 수 있다.
동작(operation) 시스템의 상황에 따라 버스 마스터의 우선순위가 동적으로 조정된다. 예를 들어, 특정 마스터의 요청이 빈번하게 발생할 경우 해당 마스터의 우선순위를 높일수있다.
특징(feature) 우선순위가 동적으로 조정되기 때문에 시스템의 상황에 따라 유연하게 대응할 수 있다. 이에 따라 시스템의 복잡성을 증가되어, 구현이 좀 더 복잡할 수 있다.
💡병렬 중재 방식
(Parallel Arbitration Scheme)
중앙집중식 고정-우선순위방식, 분산식 고정-우선 순위 방식, 가변-우선 순위 방식 3가지로 세분화되어있다.
1️⃣ 중앙집중식 / 고정-우선순위 중재방식
(Centralized Arbitration Fixed-Priority Scheme)
중앙집중식이면서, 고정-우선순위 중재방식이다. 두가지 방식의 특징을 모두 가지고있다.

- 위의 그림에서는 중재기와 가장 가까이 위치한 버스 마스터 1이 가장 높은 우선순 위, 버스 마스터 4가 가장 낮은 우선순위를 가지는 것으로 가정하고 있다.
모든 버스 마스터들이 하나의 버스 중재기에 접속한다. (중앙집중식)
각 버스 마스터는 미리 정해진 우선순위를 가지며, 가장 가까이 위치한 버스 마스터가 가장 높은 우선순위를 가진다. (고정-우선순위)
버스를 사용하고자 하는 마스터는 버스 중재기에게 버스 접근을 요청하기 위해 BREQ (Bus Request) 신호를 세트한다. (화살표, BREQ1)
버스 중재기는 받은 요청 중 가장 높은 우선순위를 가진 마스터에게 BGNT (Bus Grant) 신호를 세트하여 버스 사용을 허용한다. (화살표, BGNT1)
해당 마스터가 버스를 사용을 마치면 BBUSY (Bus Busy) 신호를 해제하고, 다른 마스터에게 버스 사용을 허용한다. BBUSY위에는 직선의 선은 이진법으로 표시한다 1, 0 . (그림 참조)

- 버스마스터의 우선 순위대로 정렬되어있다.
2️⃣ 분산식 / 고정-우선순위 방식
(decentralized Arbitration Fixed-Priority Scheme)
분산식과 고정-우선순위 방식이 섞여있다.

모든 버스 마스터들이 중재기를 한 개씩 보유한다. (분산식)
중재 동작 (고정-우선순위 방식)
각 중재기는 자신보다 더 높은 우선순위를 가진 마스터들의 버스 요구 신호들을 받아서 검사한다. 만약 그들이 버스 사용을 요구하지 않은 경우에만(교수님말로는 눈치를 본다고한다) 자신의 버스 마스터로 버스 승인 신호를 발생시킨다. 누군가 사용하고 있다면 승인 신호를 못 보낸다.
승인 신호를 받은 버스 마스터는 BBUSY 신호를 검사하여, 비활성화 상태(다른 마스터가 버스를 사용하지 않는 상태)일 때 버스 사용을 시작한다.
장점(Pros)
- 중앙집중식에 비해 중재 회로가 간단하여 동작 속도가 빠르다.
단점(Cons)
고장을 일으킨 중재기를 찾아내는 방법이 복잡하다.
중재기의 고장이 전체 시스템의 동작에 영향을 미칠 수 있다.
3️⃣ 가변-우선순위 방식 (Dynamic-Priority Scheme):
개요(overview) 시스템의 상태(또는 조건)에 따라 각 버스 마스터들의 우선순위를 계 속 변화시키는 방식이다. 장점으로는 중재 회로가 복잡하고 단점으로는 모든 마스터들이 공정하게 버스를 사용할 수 있게 해준다.
종류(Type of Dynamic Priority Scheme)
📌회전 우선순위(rotating priority) 방식
방법1 - 중재 동작이 끝날 때마다 우선순위 조정: 중재가 발생할 때마다 모든 마스터들의 우선순위를 한 단계씩 낮추고, 우선순위가 가장 낮은 마스터가 다음에 최상위 우선순위를 가지도록 한다.
방법2 - Acceptance-dependent 회전 우선순위 방식: 버스 사용 승인을 받은 마스터는 최하위 우선순위를 가지며, 그 다음에 위치한 마스터가 최상위 우선순위를 가지도록 한다. 즉, 버스 사용 승인을 받은 마스터가 다음 중재에서는 가장 낮은 우선순위를 가지게 된다.

- 숫자들은 버스마스터를 의미한다
- 그림에서 보듯이 승인된 버스마스터는 최저 우선순위를 가지고 그다음 버스마스터는 최고 우선순위를 가지고있다.
📌동등 우선순위 방식(Equal priority method) 모든 마스터들이 동등한 우선순위를 가지며, FIFO(First-In First-Out) 알고리즘을 사용한다. 이 방식은 모든 마스터가 공평한 기회를 갖도록 보장한다.
📌임의 우선순위 방식(Random priority method) 각 중재 동작이 끝날 때마다 우선순위를 임의로 결정한다. 이 방식은 중재 과정에서 우선순위를 동적으로 변경할 수 있어, 다양한 상황에 유연하게 대처할 수 있다.
📌최소-최근 사용(Least-Recently Used: LRU) 방식: 최근 가장 오랫동안 버스를 사용하지 않은 버스 마스터에게 최상위 우선순위를 할당한다. 이 방식은 가장 오랫동안 사용되지 않은 마스터가 우선순위를 얻어 공정한 중재를 가능하게 한다. 단점으로는 회로가 매우 복잡할 수 있다.
💡직렬 중재 방식
(serial arbitration method)
직렬 중재 방식은 중앙 집중식과 분산식 중재 방식으로 세분화할 수 있다.
1️⃣ 중앙 집중식 직렬 중재 방식 (Centralized serial arbitration method)
중앙집중식 직렬 중재 방식은 다음과 같은 특징을 가진다.
하나의 버스 사용승인 신호선(BGNT)이 데이지-체인(daisy-chain) 형태로 모든 버스 마스터들을 직렬로 연결된다. 이는 각 마스터가 연결된 순서대로 우선순위가 결정된다는 것을 의미한다. 버스 요구를 보낸 마스터들 중에서 중재기에 가장 가까이 위치한(우선순위가 가장 높은) 마스터에게 승인 신호가 전달되면 그 마스터가 버스 사용권을 획득한다.
동작 원리(How it works)

버스를 사용하고자 하는 한 개 이상의 마스터가 BREQ 신호를 설정합니다. (직렬이라서 BREQ신호는 하나만 존재한다)
버스 중재기는 데이지 체인의 첫 번째에 접속된 마스터로부터 승인 신호(BGNT)를 전송합니다.
BGNT 신호를 받은 마스터는 버스를 요구한 상태라면 버스 사용권을 가지게 되고, 요구하지 않은 상태라면 승인 신호를 다음에 연결된 마스터로 전달한다.
승인 신호는 버스를 요구한 마스터에게 도달할 때까지 계속해서 전달된다.
버스 요구를 보낸 마스터들 중에서 중재기에 가장 가까이 위치한(우선순위가 가장 높은) 마스터에게 승인 신호가 전달되면 그 마스터가 버스 사용권을 획득하게 된다. (버스마스터 2, BBUSY신호 전달 확인 가능, 2-N사이에서 BGNT가 잠시 끊겨있음)
이러한 방식은 버스 마스터들 간의 우선순위를 결정하는 데에 데이지-체인 형태의 구조를 활용하고, 연결된 순서에 따라 중재를 수행하여 각 마스터가 버스를 사용할 수 있는 기회를 제공합니다.
2️⃣ 분산식 직렬 중재 방식 (Centralized serial arbitration method)
분산식 직렬 중재 방식은 다음과 같은 특징을 가진다.
구성(Basic overview)
- 버스 중재기들은 데이지-체인 버스 승인 신호(DBGNT, daisy-chained bus grant signal)선으로 순환형으로 연결된다. 분산식이라 중재기가 많기 떄문에 이런 디자인을 택한걸로 보인다.
동작 원리(How it works)

데이지-체인으로 인해 중재기 주변이 체인처럼 연결되어 있다.
버스 사용권을 획득한 마스터가 버스 사용을 시작하면 (해당 마스터의 중재기는) 자신의 우측에 위치한 마스터의 중재기로 연결된 DBGNT 신호를 설정한다. (중재기2)
만약 해당 마스터가 버스 사용을 요청하고 기다리는 상태였다면, 중재기는 즉시 DBGNT 신호를 받아들여 BGNT 신호를 생성하여 해당 마스터로 전송한다. ( n에서 1)
DBGNT 신호를 받은 마스터가 버스를 요구하지 않은 경우, 해당 신호는 우측의 다음 중재기로 전달된다. 이러한 과정은 버스를 요청한 마스터에 도달할 때까지 반복됩니다.
특징(Feature)
각 마스터의 우선순위가 계속 변화한다.
버스 사용 승인을 받으면 다음 중재 동작에서는 최하위 우선순위를 가지며, 버스를 사용한 마스터의 바로 우측에 위치한 마스터가 최상위 우선순위를 가진다.
순환형 구조에서 DBGNT 신호가 연결된 순서대로 우선순위가 결정된다.
단점(Cons)
- 어느 한 지점에만 결함이 발생해도 전체 시스템의 동작이 중단될 수 있다.
💡폴링방식(Polling scheme)
폴링 방식은 버스 사용을 원하는 마스터가 있는지를 주기적으로 검사하여 사용 승인 여부를 결정하는 방식이다. 상당히 능동적인 방식이다. 하드웨어방식과, 소프트웨어 방식이 있다. 다음과 같은 특징을 가진다.
구성:
하드웨어방식과, 소프트웨어 방식이 있다.
하드웨어 폴링: 버스 중재기와 각 버스 마스터 간에 별도의 폴링 선(polling line)이 존재한다.
소프트웨어 폴링: 2진 코드화된 폴링 주소(binary encoded polling address)를 이용하여 폴링 선의 수가 log2N 개로 감소한다.
공통의 BREQ 선과 BBUSY 선이 각각 한 개씩 존재한다.
동작 순서:
중재기는 폴링 주소를 발생하여 검사할 마스터를 지정한 다음, 그 마스터가 버스 사용을 원하는지 원하지 않는지 검사한다.
지정된 마스터가 버스 사용을 원하면 BREQ 신호를 설정한다.
BREQ 신호가 설정되면, 중재기는 현재 검사 중인 마스터에게 버스 사용을 허가하고, 그렇지 않으면(지정된 마스터가 버스 사용을 원하지 않으면) 다음 마스터들에 대한 검사를 순서대로 진행한다. 이것을 반복한다.
우선순위 결정 방법:
중재기가 마스터를 검사하는 순서에 따라 우선순위가 결정된다.
검사할 마스터의 번호는 2진 카운터(binary counter)를 이용하여 발생한다.

소프트웨어 폴링 방식 디테일
폴링의 순서와 과정을 버스 중재기 내의 프로세서가 관장하는 방식이다.
단점: 프로그램 실행해야 하므로 하드웨어 방식에 비하여 속도가 더 느리다.
장점: 우선순위(폴링순서)의 변경이 용이하다.
- 폴링 주소선은 많지만 BREQ, BBUSY의 선은 하나만 있음을 확인할 수 있다.
퀴즈(Quiz)


학습정리(Summary)





