PROCESADORES DE EMISIÓN MÚLTIPLE

Documentos relacionados
Introducción a los procesadores ILP (Instruction-Level Parallel)

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

Problema. Dispone del siguiente fragmento de código intermedio:

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados.

Arquitectura de Computadores Problemas (hoja 4). Curso

Arquitectura de Computadores Problemas (hoja 2). Curso

6. PROCESADORES SUPERESCALARES Y VLIW

Apellidos Nombre Grupo. Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012

Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso

Paralelismo en monoprocesadores. Procesadores VLIW

Tema 7: Procesadores superescalares

TEMA 3 PROCESADORES VLIW (Very Long Instruction Word)

Explotación del paralelismo a nivel de instrucción

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012

Paralelismo al nivel de instrucciones

3. SEGMENTACIÓN DEL CAUCE

Ejercicios de Paralelismo a Nivel de Instrucción

1) En un DLX con segmentación ejecutamos el siguiente fragmento de código:

Procesadores Superescalares

Seminario 1: Procesadores paralelos

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

Tema 5. Segmentación: conceptos básicos

Arquitectura de Computadores II Clase #16

Arquitectura de Computadores Problemas (hoja 2). Curso

1.2. Implementación de Procesadores Superescalares

EXAMEN DE ARQUITECTURA II Septiembre, 2010

Superescalares. Scheduling dinámico: algoritmo de Tomasulo

Arquitectura de Computadores II Clase #16

Soluciones a ejercicios de Paralelismo a Nivel de instrucción

Organización de Computadoras. Pipeline Continuación

Práctica 4. DESENROLLADO DE BUCLES.

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0

Tema 9. Planificación dinámica de instrucciones II: Algoritmo de Tomasulo

Planificación estática

PLANIFICACIÓN DINÁMICA

Tema 1: PROCESADORES SEGMENTADOS

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Planificación dinámica - Concepto

Arquitectura de Computadoras. Clase 8 Procesadores superescalares

Arquitectura. TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading. Curso

Procesadores Vectoriales

ARQUITECTURA DE COMPUTADORAS

Segmentación del ciclo de instrucción

1. Objetivo y evolución de los procesadores ILP.

Cuestionario Unidad 4: Procesamiento paralelo 2012

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores.

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Segmentación del ciclo de instrucción

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

1ª Prueba Parcial de Arquitectura de Computadores 25 de octubre de 2013

2EMHWLYRV 5HIHUHQFLDV

ARQUITECTURA DE COMPUTADORES. Práctica 8

ARQUITECTURA DE COMPUTADORES

Definición de prestaciones

Autor: Longinos Recuero Bustos

PREDICCIÓN HARDWARE DE BIFURCACIONES

Pipeline de instrucciones

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

Granularidad y latencia

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes

Paralelismo en el procesador

Procesadores segmentados. El DLX.

Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas

Arquitectura Segmentada: Conceptos básicosb

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Procesadores superescalares. Introducción

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1

Micro arquitectura. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Transcripción:

PROCESADORES DE EMISIÓN MÚLTIPLE Cómo conseguir un CPI<1 (IPC>1)? Emitiendo varias instrucciones en un mismo ciclo de reloj Dos clases de procesadores de emisión múltiple Superescalares y VLIW (Very Long Instruction Word) Característica común: poseen varias unidades de ejecución capaces de funcionar en paralelo Serafín Benito AIC: Procesadores superescalares y VLIW 1

Procesadores superescalares Descodifican un número pequeño de instrucciones (entre 2 y 6) en cada ciclo de reloj Si es posible, se emitirán en un mismo ciclo Planificación instrucciones: Típicamente hardware (mediante técnicas basadas en el scoreboard o el algoritmo de Tomasulo) Parte de la planificación suele hacerla el compilador Gran implantación en los procesadores comerciales Serafín Benito AIC: Procesadores superescalares y VLIW 2

Procesadores VLIW Cada instrucción codifica varias operaciones (varias instrucciones en un procesador convencional) Las instrucciones tienen entre 100 bits y 1Kbit Las operaciones de una instrucción se ejecutarán en paralelo en las distintas unidades de ejecución Precisan compiladores específicos Planificación estática Entre 5 y 30 unidades de ejecución Serafín Benito AIC: Procesadores superescalares y VLIW 3

Organización superescalares/vliw.. Cache/ memory Fetch unit Single multi-operation instruction Cache/ memory Fetch unit Decode/ issue unit Multipleinstructions EU EU EU EU EU EU Sequential stream of instructions Register file Register file Multi-op. instruction VLIW approach Superscalar approach instruction/control data EU : execution unit Serafín Benito AIC: Procesadores superescalares y VLIW 4

DLX superescalar.. Emisión de dos instrucciones por ciclo Una de operación de punto flotante, la otra entera (load, store, branch, operación entera) Más sencillo que permitir la emisión de dos instrucciones de cualquier tipo Fetch: 64 bits en cada ciclo de reloj Descodificación simple aconseja: Par de instrucciones: <entera, punto flotante> Serafín Benito AIC: Procesadores superescalares y VLIW 5

DLX superescalar.. Ejecución ideal en DLX superescalar Tipo instrucción Etapas Entera F D X M W Punto flotante F D X M W Entera F D X M W Punto flotante F D X M W Entera F D X M W Punto flotante F D X M W Serafín Benito AIC: Procesadores superescalares y VLIW 6

DLX superescalar.. DLX superescalar requiere una considerable cantidad de operaciones FP en los programas para que la mejora de rendimiento sobre el DLX escalar sea sustancial En la tabla anterior no se muestra la mayor duración de las operaciones FP en EXE Para mantener la frecuencia de emisión de instrucciones FP es preciso: Tener suficientes unidades de ejecución de FP y/o Encauzar las unidades de ejecución de FP En la práctica se hacen ambas cosas Serafín Benito AIC: Procesadores superescalares y VLIW 7

DLX superescalar.. La instrucción entera usa diferentes registros y diferentes unidades funcionales que la FP => Sólo hay colisión cuando la instrucción entera es load, store o move sobre registros FP Cómo resolver la colisión? Emitir solas las instrucciones enteras con operandos de punto flotante (sencillo, pero bajo rendimiento) Añadir un puerto adicional de lectura y otro de escritura al banco de registros FP Serafín Benito AIC: Procesadores superescalares y VLIW 8

DLX superescalar.. Puede aparecer una dependencia RAW entre la instrucción entera y la FP En ese caso sólo se emite la entera El resto de dependencias son las mismas que en el procesador escalar Retardos de carga y de salto: un ciclo que ahora supone las tres siguientes instrucciones Serafín Benito AIC: Procesadores superescalares y VLIW 9

DLX superescalar.. Planificación estática del bucle Loop: LD F0, 0 (R1) ADDD F4, F0, F2 SD 0 (R1), F4 SUBI R1, R1, 8 BNEZ R1, Loop suponiendo las mismas latencias del DLX escalar: (FP ALU Op, FPU ALU Op) 3 (FP ALU Op, Store Double) 2 (Load Double, FP ALU Op) 1 Serafín Benito AIC: Procesadores superescalares y VLIW 10

DLX superescalar.. Instrucción entera Instrucción FP Ciclo reloj Loop: LD F0, 0 (R1) 1 LD F6, -8 (R1) 2 LD F10, -16 (R1) ADDD F4, F0, F2 3 LD F14, -24 (R1) ADDD F8, F6, F2 4 LD F18, -32 (R1) ADDD F12, F10, F2 5 SD 0 (R1), F4 ADDD F16, F14, F2 6 SD 8 (R1), F8 ADDD F20, F18, F2 7 SD 16 (R1), F12 8 SUBI R1, R1, 40 9 SD 16 (R1), F16 10 BNEZ R1, Loop 11 SD 8 (R1), F20 12 Serafín Benito AIC: Procesadores superescalares y VLIW 11

DLX superescalar.. Obsérvense las dependencias entre el primer LD y el primer ADDD y entre éste y el primer SD Ello exige planificar el bucle y desenrollarlo cuatro veces para eliminar paradas (ciclos en los que no se emite ninguna instrucción) 12ciclos/5 = 2,4 ciclos por elemento del vector Recordemos: 14ciclos/4 = 3,5 ciclos por elemento, en DLX escalar (planificando y desenrollando el bucle) La mejora ha sido de 1,5 veces Serafín Benito AIC: Procesadores superescalares y VLIW 12

Planificación en procesadores VLIW El compilador utiliza diversas técnicas Desenrollamiento de bucles, planificación de trazas... Supongamos DLX VLIW con capacidad de emitir: 2 referencias a memoria, 2 operaciones FP y una operación entera o bifurcación Ignoramos el retardo de salto Cómo queda nuestro bucle una vez planificado y desenrollado? Serafín Benito AIC: Procesadores superescalares y VLIW 13

Desenrollamiento de bucles en DLX VLIW Referencia Referencia Operación Operación Op. entera/ a memoria 1 a memoria 2 FP 1 FP 2 branch ld f0,0(r1) ld f6,-8(r1) ld f10,-16(r1) ld f14,-24(r1) ld f18,-32(r1) ld f22,-40(r1) addd f4,f0,f2 addd f8,f6,f2 ld f26,-48(r1) addd f12,f10,f2 addd f16,f14,f2 addd f20,f18,f2 addd f24,f22,f2 sd 0(r1),f4 sd -8(r1),f8 addd f28,f26,f2 sd -16(r1),f12 sd -24(r1),f16 sd 24(r1),f20 sd 16(r1),f24 sd 8(r1),f28 subi r1,r1,56 bnez r1,loop 9 ciclos/7 (copias del bucle) = 1.29 ciclos por elemento Se necesitan más registros FP Serafín Benito AIC: Procesadores superescalares y VLIW 14

Comparación superescalares/vliw.. Planificación estática => hardware más sencillo. Por tanto los VLIW admiten Un mayor número de unidades de ejecución Una frecuencia de reloj mayor (principal ventaja) Compatibilidad con procesadores secuenciales Superescalares: sí. VLIW: no Posibilidad de programar en ensamblador Superescalares: sí. VLIW: no (hay que considerar muchos aspectos para formar una instrucción) Serafín Benito AIC: Procesadores superescalares y VLIW 15

Comparación superescalares/vliw.. VLIW: dependencia del compilador de las características tecnológicas del procesador Para una planificación eficiente, el compilador debe tener en cuenta detalles tecnológicos (por ejemplo, latencias de la unidades de ejecución) Un compilador no puede usarse en procesadores nuevos (con nuevas características tecnológicas) aunque sean compatibles en el sentido convencional En los VLIW los fallos de caché provocan la parada completa del procesador (no así en los superescalares) Serafín Benito AIC: Procesadores superescalares y VLIW 16

Comparación superescalares/vliw Debido a las dependencias, a menudo, no es posible empaquetar en una instrucción VLIW todas las operaciones que es capaz de codificar => Consumo adicional de memoria Se puede comprimir la instrucción en memoria y expandirla al llevarla a caché o al descodificarla Pérdida de rendimiento (en el tiempo de lectura y ejecución de una instrucción VLIW se leen y ejecutan menos operaciones de las teóricamente posibles) Serafín Benito AIC: Procesadores superescalares y VLIW 17

Limitación del paralelismo en procesadores superescalares y VLIW.. (Estas limitaciones afectan antes a los VLIW porque tienen más unidades de ejecución) Cuanto mayor sea el número N de unidades de ejecución Mayor dificultad para encontrar un conjunto de N operaciones entre las que no haya dependencias de datos (..) Serafín Benito AIC: Procesadores superescalares y VLIW 18

Limitación del paralelismo en procesadores superescalares y VLIW La frecuencia de saltos y bifurcaciones por cada emisión de instrucción/instrucciones es mayor Los saltos y bifurcaciones perjudican el paralelismo En definitiva, mayor dificultad para tener ocupadas todas las unidades de ejecución Se necesitan bancos de registros multipuerto y memorias multipuerto o entrelazadas para que varias operaciones puedan acceder a ellos a la vez Serafín Benito AIC: Procesadores superescalares y VLIW 19