La arquitectura de bus de microcontroladores avanzados de Arm ( AMBA ) es una especificación de interconexión en chip de estándar abierto para la conexión y gestión de bloques funcionales en diseños de sistemas en un chip (SoC). Facilita el desarrollo de diseños multiprocesador con un gran número de controladores y componentes con una arquitectura de bus . Desde su creación, el alcance de AMBA, a pesar de su nombre, se ha extendido mucho más allá de los dispositivos microcontroladores. Hoy en día, AMBA se utiliza ampliamente en una variedad de componentes ASIC y SoC, incluidos los procesadores de aplicaciones utilizados en dispositivos móviles portátiles modernos como los teléfonos inteligentes . AMBA es una marca registrada de Arm Ltd. [ 1 ]
AMBA fue presentado por Arm en 1996. Los primeros buses AMBA fueron el Advanced System Bus (ASB) y el Advanced Peripheral Bus (APB). En su segunda versión, AMBA 2 en 1999, Arm agregó AMBA High-performance Bus (AHB), que es un protocolo de flanco de reloj único. En 2003, Arm presentó la tercera generación, AMBA 3, que incluía Advanced eXtensible Interface (AXI) para lograr una interconexión de rendimiento aún mayor y el Advanced Trace Bus (ATB) como parte de la solución de depuración y rastreo en chip CoreSight. En 2010 se presentaron las especificaciones AMBA 4 comenzando con AMBA 4 AXI4, luego en 2011 [ 2 ] extendiendo la coherencia de todo el sistema con AMBA 4 AXI Coherency Extensions (ACE). En 2013 [ 3 ] se presentó la especificación AMBA 5 Coherent Hub Interface (CHI), con una capa de transporte de alta velocidad rediseñada y características diseñadas para reducir la congestión. Estos protocolos son hoy en día el estándar de facto para las arquitecturas de bus de procesadores integrados porque están bien documentados y se pueden utilizar sin pagar derechos de autor.
Principios de diseño

Un aspecto importante de un SoC no es solo qué componentes o bloques alberga, sino también cómo se interconectan. AMBA es una solución para que los bloques se comuniquen entre sí.
El objetivo de la especificación AMBA es:
- facilitar el desarrollo correcto a la primera de productos de microcontroladores integrados con una o más CPU, GPU o procesadores de señal,
- ser tecnológicamente independiente, para permitir la reutilización de núcleos IP , macroceldas periféricas y del sistema en diversos procesos de circuitos integrados,
- Fomentar el diseño de sistemas modulares para mejorar la independencia del procesador y el desarrollo de bibliotecas de IP de sistemas y periféricos reutilizables.
- Minimizar la infraestructura de silicio al tiempo que se admite una comunicación en el chip de alto rendimiento y bajo consumo energético.
Especificaciones del protocolo AMBA
La especificación AMBA define un estándar de comunicaciones en chip para el diseño de microcontroladores integrados de alto rendimiento. Cuenta con el respaldo de Arm Limited y una amplia participación de diversos sectores.
La especificación AMBA 5 define los siguientes buses/interfaces:
- Especificación de protocolo AXI5, AXI5-Lite y ACE5
- Bus avanzado de alto rendimiento (AHB5, AHB-Lite)
- Interfaz de concentrador coherente (CHI) [ 3 ]
- Interfaz de traducción distribuida (DTI)
- Bus Flash Genérico (GFB)
La especificación AMBA 4 define los siguientes buses/interfaces:
- Extensiones de coherencia AXI (ACE): ampliamente utilizadas en los procesadores Arm Cortex-A más recientes, incluidos Cortex-A7 y Cortex-A15.
- Extensiones de coherencia AXI Lite (ACE-Lite)
- Interfaz Extensible Avanzada 4 (AXI4)
- Interfaz Extensible Avanzada 4 Lite (AXI4-Lite)
- Interfaz extensible avanzada de 4 flujos (AXI4-Stream v1.0)
- Bus de rastreo avanzado (ATB v1.1)
- Bus periférico avanzado (APB4 v2.0)
- Interfaces AMBA de baja potencia (canal Q y canal P)
La especificación AMBA 3 define cuatro buses/interfaces:
- Interfaz extensible avanzada (AXI3 o AXI v1.0): ampliamente utilizada en procesadores Arm Cortex-A, incluido el Cortex-A9.
- Bus Lite de alto rendimiento avanzado (AHB-Lite v1.0)
- Bus periférico avanzado (APB3 v1.0)
- Bus de rastreo avanzado (ATB v1.0)
La especificación AMBA 2 define tres buses/interfaces:
- Bus avanzado de alto rendimiento (AHB): ampliamente utilizado en diseños basados en ARM7, ARM9 y Arm Cortex-M.
- Bus de sistema avanzado (ASB)
- Bus periférico avanzado (APB2 o APB)
La especificación AMBA (primera versión) define dos buses/interfaces:
- Bus de sistema avanzado (ASB)
- Bus periférico avanzado (APB)
Los aspectos de temporización y los niveles de voltaje en el bus no están determinados por las especificaciones.
Extensiones de coherencia AXI (ACE y ACE-Lite)
ACE , definido como parte de la especificación AMBA 4, extiende AXI con señalización adicional que introduce coherencia en todo el sistema. [ 4 ] Esta coherencia del sistema permite que múltiples procesadores compartan memoria y habilita tecnologías como el procesamiento big.LITTLE de Arm . El protocolo ACE-Lite permite la coherencia unidireccional, también conocida como coherencia de E/S; por ejemplo, una interfaz de red que puede leer desde las cachés de un procesador ACE totalmente coherente.
Interfaz extensible avanzada (AXI)
AXI , la tercera generación de interfaz AMBA definida en la especificación AMBA 3, está dirigida a diseños de sistemas de alto rendimiento y alta frecuencia de reloj e incluye características que la hacen adecuada para interconexiones submicrométricas de alta velocidad:
- Fases separadas de dirección/control y datos
- Compatibilidad con transferencias de datos no alineadas mediante señales de byte
- Transacciones basadas en ráfagas con solo la dirección de inicio emitida
- emisión de múltiples direcciones pendientes con respuestas fuera de orden
- Fácil adición de etapas de registro para proporcionar un cierre de temporización.
Bus avanzado de alto rendimiento (AHB)
AHB es un protocolo de bus introducido en la versión 2 de la arquitectura avanzada de bus para microcontroladores, publicada por la empresa Arm Ltd.
Además de la versión anterior, incluye las siguientes características:
- Anchos de bus grandes (64/128/256/512/1024 bits).
Una transacción simple en el AHB consta de una fase de direccionamiento y una fase de datos posterior (sin estados de espera: solo dos ciclos de bus). El acceso al dispositivo de destino se controla mediante un MUX (no triestado), lo que permite el acceso al bus a un único maestro de bus a la vez.
AHB-Lite es un subconjunto de AHB definido formalmente en el estándar AMBA 3. Este subconjunto simplifica el diseño para un bus con un único maestro.
Bus periférico avanzado (APB)
APB está diseñado para accesos de control de bajo ancho de banda, por ejemplo, interfaces de registro en periféricos del sistema. Este bus tiene una fase de direcciones y datos similar a AHB, pero con una lista de señales mucho más reducida y de baja complejidad (por ejemplo, sin ráfagas). Además, es una interfaz diseñada para un sistema de baja frecuencia con un ancho de bits reducido (32 bits).
Productos AMBA
La familia de núcleos de propiedad intelectual ( IP ) sintetizables AMBA Products, que se puede licenciar a través de Arm Limited , implementa un bus digital en un SoC para la transferencia y el almacenamiento eficiente de datos utilizando las especificaciones del protocolo AMBA. La familia AMBA incluye AMBA Network Interconnect (CoreLink NIC-400), Cache Coherent Interconnect (CoreLink CCI-500), controladores de memoria SDRAM (CoreLink DMC-400), controladores DMA (CoreLink DMA-230, DMA-330), controladores de caché de nivel 2 (L2C-310), etc.
Varios fabricantes utilizan buses AMBA para diseños que no son ARM. Por ejemplo, Infineon utiliza un bus AMBA para el SoC ADM5120 basado en la arquitectura MIPS .
Competidores
- Wishbone de OpenCores : arquitectura de bus libre y abierta (anteriormente de Silicore).
- La tecnología de bus CoreConnect de IBM se utiliza en el PowerPC integrado de IBM , pero también en muchos otros sistemas tipo SoC con el MicroBlaze de Xilinx o núcleos similares.
- IPBus de IDT
- Avalon : sistema de bus propietario de Altera para su uso en sus SoC Nios II [ 5 ].
- Protocolo de núcleo abierto (OCP) de Accellera
- HyperTransport (HT) de AMD (aunque se trata de una interfaz externa al chip, no de un bus interno al chip).
- QuickPath Interconnect (QPI) de Intel (aunque se trata de una interfaz externa al chip, no de un bus integrado en el chip).
- Compartir virtualmente desde PICC: gratuito y de código abierto.
- TileLink: arquitectura de bus libre y abierta de CHIPS Alliance [ 6 ]
Véase también
- Especificación funcional
- Maestro/esclavo (tecnología)
- Red en un chip , una alternativa a las arquitecturas basadas en bus.
Referencias
- ↑ Licencia de marca registrada AMBA, http://arm.com/about/trademarks/arm-trademark-list/AMBA-trademark.php
- ↑ La nueva especificación AMBA 4 optimiza la coherencia para SoC multinúcleo heterogéneos, https://www.arm.com/new-amba-4-specification-optimizes-coherency-for-heterogeneous-multicore-socs.php
- 1 2 Arm anuncia la especificación AMBA 5 CHI para habilitar una tecnología de sistema en chip de alto rendimiento y altamente escalable, http://www.arm.com/about/newsroom/arm-announces-amba-5-chi-specification-to-enable-high-performance-highly-scalable-system-on-chip.php
- ↑ Kriouile, A., & Serwe, W. (2013). Análisis formal de la especificación ACE para sistemas en chip con coherencia de caché. En Métodos formales para sistemas críticos industriales (pp. 108-122). Springer Berlin Heidelberg., ISBN 978-3-642-41010-9
- ↑ Avalon
- ↑ "Chips Alliance" . Chips Alliance . Consultado el 21 de junio de 2020 .
Enlaces externos
- Página principal de AMBA para desarrolladores de Arm - desde Arm
- Página principal de la especificación AMBA - de ARM
- AMBA de ARM
- Documentación de AMBA - de ARM
- Especificación AMBA 2, incluyendo AHB - de ARM
- Especificación del protocolo AMBA AXI y ACE AXI3, AXI4 y AXI4-Lite, ACE y ACE-Lite - de ARM
- Especificación AMBA APB, incluyendo APB4, APB3, APB2 - de ARM
- buses informáticos
- Sistema en un chip
- Arquitectura ARM