MÓDULO I

CENTRO DE ENSEÑANZA TECNICA INDUSTRIAL.


Sistemas basados en microprocesadores

CONCEPTOS BÁSICOS.

HISTORIA, CONCEPTOS, TIPOS DE MICROPROCESADORES.

CARACTERÍSTICAS, EJEMPLO DE UN MICROPROCESADOR SENCILLO

Y SU ARQUITECTURA.

CONCEPTOS BÁSICOS.

PROGRAMABILIDAD. Se refiere a la capacidad que tiene un microprocesador para que su función sea definida a través de un programa. El PROGRAMA consta de una serie de INSTRUCCIONES relacionadas, ejecutadas secuencialmente (una a la vez) por el microprocesador y que pueden implicar operaciones lógicas o aritméticas. Las instrucciones se especifican por medio de un código especial que constituye el lenguaje del microprocesador.

CONEXIONES DE ALIMENTACIÓN. Los microprocesadores (excepto el 8080) requieren una fuente de alimentación regulada de 5V dc.

TAMAÑO EN BITS. Los microprocesadores se clasifican normalmente en unidades de 4,8,16 o 32 bits. El tamaño en bits de un microprocesador a veces se denomina tamaño de palabra. La longitud del registro acumulador es una buena pista para conocer el tamaño de palabra de un microprocesador. Los microprocesadores 8080/8085, 6800,6502 y Z80 son de 8 bits. Los 8086,8088,68000,65816 y Z8000 son MPU típicas de 16 bits. El 80386,68020,32000 y Z-80000 son ejemplos de microprocesadores avanzados de 32 bits.

MODOS DE DIRECCIONAMIENTO. Un modo de direccionamiento es la técnica utilizada para buscar el operando deseado durante la ejecución de una instrucción. Los microprocesadores individuales pueden no utilizar todos los modos de direccionamiento listados a continuación:

  1. Modo de direccionamiento inherente (implícito)
  2. Modo de direccionamiento inmediato.
  3. Modo de direccionamiento extendido o absoluto.
  4. Modo de direccionamiento de registro.
  5. Modo de direccionamiento indirecto de registro.
  6. Modo de direccionamiento índice.
  7. Modo de direccionamiento de página cero (directo).
  8. Modo de direccionamiento relativo.
  9. Modo de direccionamiento basado.
  10. Modo de direccionamiento basado en índice.
  11. Modo de direccionamiento de cadena.
  12. Modo de direccionamiento de E/S.
  13. Modo de direccionamiento de status de registro.

REGISTROS. Los registros que residen en el interior del microprocesador se denominan registros internos y aquellos que existen en ROM, RWM y puertos de E/S son los registros internos.

El conjunto de registros que constituyen un sistema en particular y las transferencias de datos que sean posibles entre ellos forman la ARQUITECTURA DEL SISTEMA.

Los tipos de registro en el microprocesador y las posibles transferencias de datos entre ellos determinan la ARQUITECTURA DEL MICROPROCESADOR.

Hay otras unidades funcionales que también pueden existir en un microprocesador, éstas son la MEMORIA DE DATOS, y los PUERTOS DE ENTRADAS/SALIDAS.

Un sistema con microprocesador implementa sus funciones a base de transferir y transformar datos en registros del sistema. Típicamente, las transformaciones los datos tienen lugar en los registros internos, muchos de los cuales son registros de operación. LOS REGISTROS DE OPERACIÓN se diferencian de los registros de almacenamiento en que con su circuitería asociada implementan operaciones aritméticas o lógicas en los datos contenidos en dichos registros, transformándolos.

Los registros en los varios subsistemas del sistema del microprocesador se interconectan externamente por el BUS DEL SISTEMA que incluye el bus de direcciones, el bus de datos y el bus de control.

LA MEMORIA DE DATOS. Es una memoria de lectura/escritura (RAM) cuyo objetivo es permitir el almacenamiento temporal de datos o programas de aplicación. Por sus características de lectura/escritura, la información que reside en ella se puede alterar fácilmente,; sin embargo, ésta se pierde cuando se apaga la fuente de alimentación.

La memoria de datos se puede considerar como una extensión de los registros internos de propósito general, ya que cada una de sus localidades es precisamente un registro. La diferencia está en que los registros de la memoria de datos son externos al microprocesador, y por lo tanto la velocidad de la transferencia de información es más lenta.

LOS PUERTOS DE ENTRADA/SALIDA.

Son los circuitos que se encargan de establecer el contacto del microprocesador con el mundo exterior.

Los puertos se conectan a dispositivos periféricos que generan información para ser procesada por la CPU (dispositivos de entrada) o que aceptan datos provenientes del microprocesador y los transforman en información significativa para el mundo exterior (dispositivos de salida).

Estos periféricos incluyen una gran variedad de elementos electrónicos y electromecánicos, cuya complejidad va desde unos simples interruptores y lámparas indicadoras, hasta complicados sistemas de adquisición de datos, pantallas de video, etc.

HISTORIA CONCEPTOS Y TIPOS.

Existen dos criterios principales para la clasificación de los microprocesadores, uno se basa en la longitud de palabra y el otro en la tecnología de fabricación.

La longitud de palabra se refiere al número de bits que puede procesar simultáneamente un microprocesador y está determinada por su arquitectura, es decir, por el tamaño de los registros, de la ALU y de los buses internos.

La longitud de palabra de los microprocesadores ha ido creciendo a través de los años, desde los 4 bits del primer microprocesador, hasta los 32 bits de los microprocesadores recientes.

Hoy los microprocesadores de 4 bits se consideran obsoletos y los de 32 bits se reservan para las aplicaciones muy complejas. En la generalidad de los casos se utilizan microprocesadores de 8 bits y de 16 bits, los primeros son más usuales por haber sido de más temprana su aparición y porque tienen disponible un amplio soporte de programación y circuitería.

En lo que toca a las tecnologías de fabricación, los primeros microprocesadores se implantaron con tecnología PMOS; sin embargo, actualmente la tecnología de fabricación de microprocesadores más difundida es la NMOS. Ultimamente se ha desarrollado bastante la tecnología CMOS para dispositivos con bajo consumo de energía.

EVOLUCIÓN DE LOS MICROPROCESADORES.

En 1971 la compañía Intel anunció la aparición del primer microprocesador, denominado el 4004. Este era de 4 bits, estaba implantado con tecnología PMOS, tenía 45 instrucciones y ejecutaba 60,000 operaciones por segundo.

Al siguiente año, la misma compañía introdujo el 8008 que fue el primer microprocesador de 8 bits; también estaba implantado con tecnología PMOS. El 8008, además de tener una longitud de palabra mayor, contaba con 48 instrucciones, podía ejecutar 300 000 operaciones por segundo y direccionaba 16Kbytes de memoria. Sin embargo, para poder funcionar requería casi de 20 circuitos de soporte.

Hasta ese momento, el principal objetivo de los microprocesadores era reemplazar compuertas SSI (Small Scale Integration) y MSI (Medium Scale Integration).

EL MICROPROCESADOR 8080. Avances posteriores en la tecnología de circuitos integrados permitieron que a principios de 1974 Intel anunciara el 8080, un microprocesador de 8 bits mucho más poderoso. El 8080 tenía 78 instrucciones en las cuales se incluían todas las del 8008. Además su velocidad de operación era diez veces mayor que la del 8008 y podía direccionar hasta 64Kbytes de memoria. La tecnología de fabricación usada fue la NMOS y gran parte de la lógica de soporte se incluyó en el mismo circuito del microprocesador, gracias a esto era posible construir un sistema con sólo seis circuitos integrados.

Pero, sobretodo, la principal diferencia del 8080 con respecto a los microprocesadores anteriores era que no había sido diseñado simplemente para sustituir compuertas lógicas, sino que se le había dotado con la capacidad de una computadora. Esto originó una revolución tecnológica en el campo de la electrónica digital, a la que todavía no se le ve fin.

Hasta la fecha, el 8080 ha sido el microprocesador más popular convirtiéndose en un estándar de la industria.

LA FAMILIA MOTOROLA. En respuesta al éxito del 8080, la compañía Motorola introdujo también en 1974 un microprocesador de 8 bits con 72 instrucciones, el 6800. Al mismo tiempo apareció una familia de circuitos periféricos diseñados especialmente para conectarse al microprocesador.

En 1975 la compañía Mos Technology anunció dos microprocesadores, el 6501 que era compatible pata a pata con el 6800 y el 6502, cuyo circuito integrado incluía además de un 6501, toda la circuitería para generar la señal de reloj. Hasta entonces, la señal de reloj se había generado en circuitos externos al microprocesador.

LOS MICROPROCESADORES Z80 Y 8085. En 1976 la compañía Zilog introdujo el Z-80, un microprocesador NMOS de 8 bits basado en el 8080 pero apreciablemente mejorado, tanto en software como en hardware.

El Z-80 resultó ser un microprocesador mucho más rápido y fácil de usar, ya que sólo requería una fuente de alimentación de 5 volts y toda la circuitería de soporte estaba incluida en el circuito integrado. Su código de instrucciones contenía las 78 del 8080, lo que le permitía ejecutar todos los programas descritos para este último, así como 80 instrucciones más, en total 158.

Junto con el microprocesador Z-80 Zilog introdujo varios periféricos, tales como el controlador de puertos en paralelo (Z80 PIO), el controlador de puertos en serie (Z80 SIO) y el circuito timer/controlador (Z80 CTC). Todos ellos quedaron agrupados dentro de la familia Z-80.

En 1977, Intel anunció el microprocesador 8085, el cual combinaba el 8080, el circuito de reloj y el controlador del sistema en un solo circuito integrado. Al igual que el Z-80, el 8085 estaba fabricado con tecnología NMOS y requería un voltaje único de 5 Volts.

El 8085 se optimizó para que pudiera formar un sistema completo utilizando dos circuitos periféricos especiales, uno de ellos con memoria RAM, puertos de entrada/salida y un timer (8155 u 8156) y el otro con memoria ROM y EPROM y puertos (8355 u 8755). Sin embargo, en programación su aportación fue prácticamente nula, ya que sólo aumentó en dos las instrucciones del 8080.

CONCEPTO DE MICROPROCESADOR.

Un Microprocesador puede definirse como una pastilla de silicio de muy alta escala de integración (VLSI), que realiza las tareas de la unidad central de tratamiento de una microcomputadora u otro sistema de control automático.

Compuesto de muchos circuitos más simples como son flip-flops, contadores, registros, decodificadores, comparadores, etc.; de modo que el microprocesador puede ser considerado un dispositivo lógico de propósito general o universal. El microprocesador busca instrucciones de la memoria, las decodifica y las ejecuta. Referencia memoria y dispositivos E/S en busca de datos y responde a señales de control procedentes de dispositivos externos.

Las señales de control generadas por dispositivos externos pueden hacer que el microprocesador tome algunas de las siguientes acciones:

  1. Reset. Provoca que la ejecución del programa comience desde alguna posición inicial.
  2. Esperar una cantidad de tiempo suficiente para acceder a una determinada posición de memoria.
  3. Interrumpir la ejecución del programa en curso y bifurcar a una posición de memoria donde empieza una subrutina que da servicio al dispositivo externo causante de la interrupción.
  4. Suspender su operación y poner sus patas de direcciones y datos en flotación, permitiendo que otros dispositivos lean o escriban directamente en memoria.
EJEMPLO DE UN PROCESADOR PEQUEÑO. En la siguiente figura se tiene un circuito que sirve para realizar cuatro funciones lógicas. Se puede usar como AND,OR,NAND o como OR exclusiva (XOR). La salida depende directamente de las entradas de datos A y B, pero también de las entradas de control X y Y, ya que éstas son las que determinan la función que realiza el "procesador".

La función deseada se especifica por medio del número binario aplicado a las entradas de control. Cada número juega el papel de una instrucción porque ordena al circuito la operación que debe ejecutar. Según la instrucción que se de al circuito, será la función que realice. En un momento dado será equivalente a una NAND, en otro a una OR, etc.

Supóngase que este procesador es para controlar una alarma con base en la siguiente secuencia: si las señales A y B están en uno (AND) de las 8:00 a.m., la alarma debe sonar; de las 11:00a.m. a las 3:00p.m., cualquiera de las dos entradas en uno (OR) debe encenderla; de las 3:00p.m. a las 11:00p.m., la alarma debe activarse. Cuando cualquiera de las dos entradas sea cero (NAND); finalmente, de las 11:p.m., a las 8:00p.m., la alarma debe escucharse si las entradas A y B tienen niveles lógicos distintos (XOR).

El programa que se requiere en las entradas de control X y Y para seleccionar la operación que debe ejecutarse estará compuesto por la siguiente secuencia de instrucciones: 00-01-10-11. El mecanismo de control del procesador puede implantarse con un oscilador de un pulso por segundo; la señal que genere el oscilador se pasa por un divisor de frecuencia de 1/3600 para obtener un pulso cada 3600 segundos, o sea un pulso por hora. A continuación, la señal se alimenta a la entrada de un reloj de un contador binario cuya función es llevar el registro del número de horas transcurridas. Las salidas del contador se conectan a las entradas de dirección de una memoria ROM, la cual a su vez tiene sus salidas de datos conectadas a las entradas de control del selector.

La ROM (read only memory, memoria de sólo lectura) contiene las instrucciones del programa. lA instrucción a ejecutarse la determina el número que aparece en las salidas del contador, ya que éste es el que direcciona la localidad de la ROM donde está almacenada la instrucción deseada, de modo que de 8:00a.m. a 11:00a.m. sean 11. Como s necesario reiniciar la cuenta cada 24 horas, se utiliza una compuerta AND para restablecer el contador. En la figura 2 se muestra el procesador que controla la alarma, y en la figura 2.1 el programa grabado en ROM.

La ventaja de utilizar un procesador en la solución del problema es que si por alguna causa el usuario decide cambiar los parámetros de control, es decir, que la alarma suene a otras horas o por condiciones en las entradas diferentes a las citadas, simplemente tiene que cambiar el programa que se encuentra en la ROM, sin necesidad de hacer modificaciones en el alambrado.

 

II

Unidad Central de Proceso

ARQUITECTURA

ALU, REGISTROS DE USO GENERAL

DE USO ESPECÍFICO

BUSES, UNIDAD DE CONTROL, POLLING E INTERRUPCIONES.

CONTROL DE INTERRUPCIONES.

 

 

Microcomputadora en una pastilla

Diagrama de bloques de un microprocesador y de una microcomputadora en una pastilla

ARQUITECTURA

El conjunto de registros que constituyen un sistema en particular y las transferencias de datos que sean posibles entre ellos forman la arquitectura del sistema.

Los tipos de registro en el microprocesador y las posibles transferencias de datos entre ellos determinan la arquitectura del microprocesador.

Casi todos los microprocesadores contienen como mínimo lo siguiente:

  1. Unidad aritmético y lógica (ALU).
  2. Varios registros.
  3. Contador de programa
  4. Circuitería de decodificación de instrucciones.
  5. Sección de control y temporización.
  6. Cerrojos y buffers de datos.
  7. Líneas de control y buses internos.
  8. Varias entradas y salidas de control.

 

Además de estos elementos, una pastilla microprocesadora puede contener también algunas de las unidades funcionales siguientes:

  1. Memoria ROM.
  2. Memoria RAM.
  3. Puertos de entrada/salida serie.
  4. Circuitería de reloj interna.
  5. Temporizadores programables.
  6. Circuitería de arbitración de prioridad de interrupciones.
  7. Lógica de interfaz de comunicación de E/S serie a paralelo.
  8. Lógica de control de acceso directo a memoria.

ALU, REGISTROS DE USO GENERAL Y ESPECÍFICO

UNIDAD ARITMÉTICA Y LÓGICA (ALU).

Las operaciones aritméticas o lógicas en uno o dos operandos constituyen las transformaciones básicas de datos implementadas en un microprocesador.

 

El microprocesador contiene una unidad aritmética y lógica, ALU, para dicho fin. Uno de los dos registros de la ALU, el acumulador, contiene un operando; el otro, un registro temporal, contiene el segundo. El resultado de una operación aritmética o lógica se coloca en el acumulador al final de la operación, reemplazando a uno de los operandos originales.

 

La ALU es capaz de realizar las siguientes operaciones en datos binarios:

  1. Suma y resta binaria.
  2. AND, OR, EX – OR lógico.
  3. Complemento.
  4. Rotación a la izquierda o a la derecha.

La ALU contiene también un cierto número de biestables llamados flags, que contienen información relativa al resultado de la operación aritmética o lógica. Reunidos, dichos flags constituyen el registro de flags. Por ejemplo, un flag indica si tuvo un acarreo del bit más significativo después de una operación de suma; otro flag indica que el resultado del acumulador después de alguna operación aritmética o lógica es cero. La mayoría de los microprocesadores contienen varios flags.

En muchas aplicaciones es apropiado representar datos en decimal codificado en binario, BCD. La ALU mostrada contiene lógica adicional para ajustar los resultados de operaciones de suma cuando los operandos son interpretados como datos BCD.

 

REGISTROS INTERNOS

Los registros internos son unidades de almacenamiento temporal dentro de la CPU. Algunos de ellos tienen usos específicos, mientras que otros son de propósito general.

CONTADOR DE PROGRAMA. El contador de programa (PC) es el registro que contiene la dirección de la siguiente instrucción del programa. La longitud del contador de programa es igual que la anchura del bus de direcciones. El contador de programa normalmente contiene 16 bits en los microprocesadores de 8 bits pero es mayor en la MPU de 16 y 32 bits.

ACUMULADOR. El acumulador es el registro o registros asociados a las operaciones de al ALU y a veces a las operaciones de E/S. Puede ser de 8,16 o 32 bits. Las MPU del 8080/8085,6800 y 6502 tienen todas acumuladores de 8 bits. Algunos procesadores (68000 y Z8000) tienen sólo registros de propósito general que pueden ser utilizados como acumuladores.

REGISTRO DE STATUS O SEÑALIZADORES. El registro de status está en todos los microprocesadores. Los bits individuales del registro se denominan señalizadores. Las condiciones de los señalizadores se asocian, generalmente, a las operaciones de la ALU y son utilizados por instrucciones de bifurcación posteriores para tomar decisiones.

REGISTROS DE PROPÓSITO GENERAL. Los registros de propósito general pueden utilizarse para almacenar datos temporalmente o para que contengan una dirección. No tienen asignada ninguna tarea específica. En los microprocesadores de 8 bits, los registros de propósito general no pueden funcionar como un acumulador en la ALU y en operaciones de E/S. Sin embargo, las MPU de 16 bits habitualmente permiten que los registros de propósito general se utilicen como acumuladores.

REGISTRO ÍNDICE. El registro índice se utiliza para que contenga la dirección de un operando cuando se utiliza el modo de direccionamiento indexado (8080/8085,6800,6502,Z80,8086). Los registros de propósito general son utilizados como registros índice en los microprocesadores Z8000 y 68000.

REGISTRO DEL PUNTERO DE PILA. El puntero de pila (SP) es un registro especializado que sigue la pista de la siguiente posición de memoria disponible en la pila. La pila es un área reservada de la RAM utilizada para almacenamiento temporal de datos, direcciones de vuelta y contenido de registros. La pila se utiliza durante las llamadas a subrutina y durante las interrupciones.

BUSES, UNIDAD DE CONTROL, POLLING E INTERRUPCIONES

Un microprocesador se comunica con los otros circuitos del sistema a través de grupos de líneas de interconexión o buses de interconexión. Con base en el tipo de información que conducen, las líneas de interconexión se pueden agrupar en tres buses: datos, direcciones y control.

LÍNEAS DE DATOS. Los microprocesadores transfieren datos e instrucciones entre la MPU y memoria (o E/S) vía un bus de datos bidireccional. El 6800, 6502, Z80 y 8088 son procesadores que utilizan buses externos de datos de 8 bits. Muchos miembros de la familia 8080 multiplexan direcciones o información de control en las líneas de datos parte del tiempo.

LÍNEAS DE DIRECCIÓN. Los microprocesadores más antiguos (8080/8085,6800,6502) utilizan buses de dirección de 16 bits que pueden direccionar solamente 2 exp16 o 64 K de memoria. Las MPU más modernas de 16 bits tienen buses de direcciones de 16,20 o 23 bits. Un bus de direcciones más ancho permite direccionar memorias mayores.

LÍNEAS DE CONTROL. La mayoría de los microprocesadores se caracterizan porque tienen todas o algunas de las siguientes líneas de control:

  1. Líneas de reloj.
  2. Líneas de lectura/escritura.
  3. Líneas de entrada/salida.
  4. Líneas de interrupción.
  5. Líneas de reinicialización.
  6. Líneas de control del bus.
  7. Líneas de status del ciclo.

Además de los buses de interconexión externos existen otros dentro del microprocesador que sirven para comunicar entre sí a la ALU, los registros internos y la unidad de control. A éstos se les denomina BUSES INTERNOS.

LA UNIDAD DE CONTROL. La circuitería de control es la unidad funcional primaria dentro del microprocesador. Utilizando señales de reloj, la unidad de control mantienen la secuencia de eventos apropiada para llevar a cabo cualquier tarea de procesamiento. Es decir, el microprocesador es un dispositivo síncrono. La actividad fundamental de un microprocesador, regulada por la unidad de control, es cíclica y consiste en la búsqueda y obtención de datos e instrucciones, y en la ejecución secuencial de estas últimas. Después de que una instrucción ha sido obtenida y decodificada, la circuitería de control envía las señales apropiadas a dispositivos tanto internos como externos a la CPU, para iniciar la acción de procesamiento indicada por la instrucción. Frecuentemente, la unidad de control es capaz de responder a señales externas que alteran el estado del microprocesador, ya sea interrumpiendo temporalmente su funcionamiento o provocando la ejecución de instrucciones especiales.

El corazón de la unidad de control lo constituye el GENERADOR DE CICLO DE MÁQUINA (GCM) , que se encarga de producir las señales de control, derivándolas de un reloj u oscilador maestro como referencia.

CONTROL DE INTERRUPCIONES

Una interrupción (Interrupt) se puede definir como una señal proveniente de un dispositivo externo, que llega a una entrada del microprocesador dedicada a este propósito y que le indica al microprocesador que el dispositivo que la originó está solicitando el servicio.

Cuando ocurre una interrupción, el microprocesador suspende temporalmente la ejecución del programa principal y transfiere el control a una subrutina especialmente diseñada para atender al dispositivo que provocó la interrupción, a esta subrutina se le denomina SUBRUTINA DE SERVICIO DE LA INTERRUPCIÓN (Interrupt Service Routine) o MANEJADOR DE INTERRUPCIÓN (Interrupt Handler). Al terminar el servicio, el microprocesador regresa al programa principal, continuando con sus actividades normales. Desde este punto de vista, una interrupción es esencialmente una llamada a subrutina iniciada por un circuito externo (hardware) y con un retorno por programa (software).

Además las interrupciones tienen la característica de que son eventos asíncronos, es decir, pueden ocurrir en cualquier momento durante la ejecución del programa principal sin posibilidad de hacer una predicción exacta. Por ello hay que hacer consideraciones especiales y tener cuidados adicionales al manejarlas.

USOS DE LAS INTERRUPCIONES.

Las interrupciones se utilizan:

  1. En la detección de eventos catastróficos para el sistema, tales como las fallas súbitas en las fuentes de alimentación. Por medio de una interrupción el microprocesador puede ser alertado a tiempo de preservar la información vital y desconectar los dispositivos que puedan dañarse.
  2. En dispositivos donde el microprocesador no necesita obtener información con mucha frecuencia. Por ejemplo, en sistemas de alarma, ya que el microprocesador no sabe cuando va a aparecer una situación que requiera sus servicios. El dispositivo genera una interrupción cuando llega el momento, y mientras tanto el microprocesador puede ejecutar otras tareas.
  3. En la atención a dispositivos periféricos que son mucho más lentos que el microprocesador: teclados, pantallas, impresoras. En vez de que el microprocesador los espere, es más eficiente que los dispositivos lo interrumpan cuando tengan algo nuevo que enviar o estén listos para recibir.
  4. En el servicio de periféricos de alta velocidad (discos) o dispositivos para los cuales sea muy difícil mantener la información hasta el momento en que el microprocesador la solicite.

 

VENTAJAS Y DESVENTAJAS DE LAS INTERRUPCIONES.

Ventajas:

  1. Liberan al microprocesador de la pérdida de tiempo causada por esperar a que ocurra cierto evento.
  2. Permiten la ejecución de un programa principal junto con el control simultáneo de varios dispositivos externos.
  3. Proporcionan servicio prioritario a dispositivos críticos dentro del sistema.
  4. Facilitan la detección de eventos en "tiempo real".

Desventajas:

  1. Pueden ser necesarios circuitos externos adicionales para la generación de la señal de interrupción y la identificación del dispositivo.
  2. Dada su naturaleza asíncrona, es muy difícil probar su funcionamiento, y todavía más, encontrar posibles fallas.
  3. Pueden requerir instrucciones adicionales además de las estrictamente necesarias para dar servicio al dispositivo. Por ejemplo, para preservar registros o identificar al dispositivo.

TIPOS DE INTERRUPCIONES.

Un microprocesador puede tener entradas para responder a dos tipos de interrupciones: inhibibles (maskables) y no inhibibles (non maskables).

Cuando se activa una entrada de interrupción no inhibible, el microprocesador siempre es interrumpido, es decir, la señal de interrupción es aceptada bajo cualquier condición. Esto hace que las interrupciones no inhibibles sean las más apropiadas para manejar eventos catastróficos tales como la pérdida de energía.

Cuando se activa una entrada de interrupción inhibible, el microprocesador reconoce la interrupción solamente si esa entrada se encuentra habilitada. Las entradas de interrupción inhibibles se habilitan bajo el control del programa. Si la entrada está inhabilitada, el microprocesador ignora la interrupción. En la siguiente figura se muestra la configuración interna de las entradas de interrupción inhibible y no inhibible en un microprocesador.

Una entrada de interrupción no inhibible se puede habilitar externamente por medio de una señal proveniente de un puerto de salida.

RESPUESTA A UNA INTERRUPCIÓN. En respuesta a una interrupción el microprocesador realiza las siguientes operaciones:

  1. Se completa la instrucción que está en proceso.
  2. Se ejecuta un ciclo de máquina especial, durante el cual se almacena el contenido del contador del programa y se transfiere el control a una dirección apropiada.
  3. Se inicia la ejecución de la subrutina de servicio a la interrupción, preservando el estado de la CPU si esto es necesario.
  4. Si son varios los dispositivos que pudieron haber causado la interrupción, se identifica aquel que haya solicitado la interrupción primero y tenga mayor prioridad.
  5. Se ejecuta la parte de la subrutina de servicio que compete directamente a la atención del dispositivo que interrumpió.
  6. Se restaura el estado original del microprocesador.
  7. Se devuelve el control a la instrucción siguiente, a aquélla donde ocurrió la interrupción.

La siguiente figura muestra la secuencia descrita. Cada etapa requiere de una cierta cantidad de tiempo. La combinación de los tiempos para un microprocesador dado, junto con la circuitería externa de interrupción, determinan la velocidad de respuesta del microprocesador a una solicitud de servicio generada por un dispositivo E/S.

Secuencia de acciones asociadas con la respuesta a una interrupción.

 

El tiempo que transcurre entre la ocurrencia de la interrupción y el inicio de la ejecución de la subrutina de servicio se conoce como el TIEMPO DE RESPUESTA y es la suma de los tiempos de las etapas 1 a 4. A diferencia entre el tiempo total que el microprocesador dura interrumpido y al tiempo real de ejecución de la subrutina de servicio se lesllama sobrecarga (overhead).

El número de circuitos adicionales requeridos para producir la respuesta a una interrupción varía mucho. Algunos microprocesadores construyen internamente la instrucción que transfiere el control a la subrutina de servicio; otros necesitan circuitos externos para generar la instrucción de transferencia de control o para formar la dirección de la subrutina de servicio.

 

El número de entradas de interrupción que tenga el circuito integrado de un microprocesador determina el número de respuestas que puede producir sin hardware o software adicionales. La CPU solamente puede generar una instrucción o dirección diferente por cada entrada de interrupción.

Si el número de dispositivos que pueden provocar una interrupción excede al número de entradas de interrupción, el microprocesador necesitará hardware o software extra para identificar el causante de la interrupción. En el caso más simple, el software puede ser una subrutina de encuesta o muestreo (polling) que revise el estado de los dispositivos que pudieran haber interrumpido. La solución alternativa es hardware adicional que proporcione una clave específica o "vector" para cada dispositivo. Las dos alternativas se pueden mezclar; los vectores pueden identificar grupos de dispositivos y en ellos se puede detectar un dispositivo particular por medio de muestreo (polling).

 




  • Webpromotion Free 3D Animation