LÓGICA DE TRANSFERENCIA DE REGISTROS

 Los registros de computadora están representados por letras mayúsculas (en ocasiones seguidas de números), para denotar la función del registro. Por ejemplo, el registro que contiene una dirección para la unidad de memoria, por lo general se llama un registro de direccionamiento de memoria y se designan las letras MAR (memory address register). Otros nombres para registros son : PC (contador de programa)  IR (registro de instrucción) Rl (registro de procesador)

CONCEPTO

Es un conjunto de expresiones y afirmaciones con una notación simbólica para especificar las interconexiones necesarias entre los distintos componentes de un sistema digital.

Se seleccionan registros como los componentes primitivos de un sistema digital en vez de las compuertas y los flip-flop como en la lógica secuencial

De esta forma es  posible describir de forma precisa y concisa el flujo de información y las tareas de procesamiento entre los datos acumulados entre registros 

       El conjunto de registros en un sistema y sus funciones.

       La información en código binario almacenado en los registros.

       Las operaciones realizadas a partir de la información almacenada en los registros.

       Las funciones de control que inician la secuencia de operaciones.

Estos cuatro componentes forman la base del método de lógica de transferencia entre registros


OBJETIVOS

  El lenguaje de transferencia entre registros constituye un conjunto de expresiones y afirmaciones con una notación simbólica para especificar las interconexiones necesarias entre los distintos componentes de un sistema digital. Presenta las herramientas necesarias para describir el sistema , así como la secuencia de micro operaciones que se realizan en el mismo, entendiéndose por micro operación una operación elemental que se puede efectuar en forma paralelo durante un período de pulso de reloj. 

       Como resultado de una micro operación el dato previamente almacenado en un registro puede alterarse o ser almacenado en otro registro, etc.

       LOS REGISTROS SON UN MEDIO DE AYUDA A LAS OPERACIONES REALIZADAS POR LA UNIDAD DE CONTROL, LA UNIDAD ARITMÉTICA Y LÓGICA. QUE PERMITEN ALMACENAR INFORMACIÓN, TEMPORALMENTE, PARA FACILITAR LA MANIPULACIÓN DE LOS DATOS POR PARTE DE LA CPU.


5.2 TRANSFERECIA ENTRE REGISTROS 

       La transferencia de datos de un registro a otro es justamente almacenar en un registro los datos de otro registro. Para esto es necesario que la salida del registro que posee los datos (registro origen) esté conectada a la entrada del registro en el que vamos a almacenar la información (registro destino). Al aplicar un pulso de reloj, el registro destino toma los datos provenientes del registro origen.

       La transferencia de un registro a otro se indica como:

       A        B

       que quiere decir guardar en el registro A el contenido del registro B. (A es el registro destino y B el registro origen).

Si queremos realizar la transferencia de un registro origen a un registro destino, por ejemplo desde el registro origen A al registro destino B ( B            A ), tenemos el siguiente circuito.

En la figura se muestra como se conectan las salidas de los flip-flops del registro A (origen) a las entradas de los flip-flops del registro B (destino). De esta forma, al aplicar un pulso en la entrada de reloj del registro B este tomará los datos disponibles en su entrada y los almacenará. La  transferencia de datos se efectuará cuando la señal de control SC sea igual a 1. Esto para que la operación se realice en un momento determinado por el circuito que genera las señales de control.(circuito de secuencia de control).El diagrama de tiempo muestra los cambios de las diferentes señales y el momento en el que el registro almacena la nueva información.

TRANSFERENCIA DE VARIOS A 1 REGISTRO

Si queremos transferir datos de varios registros origen a un registro destino debemos seleccionar de cual de los registros se va a tomar la información. Para ello asociaremos una señal de control SC a cada posible transferencia. Tendremos tantas señales de control como transferencias se puedan realizar. Solamente la señal de control asociada a la transferencia que se quiere realizar valdrá 1, permitiendo enrutar la salida del registro correspondiente hacia la entrada del registro destino. Las demás señales de control valdrán 0. SOLO UNA SEÑAL DE CONTROL  PUEDE VALER 1 EN UN MOMENTO DETERMINADO. Al bajar un pulso de reloj el registro destino almacenará la información del registro seleccionado.


TRANSFERENCIA DE VARIOS REGISTROS A VARIOS REGISTROS

Si queremos transferir datos de varios registros origen a varios registros destino debemos agregar un set de compuertas ANDs que combina la señal de control SC con las salidas del registro origen, por cada transferencia que queremos realizar,  y un set de compuertas ORs a la entrada de cada registro destino.

Por ejemplo en el circuito que se muestra a continuación, si queremos realizar la transferencia de 3 registros origen a 2 registros destino, tendemos seis posibles transferencias:


TRANSFERENCIA ENTRE REGISTROS CON  ESTRUCTURA DE BUSES

Si utilizamos el esquema anterior para realizar las transferencias entre registros, a medida que incrementemos el numero de registros y de transferencias posibles, el circuito se hace muy costoso por el incremento de las compuertas.
Existe un método alternativo , generalmente mas económico que el de utilizar una estructura de "buses". La transferencia de datos entre registros utilizando la estructura de buses es un proceso que se realiza en dos pasos.

El primer paso es utilizar las señales de control para enrutar el dato hacia la salida del bus. Esta operación difiere de la transferencia ya que el bus no almacena los datos. El dato permanecerá en la salida del bus mientras la señal de control permanezca en 1.

Es importante resaltar esta distinción, EL BUS NO ALMACENA INFORMACION. De hecho el bus está compuesto básicamente por el set de compuertas OR  las cuales no almacenan información y su salida depende del valor de las entradas en ese momento.
El segundo paso es el de almacenar la salida del bus en el registro destino, lo que se realiza aplicando un pulso de reloj , controlado por una señal de control. En ese momento es que la señal de control que mantenía el dato en el bus pasa a ser nuevamente 0.

Para realizar el mismo tipo de transferencia que en el circuito anterior, pero con estructura de buses tenemos el siguiente diagrama



5.3MICROOPERACIONES ARITMETICAS Y LOGICAS

       Microoperaciones lógicas

       Microoperaciones de corrimiento

       Las microoperaciones aritméticas básicas son suma, resta, incremento, decremento y corrimiento.

       Transferencia de registros

       Los registros de computadora están representados por letras mayúsculas (en ocaciones seguidas de números), para denotar la función del registro. Por ejemplo:
MAR (Memory address register) : registro que contiene una dirección para la unidad de memoria

       PC : contador de programa

       IR : registro de instrucción

       R1 : registro de procesador

       Los flip-flops individuales en un registro de n bits están numerados en una secuencia de 0 hasta n-1, comenzando desde 0 en la posición de la extrema derecha y aumentando los números hacia la izquierda. La manera más común de representar un registro es mediante una caja rectangular con el nombre del registro dentro.

       En ocasiones es conveniente separar las variables de control de la operación de transferencia de registros al especificar una función de control. Una función de control es una variable booleana, que es igual a 0 o a 1. La función de control se incluye en el enunciado como sigue: P : R2 <- R1. La condición de control se termina con un signo de dos puntos. Una función de control es una variable booleana, que es igual a 0 a 1. La condición de control se termina con un signo de dos puntos. La operación de transferencia se ejecuta por el hardware sólo si P=1.
Se usan paréntesis para señalar una parte de un registro al especificar el rango de los bits o al otorgar un nombre simbólico a una parte de un registro. Se usan coman para separar dos o más operaciones que se ejecutan al mismo tiempo.

       Las microoperaciones lógicas especifican operaciones binarias para arreglos de bits almacenados en registros. Estas operaciones consideran cada bit de registro en forma separada y los tratan como variables binarias.


MICROOPERACIONES DE CORRIMIENTO

Corrimiento lógico : es aquel que transfiere un 0 por la entrada serial.
Corrimiento circular : hace circular los bits del registro por los dos extremos sin pérdida de información. Esto se consigue al conectar la salida serial del registro de corrimiento a su entrada serial.

Corrimiento aritmético : recorre un número binario con signo a la derecha o a la izquierda. Un corrimiento aritmético a la izquierda multiplica un número binario con signo por 2

       Un corrimiento aritmético a la derecha divide el número entre 2. El bit del extremo izquierdo contine el bit de signo y los bits restantes contienen el número. El bit de signo es 0 para los números positivos y 1 para los negativos. Los números negativos están en su forma complemento a 2.


 LENGUAJE DE CORRIMIENTO

       El diseño de sistemas digitales utiliza de manera invariable un enfoque modular. Los módulos se construyen a partir de componentes digitales como registros, decodificadores, elementos aritméticos y lógica de control. Los diferentes módulos están interconectados con los datos y las trayectorias de control comunes para formar un sistema de computadora digital

       El control que inicia la secuencia de micro operaciones. La notación simbólica que se utiliza para describir las transferencias de micro operaciones entre registros se llama lenguaje de transferencia de registros. Es una herramienta conveniente para describir la organización interna de las computadoras digitales de una manera precisa y concisa. También puede usarse para facilitar el procesos de diseñar sistemas digitales.

MICROOPERACIONES TIPOS

       Transferencia interna: operaciones de transferencia entre registros internos del procesador.

       Transferencia interna con transformación: operaciones aritméticas o lógicas utilizando registros internos del procesador.

       Transferencia externa: operaciones de transferencia entre registros internos del procesador y registros externos al procesador o módulos externos al procesador (como el bus del sistema o la memoria principal).

Comentarios

Entradas más populares de este blog

INTERFACES DE ENTRADA Y SALIDA

Ciclo y decodificación de ejecución de instrucciones