시스템 버스·PCI Express·AMBA로 보는 컴퓨터 내부 통신
시스템 버스의 데이터·주소·제어 신호부터 PCI Express와 AMBA 프로토콜까지, 컴퓨터 내부 통신 구조와 선택 기준을 정리한다.
2026-08-14 · 최초 발행 2026-01-16
공유 버스에서 온칩 인터커넥트까지
CPU, 메모리, 입출력 장치가 데이터를 주고받으려면 공통의 통신 경로가 필요하다. 버스(Bus)는 이 경로를 제공하며, 시스템의 성능과 확장성에도 직접 영향을 준다.
전통적인 시스템 버스는 여러 장치가 전송선을 공유하는 구조다. 하드웨어 관점에서는 다수의 wire로 구성되며, 전기 신호를 전달하는 물리적 매체 역할을 한다. 공유 매체이므로 하나의 신호는 연결된 장치에 도달하고, 동시에 접근하려는 장치가 있으면 중재가 필요하다. 물리적 특성은 전송 속도와 대역폭의 한계가 된다.
버스는 위치, 전송 방식, 동기화 방식으로 나눌 수 있다.
| 분류 기준 | 유형 | 설명 |
|---|---|---|
| 위치 | 내부 버스 | CPU 내부 레지스터 간 연결 |
| 시스템 버스 | CPU, 메모리, I/O 연결 | |
| 확장 버스 | 외부 장치 연결 | |
| 전송 방식 | 병렬 버스 | 다수의 비트를 동시에 전송 |
| 직렬 버스 | 비트를 순차적으로 전송 | |
| 동기화 | 동기식 버스 | 클록 신호 기반 동기화 |
| 비동기식 버스 | 핸드셰이크 기반 동기화 |
시스템 버스는 신호의 역할을 나눈다
시스템 버스는 CPU, 주기억장치, 입출력 장치를 잇는 핵심 경로다. 데이터 전송, 주소 지정, 제어를 각각 다른 하위 버스가 맡는다.
데이터 버스(Data Bus)는 실제 데이터를 양방향으로 전달한다. 버스 폭은 한 번에 전송할 수 있는 데이터 크기를 결정하며, 8비트, 16비트, 32비트, 64비트 폭이 존재한다. 폭이 넓어질수록 데이터 전송 효율은 높아지고, CPU의 워드 크기와 일치하는 구성이 이상적이다.
주소 버스(Address Bus)는 메모리나 입출력 장치의 주소를 지정한다. CPU에서 다른 장치로 향하는 단방향 경로이며, 폭이 주소 지정 가능한 메모리 용량을 결정한다. n비트 주소 버스는 2^n개의 주소를 지정할 수 있고, 32비트는 4GB, 64비트는 16EB 주소 공간에 해당한다.
제어 버스(Control Bus)는 읽기·쓰기 방향, 타이밍, 인터럽트처럼 버스 동작을 조정하는 신호를 전달한다. 메모리 읽기와 쓰기, I/O 읽기와 쓰기, 버스 요청과 승인, 인터럽트 요청과 확인 신호가 여기에 포함된다.
메모리 읽기에서는 CPU가 주소 버스에 대상 주소를 내보내고, 제어 버스로 메모리 읽기 신호를 활성화한다. 메모리는 해당 주소의 데이터를 데이터 버스에 출력하며 CPU가 이를 읽은 뒤 제어 신호가 비활성화된다.
쓰기 동작도 같은 경로를 사용하지만, CPU가 주소와 기록할 데이터를 함께 출력한다. 이어 메모리 쓰기 신호가 활성화되고, 메모리가 데이터 버스의 값을 저장한 뒤 제어 신호가 비활성화된다.
여러 장치가 버스 사용을 동시에 요구하면 버스 중재(Bus Arbitration)가 충돌을 막는다. 중앙 집중식 방식에는 우선순위에 따라 직렬 연결하는 데이지 체인(Daisy Chain), 중재기가 장치를 순차 확인하는 폴링(Polling), 장치별 요청선을 두는 독립 요청(Independent Request)이 있다. 분산 중재에서는 장치가 직접 우선순위를 판단하는 자가 선택(Self Selection)이나, 충돌 뒤 재시도하는 충돌 검출(Collision Detection)을 사용한다.
PCIe는 점대점 직렬 링크로 확장성을 확보한다
PCI Express(PCIe)는 병렬 PCI 버스를 대체한 고속 직렬 인터페이스다. PCI-SIG(PCI Special Interest Group)가 2003년 표준화했으며, 확장 카드와 고속 저장장치에 사용된다.
병렬 버스는 클록 스큐(Clock Skew), 신호 무결성(Signal Integrity), 확장성, 전력 소모 측면에서 제약을 가졌다. PCIe는 이를 점대점 직렬 링크와 계층형 패킷 처리 방식으로 전환했다.
PCIe는 OSI 모델과 비슷한 계층 구조를 갖는다. 물리 계층은 전기적 특성, 직렬 전송, 차동 신호, 레인 단위 전송을 정의한다. Gen1/2는 8b/10b, Gen3 이상은 128b/130b 인코딩을 사용한다. 데이터 링크 계층은 패킷 전송, CRC 기반 오류 검출, ACK/NAK 재전송, 흐름 제어를 담당한다. 트랜잭션 계층은 TLP(Transaction Layer Packet)를 생성·처리하고 메모리, I/O, 설정 읽기·쓰기와 메시지 전송, QoS(Quality of Service)를 다룬다.
PCIe 레인(Lane)은 송신(Tx)과 수신(Rx)에 각각 1쌍의 차동 신호선을 사용하며, 전이중(Full-duplex) 통신이 가능하다. 여러 레인이 모이면 링크(Link)를 형성한다. x1, x2, x4, x8, x16, x32 구성이 가능하고, 레인 수에 비례해 대역폭이 증가한다.
| 세대 | 전송 속도(GT/s) | 인코딩 | x1 대역폭 | x16 대역폭 |
|---|---|---|---|---|
| Gen1 | 2.5 | 8b/10b | 250 MB/s | 4 GB/s |
| Gen2 | 5.0 | 8b/10b | 500 MB/s | 8 GB/s |
| Gen3 | 8.0 | 128b/130b | 984 MB/s | 15.75 GB/s |
| Gen4 | 16.0 | 128b/130b | 1.97 GB/s | 31.5 GB/s |
| Gen5 | 32.0 | 128b/130b | 3.94 GB/s | 63 GB/s |
| Gen6 | 64.0 | PAM4 | 7.88 GB/s | 126 GB/s |
PCIe 패브릭의 출발점은 루트 컴플렉스(Root Complex)다. CPU와 메모리 서브시스템을 PCIe 패브릭에 연결하며, 시스템에는 하나 이상 존재할 수 있다. 스위치(Switch)는 하나의 업스트림 포트와 여러 다운스트림 포트 사이에서 패킷을 라우팅하며 PCI-to-PCI 브리지들의 집합으로 구현된다. 그래픽 카드, NVMe SSD, 네트워크 카드는 트랜잭션의 최종 목적지 또는 발신자인 엔드포인트(Endpoint)가 된다.
AMBA는 SoC 내부의 통신 요구를 나눈다
AMBA(Advanced Microcontroller Bus Architecture)는 ARM사가 개발한 온칩(On-Chip) 버스 아키텍처다. SoC(System on Chip) 구성요소 간 통신 표준으로, 임베디드 시스템과 모바일 프로세서에 널리 쓰인다.
로열티 프리(Royalty-Free) 라이선스를 제공하고, 서로 다른 대역폭 요구사항을 지원한다. IP 재사용이 쉽고 저전력 설계를 지원하며, 검증된 설계 방법론을 제공한다.
AHB(Advanced High-performance Bus)는 프로세서, 메모리 컨트롤러, DMA 컨트롤러처럼 높은 대역폭이 필요한 장치를 연결한다. 파이프라인과 버스트 전송, 분할 트랜잭션(Split Transaction), 단일 클록 에지 동작을 지원한다.
APB(Advanced Peripheral Bus)는 저대역폭 주변장치에 맞춘 버스다. 비파이프라인 프로토콜과 저복잡도 설계, 상태 머신 기반 제어가 특징이며 GPIO, UART, SPI 연결에 쓰인다.
AXI(Advanced eXtensible Interface)는 AMBA 3.0에서 도입된 고성능 인터페이스다. 현대 SoC의 주요 상호연결 방식으로, 읽기와 쓰기 채널을 분리하고 버스트 전송, 아웃오브오더(Out-of-Order) 트랜잭션, 다중 마스터를 지원한다.
AXI의 독립 채널은 읽기 주소(AR), 읽기 데이터(R), 쓰기 주소(AW), 쓰기 데이터(W), 쓰기 응답(B)이다. 각 채널은 VALID와 READY 신호를 이용한 양방향 핸드셰이크로 동작한다. 송신측은 VALID와 함께 데이터를 제공하고, 수신측은 READY로 수신 준비 상태를 나타낸다. 두 신호가 동시에 활성화되면 전송이 완료된다.
버스트 전송은 하나의 주소 지정으로 연속 데이터를 전달한다. FIXED는 같은 주소에 반복 접근하고, INCR은 주소를 자동 증가시키며, WRAP은 특정 경계에서 주소를 래핑한다.
다수의 마스터와 슬레이브는 AXI 인터커넥트로 연결된다. 이 스위치 패브릭은 동시 다중 전송을 지원하고 주소 디코딩과 중재를 수행한다. AXI Crossbar는 완전 연결(Full Crossbar) 또는 부분 연결(Partial Crossbar)로 구현되며, 마스터와 슬레이브 사이에 독립 경로를 제공해 대역폭을 최대화한다.
적용 환경에 따라 달라지는 선택
| 구분 | 시스템 버스 | PCI Express | AMBA |
|---|---|---|---|
| 전송 방식 | 병렬 | 직렬 | 병렬/직렬 |
| 토폴로지 | 공유 | 점대점 | 계층적 |
| 확장성 | 제한적 | 우수 | 우수 |
| 대역폭 | 중간 | 높음 | 가변 |
| 적용 분야 | 레거시 시스템 | PC, 서버 | SoC, 임베디드 |
| 표준화 | 제조사별 | PCI-SIG | ARM |
고대역폭이 필요하면 PCIe나 AXI가 대상이 되고, 중간 대역폭 영역에는 AHB와 시스템 버스가 쓰인다. 저대역폭 주변장치는 APB에 적합하다.
PC와 서버는 PCIe, 모바일과 임베디드 시스템은 AMBA, 레거시 시스템은 시스템 버스가 적용 분야다. 구현 복잡도도 함께 봐야 한다. APB와 시스템 버스는 단순 설계에, AHB는 중간 복잡도에, AXI와 PCIe는 높은 복잡도의 설계에 해당한다.
일관성과 칩렛 연결로 넓어지는 인터커넥트
CXL(Compute Express Link)은 PCIe 물리 계층을 기반으로 하는 차세대 인터커넥트다. CPU, 메모리, 가속기 사이의 캐시 일관성(Cache Coherency)을 지원해 이기종 컴퓨팅 환경에 맞춘다.
AMBA CHI(Coherent Hub Interface)는 AMBA 5.0에서 도입된 고성능 일관성 인터페이스다. 대규모 멀티코어 시스템에서 캐시 일관성을 효율적으로 관리한다.
UCIe(Universal Chiplet Interconnect Express)는 칩렛(Chiplet) 기반 설계를 위한 다이 간(Die-to-Die) 인터커넥트 표준이다. PCIe와 CXL 프로토콜을 지원하며 2.5D 및 3D 패키징에 활용된다.
시스템 버스의 데이터·주소·제어 신호는 현대 아키텍처의 기반 개념으로 남아 있다. PCIe는 PC와 서버 환경의 고속 직렬 전송을, AMBA는 SoC와 임베디드 환경의 온칩 통신을 담당한다. 각 구조의 차이는 시스템 설계와 최적화에서 선택 기준이 된다.