Logo Studenta

1.4. RUTA DE DATOS Tal como se adelantaba, la Unidad Aritmético-Lógica está formada por elementos combinacionales que realizan operaciones aritméti...

1.4. RUTA DE DATOS Tal como se adelantaba, la Unidad Aritmético-Lógica está formada por elementos combinacionales que realizan operaciones aritméticas y lógicas, en las que las señales de control definen la ejecución de la operación. Para comprender la importancia, la relación y el funcionamiento de los elementos que la componen, vamos a diseñar nuestra propia CPU. 1.4.1. Unidad aritmético-lógica. Supongamos que queremos desarrollar una UAL que realice las operaciones recogidas en la Tabla 1. Para facilitar la comprensión vamos a desarrollar una UAL con unas pocas operaciones básicas. Diseñar una CPU comparable con las que tienen los ordenadores actuales supondría añadir mucha complejidad, dificultando la comprensión. TABLA 1. Operaciones para nuestra CPU. Operaciones Aritméticas Decremento, incremento Suma, resta Lógicas NOT, AND, OR, XOR Movimiento (RD)← (RB) (1) Desplazamiento Hacia la izquierda (1 bit) Hacia la derecha (1 bit) Borrado (RD)← 0 (2) Control de secuencia Salto/bifurcación incondicional Salto/bifurcación condicionada a cero (1) El contenido del Reg. B pasa al Reg. D (2) El contenido del Reg. D pasa a ser “0” 1.4.2. Circuito lógico. Comenzamos por el diseño del circuito lógico, es decir, la parte encargada de realizar las microoperaciones lógicas. Antes de nada recordemos una cosa: el resultado de la operación 0100+0101 será 1001 para una operación aritmética (SUMA), y 0101 para una operación lógica (OR); es decir, las operaciones lógicas son operaciones bit a bit. Por lo tanto, en este punto trabajaremos con una etapa genérica (la etapa i− ésima) del circuito lógico, sin olvidar que para cada operando de n bits, deberá haber n etapas como ésta. Mirando la Tabla 1 vemos que las operaciones lógicas deseadas son cuatro, necesitaremos por lo tanto dos bits para codificarlas. La Tabla 2 muestra las cuatro operaciones lógicas y la combinación de los bits S1 y S0 que las identifican. TABLA 2. Tabla de las operaciones lógicas. S1 S0 Salida Operación 0 0 A·B AND 0 1 A+B OR 1 0 A⊕B XOR 1 1 A NOT Para cada etapa del circuito lógico utilizaremos por lo tanto cuatro puertas lógicas: una AND, una OR, una XOR y una NOT . Estas puertas tendrán a la entrada el i-ésimo bit de los datos A y B, y sus salidas irán a un multiplexor de 4 entradas. Los dos bits que identifican la operación serán las señales de selección del multiplexor. En la Figura 4 se representa el circuito correspondiente a las cuatro operaciones lógicas descritas. 1.4.3. Circuito aritmético. El circuito aritmético debe realizar sumas y restas, lo diseñaremos por lo tanto utilizando un sumador completo de n bits (en realidad serán varios sumadores conectados). Siendo A y B números de n bits, vamos a suponer que el operando A entra tal cual al sumador, y que es el operando B el que necesita, en función de la operación a realizar, ser modificado de alguna manera. Teniendo en cuenta que en la entrada A del sumador irá el dato A y que las restas se realizarán complementando a dos el minuendo (recordemos que el complemento a dos de B es B̄+ 1, y el numero decimal -1 en complemento a dos es una secuencia de n ’1’s), la cuestión es cómo deberán ser las entradas B y CIN del sumador para realizar las operaciones A−1, A+1, A+B y A−B. La respuesta y los bits para codificar las cuatro operaciones se recogen en la Tabla 3. TABLA 3. Entradas A, B y Cin y salidas del sumador para las diferentes combinaciones de S3 y S2. S3 S2 A B CIN Salida 0 0 A todo unos 0 A−1 0 1 A todo ceros 1 A+1 1 0 A B 0 A+B 1 1 A B̄ 1 A−B Por lo tanto el dato A entrará sin modificar al sumador, pero es necesario añadir una lógica que modifique el dato B en función de las señales S3 y S2 tal y como se recoge en la Tabla 3. Es decir, tenemos el circuito de la Figura 5. 1.4.4. Desplazador. Volviendo a la Tabla 1 , vemos que ya tendríamos las operaciones aritméticas y lógicas, de modo que, además de la instrucciones de control de secuencia, nos faltarían las de transferencia entre registros (del registro B al D), desplazamiento de 1 bit a la derecha e izquierda, borrado de un registro (del registro D). Para los desplazamientos podríamos añadir un registro de desplazamiento universal, que permita hacer un desplazamiento de 0 bits o de un bit para uno u otro lado. Sin embargo

Esta pregunta también está en el material:

Estructura y Arquitectura de Computadores
270 pag.

Informática I Instituto Universitario Politécnico Santiago MariñoInstituto Universitario Politécnico Santiago Mariño

💡 1 Respuesta

User badge image

Ed IA de Studenta Verified user icon

Lo siento, parece que la pregunta está incompleta. Por favor, publique una nueva pregunta.

0
Dislike0

✏️ Responder

FlechasNegritoItálicoSubrayadaTachadoCitaCódigoLista numeradaLista con viñetasSuscritoSobreDisminuir la sangríaAumentar la sangríaColor de fuenteColor de fondoAlineaciónLimpiarInsertar el linkImagenFórmula

Para escribir su respuesta aquí, Ingresar o Crear una cuenta

User badge image

Otros materiales