|
| 1 | +--- |
| 2 | +sidebar_position: 11 |
| 3 | +title: 시스템버스, I/O 및 인터럽트 |
| 4 | +description: 시스템 버스, 입출력(I/O) 장치 및 인터럽트 처리에 대한 개념과 동작 원리를 설명합니다. |
| 5 | +--- |
| 6 | + |
| 7 | +## 1. 시스템 버스 (System Bus) |
| 8 | + |
| 9 | +시스템 버스는 CPU, 기억장치, I/O 장치 등 컴퓨터 시스템의 구성 요소들을 상호 연결해주는 중심 통로입니다. |
| 10 | + |
| 11 | +### 1.1. 시스템 버스의 조직 |
| 12 | + |
| 13 | +시스템 버스는 정보를 전송하는 여러 개의 선(line)들로 구성되며, 이 선들의 수는 전송하는 데이터 비트 수, 기억장치 주소 비트 수, 제어 신호 수에 따라 결정됩니다. 소형 컴퓨터는 50~100개, 중대형 시스템은 100개 이상의 신호선을 사용합니다. |
| 14 | + |
| 15 | +#### 기능에 따른 버스의 종류 |
| 16 | + |
| 17 | +- **데이터 버스 (Data Bus):** |
| 18 | + - 시스템 요소들 사이에 데이터를 전송하는 데 사용되는 선들의 집합입니다. |
| 19 | + - **양방향 전송(bidirectional transfer)**이 가능합니다. |
| 20 | + - 버스 폭(선들의 수)은 CPU와 기억장치 사이에 한 번에 전송되는 비트 수를 의미합니다. |
| 21 | +- **주소 버스 (Address Bus):** |
| 22 | + - CPU가 기억장치로(부터) 데이터를 쓰거나 읽을 때, 해당 기억장소를 지정하는 주소를 전송하기 위한 선들의 집합입니다. |
| 23 | + - **단방향 전송(unidirectional transfer)**으로 CPU에서 기억장치 및 I/O 제어기로 전송됩니다. |
| 24 | + - 주소 버스의 비트 수에 따라 시스템에 접속될 수 있는 전체 기억장치 용량이 결정됩니다. |
| 25 | + - 예시: |
| 26 | + - 16비트 주소 버스 = 2^16 = 64K개 주소 지정 가능 (바이트 단위 시 64Kbyte, 32비트 단어 단위 시 256Kbyte). |
| 27 | + - 24비트 주소 버스 = 2^24 = 16M개 주소 지정 가능 (바이트 단위 시 16Mbyte, 32비트 단어 단위 시 64Mbyte). |
| 28 | +- **제어 버스 (Control Bus):** |
| 29 | + - CPU와 기억장치 및 I/O 장치 사이에 제어 신호들을 전송하는 선들의 집합입니다. |
| 30 | + - 주요 제어 신호들은 다음과 같습니다: |
| 31 | + - 기억장치 쓰기 (memory write) 신호: 버스에 실린 데이터를 지정 기억장소에 저장. |
| 32 | + - 기억장치 읽기 (memory read) 신호: 지정 기억장소의 내용을 읽어 버스에 실음. |
| 33 | + - I/O 쓰기 (I/O write) 신호: 버스에 실린 데이터를 지정 I/O 장치로 출력. |
| 34 | + - I/O 읽기 (I/O read) 신호: 지정 I/O 장치로부터 데이터를 읽어 데이터 버스에 실음. |
| 35 | +- **중재 버스 (Arbitration Bus):** |
| 36 | + - 버스 중재를 위한 제어 신호들의 집합입니다. |
| 37 | + - 버스 요구 (bus request) 신호: 버스 마스터가 버스 사용을 요구. |
| 38 | + - 버스 승인 (bus grant) 신호: 버스 사용을 요구한 마스터에게 사용 허가. |
| 39 | + - 버스 사용중 (bus busy) 신호: 현재 버스가 사용되고 있음을 나타냄. |
| 40 | +- **인터럽트 버스 (Interrupt Bus):** |
| 41 | + - 인터럽트 메커니즘을 위한 제어 신호들의 집합입니다. |
| 42 | + - 인터럽트 요구 (interrupt request) 신호: I/O 장치가 인터럽트를 요구. |
| 43 | + - 인터럽트 확인 (interrupt acknowledge) 신호: CPU가 인터럽트 요구를 인식. |
| 44 | +- **그 외 제어 신호:** |
| 45 | + - 버스 클록 (bus clock) 신호: 동기식 버스에서 버스 동작 시작 시간을 일치시키는 공통 클록. |
| 46 | + - 리셋 (reset) 신호: 모든 시스템 요소들의 동작을 초기화. |
| 47 | + |
| 48 | +### 1.1. 버스 대역폭 (Bus Bandwidth) |
| 49 | + |
| 50 | +버스 대역폭은 버스의 속도를 나타내는 척도로, 단위 시간당 전송할 수 있는 데이터 양을 의미하며, 버스 클록 주기에 의해 결정됩니다. |
| 51 | + |
| 52 | +- 예시: 버스 클록 주기 50ns (클록 주파수 20MHz), 데이터 버스 폭 64비트(8바이트) |
| 53 | +- 버스 대역폭 = 8byte / (50 × 10^-9 sec) = 160 Mbytes/sec |
| 54 | +- 이는 초당 1억 6천만 바이트의 데이터 전송이 가능함을 의미합니다. |
| 55 | + |
| 56 | +### 1.3. 시스템 버스의 기본 동작 |
| 57 | + |
| 58 | +- **쓰기 동작 (Write Operation) 순서:** |
| 59 | + 1. 버스 마스터가 버스 사용권 획득. |
| 60 | + 2. 버스를 통해 주소, 데이터, 쓰기 신호 전송. |
| 61 | +- **읽기 동작 (Read Operation) 순서:** |
| 62 | + 1. 버스 마스터가 버스 사용권 획득. |
| 63 | + 2. 주소와 읽기 신호를 보내고, 데이터가 전송되어 올 때까지 대기. |
| 64 | + |
| 65 | +### 1.4. 버스 동작의 타이밍에 따른 버스 분류 |
| 66 | + |
| 67 | +- **동기식 버스 (Synchronous Bus):** |
| 68 | + - "시스템 버스에서 모든 버스 동작들이 공통의 버스 클록을 기준으로 발생함." |
| 69 | + - 장점: 인터페이스 회로가 간단합니다. |
| 70 | + - 단점: 버스 클록 주기가 가장 오래 걸리는 동작 시간을 기준으로 결정되므로, 더 짧은 동작의 경우 낭비되는 시간이 발생합니다. 일반적인 컴퓨터 시스템에서 사용됩니다. |
| 71 | +- **비동기식 버스 (Asynchronous Bus):** |
| 72 | + - "버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정됨." |
| 73 | + - 장점: 각 버스 동작 완료 즉시 다음 동작이 발생하여 시간 낭비가 없습니다. |
| 74 | + - 단점: 연속적 동작을 처리하기 위한 인터페이스 회로가 복잡합니다. 소규모 컴퓨터에 사용됩니다. |
| 75 | + |
| 76 | +## 2. 버스 중재 (Bus Arbitration) |
| 77 | + |
| 78 | +- **버스 경합 (Bus Contention):** |
| 79 | + - "한 개의 시스템 버스에 접속된 여러 개의 버스 마스터들이 동시에 버스 사용을 요구하는 현상." |
| 80 | +- **버스 중재 (Bus Arbitration):** |
| 81 | + - "버스 경합이 발생하는 경우, 어떤 기준에 따라 버스 마스터들 중에서 한 개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작." |
| 82 | +- **버스 중재기 (Bus Arbiter):** |
| 83 | + - 버스를 중재하는 하드웨어 모듈입니다. |
| 84 | + |
| 85 | +### 2.1. 제어 신호들의 연결 구조에 따른 중재 방식 분류 |
| 86 | + |
| 87 | +- **병렬 중재 방식 (Parallel Arbitration Scheme):** |
| 88 | + - 각 버스 마스터가 독립적인 버스 요구 신호와 별도의 버스 승인 신호를 받습니다. |
| 89 | + - 버스 마스터 수와 같은 개수의 버스 요구 선 및 승인 신호선이 필요합니다. |
| 90 | +- **직렬 중재 방식 (Serial Arbitration Scheme):** |
| 91 | + - 버스 요구 및 승인 신호 선이 각각 한 개씩만 존재하며, 각 신호 선을 버스 마스터들 간에 직렬로 접속하는 방식입니다. |
| 92 | + |
| 93 | +### 2.2. 버스 중재기의 위치에 따른 분류 |
| 94 | + |
| 95 | +- **중앙집중식 중재 방식 (Centralized Arbitration Scheme):** |
| 96 | + - 시스템 내에 버스 중재기가 한 개만 존재합니다. |
| 97 | + - 버스 마스터들의 요구 신호를 받아 중재기가 원칙에 따라 선택된 마스터에게 승인 신호를 발생시킵니다. |
| 98 | +- **분산식 중재 방식 (Decentralized Arbitration Scheme):** |
| 99 | + - 여러 개의 버스 중재기들이 존재하며(일반적으로 각 버스 마스터가 중재기를 가짐), 각 마스터의 중재기에 의해 버스 중재가 이루어집니다. |
| 100 | + |
| 101 | +### 2.3. 우선순위 결정 방식에 따른 분류 |
| 102 | + |
| 103 | +- **고정-우선순위 방식 (Fixed-Priority Scheme):** |
| 104 | + - 각 버스 마스터에 지정된 우선순위가 고정되어 있습니다. |
| 105 | + - 중앙집중식 고정-우선순위 중재 방식: 모든 버스 마스터가 하나의 버스 중재기에 접속합니다. |
| 106 | + - 중재기와 가까운 마스터가 높은 우선순위를 가집니다. |
| 107 | + - 동작 예시: 마스터 3이 요구하고 마스터 1이 사용 중일 때, 마스터 1이 사용을 끝내면 마스터 3에게 승인됩니다. |
| 108 | + - 분산식 고정-우선순위 방식: 모든 버스 마스터가 중재기를 한 개씩 보유합니다. |
| 109 | + - 각 중재기는 자신보다 높은 우선순위 마스터들의 요구를 검사하여 요구가 없을 때만 자신의 마스터에게 승인 신호를 발생시킵니다. |
| 110 | + - 장점: 중앙집중식보다 중재 회로가 간단하고 동작 속도가 빠릅니다. |
| 111 | + - 단점: 고장난 중재기를 찾기 복잡하고, 한 중재기의 고장이 전체 시스템에 영향을 미칠 수 있습니다. |
| 112 | +- **가변-우선순위 방식 (Dynamic-Priority Scheme):** |
| 113 | + - 우선순위를 시스템 상태에 따라 계속 변화시키는 방식입니다. |
| 114 | + - 장점: 모든 마스터들이 공정하게 버스를 사용할 수 있습니다. |
| 115 | + - 단점: 중재 회로가 복잡합니다. |
| 116 | + - 종류: |
| 117 | + - 회전 우선순위 (rotating priority) 방식: |
| 118 | + - 방법 1: 중재 동작 후 모든 마스터의 우선순위가 한 단계씩 낮아지고, 가장 낮았던 마스터가 최상위가 됩니다. |
| 119 | + - 방법 2: 버스 사용 승인을 받은 마스터는 최하위 우선순위를 갖고, 바로 다음 마스터가 최상위가 됩니다. |
| 120 | +- **동등 우선순위 방식:** |
| 121 | + - 모든 마스터가 동등한 우선순위를 가지며, FIFO(First-In First-Out) 알고리즘을 사용합니다. |
| 122 | +- **임의 우선순위 방식:** |
| 123 | + - 각 중재 동작이 끝날 때마다 우선순위를 임의로 결정합니다. |
| 124 | +- **최소-최근 사용 방식 (LRU, Least-Recently Used):** |
| 125 | + - 최근 가장 오랫동안 버스를 사용하지 않은 버스 마스터에게 최상위 우선순위를 할당합니다. (회로가 매우 복잡) |
| 126 | + |
| 127 | +### 2.4. 직렬 중재 방식 (Serial Arbitration Scheme) |
| 128 | + |
| 129 | +- **중앙집중식 직렬 중재 방식:** |
| 130 | + - 하나의 버스 사용 승인 신호선(BGNT)이 데이지-체인(daisy-chain) 형태로 모든 버스 마스터들을 직렬로 연결합니다. |
| 131 | + - 우선순위는 승인 신호선이 연결된 순서대로 결정됩니다 (중재기에 가까울수록 높음). |
| 132 | + - 동작 원리: 마스터가 요구하면 공통 BREQ가 세트되고, 중재기가 첫 마스터로 BGNT를 전송합니다. 요구한 마스터는 BGNT를 받아 사용권을 가지며, 요구하지 않은 마스터는 다음 마스터로 신호를 통과시킵니다. |
| 133 | +- **분산식 직렬 중재 방식:** |
| 134 | + - 데이지-체인 버스 승인 신호(DBGNT) 선으로 버스 중재기들을 순환형(circular)으로 접속시킵니다. |
| 135 | + - 특징: 각 마스터의 우선순위가 계속 변화합니다. 버스 사용 승인을 받으면 다음 중재 동작에서 최하위 우선순위를 가집니다. |
| 136 | + - 단점: 어느 한 지점에 결함이 발생해도 전체 시스템 동작이 중단될 수 있습니다. |
| 137 | + |
| 138 | +### 2.5. 폴링 방식 (Polling Scheme) |
| 139 | + |
| 140 | +- **원리:** 버스 중재기가 버스 사용을 원하는 마스터가 있는지를 주기적으로 검사하여 사용 승인 여부를 결정합니다. |
| 141 | +- **종류:** |
| 142 | + - 하드웨어 폴링 방식: |
| 143 | + - 버스 중재기와 각 버스 마스터 간에 별도의 폴링 선이 존재합니다 (2진 코드화된 폴링 주소 사용 시 log2N개로 감소). |
| 144 | + - 공통 BREQ 선과 BBUSY 선이 각각 한 개씩 존재합니다. |
| 145 | + - 중재기가 폴링 주소를 발생하여 마스터를 지정하고 요구 여부를 물으며, 요구 시 버스 사용을 허가합니다. |
| 146 | + - 우선순위는 중재기가 마스터를 검사하는 순서(2진 카운터 이용)에 의해 결정됩니다. |
| 147 | + - 소프트웨어 폴링 방식: |
| 148 | + - 폴링의 순서와 과정을 버스 중재기 내의 프로세서가 관장하는 방식입니다. |
| 149 | + - 장점: 우선순위(폴링 순서) 변경이 용이합니다. |
| 150 | + - 단점: 프로그램을 실행해야 하므로 하드웨어 방식에 비해 속도가 느립니다. |
| 151 | + |
| 152 | +## 3. 결론 |
| 153 | + |
| 154 | +컴퓨터 시스템의 효율적인 동작은 CPU, 주기억장치, 입출력 장치 간의 원활한 정보 교환에 달려 있으며, 이를 가능하게 하는 핵심 통로가 시스템 버스입니다. 특히, 여러 장치가 동시에 버스를 사용하고자 할 때 발생하는 경합을 해결하기 위한 다양한 버스 중재 방식은 시스템의 안정성과 성능을 보장하는 데 필수적입니다. 중앙집중식/분산식, 고정/가변 우선순위, 병렬/직렬 방식, 폴링 방식 등 여러 중재 방식들은 각각의 장단점을 가지며 시스템 설계 목표에 따라 적절히 선택되어 적용됩니다. 이러한 메커니즘을 이해하는 것은 컴퓨터 시스템의 구조와 동작 원리를 파악하는 데 매우 중요합니다. |
0 commit comments