自供电计算机是一种不需要电池和固定电源供电的新型计算系统,它可以从环境中收集能量来维持工作,无线电波、太阳能、热能和振动都可以为设备供电。但是目前这类设备有一个缺点,那就是环境中的能量源很弱,而且经常是“间歇性”的,这就导致了计算机不能被持续供电,从而可能导致一系列的故障。
针对这种情况,卡内基梅隆大学电气与计算机工程助理教授布兰登·卢西亚(Brandon Lucia)和他的博士研究生阿列克谢·柯林(Alexei Colin)共同创建了一种新型编程语言,旨在为间歇式工作的能量收集计算机提供可靠的软件支持。在11月3日荷兰阿姆斯特丹举办的2016年SPLASH大会上,柯林将介绍这项工作。
“计算机从环境中获取的能量并不总是持续的,”卢西亚解释说,“间歇性使得传统的应用程序难以工作,因为现有的软件编程语言都假设电源是一直持续可用的。”
卢西亚他们开发的这种新型编程语言称为“链(Chain)”,它的基本原理是通过操纵计算机内存的一种新方法(称为Channel)来计算和交换数据,这可以保证任务和数据在电源中断时不会丢失。
“当电源不能保证持续供电时,电源故障会中断软件的执行,进而造成不可恢复的错误,”卢西亚说,“Chain的原理就是程序使用了一种新的基于Channel的内存抽象,它能够确保任务无差错地完成。”
因此基于Channel的内存是软件运行的关键:无论何时出现电源中断,Channel都能确保计算任务始终具有恢复电源时所需的完整数据。在故障之后重新启动Chain程序几乎是零时间成本的,因为Chain不依赖于那些如内存检查点之类的昂贵的常规方法。
一些物联网设备和可植入或可摄入的医疗设备常常不能得到持续的电源供应,因此有效的重新启动对它们来说至关重要。
阿伦森·桑普尔(Alanson Sample)博士在迪士尼匹兹堡研究院工作,目前他正在和卢西亚与柯林一起合作推动Chain的实行。
明年年初,Chain将与纳米卫星公司KickSat展开首次合作,一些邮票大小的卫星将搭载用Chain编写的软件在近地轨道上运行两个小型。这些卫星使用微小的太阳能电池板供电,并将收集和处理的传感器数据发送回地球,Chain将给这些卫星提供的强大的软件稳定性保障,确保它能在不稳定的太阳能供电下保持连续、可靠的运行。
“可靠的自供电计算机具有巨大的应用价值,”卢西亚说道,“在目前空间工业大肆扩张的背景下,卫星正在变得越来越小型化,如果我们使微小的能量收集卫星能够可靠地工作,这无疑对空间科学研究大有裨益,进一步的,未来我们甚至可以依靠这种技术探索那些遥远的地外资源。”
参考:http://phys.org/news/2016-10-energy-harvesting-reliable.html