写入信息的方法和装置转让专利

申请号 : CN201780035353.7

文献号 : CN109729730B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 弗洛里安·朗诺斯杨峰杨伟

申请人 : 华为技术有限公司

摘要 :

本申请提供了一种写入信息的方法(200),应用于NVDIMM,该NVDIMM包括NVDIMM控制器和NVM,该方法(200)包括:NVDIMM控制器从主机接收清除命令,清除命令用于命令NVDIMM控制器以第一写模式清除NVM中的数据,第一写模式为至少两种在NVM上写入信息的模式中的一种(S201);NVDIMM控制器根据所述清除命令在所述NVM中写入信息(S202)。可以减小在对NVDIMM中的持久性数据进行清除操作时的耗电量。

权利要求 :

1.一种写入信息的方法,其特征在于,应用于非易失性双列直插内存模块NVDIMM,所述NVDIMM包括NVDIMM控制器和非易失性存储器NVM,所述方法包括:所述NVDIMM控制器从主机接收清除命令,所述清除命令用于命令所述NVDIMM控制器以第一写模式清除所述NVM中的数据,所述第一写模式为至少两种在所述NVM上写入信息的模式中的一种;

所述NVDIMM控制器根据所述清除命令在所述NVM中写入信息;

所述清除命令指示所述NVDIMM控制器写入的信息与所述NVM在省电写入模式下写入的信息相同。

2.根据权利要求1所述的方法,其特征在于,所述NVDIMM控制器从主机接收清除命令,包括:所述NVDIMM控制器通过命令总线从所述主机接收所述清除命令。

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述NVDIMM控制器将清除状态设置为可读状态,所述可读状态表示允许所述主机跟踪所述清除命令的执行情况。

4.根据权利要求1或2所述的方法,其特征在于,所述NVDIMM控制器从主机接收清除命令之前,所述方法还包括:所述NVDIMM控制器从所述主机接收第一检查命令,所述第一检查命令用于命令所述NVDIMM控制器检查缓冲器中是否有未完成的读请求和/或写请求;

所述NVDIMM控制器根据所述第一检查命令检查所述缓冲器;

所述NVDIMM控制器向所述主机发送第一检查结果,所述第一检查结果用于指示所述缓冲器中没有未完成的读请求和/或写请求;

所述NVDIMM控制器从所述主机接收第二检查命令,所述第二检查命令用于命令所述NVDIMM控制器检查所述NVM的控制器中是否有未完成的写请求;

所述NVDIMM控制器根据所述第二检查命令检查所述NVM的控制器;

所述NVDIMM控制器向所述主机发送第二检查结果,所述第二检查结果用于指示所述NVM的控制器中没有未完成的写请求。

5.根据权利要求1或2所述的方法,其特征在于,所述清除命令为第五代双倍数据速率DDR5接口下的NVDIMM-P协议中的命令代码,或者,所述清除命令为第四代双倍数据速率DDR4接口下的NVDIMM-P协议中的命令代码。

6.一种写入信息的方法,其特征在于,应用于非易失性双列直插内存模块NVDIMM,所述NVDIMM包括NVDIMM控制器和非易失性存储器NVM,所述方法包括:主机根据所述NVM的类型生成清除命令,所述清除命令用于命令所述NVDIMM控制器以第一写模式清除所述NVM中的数据,所述第一写模式为至少两种在所述NVM上写入信息的模式中的一种,其中,所述清除命令指示所述NVDIMM控制器写入的信息与所述NVM在省电写入模式下写入的信息相同;

所述主机向所述NVDIMM控制器发送所述清除命令。

7.根据权利要求6所述的方法,其特征在于,所述主机向所述NVDIMM控制器发送所述清除命令,包括:所述主机通过命令总线向所述NVDIMM控制器发送第一命令。

8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:所述主机向所述NVDIMM控制器发送跟踪命令,所述跟踪命令用于跟踪所述清除命令的执行情况。

9.根据权利要求6或7所述的方法,其特征在于,

所述方法还包括:

所述主机向所述NVDIMM控制器发送第一检查命令,所述第一检查命令用于命令所述NVDIMM控制器检查缓冲器是否有未完成的读请求和/或写请求;

所述主机从所述NVDIMM控制器接收第一检查结果,所述第一检查结果用于指示所述缓冲器中没有未完成的读请求和/或写请求;

所述主机向所述NVDIMM控制器发送第二检查命令,所述第二检查命令用于命令所述NVDIMM控制器检查所述NVM的控制器中是否有未完成的写请求;

所述主机从所述NVDIMM控制器接收第二检查结果,所述第二检查结果用于指示所述NVM的控制器中没有未完成的写请求;

所述主机向所述NVDIMM控制器发送所述清除命令,包括:

所述主机根据所述第一检查结果和所述第二检查结果向所述NVDIMM控制器发送所述清除命令。

10.根据权利要求6或7所述的方法,其特征在于,所述清除命令为第五代双倍数据速率DDR5接口下的NVDIMM-P协议中的命令代码,或者,所述清除命令为第四代双倍数据速率DDR4接口下的NVDIMM-P协议中的命令代码。

11.一种NVDIMM,其特征在于,包括NVDIMM控制器和非易失性存储器NVM和通信单元,所述通信单元用于从主机接收清除命令,所述清除命令用于命令所述NVDIMM控制器以第一写模式清除所述NVM中的数据,所述第一写模式为至少两种在所述NVM上写入信息的模式中的一种;

所述NVDIMM控制器用于根据所述通信单元接收的所述清除命令在所述NVM中写入信息;

所述清除命令指示所述NVDIMM控制器写入的信息与所述NVM在省电写入模式下写入的信息相同。

12.根据权利要求11所述的NVDIMM,其特征在于,所述通信单元具体用于:通过命令总线从所述主机接收所述清除命令。

13.根据权利要求11或12所述的NVDIMM,其特征在于,所述NVDIMM控制器还用于:将清除状态设置为可读状态,所述可读状态表示允许所述主机跟踪所述清除命令的执行情况。

14.根据权利要求11或12所述的NVDIMM,其特征在于,所述通信单元还用于:从所述主机接收第一检查命令,所述第一检查命令用于命令所述NVDIMM控制器检查缓冲器中是否有未完成的读请求和/或写请求;

所述NVDIMM控制器还用于:根据所述第一检查命令检查所述缓冲器;

所述通信单元还用于:向所述主机发送第一检查结果,所述第一检查结果用于指示所述缓冲器中没有未完成的读请求和/或写请求;

所述通信单元还用于:从所述主机接收第二检查命令,所述第二检查命令用于命令所述NVDIMM控制器检查所述NVM的控制器中是否有未完成的写请求;

所述NVDIMM控制器还用于:根据所述第二检查命令检查所述NVM的控制器;

所述通信单元还用于:向所述主机发送第二检查结果,所述第二检查结果用于指示所述NVM的控制器中没有未完成的写请求。

15.根据权利要求11或12所述的NVDIMM,其特征在于,所述清除命令为第五代双倍数据速率DDR5接口下的NVDIMM-P协议中的命令代码,或者,所述清除命令为第四代双倍数据速率DDR4接口下的NVDIMM-P协议中的命令代码。

16.一种主机,其特征在于,用于控制非易失性双列直插内存模块NVDIMM写入信息,所述NVDIMM包括NVDIMM控制器和非易失性存储器NVM,所述主机包括控制单元和通信单元,所述控制单元用于:根据所述NVM的类型生成清除命令,所述清除命令用于命令所述NVDIMM控制器以第一写模式清除所述NVM中的数据,所述第一写模式为至少两种在所述NVM上写入信息的模式中的一种,其中,所述清除命令指示所述NVDIMM控制器写入的信息与所述NVM在省电写入模式下写入的信息相同;

所述通信单元用于:向所述NVDIMM控制器发送所述控制单元生成的清除命令。

17.根据权利要求16所述的主机,其特征在于,所述通信单元用于:所述主机通过命令总线向所述NVDIMM控制器发送第一命令。

18.根据权利要求16或17所述的主机,其特征在于,所述通信单元用于:所述主机向所述NVDIMM控制器发送跟踪命令,所述跟踪命令用于跟踪所述清除命令的执行情况。

19.根据权利要求16或17所述的主机,其特征在于,

所述通信单元还用于:向所述NVDIMM控制器发送第一检查命令,所述第一检查命令用于命令所述NVDIMM控制器检查缓冲器是否有未完成的读请求和/或写请求;

所述通信单元还用于:从所述NVDIMM控制器接收第一检查结果,所述第一检查结果用于指示所述缓冲器中没有未完成的读请求和/或写请求;

所述通信单元还用于:向所述NVDIMM控制器发送第二检查命令,所述第二检查命令用于命令所述NVDIMM控制器检查所述NVM的控制器中是否有未完成的写请求;

所述通信单元还用于:从所述NVDIMM控制器接收第二检查结果,所述第二检查结果用于指示所述NVM的控制器中没有未完成的写请求;

所述通信单元具体用于:根据所述第一检查结果和所述第二检查结果向所述NVDIMM控制器发送所述清除命令。

20.根据权利要求16或17所述的主机,其特征在于,所述清除命令为第五代双倍数据速率DDR5接口下的NVDIMM-P协议中的命令代码,或者,所述清除命令为第四代双倍数据速率DDR4接口下的NVDIMM-P协议中的命令代码。

说明书 :

写入信息的方法和装置

技术领域

[0001] 本申请涉及计算机领域,尤其涉及一种写入信息的方法和装置。

背景技术

[0002] 非易失性双列直插内存模块(non-volatile dual in-line memory module,NVDIMM)是一种集成了随机访问存储器(random access memory,RAM)和非易失性存储器(non-volatile memory,NVM)的存储器。NVDIMM包括不同的产品,其中,P型NVDIMM(NVDIMM-P)是最近出现的一种NVDIMM。一个典型的NVDIMM-P包括内存总线、控制器、动态随机访问存储器(dynamic random access memory,DRAM)和闪存(flash)。
[0003] 相对于双列直插内存模块(dual in-line memory module,DIMM),NVDIMM保存的数据包括持久性数据,因而能够在主机(host)断电时避免数据丢失,提高了主机的可靠性。然而,NVDIMM中保存的持久性数据很容易被窃取,因此,NVDIMM在提高了主机的可靠性的同时也增大了安全风险。此外,对持久性数据的长期读写也会降低闪存的存储性能,例如,长期对闪存的读写使得闪存出现内存泄露(memory leak)现象。为了解决上述问题,需要对NVDIMM中的持久性数据进行清除操作(sanitize operation),在清除操作前,NVM中的需要保存的数据已经保存到其它存储器中了,其它存储器例如是固态磁盘(solid state disk,SSD)。此时,NVM中存储的信息都属于无用信息,通过清除操作可以清除NVM保存的全部信息,该全部信息包括用户数据和元数据(metadata),使得NVM的存储状态转变为初始状态,从而解决了上述问题。
[0004] 然而,现有技术在对NVDIMM中的持久性数据进行清除操作时存在耗电量较大的问题,如何减小清除操作时的电能消耗是当前亟需解决的问题。

发明内容

[0005] 本申请提供了一种写入信息的方法和装置,可以解决上述问题。
[0006] 第一方面,提供了一种写入信息的方法,应用于NVDIMM,该NVDIMM包括NVDIMM控制器和NVM,该方法包括:NVDIMM控制器从主机接收清除命令,清除命令用于命令NVDIMM控制器以第一写模式清除NVM中的数据,第一写模式为至少两种在NVM上写入信息的模式中的一种;NVDIMM控制器根据所述清除命令在所述NVM中写入信息。
[0007] 可选地,清除命令指示NVDIMM控制器写入的信息与NVM在省电写入模式下写入的信息相同。
[0008] 可选地于,NVDIMM控制器从主机接收清除命令,包括:NVDIMM控制器通过命令总线从主机接收清除命令。
[0009] 可选地,所述方法还包括:NVDIMM控制器将清除状态设置为可读状态,可读状态表示允许主机跟踪清除命令的执行情况。
[0010] 可选地,NVDIMM控制器从主机接收清除命令之前,所述方法还包括:NVDIMM控制器从主机接收第一检查命令,第一检查命令用于命令NVDIMM控制器检查缓冲器中是否有未完成的读请求和/或写请求;NVDIMM控制器根据第一检查命令检查缓冲器;NVDIMM控制器向主机发送第一检查结果,第一检查结果用于指示缓冲器中没有未完成的读请求和/或写请求;NVDIMM控制器从主机接收第二检查命令,第二检查命令用于命令NVDIMM控制器检查NVM的控制器中是否有未完成的写请求;NVDIMM控制器根据所述第二检查命令检查所述NVM的控制器;NVDIMM控制器向主机发送第二检查结果,第二检查结果用于指示NVM的控制器中没有未完成的写请求。
[0011] 可选地,清除命令为DDR5接口下的NVDIMM-P协议中的命令代码,或者,所述清除命令为DDR4接口下的NVDIMM-P协议中的命令代码。
[0012] 第二方面,提供了一种写入信息的方法,应用于NVDIMM,该NVDIMM包括NVDIMM控制器和NVM,所述方法包括:主机生成清除命令,该清除命令用于命令NVDIMM控制器以第一写模式清除NVM中的数据,第一写模式为至少两种在NVM上写入信息的模式中的一种;主机向所NVDIMM控制器发送清除命令。
[0013] 可选地,主机生成清除命令,包括:主机根据NVM的类型生成清除命令,其中,清除命令指示NVDIMM控制器写入的信息与NVM在省电写入模式下写入的信息相同。
[0014] 可选地,主机向NVDIMM控制器发送清除命令,包括:主机通过命令总线向所述NVDIMM控制器发送所述第一命令。
[0015] 可选地,所述方法还包括:主机向NVDIMM控制器发送跟踪命令,跟踪命令用于跟踪所述清除命令的执行情况。
[0016] 可选地,所述方法还包括:主机向NVDIMM控制器发送第一检查命令,第一检查命令用于命令NVDIMM控制器检查缓冲器是否有未完成的读请求和/或写请求;主机从NVDIMM控制器接收第一检查结果,第一检查结果用于指示缓冲器中没有未完成的读请求和/或写请求;主机向NVDIMM控制器发送第二检查命令,第二检查命令用于命令NVDIMM控制器检查所述NVM的控制器中是否有未完成的写请求;主机从NVDIMM控制器接收第二检查结果,第二检查结果用于指示NVM的控制器中没有未完成的写请求;
[0017] 所述主机向NVDIMM控制器发送所述清除命令,包括:主机根据所述第一检查结果和所述第二检查结果向所述NVDIMM控制器发送所述清除命令。
[0018] 可选地,清除命令为DDR5接口下的NVDIMM-P协议中的命令代码,或者,清除命令为DDR4接口下的NVDIMM-P协议中的命令代码。
[0019] 第三方面,提供了一种写入信息的装置,该装置可以实现上述第一方面所涉及的方法中NVDIMM控制器所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的单元或模块。在一种可能的设计中,该装置为芯片。
[0020] 第四方面,提供了一种写入信息的装置,该装置可以实现上述第二方面所涉及的方法中主机所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的单元或模块。在一种可能的设计中,该装置为芯片。
[0021] 第五方面,本申请还提供了一种计算机系统,所述计算机系统包括第三方面所述的写入信息的装置以及第四方面所述的写入信息的装置。
[0022] 第六方面,本申请还提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码被NVDIMM控制器运行时,使得NVDIMM控制器执行上述第一方面的方法。
[0023] 第七方面,本申请还提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码被主机运行时,使得主机执行上述第二方面的方法。

附图说明

[0024] 图1是一种适用于本申请的NVDIMM的示意性结构图;
[0025] 图2是本申请提供的一种写入信息的方法的示意图;
[0026] 图3是本申请提供的一种准备清除操作的方法的示意性流程图;
[0027] 图4示出了适用于DDR4NVDIMM-P协议的中止清除操作的示意性流程图;
[0028] 图5示出了适用于DDR5 NVDIMM-P协议的中止清除操作的示意性流程图;
[0029] 图6示出了本申请提供的一种在DDR4接口或DDR5接口下的清除操作流程图;
[0030] 图7示出了本申请提供的另一种在DDR4接口下的清除操作流程图;
[0031] 图8示出了本申请提供的另一种在DDR5接口下的清除操作流程图。

具体实施方式

[0032] 下面将结合附图,对本申请中的技术方案进行描述。
[0033] 图1示出了适用于本申请的一种NVDIMM。如图1所示,NVDIMM包括控制器、缓冲器(buffer)、RAM、NVM、通信接口和电源,NVDIMM还可以包括缓存器(cache),当NVDIMM包括缓存器时,缓存器可以集成在NVDIMM上,也可以集成在控制器上。其中,控制器可以分别与RAM和NVM通信,控制器还可以通过通信接口与处理器或其它模块通信,主机可以通过通信接口读缓冲器中的数据或者在缓冲器中写入数据,电源用于为NVDIMM供电,以便于NVDIMM在主机断电时可以将数据存储在NVM中。通信接口例如是符合第四代双倍数据速率(double data rate 4,DDR4)标准的接口,这种接口简称为DDR4接口;通信接口也可以是符合第五代双倍数据速率(double data rate 5,DDR5)标准的接口,这种接口简称为DDR5接口。相应地,控制器在访问RAM或NVM时也会通过DDR4接口或者DDR5接口读写数据。
[0034] RAM的读写速率快,用于存储非持久性数据,NVM的读写速率慢,用于存储持久性数据。当主机断电时,主机向NVDIMM的控制器发送保存(save)信号,指示NVDIMM控制器将RAM中的数据刷新至NVM中,从而可以在异常断电时保护数据。
[0035] 图1所示的NVDIMM仅是举例说明,适用于本申请的NVDIMM不限于此,例如,缓冲器可以集成在控制器中,控制器可以集成在NVM或RAM中,电源可以是一个独立的器件,而非图1所示的集成于NVDIMM上的器件。需要说明的是,NVM也可以有一个独立的控制器,即,NVM控制器,其中,NVM控制器可以集成在图1所示的NVDIMM控制器中,也可以集成在NVM中,还可以作为独立的器件集成在NVDIMM中。
[0036] 此外,RAM例如可以是DRAM,也可以是静态随机访问存储器(static random access memory,SRAM),还可以是其它类型的RAM。NVM例如可以是闪存或X-Point,也可以是其它类型的NVM,电源例如可以是超级电容(supercapacitor)。
[0037] 下面,以NVDIMM-P为例对本申请提供的写入信息的方法进行详细描述。
[0038] 图2示出了本申请提供的一种写入信息的方法。方法200包括:
[0039] S201,NVDIMM控制器从主机接收清除命令,该清除命令用于命令NVDIMM控制器以第一写模式清除NVM中的数据,第一写模式为至少两种在NVM上写入信息的模式中的一种。
[0040] S202,该NVDIMM控制器根据上述清除命令在NVM中写入信息。
[0041] S201中,主机可以是中央处理器(central processing unit,CPU),也可以是专用集成电路(application specific integrated circuit,ASIC),还可以是其它类型的主机,本申请对此不作限定。
[0042] 众所周知,NVM通过状态“0”和状态“1”存储数据。不同类型的NVM具有不同的介质,对于一些介质来说,写入“0”比写入“1”消耗的电量多;对于另外一些介质来说,写入“1”比写入“0”消耗的电量多,因此,主机可以根据NVM介质的类型选择合适的写模式。
[0043] 例如,可以在NVDIMM-P协议中定义两种写模式,分别为第一写模式和第二写模式,第一写模式为全部写入“0”,第二写模式为全部写入“1”,当S201中NVM的介质写入“1”比写入“0”消耗的电量多时,主机可以向NVDIMM控制器发送指示第一写模式的清除命令,从而可以减小NVDIMM在执行清除操作时的电量消耗。
[0044] 上述实施例简单易实施,然而,由于NVDIMM可能包括两种或两种以上的类型的NVM,因此,作为一种可选的实施方式,方法200中的清除命令指示NVDIMM控制器写入的信息与所述NVM在省电写入模式下写入的信息相同。
[0045] 例如,NVM由第一模块和第二模块组成,第一模块的介质写入“1”比写入“0”消耗的电量多,第二模块的介质写入“0”比写入“1”消耗的电量多,则S201中的清除命令所指示的第一写模式为:在第一模块中写入“0”,在第二模块中写入“1”。从而减小了NVDIMM在执行清除操作时的电量消耗。
[0046] 又例如,可以通过DDR4接口下的NVDIMM-P协议中的命令代码或者DDR5接口下的NVDIMM-P协议中的命令代码命令NVDIMM控制器通过8-比特(bit)写模式在NVM中写入“0”和/或“1”,其中,8-bit写模式表示每次在NVM中写入8个比特,相比于一次在NVM中全部写“0”或“1”,8-bit写模式具有更好的灵活性和兼容性,可以适应更多的应用场景,例如,当NVM中的数据部分需要清除部分需要保留时,可以使用8-bit写模式进行清除操作。
[0047] 若主机不确定NVM的类型,则主机可以指示NVDIMM控制器使用NVM的制造商的写模式在NVM中写入信息,此时,第一写模式即制造商写模式(vendor-specific pattern)。
[0048] 表1示出了DDR5接口下的NVDIMM-P协议的命令代码,表2示出了DDR4接口下的NVDIMM-P协议的命令代码。其中,DDR5接口下的NVDIMM-P协议也可称为DDR5 NVDIMM-P协议,DDR4接口下的NVDIMM-P协议也可称为DDR4NVDIMM-P协议。
[0049] 表1
[0050]  CA0 CA1 CA2 CA3 CA4
RFU#0 H H L L L
RFU#1 H H L L H
RFU#2 H H L H L
RFU#3 H H L H H
RFU#4 H H H L L
[0051] 表2
[0052]
[0053] 表1和表2中,“H”表示高电平,“L”表示低电平。在本申请的其它表格中,“H”和“L”的含义与表1和表2中“H”和“L”的含义相同。
[0054] 此外,表1中的CA表示命令地址位(command address),RFU表示数据读写指令中的预留位。表2中,ACT_n、RAS_n/A16、CAS_n/A15、WE_n/A14、A17、A12/BC_n、A13和A11分别表示数据读写指令中各个比特位的位置标识,FLUSH表示将NVDIMM的缓存器(cache)和缓冲器中的数据写到NVM中,IOP表示留给NVDIMM控制器一段时间来进行NVDIMM内部操作。表1和表2均表示清除命令可以使用的命令编码。
[0055] 需要说明的是,表1和表2只显示了清除命令中的部分比特位,S201中的清除命令还可以包括其它信息。
[0056] 下面,再举几个可能的清除命令的例子。
[0057] 表3
[0058]
[0059] 表3中,清除命令即NVDIMM控制器从主机接收的清除命令,其中,ERASE[1:0]表示由比特“1”和“0”的四种状态指示的四种写模式。PATTERN表示写模式的具体内容,例如,表示8-bit“0”或8-bit“1”。
[0060] 表4示出了ERASE[1:0]的具体含义。
[0061] 表4
[0062]ERASE[1:0] 含义
00 在NVDIMM-P的所有比特位写入“0”
01 在NVDIMM-P的所有比特位写入“1”
10 清除命令指示的8-bit写模式(on 2nd clock)
11 NVDIMM-P制造商的8-bit写模式
[0063] 表4仅是举例说明,ERASE[1:0]的四种状态与四种擦除模式还可以有其它的对应方式。例如,“00”表示在NVDIMM-P的所有比特位写入“1”,“01”表示在NVDIMM的所有比特位写入“0”。表4中,“on 2nd clock”表示在第二个命令总线的时钟周期。
[0064] 表3分别示DDR4接口下NVDIMM-P协议中可能的清除命令,下面,再举出一个DDR5接口下NVDIMM-P协议中可能的清除命令。
[0065] 表5
[0066]
[0067] 表5中ERASE[1:0]的含义如表6所示。表5中的清除命令即NVDIMM控制器从主机接收的清除命令。PATTERN[7:4]和PATTERN[3:0]表示写模式,即,在NVM中写入的信息具体是哪些比特。
[0068] 表6
[0069] ERASE[1:0] 含义00 在NVDIMM的所有比特位写入“0”
01 在NVDIMM的所有比特位写入“1”
10 清除命令指示的8-bit写模式(on 2nd clock)
11 MR48中存储的8-bit写模式
[0070] 表6仅是举例说明,ERASE[1:0]的四种状态与四种擦除模式还可以有其它的对应方式。例如,“00”表示在NVDIMM的所有比特位写入“1”,“01”表示在NVDIMM的所有比特位写入“0”。MR48表示在NVDIMM控制器中模式寄存器(mode register,MR)48,写模式还可以存储在NVDIMM控制器中的其它MR中。
[0071] NVDIMM控制器从主机接收到清除命令后,即可启动内部清除机制,执行清除操作,即,在NVM中写入信息。
[0072] 上文详细描述了本申请提供的一种写入信息的方法,并给出了一些可能的清除命令,应理解,上述实施例均是举例说明,本申请提供的写入信息的方法不限于此。下面,再给出本申请提供的另一种写入信息的方法。在下述方法中,主机通过写模式寄存器(mode register,MR)触发NVDIMM控制器执行清除处理操作。
[0073] 在通过写MR触发NVDIMM控制器执行清除处理操作的方法中,主机首先向MR发送一个命令,该命令将MR中的比特位设置为触发NVDIMM控制器执行清除处理操作,当NVDIMM控制器读到MR中的该比特位时,即可执行清除操作。
[0074] 主机向MR可以通过命令总线向MR发送上述命令,从而避免了现有技术中通过I2C接口写寄存器导致的主机无法访问其它内存模块的问题。
[0075] 表7
[0076]
[0077] 表7中,MRS即主机在DDR4接口下向MR发送的命令。V表示有效(valid),即,无论信号的电平是高或低,该比特位都是有效的。OPCODE表示操作码。CKE0、CS_n、ACT_n、RAS_n/A16、CAS_n/A15、WE_n/A14、C0_C2、BG0_BG1、BA0_BA1、A17、A12/BC_n、A13、A11、A10/AP、A9、A8、A0_A7表示数据读写指令中各个比特位的位置标识。主机可以通过表7中OPCODE的空闲位指示是否执行清除操作。OPCODE还用于指示写入寄存器的具体值。
[0078] 表8
[0079]
[0080] 表8示出的是在DDR5接口下向MR50发送的命令,主机可以使用模式寄存器清除命令(mode register write,MRW)写表8所示的进入清除功能的OP比特位命令NVDIMM控制器进入清除模式。NVDIMM控制器可以通过更新清除状态功能的OP比特位指示当前的清除状态。W表示可写的,R表示只可读的,TBD表示有待定义。
[0081] NVDIMM控制器可以通过边缘总线(side bus)或命令总线(command bus)接收清除命令,其中,边缘总线即I2C接口,由软件控制,命令总线由硬件(例如,内存控制器)控制,NVDIMM控制器可以通过命令总线从主机接收第一清除命令,通过命令总线接收第一清除命令不会影响内存控制器对其它内存模块的访问。因此,作为一种可选的实施方式,NVDIMM控制器从主机接收清除命令,包括:
[0082] S203,NVDIMM控制器通过命令总线从主机接收第一清除命令。
[0083] 由于NVDIMM在执行清除操作时可能会出现错误,因此,主机有必要监控NVDIMM的清除操作的过程,即,跟踪清除命令的执行情况,作为一种可选的实施方式,方法200还包括:
[0084] S204,NVDIMM控制器将清除状态设置为可读状态,该可读状态表示允许主机跟踪清除命令的执行情况。
[0085] 下面举出几个跟踪清除命令的执行情况的实施例。
[0086] 表9
[0087]
[0088] 如表9所示,主机首先向地址(BG0,BA1:BA0)发送命令,选择MR,例如,可以选择MR5,将将MR5中的A10比特位设置为1,使得NVDIMM进入清除模式。随后主机可以选择MR3,然后激活(enable)MR3的A[2]比特位,即,将清除状态设置为可读状态,将接下来主机的内存控制器就可以读取MPR第二页(MPR Page2)了。MPR表示多功能寄存器(multipurpose register),上述MPR位于NVM中,内存控制器可以使用MPR读命令(MPR read)读取MPR第二页的MPR0[7],MPR0[7]在MPR第二页中的位置如表10所示,其中,当清除状态为“1”时,表示NVDIMM内部的清除操作正在进行(sanitize in progress),当清除状态为“0”时,表示NVDIMM内部的清除操作已完成(sanitize complete)。也可以用“0”表示NVDIMM内部的清除操作正在进行,用“1”表示NVDIMM内部的清除操作已完成。
[0089] 表10
[0090]
[0091]
[0092] 表11
[0093]
[0094]
[0095] 上述实施例适用于主机通过DDR4接口跟踪清除命令的执行情况。由于主机可以在DDR5接口下NVDIMM-P协议中直接通过模式寄存器读命令(mode register read,MRR)跟踪清除操作的状态,因此,无需NVDIMM控制器设置清除状态。若主机通过DDR5接口跟踪清除命令的执行情况,则可以通过读取表8中的清除状态的OP比特位跟踪清除命令的执行情况。
[0096] 若主机在跟踪清除命令的执行情况的过程中遇到错误或者其它情况,则可以命令NVDIMM控制器中止清除操作。下文会详细描述如何执行中止清除操作。
[0097] 为了确保清除操作不会引起数据丢失或者CPU执行错误等问题,主机需要等待NVDIMM中不存在所有未完成的请求,在等待期间,主机仅可以向NVDIMM控制器发送发送命令(send command)。主机可以通过下述方法确定NVDIMM已完成所有的请求。
[0098] 作为一种可选的实施方式,NVDIMM控制器从主机接收清除命令之前,方法200还包括:
[0099] S205,NVDIMM控制器从主机接收第一检查命令,该第一检查命令用于命令NVDIMM控制器检查缓冲器中是否有未完成的读请求和/或写请求。
[0100] S206,NVDIMM控制器根据第一检查命令检查缓冲器。
[0101] S207,NVDIMM控制器向主机发送第一检查结果,第一检查结果用于指示缓冲器中没有未完成的读请求和/或写请求。
[0102] S208,NVDIMM控制器从主机接收第二检查命令,该第二检查命令用于命令NVDIMM控制器检查NVM的控制器中是否有未完成的写请求。
[0103] S209,NVDIMM控制器根据第二检查命令检查NVM的控制器。
[0104] S210,NVDIMM控制器向主机发送第二检查结果,第二检查结果用于指示NVM的控制器中没有未完成的写请求。
[0105] S205和S208没有先后顺序,相应地,S206和S209也没有先后顺序,S207和S210也没有先后顺序。
[0106] 当缓冲器和NVM的控制器中都不存在未完成的请求时,NVDIMM控制器才可以执行清除操作。
[0107] 图3示出了本申请提供的一种准备清除操作的方法。
[0108] 当内存控制器收到了处理器的清除请求时,内存控制器首先要等待已经发送给NVDIMM的请求完成。内存控制器发送给NVDIMM的请求包括XREAD、PWRITE和FLUSH。为了完成这些请求,内存控制器可以向NVDIMM发送发送命令,以便于NVDIMM将上述请求的处理结果反馈给内存控制器。内存控制器还要将写信用计数器(write credit counter)设置为最大值。
[0109] 随后内存控制器向NVDIMM发送读状态(READ_STATUS)命令,命令NVDIMM控制器检查缓冲器,并根据NVDIMM控制器返回的结果判断所有的可用写信用(available write credits,AWB)值是否等于写信用(write credit,WC)的初始值,若AWB值不等于WC的初始值,说明缓冲器中还有未完成的PWRITE和/或PWRITE,返回上一步,继续等待。
[0110] 随后内存控制器再次向NVDIMM发送读状态(READ_STATUS)命令,命令NVDIMM控制器检查NVM的控制器,即,检查写组标识(write group identification,WGID)位图,WGID位图包括还未完成的PWRITE的标识,内存控制器根据NVDIMM控制器返回的结果判断NVM的控制器中是否还有未完成的PWRITE,若有未完成的PWRITE,说明之前内存控制器发送的发送命令可能丢失了,则内存控制器返回上一步,继续等待。
[0111] 内存控制器也可以先命令NVDIMM控制器检查WGID位图,再命令NVDIMM控制器检查缓冲器。无论如何,最终内存控制器都需要等待NVDIMM中不存在未完成的命令之后才能初始化清除操作,即,向NVDIMM控制器发送清除命令。
[0112] 上文提到,若主机在跟踪清除命令的执行情况的过程中遇到错误或者其它情况,则可以命令NVDIMM中止清除操作,下面给出两个NVDIMM中止清除操作的实施例。
[0113] 如图4所示,主机的内存控制器发送MRS命令更新MR5 A10比特位(DDR4 NVDIMM),NVDIMM根据上述命令执行清除操作,包括:清空命令/写入/输出缓冲;重置WC计数器和WGID位图;将表示清除状态的MR比特更新为“1”,以表示清除操作正在进行;使用8-bit写模式覆盖(overwrite)NVM地址空间的数据;将表示清除状态的MR比特更新为“0”,以表示清除操作已完成;生成携带有效比特位“DIMM ready”的信息包,若中止成功,则“DIMM ready”的有效比特位为“1”,若中止失败,则“DIMM ready”的有效比特位为“0”;把RSP_R线拉低6个时钟周期生成URGENT信号,并发送给内存控制器;接收内存控制器发送的发送命令;根据该发送命令返回上述携带w/“DIMM ready”的信息包。主机可以尝试中止清除操作的最大次数为HOST_MAX_OPERATION_RETRY。
[0114] 图5示出了适用于DDR5 NVDIMM-P协议的中止清除操作的流程图。由图5可知,主机内存控制器通过发送MRS命令查询MPR流,当MPR流(flow)有效(enable)时,NVDIMM会根据接收到的MPR读命令返回(return)MPR第二页,当MPR流失效(disable)时,NVDIMM不会返回任何信息。主机内存控制器可以根据没有接收到MPR第二页确定清除操作出现问题,并决定终止清除操作,通过发送MRS命令重置(reset)MR5 A10比特位,NVDIMM根据MR5 A10比特位的指示更新(update)表示清除操作完成的MR比特位,并准备(prepare)携带有效比特位“DIMM ready”的信息包,若中止成功,则“DIMM ready”的有效比特位为“1”,若中止失败,则“DIMM ready”的有效比特位为“0”;把RSP_R线拉低6个时钟周期生成URGENT信号,并发送给内存控制器;接收内存控制器发送的发送命令;根据该发送命令返回上述携带w/“DIMM ready”的信息包。主机可以尝试中止清除操作的最大次数为HOST_MAX_OPERATION_RETRY。
[0115] 图6示出了本申请提供的一种在DDR4接口或DDR5接口下的清除操作流程图。
[0116] 图7示出了本申请提供的另一种在DDR4接口下的清除操作流程图。
[0117] 图8示出了本申请提供的另一种在DDR5接口下的清除操作流程图。
[0118] 在本申请各个实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施过程构成任何限定。
[0119] 另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0120] 以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。