Programming Adaptive Embedded Systems
Reconfiguration is the key
The rise of the Internet of Things (IoT) and Machine Learning has lead to the conclusion that the performance requirements for embedded and battery powered devices is steadly increasing. To satisfy these requirements we need new hard- and software concepts, that are at the same time highly energy efficient as well as powerful.
In many embedded systems software components control the application flow and use hardware accelerators to perform computation-intensive tasks faster and more efficiently. However, as the environment of the system changes over time, devices should be able to adapt to the new requirements by switching to the optimal hardware accelerator for any given situation.
An example for such a hardware component that can support changing accelerators are Field Programmable Gate Arrays (FPGA). These are able to instantiate different highly specialised hardware acceelrators and can switch between them at any point. While FPGAs are already in use in larger systems, their use is still in a fairly experimental state in embedded scenarios. The largest difficulty there lies in the more complex development process to create applications for and with FPGAs.
To simplify this we have developed the Elastic Node Platform, consisting of a Hardware Platform and a Software Suite.
The Elastic Node Platform
Hybrid adaptive experimentation platform
The Elastic Node was developed mainly as an experimentation platform, that allows researchers and developers to measure and evaluate the performance and efficiency of applications using adaptive hardware.
To simplify the development process the Elastic Node not only combines a microcontroller (MCU) with a low-power FPGA, but also includes an isolated Monitoring-circuit. With it we can perform energy measurements directly on the device without interfering with the main application execution. To support mobile applications the Elastic Node also contains a 802.15.4 wireless communication chip and is able to be operate on battery power. Future releases will also have the option to use other wireless technologies.
Contact: Chao Qian
When combining an MCU with an FPGA it increases the complexity of developing applications for it. This stems from the necessity to have previous programming experience in z.B. C/C++ as well as experience in circuit design with hardware description languages such as VHDL. Additionally the hardware interactions between MCU and FPGA have to be precisely controlled to allow for an efficient execution of the system.
To simplify this we developed a minimalistic Middleware, that manages the Elastic Node and abstracts from hardware tasks. This includes amongst other things controlling the reconfiguration of the FPGA, monitoring the energy state of the device and handling the communication between MCU and FPGA. These features are offered through a simple API and a Stub-Skeleton principle for the interaction between MCU and FPGA.
Contact: Christopher Cichiwskyj
- Burger, A., Urban, P., Boubin, J., & Schiele, G. (2020). An Architecture for Solving the Eigenvalue Problem on Embedded FPGAs. ARCS 2020 - 33rd International Conference on Architecture of Computing Systems.
- Burger, A., Qian, C., Schiele, G., & Helms, D. (2020). An Embedded CNN Implementation for On-Device ECG Analysis. 2020 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops).
- Schiele, G., Burger, A., & Cichiwskyj, C. (2019). The Elastic Node: An Experimentation Platform for Hardware Accelerator Research in the Internet of Things. Proceedings - 2019 IEEE International Conference on Autonomic Computing, ICAC 2019, 84–94. (https://doi.org/10.1109/ICAC.2019.00020)
- Schiele, G., 2018. Reconfigurable Hardware and Adaptive Software for the Internet of Things: How Runtime Flexibility Changes Embedded Systems. Collaborative Technologies and Data Science in Smart City Applications, p.37. (https://dl.acm.org/doi/book/10.5555/3294341)
- Burger, A. and Schiele, G., 2018, March. Demo abstract: Deep learning on an elastic node for the internet of things. In 2018 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops) (pp. 424-426). IEEE. (https://doi.org/10.1109/PERCOMW.2018.8480160)
- Burger, A., Cichiwskyj, C. and Schiele, G., 2017, July. Elastic nodes for the internet of things: a middleware-based approach. In 2017 IEEE International Conference on Autonomic Computing (ICAC) (pp. 73-74). IEEE. (https://doi.org/10.1109/ICAC.2017.27)