一种数据写入方法、介质及非易失性内存与流程

文档序号:17356885发布日期:2019-04-09 21:45阅读:170来源:国知局
一种数据写入方法、介质及非易失性内存与流程

本发明涉及数据存储领域,特别是涉及一种数据写入方法、介质及非易失性内存。



背景技术:

随着处理器和存储器之间性能差距越来越大,特别是处理器和外存(外存储器)之间读写频率的巨大差距使得i/o瓶颈问题日益突出。利用读写频率与处理器更为相近的内存作为处理器与外存之间的通信媒介,以此缓解处理器与外存之间的i/o瓶颈是当前所普遍采用的方式。

随着工业技术的进步,新型非易失性存储介质逐渐出现在人们的视野中,它可字节寻址和非易失的特性使得数据在内存级就可以持久化存储。非易失性存储介质的高密度、高读写速度越来越接近传统dram内存介质,以及其掉电数据不丢失数据的特性使得人们将其作为下一代内存产品的首选,当前对于非易失性内存的研究已经处于相对成熟的阶段,但是由于非易失性内存的存储介质在密度性方面与dram内存介质仍有一定差距,因此相同外形规格的非易失性内存与dram内存相比,非易失性内存的存储空间相对较少,这就需要在处理器工作过程中,确保数据能够以更加节省空间的方式写入到非易失性内存中,提高存储效率。

由此可见,提供一种数据写入方法,以相对确保数据能够以更加节省空间的方式写入到非易失性内存中,并相对提高存储效率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种数据写入方法、介质及非易失性内存,以相对确保数据能够以更加节省空间的方式写入到非易失性内存中,并相对提高存储效率。

为解决上述技术问题,本发明提供一种数据写入方法,应用于非易失性内存,包括:

接收待写入的目标数据;

判断存储空间中是否已写入有目标数据;

如果是,则停止执行对目标数据的写入操作;

否则,将目标数据写入至目标存储空间。

优选的,在判断存储空间中是否已写入有目标数据之前,该方法进一步包括:

对目标数据进行特征提取,生成目标特征值;

相应的,判断存储空间中是否已写入有目标数据具体为:

根据预设的特征表中是否记录有目标特征值以判断存储空间中是否已写入有目标数据;其中,特征表中记录有已写入数据的特征值;

相应的,在将目标数据写入至目标存储空间后,该方法进一步包括:

将目标特征值记录至特征表。

优选的,对目标数据进行特征提取,生成目标特征值具体为:

基于hash算法对目标数据进行特征提取,生成目标特征值。

优选的,在对目标数据进行特征提取,生成目标特征值之前,该方法进一步包括:

将目标数据划分为预设规格的多个目标数据块;

相应的,对目标数据进行特征提取,生成目标特征值具体为:

分别对各目标数据块进行特征提取,生成对应的各目标特征值。

优选的,特征表中还记录有已写入数据的特征值与已写入数据的存储地址之间的对应关系;

相应的,将目标特征值记录至特征表具体为:

将目标特征值与目标存储空间的目标存储地址对应关系记录至特征表;

相应的,该方法进一步包括:

向处理器返回目标特征值对应的目标存储地址,以供处理器读取目标数据。

优选的,在将目标数据写入至目标存储空间后,该方法进一步包括:

当目标数据在预设周期内未受到io操作时,移除目标数据以及目标特征值。

此外,本发明还提供一种非易失性内存,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述的数据写入方法的步骤。

此外,本发明还提供一种计算机可读存储介质,应用于非易失性内存,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的数据写入方法的步骤。

本发明所提供的数据写入方法,在非易失性内存在接收到待写入的目标数据后,判断存储空间中是否已经写入有该目标数据,如果有,则停止执行对目标数据的写入操作;如果非易失性内存中尚未写入有目标数据,则将目标数据写入至目标存储空间中。本方法在接收到待写入的目标数据后,通过判断目标数据是否已经写入至非易失内存的存储空间,以确定是否继续进行对目标数据的写入操作,进而确保相同内容的数据仅在非易失性内存中存储一份,以此相对避免了相同的数据内容同时占用非易失性内存的存储空间,进而确保了数据能够更加节省空间的方式写入到非易失性内存中,因此非易失性内存能够存储更多内容不同的数据,相对提高了非易失性内存整体的存储效率。此外,本发明还提供一种计算机可读存储介质及非易失性内存,有益效果同上所述。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种应用于非易失性内存的数据写入方法的流程图;

图2为本发明实施例提供的另一种应用于非易失性内存的数据写入方法的流程图。

具体实施方式

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

本发明的核心是提供一种数据写入方法,以相对确保数据能够以更加节省空间的方式写入到非易失性内存中,并相对提高存储效率。本发明的另一核心是提供一种计算机可读存储介质及非易失性内存。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施例一

图1为本发明实施例提供的一种应用于非易失性内存的数据写入方法的流程图。请参考图1,应用于非易失性内存的数据写入方法的具体步骤包括:

步骤s10:接收待写入的目标数据。

需要说明的是,由于本步骤的执行主体为非易失性内存,而内存是处理器与外存之间进行高效数据io的媒介,因此内存能够接收由处理器传入的用于写入至外存中的数据内容,也能够接收处理器所读取的外存中的数据内容,进而本步骤中,非易失性内存所接收的待写入的目标数据可以来自于处理器或外存,应根据实际的使用场景而定,在此不做具体限定。

步骤s11:判断存储空间中是否已写入有目标数据,如果是,则执行步骤s12;否则,执行步骤s13。

步骤s12:停止执行对目标数据的写入操作。

步骤s13:将目标数据写入至目标存储空间。

需要说明的是,非易失性内存相较于相同外形规格的传统内存而言,整体的存储空间容量相对较小,在非易失性内存工作过程中,往往需要多次写入相同内容的数据,本步骤是为了确保写入非易失性内存的目标数据能够相对较小程度的占用非易失性内存的存储空间容量,因此当判断非易失性内存中已经存在有待写入的目标数据时,则停止执行对目标数据的写入操作,以此避免出现非易失性内存中存储多个相同内容数据的情况,仅当判断非易失性内存中未存储有待写入的目标数据时,才将目标数据写入至非易失性内存的目标存储空间中。此外,目标存储空间可以预先由用户指定,或依照一定的预设逻辑在非易失性内存中选取。

本发明所提供的数据写入方法,在非易失性内存在接收到待写入的目标数据后,判断存储空间中是否已经写入有该目标数据,如果有,则停止执行对目标数据的写入操作;如果非易失性内存中尚未写入有目标数据,则将目标数据写入至目标存储空间中。本方法在接收到待写入的目标数据后,通过判断目标数据是否已经写入至非易失内存的存储空间,以确定是否继续进行对目标数据的写入操作,进而确保相同内容的数据仅在非易失性内存中存储一份,以此相对避免了相同的数据内容同时占用非易失性内存的存储空间,进而确保了数据能够更加节省空间的方式写入到非易失性内存中,因此非易失性内存能够存储更多内容不同的数据,相对提高了非易失性内存整体的存储效率。

实施例二

在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。

图2为本发明实施例提供的另一种应用于非易失性内存的数据写入方法的流程图。图2中步骤s10、s12-s13与图1相同,在此不再赘述。

如图2所示,作为一种优选的实施方式,在判断存储空间中是否已写入有目标数据之前,该方法进一步包括:

步骤s20:对目标数据进行特征提取,生成目标特征值。

相应的,判断存储空间中是否已写入有目标数据具体为:

步骤s21:根据预设的特征表中是否记录有目标特征值以判断存储空间中是否已写入有目标数据。

其中,特征表中记录有已写入数据的特征值。

相应的,在将目标数据写入至目标存储空间后,该方法进一步包括:

步骤s22:将目标特征值记录至特征表。

由于考虑到在实际的使用场景中,待写入的目标数据的整体数据量通常较大,而判断存储空间中是否已写入有目标数据,通常需要将目标数据与非易失性内存中已存储的各项数据分别进行逐一字节的比对,因此数据之间比对的整体耗时相对庞大。本实施方式在接收到待写入的目标数据后,先对目标数据进行特征提取并生成目标特征值,进而再根据目标特征值判断目标数据是否已写入非易失性内存,具体是预先设置记录有已写入数据的特征值的特征表,进而根据预设的特征表中是否记录有目标特征值以判断存储空间中是否已写入有目标数据,当特征表中未记录有目标特征值时,则认为目标数据尚未写入至非易失性内存,进而将目标数据写入至目标存储空间,并将目标特征值记录至特征集,以此确保特征集内容的实时性。

本实施方式中的所指的特征提取,是指对目标数据中的特征参量进行提取,特征参量能够唯一确定目标数据身份,因此无需对于目标数据的每个字节均进行比对,仅需要判定当前已有的数据是否具有与目标数据相同的特征参量即可,相对减少了判断存储空间中是否已写入有目标数据过程的整体时间开销,提高了数据写入方法的整体执行效率。

在上述实施方式的基础上,作为一种优选的实施方式,对目标数据进行特征提取,生成目标特征值具体为:

基于hash算法对目标数据进行特征提取,生成目标特征值。

需要说明的是,即使两项数据在内容之间仅有微小差异,通过hash算法生成的对应特征值之间也能够具有较大的差异性,并且对于任意不同的两项数据而言,通过hash算法生成的对应特征值相同的可能性极小。因此本实施方式通过hash算法对目标数据进行特征提取而生成的目标特征值,能够在具有较高准确性的同时相对明显的体现目标数据与已存储数据之间的差异性,以此进一步减少了判断存储空间中是否已写入有目标数据过程的整体时间开销,进而提高了数据写入方法的整体执行效率。

此外,作为一种优选的实施方式,在对目标数据进行特征提取,生成目标特征值之前,该方法进一步包括:

将目标数据划分为预设规格的多个目标数据块;

相应的,对目标数据进行特征提取,生成目标特征值具体为:

分别对各目标数据块进行特征提取,生成对应的各目标特征值。

由于考虑到,在实际的数据写入过程中,目标数据的数据长度往往较大,并且可能存在目标数据与存储空间中已写入数据之间仅有小部分内容存在差异的情况,在此情况下,将目标数据完全写入至非易失性内存无疑会造成一部分数据的重复存储,本实施方式将目标数据划分为预设规格的多个目标数据块,因此与已写入非易失性内存的数据存在差异的数据内容仅体现在部分数据块中,进而仅需要将存在差异的部分数据块写入至目标存储空间即可,因此进一步确保写入非易失性内存的目标数据能够相对较小程度的占用非易失性内存的存储空间容量。

此外,作为一种优选的实施方式,特征表中还记录有已写入数据的特征值与已写入数据的存储地址之间的对应关系;

相应的,将目标特征值记录至特征表具体为:

将目标特征值与目标存储空间的目标存储地址对应关系记录至特征表;

相应的,该方法进一步包括:

向处理器返回目标特征值对应的目标存储地址,以供处理器读取目标数据。

需要说明的是,由于本方法中的非易失性内存中仅存储互不相同的数据内容,进而对于相同的数据内容仅在非易失性内存中存储一份,因此当处理器访问非易失性内存以执行不同任务进程时,可能需要反复读取非易失性内存中相同的数据内容,或是需要反复将非易失性内存中相同的数据内容存储至外存的不同空间中。本实施方式在将目标数据写入至目标存储空间后,将目标特征值与目标存储空间的目标存储地址对应关系记录至特征表,并向处理器返回目标特征值对应的目标存储地址,以此告知处理器目标数据在非易失性内存中所处的目标存储地址,以此确保了处理器能够对写入非易失性内存中的数据进行正常的io处理,确保在将目标数据写入非易失性内存后的整体可用性。

在上述一系列实施方式的基础上,作为一种优选的实施方式,在将目标数据写入至目标存储空间后,该方法进一步包括:

当目标数据在预设周期内未受到io操作时,移除目标数据以及目标特征值。

由于考虑到,将数据存储至内存往往是为了处理器能够更加高效的获取到该数据,因此存储在内存中的数据可以认为是当前处理器所经常性访问的热点数据,具有一定的时效性,本实施方式将预设周期内未受到处理器io操作的目标数据界定为非热点数据并移除,以此避免目标数据持续占用非易失性内存的存储资源,提高了非易失性内存存储空间的整体可用性。

实施例三

在上文中对于数据写入方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的非易失性内存,由于非易失性内存部分的实施例与方法部分的实施例相互对应,因此非易失性内存部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本发明实施例提供的非易失性内存,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述的数据写入方法的步骤。

本发明所提供的非易失性内存,在非易失性内存在接收到待写入的目标数据后,判断存储空间中是否已经写入有该目标数据,如果有,则停止执行对目标数据的写入操作;如果非易失性内存中尚未写入有目标数据,则将目标数据写入至目标存储空间中。本非易失性内存在接收到待写入的目标数据后,通过判断目标数据是否已经写入至非易失内存的存储空间,以确定是否继续进行对目标数据的写入操作,进而确保相同内容的数据仅在非易失性内存中存储一份,以此相对避免了相同的数据内容同时占用非易失性内存的存储空间,进而确保了数据能够更加节省空间的方式写入到非易失性内存中,因此非易失性内存能够存储更多内容不同的数据,相对提高了非易失性内存整体的存储效率。

此外,本发明还提供一种计算机可读存储介质,应用于非易失性内存,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的数据写入方法的步骤。

本发明所提供的计算机可读存储介质,在非易失性内存在接收到待写入的目标数据后,判断存储空间中是否已经写入有该目标数据,如果有,则停止执行对目标数据的写入操作;如果非易失性内存中尚未写入有目标数据,则将目标数据写入至目标存储空间中。本计算机可读存储介质在接收到待写入的目标数据后,通过判断目标数据是否已经写入至非易失内存的存储空间,以确定是否继续进行对目标数据的写入操作,进而确保相同内容的数据仅在非易失性内存中存储一份,以此相对避免了相同的数据内容同时占用非易失性内存的存储空间,进而确保了数据能够更加节省空间的方式写入到非易失性内存中,因此非易失性内存能够存储更多内容不同的数据,相对提高了非易失性内存整体的存储效率。

以上对本发明所提供的一种数据写入方法、介质及非易失性内存进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的介质及非易失性内存而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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