¿Cuáles son las diferencias entre las arquitecturas RISC y CISC?

¿Cuáles son las diferencias entre las arquitecturas RISC y CISC?

Las arquitecturas CISC y RISC se refieren a qué tan complejas son las instrucciones (comandos) que pueden ejecutar las CPU diseñadas en ese estándar. Cuanto más fácil es programar a un alto nivel, más complejo (y costoso) es el desarrollo del hardware, y viceversa.

Cada uno fue desarrollado para superar barreras específicas al avance de la informática; durante 50 años aprovecharon los conceptos de cada uno, pero también algunos elementos básicos de sus proyectos originales. oh canaltech habló con Pietro Colloca, ingeniero de Intel especializado en IA e IoT, para resaltar sus especificidades y ayudar a identificar cada una de ellas incluso en un posible futuro “híbrido”.

“Tanto RISC como CISC se denominan ISA, Arquitectura de conjunto de instrucciones. Básicamente es un estándar diseñado para que definamos cómo terminará funcionando la computadora”, puntualizó el especialista de Intel.

Complejidad y tamaño de la instrucción.

La primera diferencia relevante entre las computadoras CISC y RISC es, por supuesto, la complejidad y el tamaño de las instrucciones. Mientras que las máquinas RISC se basan en instrucciones simples con tamaños predeterminados, los procesadores CISC utilizan instrucciones mucho más complejas, transformando comandos básicos en instrucciones integradas en comandos más complejos.

Una operación de suma básica en RISC, por ejemplo, implicaría comandos independientes para cargar datos en diferentes registros, sumar los valores y cargar el resultado en el registro de destino. En CISC, el comando "SUM 2 y 5" reúne todas las instrucciones intermedias en una sola línea de código.

Complejidad del hardware × simplicidad del código

Las computadoras CISC se desarrollaron para facilitar la programación de aplicaciones, razón por la cual con cada generación se agregaron componentes nuevos y cada vez más especializados. Al hacer que el hardware sea altamente complejo y con una serie de coprocesadores integrados en el silicio, también es posible incorporar instrucciones más pequeñas como pasos preprogramados de instrucciones más grandes y complejas.

Por esta razón, realizar una operación de suma simple en RISC requiere varias líneas de código, mientras que en CISC solo requiere una. Este mismo razonamiento se aplica a todas las demás operaciones computacionales, como inferencias, condiciones, flujo de información y operaciones lógicas.

"Desglosando un poco más sobre CISC, aunque tiene este 'complejo' en su nombre, está aquí para facilitar las cosas. Dentro de la arquitectura misma, tiene varios conjuntos de instrucciones, que son básicamente las operaciones matemáticas que realiza la computadora. puede realizar la ejecución. En lugar de que en una arquitectura RISC usted escriba 'Me gustaría que cargue esta información en el registro A, cargue esta información en el registro B y realice la multiplicación', simplemente ponemos 'multiplicación' y el procesador realiza la ejecución completa. operación", explica Colloca al informe de Canaltech.

Por lo tanto, cuanto más complejo sea el hardware, más complejas pueden ser las operaciones y más sencillo será programar para ese sistema. Por otro lado, la excesiva complejidad hace que el proceso de fabricación sea relativamente más caro y difícil, y su funcionamiento suele consumir mucha más energía.

La adopción de la arquitectura RISC, ya que requiere una sintaxis más cercana al lenguaje de máquina, dará como resultado códigos de software extremadamente complejos, más largos y más detallados.

Memoria × Registros

Al no disponer de aceleradores especializados, todas las instrucciones en RISC son ejecutadas directamente por el procesador. Para poder ejecutar todos los comandos de la arquitectura, el diseño de las CPU RISC requiere de un número mucho mayor de registros físicos, ya que las operaciones interdependientes deben cargarse en paralelo para realizarse inmediatamente después de la ejecución de un comando anterior.

En CISC no ocurre lo mismo, ya que todas las operaciones de una instrucción más compleja se cargan y ejecutan directamente en la memoria del sistema, almacenándose únicamente los resultados en los registros. Por este motivo, los procesadores RISC necesitan menos memoria, pero muchos más registros, mientras que en CISC la proporción se invierte.

Un procesador Intel Core i9-10900k, por ejemplo, tiene 16 registros de instrucción única y datos múltiples (SIMD), y cada núcleo Hyperthread también tiene 16 registros SIMD. Los procesadores ARM, por lo general, pueden tener entre 32 y 192 registros por núcleo según el diseño.

Acceso a la memoria

Como todas las instrucciones en RISC se ejecutan inmediatamente a nivel de registro, además de que el sistema depende menos de la memoria, el procesador no necesita acceso directo a la memoria. La diferencia es una de las ventajas de los procesadores ARM en términos de eficiencia, ya que las velocidades de la memoria suelen ser muy inferiores a las de la CPU.

Al no depender de cargar y ejecutar instrucciones en componentes más lentos, los procesadores RISC tienden a consumir mucha menos energía. Esto es ideal para sistemas integrados de bajo consumo, como dispositivos IoT, teléfonos inteligentes o incluso servidores donde cada vatio marca la diferencia en el costo total de operación (TCO).

Ciclos computacionales

Cuando hablamos de frecuencia de CPU, en realidad estamos describiendo cuántos ciclos computacionales se realizan en un segundo. Un procesador con un reloj base de 2,9 GHz, por ejemplo, realiza 2,9 mil millones de ciclos por segundo, con valores que pueden superar los 5 mil millones de ciclos en actividades intensas.

Por esta razón, las ejecuciones en ciclos RISC únicos se encuentran entre las principales métricas para justificar para qué tipos de uso es más ventajosa la arquitectura. En definitiva, al trabajar con menos conjuntos de instrucciones, y con instrucciones mucho más sencillas, cada una de ellas siempre se ejecuta en un solo ciclo, es decir, una CPU RISC funcionando a 2,8 GHz ejecuta 2.800 millones de instrucciones por segundo.

En CISC esto cambia mucho, principalmente porque las instrucciones tienen tamaños variables. Algunos de ellos se pueden ejecutar en un solo ciclo, pero la mayoría requiere varios ciclos para ejecutarse.

Por este motivo, Intel implementó el estándar de núcleo híbrido en los nuevos procesadores x86. grande pequeño, algunos destinados a ejecuciones simples y otros a ejecuciones complejas. Efectivamente, los comandos más cercanos al nivel de máquina y que pueden ejecutarse en ciclos únicos, incluso en CISC, se dirigen a los núcleos de eficiencia (E-core), mientras que el resto de comandos son procesados ​​por los núcleos de rendimiento (P- centro ).

Compatibilidad con versiones anteriores

Otra ventaja inherente a la arquitectura CISC es que no es necesario cambiar los microcódigos originales con cada nueva generación de procesadores, ya que la mayoría de ellos están integrados en los aceleradores. De esta manera, cada procesador x86 moderno ya tiene la capacidad de ejecutar los mismos códigos que las máquinas antiguas.

"[A Intel] Trajimos la arquitectura x86 en 1978, con el 8086, y a medida que avanzábamos, agregamos cosas, como nuestros aceleradores: MMX, SSE, AVX2, etc. Esto es precisamente para simplificar las operaciones matemáticas. [no nível do hardware]. Usamos aceleradores para facilitar la escritura y ejecución de códigos”, explica el especialista de Intel.

En RISC, para garantizar la menor cantidad de instrucciones posible, cada generación debe reprogramarse hasta cierto punto, eliminando microcódigos antiguos para insertar otros nuevos. Esto significa que la mayoría de los procesadores RISC no son intercompatibles y están diseñados específicamente para sus funciones.

Una CPU NVIDIA ARM Amazing-Grace, especializada en operaciones de inferencia para IA, no tiene las mismas instrucciones que un procesador Apple ARM M2, por ejemplo. A pesar de ser dos productos RISC extremadamente avanzados y de primera línea para sus segmentos, no pueden realizar de forma nativa las mismas tareas entre sí.

Arquitecturas complementarias

En la práctica, CISC y RISC se desarrollaron en diferentes momentos para resolver diferentes limitaciones computacionales. Sin embargo, ambos evolucionaron uno al lado del otro, absorbiendo las mejoras de cada uno siempre que fue posible.

"[Nas CPUs Intel] Hay dos arquitecturas x86 diferentes, Golden Cove y Gracemont están enfocadas a propósitos diferentes, mientras que P-Core tendrá capacidades como hyperthreading, E-Core está dirigido a una mayor eficiencia. [Comparando os big.LITTLE ARM e x86] El concepto puede ser similar, pero a la hora de montarlo no es lo mismo", señala Pietro Colloca.

El ejemplo de la arquitectura. grande pequeño, es incluso el principal en estos casos, ya que fue adoptado inicialmente por los procesadores ARM para teléfonos inteligentes, y ha sido adoptado por Intel desde los chips Alder Lake. Paralelamente, los procesadores ARM M1, M2 y M3 de Apple todavía utilizan la arquitectura RISC, pero tienen casi tantos transistores como las CPU x86 en CISC, y también funcionan con conjuntos de instrucciones más complejos para facilitar la programación en la plataforma.

La tendencia es que ambas arquitecturas se combinen cada vez más, siendo el punto clave para diferenciarlas más una cuestión de publicidad que de especificaciones técnicas.

Fuente: Computación en la nube: teoría y práctica, tercera edición, Dan Cristian Marinescu; Educativo.io; Ingenierosgarage.com; fábrica de especias; Universidad Stanford; Universidad de Tennessee; AHIRLABS; IBM;

Subir