PowerPoint Presentation - Architecture et technologie des

publicité
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



Historique
Prix vs. performance
Niveaux de conception
 Semaine


1: Introduction




2: Arithmétique I



 Semaine


Multiplication et division
Unité de traitement

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
Programme détaillé
 Semaine


Gestion des procédures
Gestion des interruptions
 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
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

Séquence d’instructions
 1834

- Difference engine - addition
- 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
H Read/Write Head
Memory Tape T
 Instructions:
read, write, move, halt
 Machine “universelle”
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

Programmation manuelle, base 10
 Wilkes

- EDSAC (1949)
Programme embarqué, base 2
 Von

& Eckert - ENIAC (1946)
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 (ft3)
Puissance (W) Add/sec Prix (1996)
1951 UNIVAC I
1000
124500
1900
$5M
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
Performance

Temps d’exécution et bande passante
Performance =

1
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é
+ Temps d’exécution non concerné
Amélioration
Performance - Mesures

MIPS et FLOPS

Fréquence d’horloge

Performance de pointe (peak)

Benchmarks
 Répartition
des instructions
 Taille
 Localité
 SPEC
des références (spatiale et/ou temporelle)
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 d’une puce =

Coût de la tranche (wafer)
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
TRANSITORS
C
C=0
A
INVERSEUR
C=0
B
C
A
Vcc
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 = pn2n + … + p222 + p121 + p020
par exemple:
10110 = 1x24 + 0x23 + 1x22 + 1x21 + 0x20 = 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)
4-INPUT
MULTIPLEXER
A
B
O
C
D
S0
S1
S0 S1 O
0 0
A
0 1
B
1 0
C
1 1
D
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
2
arithmétique
S F
Logique séquentielle I

Verrou (latch)
0
D
Q
D
LD Q
Q
1
D: entrée d’excitation
LD: entrée de contrôle
Q: sortie ou état du latch
LD

Q
Bascule (flip-flop)
maître
D
D
Q
LD Q
CK
esclave
Q
Q
LD Q
Q
D
D
Q
CK
Q
Logique séquentielle II

Machine d’état
10/1
ƒ
bascules
état
futur
n
état
présent
X1X2/Z
a
0001
11/1
10/1
00/0
01/0
00/0
CK
11/1
d
1000
10/0
01/0
b
0010
11/0
11/0
10/0
01/1
c
0100
01/1
00/1
00/1
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
DIR
push
pop
Q3 Q2 Q1 Q0
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é de
Contrôle
CPU
Décodeur
Unité de
Traitement
ALU
Unité
Flottante
PC
Registres
Cache
Données
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
CPU
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
CPU
IO
IO
IO
•••••
BUS SYSTÈME

Harvard
BUS INSTRUCTIONS
MÉMOIRE
DONNÉES
MÉMOIRE
INSTR
CPU
BUS DONNÉES
IO
IO
IO • • • • •
Hiérarchie des mémoires
Architecture
Von Neumann
Mémoire
non-volatile
(disque dur)
Architecture
Mémoire
cache
(niveau 2)
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)
Harvard
Mémoire
non-volatile
(disque dur)
Architecture
Mémoire
volatile
(RAM)
Registres
CPU
(niveau 0)
Harvard “réelle”
Mémoire
non-volatile
(disque dur)
Mémoire
volatile
(RAM)
Mémoire
cache
(niveau 2)
Cache
instructions
(niveau 1)
Cache
données
(niveau 1)
Registres
CPU
(niveau 0)
Téléchargement