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.
36
Embed
Tema 1: PROCESADORES SEGMENTADOS - … · Tema 1: PROCESADORES SEGMENTADOS • 1.1. Procesadores RISC frente a procesadores CISC. • 1.2. ... Tarea ejecutada mediante un procesador
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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)