Telechargé par LISI-A02 -02

ch1-Architecture

publicité
Cours
Architecture avancée
CHAPITRE I: Introduction aux architectures des
microprocesseurs
• Processeur
• Architecture interne
• Architecture van Neuman
• Architecture Harvard
• Traitement des instructions
• Mode d’adressage
• Architecture RISC et CISC
• Architecture RISC
• Mémoire cache
• Interruption
• MMU
Microprocesseur ?
Processeur
CALCULE ET TRAITEMENT DES DONNEES
Elément de base est le transistor : (interrupteur)
La technologie CMOS (complementary metal-oxide semiconducteur)
Transistor de type N
Transistor de type P
Architecture interne
Eléments principaux :
BUS D’ADRESSES
o Unité de commande
o Unité de traitement
Programme
Unité de
traitement
Unité de
commande
données
BUS DES DONNEES
Architecture interne
UNITE DE COMMANDE
 Rôle
BUS D’ADRESSES
• Effectuer la recherche en mémoire instructions
• Décoder l’instruction codée sous forme binaire
• Commander l’exécution de l’instruction
PC
Séquenceur
 Composition
• Compteur du programme
• Registre d’instruction et décodeur d’instruction
• Séquenceur
Registre
d’instruction
Décodeur
d’instruction
Architecture interne
UNITE DE TRAITEMENT
 Rôle
• Assurer les traitements nécessaires à l’exécution
des instructions
ACC
Registre d’état
 Composition
• Accumulateur (stockage des opérande et résultat d’opération)
• Unité arithmétique et logique (UAL)
UAL
• Registre d’état (Flag) (stockage résultat des test)
OV =Overflow Flag
C = Carry Flag
Z = Zero Flag
S = Sign Flag
P = Parity Flag
Registre Données
Architecture interne
registres
UAL : Unité Arithmétique et Logique
barrelshifter
• Commander par le séquenceur
• Calcule arithmétique (addition, soustraction….)
• Opération logiques (xor, And, Nand……..)
• Décalages de bit (barrelshifter)
Opération plus spécifique
UAL
ov
c
z flag
s
p
Unité d’exécution arithmétique et logique
• Multiplication-accumulation (DSP)
• ALU + Multiplication en réel ( unité FPU) (ARM)
• Calculs vectoriels
c0
c1
c2
c0
Accumulateur
Architecture interne
ARCHITECTURE COMPLETE
Architecture Von Neuman
BUS D’ADRESSES
Mémoire
instruction et
données
CPU
BUS DES DONNEES
• les Instructions et les données sont stocker dans la même mémoire
• Un seul chemin d’accès à la mémoire
** Un bus de données (programme et données)
** Un bus d’adresse (programme et données)
• Utiliser pour le traitement des données
Architecture Harvard
Bus D’adresse
BUS DES DONNEES
Mémoire
instructions
CPU
Bus D’adresse
Mémoire données
BUS DES DONNEES
• Séparation de la mémoire instructions et la mémoire données
• Bus des instruction et des données sont séparés
• Permet une meilleur utilisation CPU; accès rapide et débit élevé
Architecture utilisée dans tous les processeurs performants
Traitement des instructions
Instruction ?
• effectuer des opérations sur les données et des saut de programme.
• composer d’un :
*** Code opération: code binaire présente l’action à effectuer
par le processeur
*** Champ opérande: donnée ou bien adresse de la donnée
Exemple: ADD A, #10
Code opération
instruction d’addition
champ opérande
La taille d’instruction dépend de l’architecture du processeur
Traitement des instructions
• Le langage assembleur est le plus proche du
langage machine.
• Chaque processeur (famille de processeurs)
possède son propre langage assembleur.
Langage haut niveau
( langage C, C++, java, python…)
compilation
Langage assembleur
(add, mov, sub, cmp…..)
assemblage
Langage machine
(0001 1101, 11101100…….)
Traitement des instructions
Recherche de l’instruction en mémoire
• Par l’émis d’un ordre de lecture par l’unité de
commande, la valeur de PC est positionné sur le
bus d’adresse
• Après le temps d’accès à la mémoire,
l’instruction sélectionné est transféré sur le bus
des données
• stockage de l’instruction dans le registre
d’instruction et la décodée par le décodeur
d’instruction
Traitement des instructions
Décodage et recherche de l’opérande
• L’unité de commande transforme l’instruction
en une suite de commandes élémentaires
nécessaires au traitement de l’instruction
• Si l’instruction nécessite une donnée en
provenance de la mémoire, l’unité de
commande récupère sa valeur sur le bus de
données
• L’opérande est stocké dans le registre de
données
Traitement des instructions
Exécution de l’instruction
• Le séquenceur commande l’exécution de
l’instruction
• Les drapeaux sont positionnés
• Le PC est positionné pour l’instruction
suivante
Traitement des instructions
Type d’instruction
 Traitement
• opérations arithmétiques et logiques (add, sub, mul, and ,xor…..)
 Transferts des données avec la mémoire
• load, store (rechargement et stockage dans la mémoire)
 Contrôle
• Branchements
• branchements aux sous programmes
• Sauvegarde automatique de l’adresse de retour en « PILE »
 Système
• Interruptions logicielles ( permettre au processeur d’utiliser un autre mode « multi-tâches » )
 Coprocesseur
• Instructions spécifiques à un opérateur extérieur « coprocesseur »
Mode d’adressage
• Les mode d’adressage présente les manières de définir la localisation d’un opérande
****Adressage immédiat (valeur immédiat)
Exemple:
ADDA , #4
****Adressage direct ( adresse de la donnée)
Exemple:
ADDA , adresseX
****Adressage indirect
Exemple:
ADDA , @adresseX
( adresse d’une adresse donnée)
Performance des processeurs
•
•
•
•
•
•
•
•
Langage utilisé ( assembleur, c, java….)
Style de codage
Compilation
Jeu d’instruction (8, 16/32/64bits)
CPI (nb de cycle /instruction)
MIPS (Puissance de traitement du processeur: MIPS=FH/CPI )
Fréquence d’horloge
Mémoire cache
Architecture RISC et CISC
• Deux architectures sont disponible :
Architecture RISC (Reduced Instruction set computer) Architecture CISC (Complex Instruction set computer)
•
•
•
•
•
•
•
•
Instruction simple (1cycle)
Instruction au format fixe
Décodage simple
Beaucoup de registres
Peu de modes d’adressage
Compilateur complexe
2 instructions pour l’accès à la mémoire Load, stor
Utilise une mémoire locale rapide (cache) pour
accélérer le traitement
• MIPS, Alpha, power pc, sparc
•
•
•
•
•
•
•
Instruction complexe (plusieurs cycle d’horloge)
Instruction au format variable
Décodage complexe
Peu de registres
Beaucoup de modes d’adressage
Compilateur simple
IBM360, Vax, Intel X86
Architecture RISC
• Cycle d’exécution d’une instruction RISC:
Registre d’instruction
Décodage
séquenceur
Stockage en mémoire
Fetch (lecture d’instruction en mémoire)
Decode (Extraire du code de l’instruction les différentes
informations (type d’opération , registres accédés
Execute (exécuter l’opération)
Architecture RISC
PIPE LINE
• Technique qui permet d’ exécuter plusieurs instruction au même temps
• Découper l’instruction en petits morceaux ( appelés étage pipe line )
• Paralléliser les étapes d’exécution
• Débit d’instruction élevé avec le même temps d’exécution
• Augmenter la puissance (nb de cycle par instruction réduit )
• Consommation réduit
Architecture RISC
Rupture PIPE LINE
• Lier à deux cause principale:
** d’ accès à la mémoire (load, store)
• retard
** d’utilisation de bus
• Branchement : les instructions qui suives le branchement seront perdues
• Appel à un sous programme
• Interruption
La solution c’est d’organiser le code
MÉMOIRE
mémoire a semi-conducteur
ROM
RAM
EEPROM, FLASH : basée sur les transistors à grille flottante
SRAM : CMOS
ROM
•
•
•
•
EPROM
OTP
SRAM
EEPROM
ROM
(Ecriture1) FLASH
(Plusieurs Ecriture)
DRAM
La mémoire stocke 2n mots de m bits
Un seul mot est accédé à la fois
Chaque mot est associé à une adresse
Synchroniser par un signal d’horloge
Non volatiles:
NVRAM
MRAM
FRAM
Holographique
..
DRAM : capacité grille d'un transistor MOS
MÉMOIRE
Caractéristiques techniques
Les principales caractéristiques d'une mémoire sont les suivantes :
• Adresse : c'est la valeur numérique désignant un élément physique de mémoire
•Capacité ou taille : c’est le volume global d'informations (en bits) que la mémoire peut stocker
•Temps d'accès : c'est le temps qui s'écoule entre le lancement d'une opération d'accès (lecture ou écriture) et son accomplissement.
•Temps de cycle : c'est le temps minimal s'écoulant entre deux accès successifs à la mémoire. Il est plus long que le temps d'accès.
•Débit : c'est le nombre d'informations lues ou écrites par seconde
•Volatilité : elle caractérise la permanence des informations dans une mémoire. Une mémoire volatile perd son contenu quand on coupe le
courant.
RQ: la mémoire idéale possède une grande capacité avec des temps d'accès et temps de cycle très restreints, un débit élevé et est non
volatile.
MÉMOIRE
Hiérarchies de mémoire
•Registres : cases mémoire de grande vitesse utilisé pour le stockage
des opérandes et des résultats intermédiaires.
•Mémoire cache : mémoire rapide de faible capacité utilisée comme
mémoire intermédiaire entre le processeur et la mémoire centrale
•Mémoire centrale : mémoire lente et de grandes capacités mais
elle contient les données et les instructions des programmes
Mémoire de masse: mémoire de grande capacité et de coût relativement
faible utilisée pour le stockage permanent des informations
MÉMOIRE
REPRESENTATION DES NOMBRES EN MÉMOIRE
•Deux présentations sont possibles:
*****Little-Endian: (X86, ARM)
Le LSB est placé en premier en mémoire
Exp:
Adresse
mémoire
260=0x0104
*****Big-Endian: (power pc, mips..)
Le MSB est placé en premier en mémoire
Exp:
00
01
04
01
Adresse
mémoire
260=0x0104
00
01
01
04
La mémoire cache
Cop
Organisation de la mémoire
cache
MMU
FPU
Processeur
Registre
Vitesse: 5ns
Mémoire
centrale
• Contient les données les plus
• Contient les programme et le
souvent utilisées
données en cours d’utilisation
• SRAM rapide pour accélérer • Grande capacité faible coût
Le processeur est plus rapide que
la mémoire centrale.
En fait, la mémoire centrale ralentit
le processeur
l’accès au RAM
• SDRAM
• Gérer par un contrôleur de cache
• 10-20ns
• Temps d’accès 1-10ns
• Vitesse de transfert >>1GB/s
• Vitesse de transfert >>1GB/s
• Faible coût
• Coût élevé
Dispositifs E/S
La mémoire cache
Bloc ou ligne de cache
• L’unité d’information qui constitue une ligne de cache est le bloc
• Les bloc sont de 4 à 128octets et ils sont tout de même taille dans un cache donné
• La mémoire centrale et la mémoire cache ont les même taille de blocs
• Une ligne est le plus petit élément de données qui peut être transférée entre la mémoire
cache et la mémoire principale
• Un mot est le plus petit élément de données qui peut être transféré entre le processeur et
la mémoire cache
La mémoire cache
Fonctionnement du cache
• Le processus fonctionne ainsi :
• le microprocesseur demande une information
• Le cache vérifie s'il possède cette information:
****S'il la possède, il la retransmet au microprocesseur; on parle
alors de succès de cache (hit).
****S'il ne la possède pas il la demande à la mémoire principale; on
parle alors de défaut de cache (miss)
• La mémoire traite la demande et renvoie la réponse au cache
• Le cache la stocke pour utilisation ultérieure et la retransmet au microprocesseur.
RQ: La fréquence des succès (hit rate) dépend de la taille de la cache et
de l’algorithme exécuté par le contrôleur de cache
Début
Processeur génère l’adresse AD
Recherche le bloc
dans le cache
Non
Trouvez bloc à remplacer
Copier RAM vers cache
Transfert vers µp
fin
Oui
La mémoire cache
Principe du cache
Localité spatiale:
• Accéder aux données qui sont proches de celles récemment utilisées (prendre les
données adjacentes)
Localité temporelle:
• Réutiliser des données récemment utilisées (prendre la même donnée)
La mémoire cache
Principe du cache
Deux utilisations :
• suite à un miss, le cache lit un nouveau mot en mémoire et le stocke localement, pour plus tard
• si le cache est plein, un des mots qu'il contient doit être évincé pour faire de la place
Si on a le choix du mot à remplacer: lequel choisir ?
Plusieurs politiques d'éviction sont envisageable :
• FIFO : on remplace le mot le moins récemment chargé dans le cache
• LRU (Least Recently Used) : on remplace le mot le moins récemment accédé dans le cache
• LFU (Least Frequently Used) : on remplace le mot le moins fréquemment utilisé dans le
cache
La mémoire cache
Le mapping
•Méthode présente la location d’une ligne de la mémoire centrale dans le cache:
*** Cache complétement associatif
*** Cache directe
*** Cache N- associatif
La mémoire cache
Le mapping (Cache complétement associatif)
• Le Bloc est placé à n’importe quelle adresse de la mémoire cache
• utilisée que dans les mémoires cache de petite taille
La mémoire cache
Le mapping (Cache direct)
• Chaque ligne de la mémoire principale ne peut être enregistrée qu'à une seule adresse
de la mémoire cache.
• L'index correspond à la ligne où est enregistrée la donnée.
• le contrôleur de la mémoire cache doit savoir si une ligne contient une donnée ou non.
• Un bit additionnel (appelé bit de validité) indique si la ligne est libre ou non
Défauts de cache conflictuels si le programme accède
à des données qui sont mappées sur les mêmes
adresses de la mémoire cache.
La mémoire cache
Le mapping (Cache N-associatif)
• Combinaison entre le cache purement associatif et le cache directe.
• La mémoire cache est divisée en ensembles (sets) de N lignes de cache.
• Une ligne de la mémoire de niveau supérieur est affectée
à un ensemble, elle peut par conséquent être écrite dans
n'importe laquelle des voies.
• À l'intérieur d'un ensemble, le mapping est complètement
associatif.
Eviter le défaut de cache conflictuels
La mémoire cache
Cache Unifiés
• Données et instructions sont enregistrées dans la même mémoire cache
CPU
Cache
d’instruction
Et données
La mémoire cache
Cache d’instructions/Cache de données
• Mettre les instructions et les données dans des cache séparés:
Recherche instruction
Cache
d’instruction
L1
Décoder
Recherche registre
AVANTAGE:
•
Pas de conflit d’accès
•
Pas besoin d’avoir 2 ports sur le cache
•
d'augmenter la fréquence de fonctionnement du
processeur
Exécute
Ecrit registre
Load/store
Cache
données
L1
En cas de miss, bloquer le signal d’horloge jusqu’à la
résolution du miss
La mémoire cache
Niveaux de cache
Recherche instruction
Cache 2
L2
Décoder
Cache
d’instruction
L1
Recherche registre
Exécute
Ecrit registre
Exp: multicores Intel :
Caches L1 et L2 internes au processeur
Cache
données L1
•
• Cache première niveau intégré
dans le processeur
• Cache petits et rapide
• exp: 32Ko, latence 2cycles
Mémoire
centrale
ou
cache L3
(externe)
Taille plus
grand
Cache deuxième niveau L2
peut être interne au processeur
ou externe
• Cache plus gros et plus lent
• exp: 1Mo, latence 10cycle
La mémoire cache
Défauts de cache
•Il existe trois types de défauts de cache en système monoprocesseur et quatre dans les environnements
multiprocesseurs :
•les défauts de cache obligatoires : ils correspondent à la première demande du processeur pour une
donnée/instruction spécifique et ne peuvent être évités.
• les défauts de cache capacitifs : l'ensemble des données nécessaires au programme excèdent la taille du
cache, qui ne peut donc pas contenir toutes les données nécessaires.
• les défauts de cache conflictuels : deux adresses distinctes de la mémoire de niveau supérieur sont
enregistrés au même endroit dans le cache et s'évincent mutuellement, créant ainsi des défauts de cache.
•les défauts de cache de cohérence : ils sont dus à l'invalidation de lignes de la mémoire cache afin de
conserver la cohérence entre les différents caches des processeurs d'un système multiprocesseurs.
Accès Direct à la Mémoire (DMA)
Introduction
Le système doit récupérer des données en provenance de ces périphériques externes.
Plusieurs méthodes sont possibles :
•Une méthode polling:
permet d’interroger régulièrement les périphériques afin de savoir si une nouvelle donnée est présente.
•Une méthode par interruption
permet au périphérique lui-même de faire signe au processeur de sa présence.
•Une méthode par Accès Direct à la Mémoire (DMA)
permet de gérer le transfert de façon autonome
Accès Direct à la Mémoire (DMA)
Exemple de périphérique E/S
Dispositifs matériels permettant d’assurer les échanges d’informations en entrée et en sortie
entre le processeur et l’extérieur ou de stocker de manière permanente des informations
•RS-232 :
standard (Electronic Industries Association) pour la communication série asynchrone point à
point entre deux équipements
•UART (Universal Asynchronous Receiver Transmitter) :
Périphérique gérant la transmission (émission et réception)
Accès Direct à la Mémoire (DMA)
Interruption et DMA
•Interruptions
– transferts asynchrones
– pas d ’attente active du CPU
– mais intervention du CPU à chaque transfert de donnée
libère CPU de l’attente d’événements et fournis un contrôle d’E/S extérieur
Accès Direct à la Mémoire (DMA)
Interruption et DMA
•Comment le processeur identifie le périphérique demandant une interruption?
• Que se passe t-il si une interruption arrive alors que le processeur en traite déjà une
autre?
•Que se passe t-il si plusieurs interruptions arrivent en même temps? Priorité?
Accès Direct à la Mémoire (DMA)
Interruption et DMA
• Comment l’ordinateur identifie le périphérique demandant une interruption?
**Scrutation
**Interruption “vectored”
Accès Direct à la Mémoire (DMA)
Interruption et DMA
• Que se passe t-il si plusieurs interruptions arrivent en même temps ?
Accès Direct à la Mémoire (DMA)
Interruption et DMA
•Le Mécanisme d’interruptions est efficace:
***Si le processeur n’ utilise pas un temps important dont l’exécution et le contrôle de
programme d’interruption.
( exp: clavier , RS-232)
Accès Direct à la Mémoire (DMA) (exp: carte son, vidéo, réseau…)
Accès Direct à la Mémoire (DMA)
Une méthode par Accès Direct à la Mémoire (DMA)
•DAM est une technique matérielle qui facilite les échanges de données entre le
microcontrôleur, ou le microprocesseur, et le monde extérieur
•Des données vont pouvoir être échangées entre la mémoire centrale et les circuits
périphériques sans intervention du CPU
•Un sous-système indépendant du CPU va transférer les données du circuit
périphérique vers la mémoire (entrée) ou de la mémoire vers le circuit périphérique (sortie)
Accès Direct à la Mémoire (DMA)
Fonctionnement du DMA
•Le sous-système de DMA va être configuré et démarré par le CPU (identifier le périphérique concerné,
le sens du transfert, l’adresse en mémoire centrale du premier mot à transférer et le nombre de mots concernés
par l’échange)
• Les données vont être échangées via des cycles de lecture ou d ’écriture en mémoire initiés
par le sous-système de DMA.
•Lorsque les opérations seront terminées le sous-système de DMA va interrompre le CPU
Avantages
• Le processeur peut exécuter autre programme
• Le transfert des données peut être plus rapide
Accès Direct à la Mémoire (DMA)
Sous système de DMA
• un registre d ’adresse qui va contenir l ’adresse où les données doivent être
placées ou lues en mémoire
• un compteur qui compte le nombre de données échangées
• un registre où les données vont transiter entre la mémoire et le circuit périphérique
Accès Direct à la Mémoire (DMA)
Mode d ’accès à la mémoire
•Le sous-système de DMA doit accéder à la mémoire comme le CPU pour faire ces accès,
il prend le contrôle du bus (utilisation des mécanismes d ’arbitration du bus)
•Rafale (Burst) : Le bloc de données est transféré en une seule fois. Une fois que le contrôleur de
DMA a accès au bus, il le conserve pendant tout le transfert. Le processeur ne peut pas faire
d’accès mémoire pendant ce temps
•Vol de cycle (Cycle Stealing) : Le processeur et le contrôleur de DMA se partagent
alternativement le bus (uncycle pour le processeur, un pour le contrôleur de DMA)
•Transparent : Le contrôleur de DMA n’a accès au bus que lorsque le processeur n’en a pas
besoin
Accès Direct à la Mémoire (DMA)
REGISTRE DMA
•Du point de vue du processeur, un périphérique peut donc être assimilé à un ensemble
de “cases” mémoires, appelées registres
•Le contenu de ces registres peuvent correspondre à des données, à l’état, la
configuration ou les commandes du périphérique
•Ces registres sont indexés par une adresse Pour dialoguer avec le périphérique, le
processeur fait des lectures et des écritures dans ces registres
Accès Direct à la Mémoire (DMA)
Registres de contrôle du DMA
** INTx : Contrôle des interruptions
** SSIZE: taille des données sources
** ECO: External Control Option
** DSIZE: taille des données destination
Single-Address Mode - direction du transfert (lecture ou écriture) S/D: mode à une ou deux adresses
** S/D: mode à une ou deux adresses
Dual-Address Mode - détermine dans quelle phase le DMA intervient (lecture ou écriture)
** STR: démarrage et arrêt du DMA
** SAPI : contrôle de l ’incrément du pointeur source
** DAPI : contrôle de l ’incrément du pointeur destination
Accès Direct à la Mémoire (DMA)
Registre d ’état du DMA
IRQ = fin des transferts
DONE = fin sans erreur
BES = erreur bus à la source
BED = erreur bus à la destination
CONF = erreur de configuration
BRKP = point d ’arrêt rencontré
Accès Direct à la Mémoire (DMA)
Signaux d'interface
•DREQx Requête de DMA:
utilisé par le circuit périphérique pour demander un transfert de donnée
• DACKx Acquiescement: réponse du sous-système de DMA pour activer le transfert
• DONEx Accès terminé: indique le dernier transfert d'une opération de DMA
Accès Direct à la Mémoire (DMA)
• Exemple processeur avec un système DMA
Accès Direct à la Mémoire (DMA)
• Exemple d’un processeur avec 2 système DMA (interface esclave
maitre)
Application1:
Soit une architecture 32 bits. Un cache direct- mapped assez grand pour contenir un
tableau de 1024 flottants double précision. Les lignes font 64oct
Quelle est la capacité du cache et déterminer le nombre de ligne?
Application 2:
Supposons un programme compose d'une boucle de 10 instructions. Supposons
également que la moitie des instructions se trouvent en mémoire cache et l'autre moitie
en mémoire centrale. Si le temps d'accès au cache est de 5 ns et celui de la mémoire
centrale est de 20 ns, calculez le temps global d'exécution du programme
Application 3:
Supposons que le temps d'accès au cache est de 5 ns, et que le temps d'accès à la
mémoire centrale est de 100 ns. Si le temps d'exécution d'un programme est de 95
ns, dans quelle mémoire se trouvent ces instructions? Et quel est le nombre total des
instructions du programme?
Mémoire virtuelle
Définition
• C’est un ensemble des emplacements dont l’adresse peut être engendrée par le processeur.
La mémoire virtuelle sert à augmenter artificiellement la mémoire vive.
elle permet :
•d'utiliser la mémoire de masse comme extension de la mémoire vive
•d'augmenter le taux de multiprogrammation
•de mettre en place des mécanismes de protection de la mémoire
•de partager la mémoire entre processus.
Mémoire virtuelle
• Translation d’adresse
• Taille mémoire virtuelle est plus élevée que la taille de la mémoire physique
• Protection des données => mode multiprogrammation
Mémoire virtuelle
•
•
•
•
Mémoire partitionnés en blocs :
Pages (virtuel )
Frames (pages physique)
Offset ( déplacement) inchangé
Numéro de page translaté en numéro de
frame
Mémoire virtuelle
Principe de fonctionnement
Mémoire virtuelle
Téléchargement