一种数据存储方法、装置、设备及可读存储介质与流程

文档序号:22400690发布日期:2020-09-29 18:12阅读:144来源:国知局
一种数据存储方法、装置、设备及可读存储介质与流程

本发明涉及存储技术领域,特别是涉及一种数据存储方法、装置、设备及可读存储介质。



背景技术:

易失性存储器在掉电后,通常按照易失性的特点,掉电之后,数据会丢失,不存在数据被盗取的风险。

但是,当存储在易失性存储器的某段固定的地址空间内数据,经过上千小时的运行,易失性存储器的系统特性会倾向于记住这些数据的电平值。也就是说,即使掉电再上电,如果cpu没有对易失性存储器进行操作,受易失性存储器的电气设计原理影响,易失性存储器会易于变为之前长期保存的状态。如此,便导致长期存储在易失性存储器中不变的数据具有盗取的风险,存在安全风险。

当易失性存储器中存储的数据至关重要时,可能会产生较大损失。例如,当存储的是深度学习模型的模型参数,可能会导致整个深度学习模型的被盗取。

综上所述,如何有效地消除易失性存储器的记忆特性等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种数据存储方法、装置、设备及可读存储介质,通过变化存储在易失性存储器中的数据比特值,可消除易失性存储器的记忆特点,避免出现数据盗取的风险,可保障数据安全。

为解决上述技术问题,本发明提供如下技术方案:

一种数据存储方法,包括:

在易失性存储器上电后,获取待存入所述易失性存储器中固定存储地址的目标数据;

从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式;所述目标传输模式与所述易失性存储器上一次上电后所确定出的历史传输模式不同;

按照所述目标传输模式,与所述易失性存储器互传所述目标数据。

优选地,若所述目标传输模模式为所述比特值变化传输模式,则所述按照所述目标传输模式,与所述易失性存储器互传所述目标数据,包括:

按位翻转所述目标数据的比特值,得到所述目标数据对应的翻转比特流;

将所述翻转比特流发送给所述易失性存储器;

从所述易失性存储器中读取所述翻转比特流;

将所述翻转比特流按位翻转,得到所述目标数据。

优选地,若所述目标传输模模式为所述比特值变化传输模式,则所述按照所述目标传输模式,与所述易失性存储器互传所述目标数据,包括:

对所述目标数据的比特流进行移位处理,得到所述目标数据对应的移位比特流;

将所述移位比特流发送给所述易失性存储器;

从所述易失性存储器中读取所述移位比特流;

对所述移位比特流移位恢复,得到所述目标数据。

优选地,若所述目标传输模模式为所述比特值固定传输模式,则所述按照所述目标传输模式,与所述易失性存储器互传所述目标数据,包括:

将所述目标数据的比特流发送给所述易失性存储器;

从所述易失性存储器中读取所述比特流,得到所述目标数据。

优选地,所述从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式,包括:

获取所述易失性存储器的上电次数;

若所述上电次数为偶数,则确定所述比特值变化传输模式为所述目标传输模式;

若所述上电次数为奇数,则确定所述比特值固定传输模式为所述目标传输模式。

优选地,所述获取所述易失性存储器的上电次数,包括:

从上位机中获取上电次数。

优选地,所述获取待存入易失性存储器中固定存储地址的目标数据,包括:

从上位机中获取深度学习模型的模型参数;

将所述模型参数作为所述目标数据。

一种数据存储装置,包括:

目标数据获取模块,用于在易失性存储器上电后,获取待存入所述易失性存储器中固定存储地址的目标数据;

传输模式确定模块,用于从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式;所述目标传输模式与所述易失性存储器上一次上电后所确定出的历史传输模式不同;

数据传输模块,用于按照所述目标传输模式,与所述易失性存储器互传所述目标数据。

一种数据存储设备,包括:

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

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

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法的步骤。

应用本发明实施例所提供的方法,在易失性存储器上电后,获取待存入易失性存储器中固定存储地址的目标数据;从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式;目标传输模式与易失性存储器上一次上电后所确定出的历史传输模式不同;按照目标传输模式,与易失性存储器互传目标数据。

在本方法中,对于需要固定存储到易失性存储器中固定存储地址的目标数据,为避免易失性的记忆特点导致目标数据被盗取,使得目标数据不安全。在上电存储目标数据时,首先选定与易失性存储器传输目标数据的传输模式。可选的传输模式有比特值变化传输模式以及比特值固定传输模式,其中,比特值变化传输模式,即传输目标数据时,会修改目标数据的比特流中的比特值;而比特值固定传输模式,即传输目标数据时,不会修改目标数据的比特流。通过选择与上一次上电传输目标数据的传输方式不同的目标传输模式,按照该目标传输模型,与易失性存储互传目标数据,即可保证本次存储目标数据时,在易失性存储器中存储的目标数据的比特值之间存在区别,破坏了基于易失性存储器的记忆特点,进而得到目标数据的前提条件。可保证目标数据在掉电后,避免发生数据被盗取,保障了数据的安全。

相应地,本发明实施例还提供了与上述数据存储方法相对应的数据存储装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

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

图1为本发明实施例中一种数据存储方法的实施流程图;

图2为一种基于fpga的推理深度学习模型的硬件架构示意图;

图3为本发明实施例中一种数据存储方法的实施示意图;

图4为本发明实施例中一种数据存储方法的具体实施流程图;

图5为本发明实施例中一种数据存储装置的结构示意图;

图6为本发明实施例中一种数据存储设备的结构示意图;

图7为本发明实施例中一种数据存储设备的具体结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例中一种数据存储方法的流程图,该方法包括以下步骤:

s101、在易失性存储器上电后,获取待存入易失性存储器中固定存储地址的目标数据。

易失性存储器(randomaccessmemory),简称ram,常用来存储和保存数据,是作为操作系统或其他正在运行程序的临时存储介质。

其中,目标数据为长期不变的存储在易失性存储器固定存储地址的数据。该目标数据可为安全性要求高,且使用频繁的数据,例如深度学习模型的模型参数,或重要系统中的配置参数等。

在易失性存储器上电之后,便可获取需存储的目标数据。

s102、从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式。

其中,目标传输模式与易失性存储器上一次上电后所确定出的历史传输模式不同。

数据存储到可读存储介质,往往需按比特位进行存储,即存储介质中存储的是与“1”和“0”对应的电位。在本实施例中,为了使得相同的数据,在不同的时间段(本文一次上电为一个时段,当然也可采用其他时段)存储在同一个易失性存储器中的固定位置时,使得电位出现变化,避免出现易失性存储器的记忆特点导致数据被盗取的情况发生。

其中,比特值变化传输模式,即在传输目标数据时,对目标数据的比特流中的比特值进行变化,使之与目标数据的比特流出现差异(即同一个存储位置的比特值出现翻转,包括“1”变为“0”,“0”变为“1”);而比特值固定传输模式,则在传输目标数据的比特流时,不对比特流中的比特值进行改变。如此,上电交替采用不同的传输模式,便可使得易失性存储器中即便是存储同样的数据,也不会出现目标数据对应的全部比特位出现记忆特性,可避免数据被盗取。

比特值变化传输模式的方式有多种,在实际应用中可设置一种或多种。

具体的,目标传输模式的确定方式,可通过记录每一次上电的传输模式,进而快速确定本次上电后目标数据的目标传输模式。

还可通过记录上电次数,通过上电次数的奇数偶数的区别确定采用何种传输模式。具体实现过程,包括:

步骤一、获取易失性存储器的上电次数;

步骤二、若上电次数为偶数,则确定比特值变化传输模式为目标传输模式;

步骤三、若上电次数为奇数,则确定比特值固定传输模式为目标传输模式。

为便于描述,下面将上述三个步骤结合起来进行说明。

其中,可利用上位机(如cpu)记录上电次数,即上述步骤一可具体为从上位机中获取上电次数。

需要说明的是,在上述步骤中,将上电次数为偶数与比特值变化传输模式一一对应,将上电次数为奇数与比特值固定传输模式一一对应;在实际应用中,还可将对应关系进行变化,如将上电次数为奇数与比特值变化传输模式一一对应,将上电次数为偶数与比特值固定传输模式一一对应。

s103、按照目标传输模式,与易失性存储器互传目标数据。

确定目标传输模式之后,便可按照该目标传输模式与易失性存储器互换目标数据。即传输给易失性存储器存储目标数据,从易失性存储器中读取目标数据。

基于目标传输模式不同,目标数据的互传方式包括但不限于以下几种情况:

情况一:若目标传输模模式为比特值变化传输模式,目标数据的传输过程,包括:

步骤一、按位翻转目标数据的比特值,得到目标数据对应的翻转比特流;

步骤二、将翻转比特流发送给易失性存储器;

步骤三、从易失性存储器中读取翻转比特流;

步骤四、将翻转比特流按位翻转,得到目标数据。

其中,按位反正目标数据的比特值,将对二进制形式的目标数据的取反,即将“1”翻转为“0”,将“0”翻转为“1”。需要说明的是,翻转目标数据的比特值时,可全部均进行翻转,也可按照一定规律对部分比特进行翻转,例如间隔一位或多位进行翻转。

翻转后得到翻转比特流,直接将翻转比特流存入易失性存储器,而后从易失性存储器中读取翻转比特流之后,也需对应进行翻转进而得到目标数据。

情况二:若目标传输模模式为比特值变化传输模式,则目标数据的传输过程,包括:

步骤一、对目标数据的比特流进行移位处理,得到目标数据对应的移位比特流;

步骤二、将移位比特流发送给易失性存储器;

步骤三、从易失性存储器中读取移位比特流;

步骤四、对移位比特流移位恢复,得到目标数据。

例如,当目标数据的比特流为“10101010”,则可对比特流“10101010”将首位移至末尾,然后其他位置依次向前移位,“01010101”。如此,移位前后便出现的比特位的比特值变化。当然,从易失性存储器中读取到移位比特流之后,对移位比特流进行移位恢复,即对移位比特流进行反移位,得到目标数据。

情况三:若目标传输模模式为比特值固定传输模式,则目标数据的传输过程,包括:

步骤一、将目标数据的比特流发送给易失性存储器;

步骤二、从易失性存储器中读取比特流,得到目标数据。

对于未进行比特值变化的传输方式,即直接对目标数据的传输,无需在传输前后进行变化操作。

应用本发明实施例所提供的方法,在易失性存储器上电后,获取待存入易失性存储器中固定存储地址的目标数据;从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式;目标传输模式与易失性存储器上一次上电后所确定出的历史传输模式不同;按照目标传输模式,与易失性存储器互传目标数据。

在本方法中,对于需要固定存储到易失性存储器中固定存储地址的目标数据,为避免易失性的记忆特点导致目标数据被盗取,使得目标数据不安全。在上电存储目标数据时,首先选定与易失性存储器传输目标数据的传输模式。可选的传输模式有比特值变化传输模式以及比特值固定传输模式,其中,比特值变化传输模式,即传输目标数据时,会修改目标数据的比特流中的比特值;而比特值固定传输模式,即传输目标数据时,不会修改目标数据的比特流。通过选择与上一次上电传输目标数据的传输方式不同的目标传输模式,按照该目标传输模型,与易失性存储互传目标数据,即可保证本次存储目标数据时,在易失性存储器中存储的目标数据的比特值之间存在区别,破坏了基于易失性存储器的记忆特点,进而得到目标数据的前提条件。可保证目标数据在掉电后,避免发生数据被盗取,保障了数据的安全。

需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。

优选地,该目标数据可具体为深度学习模型的模型参数,如此便可深度学习模式进行保护。即上述步骤s101可具体包括:

步骤一、从上位机中获取深度学习模型的模型参数;

步骤二、将模型参数作为目标数据。

为便于理解,下面针对在易失性存储器中存储深度学习模型的模型参数的具体应用场景对数据存储方法进行说明。

在深度学习领域,深度学习模型适合复杂的模式识别,需要大量的样本以及高昂的机器才能训练获得,是高价值资产,因此需要对训练出来的模型进行保护。在推理应用场景中,深度学习模型参数会长时间存储到易失性存储器的固定地址空间中,并且长时间保持不变。由于易失性存储器在长期存储固定模型和参数时,会累积产生一定的记忆特性,可能导致高价值推理模型被非法复制和读出。采用本发明实施例所提供的数据存储方法,通过构建一种定期翻转消除易失性存储器记忆特性的方法,可以更好地的保护深度学习的模型数据,防止非法复制。

目前,深度学习模型主要运行在gpu和fpga两种硬件架构上。其中,一般fpga的方案,采用硬盘+cpu+fpga+ddr的架构,在掉电的情况下,模型参数一般都存储在cpu端的非易失性存储器上(如机械硬盘,sata盘,nvme盘等);上电后,由于软件的加密保护,一般无法通过软件层面破解模型数据,为了实现fpga的快速计算(卷积,全连接网络等),会将模型参数通过明码的方式存储到fpga端的ddr中,fpga的程序有加密功能,一般无法被破解,易失性存储器在掉电后,按照易失性的特点,模型参数也应该也应丢失,不应该有被盗取的风险。

但是,因为推理设备的模型和参数不会轻易改变,并且在设备上电后,会长期存储在易失性存储器的某段固定的地址空间内,经过上千小时的运行,易失性存储器的系统特性会倾向于记住这些模型数据的电平值。即使掉电再上电,如果cpu没有对ddr进行操作,受易失性存储器的电气设计原理影响,易失性存储器会易于变为之前长期保存的状态,导致易失性存储器中存储的模型数据具有丢失的风险,进而财产损失,并丧失相关技术领先优势。

为了降低上述模型数据丢失风险,消除易失性存储器的记忆特性是非常重要的。在断电前,先清空易失性存储器中的相关数据,然后再掉电,也不能有效的消除易失性存储器在长期保持相同数据时的记忆特性,重新上电后,易失性存储器依然具有一定的记忆性。

基于fpga的推理深度学习模型如图2所示,上电后,cpu运行的软件将硬盘中加密的模型数据下载到fpga端的ddr中,然后fpga通过提取特定ddr地址上的数据,进行深度学习计算,并将计算结果放在ddr中,供cpu读取。

深度学习的相关模型参数,在上电后会下载到ddr固定的地址区域,因为是推理运算,使用的是已经训练好且不再需要修改的模型参数,所以在此地址区域内,ddr的数值会长期保持不变。由于电应力、热效应以及电迁移等长期作用,造成ddr相关位置的电压门限改变,长期作用下,相关改变会产生物理累积,造成ddr等易失性存储器具有一定的记忆效应,即使在掉电后上电,cpu不对ddr进行操作,ddr也可以恢复出之前的数据,模型参数也会存在安全风险。

采用本发明实施例所提供的数据存储方法,能够有效均衡ddr相同地址空间写入0和1的次数,降低ddr产生记忆效应的概率,进而实现对模型数据保护的目的。系统框架如图3所示。

实施流程图如图4所示,实施流程包括:

s1:cpu软件端在硬盘上记录设备的启动次数。每次上电运行软件,该计数器都会加一。

s2:软件根据本次启动次数,分奇偶,给fpga下发工作模式,奇数发送正常工作模式,偶数发送翻转工作模式。

s3:fpga端的模式选择器,在接收到cpu的工作模式命令字后,对fpga和ddr之间的双向数据接口进行工作模式选择。

s4:如果工作在正常工作模式,则fpga不对ddr的读写数据进行任何处理。读写ddr的数据和cpu端数据完全一致。

s5:如果工作在翻转工作模式,则fpga在将数据写入ddr前,会对数据进行按照bit翻转(如lut实现非门);当fpga读出ddr数据给cpu或深度学习单元前,也对数据进行按bit翻转。即保证数据可以被计算单元正确解析,同时也将0和1值以等概率、均衡地写入ddr相同地址空间。保证相同物理位置,写入0和1的次数大致相同。

由此可见,通过均衡写入数据翻转策略,可以有效的消除易失性存储器的记忆特性,降低模型数据泄露的风险,可以对高价值的深度学习模型形成有效的保护,保护数据资产,并保持技术领先性。

相应于上面的方法实施例,本发明实施例还提供了一种数据存储装置,下文描述的数据存储装置与上文描述的数据存储方法可相互对应参照。

参见图5所示,该装置包括以下模块:

目标数据获取模块101,用于在易失性存储器上电后,获取待存入易失性存储器中固定存储地址的目标数据;

传输模式确定模块102,用于从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式;目标传输模式与易失性存储器上一次上电后所确定出的历史传输模式不同;

数据传输模块103,用于按照目标传输模式,与易失性存储器互传目标数据。

应用本发明实施例所提供的装置,在易失性存储器上电后,获取待存入易失性存储器中固定存储地址的目标数据;从比特值变化传输模式和比特值固定传输模式中,确定出目标传输模式;目标传输模式与易失性存储器上一次上电后所确定出的历史传输模式不同;按照目标传输模式,与易失性存储器互传目标数据。

在本装置中,对于需要固定存储到易失性存储器中固定存储地址的目标数据,为避免易失性的记忆特点导致目标数据被盗取,使得目标数据不安全。在上电存储目标数据时,首先选定与易失性存储器传输目标数据的传输模式。可选的传输模式有比特值变化传输模式以及比特值固定传输模式,其中,比特值变化传输模式,即传输目标数据时,会修改目标数据的比特流中的比特值;而比特值固定传输模式,即传输目标数据时,不会修改目标数据的比特流。通过选择与上一次上电传输目标数据的传输方式不同的目标传输模式,按照该目标传输模型,与易失性存储互传目标数据,即可保证本次存储目标数据时,在易失性存储器中存储的目标数据的比特值之间存在区别,破坏了基于易失性存储器的记忆特点,进而得到目标数据的前提条件。可保证目标数据在掉电后,避免发生数据被盗取,保障了数据的安全。

在本发明的一种具体实施方式中,若目标传输模模式为比特值变化传输模式,则数据传输模块103,具体用于按位翻转目标数据的比特值,得到目标数据对应的翻转比特流;将翻转比特流发送给易失性存储器;从易失性存储器中读取翻转比特流;将翻转比特流按位翻转,得到目标数据。

在本发明的一种具体实施方式中,若目标传输模模式为比特值变化传输模式,则数据传输模块103,具体用于对目标数据的比特流进行移位处理,得到目标数据对应的移位比特流;将移位比特流发送给易失性存储器;从易失性存储器中读取移位比特流;对移位比特流移位恢复,得到目标数据。

在本发明的一种具体实施方式中,若目标传输模模式为比特值固定传输模式,则数据传输模块103,具体用于将目标数据的比特流发送给易失性存储器;从易失性存储器中读取比特流,得到目标数据。

在本发明的一种具体实施方式中,传输模式确定模块102,具体用于获取易失性存储器的上电次数;若上电次数为偶数,则确定比特值变化传输模式为目标传输模式;若上电次数为奇数,则确定比特值固定传输模式为目标传输模式。

在本发明的一种具体实施方式中,传输模式确定模块102,具体用于从上位机中获取上电次数。

在本发明的一种具体实施方式中,目标数据获取模块101,具体用于从上位机中获取深度学习模型的模型参数;将模型参数作为目标数据。

相应于上面的方法实施例,本发明实施例还提供了一种数据存储设备,下文描述的一种数据存储设备与上文描述的一种数据存储方法可相互对应参照。

参见图6所示,该数据存储设备包括:

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

处理器322,用于执行计算机程序时实现上述方法实施例的数据存储方法的步骤。

具体的,请参考图7,为本实施例提供的一种数据存储设备的具体结构示意图,该数据存储设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在数据存储设备301上执行存储器332中的一系列指令操作。

数据存储设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。

上文所描述的数据存储方法中的步骤可以由数据存储设备的结构实现。

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据存储方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据存储方法的步骤。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

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