El procesador - Operaciones aritméticas y lógicas en la ALU (Periodo II - Actividad XX)

operaciones en la alu

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:

  1. Invertir bits: 00001100 → 11110011
  2. 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:

  1. Fetch: UC busca secuencia de instrucciones

  2. Decode: UC identifica LOAD → AND → SHIFT

  3. Execute operación 1:

    • Cargar 11010110 en registro R1
  4. Execute operación 2:

      11010110  (R1)
    & 11110000  (máscara)
    -----------
      11010000  (resultado)
    
  5. Execute operación 3:

    11010000 << 1 = 10100000
    
  6. 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:

  1. Suma 00010011
  2. Aplica AND con 11110000
  3. Desplaza a la izquierda 1 posición
  4. 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

Popular posts from this blog

Historia de las Computadoras (Periodo II - Actividad I)

Periodo I - Actividad II

Componentes de un computador (Periodo II - Actividad II)