Micro arquitectura - UTNgnudelman/Microarquitectura.pdf · Micro arquitectura Universidad...

Preview:

Citation preview

Micro arquitectura

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Técnicas Digitales III Ing. Gustavo Nudelman 2012

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Evolución – Ley de Moore

Fundamentos

Universidad Tecnológica 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 carácter mas general

Universidad Tecnológica 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 evolución de las CPUs logro paralelizar dichas etapas con el

hardware adicional que esto representa

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Pipeline de instrucciones – Paralelismo de

flujo

• En régimen se

puede decir se

ejecutan

instrucciones en

paralelo

• Trabaja bajo el

concepto de línea de

montaje

• Cada línea del

pipeline de la

denomina “stage”

Se puede llegar a ejecutar una instrucción por ciclo de clock.

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Usos Prácticos de las arquitecturas

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Efecto de un branch en un pipeline

Predicción de saltos

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Para tratar de minimizar el impacto de un branch se implementan

unidades de predicción de saltos.

• Lo mas común 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 predicción de saltos

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Las 2 estructuras necesarias para realizar una predicción de saltos son:

•· “Branch History Table” (BHT) o Tabla de Historia de los Saltos. Tabla

que contiene información 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

•Según los datos de la BHT el sistema opta por alguna de las siguientes

técnicas:

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

instrucciones siguientes

• Asumir que siempre se salta No se utiliza el pipeline

• Predicción estadística por opcodes de las instrucciones previas Se

utilizan algoritmos estadísticos y contadores para predecir saltos

Universidad Tecnológica 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 régimen permanente (5 o mas ciclos)

Arquitectura Superescalar

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Se usa esta denominación 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 según la dependencia

• Dependencia estructural Competencia por unidad

funcional (cant. de ALUS, unidades de búsqueda, etc)

• Dependencia de datos/resultado

• Dependencia de escritura en memoria

Muy dependiente del programador para escribir código paralelizable

Arquitectura Superescalar

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• Pueden ingresar a un

pipeline mas de una

instrucción en forma

simultanea para iniciar

su procesamiento.

• Se lo conoce como

paralelismo implícito

• Tiene el mismo

problema que el

pipeline en cuanto a los

saltos

• Problemas de

interdependencia Se

detiene el flujo.

Comparaciones

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Microarquitectura P6

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

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

Pentium III, Pentium III Xeon

Universidad Tecnológica 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

• Ejecución fuera de orden

• Si bien la unidad de ejecución

ejecutara las instrucciones

que pueda y no posean

dependencias, la unidad de

retiro lo hará en orden

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Three core engines - Detalle

uArquitectura NetBurst

Universidad Tecnológica 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 ejecución

Se introduce la trace Cache (almacenamiento de hilos

decodificados)

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Arquitectura NetBurst

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Hyperthreading

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Dual core

Recommended