← Fundamentos de Sistemas Embebidos
Clase 03
M.C. José Mauricio Matamoros de María y Campos · 2 sep 2026 · Tema 2 — evolución histórica de la arquitectura x86 (Intel 4004 → Pentium), el coprocesador matemático y la guerra Intel vs. AMD.
En corto
- En un procesador multinúcleo el silicio lo domina la memoria (cachés y registros), no la ALU. Diagrama en espejo: 4 núcleos + L2 + L1D + L1I + bus interno + lógica de control + registros (incl. vectoriales) + FPU + ALU.
- Promesa de Intel (desde el 8085/8086): retrocompatibilidad binaria — un ejecutable de 1978 corre igual en un Core i9. Los "vicios de diseño" viven en los kernels de los SO.
- Paradoja velocidad vs. MIPS: el 8080 (2 MHz) va más rápido que el 4004 (740 kHz) pero da menos MIPS reales porque cada instrucción compleja (seno, coseno…) se resuelve con muchas micro-operaciones sobre una ALU de enteros.
- Hitos: 286 → MMU + modo protegido; 386 → 32 bits + pipeline + VM86 + pines para coprocesador; 486 → caché L1 (I y D) y FPU dentro del integrado.
- La ALU antigua era solo de enteros: el coprocesador matemático (80387, luego integrado) resuelve trig/exp/log en 4–5 ciclos con tablas de interpolación, frente a miles de ciclos aproximando por Series de Taylor.
🎯 Para el examen (marcado explícito por el profesor)
- Pipeline fuertemente acoplado: codependencia extrema entre los bloques internos → modificar uno obliga a rediseñar todo el procesador. (RISC = débilmente acoplado, bloques separados y reemplazables.) Analogía: fuertemente acoplado = todo el código en
main sin modularidad; débilmente acoplado = patrón MVC con interfaces.
- "Explique qué es un bus coherente". La caché tiene una copia de la RAM y va a la velocidad del procesador; la RAM es 10–1000× más lenta. Al escribir:
- Bus no coherente: la escritura va solo a la caché → la RAM queda con datos viejos.
- Bus coherente: la escritura actualiza caché y RAM a la vez — más lento, pero garantiza consistencia e integridad de los datos.
- Necesidad del coprocesador matemático: las ALU antiguas eran de enteros; el punto flotante (trigonométricas, exponenciales, logaritmos) se aproximaba por software con Series de Taylor → miles/millones de ciclos. El coprocesador (FPU) lo baja a 4–5 ciclos con tablas de interpolación por hardware.
Diagrama de un procesador de 4 núcleos
Acomodo simétrico "en espejo": 4 núcleos físicos (1–4), caché L2, caché L1 de datos (L1D) y de instrucciones (L1I), bus de interconexión interna, lógica de control, registros internos y registros vectoriales, FPU y ALU. La ALU no pesa tanto en el diseño: el integrado está dominado casi por completo por la memoria (registros y cachés).
Línea histórica de Intel x86
| Chip | Año | Bits | Reloj | Notas |
| 4004 | 1971 | 4 | 740 kHz | < 1 MIPS. Instrucciones mínimas (contar, cargar, escribir, sumar enteros de 4 bits). Con esto se calcularon los cohetes a la Luna. |
| 4040 | 1974 | 4 | — | Evolución del 4004. |
| 8008 | 1972 | 8 | 500 kHz | ≈ 0.0005 MIPS. |
| 8080 | 1974 | 8 | 2 MHz | Sigue sin llegar a 1 MIPS pese a ser más rápido: ejecuta instrucciones complejas sobre una ALU de enteros. |
| 8085 | 1976 | 8 | 3 MHz | Casi el mismo 8080 con más frecuencia. Hasta ~25 000 bytes de RAM. Aquí arranca la promesa de retrocompatibilidad. |
| 8086 | 1978 | 16 | 5–10 MHz | Primer 16 bits. Define la ISA x86 (~20 000 instrucciones con variantes). Direcciona 2²⁰. Instrucción promedio > 10 ciclos → < 1 MIPS. |
| 186 | — | 16 | — | "8086 en esteroides", robustecido para el mercado industrial; misma arquitectura. |
| 286 | 1982 | 16 | hasta 25 MHz | 2.66 MIPS. MMU, modo protegido, 2 ALU, +30 mnemónicos. |
| 386 | 1985 | 32 | hasta 40 MHz | ≈ 10 MIPS. Primer 32 bits x86, pipeline de 3 etapas, 4 GB de RAM, VM86, 2 registros de debug, pines para coprocesador, +16 mnemónicos. |
| 486 | 1989 | 32 | hasta 100 MHz | Caché L1 en el integrado (I y D separadas), FPU integrada, pipeline de 5 etapas, +6 mnemónicos. (Una RP2040 a 125 MHz / ~77 MIPS ya lo supera.) |
| Pentium | 1993 | 32 | hasta 200 MHz | Arquitectura P5. |
Promesa de Intel: desde el 8085/8086, la microarquitectura garantiza que "todos los programas que hagas van a funcionar en el procesador siguiente". Cambiar la ISA es hoy casi imposible porque los vicios de diseño están metidos en los kernels de los SO (no se instala Windows-ARM en Intel ni macOS en una Raspberry Pi directamente).
Intel 8085 — diagrama de bloques
ALU entera · señales de control · controlador de interrupciones · puerto serie · acumulador de 8 bits · registro temporal · banderas (flags) · registro de instrucción actual · decodificador de instrucciones · registros de propósito general B, C, D, E, H, L (H y L se combinan como par para operar en 16 bits) · Stack Pointer · Program Counter · incrementador/decrementador.
Indexar un arreglo (i = 1): cargar la dirección en un registro (par HL) → mandarla a la ALU → sumarle 1 → usarla como nueva dirección → traer el dato.
Intel 8086 — registros y prefetch
- AX — acumulador; se parte en AH (alta) y AL (baja), usables como dos registros de 8 bits o como uno de 16.
- SI (Source Index) y DI (Destination Index) — registros de índice (origen / destino).
- BP (Base Pointer) y SP (Stack Pointer) — apuntadores.
- PC, registros de segmento, banderas.
- 16 registros de propósito cuasi general; hay instrucciones que operan hasta dos direcciones de memoria.
- Cola de prefetch: precarga instrucciones en los ciclos en que no se accede a memoria, para acelerar la ejecución.
Intel 286 — MMU, doble ALU y modo protegido
- Duplica el rendimiento del 186 al quitar la multiplexación de los buses de dirección y datos.
- Dos ALU: la principal de cómputo y una segunda de enteros dedicada solo a sumar (calcula base + offset en cada acceso a memoria).
- MMU (Memory Management Unit).
- Modo real vs. modo protegido: al encender, el procesador "cree que es un 8086" (modo real); cuando el software cambia el bit de modo, pasa a 286 (modo protegido). Por eso un CPU de 64 bits todavía puede correr MS-DOS. En modo real, cada dirección lógica corresponde a un pin físico → con memorias modernas habría huecos en los bancos de RAM.
- Modo protegido añade paginación, multitarea y segmentación. Robustez: si una app falla, el procesador la mata y sigue con el resto (multitarea tipo OS/2); antes, un fallo tumbaba todo el procesador.
Intel 386 y el coprocesador 80387
Intel 486 — L1 y FPU en el chip
- Primera caché L1 en el mismo integrado, dividida en L1I (instrucciones) y L1D (datos): una cola hace prefetch incremental desde L1I y separa las instrucciones antes de decodificarlas.
- El coprocesador matemático (FPU) queda integrado — se acaba el chip externo.
- Pipeline de 5 etapas: la decodificación de instrucciones CISC es lenta; con más etapas la ALU ejecuta mientras se decodifican las siguientes.
Intel vs. AMD — el litigio
- Años 70: Intel subcontrata a AMD y Cyrix para chips de apoyo (controlador de teclado, cachés, tarjetas madre); Intel solo hacía microprocesadores.
- 1982: convenio de transferencia tecnológica — Intel se queda con el 386/486; AMD recibe la patente para fabricar el 186 y 286 para el mercado masivo. AMD vendía su 286 a 1/4 del precio de Intel.
- Intel intenta bloquear a AMD en 32 bits; AMD alega que el 386 es una extensión del 286 por su retrocompatibilidad y reclama los esquemáticos. Mientras dura el pleito, AMD hace ingeniería inversa y saca el Am386DX-40: 40 MHz (vs. 33 de Intel), menos consumo, 1/3 del precio.
- Precedente ganado por AMD en 1991 (386) → en 1995 gana en automático el caso del 486 en la Suprema Corte de EE. UU.
- Analogía del profesor: derecho romano/germánico = CISC (constituciones con ~15 000 artículos calculados de antemano); derecho anglosajón = RISC (precedentes, leyes cortas e independientes).
Este material amplía el Tema 2 (2.9 — plataformas comerciales, Intel).