Estructura de la computadora digital

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 explicar´ a en qu´ e forma funciona el conjunto. 4.1 Esquema funcional Como se avanz´ o en el tema 1, la computadora digital est´ a 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´ on de esta diferencia es resaltar, que la comunicaci´ on entre bloques es de dos tipos: informaci´ on y se˜ nales de control. La primera categor´ ıa, la informaci´ on, abarca los datos, los resultados y otras informaciones como direcciones de memoria, estados, etc. La segunda categor´ ıa, las se˜ nales de control son ´ ordenes que la UC manda a los distintos elementos para que se realicen las operaciones. Se ver´ a m´ as adelante que la UC y la UAL forman la unidad central de proceso (UCP), que es la responsable de la ejecuci´ on del programa. La memoria tiene un papel pasivo proporcionando los datos e instrucciones cuando son solicitados por la UCP. UAL principal Unidad de control unidad de entrada/salida Periféfico 1 Periférico n Memoria información señales de control Figura 4.1: Modelo de Von Neumann de la computadora digital. 37

Transcript of Estructura de la computadora digital

Page 1: Estructura de la computadora digital

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 seexplicara 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 contareas 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 esresaltar, que la comunicacion entre bloques es de dos tipos: informacion y senales de control. Laprimera categorıa, la informacion, abarca los datos, los resultados y otras informaciones comodirecciones de memoria, estados, etc. La segunda categorıa, las senales de control son ordenesque 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 esla responsable de la ejecucion del programa. La memoria tiene un papel pasivo proporcionandolos datos e instrucciones cuando son solicitados por la UCP.

UALprincipal

Unidad de control

unid

ad d

e en

trad

a/sa

lida

Periféfico 1

Periférico n

Memoria

información

señalesde control

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

37

Page 2: Estructura de la computadora digital

38 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

R

S y

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 fısico que de un modo uotro la contenga (almacenamiento). En el caso que nos ocupa de las computadoras digitales, launidad de informacion fundamental es el dıgito binario (bit). Al soporte fısico que es capaz dealbergar un bit se le denomina celda o celula elemental. Es decir, una celda elemental esun dispositivo capaz de almacenar un 0 o un 1. Uno de los dispositivos usados para la realizacionde 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, estadosque en ausencia de excitacion externa no cambian. Hay varias clases de biestables, pero todospermiten almacenar una unidad de informacion (0 o 1). Considerado como un sistema logico,cada biestable puede describirse mediante las operaciones necesarias para producir las salidasa partir del valor de las entradas. Hay que tener en cuenta que, a diferencia de los circuitoslogicos vistos con anterioridad (denominados circuitos combinacionales), el biestable tienememoria. Esto conlleva que ante un mismo valor de las entradas puede producir salidas distintasdependiendo del estado anterior. Este tipo de circuitos es un circuito logico no combinacionaldenominados circuitos secuenciales.

Aquı se describe el biestable denominado R-S, que posee dos entradas: la entrada S parasu puesta a uno (set) y la entrada R para la puesta a cero (reset). Tiene dos salidas: el estadoy y el complementario y. La figura 4.2 muestra la construccion de un biestable R-S a base dedos 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 funcionamientodel 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

Page 3: Estructura de la computadora digital

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 esfacil demostrar que la salida no solo depende del valor de las entradas, sino de la salida anteriora 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 Xy0 = 1 1 1 0 X

En la columna correspondiente a R = 1, S = 1 no se ha consignado ningun valor puesto queel biestable no se ha de usar conectando ambas entradas a uno. Se confirma que el biestable noes un circuito logico combinacional, puesto que la salida no solo depende de las entradas, sinodel estado anterior.

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

y(t) → 0 1

y0 = 0 -0 01y0 = 1 10 0-

En la tabla anterior se ha escrito el valor de R y S para que el estado en los instantes siguientessea el que aparece en la cabecera de la columna. El guion indica que la entrada correspondientepuede 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 usarnumeros 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 unente unico. Fısicamente es una asociacion de biestables (figura 4.3). La salida de cada uno delos biestables (bits Q0 a Q3) se interpreta como cifra de una cantidad expresada en binario. Alaumentar el numero de cifras aumenta el numero de combinaciones posibles, por lo que se puederepresentar una cantidad mayor de informacion. Por ejemplo, un registro de 7 celulas puedealmacenar 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 entodos ellos al mismo tiempo; es decir, que las transiciones entre estados esten coordinadas. Estose consigue disponiendo en cada biestable una entrada adicional llamada de sincronismo, lacual se conecta mediante una puerta Y a las otras entradas R y S, de forma que, se impide quesenales R y S actuen hasta que se active la de sincronismo. La senal de sincronismo suele tomarla forma dada en la figura 4.3, llamada tren de pulsos. El sincronismo viene dado por el reloj

Page 4: Estructura de la computadora digital

40 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Q Q QQ 3 2 1 0

R S R S R S R S

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

Como ejemplo de registro veamos el registro de desplazamiento. Este registro nosolo contiene informacion, ademas permite que esta se mueva en su interior. Considerese unregistro 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 contenidodel 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. Sien 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 vacıa 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 deforma mas o menos permanente. La memoria en una computadora es un dispositivo capaz dealmacenar informacion. Para servir a los propositos del tratamiento automatico de la informacionla memoria ha de ser capaz de recuperar cualquier informacion, proporcionandola al exterior solocuando sea solicitada. Para resolver este problema se han propuesto historicamente solucionesdiversas muy imaginativas como lıneas de retraso, tubos de mercurio y nucleos de ferrita. Comoya se ha dicho, las computadoras digitales trabajan con datos binarios, por lo que la memoriadebe 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.

Page 5: Estructura de la computadora digital

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 quealmacena tanto los datos y resultados como las instrucciones. A peticion de la unidad de controlla memoria es capaz de realizar 3 operaciones:

• Lectura. Consiste en extraer una copia de cierta informacion. En la mayorıa de las compu-tadoras tal informacion pueden leerse cuantas veces se desee, pues no es destruida por elproceso de lectura.

• Escritura. La escritura permite almacenar informacion dentro de la memoria. Los datosque se van a almacenar ocuparan algunas celdas de la memoria que previamente contenıanotros valores, por lo tanto el proceso de escritura siempre conlleva la desaparicion de losdatos que ocupaban el lugar donde se introducen los nuevos.

• Direccionamiento. Proceso de seleccion de la informacion dentro de una memoria a partirde la posicion (direccion) de la misma.

Esta memoria es llamada hoy en dıa memoria interna y es la que contiene el programadurante su ejecucion. En la actualidad se compone de circuitos integrados y por este motivo seles 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 ylos discos opticos (CD, DVD, etc.).

Caracterısticas 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. Cualquieraque sea el soporte de la informacion la memoria queda definida por ciertas propiedades o carac-terısticas como son:

• Tiempo de acceso. Es el que transcurre entre el instante en que se ordena la lectura/escriturade una informacion y el momento en que esta disponible para su procesamiento. Interesaque 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, entrelas 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 lasanteriores. Este modo es tambien llamado aleatorio. El tiempo invertido en el accesoes independiente de donde se encuentre la informacion.

- Acceso secuencial. En este tipo de acceso, para llegar a un dato hay que dejar pasarla informacion que le precede. Esto es lo que sucede, por ejemplo, cuando se usa unacinta magnetica.

Page 6: Estructura de la computadora digital

42 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

• Volatilidad. La informacion almacenada en una memoria es volatil si puede destruirse oalterarse al cesar el suministro de energıa al dispositivo que constituye la memoria. Estaes la situacion normal en memorias de semiconductores, que necesitan suministro electricopara 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 estudiode la computadora digital es la memoria principal. En los equipos actuales esta memoria estarealizada mediante circuitos semiconductores que forman puertas logicas. De este modo surge lacelda que da cobijo a la unidad fundamental de informacion. Estos y otros conceptos se definena continuacion.

• Bit. Se denomina bit a la unidad elemental de informacion binaria. El bit es la informacioncontenida en una celula de memoria, es decir, un cero o un uno. Cualquier informacionbinaria puede codificarse mediante una cadena de bits mas o menos larga.

• Caracter. Las celulas de memoria se suelen agrupar formando registros. Una agrupacionmuy usada en los 70 y 80 es la formada por ocho celulas, denominada octeto. Lainformacion constituida por ocho bits, y que se puede almacenar en un octeto se llamacaracter o, mas popularmente, byte.

• Palabra. Los registros de una computadora estan formados por cierto numero de celdas, losmas usuales son de 16, 32 y 64 unidades. La informacion almacenada en un registro sedenomina palabra, por tanto una palabra equivale a 16, 32 o 64 bits dependiendo de lacomputadora.

Se ha de notar la diferencia entre unidades de informacion: bit, caracter y palabra, y elsoporte 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 informaticoskilo es un prefijo que equivale a 210 = 1024 unidades, pues es la potencia exacta de dos masproxima a mil. Del mismo modo, mega equivale a 220 = 1048576 unidades. En la tabla siguientese 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 seccionse enumeran algunos de los tipos mas habituales de memoria.

Page 7: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 43

• Memoria principal. Es la que contiene el programa en el momento de la ejecucion delmismo. Suele estar constituida por circuitos integrados, que es la forma de almacenamientomas rapida. En la mayorıa de los casos es de tipo volatil y de acceso directo. Esta memoriasuele ser expansible a voluntad del operario; para ello basta con anadir mas circuitosintegrados 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 lade 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 deentrada y salida (vease figura 4.1).

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

• Memorias de acceso aleatorio. Mas conocidas como RAM, Random Access Memory. Sonmemorias de lectura y escritura, en las que se puede direccionar directamente cualquierposicion de la misma, a diferencia de las de acceso secuencial. Estan realizadas a basede circuitos integrados que necesitan alimentacion constante, por lo que son volatiles. Lamemoria principal de la computadora es de este tipo.

• Memoria solo para lectura. Llamadas ROM, del ingles Read Only Memory. Se trata dememorias en las que la informacion se almacena de forma permanente, bien durante suconstruccion o bien en una fase posterior. De estos dispositivos, una vez en uso, solo puedeleerse la informacion almacenada, pero no puede escribirse nueva informacion.

Las operaciones para el arranque de una computadora estan contenidas en este tipo dememorias. Esto es ası puesto que se deben preservar al apagar el equipo, por lo que nopueden usarse memorias volatiles.

• Memoria reprogramable solo para lectura. Este tipo de memoria es conocida por elnombre de EPROM, que son las siglas de Erasable-Programable ROM. Se trata de unamemoria para lectura que puede ser borrada por completo y regrabada. El borrado serealiza mediante tecnicas especiales (por ejemplo, exposicion a rayos ultra-violeta). Trasel borrado se puede reprogramar la memoria para que contenga nueva informacion de formapermanente (hasta un nuevo borrado). El borrado y reprogramacion implica desmontar elcircuito 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 cuyointerior residen las celulas basicas de almacenamiento, organizadas en registros como ya se hadicho. Una forma de representar esto es usando una disposicion rectangular a base de filas ycolumnas, como se muestra en la figura 4.4. Cada fila es un registro de n celdas, siendo n elancho del registro llamado tambien longitud de la palabra. El numero de filas N suele ser muyalto como puede suponerse sabiendo la capacidad normal de las memorias actuales que es de

1Necesita conexion especial para unirse al resto de modulos.

Page 8: Estructura de la computadora digital

44 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

registro

célula dememoria

hilos deselección

hilos de lectura y escritura

N

n

Figura 4.4: Estructura matricial de la memoria.

varios megacaracteres. Cada registro puede ser seleccionado mediante un hilo2. Para accedera los bits individuales que forman la palabra contenida en el registro se tienen n hilos llamadosde lectura/escritura (abreviadamente l/e).

La lectura se realiza transmitiendo por los hilos de l/e la informacion de cada celda delregistro seleccionado. La escritura realiza el proceso inverso, destruyendo la informacion queresidıa previamente en el registro seleccionado.

Cada registro de la memoria tiene asignado un numero llamado direccion. Es habitualconceder al registro superior el numero 0 y al inferior en numero N − 1, siendo N el numerototal de registros. Para acceder a la informacion de la memoria es preciso conocer la direccionen la que se encuentra. Conocida dicha direccion se puede seleccionar el registro en cuestion yproceder posteriormente a la lectura o escritura.

Por tanto, la seleccion de la informacion es un paso previo a la lectura o escritura y se haceactuando 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 palabradentro de la memoria, pero codificado en binario. Si la memoria tiene N = 2m palabras esnecesario darle al decodificador un numero en binario entre 0 y 2m − 1. Para expresar este valorhacen falta precisamente m dıgitos binarios; es decir, la direccion es un numero binario de mbits. Para proporcionar al decodificador la direccion se usa un registro llamado de seleccion dedireccion 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 capacidades 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 hastaahora relativos a las memorias, se analizara la memoria central de una computadora. Esta estaformada por una matriz celular de elementos de memoria, un decodificador de direcciones y una

2Termino heredado de los dıas en que las memorias eran de nucleos de ferrita ensartados en los nodos de una

red de hilos conductores.

Page 9: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 45

m mN = 2

n

10

de d

irec

cion

esde

codi

fica

dor

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 ellodentro de un circuito integrado. Los bloques funcionales se pueden ver en la figura 4.6, y sedescriben a continuacion.

• S. Es el registro selector de direcciones de memoria. Almacena m bits que representan (enbinario, 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 antesalade la memoria. Durante una lectura recibe una copia de los n bits contenidos en la posicionseleccionada. Durante la escritura contiene la informacion que se va a escribir.

S

T

Dec

odif

icad

orm

n

LECM

ESCM

direcciones

datos

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

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 dela memoria. Los pasos a seguir son:

• Seleccionar la direccion que contiene la informacion a recuperar; para ello se ha deintroducir dicha direccion en el registro S.

Page 10: Estructura de la computadora digital

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 alregistro 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 dememoria concreta conocida. Los pasos a seguir son:

• Selecionar la direccion que contiene la informacion a recuperar; para ello se ha deintroducir dicha direccion en el registro S.

• Copiar en T la informacion que se quiere escribir en la memoria. Para ello se usanlos 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 memoriade forma que se obtenga un tercer registro que guarde alguna relacion con los primeros. Porejemplo 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 quepuede 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 numerobinario 000011 |2) que en decimal es 000011 |2)= 3 |10). Es facil comprobar que el circuitosumador debe combinar la informacion de ambos registros de tal modo que el registro resultadocontenga 010101 que es la representacion binaria de la cantidad 18 + 3 = 21.

010010 000011 Registro 1 Registro 2

Sumador

010101

Registro resultado

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 puedecitar la comparacion de igualdad. Un circuito comparador produce el valor binario 1 si los dosregistros R1 y R2 son iguales y el valor 0 en caso contrario.

La construccion de la UAL se lleva a cabo hoy en dıa en una pastilla de silicio, agrupandouna serie de circuitos con puertas logicas. Estos circuitos son capaces de realizar tareas concretas

Page 11: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 47

Señales decontrol.

A

segundo operando

MULTSUMA

estado

···primer operando

Figura 4.8: Esquema de la Unidad Aritmetico Logica mostrando el acumulador y las senales degobierno. Las lıneas que unen los registros consisten en realidad en uniones de n vıas, siendo nel numero de celdas de los registros.

como desplazamientos, sumas, comparaciones, etc. La unidad de control que tambien reside enla pastilla puede seleccionar la operacion a efectuar gracias a las senales de control. La activacionde 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 seguarda 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 recibeel nombre de registro acumulador. Para reducir el tamano de la UAL, el acumulador es amenudo tambien el soporte de uno de los operandos.

La UAL recibe ordenes de la unidad de control que especifican la operacion a realizar conlos datos del acumulador y del registro de operando. El resultado de las operaciones queda enel 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 bloquecon 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 hadibujado.

Para realizar una operacion con dos operandos, como por ejemplo la suma, se procede delsiguiente 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 lacomputadora

Page 12: Estructura de la computadora digital

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 circuitoslogicos. Los ejemplos que se van a explicar tienen como objetivo mostrar que es posible construiruna 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 dıgito, por ejemplo 2+4. En el sistemade numeracion en base dos los dıgitos reciben el nombre de bits. El objetivo, por tanto, es sumardos numeros de un bit a y b, obteniendo ademas de la suma s el acarreo c. Observese que sequiere obtener la suma aritmetica, no la suma logica, para aclarar esto ultimo considerese latabla de sumar en decimal y en binario.

decimal binario

+ 0 1

0 0 11 1 2

+ 0 1

0 0 11 1 10

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

a b c s

0 0 0 00 1 0 11 0 0 11 1 1 0

de donde se deduce que: c = a · b y s = a · b + a · b = a⊕ b, donde el signo ⊕ indica la operacionXOR (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:

Page 13: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 49

a b c1 c s

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

que conduce a la expresion para las salidas: s = a⊕ b⊕ c1 y c = c1 · (a⊕ b) + a · b. Para realizarel circuito se puede hacer uso del bloque semisumador anteriormente visto y marcado como SSen la figura 4.9.

SS

a

b

s

c

SS

a

b

s

c

c

a

b ab

a b

a cb

(a b) c

11

1

s

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 delcircuito y ayuda a la comprension de su funcionamiento. Observese que cada bloque obtiene lasuma y el acarreo para el bloque siguiente. Las flechas en el dibujo se han anadido para indicarmejor cual es el flujo de la informacion. Los datos proceden de dos registros A y B, y el resultadova a parar a un registro S. En el dibujo se ha representado un sumador para numeros de tresbits. Es facil ver que para un numero de bits mayor basta con anadir mas bloques sumadoresSC.

Restador

Para realizar la operacion resta con circuitos digitales se suele recurrir a propiedades de laaritmetica binaria. En efecto, no es difıcil ver que una de estas propiedades es que restar dosnumeros 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. Siahora hacemos la suma

0111︸︷︷︸7

+ 1011︸︷︷︸C2(5)

= 1 0010︸︷︷︸SVA(2)

,

Page 14: Estructura de la computadora digital

50 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

2a 2b

SC SC SS

bbaa

s 2s s s

1 0 1 0

013

A B

S

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 resultadono 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 yel numero 7 en complemento a dos es C2(7) = 1001. Si ahora hacemos la suma

0101︸︷︷︸5

+ 1001︸︷︷︸C2(7)

= 1110︸︷︷︸C2(2)

−→ 1010︸︷︷︸SVA(−2)

,

donde como el resultado es negativo, se obtiene en complemento a dos. El resultado es el numeroal 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 uncircuito que acepta como entrada los cuatro bits correspondientes a dos numeros A y B (veasefigura 4.11). La salida del circuito son los cuatro bits del numero resultante de multiplicar A y Ben forma aritmetica. Los bits de A se denotan como a0 y a1, equivalentemente los bits de B sonb0 y b1. Si llamamos a la multiplicacion M = AB los bits m0, m1, m2 y m3 son los valores quedebe proporcionar el circuito. A modo de ejemplo supongase que A = 2 y B = 3, que expresadoen binario queda A = 10 y B = 11, por lo que los valores que entran en el circuito son a0 = 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 Bse obtiene la tabla de verdad:

Page 15: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 51

1a a 0

1b 0b

m 0m m m3 2 1

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 00 0 0 1 0 0 0 00 0 1 0 0 0 0 00 0 1 1 0 0 0 00 1 0 0 0 0 0 00 1 0 1 0 0 0 10 1 1 0 0 0 1 00 1 1 1 0 0 1 11 0 0 0 0 0 0 01 0 0 1 0 0 1 01 0 1 0 0 1 0 01 0 1 1 0 1 1 01 1 0 0 0 0 0 01 1 0 1 0 0 1 11 1 1 0 0 1 1 01 1 1 1 1 0 0 1

La funcion booleana para cada bit de salida se indica a continuacion. Puede comprobarseque el resultado proporcionado es correcto realizando a mano cada una de las 16 multiplicacionesy 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-pecıfico para esta tarea, pero resulta mas sencillo utilizar circuitos que realizan sumas, restas,

Page 16: Estructura de la computadora digital

52 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

desplazamientos, etc. En efecto, la division en binario puede describirse mediante operacionesaritmeticas que involucran la suma, la comparacion y el desplazamiento. Por tanto, puedenusarse estos bloques ya descritos para obtener un circuito divisor. En muchas computadorasla division se lleva a cabo ejecutando un programa en la UCP o en una UCP auxiliar llamadacoprocesador.

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 vistosactuando independientemente sobre la mantisa y el exponente de acuerdo con ciertas reglas. Ennotacion de mantisa y exponente las operaciones entre dos numeros A = a · 2p y B = b · 2q serealizan de la siguiente forma:

• Producto. Basta con multiplicar las mantisas, sumar los exponentes y realizar ajustefraccionario 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) · 2p−q.

• Suma y resta. Ambos numeros deben tener el mismo exponente, para ello se toma el mayorde 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. Larecogida de datos y la evacuacion de resultados se llevan a cabo mediante dispositivos variadoscomo 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 dispositivosdiferentes 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 caracterespor segundo, es decir hay 0.05 segundos de espera entre caracter y caracter. Durante estos 0.05segundos la computadora puede realizar miles de operaciones. Sin embargo otros dispositivosadmiten una velocidad mayor, como por ejemplo los discos y las impresoras. La computadoraha de adecuar sus operaciones al ritmo de transmision de datos.

Tıpicamente, los perifericos se conectan a la computadora mediante circuitos que realizan lasadaptaciones necesarias (niveles de tension, formato de la informacion, etc.). Esta es la situacionmostrada en la figura 4.12. En el desarrollo del capıtulo se van a describir brevemente algunosperifericos, para pasar posteriormente al problema de la comunicacion entre estos y la UCP.

Page 17: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 53

Teclado Monitor ImpresoraDisco

vídeo

Adaptador

paraleloAdaptadorAdaptadorAdaptador

Teclado unidad de disco

UCP RAM ROM

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 desdeel 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. Secompone de pulsadores electromecanicos que mandan un codigo identificador a un espaciode almacenamiento temporal que la computadora lee y vacıa periodicamente. Las teclasque incluye son:

• Letras, numeros y signos de puntuacion. Esta parte del teclado se asemeja al de unamaquina de escribir convencional.

• Tecla INTRO. Tiene dos funciones: en primer lugar permite pasar a la siguiente lıneaen la escritura. Ademas, en programas de uso interactivo sirve para dar entrada a lainformacion tecleada anteriormente de forma que pueda ser procesada. Por ejemplo,despues de introducir una orden hay que pulsar esta tecla, para que la computadoraejecute la orden. En algunos teclados aparece el sımbolo ←

|, o la palabra RETURN oENTER.

• Teclas de funcion, Numeradas desde la F1 a la F12 sirven para realizar ordenes dentrode ciertos programas. No tienen un significado definido, sino que cada programa lesasigna una funcion, lo cual permite ahorrar tiempo de escritura. Por ejemplo, enalgunos 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 unteclado numerico compuesto por los numeros, el punto decimal y otras, en la partederecha del teclado. De esta forma se agiliza la escritura de grandes cantidades dedatos.

• 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 letraen mayusculas o del signo superior de los dos que aparecen encima en la tecla.

3En algunos teclados aparece como Shift, en otros como una flecha vertical ⇑.

Page 18: Estructura de la computadora digital

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 simultaneamentela 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 delas teclas de funcion. Ademas sirve para generar los sımbolos de la tabla ASCIImanteniendo la tecla pulsada mientras se introduce el codigo correspondienteen decimal. En muchas aplicaciones esta tecla tiene significado especial. Porejemplo, en los entornos de ventana, sirve para activar funciones dentro de unmenu tecleando ALT+inicial opcion del menu.

– Tecla ALT GR. Permite obtener los signos |, [, ], } y { , u otros dependiendo delsistema.

– Tecla CONTROL. Pulsada conjuntamente con algunas letras produce caracteresde control. Es decir, caracteres ASCII no visibles que tienen funciones de control,como CONTROL+G, que produce el caracter ASCII numero 7 que provoca unzumbido en el altavoz del terminal. Otros caracteres utiles son CONTROL+Cy CONTROL+Z para terminar la ejecucion de programas. Usada en conjuncioncon 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 lacomputadora emite un sonido de advertencia.

Raton Es un dispositivo que sirve para posicionar un puntero grafico sobre la pantalla, deforma rapida. Este puntero permite realizar acciones pulsando los botones del raton. Losentornos 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 envıa la salida delos programas. Solıa ser del tipo TRC (tubo de rayos catodicos), 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 llamadotarjeta de vıdeo. La imagen que se presenta en pantalla esta contenida en la memoria devıdeo. 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 conel contenido de la memoria. La UCP se limita a colocar en la memoria de vıdeo la imageny el circuito de refresco la manda a la pantalla.

La cantidad de memoria de vıdeo disponible limita las posibilidades graficas. Ası, unatarjeta 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 disponiblees posible disminuir el tamano del punto y aumentar la cantidad de colores que puedenpresentarse a un mismo tiempo. De este modo las imagenes resultan mejor definidas comoen la figura 4.13 a la derecha. La capacidad de la tarjeta de vıdeo se indica por los puntoshorizontales y verticales y la cantidad de colores disponibles.

Impresora Es un dispositivo que permite reproducir en papel los dibujos o textos realizadosen una computadora. Hay muchos tipos distintos, dependiendo de la tecnica usada para

Page 19: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 55

Figura 4.13: Imagenes proporcionadas por dos tarjetas de vıdeo distintas. A la izquierda unaimagen de 201 × 129 puntos; a la derecha una imagen de 402 × 258 puntos, ambas en blanco ynegro.

impregnar el papel. Las mas usadas actualmente son las impresoras de chorro de tinta ylas laser.

La tinta en una impresora de chorro o inyeccion es lanzada gota a gota sobre el papelformando los caracteres o dibujos. Un mecanismo especial va soltando la tinta (o tintasde diversos colores). Las gotas son dirigidas mediante campos electricos para que lleguenal lugar indicado sobre el papel.

La impresora laser permite copiar paginas enteras de una vez. Se basan en un tamborcargado electrostaticamente, que al ser expuesto a un rayo laser se descarga en algunaszonas. La tinta en polvo impregna luego esas zonas del tambor. Al pasar cerca del papelcargado opuestamente al tambor la tinta se adhiere al papel. Finalmente se aplica calorpara que la tinta en polvo funda sobre el papel. Debido a que el laser es muy fino, lacalidad 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 mediantemenus, por lo que todo lo que uno debe saber es la marca y modelo de la impresora quetiene conectada. Entre los muchos lenguajes se pueden destacar los siguentes: PCL 1 aPCL 5 de Hewlett-Packard y PostScript o lenguaje de descripcion de paginas a base deinstrucciones 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 comoEthernet u otras.

Digitalizador de imagenes Se usan para obtener una version digital de imagenes sobre elpapel. 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 yTIFF.

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 unperiodico y lo que se desea es el texto contenido en dicha pagina. A partir de la imagense pueden usar programas de reconocimiento de caracteres (conocidos como OCR) paraobtener el texto en un archivo. Los programas de reconocimiento de caracteres suelenfuncionar solo con letra de imprenta.

Discos magneticos Los dispositivos de almacenamiento masivo permiten guardar grandes can-

Page 20: Estructura de la computadora digital

56 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Pista Cabezas

Figura 4.14: Discos magneticos para almacenamiento de datos.

objetivo

detector

(a) (b)

plástico

etiqueta

datos

00100010000100000100

bits modulados

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 soportemagnetico como el disco duro, las cintas magneticas y los discos flexibles hoy ya casidesaparecidos.

Los discos duros estan fijos en el interior de la computadora. Su construccion les confieremayor rapidez y capacidad. Actualmente los discos duros pueden tener capacidades demiles de Megacaracteres. En la parte derecha de la figura 4.14 se muestra un diagramasimplificado 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). Lainformacion se guarda en binario en forma de agujeros o huecos microscopicos en el metalinterior del disco. Mediante un rayo laser se puede obtener una senal electrica con unvoltaje alto o bajo dependiendo del paso de depresiones bajo el laser a medida que el discogira.

El CD-ROM es casi identico a los discos compactos para audio que existıan 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 esnecesaria 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 seconsigue un medio menos sensible que los discos flexibles. El disco tiene los datos grabadosen una unica pista espiral. La lectura sobre la pista es a velocidad constante, por lo queel disco gira a distintas velocidades segun el tramo leido. Ver figura 4.15 (a). Los datosse modulan siguiendo la regla ”8 en 14”, que usa 14 bits para codificar cada caracter. Seincluye un codigo de deteccion de errores de tipo CRC. La figura 4.15 (b) muestra la formaen que los bits quedan grabados en el disco.

Dentro de los discos opticos hay varias clases: hay discos que solo admiten lectura, discosque se pueden grabar una sola vez desde el equipo personal y discos que admiten serregrabados varias veces.

Page 21: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 57

C D

BA A B

C D

Figura 4.16: Conexion de cuatro modulos punto a punto (izquierda) y mediante una lınea(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 modelosimplificado de computadora capaz de ejemplificar las funciones basicas de las computadorasreales. 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 lacomputadora.

4.5.1 Enlaces

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

La conexion de los distintos elementos de la computadora podrıa realizarse de muchas formas.Supongase, a modo de ejemplo, que se han de conectar entre sı cuatro dispositivos digitales conel fin de efectuar entre ellos transferencias de informacion (ver figura 4.16). Si se enlazan todoscon todos, son necesarios 6 enlaces. Esto implica que hay 6 lıneas de conexion bidireccionalesque hay que cablear, soldar, comprobar, etc. En general para conectar n dispositivos con lıneasbidireccionales son necesarios n(n−1)

2 conexiones; lo cual tiende a un numero prohibitivo a medidaque n aumenta. Por otro lado, si se restringe en cada momento la comunicacion a un dispositivoque emite, constituyendo la fuente de informacion, podrıan conectarse todos a una sola lınea,de forma que mientras la fuente de informacion ”habla”, los demas permanecen ”a la escucha”,recogiendo la informacion transmitida. Esta lınea de transmision es a menudo llamada bus. Enla parte derecha de la figura 4.16 se ha representado esta forma de conexion. La comunicacionmediante una lınea 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.

Page 22: Estructura de la computadora digital

58 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

enlace

gobierno

información información

gobierno

enlace

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 cadamomento, el tiempo necesario para transmitir un volumen de informacion dado es mayorque con conexiones directas.

• Las comunicaciones se han de organizar de acuerdo a ciertas reglas, para evitar que masde un modulo hable a la vez.

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

Por otro lado, el paso de informacion desde los modulos hacia el enlace se ha de controlarpues no puede producirse en cualquier momento, de otro modo podrıan aparecer colisiones demensajes si dos modulos transmiten al mismo tiempo. Una posible solucion para controlar elacceso a la lınea por parte de un dispositivo es el uso de una puerta AND triestado por cadahilo que parte del dispositivo hacia el camino. La puerta triestado permite quedar a la escuchay 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 accesoal enlace se llama de gobierno. La puerta triestado permite que la salida fluctue librementecuando la senal de gobierno vale cero. De este modo, el enlace transporta el valor indicadopor algun otro elemento. Por contra, cuando la senal de gobierno toma el valor uno la puertatriestado 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 accesoal enlace a traves de la puerta triestado. El enlace se simplifica en el dibujo como si fuese unalınea 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

Page 23: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 59

SPEP

INCP

P

DCO MD

ET ST

S

MEM

LECM

ESCM

TEE SE

EA

SA

SUMAMULT

EO

A

MEI

SD

ES

I

S

LEETESCP

E

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 porenlaces. Podemos imaginar que los enlaces son autopistas de varios carriles por las cuales puedenmoverse 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 setransmite puede ser de diversas clases: datos y resultados de operaciones, instruccionesdel programa y direcciones de memoria.

2. Otro enlace S que une la unidad de control y el selector de posiciones de memoria. Por else 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 lasoperaciones.

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 lınea M.

• P. Contador de pasos de programa. Indica la posicion dentro de la memoria de lainstruccion a ejecutar.

• I. Registro de instruccion. Guarda en cada momento la instruccion que se ejecuta enese paso.

• E. Registro de comunicacion con el exterior. Permite tomar datos del teclado o llevarlosa la pantalla. Es una forma simple e idealizada de la unidad de control que se hadescrito anteriormente.

Page 24: Estructura de la computadora digital

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 lamemoria se almacenan tanto datos y resultados como el programa a ejecutar. El funcionamientodel 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 direccionde la unidad de control. Esta debe obtener de la memoria la instruccion a ejecutar, por lo quenecesita 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 secuencialmenteen 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 unidadcada 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, dondese ejecuta activando las senales de gobierno necesarias. Esta tarea la realiza un modulo de launidad de control que aun no se ha mostrado. Finalmente se incrementa P para poder ejecutarla 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 enbinario 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 quedebe realizarse. Las instrucciones como la suma, la resta, etc. tienen cada una un codigodistinto.

2. El modo de direccionamiento (MD), que indica la forma en que se ha de interpretar ladireccion 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, segunel modo de direccionamiento y la instruccion de que se trate. En un caso simple como lasuma directa, esta direccion es el lugar de la memoria donde reside el dato que se ha desumar.

Para aclarar las ideas, considerese la instruccion sumar al acumulador el contenido de laposicion de memoria 8. Supongase que la codificacion de esta instruccion es:

CO MD D0101 0 00000001000

Por lo que el registro I, en el momento de ejecutarse esta instruccion contiene el valor0101000000001000. 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, ladireccion 00000001000 es el numero 8 codificado en binario, y se interpreta como el lugar dondereside el numero que se ha de sumar al registro acumulador.

Page 25: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 61

A SP

II

S

SP

I

A SP

I

P

8

17

3

7

8

8

173

3

8

co | md | 8co | md | 8

co | md | 8co | md | 8

178 3

co | md | 817co | md | 8

17

8

17 co | md | 8

3

co | md | 8

17

B)

A

A

A)

D)C)

4 4 17

18

8

34

7

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 lainstruccion, busqueda del operando, ejecucion de la instruccion y preparacion de la instruccionsiguiente. 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 unainstruccion 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 posicionesde 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 sehalla en memoria en la direccion 17 por lo que el contenido de P es precisamente 17. Se observatambien el direccionamiento de la memoria logrado con el registro S. Mediante una lectura sepasa la instruccion al registro I.

La parte B) corresponde a la busqueda del operando; este es el valor contenido en la direccionde 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 alregistro de operando de la UAL. Despues se efectua la suma del acumulador que contenıa elnumero 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 deinformacion entre registros y mediante la transformacion de esta en la UAL. La tarea de launidad de control es precisamente coordinar tales transferencias.

Page 26: Estructura de la computadora digital

62 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

Transferencias entre registros

El funcionamiento de la computadora se puede describir mediante transferencias de informacionentre registros. Para verificar esta afirmacion se va a explicar a continuacion de forma masdetallada la ejecucion de la instruccion del ejemplo anterior, sumar al acumulador un datoalmacenado en una direccion de memoria dada.

1. Busqueda de la instruccion: consiste en extraer la instruccion que se va a ejecutar dela memoria. El registro P contiene la direccion de la instruccion a ejecutar, por lo quehabra de leerse la direccion de memoria indicada por P. Esta fase tiene tres operacioneselementales:

(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 sersustituido 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 (queidentifica a la suma en este ejemplo). El modo de direccionamiento es directo, por lo tantola direccion que figura en D se interpreta como la del operando que hay que sumar alacumulador. 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 escopiado 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. Estopuede escribirse como: (T)+(A) → A, puesto que, como ya se ha dicho, el acumuladorguarda 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 depasos del programa: (P)+1 → P.

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

La activacion de las senales de gobierno se realiza de forma automatica durante la ejecuciondel programa. Es una tarea que corre a cargo de la unidad de control. Para no enmaranar eldibujo de la figura 4.18 no se muestra la forma en la que la UC activa dichas senales. Bastedecir que existe un modulo o bloque adicional que maneja todas las senales de control de formaparecida a como el centro de control de trafico puede manejar los semaforos de una ciudad.

Page 27: Estructura de la computadora digital

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, SUMA, EA

4 (P)+1 → P INCP

Tabla 4.1: Fases, transferencias entre registros y senales de gobierno correspondientes a lainstruccion suma.

La instruccion de salto

Se ha indicado que el contador de pasos de programa se incrementa en una unidad cada vez quese ejecuta una instruccion, de forma que pase a senalar la direccion de la siguiente instruccionen la memoria. Esta forma de proceder es adecuada para muchas situaciones, pero esta muyfalta de versatilidad. El llamado salto incondicional permite romper el orden de ejecucion delas instrucciones, de forma que, tras la instruccion de salto situada en la direccion d, se pasaa ejecutar otra, situada en una direccion distinta de d + 1. Para ello es necesario y suficientemodificar 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 lamemoria. 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, quese 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 depasos: (D) → P.

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

Saltos condicionales

La instruccion de salto condicional permite realizar el salto de una instruccion a otra dependiendode una condicion, por ejemplo si el acumulador es positivo. De este modo se puede obtener unprograma que a partir de un punto realiza unas instrucciones u otras dependiendo de que elacumulador sea positivo o no. Esto es realmente importante (como se vera mas adelante) pararealizar las llamadas bifurcaciones.

Page 28: Estructura de la computadora digital

64 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

MDCO I

SP LEC

M

. . . EO señales de gobierno

reloj

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 aejecutar, enviando las senales de control correspondientes a la memoria, la UAL, etc. de maneraque dichas instrucciones se ejecuten.

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

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

La ejecucion de una instruccion conlleva la activacion de ciertas senales de gobierno, quereciben el nombre de microordenes. Las senales de gobierno evolucionan en el tiempo parallevar a cabo las instrucciones del programa. Como ejemplo se puede recordar ahora el caso dela 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 representaciongrafica de la evolucion temporal de las senales de gobierno. En la figura 4.21 se muestra elcronograma correspondiente a la instruccion suma. El eje horizontal corresponde a la escalade tiempos. Ademas, se ha superpuesto en la figura la senal de reloj, que consiste en pulsosregularmente espaciados. El reloj es muy importante para el funcionamiento de la unidad decontrol, puesto que se requiere que las microordenes se sucedan en secuencia y que exista unasincronizacion entre acontecimientos como se puede ver en el cronograma.

Volviendo al cronograma hay que indicar el eje vertical indica el voltaje de la senal cuyonombre 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 conlas fases en las que se ha dividido la ejecucion de la instruccion. Las cuatro fases de reloj seagrupan 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 realizacionde la operacion, junto con la preparacion de la instruccion siguiente.

Page 29: Estructura de la computadora digital

c© MRA & JAAR 2009 DISA. ESI. US. 65

1 2 3 4

reloj

SP

ES

ST

EI

SD

EO

SUMA

EA

INCP

LECM

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 lotanto, cada instruccion tiene un cronograma. El cronograma de cada instruccion es trazado porel disenador de la computadora de acuerdo con las caracterısticas del mismo, como son: numerode registros de que se dispone, complejidad de la UAL, etc. Por lo tanto, cada equipo (cadamicroprocesador) 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 cronogramasde las instrucciones.

La tarea que desarrolla la unidad de control consiste en abrir y cerrar oportunamente elpaso de senales por los enlaces. Mediante circuitos logicos y biestables es posible disenar unamaquina 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 degobierno distintas, por lo que el circuito completo es bastante complicado. Mas aun, a medidaque aumenta el conjunto de instrucciones de la maquina, aumenta el numero de operaciones quedebe realizar, con lo que aumenta su complejidad dificultando el diseno.

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

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 dospara representar los numeros enteros. Indique cual sera el contenido del acumulador trasproporcionarle el operando 0000000000111001, activar la senal CARGA, proporcionar eloperando 1111111110110111 y activar la senal SUMA.

Page 30: Estructura de la computadora digital

66 TEMA 4. ESTRUCTURA DE LA COMPUTADORA DIGITAL

3. Dado el numero A|10 = a2a1a0|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 eneste tema al ejecutarse la instruccion de resta al contenido del acumulador. Las senales degobierno han de escribirse en el orden cronologico correcto correspondiente cada una delas 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.