Architecture des ordinateurs

publicité
Le modèle de machine de Von Neumann
Architecture des ordinateurs
14 - L’unité centrale
Philippe Darche
IUT Paris Descartes
Année 2009-2010
Appelée de manière raccourcie
« architecture Von Neumann »
D’après un rapport célèbre [Von Neumann 45]
(disponible sur le serveur de l’IUT)
Une abstraction (i.e. un modèle théorique)
Pour juste donner les détails nécessaires à la programmation
A ne pas confondre avec le modèle de calcul
Philippe Darche
Modélisation de la machine de Von Neumann
2
IUT Paris Descartes
Modélisation de la machine de Von Neumann
Cinq éléments dans le rapport de [von Neumann 45]
Central Arithmetic Unité Arithmétique et Logique (UAL)
Central Control Unité de Contrôle (UCo)
Memory les différentes formes de mémoire
mémoire centrale
registres
Input interface et périphérique d’entrée
Output interface et périphérique de sortie
E/S non représentées
Philippe Darche
3
IUT Paris Descartes
Philippe Darche
4
IUT Paris Descartes
1
Caractéristiques de ce modèle
Un microprocesseur actuel
Instructions et données dans la même mémoire
Xeon 7400 (6 cœurs)
par opposition à l’architecture Harvard
Exécution séquentielle des instructions
Philippe Darche
5
IUT Paris Descartes
Une unité centrale du début
Philippe Darche
6
IUT Paris Descartes
Définition du MPU
Le microprocesseur = version intégrée
de l’unité centrale des années 50-70
CPU (Central Processing Unit)
Un exemple : L’EDVAC
Appellation à ne pas confondre
avec le sens actuel
(i.e. le micro-ordinateur)
MPU = MicroProcessor Unit
intégration de :
UCo + UT
mémoire cache
contrôleur de mémoire vive dynamique ou DRAM (2009)
mémoire vive dynamique (prochainement)
il ne reste plus que les contrôleurs d’E/S à intégrer
c’est déjà fait avec le micro-contrôleur !
Philippe Darche
7
IUT Paris Descartes
Philippe Darche
8
IUT Paris Descartes
2
Définition du MPU
Modélisation d’un microprocesseur
Composant programmable
Classification par application
à usage général (General Purpose Processor ou GPP)
microprocesseur à usage général
micro-contrôleur (MCU pour MicroController Unit)
intégration du CPU + mémoire + contrôleurs d’E/S
Spécialisé (Application-Specific Processor pour ASP
ou SPP pour Special Purpose Processor)
traitement numérique du signal
DSP (Digital Signal Processor)
ASIP pour Application-Specific Instruction set Processor
Philippe Darche
9
IUT Paris Descartes
Philippe Darche
10
IUT Paris Descartes
Une micro-architecture simple
à bus de donnée unique
Définitions de base
Chemin de donnée (data path)
ensemble des composants traversés
par les données
UAL (Unité Arithmétique et Logique) et FPU (Floating-Point Unit)
bus de donnée (data bus)
Chemin d’instruction (instruction path)
ensemble des composants traversés
par les instructions
UCo
bus d’instruction (instruction bus)
Microarchitecture = détails internes
Philippe Darche
11
IUT Paris Descartes
Philippe Darche
12
IUT Paris Descartes
3
Calcul des drapeaux
L’Unité arithmétique et logique
UAL ou ALU (Arithmetic and Logic Unit)
Calcul de fonctions unaires et binaires
arithmétiques : + et – (originellement) puis * et ÷ aujourd’hui
logiques
ET, OU, NON et XOR
comparaisons : >, ≥, <, ≤ et =
décalages et rotations gauche et droite arithmétiques et logiques
Schéma de base
ACC = ACC + opérande
Résultat avec positionnement éventuel des indicateurs
voir transparent « cycle d’exécution de bas »
Philippe Darche
13
IUT Paris Descartes
Les registres utilisés par l’UAL
Philippe Darche
14
IUT Paris Descartes
Etats des indicateurs du registre d’état (1/2)
Le registre d'état ou des indicateurs
ou des drapeaux (flags)
Etat temporaire (code condition)
jusqu'à la prochaine instruction risquant de modifier
l'indicateur concerné
renseignement sur la validité du résultat :
CCR (Code Condition Register)
une partie seulement
résultat nul, négatif, dépassement de format ou de capacité, etc.
Divers registres
le ou les accumulateurs
etc.
Philippe Darche
15
IUT Paris Descartes
Philippe Darche
16
IUT Paris Descartes
4
Le registre d'état du 8086
OF DF IF TF SF ZF
L’Unité de Contrôle
AF
PF
D15
UCo
Organise l'exécution des instructions au rythme
d’un signal d’horloge Clk
CF
D0
OF (Overflow Flag) : indicateur de dépassement
SF (Sign Flag) : indicateur de signe
ZF (Zero Flag) : indicateur de zéro
AF (Half carry Flag) : indicateur de demi-retenue
PF (Parity Flag) : indicateur de parité
CF (Carry Flag) : indicateur de retenue
Philippe Darche
17
IUT Paris Descartes
Les registres utilisés par l’UCo
génération des signaux de synchronisation internes
ou externes (bus de contrôle) du CPU
Philippe Darche
Etat permanent
PC (Program Counter) ou IP (Instruction Pointer)
contrôle de l’UC
modification du comportement de certaines instructions
Le Registre d'Instruction (RI)
Le registre d'état ou des indicateurs
manipulation des caractères
modification du comportement du processeur
une partie seulement
mode pas à pas
Les registres d'index (IX)
Le pointeur de pile (SP)
19
IUT Paris Descartes
Etats des indicateurs du registre d’état (2/2)
Le Compteur Ordinal (CO)
Philippe Darche
18
masquage des interruptions
⇒
IUT Paris Descartes
Concerne l’UCo
Philippe Darche
20
IUT Paris Descartes
5
Le registre d'état du 8086 (suite)
OF DF IF TF SF ZF
D15
AF
Architecture de jeu d'instructions
PF
En anglais, Instruction Set Architecture (ISA)
Couche d’abstraction
CF
D0
indique comment programmer le CPU
(au-dessus)
indique les fonctionnalités à implémenter
(en-dessous)
DF (Direction Flag) : indicateur de direction
IF (Interrupt Enable Flag) : masque d'interruption
TF (Single Step Flag) : indicateur de trappe
Définit l’interface entre le matériel et le logiciel
spécification fonctionnelle
jeu d’instructions et l’encodage des instructions
langage d’assemblage
détails des registres manipulables
et de l’organisation mémoire
=
≠
Philippe Darche
21
IUT Paris Descartes
Vue en couches
Vue logique visible par le programmeur de bas niveau
Microarchitecture (= détails internes)
Philippe Darche
22
IUT Paris Descartes
Microarchitecture
Implémentation d’une ISA
Utilisation d’une UCo et d’une UT
Notion de chemin (path)
ensemble des composants ou sous-ensembles traversés
par un type de d’information
chemin de données (data path)
chemin d’adresse (address path)
Philippe Darche
23
IUT Paris Descartes
Philippe Darche
24
IUT Paris Descartes
6
Instructions
Couches d’abstraction
Jeu d'instructions
= {instructions exécutables par le processeur}
Familles d'instructions
transfert de données
arithmétique
logique
transfert de contrôle
E/S
Philippe Darche
25
IUT Paris Descartes
Quelques exemples chez Intel
Philippe Darche
26
Cycle d’exécution de base
Transfert de données : mov
Arithmétiques
Recherche (cycle fetch)
add, inc, sub, dec, mul, div
shl, shr, sal, sar, rol, ror, rcl, rcr
Décodage (cycle decode)
Exécution
Logiques : not, and, or, xor
Transfert de contrôle
Exécution (cycle execute)
jmp
je, jz, jne, jze, js, jse, jl, jle, jnle, jae, jnb, ja, jae, etc.
jo, jno
loop
positionnement
éventuel
des
indicateurs
E/S : in, out
Philippe Darche
IUT Paris Descartes
27
IUT Paris Descartes
Philippe Darche
28
IUT Paris Descartes
7
Le cycle recherche-décode-exécute
Schéma d'exécution de base
Instruction
recherche du code opération
stockage dans un registre inaccessible
le registre d'instruction (IR pour Instruction Register)
décodage du code machine
Données du calcul
recherche éventuelle de l'opérande
stockage dans un accumulateur
ou traitement direct
Philippe Darche
29
IUT Paris Descartes
Philippe Darche
30
IUT Paris Descartes
Cycle d’exécution détaillé
avec accès mémoire pour l’opérande
Schéma d'exécution de base
opérations internes
Résultat de l'exécution
accès mémoire
début
stockage dans un registre appelé accumulateur
ou rangement en mémoire
recherche instruction
décodage instruction // incrémentation CO
calcul adresse opérande(s)
recherche opérande
exécution instruction
avec positionnement éventuel
des indicateurs
calcul adresse opérande
stockage opérande
Philippe Darche
31
IUT Paris Descartes
Philippe Darche
32
IUT Paris Descartes
8
Instructions en langage d’assemblage
Utilisation d'un mnémonique plus lisible
plutôt qu'un code opération
Exemple d’une instruction et son codage
NOP (No Operation)
pas d’opérande
fonction : ne rien faire !
abréviation d’instruction
utilisation pour retarder le CPU
tester le bus d’adresse
Exemples :
NOP; ne rien faire
MOV ax,[y]; ax ← (y)
SUB ax,[y]; ax ← (ax) - (y)
Outil de traduction : l'assembleur
Philippe Darche
33
IUT Paris Descartes
Remarque : une addition se fait en plusieurs temps
M3 = M1 + M2
Philippe Darche
34
Exemple d’une instruction et son codage
ADD (ADDition)
MOV ax,[M1]
ADD ax,[M2]
MOV [M3],ax
syntaxe assembleur
deux opérandes (opérateur binaires)
fonction : addition de deux entiers
opération
ACC
Philippe Darche
IUT Paris Descartes
35
IUT Paris Descartes
Philippe Darche
ACC + [M]
36
IUT Paris Descartes
9
Contrôle micro-programmé
Micro-instructions
A chaque instruction (externe) correspond une suite de
micro-instructions (= micro-programme)
Un tronc commun et une partie spécifique à chaque
instruction
Philippe Darche
37
IUT Paris Descartes
Tronc commun à toute instruction
Cycle recherche (fetch), appelée aussi « phase
d’appel »
lire l’instruction à l’adresse contenue dans PC
ranger le code instruction dans RI
incrémenter PC
39
38
IUT Paris Descartes
Partie spécifique à chaque instruction
Phase d’exécution
recherche des opérandes
exécuter effectivement l’opération suivant RI
Exemple
LDA $100 (LoaD Accumulator, chargement de l’accumulateur)
T3 : MAR PC; RAD PC + 1
T4 : MDR M[MAR]; PC RAD
T0 : MAR PC; RAD PC + 1
T1 : MDR M[MAR]; PC RAD
T2 : IR MDR
Philippe Darche
Philippe Darche
T5 : MAR MDR
T6 : MDR M[MAR]
T7 : ACC MDR
IUT Paris Descartes
Philippe Darche
40
IUT Paris Descartes
10
Partie spécifique à chaque instruction
Exemple
Partie spécifique à chaque instruction
Exemple
STA $100 (Store Accumulator, déchargement de l’accumulateur)
T3 : MAR PC; RAD PC + 1
T4 : MDR M[MAR]; PC RAD
ADDA $100 (ADD Accumulator, addition avec l’accumulateur)
T3 : MAR PC; RAD PC + 1
T4 : MDR M[MAR]; PC RAD
T5 : MAR MDR
T6 : MDR ACC
T7 : M[MAR] MDR
Philippe Darche
T5 : MAR
T6 : MDR
T7 : ACC
41
IUT Paris Descartes
Philippe Darche
MDR
M[MAR]
ACC + MDR
42
IUT Paris Descartes
Une micro-architecture simple
à deux bus de donnée
Types de micro-architecture
Machine à trois adresses
deux pour les opérandes sources et une pour le résultat
Machine à deux adresses
une adresse pour une opérande source et une pour le résultat
Machine à une adresse
machine à accumulateur
l’accumulateur pour une opérande sources et le résultat
Machine à zéro adresse
Machine à pile
opérandes sources et résultat dans la pile
Philippe Darche
43
IUT Paris Descartes
Philippe Darche
44
IUT Paris Descartes
11
Une micro-architecture simple
à trois bus de donnée
Formats possibles d'une instruction
Plusieurs champs :
le champ instruction
éventuellement, un ou plusieurs champs opérande(s)
code op.
code op. réf. opérande
code op. réf. opérande réf. opérande
code op. réf. opérande réf. opérande réf. opérande
Philippe Darche
45
IUT Paris Descartes
Instruction
la taille et organisation mémoire
la structure du bus
Implications du nombre sur :
une plus grande richesse du jeu d’instruction
d’où l’appellation CISC (Complex Instruction Set Computer)
mais augmentation de la taille (i.e. surface) de la partie contrôle
Des solutions :
le microprocesseur RISC (Reduced-Instruction-Set Computer)
le microprocesseur CRISC (Complex-Reduced Instructions Set
Computer)
Philippe Darche
46
IUT Paris Descartes
Autre classement (structure matérielle)
Implications du format sur :
☺
Philippe Darche
47
IUT Paris Descartes
CISC (Complex Instruction Set Computer)
RISC (Reduced-Instruction-Set Computer)
La synthèse : CRISC
(Complex-Reduced Instructions Set Computer)
VLIW (Very Long Instruction Word)
Superscalaire
Philippe Darche
48
IUT Paris Descartes
12
Conclusion (2010)
Une puce moderne
L’intégration continue
plus de cœurs (4 à 64)
les niveaux de cache (L1, L2 et maintenant L3)
le contrôleur de DRAM
bientôt la DRAM ?
Philippe Darche
49
IUT Paris Descartes
Philippe Darche
50
IUT Paris Descartes
13
Téléchargement