Micro arquitectura - gnudelman/  · Micro arquitectura Universidad Tecnológica

  • View
    216

  • Download
    0

Embed Size (px)

Text of Micro arquitectura - gnudelman/  · Micro arquitectura Universidad Tecnológica

  • Micro arquitectura

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Tcnicas Digitales III Ing. Gustavo Nudelman 2012

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Evolucin Ley de Moore

  • Fundamentos

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    CISC (Complex Instruction set Computer) instrucciones

    mas complejas y focalizadas

    RISC (Reduced Instruction set computer) Instrucciones

    mas sencillas que realizan tareas de carcter mas general

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Ciclos de instrucciones: Etapas

    Cada etapa requiere hardware que fue evolucionando por canales

    independientes

    En los primeros procesadores cada una de estas etapas se

    ejecutaba en forma secuencial

    La evolucin de las CPUs logro paralelizar dichas etapas con el

    hardware adicional que esto representa

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Pipeline de instrucciones Paralelismo de

    flujo

    En rgimen se

    puede decir se

    ejecutan

    instrucciones en

    paralelo

    Trabaja bajo el

    concepto de lnea de

    montaje

    Cada lnea del

    pipeline de la

    denomina stage

    Se puede llegar a ejecutar una instruccin por ciclo de clock.

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Usos Prcticos de las arquitecturas

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Efecto de un branch en un pipeline

  • Prediccin de saltos

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Para tratar de minimizar el impacto de un branch se implementan

    unidades de prediccin de saltos.

    Lo mas comn es utilizar una cache llamada Branch Target Buffer donde se guardan los resultados de las ltimas instrucciones de saltos condicionales como loop, jecx0, etc.

  • Criterios en la prediccin de saltos

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Las 2 estructuras necesarias para realizar una prediccin de saltos son:

    Branch History Table (BHT) o Tabla de Historia de los Saltos. Tabla

    que contiene informacin de lo sucedido en cada salto las ltimas

    veces que fue tomado.

    Branch Target Address Cache (BTAC) o Tabla de Direcciones de

    Salto. Como su nombre indica es una tabla donde se almacena las

    direcciones de salto destino de los ltimos

    Segn los datos de la BHT el sistema opta por alguna de las siguientes

    tcnicas:

    Asumir que nunca se salta se lee el pipeline siempre con las

    instrucciones siguientes

    Asumir que siempre se salta No se utiliza el pipeline

    Prediccin estadstica por opcodes de las instrucciones previas Se

    utilizan algoritmos estadsticos y contadores para predecir saltos

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Impacto de cache miss en un pipeline

    La diferencia de tiempos de acceso entre la memoria cache y la

    DRAM produce un atasco (Stall) en el pipeline.

    Al tiempo de acceso se le suma el tiempo de entrada nuevamente

    a rgimen permanente (5 o mas ciclos)

  • Arquitectura Superescalar

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Se usa esta denominacin cuando se logran ejecutar 2 o mas

    instrucciones por ciclo de clock

    Se logra mediante a mas de un flojo por stage

    La cantidad de flujos por stage ser dependiente de los recursos

    funcionales que requiera el stage

    Problemas de interdependencia En principio se detiene el flujo

    solo en el stage segn la dependencia

    Dependencia estructural Competencia por unidad

    funcional (cant. de ALUS, unidades de bsqueda, etc)

    Dependencia de datos/resultado

    Dependencia de escritura en memoria

    Muy dependiente del programador para escribir cdigo paralelizable

  • Arquitectura Superescalar

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Pueden ingresar a un

    pipeline mas de una

    instruccin en forma

    simultanea para iniciar

    su procesamiento.

    Se lo conoce como

    paralelismo implcito

    Tiene el mismo

    problema que el

    pipeline en cuanto a los

    saltos

    Problemas de

    interdependencia Se

    detiene el flujo.

  • Comparaciones

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

  • Microarquitectura P6

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Pentium Pro, Pentium II, Pentium II Xeon, Celeron,

    Pentium III, Pentium III Xeon

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Microarquitectura three core engines

    Emplea dynamic execution

    scheduling

    No se basa en un pipeline

    Las instrucciones se traducen

    en uOperaciones

    Se basa en un buffer circular

    (ventana) donde los 3 cores

    poseen acceso

    Ejecucin fuera de orden

    Si bien la unidad de ejecucin

    ejecutara las instrucciones

    que pueda y no posean

    dependencias, la unidad de

    retiro lo har en orden

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Three core engines - Detalle

  • uArquitectura NetBurst

    Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Introducida con Pentium IV en noviembre del 2000

    Marcado incremento en etapas de pipeline Hyper-Pipelined

    (pasando el punto de equilibrio vs penalidades)

    Incremento de velocidad en unidades de ejecucin

    Se introduce la trace Cache (almacenamiento de hilos

    decodificados)

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Arquitectura NetBurst

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Hyperthreading

  • Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires

    Dual core