关键词:
嵌入式系统
实时调度
低功耗调度
可靠性
容错技术
摘要:
几十年来,嵌入式系统一直是航空航天和国防、汽车、医疗设备、通信和工业自动化等行业的主要技术,是制造业数字化网络化智能化的基石。发展实时嵌入式系统软件技术,对我国工业领域实现自主可控具有重要意义。在新兴的工业4.0领域中,嵌入式系统更是占据了主要的战略地位。随着处理器体系结构的成熟,更强大计算能力的微处理器嵌入到系统和设备中,系统正在向信息化,智能化,网络化的方向发展,这使得系统的性能和规模呈指数级增长。尽管电池技术在寿命和体积上一直稳定改进,但发展速度仍然不及快速增长的功率需求,系统较高的能耗将影响系统的稳定性。另一方面,当微处理器工艺技术进入纳米级,更多的半导体元件集成到一个芯片上,处理器的噪声裕度越来越小,使得内部部件更容易受到瞬时错误的影响,导致运行故障。因此,能耗和可靠性成为新一代嵌入式系统设计必须重点考虑的问题。本文以嵌入式系统为研究对象,结合了实时调度理论、动态电压调节技术(DVS)、动态电源管理技术(DPM)和编译器技术对嵌入式系统的能耗优化和可靠性问题展开了研究。在嵌入式实时系统任务调度方面,研究了周期任务模型的低功耗调度算法和混合任务模型下的低功耗与可靠性协同优化调度算法。在嵌入式系统应用程序方面,利用编译器技术研究了一种轻量级的软错误检测方法和一种全面的软错误容错技术。本文研究均通过实验验证了的可行性及有效性。论文主要研究内容包含以下几个方面:第一,针对嵌入式实时系统周期任务模型,提出基于最早截止时限优先(EDF)的低功耗调度算法LPABOWSA。该调度算法使用了DVS和DPM技术,在离线阶段计算回收空闲利用率降低处理器速度,运行阶段根据任务的回收动态空闲时间,并按照就绪队列中任务的WCET比例来分配空闲时间,动态调整处理器速度以降低能耗。实验结果表明所提算法分别比DRA和ASTALPSA算法平均节省了约10.7%和4.6%的能耗。此外,本研究还针对关键速度策略可能会造成能耗增大的问题,提出一种基于平衡点的周期任务低功耗调度算法LPABOBF。该算法根据周期任务集的特点,充分回收了所有静态空闲时间与动态空闲时间。由于结合了DPM技术在适当时候关闭处理器,处理器切换存在开销,因此关键速度不一定是使得系统能耗最小的速度。当处理器速度小于关键速度时,LPABOBF算法根据平衡点来判断使用DVS处理器速度或者关键速度。实验结果表明,LPABOBF比现有的DRA算法节省8.9%~26.19%的能耗,比DSTRA算法节省约2.7%~13.98%的能耗。第二,针对嵌入式实时系统混合任务模型,提出低功耗与可靠性协同优化调度算法RLPMABC。使用DVS技术缩放的电源电压使得处理器更容易受到软错误的攻击,因此在低功耗技术中同时兼顾可靠性是必要的。RLPMABC算法利用常带宽服务器调度将非周期任务参与到周期任务的调度中,并充分考虑了可靠性因素。在降低处理器速度前,提前利用空闲时间为所执行的任务分配好备份任务。在离线阶段,根据空闲利用率提出两种启发式的策略:小利用率优先(SUF)和大利用率优先(LUF),来选择使用DVS技术的任务,并为任务分配备份任务。在运行阶段,充分回收周期任务和常带宽服务器的空闲时间,进一步为其他任务的分配备份任务和降低能耗。实验结果表明RLPMABC算法比NODVS-CBS算法节约能耗20.8%~54.6%,同时平均故障率约为其1.5%~11.8%。第三,针对嵌入式系统软错误检测技术的需求,提出一种轻量级软错误检测技术LEDRMT。嵌入式系统的可靠性往往是设计中最重要的考虑方面。瞬时错误(软错误)的发生可能导致程序产生不确定的运行结果。然而,基于备份任务的调度技术并不能检测出无症状的结果错误(SDC),该类错误会导致错误的运行结果,而不产生任何异常的表现。程序指令级的技术可以在编译器层面灵活地实现,并可以有效检测到SDC。基于编译器实现的冗余多线程(RMT)近年来被认为是一种有效的软错误检测技术。其原理为在两个处理器核心上同时运行复制域(SOR)中的程序代码的副本,在检测点处比较两个线程的相关结果值来检测错误。现有的编译器RMT软错误技术存在着错误覆盖率不足,或运行时间开销过大的问题。其中,时间开销主要来源于主线程与冗余线程之间的同步操作。本研究完全移除了现有技术中主线程对于冗余线程的等待操作,并重新设计了线程间的结果比较机制,增加了内存读指令的线程内复制,和内存写指令的线程内读取检查。软错误注入实验结果表明,相比最严格的RMT软错误检测技术,所提LEDRMT技术在不损失SDC覆盖率的前提下,降低了45.07%的运行时间开销。第四,针对嵌入式系统容错技术的需求,提出一种全面的软错误容错技术FERNANDO。软错误检测技术并不能在运行中对错误进行纠正,给后期的调试工作带来麻烦。完整的软错误容错技术需要包括软