WinMIPS64_ManualUsuario

October 11, 2017 | Author: Sergio Zuniga Quispe | Category: Ascii, Bit, Central Processing Unit, Computer Memory, Computer File
Share Embed Donate


Short Description

Download WinMIPS64_ManualUsuario...

Description

Departamento de Sistemas Telemáticos y Computación (GSyC)

WinMIPS64 Manual de Usuario Katia Leal Algara Septiembre 2011 [email protected] http://gsyc.escet.urjc.es/~katia/ 0

Introducción

Introducción

 Herramienta que nos permite entender:  La codificación de datos e instrucciones  El repertorio de instrucciones MIPS  El pipeline  La jerarquía de memoria  Entrada/Salida y Llamadas al Sistema GSyC 2011 - WinMIPS64

1

Interfaz de usuario

GSyC 2011 - WinMIPS64

2

Características de WinMIPS64

Pipeline

 WinMIPS64 implementa un pipeline paralelo formado por cinco etapas:     

Instruction Fetch (IF) Instruction Decode (ID) Execution / Address Calculation (EX) Data memory access (MEM) Write Back (WB)

 Cada etapa se representa con un color  Se puede ver el estado del pipeline durante la ejecución de un programa por medio de la ventana correspondiente GSyC 2011 - WinMIPS64

3

Características de WinMIPS64

Pipeline

GSyC 2011 - WinMIPS64

4

Características de WinMIPS64

Repertorio de instrucciones

 Subconjunto representativo del MIPS64 ISA  Por compatibilidad con otros simuladores incluye instrucciones que no pertenecen al MIPS64: HALT  Las instrucciones siguen los formatos descritos por el fabricante, es decir:  I-Type, J-Type, R-Type

GSyC 2011 - WinMIPS64

5

Características de WinMIPS64

Repertorio de instrucciones lb reg,imm(reg) lbu reg,imm(reg) sb reg,imm(reg) lh reg,imm(reg) lhu reg,imm(reg) sh reg,imm(reg) lw reg,imm(reg) lwu reg,imm(reg) sw reg,imm(reg) ld reg,imm(reg) sd reg,imm(reg) l.d freg,imm(reg) s.d freg,imm(reg) halt daddi reg,reg,imm daddui reg,reg,imm andi reg,reg,imm ori reg,reg,imm xori reg,reg,imm lui reg,imm slti reg,reg,imm sltiu reg,reg,imm beq reg,reg,imm bne reg,reg,imm equal beqz reg,imm bnez reg,imm j imm jr reg

-

load byte load byte unsigned store byte load 16-bit half-word load 16-bit half word unsigned store 16-bit half-word load 32-bit word load 32-bit word unsigned store 32-bit word load 64-bit double-word store 64-bit double-word load 64-bit floating-point store 64-bit floating-point stops the program add immediate add immediate unsigned logical and immediate logical or immediate exclusive or immediate load upper half of register immediate set if less than immediate set if less than immediate unsigned branch if pair of registers are equal branch if pair of registers are not

-

branch if register is equal to zero branch if register is not equal to zero jump to address jump to address in register

GSyC 2011 - WinMIPS64

6

Características de WinMIPS64

Repertorio de instrucciones jal imm subroutine) jalr reg dsll reg,reg,imm dsrl reg,reg,imm dsra reg,reg,imm dsllv reg,reg,reg dsrlv reg,reg,reg dsrav reg,reg,reg amount movz reg,reg,reg movn reg,reg,reg nop and reg,reg,reg or reg,reg,reg xor reg,reg,reg slt reg,reg,reg sltu reg,reg,reg dadd reg,reg,reg daddu reg,reg,reg dsub reg,reg,reg dsubu reg,reg,reg dmul reg,reg,reg dmulu reg,reg,reg

GSyC 2011 - WinMIPS64

- jump and link to address (call -

jump and link to address in register shift left logical shift right logical shift right arithmetic shift left logical by variable amount shift right logical by variable amount shift right arithmetic by variable

-

move if register equals zero move if register not equal to zero no operation logical and logical or logical xor set if less than set if less than unsigned add integers add integers unsigned subtract integers subtract integers unsigned signed integer multiplication unsigned integer multiplication 7

Características de WinMIPS64

Repertorio de instrucciones ddiv reg,reg,reg - signed integer division ddivu reg,reg,reg - unsigned integer division add.d freg,freg,freg - add floating-point sub.d freg,freg,freg - subtract floating-point mul.d freg,freg,freg - multiply floating-point div.d freg,freg,freg - divide floating-point mov.d freg,freg - move floating-point cvt.d.l freg,freg - convert 64-bit integer to a double FP format cvt.l.d freg,freg - convert double FP to a 64-bit integer format c.lt.d freg,freg - set FP flag if less than c.le.d freg,freg - set FP flag if less than or equal to c.eq.d freg,freg - set FP flag if equal to bc1f imm - branch to address if FP flag is FALSE bc1t imm - branch to address if FP flag is TRUE mtc1 reg,freg - move data from integer register to FP register mfc1 reg,freg - move data from FP register to integer register

GSyC 2011 - WinMIPS64

8

Características de WinMIPS64

Adelantamiento

 Técnica que permite la reducción de parones en el cauce introducidas por la dependencia de datos entre instrucciones  Se pueden ejecutar los programas con o sin adelantamiento, entediendo así su impacto en el flujo del programa

GSyC 2011 - WinMIPS64

9

Formato del fichero fuente

Formato de un fichero fuente

 Secciones  .data  .code

 Comentarios  “;”  Todo lo que hay después de este carácter se ignora

 Etiquetas  Se utilizan para referirse a posiciones de memoria o a instrucciones  Son case insensitive  Sólo se puede utilizar una etiqueta por línea GSyC 2011 - WinMIPS64

10

Formato del fichero fuente

Ejemplo ;This is a comment .data label: .word 15 ;This is an inline comment .code daddi r1,r0,0 halt

GSyC 2011 - WinMIPS64

11

Formato del fichero fuente

Sección .data

 Comandos que especifican cómo se debe rellenar la memoria antes de que el programa comience su ejecución  El formato de un comando .data es: [label:] .datatype val1 [,val2 [, …]]

 Tipos de datos representados: .space .asciiz .ascii .align .word .byte .word32 .word16 .double

,.. ,.. ,.. ,.. ,..

GSyC 2011 - WinMIPS64

-

leave n empty bytes enters zero terminated ascii string enter ascii string align to n-byte boundary enters word(s) of data (64-bits) enter bytes enters 32 bit number(s) enters 16 bit number(s) enters floating-point number(s) 12

Formato del fichero fuente

Sección .data

 Ejemplo:

GSyC 2011 - WinMIPS64

13

Formato del fichero fuente

Sección .data  Otras directivas .space Nos permite reservar memoria. Recibe como parámetro un entero que indica el número de bytes a reservar .ascii Acepta strings que contienen caracteres ASCII+secuencias de escape y los almacena en memoria .asciiz Como .ascii, solo que termina los strings con el byte cero

GSyC 2011 - WinMIPS64

14

Formato del fichero fuente

Sección .code

 Instrucciones simbólicas que serán codificadas y ejecutadas cuando el programa comience  Formato de un comando .code: [label:] instruction [p1 [, p2 [, p3]]]

Donde instruction es el nombre de la instrucción y p1, p2 y p3 son los tres operandos  El tipo y número de los operandos viene determinado por el tipo de instrucción GSyC 2011 - WinMIPS64

15

Formato del fichero fuente

Sección .code

 Las instrucciones reciben tres tipos de operandos Registros: se indica un registro por medio de una “r”, “R” ó “$” seguido de un número (entre 0 y 31). Por ejemplo, “r4”, “R4” ó “$4” Datos inmediatos: pueden ser un número o una etiqueta. El número se puede especificar en base 10 o 16. Para insertar un número en base 16 hay que añadir el prefijo “0x” Direcciones de memoria: dato inmediato (número o etiqueta) seguido del nombre de un registro entre paréntesis. El valor del registro se utilizará como offset GSyC 2011 - WinMIPS64

16

Ventanas

Ventanas

La ejecución de los programas se presenta mediante 7 ventanas Cycles Registers Statistics Pipeline Memory Code Input/Output GSyC 2011 - WinMIPS64

17

Ventanas

Cycles  Muestra la evolución del flujo del programa a lo largo del tiempo

GSyC 2011 - WinMIPS64

18

Ventanas

Registers  Muestra el valor de los 32 registros de propósito general, de los 32 registros de coma flotante. Con un doble click podemos modificar su valor

GSyC 2011 - WinMIPS64

19

Ventanas

Statistics  Muestra datos estadísticos acerca del último programa ejecutado: ciclos consumidos de CPU, instrucciones ejecutadas en esos ciclos, el número de Ciclos Por Instrucción (CPI), parones (RAW …)

GSyC 2011 - WinMIPS64

20

Ventanas

Pipeline  Muestra un gráfico con las 5 etapas de la CPU y la etapa del cauce en la que se encuentra cada instrucción

GSyC 2011 - WinMIPS64

21

Ventanas

Memory  Muestra las direcciones y el contenido de las celdas de memoria junto con etiquetas y comentarios del programa fuente

GSyC 2011 - WinMIPS64

22

Ventanas

Code  Muestra el código fuente correspondiente al programa en ejecución

GSyC 2011 - WinMIPS64

23

Ventanas

Input/Output  Muestra la salida generada por las instrucciones SYSCALLs 4 y 5. Para las entradas, SYSCALL 3, se abre una ventana de diálogo que lee datos de la entrada estándar

GSyC 2011 - WinMIPS64

24

Menús

Menús

 File: carga de ficheros y reset del simulador  Execute: arrancar y para el simulador, ejecutar los programas paso a paso o en un único paso  Configure: permite abrir ventanas de configuración  Window: organización de las ventanas  Help: manual de ususario

GSyC 2011 - WinMIPS64

25

Ejecutando WinMIPS64

¿Cómo ejecutar WinMIPS64?  Podéis utilizar el editor que prefiráis para escribir los ficheros fuente en ensamblador  Para arrancar el simulador tenéis que teclear en un terminal el siguiente comando: katia@epsilon02:~$ wine winmips64.exe &  Así mismo, para ejecutar el comprobador sintáctico asm.exe: katia@epsilon02:~$ wine asm.exe file.s GSyC 2011 - WinMIPS64

26

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF