Sistemas para el Procesamiento de la Información Microprocesadores Cell Profesor: Integrantes: Fecha: Javier Ruiz del Solar. Michael Carter. Joshua Carvacho. Magdalena Von Borries. 17 de junio de 2007. EL54B Microprocesadores Cell Índice 1. Introducción 2 1.1. Ejecución Predictiva/Especulativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Procesadores VLIW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Procesadores Multinúcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Descripción por bloques del Microprocesador Cell 2.1. Arquitectura del Power Processor Element . . . . . . . 2.2. Arquitectura de los Synergistic Processors Elements . 2.3. Bus de Interconexión de Elementos . . . . . . . . . . . 2.4. Memory Interface Controller MIC e I/O Controller 2.5. Otras Consideraciones . . . . . . . . . . . . . . . . . . 3. Modelos de Programación para el 3.1. Stream Processing . . . . . . . . 3.2. Cola de Tareas . . . . . . . . . . 3.3. Multitarea Auto-Gestionada . . . 2 2 2 . . . . . 5 7 9 11 11 12 Microprocesador Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 13 13 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Aplicaciones 4.1. Capacidades del Chip Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1. Manipulación de Datos: . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2. Aplicaciones Graficas: . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3. Aplicaciones Intensivas de Punto Flotante (Single Precision) 4.1.4. Reconocimiento de Patrones . . . . . . . . . . . . . . . . . . . . . 4.1.5. Offload Engines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Actuales Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1. Servidores Blade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2. Videojuegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3. Investigación Médica: . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Aplicaciones en desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Referencias 14 14 14 14 14 14 14 14 14 15 16 16 19 Índice de figuras 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Microprocesador Cell . . . . . . . . . . . . . . . Diagrama de Bloques . . . . . . . . . . . . . . . Ubicación del PPE en el Microprocesador Cell . Estructura interna del PPE . . . . . . . . . . . Diagrama del pipeline para el PPE . . . . . . . Ubicación de un SPE . . . . . . . . . . . . . . . Estructura interna del SPE . . . . . . . . . . . Diagrama del pipeline para el SPE . . . . . . . Bus de Interconexión de Elemntos . . . . . . . MIC, I/O . . . . . . . . . . . . . . . . . . . . . Servidores Blade . . . . . . . . . . . . . . . . . Playstation3 . . . . . . . . . . . . . . . . . . . . Blue Gene-L . . . . . . . . . . . . . . . . . . . . Mainframes . . . . . . . . . . . . . . . . . . . . Televisión de alta definición . . . . . . . . . . . Celular Toshiba . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 7 7 8 9 9 10 11 11 15 16 16 17 17 17 EL54B Microprocesadores Cell SECCIÓN 1 Introducción A medida que avanzaba la tecnologı́a y los computadores llegaban a cada vez más usuarios, en los años 90 se empezó a barajar la posibilidad de dotar a los microprocesadores de capacidad de procesamiento en paralelo; es decir, de capacidad para ejecutar varias instrucciones a la vez y con esto aumentar el tiempo de procesamiento de instrucciones. Lamentablemente, los programas para computadores, siguen un orden secuencial lineal, necesitándose muchas veces disponer del resultado de una operación anterior para ejecutar la actual linea del programa, lo que dificulta el desarrollo de procedimientos en paralelo (concurrentes) ¿Qué se ha hecho para solucionar este problema? A lo largo de los años se han diseñado tres técnicas diferentes: 1.1 Ejecución Predictiva/Especulativa Bajo este nombre se recogen una serie de tecnologias y algoritmos que se implementan en el procesador y que, basicamente, lo que hacen es analizar el código para agrupar las instrucciones en bloques que puedan ejecutarse en paralelo. Por ejemplo: 1. c = a + b 2. d = c ∗ b 3. x = a ∗ n 4. y = x+b El procesador convertirá esta secuencia en dos bloques, uno con las instrucciones uno y tres, y otro con las dos y cuatro. El inconveniente de esta técnica es que los algoritmos de paralelización son tremendamente complejos, con lo que su implementación requiere de un volumen enorme de circuiteria, lo que complica extraordináriamente la arquitectura de la CPU. Esta técnica es la que utilizan los procesadores Intel Pentium. 1.2 Procesadores VLIW Supongamos que el procesador tiene, por ejemplo, cuatro unidades operacionales; es decir, puede ejecutar cuatro instrucciones a la vez; entonces, cada instrucción de código máquina será un paquete de cuatro instrucciones, una para cada una de las cuatro unidades en las que se subdivide internamente el procesador. Es decir, en una arquitectura VLIW la tarea de paralelizar el código corresponde al compilador, de manera que los programas generados ya sean secuencias de bloques ejecutables en un solo paso. La gran ventaja de esta metodologia es la sencillez. Puesto que el procesador ya recibe el código paralelizado, las instrucciones no necesitan ningún tratamiento previo, lo que permite ahorrar una cantidad enorme de circuiteria, lo que supone un consumo energético menor y menos calentamiento. Sin embargo, esta ténica tiene dos inconvenientes; uno, que el juego de instrucciones de código máquina refleja la estructura interna de la CPU, con lo que si queremos sacar una versión nueva del procesador es muy posible que haya que modificar su lenguaje máquina, rompiendo la compatibilidad con los programas existentes. El otro inconveniente es que, puesto que los compiladores tienen que generar código paralelo, el diseño de los mismos es sumamente complicado. Esta ténica es la que se usa en los Itanium y los Transmeta. 1.3 Procesadores Multinúcleo En este caso, el enfoque cambia por completo; ası́, si en las dos metodologias anteriores la capacidad de procesamiento en paralelo del procesador se usa para acelerar la ejecución de un programa, en este caso se utiliza para poder ejecutar varios programas a la vez. De hecho, el Cell es capaz de ejecutar diez programas simultaneamente. 2 EL54B Microprocesadores Cell La manera de conseguir esto es colocando varios núcleos dentro de la CPU; por núcleo entendemos el bloque de circuiteria encargado de leer y descodificar las instrucciones, luego, estar ordenes se pasan a las diferentes unidades de trabajo (sumadores, multiplicadores, ..); es decir, desde el punto de vista de los programas, el procesador es en realidad una bateria de microprocesadores (diez en el caso del Cell) que, desde el punto de vista del software, se trata de un sistema de multiples procesadores estandar. La ventaja de esta técnica es que el procesador trabaja de la misma forma que el programador. Los programas son secuencias que siguen un orden lineal dado que el programador concibe el programa como algo lineal, sin pensar en el proceso de paralelización. Las metodologı́as anteriores tratan de convertir esa secuencia lineal en paquetes ejecutables en paralelo; lo que en la práctica, convierte a la paralelización en un proceso muy ineficiente, con lo que el procesador siempre estara funcionando muy por debajo de su capacidad. Sin embargo, los programadores si que estan habituados a trabajar con multiples procesos que han de correr en paralelo (y los lenguajes de programación también están familiarizados con este concepto); esto significa que el programador esta en condiciones de tener en cuenta las capacidades del procesador en sus desarrollos, y optimizarlos en consecuencia, lo que hace posible que el procesador trabaje al 100 % de su capacidad. El punto débil de esta metodologı́a involucra la gestión del bus. Los microcontroladores basados en esta metodologı́a (como el chip Cell) funciona como una bateria de procesadores empaquetados juntos, pero esta bateria se comunica con la memoria a traves de un único canal (el bus del microchip); de manera que muchas gestiones por unidad de tiempo provocan congestión en el bus, por lo que es preciso que la gestión del bus sea muy eficiente. Este factor es tan crı́tico, que si no está bién solucionado puede arruinar todas las posibilidades que ofrece el procesador. Con esta filosofı́a de funcionamiento detrás, y con la idea del desarrollo de un nuevo procesador; Sony, Toshiba e IBM, unieron fuerzas para el desarrollo de un nuevo proyecto: el chip Cell. Inicialmente se comenzó una discusión entre los ejecutivos de las compañı́as de Sony y de IBM, Sony como abastecedor e IBM como compañı́a de tecnologı́a y del servidor. La idea inicial era desarrollar un nuevo procesador con ciertas caracterı́sticas. La colaboración fue iniciada entre SCEI (Sony Computer Entertainment Incorporated), IBM, para el desarrollo del microprocesador, y Toshiba, como ayuda en el desarrollo y socio de empresas de tecnologı́a de fabricación Esto condujo a las discusiones arquitectónicas para un procesador de alto nivel entre las tres compañı́as durante el verano de 2000. Durante una reunión crı́tica en Tokio, fue determinado que las organizaciones arquitectónicas de procesadores tradicionales no entregarı́an la energı́a de cómputo que SCEI buscaba para sus necesidades interactivas futuras. SCEI trajo a las discusiones una visión para alcanzar 1.000 veces el rendimiento del PlayStation2. Finalmente se llegó a un acuerdo que entre los objetivos estaban que el procesador alcanzara 100 veces el rendimiento de PlayStation2. En este instante la sección de investigación de IBM comenzó a explorar nuevas ideas de la organización del diseño. IBM también se encargarı́a de contribuir con stateoftheart preocesos de 90-nm con aislador de silicio (SOI, silicononinsulator), lowk dielectrics, y interconexiones de cobre. En el año 2000 se pensó la base del procesador, estando todos los involucrados de acuerdo, esto luego de haber discutido varias posibilidades. La arquitectura base debı́a tener un procesador de 64 bit con control de flujo de memoria (Memory Flow Controll) y synergistic processors, para poder proveer la densidad computacional y la eficiencia de energı́a requerida. La unión de estas tres compañı́as en para este proyecto se denominó STI (SCEIToshibaIBM) Design Center, y fue creada oficialmente el 9 de marzo 2001 en Austin, Texas. Pero a pesar de estar centrado en Texas, varios grupos externos participaron en el proceso de diseñar e implementar el multiprocesador Cell. Los objetivos principales del nuevo procesador eran: Rendimiento excepcional, especialmente en aplicaciones para de juegos y de multimedia. Se querı́a aumentar el rendimiento, impuesto por la latencia de la memoria y el ancho de banda, la energı́a disipada y reducir la cantidad de trabajo por ciclos incrementando las etapas del pipeline. 3 EL54B Microprocesadores Cell Sensibilidad en tiempo real al usuario y a la red. Para tener al jugador satisfecho, se debe proveer de un constante actualizaciones en tiempo real del modelamiento de un espacio virtual con realimentación consistente y continua de sensaciones sensoriales visuales y de sonidos. Aplicabilidad a una amplia gama de plataformas. Se querı́a introducir en el año 2005 Ası́ nació el microprocesador CELL, el cual es un chip multiproceso, que consiste de una arquitectura de procesador de 64 bits, con paralelismo múltiple (multiple streaming processors), una Salida/Entrada flexible y un controlador de memoria interfaz. Este procesador ha sido diseñado para realizar cargas de trabajo de cálculo intensivo y aplicaciones de banda ancha con contenido multimedia, entre las que se incluyen videojuegos, pelı́culas y otras formas de contenido digital. Todo ello está conformado por una arquitectura IBM POWER y múltiples unidades de cálculo vectorial del tipo SIMD (una instrucciónmúltiples datos) capaces de realizar importantes cálculos en coma flotante. 4 EL54B Microprocesadores Cell SECCIÓN 2 Descripción por bloques del Microprocesador Cell Se aprecia en la Figura 2, los principales elementos que componen un microprocesador Cell. Fı́sicamente emplea más de 234 millones de transistores, junto a 580 mil repetidores1 todo esto ha sido implementado usando la tecnologı́a de 90nm SOI con 8 capas de cobre interconectadas entre sı́. El chip posee 3 clocks distintos que son proveidos por PLLs2 independientes. El reloj principal cubre aproximadamente el 85 % del area del chip, siendo el encargado de los procesadores y otros circuitos varios. Los otros clocks operan a fracciones del clock principal y se reparten en el chip creando verdaderas islas de múltiples clocks dentro del chip. Lo que diferencia este procesador de los demás es que corresponde a un sistema en un chip, lo que quiere decir que muchos núcleos con funciones especı́fı́cas son capaces de interactuar para entregar un rendimiento mucho mayor que los actuales procesadores. Figura 1: Microprocesador Cell Se observa además que los elementos básicos que conforman el Microprocesador Cell son Cirucuito para la gestión de memoria, MIC3 y entrada/salida (I/O Controller). Una memoria caché de segundo nivel de 512 Kbytes (L2). Una unidad de proceso de propósito general, el Power Processor Element. Ocho unidades de proceso vectorial llamadas Synergistic Processor Elements. Un bus que interconecta los elementos anteriormente listados llamado Element Interconnect Bus (EIB). Se aprecian en la Figura 2, los principales elementos que componen el microprocesador Cell. Esta corresponde a una mirada por bloques de los diferentes elementos que conforman el microprocesador. Para explicar por encima el funcionamiento de este multiprocesador, diremos que Cell cuenta con un procesador simple, PowerPC, el PPE4 de 64 bit encargado de gestionar la carga de trabajo global, siendo este quien envı́a los conjuntos de instrucciones entre los 8 SPU’s5 , las cuales serán procesadas de forma independientemente en cada uno de ellos. Cada SPE6 se compone de una ALU con cuatro SIMD7 , lo cual se denomina SPU. Ella además tiene 128 registros, cada uno de los cuales tiene un tamaño de 128 bits. Las SPE’s cuentan además con un controlador de flujo de memoria denominado MFC8 . 1 Amplifican nuevamente la señal, para asegurar la transmisión. Locked Loop. 3 Memory Interface Controller 4 Power Processor Element 5 Sinergistic Processor Unit 6 Single Processor Element 7 Single Instruction Multiple Data 8 Memory Flow Controller 2 Phase 5 EL54B Microprocesadores Cell Figura 2: Diagrama de Bloques El chip Cell tiene un tamaño de 235 mm2 los que casi duplican a los 122 mm2 del Intel Pentium 4 Prescott, desarrollado también con tecnologı́a de 90 nm pero con bastantes menos transistores (125 millones). Además, en contra del Pentium 4, éste únicamente dispone de un procesador simple SPU, mientras que el Cell tiene 8 como mı́nimo, siendo además una tecnologı́a escalar9 . En cuanto a la velocidad, Cell será capaz de manejar más de 4GHz, el PlayStation3 funciona a 3.2GHz, dependiendo esto último del fabricante, el cual será quien decida su velocidad en función de algunos factores como, por ejemplo su consumo, calentamiento, etc. nunca alcanzando su velocidad lı́mite. Los procesadores de calle hoy en dı́a son capaces de colocar, como máximo, hasta 3,8GHz, siendo Intel quien se encuentra en plena experimentación para llegar a los 4GHz sin un excesivo calentamiento. La velocidad en la que la información se moverá entre el procesador, memoria y periféricos también impresiona. Para ello, se ha utilizado una tecnologı́a Rambus XDR 10 y tecnologı́a FlexIO para la entrada y salida de la información del chip a una velocidad de 92 gigabytes por segundo. La interfaz de memoria XDR puede manejar 30 gigabytes por segundo gracias a sus 3.2GHz, y el BUS de FlexIO que funciona en 6.4GHz tiene un rendimiento de procesamiento máximo de 72 gigabytes por segundo. El problema principal que resulta de una tecnologı́a como esta viene dado por la programación paralela o programación de los multiprocesadores, la cual siempre ha sido la más difı́cil de ejecutar, aunque desde Sony ya se han apresurado a informar que existen varias formas de acercarse a este tipo de programación sin excesivos problemas, además de unas librerı́as de código libre que se desarrollarán para facilitar al máximo este proceso. 9 Como en clases se ha visto esta tecnologı́a permite muchos más procesadores simultáneos, pudiendo realizar cada uno de ellos tareas independientes 10 Extreme Data Rate Dynamic Random Access Memory 6 EL54B 2.1 Microprocesadores Cell Arquitectura del Power Processor Element Figura 3: Ubicación del PPE en el Microprocesador Cell El PPE es un PowerPC de 64 bits y doble núcleo bastante especial. Sı́ es un PowerPC en cuanto a que implementa el mismo juego de instrucciones que los PowerPC pero no es un PowerPC en cuanto a su diseño interno. Se Podrı́a decir que visto desde fuera es un PowerPC pero visto por dentro no lo es. La principal diferencia con los PowerPC tradicionales es que el PPE de Cell es mucho más simple. En el PPE el circuito utilizado para la predicción de saltos no va muy allá y carece por completo de ejecución fuera de orden. El PPE es un RISC11 a la antigua capaz de ejecutar dos instrucciones simultáneamente. Figura 4: Estructura interna del PPE La profundidad del pipeline12 es de 23, lo cual es mucho menor que lo que se puede esperar para un diseño que reduce la cantidad de tiempo utilizado por etapa en comparación con otros diseños anteriores. La microarquitectura del procesador es tal que se limite el retardo de comunicación en cada ciclo. El diseño del PPE es bastante simplificado si se compara con otros diseños actuales. El PPE es un diseño de dos hilos de ejecución que no reordena las instrucciones dinámicamente en tiempo real. El núcleo interpola las instrucciones a partir de dos hilos de ejecución al mismo tiempo de optimizar el uso del pipeline y ası́ mantener la máxima eficiencia. Funciones aritméticas simples ejecutan y entregan sus resultados en dos ciclo. Debido al pipeline de fixed-point, las instrucciones de carga también se ejecutan en dos ciclos. Una instrucción de floating-point de precisión doble se ejecuta en diez ciclos. 11 Reduced 12 Número Instruction Set Computer de etapas del pipeline. 7 EL54B Microprocesadores Cell El PPE tiene una caché de primer nivel de 32 KB, caché de datos y una caché de segundo nivel de 512 KB. Existen tablas de reemplazo que permiten o no, la escritura en direcciones especı́ficas de la memoria caché de segundo nivel Ası́ cada software tiene su propio especio en memoria. Esto permite creciente eficiencia y el control en tiempo real creciente del procesador. El procesador provee dos hilos de ejecución (dos tareas) simultáneos y puede ser visto como un multiprocesador de dos vı́as con flujo de datos compartido. Esto da al software la apariencia de tener dos unidades de procesamiento independientes. Todos los estados en la arquitectura están multiplicados, incluidos los registros y los registros de propósito especı́ficos, a excepción de los registros que trabajan con el estado y recursos del sistema en general, como las particiones de las memorias y el control de los hilos de ejecución. Cada PPE está compuesto de tres unidades principales, las que se describen a continuación. Instruction Unit IU, es responsable de las instrucciones buscar (fetch), descifrar (decode), ramifica (branch), ejecuta (issue) y ejecución terminada (completion). Fixed-point execution unit XU, unidad de ejecución de todas las instrucciones de punto-fijo. Además se encarga de todas las instrucciones de punto fijo y de las del tipo load/store. Vector Scalar Unit VSU, es responsable de todas las instrucciones de punto flotante y vectoriales. Dos son los motivos que han llevado a este diseño simplista de la unidad de propósito general, PPE. El primero de ellos corresponde al consumo de potencia, un procesador común (Pentium 4, etc. . . ) trabajando a frecuencias cercanas a los 3 GHz, presenta un elevado consumo por lo que es necesario tener elementos de disipación y de control de calor para que no se dañe , esto es lo que los micorprocesadores Cell han evitado trabajando con menores voltahes lógicos, el uno lógico es de 1[V ], además se desarrollaron nuevos Flip Flops para mejorar la dispación de potencia y los retrasos que se producen en ellos. El otro problema que se ataco en forma directa corresponde, como recién ha sido mencionado, al retraso impuesto por los elementos del circuito (Flip Flops, latches, . . . ). EL pipeline que esta arquitectura emplea se muestra a continuación. En ella los colores representan los distintos elemntos en los que ocurren las etapas del pipeline. Figura 5: Diagrama del pipeline para el PPE 8 EL54B 2.2 Microprocesadores Cell Arquitectura de los Synergistic Processors Elements Figura 6: Ubicación de un SPE En la figura se aprecian los diferentes elementos que componen una SPE. Figura 7: Estructura interna del SPE Los componente principales de un SPE son: 128 registros de 128 bits. Circuito de gestión de memoria y entrada/salida. 256 KB de memoria local, LS, es similar a una memoria caché. Circuito de control y de operaciones aritmético-lógicas. Las SPE’s son procesadores independientes cada una ejecutando un hilo de ejecución (una tarea o aplicación) distinta. Fueron diseñadas para optimizar las aplicaciones con uso computacional intensivo. Cada SPE incluye una memoria LS para un acceso eficiente de las instrucciones y los datos, pero además tiene acceso a la memoria del sistema, incluyendo el espacio memory mapped I/O. El SPE implementa una nueva arquitectura de conjunto de instrucciones optimizadas para disminuir el gasto energético y aumentar el rendimiento al realizar aplicaciones de multimedia y al ejecutar aplicaciones que requieren uso intensivo computación. El SPE funciona encendiendo el LS que almacena las instrucciones y los datos. Entonces los datos y las instrucciones son transferidas entre el LS y la memoria del sistema por comandos ası́ncronos del DMA13 . Estos comandos son ejecutados por la unidad MFC incluida en cada SPE. Dado que los comandos utilizados por el DMA usan la misma traducción y protección utilizada por las tablas de segmentación 13 Direct Memory Access. Esta tecnologı́a permite que el procesador no se encargue de las llamadas a meoria, escritura, lectura, habilitación, etc. . . . De esta manera el procesador solo pide datos a la memoria y estos le llegan 9 EL54B Microprocesadores Cell y paginación de la arquitectura del PPE, las direcciones pueden ser pasadas desde el PPE a los SPE’s, además pueden compartir memoria y usar todos los recursos del sistema de manera consistente. La memoria local de cada SPE tiene el propósito de disminuir el tiempo de latencia, el cual puede ser llamada the memory wall. Con esta memoria local permite que se ejecuten varios procesos simultáneamente sin requerir de transacciones continuas con la memoria del sistema, ya que permite transacciones de memoria simultáneas. La memoria local store es un single-port SRAM cell, únicamente para minimizar el espacio utilizado y proveer de un buen rendimiento. En general un acceso a memoria directo (DMA) tı́pico de 128 byte tanto de escritura como de lectura dura 16 ciclos en escribir los datos en el on-chip coherent bus, por esto 7 de 8 ciclos están disponibles para instrucciones de carga, guardar y buscar. Las instrucciones se buscan de 128 bytes a la vez. Además se le da prioridad a los comandos provenientes del DMA, luego a las instrucciones de carga, guardar y finalmente a la instrucción guardar. Hay varias cosas que destacar en esta arquitectura: La memoria caché es pequeña y además no es una caché al uso. No es transparente ni tiene unidad de predicción de acceso a datos, por lo que el software que escribamos (o en su defecto el sistema operativo) debe encargarse de gestionar esta memoria. Tampoco hay ejecución fuera de orden. Se accede a la memoria principal por DMA. Lanzar una petición DMA puede ser muy lento, aunque una vez que comienzan a fluir los datos va muy bien. Los registros de 128 bits permiten ejecución sobre varios datos de menor tamaño en paralelo SIMD. Es una arquitectura RISC superescalar. El juego de instrucciones de las SPE’s está inspirado en VMX/Altivec; es muy parecido pero no idéntico. EL pipeline se muestra a continuación, al igual que en el PPE los colores identifican a cada estructura del SPE. Figura 8: Diagrama del pipeline para el SPE 10 EL54B 2.3 Microprocesadores Cell Bus de Interconexión de Elementos Figura 9: Bus de Interconexión de Elemntos Todos los elementos (el PPE, el controlado de memoria, las ocho SPE’s y dos interfaces externas de I/O) del procesador Cell están unidos por el Bus interno de interconexión de elementos EIB de 96 Bytes por ciclo para una cantidad total de 12 participantes. Este bus de interconexión funciona en base de un sistema de mensajes. Tanto el PPE, como las SPE’s pueden agarrar y dejar datos con 8 Bytes por ciclo del EIB. El EIB es un anillo compuesto por cuarto canales unidireccionales de 16 bytes de ancho (4x128-bit). El máximo de ancho de banda por ciclo de reloj es de 96 Bytes. Se calcula de la siguiente manera Ancho de BandaM ax = 12 Concurrent Transactions · 16 Bytes Wide 2 System Clocks per Transfer (1) Cada elemento del Microprocesador Cell tiene un puerto de 16 Bytes de lectura y puerto de 16 Bytes de escritura. El lı́mite de cada elemento conectado al EIB es escribir y leer con una tasa de 16 Bytes por ciclo de reloj, lo cual se simplificó decidiendo escribir únicamente 8 Bytes por ciclo de reloj. 2.4 Memory Interface Controller MIC e I/O Controller Figura 10: MIC, I/O El controlador de la interfaz de memoria MIC provee de la interfaz entre el EIB y de la memoria del sistema. Este controlador permite uno o dos canales XDR, interfaces de memoria, los que juntos permiten desde 64 MB a 64GB de XDR DRAM. El sistema de interfaz usada en Cell es conocidad como interfaz FlexIO, la cual está organizada en 12 lı́neas, cada lı́nea tiene un ancho de 8 bit unidireccional del point-to-point path. Cinco de ellas son lı́neas de entrada, por lo cual las 7 restantes lı́neas son de salida. 11 EL54B 2.5 Microprocesadores Cell Otras Consideraciones Escalabilidad: Cell está diseñado para facilitar la construcción de sistemas que agrupen varios procesadores Cell. En concreto, un núcleo PPE puede acceder a las SPE’s de otros procesadores Cell que convivan en el mismo sistema. DRM en Cell: Cell no implementa un sistema DRM14 especı́fico; sin embargo sı́ incluye una caracterı́stica muy interesante desde el punto de vista de la seguridad y privacidad que podrı́a ser aprovechada por un software de DRM. Dicha caracterı́stica consiste en la existencia de un modo de ejecución en el que el contenido de la caché de una SPE es privado para esa SPE. Ninguna otra SPE, ni el PPE, ni ningún dispositivo externo al procesador puede leer el contenido de esa memoria. Etiquetas de memoria: Cell soporta el uso de etiquetas de memoria. El único motivo para incluirlas es poder ejecutar el sistema operativo AS/400 que IBM15 aún mantiene en los mainframes. 14 Digital Right Manager de gama baja y media de IBM 15 Servidor 12 EL54B Microprocesadores Cell SECCIÓN 3 Modelos de Programación para el Microprocesador Cell A continuación se mencionarán tres modelos que en la actualidad se usan para programar estos microprocesadores. No se entrará en detalle ya que este trabajo no esta enfocado a la programación, sino que más bien está enfocado a la descripción de la arquitectura. 3.1 Stream Processing Consiste en alinear varias SPE’s en cascada (en pipeline) para que cada una ejecute una etapa de un proceso complejo. Además internamente en cada SPE hay un pipeline. 3.2 Cola de Tareas Consiste en que se van poniendo tareas en una cola y un hilo que corre en el PPE las va sacando y asignando dinámicamente a una SPE concreta según vayan quedando libres. 3.3 Multitarea Auto-Gestionada Este es el modelo que está desarrollando Arnd Bergmann de IBM para Linux. El sistema operativo abstrae cada SPE como un dispositivo en el virtual file system y permite comunicarse con él mediante llamadas al sistema. Esencialmente, es un modelo o me lo guiso, yo me lo como”, porque toda la sincronización entre hilos y la asignación de tareas la tiene que gestionar nuestro software. Es de suponer que los desarrolladores de videojuegos utilizarán sus propias implementaciones de este modelo. 2 13 EL54B Microprocesadores Cell SECCIÓN 4 Aplicaciones 4.1 Capacidades del Chip Cell El Chip Cell fue diseñado para hacer un montón de cosas en distintas áreas, entre las áreas que abarca y las aplicaciones potenciales que este microprocesador permite se encuentran: 4.1.1 Manipulación de Datos: - Digital Media Procesamiento de Imágenes Procesamiento de Video Visualización de Salida Compresión/Descompresión: técnica para la modulación/demodulación de señales Encriptado/Decriptación DSP 4.1.2 Aplicaciones Graficas: - Transformación desde distintos dominios (tiempo vs espacio, 2D vs 3D, transformación viewpoint), Luminocidad y limpieza Ray-tracing.16 Ray-casting.17 4.1.3 Aplicaciones Intensivas de Punto Flotante (Single Precision) 4.1.4 Reconocimiento de Patrones - Bioinformatica Manipulación de String (mecanismo de búsqueda), Parsing, transformation, and translation (XSLT) Filtering and pruning. 4.1.5 Offload Engines - TCP/IP Compiler for gaming applications XML Network security and intrusion 4.2 Actuales Aplicaciones 4.2.1 Servidores Blade Los servidores Blade buscan optimizar aspectos en cualquier empresa tan prioritarios como la escalabilidad, la confiabilidad funcional, el espacio ocupado, y la administración eficiente de la información de la empresa. Tradicionalmente, hasta la llegada de los servidores blade, el método para incrementar la capacidad de procesamiento global del centro de datos consistı́a básicamente en agregar más servidores en rack o en torres, lo que 16 El Ray-tracing es una técnica general de óptica geométrica para modelar la trayectoria tomada por la luz, siguiendo los rayos de luz en la medida que interactúan con superficies ópticas. Es usada para el aprovechamiento de sistemas ópticos, como lentes de cámaras, microscopios, telescopios y binoculares. 17 El Ray-casting es una técnica que se utiliza en aplicaciones gráficas, que transforma una forma limitada de información (un mapa simple o el plano del suelo) en una proyección 3D redirigiendo rayos luminosos desde el punto de visión al volúmen de visión (LaMothe 942). Esto es utilizado en video juegos entre otras cosas, para evitar el pop-up. 14 EL54B Microprocesadores Cell suponı́a, entre otras consideraciones; ocupar más espacio, complicaciones con el cableado, aumento de las dificultades en la administración centralizada de los sistemas y un mayor consumo de recursos técnicos y energéticos. Estos son los principios básicos en los que se fundamenta la arquitectura blade y que al final proporcionan una reducción del costo total. Figura 11: Servidores Blade Los servidores Blade, entre otras cosas, ocupan menos espacio, requieren menos ventilación y enfriamiento y requieren menor cableado que los servidores rack. La tónica actual es reemplazar la tecnologı́a existente por servidores Blade, e IBM no podı́a quedarse fuera de esto. En particular, BladeCenter QS20 de IBM incorpora 2 procesadores Cell B.E., SMP de 2 vı́as, operando a 3.2 GHz para su funcionamiento y es el primero de una lı́nea de muchos modelos más basados en chip Cell. 4.2.2 Videojuegos El chip Cell es el microprocesador en la consola Playstation 3 (PS3) de Sony. En el competitivo mercado de las consolas, las necesidades de los usuarios radican en aceleración gráfica, rapido procesamiento de múltiples datos, buen aprovechamiento del espacio y bajo costo. Para el desarrollo de PS3, Sony invirtió muchos recursos en el desarrollo del chip Cell. Entre las caracterı́sticas que ofrece el chip Cell de la PS3 se encuentran: - Soporta varios sistemas operativos diferentes, lo que abre aún más el mercado de las compañı́as que podrán desarrollar videojuegos - Gran ancho de banda entre el procesador y la memoria y Optimización para aplicaciones en tiempo real, lo que permite un buen desempeño para juegos on-line - Interfaz I/O flexible, lo que permite la introducción de hardware adicional a la consola - Sistema antipiraterı́a integrado en el chip, el gran problema que tienen las compañı́as, por ejemplo, para establecer mercados en Latinoamérica. Esta vez, Sony compite en este mercado con una consola más poderosa y mucha más capacidad de procesamiento que sus rivales. No hicieron grandes avances en la jugabilidad, solo en el poder de procesamiento. Habrá que ver como le va en esta ronda a Sony. 15 EL54B Microprocesadores Cell Figura 12: Playstation3 4.2.3 Investigación Médica: De acuerdo con lo publicado en un Diario Médico por Daniel Arbós el 15/12/2006, un equipo de la Unidad de Investigación en Informática Biomédica (GRIB18 ) del Instituto Municipal de Investigación Médica (IMIM) utiliza el procesador Cell (en particular el Cell de una PS3) para sus trabajos en la simulación de proteı́nas. Según explica Gianni De Fabritiis, promotor de la idea, .el procesador de esta consola es extremadamente potente. El número máximo de operaciones que puede hacer es diez veces superior al de cualquier procesador normal. Si además se adapta la tecnologı́a, algunas aplicaciones pueden ir cincuenta veces más rápido que con un ordenador convencional”. Dicen también que el GRIB ha sido el primer grupo en aplicar esta tecnologı́a a sus investigaciones, pero la Universidad de Stanford está preparando una iniciativa parecida al programa SETI (el de buscar señales en el universo de vida alienı́gena) para que cualquier propietario de una PlayStation se descargue un software que permita que se use parte de la capacidad de su aparato para la investigación. 4.3 Aplicaciones en desarrollo - Supercomputadores: actualmente Blue Gene-L es el supercomputador más poderoso del mundo, y es de IBM. Blue Gene-L no incorpora el chip Cell. Pero el desafı́o de hacer un hermano mayor para Blue Gene-L, involucra el uso del Cell. Figura 13: Blue Gene-L - Mainframes: IBM recientemente anunció una iniciativa en donde planea ofrecer una opción para sus computadoras tipo Mainframes (ZFrames) en donde se les podrá adaptar por medio de cables de red grupos enteros de 18 Ubicado en Barcelona, España. 16 EL54B Microprocesadores Cell computadoras tipo ”navajas”(de las que son bien delgadas y se montan en rieles) basadas en el chip Cell Broadband Engine para permitir entornos que manejen eficientemente mundos virtuales con millones de participantes (como Second Life), o juegos ”masivos”de todo tipo (como para juegos al estilo World of Warcraft). Figura 14: Mainframes Televisores de alta definición: Sony y Toshiba anunciaron nuevos productos en ésta área basado en Chip Cell para finales del 2007 Figura 15: Televisión de alta definición Estaciones de trabajo orientadas a la animación por ordenador: A partir de los demostrado por PS3, Chip Cell promete ser utilizado en aplicaciones de animación por computadora, como pelı́culas y videos musicales. Teléfonos Móviles: Toshiba anunció que está desarrollando una nueva lı́nea de teléfono móviles basados en Chip Cell Figura 16: Celular Toshiba Aplicaciones computacionales de Dinámica de Fluidos: no se encontró a nadie que esté preparando una aplicación en este ámbito basado en Chip Cell. Pero la arquitectura y diseño del Chip, lo hacen ideal para 17 EL54B Microprocesadores Cell este tipo de aplicaciones. Lo mismo si se desea aplicar FFT muchas veces. Donde más deberı́a destacar Chip Cell es realizando estas tareas. Vigilancia por Video: Sony adelanta toda una nueva familia de cámaras de vigilancia sobre IP para PYMES y casas particulares basadas en chip Cell. Procesamiento de datos de inteligencia, radar y sonar en tiempo real para operaciones y plataformas de reconocimiento militar vigilancia: El año 2006 IBM firmó un acuerdo con Mercury Computing Systems Inc para crear nuevos sistemas de computación para aplicaciones intensivas de datos, usando el poderoso chip, para aplicaciones de este tipo. 18 EL54B Microprocesadores Cell SECCIÓN 5 Referencias [1] http://teleobjetivo.monteagudo.net/archives/2005/02/26/el-cell-y-los-procesadores-multinucleo/ [2] http://www-03.ibm.com/technology/splash/qs20/pdf/cell be systems whitepaper.pdf [3] http://www.vidaextra.com/2006/10/07-el-chip-cell-de-ps3-integrado-en-los-telefonos-moviles [4] http://www.ibm.com/news/es/es/2006/12/premios sur.html [5] http://www.permadi.com/tutorial/raycast/rayc1.html#INTRODUCTION [6] http://www.blachford.info/computer/Cell/Cell0 v2.html [7] http://www.consolas.es/17-05-2007/consolas/el-poderoso-chip-cell-de-la-ps3 [8] http://www.research.ibm.com/journal/rd/492/tocpdf.html [9] http://eliax.com/index.php?/archives/2862-IBM-a-alojar-mundos-virtuales-en-Mainframes-con-chips-Cell.html [10] http://unademedicos.blogspot.com/2006/12/ps3-como-herramienta-investigadora-en.html [11] http://en.wikipedia.org/wiki/Cell microprocessor [12] http://researchweb.watson.ibm.com/people/m/mikeg/papers/2006 ieeemicro.pdf: Synergistic Processing in Cell?s Multicore Architecture; Michael Gschwind (IBM), H. Peter Hofstee (IBM), Brian Flaachs (IBM), Martin Hopkins (IBM), Yukio Watanabe (Toshiba), Takeshi Yamazaki (Sony Computer Entertainment), publicado por IEEE Computer Society 2006 [13] http://www01.ibm.com/chips/techlib/techlib.nsf/techdocs/BD3F1F4C3DB32C7487257142006131BC/$file/ BE HIG 10KE 1.4 11Sept2006.pdf : Cell Broadband Engine, CMOS SOI 10KE, Hardware Initialization Guide version 1.4; IBM; 11 septiembre 2006, [14] http://www.pcstats.com/articleview.cfm?articleID=1727 : IBM’s CELL Processor: Preview to Greatness?, 15 de mayo 2005 [15] http://researchweb.watson.ibm.com/journal/rd/494/kahle.html : Introduction to the Cell multiprocessor; J. A. Kahle, M. N. Day, H. P. Hofstee, C. R. Johns, T. R. Maeurer, and D. Shippy; Received February 19, 2005; accepted for publication June 1, 2005; Published online September 7, 2005 [16] http://barrapunto.com/journal.pl?op=display&uid=19560&id=15379 : Destripando Cell en la playa; 10 de Agosto 2005 19