管理热备份内存的方法和电子设备

阅读: 评论:0

著录项
  • CN200910086763.1
  • 20090629
  • CN101937400A
  • 20110105
  • 联想(北京)有限公司
  • 柯海滨;张建辉
  • G06F12/08(2006.01)I
  • G06F12/08(2006.01)I

  • 北京市海淀区上地信息产业基地创业路6号
  • 中国,CN,北京(11)
  • 北京集佳知识产权代理有限公司
  • 逯长明;王宝筠
摘要
本发明提供一种管理热备份内存的方法,所述方法应用于一包括主内存及热备份内存的电子设备中,包括:检测所述主内存是否在正常工作;在所述主内存正常工作时,检测是否有应用程序申请将所述热备份内存作为缓存使用的申请;在检测到有应用程序申请将所述热备份内存作为缓存使用的申请时,处理所述申请,以决定是否同意所述热备份内存作为所述应用程序的缓存;在同意所述热备份内存作为所述应用程序的缓存时,将所述热备份内存作为所述应用程序的缓存使用。本发明还提供一种电子设备。在本发明中,热备份内存在主内存正常运行期间可以被使用,减少了资源的浪费。
权利要求

1.一种管理热备份内存的方法,所述方法应用于一包括主内存及热备份内存的电子设备中,其特征在于,包括:

检测所述主内存是否在正常工作;

在所述主内存正常工作时,检测是否有应用程序申请将所述热备份内存作为缓存使用的申请;

在检测到有应用程序申请将所述热备份内存作为缓存使用的申请时,处理所述申请,以决定是否同意所述热备份内存作为所述应用程序的缓存;

在同意所述热备份内存作为所述应用程序的缓存时,将所述热备份内存作为所述应用程序的缓存使用。

2.如权利要求1所述的方法,其特征在于,所述检测是否有应用程序申请将所述热备份内存作为缓存使用的申请具体为:检测是否有应用程序提供的标识所需要申请的内存容量的数据。

3.如权利要求1所述的方法,其特征在于,所述将所述热备份内存作为所述应用程序的缓存使用具体为:将允许使用的内存的起始地址提供给所述应用程序,并在用于维护热备份内存使用情况的状态表中记录分配给所述应用程序使用的内存空间。

4.如权利要求1-3任意一项所述的方法,其特征在于,进一步包括:禁止所述应用程序继续使用所述热备份内存。

5.如权利要求4所述的方法,其特征在于,所述禁止所述应用程序继续使用所述热备份内存具体为:在检测到主内存不能正常工作时,禁止所述应用程序使用所述热备份内存。

6.如权利要求4所述的方法,其特征在于,所述禁止所述应用程序继续使用所述热备份内存具体为:

获得所述应用程序发出的不再继续使用所述热备份内存的信息;

禁止所述应用程序继续使用所述热备份内存。

7.一种电子设备,包括主内存及热备份内存,其特征在于,还包括:

第一检测单元,用于检测所述主内存是否在正常工作;

第二检测单元,在所述第一检测单元检测出所述主内存正常工作时,检测是否有应用程序申请将所述热备份内存作为缓存使用的申请;

第一处理单元,用于在所述第二检测单元检测到有应用程序申请将所述热备份内存作为缓存使用的申请时,处理所述申请,以决定是否同意所述热备份内存作为所述应用程序的缓存;

第二处理单元,用于在所述第一处理单元同意所述热备份内存作为所述应用程序的缓存时,将所述热备份内存作为所述应用程序的缓存使用。

8.如权利要求7所述的电子设备,其特征在于,所述第二检测单元具体用于检测是否有应用程序提供的标识所需要申请的内存容量的数据。

9.如权利要求7所述的电子设备,其特征在于,所述第二处理单元具体用于将允许使用的内存的起始地址提供给所述应用程序,并在用于维护热备份内存使用情况的状态表中记录分配给所述应用程序使用的内存空间。

10.如权利要求7-9任意一项所述的电子设备,其特征在于,进一步包括:第三处理单元,用于禁止所述应用程序继续使用所述热备份内存。

说明书
技术领域

技术领域

本发明涉及计算机技术,尤其涉及管理热备份内存的方法和电子设备。

背景技术

根据统计发现,在计算机发生的硬件故障中,内存故障位居首位。内存故障可能导致计算机数据丢失或者计算机当机,进而给用户造成损失。为保证计算机运行的稳定性,人们采取了很多种技术,比如奇偶校验技术、错误检查和纠错(ECC,Error Checking and Correcting)技术、内存热备份(Sparing)技术和内存镜像(Mirroring)技术等。其中,内存热备份技术是指,在计算机中,将一部分内存空间作为备份内存空间,备份内存空间在非备份内存空间正常运行时空闲,当非备份内存空间发生故障时,备份内存空间才被启用,以代替非备份内存空间进行工作。一般来说,非备份内存空间与备份内存空间是相互独立的两个内存条,为便于下文描述,这里将非备份内存空间称为主内存,备份内存空间称为热备份内存。

内存热备份技术可以有效地提高计算机运行的稳定性。但从另一方面来看,在主内存正常运行期间,热备份内存会闲置,这样会造成资源的浪费。

发明内容

本发明提供管理热备份内存的方法和电子设备,用以减少资源的浪费。

一种管理热备份内存的方法,所述方法应用于一包括主内存及热备份内存的电子设备中,包括:检测所述主内存是否在正常工作;在所述主内存正常工作时,检测是否有应用程序申请将所述热备份内存作为缓存使用的申请;在检测到有应用程序申请将所述热备份内存作为缓存使用的申请时,处理所述申请,以决定是否同意所述热备份内存作为所述应用程序的缓存;在同意所述热备份内存作为所述应用程序的缓存时,将所述热备份内存作为所述应用程序的缓存使用。

一种电子设备,包括主内存及热备份内存,所述电子设备还包括:第一检测单元,用于检测所述主内存是否在正常工作;第二检测单元,在所述第一检测单元检测出所述主内存正常工作时,检测是否有应用程序申请将所述热备份内存作为缓存使用的申请;第一处理单元,用于在所述第二检测单元检测到有应用程序申请将所述热备份内存作为缓存使用的申请时,处理所述申请,以决定是否同意所述热备份内存作为所述应用程序的缓存;第二处理单元,用于在所述第一处理单元同意所述热备份内存作为所述应用程序的缓存时,将所述热备份内存作为所述应用程序的缓存使用。

在本发明中,热备份内存在主内存正常运行期间可以被使用,减少了资源的浪费。

附图说明

图1A为本发明的一种管理热备份内存的方法的流程图;

图1B为本发明的一种电子设备的逻辑结构示意图;

图1为本发明的一种热备份内存的处理方法的流程图;

图2为本发明的一种热备份内存的处理装置的结构示意图;

图3为本发明的一种热备份内存的管理方法的流程图;

图4为本发明的一种内存控制器的结构示意图;

图5为本发明的另一种热备份内存的处理方法的流程图;

图6为本发明的另一种热备份内存的处理装置的结构示意图;

图7为本发明的另一种热备份内存的管理方法的流程图;

图8为本发明的另一种内存控制器的结构示意图;

图9为本发明的第一个优选实施例的流程图;

图10为本发明的第二个优选实施例的流程图。

具体实施方式

首先结合图1A,对本发明的一种管理热备份内存的方法进行说明。首先需要说明的是,这种方法可以应用于一包括主内存及热备份内存的电子设备中。如图1A所示,这种方法包括:

S101A:检测主内存是否在正常工作;

S102A:在所述主内存正常工作时,检测是否有应用程序申请将热备份内存作为缓存使用的申请;

S103A:在检测到有应用程序申请将所述热备份内存作为缓存使用的申请时,处理所述申请,以决定是否同意所述热备份内存作为所述应用程序的缓存;

S104A:在同意所述热备份内存作为所述应用程序的缓存时,将所述热备份内存作为所述应用程序的缓存使用。

在实际应用中,可以有多种方式检测是否有应用程序申请将所述热备份内存作为缓存使用的申请。例如,检测是否有应用程序提供的标识所需要申请的内存容量的数据。

在实际应用中,可以有多种方式实现将所述热备份内存作为所述应用程序的缓存使用。例如,将允许使用的内存的起始地址提供给所述应用程序,并在用于维护热备份内存使用情况的状态表中记录分配给所述应用程序使用的内存空间。

进一步的,图1A所示的方法还包括:禁止所述应用程序继续使用所述热备份内存。例如,在检测到主内存不能正常工作时,禁止所述应用程序使用所述热备份内存。再例如,获得所述应用程序发出的不再继续使用所述热备份内存的信息;禁止所述应用程序继续使用所述热备份内存。

本发明还提供一种电子设备,包括主内存及热备份内存。如图1B所示,这种电子设备还包括:第一检测单元101B,用于检测所述主内存是否在正常工作;第二检测单元102B,在第一检测单元101B检测出所述主内存正常工作时,检测是否有应用程序申请将所述热备份内存作为缓存使用的申请;第一处理单元103B,用于在第二检测单元102B检测到有应用程序申请将所述热备份内存作为缓存使用的申请时,处理所述申请,以决定是否同意所述热备份内存作为所述应用程序的缓存;第二处理单元104B,用于在第一处理单元103B同意所述热备份内存作为所述应用程序的缓存时,将所述热备份内存作为所述应用程序的缓存使用。

可选的,第二检测单元102B具体可以用于检测是否有应用程序提供的标识所需要申请的内存容量的数据。

可选的,第二处理单元104B具体可以用于将允许使用的内存的起始地址提供给所述应用程序,并在用于维护热备份内存使用情况的状态表中记录分配给所述应用程序使用的内存空间。

图1B所示的电子设备进一步包括:第三处理单元105B,用于禁止所述应用程序继续使用所述热备份内存。具体的,在第一检测单元101B检测到主内存不能正常工作时,第三处理单元105B可以禁止所述应用程序使用所述热备份内存。另外,第三处理单元105B获得所述应用程序发出的不再继续使用所述热备份内存的信息后,也可以禁止所述应用程序继续使用所述热备份内存。

实际上,本发明可以从内存控制器、应用程序等多个角度来描述。由于应用程序需要运行在电子设备的功能单元上,所以,在下面的实施例中,应用程序的功能都由功能单元来执行。

首先从应用程序(功能单元)的角度来描述本发明。如图1所示,一种热备份内存的处理方法包括:

S101:向控制内存的内存控制器申请使用热备份内存;

S102:如果申请成功,则使用热备份内存。

S101的执行时机既可以是在主内存正常运行期间,也可以是在主内存发生故障期间,即热备份内存代替主内存工作期间。S102的执行时机可以是在主内存正常运行期间。S101和S102的执行主体可以是电子设备中的某一个功能单元,例如CPU等,再进一步来说,S101和S102的执行主体可以是电子设备中的某一个功能单元及运行在功能单元上的计算机程序。这里的电子设备一般是指服务器。

内存控制器上可以设置一个寄存器,为便于下文描述,这里将这个寄存器称为第一寄存器。当需要申请使用热备份内存时,可以将标识所需要申请的内存容量的数据写入所述第一寄存器中。例如,假设需要申请1兆字节(1MB)的内存空间,那么就可以将数据“1”写入第一寄存器中。当然,申请使用热备份内存可以有多种方式来实现,这里不再一一举例说明。

内存控制器收到标识所需要申请的内存容量的数据后,可以判断热备份内存中是否具有所需容量的内存空间可供使用,如果有,则可以将所需容量的内存空间的起始地址写入第一寄存器中,如果没有,则可以将用于标识没有合适的内存空间的数据写入第一寄存器中。需要说明的是,起始地址可以使用偏移量来表示,例如N1-1等,用于标识没有合适的内存空间的数据可以是预先定义的数据。当然,起始地址还可以有其他表示方式,这里不再一一举例说明。

在向控制内存的内存控制器申请使用热备份内存后,可以读取所述第一寄存器中的由所述内存控制器写入的数据,如果所述数据是一个地址,即上述的起始地址,则表示申请成功,如果所述数据不是一个地址,例如是标识没有合适的内存空间的数据,则表示申请失败。

申请成功后,就可以使用热备份内存了,具体来说,可以使用分配的热备份内存中的内存空间。如何使用内存空间可以由本领域技术人员根据实际需要而设计,例如,将所 申请到的内存空间作为高速缓冲存储器,从所述高速缓冲存储器中读取需要的硬盘中的数据,如果没有命中,则从硬盘中读取所述需要的数据到所述高速缓冲存储器,再从所述高速缓冲存储器中读取所述需要的数据。将所申请到的内存空间作为高速缓冲存储器可以加快运行速度。

在所述使用热备份内存后,如果不再需要使用所述热备份内存,则可以将不再需要使用所述热备份内存的信息通知给所述内存控制器,以便内存控制器维护热备份内存的使用状态。

热备份内存上还可以设置一个寄存器,为便于下文描述,这里将这个寄存器称为第二寄存器。当将不再需要使用所述热备份内存的信息通知给所述内存控制器时,可以将在申请使用热备份内存时从所述第一寄存器中读取到的数据写入到所述第二寄存器中。当然,将不再需要使用所述热备份内存的信息通知给所述内存控制器可以有多种方式来实现,这里不再一一举例说明。

对应于图1所示的方法,本发明还提供一种热备份内存的处理装置。如图2所示,所述装置包括:申请单元201,用于向控制内存的内存控制器申请使用热备份内存;使用单元202,用于如果申请成功,则使用热备份内存。

申请单元201向内存控制器申请使用热备份内存的时机既可以是在主内存正常运行期间,也可以是在主内存发生故障期间,即热备份内存代替主内存工作期间。使用单元202使用热备份内存的时机可以是在主内存正常运行期间。

内存控制器上可以设置一个寄存器,为便于下文描述,这里将这个寄存器称为第一寄存器。当申请单元201需要申请使用热备份内存时,申请单元201可以将标识所需要申请的内存容量的数据写入所述第一寄存器中。例如,假设申请单元201需要申请1兆字节(1MB)的内存空间,那么申请单元201就可以将数据“1”写入第一寄存器中。当然,申请单元201申请使用热备份内存可以有多种方式来实现,这里不再一一举例说明。

内存控制器收到标识所需要申请的内存容量的数据后,可以判断热备份内存中是否具有所需容量的内存空间可供使用,如果有,则可以将所需容量的内存空间的起始地址写入第一寄存器中,如果没有,则可以将用于标识没有合适的内存空间的数据写入第一寄存器中。需要说明的是,起始地址可以使用偏移量来表示,例如N1-1等,用于标识没有合适的内存空间的数据可以是预先定义的数据。当然,起始地址还可以有其他表示方式,这里不再一一举例说明。

申请单元201在向控制内存的内存控制器申请使用热备份内存后,可以读取所述第一寄存器中的由所述内存控制器写入的数据,如果所述数据是一个地址,即上述的起始地址,则表示申请成功,如果所述数据不是一个地址,例如是标识没有合适的内存空间的数据,则表示申请失败。可选的,图2所示的装置还可以包括读取单元(图2中未绘示)和判断单元(图2中未绘示),当申请单元201在向控制内存的内存控制器申请使用热备份内存后,读取单元可以读取所述第一寄存器中的由所述内存控制器写入的数据,并将读取的数据提供给判断单元,判断单元可以判断读取单元提供的数据是否是一个起始地址,如果是,则可以向使用单元202提供这个起始地址,使用单元202按照这个起始地址使用热备份内存,否则,判断单元既可以向使用单元202通知热备份内存不可用或申请使用热备份内存不成功等信息,也可以不向使用单元202发送任何信息。当然,读取单元和判断单元的工作 可以由申请单元201完成。

申请单元201申请成功后,使用单元202就可以使用热备份内存了,具体来说,使用单元202可以使用分配的热备份内存中的内存空间。使用单元202如何使用内存空间可以由本领域技术人员根据实际需要而设计,例如,使用单元202将所申请到的内存空间作为高速缓冲存储器,从所述高速缓冲存储器中读取需要的硬盘中的数据,如果没有命中,则从硬盘中读取所述需要的数据到所述高速缓冲存储器,再从所述高速缓冲存储器中读取所述需要的数据。将所申请到的内存空间作为高速缓冲存储器可以加快运行速度。

图2所示的装置还可以包括释放单元203,在使用单元202使用热备份内存后,如果使用单元202不再需要使用所述热备份内存,则释放单元203可以将不再需要使用所述热备份内存的信息通知给所述内存控制器,以便内存控制器维护热备份内存的使用状态。

热备份内存上还可以设置一个寄存器,为便于下文描述,这里将这个寄存器称为第二寄存器。当释放单元203将不再需要使用所述热备份内存的信息通知给所述内存控制器时,释放单元203可以将在申请使用热备份内存时从所述第一寄存器中读取到的数据写入到所述第二寄存器中,当然,在此之前,申请单元201或者使用单元202需要将从所述第一寄存器中读取到的数据提供给释放单元203。当然,释放单元203将不再需要使用所述热备份内存的信息通知给所述内存控制器可以有多种方式来实现,这里不再一一举例说明。

在图2所示的装置中的每个单元上都运行有计算机程序,这些单元都可以设置或应用于电子设备中的某一个功能单元上,例如CPU等。这里的电子设备一般是指服务器。

图1所示的方法及图2所示的装置是从应用程序(电子设备中除内存控制器之外的其他功能单元)的角度来描述本发明的,实际上,本发明还可以从内存控制器的角度来描述。对此,本发明还提供了图3所示的热备份内存的管理方法和图4所示的内存控制器。

如图3所示,一种热备份内存的管理方法,包括:

S301:获得电子设备中的一个功能单元发出的使用热备份内存的申请;

S302:如果符合预先设置的第一条件,则允许所述功能单元使用热备份内存。

S301和S302的执行时机既可以是在主内存正常运行期间,也可以是主内存发生故障期间,即热备份内存代替主内存工作期间。S301和S302的执行主体可以是内存控制器。内存控制器可以是指电子设备中的内存控制器,这里的电子设备一般是指服务器。

获得电子设备中的一个功能单元发出的使用热备份内存的申请可以有多种实现方式,例如,获得所述功能单元提供的标识所需要申请的内存容量的数据。内存控制器上可以设置一个寄存器,为便于下文描述,这里将这个寄存器称为第一寄存器。电子设备中的某个功能单元可以将标识所需要申请的内存容量的数据写入所述第一寄存器中,这样,内存控制器就获得了标识这个功能单元需要申请的内存容量的数据,实际相当于获得了使用热备份内存的申请。

内存控制器获得使用热备份内存的申请后,可以判断当前的状态是否符合预先设置的第一条件,如果是,则允许所述功能单元使用热备份内存,否则,不允许所述功能单元使用热备份内存。判断当前的状态是否符合预先设置的第一条件例如为,热备份内存是否正在代替主内存工作、热备份内存当前可以使用的内存空间是否能够满足申请使用的内存容量等。当然,预先设置的第一条件或者判断当前的状态是否符合预先设置的第一条件还可以有其他表现或实现方式,本领域技术人员可以根据实际需要而设计预先设置的第一条 件或如何判断当前的状态是否符合预先设置的第一条件,这里不再一一举例说明。

如果确定符合预先设置的第一条件,就可以允许申请使用热备份内存的功能单元使用热备份内存。允许功能单元使用热备份内存可以有多种实现方式,例如,将允许使用的内存的起始地址提供给所述功能单元。具体来说,可以将允许使用的内存的起始地址写入到第一寄存器中。当然,允许功能单元使用热备份内存还可以有其他实现方式,本领域技术人员可以根据实际需要而设计允许使用的内存的起始地址写入到第一寄存器的实现方式,这里不再一一举例说明。

在实际实现时,内存控制器可以维护一个热备份内存使用情况的状态表,这个状态表可以记录例如热备份内存的哪些内存空间可以使用、哪些内存空间正在被使用、什么时间开始被使用等信息。这个状态表既可以共享给电子设备中的其他功能单元,也可以不共享给电子设备中的其他功能单元。表1即为一个状态表或者是状态表的一部分。

表1

在执行S301后,如果符合预先设置的第一条件,则还需要在上述状态表中记录分配给所述功能单元使用的内存空间,这样,在所述功能单元使用分配的内存空间期间,当有其他功能单元或运行在所述功能单元上的其他计算机程序也申请使用热备份内存时,内存控制器通过上述状态表,就能确定分配给所述功能单元使用的内存空间不能再分配给其他功能单元或运行在所述功能单元上的其他计算机程序使用。

在执行S302后,如果符合预先设置的第二条件,则内存控制器可以禁止所述功能单元再使用所述热备份内存。预先设置的第二条件例如为,获得所述功能单元发出的不再需要使用所述热备份内存的信息、检测到主内存发生故障等。其中,如果检测到主内存发生故障、则禁止所述功能单元再使用所述热备份内存具体可以包括:通知所述功能单元清理所述热备份内存中的数据;获得所述功能单元发出的清理完毕的通知;拒绝所有的使用热备份内存的申请。当然,预先设置的第二条件还可以有其他表现方式,本领域技术人员可以根据实际需要而设计预先设置的第二条件,这里不再一一举例说明。

如果符合预先设置的第二条件、则禁止所述功能单元再使用所述热备份内存具体可以包括:在用于维护热备份内存使用情况的状态表中清除对分配给所述功能单元使用的内存空间的记录,这样,后续再有功能单元申请使用热备份内存,则上述原来分配给所述功能单元使用的内存空间也是候选分配的内存空间。

对应于图3所示的方法,本发明提供一种如图4所示的内存控制器,包括:获得单元401,用于获得电子设备中的一个功能单元发出的使用热备份内存的申请;管理单元402,用于如果符合预先设置的条件,则允许所述功能单元使用热备份内存。

获得单元401获得申请使用热备份内存和管理单元402允许所述功能单元使用热备份内存的时机既可以是在主内存正常运行期间,也可以是主内存发生故障期间,即热备份内存代替主内存工作期间。

获得单元401获得电子设备中的一个功能单元发出的使用热备份内存的申请可以有多种实现方式,例如,获得所述功能单元提供的标识所需要申请的内存容量的数据。内存控制器上可以设置一个寄存器,为便于下文描述,这里将这个寄存器称为第一寄存器。电子设备中的某个功能单元可以将标识所需要申请的内存容量的数据写入所述第一寄存器中,第一寄存器可以将获得的数据提供给获得单元401,这样,获得单元401就获得了标识这个功能单元需要申请的内存容量的数据,实际相当于获得了使用热备份内存的申请。可选的,获得单元401可以就是第一寄存器,这样,在电子设备中的某个功能单元可以将标识所需要申请的内存容量的数据写入所述第一寄存器中之后,第一寄存器(获得单元401)就获得了标识这个功能单元需要申请的内存容量的数据。

图4所示的内存控制器可以包括判断单元(图中未绘示),在获得单元401获得使用热备份内存的申请后,判断单元可以判断当前的状态是否符合预先设置的第一条件,如果是,则管理单元402可以允许所述功能单元使用热备份内存,否则,管理单元402不允许所述功能单元使用热备份内存。判断单元判断当前的状态是否符合预先设置的第一条件例如为,热备份内存是否正在代替主内存工作、热备份内存当前可以使用的内存空间是否能够满足申请使用的内存容量等。当然,预先设置的第一条件或者判断当前的状态是否符合预先设置的第一条件还可以有其他表现或实现方式,本领域技术人员可以根据实际需要而设计预先设置的第一条件或如何判断当前的状态是否符合预先设置的第一条件,这里不再一一举例说明。

如果判断单元确定符合预先设置的第一条件,管理单元402就可以允许申请使用热备份内存的功能单元使用热备份内存。管理单元402允许功能单元使用热备份内存可以有多种实现方式,例如,将允许使用的内存的起始地址提供给所述功能单元。具体来说,管理单元402可以将允许使用的内存的起始地址写入到第一寄存器中。当然,管理单元402允许功能单元使用热备份内存还可以有其他实现方式,本领域技术人员可以根据实际需要而设计管理单元402允许使用的内存的起始地址写入到第一寄存器的实现方式,这里不再一一举例说明。

在实际实现时,内存控制器可以维护一个热备份内存使用情况的状态表,这个状态表可以记录例如热备份内存的哪些内存空间可以使用、哪些内存空间正在被使用、什么时间开始被使用等信息。这个状态表既可以共享给电子设备中的其他功能单元,也可以不共享给电子设备中的其他功能单元。维护状态表的工作可以由管理单元402执行,也可以由一个单独的维护单元来执行。在获得单元401获得使用热备份内存的申请后,如果判断单元确定符合预先设置的第一条件,则管理单元402还需要在上述状态表中记录分配给所述功能单元使用的内存空间,这样,在所述功能单元使用分配的内存空间期间,当有其他功能单元或运行在所述功能单元上的其他计算机程序也申请使用热备份内存时,管理单元 402通过上述状态表,就能确定分配给所述功能单元使用的内存空间不能再分配给其他功能单元或运行在所述功能单元上的其他计算机程序使用。

在管理单元402允许所述功能单元使用热备份内存后,如果判断单元符合预先设置的第二条件,则管理单元402可以禁止所述功能单元再使用所述热备份内存。预先设置的第二条件例如为,获得单元401获得所述功能单元发出的不再需要使用所述热备份内存的信息、管理单元402检测到主内存发生故障等,当然,检测也可以由一个单独的检测单元来执行。其中,如果管理单元402检测到主内存发生故障,则管理单元402可以通知所述功能单元清理所述热备份内存中的数据,获得单元401获得所述功能单元发出的清理完毕的通知,管理单元402拒绝所有的使用热备份内存的申请。当然,预先设置的第二条件还可以有其他表现方式,本领域技术人员可以根据实际需要而设计预先设置的第二条件,这里不再一一举例说明。

如果判断单元确定符合预先设置的第二条件、则管理单元402禁止所述功能单元再使用所述热备份内存具体可以包括:在用于维护热备份内存使用情况的状态表中清除对分配给所述功能单元使用的内存空间的记录,这样,后续再有功能单元申请使用热备份内存,则上述原来分配给所述功能单元使用的内存空间也是候选分配的内存空间。

需要说明的是,上述判断单元的工作可以由管理单元402来执行。

还需要说明的是,图4所示的内存控制器可以是指电子设备中的内存控制器,这里的电子设备一般是指服务器。

除图1所示的热备份内存的处理方法外,本发明还提供另一种热备份内存的处理方法。如图5所示,包括:

S501:判断热备份内存中当前能够使用的内存空间是否满足需求;

S502:如果是,则使用满足需求的内存空间,并将所述使用的内存空间的信息通知给控制内存的内存控制器。

S501的执行时机既可以是在主内存正常运行期间,也可以是在主内存发生故障期间,即热备份内存代替主内存工作期间。S502的执行时机可以是在主内存正常运行期间。S501和S502的执行主体可以是电子设备中的某一个功能单元,例如CPU等,再进一步来说,S501和S502的执行主体可以是电子设备中的某一个功能单元及运行在功能单元上的计算机程序。这里的电子设备一般是指服务器。

内存控制器可以维护一个记录热备份内存使用情况的状态表,这个状态表可以记录例如热备份内存的哪些内存空间可以使用、哪些内存空间正在被使用、什么时间开始被使用等信息。这个状态表可以共享给电子设备中的其他功能单元。判断热备份内存中当前能够使用的内存空间是否满足需求时,可以在所述内存控制器维护的用于记录热备份内存使用情况的状态表中查询所述判断热备份内存中当前能够使用的内存空间是否满足需求。如果满足,则执行S502,否则,可以执行S503,即不使用热备份内存。这里需要说明的是,确定热备份内存中当前能够使用的内存空间不满足需求可以有很多种情形。例如,由于热备份内存正在代替主内存工作,所以热备份内存不能被所述功能单元使用;再例如,由于热备份内存的部分内存空间已被其他功能单元或运行在所述功能单元上的应用程序使用,而热备份内存中剩余的内存空间容量小于所述功能单元申请的容量,所以热备份内存不能被所述功能单元使用。

如果确定热备份内存中当前能够使用的内存空间满足需求,就可以使用满足需求的内存空间,并将所述使用的内存空间的信息通知给控制内存的内存控制器。

使用内存空间的描述可以参照图1所示的方法中关于使用热备份内存的描述,这里不再赘述。

内存控制器上可以设置有在图1所示的实施例中所述的第一寄存器,将所述使用的内存空间的信息通知给控制内存的内存控制器时,可以将使用的内存空间的起始地址写入第一寄存器。当然,将所述使用的内存空间的信息通知给控制内存的内存控制器还可以有多种实现方式,这里不再一一举例说明。内存控制器获得所述使用的内存空间的信息后,可以在状态表中修改所述使用的内存空间的状态。

在使用满足需求的内存空间后,如果不再需要使用满足需求的内存空间,则可以将不再需要使用的内存空间的信息通知给所述内存控制器。具体的,内存控制器上可以设置有在图1所示的实施例中所述的第二寄存器,将不再需要使用的内存空间的信息通知给所述内存控制器时,可以将使用的内存空间的起始地址写入第二寄存器。当然,将不再需要使用的内存空间的信息通知给所述内存控制器还可以有多种实现方式,这里不再一一举例说明。

对应于图5所示的方法,本发明还提供一种热备份内存的处理装置。如图6所示,包括:判断单元601,用于判断热备份内存中当前能够使用的内存空间是否满足需求;使用单元602,用于如果所述判断单元601确定热备份内存中当前能够使用的内存空间能够满足需求,则使用满足需求的内存空间;通知单元603,用于如果所述判断单元601确定热备份内存中当前能够使用的内存空间能够满足需求,则将所述使用的内存空间的信息通知给控制内存的内存控制器。

判断单元601判断热备份内存中当前能够使用的内存空间是否满足需求的时机既可以是在主内存正常运行期间,也可以是在主内存发生故障期间,即热备份内存代替主内存工作期间。使用单元602使用满足需求的内存空间和通知单元603将所述使用的内存空间的信息通知给控制内存的内存控制器的时机可以是在主内存正常运行期间。

内存控制器可以维护一个记录热备份内存使用情况的状态表,这个状态表可以记录例如热备份内存的哪些内存空间可以使用、哪些内存空间正在被使用、什么时间开始被使用等信息。这个状态表可以共享给电子设备中的其他功能单元。判断单元601判断热备份内存中当前能够使用的内存空间是否满足需求时,可以在所述内存控制器维护的用于记录热备份内存使用情况的状态表中查询所述判断热备份内存中当前能够使用的内存空间是否满足需求。如果满足,则使用单元602使用满足需求的内存空间,通知单元603将所述使用的内存空间的信息通知给控制内存的内存控制器,否则,使用单元602不使用热备份内存。这里需要说明的是,判断单元601确定热备份内存中当前能够使用的内存空间不满足需求可以有很多种情形。例如,由于热备份内存正在代替主内存工作,所以热备份内存不能被所述功能单元使用;再例如,由于热备份内存的部分内存空间已被其他功能单元或运行在所述功能单元上的应用程序使用,而热备份内存中剩余的内存空间容量小于所述功能单元申请的容量,所以热备份内存不能被所述功能单元使用。

如果判断单元601确定热备份内存中当前能够使用的内存空间满足需求,使用单元602就可以使用满足需求的内存空间,通知单元603将所述使用的内存空间的信息通知 给控制内存的内存控制器。

使用单元602使用内存空间的描述可以参照图2所示的装置中关于使用单元202使用热备份内存的描述,这里不再赘述。

内存控制器上可以设置有在图2所示的实施例中所述的第一寄存器,通知单元603将所述使用的内存空间的信息通知给控制内存的内存控制器时,可以将使用的内存空间的起始地址写入第一寄存器。当然,通知单元603将所述使用的内存空间的信息通知给控制内存的内存控制器还可以有多种实现方式,这里不再一一举例说明。内存控制器获得所述使用的内存空间的信息后,可以在状态表中修改所述使用的内存空间的状态。

在使用单元602使用满足需求的内存空间后,如果使用单元602不再需要使用满足需求的内存空间,则通知单元603可以将不再需要使用的内存空间的信息通知给所述内存控制器,此时,通知单元603的作用相当于图2所示的释放单元203的作用。具体的,内存控制器上可以设置有在图1所示的实施例中所述的第二寄存器,通知单元603将不再需要使用的内存空间的信息通知给所述内存控制器时,可以将使用的内存空间的起始地址写入第二寄存器。当然,通知单元603将不再需要使用的内存空间的信息通知给所述内存控制器还可以有多种实现方式,这里不再一一举例说明。

在图6所示的装置中的每个单元上都运行有计算机程序,这些单元都可以设置或应用于电子设备中的某一个功能单元上,例如CPU等。这里的电子设备一般是指服务器。

图5所示的方法及图6所示的装置是从应用程序(电子设备中除内存控制器之外的其他功能单元)的角度来描述本发明的,实际上,还可以再从内存控制器的角度来描述本发明。对此,本发明还提供了图7所示的热备份内存的管理方法和8所示的内存控制器。

如图7所示,一种热备份内存的管理方法,包括:

S701:共享热备份内存的使用状态的信息;

S702:获得电子设备中的一个功能单元发出的所述功能单元已使用的内存空间的通知;

S703:修改热备份内存的使用状态。

S701和S702的执行时机既可以是在主内存正常运行期间,也可以是主内存发生故障期间,即热备份内存代替主内存工作期间。S703的执行时机可以是在主内存正常运行期间。S701、S702和S703的执行主体可以是内存控制器。内存控制器可以是指电子设备中的内存控制器,这里的电子设备一般是指服务器。

内存控制器可以维护一个热备份内存使用情况的状态表,这个状态表可以记录例如热备份内存的哪些内存空间可以使用、哪些内存空间正在被使用、什么时间开始被使用等信息。这个状态表可以共享给电子设备中的其他功能单元,这样,其他功能单元就能查询到热备份内存的使用情况。

内存控制器上可以设置有在图3所示的实施例中所述的第一寄存器。获得电子设备中的一个功能单元发出的所述功能单元已使用的内存空间的通知可以有多种实现方式,例如,功能单元将使用的内存空间的起始地址写入第一寄存器。

内存控制器获得所述功能单元已使用的内存空间的通知后,可以修改热备份内存的使用状态。例如,在上述的状态表中修改已使用的内存空间的状态。

修改热备份内存的使用状态后,如果获得所述功能单元发出的不再需要使用的内 存空间的通知,则可以再次修改热备份内存的使用状态。获得所述功能单元发出的不再需要使用的内存空间的通知可以有多种实现方式,例如,内存控制器上可以设置有在图3所示的实施例中所述的第二寄存器,功能单元将使用的内存空间的起始地址写入第二寄存器。再次修改热备份内存的使用状态也可以有多种实现方式,例如,在上述的状态表中再次修改使用的内存空间的状态。

对应于图7所示的方法,本发明提供了一种内存控制器,如图8所示,包括:管理单元802,用于共享热备份内存的使用状态的信息;获得单元801,用于获得电子设备中的一个功能单元发出的所述功能单元已使用的内存空间的通知;在所述获得单元801获得所述通知后,所述管理单元802修改热备份内存的使用状态。

管理单元802共享热备份内存的使用状态的信息和获得单元801获得所述功能单元已使用的内存空间的通知的时机既可以是在主内存正常运行期间,也可以是主内存发生故障期间,即热备份内存代替主内存工作期间。管理单元802修改热备份内存的使用状态的时机可以是在主内存正常运行期间。

管理单元802可以维护一个热备份内存使用情况的状态表,这个状态表可以记录例如热备份内存的哪些内存空间可以使用、哪些内存空间正在被使用、什么时间开始被使用等信息。这个状态表可以共享给电子设备中的其他功能单元,这样,其他功能单元就能查询到热备份内存的使用情况。当然,管理单元802也可以由一个单独的维护单元(图中未绘示)来维护。

内存控制器上可以设置有在图4所示的实施例中所述的第一寄存器。获得单元801获得电子设备中的一个功能单元发出的所述功能单元已使用的内存空间的通知可以有多种实现方式,例如,功能单元将使用的内存空间的起始地址写入第一寄存器。当然,第一寄存器可以是获得单元801的一部分。

获得单元801获得所述功能单元已使用的内存空间的通知后,管理单元802可以修改热备份内存的使用状态。例如,在上述的状态表中修改已使用的内存空间的状态。当然,修改热备份内存的使用状态可以由上述的单独的维护单元来完成。

管理单元802修改热备份内存的使用状态后,如果获得单元801获得所述功能单元发出的不再需要使用的内存空间的通知,则管理单元802可以再次修改热备份内存的使用状态。获得单元801获得所述功能单元发出的不再需要使用的内存空间的通知可以有多种实现方式,例如,内存控制器上可以设置有在图4所示的实施例中所述的第二寄存器,功能单元将使用的内存空间的起始地址写入第二寄存器。管理单元802再次修改热备份内存的使用状态也可以有多种实现方式,例如,在上述的状态表中再次修改使用的内存空间的状态。当然,第二寄存器也可以是获得单元801的一部分。

需要说明的是,图8所示的内存控制器可以是指电子设备中的内存控制器,这里的电子设备一般是指服务器。

为使本领域技术人员更加清楚的理解本发明,下面再介绍两个优选实施例。

第一个优选实施例

在这个优选实施例中,应用程序(驱动程序)向内存控制器申请使用热备份内存,将热备份内存作为硬盘的高速缓冲存储器(cache)。实现流程如图9所示,包括:

S901:应用程序(驱动程序)向内存控制器申请使用热备份内存;

S902:判断是否成功,如果是,则执行S903,否则,结束流程;

S903:应用程序(驱动程序)将申请到的内存空间作为cache,从cache中读取硬盘中的数据;

S904:判断是否命中,如果是,则执行S906,否则,执行S905;

S905:应用程序(驱动程序)从硬盘中读取批量的数据到cache;

S906:应用程序(驱动程序)从cache中取得所需的数据。

第二个优选实施例

在这个优选实施例中,当应用程序(驱动程序)将热备份内存作为硬盘的cache后,如果主内存出现了故障,则内存控制器需要启用热备份内存替代出故障的主内存。实现流程如图10所示,包括:

S1001:内存控制器检测到主内存出现故障;

S1002:判断热备份内存是否已被使用,如果是,则执行S1003,否则,执行S1005;

S1003:通知应用程序(驱动程序)对热备份内存(cache)中的数据进行清理;

S1004:应用程序(驱动程序)清理完cache中的数据后,将清理完毕的消息通知内存控制器;

S1005:内存控制器取消热备份内存的cache功能,即拒绝使用热备份内存的申请;

S1006:热备份内存代替出故障的主内存工作。

在本发明中,如果主内存保持正常运行状态,则热备份内存可以被电子设备中的功能单元使用,减少了资源浪费。

在本发明中,如果主内存保持正常运行状态,则热备份内存可以作为硬盘的cache来使用,这样可以加快运行速度,提高电子设备的性能。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

本文发布于:2023-04-13 15:49:40,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86101.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图