论文部分内容阅读
集成电路工艺的不断发展和体系结构设计复杂度的不断提高给处理器验证带来了越来越多的挑战。功能验证和性能验证是处理器验证中最重要的两类工作。功能验证是为了保证设计出来的处理器能够按照指定的需求规范来正确地执行操作。当前最为流行的功能验证方法是基于模拟的动态验证,其核心在于如何生成高质量的验证激励和有效地评估验证流程。性能验证则是为了保证设计出来的处理器结构能够满足指定的性能需求。当前一般都采用性能模型来实现性能验证。对于上述功能和性能验证所面临的问题,本文结合龙芯处理器的验证实践,采用了一系列机器学习技术来提高功能和性能验证的质量和效率。
本文的主要工作和创新成果如下:
第一、对于功能验证,本文提出了基于无监督学习的处理器功能验证程序在线过滤机制。该机制使用冗余的验证程序作为训练样本,通过无监督学习来在线地构建预测模型,从而对新生成的验证程序是否冗余进行预测。如果判断是冗余的验证程序则不送入仿真阶段进行仿真。我们将该机制用于了龙芯2号处理器的功能验证。通过实验发现,与约束随机的验证程序生成相比,在达到相同的覆盖率的前提下,该方法可以减少约83%的验证激励,同时降低约79%的验证时间。
第二、对于功能验证,本文提出了基于有监督学习的设计错误预测技术并将其用于有效地指导和评估验证流程。该技术首先通过有监督学习算法构建硬件描述语言复杂度特征和设计错误之间的预测模型。此后将该模型用于预测连续设计的新版本设计中的模块的设计错误信息。根据预测出来的设计错误信息,验证人员可以更有效地指导和评估验证流程。我们通过在一系列开源设计和龙芯处理器上的实验验证了该方法的有效性。
第三、对于性能验证,本文提出了基于半监督学习和主动学习的处理器建模方法。该方法的显著特点是除了将已进行模拟的设计配置作为训练数据,还考虑了使用大量未进行模拟的设计配置来进行训练,使得在不增加训练开销的前提下大幅度地提高了预测模型的准确度。实验结果表明,该方法可以将模型的准确度提高35%-95%,能够更有效地辅助性能验证。
第四、对于性能验证,本文提出了基于集成学习的处理器建模方法。我们通过实验发现在不同设计场景上,基于单一学习方法的预测模型的预测准确度变化很大。为了降低该类方法针对不同设计场景的预测准确度的抖动,以提高基于机器学习的建模方法的实用性,本文采用了集成学习使得多个子学习方法相互协作,在提高预测准确度的同时得到更加鲁棒的预测模型。实验结果表明,该方法可以将模型的准确度抖动降低70%,大大提高了基于机器学习的处理器建模方法用于性能验证的实用价值。