内存模拟非易失性处理方法、装置、设备及可读存储介质与流程

文档序号:25586272发布日期:2021-06-22 17:01阅读:242来源:国知局
本公开涉及通信
技术领域
:,尤其是涉及一种内存模拟非易失性处理方法、装置、设备及机器可读存储介质。
背景技术
::bbu,batteryback-up,备用电池,指用于给主板进行直流供电的备电模块。可以在系统电源输入正常时进行充电,系统电源异常时,给主板供电。nvdimm,non-volatiledualin-linememorymodule,非易失性双重内联存储模型,即掉电时可以保存数据的内存模块。scm,storageclassmemory,存储级内存,指可以实现非易性,同时具有内存级性能的介质。persistentmemory,永久内存,即掉电时可以保存数据的内存。aep,apachepass,intel推出的第一代持久性内存产品,需要配合cascadelake5系及以上cpu使用。bps,barlowpass,intel推出的第二代持久性内存产品,需要配合whitley2s-icelake或cedarisland4s/8s-cooperlak型号cpu使用。dimm,dualin-linememorymodule,双重内联存储模块,常用的内存模块。spd,serialpresencedetect,内存上用于存储厂商、型号、大小、运行频率等等参数的信息存储方式,通常指内存上的eepom。ad,appdirectmode,应用直通模式,主要指aep和bps工作于非易失性的模式。ac,交流电源,通常指220v的交流输入。bios,basicinputoutputsystem,指设备引导阶段的程序。type7,type12,实际代表一个数值,bios对内存进行初始化时,会对各段内存地址空间设置相应的属性,地址空间的属性通过e820-table传递给linux系统。对于为usable的类型地址空间linux内核会进行使用,但对于其他的类型的地址空间,如此处的type7,type12,linux内核默认不会使用。概述而言,可以简单理解type7为aep/bps、type12为nvdimm,linux内核中的nvdimm驱动对这2个类型的地址段处理逻辑是一致的,会进行初始化和管理。pmdk,persistentmemorydevelopmentkit,intel推出的针对非易失性内存进行编程的开发套件。bmc,basebandmanagementcontroller,基板管理控制器,指带外管理系统。cpld,complexprogrammablelogicdevice,复杂可编程逻辑设备,指主板上的可编程逻辑模块,可以和bmc交互,可以控制主板供电及上下电时序。pch,platformcontrollerhub,主要指配合cpu使用的桥芯片,通常称为南桥。traning,bios启动过程中,对内存进行训练的初始化动作,该过程一般会清空内存中的数据。当前的非易失性内存方案存在性能较低、容量选择不灵活及要求硬件为特定型号的技术问题。技术实现要素:有鉴于此,本公开提供一种内存模拟非易失性处理方法、装置及电子设备、机器可读存储介质,以改善上述性能较低、容量选择不灵活及要求硬件为特定型号之一的技术问题。具体地技术方案如下:本公开提供了一种内存模拟非易失性处理方法,应用于带有易失性的内存的计算机设备,所述计算机设备设有备用电源,所述方法包括:根据第一触发条件,设置目标内存地址空间的地址类型为指定类型;通过加载的驱动和软件接口,将目标数据写入地址类型为指定类型的内存空间;根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件;根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。作为一种技术方案,所述根据第一触发条件,设置目标内存地址空间的地址类型为指定类型,包括:检测所述备用电源是否正常,并检测所述非易失性存储设备是否正常;若均正常,则设置目标内存地址空间的地址类型为指定类型。作为一种技术方案,所述根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,包括:若所述计算机设备被下达关机命令,则使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,并生成特定标识。作为一种技术方案,所述根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间,包括:计算机设备启动时,若发现存在所述特定标识,则将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。本公开同时提供了一种内存模拟非易失性处理装置,应用于带有易失性的内存的计算机设备,所述计算机设备设有备用电源,所述装置包括:地址模块,用于根据第一触发条件,设置目标内存地址空间的地址类型为指定类型;数据模块,用于通过加载的驱动和软件接口,将目标数据写入地址类型为指定类型的内存空间;备份模块,用于根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件;备份模块还用于根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。作为一种技术方案,所述根据第一触发条件,设置目标内存地址空间的地址类型为指定类型,包括:检测所述备用电源是否正常,并检测所述非易失性存储设备是否正常;若均正常,则设置目标内存地址空间的地址类型为指定类型。作为一种技术方案,所述根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,包括:若所述计算机设备被下达关机命令,则使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,并生成特定标识。作为一种技术方案,所述根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间,包括:计算机设备启动时,若发现存在所述特定标识,则将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。本公开同时提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的内存模拟非易失性处理方法。本公开同时提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的内存模拟非易失性处理方法。本公开提供的上述技术方案至少带来了以下有益效果:以易失性内存作为实施方案的硬件载体,通过增加设备的备用电源,使得计算机设备在掉电或关机时,将先前通过设置内存地址类型的内存空间中存储的数据复制到非易失性存储设备中,并在重新上电后加载至内存空间中,从而能够充分利用内存的高性能,且对于内存容量和其他硬件型号没有要求。附图说明为了更加清楚地说明本公开实施方式或者现有技术中的技术方案,下面将对本公开实施方式或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施方式,对于本领域普通技术人员来讲,还可以根据本公开实施方式的这些附图获得其他的附图。图1是本公开一种实施方式中的内存模拟非易失性处理方法的流程图;图2是本公开一种实施方式中的内存模拟非易失性处理装置的结构图;图3是本公开一种实施方式中的电子设备的硬件结构图。具体实施方式在本公开实施方式使用的术语仅仅是出于描述特定实施方式的目的,而非限制本公开。本公开和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本公开实施方式可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。存储系统中,io路径的长短或者io落入非易失性存储介质后再返回的时间关系到整个存储系统的性能。为了提升性能,系统使用缓存。缓存一般是容量较小,性能较高的介质,通过缓冲即时业务io来提升整系统的处理能力和性能。比如常见的内存就是作为缓存的较好的选择。但是由于内存是易失性介质,在系统关机或掉电时,其中的数据会丢失,因而其作为缓存时,会存在一定的风险。于是就存储系统的技术而言,缓存的“可靠性”或“非易失性”就成了存储系统一个比较关键的技术点。一种技术方案中,具有nvdimm、scm等可满足“非易失”的缓存应用技术。并且以inteloptanepersistentmemory为代表的产品如aep、bps等慢慢取代了之前的nvdimm。但在aep、bps所支持的应用模式中,当其用作persistentmemory工作于ad模式时,其性能还是比通常的dimm要低一些,并且使用过程中对于普通dimm的配比还有一定要求。因而从整体成本上来讲,aep、bps的性价比较低。当aep、bps工作于ad模式时,其介质本身可以实现写入数据不丢失,但是此种模式下,性能表现要比同等内存频率的普通内存要低。aep、bps容量选择不够灵活,只有128g以上的先择,相应成本上升,性价比不高。aep、bps的应用对cpu型号有依赖,需要特定规格及以上的cpu才能支持。有鉴于此,本公开提供一种内存模拟非易失性处理方法、装置及电子设备、机器可读存储介质,以改善上述性能较低、容量选择不灵活及要求硬件为特定型号之一的技术问题。具体地技术方案如后述。在一种实施方式中,本公开提供了一种内存模拟非易失性处理方法,应用于带有易失性的内存的计算机设备,所述计算机设备设有备用电源,所述方法包括:根据第一触发条件,设置目标内存地址空间的地址类型为指定类型;通过加载的驱动和软件接口,将目标数据写入地址类型为指定类型的内存空间;根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件;根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。具体地,如图1,包括以下步骤:步骤s11,根据第一触发条件,设置目标内存地址空间的地址类型为指定类型。步骤s12,通过加载的驱动和软件接口,将目标数据写入地址类型为指定类型的内存空间。步骤s13,根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件。步骤s14,根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。以易失性内存作为实施方案的硬件载体,通过增加设备的备用电源,使得计算机设备在掉电或关机时,将先前通过设置内存地址类型的内存空间中存储的数据复制到非易失性存储设备中,并在重新上电后加载至内存空间中,从而能够充分利用内存的高性能,且对于内存容量和其他硬件型号没有要求。在一种实施方式中,所述根据第一触发条件,设置目标内存地址空间的地址类型为指定类型,包括:检测所述备用电源是否正常,并检测所述非易失性存储设备是否正常;若均正常,则设置目标内存地址空间的地址类型为指定类型。在一种实施方式中,所述根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,包括:若所述计算机设备被下达关机命令,则使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,并生成特定标识。在一种实施方式中,所述根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间,包括:计算机设备启动时,若发现存在所述特定标识,则将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。在本公开提供的实施方式中,通过bios将指定槽位的内存或者某一段连续地物理内存地址空间设置成模拟的非易性内存地址空间(如设置地址空间类型为type12)。linux内核不会使用type12类型的地址空间,内核中加载的nvdimm驱动会根据内存地址空间类型type12识别并对该空间进行初始化和管理。业务软件通过pmdk接口访问该模拟的非易性内存地址空间,实现数据读写。ac掉电时,通过bbu供电,在此期间由bios将模拟的非易性内存地址空间的数据写入安全盘(非易失性存储设备,如ssd盘)内。设备再次上电时,再由bios将安全盘内的数据再拷贝到模拟的非易性内存地址空间中,系统启动后业务上层应用程序可以通过pmdk库接口原样访问。bios根据既定逻辑将某个特定槽位的内存或者某个特定地址空间(目标内存地址空间)的内存属性设置为type12(指定类型),内存使用普通内存即可。linux系统内核启动后,对于type12类型的地址空间不会直接使用,当nvdimm驱动加载时,则会根据这个type12的地址类型,对其进行初始化,如映射成特定的设备文件。上层业务的应用程序通过pmdk库接口来对nvdimm驱动初始化的模拟的非易性内存地址空间进行访问,如读写操作。通过pmdk库提供的接口,可以实现在特定接口执行返回时,已写入的数据确定已刷入对应的内存,无cpu缓存下刷的工作遗留。上层业务的应用程序在使用pmdk库初始化出来的模拟的非易性内存地址空间前,通过bmc带外管理通道来获取当前bbu状态是否正常(如是否可以在掉电时为系统提供足够的电量支撑模拟的内存区的数据落盘)、安全盘是否在位。如果bbu状态正常且安全盘在位,则可以使用映射的内存模拟非易失性缓存空间;如果bbu状态不正常或者安全盘不在位,则不使用对应的缓存空间,同时可以通过设备管模块在系统下产生bbu状态不正常或者安全盘不在位的告警。如果上层业务应用程序通过bmc带外管理通道来获取当前bbu状态正常且安全盘在位,则可以通过设备管理的接口(经bmc带外管理通道)给主板可编程逻辑模块(cpld)设置特定的标志量寄存器(use_bbu)的值为1(该寄存器的值在每次上电后,默认值为0),以告知cpld在检测到ac电源跌落时,使能bbu给主板供电(开启掉电时的数据保存功能)。如果该寄存器的值为0时,在ac电源跌落时,cpld不使能bbu给主板供电,不执行数据保存操作。当设备ac电源输跌落,主板的cpld可以及时检测到,如果上述提到的标志量寄存器(use_bbu)的值为1,cpld在主板直流电压跌落之前,使能bbu模块供电,维持主板系统工作正常;如果标志量寄存器(use_bbu)的值为0,cpld不使能bbu供电,遵循默认的掉电逻辑,不执行数据保存操作。主板可编程逻辑模块检测到ac电源跌落时,通过特定gpio信号触发bmc对当前运行的系统执行关机操作,bmc根据检测到的cpio信号,设置主板的cpld的约定寄存器(need_save_data_flg)为1(该标志寄存默认值为0),然后重新引导系统启动。系统重新启动时,在bios阶段判断主板的cpld的约定寄存器的值,如果为0,则执行正常的系统启动;如果为1,则执行将数据从模拟的非易性内存地址空间向安全盘的拷贝操作。若数据拷贝成功,则在bios的非易失性存储区(如cmos或相关区域)将数据保存成功标志量(特定标识,data_saved)置为1;若数据拷贝失败,则将在bios下将数据保存成功标志量(data_saved)置为0;并在操作完成后,主板的cpld的约定寄存器(need_save_data_flg)为0,然后关闭系统。在上述执行系统关机和重新引导bios启动的过程中,主板供电正常,cpu和内存均正常供电,内存刷新状态正常,内存中的数据完整性有保证。用于保存模拟的非易性内存地址空间数据的安全盘,需要接在cpu对应的pch桥片下,与背板数据盘分开连接。在主板可编程逻辑模块检测到ac电源丢失,并触发bmc执行系统关闭后,可以切断背板数据盘及不需要的外设供电,减少实时功耗。系统启动时,bios判断数据保存成功标志量(data_saved)的值,如果该值为1,则在启动过程中从安全盘中将其中的数据拷贝回模拟的非易性内存地址空间;如果该值为0,则不执行数据恢复操作。如果前1步骤中,如果数据从安全盘到模拟的非易性内存地址空间拷贝成功,则bios在对内存进行traning时,不清理这段内存空间的内容;否则,在tranning时,清除此段内存空间的内容。系统启动后,如果bbu状态不正常(如充电电量不够或电池健康状态异常)或者安全盘不在位时,业务层应用程序不使用模拟的非易性内存地址空间作缓存(即不使用这个空间来存储数据)。此时,业务不使用缓存,直接读写数据盘,并且系统产生bbu状态异常或安全盘不在位的告警。系统启动后,如果bbu状态不正常(如充电电量不够或电池健康状态异常)或者安全盘不在位时,业务层应用程序不执行通过设备管理的接口设置cpld标志量寄存器(use_bbu)的值为1的操作,不使能掉电时数据保存的功能。系统启动过程如果还未完成时掉电,cpld标志量寄存器(use_bbu)的值为0,在掉电时执行默认正常的掉电逻辑,bbu不供电。当再次上电时,如果此前已有数据保存成功即bios数据保存成功标志量(data_saved)的值为1,则仍然恢复安全盘中的数据到模拟的非易性内存地址空间。即启动过程中途断电不影响之前已保存的数据,下次启动时,仍然能正常恢复之前已完成保存的缓存数据。如果在bbu给主板供电执行数据拷贝的过程中,ac电源又恢复,则bios在完成数据拷贝后,再重新启动,正常引导进入系统。如果bios下的数据保存成功标志量(data_saved)已经置为1,则其不会被清除。如果已经保存了数据,再次掉电时,满足备电条件,则数据会重新保存,更新安全盘中的数据;如果已经保存了数据,再次掉电时,不满足备电条件,不会保存新的数据,此时由于bbu备电条件不满足,上层业务不会使用模拟的非易性内存地址空间。如果系统异常强执行强制关机操作,在cpld收到对应的信号后,只要上层业务应用程序已通过设置cpld的寄存器使能了掉电时数据保存的功能,则cpld仍可以在关闭操作系统后触发bmc设置主板的cpld的约定寄存器(need_save_data_flg)为1,并在系统关闭后重新引导bios启动,执行将数据从模拟的非易性内存地址空间向安全盘的拷贝操作。此过程中,ac输入正常,cpld根据强制关机(如长按电源键)的信号区别,可以不切换bbu供电。本公开提供的技术方案,可以使用普通内存来实现非易失性内存的效果,对业务提供与aep、bps一样的pmdk库访问接口,上层使用和以前一致,性能比aep、bps工作在ad模式高;通过普通内存摸拟实现非易失性内存用作缓存,其容量选择可以更灵活,成本和性价比更好;通过普通内存摸拟实现非易失性内存用作缓存,对cpu的型号和代次没有强依赖;由业务决定是否使能过ac掉电或者关机、重启时,执行数据保存的操作,实现更灵活,在中途掉电或关机、重启程时间可不加长。在一种实施方式中,本公开同时提供了一种内存模拟非易失性处理装置,如图2,应用于带有易失性的内存的计算机设备,所述计算机设备设有备用电源,所述装置包括:地址模块21,用于根据第一触发条件,设置目标内存地址空间的地址类型为指定类型;数据模块22,用于通过加载的驱动和软件接口,将目标数据写入地址类型为指定类型的内存空间;备份模块23,用于根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件;备份模块还用于根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。在一种实施方式中,所述根据第一触发条件,设置目标内存地址空间的地址类型为指定类型,包括:检测所述备用电源是否正常,并检测所述非易失性存储设备是否正常;若均正常,则设置目标内存地址空间的地址类型为指定类型。在一种实施方式中,所述根据第二触发条件,使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,包括:若所述计算机设备被下达关机命令,则使用备用电源将地址类型为指定类型的内存空间中的数据写入非易失性存储设备的指定文件,并生成特定标识。在一种实施方式中,所述根据第三触发条件,将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间,包括:计算机设备启动时,若发现存在所述特定标识,则将非易失性存储设备的指定文件写入地址类型为指定类型的内存空间。装置实施方式与对应的方法实施方式相同或相似,在此不再赘述。在一种实施方式中,本公开提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的内存模拟非易失性处理方法,从硬件层面而言,硬件架构示意图可以参见图3所示。在一种实施方式中,本公开提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的内存模拟非易失性处理方法。这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本公开的实施方式可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本公开实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本公开是参照根据本公开实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。本领域技术人员应明白,本公开的实施方式可提供为方法、系统或计算机程序产品。因此,本公开可以采用完全硬件实施方式、完全软件实施方式、或者结合软件和硬件方面的实施方式的形式。而且,本公开可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。以上所述仅为本公开的实施方式而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1