capÍtulo 2 procesadores superescalares · coma flotante –1 multiplicacio nes en coma flotante ....

Post on 10-Oct-2018

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CAPÍTULO 2 PROCESADORES SUPERESCALARES

• INTRODUCCIÓN • Características de los procesadores superescalares

• Paralelismo • Diversificación • Dinamismo

• Arquitectura de un procesador superescalar genérico

Características de los procesadores superescalares

Características de los procesadores superescalares

NI

)frecuencia(IPC

ciclo de tiempo

1

ciclo

nesinstruccio

nesinstruccio de nº

1oRendimient

Los procesadores segmentados usan el paralelismo de máquina

temporal.

Un procesador superescalar usa paralelismo de máquina temporal y

espacial

SEGMENTACIONES PARALELAS

Esquema de segmentación de profundidad 5 y anchura 4

SEGMENTACIONES DIVERSIFICADAS

DIVERSIFICACIÓN-> Alpha 21264

• 6 unidades funcionales

– 2 enteros

– 2 cálculo de direcciones

– 1 sumas, divisiones y raíces cuadradas en coma flotante

– 1 multiplicaciones en coma flotante

DIVERSIFICACIÓN-> PowerPC 970

• 12 unidades funcionales

– 2 enteros

– 2 coma flotante

– 2 carga/almacenamiento

– 4 unidades especiales para instrucciones vectoriales SIMD

– 1 resolución de saltos

– 1 registros de condición o estado

• 12 unidades de ejecución 8 (se envían un máximo de 8 instrucciones)

Dinamismo en la segmentación • Permiten la ejecución fuera de orden, aprovechando

mejor los recursos. La emisión y finalización en las

distintas unidades funcionales puede ser en un orden

diferente al establecido por el programa.

• En una segmentación paralela rígida las etapas se

separan con buffers mutientrada o multipuerto

• Una segmentación dinámica paralela utiliza buffers

multientrada permite que las instrucciones entren y

salgan fuera de orden.

– Una instrucciones pueden adelantar a otras

(dependencias WAW y WAR)

– Reducción de los ciclos de detención por

dependencias RAW

Esquema por bloques de un procesador superescalar

En el front-end y

el back-end las

instrucciones

avanzan en orden

El núcleo de

ejecución

dinámica ejecuta

fuera de orden.

Es normal

“especular”, para

realizar

predicciones sobre

que instrucciones

se ejecutarían tras

una instrucción

de salto

Arquitectura de un procesador superescalar genérico Etapa de lectura de

instrucciones (IF)

Lee hasta 4 instrucciones

Etapa de decodificación (ID)

Se decodifican en

paralelo

Etapa de

distribución/emisión (II)

Según tipo y

disponibilidad de

operandos quedan en la

estación de reserva

centralizada

Etapa de ejecución (EX)

Fuera de orden

Etapa de terminación (WR)

Escritura de resultados en

registros

Etapa de retirada (RI)

Las instrucciones de

almacenamiento

proceden a la escritura

ordenada en memoria

Procesador Superescalar Genérico

• 7 unidades funcionales

– 2 enteros

– 1 sumas/restas coma flotante

– 1 mult/división coma flotante

– 1 instrucciones almacenamiento

– 1 instrucciones de carga desde memoria

– 1 instrucciones salto

• Ancho de segmentación 4

Procesador Superescalar Genérico Estados de una

instrucción en una segmentación superescalar

• Distribuida (enviada a una estación de reserva)

• Emitida (cuando sale de la estación de reserva a una unidad funcional)

• Finalizada (abandona la unidad funcional y pasa al buffer de reordanamiento)

• Terminada (ha realizado la escritura de los resultados a los registros y actualiza estado del procesador)

• Retirada (ha realizado la escritura en memoria)

Ejemplo 1 Ciclo 1 (Para ver problemática arquitectura superescalar) Riesgo

estructural

unidad

funcional de

carga

Adelantamiento entre etapas

Ejemplo 1 Ciclo 2 (Para ver problemática arquitectura superescalar)

La operación de

almacenamiento

hace uso de la

retirada para

escribir en memoria

y mantenerla

actualizada

Ejemplo 1 Ciclo 3 (Para ver problemática arquitectura superescalar)

Resultado de la política

de predicción de saltos

que implemente el

procesador

Ejemplo 2 (Para ver problemática arquitectura superescalar)

La finalización de las instrucciones de forma desordenada puede producir la violación de

dependencias WAR. Violación WAR en i3 e i4 si R1 coincide con R2

Evitar riesgos WAW y WAR impidiendo que una instrucción posterior a otra en la secuencia

de código escriba antes. INCLUSIÓN DE CICLOS DE DETENCIÓN (pérdida rendimiento)

top related