Arnold: Developing efficient IoT data processing applications for a versatile PULPissimo-based SoC in 22nm FDSOI
With the growth of smart sensors being part of everyone’s everyday life, data driven applications are acquiring more and more relevance in the electronics consumer market. Smartwatches for fitness tracking, camera for security and multimedia entertaining as well as biomedical devices as ECG and EEG wearable devices for health care applications are just few of these examples. Typically, the data streams coming from sensors are processed on servers in the cloud. This requires the data to be sensed by a physical device driven by a microcontroller, possibly pre-processed and eventually sent to the network wirelessly (as using Bluetooth low power WiFi radios) where the packet goes through router and switches until it finally arrives to the server in the cloud which will process it and possibly give feedbacks to the users or to the microcontroller for closed-loop applications. As these smart-sensors are usually battery-powered, they are designed to be energy efficient. Most of the power is spent in transmitting the data from the radio to the server, therefore minimizing the transmitted bandwidth towards the servers does not only help to minimize the traffic and congestions, but it also helps the smart-sensors to live longer.
Classification and/or data compression are data processing algorithms that can be used to cope with the aforementioned challenge. As for example, one can imagine an application for face recognition built as following: an ultra-low-power camera continuously acquires images, the microcontroller can compress the image and send less bytes to the server which will simply decompress the data to perform a convolutional neural network to classify the acquired face. Another smarter example still built on a face recognition application is the following: the microcontroller performs a pre-classification on the image to recognize whether the picture is a face or not. In this case, only a small part of the algorithm is needed with respect the whole face recognition process. If the picture is a face, the image is then sent to the cloud saving both on-node power due to the limited access to the radio device and server resources, as they now execute face recognitions algorithms only on certain events.
The event-driven execution paradigma can be also applied at microscopic level by shutting down parts of the microcontroller which are not used during some sort of pre-processing and turning them up only for detected events.