Luego que es ubicado el registro preciso al que se desea acceder (tanto para
operaciones de lectura como de escritura), su contenido es conectado con el Registro de
Datos de Memoria MDR, que es como el puerto de entrada y salida de todos los registros
de la memoria, tanto de instrucciones de programa como de datos, teniendo en cuenta que
en el caso de las instrucciones, el MDR es solo de salida, mientras en el caso de datos es
bidireccional. En cualquier caso, el dato que almacena temporalmente el MDR es colocado
en bus y segn el modelo de CPU, ser en un nico bus de datos e instrucciones, o en uno
de datos y otro de instrucciones.
Unidad Central de Procesos CPU.
La CPU recibe secuencialmente las instrucciones provenientes desde la MU,
almacenando cada una temporalmente en el Registro de Instrucciones IR, que las retiene
para que el Decodificador de Instrucciones las interprete y genere las seales e impulsos de
gobierno y control que salen del Generador de Impulsos de Control.
Cada una de las seales que enva el Generador constituye una seal de control, que
determinar el funcionamiento de todos y cada uno de los componentes del sistema. De
manera sincronizada el CPU mantiene un conteo de las instrucciones que se ejecutan en el
Contador de Programa PC, el cual siempre se incrementa scronamente con la ejecucin de
una instruccin y apunta a la siguiente direccin a ejecutar, el PC entrega la siguiente
direccin de programa al MAR para completar la secuencia. Cada instruccin de programa
consta de varios pasos elementales denominados microinstrucciones, de tal forma que
cuando se requiere ejecutar una instruccin, se divide el trabajo en una secuencia
predefinida de microinstrucciones, entre las microinstrucciones est la activacin de las
seales de control que indican a la ALU que operacin se va a realizar, la cual opera
siempre entre 2 registros temporales, clsicamente denotados como A y B y produce tanto
un resultado lgico o aritmtico por el registro Z, as como tambin genera una serie de
seales que indican el estado en que qued la ALU, por ejemplo, si el ltimo resultado fue
cero, o si se produjo un desbordamiento, etc. Segn el modelo de CPU, la ALU puede
conectarse mediante un nico bus de datos, dos buses, tres buses, etc, los cuales le permiten
a la ALU tener acceso a datos que estn tanto dentro de la CPU en el Banco de Registros
BR, como en la MU y en el exterior del sistema y viceversa.
Rauxw
Raux
3 A B R0
UC
O2 O1O0 Z R1
R2
Racuw R3
Racu
R b rw
R b rr
A1
A0
En este modelo todos los datos comparten una nica va, por esto, para ingresar o
salir del CPU es necesario que el dato se cargue en el bus nico, pero tambin es necesario
esto para datos que se dirijan a la ALU o al BR. En cuanto a la carga de los registros de
trabajo de la ALU es importante tener en cuenta que siempre se debe cargar primero el dato
que va al registro A (guardndolo temporalmente en el registro Raux) y luego el del registro
B. Otro aspecto interesante de este modelo es que para llevar un dato de uno de los registros
del BR a otro del BR no es necesario pasar por la ALU, basta con colocar el dato en el bus
y direccionar el nuevo registro en el BR. Las seales de control son: Rauxw que es la que
permite cargar un dato en el registro auxiliar, Racuw cargar un dato en el registro
acumulador (este registro es para almacenamiento temporal del resultado de la ALU),
O2O1O0 es el cdigo de operacin para la ALU (con este cdigo se especifica cual funcin
aritmtica o lgica debe realizar la ALU), A1A0 son el par de bits necesarios para
direccionar o seleccionar un registro particular de BR, Rbrr es la seal que habilita al
registro seleccionado para una operacin de lectura de su contenido y Rbrw es la que
habilita la operacin de escritura o carga. Es importante destacar que aqu se presenta que
las seales del cdigo de operacin son 3 con lo cual se pueden tener hasta un mximo de 8
funciones, sin embargo esto depende de cada modelo real en la prctica. Por otro lado, cada
una de las seales de control descritas se agrupa en lo que se menciona ms adelante como
Palabra de Control para formar la microinstruccin y el micro cdigo.
Rauxw
Raux
3 A B R0
UC
O2 O1O0 Z R1
R2
R3
R b rw
R b rr
A1
A0
BUS Origen
BUS Destino
En este modelo se presenta un bus de entradas a la ALU y un bus de salida de la
ALU. Observar que el sentido de traslado de datos en el BR siempre es unidireccional, por
lo que para llevar un dato de un registro a otro es necesario pasar por la ALU. Al obtener un
resultado en la ALU no hay que hacer un paso intermedio por un registro (como en el caso
del CPU1B) sino que puede ir directamente al BR.
CPU de Tres Buses:
Rbw
Rb
Raw Ra
3 A B R0
UC
O2 O1O0 Z R1
R2
Rzw R3
Rz
R b rw
R b rr
A1
A0
BUS Operando A
BUS Operando B
BUS Destino
Se reconoce fcilmente porque se tiene un bus para cada entrada a la ALU y un bus
para la salida de la ALU
Microprogramacin.
Como resulta de intuicin al observar los modelos anteriores, la realizacin de una
sencilla operacin que involucre dos operandos a travs de la ALU requiere varios pasos
intermedios (por ejemplo, cargar cada operando en los registros de entrada de la ALU,
luego ejecutar la operacin, y finalmente guardar el resultado en alguno de los registros de
trabajo) que deben ser controlados por la UC mediante un conjunto de seales de gobierno
hacia los otros integrantes de la CPU (ALU, BR), cada instruccin que es capaz de
interpretar y ejecutar la CPU tiene un conjunto de micro instrucciones (pasos intermedios)
que estn predefinidas de fbrica dentro de la UC, cada micro instruccin se compone del
valor que adoptan todas y cada una de las seales de control que enva la UC hacia cada
integrante del sistema (seales de activacin, inhibicin, pulsos de escritura, seales de
reloj, etc.). Cuando se construye un CPU, se definen un conjunto de instrucciones (set de
instrucciones) que se utilizan para crear programas que al cargarlos en el CPU son
ejecutados (por ejemplo, el microprocesador 8086 tiene un set de ms de 100 instrucciones
con las que se realizan programas en lenguaje ensamblador), el usuario o programador del
sistema tiene acceso a las instrucciones, sin embargo, cada instruccin tiene definida dentro
de la CPU un conjunto de microinstrucciones a las cuales el programador no tiene acceso
ya que el fabricante las defini en el diseo del chip. Esta tcnica de construccin de CPU
se conoce como microprogramacin y se ide con la finalidad de facilitar, optimizar y darle
mayor velocidad a los CPU, debido a que se divide el trabajo en etapas ms sencillas lo que
permite la realizacin simultnea de varias tareas.
Microprogramacin de CPU1B:
La Palabra de Control ser el estado de cada seal de Control para cada
microinstruccin:
O2O1O0 Rauxw Racuw A1A0 Rbrr Rbrw
3 bits 1 bit 1 bit 2 bits 1 bit 1 bit
El micro cdigo es la representacin binaria de la Palabra de Control
Microprogramacin de CPU2B:
La Palabra de Control ser el estado de cada seal de Control para cada
microinstruccin:
O2O1O0 Rauxw A1A0 Rbrr Rbrw
3 bits 1 bit 2 bits 1 bit 1 bit
El micro cdigo es la representacin binaria de la Palabra de Control
Microprogramacin de CPU3B:
La Palabra de Control ser el estado de cada seal de Control para cada
microinstruccin:
O2O1O0 Raw Rbw Rzw A1A0 Rbrr Rbrw
3 bits 1 bit 1 bit 1 bit 2 bits 1 bit 1 bit
El micro cdigo es la representacin binaria de la Palabra de Control
Funcionamiento de la ALU.
Como ya se mencion anteriormente, la ALU es una unidad que realiza operaciones
aritmticas y lgicas entre 2 operandos y obtiene un resultado, los operandos son cargados
en un registro respectivo para su posterior utilizacin de manera clsica se identifican como
registro A y registro B a los operandos de entrada y registro Z al resultado. Cuando se
construye una ALU se le definen de fabrica un conjunto de operaciones o funciones bsicas
(tanto lgicas, complemento, OR, AND, XOR, etc. como aritmticas, suma, resta,
multiplicacin, etc.) que se encuentran en una tabla dentro de la ALU, para establecer cual
operacin debe ejecutar la ALU durante una microinstruccin, la UC entrega un cdigo que
identifica nicamente a una y solo una de las funciones en la tabla. Por lo general, la ALU
tiene una funcin de especial importancia que se refiere a no operacin (Estado en Reposo),
es decir, cuando se especifica esta funcin, la ALU no realiza ninguna operacin, a pesar de
tener sus registros de entrada cargados. La importancia de esta funcin es que permite a la
UC generar microinstrucciones completas sin que la ALU realice ninguna funcin, lo que
puede alterar el estado del sistema. La ALU adems de entregar un resultado, tambin es
capaz de entregar un informe sobre el estado de la ALU luego de realizada una operacin
(por ejemplo, luego de una operacin de suma, informar si se produjo un acarreo por que la
capacidad de bits es superada), esto lo hace mediante la Palabra de Estado, que es un
conjunto de bits que funcionan como banderas indicadores de ciertos y determinados
eventos (el evento que registra la palabra de estado depende del modelo) que pueden ocurrir
cuando se realiza una operacin o funcin en la ALU.
Rauxw
Raux
Al BUS de
MDR Datos
3 A B R0
UC
O2 O1O0 Z R1
R2
Racuw R3
Racu
R b rw
R b rr
A1
A0
Mapa de Memoria
Un mapa de memoria es la representacin grfica de cmo se distribuye la memoria
en un sistema digital de cmputo. Como ya se sabe, un sistema digital tiene una MU que se
compone de memoria de Datos y memoria de Programa, entonces, en un mapa de memoria
se representa ambas secciones de memoria, por separado o en el mismo diagrama.
Nociones de Instrucciones.
El lenguaje ensamblador es un sistema de codificacin de instrucciones de CPU. No
es el momento de analizar en profundidad las instrucciones, basta con tener en cuenta
algunas consideraciones.
Todas las instrucciones que utilizan 2 operandos (por ejemplo, MOV, ADD, SUB,
etc) el operando que aparece ms a la izquierda (representado por la direccin que ocupa en
la memoria de Datos) es el operando destino y el de la derecha el de origen lo que quiere
decir que el origen opera sobre el destino.
MOV es para el movimiento de datos
ADD suma de dos operandos
SUB resta de dos operandos
JMP Salto a una direccin especfica de programa (Cambio asncrono del PC)
END Final de programa
JNZ Salto condicional si no se activa la bandera Z
INC Incremento de un operando en una unidad
DEC Decremento de un operando en una unidad