E/S la CPU debe intervenir de forma activa para transferir...

15
En los dos métodos vistos hasta ahora para controlar E/S la CPU debe intervenir de forma activa para transferir datos entre la memoria y el periférico. Cuando se mueven grandes cantidades de datos se necesita una técnica mejor DMA 27

Transcript of E/S la CPU debe intervenir de forma activa para transferir...

Page 1: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� En los dos métodos vistos hasta ahora para controlar E/S la CPU debe intervenir de forma activa para transferir datos entre la memoria y el periférico.

� Cuando se mueven grandes cantidades de datos se necesita una técnica mejor � DMA

27

Page 2: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� Es capaz de realizar las funciones de la CPU durante la transferencia de datos y asumir el control del sistema, especialmente los buses de dirección y datos.

� Contiene:� Registro de datos

� Registro de direcciones � dirección de la siguiente palabra a transmitir. Auto +1

� Registro contador de palabras � nº palabras que quedan por enviar. Auto -1

� Cuando CPU desea leer o escribir manda una instrucción al controlador de DMA � Cuando CPU desea leer o escribir manda una instrucción al controlador de DMA indicando:

� Si la operación es de lectura o escritura.

� Dirección del periférico.

� Posición de comienzo en memoria de donde hay que leer o escribir.

� Nº de palabas a leer o escribir.

� La CPU sigue con otras tareas. Cuando controlador DMA transfiere todo lo indicado, lanza una interrupción a la CPU.

� La CPU solo participa al comienzo y al final de la transferencia.

28

Page 3: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� El controlador necesita el control del bus para poder transferir los datos. Según como se obtenga el control de ese bus repercutirá de forma distinta en la actividad de la CPU y la velocidad de la transferencia.

◦ Por ráfagasPor ráfagasPor ráfagasPor ráfagas: Toma el control y no lo libera hasta que ha terminado de transferir todo el bloque de datos pedido.

◦ Por robo de ciclosPor robo de ciclosPor robo de ciclosPor robo de ciclos: Toma el control del bus durante un solo ciclo. Transmite una palabra y libera el bus. Normalmente entre instrucciones.

◦ TransparenteTransparenteTransparenteTransparente: Solo roba los ciclos cuando la CPU no está usando el bus de sistema. Normalmente en las fases de Decodificación y ejecución del ciclo de instrucción.

29

Page 4: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� Todos los módulos comparten el mismo bus del sistema. Muy económico pero poco eficaz.

� Camino entre el controlador de DMA y uno o más controladores de E/S que no incluye el bus del controladores de E/S que no incluye el bus del sistema.

� Todos los controladores E/S se unen al controlador DMA a través del bus E/S. Y controlador DMA a su vez conectado con CPU y memoria a través del bus de sistema.

30

Page 5: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

En un computador que funciona a una velocidad de 108 ciclos/segundo, una instrucción emplea, en promedio, 4 ciclos máquina en ser ejecutada y en 2 de esos ciclos no hace uso del bus. Este computador tiene un controlador de DMA que emplea 1 ciclo en la transferencia de una palabra. Indique si las afirmaciones precedentes son verdaderas:afirmaciones precedentes son verdaderas:

I. Utilizando DMA transparente la máxima velocidad de transferencia de datos es de 50.000.000 palabras/seg.

II. Empleando DMA por robo de ciclos la máxima velocidad de transferencia de datos es de 25.000.000 palabras/seg

A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

31

Page 6: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

32

Page 7: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� Un controlador de DMA está transmitiendo, mediante robo de ciclos, caracteres a memoria desde un periférico. La CPU realiza la búsqueda de las instrucciones a una velocidad de 1 millón de instrucciones por segundo. Si el porcentaje en que se reduce la velocidad del procesador debido al controlador DMA es de 0.89%, ¿a qué velocidad estará transmitiendo el DMA? Suponga una longitud de controlador DMA es de 0.89%, ¿a qué velocidad estará transmitiendo el DMA? Suponga una longitud de palabra de 8 bits y que la CPU emplea en promedio 2 ciclos para ejecutar una instrucción.

A) 132000 bits/segB) 142400bits/segC) 123700 bits/segD) Ninguna de las anteriores

33

Page 8: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

Si v es la velocidad pedida, el número de palabras que se transmiten por segundo es:

(v bits/s)/(8 bits/palabra)=v/8 palabras/s.

Como el DMA utiliza la estrategia de robo de ciclos, en cada ciclo el DMA transmite 1 palabra completa, luego el nº de robo de ciclos es v/8 ciclos/s.

Estos ciclos suponen un número de instrucciones que la CPU deja de ejecutar en cada segundo. Estas son:

[(v/8)/2]=v/16 instrucciones/s

La penalización que este número de instrucciones no ejecutadas supone para la CPU es del 0.89%, por lo tanto:

0.89=[(v/16)/(1*10^6)]*100de donde:

v=0.89*16*10^4=142400 bits/s

Respuesta: BRespuesta: BRespuesta: BRespuesta: B

34

Page 9: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� Representan una extensión del concepto DMA.

� Tienen capacidad de ejecutar instrucciones E/S, control completo sobre dicha operación.

� La CPU NO ejecuta las instrucciones E/S.

� Las instrucciones se almacenan en memoria principal y se ejecutan por el PE/S.

� La CPU lanza una instrucción al PE/S para que ejecute un programa en memoria.

� Programa especifica:� Programa especifica:◦ Periférico/s que interviene/n.

◦ Zona de memoria utilizada en la transferencia.

◦ Prioridades.

◦ Acciones que hay que ejecutar si se producen ciertas condiciones de error durante la transferencia.

� Los distintos periféricos estructuran sus datos de muy diferentes maneras.

� PE/S ensambla los datos en una palabra de memoria y la transfiere mediante un robo de ciclo de memoria a la CPU.

� Comunicaciones entre PE/S y Periférico � como E/S controlada por programa.

� Comunicaciones entre PE/S y CPU � como E/S por DMA

� La CPU es la que inicia todas las operaciones, pero es el PE/S el que ejecuta las instrucciones.

35

Page 10: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� Atiende a múltiples dispositivos de alta velocidad.

� Solo transfiere de uno de ellos a la vez.

� Velocidad máxima � la del periférico más rápido de los que controla.de los que controla.

36

Page 11: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� Controla de forma simultánea operaciones de E/S con múltiples dispositivos.

� Para periféricos de baja velocidad.

� Velocidad máxima � la suma de las velocidades � Velocidad máxima � la suma de las velocidades máximas de todos los dispositivos que controla.

37

Page 12: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

� Un computador dispone de un canal multiplexor que controla 3 unidades de disco y 2 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 500 Kbytes/seg, y las de cinta de 250 Kbytes/seg. Si en lugar de un canal multiplexor se utilizase un canal selector con esos mismos dispositivos, la velocidad máxima esos mismos dispositivos, la velocidad máxima de transferencia de este canal con respecto al multiplexor sería:

A) 4 veces mayor. B) 4 veces menor. C) Igual. D) Ninguna de las anteriores.

38

Page 13: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

La máxima velocidad de transferencia del canal multiplexor es la suma de las velocidades máximas de todos los dispositivos que están conectados a él. Por tanto un canal multiplexor que controla 3 discos y 2 cintas tendría una velocidad de:

V = 3*Vdisco + 2*Vcinta = 1500 + 500 = 2000 Kbytes/segundo.

Por otro lado, el canal selector tendrá como velocidad máxima la del elemento más rápido conectado a él, puesto que en cada momento sólo puede transmitir puesto que en cada momento sólo puede transmitir con un dispositivo. En nuestro caso el elemento más rápido es el disco, que tiene una velocidad de transferencia de 500 Kbytes/segundo. Por tanto, la velocidad del canal selector será 4 veces menor que la del multiplexor.

Respuesta: B (4 veces menor)Respuesta: B (4 veces menor)Respuesta: B (4 veces menor)Respuesta: B (4 veces menor)

39

Page 14: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

Un computador dispone de un canal multiplexor que controla 5 unidades de disco y 10 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg, y las de cinta de 2×105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante 200 nseg. ¿Cuál es la velocidad máxima de transferencia de E/S agregada bus del sistema durante 200 nseg. ¿Cuál es la velocidad máxima de transferencia de E/S agregada en este sistema?

A) 7 × 106 bytes/segB) 5 × 106 bytes/segC) 106 bytes/segD) Ninguna de las anteriores

40

Page 15: E/S la CPU debe intervenir de forma activa para transferir ...horarioscentros.uned.es/archivos_publicos/qdocente... · Un computador dispone de un canal multiplexor que controla 5

El canal multiplexor es capaz de atender a varios dispositivos simultáneamente. La máxima velocidad agregada se logrará cuando todos ellos estén transmitiendo. En este caso, la máxima velocidad de transferencia sería:

5x106+10x2x105=7x106 bytes/segundo.

Ahora bien, si para transferir un byte hacen falta 200 ns = 200 x 10-9 s, en un segundo sólo se podrá transferir un máximo de:

(1 s) / (200 x 10-9 s/byte) = (1/200) x 109 bytes = 5 x 106 bytes

en lugar de los 7x106 bytes/segundo que cabría esperar. Por lo tanto, el bus no es capaz de proporcionar el ancho de banda suficiente. Es decir, la máxima velocidad agregada viene dada por la limitación en la velocidad de transferencia entre el canal multiplexor y la memoria.

Respuesta: BRespuesta: BRespuesta: BRespuesta: B

41