ARM - LabUnix
Transcription
ARM - LabUnix
18/09/2014 MSP430 Chapitre 2a La famille ARM Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments Pourquoi ARM? • ARM : Advanced RISC Machines : architecture RISC de 32 bits • Disponible uniquement comme design utilisé sous licence (par Intel, Apple, Samsung, Atmel, TI, Philips, ST microelectronics, et des dizaines d’autres companies) – Le client adapte le design à ses besoins en ajoutant éventuellement des périphériques • Adapté au design d’appareils portatifs (notamment grâce à sa faible consommation de courant et bonne performance) – Téléphones cellulaires, lecteurs multimédia, consoles de jeux, appareils photo et caméras numériques, etc. – 75% du marché des processeurs 32 bits pour applications embarquées • Beaucoup d’outils de développement Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments 1 18/09/2014 Philosophie de conception • Simplicité pour une empreinte physique minimale permettant l’ajout de périphériques sur la même puce • Architecture RISC pour un design simplifié (jeu d’instruction réduit) • Versatilité de déploiement – Plusieurs options architecturales • Destiné premièrement aux systèmes embarqués, mais aussi applicable au ordinateurs de type « notebook » Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments Le modèle de CPU ARM • Architecture de base et jeu d’instruction communs à tous les membres • Ensemble uniforme de 16 registres de 32 bits • Code d’instructions de 32 bits avec option 16 bits – Instructions à 3 arguments (2 sources + 1 destination) en mode 32 bits et 2 arguments en mode 16 bits (1 source + 1 source‐destination) • Architecture RISC de type load/store • Multiplieur et décaleur circulaire Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments 2 18/09/2014 Algorithme de Booth (1951) • Repose sur l’egalité: K 1 1 1 1 1 1 n n 2 2 1 2 1 2 2 2 1 2 2 2 n 2 n1 2 n K K 2 n 1 2 n K • Permet de transformer la multiplication binaire en soustraction de valeurs décalées du multiplicant! Ex. : Supposer que l’on a un nombre binaire M à multiplier par 30; on a: M*30 = M * (00011110) = M * (24+23+22+21) d’où: M * (00011110) = M * (25 – 21) Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments Registres dans un processeur ARM Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments 3 18/09/2014 Jeu d’instructions Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments Modes d’opération typiques • Dictés par le contexte d’opération ou programmés : – User : Mode normal – System : Pour l’exécution de certaines tâches privilégiées (réservées au système d’exploitation en général) – Supervisor : Mode protégé pour le système d’exploitation – Abort : Pour la protection des processus ou de la mémoire – Undefined : Permet l’émulation d’instructions de coprocesseurs matériels non implémentés – FIQ : Mode de réponse rapide aux interruptions – IRQ : Mode de réponse normale aux interruptions Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments 4 18/09/2014 Variations du design T: Thumb D: On‐chip debug support M: Enhanced multiplier I: Embedded ICE hardware T2: Thumb‐2 S: Synthesizable code E: Enhanced DSP instruction set J: JAVA support, Jazelle Z: Should be TrustZone? F: Floating point unit H: Handshake, clockless design for synchronous or asynchronous design Copyright 2009 Texas Instruments Traduit et adapté de l’anglais MSP430 Teaching ROM Évolution initiale de l’Architecture 1 2 3 Early ARM architectures Halfword and signed halfword / byte support System mode Improved ARM/Thumb Interworking 4 CLZ SA-110 Saturated maths DSP multiplyaccumulate instructions SA-1110 Thumb instruction set ARM1020E 4T XScale ARM7TDMI ARM9TDMI ARM9E-S ARM720T ARM940T ARM966E-S Traduit et adapté de l’anglais MSP430 Teaching ROM 5T E Jazelle 5T EJ Java bytecode execution ARM9EJ-S ARM926EJ-S ARM7EJ-S ARM1026EJ-S SIMD Instructions 6 Multi-processing V6 Memory architecture (VMSA) Unaligned data support ARM1136EJ-S Copyright 2009 Texas Instruments 5 18/09/2014 La famille ARM Cortex x14 CortexA15 ...2.5GHz x14 Cortex-A9 Cortex-A8 x14 Cortex-A5 1-2 Cortex-R7 1-2 Cortex-R5 Cortex-R4 Cortex-M4 SC300 Cortex-M3 Cortex-M1 SC000 Cortex-M0 12k gates... Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments La famille ARM Cortex x14 • ARM Cortex‐A : Applications processors – Targeted for OS’s, graphics, demanding tasks • Télephones intelligents (IPhone, Galaxy, etc.) • Ordinateurs tablettes (Ipad, Note, Nexus, etc.) CortexA15 ...2.5GHz x14 Cortex-A9 Cortex-A8 x14 Cortex-A5 1-2 Cortex-R7 1-2 • ARM Cortex‐R : Embedded processors – Real‐time signal processing, control applications • Applications en temps reel • ARM Cortex‐M : Microcontrollers – MCU, ASSP, and SoC applications Cortex-R5 Cortex-R4 Cortex-M4 SC300 Cortex-M3 Cortex-M1 SC000 Cortex-M0 12k gates... • Compteurs intelligents, réseaux de capteurs Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments 6 18/09/2014 Famille ARM Linux, Win CE, Android, etc. RTOS Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments Pourquoi pas le Pentium 4 à la place ? Architecture compliquée pour un premier cours ! Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments 7 18/09/2014 Exemple de design ARM : Téléphone intelligent Copyright 2009 Texas Instruments Traduit et adapté de l’anglais MSP430 Teaching ROM Exigences pour un téléphone intelligent Physical Interaction Social Networks Multimedia Recognizing the Environment Secure Transactions Information Retrieval Location and Proximity Connectivity Les fonctions augmentent rapidement • • • Sources d`information nombreuses Interactions complexes et transformations de flux de données fréquentes Fardeau sur l`alimentation, la BP et le puissance de calcul Traduit et adapté de l’anglais MSP430 Teaching ROM Solution : Partitionner le design! Copyright 2009 Texas Instruments 8 18/09/2014 Partitionnement du système Il faut partitionner le système en un ensemble hétérogène, mais synergétique Associer les tâches aux ressources les plus adaptées Fragmenter l’application globale et la piles logicielle • Utilisation de Sous‐systèmes de traitement multiples orientés tâches Video • Comment trouver le partitionnement optimal? Video HW Subsystem – – – Quelles sont les caractéristiques des partitions? Combien de partitions distinctes existent? Comment associer une tâche avec le matériel (HW) le plus efficace? Partition – – Audio Subsystem OS Optimized Subsystem GIC & Events CPU CPU Camera Subsystem CPU HS I/O Subsystem IO OPT CPU Security L2 Cache SOC L3 GPU/Throughput Processing Memory Subsystem Traduit et adapté de l’anglais MSP430 Teaching ROM GP APPS Subsystem • HW Accelerators Copyright 2009 Texas Instruments Partitionnement du système • On peut découvrir les opportunités d’optimisation en identifiant les partitions de comportement uniques dans le système – Partitionnement de phases : la pratique montre des phases de comportement qui stressent le système à des degrés divers avec le temps – Partitionnement de sous‐tâches (“threads”) : les fils d’exécution ont des caractéristiques spécifiques Phase partitioning of BBench use case Traduit et adapté de l’anglais MSP430 Teaching ROM Thread partitioning of BBench use case Copyright 2009 Texas Instruments 9 18/09/2014 Partitionnement des fils d’exécution • Certains fils d’exécution et fonctions pourraient s’exécuter mieux dans des sous‐systèmes de traitement spécialisés CPU U liza on of Primary BBench Threads 100% 7% 90% 16% 80% – Division optimale de la charge totale de calcul 70% 32% 60% • Exemple other android.browser 50% – Trois files d’exécution primaires dans Android‐BBench consomment 93% du temps de CPU WebViewCoreThread SurfaceFlinger 40% 30% 45% 20% 10% 0% Copyright 2009 Texas Instruments Traduit et adapté de l’anglais MSP430 Teaching ROM Thread Analysis Android.Browser thread is relatively memory-intensive Read / Write Bandwidth (MB/s) 600 600 600 500 500 500 400 400 400 300 300 300 200 200 200 100 100 100 0 0 0 D$ / DTLB Miss Rates 10 20 30 9% 8% 7% 6% 5% 4% 3% 2% 1% 0% 0 0 40 10 20 30 40 9% 8% 7% 6% 5% 4% 3% 2% 1% 0% 0 10 20 30 40 SurfaceFlinger 0 10 20 30 40 10 20 30 40 9% 8% 7% 6% 5% 4% 3% 2% 1% 0% 0 10 20 30 40 android.browser 0 WebViewCoreThread 20-pt moving averages shown as BOLD • • • Threads may vary in many ways – just a few examples shown Can we build cores or subsystems more tailored to needs of different threads? Performance or power efficiency gains both wins Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments 10 18/09/2014 Partitionnement de fils d’exécution • Peut‐on augmenter l’efficacité du navigateur en exécutant Android.Browser sur un cœur optimisé? – Android.Browser fait un usage intensif de la mémoire, mais n’est pas très affecté par la fréquence d’opération du CPU. On peut maintenir la performance en baissant la fréquence, ce qui permet de baisser la consommation d’énergie du système • Créer deux systèmes, un avec un cœur rapide et l’autre avec un cœur plus lent • Allouer tous les fils d’exécution au cœur rapide et Android.Browser au cœur plus lent 1 GHz ARM (V=1.0) 1 GHz ARM (V=1.0) 1 GHz ARM (V=1.0) 500 MHz ARM (V=0.73) 1 GHz L2 1 GHz L2 1 GHz L2 500 MHz L2 Coherent Interconnect Coherent Interconnect System 1: Control System 2: Experimental Traduit et adapté de l’anglais MSP430 Teaching ROM Copyright 2009 Texas Instruments Partitionnement de phases • Passe par l`identification des phases uniques de la tâche à accomplir – Chaque phase peut avoir différentes demandes de performance auprès du système CPI 7.00 6.00 5.00 L1_DTLB_MISS_RATE BR_MISS_RATE 4.00 3.00 • Alloue les ressources les plus performantes 2.00 1.00 0.00 – Utilisation de métriques L1_ITLB_MISS_RATE – Conception de HW optimisé phase – Ordonnancement de tâches dynamique • Ex. : Pour BBench, 97.6% de la performance estimée repose sur trois phases • Opportunité de créer une architecture hétérogène dédiée pour une meilleure consommation d’énergie Traduit et adapté de l’anglais MSP430 Teaching ROM L1_IC_MISS_RATE L2_DC_MISS_RATE Slice 8 L1_DC_MISS_RATE Slice 1 Slice 9 SystemBench Firefox 3.5 Copyright 2009 Texas Instruments 11