Está en la página 1de 11

Buses y Perifricos 99/00

Entrada/Salida
Sistema de entrada/salida
Un computador se compone de tres elementos bsicos: el procesador, el sistema de memoria y el sistema
de entrada/salida. El sistema de entrada/salida es la parte del computador ue interact!a con el medio
e"terno. #o $ace a tra%s de una %ariedad de dispositi%os cuyo ob&eti%o bsico es la transmisi'n de datos.
El cometido de un dispositi%o de entrada salida es el de traducci'n de un len(ua&e e"terno y %ariado a un
c'di(o ms pr'"imo al computador ) y a la in%ersa*.
1.- Caractersticas de diseo.
+s, como en el dise-o del procesador el ob&eti%o principal )adems del coste* es el rendimiento, en el
dise-o del sistema de entrada/salida se $an de tener en cuentas otras y tan importantes consideraciones:
Expansin. .ada la %ariedad de entornos en los ue se puede insertar, un computador se
encontrar ante una amplia %ariedad de len(ua&es, lo ue le e"i(ir incorporar nue%os
dispositi%os.
Recuperacin ante problemas. #a comunicaci'n entre el computador y el dispositi%o e"terno
no siempre %a a ser fiable, dependiendo del medio en el ue este se ubiue/ el sistema de
entrada/salida debe ser capa0 de recuperarse ante errores de comunicaci'n y de cualuier otra
clase de carcter impredecible/ lo ue si(nifica ue deben poder restablecerse cone"iones
cortadas, determinar situaciones de error...
En cuanto al rendimiento.
.ado ue su principal ob&eti%o es la transmisi'n de datos, el rendimiento de un dispositi%o se determina
por dos parmetros relacionados con ello.
Latencia: o tiempo de respuesta de un dispositi%o
Potencia: o capacidad del dispositi%o para transmitir datos por unidad de tiempo.
#a %aloraci'n de estos dos parmetros no dependen completamente del dispositi%o, sino tambin de su
interrelaci'n con el computador:
1aracter,sticas del dispositi%o.
2nteracci'n con el procesador.
2nteracci'n con el sistema operati%o.
influyen de una manera u otra en la determinaci'n del rendimiento del sistema de entrada/salida.
3edidas de rendimiento.
Para e%aluar el rendimiento de un dispositi%o se utili0a principalmente la medida de ancho de banda.
Sin embar(o esta medida puede tener %arias interpretaciones:
a* 1uanta cantidad de datos es capa0 de transmitir el dispositi%o por unidad de tiempo.
b* 1uantos accesos es capa0 de admitir el dispositi%o por unidad de tiempo.
En ambos casos se trata de transmisi'n de datos, pero ambas interpretaciones se diferencian en matices. a*
pide al dispositi%o capacidad de transmisi'n de datos, esto es, potencia, mientras ue b* le pide capacidad
de atenci'n, esto es, ba&a latencia. Se(!n el medio en el ue se %aya a emplear el computador y el tipo de
problemas a ue se %aya a enfrentar se fa%orecer una definici'n u otra. #a primera definici'n fa%orece a
problemas en los ue prime la transferencia de (randes flu&os de datos, mientras ue la se(unda definici'n
fa%orece a problemas en los ue sea importante el uso compartido de ese recurso.
4
Buses y Perifricos 99/00
Entrada/Salida
2.- Clasificacin de dispositivos.
Pre%io al dise-o de un sistema de entrada/salida, es importante determinar el tipo de dispositi%os ue se
pre% %an a ser conectados. Esto permitir dar una orientaci'n al sistema $acia determinados entornos o
fa%orecer una disposici'n (enrica. Por e&emplo determinar u tipo de bus es ms con%eniente utili0ar o
en u ni%eles de una &eraru,a de buses ser,a ms con%eniente situar cada dispositi%o. + ello ayudar,a
una ta"onom,a de los di%ersos tipos de dispositi%os de entrada/salida ue nos podemos encontrar.
Por el comportamiento en cuanto a su uso:
- lectura
- escritura
- lectura/escritura
En este caso el punto de referencia es el procesador. #os dispositi%os de lectura son auellos de los
cuales, e"clusi%amente, el procesador puede obtener datos )aparte de&amos el $ec$o de ue el procesador
pueda pro(ramarlos de al(una manera escribiendo en sus re(istros*. #os de escritura, auellos en los ue
el procesador solo puede depositar datos )sal%o posibilidad de leer re(istros de estado*. #os !ltimos son
dispositi%os de almacenamiento o de comunicaci'n principalmente.
Por el tipo de comunicante )siendo uno el procesador*
- .e interacci'n con $umanos
- .e interacci'n con muinas
- .e comunicaci'n
#os primeros se caracteri0an por ser relati%amente lentos en comparaci'n con las %elocidades a ue los
procesadores e&ecutan instrucciones. #os dispositi%os de comunicaci'n pueden alcan0ar %elocidades de
transmisi'n pr'"imas a las del procesador. En cuanto a la interacci'n con muinas $ay una amplia
%ariedad dependiendo de u tipo de muinas sean.
Por la tasa de transferencia de datos.
El dispositi%o se caracteri0a sencillamente por una medida de su capacidad de transmitir datos por unidad
de tiempo. En !ltima instancia esta es la medida ue ms interesa en el momento del dise-o.
3.- Controladores
#os dispositi%os no se conectan directamente al computador sino ue lo $acen a tra%s de una interfaces
llamadas controladores. Esto fa%orece caracter,sticas del sistema de entrada/salida tales como la
e"pansi'n. #os controladores proporcionan, entre otras cosas, una $omo(enei0aci'n de las cone"iones,
adems de ofrecer tambin un traducci'n entre el protocolo empleado por el dispositi%o y el e"i(ido por
el procesador. +l(unas de sus labores son las si(uientes
4. Establecimiento, 1ontrol y 5empori0aci'n de las comunicaciones.
6. 1omunicaci'n con la 1PU.
7. 1omunicaci'n con dispositi%os.
8. +lmacenamiento temporal de datos.
9. .etecci'n de errores.
Elemento muy importante para lo(rar una comunicaci'n efica0 es el protocolo. Un controlador se
enfrenta a dos protocolos diferentes de comunicaci'n, el ue emplea con el procesador y el ue emplea
con el dispositi%o. El 1ontrolador es la interfa0 entre ambos, encar(ndose no solo de comunicarlos sino
tambin de transmisor/e&ecutor/(enerador de 'rdenes e informaci'n de estado sobre el dispositi%o o el
estado de las transacciones . +s, mismo el controlador puede ser%ir al procesador disfra0ando las
particularidades del dispositi%o ante el procesador, a este respecto la posibilidad de almacenamiento
temporal de datos o la e&ecuci'n de 'rdenes procedentes de ste ue el controlador traduce en acciones
sobre el dispositi%o.
6
Buses y Perifricos 99/00
Entrada/Salida
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 se-ales ue se le e"i(en: l,neas de datos, l,neas de
direcciones y l,neas de control :bsicamente de selecci'n, lectura y escritura. Para almacenar datos
intermedios o informaci'n de estado, el controlador posee %arios re(istros, al(unos accesibles desde el
procesador y otros de uso e"clusi%o. Pese a ser un !nico dispositi%o f,sico, el controlador puede acaparar
ms de una direcci'n de entrada salida ue utili0ar el procesador se(!n la tarea ue %aya a reali0ar sobre
el controlador.
Por el lado del dispositi%o el controlador intercambiar con ste las l,neas ue sean necesario se(!n la
clase. E"i(irn (eneralmente un con&unto de l,neas de datos para transmitir la informaci'n y un con&unto
de l,neas de control para re(ular el protocolo de esa transacci'n. Por el n!mero de l,neas de datos se
pueden distin(uir dos tipos de controladores:
- Comunicacin serie: E"iste una !nica l,nea de transmisi'n y la informaci'n la atra%iesa bit
a bit. Es una interfa0 de ba&a %elocidad y ba&o coste ue puede ser adecuada para
dispositi%os lentos.
- Comunicacin paralela: El pauete de datos se en%,a en con&unto disponiendo de una l,nea
por cada bit a transmitir. Proporciona mayor %elocidad de transmisi'n y tambin menor
comple&idad a un mayor coste.
Comunicacin CPU-Controlador
El procesador se comunica con el controlador para establecer contacto a su tra%s con el dispositi%o. 1on
su intercesi'n, el procesador en%iar al dispositi%o 'rdenes de control y recibir de l informaci'n de
estado, adems de datos. Por lo tanto los tipos de transacciones son estas cuatro:
- 1ontrol
- Estado
- #ectura
- Escritura
#as transacciones de control son auellas en las ue el procesador en%,a 'rdenes de actuaci'n al
controlador. +l(unas de estas 'rdenes modificarn el comportamiento del controlador, y otras son
reen%iadas, adecuadamente traducidas, al dispositi%o para pro(ramar su conducta. El dispositi%o y el
propio controlador pueden responder con informaci'n de estado ue dar a conocer su situaci'n al
procesador.
4.- Instrucciones de entrada/salida
.esde dentro del procesador la asociaci'n controlador:dispositi%o de entrada salida es %ista como un
con&unto de direcciones de entrada/salida. El procesador en%,a comandos y datos a tales direcciones y
recibe informaci'n de estado y tambin datos procedentes de ellas. Estas direcciones componen lo ue se
denomina el espacio de direcciones de entrada/ salida del procesador.
Es una cuesti'n de dise-o el decidir c'mo se %a a or(ani0ar este con&unto de direcciones en relaci'n con
el espacio de direcciones de memoria. Se(!n esto $ay dos opciones para el espacio de direcciones de
entrada/salida
- Mapeado en memoria: E"iste un !nico con&unto de direcciones en el sistema computador,
una parte de este con&unto de direcciones pertenece al sistema de entrada/salida, y el resto
son direcciones de memoria.
En el circuito esto si(nifica ue !nicamente las l,neas de direcci'n son utili0adas para
7
Buses y Perifricos 99/00
Entrada/Salida
seleccionar a los controladores conectados al bus. .entro, el procesador no utili0a
instrucciones especiales para distin(uir entre un acceso a memoria y un acceso a entrada
salida.
- Mapeado en e/s: Esto si(nifica ue e"isten dos espacios de direcciones, el de memoria y el
de entrada/salida. #o ue distin(ue a una direcci'n situada en el bus de pertenecer a uno u
otro espacio de direcciones es una l,nea de control )2;/3 en <0<=*. Esto uiere decir ue
adems del con&unto de l,neas de direcci'n, los controladores deben comprobar el estado de
esta otra l,nea antes de sentirse aludidos.
+$ora e"isten instrucciones espec,ficas para memoria o para entrada/salida. Estas !ltimas
son las ue acti%ar,an auella l,nea de control cada %e0 ue son e&ecutadas.
5.- Esqueas de counicacin !rocesador-entrada/salida.
>a estamos en la acci'n misma. El procesador : un con&unto de instrucciones e&ecutndose en l: tiene
ue atra%esar tres fases para cumplir una transacci'n de entrada/salida. #a primera es la pro(ramaci'n del
controlador y del dispositi%o para prepararlos para la transacci'n. El controlador puede ser pro(ramado
para el tipo de datos ue %a trase(ar o la cantidad de ellos. El dispositi%o para comportarse de una de
%arias maneras posibles de $acerlo en la captura o emisi'n de informaci'n. #a se(unda fase es la
transmisi'n de datos ue puede conlle%ar una serie de comprobaciones del estado del controlador y/o
dispositi%o. Por !ltimo podr ser necesaria una finali0aci'n con un nue%o acceso de control.
4. Pro(ramaci'n
6. transmisi'n/comprobaci'n de estado
7. finali0aci'n.
?o es necesario puntuali0ar el (rado de implicaci'n ue tiene el procesador en una transacci'n de entrada
salida. @stas, sin embar(o, consisten (eneralmente en un trasie(o de datos entre un dispositi%o y el
sistema de memoria. Posteriormente, el procesador acceder a memoria en busca de esos datos si le son
necesarios. Aueremos con esto demostrar ue el papel del procesador en una transacci'n de entrada salida
es secundario. Sin embar(o necesario porue es el elemento inteli(ente ue pone en marc$a, controla y da
por finali0ado el proceso. Si se consi(uiera reducir la rele%ancia de la actuaci'n del procesador en tales
transacciones, conse(uir,amos me&orar el rendimiento del sistema, ya ue ste dispondr,a de ese tiempo
para e&ecutar instrucciones. Este es el ob&eti%o de los diferentes esuemas de comunicaci'n entre el
procesador y el sistema de entrada/salida.
Esquema programado. Este es el esuema bsico ue si(ue las tres fases descritas al pi de la letra. El
procesador debe dedicarse por entero a cada transacci'n de entrada salida. .urante la fase de
transmisi'n, el procesador entra en un bucle de lecturas y escrituras entre dispositi%o y memoria
en el cual su !nica funci'n es la de trase(ador. Este es un tiempo de computaci'n considerado no
!til porue no se reali0a nin(!n tipo de transformaci'n sobre los datos.
Uso de interrupciones. #a utilidad de las interrupciones es principalmente ue liberan al procesador de
una espera in!til, apro%ec$ando ese tiempo en reali0ar una computaci'n ms pro%ec$osa, si la
$ay. En relaci'n con los sistema de entrada/salida estas esperas se producen principalmente
debido a la menor %elocidad de respuesta de los dispositi%os en comparaci'n con la del
procesador ) en trminos de e&ecuci'n de instrucciones*. En el esuema anterior el procesador
deber,a en(olfarse en un bucle comprobando constantemente el estado del dispositi%o $asta ue
este culmine su actuaci'n, para pasar a la si(uiente transmisi'n. +$ora el procesador indica al
dispositi%o ue le a%ise cuando tal suceso ocurra y no entra nunca en auel bucle, sino ue se
ocupa de la e&ecuci'n de otro con&unto de instrucciones no relacionadas con el tema. 1uando el
dispositi%o acti%a la se-al, el procesador %uel%e a atenderle y prepararlo para una nue%a
transacci'n.
#a primera consideraci'n a tener en cuenta es ue los controladores deben incorporar esta
capacidad de interrumpir al procesador. Por tanto es otra de las posibles funcionalidades de un
controlador. En se(undo lu(ar no todo tipo de transacciones pueden ser adecuadas para este
esuema. 1on esto uirese decir ue la asunci'n de un esuema de interrupciones no implica el
8
Buses y Perifricos 99/00
Entrada/Salida
abandono del esuema pro(ramado. ;bsr%ese ue en ambos casos las fases por las ue pasa
una transmisi'n de entrada salida son las mismas, pro(ramaci'n, transmisi'n/comprobaci'n de
estado, finali0aci'n. #a diferencia estar,a en la fase de transmisi'n, durante la cual el procesador
no espera acti%amente, interro(ando al controlador, sino ue espera pasi%amente al ue el
controlador le a%ise. Una %e0 lo $a $ec$o la tarea del procesador se(uir siendo reco(er el dato
ue se le ofrece y depositarlo en la correspondiente celda de memoria o %ice%ersa. Por lo tanto
este esuema es ms bien un complemento del anterior ms ue una alternati%a.
2mplantaci'n.
El esuema de interrupciones e"i(e un apoyo en el $ardBare. 5anto en el lado del procesador
como en el lado de los dispositi%os. Estos deben tener capacidad para en%iar una se-al al
procesador y auel debe tenerla para recibir esa se-al y responder al dispositi%o ue la ori(in'.
#a respuesta del procesador es la e&ecuci'n de una serie de instrucciones )Cutina de atenci'n a la
interrupci'n* encar(adas de atender a las tareas relacionadas con el dispositi%o. Por cada uno de
los dispositi%os ue pueden interrumpir al procesador debe e"istir un con&unto separados de
instrucciones )una rutina de atenci'n diferente*. Una de las tareas del procesador al responder a
una interrupci'n es identificar el dispositi%o ue la ori(in'. Se $an planteado dos esuemas:
- Mtodo vectorizado: es, de al(una manera, el propio dispositi%o el ue se
identifica ante el procesador. Deneralmente lo $ace en%indole un ,ndice dentro de
una lista de rutinas de atenci'n )%ector de interrupciones*, ue apunta a la rutina
ue sir%e para atender a este dispositi%o.
- Mtodo de consulta: el procesador determina, pre(untando a cada uno de los
dispositi%os, cual es el ue (ener' la interrupci'n.
Puede ocurrir ue %arios controladores (eneren al mismo tiempo una interrupci'n, entonces el
procesador se %e obli(ado a seleccionar uno de ellos. +l(unos esuemas ue resuel%en este
problema son:
- Mltiples l!neas de interrupcin: por lo tanto cada controlador est plenamente
identificado y priori0ado por la l,nea por la ue a%isan al procesador.
- Consulta so"t#are: como todos los dispositi%os utili0an la misma l,nea de
interrupci'n, el procesador, al recibir un a%iso debe acceder dispositi%o por
dispositi%o inuiriendo cual $a sido el autor de la se-al, el 'rden en ue reali0a las
consultas establece la prioridad.
- Consulta $ard#are: #os propios dispositi%os se auto seleccionan conforme a un
esuema de prioridades ya pre%isto )e&emplo daisy c$ain*
- %rbitra&e de bus: 2(ualmente son los propios dispositi%os los ue se autorre(ulan,
en este caso compitiendo por el acceso al bus para proporcionarle al procesador el
,ndice en el %ector de interrupciones.
Esquemas de interrupcin'
1uando ueremos ue un controlador ten(a capacidad de disparar una interrupci'n en el procesador, los
elementos de ue debemos disponer son los si(uientes
9
Procesador
2nt
1ontrolador
2ntr
ru
ti
n
a
Buses y Perifricos 99/00
Entrada/Salida
El procesador debe tener una entrada de interrupci'n, consistente en una entrada ue cuando se acti%a el
contador de pro(rama salta a una direcci'n determinada de memoria y comien0a a e&ecutar c'di(o.
El controlador debe tener una salida de petici'n de interrupci'n ue se acti%ar cuando el controlador est
dispuesto a interactuar con el procesador.
#a rutina de atenci'n a la interrupci'n es la ue se debe e&ecutar cuando se acti%a la interrupci'n y debe
estar situada en la direcci'n asociada con la interrupci'n.
EAu pasa cuando $ay ms de un controlador con capacidad para interrumpirF Pues ue $ay ms de una
rutina esperando ser disparada cuando el controlador correspondiente (enere su interrupci'n. Por lo tanto
el procesador debe tener un medio para identificar al controlador ue (ener' la interrupci'n.
Una forma de resol%erlo es teniendo ms de una entrada de interrupci'n.
?aturalmente este esuema est limitado al n!mero de entradas de interrupci'n de ue dispon(a el
procesador. Un esuema ms (enrico intentar,a ue los dispositi%os se identificaran a s, mismos cuando
(eneran la interrupci'n )%ectorial* o en su defecto ue el procesador procediera, despus de $aber
recibido la interrupci'n a identificar al dispositi%o ue la (ener' )consulta*. +s, el n!mero de dispositi%os
ue pueden in%ocar una acci'n en el procesador no se %e limitado por el $ardBare.
Esuema %ectorial
En el esuema %ectorial el dispositi%o se identifica a s, mismo. El proceso de acti%ar una interrupci'n
ocurre en dos fases: (enerar la interrupci'n, reconocimiento de la interrupci'n
Una %e0 (enerada la inerrupci'n, el procesador inicia un ciclo de reconocimiento. .urante este ciclo el
dispositi%o con mayor prioridad de los ue $an pedido simultneamente una interrupci'n se identifica
ante el procesador y este utili0a esta informaci'n para in%ocar a la rutina correspondiente.
=
PC;1ES+.;C
2?54
2?56
2?57
4
6
7
2
6
2
4
2
7
+cG
PR(CE )%*(R
+,-
4
6
7
2
6
2
7
2
4
Buses y Perifricos 99/00
Entrada/Salida
El concepto de prioridad en cualuier esuema de interrupci'n es muy importante, en primer lu(ar porue
$ay ue tomar una decisi'n cuando %arios dispositi%os reali0an una petici'n simultneamente y en
se(undo lu(ar porue $ay dispositi%os ue reuieren una atenci'n inmediata mientras ue otros pueden
%erse poster(ados sin per&uicio rele%ante.
Una forma de resol%er este problema es el daisy c$ain. .urante el ciclo de reconocimiento el procesador
(enera el reconocimiento y el primer dispositi%o ue lo detecte es el ue se identifica colocando su
identificador en el bus ue el procesador leera a continuaci'n.
;tro esuema es el utili0ado por el <0<= en el ue la tarea de identificar al dispositi%o ue (ener' la
interrupci'n es reali0ada por un controlador.
El esuema por consulta obli(a al procesador, durante el ciclo de reconocimiento a e"plorar uno por uno
los dispositi%os $asta dar con el ue (ener' la interrupci'n. Para ello %a leyendo uno por uno el estado de
cada dispositi%o en el ue fi(urar si el dispositi%o $a solicitado la interrupci'n
1uando recibe la petici'n de interrupci'n, el procesador acti%a una rutina de atenci'n (enrica ue se
encar(a de pre(untar a cada controlador su estado. 1omo los e"plorar secuencialemente el controlador
ue ten(a la direcci'n ms ba&a ser el de mayor prioridad. 1uando $aya detectado el controlador de
mayor prioridad de los ue $ayan solicitado la interrupci'n in%ocar a su rutina correspondiente.
%cceso directo a memoria' *M%' Este es el tercer esuema ue i(ualmente es complementario y no
anta(onista con los mencionados antes. 1onsiderando ue el papel de procesador en una
H
Procesador BUS
+cG
2?5
4 6 7
Bus
PR(CE
)%*(R
2?5
4
6
7
1ontro
lador
de
interru
pcione
s
Procesador BUS
2?5
2nt
acG
4 6 7
4
6
7
Buses y Perifricos 99/00
Entrada/Salida
transacci'n de entrada/salida es meramente de trasladador de datos, el esuema .3+ propone
ue e"ista otro controlador con cierto (rado de inteli(encia ue realice estas labores en lu(ar del
procesador. Este esuema por lo tanto e"i(e ue e"ista un controlador ue pueda leer datos de
memoria o un dispositi%o y posteriormente escribirlos en un dispositi%o o memoria sin la ayuda
del procesador. .e manera ue para un procesador una transacci'n e/s consistir,a en pro(ramar
tal controlador de .3+ para indicarle:
- .'nde estn los datos de ori(en.
- .'nde estn los datos de destino.
- 1unta cantidad de datos es.
y posteriormente liberarle para ue actuase por su cuenta. +l final de la transacci'n el
controlador de .3+ a%isar,a al procesador, por medio de una interrupci'n, y este comprobar,a
ue la transacci'n completa se $a reali0ado satisfactoriamente, frotndose la manos. Una de las
funcionalidades ue $a de tener este controlador, entonces, es la de tener capacidad de
interrumpir al procesador para ue ste no se ten(a ue %er obli(ado a uedarse esperando en un
bucle de consulta al controlador, lo ue eliminar,a toda la operati%idad del asunto.
+cceso al bus.
Un controlador de .3+ es un maestro de bus. Auirese decir ue debe tener capacidad de
iniciar una transacci'n. Para ello $a de robarle el bus al procesador, impidindole su uso a este
durante el cumplimiento de su labor. Esto puede per&udicar al procesador si el n!mero de
transacciones es muy alto por lo ue dic$os controladores operan si(uiendo una pol,tica de robo
de ciclos. 1onsiste esta pol,tica en esperar a ue el procesador $aya liberado el bus, al final de
un ciclo de acceso, obtener el bus entonces, reali0ar una !nica transacci'n y de%ol%erlo, para
esperar a la si(uiente oportunidad. 3ientras el procesador no usa el bus, el controlador de .3+
lo apro%ec$a para reali0ar sus transacciones, pero nunca le disputar,a el bus al procesador cuando
este tratase de utili0arlo.
<
Pro
1e
Sa
.or
1ontrolador
Buses y Perifricos 99/00
Entrada/Salida
E&emplo de e%oluci'n del sistema de entrada/salida a partir de un teclado
Un teclado es una matri0 de l,neas elctricas. #a pulsaci'n de una tecla comunica una fila con una
columna. #a identificaci'n de la fila y la columna correspondientes nos proporciona un c'di(o de tecla
pulsada. + continuaci'n el procesador debe traducir ese c'di(o a un c'di(o reconocible, sea +S122,
)consultando unas tablas ue asocian c'di(os de tecla pulsada con c'di(o +S122*. #a interfa0 de un
procesador con un dispositi%o de este tipo es en el e&emplo un puerto de 8 l,neas de salida y otro puerto de
8 l,neas de entrada. > las tareas ue tiene ue reali0ar el procesador son, suponiendo ue en medio de el
c'di(o de usuario ue est e&ecutando necesite leer un carcter de teclado
Estructura de un teclado
5V
5V
1 0 1 1
1
0
1
1
output
input

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 si(uiente paso es facilitarle la tarea al procesador. Para ello trasladamos la acci'n de e"plorar el teclado
a un dispositi%o fuera del procesador, el controlador. 1ada %e0 ue lo desee el procesador se limitar a
leer del controlador la tecla pulsada. Si no $ay tecla pulsada )c'di(o II* el procesador esperar $asta ue
se pulse una )lo ue implica lecturas sucesi%as de la salida del controlador*. #a interfa0 del procesador
con el controlador se $a simplificado, !nicamente oc$o bits de entrada. +$ora el c'di(o 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 $acer la con%ersi'n, aunue esto le
resta fle"ibilidad al procesador
Cdigo de usuario
Leer del controlador cdigo ascii (esperar)
Cdigo de usuario
+ continuaci'n introducimos las interrupciones. Preferimos ue el c'di(o de usuario no espere por la
tecla pulsada, sino ue pueda continuar su e&ecuci'n si no se $a pulsado nin(una tecla. Para ello el c'di(o
de ususario lee la tecla de un buffer. Puede decidir, en el caso de ue el buffer est %ac,o, esperar o
continuar la e&ecuci'n en la confian0a de ue si se pulsa una tecla esta ser almacenada $asta su uso.
9
Pro
1e
Sa
.or
Buses y Perifricos 99/00
Entrada/Salida
Cdigo de usuario
Consultar el buffer de teclado
Cdigo de usuario
+nterrupcin
(Cada vez que el teclado genera una interrupcin)
Leer cdigo ascii de la tecla pulsada
Escribir en la memoria (buffer)
+$ora lo ue ocurre es ue cada %e0 ue se pulsa una tecla, el c'di(o de usuario se %e despla0ado del
procesador para ue el c'di(o de interrupci'n lea el %alor de la tecla del controlador y lo escriba en
memoria.
El c'di(o de interrupci'n no elabora el %alor le,do sino ue se limita a trasladarlo desde el controlador a
su locali0aci'n de memoria.
2ntroducci'n de .3+
El mecanismo de .3+ intercepta la interrupci'n del controlador de teclado, lee la tecla ue le
proporciona y la escribe en su locali0aci'n de memoria. En todo el proceso el procesador no se %e
interrrumpido y permanece e&ecutando c'di(o de usuario. +l final de la reali0aci'n, el controlador .3+
puede a%isar al procesador de ue la tarea $a sido reali0ada.
40
Pro
1e
Sa
.or
2?5
1ontrolador
memor
ia
Pro
1e
Sa
.or
2?5
1ontrolador
memor
ia
.3+ .r
Buses y Perifricos 99/00
Entrada/Salida
B2B#2;DC+IJ+:
;r(ani0aci'n y aruitectura de computadores. .ise-o para optimi0ar prestaciones
Killiam Stallin(s
Prentice Lall 8M edici'n 499H
1omputer, or(ani0ation and .esi(n. 5$e $ardBare/softBare interface
.a%id +. Patterson. No$n #. Lennessy
3or(an Oaupfman. 499<
44

También podría gustarte