1 Supposons que lon dispose de 4 registres ARM Considérons le code C suivant w = a + b; x = c + w; y = c + d;

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Objet : Présentateur: 1. 9/02/11 Confidentiel 2 Carte didentité du projet Liste des Partenaires Laboratoires : G. Groupes : PME : Club utilisateur : AAP.
Tables de Karnaugh Table de vérité : Table de Karnaugh
Connexité.
Parcours.
Machines séquentielles
All ACP Agricultural Commodities Programme LAAACP : une solution novatrice à un problème récurrent (octobre 2010) Laurence Guigou Unité de coordination.
Métabolisme révision décembre Révisions de métabolisme.
Formalisme noyau : Graphes Conceptuels de Base. Ball:* Cube:* Ball:* Color:* Cube:A between carac onTop Labels are taken in the vocabulary (or support)
Calculs de complexité d'algorithmes
Concepts d’architectures avancées
Critère d’ordonnancement en temps réel Partie II
Plan du cours : 2ème Partie
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
LES POMPES ANALGESIQUES CONTROLEES = PCA Année 2010/2011
Gains à l’échange sur les marchés
Chapitre 3 Interblocages
Algèbre relationnelle
Chargé de recherches au CNRS
Compilation avancée: analyse de programmes, optimisations de code.
Interface Matériel/logiciel
Définition : ordonnancement o Lordonnancement répartit lensemble des fonctions dans des étapes de contrôle en vérifiant un ensemble de contraintes. o lenchaînement.
Interface Matériel/logiciel
Ch 5 : La Prédiction des Branchements
Les circuits séquentiels
L ’informatique : la mécanique de l ’abstraction
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Exécution en ordre partiel Une fois les instructions renommées, les seules dépendances qui subsistent entre instructions registre-registre sont les dépendances.
Renommage et ILP Le compilateur mappe la mémoire sur les registres architecturaux. Les registres architecturaux étant peu nombreux, sont fortement réutilisés.
LE SURPLUS DU CONSOMMATEUR
Construction de Box-Plot ou diagrammes en boîtes ou boîtes à moustaches Construire une boîte à moustaches …
Schéma de Développement Stratégique
Cours #9 Conception et réalisation de processeurs à usage général
COMPARAISON DES PROFILS DE TENEUR EN EAU ET DE SUCCION DANS LES LIMONS
Des RRA à la diagnosticabilité
2. Théorie de la consommation (demande) (suite)
Architecture et technologie des ordinateurs II
Architecture et technologie des ordinateurs II
Introduction à la Théorie géométrique de la diffraction
Comparaison Début XXème vs Début XXIème
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Encadré par : O. Papini, H. Glotin et P. Hebrard Nidhal BEN ALOUI
Fonctionnement des Unités de Traitement
Test bilan de calcul mental N°1 :
1 DULBEA Chapitre 14 : Economie réelle et économie monétaire.
Fonctionnement et analyse de la fonction conversion analogique numérique du PIC 16F87X Schéma fonctionnel de la chaîne d’acquisition d’une grandeur analogique.
Lycée d’Altitude Briançon « Horloges d’Altitude »
IFT615 – Intelligence artificielle Planification temporelle
GPA750 Les ateliers multigammes Chapitre 5
CSI2520 Représentation: g([Noeud,...],[arc(Noeud1,Noeud2,Valeur),...]). arc(g(Ns,Arcs),N1,N2,Valeur):- member(arc(N1,N2,Valeur),Arcs). % pour un graphe.
Plan de construction du pont Technologie 10e.
Architecture et technologie des ordinateurs II
4.4 Le mouvement circulaire uniforme
Économie du développement - IHEID
Telling Time in French Foreign Language House LLC Images by Clipart.com Copyright 2011.
Lycée ELKHAWARIZMI De SAFI
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
mois après le début des travaux mois après le début des travaux.
ASSEMBLEUR (ARM).
Cours électronique IFIPS Année
Fonctions Valeur Absolue
Processeurs et chemins des données
Gestion de processus Corrigé TD 1 EFREI I
Informatique de gestion – IO MER L3 – Pierre SOURNAC Informatique de Gestion part III – the macro rises L3 – IO MER
GRAFCET : IEC/CEI … Rappels Structuration & Hiérarchisation
GENERALITE SUR LA PHYSIQUE DES SEMI-CONDUCTEURS
Les Machines RAM.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
M1Info-ASE 1 Pipeline logiciel. M1Info-ASE 2 Pipeline logiciel Le déroulage de boucle a ses limites Approcher des perf optimales  facteurs de déroulage.
Introduction à l’assembleur ARM: arithmétique et conditions
Transcription de la présentation:

1 Supposons que lon dispose de 4 registres ARM Considérons le code C suivant w = a + b; x = c + w; y = c + d;

2 Allocation Naïve Une variable est assignée à un registre : il nous faudrait 7 registres Comment améliorer ce résultat ? Construction du graphe de durée de vie des variables w = a + b; blabla … x = c + w; Durée de vie début fin de vie

3 Durée de vie des variables : 2 w = a + b; /*1*/ x = c + w; /*2*/ y = c + d; /*3*/ MAX = 3MAX

4 a b x w y c d Résoudre le problème dallocation

5 Coloriage de graphe - NP Problem a b x w y c d a b x w y c d

6 Durée de vie des variables AR0 BR1 C DR0 WR3 XR0 yR3 LDR R0,[p-a];load a into R0 using pointer to a (p-a) LDR R1,[p-b];load a into R1 ADD R3,R0,R1;compute a+b STR R3,[p-w];w=a+b LDR R1,[p-c];load c into R1 ADD R0,R1,R3;compute c+w, reusing R0 for x STR R0,[p-d];x=c+w LDR R0,[p-d];load d into R0 ADD R3,R1,R0;compute c+d, reusing R3 for y STR R3,[p-y];y=c+d LDR R0,[p-a];load a into R0 using pointer to a (p-a) LDR R1,[p-b];load a into R1 ADD R3,R0,R1;compute a+b STR R3,[p-w];w=a+b LDR R1,[p-c];load c into R1 ADD R0,R1,R3;compute c+w, reusing R0 for x STR R0,[p-d];x=c+w LDR R0,[p-d];load d into R0 ADD R3,R1,R0;compute c+d, reusing R3 for y STR R3,[p-y];y=c+d w = a + b; /*1*/ x = c + w; /*2*/ y = c + d; /*3*/ w = a + b; /*1*/ x = c + w; /*2*/ y = c + d; /*3*/

7 Problèmes interdépendants Allocation des registres Ordonnancement

8 Interdépendance avec lordonnancement w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/ w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/ MAXMAX = 5

9 interdépendance On dispose que de 3 registres Recharger des variables

10 Comparaison LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w LDR R0,c LDR R1,d ADD R2,R0,R1 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y LDR R0,a LDR R1,b SUB R2,R1,R0 STR R2,z LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w LDR R0,c LDR R1,d ADD R2,R0,R1 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y LDR R0,a LDR R1,b SUB R2,R1,R0 STR R2,z w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/ w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/

11 Modification de lordonnancement w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/ w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/ w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/ w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/

12 Interdépendance avec lordonnancement w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/ w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/ MAX Modification de lordonnancement MAX = 3

13 Comparaison LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w SUB R2,R0,R1 STR R2,z LDR R0,c LDR R1,d ADD R2,R1,R0 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w SUB R2,R0,R1 STR R2,z LDR R0,c LDR R1,d ADD R2,R1,R0 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/ w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/

14 Comparaison LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w LDR R0,c LDR R1,d ADD R2,R0,R1 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y LDR R0,a LDR R1,b SUB R2,R1,R0 STR R2,z LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w LDR R0,c LDR R1,d ADD R2,R0,R1 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y LDR R0,a LDR R1,b SUB R2,R1,R0 STR R2,z w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/ w = a + b; /*1*/ x = c + d; /*2*/ y = x + e; /*3*/ Z = a – b; /*4*/ LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w SUB R2,R0,R1 STR R2,z LDR R0,c LDR R1,d ADD R2,R1,R0 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y LDR R0,a LDR R1,b ADD R2,R0,R1 STR R2,w SUB R2,R0,R1 STR R2,z LDR R0,c LDR R1,d ADD R2,R1,R0 STR R2,x LDR R1,e ADD R0,R1,R2 STR R0,y w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/ w = a + b; /*1*/ Z = a – b; /*2*/ x = c + d; /*3*/ y = x + e; /*4*/