El ordenador
El microprocesador trabaja siguiendo un ciclo repetitivo en el que lee instrucciones, las interpreta y las ejecuta. A lo largo de la historia, este ciclo se ha optimizado con técnicas como pipeline y paralelismo para aumentar el rendimiento.
4.1 Ciclo de instrucción
Toda instrucción que ejecuta un microprocesador pasa por varias fases:
-
Búsqueda (Fetch):
- La Unidad de Control obtiene la instrucción de la memoria principal.
- El Program Counter (PC) indica la dirección de la siguiente instrucción.
- Una vez leída, el PC se incrementa.
-
Decodificación (Decode):
- La instrucción se guarda en el Instruction Register (IR).
- La Unidad de Control interpreta qué operación se debe realizar.
- Se generan las señales necesarias para activar la ALU, registros, etc.
-
Ejecución (Execute):
- La instrucción se ejecuta: puede ser una suma, un salto de programa, mover datos, etc.
- Los resultados se guardan en un registro o en memoria.
👉 Este ciclo ocurre millones o miles de millones de veces por segundo, dependiendo de la frecuencia del reloj del procesador (ejemplo: 3 GHz = 3.000 millones de ciclos por segundo).
4.2 Pipeline (tuberías de ejecución)
En un procesador sin optimización, las fases fetch-decode-execute se hacen de una en una. Esto es ineficiente.
El pipeline divide la ejecución en etapas, de forma similar a una línea de producción en una fábrica:
- Mientras una instrucción está siendo ejecutada, otra puede estar decodificándose y otra buscándose.
👉 Esto permite procesar varias instrucciones a la vez, aumentando enormemente el rendimiento.
Ejemplo de 5 etapas típicas:
- IF (Instruction Fetch)
- ID (Instruction Decode)
- EX (Execute)
- MEM (Memory Access)
- WB (Write Back)
4.3 Paralelismo y superescalaridad
Además del pipeline, los procesadores modernos incorporan ejecución paralela:
- Procesadores superescalares: pueden despachar y ejecutar varias instrucciones por ciclo de reloj.
- Unidades de ejecución múltiple: varias ALUs, unidades de coma flotante (FPU), SIMD (operaciones vectoriales), etc.
- Hyper-Threading / SMT (Simultaneous Multithreading): simulan que un núcleo físico es capaz de ejecutar dos hilos de ejecución al mismo tiempo.
4.4 Predicción de saltos
Un gran problema de rendimiento aparece con las instrucciones de salto (if, bucles, etc.).
- Si el procesador espera a saber si el salto se cumple, pierde tiempo.
- Por eso, los procesadores modernos predicen cuál será el camino del salto.
- Si aciertan, se gana velocidad; si fallan, deben descartar instrucciones (penalización).
4.5 Ejemplo simplificado
Supongamos un procesador ejecutando este código:
1A = B + C; 2D = A * 2;
- Ciclo 1: busca
A = B + C. - Ciclo 2: decodifica la instrucción.
- Ciclo 3: la ALU suma B + C y guarda en A.
- Ciclo 4: busca la siguiente instrucción (
D = A * 2). - Ciclo 5: decodifica.
- Ciclo 6: ejecuta multiplicación y guarda en D.
En un pipeline, mientras se ejecuta la suma, el procesador ya puede estar decodificando y buscando la siguiente instrucción → mucho más eficiente.
✅ Resumen clave del punto 4:
- El procesador sigue un ciclo básico: fetch → decode → execute.
- El pipeline permite ejecutar varias instrucciones en paralelo.
- Los procesadores modernos son superescalares, con varias ALUs y ejecución simultánea de hilos.
- La predicción de saltos optimiza el flujo de instrucciones.
- Loading...