在检查点外部处理写入数据的多个计算机系统的制作方法

文档序号:8476710阅读:321来源:国知局
在检查点外部处理写入数据的多个计算机系统的制作方法
【技术领域】
[0001]本公开通常涉及高可靠性的多个计算机系统并且更特别地涉及其中在检查点操作的外部处理(比较或拷贝)写入数据的高可靠性的多个计算机系统。
【背景技术】
[0002]目前,一些高可靠性计算机使用称为检查点(checkpointing)的过程来保持第二计算机与第一计算机软件锁步(lockstep)。周期性地,停止第一计算机并且将自从最后的检查点以来的中央处理单元(CPU)状态以及对第一计算机的存储器的任何改变传输到第二计算机。在第一计算机上的失败或不可恢复的错误的事件中,第二计算机将从最后的检查点继续执行。通过频繁的检查点,第二计算机可以接管用户的应用的执行,而对用户没有可察觉的影响。
[0003]存储器控制器包含在计算机CPU中来接入单独的附连的外部系统存储器。在大多数高性能计算机系统中,CPU包含内部缓存存储器来缓存一部分系统存储器并且使用内部缓存存储器用于所有存储器读取和写入中的大多数。当内部缓存存储器充满改变的数据并且CPU希望将附加的改变的数据写入到缓存时,存储器控制器将一些缓存内容的拷贝写入到外部系统存储器。
[0004]高可靠性计算机使用镜像存储器。计算机可具有配置为在“镜像”模式中的存储器。当存储器在镜像模式中时,负责将外部存储器的内容读取到CPU或将数据从CPU写入到外部存储器的存储器控制器将数据的两个拷贝写入到两个不同的存储器位置(镜像的初级侧和次级侧)。当存储器控制器将数据读回到CPU时,它只需要从一个存储器位置读取数据的一个拷贝。如果正在从初级侧读取的数据已损坏并且数据中有不能修正的错误,则存储器控制器读取镜像存储器次级位置来得到相同的数据的另一拷贝。只要存储器控制器执行读取操作,控制器只需要从单个存储器位置读取。每当存储器控制器执行写入操作(事务)时,它将数据的拷贝写入到镜像的初级侧和次级侧。用于增强可靠性作出数据的两个或者更多拷贝的过程被称作镜像并且有时被称作独立磁盘的冗余阵列(RAID I)。镜像的初级侧和次级侧不必须在不同的物理存储器装置上。
[0005]图1是图示具有镜像存储器的现有技术计算机系统的现有技术框图。存储器模块100,105以及110是计算机系统中的存储器的初级侧并且存储器模块120、125和130是存储器的次级侧。其它系统具有不同数量的存储器模块。CPU 115包含核心和缓存存储器175(以及其它部件),通过接口 160耦合到主存储器的主存储器控制器212,以及通过接口 165耦合到辅助存储器的辅助存储器控制器214。不同的系统具有不同类型和数量的接口。另夕卜,主存储器控制器212和辅助存储器控制器214可以是两个不同的存储器控制器或单个存储器控制器的两个特征。
[0006]在镜像中,主存储器控制器212和辅助存储器控制器214将相同的数据传输到存储器的初级侧和次级侧使得在每个存储器写入操作之后将数据维持在独立存储器模块中的两个拷贝中。在存储器读取操作145期间,将数据从存储器模块100、105或110传输到主存储器控制器212。在确定数据正确的情况下,不需要有另外的动作来完成读取操作。在确定数据被损坏的情况下,可由来包含存储在存储器的初级侧上的数据的拷贝的自存储器的次级侧上的存储器模块120、125或130的辅助存储器控制器214来执行读取170。这导致更高的可靠性,因为即使在存储器的初级侧中的数据被损坏,可从可能没有被损坏的次级侧读取拷贝。
[0007]检查点在第一与第二计算机之间传输或比较改变的数据。使用检查点的高可靠性计算机在第一计算机与第二计算机之间传输数据。接口(例如,InfiniBand、PC1-Express(PCIe )或计算机之间的专有接口 )用于在检查点过程期间传输CPU状态和系统存储器内容。第一计算机的CPU或直接存储器接入(DMA)控制器通常用于将存储器的内容传输到第二计算机。各种方法用于节省将存储器的内容从第一计算机传输到第二计算机的时间。例如,存储器分页机制可设置“页面重写标志位(dirty bit)”来指示存储器的页面已被修改。在检查点期间,只有具有页面重写标志位设置的存储器的页面将被传输。页面可以是4千字节、2兆字节、I千兆字节或一些其它大小。DMA装置或处理器拷贝已被页面重写标志位标识的存储器的整个区域,不管整个页面是否已改变或只有页面中的几个字节的数据已改变。
[0008]检查点降低计算机性能。当计算机执行检查点任务时,它通常不做对用户有用的工作,所以用户经历降低的性能。在检查点间隔的频率、高效传输检查点数据的方法的复杂性、用户经历的等待时间延迟之间总是有折衷。可以通过只传输在计算机存储器中已改变的数据来实现最小等待时间。
[0009]当第一计算机和第二计算机都执行相同的指令时,可使用检查点。当两个计算机同时执行相同的代码时,可周期性地停止它们并且互相比较CPU寄存器与存储器内容。如果计算机具有相同的CPU寄存器值和存储器内容,则允许它们继续处理。当两个计算机比较存储器和寄存器值时,当在两个系统之间只比较已改变的数据时,低的等待时间比较存在。在现有技术中已使用各种方法来降低将外部存储器的内容拷贝到第二计算机所所需的时间量。
【附图说明】
[0010]将从以下给出的详细描述并且从本发明的实施例的附图更全面地理解本发明,然而,详细描述和附图不应该被视为将本发明限制于描述的具体实施例,而是只用于解释和理解。
[0011]图1是使用存储器镜像的现有技术的高可靠性计算机的框图表示。
[0012]图2是根据本发明的一些实施例的高可靠性双计算机系统的框图表示。
[0013]图3是根据本发明的一些实施例的高可靠性双计算机系统的框图表示。
[0014]图4是根据本发明的一些实施例的图3的另外细节的框图表示。
[0015]图5是根据本发明的一些实施例的高可靠性双计算机系统的框图表示。
[0016]图6是根据本发明的一些实施例的高可靠性双计算机系统的框图表示。
[0017]图7是根据本发明的一些实施例的高可靠性双计算机系统的框图表示。
[0018]图8是根据本发明的一些实施例的图2的另外细节的框图表示。
[0019]图9是根据本发明的一些实施例的图2的另外细节的框图表示。
【具体实施方式】
[0020]本公开涉及高可靠性的计算机架构。具体地,本公开描述检查点的低等待时间方法来保持两个计算机锁步。在一些实施例中(在线、离线模式),可以更快地执行检查点操作,因为数据在正常操作期间传输并且不需要在检查点操作期间传输。在其它实施例中(软件锁步模式),在检查点操作期间不需要比较数据,因为在正常操作期间比较了数据。
[0021]存储器控制器通常只将改变的或新的数据写入到主要存储器(外部存储器模块),并且当系统使用镜像存储器时,存储器控制器将新的或改变的数据的复制拷贝写入到镜像的初级侧和次级侧。通过在将数据写入到存储器时修改存储器控制器或存储器装置来将数据传输到第二计算机,对于检查点的存储器拷贝部分降低或消除检查点开销。
[0022]在一些实施例中,使用检查点(离线检查点)的形式,其中第一计算机系统(在线系统)运行用户的应用并且周期性地停止来将内部和外部数据以及CPU状态拷贝到第二计算机(离线系统)。当计算机系统运行用户的应用时,通过在每个存储器写入操作(事务)期间将数据从在线系统传输到离线系统来降低或消除在检查点操作期间传输存储器内容的需要。
[0023]在其它实施例中,使用检查点的另一形式,其中第一和第二计算机系统同时地运行用户的应用(软件锁步模式)。周期性地,两个计算机系统在应用中的相同时间和点处停止。一个系统可稍微超前或落后于另一系统,因此允许落后的系统运行附加的指令直到两个系统停止在相同的指令上。然后,比较内部和外部存储器以及CPU状态。通过在每次将数据写入到存储器时执行外部存储器比较,一些实施例降低在检查点操作期间比较外部存储器内容的需要。一些实施例只支持软件锁步模式并且其它实施例只支持在线、离线模式。另一些实施例支持软件锁步模式和在线、离线模式。
[0024]图2是图示低开销检查点系统的一些实施例的框图。图2可用于实现检查点(软件锁步或在线、离线模式)和以下描述的它们的变化的任一形式。
[0025]在图2中,主系统200包含CPUl 204、主存储器侧上的存储器模块100、105和110以及辅助存储器侧上的存储器模块208、125和130。CPUl包含核心和缓存存储器282 (其可与核心和缓存存储器175相同或不同)、主存储器控制器212和辅助存储器控制器214以及各种其它部件。主存储器控制器212和辅助存储器控制器214可在与CPU核心和缓存存储器相同的管芯上或在不同的管芯上。主存储器控制器212和辅助存储器控制器214可以是单独的存储器控制器或相同的存储器控制器的两个特征。CPUl 204、主存储器控制器212和辅助存储器控制器214可与图1中的CPU 204、主存储器控制器212和辅助存储器控制器214相同或不同。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1