用于降低存储器系统中的页面迁移开销的机制的制作方法

文档序号:19792678发布日期:2020-01-24 14:38阅读:451来源:国知局
用于降低存储器系统中的页面迁移开销的机制的制作方法



背景技术:

在典型的计算系统中,设计存储器系统的目的是使处理器在访问任意数据单位时经历低延迟。通常,具有拥有不同延迟的存储器部分的存储器系统(例如,非均匀存储器访问(numa)存储器系统或多层存储器系统)使用页面迁移技术以通过响应于个别存储器访问而将主存储器的一个部分的内容移动到主存储器的较低延迟部分中来减少存储器访问延迟。通常,那些技术依赖于软件,并且在迁移期间需要操作系统拦截或引入大量开销。

示例性非均匀存储器访问(numa)存储器系统包括处理器和至少两级动态随机存取存储器(dram)或其他存储器,其中第二级存储器的带宽低于第一级存储器的带宽,并且第二级存储器的延迟高于第一级存储器的延迟。在示例性numa存储器系统中,第一级存储器是封装内存储器,并且第二级存储器是封装外存储器。常规页面迁移技术将较频繁访问的数据存储在最靠近处理器的第一级存储器中,以通过减少存储器延迟和增大最频繁访问的数据的可用带宽来提高性能。然而,常规页面迁移技术需要大量开销,例如页面复制、高速缓存失效、转换后备缓冲器(tlb)击落以及页表更新。如本文中所指,tlb击落是中断处理器操作以执行tlb一致性操作的一致性事务。在包括多个处理器的系统中,每个处理器包括用于共享存储器的tlb,每个处理器执行对应的tlb击落以维护一致的tlb条目。执行导致需要tlb击落的操作的处理器向每个其他处理器发送中断,所述每个其他处理器需要出于一致性目的而执行tlb击落。可能以硬件或软件实现的该开销可能很大,并且可能严重影响频繁迁移存储器的工作负载的性能。因此,需要改进的页面迁移技术。



技术实现要素:

在至少一个实施方案中,一种用于在存储器系统中使用的方法包括将所述存储器系统的第一存储器的第一多个页面与所述存储器系统的第二存储器的第二多个页面交换。所述第一存储器具有第一延迟,并且所述第二存储器具有第二延迟。所述第一延迟小于所述第二延迟。所述方法包括更新页表并触发转换后备缓冲器击落,以使所述第一多个页面中的每一者的虚拟地址与所述第二存储器中的对应的物理地址相关联,并使所述第二多个页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联。所述交换可以包括将所述第一多个页面从所述第一存储器复制到分段缓冲器。所述方法可以包括将所述第二多个页面从所述存储器系统的所述第二存储器复制到所述分段缓冲器。所述方法可以包括在所述第一多个页面到所述分段缓冲器的所述复制期间,响应于对所述多个页面中的第一页面的写入指令,将数据写入到所述分段缓冲器中的所述第一页面的副本并将所述数据写入到所述第一存储器中的所述第一页面。所述交换可以包括将所述第一多个页面从所述分段缓冲器复制到所述第二存储器。所述交换可以包括将所述第二多个页面从所述分段缓冲器复制到所述第一存储器。所述交换可以包括更新所述第一多个页面中的每一者的第一重定向状态和所述第二多个页面中的每一者的第二重定向状态,以指示所述第一多个页面和所述第二多个页面分别正从所述分段缓冲器被复制。所述方法可以包括将第三多个页面从所述存储器系统的所述第二存储器迁移到所述存储器系统的所述第一存储器中的第一多个未使用的页面。所述方法可以包括更新所述页表并触发第二转换后备缓冲器击落,以使所述第三多个页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联。

在至少一个实施方案中,一种设备包括迁移控制逻辑,所述迁移控制逻辑被配置为将存储器系统的第一存储器的n个第一页面与所述存储器系统的第二存储器的n个第二页面交换。所述第一存储器具有第一延迟,并且所述第二存储器具有第二延迟。所述第一延迟小于所述第二延迟。所述设备包括页表,所述页表被配置为存储所述存储器系统的所有页面的虚拟到物理地址的转换。所述设备包括转换后备缓冲器,所述转换后备缓冲器被配置为存储所述存储器系统的页面的最近使用的虚拟到物理地址的转换。所述迁移控制逻辑还被配置为更新所述页表并触发转换后备缓冲器击落,以使所述n个第一页面中的每一者的虚拟地址与所述第二存储器中的对应的物理地址相关联,并使所述n个第二页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联,其中n是大于一的整数。所述设备可以包括大小为至少2×n个页面的分段缓冲器。所述迁移控制逻辑可以被配置为将存储器系统的第一存储器的n个第一页面复制到所述分段缓冲器。所述迁移控制逻辑可以被配置为将所述存储器系统的第二存储器的n个第二页面复制到所述分段缓冲器。所述设备可以包括存储器控制器,所述存储器控制器被配置为在所述n个第一页面到所述分段缓冲器的所述复制期间,响应于对所述n个第一页面中的第一页面的写入指令,将数据写入到所述分段缓冲器中的所述第一页面的副本并将所述数据写入到所述第一存储器中的所述第一页面。

在至少一个实施方案中,一种用于存储器系统中的页面迁移的方法包括将第一多个页面从所述存储器系统的第二存储器迁移到所述存储器系统的第一存储器中的第一多个未使用的页面。所述第一存储器具有第一延迟并且所述第二存储器具有第二延迟,所述第一延迟小于所述第二延迟。所述方法可以包括更新页表并触发转换后备缓冲器击落,以使所述第一多个页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联所述方法可以包括将所述第一存储器的第二多个页面与所述存储器系统的所述第二存储器的第三多个页面交换。所述方法可以包括更新所述页表并触发另一转换后备缓冲器击落,以使所述第二多个页面中的每一者的虚拟地址与所述第二存储器中的对应的物理地址相关联,并使所述第三多个页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联。

附图说明

通过参照附图,可以更好地理解本发明,并且使其许多目标、特征和优点对于本领域技术人员来说为显而易见的。

图1示出了非均匀存储器访问处理系统的功能框图。

图2示出了存储器系统的一部分的功能框图。

图3示出了与本发明的至少一个实施方案一致的包括降低开销的页面迁移系统的处理系统的功能框图。

图4示出了示例性存储器部分的功能框图。

图5示出了与本发明的至少一个实施方案一致的使用分段缓冲器的降低开销的页面迁移系统的示例性信息和控制流程。

图6示出了与本发明的至少一个实施方案一致的降低开销的页面迁移系统的示例性信息和控制流程。

在不同的图中使用相同的参考符号来表示类似或相同的项。

具体实施方式

以降低的开销实现页面迁移的存储器系统在实际页面迁移开始之前将来自较高延迟存储器的多个页面和来自较低延迟存储器的多个页面复制到分段缓冲器中。分段缓冲器足够大(例如,分段缓冲器的大小为2×n个页面,其中n是大于1的整数),以允许同时迁移多个页面(例如,在较高延迟存储器与较低延迟存储器之间交换多达n个页面),从而通过将另外的多个不同的tlb击落或其他一致性事务合并到一个事件中来进一步降低迁移开销,因此减少对页面迁移性能的影响。如本文中所指,页面是固定长度的连续存储器块,其由页表中的单个条目描述,并且是虚拟存储器操作系统中用于地址转换的最小数据单位。

参照图1,系统100是示例性非均匀存储器访问处理系统,其包括使用互连网络120与彼此通信的多个处理节点(例如,节点102、节点104和节点106)。每个节点包括一个或多个处理器和对应的存储器部分(例如,存储器部分110、存储器部分112和存储器部分114)以及存储器系统108。节点中的每一者访问该节点内的存储器部分可以比访问另一节点中的存储器更快。当一个以上的高速缓存含有存储器系统108的相同位置的内容时,处理节点使用处理器间通信来维持存储器系统108中的存储器映像的一致性。系统100使用与存储器控制器(未示出)相关联的快速静态随机存取存储器(ram)中的探测过滤器或其他合适的技术来实现高速缓存一致性策略。

参照图2,存储器部分110的实施方案包括一个或多个存储器集成电路(例如,一个或多个动态ram(dram)集成电路)。在至少一个实施方案中,存储器系统包括并行地访问的多个存储器集成电路(例如,配置为双列直插式存储器模块(dimm))。每个存储器集成电路可以包括数据接口(例如8位数据接口),所述数据接口与其他存储器集成电路的数据接口相结合以形成更宽的数据接口(例如64位数据接口)。每个存储器集成电路可以包括可以并行地访问的多个独立的存储体。每个存储体可以包括dram单元的二维阵列,所述二维阵列包括多个行和列。可以使用包括存储体、行和列字段的存储器地址来访问存储器的位置。在存储器系统108的至少一个实施方案中,一次只能访问存储体中的一行,并且该行数据可以存储在专用于该存储体的行缓冲器中。激活命令将一行数据从存储器阵列移动至行缓冲器中。一旦一行在行缓冲器中,读取或写入命令就可以从/向相关联的存储器地址读取/写入数据。因此,存储器命令的延迟部分地取决于对应行是否在相关联的存储体的行缓冲器中。

如果存储器地址的内容在行缓冲器中(即,存储器地址命中行缓冲器),则存储器控制器仅需要向存储体发出读取或写入命令,该存储体在一个实施方案中分别具有读取存储器访问延迟tcl或写入存储器访问延迟twl。如果存储器地址的内容不在行缓冲器中(即,存储器地址错过行缓冲器),则存储器控制器需要对行缓冲器进行预充电,发出激活命令以将一行数据移动至行缓冲器中,然后向存储体发出读取或写入命令,在一个实施方案中,所述读取或写入命令分别具有相关联的读取存储器访问延迟trcd+tcl+trp或写入存储器访问延迟trcd+twl+trp,其中trcd是活动命令行地址选通与列地址选通之间的所需推迟时间并且trp是行预充电延迟。

参照图3,节点102包括一个或多个处理器。例如,节点102包括多个核心(例如,核心0、核心1、核心2,……,核心n),但是节点102的其他实施方案集成了处理器单元的其他组合(例如,包括中央处理单元和图形处理单元的至少一个加速处理单元、中央处理单元、图形处理单元,或其他处理器),并且可以包括协处理器或固定功能处理硬件。目录132包括用于高速缓存目录的存储装置,该高速缓存目录用于使用基于目录的高速缓存一致性策略来维持节点102和存储器系统108的高速缓存的一致性。使用快速静态随机存取存储器或其他合适的技术来实现目录132。图3将页表152示出为包括在存储器部分110内。然而,注意,在其他实施方案中,页表152被包括在存储器系统108的另一部分中或作为单独的结构被包括。

存储器部分110可以与节点102的部分集成在集成电路上、多芯片模块中,或具有节点102的部分的印刷电路板上,或者可以垂直堆叠在节点102的部分的顶部上,如图4所示。将存储器垂直堆叠在处理器的顶部上增大存储器带宽并减少访问能量,这两者对于性能和能量效率都是至关重要的。然而,由于可以堆叠在处理器的顶部上的存储器的容量有限,因此还需要外部的封装外存储器(可能包括在其他节点中)来提供足够的总存储器容量。存储器中处理器的实现方式将节点102的至少一部分包括作为一个或多个存储器裸片内的处理逻辑,或作为堆叠402中的单独的逻辑裸片,所述堆叠还包括一个或多个存储器裸片。主机410和四个存储器中处理器装置形成在插入器412上。注意,图2和图4的存储器部分仅仅是示例性的,并且本文中描述的教导适用于包括具有其他存储器架构的存储器部分的系统。

参照图3,降低开销的页面迁移技术使用分段缓冲器154来提供对存储器位置的连续访问,同时在不同的存储器级别之间迁移一个或多个页面。在降低开销的页面迁移技术的一些实施方案中,降低开销的页面迁移技术使用一组迁移页面,但是在其他实施方案中,使用多个迁移页面和/或额外的存储器级别(例如,n个第一级页面)。降低开销的页面迁移技术包括概要分析逻辑144,所述概要分析逻辑对存储器总线上的存储器访问进行概要分析并为存储器中的页面中的至少一些(例如,存储器中的q个页面中的p个页面,其中p和q为整数且p≤q)维护存储器访问频率值。在至少一个实施方案中,概要分析逻辑144为存储器中的每个页面维护存储器访问频率值。例如,概要分析逻辑144使用硬件计数器,所述硬件计数器是使用存储存储器系统108中的每个页面的计数值的预定存储器位置(例如,在静态随机存取存储器中)实现的。注意,存储器访问信息的存储结构以及概要分析逻辑144和迁移控制逻辑148的实现方式和策略仅仅是示例性的,并且可以使用与本文中的教导一致的其他数据结构、实现方式和策略。

每当节点102的处理器读取或写入存储器系统108中的对应页面时,概要分析逻辑144就使频率值递增。如果正在访问的页面当前没有被具有p<q的概要分析逻辑144的实施方案跟踪,则使用替换策略(例如,最近使用最少的替换策略)来逐出另一页面的现有计数条目,并插入正在访问的页面的新计数条目。在至少一个实施方案中,概要分析逻辑144周期性地清除或左移每页访问频率值以减小历史偏差。迁移控制逻辑148例如使用线性扫描或其他合适的技术来周期性地比较存储器级别中的每个页面的存储器访问频率值。迁移控制逻辑148在后台执行该比较(即,不中断节点102的处理器的程序执行)。因此,比较不在节点102的处理器的程序执行的关键路径中。迁移控制逻辑148基于比较来识别页面迁移的候选者。例如,迁移控制逻辑148将具有最低访问频率,和小于一个或多个其他较高延迟存储器中的最高频率存储器访问页面的n个最高存储器访问频率的频率的n个第一级页面识别为页面迁移候选者。可以使用存储器访问频率的差异的阈值数量。例如,如果第一级页面的访问频率比第二级页面的访问频率少至少l次访问(其中l是大于0的整数),则第二级页面是迁移到第一级页面的候选者。预定阈值可以在运行时静态或动态地确定。

在识别出用于在较低延迟存储器与一个或多个较高延迟存储器之间交换的页面之后,迁移控制逻辑148生成控制信号和存储器命令,所述控制信号和存储器命令致使存储器系统108、重定向表150、tlb151、页表152和分段缓冲器154使用分段缓冲器154来交换候选页面的物理位置。在识别出页面迁移候选者之后,迁移控制逻辑148将较高延迟存储器中的目标页面与较低延迟存储器中的相同数量的牺牲页面交换。迁移包括在实际页面迁移之前将那些候选者中的每一者复制到分段缓冲器154中,这在后台发生。复制不会对节点102的处理器的程序执行造成任何中断。当将页面复制到分段缓冲器154时,可继续从原始存储器位置访问数据。迁移控制逻辑148引入冗余以将操作写入到那些页面以便维持一致性。例如,当存储器控制器142与常规写入操作一致地处置对原始存储器位置的写入操作时,迁移控制逻辑148还将数据写入到分段缓冲器154中的页面的副本。

在复制到分段缓冲器154完成之后,迁移控制逻辑148使用重定向表150来将对那两个页面的所有读取和写入访问重定向到分段缓冲器154。重定向表150指示哪些页面在分段缓冲器154中具有活动副本。因此,响应于存储器访问,存储器控制器142在访问任何目标存储器装置之前首先检查重定向表150以确定是否访问分段缓冲器154中的对应页面。在至少一个实施方案中,不是使用重定向表150和与存储器操作的目标地址的比较,而是可以例如通过在tlb151中为每个条目以及页面级虚拟到物理地址映射信息分配附加位来将重定向信息并入到tlb151中。附加位指示与对应的tlb条目相关联的目标页面在分段缓冲器154中是否具有活动副本。

在将候选页面复制到分段缓冲器154完成之后,迁移控制逻辑148将那些页面从分段缓冲器154复制到新的物理存储器位置。在从分段缓冲器154复制期间,对候选页面进行的存储器读取请求访问分段缓冲器154而不是对应的候选存储器部分,同时存储器写入请求对分段缓冲器154和对应的候选存储器部分两者都进行写入。在从分段缓冲器154复制完成后,迁移完成,并且迁移控制逻辑148在重定向表150中取消分配分段缓冲器154和对应条目,或者清除tlb151中的对应重定向位。迁移控制逻辑148还发出tlb击落,并根据迁移中涉及的页面的新物理位置而用更新后的虚拟到物理地址的转化来更新tlb151和页表152。迁移控制逻辑148还触发高速缓存失效和任何其他一致性操作。迁移控制逻辑148协调所有候选页面上的页面迁移的时序,使得那些页面同时迁移,并且所有那些迁移的页面都发生单个tlb击落事件。

参照图3和图5,在至少一个实施方案中,概要分析逻辑144和迁移控制逻辑148提供各种控制信号以致使系统100生成示例性信息和控制流程600。概要分析逻辑144和迁移控制逻辑148的实现方式包括被配置为执行与信息和控制流程600一致的指令的专用电路或通用处理逻辑。迁移控制逻辑148搜索存储在概要分析逻辑144中的存储器访问信息,以识别最低延迟存储器(例如,存储器部分110)中的具有最低存储器访问频率(例如,频率f1)的页面,并识别具有较高延迟存储器中的页面的最高访问频率(例如,频率f2)的高延迟存储器(例如,存储器部分112、114或116)中的页面(604)。迁移控制逻辑148将频率f1与频率f2进行比较(606)。在一个实施方案中,如果频率f1小于频率f2,则对应的页面是合适的迁移候选者。如果迁移控制逻辑148未能识别出n个合适的迁移候选者,则继续进行存储器访问信息的概要分析(602),并且迁移控制逻辑148继续周期性地搜索存储在概要分析逻辑144中的存储器访问信息以获得至少n个合适的迁移候选者。注意,如果少于n个页面满足本文中描述的条件,则可以交换少于n个页面。如果迁移控制逻辑148未能识别出任何合适的迁移候选者,则继续进行存储器访问信息的概要分析(602),并且迁移控制逻辑148继续周期性地搜索存储在概要分析逻辑144中的存储器访问信息以获得合适的迁移候选者。

在成功识别出迁移候选者之后,迁移控制逻辑148发起在最低延迟存储器中具有最不频繁地访问的数据(即,候选数据d1,其包括n个页面)的最低延迟存储器中的候选页面的物理位置(即,物理位置p1)与在较高延迟存储器中具有最频繁地访问的数据(即,候选数据d2)的较高延迟存储器中的物理位置(即,物理位置p2)的交换(608)。交换包括对重定向表150或tlb151中的对应条目进行写入,以指示存储在那些物理位置中的页面正被迁移(610)。另外,迁移控制逻辑148使得能够对那些物理位置中的候选页面进行任何写入,以致使对分段缓冲器154中的对应副本进行冗余写入(610)。迁移控制逻辑148将候选数据d1从最低延迟存储器的物理位置p1复制到分段缓冲器154,并将候选数据d2从较高延迟存储器的物理位置p2复制到分段缓冲器154(612)。

在已经将候选页面复制到分段缓冲器154之后,迁移控制逻辑148更新重定向表150以使得能够对那些物理位置中的候选页面进行任何写入,以致使对分段缓冲器154中的对应副本进行写入(614)。迁移控制逻辑148将候选数据d1从分段缓冲器154复制到物理位置p2,并将候选数据d2从分段缓冲器154复制到物理位置p1(614)。在已经将候选数据从分段缓冲器154复制到适当的物理位置之后,迁移控制逻辑148清除重定向表150或tlb151中的对应条目,以指示存储在那些物理位置中的页面的迁移完成(616)。另外,迁移控制逻辑148禁用对分段缓冲器154的冗余写入,触发一致性操作,例如tlb击落、对页表152中的对应条目的更新以及高速缓存失效(616)。注意,图5的信息和控制流程仅仅是示例性的,并且维持数据依赖性的其他信息和控制流程与本文中描述的降低开销的页面迁移技术一致。结果,一个一致性操作为多个页面迁移更新任何受影响的tlb,从而通过分摊多个页面迁移上的一致性操作的成本来提高系统性能。

参照图3和图6,在至少一个实施方案中,存储器部分110可以具有未使用的存储器空间,所述存储器空间可以在最初被留出以用于页面迁移(例如,参见示例性信息和控制流程700)。如果最低延迟存储器中有不足的物理位置(物理位置p1)未被使用并且可用于页面迁移(703),则迁移控制逻辑进行到上述示例性信息和控制流程600的604。如果最低延迟存储器中有足够的未使用的存储器空间可用于一个或多个页面迁移情形(703),则不使用分段缓冲器154。迁移控制逻辑148搜索存储在概要分析逻辑144中的存储器访问信息,以识别较高延迟存储器(例如,存储器部分112、114或116)中的具有最高访问频率(例如,频率f2)的页面(704)。在一个实施方案中,如果频率f2大于预定阈值thresh(706),则对应的页面是合适的迁移候选者。如果迁移控制逻辑148未能识别出n个合适的迁移候选者(706),则继续进行存储器访问信息的概要分析(602),并且迁移控制逻辑148继续周期性地搜索存储在概要分析逻辑144中的存储器访问信息以获得至少n个合适的迁移候选者。注意,如果少于n个页面满足本文中描述的条件,则可以迁移少于n个页面。如果迁移控制逻辑148未能识别出任何合适的迁移候选者,则继续进行存储器访问信息的概要分析(602),并且迁移控制逻辑148继续周期性地搜索存储在概要分析逻辑144中的存储器访问信息以获得合适的迁移候选者。

在成功识别出迁移候选者之后,迁移控制逻辑148发起在较高延迟存储器中具有频繁地访问的数据(即,候选数据d2)的较高延迟存储器中的候选页面的物理位置(即,物理位置p2)与最低延迟存储器中的可用的未使用的物理位置(即,物理位置p1)的迁移(708)。迁移包括对重定向表150或tlb151中的对应条目进行写入,以指示存储在那些物理位置中的页面正被迁移(710)。另外,迁移控制逻辑148使得能够对较高延迟存储器的那些物理位置(p2)中的候选页面进行任何写入,以致使对最低延迟存储器(p1)中的对应副本进行冗余写入(710)。迁移控制逻辑148将候选数据d2从较高延迟存储器的物理位置p2复制到最低延迟存储器中的物理位置p1(712)。

在已经交换候选数据之后,迁移控制逻辑148清除重定向表150或tlb151中的对应条目,以指示存储在那些物理位置中的页面的迁移完成(716)。另外,迁移控制逻辑148禁用冗余写入,触发一致性操作,例如tlb击落、对页表152中的对应条目的更新以及高速缓存失效(716)。注意,图6的信息和控制流程仅仅是示例性的,并且维持数据依赖性的其他信息和控制流程与本文中描述的降低开销的页面迁移技术一致。结果,一个一致性操作为n个页面迁移更新任何受影响的tlb,从而通过分摊多个页面迁移上的一致性操作的成本来提高系统性能。

因此,已经描述了用于降低开销的页面迁移的技术。尽管在描述本发明的实施方案时通常假定电路和物理结构,但应明确认识到,在现代半导体设计和制造中,物理结构和电路可以以适用于后续设计、仿真、测试或制造阶段的计算机可读的描述形式体现。在示例性配置中作为离散部件呈现的结构和功能可以实现为组合的结构或部件。预期本发明的各种实施方案包括电路、电路系统、相关方法以及有形计算机可读介质,所述计算机可读介质上具有对这类电路、系统和方法的编码(例如,vhsic硬件描述语言(vhdl)、verilog、gdsii数据、电子设计互换格式(edif)和/或gerber文件),所有这些都如本文中描述且如所附权利要求书所限定。另外,计算机可读介质可以存储可用于实现本发明的指令以及数据。指令/数据可以与硬件、软件、固件或其组合相关。

对本文中阐述的本发明的描述是说明性的,并且不意图限制如所附权利要求书中阐述的本发明的范围。例如,尽管已经在其中迁移存储器的页面的实施方案中描述了本发明,但是本领域技术人员应了解,本文中的教导可以与其他固定区域大小一起使用。另外,本文中描述的技术可以与多级存储器系统(即,使用与高速缓存层次结构类似的装置的层次结构的存储器系统)一起使用以及用于非均匀存储器访问存储器系统中。在不脱离如所附权利要求书中阐述的本发明的范围的情况下,可以基于本文中阐述的描述对本文中公开的实施方案进行改变和修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1