在当今的超级计算机领域,多核处理器的采用率正在迅速增长。本文将深入探讨IBM POWER9处理器的后硅验证,并分析其对于多核处理器验证领域的创新。
IBM的Threadmill是一个用于处理器验证的低级“锻炼”软件程序,它直接在裸机处理器上运行(即,没有任何操作系统)。该程序配置了模板,这些模板是参数化的机器代码片段,可以通过某种方式随机化——随机化指令、随机化地址等。锻炼程序可以在硅前在模拟、仿真或FPGA上运行,也可以在实验室中硅后运行。
本文详细介绍了IBM如何自POWER7以来增强Threadmill的一些有趣的新内容:首先,他们在仿真期间对模板的运行时分配进行了加权,为发现更多错误的模板运行了10-100倍更多的时钟周期。其次,他们部署了一些聪明的信息编码技巧来协助调试。例如,对于与多个核心同时增加相同内存地址时丢弃写入有关的错误,他们让每个核心以不同的数量增加该内存地址。然后,该地址中实际值与预期值之间的差异告诉他们哪个核心的写入因竞争而被丢弃。第三,他们通过更多的技巧增强Threadmill,以更好地偏置随机化以更好地击中错误。原始Threadmill来自POWER7的论文分享了使用多个核心的相同随机种子对内存地址进行随机化的技巧,这增加了加载/存储竞争的频率。在这次POWER9论文中,他们偏置地址以也与内存页面边界对齐,以增加跨页面访问的频率。最后,他们使用AI来帮助进一步优先处理模板以更快地达到覆盖率。
与POWER8相比,在80%的时间内发现了30%更多的错误。这是一个非常困难的问题上的相当不错的进步!