Está en la página 1de 23

MICROPROGRAMACIN

1.

CONTROL MICROPROGRAMADO
El trmino "Microprograma" fue utilizado por primera vez por Maurice Wilkes
en la dcada del 50, proponiendo un nuevo diseo de la unidad de control
que evitara las complejidades del modelo cableado.
Aparece por primera vez en la IBM/360, aunque no en los modelos de mayor
tamao, luego con la disponibilidad de grandes memorias ROM de
semiconductor, se desarroll ampliamente, tanto que en la actualidad es el
sistema utilizado por casi todos, en mayor o menor medida.
1.1. CONCEPTOS BSICOS:
La unidad de control, tal como ha sido descrita anteriormente, parece
ser un dispositivo razonablemente simple, pero sin embargo su
implementacin es a veces sumamente dificultosa, y sometida a
diversos errores, los cuales se advierten al tener que disponer cables
adicionales al circuito impreso en la zona correspondiente.
MICROINSTRUCCIONES
Consideremos nuevamente la ltima tabla, donde se indican las
micro-operaciones descritas en notacin simblica. Esta notacin se
parece notablemente a un lenguaje de programacin, y de hecho lo
es, y es denominado "Lenguaje de Microprogramacin". Cada lnea
describe un conjunto de micro-operaciones que debe ser llevada a
cabo en un cierto instante de tiempo, y que es conocida como
"Microinstruccin".
La secuencia de estas microinstrucciones es conocida con el nombre
de "Microprograma", o tambin "Firmware", trmino ste que refleja
el hecho de que un microprograma es la va intermedia entre el
Software y el Hardware. Cmo podemos utilizar esto para disear
unidades de control?
Consideremos que por cada micro-operacin todo lo que tiene que
hacer es generar un conjunto de seales de control. De aqu que por
cada micro-operacin, cada lnea de control emergente est en "1" o

en "0". Esta condicin puede ser representada por una palabra


binaria, que tiene un dgito para cada una de estas lneas.
En consecuencia, podemos construir la llamada "palabra de control",
en la cual cada bit representa una lnea de control, por tanto cada
micro-operacin

puede ser representada por una combinacin

diferente de unos y ceros en la palabra de control.


A continuacin, podemos pensar en un listado de palabras de control,
que lgicamente representar una secuencia de micro-operaciones
llevadas a cabo por la unidad de control. Por otra parte, debemos
reconocer que la secuencia de micro-operaciones no es fija, dado
que a veces podemos tener un ciclo indirecto y a veces no.
Pongamos ahora la secuencia de palabras de control en una
memoria, con cada palabra teniendo una sola y nica direccin.
Luego, agreguemos un campo de direccin a cada una, indicando la
direccin de la prxima palabra de control a ser ejecutada si se
cumple con cierta condicin, para lo cual debern agregarse algunos
bits para indicar sta condicin.
El resultado es conocido como "microinstruccin horizontal", y es
mostrado en la figura 1.a, de donde se desprende el formato
siguiente:
Hay un bit por cada lnea de control interna y otro por cada lnea de
control del bus de control. Tambin hay un campo de condicin y hay
un campo con la direccin de la microinstruccin que debe ejecutarse
a continuacin. Tal microinstruccin debe interpretarse como sigue:
a) Para ejecutar esta microinstruccin, active todas las lneas de
control correspondientes al bit "1" y desactive todas las lneas de
control correspondientes al bit "0".
b) Si la condicin indicada por los bits de condicin es falsa, ejecute
la

prxima instruccin en la secuencia.

c) Si la condicin indicada por los bits de condicin es verdadera, la


prxima microinstruccin a ser ejecutada es la indicada en el
campo de direccin.
Lgicamente este sistema precisa muchas posiciones binarias, por
tanto conviene emplear un sistema de codificacin, lo cual nos lleva a
una "Microinstruccin vertical", que es la indicada en la figura 1.b.
El conjunto de microinstrucciones es almacenado en la memoria de
control, el registro de direcciones de control contiene la direccin de
la prxima microinstruccin que debe ser leda. Cuando es leda una
microinstruccin en la memoria de control, es transferida al registro
buffer del control.
La parte derecha de dicho registro, se conecta con las lneas de
control que salen de la unidad de control, as que leer una
microinstruccin en la memoria de control es lo mismo que
ejecutarla.

Figura 1 - Formatos tpicos de microinstrucciones.

En la figura 2, se muestra como las palabras de control pueden ser


dispuestas en una "memoria de control". Las microinstrucciones de
cada rutina deben ser ejecutadas secuencialmente. Cada rutina
termina con un una bifurcacin o un salto, indicando donde se debe
buscar la prxima.
La Memoria de control de la figura 3, puede tomarse como una
concisa descripcin de la operacin completa de la Unidad de
Control, dado que describe la secuencia de micro-operaciones a ser
llevada a cabo durante cada sub-ciclo (bsqueda, indirecto, ejecucin
e interrupcin), y adems indica el secuenciamiento de estos.
UNIDAD DE CONTROL MICROPROGRAMADA.
La memoria de control de la figura 4, contiene un programa que
describe

el

comportamiento

de

la

unidad

de

control,

en

consecuencia, podemos intuir que para implementar la unidad de


control, simplemente debemos ejecutar el programa

Figura 2 -Organizacin de la Memoria de Control.

Figura 3 - Microarquitectura de la Unidad de Control.


El tercer elemento mostrado en la figura es la unidad de
secuenciamiento que alimenta al registro de direcciones de control y
distribuye el comando ledo.
Esta Unidad de Control funciona de la siguiente manera:
a) Para ejecutar una instruccin, la lgica de secuenciamiento
entrega un comando de lectura a la memoria de control.
b) La palabra cuya direccin es especificada por el registro de
direcciones del control, es pasada al registro buffer del control.
c) El contenido del registro buffer de control genera las seales de
control y la informacin de prxima direccin que necesita la
unidad lgica de secuenciamiento.
d) La Unidad lgica de secuenciamiento carga una nueva direccin
en el registro de direcciones del control, en base a lo indicado por
la informacin de nueva direccin proveniente del registro buffer
del control y de las banderas de la ULA.
TODO ESTO OCURRE DURANTE UN SOLO PULSO DE RELOJ.
El ltimo paso indicado, necesita alguna elaboracin. En el final de
cada microinstruccin, la unidad lgica de secuenciamiento carga
una nueva direccin en el registro de direcciones del control,

dependiendo del valor de las banderas de la ULA y el registro buffer


del control, en base al rbol de decisiones realizado de la siguiente
manera:
- Obtener la prxima instruccin: Sumar 1 al registro de direcciones
del

control.

- Saltar a una nueva rutina en base a una microinstruccin de salto:


Cargar el campo de direccin del registro buffer de control en el
registro de direcciones del control.
- Saltar a una rutina de instruccin de mquina: Carga el registro de
direcciones del control de acuerdo al cdigo operativo contenido
en el IR.
- La

misma

figura

4,

muestra

dos

mdulos

denominados

decodificador. El dispuesto en la parte superior, traduce el cdigo


operativo contenido en el IR a una direccin de memoria de
control.
- El decodificador inferior, no es utilizado con microinstrucciones
horizontales,

pero

si

es

necesario

cuando

se

emplean

microinstrucciones verticales.

Figura 4 - Funcionamiento de la Unidad de Control microprogamada.


CONTROL DE WILKES.

Tal como hemos citado, Wilkes propuso por vez primera el uso de un
control microprogramado, el que diagram segn lo indicado en la
figura 5. El corazn del sistema es una matriz de diodos,
parcialmente llena. Durante un ciclo de mquina, una fila de la matriz
es activada mediante un pulso, lo que genera seales en los puntos
donde estn conectados lo diodos (marcados con puntos en el
diagrama).
La primera parte de la fila genera seales de control, que son las
enviadas a controlar la UCP, mientras que la segunda parte genera la
direccin de la fila que debe ser pulsada en el prximo ciclo de
mquina. En consecuencia, cada lnea de la matriz es una
microinstruccin, y la matriz en si misma es la memoria de control.
En el inicio de un ciclo, la direccin de la fila a ser pulsada es
contenida en el Registro I. Esta direccin es la entrada del
decodificador, el que, cuando es activado por el pulso de reloj, activa
esa fila de la matriz.
De acuerdo con lo que indiquen las seales de control, durante el
mismo ciclo, se pasa al Registro II ya sea el cdigo operativo
contenido en el registro de instrucciones, o la segunda parte de la fila
pulsada, que contiene la direccin de la prxima microinstruccin a
ser ejecutada.
El contenido del Registro II es pasado al Registro I por un pulso de
reloj. En consecuencia, se utilizan pulsos de reloj alternados para
activar una fila de la matriz, y para transferir el contenido del Registro
II al Registro I.
Esta disposicin de dos registros es necesaria por cuanto el
decodificador es simplemente un circuito combinacional, y con un
solo registro, la salida se vuelve entrada durante el mismo ciclo,
provocando una condicin inestable.
Este esquema es muy similar a la microprogramacin horizontal
descripta anteriormente. La principal diferencia es que en la

descripcin previa, el registro de direcciones del control puede ser


incrementado en una unidad para entregar la nueva direccin. En el
esquema de Wilkes, la prxima direccin es contenida en la misma
microinstruccin.
Para permitir la bifurcacin, una fila debe contener dos partes
direccin, controladas por una seal de condicin, tal como se
muestra en la figura.

Figura 5 - Unidad de control microprogramada segn Wilkes.


1.2. VENTAJAS Y DESVENTAJAS DE LA MICROPROGRAMACIN.
La principal ventaja es poder implementar una unidad de control en
forma bastante sencilla. Adems el microprograma es almacenado en
una ROM, al cambiarse la misma es posible cambiar la actuacin de la
mquina.

Uno de los hechos importantes, es la flexibilidad del sistema y la


posibilidad de emular otras mquinas, dado que pueden hacerse que
una mquina trabaje con el conjunto de instrucciones de mquina de
otra, a travs de la microprogramacin.
Como principal desventaja, es que la velocidad de la unidad de control
microprogrmada es mucho menor que la del sistema cableado.
2.

CDIGOS OPERACIONALES
Un cdigo de operacin OPCODE (operation code) es la porcin de una
instruccin de leguaje maquina especificada la operacin a ser realizada
su especificacin y formato sern determinados por la arquitectura del
conjunto de instrucciones (isa) del componente de hardware del computador
normalmente un CPU, pero es posiblemente una unidad ms especializada
una instruccin completa de lenguaje maquina contiene un OPCODE y ,
opcionalmente, la especificacin debe actuar. Algunas operaciones tienen
operandos implcitos, o de hecho ninguno.
Algunas ISAs tienen instrucciones con campos definidos para los OPCODES
y operandos, mientras que otras (por ejemplo la arquitectura Intelx86) tienen
una estructura ms complicada y de propsito especfico, los operando
desde los cuales los OPCODES aplican pueden ser, dependiendo de las
arquitectura del CPU, consistir de registros, valores en memoria, valores
almacenados en la pila puertos de entrada o salida, bus, etc.
2.1. Unidades de control
Es la encargada de buscar y hacer ejecutar las instrucciones. Es
entonces una especie de director de operaciones, que manda a todas
las restantes partes de la mquina, lo que deben hacer y en que
instante de tiempo hacerlo.
Es la menos conocida de las unidades que conforman un computador,
por cuanto all es donde an persisten algunos secretos, que los
diseadores se guardan, pues las diferencias entre los diversos
procesadores, que an subsisten, se encuentran en ella.

La funcin de la misma, es la de buscar instrucciones y ejecutarlas. La


primera parte de ste ciclo, que segn dijera, es el ciclo de mquina,
consiste en tomar la direccin de la prxima instruccin, y buscarla en
memoria. La segunda, es interpretar (o decodificar) la parte mando de
la instruccin, para proceder a emitir las seales de comando a todas
las unidades que deben actuar en la ejecucin, en el tiempo adecuado.
INSTRUCCIONES:
La operacin de la UCP es determinada por la instruccin que est
ejecutando. Estas instrucciones son conocidas como instrucciones
de mquina, existiendo una gran variedad de ellas. Cada mquina es
capaz de ejecutar una cierta cantidad de instrucciones distintas, las
que son conocidas como conjunto de instrucciones que es particular
para cada mquina.
a) ELEMENTOS DE UNA INSTRUCCIN DE MQUINA:
Cada instruccin debe contener toda la informacin requerida para
que la UCP realice la ejecucin. En la figura I.9, donde se indica el
diagrama de estados de un ciclo de instrucciones, se tiene una
buena forma de mostrar por implicancia los elementos de una
instruccin. Ellos son:
- Cdigo de Operacin: Especifica la operacin a ser llevada a
cabo. Esta es indicada por un cdigo binario, tambin conocido
como Cdigo Operativo.
- Referencia

al

operando

fuente:

Esta

operacin

puede

comprender una o ms fuentes de operandos, o sea datos que


son las entradas de la operacin.
- Referencia al operando resultado: La operacin puede generar
un resultado. Generalmente donde hay que almacenarlo.
- Referencia a la prxima instruccin: Lo que indica a la UCP
donde buscar la prxima instruccin, luego de haber concluido
la ejecucin de la actual.

La nueva instruccin a buscar se encuentra alojada en memoria, o


en un sistema de memoria virtual, en la principal o en la
secundaria (disco). Donde no hay una referencia especfica a la
prxima instruccin, ella se encuentra en la casilla siguiente, en
cambio cuando se precisa una referencia especfica, se debe
adems suministrar la direccin en la memoria principal o en la
virtual.
Los operandos fuente y resultado, pueden encontrarse en alguna
de las siguientes tres reas:
- Memoria principal o virtual: Como referencia a la prxima
instruccin debe entregarse la direccin en la cual se
encuentra, tanto sea en la memoria principal como en la virtual.
- Registro de la UCP: Con raras excepciones, la UCP contiene
uno o ms registros que pueden ser referenciados por las
instrucciones de mquina. Cuando existe uno solo, la referencia
puede ser implcita. Si existen varios, a cada uno se le asigna
un nmero, y la instruccin con tendr el nmero del
referenciado.
- Dispositivo de E/S: La instruccin debe especificar cual mdulo
y cual dispositivo se utilizarn para la operacin. Si se utiliza un
sistema de E/S por memoria mapeada, es necesaria la
direccin de memoria principal o virtual a la cual se conecta el
dispositivo a emplear.
b) REPRESENTACIN DE INSTRUCCIONES
En el interior de la computadora, cada instruccin es representada
por una secuencia de bits, divididos en campos especficos, que
corresponden a cada elemento de la instruccin. La forma de la
instruccin es conocida como formato de la misma, que podra ser
tal como el indicado en la figura V.1, en la cual se destacan tres
campos: el del cdigo operativo, aqu de cuatro bits, el de la
referencia al primer operando aqu de 6 bits y el correspondiente a
la referencia al segundo operando, que tambin sera de seis bits.

4
codigo
operativo

referencia
operando 1

referencia
operando 2

16
Figura V.1 - Un formato de instruccin simple de dos direcciones.
Dada la dificultad, tanto para el escritor como para el lector, para
interpretar las expresiones en cdigo binario de las instrucciones
de mquina, se ha convertido en prctica corriente la de utilizar
representaciones simblicas, en las cuales los cdigos operativos
son reemplazados por abreviaturas nemotcnicas, tales como:
ADD = suma
SUB = sustraccin
MPY = multiplicacin
DIV = divisin
LOAD = carga de datos desde la memoria
STOR = almacenamiento de datos en memoria
Por otra parte, tambin los operandos son representados
simblicamente, as por ejemplo la instruccin:
ADD R, Y
Puede significar: Sumar el contenido de la locacin Y al contenido
del registro R.
En consecuencia es posible escribir un programa en lenguaje
mquina de una forma simblica, donde cada cdigo simblico es
reemplazable por una secuencia de bits. Asimismo el programador
especifica la locacin correspondiente a cada uno de los smbolos,
para lo cual al inicio del programa les asigna una posicin de
memoria, por ejemplo, en la forma siguiente:

X = 513
Y = 514
Y as sucesivamente.
Es posible escribir todo el programa en sta forma simblica, y
proveer los medios para que un simple programa, traduzca los
smbolos a cdigos binarios. Estos lenguajes simblicos, as como
sus traductores son conocidos como ensambladores.
c) TIPOS DE INSTRUCCIONES
Una computadora tiene un conjunto de instrucciones tal, que le
permite al usuario formular cualquier tarea de procesamiento de
datos. Otra forma de expresar lo mismo, es tener en cuenta que
una mquina debe operar con lenguajes de alto nivel, que son
traducidos a lenguaje de mquina para ser ejecutados, de aqu
que el conjunto de instrucciones de mquina, debe ser lo
suficientemente amplio como para realizar todo lo solicitado por
las instrucciones de alto nivel.
En general pueden darse

cuatro

categoras

tipos

de

instrucciones:
- De procesamiento de datos: instrucciones aritmticas y lgicas.
- De almacenamiento de datos: instrucciones con referencia a
memoria.
- De movimiento de datos: instrucciones de E/S.
- De Control: Instrucciones de prueba y de bifurcacin.
Las instrucciones aritmticas proveen la capacidad de procesar
datos numricos. Las lgicas operan sobre los bits de una palabra,
tratndolos individualmente, por tanto permiten la realizacin de
cualquier tipo de operacin lgica que el programador desee
ejecutar sobre ellos.
Las instrucciones con referencia a memoria, son las encargadas
del movimiento de datos entre la memoria y los registros. Las de
E/S son necesarias para transferir programas y datos hacia la

memoria, as como para que el programador tenga acceso a los


resultados.
Las instrucciones de prueba son utilizadas para comprobar el
contenido de una palabra o para determinar el estado de una
ejecucin. Finalmente, las instrucciones de bifurcacin o de
ramificacin permiten transferir el control del programa a otro
punto del mismo, en funcin de una decisin tomada en base a un
cierto clculo.
d) CANTIDAD DE DIRECCIONES:
Si analizamos la secuencia de operaciones a realizar para la
ejecucin de una instruccin aritmtica, vemos que es necesario
tener:
1) la ubicacin del primer operando
2) la ubicacin del segundo operando
3) la ubicacin donde guardar el resultado
4) la ubicacin de la prxima instruccin.
Lo que nos lleva a una instruccin con cuatro direcciones, la cual
es la menos encontrada en la prctica, por cuanto precisa
procesadores de alta complejidad, con un complicado ciclo de
mquina. Son ms utilizados los sistemas de una, dos o tres
direcciones. Donde la direccin de la prxima instruccin es
implcita (obtenida del contador de programa). La operacin es:
Y = (A-B)/(C+D*E)
INSTRUCCIN

SIGNIFICADO

SUB Y,A,B

Y <-- A-B

MPY T,D,E

T <-- DxE

ADD T,T,C

T <-- T+C

DIV Y,Y,T

Y <-- YT

Con instrucciones de tres direcciones.

MOVE Y,A
SUB Y,B
MOVE T,D
MPY T,E
ADD T,C
DIV Y,T

Y <-- A
Y <-- Y-B
T <-- D
T <-- TxE
T <-- T+C
Y <-- YT

Con instrucciones de dos direcciones.


LOAD D
AC <-- D
MPY E
AC <-- ACxE
ADD C
AC <-- AC+C
STOR Y
Y <-- AC
LOAD A
AC <-- A
SUB B
AC <-- AC-B
DIV Y
AC <-- ACY
STOR Y
Y <-- AC
Con instrucciones de una direccin.
Figura V.2 - Programas para la ejecucin de la operacin
En la figura V.2 se compara la ejecucin de una misma operacin,
mediante procesadores que operan con una, dos y tres
direcciones.
Como vemos, al tener mayor cantidad de direcciones, se
necesitan menos lneas de programa, pero las instrucciones se
vuelven de mayor longitud, precisando ms hardware. En realidad
parece ser ideal la mquina de dos direcciones, en la cual se
permite tener varios registros direccionables, por lo cual pueden
hacerse operaciones directamente entre registros, que son ms
rpidas por no tener que efectuar un acceso a memoria.
La forma ms simple es la una direccin, introduciendo una
segunda, tal como la de un registro, en forma implcita. Esto fue
muy comn en las primeras mquinas, usando como registro
implcito al acumulador (AC), todas las instrucciones hacian
referencia al mismo.

De hecho, es posible tener mquinas con instrucciones sin


ninguna direccin (instrucciones de cero direcciones), las que son
aplicables a la conformacin de memoria especial, denominada
memoria de pilas (Stack memory), en la cual la referencia es
siempre a la primera casilla de la pila, que es de tipo LIFO (ltimo
que entra primero que sale).
Por razones de practicidad, la mayora de los procesadores
actuales utilizan una mezcla de instrucciones de dos y tres
direcciones.
2.2. TIPOS DE OPERANDOS:
Las instrucciones de mquina, operan sobre datos, los que se pueden
catalogar en cuatro categoras principales:
Direcciones
Nmeros
Caracteres
Datos Lgicos
Segn veremos ms adelante, las direcciones pueden considerarse
como una forma de datos, sobre los cuales pueden realizarse algunas
operaciones para determinar la direccin efectiva en la memoria
principal o en la virtual, as es que como datos, son nmeros enteros sin
signo.
NMEROS.
Todos los lenguajes de mquina incorporan datos de tipo numrico,
an en los sistemas de procesamiento no numrico se necesitan
nmeros en diversas aplicaciones, tales como en contadores, ancho
de los diversos campos, posiciones de memoria, etc.
Una distincin entre los nmeros utilizados en los clculos comunes
y los aplicados en la computacin, es su longitud. En una mquina, la
cantidad de cifras siempre es acotada, tanto en su representacin en
coma fija, como en coma flotante.
Hay tres tipos de datos numricos representables en computadoras:
- Coma fija o enteros
- Coma flotante o notacin cientfica

- Decimales empaquetados
Si bien la representacin ideal en la mquina es la binaria, muchas
veces es necesario utilizar un sistema decimal tanto para
operaciones de E/S, como tambin, a veces, es conveniente
almacenarlos en esa forma. Lgicamente se utiliza un sistema
codificado,

el

BCD,

cuya

representacin

es

denominada

"empaquetada", por cuanto cada dgito decimal precisa cuatro dgitos


binarios. Adems en caso de utilizar nmeros con signo, el mismo es
representado mediante otro paquete de cuatro bits (el signo menos
es representado por la serie 1111). Esto hace que el sistema sea muy
ineficiente, pero evita el tener que traducir continuamente las
cantidades.
Por otra parte, y segn vimos en el captulo IV, hay mquinas que
proveen instrucciones aritmticas para operaciones codificadas.
CARACTERES:
Una forma comn para los datos es la lista de caracteres, los cuales
son representados por cdigos de 7 8 bits. El ms comn es el
ASCII, que con 7 bits permite la representacin de 128 caracteres
distintos. Lgicamente los numricos y alfabticos no son tantos, as
que es posible agregar una cantidad de caracteres de control,
algunos de los cuales permiten justamente controlar las impresoras.
El cdigo ASCII de ocho bits, permite la incorporacin del bit de
paridad.
2.3. TIPOS DE OPERACIONES:
La cantidad de cdigos operativos vara ampliamente de mquina en
mquina, pero en todas ellas se realizan los mismos tipos de
operaciones. Una clasificacin estndar de tipos de operaciones es la
siguiente:
- Transferencia de datos
- Aritmticas

- Lgicas
- de Conversin
- de E/S
- de Control del sistema
- de Transferencia del control
En la tabla siguiente se tiene un listado de los tipos de instrucciones
ms comunes utilizadas dentro de cada categora.
TIPO
Transferencia

NOMBRE DE LA DESCRIPCIN
OPERACIN
de MOVE(Transfer)

datos

Aritmticas

Lgicas

Transfiere una palabra o un bloque desde

STORE

la fuente al destino.
Transfiere una palabra desde la UCP a la

LOAD (Fetch)

memoria
Transfiere una palabra de la memoria a la

EXCHANGE

UCP
Intercambia los contenidos de la fuente y

CLEAR (Reset)

el destino.
Transfiere

SET

conteniendo todos ceros


Transfiere una palabra conteniendo todos

PUSH

unos al destino.
Transfiere una palabra de la fuente al

POP

acceso a la pila.
Transfiere una palabra del acceso a la

ADD
SUBSTRACT
MULTIPLY
DIVIDE
ABSOLUTE

pila al destino.
Computa la suma de dos operandos
Computa la resta de dos operandos
Computa el producto de dos operandos
Computa el cociente de dos operandos
Reemplaza al operando por su valor

NEGATE
INCREMENT
DECREMENT
AND

absoluto
Cambia el signo del operando
Suma 1 al operando
Resta 1 al operando
Conforma la operacin indicada entre

OR

bits.
Idem.

al

destino

una

palabra

NOT (Complement)
EXCLUSIVE-OR
TEST
COMPARE
SET

Idem.
Idem.
Prueba la condicin especificada.
Hace la comparacin lgica o aritmtica

de dos o ms operandos.
CONTROL Conjunto de instrucciones que ubica

VARIABLES

controles para proteccin, manejo de

SHIFT

interrupciones, timers, etc.


Desplaza a derecha o izquierda al
operando, introduciendo constantes en
lso extremos.
Desplaza a derecha o izquierda al

ROTATE
Transferencia

operando, en forma circular.


Transferencia incondicional, cargando al

del JUMP (Branch)

Control

contador de programa con un nuevo


JUMP

contenido.
Prueba la condicin indicada y carga o n

CONDITIONAL

al contador de programa con un nuevo

JUMP

contenido.
TO Guarda la informacin de control del

SUBROUTINE

programa en ejecucin y salta a la nueva

RETURN

direccin especificada.
Reemplaza el contenido de los registros

EXECUTE

con datos conocidos.


Busca los operandos indicados y ejecuta
la instruccin sin alterar al contador de

SKIP

programa.
Incrementa al contador de programa para

SKIP

pasar ala prxima instruccin.


Prueba la condicin especificada

CONDITIONAL

cambia o n el contenido del contador de

HALT
WAIT (Hold)

programa.
Detiene la ejecucin del progrma.
Suspende la ejecucin del programa

NO OPERATION

hasta que se cumpla una condicin dada.


No se realiza ninguna operacin, pero el

Entrada /Salida

Conversin

INPUT (Read)

programa se sigue ejecutando.


Transfiere datos del dispositivo indicado o

OUTPUT (Write)

puerto de E/S al destino.


Transfiere datos de la fuente especificada

START I/O

al puerto de E/S o dispositivo indicado.


Transfiere instrucciones al procesador de

TEST I/O

E/S para iniciar la operacin de E/S


TRansfiere informacin de estado del

TRANSLATE

sistema de E/S al destino indicado.


Traduce los valores de una seccin de la
memoria, en base a una tabla de

CONVERT

correspondencias.
Convierte el contenido de una palabra de
una forma a otra.

TRANSFERENCIA DE DATOS
La operacin fundamental de toda mquina, es la transferencia de
datos. Para ser llevada a cabo, debe especificarse lo siguiente en la
instruccin:
- Localizacin de los operandos fuente y destino: cada locacin
puede estar en la memoria, en un registro, o en el acceso a una
pila.
- Longitud de los datos a transferir.
- Modo de direccionamiento para cada operando.
Cuando los datos estn en registros de la UCP, la tarea es la ms
simple de todas las que se realizan, en cambio cuando por lo menos
uno de los datos est en la memoria, las operaciones a ejecutar son:
1) Calcular la direccin de memoria.
2) Si la direccin se refiere e memoria virtual, se debe trasladar el
dato a la zona de memoria real.
3) Determinar si el tem referenciado est en la cache.
4) Si no est, buscarlo en el mdulo de memoria correspondiente.
ARITMTICAS
Muchas mquinas proveen las operaciones aritmticas bsicas de
suma, resta, multiplicacin y divisin invariablemente para nmeros
enteros con signo. A menudo, tambin se las provee para nmeros
en coma flotante o para decimales empaquetados.
Otras operaciones posibles, incluyen una variedad de instrucciones
de operando nico, por ejemplo:
- Absolute: toma el valor absoluto del operando.
- Negate: cambia el signo del operando.
- Increment: Suma una unidad al operando.
- Decrement: resta una unidad al operando.

La ejecucin de una operacin aritmtica puede incluir operaciones


de transferencia de operandos a la unidad aritmtica, y entregar la
salida de la misma.
LGICAS
Muchas mquinas proveen una variedad de operaciones para la
manipulacin de los bits de una palabra, o de otras unidades
direccionables, todas basadas en operaciones Booleanas.
DE CONVERSIN
Las operaciones de conversin son las que permiten modificar el
formato de los datos. Por ejemplo, la conversin de binario a BCD.
DE ENTRADA/SALIDA
Estas ya han sido indicadas en el captulo anterior, y como sabemos,
incluyen una cierta variedad de aproximaciones, que incluyen la E/S
programada, la E/S por DMA, hasta el uso de un procesador de E/S.
CONTROL DEL SISTEMA
Las instrucciones de control del sistema son generalmente
privilegiadas, por cuanto solo pueden ejecutarse en algn estado
especial de la ejecucin de un programa, estas instrucciones son
reservadas para su utilizacin en los sistemas operativos.
Como ejemplo, algunas de estas instrucciones pueden alterar el
contenido de algunos registros de control, as como pueden
modificar los cdigos de proteccin del almacenamiento.
DE TRANSFERENCIA DEL CONTROL
En todos los tipos de instrucciones vistos, se especifican los
operando, la operacin a realizar y que debe hacerse con el
resultado, as como la direccin de la prxima instruccin, la que
normalmente es la que sigue a la de la que se encuentra en
ejecucin, y es indicada por el contador de programa.
Pero, una buena parte de las instrucciones de un programa son las
encargadas de modificar la secuencia del mismo, o sea hacer que
se busque la prxima instruccin en otro lugar de la memoria. En

estas instrucciones la accin de la unidad de control, es la de


actualizar el contenido del contador de programa, a fin de que
apunte a la direccin necesaria.

También podría gustarte