Table of Contents
Fetching ...

AutoModel: Automatic Synthesis of Models from Communication Traces of SoC Designs

Md Rubel Ahmed, Bardia Nadimi, Hao Zheng

TL;DR

An approach to automatically inferring concise and abstract models from SoC communication traces, capturing the system-level protocols that govern co-ordinations among design blocks for various system functions is presented.

Abstract

Modeling system-level behaviors of intricate System-on-Chip (SoC) designs is crucial for design analysis, testing, and validation. However, the complexity and volume of SoC traces pose significant challenges in this task. This paper proposes an approach to automatically infer concise and abstract models from SoC communication traces, capturing the system-level protocols that govern message exchange and coordination between design blocks for various system functions. This approach, referred to as model synthesis, constructs a causality graph with annotations obtained from the SoC traces. The annotated causality graph represents all potential causality relations among messages under consideration. Next, a constraint satisfaction problem is formulated from the causality graph, which is then solved by a satisfiability modulo theories (SMT) solver to find satisfying solutions. Finally, finite state models are extracted from the generated solutions, which can be used to explain and understand the input traces. The proposed approach is validated through experiments using synthetic traces obtained from simulating a transaction-level model of a multicore SoC design and traces collected from running real programs on a realistic multicore SoC modeled with gem5.

AutoModel: Automatic Synthesis of Models from Communication Traces of SoC Designs

TL;DR

An approach to automatically inferring concise and abstract models from SoC communication traces, capturing the system-level protocols that govern co-ordinations among design blocks for various system functions is presented.

Abstract

Modeling system-level behaviors of intricate System-on-Chip (SoC) designs is crucial for design analysis, testing, and validation. However, the complexity and volume of SoC traces pose significant challenges in this task. This paper proposes an approach to automatically infer concise and abstract models from SoC communication traces, capturing the system-level protocols that govern message exchange and coordination between design blocks for various system functions. This approach, referred to as model synthesis, constructs a causality graph with annotations obtained from the SoC traces. The annotated causality graph represents all potential causality relations among messages under consideration. Next, a constraint satisfaction problem is formulated from the causality graph, which is then solved by a satisfiability modulo theories (SMT) solver to find satisfying solutions. Finally, finite state models are extracted from the generated solutions, which can be used to explain and understand the input traces. The proposed approach is validated through experiments using synthetic traces obtained from simulating a transaction-level model of a multicore SoC design and traces collected from running real programs on a realistic multicore SoC modeled with gem5.
Paper Structure (31 sections, 8 equations, 14 figures, 5 tables, 4 algorithms)

This paper contains 31 sections, 8 equations, 14 figures, 5 tables, 4 algorithms.

Figures (14)

  • Figure 1: CPU downstream read flows. (a) Definitions of messages, (b) Message sequence diagram for the flows. This diagram is parameterized with $x$ which can be $0$ or $1$.
  • Figure 2: A FSA model for message flows in Fig. \ref{['fig:flow-ex']}.
  • Figure 3: FSA model produced using the method in natasa2020 for trace (\ref{['eq:tr-2']}).
  • Figure 4: Messages and causality graph constructed from trace $(\ref{['eq:tr-4']})$.
  • Figure 5: (a) The modified causality graph showing a consistent solution derived from the trace $(\ref{['eq:tr-4']})$, and (b) the corresponding FSA model.
  • ...and 9 more figures

Theorems & Definitions (2)

  • Definition 3.1
  • Definition 3.2