Академический Документы
Профессиональный Документы
Культура Документы
Mquinas Computadoras II
Procesadores Segmentados
y Vectoriales
Contenido
Tipos de Paralelismo
Paralelismo en Mono-Procesador
Computadoras Vectoriales
MIMD Memoria Compartida
Computadoras Multi-core
TIPOS DE PARALELISMO
Conceptos Generales
Ejecucin serial
Ejecucin paralela
Las tareas/instrucciones de un
programa son ejecutadas de
manera secuencial, una cada vez.
Varias tareas/instrucciones de un
programa son ejecutadas de
manera simultnea.
Memoria compartida
Memoria distribuida
Procesadores o
Sistemas vectoriales
Varias instrucciones
consecutivas son ejecutadas
de forma solapada casi en
paralelo.
Segmentacin al tratamiento
de grandes cadenas de datos.
Clasificacin de Flynn
La clasificacin mas popular de computadores
Basada en la clasificacin atendiendo al flujo de datos e
instrucciones en un sistema.
Un flujo de instrucciones es el conjunto de instrucciones secuenciales
que son ejecutadas por un nico procesador,
y un flujo de datos es el flujo secuencial de datos requeridos por el flujo
de instrucciones.
Cuatro categoras:
Una secuencia de
instruccin, una
secuencia de datos
(SISD)
Una secuencia de
instruccin, mltiples
secuencias de datos
(SIMD)
Mltiples secuencias de
instruccin, una
secuencia de datos
(MISD)
Mltiples secuencias de
instruccin, mltiples
secuencias de datos
(MIMD)
Monoprocesadores
Procesadores
vectoriales
Procesadores
matriciales
Memoria compartida
(fuertemente acoplada)
Memoria distribuida
(dbilmente acoplada)
Clusters
Multiprocesador
simtrico (SMP)
Acceso no
uniforme a
memoria
(NUMA)
Mquinas SISD
Segmentacin de instrucciones
Ejecucin de varias instrucciones al
mismo tiempo (superescalares).-
10
11
12
Organizacin MIMD
Mltiples Instrucciones Mltiples Datos
Son
procesadores de
uso general.
Cada uno es
capaz de
procesar todas
las instrucciones
necesarias para
realizar las
transformaciones
apropiadas de los
datos.
13
Se pueden
subdividir,
adems, segn la
forma que tienen
los procesadores
para
comunicarse.
14
FD
UP2
UC2
FI
UCn
Memoria
compartida
UC1
FD
FD
UPn
UC = Unidad de Control
UP = Unidad de Procesamiento
FI = Flujo de Instrucciones
FD = Flujo de Datos
15
16
17
FI
UC2
ML1
UP2
FD
FI
UCn
ML2
Red de
interconexin
UC1
FD
UPn
MLn
UC = Unidad de Control
UP = Unidad de Procesamiento
FI = Flujo de Instrucciones
FD = Flujo de Datos
ML = Memoria Local
Procesadores Segmentados y Vectoriales
18
19
Organizaciones de computadores
Una secuencia de
instruccin, una secuencia
de datos
(SISD)
Mltiples secuencias de
instruccin, mltiples
secuencias de datos (MIMD)
Monoprocesadores
Procesadores
vectoriales
Procesadores
matriciales
Memoria compartida
(fuertemente acoplada)
Memoria distribuida
(dbilmente acoplada)
Clusters
Segmentacin
Procesadores Superescalares
Multiprocesador
simtrico (SMP)
Acceso no
uniforme a
memoria
(NUMA)
PARALELISMO EN
MONOPROCESADOR
Procesadores Segmentados y Vectoriales
20
Qu es la segmentacin?
Tcnica de implementacin por la cual se solapa
la ejecucin de mltiples instrucciones
La ejecucin de la una instruccin se
descompone en partes ms pequeas
cada una de las cuales necesita una fraccin del
tiempo necesario para completar la instruccin
completa.
21
22
23
IF = bsqueda de la instruccin
ID = decodificacin instruccin y bsqueda de registros
EX = ejecucin y clculo de direcciones efectivas
MEM = acceso a memoria
WB = post-escritura
Procesadores Segmentados y Vectoriales
24
Segmentacin bsica
25
Qu es una implementacin
superescalar?
Las instrucciones comunes(aritmticas,
cargas/almacenamientos y bifurcaciones
condicionales) pueden iniciar su ejecucin
simultneamente y de manera independiente.
26
Unidades
funcionales
segmentadas
Memoria
27
Limitaciones
28
; r1 := r1 + r2
; r3 := r1
La segunda instruccin
NO se puede ejecutar
hasta que finalice la
ejecucin de la
primera instruccin.
La segunda instruccin
se puede captar y
decodificar en paralelo
con la primera.
29
Dependencia relativa al
procedimiento
Las instrucciones que siguen a una
bifurcacin no pueden ejecutarse en
paralelo con las instrucciones anteriores a
la misma.
30
Ejemplo: dos
instrucciones
aritmticas.
Ejemplo:
tener dos
unidades
aritmticas.
31
Clave
Ejecucin
Captacin
Decodifi_
de
cacin
instruccin
Dependencias
Escritura
Sin dependencia
1. Sin Dependencia
2. Dependencia de
datos
Dependencia de datos
(i1 usa un dato calculado por i0)
1. I1 usa un dato
calculado por I0
3. Dependencia relativa
al procedimiento
Dependencia relativa
al procedimiento
i1/bifurcacin
1. I2 e I3 espera
resultados de I0 e
I1
4. Conflicto en un
recurso
Conflicto en un recurso
(i0 e i1 usan la misma
unidad funcional)
1. I0 e I1 utilizan la
misma Unidad
Funcional
Procesadores Segmentados y Vectoriales
32
Antidependencia
Dependencia lectura-escritura:
I1: R3 R3 op R5
I2: R4 R3 + 1
I3: R3 R5 + 1
I4: R7 R3 op R4
I3 no puede finalizar antes de que I2 comience, ya
que I2 necesita un valor en R3 e I3 modifica R3.
33
Ejecucin superescalar
Envo de
instrucciones
Programa
esttico
Emisin de
instrucciones
Captacin de
instrucciones y
prediccin de saltos
Ejecucin de
instrucciones
Reordenacin
y entrega de
instrucciones
Ventana de
ejecucin
34
Implementacin superescalar
Estrategias de captacin de instrucciones que capten simultneamente
mltiples instrucciones.
Lgica para determinar dependencias verdaderas entre valores de
registros.
Mecanismos para comunicar esos valores.
35
Ejemplo de Segmentacin en
Pentium 4
36
COMPUTADORAS
VECTORIALES
Procesadores Segmentados y Vectoriales
37
Procesamiento vectorial
Un operando
vectorial
contiene una
secuencia de n
elementos
Cada elemento
del vector es
un escalar de
cualquier tipo
entero, punto
flotante, etc.
donde n es la
longitud del
vector.
38
Memoria Distribuida
39
Memoria Compartida
40
Arquitectura bsica de un
computador vectorial
41
42
Elementos de la arquitectura
Registros vectoriales
Unidades funcionales vectoriales
Unidad de carga y almacenamiento
Registros escalares
Unidades funcionales escalares
43
Elementos de la arquitectura
Registros vectoriales
44
Elementos de la arquitectura
Registros vectoriales
Unidades funcionales vectoriales
Ejecutan las operaciones vectoriales
Estn segmentadas y suelen tener latencia 1
Una unidad de control vigila las dependencias
45
Elementos de la arquitectura
Registros vectoriales
Unidades funcionales vectoriales
Unidad de carga y almacenamiento
Gestiona transferencias de vectores desde/a memoria
Puede estar segmentada
Tambin puede ocuparse de los datos escalares
Registros escalares
Unidades funcionales escalares
46
Elementos de la arquitectura
Registros vectoriales
Unidades funcionales vectoriales
Unidad de carga y almacenamiento
Registros escalares
Contienen los operando escalares
Se usan en operaciones vectoriales y para calcular direcciones
Se necesitan varios puertos de lectura y escritura
47
Elementos de la arquitectura
Registros vectoriales
Unidades funcionales vectoriales
Unidad de carga y almacenamiento
Registros escalares
Unidades funcionales escalares
Pueden existir para operaciones especficamente escalares
Pueden no existir si para operaciones escalares se usan las
unidades vectoriales
48
Eliminan dependencias
de control e
instrucciones de
comprobacin y
contabilidad.
Optimizan el uso de
memoria con accesos
predecibles que se
pueden solapar.
49
Arquitectura del
Cray-1
50
51
52
Earth Simulator 2
53
54
55
Organizaciones de computadores
Una secuencia de
instruccin, una secuencia
de datos
(SISD)
Mltiples secuencias de
instruccin, mltiples
secuencias de datos (MIMD)
Monoprocesadores
Procesadores
vectoriales
Procesadores
matriciales
Memoria compartida
(fuertemente acoplada)
Memoria distribuida
(dbilmente acoplada)
Clusters
Memoria Compartida
Multiprocesador
simtrico (SMP)
Acceso no
uniforme a
memoria
(NUMA)
MULTIPROCESADORES
SIMTRICOS (SMP)
Procesadores Segmentados y Vectoriales
56
Multiprocesador fuertemente
acoplado
Procesador
Procesador
Procesador
E/S
Red de
E/S
interconexin
E/S
Memoria principal
57
58
Procesadores
Memorias
59
60
Caracterstica de un SMP
Todos los procesadores comparten los dispositivos de E/S,
61
Ventajas de un SMP
Prestaciones:
Cuando el trabajo a
realizar por un
computador puede
organizarse en
paralelo.
Disponibilidad:
Crecimiento incremental:
Debido a que todos
los procesadores
Escalado:
pueden realizar las
Se pueden aumentar
mismas funciones,
un fallo en un
procesador no har
que el computador
se detenga.
62
Los fabricantes
pueden ofrecer una
gama de productos
con precios y
prestaciones
diferentes, en
funcin del nmero
de procesadores que
configuran el
sistema.
Organizacin de los
multiprocesadores simtricos
Bus de tiempo compartido o comn.
Memoria multipuerto.
Unidad de control central.
63
64
65
Flexibilidad.
Fcil de expandir
Fiabilidad.
Bus es esencial pasivo
Falla en un dispositivo no afecta todo
el sistema
66
La prestacin est
limitada por el
tiempo de ciclo del
bus.
Cada procesador
debera estar
equipado con una
memoria cache
para mejorar las
prestaciones:
Se reducira el
nmero de accesos.
67
Se pueden
producir
problemas de
coherencia de
cache:
Este problema es
resuelto por el
hardware (se explica
ms adelante)
Memoria multipuerto
Permite el acceso
directo e independiente
a los mdulos de
memoria desde cada
uno de los
procesadores.
Se necesitan
pocas o ninguna
modificacin en los
procesadores o en
los mdulos.
Se necesita una
cierta lgica para
resolver los
conflictos.
68
69
Ventajas y desventajas de la
memoria multipuerto
Ms compleja:
Se precisa aadir al sistema de memoria una buena
cantidad de lgica.
Se consiguen mejores prestaciones.
Cada procesador tiene un camino dedicado a cada mdulo
de memoria.
Permite configurar partes de la memoria como
privadas para uno o ms procesadores:
Incremento de la seguridad.
Se debe utilizar una estrategia de escritura
directa para controlar la cache.
70
71
Sincronizacin.
Gestin de memoria.
Fiabilidad y tolerancia ante los fallos.
72
Problema: pueden
existir varias copias
del mismo dato
simultneamente en
caches diferentes.
Puede producirse
una visin
inconsistente de la
memoria.
La poltica de
escritura directa
tambin puede
producir problemas,
a no ser que las
otras caches
comprueben los
accesos a la
memoria principal.
73
Soluciones software
El compilador y el sistema operativo se encargan del problema de
la necesidad de circuitera y lgica hardware adicional.
La sobrecarga se transfiere al tiempo de compilacin.
La complejidad del diseo se transfiere desde el hardware al
software.
Por otra parte, el software tiende a tomar ciertas decisiones
conservadoras:
Utilizacin ineficiente de la cache.
74
Soluciones hardware
Generalmente
se denominan
protocolos de
coherencia de
cache.
Permiten
reconocer
dinmicamente,
en el momento
de la ejecucin,
problemas
potenciales.
Permiten un uso
ms efectivo de
las caches.
75
Aproximaciones
transparentes
para el
programador.
Ejemplo: Invalidar-si-escritura
Mltiples procesadores que leen, pero uno slo que escribe.
Cuando se quiere hacer una escritura, se invalidan las otras caches de la
lnea.
El procesador que escribe tiene acceso exclusivo hasta que la lnea sea
requerida por otro procesador.
Se utiliza en los sistemas Pentium II y Power PC.
76
SMP en el mercado
Precio de Sparc T3 incluye el rack con todos los accesorios, disco duros, memoria,
etc.
Procesadores Segmentados
77
Ultrasparc T3
78
79
MIPS32 1074K
80
AMD Opteron
81
Mltiples AMD
82
COMPUTADORAS
MULTICORE
Procesadores Segmentados y Vectoriales
83
Organizaciones Alternativas
Superscalar
Multicore
Multi-hilos Simultneos
(Simultaneous multithreading, SMT)
84
Organizacin de Multicore
Nmero de
procesadores
de ncleo en
el chip
Nmero de
niveles de
cach en el
chip
85
Cantidad de
memoria
cach
compartida
Cach L3 compartido
Cach L2 compartida
Cach L2 dedicada
Cach L1 dedicada
Alternativa de Organizacin
86
87
Arquitectura Core
88
89
90
2 MB de cach L2 compartida
Asignacin dinmica
Soporte MESI a cachs L1
Extendido para soportar mltiples Core Duo en SMP
Datos L2 compartido entre los ncleos locales o externos
Interfaz de bus
91
QuickPath de interconexin
Memoria cach coherente de punto a punto de enlace
Comunicaciones de alta velocidad entre chips de procesadores
6,4 g transferencias por segundo, 16 bits por transferencia
Pares dedicado bidireccional
Total de ancho de banda de 25,6 GB/s
92
Organizaciones de computadores
Una secuencia de
instruccin, una secuencia
de datos
(SISD)
Mltiples secuencias de
instruccin, mltiples
secuencias de datos (MIMD)
Monoprocesadores
Procesadores
vectoriales
Procesadores
matriciales
Memoria compartida
(fuertemente acoplada)
Memoria distribuida
(dbilmente acoplada)
Clusters
Multiprocesador
simtrico (SMP)
Memoria Distribuida
Acceso no
uniforme a
memoria
(NUMA)
CLUSTERS
93
Clusters
94
95
Configuraciones de clusters:
servidor sin disco compartido
E/S
E/S
96
E/S
E/S
Configuraciones de clusters:
disco compartido
E/S
E/S
E/S
E/S
E/S
97
E/S
Paralelizacin
Una sola aplicacin se ejecuta en paralelo en un
nmero de mquinas en cluster
Compilador
Determina en tiempo de compilacin que partes se pueden
ejecutar en paralelo
Separa cdigo para diferentes equipos
Aplicacin
98
Arquitectura de Computadora en
Cluster
99
Cluster Middleware
Imagen unificada
al usuario
Espacio de nico
de memoria
Sistema de
gestin nico
nico punto de
entrada
nica interfaz de
usuario
nica Jerarqua
de archivos
nico punto de
control
nica de espacio
de E/S
Imagen de sistema
nico
100
Servidores Blade
Una aplicacin comn de
Cluster
Servidor de mltiples
servidores (Blade) en el
mismo chasis
Ahorro de espacio
Mejorar la gestin del
sistema
Chasis proporciona la
fuente de alimentacin
Cada Blade tiene
procesador, memoria, disco
101
102
Cluster vs SMP
Ambos ofrecen soporte multiprocesador para las
aplicaciones de alta demanda.
Ambos disponibles en el mercado
SMP durante ms tiempo
SMP:
Ms fcil de administrar y controlar
Ms cerca de los sistemas de procesador nico
La programacin es la diferencia principal
Menos espacio fsico
Menor consumo de energa
Clustering:
Superior escalabilidad incremental y absoluta
Superior disponibilidad
Redundancia
103
104