Architecture de machines Le microprocesseur Cours 2000-2001
Fabrication
Schéma simplifié Mémoire Données & Programmes UAL Unité de commande
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 instructions Branchements 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’adresse Chargement 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 algorithmique Fact = 1 Pour i allant de 2 a N Fact = 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 N Load B, 1 Load C, 2 Boucle Cmp A,C Jmp Fin Mult B,C Add C,1 Jmp Boucle Fin 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 Adressage indirect Adressage indexé 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 flottant 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