MIA-Unidad 3

Anuncio
38
UNIDAD 3
Interfaz de E/S Básica, Interrupciones y E/S Controlada por DMA
Por muy poderosa que sea una unidad central de procesamiento (CPU), la utilidad
de una computadora depende esencialmente de sus capacidades de entrada y
salida. Es decir sin ellas, no habría por ejemplo entrada desde el teclado, ni salida
desde la pantalla, ni salida impresa y ni siquiera almacenamiento y recuperación en
disco. Para ello se requiere utilizar rutinas y medios especializados que permitan
procesar la entrada y la salida.
Motivado a esto, se presenta en esta unidad
y sus interfaces, específicamente con el
introducen dos técnicas avanzadas de E/S,
memoria, además de los componentes y
posibles.
el estudio de los componentes de E/S
microprocesador. Posteriormente se
las interrupciones y acceso directo a
las configuraciones que las hacen
Objetivo de la Unidad 3: Resolver problemas de atención a los dispositivos de E/S,
haciendo uso de interfases básicas programables y/o por interrupción y/o
controladas por DMA.
Contenido de la Unidad 3: El contenido de la unidad contempla el estudio de los
siguientes temas:
Interfaz básica de E/S.
Interrupciones.
Acceso directo a la memoria.
E/S controlada por DMA.
39
Actividades recomendadas para el estudio del contenido de la unidad 3.
1.- Examine la tabla 3.1, en ella
contentivos de la unidad 3:
TÍTULO
puede identificar las
MATERIAL DE
REFERENCIA
lecturas de los temas
CAPITUL
O
CONTENIDO
Introducción a la interfaz de
E/S.
Decodificación de dirección
de un puerto de E/S.
texto
Los
La interfaz de El
entrada/salida
Microprocesadores
básica.
Intel, B. B. Brey.
La
interfaz
programable.
11
periférica
La interfaz programable de
teclado/pantalla tipo 8279.
Procesamiento
interrupciones.
básico
de
Interrupciones por hardware.
Expansión de la estructura de
interrupciones..
Interrupciones.
El
texto
Los
Microprocesadores
Intel, B. B. Brey.
Controlador de interrupción
programable 8259A .
12
Ejemplos de interrupción.
Acceso directo a
Operación básica del DMA y
texto
Los
memoria y E/S El
el controlador del DMA 8237.
controlada
por Microprocesadores
Intel, B. B. Brey.
DMA.
Operación
del
bus
compartido.
Tabla 3.1
13
40
a)
Ampliación de conocimientos: El contenido Interfaz programable de
comunicaciones 16550, incluido en el capítulo 11 sección 11-6, del texto Los
Microprocesadores Intel, no
es objeto de evaluación del curso
Microprocesadores, sin embargo, se recomienda su lectura, ya que ésta es
utilizada para conectarse prácticamente a cualquier tipo de interfaz serial.
Atención: Para el establecimiento de una interfaz se requieren ciertos
conocimientos de electrónica, el texto del curso examina algunos hechos
relacionados con ella, los cuales se recomienda leer, a objeto de obtener una
mejor comprensión del contenido.
2.- Lea los siguientes aspectos teóricos, a través de los cuales reforzará los
conocimientos adquiridos.
Buffer de tres estados (o buffer triestado).
Un dispositivo lógico semiconductor que puede tener tres estados: (1) un estado
lógico 0, (2) un estado lógico 1 y (3) un estado en el que la salida está,
efectivamente, desconectada del resto del circuito y no tiene influencia sobre él.
[Lameda,1984].
Tecnología TTL
Acrónimo en Inglés de Transistor-Transistor Logic o "Lógica Transistor a
Transistor". Tecnología de construcción de circuitos electrónicos digitales, en los
que los elementos de entrada de la red lógica son transistores, así como los
elementos de salida del dispositivo.
Las características de la tecnología utilizada, en la familia TTL, condiciona los
parámetros que se describen en sus hojas de características según el fabricante:
Su tensión de alimentación característica se halla comprendida entre los 4.75 V
y los 5.25 V como se ve un rango muy estrecho debido a esto, los niveles
lógicos vienen definidos por el rango de tensión comprendida entre 0.2 V y 0.8 V
para el estado L (bajo) y los 2.4 V y Vcc para el estado H (alto).
La velocidad de transmisión entre los estados lógicos es su mejor baza,
ciertamente esta característica le hacer aumentar su consumo siendo su mayor
enemigo. Motivo por el cual han aparecido diferentes versiones de TTL como
FAST, LS, S, etc y últimamente los TTL: HC, HCT y HCTLS. En algunos casos
puede
alcanzar
poco
más
de
los
250
Mhz.
[http://es.wikipedia.org/wiki/Tecnolog%C3%ADa_TTL].
Nota: Vcc es el nivel de 5 V (voltios).
41
LED (siglas en inglés de Diodo Emisor de Luz).
Semiconductor especial que emite luz, cuando lo recorre una corriente eléctrica.
[Sayers 1995].
Interfaces con el microprocesador.
La mayoría de los microprocesadores tiene poco valor funcional por si mismos.
Muchos no contienen una memoria sustancial, y pocos tienen puertos de
entrada y salida que los conecten directamente a dispositivos periféricos. Los
microprocesadores operan como parte de un sistema. La interconexión, o
enlace, de las partes en este sistema se denomina interfaz. [Tokheim, 1995].
E/S asignada a memoria y E/S aislada.
Cuando el procesador, la memoria principal y la E/S comparten un bus común,
son posibles dos modos de direccionamiento: asignado en memoria (memorymapped) y aislado. Con las E/S asignadas a memoria, existe un único espacio
de direcciones para las posiciones de memoria y los dispositivos de E/S. La CPU
considera los registros de estado y de datos de los módulos de E/S como
posiciones de memoria, y utiliza las mismas instrucciones máquina para acceder
tanto a la memoria como a los dispositivos de E/S. Así por ejemplo, con 10
líneas de dirección se puede acceder a un total de 1024 posiciones de memoria
y direcciones de E/S, en cualquier combinación.
Con la E/S asignadas en memoria, se necesita una sola línea de lectura y una
sola línea de escritura en el bus. Alternativamente, el bus puede disponer de
líneas de lectura y escritura en memoria junto con líneas para órdenes de
entrada y salida. En este caso, las líneas de órdenes especifican si la dirección
se refiere a una posición de memoria o a un dispositivo de E/S. El rango
completo de direcciones está disponible para ambos. De nuevo, con 10 líneas
de dirección, el sistema puede soportar ahora 1024 posiciones de memoria y
1024 direcciones de E/S. Puesto que el espacio de direcciones de E/S está
aislado del de memoria, éste se conoce con el nombre de E/S aislada. [Stallings,
2000].
Protocolo con respuesta (Handshaking)
Un típico sistema de comunicación en paralelo puede ser de una dirección
(unidireccional) o de dos direcciones (bidireccional). El más simple mecanismo
utilizado en un puerto paralelo de una PC es de tipo unidireccional y es el que
analizaremos en primer lugar. Distinguimos dos elementos: la parte transmisora
y la parte receptora. La parte transmisora coloca la información en las líneas de
datos e informa a la parte receptora que la información (los datos) están
disponibles; entonces la parte receptora lee la información en las líneas de datos
e informa a la parte transmisora que ha tomado la información (los datos).
Observe que ambas partes sincronizan su respectivo acceso a las líneas de
42
datos, la parte receptora no leerá las líneas de datos hasta que la parte
transmisora se lo indique en tanto que la parte transmisora no colocará nueva
información en las líneas de datos hasta que la parte receptora remueva la
información y le indique a la parte transmisora que ya ha tomado los datos, a
ésta coordinación de operaciones se le llama acuerdo ó entendimiento. Bien, en
éstos ámbitos tecnológicos es recomendable utilizar ciertas palabras en inglés
que nos permiten irónicamente un mejor entendimiento de los conceptos
tratados. Repito: a la coordinación de operaciones entre la parte transmisora y la
parte receptora se le llama handshaking, que en español es el acto con el cual
dos partes manifiestan estar de acuerdo, es decir, se dan un apretón de manos.
El handshaking
Para implementar el handshaking se requieren dos líneas adicionales. La línea
de estroboscopio (en inglés strobe) es la que utiliza la parte transmisora para
indicarle a la parte receptora la disponibilidad de información. La línea de
admisión (acknowledge) es la que utiliza la parte receptora para indicarle a la
parte transmisora que ha tomado la información (los datos) y que está lista para
recibir más datos. El puerto paralelo provee de una tercera línea de handshaking
llamada en inglés busy (ocupado), ésta la puede utilizar la parte receptora para
indicarle a la parte transmisora que está ocupada y por lo tanto la parte
transmisora no debe intentar colocar nueva información en las líneas de datos.
Una típica sesión de transmisión de datos se parece a lo siguiente:
Parte transmisora:
ƒ La parte transmisora chequea la línea busy para ver si la parte receptora está
ocupada. Si la línea busy está activa, la parte transmisora espera en un bucle
hasta que la línea busy esté inactiva.
ƒ La parte transmisora coloca la información en las líneas de datos.
ƒ La parte transmisora activa la línea de strobe.
ƒ La parte transmisora espera en un bucle hasta que la línea acknowledge está
activa.
ƒ La parte transmisora inactiva la línea de strobe.
ƒ La parte transmisora espera en un bucle hasta que la línea acknowledge esté
inactiva.
ƒ La parte transmisora repite los pasos anteriores por cada byte a ser
transmitido.
Parte receptora:
ƒ La parte receptora inactiva la línea busy (asumiendo que está lista para
recibir información).
ƒ La parte receptora espera en un bucle hasta que la línea strobe esté activa.
ƒ La parte receptora lee la información de las líneas de datos (y si es
necesario, procesa los datos).
ƒ La parte receptora activa la línea acknowledge.
o La parte receptora espera en un bucle hasta que esté inactiva la línea
de strobe.
ƒ La parte receptora inactiva la línea acknowledge.
ƒ La parte receptora repite los pasos anteriores por cada byte que debe recibir.
43
Se debe ser muy cuidadoso al seguir éstos pasos, tanto la parte transmisora
como la receptora coordinan sus acciones de tal manera que la parte
transmisora no intentará colocar varios bytes en las líneas de datos, en tanto
que la parte receptora no debe leer más datos que los que le envíe la parte
transmisora,
un
byte
a
la
vez.
[http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm].
CHIP
Pequeña placa o pastilla de material semiconductor usado para producir un
circuito integrado. [Lameda, 1984].
Tipos de interfaces
La interfaz entre el periférico y el módulo de E/S debe ajustarse a la naturaleza y
la forma de funcionar del periférico. Una de las principales características de la
interfaz es si es serie o paralela. En una interfaz paralela, hay varias líneas que
conectan el módulo de E/S y el periférico, y se transfieren varios bits
simultáneamente a través del bus de datos. En una interfaz serie, hay sólo una
línea para transmitir los datos, y los bits deben transmitirse uno a uno . Las
interfaces paralelas se utilizan usualmente para los dispositivos de alta
velocidad, como una cinta o disco. Las interfaces serie son más propias de
impresoras y terminales. [Stallings, 2000].
Técnica de E/S mediante interrupciones.
Es aquella en la que el programa genera una orden de E/S y después continúa
ejecutándose hasta que el hardware de E/S interrumpe para indicar que la
operación de E/S ha concluido. [Stallings, 2000].
Líneas de interrupción del microprocesador Intel 80386.
El microprocesador 80386 de Intel posee una línea de petición de interrupción
(INTR, Interrup request) y una sola línea de reconocimiento de interrupción
(INTA, Interrup Acknowledge). [Stallings, 2000].
Funcionamiento del DMA.
El DMA requiere un módulo adicional en el bus del sistema. El módulo DMA (ver
figura 3.1) es capaz de imitar al procesador y, de hecho, es capaz de recibir el
control del sistema cedido por el procesador. Necesita dicho control para
transferir datos a, y desde, memoria a través del bus del sistema. Para hacerlo,
el módulo DMA debe utilizar el bus sólo cuando el procesador no lo necesita, o
debe forzar al procesador a que suspenda temporalmente su funcionamiento.
Ésta última técnica es la más común y se denomina robo de ciclo
(cycle
stealing), puesto que, en efecto, el módulo DMA roba un ciclo de bus.
44
Contador de
datos
Líneas de
datos
Líneas de
direcciones
DMA REQ
Registro de
datos
Registro de
dirección
DMA ACK
INTR
Lógica de
control
Read
Write
Figura 3.1. Diagrama típico de un módulo de DMA.
Cuando el procesador desea leer o escribir un bloque de datos, envía a una
orden al módulo de DMA, incluyendo la siguiente información:
ƒ Si se solicita una lectura o una escritura, utilizando la línea de control de
lectura o escritura entre el procesador y el módulo DMA.
ƒ La dirección del dispositivo de E/S en cuestión, indicada a través de la línea
de datos.
ƒ La posición inicial de memoria a partir de donde se lee o se escribe,
indicada a través de las líneas de datos y almacenada por un módulo de
DMA en su registro de direcciones.
El número de palabras a leer o escribir, también indicando a través de las líneas de
datos y almacenado en el registro de cuenta datos. Después el procesador continúa
con otro trabajo. Ha delegado la operación de E/S al módulo de DMA, que se
encargará de ella El módulo de DMA, transfiere el bloque completo de datos palabra
a palabra, directamente desde, o hacia, la memoria, sin que tenga que pasar a
través del procesador. Cuando la transferencia se ha terminado, el módulo de DMA
envía una señal de interrupción al procesador. Así pues, el procesador sólo
interviene al comienzo y al final de la transferencia (ver figura 3.2). [Stallings, 2000].
45
CPU
Mandar orden de
lectura de bloque
al módulo DMA
Leer el estado del
módulo DMA
DMA
Hacer otra cosa
DMA
CPU
Figura 3.2. Acceso directo a memoria
3.- Estudie el ejemplo 3.1, en cual presenta la descripción y funcionamiento de la
interfaz programable de periféricos (IPP) Intel 82C55A.
Ejemplo 3.1: Descripción y funcionamiento de la
programable 82C55A Intel.
interfaz de periférico
Este tipo de interfaz se utiliza para la E/S programada y para la E/S mediante
interrupciones. El 82C55A es un módulo de E/S de propósito general integrado en
un solo chip y diseñado para ser usado con el procesador Intel 8086.
[Stallings,2000]. La figura 3.3 muestra el diagrama general de bloques de la IPP
82C55A de Intel.
46
Buffer de
datos
Bus de
datos
del 8086
8
Bus interno
de 8 bits
8
8
A
+ 5 V (Vdd)
Fuente
de
alimentación
4
Tierra (GND)
CA
4
A0
A1
Read
Write
Reset
Chip
select
CB
Lógica
de
control
8
Registro
de
control
B
Buffer de
datos
Figura 3.3 Diagrama de bloques de la IPP 82C55A de Intel.
Las 24 líneas de E/S son programables por el 8086 mediante un registro de control.
El 8086 puede fijar el valor del registro de control para especificar los diversos
modos de operación y configuraciones. Las 24 líneas se dividen en tres grupos de 8
bits (A, B, C). Cada grupo puede funcionar como un puerto de E/S de 8 bits.
Además, el grupo C se subdivide en grupos de 4 bits (CA y CB), que pueden usarse
conjuntamente con los puertos de E/S de A y B.
El diagrama de la figura 3.3 es la interfaz interna con el bus del 8086. Ésta incluye
un bus de datos bidireccional de 8 bits (D0 a D7), usado para transferir datos a y
desde, los puertos de E/S, y para transferir la información al registro de control. Las
dos líneas de direcciones (A0 y A1) especifican uno de los dos puertos de E/S o el
registro de control. Una transferencia se producirá cuando la línea de selección de
47
chip (CHIP SELECT) se activa junto con la línea de lectura (READ) o escritura
(WRITE). La línea RESET se utiliza para iniciar el módulo.
El procesador escribe en el registro de control para seleccionar el modo de
operación y para definir las señales, en su caso. En el modo 0 de operación, los tres
grupos de 8 líneas externan funcionan como tres puertos de E/S de 8 bits. Cada
puerto puede ser designado como de entrada o de salida. En caso contrario, los
grupos A y B funcionan como puertos de E/S, y las líneas del grupo C sirven de
líneas de control para A y B. Las líneas de control tiene dos funciones principales: la
sincronización mediante conformidad de señales (handshaking) y la petición de
interrupciones. La conformidad de un mecanismo sencillo de temporización. El
emisor utiliza una línea de control como línea de datos listos (DATA READY) para
indicar que hay un dato en las líneas de datos de E/S. El receptor utiliza otra línea
como reconocimiento (ACKNOLEDGE), para indicar que el dato se ha leído y que
las líneas de datos se pueden liberar. Se puede seginar otra línea como línea de
petición de interrupción (INTERRUPT REQUEST) en el bus del sistema.
4.- En el ejemplo 3.2, se presenta una aplicación de la interfaz 82C55A, para
controlar un terminal con teclado y pantalla.
Ejemplo 3.2: Uso de la interfaz 82C55A para controlar la conexión de un
teclado y una pantalla al microprocesador.
En la figura 3.4, se ilustra el uso de la interfaz programable de periféricos Intel
82C55A. El teclado proporciona 8 bits de entrada, dos de estos bits, SHIFT y
CONTROL, tienen un significado especial para el programa de gestión de teclado
que ejecuta el procesador. Sin embargo este significado es transparente para el
82C55A, que simplemente acepta los 8 bits de datos y los pone en el bus de datos
del sistema. Existen dos líneas para la sincronización del teclado mediante
conformidad (handshaking).
La pantalla también está conectada a un puerto de datos de 8 bits. De nuevo, dos
de los bits tiene un significado específico que es transparente para el 82C55A.
Junto a las dos líneas para la sincronización mediante conformidad, hay dos líneas
más para funciones de control adicionales.
48
Petición de
interrupción
C3
A0
A0
A1
A2
A3
A4
A5
A6
C4
C5
R0
R1
R2
R3
R4
R5
Shift (deslazamiento)
Control
Dato preparado
Reconocimiento
82C55A
C0
B0
B1
B2
B3
B4
B5
B6
B7
S0
S1
S2
S3
S4
S5
Backspace
Borrar
C1
C2
C6
C7
Dato preparado
Reconocmiento
Blanking
Borrar línea
Petición de
Interrupción
Figura 3.4 Interfaz teclado/pantalla en el 82C55A
5.- En el ejemplo 3.3 se muestra el uso de la E/S mediante interrupciones, para leer
un bloque de datos desde un dispositivo periférico y almacenarlo en la memoria.
Ejemplo 3.3: E/S con interrupciones para leer un bloque de datos.
En la figura 3.5 se muestra el conjunto de acciones que deben desarrollarse para
procesar una E/S haciendo uso de las interrupciones. El procesador tras enviar una
orden de E/S a un módulo, continúa realizando algún trabajo útil. Después, el
módulo de E/S interrumpirá al procesador para solicitar su servicio cuando esté
preparado para intercambiar datos con él. El procesador ejecuta entonces la
transferencia de datos, y después continúa con el procesamiento previo.
49
Mandar orden de
lectura al módulo de
E/S
CPU
I/O
Hacer otra cosa
Leer el estado del
módulo de E/S
Interrupción
E/S
Comprobar
el estado
CPU
Condición de error
Preparado
Leer una palabra del
módulo de E/S
Escribir una palabra
en memoria
No
E/S
CPU
CPU
Memoria
Comprobar
el estado
Si
Instrucción siguiente
Figura 3.5. Entrada de un bloque de datos mediante interrupciones.
6.- En el ejemplo 3.4, se presenta una aplicación del PIC (controlador de
interrupciones programable) 82C59A para conectar varios módulos de E/S con
el microprocesador Intel 80386.
50
Ejemplo 3.4: Uso del PIC 82C59A para gestionar la interrupción de 64
módulos de E/S.
En la figura 3.6 se ilustra el uso del PIC 82C59A para conectar 64 módulos de E/S.
Debido a que un 82C59A sólo puede manejar hasta 8 módulos, es necesario
disponer de un sistema en cascada para controlar los 64 módulos de E/S.
La única responsabilidad del 82C59A es la gestión de interrupciones. Acepta la
solicitud de interrupción de los dispositivos conectados a él, determina qué
interrupción tiene la prioridad más alta, y se lo indica entonces al procesador
activando la señal INTR. El procesador reconoce la solicitud mediante la línea INTA.
Esto hace que el 82C59 sitúe el vector apropiado en el bus de datos. Entonces, el
procesador puede iniciar el procesamiento de la interrupción y comunicarse
directamente con el módulo de E/S para leer o escribir datos.
Si se precisa controlar más de 8 módulos, se puede disponer en cascada para
manejar para conectar
51
Controlador de
interrupciones
82C59A esclavo
Dispositivo externo 00
Dispositivo externo 01
Dispositivo externo 07
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INT
Controlador de
interrupciones
82C59A esclavo
Dispositivo externo 08
Dispositivo externo 09
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INT
Concentrador de
interrupciones
82C59A maestro
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INT
Procesador
80386
INTR
Dispositivo externo 15
Controlador de
interrupciones
82C59A esclavo
Dispositivo externo 56
Dispositivo externo 57
Dispositivo externo 63
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INT
Figura 3.6. Uso del controlador de interrupciones 82C59A.
Entrada de un bloque de datos mediante interrupciones.
52
7.- En el ejemplo 3.5, se presenta una aplicación del funcionamiento de un módulo
DMA, para escribir un bloque de 32 bytes de la dirección de memoria 100 en una
terminal (un terminal de computadora consta de dos partes: un teclado y un
monitor).
Ejemplo 3.5: Transferencia de un bloque de 32 bytes desde memoria a un
terminal de computadora, usando la técnica de E/S de DMA.
La E/S controlada por interrupciones es un gran adelanto en comparación con la
E/S programada [TANENBAUM, 2000]. El problema es que se requiere una
interrupción por cada carácter transmitido. El procesamiento de interrupciones es
costoso. Razón por la cual es necesario una forma de reducir la mayor parte de las
interrupciones.
La solución es regresar a la E/S programada, pero encargársela a otro dispositivo
que no sea el CPU. La figura 3.7 muestra como se logra esto. Se ha añadido un
nuevo chip al sistema, un controlador de acceso directo a la memoria (DMA), con
acceso directo al bus.
Dirección
CPU
DMA
Memoria
100
Cuenta
Controlador
RS232C
32
4
100
1
Dispositivo
Sentido
Bus
Figura 3.7. Sistema controlador DMA
El chip DMA contiene al menos cuatro registros, todos los cuales pueden ser
cargados por software que se ejecuta en la CPU. El primero contiene la dirección de
memoria que se leerá o en la que se escribirá. El segundo contiene el número de
bytes (o palabras) que se transferirán. El tercero específica el número de
53
dispositivo o espacio de direcciones de E/S que se usará, con lo que se especifica
qué dispositivo de E/S se desea. El cuarto indica si los datos se escribirán en el
dispositivo de E/S o se leerán de él.
Para escribir un bloque de 32 bytes de la dirección 100 en una terminal (por
ejemplo, el dispositivo 4), la CPU escribe los números 100, 32 y 4 en los primeros
tres registros del DMA, y luego el código de escribir ( por ejemplo, 1) en el cuarto,
como se muestra en la figura 3.7. Una vez inicializado con estos valores, el
controlador DMA emite una solicitud de bus para leer el byte 100 de la memoria,
del mismo modo como la CPU leería de la memoria. Una vez que obtiene el byte, el
controlador de DMA emite una solicitud de E/S al dispositivo 4, para escribir el byte
en él. Una vez completadas ambas operaciones, el controlador de DMA incrementa
en 1 su registro de dirección y decrementa en 1 su registro de cuenta. Si el registro
de cuenta sigue siendo mayor que 0, se lee otro byte de la memoria y se escribe en
el dispositivo.
Cuando la cuenta por fin llega a 0, el controlador de DMA deja de transferir data y
habilita la línea de interrupción en el chip del CPU. Con DMA, la CPU solo tiene que
inicializar unos cuantos registros. Una vez hecho eso, queda libre para hacer otras
cosas hasta que se completa la transferencia,
Ejercicios propuestos
1.- Asuma que un procesador de 16 bits y dos de 8 bits deben conectarse a un bus
del sistema. Considere los siguientes detalles:
• Todos los microprocesadores tiene el hardware necesario para cualquier tipo
de transferencia: E/S programada, E/S mediante interrupciones y DMA.
• Todos los microprocesadores tienen un bus de direcciones de 16 bits.
• Hay dos tarjetas de memoria, de 64 Kbytes cada una, conectada al bus. El
diseñador desea que se comparta la mayor cantidad de memoria posible.
• El bus del sistema permite un máximo de cuatro líneas de interrupción y una
de DMA.
Haga las suposiciones adicionales que necesite, y:
a) Establezca las especificaciones del bus en términos del número de líneas.
b) Explique cómo es la interfaz de los dispositivos indicados arriba para
conectarse al bus.
2.- Una impresora de caracteres simples podría usar razonablemente bien una
entrada/salida programada, pues su velocidad es lenta. Comparada con la
unidad central de procesamiento. Sin embargo, la mayoría de las impresoras
modernas utiliza el acceso directo a la memoria. ¡Por qué?.
3.- ¿Por qué el acceso directo a la memoria (DMA) sería inútil si la computadora
careciera de la capacidad de interrupción?
54
Consulta en otros libros
[Stallings, 2000] Dedica un capítulo a los distintos aspectos de la organización de
E/S, también describe la interfaz entre los módulos de E/S y los dispositivos
externos.
[Tokheim, 1995] Hace una presentación de las interfaces con el microprocesador.
[Tanenbaum, 2000] Cubre algunos aspectos de los temas de esta unidad.
[Lameda, 1984] Presenta un estudio de los métodos para introducir y extraer datos
del computador, también incluye el estudio de las interfaces con dispositivos para
entrada/salida.
[Sayers 1995] Contiene aspectos orientados al estudio de problemas externos de
interfaz de un microprocesador con el mundo real.
Se sugiere consultar también los otros textos recomendados en la bibliografía.
Consulta en la Web
http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm: Contiene información
sobre el puerto paralelo del PC.
http://www.iuma.ulpgc.es/users/armas/asignaturas/fundamentos/tutorial/entradas_y_
salidas/index.htm: Es un tutorial con información asociada a la E/S del
sistema.
Ejercicios de Autoevaluación
1.- Un dispositivo periférico junto con su controlador de E/S se conectará a un
computador mediante el uso de un controlador DMA. Todos los módulos que
conforman el sistema comparten el mismo bus “master”. El periférico solicita una
transferencia al controlador de DMA, el cual a su vez solicita el bus a la CPU. Si
la CPU no está utilizando el bus ni está en estado LOCK, lo concede al
55
controlador de DMA, el cual a su vez informa al periférico para que prepare los
datos a transferir.
En una transferencia de entrada, los datos se mueven desde el periférico (I/O) a
la memoria por el bus de datos sin pasar por el controlador de DMA y sin
intervención de la CPU. Las líneas de control para leer la I/O (IOR) y para
escribir la memoria (MEMW) son manejadas por el controlador de DMA. De la
misma forma, en una transferencia de salida los datos se mueven desde la
memoria a la I/O y el controlador de DMA maneja las líneas de control para leer
la memoria (MEMR) y para escribir en el periférico (IOW).
Con base a lo anteriormente expuesto, solucione la manera en que debe
configurarse el sistema para el control de la E/S mediante el uso de la técnica
DMA y que cumpla con las especificaciones dadas.
2.- La conexión a periféricos en un sistema de microcomputador puede hacerse
mediante el uso de chips especializados de entradas y salidas. Estos chips
tienen como característica común su programabilidad por software y su conexión
directa a los buses del sistema sin lógica auxiliar.
Parta de la información dada anteriormente y resuelva el problema de la
conexión de la PPI (interfaz periférica programable) tipo 82C55, en un sistema
de microprocesador directamente ligados a los buses.
Respuesta a los Ejercicios de Autoevaluación
1.- En la siguiente figura se presenta una solución que permite el control de la E/S,
mediante el uso de un controlador DMA.
56
Se observa que el sistema configurado, consta de un periférico con su controlador
de E/S, un controlador de DMA y las señales de pedido y concesión del bus que
permiten alternar el "bus master" entre la CPU y el controlador de DMA
2.- La disposición de la PPI 82C55 en este tipo de sistema, se muestra a
continuación:
Bus de datos (8 bits)
Bus de direcciones
(16 bits)s)
8
CS
A0
A1
Puerto A
8
D0
D7
82C55
Puerto C
8
A1
A0
__
CS
Puerto B
__
RD
I/OR
__
WR
8
RESET
I/OW
RESET
Bus de control
Descargar