内存中的自适应计算技术与传统无电池平台相结合
《ACM Transactions on Embedded Computing Systems》:Adaptive Computing in Memory Meets Conventional Batteryless Platforms
【字体:
大
中
小
】
时间:2025年11月07日
来源:ACM Transactions on Embedded Computing Systems
编辑推荐:
电池供电系统在内存密集型任务中面临能效与编程复杂度挑战。本文提出Viadotto平台,通过计算内存(CIM)与微控制器(MCU)协同设计,首次实现自适应CIM加速。其核心包括CRAM硬件架构、可编程微控制器(MC)和编译器支持,动态调整 tile 级并行以优化能效,并采用高-level API隐藏底层操作。实验表明Viadotto较现有方案提速48%。
随着物联网(IoT)技术的迅速发展,电池供电设备在许多应用领域变得不可或缺。然而,电池的使用带来了维护成本高、环境影响大以及生命周期有限等挑战。因此,研究人员开始探索无需电池的系统,利用环境能量采集技术来驱动设备运行。这些电池-less 设备广泛应用于环境监测、野生动物追踪和现场机器学习等场景。例如,动物携带的传感器需要实时分类声音或图像,以检测特定物种的行为;建筑物或工厂中的无电池空气质量监测设备通常在设备上执行分类任务,使用内存密集型的卷积神经网络(CNNs);农业传感器则需要定期处理高分辨率的视觉或声学数据,以检测植物健康或害虫活动。这些应用都面临一个共同的问题:由于输入数据和模型的规模较大,它们往往受限于内存带宽和能量供应。
电池-less 设备完全依赖于从环境能量源收集能量,并将其存储在存储电容中。由于环境能量的时空变化,这些设备经常遭遇电源中断,无法持续运行。当电容中的能量耗尽时,设备需要中断运行以充电,并在恢复时重新启动。这种间歇性运行方式会导致计算过程中丢失易失性计算状态,如局部变量、全局变量和寄存器,从而影响计算的连续性。为了应对这一问题,电池-less 设备依赖于非易失性内存(NVM)来备份这些状态,并在电源恢复后进行恢复。然而,这种备份过程会带来显著的处理器与NVM之间的数据传输开销,特别是在内存密集型任务中,这种开销会进一步增加,导致计算效率降低。
尽管计算在内存(CIM)的概念为电池-less 系统提供了新的可能性,现有的CIM解决方案在提升内存密集型任务的性能方面仍存在不足。这些解决方案通常运行在较低频率下,导致性能受限,且在编程时需要开发者处理复杂的细节,增加了开发难度。此外,现有方案未考虑环境能量采集的动态特性,未能有效优化其吞吐量。因此,如何在保证计算连续性的同时,提升性能并简化编程成为了一个重要的研究课题。
针对上述问题,本文提出了一种全新的CIM-based电池-less计算平台——Viadotto。该平台首次将自适应CIM与传统的MCU-based电池-less平台相结合,为内存密集型计算任务提供高效的加速。Viadotto的主要创新点包括:首先,它引入了一个基于API的编程模型,允许开发者使用C语言接口将内存密集型任务映射到CRAM上,无需处理底层CIM操作;其次,它通过自适应的CRAM并行性控制,根据环境能量的变化动态调整任务执行的并行程度,从而优化吞吐量;最后,Viadotto通过高效的硬件接口,将新兴的CRAM技术集成到传统MCU-based平台中,使得其在实际应用中更具可行性。
Viadotto的架构包括三个核心组件:CRAM上的数据流处理单元(DPEs)、内存控制器(MC)和MCU。MCU负责执行通用计算和传感任务,并通过标准的即时检查点(JIT checkpoint)机制确保在电源中断后能够恢复计算状态。MCU将数据密集型任务卸载到CRAM中,由MC负责管理数据流和并行性。MC通过接收来自MCU的高级指令,并将其转换为适当的控制信号,以触发CRAM中的操作。MC和MCU共享一个总线,并通过内存映射寄存器进行通信,从而实现高效的数据传输和任务执行。
为了实现高效的CIM操作,Viadotto的编译器对任务进行了优化,生成适合CRAM并行执行的代码版本。编译器通过分析内存访问模式,确保在任务执行过程中不会发生数据冲突,并通过编译器生成的指令序列,实现对CRAM并行性的充分利用。此外,Viadotto的运行时系统能够根据环境能量的变化动态调整任务执行的并行程度,从而在保证计算正确性的前提下,提升系统的整体性能。
在内存处理方面,Viadotto的CRAM结构设计为多个自给自足的计算单元,每个单元可以独立处理任务。这种设计减少了数据在内存单元之间的传输需求,同时保持了较高的并行性。每个CRAM单元由多个MTJ(磁性隧道结)组成,可以执行逻辑操作,如NOT、BUFF、AND、NAND、OR、NOR和MAJ3。这些操作在CRAM中实现,确保了计算过程的原子性和非易失性,从而在电源中断后仍能保证计算的连续性。
Viadotto的MC设计采用流水线结构,以提高处理速度和降低能耗。MC通过状态机控制CRAM的操作流程,并根据环境能量的变化动态调整任务执行的并行程度。MC和MCU之间的通信基于中断机制,使得MCU可以在执行数据密集型任务的同时,处理其他通用任务,如数据采集和预处理。此外,Viadotto的MC通过跟踪电压阈值,实现对环境能量的动态监控,并根据当前能量状况选择合适的CRAM配置,以确保计算的连续性和高效性。
在编程模型方面,Viadotto提供了一组高级API,包括`collect()`、`CIM()`和`transmit()`,分别用于数据采集、将计算任务映射到CRAM以及传输计算结果。这些API通过Viadotto运行时系统实现,使得开发者无需关注底层内存操作,从而简化了编程过程。Viadotto的编译器负责将API调用转换为相应的微指令序列,并在运行时根据环境能量的变化选择合适的计算配置。这种编译器与运行时系统的结合,使得Viadotto能够实现高效的并行计算,同时保持代码的可移植性和适应性。
Viadotto的性能评估表明,它在电池-less系统中显著优于现有的CIM解决方案。通过在多个环境能量场景下的测试,Viadotto展示了其在不同功率条件下都能保持较高的计算吞吐量。在常量功率条件下,Viadotto的MC运行速度更快,从而提高了整体性能。而在动态功率条件下,Viadotto通过动态调整CRAM并行度,有效减少了电源中断的次数,并提高了计算效率。此外,Viadotto的运行时系统能够在不同功率条件下选择最佳的CRAM配置,从而在保持计算连续性的前提下,最大化系统的性能。
从资源消耗的角度来看,Viadotto在面积和能耗方面也表现出优势。通过将MC设计为流水线结构,并采用非易失性寄存器来确保数据一致性,Viadotto在保持高效计算的同时,降低了系统的整体能耗。此外,Viadotto的MC占用的空间相对较小,且其运行时系统能够动态调整任务执行的并行程度,从而在不同应用场景中保持良好的适应性。在比较Viadotto与MOUSE和PiMCo时,Viadotto在运行频率、编程模型和编译器支持等方面具有明显优势,特别是在适应动态环境能量变化方面。
Viadotto的架构设计还考虑到了系统的可扩展性。通过限制最多六个预编译的CRAM版本,Viadotto在保持代码可移植性的同时,控制了代码大小的增长。此外,Viadotto的运行时系统能够根据当前的能量状况,动态选择最佳的CRAM配置,从而在保持计算效率的同时,减少不必要的能量消耗。这种动态调整机制使得Viadotto在不同的能量条件下都能保持较高的性能。
尽管Viadotto在多个方面展示了其优势,但仍存在一些局限性。首先,目前对Viadotto的评估仍依赖于系统级模拟,因为市场上尚未有成熟的CRAM原型可供测试。因此,未来的评估工作可能需要借助更精确的模拟工具或实际硬件平台来验证其性能。其次,Viadotto的编译器虽然能够处理大部分内存密集型任务,但在某些特定应用场景中可能需要更高级的编译器支持,以进一步优化任务分配和并行性。此外,Viadotto的MC设计虽然高效,但在某些极端情况下可能需要更复杂的控制逻辑,以确保系统的稳定性和可靠性。
综上所述,Viadotto为电池-less系统提供了一种新的计算范式,结合了自适应CIM和传统MCU-based平台的优势。通过高效的内存处理、动态并行性控制和灵活的编程模型,Viadotto在提升内存密集型任务的性能方面取得了显著进展。然而,为了实现更广泛的应用,Viadotto还需要进一步的优化和扩展,特别是在实际硬件平台的集成、更复杂的编译器支持以及更高级的能量管理策略等方面。这些未来的研究方向将有助于推动CIM技术在电池-less系统中的实际应用,为物联网和边缘计算领域带来更大的便利和性能提升。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号