es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se ejecuta el código ARM64EC en un sistema ARM?

Actualmente estoy tratando de entender cómo funciona Windows en ARM. Tengo dificultades para comprender cómo puede funcionar el ABI ARM64EC en un chip ARM. Microsoft dice que ARM64EC se basa en AArch64 con algunos cambios para que sea compatible con x64, incluyendo convenciones de llamada, uso de pila y alineación de datos [1]. En mi opinión, esto significaría que se puede ejecutar en un chip x64 y no puedo encontrar la razón por la cual funcionaría en un chip ARM si sigue las convenciones de x64.

También dicen que el código x64 se está emulando (supongo que utilizando una versión extendida del emulador x86 a ARM), pero luego ARM64EC se ejecuta nativamente. Pero, ¿por qué tenemos que diferenciar si ambos son interoperables? ¿Entonces el sistema operativo cambia todo internamente para cumplir con AArch64?

¿Hay algo que me esté perdiendo? Me encontré con el ISA pero no pude encontrar nada sobre qué ABIs serían compatibles con el ISA A64. Pero también tengo problemas para entender la relación entre el ISA y los ABI.

Disculpen si esta es una pregunta tonta, pero creo que simplemente estoy omitiendo o malinterpretando algo y Microsoft es bastante escaso en detalles.

[1] https://blogs.windows.com/windowsdeveloper/2021/06/28/announcing-arm64ec-building-native-and-interoperable-apps-for-windows-11-on-arm/

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Windows y ARM64, el ABI ARM64EC y cómo funciona en un chip ARM es ciertamente un tema interesante.

    Es cierto que el ABI ARM64EC se basa en AArch64 con modificaciones para hacerlo compatible con las convenciones x64, como las convenciones de llamada, el uso de la pila y la alineación de datos. Aunque parezca que solo funcionaría en un chip x64, la razón por la que puede ejecutarse en un chip ARM es porque ARM64EC está diseñado para ser interoperable con el código x64 existente, lo que permite la compatibilidad entre plataformas. En otras palabras, permite que los dispositivos ARM64 ejecuten código x64, lo que lo hace más flexible y versátil.

    En cuanto al código x64 emulado, esto es necesario porque no todas las aplicaciones de Windows se han trasladado a ARM64 todavía. Por lo tanto, para ejecutar estas aplicaciones en dispositivos ARM64, se debe emular el código x64. Por otro lado, el código ARM64EC puede ejecutarse de forma nativa en dispositivos ARM64.

    En cuanto a la relación entre ISA y ABI, ISA (Arquitectura del conjunto de instrucciones) se refiere al diseño del conjunto de instrucciones del procesador, mientras que ABI (Interfaz Binaria de Aplicación) define cómo el software debe interactuar con el procesador. En otras palabras, ISA son las instrucciones a nivel de hardware que dictan cómo el chip debe comportarse, mientras que ABI es un estándar sobre cómo el software debe utilizar estas instrucciones.

    Puede ser complejo comprender completamente la relación entre ISA y ABI, pero la idea principal es que el ABI ARM64EC fue desarrollado para permitir la interoperabilidad entre plataformas ARM64 y x64, lo que lo hace compatible con ambos. Si bien Microsoft puede ser escasa en detalles, es importante estar al tanto de los nuevos avances y desarrollos en el campo para comprender completamente cómo está evolucionando Windows en ARM y ARM64EC.

Comments are closed.