论文部分内容阅读
随着多核处理器的发展,传统多核架构已经难以满足大规模计算的需求,工业界通过将不同类型的处理器整合于同一个芯片上,形成异构多核处理器架构。经过多年的研究和优化,多核处理器迅速发展,并逐渐取代单核处理器成为提升处理器性能的重要途径。图形处理器(Graphics Processing Unit,缩写GPU),又称显卡处理器,是一种专门进行图像运算的微处理器。CPU在处理数值计算任务方面优于GPU,但GPU在控制逻辑方面比CPU更为简单高效,且GPU集成了大量的并行处理内核,比CPU具有更高的单位功耗计算能力。CPU核心和GPU核心在功能和结构方面求同存异。研究者将CPU和GPU通过有效的方式集成在同一芯片上,形成CPU-GPU架构,将不同类型的应用程序分配给不同的核心进行并行处理,从而提高系统的性能。CPU-GPU架构对于CPU和GPU之间的资源共享,特别是最后一级缓存(Last Level Cache,简称LLC)共享提出了新的挑战。由于GPU拥有大量的并发线程和很高的延时容忍访存度,共享LLC将受到成千上万个来自GPU应用程序线程的内存访问支配。大量的LLC空间将为GPU应用程序所占据,留给CPU的空间极为有限,CPU应用程序对于LLC的访问明显降低。针对以上情况,为了提高异构多核架构下共享LLC利用效率并提升系统性能,本文对于CPU和GPU的访存行为进行分析,提出了一种基于异构多核的LLC缓冲管理机制(Buffer-for-GPU,简称BFG)。该机制在LLC级建立一个与其结构相同、位置相邻的缓冲Buffer,用于分离CPU和GPU请求消息。缓存不敏感GPU消息直接访问Buffer而不访问LLC,从而达到过滤GPU请求的目的,为CPU应用程序腾出LLC空间。考虑到在多核架构下,GPU应用程序可能表现出不同的行为特征,在BFG机制基础上提出基于缺失感知LLC缓冲管理策略(Miss-Aware Buffer-for-GPU,简称MBFG),将基于缺失感知的缓存替换策略应用于缓冲Buffer中。该策略根据计算时间间隔内Buffer缺失率的高低,动态地切换对当前运行状态有利的替换策略,在保证CPU性能的同时,再次提升了GPU的性能,最后达到提升系统整体性能的目的。为了精准地评估实验方案对系统性能的影响,本文中的实验采用Gem5-GPU模拟器作为基础架构模拟平台,并使用SPEC CPU 2006与Rodinia测试程序集作为基准程序进行实验验证。实验结果表明,基于异构多核的LLC缓冲管理机制架构相比于传统异构多核架构CPU应用程序性能平均提升了2.48%,最高达到3.80%;GPU应用程序性能平均提升了9.30%,最高达到11.63%。CPU应用程序的LLC命中率平均提升了70.45%。基于缺失感知的LLC缓冲管理策略架构相比于传统异构多核架构,GPU应用程序性能最高提升13.52%。因此,本文提出的基于异构多核的LLC缓冲管理机制和基于缺失感知的LLC缓冲管理策略,对异构多核系统的性能方面有很大的提高。