Advanced Microcontroller Bus Architecture
Статья находится в Инкубаторе. |
(Попытка прямого перевода статьи)
Прогрессивная Архитектура Шины Микроконтроллера (AMBA) [фирмы] ARM - это открытый стандарт требований внутрикристалльных межсоединений для соединения и управления функциональными блоками в разработках system-on-a-chip (SoC). Она облегчает развитие многопроцессорных разработок с большим числом контроллеров и периферии. Несмотря на название, с самого своего начала, AMBA имела виды, уходящие далеко за границы микроконтроллерных устройств. Сегодня AMBA широко применяется в ряде частей ASIC и SoC, включая прикладные процессоры, применяемые в современных небольших переносных устройствах вроде smartphones. AMBA - это зарегистрированная торговая марка ARM Ltd.[1]
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[2] расширением когерентной ширины системы посредством AMBA 4 ACE. В 2013[3] были представлены требования AMBA 5 CHI (Coherent Hub Interface), с переработанным высокоскоростным транспортным слоем и возможностями, разработанными для уменьшения перегрузки.
Сегодня эти протоколы являются de facto standard для встраиваемых процессоров, поскольку они хорошо описаны и могут применяться без отчислений.
Подходы к Разработке
Важным особенность 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) [3]
Требования AMBA 4 определяют следующие шины/взаимосвязи:
- AXI Coherency Extensions (ACE) - широко применяемую в последних процессорах ARM Cortex-A, включая Cortex-A7 and 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)
The timing aspects and the voltage levels on the bus are not dictated by the specifications.
AXI Coherency Extensions (ACE and ACE-Lite)
ACE, defined as part of the AMBA 4 specification, extends AXI with additional signalling introducing system wide coherency.[4] This system coherency allows multiple processors to share memory and enables technology like ARM's big.LITTLE processing. The ACE-Lite protocol enables one-way aka IO coherency, for example a network interface that can read from the caches of a fully coherent ACE processor.
Advanced eXtensible Interface (AXI)
AXI, the third generation of AMBA interface defined in the AMBA 3 specification, is targeted at high performance, high clock frequency system designs and includes features that make it suitable for high speed sub-micrometer interconnect:
- separate address/control and data phases
- support for unaligned data transfers using byte strobes
- burst based transactions with only start address issued
- issuing of multiple outstanding addresses with out of order responses
- easy addition of register stages to provide timing closure.
Advanced High-performance Bus (AHB)
AHB is a bus protocol introduced in Advanced Microcontroller Bus Architecture version 2 published by ARM Ltd company.
In addition to previous release, it has the following features:
- large bus-widths (64/128/256/512/1024 bit).
A simple transaction on the AHB consists of an address phase and a subsequent data phase (without wait states: only two bus-cycles). Access to the target device is controlled through a MUX (non-tristate), thereby admitting bus-access to one bus-master at a time.
AHB-Lite is a subset of AHB formally defined in the AMBA 3 standard. This subset simplifies the design for a bus with a single master.
Advanced Peripheral Bus (APB)
APB is designed for low bandwidth control accesses, for example register interfaces on system peripherals. This bus has an address and data phase similar to AHB, but a much reduced, low complexity signal list (for example no ts).
AMBA products
A family of synthesizable intellectual property (IP) cores AMBA Products is licensable from ARM Limited that implement a digital bus in a SoC for the efficient moving and storing of data using the AMBA protocol specifications. The AMBA family includes 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), etc.
A number of manufacturers utilize AMBA buses for non-ARM designs. As an example Infineon uses an AMBA bus for the ADM5120 SoC based on the MIPS architecture.
Competitors
- Wishbone from OpenCores – Free and open bus architecture (formerly from Silicore)
- CoreConnect bus technology from IBM, used in IBM's embedded Power Architecture products, but also in many other SoC-like systems with the Xilinx MicroBlaze or similar cores
- IPBus by IDT
- Avalon – proprietary bus system by Altera for use in their Nios II SoCs[5]
- Open Core Protocol (OCP) from Accellera
- HyperTransport (HT) from AMD (though this is an off-chip interface, not on chip bus)
- QuickPath Interconnect (QPI) by Intel (though this is an off-chip interface, not on chip bus)
- virtual share from PICC - free and open source
See also
References
- ↑ AMBA Trademark License, http://arm.com/about/trademarks/arm-trademark-list/AMBA-trademark.php
- ↑ New AMBA 4 Specification Optimizes Coherency for Heterogeneous Multicore SoCs, http://www.arm.com/about/newsroom/new-amba-4-specification-optimizes-coherency-for-heterogeneous-multicore-socs.php
- ↑ 1 2 ARM Announces AMBA 5 CHI Specification to Enable High Performance, Highly Scalable System on Chip Technology, http://www.arm.com/about/newsroom/arm-announces-amba-5-chi-specification-to-enable-high-performance-highly-scalable-system-on-chip.php
- ↑ Kriouile, A., & Serwe, W. (2013). Formal Analysis of the ACE Specification for Cache Coherent Systems-on-Chip. In Formal Methods for Industrial Critical Systems (pp. 108-122). Springer Berlin Heidelberg., ISBN 978-3-642-41010-9
- ↑ Avalon
External links
- AMBA Specification home page - of ARM
- AMBA of ARM
- AMBA Documentation - from ARM