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
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