实现一次性可编程存储的方法和存储设备的制作方法

文档序号:6375626阅读:223来源:国知局
专利名称:实现一次性可编程存储的方法和存储设备的制作方法
技术领域
本发明涉及存储领域,特别是涉及ー种实现一次性可编程存储的方法和存储设备。
背景技术
传统的系统引导过程大部分都不是全部由硬件直接完成的,而是需要在硬件的基础上,通过引导程序(也称软件程序或称固件程序)的协作来完成引导的。如果引导程序及 相应的引导环境自身不安全,则该引导程序所引导的系统也有可能不安全。例如Windows、Android等系统,如果其引导程序及相关环境被恶意改动,则引导后的系统有可能会运行恶意程序。为了避免出现这种情况,需要有ー种方法及设备来保证引导程序及相应的引导环境是经过认证的、可信任的。通过这种方法实现的引导就称为可信任引导。可信任引导系统中,为了保证引导代码不被无意或者恶意的破坏,往往需要用到OTP (One Time Programmable,一次性可编程)存储器件来存储引导代码。OTP存储器件意味着只要写入一次,就再也无法更改。这可以保证引导程序不被修改。在引导程序中,有一项功能是校验其所要加载的环境或要引导的系统。由于前面所述的引导程序自身由OTP器件保证了其可靠性,而引导程序中的校验功能又保证了引导环境及系统的可靠性,从而保证了所引导的系统一定是可信任的。然而,如果系统中仅仅存在OTP存储器件,则不能满足用户对普通数据的存储需求,因此传统的系统中往往同时设置OTP存储器件用于存储引导代码等一些不需修改的数据,并设置普通存储器件用于存储用户的普通数据。但是,这将带来以下问题一、同时设置两类存储器件,増加系统的硬件成本。ニ、一般来说,OTP存储器和普通存储器的接ロ不同,要求设备主控同时支持这两种接ロ,软件上也会増加工作量。且由于所需的接ロ较多,有可能无法使用便宜的主控,而要用贵的、接ロ多的主控,又増加了隐性的选择成本。三、由于一次性可编程存储器件以及普通存储器件都需要占用一定的空间,这将给采用可信任系统的电子产品的硬件设计带来一定困难,体积较大,而且由于多出了ー个器件及相关外围电路,也增加了在电路板上布线的复杂度。

发明内容
基于此,有必要针对传统的硬件成本较高且结构复杂的问题,提供一种实现一次性可编程存储的方法。一种实现一次性可编程存储的方法,包括以下步骤当存储设备接收到的写命令中包含的逻辑地址位于所述存储设备中预设存储区域的逻辑地址范围内时,判断所述写命令中包含的逻辑地址上是否写入过数据,若是,则虚拟执行所述写命令,若否,则执行所述写命令,写入数据,并记录所述逻辑地址的写入状态。
在其中一个实施例中,在当存储设备接收到的写命令中包含的逻辑地址位于所述存储设备中预设存储区域的逻辑地址范围内时,判断所述写命令中包含的逻辑地址上是否写入过数据的步骤之前,还包括步骤在存储设备中划分一部分存储空间作为预设存储区域;记录所述预设存储区域的逻辑地址范围。在其中一个实施例中,在所述记录所述预设存储区域的逻辑地址范围的步骤之后,还包括步骤将位于所述预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址;判断所述触发逻辑地址是否满足触发条件,若是,则进入所述当存储设备接收到的写命令中包含的逻辑地址位于所述存储设备中预设存储区域的逻辑地址范围内时,判断所述写命令中包含的逻辑地址上是否写入过数据的步骤; 其中,所述触发条件为所述指定逻辑地址的状态为已写过,且对所述指定逻辑地址的写命令中仅包含所述指定逻辑地址ー个逻辑地址。在其中一个实施例中,将位于所述预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址的步骤具体为将所述预设存储区域的结束逻辑地址作为触发逻辑地址。在其中一个实施例中,在存储设备中划分一部分存储空间作为预设存储区域的步骤包括以逻辑地址O作为所述预设存储区域的起始逻辑地址,在存储设备中划分一部分存储空间作为预设存储区域。此外,还有必要针对传统的硬件成本较高且结构复杂的问题,提供一种存储设备。一种存储设备,包括控制模块以及和所述控制模块电连接的存储模块,所述存储模块用于提供存储设备的存储空间,所述控制模块包括地址判断単元,用于判断存储设备接收到的写命令中包含的逻辑地址是否位于所述存储设备中预设存储区域的逻辑地址范围内;写入状态判断単元,用于当所述存储设备接收到的写命令中包含的逻辑地址位于所述预设存储区域的逻辑地址范围内时,判断所述预设存储区域的逻辑地址上是否写入过数据;虚拟写単元,用于当所述存储设备接收到的写命令中包含的逻辑地址位于所述预设存储区域的逻辑地址范围内,且所述写命令中的逻辑地址上写入过数据吋,虚拟执行所述写命令;命令执行单元,用于当所述存储设备接收到的写命令中包含的逻辑地址位于所述预设存储区域的逻辑地址范围内,且所述写命令中的逻辑地址上没有写入过数据时,执行所述写命令,写入数据,并记录所述逻辑地址的写入状态。在其中一个实施例中,所述控制模块还包括区域划分单元,用于在存储设备中划分一部分存储空间作为预设存储区域;逻辑地址范围记录模块,用于记录所述预设存储区域的逻辑地址范围。在其中一个实施例中,所述控制模块还包括设置单元,用于将位于所述预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址;触发单元,用于在判断所述触发逻辑地址满足触发条件时触发所述地址判断单元、写入状态判断単元、虚拟写命令和命令执行单元工作;其中, 所述触发条件为所述指定逻辑地址的状态为已写过,且对所述指定逻辑地址的写命令中仅包含所述指定逻辑地址ー个逻辑地址。在其中一个实施例中,所述设置单元还用于将所述预设存储区域的结束逻辑地址作为触发逻辑地址。在其中一个实施例中,所述区域划分单元用于以逻辑地址O作为所述预设存储区域的起始逻辑地址,在存储设备中划分一部分存储空间作为预设存储区域。上述实现一次性可编程存储的方法和存储设备,接收到对存储设备中的预设存储区域的写命令吋,判断该逻辑地址是否写入过数据,若写入过,则虚拟执行写命令,如果没有写入过,则执行写命令,写入数据,实现了在预设存储区域一次性可编程存储功能,在除了预设存储区域外的其余存储区域可存储数据,从而实现了在同一存储设备上既可实现对引导程序的一次编程存储,又可存储其他数据,不需采用两种存储器件分别存储数据,节省了硬件及硬件设计成本,且结构简单。


图I为ー个实施例中实现一次性可编程存储的方法的流程示意图;图2为另ー个实施例中实现一次性可编程存储的方法的流程示意图;图3为存储设备的区域划分示意图;图4为预设存储区域的起始逻辑地址为逻辑地址O的示意图;图5为触发逻辑地址为预设存储区域的结束逻辑地址的示意图;图6为ー个实施例中存储设备的内部结构示意图;图7为ー个实施例中控制模块的内部结构示意图。
具体实施例方式下面结合具体的实施例及附图对实现一次性可编程存储的方法和存储设备的技术方案进行详细的描述,以使其更加清楚。如图I所示,在一个实施例中,一种实现一次性可编程存储的方法,包括以下步骤步骤S110,当存储设备接收到的写命令中包含的逻辑地址位于存储设备中预设存储区域的逻辑地址范围内时,判断写命令中包含的逻辑地址上是否写入过数据,若是,执行步骤S120,若否,执行步骤S130。具体的,预先在存储设备上划分预设存储区域,并记录该预设存储区域的逻辑地址范围。当接收到写命令中包含的逻辑地址位于预设存储区域的逻辑地址范围内,首先判断写命令中的包含的逻辑地址上是否写入过数据,若写入过,则虚拟执行写命令,即不写入数据,且回复写命令已执行完的信息给主机,若没有写入过,则执行写命令,将数据写入到该逻辑地址,并记录该逻辑地址的写入状态,即已写入过数据,从而使预设存储区域实现ー次性可编程存储功能。
步骤S120,虚拟执行写命令。步骤S130,执行写命令,写入数据,并记录逻辑地址的写入状态。具体的,逻辑地址的写入状态,可通过标记实现,如O表示为写入过数据,I表示写入过数据,但不限于此实现方式。上述实现一次性可编程存储的方法,接收到对存储设备中预设存储区域的写命令吋,判断该逻辑地址是否写入过数据,写入过,则虚拟执行写命令,没有写入过,则执行写命令,写入数据,实现了在预设存储区域一次性可编程存储功能,在除了预设存储区域外的其他存储区域可存储数据,从而实现了在同一存储设备上既可实现对引导程序的一次编程存储,又可存储其他数据,不需采用两种存储器件分别存储数据,节省了硬件及硬件设计成本,且结构简单。 如图2所示,在一个实施例中,一种实现一次性可编程存储的方法,包括以下步骤步骤S210,在存储设备中划分一部分存储空间作为预设存储区域。具体的,所述存储设备可为以闪存存储器、相变存储器、铁磁性存储器、EPR0M、EEPROM等任意一种存储器为存储介质的存储设备。预设存储区域用于一次性写入引导程序,以防止引导程序被恶意改动,保证引导的系统安全。存储设备中除了预设存储区域外的其余存储空间为普通存储区域,普通存储区域用于存储写入的非引导程序的数据,如图3所示,划定中间一部分区域为预设存储区域。步骤S220,记录预设存储区域的逻辑地址范围。具体的,预设存储区域被划分后,记录预设存储区域的逻辑地址范围,方便后续写入数据时,判断是否在预设存储区域。在一个实施例中,步骤S210包括以存储设备的逻辑地址O作为预设存储区域的起始逻辑地址,在存储设备中划分一部分存储空间作为预设存储区域。具体的,如图4所示,预设存储区域的逻辑地址范围以逻辑地址O为起始逻辑地址。将逻辑地址O作为预设存储区域的起始逻辑地址,可方便用户在普通存储区域写入数据时,可连续写入,不会造成数据的中断,提高了普通存储区域的存储速率。步骤S230,将位于预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址。具体的,预设存储区域逻辑地址范围内的指定逻辑地址可根据需要设定。本实施例中,将预设存储区域的结束逻辑地址作为触发逻辑地址。如图5所示,触发逻辑地址为预设存储区域的结束逻辑地址N,N为大于等于O的整数。可方便用户在预设存储区域写入数据时,能连续写,不会造成数据中断,进ー步提高预设存储区域的存储速率。步骤S240,判断触发逻辑地址是否满足触发条件,若是,则执行步骤S250,否则结束。具体的,触发条件为指定逻辑地址的状态为已写过,且对指定逻辑地址的写命令中仅包含指定逻辑地址ー个逻辑地址。可方便用户根据需要确定是否需要将预设存储区域作为一次性可编程存储区域使用。步骤S250,当存储设备接收到的写命令中包含的逻辑地址位于预设存储区域的逻辑地址范围内吋,判断写命令中包含的逻辑地址上是否写入过数据,若是,执行步骤S260,若否,执行步骤S270。具体的,接收到写命令中包含的逻辑地址位于预设存储区域的逻辑地址范围内,首先判断写命令中的包含的逻辑地址上是否写入过数据,若写入过,则虚拟执行写命令,即不写入数据,且回复写命令已执行完的信息给主机,若没有写入过,则执行写命令,将数据写入到该逻辑地址,并记录该逻辑地址的写入状态,即已写入过数据,从而使预设存储区域实现一次性可编程存储功能。步骤S260,虚拟执行写命令。步骤S270,执行写命令,写入数据,并记录逻辑地址的写入状态。上述实现一次性可编程存储的方法,首先判断触发逻辑地址是否满足触发条件,可方便用户根据需要确定是否需要将预设存储区域作为一次性可编程存储区域使用。如图6所示,在一个实施例中,ー种存储设备,包括控制模块10,与控制模块10电 连接的存储模块20。存储模块20用于提供存储设备的存储空间,控制模块10包括地址判断単元110、写入状态判断単元120、虚拟写単元130和命令执行单元140。其中地址判断単元110用于判断存储设备接收到的写命令中包含的逻辑地址是否位于存储设备中预设存储区域的逻辑地址范围内。具体的,预先在存储设备上划分预设存储区域,并记录该预设存储区域的逻辑地址范围。写入状态判断単元120用于当存储设备接收到的写命令中包含的逻辑地址位于预设存储区域的逻辑地址范围内时,判断预设存储区域的逻辑地址上是否写入过数据。虚拟写単元130用于当存储设备接收到的写命令中包含的逻辑地址位于预设存储区域的逻辑地址范围内,且写命令中的逻辑地址上写入过数据吋,虚拟执行所述写命令。具体的,虚拟执行写命令是指不写入数据,且回复写命令已执行完的信息给主机。命令执行单元140用于当存储设备接收到的写命令中包含的逻辑地址位于预设存储区域的逻辑地址范围内,且写命令中的逻辑地址上没有写入过数据时,执行写命令,写入数据,并记录逻辑地址的写入状态。具体的,逻辑地址的写入状态,可通过标记实现,如O表示为写入过数据,I表示写入过数据,但不限于此实现方式。上述存储设备,接收到对存储设备中预设存储区域的写命令时,判断该逻辑地址是否写入过数据,写入过,则虚拟执行写命令,没有写入过,则执行写命令,写入数据,实现了在预设存储区域一次性可编程存储功能,在除了预设存储区域外的其他存储区域可存储数据,从而实现了在同一存储设备上既可实现对引导程序的一次编程存储,又可存储其他数据,不需采用两种存储器件分别存储数据,节省了硬件及硬件设计成本,且结构简单。进ー步的,在一个实施例中,如图7所示,上述存储设备中的控制模块10除了包括地址判断単元110、写入状态判断単元120、虚拟写単元130和命令执行单元140,还包括区域划分单元150、设置单元160、触发单元170以及逻辑地址范围记录单元180。其中区域划分单元150用于在存储设备中划分一部分存储空间作为预设存储区域。具体的,所述存储模块20可为闪存存储器、相变存储器、铁磁性存储器、EPR0M、EEPROM等任意一种存储介质。预设存储区域用于一次性写入引导程序,以防止引导程序被恶意改动,保证引导的系统安全。存储设备中除了预设存储区域外的其他存储空间为普通存储区域,普通存储区域用于存储写入的非引导程序的数据,如图3所示,划定中间一部分区域为预设存储区域。设置单元160用于将位于预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址。具体的,预设存储区域逻辑地址范围内的指定逻辑地址可根据需要设定。触发单元170用于在判断所述触发逻辑地址满足触发条件时触发地址判断単元110、写入状态判断单元120、虚拟写命令130和命令执行单元140工作。具体的,触发条件为指定逻辑地址的状态为已写过,且对所述指定逻辑地址的写命令中仅包含指定逻辑地址ー个逻辑地址。可方便用户根据需要确定是否需要将预设存储区域作为一次性可编程存储区域使用。逻辑地址范围记录单元180用于记录所述预设存储区域的逻辑地址范围。具体的所述预设存储区域的逻辑地址范围可以记录在存储模块20提供的存储空间中;也可以在控制模块10中增设存储单元,并将预设存储区域的逻辑地址范围记录在控制模块10中的存储单元中。
进ー步的,区域划分单元150还用于以存储设备的逻辑地址O作为预设存储区域的起始逻辑地址,在存储设备中划分一部分存储空间作为预设存储区域。具体的,如图4所示,预设存储区域的逻辑地址范围以逻辑地址O为起始逻辑地址。将逻辑地址O作为预设存储区域的起始逻辑地址,可方便用户在普通存储区域写入数据时,可连续写入,不会造成数据的中断,提高了普通存储区域的存储速率。进ー步的,设置单元160还用于将预设存储区域的结束逻辑地址作为触发逻辑地址。如图5所示,触发逻辑地址为预设存储区域的结束逻辑地址N,N为大于等于O的整数。可方便用户在预设存储区域写入数据时,能连续写,不会造成数据中断,进ー步提高预设存储区域的存储速率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或其他非易失性存储器。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种实现一次性可编程存储的方法,包括以下步骤 当存储设备接收到的写命令中包含的逻辑地址位于所述存储设备中预设存储区域的逻辑地址范围内时,判断所述写命令中包含的逻辑地址上是否写入过数据,若是,则虚拟执行所述写命令,若否,则执行所述写命令,写入数据,并记录所述逻辑地址的写入状态。
2.根据权利要求I所述的实现一次性可编程存储的方法,其特征在于,在当存储设备接收到的写命令中包含的逻辑地址位于所述存储设备中预设存储区域的逻辑地址范围内时,判断所述写命令中包含的逻辑地址上是否写入过数据的步骤之前,还包括步骤 在存储设备中划分一部分存储空间作为预设存储区域; 记录所述预设存储区域的逻辑地址范围。
3.根据权利要求2所述的实现一次性可编程存储的方法,其特征在于,在所述记录所述预设存储区域的逻辑地址范围的步骤之后,还包括步骤 将位于所述预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址; 判断所述触发逻辑地址是否满足触发条件,若是,则进入所述当存储设备接收到的写命令中包含的逻辑地址位于所述存储设备中预设存储区域的逻辑地址范围内时,判断所述写命令中包含的逻辑地址上是否写入过数据的步骤; 其中,所述触发条件为所述指定逻辑地址的状态为已写过,且对所述指定逻辑地址的写命令中仅包含所述指定逻辑地址ー个逻辑地址。
4.根据权利要求3所述的实现一次性可编程存储的方法,其特征在干,将位于所述预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址的步骤具体为 将所述预设存储区域的结束逻辑地址作为触发逻辑地址。
5.根据权利要求2至4中任一项所述的实现一次性可编程存储的方法,其特征在于,在存储设备中划分一部分存储空间作为预设存储区域的步骤包括 以逻辑地址O作为预设存储区域的起始逻辑地址,在存储设备中划分一部分存储空间作为预设存储区域。
6.ー种存储设备,包括控制模块以及和所述控制模块电连接的存储模块,所述存储模块用于提供存储设备的存储空间,其特征在于,所述控制模块包括 地址判断単元,用于判断存储设备接收到的写命令中包含的逻辑地址是否位于所述存储设备中预设存储区域的逻辑地址范围内; 写入状态判断単元,用于当所述存储设备接收到的写命令中包含的逻辑地址位于所述预设存储区域的逻辑地址范围内时,判断所述预设存储区域的逻辑地址上是否写入过数据; 虚拟写単元,用于当所述存储设备接收到的写命令中包含的逻辑地址位于所述预设存储区域的逻辑地址范围内,且所述写命令中的逻辑地址上写入过数据吋,虚拟执行所述写命令; 命令执行单元,用于当所述存储设备接收到的写命令中包含的逻辑地址位于所述预设存储区域的逻辑地址范围内,且所述写命令中的逻辑地址上没有写入过数据吋,执行所述写命令,写入数据,并记录所述逻辑地址的写入状态。
7.根据权利要求6所述的存储设备,其特征在于,所述控制模块还包括 区域划分单元,用于在存储设备中划分一部分存储空间作为预设存储区域;逻辑地址范围记录单元,用于记录所述预设存储区域的逻辑地址范围。
8.根据权利要求7所述的存储设备,其特征在于,所述控制模块还包括 设置单元,用于将位于所述预设存储区域逻辑地址范围内的指定逻辑地址作为触发逻辑地址; 触发单元,用于在判断所述触发逻辑地址满足触发条件时触发所述地址判断単元、写入状态判断単元、虚拟写命令和命令执行单元工作; 其中,所述触发条件为所述指定逻辑地址的状态为已写过,且对所述指定逻辑地址的写命令中仅包含所述指定逻辑地址ー个逻辑地址。
9.根据权利要求8所述的存储设备,其特征在于,所述设置単元还用于将所述预设存储区域的结束逻辑地址作为触发逻辑地址。
10.根据权利要求7至9中任ー项所述的存储设备,其特征在于,所述区域划分单元,还用于以逻辑地址O作为所述预设存储区域的起始逻辑地址,在存储设备中划分一部分存储空间作为预设存储区域。
全文摘要
本发明涉及一种实现一次性可编程存储的方法和存储设备。所述实现一次性可编程存储的方法包括以下步骤当存储设备接收到的写命令中包含的逻辑地址位于所述存储设备中预设存储区域的逻辑地址范围内时,判断所述写命令中包含的逻辑地址上是否写入过数据,若是,则虚拟执行所述写命令,若否,则执行所述写命令,写入数据,并记录所述逻辑地址的写入状态。上述实现一次性可编程存储的方法和存储设备,实现了在同一存储设备上既可实现对引导程序的一次编程存储,又可存储其他数据,不需采用两种存储器件分别存储数据,节省了硬件及硬件设计成本,且结构简单。
文档编号G06F3/06GK102866864SQ201210305450
公开日2013年1月9日 申请日期2012年8月24日 优先权日2012年8月24日
发明者李中政, 李志雄, 梁小庆 申请人:深圳市江波龙电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1