Superescalar

Presenter Notes

Resumen:

  • OoO
  • 1<IPC
  • Múltiples unidades de ejecución.

Nicolás Wolovick 20200330

Presenter Notes

Ejecución Fuera de Orden (OoO)

  • Planificación dinámica de las operaciones.
  • Rellenar huecos que produce RAW mediante ejecución fuera de órden.
  • Esto también sirve para rellenar cualquier hueco!
    • Latencia memoria (L1, L2, L3, DRAM)
    • Latencia operaciones complejas como división
  • Evitar WAW y WAR mediante renombre de registros

Pros&Cons

  • (+) Se acerca al IPC ideal.
  • (-) Incrementa el área.
  • (-) Incrementa la potencia.

Presenter Notes

Notas históricas IBM "janitor letter"

Presenter Notes

CPUs

  • En orden: Intel Atom, ARM Cortex-A8 (Apple A4, TI OMAP 3), ARM Cortex-M.
  • Fuera de orden: ≥Pentium Pro, ARM Cortex A9 (Apple A5, NV Tegra 2/3, TI OMAP 4).

Arquitectura BIG.little de ARM

Presenter Notes

¿Cuánto paralelismo puedo extraer?

Es increíble como todavía le pueden sacar jugo a la secuencialidad.

Koen Crijns, Intel five generation IPC test: Broadwell, Haswell, Ivy Bridge, Sandy Bridge and Nehalem, Hardware.Info, 2015

Presenter Notes

¡Aun más paralelismo!

Timothy Prickett Morgan, The Huge Premium Intel Is Charging For Skylake Xeons, Sep 1 2017.

Presenter Notes

Procesadores superescalares

  • Estamos limitados a IPC≤1, a menos que ...

Superescalar

Aumenta el ancho del pipeline.

Superescalar CPU Core

(Penn CIS565)

El IPC pico es N para un N-way superscalar µP.

Presenter Notes

Superescalar en Nehalem

Nehalem Execution Engine

(Anand Lal Shimpi)[http://en.wikipedia.org/wiki/Anand_Lal_Shimpi], Haswell's Wide Execution Engine, Anandtech, 2012.

Presenter Notes

Superescalar en Sandy Bridge

Sandy Bridge Execution Engine

(Anand Lal Shimpi)[http://en.wikipedia.org/wiki/Anand_Lal_Shimpi], Haswell's Wide Execution Engine, Anandtech, 2012.

Presenter Notes

Superescalar en Haswell

Haswell Execution Engine

(Anand Lal Shimpi)[http://en.wikipedia.org/wiki/Anand_Lal_Shimpi], Haswell's Wide Execution Engine, Anandtech, 2012.

Presenter Notes

Superscalar en Skylake-X

Ian Cutress, The Intel Skylake-X Review: Core i9 7900X, i7 7820X and i7 7800X Tested, Anandtech, June 2017.

Presenter Notes

Superscalar en Skylake-X

Presenter Notes

Discusión: the free lunch is over

Mucha área del µP destinada a descubrir paralelismo.

¡Ya no paga más! Law of diminishing returns.

Solución

Pasarle la pelota al programador/compilador.

Explicitar el paralelismo.

  • Simultaneous Multithreading -- SMT (Hyperthreading™).
    • Utilizar unidades funcionales ociosas con otro hilo.
    • Más libertad al planificador OoO.
    • Necesita de un juego alternativo de registros para hacer el cambio.
  • Multicore.

Presenter Notes

Xeon Ivy Bridge

Ivy Bridge floor plan

(Xeon E5-2680)

8 copias de lo mismo, 8 cores.

Presenter Notes

Xeon Ivy Bridge, un core

Xeon E5 core

Gran porcentaje de la superficie para extraer paralelismo y mitigar el memory wall.

Presenter Notes

SMT, aka Hyperthreading™

Symmetric Multithreading

Four threads using superscalar in different ways, COaD5 Figure 6.5

Presenter Notes

SMT, ¿Vale la pena?

Speedup and energy efficiency of using one core with SMT on Core i7, COaD5 Figure 6.6

En promedio

  • Desempeño: 1.31x
  • Eficiencia energética: 1.07x

Presenter Notes

Nuevas instrucciones

Growth of x86 instruction set over time. COaD5

Modelo tick-tock de Intel

Tick: die shrink.
Tock: new microarchitecture.

  • Gran crecimiento de instrucciones en el tock.
  • Pero también el en tick, pequeñas lavadas de cara.
    • Instrucción nueva para RNG RDRAND en Ivy Bridge.

Presenter Notes

Tick-tock model

Presenter Notes

Presenter Notes

Nuevas instrucciones

New haswell instructions

Presenter Notes

Nuevas instrucciones, ¡Lío!

Presenter Notes

Tradeoff #instrucciones vs. complejidad

Michael Steil, Christian Hessmann, The Ultimate Apollo Guidance Computer Talk, 2017.

Presenter Notes

Resumen: Trucos para una CPU rápida

  • Paralelismo de instrucciones: ILP
    • Pipelining.
    • Branch prediction.
    • Superscalar.
    • Out-of-Order (OoO) Execution.
  • Nuevas instrucciones.
  • Jerarquía de Memoria.
  • Paralelismo de Datos: DLP
    • Operaciones Vectoriales.
  • Paralelismo de Hilos: TLP
    • SMT.
    • Multicore.

Presenter Notes

Los tres niveles de paralelismo

  • Instrucciones: ILP
  • Datos: DLP
  • Hilos: TLP

Por ahora solo uno.

Presenter Notes

Bibliografía

Presenter Notes

Bibliografía

Presenter Notes

La clase que viene

  • Memory wall.

Presenter Notes