Transferencia de contenido de código binario
La popularidad de los nuevos procesadores es inseparable del soporte del software correspondiente. El desarrollo de un nuevo procesador puede afectar su popularidad y sus perspectivas de mercado debido a la pérdida del soporte de software correspondiente; por otro lado, es difícil para un procesador que no se utiliza ampliamente y no tiene una cierta participación de mercado obtener software rico; apoyo. Esta relación de sujeción mutua entre el procesador y el software de soporte no solo obliga a que el diseño de nuevos procesadores considere la compatibilidad de los procesadores antiguos, sino que también dificulta la introducción de nuevos procesadores. En este caso, estudiar cómo trasladar el software de soporte del procesador antiguo al nuevo procesador para que el nuevo procesador tenga un software rico al principio no sólo es importante para la reutilización del software, sino que también puede ampliar las ideas de I+D del procesador para promover la innovación. de nuevos procesadores.
Métodos de portabilidad
Generalmente hay tres formas de portar código de un procesador antiguo a un procesador nuevo:
1. Proporcionar un modo de ejecución dedicado para ejecutar. El código heredado, como los procesadores Anthem (Itanium) de Intel, está diseñado específicamente para ejecutar código x86 en hardware.
2. Vuelva a compilar el programa fuente según el nuevo conjunto de instrucciones.
3. Interpretar o traducir la aplicación utilizando métodos de software.
Las ventajas y desventajas de varios métodos
El primer método obviamente no puede aprovechar algunas funciones avanzadas del nuevo procesador, pierde el significado de desarrollar un nuevo procesador y agrega nuevo procesamiento. La complejidad del hardware del procesador afecta incluso la eficiencia de ejecución del código original.
El segundo método puede lograr una buena eficiencia, pero no siempre es factible, porque algunos programas ya no tienen código fuente, algunos programas dependen de **** y estas bases de código se basan en En la forma del código objeto, el código fuente no siempre está disponible y algunos lenguajes fuente no tienen compiladores que puedan compilar con el nuevo conjunto de instrucciones. Además, las diferencias entre los sistemas operativos pueden hacer que la recompilación de estas rutinas sea posible solo modificando el código fuente. (por ejemplo, mediante el uso de un nuevo procesador).
Surgió así un tercer método llamado traducción binaria. Esta es una tecnología que traduce directamente programas binarios ejecutables de un procesador a otro para su ejecución. Permite portar fácilmente programas binarios para diferentes procesadores entre sí, ampliando el alcance del hardware/software y ayudando a romper las limitaciones de innovación mencionadas anteriormente entre procesadores y software de soporte.
Acerca de la traducción binaria
La traducción binaria también es una tecnología de compilación. Se diferencia de la compilación tradicional en que compila diferentes objetos. El objeto de procesamiento de la compilación tradicional es un lenguaje de alto nivel, que se genera después del procesamiento de la compilación para generar algún tipo de código de destino de máquina, mientras que el objeto de procesamiento de la traducción binaria es algún tipo de código binario de máquina, que se genera mediante la compilación tradicional; Se genera después del procesamiento de traducción binaria. Otro tipo de código binario de máquina. Según la división de los compiladores tradicionales en front-end, middle-end y back-end, podemos entender que la traducción binaria requiere un compilador de front-end dedicado.