Estructura de Computadores 2 [08/09] Entrada/Salida en...

7
Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electr´onica e Sistemas. Universidade da Coru˜ na. Bibliograf´ ıa Computer Organization and Design: The hardware/software interface (3rd ed.), David A. Patterson and John L. Hennessy. Morgan Kaufmann Publishers, Inc. (Tambi´ en disponible en castellano: Estructura y dise˜ no de computadores: interficie cir- cuiter´ ıa/programaci´ on) 1. Introducci´ on Filosof´ ıa RISC (Reduced Instruction Set Computer) Instrucciones de pocas etapas (buscando adem´ as longitud fija de instrucciones) instrucciones de carga/almacenamiento (load/store) reducido n´ umero de m´ etodos de direccionamiento juego de instrucciones peque˜ no Ejemplos RISC: MIPS, Sun SPARC, HP PA-RISC, IBM PowerPC, Alpha, ARM... Objetivos de dise˜ no: velocidad, coste (dise˜ no, fabricaci´ on y testeo), tama˜ no, consumo el´ ectrico, fiabilidad, versatilidad (sistemas empotrados) Principios b´ asicos: simplicidad favorece regularidad as peque˜ no as r´ apido hacer el caso m´ as frecuente lo m´ as r´ apido posible

Transcript of Estructura de Computadores 2 [08/09] Entrada/Salida en...

Page 1: Estructura de Computadores 2 [08/09] Entrada/Salida en ...quegrande.org/apuntes/EI/3/ECm2/practicas/08-09/seminario_practic… · 5. Problema hardware Origen: Interno o Externo. Terminolog

Estructura de Computadores 2 [08/09]

Entrada/Salida en procesadores MIPS

GAC: Grupo de Arquitectura de ComputadoresDpt. Electronica e Sistemas. Universidade da Coruna.

Bibliografıa

Computer Organization and Design: The hardware/software interface (3rd ed.), David A.Patterson and John L. Hennessy. Morgan Kaufmann Publishers, Inc.(Tambien disponible en castellano: Estructura y diseno de computadores: interficie cir-cuiterıa/programacion)

1. Introduccion

Filosofıa RISC (Reduced Instruction Set Computer)

• Instrucciones de pocas etapas (buscando ademas longitud fija de instrucciones)

• instrucciones de carga/almacenamiento (load/store)

• reducido numero de metodos de direccionamiento

• juego de instrucciones pequeno

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

Objetivos de diseno: velocidad, coste (diseno, fabricacion y testeo), tamano, consumoelectrico, fiabilidad, versatilidad (sistemas empotrados)

Principios basicos:

• simplicidad favorece regularidad

• mas pequeno ⇒ mas rapido

• hacer el caso mas frecuente lo mas rapido posible

Page 2: Estructura de Computadores 2 [08/09] Entrada/Salida en ...quegrande.org/apuntes/EI/3/ECm2/practicas/08-09/seminario_practic… · 5. Problema hardware Origen: Interno o Externo. Terminolog

2. MIPS: Arquitectura basica y ensamblador

E/S asignada en memoria (MMIO)

Dos modos de funcionamiento: kernel y usuario

La mitad superior del espacio de direcciones solo accesible en modo kernel : direcciones apartir de 0x8000 0000.Esta region incluye:

• Codigo para el manejo de excepciones

• Datos solo accesibles al SO

• Direcciones de E/S asignadas en memoria: a partir de 0xffff 0000

Registros del MIPS y convencion sobre su uso

Organizacion de memoria

Organizacion de un stack frame

Page 3: Estructura de Computadores 2 [08/09] Entrada/Salida en ...quegrande.org/apuntes/EI/3/ECm2/practicas/08-09/seminario_practic… · 5. Problema hardware Origen: Interno o Externo. Terminolog

Operandos de instrucciones MIPS

MIPS assembly languageCategory Instruction Example Meaning Comments

add add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers

Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers

add immediate addi $s1, $s2, 100 $s1 = $s2 + 100 Used to add constants

load w ord lw $s1, 100($s2) Word from memory to register

store w ord sw $s1, 100($s2) Word from register to memory

Data load byte lb $s1, 100($s2) Byte f rom memory to register

transfer store byte sb $s1, 100($s2) Byte f rom register to memory load upper immediate lui $s1, 100 Loads constant in upper 16 bits

branch on equal beq $s1, $s2, 25 Equal test; PC-relative branch

Conditional

branch on not equal bne $s1, $s2, 25 Not equal test; PC-relative

branch set on less than slt $s1, $s2, $s3 Compare less than; for beq, bne

slti $s1, $s2, 100 Compare less than constant

jump j 2500 go to 10000 Jump to target address

Uncondi- jump register jr $ra For sw itch, procedure return

tional jump jump and link jal 2500 For 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

Formato de instrucciones del MIPS

Page 4: Estructura de Computadores 2 [08/09] Entrada/Salida en ...quegrande.org/apuntes/EI/3/ECm2/practicas/08-09/seminario_practic… · 5. Problema hardware Origen: Interno o Externo. Terminolog

Modos de direccionamiento

Que se guarda y que 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

sw $s0, 0($sp) #save reg $s0

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

Page 5: Estructura de Computadores 2 [08/09] Entrada/Salida en ...quegrande.org/apuntes/EI/3/ECm2/practicas/08-09/seminario_practic… · 5. Problema hardware Origen: Interno o Externo. Terminolog

3. E/S en MIPS

E/S asignada en memoria

Page 6: Estructura de Computadores 2 [08/09] Entrada/Salida en ...quegrande.org/apuntes/EI/3/ECm2/practicas/08-09/seminario_practic… · 5. Problema hardware Origen: Interno o Externo. Terminolog

3.1. E/S con interrupciones

Eventos o situaciones excepcionales en flujo de ejecucion del MIPS:

1. Peticion de dispositivo de E/SOrigen: Externo. Terminologıa MIPS: Interrupcion

2. Llamada al sistema desde espacio usuarioOrigen: Interno. Terminologıa. MIPS: Excepcion

3. Desbordamiento aritmetico (overflow)Origen: Interno. Terminologıa MIPS: Excepcion

4. Uso de una instruccion no definidaOrigen: Interno. Terminologıa MIPS: Excepcion

5. Problema hardwareOrigen: Interno o Externo. Terminologıa MIPS: Excepcion o Interrupcion

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

Identificacion del motivo de excepcion mediante un registro de estado (Registro de causao Cause register) del coprocesador 0 (no usa interrupciones vectorizadas).

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

Otro registro guarda la direccion de la instruccion interrumpida, es decir, del contador deprograma: EPC register (Exception Program Counter).

Los registros del coprocesador 0 son accesibles por medio de las instrucciones mfc0 (movefrom 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 instruccion rfe (return from exception) habilita de nuevo las interrupciones (bit Inte-rrupt Enable en registro de estado) antes de devolver el control tras la ejecucion de unarutina de servicio.

Un salto incondicional a la direccion de la instruccion siguiente a la que habıa sido inte-rrumpida devuelve el control tras haber atendido la excepcion.

Algunos registros del coprocesador 0 del MIPS

Page 7: Estructura de Computadores 2 [08/09] Entrada/Salida en ...quegrande.org/apuntes/EI/3/ECm2/practicas/08-09/seminario_practic… · 5. Problema hardware Origen: Interno o Externo. Terminolog

Principales bits del registro de estado del C0 del MIPS

Principales bits del registro de causa del C0 del MIPS

Codigos de causas de excepcion

La arquitectura MIPS fija una direccion de memoria como direccion de comienzo delmanejador de excepciones: 0x8000 0080.

Manejo de una excepcion en MIPS