Anda di halaman 1dari 13

Teora General de la Arquitectura de Sistemas Digitales de Cmputo

Todo sistema digital de cmputo consta de 3 bloques fundamentales:

Unidad Central de Procesos CPU. Integrada por la Unidad de Control UC, la


Unidad Aritmtico Lgica ALU, el Banco de Registros de trabajo BR y las Seales de
Reloj. La CPU crea y controla el flujo de datos que maneja el sistema a partir del conjunto
de instrucciones que conforman el programa, adems gobierna las unidades de interfase de
entrada y salida para intercambiar informacin con el mundo exterior.

Unidad de Memoria. Principalmente se dispone de dos reas, la Memoria de


Programa y la Memoria de Datos; la primera es donde se almacenan las instrucciones que
debe ejecutar el sistema y la segunda, se emplea para guardar datos y resultados de forma
temporal.
Unidad de Interfase de Entradas y Salidas. Es la encargada de adecuar los
cdigos y/o protocolos de comunicacin para intercambiar informacin con el mundo
exterior, de una manera lgica para el sistema.

Unidad de Memoria MU.


Por el Bus de Direcciones se recibe un conjunto de bits (tantos como lneas tenga el
bus) que codifican la direccin o posicin de la memoria a que se desea acceder, este
cdigo o direccin es almacenado temporalmente en el Registro de Direcciones de
Memoria MAR, quien retiene el dato para que el Decodificador de Direcciones traduzca
el cdigo y seleccione el registro exacto que corresponde a la direccin, el cual se encuentra
inmerso dentro de una matriz de registros dentro de la cual existen reas de memoria del
tipo ROM general (de programa, ROM, PROM, EPROM, EEPROM, FLASH) y reas del
tipo RAM general (de datos, SRAM, DRAM, SDRAM, etc).

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.

El BR es un grupo de registros de propsito general y algunos de uso especializado,


que permiten el almacenamiento temporal de datos que requiere la CPU para la ejecucin
de instrucciones y ayudan a reducir el tiempo de proceso, ya que de no existir, la CPU
tendra que estar accediendo con mayor frecuencia a la MU, lo cual disminuira
enormemente el desempeo total del sistema. El BR puede ser visto como una pequea y
sencilla memoria RAM incrustada dentro de la CPU, con un nmero no mayor a 32
registros (incluso en los Microprocesadores actuales) que son utilizados como una memoria
intermedia de uso rpido y temporal.
Modelos Generales de CPU.
En la prctica, un CPU viene encapsulado en un solo chip comercial, bien dentro de
un microprocesador o dentro de un microcontrolador y en general todo sistema de computo
digital cuenta con un CPU como elemento central del sistema, algo as como el cerebro
que interpreta las instrucciones de programa, realiza clculos y anlisis de datos en base a
lo cual toma decisiones y las ejecuta. Es conveniente comprender el funcionamiento bsico
de un CPU de forma general con el objetivo de tener claros los elementos fundamentales
que permitan un rpido y suficiente entendimiento de cualquier modelo comercial de CPU.

CPU de Bus nico:

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.

CPU de Dos Buses:

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.

Cada microinstruccin se representa mediante la Palabra de Control, que no es otra


cosa que la imagen binaria del estado de todas y cada una de las seales que emite la UC a
los otros elementos del sistema, as por ejemplo, la ALU requiere que se le entregue el
cdigo de operacin a realizar, entonces, el conjunto de seales (cuyo nmero depende de
la cantidad de funciones con las que se construyo la ALU, por ejemplo, si son 8 funciones
se utilizan 3 seales, 4 si son 16 funciones, etc.) que enva la UC hacia la ALU para
codificar la operacin estn presentes (forman parte) en la Palabra de Control. Aparte de la
microinstruccin, existe el micro cdigo que es el nmero binario de la palabra de control
en cada microinstruccin y sirve para codificar el valor de la microinstruccin cuando se
intenta hacer un montaje experimental.

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.

Algunas Palabras de Estado contienen entre otros indicadores los siguientes:


S Bandera de Signo: cuando se realizan operacin entre nmeros con signo
usualmente el bit ms significativo se usa para especificar el signo, siendo 0 para los
positivos y 1 para los negativos y el resto de bits se usa para la magnitud. Por ejemplo, en
palabras tipo nible (semi byte) si se especifican nmeros con signo, el bit 3 ser el utilizado
para el signo y por tanto se podr contar hasta un mximo de 7 (111 en binario), quedando
el rango de la palabra en 7 a +7. Cuando se realizan operaciones de nmeros con signo, la
bandera S se activa (va a 1) cuando en el resultado qued un nmero negativo.
C Bandera de Acarreo: cuando se realiza una operacin que produce un acarreo
entre los dos bits de mayor peso de cada operando se activa C.
O Bandera de Overflow: cuando se realiza una operacin (por ejemplo de suma o
multiplicacin) cuyo resultado no puede ser expresado en forma completa por la capacidad
de la palabra de trabajo, se activa O, indicando que ha ocurrido un sobrepasamiento o
desborde en el registro Z. NOTA: no confundir C y O, C se refiere al acarreo entre los bits
de mayor peso, mientras O se refiere a desbordamiento del resultado.
Z Bandera de Cero (0): cuando en el registro Z todos sus bits quedan en 0 luego de
haber realizado una operacin se activa la bandera Z, indicando que ha quedado cero en el
registro Z. Esto puede ocurrir an cuando se active C y O (analizar explicacin!).

Es importante resaltar que cuando se establece el valor de Z y la Palabra de Estado,


solo cambian por dos nicas formas, cuando se realice una nueva operacin en la ALU que
resulte en un valor diferente para Z y la Palabra de Estado (en este caso lo que ocurre es
que tanto el registro Z como las banderas de estado son sobrescritas con el nuevo valor
respectivo). La otra forma de cambiar es mediante programa (la cual no ser contemplada
para efectos de este curso).

Ejecucin de Instrucciones en el CPU.


Como ya se mencion la ejecucin de una instruccin significa la ejecucin de
pasos intermedios (micro instrucciones), sin embargo eso es desde el punto de vista interno
del CPU, pero Cmo es la secuencia de ejecucin entre instrucciones?, como se sabe, el
sistema de cmputo lo que realiza es la ejecucin de un programa, el cual es una secuencia
lgica y ordenada de unas instrucciones que el programador especific, luego para la
ejecucin del programa ocurre un proceso bien establecido que se resume en los siguientes
pasos:
BSQUEDA DECODIFICACION EJECUCION BUSQUEDA
Un programa es la repeticin continua de estos pasos, primero se realiza la
bsqueda de la instruccin a ejecutar, se decodifica para que la UC genere las micro
instrucciones necesarias y al final se busca la instruccin siguiente. La fase de bsqueda
tiene dos versiones, una es cuando se busca la primera instruccin de programa y la otra
versin es cuando busca la instruccin siguiente dentro del programa. Cuando el sistema de
cmputo inicia, hay un registro especial que se encarga de obtener la direccin de la
primera instruccin de programa a ejecutar, este registro es el Contador de Programa (PC)
quien siempre almacena la direccin de la siguiente instruccin a ejecutar. La carga del PC
indica el inicio de la fase de bsqueda, que contina cuando el contenido del PC pasa al
MAR (registro de direcciones de memoria), seguidamente la MU entrega al CPU el cdigo
de la instruccin a ejecutar por medio del MDR (Registros de Datos de Memoria) y para
finalizar la fase de bsqueda, el cdigo de la instruccin pasa al IR (Registro de
Instruccin). En este punto se desencadenan 2 acciones simultneas, se incrementa
automticamente el PC en 1 para apuntar a la siguiente instruccin y se inicia la fase de
decodificacin, que consiste en que la UC recibe el cdigo de la instruccin y lo interpreta
para establecer cules y en qu orden se ejecutarn las micro instrucciones. Una vez
determinado qu micro instrucciones deben realizarse se lleva a cabo la ejecucin de estas,
siendo la ltima micro instruccin aquella que permite que el PC (que ya tiene la direccin
de la siguiente instruccin) entregue su contenido al MAR para continuar la secuencia.

Un Modelo Ms Real de CPU.


Hasta ahora slo se han examinado modelos generales bsicos, es necesario ahora
observar un modelo ms aproximado y real de un CPU.
Al BUS de
PC MAR Direcciones

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.

Area de Datos Area de Programa


Dir Contenido Dir Contenido
00h 25h 100h EF0001h MOV 00h, 01h
01h 30h 101h AB0002h ADD 00h, 02h
02h 20h 102h DE0020h MOV 00h, A
03h 00h 103h EE109h JMP 109h
04h 0Ah 104h EE106h
JMP 106h
... ... ... ...

... ... ... ...

... ... 109h F0


END

Observar que en el segmento de memoria de programa, las instrucciones que estn


en lenguaje ensamblador, aparecen con su respectivo cdigo binario (aqu representado en
base hexadecimal) que es el que puede interpretar el CPU.

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

Anda mungkin juga menyukai