0 évaluation0% ont trouvé ce document utile (0 vote)
45 vues8 pages
El documento describe la arquitectura SPARC y el paralelismo. SPARC es una arquitectura RISC big-endian con un conjunto reducido de instrucciones. Un procesador SPARC consta de una unidad de enteros, una unidad de punto flotante y un coprocesador opcional, cada uno con sus propios registros para maximizar la coordinación entre las instrucciones. Las instrucciones SPARC se clasifican en cargas/almacenamientos, aritméticas/lógicas, del coprocesador y de control de transferencia y registros
El documento describe la arquitectura SPARC y el paralelismo. SPARC es una arquitectura RISC big-endian con un conjunto reducido de instrucciones. Un procesador SPARC consta de una unidad de enteros, una unidad de punto flotante y un coprocesador opcional, cada uno con sus propios registros para maximizar la coordinación entre las instrucciones. Las instrucciones SPARC se clasifican en cargas/almacenamientos, aritméticas/lógicas, del coprocesador y de control de transferencia y registros
El documento describe la arquitectura SPARC y el paralelismo. SPARC es una arquitectura RISC big-endian con un conjunto reducido de instrucciones. Un procesador SPARC consta de una unidad de enteros, una unidad de punto flotante y un coprocesador opcional, cada uno con sus propios registros para maximizar la coordinación entre las instrucciones. Las instrucciones SPARC se clasifican en cargas/almacenamientos, aritméticas/lógicas, del coprocesador y de control de transferencia y registros
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.