Advanced Microcontroller Bus Architecture

Прогрессивная архитектура шины микроконтроллера (AMBA) [фирмы] ARM — это открытый стандарт требований внутрикристалльных межсоединений для соединения и управления функциональными блоками в разработках system-on-a-chip (SoC). Она облегчает развитие многопроцессорных разработок с большим числом контроллеров и периферии. Несмотря на название, с самого своего начала AMBA имела виды, уходящие далеко за границы микроконтроллерных устройств. Сегодня AMBA широко применяется в ряде частей ASIC и SoC, включая прикладные процессоры, применяемые в современных небольших переносных устройствах вроде смартфонов. AMBA — это зарегистрированная торговая марка ARM Ltd.

AMBA была представлена ARM в 1996. Первыми шинами AMBA были Advanced System Bus (ASB) и Advanced Peripheral Bus (APB). В её второй разновидности, AMBA 2 в 1999, ARM добавила AMBA High-performance Bus (AHB) с протоколом по одному тактовому фронту. В 2003 ARM представила третье поколение, AMBA 3, включающее Advanced Extensible Interface (AXI) для достижения ещё большей производительности межсоединения и Advanced Trace Bus (ATB), как части решения CoreSight по отладке и трассировки кристалла. В 2010 требования AMBA 4 были представлены, начав с AMBA 4 AXI4, затем в 2011 — расширением когерентной ширины системы посредством AMBA 4 ACE. В 2013 были представлены требования AMBA 5 CHI (Coherent Hub Interface) с переработанным высокоскоростным транспортным слоем и возможностями, разработанными для уменьшения перегрузки.

Сегодня эти протоколы являются де-факто стандартными для встраиваемых процессоров, поскольку они хорошо описаны и могут применяться без отчислений.

Подходы к разработке 
Важной особенностью SoC является не только то, какие составляющие блоки она содержит, но и то, как они соединяются. AMBA — это решение для взаимодействия блоков между собой.

Требования AMBA направлены на:

 облегчение разработки right-first-time встраиваемых микроконтроллерных продуктов с одним или более ЦПУ, ГП или обработчиков сигналов,
 быть технологически независимой, позволяя повторное использование IP cores, макроячейками периферии и системы в различных процессах ИС,
 поощрять модульную разработку системы для улучшения независимости процессора и разработки повторно применяемых IP-библиотек периферии и системы
 минимизировать кремниевую инфраструктуру, при поддержании высокой производительности и малого потребления внутрикристалльного соединения.

Требования протокола AMBA 
Требования AMBA определяют стандарт внутрикристалльных подключений для разработки высокопроизводительных встраиваемых микроконтроллеров. Она поддерживается ARM Limited при широком межотраслевом участии.

Требования AMBA 5 определяют следующие шины/взаимосвязи:
 Advanced High-performance Bus (AHB5, AHB-Lite)
 CHI Coherent Hub Interface (CHI)

Требования AMBA 4 определяют следующие шины/взаимосвязи:

 AXI Coherency Extensions (ACE) — широко применяемую в последних процессорах ARM Cortex-A, включая Cortex-A7 и Cortex-A15
 AXI Coherency Extensions Lite (ACE-Lite)
 Advanced Extensible Interface 4 (AXI4)
 Advanced Extensible Interface 4 Lite (AXI4-Lite)
 Advanced Extensible Interface 4 Stream (AXI4-Stream v1.0)
 Advanced Trace Bus (ATB v1.1)
 Advanced Peripheral Bus (APB4 v2.0)

Требования AMBA 3 определяют четыре шины/взаимосвязи:

 Advanced Extensible Interface (AXI3 or AXI v1.0) — широко применяемую в процессорах ARM Cortex-A, включая Cortex-A9
 Advanced High-performance Bus Lite (AHB-Lite v1.0)
 Advanced Peripheral Bus (APB3 v1.0)
 Advanced Trace Bus (ATB v1.0)

Требования AMBA 2 определяют три шины/взаимосвязи:

 Advanced High-performance Bus (AHB) — широко применяемую в разработках, основанных на ARM7, ARM9 и ARM Cortex-M
 Advanced System Bus (ASB)
 Advanced Peripheral Bus (APB2 или APB)

Требования AMBA (Первой разновидности) определяют две шины/взаимосвязи:

 Advanced System Bus (ASB)
 Advanced Peripheral Bus (APB)

Особенности задержек и уровней voltage на шине требования не диктуют.

AXI Coherency Extensions (ACE и ACE-Lite) 
ACE, определённая как часть требований AMBA 4, расширяет AXI дополнительным средством оповещения передач широкой когерентности. Это средство когерентности позволяет множеству процессоров разделять память и включает технологии вроде ARM-овской обработке big.LITTLE. Протокол ACE-Lite включает однонаправленную или иначе IO когерентность, например, сетевая взаимосвязь, которая может [лишь] читать из кешей полностью когерентного процессора ACE.

Advanced eXtensible Interface (AXI) 
AXI, третье поколение взаимосвязи AMBA, определённое в требованиях AMBA 3, нацелено на разработку высокопроизводительных, высокочастотных средств и включает возможности, которые делают её пригодной для высокоскоростных субмикронных межсоединений:
 раздельные фазы адреса/управления и данных
 поддержка передач невыровненных данных, применяя стробы байта
 передачи на основе пакетов, с выдачей лишь начального адреса
 выдачу множества внешних адресов с неупорядоченными ответами
 лёгкость добавления регистровых стадий для обеспечения близких задержек.

Advanced High-performance Bus (AHB) 
AHB — это протокол, представленный в Advanced Microcontroller Bus Architecture 2 разновидности, обнародованный компанией ARM Ltd.

В дополнение к предыдущему исполнению, он имеет следующие возможности:

 множество разрядностей шины (64/128/256/512/1024 бит).

Простая передача по AHB содержит фазу адреса и подпоследовательность фазы данных (без состояний ожидания: лишь два цикла шины). Доступ к целевому устройству управляется через MUX (без Z-уровня), таким образом признаётся доступ к шине одного хозяина одновременно.

AHB-Lite — это подвид AHB, формально определённый стандартом AMBA 3. Этот подвид упрощает разработку шины с одним хозяином.

Advanced Peripheral Bus (APB) 
APB разработан для доступа к медлительному (низкоскоростному) управлению, например для взаимосвязи с регистрами в периферии системы. Подобно AHB, эта шина имеет фазы адреса и данных, но значительно урезанный, несложный список сигналов (например, нет ts).

Продукты AMBA 
Семейство синтезируемых ядер с интеллектуальными правами (IP) AMBA Products лицензируется из ARM Limited, которая исполняет цифровую шину в SoC для эффективного перемещения и хранения данных, применяя требования протокола AMBA. Семейство AMBA включает AMBA Network Interconnect (CoreLink NIC-400), Cache Coherent Interconnect (CoreLink CCI-500) SDRAM memory controllers (CoreLink DMC-400), DMA controllers (CoreLink DMA-230, DMA-330), level 2 cache controllers (L2C-310), и т. д.

Ряд производителей используют шины AMBA для разработок не на ARM. В качестве примера Infineon применяет шину AMBA для SoC ADM5120, основанную на MIPS architecture.

Соперники 
 Wishbone от OpenCores — бесплатная и открытая архитектура шины (прежде от Silicore)
 Технология шины CoreConnect от IBM, применена во встраиваемых продуктах Power Architecture IBM, а также во множестве других SoC-подобных средств с Xilinx MicroBlaze или схожими ядрами
 IPBus от IDT
 Avalon — частная шина системы от Altera для использования в их Nios II SoCs
 Open Core Protocol (OCP) от Accellera
 HyperTransport (HT) от AMD (хотя это внекристалльная, а не внутрикристалльная шина)
 QuickPath Interconnect (QPI) от Intel (хотя это внекристалльная, а не внутрикристалльная шина)
 virtual share от PICC — бесплатная и с открытым исходником

См. также 
 Functional specification
 Ведущий/ведомый (технология)

Примечания

Ссылки 
 AMBA Specification home page — of ARM
 AMBA of ARM
 AMBA Documentation — from ARM
 AMBA 2 Specification including AHB — from ARM
 AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite, ACE and ACE-Lite — from ARM
 AMBA APB Specification including APB4, APB3, APB2 — from ARM

Компьютерные шины