Está en la página 1de 11

 

Se define microinstrucción  notación utilizada para describir el conjunto de


microoperaciones que se realizan simultáneamente en un mismo período y se
representan con una palabra de control.
Especifica todas las señales de control del camino de datos más la posibilidad de decidir
condicionalmente qué microinstrucción se debe ejecutar a continuación
–Cada palabra de la memoria de control es una microinstrucción.
–Formato de las microinstrucciones
•Señales de control: Señales para el camino de datos
•Condiciones: Bits que se pueden usar para seleccionar la condición que se desea utilizar
para, en función de si es cierta o no, ejecutar la siguiente microinstrucción o saltar a otra.
•Siguiente instrucción: Campo que indica la siguiente instrucción a ejecutar

La microinstrucción es una palabra binaria con tantos bits como señales de control existan
en el microprocesador. Generalmente no son múltiplos de ocho bits porque no existe
ninguna necesidad de alineamiento. Un bit a "cero" indica que la señal no debe activarse.
Un bit a "uno" indica lo contrario.
Los bits de una microinstrucción se organizan, conceptualmente, en campos. Cada campo
representa un conjunto de señales eléctricas relacionadas entre sí.

La ejecución de una microinstrucción implica activar las señales de control


correspondientes a las microoperaciones que efectúa y determinar la dirección de
la microinstrucción siguiente.
Cada microinstrucción se almacena en una memoria de control y, por lo tanto,
cada una tiene asignada una dirección de memoria diferente.
Para especificar la secuencia de ejecución de las microinstrucciones, se necesita
más información que la misma palabra de control. Esta información adicional da
lugar a dos tipos básicos de microinstrucciones:
1) Microinstrucción horizontal. Se añade a la palabra de control un campo para
expresar una condición y un campo para especificar la dirección de la
microinstrucción siguiente que se tiene que ejecutar cuando se cumpla la
condición.
Los bits de la palabra de control representan directamente las señales de control.
2) Microinstrucciones verticales. Para reducir el tamaño de las
microinstrucciones horizontales, se codifican los bits de la palabra de control, de
manera que se reduce el número de bits necesarios.
Si tenemos una palabra de control, donde tenemos grupos de 2N bits que no se
activan simultáneamente, se pueden codificar utilizando N bits. Por ejemplo, un
grupo de 24 = 16 bits de la palabra de control se puede codificar utilizando solo 4
bits.
El inconveniente de este tipo de microinstrucciones es que los bits de la palabra
de control no representan directamente las señales de control, y hace falta un
descodificador para traducir los códigos que aparecen en la microinstrucción de
señales de control individuales.
El conjunto de microinstrucciones necesarias para ejecutar una instrucción da
lugar a un microprograma (microcódigo o firmware). Como cada instrucción realiza
tareas diferentes, es necesario un microprograma diferente para cada instrucción
del juego de instrucciones de la arquitectura.

Microinstrucciones.
- Agrupamiento de señales de control.
- Secuenciamiento de microprograma.
- Macroinstrucción con campo de siguiente dirección.
- Traída previa de microinstrucciones.
- Emulación.
- Rebanada de bits.
TIPOS DE SEÑALES DE CONTROL:
Las señales de control se agrupan según el tipo de señales que intervienen en:
Sistemas de Control Analógicos: Son señales que tienen una variación decimal
dentro de un rango de valores y suelen ser eléctricas. Señales de tipo continuo (de
0 a 10 V, 4 a 20mA, entre otras) proporcionales a unas determinadas magnitudes
físicas (presión, temperatura, Velocidad).
Sistemas de Control Digitales: Señales Binarias, del tipo todo o nada, solo
representan estos dos estados, son señales que sólo pueden indicar dos valores
(0 o 1). Este tipo de señal indica al usuario si la variable está activada o
desactivada con señales de 0 a 5V.
Sistemas Híbridos Analógicos-Digitales: Este grupo los conformaría Autómatas
Programables.
Microprograma
Es un tipo particular de firmware utilizado en algunos microprocesadores de
propósito general. Un microprograma es una secuencia de datos binarios o
microinstrucciones que representan señales eléctricas internas de la unidad de
control de un microprocesador.
Las dos tareas que hace la unidad de control microprogramada son la
secuenciación de las microinstrucciones y la generación de las señales de control.
Secuenciación de las microinstrucciones
Una de las tareas más complejas que hace la unidad de control
microprogramada es determinar la dirección de la microinstrucción siguiente que
se ha de ejecutar, tarea que lleva a cabo el generador de direcciones.
La dirección de la microinstrucción siguiente la determinan estos factores:
El registro de instrucción, que solo se utiliza para determinar el microprograma
propio de cada instrucción.
El registro de estado, que solo se utiliza cuando hay que romper la secuencia
normal de ejecución de un programa, como sucede cuando se han de evaluar las
condiciones en una instrucción de salto condicional.
El campo de condición de la microinstrucción. Es el factor que se utiliza más
frecuentemente. Este es el factor que hay que evaluar para saber si se debe
continuar en secuencia o hacer una bifurcación:
-Si la condición indicada es falsa, la microinstrucción siguiente que se ejecutará es
la que sigue en secuencia y la dirección de esta microinstrucción puede estar
especificada en la misma microinstrucción o se puede obtener incrementando el
valor actual del registro de direcciones de control.
-Si la condición indicada es cierta, la microinstrucción siguiente que se ejecutará
es la que indica la dirección de bifurcación y esta dirección se obtiene de la misma
microinstrucción.
Formatos del campo de dirección y condición de la microinstrucción
El campo de dirección y condición de las microinstrucciones puede tener los
formatos siguientes:
1) Dos campos explícitos. En la microinstrucción se especifican dos direcciones
explícitas: la dirección de la microinstrucción que sigue en secuencia y una
dirección de bifurcación. Según si se cumple o no la condición, se carga una
dirección o la otra en el registro de direcciones de control.
Con esta técnica no se necesita una lógica para incrementar la dirección actual y
pasar a la microinstrucción siguiente que sigue en secuencia pero requiere más
bits que otros formatos.
Ejemplo de circuito generador de direcciones con dos campos explícitos
Ejemplo de circuito generador de direcciones con dos campos explícitos
2) Un campo explícito. En la microinstrucción se especifica explícitamente una
dirección: cuando se cumple la condición indicada, se carga el registro de
direcciones de control con la dirección explícita. Cuando no se cumple la
condición, se carga el registro de direcciones de control con el valor incrementado
del registro de direcciones de control.
Ejemplo de circuito generador de direcciones con un campo explícito
Ejemplo de circuito generador de direcciones con un campo explícito
3) Microinstrucciones de formato variable. En este formato solo están el campo
de condición y el campo de palabra de control. En las microinstrucciones de salto,
se utiliza una parte del campo de la palabra de control como dirección de
bifurcación, lo que obliga a utilizar un bit de la microinstrucción para indicar si es
necesario interpretar esta parte del campo de la palabra de control como la
dirección de la microinstrucción siguiente o como parte de la palabra de control.
La ventaja principal de este método es que nos permite reducir el tamaño de las
microinstrucciones y no complica excesivamente la lógica de control de la unidad
de control.
Secuenciador de microprograma
Los componentes básicos de una unidad de control microprogramada es memoria
y los circuitos que seleccionan la dirección siguiente. La parte de selección de
dirección se llama secuenciador de microprograma. Puede construirse un
secuenciador de microprograma con funciones digitales que se ajusten a una
aplicación particular.
El propósito de un secuenciador de microprograma es presentar una dirección a la
memoria de control con el fin de que pueda leerse y ejecutarse una
microinstrucción. La lógica de la siguiente dirección del secuenciador determina la
dirección fuente especifica que de va a cargar dentro del registro de control de
direcciones. La elección de la dirección fuente se guía mediante los bits de
información de la dirección siguiente que recibe el secuenciador de la
microinstrucción presente. Los secuenciadores comerciales incluyen dentro de la
unidad una pila de registro interno que se usa para almacenamiento temporal de
direcciones durante solicitudes de subrutina y una de microprograma. Algunos
secuenciadores proporcionan un registro de salida que pueden funcionar como
registro de dirección de la memoria de control.
De manera general, se entiende por una señal de control como una línea física
que sale de la unidad de control y va hacia uno o más dispositivos del computador
por los que circula una señal eléctrica que representa un valor lógico 0 o 1 y según
cuáles sean los dispositivos a los que está conectado, es activo por flanco o por
nivel.

Una instrucción en lenguaje ensamblador que es equivalente a otro grupo de


instrucciones que, en conjunto, realizan una tarea más compleja. Esta
equivalencia es definida por el programador con objeto de simplificar la tarea de
escribir programas y reutilizar el código escrito.Una macroinstrucción que aparece
en un fichero fuente, es sustituida por el programa ensamblador en el fichero
objeto por el grupo de instrucciones en lenguaje ensamblador que se han definido.
Esta acción se denomina comúnmente expandir la macro.
Cuando el programador escribe el nombre de una macro instrucción, es como si
hubiese escrito todas las instrucciones que la componen. Para poder llamar a las
macro instrucciones por su nombre es preciso haberlas definido previamente.
Cuando un macroensamblador realiza la traducción de lenguaje ensamblador a
lenguaje de máquina y encuentra el nombre de una macro instrucción el programa
la sustituye por todas las instrucciones que la componen. A este proceso se le
llama expansión de la macro
Para llamar a una macro instrucción, solo se necesita escribir su nombre en el
campo instrucción y en el campo operando se debe especificar los nombres de los
parámetros en el caso de que existan. Las macroinstrucciones necesitan de un
analizador el cual tiene como primer objetivo encontrar sentencias dentro del
módulo fuente que definan la ubicación y nombre de una macro. Durante este
proceso el módulo fuente no debe sufrir ninguna modificación. Una vez definido el
nombre y la ubicación de la macro, el segundo objetivo de este subprograma es
encontrar invocaciones con los nombres de las macro instrucciones y luego
expandirlas en el mismo sitio en donde se las invocó. Para mayor seguridad y para
no alterar el módulo fuente las expansiones se realizan sobre una copia del
módulo fuente que tiene el mismo nombre pero cuya extensión es ".MCR"
Para expandir una macro primero se debe indicar al programa enlazador de donde
se debe obtener los datos de la macro. Una vez definida la localizador), se puede
invocar a las macro instrucciones desde cualquier parte del programa como si se
tratase de una instrucción.
Las macros suelen almacenarse en el ámbito del propio programa que las utiliza y
se ejecutan pulsando una combinación especial de teclas o un botón
especialmente creado y asignado para tal efecto. La diferencia entre una
macroinstrucción y un programa es que en las macroinstrucciones la ejecución es
secuencial y no existe otro concepto del flujo de programa que por tanto, no puede
bifurcarse.
Un ejemplo de macro, para colocar el cursor en alguna posición determinada de la
pantalla es:
Posicion MACRO Fila, Columna
PUSH AX
PUSH BX
PUSH DX
MOV AH, 02H
MOV DH, Fila
MOV DL, Columna
MOV BH, 0
INT 10H
POP DX
POP BX
POP AX
ENDM
Para utilizar una macro solo es necesario llamarla por su nombre, como si fuera
una instrucción mas del ensamblador, ya no son necesarias las directivas como en
el caso de los procedimientos. Ejemplo:
Posicion 8, 6
Una de las facilidades que ofrece el uso de las macros es la creación de
bibliotecas, las cuales son grupos de macros que pueden ser incluidas en un
programa desde un archivo diferente. La creación de estas bibliotecas es muy
sencilla, únicamente tenemos que escribir un archivo con todas las macros que se
necesitarán y guardarlo como archivo de texto.
Para llamar a estas macros solo es necesario utilizar la instrucción Include
NombreDelArchivo, en la parte de nuestro programa donde escribiriamos
normalmente las macros, esto es, al principio de nuestro programa
Suponiendo que se guardó el archivo de las macros con el nombre de
MACROS.TXT la instrucción Include se utilizaría de la siguiente forma:

;Inicio del programa


Include MACROS.TXT
.MODEL SMALL
.DATA
;Aqui van los datos
.CODE
Inicio:
;Aqui se inserta el código del programa
.STACK
;Se define la pila
End Inicio;Termina nuestro programa
Un emulador es un software originalmente pensado para ejecutar programas de
diversas índoles, en una plataforma o sistema operativo diferente al programa que
se desea abrir o ejecutar. Este tipo de programa se diferencia del simulador, ya
que éste trata de modelar de manera precisa el dispositivo original para que el
programa a ejecutar funcione correctamente en una plataforma distinta. En
cambio, el simulador sólo reproduce el comportamiento original de un sistema
determinado. Puede decirse entonces, que un emulador es un programa diseñado
para crear una plataforma virtual que pueda ejecutar un programa determinado,
que no haya sido diseñado para ser ejecutado en el PC.
El principal objetivo del emulador, es crear las condiciones necesarias para poder
ejecutar un programa diseñado para otras plataformas distintas al PC, de modo
que estos programas son utilizados ampliamente para las siguientes actividades:
• Probar programas de plataformas informáticas diferentes.
• Ejecutar juegos de plataforma en un ordenador.
• Ejecutar programas de ordenadores antiguos.
Los emuladores son ampliamente utilizados para poder jugar juegos antiguos o de
plataformas diversas desde la comodidad de nuestro ordenador, utilizando para
ello un programa o archivo llamado ROM. También, son muy utilizados para
probar software de otros sistemas operativos, como por ejemplo, sistemas Linux y
programas Windows y viceversa, o programas Mac en Windows.
Los emuladores se limitan a imitar a los sistemas de hardware informáticos. En
resumen, los emuladores son simuladores informáticos del sistema. Por ejemplo,
hay emuladores para casi todo tipo de teléfonos que se ejecutan en computadoras
de escritorio. Estos emuladores permiten a los programadores escribir un software
para el sistema sin necesidad de emular el hardware. Esto ahorra tiempo y dinero
en el desarrollo. Otros usos incluyen la compatibilidad con sistemas existentes.
Las consolas modernas de videojuegos utilizan emuladores para imitar el
hardware de sus predecesores. Mientras que las computadoras evolucionan, la
emulación es necesaria para ejecutar el softwaree que fue escrito para sistemas
más antiguos.
En el mundo digital, la emulación se refiere a los procesos que buscan crear un
entorno adecuado para acceder a datos o archivos creados con o para tecnologías
o lenguajes de programación diferentes.
Si se trata de archivos o datos generados en hardwares descontinuados, se habla
de emulación de hardware.
Cuando el objetivo es emular un programa descontinuado o incompatible con el
equipo en uso, se habla de emulación de software .

Bit es la abreviación de Binary Digit (digito binario), la cual en términos técnicos


es la menor unidad de información de una computadora. Un bit tiene solamente un
valor (que puede ser 0 o 1). Varios bits combinados entre sí dan origen a otras
unidades, como “byte”, “mega”, “giga” y “tera”.

Control
Microprogramado
Toda la información procesada por una computadora es medida y codificada en
bits. El tamaño de los archivos son medidos en bits, las tasas de transferencia son
medidas en bit, toda la información en el lenguaje del usuario es convertida a bits
para que la computadora la «entienda».

a un valor del sistema de numeración binario. Dicho sistema se llama así
porque comprende únicamente dos valores de base: 1 y 0, con los cuales se
puede representar una cantidad infinita de condiciones binarias: encendido y
apagado, verdadero y falso, presente y ausente, etc.

También podría gustarte