论文部分内容阅读
现代处理器中转换旁视缓冲(Translation Look-aside Buffer,TLB)通常由相联存储器实现,对相联存储器的访问会造成较大的功耗开销,并且需要较长的延迟。32位处理器向64位处理器的升级加剧了TLB的功耗和访问延迟问题,同时增加了TLB失效的性能损失。本文基于粗粒度的存储单位--存储区域研究与设计低功耗、低延迟和高性能的TLB,为解决64位处理器中TLB设计面临的突出问题提供了新的方案。本文的创新点主要有:
(1)统一了片上存储系统优化的存储单位。一方面,将存储区域从物理地址空间引入到虚拟地址空间,使得存储区域成为了包括物理存储和虚拟存储在内的整个片上存储系统优化的基本单位。另一方面,本文基于存储区域对TLB进行优化,并不只是针对某一方面的优化,而是提出了一个整体的优化方案,使得TLB在功耗、面积、访问延迟、功耗密度和性能等方面都有所改善。
(2)研究与设计基于存储区域的低功耗、低延迟的数据转换旁视缓冲(dataTLB,dTLB)。提出一种能够减少标签宽度的新dTLB设计,从而降低dTLB比较查询的功耗和减少比较查询的延迟。这种新的设计源于这样的观察:dTLB的标签代表着很大的存储区域,比TLB本身保存的基页要大得多。在标签比较之前,采用少量的几位标识来表示冗余的标签高位,这种区域的编码与回收只有少量的时间与功耗开销。与此同时,采用将基址高位当成虚拟地址高位的地址推测技术以防止性能的降低。实验表明,与参考dTLB相比,新设计的平均动态功耗降低了56.24%、访问延迟减少了8.59%、面积减少了34.28%、功耗密度降低了33.41%,而性能几乎保持不变。
(3)研究与设计基于存储区域的低功耗、低延迟的指令转换旁视缓冲(instruction TLB,iTLB)。经实验观察到,在相当长的指令运行期间,指令存取的虚拟存储区域数量是非常有限的,并且区域之间的切换也是非常少的。在iTLB结构中,保存的虚拟基页仅仅分布在少量几个存储区域内,采用编码技术,用极少数几位来表示少量的几个存储区域,从而减少了iTLB结构中CAM的大小;同时,区域之间切换少表明指令在很长一段指令运行期间,集中在一个区域内运行,即下一条指令与上一条指令都在同一个区域而不发生跳转,这样就可以采用重用技术。与参考的iTLB相比,新设计的平均功耗降低了62.84%、访问延迟减少了9.99%、面积减少了44.92%、功耗密度降低了33.59%,而平均性能只降低了0.23%。
(4)研究与设计基于存储区域的页表表项缓冲,以提高TLB的性能。在层次式页表系统中,采用硬件方式处理TLB失效的处理器,其TLB失效损失与页表的层次数目成正比。32位地址空间升级到64位地址空间,页表层次将增加一到三级,TLB失效后访问内存的次数随之也增加一到三次,使得从TLB的性能损失严重增加。将存储区域概念引入到TLB失效处理,设计页表表项缓冲,保存每次访存得到的页表表项内容,减少了TLB失效访存的次数,减少了失效损失,从而有效地提高了处理器的性能。