Study/FPGA

10. AMBA | AXI4와 AXI4-Stream의 차이점

도엔 2025. 3. 11. 22:37
728x90

AXI4와 AXI4-Stream은 AMBA (Advanced Microcontroller Bus Architecture) 프로토콜의 일부지만, 사용 목적과 데이터 전송 방식이 다르다.


==========𝔼𝔼𝟚𝟚==========

 

1. 비교표

구분 AXI4 (Memory-Mapped) AXI4-Stream
사용 목적 메모리 주소 기반 데이터 전송 연속적인 데이터 스트림 전송
주소 신호 존재 (주소를 통해 데이터 읽기/쓰기) 없음 (주소 지정 없이 데이터 흐름)
데이터 흐름 Request-Response 방식 (CPU, DMA 등) 단방향 스트리밍 (비디오, 네트워크 등)
핸드셰이크 신호 ARVALID, AWVALID, WVALID, RVALID, BVALID TVALID, TREADY
Ready 신호 읽기/쓰기 별도 (ARREADY, AWREADY, WREADY, RREADY, BREADY) 단일 Ready 신호 (TREADY)
데이터 구조 Burst 기반 (메모리 전송 최적화) 패킷 기반 (연속적인 데이터 처리)
응용 분야 CPU, DDR 컨트롤러, 메모리 맵 기반 통신 오디오, 비디오, 네트워크 패킷 전송

 

 -> 결국 Stream은 이름 그대로 비디오 이미지의 연속적인 전송이 목적이다.

 


==========𝔼𝔼𝟚𝟚==========

 

2. AXI4 (Memory-Mapped)

2.1 AXI4의 특징

  • 메모리 주소를 기반으로 데이터 전송
  • 읽기(READ)와 쓰기(WRITE)가 분리되어 독립적으로 동작
  • CPU, DMA, 메모리 컨트롤러와 같은 메모리 기반 시스템에서 사용

_

2.2 AXI4 동작

  1. Master가 Slave에게 읽기 또는 쓰기 요청을 보냄 (주소 포함)
  2. Slave는 요청을 받아서 해당 주소에서 데이터를 읽거나 씀
  3. 데이터가 전송되면, Response 신호를 통해 Master에게 완료를 알림

_

2.3 AXI4의 주요 신호

  • 주소 신호: ARADDR (읽기 주소), AWADDR (쓰기 주소)
  • 데이터 신호: RDATA (읽은 데이터), WDATA (쓰기 데이터)
  • Valid 신호: ARVALID, AWVALID, WVALID, RVALID, BVALID
  • Ready 신호: ARREADY, AWREADY, WREADY, RREADY, BREADY

_

예시) AXI4에서 메모리 읽기 요청 과정

  1. Master가 ARVALID=1과 함께 ARADDR=0x1000을 보냄
  2. Slave가 요청을 받아서 ARREADY=1로 응답
  3. Slave가 RVALID=1과 함께 RDATA=0x55를 보냄
  4. Master가 RREADY=1로 응답하여 데이터 수신 완료


==========𝔼𝔼𝟚𝟚==========

 

3. AXI4-Stream

3.1 AXI4-Stream의 특징

  • 주소가 없음 → 메모리 주소를 지정하지 않고 연속적인 데이터 스트림을 전송
  • 단순한 TVALID / TREADY 프로토콜 사용
  • 비디오, 오디오, 네트워크 패킷 등 연속적인 데이터 처리에 최적화

_

3.2 AXI4-Stream 동작

  1. Master가 데이터를 준비하면 TVALID를 1로 설정
  2. Slave가 데이터를 받을 준비가 되면 TREADY를 1로 설정
  3. TVALID와 TREADY가 동시에 1이 되면 데이터가 전송됨

_

3.3 AXI4-Stream의 주요 신호

  • TVALID → Master가 "데이터가 준비됨"을 알림
  • TREADY → Slave가 "데이터를 받을 준비됨"을 알림
  • TDATA → 전송되는 실제 데이터
  • TKEEP → 유효한 바이트 표시
  • TLAST → 마지막 데이터 패킷을 표시 (스트림 종료 시 사용)

_

예시) AXI4-Stream 데이터 전송 과정

  1. Master가 TVALID=1과 함께 TDATA=0x55를 보냄
  2. Slave가 데이터를 받을 준비가 되면 TREADY=1로 설정
  3. TVALID=1TREADY=1이 동시에 1이 되면 데이터 전송 완료


==========𝔼𝔼𝟚𝟚==========

 

4. 사용 목적

사용 사례 AXI4 (Memory-Mapped) AXI4-Stream
CPU ↔ RAM ✅ 사용 ❌ 사용 안 함
DMA ↔ DDR ✅ 사용 ❌ 사용 안 함
비디오 데이터 ❌ 사용 안 함 ✅ 사용
오디오 스트림 ❌ 사용 안 함 ✅ 사용
네트워크 패킷 ❌ 사용 안 함 ✅ 사용

 

_

# 정리

  • AXI4 : CPU와 메모리 간의 데이터 전송(주소 기반)
  • AXI4-Stream : 연속적인 데이터 스트림(주소 없이 빠르게)
728x90
반응형