Eine Open-Source RISC-V Evaluierungsplattform

  • Chapter
  • First Online:
Verbessertes virtuelles Prototy**

Zusammenfassung

In diesem Kapitel wird ein quelloffener RISC-V virtueller Prototyp (VP) vorgestellt, der in SystemC TLM (Transaction Level Modeling) implementiert ist und das Ziel verfolgt, das RISC-V-Ökosystem zu erweitern. Der VP bietet einen 32/64-Bit-RISC-V-Kern mit einem wesentlichen Satz von Peripheriegeräten und Unterstützung für Multi-Core-Simulationen. Darüber hinaus bietet der VP auch SW-Debugging (über die Eclipse IDE) und Abdeckungsmessungen und unterstützt die Betriebssysteme FreeRTOS, Zephyr und Linux. Der VP ist als erweiterbare und konfigurierbare Plattform konzipiert (als Beispiel stellen wir eine Konfiguration zur Verfügung, die dem RISC-V HiFive1 Board von SiFive entspricht), mit einem generischen Bussystem und in standardkonformem SystemC implementiert. Der letzte Punkt ist sehr wichtig, da er die Nutzung modernster SystemC-basierter Modellierungstechniken ermöglicht, die für die genannten Anwendungsfälle auf Systemebene benötigt werden. Schließlich ermöglicht der VP eine deutlich schnellere Simulation im Vergleich zu RTL und ist dabei genauer als bestehende ISSs. Darüber hinaus integriert der VP ein effizientes Kern-Timing-Modell, das eine schnelle und genaue Leistungsbewertung für RISC-V-basierte Systeme ermöglicht. Das Timing-Modell ist mit dem Kern über eine Reihe klar definierter Schnittstellen verbunden, die die funktionalen von den nicht-funktionalen Aspekten entkoppeln und eine einfache Rekonfiguration des Timing-Modells ermöglichen.

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

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Erhältlich unter https://github.com/agra-uni-bremen/riscv-vp, und für weitere Informationen und die neuesten Updates besuchen Sie auch unsere Website unter www.systemc-verification.org/riscv-vp.

  2. 2.

    Unterstützung für die Integration mit der C/C++-Bibliothek ist ebenfalls verfügbar, z. B. durch Ausführung der Anweisungen am Anfang der Hauptfunktion oder durch direkte Integration in die Datei crt0.S, die den Einstiegspunkt der C-Bibliothek darstellt und ähnlich wie der Bare-Metal-Code die Hauptfunktion nach Durchführung einiger grundlegender Initialisierungsaufgaben aufruft.

  3. 3.

    Es ist auch möglich, einen Trap-Handler auszuführen, der dem im vorigen Abschnitt beschriebenen Interrupt-Handler ähnelt (z. B. im Wesentlichen ein Sprung zum Level-0-Interrupt-Handler, wobei die mcause-CSR auf den Syscall-Identifier gesetzt wird), und dann das Schreiben z. B. an eine UART/Terminal-Komponente umzuleiten.

  4. 4.

    Insbesondere die frei verfügbare RISC-V-Portierung des GDB, der den verfügbaren RISC-V-Registersatzund CSRs kennt, sowie eine Disassemblierung des RISC-V-Befehlssatzes liefern kann.

  5. 5.

    Bitte beachten Sie, dass der SystemC-Kernel keine Multi-Thread-Simulationsumgebung verwendet, sondern jeweils einen Prozess (d. h. einen Kern) ausführt und zwischen den Prozessen umschaltet.

  6. 6.

    Dazu gehören ein genaueres Timing durch die Nutzung von SystemC, eine anweisungsgenaue Interrupt-Behandlung und die Möglichkeit, TLM-2.0-Speichertransaktionen zu integrieren. Außerdem integrieren wir im Vergleich zu QEMU derzeit keine DBT (Dynamic Binary Translation).

  7. 7.

    Eine 10x kleinere Version von qsort wurde erfolgreich innerhalb von 700,22 s auf SAIL abgeschlossen, und daher kann diese Zeitüberschreitung auch auf ein speicherbezogenes Problem in SAIL hinweisen (da qsort eine beträchtliche Menge an Speicher für das zu sortierende große Array benötigt).

  8. 8.

    Diese (dynamische) Übersetzung von RISC-V-Befehlen in den Simulations-Host-Befehlssatz sollte auch (z. B.) die Timing-Informationen der SystemC-Simulation beibehalten, um einen Verlust an Genauigkeit im Simulations-Timing-Modell zu vermeiden.

  9. 9.

    Wir haben drei der neunzehn Benchmarks aus dem Vergleich herausgenommen, da sie auf dem echten HiFive1-Board nicht ausgeführt werden konnten.

Literatur

  1. A. Waterman, K. Asanović, in The RISC-V Instruction Set Manual. Unprivileged ISA, vol. I (SiFive Inc. and CS Division/EECS Department, University of California, Berkeley, 2019)

    Google Scholar 

  2. A. Waterman, K. Asanović, The RISC-V Instruction Set Manual. Privileged architecture (SiFive Inc. and CS Division/EECS Department, University of California, Berkeley, 2019)

    Google Scholar 

  3. R. Leupers, F. Schirrmeister, G. Martin, T. Kogel, R. Plyaskin, A. Herkersdorf, M. Vaupel, Virtual platforms: Breaking new grounds, in Proceedings of the 2012 Design, Automation and Test in Europe (2012), S. 685–690

    Google Scholar 

  4. B. Bailey, G. Martin, A. Piziali, ESL Design and Verification: A Prescription for Electronic System Level Methodology (Morgan Kaufmann/Elsevier, New York, 2007)

    Google Scholar 

  5. D. Große, R. Drechsler, Quality-Driven SystemC Design (Springer, New York, 2010)

    Book  Google Scholar 

  6. IEEE Standard 1666, IEEE Standard SystemC Language Reference Manual (2011)

    Google Scholar 

  7. K. Grüttner, R. Görgen, S. Schreiner, F. Herrera, P. Peñil, J. Medina, E. Villar, G. Palermo, W. Fornaciari, C. Brandolese, D. Gadioli, E. Vitali, D. Zoni, S. Bocchio, L. Ceva, P. Azzoni, M. Poncino, S. Vinco, E. Macii, S. Cusenza, J. Favaro, R. Valencia, I. Sander, K. Rosvall, N. Khalilzad, D. Quaglia, CONTREX: Design of embedded mixed-criticality CONTRol systems under consideration of EXtra-functional properties. MICPRO 51, 39–55 (2017)

    Google Scholar 

  8. M. Hassan, V. Herdt, H.M. Le, D. Große, R. Drechsler, Early SoC security validation by VP-based static information flow analysis, in Proceedings of the 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD) (2017), S. 400–407

    Google Scholar 

  9. V. Herdt, H.M. Le, D. Große, R. Drechsler, On the application of formal fault localization to automated RTL-to-TLM fault correspondence analysis for fast and accurate VP-based error effect simulation – A case study, in FDL (2016), S. 1–8

    Google Scholar 

  10. V. Herdt, H.M. Le, D. Große, R. Drechsler, Towards early validation of firmware-based power management using virtual prototypes: A constrained random approach, in FDL (2017), S. 1–8

    Google Scholar 

  11. G. Onnebrink, R. Leupers, G. Ascheid, S. Schürmans, Black box ESL power estimation for loosely-timed TLM models, in Proceedings of the 2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (2016), S. 366–371

    Google Scholar 

  12. P. Pieper, V. Herdt, D. Große, R. Drechsler, Dynamic information flow tracking for embedded binaries using SystemC-based virtual prototypes, in Design Automation Conference (2020)

    Google Scholar 

  13. M. Streubühr, R. Rosales, R. Hasholzner, C. Haubelt, J. Teich, ESL power and performance estimation for heterogeneous mpsocs using SystemC, in FDL (2011), S. 1–8

    Google Scholar 

  14. V. Herdt, D. Große, H. M. Le, R. Drechsler, Extensible and configurable RISC-V based virtual prototype, in Selected Contributions from FDL (Springer, Berlin, 2018)

    Google Scholar 

  15. V. Herdt, D. Große, H.M. Le, R. Drechsler, Extensible and configurable RISC-V based virtual prototype, in FDL (2018), S. 5–16

    Google Scholar 

  16. V. Herdt, D. Große, P. Pieper, R. Drechsler, RISC-V based virtual prototype: An extensible and configurable platform for the system-level. J. Syst. Archit. Embedded Soft. Des. 109, 101756 (2020), https://www.sciencedirect.com/science/article/abs/pii/S1383762120300503

  17. V. Herdt, D. Große, R. Drechsler, Fast and accurate performance evaluation for RISC-V using virtual prototypes, in Proceedings of the 2020 Design, Automation and Test in Europe (2020)

    Google Scholar 

  18. Spike RISC-V ISA simulator, https://github.com/riscv/riscv-isa-sim. Zugegriffen im 2020

  19. RISCV-QEMU, https://github.com/riscv/riscv-qemu. Zugegriffen am 13 May 2018

  20. RV8, https://rv8.io. Zugegriffen am 13 May 2018

  21. DBT-RISE., https://github.com/Minres/DBT-RISE-Core. Zugegriffen am 04 March 2019

  22. N. Binkert, B. Beckmann, G. Black, S. K. Reinhardt, A. Saidi, A. Basu, J. Hestness, D. R. Hower, T. Krishna, S. Sardashti, R. Sen, K. Sewell, M. Shoaib, N. Vaish, M. D. Hill, D. A. Wood, The gem5 simulator. SIGARCH Comput. Archit. News 39(2), 1–7 (2011)

    Article  Google Scholar 

  23. Renode, https://renode.io/. Zugegriffen am 04 March 2019

  24. Forvis: A formal RISC-V ISA specification, https://github.com/rsnikhil/RISCV-ISA-Spec. Zugegriffen im 2020

  25. GRIFT – galois RISC-V ISA formal tools, https://github.com/GaloisInc/grift. Zugegriffen im 2020

  26. RISCV sail model, https://github.com/rems-project/sail-riscv. Zugegriffen im 2020

  27. T. Schuster, R. Meyer, R. Buchty, L. Fossati, M. Berekovic, Socrocket – A virtual platform for the European space agency’s SoC development, in ReCoSoC (2014), S. 1–7, http://github.com/socrocket. Zugegriffen im 2020

  28. RISC-V calling convention, https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf. Zugegriffen am 13 May 2018

  29. HiFive1, https://www.sifive.com/boards/hifive1. Zugegriffen im 2020

  30. RISC-V ISA tests, https://github.com/riscv/riscv-tests. Zugegriffen im 2020

  31. RISC-V torture test generator, https://github.com/ucb-bar/riscv-torture. Zugegriffen im 2020

  32. V. Herdt, D. Große, H.M. Le, R. Drechsler, Verifying instruction set simulators using coverage-guided fuzzing, in Proceedings of the 2019 Design, Automation and Test in Europe (2019), S. 360–365

    Google Scholar 

  33. FreeRTOS., https://www.freertos.org/. Zugegriffen im 2020

  34. Zephyr Project, https://www.zephyrproject.org/. Zugegriffen im 2020

  35. A. Cimatti, I. Narasamdya, M. Roveri, Software model checking SystemC. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 32(5), 774–787 (2013)

    Article  Google Scholar 

  36. V. Herdt, H. M. Le, D. Große, R. Drechsler, Verifying SystemC using intermediate verification language and stateful symbolic simulation. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 38(7), 1359–1372 (2019)

    Article  Google Scholar 

  37. M.Y. Vardi, Formal techniques for SystemC verification, in Proceedings of the 44th annual Design Automation Conference (2007), S. 188–192

    Google Scholar 

  38. J. Yuan, C. Pixley, A. Aziz, Constraint-Based Verification (Springer, Berlin, 2006)

    MATH  Google Scholar 

  39. O. Bringmann, W. Ecker, A. Gerstlauer, A. Goyal, D. Mueller-Gritschneder, P. Sasidharan, S. Singh, The next generation of virtual prototy**: Ultra-fast yet accurate simulation of HW/SW systems, in Proceedings of the 2015 Design, Automation and Test in Europe (2015), S. 1698–1707

    Google Scholar 

  40. K. Lu, D. Müller-Gritschneder, U. Schlichtmann, Accurately timed transaction level models for virtual prototy** at high abstraction level, in Proceedings of the 2012 Design, Automation and Test in Europe (2012), S. 135–140

    Google Scholar 

  41. S. Ottlik, S. Stattelmann, A. Viehl, W. Rosenstiel, O. Bringmann, Context-sensitive timing simulation of binary embedded software, in CASES (2014), S. 1–10

    Google Scholar 

  42. S. Stattelmann, G. Gebhard, C. Cullmann, O. Bringmann, W. Rosenstiel, Hybrid source-level simulation of data caches using abstract cache models, in Proceedings of the 2012 Design, Automation and Test in Europe (2012), S. 376–381

    Google Scholar 

  43. Z. Wang, J. Henkel, Fast and accurate cache modeling in source-level simulation of embedded software, in Proceedings of the 2013 Design, Automation and Test in Europe (2013), S. 587–592

    Google Scholar 

  44. Z. Wang, K. Lu, A. Herkersdorf, An approach to improve accuracy of source-level tlms of embedded software, in Proceedings of the 2011 Design, Automation and Test in Europe (2011), S. 1–6

    Google Scholar 

  45. A. Charif, G. Busnot, R. Mameesh, T. Sassolas, N. Ventroux, Fast virtual prototy** for embedded computing systems design and exploration, in RAPIDO Workshop (2019), S. 3:1–3:8

    Google Scholar 

  46. M. Chiang, T. Yeh, G. Tseng, A QEMU and SystemC-based cycle-accurate ISS for performance estimation on SoC development. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30(4), 593–606 (2011)

    Article  Google Scholar 

  47. I. Böhm, B. Franke, N. Topham, Cycle-accurate performance modelling in an ultra-fast just-in-time dynamic binary translation instruction set simulator, in Proceedings of the 2010 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (2010), S. 1–10

    Google Scholar 

  48. D. Thach, Y. Tamiya, S. Kuwamura, A. Ike, Fast cycle estimation methodology for instruction-level emulator, in Proceedings of the 2012 Design, Automation and Test in Europe (2012), S. 248–251

    Google Scholar 

  49. SiFive FE310-G000 Manual v2p3 (2017), Zugegriffen am 28 June 2019. https://sifive.cdn.prismic.io/sifive%2F4d063bf8-3ae6-4db6-9843-ee9076ebadf7_fe310-g000.pdf. Zugegriffen am 03 April 2019

  50. Embench: A modern embedded benchmark suite, https://www.embench.org/. Zugegriffen im 2020

  51. Embench: Open benchmarks for embedded platforms, https://github.com/embench/embench-iot. Zugegriffen am 07 Juli 2019

  52. J. Bennett, P. Dabbelt, C. Garlati, G.S. Madhusudan, T. Mudge, D. Patterson, Embench: An evolving benchmark suite for embedded iot computers from an academic-industrial cooperative (2019), https://content.riscv.org/wp-content/uploads/2019/06/9.25-Embench-RISC-V-Workshop-Patterson-v3.pdf. Zugegriffen am 07 juli 2019

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Der/die Autor(en), exklusiv lizenziert an Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Herdt, V., Große, D., Drechsler, R. (2022). Eine Open-Source RISC-V Evaluierungsplattform. In: Verbessertes virtuelles Prototy**. Springer Vieweg, Cham. https://doi.org/10.1007/978-3-031-18174-0_3

Download citation

Publish with us

Policies and ethics

Navigation