yeonseong
시스템 버스 본문
시스템 버스(System Bus)
서론
시스템 버스는 CPU, 주기억장치, 입출력장치 등 컴퓨터의 주요 구성 요소를 하나의 통합된 통신 채널로 연결하는 단일 버스이다. 즉, CPU가 메모리나 주변장치와 데이터를 주고받을 때 사용되는 공용 통로로, 데이터 버스(Data Bus)·주소 버스(Address Bus)·제어 버스(Control Bus)의 기능을 모두 통합한다. 이러한 시스템 버스 아키텍처는 설비 비용을 절감하고 모듈성을 높이기 위해 개발되었으며, 1970~80년대에 널리 쓰였다. 현대 시스템에서는 업무 종류에 따라 고속 직렬 링크(예: PCIe)나 온칩 인터커넥트(예: AMBA) 등 다양한 전용 버스로 대체되었지만, 여전히 컴퓨터 구조의 핵심 개념이자 시스템 설계의 기본 토대이다.
시스템 버스 구조
시스템 버스는 크게 데이터 버스, 주소 버스, 제어 버스로 구성된다.
- 데이터 버스(Data Bus): CPU와 메모리, I/O 장치 간에 실제 데이터를 전송하는 통로이다. 버스의 폭(width), 즉 동시 전송 비트 수(예: 8/16/32/64비트)가 한 번에 처리할 수 있는 데이터 크기를 결정한다. 폭이 넓을수록 한 사이클에 더 많은 데이터를 전송할 수 있으며, 일반적으로 양방향 통신이 가능하다.
- 주소 버스(Address Bus): CPU가 메모리나 I/O 장치의 특정 위치를 지정할 때 사용하는 주소 정보를 전달한다. 주소 버스의 선 개수(폭)가 nn 비트라면, 2n2^n개의 고유 주소를 지정할 수 있어 CPU가 접근 가능한 메모리 공간이 결정된다. 주소 정보는 CPU에서 장치로 일방향으로 전달되며, 메모리 맵 구성 방식 등에 따라 폭이 결정된다.
- 제어 버스(Control Bus): 읽기/쓰기 명령, 인터럽트 신호, 클럭, 버스 요청/허가 등 제어·타이밍 신호를 전송한다. 예를 들어 메모리 읽기·쓰기 사이클이 언제 시작되는지, 어떤 장치가 버스를 사용할지 등 시스템의 동작을 관리하는 신호가 포함된다. 제어 버스 신호는 주로 양방향으로 흐르며, CPU와 주변장치 간 동기화를 위한 다양한 제어선을 포함한다.
아래 표는 각 버스의 주요 기능과 특징을 정리한 것이다.
버스 종류 주요 기능 특징
데이터 버스 | CPU와 장치 간 실제 데이터 전송 | 버스 폭만큼 데이터를 동시 전송, 일반적으로 양방향 |
주소 버스 | 메모리/장치의 주소 정보 전달 | 주소 폭에 따라 CPU 접근 가능한 메모리 크기 결정, 단방향 |
제어 버스 | 읽기/쓰기, 인터럽트 등 제어 신호 전송 | 타이밍·제어 신호를 전달, 명령 종류를 지정, 양방향 |
시스템 버스의 구조를 나타낸 위 그림에서 알 수 있듯이, CPU와 메모리·I/O 장치는 공통 버스를 통해 연결되어 있다. 예를 들어 CPU가 메모리에서 데이터를 읽으려면, 먼저 주소 버스에 읽을 메모리 주소를 전송하고, 제어 버스에 ‘메모리 읽기’ 명령 신호를 보낸 뒤, 데이터 버스를 통해 해당 주소의 데이터를 수신한다. 반대로 저장 동작은 유사한 흐름으로 이루어지며, 주소와 쓰기 신호, 데이터를 전송하는 단계로 구성된다. 이처럼 주소, 제어, 데이터 버스가 협력하여 CPU와 메모리/장치 간 데이터 액세스를 수행한다.
주요 종류 및 기술별 설명
PCI, PCI-X
과거 PC 및 서버 시스템에서는 PCI(Peripheral Component Interconnect) 버스가 확장 카드용 공통 버스로 널리 사용되었다. PCI는 평행 버스(parallel bus) 구조로, 32/64비트 폭을 가지며 최대 133MHz의 클럭에서 동작한다. 하나의 마스터가 버스를 독점하는 구조로, 여러 장치가 버스를 공유해 한 번에 한 장치만 통신할 수 있다. 이로 인해 확장 슬롯에 연결된 모든 장치는 동일 대역폭을 공유하며, 구형 장치가 전체 버스 속도를 제한하는 단점이 있다.
PCI의 확장 버전인 **PCI-X(PCI eXtended)**는 64비트 데이터를 지원하고 클럭을 66/133/266MHz까지 높여 대역폭을 향상시킨 규격이다. 그러나 병렬 버스의 한계를 극복하지는 못했으며, 서버용 고대역폭 요구에는 결국 직렬 버스 기반 기술로 대체되었다.
PCI Express(PCIe)
PCIe는 PCI/PCI-X를 대체하기 위해 개발된 직렬(point-to-point) 버스이다. 각 장치는 루트 콤플렉스(호스트)와 직접 연결된 독립 링크를 가지며, 슬롯마다 서로 다른 개수(x1, x4, x16 등)의 직렬 레인을 제공한다. PCIe는 전이중(full-duplex) 통신을 지원하며, 각 레인이 독립적으로 동작하므로 다수 장치가 동시에 데이터를 주고받을 수 있다. 이 구조 덕분에 PCIe는 기기 간 충돌과 대역폭 공유 문제를 크게 줄였으며, 장치 간 동적 레인 협상(예: x1↔x16 전환)과 자동 속도 재설정 기능도 지원한다.
신세대 PCIe 규격은 세대별로 전송 속도가 대폭 향상되고 있다. PCIe 5.0까지는 NRZ 신호 인코딩을 사용해 각 레인당 최대 32GT/s를 달성했으며, 최신 PCIe 6.0에서는 PAM4(4단계 펄스 진폭 변조)를 도입해 64GT/s로 두 배의 대역폭을 제공한다. 또한, PCIe 6.0에서는 새로운 패킷 구조(FLIT)를 사용하여 데이터 효율성을 높이고, 일부 레인을 “슬립” 상태로 두는 저전력 L0p 상태 등을 지원한다. 이로써 PCIe 5.0 대비 거의 동일한 지연 시간으로 훨씬 높은 대역폭이 가능해졌다.
AMBA (Advanced Microcontroller Bus Architecture)
AMBA는 ARM에서 개발한 온칩(SoC) 인터커넥트 표준으로, 임베디드 및 모바일 SoC 설계에 광범위하게 사용된다. 초기에는 비교적 단순한 APB/AHB 버스를 포함했으나, 이후 성능 요구 증가에 따라 AXI(Advanced eXtensible Interface), ACE(AXI Coherency Extensions), CHI(Coherent Hub Interface) 등 고성능 버스가 도입되었다. 현재 AMBA 5가 최신 세대로, 고성능 다코어·하드웨어 가속기 시스템을 위해 CHI 프로토콜을 포함한다.
AMBA 아키텍처는 칩 내부 컴포넌트 간의 연결을 표준화하여 재사용성과 상호 운용성을 높인 것으로 평가받는다. 예를 들어, 최신 ARM 기반 스마트폰 SoC에서는 수많은 CPU, GPU, ISP 등 IP 블록이 AXI/CHI 등의 AMBA 버스를 통해 연결되어 있고, 전 세계 수십억 개 이상의 디바이스에 AMBA 규격이 적용되어 있다.
시스템 버스의 동작 방식 및 구성 요소
시스템 버스의 기본 동작은 버스 사이클 단위로 이루어진다. 일반적으로 한 트랜잭션은 주소 단계, 제어 단계, 데이터 전송 단계로 구성된다. 예를 들어 CPU가 메모리로부터 데이터를 읽는 경우, 첫째, 주소 버스를 통해 읽을 메모리 주소를 메모리 컨트롤러에 전달한다. 둘째, 제어 버스를 통해 “메모리 읽기” 신호를 보내고, 필요시 클럭과 제어 신호(인터럽트 허용, 버스 요청 등)를 동기화한다. 셋째, 메모리 컨트롤러는 해당 주소의 데이터를 데이터 버스에 실어 CPU로 반환한다. 쓰기(Store) 동작도 유사하게, CPU가 주소·제어 신호를 보낸 후 데이터 버스를 통해 메모리에 값을 기록한다. 이러한 사이클 동안 **버스 중재(Bus Arbitration)**가 필요하다. 다수의 버스 마스터(예: CPU, DMA 컨트롤러)가 버스 사용을 요청할 경우, 버스 아비터(중재기)가 우선순위나 순서에 따라 하나의 마스터만 버스를 점유하도록 제어한다. 적절한 중재 없이는 두 장치가 동시에 데이터를 드라이브하여 **버스 경합(bus contention)**이 발생할 수 있다. 실제 설계에서는 대개 버스 아비터가 전체 시스템을 제어하여 정격 속도 이내에서 충돌이 일어나지 않도록 보장한다.
구성 요소 측면에서, 시스템 버스는 물리적으로 전송선로(Trace), 커넥터, 스위치 등 하드웨어와 이를 제어하는 버스 컨트롤러/브리지, 소프트웨어 드라이버로 이루어진다. 메인보드 내 칩들은 데이터·주소·제어 신호를 전기적으로 전달하고, 필요한 경우 레벨 변환(transceiver)이나 멀티플렉싱 기법을 사용한다. 동기식 버스는 공통 클럭을 이용하지만, 일부 고속 직렬 버스나 NoC 환경에서는 펄스형 클럭 전달이나 이더넷 방식의 고속 통신이 사용되기도 한다.
특징 및 장단점 분석
시스템 버스 구조는 설계 단순성과 비용 효율성 측면에서 유리하다. 모든 장치가 하나의 버스 인터페이스를 공용으로 사용하기 때문에 배선량이 절감되고, 새로운 장치를 추가할 때에도 동일한 인터페이스 규격만 맞추면 된다. 또한 표준화된 인터커넥트이므로 개발 비용과 복잡성을 줄일 수 있고, 여러 장치를 연결하는 스케일 아웃 시에도 시스템 구조를 크게 변경하지 않고 확장할 수 있다.
반면 단점도 존재한다. 버스 병목(Bottleneck) 현상이 대표적인데, 버스의 대역폭은 한정적이어서 연결된 장치 수가 늘어나거나 고속 디바이스가 등장하면 쉽게 포화된다. 여러 장치가 동시에 버스를 쓰려 하면 대기와 우선순위 문제가 생기며, **버스 경합(Bus Contention)**이 발생할 수 있다. 실제로 버스 경합 시에는 오동작이나 소비전력 증가, 최악의 경우 하드웨어 손상까지 이어질 수 있다. 또한 장치 간 동시 통신이 제한적이고, 새로운 고성능 요구에 대응하려면 버스 클럭을 높이거나 병렬 선로 수를 늘려야 하는데, 이는 신호 무결성과 비용 문제를 수반한다. 이로 인해 현대 시스템에서는 버스 대신 점대점(point-to-point) 인터커넥트나 스위치 기반 패브릭으로 전환하는 추세이다.
주요 장점
- 단일 통로로 여러 장치 연결 가능, 배선 단순·비용 절감
- 표준화된 인터페이스로 호환성 용이, 시스템 확장성 확보
- 모듈식 설계로 개발·통합 위험 감소
주요 단점
- 대역폭 한계: 연결 수 증가 시 성능 병목 발생
- 버스 경합 위험: 동시 액세스 시 충돌로 인한 오작동 가능
- 클록 속도 또는 선 수 증가 어려움: 고속화에 한계
시스템 버스 실무 적용 사례
- 서버 및 PC: 오늘날 서버와 PC 시스템에서는 메인 메모리 버스(DDR4/DDR5)와 CPU 간 직렬 인터커넥트(Intel UPI/QPI, AMD Infinity Fabric) 등을 사용한다. 확장 장치 연결을 위해서는 주로 PCIe 슬롯을 활용한다. 예를 들어 고성능 서버는 다중 CPU 간 데이터 공유에 전용 링 버스나 토러스 네트워크를 사용하며, GPU나 NVMe SSD는 PCIe 인터페이스로 연결한다. 전통적인 병렬 PCI 버스는 구세대 서버에서 사용되었으나, 현재는 대부분 PCIe로 대체되었다.
- 임베디드 및 SoC: 마이크로컨트롤러나 모바일 AP 등 임베디드 시스템에서는 **AMBA 버스 계열(AXI/AHB/APB 등)**이 광범위하게 사용된다. 예를 들어 ARM 기반 SoC 내에서 CPU, GPU, DSP, 메모리 컨트롤러 등 각종 IP는 AMBA AXI/CHI 버스를 통해 연결된다. 자동차 전장(Autosar)용 MCU나 IoT 기기에서도 단순화된 버스(예: APB)나 직렬 인터페이스(I2C, SPI) 형태로 부품들이 통신한다.
- 고성능 컴퓨팅(HPC): 슈퍼컴퓨터 및 AI 시스템에서는 CPU·GPU 간 고속 인터커넥트 기술이 사용된다. 예를 들어 NVIDIA의 NVLink나 NVSwitch는 GPU 간 고속 데이터 공유용 직렬 링크이며, CPU 확장 메모리 기술로는 **Compute Express Link(CXL)**이 떠오르고 있다. CXL은 CPU와 가속기, 메모리 장치를 연결하는 캐시 일관성 인터커넥트로, 저지연 메모리 풀링을 가능하게 해 HPC/AI 워크로드 성능 향상에 기여한다. 또한 PCIe 5.0/6.0의 등장으로 GPU/FPGA 인터페이스 대역폭도 크게 증가하고 있다.
최신 기술 동향
최근 시스템 버스 분야에서는 고대역폭 및 캐시 일관성을 중점으로 한 신기술이 각광받고 있다. 대표적으로 PCIe 6.0 규격이 2022년 발표되었으며, 이는 이전 세대 대비 두 배 빠른 64GT/s PAM4 신호를 사용하고 FLIT 패킷 전송으로 효율을 높인 것이 특징이다. PCIe 6.0은 또한 L0p 저전력 모드 및 링크별 저전력 상태를 지원하여 동적 에너지 관리가 가능하다. 이 외에 PCIe 6.1은 800G 이더넷 등 신기술 지원을 목표로 추가 표준이 개발 중이다.
SoC 버스 분야에서는 AMBA CHI C2C 규격이 발표되었다. 이는 다중 칩릿(chiplet) 환경에서 AMBA CHI 프로토콜을 칩 대 칩으로 확장한 표준으로, 칩렛 간 캐시 일관성 및 보안 기능을 제공한다. Arm과 주요 반도체 기업들은 CHI C2C를 통해 칩렛 설계의 상호운용성을 높이고 AI용 대규모 컴퓨팅 시스템 개발을 촉진하고 있다. 실제로 Arm은 “AMBA CHI C2C 사양이 칩 간 효율적 상호연결을 가능케 해 AI 시스템 구축에 필수적”이라고 발표하였다.
메모리 인터커넥트 분야에서는 CXL 발전이 눈에 띈다. CXL 3.0 및 3.1 규격은 PCIe 6.0/6.1 물리 계층을 활용하여 64GT/s 속도를 지원하며, 다중 호스트 간 메모리 풀링, 피어 투 피어 DMA, 멀티티어 스위칭 등 새로운 기능을 제공한다. 이를 통해 데이터센터는 메모리 자원을 유연하게 공유·확장할 수 있게 되었다.
이 밖에 UCIe(Universal Chiplet Interconnect Express), SiPearl OMI(AMD 고속 인터커넥트) 등의 칩렛 상호연결 표준도 개발되고 있으며, 인피니밴드(Infiniband), Omni-Path 등의 고속 네트워크도 종종 소개된다. 각 기술은 특정 용도(디바이스 확장, 칩렛, 서버 내부 통신 등)에 특화되어 있으며, 전반적으로 병렬 버스에서 고속 직렬 및 스위치 기반 구조로의 전환이 가속화되고 있다.
관련 기술 및 발전 방향
전통적 버스 토폴로지를 대체하기 위해 네트워크 온 칩(NoC), 다중 스위치 패브릭, 버추얼 채널 등의 개념이 발전하고 있다. 예를 들어 SoC 내부에서는 메시 네트워크 형태의 NoC를 사용해 수백 개 코어 간 병목을 줄이고, 실시간 및 멀티 코어 동기화를 향상시킨다. 아울러 칩렛 설계가 보편화됨에 따라 CHI C2C, UCIe처럼 칩 외부 연결 표준이 중요해졌으며, RISC-V 생태계에서는 TileLink 같은 오픈 인터커넥트가 부상하고 있다.
향후에는 클라우드・데이터센터에서는 메모리, 스토리지, I/O 자원의 유연한 연결이 더욱 중요해질 전망이다. 이를 위해 표준화된 프로토콜(CXL, Gen-Z, CCIX 등)과 확장 가능한 토폴로지가 연구되고 있으며, AI・HPC 워크로드를 지원하는 특수 목적 인터커넥트도 계속 등장할 것이다. 시스템 설계자는 성능 요구와 소비전력·보안을 균형 있게 고려해 적합한 버스/인터커넥트를 선택해야 한다.
결론 및 제언
시스템 버스는 컴퓨터 및 임베디드 시스템 아키텍처의 근간이 되는 개념으로, 고속 통신과 확장성을 모두 고려한 설계가 중요하다. 현대 시스템에서는 하나의 버스로 모든 요구를 만족시키기보다는, 요구 특성에 맞는 다양한 버스와 인터커넥트를 혼합하는 추세이다. 예를 들어 CPU-메모리는 고속 직렬 인터커넥트(PCIe/CXL), 코어 내 통신은 온칩 버스(AMBA AXI/CHI)로 구성하고, 주변장치는 별도의 버스나 스위치로 분리하는 식이다.
버스 기술의 중요성은 그 적용 범위에서도 확인된다. 예컨대 AMBA는 AHB → AXI → CHI로 발전하며 “전 세계 수십억 개 장치에 사용”될 만큼 산업 표준이 되었다. 앞으로도 성능과 비용, 전력, 보안 요구를 모두 충족시키기 위해 버스 규격은 계속 진화할 것이며, 특히 칩렛 및 메모리 풀링 시대를 대비한 신기술(AMBA CHI C2C, PCIe 6.0/7.0, CXL 등)의 동향을 주시해야 한다. 시스템 설계 시에는 대역폭, 지연 시간, 호환성을 종합적으로 고려해 적절한 버스 구조를 선택하고, 필요시 다중 레이어 스위치 패브릭이나 QoS(Quality of Service) 기법을 도입해 병목을 완화하는 것이 바람직하다. 앞으로도 컴퓨팅 수요가 증가함에 따라 시스템 버스 기술은 계속 핵심적인 발전을 이룰 것이며, 새로운 표준과 아키텍처를 능동적으로 수용하는 자세가 필요하다.
'정보관리기술사' 카테고리의 다른 글
CPU 명령어 사이클 (0) | 2025.06.22 |
---|---|
CPI (Clock Per Insturction), Processor 성능 향상 방안 (4) | 2025.06.08 |
CISC와 RISC의 명령어 구조 비교 심화 분석 (1) | 2025.05.21 |
stored program computer개념을 제시한 폰 노이만 컴퓨터 구조의 특징과 문제점 (0) | 2025.05.18 |
CPU 중앙처리장치 (1) | 2025.05.15 |