Sie sind auf Seite 1von 3

Los puertos de entrada/salida (I)

8086 Entrada/Salida, arranque e interrupciones


Jess Lavara Cana Alberto Gil Gonzlez

Las entradas/salidas son colocadas en un mapa independiente de la memoria, manejado por seales de control especficas e incorporando las instrucciones necesarias para este tipo de operaciones. En el 8086, el mapa de entradas/salidas consta de 65536 posiciones, que son direccionadas por los terminales AD0..AD15 (el mismo bus que direcciona la memoria). Cuando la CPU ejecuta una instruccin de acceso a entradas/salidas (instrucciones IN y OUT), la seal de control M/IO# se pone a 0, lo que debe ser utilizado por la lgica de decodificacin de direcciones para que el dispositivo activado sea un puerto de E/S en lugar de la memoria. La pastilla de E/S 8255. Contiene tres puertos de E/S programables en diferentes modos.

Introduccin (I)
El 8086 es un procesador presentado en 1977, siendo uno de los pioneros de 16 bits. Posee 20 terminales de direcciones y 16 de datos. La peculiar arquitectura del 8086 vino impuesta por la pretensin de mantenimiento de compatibilidad con el procesador anterior de Intel el 8085. En el 8086 se ampla la memoria direccionable a 1 Mbyte, para lo que incorpor el bus de direcciones de 20 bits. Para no aumentar el tamao de los registros que iban a contener las direcciones (16 bits), se introdujo en el 8086 el concepto de segmentacin de memoria.

Los puertos de entrada/salida (II)

Introduccin (II)

Los puertos de entrada/salida (III)


En el lado izquierdo pueden verse los terminales de conexin al bus del procesador (o al bus ISA). Es un clsico perifrico de 8 bits que utiliza 4 direcciones del mapa de E/S direccionables mediante los terminales A0 y A1. Contiene tres puertos A, B y C de 8 bits cada uno de ellos. El puerto C est dividido en sus dos mitades alta y baja, de 4 bits cada una de ellas. El registro de control. Mediante este registro se puede definir la direccin y el modo de funcionamiento de cada puerto, La pastilla considera dos Grupos de terminales denominados A y B. El Grupo A contiene el puerto A y la mitad del puerto C. El Grupo B contiene el puerto B y la mitad del puerto C. Funcionamiento de cada uno de los modos. Modo 0. El modo 0 es el ms sencillo. Implementa 3 puertos de E/S de 8 bits simples, es decir, sin seales de protocolo. El puerto C se considera partido en dos puertos de 4 bits. Cada uno de estos puertos puede ser programado independientemente como Entrada o como Salida (todos sus bits). Modo 1. Entradas/Salidas con protocolo. Pueden programarse en este modo los puertos A y B. El puerto C proporciona las seales adicionales para establecer el protocolo. Cada uno de los puertos A y B puede programarse individualmente como entrada o como salida. Modo 2. Puerto A bidireccional, con protocolo. Slo el puerto A puede funcionar en este modo. Lo mismo que en el modo 1, el puerto C sirve para implementar las seales de protocolo.

Todos los procesadores que han sucedido al 8086 son capaces de ejecutar programas escritos para el 8086. Cuando Intel introdujo en el 286 el llamado Modo PROTEGIDO denomin a lo que se llama Modo REAL al que emulaba el comportamiento del 8086, aunque desaprovechase las maravillosas prestaciones que se introducan.

Las Interrupciones (I)


El sistema de interrupciones del 8086 est constituido por NMI, entrada de peticin de interrupcin no enmascarable, INTR, entrada de interrupcin enmascarable y por INTA#, seal de reconocimiento de interrupcin. En un 8086 existen 256 interrupciones posibles (van del a 0 a la 255 = FFh). Cada vector de interrupcin ocupa una doble palabra y contiene la direccin de la rutina de servicio asociada a esa interrupcin. Tipos de interrupciones:

Las Interrupciones (IV)


Enmascarables: se producen por la activacin del terminal INTR, que es una entrada sensible al nivel alto. Cuando se activa este terminal, la CPU consulta el estado del flag IF del registro de estado. Si est a 0, se ignora la peticin, si est a 1, la CPU ejecuta un ciclo de bus especial denominado ciclo de reconocimiento de interrupcin, en el que se genera 2 impulsos en su terminal de salida INTA#. El primero implica el reconocimiento y el segundo obliga al perifrico que ha solicitado la interrupcin a identificarse. Para ello tiene que poner en el bus de datos el nmero de interrupcin que le corresponde (en los 8 bits ms bajos del bus de datos).
Se deben tener en cuenta las prioridades en las interrupciones, y de ello se encarga el 8259-A.

Las Interrupciones (II)


Tipos de interrupcin en los xx86: Hay tres clases de interrupcin: internas, por hardware y por software.

Las Interrupciones (V)


SOFTWARE:
Estas interrupciones se producen mediante el uso de la instruccin INT en los programas. Ocurren en los momentos previstos por el programador, su utilidad es muy semejante a la de las llamadas a subrutina. Son interrupciones sncronas con la ejecucin de un programa. Se utilizan mayoritariamente para hacer uso de los servicios (ya sea de la BIOS como del Sistema Operativo) que nos permiten acceder a los recursos que nos ofrece el ordenador, y que facilitan la programacin del sistema operativo aportando una mayor seguridad. Todas las interrupciones pueden producirse mediante la instruccin INT n (donde n es un nmero entre 0 y 255). Al ejecutarse una interrupcin de este tipo, el programa no necesita conocer la ubicacin en el mapa de memoria de la rutina correspondiente. Al ejecutarse INT se localiza automticamente esta direccin en la tabla de interrupciones. La instruccin INT n se codifica en 2 bytes, el primero es el cdigo de operacin y el segundo es el nmero n indicado como operando.

INTERNAS:

Tambin llamadas Traps o Excepciones. Producidas por acontecimientos internos que ocurren dentro de la CPU. Hay varios ejemplos que ilustraran bien este tipo de interrupcin pero quizs el ms tpico sea el error de divisin (se produce cuando el resultado al realizar una operacin de divisin, sobrepasa la capacidad del registro en el que debe ser almacenado) Se producen automticamente y transfieren la ejecucin a vectores de interrupcin prefijados. Adems, alertan sobre acontecimientos internos que pudieran estar no previstos por el programador. En general, sealan situaciones de error.

Las Interrupciones (III)


HARDWARE:
Tienen 3 pines: NMI, INTR e INTA#. Se dividen en no enmascarables y enmascarables.

El Arranque
En general el proceso de arranque sigue estas seis etapas: 1. Encendido(Cuando usted presiona el botn de encendido, el botn de encendido es iluminado y la energa es distribuida por circuitos internos de la computadora) 2. Comienzo del programa de arranque (El microprocesador empieza a ejecutar las instrucciones almacenadas en la memoria ROM). 3. Auto prueba de encendido (La computadora realiza un diagnostico crucial del sistema y de cada componente de la computadora) 4. Carga del Sistema Operativo(El sistema operativo es copiado desde el disco duro a la memoria RAM, en la memoria tambin se cargan varias rutinas del BIOS) 5. Chequeo de la configuracin(El microprocesador lee los datos de configuracin del CMOs y ejecuta cualquier rutina especifica para su uso) 6. Lista para aceptar datos y comandos.(La computadora esta lista para aceptar comandos y datos) Durante el proceso de arranque, la ROM BIOS establece los vectores de interrupcin para que apunten a las rutinas de tratamiento de la interrupcin en la ROM. La tabla de vectores de interrupcin comienza al principio de la RAM, en la direccin 0000:0000. Cada entrada de la tabla se almacena como una pareja de palabras, con el desplazamiento en la primera parte y el segmento en la segunda..

No Enmascarables: se producen por la activacin del terminal NMI, que es


una entrada sensible al flanco de subida. Al producirse una NMI, la ejecucin se transfiere a la rutina prevista para la interrupcin n 2. Por tanto, la interrupcin NMI es equivalente a INT 2. La atencin a una peticin NMI no est sujeta a ningn enmascaramiento interno en la CPU, esto quiere decir que se atiende en todo momento. La NMI se destina generalmente a detectar errores tales como fallos en la alimentacin o errores en el hardware. En los Pcs se usa para advertir la ocurrencia de un error de paridad en la memoria.

El generador de reloj(I)
Asociada a la CPU 8086 siempre encontraremos una pequea pastilla denominada Generador de reloj 8284, y que cumple tres misiones diferentes.

Los temporizadores del 8253 en el PC

El generador de reloj(II)
La primera de ellas, y que la da el nombre, es la de generar la seal de reloj que necesita la CPU, es decir que su duty cycle y sus tiempos de subida y bajada se ajustan exactamente a las especificaciones requeridas por el 8086. La seal de reloj que llevaremos a la CPU se obtiene del terminal CLK. La segunda funcin es la de canalizar la seal de RESET de la CPU. Sincroniza la activacin de RESET con el reloj de modo que se cumplan las especificaciones requeridas por el 8086. La tercera funcin es la de canalizar la seal READY que llegar a la CPU cumpliendo todos los cnones de temporizacin.

El reloj del sistema


El temporizador 0 se utiliza para el mantenimiento de la hora y fecha del sistema. Se inicializa durante el arranque del ordenador, de forma que genere impulsos de una frecuencia de 18.2 Hz. Para ello, el contador se programa con el nmero 0000, lo que produce la divisin del reloj aplicado por su mximo divisor 65.536. Estos impulsos se aplican a la entrada de interrupcin del PIC que genera la interrupcin hardware nmero 8. El BIOS contiene una rutina de atencin a esta interrupcin. Esta rutina se ejecuta 18,2 veces por segundo, actualiza el contenido de dos variables de tipo word situadas en memoria RAM, precisamente en la zona denominada de Variables del BIOS. El MS-DOS, as como sistemas operativos, lee estas variables para determinar la hora actual. Este sistema fue perfeccionado en el ordenador AT con la incorporacin de un nuevo chip denominado RTC (Real Time Clock) que permite mantener en funcionamiento un reloj-calendario, incluso cuando el PC est apagado. RTC. El reloj en tiempo real. Se encarga de mantener un sistema de fechas que tiene en cuenta la diferente longitud de los meses y detecta los aos bisiestos. Tiene la posibilidad de programarse para generar interrupciones peridicas, generar alarmas y generar seales hardware.

El temporizador 8253
La pastilla 8253 de Intel contiene tres temporizadores independientes de 16 bits. Su diagrama de bloques se muestra en la figura de abajo, en la que se puede apreciar que tiene la estructura tpica de un perifrico de microprocesador de 8 bits.

Das könnte Ihnen auch gefallen