Chemin de données Titre Chemin de données MEMOIRE ensemble de registres + unité de calcul DONNEES registre compteur PC PROGRAMME registre instruction IR unité de contrôle Les composants qui permettent le stockage, le transfert et la transformation des données. 2. 1 Chemin de données 1. Les composantsTitre du chemin de données unité centrale RAM Traitement des données mémoire centrale Stockage des programmes et des données SYSTEM BUS CPU Chemin de données 2. 2 Chemin de données Titre Le chemin de données : • Les composants qui traitent les données – Mémoire centrale : instructions et données des programmes – Registres internes : • Registres généraux : données temporaires pour les calculs • Registres de contrôle et d'état : informations de contrôle nécessaires à l'exécution du programme – Unités de calcul – Bus • La façon dont ces composants sont interconnectés 2. 3 Registres entier Registres flottant Calcul entier 1 Calcul float 1 Calcul entier 2 Calcul float 2 Mémoire données Extraction des instructions Cas général Titre Cache données Cache instructions Mémoire instructions Chemin de données Ordonnancement des tâches 2. 4 Chemin de données Cas étudié Titre MEMOIRE ensemble de registres + unité de calcul unité de contrôle 2. 5 DONNEES program counter PC PROGRAMME instruction register IR Chemin de données Titre 2. Les registres Les registres sont internes au CPU; ils peuvent être lus/écrits en un cycle processeur (fréquence du CPU) · Registres généraux : pour les calculs intermédiaires, utilisés comme variables des programmes assembleur · Registres de contrôle ou d'état : ont un rôle bien spécifique, géré par la partie contrôle 2. 6 Chemin de données 2.1. Registres généraux Titre Utilisés par le programmeur / compilateur pour stocker des données ou des adresses mémoire – dans une mémoire statique à accès rapide et petite capacité – chaque registre peut être lu/écrit en un cycle processeur (fréquence du CPU) – généraux mais liés à leur type (entier, flottant) Combien de registres ? – beaucoup -> moins d’accès mémoire – MAIS codage du numéro de registre sur plus de bits (-> code binaire plus gros) en général entre 16 et 64 registres (16 MC68000, 136 SPARC, 16 ARM) De quelle taille ? – Registres d’adresse : taille des adresses mémoire – Registres de données : taille du bus interne (et entrée des unités de calcul) 2. 7 Chemin de données Titre 2.2. Registres de contrôle et d'état Registres du chemin de données non modifiables par le programmeur (sauf par instructions spécialisées); servent à gérer le contrôle de l’exécuton du programme ● PC: Program Counter adresse de l'instruction à exécuter ● IR: Instruction Register premier mot de l'instruction : contient la description de l’instruction ● SR: Status Register code condition: informations sur le résultat des calculs (C retenue, Z résultat nul, N résultat négatif, O overflow, ...) + masque d'interruption ● SP: Stack Pointer adresse de la pile ● registres internes en entrée/sortie des unités de calcul et en entrée/sortie mémoire (stockage intermédiaire de données) 2. 8 Chemin de données Titre ©W. Stallings « Computer Organization and Architecture » 2. 9 Chemin de données R0 R1 R2 R3 R4 R5 R6 R7 Titre • • • • • • 16 Registres de 32 bits R0-R10, R12 : généraux R11 (fp) Frame pointer R13 (sp) Stack pointer R14 (lr) Link register R15 (pc) Program counter R8 R9 R10 R11 • Current Program Status Register R12 31 28 R13 N Z C V 27 8 Pas utilisés 7 6 5 4 0 IF T Mode R14 R15 Les registres du processeur ARM © O. Meste « Cours assembleur ARM » 2. 10 Chemin de données 3. Unités de calcul Titre Arithmetic and Logic Unit (ALU) Circuit permettant de réaliser ≠calculs selon le code fourni par la partie contrôle e1 e2 M f1 f2 f3 C-out O N Z c-in S Données en sortie 2. 11 Contrôle en sortie Contrôle en entrée Données en entrée Stockés dans le registre SR Chemin de données Titre Exemple PROCSI : Mf1f2f3 = 1101 e1 = 0110000000110000 e2 = 0011111011110000 addition 24624 16112 Résultats : - données : 1001111100100000 - contrôle : C-out = 0 O=1 N=1 Z=0 2. 12 page 1 - 24800 pas de retenue addition de 2 nb >0, résultat <0 le résultat est négatif le résultat n'est pas nul Chemin de données Titre Différentes unités de calcul en fonction du type de données: ● entiers : codés en complément à 2 A=-2 ● n-1 n-2 a n-1 + i=0 ai 2i flottants : ©W. Stallings « Computer Organization and Architecture » 2. 13 Chemin de données Titre 4. Mémoire centrale CPU k bits d’adresse n bits de données unité mémoire 2k mots n bits par mots contrôle – Mémoire dynamique à accès lent et grande capacité DRAM – Le temps de cycle mémoire est plus grand que le temps de cycle processeur → mot mémoire centrale lu / écrit en plusieurs cycles processeur Pentium 4 : CPU ~ 3 Ghz, system bus 400 Mhz 2. 14 Chemin de données Titre Le processeur et sa mémoire communiquent selon un protocole : • modèle synchrone – le processeur met sur les broches les signaux pour activer un accès mémoire – au bout de x tops il sait que la donnée est disponible ou écrite. • modèle asynchrone (contrôlé) – le processeur demande un accès mémoire – la mémoire signale que l'accès est fini – le processeur scrute les signaux mémoire pour savoir si l'accès mémoire est terminé 2. 15 Chemin de données Titre Modèle synchrone Lecture ● positionner l’adresse de l’accès ● positionner les signaux de contrôle pour activer une lecture → après x tops d’horloge processeur, la donnée est disponible Ecriture ● positionner l’adresse de l’accès ● positionner la donnée à écrire ● positionner les signaux de contrôle pour activer une écriture → après x tops d’horloge processeur, la donnée a été écrite en mémoire Notation : MEM[ad] le mot de la mémoire MEM à l’adresse ad 2. 16 Chemin de données Titre Exemple PROCSI Address_bus Data_bus as page 2 ds Zone instructions Zone données r/w 216 - 1 215 215 - 1 0 Lecture Ecriture address address data data r/w r/w as as ds ds H H T1 T2 T3 T4 T1 donnée disponible 2. 17 T2 T3 T4 donnée écrite Chemin de données Titre 5. Le chemin de données étudié : PROCSI page 3 RD1 RD2 R/Wreg REG SR SP ROP CSreg 3 PC IR BUS Registres spécialisés : PC, IR, SR, SP RD1 et RD2 : pour les calculs RAD : adresse de l'accès mémoire ROP : registre opérande RAD ADDRESS_BUS REG : 8 registres généraux DATA_BUS 16 AS MEMOIRE instructions 2. 18 DS données R/W contrôle