어드밴스트 마이크로컨트롤러 버스 아키텍처
1. 개요
어드밴스트 마이크로컨트롤러 버스 아키텍처(AMBA)는 SoC(System on Chip) 내에서 구성 요소 간의 상호 연결을 위한 온칩 통신 표준으로, Arm에서 지원하며 다양한 산업에서 사용된다. AMBA는 여러 CPU, GPU, 신호 프로세서를 갖춘 임베디드 마이크로컨트롤러 제품의 설계를 지원하며, IP 코어의 재사용성, 모듈형 시스템 설계, 고성능 및 저전력 지원을 목표로 한다. AMBA는 AXI, AHB, APB 등 다양한 프로토콜을 정의하며, AMBA 5부터 AMBA 2까지 여러 버전의 규격이 존재한다. AMBA 제품군은 Arm에서 라이선스를 제공하는 IP 코어 제품군으로, SoC에서 데이터를 효율적으로 이동하고 저장하는 데 사용되며, 인피니언과 같은 다른 제조업체에서도 사용된다. AMBA와 경쟁하는 기술로는 Wishbone, CoreConnect, Avalon 등이 있다.
-
시스템 온 칩 -
애플 실리콘
애플 실리콘은 애플이 자체 설계한 시스템 온 칩(SoC) 제품군으로, 아이폰, 아이패드, 맥 등 다양한 애플 기기에 사용되며 A, H, M, R, S, T, U, W 시리즈 및 M 시리즈 보조 프로세서로 구성된다. -
시스템 온 칩 -
미디어텍
미디어텍은 1997년 설립된 대만의 반도체 설계 회사로, 스마트폰 칩셋 공급업체로 성장하여 2020년 퀄컴을 제치고 세계 최대 규모가 되었으며, AIoT 등 다양한 분야로 사업을 확장하고 탄소 순 배출량 제로를 목표로 한다. -
컴퓨터 버스 -
NMEA 0183
NMEA 0183은 선박용 GPS, 자동식별장치(AIS) 등 항해 장비에서 데이터를 송수신하는 데 사용되는 ASCII 기반의 직렬 통신 프로토콜로, RS-422 전기 표준을 사용하며, 문장 형태의 데이터를 통해 정보를 전달하고, 물리 계층, 데이터 링크 계층, 애플리케이션 계층의 3가지 레이어로 구성되어 다양한 소프트웨어에서 지원된다. -
컴퓨터 버스 -
인피니밴드
인피니밴드는 고성능 컴퓨팅 환경에서 서버, 스토리지, 네트워크 장치 간 고속 데이터 전송을 위한 직렬 통신 기술로, 슈퍼컴퓨터나 데이터 센터에서 주로 사용되지만 이더넷 기반 기술과의 경쟁 및 새로운 컴퓨팅 환경에 대한 적응이라는 과제를 안고 있다.
2. 설계 원칙
SoC의 중요한 측면은 구성 요소나 블록을 포함하는 것뿐만 아니라, 이들이 어떻게 상호 연결되는지도 포함한다. AMBA는 블록들이 서로 인터페이스할 수 있도록 하는 솔루션이다.
AMBA 사양의 목표는 다음과 같다.
* 하나 이상의 CPU, GPU 또는 신호 프로세서를 갖춘 임베디드 마이크로컨트롤러 제품의 최초 설계부터 올바른 개발을 촉진한다.
* IP 코어, 주변 장치 및 시스템 매크로 셀을 다양한 IC 공정에서 재사용할 수 있도록 기술 독립성을 유지한다.
* 프로세서 독립성을 개선하고 재사용 가능한 주변 장치 및 시스템 IP 라이브러리의 개발을 장려하는 모듈형 시스템 설계를 장려한다.
* 온칩 통신에서 고성능 및 저전력을 지원하면서 실리콘 인프라를 최소화한다.
3. AMBA 프로토콜 사양
AMBA 규격은 고성능 임베디드 마이크로컨트롤러 설계를 위한 온칩 통신 표준으로, Arm에서 지원하며 광범위한 산업 참여가 이루어지고 있다.
AMBA 5 규격은 다음 버스/인터페이스를 정의한다.
* AXI5, AXI5-Lite 및 ACE5 프로토콜 규격
* 고급 고성능 버스(AHB5, AHB-Lite)
* 일관성 허브 인터페이스(CHI)
* 분산 변환 인터페이스(DTI)
* 일반 플래시 버스(GFB)
AMBA 4 규격은 Cortex-A7 및 Cortex-A15를 포함한 최신 Arm Cortex-A 프로세서에서 널리 사용되는 AXI 일관성 확장(ACE)을 포함하여 다음과 같은 버스/인터페이스를 정의한다.
* AXI 일관성 확장 라이트(ACE-Lite)
* 고급 확장 인터페이스 4(AXI4)
* 고급 확장 인터페이스 4 라이트(AXI4-Lite)
* 고급 확장 인터페이스 4 스트림(AXI4-Stream v1.0)
* 고급 트레이스 버스(ATB v1.1)
* 고급 주변 버스(APB4 v2.0)
* AMBA 저전력 인터페이스(Q-채널 및 P-채널)
AMBA 3 규격은 Cortex-A9를 포함한 Arm Cortex-A 프로세서에서 널리 사용되는 Advanced eXtensible Interface(AXI3 또는 AXI v1.0)를 포함하여 네 가지 버스/인터페이스를 정의한다.
* 고급 고성능 버스 라이트(AHB-Lite v1.0)
* 고급 주변 버스(APB3 v1.0)
* 고급 트레이스 버스(ATB v1.0)
AMBA 2 규격은 ARM7, ARM9 및 Arm Cortex-M 기반 설계에서 널리 사용되는 고급 고성능 버스(AHB)를 포함하여 세 가지 버스/인터페이스를 정의한다.
* 고급 시스템 버스(ASB)
* 고급 주변 버스(APB2 또는 APB)
AMBA 규격 초판은 두 가지 버스/인터페이스를 정의한다.
* 고급 시스템 버스(ASB)
* 고급 주변 버스(APB)
버스상의 타이밍 측면 및 전압 레벨은 규격에 의해 규정되지 않는다.
3.1. AMBA 5 규격
3.2. AMBA 4 규격
3.3. AMBA 3 규격
3.4. AMBA 2 규격
3.5. 이전 규격
4. 주요 프로토콜
4.1. AXI Coherency Extensions (ACE and ACE-Lite)
AMBA 4 사양의 일부로 정의된 ACE는 AXI를 확장하여 시스템 전체의 일관성을 제공한다. 이를 통해 여러 프로세서가 메모리를 공유하고 Arm의 big.LITTLE 프로세싱과 같은 기술을 사용할 수 있다. ACE-Lite는 단방향 일관성, 즉 I/O 일관성을 지원한다. 예를 들어, 완전한 일관성을 가진 ACE 프로세서의 캐시에서 읽을 수 있는 네트워크 인터페이스가 있다.
4.2. Advanced eXtensible Interface (AXI)
어드밴스트 익스텐저블 인터페이스(Advanced eXtensible Interface, AXI)는 AMBA 3 규격에 정의된 AMBA 인터페이스의 3세대이며, 고성능, 고 클럭 주파수 시스템 설계를 목표로 한다. 고속 서브 마이크로미터 상호 연결에 적합하도록 다음과 같은 기능을 포함한다.
* 주소/제어와 데이터 단계를 분리한다.
* 바이트 스트로브를 사용하여 정렬되지 않은 데이터 전송을 지원한다.
* 시작 주소만 발행하는 버스트 기반 트랜잭션을 사용한다.
* 응답 순서에 관계없이 여러 개의 미해결 주소를 발행할 수 있다.
* 타이밍 마감(timing closure)을 제공하기 위한 레지스터 스테이지를 쉽게 추가할 수 있다.
4.3. Advanced High-performance Bus (AHB)
AHB는 Arm 사에서 발표한 Advanced Microcontroller Bus Architecture(어드밴스트 마이크로컨트롤러 버스 아키텍처) 버전 2에 도입된 버스 프로토콜이다.
이전 릴리스 외에 다음과 같은 특징이 있다.
* 큰 버스 폭(64/128/256/512/1024 비트).
AHB에서의 단순한 트랜잭션은 주소 단계와 그 다음 데이터 단계로 구성된다(대기 상태 없음: 단 두 개의 버스 사이클). 대상 장치에 대한 액세스는 MUX(비 트라이스테이트)를 통해 제어되므로 한 번에 하나의 버스 마스터에게 버스 액세스를 허용한다.
AMBA 3 표준에 공식적으로 정의된 AHB-Lite는 단일 마스터가 있는 버스에 대한 설계를 단순화한 AHB의 부분 집합이다.
4.4. Advanced Peripheral Bus (APB)
Advanced Peripheral Bus (APB)는 저대역폭 제어 접근, 예를 들어 시스템 주변 장치의 레지스터 인터페이스를 위해 설계되었다. 이 버스는 AHB와 유사한 주소 및 데이터 단계를 가지지만, 훨씬 축소된, 낮은 복잡성의 신호 목록(예: 버스트 없음)을 가지고 있다. 또한, 낮은 비트 폭(32비트)을 가진 저주파 시스템을 위해 설계된 인터페이스이다.
5. AMBA 제품군
Arm에서 라이선스를 제공하는 AMBA 제품은 합성 가능한 지적 재산(IP) 코어 제품군으로, Arm의 AMBA 프로토콜 사양을 사용하여 SoC에서 데이터를 효율적으로 이동하고 저장하기 위한 디지털 버스를 구현한다. AMBA 제품군에는 AMBA Network Interconnect (CoreLink NIC-400), Cache Coherent Interconnect (CoreLink CCI-500), SDRAM 메모리 컨트롤러(CoreLink DMC-400), DMA 컨트롤러(CoreLink DMA-230, DMA-330), 2단계 캐시 컨트롤러(L2C-310) 등이 포함된다.
인피니언과 같이 다수의 제조업체에서 비-ARM 설계를 위해서도 AMBA 버스를 사용한다. 예를 들어 인피니언은 MIPS 아키텍처 기반의 ADM5120 SoC에 AMBA 버스를 사용한다.
6. 경쟁 기술
어드밴스트 마이크로컨트롤러 버스 아키텍처(AMBA)와 경쟁하는 온칩 버스 아키텍처 및 인터페이스 기술은 다음과 같다.
* 위시본 - 오픈코어스의 자유 오픈 버스 아키텍처 (이전에는 실리코어(Silicore)에서 개발)
* 코어커넥트 - IBM의 버스 기술로 IBM의 임베디드 파워PC에 사용되었으며, 자일링스 마이크로블레이즈 또는 유사한 코어를 사용하는 많은 다른 SoC 유사 시스템에도 사용됨
* IDT(Integrated Device Technology)의 IPBus
* 아발론 - 알테라에서 자사의 Nios II SoC에 사용하기 위한 독점 버스 시스템
* 어셀레라의 오픈 코어 프로토콜
* AMD의 하이퍼트랜스포트 (온칩 버스가 아닌 오프칩 인터페이스)
* 인텔의 퀵패스 인터커넥트 (온칩 버스가 아닌 오프칩 인터페이스)
* PICC의 가상 공유 - 자유 오픈 소스
* 칩스 얼라이언스의 타일링크(TileLink) - 자유 오픈 버스 아키텍처