硬件功能验证中的机器学习技术应用
1. 覆盖模型结构的自动发现
在硬件功能验证中,覆盖模型的固有结构可用于改进覆盖空间的分析,例如通过漏洞分析能在交叉积覆盖模型中找到大的未覆盖漏洞。然而,很多情况下覆盖模型是由一组无明确结构的单个覆盖事件定义的,此时就需要手动搜索大的覆盖漏洞,这是一项繁琐且耗时的任务。
机器学习技术在许多分类和聚类问题中已被证明是有效的。因此,应用这些技术可以提高查找覆盖漏洞的效率和质量,并减少手动工作量。Gal等人提出了一种基于聚类的技术,用于在验证环境(如交叉积环境)中查找大的覆盖漏洞,该环境中的覆盖模型没有明确的结构。此技术利用覆盖事件名称之间的关系,例如“reg_msr_data_read”与“reg_pcr_data_write”关系较近,而与“instr_add_flush”关系较远。
为了找到大的覆盖漏洞,该技术将经典聚类与特定领域的优化相结合,把单独定义的覆盖事件映射到交叉积空间,然后使用交叉积漏洞分析技术来查找这些空间中的大覆盖漏洞。分析主要包括三个步骤:
1. 聚类所有覆盖事件并映射到交叉积空间 :
- 首先将每个覆盖事件拆分为单词,事件名称的形式如“w1_w2_…_wn” ,拆分事件名称的方法适用于任何命名约定。
- 所有事件的单词作为聚类算法的特征,这里使用K - means算法和非负矩阵分解算法(NMF)。与标准文档分类的主要区别在于,为每个单词添加了索引,因为在相同位置共享相同单词的事件更可能相关。例如,“reg_msr_read”更可能与“reg_pcr_write”相关,而不是“set_data_reg_to_0”。实际操作中,事件名称中的每个单词使用两个索引:从
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



