Vous êtes sur la page 1sur 48

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

PRESENTACION

Dada la naturaleza de la carrera que escog el desarrollo de este proyecto me ser de ayuda a comprender el funcionamiento de un componente indispensable del computador, ya que todo informtico que carezca de estos conocimientos no tendra una completa formacin profesional. El trabajo desarrollado tiene el propsito de ensearnos el comportamiento del adquirir un mayor microprocesador, especialmente el funcionamiento del ALU, para servirn de base para un mejor entendimiento del tema.

conocimiento concerniente a este. Desarrollar algunos conceptos fundamentales que nos

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Introduccin
El manejo y procesamiento de datos es el propsito fundamental en la informtica, es necesario tener pleno conocimiento de los procesos internos que efecta el computador y cada uno de sus componentes, el procesador del computador consta de un conjunto de dispositivos, entre estos el ALU que se encarga de realizar operaciones aritmticas lgicas. Con el propsito de hacer ms eficiente el clculo de estas operaciones en la actualidad existe una intensa investigacin en nuevos algoritmos aritmticos. El avance de la tecnologa de integracin hace posible y atractiva la implementacin de tcnicas aritmticas potentes que hasta hace unos pocos aos no eran asequibles. Adems existen aplicaciones que demandan algoritmos aritmticos eficientes, tanto en microprocesadores de propsito general (Hardware en punto flotante), como en procesadores de aplicacin especfica para aplicaciones grficas, procesado digital de seales e imgenes, etc. En este trabajo centro atencin especficamente en el ALU, dando el marco terico bsico acerca del tema, incluyendo conceptos bsicos de un ALU, Qu es un nmero binario, binario de punto flotante, hexadecimal, BCD?, las operaciones que se pueden realizar entre estos, su implementacin y funcionamiento en un computador.

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

1. Objetivos
1. Conocer la funcin del procesador y sus partes. 2. Conocer la aritmtica lgica que utiliza el ALU. 3. Desarrollar un simulador del ALU basado en la aritmtica que usa.

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

2. Microprocesador
En su forma ms simple, un sistema de computadora cuenta con una unidad que ejecuta instrucciones de programas. Esta unidad se comunica con otros subsistemas (dispositivos) dentro de la computadora, y a menudo controla su operacin. Debido al papel central de tal unidad se conoce como unidad central de procesamiento (microprocesador), o CPU (Central processing unit). Dentro de muchas computadoras, un subsistema como una unidad de entrada, o un dispositivo de almacenamiento masivo, puede incorporar una unidad de procesamiento propia, sin embargo tal unidad de procesamiento, aunque es central para su propio subsistema, resulta claro que no es "central" para el sistema de computadora en su conjunto. No obstante, los principios del diseo y operacin de una CPU son independientes de su posicin en un sistema de computadora. El microprocesador se lo conoce tambin con el simple nombre de micro o como procesador, CPU, UCP (en castellano), etc. que hacen referencia a lo mismo. En este documento me referir a este componente con el nombre de CPU. Tambin se la suele describir como el cerebro de la computadora. Sin embargo, est mucho ms cerca de ser una calculadora veloz con habilidad para almacenar nmeros, realizar operaciones aritmticas simples y guardar resultados. Como es incapaz de pensar, la CPU no reconoce los nmeros que maneja ya que slo se trata de una mquina matemtica, la razn por la cual nuestra computadora puede proveernos de un entorno cmodo para trabajar o jugar es que los programas y el hardware entienden esos nmeros y pueden hacer que la CPU realice ciertas acciones llamadas instrucciones.

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Diagrama de Bloques de la Computadora.

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

3. Partes del microprocesador:


3.1.Encapsulado: es lo que rodea a la oblea de silicio en s, para darle consistencia, impedir su deterioro como por ejemplo por oxidacin con el aire y permitir el enlace con los conectores externos que lo acoplarn a su zcalo o a la placa base directamente. 3.2.Memoria cach: una memoria ultrarrpida que almacena ciertos bloques de datos que posiblemente sern utilizados en las siguientes operaciones sin tener que acudir a la memoria RAM, aumentando as la velocidad y diminuyendo el nmero de veces que la PC debe acceder a la RAM. Se la que se conoce como cach de primer nivel, L1 (level 1) cach interna, es decir, la que est ms cerca del micro, tanto que est encapsulada junto a l, todos los micros tipo Intel desde el 486 tienen esta memoria. En versiones posteriores como Pentium IV y Atlon XP y 64bits, algunos procesadores traen el L2 (level 2) y hasta un L3 (level 3), cada uno con diferentes tareas dentro del procesador. 3.3.Coprocesador matemtico: es la FPU (Floating Point Unit - Unidad de coma Flotante) parte de la CPU especializada en esa clase de clculos matemticos; tambin puede estar en el exterior de la CPU, en otro chip. 3.4.Unidad lgica aritmtica (ALU): es el ltimo componente de la CPU que entra en juego. La ALU es la parte inteligente del chip, y realiza las funciones de suma, resta, multiplicacin o divisin. Tambin sabe cmo leer comandos, tales como OR, AND o NOT. Los mensajes de la unidad de control le dicen a la ALU qu debe hacer.

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

La trayectoria de una mquina clsica de Von Neumman. 3.5.Unidad de control: es una de las partes ms importantes del procesador, ya que regula el proceso entero de cada operacin que realiza. Basndose en las instrucciones de la unidad de decodificacin, crea seales que controlan a la ALU y los Registros. La unidad de control dice qu hacer con los datos y en qu lugar guardarlos. Una vez que finaliza, se prepara para recibir nuevas instrucciones. 3.6.Prefetch Unit: esta unidad decide cundo pedir los datos desde la memoria principal o de la cach de instrucciones, basndose en los comandos o las tareas que se estn ejecutando. Las instrucciones llegan a esta unidad para asegurarse de que son correctas y pueden enviarse a la unidad de decodificacin. 3.7.Unidad de decodificacin: se encarga, justamente, de decodificar o traducir los complejos cdigos electrnicos en algo fcil de entender para la Unidad Aritmtica Lgica (ALU) y los Registros.

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

4. 4.1.

Otros Componentes
Registros Principales 4.1.1. Registros de Propsito General. Son 4 registros de 16 bits, que el programador usara para una diversidad de funciones. Tienen varias caractersticas en comn: Pueden ejecutar la mayora de las operaciones del procesador, incluyendo la generalidad de las instrucciones aritmticas y lgicas, salvo la multiplicacin y la divisin. Se dividen lgicamente en 2 registros de 8 bits cada uno llamados parte alta y parte baja; refirindose el registro de parte baja a los bits de 0-7 (menos significativos) y la parte alta a los bits de 8-15 (ms significativos). Los 4 registros tienen su nombre propio y ciertas especializaciones: AX: Registro de Acumulador Este registro es el ms usado, siendo de propsito general, de ah su nombre: Es el nico que puede ser usado como multiplicando en la multiplicacin. Es el nico que puede ser usado como dividendo en la divisin. Es el parmetro que selecciona los distintos servicios del sistema operativo, usados mediante el mecanismo de interrupciones. BX: Registro de Base Especifica en el acceso a memoria en combinacin con los registros ndice, especialmente para el manejo de arreglos. CX: Registro de Contador Ser ampliamente usado como contador, puede ser usado como cualquier registro de propsito general, pero tiene capacidades especiales para ser usado en instrucciones: De manejo de ciclos. Como contador en los corrimientos. De manejo de memoria y strings. Tiene como especializaciones:

DX: Registro de Datos

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Formar con AX significativa.

nmeros de 32 bits, siendo en este caso la parte ms

El acceso a puertos. Las instrucciones IN y OUT, que permiten dicho acceso, requerirn en ciertos casos que el numero de puertos este en DX. 4.1.2. Registros De ndice: Estos registros, de 16 bits, son muy similares a los de propsito general, pero no tienen todas las capacidades de los mismos; en particular: No pueden conectarse directamente con los registros de segmentos. No pueden verse como dos registros de 8 bits (parte alta y parte baja). Ahora bien, tienen sus propias habilidades. Especficamente, estn diseados para combinarse con los registros de segmento, ser usados como desplazamientos y as intervenir en el acceso a memoria. Se les usa, por ello, para el acceso a arreglos o como apuntadores. Los 4 registros que se consideran en este grupo son: SI: Source Index, o Apuntador a la Fuente Este registro se especializa en el acceso a bytes o words dentro del segmento de datos; existen instrucciones que lo toman por defecto como el registro que apunta a una localidad de memoria que se va a leer, por lo cual toma su nombre. DI: Destination Index, Apuntador al Destino Este registro se especializa en el acceso a bytes o words dentro del segmento de datos o el extra; existen instrucciones que lo toman por defecto como el registro que en combinacin con el ES apunta a una localidad de memoria que se va a escribir, por lo cual toma su nombre. BP: Base Pointer, o apuntador a la Base de la Pila. Este registro es usado para accesar, dentro del segmento de pila, la informacin. Principalmente nos permite determinar cuando hay un underflow, es decir, cuando se quiere sacar ms informacin de la pila que la que se ha colocado en ella; y el acceso a variables locales y parmetros. SP: Stack Pointer, o apuntador al tope de la Pila. Este registro tambin est siempre asociado al manejo de la pila. Su funcin especial es marcar el tope de la pila, y por tanto, indica en qu localidad de memoria UNIVERSIDAD ANDINA DEL CUSCO 9

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

se localiza la informacin de la pila; se incrementa cuando se hace un POP, con lo que apunta al siguiente elemento en la pila; y se decrementa al hacer un PUSH, con lo que controla el acceso a la memoria de la pila. 4.1.3. Registros De Bandera: Este es un registro de 16 bits, usados como banderas. Esto quiere decir que cada uno de los bits seala un evento dentro del procesador; cuando el bit tiene un valor de 0, el evento no ocurri (falso); y cuando tiene un valor de 1, el evento ocurri (verdadero). Entre las banderas ms importantes mencionaremos: ZF: Bandera de resultado 0 Se prende cuando el resultado de la ltima operacin realizada en el ALU fue un 0. CF: Bandera de carry Se prende cuando el resultado de la ltima operacin realizada en el ALU (necesariamente, una suma o resta) gener un carry o un borrow. OF: Bandera de overflow Se prende cuando el resultado de la ltima operacin realizada en el ALU excedi la capacidad del registro donde se almacena (overflow). SF: Bandera de signo Se prende cuando el resultado de la ltima operacin realizada en el ALU fue negativo, segn la representacin de complemento a 2 que mencionamos en clases anteriores. AF: Bandera de carry auxiliar Se prende cuando el resultado de la ltima operacin realizada en el ALU gener un carry cuando estaba a la mitad. Por ejemplo, si sumamos dos nmeros de 16 bits, nos indicar si la suma de las partes bajas (primeros 8 bits) haba generado carry; si sumamos dos nmeros de 8 bits, indica si el resultado intermedio despus de sumar los 4 bits menos significativos, gener carry para sumarse a los bits 5. DF: Bandera de direccin A diferencia de las anteriores, esta bandera no se prende como resultado del ALU, sino que el programador la usa para controlar la direccin del acceso mediante apuntadores, especialmente en las instrucciones de strings. UNIVERSIDAD ANDINA DEL CUSCO 10

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

IF: Bandera de interrupcin Se prende cuando el procesador es interrumpido, y est ejecutando una rutina de atencin de interrupcin. Esto evita que el procesador acepte interrupciones mientras est procesando interrupciones previas, de manera que no se pierda el control del procesador. 4.2. Buses Un bus es un conjunto de alambres que se usan para transferir seales en paralelo. Por ejemplo, los buses se utilizan para permitir que el contenido de un registro se copie en otro. Estos buses solo conectan dos dispositivos, de modo que no hay necesidad de lneas de direcciones serial bit por bit. Un bus puede ser unidireccional o bidimensional. Un bus unidireccional puede transferir informacin en un solo sentido; en cambio uno bidireccional puede transferir en los dos sentidos, pero no simultneamente Los unidireccionales suelen usarse para conectar registros uno de los cuales siempre es fuente cuales pueden y el otro es destino. Los bidireccionales suelen usarse cuando hay una coleccin de registros. Cualquiera de los ser fuente o destino. Muchos dispositivos tienen la posibilidad de conectarse y desconectarse elctricamente de los buses a los que estn conectados fsicamente. Estas conexiones pueden abrirse y cerrarse en cuestin de nanosegundos. Un bus cuyos dispositivos tengan la propiedad se llama bus triestado, porque cada lnea puede estar a 0, a 1 o desconectada. Suele utilizarse cuando hay muchos dispositivos que pueden suministrar informacin a un bus. En la mayora de las microarquitecturas algunos registros estn conectados a uno o ms buses de entrada y a uno o ms de salida. Un esquema de un registro de 8 bits conectado a un bus de entrada y a otro de salida. o lneas extensivas de control. Se emplean buses, pues la transmisin paralela de todos los bits a la vez, es mucho ms rpida que la transmisin

UNIVERSIDAD ANDINA DEL CUSCO

11

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

5. Unidad Aritmtica-Lgica (Alu).


5.1. Definicin Y Funcionamiento Del Bloque Aritmtico Lgico. Esta parte de la CPU es la encargada de realizar las posibles operaciones de procesamiento de datos de 4 bits. La ALU dispone de dos entradas de datos de 4 bits: Una procede, directamente, del bus interno de datos, mientras que la otra se recibe de una Bscula (cerrojo) de 4 bits, 74175, formada internamente por 4 flip-flop de tipo D. Este cerrojo se le llama registro A y la informacin que guarda y entrega a la ALU proviene tambin del bus interno de datos de la CPU. Los flip-flop D del 74175 se cargan mediante del flanco ascendente que reciben por su patita de entrada de reloj (CK) y que procede de la lnea EA controlado por el secuenciado. Con objeto de caso de ser necesario enviar al bus de datos interno la informacin de registro A, la salida del 74175 (tambin llamada entrada A), se enva a una entrada de la ALU y a un buffer Triestado modelo 74125, que traslada la informacin del Registro A al bus interno de datos, cuando desde el secuenciador se activa la seal SA (salida A). Mientras que el 74175 retiene la informacin permanentemente, el 74125 solo transmite lo que recibe por su entrada al activarse SA. De forma parecida, la salida de la ALU se guarda en otra bscula-Cerrojo 74175, que recibe el nombre de registro B. Otro buffer triestado 74125 (Salida B) se encarga de trasladar la informacin del registro al bus interno de datos, cuando desde el secuenciador se activa la seal SB (salida B). Cuando la ALU efecta una operacin, genera un acarreo de salida (C), que representa el sealizador de acarreo C, y que consiste en un flip-flop que tambin se emplea para introducir su contenido a la entrada previa de acarreo(C), antes de realizarse una operacin. El flip-flop de acarreo C, recibe dos seales desde el secuenciador una sirve para ponerle a 1 (SEC) y la otra a 0 (CLC). La seal de reloj CK del flip-flop C se activa con la seal EB (Entrada B), que carga al registro B con el resultado de salida de la ALU. Un conjunto de 3 puertas lgicas examina la salida de la ALU y controlan el Flipflop D, en el que se almacena el estado de sealizador de cero (Z), el cual se pone a uno cuando el resultado de la operacin ha sido cero. Ambos sealizadores, C y Z, estn integrados en un mismo circuito integrado 7474.

UNIVERSIDAD ANDINA DEL CUSCO

12

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Finalmente la ALU necesita recibir 4 seales que seleccionan la operacin ms otra (M) que determina si es de tipo lgico o de tipo aritmtico. Las seales que seleccionan la operacin proceden del cdigo OP de la Instruccin que entra desde el bus externo de datos, el cual dispone de dos circuitos integrados 74125 y 74126, que contiene 4 buffers de salida triestado y actan como entrada y salida de datos, respectivamente. La lnea R/W del secuenciador define si es entrada o salida de datos. Cuando por el 74125 se recibe un cdigo OP este se carga en el circuito integrado 7475 (cudruple cerrojo de flip-flop D), que funciona como un registro de instrucciones y luego se aplica a las lneas de seleccin de la ALU (S0-S1-S2 y S3). Mediante un circuito decodificador, a base de puertas lgicas, se comprueban las seales M4-M5-M6 Y M7 y se obtienen el valor de M que define en la ALU si se trata de una operacin lgica o aritmtica. 5.2. Unidad De Corrimiento Lgico Aritmtico (Alsu). La unidad de corrimiento lgico aritmtico (ALSU) es un circuito combinatorio que realiza un nmero de microoperaciones aritmticas, lgicas y de corrimiento. La unidad de control activa las microoperaciones cuando ejecuta las instrucciones del programa. La ALSU tiene varias lneas de seleccin que escogen una operacin en particular de la unidad. Las variables de seleccin pueden especificar hasta 2 operaciones distintas.

UNIVERSIDAD ANDINA DEL CUSCO

13

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

6. Sistemas Numricos
6.1. Nmeros Binarios. El sistema de numeracin binario es un sistema de base 2, con dos dgitos: 0 y 1. Un nmero binario se expresa con una cadena de unos (1) y ceros (0) y un punto binario posible como 11010.11. El equivalente decimal de un nmero binario se puede obtener extendindolo a una serie de potencias con una base de 2. Por ejemplo: (11010)2 = 1x24 + 1x23 + 0x22 + 1x21 + 0x20 = (26)10 Tabla 61: Potencias de dos. N 0 1 2 3 4 5 6 7 2n 1 2 4 8 16 32 64 128 n 8 9 10 11 12 13 14 15 2n 256 512 1,024 2,048 4,096 8,192 16,384 32,768 N 16 17 18 19 20 21 22 23 2n 65,536 131,072 262,144 524,288 1,048,576 2,097,152 4,194,304 8,388,608

Los dgitos de un nmero binario se llaman bits. Cuando un bit es igual a 0, no contribuye a la suma durante la conversin. En consecuencia, la conversin a decimal se puede obtener sumando los nmeros con potencias de dos correspondientes a los bits que sean iguales a 1. Por ejemplo: (110101.11)2 = 32 + 16 + 4 + 1 + 0.5 + 0.25 = (53.75)10 En el trabajo de computadora, 210 se denomina K (Kilo), 220 se llama M (Mega), y 230, G (Giga). Por lo tanto 4K = 4096 y 16M = 224 = 16,777,216. La conversin de un nmero decimal a binario se puede realizar fcilmente a travs de un mtodo que resta acertadamente potencias de dos del nmero decimal. Para convertir el nmero decimal N a binario, primero se determina el nmero mayor de la tabla 61 que se pueda restar a N y se produzca una diferencia positiva. La diferencia estar designada por N1. Determnese otro nmero de la tabla 61 que se pueda restar a N1 y se produzca una diferencia positiva N2. Se continuar con este procedimiento hasta UNIVERSIDAD ANDINA DEL CUSCO 14

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

que la diferencia valga cero. En esta forma, el nmero decimal se convierte a sus componentes que son potencias de 2. El nmero binario equivalente se obtiene a partir de la serie de potencias que forma la suma de los componentes. Este mtodo se demuestra a continuacin, a travs de la conversin de 625 decimal a binario: 625 512 = 113 113 64 = 49 49 32 = 17 17 16 = 1 1 = 1 0 512 = 29 64 = 26 32 = 25 16 = 24 1 = 20

(625)10 = 29 + 26 + 25 + 24 + 20 = (1001110001)2 6.2. Nmeros Octales y Hexadecimales. El sistema numrico octal es un sistema de base 8 con ocho dgitos (0, 1, 2, 3, 4, 5, 6, 7). Un ejemplo de un nmero octal es 127.4. Para determinar su valor decimal equivalente se amplia el nmero en una serie de potencias con una base de 8. (127.4)8 = 1x82 + 2x81 + 7x80 + 4x8-1 = (87.5)10 Obsrvese que los dgitos 8 y 9 no pueden figurar en un nmero octal. Se acostumbra pedir prestado los dgitos que se necesitan del sistema decimal cuando la base del nmero es menor que 10. Las letras del alfabeto se utilizan para complementar los dgitos cuando la base del nmero es mayor que 10. El sistema numrico hexadecimal es un sistema de base 16, donde los primeros diez dgitos se toman prestados del sistema decimal, y las letras A, B, C, D, E y F se utilizan para representar los nmeros 10, 11, 12, 13, 14 y 15, respectivamente. Un ejemplo de un nmero hexadecimal es: (B65F)16 = 11x163 + 6x162 + 5x161 + 15x160 = (46687)10

UNIVERSIDAD ANDINA DEL CUSCO

15

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Tabla 62: Nmeros con bases diferentes. Decimal (base 10) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Binario (base 2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Octal (base 8) 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 Hexadecimal (base 16) 0 1 2 3 4 5 6 7 8 9 A B C D E F

Los primeros 16 nmeros de los sistemas decimal, binario, octal y hexadecimal se presentan en la tabla 62. Ntese que la secuencia de nmeros binarios sigue un patrn prescrito; el primer bit significativo alterna entre 0 y 1, el segundo bit significativo lo hace entre dos ceros y dos unos, el tercero alterna entre cuatro ceros y cuatro unos, y el cuarto entre ocho ceros y ocho unos. Todas las computadoras y sistemas digitales utilizan la representacin binaria. Los sistemas octal y hexadecimal son tiles para representar cantidades binarias en forma indirecta porque poseen la propiedad de que sus bases son potencias de 2. Como 23 = 8 y 24 = 16, cada digito octal, corresponde a tres dgitos binarios y cada dgito hexadecimal corresponde a cuatro dgitos binarios. La conversin de binario a octal se realiza fcilmente partiendo o dividiendo el nmero binario en grupos de tres bits, cada uno, UNIVERSIDAD ANDINA DEL CUSCO 16

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

comenzando desde el punto binario y continuando a la izquierda y a la derecha. Despus, el digito octal correspondiente se asigna a cada grupo. El ejemplo que sigue ilustra el procedimiento: (010 110 001 101 011. 111 100 000 110)2 = (26153.7406)8 El digito octal correspondiente a cada grupo de tres bits se obtiene de los primeros ocho registros de la tabla 62. Ntese que se pueden agregar ceros libremente a la izquierda o a la derecha para hacer que el nmero total de bits sea un mltiplo de tres. La conversin de binario a hexadecimal es semejante, salvo que el nmero binario se divide en grupos de cuatro dgitos. El nmero binario anterior se convierte a hexadecimal como sigue: (0010 1100 0110 1011. 1111 0000 0110)2 = (2C6B.F06)16 El dgito hexadecimal correspondiente de cada grupo de cuatro bits se presenta en la tabla 62. La conversin de octal o hexadecimal a binario se lleva a cabo a travs de un procedimiento contrario al anterior. Cada dgito octal se convierte en un equivalente binario de tres dgitos. Anlogamente, cada dgito hexadecimal se convierte en su equivalente binario de cuatro dgitos. Esto se ilustra en los ejemplos siguientes: (673.12)8 = 110 111 011. 001 010 = (110111011.00101)2 (3A6.C)16 = 0011 1010 0110. 1100 = (1110100110.11)2 La mayora de los manuales de computadoras utilizan nmeros octales o hexadecimales para especificar las cantidades binarias en la mquina. Un grupo de 15 bits, por ejemplo, puede representarse en el sistema octal con slo cinco dgitos en el intervalo de 0 a 77777. Un grupo de 16 bits se puede representar en hexadecimal con cuatro dgitos en el intervalo de 0 a FFFF. La eleccin entre la representacin octal o hexadecimal de nmeros binarios es arbitraria y se determina a partir del manual especfico. Durante un proceso de comunicacin entre personas (ms o menos cantidades binarias en la computadora) la representacin octal o hexadecimal es ms adecuada porque los nmeros pueden expresarse en forma ms compacta con una tercera o cuarta parte del nmero de dgitos. Cuando nos comunicamos con la computadora a travs de interrupciones de la consola o por medio de un programa en lenguaje de mquina, la conversacin de octal o hexadecimal a binario (y viceversa) se realiza fcilmente a travs del mtodo de agrupacin de los bits. UNIVERSIDAD ANDINA DEL CUSCO 17

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

6.3.

Operaciones Aritmticas. Las operaciones aritmticas con nmeros en base r siguen las misma reglas que

los nmeros decimales. Cuando se usa una base que no sea la 10, se debe tener cuidado de emplear slo r dgitos admisibles y realizar todos los clculos con dgitos de base r. A continuacin se dan ejemplos de adicin, sustraccin y multiplicacin de dos nmeros binarios: Consumando: Sumando: Suma: 10110 + 10011 101001 Minuendo: Sustraendo: Diferencia: 10110Multiplicando: 1011 - 10011 00011 Multiplicador: x 101 1011 0000 1011 Producto: 110111

La suma de dos nmeros binarios se calcula siguiendo las mismas reglas que se aplican a los nmeros decimales, salvo que el dgito de la suma en cualquier posicin significativa puede ser slo 1 o 0. Cualquier acarreo que se obtenga en una columna dada es usado por los dgitos de la columna una posicin significativa ms arriba. Las reglas de la sustraccin son las mismas que se aplican al sistema decimal, salvo que al pedir prestado de una columna dada se suman dos al dgito del minuendo. (Un prstamo en el sistema decimal suma 10 a un dgito del minuendo). La multiplicacin es muy sencilla. Los dgitos multiplicadores son siempre 1 o 0. Por lo tanto, los productos parciales son iguales al multiplicando o a 0. Las operaciones aritmticas con el sistema octal, hexadecimal o cualquier otro sistema de base r normalmente requerirn la formulacin de tablas de las cuales se obtengan sumas y productos de dos dgitos con base r. Una alternativa ms sencilla para sumar dos nmeros con base r consiste en convertir cada pareja de dgitos de una columna a decimal, sumar los dgitos en decimal y despus convertir el resultado a la suma y acarreo correspondientes en el sistema de base r. La sucesin de pasos para sumar los dos nmeros hexadecimales 59F y E46 es la siguiente: Hexadecimal UNIVERSIDAD ANDINA DEL CUSCO Decimal equivalente 18

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

1 5 9 F + E 4 6 1 3 E 5 5 14 19 = 16 + 3 9 4 14 15 6 21 = 16 + 5

Las columnas decimales equivalentes representan el razonamiento mental que debe efectuarse a fin de producir la suma hexadecimal. En vez de sumar F + 6 en hexadecimal, se suman los decimales equivalentes 15 + 6 = 21. Despus se vuelve a hacer la conversin a hexadecimal observando que 21 = 16 + 5. Esto produce un dgito de suma de 5 y un acarreo a los dgitos de la columna del siguiente orden superior. Las otras dos columnas se suman en forma similar. La multiplicacin de dos nmeros de base r se puede realizar haciendo todas las operaciones aritmticas en decimal y convirtiendo los resultados intermedios, uno a uno. Esto se ilustra en la multiplicacin de dos nmeros octales, (762)8 x (45)8, que se presenta a continuacin: Octal 762 45 4672 3710 43772 Octal 5x2 5x6+1 5x7+3 4x2 4x6+1 4x7+3 Decimal 10 = 8 + 2 31 = 24 + 7 38 = 32 + 6 8=8+0 25 = 24 + 1 31 = 24 + 7 Octal 12 37 46 10 31 37

Los clculos del lado derecho muestran los clculos mentales que se realizan para obtener cada pareja de dgitos octales. Los dgitos octales del 0 al 7 tienen el mismo valor que sus dgitos decimales correspondientes. La multiplicacin de dos dgitos octales ms un acarreo, si lo hay, se realiza en decimal y despus el resultado se convierte de nuevo a octal. El dgito de la izquierda del resultado octal de dos dgitos produce el acarreo que se debe sumar al producto siguiente. 6.4. Conversin de decimal a otra base. La conversin de un entero decimal a un nmero en base r, se realiza dividiendo el nmero y todos los cocientes sucesivos entre r y acumulando los residuos. Este UNIVERSIDAD ANDINA DEL CUSCO 19

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

procedimiento se explica mejor a travs del siguiente ejemplo: Convirtase el nmero 153 decimal a octal. 153/8 = 19 + 1/8 19/8 = 2 + 3/8 2/8 = 0 + 2/8 Resultado: (153)10 = (231)8. Obsrvese que el primer residuo produce el dgito menos significativo del nmero convertido y que los cocientes se dividen entre r hasta que el resultado es 0. Tambin se puede utilizar este procedimiento para convertir nmeros decimales en binario. En este caso, la base del nmero convertido es 2 y, por lo tanto, todas las divisiones se deben efectuar entre 2. Convirtase el nmero decimal 41 a binario: 41/2 = 20 + 1/2 20/2 = 10 + 0/2 10/2 = 5 + 0/2 5/2 = 2 + 1/2 2/2 = 1 + 0/2 1/2 = 0 + 1/2 Resultado: (41)10 = (101001)2. La conversin de una fraccin decimal a base r se logra a travs de un mtodo similar al que se usa para los nmeros enteros, salvo que la multiplicacin por r se usa en vez de la divisin, y se acumulan los enteros y no los residuos. Por ejemplo: Convirtase la fraccin decimal 0.6875 a binario: 0.6875 x 2 = 1.3750 0.3750 x 2 = 0.7500 0.7500 x 2 = 1.5000 0.5000 x 2 = 1.0000 Respuesta: (0.6875)10 = (1011)2. Obsrvese que el primer entero produce el primer y ms significativo bit de la fraccin. En este ejemplo, existe un nmero finito de dgitos en el nmero convertido. El UNIVERSIDAD ANDINA DEL CUSCO 20 Entero = 1 = 0 = 1 = 1 Dgito menos significativo Dgito ms significativo Residuo = 1 = 0 = 0 = 1 = 0 = 1 Dgito ms significativo Dgito menos significativo Residuo = 1 = 3 = 2 Dgito ms significativo Dgito menos significativo

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

proceso de multiplicar fracciones por r no necesariamente termina con ceros, de manera que debemos decidir cuntos dgitos de la fraccin utilizar de la conversin. La conversin de nmeros decimales con partes enteras y fraccionarias se realiza convirtiendo cada parte por separado y despus combinando las dos respuestas. Podemos utilizar el siguiente ejemplo: Convertir el nmero decimal 153.513 a octal: 153/8 = 19 + 1/8 19/8 = 2 + 3/8 2/8 = 0 + 2/8 0.513 x 8 = 4.104 0.104 x 8 = 0.832 0.832 x 8 = 6.656 0.656 x 8 = 5.248 0.248 x 8 = 1.984 Entero Residuo = 1 = 3 = 2 = 4 = 0 = 6 = 5 = 1 Dgito menos significativo Dgito ms significativo Dgito ms significativo Dgito menos significativo

Resultado de la parte entera: (153)10 = (231)8

Resultado de la parte fraccionaria: (0.513)10 = (0.40651)8. Combinando las dos resultados obtenemos que (153.513)10 = (231.40651)8 6.5. Complementos. Los complementos se utilizan en las computadoras digitales para simplificar la operacin de sustraccin o resta y para realizar la manipulacin lgica. Existen dos tipos de complementos para cada sistema de base r. 1. 2. El complemento radical y. El complemento radical disminuido. El primero se conoce

como el complemento a r's y el segundo como el complemento a (r 1)'s. Cuando el valor de la base r se sustituye en el nombre, los dos tipos se conocen como complementos a 2's y a 1's para nmeros binarios y a 10's y a 9's para nmeros decimales. 6.5.1. Complemento radical disminuido. Dado un nmero N en base r que tiene n dgitos, el complemento a (r 1)'s de N se define como (rn 1) N. Para nmeros decimales, r = 10 y r 1 = 9, de esto modo el complemento a 9's de N es (10n 1) N. Ahora, 10 representa un nmero que consta de un 1 seguido de n ceros, 10n 1 es un nmero representado por n UNIVERSIDAD ANDINA DEL CUSCO 21

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

nueves. Por ejemplo, si n = 4, se tiene 104 1 = 9999. Se deduce que el complemento a 9's de un nmero decimal se obtiene restando cada dgito a 9. A continuacin se presentan algunos ejemplos numricos. El complemento a 9's de 546700, es: 999999 546700 = 453299. El complemento a 9's de 12389, es: 99999 12389 = 87610. En el caso de nmeros binarios, r = 2 y r 1 = 1, de este modo el complemento a 1's de N es (2n 1) N. Una vez ms, 2n se representa por medio de un nmero binario que consta de un 1 seguido de n ceros. 2n 1 es un nmero binario representado por n unos. Por ejemplo, si n = 4, se tiene 24 = (10000)2 y 24 1 = (1111)2. Por lo tanto el complemento a 1's de un nmero binario se obtiene restando cada dgito de 1. Sin embargo, cuando se restan dgitos binarios de 1, se puede tener 1 0 = 1 o 1 1 = 0, lo que hace que el bit cambie de 0 a 1 o bien de 1 a 0. En consecuencia, el complemento a 1's de un nmero binario se forma cambiando unos por ceros y ceros por unos. Lo que sigue son algunos ejemplos numricos. El complemento a 1's de 1011001, es 0100110 El complemento a 1's de 0001111, es 1110000 El complemento de a (r 1)'s de nmeros octales o hexadecimales se obtiene restando cada dgito 7 o F (15 decimal), respectivamente. 6.5.2. Complemento radical. El complemento a r's de un nmero N de n dgitos en base r, se define como rn N para N 0, y 0 para N = 0. Haciendo la comparacin con el complemento a (r 1)'s se nota que el complemento a r's se obtiene sumando 1 al complemento a (r 1)'s puesto que rn N = (rn 1) N + 1. Por lo tanto, el complemento de a 10's para el nmero decimal 2389, es 7610 + 1 = 7611, y se obtiene sumando 1 al complemento a 9's. El complemento de a 2's para el nmero binario 101100, es 010011 + 1 = 010100, y se obtiene sumando 1 al valor del complemento a 1's. Como 10n es un nmero representado por 1 seguido de n ceros (0), 10n N, que es el complemento de a 10's de N, asimismo se puede formar dejando todos los ceros significativos tal y como estn, restando el primer dgito menos significativo distinto de cero a 10 y luego restando todos los dgitos significativos superiores a 9. El complemento a 10's para 246700 es 753300 y se obtiene dejando los dos ceros sin UNIVERSIDAD ANDINA DEL CUSCO 22

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

cambios, restando 7 a 10 y restando los otros tres dgitos a 9. En forma anloga, el complemento a 2's se puede formar dejando todos los ceros menos significativos y el primer 1 tal y como estn, y despus reemplazando unos por ceros y ceros por unos en todos los dems bits significativos superiores. El complemento a 2's para 1101100 es 0010100, y se obtiene dejando los dos ceros de bajo orden y el primer 1 como estn, y despus sustituyendo unos por ceros y ceros por unos en los otros bits ms significativos. Si el nmero original N contiene un punto radical, ste debe eliminarse en forma temporal para formar el complemento a r's o a (r 1)'s. El punto radical se devuelve despus al nmero complementado en la misma posicin relativa. Tambin cabe mencionar que el complemento del complemento devuelve el nmero a su valor original. El complemento a r's de N es rn N. El complemento del complemento es rn (rn N) = N que vuelve a dar el nmero original. 6.5.3. Sustraccin con complementos. El mtodo directo de sustraccin que se ensea en las escuelas primarias aplica el concepto de "pedir prestado de otra cantidad". En este mtodo, se pide prestado un 1 de una posicin significativa superior cuando el dgito del minuendo es menor que el del sustraendo. Este parece ser el mtodo ms sencillo cuando las personas realizan la resta con papel y lpiz. Cuando la resta se efecta con hardware digital, se observa que este mtodo es menos eficiente que el que utiliza complementos. La resta de dos nmeros sin signo de n dgitos, M N, en base r se puede hacer de la manera siguiente: 1. 2. 3. Smese el minuendo M al complemento a r's del sustraendo N. Este se realiza como M + (rn N) = M N + rn. Si M N, la suma producir un acarreo final, rn, que se desecha; lo que queda es el resultado M N. Si M < N, la suma no produce un acarreo final y es igual a rn (N M) que es el complemento a r's de (N M). Para obtener la respuesta en forma conocida, calclese el complemento a r's para la suma y colquese un signo negativo al frente. UNIVERSIDAD ANDINA DEL CUSCO 23

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Los siguientes ejemplos ilustran este procedimiento: Utilizando el complemento a 10's, efectuar la resta 72532 3250. M Complemento a 10's de N Suma Respuesta = = = = 72532 + 96750 169282 -100000 69282

Acarreo final desechado 105 =

Ntese que M tiene cinco dgitos y que N tiene slo cuatro. Ambos nmeros deben tener el mismo nmero de dgitos, de modo que se escribe N como 03250. Calculando el complemento a 10's de N se obtiene un 9 en el posicin ms significativa. El acarreo final significa que M > N y el resultado es positivo. Mediante el uso del complemento a 10's hgase la resta 3250 72532 M Complemento a 10's de N Suma No hay acarreo final. Respuesta: (complemento a 10's para 30718) = 69282 Ntese que debido a que 3250 < 72532, el resultado es negativo. Puesto que manejamos nmeros sin signo, no hay manera de obtener un resultado sin signo en este caso. Cuando se trabaja con papel y lpiz, se reconoce que la respuesta debe cambiarse por un nmero negativo con signo. Cuando se hace la resta con complementos, la respuesta negativa se reconoce por la ausencia del acarreo final y el resultado complementado. La resta con complementos se realiza con nmeros binarios en forma anloga utilizando el mismo procedimiento que se describi antes. Dados los nmeros binarios X = 1010100 y Y = 100011, hgase la resta X Y y Y X utilizando complementos de 2. X Complemento a 2's de Y Suma Acarreo final desechado 27 Respuesta: X Y UNIVERSIDAD ANDINA DEL CUSCO = = = = = 1010100 + 0111101 10010001 -10000000 0010001 24 = = = 03250 + 27468 30718

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Y Complemento a 2's de X Suma No hay acarreo final.

= = =

1000011 + 0101100 1101111

Respuesta: Y X = (Complemento a 2's para 1101111) = 0010001 La resta de nmeros sin signo se puede hacer tambin por medio del complemento a (r 1)'s. Recurdese que el complemento a (r 1)'s es uno menos que el complemento a r's. Por esto, el resultado de sumar el minuendo al complemento del sustraendo produce una suma que es uno menos que la diferencia correcta cuando hay acarreo final. Eliminar el acarreo final y aadir uno a la suma es un procedimiento que se conoce como acarreo prximo al final. Reptase el ejemplo anterior utilizando el complemento a 1's. a. X Y = 1010100 - 1000011 X Complemento a 1's de Y Suma Acarreo prximo al final Respuesta: X Y b. Y X = 1000011 - 1010100 Y Complemento a 1's de X Suma No hay acarreo final. Respuesta: Y X = (Complemento a 1's para 1101110) = 0010001 Ntese que el resultado negativo se obtiene calculando el complemento a 1's para la suma, porque ese es el tipo de complemento que se usa. El procedimiento con acarreo prximo al final se puede aplicar tambin para restar nmeros decimales sin signo con el complemento a 9's. = = = 1000011 + 0101011 1101110 = = = = = 1010100 + 0111100 10010000 +1 0010001

UNIVERSIDAD ANDINA DEL CUSCO

25

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

6.6.

Nmeros Binarios con Signo. Los enteros positivos, incluyendo el cero, se pueden representar como nmeros

sin signo. Sin embargo, para representar enteros negativos, se necesita una notacin de valores negativos. En la aritmtica ordinaria, un nmero negativo se indica a travs de un signo menos, y un nmero positivo por un signo ms. Debido a las limitaciones de hardware, las computadoras deben representar todo con unos y ceros incluyendo el signo de un nmero. Como consecuencia, se acostumbra representar el signo con un bit colocado en la ltima posicin a la izquierda del nmero. La convencin hace que el bit del signo sea 0 para valores positivos y 1 para negativos. Es importante entender que los nmeros binarios con y sin signo constan de una cadena de bits cuando se representan en una computadora. El usuario determina si el nmero tiene o no signo. Si el nmero binario tiene signo, entonces el ltimo bit a la izquierda representa el signo y el resto de los bits representan el nmero. Si se supone que el nmero binario no tiene signo, entonces el ltimo bit a la izquierda es el ms significativo del nmero. Por ejemplo, la cadena de bits 01001 puede considerarse como 9 (binario sin signo) o como +9 (binario con signo), porque el ltimo bit a la izquierda es 0. La cadena de bits 11001 representa el equivalente binario de 25 cuando se considera como un nmero sin signo o bien como 9 cuando se considera como un nmero con signo debido al 1 de la ltima posicin a la izquierda, que designa un signo menos y los otros cuatro bits que representan el 9 binario. Por lo general no hay confusin al identificar los bits porque se conoce con anticipacin el tipo de representacin del nmero. La representacin de los nmeros con signo en el ltimo ejemplo recibe el nombre de sistema de magnitud con signo. En este sistema, el nmero consta de una magnitud y un smbolo (+ o ), o un bit (0 o 1) que indica el signo. Este es la representacin de nmeros con signo que se utiliza en la aritmtica ordinaria. Cuando se efectan operaciones aritmticas en una computadora, conviene ms emplear un sistema diferente para representar nmeros negativos conocidos como sistema de complemento con signo. En este sistema un nmero negativo se indica a travs de su complemento. Mientras que el sistema del signo y la magnitud vuelve negativo un nmero cambiando su signo, el sistema del complemento con signo vuelve negativo un nmero calculando su complemento. Como los nmeros positivos emplean siempre con 0 (ms) en la ltima UNIVERSIDAD ANDINA DEL CUSCO 26

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

posicin a la izquierda, el complemento comenzar por lo regular con un 1 que indica un nmero negativo. El sistema del complemento con signo puede utilizar el complemento a 1's o a 2's pero el complemento a 2's es el ms comn. Para poner un ejemplo considrese el nmero 9 representado en binario con ocho bits. As +9 se representa con un bit de signo de 0 en la ltima posicin a la izquierda seguido del equivalente binario de 9 para da 00001001. Ntese que los ocho bits deben tener un valor y, en consecuencia, se insertan ceros entre el bit del signo y el primer 1. Aunque slo hay una manera de representar el nmero +9, existen tres maneras diferentes de representar 9 utilizando ocho bits: En la representacin de la magnitud con signo : 10001001 En la representacin del complemento a 1's con signo: 11110110 En la representacin del complemento a 2's con signo: 11110111 En la magnitud con signo, 9 se obtiene a partir de +9 cambiando el bit del signo de la ltima posicin a la izquierda de 0 a 1. En el complemento a 1's con signo, 9 se obtiene complementando todos los bits de +9, incluyendo el bit del signo. La representacin del complemento a 2's con signo de 9, se obtiene calculando el complemento a 2's del nmero positivo, incluyendo el bit del signo. En la tabla 13 se presenta una lista de todos los nmeros binarios con signo de 4 bits posibles en las tres representaciones. El nmero decimal equivalente se presenta tambin con fines de referencia. Ntese que los nmeros positivos de las tres representaciones son idnticos y tienen un 0 en la ltima posicin hacia la izquierda. El sistema del complemento a 2's con signo tiene slo una representacin para 0 y siempre es positiva. Los otros dos sistemas tienen un 0 positivo y un 0 negativo, caso que se ve en la aritmtica ordinaria. Ntese que todos lo nmeros negativos tienen un 1 en la posicin del ltimo bit a la izquierda, esta es la forma en que se distinguen de los nmeros positivos. Con cuatro bits se pueden representar 16 nmeros binarios. En las representaciones de magnitud con signo y en las del complemento a 1's, existen ocho nmeros positivos y ocho negativos, incluyendo dos ceros. En la representacin del complemento a 2's, hay ocho nmeros positivos incluyendo un cero y ocho nmeros negativos. Tabla 63: UNIVERSIDAD ANDINA DEL CUSCO 27

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Nmeros binarios con signo. Decimal +7 +6 +5 +4 +3 +2 +1 +0 -0 -1 -2 -3 -4 -5 -6 -7 -8 Complemento a 2's con signo 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 Complemento a 1's con signo 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 Magnitud con signo 0111 0110 0101 0100 0011 0010 0001 0000 1000 1001 1010 1011 1100 1101 1110 1111

El sistema de magnitud con signo se utiliza en la aritmtica ordinaria, pero es difcil de emplear cuando se aplica en la aritmtica de computadora. Por lo tanto, el complemento con signo es el procedimiento que se utiliza normalmente. El complemento a 1's presenta dificultades debido a las dos formas que tiene para representar el 0 y rara vez se emplea en operaciones aritmticas, excepto en algunas computadoras ms antiguas. El complemento a 1's es til como operacin lgica porque el cambio de 1 a 0 o de 0 a 1 es equivalente a una operacin lgica de complemento. 6.6.1. Adicin aritmtica. La adicin o suma de dos nmeros en el sistema de magnitud con signo se apega a las reglas de la aritmtica ordinaria. Si los signos son los mismos, se suman UNIVERSIDAD ANDINA DEL CUSCO 28

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

las dos magnitudes y se da a la suma el signo comn. Si los signos son diferentes, se resta la magnitud menor de la mayor y se da al resultado el signo de la magnitud mayor. Por ejemplo, (+25) + (37) = (37 25) = 12, y se efecta restando la magnitud menor 25 de la mayor 37 y utilizando el signo 37 como el signo del resultado. Este es un proceso que requiere la comparacin de los signos y las magnitudes y luego efectuar la suma o la resta. El mismo procedimiento se aplica a nmeros binarios en representacin de signo y magnitud. En contraste, la regla de adicin o suma de nmeros en el sistema del complemento con signo no requiere una comparacin o sustraccin, sino slo una suma o adicin. El procedimiento es muy simple y se puede enunciar en la forma siguiente en el caso de nmeros binarios. La suma de dos nmeros binarios con signo, con nmeros negativos representados en forma de complemento a 2's con signo, se obtiene a partir de l suma de los dos nmeros, incluyendo sus bits de signos. Se elimina un acarreo fuera de la posicin del bit del signo. A continuacin se dan varios ejemplos numricos de la adicin. Ntese que, los nmeros negativos deben estar inicialmente en complemento a 2's y que el resultado que se obtiene despus de la suma, si es negativo, se encuentra en forma de complemento a 2's. + 6 + 13 + 19 00000110 00001101 00010011 6 + 13 + 7 11111010 00001101 00000111 + 6 13 7 00000110 11110011 11111001 6 13 19 11111010 11110011 11101101

En cada uno de los cuatro casos, la operacin que se realiza es la adicin, incluyendo los bits de los signos. Cualquier acarreo fuera de la posicin del bit del signo se desecha y los resultados negativos se encuentran automticamente en forma de complemento a 2's. A fin de obtener una respuesta correcta, debemos asegurarnos de que el resultado tenga un nmero de bits suficiente para dar cabida a la suma. Si comenzamos con dos nmeros de n bits y la suma ocupa n + 1 bits, se dice que ocurre un desbordamiento. Cuando se realiza la suma con papel y lpiz, el desbordamiento no causa problema porque no estamos limitados a la anchura de la pgina. UNIVERSIDAD ANDINA DEL CUSCO 29

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Simplemente sumamos otro 0 a un nmero positivo y otro 1 a un nmero negativo, en la posicin ms significativa, para extenderlos a n + 1 bits y despus se hace la suma. El desbordamiento da problemas en las computadoras porque el nmero de bits que alojan un nmero es finito, y no se puede dar cabida a un resultado que exceda el valor finito en 1. La forma de complemento para representar nmeros negativos es desconocida para las personas habituales al sistema de la magnitud con signo. Para determinar el valor de un nmero negativo cuando est en complemento a 2's con signo, es necesario convertirlo en un nmero positivo para ponerlo en una forma ms conocida. Por ejemplo, el nmero binario con signo 11111001 es negativo porque el ltimo bit a la izquierda es 1. Su complemento a 2's es 00000111, que es el equivalente binario de +7. Por lo tanto, se reconoce que el nmero es igual a 7. 6.6.2. Sustraccin aritmtica. La sustraccin o resta de dos nmeros binarios con signo cuando los nmeros negativos estn en forma de complementos a 2's es muy simple y se puede enunciar de la manera siguiente: Calclese el complemento a 2's del sustraendo (incluyendo el bit del signo) y smese al minuendo (incluyendo el bit del signo). Se desecha un acarreo fuera de la posicin del bit de signo. Este procedimiento surge del hecho de que una operacin de sustraccin se puede cambiar por una operacin de adicin, si se cambia el signo del sustraendo. Esto lo demuestra la relacin siguiente: ( A) ( + B) = ( A) + ( B) ( A) ( B) = ( A) + ( + B) Pero el cambio de un nmero positivo por uno negativo se realiza fcilmente calculando su complemento a 2's. Lo contrario tambin es cierto porque el complemento de un nmero negativo en forma de complemento produce el nmero positivo equivalente. Considrese la resta (6) (13) = +7. En sistema binario con ocho bits se escribe como (11111010 11110011). La sustraccin se cambia por adicin calculando el complemento a 2's del sustraendo (13) para producir (+13). En sistema binario eso es 11111010 + 00001101 = UNIVERSIDAD ANDINA DEL CUSCO 30

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

100000111. Eliminando el acarreo final se obtiene la respuesta correcta 00000111 (+7). Cabe observar que los nmeros binarios en el sistema del complemento con signo se suman y restan por medio de las mismas reglas de suma y resta bsicas de los nmeros que no tienen signo. Por lo tanto, las computadoras slo necesitan un circuito de hardware comn para manejar ambos tipos de aritmtica. El usuario o programador debe interpretar los resultados de tal adicin y sustraccin en forma diferente, dependiendo de s se supone que los nmeros tienen o no signos. 6.7. Cdigos Decimales (BCD). El sistema de numeracin binaria es el ms natural para una computadora, pero las personas estn acostumbradas al sistema decimal. Una manera de resolver esta diferencia consiste en convertir los nmeros decimales a binarios, realizar todas las operaciones aritmticas en sistema binario y luego convertir los resultados binarios de nuevo a sistema decimal. Este mtodo requiere que se almacenen los nmeros decimales en la computadora en una forma en que se puedan convertir a binarios. Como la computadora slo puede aceptar valores binarios, debemos representar las cifras decimales a travs de un cdigo que contenga unos y ceros (1 y 0). Tambin es posible realizar las operaciones aritmticas directamente con nmeros decimales cuando estn almacenadas en la computadora en forma codificada. Un cdigo binario es un grupo de n bits que suponen hasta 2n combinaciones distintas de unos y ceros, donde cada combinacin representa un elemento del conjunto que se codifica. Un conjunto de cuatro elementos se puede codificar con dos bits, donde a cada elemento se le asigna una de las siguientes combinaciones de bits: 00, 01, 10, 11. Un conjunto de ocho elementos requiere un cdigo de tres bits y uno de 16 elementos requiere un cdigo de cuatro bits. La combinacin de bits de un cdigo de n bits se determina a partir de la cuenta en sistema binario de 0 a 2n - 1. A cada elemento se le debe asignar una combinacin de bits binarios nica y desde luego dos elementos no pueden tener el mismo valor; en caso contrario, la asignacin del cdigo ser ambigua. Un cdigo binario tendr algunas combinaciones de bits no asignadas si el nmero de elementos en el conjunto no es una potencia de 2. Las diez cifras decimales UNIVERSIDAD ANDINA DEL CUSCO 31

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

forman dicho conjunto. Un cdigo binario que distingue entre diez elementos debe contener al menos cuatro bits, pero seis de las 16 posibles combinaciones se mantendrn no asignadas. Se pueden obtener numerosos cdigos binarios diferentes disponiendo cuatro bits en diez combinaciones distintas. El cdigo que se utiliza ms comnmente para representar los dgitos decimales es la asignacin binaria directa, segn se representa en la Tabla 6-4. A ste se le llama decimal codificado binario y se conoce comnmente como BCD. Tabla 6 4: Decimal Codificado Binario BCD Smbolo Decimal 0 1 2 3 4 5 6 7 8 9 Dgito BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

La Tabla 6-4 representa el cdigo de cuatro bits para un dgito decimal. Un nmero con n dgitos decimales requerir 4n bits en BCD. El decimal 396 se representa en BCD con 12 bits como 0011 1001 0110, donde cada grupo de cuatro bits representa un dgito decimal. Un nmero decimal en BCD es el mismo que su nmero binario equivalente slo cuando el nmero est entre 0 y 9. Un nmero en BCD mayor que 10 se ve diferente de su nmero binario equivalente aunque ambos contengan unos y ceros (1 y 0). Adems, las combinaciones binarias de la 1010 a la 1111 no se utilizan y no tienen significado alguno en el cdigo BCD. Considrese el nmero decimal 185 y su valor correspondiente en BCD y en binario: UNIVERSIDAD ANDINA DEL CUSCO 32

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

(185)10 = (0001 1000 0101)BCD = (10111001)2 El valor BCD tiene 12 bits pero el nmero binario equivalente necesita slo ocho bits. Es evidente que un nmero BCD necesita ms bits que su valor binario equivalente. Sin embargo, hay una ventaja en el uso de nmeros decimales porque los datos de entrada y salida de una computadora son generados por personas que emplean el sistema decimal. Es importante entender que los nmeros BCD son nmeros decimales y no nmeros binarios, aunque se representen en bits. La nica diferencia entre un nmero decimal y un BCD es que los decimales se escriben con los smbolos 0, 1, 2, ..., 9 y los nmeros BCD utilizan los cdigos binarios 0000, 0001, 0010, ..., 1001, pero el valor del nmero es exactamente el mismo. El 10 decimal se representa en BCD con ocho bits como 0001 0000 y el 15 decimal como 0001 0101. Los valores binarios correspondientes son 1010 y 1111 y slo tiene cuatro bits. 6.7.1. Adicin BCD. Considrese la adicin o suma de dos dgitos decimales en BCD, junto con un posible acarreo desde un par anterior de dgitos menos significativos. Como cada digito no es mayor que 9, la suma no puede ser mayor que 9 + 9 + 1 = 19, donde 1 es el acarreo. Supngase que se suman los dgitos BCD como si se tratara de nmeros binarios. La suma binaria dar un resultado en el intervalo de 0 a 19. En binario el intervalo ser de 0000 a 10011 pero en BCD deber ser de 0000 a 1 1001, el primer 1 es un acarreo y los cuatro bits que siguen son la suma de dgitos BCD. Cuando la suma binaria es igual a, o menor que 1001 (sin acarreo), el digito BCD correspondiente es correcto. Pero cuando la suma binaria es mayor que o igual a 1010, el resultado es un dgito BCD no vlido. La suma del 6 binario (0110) 2, a la suma, lo convierte en el digito correcto y produce asimismo un acarreo, segn se requiere. Esto se debe a que la diferencia entre un acarreo en la posicin 24 de la suma binaria y un acarreo decimal es 16 - 10 = 6. Considrense las tres adiciones BCD siguientes: 4 +5 9 0100 +0101 1001 4 +8 12 0100 +1000 1100 8 +9 17 1000 +1001 1 0001 33

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

+0110 1 0010

+ 0110 1 0111

En cada caso, los dos dgitos BCD se suman como si fueran dos nmeros binarios. Si la suma binaria es mayor que o igual a 1010, se suma 0110 para obtener la suma de dgitos BCD correcta. En el primer ejemplo, la suma es igual a 9 y es la suma de dgitos BCD correcta. En el segundo ejemplo, la suma binaria produce un dgito BCD no vlido. La suma de 0110 produce la suma de dgitos BCD correcta 0010 (2) y un acarreo. En el tercer ejemplo, la suma binaria produce un acarreo. Esta condicin ocurre cuando la suma es mayor que, o igual a 16. Aunque los otros cuatro bits son menores que 1001, la suma binaria requiere una correccin porque hay un acarreo. Al sumar 0110, se obtiene la suma de dgitos BCD requerida 0111 (7) y un acarreo BCD. La suma de dos nmeros BCD sin signo de n dgitos sigue el mismo procedimiento. Considrese la adicin 184 + 576 = 760 en BCD: Acarreo BCD 1 0001 + 0101 Suma binaria Suma de 6 Suma BCD 0111 0111 1 1000 0111 10000 0110 0110 0100 0110 1010 0110 0000 760 184 + 576

El primer par de dgitos BCD menos significativos da una suma de dgitos BCD de 0000 y un acarreo para el siguiente par de dgitos. El segundo par de dgitos BCD, ms un acarreo previo, dan una suma de dgitos de 0110 y un acarreo para el siguiente par. El tercer par de dgitos, ms un acarreo, dan un suma binaria de 0111 que no requiere de correccin. 6.7.2. Aritmtica decimal. La representacin de nmeros decimales con signo en BCD es similar a la representacin de nmeros con signo en binario. Podemos emplear el conocido UNIVERSIDAD ANDINA DEL CUSCO 34

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

sistema de la magnitud con signo o bien el sistema del complemento con signo. El signo de un nmero decimal suele representarse con cuatro bits para coincidir con el cdigo de cuatro bits de los dgitos decimales. Es costumbre designar un signo ms con cuatro ceros y un signo menos con el equivalente BCD de 9 que es 1001. El sistema de magnitud con signo es difcil de utilizar con computadoras. El sistema de complemento con signo puede ser el complemento a 9's o a 10's, pese este ltimo es el que se utiliza con mayor frecuencia. Para obtener el complemento a 10's de un nmero BCD, se calcula el complemento a 9's se calcula restando cada dgito a 9. Los procedimientos desarrollados para el sistema del complemento a 2's con signo, se aplican tambin al sistema del complemento a 10's con signo para nmeros decimales. La adicin se efecta sumando todos los dgitos, incluyendo el del signo, y desechando el acarreo final. Claramente, ello supone que todos los nmeros negativos estn en forma de complementos a 10's. Considrese la adicin (+375) + (-240) = +135, efectuada en el sistema de complemento con signo: 0 375 + 9 760 0 135 El 9 de la ltima posicin a la izquierda, del segundo nmero, representa un signo de menos y 9760 es el complemento a 10's para 0240. Los dos nmeros se suman y se desecha el acarreo final para obtener +135. Desde luego, los nmeros decimales contenidos en la computadora deben estar en BCD, incluyendo los dgitos de los signos. La suma se efecta con dgitos BCD como se describi antes. La resta o sustraccin de nmeros decimales, sin signo o en el sistema del complemento a 10's con signo, es la misma que en el sistema binario. Calclese el complemento a 10's del sustraendo y smese al minuendo. Muchas computadoras tienen Hardware especial para efectuar operaciones aritmticas directamente con nmeros decimales en BCD. El usuario de la computadora puede especificar, a travs de instrucciones programadas, que la operacin aritmtica se debe realizar con nmeros decimales sin convertirlos a binarios. 6.8. Operaciones de Punto Flotante. 35

UNIVERSIDAD ANDINA DEL CUSCO

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

En muchos clculos cientficos, el intervalo de nmeros es muy grande. La forma de ampliar el intervalo de nmeros consiste en expresarlos en notacin de punto flotante. El nmero de punto flotante tiene dos partes. La primera contiene una fraccin (a veces como mantisa) y la segunda designa la posicin del punto decimal y recibe el nombre de exponente. Por ejemplo, el nmero decimal +6132.789 se representa en notacin de punto flotante como: Fraccin +.6132789 Exponente +04

El valor del exponente indica que la posicin real del punto decimal est cuatro posiciones a la derecha del punto decimal indicado en la fraccin. Esta representacin es equivalente a la notacin cientfica +.6132789 x 10+4. Los nmeros decimales de punto flotante se interpretan como aquellos que representan un nmero en la forma: F x 10E Donde F es la fraccin y E el exponente. Slo la fraccin y el exponente se representan fsicamente en registros de computadora. La base 10 y el punto decimal de la fraccin se dan por hecho y no se muestran en forma explcita. Un nmero binario de punto flotante se representa en forma anloga, salvo que utiliza una base 2 para el exponente. Por ejemplo, el nmero binario +1001.11 se representa con una fraccin de ocho bits y un exponente de seis bits como: Fraccin 01001110 Exponente 000100

La fraccin tiene un 0 en la ltima posicin a la izquierda para denotar un signo ms. El punto binario de la fraccin va despus del bit del signo pero no se muestra en el registro. El exponente tiene el nmero binario equivalente a +4. El nmero de punto flotante es equivalente a: F x 2E = +(.1001110)2 x 2+4 Se dice que un nmero de punto flotante es normalizado si el dgito ms significativo de la fraccin es un nmero distinto de cero. Por ejemplo, la fraccin decimal 0.350 es normalizado pero 0.0035 no lo es. Los nmeros normalizados ofrecen la mxima precisin posible para el nmero de punto flotante. Un cero no puede ser

UNIVERSIDAD ANDINA DEL CUSCO

36

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

normalizado porque no tiene un dgito distinto de cero. Por lo general, se representa en punto flotante por medio de ceros exclusivamente en la fraccin y el exponente. La representacin de punto flotante aumenta el intervalo de nmeros que se pueden acomodar en un registro dado. Considrese una computadora con registros de 48 bits. Como se debe reservar un bit para el signo, el intervalo de enteros con signo ser (247 1) que es aproximadamente 1014. Los 48 bits se pueden emplear para representar un nmero de punto flotante con 36 bits para la fraccin y 12 para el exponente. El nmero positivo o negativo mayor que se puede alojar es (1 2-35) x 2+2047 Este nmero se obtiene de una fraccin que contiene un bit de signo y 35 unos, y un exponente con un bit de signo y 11 unos. El exponente mximo es 211 1 o 2047. El nmero ms grande que se puede alojar es aproximadamente equivalente al 10615 decimal. 6.8.1. Operaciones Aritmticas con Nmeros de Punto Flotante. Las operaciones aritmticas con nmeros de punto flotante son ms complicados que con nmeros enteros y su ejecucin requiere ms tiempo y hardware ms complejo. La suma y resta de dos nmeros requiere que los puntos decimales se alineen porque las partes del exponente deben ser iguales antes de que se sumen o resten las fracciones. La alineacin se realiza corriendo una fraccin y ajustando su exponente hasta que sea igual al otro exponente. Considrese la suma de los siguientes nmeros de punto flotante. .5372400 x 102 + .1580000 x 10-1 Es necesario que los dos exponentes sean iguales antes de que se puedan sumar las fracciones. Podemos correr el primer nmero tres posiciones a la izquierda o desplazar el segundo nmero tres posiciones a la derecha. Cuando las fracciones se almacenan en registros, el corrimiento a la izquierda provoca una prdida de dgitos ms significativos. El corrimiento a la derecha ocasiona una prdida de dgitos menos significativos. Es preferible aplicar el segundo mtodo porque slo reduce la precisin, en tanto que el primero puede inducir un error. El procedimiento de alineacin habitual consiste en correr la fraccin que tenga el exponente menor a la

UNIVERSIDAD ANDINA DEL CUSCO

37

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

derecha, un nmero de espacios igual a la diferencia entre los exponentes. Despus de esto, se pueden sumar las fracciones. .5372400 x 102 + .0001580 x 102 .5373982 x 102 Cuando se suman dos fracciones normalizadas, la suma puede contener un digito de desbordamiento. Un desbordamiento se puede corregir corriendo la suma una vez a la derecha e incrementando el exponente. Cuando se restan dos nmeros, el resultado puede contener ceros ms significativos en la fraccin, como se muestra en el ejemplo que sigue: .56780 x 105 .56430 x 105 .00350 x 105 Un nmero de punto flotante que tiene un 0 en la posicin ms significativa no es normalizado. Para normalizarlo, se necesita desplazar la fraccin de la izquierda y disminuir el exponente hasta que aparezca un dgito distinto de cero en la primera posicin. En el ejemplo anterior es necesario desplazar a la izquierda dos veces a fin de obtener .35000 x 103. En la mayora de las computadoras, se ejecuta un procedimiento de normalizacin despus de cada operacin para asegurar que todos los resultados estn en forma normalizada. La multiplicacin y divisin de punto flotante no requieren una alineacin de las fracciones. El producto se puede formar multiplicando las dos fracciones y sumando los exponentes. La divisin se realiza dividiendo las fracciones y restando los exponentes. Existen reglas bsicas para el manejo de operaciones como la adicin, sustraccin, multiplicacin y divisin, de nmeros de punto flotante. Las reglas se proporcionan mas adelante y se aplican a mantisas fraccionarias de 24 bits normalizados a forma hexadecimal, y a factores de escala que tienen una base implcita de 16 y un exponente explicito de 7 bits en formato exceso-64. Las reglas tienen el fin de especificar solamente los pasos principales necesaria para realizar las cuatro operaciones. No se maneja la posibilidad de que pueda haber demasiada e insuficiencia. Adems los resultados intermedios tanto de alguna mantisa, como de UNIVERSIDAD ANDINA DEL CUSCO 38

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

algunos exponentes podran requerir ms de 24 o 7 bits, respectivamente para su representacin. Ambos aspectos de las operaciones necesitan tomarse en cuenta cuidadosamente al disear un procesador aritmtico. Reglas de Adicin y Sustraccin: 1. Seleccinese el numero que tenga el exponente menor, desplcese a su mantisa a al derecha (en pasos de cuatro bits) tantos paso como sea la diferencia entre los exponentes. 2. Igulese el mayor exponente del resultado. 3. Realcense la adicin y sustraccin con lasa mantisas y determnese el signo del resultado. 4. Si es necesario normalcese el valor resultante y utilcese resultado. Reglas de Multiplicacin: 1. Smense los exponentes y rstese 64. 2. Multiplquense las mantisas y determnese el nmero del resultado. 3. Si es necesario, normalice el valor resultante resultado. Reglas de Divisin: 1. Rstese los exponentes y smense 64. 2. Divdanse las mantisas y determnese el signo del resultado. 3. Si es necesario, normalice el valor resultante y utilcese despus los primeros 24 bits que estn despus del punto binario truncado como mantisa del resultado. Implante de Operaciones de Punto Flotante. a) Para la Suma y Resta: Veremos el implante de la diccin y sustraccin mediante hardware con operador de punto flotante de 32 bits, el cual se divide en 1 bit para el signo, 7 bits para el exponente y 24 bits para la mantisa. Para explicar las operaciones de punto flotante en el diagrama de bloque tomaremos dos operndoos A y B donde Sa y Sb, Ea, Eb, Ma, Mb, son el signo, UNIVERSIDAD ANDINA DEL CUSCO 39 y utilcese despus los primeros 24 bits que estn despus del punto binario truncado como mantisa del despus los primeros 24 bits que estn despus del punto binario truncado como mantisa del

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

exponente y mantisa de A y B respectivamente. Siguiendo las reglas de adicin y sustraccin el primer paso es comparar los exponentes para determinar que tan lejos se puede desplazar la mantisa del nmero del menor exponente este valor de conteo de desplazamiento n, lo determina el circuito sustractor de 7 bits del Angulo superior izquierdo del diagrama. La magnitud de la diferencia Ea-Eb que es n se enva a la unidad SHIFTER (desplazar. El intervalo n esta restringiendo a 0,1,2. 7, en donde n=7 si Ea-Eb=7 ; De otra forma, n=Ea-Eb, si n=7 es posible determinar de inmediato que el resultado es igual al operando mas grande o a su negativo. Sin embargo esta operacin no se muestra en forma explicita en el diagrama. El signo de la diferencia resultante de la comparacin de exponentes determina que mantisas deben desplazarse, por lo tanto, el signo se enva a la red SWAP (cambiador) que esta en la esquina superior derecha del diagrama si el signo es 0, entonces Ea>=Eb y las mantisas Ma y Mb se envan directamente por medio de la red SWAP. Esto da como resultado que Mb se enve al SHIFTER, con lo que se desplaza n posiciones hexadecimales a la derecha. La otra mantisa Ma se enva directamente al sumadorrestador de mantisa. Si el signo es 1, entonces Ea<Eb y las mantisas se intercambian antes de enviar el SHIFTER. Esto termina las reglas de adicin y sustraccin. El paso 2 lo realiza el multiplexador (MPX) de dos sentidos de la esquina inferior izquierda del diagrama. El exponente E del resultado se determina en forma tentativa como Ea, si Ea>=Eb o Eb, si Ea<Eb. Esto esta determinado por el signo de diferencia resultante de operacin de exponentes de al primera regla. El paso 3 involucra al componente principal, el sumador-restador de mantisa de la parte central del diagrama. La Lgica Control determina si las mantisas deben sumarse o restarse. Esto se decide segn los signos de los operndoos Sa y Sb, y segn la operacin suma y sustraccin, que debe realizarse con los operndoos. La Lgica Control tambin determina el signo del resultado Sa. Por ejemplo. Si a es negativa (Sa=1). B es positivo (Sb=0) y la operacin es a-b entonces las mantisas se suman y el signo del resultado es negativo (Sa=1). Por otra parte si tanto a como b son positivos y a la operacin es a-b, entonces las mantisas se restan. El signo del resultado Sa depende ahora de la operacin de sustraccin de las mantisas. Por ejemplo. Si Ea, Eb entonces Ma, Mb desplazada ser positivo, y el resultado tambin pero si Eb, Ea entonces Ma, Mb desplazada ser positiva, pero el resultado negativo. UNIVERSIDAD ANDINA DEL CUSCO 40

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

Este ejemplo muestra que el signo proveniente de la comparacin de los exponentes tambin se necesita como entrada a Red Control, cuando Ea=Eb las mantisas se restan, el signo de la salida sumador-restador de mantisa es crucial para determinar el signo del resultado. El paso 4 de regla adicin y sustraccin es la normalizacin del resultado de la mantisa M. Producida por el paso 3. El numero de ceros a la derecha M determina el numero de X del desplazamiento de dgitos hexadecimales que debe aplicarse a M. Entonces, el valor normalizado se trunca para generar la mantisa M de 24 bits del resultado. El valor x tambin se resta del exponente tentativo del resultado E para generar el exponente verdadero del resultado Er. Debe hacerse notar que es posible que se necesite un solo desplazamiento de digito hexadecimal a la derecha para normalizar el resultado. Este seria el caso si sumaran dos mantisas de la forma 01xx..... entonces, el valor M tendra la forma 1.xxx...esta es la figura correspondiente a un valor de X de 1. b) Para la Multiplicacin: El implante de la multiplicacin y la divisin en aritmtica de punto flotante se realiza utilizando operndoos A y B de formato Sa, Ea, Ma, Sb, Eb respectivamente explicados anteriormente: siguiendo las reglas de la multiplicacin, que mencionaremos a continuacin: 1. Se suman los exponentes de ambos operndoos. 2. Se multiplican las mantisas. 3. Se normaliza la mantisa resultante si es necesario. Ahora explicaremos paso a paso el diagrama de bloques diseado para que se efectuara una multiplicacin de dos nmeros, de punto flotante: El primer paso determinar el signo de la multiplicacin en la red de control, utilizando la siguiente lgica: Si ambos signos tanto del multiplicando como del multiplicador son iguales entonces el signo del producto es 0 (positivo. Caso contrario el signo del resultado es 1 (negativo). A su vez la lgica control recibe la seal de S en 1 para que se inicie el producto.

UNIVERSIDAD ANDINA DEL CUSCO

41

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

El segundo paso la realizan el registro B y el registro Q, que reciben al multiplicando y al multiplicador respectivamente, y el producto parcial se formara en otro registro A. Se usara tambin un sumador para sumar el contenido del registro B, al contenido del registro B y deje el resultado en A. El registro A deber ser de corrimiento con carga en paralelo y debe poder colocarse en puesta a cero en forma sincrona para iniciar al registro a 0. El registro A es un registro de corrimiento. C ser un flip-flop D, para almacenar el acarreo de la suma de A mas B, y adems debe poder reiniciar en forma sincrona. B y Q debern ser de carga en paralelo para recibir el multiplicador y el multiplicando. Como tercer paso paralelamente se usara un contador P que alojara un nmero binario igual al nmero de bits del multiplicador. El contador se decrementar despus de formar cada producto parcial, hasta llegar a cero. Z verifica si P=0. En general la multiplicacin se realiza con lgica: Que el multiplicando se sumara el numero de veces que el multiplicador lo designe, cada suma ser el producto parcial de la multiplicacin. Ejemplo. 5*3 quiere decir: El multiplicando 5 se sume as mismo 3 veces. Pp = 5+5 =10 Pp =Pp+5=10 + 5=15 Entonces el producto total estar almacenado en el registro A cuando el contador ya este en cero. El tercer paso se realiza con el sumador de 7 bits, el cual recibe los exponentes A y B respectivamente y enva el resultado al restador de 7 bits para que participe en la normalizacin de al mantisa. La mantisa ingresa al detector de ceros hexadecimales, el numero de ceros a la derecha de M determina el numero X, luego este X pasa simultneamente al normalizador y al restador de 7 bits, el normalizador corre X posiciones de ceros a la derecha de M (mantisa resultante), y el restador de 7 bits resta E-X, y este resultado es el exponente resultante de la operacin. c) Para la Divisin: UNIVERSIDAD ANDINA DEL CUSCO 42

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

El implante de la divisin en aritmtica de punto flotante se realiza utilizando operndoos A y B de formato Sa, Ma, Ea y Sb, Mb, Eb respectivamente explicados ya anteriormente, siguiendo las reglas de la divisin la variable S deber ser 0, para que se d inicio a la divisin. En el primer paso se verifica que si Mb (divisor) es igual a cero, si es as la lgica de control no realiza la operacin, caso contrario se sigue realizando la secuencia de la divisin la Ma se almacena en un registro, luego ambas mantisas ingresan a un restador donde se va restando sucesivamente Ma-Mb e incrementando el contador C, hasta que se verifique que el resultado de al resta sea menor que Mb, y si es as el resultado viene hacer el residuo de la divisin y el contador C el cociente (mantisa resultante), esta verificacin se realiza en el verificador. En el segundo paso los exponentes Ea y Eb ingresan al restador de 7 bits, el cual devuelve el resultado en E. El tercer paso se calcula el signo del cociente, esta operacin la realiza la lgica de control el cual devuelve en Sr. Como ultimo paso se procede a normalizar la mantisa resultante C. Esta mantisa ingresa al detector de ceros hexadecimales, en donde el numero de ceros a la derecha de C determina el numero X, este numero es el desplazamiento de dgitos hexadecimales que debe aplicarse a la mantisa C y generara la mantisa resultante: El valor X tambin ingresa al restado de 7 bits, en donde se resta el exponente generado y este es el exponente resultante.

UNIVERSIDAD ANDINA DEL CUSCO

43

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

7. Comentarios
a. Debemos tratar de realizar los algoritmos iterativos de complejidad baja ya que las operaciones se realizan bit a bit y el nmero de iteraciones es elevado; en una operacin recursiva observamos que se necesita demasiada memoria y demora en retornar un resultado el ALU se supone que es sumamente rpido. b. Para el caso de la divisin binaria si se emplean restas sucesivas, en el caso de que el divisor sea muy pequeo a comparacin del dividendo el tiempo que se empleara para calcular el resultado ser demasiado, para que el proceso no demore tanto tiempo usaremos otro algoritmo que simula una divisin tradicional. c. Al realizar las conversiones debemos utilizar mtodos que no dependan de nmeros enteros ya que se puede superar el tamao mximo de ese tipo de variable.

UNIVERSIDAD ANDINA DEL CUSCO

44

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

8.

Conclusiones
a. El contenido del presente documento detalla la aritmtica del ALU el cual ayuda la implementacin del simulador tratando de no salir en lo posible del funcionamiento real del ALU. b. La implementacin del simulador aunque a simple vista se observa un extenso cdigo y pareciera complicada, el funcionamiento de los algoritmos no son mas complicados que las funciones que uno realiza al ejecutar cualquier operacin aritmtica, solo que en el caso del simulador se trata de utilizar objetos cuya manipulacin interna parte por parte (bit a bit) exige operaciones que manejen solo bits por ello mas largo en su implementacin. c. La base fundamental de la informacin digital, es el bit. Un bit no puede almacenar mucha informacin por si solo; dispone de un corto men: activado (on), desactivado (of), 1 o 0, alto o bajo. Pero en el chip correcto en el momento preciso, un solo bit puede activar instrucciones que cambian o mueven muchos otros bits, y cuando se empiezan a mover a la vez millones de ellos a una velocidad increblemente rpida. d. Normalmente un sistema informtico, est preparado para mover informacin en bloques de uno, dos, o cuatro bytes, dependiendo si utilizas un ordenador de 8, 16, 32 o 64 bits, en lugar de hacerlo con grandes nmeros de bits diferentes. Trabajar con nmeros binarios o hexadecimales.

UNIVERSIDAD ANDINA DEL CUSCO

45

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

BIBLIOGRAFA Revista COMPUTER HOY. Revista PC ACTUAL. Revista PC WORD. Organizacin y Arquitectura del Computador A. Tanenbaum. Internet. o o o o o o http://www.lafacu.com http://www.lawebdelprogramador.com http://www.dei.uc.edu.py http://www.pccomparativas.com http://www.aclantis.com http://www.howstuffworks.com

Microprocesadores A. Tanenbaum.

UNIVERSIDAD ANDINA DEL CUSCO

46

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

INDICE
1. Objetivos. ...... 03 2. Microprocesador. .. 04 3. Partes del Microprocesador. .. 06 3.1 Encapsulado. ........... 06 3.2 Memoria cach. ... 06 3.3 Coprocesador matemtico. ...... 06 3.4 Unidad aritmtica lgica (ALU). 06 3.5 Unidad de control. ... 07 3.6 Prefetch Unit. ...... 07 3.7 Unidad de decodificacin. .. 07 4. Otros componentes. 08 4.1 Registros. ..... 08 4.1.1. Registros de Propsito General. 08 4.1.2. Registros de ndice. .. 09 4.1.3. Registros de Bandera. ... 10 4.2 Buses. .. 11 5. Unidad Aritmtico-Lgica. 12 5.1 Definicin y Funcionamiento del bloque Aritmtico Lgico. 12 5.2 Unidad De Corrimiento Lgico-Aritmtico (ALSU). . 13 6. Sistemas Numricos. . 14 6.1 Nmeros Binarios. .. 14 6.2 Nmeros Octales y Hexadecimales. 15 6.3 Operaciones Aritmticas. 18 6.4 Conversin de decimal a otra base. . 20 6.5 Complementos. 21 6.5.1 Complemento radical disminuido. . 21 6.5.2 Complemento radical. 22 6.5.3 Sustraccin con complementos. . 23 6.6 Nmeros Binarios con Signo. ... 25 6.6.1Adicin aritmtica. .. 29 6.6.2Sustraccin aritmtica. 30 UNIVERSIDAD ANDINA DEL CUSCO 47

Ingeniera de Sistemas

Simulador de Unidad Aritmtico Lgico

6.7 Cdigos Decimales (BCD). . 31 6.7.1 Adicin BCD. 33 6.7.2 Aritmtica decimal. 35 6.8 Operaciones de Punto Flotante. .... 36 6.8.1Operaciones Aritmticas con Nmeros de Punto Flotante. 37 7. Comentarios. . 44 8. Conclusiones. 45 9. Bibliografa. .................................................................................................................. 46 10. ndice. .... 47

UNIVERSIDAD ANDINA DEL CUSCO

48

Vous aimerez peut-être aussi