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 n1    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