La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Ch3 : Les Processeurs Superscalairs

Présentations similaires


Présentation au sujet: "Ch3 : Les Processeurs Superscalairs"— Transcription de la présentation:

1 Ch3 : Les Processeurs Superscalairs
Niar Smail Master 1 ISECOM UVHC-ISTV

2 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)

3 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

4 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

5 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

6 Superscalar Multiple copies of datapath execute multiple instructions at once Dependencies make it tricky to issue multiple instructions at once

7 Ideal IPC: 2 Actual IPC: 2

8 Superscalar Ideal IPC: 2 Actual IPC: 6/5 = 1.2

9 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]

10 Les superscalaires Vs. Les VLIW

11 SS Vs. VLIW

12 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

13 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

14 Principe des processeurs superscalaires

15 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

16 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

17 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

18 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 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

19 ARM Cortex-A8 Performance
Chapter 4 — The Processor — 19

20 Core i7 Pipeline Chapter 4 — The Processor — 20

21 Core i7 Performance Chapter 4 — The Processor — 21


Télécharger ppt "Ch3 : Les Processeurs Superscalairs"

Présentations similaires


Annonces Google