8.entrada / salida 1. entrada / salida 1.estructura general 2.espacios de direccionamiento...

33
8. ENTRADA / SALIDA 1

Upload: ruperto-toledano

Post on 03-Feb-2015

15 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

8. ENTRADA / SALIDA

1

Page 2: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

ENTRADA / SALIDA

1. Estructura General

2. Espacios de Direccionamiento

3. Métodos de Entrada / Salida

3.1. Polling

3.2. Interrupciones

3.3. DMA

2

Page 3: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

1. Estructura General

ENTRADA / SALIDA

3

Page 4: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Estructura General

Entrada / Salida 4

CPU

Memoria

DD1 DD2

Page 5: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Estructura General

Entrada / Salida 5

CPU

Memoria

DD1 DD2

Controlador de vídeo

Controlador de

Teclado

Controlador de

Disquete

Controlador Impresora

Controlador de Discos

Page 6: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Estructura General

Entrada / Salida 6

CPU

Memoria

DD1 DD2

Controlador de vídeo

Controlador de

Teclado

Controlador de

Disquete

Controlador Impresora

Controlador de Discos

Driver de vídeo

Driver de teclado

: :

: :

Page 7: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

2. Espacios de Direccionamiento

ENTRADA / SALIDA

7

Page 8: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Espacios de Direccionamiento

Entrada / Salida 8

Direccionamiento de la E/S

Espacios de direccionamiento separados

E/SExplícita

E/SMapeada

Espacio de direccionamien

to único

Page 9: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Espacios de Direccionamiento

Entrada / Salida 9

E/S Explícita

Intel: Instrucciones explícitas de E/SIN (AX, FFF4);OUT (AX, FFF6);

PowerPC: Registro de control para conmutar de espacio de direccionamiento

E/S Mapeada

68000: Instrucciones normalesMOVE.B $EFFA07,D0MOVE.B D0,$EFFA07

Page 10: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

3. Métodos de Entrada / Salida

ENTRADA / SALIDA

10

Page 11: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Métodos de Entrada / Salida

Entrada / Salida 11

La comunicación entre CPU y

dispositivo se realiza en dos

fases

1º Sincronización CPU - Dispositivo

2º Transferencia del Dato

Estos 2 pasos pueden realizarse: Por Polling

Por Interrupciones

Por DMA

SW.

HW.

Baja

Alta

Polling Interrupciones DMA

SincronizaciónSW-CPU HW. HW.

Transferencia SW-CPU SW-CPU HW.

Page 12: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

3.1. Polling

ENTRADA / SALIDA

12

Page 13: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 13

repeat

Esperar a que se pulse una tecla;

Leer la tecla (carácter) pulsada;

Esperar a que la pantalla esté lista;

Enviar carácter a la pantalla;

until false;

Lectura de Teclado y Eco por Pantalla

Métodos de Entrada / Salida Polling

Page 14: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 14

Lectura de Teclado y Eco por Pantallainic_ES ........

........rts

env_car btst.b #2,SRAbeq env_carmove.b D5,TBArts

rec_car btst.b #0,SRAbeq rec_carmove.b RBA,D5rts

Inicio bsr inic_ESBucle bsr rec_car

bsr env_carbra bucle

Métodos de Entrada / Salida Polling

Page 15: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 15

Inconvenientes de la E/S por polling

El dispositivo no puede actuar cuando lo necesita sino sólo cuando le atienden.

Se realiza espera activa.

Métodos de Entrada / Salida Polling

Page 16: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

3.2. Interrupciones

ENTRADA / SALIDA

16

Page 17: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 17

Métodos de Entrada / Salida Interrupciones

. . .MOV R1,R2CMP 0,R3 . . .

Flujo Normal

de Ejecución

R T I

Int

IN R5MOV R6,R5MOV R7,0OUT FFF4 . . .RTE

DD1

1

2

3

4

Page 18: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 18

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

La CPU programa el dispositivo

Interrupciones

Page 19: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 19

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

La CPU continúa

ejecutando

Interrupciones

Page 20: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 20

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

El dispositivo envía una

interrupción

Interrupciones

Page 21: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 21

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

La CPU acepta la interrupción

Interrupciones

Page 22: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 22

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

El dispositivo envía el número de vector de

interrupción

Interrupciones

Page 23: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 23

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

Interrupciones

Se utiliza el número de vector para acceder a la tabla de vectores de

interrupción

Tabla de vectores

Page 24: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 24

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

Interrupciones

Se da control a la rutina de tratamiento de la interrupción

Rut :::: rte

Rut

Page 25: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 25

Métodos de Entrada / Salida

CPU Memoria

DD

Controlador de Disco

Se devuelve el control al programa que

estaba ejecutando la CPU

Interrupciones

Page 26: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 26

Métodos de Entrada / Salida Interrupciones

Tipos

de

Interrupciones

(Excepciones, Traps)

- Anomalías en instrucciones

- Interrupciones Software

- Externas(asíncronas)

- Internas(síncronas)

- Instr. ilegal

- Bus error

- Div. por cero

- Overflow

-Trap #7

Page 27: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 27

Métodos de Entrada / Salida Interrupciones

Interrupciones

No Enmascarables

- Reset

- Error de Bus

- NMI

Enmascarables

De forma global

- Enable/Disable

De forma selectiva

- Prioridades

Page 28: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 28

Métodos de Entrada / Salida Interrupciones

inicio move.b #%00110011,MR1Amove.b #%00000111,MR2Amove.b #%10111011,CSRAmove.b #%00000101,CRAmove.b #$40,IVRmove.l #rutint,$40*4andi.w #%1111100011111111,SRmove.b #%00000010,IMR

tarea bra tarea

rutint move.b RBA,D0esp btst.b #2,SRA

beq espmove.b D0,TBArte

Lectura de Teclado y Eco por Pantalla

Entrada Interrupciones Salida Polling

Page 29: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

3.3. DMA

ENTRADA / SALIDA

29

Page 30: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 30

Métodos de Entrada / Salida DMA

Polling Interrupciones

MOVE PUERTO_DATOS,R0+

Actualizar puntero buffer E/S+

Llevar la cuenta Nº bytes transferidos

+Si INTS. Salvar y restaurar SR y PC

¡ Problemas !

Velocidad Máxima Limitada

La CPU no puede dedicarse a otra tarea

Page 31: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 31

Métodos de Entrada / Salida DMA

CPU DMA Memoria

DD

Controlador de Disco

La CPU programa al

DMA

Page 32: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 32

Métodos de Entrada / Salida DMA

CPU DMA Memoria

DD

Controlador de Disco

La CPU continúa

ejecutando

El DMA monitoriza a la memoria y al

controlador

Page 33: 8.ENTRADA / SALIDA 1. ENTRADA / SALIDA 1.Estructura General 2.Espacios de Direccionamiento 3.Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones

Entrada / Salida 33

Métodos de Entrada / Salida DMA

CPU DMA Memoria

DD

Controlador de Disco

El DMA (o el controlador) avisa a la CPU de que la transferencia ha

finalizado