Abstract
The complexity of software is ever increasing, and it requires more and more computational resources for its execution. A way to satisfy these requirements is the use of vector instructions that can operate with fixed-length vectors of data of the same. A method for representing vector instructions of one processor architecture in terms of the vector instructions of another architecture during the dynamic binary translation is proposed. An implementation of this method that includes the translation of vector addition and memory access increased the performance of the QEMU emulator by a factor greater than three on an artificial example and 12% on a real-life application.
Similar content being viewed by others
References
AMD64 Architecture Programmer’s Manual, Vol. 4: 128-Bit and 256-Bit Media Instructions. https://support.amd.com/TechDocs/26568.pdf
ARM Architecture Reference Manual. ARMv7-A and ARMv7-R Edition. http://infocenter.arm.com/help/index.jsp?topic=//com.arm.doc.ddi0406c/index.html
AltiVecTM Technology Programming Environments Manual. http://www.nxp.com/docs/en/reference-manual/ALTIVECPEM.pdf
Eltechs ExaGear Desktop. Run x86 Applications on ARMbased Devices. https://eltechs.com/
ExaGear Desktop System Requirements (updated for v2.1). http://forum.eltechs.com/viewtopic.php?f=4&t=4&sid?61125b0cdd4fdc640dee682449c870
Nethercote, N. and Seward, J., Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, in Proc. of the ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (PLDI 2007), San Diego, Calif., 2007, vol. 42, no. 6, pp. 89–100.
Valgrind: Code Repository. http://valgrind.org/downloads/repository.html
Bellard, F., QEMU, A fast and portable dynamic translator, in Proc. of the Annual Conference on USENIX, 2005, pp. 41–46.
QEMU Documentation/TCG. http://wiki.qemu.org/Documentation/TCG
Aho, A., Lam, M., Sethi, R., and Ullman, J., Compilers: Principles, Techniques, & Tools, Boston: Pearson/Addison Wesley, 2007, 2nd ed.
Auto-vectorization in GCC — GNU Project — Free Software Foundation (FSF). https://gcc.gnu.org/projects/tree-ssa/vectorization.html
GCC, the GNU Compiler Collection. https://gcc.gnu.org/
x264, the best H.264/AVC encoder — VideoLAN. http://www.videolan.org/developers/x264.html
Author information
Authors and Affiliations
Corresponding author
Additional information
Original Russian Text © K.A. Batuzov, 2017, published in Programmirovanie, 2017, Vol. 43, No. 6.
Rights and permissions
About this article
Cite this article
Batuzov, K.A. The use of vector instructions of a processor architecture for emulating the vector instructions of another processor architecture. Program Comput Soft 43, 366–372 (2017). https://doi.org/10.1134/S0361768817060032
Received:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S0361768817060032