This thesis is concerned with the specification, compilation and corresponding temporal analysis of real-time stream processing applications that are executed on embedded multiprocessor systems. An example of such applications are software defined radio applications. These applications typically have real-time requirements in the form of throughput and latency constraints which result from communication with the environment. Modern stream processing applications also often have multiple operation modes and can process multiple streams at different rates. To efficiently utilize these multiprocessor systems, function-level parallelism has to be extracted from these applications by a multiprocessor compiler. The compiler must also derive a corresponding temporal analysis model which is used to verify that real-time constraints are satisfied. This ensures that the implementation is a refinement of the analysis model, meaning the analysis results are an upper bound on the actual temporal behavior. The temporal analysis model must be sufficiently expressive that any application that can be specified can be modeled and also analyzed. In this thesis we present a novel hierarchical programming language and compiler for the specification and compilation of real-time stream processing applications that satisfy the aforementioned requirements. The hierarchical programming language consists of parallel modules in which sequential modules are nested. Sequential modules contain sequential statements which can be for example while-loops. The use of modules enables component based design, thus the independent development and analysis of separate modules. The language also allows for the use of time in algorithms in the form of time-aware statements, e.g. time-out statements. From every specification a corresponding temporal analysis model is derived which is used to verify the real-time requirements automatically. However, the used temporal analysis models can also be used to automatically explore different optimizations opportunities and to make a trade-off between the throughput, latency and memory requirements of applications.
展开▼