学位论文 > 优秀研究生学位论文题录展示

面向寄存器软错误的容错编译技术研究

作 者: 徐建军
导 师: 谭庆平
学 校: 国防科学技术大学
专 业: 计算机科学与技术
关键词: 寄存器软错误 软件容错 程序分析 指令复算 编译优化
分类号: TP302.8
类 型: 博士论文
年 份: 2010年
下 载: 115次
引 用: 3次
阅 读: 论文下载
 

内容摘要


从计算机诞生之日起,可靠性问题就是计算机研究领域最需要关注的几个问题之一。虽然现代计算机的可靠性已经得到了很大程度的提高,但是随着计算机制造工艺的日趋复杂和应用领域的不断拓展,计算机可靠性仍然面临很多新的挑战。软错误是半导体电路中的一种瞬态故障现象,通常是由外部环境中的高能粒子辐照和电压扰动、电磁干扰等电磁噪声诱发。宇宙射线辐射所导致的单粒子翻转等软错误一直是影响航天计算机可靠性的重要原因。而随着集成电路制造工艺的持续进步,现代处理器的性能在大幅度提高的同时,对软错误也越来越敏感。继性能和功耗问题之后,软错误导致的计算可信性已成为一个日益严峻的课题。其中,由于寄存器访问频繁却未能被良好保护,发生于寄存器中的软错误成为影响系统可靠性的最关键因素之一。与硬件容错相比,针对软错误的软件容错技术由于在实现成本和灵活性等方面的优势而备受关注。本文在程序汇编代码的基础上,从程序可靠性的角度研究了面向寄存器软错误问题的程序分析、错误检测和编译优化等技术。本文的主要工作分为以下五个方面:1.从所运行程序角度就寄存器软错误对可靠性的影响进行定量分析,是设计和实现高效容错算法的基础。基于程序汇编代码,本文提出一种针对寄存器软错误的程序可靠性静态分析方法ASER。首先在一种已有静态分析方法的基础上,通过摘要函数的过程间分析框架提高了分析结果的精度。然后在寄存器活性分析的基础上,使用图可达的遍历方法提取出具体影响程序运行的寄存器生存期。ASER分析结果指出在寄存器软错误影响下程序可靠性与其自身结构的关系,以及寄存器相关生存期的量化分析结果。以上研究成果有助于理解程序中的关键脆弱点,为设计和实现针对寄存器软错误的高效错误检测和恢复技术提供了理论依据。2. ECC编码是解决软错误问题的有效手段,但是对全部寄存器用ECC进行保护在功耗开销、芯片面积和性能等方面都存在一定困难。本文假设只对部分寄存器进行ECC保护,然后提出一种寄存器重分配方法RAPP。该方法首先根据ASER的分析结果构造寄存器生存期的相干图,然后通过层次化图着色的启发式分配算法,把那些有ECC保护的寄存器尽量分配给比较关键的寄存器生存期。与已有方法相比,RAPP方法在兼顾功耗开销的前提下,对程序可靠性的改善效果最为明显。3.针对数据流错误的软件容错技术通常采取程序复算的方法,即把程序重复执行多次并比较运算结果以实现错误检测和恢复。其中指令级程序复算由于检错能力强、对用户透明和便于采用优化措施等特点而成为研究热点。但是指令复算中的一致性比较指令是限制容错程序性能的最关键因素,本文针对此问题提出一种针对指令复算的检查点优化方法COID。该方法基于错误传播的数据流分析,以系统调用指令为界限,在保证错误检测率的前提下,给出一种安全删除同步比较指令的方法。故障注入和性能分析实验表明,COID方法在不影响软错误检测率的前提下,将指令复算程序的平均性能提高了12.78%。4.软错误可能导致程序控制流错误,已有的控制流检测技术在性能开销和检测率方面存在不足。本文首先在程序控制流图的基础上,利用图着色算法对基本块进行分类,然后基于基本块的格式化标记提出一种有效的控制流检测方法ECCFS,并针对基本块内部和过程间的控制流检测问题分别给出扩展解决方法。检测效能分析和故障注入实验的结果表明,ECCFS能够检测出绝大部分的控制流错误。与已有控制流检测方法相比较,ECCFS在错误检测率和性能开销等方面都具有一定的优势。5.目前,硬件和软件实现的软错误容错技术在性能、功耗和实现成本等方面均有不同程度的开销。本文针对寄存器软错误,提出一种用于增强程序可靠性的编译优化方法SISER。其基本思想是通过指令调度缩短程序运行过程中寄存器总的活跃区间,即减少受寄存器软错误影响的有效区域,以提高程序运行时的可靠性。基于ASER和指令依赖关系的分析结果,SISER以动态规划的方式给出具体的基本块调度算法。指令调度实验结果表明,在无明显开销的前提下,目标程序的可靠性平均被提高了4.41%。与传统容错技术相比,SISER方法最大的特点是不会引入额外的时空开销。

全文目录


摘要  10-12
ABSTRACT  12-15
第一章 绪论  15-41
  1.1 研究背景  15-24
    1.1.1 软错误的来源  15-20
    1.1.2 软错误的危害  20-22
    1.1.3 寄存器中的软错误  22-24
  1.2 容软错误技术概述  24-28
    1.2.1 容软错误的基本原理  24-26
    1.2.2 硬件容错技术  26-27
    1.2.3 软件容错技术  27-28
  1.3 相关研究现状  28-37
    1.3.1 软错误评估方法  28-31
    1.3.2 软件容错代表性成果  31-36
    1.3.3 软件容错优化研究  36-37
  1.4 主要研究内容  37-39
  1.5 论文结构  39-41
第二章 面向寄存器软错误的程序可靠性分析  41-67
  2.1 引言  41-42
  2.2 分析框架  42-48
    2.2.1 基本定义  42-44
    2.2.2 研究思路  44-48
  2.3 活跃概率分析  48-52
    2.3.1 摘要函数  48-51
    2.3.2 后置活跃概率  51-52
  2.4 生存期分析  52-61
    2.4.1 寄存器活性分析  55-57
    2.4.2 寄存器生存期提取  57-61
  2.5 实验及结果分析  61-65
    2.5.1 分析实验  61-62
    2.5.2 进一步分析  62-64
    2.5.3 与其它方法比较  64-65
  2.6 本章小结  65-67
第三章 基于部分 ECC 保护的寄存器分配  67-85
  3.1 引言  67-68
  3.2 相关工作介绍  68-70
  3.3 寄存器分配概述  70-73
  3.4 基于优先级的层次化寄存器着色  73-80
    3.4.1 构建相干图  73-77
    3.4.2 预着色过程  77-79
    3.4.3 全局着色过程  79-80
  3.5 实验验证  80-83
  3.6 本章小结  83-85
第四章 基于指令复算的检查点优化  85-99
  4.1 引言  85-86
  4.2 相关工作介绍  86-87
  4.3 检查点基本设置  87-89
  4.4 检查点优化  89-94
    4.4.1 基本思想  89-91
    4.4.2 优化分析  91-94
  4.5 实验验证  94-97
    4.5.1 故障注入实验  94-96
    4.5.2 性能分析实验  96-97
  4.6 本章小结  97-99
第五章 基于格式化标记的控制流错误检测  99-115
  5.1 引言  99-100
  5.2 控制流检测技术概述  100-101
  5.3 ECCFS 方法  101-108
    5.3.1 基本块标记格式设计  101-104
    5.3.2 基本块之间的控制流检测  104-105
    5.3.3 基本块内部的控制流检测  105-106
    5.3.4 过程间的控制流检测  106-108
  5.4 检测效能分析  108-110
  5.5 实验评估  110-113
    5.5.1 故障注入实验  110-112
    5.5.2 与其它方法的比较  112-113
  5.6 本章小结  113-115
第六章 面向寄存器软错误的指令调度  115-129
  6.1 引言  115-116
  6.2 研究思路  116-118
  6.3 SISER 方法  118-123
    6.3.1 指令依赖分析  118-120
    6.3.2 寄存器重命名  120
    6.3.3 基本块调度  120-123
  6.4 实验  123-127
  6.5 分析讨论  127-128
  6.6 本章小结  128-129
第七章 结束语  129-133
  7.1 本文主要贡献  129-130
  7.2 今后研究工作  130-133
致谢  133-135
参考文献  135-145
作者在学期间取得的学术成果  145-146

相似论文

  1. 民航空管DVOR/DME导航台信号覆盖与飞行程序综合分析及应用研究,V351.37
  2. Fuzzing漏洞挖掘与溢出利用分析技术研究,TP393.08
  3. 编程题自动评判中相关技术的研究与实现,TP391.6
  4. 嵌入式MSDCC异构多核编译器研究,TP314
  5. 基于GPU的程序分析与并行化研究,TP332
  6. SIMD数据置换指令的自动生成与优化,TP332
  7. 东软飞利浦CT新双排生产线优化设计研究,TH774
  8. 静态程序分析辅助的动态漏洞挖掘,TP311.53
  9. 面向MPI程序的进程数据相似性分析与优化技术,TP311.11
  10. 论我国的行政补偿程序,D922.11
  11. 飞控计算机的容错研究与设计,TP302.8
  12. 烽火机械加工厂生产流程优化研究,F426.4
  13. 空间机器人软件容错技术研究,TP242
  14. 基于GCC的复算容错编译技术研究与实现,TP311.52
  15. A公司饮水机下门组装线改善研究,TB497
  16. 基于IMPACT的嵌入式汇编及编译指示的研究与实现,TP368.1
  17. 一个程序验证工具的设计和实现,TP311.53
  18. Java并发程序的模型提取与模型检测技术研究,TP312.2
  19. 扬柴公司4102装配线精益生产应用研究,F426.4
  20. 卫星地面站软件可靠性设计与测试技术研究与应用,TP311.52
  21. 面向星载计算机瞬时故障的软件控制流错误检测技术,TP311.52

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 一般性问题 > 设计与性能分析 > 容错技术
© 2012 www.xueweilunwen.com