Sunteți pe pagina 1din 55

368

LOGICA

DE

(a) r,:

(b)

(c)

T 2 :

T 3 :

TRASFERENCIA

F*- A

f\

B

G^C\JD

E*-E

ENTRE

REGISTROS

CAP. 8

F*- A f\ B G^C\JD E*-E ENTRE REGISTROS C A P . 8 C + D:

C

+

D:

F<-A

+

B

Especifique la trasferencia en serie dibujada en la Figura 7-8 en forma sim bobea. Sea S la función de control de desplazamiento. Asuma que S se habi lita por un período de cuatro pulsos.

Muestre los elementos y materiales que configuran la siguiente proposición Incluya las compuertas lógicas para la función de control.

xy'T 0 +

T¡ + x'yT 2 :

A *— A

+

B

. U n sistema digital tiene tres registros: AR , B R y PR . Los tres flip-flops su- ministran las funciones de control del sistema. S es un flip-flop el cual es habilitado por una señal externa para comenzar la operación del sistema; F y R se usan para dar secuencia a las microoperaciones. Un cuarto flip-flop,' D , se pone a 1 por el sistema digita l una vez se complete la operación. La función del sistema se describe por medio de las siguientes operaciones de trasferencia entre registros:

-15.

S:

PR^O,

F^O ,

s i

S*-0,

(AR = 0 )

R:

PR<-PR

+

BR,

D+-0,

F <-

1

entonces (D^l ) por tanto ( R — 1 )

AR<-AR-l,

R<-0,

F«-l

¿Cuá l es la función que ejecuta el sistema?

Ejecute las operaciones aritmética s ( + 42) + ( - 13) y (-42 ) -(-13 ) e n bi - nario usando:

(a)

Representación en signo-complemento de 1.

(b)

Representación en signo-complemento de 2.

Los números binarios listados a continuación tienen un bit de signo en la posición de extrema izquierda y si son negativos se representan en comple- mento de 2. Realice las operaciones aritmética s indicadas, usando los algo- ritmos de suma y resta enunciados en el texto. Compruebe sus resultados haciendo la aritmétic a con números decimales equivalentes.

(a)

001110 + 110010

(b)

010101 + 000011

(c) 111001 + 001010

(d) 101011 + 111000

(e)

010101

000111

(f)

001010

111001

(g) 111001

(h) 101011

001010

100110

8-17.

PROBLEMA S

369

¿Cuá l es el rango de los números que pueden ser acomodados en un registro de 16 bits cuando los números binarios se representan en:

(a)

Signo-magnitud?

(b)

Signo-complemento de 2?

Dé las respuestas en representación decimal equivalente.

8-18. Ejecute las operaciones aritmética s listadas a continuación con números binarios en representación de signo-complemento de 2 y aplicando el algo- ritmo enunciado en el texto. Use ocho bits para acomodar cada número con- juntamente con su signo:

(1 )

( + 65) + ( + 78)

(4) ( + 65) + (-78 )

(2)

(-65) + (-78 )

(5) (-65 ) + ( + 78)

(3)

( + 35) + ( + 40)

(6) (-35 ) + (-40 )

Inspeccione la respuesta de 8 bits en cada caso y:

(a)

Determine si hay una sobrecapacidad.

(b)

Liste los arrastres (carries) que entran o salen de la posición correspon- diente al bit de signo.

(c)

Determine el signo del resultado (el octavo bit).

(d)

Enuncie la relación entre (a) y (b).

(e)

Enuncie la relación entre (a) y (c).

8-19. (a) Muestre que el contenido de un registro de 8 bits que almacena los nú- meros + 36 y -3 6 en binario y en tres representaciones diferentes, es decir, signo-magnitud, signo-complemento de 1 y signo-complemento de 2.'

(b) Muestre el contenido del registro después de que los números se despla- cen aritméticament e una posición a la derecha (en todas las tres repre- sentaciones).

(c) Repita (b) para un desplazamiento a la izquierda.

8-20. Dos números en representación de signo-complemento de 2 se suman de la manera mostrada en la Figura 8-10 y la suma se trasfiere al registro A. Mues- tre que el desplazamiento aritmético a la derecha simbolizado por:

A<-s\irA,

A„^A n @V

producirá siempre la suma correcta dividida por 2 hubiese o no ocurrido una sobrecapacidad en la suma original.

8-21. Represente + 149 y - 178 en BD C usando la representació n de signo-comple- mento de 10. Use un bi t para el signo. Sume los dos números BDC , incluyendo el bit de signo e interprete la respuesta obtenida.

8-22.

Los registros para sumar y restar números decimales representados en signo- complemento de 10 es similar a los algoritmos para los números binarios re- presentados en signo-complemento de 2. (a) Enuncie los algoritmos para la adición y sustracción con representación en signo-complemento de 10. Un signo positivo se representa por un 0 y un sig o negativo por un 9 en la posición más significativa.

370

LOGICA

DE

TRASFERENCIA

ENTRE

REGISTROS

(b)

Aplique

(-

los

algoritmos

638)-(185).

para

los

conjuntos

decimales

(-638) + (785)

v

8-23. Un número binario de punto flotante de 36 bits tiene 8 bits má s el signo para el exponente. El coeficiente se asume como una fracción normalizada. Los números en el coeficiente y exponente están en la forma de signo-magnitud. ¿Cuále s son las mayores y menores cantidades positivas que pueden ser acomodadas, excluyendo el cero?

8-24. Un registro de 30 bits almacena un númer o decimal de punto flotante repre- sentado en BDC . Los coeficientes ocupan 21 bits del registro y se asume co- mo un entero normalizado. Los números en el coeficiente y exponente se asu- men representados en forma de signo-magnitud. ¿.Cuáles son las cantidades mayores y menores que pueden ser acomodadas excluyendo el cero?

8-25.

Represente el número ( + 31,5),,, con un coeficiente entero normalizado de 13 bits y un exponente de 7 bits como:

(a)

Un número binario (asuma base de 2).

ib/

Un número octal binario codificado (asuma base de 8).

(c i

Un numero hexadecimal binario codificado (asuma base de 16).

8-26.

El registro A almacena la informació n binaria 11011001. Determine el operan- do B y la microoperacion lógica que se va a realizar entre A y B para cambiar

el valor de A

a:

(a)

01101101

ib )

11111101

8-27. Determine la operació n lógic a que borrará selectivamente los bits del regis- tro A en aquellas posiciones donde hay 1 en los correspondientes bits del registro B.

8-28. Un computador digital tiene una unidad de memoria con 24 bits por palabra. El conjunto de instrucciones consiste de 190 operaciones diferentes. Cad a instrucción se almacena en una palabra de la memoria y consiste de una par- te de código de operación y una parte de dirección.

(a)

¿Cuántos bits se necesitan para el código de operación?

(b)

¿Cuántos bits se dejan para la parte de dirección de la instrucción?

(c)

¿Cuánta s palabras pueden acomodarse en la unidad de memoria?

'd) ¿Cuá l es el mayor númer o binario de punto fijo con signo que puede ser almacenado en una palabra de memoria?

8-29.

Especifique un formato de instrucció n para un computador que realice la si- guiente operación:

A

*

M\dirección]

+

R

donde R puede ser cualquiera de los ocho registros posibles en el procesador.

8-30.

Asum a que la unidad de memoria de la Figura 8-14 tiene 65,536 palabras de 8 bits cada una.

PROBLEMAS

377

(a)

¿Cuá l debería ser el númer o de bits de los cinco primeros registros 1 tados en la Tabla 8-4?

(b)

¿Cuánta s palabras de memoria se requieren para almacenar la instn

ción:

LDA

ADRS

como se especifica en la Tabl a 8-5?

(c) Liste

la secuencia

de una

de

microoperaciones

para ejecutar la ins-

puede ser usado para almacenar temporalmente

necesarias

trucción . El registro R

parte

dirección.

8-31

Un a instrucció n inmediata para un simple computador definida en la Figura 8-14 tiene un códig o de operació n 00000100. La instrucció n se especifica de la siguiente manera:

L

R I

OPRO

(Cargar

OPRDafi )

R-

OPRO

Liste la secuencia de microoperaciones para ejecutar esta instrucción.

8-32

Repita el diseñ o del computador sencillo presentado en la Figura 8-12. Rem - place las instrucciones en la Tabl a 8-5 por las siguientes instrucciones:

Código

de operación

Mnemònico

Descripción

Función

00000001

AD D

R

Sumar directo a A

A

<- A

+

R

00000010

AD I

OPR D

Sumar el operando a A

A <- A + OPR D

00000011

AD

A

ADR S

Sumar R a A

A <- A + M[ADRS ]

8-33 Dibuje un diagrama de bloque mostrando la configuració n de component del sistema especificado en el Problema 8-14. Incluya una entrada de comie, zo para poner a 1 el flip-flop S y una salida de hecho (done) para el flip-ílop 1

Diseño

lógico

de

procesadores

9-1

INTRODUCCION

Una unidad procesadora es aquella parte de un sistema digital o un com-

putador digital que configura las

por un numero de registros y de funciones digitales que conforman micro- operaciones aritméticas , lógicas, de desplazamiento y trasferencia. La unidad de proceso se llama una unidad central de proceso o CPU , cuando se combina con una unidad de control que supervisa la secuencia de micro- operaciones. Este capítulo versa sobre la organización y diseño de la uni- dad del procesador. El siguiente capítulo trata de la lógica de diseño de la unidad de control. En el Capítulo 11 se demostrará la organización y diseño de un computador CPU.

en el sistema. Est á compuesta

operaciones

El número de registros de una unidad procesadora varía desde un re- gistro procesador hasta 64 registros o más. Algunos computadores antiguos vienen con un registro procesador solamente. En algunos casos un sistema digital puede emplear un registro procesador sencillo para propósitos espe- ciales. Sin embargo, como los registros y otras funciones digitales son de bajo costo cuando se construyen con circuitos integrados, todos los compu- tadores recientes emplean un gran número de registros procesadores y canalizan la información entre ellos a travé s de buses comunes. Una operación puede ser configurada en una unidad de proceso con una microoperación sencilla o con una secuencia de microoperaciones. Por ejemplo la multiplicació n de dos número s binarios almacenados en dos re- gistros puede ser configurada con un circuito combinacional que realiza la operación por medio de compuertas. Tan pronto como las señales se propa- gan a travé s de las compuertas, el producto estar á disponible y puede ser trasfendo a un registro de destino con un pulso de reloj sencillo. Alterna- tivamente, la operación de multiplicació n puede realizarse con una secuen- cia de microoperaciones de suma y desplazamiento. El método escogido para la configuración determina la cantidad y tipo de componentes de la unidad de proceso.

372

SEC. 9-2

ORGANIZACION

DEL

PROCESADOR

373

Todos los computadores, excepto los muy grandes y rápidos, configurar, las operaciones participantes por medio de una secuencia de microopera- ciones. De esta manera, el procesador necesita tener solamente circuitos que configuren las microoperaciones básicas simples tales como sumar y desplazar. Otras operaciones, tales como multiplicación , división y aritmé - tica de punto flotante, se generan conjuntamente con la unidad de control. La unidad procesadora en sí se diseña para configurar microoperaciones básicas del tipo discutido en el Capítulo 8. La unidad de control se diseña para dar secuencia a las microoperaciones que no se incluyen en el conjun- to básico. La función digital que configura las microoperaciones con la informa- ción almacenada en los registros del procesador se llama comúnmente uni- dad básica aritmética o ALU . Para realizar una microoperación, el control canaliza la fuente de información de los registros hasta las entradas del ALU . El AL U recibe la información de los registros y realiza una operación dada de la manera especificada por el control. El resultado de la operación se trasfiere al registro de destino. Por definición, el AL U es un circuito combinacional; de manera que toda la operación de trasferencia entre re- gistros pueden realizarse durante el intervalo de un pulso de reloj. Todas las operaciones de trasferencias entre registros, incluyendo la trasferencia entre registros de una unidad procesadora típica, se realizan en un AL U común; de lo contrario, sería necesario duplicar las funciones digitales para cada registro. Las microoperaciones de desplazamiento se realizan a menudo en una unidad separada. Una unidad de desplazamiento se mues- tra por lo general separada, pero algunas veces está incluida como parte de la unidad enteramente aritmética y lógica. Un computador CPU debe manipular no solamente datos sino tambié n códigos de instrucción y direcciones que vienen de la memoria. El registro que almacena y manipula el código de operación de instrucciones se consi- dera como parte de la unidad de control. Los registros que almacenan direc- ciones son incluidos algunas veces como parte de la unidad de proceso y la información de direcciones se procesa por un AL U común. En algunos com- putadores, los registros que almacenan direcciones son conectados a un bus separado y la información de dirección se manipula con funciones digitales separadas. Este capítulo presenta varias alternativas para la organización y di- seño de una unidad de proceso. El diseño de una unidad aritmética lógica particular se lleva a cabo para mostrar el proceso de diseño usado en la formulación e implementación de una función digital común capaz de rea- lizar un gran número de microoperaciones. Otras funciones digitales con- sideradas y diseñadas en este capítulo son la unidad de desplazamiento y el registro procesador para propósitos generales, comúnmente llamado acumulador.

9-2

ORGANIZACION DEL PROCESADOR

La parte procesadora de un computador CPU se trata algunas veces como el canal de datos del CPU porque el procesador formula los canales de tras- ferencia de datos entre los registros de la unidad. Los diferentes caminos

374

DISEÑO

LOGICO

DE

PROCESADORES

CAP. 9

son controlados supuestamente por medio de compuertas que abren los ca- minos necesarios y cierran otros. Una unidad procesadora puede diseñarse para satisfacer un conjunto de canales de datos para una aplicación espe- cífica. El diseñ o de un procesador para propósito s especiales fue demostra- do en la Sección 8-9. La Figura 8-16 muestra los diferentes canales de datos para un procesador muy limitado . La abertura de los canales o caminos de datos se logra por medio de decodificadores y circuitos combinacionales que comprenden la sección de control de la unidad. En una unidad procesadora bien organizada, los canales de datos se forman por medio de buses y otras líneas comunes. Las compuertas de con- tro l que formulan los canales de datos son esencialmente multiplexores y decodificadores cuyas líneas de selección especifican el camino requerido. El proceso de información se hace mediante una función digital común cuyo canal de datos puede ser especificado por un conjunto de variables de se- lección comunes. Una unidad procesadora que tiene una organización bien estructurada puede usarse en una gran cantidad de operaciones. Si se construye dentro de un circuito integrado, se hará disponible para muchos usuarios ya que para cada uno se puede tener una aplicación diferente. En esta sección, se investigan varias alternativas para organizar una unidad procesadora para propósitos generales. Todas las organizaciones emplean un AL U común y un registro de desplazamiento. Las diferencias en las organizaciones se manifiestan principalmente en la organización de los registros y sus canales comunes al ALU .

Organización del

bus

Cuando se incluye un gran número de registros en una unidad de proceso es más eficiente conectarlos por medio de buses comunes o arreglarlos co- mo una memoria pequeña que tiene un tiempo de acceso muy rápido. Los registros se comunican entre sí no solamente por la trasferencia directa de datos sino tambié n cuando se realizan varias microoperaciones. En la Figura 9-1 se muestra una organización con bus para cuatro registros pro- cesadores. Cada registro se conecta a dos multiplexores (MUX ) para for- mar los buses de entrada A y B. Las líneas de selección de cada multiplexor seleccionan un registro para el bus particular. Los buses A y B se aplican a una unidad lógica aritmética común. La función seleccionada en el AL U determina la operación particular que se va a realizar. Las microoperacio- nes de desplazamiento se configuran en el registro de desplazamiento. El resultado de la microoperación pasa a travé s del bus de salida S hasta las entradas de todos los registros. El registro de destino que recibe la infor- mación del bus de salida se selecciona por medio de un decodificador. Cuando se habilita, este decodificador activa una de las entradas de carga del registro para suministrar un canal de trasferencia entre los datos del bus S y las entradas del registro de destino seleccionado. El bus de salida S alimenta los terminales para trasferir datos de un destino externo. Una entrada del multiplexor A o B puede recibir datos de los elementos que lo rodean cuando es necesario trasferir datos externos a la unidad de proceso.

Habilitar

Carga

Decodificador

Selección

de destino

RO

R2

R3

Selector A-

Bus S

MUX

Selección de destino RO R2 R3 Selector A- Bus S MUX Entrada de datos Selector B

Entrada

de datos

Selector B

Bus A

Bus B

Unidad aritmética

lógica (ALU)

Registro de d

ssplazamiento

-Selector de

función

«— Selector de desplazamiento

Figur a 9-1

Salida de datos

Registros procesadores y AL U conectados por medio de buses comunes

375

376

DISEÑO

LOGICO

DE

PROCESADORES

CAP. 9

La operación de los multiplexores, los buses y el decodificador de des-

tin o se explica en la Secció n 8-2 conjuntamente con la Figura 8-6. El AL U

y el registro de desplazamiento se discuten más tarde en este capítulo.

Una unidad procesadora puede tener más de cuatro registros. La cons- trucció n de un procesador con bus organizado con más registros requiere multiplexores mayores y decodificador; de otra forma sería similar a la organización presentada en la Figura 9-1. La unidad de control que supervisa el sistema de bus procesador diri - ge el flujo de información a través del AL U seleccionando los diferentes componentes de la unidad. Por ejemplo para realizar la microoperación:

R\«-

R2

+

R3

el control debe suministrar variables de selección binarias a las siguientes

entradas de selección:

1.

Selector MU X A: coloca el contenido de R2 en el bus A.

2.

Selector MU X B: coloca el contenido de R3 en el bus B.

3.

Selector de función ALU : genera la operación aritmétic a A + B.

4.

Selector de desplazamiento: para la trasferencia directa de la salida

del AL U al bus de

salida S (ningún desplazamiento).

5.

Selector de destino del decodificador: trasfíere el contenido del bus

S

a

Rl.

Las cinco variables selectivas de control deben ser generadas simultá - neamente y deben estar disponibles durante un intervalo de pulso de reloj común . La informació n binaria de los dos registros fuente se propaga a tra - vés de las compuertas combinacionales en los multiplexores, el AL U y el registro de desplazamiento hasta el bus de salida y a las entradas del re- gistro de destino durante un intervalo de pulso de reloj, la información bi- naria en el bus de salida se trasfíere al Rl cuando se presenta el siguiente pulso de reloj. Para lograr una rápida respuesta de tiempo, se construye el AL U con circuitos generadores de arrastre posterior y el registro de despla- zamiento se configura con compuertas combinacionales. Cuando se encapsula en un CI, la unidad procesadora se llama algunas veces registro y unidad lógica aritmética o RAL U (register and arithmetic logic unit). Algunos fabricantes lo llaman un microprocesador de un grupo de bits. El prefijo micro se refiere a un tamaño físico muy pequeño del cir- cuito integrado en el cual se incluye el procesador. El grupo de bits se re- fiere al hecho de que el procesador puede ser expandido a una unidad de proceso con un gran número de bits usando un grupo de CI . Por ejemplo un microprocesador de un grupo de 4 bits contiene registros y AL U para manipular datos de 4 bits. Dos CI de éstos pueden ser combinados para construir una unidad procesadora de 8 bits. Para un procesador de 16 bits, es necesario usar cuatro circuitos integrados y conectarlos en cascada El arrastre de salida de un AL U se conecta al arrastre de entrada del siguien- te AL U de mayor orden y la salida en serie y líneas de entrada de los re-

SEC. 9-2

ORGANIZACION

DEL

PROCESADOR

377

gistros de desplazamiento se conectan tambié n en cascada. Un microproce- sador de un grupo de bits debe distinguirse de otro tipo de CI llamado microprocesador. El primero es una unidad procesadora mientras que el microprocesador se refiere a un computador CPU completo encapsulado en una pastilla de CI . Los microprocesadores y su equipo asociado se dis- cutirá n en el Capítulo 12.

Memoria

"scratchpad"

o

memoria

tapón

Los registros de una unidad procesadora pueden ser metidos dentro de una unidad pequeña de memoria. Cuando estos se incluyen en la unidad de proceso, la memoria pequeña se llama memoria tapón o de borrado. El uso de una pequeña memoria es una alternativa muy económica para conectar los registros procesadores a travé s del sistema de bus. La diferencia entre dos sistemas es la manera en la cual la informació n se selecciona para la trasferencia al ALU . En el sistema de bus, la trasferencia de información se selecciona por medio de los multiplexores que forman los buses. Por otra parte, un solo registro dentro de un grupo de registros organizados como una pequeñ a memoria puede ser seleccionado por medio de una dirección de la unidad de memoria. Un registro de memoria puede funcionar justamente como cualquier otro registro procesador ya que su única función es alma- cenar informació n binaria para ser procesada en el ALU . Una memoria tapó n o de borrado debe distinguirse de la memoria prin- cipal del computador. En contraste con la memoria principal, la cual alma- cena instrucciones y datos, una pequeña memoria de una unidad de proceso es meramente una alternativa para conectar un número de registros pro- cesadores por medio de un camino de trasferencia común. La información almacenada en una memoria tapó n o de borrado debe venir normalmente de la memoria principal por medio de instrucciones en el programa. Considérese, por ejemplo, una unidad procesadora que emplea ocho re- gistros de 16 bits cada uno. Los registros pueden incluirse dentro de una memoria pequeña de ocho palabras de 16 bits cada una, o un RA M de 8 x 16. Las ocho palabras de memoria pueden designarse como RO hasta Rl, corres- pondiendo a las direcciones 0 hasta 7 y constituyen los registros para el procesador. Una unidad procesadora que usa una memoria tapó n o de borrado se muestra en la Figura 9-2. Un registro fuente se selecciona de la memoria y se carga al registro A. Un segundo registro fuente se selecciona de la me- moria y se carga al registro B. La selección se hace especificando las di- recciones de palabra correspondientes y activando la entrada de lectura de la memoria. La información de A y B se manipula en el AL U y en el re- gistro de desplazamiento. El resultado de la operación se trasfiere a un registro de memoria especificando su dirección de palabra y activando el control de entrada de escritura en memoria. El multiplexor a la entrada de la memoria puede seleccionar datos de entrada de una fuente externa. Asúmase que la memoria tiene ocho palabras, de manera que una di- rección puede especificarse con tres bits. Para realizar la operación:

Rl

<-

R2

+

R3

378

DISEÑO

LOGICO

DE

PROCESADORES

CAP. 9

el control debe suministrar las variables de selección binarias para realizar la siguiente secuencia de tres microoperaciones:

T x :

T 2 : 5 <-M[0il ]

M[00l]<-A

T 3 :

A<-M[0\0]

B

leer R2 al registro A

leer R3 al registro B

ejecutar una operación en el AL U y trasferir el resultado a Rl

La funció n de contro l 7\ debe suministra r la direcció n 010 a la memoria y activar las entradas A de lectura y carga. La función de control T 2 debe alimentar una dirección 011 a la memoria y activar las entradas B de lec- tura y carga. La función de control debe suministrar el código de fun- ción al AL U y al registro de desplazamiento para ejecutar la operación de suma (sin desplazamiento), aplicar una dirección 001 a la memoria, selec- cionar la salida del registro de desplazamiento para el MU X y activar la entrada de escritura de memoria. El símbolo M [xxx] designa una pala- bra de memoria (o registro) especificada por una dirección dada en el nú- mero binario xxx.

Entrada

de datos

 

MUX

Selección

Dirección

- Lectura

 

Memoria tapón o de borrado

"Escritura

Salida

de datos

Carga

Carga

Selección

 

ALU

de función

Shifter

Selección de

_

 

desplazamiento

Figur a 9-2

Unidad de proceso que emplea una memoria tapó n

SEC. 9-2

ORGANIZACION

DEL

PROCESADOR

379

La razó n de una secuencia de tres microoperaciones en vez de una. como en un procesador con organización de bus, se debe a la limitación de la unidad de memoria. Como la unidad de memoria tiene solamente un gru- po de terminales de direcció n y se va a comunicar con dos registros fuente, se necesitan dos vías de acceso a la memoria para leer la información de la fuente. La tercera microoperación es necesaria para direccionar el registro de destino. Si el registro de destino es el mismo que el segundo registro fuente, el control podría activar la entrada de lectura, para extraer la in - formación de la segunda fuente, seguida de una señal de escritura para activar la trasferencia de destino y sin tener que cambiar el valor de la dirección. Algunos procesadores emplean una memoria de 2 puertos para poder vencer la demora causada al leer dos registros fuentes. Una memoria de 2 puertos tiene dos línea s de direcció n separadas para seleccionar las pala- bras de memoria simultáneamente . De esta manera pueden leerse los dos registros fuente al mismo tiempo. Si el registro de destino es igual a uno de los registros fuente, entonces toda la microoperación puede hacerse du- rante el período de un pulso de reloj. La organización de una unidad procesadora con una memoria de 2 puertos se muestra en la Figura 9-3.* La memoria tiene dos grupos de di - recciones, una para el puerto A y otra para el puerto B. Los datos de cual- quier palabra en la memoria se leen en registro A especificando una direc- ción A. De igual manera cualquier palabra de memoria se lee al registro B especificando una dirección B. La misma dirección puede ser aplicada a la

Dirección A

Habilitación

escritura

(WE)

Pulso de reloj (CP)

CP

n

r

Memoria tapón o de borrado

WE

ME

AL U y registro de desplazamiento

Dirección

B

Habilitar

memoria (ME)

Figur a 9-3

Unidad de proceso con una memoria de 2 puertos

*Esta organización es similar al microprocesador de un grupo de bits, tipo 2901 .

380

DISEÑO

LOGICO

DE

PROCESADORES

CAP. 9

dirección A y a la dirección B, en cuyo caso aparecerá una palabra idéntic a en ambos registros A y B. Cuando se habilitan por medio del terminal ha- bilitador de memoria (ME= memory enable), se pueden escribir nuevos da- tos a la palabra especificada por la dirección B. Así las direcciones de A y B especifican dos registros fuente simultáneament e y la direcció n B especi- fica siempre el registro de destino. La Figura 9-3 no muestra un camino para datos externos de entrada y salida, pero pueden ser incluidos como en las organizaciones anteriores. Los registros A y B son, en efecto, retenedores que aceptan nueva in - formación siempre y cuando el pulso de reloj CP esté en el estado 1; cuando CP vaya a 0, los retenedores se inhabilitan y retienen la información que estaba almacenada cuando CP era un 1. Esto elimina cualquier condición de congestión que puede ocurrir cuando se está escribiendo la nueva infor- mación en la memoria. La entrada del reloj controla las operaciones de lectura y escritura en memoria por medio del terminal de habilitación de escritura (write enable). Este controla las trasferencias a los retenedores

A

y B. La forma de onda de un intervalo de un pulso de reloj se muestra en

el

diagrama. Cuando el terminal de reloj es 1, los retenedores A y £ se abren y acep-

tan la información que viene de la memoria. El terminal WE está también

en el estado 1. Este habilita la operación de escritura y de lectura en la memoria. Así cuando CP = 1 las palabras seleccionadas por las direcciones

A y B se leen de la memoria y se colocan en los registros A y B respectiva-

mente. La operación en el AL U se realiza con los datos almacenados en A y B. Cuando el terminal del reloj va a 0, los retenedores se cierran y se retienen los último s datos introducidos. Si el terminal de ME está habili- tado cuando WE = 0, el resultado de la microoperación se escribe en la palabra de memoria definida por la dirección B. Así una microoperación:

R\<~R\

+

R2

puede hacerse dentro de un período de un pulso de reloj. El registro de memoria Rl debe especificarse con la dirección B y R2 con la dirección A.

Registro

acumulador

Algunas unidades procesadoras separan un registro de otros y se le llama

registro acumulador, abreviado AC o registro A. El nombre de este registro

se deriva del proceso de adición aritmétic a que se encuentra en los compu-

tadores digitales. El proceso de sumar muchos números se lleva a cabo al-

macenando inicialmente esos números en otros registros procesadores o

en la unidad de memoria del computador y borrando el acumulador a 0. Los

números se agregan al acumulador uno a uno en orden consecutivo. El pri- mer número se agrega a 0 y la suma se trasfiere al acumulador. El segundo

número se agrega a los contenidos del acumulador y la suma formada de nuevo remplaza su valor previo. Este proceso se continúa hasta que todos los números se agregan y se forma la suma total. Así, el registro "acumula"

la suma paso a paso haciendo sumas secuenciales entre un número nuevo

y la suma acumulada previamente.

SEC. 9-2

ORGANIZACION

DEL

PROCESADOR

38

El registro acumulador en una unidad de proceso es un registro muln - propósito capaz de realizar no solamente la microoperación de suma sino tambié n otras microoperaciones de la misma forma. De hecho, las com- puertas asociadas con un registro acumulador suministran todas las fun- ciones digitales encontradas en un ALU . La Figura 9-4 muestra el diagrama de bloque de una unidad procesa- dora que emplea un registro acumulador. El registro A se distingue de todos los demás registros procesadores. En algunos casos toda la unidad

procesadora es justamente el registro acumulador

registro en sí puede funcionar como un registro de desplazamiento para suministrar las microoperaciones de desplazamiento. La entrada B sumi- nistra una fuente de información externa. Esta información puede provenir de otros registros procesadores o directamente de la memoria principal del computador. El registro A suministra la otra fuente de información al AL U por el terminal A. El resultado de una operación se trasfiere de nuevo al registro A y se remplaza su contenido previo. La salida del registro A puede ir a un destino externo o a los terminales de entrada de otros regis- tros procesadores o unidad de memoria.

Para formar la suma de dos números almacenados en los registros pro- cesadores, es necesario agregarlos en el registro A usando la siguiente secuencia de microinstrucciones:

y el AL U asociado. El

T,:

A *- 0

borrar A

T 2 ;

A*-A

+

R \

trasferirfíla A

T 3 :

A*-A + R2

agregar R2 a A

Selección

fuente B

?igur a 9-4

1

Entrada de datos

Registros procesadores

o

unidad de memoria

B

ALU

ALU

A

Registro

acumulador (A)

Salida de datos

Procesador con un registro acumulador

382

DISEÑO

LOGICO

DE

PROCESADORES

CAP.

9

El registro A se borra primero. El primer número en Rl se trasfíere al regis- tro A agregando al actual contenido de ceros de A. El segundo número en R2 se agrega al valor presente de A. La suma formada en A debe usarse para otros cálculos o puede ser trasferida a su destino requerido

9-3

UNIDAD

LOGICA ARITMETICA

Una unidad lógica aritmética (ALU) es una función multioperación digital de lógica combinacional. Esta puede realizar un conjunto de operaciones aritméticas básicas y un conjunto de operaciones lógicas. El AL U tiene un numero de lineas de selección para seleccionar una operación particular de la unidad. Las lineas de selección se decodifican dentro del AL U de ma- nera que las k variables de selección pueden especificar hasta 2* opera- ciones diferentes. La Figura 9-5 muestra el diagram a de bloque de un AL U de 4 bit s Las cuatro entradas de datos de A se combinan con las cuatro entradas de B para generar una operación en las salidas F. El terminal de selección de modo s 2 distingue entre las operaciones aritmética s y lógicas . Las dos entradas de selección de función 8l y s 0 especifican la operación aritmé tica o lógica que se va a generar. Con tres variables de selección es posible espec.ñcar cuatro operaciones aritmética s (con s 2 en un estado) y cua-

v

daZZTT

^

* a

?"

c

l

° t r °

estado)

"

Lo

s

arrastre

s

«e

entra-

da y salida tienen significado solamente durante una operación aritmética El arrastre de entrada en la posición menos significativa de un AL U se usa muy a menudo como una cuenta variable de selección que puede do- blar el numero de operaciones aritméticas . De esta manera, es posible ge- '

méticas

Un diseño de un AL U típico se llevará a cabo en tres etapas. Primero sera emprendido el diseño de la sección aritmética . Segundo, debe conside- rarse el diseño de la sección lógica. Finalmente, deberá modificarse la sec-

°

PeraCÍOne

S

más

par

a

u

n

tota

l

d

e

och

°

operaciones

arit-

out

(Arrastre de salida)

A 4

A 3

A 2

A x

B 4

B }

B 2

B X

Unidad lógica aritmética (ALU)

F 4

F }

F ,

F,

' s 2

(Selección de modo)

(Selección de función)

- C fa

(Arrastre de entrada)

Figur a 9-5

F

Diagrama de bloque de un AL U de 4 bits

SEC.

9-4

DISEÑO

DE

UN

CIRCUITO

ARITMETICO

383

ción aritmétic a de manera que puedan realizarse ambas operaciones aritmé - ticas y lógicas.

9-4

DISEÑO

DE

UN

CIRCUITO

ARITMETICO

El componente básico de la sección aritmética de un AL U es un sumador en paralelo. Un sumador en paralelo se construye con un numero de cir¬

CDUI

A

B

Sumador

en paralelo

F =

A

+B

(a) Suma

A

B

1_L

Sumador

en paralelo

F

=

A+B

- C i n = 0

-a = 0

(c) A más el complemento

de

1

de B

A

0

LA

Sumador

en paralelo

(e)

F = A

Trasferire

A Ali l's

J_L

Sumador

en paralelo

C: = 0

C: =0

C"out

A

11 B

 

Sumador

 

- C i n = 1

en paralelo

F=A+B+\

 

(b)

Suma con arrastre

 
 

A

B

 

1

1

Sumador

 
 

en paralelo

C, = 1

F = A

+B

+ 1

(d)

Sustracción

 

A

0

Sumador

 
 

en paralelo

C, = 1

 

F = A

+

\

 

(f)

Incrementar A

 
 

A

AJI l's

I

t

Sumador

en paralelo

F=A-\

(g) DecrementarA

F = A

(h) Trasferir A

Figur a

9-6

Operaciones obtenidas mediante el control de un grupo de entradas de un sumador en paralelo

384 DISEÑO

LOGICO

DE

PROCESADORES

CA

p

g

t^nínH 1 1 ? ^ 0 ? 8 r n T le í, 08 conectado s e n ca ^ad a (ver Sección 5-2). Con- tand o la entrada de datos al sumador en paralelo, es posible obtener aferentes tipos de operaciones aritméticas . La Figura 9-6 muestra las ope

raciones aritmética s obtenidas cuando un grupo de entradas a un sumador

T

J Z °^ r trolan ,externamente. E l número de bits en el sumador en

paralelo puede tener cualquier valor. El arrastre de entrada C m pasa al cir

de

alX c ° r

3

SÍCÍÓ

n

de

l

t

men

°

S

si

^if-ativo.E l arrastre

íáTsiSfiitií^

circuitosumadorcompletodeIaposicióndelbit

númpr n

H

aii

Zr

d 0

}

m

é }

i

c

i*

?

S G

s

e

lo ?

man

r

a

cuand

tien

e

Fi

e n

o

u

0 .

n

«ñipo

de

entradas

recibe

un

numero binario A, el otro conjunto de entradas recibe un número binario

9 L)

sñi t

^ r

u2

T e "

= 1 c e n

,

l

a

Esto s e muestra e n

a

9 " 6 ( b ) -

e

s

Posible agregar

l a

Figura

l a

la

nSada ^

Cuando

r

e

S

e

^. ? feCt < \ d e -mpletarjodo s lefs bits d e l a

entrada ti. Cuando C i n = 0, la salida produce F = A + B

de A mas el complemento de 1 de B. Agregando 1 aTestasuma

menTo

la cual es la suma

hac enTo

de 2

de

B

e F

,

r

l ° Cual P roduc e l a — a A máael comple

mentó de 2 de B. Esta operación es similar a la operación de sustracción si e descarta el arrastre de salida. Si se colocan sólo ceros a los terminales B se obtiene F = A + 0 = A, lo cual trasfíere la entrada A a la salida F. ¿re- gando un la C i n como en la Figura 9-6(f), se obtiene F = A + 1 lo cual es la operación de incremento.

term^ir

d

Z^ ma Í° T

T

B.

7

Para

mostrar que esta condición es una operación de decremento, considérese

terminales

F"t!!

Esto

aral

1

1 °

C Í

produce " ]

,

C °

n

n

la

UStr

d a

operación ^

s

9

" 6(g

)

C

de

°

decremento F=A-1 e "

s

s

completos.

Cuando

loCar

á

todo

lo

1

drCUÍt0

«""adores

el

arrastre de salida es 1 éste representa el número 2", porque 2« en binario

consiste de un 1 seguido por „ ceros. Restando 1 de 2", se obtienen

lo cual en binario es un número de n unos. Sumando 2" — 1 a A se obtiene

F_A n~SyAZ 9 .

N

P

i

p

t

Eníonees: 1 "

^

dem

°

!

e

su

P

rim

StracÍó

 

A

=

0000

2" = 1

0000

 

2"

-

1

=

1111

A

+ 2" - 1

=

1

0000

n

e

e

l

co

arrastre de salida 2"

se obtie-

n

u n

ejemplo

numérico,

sea

1001

0000

1111

1000

=

= (256) IO =(255) 1 0 = (256 + 8) 1 0

(9) 1 0

Quitando el arrastre de salida 2" = 256, se obtiene 8=9- 1 Así se ha decrementado A en 1 agregándole un número binario con sólo unos' El circuito que controla la entrada B para suministrar las funciones

lustradas en la Figura 9-6 se llama n elemento verdadero/complemento, uno/cero. Este circuito se ilustr a en la Figura 9-7. Las dos líneas de se- eccion Sl y s 0 controlan la entrada de cada terminal B. El diagrama mues- tra una entrada típica designada por B t y una salida designada por Y

En una aplicación típica, hay n circuitos para i = 1, 2,

\?u £ y

., „. Como se mues-

d A

k

F

T

m

9 ' 7 '

CUand

°

amb0

s

s °

Y

iguales

l a

la

salida

y ,=0 , independientemente del valor de B t .

sean

0 ,

Cuando Sl s 0 = 0 1

a

SEC. 9-4

DISEÑO

DE

UN

CIRCUITO

ARITMETICO

385

compuerta AN D superior genera el valor de mientras que la salida de la compuerta inferior es 0; de manera que Yi = fi¡. Cuando SiS 0 = 10. ia

compuerta AN D inferior genera el complemento de para dar

Cuando s¡s Q = 11, ambas compuertas estará n activas y Y, = B¡ + B¡ = l.

aritmé -

ticas se muestra en la Figura 9-8. Los cuatro circuitos sumadores comple- tos (FA) constituyen el sumador en paralelo. El arrastre que va a la pri- mera etapa es el arrastre de entrada, el arrastre de salida de la cuarta

etapa es el arrastre de salida. Todos los demás arrastres está n conectados internamente de una etapa a la siguiente. Las variables de selección son

s i> s o Y C i n . Las variables s t y s 0 controlan todas las

circuitos del sumador completo como en la Figura 9-7. Las entradas A van directamente a las otras entradas de los sumadores completos. Las operaciones aritmética s configuradas en el circuito aritmétic o se listan en la Tabla 9-1. Los valores de las entradas AN D a los circuitos su- madores completos son una función de las variables de selección s t y s 0 . Agregando el valor de Y en cada caso al valor de A más el valor de C i n , da la operación aritmétic a en cada entrada. Las ocho operaciones listadas en la tabla se desprenden directamente de los diagramas de función ilustra- dos en la Figura 9-6.

Y, = B'

Un circuito aritmétic o de 4 bits que realiza ocho operaciones

entradas B a los

o de 4 bits que realiza ocho operaciones entradas B a los Í0 y, 0 0
Í0 y, 0 0 0 0 1 B, 1 0 B¡ 1 1 1
Í0
y,
0
0
0
0
1
B,
1
0
1
1
1

Figur a

9-7

Circuito verdadero/complemento, uno/cero

Tabl a

9-1

Tabla de función para el circuito aritmétic o de la Figura 9-8

 

Selector

Y

Salida

 

de función

igual a

igual a

 

Función

h

•So

Ci»

0

0

0

0

F

=

A

Trasferir A

 

0

0

1

0

F

= A +1

Incrementar

A

0

1

0

B

F

= A

+

B

Agregar B a A

0

1

1

B

F

= A + B +1

1

0

0

B

F

=

A

+

B

Agregar B a A más 1 Agregar el complemento de 1

1

0

1

B

F

= A +5+1

deSaA Agregar el complemento de 2

1

1

0-

Todo unos

F

= A -1

deBaA Decrementar A

1

1

1

Todo unos

F

=

A

Trasferir

A

Figura 9-8 Diagrama lógico del circuito aritmétii Este ejemplo demuestra la factibilidad de construir un

Figura

9-8

Diagrama lógico del circuito aritmétii

Este ejemplo demuestra la factibilidad de construir un circuito arit- mético por medio del sumador en paralelo. El circuito combinacional, que debe ser adicionado en cada etapa entre las entradas externas y B¡ y las entradas del sumador en paralelo X t y Y¡, es una función de las opera- ciones aritmética s que van a ser configuradas. El circuito aritmétic o de la Figura 9-8 necesita un circuit o combinacional para cada etapa especifi- cada por las funciones de Boole:

X, = A,

= B¡s 0 + Bf Sl

i =

1, 2,

.

, n

donde n es el número de bits del circuito aritmético . En cada etapa i, se usan las mismas variables de selección común Sj y s 0 . El circuito combi- nacional será diferente si el circuito genera diferentes operaciones arit- méticas.

386

Efecto del

arrastre

de

salida

El arrastre de salida de un circuito aritmético o AL U tiene un significado especial, principalmente después de una operación de sustracción. Para investigar el efecto de un arrastre de salida, se expande el circuito aritmé - tico de la Figura 9-8 a n bits de manera que Cout = 1, cuando la salida del circuito es igual o mayor que 2". La Tabla 9-2 lista las condiciones para tener un arrastre de salida en el circuito. La función F = A tendrá siempre el arrastre de salida igual a 0. Lo mismo se aplica a la operación de incre- mento F = A + 1 excepto cuando pasa de una condición de sólo 1, a una condición de sólo 0, en cuyo tiempo se produce un arrastre de salida de 1. Un arrastre de salida de 1 después de una operación de adición denota una condición de sobrecapacidad. Este indica que la suma es mayor que o igual a 2" y que la suma consiste_de n+ 1 La operación F = A + B agrega el complemento de 1 de B a A. Recuér- dese d e la Secció n 1-5 que e l complement o d e B puede expresarse aritméti - camente como 2" 1 — B. El resultado aritmétic o de la salida será:

F = A+2 n -l- B

=

2 "

+

A -

B-

\

Si A > B, entonces

(A - B) > 0 y

F >

(2" - 1),

de manera que

tando el arrastre de salida 2"

de este resultado dará:

C

=1 . Qui-

F= A-

B

-

\

lo cual es una sustracción con bit prestado. Nótese que si A ^ B, entonces

(A-B) ^ 0

niente expresar el resultado aritmético como:

esta condición es más conve-

y F^

(2" - 1)

y así

C o u t

= 0. Para

F =

(2"

-

1)

-

(B

-

A)

el cual es el complemento de 1 de B — A.

 

Tabl a

9-2

 

Efecto del

arrastre de salida en

el

circuito aritmétic o

de

la

Figura 9-8

 

Selector

   

Función

   

C

=

1

 

Comentarios

 

de función

 

aritmética

'-'out

si

1

 

J l

s o

   

0

0

0

 

F

=

A

 

C

o u t es siempre 0

 

0

0

1

F= A

+

1

A

= 2"

-

1

Cout = 1 y F = 0 si A = 2 " - l

 

0

1

0

F

=

A

+

B

(A

+

B)

>

2"

Ocurre sobrecapacidad

si

C o u t

=

1

0

1

1

F=A+B+1

(A

+

B)>

(2"

-

1)

Ocurre

sobrecapacidad si

C o u t = 1

1

0

0

F=A-B-

\

A

>

B

Si

C o u t = 0, entonces A < B

y

 
     

F

=

complemento de 1 de (B - A)

1

0

1

 

F=

A

-

B

A

>

B

Si C o u t = 0, entonces

A < B

y

 
     

F

= complemento de 2 de (B - A)

1

1

0

 

F=

A

-

1

A

¥= 0

 

Cout = L excepto cuando A = 0

 

1

1

1

F=

A

 

C

o u t es siempre 1

 

387

388

DISEÑO

LOGICO

DE

PROCESADORES

CAP. 9

La condición para el arrastre de salida cuando F=A + B+1 puede de- ducirse de manera similar. B + 1 es el símbolo para el complemento de 2 de B. Aritméticamente, ésta es una operación que produce un número igual a 2" - B. El resultado de la operación puede expresarse como:

Si A^B, entonces

F=A+2"-B

(A - B) 2; 0

y

=

2 n

F ^ 2\

+

A-

B

de manera que

do el arrastre de salida 2" se obtiene:

F= A

-

B

C o u t

= 1. Removien-

la cual es una operación de sustracción . Si a pesar de que A<B entonces (A-B)< 0 y F<2 " para que C o u t =0 . El resultado aritmético para esta condición puede ser expresado como:

F

=

2"~(B~A)

lo cual es el complemento de 2 de B- A. Así, la salida de la sustracción aritmética es correcta siempre y cuando A^B. La salida B-A si B > A pero el circuito genera el complemento de 2 de este número.

F = A -f (2" - 1) = 2" + A

TÍ' Jp/ rrastr e d e salid a e s siempre 1 excepto cuando A = 0. Sustrayendo

1

con solo unos. La últim a entrada en la Tabla 9-2 genera F= (2" - 1) + A + 1

el cual es un número

La

de

0

operación

da

- 1

y

de

decremento

- 1

en

se obtiene de

complemento de 2 es 2" - 1

= 2" + A. Esta operación trasfiere A a F y da un arrastre de salida de 1.

Diseño

de

otros circuitos aritméticos

El diseño de cualquier circuito aritmétic o que genera un conjunto de ope- raciones básicas puede llevarse a cabo siguiendo el procedimiento enuncia- do en el ejemplo previo. Asumiendo que todas las operaciones del grupo pueden ser generadas por medio del sumador en paralelo, se comienza ob- teniendo un diagrama de función como en la Figura 9-6. Del diagrama de función se obtiene una tabla de función que relaciona las entradas del cir- cuito sumador completo a las entradas externas. A partir de la tabla de función se obtienen las compuertas combinacionales que deben ser agrega- das a cada etapa del sumador completo. Este procedimiento se demuestra con el siguiente ejemplo.

J

L

Sumador

paralelo

F = A +B

C, = 0

Sumador

paralelo

F = A+B

+

]=A-B

(a) Especificación de la función

-C,„ = 1

s x¡ Y, c f a 0 0 A¡ B, 1 1 A ¡ B'i
s
Y,
c f a
0
0
B,
1
1
A ¡
B'i

s —*-

Ai—*

B¡-~

C:

Circuito

combinacional

X

FA

FA

Y,

Y,

(b)

5

Ai

B,

x,

Y,

0

0

0

0

0

0

0

1

0

1

0

1

0

1

0

0

1

1

1

1

1

0

0

0

1

1

0

1

0

0

1

1

0

1

1

1

1

1

1

0

(c)

Especificación del circuito combinacional

X t =A,

Y,=B,

Tabla de verdad y ecuaciones simplificadas

Figura 9-9

Deducción de un circuito sumador/sustractor

EJEMPLO 9-1: Diseñar un circuito sumador/sustractor con una variable de selección s y dos entradas A y B. Cuando s = 0 el circuito realiza A + B. Cuando s = 1 el circuito ejecuta A — B to- mando el complemento de 2 de B. La deducción del circuito aritmético se ilustra en la Figura 9-9. El diagrama de función se muestra en la Figura 9-9(a). Para la parte de suma, se necesita C ¡ n = 0. Para la parte de sustracción se necesita el complemento de B y C i n = 1. La tabla de función se lista en la Figura 9-9(b). Cuando s = 0, X¡ y Y, de cada sumador completo deben ser iguales a las entradas externas A¡ y ^res - pectivamente. Cuando s = 1, se debe tener X¡=A , y Y¡ = B¡. El arrastre de salida debe ser igual al valor de s. El diagrama en (b) muestra la posición del circuito combinacional en una etapa típi- ca del circuito aritmético . La tabla de verdad en (c) se obtiene lis- tando los ocho valores de las variables de entrada binarias. La salida se hace igual a la entrada A, en ocho entradas. La sa- lida es igual a para las cuatro entradas cuando s = 0. Esta es igual al complemento de B t para las última s cuatro entradas cuando s = 1. Las funciones de salida simplificadas para los cir- cuitos combinacionales son:

X¡ = A t

=

B¡®s

389

Figura

9-10

F A

*\

FA

n

FA

FA

Circuito sumador/sustractor de 4 bits

El diagrama del circuito sumador sustractor de 4 bits se muestra en la Figura 9-10. Cada entrada B t requiere una compuerta OR- exclusiva. La variable de selección s va a una entrada de cada com- puerta y también al arrastre de entrada del sumador en paralelo. El sumador/sustractor de 4 bits puede ser construido con dos CI. Un CI es el sumador en paralelo de 4 bits y el otro es un CI de compuertas OR-exclusivas cuádruples.

9-5

DISEÑO

DEL

CIRCUITO

LOGICO

Las microoperaciones lógicas manipulan los bits de los operandos separa- damente y trata n cada bi t como una variable binaria. La Tabla 2-6 lista 16 operaciones lógicas que pueden ser realizadas con dos variables binarias. Las 16 operaciones lógicas pueden ser generadas en un circuito y seleccio- nadas por medio de cuatro líneas de selección. Como todas las operaciones lógicas pueden obtenerse por medio de operaciones AND , OR y NO T (com- plemento), podría ser más conveniente emplear un circuito lógico justamen- te con esas operaciones. Para tres operaciones se necesitan dos variables de selección . Pero dos líneas de selección pueden seleccionar entre cuatro operaciones lógicas, de manera que se escoge tambié n la función OR-ex-

390

(a) Diagrama lógico s \ •so   Salida Operación 0 0 F ¡ = A¡+B

(a) Diagrama lógico

s \

•so

 

Salida

Operación

0

0

F¡ =

A¡+B l

OR

0

1

F,

=

A i s,B¡

XOR

1

0

F,

= A,B,

AND

1

1

F¡ = A¡

 

NOT

 

(b)

Tabla de función

Figura

9-11

Una etapa de un circuito lógico

elusiva (XOR) para el circuito lógico que va a diseñarse en esta y en la siguiente sección. El método más simple y directo de diseñar un circuito lógico se mues- tra en la Figura 9-11. El diagrama muestra una etapa típica designada por ¿l suscrito i. El circuito debe repetirse n veces para un circuito lógico de n bits. Las cuatro compuertas generan las cuatro operaciones lógicas OR, OR-exclusiva, AN D y NOT . Las dos variables de selección en el multiplexor seleccionan una de las compuertas de la salida. La tabla de función lista la lógica de salida generada como una función de dos variables de selección . El circuito lógico puede ser combinado en el circuito aritmétic o para producir una unidad lógica aritmética. Las variables de selección Si y s 0 pueden hacerse comunes a ambas secciones siempre y cuando se use una tercera variable de selección s 2 para diferenciar entre los dos. Esta con- figuración se ilustra en la Figura 9-12. Las salidas de los circuitos lógicos y aritmético s de cada estado pasan por un multiplexor con la variable de selección s 2 Cuando s 2 = 0 se selecciona la salida aritmética , pero cuan- do s 2 = 1 se selecciona la salida lógica. Aunque los dos circuitos pueden combinarse de esta manera, ésta no es la mejor forma de diseñar un ALU . Un AL U más eficiente puede obtenerse si se investiga la posibilidad de generar operaciones lógicas de un circuito aritmétic o ya disponible. Esto puede hacerse inhibiendo todos los arrastres de entrada de los circuitos del sumador completo del sumador en paralelo. Considérese la función de Boole que genera la suma de salida de un circuito sumador completo:

F,

= X

C,

El arrastre de entrada C¡ en cada etapa puede hacerse igual a 0 cuando la

variable de selección s 2

1.

sea igua l a

El resultado será :

F ¡ = X i © Y ¡

391

B,

Tabla

Figura

9-12

9-3

Operaciones

Una etapa de un circuito aritmètico

Una etapa de un circuito lògico

Combinando

circuitos

lógicos y

MUX

Selección

aritméticos

lógicas en una etapa de un circuito aritmético

S 2

5,

•ÍO

x,

x,

Y,

Y,

Ci

Ci

Fi

=

X,

©

Y i

Operación

Operación

requerida

1

0

0

Ai

0

0

F =

A,

Trasferire

OR

1

0

1

Ai

0

= A, © B,

X

O R

XOR

1

1

0

A,

B;

0

F, =

A

i

OB ¡

Equivalencia

AND

1

1

1

A,

1

0

F, = A;

N

O T

NOT

Esta expresión es válida debido a la propiedad de la operación OR-exclusi- va x © 0= x. Así, con el arrastre de salida de cada etapa igual a 0 los cir- cuitos del sumador completo generan la operación OR-exclusiva. Considérese el circuito aritmétic o de la Figura 9-8. El valor de Y, pue- de seleccionarse por medio de dos variables de selección que sean iguales a 0, B¡, B\ o 1. El valor de X, es siempre igual a la entrada A, . La Tabla 9-3 muestra las cuatro operaciones lógica s obtenidas cuando la tercera va- riable de selección s 2 = 1. Esta variable de selección obliga a que C t sea igual a 0 mientras que s, y s„ escogen un valor particular de Y¡ ' Las cuatro operaciones lógicas obtenidas por esta configuración son la trasfe- rencia la OR-exclusiva, la equivalencia y el complemento. La tercera entra- da es la operación de equivalencia porque:

A^B;

=

A,B,

+A;B;

=

A ¡ QB,

La última entrada en la tabla es el NO T u operación de complemento que:

392

A,. © 1 =

ya

SEC. 9-6

DISEÑO

DE

UNA

UNIDAD

LOGICA

ARITMETIC A

393

La tabla tiene una columna má s la cual contiene la lista de las cuatro operaciones lógicas que se van a incluir en el ALU . Dos de estas operacio- nes, la OR-exclusiva y el NO T está n disponibles. La pregunta que debe ser contestada es de si es posible modificar el circuito aritmético de manera que genere las funciones lógicas OR y AN D en vez de las funciones de tras- ferencia y equivalencia. Este problema se investiga en la siguiente sección.

9 - 6

DISEÑO

DE

UNA

UNIDAD

LOGICA

ARITMETICA

En esta sección se diseña un AL U con ocho operaciones aritmética s y cua- tro operaciones lógicas. Las tres variables de selección y s 0 selec- cionan ocho operaciones diferentes y el arrastre de entrada C i n se usa para seleccionar cuatro operaciones aritmética s adicionales. Con s 2 = 0, las va- riables s, y s 0 conjuntamente con Cj n , seleccionan las ochos operaciones aritméticas listadas en la Tabla 9-1. Con s 2 = 1, las variables s t y s 0 se- leccionan las cuatro operaciones lógicas OR, OR-exclusiva, AN D y NOT . El diseño de un AL U es un problema de lógica combinacional. Debido a que la unidad tiene un patró n regular, ésta puede fraccionarse en etapas idéntica s conectadas en cascada por medio de los arrastres. Se puede di - señar una etapa del AL U y luego duplicarla para conseguir el número de etapas requeridas. Hay seis entradas a cada etapa: A ¿ , B¡, C,, s 2 , s, y s 0 . Hay dos salidas de cada etapa: la salida F, y el arrastre de salida C,+ i. Se puede formular una tabla de verdad con 64 entradas y simplificar las dos funciones de salida. Aquí se escoge el uso de un procedimiento al- terno que usa la disponibilidad de un sumador paralelo. Los pasos de que se compone el diseñ o de un AL U son los siguientes:

1. la

Diseñar

sección

aritmética

independientemente

de

la

sección

lógica.

2. Determinar las operaciones lógicas obtenidas del circuito aritméti - co en el paso 1, asumiendo que los arrastres de salida de todas las etapas son 0.

las operaciones lógicas

3. Modificar el circuito aritmétic o para obtener requeridas.

El tercer paso en el diseño no es un procedimiento directo y requiere cierta cantidad de ingenuidad por parte del diseñador. No hay garantía de que se pueda encontrar una solución o que la solución use el mismo número de compuertas. El ejemplo presentado aquí demuestra el tipo de pensamiento lógico que se requiere algunas veces en el diseño de sistemas digitales. Se debe tener en cuenta que se dispone de varios AL U en CI encapsu- lados. En un caso práctico , lo que se debe hacer es buscar un AL U adecua- do o unidad procesadora entre los circuitos integrados que se obtienen comercialmente. Pero, la lógica interna del CI seleccionado debe haber sido diseñado por una persona familiarizada con las técnicas de diseño lógico. La solución para el primer paso del diseño se muestra en la Figura 9-8. La solución al segundo paso de diseño es presentado en la Tabla 9-3. La solución para el tercer paso se deduce a continuación .

394 DISEÑO

LOGICO

DE

PROCESADORES

De la Tabla 9-3 se observa que si s 2 = 1, el arrastre de entrada

CAP. 9

C,

en

cada etapa debe ser 0. Con SiS 0 =0 0 cada etapa así genera la función = A¡. Para cambiar la salida a una operación OR, se debe cambiar la entra- da a cada circuito sumador completo de A, a A, +B¡. Esto puede lograrse aplicando la función OR a y cuando s 2 s¡s 0 = 100. Las otras variables de selección que dan una salida indeseable ocurren cuando S ^ S Q = 110. La unidad de esta manera genera una salida F¡ = A, O 5, pero se requiere generar la operación AN D F^A^fi, . Se puede investigar la posibilidad de aplicar la función OR a cada entrada A T con alguna función de Boole K¡. La función que se obtiene se usa para X, cuan- do s 2 Si« 0 = HO:

F,

=

X

©

Y i

=

(A,

+

K)

©

=

A,B,

+

K I B ¡

+

A',K¡B;

Una cuidadosa inspección del resultado revela que si la variable K¡ = B¡ se obtiene una salida:

=

A.B,

+

B[B L + A&B; = A,B t

Dos término s son iguales a 0 porque fí,fi; = 0. El resultado obtenido es la operación AN D que se requiere. La conclusión es que, si se aplica con B[ a una función OR cuando s 2 s x s Q = 110, la salida genera la operación AND. El AL U final se muestra en la Figura 9-13. Solamente las dos etapas se dibujan, pero el diagrama puede extenderse fácilmente a más etapas. Las entradas a cada circuito sumador completo se especifican por medio de las funciones de Boole:

= + s 2 s\s' 0 Bi + s 2 s¡s' 0

Y

i

=

s 0 B ¡

+ SI B;

Z,. = s' 2

Cuando s 2 = 0, las tres funciones se reducen a: