Fases de Ejecución de una Instrucción en un Procesador (Periodo II - Actividad X)

ejecución de instrucción paso a paso

Taller: Fases de Ejecución de una Instrucción en un Procesador

Grado: Décimo de Bachillerato
Duración: 90 minutos

Objetivo

Comprender cómo un procesador ejecuta instrucciones paso a paso, desde su recepción hasta el almacenamiento de resultados, identificando el rol de cada componente interno.

1. Conceptos Fundamentales

El Ciclo de Ejecución de Instrucciones

Un procesador ejecuta instrucciones siguiendo un ciclo básico de 5 fases:

  1. Búsqueda (Fetch): El procesador solicita la instrucción desde la memoria RAM
  2. Decodificación (Decode): Interpreta qué operación debe realizar
  3. Búsqueda de Operandos: Obtiene los datos necesarios para la operación
  4. Ejecución (Execute): Realiza la operación en la ALU
  5. Escritura (Write-back): Almacena el resultado en registros o memoria

Diagrama del ciclo de instrucciones con las 5 fases [tomado de www.monografias.com]

Formato de las Instrucciones

Las instrucciones llegan al procesador como código binario de 32 bits (en arquitecturas comunes), dividido en campos:

  • Opcode (6-8 bits): Código de la operación (ADD, SUB, LOAD, etc.)
  • Registros (5 bits c/u): Especifica qué registros usar
  • Inmediato/Dirección (16 bits): Valores constantes o direcciones de memoria

[INSERTAR FIGURA: Estructura de una instrucción de 32 bits mostrando los campos]

Componentes Clave del Procesador

Unidad de Control (UC): Coordina todo el proceso y decodifica instrucciones
Unidad Aritmético-Lógica (ALU): Ejecuta operaciones matemáticas y lógicas
Registros: Almacenamiento ultrarrápido dentro del procesador
Memoria Caché: Almacenamiento rápido entre procesador y RAM

[INSERTAR FIGURA: Arquitectura básica del procesador con estos componentes]

2. Decodificación e Instrucciones

Estándar MIPS (Arquitectura de Referencia)

Utilizaremos el estándar MIPS (Microprocessor without Interlocked Pipeline Stages), uno de los más estudiados en educación. MIPS define tres formatos de instrucción de 32 bits:

Formato R (Registro): Para operaciones entre registros

[6 bits: op] [5 bits: rs] [5 bits: rt] [5 bits: rd] [5 bits: shamt] [6 bits: funct]

Formato I (Inmediato): Para operaciones con constantes o direcciones

[6 bits: op] [5 bits: rs] [5 bits: rt] [16 bits: inmediato/dirección]

Formato J (Salto): Para saltos incondicionales

[6 bits: op] [26 bits: dirección de destino]

[INSERTAR FIGURA: Los tres formatos de instrucción MIPS con campos etiquetados]

Interpretación de Campos según MIPS

  • op (opcode): Identifica el tipo de operación principal
  • rs: Registro fuente (source register)
  • rt: Registro destino temporal (target register)
  • rd: Registro destino final (destination register)
  • shamt: Cantidad de desplazamiento para operaciones shift
  • funct: Función específica (para op=000000, especifica la operación exacta)
  • inmediato: Valor constante o desplazamiento de dirección

Principales Opcodes MIPS

Opcode Formato Instrucción Descripción Campos Requeridos
000000 R ADD/SUB/AND/OR Operaciones aritméticas/lógicas rs, rt, rd, funct
001000 I ADDI Suma con inmediato rs, rt, inmediato
001100 I ANDI AND con inmediato rs, rt, inmediato
100011 I LW (Load Word) Carga palabra de memoria rs, rt, inmediato
101011 I SW (Store Word) Guarda palabra en memoria rs, rt, inmediato
000100 I BEQ Salto si son iguales rs, rt, dirección
000101 I BNE Salto si son diferentes rs, rt, dirección
001010 I SLTI Comparar menor que inmediato rs, rt, inmediato
000010 J J Salto incondicional dirección
000011 J JAL Salto y enlace (función) dirección

Códigos de Función (funct) para Opcode 000000

Funct Instrucción Operación
100000 ADD Suma
100010 SUB Resta
100100 AND AND lógico
100101 OR OR lógico
101010 SLT Menor que
000000 SLL Desplazamiento izquierda

Ejemplo de Decodificación

Instrucción binaria: 00000001001010100100000000100000

Análisis por formato R:

  • op: 000000 → Operación tipo R, consultar funct
  • rs: 01001 → Registro R9 (fuente 1)
  • rt: 01010 → Registro R10 (fuente 2)
  • rd: 01000 → Registro R8 (destino)
  • shamt: 00000 → Sin desplazamiento
  • funct: 100000 → ADD (suma)

Interpretación: Sumar contenido de R9 + R10 y guardar resultado en R8

Segundo ejemplo: 00100000001000100000000000000101

  • op: 001000 → ADDI (suma inmediata)
  • rs: 00001 → Registro R1 (fuente)
  • rt: 00010 → Registro R2 (destino)
  • inmediato: 0000000000000101 → Valor 5

Interpretación: Sumar contenido de R1 + 5 y guardar resultado en R2

3. Ejemplo Práctico: Ejecución de una Secuencia

Supongamos que queremos ejecutar: C = A + B donde A=5, B=3

Instrucciones en memoria:

Dirección    Instrucción MIPS                        Código Binario
0x1000      LW R1, 0(R0)    ; Cargar A en R1        10001100000000010000000000000000
0x1004      LW R2, 4(R0)    ; Cargar B en R2        10001100000000100000000000000100  
0x1008      ADD R3, R1, R2  ; Sumar R1+R2→R3        00000000001000100001100000100000
0x100C      SW R3, 8(R0)    ; Guardar R3 en C       10101100000000110000000000001000

[INSERTAR FIGURA: Mapa de memoria mostrando ubicación de instrucciones y datos]

Ejecución Paso a Paso:

Instrucción 1: LW R1, 0(R0) - Cargar A en R1
Binario MIPS: 10001100000000010000000000000000

  • Fetch:
    • PC (Program Counter) contiene dirección 0x1000
    • UC envía 0x1000 por bus de direcciones a RAM
    • RAM responde con 32 bits: 10001100000000010000000000000000
    • Instrucción llega por bus de datos al procesador
  • Decode:
    • op=100011 (LW - Load Word, formato I)
    • rs=00000 (R0 - registro base)
    • rt=00001 (R1 - registro destino)
    • inmediato=0000000000000000 (desplazamiento 0)
  • Operandos: Calcula dirección efectiva: R0 + 0 = dirección de A
  • Execute: Solicita a memoria el valor en dirección de A, recibe 5
  • Write-back: Almacena 5 en registro R1

Instrucción 2: LW R2, 4(R0) - Cargar B en R2
Binario MIPS: 10001100000000100000000000000100

  • Fetch:
    • PC incrementado a 0x1004
    • UC solicita instrucción en 0x1004 desde RAM
    • RAM devuelve: 10001100000000100000000000000100
  • Decode:
    • op=100011 (LW), rs=00000 (R0), rt=00010 (R2)
    • inmediato=0000000000000100 (desplazamiento 4)
  • Operandos: Dirección efectiva: R0 + 4 = dirección de B
  • Execute: Obtiene valor 3 de memoria
  • Write-back: Almacena 3 en registro R2

Instrucción 3: ADD R3, R1, R2 - Sumar R1 + R2 → R3
Binario MIPS: 00000000001000100001100000100000

  • Fetch:
    • PC en 0x1008
    • UC solicita instrucción desde RAM
    • Recibe: 00000000001000100001100000100000
  • Decode:
    • op=000000 (tipo R), rs=00001 (R1), rt=00010 (R2)
    • rd=00011 (R3), funct=100000 (ADD)
  • Operandos: Lee R1 (valor 5) y R2 (valor 3) desde banco de registros
  • Execute: ALU ejecuta 5 + 3 = 8
  • Write-back: Guarda resultado 8 en registro R3

Instrucción 4: SW R3, 8(R0) - Guardar R3 en C
Binario MIPS: 10101100000000110000000000001000

  • Fetch:
    • PC en 0x100C
    • UC obtiene de RAM: 10101100000000110000000000001000
  • Decode:
    • op=101011 (SW - Store Word), rs=00000 (R0)
    • rt=00011 (R3), inmediato=0000000000001000 (desplazamiento 8)
  • Operandos: Calcula dirección: R0 + 8 = dirección de C
  • Execute: Envía valor de R3 (8) a memoria en dirección de C
  • Write-back: No aplica (operación de escritura a memoria)

[INSERTAR FIGURA: Diagrama temporal mostrando cada fase para cada instrucción]

Rol de Caché y Registros

Registros: Almacenan temporalmente los operandos (R1, R2, R3). Acceso en 1 ciclo de reloj.

Caché L1: Si los valores A y B estaban recientemente usados, se obtienen de caché (3-4 ciclos) en lugar de RAM (100+ ciclos).

Caché L2/L3: Backup de L1, mantienen copias de datos frecuentemente usados.

[INSERTAR FIGURA: Jerarquía de memoria mostrando tiempos de acceso]

4. Actividades

Actividad A: Decodificación Manual (20 minutos)

Decodifica las siguientes instrucciones binarias usando el estándar MIPS e indica qué operación realizan:

  1. 00000001000010010100000000100000 (Formato R)
  2. 10001100001000100000000000000100 (Formato I)
  3. 00010000001000100000000000001000 (Formato I)
  4. 00100000001000100000000000001010 (Formato I)

Para cada instrucción indica:

  • Formato utilizado (R, I o J)
  • Significado de cada campo
  • Operación que realiza
  • Registros involucrados

Actividad B: Simulación de Ejecución (25 minutos)

Simula la ejecución completa de este programa que calcula D = (A × 2) + B:

Memoria inicial: A = 7 (dirección 0x2000), B = 4 (dirección 0x2004)

Dirección    Instrucción                   Código Binario MIPS
0x1000      LW R1, 0x2000(R0)            10001100000000010010000000000000
0x1004      ADD R2, R1, R1               00000000001000010001000000100000  
0x1008      LW R3, 0x2004(R0)            10001100000000110010000000000100
0x100C      ADD R4, R2, R3               00000000010000110010000000100000
0x1010      SW R4, 0x2008(R0)            10101100000001000010000000001000

Completa la tabla de seguimiento:

Instrucción Fase PC Código desde RAM Componente Activo Operación Específica Estado Registros
LW R1, 0x2000(R0) Fetch 0x1000 10001100000000010010000000000000 UC + Bus Solicita instrucción R1=?, R2=?, R3=?, R4=?
LW R1, 0x2000(R0) Decode 0x1000 - UC op=100011, rt=R1, offset=0x2000 R1=?, R2=?, R3=?, R4=?

Actividad C: Análisis de Rendimiento (15 minutos)

Explica por qué cada escenario afecta el rendimiento:

  1. Un dato está en caché L1 vs. debe buscarse en RAM
  2. Una instrucción requiere acceso a memoria vs. solo usa registros
  3. Hay dependencia entre instrucciones consecutivas

5. Presentación Oral (20 minutos)

Cada equipo presentará 5 minutos la solución de una actividad, explicando:

  • Proceso de decodificación realizado
  • Justificación de cada fase identificada
  • Análisis del rol de cada componente

6. Recursos de Apoyo

Lecturas Recomendadas:

  • “Organización y Arquitectura de Computadores” - William Stallings (Cap. 3-4)
  • “Arquitectura de Computadores” - Morris Mano (Cap. 5-6)

Videos de YouTube (en español):

  • “Ciclo de Instrucciones del Procesador” - Canal Informática Educativa
  • “Decodificación de Instrucciones MIPS” - Arquitectura de Computadores UNAL
  • “Funcionamiento de la Memoria Caché” - TecnoEducativo

Documentos PDF:

  • Manual básico de arquitectura MIPS
  • Guía de códigos de operación comunes
  • Diagrama detallado de jerarquía de memoria

7. Rúbrica de Evaluación

Criterio Nivel 1 (1.0-2.0) Nivel 2 (2.1-3.0) Nivel 3 (3.1-3.5) Nivel 4 (3.6-4.5) Nivel 5 (4.6-5.0)
Decodificación No identifica campos ni opcodes correctamente Identifica algunos campos básicos con errores Decodifica correctamente la mayoría de instrucciones Decodifica todas las instrucciones con explicación clara Decodifica perfectamente y explica variaciones de formato
Fases de Ejecución No distingue las fases del ciclo Identifica 2-3 fases sin orden correcto Identifica 4-5 fases en orden básico Explica todas las fases con detalle y orden correcto Domina todas las fases y explica interacciones complejas
Rol de Componentes No identifica función de componentes Identifica función básica de 1-2 componentes Explica función de registros y ALU Explica función de todos los componentes principales Explica componentes y sus interacciones avanzadas
Análisis de Rendimiento No relaciona componentes con rendimiento Identifica 1 factor de rendimiento Explica 2-3 factores básicos Analiza múltiples factores con justificación Análisis completo con optimizaciones propuestas
Presentación Oral Lectura sin comprensión evidente Explicación básica con algunos errores Presentación clara de conceptos principales Presentación organizada con buen dominio Presentación excepcional con ejemplos adicionales

Comments

Popular posts from this blog

Historia de las Computadoras (Periodo II - Actividad I)

Periodo I - Actividad II

El procesador (Periodo II - Actividad III)