基于搜索的集成电路压力测试方法
1. 引言
集成电路(IC)通常采用模块化设计,开发者将各种子系统组合成综合规范(常以 RTL 表示),再用于硬件组件的合成,这往往需要设置各种参数以优化性能。测试时,通常在“系统级”进行,即通过制定和运行旨在测试 IC 的软件应用程序,并使用辅助应用程序监控底层 IC 的状态,确保其性能符合预期。传统上,这些测试套件是手工构建的,目的常是对 IC 的各个方面进行“压力测试”。
手工测试存在问题,它需要大量的时间和精力来制定。在 IC 领域,由于 IC 常由多个组件组合而成,测试用例很少能被重用,因为对于给定系统,很难预测不同软件参数如何相互作用并影响底层 IC。此外,IC 还存在显著的可测试性问题,从软件角度看,其行为通常高度不确定,会受到其他常规操作系统进程的大量干扰,难以控制,即相同的测试执行可能导致截然不同的行为。
本文聚焦于 ARM 的 CoreLink 缓存一致性互连(CCI)这一硬件组件,它旨在跨多个处理器集群维持多级缓存一致性支持,确保每个访问内存的“主设备”都能获取最新的数据视图。CCI 为开发者提供了大量参数,其性能和行为受操作系统运行的其他进程影响很大,从测试应用程序的角度来看具有高度不确定性。
我们描述了一种基于搜索的方法,用于自动为 CCI 生成测试集,以规避上述不确定性问题。具体贡献如下:
- 简要描述基于传统遗传算法的测试生成方法的初步尝试,该方法通过搜索直接确定可能的内存配置组合,以对 CCI 进行压力测试。
- 提出一种使用爬山法的更高级测试输入生成方法,以解决初始基于遗传算法方法中出现的不确定性问题。
- 通过实验证明,爬山法比传统手工测试集能更有效地对 CCI
超级会员免费看
订阅专栏 解锁全文
94

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



