ARCHITECTURE ILP et Ordonnancement dynamique

Transcription

ARCHITECTURE ILP et Ordonnancement dynamique
Ordonnancement dynamique du P6
(Pentium Pro, II, III)
ARCHITECTURE
• Q: Comment pipeliner les inst. du 80x86 (1 à 17 octets)?
• le P6 ne pipeline pas les instructions du 80x86
• l’unité de décodage traduit les instructions Intel en
des micro-opérations de 72 bits (~ MIPS)
• ce sont les micro-opérations qui sont envoyées au
RB et aux stations de réservation
• plusieurs instructions sont traduites en 1 à 4
micro-opérations
• Les instructions complexes du 80x86 sont
traduites par un microprogramme conventionnel
(8K x 72 bits) qui lance de longues séquences de
micro-opérations
A2- 07/08
Léon Mugwaneza
ESIL/Dépt. Informatique (bureau A118)
[email protected]
ILP et Ordonnancement dynamique :
Exemples (Pentium III, Pentium 4, IBM AS/400)
Ordonnancement dynamique du P6
Pipeline du P6
• Exécution spéculative avec RB et registres de renommage
Parameter
Max. instructions issued/clock
Max. instr. complete exec./clock
Max. instr. commited/clock
Window (Instrs in reorder buffer)
Number of reservations stations
Number of rename registers
No. integer functional units (FUs)
No. floating point FUs
No. SIMD Fl. Pt. FUs
No. memory Fus
• 14 cycles dans le pipeline (~3 séquenceurs)
• 8 étages utilisés pour instruction fetch, decode, et
issue (in-order)
6 microops from 3 inst. 80x86
5 microops
3 microops
40 microops
20
40
2
1
1
1 @ calcul + 1 mem. acces
– 1 cycle pour déterminer la longueur de l’inst. + 2 cycles
pour créer les micro-opérations
• 3 étages pour l’exécution (out-of-order) dans l’une
des 5 unités fonctionnelles
• 3 étages pour la phase commit
Instr
Fetch
16B
/clk
1
16B
Instr 6 uops
Decode
3 Instr
/clk
Renaming
3 uops
/clk
Reserv. Execu- Reorder GraduStation
Buffer
tion
ation
units
3 uops
(5)
/clk
Pentium III Die photo
P6 Block Diagram
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• IP = PC
EBL/BBL - Bus logic, Front, Back
MOB - Memory Order Buffer
Packed FPU - MMX Fl. Pt. (SSE)
IEU - Integer Execution Unit
FAU - Fl. Pt. Arithmetic Unit
MIU - Memory Interface Unit
DCU - Data Cache Unit
PMH - Page Miss Handler
DTLB - Data TLB
BAC - Branch Address Calculator
RAT - Register Alias Table
SIMD - Packed Fl. Pt.
RS - Reservation Station
BTB - Branch Target Buffer
IFU - Instruction Fetch Unit (+Icache)
ID - Instruction Decode
ROB - Reorder Buffer
MS - Micro-instruction Sequencer
1st Pentium III, Katmai: 9.5 M transistors, 12.3 * 10.4 mm
in 0.25-mi. with 5 layers of aluminum
Performances du P6: uops commit/clock
Performance du P6: Speculation rate
(% instructions issued that do not commit)
go
go
m88ksim
m88ksim
gcc
gcc
compress
compress
li
li
ijpeg
ijpeg
perl
perl
0
1
2
3
vortex
vortex
tomcatv
tomcatv
swim
swim
su2cor
su2cor
hydro2d
hydro2d
mgrid
mgrid
applu
applu
turb3d
turb3d
apsi
apsi
fpppp
fpppp
wave5
0%
Average
0: 55%
1: 13%
2: 8%
3: 23%
wave5
10%
20%
30%
40%
50%
1% to 60% instructions do not commit: 20% avg (30% integer)
60%
0%
2
uops commit
uop commits
uops commit
uops commit
20%
40%
60%
80%
100%
Integer
0: 40%
1: 21%
2: 12%
3: 27%
Pentium 4
Caractéristiques du Pentium 4
• Q4 2000
• Traduit aussi les inst. 80x86 en micro-ops
• Implante un meilleur prédicteur de branchements, et
plus d’UFs
• Le cache d’Instructions contient les micro-opérations à
la place des instructions 80x86 (“trace cache” - TC)
•
•
•
•
Registres de renommage: PIII 40 vs. PIV 128;
Fenêtre : PIII 40 v. PIV 128
BTB: PIII 512 v. PIV 4096 entrées (Intel:amélioration de 1/3)
Instructions multimédia avec opérandes sur 128 bits vs. 64
bits (144 instructions nouvelles)
– Applications utilisant ces nouvelles instructions ?
– Faster Floating Point: exécute 2 inst. Fl. Pt. 64-bits par cycle
– Memory FU: 1 128-bit load, 1 128-bit store /cycle vers les regs MMX
– pas d’étapes de décodage des inst. 80x86 si cache hit
• Caches
• pour plusieurs ops. les ALUs fonctionnent à 2X la fréq. de
l’horloge
– Pentium III: L1I 16K, L1D 16K, L2 256 K
– Pentium 4: L1I 12K uops, L1D 8 K, L2 256 K
– Taille du bloc: PIII 32 octets v. P4 128 octets; 128 v. 256 bits/cycle
• Fréquence d’horloge:
– Pentium III 1 GHz v. Pentium IV 1.5 GHz (2000-2001)
• Pipeline de 14 étages vs. Pipeline à 24 étages
Pentium-4 die floor plan
Block Diagram of Pentium 4 Microarchitecture
• 42M Xtors
– PIII: 26M
• 217 mm2
– PIII: 106
mm2
• L1 Execution
Cache
– Buffer
12,000
Micro-Ops
• 8KB data
cache
• 256KB L2
cache
• BTB = Branch Target Buffer (branch predictor)
• I-TLB = Instruction TLB, Trace Cache = Instruction cache
• RF = Register File
• "Double pumped ALU" means ALU clock rate 2X => 2X ALU F.U.s
From “Pentium 4 (Partially) Previewed,” Microprocessor Report, 8/28/00
3
Une autre approche : le multithreading
INTEL : Evolution du pipeline
• Thread: processus avec ses propres instructions et
ses propres données
PREF DEC
DEC
EXEC
– un thread peut être un processus d’un programme parallèle
ou un programme indépendant
– chaque thread a son propre état (PC, registres, etc.) modifié
pendant son exécution
WB
P5 Microarchitecture
IFU1
IFU2
IFU3
DEC1
DEC2
RAT
ROB
DIS
EX
RET1 RET2
• Multithreading: plusieurs threads partagent les UFs
d’un processeur
P6 Microarchitecture
TC NextIP
TC Fetch Drive Alloc Rename Queue
Schedule
Dispatch
Reg File
– le processeur doit stocker l’état de chaque thread (ie. une
copie du PC et autres registres pour chaque thread)
– la mémoire est partagée via le mécanisme de mémoire
virtuelle
Exec Flags Br Ck Drive
NetBurst Microarchitecture
• L’exécution des threads se fait par recouvrement,
souvent par entrelacement
 Les premiers de chaque famille
– Le pentium III a eu jusqu’à 14 étages
– Les versions les plus récentes du pentium IV jusqu’à 30 étages
– quand un thread est bloqué, suite à un défaut de cache par
exemple, un autre thread peut s’exécuter
multithreading :
l’exemple de l’IBM AS/400
Multithreading :
l’exemple de l’IBM AS/400
• Processeur IBM Power III, “ Pulsar”
• Pulsar: 2 copies des registres & PC
• impact sur la taille de la puce < 10%
• Un registre spécial contient le nombre
maximum de cycles entre deux commutations
de threads:
– microprocesseur PowerPC qui supporte 2 produits IBM : la
série RS/6000 et la série AS/400
– les deux produits visaient les serveurs pour applications
commerciales
– de telles applications ont des taux de défaut de cache et des
taux de défaut de TLB très élevés et donc un CPI bas
– Pour éviter la famine de l’autre thread
• Implante le multithreading pour améliorer le débit en
utilisant le processeur pendant le traitement des
défauts de caches ou de TLB
• Pulsar supporte 2 threads
• on change de thread, seulement lorsque le blocage
est long
4
Simultaneous Multithreading (SMT)
Simultaneous Multithreading (SMT)
Superscalar
Multithreading
SMT
Time (Processor cycle)
• Simultaneous multithreading (SMT):
– Les processeurs superscalaire à
ordonnancement dynamique ont déjà beaucoup
de mécanismes HW pour supporter le
multithreading
– un grand ensemble de registres de renommage
qui peuvent être utilisés comme registres de
threads indépendants
– out-of-order completion : les threads peuvent
s’exécuter dans le desordre => meilleure
utilisation du HW
Unutilized
Thread 1
Thread 2
Thread 3
Thread 4
Thread 5
Issue slots
Simultaneous Multithreading (SMT)
Contenu du cours
• Il suffit d’ajouter une unité de renommage par
thread et avoir un PC par thread
Livre de référence :
Hennessy and Patterson, « Computer Architecture:
A Quantitative Approach », 3rd Ed., (Morgan Kaufman
Publishers, 2003)
– le commit indépendant peut se faire en maintenant un
RB séparé par thread
On a multiprogramming workload
comprising a mixture of SPECint95
and SPECfp95 benchmarks, Compaq
claims the SMT it simulated
achieves a 2.25X higher throughput
with 4 simultaneous threads than
with just 1 thread. For parallel
programs, 4 threads 1.75X v. 1
+ Fondements de la conception des ordinateurs (Chapitre 1)
+ Pipelining & Parallélisme niveau instruction (Appendice A,
Chapitres 3, 4)
± Hiérarchie mémoire (Chapitre 5)
– Multiprocesseurs (Chapitre 6)
– Entrées/Sorties et Stockage (Chapitre 7)
– Réseaux d’interconnexion et clusters (Chapitre 8)
Source: Micrprocessor Report, December 6, 1999
“Compaq Chooses SMT for Alpha”
• Jeux d ’Instructions - ISA- (Chapitre 2, Appendice D,E)  cf A1
• Qui extrait le parallélisme niveau thread ?
5