一种数据稳定性检测方法与流程

文档序号:17096122发布日期:2019-03-13 23:52阅读:528来源:国知局
一种数据稳定性检测方法与流程

本申请涉及通信领域,尤其涉及一种数据稳定性检测方法。



背景技术:

nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、mp3随身听记忆卡、体积小巧的u盘等。

随着存储技术的飞速发展,大数据的普及应用,大容量的nandflash越来越普遍,其中尤以3dtlcnandflash的应用最为广泛。通常大容量的u盘,emmc,ssd都是使用3dtlcnandflash来作为存储介质,由此对该种类型flash的存储数据的稳定性就有了更高的要求。nand型闪存以块为单位进行擦除操作。闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此擦除操作是闪存的基本操作。

在现有技术中,目前针对nandflash存储器的数据稳定性检测算法都是通过将编程后的数据读出来进行ecc(errorcorrectingcode,错误检查和纠正)校验的方式来进行,将nandflash存储器中所有数据dma(directmemoryaccess,直接内存存取)出来后才能知道ecc校验的结果。

然而,在该检测方法中,ecc校验需要把所有的数据读出来进行比对校验,从而导致检测时间的大幅度增加,对u盘,emmc,ssd的写速度有很大的影响,不仅降低了用户体验,同时在某些对数据写速度要求比较高的设备中,如果校验时间太长会导致超时,从而引起兼容性问题。



技术实现要素:

本申请实施例提供了一种数据稳定性检测方法及相关设备,用于节省存储器中数据稳定性检测的处理时间,提升用户体验。

本申请实施例第一方面提供了一种数据稳定性检测方法,包括:

获取待存储数据;

将所述待存储数据传输至所述存储器;

向所述存储器发送读状态指令;

接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到;

根据所述状态值确定所述存储器中数据的存储状态。

可选地,在向所述存储器发送读状态指令之前,所述方法还包括:

向所述存储器发送编程指令,获取rb信号;

当确定所述rb信号由低电平变为高电平时,执行向所述存储器发送读状态指令。

可选地,将所述待存储数据传输至所述存储器包括:

控制所述存储器进入编程模式;

将所述待存储数据dma至所述存储器。

可选地,在将所述待备份数据传输至所述存储器之前,所述方法还包括:

将所述待存储数据进行备份存放。

可选地,所述待存储数据包括第一数据块和第二数据块;在根据所述状态值确定所述存储器中数据的存储状态之后,所述方法还包括:

若所述存储状态指示所述第一数据块正确且所述第二数据块未写入,则将所述第二数据块传输至所述存储器;

向所述存储器发送目标读状态指令;

接收所述存储器发送的目标状态值,所述目标状态值为所述存储器根据所述目标读状态指令生成得到;

根据所述目标状态值确定所述存储器中第二数据块的存储状态。

本申请实施例第二方面提供了一种数据稳定性检测系统,包括:

获取单元,用于获取待存储数据;

第一传输单元,用于将所述待存储数据传输至所述存储器;

第一发送单元,用于向所述存储器发送读状态指令;

第一接收单元,用于接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到;

第一确定单元,用于根据所述状态值确定所述存储器中数据的存储状态。

可选地,所述系统还包括:

第二发送单元,用于向所述存储器发送编程指令,获取rb信号;

执行单元,用于当确定所述rb信号由低电平变为高电平时,执行向所述存储器发送读状态指令。

可选地,所述传输单元具体用于:

控制所述存储器进入编程模式;

将所述待存储数据dma至所述存储器。

可选地,所述系统还包括:

备份单元,用于将所述待存储数据进行备份存放。

可选地,所述待存储数据包括第一数据块和第二数据块;所述系统还包括:

第二传输单元,用于若所述存储状态指示所述第一数据块正确且所述第二数据块未写入,则将所述第二数据块传输至所述存储器;

第三发送单元,用于向所述存储器发送目标读状态指令;

第二接收单元,用于接收所述存储器发送的目标状态值,所述目标状态值为所述存储器根据所述目标读状态指令生成得到;

第二确定单元,用于根据所述目标状态值确定所述存储器中第二数据块的存储状态。

本申请实施例第三方面提供了一种计算机装置,包括:

处理器、存储器、输入输出设备以及总线;

所述处理器、存储器、输入输出设备分别与所述总线相连;

所述处理器用于执行如前述实施例所述的方法。

本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现如前述实施例所述方法的步骤。

从以上技术方案可以看出,本申请实施例具有以下优点:本实施例中,获取待存储数据;将所述待存储数据传输至所述存储器;向所述存储器发送读状态指令;接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到;根据所述状态值确定所述存储器中数据的存储状态。因此,根据所述状态值确定所述存储器中数据的存储状态,与现有技术中ecc校验过程通过将所有数据读出来进行比对校验相比,节省了存储器中数据稳定性检测的处理时间,从而提升了用户体验。

附图说明

图1为本申请实施例中一种数据稳定性检测方法实施例的一个示意图;

图2为本申请实施例中一种数据稳定性检测方法实施例的另一个示意图;

图3为本申请实施例中一种数据稳定性检测方法实施例的另一个示意图;

图4为本申请实施例中一种数据稳定性检测方法实施例的另一个示意图;

图5为本申请实施例中一种数据稳定性检测方法实施例的另一个示意图;

图6为本申请实施例中一种数据稳定性检测系统实施例的一个示意图;

图7为本申请实施例中一种计算机装置的一个示意图。

具体实施方式

本申请实施例提供了一种数据稳定性检测方法及相关设备,用于节省存储器中数据稳定性检测的处理时间,提升用户体验。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于理解,下面对本申请实施例中的具体流程进行描述,请参阅图1,本申请实施例中一种数据稳定性检测方法的一个实施例包括:

101、获取待存储数据;

本实施例中,终端获取待存储数据,即确认出需要传输至数据存储器中的待存储数据。

具体地,本实施例可应用于nandflash数据存储器的处理,即通过终端与该存储器相连接,用于存储器中的数据稳定性检测。其中,该终端可以是个人电脑、笔记本、服务器或者是手机终端等,此处不作具体的限定。其中,nandflash数据存储器可以是3dtlcnandflash数据存储器,也可以是qlcnandflash数据存储器,还可以是其他形式的nandflash数据存储器,具体此处不做限定。

102、将所述待存储数据传输至所述存储器;

本实施例中,终端将步骤101中获取得到的待存储数据传输至存储器中。

具体来说,可以通过多种方式进行传输,例如spi(串行外设接口,serialperipheralinterface)的形式,dma(directmemoryaccess,直接内存存取),或者是其它的方式,具体此处不做限定。

103、向所述存储器发送读状态指令;

本实施例中,终端向该存储器发送读状态指令。

具体来说,该读状态指令可以是一个字节的指令(例如0x70),发完这个指令后,存储器会根据该指令生成一个字节的状态值。

104、接收所述存储器发送的状态值;

本实施例中,终端接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到。

105、根据所述状态值确定所述存储器中数据的存储状态。

本实施例中,该状态值为步骤103中存储器根据该指令生成一个字节的状态值,其中,每个状态值具备不同的含义,因此,终端从该状态值中查找出用于指示存储状态的状态值。从而根据该状态值确定出存储器中数据的存储状态。与现有技术中将数据全部读取后再对比验证相比,本实施例可以实现较大程度上的节省处理时间。

本实施例中,获取待存储数据;将所述待存储数据传输至所述存储器;向所述存储器发送读状态指令;接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到;根据所述状态值确定所述存储器中数据的存储状态。因此,根据所述状态值确定所述存储器中数据的存储状态,与现有技术中ecc校验过程通过将所有数据读出来进行比对校验相比,节省了存储器中数据稳定性检测的处理时间,从而提升了用户体验。

本申请实施例中,基于图1所述实施例,在步骤103向所述存储器发送读状态指令之前,具体还可以通过一个检测步骤,来判断是否完成数据写入用以确定是否执行步骤103,即是否执行向所述存储器发送读状态指令。下面请参阅图2,基于图1所述实施例,在步骤103之前,本申请实施例中一种数据稳定性检测方法的另一个实施例包括:

201、向所述存储器发送编程指令,获取rb信号;

本实施例中,具体在步骤102将所述待存储数据传输至所述存储器的过程中,确定出传输的对应数据页,然后向该存储器中的对应数据页发送编程指令,获取rb信号。

202、当确定所述rb信号由低电平变为高电平时,执行向所述存储器发送读状态指令。

本实施例中,当确定步骤201中获取得到的rb信号由低电平变为高电平时,即确定步骤201中对应数据页已完成编程,则执行向所述存储器发送读状态指令。即等到确认rb信号变为高电平时,再执行步骤103,避免数据传输出错。

本申请实施例中,基于图1或者图2所述的实施例,具体在步骤102中将所述待存储数据传输至所述存储器可以有多种方式,下面以dma传输方式进行介绍。请参阅图3,基于图1或者图2所述实施例,在步骤102的具体实现方式中,本申请实施例中一种数据稳定性检测方法的另一个实施例包括:

301、控制所述存储器进入编程模式;

本实施例中,当使用dma形式向存储器传输数据时,首先需要控制该存储器进入编程模式,进行数据的初始化后执行后续步骤。其中,可以是slc编程模式、tlc编程模式,或者是其它的编程模式,具体此处不做限定,在方案具体的实现过程中,可以通过预设的标准命令来进行切换。

302、将所述待存储数据dma至所述存储器。

本实施例中,终端将待存储数据dma至所述存储器中。

具体来说,dma传输将数据从一个地址空间复制到另外一个地址空间。当cpu初始化这个传输动作,传输动作本身是由dma控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作,因此,由于dma模块避免了数据在北桥和cpu之间的传递,大大提高了i/o速度。

本申请实施例中,基于图1、图2或者图3所述实施例具体在步骤102将所述待备份数据传输至所述存储器之前,还可以对待存储数据进行备份,用以保证数据的安全存储。请参阅图4,基于图1、图2或者图3所述实施例,在步骤102之钱,本申请实施例中一种数据稳定性检测方法的另一个实施例包括:

401、将所述待存储数据进行备份存放。

本实施例中,终端将步骤101获取确认出的待存储数据进行备份存放。

具体地,该备份过程是为了保存原始数据,在本实施例中执行这个备份过程,是因为原始数据在存储器接受完之后就会被丢弃,所以,为了后续可以找回该数据,可在步骤102之前首先进行待存储数据的备份存放。

本申请实施例中,在图1至图4的实施例中,待存储数据可以包括第一数据块和第二数据块,具体来说,在步骤105之后,根据所述状态值确定所述存储器中数据的存储状态之后,还可以对第一数据块和第二数据块进一步地实现数据传输的完整性。下面请参阅图5,基于图1至图4的实施例,在步骤105之后,本申请实施例中一种数据稳定性检测方法的另一个实施例包括:

501、若所述存储状态指示所述第一数据块正确且所述第二数据块未写入,则将所述第二数据块传输至所述存储器;

本实施例中,若所述存储状态指示所述第一数据块正确且所述第二数据块未写入,则终端将所述第二数据块传输至所述存储器。

具体地,该待存储数据在存储器中存在的形式可以有多种,当数据比较多时,可以通过多个数据块进行存储。本实施例中,示例性地,可以包括第一数据块和第二数据块,因此,在步骤105获取得到存储状态之后,可当该存储状态指示第一数据块正确且第二数据块未写入时,则将第二数据块传输至存储器。

502、向所述存储器发送目标读状态指令;

503、接收所述存储器发送的目标状态值,所述目标状态值为所述存储器根据所述目标读状态指令生成得到;

504、根据所述目标状态值确定所述存储器中第二数据块的存储状态。

本实施例中,步骤502至步骤504与前述步骤103至105类似,此处不再赘述。

此外,若待存储数据较多时,本实施例中的第二数据块可以包括多个数据块,即可以通过本实施例的方式进行多个数据块的存储检测(即循环操作),具体实现过程与本实施例类似。

上面从方法步骤的角度对本申请实施例进行了说明,下面从虚拟装置的角度对本申请实施例进行介绍,请参阅图6,本申请实施例中,一种数据稳定性检测系统的一个实施例包括:

获取单元601,用于获取待存储数据;

第一传输单元602,用于将所述待存储数据传输至所述存储器;

第一发送单元603,用于向所述存储器发送读状态指令;

第一接收单元604,用于接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到;

第一确定单元605,用于根据所述状态值确定所述存储器中数据的存储状态。

本实施例中,获取单元601,用于获取待存储数据;第一传输单元602,用于将所述待存储数据传输至所述存储器;第一发送单元603,用于向所述存储器发送读状态指令;第一接收单元604,用于接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到;第一确定单元605,用于根据所述状态值确定所述存储器中数据的存储状态。因此,根据所述状态值确定所述存储器中数据的存储状态,与现有技术中ecc校验过程通过将所有数据读出来进行比对校验相比,节省了存储器中数据稳定性检测的处理时间,从而提升了用户体验。

作为一个优选方案,所述系统还包括:

第二发送单元,用于向所述存储器发送编程指令,获取rb信号;

执行单元,用于当确定所述rb信号由低电平变为高电平时,执行向所述存储器发送读状态指令。

作为一个优选方案,所述传输单元具体用于:

控制所述存储器进入编程模式;

将所述待存储数据dma至所述存储器。

作为一个优选方案,所述系统还包括:

备份单元,用于将所述待存储数据进行备份存放。

作为一个优选方案,所述待存储数据包括第一数据块和第二数据块;所述系统还包括:

第二传输单元,用于若所述存储状态指示所述第一数据块正确且所述第二数据块未写入,则将所述第二数据块传输至所述存储器;

第三发送单元,用于向所述存储器发送目标读状态指令;

第二接收单元,用于接收所述存储器发送的目标状态值,所述目标状态值为所述存储器根据所述目标读状态指令生成得到;

第二确定单元,用于根据所述目标状态值确定所述存储器中第二数据块的存储状态。

下面从实体装置的角度对本申请实施例中的计算机装置进行描述,请参阅图7,本申请实施例中计算机装置的一个实施例包括:

该计算机装置700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)701(例如,一个或一个以上处理器)和存储器705,该存储器705中存储有一个或一个以上的应用程序或数据。

其中,存储器705可以是易失性存储或持久存储。存储在存储器705的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器701可以设置为与存储器705通信,在智能终端700上执行存储器705中的一系列指令操作。

该计算机装置700还可以包括一个或一个以上电源702,一个或一个以上有线或无线网络接口703,一个或一个以上输入输出接口704,和/或,一个或一个以上操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

处理器701具体用于执行以下步骤:

获取待存储数据;

将所述待存储数据传输至所述存储器;

向所述存储器发送读状态指令;

接收所述存储器发送的状态值,所述状态值为所述存储器根据所述读状态指令生成得到;

根据所述状态值确定所述存储器中数据的存储状态。

作为一个优选方案,在向所述存储器发送读状态指令之前,所述方法还包括:

向所述存储器发送编程指令,获取rb信号;

当确定所述rb信号由低电平变为高电平时,执行向所述存储器发送读状态指令。

作为一个优选方案,将所述待存储数据传输至所述存储器包括:

控制所述存储器进入编程模式;

将所述待存储数据dma至所述存储器。

作为一个优选方案,在将所述待备份数据传输至所述存储器之前,所述方法还包括:

将所述待存储数据进行备份存放。

作为一个优选方案,所述待存储数据包括第一数据块和第二数据块;在根据所述状态值确定所述存储器中数据的存储状态之后,所述方法还包括:

若所述存储状态指示所述第一数据块正确且所述第二数据块未写入,则将所述第二数据块传输至所述存储器;

向所述存储器发送目标读状态指令;

接收所述存储器发送的目标状态值,所述目标状态值为所述存储器根据所述目标读状态指令生成得到;

根据所述目标状态值确定所述存储器中第二数据块的存储状态。

可以理解的是,在本申请的各种实施例中,上述各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1