Joer..., me estoy empezando a cansar del hilo
. Vamos a ver, lo primero que tenemos que entender, es que nadie de nosotros tiene todos los datos sobre el funcionamiento de PS2 (y si no, pasarme los esquemas, descripcion de señales con sus correspondientes patillas (o al reves
) y la BIOS capturada!).
En fin, la descripcion que yo hice, es bastante generica, una forma de entender las cosas, sin tener que explicar al detalle el funcionamiento interno de la consola (si supiera todo eso, o sacaba yo el Messiash o directamente diria: no lo pongais o adelante con ello.
Lo primero que tenemos que entender, es que cualquier procesador, esta preparado para acceder a dispositivos mas lentos... y eso significa que en un momento dado, debe frenarse (de ahi los cuellos de botella).
Lo segundo es que delante del procesador/procesadores de la PS2, hay un chip que controla los accesos. Ten en cuenta que la BIOS parece que tiene un bus de datos de 8 bits y los accesos del r3000 son de 32 bits y los de r5900 a 128 bits, asi que como ves, en realidad no le decimos al procesador que se pare, si no que se le dice al controlador del bus y este al procesador.
Tambien me parece logico que de la BIOS se encargue el r3000, al fin y al cabo, controla todos los accesos I/O y la BIOS es la capa que controla I/O.
Dicho asi, parece logico que primero arranque el r3000 y prepare el camino para el r5900, antes de llamarle, asi que el control hay que hacerlo sobre el r3000 (eso me parece a mi).
Como los accesos a la BIOS (datos), son de 8 bits, parece logico que se carguen en RAM para accesos a 32 bits.
Como el Origa u otro chip, tienen que procesar informacion antes de enviarla, parece logico que actue sobre una señal o dos, para hacer que la CPU espere a que termine su 'trabajo' ( o si no, trabajar a 300Mhz, para que le de tiempo).
Si estamos 'bloqueando' el r3000 y el combinado r3000/r5900 usa un doble bus (que parece muy logico para evitar esperas innecesarias, lo que este haciendo el r5900, no nos incumbe y nos trae sin cuidado. A nosotros lo que nos interesa es que el procesador que este accediendo a la BIOS, espere a que pongamos el dato correcto.
En efecto, la PS2 tiene procesadores, microcontroladores y chips varios, pero solo uno lee la BIOS y es sobre ese, sobre el que hay que actuar.
Una cosa mas, todos los procesadores tienen señales de control y algunas son iguales y otras se asemejan. Solo hay que encontrar cual es mas conveniente y si no viene del procesador, viene de un controlador asociado a el para realizar las operaciones y en este si tendremos esa señal de control. Si no, no hay manera de acceder a dispositivos lentos (y para muestra un PC cualquiera).
P.D: La clave esta en el IOP: el se encarga de las funciones basicas y proporcionar el entorno al EE. El hecho de que cargue la PS2 un disco de PSX, asi lo demuestra tambien: automaticamente el IOP, carga un programa en el EE para emular el video y bloquea los accesos y despues sigue con su tema. El EE es una marioneta en manos del IOP, que esta para servirle, pero que tambien, curiosamente, le controla.