Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 15
1. RISC
2. Pipelining en RISC
3. Procesadores superescalares
INGENIERÍA EN SOFTWARE
ESCUELA POLITÉCNICA NACIONAL
ENRIQUE MAFLA 1
Revisión
Participación, Participación, Participación
Organización del procesador
Organización de los registros
Ciclo de ejecución de las instrucciones
Pipelining
ENRIQUE MAFLA 2
Evolución del computador digital
Arquitectura von Neumann – programa almacenado
Concepto de familia – IBM System/360 (DEC PDP-8)
Arquitectura Implementación
Unidad de control microprogramada – IBM S/360
Memoria cache
Pipelining
Múltiples procesadores
Arquitectura RISC
◦ Gran número de registros de propósito general
◦ Conjunto de instrucciones simple y limitado
◦ Optimización del pipeline
ENRIQUE MAFLA 3
CISC – RISC – Superescalar
ENRIQUE MAFLA 4
Brecha semántica
HLL ISA
ISAs para cerrar la brecha (CISC)
◦ Conjuntos grandes de instrucciones
◦ Gran variedad de modos de direccionamiento
◦ Sentencias HLL implementadas en HW
Objetivo
Facilitar la construcción de compiladores
Mejorar la eficiencia de ejecución
Soporte para HLLs sofisticados y complejos
Patrones de ejecución de instrucciones ISA RISC
ENRIQUE MAFLA 5
Patrones de ejecución - operaciones
◦ ASSIGN Mov
◦ LOOP, IF Compare, Branch
◦ CALL/RETURN
ENRIQUE MAFLA 6
Patrones de ejecución - operandos
80% de variables escalares son variables locales
Referencia a arreglo / estructura => apuntador / índice (escalar local)
Mayoría de referencias son escalares locales
Promedio de referencias a memoria / registros por instrucción?
ENRIQUE MAFLA 7
Patrones de ejecución –
llamadas a procedimientos
1. Número de parámetros y variables locales
2. Profundidad de anidamiento
RESULTADOS:
ENRIQUE MAFLA 9
Ventanas de registros
ENRIQUE MAFLA 11
Arquitectura RISC
CISC – más instrucciones y más complejas
Facilitar compiladores y mejorar rendimiento (código pequeño, rápido)
◦ Sentencias HLL instrucciones complejas: difícil encontrar match
◦ Programas mas pequeños (menos memoria, R/W, cache, paginación)
◦ Tamaño del código CISC, comparable a RISC
◦ Programas mas rápidos (sentencia HLL compleja instrucción CISC)
◦ Mayoría de instrucciones son simples
◦ Unidad de control mas compleja afecta rendimiento de instrucciones simples
ENRIQUE MAFLA 12
Características de RISC
Una instrucción por ciclo
◦ Ciclo: registros ALU registro (en HW, sin micro código)
Operaciones registro-a-registro
◦ Acceso a memoria: LOAD / STORE ISA y unidad de control simples
Modos simples de direccionamiento
◦ Desplazamiento y relativo a PC pueden ser parte de RISC
Formatos simples y uniformes de instrucciones
◦ 1 o 2 formatos, campos fijos
◦ Decodificación del opcode y acceso a registros en paralelo
◦ Alineados a 32 bits
ENRIQUE MAFLA 13
Registro-registro vs memoria-memoria
Acceso frecuente a
un numero pequeño
de variables locales
ENRIQUE MAFLA 14
Beneficios de rendimiento en RISC
Compiladores optimizantes: instrucciones mas primitivas / simples
◦ Sacar instrucciones fuera de bucles
◦ Reordenar el código
◦ Maximizar uso de registros
Compilador produce instrucciones simples
◦ Unidad de control simple, sin micro código
Pipelines mas efectivos
Mejor respuesta a interrupciones (instrucciones mas cortas)
ENRIQUE MAFLA 15
Características RISC
1. Un solo tamaño de instrucciones
Complejidad de
2. Tamaño típico: 4 bytes decodificación
3. Menos de 5 modos de direccionamiento
4. Sin direccionamiento indirecto
5. No combinar load/store con aritmética Complejidad del
6. No mas de un operando en memoria pipeline
7. Alineación de operandos de load/store
8. Mínimo uso de MMU para direcciones de operandos
9. Mínimo 32 registros enteros (mas de 5 bits en la instrucción) Compilador
10. Mínimo 16 registros FP (mas de 4 bits en la instrucción)
ENRIQUE MAFLA 16
Pipelining en RISC
Mayoría de instrucciones (registro registro)
◦ IF – traer la instrucción de memoria
◦ EX – operación ALU
Load / store (memoria registro)
◦ IF – traer la instrucción de memoria
◦ EX – calcular la dirección de memoria
◦ ME – registro memoria / memoria registro
ENRIQUE MAFLA 17
Efectos de pipelining
E1 – R registros
E2 – ALU + W
registro
ENRIQUE MAFLA 18
Optimizar el pipeline – branch demorada
Branches incondicionales, llamadas / retornos
Branches condicionales: instrucción anterior altera condición?
◦ Buscar instrucción después del branch o NOOP
ENRIQUE MAFLA 19
Uso de branch demorada
ENRIQUE MAFLA 20
Optimizar el pipeline
Carga demorada
LOAD procesador bloquea al registro, continua ejecución
Registro referenciado procesador inactivo hasta completar la carga
Desenrollar bucles
Replicar bucle por factor u; iterar con paso u en lugar de 1
◦ Reducir overhead del bucle
◦ Aumentar paralelismo (mejorando rendimiento del pipeline)
◦ Mejorar localidad de registros, cache y TLB
ENRIQUE MAFLA 21
Desenrollar bucles – ejemplo
Loop overhead = ½
• 2 iteraciones antes del
test/branch
Paralelismo – 2 asignaciones
Localidad – si a en registros
• a[i] y a[i+1] usados 2
veces en el bucle
• Loads: 3 -> 2 por iteración
ENRIQUE MAFLA 22
ILP - superescalar
Superescalar
Inicio simultaneo de instrucciones
Ejecución independiente
Diferentes pipelines
Ejecución fuera de orden
HW y compilador
23
Superescalar vs
superpipelined
Superpipeline
Varias fases en menos de ½ ciclo
Dos fases en un ciclo
ENRIQUE MAFLA 24
Limitaciones del ILP con superescalar
Secuencia de instrucciones de un programa imponen limitaciones
*Dependencia verdadera de datos (RAW)
◦ ADD EAX, ECX EAX EAX + ECX
◦ MOV EBX, EAX EBX EAX
*Dependencia procedural (branches)
* CISC (longitud variable) decodificar instrucción para conocer longitud
*Conflicto de recursos
* Memoria, cache, buses, puertos de registros, unidades funcionales (ALU)
* Duplicar recursos
*Dependencia de resultados (WAW)
*Antidependencia (WAR)
ENRIQUE MAFLA 25
Dependencias
MOV EAX, eff EAX eff
MOV EBX, EAX EBX EAX
◦ Eff –dirección efectiva MEM
ENRIQUE MAFLA 26
Diseño superescalar
INDEPENDIENTES DEPENDIENTES
Load R1 R2 Add R3 R3, “1”
Add R3 R3, “1” Add R4 R3, R2
Add R4 R4, R2 Store [R4] R0
ENRIQUE MAFLA 27
Política de emisión de instrucciones
Procesador debe identificar ILP
Emisión de instrucciones: decodificación ejecución
Procesador se adelanta al punto actual de ejecución
Ordenamientos para resolver dependencias y conflictos
◦ Orden de fetch
◦ Orden de ejecución
◦ Orden de actualización de registros / memoria
Políticas de emisión – protocolos para emitir instrucciones
1. Emisión en orden con finalización en orden (Ejecución secuencial)
2. Emisión en orden con finalización fuera de orden
3. Emisión fuera de orden con finalización fuera de orden
ENRIQUE MAFLA 28
Política 1 - ejemplo
Fetch/decode 2 instrucciones
2 unidades enteras
1 unidad FP
2 instancias WB
Código (6 instrucciones)
I1 – 2 ciclos
I3 e I4 – conflicto por ALU
I4I5 (RAW)
I5 e I6 – conflicto por ALU
ENRIQUE MAFLA 29
Política 2 – ejemplo
I2 finaliza antes de I1
Emisión se detiene
◦ Conflicto de recursos
◦ Dependencia de datos
◦ Dependencia procedural
Dependencia WAW
◦ I1: R3 R3 op R5
◦ I2: R4 R3 + 1
◦ I3: R3 R5 + 1 Finalización fuera de orden
◦ I4: R7 R3 op R4 • Requiere lógica de emisión mas compleja
Detener I3 hasta que finalice I1 • Mas difícil procesar interrupciones
ENRIQUE MAFLA 30
Política 3
Emisión en orden: decodificación hasta dependencia o conflicto
Emisión fuera de orden: desacoplar decodificación y ejecución
◦ Decodificación ventana de instrucciones (buffer)
◦ Emisión de una instrucción desde la ventana
◦ Unidad funcional está disponible
◦ Sin conflictos ni dependencias
ENRIQUE MAFLA 31
Política 3 – ejemplo
Procesador tiene capacidad de anticipación
Identifica instrucciones independientes para llevarlas a ejecución
Antidependencia WAR
◦ I1: R3 R3 op R5
◦ I2: R4 R3 + 1
◦ I3: R3 R5 + 1
◦ I4: R7 R3 op R4
I3 no puede terminar ejecución antes que I2 empiece ejecución y haya FO
Reorder buffer – resultados fuera de orden y enviados a registros en orden
ENRIQUE MAFLA 32
Renombrar registros
Emisión y/o finalización fuera de orden dependencias WAW o WAR
◦ Valores en registros no reflejan secuencia dictada por flujo de programa
◦ RAW y conflicto de recursos reflejan flujo de datos en la ejecución
◦ Emisión y finalización en secuencia contenido de registros bien conocido
◦ Fuera de orden valores en conflicto por el uso de registros stall
◦ Optimización de registros compilador maximiza uso de registros
Duplicar recursos: cambio de nombre de registros
◦ Procesador asigna registros dinámicamente
◦ Resultado de instrucción es registro asignar nuevo registro
◦ Siguientes instrucciones renombran operandos registros con valor requerido
ENRIQUE MAFLA 33
Ejemplo
I1: R3b R3a op R5a
• R3c evita la dependencia WAR de I3 de I2 y la WAW de I1
WAW I2: R4b R3b + 1 • I3 puede ser emitida imediatamente
WAR • Sin renombrar I3 espera fin de I1 y emisión de I2
I3: R3c R5a + 1
ENRIQUE MAFLA 36
Ejecución superescalar
RAW
ENRIQUE MAFLA 37
Implementación superescalar
IF de múltiples instrucciones; predecir resultados de branches
◦ Múltiples etapas de fetch y decodificación; lógica para predicción
Lógica para determinar RAW con valores de registros
◦ Comunicar valores a instrucciones durante la ejecución
Mecanismo para iniciar / emitir múltiples instrucciones en paralelo
Recursos para ejecución paralela
◦ Múltiples unidades funcionales y jerarquías de memoria con accesos+
Mecanismo para commit el estado del proceso en orden correcto
ENRIQUE MAFLA 38
Data paths y ejecución de instrucciones
Procesador simple
1. ISA – cuatro instrucciones
2. Programa ya esta en memoria
3. Ignora proceso de inicio; procesador ya está funcionando
4. Datos e instrucciones de 32 bits
5. Solo aritmética entera
6. Ignora condiciones de error
7. 16 registros de propósito general
8. Memoria de instrucciones y memoria de datos
ENRIQUE MAFLA 39
MIPS
MARS
ENRIQUE MAFLA 40
Memoria
Memory mapped I/O terminal registers
ENRIQUE MAFLA 41
Simple Procesor
add r4, r2, r3
◦ r4 r2 + r3
load r1, 20(r3)
◦ r1 (r3 + 20)
store r1, 20(r3)
◦ inverso de load
jump 60(r11)
◦ # PC r11 + 60
ENRIQUE MAFLA 42
Contador de programa
Programa almacenado + reloj
Data path
PC: IF IR Cables paralelos
Control (bits de IR) ejecutar
PC siguiente instrucción
ENRIQUE MAFLA 43
Fetch instrucciones
A
B
ENRIQUE MAFLA 44
Decodificación
ENRIQUE MAFLA 45
Unidad de
registros
ENRIQUE MAFLA 46
AL
U
ENRIQUE MAFLA 47
ME
M
ENRIQUE MAFLA 48
Preguntas, inquietudes, sugerencias
ENRIQUE MAFLA 49