Sei sulla pagina 1di 30

Tema 4

Estructura de la computadora digital

En este tema se va a profundizar en el estudio de las distintas partes funcionales de la compu-


tadora, comenzando por la memoria y terminando con la unidad de control. Posteriormente se
explicara en que forma funciona el conjunto.

4.1 Esquema funcional

Como se avanzo en el tema 1, la computadora digital esta formada por varias unidades con
tareas claramente diferenciadas como puede verse en el diagrama de bloques de la figura 4.1.
Observe que las flechas que unen los bloques son de dos tipos. La razon de esta diferencia es
resaltar, que la comunicacion entre bloques es de dos tipos: informacion y senales de control. La
primera categora, la informacion, abarca los datos, los resultados y otras informaciones como
direcciones de memoria, estados, etc. La segunda categora, las senales de control son ordenes
que la UC manda a los distintos elementos para que se realicen las operaciones.

Se vera mas adelante que la UC y la UAL forman la unidad central de proceso (UCP), que es
la responsable de la ejecucion del programa. La memoria tiene un papel pasivo proporcionando
los datos e instrucciones cuando son solicitados por la UCP.
unidad de entrada/salida

Memoria Periffico 1
UAL
principal

seales
Perifrico n de control
Unidad de control
informacin

Figura 4.1: Modelo de Von Neumann de la computadora digital.

37
38 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

R y

S y

Figura 4.2: El biestable R-S realizado con puertas logicas.

4.2 Almacenamiento de la informacion

Para el procesamiento de la informacion es indispensable algun soporte fsico que de un modo u


otro la contenga (almacenamiento). En el caso que nos ocupa de las computadoras digitales, la
unidad de informacion fundamental es el dgito binario (bit). Al soporte fsico que es capaz de
albergar un bit se le denomina celda o celula elemental. Es decir, una celda elemental es
un dispositivo capaz de almacenar un 0 o un 1. Uno de los dispositivos usados para la realizacion
de dichas celdas es el denominado biestable, cuyo funcionamiento se describe a continuacion.

4.2.1 La celda elemental

El biestable es un dispositivo (electronico) con dos posibles estados estables; es decir, estados
que en ausencia de excitacion externa no cambian. Hay varias clases de biestables, pero todos
permiten almacenar una unidad de informacion (0 o 1). Considerado como un sistema logico,
cada biestable puede describirse mediante las operaciones necesarias para producir las salidas
a partir del valor de las entradas. Hay que tener en cuenta que, a diferencia de los circuitos
logicos vistos con anterioridad (denominados circuitos combinacionales), el biestable tiene
memoria. Esto conlleva que ante un mismo valor de las entradas puede producir salidas distintas
dependiendo del estado anterior. Este tipo de circuitos es un circuito logico no combinacional
denominados circuitos secuenciales.

Aqu se describe el biestable denominado R-S, que posee dos entradas: la entrada S para
su puesta a uno (set) y la entrada R para la puesta a cero (reset). Tiene dos salidas: el estado
y y el complementario y. La figura 4.2 muestra la construccion de un biestable R-S a base de
dos puertas O negadas. Para describir su funcionamiento es preciso suponer un estado inicial.
Consideramos que en el instante t = 0 el biestable tiene por salida y0 = y(0). El funcionamiento
del biestable queda entonces descrito por las siguientes reglas:

Si las entradas R y S estan inactivas (valen 0), el biestable conserva el estado anterior.
R = S = 0 y(t) = y0 t > 0

Si se activa la puesta a uno; o sea, si se hace S = 1, la salida se hace uno.


S = 1 y(t) = 1 t > 0

Si se activa la puesta a cero, la salida se hace cero.


R = 1 y(t) = 0 t > 0
c MRA & JAAR
2009 DISA. ESI. US. 39

Es posible comprobar que estas reglas se cumplen para el circuito de la figura 4.2. Tambien es
facil demostrar que la salida no solo depende del valor de las entradas, sino de la salida anterior
a la aplicacion de tales entradas.

La tabla de transicion del biestable proporciona la salida del mismo en el instante pos-
terior y(t), conocida la salida en el instante actual y0 , y el valor actual de las entradas (RS):

RS 00 01 10 11
y0 = 0 0 1 0 X
y0 = 1 1 1 0 X

En la columna correspondiente a R = 1, S = 1 no se ha consignado ningun valor puesto que


el biestable no se ha de usar conectando ambas entradas a uno. Se confirma que el biestable no
es un circuito logico combinacional, puesto que la salida no solo depende de las entradas, sino
del estado anterior.

La tabla inversa a es la que da el valor de las entradas (RS) necesario para obtener un estado
y(t + 1), conocido el estado actual y(t), y recibe el nombre de tabla de excitaci on.

y(t) 0 1
y0 = 0 -0 01
y0 = 1 10 0-

En la tabla anterior se ha escrito el valor de R y S para que el estado en los instantes siguientes
sea el que aparece en la cabecera de la columna. El guion indica que la entrada correspondiente
puede tomar cualquier valor (0 o 1), porque el resultado no se ve afectado.

4.2.2 El registro

Las celdas elementales solo pueden representar los numeros cero o uno; para poder usar
numeros mayores estas celdas se agrupan. Un registro es un conjunto de celdas de memo-
ria, cuyo contenido representa una informacion codificada en binario que es procesada como un
ente unico. Fsicamente es una asociacion de biestables (figura 4.3). La salida de cada uno de
los biestables (bits Q0 a Q3 ) se interpreta como cifra de una cantidad expresada en binario. Al
aumentar el numero de cifras aumenta el numero de combinaciones posibles, por lo que se puede
representar una cantidad mayor de informacion. Por ejemplo, un registro de 7 celulas puede
almacenar 27 = 128 informaciones binarias distintas mientras que uno con 6 solo la mitad.

Es necesario comentar que, al unir varios biestables, interesa que los cambios ocurran en
todos ellos al mismo tiempo; es decir, que las transiciones entre estados esten coordinadas. Esto
se consigue disponiendo en cada biestable una entrada adicional llamada de sincronismo, la
cual se conecta mediante una puerta Y a las otras entradas R y S, de forma que, se impide que
senales R y S actuen hasta que se active la de sincronismo. La senal de sincronismo suele tomar
la forma dada en la figura 4.3, llamada tren de pulsos. El sincronismo viene dado por el reloj
40 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Q3 Q2 Q1 Q0

RS RS RS RS

sincronismo

Figura 4.3: Asociacion de cuatro biestables con senal de sincronismo comun.

interno del sistema y su papel es similar al del tambor que marca el ritmo a los remeros de una
galera.

Como ejemplo de registro veamos el registro de desplazamiento. Este registro no


solo contiene informacion, ademas permite que esta se mueva en su interior. Considerese un
registro de desplazamiento de 6 celdas con unos y ceros en sus celdas.
0 1 0 1 1 0

Puede considerarse que representa el numero 24 + 22 + 21 = 22. Si trasladamos el contenido


del registro a la derecha queda:
0 1 0 1 1

Rellenando con un cero por la izquierda se obtiene:


0 0 1 0 1 1

que representa el numero 23 + 21 + 20 = 11. Se ha conseguido dividir el numero por dos. Si


en lugar de desplazar a la derecha se mueve hacia la izquierda el resultado es
1 0 1 1 0

introduciendo un cero en la posicion que queda vaca a la derecha se obtiene


1 0 1 1 0 0

que representa el numero 25 + 23 + 22 = 44, que es el numero original multiplicado por dos.

4.2.3 La unidad de memoria en la computadora

El tratamiento automatico de la informacion requiere el almacenamiento masivo de la misma de


forma mas o menos permanente. La memoria en una computadora es un dispositivo capaz de
almacenar informacion. Para servir a los propositos del tratamiento automatico de la informacion
la memoria ha de ser capaz de recuperar cualquier informacion, proporcionandola al exterior solo
cuando sea solicitada. Para resolver este problema se han propuesto historicamente soluciones
diversas muy imaginativas como lneas de retraso, tubos de mercurio y nucleos de ferrita. Como
ya se ha dicho, las computadoras digitales trabajan con datos binarios, por lo que la memoria
debe poder guardar variables que toman dos valores: 0 o 1. Para ello basta con agrupar celdas
elementales formando registros y a su vez, los registros se apilan para formar bloques mayores.
c MRA & JAAR
2009 DISA. ESI. US. 41

En el esquema funcional de Von Neumann (vease la figura 4.1) la memoria es el bloque que
almacena tanto los datos y resultados como las instrucciones. A peticion de la unidad de control
la memoria es capaz de realizar 3 operaciones:

Lectura. Consiste en extraer una copia de cierta informacion. En la mayora de las compu-
tadoras tal informacion pueden leerse cuantas veces se desee, pues no es destruida por el
proceso de lectura.

Escritura. La escritura permite almacenar informacion dentro de la memoria. Los datos


que se van a almacenar ocuparan algunas celdas de la memoria que previamente contenan
otros valores, por lo tanto el proceso de escritura siempre conlleva la desaparicion de los
datos que ocupaban el lugar donde se introducen los nuevos.

Direccionamiento. Proceso de seleccion de la informacion dentro de una memoria a partir


de la posicion (direccion) de la misma.

Esta memoria es llamada hoy en da memoria interna y es la que contiene el programa


durante su ejecucion. En la actualidad se compone de circuitos integrados y por este motivo se
les llama memorias de silicio por ser este elemento la base de los dichos circuitos electronicos.
Ademas de la memoria interna existen dispositivos de memoria auxiliares como el disco duro y
los discos opticos (CD, DVD, etc.).

Caractersticas de las memorias

En la historia de las computadoras se han usado muchos dispositivos para almacenar informacion.
En la actualidad se usan circuitos integrados, discos magneticos y discos opticos. Cualquiera
que sea el soporte de la informacion la memoria queda definida por ciertas propiedades o carac-
tersticas como son:

Tiempo de acceso. Es el que transcurre entre el instante en que se ordena la lectura/escritura


de una informacion y el momento en que esta disponible para su procesamiento. Interesa
que sea lo mas bajo posible, no obstante este requerimiento entra en conflicto con el coste.

Capacidad. Es el numero de unidades de informacion que puede almacenar una memoria.


Como suelen ser numeros muy altos se usan multiplos como kilo y mega.

Modo de acceso. Hay varias formas en las que se puede accceder a la informacion, entre
las que destacan el acceso directo y el secuencial, que se definen a continuacion.

- Acceso directo. Para llegar a una determinada informacion no es preciso pasar por las
anteriores. Este modo es tambien llamado aleatorio. El tiempo invertido en el acceso
es independiente de donde se encuentre la informacion.
- Acceso secuencial. En este tipo de acceso, para llegar a un dato hay que dejar pasar
la informacion que le precede. Esto es lo que sucede, por ejemplo, cuando se usa una
cinta magnetica.
42 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Volatilidad. La informacion almacenada en una memoria es volatil si puede destruirse o


alterarse al cesar el suministro de energa al dispositivo que constituye la memoria. Esta
es la situacion normal en memorias de semiconductores, que necesitan suministro electrico
para conservar los datos. Los discos y cintas son por contra no volatiles.

Medidas de capacidad

Las memorias como se ve pueden ser de muchos tipos, la mas importante para nuestro estudio
de la computadora digital es la memoria principal. En los equipos actuales esta memoria esta
realizada mediante circuitos semiconductores que forman puertas logicas. De este modo surge la
celda que da cobijo a la unidad fundamental de informacion. Estos y otros conceptos se definen
a continuacion.

Bit. Se denomina bit a la unidad elemental de informacion binaria. El bit es la informacion


contenida en una celula de memoria, es decir, un cero o un uno. Cualquier informacion
binaria puede codificarse mediante una cadena de bits mas o menos larga.
Caracter. Las celulas de memoria se suelen agrupar formando registros. Una agrupacion
muy usada en los 70 y 80 es la formada por ocho celulas, denominada octeto. La
informacion constituida por ocho bits, y que se puede almacenar en un octeto se llama
caracter o, mas popularmente, byte.
Palabra. Los registros de una computadora estan formados por cierto numero de celdas, los
mas usuales son de 16, 32 y 64 unidades. La informacion almacenada en un registro se
denomina palabra, por tanto una palabra equivale a 16, 32 o 64 bits dependiendo de la
computadora.

Se ha de notar la diferencia entre unidades de informacion: bit, caracter y palabra, y el


soporte donde se guardan: unidad de memoria, octeto y registro, respectivamente.

Al tratar con memorias la unidad basica suele ser el caracter o byte. En terminos informaticos
kilo es un prefijo que equivale a 210 = 1024 unidades, pues es la potencia exacta de dos mas
proxima a mil. Del mismo modo, mega equivale a 220 = 1048576 unidades. En la tabla siguiente
se muestran algunos tamanos de memorias expresados de varios modos.

abreviatura cantidad bits caracteres


1 Kc kilocaracter 8 210 210
1 Mc megacaracter 8 220 220
1 Gc gigacaracter 8 230 230
1 Tc teracaracter 8 240 240

Clases de memoria

Aunque el esquema de la figura 4.1 no lo muestra, el hecho es que existen dentro de la compu-
tadora varias clases de memoria, atendiendo cada una a una mision particular. En esta seccion
se enumeran algunos de los tipos mas habituales de memoria.
c MRA & JAAR
2009 DISA. ESI. US. 43

Memoria principal. Es la que contiene el programa en el momento de la ejecucion del


mismo. Suele estar constituida por circuitos integrados, que es la forma de almacenamiento
mas rapida. En la mayora de los casos es de tipo volatil y de acceso directo. Esta memoria
suele ser expansible a voluntad del operario; para ello basta con anadir mas circuitos
integrados en el interior de la computadora.

Memoria auxiliar. La memoria auxiliar es un dispositivo externo1 que contiene infor-


macion. Entre otros pueden citarse el disco duro, el disco optico y los discos flexibles.
Son llamadas tambien memorias masivas. La velocidad de acceso suele ser menor que la
de la memoria principal, pero la capacidad de almacenamiento mayor. Al ser un periferico,
el trasvase de datos entre la memoria auxiliar requiere un adaptador que es la unidad de
entrada y salida (vease figura 4.1).

Otra clasificacion de las memorias atiende al tipo de operaciones que es posible realizar en
ellas.

Memorias de acceso aleatorio. Mas conocidas como RAM, Random Access Memory. Son
memorias de lectura y escritura, en las que se puede direccionar directamente cualquier
posicion de la misma, a diferencia de las de acceso secuencial. Estan realizadas a base
de circuitos integrados que necesitan alimentacion constante, por lo que son volatiles. La
memoria principal de la computadora es de este tipo.

Memoria solo para lectura. Llamadas ROM, del ingles Read Only Memory. Se trata de
memorias en las que la informacion se almacena de forma permanente, bien durante su
construccion o bien en una fase posterior. De estos dispositivos, una vez en uso, solo puede
leerse la informacion almacenada, pero no puede escribirse nueva informacion.
Las operaciones para el arranque de una computadora estan contenidas en este tipo de
memorias. Esto es as puesto que se deben preservar al apagar el equipo, por lo que no
pueden usarse memorias volatiles.

Memoria reprogramable solo para lectura. Este tipo de memoria es conocida por el
nombre de EPROM, que son las siglas de Erasable-Programable ROM. Se trata de una
memoria para lectura que puede ser borrada por completo y regrabada. El borrado se
realiza mediante tecnicas especiales (por ejemplo, exposicion a rayos ultra-violeta). Tras
el borrado se puede reprogramar la memoria para que contenga nueva informacion de forma
permanente (hasta un nuevo borrado). El borrado y reprogramacion implica desmontar el
circuito integrado del resto de la placa, por lo que no son frecuentes.

Estructura matricial

La memoria principal en los equipos actuales esta constituida por circuitos integrados en cuyo
interior residen las celulas basicas de almacenamiento, organizadas en registros como ya se ha
dicho. Una forma de representar esto es usando una disposicion rectangular a base de filas y
columnas, como se muestra en la figura 4.4. Cada fila es un registro de n celdas, siendo n el
ancho del registro llamado tambien longitud de la palabra. El numero de filas N suele ser muy
alto como puede suponerse sabiendo la capacidad normal de las memorias actuales que es de
1
Necesita conexion especial para unirse al resto de modulos.
44 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

hilos de lectura y escritura


clula de
memoria

hilos de
registro seleccin

Figura 4.4: Estructura matricial de la memoria.

varios megacaracteres. Cada registro puede ser seleccionado mediante un hilo 2 . Para acceder
a los bits individuales que forman la palabra contenida en el registro se tienen n hilos llamados
de lectura/escritura (abreviadamente l/e).

La lectura se realiza transmitiendo por los hilos de l/e la informacion de cada celda del
registro seleccionado. La escritura realiza el proceso inverso, destruyendo la informacion que
resida previamente en el registro seleccionado.

Cada registro de la memoria tiene asignado un numero llamado direccion. Es habitual


conceder al registro superior el numero 0 y al inferior en numero N 1, siendo N el numero
total de registros. Para acceder a la informacion de la memoria es preciso conocer la direccion
en la que se encuentra. Conocida dicha direccion se puede seleccionar el registro en cuestion y
proceder posteriormente a la lectura o escritura.

Por tanto, la seleccion de la informacion es un paso previo a la lectura o escritura y se hace


actuando sobre el hilo que correspondiente a la direccion dada. Esto lo realiza el decodificador
de direcciones. La direccion que se proporciona al decodificador es el numero de la palabra
dentro de la memoria, pero codificado en binario. Si la memoria tiene N = 2 m palabras es
necesario darle al decodificador un numero en binario entre 0 y 2m 1. Para expresar este valor
hacen falta precisamente m dgitos binarios; es decir, la direccion es un numero binario de m
bits. Para proporcionar al decodificador la direccion se usa un registro llamado de seleccion de
direccion que puede verse en la la figura 4.5 junto con el decodificador de direcciones.

De la figura 4.5 queda claro que la memoria contiene n 2m celdas por lo que su capacidad
es n 2m bits o bien n 2m /8 caracteres.

La unidad de memoria central

A modo de resumen, y para hacerse una idea de como se enlazan los elementos vistos hasta
ahora relativos a las memorias, se analizara la memoria central de una computadora. Esta esta
formada por una matriz celular de elementos de memoria, un decodificador de direcciones y una
2
Termino heredado de los das en que las memorias eran de nucleos de ferrita ensartados en los nodos de una
red de hilos conductores.
c MRA & JAAR
2009 DISA. ESI. US. 45

0
1

de direcciones
decodificador
m
m N=2

N-1

Figura 4.5: Diagrama de la memoria organizada matricialmente incluyendo el registro de se-


leccion de direcciones y el decodificador.

pequena unidad de control que coordina las operaciones necesarias para leer o escribir; todo ello
dentro de un circuito integrado. Los bloques funcionales se pueden ver en la figura 4.6, y se
describen a continuacion.

S. Es el registro selector de direcciones de memoria. Almacena m bits que representan (en


binario, por supuesto) la direccion del registro a seleccionar.
LECM, ESCM. Son dos senales de control mediante las cuales la UC ordena escribir o leer.
T. Es un registro tampon o de almacenamiento temporal que realiza la funcion de antesala
de la memoria. Durante una lectura recibe una copia de los n bits contenidos en la posicion
seleccionada. Durante la escritura contiene la informacion que se va a escribir.

LECM
S
Decodificador

m ESCM

direcciones

n
datos T

Figura 4.6: Diagrama de bloques de la memoria central mostrando los registros y senales de
gobierno.

Para realizar una operacion de lectura o escritura con la estructura anteriormente descrita,
es necesario seguir un procedimiento que se detalla a continuacion.

Lectura. El objetivo final es obtener una copia del contenido de una direccion particular de
la memoria. Los pasos a seguir son:
Seleccionar la direccion que contiene la informacion a recuperar; para ello se ha de
introducir dicha direccion en el registro S.
46 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Dar la orden de lectura activando LECM; es decir, dando el valor logico 1 a LECM.
Con esto se consigue que la palabra seleccionada transfiera una copia de sus bits al
registro T.
Tomar el contenido del registro T, el cual contiene una copia de la palabra buscada.
Escritura. La escritura consiste en introducir una informacion dada en una posicion de
memoria concreta conocida. Los pasos a seguir son:
Selecionar la direccion que contiene la informacion a recuperar; para ello se ha de
introducir dicha direccion en el registro S.
Copiar en T la informacion que se quiere escribir en la memoria. Para ello se usan
los hilos de bit que conectan cada palabra de la memoria con el registro T.
Activar la senal de escritura haciendo ESCM=1.

4.3 La unidad aritmetico-logica

Utilizando circuitos electronicos es posible combinar el contenido de dos registros de memoria


de forma que se obtenga un tercer registro que guarde alguna relacion con los primeros. Por
ejemplo de forma que el registro resultado sea la suma de los registros iniciales.

La figura 4.7 ilustra esta idea. Puede verse que el registro 1 contiene los bits 010010 que
puede interpretarse como el numero binario 010010 |2) que en decimal es 010010 |2) = 18 |10) .
Similarmente, el registro 2 contiene los bits 000011 que puede interpretarse como el numero
binario 000011 |2) que en decimal es 000011 |2) = 3 |10) . Es facil comprobar que el circuito
sumador debe combinar la informacion de ambos registros de tal modo que el registro resultado
contenga 010101 que es la representacion binaria de la cantidad 18 + 3 = 21.

Registro resultado

010101

Sumador

010010 000011
Registro 1 Registro 2

Figura 4.7: Circuito sumador.

Existen circuitos capaces de realizar operaciones aritmeticas como la suma, la resta, etc.
Tambien interesan operaciones llamadas logicas. Como ejemplo de operaciones logicas se puede
citar la comparacion de igualdad. Un circuito comparador produce el valor binario 1 si los dos
registros R1 y R2 son iguales y el valor 0 en caso contrario.

La construccion de la UAL se lleva a cabo hoy en da en una pastilla de silicio, agrupando


una serie de circuitos con puertas logicas. Estos circuitos son capaces de realizar tareas concretas
c MRA & JAAR
2009 DISA. ESI. US. 47

A
estado

SUMA
MULT Seales de
control.

primer operando segundo operando

Figura 4.8: Esquema de la Unidad Aritmetico Logica mostrando el acumulador y las senales de
gobierno. Las lneas que unen los registros consisten en realidad en uniones de n vas, siendo n
el numero de celdas de los registros.

como desplazamientos, sumas, comparaciones, etc. La unidad de control que tambien reside en
la pastilla puede seleccionar la operacion a efectuar gracias a las senales de control. La activacion
de alguna de estas senales provoca la puesta en marcha de la operacion correspondiente.

Los dos operandos provienen de la memoria. Para operar con ellos se saca una copia que se
guarda en registros especiales separados de la memoria central . Frecuentemente, en computa-
doras y calculadoras, el resultado de las operaciones se almacena en un registro A que recibe
el nombre de registro acumulador. Para reducir el tamano de la UAL, el acumulador es a
menudo tambien el soporte de uno de los operandos.

La UAL recibe ordenes de la unidad de control que especifican la operacion a realizar con
los datos del acumulador y del registro de operando. El resultado de las operaciones queda en
el acumulador a la espera de ser transferido cuando lo indique la unidad de control.

La figura 4.8 muestra un diagrama de la UAL en el que se detalla el acumulador. El bloque


con forma de v invertida contiene los circuitos que realizan las operaciones. Como se ha dicho,
el acumulador contiene el primer operando. El registro para el segundo operando no se ha
dibujado.

Para realizar una operacion con dos operandos, como por ejemplo la suma, se procede del
siguiente modo:

1. El primer operando se lleva a la entrada de la UAL

2. Se pasa el primer operando al acumulador mediante la senal de control CARGA

3. Se lleva el segundo operando a la entrada de la UAL

4. Se realiza la operacion activando la senal correspondiente en este caso SUMA

5. El resultado aparece en el acumulador desde donde puede llevarse a otros lugares de la


computadora
48 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

4.3.1 Circuitos operadores con puertas logicas

Se va a tratar ahora el problema de realizar operaciones aritmeticas con numeros usando circuitos
logicos. Los ejemplos que se van a explicar tienen como objetivo mostrar que es posible construir
una unidad de calculo basada en puertas logicas.

Semisumador

El semisumador permite realizar sumas aritmeticas entre bits. En cualquier sistema de nume-
racion, la suma mas sencilla es la de numeros de un solo dgito, por ejemplo 2 + 4. En el sistema
de numeracion en base dos los dgitos reciben el nombre de bits. El objetivo, por tanto, es sumar
dos numeros de un bit a y b, obteniendo ademas de la suma s el acarreo c. Observese que se
quiere obtener la suma aritmetica, no la suma logica, para aclarar esto ultimo considerese la
tabla de sumar en decimal y en binario.

decimal binario

+ 0 1 + 0 1
0 0 1 0 0 1
1 1 2 1 1 10

Como puede verse en la tabla anterior, la suma puede llegar a valer dos, que en binario es
10 |2 . En este caso son necesarios dos bits para almacenar el resultado. Para ello se utiliza el
acarreo, que es el valor del segundo bit por la derecha. El acarreo es igual a cero en todos casos
menos cuando se suma uno mas uno. La tabla de verdad se obtiene simplemente sumando:

a b c s
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

de donde se deduce que: c = a b y s = a b + a b = a b, donde el signo indica la operacion


XOR (presentada con anterioridad).

Sumador completo

Interesa disponer de un sumador que admita tres entradas: el sumando primero, a, el segundo,
b y el acarreo de la suma anterior c1 . La tabla de verdad es:
c MRA & JAAR
2009 DISA. ESI. US. 49

a b c1 c s
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

que conduce a la expresion para las salidas: s = a b c1 y c = c1 (a b) + a b. Para realizar


el circuito se puede hacer uso del bloque semisumador anteriormente visto y marcado como SS
en la figura 4.9.

a b c1
c1 a s s

a b SS (a b) c1
a a s b c

SS ab c
b b c

Figura 4.9: Circuito sumador de bits con acarreo.

Sumador en paralelo

El sumador paralelo esta formado por bloques SC (sumador completo) y SS (semi-sumador),


conectados como se muestra en la figura 4.10. Esta forma modular permite un facil diseno del
circuito y ayuda a la comprension de su funcionamiento. Observese que cada bloque obtiene la
suma y el acarreo para el bloque siguiente. Las flechas en el dibujo se han anadido para indicar
mejor cual es el flujo de la informacion. Los datos proceden de dos registros A y B, y el resultado
va a parar a un registro S. En el dibujo se ha representado un sumador para numeros de tres
bits. Es facil ver que para un numero de bits mayor basta con anadir mas bloques sumadores
SC.

Restador

Para realizar la operacion resta con circuitos digitales se suele recurrir a propiedades de la
aritmetica binaria. En efecto, no es difcil ver que una de estas propiedades es que restar dos
numeros en binario es equivalente a sumar al minuendo el complemento a dos del sustraendo.
Veamos un ejemplo considerese la operacion en decimal 7 5 = 2, usando registros de 4 bits.
Entonces se tiene que 7|10 = 0111|2 y el numero 5 en complemento a dos es C2 (5) = 1011. Si
ahora hacemos la suma
0111 + 1011
|{z} |{z} = 1 0010
|{z} ,
7 C2 (5) SVA(2)
50 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

a2 a1 a0 b2 b1 b0
A B

SC SC SS

S
s3 s2 s1 s0

Figura 4.10: Sumador en paralelo de numeros de tres bits.

donde en el resultado se obtiene un bit de acarreo que no se tiene en cuenta ya que el resultado
no puede ser mayor que el minuendo.

En el caso de que el minuendo sea menor que el sustraendo el procedimiento no se ve alterado.


En efecto restemos 5 7 = 2, usando registros de 4 bits. Ahora se tiene que 5| 10 = 0101|2 y
el numero 7 en complemento a dos es C2 (7) = 1001. Si ahora hacemos la suma

0101 |{z} = 1110


|{z} + 1001 |{z} 1010
|{z} ,
5 C2 (7) C2 (2) SVA(2)

donde como el resultado es negativo, se obtiene en complemento a dos. El resultado es el numero


al que corresponde dicho complemento a dos.

Multiplicador de numeros de dos bits

Un ejemplo mas complejo lo constituye el multiplicador de numeros de dos bits. Consiste en un


circuito que acepta como entrada los cuatro bits correspondientes a dos numeros A y B (vease
figura 4.11). La salida del circuito son los cuatro bits del numero resultante de multiplicar A y B
en forma aritmetica. Los bits de A se denotan como a0 y a1 , equivalentemente los bits de B son
b0 y b1 . Si llamamos a la multiplicacion M = AB los bits m0 , m1 , m2 y m3 son los valores que
debe proporcionar el circuito. A modo de ejemplo supongase que A = 2 y B = 3, que expresado
en binario queda A = 10 y B = 11, por lo que los valores que entran en el circuito son a 0 = 0,
a1 = 1 b0 = 1 y b1 = 1. El resultado correcto ha de ser M = 6, que en base dos es M = 0110.
Notese que los bits se han numerado de derecha a izquierda.

Procediendo de la misma forma para todas las combinaciones de posibles valores de A y B


se obtiene la tabla de verdad:
c MRA & JAAR
2009 DISA. ESI. US. 51

a1 a0

m3 m2 m1 m0

b1 b0

Figura 4.11: Circuito multiplicador de numeros de dos bits.

a1 a0 b1 b0 m3 m2 m1 m0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 1
0 1 1 0 0 0 1 0
0 1 1 1 0 0 1 1
1 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0
1 0 1 0 0 1 0 0
1 0 1 1 0 1 1 0
1 1 0 0 0 0 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 1 1 0
1 1 1 1 1 0 0 1

La funcion booleana para cada bit de salida se indica a continuacion. Puede comprobarse
que el resultado proporcionado es correcto realizando a mano cada una de las 16 multiplicaciones
y las conversiones a base dos.

m0 = abcd + abcd + abcd + abcd


m1 = abcd + abcd + abcd + abcd + abcd
m2 = abcd + abcd + abcd
m3 = abcd

Division

La division es la mas complicada de entre las operaciones. Se puede disenar un circuito es-
pecfico para esta tarea, pero resulta mas sencillo utilizar circuitos que realizan sumas, restas,
52 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

desplazamientos, etc. En efecto, la division en binario puede describirse mediante operaciones


aritmeticas que involucran la suma, la comparacion y el desplazamiento. Por tanto, pueden
usarse estos bloques ya descritos para obtener un circuito divisor. En muchas computadoras
la division se lleva a cabo ejecutando un programa en la UCP o en una UCP auxiliar llamada
coprocesador.

Operaciones con datos de punto flotante

Como se recordara, los numeros fraccionarios se representan en formato de punto flotante, como:
M 2E . Para realizar operaciones con numeros flotantes basta con usar los circuitos ya vistos
actuando independientemente sobre la mantisa y el exponente de acuerdo con ciertas reglas. En
notacion de mantisa y exponente las operaciones entre dos numeros A = a 2 p y B = b 2q se
realizan de la siguiente forma:

Producto. Basta con multiplicar las mantisas, sumar los exponentes y realizar ajuste
fraccionario del resultado: a 2p b 2q = ab 2p+q .

Division. Se dividen las mantisas, se restan los exponentes y se ajusta el resultado:


a 2p /(b 2q ) = (a/b) 2pq .

Suma y resta. Ambos numeros deben tener el mismo exponente, para ello se toma el mayor
de los dos (normalizacion): a 2p + b 2q = c 2q + b 2q = (c + b) 2q .

4.4 La unidad de entrada y salida

Para poder ser de alguna utilidad, la computadora ha de interaccionar con el exterior. La


recogida de datos y la evacuacion de resultados se llevan a cabo mediante dispositivos variados
como son el teclado y la pantalla y que reciben el nombre de perifericos.

El reto que plantea la comunicacion de la computadora con el exterior a traves de dispositivos


diferentes reside fundamentalmente en la distinta velocidad de transmision de estos. En efecto,
considerese un teclado; la informacion que proviene del mismo no suele superar los 20 caracteres
por segundo, es decir hay 0.05 segundos de espera entre caracter y caracter. Durante estos 0.05
segundos la computadora puede realizar miles de operaciones. Sin embargo otros dispositivos
admiten una velocidad mayor, como por ejemplo los discos y las impresoras. La computadora
ha de adecuar sus operaciones al ritmo de transmision de datos.

Tpicamente, los perifericos se conectan a la computadora mediante circuitos que realizan las
adaptaciones necesarias (niveles de tension, formato de la informacion, etc.). Esta es la situacion
mostrada en la figura 4.12. En el desarrollo del captulo se van a describir brevemente algunos
perifericos, para pasar posteriormente al problema de la comunicacion entre estos y la UCP.
c MRA & JAAR
2009 DISA. ESI. US. 53

UCP RAM ROM

Adaptador Adaptador Adaptador Adaptador


Teclado unidad de disco vdeo paralelo

Teclado Disco Monitor Impresora

Figura 4.12: Perifericos conectados a los enlaces de la computadora.

4.4.1 Perifericos

Como se ha dicho, los perifericos son dispositivos que permiten el trasvase de informacion desde
el exterior a la computadora o al contrario. Los mas comunes son descritos a continuacion:

Teclado Permite tanto introducir texto, numeros y proporcionar senales para los programas. Se
compone de pulsadores electromecanicos que mandan un codigo identificador a un espacio
de almacenamiento temporal que la computadora lee y vaca periodicamente. Las teclas
que incluye son:

Letras, numeros y signos de puntuacion. Esta parte del teclado se asemeja al de una
maquina de escribir convencional.
Tecla INTRO. Tiene dos funciones: en primer lugar permite pasar a la siguiente lnea
en la escritura. Ademas, en programas de uso interactivo sirve para dar entrada a la
informacion tecleada anteriormente de forma que pueda ser procesada. Por ejemplo,
despues de introducir una orden hay que pulsar esta tecla, para que la computadora
ejecute la orden. En algunos teclados aparece el smbolo | , o la palabra RETURN o
ENTER.
Teclas de funcion, Numeradas desde la F1 a la F12 sirven para realizar ordenes dentro
de ciertos programas. No tienen un significado definido, sino que cada programa les
asigna una funcion, lo cual permite ahorrar tiempo de escritura. Por ejemplo, en
algunos editores la tecla F2 sirve para guardar una copia del texto actual en el disco.
Teclado numerico. Ademas de los numeros, los teclados modernos, suelen traer un
teclado numerico compuesto por los numeros, el punto decimal y otras, en la parte
derecha del teclado. De esta forma se agiliza la escritura de grandes cantidades de
datos.
Teclas de bloqueo de mayusculas, bloqueo de teclado numerico, etc.
Otras teclas especiales, como flechas, boton de parada, etc.
Teclas que alteran la funcion de otras teclas.
Tecla MAY3 . Pulsada simultaneamente con otra produce la escritura de la letra
en mayusculas o del signo superior de los dos que aparecen encima en la tecla.
3
En algunos teclados aparece como Shift, en otros como una flecha vertical .
54 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Su funcion normal es en todo igual a las mayusculas de una maquina de escribir.


Aplicada a las teclas de funcion permite activar funciones distintas.
En general cuando se ha de pulsar una tecla conjuntamente con otra se indica me-
diante el signo +. Por ejemplo, para indicar que se han de pulsar simultaneamente
la tecla MAY y la tecla de funcion F2 se usa: MAY+F2.
Tecla ALT. Al igual que la tecla de mayusculas permite cambiar la funcion de
las teclas de funcion. Ademas sirve para generar los smbolos de la tabla ASCII
manteniendo la tecla pulsada mientras se introduce el codigo correspondiente
en decimal. En muchas aplicaciones esta tecla tiene significado especial. Por
ejemplo, en los entornos de ventana, sirve para activar funciones dentro de un
menu tecleando ALT+inicial opcion del menu.
Tecla ALT GR. Permite obtener los signos |, [, ], } y { , u otros dependiendo del
sistema.
Tecla CONTROL. Pulsada conjuntamente con algunas letras produce caracteres
de control. Es decir, caracteres ASCII no visibles que tienen funciones de control,
como CONTROL+G, que produce el caracter ASCII numero 7 que provoca un
zumbido en el altavoz del terminal. Otros caracteres utiles son CONTROL+C
y CONTROL+Z para terminar la ejecucion de programas. Usada en conjuncion
con las teclas de funcion permite activar otras funciones distintas dentro de pro-
gramas.
Una combinacion de teclas especialmente util en sistemas PC es CONTROL+ALT+SUPR
que causa un reinicio del sistema.
Los teclados tienen una velocidad de transmision baja (10 o 15 caracteres por segundo).
Si se teclea a una velocidad superior el espacio de almacenamiento temporal se llena y la
computadora emite un sonido de advertencia.
Raton Es un dispositivo que sirve para posicionar un puntero grafico sobre la pantalla, de
forma rapida. Este puntero permite realizar acciones pulsando los botones del raton. Los
entornos de ventana hacen un uso exhaustivo del raton. Existen diversos tipos, de bola,
optico, por presion.
Monitor de visualizacion Es el lugar donde usualmente la computadora enva la salida de
los programas. Sola ser del tipo TRC (tubo de rayos catodicos), de color o monocromo.
Hoy en da se imponen las pantallas planas formadas por matrices de transistores.
Para poder usar el monitor, la computadora ha de incorporar un circuito especial llamado
tarjeta de vdeo. La imagen que se presenta en pantalla esta contenida en la memoria de
vdeo. Un circuito especial de la tarjeta se encarga del refresco de la imagen en el tubo,
consistente en redibujar la imagen un cierto numero de veces por segundo de acuerdo con
el contenido de la memoria. La UCP se limita a colocar en la memoria de vdeo la imagen
y el circuito de refresco la manda a la pantalla.
La cantidad de memoria de vdeo disponible limita las posibilidades graficas. As, una
tarjeta con poca memoria compone las imagenes mediante puntos gruesos y con pocos co-
lores, como se muestra en la figura 4.13 a la izquierda. Al aumentar la memoria disponible
es posible disminuir el tamano del punto y aumentar la cantidad de colores que pueden
presentarse a un mismo tiempo. De este modo las imagenes resultan mejor definidas como
en la figura 4.13 a la derecha. La capacidad de la tarjeta de vdeo se indica por los puntos
horizontales y verticales y la cantidad de colores disponibles.
Impresora Es un dispositivo que permite reproducir en papel los dibujos o textos realizados
en una computadora. Hay muchos tipos distintos, dependiendo de la tecnica usada para
c MRA & JAAR
2009 DISA. ESI. US. 55

Figura 4.13: Imagenes proporcionadas por dos tarjetas de vdeo distintas. A la izquierda una
imagen de 201 129 puntos; a la derecha una imagen de 402 258 puntos, ambas en blanco y
negro.

impregnar el papel. Las mas usadas actualmente son las impresoras de chorro de tinta y
las laser.
La tinta en una impresora de chorro o inyeccion es lanzada gota a gota sobre el papel
formando los caracteres o dibujos. Un mecanismo especial va soltando la tinta (o tintas
de diversos colores). Las gotas son dirigidas mediante campos electricos para que lleguen
al lugar indicado sobre el papel.
La impresora laser permite copiar paginas enteras de una vez. Se basan en un tambor
cargado electrostaticamente, que al ser expuesto a un rayo laser se descarga en algunas
zonas. La tinta en polvo impregna luego esas zonas del tambor. Al pasar cerca del papel
cargado opuestamente al tambor la tinta se adhiere al papel. Finalmente se aplica calor
para que la tinta en polvo funda sobre el papel. Debido a que el laser es muy fino, la
calidad de impresion es muy alta.
No hay ningun codigo normalizado para la comunicacion ente impresoras y computadoras.
Sin embargo, normalmente no hay que preocuparse por estos detalles pues los programas
(o sistemas de explotacion) permiten seleccionar el tipo de impresora a usar mediante
menus, por lo que todo lo que uno debe saber es la marca y modelo de la impresora que
tiene conectada. Entre los muchos lenguajes se pueden destacar los siguentes: PCL 1 a
PCL 5 de Hewlett-Packard y PostScript o lenguaje de descripcion de paginas a base de
instrucciones producido por Adobe Systems Inc,
Las impresoras pueden conectarse a la computadora usando diversos adaptadores de entrada-
salida entre los que destacan: Centronics, RS232, SCSI y las conexiones de red como
Ethernet u otras.

Digitalizador de imagenes Se usan para obtener una version digital de imagenes sobre el
papel. Para ello la imagen es descompuesta en una matriz de puntos de color y posterior-
mente almacenada como un archivo en un formato grafico, como los conocidos GIF y
TIFF.
En ocasiones la digitalizacion de imagenes tiene por objeto conseguir un archivo conte-
niendo el texto impreso en la imagen. Es decir, la imagen puede ser una pagina de un
periodico y lo que se desea es el texto contenido en dicha pagina. A partir de la imagen
se pueden usar programas de reconocimiento de caracteres (conocidos como OCR) para
obtener el texto en un archivo. Los programas de reconocimiento de caracteres suelen
funcionar solo con letra de imprenta.

Discos magneticos Los dispositivos de almacenamiento masivo permiten guardar grandes can-
56 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Pista Cabezas

Figura 4.14: Discos magneticos para almacenamiento de datos.

bits modulados

etiqueta 00100010000100000100
objetivo

detector datos
plstico
(a) (b)

Figura 4.15: (a) Esquema del disco optico. (b) Representacion de la informacion en el mismo.

tidades de datos de forma no volatil. Los dispositivos mas usados han sido de soporte
magnetico como el disco duro, las cintas magneticas y los discos flexibles hoy ya casi
desaparecidos.
Los discos duros estan fijos en el interior de la computadora. Su construccion les confiere
mayor rapidez y capacidad. Actualmente los discos duros pueden tener capacidades de
miles de Megacaracteres. En la parte derecha de la figura 4.14 se muestra un diagrama
simplificado de un disco duro, mostrando las cabezas que permiten la lectura y escritura.

Disco optico Los discos con soporte optico como los populares CD-ROM, CDR, DVD-ROM
y DVD-RAM permiten guardar gran cantidad de datos (de 700 Mc a varios Gc). La
informacion se guarda en binario en forma de agujeros o huecos microscopicos en el metal
interior del disco. Mediante un rayo laser se puede obtener una senal electrica con un
voltaje alto o bajo dependiendo del paso de depresiones bajo el laser a medida que el disco
gira.
El CD-ROM es casi identico a los discos compactos para audio que existan previamente.
De hecho, ambos discos son compatibles. Los reproductores de discos para audio incorpo-
ran una etapa de conversion de digital a analogico para producir el sonido, la cual no es
necesaria en el caso de reproductores para uso de la computadora.
Puesto que el metal que contiene los datos esta protegido por una capa de plastico se
consigue un medio menos sensible que los discos flexibles. El disco tiene los datos grabados
en una unica pista espiral. La lectura sobre la pista es a velocidad constante, por lo que
el disco gira a distintas velocidades segun el tramo leido. Ver figura 4.15 (a). Los datos
se modulan siguiendo la regla 8 en 14, que usa 14 bits para codificar cada caracter. Se
incluye un codigo de deteccion de errores de tipo CRC. La figura 4.15 (b) muestra la forma
en que los bits quedan grabados en el disco.
Dentro de los discos opticos hay varias clases: hay discos que solo admiten lectura, discos
que se pueden grabar una sola vez desde el equipo personal y discos que admiten ser
regrabados varias veces.
c MRA & JAAR
2009 DISA. ESI. US. 57

A B A B

C D C D

Figura 4.16: Conexion de cuatro modulos punto a punto (izquierda) y mediante una lnea
(derecha).

4.5 La unidad de control

Esta seccion tiene por objeto mostrar como se unen los modulos que componen una computa-
dora digital mediante enlaces. De este modo estaremos en disposicion de presentar un modelo
simplificado de computadora capaz de ejemplificar las funciones basicas de las computadoras
reales. Este modelo servira, entre otras cosas, para describir en detalle la unidad de control,
que es el elemento encargado de armonizar las operaciones de cada uno de los modulos de la
computadora.

4.5.1 Enlaces

Los enlaces tienen como mision conectar los distintos modulos para poder transferir informacion
entre ellos. Por ejemplo, las instrucciones que componen el programa han de ser ledas de la
memoria, de donde pasan a la unidad de control, donde son interpretadas. Los resultados de las
operaciones en la UAL son frecuentemente almacenados en memoria, por lo que estos modulos
han de estar conectados tambien.

La conexion de los distintos elementos de la computadora podra realizarse de muchas formas.


Supongase, a modo de ejemplo, que se han de conectar entre s cuatro dispositivos digitales con
el fin de efectuar entre ellos transferencias de informacion (ver figura 4.16). Si se enlazan todos
con todos, son necesarios 6 enlaces. Esto implica que hay 6 lneas de conexion bidireccionales
que hay que cablear, soldar, comprobar, etc. En general para conectar n dispositivos con lneas
bidireccionales son necesarios n(n1)
2 conexiones; lo cual tiende a un numero prohibitivo a medida
que n aumenta. Por otro lado, si se restringe en cada momento la comunicacion a un dispositivo
que emite, constituyendo la fuente de informacion, podran conectarse todos a una sola lnea,
de forma que mientras la fuente de informacion habla, los demas permanecen a la escucha,
recogiendo la informacion transmitida. Esta lnea de transmision es a menudo llamada bus. En
la parte derecha de la figura 4.16 se ha representado esta forma de conexion. La comunicacion
mediante una lnea presenta ciertas ventajas que se enumeran a continuacion.

Reduccion del numero de conexiones a realizar.

Simplificacion de los sistemas (cada uno solo tiene una entrada y una salida).

Expansibilidad, puesto que pueden anadirse nuevos dispositivos.

Facilidad de ejecucion en circuitos impresos, con el consiguiente ahorro de precio.


58 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

enlace
enlace

gobierno
gobierno

informacin
informacin

Figura 4.17: Control de la entrada de datos al enlace mediante puertas triestado.

Los modulos pueden estar a considerable distancia unos de otros.

Pero no todo son ventajas, la sencillez se paga con algunos inconvenientes:

Al estar restringido el numero de dispositivos que transmiten informacion a uno en cada


momento, el tiempo necesario para transmitir un volumen de informacion dado es mayor
que con conexiones directas.
Las comunicaciones se han de organizar de acuerdo a ciertas reglas, para evitar que mas
de un modulo hable a la vez.

Aunque el enlace se represente en los diagramas con un solo trazo, suelen haber varias pistas
en paralelo, con lo que la transmision es mas rapida. El ancho del enlace es el numero de bits
que se transmiten en paralelo, que puede ser menor, mayor o igual a la longitud de la palabra
de la memoria.

Por otro lado, el paso de informacion desde los modulos hacia el enlace se ha de controlar
pues no puede producirse en cualquier momento, de otro modo podran aparecer colisiones de
mensajes si dos modulos transmiten al mismo tiempo. Una posible solucion para controlar el
acceso a la lnea por parte de un dispositivo es el uso de una puerta AND triestado por cada
hilo que parte del dispositivo hacia el camino. La puerta triestado permite quedar a la escucha
y tambien permite mandar al enlace la informacion que la atraviesa.

El esquema se aprecia en la figura 4.17 a la izquierda. La senal que niega o permite el acceso
al enlace se llama de gobierno. La puerta triestado permite que la salida fluctue libremente
cuando la senal de gobierno vale cero. De este modo, el enlace transporta el valor indicado
por algun otro elemento. Por contra, cuando la senal de gobierno toma el valor uno la puerta
triestado permite el paso de informacion a traves suyo.

En la citada figura 4.17 se muestra a la derecha la forma habitual de representar el acceso


al enlace a traves de la puerta triestado. El enlace se simplifica en el dibujo como si fuese una
lnea unica.

4.5.2 Modelo simple de una computadora digital

La unidad de control es el elemento que ordena a todos los demas. La tarea que tiene enco-
mendada consiste en enviar las senales de control que provocan operaciones de los modulos y
c MRA & JAAR
2009 DISA. ESI. US. 59

INCP
A P S LECM
EA EP SP ES ESCM
S
SUMA MEM
MULT SD
CO MD D
I ESCP LEET

SA EO EI T E
M ET ST EE SE M

Figura 4.18: Esquema de una computadora digital mostrando los enlaces y las senales de go-
bierno.

tambien transferencias de informacion entre los mismos.

En el esquema de la figura 4.18 se muestran los modulos ya conocidos interconectados por


enlaces. Podemos imaginar que los enlaces son autopistas de varios carriles por las cuales pueden
moverse los bits de forma que pasen de unos registros a otros.

Los elementos con que se va a trabajar y que aparecen en dicha figura son:

1. Un enlace M que une la memoria, la unidad de control y la UAL. La informacion que se


transmite puede ser de diversas clases: datos y resultados de operaciones, instrucciones
del programa y direcciones de memoria.

2. Otro enlace S que une la unidad de control y el selector de posiciones de memoria. Por el
se transmiten direcciones de memoria.

3. La memoria principal, con organizacion matricial.

4. La UAL con registro acumulador que almacena uno de los operandos y el resultado de las
operaciones.

5. Los siguientes registros:

A. Registro acumulador de la UAL.


S. Registro de seleccion de memoria.
T. Registro tampon de comunicacion entre la memoria y la lnea M.
P. Contador de pasos de programa. Indica la posicion dentro de la memoria de la
instruccion a ejecutar.
I. Registro de instruccion. Guarda en cada momento la instruccion que se ejecuta en
ese paso.
E. Registro de comunicacion con el exterior. Permite tomar datos del teclado o llevarlos
a la pantalla. Es una forma simple e idealizada de la unidad de control que se ha
descrito anteriormente.
60 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

4.5.3 Funcionamiento de la computadora digital

El esquema presentado corresponde a una maquina de programa almacenado, por lo que en la


memoria se almacenan tanto datos y resultados como el programa a ejecutar. El funcionamiento
del mismo se describe a continuacion.

Para comenzar la explicacion se parte de una situacion en la que el programa ha sido alma-
cenado previamente en la memoria. El programa se va a ejecutar paso a paso bajo la direccion
de la unidad de control. Esta debe obtener de la memoria la instruccion a ejecutar, por lo que
necesita disponer de algun medio que le permita conocer en que posicion de memoria se encuen-
tra localizada la misma. El problema se resuelve colocando las instrucciones secuencialmente
en la memoria y dotando a la unidad de control de un registro de direccion de la instruccion
(registro P en la figura anterior). Este registro es un contador que se incrementa en una unidad
cada vez que se realiza una instruccion, pasando as a apuntar a la siguiente.

Una vez localizada la instruccion se extrae de la memoria llevandola al registro I, donde


se ejecuta activando las senales de gobierno necesarias. Esta tarea la realiza un modulo de la
unidad de control que aun no se ha mostrado. Finalmente se incrementa P para poder ejecutar
la siguiente instruccion.

Cada instruccion requiere tres componentes para quedar totalmente definida: la operacion,
la forma de direccionamiento y una direccion con la que operar. Estos elementos se codifican en
binario y se guardan en el registro I, que consta de las tres partes que se describen a continuacion.

1. Codigo de operacion (CO), es un conjunto de ceros y unos que identifica la operacion que
debe realizarse. Las instrucciones como la suma, la resta, etc. tienen cada una un codigo
distinto.
2. El modo de direccionamiento (MD), que indica la forma en que se ha de interpretar la
direccion que esta incluida en la instruccion. En el caso mas sencillo (llamado direcciona-
miento directo) la direccion es la del dato o resultado de la operacion.
3. Direccion de memoria (D). Esta direccion puede interpretarse de formas distintas, segun
el modo de direccionamiento y la instruccion de que se trate. En un caso simple como la
suma directa, esta direccion es el lugar de la memoria donde reside el dato que se ha de
sumar.

Para aclarar las ideas, considerese la instruccion sumar al acumulador el contenido de la


posicion de memoria 8. Supongase que la codificacion de esta instruccion es:

CO MD D
0101 0 00000001000

Por lo que el registro I, en el momento de ejecutarse esta instruccion contiene el valor


0101000000001000. La primera parte (CO) identifica la operacion suma, la segunda parte (MD)
indica que se trata de direccionamiento directo, que sera explicado mas adelante. Por ultimo, la
direccion 00000001000 es el numero 8 codificado en binario, y se interpreta como el lugar donde
reside el numero que se ha de sumar al registro acumulador.
c MRA & JAAR
2009 DISA. ESI. US. 61

4 A 17 P S 4 A 17 P S
8 3 8 3

17 8

17 co | md | 8 17 co | md | 8
co | md | 8 I co | md | 8 I

A) B)

7 A 17 P S 7 A 18 P S
8 3 8 3

8 8

4 3 17 co | md | 8 17 co | md | 8
co | md | 8 I 3 co | md | 8 I

C) D)

Figura 4.19: Fases de la ejecucion de la instruccion suma.

4.5.4 Ejecucion de instrucciones

Para cualquier instruccion el proceso de ejecucion se divide en cuatro fases: busqueda de la


instruccion, busqueda del operando, ejecucion de la instruccion y preparacion de la instruccion
siguiente. Estas fases conllevan pasos distintos dependiendo de la instruccion de que se trate.
Los casos mas sencillos se plantean al considerar instrucciones aritmeticas, como la suma.

La figura 4.19 muestra de forma esquematica el desarrollo de las cuatro fases para una
instruccion como la suma directa. Como es sabido los registros contienen los numeros en binario,
sin embargo, para dar mayor claridad al dibujo se han indicado aqu en decimal. Las posiciones
de memoria tambien se han indicado con su direccion en decimal por identico motivo.

La parte A) de la figura representa la busqueda de la instruccion. Se ha supuesto que esta se


halla en memoria en la direccion 17 por lo que el contenido de P es precisamente 17. Se observa
tambien el direccionamiento de la memoria logrado con el registro S. Mediante una lectura se
pasa la instruccion al registro I.

La parte B) corresponde a la busqueda del operando; este es el valor contenido en la direccion


de memoria 8, que en este caso es el numero 3.

En la parte C) se realiza una nueva lectura de memoria que permite pasar el operando al
registro de operando de la UAL. Despues se efectua la suma del acumulador que contena el
numero 4 con el operando. El resultado (7 = 4 + 3) pasa al propio acumulador.

En la parte D) se prepara la instruccion siguiente. El registro P se incrementa en una unidad,


de este modo se consigue ejecutar la instruccion siguiente y as sucesivamente.

Observese que el desarrollo de la instruccion se logra simplemente por la transferencia de


informacion entre registros y mediante la transformacion de esta en la UAL. La tarea de la
unidad de control es precisamente coordinar tales transferencias.
62 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Transferencias entre registros

El funcionamiento de la computadora se puede describir mediante transferencias de informacion


entre registros. Para verificar esta afirmacion se va a explicar a continuacion de forma mas
detallada la ejecucion de la instruccion del ejemplo anterior, sumar al acumulador un dato
almacenado en una direccion de memoria dada.

1. Busqueda de la instruccion: consiste en extraer la instruccion que se va a ejecutar de


la memoria. El registro P contiene la direccion de la instruccion a ejecutar, por lo que
habra de leerse la direccion de memoria indicada por P. Esta fase tiene tres operaciones
elementales:

(a) Direccionamiento: transferir a S el contenido del registro P. Esto se simboliza me-


diante: (P) S. Notese que el contenido anterior del registro S se pierde al ser
sustituido por el contenido de P.
(b) Leer de memoria , obteniendose en T la informacion almacenada en la posicion defi-
nida por S, lo cual se puede expresar como: M(S) T
(c) Pasar la instruccion a I: (T) I, donde debe quedar para poder ser ejecutada.

2. Busqueda del operando: En CO se ha supuesto la existencia del codigo de operacion (que


identifica a la suma en este ejemplo). El modo de direccionamiento es directo, por lo tanto
la direccion que figura en D se interpreta como la del operando que hay que sumar al
acumulador. Los pasos son los siguientes:

(a) Buscar el operando a sumar. Para ello hay que permitir el paso de D al registro S:
(D) S. De este modo se direcciona dicho operando.
(b) Leer de memoria: M(S) T. El registro de la memoria que ha sido seleccionado es
copiado en T, con lo que se tiene el numero a sumar en T.

3. Ejecucion de la instruccion. En este caso, la suma al acumulador del contenido de T. Esto


puede escribirse como: (T)+(A) A, puesto que, como ya se ha dicho, el acumulador
guarda el primer operando y recibe ademas el resultado de las operaciones.

4. Preparacion de la siguiente instruccion. En este caso hay que sumar uno al contador de
pasos del programa: (P)+1 P.

La forma en que se han detallado los pasos a realizar para ejecutar la instruccion suma
consiste en dar las transferencias elementales entre registros. Del diagrama 4.18
resulta claro que para lograr estas transferencias es necesario activar las senales de entrada y
salida de los registros, tales como: SP, ES, etc. En la tabla 4.1 se muestra de nuevo la secuencia
de operaciones para el mismo ejemplo de la suma, pero incluyendo las senales de gobierno
necesarias.

La activacion de las senales de gobierno se realiza de forma automatica durante la ejecucion


del programa. Es una tarea que corre a cargo de la unidad de control. Para no enmaranar el
dibujo de la figura 4.18 no se muestra la forma en la que la UC activa dichas senales. Baste
decir que existe un modulo o bloque adicional que maneja todas las senales de control de forma
parecida a como el centro de control de trafico puede manejar los semaforos de una ciudad.
c MRA & JAAR
2009 DISA. ESI. US. 63

fase transferencias entre registros senales de gobierno


1a (P) S SP, ES
1b M(S) T LECM
1c (T) I ST, EI
2a (D) S SD, ES
2b M(S) T LECM
3 (A)+(T) A ST, EO, SU M A, EA
4 (P)+1 P IN CP

Tabla 4.1: Fases, transferencias entre registros y senales de gobierno correspondientes a la


instruccion suma.

La instruccion de salto

Se ha indicado que el contador de pasos de programa se incrementa en una unidad cada vez que
se ejecuta una instruccion, de forma que pase a senalar la direccion de la siguiente instruccion
en la memoria. Esta forma de proceder es adecuada para muchas situaciones, pero esta muy
falta de versatilidad. El llamado salto incondicional permite romper el orden de ejecucion de
las instrucciones, de forma que, tras la instruccion de salto situada en la direccion d, se pasa
a ejecutar otra, situada en una direccion distinta de d + 1. Para ello es necesario y suficiente
modificar el registro contador de pasos del programa P. Los pasos necesarios son:

1. Busqueda de la instruccion: Hay que extraer la instruccion que se va a ejecutar de la


memoria. Esta fase tiene tres operaciones elementales:

(a) Transferir a S el contenido del registro P. Esto se simboliza mediante: (P) S.


(b) Leer de memoria , obteniendose en T la informacion almacenada en la posicion defi-
nida por S: M(S) T
(c) Pasar la instruccion a I: (T) I. Donde sera interpretada.

2. Busqueda del operando: en la parte D del registro I debe figurar la direccion del salto, que
se debe introducir en P, por lo que no es necesario buscar en memoria.

3. Ejecucion de la instruccion. En este caso, pasar el contenido de D al registro contador de


pasos: (D) P.

4. Preparacion de la siguiente instruccion. En este caso no hay que hacer nada pues el
contador de pasos del programa contiene ya la direccion de la siguiente instruccion tras
del salto.

Saltos condicionales

La instruccion de salto condicional permite realizar el salto de una instruccion a otra dependiendo
de una condicion, por ejemplo si el acumulador es positivo. De este modo se puede obtener un
programa que a partir de un punto realiza unas instrucciones u otras dependiendo de que el
acumulador sea positivo o no. Esto es realmente importante (como se vera mas adelante) para
realizar las llamadas bifurcaciones.
64 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

LECM
seales de gobierno
...

EO
SP
reloj

CO MD I

Figura 4.20: Diagrama de bloques de la unidad de control.

4.5.5 Funcionamiento de la unidad de control

La funcion de la unidad de control es interpretar cada una de las instrucciones del programa a
ejecutar, enviando las senales de control correspondientes a la memoria, la UAL, etc. de manera
que dichas instrucciones se ejecuten.

Se ha visto en los ejemplos anteriores que las senales de control permiten realizar operaciones
y transferencias de informacion entre registros, las cuales, son la base del funcionamiento de la
computadora.

La figura 4.20 muestra un diagrama incluyendo la unidad de control como un bloque funcional
que genera las senales de gobierno a partir del codigo de operacion.

La ejecucion de una instruccion conlleva la activacion de ciertas senales de gobierno, que


reciben el nombre de microordenes. Las senales de gobierno evolucionan en el tiempo para
llevar a cabo las instrucciones del programa. Como ejemplo se puede recordar ahora el caso de
la instruccion suma. Las fases de la instruccion se muestran en la tabla 4.1.

El cronograma de operaciones correspondiente a la instruccion suma es una representacion


grafica de la evolucion temporal de las senales de gobierno. En la figura 4.21 se muestra el
cronograma correspondiente a la instruccion suma. El eje horizontal corresponde a la escala
de tiempos. Ademas, se ha superpuesto en la figura la senal de reloj, que consiste en pulsos
regularmente espaciados. El reloj es muy importante para el funcionamiento de la unidad de
control, puesto que se requiere que las microordenes se sucedan en secuencia y que exista una
sincronizacion entre acontecimientos como se puede ver en el cronograma.

Volviendo al cronograma hay que indicar el eje vertical indica el voltaje de la senal cuyo
nombre aparece a la derecha. El eje horizontal se ha dividido en cuatro partes llamadas fases
de reloj. Hay que hacer notar que las fases de reloj (1 , 2 , 3 y 4 ) no se corresponden con
las fases en las que se ha dividido la ejecucion de la instruccion. Las cuatro fases de reloj se
agrupan en dos ciclos:

Ciclo de instruccion. Comprende los periodos 1 y 2 , y representa la busqueda de la ins-


truccion en memoria y su almacenamiento en el registro I.

Ciclo de operando. Abarca 3 y 4 y representa la busqueda del operando y la realizacion


de la operacion, junto con la preparacion de la instruccion siguiente.
c MRA & JAAR
2009 DISA. ESI. US. 65

1 2 3 4

reloj
SP
ES
LECM
ST
EI
SD
EO
SUMA
EA
INCP

Figura 4.21: Cronograma de la instruccion suma.

Finalmente, es de resaltar que cada instruccion se realiza mediante transferencias entre re-
gistros, las cuales se llevan a cabo gracias a una secuencia concreta de microordenes; por lo
tanto, cada instruccion tiene un cronograma. El cronograma de cada instruccion es trazado por
el disenador de la computadora de acuerdo con las caractersticas del mismo, como son: numero
de registros de que se dispone, complejidad de la UAL, etc. Por lo tanto, cada equipo (cada
microprocesador) tiene sus cronogramas propios. El objetivo de la unidad de control va a ser va-
riar las senales de gobierno en los instantes adecuados de la forma marcada por los cronogramas
de las instrucciones.

La tarea que desarrolla la unidad de control consiste en abrir y cerrar oportunamente el


paso de senales por los enlaces. Mediante circuitos logicos y biestables es posible disenar una
maquina capaz de realizar la tarea en cuestion. A un dispositivo tal se le llama unidad de
control cableada. Debe quedar clara la idea de que cada instruccion necesita senales de
gobierno distintas, por lo que el circuito completo es bastante complicado. Mas aun, a medida
que aumenta el conjunto de instrucciones de la maquina, aumenta el numero de operaciones que
debe realizar, con lo que aumenta su complejidad dificultando el diseno.

Existe otro tipo de UC llamada microprogramada, ideada por Wilkes, en la cual las senales
de gobierno parten de una micro-memoria eliminando gran parte de los circuitos necesarios en
la UC cableada. Este esquema ofrece ciertas ventajas, pero que queda fuera del alcance de este
libro.

4.6 Ejercicios propuestos

Los siguientes ejercicios sirven para consolidar las ideas mas importantes de este tema.

1. Disene un circuito con puertas logicas que realize la funcion de un decodificador de direc-
ciones para seleccionar entre 8 registros de una memoria.

2. La UAL de una computadora utiliza registros de n = 16 celdas y complemento a dos


para representar los numeros enteros. Indique cual sera el contenido del acumulador tras
proporcionarle el operando 0000000000111001, activar la senal CARGA, proporcionar el
operando 1111111110110111 y activar la senal SUMA.
66 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

3. Dado el numero A|10 = a2 a1 a0 |2 , probar que A + C2 (A) = 0. Nota: a2 es el bit de signo.

4. Indique las senales de gobierno que se activan en la computadora elemental descrita en


este tema al ejecutarse la instruccion de resta al contenido del acumulador. Las senales de
gobierno han de escribirse en el orden cronologico correcto correspondiente cada una de
las fases de ejecucion de la instruccion.

5. Hacer las transferencias elementales entre registros de las instrucciones: almacenar,


escribir, saltar.

6. Hacer el cronograma de la instruccion leer.

Potrebbero piacerti anche