EL NIVEL DE
MICROPROGRAMACIÓN
UNIDAD 4
1. Diferentes niveles en la
arquitectura de un computador
• Un computador digital es una máquina
que puede resolver problemas ejecutando ciertas instrucciones.
• Un programa es una secuencia de
instrucciones.
• Los circuitos electrónicos de cada
computadora reconocen un conjunto limitado de instrucciones muy simples.
• Lenguaje máquina es el conjunto de
TRADUCTORES
• Utilizar lenguaje máquina es difícil y
tedioso.
• Solución:
» sea L1 el lenguaje máquina
» y L2 un lenguaje más fácil de utilizar
programa en L2
programa en L1
compilación (compilador)
MÁQUINAS VIRTUALES
• Se puede imaginar la existencia de una
máquina virtual cuyo lenguaje máquina es L2.
• Se pueden crear L3, L4... cada uno más
fácil de utilizar. nivel n nivel 3
nivel 2
nivel 1
Mn con Ln
M3 con L3
M2 con L2
M1 con L1
2. MÁQUINAS MULTINIVEL
ACTUALES
• La mayoría de las
máquinas actuales constan de 6 niveles.
• Los microprogramas
son directamente ejecutados por el hardware.
Lenguajes de alto nivel
Lenguaje ensamblador Sistema operativo Máquina convencional Microprogramación nivel 5 nivel 4 nivel 3 nivel 2 nivel 1 nivel 0 Traducción (compilador) Traducción(ensamblador)
Interpretación (sistema operativo)
Interpretación (microprograma)
Nivel 0: nivel de lógica digital
• Es el hardware de la máquina.
• El nivel inferior sería el nivel de dispositivo. • En este nivel:
» Puertas lógicas
» Circuitos integrados
» Circuitos combinacionales » Circuitos aritméticos
» Relojes » Memorias
» Microprocesadores » Buses
Nivel 1: nivel de
microprogramación
• Existe un programa llamado
microprograma.
• La función del microprograma es interpretar
las instrucciones del nivel 2.
• En algunas máquinas no existe el nivel de
Nivel 2: nivel de máquina
convencional
• Cada fabricante publica el “Manual de
referencia del lenguaje máquina” para cada uno de los computadores.
• Las instrucciones del nivel de máquina las
interpreta el microprograma.
• En las máquinas en las que no existe el
nivel de microprogramación, las
instrucciones del nivel de máquina son realizadas directamente por los circuitos electrónicos.
Nivel 3: nivel del sistema
operativo
• La mayoría de las instrucciones de este
nivel están también en el nivel 2 pero además tiene un nuevo conjunto de
instrucciones, una organización diferente de la memoria, posibilidad de ejecutar 2 o más programas ...
• Las nuevas instrucciones las interpreta el
sistema operativo.
• Las que son idénticas a las del nivel 2 las
Nivel 3: Introduccion a la
Transferencia entre Registros
• La Memoria, Unidad donde se almacenan tanto
los datos como las instrucciones
•
Memoria principal,
o
central,
o
interna.
» Mayor velocidad
» Ligada directamente a las unidades más
rápidas del computador (UC y ALU)
» Para que un programa se ejecute debe estar
almacenado (cargado) en la memoria principal
» La memoria está dividida en posiciones
(denominadas también palabras de memoria) de un determinado número de bits.
Tipos básicos de memoria:
• Memoria principal, o central, o interna.
» Para leer o escribir una información es necesario dar la dirección
de la posición
» ROM: la memoria en la que sólo se puede leer y la información es
permanente
» RAM: se puede leer y escribir y que es volátil.
• Memoria masiva auxiliar, secundaria o externa.
» La memoria principal, aunque es muy rápida pero no tiene gran
capacidad para almacenar información.
» Para guardar masivamente información se utilizan otros tipos de
memoria (discos, cintas y discos ópticos)
» Más lentos (mil veces mas lentos)
» Más capacidad que la memoria principal (mil veces más capaces) » Datos y programas se graban (a través de unidades de E) en la
• UNIDAD ARITMETICO-LOGICA o ALU
(Arithmetic Logic Unit)
– Contiene los circuitos electrónicos con los que se hace
las operaciones:
» Aritméticas
• Sumas, Restas, Multiplicación, etc
» Lógicas
• comparar dos números, operaciones del Algebra de Boole
binaria, etc.
– También se puede denominar unidad de
tratamiento o camino o ruta de datos, pues también tiene elementos auxiliares por donde se
transmiten o almacenan temporalmente (registros) los datos con que opera.
• UNIDAD DE CONTROL (UC)
– Detecta señales de estado procedentes de las distintas
unidades, indicando su situación o condición de
funcionamiento. Capta de la memoria una a una las
instrucciones del programa, y, de acuerdo con el código de operación de la instrucción captada y con las señales de estado, genera señales de control dirigidas a todas las unidades, monitorizando las operaciones que implican la ejecución de la instrucción.
– Reloj o generador de Pulsos
» Se encuentra en la unidad de control, por medio de los
pulsos sincroniza todas las operaciones elementales del computador.
» El período de esta señal se denomina tiempo de ciclo
(nanosegundos y varios microsegundos).
– La frecuencia del reloj (millones de ciclos/segundo, o
Megahercios, abreviadamente Mhz)
» Es un parámetro que en parte determina la velocidad de
Departamento de Informática. Curso
NIVEL DE TRANSFERENCIA DE
REGISTROS
El comportamiento de un sistema digital a nivel de transferencia de registros se puede definir
mediante un conjunto de operaciones O1 ,O2 , O3 , … On realizadas sobre diferentes datos externos o internos.
Cada una de estas operaciones elementales se lleva a cabo mediante transferencias entre registros
cuya forma mas general puede ser:
Departamento de Informática. Curso
2005-2006 16
LENGUAJE DE TRANSFERENCIA
DE REGISTROS
• Sean A y B dos registros, la operación mas habitual es
transferir el contenido de un registro a otro, se expresa así: B A
• En caso de necesitar saber el número o posición de los bits
transferidos se indica de la siguiente manera: B[7-0] A[15-8]
• Normalmente la transferencia está controlada mediante una
señal de habilitación E (enable), se suele expresar de la siguiente forma: E : B A
• La señal de habilitación puede ser mas compleja, por
ejemplo:
Si x = 0 y t = 1 B A En otro caso B C
Departamento de Informática. Curso
LENGUAJE DE TRANSFERENCIA
DE REGISTROS
Los registros pueden ser objeto de las operaciones aritméticas y lógicas habituales, así tendremos:
D A B LSR (A) ASR (A) A A + 1
Otro operador disponible es & (concatenación) p.ej LSR (A&B)
Departamento de Informática. Curso
18
LENGUAJE DE TRANSFERENCIA
DE REGISTROS
Las transferencias de datos entre registros y memoria se pueden tratar como casos
particulares del caso anterior donde
tendremos dos operaciones gobernadas por las señales de control R (lectura) y W
(escritura) y usando los registros MAR y MBR con la notación habitual tendremos:
R: MBR M((MAR)) W: M((MAR)) MBR
Departamento de Informática. Curso
LENGUAJE DE TRANSFERENCIA
DE REGISTROS
Por último las transferencias entre buses y registros se escriben de forma similar:
A Inbus [8] Outbus [8] A
Transferencia de 1 Registro a 1
Registro
• conectan las salidas de los flip-flops del
registro A (origen) a las entradas de los flip-flops del registro B (destino). De esta
forma, al aplicar un pulso en la entrada de reloj del registro B este tomará los datos
disponibles en su entrada y los almacenará. La transferencia de datos se efectuará
Transferencia de 1 Registro a 1
Registro
El diagrama de tiempo
muestra los cambios de las diferentes señales y el
momento en el que el registro almacena la nueva información.
Transferencia de varios Registros a
1 Registro
• Si queremos transferir datos de varios registros origen
a un registro destino debemos seleccionar de cual de los registros se va a tomar la información. Para ello asociaremos una señal de control SC a cada posible transferencia. Tendremos tantas señales de control como transferencias se puedan realizar. Solamente la señal de control asociada a la transferencia que se
quiere realizar valdrá 1, permitiendo enrutar la salida del registro correspondiente hacia la entrada del
registro destino. Las demás señales de control valdrán 0. SOLO UNA SEÑAL DE CONTROL PUEDE VALER 1 EN UN MOMENTO DETERMINADO. Al bajar un
pulso de reloj el registro destino almacenará la información del registro seleccionado
Transferencia de Varios Registros a
1 Registro
• Supongamos que tenemos 3 registros origen A,
B, C de 3 bits y un registro destino D.
Las posibles transferencias son: D A, D A, D A. Asociaremos una señal de control distinta a cada transferencia, así:
si SC1 =1 D A si SC2 =1 D B si SC3 =1 D C
Solamente una de las tres señales de control podrá ser igual a 1
Transferencia de varios Registros a 1 Registro
Transferencia de varios Registros a
Varios Registros
• Si queremos transferir datos de varios registros origen a
varios registros destino debemos agregar un set de compuertas ANDs que combina la señal de control SC con las salidas del registro origen, por cada
transferencia que queremos realizar, y un set de
compuertas ORs a la entrada de cada registro destino.
• Por ejemplo en el circuito que se muestra a
continuación, si queremos realizar la transferencia de 3 registros origen a 2 registros destino, tendemos seis
posibles transferencias:
si SC1 =1 D A
si SC2 =1 D B
si SC3 =1 D C
si SC4 =1 E A
si SC5 =1 E B
Transferencia de Varios Registros a
varios Registros
• Como podemos observar tendremos un set de
compuertas ANDs por cada transferencia que queremos realizar (seis en este caso) que
combinan las salidas del registro origen con la señal SC que controla la transferencia. Por cada uno de los registros destino tendremos un set de compuertas OR .
Transferencia de varios Registros a varios Registros
Transferencia de Registros con
estructura de buses
• El primer paso es utilizar las señales de control para
enrutar el dato hacia la salida del bus. Esta operación
difiere de la transferencia ya que el bus no almacena los datos. El dato permanecerá en la salida del bus mientras la señal de control permanezca en 1. EL BUS NO
ALMACENA INFORMACION.
• el bus está compuesto básicamente por el set de
compuertas OR las cuales no almacenan información y su salida depende del valor de las entradas en ese
momento.
• El segundo paso es el de almacenar la salida del bus en
el registro destino, lo que se realiza aplicando un pulso de reloj , controlado por una señal de control. En ese momento es que la señal de control que mantenía el dato en el bus pasa a ser nuevamente 0
29
• Como dijimos anteriormente la transferencia se ejecuta en dos
pasos.
El primero es colocar el dato en el bus, lo que se realiza con una de las tres señales SC1, SC2 o SC3.
si SC1 =1 BUS = A
si SC2 =1 BUS = B
si SC3 =1 BUS = C
Nótese que no se utilizó el símbolo " " que implica transferencia. En cambio se utiliza el símbolo" = " , recalcando que EL BUS
MANTENDRÁ EL DATO EN SU SALIDA MIENTRAS LA SEÑAL DE CONTROL CORRESPONDIENTE SEA IGUAL A 1.
El segundo paso consiste en almacenar en el registro destino el dato mantenido en el BUS. Para esto se utilizan las señales de control SC4 y SC5.
si SC4 =1 D BUS
si SC5 =1 E BUS
Transferencia de Registros con estructura de buses