El Papel de laUnidad de Control
La Unidad de Control es el bloque más complejo delprocesador. Su misión es la de gobernar las señales de control que regulan laactuación del Camino de Datos en la ejecución de las instrucciones. Tiene queinterpretar o decodificar el código máquina de la instrucción en curso paraactivar aquellas señales que sean precisas para el desarrollo de la mismamediante los recursos existentes en el Camino de Datos del procesador.
· Para realizar su función, consta de lossiguientes elementos:
· Registro de contador de programas (CP)
· Registro de Instrucciones (RI)
· Decodificador (D)
· Reloj (R)
· Generador de Señales o Secuenciador (S)
· Registro de contador de programas (CP).También denominado registro de control de Secuencia (RCS), contiene permanentementela dirección de memoria de la próxima instrucción a ejecutar. Si la instrucciónque se está ejecutando en un instante determinado es de salto o de ruptura desecuencia, el RCS tomará la dirección de la instrucción que se tenga queejecutar a continuación; esta dirección la extraerá de la propia instrucción encurso. El primer paso para la ejecución de una instrucción, consiste en ir abuscarla en memoria, el CP indica cual es la dirección de memoria donde sehalla esa instrucción. Una vez obtenida y antes de continuar con los siguientespasos una señal de control incrementa el CP en una unidad, por lo cual losprogramas deben estar escritos (cargados) en posiciones consecutivas dememoria. El CP pasa la dirección al Registro de Direcciones
· Registro de Direcciones (RD). Contiene la dirección de memoria donde seencuentra la próxima instrucción y esta comunicado con el Bus deDirecciones. El tamaño de este registro determina el tamaño de la memoria quepuede direccionar.( Si es de 32 bits se puede direccionar 232=4.294.967296(4 GB posiciones de memoria). Con la dirección de memoria, se transfiere através el Bus de Datos desde la memoria central al Registro de Datos en la UCla instrucción correspondiente. Esta transferencia se realiza mediante señalesde control. Una vez que la instrucción se encuentra en la UCP, el códigode la instrucción pasa al registro de instrucciones.
· Registro de Instrucciones (RI).Contiene la instrucción que se está ejecutandoen cada momento. Esta instrucción llevará consigo el código de operación (CO),acción de que se trata, y en su caso los operandos o las direcciones de memoriade los mismos. Pasa el CO al decodificador.
· Decodificador (D). Se encarga de extraer y analizar el código deoperación de la instrucción en curso (que está en el RI) y dar las señalesnecesarias al resto de los elementos para su ejecución por medio del Generador de Señales.
· Generador de Señales (GS). En este dispositivo se generan órdenes muyelementales (microórdenes) que, sincronizadas por los impulsos del reloj, hacenque se vaya ejecutando poco a poco la instrucción que está cargada en el RI.
· Reloj (R). Proporcionar una sucesión de impulsos eléctricos a intervalos constantes(frecuencia constante), que marcan los instantes en que han de comenzar losdistintos pasos de que consta cada instrucción.
¿Cuáles son lasoperaciones lógicas que realiza la UAL, y como se comparan números en uncomputador por medio de ella?
La denominación “Lógica” de la UAL se debe a que tambiénefectúe operaciones lógicas, como la AND (^), OR ( ) y la negación (-). Losvalores “verdadero” y “falso” se representarían por 1 y 0.
La operación AND queda definida así: 0^0=0 0^1=0 1^0=0 1^1=1
Combinación que tenga 0 como ante último bit; si el resultado es cero implicaque dicho bit es 0. Si el resultado es distinto de cero implica que ese bitvale 1 (respuesta si), con lo cual se debe incrementar en uno el contador derespuestas positivas citado.
La UAL es un simple circuito calculador, no tiene “inteligencia” de tipodeductivo como puede insinuar su denominación “lógica “.
Para comparar dos números A y B, a fin de saber si A es menor, igual o mayorque B, en la UAL se resta A-B.
En un conmutador para conocer, si un número binario es el 3192, es restarle3192. Si el resultado es 0, será dicho número.
Cuando nos presentan dos números escritos, basta conobservarlos para darnos cuenta en forma mecánica por los símbolos que los componen,cual es el mayor. La UC no “sabe” que está operando números, ni el valor de unacombinación binaria.
El método usado en un computador para conocer, por ejemplo,si un número binario es el 3192, es restarle 3192. Si el resultado es cero,será dicho número, caso contrario no. La UAL tampoco determina como es Arespeto de B, solo efectúa A – B eindica si el resultado fue cero o no.
Por lo tanto, la comparación es una operación aritmética deresta, no lógica, siendo que las otras operaciones aritméticas que realiza laUnidad Aritmética Lógica son la suma, la multiplicación y división de númerosenteros y naturales.
Un típico símboloesquemático para una ALU: A y B son operandos; R es la salida; F es la entradade la unidad de control; D es un estado de la salida.
¿Que son losindicadores (“flags”) de resultado generados por la UAL, contenidos en elRegistro de Estado de la UCP?
Indicadores (flags)
Hay nueve indicadoresde un bit en este registro de 16 bits. Los cuatro bits más significativos estánindefinidos, mientras que hay tres bits con valores determinados: los bits 5 y3 siempre valen cero y el bit 1 siempre vale uno (esto también ocurría en losprocesadores anteriores).
Registro de indicadores (16 bits)
· CF (Carry Flag, bit 0): Sivale 1, indica que hubo "arrastre" (en caso de suma) hacia, o"préstamo" (en caso de resta) desde el bit de orden más significativodel resultado. Este indicador es usado por instrucciones que suman o restannúmeros que ocupan varios bytes. Las instrucciones de rotación pueden aislar unbit de la memoria o de un registro poniéndolo en el CF.
·
PF (Parity Flag, bit 2): Si valeuno, el resultado tiene paridad par, es decir, un número par de bits a 1. Esteindicador se puede utilizar para detectar errores en transmisiones.
·
AF (Auxiliary carry Flag, bit 4):Si vale 1, indica que hubo "arrastre" o "préstamo" delnibble (cuatro bits) menos significativo al nibble más significativo. Esteindicador se usa con las instrucciones de ajuste decimal.
·
ZF (Zero Flag, bit 6): Si esteindicador vale 1, el resultado de la operación es cero.
·
SF (Sign Flag, bit 7): Reflejael bit más significativo del resultado. Como los números negativos serepresentan en la notación de complemento a dos, este bit representa el signo:0 si es positivo, 1 si es negativo.
·
TF (Trap Flag, bit 8): Si vale1, el procesador está en modo paso a paso. En este modo, la CPU automáticamentegenera una interrupción interna después de cada instrucción, permitiendoinspeccionar los resultados del programa a medida que se ejecuta instrucciónpor instrucción.
·
IF (Interrupt Flag, bit 9): Sivale 1, la CPU reconoce pedidos de interrupción externas enmascarables (por elpin INTR). Si vale 0, no se reconocen tales interrupciones. Las interrupcionesno enmascarables y las internas siempre se reconocen independientemente delvalor de IF.
·
DF (Direction Flag, bit 10): Sivale 1, las instrucciones con cadenas sufrirán "auto-decremento",esto es, se procesarán las cadenas desde las direcciones más altas de memoriahacia las más bajas. Si vale 0, habrá "auto-incremento", lo quequiere decir que las cadenas se procesarán de "izquierda a derecha".OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operaciónaritmética con signo, esto es, un dígito significativo se perdió debido a quetamaño del resultado es mayor que el tamaño del destino.
¿En qué se diferenciala UAL y el coprocesador matemático que opera con números reales representados en “punto flotante” y comoopera este?
La UAL solo realiza operaciones aritméticas con números naturales o enteros.
Para operar en la UAL números fraccionarios, el programa que ordena lugar dondeestá la coma, y operar los números como si fueran enteros.
El coprocesador matemático (“copro”) es un microprocesadordedicado entre otras funciones a realizar rápidamente operaciones con númerosenteros y fraccionarios, encargándose sus circuitos de controlar a cadainstante el lugar donde debe ir la coma. También realiza operacionestrigonométricas y logaritmética.
De esta forma no se pierde tiempo en la ejecución de instrucciones adicionales,que lleven la cuente de la ubicación de la coma, como se requiere si se usa laUAL.
Los números “reales”. Para que el coprocesador pueda operarlos deben estarcodificados en “punto flotante”. El “copro” también se denomina “Unidad dePunto Flotante”, en realidad en el interior del computador se representa solocon números binarios, sin comas.
Existen instrucciones para cada tipo de número a procesar, cuyos códigosdeterminan, si la operación aritmética se realizara en la UAL o en el “copro”.El copro de una Pentium permite operar en doble precisión extendida con númerosde 80 bits, mientras que la UAL del mismo puede operar 2 números de 32 bits.
Las siglas 80x87 se refieren a copros de Intel.
Realizan las 4 operaciones aritméticas básicas, calculan raíz cuadrada,exponenciaciones, valor absoluto, logaritmos, funciones trigonométricas ytrascendentales en general.
Procesan datos como números en FP (reales) de 32, 64, 80 bits, enteros de 16,32 y 64 bits, y datos BCD de 18 dígitos decimales.
Las instrucciones para el Pentium y para el copro pueden ser ejecutadas porambos en forma simultánea.
En el registro de Estado del “copro” informa entre otras, si un resultado noesta fuera de rango de representación, o si un operando esta mal representado.
Estos últimos permiten determinar si un numero es > = < que el de la cimatop de la pila. Copro y Pentium se pueden comunicar a través de “ports”direccionales.
El copro solo puede acceder a memoria a través del 80x86 o Pentium. Paramultimedia (MMXtm) se ejecutan en un coprocesador dedicado a MMX, puede existirpara video, para entradas/salidas.
Un coprocesador es como una extensión de procesador central, que colabora coneste trabajando paralelo y proporcionando registros extras.
¿Qué son los MIPS ylas MFLOPS?
Millones de instrucciones por segundo MIPS.
Un Pentium actual de 1 GHz ejecuta hasta 3 instrucciones por ciclo, unos 3000MIPS.
Los MFLOPS “megaFLOGS” son las millones de operaciones en punto flotantes porsegundo que puede realizar un procesador, a diferencia de los MIPS los MFLOPSdepende del procesador y del programa elegido.
MIPS es el acrónimo de "millones deinstrucciones por segundo".Es una forma de medir la potencia de los procesadores. Sin embargo, esta medidasólo es útil para comparar procesadores con el mismo juego de instruccionesy usando benchmarksque fueron compilados por el mismo compilador y con el mismo nivel deoptimización. Esto es debido a que la misma tarea puede necesitar un número deinstrucciones diferentes si los juegos de instrucciones también lo son; y pormotivos similares en las otras dos situaciones descritas. En las comparativas,usualmente se representan los valores de pico, por lo que la medida no es deltodo realista. La forma en que funciona la memoriaque usa el procesador también es un factor clave para la potencia de unprocesador, algo que no suele considerarse en los cálculos con MIPS. Debido aestos problemas, los investigadores han creado pruebas estandarizadas talescomo SpecIntpara medir el funcionamiento real, y las MIPS han caído en desuso.
El equivalente en la aritmética de punto flotante de losMIPS es el flogs.
Muchos microprocesadores de 8 y 16 bits han sido medidos conKIPS (kiloinstrucciones porsegundo), que equivale a 0'001 MIPS. El primer microprocesador de propósitogeneral, el Intel 8080 ejecutaba 640 KIPS. El Intel 8086 (16 bits), el primermicroprocesador usado en PC, 800 KIPS. El Pentium 4 llega aproximadamente a1'700 MIPS.
Los PC actuales realizan un máximo de 18.000 millones deoperaciones lógicas por segundo. Si se ejecutan 6 instrucciones por ciclo y hay3.000 millones de ciclos por segundo, se tienen 18.000 MIPS.
MFLOP (operaciones de punto flotante por segundo). Se usacomo una medida del rendimiento de una computadora, especialmente en cálculoscientíficos que requieren un gran uso de operaciones de coma flotante.
Evolución en el tiempo de las instrucciones porsegundo
Procesador | IPS | Reloj | Año |
640 KIPS | 2 MHz | 1974 | |
800 KIPS | 4'77 MHz | 1974 | |
1 MIPS | 8 MHz | 1979 | |
54 MIPS | 66 MHz | 1992 | |
35 MIPS | 33 MHz | 1994 | |
35'9 MIPS | 40 MHz | 1996 | |
40'04 MIPS | 100 MHz | 1996 | |
525 MIPS | 233 MHz | 1997 | |
400 MIPS | 300 MHz | 1998 | |
80 MIPS | 50 MHz | 1999 | |
¡Error! Referencia de hipervínculo no válida. | 32 MIPS | 333MHZ | 2002 |
9.726 MIPS | 3'2 GHz | 2003 | |
2.000 MIPS | 1 GHz | 2005 | |
6.400 MIPS | 3'2 GHz | 2005 | |
8.400 MIPS | 2'8 GHz | 2005 | |
12.000 MIPS | 2'8 GHz | 2005 | |
18.500 MIPS | 2'2 GHz | 2005 | |
18.900 MIPS | 2'2 GHz | 2005 | |
25.150 MIPS | 2'8 GHz | 2005 | |
Cell (cada PPE) | 6.400 MIPS | 3'2 GHz | 2006 |
Procesador Cell de la PlayStation 3 | 21.800 MIPS | 3'2 GHz | 2006 |
22.150 MIPS | 2'6 GHz | 2006 | |
24.300 MIPS | 2'8 GHz | 2006 | |
27.100 MIPS | 3'0 GHz | 2006 |
La unidad de control es la parte del CPU que se encarga deque las cosas sucedan, ya que emite señales de control externas al CPU paraproducir el intercambio de datos con la memoria y los módulos de E/S. Tambiénemite señales de control internas para transferir datos entre registros, hacerque la ALU ejecute una función y otras operaciones internas. La entrada a la unidadde control está compuesta por el registro de instrucción, los indicadores, yseñales de control.
Es el auténtico cerebro que controla y coordina elfuncionamiento de la computadora.
A raíz de la interpretación de las instrucciones que integran el programa estaunidad genera el conjunto de órdenes elementales necesarias para que serealice la tarea necesitada.
La responsabilidad principal de la unidad de control es hacer que se produzcauna secuencia de operaciones elementales, llamadas micro operaciones, duranteel desarrollo de un ciclo de instrucción.
La función principal de la unidad de control de la UCP es dirigir la secuenciade pasos de modo que la computadora lleve a cabo un ciclo completo de ejecuciónde una instrucción, y hacer esto con todas las instrucciones de que conste elprograma.
A raíz de la interpretación de las instrucciones que integran el programa estaunidad genera el conjunto de órdenes elementales necesarias para que se realicela tarea necesitada.
Unidadaritmético–lógica (UAL)
Esta unidad es laencargada de realizar las operaciones elementales de tipo aritmético(generalmente sumas o restas) y de tipo lógico (generalmente comparaciones
· Para realizar su función, la unidad de controlconsta de los siguientes elementos:
· Contador de programa. Contienepermanentemente la dirección de memoria de la siguiente instrucción a ejecutar.Al iniciar la ejecución de un programa toma la dirección de su primerainstrucción. Incrementa su valor en uno, de forma automática, cada vez que seconcluye una instrucción, salvo si la instrucción que se está ejecutando es desalto o de ruptura de secuencia, en cuyo caso el contador de programa tomará ladirección de la instrucción que se tenga que ejecutar a continuación; estadirección está en la propia instrucción en curso.
· Registro de instrucción.Contiene la instrucción que se está ejecutando en cada momento. Estainstrucción llevará consigo el código de operación (un código que indica quétipo de operación se va a realizar, por ejemplo una suma) y en su caso losoperandos (datos sobre los que actúa la instrucción, por ejemplo los números asumar) o las direcciones de memoria de estos operandos.
· Decodificador. Se encarga deextraer el código de operación de la instrucción en curso (que está en elregistro de instrucción), lo analiza y emite las señales necesarias al resto deelementos para su ejecución a través del secuenciador.
· Reloj. Proporciona unasucesión de impulsos eléctricos o ciclos a intervalos constantes (frecuenciaconstante), que marcan los instantes en que han de comenzar los distintos pasosde que consta cada instrucción.
· Secuenciador. En estedispositivo se generan órdenes muy elementales (micro órdenes) que,sincronizadas por los impulsos de reloj, hacen que se vaya ejecutando poco apoco la instrucción que está cargada en el registro de instrucción.
La unidad de controlrealiza dos tareas básicas:
· Secuenciamiento. La unidad decontrol hace que el CPU avance a través de una serie de micro operaciones en lasecuencia oportuna, basada en el programa que se está ejecutando.
· Ejecución. La unidad decontrol hace que se ejecute cada micro operación.
La clave de cómo funciona la unidad de control es mediante el uso de señales decontrol.
Señales de control
Las entradas son:
· Reloj. La unidad de controlhace que se ejecute una micro operación (o un conjunto) en cada pulso de reloj.
· Registro de instrucción.Determina que micro operación se debe realizar.
· Indicadores. Usado paradeterminar el estado del CPU y el resultado de operaciones anteriores de laALU.
· Señales de control del bus decontrol. Señales de control desde el bus del sistema.
Las salidas son:
· Señales de control internas del CPU.-Para transferir datos de un registro a otro y para activar funcionesespecíficas de la ALU.
· Señales de control hacia el bus decontrol.- Señales de control de la memoria y señales de control de losmódulos de E/S.
Los pasos para ejecutar una instrucción cualquiera son lossiguientes:
1) Se extrae de la memoria principal la instrucción a ejecutar esa informaciónes almacenada en el contador de instrucciones, la información que se almacenaes la próxima instrucción a ejecutar en el registro de instrucción propiamentedicha. Este paso se llama ciclo de fetch en la literatura computacional (tofetch significa traer, ir por).
2) Una vez conocido el código de la operación la unidad de control ya sabe que circuitosde la UAL deben de intervenir pueden establecerse las conexiones eléctricasnecesarias a través del secuenciador.
3) Extrae de la memoria principal los datos necesarios para ejecutar lainstrucción en proceso.
4) Ordena la AUL que efectúa las operaciones el resultado de este es depositadoen el acumulador de la AUL.
5) Si la instrucción ha proporcionado nuevos datos estos son almacenados en lamemoria principal.
6) Incrementa en una unidad el contenido del contador de instrucciones a ejecutar.
La unidad de control ejecutara varias veces este ciclo de a una enormevelocidad.
Estas instrucciones no residen en memoria, ni fueron escritas por ningúnprogramador, sino que la maquina las ejecuta directamente por medioselectrónicos, y lo hará mientras esté funcionando (mientras este encendida) enuna computadora es a razón de cientos de miles (o incluso millones) de vecespor segundo.
Pasos para que UC no se equivoque con tantos númeroscontenidos en memoria (instrucciones, datos o direcciones)
El procesador no sabe qué información está tratando, pero elorden la secuencia repetitiva que realiza ha sido perfectamente planeada paraque no existan problemas de interpretación al respecto.
Luego se suceden en orden los 4 pasos, lo primero que recibe la UCP de MP es elcódigo de máquina de una instrucción, que ira al RI.
Un computador está pensado para que la UCP comience a operar leyendo de MP unnúmero que debe ir al registro de instrucción RI por lo que dicho númeroseráinterpretado como un código de una instrucción.
Después de sumar al IP la cantidad de bytes que tenía la instrucción ejecutada,IP contendrá la dirección de la próxima instrucción a ser ejecutada, con locual vuelve a empezar otro ciclo.
Las instrucciones deben estar escritas en posiciones sucesivas de memoria, yque los datos a operar por dichas instrucciones están en otra zona de memoria.
Los primero que llega es un código, el cual permite localizar otro número queserá un dato, luego lo próximo será un código, etc…
Relación existente entre los movimientos durante laejecución de una instrucción y el reloj de sincronismo del procesador.
La ejecución de cada instrucción se realiza en sincronismocon impulsos eléctricos que se suceden regularmente, a razón de millones deellos por segundo.
Se trata de una señal eléctrica que pasa cíclicamente por dos nivelesdenominados “ bajo” y “alto”, cada uno de una duración fija. Un ciclo o pulsose repite 50 millones de veces por segundo, por lo cual se tiene una frecuenciade repetición de 50 millones de HERTZ =50 MHZ.
Hablar de mega Hertz en lo mismo que hablar de millones de pulsos por segundo,y es lo mismo que decir millones de ciclos por segundo.
Una instrucción requiere para su ejecución varios pulsos reloj
Forma en que UC pasa de movimiento a otro.
La unidad de control sigue la dirección de las posiciones enmemoria que contiene la instrucción que el computador vaa realizar en ese momento; recupera la información poniéndola en la ALU para laoperación que debe desarrollar. Transfiere luego el resultado a ubicacionesapropiadas en la memoria. Una vez que ocurre lo anterior, la unidad de controlva a la siguiente instrucción (normalmente situada en la siguiente posición, amenos que la instrucción sea una instrucción de salto, informando al ordenadorde que la próxima instrucción estará ubicada en otra posición de la memoria).
Los procesadores pueden constar de además de las anteriormente citadas, deotras unidades adicionales como la unidad de Coma Flotante.
Sebastián Cintes, Daiana Lis Gimenez 2 "B"