# Improving Symbolic System-Level Synthesis by Solver Coordination and Domain-Specific Heuristics
## 4 System Model
### Application Model  
Our application model is derived from periodic control applications, e.g., from the automotive domain, where each application \(A_{i}\) has to be bound, routed and scheduled on the shared resources represented by our platform model. An independent application \(A_{i}\in\mathbf{A}\) from the set of applications \(\mathbf{A}\) is represented by the tuple  
\[A_{i}=(g_{i}^{A},P_{i},D_{i}). \tag{1}\]  
Applications in hard real-time systems often control potential safety critical mechanical components and therefore request to be executed periodically with the strict period \(P_{i}\). In order to guarantee stability of the physical plant under control, the control algorithms implemented in applications \(A_{i}\in\mathbf{A}\) have to complete all computation and communication before the constraint relative deadline \(D_{i}\leq P_{i}\). The communication dependencies in an application \(A_{i}\) are defined by an acyclic directed connected graph \(g_{i}^{A}=(\mathbf{T}_{i},\mathbf{E}_{i}^{A})\), the application graph (cf. the graph in Figure 4). The set of nodes \(\mathbf{T}_{i}=\mathbf{T}_{i}^{\dagger}\cup\mathbf{T}_{i}^{\mu}\) is the union of the set of computational tasks of an application \(\mathbf{T}_{i}^{\dagger}\) and the set of messages of an application \(\mathbf{T}_{i}^{m}\). The directed edges \(\mathbf{E}_{i}^{A}\subseteq(\mathbf{T}_{i}^{\dagger}\times\mathbf{T}_{i}^{m}) \cup(\mathbf{T}_{i}^{m}\times\mathbf{T}_{i}^{\dagger})\) specify the data dependencies between between computational tasks and messages or vice versa. Each computational task \(t\in\mathbf{T}_{i}^{t}\) is associated with a worst-case execution time (WCET) \(C_{t}^{r}\in\mathbb{N}\) for each PE \(r\in\mathbf{R}_{pe}\) of a heterogeneous hardware platform. Note that we write all execution times or delays in units of clock cycles of the global clock of the hardware platform, such that \(P_{i},D_{i}\in\mathbb{N}\), too. For accuracy, the utilization of a computational task \(t\in\mathbf{T}_{i}^{t}\) on a PE \(r\in\mathbf{R}_{pe}\) is defined in per mill as \(U_{t}^{r}=\lceil(1000\cdot C_{t}^{r})/P_{t}\rceil\) (\(U_{t}^{r}\in\mathbb{N}\)). If a platform only contains homogeneous PEs, we simplify the equal WCET of each computational task on all tiles to \(C_{t}\) and likewise the utilization of a task to \(U_{t}\). Furthermore, as a result of task scheduling in the system synthesis process (see Section 6), each computational task \(t\in\mathbf{T}_{i}^{t}\) is assigned a start time \(\mathbf{s}_{t}^{r}\) of a time-triggered schedule on the PE \(r\in\mathbf{R}_{pe}\) it is executed on. During the system's runtime, a computational task is executed without preemption in the time frame \([k\cdot P_{i}+\mathbf{s}_{t}^{r},k\cdot P_{i}+\mathbf{s}_{t}^{r}+C_{t}^{r}]\) with \(k\in\mathbb{N}\). Messages \(m\in\mathbf{T}_{i}^{m}\) of application \(A_{i}\) are the high-level entities that are exchanged between computational tasks for communication. Following [3], we assume that packets are the atomic entities transferred on the NoC. Depending on the amount of data in a message and the size of a data word of the hardware platform, a message is divided into several packets for the transfer on the NoC. For each message \(m\in\mathbf{T}_{i}^{m}\), the set of packets \(\mathbf{P}^{m}=\{p_{1}^{m},p_{2}^{m},\ldots\}\) summarizes the decomposition of a message into packets. As packets are the atomic entities transferred on the NoC, we define for each resource of the NoC \(r\in\mathbf{R}_{ni}\cup\mathbf{R}_{trtr}\) a processing delay \(C_{p}^{r}\in\mathbb{N}\) that holds for all packets in the system for this  
Figure 4: Example of a two terminal series-parallel (TTSP) application graph. particular resource. Note that this definition still enables the modeling of heterogeneous resources (NIs and routers) in the NoC.