Abstract
Since the emergence of wireless sensor networks in the early 2000s, there has been a growing interest in many domains, including environment, agriculture, health, energy, or industry, with diverse sensing / actuating and wireless communications approaches. The ever-increasing amount of data generated by these end-node devices led to the distribution of data processing across the network, especially for performance, energy and security requirements (i.e., edge computing). This distribution increases sensor nodes' processing and storage requirements. A node can, for example, carry out statistics on the data collected and determine the relevance of transmitting the information. Today, it seems possible to go as far as the integration of more sophisticated algorithms, such as embedded machine learning inference. Thus, our objective is to optimise sensor nodes' energy efficiency to enable more computing and storage in these devices. To achieve this goal, we address three challenges.The first challenge is to model the execution of an application in a sensor node in order to be able to evaluate the energy of its components to guide future optimisation. For this, we study the architecture and operation of a sensor node to build an activity-based energy model. These devices embed a Microcontroller Unit (MCU) responsible for the processing and storage. After studying the architecture of these MCUs and how non-volatile memories enable energy-saving strategies, we build an activity-based energy model for MCU, enabling us to evaluate the energy of these different parts allowing architecture exploration.The second challenge is to find a solution for energy evaluation and architecture exploration at both the sensor node and MCU levels. To address it, we propose an FPGA-based sensor node prototype that can embed a wide range of applications. An MCU architecture with a RISC-V CPU core, memories and peripherals is implemented on an FPGA target, which is connected to a sensing and radio unit to build a real-life operating sensor node. The architecture embeds a monitoring unit that traces the activity of the different components at both levels. Thus, these activity traces allow us to evaluate the energy consumed by these different components. We propose two applications, a temperature-like sensor node application and an intelligent node-like one for keyword detection based on machine learning inference. With this platform, we show that intelligent radio use allows us to reduce the node's power consumption. In this context, the consumption of the MCU and more particularly during inactive phases becomes a significant part of the energy consumed by the node.The final challenge is to find in this context how the integration of emerging Non-Volatile Memory (NVM) in MCU architecture can help increase sensor nodes' energy efficiency. To this end, we propose MemCork, an MCU memory exploration tool. Based on the platform's output, the tool automatically explores different memory technologies, sizing, and data mapping to find the most energy-efficient solutions for a given application. We then use this tool on our two applications to find how emerging memory technologies can help reduce MCU energy.In summary, this thesis explores sensor nodes' communication/processing tradeoffs. It explains how emerging NVM can be integrated into MCU architecture to increase sensor node energy efficiency. We believe our exploration method can be used to perform further application-architecture co-optimisation beyond the ones covered in this manuscript. We hope our results will enable the design energy efficient smart sensor nodes.