Upload
agota-ruiz
View
233
Download
1
Embed Size (px)
Citation preview
Procesadores Procesadores SuperescalaresSuperescalares
Arquitectura y Organización de Sistemas de Computación
Universidad de Concepción
D.I.I.C.C
Johana Pérez M.
18 Junio 2002
Temas
IntroducciónIntroducción
Aspectos Generales Superescalar vs Supersegmentado Restricciones
Diseño Paralelismo Políticas de emisión de instrucciones Renombramiento de registros
Algunos ejemplos
Conclusiones y Comentarios
1. Introducción
Objetivo Definir y caracterizar qué es y para qué se utilizan los
procesadores superescalares
Objetivos específicos Caracterizar el procesador superescalar Estudiar restricciones de uso y diseño que presenta este
tipo de procesador
Metodología de Trabajo Revisión bibliográfica
Arq. y Org. de computadores, W. Stallings Páginas Web
Procesadores Escalares
El procesamiento escalar se refiere al procesamiento de instrucciones individuales en forma secuencial
La técnica escalar se usó en los procesadores Pentium 486
Algunos autores consideran a los procesadores escalares como un gran grupo que se subdivide en tres grupos más pequeños y especializados
Procesadores Segmentados Procesadores Supersegmentados Procesadores Superescalares
1. Introducción (cont.)
Breve comparación
1. Introducción (cont.)
Procesadores
Tradicionales
Procesadores
Escalares
Procesadores
Superescalares
Inicio Secuencial
Ejecución Secuencial
Inicio Secuencial
Ejecución Paralela
Inicio Paralelo
Ejecución Paralela
No segmentados Segmentados
Múltiples UF
Múltiples UF segmentadas
¿Por qué implementación superescalar? Deseo de aumentar las prestaciones (nuevamente) Surgimiento de los Supercomputadores
Vectorial Superescalar
Instrucciones comunes (escalares) inician su ejecución en forma simultánea e independiente
Se puede operar varios elementos de un vector en una misma instrucción
1. Introducción (cont.)
Temas
Introducción
Aspectos GeneralesAspectos Generales Superescalar vs SupersegmentadoSuperescalar vs Supersegmentado RestriccionesRestricciones
Diseño Paralelismo Políticas de emisión de instrucciones Renombramiento de registros
Algunos Ejemplos
Conclusiones y Comentarios
2. Aspectos generales
Un poco de historia... El término nace en 1987 Máquina diseñada para mejorar la velocidad de ejecución de
las instrucciones escalares Procesadores de uso general para altas prestaciones (gran
cantidad de procesamiento) La velocidad de procesamiento puede sufrir un aumento de 1,5
a 8 veces, de acuerdo al hardware utilizado y la aplicación escogida para realizar las pruebas.
2. Aspectos generales (cont.)
Superescalar vs Supersegmentado La supersegmentación
Nace en 1988 Aprovecha el hecho de que muchas instrucciones necesitan
menos de la mitad de un ciclo de reloj para ejecutarse Logra....doblar la velocidad de reloj interna, realizando dos tareas
en un ciclo de reloj En la proxima figura se comparan ambas soluciones,
considerando una instrucción con cuatro etapas: Captación de instrucción Decodificación Ejecución Escritura
Captación deInstrucción
EscrituraEjecuciónDecodificación
Máquina Base
Superescalar
Supersegmentada
Clave
0 1 2 3 4 5 6 7 8 9
Instr
uccio
ne
s c
on
se
cu
tiva
s
Tiempos en ciclos base
Restricciones Dependencia verdadera de datos (write-read) Dependencia relativa al procesamiento:
inst. que siguen a una bifurcación uso de instrucciones de longitud variable [arq. RISC])
Conflicto en los recursos (idem D. verdadera datos) Puede superarse con duplicación de recursos Segmentación de la unid. Funcional correspondiente
Dependencia de salida (read-write)
Antidependencia (en el ejemplo, la segunda instrucción destruye un valor que usa la primera instrucción)
2. Aspectos generales (cont.)
Ejemplo Dependencia de datos
Dependencia de salida y Antidependencia
2. Aspectos generales (cont.)
add r1, r2 ; carrgar el registro r1 con el contenido de r2 más el contenido de r1 move r3, r1 ; cargar el registro r3 con el contendio de r1
R3 := R3 op R5 (I1) R4 := R3 +1 (I2) R3 := R5 +1 (I3) R7 := R3 op R4 (I4)
Temas
Introducción
Aspectos Generales Superescalar vs Supersegmentado Restricciones
DiseñoDiseño ParalelismoParalelismo Políticas de emisión de instruccionesPolíticas de emisión de instrucciones Renombramiento de registrosRenombramiento de registros
Algunos Ejemplos
Conclusiones y Comentarios
3. Diseño del procesador Superescalar
Paralelismo A nivel de instrucciones
Instrucciones independientes Depende de:
Dependencias de datos verdadera y relativa al procesamiento Arquitectura del set de instrucciones Aplicación
Load R1 R2(23)Add R3 R3, "1"Add R4 R4,R0
Add R3 R3, "1"Add R4 R3, R2Store[R4] R0
paralelismo =3Es posible ejecutar las instrucciones
en forma paralela
paralelismo =1Las instruccione son dependientes
entre elllas
Paralelismo A nivel de máquina: es un índice de la capacidad del
procesador de sacar provecho al paralelismo de instrucciones. Depende de:
Número de instrucciones que pueden captarse y ejecutarse al mismo tiempo
Velocidad y sofisticación del procesador para lograr instrucciones independientes
Máquina RISC -> paralelismo a nivel de instrucciones Si existe poco paralelismo a nivel de máquina, las
prestaciones se verán limitadas.
3. Diseño procesador Superescalar (cont.)
Políticas de emisión de instrucciones
Emisión de instrucciones: inicio de ejecuión de instrucciones en las unidades funcionales
Se debe ordenar la búsqueda y elección de nuevas instrucciones:
Orden de captación Orden de ejecución Orden de alternación de los registros y las posiciones de
memoria Restricción: Lograr un resultado correcto
3. Diseño procesador Superescalar (cont.)
Emisión y finalización en orden Ni los procesadores superescalares la usan En caso de disputa por alguna unidad funcional, o cuando se
requiere más de un ciclo para la ejecución se detiene la emisión Ejemplo
Emisión en orden y finalización desordenada Usada en procesadores RISC Restringido por el grado máximo de paralelismo de máquina La emisión se detinen al existir dependencia de datos o relativa
al procesamiento, y en caso de disputa por una UF Ejemplo
3. Diseño procesador Superescalar (cont.)
Emisión y finalización desordenada Se utiliza un buffer llamado ventana de instrucciones para
almacenar instrucciones y seguir captando y decodificando otras.
Cualquier instrucción puede ser emitida siempre que: Necesite una UF que esté desocupada No esté bloqueada pro conflicto de memoria o dependencia
El procesador tiene la capacidad de adelantarse, identificando las instrucciones del cause que son independientes.
Mismas restricciones anteriores Ejemplo
3. Diseño procesador Superescalar (cont.)
Renombramiento de registros Emisión desordenada y/o finalización desordenada puede
provocar dependencias de salida o antidependencias Solución básica: Duplicación de recursos Asignación dinámica de registros asociada con los
valores que necesitan las instrucciones (solución Hw) Las referencias a un mismo registro original con
diferentes instrucciones podrán ‘apuntar’ a distintos registros reales
3. Diseño procesador Superescalar (cont.)
R3b := R3a op R5a (I1) R4b := R3b +1 (I2) R3c := R5a +1 (I3) R7b := R3c op R4b (I4)
Temas
Introducción
Aspectos Generales Superescalar vs Supersegmentado Restricciones
Diseño Paralelismo Políticas de emisión de instrucciones Renombramiento de registros
Algunos EjemplosAlgunos Ejemplos
Conclusiones y Comentarios
Procesador AMD-K64. Algunos Ejemplos
Procesador AMD-K6Procesador AMD-K6(TM)(TM) con Instrucciones MMX con Instrucciones MMX(TM)(TM)
Características Beneficios
Basado en la avanzada microarquitectura AMD superescalar RISC86® de seis instrucciones.
Desempeño de sexta generación, que compite con el Pentium II Ofrece la mejor relación precio/rendimiento para procesadores x86 de sexta generación
Ejecuta instrucciones de alta ejecución del standard industrial MMX
Acelera la ejecución de aplicaciones multimedias emergentes
Compatibilidad con Socket 7 Disminuye los costos de inventario y diseño permitiendo soluciones globales con una sola placa de sistema Infraestructura de gran volumen con múltiples proveedores Saca ventaja de la plenamente desarrollada infraestructura de bajo costo.
Compatibilidad con Microsoft® Windows® y con el conjunto de instrucciones x86
Ofrece fácil acceso a toda la base ya instalada de software y sistemas operativos x86
Fabricado en la Fab 25 utilizando la tecnología de AMD de cinco capas metálicas de 0,35 micrones Evolución hacia la más avanzada tecnología de punta de AMD de 0,25 micrones.
Calidad y confiabilidad de nivel mundial, y capacidad de satisfacer las necesidades de gran volumen de los clientes Ofrece los cimientos para un mejor desempeño basado en el contínuo perfeccionamiento del proceso tecnológico
El núcleo del procesador AMD-K6 está basado en la microtecnología de punta superescalar RISC86® de seis instrucciones/ciclo
Gran cache de división L1 de 64 bytes (dos veces mayor que Pentium II y cuatro veces el tamaño de Pentium Pro)
Múltiples decodificadores sofisticados (cuatro frente a los tres del Pentium II o el Pentium Pro), unidades especializadas de ejecución paralela (seis), unidad de punto flotante de alta ejecución
Otro ejemplo de procesadores superescalares pertenecientes a la arquitectura AMD es el procesador AMD Athlon™ MP
4. Algunos Ejemplos (cont.)
4. Algunos Ejemplos (cont.)
Procesador Pentium (superior al 486)
Características
Ofrecen un juego de instrucciones CISC Internamente poseen un procesador RISC Tiene dos unidades de ejecución de enteros (U y V) y una
de punto flotante Para los enteros presenta pipeling de cinco etapas y para
punto flotante controla las últimas cuatro etapas Utiliza un algoritmo (sencillo) para saber si las instrucciones
pueden ser ejecutadas en forma paralela
Mejoras en arquitecturas superescalares
Ejecución desordenada Pentium Pro HP8000
Renombramiento de registros
Modelos
Pentium Pro PowerPC 604 MIPS/R10000 Alpha 21264
Ejecutan hasta 4 instrucciones simultáneas
4. Algunos Ejemplos (cont.)
Temas
Introducción
Aspectos Generales Superescalar vs Supersegmentado Restricciones
Diseño Paralelismo Políticas de emisión de instrucciones Renombramiento de registros
Algunos Ejemplos
Conclusiones y ComentariosConclusiones y Comentarios
Cada vez se hace más necesario probar e implementar nuevas técnicas que incrementen las velocidades de procesamiento de los equipos. El procesamiento superescalar es una de las últimas innovaciones para hacer los procesadores más rápidos
Las máquinas RISC permiten que las técnicas superescalares sean más fáciles de implementar, aunque igual se hacen intentos en las CISC
Es necesario que existan varias unidades aritmético-lógicas, de punto flotante y de control para ayudar a la ejecución simultánea de instrucciones
5. Conclusiones y Comentarios
Emisión y Finalización en orden
I1 I2
I3 I4
I1I4
I3 I4
I5
I3
I6I5
I6
I6
I4
I3
I1
I2I1
I5
Decodificación EscrituraEjecución Ciclo
12
I6
I4
1
4
3
2
5
8
7
6
Emisión en orden y Finalización desordenada
I1 I2
I3 I4
I1
I4 I2
I4
I6
I5
I6I5
I6
I6
I4
I3I1
I2I1
I5
Decodificación EscrituraEjecución Ciclo
I3
1
4
3
2
5
7
6
Emisión y Finalización desordenada
I1 I2
I3 I4
I1
I2
I4
I5
I6I5
I4I6
I3I1
I2I1
I5
Decodificación EscrituraEjecución Ciclo
I3
I6
1
4
3
2
5
6
Ventana
I4,I5,I6
I3,I4
I1,I2
I5
IF I1 es simple
AND I2 también simple
AND I3 no es salto
AND destino I1 no es fuente de I2
AND destino de I1 no es destino de I2
THEN
envía I1 a U
envía I2 a V
ELSE
envía I1 a U
detiene I2 (I2 será evaluada después con I3)
Algoritmo para saber si las instrucciones pueden ejecutarse en
forma paralela
Tecnología Smart MP para un multiprocesamiento más inteligente: Buses de sistema duales de alta velocidad y de punto a punto Capacidad innovadora de búsqueda ("snooping") del bus Protocolo optimizado de coherencia de cache MOESI
Arquitectura QuantiSpeed™ para un rendimiento superior: Microarquitectura de procesador superescalar x86, superconductora de
nueve niveles Múltiples decodificadores paralelos de instrucciones x86 Tres unidades de ejecución de punto flotante completamente "pipelined",
superescalares y aleatorias, las cuales ejecutan instrucciones x87 (de punto flotante), MMX™ y 3DNow!™
Tres unidades de enteros completamente "pipelined", superescalares y aleatorias
Tres unidades de cálculo de direcciones "pipelined", superescalares y aleatorias
Prebúsqueda avanzada de datos de hardware Translation Look-aside Buffers (TLBs) exclusivos y especulativos Predicción de bifurcación dinámica avanzada
Procesador AMD ATHLON™ MP
Tecnología 3DNow!™ Professional para operación 3D avanzada: 21 instrucciones originales 3DNow!™ habilitando un SIMD superescalar 19 instrucciones adicionales para permitir cálculos matemáticos mejorados
de números enteros para codificar voz o video y transferencia de datos mejorada para plug-ins de Internet y otras aplicaciones de ejecución en tiempo real
5 instrucciones DSP para mejorar las aplicaciones de módem, ADSL, sonido ambiental Dolby Digital y MP3
52 instrucciones SSE con adiciones de enteros y punto flotante SIMD que ofrecen una excelente compatibilidad con la tecnología SSE de Intel
Compatible con los sistemas operativos Windows® XP, Windows 98, Windows 95 y Windows NT® 4.x
El bus de sistema de 266 MHz permite un excelente ancho de banda en el sistema:
Tecnología fuente de reloj (avance del reloj) asincrónico Soporte para ECC de 8 bits para la integridad del bus de datos Velocidad de datos pico de 2.1GB/s Soporte para multiprocesamiento: topología punto a punto, con la cantidad
de procesadores en sistemas SMP determinados por la implementación del chipset
Soporte para 24 transacciones pendientes, por procesador
Intel 960 960CA(3) 960MM(3) 960HA/HD/HT
Intel 80x86 Pentium(2) PentiumPro(~2)
IBM Power Power1(4) Power2 (4)
IBM ES ES/9000
PowerPC alliance Power601(3) Power604(4) Power620(4)
PowerPC Power603 (3) Power602(2)
Motorola 8800 MC88110(2)
Motorola 68000 MC68060(3)
DEC Alpha 21064(2) 21064A(2) 21164 (4)
HP PA PA 7100(2) PA 7200(2) PA8000(4)
Sun/Sparc SuperSparc(3) UltraSparc(4)
TRON Gmicro Gmicro/500(2)
Mips R R8000(4) R10000(4)
AMD29000 AM 29000(4)
AMD K5 K5 (~2)
Cyrix M1 M1(2)
NexGen Nx Nx586(1/3)
Evolución de los tipos de Procesadores Superescalares en el tiempo
1989 1990 1991 1992 1993 1994 1995 1996