Abstract
Dynamic binary translation is a processor emulation technology that allows to execute in a very efficient manner a binary program for an instruction-set architecture A on a processor having instruction-set architecture B. This chapter starts by giving a rapid overview of the dynamic binary translation process and its peculiarities. Then, it focuses on the support for SIMD instruction and the translation for VLIW architectures, which bring upfront new challenges for this technology. Next, it shows how the translation process can be enhanced by the insertion of instructions to monitor nonfunctional metrics, with the aim of giving, for instance, timing or power consumption estimations. Finally, it details how it can be integrated within virtual prototyping platforms, looking in particular at the synchronization issues.
Similar content being viewed by others
References
Aarno D, Engblom J (2014) Software and system development using virtual platforms: full-system simulation with wind river simics. Morgan Kaufmann, Waltham
Baraz L, Devor T, Etzion O, Goldenberg S, Skaletsky A, Wang Y, Zemach Y (2003) Ia-32 execution layer: a two-phase dynamic translator designed to support IA-32 applications on itanium®;-based systems. In: Proceedings of the 36th annual IEEE/ACM international symposium on microarchitecture, pp 191–201
Becker M, Baldin D, Kuznik C, Joy MM, Xie T, Mueller W (2012) Xemu: an efficient qemu based binary mutation testing framework for embedded software. In: Proceedings of the tenth ACM international conference on Embedded software. ACM, pp 33–42
Bell JR (1973) Threaded code. Commun ACM 16(6):370–372
Cai L, Gajski D (2003) Transaction level modeling: an overview. In: Proceedings of the 1st IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis. ACM, pp 19–24
Cmelik B, Keppel D (1994) Shade: a fast instruction-set simulator for execution profiling. In: Proceedings of the 1994 ACM SIGMETRICS conference on measurement and modeling of computer systems, pp 128–137
Creasy RJ (1981) The origin of the VM/370 time-sharing system. IBM J Res Dev 25(5):483–490
Cunha M, Fournel N, Pétrot F (2015) Collecting traces in dynamic binary translation based virtual prototyping platforms. In: Proceedings of the 2015 workshop on rapid simulation and performance evaluation: methods and tools. ACM, p 4
Cytron R, Ferrante J, Rosen BK, Wegman MN, Zadeck FK (1991) Efficiently computing static single assignment form and the control dependence graph. ACM Trans Program Lang Syst 13:451–490
de Dinechin BD, Ayrignac R, Beaucamps PE, Couvert P, Ganne B, de Massas PG, Jacquet F, Jones S, Chaisemartin NM, Riss F, Strudel T (2013) A clustered manycore processor architecture for embedded and accelerated applications. In: IEEE high performance extreme computing conference. IEEE, pp 1–6
Deutsch LP, Schiffman AM (1984) Efficient implementation of the smalltalk-80 system. In: 11th ACM SIGACT-SIGPLAN symposium on principles of programming languages, pp 297–302
Duesterwald E, Bala V (2000) Software profiling for hot path prediction: less is more. ACM SIGARCH Comput Archit News 28(5):202–211
Faravelon A, Fournel N, Pétrot F (2015) Fast and accurate branch predictor simulation. In: Proceedings of the design automation and test in Europe conference. ACM, pp 317–320
Flamand E (2009) Strategic directions towards multicore application specific computing. In: IEEE/ACM conference on design, automation & test in Europe, pp 1266–1266
Ghenassia F, Clouard A (2005) TLM: an overview and brief history. In: Ghenassia F (ed) Transaction level modeling with SystemC: TLM concepts and applications for embedded systems. Springer, Dordrecht
Gligor M, Fournel N, Pétrot F (2009) Using binary translation in event driven simulation for fast and flexible MPSoC simulation. In: Proceedings of the 7th IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis, Grenoble, pp 71–80
Hawkins B, Demsky B, Bruening D, Zhao Q (2015) Optimizing binary translation of dynamically generated code. In: Proceedings of the 13th annual IEEE/ACM international symposium on code generation and optimization. IEEE Computer Society, pp 68–78
Lethin R (2009) How vliw almost disappeared-and then proliferated. IEEE Solid-State Circuits Mag 1(3):15–23
Leupers R, Eeckhout L, Martin G, Schirrmeister F, Topham N, Chen X (2011) Virtual manycore platforms: moving towards 100+ processor cores. In: Design, automation & test in Europe conference & exhibition (DATE), 2011. IEEE, pp 1–6
Li J, Zhang Q, Xu S, Huang B (2006) Optimizing dynamic binary translation for simd instructions. In: Proceedings of the international symposium on code generation and optimization, pp 269–280
Michel L, Fournel N, Pétrot F (2011) Speeding-up simd instructions dynamic binary translation in embedded processor simulation. In: Proceedings of the design, automation & test in Europe conference, pp 277–280
Mitchell JG (1970) The design and construction of flexible and efficient interactive programming systems. PhD thesis, Carnegie-Mellon University, Pittsburgh
Monton M, Carrabina J, Burton M (2009) Mixed simulation kernels for high performance virtual platforms. In: Forum on specification & design languages, pp 1–6
Pétrot F, Fournel N, Gerin P, Gligor M, Hamayun MM, Shen H (2011) On mpsoc software execution at the transaction level. IEEE Des Test Comput 28(3):32–43
Popek GJ, Goldberg RP (1974) Formal requirements for virtualizable third generation architectures. Commun ACM 17(7):412–421
Rohou E, Williams K, Yuste D (2013) Vectorization technology to improve interpreter performance. ACM Trans Archit Code Optim (TACO) 9(4):1–22
Seznec A, Michaud P (2006) A case for (partially) tagged geometric history length branch prediction. J Instr Lev Parall 8:1–23
Sites RL, Chernoff A, Kirk MB, Marks MP, Robinson SG (1993) Binary translation. Commun ACM 36(2):69–81. doi:10.1145/151220.151227
Ung D, Cifuentes C (2000) Machine-adaptable dynamic binary translation. ACM SIGPLAN Not 35(7):41–51
Witchel E, Rosenblum M (1996) Embra: fast and flexible machine simulation. ACM SIGMETRICS Perform Eval Rev 24(1):68–79
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer Science+Business Media Dordrecht
About this entry
Cite this entry
Pétrot, F., Michel, L., Deschamps, C. (2016). Multi-Processor System-on-Chip Prototyping Using Dynamic Binary Translation. In: Ha, S., Teich, J. (eds) Handbook of Hardware/Software Codesign. Springer, Dordrecht. https://doi.org/10.1007/978-94-017-7358-4_20-1
Download citation
DOI: https://doi.org/10.1007/978-94-017-7358-4_20-1
Received:
Accepted:
Published:
Publisher Name: Springer, Dordrecht
Print ISBN: 978-94-017-7358-4
Online ISBN: 978-94-017-7358-4
eBook Packages: Springer Reference EngineeringReference Module Computer Science and Engineering