Vous êtes sur la page 1sur 21

Unité Centrale de Traitement ISET Mahdia

I. Introduction
L'Unité Centrale de Traitement (UCT, ou CPU Central Processing Unit), encore
dénommée processeur ou microprocesseur, est le cerveau de l'ordinateur.
C'est l'élément de l'ordinateur qui interprète et exécute les instructions
d'un programme. Il doit aussi prendre en compte les informations extérieures
au système et assurer le traitement correspondant.

Un microprocesseur est un circuit intégré complexe, qui regroupe sur quelques


millimètres carrés des fonctionnalités toujours plus complexes. Sa puissance continue
de s’accroître et son encombrement diminue régulièrement respectant toujours,
la fameuse loi de Moore.

Quand on parle du microprocesseur d´un ordinateur, on pense aux processeurs


les plus répandu tel que le Pentium d´Intel, au K6, ATHLON,… d´AMD, etc.
Mais en réalité, il existe de nombreux microprocesseurs dans l’ordinateur, qui peuvent
décharger l'UCT et assurer des tâches en parallèle. Ceci est très fréquent pour
la gestion des entrées/sorties tel que la carte son, la carte graphique, la carte réseau ...
Ces microprocesseurs sont dits spécialisés ou gestionnaire de carte.

II. Architecture de base d’un microprocesseur


Un microprocesseur est construit autour de deux éléments principaux :
l’unité de commande et l’unité de traitement, associés à des registres chargées
de stocker les différentes informations à traiter.

Ces trois éléments sont reliés entre eux par des bus interne permettant
les échanges d’informations. Un processeur possède trois types de bus :
un bus de données, un bus d'adresse et un bus de contrôle.

De plus, on trouve d’autres unités, tel que :

• L'unité d’entrée-sortie, qui prend en charge la communication avec la mémoire


de l’ordinateur ou la transmission des ordres destinés à piloter ses processeurs
spécialisés, permettant au processeur d’accéder aux périphériques
de l’ordinateur.
• l’horloge qui synchronise toutes les actions de l’unité centrale.

Architecture des ordinateurs 60


Unité Centrale de Traitement ISET Mahdia

II.1. L’unité de commande


Cette unité permet de séquencer le déroulement des instructions. Elle effectue
la recherche en mémoire de l'instruction. Comme chaque instruction est codée sous
forme binaire, elle en assure le décodage pour enfin réaliser son exécution puis effectue
la préparation de l'instruction suivante. Pour cela, elle est composée par :

Compteur ordinal (CO) (Program Counter, PC) : le registre CO ou le compteur


de programme, constitué par un registre dont le contenu est initialisé avec
l'adresse de la première instruction du programme.

• Il contient toujours l’adresse de la prochaine instruction à exécuter.

• Ce registre est automatiquement incrémenté après chaque utilisation.

• Le programme est ainsi exécuté en séquence à moins qu’il ne contienne une


instruction modifiant la séquence, par exemple, une instruction de saut ou un
branchement. Dans ce cas, la nouvelle adresse remplacera le contenu du CO.

• La taille du CO dépend du nombre de positions de mémoire adressables. Par


16
exemple avec un CO de 16 bits on peut adresser une mémoire de 2 mots.

Registre d’Instruction (RI) : après la recherche de l’instruction en mémoire, le CPU


la place dans le RI. La taille du RI correspond à la taille du mot-mémoire. Les bits
correspondant à la zone « code opération », sont envoyés au décodeur pour
qu’il détermine l’opération à exécuter.

Architecture des ordinateurs 61


Unité Centrale de Traitement ISET Mahdia
Le décodeur (de code opération) : l’élément responsable de cette tâche est le circuit
décodeur, il permet d’activer pour chaque état de ses lignes d’entrées, une ligne en
sortie différente. Le décodeur de code opération, détermine quelle opération doit
être effectuée, parmi toutes les opérations possibles. Ses sorties seront passées vers
le séquenceur.

bloc logique de commande (ou séquenceur) : Il organise l'exécution des instructions


au rythme d’une horloge. Il élabore tous les signaux de synchronisation internes
ou externes (bus de commande) du microprocesseur en fonction des divers signaux
de commande provenant du décodeur d’instruction ou du registre d’état.

II.2. L’unité de traitement


C’est le cœur du microprocesseur. Elle regroupe les circuits qui assurent
les traitements nécessaires à l'exécution des instructions :

L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure


les fonctions logiques (ET, OU, Comparaison, Décalage, etc…) ou arithmétique
(Addition, soustraction).

Registre d’état (RE, PSW = Program Status World)(appelé aussi registre condition) :

le registre d'état est généralement composé de 8 bits à considérer individuellement.


Chacun de ces bits est un indicateur dont l'état dépend du résultat de la dernière
opération effectuée par l’UAL. On les appelle indicateur d’état ou flag
ou drapeaux. On peut citer par exemple les indicateurs de :

• zéro (Z) : ce bit indicateur indique si le résultat de l’opération est égal à 0


• retenue (carry, C) : ce bit indique un dépassement de capacité dans l’ACC
• retenue intermédiaire (Auxiliary-Carry, AC)
• débordement (overflow, OV ou V)
• signe (Sign, S)
• parité (Parity : P)
Dans un programme le résultat du test de leur état conditionne souvent le déroulement
de la suite du programme, par exemple, l’indicateur Z pour l’exécution
d’un branchement conditionnel saut si zéro (jump on zero).

Architecture des ordinateurs 62


Unité Centrale de Traitement ISET Mahdia
Les Accumulateur (ACC) : ce sont des registres de travail très important de l’UAL.
Dans la plupart des opérations arithmétiques et logiques, l’ACC contient un des
opérandes avant l’exécution et le résultat après. Il peut aussi servir de registre
tampon dans les opérations d’entrée/sortie. Il est accessible par programmation.

Remarque :

De plus, on peut trouver d’autres unités complémentaires comme :

• L'unité de calcul en virgule flottante, ou unité de virgule flottante (FPU, Floating


Point Unit), qui est à l´origine un processeur indépendant, intégré au
microprocesseur pour optimiser les calculs arithmétiques complexes.
• L’unité de Multimédia, pour optimiser les programmes multimédia
(son, graphique 3D, audio, vidéo).

II.3. Les registres


Lorsque le processeur exécute les instructions, il a besoin de stocker
temporairement certaines informations (telles que l’adresse d’un mot mémoire à lire)
dans des registres mémoire qui ont la particularité d’avoir un temps d’accès rapide.

Architecture des ordinateurs 63


Unité Centrale de Traitement ISET Mahdia
Il existe deux types de registres :

• les registres d'usage général permettent à l'unité de traitement de manipuler


des données à vitesse élevée. Ils sont connectés au bus de données.

• les registres d'adresses (pointeurs) connectés sur le bus adresses.

Suivant le type du processeur, le nombre de registre peut varier entre une dizaine
et plusieurs centaines. Les registres les plus importants sont détaillés dans ce qui suit :

Compteur ordinal (CO) (le registre CO)

Registre d’Instruction (RI)

Accumulateur (ACC)

Registre d’état (RE, PSW = Program Status World)

Registre Temporaire (RT) : C’est un registre qui peut être utilisé comme registre
intermédiaire. Il sert surtout, comme espace de rangement d’opérandes.
Dans un processeur on peut trouver plusieurs registres temporaires.

II.4. Schéma fonctionnel

Architecture des ordinateurs 64


Unité Centrale de Traitement ISET Mahdia

III. Cycle d’exécution d’une instruction


Le rôle fondamental des UCT, indépendamment de la forme physique
qu'elles prennent, est d'exécuter une série d'instructions.

Les instructions et les données transmises au processeur sont exprimées en mots


binaires (code machine). Elles sont généralement stockées dans la mémoire.
L’ensemble des instructions et des données constitue un programme. Le langage le plus
proche du code machine, lisible par des humains est le langage assembleur.

Les opérations décrites sont conformes à l'architecture de Von Neumann.


Il y a quatre étapes que presque toutes les architectures Von Neumann utilisent :

fetch - recherche de l'instruction, consiste à rechercher une instruction dans


la mémoire vive de l'ordinateur.

decode - décodage de l'instruction (opération et opérandes), l'instruction est découpée


en plusieurs parties, une partie appelée opcode (code d'opération), indique quelle
opération est à faire, par exemple une addition. Les parties restantes
de l'instruction comportent habituellement les autres informations nécessaires
à l'exécution de l'instruction comme par exemples les opérandes de l'addition.
Ces opérandes peuvent prendre une valeur constante, appelée valeur immédiate,
ou bien contenir l'emplacement où retrouver (dans un registre ou une adresse
mémoire) la valeur de l'opérande, suivant le mode d'adressage utilisé.

execute - exécution de l'opération, Au cours de cette étape, différentes parties


du processeur sont mises en relation pour réaliser l'opération souhaitée.

writeback - écriture du résultat, écrit tout simplement les résultats de l'étape


d'exécution en mémoire.

Le microprocesseur ne comprend qu’un certain nombre d’instructions qui sont


codées en binaire. Le traitement d’une instruction peut être décomposé en ces phases :

Architecture des ordinateurs 65


Unité Centrale de Traitement ISET Mahdia
Phase 1: Recherche de l'instruction à traiter
1. Le PC contient l'adresse de l'instruction suivante du programme. Cette valeur est
placée sur le bus d'adresses par l'unité de commande qui émet un ordre de lecture.

2. Au bout d'un certain temps (temps d'accès à la mémoire), le contenu de la case


mémoire sélectionnée est disponible sur le bus des données.

3. L'instruction est stockée dans le registre instruction du processeur.

Phase 2 : Décodage de l’instruction et recherche de l'opérande


Le registre d'instruction contient maintenant le premier mot de l'instruction
qui peut être codée sur plusieurs mots. Ce premier mot contient le code opératoire
qui définit la nature de l'opération à effectuer (addition, rotation,...) et le nombre
de mots de l'instruction.

1. L'unité de commande transforme l'instruction en une suite de commandes


élémentaires nécessaires au traitement de l'instruction.

2. Si l'instruction nécessite une donnée en provenance de la mémoire,


l'unité de commande récupère sa valeur sur le bus de données.

3. L’opérande est stockée dans un registre.

Architecture des ordinateurs 66


Unité Centrale de Traitement ISET Mahdia

Phase 3 : Exécution de l'instruction


1. Le micro-programme réalisant l'instruction est exécuté.

2. Les drapeaux sont positionnés (registre d'état).

3. L'unité de commande positionne le PC pour l'instruction suivante.

Architecture des ordinateurs 67


Unité Centrale de Traitement ISET Mahdia

IV. Jeu d’instructions


IV.1. Définition
La première étape de la conception d’un microprocesseur est la définition de son
jeu d’instructions. Le jeu d’instructions décrit l’ensemble des opérations élémentaires
que le microprocesseur pourra exécuter. Il va donc en partie déterminer l’architecture
du microprocesseur à réaliser et notamment celle du séquenceur.
A un même jeu d’instructions peut correspondre un grand nombre d’implémentations
différentes du microprocesseur.

Jeu d’instruction (Instuction Set) :il représente l’ensemble des instructions


qu’un processeur est capable d’exécuter.

IV.2. Type d’instructions


Les instructions que l’on retrouve dans chaque microprocesseur peuvent être
classées en 4 groupes :

• Transfert de données pour charger ou sauver en mémoire, effectuer des transferts


de registre à registre, etc…

• Opérations arithmétiques : addition, soustraction, division, multiplication


(les quatre opérations en virgule fixe ou flottante en simple ou double précision).

• Opérations logiques : ET, OU, NON, NAND, comparaison, test, etc…

• Contrôle de séquence : branchement, test, etc…

De plus, on trouve :

• Entrée/Sortie : instruction de dialogue avec les périphériques.

• Manipulations diverses : telles que les décalages, conversions de format,


incrémentation de registres, etc.

IV.3. Codage
Les instructions et leurs opérandes (paramètres) sont stockés en mémoire
principale. La taille totale d’une instruction (nombre de bits nécessaires pour
la représenter en mémoire) dépend du type d’instruction et aussi du type d’opérande.

Architecture des ordinateurs 68


Unité Centrale de Traitement ISET Mahdia
Chaque instruction est toujours codée sur un nombre entier d’octets afin de faciliter
son décodage par le processeur. Une instruction est composée de deux champs :

• le code instruction, qui indique au processeur quelle instruction réaliser

• le champ opérande contient la donnée, ou sa référence en mémoire (son @).

Le nombre d'instructions du jeu d'instructions est directement lié au format


du code instruction. Un octet permet de distinguer au maximum 256 instructions.

Le format d’une instruction peut ne pas être le même pour toutes les instructions.
Le champ opérande peut être découpé à son tour en plusieurs champs.

Il existe trois types de machines selon le nombre d’adresse indiquée dans l’instruction :

• Machine à 3 adresses : pour chaque instruction il faut spécifier l’adresse du premier


et du deuxième opérande et l’emplacement du résultat.

Exemple : ADD A, B, C (C A+B)

• Machine à 2 adresses : il faut spécifier l’adresse du premier et du deuxième


opérande. L’adresse du résultat est implicitement celle du deuxième opérande.

Exemple : ADD A, B (B A+B)

• Machine à 1 adresse : pour chaque instruction il faut spécifier uniquement l’adresse


du deuxième opérande. Le premier opérande existe dans le registre accumulateur.
Le résultat est mis dans le registre accumulateur. C’est le type le plus utilisé.

Exemple : ADD A ( ACC (ACC) + A )

Architecture des ordinateurs 69


Unité Centrale de Traitement ISET Mahdia
IV.4. Mode d’adressage
Un mode d'adressage définit la manière dont le microprocesseur va accéder
à l’opérande. Les différents modes d'adressage dépendent des microprocesseurs
mais on retrouve en général :

• l'adressage de registre où l’on traite les données contenues dans un registre

• l'adressage immédiat où l’on définit immédiatement la valeur de la donnée

• l'adressage direct où l’on traite une donnée en mémoire

Selon le mode d’adressage de la donnée, une instruction sera codée par un ou


plusieurs octets.

• Adressage immédiat :

L’opérande existe dans le champ adresse de l’instruction. La taille de la donnée


peut varier entre 1 et 2 octets.

Exemple : ADD 50 ( ACC (ACC) + A )

Si le registre accumulateur contient la valeur 200 (ACC = 200) alors après l’exécution
son contenu sera égal à 350 (ACC = 350).

• Adressage direct

Le champ opérande de l’instruction contient l’adresse


de l’opérande (emplacement en mémoire). Pour réaliser
l’opération il faut le récupérer (lire) l’opérande à partir de la
mémoire. ( ACC (ACC) + (ADR) ).

Exemple :

Soit l’accumulateur contient la valeur 20 (ACC = 20).

A la fin de l’exécution son contenu sera égal à 50 (ACC = 50).

Architecture des ordinateurs 70


Unité Centrale de Traitement ISET Mahdia
• Adressage indirect

Le champ adresse contient l’adresse de l’adresse de l’opérande. Pour réaliser


l’opération il faut :

Récupérer l’dresse de l’opérande à partir de la


mémoire.

Par la suite il faut chercher l’opérande à partir de la


mémoire. ( ACC (ACC) + (ADR) ).

Exemple :

Soit initialement l’accumulateur contient la valeur 20


(ACC = 20).

Il faut récupérer l’adresse de l’opérande à partir de


l’adresse (150), c’est la valeur 200.

Récupérer la valeur de l’opérande à partir de l’adresse (200), c’est la valeur 40.

Additionner la valeur 40 avec le contenu de l’accumulateur (20) le contenu sera


égal à 60 (ACC = 60).

• Adressage relatif

L’adresse effective de l’opérande est relative


à une zone mémoire. L’adresse de cette zone se
trouve dans un registre spécial (registre de base).
Ce mode d’adressage est utilisé pour les
instructions de branchement (les opérations de
saut) : Adresse = ADR + (base)

• Adressage indexé

L’adresse effective de l’opérande est relative à


une zone mémoire. L’adresse de cette zone se
trouve dans un registre spécial (registre indexe).
Adresse = ADR + (X)

Architecture des ordinateurs 71


Unité Centrale de Traitement ISET Mahdia
IV.5. Langage de programmation
Le langage machine est le langage compris par le microprocesseur. Ce langage est
difficile à maîtriser puisque chaque instruction est codée par une séquence propre de
bits. Afin de faciliter la tâche du programmeur, on a créé différents langages plus ou
moins évolués.

Le langage assembleur est le langage le plus « proche » du langage machine. Il est


composé par des instructions en général assez rudimentaires que l’on appelle des
mnémoniques. Ce sont essentiellement des opérations de transfert de données entre les
registres et l'extérieur du microprocesseur (mémoire ou périphérique), ou des
opérations arithmétiques ou logiques. Chaque instruction représente un code machine
différent. Chaque microprocesseur peut posséder un assembleur différent.

La difficulté de mise en œuvre de ce type de langage, et leur forte dépendance avec


la machine a nécessité la conception de langages de haut niveau, plus adaptés à
l'homme, et aux applications qu'il cherchait à développer. Faisant abstraction de toute
architecture de machine, ces langages permettent l'expression d'algorithmes sous une
forme plus facile à apprendre, et à dominer (C, Pascal, Java, etc…). Chaque instruction
en langage de haut niveau correspondra à une succession d’instructions en langage
assembleur. Une fois développé, le programme en langage de haut niveau n’est donc
pas compréhensible par le microprocesseur. Il faut le compiler pour le traduire en
assembleur puis l’assembler pour le convertir en code machine compréhensible par le
microprocesseur. Ces opérations sont réalisées à partir de logiciels spécialisés appelés
compilateur et assembleur.

Architecture des ordinateurs 72


Unité Centrale de Traitement ISET Mahdia
IV.6. Exemple de jeu d’instructions à une adresse
L’exécution d’un programme consiste à donner à la machine une séquence
d’instructions directement interprétables par elle. Obligatoirement les premiers
programmes étaient écrits en binaire. C’était une tâche difficile est exposée aux erreurs
car il fallait aligner des séquences de bits, dont la signification n’est toujours évidente.

Par la suite, pour faciliter le travail, les programmes ont été écrits en donnant
directement les noms (abrégés) des opérations. On les a appelés les codes mnémoniques,
car on pouvait facilement les mémoriser (par exemple ADD, DIV, SUB, MOV, etc.).
Les adresses des instructions et des variables pouvaient aussi être données sous forme
symbolique. Pour pouvoir utiliser ce genre de langage dit d’assemblage, il fallait
trouver le moyen de les convertir en langage machine. Le programme qui assure la
traduction d’un programme en langage machine, s’appelle assembleur.

Considérons le jeu d’instruction suivant :

Code Instruction
Signification
L. assembleur L. machine
Charge la valeur de la variable id_var dans le registre
LOAD id_var 0E
accumulateur
Additionne le contenu de l’accumulateur à la valeur de la
ADD id_var 1E
variable id_var
Réalise l’opération (contenu accumulateur –
SUB id_var 2E
valeur(id_var))
Réalise l’opération (contenu accumulateur *
MUL id_var 3E
valeur(id_var))
NOT id_var 4E Effectue le complément logique de valeur(id_var)
Stocke le contenu de l’accumulateur dans la variable
STORE id_var 5E
id_var
Effectue un saut inconditionnel à l’emplacement de
JMP Etiquette 3F
l’étiquette
Compare le contenu de l’accumulateur à la variable id_var
et met à un l’un des indicateurs du registre d’état :
• Z est mis à un si la comparaison mène à l’égalité.
CMP id_var FE • G est mis à un, si le contenu de l’accumulateur est
strictement supérieur au contenu de la variable.
• B est mis à un, si le contenu de l’accumulateur est
strictement inférieur au contenu de la variable.
Effectue un saut à l’emplacement de l’étiquette, si le bit Z
JZ Etiquette EF
du registre d’état est égal à 1
Effectue un saut à l’emplacement de l’étiquette, si le bit G
JG Etiquette EE
(Greater than) du registre d’état est égal à 1
Effectue un saut à l’emplacement de l’étiquette, si le bit B
JB Etiquette FF
(Below) du registre d’état est égal à 1

Architecture des ordinateurs 73


Unité Centrale de Traitement ISET Mahdia

V. Architecture CISC et RISC :


Selon que le nombre d’instructions, on distingue deux types d’architectures :

Les architectures CISC (Complex Instruction Set Computer), qui sont basées sur
des jeux d’instructions très riches de taille variable offrant aussi des instructions
composées, la racine carrée ou la multiplication en virgule flottante double précision.

Les Architectures RISC (Reduced Instruction Set Computer) préconisent un petit


nombre d’instructions élémentaires dans un format fixe, faciles à réaliser dans le
matériel et d’exécution rapide (typiquement, une instruction par cycle machine).

V.1. Architecture CISC


L'architecture CISC (Complex Instruction Set Computer, soit « ordinateur à jeu
d'instruction complexe ») consiste à câbler dans le processeur des instructions
complexes, difficiles à créer à partir des instructions de base.

L'architecture CISC est utilisée en particulier par les processeurs de type 80x86.
Ce type d'architecture possède un coût élevé dû aux fonctions évoluées imprimées sur le
silicium.

D'autre part, les instructions sont de longueurs variables et peuvent parfois


nécessiter plus d'un cycle d'horloge. Or, un processeur basé sur l'architecture CISC ne
peut traîter qu'une instruction à la fois, d'où un temps d'exécution conséquent.

V.2. Architecture RISC


Un processeur utilisant la technologie RISC (Reduced Instruction Set Computer,
soit « ordinateur à jeu d'instructions réduit ») n'a pas de fonctions évoluées câblées.

Les programmes doivent ainsi être traduits en instructions simples, ce qui entraîne
un développement plus difficile et/ou un compilateur plus puissant. Une telle
architecture possède un coût de fabrication réduit par rapport aux processeurs CISC.
De plus, les instructions, simples par nature, sont exécutées en un seul cycle d'horloge,
ce qui rend l'exécution des programmes plus rapide qu'avec des processeurs basés sur
une architecture CISC. Enfin, de tels processeurs sont capables de traîter plusieurs
instructions simultanément en les traitant en parallèle.

Architecture des ordinateurs 74


Unité Centrale de Traitement ISET Mahdia
V.3. Comparaison
Le choix dépendra des applications visées. En effet, si on diminue le nombre
d'instructions, on crée des instructions complexes (CISC) qui nécessitent plus de cycles
pour être décodées et si on diminue le nombre de cycles par instruction, on crée des
instructions simples (RISC) mais on augmente alors le nombre d'instructions
nécessaires pour réaliser le même traitement.

VI. Améliorations de l’architecture de base


L'ensemble des améliorations des microprocesseurs visent à diminuer le temps
d'exécution du programme.

La première idée qui vient à l’esprit est d’augmenter tout simplement la fréquence
de l’horloge du microprocesseur. Mais l’accélération des fréquences provoque un
surcroît de consommation ce qui entraîne une élévation de température. On est alors
amené à équiper les processeurs de systèmes de refroidissement ou à diminuer la
tension d’alimentation.

Une autre possibilité d’augmenter la puissance de traitement d’un


microprocesseur est de diminuer le nombre moyen de cycles d’horloge nécessaire à
l’exécution d’une instruction. Dans le cas d’une programmation en langage de haut
niveau, cette amélioration peut se faire en optimisant le compilateur. Il faut qu’il soit
capable de sélectionner les séquences d’instructions minimisant le nombre moyen de
cycles par instructions. Une autre solution est d’utiliser une architecture de
microprocesseur qui réduise le nombre de cycles par instruction.

Architecture des ordinateurs 75


Unité Centrale de Traitement ISET Mahdia
VI.1. Architecture pipeline
VI.1.1. Principe
L’exécution d’une instruction est décomposée en une succession d’étapes et chaque
étape correspond à l’utilisation d’une des fonctions du microprocesseur.
Lorsqu’une instruction se trouve dans l’une des étapes, les composants associés
aux autres étapes ne sont pas utilisés. Le fonctionnement d’un microprocesseur simple
n’est donc pas efficace.

L’architecture pipeline permet d’améliorer l’efficacité du microprocesseur.


En effet, lorsque la première étape de l’exécution d’une instruction est achevée,
l’instruction entre dans la seconde étape de son exécution et la première phase
de l’exécution de l’instruction suivante débute. Il peut donc y avoir une instruction
en cours d’exécution dans chacune des étapes et chacun des composants
du microprocesseur peut être utilisé à chaque cycle d’horloge. L’efficacité est
maximale. Le temps d’exécution d’une instruction n’est pas réduit mais le débit
d’exécution des instructions est considérablement augmenté. Une machine pipeline se
caractérise par le nombre d’étapes utilisées pour l’exécution d’une instruction, on
appelle aussi ce nombre d’étapes le nombre d’étages du pipeline.

Exemple de l’exécution en 4 phases d’une instruction :

Modèle classique :

Architecture des ordinateurs 76


Unité Centrale de Traitement ISET Mahdia
Modèle pipeliné :

VI.1.2. Gain de performance


Dans cette structure, la machine débute l’exécution d’une instruction à chaque
cycle et le pipeline est pleinement occupé à partir du quatrième cycle. Le gain obtenu
dépend donc du nombre d’étages du pipeline. En effet, pour exécuter n instructions, en
supposant que chaque instruction s’exécute en k cycles d’horloge, il faut :

• n.k cycles d’horloge pour une exécution séquentielle.

• k cycles d’horloge pour exécuter la première instruction puis n-1 cycles pour les
n-1 instructions suivantes si on utilise un pipeline de k étages

• Le gain obtenu est donc de :

Donc lorsque le nombre n d’instructions à exécuter est grand par rapport à k, on


peut admettre qu’on divise le temps d’exécution par k.

Remarque :

Le temps de traitement dans chaque unité doit être à peu près égal sinon les unités
rapides doivent attendre les unités lentes.

Exemples :

• L’Athlon d’AMD comprend un pipeline de 11 étages.

• Les Pentium 2, 3 et 4 d’Intel comprennent respectivement un pipeline de 12, 10


et 20 étages.

Architecture des ordinateurs 77


Unité Centrale de Traitement ISET Mahdia
VI.2. Architecture superscalaire
Une autre façon de gagner en performance est d’exécuter plusieurs instructions en
même temps. L'approche superscalaire consiste à doter le microprocesseur de plusieurs
unités de traitement travaillant en parallèle. Les instructions sont alors réparties entre
les différentes unités d'exécution. Il faut donc pouvoir soutenir un flot important
d’instructions et pour cela disposer d’un cache performant.

Architecture scalaire :

Architecture superscalaire :

Remarque :

C'est le type d'architecture mise en œuvre dans les premiers Pentium d'Intel apparus
en 1993.

VI.3. Architecture pipeline et superscalaire


Le principe est de d’exécuter les instructions de façon pipelinée dans chacune des
unités de traitement travaillant en parallèle.

Architecture des ordinateurs 78


Unité Centrale de Traitement ISET Mahdia

VII.Exemples des processeurs

Caractéristiques :

Plusieurs unités de traitement mais au 5 instructions exécutées en même temps sur 5 ports :
o Port 0 : ALU, FPU, AGU MMX et SSE
o Port 1 : ALU, SSE, MMX
o Port 2 : AGU (load)
o Port 3 : AGU (store)
o Port 4 : Store Data Unit

Architecture des ordinateurs 79


Unité Centrale de Traitement ISET Mahdia
Pipeline entier : 12 à 17 étages, pipeline flottant : environ 25 étages
Prédiction dynamique et exécution du traitement "dans le désordre" (out-of-order)
3 unités de décodage parallèles : 1 micro-programmée, 2 câblées.
5 pipelines de 10 étages
Cache mémoire de niveau 1 (L1) : 32 Ko
o 16 Ko pour les données
o 16 Ko pour les instructions
Contrôleur de cache L2 supportant jusqu’à 512 Ko à ½ de la vitesse CPU
9.5 millions de transistors

VIII. Processeurs spéciaux


VIII.1. Le microcontrôleur
Ce sont des systèmes minimum sur une seule puce. Ils contiennent un CPU, de la
RAM, de la ROM et des ports d’Entrée/Sorties (parallèles, séries, I2C, etc..). Ils
comportent aussi des fonctions spécifiques comme des compteurs programmables pour
effectuer des mesures de durées, des CAN voir des CNA pour s’insérer au sein de
chaînes d’acquisition, des interfaces pour réseaux de terrain, etc ...

Il est adapté pour répondre au mieux aux besoins des applications embarquées
(appareil électroménagers, chaîne d’acquisition, lecteur carte à puce, etc...). Il est par
contre généralement moins puissant en termes de rapidité, de taille de données
traitables ou de taille de mémoire adressable qu’un microprocesseur.

VIII.2. Le processeur de signal DSP


Le processeur de signal est beaucoup plus spécialisé. Alors qu'un microprocesseur
n'est pas conçu pour une application spécifique, le processeur DSP (Digital Signal
Processor) est optimisé pour effectuer du traitement numérique du signal (calcul de
FFT, convolution, filtrage numérique, etc...).

Les domaines d’application des D.S.P étaient à l’origine les télécommunications et


le secteur militaire. Aujourd’hui, les applications se sont diversifiées vers le multimédia
(lecteur CD, MP3, etc..) l’électronique grand public (télévision numérique, téléphone
portable, etc…), l’automatique, l’instrumentation, l’électronique automobile, etc…

Architecture des ordinateurs 80

Vous aimerez peut-être aussi