Vous êtes sur la page 1sur 46

Introduction à l’informatique

Processeurs

Leçon basée sur celle du Prof. NICOLAS VAN ZEEBROECK


Contenu
● Introduction
● Caractéristiques
● Architecture
● Portes logiques
● Circuits
● Conclusions

2
Contenu
● Introduction
● Caractéristiques
● Architecture
● Portes logiques
● Circuits
● Conclusions

3
Introduction
● Le (micro)processeur (CPU) est l’élément central d’un
ordinateur :
– Dialoguer avec les périphériques I/O et la mémoire
centrale.
– Exécuter les instructions en langage machine.
● Différents éléments :
– L’unité de contrôle (CU) qui contrôle le flux d’instructions
et maintient le compteur d’instruction à jour.
– L’unité arithmétique et logique (ALU) qui exécute les
opérations arithmétiques et logiques.
– Un (ou plusieurs) registre(s) qui sont des mémoires
internes au processeur stockant l’état et les données
courants du programme (ex: l’accumulateur est un registre
qui stocke le résultat courant d’un calcul).

4
Contenu
● Introduction
● Caractéristiques
● Architecture
● Portes logiques
● Circuits
● Conclusions

5
Caractéristiques (1/6) – Contenu
● Instructions
● Conception
● Un exemple : Intel Core

6
Processeur (2/6) – Instructions (1/2)
Principe
● Le processeur exécute les instructions codées en binaire :

– Le type d’instruction est appelé l’opérateur.


– L’opérateur est identifiée par un code unique (Op).
– Un opérateur peut nécessiter certains opérandes (ex.:
adresse mémoire, prochaine instruction à exécuter).
● Pour des raisons d’efficacité, le processeur travaille
toujours avec une largeur de registres fixe (aujourd’hui
64 bits).
● Une instruction et ses opérandes éventuelles sont codées
sur un multiple de cette longueur de bits (parfois toujours
1).

7
Processeur (3/6) – Instructions (2/2)
Exemples
● Supposons que le processeur travaille avec 14 bits :

● Une instruction est alors codée :


Op Opérande 1
Op Opérande 1 Opérande 2
● Exemple d’un saut conditionnel à l’adresse 341 :
0111 0101010101
● Exemple de l’addition du contenu des mémoires 935 et
831 (le résultat sera mis dans un registre) :
1011 1110100111 00001100111111
8
Processeur (4/6) – Types (1/2)
● Complex Instruction Set Computer (CISC) :
– Ensemble très complet d’instructions pouvant prendre
plusieurs cycles d’horloge.
– Avantage : Une instruction correspond à une tâche
fondamentale (ex: faire une addition).
– Inconvénient : Difficile d’optimiser physiquement une
multitude d’instructions variables.
● Reduced Instruction Set Computer (RISC) :
– Ensemble très limité d’instructions prenant un seul cycle
d’horloge.
– Utilisation massive de registres et de transferts entre
registres.
– Avantage : Optimisation physique du processeur pour
quelques instructions.
– Inconvénient : Compilateurs sont difficiles à développer.

9
Processeur (5/6) – Types (2/2)
● Historiquement, utilisation de processeurs CISC :
– Produits phares : Famille de processeurs x86 d’Intel.
– Micro-informatique (IBM compatibles et Mac).
● À partir des années 1990, apparition de processeurs
RISC :
– Produits phares : SPARC de Sun Microsystems et Power
Architecture d’IBM.
– Nombreux processeurs spécialisés (cartes graphiques,
DSP, smartphone, etc).
– Réécriture nécessaires des programmes initialement
conçus pour des processeurs CISC.

10
Processeur (6/6) – Un exemple : Intel Core
● Contexte de la rétro-compatibilité :
– Faire tourner des “vieux” programmes sur des ordinateurs
récents.
– Intel veut garder la rétro-comptabilité avec ses processeurs
précédents (famille x86).
● Famille de processeurs Core (i3, i5 et i7) :
– En apparence : Processeur CISC.
– Au cœur : Processeurs RISC.
– Décodeur transforme une instruction CISC en plusieurs
instructions RISC (faible surcharge).
● Avantages :
– Proposer un environnement de développement stable avec
un même ensemble d’instructions CISC.
– Optimiser physiquement les instructions RISC de manière
itérative.
11
Contenu
● Introduction
● Caractéristiques
● Architecture
● Portes logiques
● Circuits
● Conclusions

12
Architecture (1/14) – Contenu
● Registres
● Mémoires
● Bus
● Fréquence d’horloge
● Améliorations
● Schéma
● Exécution
● Parallélisme
● Examen

13
Architecture (2/14) – Registres
● Registres sont des mémoires internes au processeur.
● Registres stockent les données actuellement manipulées :
– Instruction exécutée : Instruction Register (IR).
– Résultat courant des calculs: Accumulator.
– Adresses d’entrées-sorties à consulter.
– Compteur de programme : Program Counter (PC).
– Adresse mémoire : Memory Address Register (MAR).
– Donnée mémoire : Memory Data Register (MDR).
● Registres informent du produit de la dernière opération
(zéro ou non, retenue ou non, bit significatif du résultat,
etc.).
● Registre interviennent dans les instructions :
– Stockage des données ou des adresses des opérandes.
– Données chargées, sommées, permutées ou translatées.
● Transfert entre registres conditionne la vitesse du CPU.
14
Architecture (3/14) – Mémoires
● Taille de la mémoire que le processeur peut adresser est
définie par les registres :
– Utilisation d’un seul registre pour pointer vers une adresse
mémoire (ex: un MAR de 32 bits pour adresser 232
adresses soit 4 Gb).
– Utilisation de deux registres dont l’un indique un segment
particulier et l’autre l’adresse dans celui-ci (ex: 8086
pouvait adresser 640 Kb avec des registres de 16 bits
normalement limités à 216 adresses soit 64 kb).
● Taille de l’unité de données que le processeur peut traiter
en une opération est définie par celle des registres (ex: un
MDR de 24 bytes permet de coder 224 bits).

15
Architecture (4/14) – Bus
● Un bus contient un ensemble de lignes avec données,
adresses ou information de contrôle (ex: timing,
informations read/write).
● Les bus locaux connectent les éléments internes au
processeur (registres, ALU, etc.).
● Les bus externes connectent le processeur aux autres
éléments de l’ordinateur (mémoire, périphériques I/O).
● Un processeur communique avec ces différents bus le
plus souvent en parallèle.

16
Architecture (5/14) – Fréquence d’horloge
● Les instructions sont cadencées (ou séquencées) par une
horloge interne (horloge électronique).
● Le fonctionnement d’un processeur repose sur les
registres et le transfert de données vers et entre eux.
● L’exécution d’une instruction en langage machine peut
prendre plusieurs tâches atomiques.
● La vitesse d’un processeur correspond au nombre de
tâches fondamentales qu’un ordinateur peut faire :
– Correspond à la vitesse de transfert entre registres.
– Correspond au nombre de tâches atomiques pouvant être
exécutées par seconde (1 GHz implique 1 milliard de
tâches atomiques par seconde).

17
Architecture (6/14) – Améliorations
● Augmenter la cadence d’un processeur :
– Compacter les transistors du processeur (loi de Moore).
– Réduire la durée des accès à la mémoire RAM et aux
périphériques I/O.
– Augmenter la capacité des bus pour traiter plus de données
“d’un coup” (aujourd’hui 64 bits).
– Paralléliser les instructions (pipeline, superscalaires).
● Augmenter le nombre de processeurs :
– Mettre plusieurs processeurs (cœurs) dans un même
ordinateur.
– Interconnecter des ordinateurs par des réseaux ultra-
rapides.
● Utiliser un autre paradigme : Informatique quantique ou
biologique.

18
Architecture (7/14) – Schéma (1/2)

Processeur Mémoire Centrale


Registres
R0

Compteur
R3 Instruction
Bus adresse
MA
et
commande

Stat Séquenceur

MD
Code
Opérande
Instruction

ALU
Registre Instruction

Accumulateur

Bus données

et Instructions

19
Architecture (8/14) – Schéma (2/2)

Registre Fonction
IC Instruction Counter : contient l’adresse de la prochaine instruction à exécuter
IR Instruction Register : contient l’instruction à exécuter (code-instruction et opérande)
ACC Accumulator : Registre spécialisé pour le calcul sur des données alimentées depuis les
registres ou la mémoire
Rn General Purpose Register : 4 registres de travail banalisés de 1 octet, source ou
destination de données en mémoire ou dans l'accumulateur
STAT Status : Reflète (entre autres) l’égalité à zéro du nombre contenu dans ACC, et est
examiné par les instructions de branchement conditionnel
MA Memory Address : reçoit l’adresse de l’emplacement en mémoire où un contenu sera lu
ou écrit ; MA est complété par un signal, pour commander la lecture ou l’écriture en
mémoire, et par un signal (TERM) indiquant que la mémoire a terminé la lecture ou
l’écriture
MD Memory Data reçoit l’octet lu ou à écrire en mémoire à l'adresse indiquée dans MA.

20
Architecture (9/14) – Exécution
● Soit les deux instructions :
LOAD R1
ADD R2

● Première phase :
– Chargement de l’adresse de la prochaine instruction.
– Chargement du code et de l’opérande à exécuter.
Cycle de base 1 2
Etape MA←IC IR←MD

● Seconde phase : Exécution de l’instruction qui charge


l’accumulateur.
Le chronogramme logique complet de l'instruction LOAD R1 devient donc le suivant:

Cycle de base 1 2 3
Phase Chargement Exécution
Etape MA←IC IR←MD ACC← R1

Celui de l’instruction ADD R 2 est semblable, à la phase d’exécution près :

Cycle de base 1 2 3
Phase Chargement Exécution
Etape MA←IC IR←MD ACC + R2

21
Architecture (10/14) – Parallélisme (1/3)
● Certaines choses peuvent se faire en parallèle :
– Exécuter l’instruction en cours.
– Charger les données concernant l’instruction suivante.
Cycle de base 1 2 3 4
Etape MA←IC IR←MD ACC←R1 ...
... MA←IC IR←MD ACC + R2

● Généralisation : Créer des pipelines pour les différentes


instructions :
Etape Etape Etape Etape
Instruction 3 1 2 3 4

Etape Etape Etape


Instruction 2 1 2 3

Etape Etape Etape Etape


Instruction 1 1 2 3 4

Temps

22
Architecture (11/14) – Parallélisme (2/3)
● Attention : Il faut s’assurer que les instructions respectent
la logique.
● Exemple d’instructions parallélisables :
c=a+b et f=d+e
● Exemple d’instructions non parallélisables :
– c=a+b et f=c+e
– Le “load” de la deuxième instruction clashe avec le
“store”.
● Résolution de conflit :
– À la compilation en créant des retards.
– En utilisant plusieurs lignes de pipeline.
– En réordonnant les instructions.

23
Architecture (12/14) – Parallélisme (3/3)
● Ordinateurs superscalaires :
– Exécuter plusieurs instructions simultanément.
– Utiliser plusieurs processeurs (parfois des milliers de types
différents) avec des connexions optiques.
● Systèmes multi-processeurs :
– Exécuter simultanément la même partie du programme ou
des parties très séparées (thread).
– Utiliser plusieurs processeurs intégrés (cœurs).
● Informatique distribuée (grid computing) :
– Exécuter simultanément des parties très séparées.
– Utiliser des ordinateurs répartis sur plusieurs endroits (data
center).

24
Architecture (13/14) – Examen (1/2)
● Traduisez le petit algorithme ci-dessous en une séquence
d’instructions élémentaires :
TANT QUE b <= a FAIRE :
AFFICHE b
b = b+1

25
Architecture (14/14) – Examen (2/2)
1. LOAD A 1. Charger A dans l’accumulateur.
2. SUB B 2. Soustraire B à l’accumulateur.
3. BRZ 9 3. Si l’accumulateur est <=0 : Aller en 9.
4. PUT B 4. Afficher B.
5. LOAD B 5. Mettre B dans l’accumulateur.
6. ADD 1 6. Ajouter 1 à l’accumulateur.
7. STORE B 7. Stocker l’accumulateur dans B.
8. BR 1 8. Aller à l’adresse 1.
9. 9.

26
Contenu
● Introduction
● Caractéristiques
● Architecture
● Portes logiques
● Circuits
● Conclusions

27
Portes logiques (1/5) – Contenu
● Le binaire
● Types
● Calculer
● Stocker

28
Portes logiques (2/5) – Le binaire
● En binaire, toute donnée peut prendre deux valeurs :
– VRAI codée comme un 1.
– FAUX codée comme un 0.
● Toute information se code donc comme une suite de
VRAI et de FAUX (cf. codage et stockage binaire).
● Tout raisonnement logique et tout traitement
arithmétique peut se réaliser dans un circuit logique qui
se base sur des portes logiques.
● Une porte logique est un système :
– Un ou deux signaux binaires en entrée (les données).
– Un signal binaire en sortie (le résultat du traitement des
données).
– Une table de vérité indique ce que la porte renvoie en
sortie en fonction de ses entrées.

29
Portes logiques (3/5) – Types
A B R R est VRAI si sont VRAIS
AND 0 0 0
0 1 0 A et B
1 0 0
1 1 1

A B R
OR 0 0 0 A ou B
0 1 1
1 0 1
1 1 1

NAND A B R
0 0 1 Pas (A et B)
0 1 1
1 0 1
1 1 0

NOR A B R
0 0 1
Pas (A ou B)
0 1 0
1 0 0
1 1 0

XOR A B R
0 0 0
(A ou B) et pas (A et B)
0 1 1
1 0 1
1 1 0

XNOR
A B R
0 0 1 (Ni A ni B) ou (A et B)
0 1 0
1 0 0
1 1 1

NOT A R
0 1 R est l’inverse de A
1 0

30
Portes logiques (4/5) – Calculer
● Exemple de l’addition :
– Une porte XOR pour l’addition d’un bit.
– Une porte AND pour la retenue.
– Un étage par degré à additionner.
1 + 1 Décimal
1 + 1 Binaire

1 1 1 1

1 0 Binaire = 2 en décimal

Retenue Addition

31
Portes logiques (5/5) – Stocker
● Le bistable (flip-flop) est l’élément de base de la mémoire
RAM :
– Deux portes NOR mises en parallèle et bouclées sur elles-
mêmes (sortie de Na = entrée de Nb et inversement).
– Deux signaux indépendants en entrée (S=SET et
R=RESET) et une sortie (Q).

S
1. S=0, R=0: Q(t+1)=Q(t)
Na
la mémoire est stabilisée

2. S=1, R=0: Q=1,


la mémoire est mise à 1

3. R=1, c’est le reset et


Q la mémoire est effacée
R Nb

32
Contenu
● Introduction
● Caractéristiques
● Architecture
● Portes logiques
● Circuits
● Conclusions

33
Circuits (1/10) – Contenu
● Principe
● Transistor
● Porte logique
● Processeur

34
Circuits (2/10) – Principe
● Correspondance entre binaire et courant électrique :
– VRAI (1) correspond à la présence d’un courant
électrique.
– FAUX (0) correspond à l’absence d’un courant électrique.
● Pour traiter l’information binaire, il suffit d’assembler des
éléments capables de laisser passer ou non le courant.
● Interrupteur programmable :
– “Porte atomique” qui reçoit un courant électrique (signal
binaire) en entrée et renvoie un courant électrique (signal
binaire) en sortie.
– Élément programmable qu’on peut assembler en série ou
en parallèle.
– Interrupteur ouvert : Empêcher tout passage de courant.
– Interrupteur fermé : Laisser passer du courant.

35
Circuits (3/10) – Transistor (1/3)
Principe
● Chaque interrupteur doit pouvoir réaliser trois fonctions :

– Amplifier le courant (utile s’ils sont en série).


– Bloquer le courant.
– Inverser le courant.
● Idéalement, il faut un élément capable de réaliser ces
opérations le plus vite possible.
● C’est exactement ce que fait le transistor :
– Aujourd’hui, l’industrie des semi-conducteur se base sur le
silicium.
– Un transistor se compose d’une entrée (la “source”) et
d’une sortie (le “drain”) de courant.

36
Circuits (4/10) – Transistor (2/3)
Fonctionnement
● Deux états qui implémentent un interrupteur ouvert et

fermé :
– Au repos : Aucun courant passe à travers le transistor.
– Application d’une tension électrique : Un courant passe à
travers le transistor (les électrons sont attirés d’un côté du
transistor vers l’autre).
● L’application d’une tension sur la “grille” détermine si le
transistor laisse ou non passer le courant :
– La tension appliquée sur la grille est représentée par un 1
(le transistor reçoit la donnée binaire “1”).
– L’absence de tension sur la grille est représentée par un 0
(le transistor reçoit la donnée binaire “0”).

37
Circuits (5/10) – Transistor (3/3)
Schéma
● Courant traverse le transistor de la source au drain

uniquement si une tension est appliquée à la grille.

TENSION

GRILLE

SOURCE TRANSISTOR DRAIN

38
Circuits (6/10) – Porte logique (1/3)
Principe
● Mise en série et/ou en parallèle de transistors pour

réaliser des fonctions booléennes élémentaires (AND,


NOR, XOR, etc.).
● Réalisation physique de portes logiques avec des

transistors.
● Utiliser la logique booléenne pour effectuer le traitement

calculatoire, logique ou symbolique des données.

39
Circuits (7/10) – Porte logique (2/3)
Exemples
● Mise en série de deux transistors (AND) :

● Mise en parallèle de deux transistors (OR) :

40
Circuits (8/10) – Porte logique (3/3)
Conception
● Chaque porte logique peut être implémentée sous la

forme d’un circuit constitué de quelques transistors.


● Comme pour les portes logiques, les mêmes “briques”

électroniques permettent de raisonner, calculer,


mémoriser, etc.

41
Circuits (9/10) – Processeurs (1/2)
Production
● Un processeur moderne intègre (sur une puce de

quelques centimètres carrés) des centaines de millions de


transistors.
● Circuits imprimés :

– Produire les transistors séparément et les intégrer ensuite.


– Produire des “petits” circuits (ex: synthétiseurs).
● Circuits intégrés :
– Utiliser la photolithographie pour graver sur une seule
galette (wafer) de silicium.
– Exploiter des procédés industriels ultra-précis (précision
de la dizaine de nanomètres) et des matériaux d’une
extrême pureté (d’où les chambres blanches).
– Processeurs modernes sont des circuits intégrés.

42
Circuits (10/10) – Processeurs (2/2)
Évolutions
● Finesse de gravure détermine le nombre de transistors sur

une même puce :


– Augmenter la capacité de traitement.
– Réduire le délai de transmission entre deux transistors.
● Limites dans l’augmentation de la finesse de gravure :
– Complexité et coût de la gravure.
– Limites quantiques (en gravant trop finement, les électrons
finissent par “sauter” et provoquent des
dysfonctionnements).
– Dégagement de chaleur qui perturbe le fonctionnement.
● La “loi de Moore” se vérifie encore de nos jours
uniquement grâce à d’autres innovations que
l’augmentation de la finesse de gravure (ex: multicœurs).

43
Contenu
● Introduction
● Caractéristiques
● Architecture
● Portes logiques
● Circuits
● Conclusions

44
Conclusions
● L’informatique repose sur le principe de l’abstraction
fonctionnelle :
– Ordinateur fonctionne à différent niveaux d’abstraction.
– Travail à un niveau supérieur sans se soucier du niveau
inférieur.
● Les problèmes les plus complexes se réduisent à un
(parfois gigantesque) ensemble de traitements binaires ou
arithmétiques (ex: jeu d’échecs).
● La puissance et la polyvalence de l’ordinateur provient :
– Capacité d’effectuer des opérations binaires à très grande
vitesse (des milliards d’instructions à la seconde) avec une
fiabilité parfaite.
– Développement de programmes (donc d’algorithmes)
capables de résoudre des problèmes de plus en plus
complexes.

45
Introduction à l’informatique

Processeurs

Leçon basée sur celle du Prof. NICOLAS VAN ZEEBROECK