Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OPERATIVOS
PROFESOR
AL12540666
ACTIVIDAD # 4
15
INTRODUCCION
As como en el diseo del procesador el objetivo principal (adems del coste) es el rendimiento,
en el diseo del sistema de entrada/salida se han de tener en cuentas otras y tan importantes
consideraciones:
15
lectura
escritura
lectura/escritura
En este caso el punto de referencia es el procesador. Los dispositivos de lectura son aquellos
de los cuales, exclusivamente, el procesador puede obtener datos (aparte dejamos el hecho de
que el procesador pueda programarlos de alguna manera escribiendo en sus registros). Los de
escritura, aquellos en los que el procesador solo puede depositar datos (salvo posibilidad de
leer registros de estado). Los ltimos son dispositivos de almacenamiento o de comunicacin
principalmente.
Los primeros se caracterizan por ser relativamente lentos en comparacin con las velocidades
a que los procesadores ejecutan instrucciones. Los dispositivos de comunicacin pueden
alcanzar velocidades de transmisin prximas a las del procesador. En cuanto a la interaccin
con mquinas hay una amplia variedad dependiendo de qu tipo de mquinas sean.
3.- Controladores.
15
Los dispositivos no se conectan directamente al computador sino que lo hacen a travs de una
interfaces llamadas controladores. Esto favorece caractersticas del sistema de entrada/salida
tales como la expansin. Los controladores proporcionan, entre otras cosas, una
homogeneizacin de las conexiones, adems de ofrecer tambin un traduccin entre el
protocolo empleado por el dispositivo y el exigido por el procesador. Algunas de sus labores
son las siguientes:
1.
2.
3.
4.
5.
Elemento muy importante para lograr una comunicacin eficaz es el protocolo. Un controlador
se enfrenta a dos protocolos diferentes de comunicacin, el que emplea con el procesador y el
que emplea con el dispositivo. El Controlador es la interfaz entre ambos, encargndose no solo
de comunicarlos sino tambin de transmisor/ejecutor/generador de rdenes e informacin de
estado sobre el dispositivo o el estado de las transacciones. As mismo el controlador puede
servir al procesador disfrazando las particularidades del dispositivo ante el procesador, a este
respecto la posibilidad de almacenamiento temporal de datos o la ejecucin de rdenes
procedentes de ste que el controlador traduce en acciones sobre el dispositivo.
Estructura de un controlador.
Un controlador es un circuito de dos caras. Por un lado se enfrenta al procesador, posiblemente
conectado a un bus, y por ello debe incorporar todas las seales que se le exigen: lneas de
datos, lneas de direcciones y lneas de control -bsicamente de seleccin, lectura y escritura.
Para almacenar datos intermedios o informacin de estado, el controlador posee varios
registros, algunos accesibles desde el procesador y otros de uso exclusivo. Pese a ser un nico
dispositivo fsico, el controlador puede acaparar ms de una direccin de entrada salida que
utilizar el procesador segn la tarea que vaya a realizar sobre el controlador.
Por el lado del dispositivo el controlador intercambiar con ste las lneas que sean necesario
segn la clase. Exigirn generalmente un conjunto de lneas de datos para transmitir la
informacin y un conjunto de lneas de control para regular el protocolo de esa transaccin. Por
el nmero de lneas de datos se pueden distinguir dos tipos de controladores:
Comunicacin CPU-Controlador
15
Control
Estado
Lectura
Escritura
Las transacciones de control son aquellas en las que el procesador enva rdenes de actuacin
al controlador. Algunas de estas rdenes modificarn el comportamiento del controlador, y otras
son reenviadas, adecuadamente traducidas, al dispositivo para programar su conducta. El
dispositivo y el propio controlador pueden responder con informacin de estado que dar a
conocer su situacin al procesador.
15
15
La primera consideracin a tener en cuenta es que los controladores deben incorporar esta
capacidad de interrumpir al procesador. Por tanto es otra de las posibles
funcionalidades de un controlador. En segundo lugar no todo tipo de transacciones
pueden ser adecuadas para este esquema. Con esto quirese decir que la asuncin de
un esquema de interrupciones no implica el abandono del esquema programado.
Obsrvese que en ambos casos las fases por las que pasa una transmisin de entrada
salida son las mismas, programacin, transmisin/comprobacin de estado,
finalizacin.
La diferencia estara en la fase de transmisin, durante la cual el procesador no espera
activamente, interrogando al controlador, sino que espera pasivamente al que el
controlador le avise.
Una vez lo ha hecho la tarea del procesador seguir siendo recoger el dato que se le ofrece y
depositarlo en la correspondiente celda de memoria o viceversa.
Por lo tanto este esquema es ms bien un complemento del anterior ms que una alternativa.
Implantacin.
El esquema de interrupciones exige un apoyo en el hardware. Tanto en el lado del
procesador como en el lado de los dispositivos. Estos deben tener capacidad para
enviar una seal al procesador y aquel debe tenerla para recibir esa seal y responder
al dispositivo que la origin. La respuesta del procesador es la ejecucin de una serie
de instrucciones (Rutina de atencin a la interrupcin) encargadas de atender a las
tareas relacionadas con el dispositivo. Por cada uno de los dispositivos que pueden
interrumpir al procesador debe existir un conjunto separados de instrucciones (una
rutina de atencin diferente). Una de las tareas del procesador al responder a una
interrupcin es identificar el dispositivo que la origin. Se han planteado dos esquemas:
Mtodo vectorizado: es, de alguna manera, el propio dispositivo el que se identifica ante el
procesador. Generalmente lo hace envindole un ndice dentro de una lista de rutinas de
atencin (vector de interrupciones), que apunta a la rutina que sirve para atender a este
dispositivo.
Mtodo de consulta: el procesador determina, preguntando a cada uno de los dispositivos,
cual es el que gener la interrupcin.
Puede ocurrir que varios controladores generen al mismo tiempo una interrupcin, entonces el
procesador se ve obligado a seleccionar uno de ellos. Algunos esquemas que resuelven este
problema son:
Mltiples lneas de interrupcin: por lo tanto cada controlador est plenamente identificado y
priorizado por la lnea por la que avisan al procesador.
Consulta software: como todos los dispositivos utilizan la misma lnea de interrupcin, el
procesador, al recibir un aviso debe acceder dispositivo por dispositivo inquiriendo cual ha sido
el autor de la seal, el orden en que realiza las consultas establece la prioridad.
Consulta hardware: Los propios dispositivos se auto seleccionan conforme a un esquema de
prioridades ya previsto (ejemplo daisy chain).
15
Arbitraje de bus: Igualmente son los propios dispositivos los que se autorregulan, en este caso
compitiendo por el acceso al bus para proporcionarle al procesador el ndice en el vector de
interrupciones.
Esquemas de interrupcin.
Procesador
ru
ti
n
a
Controlador
Int
Intrq
El procesador debe tener una entrada de interrupcin, consistente en una entrada que cuando
se activa el contador de programa salta a una direccin determinada de memoria y comienza a
ejecutar cdigo.
El controlador debe tener una salida de peticin de interrupcin que se activar cuando el
controlador est dispuesto a interactuar con el procesador.
Qu pasa cuando hay ms de un controlador con capacidad para interrumpir? Pues que hay
ms de una rutina esperando ser disparada cuando el controlador correspondiente genere su
interrupcin. Por lo tanto el procesador debe tener un medio para identificar al controlador que
gener la interrupcin.
15
PROCESADOR
I
1
INT1
INT2
INT3
I
2
I
3
Esquema vectorial
En el esquema vectorial el dispositivo se identifica a s mismo.
El proceso de activar una interrupcin ocurre en dos fases:
generar la interrupcin, reconocimiento de la interrupcin
Ack
PROCE SADOR
I
2
INT
I
1
2
3
I
3
Una vez generada la interrupcin, el procesador inicia un ciclo de reconocimiento. Durante este
ciclo el dispositivo con mayor prioridad de los que han pedido simultneamente una
interrupcin se identifica ante el procesador y este utiliza esta informacin para invocar a la
rutina correspondiente.
El concepto de prioridad en cualquier esquema de interrupcin es muy importante, en primer
lugar porque hay que tomar una decisin cuando varios dispositivos realizan una peticin
simultneamente y en segundo lugar porque hay dispositivos que requieren una atencin
inmediata mientras que otros pueden verse postergados sin perjuicio relevante.
15
Una forma de resolver este problema es el daisy chain. Durante el ciclo de reconocimiento el
procesador genera el reconocimiento y el primer dispositivo que lo detecte es el que se
identifica colocando su identificador en el bus que el procesador leer a continuacin.
Procesador
BUS
1
Ack
INT
Otro esquema es el utilizado por el 8086 en el que la tarea de identificar al dispositivo que
gener la interrupcin es realizada por un controlador.
Bus
PROCE
SADOR
INT
Contro
lador
de
interru
pcione
s
1
2
3
Procesador
1
2
BUS
1
Int
ack INT
Cuando recibe la peticin de interrupcin, el procesador activa una rutina de atencin genrica
que se encarga de preguntar a cada controlador su estado. Como los explorar
secuencialmente el controlador que tenga la direccin ms baja ser el de mayor prioridad.
Cuando haya detectado el controlador de mayor prioridad de los que hayan solicitado la
interrupcin invocar a su rutina correspondiente.
15
DMA. Este es el tercer esquema que igualmente es complementario y no antagonista con los
mencionados antes. Considerando que el papel de procesador en una transaccin de
entrada/salida es meramente de trasladador de datos, el esquema DMA propone que
exista otro controlador con cierto grado de inteligencia que realice estas labores en
lugar del procesador. Este esquema por lo tanto exige que exista un controlador que
pueda leer datos de memoria o un dispositivo y posteriormente escribirlos en un
dispositivo o memoria sin la ayuda del procesador. De manera que para un procesador
una transaccin e/s consistira en programar tal controlador de DMA para indicarle:
-
15
Estructura de un teclado
5V
output
5V
1
0
1
1
1
0 1
input
Pro
Ce
Sa
Dor
Cdigo de usuario
Explorar el teclado (implica esperar hasta que haya una tecla pulsada)
Convertir cdigo de tecla pulsada a cdigo ASCII
Cdigo de usuario
El siguiente paso es facilitarle la tarea al procesador. Para ello trasladamos la accin de
explorar el teclado a un dispositivo fuera del procesador, el controlador. Cada vez que lo desee
el procesador se limitar a leer del controlador la tecla pulsada. Si no hay tecla pulsada (cdigo
FF) el procesador esperar hasta que se pulse una (lo que implica lecturas sucesivas de la
salida del controlador). La interfaz del procesador con el controlador se ha simplificado,
nicamente ocho bits de entrada. Ahora el cdigo se reduce a:
Cdigo de usuario
Leer del controlador (esperar hasta que haya tecla pulsada)
Convertir cdigo de tecla pulsada a cdigo ASCII
Cdigo de usuario
El controlador puede muy bien hacer la conversin, aunque
esto le resta flexibilidad al procesador
Cdigo de usuario
Leer del controlador cdigo ASCII (esperar)
Cdigo de usuario
15
Pro
Ce
Sa
Dor
Controlador
Pr
o
C
e
S
DMA
a
Drq
me
D
mo
or
ria
I
N
T Pro
Ce
Sa
Dor
INT
Contro
lador
Controlador
memor
ia
A continuacin introducimos las interrupciones. Preferimos que el cdigo de usuario no espere
por la tecla pulsada, sino que pueda continuar su ejecucin si no se ha pulsado ninguna tecla.
Para ello el cdigo de usuario lee la tecla de un buffer. Puede decidir, en el caso de que el
buffer est vaco, esperar o continuar la ejecucin en la confianza de que si se pulsa una tecla
esta ser almacenada hasta su uso.
Cdigo de usuario
Consultar el buffer de teclado
Cdigo de usuario
Interrupcin
(Cada vez que el teclado genera una interrupcin)
Leer cdigo ASCII de la tecla pulsada
Escribir en la memoria (buffer)
Ahora lo que ocurre es que cada vez que se pulsa una tecla, el cdigo de usuario se ve
desplazado del procesador para que el cdigo de interrupcin lea el valor de la tecla del
controlador y lo escriba en memoria.
El cdigo de interrupcin no elabora el valor ledo sino que se limita a trasladarlo desde el
controlador a su localizacin de memoria.
Introduccin de DMA
El mecanismo de DMA intercepta la interrupcin del controlador de teclado, lee la tecla que le
proporciona y la escribe en su localizacin de memoria. En todo el proceso el procesador no se
ve interrumpido y permanece ejecutando cdigo de usuario. Al final de la realizacin, el
controlador DMA puede avisar al procesador de que la tarea ha sido realizada.
15
BIBLIOGRAFA:
Organizacin y arquitectura de computadores. Diseo para optimizar prestaciones
William Stallings
Prentice Hall 4 edicin 1997
Computer, organization and Design. The hardware/software interface
David A. Patterson. John L. Hennessy
Morgan Kaupfman. 1998
15