Открыть сервис

AMBA

AMBA (Advanced Microcontroller Bus Architecture) — это открытая спецификация набора шин и протоколов взаимодействия между компонентами в системах на кристалле (SoC), разработанная британской компанией Arm Holdings (ранее ARM Ltd). AMBA служит стандартом для построения высокопроизводительных, энергоэффективных и масштабируемых микроконтроллеров, процессоров и специализированных интегральных схем (ASIC). Архитектура определяет правила соединения процессорных ядер, контроллеров памяти, периферийных устройств и других блоков в единую вычислительную систему.

История

Первая версия спецификации AMBA была представлена компанией ARM в 1996 году. Изначально она предназначалась для упрощения проектирования систем на кристалле на базе процессоров ARM7 и ARM9. Основной задачей было создание унифицированного интерфейса, который позволял бы разработчикам легко интегрировать сторонние IP-блоки (интеллектуальную собственность) без необходимости перепроектировать шинные соединения.

В 1999 году вышла версия AMBA 2.0, которая ввела две основные шины: Advanced System Bus (ASB) и Advanced Peripheral Bus (APB). ASB предназначалась для высокоскоростных соединений между процессором, памятью и DMA-контроллерами, а APB — для низкоскоростных периферийных устройств (UART, GPIO, таймеры). Эта версия стала массово применяться в мобильных телефонах, цифровых камерах и автомобильной электронике.

В 2003 году была выпущена AMBA 3.0, которая заменила ASB на Advanced eXtensible Interface (AXI). AXI обеспечивал более высокую пропускную способность, поддержку нескольких одновременных транзакций и улучшенную синхронизацию. В этой же версии появились протоколы AHB-Lite (для упрощённых систем с одним мастером) и ATB (для трассировки отладки).

В 2010 году вышла AMBA 4.0, которая расширила функциональность AXI за счёт введения AXI Coherency Extensions (ACE) — механизма поддержки когерентности кэшей в многоядерных системах. Это позволило строить масштабируемые кластеры процессоров с разделяемой памятью.

В 2015 году была представлена AMBA 5.0, которая принесла протокол CHI (Coherent Hub Interface), оптимизированный для гетерогенных систем с большим количеством ядер, ускорителей и графических процессоров. CHI заменил AXI в самых производительных решениях, таких как серверные процессоры и суперкомпьютерные чипы.

В 2021 году вышла AMBA 5.2, которая добавила поддержку потоковой передачи данных с низкой задержкой и улучшила энергоэффективность для систем искусственного интеллекта и машинного обучения.

Классификация протоколов

AMBA включает несколько протоколов, разделённых по производительности и области применения:

AXI (Advanced eXtensible Interface)

AXI — основной высокопроизводительный протокол AMBA, используемый для соединения процессорных ядер, контроллеров памяти и высокоскоростных периферийных устройств. Он поддерживает:

AXI является основой для большинства современных SoC на архитектуре ARM, включая процессоры Cortex-A, Cortex-R и Cortex-M.

ACE (AXI Coherency Extensions)

ACE — расширение AXI, обеспечивающее аппаратную когерентность кэшей между несколькими процессорными ядрами и ускорителями. Это позволяет избежать ручной синхронизации данных и повышает производительность многопоточных приложений. ACE используется в многоядерных системах, таких как серверные процессоры Neoverse и мобильные чипы Snapdragon.

CHI (Coherent Hub Interface)

CHI — протокол нового поколения, разработанный для гетерогенных систем с десятками и сотнями ядер. Он использует топологию «звезда» или «сеть на кристалле» (NoC) и обеспечивает:

CHI применяется в процессорах для центров обработки данных, искусственного интеллекта и высокопроизводительных вычислений.

AHB (Advanced High-performance Bus)

AHB — упрощённая версия AXI, используемая в системах среднего уровня производительности. Она поддерживает один мастер (в режиме AHB-Lite) или несколько мастеров с арбитражем. AHB распространена в микроконтроллерах Cortex-M и встраиваемых системах.

APB (Advanced Peripheral Bus)

APB — низкоскоростной протокол для периферийных устройств с низким энергопотреблением. Он не поддерживает пакетную передачу и множественные мастера. APB используется для подключения UART, SPI, I2C, GPIO и других интерфейсов.

ATB (Advanced Trace Bus)

ATB — протокол для передачи трассировочных данных от процессорных ядер к отладочным модулям. Он используется в системах отладки и профилирования производительности.

Устройство и архитектура

AMBA определяет не только электрические и временные характеристики шин, но и логическую структуру взаимодействия компонентов. Основные элементы архитектуры:

Мастер (Master)

Устройство, инициирующее транзакции (чтение или запись). Обычно это процессорное ядро, DMA-контроллер или ускоритель. Мастер отправляет адрес и данные на шину.

Слейв (Slave)

Устройство, отвечающее на запросы мастера. Слейвы — это контроллеры памяти, периферийные блоки, интерфейсы ввода-вывода. Они возвращают данные или подтверждение завершения операции.

Арбитр (Arbiter)

Компонент, управляющий доступом нескольких мастеров к общей шине. Арбитр решает, какой мастер получит управление шиной в каждый момент времени, на основе приоритетов или алгоритма round-robin.

Декодер (Decoder)

Устройство, определяющее, какой слейв должен обработать запрос на основе адреса. Декодер преобразует адресное пространство в сигналы выбора конкретного слейва.

Мост (Bridge)

Компонент, соединяющий шины разных протоколов (например, AXI и APB). Мост преобразует сигналы и согласует скорости передачи. Он также может буферизировать данные и управлять синхронизацией.

Применение

AMBA является де-факто стандартом для проектирования SoC на архитектуре ARM, но также используется с другими процессорными ядрами (например, RISC-V, MIPS). Области применения включают:

Мобильные устройства

Почти все современные смартфоны и планшеты на базе ARM (Apple A-серии, Qualcomm Snapdragon, MediaTek Dimensity) используют AMBA для соединения процессорных ядер, GPU, DSP и модемов. Протокол AXI обеспечивает высокую пропускную способность для передачи видео и игровых данных.

Встраиваемые системы

Микроконтроллеры Cortex-M (STM32, NXP LPC, Renesas RA) применяют AHB и APB для подключения периферии. AMBA позволяет разработчикам легко добавлять кастомные IP-блоки без изменения основной архитектуры.

Автомобильная электроника

В автомобильных SoC (NXP S32, TI Jacinto) AMBA используется для управления двигателем, системами ADAS и информационно-развлекательными комплексами. Протоколы ACE и CHI обеспечивают когерентность данных между несколькими ядрами и ускорителями.

Серверы и центры обработки данных

Процессоры Arm Neoverse (Ampere Altra, AWS Graviton) используют CHI для построения масштабируемых кластеров с десятками ядер. AMBA позволяет интегрировать ускорители ИИ и сетевые контроллеры с минимальной задержкой.

Искусственный интеллект и машинное обучение

Специализированные чипы для нейросетей (Google TPU, Apple Neural Engine) применяют AMBA для соединения тензорных процессоров с памятью и контроллерами. CHI обеспечивает низкую задержку при передаче больших массивов данных.

Преимущества и ограничения

Преимущества

Ограничения

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →