一种内存装置、互连子系统以及内存的共享方法与流程

文档序号:11519549阅读:205来源:国知局
一种内存装置、互连子系统以及内存的共享方法与流程
本发明涉及存储器应用领域,尤其涉及一种内存装置、互连子系统以及内存的共享方法。
背景技术
:互连子系统包括多个计算机服务器,对于计算机服务器而言,通常包括cpu、主板、显示芯片以及系统内存。随着处理器技术的发展,前端总线对内存带宽的要求越来越高。当计算机服务器自带的内存满足不了程序的运行时,容易出现程序无响应、假死等情况。技术实现要素:本发明提供一种内存装置、互连子系统以及内存的共享方法,用以解决现有技术中计算机服务器的内存不足的技术问题。为解决上述技术问题,本发明第一方面提供一种内存装置,包括:虚拟共享内存池,包括至少一个共享内存单元;接口开关,用于连接所述虚拟共享内存池以及多个计算机服务器;控制器,用于通过控制所述接口开关的状态实现控制所述多个计算机服务器的每个计算机服务器与所述虚拟共享内存池的所述至少一个共享内存单元的连接状态。可选的,所述虚拟共享内存采用sr-iov内存池。可选的,所述接口开关通过pci-e实现所述多个计算机服务器的每个计算机服务器与所述虚拟共享内存池的连接。本发明第二方面提供了一种互连子系统,包括:多个计算机服务器;虚拟共享内存池,包括至少一个共享内存单元;接口开关,用于连接所述多个计算机服务器与所述虚拟共享内存池;控制器,用于通过控制所述接口开关的状态实现控制所述多个计算机服务器的每个算机服务器与所述虚拟共享内存池的所述至少一个共享内存单元的连接状态。可选的,所述虚拟共享内存采用sr-iov内存池。可选的,所述虚拟共享内存池、所述接口开关与所述控制器置于转换开关盒内。可选的,所述接口开关通过pci-e实现所述多个计算机服务器的每个计算机服务器与所述虚拟共享内存池的连接。本发明第三方面提供了一种内存的共享方法,所述方法可以应用于本发明第一方面提供的内存装置或者本发明第二方面提供的互连子系统,所述方法包括:所述控制器接收所述多个计算机服务器中的任意计算机服务器发送的共享内存请求;所述控制器根据预定规则为所述任意计算机服务器分配对应的共享内存单元;所述控制器按照分配好的所述任意计算机服务器与所述共享内存单元的对应关系控制所述接口开关的状态,使得所述任意计算机服务器与所述对应的共享内存单元处于连接状态。可选的,所述控制器根据预定规则为所述任意计算机服务器分配对应的共享内存单元,包括:所述控制器获取所述共享内存请求中的内存需求量;所述控制器确定所述至少一个共享内存单元中当前处于空闲的共享内存单元;所述控制器根据所述内存需求量在所述当前处于空闲的共享内存单元中为所述共享内存请求对应的计算机服务器分配内存大于或者等于所述内存需求量的共享内存单元。可选的,所述控制器根据预定规则为所述任意计算机服务器分配对应的共享内存单元,包括:所述控制器根据所述任意计算机服务器的优先级为所述任意计算机服务器分配对应的共享内存单元。本发明具有如下有益效果:在本发明的技术方案中,提供虚拟共享内存池,并通过控制器控制多个计算机服务器的每个计算机服务器与所述虚拟共享内存池的至少一个共享内存单元的连接状态来为计算机服务器提供内存。因此,解决了现有技术中计算机服务器内存不足的问题。附图说明图1为本发明一实施例中的一种内存装置的结构图;图2为本发明一实施例中的一种互连子系统的结构图;图3为本发明一实施例中的一种内存的共享方法的流程图;图4为本发明一实施例中的一种可能的分配结果的示意图。具体实施方式本发明实施例提供了一种内存装置、互连子系统以及内存的共享方法,用以解决现有技术中计算机服务器在自带的内存满足不了程序的运行时,容易出现程序无响应、假死等问题。为解决上述技术问题,本发明实施例中的技术方案的总体思路如下:构建一个内存装置,该内存装置可以被多个计算机服务器共享,以解决计算机服务器内存不足的技术问题。该内存装置包括:虚拟共享内存池包括至少一个共享内存单元;接口开关,用于连接所述虚拟共享内存池以及多个计算机服务器;控制器,用于通过控制所述接口开关的状态实现控制所述多个计算机服务器的每个计算机服务器与所述虚拟共享内存池的所述至少一个共享内存单元的连接状态。通过本发明的技术方案,实现了在计算机服务器自带的内存不足时可以为计算机服务器分配足够的内存,解决了计算机服务器内存不足的问题。为了更好的理解上述方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。本发明第一方面提供了一种内存装置,请参考图1所示,为本发明实施例中内存装置的结构图。该内存装置包括:虚拟共享内存池1、接口开关2以及控制器3。虚拟共享内存池1包括至少一个共享内存单元。接口开关2用于连接虚拟共享内存池1以及多个计算机服务器。控制器3用于通过控制所述接口开关2的状态实现控制所述多个计算机服务器的每个计算机服务器与虚拟共享内存池1的所述至少一个共享内存单元的连接状态。可选的,虚拟共享内存池1可以由分布式存储单元组成。可选的,虚拟共享内存池1、接口开关2以及控制器3可以分别分布在不同的物理设备上,也可以集成在同一个物理设备上。可选的,上述虚拟共享内存池1、接口开关2与控制器3可以置于转换开关盒内。可选的,所述虚拟共享内存池1可以是sr-iov(single-rooti/ovirtualization,服务器虚拟化)内存池,也可以是其它的内存池,当然所述内存池中可以有任意数量的共享内存单元(当然0个除外),并且每个共享内存单元的可存储量可以相同也可以不同,例如一部分共享内存单元的可存储量可以为10g,而另有一部分共享内存单元的可存储量可以为15g,本发明所属领域的技术人员可以根据实际需求而定,本发明不作限定。可选的,接口开关2通过pci-e(peripheralcomponentinterconnectexpress,总线接口)实现所述多个计算机服务器的每个计算机服务器与虚拟共享内存池1的连接,当然也可以有其它的可以实现所述多个计算机服务器的每个计算机服务器与虚拟共享内存池1的连接的方式,本发明不作具体的限定。通过上述技术方案中的内存装置,满足了计算机服务器对内存的需求,解决了计算机服务器内存不足的问题。可选的,本发明第二方面还提供一种互连子系统,请参考图2所示,所述互联子系统包括:多个计算机服务器4;虚拟共享内存池1,包括至少一个共享内存单元;接口开关2,用于连接所述多个计算机服务器4与虚拟共享内存池1;控制器3,用于通过控制所述接口开关的状态实现控制所述多个计算机服务器4的每个算机服务器与虚拟共享内存池1的所述至少一个共享内存单元的连接状态。可选的,虚拟共享内存池1可以采用sr-iov内存池。可选的,虚拟共享内存池1、接口开关2与控制器3置于转换开关盒内。可选的,接口开关2通过pci-e实现多个计算机服务器4的每个计算机服务器与虚拟共享内存池1的连接。可选的,所述互连子系统中的虚拟共享内存池1、接口开关2和控制器3与前述第一方面所描述的内存装置中的虚拟共享内存池1、接口开关2和控制器3相同,所以在此不再赘述。通过上述技术方案中的互连子系统,满足了计算机服务器对内存的需求,解决了计算机服务器内存不足的问题。本发明第三方面提供一种内存的共享方法,请参考图3所示,为内存的共享方法的流程图。所述方法应用于本发明第一方面提供的内存装置或本发明第二方面提供的互连子系统,所述方法包括:步骤301:控制器3接收所述多个计算机服务器4中的任意计算机服务器发送的共享内存请求;步骤302:控制器3根据预定规则为所述任意计算机服务器分配对应的共享内存单元;步骤303:控制器3按照分配好的所述任意计算机服务器与所述共享内存单元的对应关系控制所述接口开关2的状态,使得所述任意计算机服务器与所述对应的共享内存单元处于连接状态。可选的,在步骤301中,控制器3接收多个计算机服务器4中的任意计算机服务器发送的共享内存请求,共享内存请求可以包含发送请求的计算机服务器的设备标识,还可以包括对内存的需求量,还可以包括紧急状态,或者优先级。当在步骤301中接收到共享内存请求之后,接下来执行步骤302,即控制器3根据预定规则为所述任意计算机服务器分配对应的共享内存单元。在本实施例中,预定规则可以包括对多个共享内存请求的处理顺序的规则,也可以包括为某个计算机服务器分配哪个共享内存单元的规则,以下将详细说明。首先,对于多个共享内存请求的处理顺序的规则,可以有多种实现方式,第一种实现方式为:步骤302包括:控制器3按照所述任意计算机服务器发送的共享内存请求的时间先后顺序为所述任意计算机服务器分配对应的共享内存单元。举例来说,第一计算机服务器发出共享内存请求时间为20:08,而第二计算机服务器发出共享内存请求的时间为20:10,则控制器3会按照时间先后顺序先为计算机服务器41分配共享内存单元,然后为计算机服务器42分配共享内存单元。第二种实现方式为:步骤302包括:控制器3按照所述任意计算机服务器的优先级为所述任意计算机服务器分配对应的共享内存单元。而任意计算机服务器的优先级可以是预设的,也可以是按照某种规则确定的,也可以是携带在共享内存请求中。举例来说,控制器3可以按照平均使用次数来为计算机服务器设定优先级,例如,第一计算机服务器用户平均使用次数为100次每月,而第二计算机服务的用户平均使用次数为50次每月,控制器3会设置第一计算机服务器的优先级高于第二计算机服务器,并优先为第一计算机服务器分配共享内存单元。第三种实现方式为:步骤302包括:控制器3按照所述任意计算机服务器对内存的需求量为所述任意计算机服务器分配对应的共享内存单元。举例来说,假设控制器3同时接收到由两个不同的计算机服务器发出的共享内存请求后,控制器3分析获得的共享内存请求的内存需求量,假设其中第一个共享内存请求的内存需求量为10g,而其中第二个共享内存请求的内存需求量为15g,控制器3可以优先为内存需求量小(10g)的计算机服务器分配内存共享单元,然后再为内存需求量大(15g)的计算机服务器分配内存共享单元。其次,对于为某个计算机服务器分配哪个共享内存单元的规则,也可以有多种实现方式。其中第四种可能的实现方式,步骤302包括:控制器3获取所述共享内存请求中的内存需求量;控制器3确定所述至少一个共享内存单元中当前处于空闲的共享内存单元;控制器3根据所述内存需求量在所述当前处于空闲的共享内存单元中为所述共享内存请求对应的计算机服务器分配内存大于或者等于所述内存需求量的共享内存单元。本实施例中的方法适用于每个共享内存单元的容量大小不同的情况。其中,控制器3根据所述内存需求量在所述当前处于空闲的共享内存单元中为所述共享内存请求对应的计算机服务器分配内存大于或者等于所述内存需求量的共享内存单元,可以是在大于内存需求量的空闲共享内存单元中任意选择一个共享内存单元分配给对应的计算机服务器。也可以是共享内存单元的编号由小到大进行分配。第五种可能的实现方式,步骤302包括:控制器3确定所述至少一个共享内存单元中当前处于空闲的共享内存单元;控制器3在所述当前处于空闲的共享内存单元中任意选择一个共享内存单元分配给对应的计算机服务器。本实施例中的方法既适用于每个共享内存单元的容量大小相同的情况,也适用于每个共享内存单元的容量大小不同的情况。第六种可能的实现方式,步骤302包括:控制器3根据计算机服务器与共享内存单元的对应关系为任意计算机服务器分配对应的共享内存单元。本实施例中的方法既适用于每个共享内存单元的容量大小相同的情况,也适用于每个共享内存单元的容量大小不同的情况。举例来说,控制器3上已经被配置了计算机服务器与共享内存单元的对应关系,该对应关系表例如表1所示。共享内存单元计算机服务器共享内存单元1141共享内存单元1242共享内存单元1343……共享内存单元1m4n表1其中,m、n为正整数。假设控制器3接收到计算机服务器42的共享内存请求,那么就可以通过查询表一确定出共享内存单元12,即控制器3为计算机服务器42分配的共享内存单元为共享内存单元12。以下将举一个具体的例子来说明本发明实施例中的内存共享方法的实施过程。首先,可以假设虚拟共享内存池1中共有m个共享内存单元。控制器3可以将所有共享内存单元排序好的结果以动态表格的形式存储于控制器3中,同时存储的还有每个共享内存单元的可提供的内存量及每个共享内存单元当前是否处于闲置状态。表格的形式请参考表2。共享内存单元可供内存量/g闲置状态共享内存单元115是共享内存单元128否共享内存单元1310是………共享内存单元1m20否表2可选的,上述表格为动态表格,举例来说,当共享内存单元12和对应的计算机服务器处于断开的状态时,表中共享内存单元12对应的闲置状态处由原来的“否”更新为“是”。接下来请参考图4所示,为一种可能分配结果的示意图。详细来说,假设计算机服务器共有n个,分别为计算机服务器41、计算机服务器42、计算机服务器43一直到计算机服务器4n。这里,n可以与上述m是相同的也可以是不同的。在实际运用中,当计算机服务器自带的内存不足时,可以发出共享内存请求,例如,计算机服务器41发出共享内存请求411,此时,控制器3将接收共享内存请求411,并解析其所需要的内存需求量,例如需要10g。控制器3可以在表2中按照从上到下的顺序查询处于闲置状态的并且内存量大于或者等于所述内存需求量的共享内存单元,比如查询到共享内存单元13满足条件。此时控制器3会将共享内存单元13分配给计算机服务器41。然后可以执行步骤303,控制器3控制所述接口开关2的状态,使得所述任意计算机服务器与所述对应的共享内存单元处于连接状态。可选的,控制器3在表1中寻找满足条件的共享内存单元的顺序可以是从上到下,也可以是从下到上。再例如,当多个计算机服务器同时发出共享内存请求时,例如,计算机服务器41和计算机服务器42同时发出共享内存请求411和共享内存请求421,此时,控制器3将接收共享内存请求411和共享内存请求421,可以按照共享内存请求411和共享内存请求421的不同内存需求量设置优先权,例如共享内存请求411的内存需求量为20g,共享内存请求421的内存需求量为8g,可以为共享内存请求421设置优先权并优先处理。也可以并行处理共享内存请求411和共享内存请求421,例如控制器3可以在表1中按照从上到下的顺序寻找处于闲置状态的并且内存量大于或者等于20g的共享内存单元,同时从下到上寻找处于闲置状态的并且内存量大于或者等于8g的共享内存单元。当寻找到满足条件的共享内存单元后,控制器3会建立计算机服务器和共享内存单元之间的对应关系。例如寻找到共享内存单元1m和共享内存单元12满足条件,此时,控制器3会建立共享内存单元1m和计算机服务器41之间的对应关系,同时建立共享内存单元12和计算机服务器42之间的对应关系。上述过程执行完之后,可执行步骤103,即控制器3按照分配好的所述任意计算机服务器与所述共享内存单元的对应关系控制所述接口开关的状态,使得所述任意计算机服务器与所述对应的共享内存单元处于连接状态。可选的,控制器3控制接口开关的状态,可以是控制接口开关2与任意的计算机服务器处于连接状态,使得所述任意计算机服务器与所述对应的共享内存单元处于连接状态。举例来说,当控制器3根据共享内存请求为对应的计算机服务器寻找到满足条件的共享内存单元时,控制器3会建立所述共享内存单元和对应的计算机服务器之间的对应关系,接着控制器3会控制所述共享内存单元与所述计算机服务器之间的接口开关2,例如控制器3会触动接口开关2中与共享内存单元连接的触脚即与对应的计算机服务器连接的触脚,使其处于接通状态。再例如,可以是控制器3控制共享内存单元和对应的计算机服务器之间的无线通道,使其处于连通状态。最终实现所述共享内存单元与所述计算机服务器处于连接状态。如此一来,计算机服务器可以访问该共享内存单元。通过上述技术方案,能够满足计算机服务器对内存的需求,解决了计算机服务器内存不足的问题。例如,在具有该内存装置之后,可以为计算机服务器配置较小的机身内存或者不配置内存,如此可以降低计算机服务器的制造成本。再例如,对于现有的计算机服务器也不需要在机身进行内存扩展,就可以使用该内存装置进行内存扩展,进而可以运行更多的应用,或者运行占用内存较大的应用,延长计算机服务器的使用寿命。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。具体来讲,本申请实施例中的内存的共享方法(图4所示)对应的计算机程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与显示方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:接收所述多个计算机服务器中的任意计算机服务器发送的共享内存请求;根据预定规则为所述任意计算机服务器分配对应的共享内存单元;按照分配好的所述任意计算机服务器与所述共享内存单元的对应关系控制所述接口开关的状态,使得所述任意计算机服务器与所述对应的共享内存单元处于连接状态。可选的,存储介质还包括下述步骤对应的指令,当该指令被执行时,包括如下步骤:获取所述共享内存请求中的内存需求量;确定所述至少一个共享内存单元中当前处于空闲的共享内存单元;根据所述内存需求量在所述当前处于空闲的共享内存单元中为所述共享内存请求对应的计算机服务器分配内存大于或者等于所述内存需求量的共享内存单元。可选的,存储介质还包括下述步骤对应的指令,当该指令被执行时,包括如下步骤:包括:根据所述任意计算机服务器的优先级为所述任意计算机服务器分配对应的共享内存单元。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1