内存镜像系统、装置和内存镜像方法转让专利

申请号 : CN200710179055.3

文献号 : CN100595735C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑卫红

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明公开了一种内存镜像系统。该系统包括:第一内存控制器、第一内存模块、第二内存控制器、第二内存模块以及镜像模块;其中:第一内存控制器,用于通过第一内存访问通道对第一内存模块进行访问操作;第二内存控制器,用于通过第二内存访问通道对第二内存模块进行访问操作;镜像模块,用于获取第一内存控制器对第一内存模块进行访问操作的信息,并对第二内存模块进行相同的访问操作;和/或,获取第二内存控制器对第二内存模块进行访问操作的信息,并对第一内存模块进行相同的访问操作。本发明还公开了一种内存镜像方法和一种内存镜像装置。本发明的技术方案能够提高镜像效率,并且能够提高双主控系统的工作效率。

权利要求 :

1、一种内存镜像系统,其特征在于,该系统包括:第一内存控制器、第一内存模块、第二内存控制器、第二内存模块以及镜像模块,其中, 第一内存控制器,用于通过第一内存访问通道对第一内存模块进行访问操作; 第二内存控制器,用于通过第二内存访问通道对第二内存模块进行访问操作; 镜像模块,用于以独立于CPU控制的方式获取第一内存控制器对第一内存模块进行访问操作的信息,并对第二内存模块进行相同的访问操作;和/或,用于以独立于CPU控制的方式获取第二内存控制器对第二内存模块进行访问操作的信息,并对第一内存模块进行相同的访问操作。

2、 如权利要求l所述的系统,其特征在于,所述镜像模块,用于通过监控所述第 一 内存访问通道获取第 一 内存控制 器对第一内存模块进行的访问操作的信息;和/或,通过监控所述第二内存 访问通道获取第二内存控制器对第二内存模块进行的访问操作的信息。

3、 如权利要求2所述的系统,其特征在于,所述镜像模块和第一内存控制器,用于通过相互协商来完成各自对第一 内存模块的访问操作;和/或所述镜像模块和第二内存控制器,用于通过相互协商来完成各自对第二内存模块的访问操作。

4、 如权利要求l所述的系统,其特征在于,所述镜像模块包括:第一 镜像子模块和第二镜像子模块;其中,第一镜像子模块设置于第一内存访问通道上,第二镜像子模块设置于第二内存访问通道上;第一镜像子模块,用于接收第一内存控制器对第一 内存模块的访问操作 信息后,对第一内存模块进行相应的访问操作,并将所接收的访问操作信息 发送给第二镜像子模块;和/或,接收第二镜像子模块发送的访问操作信息后,对第一内存模块进行相应的访问操作;第二镜像子模块,用于接收第二内存控制器对第二内存模块的访问操作 信息后,对第二内存模块进行相应的访问操作,并将所接收的访问操作信息发送给第一镜像子模块;和/或,接收第一镜像子模块发送的访问操作信息 后,对第二内存模块进行相应的访问操作。

5、 如权利要求4所述的系统,其特征在于,所述第一内存模块包括: 第一本地内存模块和第一镜像内存模块;所述第二内存模块包括:第二本地 内存模块和第二镜像内存模块;所述第 一镜像子模块接收到第 一 内存控制器对第 一 内存模块的访问操 作信息后,对第一本地内存模块进行相应的访问操作,并将所接收的访问操 作信息发送给第二镜像子模块;和/或,所述第一镜像子模块接收第二镜像 子模块发送的访问操作信息后,对第 一镜像内存模块进行相应的访问操作;所述第二镜像子模块接收到第二内存控制器对第二内存模块的访问操作信息后,对第二本地内存模块进行相应的访问操作,并将所接收的访问操 作信息发送给第一镜像子模块;和/或,所述第二镜像子模块接收第一镜像 子模块发送的访问操作信息后,对第二镜像内存模块进行相应的访问操作。

6、 如4又利要求4或5所述的系统,其特征在于,所述第 一镜像子模块集成在所述第 一 内存控制器中;和/或 所述第二镜像子模块集成在所述第二内存控制器中。

7、 如权利要求5所述的系统,其特征在于。所述第 一本地内存模块、第一镜像内存模块和第 一镜像子模块集成在一 个单板上;和/或所述第二本地内存模块、第二镜像内存模块和第二镜像子模块集成在一 个单板上。

8、 如权利要求l所述的系统,其特征在于,所述镜像模块在获取到第 一 内存控制器对第 一 内存模块进行的访问操 作的信息后,根据第 一 内存模块和第二内存模块的内存地址空间对应关系对第二内存模块进行相同的访问操作;和/或,在获取到第二内存控制器对第 二内存模块进行的访问操作的信息后,根据第二内存模块和第 一 内存模块的 内存地址空间对应关系对第 一 内存模块进行相同的访问操作。

9、 一种内存镜像方法,其特征在于,该方法包括:以独立于CPU控制的方式从第 一 内存控制器与第 一 内存模块之间的第 一内存访问通道获取第 一 内存控制器对第 一 内存模块进行访问操作的信息,并对第二内存模块进行相同的访问操作;和/或以独立于CPU控制的方式从第二内存控制器与第二内存模块之间的第 二内存访问通道获取第二内存控制器对第二内存模块进行访问操作的信息, 并对第 一 内存模块进行相同的访问操作。

10、 如权利要求9所述的方法,其特征在于,所述从第 一 内存访问通道获取第 一 内存控制器对第 一 内存模块进行访 问操作的信息是,通过监控所述第一内存访问通道获取;和/或所述从第二内存访问通道获取第二内存控制器对第二内存模块进行访 问操作的信息是,通过监控所述第二内存访问通道获取。

11、 如权利要求10所述的方法,其特征在于,所述对第 一 内存模块进行访问操作包括:通过与第 一 内存控制器协商来 实现对第一内存模块进行访问操作;和/或所述对第二内存模块进行访问操作包括:通过与第二内存控制器协商来 实现对第二内存模块进行访问操作。

12、 如权利要求9所述的方法,其特征在于,所述从第 一 内存访问通道获取第 一 内存控制器对第 一 内存模块进行访 问操作的信息是,在所述第一内存访问通道上进行信息拦截来获得,还根据 所获得的访问操作信息对第 一 内存模块执行相应的访问操作;和/或所述从第二内存访问通道获取第二内存控制器对第二内存模块进行访 问操作的信息是,在所述第二内存访问通道上进行信息拦截来获得,还根据 所获得的访问操作信息对第二内存模块执行相应的访问操作。

13、 一种内存镜像装置,包括:第一内存控制器以及第一内存模块,其 特征在于,该装置还包括以独立于CPU控制的方式将第一内存控制器对第 一内存模块的访问操作镜像到第二内存模块中的镜像模块。

14、 如权利要求13所述的内存镜像装置,其特征在于,该装置还包括 第二内存控制器,其中,所述镜像模块以独立于CPU控制的方式将第二内 存控制器对第二内存模块的访问操作镜像到所述第 一 内存模块中。

说明书 :

内存镜像系统、装置和内存镜像方法

技术领域

本发明涉及内存镜像技术领域,尤指内存镜像系统、装置和内存镜像方法。

背景技术

在高可靠、高可用的系统中,大多釆用双机、热备的工作方式。例如在存储设备、服务器以及一些工业控制系统中都采用双机、热备的工作方式。
在双控系统中,根据两个主控设备的工作状态, 一般分为两种工作模式:一种是主/主(Active/Active)模式,这种模式下,两个主控设备都处理业务,两者之间是对等关系,当一个主控设备宕机后,其业务由另外一个主控设备完全接管;另一种是主/备(Active/Standby)模式,这种模式下,两个主控设备之间是主用与备用的关系,正常情况下由主用设备处理全部业务,备用设备监测主用设备的状态,当主用设备工作异常时,由备用设备接管主用设备的所有业务,直到主用设备恢复正常。
在双主控系统中,内存镜像是一种常用的技术。内存镜像即为双主控系统中的两个主控设备将各自的内存数据相互备份,从而实现双主控系统的数据保护,进而为主控设备之间的业务接管做好必要的准备。
图1是在双主控系统中实现内存镜像的现有技术方案的示意图。如图1中所示,主控设备A包括:CPU A、内存控制器A、镜像通道设备A和内存模块A;主控设备B包括:CPUB、内存控制器B、镜像通道设备B和内存模块B。内存模块A和内存模块B的内存空间都分为两部分, 一部用于存储本地的数据,另 一部分用于存储对端的镜像数据。
在图l中,实现镜像内存的方案是:内存控制器在CPU的控制软件的
6控制下,对本地内存模块进行访问的同时,通过镜像通道对对端的内存模块
进行相同的访问。例如对于写数据操作,内存控制器A在CPU A的控制软件的控制下将数据写入内存模块A的同时,依次通过镜像通道设备A、镜像通道设备B、内存控制器B将数据写入内存模块B,在图1中用实线箭头表示内存控制器A的写数据流;内存控制器B也以同样的方式对数据进行备份,在图1中用虛线箭头表示内存控制器B的写数据流。
但是在图1所示的现有内存镜像方案中,基本上由CPU的控制软件来控制完成内存镜像,即内存镜像需要占用CPU,因此降低了双主控系统的工作效率。
综上所述,现有的内存镜像方案,工作效率不高。发明内容
本发明提供了 一种内存镜像系统,该系统能够有效提高工作效率。本发明提供了一种内存镜像方法,该方法能够有效提高工作效率。本发明还提供了一种内存镜像装置,该装置能够有效提高工作效率。为达到上述目的,本发明的技术方案具体是这样实现的:本发明公开了一种内存镜像系统,该系统包括:第一内存控制器、第一内存模块、第二内存控制器、第二内存模块以及镜像模块,其中,
第 一内存控制器,用于通过第 一 内存访问通道对第 一 内存模块进行访问
操作;
第二内存控制器,用于通过第二内存访问通道对第二内存模块进行访问
操作;
镜像模块,用于以独立于CPU控制的方式获取第一内存控制器对第一内存模块进行访问操作的信息,并对第二内存模块进行相同的访问搡作;和/或,用于以独立于CPU控制的方式获取第二内存控制器对第二内存模块进行访问操作的信息,并对第 一 内存模块进行相同的访问操作。 明公开了一种内存镜像方法,该方法包括:以独立于CPU控制的方式从第 一 内存控制器与第 一 内存模块之间的第一内存访问通道获取第 一 内存控制器对第 一 内存模块进行访问操作的信息,
并对第二内存模块进行相同的访问操作;
以独立于CPU控制的方式从第二内存控制器与第二内存模块之间的第
二内存访问通道获取第二内存控制器对第二内存模块进行访问操作的信息,并对第 一 内存模块进行相同的访问操作。
本发明还公开了一种内存镜像装置,包括:第一内存控制器以及第一内存模块,该装置还包括以独立于CPU控制的方式将第一内存控制器对第一内存模块的访问操作镜像到第二内存模块中的镜像模块。
由上述技术方案可见,本发明这种镜像模块获取第 一内存控制器对第一内存模块进行访问搡作的信息,并对第二内存模块进行相同的访问操作;和/或,获取第二内存控制器对第二内存模块进行访问搡作的信息,并对第一内存模块进行相同的访问操作的技术方案,在实现内存镜像时无需内存控制器所在主控设备的CPU参与,提高了所述主控设备的工作效率,进而提高了包括第一内存控制器所在主控设备和第二内存控制器所在主控设备的双主控系统的工作效率。

附图说明

图1是在双主控系统中实现内存镜像的现有技术方案的示意图;图2是本发明 一种内存镜像系统的第 一 实施例组成结构框图;图3是本发明 一种内存镜像系统的第二实施例组成结构框图;图4是本发明 一种内存镜像系统的第三实施例组成结构框图;图5是本发明 一种内存镜像系统的第四实施例组成结构框图。

具体实施方式

本发明中主要通过在双主控系统中设置镜像模块来实现内存镜像;该镜像模块获取第一内存控制器对第一内存模块进行访问操作的信息,并对第二内存模块进行相同的访问操作;相应地,该镜像模块获取第二内存控制器对 第二内存模块进行访问操作的信息,并对第 一 内存模块进行相同的访问操 作。
上述内存镜像过程无需内存控制器所在主控设备CPU的参与,即将 CPU从内存镜像工作中解放出来,从而提高了整个双主控系统的工作效率。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本发明进一步详细说明。
图2是本发明一种内存镜像系统的第一实施例组成结构框图。如图2所 示,该系统中主要包括:属于主控设备A的CPU A、内存控制器A和内存 模块A,属于主控设备B的CPU B、内存控制器B和内存模块B,以及镜 像模块。CPUA通过内存控制器A对内存模块A进行访问操作,CPUB通 过内存控制器B对内存模块B进行访问操作。
在图2中,用实线箭头表示内存控制器A对内存模块A进行访问的内 存访问通道A以及内存控制器B对内存模块B进行访问的内存访问通道B; 镜像模块,用于监控内存访问通道A,从而获得内存控制器A对内存模块A 进行的访问操作的信息,并根据该信息对内存模块B进行相同的访问操作, 在图2中用点划线箭头表示相应的信号流向;同样,镜像模块,用于监控内 存访问通道B,从而获得内存控制器B对内存模块B进行的访问操作的信 息,并根据该信息对内存模块A进行相同的访问操作,在图2中用虛线箭 头表示相应的信号流向。
在图2中,内存模块A和内存模块B的内存空间都分为两部分, 一部 分为本地内存控制器使用的本地内存空间,另 一部分为对端控制器使用的镜 像内存空间。例如,内存模块A和内存模块B的内存空间大小都为1024MB; 内存模块A的0-512MB的内存空间为本地内存空间,512~ 1024MB的内 存空间为镜像内存空间;同样内存模块B的0~ 512MB的内存空间为本地内 存空间,512~ 1024MB的内存空间为镜像内存空间;则镜像模块在监测到 内存控制器A对内存模块A的0 ~ 512MB的内存空间进行访问操作的信息后,对内存模块B的512 ~ 1024MB的内存空间进行相同的访问操作。因此 需要将本地内存地址空间和镜像内存地址空间的对应关系预先定义到镜像 模块中,以便镜像模块在监测到内存控制器对本地内存进行访问操作的信息 时,对相应的镜像内存执行相同的操作。
在图2中,镜像模块在对内存模块进行访问操作时,可能会与本地的内 存控制器产生竟争。例如,镜像模块监测到内存控制器A对内存模块A进 行的写操作后,对内存模块B执行相同的写操作,如果此时内存控制器B 也要对内存模块B执行写操作,则镜像模块和内存控制器B之间会产生竟 争,此时镜像模块需要与内存控制器B进行协商来完成各自的写操作,例如 以时分复用的方式来完成各自的写操作。
在图2中,由镜像模块通过对内存访问通道进行监控来实现内存镜像的 方案,无需CPU的参与,即将CPU从内存镜像工作中解放出来,从而提高 了整个双主控系统的工作效率。并且从内存控制器的本地内存访问通道获取 该控制器对本地内存的访问操作信息的方案,在一定程度上合并了本地内存 访问通道和镜像通道,减少了镜像延迟,提高了镜像的效率。
镜像模块可以用单芯片实现,即如图2中所示,也可以用双芯片实现, 如下面的图3所示。
图3是本发明一种内存镜像系统的第二实施例组成结构框图。如图3 所示,图2中的镜像模块被分为镜像子模块A和镜像子模块B,即用双芯片 实现镜像模块。镜像子模块A可以集成在内存控制器A所在的主控设备A 中,镜像子模块B可以集成在内存控制器B所在的主控设备B中。
在上述图2和图3所示的实施例中,镜像模块或镜像子模块通过监测内 存控制器的本地内存访问通道的来获取内存控制器对本地内存的访问操作 信息,并且在对镜像内存执行相同的访问操作时需要与对端的内存控制器进 行协商。因此,接下来给出本发明中通过接管本地内存访问通道的方式来实 现内存镜像的方案。
图4是本发明一种内存镜像系统的第三实施例组成结构框图。如图4
10所示,该系统包括:属于主控设备A的CPU A、内存控制器A和内存模块A,属于主控设备B的CPUB、内存控制器B和内存模块B,以及设置于控制器A的本地内存访问通道上的镜像子模块A和设置于控制器B的本地内存访问通道上的镜像子模块B。
在图4中,镜像子模块A,用于接收内存控制器A对内存模块A的访问操作信息后,对内存模块A进行相应的访问操作,并将所接收的访问操作信息发送给镜像子模块B;镜像子模块B根据来自镜像子模块A的访问操作信息对内存模块B执行相应的访问操作;在图4中用实线箭头表示上述的信号流向。
同样,在图4中,镜像于模块B,用于接收内存控制器B对内存模块B的访问操作信息后,对内存模块B进行相应的访问操作,并将所接收的访问操作信息发送给镜像子模块A;镜像子模块A根据来自镜像子模块B的访问操作信息对内存模块A执行相应的访问操作;在图4中用虚线箭头表示上述的信号流向。
在图4中,由于镜像子模块接管了内存控制器的本地内存访问通道,因此对内存模块进行访问操作时不会与内存控制器产生竟争。但是镜像子模块需要接收来自本端内存控制器和对端镜像子模块的对本端内存模块进行的访问操作的信息,例如,镜像子模块A需要根据来自内存控制器A的信息对内存模块A进行访问操作,以及根据来自镜像子模块B的信息对内存模块A进行访问操作;此时,镜像子模块A可以以先到先访问的方式对内存模块A进行访问,当同时接收到来自内存控制器A和镜像子模块B的操作信息时,可以采用时分复用的方式对内存模块A进行访问。
在图4中,镜像子模块A可以集成到内存控制器A中;同样,镜像子模块B也可以集成到内存控制器B中。
由上述说明可见,在图2和图3所示的实施例中,镜像模块或镜像子模块只是监测内存控制器的本地内存访问通道,而对内存模块的访问操作还是由内存控制器来完成的。而在图4所示的实施例中,镜像子模块是接管内存控制器的本地内存访问通道,即镜像子模块拦截内存控制器的访问操作信 息,并代替内存控制器对本地内存模块执行相应的访问操作,同时对对端的 内存模块执行相应的访问操作,实现镜像。
在图4所示的实施例中,镜像子模块在同时接收到来自本地内存控制器 和对端镜像子模块的操作信息时,采用时分复用的方式对本地内存进行访问 操作,从而内存访问效率不高。因此,给出下面的实施例来提高内存访问效 率。
图5是本发明一种内存镜像系统的第四实施例组成结构框图。如图5 所示,该系统包括:属于主控设备A的CPU A、内存控制器A、本地内存 模块A和镜像内存模块A,属于主控设备B的CPU B、内存控制器B、本 地内存模块B和镜像内存模块B,以及设置于内存控制器A的本地内存访 问通道上的镜像子模块A和设置于内存控制器B的本地内存访问通道上的 镜像子模块B。
在图5中,镜像子模块A在接收内存控制器A对本地内存模块A的访 问操作信息后,对本地内存模块A进行相应的访问操作,并将所接收的访 问操作信息发送给镜像子模块B;镜像子模块B根据来自镜像子模块A的 访问操作信息对镜像内存模块B进行相应的访问操作;在图5中用实线箭头 表示上述信号流向。
同样,在图5中,镜像子模块B在接收到内存控制器B对本地内存模 块B的访问操作信息后,对本地内存模块B进行相应的访问操作,并将所 接收的访问操作信息发送给镜像子模块A;镜像子模块A根据来自镜像子模 块B的访问操作信息对镜像内存模块A进行相应的访问操作;在图5中用 虚线箭头表示上述信号流向。
在图5中,由于将内存模块分为本地内存模块和镜像内存模块,并通过 独立的通道与镜像子模块连接,因此,镜像子模块在同时接收的来自本地内 存控制器和对端镜像子模块的访问操作信息后,可以通过各自的通道对本地 内存模块和镜像内存模块进行访问,而不需要采用图4所示实施例中时分复用的访问方法,从而提高了内存访问效率。
在图5中,本地内存模块A、镜像内存模块A和镜像子模块A可以集 成在一个单板上;本地内存模块B、镜像内存模块B和镜像子模块B可以 集成在一个单板上。
在上述实施例中,镜像模块从内存控制器A对内存模块A进行访问操 作的内存访问通道上获取相应的访问操作信息,并对内存模块B进行相同的 访问操作,以实现将内存模块A冲的内容镜像到内存模块B中。当然,镜 像模块还可以以任何独立于CPU控制的方式将内存控制器A对内存模块A 的访问操作信息镜像到内存模块B中。相应地,可以用相同的方案将内存模 块B中的内容镜像到内存模块A中。
因此,最后给出本发明一种内存镜像装置的结构:该内存镜像装置包括 第一内存控制器以及第一内存模块,该装置还包括以独立于CPU控制的方 式将第 一 内存控制器对第 一 内存模块的访问操作镜像到第二内存模块中的 镜像模块。该装置还可以包括第二内存控制器,其中,镜像模块以任何独立 于CPU控制的方式将第二内存控制器对第二内存模块的访问操作镜像到第 一内存模块中。.
综上所述,在本发明中,镜像模块获取第一内存控制器对第一内存模块 进行访问操作的信息,并对第二内存模块进行相同的访问操作;和/或,获 取第二内存控制器对第二内存模块进行访问操作的信息,并对第 一 内存模块 进行相同的访问操作的技术方案,在实现内存镜像时无需内存控制器所在主 控设备的CPU参与,提高了所述主控设备的工作效率,进而提高了包括第 一内存控制器所在主控设备和第二内存控制器所在主控设备的双主控系统 的工作效率。此外,在本发明从内存控制器的本地内存访问通道获取控制器 对本地内存的访问信息的技术方案,在一定程度上合并了本地内存访问通道 和镜像通道,减少了镜像延迟,提高了镜像的效率。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。