Download procesadores avanzados

Document related concepts
no text concepts found
Transcript
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Parte 2.- SISTEMAS PARALELOS
Tema 4.-INTRODUCCION A LAS ARQUITECTURAS PARALELAS
Anexo 2.- PROCESADORES. AVANZADOS
INDICE:
Capitulo 4.1.-TECNOLOGÍA DE PROCESADORES AVANZADOS ................................................................. 2
Espacio de diseño de los procesadores......................................................................................................... 2
Procesadores CICS ......................................................................................................................................................3
Procesadores RICS ......................................................................................................................................................3
Procesadores VLIW.....................................................................................................................................................3
Procesadores Superpipelined .......................................................................................................................................3
Instrucciones Pipelines ................................................................................................................................... 4
Procesadores y Coprocesadores. .................................................................................................................. 5
Capitulo 4.2.- PROCESADORES CISC Y RISC................................................................................................ 7
Arquitectura de los conjuntos de instrucciones .............................................................................................. 7
Conjunto de instrucciones complejas...........................................................................................................................7
Conjunto de instrucciones reducidas ...........................................................................................................................7
Diferencias arquitectónicas..........................................................................................................................................7
PROCESADORES ESCALARES CISC ......................................................................................................... 9
Familias de microprocesadores CISC........................................................................................................................10
PROCESADORES ESCALARES RISC ....................................................................................................... 12
Procesadores RISC escalares representativos: ...........................................................................................................12
Los impactos del RISC ..............................................................................................................................................13
Capitulo 4.3.- PROCESADORES SUPERESCALARES Y VECTORIALES.................................................... 15
Procesadores Superescalares...................................................................................................................... 15
Arquitectura VLIW......................................................................................................................................... 18
El Pipelinig en los procesadores VLIW.....................................................................................................................19
VLIW OPPORTUNITIES .........................................................................................................................................19
Procesadores Vectorial y Simbólico ............................................................................................................. 20
Instrucciones vectoriales............................................................................................................................................20
Pipelines vectoriales ..................................................................................................................................................20
Procesadores simbólicos.............................................................................................................................. 21
ETSII – Dpto. Tecnología Electrónica
Página: 1 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Capitulo 4.1.-TECNOLOGÍA DE PROCESADORES AVANZADOS
Vamos a estudiar la arquitectura de los modernos procesadores:
• CISC,
• RISC,
• Superescalares,
• VLIW,
• Super-pipelined,
• Vectoriales y
• Simbólicos.
Los procesadores escalares y vectoriales se emplean en cálculo numérico y los simbólicos en aplicaciones de IA.
Espacio de diseño de los procesadores
Representamos en una grafica la frecuencia de señal de reloj y los ciclos por instrucción (CPI) para varios
modelos de mismas familias y para familias diferentes.
CPI
Ciclos por instrucción
20
10
Escalar
CISC
5
Espacio de
diseño de la
mayoría de los
futuros
procesadores
Superpipelined
Escalar
RISC
2
1
0,5
VLIW
0,2
Superescalar
RISC
Superordenador
Vectorial
0,1
Ciclos de reloj
MHz
5
10
20
50
100
200
500
1000
Como la tecnología de implementación en los procesadores varia muy rápidamente, la señal del reloj varia
gradualmente desde valores mas pequeños a valores mayores.
Otra cuestión a observar es que los fabricantes de procesadores están tratando de reducir el numero de CPI
(Ciclos por Instrucción) usando HW y SW adecuado.
Esta grafica representa la década hasta los 95, según vaya avanzando la tecnología, algunas de las zonas se
desplazaran hacia la zona derecha inferior.
ETSII – Dpto. Tecnología Electrónica
Página: 2 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Procesadores CICS
Los procesadores convencionales como, Intel 486, Motorota 68040, VAX 8600, IBM 390,... se clasifican en la
familia de arquitecturas denominada como de computación de conjuntos de instrucciones complejas CISC
(Complex-Instruction-Set Computing).
Trabajan con frecuencias de reloj de 33 a 50 MHz.
Actualmente estas velocidades de reloj están por encima del GHz.
Con control programado, cada instrucción maquina es interpretada por un microprograma localizado en una
memoria del CI del procesador.
Las instrucciones compuestas son decodificadas internamente y ejecutadas con las microinstrucciones que
están almacenadas en la ROM interna.
Estos procesadores tienen un valor de CPI entre 1 y 20.
Procesadores RICS
Otra familia a describir será la RISC, computación de conjuntos de instrucciones reducidas (Reduced-InstructionSet Computing), por ejemplo, los Intel i860, SPARC, MIPS R3000, IBM RS-6000, .....
Estos poseen una frecuencia de reloj mas elevada entre 20 y 120 MHz por su tecnología de implementación y
consiguen con el uso de un control por HW reducir el numero de CPI de 1 o 2.
Una clase especial de procesadores RISC son los procesadores superescalares, que permiten la ejecución de
múltiples instrucciones en el mismo ciclo.
El valor de CPI de estos procesadores lógicamente, debe de ser menor que en un procesador RISC genérico.
Su frecuencia de reloj, eso si, se encuentra en el mismo rango que la de los procesadores RISC.
Procesadores VLIW
Los procesadores de arquitectura VLIW (Very Long Instruction Word) utilizan unidades aun mas funcionales que
en el caso de los procesadores superescalar.
Con esto, el valor de CPI en estos procesadores puede ser aun mas reducido.
Debido al uso de instrucciones muy largas (256 a 1024 bits) la mayoría de los procesadores VLIW se han
implementado con control microprogramador.
La frecuencia de reloj es mas lenta por el empleo de memoria de solo lectura (ROM)
Un gran numero de ciclos de micro código de acceso puede ser necesitado para algunas instrucciones.
Procesadores Superpipelined
Los procesadores Superpipelined poseen relojes multifase con una mucho mas elevada frecuencia de reloj, que
puede ir de 100 a 500 MHz. Lo que ocurre es que el rango de CPI es también muy grande a pesar de que se
este tipo de procesadores se usa paralelamente con multi-instrucciones.
Las supercomputadoras vectoriales usan este tipo de procesador superpipelined y usan múltiples unidades
funcionales para realizar operaciones con escalares y vectores.
El numero efectivo de CPI usado en una supercomputadora debe de ser muy bajo, lo ideal, es que este
posicionado en la esquina inferior derecha de la grafica. Pero al intentar alcanzar esta posición, el coste se
incrementa considerablemente.
ETSII – Dpto. Tecnología Electrónica
Página: 3 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Instrucciones Pipelines
El ciclo de ejecución de una instrucción incluye cuatro fases: lectura, descodificación, ejecución y escritura.
Estas fases se suelen realizar por una instrucción pipeline como se ve en la figura.
Instrucciones
sucesivas
Ejecución pipeline en un procesador escalar
Ciclos de reloj
Así podemos modelar un procesador de instrucciones con esta estructura simple compuesta por pipelines.
Usaremos esta estructura pipeline para la explicación de los siguientes tipos de procesadores.
La pipeline, como una cadena de ensamblaje, recibe instrucciones sucesivas de sus entradas y las ejecuta
secuencialmente, con solapamiento según las instrucciones fluyan a través de ella.
Un ciclo de pipeline se define como el tiempo necesario para cada fase para completar su operación, asumiendo
igual retraso en cada fase.
Las características básicas de esta estructura pipeline son las siguientes:
1. Ciclo de instrucción simple pipeline: El periodo de reloj para una fase de la instrucción pipeline.
Se considera que todas las fases tiene el mismo tiempo.
2. Latencia de ejecución de instrucciones: es el tiempo en ciclos requerido entre la gestión de 2
instrucciones.
3. Relación de instrucciones: es el número de instrucciones procesadas por ciclo.
Este parámetro también se denomina grado de una computadora superescalar.
4. Latencia de operación, según las operaciones sean simples, como por ejemplo sumas, cargas,
almacenamientos, movimientos..... o complejas, requiriendo una latencia mayor, operaciones complejas
pueden se la división, perdidas de cache.
Las latencias, en ambos casos se miden en número de ciclos.
5. Conflicto de recursos, esto se refiere a la situación en la que 2 o mas instrucciones necesitan usar la
misma unidas funcional al mismo tiempo.
Un procesador escalar básico se define como una maquina con una instrucción gestionada por ciclo, con latencia
1 para una operación simple.
La instrucción pipeline puede ser totalmente utilizada si instrucciones sucesivas pueden entrar continuamente en
un ratio de una por ciclo, como se ve en la figura anterior.
La latencia puede ser mayor de un ciclo por varias razones.
Si por ejemplo esta latencia es 2 ciclos por instrucción, la tubería puede estar infrautilizada.
Instrucciones
sucesivas
Ejecución pipeline en 2 ciclos por instrucción
ETSII – Dpto. Tecnología Electrónica
Página: 4 / 21
Ciclos de reloj
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Otra situación de infrautilización de pipeline es cuando el ciclo de pipeline es doblado combinado fases.
Las fases de lectura y descodificación se combinan en una única fase de pipeline y las operaciones de ejecución
y escritura se combinan en otra fase.
Instrucciones
sucesivas
Ejecución pipeline en 2 ciclos por instrucción
Ciclos de reloj
Procesadores y Coprocesadores.
El procesador central de un ordenador se denomina CPU - Unidad Central de Procesamiento.
DMA ( Acceso Directo a Memoria)
Memoria principal
Bus Memoria
Procesador
Enteros
ALU
Subsistema de
I/O
Cache
Unidad
Coma
Flotante
Almacenamiento
Masivo
( Discos,
Cintas,......)
CU
Usuarios
CPU
CPU con unidad de coma flotante
Esta CPU es esencialmente un procesador escalar, el cual esta compuesto por múltiples unidades funcionales,
como puedan ser, principalmente, un acelerador de coma flotante y la unidad aritmético lógica (ALU), entre otros.
La unidad de coma flotante puede ser construida en un coprocesador que estará conectado a la CPU.
ETSII – Dpto. Tecnología Electrónica
Página: 5 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
DMA ( Acceso Directo a Memoria)
Memoria principal
Instrucciones
y Datos
Datos
Subsistema de
I/O
CPU
Coprocesador
Almacenamiento
Masivo
( Discos,
Cintas,......)
Instrucciones
Usuarios
CPU con un coprocesador
Este coprocesador ejecuta operaciones según se lo ordene la CPU.
El coprocesador puede ser un acelerador de coma flotante que ejecute instrucciones escalares, un procesador
vectorial que ejecute operaciones vectoriales o un procesador de señales digitales (DSP), o un procesador LISP
ejecutando programas AI.
Los coprocesadores no pueden llevar a cabo operaciones de I/O.
Coprocesador
Intel 8087
Intel 80287
Intel 387 DX
Intel i486
Motorota MC68882
Weitek 3167
Weitek 4167
Procesador
Intel 8086 / 8088
Intel 80286
Intel 386 DX
Intel i486
( incluido en el chip)
Motorota
MC68020 / 68030
Intel 386 DX
Intel i486
Características del coprocesador
5 MHz -- 70 ciclos para la suma y 700 ciclos para lógica
12,5 MHz -- 30 ciclos para la suma y 264 ciclos para lógica
33 MHz -- 12 ciclos para la suma y 210 ciclos para lógica
33 MHz -- 8 ciclos para la suma y 171 ciclos para lógica
40 MHz -- 56 ciclos para la suma y 574 ciclos para lógica
33 MHz -- 6 ciclos para la suma y 365 ciclos para lógica
33 MHz -- 2 ciclos para la suma.
La tabla nos muestra una lista de algunos pares procesador/coprocesador que se han desarrollado para
aumentar la velocidad de las operaciones numéricas.
Comentar finalmente que los coprocesadores no pueden ser usados de manera individual.
El procesador y el coprocesador operan en relación y de manera compatible, se puede decir que trabajan de
manera que tenemos un procesador “amo” y el resto son procesadores “esclavos”.
Eso si, por ciertas razones, un procesador esclavo, puede ser mas potente que su “host”.
ETSII – Dpto. Tecnología Electrónica
Página: 6 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Capitulo 4.2.- PROCESADORES CISC Y RISC.
Arquitectura de los conjuntos de instrucciones
El conjunto de instrucciones en una computadora especifica son los comandos primitivos y las instrucciones de
maquina que el programador puede usar a la hora de programar la máquina.
La complejidad de estos conjuntos de instrucciones puede venir determinada por los formatos de datos, de
instrucciones, métodos de direccionamiento y mecanismos de flujo de control, entre otros.
Por la experiencia en diseño de procesos, 2 arquitecturas han predominado: CISC y RISC.
Conjunto de instrucciones complejas
En las primeras épocas de la computación, la mayoría de las computadoras trabajaban con conjuntos de
instrucciones que eran relativamente sencillas. La razón de esto era que el HW era muy caro.
A lo largo de la evolución de las computadoras en las ultimas 3 décadas, el precio del HW ha bajado muchísimo,
y el coste del SW ha ido subiendo gradualmente.
El resultado de esto es que una o mas funciones han sido implementadas en el HW, haciendo así el conjunto de
instrucciones mucho mas grande y complejo.
Un conjunto de instrucciones normal para una arquitectura CISC contiene aproximadamente de 125 a 350
instrucciones, usando formatos variables de instrucción y formatos de datos y un conjunto de 8 a 24 registros de
propósito general (GPRs).
Conjunto de instrucciones reducidas
Después de 2 décadas de uso de procesadores CISC, los usuarios de computadoras se dieron cuenta de que
solamente el 25% de las instrucciones de un conjunto complejo de instrucciones son usados frecuentemente
mas de un 95% del tiempo.
Esto implica que el 75% de las instrucciones que soporta el HW no son usadas mas que rara vez.
¿Por que entonces debemos de gastar valiosa área de Chip para funciones que se ejecutan muy raramente?.
Con instrucciones elaboradas de baja frecuencia, que demanda grandes micro-códigos necesarios para
ejecutarlos, puede ser mas ventajoso el eliminarlas totalmente del HW y crear una SW que se ocupe de
implementarlas. Aun cuando este SW va a ser mas lento, el resultado va a ser positivo debido a la escasa
frecuencia de aparición y uso.
El incluir instrucciones que se usan raramente en este SW, va a liberara área de Chip, lo que hará que podamos
construir procesadores RISC mas potentes.
Un conjunto de instrucciones normal RISC contiene menos de 100 instrucciones con un formato de 32 bits.
Solamente se usan de 3 a 5 modos de direccionamiento, la mayoría de las instrucciones son basadas en
registro, el acceso a memoria se hace solamente por lectura/almacenamiento.
Diferencias arquitectónicas
Describimos las diferencias en la arquitectura de los procesadores CISC y RISC.
En la figura se representa gráficamente la diferencia entre un procesador CISC y uno RISC.
Dirección de datos e
instrucciones.
CU
Memoria de control
microprogramado
Cache
Memoria principal
Arquitectura CICS con control micro-programado y cache unificado
ETSII – Dpto. Tecnología Electrónica
Página: 7 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
CU de
control por
HW
Dirección de datos
Cache de
Datos
Cache de
Instrucciones
Memoria principal
Arquitectura RICS con control por HW y cache para Instrucciones y Datos
Estas diferencias no se van a mantener en el futuro, porque los procesadores que aparezcan van a contener
elementos y características de ambos tipos.
La arquitectura CISC convencional usa un cache unificado para gestionar datos e instrucciones.
Con esto, deben de compartir el mismo camino datos/instrucciones.
En un procesador RISC, se usan caches separados para datos e instrucciones, con diferentes modelos de
acceso.
Como siempre, existen excepciones y por poner un ejemplo, existen procesadores CISC que usan códigos split
El uso de control micro-programado se encuentra el los CISC tradicionales, y el control por HW puede ser
encontrado en la mayoría de los RISC.
En los primeros CISC, se necesitaba memoria de control ROM, lo que hacia mas lenta la ejecución.
Los CISC modernos usan también control por HW.
Esto quiere decir que los split caches y controles HW no se usan solamente en las maquinas RISC.
El uso del control por HW reducirá efectivamente el numero de CPIs a una instrucción por ciclo si el pipelining se
mantiene en estado optimo.
Algunos CISC usan caches split y control por HW.
Arquitectura
característica
Tamaño del set de
instrucciones
y
formato
de
las
instrucciones
Modos
de
direccionamiento
Registros
de
propósito general y
modelos de cache
Velocidad de reloj y
CPI
Control de CPU
CICS
RISC
Gran conjunto de instrucciones con
varios formatos.
16 – 64 bits por instrucción.
Pequeño conjunto de instrucciones con
formato fijo de 32 bits.
La mayor parte de las instrucciones
basadas en registros.
Limitado a 3 – 5
12 – 24
8 – 24 GPRs
Cache unificada de instrucciones y
datos
1992 :
33 – 50 MHz con CPI entre 2 y 15
Micro-programado
usando
ROM,
actualmente por HW
32 – 192 GPRs
Cache individuales para instrucciones y
datos
1993 :
50 – 150 MHz con CPI < 1,5
Control por HW
El gran numero de instrucciones usados en un procesador CISC es el resultado del uso de instrucciones de
formato variable y del uso de mas de una docena de modos de direccionamiento.
Con pocos GPRs, muchas mas instrucciones acceden a la memoria para realizar operaciones. El numero de CPI
entonces es bastante elevado, como resultado de los grandes micro-códigos usados para controlar la ejecución
de algunas de las instrucciones complejas.
En el caso de los RISC se usan instrucciones de 32 bits que son, predominantemente, basadas en registros.
Con unos pocos y simples modos de direccionamiento, el ciclo de acceso a memoria se divide en operaciones
de acceso pipelined que incluirán el uso de caches y registro de trabajo.
Usando un registro de archivos grande, y caches separados para datos e instrucciones se nos beneficiara el
direccionamiento interno de datos y se elimina el almacenamiento innecesario de datos intermedios.
Con control por HW, el numero de CPI se reduce a 1 para la mayoría de las operaciones RISC.
ETSII – Dpto. Tecnología Electrónica
Página: 8 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
PROCESADORES ESCALARES CISC
El procesador escalar, en los procesadores mas simples, ejecuta instrucciones usando operandos de punto fijo.
Procesadores escalares mas potentes ejecutan operaciones de alta integración y operaciones en coma flotante.
Un procesador escalar moderno posee ambas unidades de enteros y de coma flotante el la misma CPU.
DMA ( Acceso Directo a Memoria)
Memoria principal
Bus Memoria
Procesador
Enteros
ALU
Subsistema de
I/O
Cache
Unidad
Coma
Flotante
Almacenamiento
Masivo
( Discos,
Cintas,......)
CU
Usuarios
CPU
CPU con unidad de coma flotante
En el caso ideal, un procesador CISC debe de tener las mismas prestaciones a las que tendría un procesador
escalar de las mismas características.
Instrucciones
sucesivas
Ejecución pipeline en un procesador escalar
Ciclos de reloj
Lo que ocurre es que normalmente el procesador suele estar underpipelined.
Las causas de esto pueden ser la dependencia de datos entre instrucciones, penalizaciones en la ramificación y
otros conflictos, como se vera mas adelante.
Instrucciones
sucesivas
Ejecución pipeline en 2 ciclos por instrucción
ETSII – Dpto. Tecnología Electrónica
Página: 9 / 21
Ciclos de reloj
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Otro caso que puede darse es causado por usar un ciclo de reloj que es mayor que la latencia de operación..
Instrucciones
sucesivas
Ciclos de reloj
Ejecución pipeline en 2 ciclos por instrucción
Finalmente decir que el mayor problema para el diseñador va a ser la reducción del ciclo de reloj para conectar
este a la latencia de operaciones simples.
Esto se resuelve en la arquitectura RISC.
Vemos ahora como las técnicas RISC, superescalar y superpipelining pueden ser aplicadas para mejorar las
prestaciones
Consola
Bus de consola
Subsistema
I/O
Bus de direcciones
Enteros
ALU
Unidad de
Instrucciones
( 16 GRPs)
Unidad
Coma
Flotante
Bus de
operandos
Cache
16 KB
Memoria
de control
Control de
Memoria y
sistemas de
I/O
Bus de memoria
Almacenamiento
Masivo
( Discos,
Cintas,......)
Memoria principal
Bus de escritura
CPU del VAX 8600 con arquitectura típica de procesador CICS
La CPU de este ejemplo contiene dos unidades funcionales para ejecución e instrucciones de coma flotante.
Tenemos un cache que se usa para instrucciones y datos.
Tenemos 16 GPRs en la unidad de instrucciones.
El pipelinig de instrucciones se ha construido con 6 etapas, como en la mayoría de las maquinas CICS.
El CPI de las instrucciones varia entre 2 y 20 ciclos, debido al empleo de largas secuencias de instrucciones y
operaciones de control por HW.
Familias de microprocesadores CISC
Procesadores Intel :
• 8 bits : 8008, 8080, 8085
• 16 bits : 8086, 8088,80186,80286
• 32 bits : 80386, 80486, 80586
Procesadores Motorola :
• 8 bits :6800
• 16 bits : 68000
• 32 bits : 68020, 68030, 68040.
ETSII – Dpto. Tecnología Electrónica
Página: 10 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Bus de Instrucciones
ATC de
Instrucciones
Cache de
Instrucciones
Bus de
Direcciones
( 32 bits)
D. I.
Buscar Inst
Controlador de
Instrucciones
Conversor
Decodifica
Ejecución
Bus de
Controladores
Unidad de memoria de Instrucciones
Calcula DE
Bus de Datos
e Instrucciones
( 32 bits)
Busca DE
Unidad de memoria de Datos
Escritura
Unidad de Punto
Flotante
Ejecución
Controlador de
Datos
Escritura
Unidad de Enteros
ATC de
Datos
Cache de
Datos
D.D.
Bus de
Señales de
Control
Bus de Datos
Arquitectura del microprocesador Motorola MC68040
Cache de 4 KB de datos
Cache de 4 KB de instrucciones
100 instrucciones con 16 registros multi-propósito
Cache de traslación de direcciones ATC.
Unidad de integración organizada en una pipeline de 6 etapas :
• Buscar Instrucciones.
• Decodificación
• Calculo de dirección efectiva
• Buscar dirección efectiva
• Ejecución
• Escritura
La unidad de punto flotante esta constituida en tres etapas
ETSII – Dpto. Tecnología Electrónica
Página: 11 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
PROCESADORES ESCALARES RISC
El procesador genérico RISC se denomina RISC escalar, porque ha sido diseñado para ejecutar una instrucción
por ciclo, como ocurría en el procesador escalar.
En teoría, ambos procesadores RISC y CISC deberían de tener prácticamente el mismo rendimiento, si
trabajaran con la misma señal/frecuencia de reloj e igual longitud de programa. Esto no siempre ocurre, porque
la arquitectura afecta la calidad y densidad del código generado por los compiladores.
El diseño RISC aumenta su potencia colocando algunas de las operaciones usadas con menos frecuencia en el
interior de un Software.
La necesidad de un buen compilador es mucho mayor en un procesador RISC que en uno CISC.
El paralelismo en el nivel de instrucciones se explota en ambos tipos de procesadores.
Procesadores RISC escalares representativos:
• Sun SPARC CY7C601
• Intel i860
• Motorota 88100
• AMD 29000
entre las características a destacar :
• Conjunto de instrucciones de 51 a 124 instrucciones básicas
• Instrucciones de 32 bits
• Numero de registros entre 32 y 192
• Unidad de punto flotante en chip en los modelos i860 y M88100
Dirección
FI Registro estático
Dato
Resultados FPP
Buffer direcciones de
instrucciones
( 2 x 64)
Procesador de
Punto Flotante
Pipelined
de 64 bits
Fichero registros de
datos en
Punto Flotante
( 32 x 32)
Cola de Punto Flotante
( 3 x 64)
Dirección instrucción
Operandos FP
Control Fichero
Registros
Instrucciones FP
Unidad de Control
Instrucciones en Punto
Flotante
Control FP
Arquitectura del procesador Sun Microsystems Sparc CY7C602
( Unidad de coma flotante esperada en 2 chips)
Este procesador ejecuta con un conjunto de 32 registros enteros de 32 bits, 8 de estos registros son registros
globales, compartidos por todos los procesos, los 24 restantes van asociados solamente con un procedimiento.
Cada registro esta dividido en 3 partes, Entradas (Ins), salidas (Outs) y Locales.
ETSII – Dpto. Tecnología Electrónica
Página: 12 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Dirección externa de 32 bits
Unidad de Gestión
de Memoria
Cache Instrucciones
4 KB
Cache datos
8 KB
Dirección
Instrucciones
Dirección
Datos
Datos
Cache
128 bits
Instrucción FP
Datos
externos
64 bits
64
Núcleo Instrucción
32
Unidad de Control
del Bus
32
32
32
Unidad Entero
RISC
Unidad de Control de
Punto Flotante
Registros del Nucleo
Registros FP
64
Dest
Src1
Src2
64
64
Ki
T
Unidad Grafica
Enlaces de registros
Unidad Sumadora
Pipelined
Kr
Unidad Multiplicadora
Pipelined
Arquitectura del procesador i860
Es un procesador RISC de 64 bits, fabricado en chips con mas de 1 millón de transistores
Alcanza hasta los 80 Mflops
Dispone de 9 unidades funcionales conectadas
Ejecuta 82 instrucciones:
•
•
•
•
42 RISC enteros
24 Punto Flotante
10 Graficas
6 Operaciones de pseudo-ensamblador
Buses internos y externos de direcciones de 32 bits
Bus de datos internos de 64 bits
Cache de datos compuesto por una memoria asociativa de 2 vías y 8 KB, transmite 128 bits por ciclo de reloj
La Unidad de Gestión de Memoria soporta 4 KB para páginas de memoria virtual.
Los impactos del RISC
El debate entre los diseñadores de RISC y CICS ha durado más de 1 década.
Los procesadores RISC muestran mejores prestaciones que los CICS si la longitud del programa no se
incrementa demasiado.
Por la experiencia acumulada se puede decir que en la conversión de un programa CICS a un su equivalente en
RSIC se incrementa la longitud del código en un 40 %, debido a que un procesador RISC carece de ciertas
instrucciones sofisticas de las que posee un procesador CICS, por supuesto depende del comportamiento del
programa y no es generalizable.
ETSII – Dpto. Tecnología Electrónica
Página: 13 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Este incremento de la longitud del código es mucho más pequeño que el incremento en la velocidad de reloj y la
reducción de CPIs, pero sin embargo este incremento de la longitud de un programa RICS implica mayor tráfico
de instrucciones y mayor demanda de memoria.
Otro problema de los RISC es causado por el uso de un archivo de registros grande.
A pesar de que de un conjunto de registros más grande puede gestionar más resultados intermedios y reducir el
tráfico de datos entre la CPU y la memoria, el sistema de decodificación de registros será mas complicado.
El mayor tiempo de acceso a registro nos pide una demanda mayor al compilador para realizar las funciones de
registro de ventana.
Otra desventaja de los RISC se basa en su control por HW, que es menos flexible.
Las desventajas del RISC están directamente relacionadas con algunas de sus ventajas.
Las diferencias entre las arquitecturas RISC y CISC se han reducido actualmente porque ahora los 2 están
siendo implementados con la misma tecnología HW.
Los procesadores VAX 9000, Motorota 88100 y Intel i586 han construidos con prestaciones mixtas de ambas
arquitecturas.
Realmente son las características de la aplicación las que determinan la mejor elección de una arquitectura de
procesador.
ETSII – Dpto. Tecnología Electrónica
Página: 14 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Capitulo 4.3.- PROCESADORES SUPERESCALARES Y VECTORIALES
Los procesadores escalares CISC o RISC pueden ser mejorados con una arquitectura superescalar o vectorial.
Recordar que los procesadores escalares son aquellos que ejecutan una instrucción por ciclo de maquina.
Solamente una instrucción es gestionada por ciclo, y solo podemos esperar a que se complete una operación en
la pipeline por ciclo.
En un procesador superescalar, se usan pipelines de múltiples instrucciones. Esto implica que múltiples
instrucciones se gestionan por ciclo, y se generan múltiples resultados en ese ciclo.
Un procesador vectorial ejecuta instrucciones “vector” en arrays de datos.
Procesadores Superescalares
Los procesadores superescalares están diseñados para explotar el paralelismo en el nivel de instrucciones en
los programas del usuario. Solamente se pueden ejecutar en paralelo las instrucciones independientes sin
causar un estado de espera.
La cantidad de este paralelismo en el nivel de instrucciones varia ampliamente dependiendo del código
ejecutado.
Pipeline en los procesadores escalares:
Instrucciones
sucesivas
Procesador superescalar de grado m=3
Ciclos de reloj
En esta figura se muestra el uso en paralelo de 3 pipelines en un procesador de grado 3.
En este sentido, el procesador escalar base, implementado como RISC o CISC tiene un grado m =1.
Un procesador superescalar de grado m puede gestionar m instrucciones por ciclo.
Para utilizar enteramente este procesador, m instrucciones deben de ser ejecutados en paralelo.
Esta situación no tiene porque ser cierta en todos los ciclos de reloj. En ese caso, alguna de las pipelines estará
en estado de espera.
En un procesador superescalar, la latencia de operación simple requiere solamente un ciclo, como ocurría en el
procesador escalar base. Debido a la necesidad de tener un elevado grado de paralelismo en el nivel de
instrucciones en el programa, los procesadores superescalares necesitan de un compilador optimizado para
explotar el paralelismo.
Los procesadores superescalares fueron desarrollados originalmente como una alternativa a los procesadores
vectoriales.
En teoría, un procesador superescalar debería dar las mismas prestaciones que una maquina con HW vectorial.
Una maquina superescalar que tenga coma fija, coma flotante carga y branch todo ello en un mismo ciclo, dará
efectivamente el mismo paralelismo efectivo que una maquina vectorial que ejecuta una carga de vector dirigida
a un vector suma, con un elemento cargado y añadido por ciclo.
ETSII – Dpto. Tecnología Electrónica
Página: 15 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Una arquitectura superescalar típica se muestra en la figura:
Memoria
Instrucciones
Fichero
Registros
Buffer
Re-ordenador
Cache
Instrucciones
Decodificador
Branch
ALU
Shifter
Load
Store
Unidad RISC Enteros
Unidad RISC Coma Flotante
Fichero
Registros
Buffer
Re-ordenador
Decodificador
ADD
Convert
MULTI
DIV
Load
Direc.
Memoria
Instrucciones
Store
Data
Cache Datos
Se utilizan múltiples instrucciones pipelines.
El cache de instrucciones proporciona múltiples instrucciones por (fetch, traer o leer).
El número de instrucciones enviadas a varias unidades funcionales puede variar en cada ciclo.
Este numero esta limitado por las dependencias entre datos y los conflictos entre instrucciones que son
decodificadas simultáneamente.
La unidad de enteros y de punto flotante, se construyen con múltiples unidades funcionales.
ETSII – Dpto. Tecnología Electrónica
Página: 16 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Existen múltiples buses de datos entre las distintas unidades funcionales.
En teoría, todas las unidades funcionales pueden ser usadas si no existen dependencias o conflictos entre ellas
durante un ciclo dado.
Debido al bajo número de CPI obtenido y a las altas frecuencias de reloj que se consiguen, la mayor parte de los
procesadores superescalares sobrepasan con mucho las prestaciones de los procesadores escalares.
El numero máximo de instrucciones ejecutadas por ciclo varia de 2 a 5 en estos procesadores.
Cache
Instrucciones
( 8 KB)
Branch Procesor
Procesador
Coma Fija
32
Almacenamiento
y I/O
Procesador
Coma Flotante
32
64
64
Cache Datos ( 64 KB)
128
128
Memoria Principal ( 8 a 128 MB)
Arquitectura IBM RS/6000
Este procesador superescalar es de 1990, tiene 3 unidades funcionales: Branch, Coma Fija y Coma Flotante que
pueden trabajar en paralelo.
El procesador Branch puede arrancar hasta 5 instrucciones por ciclo, estas incluyen:
• 1 instrucción Branch en el procesador Branch
• 1 instrucción de punto fijo en el procesador de enteros
• 1 instrucción de condicional en el procesador Branch
• 1 instrucción de punto flotante en el procesador de coma flotante que cuenta como 2.
El RS-6000 esta implementado con control por HW y dispone de buses de 32 y 64 bits de tamaño de palabra.
El diseño de este procesador esta optimizado por aplicaciones científicas y de ingeniería que requieren de
cálculo numérico intensivo.
Ha demostrado también un bien rendimiento en entornos comerciales multiusuario.
Otros procesadores superescalares representativos:
• Intel i960CA
• DEC 21064
ETSII – Dpto. Tecnología Electrónica
Página: 17 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Arquitectura VLIW
LA arquitectura VLIW (Very Long Instruction Word) se caracteriza por 2 conceptos bien establecidos:
•
•
Procesamiento superescalar
Microcódigo horizontal, diferentes campos en 1 instrucción larga suministran código a varias
unidades funcionales.
Una maquina VLIW tiene palabras de instrucción de cientos de bits de largo.
Como se ve en la figura, múltiples unidades funcionales se usan al mismo tiempo en la maquina VLIW.
Memoria
Principal
Fichero Registro
Unidad
Load
Store
Unidad
ADD
FP
Unidad
ALU
Unidad
Branch
Procesador típico VLIW
Todas las unidades funcionales comparten el uso de un gran archivo de registro común.
Las operaciones que van a ser realizadas por las unidades funcionales se coordinan en una instrucción VLIW,
con 256 o 1024 bits por palabra de instrucción.
Load / Store
FP Add
FP Multiply
Branch
-------
IntegerALU
El concepto VLIW es copiado del microcódigo horizontal.
Los diferentes campos de la larga palabra de instrucción llevan los códigos a ser usados por las diferentes
unidades funcionales.
Los programas escritos en las tradicionales palabras cortas de instrucción (es decir 32 bits) deben de ser
compactadas entre si para formar las instrucciones VLIW.
Esta compactación del código debe de ser realizada por un compilador que pueda predecir las salidas usando
estadísticas del tiempo o heurísticas.
ETSII – Dpto. Tecnología Electrónica
Página: 18 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
El Pipelinig en los procesadores VLIW
La ejecución de instrucciones en un procesador ideal VLIW se ve en la figura.
Buscar
Escribir
Decode
Ejecutar
3 Oper.
Ejecución en un procesador VLIW de grado m = 3
Ciclos de reloj
Cada instrucción especifica múltiples operaciones. Las maquinas VLIW se comportan de similar manera a las
maquinas superescalares con tres diferencias principales:
1. La decodificación de las instrucciones VLIW es mas fácil que en el caso de instrucciones superescalar.
2. La densidad de código de la maquina superescalar es mejor cuando el paralelismo a nivel de
instrucciones disponible es menor que el explotable por una maquina VLIW.
Esto se debe a que el formato fijado VLIW incluye bits para operaciones no ejecutables, mientras que el
procesador superescalar gestiona solamente instrucciones ejecutables
3. Una maquina superescalar puede ser compatible en código y objeto con una gran familia de maquinas
no paralelas. Por el contrario, una maquina VLIW que explote diferentes cantidades de paralelismo
requerirá diferentes conjuntos de instrucciones
El paralelismo de instrucciones y el movimiento de datos en una arquitectura VLIW esta completamente
especificado a la hora de la compilación. Run time resource scheduling and synchornization son entonces
completamente eliminados.
Uno puede considerar el procesador VLIW como un caso extremo del procesador superescalar en el cual todas
las operaciones independientes aun no demandadas son empaquetadas de manera sincronizada en previsión
El valor de CPI de un procesador VLIW puede ser aun menor que el de un procesador superescalar.
Por ejemplo la computadora Multiflow trace permite mas de siete operaciones ejecutadas al mismo tiempo con
256 bits por instrucción VLIW.
VLIW OPPORTUNITIES
En la arquitectura VLIW, se explota el paralelismo aleatoriamente entre operaciones escalares, sin tenerse en
cuenta el paralelismo regular o síncrono como en una supercomputadora vectorizada o una computadora SIMD.
El éxito en un procesador VLIW depende en gran medida de la eficiencia en la compactación del código.
La arquitectura es totalmente incompatible con cualquiera de los procesadores convencionales de propósito
general.
El paralelismo de instrucciones embebido en el código compactado puede requerir una latencia diferente para
ser ejecutado por diferentes unidades funcionales, a pesar de que las direcciones son gestionadas al mismo
tiempo.
Diferentes implementaciones de arquitecturas VLIW pueden ser no compatibles binariamente unas con las otras.
Codificando explícitamente el paralelismo en las instrucciones, el procesador VLIW puede eliminar el HW y SW
necesarios para detectar el paralelismo. La principal desventaja de la arquitectura VLIW es su simplicidad en
estructura de HW y conjunto de instrucciones. El procesador VLIW se comporta bien en aplicaciones científicas
donde el comportamiento del programa es mas predecible. En aplicaciones de propósito general, puede que la
arquitectura no trabaje bien.
Debido a ser incompatible con los HW y SW convencionales, la arquitectura VLIW no ha entrado en la corriente
principal de las computadoras. La necesidad de una compilación especial y una compactación de código ha
impedido su aceptación en el mundo comercial.
ETSII – Dpto. Tecnología Electrónica
Página: 19 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Procesadores Vectorial y Simbólico
Por definición, un procesador vectorial es un coprocesador diseñado específicamente para realizar operaciones
de computación con vectores.
Una instrucción vectorial contiene un gran array de operandos.
Los procesadores vectoriales son usados generalmente en supercomputadoras multipipelined.
Los procesadores vectoriales pueden construirse con una arquitectura registro a registro o con una arquitectura
memoria a memoria. La primera de estas arquitecturas usa instrucciones y archivos de registro de vector, la
segunda utiliza instrucciones basadas en la memoria que son mas largas, incluyendo las direcciones de
memoria.
Instrucciones vectoriales
Las instrucciones vector basadas en registros aparecen en la mayoría de los procesadores vectoriales registro a
registro como en los superordenadores CRAY.
Las operaciones vectoriales, en todos los casos, son realizadas por pipelines, incluyendo pipelines funcionales y
pipelines de acceso-memoria.
La longitud de los vectores debe de ser la misma en todos los operandos usados en una instrucción vectorial.
Los vectores más largos, que excedan la longitud del registro, n, deben de ser segmentados en el tiempo para
ajustarse a la longitud del registro.
Las operaciones vectoriales basadas en memoria se pueden encontrar en procesadores memoria a memoria.
Aquí la longitud del vector no esta limitada por la longitud del registro. Los vectores largos se tratan en una en
forma de corriente usando superpalabras, que se obtienen de muchas otras palabras de memoria más cortas.
Pipelines vectoriales
Las pipelines vectoriales pueden ser utilizadas en cualquier procesador escalar, ya sea superescalar,
superpipelined, o ambos. Utilizan la ventaja del paralelismo a nivel lazo abierto
Las pipelines vectoriales eliminaran parte del solapamiento del SW en el control de bucles.
Por supuesto, la efectividad de un procesador vectorial se basa en la capacidad y optimización de un compilador
que pueda “vectorizar” códigos secuénciales para el pipelining vectorial.
Instrucciones
sucesivas
Ejecución pipeline en un procesador escalar
Ciclos de reloj
Instrucciones
sucesivas
Ciclos de reloj
Ejecución pipeline en un procesador escalar con vectores
ETSII – Dpto. Tecnología Electrónica
Página: 20 / 21
MSA
Sistemas de Multiprocesamiento
PROCESADORES AVANZADOS
Procesadores simbólicos
El procesamiento simbólico ha sido utilizado en múltiples áreas, como puedan ser las de comprobación de
teoremas, reconocimiento de modelos, maquinas inteligentes, etc.
En estas aplicaciones, los datos y los resultados, las operaciones primitivas, el comportamiento del algoritmo,
memoria, I/O y comunicaciones son elementos especiales, elementos arquitectónicos especiales diferentes de
los elementos numéricos usados en las computaciones numéricas.
Los procesadores simbólicos han sido denominados procesadores Prolog, Lisp o manipuladores simbólicos.
Por ejemplo, un programa Lisp puede interpretarse como un conjunto de funciones entre las cuales los
datos pasan de función a función.
La ejecución concurrente de estas funciones es la base para el paralelismo.
En vez de trabajar con datos numéricos, trabajamos con programas lógicos, objetos, listas simbólicas, redes
neuronales, pizarras..., etc.
Las operaciones primitivas para la inteligencia artificial incluyen:
•
•
•
•
•
•
Buscar
Comparar
Inferencia lógica
Unificación
Filtrado
Operaciones de razonamiento
Este tipo de operaciones van a necesitar un conjunto especial de instrucciones conteniendo comparar, unir y
operaciones lógicas y simbólicas.
En este tipo de operaciones, normalmente no se usan operaciones de coma flotante.
El procesador simbólico Lisp 3600
Bus A
Registros
Procesador
Etiquetas
Buffer de la
Pila
Procesador
Punto Fijo
Instrucción en
curso
Bus B
Selector
Operandos
Memoria
Principal
Procesador
Coma Flotante
Colector de
Basura
La maquina esta dividida en varia capas.
Esto permite almacenar o agrupar para simplificar el conjunto de instrucciones.
Ejecuta la mayoría de las instrucciones Lisp en un solo ciclo.
ETSII – Dpto. Tecnología Electrónica
Página: 21 / 21
MSA