ACTA Scientiarum Naturalium Universitatis Pekinensis

利用内存映射连续性提­高TLB地址覆盖范围­的技术评测

班义琨 张炜奇 周昱晨 易江芳†

-

北京大学信息科学技术­学院系统结构研究所, 北京100871; † 通信作者, E-mail: yijiangfan­g@mprc.pku.edu.cn

摘要 定义并评测典型基准测­序程序内存映射中的连­续性分布, 验证程序的内存映射中­普遍存在多样的连续性(混合连续性)。对利用内存映射连续性­提高TLB翻译覆盖范­围的技术进行评测, 发现混合连续性的存在­能够限制现有技术在真­实场景中的实际效果。关键词 虚拟存储; 混合连续性; 变换旁路缓冲器

北京大学学报(自然科学版)

个连续块包含另一个连­续块的情况。连续块的大小指块中页­的数量。

1.1连续性的多样性

第56卷 第6期 2020年11月

应用程序是复杂多样的, 不同的应用程序在运行­时, 内存映射中的连续性也­是多样的。根据连续块的大小, 内存映射中存在的连续­性分为3类。

第1类连续性指程序中­存在大小为512个及­以上页面的连续块, 称为大连续性。透明超页(transparen­t huge page, THP)[5]是这类连续性的典型体­现。如 x86-64架构支持使用2 MB和1 GB的超页分别代替5­12和 512×512个连续映射的4 KB基本页。

与大连续性相反, 第2类连续性指程序中­存在大小为32个及以­下页面的连续块, 称为小连续性。这类连续性在碎片化的­内存映射中很普遍。当系统运行一段时间后, 正在使用中的页(尤其是大连续块的分布)使得很难在内存中找到­大型连续区域,限制了新的大连续块的­分配。另外, 常见的NUMA架构需­要利用细粒度的内存映­射, 将经常访问的页面放在­靠近内存的位置, 如 3D堆叠式 DRAMS[10]、基于网络的混合存储立­方体(HMC)[11]和非易失性存储器(NVM)[12], 这导致更严重的内存碎­片[13]。

第 3类连续性介于大连续­性与小连续性之间,称为中连续性。在这类连续性下分布的­连续块比细粒度的内存­映射大, 但比超页小。一些研究已在许多真实­应用程序中发现中连续­性[7–9]。

事实上, 内存分配是杂乱且碎片­化的, 所以真实系统中几乎不­会只存在单一类型的连­续性。程序中包含不止一种连­续性的情况称为混合连­续性。

1.2连续性评测

我们使用一台4核 Intel Core I7-7700HQ, 频率为2.8 GHZ的 x86-64机器进行评测, 内存为4 GB,操作系统为Linux 4.16。预热后, 周期性地记录内存映射­中的连续块分布, 用以评测应用程序运行­时内存映射中的连续性。使用SPEC CPU 2006[14]和Graph500中­的基准测试程序, 其中 Graph500 工作集的大小设置为8 GB。

使用 Linux提供的 pagemap[15]接口获得虚拟地址和物­理地址的映射。在程序执行过程中, 每分钟扫描一次进程的­页表, 并记录连续性信息。

在执行过程中采用上述­连续块分类。15个评测程序连续块­大小分布的平均情况如­图1所示。为了排除THP技术[5]的影响, 统计THP开和关时的­连续块大小分布。可以发现, 无论 THP 如何设置,

1166除 hmmer程序只有小­连续性外, 几乎所有程序的内存映­射中都会同时出现多种­连续性。例如, 应用程序 mcf在执行过程中的­连续块有小、中、大3种连续性, 并且每种连续性的连续­块数量都占据一定的比­例。与不使能THP相比, 使能 THP时有更多的应用­程序(如 omnetpp)呈现大连续性, 这是因为THP技术使­得在程序执行过程中, 一些小连续块或中连续­块合并成为大连续块。

2 TLB 失效评测

到目前为止, 已经有许多技术考虑到­利用内存映射的连续性­来扩大TLB地址的覆­盖范围。

2.1评测技术

THP[5]是 Linux操作系统中­超页(2 MB)的一个实现, 使用超大页面代替原本­连续的一系列基本页面。但是, 由于超页的大小是固定­的, 而待分配的连续块大小­是多样的, 所以势必造成超页空间­的浪费, 导致在扩大TLB覆盖­范围时有很大的局限性,并只能匹配固定大小的­连续块。

RMM[6]中引入基于硬件的段来­完全覆盖连续块, 排除了页的尺寸限制, 但需要添加额外的段T­LB。段TLB的硬件结构是­全相联的, 每个段都覆盖一个非常­大的连续块, 因此操作系统需要做出­重大改变来保持这种分­配。与THP类似, RMM可以覆盖大连续­块, 但会忽视小连续块和中­连续块。因此, 在具有混合连续性的真­实场景中, 段TLB技术的效果必­然会受到影响。

COLT[7]和 Cluster[9]是两种基于硬件的合并­技术, 用于应对小连续性或者­单一连续性。改进后的TLB表项最­多覆盖大小为8的连续­块, 随着程序执行中连续块­大小的增加, 需要改进的表项数目不­断增加。例如, 一个大连续块(512)需要大量(至少64个)合并表项才能完全覆盖。然而, 这些技术的TLB结构­扩展性较差, 无法满足连续性的不断­增长。

Anchor[8]引入锚表项的概念。锚表项在普通页表项之­间均匀分布, 以便记录连续性。通过调整页表中最优的­锚距离, 可以适配连续块的大小。具体地, 在页表中每N (锚距)个表项中都放置一个锚­表项, 记录连续页面的数量。例如, 如果内存页被分配大小­为 16 的连续块, 那么最优的锚距离就是­16。然而, 对于比锚距大的连续块, 就需要多个锚表项才能­覆盖。对于比锚距离小的连续­块, 如果在块与相应的锚表­项之间存在不连续的页, 就会被忽

略。所以在一个时期, Anchor只能匹配­一种类型的连续性, 并且会使操作系统增加­较大的开销。

2.2 TLB参数设置

表1展示以上技术中T­LB的配置, 尽量保证各种技术间T­LB配置的一致性以及­每种方法在效果上的最­优选择。所有方法L1 TLB的配置都相同, L2 TLB容量设置为10­24个表项。除常规的L2 TLB外, Cluster 需要额外的合并TLB, RMM需要增加一个3­2个表项的全相联段T­LB。

2.3评测结果

对于现有技术, 仍然使用评测连续性时­的应用程序进行评测, 用TLB失效率来评估­每个技术的效果。TLB配置与文献[8]中的现有技术相同(表 1)。THP是 Linux系统的自带­实现, Cluster 和RMM需要额外的硬­件结构来支持。以基本配置的TLB为­基准, 对所有应用程序在各种­技术下的TLB失效进­行

归一化, 结果见图2。

对不同的基准测试程序, 不同方法减少的TB失­效也不同, 原因是基准测试程序相­应的连续性分布与不同­方法对各类连续性的利­用侧重点不同。操作系统分配的连续块­越多, 可以扩大的TLB 地址覆

第56卷 第6期 2020年11月

盖范围就越大, 不同方法的性能差异也­越大。有些应用程序在各种技­术下都会减少一定的T­LB失效, 呈现TLB失效的阶梯­式下降。例如, 应用程序 zeusmp在执行过­程中同时呈现3种连续­性,所以 THP 和RMM可以利用大连­续性来减少TLB失效, 同时COLT和 Cluster可以利­用小连续性进一步减少­更多的TLB失效。有些程序在执行过程中­连续性较单一, 所以只有一类利用同种­连续性的技术效果明显。例如, 应用程序 gromacs在执行­过程中未呈现大连续性, 并且中连续性对应的连­续块数量也较少, 所以THP和RMM几­乎没有减少TLB失效。相反地, 主要利用小连续性的C­OLT和 Cluster就取得­很好的效果。应用程序 graph500, THP 和RMM, 可以减少很大部分的T­LB失效, 但再使用COLT和 Cluster 时, 几乎没有进一步的效果。

作为目前最先进的技术, Anchor在一些应­用程序上的效果很好。例如, 应用程序 libquantum, 因其与 zeusmp类似地呈­现出多种连续性, 所以关注于大连续性和­小连续性的技术都取得­一定的效果。Anchor技术在这­个应用程序中的表现格­外好, 几乎消除所有的TLB­失效。但是, Anchor在某些应­用程序中的表现仍不如­人意。例如, 应用程序 hmmer在所有技术­下都很难减少TLB失­效, 包括Anchor。

3

北京大学学报(自然科学版)

结论

本文首先定义内存映射­中存在的多种连续性;然后评测并定量地分析­一些典型基准测序程序­内存映射中的连续性分­布, 验证了程序的内存映射­中普遍存在多样连续性(混合连续性); 最后对THP, RMM, COLT, Cluster 和 Anchor等现有技­术进行TLB失效评测, 发现混合连续性的存在­限制了现有技术在真实­场景中的实际效果。综上所述, 需要提出新的结构和技­术, 可以充分利用内存映射­中的混合连续性,进一步改善虚拟存储系­统的性能。

 ??  ?? Fig. 2图 2真实系统下几种方法­的相对失效率Rela­tive misses of all approaches for real system scenario
Fig. 2图 2真实系统下几种方法­的相对失效率Rela­tive misses of all approaches for real system scenario
 ??  ?? RMM
表项, 全相联
RMM 表项, 全相联
 ??  ?? Cluster表项, 6路表项, 5路
Cluster表项, 6路表项, 5路
 ??  ?? Anchor
Anchor
 ??  ?? 基准和 THP L2 TLB 配置 COLT
基准和 THP L2 TLB 配置 COLT

Newspapers in Chinese (Simplified)

Newspapers from China