CISC vs RISC
📋 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.
- 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
| Nivel | Nombre | ¿Qué define? | Ejemplo de cambio |
|---|---|---|---|
| 1 | Arquitectura del computador | Atributos visibles al programador | ISA (x86 vs ARM) |
| 2 | Organización del computador | Unidades funcionales y sus interconexiones | ¿Hay caché L3? ¿Cuántos núcleos? |
| 3 | Hardware real | Circuitos, tecnología de fabricación | 7nm vs 3nm, frecuencia, voltaje |
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
⚙️ 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
"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. |
- 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ística | Apple M1 | Apple M3 | ¿Difiere la ISA? |
|---|---|---|---|
| ISA Base | ARMv8.5-A (AArch64) | ARMv8.6-A (AArch64) | Casi no. Misma familia, versión ligeramente superior. |
| Microarquitectura | Firestorm + Icestorm | Everest + Sawtooth | Sí. Rediseño completo de los núcleos. |
| Tecnología | 5nm (TSMC) | 3nm (TSMC) | Sí. Nivel 3 de abstracción. |
| 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:
- ¿Cuánto tarda en salir el primer auto? 10 horas.
- ¿Y el segundo? 11 horas (no 20).
- ¿Y el décimo? 19 horas (no 100).
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)
| Etapa | Sigla | ¿Qué hace? | Analogía fábrica |
|---|---|---|---|
| Fetch | IF | Buscar la instrucción en memoria | Traer el chasis a la línea |
| Decode | ID | Decodificar qué operación es | Leer el plano del auto |
| Execute | EX | Realizar la operación (ALU) | Instalar el motor |
| Memory | MEM | Acceder a memoria si es necesario | Pintar el auto |
| Writeback | WB | Guardar resultado en registros | Entregar llaves al cliente |
- Sin pipeline (secuencial): 5 instrucciones × 5 ciclos = 25 ciclos
- Con pipeline (5 etapas): 5 instrucciones = 9 ciclos (5 + 4)
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.
- 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
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:
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ística | x86-64 |
|---|---|
| Historia | Intel 8086 (1978) → 80286 → 80386 (32-bit) → AMD64 (2003) → hoy |
| Carga/acumulador | Operaciones típicamente entre registro y memoria (no solo registro-registro) |
| Longitud de instrucciones | Variable: de 1 byte a 15 bytes (¡complejo de decodificar!) |
| Registros | 16 especializados (AX, BX, CX, DX, SI, DI, SP, BP, R8-R15) |
| Compatibilidad | Puede ejecutar código de 1980 en un procesador 2024 |
| Licencia | Propietario (Intel/AMD) |
; 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.
- 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:
- Colocar el huevo partido sobre la sartén
- Acercar el huevo partido a un par de centímetros del aceite caliente
- Mover verticalmente el huevo partido
- Verter el contenido del huevo partido sobre el aceite hasta que esté vacío
- Retirar el huevo partido y ya vacío
- 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.
| Característica | ARM64 (AArch64) |
|---|---|
| Historia | Acorn RISC Machine (1985) → ARM7 → ARMv7 (32-bit) → ARMv8-A (64-bit, 2011) → ARMv9 (2021) |
| Arquitectura | Load/Store pura: solo LOAD/STORE acceden a memoria. Operaciones aritméticas solo entre registros. |
| Longitud de instrucciones | Fija: 32 bits (dominan), algunas de 64 bits |
| Registros | 31 generales (X0-X30). X31 es SP (Stack Pointer) o XZR (Zero Register) según contexto. |
| Ejecución condicional | Muchas instrucciones pueden ejecutarse condicionalmente sin salto (ahorra predicción de saltos) |
| Licencia | Propietario (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:
; 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).
; 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).
🔓 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
Program Memory (PM): La Densidad de Código en CISC vs RISC
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.
Imagina que quieres compilar un software de edicion de fotos para dos arquitecturas diferentes:
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
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ística | CISC (x86) | RISC (ARM, RISC-V) |
|---|---|---|
| Filosofía | Instrucciones complejas que hacen mucho trabajo | Instrucciones simples, una por ciclo |
| Número de instrucciones | Miles (conjunto extenso) | Cientos (conjunto reducido) |
| Longitud de instrucciones | Variable (1-15 bytes en x86) | Fija (32 bits, o 16 en extensión C) |
| Acceso a memoria | Directo en instrucciones aritméticas | Solo vía LOAD/STORE |
| Registros | Pocos (16 en x86-64), especializados | Muchos (31 en ARM64, 32 en RISC-V), de propósito general |
| Decodificación | Compleja (microprogramación) | Simple (hardware directo) |
| Pipeline | Difícil de implementar eficientemente | Fácil de implementar y optimizar |
| Consumo energético | Alto (65-250W en desktop) | Bajo (5-45W en SoCs móviles) |
| Costo | Mayor (hardware complejo) | Menor (hardware simple) |
| Densidad de código | Alta (programas compactos) | Baja (programas más largos) |
| Compatibilidad | Herencia de 40+ años (x86) | Diseño limpio, menos legado |
| Usos típicos | PCs, 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:
; 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
// 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)
# 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
- ¿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
| Era | CISC (x86) | RISC (ARM) |
|---|---|---|
| 1980s | Instrucciones complejas, pocos registros | Instrucciones simples, muchos registros |
| 1990s | Pentium Pro: decodificación interna a micro-ops (RISC-like) | ARM7: optimización para bajo consumo |
| 2000s | Multi-núcleo, hyperthreading | Cortex-A: SoCs para smartphones |
| 2010s | Integración GPU, eficiencia mejorada | big.LITTLE (núcleos grandes + pequeños) |
| 2020s | Chiplets/tiles, NPUs integrados | Computació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:
- Reciben instrucción CISC compleja
- La descomponen en micro-ops (micro-operaciones tipo RISC)
- Ejecutan estas micro-ops en núcleos internos eficientes
ARM: Del RISC Puro al "RISC Pragmático"
Los ARM modernos (ARMv8, ARMv9) incluyen instrucciones complejas que rompen el modelo RISC puro:
- NEON/SVE: Procesamiento vectorial (SIMD)
- Criptografía: Instrucciones dedicadas de seguridad
- big.LITTLE: Núcleos de diferente potencia en el mismo chip
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ística | PC Tradicional (2000s) | SoC Moderno (2024) |
|---|---|---|
| CPU | Chip separado | Integrada en SoC |
| GPU | Tarjeta dedicada o chip separado | Integrada en SoC |
| Memoria | Módulos DIMM separados | Integrada o muy cercana (unified memory) |
| Controladores | Chipset en placa madre | Dentro del SoC |
| Consumo | 65-250W | 5-45W |
| Tamaño | Caja de PC completa | Tamaño de una uña |
Tres Arquitecturas, Tres Filosofías (2024)
| Característica | Intel Core Ultra (CISC) | Apple Silicon M4 (RISC) | Snapdragon X Elite (RISC) |
|---|---|---|---|
| ISA | x86-64 | ARMv9 | ARMv9 |
| Fabricación | Intel 4 / TSMC 5nm | TSMC 3nm | TSMC 4nm |
| Diseño | Tiles / Chiplets | SoC monolítico | SoC monolítico |
| CPU | 6P + 8E núcleos | 4P + 6E núcleos | 12 núcleos Oryon |
| NPU (IA) | 11 TOPS | 38 TOPS | 45 TOPS |
| Memoria | DDR5 separada | LPDDR5 unified | LPDDR5x unified |
| Consumo | 15-45W | 15-30W | 12-28W |
| Sistema | Windows/Linux nativo | macOS/iOS nativo | Windows on ARM (emulación x86) |
TOPS = Trillions of Operations Per Second. Medida de rendimiento en IA.
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:
| Componente | Función | Analogía | Tarea típica |
|---|---|---|---|
| CPU | Decisiones complejas, secuenciales | El capitán del equipo | Abrir apps, lógica de negocio, sistema operativo |
| GPU | Paralelismo masivo de datos | El ejército de obreros | Gráficos, video, cálculos científicos (GPGPU) |
| NPU | Operaciones de redes neuronales | El especialista en IA | Reconocimiento facial, asistentes de voz, generación de imágenes |
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.
Complete la tabla con sus dispositivos:
| Dispositivo | Procesador exacto | CISC o RISC? | ¿SoC? | NPU/GPU integrado |
|---|---|---|---|---|
| Celular | ||||
| Laptop | ||||
| Tablet / Otro |
Pistas de identificación:
- iPhone: Siempre ARM (Apple A-series o M-series) = RISC
- Android: Snapdragon (ARM), Exynos (ARM), Google Tensor (ARM) = RISC
- Windows: Intel Core / AMD Ryzen = CISC; Snapdragon X = RISC
- Mac: M1/M2/M3/M4 = RISC; Intel antiguo = CISC
- ¿Por qué sus celulares usan RISC y no CISC?
- ¿Sus laptops usan la misma arquitectura que sus celulares? ¿Por qué sí/no?
- ¿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.
| Grupo | Arquitectura | Característica "killer" |
|---|---|---|
| A | Intel Core Ultra | Compatibilidad x86 universal, ecosistema maduro |
| B | Apple Silicon M4 | Eficiencia extrema, unified memory, control total HW/SW |
| C | Snapdragon X Elite | Mayor NPU del mercado, eficiencia en Windows |
| D | AMD Ryzen 8000 | Rendimiento bruto, gaming, precio competitivo |
Tareas por grupo:
- Investigar datos técnicos reales (usar celulares/computadores)
- Identificar: ISA (CISC/RISC), tecnología (nm), consumo (W), TOPS de NPU
- 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
- ¿Qué arquitectura elegirían para su proyecto de grado y por qué?
- ¿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)
- ¿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érmino | Definición | Contexto CISC vs RISC |
|---|---|---|
| ISA | Instruction Set Architecture. El "lenguaje máquina" del procesador. | x86 = CISC; ARM = RISC |
| Micro-op | Micro-operación. Instrucción RISC interna resultante de decodificar CISC. | Intel/AMD usan internamente desde 1995 |
| SoC | System on a Chip. Integración de CPU, GPU, NPU, controladores en un chip. | Dominante en ARM; adoptado por Intel/AMD |
| NPU | Neural Processing Unit. Procesador especializado en operaciones de IA. | Presente en todos los SoCs 2024 |
| TOPS | Trillions of Operations Per Second. Medida de rendimiento en IA. | Snapdragon X Elite: 45 TOPS; Apple M4: 38 TOPS |
| TDP | Thermal Design Power. Consumo máximo de energía bajo carga. | RISC suele tener menor TDP que CISC |
| big.LITTLE | Arquitectura híbrida con núcleos potentes (big) y eficientes (LITTLE). | Inventado por ARM; adoptado por Intel (P-cores/E-cores) |
| Chiplets/Tiles | Diseño con diferentes partes del procesador en chips separados interconectados. | Intel Meteor Lake; AMD Zen |
| Unified Memory | RAM compartida físicamente entre CPU y GPU sin copias entre memorias. | Característica clave de SoCs ARM |
| GPGPU | General-Purpose computing on GPU. Usar GPU para cálculos no gráficos. | IA, simulaciones científicas, minería |
| Emulación | Ejecutar 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.
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.