Está en la página 1de 15

SECUENCIADOR DE MICROPROGRAMA

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.