Comunicación del CPU con el mundo exterior

 

¿Cómo se comunica el computador con el mundo exterior?

 

 

Algunos ejemplos de dispositivos I/O son:

1.____________________

2.____________________

3.____________________

4.____________________

5.____________________

Los puertos pueden ser de:

 

 

Ejemplo de un Puerto Programable de Propósito General: INTEL 8255

 

¿Cuántos puertos posee este dispositivo y de cuantas líneas es cada puerto?

 

 

Con las líneas de dirección A0 y A1 se direcciona cada puerto y el Registro de control.

Por medio del registro de control es posible programar los puertos en tres modos:

 Modo A: En grupos de 4 bits que sirvan cada uno como entrada o salida de datos.

Modo B: En dos grupos de 12 bits, 8 bits para un puerto de entrada o salida y los restantes 4 bits para “handshaking”.

Modo C: En dos puertos bidireccionales de 8 bits y el resto para “handshaking”.

 

Proceso de Handshaking:

 

El handshaking es un diálogo que se da entre el CPU y un puerto o entre el puerto y el dispositivo periférico.

 

 

Por medio del terminal Tx_Listo el puerto le pregunta a la impresora si le puede enviar más datos a través del bus. La impresora le contesta activando la línea Rx_Listo, cuando está lista para recibir  más datos para imprimir.

 

Métodos de comunicación del CPU con los puertos

 

1.      Polling (Sondeo)

 

 

 

El procesador está continuamente entrando a una subrutina que examina cada puerto para ver si llegó información o para saber si el dispositivo está ocioso y puede escribir en este.

 

Desventajas del  polling: ________________________________________________________________

 

2.      Interrupciones

 Cuando el puerto I/O desea ser atendido por el CPU, genera una interrupción y envía por el bus de datos el Vector de Interrupciones

 

Explique utilizando el siguiente dibujo, como el 8255 (visto anteriormente) se comunica con el CPU por medio del sistema de interrupciones. Utilice los conceptos de Subrutina de interrupciones, pila y puertos del 8255.

 

 

En este ejemplo ¿Qué pasa con el vector de interrupciones? ....

 

 

 

 


 

Bajo este esquema de varios dispositivos interrumpiendo al CPU, cada vez que un puerto genera una interrupción, el CPU se va a una subrutina de atención a interrupciones única que se encarga de sondear cual puerto solicitó la interrupción.

Normalmente en cada puerto hay una “bandera” que se activa si este desea ser atendido por el CPU.

Por medio de la subrutina de atención a interrupciones, el CPU revisa cada bandera para ver cual puerto debe ser atendido.

 

Otra opción es utilizar un controlador de interrupciones que se puede programar para que guarde un vector de interrupciones diferente para cada puerto conectado a este


También se puede programar el esquema de prioridades que se le desee asignar a los puertos.

Incluso se pueden bloquear algunos puertos en un momento dado

 

¿Cuáles son las ventajas y desventajas de cada uno de los dos esquemas anteriores?: _____________________________________________________________

 

El Acceso Directo A Memoria (DMA: DIRECT MEMORIA ACCESS)

 

El DMA es un procesador dedicado para la transferencia de datos (con una razón de transferencia de 6:1 más rápido con respecto al CPU).

 

El DMA le solicita al CPU que libere los buses por medio de la línea HOLD. Cuando el CPU libera los buses, le avisa al controlador de DMA que puede utilizar los buses, por medio de la línea HLDA (handshaking).

El DMA hace la transferencia entre la unidad de disco y la memoria.

Métodos para la transferencia utilizados por el DMA:

  • Por bloques (batching):  Se hace una transferencia de todo un bloque de datos y mientras tanto el CPU queda “congelado”.

  • Por Robo de Ciclo:

Si la unidad de disco es muy lenta, entonces el DMA devuelve el control al CPU y cada vez que la unidad de disco está lista, el DMA le “roba” un ciclo al CPU. 

Obsérvese que el DMA puede “congelar” al CPU en diferentes puntos dentro de un Ciclo de Instrucción. Cosa que el sistema de interrupciones no puede hacer.

 

De acuerdo con los métodos de DMA discutidos, de algunos ejemplos donde cada método tenga más sentido que el otro:

Bloques: _______________________________________________________________________

_______________________________________________________________________________

_______________________________________________________________________________

Robo de Ciclo: __________________________________________________________________

 

 


 

 

Revisión del tema:

 

  1. Defina cada uno de los siguientes términos:
    1. Handshaking: _________________
    2. Vector de interrupciones: ____________________
    3. Polling: ________________
    4. Puerto: _________________
    5. Controlador de interrupciones programable: ___________
    6. Robo de ciclo: ______________
    7. Batching: _____________
    8. DMA: __________


  2. Escriba una subrutina similar a la de la página 4-2 (Polling), que permita escribir en un puerto una vez, que este se encuentre libre. Recuerde que la instrucción para leer un puerto es IN y para escribir es OUT.

 

  1. La pila se utiliza con el método de

 

  1. Explique como el controlador de interrupciones facilita el manejo de las interrupciones.

 

  1. ¿Porqué el CPU se queda “congelado”, cuando el controlador de DMA está realizando una transferencia de datos?.

 

 

 

 

 

 

 

Hosted by www.Geocities.ws

1