This thesis addresses the problem of designing performance and energy efficient embedded streaming systems, that is, systems which process a stream of input data coming from the environment and... Show moreThis thesis addresses the problem of designing performance and energy efficient embedded streaming systems, that is, systems which process a stream of input data coming from the environment and generate a stream of output data going into the environment. The correct functionality of embedded streaming systems depends on both the correctness of output data and on the time at which the data is produced. To achieve desirable performance and energy consumption of such real-time embedded streaming systems, modern embedded systems are equipped with hardware platforms that contain multiple processors on a single chip. These hardware platforms are called Multi-Processor Systems-on-Chip (MPSoCs). To exploit such parallel hardware platforms, the streaming application which is going to be executed on an MPSoC platform has to be specified as a set of tasks that are data-dependent, but can be executed in parallel. These tasks are mapped on processors where they are scheduled in time and executed. This thesis proposes methodologies and techniques to transform a streaming application into a set of parallel tasks which closely matches an MPSoC platform and to schedule these parallel tasks onto the platform such that the desirable performance and energy consumption are reached. Show less
This thesis proposes design methodologies and techniques in the context of embedded computing systems. In particular, it focuses on embedded streaming systems, i.e., systems that process a... Show more This thesis proposes design methodologies and techniques in the context of embedded computing systems. In particular, it focuses on embedded streaming systems, i.e., systems that process a continuous, possibly infinite stream of data from the environment. Typical examples of such systems are audio and video encoders and decoders. In order to achieve higher performance, nowadays embedded streaming systems are often implemented on execution platforms that contain multiple processors on a single chip. These execution platforms are called Multi-Processor Systems-on-Chip (MPSoCs). To exploit the parallelism available in MPSoCs, applications have to be decomposed in portions (also called tasks) that are inter-dependent, but can be executed in parallel. Each of these tasks is assigned to a certain processor of the system. This assignment of tasks to processors is called spatial scheduling of tasks, or task mapping. This thesis proposes techniques to optimize and adapt at run-time the mapping of tasks to processors, in order to achieve higher processor utilization, or energy efficiency, or to make the system fault tolerant. Show less