El procesador - Operaciones aritméticas y lógicas en la ALU (Periodo II - Actividad XX)
Taller: Operaciones Aritméticas y Lógicas en la ALU de un Procesador
Curso: Sexto de Bachillerato
Duración: 2 horas académicas
Modalidad: Presencial con sustentación oral
Objetivo
Comprender el funcionamiento de la Unidad Aritmético-Lógica (ALU) y aplicar los conocimientos en la resolución de operaciones básicas que ejecuta un procesador.
1. Conceptos Fundamentales
¿Qué es la ALU?
La Unidad Aritmético-Lógica es el componente del procesador que ejecuta todas las operaciones matemáticas y lógicas. Recibe instrucciones decodificadas desde la Unidad de Control (UC) junto con los datos necesarios para procesarlos.
[INSERTAR FIGURA: Diagrama básico de la ALU mostrando entradas, salidas y conexión con UC]
Operaciones que realiza la ALU
Operaciones Aritméticas:
- Suma: Adición de dos números binarios
- Resta: Sustracción usando complemento a 2
- Multiplicación: Suma repetida o algoritmos optimizados
- División: Resta repetida o algoritmos de división
Operaciones Lógicas:
- AND: Conjunción bit a bit
- OR: Disyunción bit a bit
- NOT: Negación bit a bit
- XOR: Disyunción exclusiva bit a bit
Operaciones de Desplazamiento:
- Shift Left: Desplazamiento a la izquierda
- Shift Right: Desplazamiento a la derecha
- Rotate: Rotación circular de bits
Tabla de verdad de operaciones lógicas básicas [tomado de sistemasyoperativos.com]
2. Operaciones Detalladas de la ALU
A. OPERACIONES ARITMÉTICAS
Suma
La ALU suma dos números binarios bit por bit, manejando acarreos entre posiciones.
- Proceso: Utiliza sumadores completos en cascada
- Entradas: Dos operandos binarios + posible carry anterior
- Salida: Resultado + carry + flags de estado
Resta
La ALU resta usando el método de complemento a 2 del sustraendo, luego suma.
- Proceso: Invierte bits del sustraendo, suma 1, luego suma con minuendo
- Entradas: Minuendo y sustraendo
- Salida: Diferencia + flags (incluye borrow/carry)
Multiplicación
La ALU multiplica mediante sumas repetidas o algoritmos de desplazamiento.
- Proceso: Suma el multiplicando tantas veces como indica el multiplicador
- Entradas: Multiplicando y multiplicador
- Salida: Producto (puede requerir registros dobles)
División
La ALU divide usando restas repetidas o algoritmos de desplazamiento.
- Proceso: Resta divisor del dividendo repetidamente
- Entradas: Dividendo y divisor
- Salida: Cociente y residuo
B. OPERACIONES LÓGICAS
AND (Conjunción)
Compara bit por bit: resultado es 1 solo si ambos bits son 1.
- Uso: Enmascaramiento de bits, filtrado de datos
- Tabla: 1 AND 1 = 1, otros casos = 0
OR (Disyunción)
Compara bit por bit: resultado es 1 si al menos un bit es 1.
- Uso: Combinación de bits, activación de flags
- Tabla: 0 OR 0 = 0, otros casos = 1
NOT (Negación)
Invierte cada bit del operando.
- Uso: Complemento, inversión de estados
- Proceso: 0 se convierte en 1, 1 se convierte en 0
XOR (Disyunción Exclusiva)
Resultado es 1 solo si los bits son diferentes.
- Uso: Comparación, cifrado simple, detección de cambios
- Tabla: Iguales = 0, diferentes = 1
C. OPERACIONES DE DESPLAZAMIENTO
Shift Left (Desplazamiento Izquierda)
Mueve todos los bits hacia la izquierda, rellena con ceros por derecha.
- Efecto: Multiplica por 2 por cada posición
- Bit perdido: Sale por la izquierda hacia carry
Shift Right (Desplazamiento Derecha)
Mueve todos los bits hacia la derecha, comportamiento varía según tipo.
- Lógico: Rellena con ceros por izquierda
- Aritmético: Mantiene bit de signo
- Efecto: Divide por 2 por cada posición
3. Ejemplos Detallados por Operación
SUMA: 27 + 19 en 8 bits
Conversión inicial:
- 27 decimal = 00011011 binario
- 19 decimal = 00010011 binario
Proceso bit por bit:
Posición: 7 6 5 4 3 2 1 0
Num A: 0 0 0 1 1 0 1 1 (27)
Num B: 0 0 0 1 0 0 1 1 (19)
Carry: 0 0 1 0 0 1 1 0 (acarreos internos)
---------------
Resultado: 0 0 1 0 1 1 1 0 (46)
Análisis detallado por posición (de derecha a izquierda):
- Pos 0: 1+1 = 10₂ → resultado 0, carrear 1 hacia pos 1
- Pos 1: 1+1+1(carry de pos 0) = 11₂ → resultado 1, carrear 1 hacia pos 2
- Pos 2: 0+0+1(carry de pos 1) = 01₂ → resultado 1, carrear 0 hacia pos 3
- Pos 3: 1+0+0(carry de pos 2) = 01₂ → resultado 1, carrear 0 hacia pos 4
- Pos 4: 1+1+0(carry de pos 3) = 10₂ → resultado 0, carrear 1 hacia pos 5
- Pos 5: 0+0+1(carry de pos 4) = 01₂ → resultado 1, carrear 0 hacia pos 6
- Pos 6: 0+0+0(carry de pos 5) = 00₂ → resultado 0, carrear 0 hacia pos 7
- Pos 7: 0+0+0(carry de pos 6) = 00₂ → resultado 0, carry final 0
Verificación: 00101110₂ = 32+8+4+2 = 46₁₀ ✓
RESTA: 30 - 12 usando complemento a 2
Valores iniciales:
- 30 decimal = 00011110 binario
- 12 decimal = 00001100 binario
Proceso de complemento a 2 de 12:
- Invertir bits: 00001100 → 11110011
- Sumar 1: 11110011 + 1 = 11110100
Suma final:
00011110 (30)
+ 11110100 (-12 en C2)
-----------
00010010 (18)
Carry final se descarta en operaciones de 8 bits.
AND: 11010110 AND 10101010
Proceso bit por bit:
11010110
& 10101010
-----------
10000010
Análisis:
- Solo las posiciones 7 y 1 tienen ambos bits en 1
- Resultado útil para extraer bits específicos (masking)
SHIFT LEFT: 00110110 << 2
Proceso:
Inicial: 00110110 (54 decimal)
<< 1: 01101100 (108 decimal)
<< 2: 11011000 (216 decimal)
Observación: Equivale a multiplicar por 4 (2²)
4. Contexto Completo: Ejecución de Instrucción
Veamos cómo se ejecuta la instrucción ADD R1, R2, R3 (R1 = R2 + R3)
FASE 1: Fetch (Búsqueda)
- UC busca instrucción en memoria usando Program Counter
- Instrucción se carga en Instruction Register
FASE 2: Decode (Decodificación)
- UC analiza la instrucción ADD R1, R2, R3
- Identifica: operación SUMA + registros fuente (R2, R3) + destino (R1)
- UC prepara señales de control para la ALU
FASE 3: Execute (Ejecución)
Paso 3.1: Lectura de operandos
- Registro R2 contiene: 00010101 (21 decimal)
- Registro R3 contiene: 00001110 (14 decimal)
Paso 3.2: Configuración de ALU
- UC envía código de control: 0010 (suma)
- Operandos se conectan a entradas A y B de la ALU
Paso 3.3: Operación en ALU
00010101 (21)
+ 00001110 (14)
-----------
00100011 (35)
Paso 3.4: Actualización de flags
- Zero flag: 0 (resultado no es cero)
- Carry flag: 0 (no hay acarreo final)
- Overflow flag: 0 (no hay desbordamiento)
FASE 4: Write Back (Escritura)
- Resultado 00100011 se almacena en registro R1
- Flags se actualizan en registro de estado
- UC incrementa Program Counter para siguiente instrucción
Diagrama completo del ciclo de instrucción mostrando flujo de datos [tomado de www.youtube.com]
Ejemplo con operación más compleja: AND + SHIFT
Instrucción: Cargar 11010110, aplicar AND con 11110000, después shift left 1
Ejecución completa:
-
Fetch: UC busca secuencia de instrucciones
-
Decode: UC identifica LOAD → AND → SHIFT
-
Execute operación 1:
- Cargar 11010110 en registro R1
-
Execute operación 2:
11010110 (R1) & 11110000 (máscara) ----------- 11010000 (resultado)
-
Execute operación 3:
11010000 << 1 = 10100000
-
Write Back: Resultado final 10100000 en R1
Este proceso muestra cómo la UC coordina toda la operación, mientras que la ALU ejecuta solo los cálculos específicos que se le ordenan.
4. Actividades Prácticas
Ejercicio 1: Operaciones Aritméticas
Resuelve las siguientes operaciones en binario de 8 bits. Muestra el proceso completo:
a) 25 + 17
b) 30 - 12
c) 15 × 3 (usando sumas repetidas)
Ejercicio 2: Operaciones Lógicas
Aplica las operaciones indicadas:
a) 11010110 AND 10101010
b) 01110011 OR 10001100
c) NOT 11110000
d) 10101010 XOR 01010101
Ejercicio 3: Desplazamientos
Realiza las siguientes operaciones:
a) 00110110 << 2 (shift left 2 posiciones)
b) 11010100 >> 3 (shift right 3 posiciones)
Ejercicio 4: Secuencia Completa
Ejecuta la siguiente secuencia de operaciones sobre el valor inicial 00101100:
- Suma 00010011
- Aplica AND con 11110000
- Desplaza a la izquierda 1 posición
- Resta 00001010
¿Cuál es el resultado final?
5. Sustentación Oral
Cada estudiante debe prepararse para explicar al frente uno de los ejercicios resueltos, incluyendo:
- Proceso paso a paso de la operación
- Justificación de cada resultado
- Identificación de flags afectados
- Explicación del papel de la UC en el proceso
Tiempo por sustentación: 3-5 minutos
6. Recursos de Apoyo
Documentos PDF (por incluir):
- Manual básico de arquitectura de computadores
- Guía de operaciones binarias y hexadecimales
- Diseño de circuitos digitales - ALU
Videos de YouTube (buscar):
- “Funcionamiento de la ALU en procesadores”
- “Operaciones binarias paso a paso”
- “Arquitectura de computadores - Unidad aritmético-lógica”
- “Sumador binario completo explicado”
Lecturas complementarias:
- Capítulo sobre ALU en libros de arquitectura de computadores
- Artículos sobre diseño de procesadores modernos
7. Rúbrica de Evaluación
Criterio | Excelente (5.0) | Sobresaliente (4.5) | Aceptable (4.0) | Básico (3.5) | Insuficiente (3.0) |
---|---|---|---|---|---|
Resolución de ejercicios | Todos los ejercicios correctos con procedimientos claros | 80% de ejercicios correctos con buenos procedimientos | 70% de ejercicios correctos con procedimientos básicos | 60% de ejercicios correctos con errores menores | Menos del 60% correcto o procedimientos incorrectos |
Comprensión conceptual | Domina completamente los conceptos de ALU y operaciones | Comprende bien los conceptos con explicaciones coherentes | Comprende conceptos básicos con algunas dudas | Comprensión limitada de conceptos fundamentales | No demuestra comprensión de conceptos básicos |
Sustentación oral | Explicación clara, precisa y completa del proceso | Explicación coherente con detalles técnicos apropiados | Explicación básica pero comprensible del proceso | Explicación confusa con algunos elementos correctos | No logra explicar el proceso o comete errores graves |
Uso de terminología | Emplea correctamente todos los términos técnicos | Usa apropiadamente la mayoría de términos técnicos | Usa términos básicos con algunas imprecisiones | Uso limitado de terminología técnica | No emplea terminología técnica o la usa incorrectamente |
Presentación | Trabajo ordenado, limpio y bien estructurado | Trabajo organizado con buena presentación | Trabajo básico pero presentable | Trabajo desordenado pero legible | Trabajo desorganizado o difícil de interpretar |
Nota final: Promedio ponderado de todos los criterios
Comments
Post a Comment