ASP Architecture t du processeur Interfaces et accès Michel Starkier 1 Architectures architecture de Harvard architecture de von Neumann d'instruction ti de données instructions et données ima imd dma dmd A D processeur processeur 2
Cours ASP MODES D ADRESSAGE 3 Modes d adressage Instruction => opcode + opérande(s) opcode opérande opérande opérande Adressage immédiat : => valeur de l opérande add #8 opcode opérande 4
Modes d adressage Direct absolu par registre opcode opcode registre opérande opérande registres 5 Modes d adressage Indirect opcode registre opcode registres opérande opérande 6
Modes d adressage Relatif opcode registre offset + opérande opcode offset registres PC + opérande 7 Modes d adressage Auto-incrémenté pré-incrémentation / pré-décrémentation opcode registre registres taille de l'opérande opérande 19/09/2009 addition ou soustraction 8
Modes d adressage Auto-incrémenté post-incrémentation / post-décrémentation opcode registre registres opérande addition ou soustraction taille de l'opérande 9 Pile (stack) Pile => zone réservée é Registre dédié => stack pointer Pointe sur le bas de la pile à l initialisation registres stack pointer 0xFFFFF008 pile 0xFFFFFFFF 0xFFFFF000 + taille mot 0x00000000 10
Pile (stack) Ecriture / lecture en mode auto-incrémenté té pile ascendante 1 er mode Push : écriture avec post-incrémentation Pop : lecture avec pré-décrémentation 2 ème mode Push : écriture avec pré-incrémentation Pop : lecture avec post-décrémentation même principe pour pile descendante 11 Cours ASP MÉMOIRE CACHE 12
Principe de localité Exécution d un programme : Le principe de localité temporelle indique que des éléments ( instructions ou données) auxquels on a eu accès récemment seront probablement utilisés dans un futur proche. Le principe de localité spatiale indique que, si des éléments d une zone ont été utilisés, d autres éléments situés dans la même zone ( à proximité en terme d ) seront probablement utilisés dans un futur proche. 13 Mémoire cache Mémoire cache (anté) é Mémoire petite et rapide Située entre les unités de traitement du processeur et la principale p Processeur ALU Mémoire Mémoire registres cache principale 14
Hiérachie 8-128 B Registres 0.2 2 ns 8 512KB 1-10ns Cache 0.5 16 MB 10-100ns Mémoire principale 40-500 GB 1-10ms Disque 15 Système cache Hit Miss répertoire processeur cache Contrôleur de cache données 16
Hit ( lecture ) processeur répertoire cache Contrôleur de cache données 17 Miss (lecture) processeur répertoire cache Contrôleur de cache données 18
Hit ( écriture ) processeur répertoire cache Contrôleur de cache données 19 Miss (écriture) processeur répertoire cache Contrôleur de cache données 20
Ligne de données Une ligne (ou bloc) de la cache est un groupe d octets (8 à 64 en général) Les transferts entre cache et principale se font par lignes Intérêt d avoir des lignes de plusieurs octets? Application du principe de localité RAM de répertoire plus petite que la RAM de cache Transferts multi-mots (burst) plus rapides 21 Terminologie 2 cas : 1. La donnée est dans le cache à la lecture => cache hit Hit rate : pourcentage d accès avec hit (nb hit / nb accès) Hit time : temps d accès à la cache 2. La donnée n est pas dans le cache => cache miss Miss rate = (1 Hit rate) Miss penalty : temps d accès principale + temps de chargement cache => Miss penalty >> Hit time 22
Caches multi-niveaux Niveaux 1, 2 et 3 => L1, L2, L3 Exemple : Opteron 2xL1 64kB, 1 L2 1MB L1 Process seur Instructions L1 L2 L3 Mémo oire Données 23 Exemple : Hit rate / Miss rate Hit time = 2 cycles ( d horloge) Miss penalty = 5 cycles Hit rate = 80 % Nb cycles moyen par donnée = 0.8 x 2 + 0.2 x 5 = 2.6 (1.6 hit, 1 miss) Soit 40% (1/2.6) du temps en miss pour 20% des données 24
Mémoire cache complétement associative (fully associative cache) Le répertoire est une associative contient l de ligne dans la principale donne l correspondante dans la cache 19/09/2009 Architecture des systèmes à processeur / MSR 25 Mémoire cache complétement associative (fully associative cache) M REPERTOIRE comparateur registre 0 comparateur registre 1 comparateur registre 2 comparateur registre 2 N -1 e n c o d a g e N Adresse de ligne match M E M O I R E C A C H E 19/09/2009 Architecture des systèmes à processeur / MSR 26
Mémoire cache associative par ensemble (direct mapped cache) La cache est adressé par les bits de poids faible de l Le répertoire contient un tag pour chaque du cache le tag contient les bits de poids fort de l et un bit de validité 31 Adresse (32 bits) 0 Tag index offset 27 Mémoire cache associative par ensemble (direct mapped cache) de donnée index IN Répertoire (tags) OUT Tag index offset tag comparateur index + offset mot la cache M E M O I R E C A C H E 19/09/2009 Architecture des systèmes à processeur / MSR match 28
Mémoire cache associative à plusieurs voies (N-way set associative cache) Constitué de plusieurs caches par ensemble couplées Permet de stocker plusieurs mots ayant les mêmes LSB d ( index) de donnée tag de la cache répertoire cache répertoire cache voie A voie B Algorithmes d écriture write-through th h : la donnée est écrite à la fois dans le cache et dans la principale. p la principale et le cache ont à tout moment une valeur identique. write-back : la donnée est écrite dans la principale i que lorsque la ligne disparaît du cache. un bit nommé dirty bit est activé quand une donnée de la ligne a été modifiée write buffer données à écrire stockées temporairement écriture différée pour ne pas bloquer le processeur 30
Algorithmes d effacement Choix de la ligne à effacer quand une nouvelle ligne doit être écrite Méthode LRU (least recently used): mémorisation de l ordre d utilisation des lignes Remplacement aléatoire 31 Exercice Dessinez un bloc cache «direct mapped» de 4kB. La taille d une ligne est 16 octets. Le bus d et le bus de donnée du processeur sont des bus 32 bits. Indiquez la largeur (nb de bit) des divers bus et la taille du répertoire (nombre de tags) 32
ARM926EJ-S 33 ARM926EJ-S Cache architecture 1 34
ARM926EJ-S Cache architecture 2 35 Cours ASP MEMOIRE VIRTUELLE 36
Mémoire virtuelle Translation d d Taille virtuelle > taille physique Protection des données => mode multitâche, multiutilisateur, noyau / utilisateur ( Linux), processeur MMU Memory Management Unit cache principale disques virtuelle physique 37 Mémoire virtuelle Mémoire partitionnés en blocs : Pages (virtuel ) Frames page ( physique) Numéro de page translaté té en numéro de frame Offset ( déplacement) inchangé virtuelle numéro de page page offset translation (MMU) numéro de frame physique offset 38
Mémoire virtuelle wikipédia 39 Accès virtuelle Translation par : Table (page table, mapping table) Translation Look-aside Buffer (TLB) => cache complètement associatif Bits de protection dans la table ou le TLB : read. write, kernel, user,... TLB hit => translation, accès à la cache TLB miss => accès à la table, mise à jour du TLB, accès à la cache Page fault => interruption et chargement de la à partir du disque 40
Block diagram MMU à compléter en cours 41 Exercice Un MMU gère les paramètres suivants : taille de page de 8K octets virtuelle 8 Go physique 256 Mo Donnez le nombre de bits du numéro de page, du numéro de frame, et de l offset 42
Mémoire virtuelle: segmentation différentes tailles de segment supportées combinable avec pages segment virtuelle offset translation (MMU) base physique + = physique offset 43 Cache et virtuelle Cache avec s physiques partage de données du cache par plusieurs process gestion des droits par le MMU avant l accès cache Proc. MMU Cache Mémoire Cache avec s virtuelles accès plus rapide attention! une cache peut correspondre à plusieurs s physiques ( et réciproquement) => bits supplémentairesd information information dans le cache Proc. Cache MMU Mémoire 44
ARM926EJ-S Virtual memory 45 ARM926EJ-S 46