Vous êtes sur la page 1sur 39

ELFE

Composants numériques

Architecture des microprocesseurs

EEA

I. O'Connor

Dépt. EEA, Ecole Centrale de Lyon

ELFE / Composants numériques : 1


I. O'Connor
 "Computers in the future may weigh no more than
1.5 tons" (Popular Mechanics, 1949)
 "I think there is a world market for maybe 5
computers" (Thomas J. Watson, IBM, 1943)
 "There is no reason why anyone would want a
computer in the home" (Kenneth Ohlson, Digital
Equipment, 1977)

ELFE / Composants numériques : I.


O'Connor
2 EEA
Définitions du mot "architecture"

 définition classique :
– l'art, ou la science, de construire des édifices
– la disposition, le style, des édifices
 définition informatique
– organisation des éléments composant un système
informatique (Fred Brooks, 1962)
• “Computer architecture is the computer as seen by the user”
(Amdhal, 1964)
• "By computer architecture we mean the structure of the
modules as they are organized in a computer system” (Stone,
1987)
• “The architecture of a computer is the interface between the
machine and the software” (Padges, IBM)

ELFE / Composants numériques : I.


O'Connor
3 EEA
Phases de construction d'une architecture

 structure
– disposition statique des composants (prévisions)
 organisation
– interaction dynamique des composants et leur gestion
(conception)
 implémentation
– conception de blocs fonctionnels spécifiques
(construction)
 évaluation des performances
– étude du comportement du système (test)

ELFE / Composants numériques : I.


O'Connor
4 EEA
L'architecture, selon l'architecte
 architecture du jeu d'instructions
 implémentation
– organisation : aspects haut-niveau
• système de mémorisation
• structure des bus
• conception du CPU interne
– matériel
• conception numérique
• packaging
 point clé : évaluer l'architecture dans le contexte
de la technologie disponible
 la méthodologie est le point le plus important
ELFE / Composants numériques : I.
O'Connor
5 EEA
L'architecture et son entourage

 disciplines :
– structure matérielle/logicielle
– algorithmes et leur implantation
– aspects langage
 the big picture (Hennessy & Patterson) :
– Both hardware and software consist of hierarchical layers, with
each lower layer hiding details from the level above. This principle
of abstraction is the way both hardware designers and software
designers cope with the complexity of computer systems. One key
interface between the levels of abstraction is the instruction set
architecture: the interface between the hardware and low-level
software. This abstract interface enables many implementations of
varying cost and performance to run identical software.

ELFE / Composants numériques : I.


O'Connor
6 EEA
Structure d'une machine de calcul

 c'est la coordination de plusieurs niveaux


d'abstraction

Application (Netscape)
Operating
Compiler System
Assembler (Windows...)
Software
Instruction Set
Hardware Processor Memory I/O system Architecture

Datapath & Control


Digital Design
Circuit Design
transistors

ELFE / Composants numériques : I.


O'Connor
7 EEA
Niveaux de représentation
High Level Language temp = v[k];
Program (e.g., C) v[k] = v[k+1];
v[k+1] = temp;
Compiler

Assembly Language
Program lw $to, 0($2)
lw $t1, 4($2)
Assembler sw $t1, 0($2)
sw $t0, 4($2)

Machine Language
Program 0000 1001 1100 0110 1010 1111 0101 1000
1010 1111 0101 1000 0000 1001 1100 0110
Machine Interpretation 1100 0110 1010 1111 0101 1000 0000 1001
0101 1000 0000 1001 1100 0110 1010 1111
Control Signal
Specification
°
°
ELFE / Composants numériques : I.
O'Connor
8 EEA
Plan
 Composition d'un microprocesseur
– unité de calcul
– unité de contrôle
 Mesure des performances d'un microprocesseur
 Stratégies d'amélioration des performances
– pipeline
– cache
– mémoire virtuelle
 Communication externe
– bus
– périphériques
ELFE / Composants numériques : I.
O'Connor
9 EEA
Cinq composants d'une machine à calcul

ordinateur clavier,
processeur périphériques souris
processeur périphériques
(actif)
(actif) disque
mémoire
mémoire (pour
(passive)
(passive) entrée
entrée
contrôle
contrôle programmes,
(Asterix)
(Asterix) (pour données,
(pour
programmes,
programmes, lorsqu'ils ne
données, sortie
sortie sont pas
données,
datapath lorsqu'ils
lorsqu'ilssont
sont utilisés)
datapath utilisés)
(Obélix)
(Obélix) utilisés)
écran,
imprimante

ELFE / Composants numériques : I.


O'Connor
10 EEA
Composition d'un microprocesseur
 le microprocesseur traite des données selon un
programme d'instructions
– les instructions proviennent de la mémoire

– les données peuvent provenir des périphériques


(temps réel) ou de la mémoire
– les résultats peuvent être envoyés vers des
périphériques ou vers la mémoire

– le traitement des données et instructions se fait par un


couple contrôle (CTU) et unité de calcul
(ALU/datapath)
ELFE / Composants numériques : I.
O'Connor
11 EEA
Le CPU

 processeur (CPU)
– la partie active de la machine
– qui effectue tout le travail (manipulation des données, prise de
décisions)
– composé d'un chemin de données et d'une partie contrôle
 chemin de données (ALU/datapath)
– partie du processeur qui contient tout le matériel (circuits)
nécessaire à au bon fonctionnement de toute opération effectuée
par la machine ("force physique")
 contrôle (CTU)
– partie du processeur (également matérielle) qui dirige le chemin
de données, lui faisant faire les opérations nécessaires ("force
intellectuelle")

ELFE / Composants numériques : I.


O'Connor
12 EEA
Architecture générale du CPU

registre d'instruction MUX

data
A B
R0
R1
Décodeur CODOP ALU R2
R3
S

Séquenceur
A0
A1

@
registre d'état
stack pointer (SP)

MUX
program counter (PC)

ELFE / Composants numériques : I.


O'Connor
13 EEA
Les rôles du CPU et de l'ALU

 ALU : Arithmetic and Logic Unit = UAL : Unité


d'Arithmétique et Logique
– l'ALU se charge de calculer un résultat selon la
configuration envoyée par le CPU
 CTU : Control Unit = Unité de Contrôle
– le CTU interprète une instruction du programme pour
configurer électriquement l'ALU pendant un ou
plusieurs cycles d'horloges (dépend de la complexité
de l'instruction)

ELFE / Composants numériques : I.


O'Connor
14 EEA
Architecture générale de l'ALU

data
MUX

A B

R0
CTU R1
CODOP ALU
R2
R3
S

@
ELFE / Composants numériques : I.
O'Connor
15 EEA
Architecture interne de l'ALU

clk
A B clk

+ OU ET XOR !A >> <<

CODOP MUX

clk
S P clk

ELFE / Composants numériques : I.


O'Connor
16 EEA
La fonction du multiplexeur (MUX)
 un multiplexeur (aiguilleur) 1 bit :
– possède des bits de contrôle et des bits de données
– les bits de contrôle indiquent quel bit de donnée passe à la sortie :
toutes les autres données sont bloquées
– n bits de contrôle sélectionnent parmi 2n bits de données
– un multiplexeur peut être de n'importe quelle taille (en principe ...)

A 0 S Y A
Y 0 A Y
B 1 1 B B

S
S
ELFE / Composants numériques : I.
O'Connor
17 EEA
La fonction du registre
 définition générale d'un registre
– un endroit où l'on peut stocker 1 ou plusieurs bits pour
récupération ultérieure
– en matériel, constitués de portes et fils
 les registres sont utilisés ici pour :
– utilisation générale (variables internes, résultats intermédiaires)
– tampons entre étages du chemin de données
– registres spécifiques (PC ...)
clk clk

D Q D Q

clk clk clk

ELFE / Composants numériques : I.


O'Connor
18 EEA
Registre "tampon"
d[n-1:0]

clk
reg
q[n-1:0]

d[n-1:0]
d[n-1]

d[n-2]

d[n-3]

d[0]
D Q D Q D Q D Q
q[n-1]

q[n-2]

q[n-3]

q[0]
clk
q[n-1:0]

ELFE / Composants numériques : I.


O'Connor
19 EEA
Registre d'utilisation générale
ld
d[n-1:0]

clk
reg
q[n-1:0]
d[n-1:0]
d[n-1]

d[n-2]

d[n-3]

d[0]
ld
D Q D Q D Q D Q
q[n-1]

q[n-2]

q[n-3]

q[0]
clk
q[n-1:0]

ELFE / Composants numériques : I.


O'Connor
20 EEA
Les calculs effectués par l'ALU

 opérations arithmétiques
– addition, addition, addition ...
– soustraction = A + !B + 1
– multiplication = additions + décalages à gauche
– division = soustractions + décalages à droite
– ou unité de calcul spécifique
 opérations logiques
– et, ou, inversion
– ou exclusif, égalité
– décalage à droite, à gauche

ELFE / Composants numériques : I.


O'Connor
21 EEA
Fonctions logiques
 N = nombre de bits (largeur des données)

2 opérandes 1 opérande

ET : Y[(N −1):0 ] = A [(N −1):0 ]• B[(N −1):0 ] INV : Y[(N −1):0 ] = A [(N −1):0 ]

Y[(N −1):1] = A [(N − 2 ):0 ]


OU : Y[(N −1):0 ] = A [(N −1):0 ]+ B[(N −1):0 ] << :
Y[0 ] = 0

EXOR : Y[(N −1):0 ] = A [(N −1):0 ]⊕ B[(N −1):0 ] Y[N −1] = 0


>> :
Y[(N − 2 ):0 ] = A [(N −1):1]
EXNOR : Y[(N −1):0 ] = A [(N −1):0 ]⊕ B[(N −1):0 ] décalage d'un bit

ELFE / Composants numériques : I.


O'Connor
22 EEA
Fonctions arithmétiques

 N = nombre de bits (largeur des données)

ADD : Y[(N −1):0 ] = A [(N −1):0 ]+ B[(N −1):0 ]+ C −1

SUB : Y[(N −1):0 ] = A [(N −1):0 ]+ B[(N −1):0 ] + 1

N N

*: ( )
Y[(N −1):0 ] = ∑ A [(N −1):0 ]• Bi × 2i = ∑ A [(N −1):0 ]• (Bi << i )
i =0 i =0

ELFE / Composants numériques : I.


O'Connor
23 EEA
Multiplieur matériel 4x4

ELFE / Composants numériques : I.


O'Connor
24 EEA
Multiplication-accumulation (MAC)
 dans les processeurs dédiés au traitement numérique du
signal (DSP)
 plusieurs algorithmes (e.g. FFT, filtres numériques)
demandent des calculs de type somme de produits :
m
Y = ∑ ai bi
ALU simple
i =0 multiplieur-accumulateur
A B A B

deux cycles
un cycle

registre
registre

ELFE / Composants numériques : I.


O'Connor
25 EEA
Informations nécessaires à l'ALU

 le code opératoire (CODOP)


 la configuration des registres internes (utilisation
et conservation des variables intermédiaires)
 ces informations proviennent du CPU
 le résultat du calcul peut être interprété par le
CPU pour changer le déroulement du programme
(registre d'états) : représentation machine des
conditions if / while / for

ELFE / Composants numériques : I.


O'Connor
26 EEA
Architecture générale du CPU

registre d'instruction MUX

data
A B
R0
R1
Décodeur CODOP ALU R2
R3
S

Séquenceur
A0
A1

@
registre d'état
stack pointer (SP)

MUX
program counter (PC)

ELFE / Composants numériques : I.


O'Connor
27 EEA
Mécanisme de communication CPU mémoire

 A part contrôler les calculs de l'ALU, le CTU gère


la communication avec la mémoire aussi, pour
chercher :
– les instructions (PC : program counter ; compteur
ordinal)
– les données (SP : stack pointer ; pointeur de pile)
 Deux bus permettent la communication entre
CPU et mémoire : bus de données (données ici =
contenu d'un emplacement mémoire, pouvant
être données ou instructions) et bus d'adresse

ELFE / Composants numériques : I.


O'Connor
28 EEA
Architecture mémoire

 chaque emplacement mémoire a deux


caractéristiques :
– son contenu
– son adresse
 les programmes et données sont conservés dans
la mémoire :
– les instructions sont stockées en séquence avec
adresse incrémentée par ligne de programme (zone
programme)
– les données sont stockées à la fin des emplacements
mémoire (le stack, ou pile)

ELFE / Composants numériques : I.


O'Connor
29 EEA
Communication microprocesseur - mémoire
...
mov (M), R0
bus de données @i
mov (M), R2
@j
registre d'instruction MUX

data
add R0, R2
A B
R0 mov R0, (M)
R1
Décodeur
CODOP
ALU R2
R3
@k
S
jsr
Séquenceur
A0
A1 Décodage
printf

@
registre d'état
stack pointer (SP) d ’@
MUX
program counter (PC)

k
r w j
bus d'adresse i
...

ELFE / Composants numériques : I.


O'Connor
30 EEA
Sous-programmes

 la réutilisation de code pour des fonctions


souvent appelées exige de pouvoir écrire et gérer
des sous-programmes
 cela implique la gestion et la conservation de
plusieurs adresses d'instruction

ELFE / Composants numériques : I.


O'Connor
31 EEA
Appel des sous-programmes
...
mov (M), R0
@i
mov (M), R2
@j
registre d'instruction MUX

data
add R0, R2
A B
R0 mov R0, (M)
R1
Décodeur
CODOP
ALU R2
R3
@k
S
jsr
Séquenceur
A0
A1 Décodage
printf

@
registre d'état
stack pointer (SP) ’@
MUX
program counter (PC)

SP @ret
r w k
j
i
...
ELFE / Composants numériques : I.
O'Connor
32 EEA
Système informatique

ELFE / Composants numériques : I.


O'Connor
33 EEA
CPU et périphériques

 le CPU et les périphériques I/O peuvent


fonctionner simultanément
 chaque contrôleur de périphériques
– est associé à un type de périphérique
– possède un buffer (tampon) local
– informe le CPU qu'il a terminé son opération en
générant un signal d'interruption
 le CPU transfère des données vers/depuis la
mémoire depuis/vers les buffers locaux
 I/O = communication entre la périphérique et le
buffer local du contrôleur
ELFE / Composants numériques : I.
O'Connor
34 EEA
Gestion des périphériques
...
Data
Périphérique mov (M), R0
E Ctl - Com.
@i
Int.
mov (M), R2
@j
registre d'instruction MUX

data
add R0, R2
A B
R0 mov R0, (M)
R1
Décodeur
CODOP
ALU R2
R3
I.T. @k
S
jsr
Séquenceur
A0
A1 Décodage
printf

@
registre d'état
stack pointer (SP) d ’@
MUX
program counter (PC)

@ret
r w k
Int. (NMI, IRQ, …) j
i
...
ELFE / Composants numériques : I.
O'Connor
35 EEA
Gestion par interruptions
 interruption externe
– clavier, souris, disque dur ...
 associé à chaque interruption est un programme
de traitement de l'interruption
 différence fondamentale avec les sous-
programmes : leur exécution n'est pas prévue
dans la séquence du programme principal,
l'arrivée d'une interruption est imprévisible
 nécessite un tableau de vecteurs d'interruption
pour déterminer quelle ensemble d'instructions
exécuter
ELFE / Composants numériques : I.
O'Connor
36 EEA
Utilisation des interruptions
 déroulement d'une interruption
– l'interruption fait basculer le déroulement de l'exécution
vers le programme de service d'interruption générale,
par le biais du vecteur d'interruption, qui contient les
adresses de tous les programmes d'interruption
– la procédure d'interruption doit conserver l'adresse de
l'instruction interrompue
– les interruptions entrantes sont désactivées lors du
traitement d'une autre interruption pour empêcher les
interruptions perdues
 un système d'exploitation
– fonctionne à base d'interruptions
– sauvegarde registres internes et le compteur ordinal
ELFE / Composants numériques : I.
O'Connor
37 EEA
Interrupt Time Line For a Single Process Doing Output

ELFE / Composants numériques : I.


O'Connor
38 EEA
 deux stratégies de gestion des I/O :
– après déclenchement I/O, l'utilisateur récupère le contrôle
uniquement après terminaison de l'opération I/O
• instruction WAIT fait attendre le CPU jusqu'à la prochaine interruption
• boucle WAIT (contention pour l'accès mémoire)
• au maximum une requête I/O en attente, pas de traitement simultané
des I/O
– après déclenchement I/O, l'utilisateur récupère le contrôle sans
attendre terminaison de l'opération I/O
• appel système : requête à l'OS permettant à l'utilisateur d'attendre la
terminaison de l'I/O
• tableau d'état des périphériques : entrées pour chaque périphérique
I/O indiquant son type, adresse et état
• système d'exploitation utilise le tableau d'état pour déterminer l'état
du périphérique et pour le modifier en incluant l'interruption

ELFE / Composants numériques : I.


O'Connor
39 EEA

Vous aimerez peut-être aussi