Estructura de la computadora digital

Anuncio
Tema 4
Estructura de la computadora digital
En este tema se va a profundizar en el estudio de las distintas partes funcionales de la computadora, comenzando por la memoria y terminando con la unidad de control. Posteriormente se
explicará en qué forma funciona el conjunto.
4.1
Esquema funcional
Como se avanzó en el tema 1, la computadora digital está 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 razón de esta diferencia es
resaltar, que la comunicación entre bloques es de dos tipos: información y señales de control. La
primera categorı́a, la información, abarca los datos, los resultados y otras informaciones como
direcciones de memoria, estados, etc. La segunda categorı́a, las señales de control son órdenes
que la UC manda a los distintos elementos para que se realicen las operaciones.
UAL
Memoria
principal
Unidad de control
unidad de entrada/salida
Se verá más adelante que la UC y la UAL forman la unidad central de proceso (UCP), que es
la responsable de la ejecución del programa. La memoria tiene un papel pasivo proporcionando
los datos e instrucciones cuando son solicitados por la UCP.
Periféfico 1
Periférico n
señales
de control
información
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 lógicas.
4.2
Almacenamiento de la información
Para el procesamiento de la información es indispensable algún soporte fı́sico que de un modo u
otro la contenga (almacenamiento). En el caso que nos ocupa de las computadoras digitales, la
unidad de información fundamental es el dı́gito binario (bit). Al soporte fı́sico que es capaz de
albergar un bit se le denomina celda o célula elemental. Es decir, una celda elemental es
un dispositivo capaz de almacenar un 0 o un 1. Uno de los dispositivos usados para la realización
de dichas celdas es el denominado biestable, cuyo funcionamiento se describe a continuación.
4.2.1
La celda elemental
El biestable es un dispositivo (electrónico) con dos posibles estados estables; es decir, estados
que en ausencia de excitación externa no cambian. Hay varias clases de biestables, pero todos
permiten almacenar una unidad de información (0 ó 1). Considerado como un sistema lógico,
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
lógicos 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 lógico 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 construcción 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 están 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
39
2009 DISA. ESI. US.
Es posible comprobar que estas reglas se cumplen para el circuito de la figura 4.2. También es
fácil demostrar que la salida no sólo depende del valor de las entradas, sino de la salida anterior
a la aplicación de tales entradas.
La tabla de transición del biestable proporciona la salida del mismo en el instante posterior y(t), conocida la salida en el instante actual y0 , y el valor actual de las entradas (RS):
RS →
y0 = 0
y0 = 1
00
0
1
01
1
1
10
0
0
11
X
X
En la columna correspondiente a R = 1, S = 1 no se ha consignado ningún valor puesto que
el biestable no se ha de usar conectando ambas entradas a uno. Se confirma que el biestable no
es un circuito lógico combinacional, puesto que la salida no sólo 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 ón.
y(t) →
y0 = 0
y0 = 1
0
-0
10
1
01
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 guión indica que la entrada correspondiente
puede tomar cualquier valor (0 ó 1), porque el resultado no se ve afectado.
4.2.2
El registro
Las celdas elementales sólo pueden representar los números cero o uno; para poder usar
números mayores estas celdas se agrupan. Un registro es un conjunto de celdas de memoria, cuyo contenido representa una información codificada en binario que es procesada como un
ente único. Fı́sicamente es una asociación 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 número de cifras aumenta el número de combinaciones posibles, por lo que se puede
representar una cantidad mayor de información. Por ejemplo, un registro de 7 células puede
almacenar 27 = 128 informaciones binarias distintas mientras que uno con 6 sólo 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 estén 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
señales R y S actúen hasta que se active la de sincronismo. La señal 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
RS
Q2
RS
Q1
RS
Q0
RS
sincronismo
Figura 4.3: Asociación de cuatro biestables con señal de sincronismo común.
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
sólo contiene información, además permite que ésta se mueva en su interior. Considérese 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 número 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 número 23 + 21 + 20 = 11. Se ha conseguido dividir el número 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 posición que queda vacı́a a la derecha se obtiene
1 0 1 1 0 0
que representa el número 25 + 23 + 22 = 44, que es el número original multiplicado por dos.
4.2.3
La unidad de memoria en la computadora
El tratamiento automático de la información requiere el almacenamiento masivo de la misma de
forma más o menos permanente. La memoria en una computadora es un dispositivo capaz de
almacenar información. Para servir a los propósitos del tratamiento automático de la información
la memoria ha de ser capaz de recuperar cualquier información, proporcionándola al exterior sólo
cuando sea solicitada. Para resolver este problema se han propuesto históricamente soluciones
diversas muy imaginativas como lı́neas de retraso, tubos de mercurio y núcleos 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 ó 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 (véase la figura 4.1) la memoria es el bloque que
almacena tanto los datos y resultados como las instrucciones. A petición de la unidad de control
la memoria es capaz de realizar 3 operaciones:
• Lectura. Consiste en extraer una copia de cierta información. En la mayorı́a de las computadoras tal información pueden leerse cuantas veces se desee, pues no es destruida por el
proceso de lectura.
• Escritura. La escritura permite almacenar información dentro de la memoria. Los datos
que se van a almacenar ocuparán algunas celdas de la memoria que previamente contenı́an
otros valores, por lo tanto el proceso de escritura siempre conlleva la desaparición de los
datos que ocupaban el lugar donde se introducen los nuevos.
• Direccionamiento. Proceso de selección de la información dentro de una memoria a partir
de la posición (dirección) de la misma.
Esta memoria es llamada hoy en dı́a memoria interna y es la que contiene el programa
durante su ejecución. 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 electrónicos.
Además de la memoria interna existen dispositivos de memoria auxiliares como el disco duro y
los discos ópticos (CD, DVD, etc.).
Caracterı́sticas de las memorias
En la historia de las computadoras se han usado muchos dispositivos para almacenar información.
En la actualidad se usan circuitos integrados, discos magnéticos y discos ópticos. Cualquiera
que sea el soporte de la información la memoria queda definida por ciertas propiedades o caracterı́sticas como son:
• Tiempo de acceso. Es el que transcurre entre el instante en que se ordena la lectura/escritura
de una información y el momento en que está disponible para su procesamiento. Interesa
que sea lo más bajo posible, no obstante este requerimiento entra en conflicto con el coste.
• Capacidad. Es el número de unidades de información que puede almacenar una memoria.
Como suelen ser números muy altos se usan múltiplos como kilo y mega.
• Modo de acceso. Hay varias formas en las que se puede accceder a la información, entre
las que destacan el acceso directo y el secuencial, que se definen a continuación.
- Acceso directo. Para llegar a una determinada información no es preciso pasar por las
anteriores. Este modo es también llamado aleatorio. El tiempo invertido en el acceso
es independiente de donde se encuentre la información.
- Acceso secuencial. En este tipo de acceso, para llegar a un dato hay que dejar pasar
la información que le precede. Esto es lo que sucede, por ejemplo, cuando se usa una
cinta magnética.
42
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
• Volatilidad. La información almacenada en una memoria es volátil si puede destruirse o
alterarse al cesar el suministro de energı́a al dispositivo que constituye la memoria. Esta
es la situación normal en memorias de semiconductores, que necesitan suministro eléctrico
para conservar los datos. Los discos y cintas son por contra no volátiles.
Medidas de capacidad
Las memorias como se ve pueden ser de muchos tipos, la más importante para nuestro estudio
de la computadora digital es la memoria principal. En los equipos actuales esta memoria está
realizada mediante circuitos semiconductores que forman puertas lógicas. De este modo surge la
celda que da cobijo a la unidad fundamental de información. Éstos y otros conceptos se definen
a continuación.
• Bit. Se denomina bit a la unidad elemental de información binaria. El bit es la información
contenida en una célula de memoria, es decir, un cero o un uno. Cualquier información
binaria puede codificarse mediante una cadena de bits más o menos larga.
• Carácter. Las células de memoria se suelen agrupar formando registros. Una agrupación
muy usada en los 70 y 80 es la formada por ocho células, denominada octeto. La
información constituida por ocho bits, y que se puede almacenar en un octeto se llama
carácter o, más popularmente, byte.
• Palabra. Los registros de una computadora están formados por cierto número de celdas, los
más usuales son de 16, 32 y 64 unidades. La información almacenada en un registro se
denomina palabra, por tanto una palabra equivale a 16, 32 ó 64 bits dependiendo de la
computadora.
Se ha de notar la diferencia entre unidades de información: bit, carácter y palabra, y el
soporte donde se guardan: unidad de memoria, octeto y registro, respectivamente.
Al tratar con memorias la unidad básica suele ser el carácter o byte. En términos informáticos
kilo es un prefijo que equivale a 210 = 1024 unidades, pues es la potencia exacta de dos más
próxima a mil. Del mismo modo, mega equivale a 220 = 1048576 unidades. En la tabla siguiente
se muestran algunos tamaños de memorias expresados de varios modos.
abreviatura
1 Kc
1 Mc
1 Gc
1 Tc
cantidad
kilocarácter
megacarácter
gigacarácter
teracarácter
bits
8 · 210
8 · 220
8 · 230
8 · 240
caracteres
210
220
230
240
Clases de memoria
Aunque el esquema de la figura 4.1 no lo muestra, el hecho es que existen dentro de la computadora varias clases de memoria, atendiendo cada una a una misión particular. En esta sección
se enumeran algunos de los tipos más habituales de memoria.
c MRA & JAAR
2009 DISA. ESI. US.
43
• Memoria principal. Es la que contiene el programa en el momento de la ejecución del
mismo. Suele estar constituida por circuitos integrados, que es la forma de almacenamiento
más rápida. En la mayorı́a de los casos es de tipo volátil y de acceso directo. Esta memoria
suele ser expansible a voluntad del operario; para ello basta con añadir más circuitos
integrados en el interior de la computadora.
• Memoria auxiliar. La memoria auxiliar es un dispositivo externo1 que contiene información. Entre otros pueden citarse el disco duro, el disco óptico y los discos flexibles.
Son llamadas también memorias masivas. La velocidad de acceso suele ser menor que la
de la memoria principal, pero la capacidad de almacenamiento mayor. Al ser un periférico,
el trasvase de datos entre la memoria auxiliar requiere un adaptador que es la unidad de
entrada y salida (véase figura 4.1).
Otra clasificación de las memorias atiende al tipo de operaciones que es posible realizar en
ellas.
• Memorias de acceso aleatorio. Más conocidas como RAM, Random Access Memory. Son
memorias de lectura y escritura, en las que se puede direccionar directamente cualquier
posición de la misma, a diferencia de las de acceso secuencial. Están realizadas a base
de circuitos integrados que necesitan alimentación constante, por lo que son volátiles. La
memoria principal de la computadora es de este tipo.
• Memoria sólo para lectura. Llamadas ROM, del inglés Read Only Memory. Se trata de
memorias en las que la información se almacena de forma permanente, bien durante su
construcción o bien en una fase posterior. De estos dispositivos, una vez en uso, sólo puede
leerse la información almacenada, pero no puede escribirse nueva información.
Las operaciones para el arranque de una computadora están 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 volátiles.
• Memoria reprogramable sólo 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 técnicas especiales (por ejemplo, exposición a rayos ultra-violeta). Tras
el borrado se puede reprogramar la memoria para que contenga nueva información de forma
permanente (hasta un nuevo borrado). El borrado y reprogramación 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 está constituida por circuitos integrados en cuyo
interior residen las células básicas de almacenamiento, organizadas en registros como ya se ha
dicho. Una forma de representar esto es usando una disposición 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 también longitud de la palabra. El número de filas N suele ser muy
alto como puede suponerse sabiendo la capacidad normal de las memorias actuales que es de
1
Necesita conexión especial para unirse al resto de módulos.
44
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
hilos de lectura y escritura
célula de
memoria
N
hilos de
selección
registro
n
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 información de cada celda del
registro seleccionado. La escritura realiza el proceso inverso, destruyendo la información que
residı́a previamente en el registro seleccionado.
Cada registro de la memoria tiene asignado un número llamado dirección. Es habitual
conceder al registro superior el número 0 y al inferior en número N − 1, siendo N el número
total de registros. Para acceder a la información de la memoria es preciso conocer la dirección
en la que se encuentra. Conocida dicha dirección se puede seleccionar el registro en cuestión y
proceder posteriormente a la lectura o escritura.
Por tanto, la selección de la información es un paso previo a la lectura o escritura y se hace
actuando sobre el hilo que correspondiente a la dirección dada. Esto lo realiza el decodificador
de direcciones. La dirección que se proporciona al decodificador es el número 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 número en binario entre 0 y 2m − 1. Para expresar este valor
hacen falta precisamente m dı́gitos binarios; es decir, la dirección es un número binario de m
bits. Para proporcionar al decodificador la dirección se usa un registro llamado de selección de
dirección 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 cómo se enlazan los elementos vistos hasta
ahora relativos a las memorias, se analizará la memoria central de una computadora. Ésta está
formada por una matriz celular de elementos de memoria, un decodificador de direcciones y una
2
Término heredado de los dı́as en que las memorias eran de núcleos de ferrita ensartados en los nodos de una
red de hilos conductores.
c MRA & JAAR
45
2009 DISA. ESI. US.
m
decodificador
de direcciones
0
1
N=2
m
N-1
n
Figura 4.5: Diagrama de la memoria organizada matricialmente incluyendo el registro de selección de direcciones y el decodificador.
pequeña 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 continuación.
• S. Es el registro selector de direcciones de memoria. Almacena m bits que representan (en
binario, por supuesto) la dirección del registro a seleccionar.
• LECM, ESCM. Son dos señales de control mediante las cuales la UC ordena escribir o leer.
• T. Es un registro tampón o de almacenamiento temporal que realiza la función de antesala
de la memoria. Durante una lectura recibe una copia de los n bits contenidos en la posición
seleccionada. Durante la escritura contiene la información que se va a escribir.
direcciones
LECM
Decodificador
S
m
ESCM
n
datos
T
Figura 4.6: Diagrama de bloques de la memoria central mostrando los registros y señales de
gobierno.
Para realizar una operación de lectura o escritura con la estructura anteriormente descrita,
es necesario seguir un procedimiento que se detalla a continuación.
• Lectura. El objetivo final es obtener una copia del contenido de una dirección particular de
la memoria. Los pasos a seguir son:
• Seleccionar la dirección que contiene la información a recuperar; para ello se ha de
introducir dicha dirección en el registro S.
46
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
• Dar la orden de lectura activando LECM; es decir, dando el valor lógico 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 información dada en una posición de
memoria concreta conocida. Los pasos a seguir son:
• Selecionar la dirección que contiene la información a recuperar; para ello se ha de
introducir dicha dirección en el registro S.
• Copiar en T la información 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 señal de escritura haciendo ESCM=1.
4.3
La unidad aritmético-lógica
Utilizando circuitos electrónicos es posible combinar el contenido de dos registros de memoria
de forma que se obtenga un tercer registro que guarde alguna relación 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 número binario 010010 |2) que en decimal es 010010 |2) = 18 |10) .
Similarmente, el registro 2 contiene los bits 000011 que puede interpretarse como el número
binario 000011 |2) que en decimal es 000011 |2) = 3 |10) . Es fácil comprobar que el circuito
sumador debe combinar la información de ambos registros de tal modo que el registro resultado
contenga 010101 que es la representación 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 aritméticas como la suma, la resta, etc.
También interesan operaciones llamadas lógicas. Como ejemplo de operaciones lógicas se puede
citar la comparación 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 construcción de la UAL se lleva a cabo hoy en dı́a en una pastilla de silicio, agrupando
una serie de circuitos con puertas lógicas. Estos circuitos son capaces de realizar tareas concretas
c MRA & JAAR
47
2009 DISA. ESI. US.
A
estado
SUMA
MULT
···
primer operando
Señales de
control.
segundo operando
Figura 4.8: Esquema de la Unidad Aritmético Lógica mostrando el acumulador y las señales de
gobierno. Las lı́neas que unen los registros consisten en realidad en uniones de n vı́as, siendo n
el número de celdas de los registros.
como desplazamientos, sumas, comparaciones, etc. La unidad de control que también reside en
la pastilla puede seleccionar la operación a efectuar gracias a las señales de control. La activación
de alguna de estas señales provoca la puesta en marcha de la operación 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 computadoras y calculadoras, el resultado de las operaciones se almacena en un registro A que recibe
el nombre de registro acumulador. Para reducir el tamaño de la UAL, el acumulador es a
menudo también el soporte de uno de los operandos.
La UAL recibe órdenes de la unidad de control que especifican la operación 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 operación 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 señal de control CARGA
3. Se lleva el segundo operando a la entrada de la UAL
4. Se realiza la operación activando la señal correspondiente en este caso SUMA
5. El resultado aparece en el acumulador desde donde puede llevarse a otros lugares de la
computadora
48
4.3.1
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
Circuitos operadores con puertas lógicas
Se va a tratar ahora el problema de realizar operaciones aritméticas con números usando circuitos
lógicos. Los ejemplos que se van a explicar tienen como objetivo mostrar que es posible construir
una unidad de cálculo basada en puertas lógicas.
Semisumador
El semisumador permite realizar sumas aritméticas entre bits. En cualquier sistema de numeración, la suma más sencilla es la de números de un sólo dı́gito, por ejemplo 2 + 4. En el sistema
de numeración en base dos los dı́gitos reciben el nombre de bits. El objetivo, por tanto, es sumar
dos números de un bit a y b, obteniendo además de la suma s el acarreo c. Obsérvese que se
quiere obtener la suma aritmética, no la suma lógica, para aclarar esto último considérese la
tabla de sumar en decimal y en binario.
decimal
+
0
1
0
0
1
binario
1
1
2
+
0
1
0
0
1
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 más uno. La tabla de verdad se obtiene simplemente sumando:
a
0
0
1
1
b
0
1
0
1
c
0
0
0
1
s
0
1
1
0
de donde se deduce que: c = a · b y s = a · b + a · b = a ⊕ b, donde el signo ⊕ indica la operación
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
49
2009 DISA. ESI. US.
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c1
0
1
0
1
0
1
0
1
c
0
0
0
1
0
1
1
1
s
0
1
1
0
1
0
0
1
que conduce a la expresión 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.
c1
a
a
a
s
SS
b
b
c
a
b
SS
b
a
s
c
(a
b
c1
s
b) c1
c
ab
Figura 4.9: Circuito sumador de bits con acarreo.
Sumador en paralelo
El sumador paralelo está formado por bloques SC (sumador completo) y SS (semi-sumador),
conectados como se muestra en la figura 4.10. Esta forma modular permite un fácil diseño del
circuito y ayuda a la comprensión de su funcionamiento. Obsérvese que cada bloque obtiene la
suma y el acarreo para el bloque siguiente. Las flechas en el dibujo se han añadido para indicar
mejor cual es el flujo de la información. 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 números de tres
bits. Es fácil ver que para un número de bits mayor basta con añadir más bloques sumadores
SC.
Restador
Para realizar la operación resta con circuitos digitales se suele recurrir a propiedades de la
aritmética binaria. En efecto, no es difı́cil ver que una de estas propiedades es que restar dos
números en binario es equivalente a sumar al minuendo el complemento a dos del sustraendo.
Veamos un ejemplo considérese la operación en decimal 7 − 5 = 2, usando registros de 4 bits.
Entonces se tiene que 7|10 = 0111|2 y el número 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
A
a2 a1 a0
SC
b2 b1 b0
SC
s3 s2 s1 s0
B
SS
S
Figura 4.10: Sumador en paralelo de números 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 número 7 en complemento a dos es C2 (7) = 1001. Si ahora hacemos la suma
0101
|{z} + 1001
|{z} −→ 1010
|{z} ,
|{z} = 1110
5
C2 (7)
C2 (2)
SVA(−2)
donde como el resultado es negativo, se obtiene en complemento a dos. El resultado es el número
al que corresponde dicho complemento a dos.
Multiplicador de números de dos bits
Un ejemplo más complejo lo constituye el multiplicador de números de dos bits. Consiste en un
circuito que acepta como entrada los cuatro bits correspondientes a dos números A y B (véase
figura 4.11). La salida del circuito son los cuatro bits del número resultante de multiplicar A y B
en forma aritmética. Los bits de A se denotan como a0 y a1 , equivalentemente los bits de B son
b0 y b1 . Si llamamos a la multiplicación M = AB los bits m0 , m1 , m2 y m3 son los valores que
debe proporcionar el circuito. A modo de ejemplo supóngase 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.
Nótese 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
51
2009 DISA. ESI. US.
a1 a0
m3 m2 m1 m0
b1 b0
Figura 4.11: Circuito multiplicador de números de dos bits.
a1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
a0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
b1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
b0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
m3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
m2
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
m1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
m0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
La función booleana para cada bit de salida se indica a continuación. 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
División
La división es la más complicada de entre las operaciones. Se puede diseñar un circuito especı́fico para esta tarea, pero resulta más sencillo utilizar circuitos que realizan sumas, restas,
52
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
desplazamientos, etc. En efecto, la división en binario puede describirse mediante operaciones
aritméticas que involucran la suma, la comparación y el desplazamiento. Por tanto, pueden
usarse estos bloques ya descritos para obtener un circuito divisor. En muchas computadoras
la división 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 recordará, los números fraccionarios se representan en formato de punto flotante, como:
M · 2E . Para realizar operaciones con números flotantes basta con usar los circuitos ya vistos
actuando independientemente sobre la mantisa y el exponente de acuerdo con ciertas reglas. En
notación de mantisa y exponente las operaciones entre dos números 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 .
• División. Se dividen las mantisas, se restan los exponentes y se ajusta el resultado:
a · 2p /(b · 2q ) = (a/b) · 2p−q .
• Suma y resta. Ambos números deben tener el mismo exponente, para ello se toma el mayor
de los dos (normalización): 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 evacuación de resultados se llevan a cabo mediante dispositivos variados
como son el teclado y la pantalla y que reciben el nombre de periféricos.
El reto que plantea la comunicación de la computadora con el exterior a través de dispositivos
diferentes reside fundamentalmente en la distinta velocidad de transmisión de éstos. En efecto,
considérese un teclado; la información que proviene del mismo no suele superar los 20 caracteres
por segundo, es decir hay 0.05 segundos de espera entre carácter y carácter. 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 transmisión de datos.
Tı́picamente, los periféricos se conectan a la computadora mediante circuitos que realizan las
adaptaciones necesarias (niveles de tensión, formato de la información, etc.). Ésta es la situación
mostrada en la figura 4.12. En el desarrollo del capı́tulo se van a describir brevemente algunos
periféricos, para pasar posteriormente al problema de la comunicación entre éstos y la UCP.
c MRA & JAAR
53
2009 DISA. ESI. US.
UCP
Adaptador
Teclado
Teclado
RAM
Adaptador
unidad de disco
Disco
ROM
Adaptador
Adaptador
vídeo
paralelo
Monitor
Impresora
Figura 4.12: Periféricos conectados a los enlaces de la computadora.
4.4.1
Periféricos
Como se ha dicho, los periféricos son dispositivos que permiten el trasvase de información desde
el exterior a la computadora o al contrario. Los más comunes son descritos a continuación:
Teclado Permite tanto introducir texto, números y proporcionar señales para los programas. Se
compone de pulsadores electromecánicos que mandan un código identificador a un espacio
de almacenamiento temporal que la computadora lee y vacı́a periódicamente. Las teclas
que incluye son:
• Letras, números y signos de puntuación. Esta parte del teclado se asemeja al de una
máquina de escribir convencional.
• Tecla INTRO. Tiene dos funciones: en primer lugar permite pasar a la siguiente lı́nea
en la escritura. Además, en programas de uso interactivo sirve para dar entrada a la
información tecleada anteriormente de forma que pueda ser procesada. Por ejemplo,
después de introducir una orden hay que pulsar esta tecla, para que la computadora
ejecute la orden. En algunos teclados aparece el sı́mbolo ←| , o la palabra RETURN o
ENTER.
• Teclas de función, Numeradas desde la F1 a la F12 sirven para realizar órdenes dentro
de ciertos programas. No tienen un significado definido, sino que cada programa les
asigna una función, 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 numérico. Además de los números, los teclados modernos, suelen traer un
teclado numérico compuesto por los números, 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 mayúsculas, bloqueo de teclado numérico, etc.
• Otras teclas especiales, como flechas, botón de parada, etc.
• Teclas que alteran la función de otras teclas.
– Tecla MAY3 . Pulsada simultáneamente con otra produce la escritura de la letra
en mayúsculas 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 función normal es en todo igual a las mayúsculas de una máquina de escribir.
Aplicada a las teclas de función permite activar funciones distintas.
En general cuando se ha de pulsar una tecla conjuntamente con otra se indica mediante el signo +. Por ejemplo, para indicar que se han de pulsar simultáneamente
la tecla MAY y la tecla de función F2 se usa: MAY+F2.
– Tecla ALT. Al igual que la tecla de mayúsculas permite cambiar la función de
las teclas de función. Además sirve para generar los sı́mbolos de la tabla ASCII
manteniendo la tecla pulsada mientras se introduce el código 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
menú tecleando ALT+inicial opción del menú.
– 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 carácter ASCII número 7 que provoca un
zumbido en el altavoz del terminal. Otros caracteres útiles son CONTROL+C
y CONTROL+Z para terminar la ejecución de programas. Usada en conjunción
con las teclas de función permite activar otras funciones distintas dentro de programas.
Una combinación de teclas especialmente útil en sistemas PC es CONTROL+ALT+SUPR
que causa un reinicio del sistema.
Los teclados tienen una velocidad de transmisión baja (10 ó 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.
Ratón Es un dispositivo que sirve para posicionar un puntero gráfico sobre la pantalla, de
forma rápida. Este puntero permite realizar acciones pulsando los botones del ratón. Los
entornos de ventana hacen un uso exhaustivo del ratón. Existen diversos tipos, de bola,
óptico, por presión.
Monitor de visualización Es el lugar donde usualmente la computadora envı́a la salida de
los programas. Solı́a ser del tipo TRC (tubo de rayos catódicos), de color o monocromo.
Hoy en dı́a 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 vı́deo. La imagen que se presenta en pantalla está contenida en la memoria de
vı́deo. Un circuito especial de la tarjeta se encarga del refresco de la imagen en el tubo,
consistente en redibujar la imagen un cierto número de veces por segundo de acuerdo con
el contenido de la memoria. La UCP se limita a colocar en la memoria de vı́deo la imagen
y el circuito de refresco la manda a la pantalla.
La cantidad de memoria de vı́deo disponible limita las posibilidades gráficas. Ası́, una
tarjeta con poca memoria compone las imágenes mediante puntos gruesos y con pocos colores, como se muestra en la figura 4.13 a la izquierda. Al aumentar la memoria disponible
es posible disminuir el tamaño del punto y aumentar la cantidad de colores que pueden
presentarse a un mismo tiempo. De este modo las imágenes resultan mejor definidas como
en la figura 4.13 a la derecha. La capacidad de la tarjeta de vı́deo 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 técnica usada para
c MRA & JAAR
2009 DISA. ESI. US.
55
Figura 4.13: Imágenes proporcionadas por dos tarjetas de vı́deo 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 más usadas actualmente son las impresoras de chorro de tinta y
las láser.
La tinta en una impresora de chorro o inyección 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 eléctricos para que lleguen
al lugar indicado sobre el papel.
La impresora láser permite copiar páginas enteras de una vez. Se basan en un tambor
cargado electrostáticamente, que al ser expuesto a un rayo láser 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 láser es muy fino, la
calidad de impresión es muy alta.
No hay ningún código normalizado para la comunicación ente impresoras y computadoras.
Sin embargo, normalmente no hay que preocuparse por estos detalles pues los programas
(o sistemas de explotación) permiten seleccionar el tipo de impresora a usar mediante
menús, 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 descripción de páginas a base de
instrucciones producido por Adobe Systems Inc,
Las impresoras pueden conectarse a la computadora usando diversos adaptadores de entradasalida entre los que destacan: Centronics, RS232, SCSI y las conexiones de red como
Ethernet u otras.
Digitalizador de imágenes Se usan para obtener una versión digital de imágenes sobre el
papel. Para ello la imagen es descompuesta en una matriz de puntos de color y posteriormente almacenada como un archivo en un formato gráfico, como los conocidos GIF y
TIFF.
En ocasiones la digitalización de imágenes tiene por objeto conseguir un archivo conteniendo el texto impreso en la imagen. Es decir, la imagen puede ser una página de un
periódico y lo que se desea es el texto contenido en dicha página. 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 sólo con letra de imprenta.
Discos magnéticos Los dispositivos de almacenamiento masivo permiten guardar grandes can-
56
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
Pista
Cabezas
Figura 4.14: Discos magnéticos para almacenamiento de datos.
bits modulados
objetivo
datos
detector
(a)
00100010000100000100
etiqueta
plástico
(b)
Figura 4.15: (a) Esquema del disco óptico. (b) Representación de la información en el mismo.
tidades de datos de forma no volátil. Los dispositivos más usados han sido de soporte
magnético como el disco duro, las cintas magnéticas y los discos flexibles hoy ya casi
desaparecidos.
Los discos duros están fijos en el interior de la computadora. Su construcción 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 óptico Los discos con soporte óptico como los populares CD-ROM, CDR, DVD-ROM
y DVD-RAM permiten guardar gran cantidad de datos (de 700 Mc a varios Gc). La
información se guarda en binario en forma de agujeros o huecos microscópicos en el metal
interior del disco. Mediante un rayo láser se puede obtener una señal eléctrica con un
voltaje alto o bajo dependiendo del paso de depresiones bajo el láser a medida que el disco
gira.
El CD-ROM es casi idéntico a los discos compactos para audio que existı́an previamente.
De hecho, ambos discos son compatibles. Los reproductores de discos para audio incorporan una etapa de conversión de digital a analógico 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 está protegido por una capa de plástico se
consigue un medio menos sensible que los discos flexibles. El disco tiene los datos grabados
en una única pista espiral. La lectura sobre la pista es a velocidad constante, por lo que
el disco gira a distintas velocidades según 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 carácter. Se
incluye un código de detección 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 ópticos hay varias clases: hay discos que sólo 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
57
2009 DISA. ESI. US.
A
B
A
B
C
D
C
D
Figura 4.16: Conexión de cuatro módulos punto a punto (izquierda) y mediante una lı́nea
(derecha).
4.5
La unidad de control
Esta sección tiene por objeto mostrar cómo se unen los módulos que componen una computadora digital mediante enlaces. De este modo estaremos en disposición de presentar un modelo
simplificado de computadora capaz de ejemplificar las funciones básicas de las computadoras
reales. Este modelo servirá, 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 módulos de la
computadora.
4.5.1
Enlaces
Los enlaces tienen como misión conectar los distintos módulos para poder transferir información
entre ellos. Por ejemplo, las instrucciones que componen el programa han de ser leı́das 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 éstos módulos
han de estar conectados también.
La conexión de los distintos elementos de la computadora podrı́a realizarse de muchas formas.
Supóngase, a modo de ejemplo, que se han de conectar entre sı́ cuatro dispositivos digitales con
el fin de efectuar entre ellos transferencias de información (ver figura 4.16). Si se enlazan todos
con todos, son necesarios 6 enlaces. Esto implica que hay 6 lı́neas de conexión bidireccionales
que hay que cablear, soldar, comprobar, etc. En general para conectar n dispositivos con lı́neas
conexiones; lo cual tiende a un número prohibitivo a medida
bidireccionales son necesarios n(n−1)
2
que n aumenta. Por otro lado, si se restringe en cada momento la comunicación a un dispositivo
que emite, constituyendo la fuente de información, podrı́an conectarse todos a una sola lı́nea,
de forma que mientras la fuente de información ”habla”, los demás permanecen ”a la escucha”,
recogiendo la información transmitida. Esta lı́nea de transmisión es a menudo llamada bus. En
la parte derecha de la figura 4.16 se ha representado esta forma de conexión. La comunicación
mediante una lı́nea presenta ciertas ventajas que se enumeran a continuación.
• Reducción del número de conexiones a realizar.
• Simplificación de los sistemas (cada uno sólo tiene una entrada y una salida).
• Expansibilidad, puesto que pueden añadirse nuevos dispositivos.
• Facilidad de ejecución en circuitos impresos, con el consiguiente ahorro de precio.
58
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
enlace
enlace
gobierno
gobierno
información
información
Figura 4.17: Control de la entrada de datos al enlace mediante puertas triestado.
• Los módulos pueden estar a considerable distancia unos de otros.
Pero no todo son ventajas, la sencillez se paga con algunos inconvenientes:
• Al estar restringido el número de dispositivos que transmiten información a uno en cada
momento, el tiempo necesario para transmitir un volumen de información dado es mayor
que con conexiones directas.
• Las comunicaciones se han de organizar de acuerdo a ciertas reglas, para evitar que más
de un módulo 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 transmisión es más rápida. El ancho del enlace es el número 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 información desde los módulos hacia el enlace se ha de controlar
pues no puede producirse en cualquier momento, de otro modo podrı́an aparecer colisiones de
mensajes si dos módulos transmiten al mismo tiempo. Una posible solución para controlar el
acceso a la lı́nea 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 también permite mandar al enlace la información que la atraviesa.
El esquema se aprecia en la figura 4.17 a la izquierda. La señal que niega o permite el acceso
al enlace se llama de gobierno. La puerta triestado permite que la salida fluctúe libremente
cuando la señal de gobierno vale cero. De este modo, el enlace transporta el valor indicado
por algún otro elemento. Por contra, cuando la señal de gobierno toma el valor uno la puerta
triestado permite el paso de información a través suyo.
En la citada figura 4.17 se muestra a la derecha la forma habitual de representar el acceso
al enlace a través de la puerta triestado. El enlace se simplifica en el dibujo como si fuese una
lı́nea única.
4.5.2
Modelo simple de una computadora digital
La unidad de control es el elemento que ordena a todos los demás. La tarea que tiene encomendada consiste en enviar las señales de control que provocan operaciones de los módulos y
c MRA & JAAR
59
2009 DISA. ESI. US.
INCP
A
EA
EP
SP
SUMA
MULT
LECM
ES
S
ESCM
MEM
SD
CO MD
SA
S
P
EO
D
ESCP
I
EI
M
E
T
ET
LEET
ST
EE
SE
M
Figura 4.18: Esquema de una computadora digital mostrando los enlaces y las señales de gobierno.
también transferencias de información entre los mismos.
En el esquema de la figura 4.18 se muestran los módulos 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 información 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 él
se transmiten direcciones de memoria.
3. La memoria principal, con organización 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 selección de memoria.
• T. Registro tampón de comunicación entre la memoria y la lı́nea M.
• P. Contador de pasos de programa. Indica la posición dentro de la memoria de la
instrucción a ejecutar.
• I. Registro de instrucción. Guarda en cada momento la instrucción que se ejecuta en
ese paso.
• E. Registro de comunicación 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 máquina 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 continuación.
Para comenzar la explicación se parte de una situación en la que el programa ha sido almacenado previamente en la memoria. El programa se va a ejecutar paso a paso bajo la dirección
de la unidad de control. Ésta debe obtener de la memoria la instrucción a ejecutar, por lo que
necesita disponer de algún medio que le permita conocer en qué posición de memoria se encuentra 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 dirección de la instrucción
(registro P en la figura anterior). Este registro es un contador que se incrementa en una unidad
cada vez que se realiza una instrucción, pasando ası́ a apuntar a la siguiente.
Una vez localizada la instrucción se extrae de la memoria llevándola al registro I, donde
se ejecuta activando las señales de gobierno necesarias. Esta tarea la realiza un módulo de la
unidad de control que aún no se ha mostrado. Finalmente se incrementa P para poder ejecutar
la siguiente instrucción.
Cada instrucción requiere tres componentes para quedar totalmente definida: la operación,
la forma de direccionamiento y una dirección 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 continuación.
1. Código de operación (CO), es un conjunto de ceros y unos que identifica la operación que
debe realizarse. Las instrucciones como la suma, la resta, etc. tienen cada una un código
distinto.
2. El modo de direccionamiento (MD), que indica la forma en que se ha de interpretar la
dirección que está incluida en la instrucción. En el caso más sencillo (llamado direccionamiento directo) la dirección es la del dato o resultado de la operación.
3. Dirección de memoria (D). Esta dirección puede interpretarse de formas distintas, según
el modo de direccionamiento y la instrucción de que se trate. En un caso simple como la
suma directa, esta dirección es el lugar de la memoria donde reside el dato que se ha de
sumar.
Para aclarar las ideas, considérese la instrucción sumar al acumulador el contenido de la
posición de memoria 8. Supóngase que la codificación de esta instrucción es:
CO
0101
MD
0
D
00000001000
Por lo que el registro I, en el momento de ejecutarse esta instrucción contiene el valor
0101000000001000. La primera parte (CO) identifica la operación suma, la segunda parte (MD)
indica que se trata de direccionamiento directo, que será explicado más adelante. Por último, la
dirección 00000001000 es el número 8 codificado en binario, y se interpreta como el lugar donde
reside el número que se ha de sumar al registro acumulador.
c MRA & JAAR
4
A
61
2009 DISA. ESI. US.
17
P
S
8
4
3
A
17
P
S
17
co | md | 8
co | md | 8
A)
co | md | 8
17
I
co | md | 8
B)
7
A
17
P
S
8
7
3
A
18
P
S
8
4
3
8
17
I
8
3
co | md | 8
I
8
3
8
17
co | md | 8
C)
3
co | md | 8
I
17
co | md | 8
D)
Figura 4.19: Fases de la ejecución de la instrucción suma.
4.5.4
Ejecución de instrucciones
Para cualquier instrucción el proceso de ejecución se divide en cuatro fases: búsqueda de la
instrucción, búsqueda del operando, ejecución de la instrucción y preparación de la instrucción
siguiente. Estas fases conllevan pasos distintos dependiendo de la instrucción de que se trate.
Los casos más sencillos se plantean al considerar instrucciones aritméticas, como la suma.
La figura 4.19 muestra de forma esquemática el desarrollo de las cuatro fases para una
instrucción como la suma directa. Como es sabido los registros contienen los números en binario,
sin embargo, para dar mayor claridad al dibujo se han indicado aquı́ en decimal. Las posiciones
de memoria también se han indicado con su dirección en decimal por idéntico motivo.
La parte A) de la figura representa la búsqueda de la instrucción. Se ha supuesto que ésta se
halla en memoria en la dirección 17 por lo que el contenido de P es precisamente 17. Se observa
también el direccionamiento de la memoria logrado con el registro S. Mediante una lectura se
pasa la instrucción al registro I.
La parte B) corresponde a la búsqueda del operando; éste es el valor contenido en la dirección
de memoria 8, que en este caso es el número 3.
En la parte C) se realiza una nueva lectura de memoria que permite pasar el operando al
registro de operando de la UAL. Después se efectúa la suma del acumulador que contenı́a el
número 4 con el operando. El resultado (7 = 4 + 3) pasa al propio acumulador.
En la parte D) se prepara la instrucción siguiente. El registro P se incrementa en una unidad,
de este modo se consigue ejecutar la instrucción siguiente y ası́ sucesivamente.
Obsérvese que el desarrollo de la instrucción se logra simplemente por la transferencia de
información entre registros y mediante la transformación de ésta 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 información
entre registros. Para verificar esta afirmación se va a explicar a continuación de forma más
detallada la ejecución de la instrucción del ejemplo anterior, sumar al acumulador un dato
almacenado en una dirección de memoria dada.
1. Búsqueda de la instrucción: consiste en extraer la instrucción que se va a ejecutar de
la memoria. El registro P contiene la dirección de la instrucción a ejecutar, por lo que
habrá de leerse la dirección de memoria indicada por P. Esta fase tiene tres operaciones
elementales:
(a) Direccionamiento: transferir a S el contenido del registro P. Esto se simboliza mediante: (P) → S. Nótese que el contenido anterior del registro S se pierde al ser
sustituido por el contenido de P.
(b) Leer de memoria , obteniéndose en T la información almacenada en la posición definida por S, lo cual se puede expresar como: M(S) → T
(c) Pasar la instrucción a I: (T) → I, donde debe quedar para poder ser ejecutada.
2. Búsqueda del operando: En CO se ha supuesto la existencia del código de operación (que
identifica a la suma en este ejemplo). El modo de direccionamiento es directo, por lo tanto
la dirección 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 número a sumar en T.
3. Ejecución de la instrucción. 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 además el resultado de las operaciones.
4. Preparación de la siguiente instrucción. 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 instrucción suma
consiste en dar las transferencias elementales entre registros. Del diagrama 4.18
resulta claro que para lograr estas transferencias es necesario activar las señales 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 señales de gobierno
necesarias.
La activación de las señales de gobierno se realiza de forma automática durante la ejecución
del programa. Es una tarea que corre a cargo de la unidad de control. Para no enmarañar el
dibujo de la figura 4.18 no se muestra la forma en la que la UC activa dichas señales. Baste
decir que existe un módulo o bloque adicional que maneja todas las señales de control de forma
parecida a cómo el centro de control de tráfico puede manejar los semáforos de una ciudad.
c MRA & JAAR
63
2009 DISA. ESI. US.
fase
1a
1b
1c
2a
2b
3
4
transferencias entre registros
(P) → S
M(S) → T
(T) → I
(D) → S
M(S) → T
(A)+(T) → A
(P)+1 → P
señales de gobierno
SP, ES
LECM
ST, EI
SD, ES
LECM
ST, EO, SU M A, EA
IN CP
Tabla 4.1: Fases, transferencias entre registros y señales de gobierno correspondientes a la
instrucción suma.
La instrucción de salto
Se ha indicado que el contador de pasos de programa se incrementa en una unidad cada vez que
se ejecuta una instrucción, de forma que pase a señalar la dirección de la siguiente instrucción
en la memoria. Esta forma de proceder es adecuada para muchas situaciones, pero está muy
falta de versatilidad. El llamado salto incondicional permite romper el orden de ejecución de
las instrucciones, de forma que, tras la instrucción de salto situada en la dirección d, se pasa
a ejecutar otra, situada en una dirección distinta de d + 1. Para ello es necesario y suficiente
modificar el registro contador de pasos del programa P. Los pasos necesarios son:
1. Búsqueda de la instrucción: Hay que extraer la instrucción 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 , obteniéndose en T la información almacenada en la posición definida por S: M(S) → T
(c) Pasar la instrucción a I: (T) → I. Donde será interpretada.
2. Búsqueda del operando: en la parte D del registro I debe figurar la dirección del salto, que
se debe introducir en P, por lo que no es necesario buscar en memoria.
3. Ejecución de la instrucción. En este caso, pasar el contenido de D al registro contador de
pasos: (D) → P.
4. Preparación de la siguiente instrucción. En este caso no hay que hacer nada pues el
contador de pasos del programa contiene ya la dirección de la siguiente instrucción tras
del salto.
Saltos condicionales
La instrucción de salto condicional permite realizar el salto de una instrucción a otra dependiendo
de una condición, 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 verá más adelante) para
realizar las llamadas bifurcaciones.
...
EO
LECM
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
SP
64
señales de gobierno
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 función de la unidad de control es interpretar cada una de las instrucciones del programa a
ejecutar, enviando las señales 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 señales de control permiten realizar operaciones
y transferencias de información 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 señales de gobierno a partir del código de operación.
La ejecución de una instrucción conlleva la activación de ciertas señales de gobierno, que
reciben el nombre de microórdenes. Las señales de gobierno evolucionan en el tiempo para
llevar a cabo las instrucciones del programa. Como ejemplo se puede recordar ahora el caso de
la instrucción suma. Las fases de la instrucción se muestran en la tabla 4.1.
El cronograma de operaciones correspondiente a la instrucción suma es una representación
gráfica de la evolución temporal de las señales de gobierno. En la figura 4.21 se muestra el
cronograma correspondiente a la instrucción suma. El eje horizontal corresponde a la escala
de tiempos. Además, se ha superpuesto en la figura la señal 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 microórdenes se sucedan en secuencia y que exista una
sincronización entre acontecimientos como se puede ver en el cronograma.
Volviendo al cronograma hay que indicar el eje vertical indica el voltaje de la señal 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 ejecución de la instrucción. Las cuatro fases de reloj se
agrupan en dos ciclos:
• Ciclo de instrucción. Comprende los periodos θ1 y θ2 , y representa la búsqueda de la instrucción en memoria y su almacenamiento en el registro I.
• Ciclo de operando. Abarca θ3 y θ4 y representa la búsqueda del operando y la realización
de la operación, junto con la preparación de la instrucción siguiente.
c MRA & JAAR
65
2009 DISA. ESI. US.
1
2
3
4
reloj
SP
ES
LECM
ST
EI
SD
EO
SUMA
EA
INCP
Figura 4.21: Cronograma de la instrucción suma.
Finalmente, es de resaltar que cada instrucción se realiza mediante transferencias entre registros, las cuales se llevan a cabo gracias a una secuencia concreta de microórdenes; por lo
tanto, cada instrucción tiene un cronograma. El cronograma de cada instrucción es trazado por
el diseñador de la computadora de acuerdo con las caracterı́sticas del mismo, como son: número
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 variar las señales 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 señales por los enlaces. Mediante circuitos lógicos y biestables es posible diseñar una
máquina capaz de realizar la tarea en cuestión. A un dispositivo tal se le llama unidad de
control cableada. Debe quedar clara la idea de que cada instrucción necesita señales de
gobierno distintas, por lo que el circuito completo es bastante complicado. Más aún, a medida
que aumenta el conjunto de instrucciones de la máquina, aumenta el número de operaciones que
debe realizar, con lo que aumenta su complejidad dificultando el diseño.
Existe otro tipo de UC llamada microprogramada, ideada por Wilkes, en la cual las señales
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 más importantes de este tema.
1. Diseñe un circuito con puertas lógicas que realize la función de un decodificador de direcciones 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 números enteros. Indique cuál será el contenido del acumulador tras
proporcionarle el operando 0000000000111001, activar la señal CARGA, proporcionar el
operando 1111111110110111 y activar la señal SUMA.
66
TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL
3. Dado el número A|10 = a2 a1 a0 |2 , probar que A + C2 (A) = 0. Nota: a2 es el bit de signo.
4. Indique las señales de gobierno que se activan en la computadora elemental descrita en
este tema al ejecutarse la instrucción de resta al contenido del acumulador. Las señales de
gobierno han de escribirse en el orden cronológico correcto correspondiente cada una de
las fases de ejecución de la instrucción.
5. Hacer las transferencias elementales entre registros de las instrucciones: almacenar,
escribir, saltar.
6. Hacer el cronograma de la instrucción leer.
Descargar