콘텐츠로 이동

AMBA Protocols (APB / AHB / AXI / AXI-Stream) — 개요

학습 플랜

  • 레벨: Intermediate (SoC 검증 실무에서 전 프로토콜 사용 경험)
  • 목표: 각 프로토콜의 위치, 핸드셰이크, 차이점을 화이트보드에 그리며 설명할 수 있는 수준

핵심 용어집 (Glossary)

프로토콜 계층

약어 풀네임 설명
AMBA Advanced Microcontroller Bus Architecture ARM의 SoC 버스 아키텍처 표준
APB Advanced Peripheral Bus 저속 주변장치용 간단한 버스 (Timer, UART, GPIO)
AHB Advanced High-performance Bus 중간 성능 버스, 파이프라인 지원 (DMA, Boot ROM)
AXI Advanced eXtensible Interface 고성능 5채널 버스, Out-of-Order 지원 (CPU↔MC)
AXI-Stream AXI Streaming Protocol 주소 없는 단방향 스트리밍 (TOE↔DCMAC, DSP)
ACE AXI Coherency Extension 캐시 일관성 프로토콜 (멀티코어)
CHI Coherent Hub Interface ACE 후속, AMBA 5의 고성능 일관성 인터페이스

핸드셰이크 & 신호

약어 풀네임 설명
VALID/READY AXI 핵심 핸드셰이크. VALID=송신 유효, READY=수신 준비. 동시 asserted 시 전송
PSEL/PENABLE Peripheral Select/Enable APB 2-phase 핸드셰이크 (Setup → Access)
PREADY Peripheral Ready APB Slave 준비 신호 (Wait State 삽입용, APB3+)
PSLVERR Slave Error APB 에러 응답 (APB3+)
HTRANS AHB Transfer Type IDLE/BUSY/NONSEQ/SEQ 전송 타입

AXI 채널 & Burst

약어 풀네임 설명
AR/AW/W/R/B AXI 5채널: Read Addr / Write Addr / Write Data / Read Data / Write Response
AxLEN Burst Length Burst 내 beat 수 = AxLEN + 1 (AXI3: 최대 16, AXI4: 최대 256)
AxSIZE Beat Size Beat 당 바이트 수 = 2^AxSIZE
WSTRB Write Strobe 바이트 단위 쓰기 마스크
AxID Transaction ID 트랜잭션 추적 및 Out-of-Order 완료용 ID
INCR/WRAP/FIXED Burst Type 주소 증가 / 경계 순환 / 고정 주소

AXI-Stream 신호

약어 풀네임 설명
tdata Transfer Data 스트림 데이터
tvalid/tready 핸드셰이크 신호 (AXI와 동일 원리)
tlast Transfer Last 패킷/프레임 마지막 beat 표시
tkeep Transfer Keep 유효 바이트 마스크

응답 & 보호

약어 풀네임 설명
OKAY/SLVERR/DECERR AXI 응답: 정상 / Slave 에러 / 주소 범위 밖 에러
EXOKAY Exclusive OK Exclusive Access 성공 응답
AxPROT Protection Control Privileged/Secure/Instruction 접근 속성
AxCACHE Cache Policy Bufferable/Modifiable/Allocate 캐시 정책
AxQOS Quality of Service AXI4의 우선순위 제어 (0~15)

상호연결

약어 풀네임 설명
Interconnect 다수 Master/Slave를 연결하는 중앙 스위치
Bridge Bus Bridge 프로토콜 간 변환 (AXIAHB, AHBAPB)
Write Interleaving AXI3에서 지원, AXI4에서 제거된 Write Data 인터리브 기능

AMBA 진화 역사

1996  AMBA 2   ── APB (v1), AHB
2003  AMBA 3   ── APB3 (PREADY/PSLVERR 추가), AHB-Lite, AXI3
2010  AMBA 4   ── APB4 (PPROT/PSTRB 추가), AXI4, AXI4-Lite, AXI4-Stream, ACE
2021  AMBA 5   ── APB5 (PWAKEUP/PAUSER 추가), AXI5, CHI (Coherent Hub Interface)

버전별 핵심 변화

버전 핵심 추가 사항
AMBA 2 (1996) APB 원본(PREADY 없음, wait 불가), AHB 도입
AMBA 3 (2003) APB3에 PREADY/PSLVERR 추가 → wait state+에러 지원. AXI3 도입(5채널, OOO, Write Interleaving)
AMBA 4 (2010) APB4에 PPROT/PSTRB 추가. AXI4에서 Write Interleaving 제거, Burst 256까지 확장, QoS 추가. AXI4-Stream 신규
AMBA 5 (2021) APB5에 PWAKEUP(저전력), PAUSER/PWUSER(보안). AXI5에 Atomic Operation, Trace 신호. CHI가 ACE 대체

면접 포인트: "AXI3→AXI4에서 Write Interleaving이 제거된 이유?" → Interconnect 구현 복잡도 대비 실질적 성능 이득이 미미했기 때문. 대부분의 Slave가 interleaving을 지원하지 않았음.


컨셉 맵

ROOTAPBAHBAXIACEAXISBR
ROOTAPBAHBAXIACEAXISBR

모두 VALID/READY 기반 핸드셰이크. APBPSEL/PENABLE 방식.

SoC 내 프로토콜 계층 — "왜 여러 개가 필요한가?"

AXI / ACE — 성능 높음AHB — 중간APB — 게이트 비용 낮음ICNBR1BR2
AXI / ACE — 성능 높음AHB — 중간APB — 게이트 비용 낮음ICNBR1BR2
  • 고성능 IPAXI, 레거시 IPAHB, 저속 말단은 APB.
  • Bridge 가 프로토콜을 변환하여 연결.
  • IP 에 적합한 복잡도의 인터페이스 = 면적 최적화.

학습 단위

# 단위 핵심 질문
1 APB & AHB 간단한 레지스터 접근과 중간 복잡도 전송은 어떻게 다른가?
2 AXI (Full) 고성능 메모리 매핑 전송의 5채널 구조는 어떻게 동작하는가?
3 AXI-Stream 스트리밍 데이터 전송은 AXI와 어떻게 다른가?

이력서 연결

이력서 항목 프로토콜 면접 시 활용
BootROM 검증 (레지스터 접근) APB OTP/보안 레지스터 접근
UFS HCI (Host 인터페이스) AHB/AXI UTRD DMA, 레지스터
MC (메모리 접근) AXI/ACE 고성능 메모리 트래픽
TOE ↔ DCMAC AXI-Stream 패킷 스트리밍
MMU (변환 요청/응답) AXI-Stream Translation 인터페이스
Custom Thin VIP AXI-Stream tdata/tvalid/tready 핵심 경로