论文部分内容阅读
随着技术的进步和处理器结构的发展,高性能通用微处理器的TLB(TranslationLookasideBuffer)成为系统性能的瓶颈。为加快TLB的访问速度,TLB通常采用全相联结构。全相联的组织模式大大限制了TLB覆盖率的增长。TLB可以是硬件管理的也可以是软件管理的,前者虽然高效却限制了操作系统的灵活性,越来越多的处理器结构采用软件管理的TLB。软件管理的TLB除了要面对日趋低下的低覆盖率的压力,还要遭受较高的TLB失效开销造成的系统性能损失。TLB系统性能的损失是由较大的TLB失效开销或较低的覆盖率造成的,或者两方面共同作用造成的。具体到不同的应用,由于其工作集和访存模型的不同其TLB行为也不同。因此,优化TLB系统性能需要从降低TLB失效开销和降低TLB失效率这两个角度出发。
本文以龙芯处理器为研究平台,对高性能通用微处理器TLB性能优化的关键技术进行了深入的研究。本文的主要工作与创新点如下:
1.为降低TLB重填例外处理中的访存开销,本文提出软硬件协同的多级TLB结构,该结构中软件实现二级TLB表(SL2TLB)。该表为一个平面结构,其内部缓存了大量TLB表项。与多级页表相比,查询该TLB表所需的访存次数较少,访存造成的Cache失效次数更少,且该表的命中率达到95%以上。在此基础上,本文利用龙芯3号处理器提供的Cache锁机制将SL2TLB表锁进L2Cache中,避免了查找SL2TLB表时可能引发的L2Cache失效,从而进一步降低TLB失效开销,优化系统性能。实验结果表明,软硬件协同的多级TLB结构,对SPECCPU2000测试程序集中TLB失效严重的程序性能平均提高5%,对SPECCPU2006测试程序集平均性能提高达7%以上。
2.随着多核处理器时代的到来,越来越多的应用采用并行编程模式,而目前多核处理器系统通常采用私有的TLB结构。根据程序的局部性原理,并行执行的多个线程会在多个处理器核上产生大量重复的TLB失效。鉴于此,本文提出了多核处理器上软件实现的共享二级TLB结构(Shared-SL2TLB),降低了各个处理器核内95%以上的TLB失效开销和几乎所有核间冗余的TLB失效的开销。本文对并行测试程序集PARSEC进行评估,结果表明在集成了Shared-SL2TLB结构的系统中其性能提升达7%。
3.为降低TLB失效率,本文在龙芯3号处理器上实现了静态可变页和动态可变页技术。静态可变页技术即HugeTLB技术,本文在采用龙芯处理器核的曙光服务器上,对该技术进行了评估。该技术减少了LINPACK测试程序中99%的TLB失效,使得系统整体性能提升了5%。本文设计实现的动态可变页系统,在保留的激进式超页分配策略和渐进式的超页延迟降解策略的基础上,提出了基于热点页面识别的超页提升策略。该策略通过统计页面访问的热度信息,有针对性地提升超页,降低了超页系统的开销,并源源不断地为系统提供超页。该系统与16KB页大小系统的性能相比有5%以上的性能提升,同时可变页系统可有效地提高内存利用率。