P. 1
Unidad de Control

Unidad de Control

4.67

|Views: 32.829|Likes:
Publicado pordiazjap
Unidad de control CPU
Unidad de control CPU

More info:

Published by: diazjap on Jul 31, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

09/18/2015

pdf

text

original

1.- UNIDAD DE CONTROL.

La unidad de control el elemento que se encarga de sincronizar las acciones que realiza cada una de las unidades funcionales de un computador. Las funciones de la unidad de control son básicamente dos.  Interpretación de las instrucciones: La unidad de control debe ser capaz de decodificar los códigos de operación y los modos de direccionamiento de las instrucciones y actuar de forma diferente para cada uno de ellos.  Secuenciamiento de las operaciones: La unidad de control se encarga de la temporización de las distintas operaciones necesarias para la ejecución de cada instrucción. También debe controlar el secuenciamiento de las instrucciones en función de la evolución del registro contador de programa. La función principal de la unidad de control de la UCP es dirigir la secuencia de pasos de modo que la computadora lleve a cabo un ciclo completo de ejecución de una instrucción, y hacer esto con todas las instrucciones de que conste el programa. Los pasos para ejecutar una instrucción cualquiera son los siguientes: I. Ir a la memoria y extraer el código de la siguiente instrucción (que estará en la siguiente celda de memoria por leer). Este paso se llama ciclo de fetch en la literatura computacional (to fetch significa traer, ir por). II. Decodificar la instrucción recién leída (determinar de que instrucción se trata). III. Ejecutar la instrucción. IV. Prepararse para leer la siguiente casilla de memoria (que contendrá la siguiente instrucción), y volver al paso 1 para continuar.

La unidad de control ejecutará varias veces este ciclo de cuatro “instrucciones alambradas” a una enorme velocidad. Se llama así a estas instrucciones porque no residen en memoria, ni fueron escritas por ningún programador, sino que la maquina las ejecuta directamente por medios electrónicos, y lo hará mientras este funcionando (mientras este encendida) en una computadora es a razón de cientos de miles (o incluso millones) de veces por segundo. 2.- MODOS DE DIRECCIONAMIENTO DENTRO DEL ESQUEMA DEL PROCESADOR. Es un mecanismo que permite conocer la ubicación de un dato o instrucción y su principal objetivo es reducir el espacio ocupado en memoria por las instrucciones, permitir la reubicación del código y facilitar el manejo de las estructuras de datos dentro del computador. Las computadoras utilizan técnicas de modo de direccionamiento con el fin de acomodar una o ambas de las siguientes provisiones: 1. Dar versatilidad de programación al usuario proporcionando facilidades tales como indicadores, contadores, índices y relocalizadores de programa. 2. Reducir el número de bits en el campo de dirección de la instrucción. Los modos de direccionamiento se pueden dividir en siete grandes grupos que son: 1. Direccionamiento a registro. 2. Direccionamiento inmediato. 3. Direccionamiento directo. 4. Direccionamiento indirecto a registro. 5. Direccionamiento relativo a base. 6. Direccionamiento indexado directo.

7. Direccionamiento indexado a base. El procesador determina cual de los siete modos de direccionamiento se usará mediante la examinación del contenido del campo de modo dentro de la instrucción. El lenguaje ensamblador establece el campo del modo basado en la forma en como aparecen los operandos en el programa fuente. Antes de entrar en detalle es necesario que conozcamos los registros internos de un procesador de 16 bits, como el que se muestra en la figura.

3.- REGISTROS DEL PROCESADOR. En microprocesadores, un registro es una porción de memoria ultrarrápida, de poca capacidad e integrado al microprocesador, que permite almacenar y acceder datos usados frecuentemente. Se emplean para aumentar la velocidad de ejecución de los programas.

La mayoría de las arquitecturas de computadora emplean registros, moviendo datos desde la memoria principal hacia los registros, se opera sobre éstos, y el resultado es movido nuevamente a la memoria principal. Existen múltiples tipos de registros como ser:  Registro de memoria: almacenan exclusivamente direcciones de memoria.  Registro de datos: almacenan números enteros.  Registro de propósito general (GPR o General Purpose Registers): permiten almacenar tanto datos como direcciones. La mayoría de las computadoras modernas emplean este tipo de registros.  Registro de coma flotante: almacenan datos en formato de coma flotante.  Registro de constantes: almacenan datos constantes (que no se cambian).  Registro de propósito específico: almacenan información específica sobre el estado del sistema, como el puntero de pila o el registro de estado.

3.1.- Registros de uso general Existen 4 registros denominados AX, BX, CX y DX que en realidad tienen asignados usos característicos, aunque pueden ser utilizados a discreción para cualquier cosa que necesitemos.  AX es denominado acumulador; suele contener uno de los operandos que intervienen en las operaciones aritméticas y lógicas, y después de esta, el resultado de la operación. En general las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcódigo más simple que la misma instrucción ejecutada con otro registro.  BX es el registro base, suele contener la dirección de inicio de una tabla de valores.  CX es denominado contador. Las instrucciones de bucle (LOOP) utilizan este registro como contador.  DX es un registro de datos, multiuso. Se utiliza en operaciones de multiplicación y división junto con AX. En operaciones de entrada/salida de puertos IN/OUT, su mitad inferior DL, contiene el número de puerto ( 2.5).

Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [6], en caso necesario pueden ser utilizados en dos mitades (nibbles), "High" y "Low", de 8 bits, con lo que puede considerarse que existen 12 registros de uso

general (no simultáneos), los anteriores y sus mitades: AH; AL; BH; BL; CH; CL; DH y DL. 3.2.- Registros de segmento Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria). Utilizándolos en conjunción con otros registros que señalan las direcciones concretas dentro de estos segmentos (los desplazamientos ), permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits).  Segmento de código CS ("Code segment"). Señala la dirección del segmento de código del programa que se está ejecutando.  Segmento de datos DS ("Data segment"). Señala la dirección del segmento de datos del programa en ejecución.  Segmento de pila SS ("Stack segment"). Señala la dirección del segmento donde está la pila del programa.  Segmento extra ES ("Extra segment"). Es un segmento auxiliar a los anteriores, se utiliza para señalar espacio extra en alguno de los segmentos intermedias. o para almacenar momentáneamente direcciones

Puede ocurrir que programas pequeños utilicen el mismo segmento para el código, los datos y la pila. 3.3.- Registros de puntero Son 5 registros destinados a contener direcciones; estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento.

 El primero, denominado indistintamente puntero de instrucción IP ("Instrucción pointer") y contador de programa PC ("Program counter"), indica el desplazamiento (dentro del segmento de código CS) de la próxima instrucción a ejecutar.  El puntero de pila SP ("Stack Pointer"), señala el desplazamiento del final de la pila dentro del segmento de pila SS. En caso necesario la pila puede crecer a partir de este punto, de forma que por ejemplo, una nueva invocación de función creará un nuevo registro de activación que comenzará en este punto.  El puntero base BP ("Base pointer") señala el desplazamiento (dentro del segmento de pila SS) donde se encuentra el origen de la zona ocupada por las variables dinámicas.  Existen dos registros denominados "de índice", en razón de su utilización muy particular; el índice fuente SI ("Source index") y el índice destino DI ("Destination index"). Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones específicamente pensadas para transferir datos (dentro de

un rango de posiciones de memoria), desde un punto inicial de un segmento de datos, a otro. 3.4.- Registro de estado Existe un registro especial, el registro de estado (FLAGS), en el que 9 de los 18 bits actúan como semáforos (indicadores del estado del procesador y del resultado de determinadas operaciones). Por ejemplo, si después de una suma aritmética hay o no desbordamiento del bit más significativo. Cada bits individual puede estar "activo" (1) o "inactivo" (0), y tiene un identificador que termina en F ("Flag"). Son los siguientes:
BIT INDICADOR DE USOS Indicador de arrastre del bit de mayor orden, que puede ocurrir en las operaciones aritméticas suma y resta. Si está activo Indica un número par de bits activos (bits cuyo contenido es 1). Esta información es útil cuando el procesador controla transmisiones de datos. Indicador de ajuste en operaciones aritméticas con cantidades BCD ( E0.1w1).

CF

Acarreo ("Carry Flag")

PF

Paridad ("Parity Flag")

AF

Acarreo auxiliar

ZF

Cero ("Zero Flag")

Está activo si el resultado de operación es cero o resultado de comparación igual.

SF

Signo ("Sign Flag")

Si está activo indica que el resultado de operación o de comparación son negativos [5]. Si está activo, el procesador genera automáticamente una interrupción después de la ejecución de cada instrucción, lo que permite controlar paso a paso la ejecución del programa. Este bit debe estar normalmente inactivo (a 0). Este bit controla el estado del sistema de interrupciones enmascarables ( 2.4). Cuando está activo (1) permite las interrupciones; el estado inactivo (0) las deshabilita.

TF

Detención ("Trap Flag")

IF

Interrupción ("Interrupt Flag")

DF

Dirección ("Direction Flag")

Indica la dirección de las operaciones.

OF

Desbordamiento (Overflow Flag")

Señala desbordamiento aritmético

4.- UNIDAD DE DESPLAZAMIENTO. Es la vía de comunicación entre el CPU y los chip inmediatos a el, comúnmente llamado chipset en los sistemas modernos. Este bus es usado para transferir datos entre el CPU y bus del sistema principal, por ejemplo, o entre el CPU y la memoria caché externa. El propósito de la unidad de desplazamiento es conseguir mayor velocidad en la entrega de la información para y del CPU, este bus opera a una mayor rapidez que cualquier otro bus en la PC. En este bus no existen los cuellos de botellas, el bus consiste de circuitos eléctricos para datos, dirección y control. Este bus opera con la misma velocidad del reloj a como lo hace el CPU externamente, ya que internamente el CPU puede trabajar a mayores velocidades. Cualquier información que entra o sale de un sistema ordenador se almacena temporalmente en al menos una de las distintas localizaciones que existen a lo largo del bus. La mayor parte de las veces el dato se sitúa en la memoria principal, que en la familia PC está formada por miles de posiciones de memoria de 8 bits. Pero algún dato puede acabar en un puerto, o registro, durante unos instantes, mientras espera que la CPU lo envíe a una posición adecuada. 5.- UNIDAD ARITMETICO-LÓGICA. Unidad Lógica Aritmética (ULA), o Arithmetic Logic Unit (ALU), es un circuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (como igual a, menor que, mayor que, etc.), entre dos números. Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el pitido del temporizador, etc.

Por mucho, los más complejos circuitos electrónicos son los que están construidos dentro de los chips de microprocesadores modernos como el Intel Core Duo. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso. De hecho, un microprocesador moderno (y los mainframes) pueden tener múltiples núcleos, cada núcleo con múltiples unidades de ejecución, cada una de ellas con múltiples ALU. Una ALU debe procesar números usando el mismo formato que el resto del circuito digital. Para los procesadores modernos, este formato casi siempre es la representación de número binario de complemento a dos. Las primeras computadoras usaron una amplia variedad de sistemas de numeración, incluyendo complemento a uno, formato signo-magnitud, e incluso verdaderos sistemas decimales, con diez tubos por dígito. Las ALUs para cada uno de estos sistemas numéricos tenían diferentes diseños, y esto influenció la preferencia actual por el complemento a dos, debido a que ésta es la representación que hace más fácil, para el circuito electrónico de la ALU, calcular adiciones y sustracciones, etc.

Una ALU simple de 2 bits que hace operaciones de AND, OR, XOR y adición

6.- INTERRELACIONES. El programa es registrado en memoria antes de comenzar su ejecución. Esta memoria, gracias a la cual puede ejecutarse el programa, se llama memoria central o bien memoria principal y en tomo suyo se organiza el resto de diferentes unidades de la máquina. La memoria central almacena dos clases de información: de un lado, las instrucciones del programa (o informaciones descriptoras del tratamiento) que la máquina deberá ejecutar; de otro lado, los datos dichos a menudo operandos (o informaciones a tratar) con los cuales efectuará la máquina los tratamientos dictados por las instrucciones. Las dos clases de información tienen sus correspondencia física en dos unidades peculiares de la máquina: la unidad de control, también llamada unidad de instrucciones o unidad de gobierno, para las informaciones descriptoras y la unidad aritmética y lógica o unidad de proceso, para las informaciones a tratar. Esquemáticamente pueden resumirse las principales funciones de la unidad de control así: Extrae de la memoria central la nueva instrucción a ejecutar; analiza dicha instrucción y establece las conexiones eléctricas

correspondientes dentro de la unidad aritmética y lógica; extrae de la memoria central los datos implicados por la instrucción; desencadena el tratamiento de dichos datos en la unidad aritmética y lógica; eventualmente, almacena el resultado en la memoria central. La unidad aritmética y lógica opera con los datos que recibe siguiendo órdenes de la unidad de control. El conjunto Unidad de Control y Unidad Aritmética-lógica forma un todo en la mayoría de los computadores. Se llama unidad central o unidad central de proceso o procesador central. para diversos autores, la unidad central comprende también la memoria central.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->