1. Introduction aux Processeurs embarqués 2. Evolution des architectures des cœ
1. Introduction aux Processeurs embarqués 2. Evolution des architectures des cœurs ARM 3. Processeur ARM7TDMI : Architecture et langage assembleur 4. Architecture Cortex-M3 1 Chapitre 4 : Architecture des Processeurs ARM et Cortex • Un microcontrôleur ou MCU (Microcontroller Circuit Unit) est un système informatique entier : (CPU ou Central Processing Unit, mémoire, bus contrôleur d’interruption, interfaces parallèles et séries, Timers, Convertisseurs A/N et N/A) contenu intégralement dans un circuit intégré unique • Le CPU d’un microcontrôleur est généralement moins complexe que celui d’un système informatique ordinaire (microordinateur), à consommation électrique plus faible (qq miliwatt en fonctionnement et de l’ordre du microwatt en veille) et également moins performant : il supporte également une centaine d’instruction et fonctionne à des fréquences relativement basse variant de quelques dizaines de MHz à quelques centaines. Ceci permet de limiter la consommation en énergie du circuit • Ces circuits à prix réduits à grandes quantités (moins de 1$ 2 Introduction aux Processeurs Embarqués • Même si les c 8 bits se sont imposés longtemps ; l’étendue des domaines d’application des c, le besoin croissant en capacité de traitement et en comportement temps réel ont incité les concepteurs à proposé des processeurs 16 bits et particulièrement 32 bits beaucoup plus performants • Les ventes des c 32 bits ont énormément progressé lors de la dernière décennie et sont passé de moins de 1% en 2000 à 30% en 2006 pour atteindre les 38% en 2009 et on prévoit que cette croissance continuera durant les prochaines années 3 Figure 1 : Evolution des ventes des c 8, 16 et 32 bits Introduction aux Processeurs Embarqués • La majorité des fabricants de c optent pour l’intégration de CPU préconçu, sous forme d’IP « Intellectual Property », dans leurs circuits et lui ajoutent les mémoires et les entrées/sorties nécessaires pour les applications ciblées • Parmi les CPU (IP) les plus utilisés dans les c 32 bits, on trouve les cœurs de la société ARM (Advanced Risc Machine), qui grâce à son cœur Cortex s’est imposé comme le leaders des fournisseurs de cœurs 32 bits pour les applications embarqués (75% du marché 32 bits) 4 Introduction aux Processeurs Embarqués 1. Introduction aux Processeurs embarqués 2. Evolution des architectures des cœurs ARM Extensions technologiques des cœurs ARM : Jazelle, Thumb, Thumb2, ThumbEE, VFP, NEON, TrustZone Versions et implémentation des Cœurs ARM Performances des cœurs ARMFamille Cortex 3. Processeur ARM7TDMI : Architecture et langage assembleur 4. Architecture Cortex-M3 5 Chapitre 3 : Architecture des Processeurs ARM et Cortex • La société ARM a été créée en 1990 par association de Apple Computer, Acorn Computer Group et VLSI T echnology. Contrairement aux autres sociétés travaillant dans le domaine des semi-conducteurs, ARM ne fabrique pas de processeurs et les vend directement, mais elle les conçoit et vend directement leur licence sous forme d’IP à des partenaires qui les intègrent dans leur microcontrôleurs et processeurs • Aujourd’hui, les partenaires d’ARM vendent annuellement plus que 2 billions de circuits à base de cœurs ARM dont l’architecture et le jeu d’instructions ont évolué depuis la première version ARM-v1 jusqu’à la version ARM-v7, lé é l t C t 6 Evolution des architectures ARM 7 Evolution des architectures ARM 8 Evolution des architectures ARM 9 Evolution des architectures ARM Extensions Technologiques des coeurs ARM • Jazelle • Thumb • Thumb-2 • Thumb Execution Environnement (ThumbEE) • Floating-point (VFP) • Advanced SIMD (NEON) • TrustZone 10 Evolution des architectures ARM Jazelle Jazelle DBX (Direct Bytecode eXecution) est une technique permettant d’exécuter directement du Bytecode Java dans les architectures ARM comme un troisième état d’exécution (et jeu d’exécution), en parallèle à l’ARM existant et au mode Thumb. Le support de cet état est signalé par le « J » de l’architecture ARMv5TEJ 11 Evolution des architectures ARM Extensions technologiques des cœurs ARM Thumb Thumb est un jeu d’instruction 16 bits qui fournit un sous- ensemble des instructions ARM 32 bits classique et permet un gain de mémoire important. Dans le mode Thumb, les instructions 16 bits offrent moins de possibilités. Seuls les branchements peuvent, par exemple, être conditionnels et plusieurs instructions sont limitées à l’accès d’une partie réduite des registre généraux. Ces possibilités réduites améliorent la densité globale d’un programme bien que certaines opération nécessitent plus d’instructions réduction du temps de chargement du code en mémoire et augmente la probabilité de rester dans le cache d’instruction augmentation des performances 12 Evolution des architectures ARM Extensions technologiques des cœurs ARM Thumb-2 La technologie Thumb-2 étend le jeu d’instructions limité 16 bits de Thumb par des instructions 32 bits additionnelles afin de donner plus de largesse au jeu d’instruction. Il en résulte un jeu d’instructions de largeur variable. Thumb-2 a pour vision d’atteindre une densité de code proche de Thumb tout en conservant des performance similaires au jeu d’instructions ARM en mémoire 32 bits. Thumb-2 est : 25% plus performant que le Thumb-1 26% plus dense que le code ARM standard 13 Evolution des architectures ARM Extensions technologiques des cœurs ARM Thumb Execution Environnement (ThumbEE) ThumbEE, également appelé Thumb-2EE ou Jazelle RCT pour (Runtime Compilation T arget : cible de compilation à la volée) apparait pour la première fois dans le processeur Cortex- A8. ThumbEE est le quatrième état du processeur, ajoutant de petit changement au jeu d’instruction étendue thumb et thumb-2. Ces changements rendent le jeu d’instruction particulièrement adapté à la génération de code au moment de l’exécution, par la compilation à la volée, dans des environnements d’exécution contrôlés. ThumbEE est orientée vers les langages de programmation Limbo, Java, C#, Perl, Python ou Ruby et permet aux compilateurs à la volé de générer moins de code de sortie sans affecter les performances. 14 Evolution des architectures ARM Extensions technologiques des cœurs ARM Floating-point (VFP) La technologie VFP (Vector Floatting Point : virgule flottante vectoriel) est une extension de coprocesseur de type FPU dans les architectures ARM. Il fournit le calcul des formats de virgule flottante simple et double précision à bas prix et de virgule flottante en double précision remplissant la norme ANSI/IEEE std 754-1985. VFP fournit des calculs en virgule flottante permettant d’accomplir un vaste spectre d’applications et de besoins tels que les PDAs, les smartphones, la compression et décompression de voix, des graphiques en trois dimensions ou encore de l’audio numérique, des boitiers multimédias et des applications automobiles. 15 Evolution des architectures ARM Extensions technologiques des cœurs ARM Advanced SIMD (NEON) L’extension advanced SIMD (également appelé NEON ou MPE pour Media Processing Engine : moteur de calcul de médias) est un SIMD (Single Instruction Multiple Data), combinant des jeux d’instruction 64 et 128 bits, qui fournissent de l’accélération de calcul standardisé pour les applications de médias, 2D/3D et de traitement de signal. NEON peut faire du décodage MP3 sur un processeur fonctionnant à 10 MHz et peut encoder/décoder le codec GSM AMR à 13 MHz et permet d’accélérer le décodage de formats vidéos tels que h264 ou Real. 16 Evolution des architectures ARM Extensions technologiques des cœurs ARM Security extensions (TrustZone) Grâce à une combinaison de composants logiciels et de matériel intégré, la technologie TrustZone fournit la base pour une architecture de système hautement protégé, avec un minimum d’impact sur la consommation d'énergie ou la performance du processeur 17 Evolution des architectures ARM Extensions technologiques des cœurs ARM • Les processeurs de la famille ARM sont tous conçus autour d’un cœur de processeur standard de type RISC. Ce cœur de processeur a été conçu de manière à obtenir des implémentation matérielles simples et efficaces, autorisant ainsi des performances importantes avec de faibles consommations électriques. • Les processeurs ARM étant des processeurs RISC, ils sont donc caractérisés par : – Une taille fixe des instructions (32 bits) – Une banque de registres (32 bits) à usages généraux, – Un décodage des instructions câblé – Une exécution pipelinée (trois étages pour les ARM7, cinq pour les ARM9, six pour les ARM10 et huit pour les ARM11) – Un objectif d’exécution d’un cycle par instruction (CPI = 1) • Le standard ne définissant que la structure et le jeu d’instructions du cœur de processeur, chaque industriel est susceptible de compléter son processeur avec des modules matériels spécifiques, fonctions de la destination finale du processeur. 18 Evolution des architectures ARM Caractéristiques fondamentales des cœurs ARM • A chaque version du cœur de processeur correspond une ou plusieurs implémentations physiques. On dénombre aujourd’hui sept versions différentes du cœur. • Version 1 : cette version du cœur correspond au processeur ARM1 • Version 2 : la version 2 du cœur a été implémentée par le processeur ARM2. l’ARM2 possède 27 registres (dont 16 accessibles simultanément) et quatre modes de fonctionnement différents : – USR (USeR mode) : mode utilisateur. Certaines ressources sont inaccessibles (il s’agit du seul mode de fonctionnement non privilégié) – IRQ (Interrupt ReQuest mode) : mode interruption. Il devient actif à l’activation de l’entrée IRQ du processeur – FIQ (Fast Interrupt reQuest mode) : mode interruption rapide. Ce mode est actif lors de la réception d’un signal FIQ uploads/Ingenierie_Lourd/ cours-architectures-avancees-2eme-partie.pdf
Documents similaires










-
34
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 02, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 4.7837MB