Skip to main content

Multiprocessor System-on-Chip Prototyping Using Dynamic Binary Translation

  • Reference work entry
  • First Online:
Handbook of Hardware/Software Codesign

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 699.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 949.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Abbreviations

DBT:

Dynamic Binary Translation

ILP:

Instruction-Level Parallelism

ISA:

Instruction-Set Architecture

ISS:

Instruction-Set Simulator

MMU:

Memory Management Unit

MPSoC:

Multi-Processor System-on-Chip

OS:

Operating System

RTL:

Register Transfer Level

SIMD:

Single Instruction, Multiple Data

SMP:

Symmetric Multi-Processing

SSA:

Static Single Assignment

TB:

Translation Block

TLM:

Transaction-Level Model

VLIW:

Very Long Instruction Word

VP:

Virtual Prototype

WAR:

Write-After-Read

References

  1. Aarno D, Engblom J (2014) Software and system development using virtual platforms: full-system simulation with wind river simics. Morgan Kaufmann, Waltham

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  4. Bell JR (1973) Threaded code. Commun ACM 16(6):370–372

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  7. Creasy RJ (1981) The origin of the VM/370 time-sharing system. IBM J Res Dev 25(5):483–490

    Article  Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  12. Duesterwald E, Bala V (2000) Software profiling for hot path prediction: less is more. ACM SIGARCH Comput Archit News 28(5):202–211

    Article  Google Scholar 

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

    Google Scholar 

  14. Flamand E (2009) Strategic directions towards multicore application specific computing. In: IEEE/ACM conference on design, automation & test in Europe, pp 1266–1266

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  18. Lethin R (2009) How vliw almost disappeared-and then proliferated. IEEE Solid-State Circuits Mag 1(3):15–23

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  22. Mitchell JG (1970) The design and construction of flexible and efficient interactive programming systems. PhD thesis, Carnegie-Mellon University, Pittsburgh

    Google Scholar 

  23. Monton M, Carrabina J, Burton M (2009) Mixed simulation kernels for high performance virtual platforms. In: Forum on specification & design languages, pp 1–6

    Google Scholar 

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

    Article  Google Scholar 

  25. Popek GJ, Goldberg RP (1974) Formal requirements for virtualizable third generation architectures. Commun ACM 17(7):412–421

    Article  MathSciNet  MATH  Google Scholar 

  26. Rohou E, Williams K, Yuste D (2013) Vectorization technology to improve interpreter performance. ACM Trans Archit Code Optim (TACO) 9(4):1–22

    Article  Google Scholar 

  27. Seznec A, Michaud P (2006) A case for (partially) tagged geometric history length branch prediction. J Instr Lev Parall 8:1–23

    Google Scholar 

  28. Sites RL, Chernoff A, Kirk MB, Marks MP, Robinson SG (1993) Binary translation. Commun ACM 36(2):69–81. doi:10.1145/151220.151227

    Article  Google Scholar 

  29. Ung D, Cifuentes C (2000) Machine-adaptable dynamic binary translation. ACM SIGPLAN Not 35(7):41–51

    Article  Google Scholar 

  30. Witchel E, Rosenblum M (1996) Embra: fast and flexible machine simulation. ACM SIGMETRICS Perform Eval Rev 24(1):68–79

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Frédéric Pétrot .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer Science+Business Media Dordrecht

About this entry

Cite this entry

Pétrot, F., Michel, L., Deschamps, C. (2017). Multiprocessor 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-7267-9_20

Download citation

Publish with us

Policies and ethics