CN106959893B - 加速器、用于加速器的内存管理方法以及数据处理*** - Google Patents
加速器、用于加速器的内存管理方法以及数据处理*** Download PDFInfo
- Publication number
- CN106959893B CN106959893B CN201710211492.2A CN201710211492A CN106959893B CN 106959893 B CN106959893 B CN 106959893B CN 201710211492 A CN201710211492 A CN 201710211492A CN 106959893 B CN106959893 B CN 106959893B
- Authority
- CN
- China
- Prior art keywords
- memory
- migrated
- accelerator
- extended
- mapping relation
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了加速器、用于加速器的内存管理方法以及数据处理***。所述加速器包括:本地内存,配置为存储数据;扩展内存管理模块,配置为管理加速器的扩展内存;处理器,与本地内存和扩展内存管理模块通信相连,其中所述处理器配置为:监测本地内存的使用状态;当所述使用状态达到第一阈值时,控制扩展内存管理模块基于所述使用状态向与加速器相连的外部设备申请内存作为扩展内存,建立并存储表示所述外部设备的内存与所述扩展内存之间的映射关系的物理内存映射关系。
Description
技术领域
本公开涉及加速器、用于加速器的内存管理方法以及数据处理***。
背景技术
近年来,互联网的发展越来越迅速,人们在使用互联网进行例如网购、收看节目、视频聊天等活动时都会产生大量数据。因此,大数据处理技术在互联网领域中是至关重要的。
目前,尽管已将诸如xeon phi、tilera的加速器广泛地应用于各类数据处理方案,然而,由于大数据处理应用的工作集较大,无法直接运行在这类加速器上。此外,同一物理节点上的多个加速器的负载很容易出现不均衡现象,而传统的进程迁移方法面向分布式计算环境,没有考虑加速器内存与主机内存可直接映射访问的特性,导致进程迁移所带来的开销巨大。
发明内容
本公开的一个方面提供了一种加速器,可以包括:扩展内存管理模块,配置为管理加速器的扩展内存;本地内存,配置为存储数据;处理器,与本地内存和扩展内存管理模块通信相连,其中所述处理器配置为:监测本地内存的使用状态;并且当所述使用状态达到第一阈值时,控制扩展内存管理模块基于所述使用状态向与加速器相连的外部设备申请内存作为扩展内存,建立并存储表示所述外部设备的内存与所述扩展内存之间的映射关系的物理内存映射关系。
可选地,所述处理器还可以配置为:当所述使用状态低于第二阈值时,控制扩展内存管理模块释放扩展内存以供所述外部设备使用。
可选地,所述处理器还可以配置为:按照块大小配置将所述扩展内存划分为多个扩展内存块;记录对扩展内存块的访问次数;并且响应于确定对扩展内存块的访问次数超过预定访问次数,通过中断触发扩展内存管理模块将所述扩展内存块的内容存储到本地内存。
可选地,所述处理器还可以配置为:响应于从外部设备接收到请求释放扩展内存的指令,控制扩展内存管理模块释放相应扩展内存。
可选地,所述加速器还可以包括:迁移进程管理模块,配置为:当需要从所述加速器迁移出进程时,暂停待迁移进程,并保存待迁移进程的页表和所述使用状态低于第二阈值其他信息;向目标加速器的迁移进程管理模块发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。
可选地,所述迁移进程管理模块还可以配置为:从源加速器的迁移进程管理模块接收物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;将所述物理内存映射关系存储在扩展内存管理模块中;根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程。
本公开的另一方面提供了一种加速器的内存管理方法,可以包括:监测本地内存的使用状态;以及当所述使用状态达到第一阈值时,基于所述使用状态,向与加速器相连的外部设备申请内存作为扩展内存,建立并存储表示所述外部设备的内存与所述扩展内存之间的映射关系的物理内存映射关系。
可选地,所述内存管理方法还可以包括:当所述使用状态低于第二阈值时,释放所述加速器的扩展内存以供外部设备使用。
可选地,所述内存管理方法还可以包括:按照块大小配置将所述扩展内存划分为多个扩展内存块;记录对扩展内存块的访问次数;并且响应于确定对扩展内存块的访问次数超过预定访问次数,将来自所述扩展内存块的内容存储到本地内存。
可选地,所述内存管理方法还可以包括:响应于从外部设备接收到请求释放扩展内存的指令,释放相应扩展内存。
可选地,所述内存管理方法还可以包括:当需要从所述加速器迁移出进程时,暂停待迁移进程,并保存待迁移进程的页表以及待迁移进程的其他信息;向目的加速器发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。
可选地,所述内存管理方法还可以包括:从源加速器接收物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;将所述物理内存映射关系存储在所述加速器中;根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程。
本公开的另一方面还提供了一种数据处理***,可以包括:第一设备;以及一个或更多个第二设备,配置为与所述第一设备通信相连,其中所述一个或更多个第二设备之一配置为:监测本地内存的使用状态;当所述使用状态达到第一阈值时,基于所述使用状态,向第一设备申请内存作为扩展内存,建立并存储表示所述第一设备的内存与所述扩展内存之间的映射关系的物理内存映射关系。
可选地,所述第二设备还可以配置为:当所述使用状态低于第二阈值时,释放扩展内存以供所述第一设备使用。
可选地,所述第二设备还可以配置为:按照块大小配置将所述扩展内存划分为多个扩展内存块;记录对扩展内存块的访问次数;并且响应于确定对扩展内存块的访问次数超过预定访问次数,将所述扩展内存块的内容存储到本地内存。
可选地,所述第二设备还可以配置为:响应于从第一设备接收到请求释放扩展内存的指令,释放相应扩展内存。
可选地,所述第二设备还可以配置为:当需要迁移出进程时,暂停待迁移进程,并保存待迁移进程的页表以及待迁移进程的其他信息;向目标第二设备发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。
可选地,所述第二设备还可以配置为:从源第二设备接收物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;将所述物理内存映射关系存储在所述第二设备中;根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的内存管理方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的内存管理方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开的实施例的加速器的结构框架;
图2示意性地描述了根据本公开的实施例的用于加速器的内存管理方法的流程图;
图3示出了根据本公开的实施例的数据处理***的架构图;以及
图4描述了根据本公开的实施例的数据处理***的信号流。
具体实施方式
根据结合附图对本公开示例性实施例的以下详细描述,本公开的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。
为了在诸如xeon phi和tilera的加速器上运行大数据处理任务,提出了一种基于swap原理在异构加速器上运行大数据应用的方法。加速器通过将存储在其中的不常用数据备份到主机内存中,来释放自身内存,以供大数据应用。尽管通过使用该方法可以释放加速器的自身内存,然而对于加速器而言,无法直接使用主机内存,并且无法实现负载均衡。
此外,为了在加速器之间实现负载均衡,当前往往采用预拷贝(pre-copy)算法和后拷贝(post-copy)算法。预拷贝算法是将与待迁移进程相关的所有信息传送给目标加速器。因此,该方法由于数据传送量较大而导致等待时间过长,且对目标加速器的本地内存的空间要求较大。另一方面,后拷贝算法是将除了待迁移进程的内存页面之外的其他信息(例如,通信状态信息、CUP使用情况信息)等传送给目标加速器。尽管这种方法减少了所传送的数据,使得目标加速器在接收到所述与待迁移进程相关的其他信息后可以立即启动进程,但是在启动之后的每次后续访问中,都需要从源加速器拷贝内存页面,从而导致运行效率较为低下。
为此,本公开的实施例提供了一种加速器及其内存管理方法,其中所述加速器能够无缝地运行大数据处理应用,并能够以较低的迁移开销执行进程迁移,从而使资源利用率得到最大化。
图1示意性示出了根据本公开的实施例的加速器100的结构框架。具体地,所述加速器100可以包括:本地内存110,配置为存储数据;扩展内存管理模块120,配置为管理加速器的扩展内存;处理器130,与本地内存110和扩展内存管理模块120通信相连。
所述本地内存110可以包括各种形式的存储器,如非易失性或易失性存储器。例如,存储器可以是例如软盘、DVD、Blu-Ray、CD、只读存储器(ROM)、可编程ROM(PROM)和可擦除可编程ROM(EPROM)、电可擦除可编程(EEPROM)、闪存和/或硬盘驱动器。本地内存110可以配置为存储加速器***的OS和数据。诸如,所述数据可以是加速器运行所述OS需要使用的数据、可执行代码、变量和/或其他暂态数据。
所述扩展内存管理模块120可以是加速器OS的一个内核模块。具体地,当确定需要向外部设备申请其内存作为加速器的扩展内存时,扩展内存管理模块120向外部设备发送内存请求信号,确立并存储表示外部设备的内存和虚拟的扩展内存之间的映射关系的物理内存映射关系;以及当扩展内存管理模块120接收到来自外部设备的关于释放其内存的请求或确定当前本地内存较为空闲时,扩展内存管理模块120释放与外部设备的内存相对应的扩展内存并删除存储的物理内存映射关系。
处理器130可以例如通过总线与本地内存和扩展内存管理模块通信相连,且处理器130可以是单个中央处理单元(CPU),但也可以包括两个或更多个处理单元。例如,处理器130可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))。处理器还可以包括用于缓存用途的板载存储器。处理器130从本地内存110加载OS和各种程序/数据,并执行在所加载的程序中包括的指令,以便:监测本地内存110的使用状态;以及当所述使用状态达到第一阈值时,控制扩展内存管理模块120基于所述使用状态向与加速器100相连的外部设备101申请内存作为扩展内存,建立并存储表示所述外部设备101的内存与所述扩展内存之间的映射关系的物理内存映射关系。此外,当所述使用状态低于第二阈值时,处理器130可以控制扩展内存管理模块120释放扩展内存以供所述外部设备101使用。所述第一阈值和第二阈值可以是相同的或是不同的。
也就是说,处理器130可以通过监控加速器内存的使用状态并将所述使用状态与预定阈值进行比较,来调节(即,扩展或释放)加速器的扩展内存,使得响应于确定加速器内存不足,向外部设备(例如,主机的内存服务模块)申请内存块作为扩展内存,并响应于确定加速器内存空闲,向外部设备释放全部的或一部分扩展内存。
在一个实施例中,当处理器130启动扩展内存管理模块120以便通过扩展内存管理模块为加速器分配扩展内存时,可以在加速器OS内建立伪地址或伪NUMA节点,用于链接后续从外部设备分配的内存块。换言之,在内存紧张时,处理器130控制扩展内存管理模块120主动向主机的内存服务模块中请内存块,建立物理内存映射关系,并加入到伪地址或伪NUMA节点。这样主机内存就可以透明地分配给大数据处理应用。在内存空闲时,处理器130可以控制扩展内存管理模块120主动释放部分内存给主机的内存服务模块。此外,所述处理器130还可以配置为:响应于从外部设备接收到请求释放扩展内存的指令,控制扩展内存管理模块释放相应扩展内存。也就是说,主机内存服务模块也可以主动请求加速器返还一部分的或全部的内存。
在另一实施例中,所述处理器130还可以配置为:按照块大小配置将所述扩展内存划分为多个扩展内存块;记录对扩展内存块的访问次数;并且响应于确定对扩展内存块的访问次数超过预定访问次数,通过中断触发扩展内存管理模120块将所述扩展内存块的内容存储到本地内存110。具体地,可以将诸如块大小配置、阈值配置、扩展内存块访问计数的数据存储在本地内存110中。块大小配置用于配置对扩展内存访问计数的统计单位(例如,4K、64K、1M、1G等)。扩展内存块访问计数用于记录最近一段时间对各扩展内存块的访问次数。阈值配置用于确定何时向加速器OS发出中断,即,只有当对扩展内存块的访问次数超过指定的阈值时,向加速器OS才发出中断,以便扩展内存管理模块120将所述扩展内存块的内容存储到本地内存110。可选地,可以将上述这些逻辑嵌入到例如xeon phi的sbox中。
此外,加速器100还可以附加地包括迁移进程管理模块。所述迁移进程管理模块配置为:当需要从所述加速器迁移出进程时,暂停待迁移进程,并保存待迁移进程的页表和所述使用状态低于第二阈值其他信息;向目标加速器的迁移进程管理模块发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。此外,当接收从其他加速器迁出的进程时,所述迁移进程管理模块还可以进一步配置为:从源加速器的迁移进程管理模块接收物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;将所述物理内存映射关系存储在扩展内存管理模块中;根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程。
具体地,当主机的多个加速器负载不均衡或者需要进程迁移时,可以调用迁移进程管理模块进行负载均衡。此模块会将源加速器的物理内存映射信息、待迁移进程的页表以及待迁移进程的其它信息等发给目的加速器的迁移进程管理模块。目的加速器的迁移进程管理模块根据上述信息,从源加速器接手待迁移进程所使用的主机内存,调整待迁移进程的页表,恢复进程执行。所述从源加速器接收待迁移进程所使用的主机内存是指:源加速器的扩展内存管理模块释放所述主机内存并在将上述信息发送给目的加速器之后删除对应物理内存映射关系,且目的加速器通过接收到的物理内存映射关系并将其加入到伪NUMA节点,来根据接收到的待迁移进程的页表以及待迁移进程的其它信息,恢复进程。综上,通过使用迁移进程管理模块,不需要拷贝位于主机的内存数据,并且可以仅通过调整进程的物理内存映射关系,使得能够在加速器之间实现合理分配负载,从而处理器可以例如通过PCI-E通道直接访问源进程所在内存的数据。
下面,将结合上文所述的加速器的配置,来详细描述根据本公开的实施例的用于加速器的内存管理方法。
图2示意性地描述了根据本公开的实施例的用于加速器的内存管理方法的流程图。
具体地,所述用于加速器的内存管理方法可以包括:在步骤S201,监测本地内存的使用状态。接着,在步骤S203,确定所示使用状态是否达到第一阈值,其中第一阈值可以是加速器内存满载状态的70%或其他数值,或者例如加速器内存剩余1GB。当所述使用状态达到第一阈值(例如,加速器内存满载达到70%或者加速器的内存仅剩余1GB)时(步骤S203-是),在步骤S203,基于所述使用状态,向与加速器相连的外部设备申请内存作为扩展内存,建立并存储表示所述外部设备的内存与所述扩展内存之间的映射关系的物理内存映射关系。具体地,可以根据本地内存的不同使用状态,向外部设备申请不同大小的内存作为扩展内存。例如,如果本地内存的使用状态达到75%,则向外部设备申请1000M的内存作为扩展内存(或外部设备内存的10%);如果本地内存的使用状态达到80%,则向外部设备申请2000M的内存作为扩展内存(或外部设备内存的20%)。应注意,以上示例仅是为了进行说明,而不用于限定本公开。本领域技术人员可以根据实际需要来基于使用状态向外部设备申请内存作为扩展内存,使得可以根据不同内存使用情况扩展内存,从而方便使用。此外,如果确定本地内存的使用状态没有达到第一阈值(步骤S203-否),则所述方法返回操作S201。
此外,所述方法还可以包括:当所述使用状态低于第二阈值时(例如,50%),释放所述加速器的扩展内存或本地内存的一部分或全部以供外部设备使用。备选地,所述方法还可以包括:响应于从外部设备接收到请求释放扩展内存的指令,释放相应扩展内存。
此外,如上所述,所述方法还可以包括:按照块大小配置将所述扩展内存划分为多个扩展内存块;记录对扩展内存块的访问次数;并且响应于确定对扩展内存块的访问次数超过预定访问次数,将来自所述扩展内存块的内容存储到本地内存。
在另一实施例中,如果加速器的负载过大,则需要从所述加速器迁出进程,以执行负载均衡。在这种情况下,所述方法还可以包括:暂停待迁移进程,并保存待迁移进程的页表以及待迁移进程的其他信息;向目的加速器发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。另一方面,当加速器需要接收从源加速器迁出的进程时,所述加速器应从源加速器接收物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;将所述物理内存映射关系存储在所述加速器中;根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程。
基于根据上述实施例的加速器和用于加速器的内存管理方法,还可以提供一种数据处理***。图3示出了根据本公开的实施例的数据处理***的架构图。
具体地,所述数据处理***可以包括第一设备(诸如,主机)330;以及一个或更多个第二设备(诸如,加速器)310以及320,配置为与所述第一设备330通信相连。所述一个或更多个第二设备之中的每一个都可以配置为包括如上所述的的扩展内存管理模块312和322、本地内存314和324以及处理器313和323,且可以备选地包括迁移进程管理模块311和321。所述第二设备被配置为监测本地内存的使用状态;当所述使用状态达到第一阈值时,基于所述使用状态,经由扩展内存管理模块向第一设备申请内存作为扩展内存,建立并存储表示所述第一设备的内存与所述扩展内存之间的映射关系的物理内存映射关系。在所述第二设备包括迁移进程管理模块的情况下,所述数据处理***还可以在第二设备之间执行进程迁移,以便均衡第二设备之间的负载。
下面参考图4描述了根据本公开的实施例的数据处理***的信号流。首先,第二设备之一(即,加速器1)420通过监测本地内存的使用情况发现需要向第一设备410请求内存作为其扩展内存,因此,在操作P1,首先发送扩展内存请求。随后,如果第一设备410具有可以分配给加速器的内存,则可以向所述第二设备420发送肯定应答,例如,包括内存地址的信息,即,操作P2。在操作P3,所述第二设备420在接收到的内存地址与所分配的扩展内存的伪地址之间建立映射关系,并存储表示所述映射关系的物理内存映射关系,使得可以将第一设备的内存视为该加速器的扩展内存并且进行使用。
此外,在第二设备还包括迁移进程管理模块的情况下,如果第二设备420的负载过大,第二设备420还可以执行进程迁移,即,将第二设备420上的部分进程迁移到另一第二设备(例如,加速器2)430。具体地,所述迁移过程包括:在操作Q1,响应于确定加速器超负载运行(例如,CPU的使用率达到90%或其他数值),则第二设备420确定需要迁出进程,且在此时暂停待迁移进程并保存待迁移进程的页表和待迁移进程的其他信息。随后,在操作Q2,第二设备420向目标第二设备430发送所存储的物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息。接着,对于第二设备420而言,响应于完成所述发送,删除所述待迁移进程的物理内存映射关系(操作Q3-1)。对于第二设备430而言,需要将接收到的物理内存映射关系存储在所述第二设备中,并根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程(操作Q3-2)。
因此,以上提供了一种加速器、用于加速器的内存管理方法以及数据处理***,使得能够无缝地运行大数据处理应用,并能够以较低的迁移开销执行进程迁移,从而使资源利用率得到最大化。
此外,应注意,根据本公开各实施例的上述方法、装置、单元和/或模块可以通过有计算能力的电子设备执行包含计算机指令的软件来实现。所述有计算能力的电子设备可以包含通用处理器、数字信号处理器、专用处理器、可重新配置处理器等能够执行计算机指令的装置,但不限于此。上述各设备和/或模块可以在一个电子设备中实现,也可以在不同电子设备中实现。这些软件可以存储在计算机可读存储介质中。
所述计算机可读存储介质例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体***、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。计算机可读存储介质可以包括一个或多个计算机程序,该计算机程序可以包括代码/计算机可执行指令,其在由处理器执行时使得处理器执行例如上面所描述的方法流程及其任何变形。
计算机程序可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序中的代码可以包括一个或多个程序模块。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器执行时,使得处理器可以执行上面所描述的方法流程及其任何变形。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (11)
1.一种加速器,包括:
本地内存,配置为存储数据;
扩展内存管理模块,配置为管理加速器的扩展内存;
处理器,与本地内存和扩展内存管理模块通信相连,其中所述处理器配置为:
监测本地内存的使用状态;
当所述使用状态达到第一阈值时,控制扩展内存管理模块基于所述使用状态向与加速器相连的外部设备申请内存作为扩展内存,建立并存储表示所述外部设备的内存与所述扩展内存之间的映射关系的物理内存映射关系,
其中所述加速器还包括:迁移进程管理模块,配置为:
当需要从所述加速器迁移出进程时,暂停待迁移进程,并保存待迁移进程的页表和待迁移进程的其他信息;
向目标加速器的迁移进程管理模块发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;
响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。
2.根据权利要求1所述的加速器,其中所述处理器还配置为:
当所述使用状态低于第二阈值时,控制扩展内存管理模块释放扩展内存以供所述外部设备使用。
3.根据权利要求1所述的加速器,其中所述处理器还配置为:按照块大小配置将所述扩展内存划分为多个扩展内存块;记录对扩展内存块的访问次数;并且响应于确定对扩展内存块的访问次数超过预定访问次数,通过中断触发扩展内存管理模块将所述扩展内存块的内容存储到本地内存。
4.根据权利要求1所述的加速器,其中所述处理器还配置为:响应于从外部设备接收到请求释放扩展内存的指令,控制扩展内存管理模块释放相应扩展内存。
5.根据权利要求1所述的加速器,其中所述迁移进程管理模块还配置为:
从源加速器的迁移进程管理模块接收物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;
将所述物理内存映射关系存储在扩展内存管理模块中;
根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程。
6.一种加速器的内存管理方法,包括:
监测本地内存的使用状态;以及
当所述使用状态达到第一阈值时,基于所述使用状态,向与加速器相连的外部设备申请内存作为扩展内存,建立并存储表示所述外部设备的内存与所述扩展内存之间的映射关系的物理内存映射关系,
其中所述内存管理方法还包括:
当需要从所述加速器迁移出进程时,暂停待迁移进程,并保存待迁移进程的页表以及待迁移进程的其他信息;
向目的加速器发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;
响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。
7.根据权利要求6所述的内存管理方法,还包括:当所述使用状态低于第二阈值时,释放所述加速器的扩展内存以供外部设备使用。
8.根据权利要求6所述的内存管理方法,还包括:按照块大小配置将所述扩展内存划分为多个扩展内存块;记录对扩展内存块的访问次数;并且响应于确定对扩展内存块的访问次数超过预定访问次数,将来自所述扩展内存块的内容存储到本地内存。
9.根据权利要求6所述的内存管理方法,还包括:响应于从外部设备接收到请求释放扩展内存的指令,释放相应扩展内存。
10.根据权利要求6所述的内存管理方法,还包括:
从源加速器接收物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;
将所述物理内存映射关系存储在所述加速器中;
根据接收到的待迁移进程的页表以及待迁移进程的其他信息,恢复待迁移进程。
11.一种数据处理***,包括:
第一设备;
一个或更多个第二设备,配置为与所述第一设备通信相连,
其中所述一个或更多个第二设备之一配置为:
监测本地内存的使用状态;
当所述使用状态达到第一阈值时,基于所述使用状态,向第一设备申请内存作为扩展内存,建立并存储表示所述第一设备的内存与所述扩展内存之间的映射关系的物理内存映射关系,
其中所述一个或更多个第二设备之一还被配置为:
当需要移出进程时,暂停待迁移进程,并保存待迁移进程的页表以及待迁移进程的其他信息;
向目的设备发送所述物理内存映射关系、待迁移进程的页表以及待迁移进程的其他信息;
响应于完成所述发送,删除所述待迁移进程的物理内存映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710211492.2A CN106959893B (zh) | 2017-03-31 | 2017-03-31 | 加速器、用于加速器的内存管理方法以及数据处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710211492.2A CN106959893B (zh) | 2017-03-31 | 2017-03-31 | 加速器、用于加速器的内存管理方法以及数据处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106959893A CN106959893A (zh) | 2017-07-18 |
CN106959893B true CN106959893B (zh) | 2020-11-20 |
Family
ID=59483901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710211492.2A Active CN106959893B (zh) | 2017-03-31 | 2017-03-31 | 加速器、用于加速器的内存管理方法以及数据处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106959893B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423135B (zh) * | 2017-08-07 | 2020-05-12 | 上海兆芯集成电路有限公司 | 均衡装置以及均衡方法 |
CN109684257B (zh) * | 2018-12-24 | 2022-08-12 | 广东浪潮大数据研究有限公司 | 一种远程内存扩展管理*** |
CN110278603B (zh) * | 2019-06-20 | 2022-02-11 | 重庆邮电大学 | 一种移动终端动态功耗调整的方法 |
CN112631954A (zh) * | 2019-10-09 | 2021-04-09 | 联想企业解决方案(新加坡)有限公司 | 可扩展的双列直插式内存模块 |
CN112286688B (zh) * | 2020-11-05 | 2024-01-05 | 北京深维科技有限公司 | 一种内存管理和使用方法、装置、设备和介质 |
CN114253733B (zh) * | 2021-12-24 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种内存管理方法、装置、计算机设备和存储介质 |
CN114003394B (zh) * | 2021-12-31 | 2022-03-29 | 深圳市华图测控***有限公司 | 用于恒温机内存不足的动态内存扩展方法、装置和恒温机 |
CN115016742B (zh) * | 2022-08-08 | 2022-12-02 | 北谷电子有限公司 | 一种嵌入式设备的内存扩展方法 |
CN117631958A (zh) * | 2022-08-19 | 2024-03-01 | 成都华为技术有限公司 | 一种dpu的存储空间扩展方法、装置及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019324B (zh) * | 2012-12-26 | 2015-08-12 | 无锡江南计算技术研究所 | 内存能力增强的可重构微服务器 |
CN105931176A (zh) * | 2016-03-30 | 2016-09-07 | 杨桦 | 一种可扩展智能图形图像处理的加速装置和方法 |
CN106445691A (zh) * | 2016-11-25 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种面向虚拟化云计算平台的内存优化的方法 |
-
2017
- 2017-03-31 CN CN201710211492.2A patent/CN106959893B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106959893A (zh) | 2017-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106959893B (zh) | 加速器、用于加速器的内存管理方法以及数据处理*** | |
US10884799B2 (en) | Multi-core processor in storage system executing dynamic thread for increased core availability | |
US10884645B2 (en) | Virtual machine hot migration method, host machine and storage medium | |
US10248175B2 (en) | Off-line affinity-aware parallel zeroing of memory in non-uniform memory access (NUMA) servers | |
US9619378B2 (en) | Dynamically optimizing memory allocation across virtual machines | |
US9256464B2 (en) | Method and apparatus to replicate stateful virtual machines between clouds | |
US9858120B2 (en) | Modifying memory space allocation for inactive tasks | |
CN110196770B (zh) | 云***内存数据处理方法、装置、设备及存储介质 | |
US20210326177A1 (en) | Queue scaling based, at least, in part, on processing load | |
KR102513961B1 (ko) | 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법 | |
US9645841B2 (en) | Dynamic virtual machine storage usage monitoring, provisioning, and migration | |
KR20180122593A (ko) | 클라우드 컴퓨팅 환경에서 클라우드 호스트를 삭제하는 방법, 장치, 서버 및 저장 매체 | |
US20140089624A1 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
US11429413B2 (en) | Method and apparatus to manage counter sets in a network interface controller | |
CN112631994A (zh) | 数据迁移方法及*** | |
US9658894B2 (en) | Automatically and dynamically reclaiming resources during virtual machine decommission | |
US10530870B2 (en) | Direct volume migration in a storage area network | |
CN115827148A (zh) | 一种资源管理方法、装置、电子设备及存储介质 | |
US20210157626A1 (en) | Prioritizing booting of virtual execution environments | |
JP6653786B2 (ja) | I/o制御方法およびi/o制御システム | |
TWI616820B (zh) | 虛擬機遷移控制方法及裝置 | |
JPWO2019221131A1 (ja) | 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム |
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 |