Title: Architecture de machines Le microprocesseur
1Architecture de machines Le microprocesseur
2Lunité dexécution
Mémoire Données Programmes
UAL
3Fabrication
4Fabrication(2)
5Fabrication(3)
6Présentation
7Evolution de lintégration Processeurs x86
8Microprocesseur Unité Contrôle UAL
- LUnité de contrôle
- Décodage des instructions
- Chargement des informations depuis la mémoire
dans l UAL - Contrôle du flux du programme
- LUnité Arithmétique et Logique
- Réalisation des opérations
- Calculs entiers
- Calculs sur les nombres réels
- Comparaisons
9Le langage machine
- Ensemble d instructions élémentaires traitées
par le microprocesseur - Environ un millier dinstructions
- Branchements Calculs sur les entiers
- Comparaisons Communication mémoire
- Calculs sur les réels Opérations multimédia
(MMX) - Processeur Z80 utilisé en TP 256 Instructions
- Codage dans la mémoire
- code instruction
- Assembleur
- Représentation lisible du langage machine
- Mnémonique représentation des instructions
10De lassembleur au code machine
- OUTBUF EQU 80H
- LD A,'A'-1
- NCB INC A
- OUT (OUTBUF),A
- CP 'Z' JP NZ,NCB
- HALT
11Les registres
- Mémoires contenues dans le microprocesseur
- Codés sur n bits
- Capacité de traitement du processeur
- 64 bits dans les microprocesseurs modernes
- 4/8 bits dans les processeurs anciens
- 3 types de registres
- Registres entiers Traitement des nombres
entiers - Registres de contrôle état et déroulement du
programme - Registres calcul flottant
12Principaux registres de contrôle
- Registre d instruction RI
- Code de l instruction courante
- Registre de position dans le programme CO
- Compteur Ordinal adresse de la prochaine
instruction à éxecuter - Registre de pile SP
- Permet de créer une pile dans la mémoire
- Registres d état
- Etats du microprocesseur
- Débordements de capacité
- Comparaisons
- Mode d exécution
- Accumulateur
- Registre de travail principal
13Exemple dinstructions
- Chargement depuis la mémoire
- LD Registre, Adresse Place dans un registre le
contenu de ladresseChargement dune valeur - LD Registre, Valeur Place dans un registre la
valeur fournie - Sauvegarde en mémoire
- LD Registre, Adresse Place dans la mémoire le
contenu du registre - Addition
- ADD Registre1, Registre2 Ajoute Registre2 à
Registre 1 - ADD Registre, Valeur Ajoute la valeur au
registre - Multiplication (nexiste pas)
- Mult Registre1, Registre2 Multiplie Registre1
par Registre 1Mult Registre, Valeur Multiplie
le registre par la valeur - Comparaison
- CP Registre1, Registre2 Compare le registre 1
au registre 2 et place les bits détat - Sauts inconditionnel
- JP, JR Adresse (ou libellé) Effectue un saut
inconditionnel vers ladresse spécifiée (ou le
libellé pour simplifier)
14Lhorloge
- Cadence les traitements dans l ordinateur
- Cycle du microprocesseur ltgt Traitements
effectués en un top d horloge - Détermine la vitesse du microprocesseur
- Ne suffit pas pour connaître la performance
réelle d une machine
15Liaisons avec la mémoire
- Registre d adresse et registre mot
- Stockage de l adresse mémoire et de la donnée
- Sélection de l opération
- Lecture
- Ecriture
- Transfert
- 1 transfert par cycle au maximum
- Dépend de la vitesse du bus mémoire
- Processeurs actuels très dépendants de vitesses
déchange
16Ladressage
- Adressage direct
- Spécification de l adresse
- LD (0120H),A Charge dans A la valeur contenue
en 0120H - Adressage indirect
- L adresse à considérer est stockée (indirection)
- LD BC, 0120H
- LD (BC),A
- Adressage indexé
- Utilisation d un registre d index (IX, IY sur
Z80) - Adresse Base index
- LD (IX3), 72 Charge 72 à ladresse IX3
- La pile
- Empilage (push) et dépilage (pop)
- En général pas de contrôle de ces opérations !
17Exemple le Z80
18Structure complexe
- 2,5 unités d exécution
- Arithmétique
- Calcul et comparaison des nombres entiers
- Calcul flottant
- coprocesseur mathématique gt calcul sur les
nombres réels - Unité multimédia
- MMX/SSE/3DNow! exécution particulière de
certaines opérations
19Exécution en pipeline
- Exécution de plusieurs instructions en même temps
- Partage de l UAL
- 1 instruction prend 1 cycle
- Pb
- Vidage du pipeline
- Instructions de branchement
20Exécution parallèle/prédictives
- Mise à disposition de plusieurs UAL
- Problème de remplissage du pipeline
- Exécution prédictive
21Exemple le pentium
22Exemple l Athlon
23Exemple le Pentium 4
24Pipeline Réel
- PIV 20 Niveaux
- PIII 10 Niveaux
- Athlon 11 Niveaux
25LHyper Threading
- Simule deux processeurs sur un seul
- 2 files dexécution
- Mêmes UAL
- Nécessite des applications compatibles
- Augmente la disponibilité du système
26Optimisation de lutilisation des ressources
27RISC/CISC/VLIW
28Exemple de compilation Factorielle
- En algorithmiqueFact 1Pour i allant
- de 2 a NFact Fact i Fin pour
- En C
- Int fact(int n) int i 2 int result 1
while(i lt N) - result i i fact result
En assembleur Load A, adresse de NLoad B,
1Load C, 2Boucle Cmp A,CJmp FinMult B,CAdd
C,1Jmp BoucleFin RTN