Architecture des Systèmes Programmés Architectures

publicité
Architecture des
Systèmes Programmés
(6 conférences)
Architectures CISC et VLIW : J.Weiss
4 conférences
Microprocesseurs 8, 16 et 32 bits d’usage général (8080, ..., Pentium 4)
Microcontrôleurs 8 et 16 bits (68hc11, 8051 et PIC)
Nouvelles architectures (Itanium, IA64 et TransMeta)
Processeurs graphiques (GPU)
Mémoires
Architectures RISC et DSP
: P. Leray
2 conférences
Processeurs RISC (PowerPC, Alpha, ...)
DSP (TMS320, 56000, ...)
Bus de communications
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
1
Architectures
ZISC : Zero Instruction Set Computer
Autrement dit : Processeur Câblé (et donc PAS programmé)
CISC : Complex Instruction Set Computer
Processeur possédant un jeu d’instructions fourni de longueur
et de temps d’exécution variables.
VLIW : Very Long Instruction Word
Processeur possédant un jeu d’instructions encore plus fourni
que le cas du CISC (longueur et temps d’exécution variables).
RISC : Reduced Instruction Set Computer
Processeur possédant un jeu d’instructions réduit de longueur
et de temps d’exécution fixes
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 1
2
Microprocesseurs d’usage général
à architecture CISC
Architecture de base des microprocesseurs
Historique de l’informatique et des Microprocesseurs
ALU, Registres
Composants périphériques
Microprocesseurs et Microcontrôleurs 8 bits
Microprocesseurs 16 bits
Gestion de mémoire virtuelle, caches
Microprocesseurs 32 bits
1ère Génération : 80386, 68020
2ème Génération : Pentium
3ème Génération : Pentium Pro, Pentium II
4ème Génération : Pentium 4, TransMeta
Microprocesseurs 64 bits
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
3
50 ans d’histoire de
l’industrie informatique
Invention du
ENIAC : 1er ordinateur circuit intégré
1er Ordinateur
IBM
(Kilby et Noyce)
1947
1955
1958-59
1948
1957
Mise au point
du transistor
Fondation de
Fairchild SC
septembre 09
Fondation
d’Intel
Fondation de
Microsoft
1968
1963
1975
1971
Mini-ordinateur
1er µP
DEC
1ère EPROM
Intel
IBM-PC
486
1981
1989
1977
1985
Apple II
386
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 2
Pentium II
1997
1993
Pentium
2000
Pentium 4
4
État de l’informatique en 1968
1948 : 1er ordinateur : ENIAC (30 tonnes 85 m3)
(Electronic Numerical Integrator And Computer)
1968 : 30.000 ordinateurs dans le monde :
Mainframes (plusieurs pièces)
Mini-ordinateurs (taille d’un réfrigérateur)
Programmation : Cartes et bandes perforées
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
5
Historique des
Microprocesseurs CISC
2,3 kT
1,2 MT
5,5 MT
42 MT
580 MT
1900 MT
1960
1964
1968
1971
1972
1973
1975
1976
1978
1979
1982
1983
1984
1987
1989
1993
1995
1997
2000
2007
2008
septembre 09
8 bits
8 bits
8 bits
16 bits
16 bits
16 bits
16 bits
32 bits
32 bits
32 bits
32 bits
32 bits
32 bits
32 bits
32 bits
32 bits
64 bits
Premiers CI
SSI
MSI
LSI
1ère G.
2ème G.
3ème G.
1ère G.
1ère G.
1ère G.
2ème G.
1ère G.
1ère G.
1ère G.
2ème G.
3ème G.
3ème G.
3ème G.
4ème G.
4ème G.
2ème G.
AND, OR
Registres
DRAM 1 kbits, µP 4 bits (4004 d’Intel)
8008 (Intel)
8080 (Intel), 6800 (Motorola)
8085 (Intel), 6809 (Motorola), Z80 (Zilog)
TMS 9900 (Texas Instruments)
8086 (Intel)
IBM-PC/XT
68000 (Motorola)
MAC
80286 (Intel)
IBM-PC/AT
32032 (National)
80386 (Intel), 68020 (Motorola)
68030 (Motorola)
SUN3
80486 (Intel)
Pentium (Intel)
PentiumPro (Intel)
Pentium II (Intel)
Pentium 4 (Intel)
Core 2 Quad (Intel)
Itanium 2 dual core (Intel)
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 3
6
Création d’Intel :
les «Fairchildren»
Bob Noyce : Fondateur
Invention du circuit intégré en 1959
Fondateur et ex dirigeant de Fairchild Semiconductor
Gordon Moore : Fondateur
Invention du circuit intégré en 1959
Fondateur et ex responsable R&D de Fairchild Semiconductor
Andy Grove : N°4 d’Intel
Docteur en Chimie
Ex responsable de fabrication de Fairchild Semiconductor
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Les débuts d’Intel
7
2300 T
1969 : mémoires SRAM 64 bits (bipolaire)
1970 : conception du premier microprocesseur :
4004 pour Busicom (Japon) :
Technologie MOS 10 µm 3,17*4,23 mm²
1971 : Commercialisation du premier microprocesseur : 4004
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 4
8
Succès d’un produit
Le succès d’un produit est lié à :
Diffusion :
Microinformatique (x86)
Marchés militaires (Z80.000)
Marchés captifs (Rockwell, Comodore)
Prix : existence de 2ndes Sources
Environnement : existence de périphériques
de systèmes de développement
Arrivée sur le marché
Notion de «famille» : x86, 680x0
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
9
Technologie des microprocesseurs
Loi de Moore
Pentium 4
Nombre de transistors
100 M
Pentium II
10 M
Pentium
486
1M
386
286
100 k
10 k
8086
4004
1k
1970
8080
1975
1980
1985
1990
1995
2000
Temps
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 5
10
Technologie des microprocesseurs
Loi de Moore
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
11
Technologies Silicium
Evolutions de la Puissance consommée
Puissance (Watts)
100000
10000
1000
100
Dual-Core
Pentium®
286 486
8086 386
8085
8080
8008
1 4004
10
0.1
1971 1974 1978 1985 1992 2000 2004 2008
Année
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 6
12
Technologie des ordinateurs
Loi de Machrone
La machine dont on a besoin coûte toujours $5.000
1983 : IBM-PC/XT : ~2.000 €
1987 : IBM-PC/AT : ~ 2.000 €
1991 : IBM-PC/486 : ~ 2.000 €
1997 : IBM-PC/PII : ~ 2.000 €
2001 : IBM-PC/PIII : ~ 2.000 €
2008 : PC Quad-Core : ~ 2.000 €
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
13
Marché des microprocesseurs
4 bits
Calculatrices
Jeux vidéo
µsystèmes
8 bits
Systèmes programmés
Microcontrôleurs (carte à puce)
16 bits
Systèmes embarqués (ABS, Injection)
32 bits
Micro-ordinateurs
64 bits
Stations de travail,
PlayStation
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 7
14
Marché des processeurs
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
15
Système programmé
CPU
Unité de
commande
Registres
bus de
bus
Unité
d’entrée d’entrée
ALU
sortie
Unité
de sortie
bus de données
bus d’adresses
Mémoire
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 8
16
Système programmé
Constitution
Cœur
Processeur
Elément central du système, il constitue les cœur et est
défini par son jeu d'instructions et ses registres
Poumons
Mémoire
Mémoire centrale, en liaison avec le processeur, elle stocke
les programmes et les données
Membres
Périphériques et coupleurs
Permettent au système de communiquer avec l'extérieur
Artères
Bus
Pour la communication entre les différents éléments du système
pour les adresses, les données et les signaux de contrôle
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
17
Éléments de base d’un processeur
Partie Opérative
ALU : Opérateur arithmétique et logique
Cœur du processeur, il est associé à un décaleur
Registres «Données»
A : Accumulateur
Stocke les données intermédiaires
B, C, ... : Registres
Éléments de stockage à adressage implicite
Registres «Adresses»
PC : Compteur Ordinal
Sert à pointer sur la prochaine instruction
SP : Pointeur de Pile
Sert à pointer sur le sommet de la pile
IX : Registre d’index
Sert à indexer un segment mémoire
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 9
18
Mono-Bus
Bus de données
Z
C
B
Status
Accumulateur
ALU
Registres internes
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
19
Double-bus
Bus de données (entrée)
Z
C
B
Status
Accumulateur
ALU
Bus de données (sortie)
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 10
20
Triple-bus
Bus de données (entrées 1 & 2))
C
B
A
Status
Z
ALU
Bus de données (sortie)
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
21
Architecture d’µP 8 bits
8
Registres 16 bits
(adresses)
bus de données
Accumulateur
PC
SP
N
H
V
Z
C
IX
16
ALU
Décaleur
bus d’adresses
Registres 8 bits
(données)
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 11
22
Fonctionnement séquencé
Microprocesseur
Mémoire
Code opératoire
Décodage
Opérandes
Exécution
Résultat
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
23
Accélération
Performances d’un processeur
Temps par tâche = I.C.T
I = nombre d'instructions/tâche.
C = nombre de cycles/instructions.
T = temps de cycle.
AMÉLIORATION DES PERFORMANCES
Paramètre I Augmenter le jeu d’instructions du µP ; instructions de + en + complexes
Architectures CISC et VLIW
Paramètre C Nécessite le traitement simultané de plusieurs instructions
- structures pipeline,
- structures parallèles, superscalaires
Paramètre T Amélioration de la technologie, réduction de la durée des opérations élémentaires
- structures Super-Pipeline
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 12
24
Architecture des Processeurs
(Super-Scalaire)
Dans la recherche de performances de calcul maximales, il peut être intéressant
d’intégrer plusieurs unités (N) arithmétiques en parallèle ; ainsi, sous réserve de
non-dépendance des données et des ressources, on peut envisager d’exécuter N
instructions simultanément.
Registres
Registres
Scalaire
Super-Scalaire
C’est au début des années 1990 que la technologie a permis l’intégration de structures
superscalaires ; les processeurs actuels comptent de 3 à 4 unités de calcul entier et de
1 à 2 unités de calcul flottant fonctionnant en parallèle
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
25
Accélération
Séquencement des instructions
• Exécution séquentielle
Fetch
Décod
Mem
1 instruction/4 cycles
Exec
Fetch
Décod
Mem
Exec
• Exécution « pipelined »
Fetch
Décod
Mem
Exec
Fetch
Décod
Mem
Exec
Fetch
Décod
Mem
Exec
Fetch
Décod
Mem
1 instruction/cycle
Exec
Exemple : Intel Pentium 4 : 20 niveaux de pipeline
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 13
26
Séquencement des instructions
(Pipeline - Super-Pipeline)
Le séquencement pipeline permet, dans un cas idéal, d’obtenir l’exécution
d’une instruction/cycle mais il peut être intéressant de découper certaines
phases pour pouvoir augmenter les fréquences d’horloge ; on parlera alors de
structures Super-Pipeline.
5 ns
5 ns
Registre
Registre
Registre
Tampon
Registre
10 ns
H
H
H
H
H
Opérateur arithmétique
combinatoire
Opérateur arithmétique
pipeline
Fmax = 100 MHz
Fmax = 200 MHz
Exemple : le Pentium 4 possède 20 niveaux de pipeline, ce qui permet d’obtenir
une fréquence d’horloge supérieure à 3 GHz.
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
27
Pipeline
Analyse de conflits dans le pipeline
Instructions load/store :
- I : Lecture et décodage de l'instruction (Fetch),
- E : Exécution de l'instruction; calcul de l'adresse mémoire
- T : Transfert de la donnée.
Instructions registre-registre:
- I : Lecture et décodage de l'instruction (Fetch),
- E : Exécution de l'instruction; opération arithmétique ou logique entre registres,
- W : Mise à jour des registres internes - rangement du résultat.
Instructions de branchement :
- I : Lecture et décodage de l'instruction (Fetch),
- E : Exécution de l'instruction; mise à jour de l'adresse de l'instruction suivante,
Load A
M
Load B
M
Add
A+ B
C
Store M
I
E T
I
E T
Exécution séquentielle
I
E W
C
I
BranchX
E T
I
E
temps
14
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 14
28
Pipeline
Conflits de ressources
Accès simultanés à une même ressource, par exemple la mémoire.
Load
A
M
Load
B
M
I
Add
C
A+ B
Store
M
C
Branch
X
E
T
I
E
T
I
w ait w a it
Phases d’attente (Wait)
E
W
I
E
T
I
E
temps
8
Load
A
M
I
Load
B
M
Add
C
A+B
Store
M
C
E T
I wait E
T
I wait E W
I
Branch X
E T
I
Séparation des mémoires
programme et données
E
temps
(architecture Havard)
8
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
29
Pipeline
Dépendances de données
Load
A
M
Load
B
M
Add
C
A+B
I
E
T
I
E
I
T
E
W
Insertion d’une instruction NOP
Load
A
M
Load
B
M
I
E
T
I
E
T
I
E
NOP
Add
C
A+B
Store
M
C
Branch X
I
E
W
I
E
T
I
E
temps
7
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 15
30
Pipeline
Conflits de contrôle
Liés aux instructions de branchement :
l’adresse de l’instruction n’est connue qu’à la fin
de la phase d’exécution de l’instruction de branchement
Load
A
M
Load
B
M
I
Add
C
A+ B
Store
M
C
NOP
Insertion
d’une instruction NOP
E T
I
E T
I
E
I
E W
I
Branch X
NOP
E T
I
E
I
E
X : Instruction suivante
I
7
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
E
temps
31
Prédiction de Branchement
Les techniques d’accélération des traitements (pipeline, superscalaire, utilisation des
caches) ne fonctionnent bien que pour des exécutions séquentielles des instructions
; en cas de branchement (conditionnel, boucle, interruption), il faut « remettre les
pendules à l’heure » (vidage des pipeline, mise à jour des caches, …), ce qui peut
être très long !
Ainsi, pour profiter de ces structures accélératrices, il faut être capable de prédire le
déroulement du programme, ce qui n’est pas chose aisée.
Techniques de Prédiction de Branchement :
Statique :
Aucune prédiction (ex. 80486)
: 40 % de succès
On prend tout
: 60 % de succès
Prédiction rétrograde (ex. PA RISC)
: 65 % de succès
Le compilateur positionne un bit (ex. RIDGE) : 75 % de succès
Dynamique :
même comportement (ex. AMD-K5)
: 80 % de succès
Branch History Table (ex. PPC-604, Pentium) : > 85 % de succès
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 16
32
Mise en œuvre des
structures accélératrices
Pour profiter pleinement des structures superscalaires et pipeline, c’est à dire sans
temps d’attente (Wait ou NOP), l’idéal est d’ordonner correctement les instructions
(Instruction Scheduling) ; ceci peut être fait par :
Le logiciel :
un compilateur performant devrait être capable d’optimiser l’agencement des
instructions en fonction des ressources matérielles ; ceci n’est hélas pas toujours
possible (variétés de processeurs et d ’environnements, système d’exploitation, …)
Le matériel :
sur la puce, un système de contrôle peut réorganiser les instructions en fonction
des disponibilités du moment (exécution dans le désordre ou Out-Of-Order) ; le
principe est efficace mais ne peut fonctionner que sur un faible nombre
d’instructions.
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
33
Organigramme simplifié
Reset
Mise en
route
Initialisation
Arrêt
Halt ?
oui
Halt
non
Accès direct
à la mémoire
DMA ?
NMI ?
Interruption
masquable
INT ?
oui
non
non
non
septembre 09
DMA
non
Interruption
non masquable
Traitement de
l’instruction
oui
oui
Accepté ?
oui
Fetch
Sauvegarde
Execute
Saut
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 17
34
Fonctionnement sous interruption
Principe
Principe : dérouter un programme à la demande d’un organe périphérique
Programme principal
INT
1 ppppppp
2 ppppppp
Routine d’interruption
3 ppppppp
Sauvegarde du contexte
4 ppppppp
1 iiiiiiiii
5 ppppppp
2 iiiiiiiii
6 ppppppp
3 iiiiiiiii
7 ppppppp
4 iiiiiiiii
8 ppppppp
5 iiiiiiiii
9 ppppppp
6 iiiiiiiii
10 ppppppp
11 ppppppp
12 ppppppp
13 ppppppp
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
35
Hiérarchisation des interruptions
S/P IT 1
S/P IT 3
Programme principal
S/P IT 2
It1
It2
It3
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 18
36
Interruptions : Réentrance
S/P IT 1
SP
Programme principal
I=0
I=0
It1
I=3
CALL SP
CALL SP
I=10!
septembre 09
I=10
Microprocesseurs d’usage général : Introduction ; J. Weiss
37
Fonctionnement sous interruption
Contexte
En cas de demande d’interruption :
Doit-on en tenir compte ? ........notion de masquage
Qui l’a provoquée ? .................identification (N° de ligne ou vecteur)
Qui est prioritaire en cas de demande multiple?
Que doit-on sauvegarder ?
2 types d’interruption :
• Matérielle
• Logicielle
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 19
38
Fonctionnement sous interruption
Modes
NMI (Non Maskable Interrupt):
Sauvegarde du contexte et saut à une adresse fixe
INT(Maskable Interrupt) : plusieurs modes :
Mode 1 : comparable à NMI
Mode 2 : sauvegarde du contexte et attente de l’adresse
de saut sur le bus de données
Mode 3 : sauvegarde du contexte et attente d’un vecteur sur
le bus de données permettant de définir l’adresse de saut
septembre 09
Microprocesseurs d’usage général : Introduction ; J. Weiss
Page 20
39
Téléchargement