Вы находитесь на странице: 1из 8

SPARC Y PARALELISMO

SPARC (del ingls Scalable Processor ARChitecture) es una arquitectura RISC


big-endian. Es decir, una arquitectura con un conjunto reducido de
instrucciones.
Un procesador SPARC comprende una Unidad de Enteros (UE), una Unidad
de Punto Flotante (UPF) y un Co-Procesador opcional, cada uno de ellos con
sus propios registros. sta organizacin permite una mxima coordinacin
entre la ejecucin de instruccin de enteros, de punto flotante y de co-
procesador. Todos los registros, con la posible excepcin de los del co-
procesador, tienen una longitud de 32 bits.
A continuacin se describen cada una de las partes que conforman a un
procesador SPARC
Unidad de Enteros (UE)
La UE contiene los registros de propsito general y controla todas las
operaciones del procesador. La UE ejecuta instrucciones aritmticas de enteros
y computa direcciones de memoria para cargas y almacenamientos.
Unidad de Punto Flotante (UPF o FPU)
La UPF tiene 32 registros de punto flotante de 32 bits cada uno. Para
almacenar valores de doble precisin se utilizan 2 registros, y valores de
cudruple precisin ocupan un grupo de 4 registros adyacentes. En
consecuencia, los registros de punto flotante pueden contener un mximo de
32 valores de simple precisin, 16 de doble precisin, u 8 de cudruple
precisin.
Co-Procesador (CP)
El Co-Procesador tiene su propio set de registros de normalmente 32 bits.
Instrucciones de carga/almacenamiento del Co-Procesador son las que se
usan para mover datos entre los registros del Co-Procesador y la memoria.
Para cada instruccin de carga/almacenamiento de punto flotante, hay una
instruccin de carga/almacenamiento del Co-Procesador anloga.
Las instrucciones de SPARC se pueden clasificar en cinco categoras:
LOAD y STORE (La nica manera de acceder a la memoria). Estas
instrucciones usan dos registros o un registro y una constante para calcular la
direccin de memoria a direccionar.
Instrucciones Aritmticas/Lgicas/Shift. Ejecutan operaciones aritmticas,
lgicas y operaciones de cambio..
Operaciones del Coprocesador. La IU extrae las operaciones de punto flotante
desde las instrucciones del bus de datos y los coloca en la cola para la FPU. La
FPU ejecuta los clculos de punto flotante con un nmero fijo en unidad
aritmtica de punto flotante, (el nmero es dependiente de la aplicacin). La
arquitectura SPARC tambin especifica una interfaz para la conexin de un
coprocesador adicional.
Instrucciones de Control de Transferencia. Estas incluyen jumps, calls, traps y
branches. El control de transferencia es retardado usualmente hasta despus
de la ejecucin de la prxima instruccin, as el pipeline no es vaciado porque
ocurre un control de tiempo. De este modo, los compiladores pueden ser
optimizados por ramas retardadas.
Instrucciones de control de registros Read/Write. Estas instrucciones se
incluyen para leer y grabar el contenido de varios registros de control.
Generalmente la fuente o destino est implcito en la instruccin.
De este modo existen instrucciones para cargar y almacenar cantidades de 8,
16 ,32 y 64 bits, en los registros de 32 bits, usando en este ltimo caso dos
registros consecutivos.
Concepto de Thread
Un Thread (que de una forma un poco 'basta' se puede traducir como hilo) es la
unidad bsica de ejecucin. Cualquier programa que se ejecute consta de, al
menos, un thread.
Un thread se puede considerar como la agrupacin de un trozo de programa
junto con el conjunto de registros del procesador que utiliza y una pila de
mquina. El conjunto de los registros y de la pila de cada thread se
denomina contexto. Como sabemos, en un Sistema Operativo multitarea, la
CPU se reparte entre cada programa a ejecutar. Para ser ms precisos, el S.O.
reparte la CPU entre todos los threads a ejecutar en cada momento (pues un
programa puede contener varios threads), simplemente aduendose de esta y
saltando al siguiente.
Qu es Multihilo simultaneo SMT?
Simultaneous Multithreading (SMT)
Multihilo simultneo (SMT) es una tcnica para mejorar la eficiencia global de
las CPUs superescalares con multihilo de hardware. SMT permite mltiples
hilos de ejecucin independientes para utilizar mejor los recursos
proporcionados por las modernas arquitecturas de procesador.

Multithreading es similar en concepto a multitarea, pero se implementa a nivel
de hilo de ejecucin en procesadores superescalares modernos.
Multithreading simultneo (SMT) es una de las dos implementaciones
principales de Multithreading, la otra forma de ser Multithreading temporal. En
multihilo temporal, slo un hilo de instrucciones puede ejecutar en cualquier
etapa de canalizacin determinada en un momento. En Multithreading
simultneo, instrucciones de ms de un hilo puede estar ejecutando en
cualquier fase de canalizacin dada en un momento. Esto se hace sin grandes
cambios en la arquitectura bsica del procesador: las principales adiciones
necesarias son la capacidad para ir a buscar instrucciones de mltiples hilos en
un ciclo, y un archivo de registro grande para contener los datos de varios
subprocesos. El nmero de subprocesos simultneos puede ser decidido por
los diseadores de chips, pero las restricciones prcticas sobre la complejidad
de chips han limitado el nmero a dos para la mayora de las implementaciones
de SMT.

Debido a que la tcnica es realmente una solucin de eficiencia y hay un
aumento de los conflictos inevitables en los recursos compartidos, la medida o
ponerse de acuerdo sobre la eficacia de la solucin puede ser difcil.

Algunos investigadores han demostrado que los temas adicionales se pueden
utilizar para sembrar de manera proactiva un recurso compartido como un
cach para mejorar el rendimiento de otro hilo nico, y afirman que esto
demuestra que SMT no es slo una solucin de eficiencia. Otros utilizan SMT
para proporcionar computacin redundante, para un cierto nivel de deteccin
de errores y recuperacin.

Sin embargo, en la mayora de los casos actuales, SMT es acerca de cmo
ocultar la latencia de memoria, aumentar la eficiencia y aumentando el
rendimiento de los clculos por cantidad de hardware que se utiliza.

Desde el punto de vista del hardware, implementacin SMT requiere la
duplicacin de todas las partes del procesador que almacenan el "Estado de
ejecucin" de cada hilo - cosas como el contador de programa, los registros
arquitectnicamente visibles (pero no los registros de cambio de nombre), la
memoria asignaciones a cabo en el TLB, y as sucesivamente. Por suerte,
estas piezas constituyen slo una pequea fraccin de hardware del
procesador general. Las piezas muy grandes y complejos, como los
decodificadores y la lgica de despacho, las unidades funcionales y los cachs,
son compartidos entre los hilos.
Por supuesto, el procesador tambin debe llevar un registro de lo que las
instrucciones y que cambie el nombre de los registros pertenecen a la que se
enrosca en un momento dado en el tiempo, pero resulta que esto slo agrega
una pequea cantidad a la complejidad de la lgica de la base. As, para el
coste de diseo relativamente barato de alrededor de 10% ms lgica en el
ncleo (y un aumento de casi insignificante en cuenta del transistor total y coste
de produccin final), el procesador puede ejecutar varios hilos
simultneamente, es de esperar que resulta en un aumento sustancial de la
unidad funcional utilizacin y instrucciones por ciclo de reloj (y rendimiento por
lo tanto en general).
El flujo de instrucciones de un procesador SMT se ve algo como


Qu es un procesador CMT?


Los procesadores CMT (Chip Multithreading Technology) son el resultado de
la implementacin de la estrategia de paralelizacin de las instrucciones en un
procesador. Hasta ahora los procesadores implementaban una tcnica de
paralelizacin llamada ILP (Instruction level Parallelism), los
procesadores CMT dan un paso ms al paralelizar los hilos de ejecucin, lo
que supone que varios procesos estarn ejecutando instrucciones, que no
tienen dependencias, al mismo tiempo, esta tcnica se llama TLP (thread
Level Parallelism).
El TLP se basa en utilizar los tiempos de espera del procesador para ejecutar
instrucciones de otros hilos, al ser hilos independientes, no existe dependencia
en la ejecucin de las instrucciones, producindose una paralelizacin real,
frente a la tcnica de ILP que est sujeta a las dependencias que existan entre
las instrucciones que se intentan paralelizar.
Cuando un procesador CMT ejecuta una instruccin que requiere un dato de
memoria, el procesador lanza la peticin a memoria, la mayora de los
procesadores estaran esperando hasta que la memoria devolviese el dato,
pero un procesador CMT no se queda en un estado de espera, sino que la
unidad de control de instruccin switchea a la instruccin de otro proceso y
lanza una instruccin de este segundo proceso, dependiendo del nmero de
threads que pueda manejar el procesador, podremos tener ms o menos
threads ejecutndose simultneamente. Como podemos ver, los procesadores
que implementen TLP, utilizan de forma ms eficiente el tiempo de procesador.

El TLP Puede ser dividido en mltiples hilos de grano fino o de mltiples hilos
de grano grueso dependiendo de la frecuencia de problemas intercalados. De
grano fino - Multithreading, como en un barril de procesador - da instrucciones
para los diferentes procesos despus de cada ciclo, mientras que el
Multithreading de grano grueso slo cambia para dar instrucciones desde otro
subproceso cuando el subproceso de ejecucin actual hace que algunos
eventos de latencia (como error de pgina, etc.). Sun UltraSPARC T1 utiliza
Multithreading de grano fino.

CMT no es la solucin para todos nuestros problemas.
Todo no van a ser ventajas en los procesadores CMT, tambin presentan
algunos inconvenientes, el ms importante, es el posible cuello de botella en
el acceso a la memoria, los distintos cores que forman el procesador estarn
compitiendo por el acceso a la memoria. Un buen diseo en la jerarqua de
caches permitir un aumento en el nmero de aciertos y por lo tanto una
reduccin del tiempo empleado para acceder a la memoria.
El problema del cuello de botella en el acceso a la memoria se acenta en
aplicaciones que realizan un uso intensivo de la memoria, como pueden ser las
BBDD, en este tipo de aplicaciones, los cores del procesador estaran
constantemente intentando acceder a memoria, ya que los aciertos de cache
seran demasiado bajos.

UltraSPARC-T1 ("Niagara") que proporciona 8 ncleos cada uno con SMT 4
hilos, para un total de 32 threads en un solo chip. Esto se aument
posteriormente a 8 hilos por ncleo en UltraSPARC-T2, y luego 16 ncleos en
UltraSPARC-T3, por la friolera de 128 hilos!
UltraSPARC T1
Cores 8
Threads/core 4
FPU 1:8
L1 inst. 16KB
L1 datos 8KB
L2 3MB, 12-way
L3 NA
i-TLB 64 FA
d-TLB 64 FA

El procesador UltraSPARC T1 es el primero de la familia de procesadores T,
los cuales se basan en tecnologa CMT. El US T1 tiene hasta 8 cores, cada
uno de los cuales puede trabajar con 4 threads, lo que hacen un total de 32
threads en ejecucin. Presenta dos inconvenientes, el primero es que todos
los cores comparte una nica unidad de coma flotante lo que puede suponer
un problema para entornos cientficos o aplicaciones que hagan uso de este
tipo de operaciones. El segundo inconveniente es que el procesador US T1,
nicamente est montado en mquinas monoprocesadoras, esto nos obliga a
que el crecimiento de la infraestructura sea nicamente en horizontal.
UltraSPARC T2
Cores 8
Threads/core 8
FPU 1:1
L1 inst. 16KB
L1 datos 8KB
L2 4MB, 16-way
L3 NA
i-TLB 64 FA
d-TLB 128 FA

El UltraSPARC T2, es la segunda generacin de la familia de procesadores US
T, como mejoras frente a su antecesor el US T1podemos destacar, que se ha
aumentado el nmero de threads con lo que puede trabajar un core, se ha
pasado de 4 a 8 threads. Tambin podemos destacar que cada core tiene su
propia unidad de coma flotante, esto permite eliminar la limitacin del US
T1 con respecto a las operaciones de coma flotante. El US T2 presenta un
rendimiento muy bueno para aplicaciones en coma flotante. Tambin se ha
aumentado el tamao de la memoria cache L2, ahora es de 4MB y se ha
duplicado el tamao de la d-TLB, hasta las 128 posiciones.
Como inconvenientes podemos comentar que el procesador US T2 solo se
monta en mquinas monoprocesadoras, lo que limita el tipo de crecimiento HW
a un crecimiento horizontal, esta limitacin provoca que sea un procesador
para entornos de entrada, tales como servidores web, servidores de correo,
etc. Puede funcionar para la capa de aplicacin, siempre que las aplicaciones
permitan crecer horizontalmente. Podemos descartar a este procesador, sobre
todo por su limitacin de crecimiento horizontal, para entornos de BBDD.
Nivel Entrada Aplicacin Datos
Valoracin Muy Buena Muy Buena Regular
UltraSPARC T2 plus
Cores 8
Threads/core 8
FPU 1:1
L1 inst. 16KB
L1 datos 8KB
L2 4MB, 16-way
L3 NA
i-TLB 64 FA
d-TLB 128 FA

El procesador UltraSPARC T2+ es una evolucin del US T2 hacia un
procesador que pueda ser utilizado en arquitecturas SMP. La nica diferencia
que hay entre el US T2+ y el US T2, es que el US T2+ dispone de un elemento
entre la cache L2 y el controlador de memoria llamado Coherence Unit que
permite conectar varios procesadores US T2+.
Coherence Unit
El Coherence Unit se encarga de mantener coherencia entre las caches L2 de
varios procesadores UltraSPRC T2+. Su funcin es sencilla, cuando se
realiza una peticin al controlador de memoria, lanza esta misma peticin
contra el CU del otro procesador, para comprobar si el segundo procesador
tiene almacenado el dato en su cache L2, si el dato est en la cache L2 de
segundo procesador, la CU lo enva al primer procesador, evitando de esta
forma, tener que esperar a que el dato venga de la memoria principal, mucho
ms lenta que la memoria L2.
Datos de UltraSparc T2+

Cada grupo de hilos tiene su propio ALU privada, que tambin se utiliza tanto
para la generacin de direcciones y ms clculo. Casi todas las instrucciones
que se emiten directamente a la ALU, pero las operaciones de punto flotante y
la memoria fluirn a travs de sus respectivas unidades de ejecucin. Cada
uno comparte un solo ncleo y una FPU LSU entre los 8 hilos. La FPU es
alimentada por un banco de registros de 64 bits 256 de entrada, con 32
registros por hilo.
El SPU es un coprocesador criptogrfico que opera a la frecuencia del ncleo
completo. El SPU maneja algoritmos criptogrficos comunes tales como SHA,
MD5, AES, DES, etc Contiene una unidad aritmtica modular (MAU), una
unidad de cifrado y un motor DMA para acceder a la memoria. El MAU
comparte multiplicador de la FPU y se utiliza para RSA y clculos de la curva
binarios y enteros modulares polinomicos elpticos. La MAU utiliza una entrada
160 bloc de 64 bits que pueden sostener dos lecturas y una escritura por ciclo
para el almacenamiento. El ancho de banda de la unidad y el hash cifrado se
ha diseado para que coincida con 10 controladores Ethernet Gigabit duales de
Niagara II, lo que permite "libre de cifrado".
El T2 centra el paralelismo a nivel de la memoria, la parte ms importante es el
subsistema de memoria, sobre todo la unidad de carga Store (LSU), cach
L1D, la cach L2 y la memoria principal. Niagara II mantiene hasta 4 tablas de
pginas, cada una de ellas el apoyo a 8K, 64KB, 4 MB o 256 MB de pginas,
todo lo cual puede ser almacenado en cach por el ITLB y DTLB. Traduccin
de direcciones de memoria para la LSU es manejado por la entrada 128, por
tanto la instruccin y la TLB de datos son accesibles en la pgina de hardware
tabla walker, que es otra nueva adicin a la microarquitectura de T2. La tabla
de la pgina andador puede buscar las 4 tablas de pginas en tres modos
diferentes; secuencialmente, en paralelo, o de acuerdo con una prediccin
basada en la direccin virtual de los datos solicitados.

Вам также может понравиться