Dudas sobre el codigo fuente

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

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

Re: Dudas sobre el codigo fuente

Mensaje por m0skit0 »

yosoy_bostero escribió:por que el tamaño del pipeline es 2 y no 4 ? (de curioso nomas)

Porque así es el procesador MIPS :lol: ¿Por qué tiene 32 registros y no 4? ;)

yosoy_bostero escribió:#define VALOR_REG_DEFECTO 0xDEADBEEF

Así es el valor que se usa en PSP para indicar ningún valor en un registro. Dado que un registro siempre tiene un valor, se utiliza éste para indicar que no hay ningún valor (o es un valor no válido).

yosoy_bostero escribió:#define VALOR_REGPC_INICIAL 0xBFC00000

Efectivamente, es la dirección por donde empieza a ejecutar la PSP.

yosoy_bostero escribió:el resto esta muy claro (imaginate para que lo entienda yo,,,) me gustaria que nos fueras dando cosas para hacer o algo puntual en lo que ir centrandonos, imagino que la parte de ejecutar una instruccion sera la mas pesada, asi como decodificarla (no tanto)

Hm prefiero discutir el diseño. He descartado lo que está hecho por ahora, aunque no es para nada pérdida de tiempo ni para mí ni para los que han estado mirándolo ya que se aprenden/refrescan conceptos, y se ve qué está mal planteado. Vamos a dedicarle más tiempo a discutir la estructura y el diseño, que luego me pego contra paredes :lol:
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: Dudas sobre el codigo fuente

Mensaje por arisma »

Spoiler:

Código: Seleccionar todo

/*
 * cMemoria.h
 *
 *  Created on: Jan 21, 2011
 *      Author: m0skit0
 *
 * cMemoria
 * Modelado de la memoria principal de PSP
 *
 * PRIVADOS:
 * ATRIBUTOS.
 * cs                           Chip select
 * tipoAcceso                     Lectura/Escritura
 * mapa[MEM_MAX_BLOQUES]            Mapa de la memoria
 * ind_mapa                        Indice mapa
 * busDatos                        Bus de datos
 * busDireccion                     Bus de direccion
 *
 * METODOS.
 * mapearBusDireccion               Manejo de direccionamiento
 * obtenerDato                     Manejo de direccionamiento
 * ponerDato                     Manejo de direccionamiento
 *
 * PUBLICOS:
 * METODOS.
 * validar                        Valida la memoria para que realice la operación
 * ponerCS                        Control de memoria(Chip select)
 * obtenerBusDato                  Control bus
 * obtenerBusDireccion               Control bus
 * ponerBusDato                     Control bus
 * ponerBusDireccion               Control bus
 */

#ifndef CMEMORIA_H_
#define CMEMORIA_H_

#include "general_emu.h"
#include "cMemoriaDefs.h"

class cMemoria
{
private:
   bool cs;

   tMemAcceso tipoAcceso;
   
   tMapaMemoria mapa[MEM_MAX_BLOQUES];   
   int ind_mapa;
   
   tBus busDato;
   tBus busDireccion;

   tError mapearBusDireccion(void);
   tError obtenerDato(void);
   tError ponerDato(void);
   
public:

   cMemoria();
   ~cMemoria();
   

   tError validar(void);
   

   tError ponerCS(bool valor);
   tError asignarTipoAcceso(tMemAcceso tipo);
   

   tBus obtenerBusDato(void);
   tBus obtenerBusDireccion(void);
   tError ponerBusDato(tBus datos);
   tError ponerBusDireccion(tBus direccion);
};

#endif /* CMEMORIA_H_ */


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

Re: Dudas sobre el codigo fuente

Mensaje por m0skit0 »

:?:
Imagen

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

Re: Dudas sobre el codigo fuente

Mensaje por soulless »

Supongo que arisma se refiere a que cMemoria.h del svn no tiene la descripcion.
"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.-

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: Dudas sobre el codigo fuente

Mensaje por arisma »

Sí, creo que habíamos quedado en el codigo fuente iba a llevar la descripción arriba.
Última edición por arisma el 22 Ene 2011, 20:42, editado 1 vez en total.

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

Re: Dudas sobre el codigo fuente

Mensaje por m0skit0 »

Ups, perdón no me había dado cuenta. De todas formas ese código no vale. Aquí van dudas de lo que no se entienda. Las ideas van en el hilo de diseño ;)
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: Dudas sobre el codigo fuente

Mensaje por arisma »

Código: Seleccionar todo

cAllegrex::cAllegrex()
{
   controlador_memoria = NULL;
   for (int i = 0; i < 64; i++)
   {
      InstruccionesOpcode[0] = &cAllegrex::decodificarInstTipoI;


Lo siento no lo entiendo, no sé si lo que se quiere es meter la instrucción o 2 instrucciones(los bits) para tratarlo o es que debería ser InstruccionesOpcode[i]

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

Re: Dudas sobre el codigo fuente

Mensaje por m0skit0 »

Sí, yo tampoco entiendo eso.

De todas formas, para comentar los cambios, se puede hacer directamente en Google Code: http://code.google.com/p/psp-emu/source/list

Veo que tus permisos de escritura funcionan perfectamente davidgf :oki:

Ah, y indicad siempre en el comentario el nick del autor de la subida, gracias :) También el código debe compilar (salvo errores obvios, como la falta de main en la rama actual).
Imagen

arisma
Habitual
Habitual
Mensajes: 497
Registrado: 18 Sep 2009, 08:41

Re: Dudas sobre el codigo fuente

Mensaje por arisma »

Al menos antes compilaba si se comentaban las lineas

Código: Seleccionar todo

InstruccionesOpcode[INST_COD_TIPO_J_1] = &cAllegrex::decodificarInstTipoJ;
InstruccionesOpcode[INST_COD_TIPO_J_2] = &cAllegrex::decodificarInstTipoJ;
InstruccionesOpcode[INST_COD_TIPO_CP_1] = &cAllegrex::decodificarInstTipoCP;
InstruccionesOpcode[INST_COD_TIPO_CP_2] = &cAllegrex::decodificarInstTipoCP;
InstruccionesOpcode[INST_COD_TIPO_CP_3] = &cAllegrex::decodificarInstTipoCP;
InstruccionesOpcode[INST_COD_TIPO_CP_4] = &cAllegrex::decodificarInstTipoCP;


Aparte del main claro.

P.D: ¿Cómo inicializamos el controlador de memoria?

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

Re: Dudas sobre el codigo fuente

Mensaje por yosoy_bostero »

bueno empiezo con algunas preguntas sobre el codigo, porque me estoy empezando a perder y no me gusta.

antes que nada le pido a los que estan codificando que utilicen por favor mas comentarios y/o explicaciones.

Primero que nada si me pueden explicar por arriba el funcionamiento que estan queriendo implementar con la memoria ram y todas esas clases, controladores y demas. (es decir, cual es la idea basica)

A que se refieren con Mapear? se lo que es una memoria, pero que quieren implementar al "mapear" ?

Una consulta mas de C, que funcion cumplen los 2 puntos (:)
struct {
unsigned : 6;
unsigned rS : 5;
unsigned rT : 5;
unsigned rD : 5;
unsigned sa : 5;
unsigned func: 6;

En codigo como este?


Me podran explicar esta linea? " static tError (cAllegrex::* InstruccionesOpcode[64])();"

Y aqui:

InstruccionesOpcode = {
&cAllegrex::decodificarInstTipoR, // 0x00
&cAllegrex::decodificarInstNoValida,
&cAllegrex::decodificarInstTipoJ,
&cAllegrex::decodificarInstTipoJAL,
&cAllegrex::decodificarInstTipoBEQ,
&cAllegrex::decodificarInstTipoBNE,
&cAllegrex::decodificarInstTipoBLEZ,
&cAllegrex::decodificarInstTipoBGTZ,.......... y sigue.......

Que vendria a ser InstruccionesOpcode?, (se lo que es un codigo de operacion, me refiero al funcionamiento en C). ??


estas son algunas de mis dudas sobre el codigo, solo pido que al codificar agreguen alguna que otra explcacion (nos ayudaria a muchos) ya que varios nos estamos perdiendo porque de un dia a otro aparece una tonelada de codigo nuevo, rediseñando el modelo, y a veces para uno (inexperto) interpretar a partir del codigo puro es medio complicado.

muchas gracias.

Responder