Clock configuration takes a key role in tuning constrained general-purpose microcontrollers for performance, timing accuracy, and energy efficiency. Configuring the underlying clock tree, however, involves a large parameter space with complex dependencies and dynamic constraints. We argue for clock configuration as a generic operating system module that bridges the gap between highly configurable but complex embedded hardware and easy application development. In this paper, we propose a method and a runtime subsystem for dynamic clock reconfiguration on constrained Internet of Things (IoT) devices named ScaleClock. ScaleClock derives measures to dynamically optimize clock configurations by abstracting the hardware-specific clock trees. The ScaleClock system service grants portable access to the optimization potential of dynamic clock scaling for applications. We implement the approach on the popular IoT operating system RIOT for two target platforms of different manufacturers and evaluate its performance in static and dynamic scenarios on real devices. We demonstrate the potential of ScaleClock by designing a platform-independent dynamic voltage and frequency scaling (DVFS) mechanism that enables RIOT to autonomously adapt the hardware performance to requirements of the software currently executed. In a use case study, we manage to boost energy efficiency of constrained network communication by reducing the MCU consumption by 40 % at negligible performance impact.
翻译:Clock 配置在调适受限制的通用微控制器的性能、 时间精确度和能源效率方面发挥着关键作用。 但是, 配置基本的时钟树时钟树时, 涉及到一个大参数空间, 具有复杂的依赖性和动态限制。 我们主张时钟配置是一个通用操作系统模块, 缩小高度可配置但复杂的嵌入硬件和简易应用开发之间的差距。 在本文中, 我们提出一个方法和运行时间子子子系统, 用于在受限制的事物互联网( 缩放 ) 设备上进行动态时钟重组, 名为 SlocClock 设备 。 缩放时钟通过抽取硬件特定的时钟树, 带来动态优化时钟配置的措施。 ScalClock 系统服务允许可方便地获取动态时钟缩放应用的优化潜力。 我们为不同制造商的两个目标平台实施流行的 IoT 运行系统 RIOT, 并评估其真实设备静态和动态情景的性能。 我们通过设计一个依赖平台的动态电压和频率缩缩放( DVFSFS) 机制, 来让RIOT 能够自动调整硬件性地将硬件性性性性工作适应到目前所执行的软能 。