CN110730956B - 用于降低存储器系统中的页面迁移开销的机制 - Google Patents
用于降低存储器系统中的页面迁移开销的机制 Download PDFInfo
- Publication number
- CN110730956B CN110730956B CN201880038630.4A CN201880038630A CN110730956B CN 110730956 B CN110730956 B CN 110730956B CN 201880038630 A CN201880038630 A CN 201880038630A CN 110730956 B CN110730956 B CN 110730956B
- Authority
- CN
- China
- Prior art keywords
- memory
- pages
- page
- buffer
- segment buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 295
- 238000013508 migration Methods 0.000 title claims description 103
- 230000005012 migration Effects 0.000 title claims description 103
- 230000007246 mechanism Effects 0.000 title description 2
- 239000000872 buffer Substances 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000013519 translation Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 22
- 230000014616 translation Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 7
- 230000010076 replication Effects 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims 2
- 238000003197 gene knockdown Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
一种用于在存储器系统中使用的技术包括将所述存储器系统的第一存储器的第一多个页面与所述存储器系统的第二存储器的第二多个页面交换。所述第一存储器具有第一延迟,并且所述第二存储器具有第二延迟。所述第一延迟小于所述第二延迟。所述技术包括更新页表并触发转换后备缓冲器击落,以使所述第一多个页面中的每一者的虚拟地址与所述第二存储器中的对应的物理地址相关联,并使所述第二多个页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联。
Description
背景技术
在典型的计算系统中,设计存储器系统的目的是使处理器在访问任意数据单位时经历低延迟。通常,具有拥有不同延迟的存储器部分的存储器系统(例如,非均匀存储器访问(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、TLB 151、页表152和分段缓冲器154使用分段缓冲器154来交换候选页面的物理位置。在识别出页面迁移候选者之后,迁移控制逻辑148将较高延迟存储器中的目标页面与较低延迟存储器中的相同数量的牺牲页面交换。迁移包括在实际页面迁移之前将那些候选者中的每一者复制到分段缓冲器154中,这在后台发生。复制不会对节点102的处理器的程序执行造成任何中断。当将页面复制到分段缓冲器154时,可继续从原始存储器位置访问数据。迁移控制逻辑148引入冗余以将操作写入到那些页面以便维持一致性。例如,当存储器控制器142与常规写入操作一致地处置对原始存储器位置的写入操作时,迁移控制逻辑148还将数据写入到分段缓冲器154中的页面的副本。
在复制到分段缓冲器154完成之后,迁移控制逻辑148使用重定向表150来将对那两个页面的所有读取和写入访问重定向到分段缓冲器154。重定向表150指示哪些页面在分段缓冲器154中具有活动副本。因此,响应于存储器访问,存储器控制器142在访问任何目标存储器装置之前首先检查重定向表150以确定是否访问分段缓冲器154中的对应页面。在至少一个实施方案中,不是使用重定向表150和与存储器操作的目标地址的比较,而是可以例如通过在TLB 151中为每个条目以及页面级虚拟到物理地址映射信息分配附加位来将重定向信息并入到TLB 151中。附加位指示与对应的TLB条目相关联的目标页面在分段缓冲器154中是否具有活动副本。
在将候选页面复制到分段缓冲器154完成之后,迁移控制逻辑148将那些页面从分段缓冲器154复制到新的物理存储器位置。在从分段缓冲器154复制期间,对候选页面进行的存储器读取请求访问分段缓冲器154而不是对应的候选存储器部分,同时存储器写入请求对分段缓冲器154和对应的候选存储器部分两者都进行写入。在从分段缓冲器154复制完成后,迁移完成,并且迁移控制逻辑148在重定向表150中取消分配分段缓冲器154和对应条目,或者清除TLB 151中的对应重定向位。迁移控制逻辑148还发出TLB击落,并根据迁移中涉及的页面的新物理位置而用更新后的虚拟到物理地址的转化来更新TLB 151和页表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或TLB 151中的对应条目进行写入,以指示存储在那些物理位置中的页面正被迁移(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或TLB 151中的对应条目,以指示存储在那些物理位置中的页面的迁移完成(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或TLB 151中的对应条目进行写入,以指示存储在那些物理位置中的页面正被迁移(710)。另外,迁移控制逻辑148使得能够对较高延迟存储器的那些物理位置(P2)中的候选页面进行任何写入,以致使对最低延迟存储器(P1)中的对应副本进行冗余写入(710)。迁移控制逻辑148将候选数据D2从较高延迟存储器的物理位置P2复制到最低延迟存储器中的物理位置P1(712)。
在已经交换候选数据之后,迁移控制逻辑148清除重定向表150或TLB 151中的对应条目,以指示存储在那些物理位置中的页面的迁移完成(716)。另外,迁移控制逻辑148禁用冗余写入,触发一致性操作,例如TLB击落、对页表152中的对应条目的更新以及高速缓存失效(716)。注意,图6的信息和控制流程仅仅是示例性的,并且维持数据依赖性的其他信息和控制流程与本文中描述的降低开销的页面迁移技术一致。结果,一个一致性操作为N个页面迁移更新任何受影响的TLB,从而通过分摊多个页面迁移上的一致性操作的成本来提高系统性能。
因此,已经描述了用于降低开销的页面迁移的技术。尽管在描述本发明的实施方案时通常假定电路和物理结构,但应明确认识到,在现代半导体设计和制造中,物理结构和电路可以以适用于后续设计、仿真、测试或制造阶段的计算机可读的描述形式体现。在示例性配置中作为离散部件呈现的结构和功能可以实现为组合的结构或部件。预期本发明的各种实施方案包括电路、电路系统、相关方法以及有形计算机可读介质,所述计算机可读介质上具有对这类电路、系统和方法的编码(例如,VHSIC硬件描述语言(VHDL)、Verilog、GDSII数据、电子设计互换格式(EDIF)和/或Gerber文件),所有这些都如本文中描述且如所附权利要求书所限定。另外,计算机可读介质可以存储可用于实现本发明的指令以及数据。指令/数据可以与硬件、软件、固件或其组合相关。
对本文中阐述的本发明的描述是说明性的,并且不意图限制如所附权利要求书中阐述的本发明的范围。例如,尽管已经在其中迁移存储器的页面的实施方案中描述了本发明,但是本领域技术人员应了解,本文中的教导可以与其他固定区域大小一起使用。另外,本文中描述的技术可以与多级存储器系统(即,使用与高速缓存层次结构类似的装置的层次结构的存储器系统)一起使用以及用于非均匀存储器访问存储器系统中。在不脱离如所附权利要求书中阐述的本发明的范围的情况下,可以基于本文中阐述的描述对本文中公开的实施方案进行改变和修改。
Claims (15)
1.一种用于在存储器系统中使用的方法,所述方法包括:
将所述存储器系统的第一存储器的第一多个页面与所述存储器系统的第二存储器的第二多个页面交换,所述第一存储器具有第一延迟并且所述第二存储器具有第二延迟,所述第一延迟小于所述第二延迟,所述交换包括:
将所述第一多个页面从所述第一存储器复制到分段缓冲器;
将所述第二多个页面从所述第二存储器复制到所述分段缓冲器;以及
更新所述第一多个页面中的每一者的第一重定向状态和所述第二多个页面中的每一者的第二重定向状态,以指示所述第一多个页面和所述第二多个页面分别正被复制到所述分段缓冲器;以及
更新页表并触发转换后备缓冲器击落,以使所述第一多个页面中的每一者的虚拟地址与所述第二存储器中的对应的物理地址相关联,并使所述第二多个页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联。
2.如权利要求1所述的方法,其中所述交换包括:
在所述第一多个页面到所述分段缓冲器的复制期间,响应于对所述第一多个页面中的第一页面的写入指令,将数据写入到所述分段缓冲器中的所述第一页面的副本并将所述数据写入到所述第一存储器中的所述第一页面。
3.如权利要求2所述的方法,其中所述写入是基于所述第一页面的所述第一重定向状态。
4.如权利要求2所述的方法,其中所述交换还包括:
将所述第一多个页面从所述分段缓冲器复制到所述第二存储器;
将所述第二多个页面从所述分段缓冲器复制到所述第一存储器;以及
更新所述第一多个页面中的每一者的所述第一重定向状态和所述第二多个页面中的每一者的所述第二重定向状态,以指示所述第一多个页面和所述第二多个页面分别正从所述分段缓冲器被复制。
5.如权利要求4所述的方法,其中所述交换还包括:
在将所述第一多个页面从所述分段缓冲器复制到所述第二存储器的所述复制期间,响应于对所述第一页面的第二写入指令,对所述分段缓冲器中的所述第一页面的副本进行写入。
6.如权利要求4或5所述的方法,其中所述交换还包括:
在从所述分段缓冲器复制所述第一多个页面和所述第二多个页面完成后,更新所述第一多个页面中的每一者的所述第一重定向状态和所述第二多个页面中的每一者的所述第二重定向状态以释放所述分段缓冲器。
7.如权利要求1、2、3、4或5所述的方法,所述方法还包括:
对所述存储器系统的个别页面的存储器访问频率进行计数以生成存储器访问信息;
基于所述存储器访问信息,将在所述第一存储器中具有最低存储器访问频率的所述第一存储器中的多个页面识别为所述第一多个页面;以及
基于所述存储器访问信息,将在所述第二存储器中具有最高存储器访问频率的所述第二存储器中的多个页面识别为所述第二多个页面,所述最高存储器访问频率大于所述最低存储器访问频率。
8.如权利要求1、2、3、4或5所述的方法,所述方法还包括:
将第三多个页面从所述存储器系统的所述第二存储器迁移到所述存储器系统的所述第一存储器中的第一多个未使用的页面;以及
更新所述页表并触发第二转换后备缓冲器击落,以使所述第三多个页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联。
9.如权利要求1所述的方法,其中所述第一多个页面中的每一个的所述第一重定向状态和所述第二多个页面中的每个的所述第二重定向状态被存储在重定向表中或转换后备缓冲器的位中,所述重定向表或所述转换后备缓冲器的位指示是所述第一多个页面还是所述第二多个页面在所述分段缓冲器中具有活动副本。
10.一种处理设备,所述处理设备包括:
分段缓冲器,所述分段缓冲器的大小至少为2×N个页面;
页表,所述页表被配置为存储存储器系统的所有页面的虚拟到物理地址的转换;
转换后备缓冲器,所述转换后备缓冲器被配置为存储所述存储器系统的页面的最近使用的虚拟到物理地址的转换;
重定向状态存储装置,所述重定向状态存储装置被配置为存储所述存储器系统的第一存储器的N个第一页面的第一重定向状态和所述存储器系统的第二存储器的N个第二页面的第二重定向状态,从而指示所述N个第一页面和所述N个第二页面的副本是否正被复制到所述分段缓冲器;以及
迁移控制逻辑,所述迁移控制逻辑被配置为通过将所述N个第一页面复制到所述分段缓冲器、将所述N个第二页面复制到所述分段缓冲器,并且更新所述第一重定向状态和所述第二重定向状态以指示所述N个第一页面和所述N个第二页面正被复制到所述分段缓冲器来将所述N个第一页面与所述N个第二页面交换;
其中所述迁移控制逻辑还被配置为更新所述页表并触发转换后备缓冲器击落,以使所述N个第一页面中的每一者的虚拟地址与所述第二存储器中的对应的物理地址相关联,并使所述N个第二页面中的每一者的虚拟地址与所述第一存储器中的对应的物理地址相关联,其中N是大于一的整数,所述第一存储器具有第一延迟并且所述第二存储器具有第二延迟,所述第一延迟小于所述第二延迟。
11.如权利要求10所述的处理设备,所述处理设备还包括:
存储器控制器,所述存储器控制器被配置为在将所述N个第一页面复制到所述分段缓冲器的所述复制期间,响应于对所述N个第一页面中的第一页面的写入指令,将数据写入到所述分段缓冲器中的所述第一页面的副本并将所述数据写入到所述第一存储器中的所述第一页面。
12.如权利要求11所述的处理设备,其中所述存储器控制器还被配置为在将所述N个第一页面从所述分段缓冲器复制到所述第二存储器期间,响应于对所述第一页面的第二写入指令,将数据写入到所述分段缓冲器中的所述第一页面的所述副本。
13.如权利要求11所述的处理设备,所述处理设备还包括:
存储器访问信息存储装置,所述存储器访问信息存储装置被配置为存储所述存储器系统的个别页面的存储器访问频率计数;以及
存储器总线,所述存储器总线联接到所述存储器系统和所述存储器访问信息存储装置;以及
概要分析逻辑,所述概要分析逻辑联接到所述存储器总线和所述存储器访问信息存储装置,所述概要分析逻辑被配置为对所述存储器系统的个别页面的存储器访问频率进行计数,并将所述个别页面的所述存储器访问频率存储在所述存储器访问信息存储装置中,
其中所述迁移控制逻辑还被配置为基于所述存储器访问信息存储装置的内容而将所述第一存储器中的N个最低频率页面识别为所述N个第一页面,并且基于所述存储器访问信息存储装置的所述内容而将所述第二存储器中的N个最高频率页面识别为所述N个第二页面。
14.如权利要求13所述的处理设备,其中所述概要分析逻辑包括:
多个计数器,所述多个计数器包括与所述存储器系统的个别页面相对应的所述多个计数器中的个别计数器;以及
逻辑,所述逻辑用于识别所述第一存储器中的所述N个最低频率页面并识别所述第二存储器中的所述N个最高频率页面,所述N个最高频率页面中的每一者的存储器访问频率大于所述N个最低频率页面中的每一者的存储器访问频率。
15.如权利要求10所述的处理设备,其中所述第一多个页面中的每一个的所述第一重定向状态和所述第二多个页面中的每个的所述第二重定向状态被存储在重定向表中或转换后备缓冲器的位中,所述重定向表或所述转换后备缓冲器的位指示是所述第一多个页面还是所述第二多个页面在所述分段缓冲器中具有活动副本。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/626,623 US10339067B2 (en) | 2017-06-19 | 2017-06-19 | Mechanism for reducing page migration overhead in memory systems |
US15/626,623 | 2017-06-19 | ||
PCT/US2018/037460 WO2018236657A1 (en) | 2017-06-19 | 2018-06-14 | MECHANISM FOR REDUCING PAGE MIGRATION OVERLOAD IN MEMORY SYSTEMS |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110730956A CN110730956A (zh) | 2020-01-24 |
CN110730956B true CN110730956B (zh) | 2024-01-09 |
Family
ID=64658092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880038630.4A Active CN110730956B (zh) | 2017-06-19 | 2018-06-14 | 用于降低存储器系统中的页面迁移开销的机制 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10339067B2 (zh) |
EP (1) | EP3642722B1 (zh) |
JP (1) | JP6928123B2 (zh) |
KR (1) | KR102350539B1 (zh) |
CN (1) | CN110730956B (zh) |
WO (1) | WO2018236657A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10263858B2 (en) * | 2017-02-07 | 2019-04-16 | Microsoft Technology Licensing, Llc | Environment simulator for user percentile |
US10489877B2 (en) * | 2017-04-24 | 2019-11-26 | Intel Corporation | Compute optimization mechanism |
US10726514B2 (en) | 2017-04-28 | 2020-07-28 | Intel Corporation | Compute optimizations for low precision machine learning operations |
US11275600B2 (en) * | 2017-11-14 | 2022-03-15 | TidalScale, Inc. | Virtualized I/O |
US10860244B2 (en) * | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
CN109032510B (zh) * | 2018-06-29 | 2021-07-09 | 山石网科通信技术股份有限公司 | 基于分布式结构的处理数据的方法和装置 |
US11074189B2 (en) * | 2019-06-20 | 2021-07-27 | International Business Machines Corporation | FlatFlash system for byte granularity accessibility of memory in a unified memory-storage hierarchy |
US10963396B1 (en) | 2019-09-17 | 2021-03-30 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
US11269780B2 (en) | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11620233B1 (en) * | 2019-09-30 | 2023-04-04 | Amazon Technologies, Inc. | Memory data migration hardware |
US20210157647A1 (en) * | 2019-11-25 | 2021-05-27 | Alibaba Group Holding Limited | Numa system and method of migrating pages in the system |
CN114064519A (zh) * | 2020-08-03 | 2022-02-18 | 美光科技公司 | 高速缓存的元数据管理 |
US11789649B2 (en) * | 2021-04-22 | 2023-10-17 | Nvidia Corporation | Combined on-package and off-package memory system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728113A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 利用转换后备缓冲器选中的多处理器系统和方法 |
CN1841343A (zh) * | 2005-03-31 | 2006-10-04 | 国际商业机器公司 | 改进任务切换的系统和方法 |
US7222117B1 (en) * | 2003-11-14 | 2007-05-22 | Advent Software, Inc. | Segmented global area database |
CN102402399A (zh) * | 2010-08-17 | 2012-04-04 | 微软公司 | 带有非对称存储器的系统中的虚拟机存储器管理 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226795A1 (en) * | 2006-02-09 | 2007-09-27 | Texas Instruments Incorporated | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture |
EP1870813B1 (en) * | 2006-06-19 | 2013-01-30 | Texas Instruments France | Page processing circuits, devices, methods and systems for secure demand paging and other operations |
US20080127182A1 (en) * | 2006-11-29 | 2008-05-29 | Newport William T | Managing Memory Pages During Virtual Machine Migration |
WO2011045838A1 (en) | 2009-10-15 | 2011-04-21 | Hitachi,Ltd. | Storage system, storage apparatus, and optimization method of storage areas of storage system |
US9053064B2 (en) | 2012-12-10 | 2015-06-09 | Vmware, Inc. | Method for saving virtual machine state to a checkpoint file |
JP6366717B2 (ja) | 2013-09-27 | 2018-08-01 | インテル・コーポレーション | 複数のデバイスにわたる複数のメモリリソースを構成するための技術 |
US10372335B2 (en) | 2014-09-16 | 2019-08-06 | Kove Ip, Llc | External memory for virtualization |
US9959205B2 (en) * | 2015-05-13 | 2018-05-01 | Wisconsin Alumni Research Foundation | Shared row buffer system for asymmetric memory |
US20170109043A1 (en) * | 2015-10-16 | 2017-04-20 | SK Hynix Inc. | Memory system |
JP2017138852A (ja) * | 2016-02-04 | 2017-08-10 | 株式会社東芝 | 情報処理装置、記憶装置およびプログラム |
JP2017138853A (ja) * | 2016-02-04 | 2017-08-10 | 株式会社東芝 | 情報処理装置およびプログラム |
-
2017
- 2017-06-19 US US15/626,623 patent/US10339067B2/en active Active
-
2018
- 2018-06-14 WO PCT/US2018/037460 patent/WO2018236657A1/en unknown
- 2018-06-14 KR KR1020197038242A patent/KR102350539B1/ko active IP Right Grant
- 2018-06-14 JP JP2019569799A patent/JP6928123B2/ja active Active
- 2018-06-14 EP EP18821107.2A patent/EP3642722B1/en active Active
- 2018-06-14 CN CN201880038630.4A patent/CN110730956B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7222117B1 (en) * | 2003-11-14 | 2007-05-22 | Advent Software, Inc. | Segmented global area database |
CN1728113A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 利用转换后备缓冲器选中的多处理器系统和方法 |
CN1841343A (zh) * | 2005-03-31 | 2006-10-04 | 国际商业机器公司 | 改进任务切换的系统和方法 |
CN102402399A (zh) * | 2010-08-17 | 2012-04-04 | 微软公司 | 带有非对称存储器的系统中的虚拟机存储器管理 |
Also Published As
Publication number | Publication date |
---|---|
EP3642722B1 (en) | 2023-08-16 |
JP6928123B2 (ja) | 2021-09-01 |
WO2018236657A1 (en) | 2018-12-27 |
CN110730956A (zh) | 2020-01-24 |
EP3642722A1 (en) | 2020-04-29 |
KR20200010504A (ko) | 2020-01-30 |
KR102350539B1 (ko) | 2022-01-14 |
US10339067B2 (en) | 2019-07-02 |
US20180365167A1 (en) | 2018-12-20 |
EP3642722A4 (en) | 2021-03-24 |
JP2020524339A (ja) | 2020-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110730956B (zh) | 用于降低存储器系统中的页面迁移开销的机制 | |
US10387315B2 (en) | Region migration cache | |
US9251095B2 (en) | Providing metadata in a translation lookaside buffer (TLB) | |
US7496711B2 (en) | Multi-level memory architecture with data prioritization | |
US8868843B2 (en) | Hardware filter for tracking block presence in large caches | |
US20120221785A1 (en) | Polymorphic Stacked DRAM Memory Architecture | |
US10067709B2 (en) | Page migration acceleration using a two-level bloom filter on high bandwidth memory systems | |
CN111602377A (zh) | 高速缓存中资源调整方法、数据访问方法及装置 | |
US20170083444A1 (en) | Configuring fast memory as cache for slow memory | |
JP7242170B2 (ja) | メモリープールを有するコンピューティングシステムのためのメモリー分割 | |
KR20220110225A (ko) | 액세스 유형 우선 순위에 따른 캐시 관리 | |
US20210182213A1 (en) | Cache line re-reference interval prediction using physical page address | |
US10565111B2 (en) | Processor | |
US11847074B2 (en) | Input/output device operational modes for a system with memory pools | |
US20130262790A1 (en) | Method, computer program and device for managing memory access in a multiprocessor architecture of numa type | |
US20160103766A1 (en) | Lookup of a data structure containing a mapping between a virtual address space and a physical address space | |
CN116910019A (zh) | 用于具有计算存储设备的跨层键-值存储库的系统和方法 | |
Gizachew | A New Architectural Framework for the Speed Gap between Processor–Main Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |