Architecture et technologie des ordinateurs II G. Tempesti

publicité
Architecture et technologie des ordinateurs II
Architecture et technologie
des ordinateurs II
Gianluca Tempesti
EPFL-DI-LSL, INN 235
Tel: 693 2676
E-Mail: [email protected]
Web: lslwww.epfl.ch/~tempesti/CoursUNIL.htm
Bibliographie
¾John
P. Hayes, Computer Architecture and Organization ,
McGraw-Hill, 3rd ed., 1998.
¾David A. Patterson and John L. Hennessy, Computer
Architecture : A Quantitative Approach, Morgan
Kaufmann, 2nd Ed., 1996.
¾David A. Patterson and John L. Hennessy, Computer
Organization and Design : The Hardware/Software
Interface, Morgan Kaufmann, 2nd ed., 1997.
¾David
A. Patterson and John L. Hennessy, Architecture
des ordinateurs: une approche quantitative, Thomson
Publishing, 2ème ed., 1996.
Programme détaillé
® Semaine
¾
¾
¾
® Semaine
¾
¾
1: Introduction
Historique
Prix vs. performance
Niveaux de conception
®
¾
¾
®
2: Arithmétique I
¾
¾
¾
® Semaine
¾
¾
Multiplication et division
Unité de traitement
G. Tempesti
®
Unité de contrôle
Programmes
Semaine 5: Instructions
¾
Virgule fixe et flottante
Addition et soustraction
3:
Arithmétique II
Semaine 4: Contrôle
Jeux d’instructions
Décodage
Séquencement
Modes d’adressage
Semaine 6: Processeurs
¾
¾
Microprogrammation
Types de processeur
Semaine I
1
Architecture et technologie des ordinateurs II
Programme détaillé
® Semaine
¾
¾
® Semaine
¾
¾
¾
¾
Semaine 11: Petite pause
®
Semaine 12: Pipelining
¾
¾
¾
®
9: Mémoires II
¾
¾
¾
10: Périphériques
Gestion du bus système
Gestion des périphériques
®
Fonctionnement
Aléas des pipelines
Prédiction de branchement
Semaine 13: Parallélisme des
instructions I
Mémoire cache
Mémoires associatives
® Semaine
¾
®
8: Mémoires I
RAM
Mémoire virtuelle
® Semaine
¾
7: Procédures
Gestion des procédures
Gestion des interruptions
Ordonnancement dynamique
Lancement multiple
Compilation
Semaine 14: Parallélisme des
instructions II
¾
Architectures avancées
Historique I - Époque méchanique
®
Blaise Pascal - 1642 - Addition et soustraction
¾ Retenue
®
automatique, complément
Gottfried Leibniz - 1671 - Multiplication et
division
¾ Additions
®
successives
Charles Babbage
¾ 1823
ƒ
¾ 1834
ƒ
- Difference engine - addition
Séquence d’instructions
- Analytical engine - toute opération
Contrôle de séquence (programme), ALU et mémoire
Historique II - Calcul
®
Calcul : Z=f(X)
®
Turing machine - 1936
Processor P
HH Read/Write Head
Memory Tape T
¾ Instructions:
¾ Machine
G. Tempesti
read, write, move, halt
“universelle”
Semaine I
2
Architecture et technologie des ordinateurs II
Historique III - Deuxième guerre
®
Ordinateurs éléctroméchaniques
¾ Konrad
Zuse - Z3 (1941) - nombres binaires, flottants
- Colossus (1943/1970) - décodage
¾ Howard Aiken - Harvard Mark I (1944)
¾ ???
®
Ordinateurs éléctroniques
¾ Mauchly
& Eckert - ENIAC (1946)
Programmation manuelle, base 10
ƒ
¾ Wilkes
- EDSAC (1949)
Programme embarqué, base 2
ƒ
¾ Von
Neumann, Mauchly & Eckert - EDVAC (1951)
Rapport Burks, Goldstine et Von Neumann (1946)
ƒ
Historique IV - Générations
Dates
Technologie
Produits
1
1950-1959
Tubes à vide
Ordinateurs électroniques
2
1960-1968
Transistors
Ordinateurs commerciaux
3
1969-1977
Circuits intégrés
Miniordinateurs
4
1977-????
VLSI
PC et stations de travaille
5
????-????
????
????
Historique V - Générations
Date
Produit
Taille (ft 3)
Puissance (W) Add/sec Prix (1996)
1951 UNIVAC I
1000
124500
1900
1964 IBM S/360
60
10000
500K
$4M
1965
PDP-8
8
500
330K
$66K
1976
Cray-1
58
60000
166M
$8.5M
1981
IBM PC
1
150
240K
$4K
1991
HP9000
2
500
50M
$8K
1996
PPro 200
2
500
400M
$4.5K
G. Tempesti
$5M
Semaine I
3
Architecture et technologie des ordinateurs II
Performance
®
Temps d’exécution et bande passante
1
Performance =
Temps d’exécution
®
Coups d’horloge et instructions
Temps d’exécution (CPU) = # coups d’horloge pour le programme
Fréquence d’horloge
# coups d’horloge pour le programme =
# instructions ¥ # coups d’horloge moyen par instruction
Performance - Loi d’Amdahl
®
Améliorations et accélération
Accélération (speedup) = Temps d’exécution avant amélioration
Temps d’exécution après amélioration
®
La loi d’Amdahl
Temps d’exécution après amélioration =
Temps d’exécution concerné
Amélioration
+ Temps d’exécution non concerné
Performance - Mesures
®
MIPS et FLOPS
®
Fréquence d’horloge
®
Performance de pointe (peak)
®
Benchmarks
¾ Répartition
des instructions
¾ Taille
¾ Localité
des références (spatiale et/ou temporelle)
¾ SPEC
G. Tempesti
Semaine I
4
Architecture et technologie des ordinateurs II
Coûts
®
Coût de fabrication
Coût du circuit intégré =
Coût de la puce + Coût du test + Coût de la mise en boîtier
Rendement après le test final
Coût de la tranche (wafer)
Coût d’une puce =
Puces par tranche x Rendement des puces
®
Coût des composants = 25-30% du prix de vente
Codage binaire
Dans les systèmes numériques, toute information est codée en binaire
Vcc
TRANSITORS
C=0
C
A
INVERSEUR
C=0
B
C
A
B
OUT=0
IN=1
A
C=1
B
A
A
B
C=1
B
A
B
IN
0
1
OUT
1
0
GND
Codage en base 2:
N = p n2n + … + p222 + p121 + p020
par exemple:
10110 = 1x2 4 + 0x2 3 + 1x2 2 + 1x2 1 + 0x2 0 = 16 + 4 + 2 = 22
mais aussi:
10110 = add R1, R2
Logique combinatoire I
®
Portes logiques
INVERTER
I
I
1
0
O
O
0
1
2-INPUT
AND GATE
A
O
B
A B
O
0 0
0
0 1
0
1 0
0
1 1
1
2-INPUT
OR GATE
A
O
B
A B
O
0 0
0
0 1
1
1 0
1
1 1
1
®
Algèbre booléenne
®
Minimisation (tables de Karnaugh)
G. Tempesti
4-INPUT
MULTIPLEXER
A
B
O
C
D
S0
S1
S0
0
0
1
1
S1
0
1
0
1
O
A
B
C
D
Semaine I
5
Architecture et technologie des ordinateurs II
Logique combinatoire III
®
Unité arithmétique et logique (ALU)
M S1 S0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
F
A
A•B
A
A+B
A-1
A+B
A-B
A+1
logique
A
B
M
S F
2
arithmétique
Logique séquentielle I
®
Verrou (latch)
0
D
Q
D
Q
LD Q
Q
1
D: entrée d’excitation
LD: entrée de contrôle
Q: sortie ou état du latch
LD
®
Bascule (flip-flop)
maître
D
D
esclave
Q
Q
Q
LD Q
Q
D
LD Q
D
Q
CK
Q
CK
Logique séquentielle II
®
Machine d’état
10/1
ƒ
bascules
état
futur
n
état
présent
X1X2/Z
a
0001
11/1
10/1
01/0
00/0
00/0
CK
11/1
d
1000
10/0
01/0
b
0010
00/1
11/0
11/0
10/0
01/1
c
00/1
0100
01/1
G. Tempesti
Semaine I
6
Architecture et technologie des ordinateurs II
Logique séquentielle III
Registre
CK
Q3 Q2 Q1 Q0
L
D3 D2 D1 D0
Registre à décalage
CK
S0
S1
Q3 Q2 Q1 Q0
D3 D3 D2 D1 D0 D0
Pile (stack)
Compteur
CK
push
pop
Q3 Q2 Q1 Q0
DIR
CK
sommet
Niveau registre
®
Unité d’information: mot (2N bits)
®
Composants de base: multiplexeurs, décodeurs,
additionneurs, ALUs, registres, registres à
décalage, compteurs, etc.
®
Pas de méthode formelle pour les optimisations et
les simplifications.
®
L’algèbre booléenne peut être adaptée, mais ne
suffit pas (opérations numériques).
Niveau processeur (CPU)
®
Unités d’information: blocs d’instructions, blocs de
données.
®
Composants de base: mémoire cache, datapath, décodeur,
bancs de registres, unité flottante.
Cache
Instructions
Unité
Unitéde
de
Contrôle
Contrôle
Décodeur
CPU
Unité
Unitéde
de
Traitement
Traitement
Cache
Données
ALU
Unité
Flottante
PC
Registres
Registres
G. Tempesti
Semaine I
7
Architecture et technologie des ordinateurs II
Niveau système
®
Unités d’information: programme, structures de données.
®
Composants de base: mémoire, CPU, I/O, bus système
MÉMOIRE
MÉMOIRE
CPU
CPU
IO
IO IO
IO IO
IO • • • • •
BUS SYSTÈME
®
I/Os “standard”: cartes SCSI et/ou IDE, clavier, souri,
haut-parleurs, etc.
®
La vitesse du bus système devient le facteur prédominant
pour la performance d’un ordinateur.
Von Neumann vs. Harvard
®
Von Neumann
MÉMOIRE
MÉMOIRE
CPU
CPU
IO
IO IO
IO IO
IO • • • • •
BUS SYSTÈME
®
Harvard
BUS INSTRUCTIONS
MÉMOIRE
MÉMOIRE MÉMOIRE
MÉMOIRE
DONNÉES
INSTR
DONNÉES
INSTR
CPU
CPU
IO
IO IO
IO IO
IO • • • • •
BUS DONNÉES
Hiérarchie des mémoires
ƒArchitecture
Von Neumann
Mémoire
non-volatile
(disque dur)
ƒArchitecture
Mémoire
cache
(niveau 1)
Mémoire
volatile
instructions
Cache
instructions
(niveau 2)
Cache
instructions
(niveau 1)
Mémoire
volatile
données
Cache
données
(niveau 2)
Cache
données
(niveau 1)
Registres
CPU
(niveau 0)
Registres
CPU
(niveau 0)
Harvard “réelle”
Mémoire
non-volatile
(disque dur)
G. Tempesti
Mémoire
cache
(niveau 2)
Harvard
Mémoire
non-volatile
(disque dur)
ƒArchitecture
Mémoire
volatile
(RAM)
Mémoire
volatile
(RAM)
Mémoire
cache
(niveau 2)
Cache
instructions
(niveau 1)
Cache
données
(niveau 1)
Registres
CPU
(niveau 0)
Semaine I
8
Téléchargement