Architecture de machines Le microprocesseur Cours 2003-2004.

28
Architecture de machines Le microprocesseur Cours 2003-2004

Transcript of Architecture de machines Le microprocesseur Cours 2003-2004.

Page 1: Architecture de machines Le microprocesseur Cours 2003-2004.

Architecture de machinesLe microprocesseur

Cours 2003-2004

Page 2: Architecture de machines Le microprocesseur Cours 2003-2004.

UALMémoire

Données

&

Programmes Unité decommande

L’unité d’exécution

Page 3: Architecture de machines Le microprocesseur Cours 2003-2004.

Fabrication

Page 4: Architecture de machines Le microprocesseur Cours 2003-2004.

Fabrication(2)

Page 5: Architecture de machines Le microprocesseur Cours 2003-2004.

Fabrication(3)

Page 6: Architecture de machines Le microprocesseur Cours 2003-2004.

Présentation

                                                             

                                                                                         

Page 7: Architecture de machines Le microprocesseur Cours 2003-2004.

Evolution de l’intégration: Processeurs x86

Page 8: Architecture de machines Le microprocesseur Cours 2003-2004.

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

Page 9: Architecture de machines Le microprocesseur Cours 2003-2004.

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

Page 10: Architecture de machines Le microprocesseur Cours 2003-2004.

De l’assembleur au code machineOUTBUF EQU 80H

LD A,'A'-1

NCB: INC A

OUT (OUTBUF),A

CP 'Z'JP NZ,NCB

HALT

Page 11: Architecture de machines Le microprocesseur Cours 2003-2004.

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

Page 12: Architecture de machines Le microprocesseur Cours 2003-2004.

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

Page 13: Architecture de machines Le microprocesseur Cours 2003-2004.

Exemple d’instructions 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)

Page 14: Architecture de machines Le microprocesseur Cours 2003-2004.

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

Page 15: Architecture de machines Le microprocesseur Cours 2003-2004.

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

Page 16: Architecture de machines Le microprocesseur Cours 2003-2004.

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 !

Page 17: Architecture de machines Le microprocesseur Cours 2003-2004.

Exemple: le Z80

Page 18: Architecture de machines Le microprocesseur Cours 2003-2004.

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

Page 19: Architecture de machines Le microprocesseur Cours 2003-2004.

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– Instructions de branchement

Page 20: Architecture de machines Le microprocesseur Cours 2003-2004.

Exécution parallèle/prédictives

Mise à disposition de plusieurs UAL– Problème de remplissage du pipeline

Exécution prédictive

Page 21: Architecture de machines Le microprocesseur Cours 2003-2004.

Exemple: le pentium

Page 22: Architecture de machines Le microprocesseur Cours 2003-2004.

Exemple: l ’Athlon

Page 23: Architecture de machines Le microprocesseur Cours 2003-2004.

Exemple : le Pentium 4

Page 24: Architecture de machines Le microprocesseur Cours 2003-2004.

Pipeline Réel

PIV : 20 Niveaux PIII: 10 Niveaux Athlon: 11 Niveaux

Page 25: Architecture de machines Le microprocesseur Cours 2003-2004.

L’Hyper Threading

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

Page 26: Architecture de machines Le microprocesseur Cours 2003-2004.

Optimisation de l’utilisation des ressources

Page 27: Architecture de machines Le microprocesseur Cours 2003-2004.

RISC/CISC/VLIW

CISC RISC VLIW

Page 28: Architecture de machines Le microprocesseur Cours 2003-2004.

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