PDF de programación - Entrada/Salida en procesadores MIPS

Imágen de pdf Entrada/Salida en procesadores MIPS

Entrada/Salida en procesadores MIPSgráfica de visualizaciones

Publicado el 5 de Julio del 2017
1.019 visualizaciones desde el 5 de Julio del 2017
1,1 MB
7 paginas
Creado hace 14a (01/06/2009)
Estructura de Computadores 2 [08/09]

Entrada/Salida en procesadores MIPS

GAC: Grupo de Arquitectura de Computadores

Dpt. Electrónica e Sistemas. Universidade da Coruña.

Bibliografía

Computer Organization and Design: The hardware/software interface (3rd ed.), David A.
Patterson and John L. Hennessy. Morgan Kaufmann Publishers, Inc.
(También disponible en castellano: Estructura y diseño de computadores: interficie cir-
cuitería/programación)

1.

Introducción

Filosofía RISC (Reduced Instruction Set Computer)

• Instrucciones de pocas etapas (buscando además longitud fija de instrucciones)
• instrucciones de carga/almacenamiento (load/store)
• reducido número de métodos de direccionamiento
• juego de instrucciones pequeño

Ejemplos RISC: MIPS, Sun SPARC, HP PA-RISC, IBM PowerPC, Alpha, ARM. . .

Objetivos de diseño: velocidad, coste (diseño, fabricación y testeo), tamaño, consumo
eléctrico, fiabilidad, versatilidad (sistemas empotrados)

Principios básicos:

• simplicidad favorece regularidad
• más pequeño ⇒ más rápido
• hacer el caso más frecuente lo más rápido posible

2. MIPS: Arquitectura básica y ensamblador

E/S asignada en memoria (MMIO)

Dos modos de funcionamiento: kernel y usuario

La mitad superior del espacio de direcciones sólo accesible en modo kernel : direcciones a
partir de 0x8000 0000.
Esta región incluye:

• Código para el manejo de excepciones
• Datos solo accesibles al SO
• Direcciones de E/S asignadas en memoria: a partir de 0xf f f f 0000

Organización de memoria

Registros del MIPS y convención sobre su uso

Organización de un stack frame

Operandos de instrucciones MIPS

Formato de instrucciones del MIPS

MIPS assembly languageCategoryInstructionExampleMeaningComments add add $s1, $s2, $s3 $s1 = $s2 + $s3Three operands; data in registers Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3Three operands; data in registers add immediate addi $s1, $s2, 100 $s1 = $s2 + 100Used to add constants load word lw $s1, 100($s2)Word from memory to register store word sw $s1, 100($s2)Word from register to memory Data load byte lb $s1, 100($s2)Byte from memory to register transfer store byte sb $s1, 100($s2)Byte from register to memory load upper immediate lui $s1, 100Loads constant in upper 16 bits branch on equal beq $s1, $s2, 25Equal test; PC-relative branch Conditional branch on not equal bne $s1, $s2, 25Not equal test; PC-relative branch set on less than slt $s1, $s2, $s3Compare less than; for beq, bne slti $s1, $s2, 100Compare less than constant jump j 2500 go to 10000Jump to target address Uncondi- jump register jr $raFor switch, procedure returntional jump jump and link jal 2500For procedure call$s1 = Memory[$s2 + 100] Memory[$s2 + 100] = $s1$s1 = Memory[$s2 + 100] Memory[$s2 + 100] = $s1 $s1 = 100 * 216 if ($s1 == $s2) go to PC + 4 + 100 if ($s1 != $s2) go to PC + 4 + 100 if ($s2 < $s3) $s1 = 1; else $s1 = 0 set less than immediate if ($s2 < 100) $s1 = 1; else $s1 = 0 go to $ra $ra = PC + 4; go to 10000 Modos de direccionamiento

Qué se guarda y qué no en una subrutina

int leaf_example (int g, int h, int i, int j) {

int f;

f = (g + h) - (i + j);
return f;

}

leaf_example:

addi $sp, $sp, -4 #adjust stack
#save reg $s0
sw $s0, 0($sp)

add $t0, $a0, $a1 #g+h in $t0
add $t1, $a2, $a3 #i+j in $t1
sub $s0, $t0, $t1

add $v0, $s0, $zero

lw $s0, 0($sp)
addi $sp, $sp, 4

jr $ra

3. E/S en MIPS

E/S asignada en memoria

3.1. E/S con interrupciones

Eventos o situaciones excepcionales en flujo de ejecución del MIPS:

1. Petición de dispositivo de E/S

Origen: Externo. Terminología MIPS: Interrupción

2. Llamada al sistema desde espacio usuario
Origen: Interno. Terminología. MIPS: Excepción

3. Desbordamiento aritmético (overflow )

Origen: Interno. Terminología MIPS: Excepción

4. Uso de una instrucción no definida

Origen: Interno. Terminología MIPS: Excepción

5. Problema hardware

Origen: Interno o Externo. Terminología MIPS: Excepción o Interrupción

Para el manejo de excepciones e interrupciones MIPS utiliza el coprocesador 0.

Identificación del motivo de excepción mediante un registro de estado (Registro de causa
o Cause register ) del coprocesador 0 (no usa interrupciones vectorizadas).

Otro registro de estado (Registro de estado o Status register ) permite habilitar/deshabilitar
interrupciones.

Otro registro guarda la dirección de la instrucción interrumpida, es decir, del contador de
programa: EPC register (Exception Program Counter ).

Los registros del coprocesador 0 son accesibles por medio de las instrucciones mfc0 (move
from coprocessor 0 ) y mtc0 (move to coprocessor 0 ):

mfc0 $k0, $13 # Reg. $k0 de CPU cargado con contenido de reg causa
mtc0 $0, $12 # Reg. zero de CPU almacenado en reg estado

# (se borra a cero)

La instrucción rfe (return from exception) habilita de nuevo las interrupciones (bit Inte-
rrupt Enable en registro de estado) antes de devolver el control tras la ejecución de una
rutina de servicio.

Un salto incondicional a la dirección de la instrucción siguiente a la que había sido inte-
rrumpida devuelve el control tras haber atendido la excepción.

Algunos registros del coprocesador 0 del MIPS

Principales bits del registro de estado del C0 del MIPS

Principales bits del registro de causa del C0 del MIPS

Códigos de causas de excepción

La arquitectura MIPS fija una dirección de memoria como dirección de comienzo del
manejador de excepciones: 0x8000 0080.

Manejo de una excepción en MIPS
  • Links de descarga
http://lwp-l.com/pdf4912

Comentarios de: Entrada/Salida en procesadores MIPS (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad