首页> 外文学位 >Hardware variability-aware embedded software adaptation.
【24h】

Hardware variability-aware embedded software adaptation.

机译:支持硬件可变性的嵌入式软件适配。

获取原文
获取原文并翻译 | 示例

摘要

With scaling of semiconductor fabrication technologies and the push towards deep sub-micron technologies, individual transistors are now composed by a small number of atoms. This makes it difficult to achieve precise control of manufacturing quality, with the added consequence that even slight differences in manufacturing can result in significant fluctuation in critical device and circuit parameters (such as power, performance, and error characteristics) of parts across the die, die-to-die and over time due to changing operating conditions and age-related wear-out. Instance and temperature-dependent variation, particularly in power consumption, has a direct impact on application quality and system lifetime for battery powered, energy constrained systems. In this work we discuss software approaches to handle variability in power consumption of embedded systems. We characterize power variation in contemporary embedded processors, introduce tools for the evaluation of variability-aware software, and focus on two variability-aware software approaches: task activation control through variability-aware duty cycle scheduling and algorithmic choice. We measured and characterized active and leakage power for a contemporary ARM Cortex M3 processor, and found that across a temperature range of 20-60°C there is 10% variation in active power, and 14x variation in leakage power. As embedded processors in more advanced technologies become commonplace, the variations will increase significantly. While contemporary hardware already suffers from variability, the evaluation of a variability-aware software stack faces two main challenges: first, commercially available platforms typically do not provide means to sense or discover variability. Second, even if this sensing capability was available, evaluating a software stack across a statistically significant number of hardware samples and ambient conditions would prove exceedingly costly and time consuming. We introduce VarEMU, an extensible framework for the evaluation of variability-aware software that provides users with the means to emulate variations in power consumption and fault characteristics and to sense and adapt to these variations in software. We introduce variability aware duty cycling methods and a duty cycle abstractions for embedded operating systems (TinyOS and FreeRTOS) that allow applications to to explicitly specify lifetime and minimum duty cycle or quality requirements for individual tasks, and dynamically adjust duty cycle rates and task activation schedules so that overall quality of service is maximized in the presence of power variability. We show that variability-aware duty cycling yields a 3-22x improvement in total active time over schedules based on worst-case estimations of power, with an average improvement of 6.4x across a wide variety of deployment scenarios based on collected temperature traces. Conversely, datasheet power specifications fail to meet required lifetimes by 7-15%, with an average 37 days short of a required lifetime of one year. Finally, we show that a target localization application using variability-aware duty cycle yields a 50% improvement in quality of results over one based on worst-case estimations of power consumption. In addition to task activation control though duty cycling, a choice of software to be executed provides further opportunities for optimization. We introduce ViRUS (Virtual function Replacement Under Stress), an application runtime support system that adjusts service quality according to variability-aware policies. In ViRUS, different code paths implement the same function with varying quality-of-service for different energy costs. Mutations from one version to another are triggered by monitoring vectors of variability and energy stress. We demonstrate ViRUS with a framework for transparent function replacement in shared libraries and a polymorphic version of the standard C math library in Linux. Application case studies show how ViRUS can tradeoff upwards of 4% degradation in application quality for a band of upwards of 50% savings in energy consumption.
机译:随着半导体制造技术的规模化和向深亚微米技术的推动,单个晶体管现在由少量原子组成。这样一来,就很难实现对制造质量的精确控制,其结果是,即使制造过程中的微小差异也可能导致整个芯片上零件的关键器件和电路参数(例如功率,性能和错误特性)出现重大波动,由于操作条件的变化和与年龄相关的磨损,模具之间以及随着时间的流逝。实例和温度相关的变化,特别是功耗方面的变化,直接影响电池供电,能源受限系统的应用质量和​​系统寿命。在这项工作中,我们讨论了处理嵌入式系统功耗变化的软件方法。我们表征当代嵌入式处理器的功耗变化,介绍用于评估可变性软件的工具,并着重于两种可变性软件方法:通过可变性占空比调度和算法选择的任务激活控制。我们测量并表征了现代ARM Cortex M3处理器的有功和泄漏功率,发现在20-60°C的温度范围内,有功功率变化10%,泄漏功率变化14倍。随着更先进技术中的嵌入式处理器变得司空见惯,变化将大大增加。尽管现代硬件已经遭受了可变性的困扰,但是对可变性感知软件堆栈的评估面临两个主要挑战:首先,商用平台通常不提供感知或发现可变性的手段。其次,即使具有这种检测能力,在统计上大量的硬件样本和环境条件下评估软件堆栈也将证明是极其昂贵和耗时的。我们介绍了VarEMU,这是一个用于评估可变性软件的可扩展框架,它为用户提供了模拟功耗和故障特性的变化以及感知和适应这些软件变化的方法。我们为嵌入式操作系统(TinyOS和FreeRTOS)引入了可变性意识的占空比方法和占空比抽象,允许应用程序为各个任务明确指定寿命和最小占空比或质量要求,并动态调整占空比和任务激活时间表因此,在功率可变的情况下,可以使整体服务质量最大化。我们显示,基于最坏情况下的功率估算,可感知可变性的占空比在计划的总活动时间上可提高3-22倍,在各种部署方案(基于收集的温度跟踪)的基础上,平均可提高6.4倍。相反,数据表电源规格无法满足7-15%的要求使用寿命,平均要求的使用寿命只有一年少了37天。最后,我们表明,使用基于可变性的占空比的目标定位应用程序比基于最坏情况下的功耗估算,结果质量提高了50%。除了通过占空比进行任务激活控制外,要执行的软件选择还为优化提供了更多机会。我们介绍了ViRUS(压力下的虚拟功能替换),它是一个应用程序运行时支持系统,可以根据可变性感知策略调整服务质量。在ViRUS中,不同的代码路径针对不同的能源成本实现了具有不同服务质量的相同功能。通过监视变异性和能量压力矢量,可以触发从一种版本到另一种版本的变异。我们使用共享库中透明函数替换的框架和Linux中标准C数学库的多态版本来演示ViRUS。应用案例研究表明,ViRUS如何权衡应用质量下降4%以上,而能源消耗节省50%以上。

著录项

  • 作者

    Wanner, Lucas Francisco.;

  • 作者单位

    University of California, Los Angeles.;

  • 授予单位 University of California, Los Angeles.;
  • 学科 Computer Science.;Engineering General.
  • 学位 Ph.D.
  • 年度 2014
  • 页码 146 p.
  • 总页数 146
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号