¿Cuál es la diferencia entre CISC y RISC?


Respuesta 1:

RISC es generalmente "cargar-almacenar" a / desde registros. Generalmente se usan tres registros, como ADD R1 = R2 + R3, cargar y almacenar puede o no ser una excepción con solo dos registros usados ​​en una instrucción.

CISC generalmente permite el cálculo con valores de direcciones de memoria, sin necesidad de ingresarlos primero en los registros. También podría tener modos de direccionamiento más (complejos), permitiendo de uno a más registros para la generación de direcciones.

CISC generalmente es de dos operandos, con ADD que tiene el mismo registro (o dirección de memoria) utilizado para el destino, pero también el mismo para uno de los orígenes.

Esto solía ser un gran problema, y ​​RISC cableada y CISC usando microcódigo.

Ahora microarquitectura para CISC, al menos x86 (si no todos los CISC en uso, lo que significa que los mainframes de IBM son el único otro CISC sobreviviente; los microcontroladores pueden ser una excepción) desglosan las instrucciones en microops (operaciones tipo micro / RISC) que pueden programar fuera de -orden a diferencia del microcódigo original.

RISC puede incluso hacer eso, por ejemplo, ARM más nuevo (no lo hizo al principio), por lo que las diferencias son menores de lo que solían ser.

El ARM original no tenía instrucciones de división de enteros, ya que era demasiado complejo, y mucho menos ninguno para coma flotante. Ahora, la [complejidad] reducida para R en RISC se aplica menos ya que el punto flotante es intrínsecamente complejo y todas las principales CPU RISC admiten incluso instrucciones de raíz cuadrada y trigonometría.


Respuesta 2:

CISC está optimizado para hacer la mayor cantidad de trabajo posible de un tamaño de instrucción dado. Esto se debe a que las CPU no tenían caché en ese momento, y leer las instrucciones de la memoria tomaría varios ciclos, por lo que una instrucción compleja con muchos cambios de estado no fue un problema siempre que fuera compacta.

RISC está optimizado para CPU que * tienen * un caché de instrucciones, y eso cambia el cuello de botella: los cachés pueden proporcionarle fácilmente 64 y 128 bits de datos en cada ciclo, siempre que estén alineados. De repente, puede ejecutar 1 o incluso 2 instrucciones por ciclo, siempre y cuando no haya dependencia, por lo que las instrucciones claras que solo causan un solo cambio de estado se vuelven mucho más rápido.


Respuesta 3:

CISC está optimizado para hacer la mayor cantidad de trabajo posible de un tamaño de instrucción dado. Esto se debe a que las CPU no tenían caché en ese momento, y leer las instrucciones de la memoria tomaría varios ciclos, por lo que una instrucción compleja con muchos cambios de estado no fue un problema siempre que fuera compacta.

RISC está optimizado para CPU que * tienen * un caché de instrucciones, y eso cambia el cuello de botella: los cachés pueden proporcionarle fácilmente 64 y 128 bits de datos en cada ciclo, siempre que estén alineados. De repente, puede ejecutar 1 o incluso 2 instrucciones por ciclo, siempre y cuando no haya dependencia, por lo que las instrucciones claras que solo causan un solo cambio de estado se vuelven mucho más rápido.