Architecture de bus de microcontrôleur avancée
L'architecture avancée de bus de microcontrôleur (AMBA) d'ARM est une norme ouverte pour les exigences d'interconnexion sur puce pour connecter et piloter des blocs fonctionnels dans des conceptions de système sur puce (SoC). Il facilite le développement de conceptions multiprocesseurs avec un grand nombre de contrôleurs et de périphériques. Malgré son nom, depuis sa création, AMBA a eu une portée qui s'étend bien au-delà des limites des dispositifs à microcontrôleur. Aujourd'hui, AMBA est largement utilisé dans un certain nombre de pièces ASIC et SoC, y compris les processeurs d'application utilisés dans les petits appareils portables d'aujourd'hui comme les smartphones . AMBA est une marque déposée d' ARM Ltd. [une]
AMBA a été introduit dans ARM en 1996. Les premiers bus AMBA étaient Advanced System Bus (ASB) et Advanced Peripheral Bus (APB). Dans sa deuxième itération, AMBA 2 en 1999, ARM a ajouté le bus haute performance AMBA (AHB) avec un protocole de bord d'horloge unique. En 2003, ARM a introduit la troisième génération, AMBA 3, qui comprenait l'Advanced Extensible Interface (AXI) pour des performances d'interconnexion encore meilleures et l'Advanced Trace Bus (ATB) dans le cadre de la solution de débogage et de traçage des puces de CoreSight. En 2010, les exigences AMBA 4 ont été introduites, en commençant par AMBA 4 AXI4, puis en 2011 [2] avec une extension de la largeur cohérente du système jusqu'à AMBA 4 ACE. En 2013 [3] , les exigences AMBA 5 CHI (Coherent Hub Interface) ont été introduites avec une couche de transport à haut débit repensée et des fonctionnalités conçues pour réduire la congestion.
Aujourd'hui, ces protocoles sont la norme de facto pour les processeurs embarqués car ils sont bien documentés et peuvent être utilisés sans royalties.
Approches de développement
Une caractéristique importante d'un SoC n'est pas seulement les blocs de construction qu'il contient, mais aussi la façon dont ils sont connectés. AMBA est une solution pour l'interaction des blocs entre eux.
Les exigences AMBA visent à :
- faciliter le développement de produits de microcontrôleur embarqués du premier coup avec un ou plusieurs CPU, GPU ou gestionnaires de signaux,
- être technologiquement indépendant, permettant la réutilisation des cœurs IP , des périphériques et des macrocellules système dans divers processus IC,
- encourager le développement de systèmes modulaires pour améliorer l'indépendance du processeur et développer des bibliothèques IP de périphériques et de systèmes réutilisables
- minimisez l'infrastructure de silicium tout en maintenant des performances élevées et une faible consommation sur puce.
Exigences du protocole AMBA
Les exigences AMBA définissent la norme d'interconnexion sur puce pour le développement de microcontrôleurs embarqués hautes performances. Il est soutenu par ARM Limited avec une large participation intersectorielle.
Les exigences AMBA 5 définissent les bus/relations suivants :
- Bus haute performance avancé (AHB5, AHB-Lite)
- Interface de concentrateur cohérente CHI (CHI) [3]
Les exigences AMBA 4 définissent les bus/relations suivants :
- AXI Coherency Extensions (ACE) - largement utilisé dans les derniers processeurs ARM Cortex-A, y compris Cortex-A7 et Cortex-A15
- AXI Coherency Extensions Lite (ACE-Lite)
- Interface extensible avancée 4 (AXI4)
- Interface extensible avancée 4 Lite (AXI4-Lite)
- Interface extensible avancée 4 flux (AXI4-Stream v1.0)
- Bus de suivi avancé (ATB v1.1)
- Bus périphérique avancé (APB4 v2.0)
Les exigences AMBA 3 définissent quatre bus/relations :
- Interface extensible avancée (AXI3 ou AXI v1.0) - largement utilisée dans les processeurs ARM Cortex-A, y compris Cortex-A9
- Advanced High Performance Bus Lite (AHB-Lite v1.0)
- Bus périphérique avancé (APB3 v1.0)
- Bus de suivi avancé (ATB v1.0)
Les exigences AMBA 2 définissent trois bus/relations :
- Advanced High-performance Bus (AHB) - largement utilisé dans les conceptions basées sur ARM7, ARM9 et ARM Cortex-M
- Bus système avancé (ASB)
- Bus périphérique avancé (APB2 ou APB)
Les exigences AMBA (Version 1) définissent deux bus/relations :
- Bus système avancé (ASB)
- Bus périphérique avancé (APB)
Les caractéristiques des retards et des niveaux de tension sur le bus n'imposent pas d'exigences.
Extensions de cohérence AXI (ACE et ACE-Lite)
ACE , défini dans le cadre des exigences AMBA 4, étend AXI avec un moyen supplémentaire de signalisation des transmissions à cohérence étendue. [4] Cette installation de cohérence permet à plusieurs processeurs de partager la mémoire et inclut des technologies telles que le traitement big.LITTLE d'ARM . Le protocole ACE-Lite permet une cohérence unidirectionnelle ou autre des E/S, telle que l'interconnexion réseau, qui peut [uniquement] lire à partir de caches de processeur ACE entièrement cohérents.
Interface extensible avancée (AXI)
AXI , la troisième génération d'interconnexion AMBA, définie dans les exigences AMBA 3, vise à développer des supports hautes performances et haute fréquence et comprend des fonctionnalités qui la rendent adaptée aux interconnexions submicroniques à haut débit :
- phases d'adressage/de contrôle et de données séparées
- prise en charge des transferts de données non alignés à l'aide de stroboscopes d'octets
- transmissions par paquets, avec seulement l'adresse de début donnée
- émission de plusieurs adresses externes avec des réponses non ordonnées
- facilité d'ajout d'étapes de registre pour garantir des délais rapprochés.
Bus hautes performances avancé (AHB)
AHB est un protocole introduit dans la variante Advanced Microcontroller Bus Architecture 2 publiée par ARM Ltd.
En plus de l'implémentation précédente, il possède les fonctionnalités suivantes :
- plusieurs largeurs de bus (64/128/256/512/1024 bits).
Un transfert AHB simple contient une phase d'adresse et une sous-séquence de phase de données (pas d'états d'attente : seulement deux cycles de bus). L'accès au périphérique cible est contrôlé via MUX (pas de couche Z), reconnaissant ainsi l'accès au bus d'un hôte à la fois.
AHB-Lite est une sous-espèce d'AHB formellement définie par la norme AMBA 3. Cette sous-espèce simplifie le développement d'un bus à maître unique.
Bus périphérique avancé (APB)
L'APB est conçu pour accéder au contrôle lent (à faible vitesse), comme l'interface avec les registres de la périphérie du système. Comme AHB, ce bus a des phases d'adresse et de données, mais une liste de signaux très réduite et simple (pas de ts, par exemple).
Produits AMBA
La famille AMBA Products IP Synthesizable Core ( IP ) est sous licence d' ARM Limited , qui implémente un bus numérique sur le SoC pour déplacer et stocker efficacement les données en utilisant les exigences du protocole AMBA. La famille AMBA comprend AMBA Network Interconnect (CoreLink NIC-400), Cache Coherent Interconnect (CoreLink CCI-500) , contrôleurs de mémoire SDRAM (CoreLink DMC-400), contrôleurs DMA (CoreLink DMA-230, DMA-330), contrôleurs de cache de niveau 2 (L2C-310), etc.
Un certain nombre de fabricants utilisent des bus AMBA pour le développement non ARM. A titre d'exemple , Infineon utilise le bus AMBA pour le SoC ADM5120 basé sur l' architecture MIPS .
Rivaux
- Wishbone par OpenCores - architecture de bus libre et ouverte (anciennement de Silicore)
- La technologie de bus CoreConnect d' IBM , utilisée dans les produits intégrés IBM Power Architecture , ainsi que de nombreux autres produits de type SoC avec Xilinx MicroBlaze ou des cœurs similaires
- IPBus par IDT
- Avalon est un bus système propriétaire d' Altera à utiliser dans leurs SoC Nios II [5]
- Protocole Open Core (OCP) d' Accellera
- HyperTransport (HT) d' AMD (bien qu'il s'agisse d'un bus hors puce et non sur puce)
- QuickPath Interconnect (QPI) d' Intel (bien qu'il s'agisse d'un bus hors puce et non sur puce)
- le partage virtuel par PICC est gratuit et open source
Voir aussi
- Spécification fonctionnelle
- Maître/esclave (technologie)
Liens
- ↑ Licence de marque AMBA, http://arm.com/about/trademarks/arm-trademark-list/AMBA-trademark.php Archivé le 5 juin 2016 sur la Wayback Machine
- ↑ Les nouvelles exigences AMBA 4 optimisent la cohérence pour les SoC multicœurs hétérogènes, http://www.arm.com/about/newsroom/new-amba-4-specification-optimizes-coherency-for-heterogeneous-multicore-socs.php Archivé du 17 septembre 2016 à la Wayback Machine
- ↑ 1 2 ARM annonce les exigences AMBA 5 CHI pour activer la technologie monopuce haute performance et haute évolutivité, http://www.arm.com/about/newsroom/arm-announces-amba-5-chi-specification-to -enable-high-performance-highly-scalable-system-on-chip.php Archivé le 20 novembre 2017 sur la Wayback Machine
- ↑ Kriouile, A., & Serwe, W. (2013). Étude formelle des exigences ACE pour un cache monopuce cohérent. Dans Méthodes formelles pour les installations industrielles exigeantes (pp. 108-122). Springer Berlin Heidelberg., ISBN 978-3-642-41010-9
- ↑ Avalon . Récupéré le 17 juin 2018. Archivé de l'original le 1er mars 2015.
Liens
- Page d'accueil des spécifications AMBA - de l'ARM
- AMBA de l'ARM
- Documentation AMBA — de ARM