Please enable JavaScript.
Coggle requires JavaScript to display documents.
Les microprocesseurs (Instruction Level Parallelism (Pipeline (Sérialise…
Les microprocesseurs
Instruction Level Parallelism
Pipeline
Sérialise les instructions
Augmente vitesse traitement
1 instruction/cycle
Doit se vider selon résultats (exception, saut)
Superscalaire
Traitement parallèle
/= plusieurs coeurs
Dépendance de données
Read After Write
Write After Write
Performances
Temps/Cycle
Cycles/Instruction
Instructions/programme
Indicateurs
MIPS
FLOPS
IPC
Out-Of-Order
Execution dans le désordre
Instr. entrent et sortent dans l'ordre
Réduit latences (accès mémoire, etc.)
Programme exécuté selon le flux de données (et pas flux d'instructions)
VLIW
Grandes instructions (64...128bits)
Plusieurs opérations par instruction
Traitement des instructions
IF
ID
EXE
MEM
WB
Architecture générale
Couche 0 : circuits logiques
Transistors
Registres
Généraux
Program Counter
Status
Stack Pointer
...
Mémoire
Analogique
Couche 1 : micro-architecture
Taxonomie de Flynn
SISD
Harvard
Instructions et données séparées (2 mémoires)
Plus couteuse
Von Neumann
Instruction et données communes (1 mémoire)
La plus répandue
SIMD
GPU
MISD
MIMD
Processeur récents (multi-coeurs)
Classer selon flux d'instructions et flux de données
Influence sur la performance
Couche 2 : Jeux d'instructions
Vision de la machine par le compilateur
Influence sur les possibilités
Types d'instructions
Logiques et arithmétiques
Manipulation de registres
Accès mémoire
Flux (saut, branchement)
Catégories
CISC
Manipulation complexe
Accès mémoire + opérations
Plusieurs cycles / instruction
Taille variable
Adressage complexe
Intel, AMD, ...
RISC
1 cycle/instruction
1 (voire 2) opération / instruction
Taille fixe
ARM, MIPS, SPARC
VLIW
Plusieurs opérations / instructions dans un grand mot
Vectorielle
Caches
Plusieurs niveaux
L1 (le plus rapide) à L3 (le plus lent)
2x L1 (instructions/données)
Niveau inférieur contient niveau supérieur
Principe de localité
Spatialle
Temporelle