Diseño/normas del software

Moderadores: largeroliker, Kravenbcn, pspCaracas, dark_sasuke, m0skit0, LnD, fidelcastro, cerealkiller, ka69, zacky06

Ariath
Enteradillo
Enteradillo
Mensajes: 29
Registrado: 17 Ene 2011, 19:37
PSN ID: AriathTheWise
Ubicación: Murcia
Contactar:

Re: Diseño/normas del software

Mensaje por Ariath » 21 Ene 2011, 00:03

pspCaracas escribió:% s/añadir/agregar/g


Mmm... vale, entiendo por eso que usemos sinónimos XD .

Salu2

soulless
Desarrollador
Desarrollador
Mensajes: 64
Registrado: 23 Oct 2009, 07:56

Re: Diseño/normas del software

Mensaje por soulless » 21 Ene 2011, 04:32

Ya le eche el ojo al codigo, no me entero de na :canuto:

Bueno, en realidad es la punta del iceberg, no???

Las instrucciones que hay que decodificar son las que son enviadas al procesador, de donde sacamos esas instrucciones??? no me queda claro, tengo alguna idea, pero nada verdaderamente claro, o sea, tengo claro que las instrucciones son peticiones del programa que se este ejecutando en el instante, esas peticiones para decodificarla debemos compararlas con algo (una tabla por ejemplo), la pregunta es de donde sacamos ese algo??? del FW???

PD: no se si me estoy adelantando, si es asi perdon.
"Quiero irme cuando quiero. Es de mal gusto prolongar artificialmente la vida. He hecho mi parte, es hora de irse. Yo lo haré con elegancia." -Albert Einstein.-

yosoy_bostero
Enteradillo
Enteradillo
Mensajes: 43
Registrado: 12 Ene 2011, 16:55

Re: Diseño/normas del software

Mensaje por yosoy_bostero » 21 Ene 2011, 05:00

claro creo yo, que habria que ver de que forma se comunica el firmware con el procesador para poder emular exactamente eso, que llamadas hace y demas, no se de donde podremos sacarlo, de algun codigo fuente de algun CFW tal vez (? ni idea la verdad, habria que tener una lista de posibles llamadas del fw al procesador verdad? porque los programas que estan corriendo (juegos o apps) hacen las llamadas al firmware directamente, o me equivoco?

edit: m0skit0 no dijo que HBL era como un "mini firmware" o algo asi ? se me hace que mucha informacion podremos sacar del hbl o no?

Avatar de Usuario
darkmonster
Habitual
Habitual
Mensajes: 182
Registrado: 08 Abr 2010, 20:28
PSN ID: darkmonster17
Ubicación: Mexico
Contactar:

Re: Diseño/normas del software

Mensaje por darkmonster » 21 Ene 2011, 05:33

bueno esto que se tiene es tan solo las posibles instrucciones del procesador, en cuanto a las posibles llamadas que realize el FW al Procesador, me parece que falta mucho camino que recorrer para llegar a eso, ademas me parece que m0skit0 menciono que en un principio el emulador no contendra un FW, debido a las pruebas y adaptaciones que se deben de realizar, en todo caso llevara un CFW especial para este emulador
PSP 3010 > 5.51 > 5.55 > 6.00 > 6.20 > 6.20 TN-B Downgrade 5.01 -> 5.03 -> CFEnabler 3.70 :)

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Diseño/normas del software

Mensaje por m0skit0 » 21 Ene 2011, 08:40

Ariath escribió:1ª) Si queremos colaborar con el SVN, ¿Hace falta algún paso?, Lo digo porque doy por supuesto que, a menos que se admitan colaboradores, el acceso al repositorio para terceros es de solo lectura ...

En un primer momento quisiera ver vuestro código y comentarlo con cada uno, y después lo subo yo. Una vez vea que tenéis claro el estilo y todo, os doy permisos de escritura en el SVN para que podáis subir vuestros aportes.

Ariath escribió:2ª) Veo que estáis codificando en español directamente. Pese a que prefiero siempre que se puede la lengua de Cervantes a cualquier otra, ¿No es más práctico programar en inglés?

Castellano porque aquí nos comunicamos en castellano. Personalmente lo haría en inglés ya que es una lengua más cómoda de usar para programación porque los verbos son cortos y se pueden hacer estructuras nombre + nombre y estas cosas para darle nombre a funciones y variables más fácilmente y claramente. Pero ya que estamos vamos en castellano ;)

soulless escribió:en realidad es la punta del iceberg, no???

Ni eso :lol:

soulless escribió:Las instrucciones que hay que decodificar son las que son enviadas al procesador, de donde sacamos esas instrucciones???

De la memoria principal (la RAM). El procesador (que es la clase que he subido) se comunica con la RAM a través de los buses de dirección y datos. Por ejemplo, la CPU pone en el bus de dirección la dirección de memoria a la que quiere acceder. Cuando le toque el turno a la memoria, ésta mirará la dirección y procederá a leer el dato y ponerlo en el bus de datos o a escribir el dato presente en el bus de datos en la dirección que corresponda. Obviamente esta clase hay que crearla.

soulless escribió:tengo claro que las instrucciones son peticiones del programa que se este ejecutando en el instante, esas peticiones para decodificarla debemos compararlas con algo (una tabla por ejemplo), la pregunta es de donde sacamos ese algo??? del FW???

Bueno, algo así. Pero metes el FW donde no tiene nada que ver. El FW son instrucciones. La única que decodifica las instrucciones es la CPU, y lo hace por hardware, internamente, y esto no es modificable. Lo que vamos a hacer en nuestra clase cAllegrex es "emular" el comportamiento interno de la CPU por software. Es decir, para decodificar las instrucciones hay que meter todo eso DENTRO de la clase procesador, no fuera. Es algo interno del procesador. Y en realidad decodificar es meramente analizar la instrucción para saber qué operación hay que realizar. Para eso habrá que implementar lo que venga en los manuales del juego de instrucciones de MIPS que tenemos en el hilo de documentos.

yosoy_bostero escribió:habria que ver de que forma se comunica el firmware con el procesador

El firmware no se comunica con el procesador. El procesador ejecuta el firmware. No confundamos términos.

yosoy_bostero escribió:m0skit0 no dijo que HBL era como un "mini firmware" o algo asi ? se me hace que mucha informacion podremos sacar del hbl o no?

Estáis errando el blanco. Esto no tiene nada que ver con el HBL, estamos a un nivel mucho más bajo.

A ver que nos aclaremos, y repito: lo que se está modelando ahora es el hardware, no el software. El firmware es software. El HBL es software. El CFW es software. Ahora estamos montando la PSP en sí, sin firmware ni nada. Para poder hacer funcionar el FW o lo que sea, primero hay que tener donde :lol:
Imagen

yosoy_bostero
Enteradillo
Enteradillo
Mensajes: 43
Registrado: 12 Ene 2011, 16:55

Re: Diseño/normas del software

Mensaje por yosoy_bostero » 21 Ene 2011, 17:32

m0skit0 escribió:
yosoy_bostero escribió:habria que ver de que forma se comunica el firmware con el procesador

El firmware no se comunica con el procesador. El procesador ejecuta el firmware. No confundamos términos.

yosoy_bostero escribió:m0skit0 no dijo que HBL era como un "mini firmware" o algo asi ? se me hace que mucha informacion podremos sacar del hbl o no?

Estáis errando el blanco. Esto no tiene nada que ver con el HBL, estamos a un nivel mucho más bajo.

A ver que nos aclaremos, y repito: lo que se está modelando ahora es el hardware, no el software. El firmware es software. El HBL es software. El CFW es software. Ahora estamos montando la PSP en sí, sin firmware ni nada. Para poder hacer funcionar el FW o lo que sea, primero hay que tener donde :lol:


Pero digo, lo que queremos emular no son las llamadas que hace el firmware al procesador, es decir las instrucciones del firmware que son ejecutadas por el procesador? no es asi la idea? emular el procesador para que el firmware crea que esta corriendo sobre la psp, satisfaciendo todas sus necesidades (lease instrucciones).

Por otro lado, hbl utilizaba llamadas al firmware verdad? todo en modo usuario? si es asi me doy cuenta del error en lo que escribi

edit: consulta rapida, cuando se habla del modo usuario y modo kernel, se habla del procesador (como esta en tu tutorial), o del firmware? o ambos tienen sus modos de ejecucion?

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Diseño/normas del software

Mensaje por m0skit0 » 21 Ene 2011, 17:37

yosoy_bostero escribió:lo que queremos emular no son las llamadas que hace el firmware al procesador, es decir las instrucciones del firmware que son ejecutadas por el procesador? no es asi la idea?

Sí, es eso, pero vamos, como te digo el procesador le da igual las instrucciones de quién está ejecutando (firmware, juego, XMB...) debe ejecutarlas correctamente. Ten en cuenta que lo que vas a necesitar correr es código máquina (binario, ceros y unos). El procesador no sabe ni le importa a quién pertenecen estas instrucciones. Tú estás hablando de un nivel que el procesador ignora.

Bueno, creo que tal y como he planteado el tema ha quedado demasiado enrevesado... Las clases son demasiado gordas, la estructura es demasiado compleja que ya me pierdo hasta yo :lol: Voy a congelar el código que he hecho por ahora y vuelta a las ideas.

Esto es lo que hay que modelar:

Spoiler:
Imagen


Por ahora nos basta con modelar la CPU Core y la Main Memory.

El funcionamiento es el siguiente:

  • Los datos y las instrucciones residen en la memoria. Dicha memoria se maneja a través de 4 datos: CS (Chip Select) que le indica a la memoria que es con ella con quien estamos hablando, R/W (read/write) que indica si la operación es de lectura o de escritura, el bus de datos (32 bits) que contiene el dato a escribir o bien donde se debe depositar el dato leído, y el bus de dirección que indica la dirección donde hay que efectuar la operación.
  • La CPU recoge las instrucciones de la memoria y las va ejecutando en un ciclo infinito de recoger instrucción, decodificarla, ejecutarla y almacenar los resultados.

Estoy pensando en interconectar de alguna forma la CPU con la memoria, ya que esto simplificaría bastante el diseño. Además, eliminar los 4 pasos del ciclo de instrucción condensándolos en uno solo.

Espero vuestras ideas, sugerencias o preguntas.
Imagen

soulless
Desarrollador
Desarrollador
Mensajes: 64
Registrado: 23 Oct 2009, 07:56

Re: Diseño/normas del software

Mensaje por soulless » 21 Ene 2011, 20:35

El diseño como lo habías planteado (una clase bus que comunique a todas las demás clases) es los mas parecido al diagrama de bloques de la PSP, de todas formas necesitaremos un lugar donde converjan todos los componentes y por lo tanto, quien les maneje.

Sera el CPU Core el unico que se comunicara con la ram???
"Quiero irme cuando quiero. Es de mal gusto prolongar artificialmente la vida. He hecho mi parte, es hora de irse. Yo lo haré con elegancia." -Albert Einstein.-

yosoy_bostero
Enteradillo
Enteradillo
Mensajes: 43
Registrado: 12 Ene 2011, 16:55

Re: Diseño/normas del software

Mensaje por yosoy_bostero » 21 Ene 2011, 21:11

no veo para que la clase bus, son simplemente registros de 32bits.. ya hay atributos (tanto busdir como busdatos) en la clase memoria y en el procesador, en todo caso sera la clase "placa madre" " main " o como sea que la llamemos, la que se ocupara de "linkear (vincular)" dichos atributos, leer de uno escribir en el otro y viceversa.

al menos asi lo entiendo yo

Avatar de Usuario
~Rdavid~
Experto
Experto
Mensajes: 965
Registrado: 12 Nov 2009, 17:29
Ubicación: Costa Rica

Re: Diseño/normas del software

Mensaje por ~Rdavid~ » 22 Ene 2011, 00:47

Bueno según como yo le entiendo el bus es el que interconecta todos los dispositivos, por lo que la mejor forma de emular la psp es hacer nuestro propio bus de datos.

m0skit0 ¿Por qué es necesario eliminar los 4 pasos con los que funciona el CPU? ¿no sería mejor hacerlo justo como lo hace el procesador para no tener problemas después?
Imagen

Responder