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
casi ni he leido info del CELL, pero no creo que el PPE sea el "mayordomo" de los SPU, tal como el EE no es "mayordomo" de las VU en la PS2.
Me imagino que el esquema no variara mucho con la PS2, donde el EE genera la cadena que indica que cosas deben ser movidas por el DMAC a los perifericos, el EE solo pone un par de tags y da la instruccion al DMAC, quien actua de manera independiente.
El DMAC no manda un stream directamente a las VUs sino que las manda a las VPUs (las VUs son un elemento de las VPUs, pero no son lo mismo, tal como las SPU lo son a los SPE) donde son recibidas por los VIFs que se encargan de alimentar a las VUs con microcodigo y datos, sin dejarles tiempo ocioso alguno. Ademas el VIF pude desempacar datos desde muchos formatos de entrada, pude mantener el control de un doble buffer (o triple, etc), mientras el EE corre en paralelo casi despreocupado de que tal van las VUs.
Si es que el modelo del CELL fuera parecido a la PS2 yo lo veo como un gran salto cuantitativo ya que la VU0 tiene 4KB de micromemoria (+4KB de VU-MEM), la VU1 tiene 16KB de micromemoria (+16KB de VU-MEM) y cada SPU tiene 256KB que sirven indistintamente para Codigo o Datos.
Alguien conoce el rol del SMF que existe en cada SPE?, por lo que lei se encarga de las funciones de DMA y MMU.
saludos