Está en la página 1de 6

PEDRO GUTIERREZ HERNANDEZ

8
Lógica de transferencia de datos
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.

Los módulos digitales se definen mejor por los registros que contienen y las operaciones que realizan
sobre los datos que almacenan. Las operaciones que se ejecutan sobre los datos almacenados en
los registros se llaman micro operaciones. Una micro operación es una operación básica realizada
sobre la información almacenada en uno o más registros. El resultado de la operación puede sustituir
la información binaria anterior de un registro o puede transferirse a otro. Algunos ejemplos de micro
operaciones son desplazar, contar, borrar y cargar.

La organización interna del hardware de una computadora digital se define mejor al especificar:
El conjunto de registros que contiene y sus funciones.
La secuencia de micro operaciones que se realizan sobre la información binaria almacenada en los
registros. 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 proceso de diseñar sistemas digitales.

Transferencia entre 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:

• 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.

La transferencia de información de un registro a otro se representa en forma simbólica mediante un


operador de sustitución. El enunciado R2 <- R1 denota una transferencia del contenido del registro
R1 al registro R2. Por definición, el contenido del registro fuente R1 no cambia después de la
transferencia.

Normalmente queremos que la transferencia ocurra sólo bajo una condición de control
predeterminada. Esto puede mostrarse mediante un enunciado si, entonces: Si(P=1) entonces (R2
<- R1), donde P es la señal de control que se genera en la sección de control.

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

ARQUITECTURA DE COMPUTADORAS AVANZADAS


PEDRO GUTIERREZ HERNANDEZ

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.

Micro operaciones aritméticas, lógicas y desplazamiento


Las micro operaciones que se encuentran con mayor frecuencia en las computadoras digitales se
clasifican en cuatro categorías:

• Micro operaciones aritméticas


• Micro operaciones lógicas
• Micro operaciones de desplazamiento

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

Micro operaciones 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.

Micro operaciones de desplazamiento:


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.

Desplazamiento 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 contiene 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.

Proporciones condicionales de control


Las proposiciones condicionales permiten cambiar el flujo del programa dependiendo de la condición
de una expresión lógica. Los ciclos permiten ejecutar un conjunto de instrucciones un determinado
número de veces o hasta que deje de ser cierta una condición lógica.

La estructura de control más utilizada es el SI:

SI condición ENTONCES
INICIO
instrucciones
FIN

La cual indica que si la condición lógica es verdadera se ejecuta ese conjunto de instrucciones, en
caso de ser falsa no se realizan dichas acciones

ARQUITECTURA DE COMPUTADORAS AVANZADAS


PEDRO GUTIERREZ HERNANDEZ

Datos binarios del punto fijo


REPRESENTACIÓN EN COMPLEMENTO 1

Complemento 1 es una forma particular de representar números positivos y negativos. Su


forma es simple y bastante directa de entender. Todo número positivo posee su bit más
significativo igual a 0. Los números negativos se obtienen con sólo negar (o complementar)
el número positivo correspondiente. Un ejemplo para el caso de tres bits es mostrado en la
tabla 1.

Números binarios en complemento 1

000 0 111 0
001 1 110 –1
010 2 101 –2
011 3 100 –3

De la tabla anterior se puede observar que el número 0 posee dos formas distintas de
representación. Ello ha llevado a problemas con la comparación por cero en algoritmos, por
lo cual este tipo de representación no es utilizado.

El término “complemento 1” se debe a que el número negativo se obtiene sólo


complementando el patrón de bits del número positivo que se quiere pasar a negativo.

REPRESENTACIÓN EN COMPLEMENTO 2

La representación en complemento 2 es una forma eficiente de representar números con


signo en microprocesadores de punto fijo. La propiedad fundamental de este formato es que
permite representar números negativos, por lo cual se utiliza el bit más significativo de la
palabra binaria que se está manejando. Esto lleva a que en un formato de palabra de n bits,
la capacidad de representación sea de hasta para números positivos y 2
negativos. El bit de signo será siempre el más significativo.

La figura 1 muestra un esquema para n bits.


2 1 1 − n− n−1

Palabra de n bits: S: bit de signo, b: bits que representan un número

Desplazamientos aritméticos
Un desplazamiento aritmético es una operación en la que se mueve un numero binario, ya sea a la
derecha o a la izquierda; un desplazamiento hacia la izquierda equivale a multiplicar el número por
2 y un desplazamiento hacia la derecha equivale a dividir dicho número por 2. Si el número tiene
signo; los desplazamientos no deben afectar dicho signo, ya que las multiplicaciones y divisiones por
2 no afectan el signo.

Consideremos un desplazamiento hacia la derecha; esto puede simbolizarse por cualquiera de las
siguientes proporciones:

A(N) shr A(N), An-1 0 para signo-magnitud


A shr, A(S) A(S) para signo-complemento de 1 o signo-complemento 2.

Para la representación “Para signo-magnitud” el desplazamiento aritmético hacia la derecha coloca


un “0” en la posición más significativa. El bit del signo no se afecta. En la otra representación todo el
registro se desplaza mientras que el bit de signo permanece inalterado.

ARQUITECTURA DE COMPUTADORAS AVANZADAS


PEDRO GUTIERREZ HERNANDEZ

Datos decimales
La representación de números decimales en los registros es una función del código binario usado
para representar un digito decimal. Al representar los números en decimal, se desperdicia una
cantidad considerable de espacio de almacenamiento, ya que el número de slip flops necesarios
para almacenar un numero decimal es mayor que el número de flip flops necesarios para representar
su equivalente en binario. También los circuitos necesarios para realizar operaciones decimales son
mucho más complejos. Sin embargo, hay algunas ventajas al usar el sistema decimal, ya que los
usuarios que usan los sistemas, están acostumbrados a usar números decimales. Por ejemplo, una
computadora que utiliza representación binaria para realizar sus operaciones aritméticas, necesita
convertir el numero tecleado por el usuario, de decimal a binario y los resultados se deben convertir
de nuevo a decimal para su salida. Algunos sistemas que utilizan pocas operaciones aritméticas
realizan los cálculos aritméticos directamente con datos decimales (en código binario) para así
eliminar la necesidad de conversión a binario y luego a decimal.

Datos de punto flotante


La representación del punto flotante de un numero requiere de 2 registros. El primero representa un
numero con signo de punto fijo y el segundo la posición del punto del radical. Por ejemplo, la
representación del número decimal +6132.789 es de la siguiente manera:

Signo Punto decimal inicial


Signo

06132789 004

Primer registro Segundo registro

(Coeficiente) (Exponente)

El primero registro tiene un 0 en la posición del flip flor más significativo para indicar que es número
positivo. La magnitud del número se almacena en un código binario de 28 flip-flops, con cada digito
decimal ocupando 4 flip-flops. El número del primero registro se considera una fracción, de manera
que el punto decimal en el primer registro se fija a la izquierda del bit más significativo. El segundo
registro contiene el numero decimal +4 (en código binario) para indicar la posición actual del punto
decimal la cual es 4 posiciones a la izquierda.

Las operaciones aritméticas con una representación de números de punto flotante son más
complicadas que las operaciones aritméticas con números de punto fijo y su ejecución se demora
más tiempo y requiere materiales más complejos; sin embargo, en muchas ocasiones es necesario
la utilización de números con punto flotante.

Datos no numéricos
Los tipos de datos considerados hasta ahora representan números que el computador usa como
operandos para las operaciones aritméticas. Sin embargo, un computador no es una máquina que
almacena números y realiza operaciones con ellos a gran velocidad. Muchas veces un computador
manipula símbolos en lugar de números. La mayoría de los programas escritos para los usuarios de
un computador están en forma de caracteres, es decir un conjunto de símbolos que abarcan letras,
dígitos y varios caracteres especiales. Una computadora es capaz de aceptar caracteres (en código
binario), almacenarlos en la memoria y realizar y realizar operaciones con los caracteres transferidos

ARQUITECTURA DE COMPUTADORAS AVANZADAS


PEDRO GUTIERREZ HERNANDEZ

a un componente de salida. Un computador puede manipular cadenas de caracteres, una cadena


de caracteres es un conjunto de caracteres, escritos en orden, uno después de otro.

Los caracteres se representan en los registros del computador por medio de un codigo binario;
algunos de estos códigos son: el condigo interno de 6 bits, código ASCII 7 bits, código EBCDIC de
8 bits y el código de tarjeta 12 bits; solo por nombrar los de uso más común.

Códigos de instrucción
Un código de instrucción es un grupo de bits que le dice al computador como realizar una operación
específica. Por lo general están divididos en 2 partes cada una conteniendo su propia interpretación
particular. El código de operación de una instrucción es un grupo de bits que define una operación,
tal como sumar, multiplicar, restar, incrementar, desplazar, complementar, etc. El número total de
operaciones obtenidas, determinan el conjunto de operaciones de máquina.
El diseñador asigna una combinación de bits (un código) a cada operación. La unidad de control se
diseña para aceptar cada instrucción en un tiempo adecuado y para suministrar las señales de
comando adecuadas. Por ejemplo, si se considera un computador que usa 32 operaciones distintas,
la cual, una de ellas es la suma. El código de operación puede consistir de 5 bits con una
configuración de bits 10010 asignada a la operación suma; cuando el código de operación 10010 es
detectado por la unidad de control, se aplica una señal de comando a un circuito sumador para sumar
2 números.

Diseño de un computador sencillo


El diagrama de bloques de un computador sencillo se muestra a continuación. Este sistema consta
de una unidad de memoria, siete registros y 2 decodificadores.
Las instrucciones y los datos se almacenan en la unidad de memoria, pero todo el proceso de
información se hace en los registros.

A continuación, se muestra un diagrama de bloque de un computador simple:

Simbolo # de Nombre del registro Función


bits
MAR 8 Registro de dirección de memoria Almacena direcciones de memoria
MBR 8 Registro separador de memoria Almacena contenidos de palabras
de memoria
A 8 Registro A Registro procesador
B 8 Registro B Registro procesador
PC 8 Contador de programa Almacena la dirección de
instrucción
IR 8 Registro de Instrucción Almacena códigos de operación
corrientes
T 3 Contador de tiempo Generador de secuencias

ARQUITECTURA DE COMPUTADORAS AVANZADAS


PEDRO GUTIERREZ HERNANDEZ

PC

Unidad
MAR
De

Memoria
IR

MBR
Decodificador
de operaciones
A
qn q4 q3 q2 q1

t7 t0
B
Decodificador
de tiempo

ARQUITECTURA DE COMPUTADORAS AVANZADAS

También podría gustarte