This thesis focuses on addressing four research problems in designing embedded streaming systems. Embedded streaming systems are those systems thatprocess a stream of input data coming from the... Show moreThis thesis focuses on addressing four research problems in designing embedded streaming systems. Embedded streaming systems are those systems thatprocess a stream of input data coming from the environment and generate a stream of output data going into the environment. For many embeddedstreaming systems, the timing is a critical design requirement, in which the correct behavior depends on both the correctness of output data and on the time at which the data is produced. An embedded streaming system subjected to such a timing requirement is called a real-time system. Some examples of real-time embedded streaming systems can be found in various autonomous mobile systems, such as planes, self-driving cars, and drones. To handle the tight timing requirements of such real-time embedded streaming systems, modern embedded systems have been equipped with hardware platforms, the so-called Multi-Processor Systems-on-Chip (MPSoC), that contain multiple processors, memories, interconnections, and other hardware peripherals on a single chip, to benefit from parallel execution. To efficiently exploit the computational capacity of an MPSoC platform, a streaming application which is going to be executed on the MPSoC platform must be expressed primarily in a parallel fashion, i.e., the application is represented as a set of parallel executing and communicating tasks. Then, the main challenge is how to schedule the tasks spatially, i.e., task mapping, and temporally, i.e., task scheduling, on the MPSoC platform such that all timing requirements are satisfied while making efficient utilization of available resources (e.g, processors, memory, energy, etc.) on the platform. Another challenge is how to implement and run the mapped and scheduled application tasks on the MPSoC platform. This thesis proposes several techniques to address the aforementioned two challenges. Show less
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