El conjunto de instrucciones es la especificación de la interfaz; dada una palabra del valor x , la CPU ARM hará y .
La arquitectura es una implementación de esta interfaz. Puede haber diferentes implementaciones, pero la de ARM Ltd. se ha desarrollado a lo largo de la especificación de la interfaz y es muy probable que sea una de las mejores optimizadas.
El conjunto de instrucciones se ha diseñado para permitir que la arquitectura se realice con el mínimo esfuerzo, al mantener las instrucciones lo suficientemente simples como para que un breve conducto (3 etapas para ARM7, 5 etapas para ARM9) sin (casi) retroalimentación a las etapas anteriores pueda ser usado para implementarlo, lo que da un buen rendimiento / compensación de poder.
El conjunto de instrucciones x86 en contraste es básicamente legado, de una arquitectura originalmente microcodificada con una densidad de código bastante buena. Las arquitecturas compatibles con x86 más antiguas eran bastante lentas, ya que los tiempos de ejecución para diferentes instrucciones varían, y se hace difícil paralelizar el procesamiento de instrucciones; las implementaciones más nuevas utilizan el preproceso para generar un flujo de instrucciones que se puede canalizar mejor, pero esta tecnología tiene ciertos límites.
Por otro lado, la instrucción de Itanium tiene muchas similitudes con ARM: todas las instrucciones pueden ir precedidas de una condición, y las instrucciones individuales no pueden realizar operaciones complejas como combinaciones de accesos de memoria y aritmética, pero se han optimizado aún más hacia alto rendimiento, por lo que se volvió realmente difícil escribir los programas de ensamblador correctos, ya que los valores obtenidos de la memoria o los resultados de cómputo no están disponibles para las siguientes instrucciones, ya que la instrucción anterior no se completa por completo, ya que la instrucción posterior busca sus operandos.
El conjunto de instrucciones ARM es un buen compromiso: se puede realizar una implementación operativa con muy pocos transistores, y se puede sincronizar con velocidades en el rango de GHz, pero las restricciones en programas bien formados debido a la canalización aún no aparece excesivamente, por lo que todavía es posible escribir el ensamblador a mano.