一种内存共享的系统和装置及方法制造方法及图纸

技术编号:2918230 阅读:230 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种多核心NUMA系统中的内存共享系统和装置及方法。该系统,包括多个节点;每个所述节点的操作系统包括内存共享装置,所述内存共享装置包括:内存信息收集及处理模块、内存申请模块和建立远端内存动态管理结构的模块连接到通信模块。所述方法包括如下步骤:步骤S1,当前节点的内存不足时,向其他节点发出内存不足信息,收集其他节点中有空闲内存的节点信息,然后向所述有空闲内存的节点发出内存申请信息,请求使用远端内存;步骤S2,所述有空闲内存的节点在收到所述内存申请信息后为当前节点分配远端内存并让当前节点动态管理并独占使用所述远端内存。本发明专利技术通过借用远端空闲内存,以达到整个系统的负载平衡。

【技术实现步骤摘要】

本专利技术涉及多核处理器
,特别是涉及一种在多核处理器系统非一致内存访问(Non Uniform Memory Access, NUMA)中节点之间实现内存共享 的系统和装置及方法。
技术介绍
非一致内存访问(NUMA)是一个在多处理器系统中配置微处理器的簇的方 法,这样可以在本地共享内存,提高系统扩展的性能和能力。非一致内存访问被用于对称多处理系统(Symmetric Multi-Processing, SMP)中。对称多处理系统是〃紧紧联系〃、 〃共享一切〃的系统,在这个系统里 单一操作系统下的多重处理器通过公用总线或"互联"路径访问彼此的内存。对 称多处理的一个局限性是当微处理器增加时,共享总线和数据路径变得超载并 且成为性能瓶颈。非一致内存访问增加一个在几个微处理器中共享的内存媒介 水平,这样一来不用所有的数据访问都在主要的总线上传输。非一致内存访问一般是以"簇"的形式进行的。这个簇一般由四个微处理 器(例如四个奔腾微处理器)组成,这四个微处理器通过一条局域总线(例如 外围组件互联总线)与一个单独主板(也可能是一个卡)上的共享内存(叫做 "L3缓存〃)连接。这个单元可以添加到相似的单元,形成一个对称多处理系 统,其中一条公用对称多处理总线连接所有的簇。这样一个系统典型的包含l 6到2 5 6个微处理器。对一个运行在对称多处理系统中的应用程序来说,所 有单独的处理器内存看起来就像一个内存。但一个处理器在特定内存地址寻找 数据的时候,它首先察看微处理器本身的L1缓存,然后是附近的稍微大些的 L2缓存,再然后是本地处理器附近的"本地内存",最后是位于另一个微处理 器附近的"远程内存"。在互联网络里非一致内存访问把这些簇的每一个都看作 一个"节点〃。非一致内存访问维持所有节点上的数据的分级视图。使用可升级 连贯接口 (SCI)技术,数据被通过总线在非一致内存访问对称多处理系统的簇间移动。SCI在多重簇的节点之间与叫做〃缓存一致"或一致性的东西相配。SMP 和非一致内存访问系统典型的被用于像数据挖掘和决策支持系统这样的应用 软件,在这些软件中处理任务可以被分配给许多在一个公用数据库上集体工作 的处理器。但是,在非一致内存访问管理的多核处理器系统中,处理器之间经常由于 负载不平衡,造成内存资源不能被充分的利用。在现有的技术中,为了充分利 用内存资源,技术人员往往要修改应用程序,这样做的不足在于增加了技术人 员的工作量,而且效果也不好。
技术实现思路
本专利技术的目的在于提供,其能够充分利 用内存资源,提高整个系统的吞吐率和并行性能。为了达到上述目的,本专利技术采取如下技术方案-一种内存共享系统,包括具有至少一个处理器核和/或至少一个处理器的 多个节点;每个所述节点的操作系统包括内存共享装置,所述内存共享装置包 括内存信息收集及处理模块,用于收集其他节点发送来的远端内存空闲信息 并从中找出有空闲内存的节点;内存申请模块,用于向有空闲内存的节点发送内存申请信息来申请使用远 端内存;建立远端内存动态管理结构的模块,用于对从其他节点申请来的远端内存 建立动态管理;通信模块,与所述内存信息收集及处理模块、所述内存申请模块和所述建 立远端内存动态管理的模块相连接,用于节点之间的通信。 较佳地,所述内存共享装置还包括内存归还模块,用于向其他节点归还使用完的内存;所述内存归还模块与 所述通信模块连接。较佳地,,所述内存共享装置还包括内存信息广播模块,用于向其他节点广播本地内存空闲信息; 内存分配模块,用于在接到远端节点的内存申请信息时,将本地空闲内存分配给远端节点使用,并更新本地的内存空闲信息;所述内存信息广播模块和所述内存分配模块与所述通信模块连接。 较佳地,所述内存信息收集及处理模块,还用于从有空闲内存的节点中找出空闲内存最多的节点;所述内存申请模块,用于向空闲内存最多的节点发送内存申请信息来申请使用远端内存。较佳地,所述内存申请信息中包含申请的内存数量,所述申请的内存数量 大于本地实际需要的内存数量。较佳地,所述内存共享装置还包括内存回收模块,用于发送内存回收信息 并接收其他节点归还的内存。较佳地,所述内存归还模块还设定有一个预定时间,用于本地节点在使用 完远端内存后,如果在所述预定时间内接收到原来拥有所述远端内存的节点发 来的内存回收信息,则所述内存归还模块归还所述远端内存;否则,所述内存 归还模块延迟所述预定时间后再归还所述远端内存。较佳地,所述内存申请模块和所述内存归还模块被设为操作系统最高进程 优先级。一种内存共享装置,用于多核心的非一致内存访问中,包括 内存信息收集及处理模块,用于收集其他节点发送来的远端内存空闲信息并从中找出有空闲内存的节点;内存申请模块,用于向有空闲内存的节点发送内存申请信息来申请使用远端内存;建立远端内存动态管理结构的模块,用于对从其他节点申请来的远端内存 建立动态管理;通信模块,与所述内存信息收集及处理模块、所述内存申请模块和所述建 立远端内存动态管理的模块相连接,用于节点之间的通信。较佳地,还包括内存归还模块,用于向其他节点归还使用完的内存;所 述内存归还模块与所述通信模块连接。较佳地,还包括内存信息广播模块,用于向其他节点广播本地内存空闲信息; 内存分配模块,用于在接到远端节点的内存申请信息时,将本地空闲内存分配给远端节点使用,并更新本地的内存空闲信息;所述内存信息广播模块和所述内存分配模块与所述通信模块连接。 较佳地,所述内存信息收集及处理模块,还用于从有空闲内存的节点中找出空闲内存最多的节点;所述内存申请模块,用于向空闲内存最多的节点发送内存申请信息来申请使用远端内存。较佳地,所述内存申请信息中包含申请的内存数量,所述申请的内存数量 大于本地实际需要的内存数量。较佳地,所述内存共享装置还包括内存回收模块,用于发送内存回收信息 并接收其他节点归还的内存。较佳地,所述内存归还模块还设定有一个预定时间,用于本地节点在使用 完远端内存后,如果在所述预定时间内接收到原来拥有所述远端内存的节点发 来的内存回收信息,则所述内存归还模块归还所述远端内存;否则,所述内存 归还模块延迟所述预定时间后再归还所述远端内存。较佳地,所述内存申请模块和所述内存归还模块被设为操作系统最高进程 优先级。一种内存共享方法,用于多核心的非一致内存访问中,包括如下步骤步骤Sl,当前节点的内存不足时,向其他节点发出内存不足信息,收集其他节点中有空闲内存的节点信息,然后向所述有空闲内存的节点发出内存申请信息,请求使用远端内存;步骤S2,所述有空闲内存的节点在收到所述内存申请信息后为当前节点 分配远端内存并让当前节点动态管理并独占使用所述远端内存。较佳地,所述内存共享方法还包括步骤S3,所述当前节点使用完所述远端内存后,归还所述远端内存。较佳地,所述内存共享方法还包括步骤S4,原来拥有远端内存的节点对当前节点归还的内存进行回收。较佳地,在步骤S1中,具体包括如下步骤步骤Sll,当前节点的进程发生内存不足时,先在本地内存区里寻找空闲 内存,若找到空闲内存,则使用该空闲内存;若没有找到,则进入步骤S12; 步骤S12,在分配给其他节点的内存区中寻找空闲内存,若找到,则发送 内存回收信息并将该空闲内存收回;若没有找到本文档来自技高网
...

【技术保护点】
一种内存共享系统,包括具有至少一个处理器核和/或至少一个处理器的多个节点;其特征在于,每个所述节点的操作系统包括内存共享装置,所述内存共享装置包括:内存信息收集及处理模块,用于收集其他节点发送来的远端内存空闲信息并从中找出有空闲内存 的节点;内存申请模块,用于向有空闲内存的节点发送内存申请信息来申请使用远端内存;建立远端内存动态管理结构的模块,用于对从其他节点申请来的远端内存建立动态管理;通信模块,与所述内存信息收集及处理模块、所述内存申请模块和 所述建立远端内存动态管理的模块相连接,用于节点之间的通信。

【技术特征摘要】

【专利技术属性】
技术研发人员:张翔马捷苗艳超
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1