Table of Contents
Introducción: El legado duradero de la arquitectura CISC
La arquitectura Complejo Instrucción Set Computing (CISC) ha conformado la base de la informática moderna durante más de cinco décadas. Desde los mainframes de tamaño de la sala de los años 70 hasta los dispositivos de bolsillo de hoy, los conjuntos de instrucciones CISC han evolucionado continuamente para satisfacer las demandas de los entornos de software y hardware cada vez más complejos. Entendiendo la historia y evolución de CISC es esencial para cualquier persona que trabaja en la arquitectura de la informática, programación de sistemas o diseño de hardware.
La premisa central de CISC es elegante: diseñar un procesador que pueda ejecutar operaciones complejas y multi-paso con instrucciones individuales, reduciendo así la brecha semántica entre lenguajes de programación de alto nivel y código de máquina. Este enfoque prometía compiladores más simples, tamaños de programas más pequeños y uso más eficiente de la memoria en un momento en que tanto la memoria como el almacenamiento eran enormemente costosos.
Los orígenes del CISC en los años 70: Mainframes y el nacimiento de las instrucciones complejas
Las semillas de la arquitectura CISC fueron plantadas a finales de los años 60 y principios de los 70, un período en el que el costo de la memoria era astronómico por los estándares modernos. Los diseñadores de computadoras trataron de maximizar la cantidad de trabajo realizada por instrucción, porque cada instructor consumía valiosos ciclos de memoria. IBM System/360 ], se cita a menudo como el primer sistema comercial de enseñanza de gran tamaño que encarnaba
El término "CISC" en sí no existía hasta finales de los años 70, cuando investigadores de IBM y Stanford University comenzaron a contrastarlo con la filosofía emergente de RISC. Antes de eso, todos los procesadores eran simplemente "procesadores".El enfoque arquitectónico que más tarde sería etiquetado CISC fue impulsado por varias restricciones prácticas: memoria limitada de almacenamiento de la estrella, el alto costo de los chips de memoria, y el deseo de hacer la programación de la lengua de montaje resultado de la carga
A mediados de los años 70, empresas como Digital Equipment Corporation (DEC) con su VAX-11/780, e Intel con su procesador 8086, estaban impulsando los principios de CISC. La arquitectura VAX, en particular, se convirtió en un ejemplo de libro de texto de CISC, con más de 300 instrucciones y 16 modos de abordaje. El VAX podría ejecutar instrucciones como (evaluación polímica) y
Características clave de los procesadores de CISC tempranos
- Ergentos conjuntos de instrucciones: Los primeros chips del CISC a menudo contenían cientos de instrucciones distintas, muchas de las cuales realizaron operaciones altamente especializadas.
- Longitudes de instrucción: Las instrucciones pueden variar de un byte a varias docenas de bytes, permitiendo una codificación flexible pero complicando la decodificación.
- Modos de tratamiento múltiple: Los procesadores apoyaron numerosas formas de especificar los operandos, incluyendo modos de registro directos, indirectos de memoria, indexados y de desplazamiento base.
- ] Microcódigo complejo: La lógica de control se implementó mediante microcódigo, una capa de instrucciones de bajo nivel que tradujo cada instrucción de la máquina en señales de control de hardware. Este enfoque simplificado diseño de procesadores pero rendimiento limitado.
- Operaciones de memoria a memoria: Muchas instrucciones tempranas del CISC podrían funcionar directamente en los operandos de memoria sin requerir registros para almacenamiento intermedio.
Estas características hicieron que los procesadores tempranos del CISC fueran excepcionalmente flexibles para los programadores y compiladores. Sin embargo, la complejidad de decodificar instrucciones de longitud variable y ejecutar operaciones microcodificadas significaba que estos procesadores normalmente corrían a velocidades de reloj más lentas y requerían más área de silicio que diseños más simples.
El Levántate de la CISC: Intel 8086 y la Legado x86
El evento más consecuente en la historia de la CISC fue la introducción del Intel 8086] en 1978. El 8086 fue un procesador de 16 bits con un bus de 20 bits, lo que le permitió abordar hasta 1 MB de memoria. Su conjunto de instrucciones fue diseñado deliberadamente para ser compatible con el procesador de 8 bits 8080 anterior, y equilibrar la arquitectura implementada para desarrollar el software.
La decisión de IBM en 1981 de utilizar la Intel 8088 (una versión más barata de 8 bits de los 8086) en su IBM Personal Computer original efectivamente ungido x86 como el estándar para la arquitectura de PC. Cada generación posterior de procesadores Intel, de los 80286 y 80386 a las familias Pentium, Core y Xeon, ha mantenido la compatibilidad con el conjunto original de instrucciones complicación 8086.
El 80386, lanzado en 1985, fue un chip histórico que introdujo el procesamiento de 32 bits a la línea x86. También trajo la paging de memoria, modo protegido y modo virtual 8086, capacidades que pusieron las bases para sistemas operativos modernos como Linux y Windows NT. El conjunto de instrucciones de 80386 se amplió sustancialmente desde el 8086, añadiendo nuevas instrucciones generales, operaciones de cadenas y comandos de nivel del sistema dos décadas.
El debate CISC vs. RISC: El gran Schism Arquitectural
A mediados de los años 80, un cisma filosófico había surgido en la investigación de arquitectura computarizada. Por un lado, el establecimiento CISC, dirigido por Intel, Motorola y National Semiconductor. Por otro lado, se mantuvo una nueva generación de arquitectos que defendían procesos más simples y más rápidos.
Los argumentos centrales del campamento de RISC fueron poderosos:
- Las instrucciones más simples decodifican más rápido, permitiendo velocidades de reloj más altas.
- Instrucciones de longitud fija] simplifican la tubería, permitiendo que múltiples instrucciones se ejecuten simultáneamente.
- Arquitecturas de almacén, donde sólo las instrucciones de carga y almacenamiento acceden a la memoria, facilitan optimizar el uso del registro y reducir los puestos de tubería.
- Iniciar los archivos de registro reducir el número de accesos a la memoria, mejorando el rendimiento.
- La optimización de la compilación puede lograr resultados mejores con instrucciones más sencillas que con instrucciones complejas microcodificadas.
Durante un tiempo, RISC apareció a punto de suplantar el CISC por completo. Las estaciones de trabajo del Sol (SPARC), Silicon Graphics (MIPS), e IBM (POWER) demostraron las ventajas de rendimiento de RISC. A principios de los años 1990, los chips RISC corrían a velocidades de reloj más altas y entregaban un rendimiento superior de nivel entero y flotante en comparación con los procesadores actuales del CISC.
Sin embargo, la respuesta del CICR no fue abandonar su conjunto de instrucciones sino adoptar las técnicas de RISC internamente. Intel 80486, lanzado en 1989, incorporó un oleoducto de cinco etapas, caché en chip, y un motor de microcódigo más eficiente.El Pentium, lanzado en 1993, añadió una arquitectura superscalar que podría ejecutar dos instrucciones por ciclo de reloj.
Renacimiento del CISC: Micro-Ops, Pipelining y Execución Externa
La técnica de traducción micro-op del Pentium Pro fue una innovación transformadora. Los procesadores modernos x86 de Intel y AMD decodifican cada compleja instrucción x86 en una o más simples micro-operaciones de longitud fija. Estos micro-ops son enviados a través de un motor de ejecución super-escalada y profundamente concebida que soporta la ejecución fuera de orden, registro renaming y ejecución especulativa esencialmente.
Esta filosofía de diseño alcanzó su cenit con la Intel Core microarquitecture (2006) y sus sucesores. La arquitectura Core contó con:
- Ejecución fuera de orden: El procesador podría buscar, decodificar y ejecutar hasta cuatro instrucciones por ciclo, reordenandolas para maximizar la utilización del oleoducto.
- Macro-fusión y micro-fusión: Las instrucciones de Adjacent x86 pueden combinarse en un solo micro-op, mejorando el ancho de banda de decodificación.
- Predicción avanzada de la rama: Los predictores multinivel y los amortiguadores de la pila de retorno reducen la pena de las falsificaciones de rama, factor crítico en los procesadores con tuberías.
- Power-efficient sleep states: El voltaje dinámico y el escalado de frecuencias permitieron al procesador reducir el consumo de energía cuando la demanda era baja.
Las arquitecturas de AMD K8 y K10, y más tarde la serie Ryzen/Zen, prosiguió estrategias similares. La arquitectura Zen, introducida en 2017, contó con una microarquitectura completamente rediseñado con un enorme caché de instrucción de 32KB L1, un caché de micro-op, cuatro ALUs, y el apoyo para multi-lecturas simultáneas (SMTSC)
Técnicas clave en la implementación moderna del CISC
- Traducción de micro-operación: Las instrucciones complejas x86 se descomponen en micro-ops de longitud fija más simples que pueden ser programadas fuera de orden.
- Caché micro-op: Los micro-ops usados son caché, saltando la etapa de decodificación y reduciendo el consumo de energía.
- Ejecución fuera de orden: Las instrucciones (microops) se ejecutan en orden de flujo de datos en lugar de orden de programa, mejorando la utilización de unidades de ejecución.
- Registrarse renombrando: El gran conjunto de registro de x86 se mapea en un grupo mucho mayor de registros físicos, eliminando falsas dependencias.
- Ejecución exacta: El procesador predice los resultados de las ramas y ejecuta instrucciones por adelantado, revolviendo las predicciones erróneas.
- Multitreading simultáneo (SMT): Múltiples hilos de hardware comparten los recursos de ejecución, mejorando la rendimiento sin duplicar todo el núcleo.
Estas técnicas permiten a los procesadores x86 modernos alcanzar el paralelismo a nivel de instrucción que rivaliza o supera el de los diseños RISC, manteniendo la compatibilidad total atrasada. El resultado es un procesador que puede ejecutar software de décadas viejas a velocidades de enfrentamiento, mientras que también soporta cargas modernas como virtualización, encriptación y inferencia de aprendizaje automático.
CISC moderno: x86-64, Virtualización y Extensiones de seguridad
La extensión de 64 bits a la arquitectura x86, conocida como AMD64] (más tarde adoptada por Intel como Intel 64 o x86-64), fue introducida por AMD con el procesador Opteron en 2003. Esta extensión agregó 64 bits de compatibilidad con usos generales, expandió el espacio de dirección virtual a 48 bits dominantes (y finalmente 57 bits con código de 5 niveles), e introdujo un nuevo conjunto de compatibilidad x86
El soporte de virtualización fue otro hito importante en la evolución de CISC. La tecnología de Intel VT-x (Vanderpool), introducida en 2005, la virtualización asistida por hardware a la arquitectura x86. AMD siguió con su ]AMD-V (Pacifica) extensión.
Las instrucciones de seguridad también se han convertido en una característica de los procesadores modernos de CISC. Intel SGX (Extensiones de la Guardia de Sistemas de Seguridad) y TDX (Extensiones de dominios de seguridad de la Fuerza de Control) [FCL]
INSL [MV] ] [FLT]] [FLT]] [FLT: Aceleración de la red de Aprendizaje de datos ] [FLT]]
Implementaciones del CISC contemporáneo: Intel Core y AMD Ryzen
A mediados de 2020, las dos familias dominantes de procesadores de CISC son Intel Core] (ahora en su 14a generación) y AMD Ryzen] (basado en las microarquitecturas Zen 4 y Zen 5). Ambos representan la culminación de décadas de evolución de CISC, combinando conjuntos de instrucción masiva con sofisticados con microtecturas.
El último procesador Intel Consiste en los procesadores Ultra (Meteor Lake y sucesores) en un diseño basado en azulejos que separa compute, gráficos y I/O en diferentes chips.El nivel de computación incluye una mezcla de los resultados (P-cores) basados en el
Los procesadores de serie AMD de serie zen 7000 y 8000 , construidos en la microarquitectura Zen 4, cuentan con hasta 16 núcleos (32 hilos) en la plataforma de escritorio principal. La arquitectura Zen 4 aumenta la caché L2 por núcleo a 1 MB, mejora el rendimiento de la rama, y añade soporte para instrucciones AVX-512.
Ambas empresas continúan invirtiendo fuertemente en arquitecturas de los chips], que les permiten combinar múltiples mueres más pequeñas en un solo paquete. Este enfoque mejora los rendimientos de fabricación, reduce los costos y permite configuraciones de productos flexibles. La tendencia de los chiplet representa un cambio fundamental en el diseño de procesadores, alejando de los monolíticos mueres hacia sistemas modulares basados en interconex.
El futuro de la CISC: Arquitecturas híbridas y aceleradores especializados
La evolución del CISC está lejos de completarse. Varias tendencias están conformando el futuro del diseño de conjuntos de instrucciones:
- Aceleradores específicos de dominio: Los procesadores modernos de CISC integran cada vez más bloques de hardware especializados para IA, criptografía, codificación de medios y redes. Estos aceleradores se controlan típicamente a través de nuevas instrucciones agregadas a la ISA, ampliando la tradición CISC de incorporar operaciones complejas en el conjunto de instrucciones.
- ] Instrucciones centradas en la seguridad: Se están añadiendo nuevas instrucciones para etiquetado de memoria, autenticación puntero y cálculo confidencial a x86-64, lo que refleja la creciente importancia de la seguridad en los sistemas de cálculo.
- Concurso de RIESC-V: La arquitectura de código abierto RISC-V presenta un reto a largo plazo para el dominio de x86. Mientras que RISC-V actualmente carece del ecosistema y el rendimiento de x86, su carácter modular y la gobernanza neutra de proveedores están atrayendo inversión de las principales empresas. Si RISC-V gana una cuota de mercado significativa, puede presionar su innovación
- La compatibilidad de nuevo como espada de doble filo: El requisito de apoyar décadas de instrucciones heredadas impone una complejidad significativa y costos de área de silicio. Sin embargo, la eliminación completa del apoyo legado correría el riesgo de romper grandes cantidades de software existente. La industria está explorando maneras de simplificar el conjunto de instrucciones manteniendo la compatibilidad mediante la emulación o la traducción dinámica.
- Computación de Hybrid: Continúa la integración de elementos CISC y RISC. Algunos diseños futuros pueden adoptar un enfoque de dos niveles: un núcleo similar a RISC para la ejecución de alto rendimiento, eficiente en energía, con un extremo frontal CISC que traduce las instrucciones heredadas. Este desdibujo del tradicional límite CISC/RISC sugiere que el futuro de la computación será prag.
Una posibilidad particularmente intrigante es el uso de traducción binaria dinamica] para descifrar la instrucción presentada al software de la arquitectura interna nativa del procesador. Esto ya es común en la virtualización (por ejemplo, QEMU) y en algunas implementaciones de procesador (por ejemplo, manteniendo el modo de compatibilidad x86 de Itanium).
Conclusión: CISC, RISC y el desbordamiento de los límites
La historia de los conjuntos de instrucciones de la CISC es una historia de adaptación y resiliencia. Nacido de las restricciones prácticas de la informática de los años 70, las arquitecturas de la CISC dominaron la industria durante décadas, enfrentaron un desafío mortal de RISC en los años 80 y 1990 y luego se reinventaron adoptando técnicas similares a RISC internamente, preservando la compatibilidad atrasada.
Los procesadores CISC de hoy, ejemplificados por las familias Ryzen de Intel y AMD, son diseños híbridos que combinan la rica semántica de una gran instrucción con el modelo de ejecución amigable con gasoductos de RISC. La capa de traducción micro-op que puente estos dos mundos es ahora una característica estándar de todos los procesadores x86 de alto rendimiento. Esta fusión de filosofías de CISC y RISC ha producido rápido
Mirando hacia adelante, el límite entre el CISC y el RISC probablemente continuará borroso. arquitecturas emergentes como RISC-V y ARM v9 están incorporando instrucciones más complejas para tareas especializadas, mientras que los diseños del CISC están racionalizando sus núcleos de ejecución y agregando más aceleración del hardware. El debate de larga duración entre el CISC y el RISC no se ha resuelto por la victoria de un campo sobre el otro, pero por la convergencia de la enseñanza del paisaje.
Para más lectura, la documentación Intel Architecture Instruction Set Extensiones proporciona detalles autorizados sobre las instrucciones x86 modernas, mientras que La microarquitectura Zen de AMD ofrece una visión de la implementación del CISC contemporáneo. IBM System/360 historical archive[LT]