약 2분 소요
AMBA(Advanced Microcontroller Bus Architecture)란?
- ARM 사에서 만든 SoC 내부 버스 통신 규격
- CPU, 메모리, 페리퍼럴 간 데이터 교환 규칙 정의
- 목적: IP간 인터페이스 표쥰화 -> IP 재사용성 확보
- 버스 종류
| APB | AHB | AXI | |
|---|---|---|---|
| 특성 | – 채널 1개 – 읽기 쓰기 동시 불가 – 핸드셰이크 최소 2클럭 – 버스트 전송 없음 – 로직 단순 | – 채널 1개 – 읽기 쓰기 동시 불가 – 핸드셰이크 최소 1클럭 – 버스트 가능 – 파이프라이닝 가능 | – 채널 5개 – 읽기 쓰기 동시 가능 – Outstanding Transaction(응답을 기다리지 않고 다음 요청 전송) – ID 기반 -> 여러 마스터가 동시에 전송 가능 – 로직 복잡 |
| 용도 | 저속 페리퍼럴용 | 중간 성능용 | 고성능용 |
| 예시 | UART, GPIO, Timer 등 | DMA, 단순 마스터 | CPU<->메모리, 대용량 전송 |
- Outstanding Transaction: 일반적인 전송에서는 요청을 보내고 응답이 올 때까지 기다렸다가 응답이 오면 다음 요청을 보내는 방식인데 반해, Outstanding Transaction에서는 요청을 보내고 기다리지 않고 바로 보내도록 해서 버스의 사용률을 극대화할 수 있음. 가능한 이유 -> ID기반이기 때문에 응답이 나왔을 때 이 응답이 어떤 ID로 가야하는지를 구분할 수 있기 때문