🖥️ Arquitecturas de Procesadores

Comparación detallada de las principales arquitecturas de CPU

📚

Arquitectura de Pila

Características

  • Utiliza estructura LIFO (Last In, First Out)
  • Operaciones sobre el tope de la pila
  • No necesita direcciones explícitas
  • Instrucciones de 0 direcciones
  • Puntero de pila (SP) gestiona la posición

Ventajas

  • Código compacto
  • Fácil compilación
  • Gestión automática de memoria
  • Ideal para expresiones anidadas
  • Simplicidad en el diseño

Desventajas

  • Acceso limitado a datos
  • Mayor número de operaciones memoria
  • Cuello de botella en el tope
  • Rendimiento más lento

Esquema

┌─────────────┐ │ PILA │ ← SP (Stack Pointer) ├─────────────┤ │ Dato 3 │ ← Tope ├─────────────┤ │ Dato 2 │ ├─────────────┤ │ Dato 1 │ ├─────────────┤ │ Base │ └─────────────┘

Ejemplos

Java Virtual Machine (JVM)
PostScript
Calculadoras HP
Forth
🎯

Arquitectura de Acumulador

Características

  • Un registro principal (acumulador)
  • Operaciones con 1 dirección
  • Resultados siempre en el acumulador
  • Operando implícito en instrucciones
  • Diseño simple y económico

Ventajas

  • Hardware simple y económico
  • Instrucciones cortas
  • Fácil decodificación
  • Bajo consumo de energía
  • Ideal para sistemas embebidos

Desventajas

  • Cuello de botella en el acumulador
  • Muchos accesos a memoria
  • Dificultad para optimización
  • Limitado paralelismo

Esquema

┌───────────┐ ┌─────────┐ │ MEMORIA │────▶│ CPU │ │ │ │ │ │ Datos │ │ ┌─────┐ │ │ │ │ │ ACC │ │ ← Acumulador │Programa │ │ └─────┘ │ └───────────┘ │ ALU │ └─────────┘

Ejemplos

Intel 8008
Microcontroladores básicos
Calculadoras simples
PIC de 8 bits
🗂️

Registro de Propósito General

Características

  • Múltiples registros equivalentes
  • Operaciones registro-memoria
  • Instrucciones de 2-3 direcciones
  • Flexibilidad en uso de registros
  • Balance entre rendimiento y complejidad

Ventajas

  • Mayor flexibilidad
  • Mejor rendimiento que acumulador
  • Menos accesos a memoria
  • Facilita optimización de compiladores
  • Buen balance costo-beneficio

Desventajas

  • Mayor complejidad que acumulador
  • Necesita gestión de registros
  • Instrucciones más largas
  • Hardware más complejo

Esquema

┌───────────┐ ┌─────────────┐ │ MEMORIA │────▶│ CPU │ │ │ │ ┌─────────┐ │ │ Datos │ │ │ R0 │ │ │ │ │ │ R1 │ │ │Programa │ │ │ R2 │ │ └───────────┘ │ │ ... │ │ │ │ Rn │ │ │ └─────────┘ │ │ ALU │ └─────────────┘

Ejemplos

Intel x86 (parcialmente)
Motorola 68000
VAX-11
PDP-11

Arquitectura Registro-Registro (RISC)

Características

  • Solo operaciones registro-registro
  • Load/Store para acceso a memoria
  • Instrucciones de tamaño fijo
  • Gran número de registros (32+)
  • Pipeline eficiente

Ventajas

  • Máximo rendimiento
  • Pipeline eficiente
  • Optimización avanzada
  • Paralelismo a nivel de instrucción
  • Diseño modular

Desventajas

  • Código más largo
  • Mayor complejidad de compilador
  • Más registros necesarios
  • Mayor consumo de memoria

Esquema

┌─────────┐ ┌─────────────┐ │ MEMORIA │ │ CPU │ │ │ │ ┌─────────┐ │ │ Datos │◄───►│ │R0...R31 │ │ │ │ │ └─────────┘ │ │Programa │ │ │ └─────────┘ │ ALU │ ▲ │ Pipeline │ │ └─────────────┘ Load/Store

Ejemplos

ARM
MIPS
SPARC
PowerPC
RISC-V

📊 Comparación Resumida

Aspecto Pila Acumulador Registro GPR Registro-Registro
Complejidad Hardware Baja Muy Baja Media Alta
Rendimiento Bajo Bajo Medio Alto
Accesos a Memoria Muchos Muchos Moderados Pocos
Tamaño de Código Pequeño Pequeño Medio Grande
Facilidad Compilación Alta Alta Media Baja
Optimización Limitada Muy Limitada Buena Excelente
Uso Actual Máquinas Virtuales Sistemas Embebidos Procesadores CISC Procesadores RISC