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