Categories: NoticiasTecnología

Introducción a la interfaz extensible avanzada (AXI)

Este artículo presentará la Interfaz Extensible Avanzada (AXI), una extensión de AMBA.

En un artículo anterior, discutí la Revisión 2.0 de la Arquitectura avanzada de bus de microcontrolador, o AMBA. AMBA es un estándar abierto para el diseño de SoC creado por Arm para permitir diseños de alto rendimiento, modulares y reutilizables que funcionan bien la primera vez y minimizan la potencia y el silicio.

Este artículo discutirá la tercera revisión de AMBA, que introdujo el protocolo de interfaz extensible avanzada (AXI) en el mundo.

Originalmente concebido para sistemas de alta frecuencia, el protocolo AXI fue diseñado para cumplir con los requisitos de interfaz para una amplia gama de componentes, al tiempo que permite flexibilidad en la forma en que esos componentes están interconectados. Adecuado para diseños de alta frecuencia y baja latencia, AXI sigue siendo compatible con versiones anteriores de AHB y APB de la revisión anterior de AMBA.

Comprender AXI le dará una visión profunda de cómo funciona un SoC, al tiempo que lo convierte en un diseñador versátil y completo.

La arquitectura AXI

Recuerde que el AHB (Advanced High Performance Bus) es un bus de un solo canal que utilizan múltiples maestros y esclavos para intercambiar información. Un árbitro prioritario determina qué maestro utiliza actualmente el bus, mientras que un decodificador central realiza la selección esclava. Las operaciones se realizan en ráfagas que pueden tomar varios ciclos de bus para completarse. Cada transferencia de ráfaga consta de una fase de dirección y control seguida de una fase de datos.

AXI fue diseñado con una filosofía similar, pero utiliza múltiples canales dedicados para leer y escribir. AXI se basa en ráfagas como su predecesor y utiliza una dirección y una fase de control similares antes del intercambio de datos. AXI también incluye una serie de nuevas características que incluyen transacciones fuera de servicio, transferencias de datos no alineadas, señales de soporte de caché y una interfaz de baja potencia.

Canales AXI

Hay cinco canales independientes entre un maestro AXI y un esclavo. Ellos son los:

  • Leer canal de dirección
  • Leer canal de datos
  • Escribir canal de dirección
  • Escribir canal de datos
  • Escribir canal de respuesta

Los canales de dirección se utilizan para enviar información de dirección y control mientras se realiza un protocolo de enlace básico entre maestro y esclavo. Los canales de datos son donde se coloca la información que se intercambiará.

Un maestro lee y escribe datos de un esclavo. La información de respuesta de lectura se coloca en el canal de datos de lectura, mientras que la información de respuesta de escritura tiene un canal dedicado. De esta forma, el maestro puede verificar que se haya completado una transacción de escritura.

La Figura 1 muestra un maestro y esclavo AXI conectado a través de los cinco canales AXI.

Figura 1. Canales AXI

Cada intercambio de datos se llama una transacción. Una transacción incluye la dirección y la información de control, los datos enviados, así como cualquier información de respuesta. Los datos reales se envían en ráfagas que contienen múltiples transferencias. La Figura 1 muestra una ráfaga de lectura y escritura compuesta de 4 tiempos o transferencias de datos.

Discutimos las explosiones con más detalle más adelante en el artículo.

Señales AXI

Al igual que las señales AHB, ASB y APB de la revisión anterior de AMBA, cada uno de los canales AXI tiene varias señales asociadas. Hay dos señales globales denominadas ACLK y ARESETn. Estos son el reloj global del sistema y la señal de reinicio, respectivamente. El sufijo 'n' en ARESETn significa que esta señal está activa baja.

La figura 2 muestra las señales correspondientes a los canales de lectura, así como las señales globales.

Figura 2. Leer direcciones, leer datos y señales globales

Cada canal tiene una etiqueta de identificación utilizada para transacciones fuera de servicio. Cualquier transacción con la misma ID debe permanecer en orden, pero las transacciones con diferentes ID pueden completarse en cualquier orden. Esto permite completar transacciones más rápidas antes que las más lentas, incluso si la transacción más lenta se emitió primero. Por ejemplo, si un maestro está escribiendo datos en varios esclavos, los ID de transacción permitirían que el esclavo más rápido termine antes.

Los anchos de bus son específicos de la implementación, pero estas señales se muestran con un ancho de bus de 32 bits. El esclavo utiliza la señal RLAST para indicarle al maestro que se está transfiriendo el último elemento de datos.

Otras señales notables incluyen el tamaño, la longitud y el tipo de ráfaga. Las señales VALID y READY se usan para el apretón de manos entre maestro y esclavo. Estos serán discutidos más adelante en el artículo.

Las señales de caché, bloqueo y protección se utilizan para el almacenamiento en caché, el acceso exclusivo (operaciones atómicas) y la protección de acceso ilegal, respectivamente.

Figura 3. Escribir direcciones, datos y señales de respuesta

La Figura 3 muestra la dirección de escritura, los datos y las señales de respuesta. Estas señales reflejan las señales de lectura anteriores pero son utilizadas por el maestro para enviar datos a un esclavo. WLAST le indica al esclavo que se está enviando el último elemento de datos. Las señales de respuesta de escritura dedicadas permiten que un maestro sepa que la transacción de escritura se completó con éxito.

Para obtener una descripción más detallada de estas señales, consulte la revisión 3.0 de AMBA, específicamente la especificación AMBA AXI Protocol v1.0.

Transacciones AXI

Como se mencionó anteriormente, una transferencia de datos AXI se denomina transacción. Las transacciones pueden tomar la forma de lecturas o escrituras e incluir información de dirección / control, datos y una respuesta. Los datos se envían en forma de ráfagas, que incluyen múltiples elementos de datos llamados latidos. Para sincronizar el envío y la recepción de datos, un maestro y esclavo AXI realizan un apretón de manos al comienzo de una transacción utilizando las señales READY y VALID.

Apretón de manos del canal

Cada canal AXI contiene una señal VÁLIDA y LISTA. Estos se utilizan para sincronizar y controlar la velocidad de transferencia. Lo importante a recordar aquí es que la fuente, o el remitente, usa la señal VÁLIDA para indicar que hay datos o información de control disponible. El destino, o receptor, señala READY cuando realmente puede consumir esa información. Por lo tanto, una transferencia solo puede ocurrir cuando se afirman las señales VÁLIDO y LISTO.

La Figura 4 muestra el apretón de manos AXI en el trabajo. La transferencia de información de aviso (indicada por una flecha) solo ocurre cuando VÁLIDO y LISTO son altos, independientemente de cuál se haya afirmado primero. También tenga en cuenta que AXI utiliza el flanco ascendente del reloj para todas las transferencias.

Figura 4. Mecanismo de apretón de manos AXI (adaptado de la especificación AXI v1.0)

Una nota importante dentro de la especificación AXI es que la señal VÁLIDA de un componente nunca debe depender de la señal LISTO de otro. LISTO puede esperar la señal VÁLIDA, pero no tiene que hacerlo. Seguir estas reglas elimina la posibilidad de que ocurra un punto muerto. Si VÁLIDO depende de LISTO y LISTO depende de VÁLIDO, es fácil ver que ninguna de las señales se puede afirmar, porque cada una está esperando a la otra.

Explosiones AXI

Los intercambios de datos en AXI toman la forma de ráfagas. Cada ráfaga consta de múltiples latidos o transferencias de datos. La información de control enviada al comienzo de una transacción indica la longitud, el tamaño y el tipo de ráfaga que se transfiere.

AXLEN[3:0], X para R o W, indica el número de latidos en una ráfaga. Con 4 bits de ancho, esto significa que puede haber un máximo de 16 transferencias en una ráfaga. AXLEN = b0000 significa que hay un latido por ráfaga. Los valores de b0001, b0010 y b0011 representan dos tiempos, tres tiempos y cuatro tiempos, respectivamente. Este patrón continúa hasta los dieciséis. Los componentes deben completar todos los tiempos especificados por AXLEN, ya sea que use los datos o no.

AXSIZE[2:0] especifica cuántos bytes hay en cada latido de una ráfaga. Cada bit en AXSIZE representa otra potencia de dos, con '000' que representa 1 byte por latido y '111' que representa un máximo de 128 bytes por latido. El tamaño de estos tiempos no puede exceder el ancho del bus.

AXBURST[1:0] determina el tipo de ráfaga que se realizará.

Hay tres tipos de ráfagas en AXI. Son:

  • Explosiones fijas
  • Explosiones crecientes
  • Envolviendo explosiones

En una ráfaga fija, la dirección no cambia para cada latido. Una aplicación típica para esto es una cola / buffer FIFO.

Las ráfagas incrementales representan el tipo más típico de transferencia donde la dirección de transferencia se incrementa después de cada latido. Puede pensar en esto como un desplazamiento desde una dirección base.

El tipo de ráfaga final es la ráfaga de envoltura. Una ráfaga de ajuste es similar a una ráfaga de incremento, excepto que existe un límite de ajuste, en el que una vez que la dirección se incrementa hasta ese punto, se ajusta a una dirección más baja.

La Figura 5 muestra una vista simplificada de los tres tipos diferentes de ráfagas AXI.

Figura 5. Tipos de ráfagas AXI

Interconexiones AXI

Las interconexiones AXI permiten que múltiples maestros y / o esclavos múltiples se interconecten entre sí. La especificación AXI define la interfaz entre un maestro y un esclavo, un maestro y una interconexión, y un esclavo y una interconexión.

En realidad, las interconexiones contienen interfaces esclavas que se conectan a maestros AXI e interfaces maestras que se conectan a esclavos AXI. Lo que sucede en una interconexión, es decir, cómo los diferentes maestros se comunican con diferentes esclavos, depende de la implementación. Las interconexiones pueden permitir un bus de dirección compartido, un bus de datos compartido, ambos compartidos o ninguno compartido.

En el próximo artículo, veremos las interconexiones AXI, cómo funcionan y cómo usarlas en el diseño.

Conclusión

Este artículo fue una introducción básica al protocolo de interfaz extensible avanzada (AXI). Analizamos AXI heredado como se especifica en la tercera revisión de AMBA. Como mencioné anteriormente, puede consultar el Protocolo AMBA AXI v1.0 (aproximadamente cien páginas) para obtener una visión más profunda de la primera versión de AXI. AXI ha visto algunos cambios significativos en la revisión 4 de AMBA con nuevas versiones de AXI como AXI4, AXI4-Lite y AXI4-Stream.

Los futuros artículos de AMBA analizarán AXI4 y el protocolo ACE (AXI Coherency Extensions) utilizado para la coherencia de caché a nivel de sistema entre componentes. AXI se ha convertido en un protocolo ampliamente utilizado en el diseño moderno de SoC. Al aprender AXI, los protocolos de bus más simples como Avalon y Wishbone serán mucho más fáciles.

Para reiterar lo que afirmé en la introducción, tendrá ventajas en el diseño de SoC si comprende AXI. Espero que este artículo te haya ayudado en tu camino.

ga('create', 'UA-1454132-1', 'auto'); ga('require', 'GTM-MMWSMVL'); ga('require', 'displayfeatures'); ga('set',{'dimension1':'computing,audio,connectors,digital-ics,engineering-consulting'}); ga('set',{'contentGroup1':'computing,audio,connectors,digital-ics,engineering-consulting'});

ga('set',{'dimension3':"October 17, 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: ['computing','audio','connectors','digital-ics','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(); } },

}) }); }

Maria Montero

Me apasiona la fotografía y la tecnología que nos permite hacer todo lo que siempre soñamos. Soñadora y luchadora. Actualmente residiendo en Madrid.

Recent Posts

Máquina de mano Lean, Green, Raspberry Pi

Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…

2 years ago

Cómo pronosticar series de tiempo usando autorregresión

Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…

2 years ago

Aquí están todas las formas en que puede cargar su AirPods Pro

Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…

2 years ago

Las principales noticias tecnológicas del lunes: la prohibición de clientes de terceros de Twitter parece no ser un accidente

Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…

2 years ago

AirPods Max 2: aquí están las características más solicitadas

Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…

2 years ago

El remake de Dead Space continúa luciendo terriblemente genial en el nuevo tráiler de la historia

El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…

2 years ago