Control Microprogramado
Alma Yesenia Almaguer Cavazos 1486162 Sergio Eduardo Rocha Mendoza 1526438 Jonathan Alejandro Gómez Dávila 1449793
Memoria de Control
Jonathan Alejandro Gómez Dávila
Memoria de Control La función de la unidad de control en una computadora digital es iniciar secuencias de mircooperaciones. La cantidad de tipos de operaciones en un sistema es finita. La complejidad del sistema se deriva de la cantidad de secuencias de microopeaciones que se ejecutan. El flujo de control que especifica una microoperación es una variable binaria, una variable de control en estado binario opuesto no cambia el estado de los riesgos en el sistema.
En un sistema organizado con Bus, las señales que especifican las microopercaciones son grupos de bits que seleccionan trayectorias en los multiplexores, decodificadores y unidades lógicas. Las variables de control pueden representarse en cualquier momento mediante una cadena de dígitos 1 y 0, que se denomina palabra de control.
Una unidad de control cuyas variables de control binario se almacenan en memoria se llama unidad de control microprogramada. Cada palabra en la memoria de control contiene una microinstrucción. La microinstrucción especifica una microoperaciones para el sistema.
o
más
Una secuencia de microinstrucciones constituye a un microprograma.
Palabras de ROM El contenido de las palabras en la ROM(read-only memory) no puede alterarse mediante la programación ya que no es posible escribir en ella. El uso de un microprograma implica la colocación de todas las variables de control en palabras de ROM para que las use la unidad de control a través de operaciones de lecturas sucesivas.
Microprogramación Dinámica Permite que un microprograma se cargue al principio desde una memoria auxiliar; Ejemplo: un disco magnético.
Las unidades de control que utilizan la microprogramación dinámica, emplean una memoria de control en la que se puede escribir. Una memoria que es parte de una unidad de control se denomina memoria de control.
Control Microprogramado Una computadora que emplea una unidad de control microprogramada tendrá dos memoria separadas: • Memoria principal • Memoria de control
La memoria principal esta disponible para que el almacene programas. Su contenido varia cuando se manipulan los datos y cada vez que se cambie el programa.
El programa del en la memoria principal esta formado por instrucciones de maquina y datos.
La memoria de control contiene un microprograma fijo que el no puede alterar.
El microprograma consta de instrucciones que especifican diferentes señales de control interno para la ejecución de microoperaciones de registros. Cada instrucción de maquina inicia una serie de microoperaciones en la memoria de control.
Estas microinstrucciones generan las microoperaciones para llevar acabo la búsqueda de instrucciones en la memoria principal; para evaluar la dirección efectiva, para su ejecución y para retornar a la fase de búsqueda con en fin de repetir el ciclo para la siguiente instrucción.
Organización de Control Microprogramada
Memoria de Control La memoria de control se considera como ROM, dentro de la cual se almacena toda la información en forma permanente. La microinstrucción contiene una palabra de control que especifica una o mas microoperaciones para el procesador de datos. Una vez que se ejecuta estas operaciones, el control debe determinar la siguiente dirección y después se transfieren al registro de direccionamiento de control para leer la próxima microinstrucción.
El generador de la siguiente instrucción se llama secuenciador de microprograma, porque determina la secuencia de dirección que se lee en la memoria de control. Las funciones típicas son incrementar el registro de direccionamiento de control en 1: • Cargar una dirección de memoria de control en el registro • Transferir una dirección externa • Cargar una dirección inicial.
El registro de datos en ocasiones se denomina registro de arquitectura paralela (pipeline). Permite la ejecución de la microoperciones mediante la palabra de control simultáneamente con la generación de la siguiente microinstrucción que requiere un reloj de dos fases: • Registro de direccionamiento • Registro de datos.
Cada pulso de reloj ejecutara las microoperaciones especificas mediante el de control y también transferirá una nueva dirección al registro de dirección de control.
Control Programado La principal ventaja del control programado es que, una vez establecida la configuración de la circuitería, no hay necesidad de cambios posteriores.
Para establecer una secuencia diferente se necesita es especificar un conjunto de microinstrucciones diferentes en la memoria de control. La mayoría de las computadoras que se basan en el concepto de arquitectura utiliza un control de circuitería en lugar de una memoria de control con un microprograma.
Secuencia de la Dirección
Sergio Eduardo Rocha Mendoza
Secuencia de la Dirección Las microinstrucciones se almacenan en la memoria de control en grupos, y cada grupo especifica una rutina. Cada instrucción de computadora tiene su propia rutina de microprograma en la memoria de control para generar las microoperaciones que ejecutan la instrucción.
Al final de la rutina de búsqueda, la instrucción esta en el registro de instrucción de la computadora.
En resumen… Las posibilidades de secuencia de dirección que se requieren en la memoria de control son: 1.Incrementar el registro de direccionamiento de control. 2.Transferencia de control del programa condicional o incondicional, dependiendo de las condiciones de los bits del estado. 3.Un proceso de mapeo de los bits de la instrucción a una dirección para una memoria de control. 4.Una opción para llamar y regresar solicitud de una subrutina y retorno.
La microinstrucción en la memoria de control contiene un conjunto de bits para iniciar microoperaciones en los registros de la computadora y otros bits para especificar el método con el que se obtiene la siguiente dirección.
El diagrama muestra 4 trayectorias diferentes de las que recibe la dirección el registro de direccionamiento de control. Se incrementa el contenido de registro de direccionamiento de control en uno, para seleccionar la microinstrucción siguiente en la secuencia.
La transferencia de control del programa se consigue al especificar la dirección en uno de los campos de la microinstrucción. La transferencia de control adicional se obtiene al usar una parte de la microinstrucción para seleccionar un bit de estado especifico con el fin de determinar su condición.
Se transfiere una dirección externa a la memoria de control mediante un circuito lógico de apeo. La dirección de retorno para una subrutina se almacena en un registro especial cuyo valor se utiliza después, cuando el microprograma desea retornar de la subrutina.
Transferencia Condicional Las condiciones de estado son bits especiales del sistema que proporciona información con parámetros, como el acarreo de un sumador, el bit de signo de un numero, los bits de salida. En cambio, una instrucción de transferencia incondicional puede obtenerse al cargar la dirección de ramificación de la memoria de control en el registro de direccionamiento de control.
Mapeo de Instrucciones Existe un tipo de transferencia cuando una microinstrucción especifica un brinco a la primera palabra de la memoria de control donde se ubica una rutina de microprograma para una instrucción. Ejemplo tenemos un código de operación de 4 bits que puede especificar hasta 16 instrucciones diferentes. Además la memoria de control tiene 128 palabras, lo que requiere una dirección de 7 bits. Para cada código de operación que ahí se encuentre existe una rutina de microprograma en la memoria de control que ejecuta la microinstrucción.
Un proceso de mapeo simple que convierte al código de operación en 4 bits en una dirección de 7 bits para la memoria de control. Código de operación. Instrucción de computadora
Bits de mapeo
1 0 1 1 0
X X X X
0 0 0
1 0 1 1
DIRECCION 0 0
Subrutinas Las subrutinas son programas que utilizan otras rutinas para realizar una tarea en particular. Puede llamarse una subrutina de cualquier punto desde el cuerpo principal del programa. Los microprogramas que utilizan subrutinas deben tener una parte para almacenar la dirección de retorno durante una llamada de subrutina y restablecer la dirección durante un retorno de subrutina.
Diseño de una Unidad de Control
Alma Yesenia Almaguer Cavazos.
Micro (programación/ instrucción) Microprogramación: Es un método sistemático para diseñar la unidad de control de cualquier sistema digital.
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 .
Microinstrucción Los bits de una microinstrucción se dividen en campos. Cada campo debe definir una función separada y distinta. Los campos que se encuentran en los formatos de instrucción proporcionan: – Bits de control: para iniciar microoperaciones del sistema. – Bits especiales: para especificar la manera en que se va a evaluar la siguiente instrucción – Campo de dirección: para transferir el control del programa.
Puede reducirse la cantidad de bits de control que inician microoperaciones al agrupar variables mutuamente exclusivas en campos y codificar los bits k de cada campo para proporcionar 2^k microoperaciones.
Cada campo requiere de un decodificador para producir señales de control, se reduce el tamaño de los bits de microinstrucción.
Decodificador de Instrucción El decodificador de instrucción es el elemento encargado de transformar el contenido del código de operación almacenado en el registro de instrucción en una información más amplia e inteligible por el secuenciador.
Diseño de una Unidad de Control Componentes básicos de una unidad de control microprogramada: – Memoria – Secuenciador – Unidad de procesamiento
Secuenciador de microprograma Secuenciador de microprograma: su propósito es presentar una dirección a la memoria de control con el fin de que pueda leerse y ejecutarse una microoperación. Es el centro esencial de gestión, control y planificación del microprocesador, por tanto su función es fundamental para el desarrollo de cualquier instrucción software.
Secuenciador de Microprograma
Es un autómata (máquina de Mealy o Moore) que, tras analizar e interpretar la información de entrada (salida del decodificador, registro de estado, reloj), envía un conjunto de señales a las unidades que las precisen para proceder a la ejecución de la instrucción y para llevar a cabo el inicio de la siguiente. Estas señales que envía el secuenciador se conocen con el nombre de "micro órdenes".
Operaciones de secuenciador Operaciones de secuenciador típicas – – – – – –
incrementar Transferir o Hacer saltar Llamar y Retornar de Subrutina Cargar una dirección externa Salvar(en) o leer(De) la pila Operaciones de secuenciamiento de dirección