Table of Contents
Fetching ...

NISTT: A Non-Intrusive SystemC-TLM 2.0 Tracing Tool

Nils Bosbach, Lukas Jünger, Jan Moritz Joseph, Rainer Leupers

TL;DR

The paper tackles profiling complexity in SystemC-tlm-2.0 virtual platforms by introducing NISTT, a non-intrusive tracing tool that requires no access to source code or debug symbols. It achieves this by using LD_PRELOAD to intercept SystemC API calls, recording wait, notify, and timing data, and storing results in a database for post-processing, including a real-time factor metric $RTF = rac{ riangle t_{sim}}{ riangle t_{real}}$. The authors validate the approach with a case study tracing the Linux boot on a vcml-based ARMv8 virtual platform, demonstrating meaningful insights into scheduling, peripheral interactions, and idle behavior, while showing overhead dominated by data volume rather than intrusion. The work demonstrates that non-intrusive tracing can yield deep ESL-simulation insights without modifying the target simulation, and it can be extended to cover additional SystemC functions as needed.

Abstract

The increasing complexity of systems-on-a-chip requires the continuous development of electronic design automation tools. Nowadays, the simulation of systems-on-a-chip using virtual platforms is common. Virtual platforms enable hardware/software co-design to shorten the time to market, offer insights into the models, and allow debugging of the simulated hardware. Profiling tools are required to improve the usability of virtual platforms. During simulation, these tools capture data that are evaluated afterward. Those data can reveal information about the simulation itself and the software executed on the platform. This work presents the tracing tool NISTT that can profile SystemC-TLM-2.0-based virtual platforms. NISTT is implemented in a completely non-intrusive way. That means no changes in the simulation are needed, the source code of the simulation is not required, and the traced simulation does not need to contain debug symbols. The standardized SystemC application programming interface guarantees the compatibility of NISTT with other simulations. The strengths of NISTT are demonstrated in a case study. Here, NISTT is connected to a virtual platform and traces the boot process of Linux. After the simulation, the database created by NISTT is evaluated, and the results are visualized. Furthermore, the overhead of NISTT is quantified. It is shown that NISTT has only a minor influence on the overall simulation performance.

NISTT: A Non-Intrusive SystemC-TLM 2.0 Tracing Tool

TL;DR

The paper tackles profiling complexity in SystemC-tlm-2.0 virtual platforms by introducing NISTT, a non-intrusive tracing tool that requires no access to source code or debug symbols. It achieves this by using LD_PRELOAD to intercept SystemC API calls, recording wait, notify, and timing data, and storing results in a database for post-processing, including a real-time factor metric . The authors validate the approach with a case study tracing the Linux boot on a vcml-based ARMv8 virtual platform, demonstrating meaningful insights into scheduling, peripheral interactions, and idle behavior, while showing overhead dominated by data volume rather than intrusion. The work demonstrates that non-intrusive tracing can yield deep ESL-simulation insights without modifying the target simulation, and it can be extended to cover additional SystemC functions as needed.

Abstract

The increasing complexity of systems-on-a-chip requires the continuous development of electronic design automation tools. Nowadays, the simulation of systems-on-a-chip using virtual platforms is common. Virtual platforms enable hardware/software co-design to shorten the time to market, offer insights into the models, and allow debugging of the simulated hardware. Profiling tools are required to improve the usability of virtual platforms. During simulation, these tools capture data that are evaluated afterward. Those data can reveal information about the simulation itself and the software executed on the platform. This work presents the tracing tool NISTT that can profile SystemC-TLM-2.0-based virtual platforms. NISTT is implemented in a completely non-intrusive way. That means no changes in the simulation are needed, the source code of the simulation is not required, and the traced simulation does not need to contain debug symbols. The standardized SystemC application programming interface guarantees the compatibility of NISTT with other simulations. The strengths of NISTT are demonstrated in a case study. Here, NISTT is connected to a virtual platform and traces the boot process of Linux. After the simulation, the database created by NISTT is evaluated, and the results are visualized. Furthermore, the overhead of NISTT is quantified. It is shown that NISTT has only a minor influence on the overall simulation performance.
Paper Structure (9 sections, 1 equation, 5 figures, 3 tables)

This paper contains 9 sections, 1 equation, 5 figures, 3 tables.

Figures (5)

  • Figure 1: NISTT approach.
  • Figure 2: NISTT working principle.
  • Figure 3: avp64 architecture.
  • Figure 4: Tracing results of the first 2s of Linux boot.
  • Figure 5: Overhead of tracing during Linux boot simulation for the intrusive (I) and non-intrusive (NI) implementations. Results of $20$ runs.