Microprogramación

Anuncio
MICROINSTRUCCIONES
FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR
La memoria de las maquinas IAS consiste en 1000 posiciones de almacenamiento, llamadas palabras,
de 40 digitos binarios (bits) cada una. Las instrucciones y la información se almacenan aquí, por lo
tanto los números deben ser representados de forma binaria, y cada instrucción tiene que ser código
binario(véase figura Palabra de instrucción) Cada número es representado por 1 bit de signo y valor de
39 bits; una palabra también puede contener dos instrucciones de 20 bits, con cada instrucción
consistiendo de un código de operación (opcode) de 8 bits especificando la operación a realizar y una
dirección de 12 bits diseñando una de las palabras en memoria(numerada de 0 a 999).
La unidad de control controla el funcionamiento de la CPU y por tanto de el computador, esta
interpreta y ejecuta las instrucciones almacenadas en la memoria principal y genera las señales de
control necesarias para ejecutarlas.
Existen dos tipos de unidades de control, las cableadas, usadas generalmente en máquinas sencillas Sus
componentes habituales son: de instrucción. Circuito de lógica secuencial de control de estado. Circuito
de lógica combinacional de emisión de Circuito de lógica combinacional de reconocimiento señales de
control. , y las microprogramadas, usadas generalmente en máquinas complejas.
La unidad de control opera el CPU captando las instrucciones de memoria y ejecutándolas al mismo
tiempo, (véase la figura Estructura de IAS), se puede observar que tanto la unidad de control como la
ALU contienen posiciones de almacenamiento, llamados registros, a continuación se mencionan los
principales.
Para esto es necesario mencionar su organización. Existen dos tipos de registros.
Registros visibles al usuario
Estos permiten al programador de lenguaje maquina o ensamblador minimizar las referencias a
memoria principal optimizando el uso de registros.
Dentro de esta categoría, existen otras subcategorías:
De propósito general
Pueden ser asignados a una variedad de funciones por el programador, en algunos casos se utiliza
para funciones de direccionamiento, dentro del conjunto de instrucciones ortogonalmente.
Datos
Pueden ser utilizados solo para mantener datos y no pueden ser empleados en los calculos de
dirección de operando
Dirección
Pueden ser de alguna manera de propósito general, o elegidos para un modo de direccionamiento
en particular, tales como:
• Apuntadores de segmento
• Registros de índice
• Apuntadores de pila.
Códigos de condición
También llamados flags, son bits acomodados por el hardware del CPU como resultado de
operaciones, se juntan en uno o más registros, usualmente forman parte del registro de control.
Registros de control y estado
Estos son utilizados por la unidad de control para controlar la operación del CPU, y por programas de
sistema operativo privilegiados para controlar la ejecución de programas.
No existe una clara separación de registros entre estas dos categorías, para algunas maquinas unos
registros pertenecen a una categoría mientras que para otras no.
•
Registro de Buffer de Memoria (MBR)
Contiene una palabra para que sea almacenada en memoria, o es usado para recibir una palabra de
memoria
•
Registro de Dirección de Memoria (MAR)
Especifica las direcciones en memoria de la palabra desde donde se va a escribir o leer en el MBR.
•
Registro de Instrucción (IR)
Contiene el opcode de instrucción de 8 bits que va a ser ejecutado.
•
Registro de Buffer de Instrucción (IBR)
Empleado para mantener temporalmente la instrucción derecha de una palabra de memoria.
•
Contador de Programa (PC)
Contiene la dirección de la siguiente instrucción par que se captara desde memoria.
•
Acumulador (AC) y Multiplicador de Conciente (MQ)
Empleado para mantener temporalmente operandos y resultados de las operaciones de la ALU, por
ejemplo, el resultado de multiplicar dos números de 40 bits en uno de 80 bits; los 40 bits más
significativos son almacenados en el AC y los menos significativos se almacenan en el MQ.
CONCEPTOS BÁSICOS DE MICROPROGRAMACIÓN
La microprogramación es un método sistemático para diseñar la unidad de control de cualquier sistema
digital.
La estructura de una Unidad de control microprogramada es:
a)
b)
c)
d)
e)
Tareas de la Unidad de Control microprogramada
Elementos de la Unidad de Control microprogramada
Secuenciamiento de las microinstrucciones
Organización de la memoria de control
Ejecución de las microinstrucciones
A. Tareas de la Unidad de Control microprogramada
•
•
Secuenciamiento de las microinstrucciones
Ejecución de las microinstrucciones
Microinstrucción
Se define como el conjunto de micro órdenes que se ejecutan simultáneamente y contenidas en una
palabra de la memoria de control
B. Elementos de la Unidad de Control microprogramada
Secuenciador
Memoria de
control
Unidad de procesamiento
Funcionamiento:
1. La instrucción entra en IR, después de decodificarse carga la dirección de la primera
microinstrucción en RDC.
2. RDC apunta a la memoria de control que saca el dato a RMC
3. RMC contiene 3 campos:
• Señales de control al bus de sistema
• Señales de control internas al CPU
• Próxima dirección de microinstrucción
4. El Secuenciador carga la próxima instrucción en RDC y continua la secuencia. Opciones:
• RDC = RDC +1
• Bifurcación: RDC = RMC [dirección]
• Bifurcación a siguiente instrucción: RDC = Función (IR[codop])
C. Secuenciamiento de las microinstrucciones
1. Saltos en un secuenciador
•
•
Incrementación de la dirección actual
Salto condicional
2. Tipos de direccionamiento
•
•
Explícito: Especificado en un capo separado la dirección de salto.
Implícito: La dirección se especifica por sí misma.
3. Diferencia mediante un campo si se trata de una microinstrucción de control o de salto.
•
•
Instrucciones de control
Instrucciones de salto
D. Organización de la memoria de control
Campos de la microinstrucción:
•
•
De control: señales para la unidad de procesamiento
De dirección: dirección de la próxima instrucción
Formatos de las microinstrucciones
•
Horizontal (No codificados)
Cada bit de la memoria se conecta con un punto físico de la unidad de procesamiento.
•
Vertical (Codificados)
El campo de control es dividido en subcampos, cada uno de cuales controla un conjunto de
operadores, que son excluyentes entre si, es decir, no se pueden producir en el mismo instante, y
esta codificado indicando la señal a controlar y precisando un decodificador por subcampo.
E. Ejecución de las microinstrucciones
Fases:
•
•
•
•
Búsqueda de la microinstrucción
Decodificación de los campos de microinstrucción
Ejecución de las operaciones
Calculo de la dirección de la próxima microinstrucción
Tipos de ejecuciones
•
Monofásicas: La microoperación se puede ejecutar al mismo tiempo.
•
Polifásicas: Los campos se utilizan de forma escalonada en el tiempo de ejecución.
Microinstrucción
Se llama microinstrucción a cada valor de la palabra de control de los que componen un
microprograma.
En una unidad de control microprogramada las microinstrucciones se almacenan en una memoria
llamada memoria de control.
El término microinstrucción se utiliza en el lenguaje de la microprogramación, en donde cada línea
describe un conjunto de microoperaciones que suceden a la vez, y se conoce como microinstrucción.
Una secuencia de instrucciones se conoce como microprograma o firmware
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.
Unas pocas de estas microinstrucciones implementan una instrucción completa del microprocesador.
Por ejemplo, la instrucción "sumar dos registros" típica de cualquier microprocesador, se implementa
mediante la activación y desactivación de un conjunto reducido de señales eléctricas en el banco de
registros y la unidad aritmético-lógica.
En concreto, el microprograma de esta instrucción significaría:
1.
2.
3.
4.
5.
Activar las señales de selección de registro como primer operando de la ALU.
Activar las señales de selección de registro como segundo operando de la ALU.
Activar las señales de selección de operador para que corresponda a la suma en la ALU.
Esperar unos ciclos de reloj hasta que la operación esté completada.
Activar la señal de escritura en el registro acumulador
FUENTES:
•
http://es.wikipedia.org/wiki/Unidad_de_control
•
http://es.wikipedia.org/wiki/Microinstrucci%C3%B3n
•
Introducción a la Microprogramación I. Microsimples
•
UNED ( www.uned.es ) – Microprogramación
•
Diapositivas de apoyo del Curso
Descargar