290 likes | 782 Views
Architecture de machines Le microprocesseur. Cours 2003-2004. Unité de commande. L’unité d’exécution. Mémoire Données & Programmes. UAL. Fabrication. Fabrication(2). Fabrication(3). Présentation. Evolution de l’intégration: Processeurs x86. Microprocesseur = Unité Contrôle + UAL.
E N D
Architecture de machinesLe microprocesseur Cours 2003-2004
Unité de commande L’unité d’exécution Mémoire Données & Programmes UAL
Microprocesseur = Unité Contrôle + UAL • L’Unité de contrôle • Décodage des instructions • Chargement des informations depuis la mémoire dans l ’UAL • Contrôle du flux du programme • L’Unité Arithmétique et Logique • Réalisation des opérations • Calculs entiers • Calculs sur les nombres réels • Comparaisons
Le langage machine • Ensemble d ’instructions élémentaires traitées par le microprocesseur • Environ un millier d’instructions 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
OUTBUF EQU 80H LD A,'A'-1 NCB: INC A OUT (OUTBUF),A CP 'Z' JP NZ,NCB HALT De l’assembleur au code machine
Les 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
Principaux 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
Chargement depuis la mémoire LD Registre, Adresse : Place dans un registre le contenu de l’adresseChargement d’une 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 (n’existe 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 l’adresse spécifiée (ou le libellé pour simplifier) Exemple d’instructions
L’horloge • Cadence 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 • Processeurs actuels très dépendants de vitesses d’échange
L’adressage • 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 (IX+3), 72 : Charge 72 à l’adresse IX+3 • La pile • Empilage (push) et dépilage (pop) • En général pas de contrôle de ces opérations !
Structure complexe • 2,5 unités d ’exécution • Arithmétique • Calcul et comparaison des nombres entiers • Calcul flottant : • coprocesseur mathématique => calcul sur les nombres réels • Unité multimédia • MMX/SSE/3DNow! : exécution particulière de certaines opérations
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 Exécution en pipeline
Exécution parallèle/prédictives • Mise à disposition de plusieurs UAL • Problème de remplissage du pipeline • Exécution prédictive
Pipeline Réel • PIV : 20 Niveaux • PIII: 10 Niveaux • Athlon: 11 Niveaux
Simule deux processeurs sur un seul 2 files d’exécution Mêmes UAL Nécessite des applications compatibles Augmente la disponibilité du système L’Hyper Threading
RISC/CISC/VLIW • CISC • RISC • VLIW
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 ;} ; Exemple de compilation : Factorielle En assembleur Load A, adresse de NLoad B, 1Load C, 2Boucle Cmp A,CJmp FinMult B,CAdd C,1Jmp BoucleFin RTN