论文部分内容阅读
随着电子技术和计算机技术的快速发展,微处理器结构变得日益复杂,计算能力得到大幅提升。然而,随着系统性能的提升其能耗也不断增加,怎样降低能耗已成为系统设计中的一个重要问题。动态电压/频率调整(dynamic voltage and frequency scaling,DVFS)技术已被广泛应用于低功耗设计,应用该技术可在系统运行时调整处理器的执行电压和频率从而降低系统能耗。可靠性是系统的一项重要的质量指标,对于很多系统而言可靠性目标要求必须被满足,否则可能会导致灾难性的后果。由于芯片内部电路数目增加、电路尺寸减小,芯片抗高能粒子撞击的能力降低,从而处理器在执行任务时发生错误的概率增加,影响系统的可靠性。系统运行过程中的错误一般分为瞬时错误和永久错误,而瞬时错误更加常见。已有研究表明,降低处理器的执行频率,系统发生瞬时错误的概率会急剧增加,从而系统的可靠性迅速降低。为了提高系统的可靠性或确保系统的可靠性不低于某个预定的目标值,逆向恢复和任务复制技术经常被应用于任务调度。应用逆向恢复技术时,当处理器发生错误则将应用程序回滚到发生错误之前的检查点,然后从检查点开始重新执行任务;任务复制技术是将任务复制到多个处理器上同时执行从而容忍执行过程中的错误。一般情况下,系统的能耗优化和可靠性优化是两个相互冲突的目标。一方面,运用DVFS技术降低系统能耗的同时会导致可靠性下降。另一方面,应用逆向恢复技术或任务复制技术提高系统的可靠性则会增加系统能耗或需要消耗更多的系统资源。因此,本文主要研究系统可靠性与能耗优化的问题,在保证系统可靠性的前提下尽量优化系统能耗,开展的主要工作如下:(1)针对周期性实时任务运行于单处理器系统可靠性保证与节能问题,提出任务尽可能早执行(earliest deadline as soon as possible,EDS)和任务尽可能迟执行(earliest deadline as late as possible,EDL)联合调度的方法,任务按EDS策略执行,EDL策略用于收集处理器空闲时间。首先设计了一个基于任务最坏执行时间的可靠性保证与节能调度算法,在该算法中定义处理器动态利用率,并以此来确定任务的最优执行频率。因为任务的实际执行时间经常小于其最坏执行时间,然后设计了一个基于任务实际执行时间的可靠性保证与节能调度算法,在该算法中应用统计的方法确定任务的最优执行频率。实验结果表明提出的算法在保证系统可靠性与节能方面优于已有的算法。(2)将有先后约束关系的并行任务建模为有向无环图(directed acyclic graph,DAG)。研究了DAG表示的并行任务运行于异构嵌入式系统满足可靠性目标要求并最小化能耗的问题。在不应用任务复制的情况下提出两个满足可靠性目标并最小化系统能耗的算法,分别为不使用DVFS满足可靠性与节能算法(non-DVFS energy-efficient scheduling algorithm with the reliability goal,NDERG)和使用DVFS满足可靠性与节能算法(DVFS energy-efficient scheduling algorithm with the reliability goal,DERG)。NDERG和DERG算法都将系统的可靠性目标转换为任务的可靠性目标,然后将任务分配至满足其可靠性目标并且能耗最小的处理器上执行。因为可靠性目标的转换方法以系统可达到的最高可靠性为参考,所以当给出的可靠性目标不高于系统可达到的最高可靠性时,提出的两个算法都能将任务分配到合适的处理器并使系统的可靠性目标得到满足。通过仿真实验验证了所提算法的性能。(3)针对异构嵌入式系统中并行任务可靠性目标约束下的节能调度问题,提出一个两阶段算法框架,该框架第一阶段为初始分配算法,第二阶段满足系统可靠性目标并节能。初始分配算法不应用DVFS技术,该算法将任务分配至能耗最低的处理器并且获得系统初始可靠性。当初始分配阶段得到的系统可靠性低于可靠性目标时,提出一个提高系统可靠性的算法,应用该算法总能使系统满足可靠性目标要求。当初始分配阶段得到的系统可靠性高于可靠性目标时,提出一个应用DVFS技术降低系统能耗的算法,应用该算法可进一步降低系统能耗。(4)因为NDERG算法、DERG算法及两阶段算法没有考虑任务复制的情况,在某些情况下系统的可靠性目标要求可能高于非任务复制情况下系统能达到的最高可靠性,这时必须通过任务复制才能使系统的可靠性目标得到满足。因此,设计了两个基于任务复制的可靠性目标约束下的节能调度算法,这两个算法用任务的平均最坏执行时间为参考确定DAG中每个任务的可靠性目标,然后运用启发式方法最小化系统能耗。实验结果表明提出的算法比已有的算法产生更低的能耗。