CISC vs RISC

De la Guerra Histórica a la Convergencia Moderna

Complex Instruction Set Computing Reduced Instruction Set Computing

Guía de Clase — Arquitectura de Computadores

📋 Contenido de la Clase

1. Fundamentos

ISA, niveles de abstracción y el concepto de Instruction Set Architecture como el lenguaje de las máquinas.

2. El Pipeline

La línea de ensamblaje del procesador: etapas IF, ID, EX, MEM, WB y su impacto en el rendimiento.

3. Arquitectura CISC

Orígenes en IBM System/360, filosofía de instrucciones complejas, evolución hacia x86-64.

4. Arquitectura RISC

El IBM 801 de John Cocke, simplicidad como virtud, dominio de ARM y auge de RISC-V.

5. Comparativa Técnica

Tablas comparativas, registros, modos de direccionamiento y ejemplos en ensamblador.

6. Era Moderna

SoCs, CPU/GPU/NPU, convergencia CISC-RISC y la batalla actual: Intel vs Apple vs Qualcomm.

1. Instruction Set Architecture (ISA): El Lenguaje de las Máquinas

Antes de entender la diferencia entre CISC y RISC, debemos comprender qué es una ISA (Instruction Set Architecture). Es la interfaz abstracta entre el hardware y el software de bajo nivel. Define el conjunto de instrucciones que un procesador puede ejecutar, los tipos de datos, registros, modos de direccionamiento y el modelo de programación visible para el programador.

🎯 Analogía Clave
  • ISA = Idioma (español, inglés, mandarín)
  • Microarquitectura = Cómo piensa el cerebro (neuronas, sinapsis)
  • Implementación física = La boca que habla (cuerdas vocales, lengua)

Un mismo idioma (ISA) puede hablarse por diferentes personas (microarquitecturas) con diferentes cuerdas vocales (tecnologías de fabricación).

Los Tres Niveles de Abstracción

NivelNombre¿Qué define?Ejemplo de cambio
1Arquitectura del computadorAtributos visibles al programadorISA (x86 vs ARM)
2Organización del computadorUnidades funcionales y sus interconexiones¿Hay caché L3? ¿Cuántos núcleos?
3Hardware realCircuitos, tecnología de fabricación7nm vs 3nm, frecuencia, voltaje
💡 Consecuencia práctica Dos procesadores pueden tener la misma ISA x86 (nivel 1) pero diferente organización: uno tiene 8 núcleos y caché L3 de 32MB, otro 4 núcleos y 16MB (nivel 2). Y diferente hardware: uno fabricado en 14nm, otro en 3nm (nivel 3). Un programa compilado para x86 corre en ambos, pero uno consume 100W y el otro 15W.

Componentes de una ISA

🧮 Tipos de Datos

Define qué puede entender el procesador:

  • Enteros: 8, 16, 32, 64 bits
  • Punto flotante: IEEE 754 (single, double)
  • Vectoriales: SIMD (NEON en ARM, SSE/AVX en x86)
  • Direcciones: 32-bit = 4GB, 64-bit = exabytes teóricos

📦 Registros

Memoria ultra-rápida dentro del procesador:

  • x86-64: 16 registros (RAX, RBX, RCX, RDX, R8-R15...), 64-bit. Históricamente pocos (acumuladores).
  • ARM64: 31 registros (X0-X30), 64-bit. Diseño limpio, arquitectura load/store.
  • RISC-V: 32 registros (X0-X31), 32/64-bit. X0 siempre es cero (simplifica hardware).

🎯 Modos de Direccionamiento

Cómo se especifica la ubicación de los operandos:

  • Inmediato: El dato está en la instrucción misma
  • Directo: La instrucción contiene la dirección de memoria
  • Indirecto por registro: El registro contiene la dirección
  • Indexado: Dirección base + desplazamiento

📋 Conjunto de Instrucciones

Las "palabras" que el procesador entiende:

  • Aritmético-lógicas: ADD, SUB, AND, OR, XOR
  • Transferencia de datos: LOAD, STORE, MOV, PUSH, POP
  • Control de flujo: JMP, CALL, RET, BEQ
  • Sistema: SYSCALL, CLI, WFI

🔑 ISA vs Microarquitectura: La Diferencia Crítica

Uno de los conceptos más importantes (y más confundidos) en arquitectura de computadores es la diferencia entre ISA y Microarquitectura. Muchos estudiantes creen que son lo mismo, pero representan niveles de abstracción completamente distintos.

📖 ISA (Instruction Set Architecture)

Es el "idioma" o el manual de instrucciones que el procesador entiende. Es la interfaz de programación visible para el desarrollador.

  • Define qué instrucciones existen
  • Define los registros accesibles
  • Define los modos de direccionamiento
  • No cambia entre generaciones del mismo fabricante
Ejemplos: x86-64, ARMv8-A, ARMv9, RISC-V, MIPS, SPARC

⚙️ Microarquitectura

Es la forma física en que un fabricante diseña los circuitos del chip para ejecutar ese idioma. Es invisible para el programador.

  • Define cómo se ejecutan las instrucciones
  • Tamaño de caché, número de núcleos, pipeline
  • Tecnología de fabricación (7nm, 5nm, 3nm)
  • Cambia entre generaciones del mismo fabricante
Ejemplos: Intel Skylake, AMD Zen 3, AMD Zen 4, Apple Firestorm, ARM Cortex-X4
💡 La Regla de Oro:

"Dos procesadores con la misma ISA pueden tener microarquitecturas radicalmente diferentes — y un programa compilado para esa ISA correrá en ambos sin modificación."

📊 Ejemplo Práctico: Ryzen 3 5000 (Zen 3) vs. Ryzen 3 7000 (Zen 4)

Característica Ryzen Serie 5000 (Zen 3) Ryzen Serie 7000 (Zen 4) ¿Difiere la ISA?
ISA Base x86-64 (AMD64) x86-64 (AMD64) No. Es exactamente la misma base.
Microarquitectura Zen 3 Zen 4 Sí. El diseño interno del chip cambió por completo.
Extensiones ISA MMX, SSE4.2, AVX2, etc. MMX, SSE4.2, AVX2 + AVX-512 Sí. La serie 7000 añade nuevas "palabras" al "idioma".
Tecnología 7nm (TSMC) 5nm (TSMC) Sí. Microarquitectura / Nivel 3.
Rendimiento ~Base ~+13% IPC (Instructions Per Clock) No (ISA). Sí (microarquitectura).
Consumo 65W TDP 65W TDP (más eficiente) Sí. Mejor eficiencia por ciclo.
🧐 Análisis del ejemplo:
  • ISA idéntica: Un programa compilado para x86-64 corre en ambos sin recompilar. El sistema operativo no "sabe" si es Zen 3 o Zen 4.
  • Microarquitectura diferente: Zen 4 rediseñó el frontend, el backend de ejecución, y la jerarquía de caché para ser más eficiente.
  • Extensiones ISA nuevas: AVX-512 es una extensión del idioma x86-64. Los programas que la usan correrán en Zen 4 pero no aprovecharán todo en Zen 3 (aunque pueden emularse más lentamente).

🎯 Otro Ejemplo: Apple M1 vs M3

CaracterísticaApple M1Apple M3¿Difiere la ISA?
ISA BaseARMv8.5-A (AArch64)ARMv8.6-A (AArch64)Casi no. Misma familia, versión ligeramente superior.
MicroarquitecturaFirestorm + IcestormEverest + SawtoothSí. Rediseño completo de los núcleos.
Tecnología5nm (TSMC)3nm (TSMC)Sí. Nivel 3 de abstracción.
📌 Para recordar en el examen:
ISA= El contrato entre hardware y software. No cambia frecuentemente.
Microarquitectura= La implementación de ese contrato. Cambia cada 1-2 años.
Extensión ISA= Nuevas "palabras" al idioma. Opcional, retrocompatible.

2. El Pipeline: La Línea de Ensamblaje del Procesador

La Analogía Esencial

Imagina una fábrica de autos donde cada coche tarda 10 horas en construirse, pero hay 10 estaciones de trabajo. Si cada estación trabaja 1 hora y pasa el auto a la siguiente:

El pipeline es exactamente eso: dividir una tarea larga en etapas pequeñas que se ejecutan en paralelo para diferentes instrucciones.

Etapas del Pipeline Clásico (5 etapas)

EtapaSigla¿Qué hace?Analogía fábrica
FetchIFBuscar la instrucción en memoriaTraer el chasis a la línea
DecodeIDDecodificar qué operación esLeer el plano del auto
ExecuteEXRealizar la operación (ALU)Instalar el motor
MemoryMEMAcceder a memoria si es necesarioPintar el auto
WritebackWBGuardar resultado en registrosEntregar llaves al cliente
⚡ Impacto del Pipeline
  • Sin pipeline (secuencial): 5 instrucciones × 5 ciclos = 25 ciclos
  • Con pipeline (5 etapas): 5 instrucciones = 9 ciclos (5 + 4)
Diagrama de Pipeline CPU
Diagrama de las 5 etapas del pipeline: Instruction Fetch, Decode, Execute, Memory Access y Write Back.
Implementación del Pipeline
Implementación detallada de un CPU con pipeline mostrando los registros entre etapas (IF/ID, ID/EX, EX/MEM, MEM/WB).

3. CISC: Complex Instruction Set Computing

El Problema de los Años 50

En los últimos años de la década de 1950, los procesadores se desarrollaban de forma completamente independiente. Esto significaba que un programa escrito para una máquina no podía ejecutarse en otra sin reescribirlo por completo. Era una situación insostenible para una industria en crecimiento.

IBM tomó la iniciativa. Reunió a sus mejores investigadores para crear una arquitectura que permitiera que el mismo software funcionara en múltiples computadoras.

🏛️ Hitos Históricos CISC
  • 1964: IBM System/360 — primer procesador CISC comercial (7 de abril de 1964)
  • 1978: Intel 8086 — origen de la familia x86
  • 1979: Motorola 68000 — usado en Macintosh, Amiga, Atari ST
  • 2003: AMD64 — extensión de 64 bits para x86
IBM System/360
IBM System/360 (1964). El primer mainframe modular y de propósito general que unificó la arquitectura de computadores.

Filosofía y Características

CISC ofrece un conjunto de instrucciones bastante completas y lentas de ejecutar, pero que agrupan varias operaciones de bajo nivel en la misma instrucción. Esto da lugar a programas pequeños y sencillos de desarrollar que además realizaban pocos accesos a memoria — algo vital en una época donde la memoria era escasa y lenta.

✅ Ventajas CISC

  • Programas compactos (menos líneas de código máquina)
  • Pocos accesos a memoria por programa
  • Facilidad para programadores de bajo nivel
  • Compatibilidad heredada: puede ejecutar código de 1980 en un procesador 2024

⚠️ Desventajas CISC

  • Hardware complejo: decodificadores elaborados
  • Instrucciones de longitud variable (1 a 15 bytes en x86)
  • Difícil de pipelinear eficientemente
  • Mayor consumo energético

La Analogía del Huevo Frito (Enfoque CISC)

Imagina que programas una receta de huevo frito. En CISC, un paso complejo sería una sola instrucción:

🍳 Paso 6 (CISC): "Verterlo con cuidado sobre el aceite caliente" — Una sola instrucción compleja que realiza múltiples operaciones de bajo nivel.

x86-64: El Imperio CISC Hoy

En la actualidad, CISC tiene a x86 como su mayor exponente, con AMD y sobre todo Intel a la cabeza de su desarrollo. Prácticamente cualquier ordenador de sobremesa o portátil desde los años 80 ha utilizado un procesador x86.

Característicax86-64
HistoriaIntel 8086 (1978) → 80286 → 80386 (32-bit) → AMD64 (2003) → hoy
Carga/acumuladorOperaciones típicamente entre registro y memoria (no solo registro-registro)
Longitud de instruccionesVariable: de 1 byte a 15 bytes (¡complejo de decodificar!)
Registros16 especializados (AX, BX, CX, DX, SI, DI, SP, BP, R8-R15)
CompatibilidadPuede ejecutar código de 1980 en un procesador 2024
LicenciaPropietario (Intel/AMD)
x86-64 (AT&T syntax) — Sumar 5 a una variable en memoria
; Cargar desde memoria a registro (5 bytes)
movl A(%rip), %eax

; Sumar inmediato (3 bytes)
addl B(%rip), %eax

; Guardar en memoria (5 bytes)
movl %eax, C(%rip)

; Total: 13 bytes, 3 instrucciones

4. RISC: Reduced Instruction Set Computing

El Origen: John Cocke y el IBM 801

Tras el lanzamiento de CISC, los científicos de IBM empezaron a comprobar que los diseñadores de software creaban sus propias instrucciones más simples y precisas. Entonces, ya en la década de los 70, empezaron a diseñar una alternativa.

En 1975, John Cocke diseñó el IBM 801, considerado el primer procesador RISC de la historia. Su filosofía era radicalmente opuesta: en lugar de pocas instrucciones complejas, muchas instrucciones simples que se ejecuten extremadamente rápido.

John Cocke con IBM 801
John Cocke en los años 80 junto a uno de los prototipos del procesador IBM 801, el primer RISC de la historia.
🏛️ Hitos Históricos RISC
  • 1975: IBM 801 — John Cocke diseña el primer RISC
  • 1985: Acorn RISC Machine (ARM) — nace lo que dominaría los móviles
  • 1980s-90s: MIPS, SPARC, PowerPC
  • 2010: Proyecto RISC-V en UC Berkeley
  • 2015: Fundación RISC-V

Filosofía y Características

La principal virtud de RISC es tener un conjunto de instrucciones muy simples que se ejecutarán más rápidamente en el procesador. Existe un catálogo de pocas instrucciones y éstas son muy sencillas, lo cual implica que para una cierta tarea compleja necesitaremos un mayor número de ellas.

✅ Ventajas RISC

  • Instrucciones simples: todas se ejecutan en un solo ciclo de reloj (idealmente)
  • Hardware simple: más barato de fabricar, menor consumo energético
  • Facilidad para implementar pipeline eficiente
  • Instrucciones de longitud fija: fáciles de decodificar

⚠️ Desventajas RISC

  • Programas más largos (más instrucciones por tarea)
  • Más accesos a memoria (se necesitan más LOAD/STORE)
  • Mayor presión sobre el compilador
  • Menor densidad de código

La Analogía del Huevo Frito (Enfoque RISC)

En RISC, el Paso 6 se descompone en múltiples instrucciones simples:

🍳 Pasos 6.1 a 6.6 (RISC):
  1. Colocar el huevo partido sobre la sartén
  2. Acercar el huevo partido a un par de centímetros del aceite caliente
  3. Mover verticalmente el huevo partido
  4. Verter el contenido del huevo partido sobre el aceite hasta que esté vacío
  5. Retirar el huevo partido y ya vacío
  6. Tirar a la basura el huevo partido

Misma tarea, muchas instrucciones simples en lugar de una compleja.

ARM64 (AArch64): El Conquistador RISC

En la actualidad, el mayor ejemplo de procesador RISC son los productos ARM, utilizados ampliamente en dispositivos móviles pero también en supercomputadores, servidores cloud y laptops.

Procesador ARM Cortex
Procesador ARM Cortex. ARM domina el 99% del mercado de smartphones y tablets, y ahora invade laptops y servidores.
CaracterísticaARM64 (AArch64)
HistoriaAcorn RISC Machine (1985) → ARM7 → ARMv7 (32-bit) → ARMv8-A (64-bit, 2011) → ARMv9 (2021)
ArquitecturaLoad/Store pura: solo LOAD/STORE acceden a memoria. Operaciones aritméticas solo entre registros.
Longitud de instruccionesFija: 32 bits (dominan), algunas de 64 bits
Registros31 generales (X0-X30). X31 es SP (Stack Pointer) o XZR (Zero Register) según contexto.
Ejecución condicionalMuchas instrucciones pueden ejecutarse condicionalmente sin salto (ahorra predicción de saltos)
LicenciaPropietario (ARM Holdings)

Ejecución Condicional en ARM: El Problema de los Saltos

En computación clásica, los saltos condicionales (branches) rompen el pipeline. El procesador debe predecir si saltará o no, ejecutar especulativamente, y desechar el trabajo si predijo mal (penalización de 15-20 ciclos).

ARM permite añadir una condición a casi cualquier instrucción. La instrucción se ejecuta solo si la condición se cumple, sin necesidad de salto:

x86 (con salto condicional)
; Compara a y b, setea flags
CMP RAX, RBX

; Jump if Less or Equal
; ¡PREDICCIÓN DE SALTO!
JLE etiqueta

; c = a + 1 (solo si no saltó)
ADD RCX, 1

etiqueta:
; continúa...

Si predice mal: penalización de 4-5 ciclos perdidos (pipeline flush).

ARM64 (ejecución condicional)
; Compara a (X0) y b (X1)
CMP X0, X1

; Suma SOLO SI X0 > X1 (Greater Than)
ADDGT X2, X0, #1

; Si condición falsa: la instrucción 
; se convierte en NOP
; ¡Sin salto! El pipeline nunca se interrumpe

Sin penalización. El pipeline fluye continuamente.

RISC-V: El Disruptor Abierto

RISC-V nace en UC Berkeley (2010) como una ISA abierta y libre de regalías. Cualquiera puede implementarla sin pagar licencias (vs ARM que cobra por core).

Logo RISC-V
Logo de RISC-V. ISA abierta, modular y libre de regalías, adoptada masivamente desde 2020.

🔓 Filosofía RISC-V

  • ISA abierta y libre de regalías
  • Modularidad: ISA base mínima + extensiones estándar (M, A, F, D, C...)
  • Diseño limpio sin legado: aprendió de 40 años de errores de x86 y ARM
  • 32 registros (X0-X31): X0 siempre es cero

🌍 Dónde se usa RISC-V

  • Controladores de almacenamiento (SSD)
  • GPUs y aceleradores de IA (NVIDIA usa RISC-V para controladores internos)
  • Microcontroladores IoT de bajo costo
  • Supercomputación (RISC-V Vector Extension compite con AVX-512)
  • Educación: cada vez más universidades enseñan arquitectura con RISC-V

5. Comparativa Técnica: CISC vs RISC

Diagrama CISC vs RISC
Diagrama de bloques comparativo: CISC usa microprogramación para descomponer instrucciones complejas, mientras RISC usa decodificación directa.
Tabla comparativa CISC vs RISC
Resumen comparativo de características entre arquitecturas CISC (x86) y RISC (ARM, RISC-V).

Program Memory (PM): La Densidad de Código en CISC vs RISC

Definicion: PM (Program Memory)

Las siglas PM provienen del ingles Program Memory (Memoria de Programa), haciendo referencia al espacio que ocupa el codigo ejecutable en disco o memoria RAM. Es una metrica clave para entender la densidad de codigo de cada arquitectura.

Como vimos en la tabla anterior, una de las diferencias fundamentales entre CISC y RISC es la densidad de codigo: CISC genera programas mas compactos porque cada instruccion compleja reemplaza varias instrucciones simples de RISC. Pero, ¿cuanto mas grande es realmente un programa RISC? Veamos un ejemplo numerico.

Ejemplo Numerico: Software de edicion de fotos

Imagina que quieres compilar un software de edicion de fotos para dos arquitecturas diferentes:

Paso 1 (CISC): Si lo compilas para un procesador CISC (Intel/AMD x86), el programa pesa 100 MB.
PMCISC = 100 MB
Paso 2 (RISC): Debido a la naturaleza de RISC (ARM), este necesita en promedio 3 instrucciones simples por cada instruccion compleja de CISC. Tu factor de expansion (N) es 3.
Paso 3 (Formula):
PMRISC = N x PMCISC
PMRISC = 3 x 100 MB = 300 MB
Conclusion: El programa compilado para RISC ocupara 300 MB de memoria, es decir, el triple de espacio que su equivalente CISC.

CISC: Codigo Compacto

  • Menor uso de memoria de programa (PM)
  • Menor presion sobre la cache de instrucciones
  • Menos bytes a transferir desde disco/Red
  • Ideal cuando la memoria es escasa o cara

RISC: Codigo Expandido

  • Mayor uso de memoria de programa (PM)
  • Mayor presion sobre la cache de instrucciones
  • Compensado por mayor simplicidad de decodificacion
  • En la era moderna (memoria barata), el trade-off favorece la eficiencia energetica
Contexto historico vs moderno:

En los anos 70-80, cuando la memoria RAM costaba miles de dolares por megabyte, la densidad de codigo de CISC era una ventaja decisiva. Hoy en dia, con memoria flash de 1 TB por menos de $50, el factor de expansion de RISC es aceptable a cambio de su mayor eficiencia energetica y menor complejidad de hardware.

Tabla Comparativa Detallada

CaracterísticaCISC (x86)RISC (ARM, RISC-V)
FilosofíaInstrucciones complejas que hacen mucho trabajoInstrucciones simples, una por ciclo
Número de instruccionesMiles (conjunto extenso)Cientos (conjunto reducido)
Longitud de instruccionesVariable (1-15 bytes en x86)Fija (32 bits, o 16 en extensión C)
Acceso a memoriaDirecto en instrucciones aritméticasSolo vía LOAD/STORE
RegistrosPocos (16 en x86-64), especializadosMuchos (31 en ARM64, 32 en RISC-V), de propósito general
DecodificaciónCompleja (microprogramación)Simple (hardware directo)
PipelineDifícil de implementar eficientementeFácil de implementar y optimizar
Consumo energéticoAlto (65-250W en desktop)Bajo (5-45W en SoCs móviles)
CostoMayor (hardware complejo)Menor (hardware simple)
Densidad de códigoAlta (programas compactos)Baja (programas más largos)
CompatibilidadHerencia de 40+ años (x86)Diseño limpio, menos legado
Usos típicosPCs, servidores, consolas (alto rendimiento)Móviles, IoT, embebidos, servidores cloud (eficiencia)

Ejemplo Práctico: C = A + B en Tres ISAs

El mismo algoritmo expresado en tres arquitecturas diferentes:

x86-64 (CISC)
; Cargar A en EAX
movl A(%rip), %eax

; Sumar B a EAX
addl B(%rip), %eax

; Guardar en C
movl %eax, C(%rip)

; Total: 13 bytes, 3 instrucciones
; Longitud variable
ARM64 (RISC)
// Cargar: W0 = A
LDR W0, [X1, #A]

// Cargar: W2 = B
LDR W2, [X1, #B]

// Sumar
ADD W0, W0, W2

// Almacenar: C = W0
STR W0, [X1, #C]

// Total: 12 bytes, 3 instrucciones
// Todas de 4 bytes (fijas)
RISC-V (RISC abierto)
# Load word: t0 = memoria[a0]
lw t0, 0(a0)

# Load word: t1 = memoria[a0+4]
lw t1, 4(a0)

# Add: t2 = t0 + t1
add t2, t0, t1

# Store word: memoria[a0+8] = t2
sw t2, 8(a0)

# Total: 12 bytes, 3 instrucciones
# Nota: t0, a0, a1 son alias de X5, X10, X11
🧐 Preguntas para analizar el código:
  • ¿Cuál tiene instrucciones más largas en bytes? (x86 variable, otros fijas)
  • ¿Cuál requiere más accesos explícitos a memoria?
  • ¿Por qué RISC-V y ARM usan LOAD/STORE explícitos mientras x86 puede operar directamente con memoria?

6. Evolución y Convergencia: Las Líneas se Difuminan

Tanto CISC como RISC han evolucionado enormemente desde su creación, adoptando mejoras del rival. Si bien en la época de su creación la diferencia era muy amplia —principalmente debido a las limitaciones técnicas de la época tanto en tamaño de memoria como en velocidad de proceso—, en la actual informática moderna los requisitos son muy diferentes.

Evolución por Décadas

EraCISC (x86)RISC (ARM)
1980sInstrucciones complejas, pocos registrosInstrucciones simples, muchos registros
1990sPentium Pro: decodificación interna a micro-ops (RISC-like)ARM7: optimización para bajo consumo
2000sMulti-núcleo, hyperthreadingCortex-A: SoCs para smartphones
2010sIntegración GPU, eficiencia mejoradabig.LITTLE (núcleos grandes + pequeños)
2020sChiplets/tiles, NPUs integradosComputación de 64 bits, servidores cloud

🔍 El Secreto Mejor Guardado de Intel y AMD

Desde el Pentium Pro (1995), los procesadores x86 no ejecutan x86 directamente. Internamente:

  1. Reciben instrucción CISC compleja
  2. La descomponen en micro-ops (micro-operaciones tipo RISC)
  3. Ejecutan estas micro-ops en núcleos internos eficientes
Resultado: Tu Intel "CISC" es internamente RISC. Mantiene compatibilidad con software antiguo, pero gana eficiencia con ejecución interna tipo RISC.

ARM: Del RISC Puro al "RISC Pragmático"

Los ARM modernos (ARMv8, ARMv9) incluyen instrucciones complejas que rompen el modelo RISC puro:

7. La Batalla Actual 2020-2024: Del Chip al SoC

La verdadera revolución no es CISC vs RISC, sino cómo se integran en un System on a Chip (SoC). La integración de CPU, GPU, NPU, controladores y memoria en un solo chip ha cambiado las reglas del juego.

De la PC Tradicional al SoC Moderno

CaracterísticaPC Tradicional (2000s)SoC Moderno (2024)
CPUChip separadoIntegrada en SoC
GPUTarjeta dedicada o chip separadoIntegrada en SoC
MemoriaMódulos DIMM separadosIntegrada o muy cercana (unified memory)
ControladoresChipset en placa madreDentro del SoC
Consumo65-250W5-45W
TamañoCaja de PC completaTamaño de una uña

Tres Arquitecturas, Tres Filosofías (2024)

CaracterísticaIntel Core Ultra (CISC)Apple Silicon M4 (RISC)Snapdragon X Elite (RISC)
ISAx86-64ARMv9ARMv9
FabricaciónIntel 4 / TSMC 5nmTSMC 3nmTSMC 4nm
DiseñoTiles / ChipletsSoC monolíticoSoC monolítico
CPU6P + 8E núcleos4P + 6E núcleos12 núcleos Oryon
NPU (IA)11 TOPS38 TOPS45 TOPS
MemoriaDDR5 separadaLPDDR5 unifiedLPDDR5x unified
Consumo15-45W15-30W12-28W
SistemaWindows/Linux nativomacOS/iOS nativoWindows on ARM (emulación x86)

TOPS = Trillions of Operations Per Second. Medida de rendimiento en IA.

Apple M1 SoC
Apple M1 SoC (2020). Ejemplo de System on a Chip RISC con unified memory, integrando CPU, GPU y NPU en un solo chip.

Análisis de Cada Arquitectura

🔵 Intel (CISC Evolucionado)

  • Mantiene compatibilidad con 40 años de software x86
  • Adopta técnicas "RISC-like": chiplets, eficiencia, NPU integrado
  • Desventaja: Arquitectura acumulada, mayor consumo que ARM

🔵 AMD (CISC Resiliente)

  • Arquitectura chiplet revolucionaria: separa CCD (núcleos) de IOD (controladores)
  • 3D V-Cache único en el mercado (hasta 128MB extra de caché L3)
  • Líder en gaming (Ryzen 7 7800X3D) y servidores cloud (EPYC)
  • Desventaja: Sin unified memory, eficiencia en ultrabooks inferior a ARM

🟢 Apple (RISC Dominante)

  • Control total de hardware y software
  • Unified Memory: CPU y GPU comparten RAM física sin copias lentas
  • Líder indiscutible en rendimiento por watt

🟢 Qualcomm (RISC Invadiendo)

  • Primera apuesta seria de ARM en laptops Windows
  • Mayor NPU del mercado (IA local)
  • Desafío: Emulación de software x86 legacy con penalización de rendimiento

El Equipo de Procesamiento Moderno: CPU, GPU y NPU

En los SoCs modernos, no hay un solo "cerebro". Hay tres especialistas:

ComponenteFunciónAnalogíaTarea típica
CPUDecisiones complejas, secuencialesEl capitán del equipoAbrir apps, lógica de negocio, sistema operativo
GPUParalelismo masivo de datosEl ejército de obrerosGráficos, video, cálculos científicos (GPGPU)
NPUOperaciones de redes neuronalesEl especialista en IAReconocimiento facial, asistentes de voz, generación de imágenes
🧠 GPGPU = General-Purpose computing on GPU

La GPU no solo sirve para gráficos. Como tiene miles de núcleos simples, es ideal para entrenar modelos de IA, simulaciones científicas y procesamiento de video. Regla: La GPU gana cuando la tarea es "haz esto mismo a miles de datos simultáneamente". Pierde cuando hay muchas decisiones "if/then".

¿Por qué esto importa para un ingeniero de sistemas?

📱 Desarrollo Móvil

El 99% de smartphones usa ARM (RISC). Optimizar para ARM significa apps que no drenan batería. Conocer la jerarquía de memoria del SoC mejora el rendimiento.

☁️ Cloud y Servidores

AWS Graviton (ARM): 40% mejor precio-rendimiento que x86 para cargas específicas. Compilar para ARM puede reducir costos operativamente. Azure y Google Cloud también ofrecen instancias ARM.

🔌 Edge e IoT

Raspberry Pi, NVIDIA Jetson, dispositivos médicos: todos ARM. Un sistema CISC sería inviable por consumo y tamaño. El NPU permite IA local sin conexión a internet.

🤖 Inteligencia Artificial

Optimizar un modelo para NPU vs GPU vs CPU requiere entender la arquitectura. Los NPUs solo existen en SoCs modernos (ARM principalmente). La eficiencia energética determina si una IA corre en el dispositivo o en la nube.

8. Actividades Prácticas para la Clase

🕵️ Actividad 1: Detective de Arquitecturas

Objetivo: Identificar CISC vs RISC en dispositivos cotidianos.

Instrucciones — Paso 1 (Individual):

Complete la tabla con sus dispositivos:

DispositivoProcesador exactoCISC o RISC?¿SoC?NPU/GPU integrado
Celular
Laptop
Tablet / Otro

Pistas de identificación:

Paso 2 (Parejas): Comparen resultados y respondan:
  1. ¿Por qué sus celulares usan RISC y no CISC?
  2. ¿Sus laptops usan la misma arquitectura que sus celulares? ¿Por qué sí/no?
  3. ¿Qué sacrificios implica usar ARM en una laptop Windows (Snapdragon) versus Intel?

⚔️ Actividad 2: Guerra de Arquitecturas (Debate)

Objetivo: Defender una arquitectura en 3 escenarios diferentes.

GrupoArquitecturaCaracterística "killer"
AIntel Core UltraCompatibilidad x86 universal, ecosistema maduro
BApple Silicon M4Eficiencia extrema, unified memory, control total HW/SW
CSnapdragon X EliteMayor NPU del mercado, eficiencia en Windows
DAMD Ryzen 8000Rendimiento bruto, gaming, precio competitivo

Tareas por grupo:

  1. Investigar datos técnicos reales (usar celulares/computadores)
  2. Identificar: ISA (CISC/RISC), tecnología (nm), consumo (W), TOPS de NPU
  3. Preparar argumento para 3 escenarios:
    • Un data center (miles de servidores)
    • Un estudiante de ingeniería (laptop diaria)
    • Un dispositivo IoT médico portátil
Debate: Cada grupo expone 2 minutos. Luego, preguntas del docente:
  1. ¿Qué arquitectura elegirían para su proyecto de grado y por qué?
  2. ¿Es la compatibilidad con software antiguo más importante que la eficiencia energética?

💻 Actividad 3: Traductor de ISAs (Godbolt)

Herramienta: https://godbolt.org/

Instrucción común: C = A + B (sumar dos variables, guardar en tercera)

Paso 1: Pseudocódigo C

#include <stdio.h>
int main(){{
    int A = 10;
    int B = 25;
    int C;
    C = A + B;
    printf("C = %d\n", C);
    return 0;
}}

Paso 2: x86-64

; Cargar A
movl A(%rip), %eax

; Sumar B
addl B(%rip), %eax

; Guardar en C
movl %eax, C(%rip)

Paso 3: ARM64

LDR W0, [X1, #A]
LDR W2, [X1, #B]
ADD W0, W0, W2
STR W0, [X1, #C]

Paso 4: RISC-V

lw t0, 0(a0)
lw t1, 4(a0)
add t2, t0, t1
sw t2, 8(a0)
Preguntas de análisis:
  • ¿Cuál tiene más instrucciones?
  • ¿Cuál tiene instrucciones más largas en bytes? (x86 variable, otros fijas)
  • ¿Qué diferencias notan en la forma de acceder a memoria?

9. Glosario Técnico

TérminoDefiniciónContexto CISC vs RISC
ISAInstruction Set Architecture. El "lenguaje máquina" del procesador.x86 = CISC; ARM = RISC
Micro-opMicro-operación. Instrucción RISC interna resultante de decodificar CISC.Intel/AMD usan internamente desde 1995
SoCSystem on a Chip. Integración de CPU, GPU, NPU, controladores en un chip.Dominante en ARM; adoptado por Intel/AMD
NPUNeural Processing Unit. Procesador especializado en operaciones de IA.Presente en todos los SoCs 2024
TOPSTrillions of Operations Per Second. Medida de rendimiento en IA.Snapdragon X Elite: 45 TOPS; Apple M4: 38 TOPS
TDPThermal Design Power. Consumo máximo de energía bajo carga.RISC suele tener menor TDP que CISC
big.LITTLEArquitectura híbrida con núcleos potentes (big) y eficientes (LITTLE).Inventado por ARM; adoptado por Intel (P-cores/E-cores)
Chiplets/TilesDiseño con diferentes partes del procesador en chips separados interconectados.Intel Meteor Lake; AMD Zen
Unified MemoryRAM compartida físicamente entre CPU y GPU sin copias entre memorias.Característica clave de SoCs ARM
GPGPUGeneral-Purpose computing on GPU. Usar GPU para cálculos no gráficos.IA, simulaciones científicas, minería
EmulaciónEjecutar software de una arquitectura en otra con traducción en tiempo real.Windows on ARM emula x86 con penalización

10. Conclusión: La Batalla Continúa

La arquitectura de computadores no es historia. Cada vez que optimizan una app para que no consuma batería, deciden si su software corre en la nube o localmente, o eligen entre una laptop Intel o ARM, están aplicando estos conceptos.

La "batalla" CISC vs RISC continuó, ahora en el contexto de la IA y la sostenibilidad energética. Lo que comenzó como una disputa sobre el tamaño del conjunto de instrucciones se ha transformado en una competencia por quién puede integrar mejor CPU, GPU y NPU en el chip más eficiente del planeta.

🔵 CISC Hoy

Compatibilidad, rendimiento bruto, ecosistema de 40 años. Internamente ya es RISC. Lidera PCs, servidores y gaming.

🟢 RISC Hoy

Eficiencia energética, SoCs integrados, dominio móvil. Invadiendo laptops y servidores cloud. RISC-V promete un futuro abierto.

🎓 Mensaje para el estudiante de ingeniería:

Entender estas arquitecturas no es un ejercicio académico. Es la base sobre la que se construyen las decisiones tecnológicas del próximo decenio. Ya sea que programes para móviles, diseñes servidores cloud o desarrolles IA embebida, el conocimiento de CISC y RISC será tu ventaja competitiva.