Re: Diseño/normas del software
Publicado: 23 Ene 2011, 17:13
Ups, creo que he borrado un método sin querer Ya está solucionado.
Comunidad scener de PS Vita, PSP, PS3 y PS4
http://daxhordes.org/forum/
davidgf escribió:Una cosita (casi ni me lo he mirado!) pero habría que emular las caches del procesador.
davidgf escribió:Además el segundo procesador que lleva la PSP (si mal no recuerdo) tiene menos copros que el principal, no lleva VFPU por ejemplo (si lleva FPU) y además tiene un espacio de memoria propio (no recuerdo el rango) para él solito.
davidgf escribió:Lo de la caché es importante creo, más que nada por que al no tener cache snooping ambas cpus pueden trabajar sobre el mismo dato de memoria y realmente no molestarse (demasiado) dado que la cache es CopyBack/WriteAllocate (aunque se puede cambiar la política). Esto afecta directamente a la GU y al tema de mapeo de RAM (direcciones OReadas con 0x80...0).
davidgf escribió:Si quieres yo le añado las instrucciones de la VFPU, que las he tocado bastante.
davidgf escribió:Si añadimos los copros via una clase extra como se ejecutaría? Se discriminan las instrucciones y en función del criterio se mandan a uno u otro CPU?
davidgf escribió:Y una cosita más, en vez de usar operaciones para sacar los registros, opcode, immediate, por qué no usamos unas unions? Dado que es RISC las instrucciones parecen regulares (http://www.student.cs.uwaterloo.ca/~isg ... ps/opcodes) cosa que permite definir un union con 5 o 6 structs en función del tipo y así ahorrarnos mucho código y dejar que GCC haga su trabajo (seguro que lo hace mejor que nostros y todo xD).
davidgf escribió:Eres rápido eh?
davidgf escribió:Ah! Sí! Alguna idea de cómo probar el código?
m0skit0 escribió:que el procesador ejecute programas sencillos
davidgf escribió:Si mejor unions por que al final queda todo muy guarro (ya no sabes que hace cada desplazamiento, te dejas una máscara, ya sabes...).
davidgf escribió:Luego detalles como el tema de la endianess, que no tenemos en cuenta y que hacen que no sea portable a big endian, pero diria que por ahora nos da igual y no nos complicamos...
davidgf escribió:Lo de probar es bastante simple (mi experiencia lo dice) con instrucciones "normales" a la que añadas interrupciones ya las liao! xD
davidgf escribió: Además MIPS tiene unos registros especiales que yo personalmente desconozco, supongo que habrá algunos donde cargar el código de excepción y tal.
davidgf escribió:Y finalmente... tiene MMU? No me he mirado el tema de mapeo de ram de tu código, pero además de mapear RAM de dispositivos hay que ir con cuidado con la paginación si la hay claro!
davidgf escribió:Con tu permiso mañana o cuando tenga un rato le hecho un vistazo y empiezo a toquetear, si no te parece bien rollback y se acabó e?
arisma escribió:Entonces esperamos a los cambios con uniones?
arisma escribió:Al final, lo hacéis vosotros y nosotros de testers