论文部分内容阅读
随着工艺尺寸的减小,现代集成电路仍然按照摩尔定律不断发展,设计规模越来越大,复杂度越来越高,特别是在处理器设计领域集中体现了这一规律。更高的集成度使处理器体积变得更小,结构更复杂,这种变化在大幅提高处理器性能的同时,也使处理器验证变得更加困难。目前的芯片设计项目中,验证所花费的时间和精力已占整个设计过程的一半以上,特别是寄存器传输级(RTL)和高层验证已然成为整个设计过程的瓶颈。处理器验证无疑成为当今验证领域的一个巨大挑战。
在众多架构的处理器中,X86架构处理器经历几十年的发展,在处理器运行模式、指令集结构以及内存管理机制等方面比其他架构处理器更加复杂,使X86架构处理器功能验证更加困难。
本文首先简要介绍了处理器验证技术的背景知识及研究状况。在此基础上,针对Godson-D处理器,实现了复杂指令以及分页机制的功能验证。本文的主要工作包括:
1.验证基础平台搭建
分析了X86处理器不同运行模式的进入及跳转方式,通过调整控制寄存器,编写运行模式所需数据结构以及内存管理机制,搭建了进入保护模式、兼容模式以及64位模式(兼容模式与64位模式统称为长模式)的验证平台,从而为指令集在这三种模式下进行功能验证奠定了基础。
2.保护模式及长模式下的复杂指令验证
分析了X86架构处理器指令集格式及指令集功能,针对X86指令集对内存段访存的次数及跳转情况,将X86指令集分为一般指令、一般复杂指令和复杂指令。其中复杂指令包括CALLFAR、JUMPFAR、RETURNFAR、INT和IRET共五条,这些指令由于可以进行跨内存段访存,大大增加了验证难度。通过研究这五条复杂指令的功能点及调用方法,利用验证平台,在保护模式、兼容模式以及64位模式下对这些指令进行了定向功能验证,编写测试激励八百余条,实现功能点覆盖率100%,帮助设计人员发现设计错误32处。
3.分页内存管理机制验证
分析了X86架构处理器的页内存管理机制,针对页内存管理机制设计中可能存在的TLBmissing问题,通过编写测试激励180余条,对X86架构处理器支持的3种分页机制——32bit分页机制、PAE分页机制、IA-32e分页机制,共7种模式——32bit分页机制的4Kb页和4Mb页,PAE分页机制的4KB页和2MB页及IA-32e分页机制的4Kb页、2Mb页和1Gb页的页内存管理模式进行定向功能点验证,尽可能避免在任一种页内存管理模式下由于设计问题导致TLBmissing,实现了功能点覆盖率100%,帮助设计人员发现设计错误6处。