miércoles, 17 de junio de 2009

4.c Modelos de programación para el Cell

El procesador Cell es un procesador de última generación desarrollado por IBM, Sony y Toshiba diseñado para realizar cargas de trabajo de cálculo intensivo y aplicaciones de banda ancha con contenido multimedia. Su arquitectura es complicada para trabajar con ella. Es escalable y puede utilizarse en una amplia variedad de dispositivos.


La macro-arquitectura del procesador es la sigiuente:

1. Circuitería de gestión de memoria y entrada/salida.

2. Una memoria caché de segundo nivel de 512 Kbytes.

3. Una unidad de proceso de próposito general llamada Power Proccessor Element o PPE.

4. Ocho unidades de proceso vectorial llamadas Synergistic Proccessor Elements o SPEs.

5. Un bus que interconecta los elementos anteriores llamados Element Interconected Bus o EIB.



Los modelos de programación son los siguientes:

Stream processing: En realidad es un pipeline processing. Consiste en alinear varias SPEs en cascada (en pipeline) para que cada una ejecute una etapa de un proceso complejo.



Cola de tareas: 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 concrete según vayan quedando libres. Si algún día vemos un mainframe basado en Cell, éste será el modelo que utilice.


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 “yo 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 sofware. Es de suponer que los desarrolladores de videojuegos utilizarán sus propias implementaciones de este modelo.


No hay comentarios:

Publicar un comentario