1 / 47

ALU

ALU. Unidad aritmético-lógica. Definición. La ALU (unidad aritmético-lógica) es el dispositivo que se encarga de realizar: Operaciones aritméticas (suma, resta, etc.). Operaciones lógicas (and, or, xor, etc.). Circuitos combinatorios. Su salida depende exclusivamente de sus entradas.

bedros
Download Presentation

ALU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALU Unidad aritmético-lógica

  2. Definición • La ALU (unidad aritmético-lógica) es el dispositivo que se encarga de realizar: • Operaciones aritméticas (suma, resta, etc.). • Operaciones lógicas (and, or, xor, etc.). Arquitectura de Computadoras

  3. Circuitos combinatorios • Su salida depende exclusivamente de sus entradas. Arquitectura de Computadoras

  4. Compuertas básicas Arquitectura de Computadoras

  5. Compuertas básicas Arquitectura de Computadoras

  6. Otras compuertas • XOR (or exclusiv0). • EQV (equivalence). • NAND (not AND). • NOR (not OR). Arquitectura de Computadoras

  7. Multiplexor • El multiplexor (mux) tiene 2n entradas de datos, n bits de selección y una salida. • Los bits de selección se usan para decidir cuál entrada pasa a la salida. • Mux 2 a 1 Arquitectura de Computadoras

  8. Multiplexor • Mux 4 a 1 • Mux 8 a 1 Arquitectura de Computadoras

  9. Sumador completo • Sumador completo (full adder) de 1 bit: • Entradas: dos números de 1 bit y un bit de carry de entrada. • Salidas: la suma de 1 bit y un bit de carry de salida. Arquitectura de Computadoras

  10. Sumador completo Arquitectura de Computadoras

  11. Sumador completo • Suma = a  b  CarryIn • CarryOut = (a · CarryIn) + (b · CarryIn) + (a · b) = (a + b) · CarryIn + (a · b) Arquitectura de Computadoras

  12. Sumador completo • Diagrama a bloque. Arquitectura de Computadoras

  13. ALU de 1 bit • Dos operaciones: AND y OR. • Un bit para seleccionar la operación. Arquitectura de Computadoras

  14. Agregando operaciones • El siguiente paso es agregar la suma. • Se agrega un sumador completo al diseño anterior. Arquitectura de Computadoras

  15. ALU de 1 bit • 3 operaciones: AND, OR y suma. • 2 bits para seleccionar la operación. Arquitectura de Computadoras

  16. Agregando operaciones • Agregar la resta a – b. • a – ba + b si b está en complemento a 2. • El complemento a dos de b se encuentra sumando 1 al complemento a uno de b. • El complemento a uno de b se encuentra negando a b. • a – b = a + (–b) = a + (¬b + 1) = a + ¬b + 1 • El 1 de la suma viene en CarryIn. Arquitectura de Computadoras

  17. ALU de 1 bit • 4 operaciones: AND, OR, suma y resta. • 2 bits para seleccionar la operación. • Un bit extra para diferenciar entre la suma y la resta. • En la resta, CarryIn es 1. Arquitectura de Computadoras

  18. ALU de 1 bit Arquitectura de Computadoras

  19. ALU de 1 bit Arquitectura de Computadoras

  20. Agregando operaciones • Agregar la operación NOR: • ¬(a + b) • Ley de DeMorgan: • ¬(a + b) = ¬a · ¬b • La ALU ya puede calcular a · b y ¬b. • Hace falta poder calcular ¬a. Arquitectura de Computadoras

  21. ALU de 1 bit • 5 operaciones: AND, OR, NOR, suma y resta. • 2 bits para seleccionar la operación. • Binvert diferencia entre la suma y la resta. • En la resta, CarryIn es 1. • Ainvert y Binvert diferencian entre AND y NOR. Arquitectura de Computadoras

  22. ALU de 1 bit Arquitectura de Computadoras

  23. ALU de 1 bit Arquitectura de Computadoras

  24. Agregando operaciones • Variando Ainvert y Binvert permite generar: • 8 operaciones lógicas. • 5 operaciones aritméticas. Arquitectura de Computadoras

  25. Agregando operaciones Arquitectura de Computadoras

  26. Agregando operaciones Arquitectura de Computadoras

  27. ALU de 32 bits • ¿Cómo se genera una ALU de 32 bits? • Con 32 ALUs de 1 bit. • CarryOut de la ALUi se conecta a CarryIn de la ALUi+1. • En la resta CarryIn ALU0 se conecta a 1. Arquitectura de Computadoras

  28. ALU de 32 bits Arquitectura de Computadoras

  29. ALU para MIPS • El diseño de la ALU está incompleto. • La mayoría de las instrucciones de MIPS pueden ser realizadas con las operaciones AND, OR, suma y resta. • Se necesita soportar la instrucción slt (set on less than). • slt $x, $y, $z guarda 1 en $x si $y < $z y 0 en otro caso. Arquitectura de Computadoras

  30. $x 0 0 … 0 $y < $z 30 … 1 0 31 Soportando slt • slt $x, $y, $z pone a ceros los bits 1 a 31 de $x. • El bit 0 de $x tiene el resultado de la comparación de $y y $z. Arquitectura de Computadoras

  31. Soportando slt • Se calcula t = $y - $z. • Si t es negativo $y < $z. • Si t es positivo o cero $y  $z. • En MIPS los números negativos tienen 1 en el bit 31. • El bit 31 de t tiene el resultado de la comparación. Arquitectura de Computadoras

  32. Soportando slt • Para hacer una ALU de 32 bits se consideran dos tipos de ALU distintos. • Una para los bits del 0 al 30. • Parecida al diseño anterior, tiene una entrada extra llamada Less. • Otra para el bit 31. • Además de la entrada Less, tiene una salida Set con el signo de la resta y un detector de overflow. Arquitectura de Computadoras

  33. ALU para los bits 0 al 30 Arquitectura de Computadoras

  34. ALU para el bit 31 Arquitectura de Computadoras

  35. ALU de 32 bits • Se conectan las 32 ALUs. • CarryOut de la ALUi se conecta a CarryIn de la ALUi+1. • Las entradas Less de la ALU1 a la ALU31 se ponen a 0. • La entrada Less de la ALU0 se conecta a la salida Set de la ALU31. • En la resta CarryIn de la ALU0 se conecta a 1. Arquitectura de Computadoras

  36. ALU de 32 bits Arquitectura de Computadoras

  37. ALU para MIPS • Falta soportar los brincos condicionales. • beq $x, $y, L – brinca a L si $x = $y. • bne $x, $y, L – brinca a L si $x  $y. • Se calcula t = $x - $y. • Si t es cero, $x = $y. • Si t no es cero, $x  $y. Arquitectura de Computadoras

  38. ALU para MIPS • Se agrega una salida Zero que detecte cuando todos los bits de resultado sean cero. • Zero = ¬(Result31 + Result30 + … + Result1 + Result0) • Se combinan la entradas Binvert y CarryIn de la ALU0 con el nombre Bnegate. • Binvert = CarryIn = 1 cuando hay que restar. • Binvert = CarryIn = 0 en la suma y operaciones lógicas. Arquitectura de Computadoras

  39. ALU para MIPS Arquitectura de Computadoras

  40. Diagrama y tabla de la ALU Arquitectura de Computadoras

  41. Overflow • El overflow ocurre cuando el resultado de una operación no se puede representar en el hardware. • Con 4 bits, el rango de enteros con signo, usando complemento a dos para los negativos, es de -8 a +7. • La suma 5 + 6 genera overflow. • La resta -5 – 6 genera overflow. Arquitectura de Computadoras

  42. Overflow • Sumando 5 + 6 con 4 bits: 0101 (+5) + 0110 (+6) ------------- 1011 (-5) ⇦ ¡error! • Restando -5 – 6 con 4 bits: 1011 (-5) + 1010 (-6) ------------ 0101 (+5) ⇦ ¡error! Arquitectura de Computadoras

  43. Detectando overflow • El overflow ocurre en la suma cuando: • Al sumar dos positivos el resultado es negativo. • Al sumar dos negativos el resultado es positivo. • El overflow ocurre en la resta cuando: • Al restar un negativo de un positivo el resultado es negativo. • Al restar un positivo de un negativo el resultado es positivo. Arquitectura de Computadoras

  44. Detectando overflow Arquitectura de Computadoras

  45. Detectando overflow • Método obvio: revisar los signos de los operandos y del resultado. • Si los operandos son positivos, revisar que el resultado sea positivo. • Los demás casos se hacen igual. • Método no (tan) obvio: si el carry de entrada es distinto al carry de salida en el bit mas significativo, se generó overflow. • La demostración se queda de tarea. Arquitectura de Computadoras

  46. Overflow en MIPS • Las operaciones con enteros con signo deben reconocer el overflow. • Con 4 bits, el rango es de -8 a +7. • 5 + 6 genera overflow. • Las operaciones con enteros sin signo ignoran el overflow. • Con 4 bits, el rango es de 0 a 15. • 5 + 6 = 11. • 14 + 7 = 5 (se ignora el último carry). Arquitectura de Computadoras

  47. Overflow en MIPS • En MIPS hay dos clases de instrucciones aritméticas: • La suma (add), suma inmediata (addi) y resta (sub), reconocen el overflow. • La suma sin signo (addu), suma inmediata sin signo (addiu) y resta sin signo (subu), ignoran el overflow. Arquitectura de Computadoras

More Related