11
1 Prof. Dr. José Antonio de Frutos Redondo Curso 2013-2014 GRADO EN INGENIERÍA DE COMPUTADORES Arquitectura e Ingeniería de Computadores Computadores VLIW Computadores superescalares © J. A. de Frutos Redondo 2013 Arquitectura e Ingeniería de Computadores VLIW y superescalares 2 Computadores VLIW y superescalares Aplicación del paralelismo a nivel de instrucción. VLIW Itanium Computadores superescalares Decodificación paralela. Emisión superescalar de instrucciones.

GRADO EN INGENIERÍA DE COMPUTADORES - UAHatc2.aut.uah.es/~frutos/areinco/pdf/VLIW_SUPER.pdf1 Prof. Dr. José Antonio de Frutos Redondo Curso 2013-2014 GRADO EN INGENIERÍA DE COMPUTADORES

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    Prof. Dr. José Antonio de Frutos Redondo Curso 2013-2014

    GRADO EN INGENIERÍA DE COMPUTADORES Arquitectura e Ingeniería de Computadores

    Departamento de Automática Computadores VLIW Computadores superescalares

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 2

    Computadores VLIW y superescalares

    n  Aplicación del paralelismo a nivel de instrucción. n  VLIW

    n  Itanium n  Computadores superescalares

    n  Decodificación paralela. n  Emisión superescalar de instrucciones.

  • 2

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 3

    n  Clases de maquinas ILP:

    Computadores VLIW y superescalares

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 4

    n  VLIW y Superescalares

    Register file

    Cache/memory Fetchunit

    EU EU EU

    Single multi-operation instruction

    Multi-op.instruction

    EU EU EU

    Register file

    Cache/memory

    Fetchunit

    Decode/issueunit

    Sequential streamof instructions

    Multipleinstructions

    VLIW approach Superscalar approach

    EU : execution unit

    instruction/controldata

    Computadores VLIW y superescalares

  • 3

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 5

    VLIW

    n  Características n  La longitud de instrucción depende del número de unidades de

    ejecución disponibles y la longitud de código necesario para cada unidad (entre 100 bits y 1 Kbit).

    n  El paralelismo en las instrucciones es fijado en la compilación. Se incluye en las instrucciones-máquina.

    n  El procesador ejecuta en paralelo lo que se le indica en la instrucción .

    n  Requiere circuitos menos complejos (mayores velocidades de reloj).

    n  El compilador tiene mucho más tiempo para determinar las posibles operaciones paralelas.

    n  El compilador ve el programa completo.

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 6

    n  Dificultades n  Compiladores complejos y muy dependientes de la arquitectura

    de la máquina. n  Modificaciones en la tecnología o en la arquitectura de la

    máquina exigen n  Un nuevo compilador. n  En muchos casos, recompilación de las aplicaciones.

    n  Cuando no se pueden llenar todos los espacios en las instrucciones se desaprovecha la memoria y el ancho de banda de ésta.

    n  En el proceso de paralelización el compilador debe siempre considerar el caso peor, lo que puede reducir el rendimiento. Por ejemplo, en los accesos a cache siempre debería considerar la posibilidad de fallo.

    VLIW

  • 4

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 7

    Itanium

    n  VLIW microprocesador n  Intel & HP hablan de

    EPIC ( Explicit Parallel Instruction Computing)

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 8

    n  Mazo de 128 bits n  Contiene tres instrucciones más la plantilla. n  Se pueden buscar uno o más mazos al mismo tiempo. n  La plantilla contiene información acerca de qué

    instrucciones se pueden ejecutar en paralelo. n  No está limitado a un solo mazo; por ejemplo, se

    pueden ejecutar hasta 8 instrucciones en paralelo. n  El compilador reordenará instrucciones para formar

    mazos contiguos. n  Se pueden mezclar instrucciones dependientes e

    independientes en el mismo mazo. n  La longitud de cada instrucción es de 41 bits.

    Itanium

  • 5

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 9

    Itanium

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 10

    Computadores superescalares y supersegmentados

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    f d e m

    1 2 3 4 5 6 7 98

    SUPERSEGMENTADO

    SEGMENTADO

    SUPERESCALAR

    Computadores Superescalares

  • 6

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 11

    F1

    F2

    F3

    d1

    d2

    d3

    m1 m2 m3

    a1 a2

    e1

    e2

    S1

    S2

    Etapa de busqueda

    Etapa de decodificación

    Etapa de ejecución

    Etapa de almacenamiento

    de la cachede datos

    de la cachede instrucciones

    ventana de anticipación

    multiplicación

    suma

    op. lógicas

    op. de carga

    Computadores Superescalares

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 12

    n  Tareas específicas del procesamiento superescalar. n  Decodificación paralela. n  Emisión superescalar de instrucciones.

    n  Ejecución paralela de instrucciones. n  Mantener la consistencia de la ejecución secuencial

    n  Permitir la finalización de instrucciones fuera de orden. n  Obligar a las instrucciones a finalizar en orden (buffer de

    reordenación ROB). n  Mantener la consistencia del procesamiento secuencial de

    excepciones n  Interrupciones precisas.

    n  Interrupciones imprecisas.

    Computadores Superescalares

  • 7

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 13

    Decodificación paralela

    n  Mayor complejidad que en segmentados. n  Capturar y decodificar más instrucciones en un ciclo. n  Búsqueda de dependencias entre las capturadas. n  Búsqueda de dependencias entre las capturadas y las que

    están en ejecución (mayor número en ambas que en el segmentado).

    n  Esta complejidad hace que los computadores superescalares tiendan a usar dos e incluso tres ciclos para la decodificación (PowerPC 601, PowerPC604 y UltraSparc usan 2 ciclos; Alfa 21064 usa 3 ciclos; PentiumPro puede necesitar hasta 4.5 ciclos).

    n  Una camino para tratar este problema consiste en la predecodificación.

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 14

    Icache

    Superscalar issue

    DF . . .I

    Decode / IssueDecode / Issue

    Scalar issue

    Typical FX-pipeline layout D/IF . . .

    Icache

    Instructionbuffer

    Instructionbuffer

    Decodificación paralela

  • 8

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 15

    n  Predecodificación

    Second-level cache(or memory)

    Predecodeunit

    Icache

    Typically 128 bits/cycle

    When instructions are written into the Icache,the predecode unit appends 4-7 bits to eachRISC instruction

    E.g. 148 bits/cycle 1

    In the AMD K5, which is an x86-compatible CISC-processor,the predecode unit appends 5 bits to each byte

    1

    Decodificación paralela

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 16

    n  Los bits añadidos en la fase de predecodificación indican:

    n  La clase de instrucción. n  El tipo de recursos que necesita para su ejecución. n  En algunos procesadores indican también que la dirección de

    destino de un salto ha sido ya calculada en la fase de predecodificación.

    Decodificación paralela

  • 9

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 17

    Emisión superescalar de instrucciones

    n  Política de emisión: cómo se tratan las dependencias durante el proceso de emisión. n  Tratamiento de las falsas dependencias.

    n  No se actúa en este sentido. n  Renombramiento de registros.

    n  Tratamiento de las dependencias de control. n  Esperar a que se resuelvan. n  Ejecución especulativa.

    n  Uso de shelving. n  Manejo de los bloqueos en la emisión.

    n  Orden de emisión. n  Alineación en la emisión.

    n  Velocidad de emisión: máximo numero de instrucciones que se pueden emitir en un ciclo.

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 18

    n  Emisión de instrucciones con bloqueo (sin usar shelving)

    Decode/check/issue

    EUEUEU

    Icache

    I-bufferIssue window (n)

    Dependent instructions block

    Issue

    instruction issue.

    n

    Emisión superescalar de instrucciones

  • 10

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 19

    n  Uso de shelving

    Decode/issue(Without dep. check)

    Shelvingbuffer

    Shelvingbuffer

    Instructions wait here untildependencies are resolved.

    Instructions are checkedfor dependencies.A not-dependentinstruction is forwardedto the associated EUs.

    Issue

    Dispatch

    will be despitedependencies to shelving buffers

    issued

    I-buffer

    EU

    Dispatch(+Dependency check)

    EU

    Dispatch(+Dependency check)

    constraints, instructionsIn the absence of hardware

    Emisión superescalar de instrucciones

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 20

    n  Emisión de instrucciones en orden y en desorden.

    Emisión superescalar de instrucciones

  • 11

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 21

    n  Alineación en la emisión de instrucciones

    Emisión superescalar de instrucciones

    © J. A. de Frutos Redondo 2013

    Arq

    uite

    ctur

    a e

    Inge

    nier

    ía d

    e C

    ompu

    tado

    res

    VLIW y superescalares 22

    Emisión alineada Emisión no alineada

    Emisión superescalar de instrucciones