0 оценок0% нашли этот документ полезным (0 голосов)
457 просмотров15 страниц
El documento describe el funcionamiento de un secuenciador de microprograma. Explica que existen dos enfoques para diseñar un secuenciador: cableado o microprogramado. Un secuenciador cableado es un autómata finito determinista cuya funcionalidad no puede cambiarse fácilmente, mientras que uno microprogramado almacena instrucciones en una memoria, permitiendo variar su comportamiento de forma más sencilla. También señala que la microprogramación permite pasar de un microprocesador de propósito general a uno específico con solo cambiar el
El documento describe el funcionamiento de un secuenciador de microprograma. Explica que existen dos enfoques para diseñar un secuenciador: cableado o microprogramado. Un secuenciador cableado es un autómata finito determinista cuya funcionalidad no puede cambiarse fácilmente, mientras que uno microprogramado almacena instrucciones en una memoria, permitiendo variar su comportamiento de forma más sencilla. También señala que la microprogramación permite pasar de un microprocesador de propósito general a uno específico con solo cambiar el
El documento describe el funcionamiento de un secuenciador de microprograma. Explica que existen dos enfoques para diseñar un secuenciador: cableado o microprogramado. Un secuenciador cableado es un autómata finito determinista cuya funcionalidad no puede cambiarse fácilmente, mientras que uno microprogramado almacena instrucciones en una memoria, permitiendo variar su comportamiento de forma más sencilla. También señala que la microprogramación permite pasar de un microprocesador de propósito general a uno específico con solo cambiar el
El secuenciador es el centro neurálgico de gestión, control y
planificación del microprocesador, por tanto su función es fundamental para el desarrollo de cualquier instrucción software.
A la hora de realizar un secuenciador pueden tenerse
presente dos políticas de diseño: históricamente, la primera es la cableada. Esta metodología convierte el secuenciador de la máquina en un autómata finito determinista (máquina de Mealy o máquina de Moore). Los secuenciadores así diseñados tendrán siempre la misma funcionalidad, y sólo mediante una modificación hardware podrá ser cambiada; esto obliga a un costoso desarrollo hardware del equipo. al mismo tiempo que dificulta notablemente la prueba y la fiabilidad del mismo.
Por otra parte, el secuenciador puede diseñarse como si fuese
un microprocesador del propio microprocesador. En este caso, las decisiones no están sujetas a un circuito combinacional lógico, sino al contenido de una memoria (memoria de microprograma el contenido de esta memoria es el encargado de establecer el circuito combinacional de estados lógicos para la realización de una determinada tarea, actuando de una forma muy sencilla.
Un valor 1 lógico en una posición de memoria (recuérdese
una célula CMOS cargada) sería equivalente a un circuito cerrado, mientras que un valor 0 lógico sería equivalente a un circuito abierto. Esta técnica de diseño permite. por tanto, variar fácilmente (bastaría cambiar el contenido de la memoria de microprograma) la actuación de un microprocesador ante los mismos eventos, es decir, permite pasar fácilmente un microprocesador de propósito general a uno de propósito específico.
En conclusión, se puede afirmar que si el microprocesador es
el alma funcional de una computadora, el secuenciador lo es a su vez en la misma proporción del microprocesador. La microprogramación, por tanto, es una programación de muy bajo nivel (más bajo que el código ensamblador), a nivel de lenguaje máquina (ceros y unos). Por tanto su aplicación queda restringida a los centros de investigación y desarrollo hardware, ya que el fabricante realizará dicha aplicación tanto para un microprocesador de propósito general como para un microprocesador de propósito especifico, a petición del cliente. Debido a esto, un usuario normal no puede modificar ni la estructura ni el código de microprograma residente en su microprocesador.
MICROPROCESADOR Y MICROPROGRAMACION
Hasta ahora se han visto los principios básicos de
funcionamiento del microprocesador, pero no se ha hablado de su funcionamiento interno en profundidad.
Tarjeta madre de una PC. De todos los componentes que
aparecen, sin duda el microprocesador es el más importante.
Para entrar en profundidad en el análisis de este tema se
establecerá una analogía, consistente en pensar que el microprocesador es, en sí un microcomputador, es decir, se realizará una semejanza entre las partes de un microprocesador y las partes de un microcomputador.
El microprocesador puede dividirse en dos bloques
funcionales: la unidad aritmético-lógica y la unidad de control.
La unidad aritmético-lógica suministra un conjunto de
facilidades que permiten la realización de cálculos aritméticos y lógicos. Su funcionamiento y su gestión viene determinado por la unidad de control en concreto por las órdenes dirigidas hacia ella por el secuenciador.
Sin embargo, realmente la parte interesante del
microprocesador es la unidad de control.
Esta a su vez presenta un conjunto independiente de bloques
funcionales que determinan el funcionamiento global de éste. Estos bloques funcionales son un decodificador de microinstrucción, una memoria de microinstrucción ROM (en algunos casos una EPROM) y un secuenciador de microinstrucciones.
El decodificador de miroinstrucciones se encargará de, una
vez decodificada la instrucción, decodificará a su vez las microinstrucciones necesarias para que el secuenciador, haciéndo un uso secuencial de ellas, ejecute la tarea o tareas requeridas por la instrucción (microinstrucciones).
La memoria de microinstrucción es, generalmente, una
memoria secuencial que en los productos comerciales aparece de "solo lectura" mientras que en los productos de investigación es de "lectura y escritura". En esta memoria se guardan las codificaciones binarias elementales que permiten la realización de una instrucción de código. El hecho de que los códigos binarios que componen cada microinstrucción sean secuenciales, se debe a que no es necesaria a la introducción de ningún salto para la realización de una determinada tarea, ya que cada microinstrucción hace referencia, única y exclusivamente, a un único punto de control hardware (un valor de una tensión) concreto de la estructura del microprocesador.
La existencia de una memoria de microprograma se debe a
la utilización de una metodología software en el desarrollo hardware de un equipo. Bien es cierto, como se verá más adelante, que un secuenciador puede estar, o cableado (autómata) o microprogramado, siendo en este último caso cuando esta justificado el uso de una memoria de programa. Su función básica es, por tanto, la de almacenar las microinstrucciones necesarias para la ejecución de cualquier tarea que sea solicitada por un proceso (programa) de usuario, incluidas las del propio sistema operativo.
COMO ACTUA EL MICROPROCESADOR
La definición más precisa del microprocesador posiblemente
sea la de "dispositivo electrónico de Lógica secuencial programable". Esta definición identifica los principales parámetros de funcionamiento de este elemento. En primer lugar es un elemento "electrónico", es decir que funciona con corriente eléctrica actuando sobre elementos semiconductores de silicio para controlar su empleo; en segundo lugar es "digital", lo que indica que trabaja con estados binarios de información: O y 1, (todo y nada o sí y no): en tercer lugar es "secuencial", que significa simplemente que ejecuta una instrucción tras otra, y que su estado actual depende, entre otros factores, del estado anterior que tuviera. Y por último es "programable" que es el único elemento de la definición que parece tener sentido. Realmente este es el punto más importante y notable del microprocesador. La tarea que ejecuta cambia según el programa que asignemos, e incluso más, en función de la "secuencia de programa" indicada. El microprocesador necesita toda una serie de elementos adicionales para formar de manera efectiva un sistema inteligente
Las ventajas que aporta un sistema basado en
microprocesador se derivan de la capacidad para ejecutar una tarea repetitiva con gran velocidad, así como leer, elaborar y almacenar, en suma procesar, una gran cantidad de información digital.
Los diferentes modelos de ordenadores IBM PC y compatibles
están realizados en torno a los diversos microprocesadores de la familia Intel 80x86. Cada nuevo modelo más avanzado de microprocesador ha permitido crear un ordenador más potente y rápido.
Como ya sabemos, el núcleo del sistema es el
microprocesador, pero éste necesita una gran cantidad de dispositivos adicionales para lograr su adecuada potencia de trabajo. De igual forma que el cuerpo humano no es sólo el cerebro, aunque éste sea la parte más notable del mismo, el ordenador no está formado únicamente por su microprocesador. Para realizar el diseño de un potente y completo sistema, se necesita rodear al micro de memoria, controladores, y periféricos. Sin la ayuda de estos dispositivos, el microprocesador pierde gran parte de su potencial.
La memoria permite almacenar gran cantidad de datos que
el procesador lee o escribe, incluyendo el programa que determina su funcionamiento. El procesador se encarga de recibir los valores, y determinar qué parte corresponde a programa, qué instrucciones debe ejecutar, y cuáles son los datos de operación. Prácticamente todo el proceso de datos se realiza en los registros internos del procesador, por lo que los valores deben llegar, o partir, al mismo.
Los periféricos se encargan de abordar tareas sencillas
relacionadas con la comunicación hacia y desde el exterior de equipo. Los ejemplos más comunes de estos periféricos son los encargados de gestionar el interface paralelo, para salida hacia impresora Centronics, y el serie. Este último está preparado para comunicaciones serie, RS232, lo que le permite enlazar tanto con un modem (y de ahí a la línea telefónica), un plotter, el ratón, e incluso otro ordenador.
Los controladores cumplen dos misiones. Por una parte
descargan de trabajo al ordenador, con lo que éste puede dedicarse a la tarea principal de gestionar datos, mientras que los controladores se encargan de proporcionar un interface más o menos inteligente con el mundo exterior. Por otra parte, esto permite diseñar complejos microprocesadores para concentrarse en las tareas de gestión, y por tanto de uso totalmente general, mientras que los controladores, de elaboración más sencilla, se adaptan para funcionar con una determinada tarea.
La división entre microprocesadores y controladores resulta
cada vez más sutil, ya que en algunas ocasiones se necesita un controlador tan complejo para una tarea que se opta por colocar otro microprocesador dedicado a una labor específica. Los PC, incluyendo el XT y posteriores incluyen al menos un controlador, que realmente es un microprocesador dedicado, para la interface de teclado.
LAS LINEAS DE UNION
EI bus del microprocesador es simplemente el conjunto de
líneas eléctricas, cables, etc., que llevan las distintas señales necesarias para interconectar todos los elementos del sistema.
Estas líneas aseguran el contacto eléctrico desde el
microprocesador, que es el encargado de llevar el control, hasta los diferentes elementos, memoria, controladores, periféricos, que se comunican con aquél. Una parte especial del bus en una placa de un ordenador es el denominado bus de expansión. En éste, las líneas están repartidas en unos conectores que permiten enganchar sobre ellos tarjetas de expansión. Sobre estas tarjetas se adapta cualquier periférico, o memoria, que no esté presente sobre la placa principal que contiene los circuitos del ordenador.
Este sistema permite fabricar una placa
con circuitería estándar, o básica, apta para cualquier tarea general, y que el usuario pueda completar el equipamiento del sistema según sus necesidades. La placa base del sistema incluye al menos el microprocesador, el reloj, la memoria, controlador de teclado, de interrupciones y algunos contadores programables (uno de los cuales se encarga de manejar el altavoz). Adicionalmente puede contener también los periféricos serie y paralelo, y en algunos casos el controlador de vídeo y de discos. La circuitería enumerada, y que es la que resulta necesaria para formar un equipo completo, que no esté implantada en la placa base debe colocarse en los conectores de expansión.
Un equipo que integre en su placa base todos los elementos
resulta por lo general más compacto y barato, pero al tiempo reduce las posibilidades de actualizarlo con otros dispositivos más modernos (por ejemplo controladoras de vídeo de mayor resolución y colores). Colocar sólo lo más elemental sobre la placa base y completar el equipamiento sobre los slots de expansión permite al usuario adquirir un equipo configurado a medida, pero ocupando ya de partida el sitio reservado para ampliaciones; con ello puede quedarse sin sitio para colocar dispositivos especiales (modem, digitalizadores, controladores de discos ópticos, cintas streamer) en el ordenador.
La rápida evolución de los microprocesadores empleados
hace que algunos fabricantes hayan optado incluso por colocar el microprocesador y sus elementos indispensables (reloj, buffers, etc.) en una placa, mientras que los periféricos estándar (temporizadores, controlador de teclado, de interrupciones, canales serie y paralelo) son situados sobre la placa base. En algunos modelos incluso se llega a realizar una placa base que sólo contiene los slots de expansión, y el micro y periféricos se comunican unos con otros a través del bus de expansión. Cualquiera de estos sistemas está orientado a conseguir que la actualización del microprocesador a una versión más rápida y potente, se realice de la forma más sencilla posible, ya que sólo es necesario desmontar una tarjeta de ampliación, en lugar de tener de cambiar toda la placa base, o incluso el equipo completo.
LAS LINEAS DE INTERRUPCION
EI microprocesador dispone de una línea de "atención" para
acudir a gestionar con rapidez la solicitud de algún dispositivo. Este método consiste en la línea de interrupción con que está dotado el micro.
Se trata de un proceso que se inicia por hardware, pero que
se continúa mediante el software.
Cuando se activa una señal de interrupción, el
microprocesador completa la instrucción en curso y luego detiene el proceso o programa, actualmente en ejecución, y salva una serie de registros del ordenador; entre estos registros se cuentan el contador de programa con lo que guarda el punto actual en la ejecución del mismo, de forma similar a una llamada a una subrutina. Luego coloca en el bus un ciclo de "reconocimiento de la interrupción", a lo que la circuitería que ha producido ésta responde con un valor de 8 bits, entre 0 y 255, que indica el índice para el vector de gestión de la interrupción. Tras esto, el procesador transfiere el control al programa de tratamiento indicado por el vector.
Una vez realizado su proceso y antes de finalizar, el programa
de interrupción debe haber dejado todos registros que haya empleado o modificado.
Los programas de gestión de interrupciones deben terminar
con una instrucción especial, IRET, que indica al procesador que ha llegado el momento de volver de la interrupción. Gracias a ello se reponen los registros salvados en la entrada, y se devuelve el control al punto exacto del programa principal interrumpido.
La creación de programas que utilicen las señales de
interrupción son realmente críticas, ya que deben tener en cuenta un manejo sofisticado de los recursos del ordenador y evitar situaciones de conflicto con el desarrollo normal del resto de los programas.
Ejemplos típicos de periféricos que tienen asignada una
interrupción para su funcionamiento son los puertos paralelos y serie del ordenador, la interface de teclado y el de ratón, así como el controlador de disco, entre otros. El reloj virtual del ordenador también está controlado mediante una interrupción periódica generada por un contador programable que emite unos pulsos - interrupciones- por segundo.
Cualquier periférico que desee enviar información al
microprocesador sin que se sepa de antemano cuándo va a llegar esta información es un candidato a emplear interrupciones, y su correspondiente programa de control.
Los microprocesadores Intel disponen de dos fuentes de
interrupción.
Una de ellas es No Enmascarable (NMI,
Non Mascable Interrupt), lo que significa que siempre que se produzca será atendida por el procesador.
La otra, INTR, es enmascarable lo que proporciona una
mayor versatilidad, ya que podemos desactivarla durante la ejecución de ciertas tareas, y activarla cuando el proceso que se está realizando puede ser interrumpido. Un bit de registro de indicadores determina si la interrupción es aceptada o no. Como normalmente es el microprocesador el que se comunica con los periféricos, las interrupciones permiten un medio para que estos dispositivos se comuniquen con el micro.
Las interrupciones, por tanto, ayudan a que el procesador se
relacione con el mundo exterior, el cual incluye una gran variedad de señales cuyo momento exacto de producción, o disponibilidad, no resulta predecible de forma exacta. Más adelante se continua hablando a cerca de las interrrupciones.
EL BUS DEL SISTEMA
Se denomina un bus al conjunto de líneas eléctricas que
conducen las diversas señales digitales dentro del ordenador. El bus no aporta inteligencia al sistema, pero sí es el responsable de una misión de alta importancia, como es lograr que todo el conjunto de elementos funcione como un conjunto, y no como entidades separadas. En última instancia, el bus, o más bien su adecuada distribución sobre la placa, determina la máxima velocidad que puede alcanzar el conjunto. No basta pues con colocar en los zócalos integrados un microprocesador y unas memorias rápidas; si el bus no transmite las señales a la velocidad adecuada sin alterarlas, colocará un límite insalvable de velocidad en el sistema.
En cuanto a su misión, las señales que atraviesan el bus
establecen una división en tres grandes grupos: direcciones, datos y de control. El bus de direcciones, o conjunto de líneas que llevan la información de la dirección de memoria, se encarga de aportar las señales que indican la posición de un dato. El valor en sí se transmite por el bus de datos. Las señales de control aportan información acerca de la operación que está realizando el ordenador: lectura, escritura, acceso de un dispositivo E/S o de memoria, etc. El bus de control es el responsable entre otras tareas de controlar el tráfico de señales en los otros dos buses. Todo el proceso de funcionamiento de las señales en el bus está determinado normalmente por el microprocesador, que es quien coloca las señales en el bus, y se realiza según una cadencia determinada por el reloj del sistema. No hay que confundir el reloj del sistema con la frecuencia de funcionamiento del microprocesador. El reloj del sistema funciona cuatro veces más rápido que la frecuencia del microprocesador, a fin de permitir la adecuada subdivisión de las tareas internas que ejecuta el micro. Más que como un corazón, el reloj del sistema actúa como un metrónomo, indicando el ritmo que deben seguir todas las operaciones, y asegurando una correcta sincronización de todos los procesos.
LA MEMORIA INTELIGENTE DEL ORDENADOR
EI único programa que existe dentro del ordenador al
encenderlo se encuentra grabado sobre una memoria de sólo lectura denominada BIOS (Basic Input Output System). El ROM BIOS viene a ser como el fulminante de una bomba: una pequeña explosión inicial que se activa fácilmente, y que sirve para poner en marcha la detonación de una gran cantidad de material de explosivo contenido en la bomba. Los potentes efectos de esta bomba vienen dados por el material explosivo, pero éste no se activa a menos que funcione el fulminante. Así, el BIOS se encarga de aportar una pequeña dosis de programa (inteligencia) necesaria para que el sistema comience a trabajar adecuadamente; las funciones del BIOS incluyen la identificación de los elementos presentes en la placa, memoria y periféricos, así como la carga del sistema operativo, DOS, y su posterior ejecución. Entre las funciones del BIOS está la de averiguar, mediante una sencilla prueba de escritura y posterior lectura con verificación, la cantidad de memoria que está colocada en el ordenador; otras funciones iniciales incluyen el manejo elemental de los puertos serie y paralelo del ordenador, el borrado de pantalla y colocación del cursor al comienzo. El BIOS contiene también una serie de instrucciones de manejo sencillo del ordenador, como recibir caracteres del teclado, presentar el texto en la pantalla, etc. Estas funciones, catalogadas mediante llamadas a interrupciones BIOS del sistema, están ampliamente documentadas, y permiten a los programadores evitarse el duplicar trabajo al tener disponibles las entradas y salidas básicas del ordenador.
Una de las últimas funciones del BIOS consiste en determinar
en cuál de los discos presentes en el ordenador hay un sistema de arranque, BOOT, con el DOS, y de comenzar a cargarlo para posteriormente transferir a éste el control. El DOS - Disk Operating System-, se encarga de la gestión general del sistema, incluyendo archivos, discos, visualización y soporte de las rutinas que los programas de aplicación necesitarán para aprovechar las capacidades del ordenador. El DOS también se apoya sobre el BIOS, ejecutando algunas llamadas a éste, pero amplía notablemente las capacidades básicas incluidas en el mismo. Una zona de memoria, denominada área de sistema, almacena los parámetros que usan tanto el BIOS como el DOS. En esta zona se guarda información relativa a la cantidad de memoria total, libre y ocupada, la situación de periféricos, o la posición del cursor de pantalla entre otros.
El BIOS representa la inicialización y el manejo básico del
ordenador y periféricos, mientras que el DOS, (y sobre éste los programas de aplicación), el uso avanzado del mismo. En los primeros modelos de PC IBM, el intérprete BASIC, estaba colocado en una ROM, con lo que no era necesario cargarlo desde disco. Si bien esto presenta una ventaja inicial, a la larga resultó ser un programa cuyo cambio a una versión más moderna resultaba una tarea excesivamente complicada para el usuario.
EL BUS DE EXPANSION: AMPLIANDO EL SISTEMA
En los IBM PC/XT, el bus de expansión está dotado de conectores que permiten acceder a los 16 bits de direcciones y datos manejados por el 8088/8086.
En los modelos AT, el bus se amplió a 32 bits para aprovechar
la capacidad de direccionamiento del 80286; el bus AT también se denomina ISA (Industry Standard Architecture), ya que ha sido la norma más empleada durante bastante tiempo.
La nueva y más avanzada generación de ordenadores IBM
compatibles se ha bifurcado en cuanto a normas del bus de expansión y realmente de arquitectura interna: por un lado IBM apuesta por la ruptura con los sistemas anteriores con el MCA (Micro Channel Architecture) implantado en la familia PS/2, mientras que un elevado número de fabricantes han preferido mantener la compatibilidad con las tarjetas desarrolladas previamente, al tiempo que dejan sitio para las mejores posibilidades de los modernos microprocesadores y software avanzados.
Esta última opción se denomina EISA
(Extended Industry Standard Architecture), ya que se trata de una versión ampliada de la ISA.
Tanto la arquitectura EISA como la MCA contemplan
avanzadas soluciones hardware para permitir un mejor empleo del sistema para gestión multitarea, colocar varios procesadores en el mismo ordenador y repartir las tareas al tiempo que se comparten los recursos.
Después de estas opciones los fabricantes desarrollaron
nuevas tarjetas que mantienen la compatibilidad ISA pero mucho más potentes: las VESA Local Bus.
Esta es la tendencia que se impone actualmente con las
nuevas versiones PCI (Peripheral Component Interconnect): adaptar los equipos a fin de que los nuevos avances tecnológicos sean fácilmente implantables en ellos, y facilitar en cualquier caso la ampliación del sistema. Más adelante se hablará un poco más sobre estas arquitecturas.
DIRECCIONAMIENTO
Los microprocesadores clásicos de 8bits empleaban una
técnica de direccionamiento denominada lineal, ya que el contenido de un único registro se encargaba de colocar la dirección real de memoria; todo el campo de direcciones era accesible de forma lineal, a base de incrementar un registro.
Para guardar la adecuada compatibilidad y así
poder direccionar con los procesadores de 16 bits los elementos de los micros de 8 bits, Intel empleó una técnica denominada segmentación.
En el direccionamiento segmentado, un registro contiene la
información del trozo, segmento, de memoria a la que se va a acceder, mientras que un segundo registro se encarga de completar el acceso indicando el desplazamiento.
De esta forma, el programador no ve las direcciones físicas,
reales, de memoria sino una dirección lógica (virtual); la dirección virtual está definida como el conjunto de un identificador de segmento, denominado también selector, y de una dirección relativa al segmento, y que se denomina desplazamiento.
Un segmento no es otra cosa que una zona de memoria
constituida por posiciones contiguas.
La segmentación no implica una división funcional de la
memoria, ya que una cierta posición de RAM puede ser alcanzada con diversos valores de segmento y desplazamiento.
El sistema de direccionamiento segmentado permite, por
ejemplo, separar radicalmente las zonas que contienen el programa (y que por tanto no son modificadas) de las zonas de datos y de pila (stack).
Como ya hemos visto este mecanismo a su vez también es
capaz de implementar efectivamente las técnicas de conmutación de tareas y protección entre ellas.
Las direcciones lógicas (virtuales) son convertidas en
direcciones físicas (reales, o también lineales) de forma diferente según el tipo de microprocesador, e incluso según el modo en que esté trabajando.
Así, con la formación de una dirección física en el 486
mediante la técnica de paginación, en las cuales además de un selector y un desplazamiento interviene un índice de directorio, se consigue que con 32 líneas de direcciones, el 486 pueda acceder a 64 Gigabytes en modo virtual.