一句话:提出 Hyperball 抽象域及 Scale 析取精化,用抽象解释量化软错误位翻转导致的最坏语义偏差。
现代系统易受软错误影响,位翻转可能改变程序语义,因此需要度量由此造成的语义质量退化。本文提出 Hyperball 抽象域,用于确定期望结果与实际结果之间的最坏情形距离;它与区间类似,描述连通且稠密的空间。为处理底层代码中位翻转的复杂语义,作者将 Hyperball 与已有仿射系统抽象域结合,并把位翻转建模为析取;针对析取导致的精度损失,进一步提出 Scale 域作为析取精化,通过量化不同划分的过近似,并用子模优化在近似最优边界内寻找良好划分。评估表明,在所示应用中,加入 Scale 可将 Hyperball 抽象的精度最多提升两个数量级,证明方法可行,但执行效率仍需改进。
Modern systems are increasingly susceptible to soft errors that manifest themselves as bit flips and possibly alter the semantics of an application. We would like to measure the quality degradation on semantics due to such bit flips, and thus we introduce a Hyperball abstract domain that allows us to determine the worst-case distance between expected and actual results. Similar to intervals, hyperballs describe a connected and dense space. The semantics of low-level code in the presence of bit flips is hard to accurately describe in such a space. We therefore combine the Hyperball domain with an existing affine system abstract domain that we extend to handle bit flips, which are introduce as disjunctions. Bit-flips can reduce the precision of our analysis, and we therefor introduce the Scale domain as a disjunctive refinement to minimize precision loss. This domain bounds the number of disjunctive elements by quantifying the over-approximation of different partitions and uses submodular optimization to find a good partitioning (within a bound of optimal). We evaluate these domains to show benefits and potential problems. For the application we examine here, adding the Scale domain to the Hyperball abstraction improves accuracy by up to two orders of magnitude. Our initial results demonstrate the feasibility of this approach, although we would like to further improve execution efficiency.
@article{LidmanM18,
title = {Verifying Reliability Properties Using the Hyperball Abstract Domain},
author = {Jacob Lidman and Sally A. Mckee},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {40},
number = {1},
year = {2017},
doi = {10.1145/3156017}
}