×

使用符号执行和未解释的功能进行嵌入式软件验证。 (英语) Zbl 1100.68586号

摘要:符号模拟和未解释的功能一直是正式硬件验证的主要技术。近年来,我们将这些技术应用于特定低级嵌入式软件的自动形式验证,检查不同版本汇编语言程序的等效性。我们的方法虽然可扩展性有限,但对于复杂的代码优化和高性能嵌入式软件典型的复杂体系结构(例如DSP和VLIW处理器)来说,已经证明特别有前景。事实上,我们的一个关键发现是,创建验证工具或将其重新定位到不同甚至非常复杂的机器是多么容易。生成的工具会自动验证或发现几个工业和已发布示例代码的小序列中以前未知的错误。本文介绍了这些技术并回顾了我们的结果。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] R.E.Bryant,《基于逻辑模拟的硬件验证方法》,J.ACM,38(2):299-328(1991年4月)·Zbl 0809.94035号
[2] R.E.Bryant,布尔函数操作的基于图形的算法,IEEE Trans。计算机,C-35(8):677–691(1986年8月)·Zbl 0593.94022号
[3] R.E.Bryant,《关于布尔函数的VLSI实现和图形表示的复杂性及其在整数乘法中的应用》,IEEE Trans。计算机,40(2):205-213(1991年2月)·Zbl 1220.68060号
[4] J.Joyce、G.Birtwistle和M.Gordon,《证明高阶逻辑中的计算机正确性》,技术报告UCAM-CL-TR-100,剑桥大学计算机实验室(1986年12月)。
[5] J.R.Burch和D.L.Dill,流水线微处理器控制的自动验证,计算机辅助验证:第六届国际会议,计算机科学讲义,第818卷,第68–80页,Springer(1994)。
[6] D.Cyrluk和P.Narendran,《地面时序逻辑:硬件验证的逻辑》,《计算机辅助验证:第六届国际会议》,计算机科学讲义,第818卷,第247-259页,Springer(1994)。
[7] R.E.Bryant、S.K.Lahiri和S.A.Seshia,使用带有Lambda表达式和未解释函数的反算术逻辑建模和验证系统,计算机辅助验证:第14届国际会议,计算机科学讲义,第2404卷,第78-92页,Springer(2002)·Zbl 1010.68522号
[8] W.Ackermann,决策问题的可解案例,北荷兰人(1954)·Zbl 0056.24505号
[9] M.Davis和H.Putnam,量化理论的计算程序,J.ACM,7(3):201-215(1960年7月)·Zbl 0212.34203号
[10] M.Davis、G.Logemann和D.Loveland,定理证明的机器程序,Commun。ACM,5(7):394–397(1962年7月)·Zbl 0217.54002号
[11] J.P.Marques Silva和K.A.Sakallah,GRASP–一种新的可满足性搜索算法,计算机辅助设计国际会议,第220–227页,IEEE/ACM(1996)。
[12] H.Zhang,SATO:一种有效的命题谚语,第14届自动推理会议,《人工智能讲义》,第1249卷,第272–275页,施普林格(1997)。
[13] M.W.Moskewicz、C.F.Madigan、Y.Zhao、L.Zhang和S.Malik,《设计高效SAT求解器》,第38届设计自动化会议,第530-535页,ACM/IEEE(2001)。
[14] Nelson G.,Oppen D.C.(1980年)。基于同余闭包的快速决策过程。美国临床医学杂志27(2):356–364·Zbl 0441.68111号 ·doi:10.1145/322186.322198
[15] R.E.Bryant、S.German和M.N.Velev,《利用未解释函数在平等逻辑中利用正平等》,《计算机辅助验证:第11届国际会议》,《计算科学讲义》,第1633卷,第470-482页,Springer(1999)·Zbl 1046.68584号
[16] R.E.Shostak,《决定理论组合》,J.ACM,31(1):1-12(1984年1月)·Zbl 0629.68089号
[17] D.Cyrluk、P.Lincoln和N.Shankar,《论肖斯塔克理论组合的决策程序》,载于M.A.McRobbie和J.K.Slaney(编辑),《自动演绎-CADE-13》,《人工智能课堂讲稿》第1104期,第463–477页,新泽西州新不伦瑞克市斯普林格·弗拉格出版社(1996年7月/8月)。
[18] C.Barrett、D.Dill和J.Levit,《理论与平等相结合的有效性检查,计算机辅助设计中的形式方法:第一届国际会议》,《计算机科学讲义》,第1166卷,第187-201页,Springer(1996),目前软件可在http://chicory.stanford.edu/SVC。
[19] J.-C.Filliátre,S.Owre,H.Rue和N.Shankar,ICS:集成规范化器和求解器,计算机辅助验证:第13届国际会议,计算机科学讲义,第2102卷,第246-249页,Springer(2001)·Zbl 0996.68559号
[20] A.Stump、C.W.Barrett和D.L.Dill,CVC:合作有效性检查器,计算机辅助验证:第14届国际会议,计算机科学讲义,第2404卷,第500-504页,施普林格(2002)·Zbl 1010.68720号
[21] D.Detlefs、G.Nelson和J.B.Saxe,《简化:程序检查的定理证明器》,技术报告HPL-2003-148,惠普实验室(2003)·Zbl 1323.68462号
[22] C.Barrett和S.Berezin,CVC Lite:合作有效性检查器的新实现,计算机辅助验证:第16届国际会议,计算机科学讲稿,第3114卷,第515–518页,Springer(2004)·Zbl 1103.68605号
[23] L.de Moura和H.Rue《地面决策程序的实验评估》,《计算机辅助验证:第16届国际会议》,计算机科学讲稿,第3114卷,第162-174页,Springer(2004)·Zbl 1103.68645号
[24] C.Blank、H.Eveking、J.Levihn和G.Ritter,《符号模拟技术——现状和应用》,高级设计、验证和测试国际研讨会,第45-50页,IEEE(2001)。
[25] D.W.Currie,DSP汇编语言程序形式验证工具,硕士论文,不列颠哥伦比亚大学(1999年8月)。
[26] D.W.Currie、A.J.Hu、S.Rajan和M.Fujita,DSP软件的自动形式验证,第37届设计自动化会议,第130–135页,ACM/IEEE(2000)。
[27] A.Sudarsanam、S.Malik、S.Rajan和M.Fujita,《富士通定点数字信号处理器高质量编译器的开发》,第七届硬件/软件代码设计国际研讨会论文集,第2-7页,ACM SIGDA,罗马(1999年5月)。
[28] X.Feng和A.J.Hu,预定VLIW代码的自动形式验证,嵌入式系统语言、编译器和工具以及嵌入式系统软件和编译器联合会议,第85-92页,ACM SIGPLAN(2002)。
[29] X.Feng,预定VLIW代码的自动形式验证,硕士论文,不列颠哥伦比亚大学(2002年8月)。
[30] 德州仪器公司,《TMS320C6000 CPU和指令集参考指南》(2000年10月),文献编号SPRU189F。
[31] W.-M.W.Hwu、R.E.Hank、D.M.Gallagher、S.A.Mahlke、D.M.Lavery、G.E.Haab、J.C.Gyllenhal和D.I.August,《未来微处理器的编译器技术》,Proc。IEEE,83(12):1625-1640(1995年12月)。
[32] R.Oshana,《高性能DSP的优化技术》,嵌入式系统编程(1999年3月),我们访问了在线文章http://www.embedded.com/1999/9903/9903osha.htm。
[33] M.S.Lam,《软件流水线:VLIW机器的有效调度技术》,编程语言设计与实现会议,第318-328页,ACM SIGPLAN(1988)。
[34] B.Huber,私人通信,2002年8月27日。
[35] T.Sukemura,FR500 VLIW-架构高性能嵌入式微处理器,富士通科技期刊,36(1):31–38(2000年6月)。
[36] T.Ball和S.K.Rajamani,《SLAM工具包》,《计算机辅助验证:第13届国际会议》,第2102号,计算机科学讲义,第260-264页,Springer(2001)·Zbl 0996.68560号
[37] W.Visser、K.Havelund、G.Brat、S.Park和F.Lerda,《模型检查程序》,自动化软件工程,10(2):203-232(2003年4月)。
[38] M.Musuvathi、D.Y.W.Park、A.Chou、D.R.Engler和D.L.Dill,《CMC:模型检查实际代码的实用方法》,操作系统设计与实现研讨会,第75–88页,ACM SIGOPS(2002)。
[39] E.Clarke、D.Kroening和F.Lerda,《检查ANSI-C程序的工具、系统构建和分析的工具和算法》,《计算机科学讲义》,第2988卷,第168-176页,Springer(2004)·Zbl 1126.68470号
[40] O.Thiry和L.Claesen,《嵌入式软件的形式验证技术》,IEEE国际计算机设计会议,第352-357页,IEEE计算机学会出版社,美国纽约(1996)。
[41] Balakrishnan S.,Tahar S.(1997年)。关于使用多路决策图对嵌入式系统进行形式验证,技术报告TR-402,加拿大蒙特利尔康科迪亚大学
[42] K.Hamaguchi、H.Urushihara和T.Kashiwabara,《验证高水平设计的信号转换一致性的符号检查》,《计算机辅助设计中的形式方法:第三届国际会议》,计算机科学讲稿,1954年,第455-469页,Springer(2000)。
[43] K.Hamaguchi,《具有未解释功能的高层设计描述的符号模拟启发法》,《高层设计、验证和测试国际研讨会》,第25-30页,IEEE(2001)。
[44] G.C.Necula,优化编译器的翻译验证,编程语言设计与实现会议,第83–94页,ACM SIGPLAN(2000)。
[45] K.C.Shashidhar、M.Bruynooghe、F.Catthoor和G.Janssens,面向内存的全局源代码转换的自动功能验证,高级设计、验证和测试国际研讨会,第31–36页,IEEE(2003)。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。