Alu procesador
Óscar David Robles Sánchez Ángel Serrano Sánchez de León Luis Rincón Córcoles
Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
Programa
1. 2. 3. 4. 5. Introducción. Construcción de una ALU básica. Multiplicación básica y su circuitería. División básica y su circuitería. Bibliografía.
Conceptos básicos: Unidadaritmético-lógica, operaciones lógicas, sumador,
restador, indicador de resultado, algoritmos de multiplicación de enteros sin signo, algoritmos de división de enteros sin signo (división por restauración).
2
1
Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
1. Introducción
Una unidad aritmética y lógica (UAL) es un circuito combinacional que realiza lasoperaciones aritméticas y lógicas básicas en el computador.
• Operaciones aritméticas básicas: suma, resta, multiplicación, división. • Operaciones lógicas básicas: NOT, AND, OR, NAND, NOR. • En inglés: ALU (arithmetic and logic unit). • En algunos sitios: unidad aritmético-lógica.
operando1 operando2
operación
ALU
resultado
indicador de resultado
3
Tema 13. Construcción de unaunidad aritmética y lógica (números enteros)
2. Construcción de una ALU básica
2.1. Operaciones lógicas
La implementación de circuitos para operaciones lógicas es muy sencilla: basta simplemente con una batería de puertas lógicas y un multiplexor accionado por las correspondientes señales de selección. Ejemplo: unidad lógica de 1 bit con las funciones AND y OR: Operación: señal de selección de 1bit.
Operation Operación
a
0 Result 1
b
MUX
4
2
Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
2.2. Sumador completo
Sumador completo (tema 6):
• 3 entradas (a, b y AcarreoE).
a 0 0 0 0
a Suma b
Entradas b 0 0 1 1 0 0 1 1 AcarreoE 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1
Salidas AcarreoS Suma 0 1 1 0 1 0 0 1
Operación 0+0+0=00 0+0+1=010+1+0=01 0+1+1=10 1+0+0=01 1+0+1=10 1+1+1=10 1+1+1=11
• 2 salidas (Suma y AcarreoS).
AcarreoE
1 1 1 1
AcarreoS
=
+
+
= = ⊕ ⊕
+
+
+
=
5
Tema 13. Construcción de una unidad aritmética y lógica (números enteros) Añadimos el sumador completo a nuestra ALU, haciendo más grande el multiplexor:
Operación AcarreoE
a
0
1
Resultado
2 b
AcarreoS 6
3Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
2.3. Restador
• Resta en complemento a 2: suma del negado más 1.
a - b = a + (-b) = a + ( b + 1) = a + b + 1
Resta: AcarreoE = InvertirB = 1
7
Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
2.4. Operación slt (activar si menor que)
slt $rd, $rs, $rt
$rd = 0000000116 si $rs < $rt$rd = 0000000016 si $rs $rt
InvertirB Operación AcarreoE 0 1 Resultado b 0 1 Menor 3 Comparación Detección del Desbordamiento Desbordamiento 8 2
a
Bits 0 - 30
Bit 31
4
Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
InvertirB AcarreoE Operación
a0 b0
AcarreoE ALU0 Menor AcarreoS
Resultado0
a1 b1 0
AcarreoE ALU1 Menor AcarreoS
Resta:AcarreoE = InvertirB = 1
Resultado1
Suma: AcarreoE = InvertirB = 0 Ambas se pueden combinar en una única señal NegarB.
a2 b2 0
AcarreoE ALU2 Menor AcarreoS
Resultado2
AcarreoE a31 b31 0 Resultado31 Comparación Desbordamiento
AcarreoE ALU31 Menor
9
Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
2.5. Indicador de resultado: Detector de cerosInvertirB Operación a0 b0 AcarreoE ALU0 Menor AcarreoS Resultado0
a1 b1 0
AcarreoE ALU1 Menor AcarreoS
Resultado1 Cero
a2 b2 0
AcarreoE ALU2 Menor AcarreoS
Resultado2
a31 b31 0
AcarreoE ALU31 Menor
Resultado31 Comparación Desbordamiento
10
5
Tema 13. Construcción de una unidad aritmética y lógica (números enteros)
2.6. Resumen de la ALU hasta ahora
Operación ALU...
Regístrate para leer el documento completo.