Anda di halaman 1dari 33

UNSA-EPIS

Arquitectura de Computadoras

CUARTO CAPITULO CHIPS DE SOPORTE DEL MICROPROCESADOR 8086 4.1 EL INTERFAZ DE PERIFRICOS 8255. (PPI) Dispositivo de E/S general, funciona como puerto para los perifricos Es programable a 3 modos de operacin. Capaz de controlar 24 lneas con diferentes configuraciones (entrada/salida). 24 lneas de entradas/salidas programables divididas en 3 puertos de 8 lneas cada uno (Puertos A, B y C), adems consta de un registro interno de 8 bits para configuracin. Dos grupos internos: el grupo A, formado por el puerto A y los 4 bits ms significativos del puerto C; y el grupo B, constituido por el puerto B junto a los 4 bits menos significativos del puerto C. Compatible con el bus de conexin ISA, a una velocidad de 8 MHz. Tecnologa TTL. Bajo consumo (2.5 mA DC) en todas las patas I/O. D0..D7: Bus de datos bidireccional de 3 estados. Borra registro de control y puertos (A, B RESET: y C) son colocados en modo entrada. -RD: Para leer informacin de estado o datos -WR: Para enviar palabras de control o datos Lneas de direccin: seleccionan un A0..A1: puerto o registro de control. (ver tabla) PA0..PA7: Puerto A: puerto de E/S de 8 bits. PB0..PB7: Puerto B: puerto de E/S de 8 bits. PC0..PC7: Puerto C: puerto de E/S de 8 bits.
A1 A0 SELECCIN 0 0 1 1 0 1 0 1 PUERTO A PUERTO B PUERTO C CONTROL

4.1.1 Diagrama de Bloques El 8255 soporta 3 modos de operacin: el modo 0 (E/S bsica), el modo 1 (E y S con seales de control) y el modo 2 (bus bidireccional de comunicaciones). Si se da un Reset, los 3 puertos quedan configurados en modo entrada, con las 24 lneas puestas a "1". Los tres puertos pueden ser accedidos en cualquier momento a travs de la direccin E/S que les corresponde

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Figura 4.1 Diagrama de Bloques del 8255 4.1.2 Programacion del PPI Se realiza escribiendo en el registro de control una CW.

Figura 4.2 Programacin del PPI

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

4.1.1 Modos de Operacin del 8255 Simples funciones de E/S para los 2 puertos de 8 bits y los 2 puertos de 4 bits; los datos son ledos y escritos sin ningn tipo de control adicional. Los puertos pueden MODO 0: ser configurados de entrada (sin latch) o salida (los datos permanecen memorizados en un latch). Este modo es el strobed input/output (E/S a travs de un protocolo de seales). Existen dos grupos (A y B) formados por los puertos A y B ms el puerto C, que es repartido a la mitad entre ambos grupos para gestionar las seales de control. Con MODO 1: este modo es factible conectar dos 8255 entre s para realizar transferencias de datos en paralelo a una velocidad considerable, con posibilidad de generar interrupciones a la CPU en el momento en que los datos son recibidos o hay que enviar uno nuevo En este modo se constituye un bus bidireccional de 8 bits, por el que los datos MODO 2: pueden ir en un sentido o en otro, siendo el flujo regulado de nuevo por seales de control a travs del puerto C. Este modo slo puede operar en el Grupo A. a) Modo 0 No existen seales de dilogo entre la PC y los perifricos

Figura 4.3 Ejemplo de conexin

Figura 4.4 funcionamiento


Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Figura 4.5 Ejemplo de uso en la PC

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

b) Modo 1: Puertos A y B dialogan con los perifricos, activando lneas del puerto C, como seales de control: b.1) Entrada habilitada

Figura 4.6 Entrada habilitada (modo 1) b.2) Salida habilitada

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Figura 4.7 Salida habilitada (modo 1) c) Modo 2: Solo grupo A, recibe y transmite por ocho terminales, alta velocidad

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Figura 4.8 Entrada/salida habilitada (modo 2)

Transmisin 1. Prueba /OBF 2. Si lleno se enva al registro de salida (OUT) 3. Si circuito externo ve /OBF=0 entonces/ACK 4. Con /ACK toman datos del registro de salida 5. /ACK desactiva /OBF 6. Se habilitan buffer tri estado

Recepcin 1. Prueba bit IBF 2. Si IBF=1 ingresar datos (IN) 3. Interface externa enva datos con /STB 4. Al activar /STB entonces IBF=1 5. Con IN se desactiva IBF y datos se cargan en AL (acumulador)

4.1.4 El 8255 en el PC. Los puertos A, B y C se acceden a travs de los puertos de E/S 60h, 61h y 62h; la palabra de control se enva por el puerto 63h: la BIOS del PC programa el 8255 con la palabra de control 10011001b, que configura todos los puertos en modo 0, con A y C de entrada y B de salida. El 8255 es empleado para recibir datos del teclado (puerto A), para leer la configuracin del ordenador en los conmutadores de la placa base (puerto C) y para controlar el altavoz (puerto B).

4.2

EL TEMPORIZADOR 8253/8254. temporizador que puede ser empleado como reloj de tiempo real, contador de sucesos, generador de ritmo programable, generador de onda cuadrada, etc. posee 3 contadores independientes, programables de 6 formas diferentes. De 16 bits cada uno. Frecuencias desde DC hasta 10MHz Contaje en binario o BCD Registro de control de 8 bits

Mgter. Lucy Delgado Barra

UNSA-EPIS IS

Arquitectu de Computado ura oras

7..D0: D7 CL 0: LK OU 0: UT GA 0: ATE CL 1: LK OU 1: UT GA 1: ATE CL 2: LK OU 2: UT GA 2: ATE A0 0..A1: -CS S: -W WR: -RD D:

BU de datos bidireccion de 3 esta US nal ados. CL LOCK 0, en ntrada de rel al contad 0. loj dor Sal del con lida ntador 0. Puerta de entrada al conta ador 0. CL LOCK 1, en ntrada de rel al contad 1. loj dor Sal del con lida ntador 1. Puerta de entrada al conta ador 1. CL LOCK 2, en ntrada de rel al contad 2. loj dor Sal del con lida ntador 2. Puerta de entrada al conta ador 2. Ln neas de dire eccin para seleccionar uno de r los tres cont s tadores o el registro de la pal labra de con ntrol. Ha abilita la com municacin con la CPU n U. Per rmite al 825 aceptar d 54 datos de la C CPU. Per rmite al 825 enviar da a la CP 54 atos PU.

4.2.2

Diagrama de Bloques s

Figura 4.9 Diagrama d bloques d PTI F D de del fer de s, a on d El buff del bus de datos, d 8 bits y tres estados comunica el 8254 co la CPU. La lgica de lectura y escritura acepta en a ntradas del b y genera seales de control pa las parte funcional bus a e ara es les del 825 Las lneas A0..A2 s 54. seleccionan uno de los tres conta n s adores o el registro de la palabra de r control, para pode leerlos o escribirlos El registr de la pa , er s. ro alabra de control es seleccionad do cuando A0=A1=1, este regist slo pue ser esc , tro ede crito (se pue obtener informaci de estad ede r n do, e adelante, co el coman read-bac on ndo ck como se ver ms a

Mgter. Lucy Delgado Barra y a

UNSA-EPIS IS

Arquitectu de Computado ura oras

4.2.3

Programac cin

La prog gramacin se realiza e s escribiendo sobre el registro de co ontrol. Para programar un contad a r dor del 8254 hay que enviar primero una palabra de con e ntrol y, desp pus, un val de cuent inicial. Los lor ta L ores ccionan con las lneas A0 y A1; e valor A0=A1=1 sele n el ecciona la e escritura de la contado se selec palabra de control (en la qu se ident ue tifica el contador imp plicado). Po tanto, el 8254 ocu or l upa mente 4 dir recciones de E/S conse e ecutivas liga adas a los c contadores 0 1, 2 y al registro de la 0, normalm palabra de control Para envi la cuent inicial se utiliza sim l. iar ta e mplemente el puerto E ligado al E/S or ate. ato alabra de con ntrol es: contado que se tra El forma de la pa

Figura 4.10 Program macin del PTI P El 8254 es muy fle 4 exible a la h hora de ser programad Basta co tener en c do. on cuenta dos cosas: por un u lado, es scribir siem mpre primero la palabra de control antes de enviar la cu o a l, e uenta inicia al contado al or. Por otro dicha cu o, uenta inicial debe segu exactame l uir ente el form mato selecc cionado en la palabra de control (enviar sl byte bajo enviar sl byte alto o bien en lo o, lo o, nviar ambos consecutiv s vamente). U Un valor de cue inicial p enta puede ser al lmacenado en un conta ador en cual lquier momento nuevo v 4.2.4 M Modos De Operacin d 8254 O del MO ODO 0: Int terrupt On Terminal Count (Int terrupcin al final de la cuenta) Para cont e ). tar suce esos. Tras escribir la palabra d control, OUT est inicialme a de , ente en estado bajo, y perm manecer as hasta que el contad alcance el cero: en dor ntonces se pone a 1 y no volver a p baja hasta que se escriba u nueva c ar e una cuenta o una nueva pal labra de con ntrol.

Mgter. Lucy Delgado Barra y a

UNSA-EPIS IS

Arquitectu de Computado ura oras

Figur 4.11 Mod 0 del PTI ra do I MO ODO 1: Ha ardware R Retriggerable One-Sho (Monoestable prog ot gramable). OUT se . er inic cialmente al y bajar en el pu lta ulso de relo que sigu al flanco de subid de GAT oj ue o da TE, perm maneciendo en bajo hasta que el contado alcance el cero. E o or Entonces, O OUT sube y perm manece activo hasta e pulso del reloj que siga al pr el l ximo flanc de subid de GAT co da TE.

Figur 4.12 Mod 1 del PTI ra do I MO ODO 2: Ra Generat (Gener ate tor rador de ri itmo). El c contador fu unciona com un divis mo sor por N. Es em mpleado tp picamente p para las in nterrupcione de los relojes de tiempo real. es nicialmente en alto. Cu uando el co ontador se decremente hasta el v e valor 1, OU UT OUT estar in ar ante un pul del relo tras ello volver a subir y el contador se lso oj; o, l pasa a estado bajo dura reca argar con l cuenta ini la icial, repiti ndose el pr roceso. Este modo es, por tanto, p e p peridico, y la mism secuenc se repite indefinida ma cia e amente. Par una cuen inicial N la secuen ra nta N, ncia se repi ite cada N ciclos d reloj (CL a de LK).

Figur 4.13 Mod 2 del PTI ra do I


Mgter. Lucy Delgado Barra y a

UNSA-EPIS

Arquitectura de Computadoras

MODO 3: Square Wave Mode (Generador de onda cuadrada). Este modo es empleado normalmente para la generacin de una seal de onda cuadrada. Este modo es similar al 2, con la diferencia de que la salida OUT conmuta al transcurrir la mitad de la cuenta: inicialmente est en alto, pero al pasar la mitad de la cuenta pasa a estado bajo hasta que la cuenta finaliza. Este modo es tambin peridico: la onda resultante para una cuenta inicial N tiene un perodo de N ciclos.

Figura 4.14 Modo 3 del PTI MODO 4: Software Triggered Mode (Pulso Strobe iniciado por software). OUT est en alto al principio; cuando la cuenta inicial expira, OUT baja durante un pulso de reloj y luego vuelve a subir. El proceso se inicia cuando se escribe la cuenta inicial.

Figura 4.15 Modo 4 del PTI MODO 5: Hardware Triggered Strobe (Pulso Strobe iniciado por hardware). OUT estar en alto al principio: con el flanco de subida de la seal GATE, el contador comienza a decrementar la cuenta. Cuando llega a cero, OUT baja durante un pulso CLK y luego vuelve a subir.

Figura 4.16 Modo 5 del PTI


Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

4.2.4

El 8254 en el Ordenador.

Todos los contadores van conectados a un reloj que oscila a una frecuencia de 1.193.180 ciclos por segundo (casi 1,2 Mhz). La direccin base en el espacio de E/S del ordenador es la 40h. Por tanto, los tres contadores son accedidos, respectivamente, a travs de los puertos 40h, 41h y 42h; la palabra de control se enva al puerto 43h. La salida del contador 0 est conectada a IRQ 0 este contador est programado por defecto con el valor cero (equivalente a 65536), por lo que la cadencia de los pulsos es de 1.193.180/65.536 = 18,2 veces por segundo, valor que determina la precisin del reloj del sistema. La salida del contador 1 controla el refresco de memoria. El contador 2 puede estar conectado al altavoz del ordenador para producir sonido; alternativamente puede emplearse para temporizar. Es el nico contador que queda realmente libre para el usuario, para producir sonido.

Figura 4.17 El PTI en la PC 4.3 GENERADOR DE PULSOS DE RELOJ 8284 Lgica encargada de generar las seales de sincronizacin para todo el sistema. El generador de pulsos de reloj 8284, junto con el cristal oscilador externo, es un chip diseado especficamente para estas tareas. Un chip con 18 terminales que se utiliza para generar los pulsos del 8086 y sus perifricos. Los pulsos de reloj determinan la velocidad del sistema, la velocidad mxima es una frecuencia de reloj de 5 MHz, es decir, 200 nanosegundos por ciclo, aunque algunos chips particulares funcionan a 8 MHz. El generador de pulsos 8284 necesita un cristal oscilador, o una seal lgica externa como fuente de frecuencia. La opcin se especifica conectando el terminal F/C o bien a tierra o a la fuente de alimentacin. La fuente de frecuencia debe proporcionar una frecuencia triple de la seal resultante del 8284. Poniendo un cristal oscilador u otro, la frecuencia obtenida puede variar entre 5 MHz hasta casi los 8 MHz. Para conseguir un rendimiento ptimo de los procesadores, los pulsos de reloj generados por el 8284 se mantienen a tensin alta durante un 33 por 100 del perodo. Normalmente salen tres seales del 8284 hacia el procesador, CLK (seal de reloj), RESET y READY. Las dos ltimas seales estn sincronizadas con CLK. La seal RESET reinicializa los
Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

valores de la computadora. La seal READY sincroniza el procesador con los dispositivos externos ms lentos, esta seal va desde el dispositivo externo al procesador, pasando a travs del generador de pulsos de reloj. Cuando el procesador quiere acceder a un dispositivo que no est preparado para la transferencia, el dispositivo enva un 0 por la lnea READY. Cuando el procesador recibe esta seal, entra en un ciclo de espera hasta que aparece un 1 por dicha lnea. Slo entonces contina el programa. El 8284 genera otra seal que es PCLK (reloj perifrico), que funciona a la mitad de la frecuencia de la seal CLK, con un ciclo de trabajo del 50 por 100. Est previsto para sincronizar aquella lgica que requiera esta forma de temporizacin.

Figura 4.19 Generador de reloj 8284 Conectado al 8086

Figura 4.20 Estructura interna del generador de reloj 8284

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

4.4 EL CONTROLADOR DE INTERRUPCIONES 8259. Los ordenadores se comunican con el exterior por medio de los dispositivos de entrada y salida, estos dispositivos son lentos en comparacin con la elevada velocidad del microprocesador. Una manera simple de gestionar los dispositivos de E/S consiste en comprobar continuamente si alguno de ellos tiene un dato disponible o lo est solicitando, sin embargo, esto es una importante prdida de tiempo para el microprocesador, que mientras tanto podra estar haciendo otras cosas. En una mquina multitarea y/o multiusuario, los perifricos pueden interrumpir al microprocesador para solicitarle una operacin de entrada o salida en el momento necesario, estando la CPU liberada de la misin de comprobar cundo llega ese momento. Cuando se produce la interrupcin, el microprocesador ejecuta la correspondiente rutina de servicio (programa) y luego contina con sus tareas. Por ejemplo, en las operaciones de disco, cuando acaba la transferencia de datos se produce una interrupcin de aviso y se corre una rutina de la BIOS en el segmento de memoria 40h. Las interrupciones aaden complejidad al diseo del hardware: es necesario jerarquizarlas de alguna manera para decidir cul se atiende en el caso de que se produzcan dos simultneamente. Tambin es importante el control de prioridad para el caso de que se produzca una interrupcin mientras se est procesando otra: slo se la atender si es de mayor prioridad. En este punto slo consideraremos las interrupciones hardware, no las de software ni las excepciones del procesador. 4.2.2 Descripcin del integrado 8259 Puede controlar hasta 8 interrupciones vectorizadas. Se le pueden conectar en cascada un mximo de 8 chips 8259 adicionales, lo que permite gestionar sistemas con hasta 64 interrupciones -CS: -WR: -RD: Habilita la comunicacin con la CPU. Permite al 8259 aceptar comandos de la CPU. Permite al 8259 dejar informacin en bus de datos. Bus de datos bidireccional, para transmitir informacin D7..D0: de control/estado y el nmero de vector de interrupcin. Lneas de cascada, como salida en el 8259 maestro y CAS0..CAS2: como entrada en los 8259 esclavos, si hay varios 8259 interconectados, constituyen un bus local. Pin de doble funcin: en el buffered mode del 8259 actuar como -EN, para habilitar los buffers del bus; en -SP/-EN: el modo normal indicar si el 8259 es maestro o esclavo (-SP). Conectado a la patilla INT de la CPU para producir la INT: interrupcin cuando llegue el momento. Lneas asncronas de peticin de interrupcin. Una peticin de interrupcin se ejecuta manteniendo IR en alto hasta que recibe el reconocimiento (modo por IR0..IR7: flancos) o simplemente poniendo en alto la lnea IR (modo por niveles). Lnea de reconocimiento de interrupcin, se fuerza al -INTA: 8259 a depositar en el bus la informacin del vector de interrupcin. INTA es independiente de -CS.

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

A0:

En conjuncin con -CS, -WR y -RD es empleada para enviar las palabras de comando al 8259 y para solicitar informacin al mismo. Suele ir conectada a la lnea A0 de la CPU.

4.4.2

Descripcin Funcional

El diagrama funcional del 8259, con la estructura interna de las diversas partes que lo componen, es el siguiente:

Figura 4.21 Estructura interna del PIC 8259 Los registros internos del 8259 son el IRR (Interrupt Request Register) y el ISR (In Service Register). El IRR almacena todas las peticiones de interrupcin pendientes; el ISR almacena todas las interrupciones que estn siendo atendidas en un momento dado. La lgica de gestin de prioridad determina qu interrupcin, de las solicitadas en el IRR, debe ser atendida primero: cuando lleguen las seales INTA dicha interrupcin ser la primera procesada y su bit correspondiente se activar en el ISR. El buffer del bus de datos conecta el 8259 con el bus de datos del ordenador: su diseo en 3 estados permite desconectarlo cuando sea necesario; a travs de este bus circulan las palabras de control y la informacin de estado. La lgica de lectura y escritura acepta los comandos que enva la CPU: aqu hay registros para almacenar las palabras de inicializacin y operacin que enva el procesador; tambin sirve para transferir el estado del 8259 hacia el bus de datos. El buffer de cascada/comparador almacena y compara las identificaciones de todos los 8259 que posea el sistema: el 8259 maestro enva la identificacin del 8259 esclavo en las lneas CAS, los 8259 esclavos la leen y el implicado en la operacin coloca en el bus de datos la direccin (vector) de la rutina que atender la interrupcin en los 2 prximos (o el prximo) ciclos INTA. 4.4.3 Funcionamiento Del 8259

Para atender una interrupcin el PIC realiza las siguientes acciones:

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Una o ms perifricos solicitan la atencin, por lo que activan la respectiva lnea IRQ lo que pone a 1 el correspondiente bit del IRR.

El PIC 8259 evala la prioridad de estas interrupciones y solicita la interrupcin a la CPU (lnea INT) si es necesario. Cuando la CPU reconoce la interrupcin, enva la seal -INTA. Nada ms recibida la seal -INTA de la CPU, el 8259 activa el bit correspondiente a la interrupcin de mayor prioridad (la que va a ser procesada) en el ISR y lo borra en el IRR. En este ciclo, el 8259 an no controla el bus de datos.

Cuando la CPU enva un segundo ciclo -INTA, el 8259 deposita en el bus de datos un valor de 8 bits que indica el nmero de vector de interrupcin del 8086, para que la CPU lo pueda leer, este nmero es propio de cada dispositivo y es programable. Existen 256 interrupciones, cada una tiene un vector asociado (segmento+offset) de 4 bytes que se encuentra en cuatro posiciones consecutivas dentro del primer Kbyte de memoria RAM (256 interrupciones x 4bytes/vector)

Con este vector se calcula la direccin para acceder al inicio de la Rutina de Servicio de Interrupcin RSI (programa que atiende a la solicitud), que puede hallarse en memoria RAM o ROM indistintamente, sin embargo las interrupciones estn mapeadas por el fabricante del procesador
Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

En el modo AEOI del 8259, el bit de la interrupcin en el ISR es borrado nada ms acabar el segundo pulso -INTA; en caso contrario, ese bit permanece activo hasta que la CPU enve el comando EOI al final de la rutina que trata la interrupcin (lo normal). Los bits en el ISR deben regresar a cero pues bloquean otras solicitudes de interrupcin

La CPU ejecuta la rutina de servicio de interrupcin, La atencin de interrupciones anidades se muestra a continuacin

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

4.4.4

Programacin del 8259

El 8259 acepta dos tipos de comandos generados por la CPU: los ICW (Inicialization Command Word) que inicializan el 8259, y los OCW (Operation Command Word) que permiten programar la modalidad de funcionamiento. Antes de que los 8259 de un sistema comiencen a trabajar deben recibir una secuencia de ICW que los inicialice. Los ICW y OCW constan de secuencias de 2 a 4 comandos consecutivos que el 8259 espera recibir secuencialmente, unos tras otros, a travs del bus de datos, segn sea necesario (el propio 8259 se encarga de contarlos midiendo los pulsos de la lnea -WR). Los OCW pueden ser enviados en cualquier momento, una vez realizada la inicializacin. La comunicacin con el 8259 emplea las lneas -WR y -RW, as como A0. El hecho de que exista una sola lnea de direcciones implica que el 8259 slo ocupa dos direcciones de puerto de E/S en el espacio de entrada y salida del ordenador.

La programacin del 8259 responde a la siguiente secuencia

ICWS (Inicialization Command Words). ICW1: Cuando un comando es enviado con A0=0 y D4=1, el 8259 lo interpreta como la primera palabra de la inicializacin (ICW1)

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Si SNGL es 1 significa que el 8259 es nico en el sistema y no ser enviada ICW3. Si ICW4 es 0, tampoco ser enviada ICW4. ICW2: Se enva con A0=1, para diferenciarlo de ICW0 (hacer OUT a la siguiente direccin de puerto).

T7..T3 determinan los cinco bits ms significativos del nmero de vector de interrupcin a invocar (los 3 bajos los suministra el 8259 segn la interrupcin que se trate). ICW3: Se enva slo en el caso de que haya ms de un 8259 en el sistema (bit SNGL de ICW1 a cero), en caso contrario en su lugar se enviara ICW4 (si procede). Formato de ICW3 a enviar a un 8259 maestro y a un 8259 esclavo para que memorice de qu lnea IR del maestro cuelga:

ICW4: Se enva slo si IC4=1 en ICW1, con objeto de colocar el 8259 en un modo de operacin distinto del establecido por defecto (que equivale a poner a cero todos los bits de ICW4).

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

OCWS (Operation Command Words). Una vez inicializado, el 8259 est listo para procesar las interrupciones que se produzcan. Sin embargo, durante su funcionamiento normal est capacitado para recibir comandos de control por parte de la CPU. OCW1:

Este comando activa y borra bits en el IMR (Interrupt Mask Register). Los bits M0..M7 de OCW1 se corresponden con sus correspondientes bits del IMR. Un bit a 1 significa interrupcin enmascarada (inhibida) y a 0, interrupcin habilitada. OCW2:

OCW3: Permite el sondeo y la lectura del status

4.4.5

Trabajando con el 8259

En las ICW y, sobre todo, en las OCW, se han introducido elementos nuevos que deben ser explicados a continuacin. a) Gestin de prioridades Fully Nested Mode (modo de anidamiento completo): por defecto, el 8259 opera en esta modalidad. En este modo las interrupciones quedan ordenadas, por prioridades, de 0 (mxima) a 7 (mnima). Cuando se produce un reconocimiento de interrupcin por parte de la CPU, el 8259 evala cul es la interrupcin pendiente de mayor prioridad, coloca su nmero de vector en el bus y activa su bit correspondiente en el ISR. Este bit permanece activo hasta que el 8259 recibe el comando EOI (situacin normal); sin embargo, en el modo AEOI, ese bit se bajara inmediatamente despus del ltimo -INTA. Mientras el bit del ISR est activo, todas las interrupciones de igual o menor prioridad que lleguen permanecen inhibidas; sin embargo, las de mayor prioridad podrn interrumpir. Special Fully Nested Mode (modo de anidamiento especial): en sistemas con varios 8259 conectados. Slo el 8259 maestro es programado en este modo, lo que implica las siguientes diferencias respecto al Fully Nested Mode normal

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Cuando se atiende una interrupcin de un 8259 esclavo, si viene otra de mayor prioridad de ese mismo 8259 esclavo, se provoca una interrupcin al maestro (normalmente, el 8259 esclavo estara enmascarado mientras se procesa una de sus interrupciones). Cuando acaba la rutina de servicio de interrupcin, se enva un EOI no-especfico al 8259 esclavo; adems se lee su ISR para comprobar que sea cero: luego se envia adems otro EOI al 8259 maestro (si no es cero significa que an hay interrupciones en proceso en el 8259 esclavo).

b) Finalizacin de las interrupciones. Modos de EOI El EOI (End Of Interrupt) sirve para bajar el bit del ISR que representa la interrupcin que est siendo procesada.

Hay dos formas de poner a 0 el bit del ISR, la primera cuando el EOI se produce automticamente (AEOI) al final de la ltima seal INTA que enva la CPU al 8259 para una interrupcin; la segunda forma es cuando el EOI lo enve el propio procesador al 8259 a travs de OCW2, cuando acabe la rutina de gestin de interrupcin, para evitar que mientras se gestiona esa interrupcin se produzcan otras de igual o menor prioridad, adicionalmente el comando EOI puede ser no especfico (pone a 0 el de mayor prioridad) o especfico (pone a 0 el que se indica). En un sistema con varios 8259, el EOI debe ser enviado no slo al 8259 esclavo implicado sino tambin al maestro.

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

c) Rotacin de prioridades. Hay tres modos de manejar la prioridad Modo anidado: con prioridad fija (IR0 la ms alta e IR7 la ms baja) se ignoran solicitudes de menor prioridad que la actual Modo de rotacin automtica: cuando los perifricos tienen el mismo nivel de prioridad, en los que no interesa mantener un orden de prioridades en las lneas IR, se asigna el menor nivel de prioridad a la interrupcin recin atendida para permitir que las dems pendientes se procesen tambin. Para ello se enva un EOI que rote las prioridades: si, por ejemplo, se haba procesado una IR3, IR3 pasar al menor nivel de prioridad e IR4 al mayor, quedando las prioridades ordenadas (de mayor a menor): IR4, IR5, IR6, IR7, IR0, IR1, IR2, IR3.

Modo de rotacin especfica: a travs de OCW2, se asignan prioridades.

d) Enmascaramiento de interrupciones - Special Mask Mode. Hay ocasiones en las que mientras se ejecuta una rutina de servicio de interrupcin es necesario permitir que se produzcan ciertas interrupciones de menor prioridad en algunos momentos, o prohibirlo en otros, sin ser quiz interesante enviar el EOI antes de tiempo. Esto implica alterar la estructura normal de prioridades. La manera de realizar esto es activando el Special Mask Mode a travs de OCW3 durante la rutina de servicio de interrupcin (es ms que conveniente inhibirlo de nuevo al final). Una vez activado este modo, el IMR indica qu interrupciones estn permitidas (bit a 0) y cules inhibidas (bit a 1). Por ello, suele ser conveniente activar el bit del IMR correspondiente a la IR en servicio (para evitar que se produzca de nuevo cuando an no ha sido procesada). Al final hay que enviar un EOI especfico, ya que este modo de trabajo altera el Fully Nested Mode habitual.

e) Lectura de informacin del 8259. El IMR puede ser ledo a travs de OCW0; para leer el contenido del IRR y el ISR hay que emplear OCW3. Para estos dos ltimos registros hay que enviar una OCW3 que elija el IRR o el ISR; a continuacin se puede leer el bus de datos (A0=0) sin necesidad de enviar ms OCW3 (el
Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

8259 es capaz de recordar si tiene que leer el IRR o el ISR). Tras inicializarse, el 8259 queda preparado por defecto para devolver IRR a la primera lectura. f) Buffered Mode. Al emplear el 8259 en grandes sistemas, donde se requieren buffers en los buses de datos, si se va a emplear el modo cascada existe el problema de la habilitacin de los buffers. Cuando se programa el modo buffer, la patilla -SP/-EN del 8259 acta automticamente como seal de habilitacin del los buffers cada vez que se deposita algo en el bus de datos.

4.4.5

EL 8259 DENTRO DEL ORDENADOR.

Hay 8259 conectado a la direccin base E/S 20h; este controlador de interrupciones es accedido, por tanto, por los puertos 20h (A0=0) y 21h (A0=1). En mquinas superiores, existe un segundo 8259 conectado en cascada a la lnea IR2 del primero. Este segundo controlador es accedido a travs de los puertos 0A0h y 0A1h. La BIOS del ordenador, al arrancar la mquina, coloca la base de interrupciones del primer controlador en 8, lo que significa que las respectivas IR0..IR7 estn ligadas a los vectores de interrupcin 8..15; el segundo 8259 genera las interrupciones comprendidas entre 70h y 77h. La asignacin de lneas IR para los diversos perifricos del ordenador es la siguiente (por orden de prioridad):

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

IRQ 0 IRQ 1 IRQ 2 IRQ 8 IRQ 9 IRQ 10 IRQ 11 IRQ 12 IRQ 13 IRQ 14 IRQ 15 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7

Temporizador Teclado En los PC/XT: canal E/S Reloj de tiempo real Simulacin de IRQ2 Reservado Reservado Reservado Coprocesador aritmtico Controlador de disco duro Reservado COM2 COM1 Disco duro PC/XT (LPT2 en el AT) Controlador de disquetes LPT1

(INT 08h) (INT 09h) (INT 0Ah) (INT 70h) (INT 71h) (INT 72h) (INT 73h) (INT 74h) Slo AT y PS/2 (INT 75h) (INT 76h) (INT 77h) (INT 0Bh) (INT 0Ch) (INT 0Dh) (INT 0Eh) (INT 0Fh)

La lnea IR2 del 8259 maestro es empleada para colgar de ella el segundo 8259 esclavo. La interrupcin no enmascarable del 80x86 no est controlada por el 8259: es generada por la circuitera que controla la memoria si se detecta un error de paridad.

4.5 EL CHIP DMA (ACCESO DIRECTO A MEMORIA) 8237. El acceso directo a memoria es una tcnica que permite a los perifricos conectados a un sistema realizar transferencias sobre la memoria sin la intervencin del procesador. De esta manera, las operaciones de entrada y salida de bloques de datos, se pueden realizar en la sombra, mientras la CPU se dedica a otras tareas. Como la memoria del ordenador slo puede ser accedida a un tiempo por una fuente, en el momento en que el DMA realiza las transferencias el microprocesador se desconecta de los buses, cedindole el control. El funcionamiento del controlador de DMA se basa en unos registros que indican la direccin de memoria a ser accedida y cuntas posiciones de memoria quedan an por transferir. La transferencia de datos entre los perifricos y la memoria por DMA no suele efectuarse de golpe, sino ms bien poco a poco, robndole algunos ciclos a la CPU. Los controladores de DMA suelen disponer de varias lneas de peticin de DMA, pudiendo atender las necesidades de varios perifricos que soliciten una transferencia, quienes deben haber sido diseados expresamente para soportar el DMA. Controla hasta 4 canales de DMA Expandible indefinidamente
Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Permite transferencias E/S-Memoria y Memoria-Memoria Hasta 1,6 Mbytes/s (Reloj de 5 MHz) Bloques de hasta 64 Kbytes

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

4.5.1

Descripcin del Integrado 8237.

El 8237 es un controlador de DMA de 4 canales programables en 3 modos diferentes, con posibilidad de ser conectado en cascada. La arquitectura es de 16 bits. El 8237 soporta dos modos de transferencia bsicos, el primero, para soportar transferencias de una sola palabra de datos y flujos de datos discontinuos entre la memoria y los perifricos (es un circuito secuencial generador de seales de control y direcciones que permite la transferencia directa de los datos sin necesidad de registros temporales intermedios, lo que incrementa drsticamente la tasa de transferencia de datos y libera la CPU para otras tareas), en el segundo modo, en operaciones memoria-memoria, precisan de un registro temporal intermedio, por lo que son operaciones al menos dos veces ms lentas que las de E/S, aunque en algunos casos an ms veloces que la propia CPU. El 8237, pose el siguiente juego de registros:
Tipo de registro Registro base de direccin Registro base contador de palabras Registro de direccin en curso Registro contador de palabras en curso Registro temporal de direccin Registro temporal contador de palabras Registro de estado Registro de comandos Registro temporal Registro de modo Registro de mscara Registro de peticin Tamao N registros 16 bits 16 bits 16 bits 16 bits 16 bits 16 bits 8 bits 8 bits 8 bits 6 bits 4 bits 4 bits 4 4 4 4 1 1 1 1 1 4 1 1

El 8237 consta internamente de varios bloques: un bloque de control de tiempos que genera las seales de tiempo internas y las seales de control externas; un bloque de gestin de prioridades, que resuelve los conflictos de prioridad cuando varios canales de DMA son accedidos a la vez; tambin posee un elevado nmero de registros para gestionar el funcionamiento.

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

4.5.2

Operacin del DMA

Los buses del 8237 estn conectados en paralelo al bus del microprocesador. Cuando est inactivo, el 8237 est desconectado de los buses; cuando se produce una peticin de DMA pasa a controlar los buses y a generar las seales necesarias para realizar las transferencias. La operacin que realiza el 8237 es consecuencia de la programacin realizada previamente en los registros de comando, modo, base de direccin y contador de palabras a transferir. El DMA opera en dos ciclos: el activo y el inactivo (o idle), tras su configuracin, el DMA permanece inactivo hasta que se produce la solicitud de DMA en algn canal o va software. Cuando sta llega el 8237 solicita los buses a la CPU y se pasa al ciclo activo. Tngase en cuenta que los datos son pasados directamente de la memoria hacia/desde los perifricos, por lo tanto no cruzan a travs del DMA (las lneas -IOR y -MEMW, o -IOW y -MEMR, son activadas al mismo tiempo). El caso de las operaciones memoria-memoria es distinto, ya que para cada palabra a mover hay que realizar la operacin de lectura y despus la de escritura. Cuando el 8237 est en el ciclo inactivo y se produce una peticin por software o un canal no enmascarado solicita servicio DMA, se pasa al estado activo y se opera en uno de estos 4 modos:

Single Transfer Mode (Modo de transferencia nica):

El dispositivo es programado para realizar una nica transferencia y la CPU recupera el control entre cada transferencia. Para poder mover un bloque, se implementa repetitivamente las siguientes acciones: el registro contador de palabras es decrementado y el de direcciones se incrementa/decrementa segn ha sido programado. Cuando el registro contador de palabras se desborda (pasa de 0 a 0FFFFh) se activa el bit Terminal Count (fin de cuenta) en el registro de estado y la patilla -EOP genera un pulso (la transferencia a terminado). Luego de transferido un dato se ceden momentneamente los buses al sistema, luego cuando la CPU enva un nuevo HLDA se inicia la transferencia de otro dato.
Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Block Transfer Mode (Modo de transferencia de bloque).

Se diferencia del anterior en que en lugar de transferir una sola palabra se mueven todas las necesarias hasta que el registro contador de palabras se desborda, se interrumpe el proceso activando la patilla -EOP. DREQ slo es preciso activarlo hasta que DACK responde. Si se est moviendo de memoria a memoria, el canal 0 se usa como fuente y el canal 1 como destino. Demand Transfer Mode (Modo de transferencia por demanda).

Se diferencia del anterior en que la transferencia se realiza slo mientras DREQ permanece activo (por lo que se dice que el perifrico controla), esto significa que se pueden transferir datos hasta agotar las posibilidades del dispositivo; cuando el dispositivo tenga ms datos listos puede volver a activar DREQ para continuar donde lo dej. Esta modalidad permite dejar ciclos a la CPU cuando no es realmente necesario que el DMA opere. Adems, en los perodos de inactividad, los valores de direccin en curso y contador de palabras son almacenados en el Registro de direcciones en curso y en el Registro contador de palabras en curso correspondientes al canal implicado; mientras tanto, otros canales de mayor prioridad pueden ser atendidos por el 8237. Cascada mode (Modo en cascada).

Para conectar ms de un 8237. La lnea HRQ de los 8237 hijo es conectada a la DREQ del 8237 padre; la HLDA lo es a la DACK. Esto permite que las peticiones en los diversos 8237 se propaguen de uno a otro a travs de la escala de prioridades del 8237 del que cuelgan. Teniendo en cuenta que el canal del 8237 padre es empleado slo para priorizar el 8237 adicional que cuelga (hijo), no puede emitir direcciones ni seales de control por s mismo, se limita en el canal del que cuelga el 8237 hijo a controlar DREQ, DACK y HRQ, dejando inhibidas las dems seales. El EOP externo ser ignorado por el 8237 padre, pero s tendr efecto en el 8237 hijo correspondiente. Cuando de un 8237 cuelga otro, estamos ante un DMA de dos niveles. Si del DMA hijo cuelga a su vez otro, sera un DMA de tres niveles, como el mostrado a continuacin:

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

4.5.3

Programacin del 8237

El 8237 puede ser programado cuando HLDA est inactivo, es decir, hay que programarlo antes de operar, mientras est enmascarado, desinhibindolo despus para que comience a trabajar. Los siguientes son los registros internos del 8237. Current Address Register (Registro de direccin en curso). En cada canal, almacena la direccin de memoria empleada durante las transferencias del DMA. Su contenido es incrementado/decrementado despus de cada transferencia. Este registro es inicializado por la CPU enviando dos bytes consecutivos; en modo autoinicializacin, su contenido inicial se restaura cuando sta se produce. Current Word Register (Registro contador de palabras en curso). En cada canal, determina el nmero de bytes a transferir en la operacin menos uno (para un valor inicial 100, por ejemplo, se transmiten 101 bytes). Tras cada transferencia se decrementa: cuando pasa de 0 a 0FFFFh se genera el TC (Terminal Count) y el proceso finaliza. Este registro es inicializado por la CPU enviando dos bytes consecutivos; en modo autoinicializacin, su contenido inicial se restaura cuando sta se produce; de lo contrario tiene el valor 0FFFFh Base Address & Base Word Count Registers (Registros base de direccin y base contador de palabras). En cada canal, almacenan el valor inicial de los registros de direccin en curso y contador de palabras en curso, ya que ambos tipos de registros se cargan simultneamente durante la programacin. El valor almacenado en estos registros se emplea en la autoinicializacin, para recargar los registros en curso. Command Register (Registro de comandos). De 8 bits, controla funcionamiento del 8237. Se borra tras un Reset o comando Master Clear:

Mode Register (Registro de modo). En cada canal, de 6 bits. Cuando se escribe, se enva un byte al 8237 que selecciona (en los bits 0 y 1) el canal cuyo registro de modo se desea escribir, y el resto de los bits cargan el registro de modo. Cuando se lee, dichos bits estarn a 1 (para leer un registro de modo hay que utilizar antes el comando Clear Mode Register Counter).

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Request Register (Registro de peticin de DMA). El 8237 responde a peticiones de DMA tanto por hardware (lnea DREQ) como por software. En este registro posee un bit para cada canal de DMA. Cada bit de este registro es activado o borrado por software. Todo el registro es borrado ante un Reset. Para modificar sus bits, se debe enviar el comando Write Request register. Si se lee, los bits 0 al 3 muestran el estado de las peticiones en los canales 0 al 3 (los dems bits estn a 1).

Mask Register (Registro de mscara de DMA). Cada canal tiene asociado un bit de mscara que puede ser activado para inhibir las solicitudes de DMA a travs de la lnea DREQ. Este bit es automticamente activado cada vez que se produce un -EOP (final de la transferencia) a menos que el canal est en modo autoinicializacin. Cada bit de mscara puede ser modificado por separado, o todos a la vez, con el comando apropiado. Todo el registro es puesto a 1 a travs del Master Clear o por un Reset, lo que inhibe las solicitudes de DMA por hardware hasta que se enva un comando para limpiar el registro de mscara (o se borran los bits que se desee). Existen tres comandos para actuar sobre el registro de mscara; la primera por el comando Clear Mask Register, que borra todos los bits de mscara; la segunda por el comando Write Single Mask Bit, modificando un solo bit; la tercera forma por los comandos Read y Write All Mask Bits, con los que se pueden consultar y alterar todos los bits de mscara a la vez.

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Status Register (Registro de estado). Contiene informacin de estado. Los bits 0 al 3 indican si los respectivos canales han alcanzado un TC (Terminal Count) o se les ha aplicado una seal -EOP externa. Los bits 4 al 7 indican qu canales estn solicitando servicio, estn enmascarados o no. De esta manera, enmascarando todos los canales y leyendo el registro de estado, por software se puede decidir qu canales conviene desenmascarar, pudiendo el SO aplicar la gestin de prioridades que desee. Un Reset o un comando Master Clear los borran.

Temporary Register (Registro temporal). Para contener bytes que se transfieren en las operaciones memoria-memoria. Se puede borrar por un Reset o un comando Master Clear.

4.5.4 El 8237 en la PC Los PC utilizan un DMA de dos niveles, el canal 0 de su 8237 para el refresco de la memoria, el 2 para los disquetes y el 3 para el disco duro, el nico canal de 8 bits que queda libre es el 1. Se tiene tambin tres canales de 16 bits. Las direcciones de puerto para programar cada DMA son: puertos del 00H al 0FH, para el DMA1 o padre y los puertos del C0H a DFH para el DMA2 o hijo, mientras que para comunicarse con cada canal se utilizan los siguientes puertos:

Mgter. Lucy Delgado Barra

UNSA-EPIS

Arquitectura de Computadoras

Mgter. Lucy Delgado Barra

Anda mungkin juga menyukai