Skip to main content
Log in

The use of vector instructions of a processor architecture for emulating the vector instructions of another processor architecture

  • Published:
Programming and Computer Software Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. AMD64 Architecture Programmer’s Manual, Vol. 4: 128-Bit and 256-Bit Media Instructions. https://support.amd.com/TechDocs/26568.pdf

  2. ARM Architecture Reference Manual. ARMv7-A and ARMv7-R Edition. http://infocenter.arm.com/help/index.jsp?topic=//com.arm.doc.ddi0406c/index.html

  3. AltiVecTM Technology Programming Environments Manual. http://www.nxp.com/docs/en/reference-manual/ALTIVECPEM.pdf

  4. Eltechs ExaGear Desktop. Run x86 Applications on ARMbased Devices. https://eltechs.com/

  5. ExaGear Desktop System Requirements (updated for v2.1). http://forum.eltechs.com/viewtopic.php?f=4&t=4&sid?61125b0cdd4fdc640dee682449c870

  6. 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.

    Article  Google Scholar 

  7. Valgrind: Code Repository. http://valgrind.org/downloads/repository.html

  8. Bellard, F., QEMU, A fast and portable dynamic translator, in Proc. of the Annual Conference on USENIX, 2005, pp. 41–46.

    Google Scholar 

  9. QEMU Documentation/TCG. http://wiki.qemu.org/Documentation/TCG

  10. Aho, A., Lam, M., Sethi, R., and Ullman, J., Compilers: Principles, Techniques, & Tools, Boston: Pearson/Addison Wesley, 2007, 2nd ed.

    MATH  Google Scholar 

  11. Auto-vectorization in GCC — GNU Project — Free Software Foundation (FSF). https://gcc.gnu.org/projects/tree-ssa/vectorization.html

  12. GCC, the GNU Compiler Collection. https://gcc.gnu.org/

  13. x264, the best H.264/AVC encoder — VideoLAN. http://www.videolan.org/developers/x264.html

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to K. A. Batuzov.

Additional information

Original Russian Text © K.A. Batuzov, 2017, published in Programmirovanie, 2017, Vol. 43, No. 6.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1134/S0361768817060032

Navigation