Diapositivas de la Universidad Europea sobre Estructura de Computadores. El Pdf explora arquitecturas de computadores de alto rendimiento, como procesadores vectoriales, superescalares y VLIW, así como GPU y arquitecturas neuronales. Este material de Informática para Universidad incluye diagramas y tablas comparativas para facilitar la comprensión.
Ver más15 páginas


Visualiza gratis el PDF completo
Regístrate para acceder al documento completo y transformarlo con la IA.
ue
Universidad
EuropeaEstructura de computadores
Tema 18. Máquinas de alto rendimiento
Objetivos de aprendizaje
3
1. Presentación
3
2. Procesadores vectoriales.
4
3. Procesadores superescalares y VLIW
5
4. Superescalares versus segmentados.
6
5. Procesadores en array.
7
6. GPU (Graphics Processor Unit)
8
7. Arquitecturas neuronales
9
8. Arquitecturas sistólicas
10
9. Arquitecturas DP pipeline
11
10. Transputers
12
11. Resumen
13
Referencias bibliográficas
14
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
2Estructura de computadores
Tema 18. Máquinas de alto rendimiento
Los objetivos que se pretenden alcanzar en este recurso son los siguientes:
· Identificar este tipo de arquitecturas y saber cuál es la más adecuada para
cada dominio de aplicación.
· Indagar sobre las tendencias actuales en diseño de ordenadores de alto
rendimiento.
· Analizar las diferencias existentes entre cada tipo de arquitecturas avanzadas.
10Gb/s
M.2
En 1966, Flynn estableció una clasificación del paralelismo que todavía hoy es utilizada
para describir las arquitecturas de procesamiento intenso. La clasificación de Flynn
se basa en dos características:
· Número de instrucciones que ejecutan en paralelo: una instrucción (single
instruction) o múltiples (multiple instructions).
· Número de fuentes de datos que se tratan en paralelo: una entrada (single
data) o múltiples (multiple data).
Sobre la base de estas características, la clasificación de Flynn establece cuatro tipos
de arquitecturas según el paralelismo utilizado en instrucciones y datos:
| Tipo | Descripción | Ejemplos |
|---|---|---|
| SISD | Single Instruction, Single Data. | Monoprocesador convencional. |
| SIMD | Single Instruction, Multiple Data. | Procesador vectorial, procesador en array. |
| MISD | Multiple Instruction, Single Data. | No existen arquitecturas de este tipo. |
| MIMD | Multiple Instruction, Multiple Data. | Sistemas multinúcleo y multiprocesador. |
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
3Estructura de computadores
Tema 18. Máquinas de alto rendimiento
En este recurso no profundizaremos en ninguna, pero aprenderemos la estructura, el
funcionamiento y la aplicación de las siguientes arquitecturas avanzadas:
· Procesadores vectoriales.
· Arquitecturas escalares y VLIW.
· Arquitecturas en array.
· Arquitecturas de procesamiento de gráficos (GPU).
· Arquitecturas neuronales.
· Arquitecturas sistólicas.
· DP Pipeline.
· Transputers.
Cuanto mayor es una organización empresarial, más crecen las responsabilidades y el
volumen de esas. Por tanto, la evolución natural de las organizaciones los lleva a ir
repartiendo las responsabilidades sobre las actividades que se van desarrollando.
Los procesadores vectoriales son un ejemplo de procesadores SIMD (un
solo flujo de instrucciones, múltiples flujos de datos). Se utilizan
normalmente en aplicaciones que requieren procesamiento intenso sobre
estructuras de datos, como el tratamiento de imágenes. Históricamente
se han asociado los procesadores vectoriales a los computadores de la
familia CRAY, creados por la compañía CRAY Inc. (CRAY, 2016).
Su principal característica es que la ALU (Unidad Aritmeticológica) está segmentada
en varias ALU que pueden trabajar de forma secuencial sobre los datos o en paralelo.
En la figura se muestra un esquema de un procesador vectorial. Las ALU pueden ser
vectoriales o escalares (operan con registros vectores o registros).
El controlador puede distribuir las operaciones y datos a las diferentes ALU para que
operen en paralelo. La ALU en lugar de trabajar solamente con registros individuales,
el procesador vectorial almacena los operandos y los resultados de las operaciones en
vectores (registros vectores).
Los procesadores vectoriales fueron la base de los supercomputadores entre los años
80 y 90. Los procesadores vectoriales se utilizan sobre todo para trabajar con grandes
estructuras de datos como aplicaciones que requieren tratamiento de imágenes.
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
4Estructura de computadores
Tema 18. Máquinas de alto rendimiento
LISTA DE OPERACIONES
UNIDAD DE CONTROL
DISTRIBUCIÓN PROCESOS
ALU 1
ALU 2
ALU 3
ALU 4
V
V
V
UNIDAD DE MEMORIA
Figura 1. Procesadores vectoriales.
Los procesadores vectoriales incluyen operaciones vectoriales en su juego de
instrucciones, entre las que destacamos las siguientes:
· addv.d: suma dos vectores con valores de doble precisión.
· addvs.d y mulvs.d: suma un registro escalar a cada miembro de un vector.
· mulvs.d: multiplica un registro escalar a cada miembro de un vector.
· Iv: carga de datos de doble precisión en un vector.
· sv: almacenamiento en memoria de los datos de doble precisión de un vector.
O
o
Por procesador escalar entendemos aquel procesador que tiene varias unidades de
ejecución, lo que permite paralelizar la ejecución de instrucciones, aunque la
distribución instrucciones se hace de forma secuencial.
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
5Estructura de computadores
Tema 18. Máquinas de alto rendimiento
En los procesadores superescalares existen varias unidades de ejecución segmentadas
que trabajan de forma paralela ejecutando instrucciones independientes. La
distribución de instrucciones se hace en paralelo.
En la figura inferior se muestra un esquema de un procesador superescalar:
Instrucciones
UE1
UE 2
UE3
Figura 2. Esquema de un procesador superescalar.
Los procesadores VLIW siguen la misma estructura y funcionamiento que
los procesadores superescalares. La diferencia entre un procesador VLIW y
un procesador superescalar es que el VLIW trabaja con instrucciones multi-
operación independientes entre sí. Los procesadores superescalares
utilizan hardware para detectar y resolver o minimizar el impacto de las
dependencias entre instrucciones.
Imaginemos un procesador segmentado de cinco etapas:
Búsqueda
Decodificación
Búsqueda de
operandos
Ejecución
Almacenamiento
de resultados
Si comparamos la ejecución de cuatro instrucciones independientes en un procesador
segmentado y en un procesador superescalar de dos unidades de ejecución
segmentadas, el resultado sería el siguiente:
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
6Estructura de computadores
Tema 18. Máquinas de alto rendimiento
| Tabla 1. Ejecución de cuatro instrucciones en un procesador segmentado. | |||||||
|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| F1 | I1 | I2 | I3 | I4 | |||
| F2 | I1 | I2 | I3 | I4 | |||
| F3 | I1 | I2 | I3 | I4 | |||
| F4 | I1 | I2 | I3 | I4 | |||
| F5 | I1 | I2 | I3 |
| Tabla 2. Ejecución de cuatro instrucciones en un procesador superescalar. | |||||
|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 |
| I1 | I3 | ||||
| F1 | I2 | I4 | |||
| I1 | I3 | ||||
| F2 | I2 | I4 | |||
| I1 | I3 | ||||
| F3 | I2 | I4 | |||
| I1 | I3 | ||||
| F4 | I2 | I4 | |||
| I1 | I3 | ||||
| F5 | I2 | I4 |
La mejora respecto de ejecutar cuatro instrucciones en un procesador superescalar,
frente a uno segmentado es la siguiente:
Speed-up = 8 / 6 = 1,33 veces más rápido -> mejora del 33 %.
Si el programa constara de 1 millón de instrucciones independientes -> Speed-up =
1.000.004 / 500.004 = 2 -> mejora del 100 %.
Los procesadores en array se componen de un único procesador con varias unidades
aritmeticológicas (ALU).
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
7Estructura de computadores
Tema 18. Máquinas de alto rendimiento
Los procesadores en array son arquitecturas de tipo SIMD, con una única unidad de
control donde todas las ALU ejecutan la misma instrucción (ver figura).
Cada ALU ejecuta con su propia fuente de datos, lo que hace que el grado de
paralelismo depende el número de unidades de ejecución.
S
La principal diferencia entre un procesador en array y un procesador
vectorial es que los procesadores vectoriales pueden ejecutar
instrucciones independientes en paralelo y con registros vectores en
lugar de registros escalares, lo que hace que el rendimiento de los
procesadores vectoriales sea muy superior a los procesadores en array.
Reg. Instr.
UNIDAD DE
CONTROL
A1
B1
A2
B2
An
Bn
Operación
ALU 1
ALU 2
ALU n
Figura 3. Procesador en array.
El tratamiento de gráficos e imágenes es una de las tareas que más recursos consume
en un computador. Para mejorar esta característica en los procesadores, surgieron las
unidades de procesamiento gráfico (GPU o Graphics Processor Unit).
S
Las GPU son un complemento acelerador a los procesadores para mejorar
el rendimiento del computador cuando se trabaja con aplicaciones de
diseño gráfico o videojuegos. Las GPU son mini procesadores que solo
pueden ejecutar ciertas operaciones que operan con estructuras de datos
matriciales.
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
8Estructura de computadores
Tema 18. Máquinas de alto rendimiento
La combinación de CPU-GPU convierten a las computadoras en arquitecturas
multiprocesadores heterogéneas, donde la CPU (Central Processing Unit) ejecuta
todo aquello que no puede hacer la GPU cuando se trabaja con imágenes.
Para programar las GPU se utilizan unas interfaces de programación de alto nivel
específicas para la generación y modificación de imágenes tridimensionales, llamadas
API gráficas. Estas API constan de primitivas para dibujar vértices, líneas, polígonos,
figuras 3D basadas en triángulos y en la generación de imágenes y sombras basadas en
píxeles.
Las API gráficas más utilizadas en la actualidad son:
· OpenGL (OpenGL, 2016): es multiplataforma.
· Microsoft Direct X: en entornos Microsoft Windows (Microsoft, 2016).
Las arquitecturas neuronales (ANN) son computadoras de propósito específico que se
utilizan para automatizar tareas complejas que no son sencillas de implementar con
un algoritmo secuencial.
Este tipo de arquitecturas se denominan "neuronales" porque trabajan
simulando el funcionamiento de las neuronas en el sistema nervioso
humano (ver figura inferior), donde los nodos se conectan entre sí
formando "redes neuronales". Cada nodo ejecuta cálculos sencillos, pero
no lineales, es decir, el resultado puede variar en diferentes ejecuciones.
La arquitectura debe pasar un proceso de entrenamiento antes de funcionar
correctamente.
Existen tres tipos de aplicaciones de las arquitecturas neuronales:
1. Clasificación. Se recibe un elemento en forma de conjunto de datos y se
clasifica el tipo de ejemplo recibido.
ue
Universidad
Europea
@ Copyright Universidad Europea. Todos los derechos reservados.
9