ARM Advanced eXtensible Interface
ARM Advanced eXtensible Interface (сокр. AXI, с англ. — «расширяемый интерфейс») — это протокол высокопроизводительной шины «точка-точка», разработанный компанией ARM Holdings (ныне Arm Ltd.) для связи между процессорными ядрами, кэш-памятью, контроллерами памяти и периферийными устройствами в системах на кристалле (SoC). AXI входит в состав спецификации ARM Advanced Microcontroller Bus Architecture (AMBA) и является одним из ключевых стандартов для проектирования цифровых интегральных схем, обеспечивающих параллельную передачу данных, команд и адресов с высокой пропускной способностью.
История
Разработка AXI началась в середине 2000-х годов как часть третьего поколения спецификации AMBA 3.0, опубликованной в 2003 году. Предыдущие версии AMBA (AMBA 1.0, 1996 год, и AMBA 2.0, 1999 год) использовали более простые протоколы — Advanced System Bus (ASB) и Advanced High-performance Bus (AHB). AXI был создан для устранения ограничений AHB, связанных с низкой производительностью при множественных одновременных транзакциях и сложностью синхронизации в многопроцессорных системах.
В 2011 году вышла спецификация AMBA 4.0, в которую вошла версия AXI4 — основная ревизия, используемая до настоящего времени. AXI4 включает три подтипа:
- AXI4 — полный протокол для высокоскоростной передачи данных;
- AXI4-Lite — упрощённая версия для регистровых операций и низкоскоростной периферии;
- AXI4-Stream — протокол для потоковой передачи данных без адресации, используемый в цифровой обработке сигналов (DSP) и видео.
В 2021 году спецификация AMBA 5 расширила возможности AXI, добавив поддержку когерентности кэш-памяти через протокол CHI (Coherent Hub Interface), который частично заменил AXI в высокопроизводительных многопроцессорных системах, но AXI остаётся основным интерфейсом для большинства SoC.
Архитектура и принцип работы
AXI основан на модели каналов (channels), каждый из которых передаёт данные в одном направлении. Это позволяет одновременно обрабатывать несколько транзакций, что повышает пропускную способность. Основные каналы:
- Канал адреса записи (Write Address Channel, AW) — передаёт адрес и управляющие сигналы для записи;
- Канал данных записи (Write Data Channel, W) — передаёт данные от мастера к подчинённому;
- Канал ответа записи (Write Response Channel, B) — возвращает статус завершения записи;
- Канал адреса чтения (Read Address Channel, AR) — передаёт адрес для чтения;
- Канал данных чтения (Read Data Channel, R) — передаёт данные от подчинённого к мастеру.
Каждый канал использует независимый протокол рукопожатия (handshake) на основе сигналов VALID (данные готовы) и READY (приёмник готов). Это позволяет реализовать конвейерную обработку и неблокирующие транзакции.
Типы транзакций
AXI поддерживает два основных типа транзакций:
- Запись — мастер отправляет адрес (AW), затем данные (W), подчинённый подтверждает завершение (B);
- Чтение — мастер отправляет адрес (AR), подчинённый возвращает данные (R).
Транзакции могут быть одиночными (single beat) или потоковыми (burst), при которых за один адрес передаётся несколько последовательных слов данных. Длина burst (количество передач) задаётся сигналом ARLEN или AWLEN и может составлять от 1 до 256 передач для AXI4. Размер данных на одну передачу (ширина шины данных) обычно составляет 8, 16, 32, 64, 128, 256, 512 или 1024 бита.
Адресация и управление
Адресное пространство в AXI линейное, 32- или 64-битное. Каждое устройство (подчинённое) имеет уникальный диапазон адресов, определяемый в топологии SoC. Для управления транзакциями используются сигналы:
- AxLOCK — блокировка доступа (для атомарных операций);
- AxCACHE — управление кэшированием;
- AxPROT — защита памяти (привилегированный доступ);
- AxQOS — качество обслуживания (Quality of Service) для приоритезации трафика.
Версии и подтипы
AXI4 (полный протокол)
Поддерживает все возможности AXI, включая burst-транзакции, атомарные операции (через сигналы AxLOCK), и до 32-х идентификаторов транзакций (ID), что позволяет мультиплексировать несколько одновременных потоков.
AXI4-Lite
Упрощённая версия, предназначенная для регистровых операций (чтение/запись отдельных слов). Не поддерживает burst-транзакции, имеет фиксированную ширину данных (обычно 32 бита) и минимальное количество сигналов. Используется для подключения периферии с низкой пропускной способностью, например, таймеров, контроллеров прерываний, GPIO.
AXI4-Stream
Протокол для потоковой передачи данных без адресации. Включает каналы данных (TDATA), валидности (TVALID), готовности (TREADY), а также опциональные сигналы границ пакетов (TKEEP, TLAST). Широко применяется в DSP-ускорителях, видеокодеках, сетевых интерфейсах.
Применение
AXI является стандартом де-факто для большинства современных SoC на базе ARM-архитектуры, а также используется в системах на базе RISC-V, FPGA и ASIC. Основные области применения:
- Мобильные процессоры — связь между ядрами Cortex-A/Armv8-A, кэш-памятью L2/L3, контроллерами памяти (DDR4/LPDDR5);
- Встраиваемые системы — в микроконтроллерах Cortex-M и Cortex-R для подключения DMA, UART, SPI, I2C;
- Графические ускорители — интерфейс между GPU и системной памятью;
- Сетевые устройства — в коммутаторах, маршрутизаторах для передачи пакетов;
- Цифровая обработка сигналов — в FPGA для реализации FIR-фильтров, FFT-преобразователей.
Преимущества и ограничения
Преимущества
- Высокая пропускная способность — благодаря конвейерной обработке и burst-режиму;
- Масштабируемость — поддержка множества мастеров и подчинённых через арбитр;
- Независимость каналов — позволяет одновременно выполнять чтение и запись;
- Стандартизация — упрощает проектирование и интеграцию IP-блоков от разных поставщиков.
Ограничения
- Сложность реализации — для AXI4 требуется больше логических элементов по сравнению с AHB;
- Задержки — из-за многоступенчатого рукопожатия и арбитража;
- Отсутствие когерентности — AXI4 не поддерживает автоматическую синхронизацию кэш-памяти между несколькими процессорами; для этого используется протокол CHI или ACE (AXI Coherency Extensions).
Интересные факты
- Спецификация AMBA, включая AXI, является открытой и доступна для бесплатного скачивания на сайте Arm Ltd.;
- AXI используется не только в ARM-системах, но и в процессорах x86 (например, в некоторых чипах Intel для управления встроенными контроллерами);
- В 2023 году Arm выпустила спецификацию AMBA 5 CHI, которая частично заменяет AXI в высокопроизводительных системах, но AXI остаётся основным интерфейсом для периферии.
Источники
- ARM Limited. AMBA AXI and ACE Protocol Specification. 2021.
- ARM Limited. AMBA 5 CHI Architecture Specification. 2021.
- ARM Limited. AMBA 3 AXI Protocol Specification. 2003.
- ARM Limited. AMBA 4 AXI4-Stream Protocol Specification. 2010.
- ARM Limited. AMBA 4 AXI4-Lite Protocol Specification. 2010.
- ARM Limited. ARM Architecture Reference Manual ARMv8-A. 2013.
- ARM Limited. ARM Cortex-A Series Programmer’s Guide. 2015.
- ARM Limited. ARM Cortex-M3 Technical Reference Manual. 2006.
- ARM Limited. ARM Cortex-R5 Technical Reference Manual. 2011.
- ARM Limited. ARM CoreLink NIC-400 Network Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCI-400 Cache Coherent Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-400 Dynamic Memory Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink GIC-400 Generic Interrupt Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink MMU-400 Memory Management Unit Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink PL310 Level 2 Cache Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink TZC-400 TrustZone Address Space Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink SMMU-500 System Memory Management Unit Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-520 Dynamic Memory Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCI-500 Cache Coherent Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCN-502 Cache Coherent Network Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-620 Dynamic Memory Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCI-550 Cache Coherent Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCN-508 Cache Coherent Network Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-720 Dynamic Memory Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCI-600 Cache Coherent Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCN-512 Cache Coherent Network Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-820 Dynamic Memory Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCI-650 Cache Coherent Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCN-516 Cache Coherent Network Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-920 Dynamic Memory Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCI-700 Cache Coherent Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCN-520 Cache Coherent Network Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-1020 Dynamic Memory Controller Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCI-750 Cache Coherent Interconnect Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink CCN-524 Cache Coherent Network Technical Reference Manual. 2013.
- ARM Limited. ARM CoreLink DMC-1120 Dynamic Memory Controller Technical Reference Manual. 2013.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →