Stream processing applications executed on multiprocessor systems usually contain cyclic data dependencies due to the presence of bounded FIFO buffers and feedback loops, as well as cyclic resource dependencies due to the usage of shared processors. In recent works it has been shown that temporal analysis of such applications can be performed by iterative fixed-point algorithms that combine dataflow and response time analysis techniques. However, these algorithms consider resource dependencies based on the assumption that tasks on shared processors are enabled simultaneously, resulting in a significant overestimation of interference between such tasks. This paper extends these approaches by integrating an explicit consideration of precedence constraints with a notion of offsets between tasks on shared processors, leading to a significant improvement of temporal analysis results for cyclic stream processing applications. Moreover, the addition of an iterative buffer sizing enables an improvement of temporal analysis results for acyclic applications as well.The performance of the presented approach is evaluated in a case study using a WLAN transceiver application. It is shown that 56% higher throughput guarantees and 52% smaller end-to-end latencies can be determined compared to state-of-the-art.
I. INTRODUCTIONReal-time stream processing applications such as Software Defined Radios (SDRs) that are executed on multiprocessor systems usually require to give temporal guarantees at design time, ensuring that throughput and latency constraints can be always satisfied. In many cases, however, a temporal analysis to obtain such guarantees is not trivial, as both cyclic data dependencies and processor sharing with run-time schedulers heavily influence the temporal behavior of an analyzed application. Besides, so-called cyclic resource dependencies occur wherever resource dependencies introduced by processor sharing are opposite to the flow of data, making temporal analysis even more challenging.It has been shown that dataflow analysis techniques are capable of obtaining temporal guarantees under such demanding circumstances [17], [19], [23]. The applicability of dataflow analysis techniques is not limited to temporal analysis, but also includes the computation of required buffer capacities [24], scheduler settings [22], a suitable task-to-processor assignment [18] and forms the basis for synchronization overhead minimization techniques such as task clustering [5] and resynchronization [8].Especially the inherent support of cyclic data dependencies, which is enabled by the so-called the-earlier-the-better refinement relation [7], distinguishes dataflow analysis techniques from other approaches. Cyclic data dependencies regularly occur due to the presence of feedback loops. Moreover, cyclic data dependencies are also introduced by the usage of FirstIn-First-Out (FIFO) buffers with blocking writes for intertask communication, i.e. buffers on which a writing task is suspended if the buffer is full. Data dependencies become cy...