Transcript

Tema 1: PROCESADORES SEGMENTADOS

• 1.1. Procesadores RISC frente a procesadores CISC.

• 1.2. Clasificación de las arquitecturas paralelas.

• 1.3. Evaluación y mejora del rendimiento de un computador.

• 1.4. Características de los procesadores segmentados.

• 1.5. Arquitectura segmentada genérica.

• 1.6. Riesgos en la segmentación.

• 1.7. Planificación dinámica: Algoritmo de Tomasulo.

CARACTERÍSTICAS DE LOS PROCESADORES

SEGMENTADOS

• Segmentación (pipelining): técnica empleada en el diseño de procesadores que trata de aprovechar el paralelismo intrínseco que existe entre instrucciones en un flujo secuencial.

• Un elemento (unidad funcional, procesador, circuito etc.) se divide en una serie de etapas que funcionan de forma independiente por las que van pasando los operandos y las instrucciones

Tarea procesada de forma totalmente secuencial

Tarea ejecutada mediante un procesador segmentado

(equivale a una cadena de montaje)

profundidad de la

segmentación=

número de etapas en que puede

dividirse el procesamiento de una

instrucción

ARQUITECTURA SEGMENTADA

GENÉRICA (ASG) Sencilla arquitectura con propósitos educativos.

Memoria principal

CO OP=16

DO

200 +

RB

216

CP

Relativo a Registro

Base

DE

Operaciones

carga/almacenamiento Modo de direccionamiento

con desplazamiento

DE=<Registro base>+OP

DE= Dirección efectiva

RB= Registro base (R1,R2…) OP= Desplazamiento

CP=Contador de programa

CO= Código operación DO= Dato operando en memoria

Las instrucciones aritmético lógicas utilizan 3 operandos

y ninguno hace referencia a memoria. (instrucciones registro –registro)

Repertorio de instrucciones de la ASG

• Aritméticas y lógicas

• Transferencia de datos

• Bifurcaciones o saltos incondicionales

• Saltos condicionales

CO Opd(destino) Op1(fuente 1) Op2(fuente 2)

• 32 registros genéricos de 32 bits R0,R1,R2..R31

• 32 registros de 32 bits para simple F0,F1,F2..F31

• o doble precisión F0,F2,F4..F30

Repertorio de instrucciones de la ASG

• Aritméticas y lógicas

• Transferencia de datos – (entre paréntesis

aparece el Registro Base propio del Direccionamiento con desplazamiento)

– realizan movimiento entre memoria y registro o viceversa

• Bifurcaciones o saltos incondicionales

• Saltos condicionales

• Un salto es efectivo cuando la condición probada por la instrucción es verdadera

IMPLEMENTACIÓN DE LA SEGMENTACIÓN DE

INSTRUCCIONES EN LA ASG

EL CICLO DE UNA INSTRUCCIÓN SE DESCOMPONE EN CINCO ETAPAS BÁSICAS

• IF (Instruction Fetch): Lectura de la instrucción de la caché de instrucciones

• ID (Instruction Decoding): Decodificación de la instrucción y lectura de sus operandos del fichero de registros

• EX (Execution): Ejecución de las operaciones si se trata de una instrucción aritmético-lógica y del cálculo de la condición y de la dirección de salto si se trata de una bifurcación o salto condicional. Cálculo de dirección en instrucción de carga y almacenamiento

• MEM (Memory Access): Acceso a la caché de datos para lecturas (cargas) o escrituras (almacenamientos)

• WB (Write-Back results): Escritura del resultado en el fichero de registros.

IMPLEMENTACIÓN DE LA SEGMENTACIÓN DE

INSTRUCCIONES EN LA ASG

Eje

mp

lo d

e s

egm

enta

ció

n d

e instr

uccio

nes

Etapa IF

Etapa ID

Etapa EX

Etapa MEM

Etapa WB

Eje

mp

lo d

e s

egm

enta

ció

n d

e instr

uccio

nes

Etapa IF

Etapa ID

Etapa EX

Etapa MEM

Etapa WB

OP

ER

A C

IÓN

ALU

Eje

mp

lo d

e s

egm

enta

ció

n d

e instr

uccio

nes

Etapa IF

Etapa ID

Etapa EX

Etapa MEM

Etapa WB

CA

RG

A

DE

M

EM

OR

IA

Eje

mp

lo d

e s

egm

enta

ció

n d

e instr

uccio

nes

Etapa IF

Etapa ID

Etapa EX

Etapa MEM

Etapa WB

ALM

AC

EN

AM

IEN

TO

E

N M

EM

OR

IA

Eje

mp

lo d

e s

egm

enta

ció

n d

e instr

uccio

nes

Etapa IF

Etapa ID

Etapa EX

Etapa MEM

Etapa WB

SA

LT

O IN

CO

ND

ICIO

NA

L

Eje

mp

lo d

e s

egm

enta

ció

n d

e instr

uccio

nes

Etapa IF

Etapa ID

Etapa EX

Etapa MEM

Etapa WB

SA

LT

O C

ON

DIC

ION

AL

Segmentación en cinco etapas de la ASG

• Se incrementa

la

productividad,

es decir, el

número de

instrucciones

completadas

por unidad de

tiempo

Ventajas de la segmentación

• No reduce el tiempo de ejecución de una instrucción individual (algo superior debido a – Cerrojo o buffers de

contención para aislar la información entre etapas.

– La duración de todas las etapas es similar y viene determinada por la duración de la etapa más lenta

– Los riesgos que se producen en la segmentación (siguiente apartado)

8 Riesgos en la segmentación

• Se denomina riesgo a la dependencia entre instrucciones que provoca que la instrucción que sucede a aquella con la cual posee dependencias no pueda ejecutarse en el ciclo de reloj que le corresponde ya que ha de esperar algún resultado para poder efectuar su ejecución

• Existen 1. RIESGOS ESTRUCTURALES

2. RIESGOS POR DEPENDENCIA DE DATOS

3. RIESGOS DE CONTROL

8 Riesgos en la segmentación 1. Riesgos estructurales

Conflictos en los recursos; una instrucción en una etapa no puede avanzar a la

siguiente porque el hardware que necesita lo está usando otra.

Ejemplo: máquina con un único puerto de memoria (no dispone de dos memorias

caché). SOLUCIÓN: Una detención no resuelve el problema globalmente (con

estas instrucciones sí).

ASG dispone de dos cachés

(datos + instrucciones)

8 Riesgos en la segmentación 1. Riesgos estructurales

No todas las etapas tienen la

misma duración

I1: ADD R3, R6, R7

I2: MULT R4, R1, R2

I3: MULT R5, R8, R9

I4: SD 7(R11), R10

8 Riesgos en la segmentación

• RAW - Read After Write (dependencia verdadera)

• Una dependencia RAW hace referencia a una situación donde se necesita un dato que aún no ha sido calculado, por ejemplo:

• ADD R1, R2, R3 SUB R4, R1, R5

2. Riesgos por dependencias de datos (dos

instrucciones comparten algún dato)

8 Riesgos en la segmentación

2. Riesgos por dependencias de datos • WAR - Write After Read (antidependencia o dependencia

falsa)

• Una dependencia WAR representa un problema de ejecución concurrente, por ejemplo:

• ADD R1, R2, R3 SUB R2, R4, R5

• Es necesario asegurarse de que no se almacenará el resultado en el registro R2 antes de que la instrucción 1 haya podido leer sus operandos.

8 Riesgos en la segmentación

2. Riesgos por dependencias de datos • WAW - Write After Write

• Una dependencia WAW es otra de las posibles situaciones problemáticas en un entorno de ejecución concurrente, por ejemplo:

• ADD R1, R2, R3 SUB R1, R4, R5

• Debe retrasarse la escritura (etapa WB) de la instrucción 2 hasta que la instrucción 1 haya finalizado.

8 Riesgos en la segmentación

2. Riesgos por dependencias de datos

• RAR (Read After Read) no es un riesgo.

• La ASG solo tiene riesgos de tipo – RAW->SOLUCIONES

• REORGANIZACIÓN DEL CÓDIGO.

• INTERBLOQUEO ENTRE ETAPAS

• ADELANTAMIENTO

• WAR no se presenta pues lecturas de registro en ID es anterior a escrituras de registro en WB

• WAW no se produce pues solo se escribe en una etapa WB

RAW-> 1. SOLUCIONES

REORGANIZACIÓN DEL CÓDIGO

• Entre instrucciones de tipo RAW existen instrucciones que permiten retrasar la segunda hasta que la primera haya escrito su resultado.

problema

solución

RAW-> 1. SOLUCIONES

REORGANIZACIÓN DEL CÓDIGO

• Se trata de una técnica software. Se

cargan en ese orden las instrucciones en

la caché de instrucciones otra solución

RAW-> 1. SOLUCIONES

REORGANIZACIÓN DEL CÓDIGO

• Reorganización cuando la escritura se realiza en el flanco de subida y la lectura en el flanco de bajada.

otra solución

otra solución

aun mejor con

reordenación de

´código

RAW-> 1. SOLUCIONES

REORGANIZACIÓN DEL CÓDIGO

No se pueden reordenar sin alterar la

lógica del programa:

SOLUCIÓN: inclusión de instrucciones

NOP

RAW-> 2. SOLUCIONES

INTERBLOQUEO ENTRE ETAPAS

• Introduce elementos hardware para

detectar la existencia de dependencias. El

programa termina correctamente pero se

siguen perdiendo ciclos

RAW->3. SOLUCIONES

ADELANTAMIENTO (caminos de bypass o

forwarding) • Al detectar dependencia RAW se habilitan unos caminos que permiten que

los resultados de una etapa pasen a la etapa donde sean necesarias. En el ejemplo se comprueba si Registro destino coincide con alguno de los registros fuente de la instrucción siguiente.

8 Riesgos en la segmentación 1 RIESGOS ESTRUCTURALES 2 RIESGOS POR DEPENDENCIA DE DATOS 3 RIESGOS DE CONTROL: En la instrucción de salto, hasta que no pasan tres ciclos no se ha verificado la condición y calculado la nueva dirección del PC.

Redundante si

el salto no es

efectivo

Podemos leer la siguiente

instrucción en la secuencia aun

a riesgo de que no sea efectivo

el salto

8.3

Rie

sg

os d

e c

on

tro

l.

Imple

men

tació

n d

e lo

s s

alto

s

con

dic

ion

ale

s e

n A

SG

8.3 Riesgos de control en instrucciones de salto

(SOLUCIONES EN TIEMPO DE COMPILACIÓN):

SOLUCIÓN 1: Detener las segmentación hasta que se

conoce el resultado del salto->Introducción de

instrucciones NOP

Reduce

rendimiento

segmentación

SOLUCIÓN 1: Introducción de NOP

(SOLUCIONES EN TIEMPO DE COMPILACIÓN)

SOLUCIÓN 2: Técnica de salto retardado(delayed branch)

para

evitar las

NOP

(SOLUCIONES EN TIEMPO DE COMPILACIÓN)

SOLUCIÓN 3: Ejecución especulativa. Se predice el salto como no

efectivo. Si al final el salto es efectivo se detiene la segmentación y se

recomienza la búsqueda de la instrucción destino del salto (cuidado

con no cambiar el estado de la máquina al retroceder)

Solución hardware al Riesgos de control.

Inclusión en la etapa ID del hardware que detecta

la instrucción de salto, acceda al registro para

evaluar la condición y calculo la dirección de

destino del salto

Redundante si

el salto no es

efectivo


Top Related