› Foros › Multiplataforma › General
f5inet escribió:yo creo que el problema principal del CELL es su arquitectura... (siempre que hablamos de procesamiento general y/o aplicados a videojuegos). matematicamente, CELL es un monstruo de gigaflops... el problema es que por arquitectura (que me corrija ELOHE si me equivoco) el PPU no es mas que un mayordomo que se encarga mantener ocupados a los SPU, o sea, que ocupar la PPU en procesamiento generico y atascar asi a los SPU provoca una caida de rendimiento... por decirlo asi, los SPU no pueden comunicarse directamente con el mundo exterior al CELL. para eso, el PPU debe coger de la RAM el 'microprograma' (<256KBs), cargarlo en la SPU y darle entrada para que la SPU empieze a procesar. y eso debe hacerlo la PPU con cada uno de los 7 SPU. si, al final 7 procesadores de un calculo vectorial bestial yendo cada uno por su lado... y la PPU en plan mayordomo sirviendo los accesos a memoria de los SPU y haciendo alguna tareita menor, como controlando el acceso a los perifericos y ejecutando algun codigo que por su simplicidad no merezca la pena ser cargado en la SPU y ejecutado...
por supuesto, el problema es que los programadores no estan acostumbrados a escribir codigo vectorial, estan acostumbrados a escribir codigo aritmetico, con lo cual deben aprender otra forma de programar, o tener un BUEN compilador que les haga el trabajo... como demostracion: llevamos varios años en X86 con extensiones como 3DNow!, MMX y SSE... y yo he visto realmente POCO software que usen esas extensiones... los programadores prefieren usar la FPU para calculos en coma flotante y sobrecargar la pila de la FPU que aprender a usar 30 nuevas instrucciones... (mas vale malo conocido...)
f5inet escribió:si, los SPU pueden acceder a RAM directamente... el problema es que el mini-programa de menos de 256KB DEBE SER CARGADO por el PPU, o sea, que se comportan como microcontroladores. el PPU uplodea al SPU el bloque de codigo de menos de 256KB y resetea el SPU. a partir de ahi, el SPU empieza a ejecutar el codigo almacenado y empieza a acceder a la RAM para trabajar... pero el uplodeo del codigo lo debe hacer el PPU. y si tienes varios procesos compitiendo por los SPU al final la PPU se queda en eso... en un mayordomo para mantener alimentados a los SPU...
PD: vamos, esto es al menos lo que yo tengo entendido, por supuesto, puedo estar equivocado
takeda escribió:Lo curioso es que hasta Carmack diga que la PS3 es 'marginalmente mas potente'....
Ademas, si no me equivoco los SPU si pueden acceder directamente a memoria sin hacerlo a traves de la PPU...eso si, de forma mas lenta...
De todas formas hablamos de un concepto nuevo...demosle un poco mas de tiempo para ver lo que puede dar de si...
f5inet escribió:si, los SPU pueden acceder a RAM directamente... el problema es que el mini-programa de menos de 256KB DEBE SER CARGADO por el PPU, o sea, que se comportan como microcontroladores. el PPU uplodea al SPU el bloque de codigo de menos de 256KB y resetea el SPU. a partir de ahi, el SPU empieza a ejecutar el codigo almacenado y empieza a acceder a la RAM para trabajar... pero el uplodeo del codigo lo debe hacer el PPU. y si tienes varios procesos compitiendo por los SPU al final la PPU se queda en eso... en un mayordomo para mantener alimentados a los SPU...
PD: vamos, esto es al menos lo que yo tengo entendido, por supuesto, puedo estar equivocado