一种内存数据的迁移方法、计算机和装置的制造方法

文档序号:9597126阅读:331来源:国知局
一种内存数据的迁移方法、计算机和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术,特别是一种内存数据的迀移方法、计算机和装置。
【背景技术】
[0002]内存(Memory)也被称为主存储器,是计算机中重要的部件之一。计算机中所有程序的运行都是在内存中进行,因此内存的性能对计算机的影响非常大。内存能够用于暂时存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器就会把需要运算的数据调到内存中进行运算,当运算完成后处理器再将结果传送出来,内存的运行也决定了计算机的稳定运行。
[0003]在X86架构下,服务器支持的内存数量越来越多,最新的Intel E7 V2处理器,单颗处理器最多可以支持2块内存板,每块内存板最多可以支持12根内存条,在一个8P系统中内存条数量可以达到192根。然而,目前系统中内存的故障率能够高达0.1%,内存故障不仅可能引起系统运行不稳定,还可能引起系统的死机。
[0004]现有技术无法实现计算机中内存数据的迀移,当系统中出现内存故障时,无法在计算机正常运行的情况下实现故障内存板或者故障内存条中的数据的迀移,因此无法对故障内存进行在线维护,只能先对该计算机下电后才能更换故障内存板或故障内存条。

【发明内容】

[0005]本发明实施例提供了一种内存数据的迀移方法、计算机和装置,能够在计算机不下电的情况下实现内存数据的迀移。
[0006]第一方面,本发明实施例提出了一种计算机,包括
[0007]处理器;
[0008]基本输入输出系统;
[0009]主存储器,用于加载所述基本输入输出系统中存储的指令以及所述计算机的操作系统的指令,所述主存储器包括一个或多个内存卡;
[0010]内存控制器,每个内存卡配置对应的内存控制器;
[0011]在该计算机中,所述处理器用于执行所述操作系统的指令,并在执行所述操作系统的指令时接收第一触发指令,根据所述第一触发指令,执行所述基本输入输出系统的内存数据的迀移指令,所述处理器根据所述基本输入输出系统的内存数据的迀移指令执行如下操作:确定待迀移内存数据的源内存卡;为所述源内存卡确定备份内存卡;指示所述源内存卡的内存控制器进行内存数据的迀移;
[0012]所述源内存卡的内存控制器用于接收所述处理器的指示,根据所述处理器的指示将所述源内存卡的内存数据迀移到所述备份内存卡。
[0013]结合第一方面,在第一种可能的实现方式中,所述处理器具体用于将所述源内存卡和所述备份内存卡设置为镜像模式,向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据,以及向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡;所述源内存卡的内存控制器具体用于根据所述处理器的数据读指令读取所述源内存卡的内存数据,接收所述处理器发送的所述数据写指令,根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据发送给所述备份内存卡的内存控制器;所述备份内存卡的内存控制器用于将接收到的所述源内存卡的内存数据写入到所述备份内存卡。
[0014]结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器具体用于获取分次迀移策略,根据所述分次迀移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迀移。
[0015]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器具体用于根据所述分次迀移策略执行如下操作a)_d),直至将所述源内存卡的内存数据全部迀移到所述备份内存卡,所述操作a)_d)包括:a)确定当次迀移的数据量,指示所述源内存卡的内存控制器将所述当次迀移的数据量迀移到所述备份内存卡,或者,确定当次迀移的时长,指示所述源内存卡的内存控制器在所述当次迀移的时长内进行内存数据的迀移山)在确定所述源内存卡的内存控制器完成所述当次迀移之后,退出所述基本输入输出系统并执行所述操作系统的指令;c)接收第二触发指令,所述第二触发指令用于指示所述处理器返回执行所述基本输入输出系统的内存数据的迀移指令;d)根据所述基本输入输出系统的内存数据的迀移指令,返回执行步骤a)。
[0016]结合第一方面或者第一方面的第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第四种可能的实现方式中,所述源内存卡的内存控制器还用于对所述源内存卡的错误数据进行监控,若所述错误数据的数量超过阈值,触发所述第一触发指令;所述处理器具体用于接收所述源内存卡的内存控制器触发的所述第一触发指令。
[0017]结合第一方面或者第一方面的第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第五种可能的实现方式中,所述操作系统还用于配置内存数据的迀移的启动策略,或者接收用户发送的内存数据的迀移的启动指令,所述操作系统根据所述启动策略或启动指令指示所述处理器产生所述第一触发指令。
[0018]第二方面,本发明实施例提供了一种内存数据的迀移方法,用于迀移计算机中的内存数据,该方法包括:
[0019]所述计算机的处理器在执行操作系统的指令时,接收第一触发指令;
[0020]所述处理器根据所述第一触发指令,执行基本输入输出系统的内存数据的迀移指令;
[0021]所述处理器根据所述基本输入输出系统的内存数据的迀移指令执行如下操作:
[0022]确定待迀移内存数据的源内存卡;
[0023]为所述源内存卡确定备份内存卡;
[0024]指示所述源内存卡的内存控制器进行内存数据的迀移,以使得所述源内存卡的内存控制器根据所述处理器的指示将所述源内存卡的内存数据迀移到所述备份内存卡。
[0025]结合第二方面,在第一种可能的实现方式中,该方法还包括:所述处理器将所述源内存卡和所述备份内存卡设置为镜像模式;所述处理器指示所述源内存卡的内存控制器进行内存数据的迀移,以使得所述源内存卡的内存控制器根据所述处理器的指示读取所述源内存卡的内存数据,将所读取的所述源内存卡的内存数据写入到所述备份内存卡,包括:
[0026]所述处理器向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据;
[0027]所述源内存卡的内存控制器根据所述处理器的数据读指令读取所述源内存卡的内存数据;
[0028]所述处理器向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡;
[0029]所述源内存卡的内存控制器接收所述处理器发送的所述数据写指令,根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据发送给所述备份内存卡的内存控制器,以使得所述备份内存卡的内存控制器将接收到的所述源内存卡的内存数据写入到所述备份内存卡。
[0030]结合第二方面或者第二方面的第一种可能的实现方式吗,在第二种可能的实现方式中,在所述处理器指示所述源内存卡的内存控制器进行内存数据的迀移之前,还包括:所述处理器获取分次迀移策略;则,所述处理器根据所述分次迀移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迀移。
[0031]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器根据所述分次迀移策略指示所述源内存卡的内存控制器分多次进行内存数据的迀移,包括:a)所述处理器确定当次迀移的数据量,指示所述源内存卡的内存控制器将所述当次迀移的数据量迀移到所述备份内存卡,或者,所述处理器确定当次迀移的时长,指示所述源内存卡的内存控制器在所述当次迀移的时长内进行内存数据的迀移山)在确定所述源内存卡的内存控制器完成所述当次迀移之后,所述处理器退出所述基本输入输出系统并执行操作系统的指令;c)所述处理器接收第二触发指令,所述第二触发指令用于指示所述处理器返回执行所述基本输入输出系统的内存数据的迀移指令;d)所述处理器根据所述基本输入输出系统的内存数据的迀移指令,返回执行步骤a),直至所述源内存卡的内存数据全部迀移到所述备份内存卡。
[0032]结合第二方面或者第二方面的第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第四种可能的实现方式中,所述源内存卡的内存控制器对所述源内存卡的错误数据进行监控,若所述错误数据的数量超过阈值,所述源内存卡的内存控制器触发所述第一触发指令;则,所述处理器接收所述源内存卡的内存控制器触发的所述第一触发指令。
[0033]结合第二方面或者第二方面的第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第五种可能的实现方式中,在所述计算机的处理器在执行操作系统的指令时,所述方法还包括:所述操作系统根据预置的内存数据的迀移的启动策略或者用户的内存数据迀移的启动指令指示所述处理器产生所述第一触发指令;则,所述处理器接收自身产生的所述第一触发指令。
[0034]第三方面,本发明实施例提出了一种基本输入输出系统,该基本输入输出系统包括计算机执行指令,当计算机的处理器执行所述计算机执行指令时,所述处理器执行如下方法:
[0035]确定待迀移内存数据的源内存卡;
[0036]为所述源内存卡确定备份内存卡;
[0037]指示所述源内存卡的内存控制器进行内存数据的迀移,以使得所述源内存卡的内存控制器根据所述处理器的指示将所述源内存卡的内存数据迀移到所述备份内存卡。
[0038]结合第三方面,所述处理器还根据所述计算机执行指令执行如下方法:将所述源内存卡和所述备份内存卡设置为镜像模式;所述指示所述源内存卡的内存控制器进行内存数据的迀移,以使得所述源内存卡的内存控制器根据所述指示读取所述源内存卡的内存数据,将所读取的所述源内存卡的内存数据写入到所述备份内存卡,包括:
[0039]向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据;
[0040]向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡,以使得所述源内存卡的内存控制器根据所述处理器的数据读指令读取所述源内存卡的内存数据,接收到所述数据写指令后,根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据发送给所述备份内存卡的内存控制器。
[0041]结合第三方面或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还根据所述计算机执行指令执行如下方法:获取分次迀移策略;根据所述分次迀移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迀移。
[0042]结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器根据所述分次迀移策略指示所述源内存卡的内存控制器分多次进行内存数据的迀移,包括:确定当次迀移的数据量,指示所述源内存卡的内存控制器将所述当次迀移的数据量迀移到所述备份内存卡,或者,确定当次迀移的时长,指示所述源内存卡的内存控制器在所述当次迀移的时长内进行内存数据的迀移;在确定所述源内存卡的内存控制器完成所述当次迀移之后,退出所述基本输入输出系统并执行操作系统的指令内存卡内存卡。
[0043]结合第三方面或者第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第四种可能的实现方式中,该基本输入输出系统还包括:在确定所述源内存卡的内存数据全部迀移到所述备份内存卡之后,将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
[0044]在本发明实施例中,处理器在接收到第一触发指令后,退出操作系统并执行基本输入输出系统的内存数据的迀移指令,所述基本输入输出系统的内存数据的迀移指令使得所述处理器能够确定待迀移内存数据的源内存卡,为所述源内存卡确定备份内存卡,指示所述源内存卡的内存控制读取所述源内存卡的内存数据并将所读取的所述源内存卡的内存数据写入所述备份内存卡,从而能够对所述源内存卡的内存数据进行迀移,实现了在计算机不下电的情况下对故障内存卡的在线维护,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。
【附图说明】
[0045]为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0046]图1为本发明实施例提供的计算机的系统框图;
[0047]图2为本发明实施例提供的内存数据的迀移方法流程图;
[0048]图3为本发明实施例提供的又一种内存数据的迀移方法流程图;
[0049]图4为本发明实施例提供的又一种内存数据的迀移方法流程图;
[0050]图5为本发明实施例提供的装置组成图。
【具体实施方式】
[0051]本发明实施例提供了一种内存数据的迀移方法、计算机和装置,能够在计算机正常运行的情况下进行内存数据的迀移。
[0052]—种实现内存数据迀移的计算机
[0053]如图1所示,为实施本发明实施例的计算机的一个示例,该计算机可以包括主存储器101、内存控制器102、处理器105、基本输入输出系统(Basic Input Output System,B1S) 104和硬盘(图1未示出)。所述主存储器101包括至少一个内存卡,图1中以3个内存卡为例,内存卡101-A、101-B、101-Co所述内存控制器102用于控制所述主存储器101,可以为所述主存储器101的每个内存卡配置对应的内存控制器102,例如内存卡101-A的内存控制器102-A,内存卡101-B的内存控制器102-B,内存卡101-C的内存控制器102-C。本实施例中的内存卡具体可以是内存板或者内存条等任何可以作为内存的存储介质,一个内存卡可以指一根内存条或一个内存板,也可以指多根内存条的集合或多个内存板的集合。每个内存卡都配置有对应的内存控制器,内存卡和内存控制器的对应关系可以是一对一,也可以是一对多或者多对一,图1只是本发明实施示例之一。
[0054]在所述计算机系统开机后,所述主存储器101可以在计算机开机启动时,加载所述B10S104中的指令以及存储在硬盘中的计算机的操作系统(Operating System,OS) 103的指令,所述处理器105可以执行所述B1S 104的指令或所述计算机的操作系统(Operating System, OS) 103的指令,例如所述处理器105可以执行B10S104的指令对所述计算机中的设备进行初始化,以及执行所述0S103的指令对所述内存卡进行读写操作,其中,所述处理器105主要指CPU内核部分,可以是一个CPU内核,也可以是多个CPU内核的集合,在本发明实施例中,所述处理器105是多个CPU内核的集合。所述B10S104可以是一个处理芯片,在该处理芯片内注册了多个处理指令,所述处理器105可以执行这些处理指令。
[0055]本实施例中为了实现内存数据
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1