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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 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.
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.
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.
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.
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.
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.
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.
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.
Wir haben drei der neunzehn Benchmarks aus dem Vergleich herausgenommen, da sie auf dem echten HiFive1-Board nicht ausgeführt werden konnten.
Literatur
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)
A. Waterman, K. Asanović, The RISC-V Instruction Set Manual. Privileged architecture (SiFive Inc. and CS Division/EECS Department, University of California, Berkeley, 2019)
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
B. Bailey, G. Martin, A. Piziali, ESL Design and Verification: A Prescription for Electronic System Level Methodology (Morgan Kaufmann/Elsevier, New York, 2007)
D. Große, R. Drechsler, Quality-Driven SystemC Design (Springer, New York, 2010)
IEEE Standard 1666, IEEE Standard SystemC Language Reference Manual (2011)
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)
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
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
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
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
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)
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
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)
V. Herdt, D. Große, H.M. Le, R. Drechsler, Extensible and configurable RISC-V based virtual prototype, in FDL (2018), S. 5–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
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)
Spike RISC-V ISA simulator, https://github.com/riscv/riscv-isa-sim. Zugegriffen im 2020
RISCV-QEMU, https://github.com/riscv/riscv-qemu. Zugegriffen am 13 May 2018
RV8, https://rv8.io. Zugegriffen am 13 May 2018
DBT-RISE., https://github.com/Minres/DBT-RISE-Core. Zugegriffen am 04 March 2019
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)
Renode, https://renode.io/. Zugegriffen am 04 March 2019
Forvis: A formal RISC-V ISA specification, https://github.com/rsnikhil/RISCV-ISA-Spec. Zugegriffen im 2020
GRIFT – galois RISC-V ISA formal tools, https://github.com/GaloisInc/grift. Zugegriffen im 2020
RISCV sail model, https://github.com/rems-project/sail-riscv. Zugegriffen im 2020
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
RISC-V calling convention, https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf. Zugegriffen am 13 May 2018
HiFive1, https://www.sifive.com/boards/hifive1. Zugegriffen im 2020
RISC-V ISA tests, https://github.com/riscv/riscv-tests. Zugegriffen im 2020
RISC-V torture test generator, https://github.com/ucb-bar/riscv-torture. Zugegriffen im 2020
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
FreeRTOS., https://www.freertos.org/. Zugegriffen im 2020
Zephyr Project, https://www.zephyrproject.org/. Zugegriffen im 2020
A. Cimatti, I. Narasamdya, M. Roveri, Software model checking SystemC. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 32(5), 774–787 (2013)
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)
M.Y. Vardi, Formal techniques for SystemC verification, in Proceedings of the 44th annual Design Automation Conference (2007), S. 188–192
J. Yuan, C. Pixley, A. Aziz, Constraint-Based Verification (Springer, Berlin, 2006)
O. Bringmann, W. Ecker, A. Gerstlauer, A. Goyal, D. Mueller-Gritschneder, P. Sasidharan, S. Singh, The next generation of virtual prototyping: Ultra-fast yet accurate simulation of HW/SW systems, in Proceedings of the 2015 Design, Automation and Test in Europe (2015), S. 1698–1707
K. Lu, D. Müller-Gritschneder, U. Schlichtmann, Accurately timed transaction level models for virtual prototyping at high abstraction level, in Proceedings of the 2012 Design, Automation and Test in Europe (2012), S. 135–140
S. Ottlik, S. Stattelmann, A. Viehl, W. Rosenstiel, O. Bringmann, Context-sensitive timing simulation of binary embedded software, in CASES (2014), S. 1–10
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
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
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
A. Charif, G. Busnot, R. Mameesh, T. Sassolas, N. Ventroux, Fast virtual prototyping for embedded computing systems design and exploration, in RAPIDO Workshop (2019), S. 3:1–3:8
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)
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
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
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
Embench: A modern embedded benchmark suite, https://www.embench.org/. Zugegriffen im 2020
Embench: Open benchmarks for embedded platforms, https://github.com/embench/embench-iot. Zugegriffen am 07 Juli 2019
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
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2022 Der/die Autor(en), exklusiv lizenziert an Springer Nature Switzerland AG
About this chapter
Cite this chapter
Herdt, V., Große, D., Drechsler, R. (2022). Eine Open-Source RISC-V Evaluierungsplattform. In: Verbessertes virtuelles Prototyping. Springer Vieweg, Cham. https://doi.org/10.1007/978-3-031-18174-0_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-18174-0_3
Published:
Publisher Name: Springer Vieweg, Cham
Print ISBN: 978-3-031-18173-3
Online ISBN: 978-3-031-18174-0
eBook Packages: Computer Science and Engineering (German Language)