logo móvil
Contáctanos

Un método de traducción binaria dinámica y estática basado en la predicción de ramas

Autores: Sun, Lianshan; Wu, Yanjin; Li, Linxiangyi; Zhang, Changbin; Tang, Jingyan

Idioma: Inglés

Editor: MDPI

Año: 2023

Descargar PDF

Acceso abierto

Artículo científico
2023

Un método de traducción binaria dinámica y estática basado en la predicción de ramas


Categoría

Ingeniería y Tecnología

Subcategoría

Ingeniería Eléctrica y Electrónica

Palabras clave

Traducción binaria
Traducción binaria dinámica-estática
Predicción de ramas
QEMU
Bloques de traducción
Rendimiento

Licencia

CC BY-SA – Atribución – Compartir Igual

Consultas: 52

Citaciones: Sin citaciones


Descripción
La traducción binaria es una técnica importante para lograr la migración de software entre arquitecturas cruzadas. Sin embargo, los marcos de traducción binaria dinámica principales, como QEMU, a menudo generan una gran cantidad de código redundante, lo que degrada la eficiencia del código objetivo. Por ello, proponemos un método de traducción binaria dinámico-estático basado en la predicción de ramas. Identifica primero partes de bloques de traducción siguiendo técnicas estáticas de predicción de ramas. Luego traduce estos bloques de traducción en bloques de código nativo menos redundantes mediante algoritmos de traducción estática canónica. Finalmente, ejecuta todos los bloques de código que son traducidos ya sea estática o dinámicamente manteniendo y cambiando correctamente sus contextos de ejecución. Para entrelazar correctamente las dos tipos de actividades de traducción, el método propuesto solo traduce el siguiente bloque de traducción que es independiente de datos del actual mediante el algoritmo de análisis de variables activas, y registra y comparte los estados intermedios de las actividades de traducción dinámica y estática a través de una estructura de datos cuidadosamente diseñada. En particular, se propone un mecanismo de recuperación de contexto basado en registros sombra para registrar correctamente el contexto de ejecución de bloques de traducción estáticos, y para recuperar correctamente el contexto para traducir y ejecutar dinámicamente bloques que no fueron traducidos estáticamente. También diseñamos un mecanismo de optimización de memoria adaptativa para liberar dinámicamente la memoria de los bloques de traducción mal predichos. Implementamos un marco de traducción binaria dinámico-estático mediante la extensión de QEMU, llamado BP-QEMU (QEMU con predicción de ramas). Evaluamos la corrección de la traducción de BP-QEMU utilizando los programas de prueba para los conjuntos de instrucciones ARM y PPC de QEMU, y evaluamos el rendimiento de BP-QEMU utilizando el código de referencia CoreMark. Los resultados experimentales muestran que BP-QEMU puede traducir las instrucciones de las arquitecturas ARM y PPC correctamente; además, la eficiencia de ejecución promedio del código CoreMark en BP-QEMU mejora en un 13.3% en comparación con la de QEMU.

Otros recursos que podrían interesarte

Temas Virtualpro