Вы находитесь на странице: 1из 34

ORGANIZACIN Y DISEO BSICO DE UNA COMPUTADORA.

En este capitulo se tratar el tema de los componentes bsicos de una computadora y las diferentes formas de relacionarlos entre si, para tal efecto trataremos los temas relacionados que aparecen en la siguiente lista: 1. 2. 3. 4. 5. 6. 7. 8. 9. Cdigo de instruccin Registros de computadora Instrucciones de computadoras Temporizacin y control ciclo de instruccin Instrucciones de referencia Entrada salida e interrupciones Descripcin completa de una computadora Diseo de una computadora bsica Diseo de un acumulador lgico.

En donde: Cdigo de instruccin, es un conjunto de bits que indica como ejecutar una operacin especfica. El cdigo de operacin de una instruccin es un grupo de bits que define operaciones como: sumar, restar, etc. Y est formado por lo menos de n bits de 2 n operaciones diferentes. Registro de computadora. Las instrucciones se almacenan en posiciones de memoria consecutiva y se ejecutan en forma secuencial, lo implica la existencia de un contador para calcular la siguiente direccin de memoria, para lograr todo esto se necesita un registro, adems, se requiere otro registro para que el procesador pueda manipular los datos. Instruccin de computadora. Indica que operacin debe ejecutar el computador. Se divide en varias categoras: - Instrucciones aritmticas lgicas y de corrimiento. - Instruccin para mover informacin desde y hacia la memoria y los registros del computador. - Instruccin de control y - Instrucciones de entrada y salida. Temporizacin y control. Para la temporizacin se requiere de un reloj maestro el cual genera los pulsos necesarios para el funcionamiento de los flip-flop y registros del sistema. Se requieren seales de control, provenientes de la unidad de control, para que funcionen los multiplexores de entrada de control en los registros y microoperaciones para el acumulador.

Ciclo de instruccin. El programa se ejecuta recorriendo un ciclo para cada instruccin. Se dividen en ciclos o fases: Buscar instruccin de la memoria Decodificar la instruccin Leer la direccin efectiva de la memoria, si la instruccin tiene una direccin indirecta. Ejecutar la instruccin. Instrucciones de referencia a memoria. microoperaciones que se requieren. Se debe definir con precisin las

Entrada salida e interrupciones. Son las que permiten el contacto con el exterior, en donde, la memoria sera la entrada, lo que aprecia el usuario la salida y las interrupciones son los mecanismos que permiten que los dispositivos externos se comuniquen con la computadora, aqu se relacionan los flip-flop de habilitacin de interrupciones. Descripcin de una computadora bsica. Es la relacin, por medio de un diagrama de flujo, de cmo se relacionan los diferentes comandos para el manejo del hardware. Diseo de una computadora bsica. Se describen las diferentes partes de hardware mnimas para formar un computador. - Unidad de memoria - Registros - Flip-flops - Decodificadores de operacin y de temporizacin. - Bus del sistema. - Compuertas lgicas de control - Circuitos sumador y lgico. Diseo de un acumulador lgico. Es la utilizacin de las diferentes compuertas electrnicas para la elaboracin de circuitos. CDIGOS DE INSTRUCCIN. La organizacin interna de un sistema digital est definida por la secuencia de microoperaciones que ejecuta sobre datos almacenados en sus registros. La computadora digital de propsito general puede ejecutar varias microoperaciones y puede recibir instrucciones acerca de la secuencia especfica de operaciones que debe realizar; estas proceso se puede controlar mediante un programa, el cual consiste en un conjunto de instrucciones que especifican las operaciones, operandos y la secuencia mediante la cual tiene que ocurrir el procesamiento.

La tarea de procesamiento puede alterarse al especificar un nuevo programa con instrucciones diferentes o especificando las mismas instrucciones con otros datos. INSTRUCCIN: una instruccin de computadora es un cdigo binario que especifica una secuencia de microoperaciones. Los cdigos de instruccin y los datos se almacenan en la memoria. La computadora lee cada instruccin y la coloca en un registro de control, el control interpreta el cdigo binario de instruccin y procede a ejecutarlo. Cada computadora tiene un conjunto de instrucciones nico. El programa almacenado es la capacidad de almacenar y ejecutar instrucciones y es la propiedad ms importante de un computador. CDIGO DE INSTRUCCIN: es un conjunto de bits que le dice al equipo como ejecutar una operacin. Se divide en partes y cada parte tiene su propia interpretacin. La parte ms importante es su parte de operacin. EL CDIGO DE OPERACIN: es un grupo de bits que define las operaciones. Hay una relacin entre operacin y microoperacin; la operacin forma parte de una instruccin almacenada en la memoria de la computadora, es un cdigo binario que le dice a la computadora que realice una operacin especfica, la unidad de control recibe la instruccin e interpreta los bits, despus emite una seal de control para iniciar las microoperaciones en los registros internos de la computadora. Para cada cdigo de operacin, el control enva una serie de microoperaciones; por esta razn al cdigo de operacin se le denomina, algunas veces, macrooperacin. La parte operativa de un cdigo de instruccin especifica la operacin que se va a ejecutar, esta operacin se debe realizar sobre algunos datos que se encuentran almacenados en los registros del procesador o en la memoria, entonces los cdigos de instruccin debe especificar: - La operacin - El registro o palabra de la memoria donde se van a encontrar los operandos - El registro o palabra de la memoria donde se va a almacenar el resultado. Se pueden especificar palabras de memoria en los cdigos de instruccin mediante sus direcciones. Existen muchas variaciones para dar un cdigo binario de instrucciones y cada computador tiene su cdigo binario de instrucciones particular; los diseadores de computadoras formulan los formatos de cdigo de instrucciones y especifican la arquitectura de la computadora.

ORGANIZACIN DE UN PROGRAMA ALMACENADO. La manera ms simple de organizar una computadora es tener un registro de procesador y un formato de cdigo de instruccin con dos partes; la primera parte especifica la operacin que se va a ejecutar y la segunda especifica una direccin. La direccin de memoria le dice al control donde encontrar un operando en la memoria, este se lee y se utiliza como los datos que se van a operar o junto con los datos almacenados en el registro del procesador. Codigo de Operacin Direccin

Las instrucciones estn almacenadas en una porcin de la memoria y los datos (operandos) en otra. Las computadoras que tienen un registro de procesador nico por lo general lo denominan acumulador y lo marcan como AC. Por lo general una memoria en donde para especificar una direccin no utiliza la totalidad de los bits disponibles, ejem. 12 de 16 bits posibles, entonces con los restantes bits podemos especificar una operacin u otros propsitos como puede ser las operaciones de limpiar (borrar) AC, complementar AC e incrementar AC. Para el diseo del computador bsico que llevaremos durante este capitulo utilizaremos una memoria con 4096 palabras, donde utilizaremos los 12 bits para especificar una direccin dada por 212 = 4096. DIRECCIONAMIENTO INDIRECTO. En ocasiones es necesario utilizar los bits de direccionamiento de un cdigo de instrucciones, no como direccin sino como el dato real, cuando la segunda parte del cdigo de instruccin tiene un dato se dice que la instruccin tiene un dato inmediato, cuando la segunda parte especifica la direccin de un dato se dice que la instruccin tiene un direccionamiento directo, pero hay una tercera posibilidad llamada direccionamiento indirecto, en el cual los bits de la segunda parte de la instruccin representan la direccin de una palabra de memoria, en la cual se encuentra la direccin del dato. Se puede utilizar un bit del cdigo de instruccin para diferenciar entre un direccionamiento directo o indirecto, este bit se referencia como I y corresponde al bit de la izquierda, como se muestra en la figura: I Codigo de Direccin operacin Formato de instruccin.

Si I = 0 direccionamiento directo Si I = 1 direccionamiento indirecto La direccin efectiva es aquella que nos indica la direccin de memoria donde se encuentra el dato que se requiere. Ejemplo: 15 0 ADD 130 19 159 130 OPERANDO 256 1 ADD 256 OPERANDO 159

Direc. Directo

Direc. Indirecto.

Consideramos el formato del cdigo de instruccin que se muestra al principio de la memoria, est formado por un cdigo de operacin de tres bits, una direccin de 12 bits y un bit de direccionamiento. En la parte izquierda de la grfica se observa que el bit de direccionamiento es cero I = 0 y est colocado en la direccin 15 de memoria, el cdigo de operacin indica una instruccin de suma y la parte de direccin es equivalente al binario 130, luego se pasa la direccin correspondiente a 130 y encontramos el operando que pasa junto con el dato que se tiene en el acumulador a elaborar la suma que estaba propuesta en la instruccin. En la parte derecha de la grfica vemos como el direccionamiento indirecto nos remite una direccin intermedia antes de elaborar la operacin propuesta por la instruccin.

REGISTROS DE COMPUTADORA Las instrucciones de computadora se almacenan en posiciones de memoria consecutivas y se ejecutan de manera consecutiva, el control lee una instruccin de una direccin especfica de memoria y la ejecuta, despus continua leyendo la siguiente instruccin, en secuencia y la ejecuta y as sucesivamente; este tipo de secuencia necesita de un contador para calcular la direccin de la siguiente instruccin, tambin es necesario proporcionar un registro en la unidad de control para almacenar el cdigo de instruccin despus de que se lee de la memoria; la computadora necesita de los registros del procesador para manipular datos y un registro para mantener una direccin de memoria; en la siguiente tabla se muestras los diferentes registros que utilizaremos en el diseo de la computadora bsica: SIMBOLO DE REGISTRO DR AR AC IR PC TR INPR OUTR BITS 16 12 16 16 12 16 8 8 NOMBRE Reg. De datos Reg. De direccin Acumulador Reg. De instruccin Contador de programa. Reg. Temporal Reg. De entrada Reg. De salida

La unidad de memoria tiene una capacidad de 4096 palabras y cada una contiene 16 bits, se necesitan 12 bits de una palabra de instruccin para especificar la palabra de un operando, tres bits para la operacin y uno para el direccionamiento. El registro de datos DR, contiene el operando que se lee de la memoria. El registro del acumulador AC, es un registro de procesamiento de propsito general. La instruccin que se lee de la memoria se coloca en el registro de instruccin IR y para contener los datos temporales durante el proceso se guardan en el registro temporal TR. El registro de direccionamiento AR, de la memoria tiene 12 bits que es el ancho de una direccin de memoria, igual que PC que contiene la direccin de la siguiente instruccin. BUS COMN DEL SISTEMA: Todos estos 8 registros, la unidad de memoria y una unidad de control deben tener la forma de cmo comunicarse entre ellos para poder transferir los datos de uno a otro; si esta comunicacin se hace unindolos entre todos nos resulta una gran cantidad de

lneas que sera excesiva por esta razn se utiliza un sistema ms eficiente como es un bus comn, el cual se puede construir utilizando mulplexores o compuertas de buffer de tres estados. E es el acarreo del sumador. S2 S1 S0 7 LEER LD LD INR CLR 2 INR CLR ESCRIBIR 1

La salida de siete registros y de la memoria estn conectados al bus comn. La salida especfica que se selecciona para las lneas del bus en cualquier momento dado, est determinado por valor binario de las variables de seleccin S2, S1 Y S0. El nmero que representa delante de cada salida muestra el equivalente binario requerido. Las lneas del bus estn conectadas a las entradas de cada registro y las entradas de datos de la memoria. El registro en particular cuya entrada LD (cargar) est habilitada recibe los datos del bus durante la siguiente transicin del pulso de reloj. Cuatro registros tienen 16 bits, 2 registros 12, cuando estos ltimos se conectan con el bus comn de 16 bits los cuatro bits ms significativos se complementan con ceros (0), pero cuando es el bus el que les transfiere informacin solo lo hacen los 12 bits menos significativos. Los registros de entrada y de salida trabajan con 8 bits de los caracteres con que trabaja, el registro de entrada no tiene comunicacin con el bus, sus datos van al AC a travs del circuito sumador y lgico y el registro de salida recibe datos del bus pero no hay transferencia a ningn registro del sistema. Hay varios registros que reciben informaciones de control como puede ser cargar LD, Borrar CLR e incrementar INR. Los datos de entrada y salida de memoria estn conectadas a las 16 lneas del bus comn y adems recibe comunicacin del AR para definir las direcciones con las cuales va a trabajar, al utilizar un registro nico de direccionamiento eliminamos la necesidad de utilizar un bus de direcciones. INSTRUCCIONES DE COMPUTADORA La computadora bsica tiene tres formatos de cdigo de instruccin, cada formato tiene 16 bits, instruccin de referencia a memoria, instruccin de referencia a registro e instruccin de entrada-salida. Una instruccin de referencia a memoria utiliza 12 bits para especificar una direccin, 1 bit para especificar el modo de direccionamiento I, de donde slo quedan 3 bits para indicar la operacin, lo cual nos indicara que solo podemos efectuar 8 operaciones (23) para el diseo que estamos llevando a cabo necesitaremos 25 operaciones y por lo tanto debemos tener ms formas de indicar otras operaciones y para esto nos valemos de las instrucciones de referencia a registro y instrucciones de entrada-salida. Para diferenciar una instruccin de referencia registro se har por el cdigo de operacin 111 con I = 0, esto nos indica que estas instrucciones iniciarn su direccin con el hexadecimal equivalente binario de 7; una instruccin con referencia registro especifica una operacin o una prueba del registro AC, por lo tanto no se necesita un operando de la memoria y entonces podemos utilizar los otros doce bits para especificar una prueba u operacin que se debe ejecutar. De igual forma una instruccin de entrada-salida no necesita una referencia a memoria y la reconoceremos por el cdigo de operacin 111 con I = 1; los 12 bits restantes se utilizan para especificar el tipo de operacin de entrada-salida o la prueba ejecutada.

En la tabla que aparece a continuacin especificamos las operaciones que necesitamos para el diseo, donde, la representacin simblica es una palabra de tres letras y significa la abreviatura destinada a los programadores y los usuarios. El cdigo hexadecimal es igual al nmero hexadecimal del cdigo binario utilizado para la instruccin.
SMB. INST. DE REF. A MEMORIA AND ADD LDA STA BUN BSA ISZ CLA CLE CMA CME CIR CIL INC SPA SNA SZA SZE HLT INP OUT SKI SKO ION IOF CD. HEX I = 0 I = 1 DESCRIPCIN 0xxx 1xxx 2xxx 3xxx 4xxx 5xxx 6xxx 8xxx 9xxx Axxx Bxxx Cxxx Dxxx Exxx Aplicar la func. AND de la palabra de memoria AC Sumar la palabra de la memoria a AC Cargar la palabra de memoria a AC Almacenar el contenido de AC en la memoria Saltar en forma incondicional Saltar y guardar la direccin de retorno Incrementar y saltar si hay un cero Borrar AC Borrar E Complementar AC Complementar E Circular a la derecha AC y E Circular a la izquierda AC y E Incrementar AC Saltar a la siguiente instruccin si AC es positiva Saltar a la siguiente instruccin si AC es negativa Saltar a la siguiente instruccin si AC es cero Saltar a la siguiente instruccin si E es cero Deterner la computadora. Introducir un carcter en AC Sacar un carcter desde AC Saltar bandera de entrada Saltar si hay bandera de salida Interrupcin encendida Interrupcin apagada

INST. DE REF. A REGISTRO

7800 7400 7200 7100 7080 7040 7020 7010 7008 7004 7002 7001 F800 F400 F200 F100 F080 F040

INST. DE ENTRADA SALIDA

VERSATILIDAD DEL CONJUNTO DE INSTRUCCIONES. Una computadora debe tener un conjunto de instrucciones para que el usuario pueda construir programas de lenguaje de computadoras con el fin de evaluar cualquier funcin que se sepa que puede computarse. Las instrucciones de la computadora debe tener las siguientes instrucciones: Instrucciones aritmticas, lgicas y de corrimiento.

Instrucciones para mover la informacin hacia y desde la memoria y los registros del procesador. Instrucciones de control del programa, junto con instrucciones que verifiquen las condiciones de estado. Instrucciones de entrada y salida. Las instrucciones aritmticas, lgicas y de corrimiento proporcionan capacidad computacional para procesar el tipo de datos que el usuario pueda emplear. La mayor parte de la informacin binaria en una computadora digital est almacenada en la memoria, pero todos los clculos se realizan en los registros del procesador, por lo tanto, el usuario podr mover la informacin entre estas dos unidades. Las instrucciones de control de programa, se utilizan para cambiar la secuencia en la cual se ejecuta el programa. Las instrucciones de entrada y salida se necesitan para la comunicacin entre el computador y el usuario. TEMPORIZACIN Y CONTROL. La temporizacin de todos los registros de la computadora bsica est controlada por un generador de reloj maestro, el cual se basa en las oscilaciones de un cristal. Los pulsos de reloj se aplican a todos los flip-flops y registros del sistema, incluyendo los de la unidad de control. Los pulsos de reloj no cambian el estado de un registro, a menos que el registro est habilitado por la seal de control. Las seales de control se generan en la unidad de control y proporcionan entradas de control para los multiplexores del bus comn, entradas de control en los registros del procesador y microoperaciones para el acumulador. Existen dos tipos principales de organizaciones de control: Control por cableado Control por microprogramacin. En la organizacin por cableado la lgica de control se logra mediante compuertas flip-flops, decodificadores y otros circuitos digitales. Esto tiene la ventaja de que se puede utilizar para producir un modo de operacin rpido. Si el diseo se va a modificar o cambiar es necesario cambios fsicos en los componentes de la organizacin de control. En la organizacin microprogramada, la informacin de control est almacenada en una memoria de control. La memoria de control est programada para iniciar la secuencia de microoperaciones requerida. Cualquier cambio o modificacin puede hacerse actualizando el programa en la memoria de control.

10

En el diseo que estamos realizando no utilizaremos el control microprogramado sino el control por cableado y para esto haremos uso de 2 decodificadores, un contador secuencial y cierta cantidad de compuertas lgicas (diagrama) I 14 13 12 11 - 0 Otra entradas

El diagrama de bloques de unidad de control muestra una instruccin leida de la memoria y que se coloca en el registro de instruccin IR; el bit 15 de la instruccin de direccionamiento se transmite a un flip-flop; el cdigo de operacin en los bits 12 al 14 de decodofica con un decodificador 3x8, las 8 salidas de este decodificador se representan mediante los smbolos D0 a D7, el nmero decimal del subndice es equivalente al valor binario del cdigo de operacin correspondiente. Los bits de 0 a

11

11 se aplican directamente en las compuertas lgicas de control. Las salidas del contadores decodifican en 16 seales de temporizacin de T0 a T15. El contador secuencial SC puede incrementarse o borrarse en forma sincrnica. La mayor parte del tiempo el contador se incrementa para proporcionar la secuencia de seales de temporizacin del decodificador 4x16; cuando el contador se borra a cero la siguiente seal de temporizacin ser T0. Un ciclo de lectura o escritura se iniciar con el flanco ascendente de una seal de temporizacin. Se considerar que un ciclo de memoria es menor que un ciclo de reloj. Cuando el ciclo de lectura es mayor que el ciclo de reloj del procesador, entonces, a este se le asignarn tiempos de espera, con el fin de lograr que se realice toda la operacin antes de que el procesador siga ejecutando el programa. Ejemplo: el contador se incrementa para proporcionar seales T0, T1, T2, T3 y T4 en secuencia. Cuando el contador llega a T4 el contador se borra si est activada la salida D3 de decodificador 3x8. Realizar el diagrama de seales de temporizacin de control. Simblicamente: D3T4: SC 0 T0 T1 T2 T3 T4 T0 reloj T0 T1 T2 T3 T4 D3 CLR SC El diagrama de temporizacin muestra la relacin de tiempo de las seales de control. El contador secuencial responde a la transicin positiva del reloj. Al principio, la entrada CLR de SC est activa, la primera transicin positiva del reloj borra SC a 0, lo cual activa la seal de temporizacin T0 del decodificador, la cual permanece activa durante un ciclo de reloj, esta seal solo activar aquellos registros cuyas entradas de control estn conectadas a esta seal. SC se incrementa en cada transicin positiva del reloj a menos que la entrada CLR este activada, esto produce la secuencia de seales sucesivamente, si SC no se borra las seales seguirn hasta T15 y luego volvera a iniciar con T0. La salida D3 se activa con el final del segundo ciclo de reloj

12

cuando la seal de temporizacin T4 se activa al mismo tiempo que se activa la compuerta AND y se cumple las condiciones para que se borre AC. Para entender mejor la operacin de la computadora hay que entender la relacin entre la transicin de reloj y las seales de temporizacin. Una seal de temporizacin est activa durante todo un ciclo de reloj. CICLO DE INSTRUCCIN. Un programa residente en la unidad de memoria de la computadora est formado por una secuencia de instrucciones. E programa se ejecuta en la computadora recorriendo un ciclo para cada instruccin, a su vez, cada ciclo de instruccin se divide en una secuencia de fases; en el diseo que estamos llevando de una computadora bsica cada ciclo de instruccin consiste de las siguientes fases: 1. Buscar una instruccin de la memoria. 2. Decodificar la instruccin. 3. Leer la direccin efectiva de la memoria si la instruccin tiene una direccin indirecta. 4. Ejecutar la instruccin. Cuando termina el paso 4, el control reinicia para nuevamente buscar decodificar y ejecutar la siguiente instruccin, este proceso continua indefinidamente hasta que encuentre una instruccin de alto HALT. BUSQUEDA Y DECODIFICACIN: Al iniciar el PC est cargado con la direccin de la primera instruccin del programa, el SC se borra a cero lo que suministra una seal de temporizacin T0, T1 , T2 y as sucesivamente las operaciones para la fase de bsqueda y decodificacin pueden especificarse mediante los siguientes enunciados de transferencia de registro: T0 : AR PC T1 : IR M[AR], PC PC + 1 T2 : D0 ,.... D7 Decodificar IR(12-14), AR IR(0-11), I IR(15) Como solo AR est conectada a la entrada de direccionamiento de la memoria, se necesita transferir la direccin del PC a AR durante la transicin de reloj asociada a T0, despus se coloca la instruccin de leer de la memoria en IR con T 1 y al mismo tiempo se incrementa PC en 1 para la direccin de la siguiente instruccin. En T 2 se decodifica el cdigo de operacin en IR, el bit indirecto se transfiere al flip-flop I y la parte de la instruccin de la direccin se transfiere a AR. Con cada pulso de reloj se ha incrementado SC y nos da las diferentes seales de T0, T1, T2 ..... En la figura se pueden observar como se implementan los dos primeros enunciados: 1. Colocar el contenido de PC dentro del bus al hacer las entradas S 0S1S2 de seleccin iguales 010

13

2. Transferir el contenido del bus a AR al habilitar la entrada LD de AR. T0 T1 S0 S1 S2

Unidad de Memoria Direccin leer

AR LD

PC INR

IR LD Reloj

Bus Comn Con el fin de proporcionar la trayectoria de datos para la transferencia del PC a AR, se debe aplicar una seal de transferencia T0 para obtener la siguiente conexin. La siguiente transicin de reloj inicia la transferencia de PC a AR porque T0 = 1, para cumplir el segundo enunciado T1 : IR M[AR], PC PC + 1

14

Es necesario usar la seal de temporizacin T1 con el fin de proporcionar las conexiones siguientes en el canal del sistema de bus. 1. Habilitar la entrada de lectura de la memoria 2. Colocar el contenido de la memoria dentro del bus al hacer que S 0S1S2 = 111. 3. Transferir el contenido del bus a IR al habilitar la entrada LD de IR. 4. Incrementar PC al habilitar la entrada INR de PC. La siguiente transicin de reloj inicia las operaciones de leer e incrementar porque T1= 1. En el diagrama se incluyen compuertas OR de entrada porque hay mltiples funciones de control que iniciarn operaciones similares. DETERMINACIN DEL TIPO DE INSTRUCCIN: la seal de temporizacin que est activa despus de la decodificacin es T 3 durante este tiempo, la unidad de control determina el tipo de instruccin que se acaba de leer de la memoria, el diagrama de flujo presenta la configuracin inicial para el ciclo de instruccin y muestra como el control determina el tipo de instruccin despus de la decodificacin. Iniciar SC 0 T0 T1 T2 Cdigo de operacin de decodificacin en IR(12-14) AR IR(0-11), I IR(15)

AR PC

IR M[AR], PC PC + 1

1 = I/O 1= I/O T3 Ejecutar Ins. Entrada Salida SC 0 Ejecutar Ins. Ref. a Registro SC 0 0 = Reg. T3

0 = Ref. Memoria 1 = Ind. T3 IR M[AR] nada 0= Directo T3

Ejecutar Ins. Ref. a memoria SC 0 15

La salida del decodificador D7 es igual a 1 si el cdigo de operacin es 111 binario, si D7 es igual a 1 la instruccin debe ser del tipo de referencia a registro o de entradasalida, si D7 = 0, el cdigo de operacin debe ser uno de los otros 7 valores de 000 a 110, especificando una instruccin de referencia a memoria; despus el control revisa el valor del primer bit de la instruccin, que est disponible en el flip-flop I. Si D 7 = 0 e I = 1, tenemos una instruccin de referencia a memoria con un direccionamiento indirecto, entonces es necesario leer la direccin efectiva de la memoria, la palabra en la direccin proporcionada por AR se lee de la memoria y se coloca en el bus comn, despus se habilita la entrada LD de AR, para recibir la direccin indirecta que reside en los doce bits menos significativos. Los tres tipos de instruccin se subdividen en 4 trayectorias separadas. La operacin seleccionada se activa con la transicin de reloj asociada con la seal de temporizacin T7. Cuando se encuentra una instruccin de referencia a memoria con I = 1 no es necesario hacer nada porque la direccin efectiva ya est en AR, sin embargo el contador secuencial SC para que pueda continuar la ejecucin de la instruccin de referencia a memoria con la variable de temporizacin T 4. Puede ejecutarse una instruccin de referencia a registro o de entrada-salida mediante el reloj asociado con la seal de temporizacin T3. Despus de ejcutarse la instruccin, se borra SC a 0 y el control regresa a la fase de bsqueda con T0 = 1. Si el control reconoce las instrucciones de referencia a registro cuando D 7 = 1 e I = 0, estas instrucciones utilizan los bits del 0 al 11 del cdigo de instruccin para especificar una de las 12 instrucciones, estos bits estn disponibles en IR(0-11). S transfirieron a AR durante el tiempo T2. INSTRUCCIONES DE REFERENCIA A MEMORIA. Para especificar las operaciones que se requieren para la ejecucin de cada instruccin es necesario que la funcin que se pretende ejecutar se defina con precisin. Las instrucciones con referencia a memoria se pueden definir en forma precisa mediante la notacin de transferencia a registros. En la siguiente tabla se listan las siete instrucciones de referencia a memoria: SMBOLO AND ADD LDA STA DECODIFICADOR DE OPERACIN D0 D1 D2 D3 DESCRIPCIN SIMBLICA AC AC M[AR] AC AC + M[AR], E CSAL AC M[AR] M[AR] AC

16

BUN BSA ISZ

D4 D5 D6

PC AR M[AR] PC, PC AR + 1 M[AR] M[AR] + 1, Si M[AR] + 1 =0 entonces PC PC + 1

La salida decodificada Di para i = 0, 1, 2, 3, 4, 5 y 6 del decodificador de operacin que pertenece a cada operacin; la direccin efectiva de la instruccin est en AR y se coloc ah durante la seal de temporizacin T2 cuando I = 0 o durante la seal de temporizacin T3 cuando I = 1. La ejecucin de las instrucciones de referencia a memoria comienza con la seal de temporizacin T4. La ejecucin real de la instruccin en el canal del sistema de bus requerir una secuencia de microoperaciones; esto es porque los datos almacenados en la memoria no pueden procesarse en forma directa, los datos deben pasarse de la memoria a un registro donde pueden ser operados sobre circuitos lgicos. EJECUCIN DE LA INSTRUCCIN AND A AC: Es una instruccin que ejecuta la operacin AND sobre pares de bits en AC y la palabra de memoria especfica mediante la direccin efectiva. El resultado de la operacin se transfiere a AC, las microoperaciones que ejecuta esta instruccin son: D0T4 : DR M[AR] D0T5 : AC AC DR, SC 0 La funcin de control para esta instruccin utiliza el decodificador de operacin D 0 porque la salida del decodificador est activa cuando la instruccin tiene una operacin AND cuyo valor del cdigo binario es 000, se requieren 2 seales de temporizacin para ejecutar la instruccin, la transicin de reloj asociada con la seal de temporizacin T4 transfiere el operando de la memoria dentro de DR, la transicin de reloj asociada con la siguiente seal de temporizacin transfiere a AC el resultado de la operacin lgica AND entre el contenido de DR y AC, la misma transicin de reloj pasa SC a 0, al transferir el control a la seal de temporizacin T 0 para comenzar un nuevo ciclo de instruccin. EJECUCIN DE LA INSTRUCCIN ADD A AC: Esta instruccin suma el contenido de la palabra de memoria especificada por la direccin efectiva al valor de AC. La suma se transfiere dentro de AC y el acarreo de salida CSAL se transfiere al flip-flop E (extensin del acumulador) las microoperaciones para ejecutar la instruccin son: D1T4 : DR M[AR] D1T5 : AC AC + DR, E CSAL SC 0

17

Se utilizan las mismas seales de temporizacin pero con el decodificador de operacin D1. Despus de que se busca la instruccin en la memoria y se decodifica, slo estar activa una salida del decodificador de operacin y esa salida determina la secuencia de microoperaciones que sigue el control durante la ejecucin de la instruccin de referencia a memoria. EJECUCIN DE LA INSTRUCCIN LDA: CARGAR A AC. Esta instruccin transfiere la palabra de memoria especificada por la direccin efectiva a AC. D2T4 : DR M[AR] D2T5 : AC DR, SC 0 Como no hay conexin directa del bus con AC, el circuito sumador y lgico recibe informacin de DR la cual se transfiere a AC, por lo tanto, primero es necesario llevar la palabra de memoria a DR y despus transferirlo. EJECUCIN DE LA INSTRUCCIN STA: ALMACENAR AC. Esta instruccin almacena el contenido de AC en la palabra de memoria especificada por la direccin efectiva. Como la salida de AC se aplica al bus y la entrada de datos de la memoria est conectada al bus, podemos ejecutar esta operacin con una microoperacin: D3T4 : M[AR] AC, SC 0 EJECUCIN DE LA INSTRUCCIN BUN: SALTO INCONDICIONAL. Esta instruccin transfiere el control del programa a la instruccin especificada por la direccin efectiva. La instruccin BUN permite que el programador especifique una instruccin fuera de secuencia y se dice que el programa salta de manera incondicional. Esta instruccin se ejecuta con una sola microoperacin: D4T4 : PC AR, SC 0 La direccin efectiva de AR se transfiere por el bus al PC, al restablecer SC a 0 se transfiere el control a T0 , despus se busca y se ejecuta la siguiente instruccin de la direccin de memoria proporcionada por el nuevo valor de PC. EJECUCIN DE LA INSTRUCCIN BSA: SALTAR Y GUARDAR LA DIRECCIN DE RETORNO. Esta instruccin es til para saltar hacia una porcin del programa llamada subrutina o procedimiento, cuando se ejecuta, la instruccin BSA almacena la direccin de la

18

siguiente instruccin en secuencia dentro de una posicin de la memoria especificada por la direccin efectiva, la direccin efectiva ms uno se transfiere despus a PC para servir como la direccin de la primera instruccin en subrutina. La instruccin BUN indirecta al final de la subrutina ejecuta la funcin que se denonima retorno de la subrutina, para usar en forma adecuada la memoria y el bus, la instruccin BSA debe ejecutarse con una secuencia de dos microoperaciones: D5T4 : M[AR] PC, AR AR + 1 D5T5 : PC AR, SC 0 La seal de temporizacin T4 inicia una operacin de escribir y coloca el contenido de PC en el bus, habilita e comando INR de AR, la operacin de escribir en memoria se completa y AR se incrementa cuando ocurre la siguiente transicin de reloj, el bus se utiliza en T5 para transferir el contenido de AR a PC. EJECUCIN DE LA INSTRUCCIN ISZ: INCREMENTAR Y SALTAR SI ES CERO. Esta instruccin incrementa la palabra especificada por la direccin efectiva y si el valor incrementado es igual a 0, PC se incrementa en 1. Como no es posible incrementar una palabra dentro de la memoria es necesario leer la palabra dentro de DR, incrementar DR y almacenar nuevamente la palabra en la memoria, esto se hace con la siguiente secuencia de microoperaciones: D6T4 : DR M[AR] D6T5 : DR DR + 1 D6T6 : M[AR] DR, si DR = 0 entonces PC PC + 1, SC 0 DIAGRAMA DE FLUJO DE CONTROL. En el diagrama de flujo se muestra todas las microoperaciones de referencia a memoria. Las funciones de control se indican en la parte superior de cada bloque del diagrama. Las microoperaciones que se ejecutan durante los tiempos T4 T5 o T6 dependen del valor del cdigo de la operacin. Esto se indica en el diagrama mediante trayectorias diferentes, una de las cuales toma el control despus de que se decodifica la instruccin, en cada caso, el contador secuencial se borra a 0 con la ltima seal de temporizacin, esto provoca una transferencia de control a la seal de temporizacin T0 para que comience el siguiente ciclo de instruccin.

19

Instruccin de referencia a memoria AND D0T4 DR M[AR] D0T5 AC ACAC SC 0 BUN D4T4 PC AR SC 0 ADD D1T4 DR M[AR] D1T5 ACACAC E Csal SC 0 BSA D5T4 M[AR] PC AR AR + 1 D5T5 PC AR SC 0 D6T6 M[AR] DR Si DR = 0 Entonces PC PC + 1 SC 0 D6T5 DR DR + 1 DR M[AR] D2T5 AC DR SC 0 ISZ D6T4 DR M[AR] LDA D2T4 STA D3T4 M[AR] AC SC 0

INSTRUCCIONES DE REFERENCIA A REGISTRO. El control reconoce las instrucciones de referencia a registro cuando D 7 = 1 e I = 0. Estas instrucciones utilizan los bits del 0 al 11 del cdigo de instruccin. Las funciones de control y las microoperaciones para las instrucciones de referencia a

20

registro se listan en la siguiente tabla, estas instrucciones se ejecutan con transicin de reloj asociada a T3. Cada funcin de control necesita la relacin D 7IT3 que representamos por r; la funcin de control se distingue por uno de los bits en IR(011), se asigna Bi al bit i de IR, por tanto las funciones de control se representan rBi SMB FUN. DE MICROOPERACIONES. DESCRIPCIN CONTROL R SC 0 Borrar SC CLA rB11 AC 0 Borrar AC CLE rB10 E0 Borrar E CMA rB9 AC AC Complementar AC CME rB8 E E Complementar E CIR rB7 ACshrAC, AC(15) E, Circular a la derecha E AC(0) CIL rB6 ACshlAC, AC(0) E, Circular a la izquierda E AC(15) INC rB5 AC AC + 1 Incrementar AC SPA rB4 Si AC(15) = 0 entonces Saltar si es positivo PC PC + 1 SNA rB3 Si AC(15) = 1 entonces Saltar si es negativo PC PC + 1 SZA rB2 Si AC = 0 entonces Saltar si AC es cero PC PC + 1 SZE rB1 Si E = 0 entonces Saltar si E es cero PC PC + 1 HLT rB0 S 0 (S es un flip-flop de Detener la computadora. inicio-alto) Las primera siete instrucciones de referencia a registro ejecutan las microoperaciones de borrar, complementar, corrimiento circular e incrementar sobre los registros AC o E, las siguientes cuatro instrucciones provocan un salto de la siguiente instruccin en secuencia cuando se satisface una condicin establecida. La instruccin de salto se ejecuta al incrementar PC en 1. Los enunciados de control de condicin deben reconocerse como parte de las condiciones de control. AC es positivo cuando el bit de signo en AC(15) es 0 o negativo cuando es 1. El contenido de AC es 0 si todos los flip-flops del registro son 0. La instruccin HLT borra in flip-flop de inicio-alto S y detiene el funcionamiento del SC. Para restablecer la operacin del computador, el flip-flop S debe ser iniciado en forma manual. ENTRADA SALIDA E INTERRUPCIONES. La utilidad de un computador es la relacin con el ambiente externo, por lo tanto se le deben suministrar las instrucciones por medio de dispositivos de entrada y el equipo despus de procesar la informacin debe comunicar los resultados por medio de dispositivos de salida.

21

CONFIGURACIN DE ENTRADA SALIDA. La terminal enva y recibe informacin serial, cada cantidad de informacin tiene 8 bits de un cdigo alfanumrico, la informacin serial del teclado se cambia dentro del registro de entrada INPR, la informacin serial para la salida se almacena en el registro de salida OUTR. FGI ENTRADA (teclado) INTERFAZ TRANSMISORA INPR

AC

SALIDA (impresora)

INTERFAZ RECEPTORA

OUTR FGO

Terminal de Entrada-salida

Interfaz de Comunicacin serial

Registros de Computadora y flip-flops

El registro de entrada INPR consta de 8 bits y contiene informacin de entrada alfanumrica. La bandera de entrada de 1 bit FGI es un flip-flop de control. El bit de la bandera se activa en 1 cuando hay disponible informacin nueva en el dispositivo de entrada y 0 cuando la computadora acepta la informacin. La bandera es necesaria para sincronizar la diferencia de la velocidad de temporizacin entre el dispositivo de entrada y el computador. Para el proceso de transferencia de informacin, la bandera inicialmente est en 0, cuando se oprime una tecla se ejecuta un corrimiento sobre un cdigo alfanumrico de 8 bits dentro de INPR y la bandera de entrada FGI se activa en 1. Mientras la bandera est en 1, no puede cambiarse la informacin en INPR al oprimir otra tecla, el computador comprueba que el bit si es 1, la informacin de INPR se transfiere en paralelo dentro de AC y FGI se reinicia a 0, una vez que se desactiva la bandera, puede introducirse nueva informacin dentro de INPR al oprimir otra tecla.

22

El registro de salida OUTR funciona en forma similar pero el flujo de informacin es en otro sentido. Inicialmente la bandera de salida FGO, el computador comprueba el bit de la bandera, si es 1, la informacin de AC se transfiere en paralelo a OUTR y FGO se desactiva a 0, el dispositivo de salida acepta la informacin codificada y cuando termina la operacin correspondiente, imprimir o mostrar en pantalla, activa FGO en 1, el computador no carga un nuevo carcter en OUTR cuando FGO es 0 porque esta condicin indica que el dispositivo de salida se encuentra en algn proceso. INSTRUCCIONES ENTRADA SALIDA. Se necesitan instrucciones de entrada salida para transferir informacin hacia y desde AC, para comprobar los bits de bandera y controlar la opcin de interrupcin. Las instrucciones de entrada salida tienen un cdigo de operacin 1111 que reconoce el control cuando D7 = 1 e I = 1. Los bits restantes de la instruccin especifican la operacin en particular. Las funciones de control y las microoperaciones para las instrucciones de entrada salida se listan en la siguiente tabla. Las instrucciones se ejecutan con la transicin de reloj asociada con la seal de temporizacin T3. Cada funcin de control necesita una relacin boleana D7IT3, que se representar con el smbolo p. La funcin de control se diferencia por uno de los bits en IR(6-11). Al asignar el smbolo Bi al bit i de IR, todas las funciones de control pueden representarse mediante para i = 6 a 11. El contador secuencial SC se borra a cero cuando p = D7IT3 = 1. SMB INP OUT SKI SKO ION IOF FUN. DE CONTROL P pB11 p B10 pB9 pB8 pB7 pB6 MICROOPERACIONES. SC 0 AC(0-7)INPR, FGI0 OUTRAC(07), FGO0 Si FGI=1 entonces PCPC+1 Si FG0=1 PCPC+1 IEN1 IEN0 DESCRIPCIN

Borrar SC Introducir carcter Sacar carcter Saltar si hay bandera entrada entonces Saltar si hay bandera salida Habilitacin interrupcin encendida Habilitacin interrupcin apagada.

de de de de

La instruccin INP transfiere la informacin de entrada de INPR a los 8 bits de orden menor de AC y tambin desactiva la bandera de entrada a 0. La instruccin OUT transfiere los 8 bits menos significativos de AC al registro de salida OUTR y desactiva la bandera de salida a 0. Las siguientes instrucciones comprueban el estado de las banderas y producen un salto de la siguiente instruccin si la bandera es 1. Las

23

ltimas 2 instrucciones activan y desactivan un flip-flop de habilitacin de interrupcin IEN. INTERRUPCIN DEL PROGRAMA. Mientras el computador est corriendo un programa, no comprueba el estado de las banderas, pero, cuando se activa una bandera, el computador interrumpe momentneamente su procedimiento con el programa actual y se le informa que se ha activado una bandera, el computador deja lo que est haciendo para ocuparse de la transferencia de entrada o salida, despus regresa al programa a continuar lo que estaba haciendo antes de la interrupcin. Este procedimiento controlado para transferencia utiliza la opcin de interrupcin. El flip-flop de habilitacin de interrupcin puede habilitarse o deshabilitarse con dos instrucciones, cuando IEN se borra a 0, las banderas no pueden interrumpir al computador. Cuando IEN se activa en uno el computador puede ser interrumpido; estas dos instrucciones le proporcionan al programador la opcin de decidir si utiliza o no la opcin de interrupcin. La manera en que el computador maneja la interrupcin puede explicarse mediante el siguiente diagrama de flujo.

Ciclo de Instruccin

= 1

Ciclo de Interrupcin Almacenar direccin de retorno en la posicin 0 M[0] PC

Instruccin para Buscar y Decodificar

Ejecutar instruccin =1 =1

=0 Ramificar a la posicin 1 PC 1 =0 =1 =0 R 1 IEN 0 R0

24

En la grfica se incluye el flip-flop de interrupcin R, cuando R = 0, el computador ejecuta un ciclo de instruccin, durante la fase de ejecucin de la instruccin, el control comprueba el estado de IEN, si es 0, indica que el programador no desea usar la interrupcin; si IEN es 1 el control comprueba los bits de bandera, si ambas banderas son 0, significa que tanto el registro de entrada como de salida no estn listos para una transferencia de informacin. En este caso el control contina con el siguiente ciclo de instruccin, si alguna bandera est en 1 mientras IEN = 1, el flipflop R se inicia en 1. Al final de la fase de ejecucin, el control comprueba el valor de R, y si es igual a 1, va a un ciclo de interrupcin en lugar de un ciclo de instruccin. El ciclo de interrupcin es una implementacin de hardware de una transferencia de programa y guarda la direccin de retorno de la siguiente instruccin. La direccin de retorno disponible en el PC se almacena en una localidad especfica donde pueda encontrarse despus, cuando el programa retorne a la instruccin en la cual fue interrumpida. CICLO DE INTERRUPCIN. El ciclo de interrupcin se inicia en la ltima fase de ejecucin si el flip-flop R de interrupcin es igual a 1, este se activa si IEN = 1 y si FGI o FGO son iguales a 1. Esto puede suceder en cualquier transicin de reloj excepto cuando las seales de temporizacin T0, T1 y T2 estn activas. La condicin para activar el flip-flop en 1 se expresa con las siguientes microoperaciones: T0 T1 T2 (IEN)(FGI + FGO): R 1 El smbolo + entre FGI y FGO en la funcin de control representa una funcin OR lgica, a esto se le aplica una funcin AND con IEN y T0 T1 T2. En lugar de slo usar seales de temporizacin T0, T1 y T2 aplicamos la funcin AND con R a las tres seales de temporizacin para que las fases de bsqueda y de decodificacin reconozcan las tres funciones de control RT0, RT1 y RT2 , esto se hace porque en el tiempo en que se ejecuta la instruccin y SC se borra a 0, el control recorre una fase de bsqueda slo si R = 0. Si R = 1, el control recorrer un ciclo de instruccin. El ciclo de interrupcin almacena la direccin de retorno dentro de la posicin de memoria 0, modifica la posicin de memoria 1 y desactiva IEN, R y SC a 0, esto se hace con las siguientes microoperaciones: RT0 : AR 0, TR PC RT1 : M[AR] TR, PC 0 RT2 : PC PC + 1, IEN 0, R 0, SC 0. Durante la primera seal de temporizacin se borra AR a 0, y el contenido de PC se transfiere al registro temporal TR. Con la segunda seal de temporizacin, la

25

direccin de retorno se almacena en la memoria en la posicin 0 y PC se carga a 0. La tercera seal de temporizacin incrementa PC a 1, desactiva IEN y R, y el control regresa a T0 al borrar SC a 0. El siguiente ciclo de instruccin tiene la condicin RT0 y el contenido de PC es igual a 1, despus el control recorre un ciclo de instruccin que busca y ejecuta la instruccin BUN. DESCRIPCIN COMPLETA DE UNA COMPUTADORA. En el diagrama se muestra el flujo del ciclo completo, incluyendo el ciclo de interrupcin para la computadora bsica: Inicio SC 0, IEN 0, R 0 Ciclo de inst.=0 RT0 AR PC RT1 IRM[AR], PCPC+1 RT2 ARIR(0-11), I IR(15) D ...D decodif. IR(12-14) =1 Ciclo de interrupcin. RT0 AR 0, TR PC RT1 M[AR] TR, PC0 RT2 PCPC+1, IEN0 R 0, SC 0 .

Registro o I/O = 1 I/O =1 D3IT3 Ejecuta la inst. I/O = 0 registro D3IT3 Ejecuta la Intr. De Ref. a reg.

= 0 Referencia o memoria Indirecto = 1 D3IT3 ARM[AR] =0 directo D3IT3 Nada

Ejecuta la instruccin de referencia a memoria

26

El flip-flop de interrupcin puede iniciarse en cualquier momento durante las fases indirecta o de ejecucin. El control regresa a la seal de temporizacin T 0 despus de que SC se borra a 0, si R 0 1, el computador ejecuta un ciclo de interrupcin, si R = 0, el computador ejecuta un ciclo de instruccin. Si la instruccin es de referencia a memoria, el computador comprueba primero si existe una direccin indirecta y despus contina ejecutando la instruccin, bien sea que se decodifique, de referencia a registro o de entrada o salida. DISEO DE UNA COMPUTADORA BSICA. La computadora bsica consta de los siguientes componentes de hardware: 1. 2. 3. 4. Una unidad de memoria con 4096 palabras de 16 bits cada una. Nueve registros: AR, PC, DR, AC, IR, TR, OUTR, INPR y SC. Siete flip-flops: I, S, E, R, IEN, FGI y FGO. Dos decodificadores: un decodificador de operacin de 3x8 y un decodificador de temporizacin de 4x16. 5. Un bus comn de 16 bits. 6. Compuertas lgicas de control. 7. Un circuito sumador y lgico conectado a la entrada de AC. Tambin se tiene diferentes funciones de control y microoperaciones, para poder cumplir con las diferentes instrucciones: recuperacin, decodificar, interrupciones, referencia a memoria, referencia a registro y entrada salida; estas aparecen en la siguiente tabla: Recuperar Decodificar Interrupcin indirecta: RT0 : AR PC RT1 : IR M[AR], PC PC + 1 RT2 : D0 ......D7 Decodificar IR(12-14) AR IR(0-11), I IR(15) D7IT3 : AR M[AR] T0T1T2 (IEN)(FGI + FGO): R 1 RT0 : AR 0, TR PC RT1 : M[AR] TR, PC 0 RT2 : PC PC + 1, IEN 0, R 0, SC 0 Referencias a memoria: AND D0T4 : DR M[AR] D0T5 : AC AC DR, SC 0 ADD D1T4 : DR M[AR] D1T5 : AC AC + DR, E CSAL SC 0 LDA D2T4 : DR M[AR]

27

STA BUN BSA ISZ

D2T5 : AC DR, SC 0 D3T4 : M[AR] AC, SC 0 D4T4 : PC AR, SC 0 D5T4 : M[AR] PC, AR AR + 1 D5T5 : PC AR, SC 0 D6T4 : DR M[AR] D6T5 : DR DR + 1 D6T6 : M[AR] DR, si DR = 0 entonces PC PC + 1, SC 0 D7IT3 = r IR(i) = BI (i = 0, 1, 2, ... , 11) r : SC 0 rB11 : AC 0 rB10 : E 0 rB9 : AC AC rB8 : E E. rB7 : ACshrAC, AC(15) E, E AC(0) rB6 : ACshlAC, AC(0) E, E AC(15) rB5 : AC AC + 1 rB4 : Si AC(15) = 0 entonces PC PC + 1 rB3 : Si AC(15) = 1 entonces PC PC + 1 rB2 : Si AC = 0 entonces PC PC + 1 rB1 : Si E = 0 entonces PC PC + 1 rB0 : S 0 D7IT3 = p IR(i) = BI (i = 6, 7, 8, ... , 11) p : SC 0 pB11 : AC(0-7)INPR, FGI0 pB10 : OUTRAC(07), FGO0 pB9 : Si FGI=1 entonces PCPC+1 pB8 : Si FGO=1 entonces PCPC+1 pB7 : IEN 1 pB6 : IEN 0

Referencia a registro:

CLA CLE CMA CME CIR CIL INC SPA SNA SZA SZE HLT Entrada - salida

INP OUT SKI SKO ION IOF

Nos quedara faltando el diseo de las compuertas lgicas de control y el diseo del circuito sumador y lgico. COMPUERTAS LGICAS DE CONTROL: control son: las salidas del circuito lgico de

1. Seales para controlar las entradas de los nueve registros. 2. Seales para controlar las entradas de lectura y escritura de la memoria.

28

3. Seales para iniciar, borrar o complementar los flip-flops. 4. Seales para S2, S1 y S0 con el fin de seleccionar un registro para el bus. 5. Seales para controlar el circuito sumador y lgico. CONTROL DE REGISTROS Y MEMORIA. Las entradas de control de registro son LD cargar, INR incrementar y CLR borrar. Si queremos tener la estructura de compuertas asociada con las entradas de control de AR, empezaremos con los enunciados que cambian el contenido de AR. RT0 : AR PC RT2 : AR IR(0-11) D7IT3 : AR M[AR] RT0 : AR 0 D5T4 : AR AR + 1 Los primeros 3 enunciados especifican la transferencia de informacin de un registro o de la memoria a AR. El contenido del registro fuente de la memoria se coloca en el bus y el contenido del bus se transfiere AR al habilitar la entrada de control LD. El cuarto enunciado borra a AR y el ltimo lo incrementa en 1. Las funciones de control pueden combinarse en tres funciones booleanas: LD(AR) = RT0 + RT2 + D7IT3 CLR(AR) = RT0 INR(AR) = D5T4 . Las compuertas lgicas de control asociadas con AR se muestran en la figura: Desde el bus D7 I T3 T2 R T0 D5 T4 CLR o LD AR hacia el bus Reloj

INR

29

CONTROL DE FLIP-FLOPS NICOS. Las compuertas de control para los siete flip-flops pueden determinarse de manera similar. CONTROL DE UN BUS COMN. El bus comn de 16 bits se controla mediante las entradas de seleccin S 2, S1 y S0. El nmero decimal que aparece con cada entrada de bus especfica el nmero binario que debe aplicarse a la entrada de seleccin para elegir el correspondiente. Cada nmero binario est asociado con una variable booleana x 1 hasta x7, que corresponde a la estructura de compuerta que debe estar activa para seleccionar el registro o la memoria para el bus. Por ejemplo, cuando x 1 = 1, el valor S2S1S0 debe ser 001 y se seleccionar la salida de AR para el bus. En la siguiente tabla se muestra la tabla de verdad de un codificador binario. x1 0 1 0 0 0 0 0 0 x2 0 0 1 0 0 0 0 0 ENTRADAS x3 x4 x5 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 x6 0 0 0 0 0 0 1 0 x7 0 0 0 0 0 0 0 1 S2 0 0 0 0 1 1 1 1 SALIDAS S1 0 0 1 1 0 0 1 1 S0 0 1 0 1 0 1 0 1 REG. SELECCIONADO PARA BUS Ninguno AR PC DR AC IR TR MEMORIA

Con el fin de determinar la lgica para cada entrada del codificador es necesario encontrar las funciones del control que colocan los registros dentro del bus. Para encontrar la lgica que hace x1 = 1, revisamos los enunciados de las microoperaciones de transferencia de registro y tomamos aquellos que tienen a AR como fuente: D4T4 : PC AR D5T5 : PC AR Por lo tanto la funcin booleana para x1 es: x1 = D4T4 + D5T5 de igual forma podemos encontrar la lgica de compuertas para los otros registros.

30

DISEO DE UN ACUMULADOR LGICO. En la grfica se pueden observar los circuitos asociados con el registro AC.

16 DR 16 INPR 8

Circuito sumador y lgico

16

Registro Acumuludor (AC) LD INR CLR Reloj

16 Hacia el bus

Compuertas de control El circuito sumador y lgico tiene tres conjuntos de entradas, un conjunto de 16 entradas que proviene de la salida de AC, otro conjunto de 16 entradas viene del registro de datos DR y un tercer conjunto de 8 entradas que llega del registro de entrada INPR. Las salidas del circuito sumador y lgico proporcionan las entradas de datos para el registro, adems se deben incluir las compuertas lgicas para controlar los comandos LD, INR y CLR en el registro y para controlar la operacin del circuito sumador y lgico. Para disear la lgica asociada con AC, es necesario analizarlos enunciados de transferencia de los registros y obtener todos aquellos que cambian el contenido de AC. D0T5 : AC AC DR D1T5 : AC AC + DR D2T5 : AC DR pB11 : AC(0-7) INPR rB9 : AC AC rB7 : AC shr AC, AC(15) E rB6 : AC shl AC, AC(0) E rB11 : AC 0 rB5 : AC AC + 1 AND con DR Agregar con DR Transferir de DR Transferir de INPR Complemento Mover a la derecha Mover a la izquierda Borrar Incrementar

31

De esta lista podemos deducir las compuertas lgicas de control y el circuito sumador y lgico. CONTROL DEL REGISTRO AC. Con las funciones de control de AC, podemos ver que las 7 primeras cambian el contenido de AC, en otras palabras corresponde al control LD (cargar), la octaba funcin corresponde a CLR (borrar) y la ltima a INR (incrementar). Desde el sumador y lgico 16 D0 T5 D1 DR D2 p B11 r B9 B7 SHL B6 . INC B5 CLR B11 CIRCUITO SUMADOR Y LGICO. El circuito sumador y lgico puede dividirse en 16 etapas, donde cada una corresponde a un bit de AC, la construccin interna interna del circuito es como aparece en la figura, donde cada etapa contiene un flip-flop JK, 7 compuertas AND que reciben seal de cada una de las instrucciones de referencia a memoria que se INPR COM SHR AND ADD LD AC Hacia el bus 16 Reloj INR CLR

32

disearon en los controles de AC, esto porque el control tambin maneja al circuito sumador y lgico, la etapa tambin contiene un sumador completo FA que es utilizado para el manejo de los acarreos (carry). Las 16 etapas del circuito sumador y lgico deben estar interconectadas. DR(i) AND Ci FA ADD LD DR INPR INPR(i) COM SHR AC(i + 1) Reloj SHL AC(i 1) J K Q AC(i)

33

34