阅读文献-DRAM-PCM混合存储器中的一个操作系统级数据分配方法

原文链接:https://link.springer.com/content/pdf/10.1007%2F978-981-10-2209-8.pdf

论文名:An OS-level Data Distribution Method in DRAM-PCM Hybrid Memory


DRAM-PCM混合存储器中的一个操作系统级数据分配方法

 

摘要:DRAMPCM组成的混合存储器近日获得了大量研究。相比之下,DRAM具有更低的读/写延迟和更高的耐久性,而相变存储器(PCM)具有更高的密度和更少的能源消耗。混合记忆已经被提出说能够利用这两种技术的优点,同时弥补两者的缺点。现有技术方法的数据分配方法由硬件或编译器进行管理,具有一些缺点。基于硬件的方法的缺点是需要大量存储,所需的数据交换降低了整体性能,这不利于某些局部性较差的程序。同时,基于编译器的技术需要动态程序分析,从而增加运行时间开销,并且还需要程序员的帮助,因此使其成为一种麻烦的方法。我们提出了一种OS级数据分布(OSDD)方法,其中在虚拟地址空间中具有相应读/写特征的数据段由操作系统的存储器管理模块分配给不同的存储介质。 由于我们的方法不需要程序员的输入,因此使其变得透明。 基于OSDD的混合存储器以系统级别的页面粒度将适当的数据放入相应的存储介质,并且以较少的开销获得比以前的方法更好的性能和节能。 实验结果表明,与均匀的DRAM存储器相比,我们的方法平均节电率为6%,性能提升了6

 

关键词:相变记忆·混合记忆·数据分布

 

1. 介绍

 

随着CPU内核数量的增加,并发应用程序和线程数量也在增加。 主存储器的容量也不断增加,以便将其数据保存在主存储器中。 然而,由DRAM制造的主存储器的密度,容量和能量成本正在接近物理极限,成为计算机系统的关键瓶颈。

由于这些原因,许多架构正在寻找新的DRAM替代品。 作为潜在的替代品,相变存储器(PCM)的密度比DRAM高。 因为它不需要刷新,所以它没有多余的能耗。 此外,其非易失性和字节可寻址性使系统IO优化成为可能。 然而,PCM具有比DRAM更高的读/写延迟和更高的写入能耗的缺点,并且它具有有限的耐久性和寿命。 为了在隐藏PCM的缺点的同时实现优势,许多研究人员正在尝试设计包含DRAMPCM的混合主存储架构。 他们的目标是受益于PCM提供的大容量和低能耗成本,以及DRAM同时提供的低延迟,高耐久性

设计DRAM-PCM混合存储器系统存在许多潜在的挑战。 最重要的问题是系统的哪个组件应该负责数据分配,以及如何将其分配给DRAMPCM,以最大限度地利用每种技术的优势,同时尽可能避免其缺点。 以前的工作提出了许多基于内存控制器的数据分配方法。 他们大多数以页面或块的粒度记录存储器数据的访问模式,并通过其读/写功能进行排序。 然后,控制器在运行时将它们交换到适当的存储介质,以平衡性能,能耗和寿命。 所有这些工作在某种程度上利用了混合内存的好处。 但是这些方法有些短缺。 首先,它们需要一定的存储来记录页面访问的热度和映射关系。 二是数据交换降低了系统效率。

还提出了应用级数据分发方法。这些方法尝试通过用户注释或分析程序完成编译器或用户应用程序中的数据分发。与基于控制器的方法相比,这些方法具有更大的灵活性。但这些方法也是短缺的。首先,它们需要额外的用户注释来帮助内存分配,这对用户来说是不友好的。其次,程序执行前需要动态代码分析,这会降低应用程序的整体性能。第三,分析程序本身并不受益于本身所喜欢的分配规则。

在本文中,我们提出了一种使用操作系统级数据分配(OSDD)方法的新型DRAM-PCM混合存储器系统,其中数据分配由操作系统的存储器管理模块进行。OSDD基于以下观察。一个进程的线性逻辑地址空间包括代码段,静态数据段和动态数据段等。不同区段具有各种读/写特性,如读写频率,比例,局部性,平均访问频率等。我们发现具有特定读/写功能的部分分别适用于每个存储介质的特性。OSDD可以识别页面属于哪个部分,并动态地将其映射到特定的存储介质。然后页面将不会交换到另一个媒体,直到进程结束。这样做,OSDD将适当的数据与某些访问功能分别提供给DRAMPCM。这种方法提取了DRAMPCM的优点,没有额外的存储成本和数据交换开销,并且对用户程序是透明的。在某种程度上,OSDD将程序的语义信息提供给OS的内存管理模块,并为数据分配模块带来一定的智能。评估结果表明,与基于控制器或应用的方法相比,它在较低的性能开销方面表现出更多的节能

总体而言,我们工作的主要贡献是:

1)我们概述并验证过程逻辑存储空间中不同数据段的读/写特性。

2)我们提出并评估了在操作系统层面进行的DRAM-PCM混合存储器的新数据分配方法。

3)介绍基于OSDD的系统效益,开销和限制的评估与分析。

本文的其余部分安排如下。 2节提供背景和相关工作。 第3节解释了我们的观察和动机。 第4节介绍了基于OSDD的混合存储器的设计。 第5节介绍评估和结果分析。 在第6节中,我们讨论了OSDD的一些限制。第7节将给出结论。

 

2、背景和相关工作

 

2.1DRAMPCM

 

DRAM已经被用来在现代电脑中长时间地构成主存。尽管DRAM技术的进步已经使其能够扩展到更小的尺寸和更高的密度,预计随着特征尺寸的不断降低,DRAM密度缩放将变得昂贵。满足DRAM的日益增长的存储器需求,在成本和能耗方面都将变得昂贵。

PCM是一种新兴的非易失性随机存取存储器技术,为DRAM提供了有竞争力的替代方案。其两个状态之间的电阻差,无定形和结晶可用于表示二元态。PCM具有比DRAM更大的密度和更少的静态能量消耗,因为它不需要动态刷新。PCM的读取延迟比DRAM稍微慢一点,这比FLASH更好地替代存储器。此外,非易失性和字节可寻址属性也有助于系统降低IO成本。然而,PCM也具有阻止其作为直接的DRAM替代的采用的缺点。PCM具有比DRAM更高的写入延迟和更高的动态能量消耗。并且它具有有限的写入耐久(有限的写入时间)

 

2.2 相关工作

 

提出了许多混合存储器系统,其目的是从PCM提供的大容量和低能量中获益,同时实现DRAM的低延迟和高耐久性。 这些数据分配的工作基于内存控制器或应用程序。 分配机制的质量将直接影响混合内存的性能。

PDRAM正在尝试动态检测热数据和冷数据,并将热数据移动到DRAM,冷数据移动到PCMPDRAM的第一个缺点是记录每页访问次数的存储成本。如果每个记录的成本为4字节(2为页码,2为访问次数),则每4K页记录4 GB内存将花费4 MB。另一个缺点是频繁的数据交换会干扰正常的内存访问并影响整体性能。他们的评估表明,PDRAM实现30%的节能,但增加了6%的性能开销。页面放置使用与PDRAM相似的方法,同时对关键特征进行排序,这也具有PDRAM的缺点。基于行缓冲器位置(RBL的数据分配方法以更小的粒度分布数据。他们观察到行缓冲器在DRAMPCM中具有相同的延迟和带宽,并且只有行缓冲区未命中将导致PCM中比DRAM中更多的延迟和带宽。所以他们把具有更高的RBL的数据放在PCM上,而较低的数据在运行时被放到DRAM中。这种方法对于具有良好局部性的工作负载获得了更好的性能,但对于局部性差的某些工作负载表现出差的行为。此外,数据交换也会消耗一定的性能。

HaVOC是一种混合内存模型,允许程序员或编译器分配应用程序的地址空间,并生成数据和指令布局。 HaVOC映射指令块到NVM,因为它们的易变性相当低;映射代码块到SRAM,因为它们的易变性很高。这种方法的缺点是它需要程序员的注释,这对用户来说是不友好的。功率感知变量分区是一种将变量分配到不同库中以减少功耗和PCM写入次数的方法。基于图形模型,具有更高写入比例的变量放入DRAM库,并将较低的写入量放入PCM库中。该方法平均降低了53%的功耗。然而,这种方法是基于静态分析,增加了执行时间的2-18%。混合SPM的数据分配优化[提出了一种为每个程序区域生成最佳数据分配的动态算法。在执行每个程序区域之前,首先执行数据管理代码以产生数据分配,这将使大多数写入的数据移入SRAM,并将最多读取的数据移动到NVM中。动态分析降低了应用程序的性能。

这些方法在一定程度上利用了混合内存的优点。然而,它们伴随着显著的额外的存储成本或交换成本或动态分析,这降低了整体系统性能。

 

2.3 逻辑地址空间中的数据部分

 

操作系统在32位机器中为每个进程分配大小通常为4 GB的线性地址空间。 在虚拟内存空间中,编译器会在不同的地址部分中组织指令和数据,以便于运行和管理。 不同的操作系统具有各种逻辑地址空间,但通常逻辑存储空间包括系统代码部分,系统数据部分,用户代码部分和用户数据部分[11]。 根据各自的使命,不同部门具有不同的读/写功能,如访问频率和局部性以及访问方差等。在此工作中,我们将设计和实验集中在用户代码部分和用户数据部分,以证明其有效性。

 

3 观察和动机

 

3.1 观察

 

为了找出逻辑地址空间中每个部分的存储器访问特征,我们使用Pin工具[2,10]分析了Splash2 [4,9]Parsec3 [3,9]20个基准的内存访问轨迹,用于收集运行程序的内存跟踪。基准程序领域包括财务分析,计算机视觉,物理建模,未来媒体,基于内容的搜索等,这代表了目前计算机应用的主要方面。我们详细分析了每个工作台的内存跟踪,并从多个角度得出了一系列统计数据。分析索引包括独立地址号,总读/写计数,独立地址的平均访问计数以及存储器访问频率的方差。在所有这些指标中,我们主要检查其中两个。第一个是每个工作台的代码段和数据段的独立地址数量,如图1所示,另一个是代码段和数据段的独立地址的平均访问频率,如图2所示。由于在数据部分分别有读取和写入访问,因此我们将它们分开,以区别它们

 

1:足迹(独立地址数量):数据部分具有比代码段更独立的地址。

 

2: 热度(平均访问次数):代码部分的访问远远超过数据部分。

 

从观察中我们发现几种常规的内存访问模式:

(1)代码部分的尺寸要小得多,数据部分要比较大。 因为数据部分的独立地址数量是指令部分的10-500倍,如图1所示;2)代码段的平均访问频率远远高于数据段。 因为代码部分的这个索引是数据部分的10-1000倍,如图2所示;3)代码部分一直被读取,而数据部分的读取比写入的多。

 

3.2 动机

 

   我们认为,要利用混合内存系统的最大潜力,需要硬件和软件的革新。除了内存控制器和用户程序外,操作系统还可以实现数据分发。在冯诺依曼机器架构下,程序由编译器以恒定模式组织,以便于运行。其中一种模式是逻辑地址空间中的指令和数据分配,其保存在页面描述符中,可以在运行时被操作系统识别。这意味着操作系统可以根据需要将数据放在内存中,除了保留空间。由于程序的指令和数据具有自己的访问功能,分别适应DRAMPCM的特性,操作系统能够在逻辑上和透明的情况下将它们分配给不同的存储介质,从而为每个数据段进行适当的内存分配。

我们的动机是在操作系统层面找到更好的方式来完成页面的数据识别和分配。我们的目标是以比以前描述的其他方法具有更低的成本和开销,同时更多的节能。

为了实现和展示这个想法,我们提出了基于上述分析的OSDD方法。OSDD在系统级别调配和分配数据段到不同的存储介质,而不需要插入控制器或用户程序。OSDD将展现混合系统的优势,同时具有多项优势。 首先,它在运行时没有额外的存储或交换成本。 其次,它不需要程序的注释,对用户来说是透明的。

 

 

 4  混合主内存设计

 

4.1 结构概述

 

基于我们的观察和研究,我们在DRAM-PCM混合存储器系统中设计了一种新的数据分布模型OSDD,其中数据分配和发布由操作系统的内存管理模块完成。

在传统的内存管理下,逻辑内存空间由编译器分为代码段,静态数据部分和动态数据部分等几部分,然后根据不同的体系结构将这些部分分割成大小为4K4M的页面。 物理内存空间相应地分为帧,内存映射以页为单位完成。

在一个进程中,每个数据页属于一个部分,其类型在虚拟存储器描述符中的LDT(本地描述表)或GDT(全局描述表)中描述。LDT结构如图3所示。

 

其中标签S”表示该部分是否属于系统或应用程序,标签“Type”显示类型:代码部分或数据部分。 当OSCPU接收到存储器请求时,它首先从LDTGDT识别区段类型。 然后OS分配指定内存介质的内存页面帧,并完成页面映射。 为了最小化性能成本,页面映射和数据分发将不会改变,直到进程结束。 逻辑地址和存储介质之间的映射关系如图4所示。

 

4.2 映射和分配规则

 

根据[6,12,24],读写延迟和能量成本参数如表1所示。

 

我们观察到,虽然PCM的读取延迟高于DRAM(约2倍),但它们在写入期间的差异延迟更显着,这是一个数量级。同时,PCM的写入功率约为DRAM4倍,构成了PCM的主要功耗。因此,对PCM的写入数量将对总体延迟和能耗是决定性的。从这个角度来看,连同我们在第二部分中进行的分析,我们将代码段和静态数据段映射到PCM,以将写入操作减少到最小(代码段是只读的),这将保持PCM的最小写入功耗和零刷新功耗。同时,PCM的使用寿命也将受益于较少的写作行为。动态数据部分映射到DRAM,从而有利于其读写效率。应该指出的是,在目前的工作中,我们并没有使用底层PCM的磨损均衡算法。在未来的工作中,我们计划将其作为分配过程的一部分。

 

4.3 系统实现

 

我们在X86-64平台上实现实验。 在我们的实验中,我们向内核添加了一个新的内存区域,ZONE PCM。 在Linux中,从内存区域分配物理内存,内存区域由页框组成。 原始Linux中有三个内存区域:ZONE DMA用于DMA页面,ZONE NORMAL用于正常页面,ZONE HIGHMEM用于超出虚拟地址空间的那些地址。 我们添加一组内存分配函数,alloc_pcm _pages()和free_pcm_pages(),它们从区域ZONE PCM分配和释放内存。 函数alloc_pcm _pages()从alloc_pages()派生,并分配物理内存空间中连续的页面帧。 函数free_pcm_pages()从free_pages()派生,释放没有用的内存。 函数alloc_pcm_pages()有两个参数:gfp_mask表示系统应该分配页面的位置,从LDTGDT读取,order of 2(一个变量) 表示应该分配多少页。

根据OSDD的想法,如果所需页面属于代码段或静态数据段,则映射到PCM存储区。 如果所需的页面属于动态数据部分,则映射到DRAM存储区。 由于段中的每个页面都有LDTGDT,它具有指示其类型的标签,系统有机会从存储器请求中识别它们的类型。如果标签是代码段或静态数据部分,则gfp_maskZONE_PCM

我们分别使用Gem5模拟三种内存架构。使用Gem5,可以通过修改其参数来模拟许多新型存储器。我们模拟均匀的DRAM,统一的PCM和混合存储器,其中DRAMPCM在一个线性空间中被寻址。PCM通过修改表1中描述的读写延迟和功耗参数进行模拟。DRAM参数基于78 nm技术[1]PCM参数从[6,12,24]获得。Gem5在输出文件中详细输出参数,如指令和数据的读写计数,以及提取LLC错失率和执行时间等的数量,我们使用这些参数计算节能和性能开销。

为了比较OSDD与其他基于控制器或基于应用的方法,我们还使用相同的实验设置,使用Gem5实现PDRAM方法,如文中所述。我们使用与表1所述相同的PCM参数和上面介绍的基准测试两种方法。

 

5 评估

 

5.1 方法和指标

 

在本节中,我们将描述我们的仿真和设计方法。 对于我们的实验,我们假设具有4 GB DRAM的基线系统。 我们对两个实验系统进行评估:(1)统一的PCM系统,包括4 GBPCM。 (2)基于OSDD的混合系统,包括2GB DRAM2GB PCM。 (3)基于PDRAM的混合系统,其还包括2GB DRAM2GB PCM。 比较的动机是显示记忆组织的异质性如何可以带来更好的整体表现和能源效率。

对于工作负载,我们使用来自Splash2Parsec37个基准,它们代表不同的样式应用程序。 我们使用运行在2.66 GHzALPHA处理器执行Gem5的基准测试。 模拟处理器具有两级缓存:64 KB的数据和指令L1高速缓存,以及4 MBL2缓存,与PDRAM的实验环境相同。

我们主要评估混合存储器在二维,标准化能量消耗和标准化性能开销中的性能。使用同一套基准测试,我们分别在统一的DRAM,统一的PCMPDRAM混合和OSDD混合存储器的情况下测量能量成本和性能开销。 除非另有说明,否则统一的DRAM系统被用作所有比较的基线,并将结果归一化为基线。

 

5.2 结果和对比

 

5显示了标准化的能量消耗的结果,基于仅针对DRAM的系统用于7个基准。 我们看到统一的PCM系统比混合存储器(PDRAMOSDD)具有更少的能量消耗,因为统一的PCM不需要刷新,而混合存储器包含DRAM访问。 重要的是,平均来说,OSDD具有48%的能耗,低于基于控制器的方法PDRAM64%)。 特别地,对于OSDD,由于它们是计算密集型程序,大部分数据访问是在DRAM中完成的

6显示了执行时间的标准化性能开销的结果,基于仅针对7个基准的仅限DRAM的系统。 在该图中,标准化的DRAM性能被认为是一个。 我们看到混合内存的整体性能比统一的PCM性能要低。平均而言,OSDD的性能开销达到6%,PDRAM达到7.2%,彼此接近。 应该指出的是,对于像oceanfftcholeskyraytrace这样的基准,OSDDPDRAM的性能开销更少。 但是对于其他基准,如luradixbarnet,情况恰恰相反,原因和分析将在Sect5.3中给出详细。

 

 

5.3 感性分析

 

从评估可以看出,(1)整体而言,混合存储器的功耗比统一的DRAM存储器少得多,具有较小的性能开销。 (2)在相似的性能上,OSDD平均获得的节能比PDRAM更多。 (3)正如5.2节指出,OSDD适用于某些基准,不适合其他。为了找出这种现象的原因,我们评估了“存储器访问频率的方差”,它测量了一组内存访问计数的扩展程度。小的方差表示访问计数趋向于非常接近于平均值,并因此趋向于彼此,而高方差表示存储器访问在平均值和彼此之间非常分散。例如,较低的方差意味着所有地址具有几乎相似的访问次数,而较高的方差意味着可能10%的地址占用了整个程序跟踪的80%。有一些影响实验结果的因素。合理的分析是:

(1)基准具有不同的存储器访问频率差异,影响OSDD的有效性。 图7描述七个基准的访问方差。 一些程序具有较高的访问方差(如luradixbarnet),而其他程序具有较低的差异(如oceanfftcholeskyraytrace)。

(2)如图6所示,对于那些具有较高方差(如luradixbarnet)的程序,PDRAM具有较低的性能开销,因为它将热数据交换到具有有限交换的DRAM,但OSDDPCM中保持频繁的访问数据,直到程序结束。 另一方面,对于那些具有较低方差(如海洋,fftcholeskyraytrace)的程序,OSDD具有较低的性能开销,因为PDRAM需要频繁的交换,而OSDD则不需要。

 

 

6  讨论和未来工作

 

在这项研究工作中,我们实施了DRAM-PCM混合存储器系统,与现有方法相比具有一些优势。 然而,这种混合记忆体有一些缺点和局限性,我们将在以后的工作中考虑它们。

根据图1,数据段通常大于一个或两个数量级的代码段。 在我们目前的实验中,DRAM的大小为2 GB,可以包含每个基准的动态数据部分。 但是对于大型应用,DRAM将不足以包含所有动态数据部分。 如果我们以相同的比例扩大混合内存的大小,那么DRAM仍然有空间短缺的可能性,PCM也许足够大,以至于有休息空间。 这将使整个混合动力系统的效能降低。 在未来的工作中,我们计划将无源动态数据部分从DRAM交换到PCM,以减轻DRAM的空间压力,这也将在OS级别实现。

从分析可以看出,OSDD更适合于存储器访问均匀(存储器访问频率变化较小)的程序。 这是其限制,我们今后的工作将重点放在如何改进机制,使其更加普及。

应该指出的是,我们目前的工作没有使用底层PCM的任何磨损均衡算法。 在未来的工作中,我们计划将其作为分配过程的一部分。

 

7  总结

 

在本文中,我们揭示了系统哪个部分应该负责DRAM-PCM混合存储器中的数据分配的问题,并强调了在操作系统级别如何在DRAMPCM之间分配数据的方法和挑战。我们提出OSDD是一种操作系统级的数据分配方法,它将逻辑地址空间的语义信息传递给内存管理模块,有助于跨混合存储器分配数据。根据逻辑地址空间中不同数据段的读写功能,OSDD将适当的数据分配给相应的存储介质,没有额外的存储成本或交换成本。由于它不需要程序注释,它对用户应用程序是透明的。我们使用具有不同存储器访问功能的基准来评估系统,并表明,与均匀的DRAM相比,平均而言,该系统可以实现高达52%的节能6%的性能开销。与基于控制器或基于应用的混合存储器相比,基于OSDDDRAM-PCM混合存储器更适合于通用程序,以更低的性能开销获得更多的节能。而且,基于OSDD的混合存储器更适合存储器存取频率变化较小的程序或应用。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值