0% encontró este documento útil (0 votos)
360 vistas43 páginas

1 - Alu PDF

La ALU (unidad aritmético-lógica) realiza operaciones aritméticas y lógicas utilizando compuertas lógicas básicas como AND, OR, XOR. Una ALU de 1 bit puede implementar operaciones como AND, OR, suma, resta variando los bits de entrada Ainvert, Binvert y CarryIn.

Cargado por

efecast
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
360 vistas43 páginas

1 - Alu PDF

La ALU (unidad aritmético-lógica) realiza operaciones aritméticas y lógicas utilizando compuertas lógicas básicas como AND, OR, XOR. Una ALU de 1 bit puede implementar operaciones como AND, OR, suma, resta variando los bits de entrada Ainvert, Binvert y CarryIn.

Cargado por

efecast
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ALU

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

Universidad de Sonora Arquitectura de Computadoras 2


Circuitos combinatorios
 Su salida depende exclusivamente de sus entradas.

Universidad de Sonora Arquitectura de Computadoras 3


Compuertas básicas

Universidad de Sonora Arquitectura de Computadoras 4


Compuertas básicas
AND OR
A B A·B A B A+B
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1

NOT
A Ā
0 1
1 0
Universidad de Sonora Arquitectura de Computadoras 5
Otras compuertas
 XOR (or exclusiv0).
 EQV (equivalence).
 NAND (not AND).
 NOR (not OR).

Universidad de Sonora Arquitectura de Computadoras 6


Otras compuertas
XOR EQV
A B A XOR B A B A EQV B
0 0 0 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 1

Universidad de Sonora Arquitectura de Computadoras 7


Otras compuertas
NAND NOR
A B A NAND B A B A NOR B
0 0 1 0 0 1
0 1 0 0 1 1
1 0 0 1 0 1
1 1 0 1 1 0

Universidad de Sonora Arquitectura de Computadoras 8


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

Universidad de Sonora Arquitectura de Computadoras 9


Multiplexor
 Mux 4 a 1

 Mux 8 a 1

Universidad de Sonora Arquitectura de Computadoras 10


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.

Universidad de Sonora Arquitectura de Computadoras 11


Sumador completo

Universidad de Sonora Arquitectura de Computadoras 12


Sumador completo
 Suma = a  b  CarryIn
 CarryOut = (a · CarryIn) + (b · CarryIn) + (a · b)
= (a + b) · CarryIn + (a · b)

Universidad de Sonora Arquitectura de Computadoras 13


Sumador completo
 Diagrama a bloque.

Universidad de Sonora Arquitectura de Computadoras 14


ALU de 1 bit
 Dos operaciones: AND y OR.
 Un bit para seleccionar la operación.

Operación Salida

0 a·b

1 a+b

Universidad de Sonora Arquitectura de Computadoras 15


Agregando operaciones
 El siguiente paso es agregar la suma.
 Se agrega un sumador completo al diseño anterior.

Universidad de Sonora Arquitectura de Computadoras 16


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

Operación Resultado CarryOut


00 a·b X

01 a+b X

10 ab (a + b) · CarryIn +
CarryIn (a · b)
11 X X

Universidad de Sonora Arquitectura de Computadoras 17


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.

Universidad de Sonora Arquitectura de Computadoras 18


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.

Universidad de Sonora Arquitectura de Computadoras 19


ALU de 1 bit

Universidad de Sonora Arquitectura de Computadoras 20


ALU de 1 bit
Operación Binvert CarryIn Resultado CarryOut
00 0 X a·b X
01 0 X a+b X
10 0 X a  b  CarryIn (a + b) · CarryIn +
(a · b)
10 1 0 X X
10 1 1 ab a + ¬b
11 X X X X

Universidad de Sonora Arquitectura de Computadoras 21


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.

Universidad de Sonora Arquitectura de Computadoras 22


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.

Universidad de Sonora Arquitectura de Computadoras 23


ALU de 1 bit

Universidad de Sonora Arquitectura de Computadoras 24


ALU de 1 bit
Operación Ainvert Binvert CarryIn Resultado CarryOut

00 0 0 X a·b X

00 1 1 X ¬a · ¬b X

01 0 0 X a+b X

10 0 0 X ab (a + b) · CarryIn +
CarryIn (a · b)
10 0 1 0 X X

10 0 1 1 ab a + ¬b

11 X X X X X

Universidad de Sonora Arquitectura de Computadoras 25


Agregando operaciones
 Variando Ainvert y Binvert permite generar:
 8 operaciones lógicas.
 5 operaciones aritméticas.

Universidad de Sonora Arquitectura de Computadoras 26


Agregando operaciones
Operación Ainvert Binvert CarryIn Resultado CarryOut

00 0 0 X a·b X
00 0 1 X a · ¬b X
00 1 0 X ¬a · b X
00 1 1 X ¬a · ¬b X
01 0 0 X a+b X
01 0 1 X a + ¬b X
01 1 0 X ¬a + b X
01 1 1 X ¬a + ¬b X
Universidad de Sonora Arquitectura de Computadoras 27
Agregando operaciones
Operación Ainvert Binvert CarryIn Función
aritmética
10 0 0 0 a+b

10 0 0 1 a+b+1

10 0 1 1 a-b

10 1 0 1 b-a

10 1 1 1 -a - b

Universidad de Sonora Arquitectura de Computadoras 28


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.

Universidad de Sonora Arquitectura de Computadoras 29


ALU de 32 bits

Universidad de Sonora Arquitectura de Computadoras 30


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.

Universidad de Sonora Arquitectura de Computadoras 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.

$x 0 0 … 0 $y < $z

31 30 … 1 0

Universidad de Sonora Arquitectura de Computadoras 32


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.

Universidad de Sonora Arquitectura de Computadoras 33


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.

Universidad de Sonora Arquitectura de Computadoras 34


ALU para los bits 0 al 30

Universidad de Sonora Arquitectura de Computadoras 35


ALU para el bit 31

Universidad de Sonora Arquitectura de Computadoras 36


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.

Universidad de Sonora Arquitectura de Computadoras 37


ALU de 32 bits

Universidad de Sonora Arquitectura de Computadoras 38


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.

Universidad de Sonora Arquitectura de Computadoras 39


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.

Universidad de Sonora Arquitectura de Computadoras 40


ALU para MIPS

Universidad de Sonora Arquitectura de Computadoras 41


Diagrama y tabla de la ALU
Líneas de Función
control
C3 C2 C1 C0
0 0 0 0 AND
0 0 0 1 OR
0 0 1 0 suma
0 1 1 0 resta
0 1 1 1 set on less than
1 1 0 0 NOR
C3 = Ainvert
C2 = Bnegate
Universidad de Sonora Arquitectura de Computadoras 42
Overflow en MIPS
 El overflow se presenta cuando el resultado de una
operación no se puede representar con 32 bits.
 En MIPS hay dos clases de instrucciones aritméticas:
1. La suma (add), suma inmediata (addi) y resta (sub),
reconocen el overflow.
2. La suma sin signo (addu), suma inmediata sin signo
(addiu) y resta sin signo (subu), ignoran el overflow.

Universidad de Sonora Arquitectura de Computadoras 43

También podría gustarte