버스 Utilization(점유율)과 시스템 지연 시간의 관계 분석

🔧 버스 Utilization(점유율)의 비밀: 왜 100%를 목표로 하지 않는가?

SoC 설계와 컴퓨터 구조에서 버스 Utilization(점유율)은 시스템 성능을 좌우하는 핵심 지표입니다. 대역폭이 아무리 넓어도 점유율 관리를 잘못하면 시스템 전체가 멈출 수 있습니다. 이 글에서는 왜 버스 점유율을 100%로 쓰면 안 되는지, 그 기술적 배경과 실무 가이드라인을 상세히 정리합니다.

📊 1. Utilization(점유율)이란 무엇인가?

버스 Utilization은 전체 가동 시간 중 실제로 데이터가 전송되고 있는 시간의 비율을 의미합니다. 수식으로 표현하면 다음과 같습니다.

Utilization(%) = (실제 처리량 / 이론적 최대 대역폭) × 100

점유율 수준에 따른 버스 상태를 살펴보면:

Utilization 10% — 버스가 한가한 상태. 요청이 오면 즉시 처리됩니다.

⚠️ Utilization 50% — 적당한 부하. 약간의 대기가 발생하지만 안정적입니다.

🔴 Utilization 90% — 과부하 상태. 새 요청은 긴 대기열에 합류해야 합니다.

핵심은 버스가 '공유 자원(Shared Resource)'이라는 점입니다. CPU, GPU, DMA 컨트롤러 등 여러 마스터가 하나의 버스를 나누어 쓰기 때문에, 점유율이 높다는 것은 자원 경쟁(Contention)이 치열하다는 의미입니다.

📈 2. 왜 100%를 쓰면 안 될까? — 대기행렬 이론의 경고

점유율을 40~60%로 제한하는 가장 큰 이유는 대기 시간(Latency)의 급격한 증가 때문입니다. 이는 통계학의 대기행렬 이론(Queuing Theory)으로 정확히 설명됩니다.

M/M/1 큐 모델 핵심 공식

Latency ∝ 1 / (1 - ρ)

ρ = Utilization (0 ~ 1)

이 공식의 의미를 구체적인 수치로 살펴보겠습니다.

점유율 (ρ) 1/(1-ρ) 배수 체감 상태
10% 1.1배 매우 쾌적
30% 1.4배 쾌적
50% 2배 보통 (권장 한계)
70% 3.3배 ⚠️ 주의 필요
90% 10배 🔴 위험
99% 100배 🚨 시스템 마비

점유율이 50%일 때 대기 시간은 기본의 2배 수준이지만, 90%가 되면 10배, 99%면 100배로 폭증합니다. 100%에 도달하면 이론적으로 대기 시간이 무한대가 되어 시스템이 완전히 멈춥니다.

💥 3. 임계치를 넘으면 발생하는 4가지 기술적 재앙

점유율이 Safe Zone을 벗어나면 다양한 연쇄 장애가 발생합니다. 각각의 메커니즘을 깊이 살펴보겠습니다.

⚡ ① 중재(Arbitration) 오버헤드 증가

버스를 쓰려는 마스터가 많아지면 누가 먼저 사용할지 결정하는 Arbiter의 부담이 급증합니다. AMBA AXI 같은 프로토콜에서는 Round-Robin, Fixed Priority, Weighted Fair 등의 중재 방식을 사용하는데, 경쟁이 치열해지면 중재 알고리즘 자체가 병목이 됩니다.

데이터 전송보다 "순서 정하기"에 더 많은 사이클이 소모되는 역설적 상황이 발생합니다. 특히 AXI의 경우, Outstanding Transaction이 많아지면 ID 관리와 reordering 로직까지 복잡해져 실질적인 throughput이 급감합니다.

📦 ② 데이터 버스트(Burst) 전송의 파괴

효율적인 전송을 위해 AXI는 데이터를 INCR, WRAP, FIXED 같은 Burst 모드로 묶어 전송합니다. 하지만 점유율이 높으면 다른 마스터가 중간에 끼어드는 Preemption이 빈번해집니다.

연속적인 Burst가 끊기면 매번 새로운 Address Phase부터 시작해야 하므로 프로토콜 오버헤드가 가중됩니다. 예를 들어, 16-beat Burst 하나가 4-beat Burst 네 개로 쪼개지면, Address Phase가 1회에서 4회로 증가하여 유효 대역폭(Effective Bandwidth)이 크게 떨어집니다.

🔄 ③ 우선순위 역전(Priority Inversion)과 지터(Jitter)

실시간성이 중요한 작업(오디오 DMA, 디스플레이 컨트롤러, 비디오 디코더 등)은 정해진 데드라인 안에 데이터가 도착해야 합니다.

점유율이 높으면 우선순위가 낮은 긴 Burst가 버스를 점유하는 동안 높은 우선순위의 짧은 요청이 대기하는 Priority Inversion이 발생합니다. 이로 인해:

→ 디스플레이 화면이 깨지거나(Tearing) 끊기는 현상

→ 오디오 스트리밍에서 팝/클릭 노이즈 발생

→ 센서 데이터 수집의 타이밍 오차(Jitter) 누적

💾 ④ 버퍼 오버플로우(Buffer Overflow)와 Stall

버스가 데이터를 빠르게 수용하지 못하면, 데이터를 보내려는 마스터 내부의 FIFO 버퍼가 가득 찹니다.

Write Buffer가 Full이 되면 CPU Pipeline 자체가 Stall되어 명령어 실행이 멈추고, Read Data가 제때 오지 않으면 Cache Miss 처리가 지연되어 전체 프로세서 성능이 급락합니다. 최악의 경우 데이터 손실(Data Loss)이 발생하여 시스템 안정성까지 위협합니다.

🎯 4. 실무 가이드라인: Safe Zone은 어디인가?

고성능 SoC 설계에서 권장하는 버스 점유율 타겟은 애플리케이션 도메인에 따라 다릅니다.

도메인 권장 점유율 비고
🚗 실시간 시스템 (RTOS, Automotive) 30~40% 미만 안전성 최우선, ISO 26262 등 기능안전 규격 준수
📱 일반 SoC (Mobile, PC) 50~60% 성능과 비용의 균형점, 트래픽 스파이크 대응 여유 확보
💿 벌크 데이터 전송 (Storage, DMA) 70~80% Latency 희생 감수, Throughput 최대화 목적

성능 평가에서 "Utilization 50%에서 Latency가 일정하게 유지되는가?"를 확인하는 이유는, 갑작스러운 트래픽 부하(Traffic Spike)에도 시스템이 안정적으로 동작할 수 있는 여유(Headroom)가 있는지 검증하기 위함입니다.

🛠️ 5. 점유율 문제를 해결하는 설계 기법

점유율 문제에 직면했을 때 설계자가 활용할 수 있는 대표적인 해결 방법들입니다.

▶ 버스 분리(Bus Splitting) — 하나의 버스를 기능별로 분리하여 트래픽을 분산합니다. AMBA의 경우 AXI Interconnect를 다중 포트로 구성하여 병목을 제거합니다.

▶ QoS(Quality of Service) 설정 — 실시간 트래픽(Display, Audio)에 높은 QoS 레벨을 부여하여 버스 점유율이 높아져도 우선 처리되도록 보장합니다. AXI QoS 시그널(AxQOS)을 활용합니다.

▶ 캐시 최적화 — L2/L3 캐시 적중률을 높여 메모리 버스 접근 자체를 줄입니다. 캐시 프리페치(Prefetch)와 캐시 라인 크기 조정이 핵심입니다.

▶ 대역폭 조절(Bandwidth Regulation) — 특정 마스터가 버스를 독점하지 못하도록 Token Bucket이나 Rate Limiter를 적용합니다. 과도한 벌크 전송으로 인한 다른 마스터의 Starvation을 방지합니다.

🔍 6. 도로 교통과 버스 점유율의 비유

버스 Utilization을 제한하는 것은 고속도로에 차를 100% 꽉 채우지 않는 것과 동일한 원리입니다.

🛣️

30% 점유

자유 흐름 — 원하는 속도로 주행

🚗🚕🚙

60% 점유

원활한 흐름 — 가끔 감속 필요

🚗🚗🚗🚗

95% 점유

완전 정체 — 아무도 못 움직임

도로에 차가 100% 차 있으면 아무도 움직이지 못하는 교통 체증이 발생하듯, 버스도 적절한 빈 공간이 있어야 데이터가 막힘없이 흐를 수 있습니다.

✅ 핵심 정리

→ 버스 Utilization은 단순 처리량이 아닌 시스템 안정성의 바로미터입니다.

→ 대기행렬 이론에 의해 점유율 70% 이상에서 Latency가 기하급수적으로 증가합니다.

→ 점유율 초과 시 Arbitration 오버헤드, Burst 파괴, Priority Inversion, Buffer Overflow 등이 연쇄적으로 발생합니다.

→ 성능 평가의 핵심은 최대 대역폭이 아닌 점유율 상승에 따른 Latency Curve의 기울기를 파악하는 것입니다.

→ 올바른 Safe Zone 설정과 QoS, 캐시 최적화, 버스 분리 등의 기법으로 점유율을 관리하는 것이 진정한 시스템 최적화입니다.

댓글

이 블로그의 인기 게시물

📚 SDC 마스터 클래스 시리즈 | Chapter 1

📚 SDC 마스터 클래스 시리즈 | Chapter 2

📚 SDC 마스터 클래스 시리즈 | Chapter 3