View
108
Download
0
Category
Preview:
Citation preview
Architecture de machinesLe microprocesseur
Cours 2000-2001
Fabrication
UALMémoire
Données
&
Programmes Unité decommande
Schéma simplifié
L’unité de commande
Décodage des instructions Chargement des informations depuis la
mémoire dans l ’ALU Contrôle du flux du programme
Le langage machine
Ensemble d ’instructions élémentaires traitées par le microprocesseur– Codage dans la mémoire
– Environ 300 instructionsBranchements Calculs sur les entiers
Comparaisons Communication mémoire
Calculs sur les réels Opérations «multimédia» (MMX…)
Assembleur : représentation « lisible » du langage machine
Exemple de code en assembleur
77F9EFE4 call 77F95C57
77F9EFE9 leave
77F9EFEA ret
77F9EFEB push ebp
77F9EFEC mov ebp,esp
77F9EFEE sub esp,10h
77F9EFF1 mov ax,word ptr [ebp+10h]
77F9EFF5 mov edx,dword ptr [ebp+8]
77F9EFF8 mov word ptr [ebp-6],ax
77F9EFFC mov eax,dword ptr [ebp+0Ch]
77F9EFFF push edi
L’exécution d’un programme
Pas à pas Notion de cycle d’horloge
Les registres
Mémoires contenues dans le microprocesseur Codés sur un nombre de bits
– Capacité de traitement du processeur– Ex : Registres 64 bits dans le pentium
3 types de registres– Registres entiers : Traitement des nombres entiers– Registres calcul flottant– Registres de contrôle : état et déroulement du
programme
Exemple d’instructions Chargement depuis la mémoire
– Load Registre, Adresse : Place dans un registre le contenu de l’adresseChargement d’une valeur
– Load Registre, Valeur : Place dans un registre la valeur fournie Sauvegarde en mémoire
– Store 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– Mult Registre1, Registre2 : Multiplie Registre1 par Registre 1
Mult Registre, Valeur : Multiplie le registre par la valeur Comparaison
– Cmp Registre1, Registre2 : Compare le registre 1 au registre 2 et saute une adresse si Registre2 <= Registre1
Sauts inconditionnel– Jmp Adresse (ou libellé) : Effectue un saut inconditionnel vers l’adresse
spécifiée (ou le libellé pour simplifier)
Exemple 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 <= 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
Les 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
Registres d ’état– Etats du microprocesseur
• Débordements de capacité• Comparaisons• Mode d ’exécution
Accumulateur– Stockage des opérandes dans l ’UAL
L’horloge
Permet de cadencer les traitements dans l ’ordinateur
Cycle du microprocesseur <=> 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
Liaisons 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
L’adressage
Adressage direct– Spécification de l ’adresse
Adressage indirect– L ’adresse contient l ’adresse à considérer (indirection)
Adressage indexé– Utilisation d ’un registre d ’index
• Adresse = Base + index
La pile– Permet de stocker des informations
– Définie en mémoire avec un registre de pile (SP)
Structure complexe
3 unités d ’exécution– Arithmétique
• Calcul et comparaison des nombres entiers
– Calcul flottant• calcul sur les nombres réels
– Unité multimédia• Ex : le mmx
Exé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
Exécution parallèle/prédictives
Mise à disposition de plusieurs UAL– Problème de remplissage du pipeline
Exécution prédictive
RISC/CISC/VLIW
CISC RISC VLIW Vers une unification ?
Exemple: le pentium
Exemple: l ’Athlon
Recommended