论文部分内容阅读
随着人类对计算机速度和计算规模需求的不断提高,传统的单核处理系统已经不能满足市场的需求,多核(Multi-cores)系统应运而生[1]。同时伴随着集成电路制造工艺的提高,45nm工艺时代的到来,在单芯片上集成多核成为现实,原本只有在大型服务器上才会使用的多处理器系统,逐渐迈入普通消费市场,越来越多的嵌入式系统都采用多核处理器。而在多核处理器设计过程中,验证工作复杂度和工作量极大,成为项目开发的瓶颈所在[2]。为了解决验证的问题,业界提出了不少方法,高效准确的处理器参考模型是当前处理器验证中普遍采用的核心技术。现在主流的处理器参考模型分为时序精确型(cycle-accurate model)参考模型、传输精确型(Transaction-accurate model)参考模型和功能精确型(Function-accurate model)参考模型,满足不同程度的验证需求。在多核处理器的参考模型中,各处理器的高速缓存数据一致性(cachecoherence)问题是一直困扰着计算机设计者的一个重要问题。由于计算机处理器性能的提高速度远远高于存储器件性能的提高速度,而访问存储器的时间较长导致计算机性能的提高受到限制[3]。为了使计算机的性能得到提高,缩短存储器与处理器的性能差距,在计算机系统中引入了高速缓存寄存器(cache)。而在多核处理器系统中,每个处理器可能对同一数据块进行操作,这时就需要有一致性协议来保证数据的正确性,这个协议就是高速缓存一致性协议。本文首先对数据高速缓存一致性问题进行了详细分析和研究。针对现有架构和问题,本文提出一种功能级精确的多核参考模型架构,采用指令提前执行模块技术和高速缓存一致性模块技术来精确模拟多核处理器硬件并发操作和高速缓存一致性功能。该多核参考模型架构由六部分组成:序列文件处理模块、处理器选择模块、处理器模块、结果对比模块、提前执行模块和高速缓存一致性模块。序列文件处理模块负责读取并处理序列文件。处理器选择模块用于选择执行下一条指令的处理器。处理器模块负责执行指令,包括取指、译码、执行等子模块。提前执行模块决定一条读写指令是否需要被提前执行。高速缓存一致性模块负责维护高速缓存一致性,其接收并响应处理器模块发送的高速缓存一致性请求。提前执行模块和高速缓存一致性模块是多核处理器参考模型的两个关键模块,确保准确模拟指令乱序执行、多核并发操作和高速缓存一致性功能。随后,在该架构基础上,本文采用软件编程实现模拟多核处理器硬件并发操作和高速缓存一致性功能。最后,论文讲述了设计验证的流程和使用的工具,给出了设计验证和性能的测试结果,将改进后的参考模型与传统的验证方法效果进行了对比。结果证明:该参考模型可以在仿真验证中,取得较好的仿真时间和仿真精确度的折中,可显著提高多核处理器的验证开发效率。