Conjunto de instrucciones ARM

3

Estoy tratando de entrar en el mundo de ARM y una cosa que encuentro muy a menudo es que los procesadores ARM son compatibles con el conjunto de instrucciones ARM y Thumb. Por lo tanto, significa que el compilador usará las Instrucciones de Pulgar que son de 16 bits para mejorar la densidad del código y que usará instrucciones ARM solo cuando sea absolutamente necesario. ¿Estoy bien? Pero ahora hay procesadores más nuevos que admiten Thumb 2 que tiene instrucciones de 16 bits y de 32 bits. Pero entonces, ¿qué hace que estos procesadores más nuevos con Thumb 2 sean superiores a los que utilizan ARM y THUMB? Básicamente, tanto las familias tendrán a su disposición instrucciones de 16 bits como de 32 bits o hay algún beneficio de tener el Pulgar 2 en comparación con los conjuntos de instrucciones de Armar y Pulgar. Compré el kit SAMD21 de Atmel para desarrollar nuestros nuevos productos, pero antes de eso solo trato de entender algunos conceptos de arquitectura antes de comenzar con el hardware.

    
pregunta Sajid

2 respuestas

6

Un procesador ARM no puede ejecutar secuencias arbitrarias de instrucciones intercaladas ARM y Thumb. Debe cambiarse de un conjunto de instrucciones a otro, p. Ej. a través de una instrucción de rama. Por lo tanto, la mayoría de las veces le dice al compilador que use las instrucciones ARM o Thumb en todo su proyecto. Lo mejor que puede hacer el compilador es decidir sobre una base función por función qué conjunto de instrucciones se ajusta mejor. El conjunto de instrucciones Thumb2 se supone que combina las ventajas de ARM y Thumb sin los inconvenientes.

Editar:

La responde a la pregunta @Kynit vinculada básicamente a los estados anteriores.

    
respondido por el JimmyB
4

Thumb2 le brinda algunas instrucciones adicionales que le permiten aprovechar el conjunto de funciones ARM de una forma que ese Thumb no pudo. Thumb2 también admite instrucciones Thumb de 16 bits, por lo que no hay una gran desventaja en el tamaño del código con las nuevas instrucciones de 32 bits. En general, parece que tienes la idea correcta.

Consulte esta pregunta para obtener más información.

    
respondido por el Greg d'Eon

Lea otras preguntas en las etiquetas