¿Podría considerarse que el ARM actual tiene arquitectura CISC debido a todas las instrucciones agregadas en tiempo extra?

ARM marca una serie de casillas que serían un anatema para los defensores fundamentalistas de RISC.

ARM V8 consta de 3 ISA: 64 bits AAarch64 y ARM de 32 bits, que se divide en A32 y Thumb (16 y 32).

El ARM de 32 bits es claramente CISC-y: instrucciones de longitud variable, instrucciones que leen / escriben múltiples registros (push / pop) y una variedad de instrucciones impares en neón (punto flotante), solo por nombrar algunas. Estas complejas instrucciones se rompen en un número variable de operaciones, que es no-no en RISC.

Aarch-64 limpió gran parte de la ISA, pero dejó muchas cosas que son CISC-y: cargas / almacenar pares, cargar / almacenar con incremento automático, aritmética / lógica con cambios, instrucciones vectoriales ld / st en Neon para hacer con pasos lee / escribe, etc. Nuevamente, bastante CISC-y. Las instrucciones ARM codifican más información que la instrucción DEC Alpha típica; está más cerca de x86 que Alpha / SPARC en ese sentido.

Creo que las líneas RISC vs CISC se han difuminado durante más de una década, desde que la ejecución fuera de orden se generalizó. La ventaja de RISC es clara en las máquinas en orden. En máquinas OoO, no tanto, con la única excepción de las instrucciones de longitud fija. ARM vino del mundo del sistema embebido donde muchos códigos de ensamblaje están escritos a mano. En consecuencia, su ISA refleja los patrones de uso comunes. En cualquier caso, las instrucciones Cisc-y son preferibles a algunas de las elecciones de ISA extrañas hechas por los primeros ISA RISC (ventanas de registro, ranuras de retardo de ramificación, ranuras de retardo de carga, instrucciones de pasos recíprocos, etc.).

No. Puede considerar que son cuatro RISCs en el mismo núcleo. Pero todos ellos son RISCs.

El núcleo de RISC es que todas las instrucciones pueden ejecutarse en un reloj, y ninguna de las rutas de datos en esas instrucciones es tan compleja que requiere que ese reloj se alargue, lo que ralentiza la ejecución de todas las instrucciones. Como efecto secundario, lograr esto generalmente requiere separar los accesos a la memoria de otras operaciones, pero este es un medio para un fin, no un requisito central. La canalización significa que la cantidad que debe hacerse en un solo reloj disminuye, acelerando el reloj. Un RISC no debe impedir esto. No creo que las instrucciones ARM lo hagan.