¿Horror programarlo? Lo que era un horror eran las VUs de la PS2 XD, en comparación, el Cell es una delicia. Ahora en serio, no es difícil programarlo, lo único que es código específico y no te vale para otra arquitectura (aunque el código sea el mismo, también en C/C++, el rendimiento caería en picado, al estar pensado para otra arquitectura -diferentes tipos de optimizaciones para saltos, acceso a memoria, etc.-).
- De 8/16KB (la PS2 tiene una VU con 8KB y otra con 16) de memoria local a 256KB por VU del Cell.
- De 16 registros de enteros y 32 de coma flotante (128 bits/registro) de cada VU del EE de la PS2, a 128 registros por unidad vectorial del Cell.
- Transferencias por DMA similares, pero mejoradas, pues no se frenan entre las diferentes unidades vectoriales (en la PS2 se saturan los buses si no se va con ojo, aunque nunca he dedicado el suficiente tiempo como para hablar, ni de lejos, como experto con el "Emotion Engine").
- Las VUs de la PS2 eran MIMD ("Multiple Instruction Multiple Data"), lanzaban dos instrucciones, explícitamente, por ciclo, si querías ejecutar sólo una le tenías que colocar tú el "nop" a mano (!), mientras que las intrucciones que usan las SPEs del Cell guardan cierto "parecido" con la elegancia del juego de instrucciones de PPC, siendo las instrucciones SIMD similares.
De hecho, que las SPEs del Cell no puedan acceder a la memoria principal de manera directa, no es una limitación "grave", pues de poder hacerlo implicaría el uso de mucha area del chip para controlar la coherencia, mientras que por DMA resulta trivial. 256KB de memoria local es *mucha* memoria.
Re:Depende de la aplicación... pero no exager
(Puntos:2)( http://www.voluntariado.net/ | Última bitácora: Domingo, 10 Junio de 2012, 21:48h )
Re:Depende de la aplicación... pero no exager
(Puntos:2)( http://www.voluntariado.net/ | Última bitácora: Domingo, 10 Junio de 2012, 21:48h )
- De 8/16KB (la PS2 tiene una VU con 8KB y otra con 16) de memoria local a 256KB por VU del Cell.
- De 16 registros de enteros y 32 de coma flotante (128 bits/registro) de cada VU del EE de la PS2, a 128 registros por unidad vectorial del Cell.
- Transferencias por DMA similares, pero mejoradas, pues no se frenan entre las diferentes unidades vectoriales (en la PS2 se saturan los buses si no se va con ojo, aunque nunca he dedicado el suficiente tiempo como para hablar, ni de lejos, como experto con el "Emotion Engine").
- Las VUs de la PS2 eran MIMD ("Multiple Instruction Multiple Data"), lanzaban dos instrucciones, explícitamente, por ciclo, si querías ejecutar sólo una le tenías que colocar tú el "nop" a mano (!), mientras que las intrucciones que usan las SPEs del Cell guardan cierto "parecido" con la elegancia del juego de instrucciones de PPC, siendo las instrucciones SIMD similares.
De hecho, que las SPEs del Cell no puedan acceder a la memoria principal de manera directa, no es una limitación "grave", pues de poder hacerlo implicaría el uso de mucha area del chip para controlar la coherencia, mientras que por DMA resulta trivial. 256KB de memoria local es *mucha* memoria.