非一致性存储结构实现方法及系统的制作方法

文档序号:6492405阅读:184来源:国知局
非一致性存储结构实现方法及系统的制作方法
【专利摘要】一种非一致性存储结构实现方法及系统,该方法包括:控制服务器中的每个中央处理器CPU访问该服务器中的所有内存,并根据访问时间确定每个CPU的本地内存、本地远端内存及其他远端内存;获取CPU访问各内存所得的数据;当CPU访问所得数据为全局数据时,将全局静态数据放置于该CPU的其他远端内存中,将全局动态数据放置于该CPU的本地内存或本地远端内存中;及当CPU访问所得数据为局部数据时,将该局部数据放置于该CPU的本地内存中。利用本发明可以让服务器达到支持非一致性存储结构模式的效果。
【专利说明】非一致性存储结构实现方法及系统
【技术领域】
[0001]本发明涉及一种操作系统管理方法及系统,尤其涉及一种操作系统中的非一致性存储结构实现方法及系统。
【背景技术】
[0002]传统的多核运算使用对称多处理(Symmetrical Mult1-Processing, SMP)模式,每个中央处理器(Central Processing Unit, CPU)均通过相同的内存控制器件访问共同内存。现在的多核运算使用非一致性存储结构(Non-Uniform Memory Access Architecture,NUMA)模式,每个CPU可以同时访问不同的内存地址,可大幅度提高计算机的并行性。
[0003]现有的服务器硬件从2006年开始支持NUMA模式,而市面上现有的操作系统则从2011年开始支持NUMA模式,从而导致采购于2006年至2011年之间的服务器硬件虽可支持NUMA模式,但操作系统仍是SMP模式。如需服务器工作在NUMA模式,则应花钱更新操作系统,否则操作系统只有按照SMP的方法,就是以最慢的方式,去访问所有的资源,而导致服务器的资源得不到充分的利用。因此需寻求一种针对服务器硬件支持但是操作系统不支持NUMA模式时的方法,以自适应操作系统,以实现不需更新操作系统就可以达到支持NUMA模式的效果。

【发明内容】

[0004]鉴于以上内容,有必要提供一种非一致性存储结构实现方法,以让服务器达到支持非一致性存储结构模式的效果。
[0005]鉴于以上内容,还有必要提供一种非一致性存储结构实现系统,以让服务器达到支持非一致性存储结构模式的效果。
[0006]所述非一致性存储结构实现方法,该方法包括以下步骤:控制服务器中的每个中央处理器CPU访问该服务器中的所有内存,并根据访问时间确定每个CPU的本地内存、本地远端内存及其他远端内存;获取CPU访问各内存所得的数据,该数据包括全局数据、局部读写数据和局部只读数据,其中,该全局数据包括全局静态数据和全局动态数据;当CPU访问所得数据为全局数据时,将全局静态数据放置于该CPU的其他远端内存中,将全局动态数据放置于该CPU的本地内存或本地远端内存中;当CPU访问所得数据为局部读写数据时,将该局部读写数据放置于该CPU的本地内存中,并在该CPU的本地内存的容量不足时将所述局部读写数据放置于该CPU的本地远端内存中;及当CPU访问所得数据为局部只读数据时,将该局部只读数据放置于该CPU的本地内存中。
[0007]所述非一致性存储结构实现系统,该系统包括:确定模块,用于控制服务器中的每个中央处理器CPU访问该服务器中的所有内存,并根据访问时间确定每个CPU的本地内存、本地远端内存及其他远端内存;获取模块,用于获取CPU访问各内存所得的数据,该数据包括全局数据、局部读写数据和局部只读数据,其中,该全局数据包括全局静态数据和全局动态数据;全局数据放置模块,用于当CPU访问所得数据为全局数据时,将全局静态数据放置于该CPU的其他远端内存中,将全局动态数据放置于该CPU的本地内存或本地远端内存中;及局部数据放置模块,用于当CPU访问的数据为局部读写数据时,将局部读写数据放置于该CPU的本地内存中,并在该CPU的本地内存的容量不足时将所述局部读写数据放置于该CPU的本地远端内存中;及当CPU访问的数据为局部只读数据时,将该局部只读数据放置于该CPU的本地内存中。
[0008]相较于现有技术,所述的非一致性存储结构实现方法及系统,在服务器硬件支持但是操作系统不支持非一致性存储结构(Non-Uniform Memory Access Architecture,NUMA)模式时,所述服务器不需更新操作系统,即可达到支持NUMA模式的效果,节省了操作系统的更新费用,且提高了服务器的运行效率。
【专利附图】

【附图说明】
[0009]图1是本发明非一致性存储结构实现系统较佳实施例的运行环境图。
[0010]图2是本发明非一致性存储结构实现系统较佳实施例的功能模块图。
[0011]图3是本发明非一致性存储结构实现方法较佳实施例的流程图。
[0012]图4是举例说明本发明中计算单元的内部连接示例图。
[0013]图5是本发明非一致性存储结构实现方法较佳实施例的访问时间表的示例图。
[0014]主要元件符号说明
服务器11
非一致性存储结构实现系统 10
计算单元_
第一计算单元_2a
第一计算单元_2b
CPU20~
為存f
存储系统f
系统总线_1_
获取模块_100
确定模块_101
全局数据放置模块_102
局部数据放置模块1103
如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0015]如图1所示,是本发明非一致性存储结构实现系统较佳实施例的运行环境图。
[0016]非一致性存储结构实现系统10运行于服务器I中,该服务器I可为云端服务器或者其他类型的服务器。所述非一致性存储结构实现系统10用于在服务器硬件支持但是操作系统不支持非一致性存储结构(Non-Uniform Memory Access Architecture, NUMA)模式时,使服务器I达到支持NUMA模式的效果。
[0017]所述服务器I中包括一个或多个计算单元2 (图1中仅画出一个)及存储系统3。所述计算单元2是简化的系统主板,是一台没有电源及散热系统的“服务器”。所述存储系统3用于存储服务器I中的数据及所述非一致性存储结构实现系统10的计算机程序化代码。[0018]所述计算单兀2中包括一个或多个中央处理器20 (Central Processing Unit,CPU)(以下简称CPU20),及一个或多个内存21。每个CPU20与一个或多个内存21连接,该与CPU20连接的内存21为该CPU20的本地内存。每个CPU20可访问服务器I中的所有内存21。需要说明的是,CPU20访问本地内存的速度最快。
[0019]如图2所示,是本发明非一致性存储结构实现系统较佳实施例的功能模块图。所述非一致性存储结构实现系统10包括获取模块100、确定模块101、全局数据放置模块102及局部数据放置模块103。服务器I的存储系统3存储模块100至103的计算机程序化代码,计算单元2执行该计算机程序化代码,提供模块100至103的下述功能。以下结合图3说明模块100至103的功能。
[0020]如图3所示,是本发明非一致性存储结构实现方法较佳实施例的流程图。
[0021]步骤S10,所述获取模块100获取服务器I中所有内存21的数量。如图4所举实例,服务器I包括第一计算单元2a和第二计算单元2b,该第一计算单元2a与第二计算单元2b通过系统总线4连接。所述第一计算单元2a包括第一 CPU、与第一 CPU连接的第一内存、与第一 CPU连接的第二 CPU及与第二 CPU连接的第二内存,所述第二计算单元2b包括第三CPU、与第三CPU连接的第三内存、与第三CPU连接的第四CPU及与第四CPU直接连接的第四内存。所述第一 CPU与第三CPU通过系统总线4连接。获取模块100获取的内存21为第一内存、第二内存、第三内存及第四内存。
[0022]步骤S12,所述确定模块101控制每个CPU20访问服务器I中的所有内存21,并根据访问时间确定每个CPU20的本地内存、本地远端内存及其他远端内存。所述本地内存是指与CPU20直接连接的内存21,所述本地远端内存是指与CPU20位于同一个计算单元2中而未直接连接的内存,所述其他远端内存是指与CPU20位于同一服务器I而不在同一个计算单元2中的内存。
[0023]需要说明的是,根据各CPU20访问各内存21的访问时间,可确定每个CPU20的本地内存、本地远端内存及其他远端内存。所述CPU20访问时间最短的内存21为该CPU20的本地内存。所述CPU20访问时间最长的内存21为该CPU20的其他远端内存,该最长访问时间远大于最短访问时间,如该最长访问时间为最短访问时间的500倍至2000倍。所述CPU20访问时间大于最短访问时间且远小于最长访问时间的内存21为该CPU20的本地远端内存,如该访问时间为最短访问时间的2倍至10倍。
[0024]如图5所示,记录了第一 CPU、第二 CPU、第三CPU及第四CPU访问各内存的访问时间,并由此得到一张访问时间表。以图4中的第一 CPU为例进行介绍,该第一 CPU可直接访问第一内存,访问时间为I纳秒(ns);该第一 CPU通过第二 CPU来访问第二内存,访问时间为2ns ;该第一 CPU通过系统总线4及第三CPU来访问第三内存,访问时间为IOOOns ;因为第一计算单元2a的第一 CPU通过系统总线4连接至第二计算单元2b的第三CPU,所以该第一 CPU需通过系统总线4、第三CPU及第四CPU来访问第四内存,访问时间为1000ns。根据访问时间可知:第一内存为第一 CPU的本地内存,第二内存为第一 CPU的本地远端内存,第三内存及第四内存为第一 CPU的其他远端内存。
[0025]步骤S14,所述获取模块100获取CPU20访问各内存21所得的数据,该数据包括全局数据、局部读写数据和局部只读数据,其中,该全局数据包括全局静态数据和全局动态数据。所述全局静态数据为仅需读取而无需修改的数据,所述全局动态数据为需要同步的数据,所述局部读写数据及局部只读数据为需要频繁存取的数据。
[0026]步骤S16,所述全局数据放置模块102判断CPU20访问所得数据是否为全局数据。当CPU20访问所得数据为全局数据时,执行步骤S18并结束流程,否则,执行步骤S20。
[0027]步骤S18,所述全局数据放置模块102将全局静态数据放置于该CPU20的其他远端内存中,并将全局动态数据放置于该CPU20的本地内存或本地远端内存中。
[0028]步骤S20,所述局部数据放置模块103判断CPU20访问所得数据是否为局部读写数据。当CPU20访问所得数据为局部读写数据时,执行步骤S22并结束流程,否则,执行步骤S24。
[0029]步骤S22,所述局部数据放置模块103将局部读写数据优先放置于该CPU20的本地内存中,并在该CPU20的本地内存的容量不足时将局部读写数据放置于该CPU20的本地远端内存中。
[0030]步骤S22,所述局部数据放置模块103将局部只读数据放置于该CPU20的本地内存中。
[0031]由于本发明中不同类型的数据所存储的位置被预先设定,且通过非一致性存储结构实现系统10及如图4所示的内部连接,能在多个CPU20协同工作时,让CPU20尽量访问本身的内存,以此来提高CPU20访问内存的速度,进而使得服务器I的操作系统达到支持NUMA模式的效果。
[0032]以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
【权利要求】
1.一种非一致性存储结构实现方法,其特征在于,该方法包括: 控制服务器中的每个中央处理器CPU访问该服务器中的所有内存,并根据访问时间确定每个CPU的本地内存、本地远端内存及其他远端内存; 获取CPU访问各内存所得的数据,该数据包括全局数据、局部读写数据和局部只读数据,其中,该全局数据包括全局静态数据和全局动态数据; 当CPU访问所得数据为全局数据时,将全局静态数据放置于该CPU的其他远端内存中,将全局动态数据放置于该CPU的本地内存或本地远端内存中; 当CPU访问所得数据为局部读写数据时,将该局部读写数据放置于该CPU的本地内存中,并在该CPU的本地内存的容量不足时将所述局部读写数据放置于该CPU的本地远端内存中;及 当CPU访问所得数据为局部只读数据时,将该局部只读数据放置于该CPU的本地内存中。
2.如权利要求1所述的非一致性存储结构实现方法,其特征在于,所述服务器包括一个或多个计算单元,每个计算单元包括一个或多个CPU及一个或多个内存,每个CPU均连接一个或多个内存。
3.如权利要求2所述的非一致性存储结构实现方法,其特征在于,所述根据访问时间确定每个CPU的本地内存、本地远端内存及其他远端内存的步骤包括: 确定所述CPU访问时间最短的内存为该CPU的本地内存; 确定所述CPU访问时间最长的内存为该CPU的其他远端内存; 确定所述CPU访问时间大于最短访问时间且小于最长访问时间的内存为该CPU的本地远端内存。
4.如权利要求3所述的非一致性存储结构实现方法,其特征在于,所述最长访问时间为最短访问时间的500倍至2000倍。
5.如权利要求3所述的非一致性存储结构实现方法,其特征在于,所述本地远端内存的访问时间为最短访问时间的2倍至10倍。
6.一种非一致性存储结构实现系统,其特征在于,该系统包括: 确定模块,用于控制服务器中的每个中央处理器CPU访问该服务器中的所有内存,并根据访问时间确定每个CPU的本地内存、本地远端内存及其他远端内存; 获取模块,用于获取CPU访问各内存所得的数据,该数据包括全局数据、局部读写数据和局部只读数据,其中,该全局数据包括全局静态数据和全局动态数据; 全局数据放置模块,用于当CPU访问所得数据为全局数据时,将全局静态数据放置于该CPU的其他远端内存中,将全局动态数据放置于该CPU的本地内存或本地远端内存中;及局部数据放置模块,用于当CPU访问的数据为局部读写数据时,将局部读写数据放置于该CPU的本地内存中,并在该CPU的本地内存的容量不足时将所述局部读写数据放置于该CPU的本地远端内存中;及当CPU访问的数据为局部只读数据时,将该局部只读数据放置于该CPU的本地内存中。
7.如权利要求6所述的非一致性存储结构实现系统,其特征在于,所述服务器包括一个或多个计算单元,每个计算单元包括 一个或多个CPU及一个或多个内存,每个CPU均连接一个或多个内存。
8.如权利要求7所述的非一致性存储结构实现系统,其特征在于,通过以下步骤确定每个CPU的本地内存、本地远端内存及其他远端内存: 确定所述CPU访问时间最短的内存为该CPU的本地内存; 确定所述CPU访问时间最长的内存为该CPU的其他远端内存; 确定所述CPU访问时间大于最短访问时间且小于最长访问时间的内存为该CPU的本地远端内存。
9.如权利要求8所述的非一致性存储结构实现系统,其特征在于,所述最长访问时间为最短访问时间的500倍至2000倍。
10.如权利要求8所述的非一致性存储结构实现系统,其特征在于,所述本地远端内存的访问时间为最短访问时间的2倍 至10倍。
【文档编号】G06F13/16GK103853674SQ201210518321
【公开日】2014年6月11日 申请日期:2012年12月6日 优先权日:2012年12月6日
【发明者】王光建, 吴文伍, 付小军 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1