Post on 05-Feb-2018
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 1
Architecture des Systèmes Programmés
(6 conférences)
Architectures CISC et VLIW : J.Weiss 4 conférencesMicroprocesseurs 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érencesProcesseurs RISC (PowerPC, Alpha, ...)DSP (TMS320, 56000, ...)Bus de communications
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 2
Architectures
ZISC : Zero Instruction Set ComputerAutrement dit : Processeur Câblé (et donc PAS programmé)
CISC : Complex Instruction Set ComputerProcesseur possédant un jeu d’instructions fourni de longueur et de temps d’exécution variables.
VLIW : Very Long Instruction WordProcesseur possédant un jeu d’instructions encore plus fournique le cas du CISC (longueur et temps d’exécution variables).
RISC : Reduced Instruction Set ComputerProcesseur possédant un jeu d’instructions réduit de longueur et de temps d’exécution fixes
Page 1
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 3
Microprocesseurs d’usage généralà architecture CISC
Architecture de base des microprocesseursHistorique de l’informatique et des MicroprocesseursALU, RegistresComposants périphériques
Microprocesseurs et Microcontrôleurs 8 bitsMicroprocesseurs 16 bits
Gestion de mémoire virtuelle, caches
Microprocesseurs 32 bits1ère Génération : 80386, 680202ème Génération : Pentium3ème Génération : Pentium Pro, Pentium II4ème Génération : Pentium 4, TransMeta
Microprocesseurs 64 bits
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 4
50 ans d’histoire del’industrie informatique
ENIAC :1er Ordinateur
1947
Mise au pointdu transistor
1948
1er ordinateurIBM
1955
Fondation deFairchild SC
1957
Invention ducircuit intégré
(Kilby et Noyce)
1958-59
Mini-ordinateurDEC
1963
Fondation d’Intel
1968
1971
1er µP1ère EPROM
Intel
Fondation deMicrosoft
1975
1977
Apple II
1981
IBM-PC
1985
386
1989
486
1993
Pentium
1997
Pentium II
2000
Pentium 4
Page 2
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 5
É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 6
Historique des Microprocesseurs CISC
1960 Premiers CI1964 SSI AND, OR1968 MSI Registres1971 LSI DRAM 1 kbits, µP 4 bits (4004d’Intel)2,3 kT1972 8 bits 1ère G. 8008(Intel)1973 8 bits 2ème G. 8080 (Intel), 6800(Motorola)1975 8 bits 3ème G. 8085(Intel), 6809(Motorola), Z80 (Zilog)1976 16 bits 1ère G. TMS 9900(Texas Instruments)1978 16 bits 1ère G. 8086(Intel) IBM-PC/XT1979 16 bits 1ère G. 68000(Motorola) MAC1982 16 bits 2ème G. 80286(Intel) IBM-PC/AT1983 32 bits 1ère G. 32032(National)1984 32 bits 1ère G. 80386 (Intel), 68020(Motorola)1987 32 bits 1ère G. 68030(Motorola) SUN31989 32 bits 2ème G. 80486(Intel)1,2 MT1993 32 bits 3ème G. Pentium(Intel)1995 32 bits 3ème G. PentiumPro(Intel)1997 32 bits 3ème G. Pentium II(Intel)
5,5 MT
2000 32 bits 4ème G. Pentium 4(Intel)42 MT2007 32 bits 4ème G. Core 2 Quad(Intel)580 MT2008 64 bits 2ème G. Itanium 2 dual core(Intel)1900 MT
Page 3
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 7
Création d’Intel :les «Fairchildren»
Bob Noyce: FondateurInvention du circuit intégré en 1959Fondateur et ex dirigeant de Fairchild Semiconductor
Gordon Moore : FondateurInvention du circuit intégré en 1959Fondateur et ex responsable R&D de Fairchild Semiconductor
Andy Grove : N°4 d’IntelDocteur en ChimieEx responsable de fabrication de Fairchild Semiconductor
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 8
Les débuts d’Intel
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²
2300 T
1971 : Commercialisation du premier microprocesseur : 4004
Page 4
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 9
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 2ndesSources
Environnement : existence de périphériquesde 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 10
Technologie des microprocesseursLoi de Moore
Nom
bre
de
tra
nsi
stor
s
Temps
1 k
10 k
100 k
1 M
10 M
100 M
1970 1975 1980 1985 1990 1995 2000
40048080
8086
286
386
486Pentium
Pentium II
Pentium 4
Page 5
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 11
Technologie des microprocesseursLoi de Moore
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 12
Technologies SiliciumEvolutions de la Puissance consommée
Dual-Core
40048008
80808085
8086286
386486
Pentium®
0.1
1
10
100
1000
10000
100000
1971 1974 1978 1985 1992 2000 2004 2008Année
Pui
ssan
ce (W
atts
)
Page 6
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 13
Technologie des ordinateursLoi 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 14
Marché des microprocesseurs
4 bits
8 bits
16 bits
64 bits
32 bits
CalculatricesJeux vidéoµsystèmes
Systèmes programmésMicrocontrôleurs (carte à puce)
Systèmes embarqués (ABS, Injection)
Micro-ordinateurs
Stations de travail, PlayStation
Page 7
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 15
Marché des processeurs
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 16
CPU
Système programmé
Unité decommande
Unitéd’entrée
Unitéde sortie
Registres
ALU
Mémoire
bus d’adresses bus de données
bus
d’entrée
bus de
sortie
Page 8
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 17
Système programméConstitution
ProcesseurElément central du système, il constitue les cœur et est défini par son jeu d'instructions et ses registres
Cœur
PoumonsMémoireMémoire centrale, en liaison avec le processeur, elle stocke les programmes et les données
MembresPériphériques et coupleursPermettent au système de communiquer avec l'extérieur
ArtèresBusPour 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 18
Éléments de base d’un processeur
PC : Compteur OrdinalSert à pointer sur la prochaine instruction
SP : Pointeur de PileSert à pointer sur le sommet de la pile
IX : Registre d’indexSert à indexer un segment mémoire
ALU : Opérateur arithmétique et logiqueCœur du processeur, il est associé à un décaleur
A : AccumulateurStocke les données intermédiaires
B, C, ... : RegistresÉléments de stockage à adressage implicite
Partie Opérative
Registres «Adresses»
Registres «Données»
Page 9
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 19
Mono-Bus
ALU
Accumulateur
Bus de données
Sta
tus
BCZ
Registres internes
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 20
Accumulateur
ALU
Z C B
Sta
tus
Double-bus
Bus de données (entrée)
Bus de données (sortie)
Page 10
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 21
Triple-bus
Bus de données (sortie)
Sta
tus
ALU
Z C B A
Bus de données (entrées 1 & 2))
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 22
Architecture d’µP 8 bits
ALU
Accumulateur
NHVZC
Décaleur
8bus de données
Registres 8 bits(données)
PC
SP
IX
bus d’adresses
16
Reg
istr
es 1
6 bi
ts(a
dres
ses)
Page 11
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 23
Fonctionnement séquencé
Mémoire
Code opératoire
Décodage
Opérandes
Exécution
Résultat
Microprocesseur
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 24
AccélérationPerformances d’un processeur
Temps par tâche= I.C.TI = 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 + complexesArchitectures CISC et VLIW
Paramètre CNé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
Page 12
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 25
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 structuressuperscalaires ; les processeurs actuels comptent de 3 à 4 unités de calcul entier et de1 à 2 unités de calcul flottant fonctionnant en parallèle
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 26
Accélération Séquencement des instructions
• Exécution séquentielleFetch Décod Mem Exec
Fetch Décod Mem Exec
Fetch Décod
Fetch
Mem
Décod
Fetch
Exec
Mem
Décod
Fetch
Exec
Mem
Décod
Exec
Mem Exec
• Exécution « pipelined »
1 instruction/4 cycles
1 instruction/cycle
Exemple : Intel Pentium 4 : 20niveaux de pipeline
Page 13
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 27
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.
10 ns5 ns 5 ns
Reg
istre
H
Reg
istre
H
Reg
istre
H
Reg
istre
H
Tam
pon
H
Fmax = 100 MHz Fmax = 200 MHz
Opérateur arithmétiquecombinatoire
Opérateur arithmétiquepipeline
Exemple : le Pentium 4 possède 20 niveaux de pipeline, ce qui permet d’obtenirune fréquence d’horloge supérieure à 3 GHz.
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 28
PipelineAnalyse de conflits dans le pipeline
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.
I E TLoad A M
I E TLoad MB
I E TStore M C
I EAdd C A + B W
BranchX I Etemps
14
Exécution séquentielle
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 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,
Page 14
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 29
PipelineConflits de ressources
Accès simultanés à une même ressource, par exemple la mémoire.
Phases d’attente (Wait )
I E
T
E
I E
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
X
temps
I
I W
E
E
wait
T
wait
T
8
I E
T
E
I E
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
X
temps
I
I W
E
E
wait
T
wait
T
8
Séparation des mémoiresprogramme et données
(architecture Havard)
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 30
PipelineDépendances de données
I E T
E T
E
I E T
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
X
temps
I
I
E
EINOP
W
7
I E T
E T
E
Load
Load
A M
MB
Add C A + B
I
I W
Insertion d’une instruction NOP
Page 15
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 31
Pipeline Conflits de contrôle
Liés aux instructions de branchement :l’adresse de l’instruction n’est connue qu’à la finde la phase d’exécution de l’instruction de branchement
Insertiond’une instruction NOP
I E T
E T
E
I E T
I
Load
Load
Add
Store
Branch
A M
M
C
B
A + B
M C
X
temps
I
I
E
EINOP
W
7
INOP E
IInstruction suivante EX :
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 32
Prédiction de Branchement
Statique :Aucune prédiction (ex. 80486) : 40 % de succèsOn prend tout : 60 % de succèsPrédiction rétrograde (ex. PA RISC) : 65 % de succèsLe compilateur positionne un bit (ex. RIDGE) : 75 % de succès
Dynamique :même comportement (ex. AMD-K5) : 80 % de succèsBranch History Table (ex. PPC-604, Pentium) : > 85 % de succès
Techniques de 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 ledéroulement du programme, ce qui n’est pas chose aisée.
Page 16
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 33
Mise en œuvre desstructures accélératrices
Pour profiter pleinement des structures superscalaires et pipeline, c’est à dire sanstemps 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 fonctiondes 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 34
Organigramme simplifié
Initialisation
ResetMise enroute
Halt ? oui
non HaltArrêt
DMA ? oui
non DMA
Accès directà la mémoire
NMI ? oui
non
Interruptionnon masquable
INT ? oui
nonAccepté ?oui
non
Interruptionmasquable
SauvegardeFetch
SautExecute
Traitement del’instruction
Page 17
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 35
Fonctionnement sous interruptionPrincipe
Principe : dérouter un programme à la demande d’un organe périphérique
Programme principal
1 ppppppp2 ppppppp3 ppppppp4 ppppppp
INTSauvegarde du contexte
Routine d’interruption
1 iiiiiiiii2 iiiiiiiii3 iiiiiiiii4 iiiiiiiii5 iiiiiiiii6 iiiiiiiii
5 ppppppp6 ppppppp7 ppppppp8 ppppppp9 ppppppp
10 ppppppp11 ppppppp12 ppppppp13 ppppppp
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 36
Hiérarchisation des interruptions
It3
Programme principal S/P IT 3
It1
S/P IT 1
It2
S/P IT 2
Page 18
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 37
Interruptions : Réentrance
It1
S/P IT 1
CALL SP
CALL SP
Programme principal SP
I=0
I=3
I=0
I=10I=10!
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 38
Fonctionnement sous interruptionContexte
En cas de demande d’interruption :Doit-on en tenir compte ? ........notion de masquageQui 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
Page 19
septembre 09 Microprocesseurs d’usage général : Introduction ; J. Weiss 39
Fonctionnement sous interruptionModes
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’adressede 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
Page 20