System Throughput Optimization and Runtime Communication Middleware Supporting Dynamic Software-Hardware Task Migration in Data Adaptable Embedded Systems
Nathan Sandoval, Casey Mackin, Sean Whitsitt, Roman Lysecky, Jonathan M. Sprinkle · 2013
The complexity of embedded applications has led to highly configurable algorithms and standards that support a wide range of data inputs. Design time optimization of these algorithms is not possible due to combinatorial explosion of data configurations - or data profiles - that can be observed at runtime. To address these challenges, data adaptable design methodologies can be utilized to directly model the correlation of data profiles and algorithmic requirements. This approach enables a reconfigurable implementation that adapts the system execution at runtime to utilize profile-specific hardware tasks in response to changes in the data profile of the current input data. In this paper, we present a simulation-based methodology and heuristic search methodology for determining system configurations considering available hardware accelerators and the sizes of FIFO queues within those accelerators to determine Pareto optimal configurations for system throughput and area. We further present a hardware/software communication wrapper and middleware to support seamless communication between software and hardware tasks.