Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
• 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.
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.
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 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.
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
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.
REPRESENTACIÓN EN COMPLEMENTO 2
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:
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.
06132789 004
(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
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.
PC
Unidad
MAR
De
Memoria
IR
MBR
Decodificador
de operaciones
A
qn q4 q3 q2 q1
t7 t0
B
Decodificador
de tiempo