Castellano
From jmips
Se trata de jMIPS, el procesador MIPS en Java. Vd ya debería haber descargado el archivo (hay siempre una copia actualisada en las paginas web del proyecto). En el archivo puede encontrarse esta documentación en el subdirectorio 'doc/html'. Si estudia el software seria mas fácil entender el arquitectura del procesador MIPS y los conceptos generales de sistemas y arquitecturas de ordenadores. Hay varias maquetas procesadores en el archivo, identificados aquí como 1, 2, 3, etc. Los números aumentan con la complejidad de la maqueta y su arquitectura.
Las paginas siguientes le ayudaran a entender el uso y -si hace falte- la compilación de la maqueta procesador básica, y luego las demás maquetas. Las maquetas no se diferencian por la forma de su construcción ni su manera de uso. Son unicamente sus arquitecturas interiores que diferan entre ellos. Pero por eso una maqueta aún puede demostrarse mas rápido que otra en el mismisimo contexto. Seria mejor trabajar con cada maqueta a su vez, quizá con el objetivo de mejorar el arquitectura pare hacerlo más rápido. El tiempo de ejecución en total y por instrucción es por defecto la salida impresa. Si quiere las estadísticas tal como el tiempo que necesita cada clase de instrucción para ejecutarse en circunstancias particulares, tendrá que añadir el código Vd mismo. Después de todo, es código libre de restricciones para usos personales (ver la licencia incluido en el archivo que ha descargado)! El código esta claramente escrito y explicado en las paginas aquí.
Como ejecutar el modelo de procesador básico MIPS.Hay una libreria Java (un 'jar') en el archivo
'zip' o 'tar' descargado (conseguir uno de ellos
desde el enlace de descarga en la pagina del
proyecto). Si no lo hay dentro, pasa directamente
a la siguiente sección para aprender como
construirselo.Si lo hay ... Extraer la libreria 'jar' del archivo descargado con: % unzip jMIPS-1.7.zip jMIPS-1.7/lib/CPU.jar o % tar xzvf jMIPS-1.7.tgz jMIPS-1.7/lib/CPU.jar Ademâs. extraer algunos de los contenidos del directorio 'misc' con: % unzip jMIPS-1.7.zip jMIPS-1.7/misc/hello_mips32 o % tar xzvf jMIPS-1.7.tgz jMIPS-1.7/lib/hello_mips32 Pues la maqueta CPU1 puede ser ejecutado por un Java Virtual Machine (JVM) en cualquiera plataforma. Se puede hacerlo en Unix o Linux con: % java -cp jMIPS-1.7/lib/CPU.jar CPU.Cpu1 -q jMIPS-1.7/misc/hello_mips32 Por ejemplo: % java -cp jMIPS-1.7/lib/CPU.jar CPU.Cpu1 -q jMIPS-1.7/misc/hello_mips32 Hello world % Como compilar el modelo básico del procesador MIPSSi quiera o si tiene que compilar el código fuente Java para conseguir un código ejecutable, haría lo siguiente, según las herramientas a su alcanze. Dado que existen herramientas diferentes en los sistemas operativos diferentes, las subsecciones siguientes son específicas a su sistema operativo particular. Compilar en Linux o UnixSi esté trabajando en un Mac, y utiliza el sistema de ficheros formato HFS o HFS+, entre en las características del sistema y habilitar su sensibilidad a las variaciones entre majusulas y minusculas en los nombres de los ficheros. Lo hará falta porque si no, algunos ficheros en el archivo chocarián por sus nombres, que no sea exactamente deseable. Desarchivar los contenidos del archivo zip o tar comprimido con % unzip jMIPS-1.7.zip o % tar xzvf jMIPS-1.7.tgz respectivamente. Después buscar el directorio src/ en la jerarquía nuevamente desempaquetada y cambiar su directorio actual a él (utilice el comando 'cd'). Prefiero generar el bytecode genérico Java para la máquina virtual Java (JVM), con % javac CPU/Cpu1.java en el directorio src/, y entonces el archivo resultante Cpu1.class puede ser ejecutado por la JVM en cualquier plataforma. Se puede hacerlo en Linux con % java CPU/Cpu1 -q ../misc/hello_mips32 Por ejemplo: % java CPU/Cpu1 -q ../misc/hello_mips32 Hello world % La construcción del archivo 'jar' es apenas una cuestión de -primero- compilar todos los ficheros Java: % javac CPU/*.java % y -segundo- crear el archivo jar con % jar cf ../lib/CPU.jar CPU/*.class % En realidad, un 'jar' es nada más que un archivo 'zip' sin compresión, con un fichero 'manifest' también incluido en un subdirectorio adicional particular. Se puede crearlo todo usando unicamente el archivador zip. Buscar los detalles por Google, o examinar un archivo 'jar' ya existente usando el archivador zip. Notará los ficheros esperados (archivados sin compresioón), más el subdirectorio adicional con su unico fichero 'manifest'. Compilar bajo WindowsPara importar el código fuente en el IDE Java de NetBeans, crear un nuevo proyecto NetBeans (llamado `jMIPS ', probablemente), asegurándose que las casillas para `Main Class', etc, son todos sin marcar. Una vez que el IDE ha construido todos los directorios y archivos control que necesita, copiar el contenido del directorio src/CPU/ del archivo zip en un nuevo subdirectorio src/CPU/ del proyecto jMIPS que acaba de crear. Utilice un comando para copiar directamente desde el archivo zip, si posible, para evitar que los archivos tocarian el disco. Windows puede hacer chocar algunos archivos cuyos nombres diferan unicamente por un mayuscula en vez de un minuscula, o vice versa. Eclipse lo tiene, y si Netbeans tambiên tiene la opción para importar desde zip, y sería perfecto utilizarlo. El IDE detectará que se llena la zona con nuevo código fuente y ampliará la vista en árbol para incluir el paquete CPU y sus ficheros de código Java. Si prefiere, puede cambiar sistemáticamente los nombres de los archivos Java Cpu1.java, Cpu2.java, etc, a, por ejemplo, WinCpu1.java, WinCpu2.java, etc. En cada caso, Vd tendrá que cambiar tambiên el nombre de la clase declarada al interior del fichero para mantenerlo igual al nombre del fichero. Notas sobre la ejecución del modelo CPU1El significado de las opciones de la línea de comando es el siguiente:
% java CPU.Cpu1 hello_mips32 0: 0.000000007s: 0x80030080: addiu $29, $29, -32 1: 0.000000012s: 0x80030084: sw $31, 28($29) 2: 0.000000019s: 0x80030088: sw $30, 24($29) 3: 0.000000024s: 0x8003008c: addu $30, $29, $0 4: 0.000000030s: 0x80030090: sw $28, 16($29) ... 218: 0.000001567s: 0x8003000c: lui $3, -20480 219: 0.000001573s: 0x80030010: ori $3, $3, 16 220: 0.000001580s: 0x80030014: sb $3, 0($3) % Ese ha ejecutado 220 instrucciones en 0.000001580 segundos simulados (la velocidad de reloj es 1GHz simulado). Son alrededor 5 ciclos de reloj por cada instrucción.
% java CPU.Cpu1 -q hello_mips32 Hello world %
% java CPU.Cpu1 -d hello_mips32 text start at virtual addr 0x80030000 file offset 0x10000 text end at virtual addr 0x800300e0 file offset 0x100e0 text entry at virtual addr 0x80030080 file offset 0x10080 read 224B at offset 65536 from file 'hello_mips32' stack start at virtual addr 0xb0000000 stack end at virtual addr 0xb0100000 0: 0.000000007s: 0x80030080: addiu $29, $29, -32 1: 0.000000012s: 0x80030084: sw $31, 28($29) 2: 0.000000019s: 0x80030088: sw $30, 24($29) ... %
Por favor, editar el código fuente con el fin de agregar cualquier cosa adicional que Vd desea. Añadir Vd mismo a la lista de créditos en la parte superior del fichero, y enviar el código cambiado al proyecto - o publicarlo Vd mismo en otro lugar, como desea .
|