Este artículo presentará la Arquitectura de bus de microcontroladores avanzada (AMBA), un estándar abierto para los diseños de SoC.
A medida que la fabricación de semiconductores ha evolucionado, la capacidad de instalar más puertas lógicas en el mismo tamaño de la matriz ha aumentado constantemente. El hecho de poder incluir más y más componentes en el mismo chip llevó al nacimiento del SoC o sistema en un chip.
Un SoC se define típicamente como un circuito integrado que incluye todos los elementos necesarios que conforman una computadora. Esto incluye la CPU, la RAM, el almacenamiento no volátil, un UART y cualquier otro periférico que el sistema necesite. Con una gran cantidad de componentes diferentes en el mismo chip, la conexión y administración eficientes de estos subsistemas se convirtió rápidamente en un desafío.
La arquitectura de bus de microcontrolador avanzada (AMBA) es un intento de resolver este problema.
AMBA es un estándar abierto que describe cómo conectar y administrar los diferentes componentes o bloques dentro de un SoC. La especificación AMBA fue desarrollada por ARM y se ha convertido en el estándar de facto para la interconexión de componentes en un SoC. Mientras AMBA se encuentra actualmente en su 5th La revisión ha evolucionado significativamente con el tiempo, las implementaciones heredadas se utilizan ampliamente y siguen siendo relevantes. Teniendo esto en cuenta, este artículo utilizará la Revisión 2.0 como punto de partida y se desarrollará a partir de estas ideas en un artículo futuro.
La especificación AMBA se desarrolló para resolver algunos problemas clave en el diseño de un SoC. Uno de ellos es el desarrollo correcto por primera vez, lo que significa que si se usa correctamente, AMBA puede garantizar un diseño coherente desde el principio, reduciendo costosos rediseños. Otro requisito clave de AMBA era la independencia tecnológica o hacer que los diseños sean reutilizables y ajenos a los aspectos específicos de los componentes del sistema. Con el diseño del sistema modular, AMBA fomenta el desarrollo de bibliotecas de componentes para que el trabajo realizado una vez que no sea necesario repetirlo. Una motivación final de AMBA fue minimizar la cantidad de silicio que se necesitaba para las comunicaciones tanto en chip como fuera de chip.
Antes de continuar, considere consultar estos recursos relevantes para obtener más información:
En la Revisión 2.0 se describen tres buses distintos para facilitar las comunicaciones en el chip. Estos son el Bus avanzado de alto rendimiento (AHB), el Bus avanzado del sistema (ASB) y el Bus periférico avanzado (APB). El AHB es la columna vertebral del sistema y está diseñado específicamente para componentes de alto rendimiento y alta frecuencia. Esto incluye las conexiones de los procesadores, las memorias en chip y las interfaces de memoria, entre otras.
El ASB es una alternativa al AHB donde no se necesitan algunas características de alto rendimiento. El APB es una interfaz simplificada diseñada para periféricos de bajo ancho de banda que no requieren el alto rendimiento del AHB o el ASB. Estos incluyen componentes como un UART, GPIO de baja frecuencia y temporizadores.
El AHB fue una nueva adición a AMBA en la revisión 2.0. Se agregó para dar cabida a los diseños de alto rendimiento. Algunas de las nuevas características agregadas fueron transacciones divididas, traspaso maestro de bus de ciclo único, operación de borde de reloj único y configuraciones de bus de datos más amplias, es decir, 64/128 bits.
Un AHB debe contener una serie de componentes fuera de los maestros y esclavos. Estos componentes son un multiplexor de dirección y control, un multiplexor de lectura, un multiplexor de escritura, un decodificador y un árbitro. La figura 2 muestra tres maestros conectados a cuatro esclavos en un AHB. Las señales que se muestran son la señal de dirección (HADDR), el bus de datos de escritura (HWDATA) y el bus de datos de lectura (HRDATA). La dirección se utiliza para la selección de esclavos, el bus de datos de escritura se utiliza para mover datos de maestro a esclavo, y el bus de datos de lectura es para mover datos entre esclavo y maestro.
Cuando un maestro necesita tomar el control del bus, primero debe enviar una solicitud al árbitro.
El árbitro otorga acceso basado en un esquema de priorización que garantiza que los maestros con una prioridad más alta reciban primero el acceso. Este esquema de priorización no está definido por AMBA y diferirá entre los diseños. Se utilizan varias señales de control para definir la dirección, el ancho y el tipo de transferencia de datos. El decodificador AHB recibe la señal de dirección del maestro y la decodifica en señales de selección de esclavo. El esclavo responde al maestro a través de una señal HRESP y comienza la transferencia de datos entre el maestro y el esclavo.
En total, hay alrededor de 20 señales AHB diferentes, cada una con un propósito único. La Figura 3 muestra las señales de AHB junto con las señales de ASB para referencia.
El ASB es una versión simplificada del AHB y ofrece un alto rendimiento para sistemas de 16 y 32 bits. Muchas de las mismas señales en un AHB se usan para el ASB, aparte de ciertas señales de control que permiten transacciones divididas.
La operación del ASB comienza con un maestro que solicita acceso al bus desde el árbitro. El árbitro concede la solicitud y comienza la transferencia. El decodificador decodifica la dirección colocada en el bus y selecciona un esclavo. El esclavo responde al maestro y la transferencia de datos se lleva a cabo.
El APB es una interfaz simplificada para componentes de sistemas de baja frecuencia. La Revisión 2 simplificó aún más el bus al tener todas las transiciones de señal sincronizadas con el flanco ascendente del reloj.
El APB consiste en un único bus maestro llamado el puente APB, que actúa como esclavo en el AHB / ASB. Por lo tanto, el puente es la interfaz entre el bus de alto rendimiento y los periféricos de baja frecuencia. Los dispositivos periféricos en el APB son los esclavos. La Figura 4 enumera los nombres de las señales APB.
La Figura 5 a continuación muestra un sistema AMBA de ejemplo que se ejecuta con dos maestros AHB, un esclavo AHB y dos esclavos APB. Observe también el árbitro AHB, el decodificador AHB y el puente APB.
El puente APB tiene una interfaz de esclavo AHB, por lo que se parece a otro esclavo de los maestros. Este sistema se ha simplificado con algunas señales y elementos menores (como señales de reinicio y multiplexores) eliminados. Las señales de salida salen del lado derecho de un bloque y las señales de entrada ingresan al lado izquierdo de un bloque. Las señales de entrada también se denotan mediante una punta de flecha. Las líneas más gruesas representan rutas de datos más grandes.
Este sistema está realizando una escritura a uno de los esclavos APB en el transcurso de aproximadamente siete ciclos de reloj. El AHB es un bus segmentado y tiene rutas de lectura y escritura dedicadas, por lo que una lectura podría ocurrir en la mitad de esta escritura. Para obtener información de tiempo más precisa, consulte la revisión estándar de AMBA 2.0.
Finalmente, los AHB alcanzaron los límites de rendimiento y para 2003 ARM había lanzado una nueva generación de protocolos AMBA. La revisión 3.0 de AMBA introdujo el protocolo AXI. AXI significa Interfaz Extensible Avanzada y ofrece un rendimiento aún mayor que el AHB, implementado a través de un esquema de conexión punto a punto. En lugar de un bus de sistema, la interconexión AXI permite transacciones entre maestros y esclavos usando solo unas pocas interfaces bien definidas.
En el siguiente artículo de AMBA, analizaremos AXI3 y AXI4 y cómo se utilizan para interconectar los componentes de SoC.
En este artículo, presentamos la arquitectura de bus de microcontrolador avanzada o AMBA. AMBA es un estándar abierto que describe cómo los componentes de un SoC pueden intercambiar datos de manera rápida y eficiente.
AMBA se ha convertido en un estándar de facto y actualmente se encuentra en su quinta revisión. Comenzando con la revisión 2.0, analizamos el AHB, el ASB y el APB y cómo funcionan desde un alto nivel. Si bien muchos de estos protocolos de bus han sido reemplazados por futuras revisiones de AMBA, siguen siendo relevantes en los diseños heredados y como base para el aprendizaje futuro.
Ya sea que esté interesado en el diseño de SoC profesionalmente o como pasatiempo, AMBA es un paso crucial en su viaje.
ga('create', 'UA-1454132-1', 'auto'); ga('require', 'GTM-MMWSMVL'); ga('require', 'displayfeatures'); ga('set',{'dimension1':'embedded,computing,connectors,embedded,engineering-consulting'}); ga('set',{'contentGroup1':'embedded,computing,connectors,embedded,engineering-consulting'});
ga('set',{'dimension3':"June 02, 2019"});
ga('set',{'dimension4':"Stephen St. Michael"});
ga('send', 'pageview');
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1808435332737507'); // Insert your pixel ID here. fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['embedded','computing','connectors','embedded','engineering-consulting'], content_type: 'category'});
_linkedin_data_partner_id = "353081"; (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); } if(jstz.determine().name().indexOf("Europe") === -1) { showSocialCode(); // NOT EU } else { showSocialCode(); window.addEventListener("load", function () { window.cookieconsent.initialise({ "palette": { "popup": { "background": "#252e39" }, "button": { "background": "#14a7d0" } }, "type": "opt-out", "content": { "message": "This website uses tracking cookies to ensure you get the best experience on our website.", "href": "https://www.allaboutcircuits.com/privacy-policy/", "dismiss": "OK, GOT IT" }, onInitialise: function (status) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onStatusChange: function (status, chosenBefore) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onRevokeChoice: function () { var type = this.options.type; if (type == 'opt-out') { console.log("eu"); //showSocialCode(); } },
}) }); }
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…