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