AMBA AXI 프로토콜의 발전과정

 

AMBA AXI 프로토콜, 버전별 발전 과정 살펴보기

시스템 온 칩(SoC) 설계에서 고성능, 고효율 인터커넥트의 중요성은 아무리 강조해도 지나치지 않습니다. Arm의 AMBA(Advanced Microcontroller Bus Architecture) 사양 중 핵심인 AXI(Advanced eXtensible Interface) 프로토콜은 이러한 요구사항을 충족시키며 지속적으로 발전해왔습니다. AXI는 단순한 데이터 전송을 넘어, 복잡한 시스템에서 여러 구성 요소 간의 효율적인 통신을 위한 표준으로 자리 잡았습니다.

오늘은 AXI 프로토콜이 어떻게 진화해왔는지, 각 주요 버전별로 어떤 기능들이 추가되고 변경되었는지 알아보겠습니다.

AXI 프로토콜의 시작: AXI 1.0 & 2.0

AXI 프로토콜의 초기 버전인 AXI 1.0과 AXI 2.0은 고성능 버스 인터페이스의 필요성에 따라 등장했습니다. 이 초기 버전들은 AXI의 기본적인 아키텍처와 명령어 세트를 정의하며 후속 버전들의 기반을 마련했습니다. 다만, 이 시기의 상세한 변경 사항이나 추가 기능에 대한 구체적인 공개 자료는 많지 않아, 주로 AXI 3.0부터 실제적인 기능 확장과 개선이 두드러지기 시작했다고 보는 것이 일반적입니다.

AXI 3.0: 고성능 인터커넥트의 초석

2003년 AMBA 3 사양과 함께 등장한 AXI 3.0은 AXI 프로토콜의 중요한 진화 단계였습니다. 이전 버전들에서 다듬어진 개념을 바탕으로, 실제 고성능 SoC 설계에 필요한 기능들을 갖추기 시작했습니다.

  • 버스트 길이 확장: 최대 16비트(beat)까지의 버스트 전송을 지원하여, 더 많은 데이터를 한 번에 효율적으로 전송할 수 있게 되었습니다.
  • 쓰기 인터리빙(Write Interleaving) 지원: 여러 트랜잭션의 쓰기 데이터를 버스 상에서 섞어서 보낼 수 있게 하여, 쓰기 성능을 향상시키고 대기 시간을 줄였습니다. 이를 위해 WID 신호가 도입되었습니다.
  • 잠긴 트랜잭션(Locked Transfers) 지원: 마스터가 특정 리소스에 대한 독점적인 접근을 보장받을 수 있는 기능을 제공했습니다.

AXI 4.0: 성능 극대화와 다양화

2010년 AMBA 4 사양과 함께 출시된 AXI 4.0은 AXI 3.0의 개념을 계승하면서도 성능, 단순성, 그리고 다양한 사용 사례 지원에 초점을 맞춘 대대적인 개선을 이루었습니다.

  • 버스트 길이의 획기적인 확장: 최대 256비트(beat)까지 버스트 길이를 지원하여, 메모리 처리량을 크게 향상시키고 고대역폭 애플리케이션에 최적화되었습니다.
  • 쓰기 인터리빙 제거: 프로토콜을 단순화하고 인터커넥트 설계를 용이하게 하기 위해 AXI 3.0의 쓰기 인터리빙 기능이 제거되었습니다. 이에 따라 WID 신호는 더 이상 필요 없어졌습니다.
  • QoS(Quality of Service) 지원 도입: 트랜잭션의 우선순위를 지정할 수 있는 QoS 신호가 추가되어, 다양한 성능 요구사항을 가진 장치들이 공존하는 복잡한 시스템에서 효율적인 자원 관리가 가능해졌습니다.
  • 사용자 정의 신호(User Signals) 추가: AxUSERWUSERRUSERBUSER와 같은 선택적 사용자 신호가 도입되어, 각 트랜잭션에 사용자 정의 정보를 포함시킬 수 있게 되었습니다.
  • 영역 신호(Region Signals) 추가: AxREGION 신호가 도입되어, 단일 슬레이브 인터페이스를 여러 논리적 인터페이스나 디코딩 영역으로 분할하여 사용할 수 있게 되었습니다.
  • 잠긴 트랜잭션 제거: 시스템 설계 및 중재(arbitration)의 복잡성을 줄이기 위해 잠긴 트랜잭션 기능이 제거되었습니다.

AXI 4.0의 특화된 변형:
AXI 4.0은 특정 용도에 맞춰 더욱 최적화된 형태로 파생되었습니다.

  • AXI4-Lite: 주로 간단한 제어 레지스터와 같은 인터페이스 통신에 사용되는 단순화된 AXI4 버전입니다. 버스트 길이는 1로 고정되며, 모든 접근은 비버퍼링(non-buffered) 및 비수정(non-modifiable)입니다.
  • AXI4-Stream: 주소 지정 없이 고속으로 데이터를 마스터에서 슬레이브로 전송하는 데 최적화된 프로토콜입니다. 이는 순수 스트리밍 방식으로, 패킷 기반으로 거의 무제한적인 버스트 길이를 가질 수 있으며, 엄격하게 인오더(in-order)로 동작합니다.

AXI 5.0: 최신 기술 동향 반영 (간략 소개)

AXI 4.0 이후, AMBA 5 사양과 함께 AXI 5.0이 등장하며 더욱 발전된 기능을 선보였습니다. 비록 질문에서 직접적으로 요청되지는 않았지만, AXI 프로토콜의 연속적인 발전을 이해하는 데 도움이 됩니다. AXI 5.0은 원자적 트랜잭션(Atomic Transactions)향상된 디버깅을 위한 트레이스 신호(Trace Signals)보안 강화를 위한 메모리 태깅 확장(MTE)효율적인 흐름 제어를 위한 크레딧 기반 전송(Credit-Based Transport) 등 최신 SoC 설계 요구사항을 반영한 기능들을 포함하고 있습니다.

이처럼 AXI 프로토콜은 단순한 버스 인터페이스를 넘어, 복잡하고 고성능을 요구하는 현대 SoC 설계의 핵심 요소로 자리매김하며 꾸준히 발전해 나가고 있습니다.

📚 참고 자료

댓글