论文部分内容阅读
随着集成电路制造工艺的迅速发展与应用需求的不断提高,多核处理器是目前微处理器发展的主流方向。在基于共享存储的多核处理器系统中,当多个处理器核对同一存储位置访问时,由于存在缓存结构可能导致不同的处理器核读到不同的数据备份而产生错误。多核处理器引入缓存一致性控制机制保证每个处理器核对同一存储位置的读操作总能获得最新写入的值。缓存一致性控制机制需要与多个模块交互,支持请求并行处理,因此,缓存一致性控制机制的设计与验证是多核处理器设计面临的挑战之一。 本文基于北京大学微处理器研究开发中心的UniCore-3多核处理器研发项目,重点关注缓存一致性控制部件(Snoop Control Unit,SCU)的功能验证,主要工作包括: 1.分析并确定缓存一致性控制部件的验证需求。本文分析了SCU设计的5个主要宏观特性与4个方面的待测试功能,总结了SCU中子模块的41个待测试功能点,归纳出SCU功能验证的5个需求,即开发缓存模型、主存模型、参考模型,构造并发请求与乱序请求场景。 2.构建缓存一致性控制部件验证模拟环境。验证环境基于Vera工具开发,包括处理器核验证IP(Intellectual Property,知识产权)、I/O(Input/Output,输入输出)设备验证IP、缓存模型、主存模型及请求记录等部分。验证环境采用多线程编程技术,实现了53个线程。验证环境开发代码12193行,由15个文件组成。 3.统计并分析缓存一致性控制部件功能验证覆盖率,包括代码行覆盖率、功能覆盖率、请求与缓存状态组合覆盖率、请求组合覆盖率以及四核一致性协议状态机覆盖率,所有覆盖率均达到最高值。验证环境针对四核一致性协议状态机覆盖率建立反馈机制指导测试向量生成,缩短完全覆盖时间至91分钟。 4.总结缓存一致性控制部件的功能验证结果。缓存一致性控制部件验证环境协助发现设计错误54个,其中有4个错误是由于设计思路不清晰,46个错误是由于设计考虑不全面,4个错误是代码编写失误。 缓存一致性控制部件的功能验证完成后,未来的工作主要集中于UniCore-3多核处理器整体的缓存一致性控制功能的随机验证与并行应用程序验证。