Ch3 : Les Processeurs Superscalairs Niar Smail Master 1 ISECOM UVHC-ISTV Smail.Niar@univ-valenciennes.fr Smail.Niar@univ-valenciennes.fr
3.1 Rappel des notions vues sur le Pipeline B C D 6 PM 7 8 9 T a s k O r d e Time 30 40 20 Le pipeline n’améliore pas la latence d’une instruction. Il faut 5 cycles pour une inst. Mais le temps pour exécuter toute la charge (le prog) est réduit Plusieurs instructions exécutées en // (ILP Instruction Level Parallelism) speedup idéal = Nombre d’étages La vitesse du pipeline est limitée par la phase la plus longue (synchronisation sur le plus long) Smail.Niar@univ-valenciennes.fr
3.2 Est ce qu ’il est possible d’avoir un CPI < 1 ? CPI < 1 : implique moins d ’un cycle pour exécuter une instruction !!!!! Impossible Mais : Exécuter plusieurs instructions par cycle : possible ex : si on peut exécuter deux instructions en parallèle par cycle. On a CPI = 1/2!!! Bravo Smail.Niar@univ-valenciennes.fr
Architecture MIPS Avec 2 instructions/Cycle Morgan Kaufmann Publishers 26 November, 2017 Architecture MIPS Avec 2 instructions/Cycle Un paquet de 2 instructions est exécuté par cycle (ordonnancement statique) 1 ALU/branch instruction 1 load/store instruction Les instructions sont alignées sur 64-bit ALU/branch, ensuite load/store Si non, on met NOP Address Instruction type Pipeline Stages n ALU/branch IF ID EX MEM WB n + 4 Load/store n + 8 n + 12 n + 16 n + 20 Chapter 4 — The Processor
Deux versions : Superscalaire et VLIW (very long instruction word) 1/ Un processeur superscalaire un processeur capable d ’exécuter plusieurs instructions par cycles horloge la sélection des instructions à lancer est réalisée dynamiquement (cours de l ’exécution) 2/ Un processeur VLIW (Very long instruction Word) un processeur capable d ’exécuter plusieurs instructions par cycle horloge Une instruction VLIW est une concaténation de plusieurs instructions simples exécutées simultanément La sélection des instructions // est faite par le compilateur avant exécution Smail.Niar@univ-valenciennes.fr
Superscalar Multiple copies of datapath execute multiple instructions at once Dependencies make it tricky to issue multiple instructions at once Smail.Niar@univ-valenciennes.fr
Ideal IPC: 2 Actual IPC: 2 Smail.Niar@univ-valenciennes.fr
Superscalar Ideal IPC: 2 Actual IPC: 6/5 = 1.2 Smail.Niar@univ-valenciennes.fr
LDR R8, [R0, #40] ADD R9, R8, R1 SUB R8, R2, R3 Ideal IPC: 2 AND R10, R4, R8 Actual IPC: 6/4 = 1.5 ORR R11, R5, R6 STR R7, [R11, #80] Smail.Niar@univ-valenciennes.fr
Les superscalaires Vs. Les VLIW Smail.Niar@univ-valenciennes.fr
SS Vs. VLIW Smail.Niar@univ-valenciennes.fr
Pour avoir un CPI<1, il faut lancer plusieurs instructions par cycle, Un exemple Superscalar MIPS: 2 instructions par cycle: Un pour les instruction flottantes (ADDS, ADDD, SUBS, SUBD, ….) Un pour le reste des instructions (Ins. Entier, Ins. Mémoire, Branch…) Lire (Fetch) 64-bits/cycle horloge Type Pipe Stages Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Int. instruction IF ID EX MEM WB FP instruction IF ID EX MEM WB Smail.Niar@univ-valenciennes.fr
Sperscalaire VS. VLIW Point commun : Superscalaire (SS) et VLIW lancement de plusieurs instructions en parallèle Différences : 1 lancement SS les instructions sont lancées depuis un programmes séquentiel VLIW : le compilateur arrange les instructions en t-uples 1 tuple = groupe d’instructions sans aucune dépendance Smail.Niar@univ-valenciennes.fr
Principe des processeurs superscalaires Smail.Niar@univ-valenciennes.fr
The Opteron X4 Microarchitecture Morgan Kaufmann Publishers 26 November, 2017 The Opteron X4 Microarchitecture 72 physical registers §4.11 Real Stuff: The AMD Opteron X4 (Barcelona) Pipeline Chapter 4 — The Processor — 15 Chapter 4 — The Processor
Dynamic Multiple Issue Morgan Kaufmann Publishers 26 November, 2017 Dynamic Multiple Issue “Superscalar” processors CPU decides whether to issue 0, 1, 2, … each cycle Avoiding structural and data hazards Avoids the need for compiler scheduling Though it may still help Code semantics ensured by the CPU Chapter 4 — The Processor — 16 Chapter 4 — The Processor
Dynamic Pipeline Scheduling Morgan Kaufmann Publishers 26 November, 2017 Dynamic Pipeline Scheduling Allow the CPU to execute instructions out of order to avoid stalls But commit result to registers in order Example lw $t0, 20($s2) addu $t1, $t0, $t2 sub $s4, $s4, $t3 slti $t5, $s4, 20 Can start sub while addu is waiting for lw Chapter 4 — The Processor — 17 Chapter 4 — The Processor
Cortex A8 and Intel i7 Processor ARM A8 Intel Core i7 920 Market Personal Mobile Device Server, cloud Thermal design power 2 Watts 130 Watts Clock rate 1 GHz 2.66 GHz Cores/Chip 1 4 Floating point? No Yes Multiple issue? Dynamic Peak instructions/clock cycle 2 Pipeline stages 14 Pipeline schedule Static in-order Dynamic out-of-order with speculation Branch prediction 2-level 1st level caches/core 32 KiB I, 32 KiB D 2nd level caches/core 128-1024 KiB 256 KiB 3rd level caches (shared) - 2- 8 MB §4.11 Real Stuff: The ARM Cortex-A8 and Intel Core i7 Pipelines Chapter 4 — The Processor — 18
ARM Cortex-A8 Performance Chapter 4 — The Processor — 19
Core i7 Pipeline Chapter 4 — The Processor — 20
Core i7 Performance Chapter 4 — The Processor — 21