Cell , una abreviatura de Cell Broadband Engine Architecture , [a] es un microprocesador multinúcleo de 64 bits y una microarquitectura que combina un núcleo PowerPC de propósito general de rendimiento modesto con elementos de coprocesamiento optimizados [2] que aceleran enormemente las aplicaciones de procesamiento multimedia y vectorial , así como muchas otras formas de computación dedicada. [2]
Fue desarrollado por Sony , Toshiba e IBM , una alianza conocida como "STI". El diseño arquitectónico y la primera implementación se llevaron a cabo en el Centro de Diseño STI en Austin, Texas, durante un período de cuatro años a partir de marzo de 2001 con un presupuesto que Sony informó que se acercaba a los 400 millones de dólares . [3] La primera aplicación comercial importante de Cell fue en la consola de juegos PlayStation 3 de Sony, lanzada en 2006. En mayo de 2008, la supercomputadora IBM Roadrunner basada en Cell se convirtió en el primer sistema TOP500 LINPACK sostenido de 1,0 petaflops. [4] [5] Mercury Computer Systems también desarrolló diseños basados en Cell.
La arquitectura Cell incluye una arquitectura de coherencia de memoria que enfatiza la eficiencia energética, prioriza el ancho de banda sobre la baja latencia y favorece el máximo rendimiento computacional sobre la simplicidad del código del programa . Por estas razones, Cell es ampliamente considerado como un entorno desafiante para el desarrollo de software . [6] IBM proporcionó una plataforma de desarrollo basada en Linux para ayudar a los desarrolladores a programar para chips Cell. [7]
A mediados de 2000, Sony Computer Entertainment , Toshiba Corporation e IBM formaron una alianza conocida como "STI" para diseñar y fabricar el procesador. [8]
El Centro de Diseño STI abrió en marzo de 2001. [9] El Cell fue diseñado durante un período de cuatro años, utilizando versiones mejoradas de las herramientas de diseño para el procesador POWER4 . Más de 400 ingenieros de las tres empresas trabajaron juntos en Austin, con el apoyo fundamental de once de los centros de diseño de IBM. [9] Durante este período, IBM presentó muchas patentes relacionadas con la arquitectura, el proceso de fabricación y el entorno de software del Cell. Se demostró que una versión de patente temprana del Broadband Engine era un paquete de chip que comprendía cuatro "Elementos de procesamiento", que era la descripción de la patente para lo que ahora se conoce como el Elemento de procesamiento de energía (PPE). Cada Elemento de procesamiento contendría 8 "Elementos de procesamiento sinérgico" (SPE) en el chip. Se suponía que este paquete de chip funcionaría a una velocidad de reloj de 4 GHz y con 32 SPE que proporcionaban 32 gigaFLOPS cada SPE (FP32 de precisión simple), (por SPU 4 flops FPU + 4 flops por unidad de números enteros: 8 flops por ciclo por Spu), el Broadband Engine estaba destinado a tener 1 teraFLOPS de potencia informática bruta en teoría.
El diseño con 4 PPE y 32 SPE nunca se realizó. En su lugar, Sony e IBM fabricaron un diseño con un PPE y 8 SPE. Este diseño más pequeño, el Cell Broadband Engine o Cell/BE, se fabricó utilizando un proceso SOI de 90 nm . [10]
En marzo de 2007, IBM anunció que la versión de 65 nm de Cell/BE estaba en producción en su planta (en ese momento, ahora GlobalFoundries) en East Fishkill, Nueva York , [10] [11] con Bandai Namco Entertainment usando el procesador Cell/BE para su placa arcade 357 así como para la posterior 369.
En febrero de 2008, IBM anunció que comenzaría a fabricar procesadores Cell con el proceso de 45 nm . [12]
En mayo de 2008, IBM presentó la versión de punto flotante de doble precisión y alto rendimiento del procesador Cell, el PowerXCell 8i , [13] con un tamaño de característica de 65 nm.
En mayo de 2008, un superordenador basado en Opteron y PowerXCell 8i, el sistema IBM Roadrunner , se convirtió en el primer sistema del mundo en alcanzar un petaFLOPS y fue el ordenador más rápido del mundo hasta el tercer trimestre de 2009. Los tres superordenadores más eficientes energéticamente del mundo, según la lista Green500 , también se basan en el PowerXCell 8i.
En agosto de 2009, se presentó el procesador Cell de 45 nm junto con la PlayStation 3 Slim de Sony . [14]
En noviembre de 2009, IBM había interrumpido el desarrollo de un procesador Cell con 32 APU [15] [16] pero todavía estaba desarrollando otros productos Cell. [17]
El 17 de mayo de 2005, Sony Computer Entertainment confirmó algunas especificaciones del procesador Cell que se enviaría en la consola PlayStation 3 que se lanzaría en ese momento. [18] [19] [20] Esta configuración Cell tiene un PPE en el núcleo, con ocho SPE físicos en silicio. [20] En la PlayStation 3, un SPE se bloquea durante el proceso de prueba, una práctica que ayuda a mejorar los rendimientos de fabricación, y otro se reserva para el sistema operativo, dejando 6 SPE libres para que los use el código de los juegos. [21] La frecuencia de reloj objetivo en la introducción es de 3,2 GHz . [19] El diseño introductorio se fabrica utilizando un proceso SOI de 90 nm, con una producción en volumen inicial programada para las instalaciones de IBM en East Fishkill, Nueva York . [10]
La relación entre núcleos e hilos es una fuente habitual de confusión. El núcleo PPE tiene dos hilos y se manifiesta en el software como dos hilos de ejecución independientes, mientras que cada SPE activo se manifiesta como un único hilo. En la configuración de PlayStation 3 descrita por Sony, el procesador Cell proporciona nueve hilos de ejecución independientes.
El 28 de junio de 2005, IBM y Mercury Computer Systems anunciaron un acuerdo de asociación para construir sistemas informáticos basados en Cell para aplicaciones integradas como imágenes médicas , inspección industrial, aeroespacial y defensa , procesamiento sísmico y telecomunicaciones . [22] Desde entonces, Mercury ha lanzado servidores blade , servidores de rack convencionales y placas aceleradoras PCI Express con procesadores Cell. [22]
En el otoño de 2006, IBM lanzó el módulo blade QS20 que utiliza procesadores dobles Cell BE para un rendimiento tremendo en ciertas aplicaciones, alcanzando un pico de 410 gigaFLOPS en Fp32 de precisión simple por módulo. El QS22 basado en el procesador PowerXCell 8i se utilizó para la supercomputadora IBM Roadrunner . Mercury e IBM utilizan el procesador Cell completamente utilizado con ocho SPE activos. El 8 de abril de 2008, Fixstars Corporation lanzó una placa aceleradora PCI Express basada en el procesador PowerXCell 8i. [23]
El servidor informático multimedia de alto rendimiento ZEGO de Sony utiliza un procesador Cell/BE de 3,2 GHz.
El Cell Broadband Engine , o Cell como se lo conoce más comúnmente, es un microprocesador concebido como un híbrido entre los procesadores de escritorio convencionales (como las familias Athlon 64 y Core 2 ) y procesadores de alto rendimiento más especializados, como los procesadores gráficos ( GPU ) NVIDIA y ATI . El nombre más largo indica su uso previsto, es decir, como componente en los sistemas de distribución en línea actuales y futuros ; como tal, puede utilizarse en pantallas de alta definición y equipos de grabación, así como en sistemas de HDTV . Además, el procesador puede ser adecuado para sistemas de imágenes digitales (médicos, científicos, etc. ) y simulación física ( por ejemplo , modelado científico y de ingeniería estructural ). Tal como se utiliza en la PlayStation 3, tiene 250 millones de transistores. [24]
En un análisis simple, el procesador Cell se puede dividir en cuatro componentes: estructuras de entrada y salida externas, el procesador principal llamado Elemento de Procesamiento de Energía (PPE) (un núcleo PowerPC 2.02 multihilo simultáneo bidireccional ), [25] ocho coprocesadores completamente funcionales llamados Elementos de Procesamiento Sinérgico , o SPE, y un bus de datos circular especializado de alto ancho de banda que conecta el PPE, los elementos de entrada/salida y los SPE, llamado Bus de Interconexión de Elementos o EIB.
Para lograr el alto rendimiento necesario para tareas matemáticamente intensivas, como decodificar/codificar flujos MPEG , generar o transformar datos tridimensionales o realizar análisis de Fourier de datos, el procesador Cell une los SPE y el PPE a través de EIB para dar acceso, mediante DMA (acceso directo a memoria) totalmente coherente con caché , tanto a la memoria principal como a otro almacenamiento de datos externo. Para aprovechar al máximo el EIB y superponer el cálculo y la transferencia de datos, cada uno de los nueve elementos de procesamiento (PPE y SPE) está equipado con un motor DMA . Dado que las instrucciones de carga/almacenamiento del SPE solo pueden acceder a su propia memoria local , cada SPE depende completamente de los DMA para transferir datos hacia y desde la memoria principal y las memorias locales de otros SPE. Una operación DMA puede transferir un área de bloque única de tamaño de hasta 16 KB o una lista de 2 a 2048 de dichos bloques. Una de las principales decisiones de diseño en la arquitectura de Cell es el uso de DMA como medio central de transferencia de datos dentro del chip, con el objetivo de permitir la máxima asincronía y concurrencia en el procesamiento de datos dentro de un chip. [26]
El PPE, que es capaz de ejecutar un sistema operativo convencional, tiene control sobre los SPE y puede iniciar, detener, interrumpir y programar procesos que se ejecutan en los SPE. Para ello, el PPE tiene instrucciones adicionales relacionadas con el control de los SPE. A diferencia de los SPE, el PPE puede leer y escribir en la memoria principal y en las memorias locales de los SPE mediante las instrucciones estándar de carga/almacenamiento. A pesar de tener arquitecturas completas de Turing , los SPE no son completamente autónomos y requieren que el PPE los prepare antes de que puedan realizar cualquier trabajo útil. Como la mayor parte de la "potencia" del sistema proviene de los elementos de procesamiento sinérgico, el uso de DMA como método de transferencia de datos y la limitada huella de memoria local de cada SPE plantean un gran desafío para los desarrolladores de software que desean aprovechar al máximo esta potencia, lo que exige un ajuste manual cuidadoso de los programas para extraer el máximo rendimiento de esta CPU.
La arquitectura del PPE y del bus incluye varios modos de operación que ofrecen diferentes niveles de protección de la memoria , lo que permite proteger áreas de la memoria del acceso por parte de procesos específicos que se ejecutan en los SPE o el PPE.
Tanto el PPE como el SPE son arquitecturas RISC con un formato de instrucciones de ancho fijo de 32 bits. El PPE contiene un conjunto de registros de propósito general (GPR) de 64 bits, un conjunto de registros de punto flotante (FPR) de 64 bits y un conjunto de registros Altivec de 128 bits . El SPE contiene solo registros de 128 bits. Estos se pueden utilizar para tipos de datos escalares que van desde 8 bits a 64 bits de tamaño o para cálculos SIMD en una variedad de formatos de números enteros y de punto flotante. Las direcciones de memoria del sistema tanto para el PPE como para el SPE se expresan como valores de 64 bits para un rango de direcciones teórico de 264 bytes (16 exabytes o 16.777.216 terabytes). En la práctica, no todos estos bits se implementan en hardware. Las direcciones de almacenamiento local internas del procesador SPU (Unidad de procesador sinérgico) se expresan como una palabra de 32 bits. En la documentación relacionada con Cell, una palabra siempre significa 32 bits, una palabra doble significa 64 bits y una palabra cuádruple significa 128 bits.
En 2008, IBM anunció una variante revisada del Cell llamada PowerXCell 8i , [27] que está disponible en los servidores Blade QS22 de IBM. El PowerXCell se fabrica en un proceso de 65 nm y agrega soporte para hasta 32 GB de memoria DDR2 con ranuras, además de mejorar drásticamente el rendimiento de punto flotante de doble precisión en los SPE desde un pico de aproximadamente 12,8 GFLOPS a 102,4 GFLOPS en total para ocho SPE, que, casualmente, es el mismo rendimiento máximo que el procesador vectorial NEC SX-9 lanzado aproximadamente al mismo tiempo. La supercomputadora IBM Roadrunner , la más rápida del mundo durante 2008-2009, constaba de 12.240 procesadores PowerXCell 8i, junto con 6.562 procesadores AMD Opteron . [28] Las supercomputadoras impulsadas por PowerXCell 8i también dominaron los 6 sistemas más "verdes" de la lista Green500, con las supercomputadoras con la relación MFLOPS/Watt más alta del mundo. [29] Además del QS22 y las supercomputadoras, el procesador PowerXCell también está disponible como acelerador en una tarjeta PCI Express y se utiliza como procesador central en el proyecto QPACE .
Dado que el PowerXCell 8i eliminó la interfaz de memoria RAMBUS y agregó interfaces DDR2 significativamente más grandes y SPE mejorados, el diseño del chip tuvo que ser rediseñado, lo que dio como resultado un chip y un empaque más grandes. [30]
Si bien el chip Cell puede tener varias configuraciones diferentes, la configuración básica es un chip multinúcleo compuesto por un "Elemento de Procesamiento de Potencia" ("PPE") (a veces llamado "Elemento de Procesamiento" o "PE"), y múltiples "Elementos de Procesamiento Sinérgico" ("SPE"). [31] El PPE y los SPE están conectados entre sí por un bus interno de alta velocidad denominado "Bus de Interconexión de Elementos" ("EIB").
El PPE [32] [33] [34] es el núcleo de CPU multiproceso simultáneo bidireccional en orden de emisión dual basado en PowerPC con una tubería de 23 etapas que actúa como controlador para los ocho SPE, que manejan la mayor parte de la carga de trabajo computacional. PPE tiene capacidades limitadas de ejecución fuera de orden; puede realizar cargas fuera de orden y tiene tuberías de ejecución retrasada. El PPE funcionará con sistemas operativos convencionales debido a su similitud con otros procesadores PowerPC de 64 bits, mientras que los SPE están diseñados para la ejecución de código de punto flotante vectorizado. El PPE contiene una caché de instrucciones de nivel 1 de 32 KiB , una caché de datos de nivel 1 de 32 KiB y una caché de nivel 2 de 512 KiB. El tamaño de una línea de caché es de 128 bytes en todas las cachés. [27] : 136–137, 141 Además, IBM ha incluido una unidad AltiVec (VMX) [35] que está completamente segmentada para coma flotante de precisión simple (Altivec 1 no admite vectores de coma flotante de precisión doble ), unidad de coma fija de 32 bits (FXU) con archivo de registro de 64 bits por hilo, unidad de carga y almacenamiento (LSU) , unidad de coma flotante de 64 bits (FPU) , unidad de ramificación (BRU) y unidad de ejecución de ramificación (BXU). [32] La PPE consta de tres unidades principales: unidad de instrucción (IU), unidad de ejecución (XU) y unidad de ejecución vectorial/escalar (VSU). La IU contiene caché de instrucciones L1, hardware de predicción de ramificación, búferes de instrucciones y lógica de comprobación de dependencias. La XU contiene unidades de ejecución de enteros (FXU) y unidad de carga y almacenamiento (LSU). La VSU contiene todos los recursos de ejecución para FPU y VMX. Cada PPE puede completar dos operaciones de doble precisión por ciclo de reloj utilizando una instrucción de multiplicación-suma fusionada escalar, que se traduce a 6,4 GFLOPS a 3,2 GHz; u ocho operaciones de precisión simple por ciclo de reloj con una instrucción de multiplicación-suma fusionada vectorial, que se traduce a 25,6 GFLOPS a 3,2 GHz. [36]
El PPE fue diseñado específicamente para el procesador Cell, pero durante el desarrollo, Microsoft se acercó a IBM queriendo un núcleo de procesador de alto rendimiento para su Xbox 360. IBM cumplió y fabricó el procesador Xenon de tres núcleos , basado en una versión ligeramente modificada del PPE con extensiones VMX128 agregadas. [37] [38]
Cada SPE es un procesador de doble emisión compuesto por una "Unidad de procesamiento sinérgico", [39] SPU, y un "Controlador de flujo de memoria", MFC ( DMA , MMU e interfaz de bus ). Los SPE no tienen ningún hardware de predicción de bifurcaciones (por lo tanto, hay una gran carga para el compilador). [40] Cada SPE tiene 6 unidades de ejecución divididas entre tuberías pares e impares en cada SPE: La SPU ejecuta un conjunto de instrucciones (ISA) especialmente desarrollado con organización SIMD de 128 bits [35] [2] [41] para instrucciones de precisión simple y doble. Con la generación actual de Cell, cada SPE contiene una SRAM integrada de 256 KiB para instrucciones y datos, llamada "Almacenamiento local" (que no debe confundirse con "Memoria local" en los documentos de Sony que hacen referencia a la VRAM) que es visible para el PPE y puede ser direccionada directamente por software. Cada SPE puede admitir hasta 4 GiB de memoria de almacenamiento local. El almacenamiento local no funciona como una caché de CPU convencional , ya que no es transparente al software ni contiene estructuras de hardware que predigan qué datos cargar. Los SPE contienen un archivo de registro de 128 bits y 128 entradas y miden 14,5 mm2 en un proceso de 90 nm. Un SPE puede operar con dieciséis números enteros de 8 bits, ocho números enteros de 16 bits, cuatro números enteros de 32 bits o cuatro números de punto flotante de precisión simple en un solo ciclo de reloj, así como una operación de memoria. Tenga en cuenta que la SPU no puede acceder directamente a la memoria del sistema; las direcciones de memoria virtual de 64 bits formadas por la SPU deben pasarse desde la SPU al controlador de flujo de memoria (MFC) del SPE para configurar una operación DMA dentro del espacio de direcciones del sistema.
En un escenario de uso típico, el sistema cargará los SPE con pequeños programas (similares a los subprocesos ), encadenando los SPE para manejar cada paso en una operación compleja. Por ejemplo, un decodificador podría cargar programas para leer un DVD, decodificar video y audio, y mostrar, y los datos se pasarían de SPE a SPE hasta que finalmente terminarían en el televisor. Otra posibilidad es particionar el conjunto de datos de entrada y tener varios SPE realizando el mismo tipo de operación en paralelo. A 3,2 GHz, cada SPE brinda un rendimiento teórico de precisión simple de 25,6 GFLOPS .
En comparación con sus contemporáneos de ordenadores personales , el rendimiento de punto flotante general relativamente alto de un procesador Cell aparentemente eclipsa las capacidades de la unidad SIMD en CPU como el Pentium 4 y el Athlon 64. Sin embargo, comparar solo las capacidades de punto flotante de un sistema es una métrica unidimensional y específica de la aplicación. A diferencia de un procesador Cell, estas CPU de escritorio son más adecuadas para el software de propósito general que generalmente se ejecuta en computadoras personales. Además de ejecutar múltiples instrucciones por ciclo de reloj, los procesadores de Intel y AMD cuentan con predictores de bifurcación . El Cell está diseñado para compensar esto con la asistencia del compilador, en el que se crean instrucciones de preparación para la bifurcación. Para operaciones de punto flotante de doble precisión, como las que a veces se usan en computadoras personales y a menudo se usan en computación científica, el rendimiento de Cell cae en un orden de magnitud, pero aún alcanza los 20,8 GFLOPS (1,8 GFLOPS por SPE, 6,4 GFLOPS por PPE). La variante PowerXCell 8i, que fue diseñada específicamente para doble precisión, alcanza 102,4 GFLOPS en cálculos de doble precisión. [42]
Las pruebas realizadas por IBM muestran que los SPE pueden alcanzar el 98% de su rendimiento máximo teórico ejecutando una multiplicación de matrices paralelas optimizada. [36]
Toshiba ha desarrollado un coprocesador alimentado por cuatro SPE, pero sin PPE, llamado SpursEngine , diseñado para acelerar los efectos 3D y de películas en la electrónica de consumo.
Cada SPE tiene una memoria local de 256 KB. [43] En total, los SPE tienen 2 MB de memoria local.
El EIB es un bus de comunicación interno al procesador Cell que conecta los distintos elementos del sistema integrado: el procesador PPE, el controlador de memoria (MIC), los ocho coprocesadores SPE y dos interfaces de E/S externas al chip, para un total de 12 participantes en el PS3 (el número de SPU puede variar en aplicaciones industriales). El EIB también incluye una unidad de arbitraje que funciona como un conjunto de semáforos. En algunos documentos, IBM se refiere a los participantes del EIB como "unidades".
El EIB se implementa actualmente como un anillo circular que consta de cuatro canales unidireccionales de 16 bytes de ancho que giran en sentido contrario en pares. Cuando los patrones de tráfico lo permiten, cada canal puede transmitir hasta tres transacciones simultáneamente. Como el EIB funciona a la mitad de la velocidad del reloj del sistema, la velocidad efectiva del canal es de 16 bytes cada dos relojes del sistema. En la máxima concurrencia , con tres transacciones activas en cada uno de los cuatro anillos, el ancho de banda instantáneo máximo del EIB es de 96 bytes por reloj (12 transacciones simultáneas × 16 bytes de ancho / 2 relojes del sistema por transferencia). Si bien esta cifra se cita a menudo en la literatura de IBM, no es realista simplemente escalar este número por la velocidad del reloj del procesador. La unidad de arbitraje impone restricciones adicionales.
David Krolak, ingeniero sénior de IBM y diseñador principal de EIB, explica el modelo de concurrencia:
Un anillo puede iniciar una nueva operación cada tres ciclos. Cada transferencia siempre lleva ocho tiempos. Esa fue una de las simplificaciones que hicimos, está optimizada para transmitir una gran cantidad de datos. Si realiza operaciones pequeñas, no funciona tan bien. Si piensa en trenes de ocho vagones circulando por esta vía, siempre que los trenes no se choquen entre sí, pueden coexistir en la vía. [44]
Cada participante del EIB tiene un puerto de lectura de 16 bytes y un puerto de escritura de 16 bytes. El límite para un solo participante es leer y escribir a una velocidad de 16 bytes por ciclo de reloj del EIB (para simplificar, a menudo se considera 8 bytes por ciclo de reloj del sistema). Cada procesador SPU contiene una cola de administración de DMA dedicada capaz de programar largas secuencias de transacciones a varios puntos finales sin interferir con los cálculos en curso del SPU; estas colas de DMA también se pueden administrar de forma local o remota, lo que proporciona flexibilidad adicional en el modelo de control.
Los datos fluyen por un canal EIB en forma escalonada alrededor del anillo. Como hay doce participantes, el número total de pasos alrededor del canal para volver al punto de origen es doce. Seis pasos es la distancia más larga entre cualquier par de participantes. No se permite que un canal EIB transmita datos que requieran más de seis pasos; dichos datos deben tomar la ruta más corta alrededor del círculo en la otra dirección. El número de pasos involucrados en el envío del paquete tiene muy poco impacto en la latencia de transferencia: la velocidad del reloj que impulsa los pasos es muy rápida en relación con otras consideraciones. Sin embargo, las distancias de comunicación más largas son perjudiciales para el rendimiento general del EIB, ya que reducen la concurrencia disponible.
A pesar del deseo original de IBM de implementar el EIB como una barra transversal más potente, la configuración circular que adoptaron para ahorrar recursos rara vez representa un factor limitante en el rendimiento del chip Cell en su conjunto. En el peor de los casos, el programador debe tener especial cuidado al planificar patrones de comunicación en los que el EIB pueda funcionar a altos niveles de concurrencia.
David Krolak explicó:
Bueno, al principio, al principio del proceso de desarrollo, varias personas estaban presionando para que se incluyera un conmutador de barras cruzadas, y por la forma en que está diseñado el bus, se podía sacar el EIB y colocar un conmutador de barras cruzadas si se estaba dispuesto a dedicar más espacio de silicio en el chip al cableado. Tuvimos que encontrar un equilibrio entre conectividad y área, y simplemente no había suficiente espacio para colocar un conmutador de barras cruzadas completo. Así que se nos ocurrió esta estructura de anillo que creemos que es muy interesante. Se ajusta a las limitaciones de área y aún así tiene un ancho de banda impresionante. [44]
A 3,2 GHz, cada canal fluye a una velocidad de 25,6 GB/s. Si se considera el EIB de forma aislada de los elementos del sistema que conecta, lograr doce transacciones simultáneas a esta velocidad de flujo equivale a un ancho de banda EIB abstracto de 307,2 GB/s. En base a esta visión, muchas publicaciones de IBM describen el ancho de banda EIB disponible como "superior a 300 GB/s". Este número refleja el ancho de banda EIB instantáneo máximo escalado por la frecuencia del procesador. [45]
Sin embargo, existen otras restricciones técnicas en el mecanismo de arbitraje de los paquetes aceptados en el bus. El grupo IBM Systems Performance explicó:
Cada unidad del EIB puede enviar y recibir simultáneamente 16 bytes de datos en cada ciclo de bus. El ancho de banda máximo de datos de todo el EIB está limitado por la velocidad máxima a la que se rastrean las direcciones en todas las unidades del sistema, que es una por ciclo de bus. Dado que cada solicitud de dirección rastreada puede transferir potencialmente hasta 128 bytes, el ancho de banda máximo teórico de datos en el EIB a 3,2 GHz es 128Bx1,6 GHz = 204,8 GB/s. [36]
Esta cita aparentemente representa el alcance total de la divulgación pública de IBM sobre este mecanismo y su impacto. La unidad de arbitraje EIB, el mecanismo de espionaje y la generación de interrupciones en caso de fallos en la traducción de segmentos o páginas no están bien descritos en el conjunto de documentación que IBM ha hecho pública hasta el momento. [ cita requerida ]
En la práctica, el ancho de banda EIB efectivo también puede verse limitado por los participantes del anillo involucrados. Si bien cada uno de los nueve núcleos de procesamiento puede soportar 25,6 GB/s de lectura y escritura de manera simultánea, el controlador de interfaz de memoria (MIC) está vinculado a un par de canales de memoria XDR que permiten un flujo máximo de 25,6 GB/s para lecturas y escrituras combinadas y se ha documentado que los dos controladores de E/S admiten una velocidad de entrada combinada máxima de 25,6 GB/s y una velocidad de salida combinada máxima de 35 GB/s.
Para aumentar aún más la confusión, algunas publicaciones antiguas citan el ancho de banda EIB asumiendo un reloj de sistema de 4 GHz. Este marco de referencia da como resultado una cifra de ancho de banda EIB instantáneo de 384 GB/s y una cifra de ancho de banda limitado por arbitraje de 256 GB/s.
Teniendo en cuenta todo esto, el número teórico de 204,8 GB/s que se cita con más frecuencia es el mejor que se debe tener en cuenta. El grupo IBM Systems Performance ha demostrado que los flujos de datos centrados en SPU alcanzan los 197 GB/s en un procesador Cell que funciona a 3,2 GHz, por lo que este número también refleja la práctica. [36]
La celda contiene una macro Rambus XIO de canal dual que interactúa con la memoria Rambus XDR . El controlador de interfaz de memoria (MIC) es independiente de la macro XIO y está diseñado por IBM. El enlace XIO-XDR funciona a 3,2 Gbit/s por pin. Dos canales de 32 bits pueden proporcionar un máximo teórico de 25,6 GB/s.
La interfaz de E/S, también un diseño de Rambus, se conoce como FlexIO. La interfaz FlexIO está organizada en 12 carriles, cada uno de los cuales es una ruta punto a punto unidireccional de 8 bits de ancho. Cinco rutas punto a punto de 8 bits de ancho son carriles de entrada a Cell, mientras que los siete restantes son de salida. Esto proporciona un ancho de banda pico teórico de 62,4 GB/s (36,4 GB/s de salida, 26 GB/s de entrada) a 2,6 GHz. La interfaz FlexIO se puede sincronizar de forma independiente, típicamente a 3,2 GHz. 4 carriles de entrada + 4 de salida admiten la coherencia de memoria.
Algunas empresas, como Leadtek , han lanzado tarjetas PCI-E basadas en Cell para permitir una transcodificación "más rápida que el tiempo real" de vídeo H.264 , MPEG-2 y MPEG-4 . [46]
El 29 de agosto de 2007, IBM anunció el BladeCenter QS21. Con una capacidad de generación de 1,05 gigaflops por segundo (gigaflops) por vatio y un rendimiento máximo de aproximadamente 460 GFLOPS, es una de las plataformas informáticas más eficientes energéticamente hasta la fecha. Un solo chasis BladeCenter puede alcanzar 6,4 teraflops por segundo (teraflops) y más de 25,8 teraflops en un bastidor estándar de 42 U. [47]
El 13 de mayo de 2008, IBM anunció el BladeCenter QS22. El QS22 incorpora el procesador PowerXCell 8i con un rendimiento de punto flotante de precisión doble cinco veces superior al del QS21 y capacidad para hasta 32 GB de memoria DDR2 en el blade. [48]
IBM ha descontinuado la línea de servidores Blade basados en procesadores Cell a partir del 12 de enero de 2012. [49]
Varias empresas ofrecen placas PCI-e que utilizan el IBM PowerXCell 8i. El rendimiento se estima en 179,2 GFlops (SP), 89,6 GFlops (DP) a 2,8 GHz. [50] [51]
La consola de videojuegos PlayStation 3 de Sony fue la primera aplicación de producción del procesador Cell, con una velocidad de reloj de 3,2 GHz y que contiene siete de los ocho SPE operativos, lo que le permitió a Sony aumentar el rendimiento de la fabricación del procesador. Solo seis de los siete SPE son accesibles para los desarrolladores, ya que uno está reservado por el sistema operativo. [21]
Toshiba ha producido televisores de alta definición utilizando Cell. Presentaron un sistema para decodificar 48 transmisiones MPEG-2 de definición estándar simultáneamente en una pantalla de 1920 × 1080. [52] [53] Esto puede permitir que un espectador elija un canal en función de docenas de videos en miniatura que se muestran simultáneamente en la pantalla.
Toshiba produjo un portátil, el Qosmio G55, lanzado en 2008, que contiene tecnología Cell incorporada. Su CPU es un chip basado en Intel Core x86, como es común en los ordenadores Toshiba . [54]
El superordenador de IBM, IBM Roadrunner , era un híbrido entre el Opteron x86-64 de propósito general y los procesadores Cell. Este sistema ocupó el primer puesto en la lista Top 500 de junio de 2008 como el primer superordenador en funcionar a velocidades de petaFLOPS , habiendo alcanzado una velocidad sostenida de 1,026 petaFLOPS utilizando el parámetro de referencia estándar LINPACK . IBM Roadrunner utilizó la versión PowerXCell 8i del procesador Cell, fabricado con tecnología de 65 nm y SPU mejoradas que pueden manejar cálculos de doble precisión en los registros de 128 bits, alcanzando 102 GFLOP de doble precisión por chip. [55] [56]
Los clústeres de consolas PlayStation 3 son una alternativa atractiva a los sistemas de gama alta basados en blades Cell. Innovative Computing Laboratory, un grupo dirigido por Jack Dongarra , del Departamento de Ciencias de la Computación de la Universidad de Tennessee, investigó en profundidad una aplicación de este tipo. [57] Terrasoft Solutions está vendiendo clústeres PS3 de 8 y 32 nodos con Yellow Dog Linux preinstalado, una implementación de la investigación de Dongarra.
Como informó por primera vez Wired el 17 de octubre de 2007, [58] una aplicación interesante del uso de PlayStation 3 en una configuración de clúster fue implementada por el astrofísico Gaurav Khanna , del departamento de Física de la Universidad de Massachusetts Dartmouth , quien reemplazó el tiempo utilizado en supercomputadoras con un clúster de ocho PlayStation 3. Posteriormente, la próxima generación de esta máquina, ahora llamada PlayStation 3 Gravity Grid , utiliza una red de 16 máquinas y explota el procesador Cell para la aplicación prevista, que es la coalescencia de agujeros negros binarios utilizando la teoría de perturbaciones . En particular, el clúster realiza simulaciones astrofísicas de grandes agujeros negros supermasivos que capturan objetos compactos más pequeños y ha generado datos numéricos que se han publicado varias veces en la literatura de investigación científica relevante. [59] La versión del procesador Cell utilizada por PlayStation 3 tiene una CPU principal y 6 SPE disponibles para el usuario, lo que le da a la máquina Gravity Grid una red de 16 procesadores de propósito general y 96 procesadores vectoriales. La máquina tiene un costo único de $9,000 para construir y es adecuada para simulaciones de agujeros negros que de otra manera costarían $6,000 por ejecución en una supercomputadora convencional. Los cálculos de agujeros negros no consumen mucha memoria y son altamente localizables, por lo que son muy adecuados para esta arquitectura. Khanna afirma que el rendimiento del clúster supera al de un clúster Linux tradicional basado en más de 100 núcleos Intel Xeon en sus simulaciones. La PS3 Gravity Grid atrajo una importante atención de los medios durante 2007, [60] 2008, [61] [62] 2009, [63] [64] [65] y 2010. [66] [67]
El laboratorio de Bioquímica y Biofísica computacional de la Universitat Pompeu Fabra , en Barcelona , implantó en 2007 un sistema BOINC denominado PS3GRID [68] para computación colaborativa basado en el software CellMD, el primero diseñado específicamente para el procesador Cell.
El Laboratorio de Investigación de la Fuerza Aérea de los Estados Unidos ha desplegado un clúster de más de 1700 unidades de PlayStation 3, apodado "Condor Cluster", para analizar imágenes satelitales de alta resolución . La Fuerza Aérea afirma que el Condor Cluster sería la 33.ª supercomputadora más grande del mundo en términos de capacidad. [69] El laboratorio ha abierto la supercomputadora para que las universidades la utilicen con fines de investigación. [70]
Con la ayuda de la potencia de cálculo de más de medio millón de consolas PlayStation 3, el proyecto de computación distribuida Folding@home ha sido reconocido por el Libro Guinness de los Récords como la red distribuida más potente del mundo. El primer récord se logró el 16 de septiembre de 2007, cuando el proyecto superó un petaFLOPS , algo que nunca antes había logrado una red de computación distribuida. Además, los esfuerzos colectivos permitieron que PS3 alcanzara por sí sola la marca de petaFLOPS el 23 de septiembre de 2007. En comparación, la segunda supercomputadora más potente del mundo en ese momento, Blue Gene/L de IBM , funcionaba a unos 478,2 teraFLOPS, lo que significa que la potencia de cálculo de Folding@home es aproximadamente el doble de la de Blue Gene/L (aunque la interconexión de la CPU en Blue Gene/L es más de un millón de veces más rápida que la velocidad media de la red en Folding@home). A partir del 7 de mayo de 2011, Folding@home funciona a aproximadamente 9,3 x86 petaFLOPS, con 1,6 petaFLOPS generados solo por 26.000 PS3 activas.
IBM anunció el 25 de abril de 2007 que comenzaría a integrar sus microprocesadores Cell Broadband Engine Architecture en la línea de mainframes System z de la compañía. [71] Esto ha dado lugar a un gameframe .
La arquitectura del procesador lo hace más adecuado para aplicaciones de ataques criptográficos de fuerza bruta asistidos por hardware que los procesadores convencionales. [72]
Debido a la naturaleza flexible de la Célula, existen varias posibilidades para la utilización de sus recursos, no limitadas a diferentes paradigmas computacionales: [73]
El PPE mantiene una cola de trabajos, programa los trabajos en los SPE y supervisa el progreso. Cada SPE ejecuta un "mininúcleo" cuya función es buscar un trabajo, ejecutarlo y sincronizarlo con el PPE.
El mini kernel y la programación se distribuyen entre los SPE. Las tareas se sincronizan mediante mutex o semáforos como en un sistema operativo convencional . Las tareas listas para ejecutarse esperan en una cola a que un SPE las ejecute. Los SPE utilizan memoria compartida para todas las tareas en esta configuración.
Cada SPE ejecuta un programa distinto. Los datos provienen de un flujo de entrada y se envían a los SPE. Cuando un SPE ha finalizado el procesamiento, los datos de salida se envían a un flujo de salida.
Esto proporciona una arquitectura flexible y potente para el procesamiento de flujos y permite la programación explícita de cada SPE por separado. Otros procesadores también pueden realizar tareas de flujos, pero están limitados por el núcleo cargado.
En 2005, los desarrolladores de IBM presentaron parches que habilitaban el soporte de Cell en el núcleo de Linux para su inclusión. [74] Arnd Bergmann (uno de los desarrolladores de los parches mencionados anteriormente) también describió la arquitectura Cell basada en Linux en LinuxTag 2005. [75] A partir de la versión 2.6.16 (20 de marzo de 2006), el núcleo de Linux admite oficialmente el procesador Cell. [76]
Tanto PPE como SPE son programables en C/C++ utilizando una API común proporcionada por bibliotecas.
Fixstars Solutions proporciona Yellow Dog Linux para sistemas basados en IBM y Mercury Cell, así como para PlayStation 3. [77] Terra Soft se asoció estratégicamente con Mercury para proporcionar un paquete de soporte de placa Linux para Cell, y soporte y desarrollo de aplicaciones de software en varias otras plataformas Cell, incluyendo IBM BladeCenter JS21 y Cell QS20, y soluciones basadas en Mercury Cell. [78 ] Terra Soft también mantiene la suite de construcción y gestión de clústeres Y-HPC (High Performance Computing) y las herramientas de secuenciación genética Y-Bio. Y-Bio está construido sobre el estándar RPM Linux para la gestión de paquetes, y ofrece herramientas que ayudan a los investigadores de bioinformática a realizar su trabajo con mayor eficiencia. [79] IBM ha desarrollado un pseudo-sistema de archivos para Linux denominado "Spufs" que simplifica el acceso y uso de los recursos SPE. IBM está manteniendo actualmente un kernel Linux y puertos GDB , mientras que Sony mantiene la cadena de herramientas GNU ( GCC , binutils ). [80]
En noviembre de 2005, IBM publicó en su sitio web un "Kit de desarrollo de software Cell Broadband Engine (CBE) versión 1.0", que consta de un simulador y herramientas diversas. Las versiones de desarrollo del último núcleo y las herramientas para Fedora Core 4 se mantienen en el sitio web del Barcelona Supercomputing Center . [81]
En agosto de 2007, Mercury Computer Systems lanzó un kit de desarrollo de software para PlayStation 3 para informática de alto rendimiento. [82]
En noviembre de 2007, Fixstars Corporation lanzó el nuevo módulo "CVCell" con el objetivo de acelerar varias API de OpenCV importantes para Cell. En una serie de pruebas de cálculo de software, registraron tiempos de ejecución en un procesador Cell de 3,2 GHz que eran entre 6 y 27 veces más rápidos en comparación con el mismo software en un Intel Core 2 Duo de 2,4 GHz. [83]
En octubre de 2009, IBM lanzó un controlador OpenCL para POWER6 y CBE. Esto permite que los programas escritos en la API multiplataforma se ejecuten fácilmente en Cell PSE. [84]
Ilustraciones de las diferentes generaciones de procesadores Cell/BE y del PowerXCell 8i. Las imágenes no están a escala; todos los encapsulados Cell/BE miden 42,5×42,5 mm y el PowerXCell 8i mide 47,5×47,5 mm.
Para aumentar el rendimiento de fabricación, Sony envía procesadores Cell para PlayStation 3 con solo siete SPE en funcionamiento. Y de esos siete, el sistema operativo utilizará un SPE para diversas tareas, lo que deja seis SPE y un PPE para que los utilicen los programadores de juegos.