Arquitecturas de computadores avanzadas, Módulo 3: Arquitecturas

Click here to load reader

  • date post

    06-Jan-2017
  • Category

    Documents

  • view

    230
  • download

    7

Embed Size (px)

Transcript of Arquitecturas de computadores avanzadas, Módulo 3: Arquitecturas

  • Arquitecturasmultihilo Francesc GuimIvan Rodero PID_00184816

  • CC-BY-NC-ND PID_00184816 Arquitecturas multihilo

    Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario a una licencia deReconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa de Creative Commons. Podis copiarlos, distribuirlosy transmitirlos pblicamente siempre que citis el autor y la fuente (FUOC. Fundacin para la Universitat Oberta de Catalunya),no hagis de ellos un uso comercial y ni obra derivada. La licencia completa se puede consultar en http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es

    http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es

  • CC-BY-NC-ND PID_00184816 Arquitecturas multihilo

    ndice

    Introduccin............................................................................................... 5

    Objetivos....................................................................................................... 7

    1. Motivacin............................................................................................ 9

    2. Preliminares: lmites del paralelismo a nivel de instruccin. 10

    2.1. Mquina perfecta ........................................................................ 11

    2.2. Impacto de la ventana de instrucciones ..................................... 12

    2.3. Impacto del predictor de saltos .................................................. 13

    2.4. Impacto de los registros de renombre o renaming....................... 15

    2.5. Conclusiones ............................................................................... 16

    3. Paralelismo a nivel de hilo de ejecucin o multithreading..... 18 4. Arquitecturas super-threading........................................................ 21

    4.1. La comparticin fina ................................................................... 21

    4.2. La comparticin gruesa ............................................................... 23

    5. Arquitecturas con multihilo simultneo.................................... 24

    5.1. Conversin del paralelismo a nivel de hilo en paralelismo a

    nivel de instruccin .................................................................... 25

    5.2. Diseo de un SMT ...................................................................... 26

    5.3. Complejidades y retos en las arquitecturas SMT ........................ 28

    5.4. Implementaciones comerciales de la SMT .................................. 29

    5.4.1. El Hyper-Threading de Intel .......................................... 29

    5.4.2. El Alpha 21464 .............................................................. 33

    5.5. Conclusiones ............................................................................... 35

    6. Arquitecturas multincleo.............................................................. 37

    6.1. Limitaciones del SMT y arquitecturas super-threading.................. 37

    6.1.1. Escalabilidad y complejidad .......................................... 37

    6.1.2. Consumo energtico y rea ........................................... 38

    6.1.3. Produccin ..................................................................... 38

    6.2. El concepto de multincleo ........................................................ 39

    6.3. Variante de multincleo con L3 y directorio ............................. 42

    6.4. Diseo de arquitecturas multincleo .......................................... 44

    6.4.1. Las interconexiones ....................................................... 44

    6.4.2. Coherencia ..................................................................... 49

    6.5. Conclusiones ............................................................................... 56

  • CC-BY-NC-ND PID_00184816 Arquitecturas multihilo

    Resumen....................................................................................................... 57

    Actividades.................................................................................................. 59

    Bibliografa................................................................................................. 60

  • CC-BY-NC-ND PID_00184816 5 Arquitecturas multihilo

    Introduccin

    Durante muchos aos, el rendimiento de los procesadores se ha ido incremen-

    tando y ha explotado el nivel de paralelismo inherente al flujo de instruccio-

    nes de una aplicacin. En 1971, se lanz a la venta el primer microprocesador

    simple, el denominado Intel 4004. Este procesador, de 4 bits, estaba formado

    por una sola unidad aritmtico-lgica: un banco de registros con 16 entradas y

    un conjunto de 46 instrucciones. En 1974, Intel fabric un nuevo micropro-

    cesador de propsito general de 8 bits, el 8080, que contena 4.500 transistores

    y era capaz de ejecutar un total de 200.000 instrucciones por segundo.

    Desde estos primeros procesadores, en los que tan solo se podan ejecutar

    200.000 instrucciones por segundo, se ha llegado a arquitecturas tipo Sandy

    Bridge (Intel) o AMDfusion (AMD) en las que se pueden llegar a ejecutar apro-

    ximadamente 2.300 billones de instrucciones por segundo. Con el fin de lo-

    grar este incremento del rendimiento, a grandes rasgos, se distinguen dos tipos

    de mejoras importantes aplicadas a los primeros modelos antes mencionados:

    tcnicas asociadas a explotar el paralelismo de las instrucciones y tcnicas aso-

    ciadas a explotar el paralelismo inherente de las aplicaciones multihilo.

    El primer conjunto de tcnicas consisti en tratar de explotar el nivel de para-

    lelismo de las instrucciones que formaban una aplicacin (instruction level pa-

    rallelism, ILP, de ahora en adelante). Ejemplos de procesadores que las usaron

    son VAX 78032, PowerPC 601, los Intel Pentium o bien los AMD K5 o AMD K6.

    Dentro de este primer grupo de mejoras hay, entre otros, arquitecturas super-

    escalares, ejecucin fuera de orden de instrucciones y tcnicas de prediccin o

    very long instruction word (VLIW) (Fisher, 1893). Estas ltimas optimizaciones

    eran bastante interesantes desde el punto de vista del ILP, dado que se basaban

    en la posibilidad que tienen los compiladores de mejorar la planificacin de

    las instrucciones. De este modo, el procesador no necesita llevarlas a cabo.

    El segundo conjunto de tcnicas intenta explotar el paralelismo asociado a los

    hilos que componen las aplicaciones. Durante las dcadas entre 1990 y 2010,

    la cantidad de hilos que componen las aplicaciones ha aumentado notoria-

    mente. Se pas del uso de pocos hilos de ejecucin al uso de miles de hilos por

    aplicacin. Un claro ejemplo de este tipo de aplicacin son las empleadas por

    los servidores, por ejemplo Apache o Tomcat. Sin embargo, tambin encontra-

    mos aplicaciones multihilo en los ordenadores domsticos. Ejemplos de estas

    aplicaciones son mquinas virtuales como Parallels y VMWare o navegadores

    como Chrome o Firefox.

  • CC-BY-NC-ND PID_00184816 6 Arquitecturas multihilo

    Para apoyar este tipo de aplicaciones, el hardware ha ido evolucionando de

    manera natural a causa de esta demanda creciente de paralelismo. Tal como

    se ve a continuacin, esta tendencia se hizo patente con los primeros proce-

    sadores con simultaneous multithreading y se ha confirmado con la aparicin

    de sistemas multincleo.

  • CC-BY-NC-ND PID_00184816 7 Arquitecturas multihilo

    Objetivos

    Los principales objetivos que debe alcanzar el estudiante con este mdulo di-

    dctico son los siguientes:

    1. Ver las limitaciones inherentes a las arquitecturas de procesador que ex-

    plotan solo el paralelismo a nivel de instruccin.

    2. Entender cules son los beneficios de usar arquitecturas que explotan el

    paralelismo a nivel de hilo.

    3. Conocer qu tipo de arquitecturas multihilo hay y cules son las propie-

    dades de cada una.

    4. Entender cmo se puede mejorar el rendimiento de los procesadores ex-

    plotando el paralelismo a nivel de hilo y a nivel de instruccin a la vez.

    5. Saber en detalle los diferentes tipos de arquitecturas multihilo y el diseo

    de algunos procesadores comerciales que se han diseado.

    6. Entender en detalle las arquitecturas multincleo y las diferentes caracte-

    rsticas que pueden hacer variar ms el diseo y rendimiento.

  • CC-BY-NC-ND PID_00184816 9 Arquitecturas multihilo

    1. Motivacin

    La tendencia de evolucin del rendimiento de los procesadores es duplicarse

    cada ao respecto al ao anterior. Este rendimiento tiene lugar gracias a dos

    factores: una mejora del proceso y una mejora de la arquitectura. Estos facto-

    res se denominan tics y tacs, respectivamente. En las lneas de procesadores

    actuales (por ejemplo, la gama de servidores de Intel conocida como Xeon;

    Rusu, Tam, Muljono, Ayers y Chang, 2006), estos dos factores se van interca-

    lando (un procesador es un tic y el siguiente es un tac).

    El primer factor es un factor tecnolgico asociado al proceso de fabricacin.

    Los transistores cada vez son ms pequeos y esto permite incrementar el ta-

    mao de los recursos sin aumentar el del procesador (por ejemplo, duplicar el

    tamao de la memoria cach o el nmero de bits que los buses pueden trans-

    mitir). Este incremento de capacidad se traduce claramente en una mejora del

    rendimiento.

    El segundo pretende sacar rendimiento de cambios arquitectnicos importan-

    tes en el procesador (por ejemplo, pasar de una arquitectura en orden a una

    arquitectura de orden). En el caso de los procesadores ILP, este segund