一种延长可擦写芯片寿命的方法和装置
技术领域
本发明涉及芯片技术领域,具体涉及一种延长可擦写芯片寿命的方法和装置。
背景技术
可擦写芯片,如闪存芯片、带电可擦写可编程只读存储器EEPROM、安全芯片SE等,由于可擦写芯片中的已有信息进行擦除、重新编程,被广泛应用于各个领域。可擦写芯片的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此擦除操作是闪存的基本操作。但是对芯片的每次擦除以及重新操作都会消耗芯片的寿命。为了尽可能延长芯片的使用寿命,一般是采用专业芯片来替代普通芯片,如对于安全芯片SE而言,可用工业级的M2M芯片或者车规级别的M2M芯片,但是实际应用中发现,对于某些领域的应用而言,即使是工业级或车规级别的芯片,也不能够满足应用需求,且专业芯片的价格比较昂贵,使得采用该芯片及使用该种芯片的设备的成本大大提高。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种延长可擦写芯片寿命的方法,通过该方法,可有效提升芯片的寿命。
为实现上述目的,本发明采用的技术方案为:一种延长可擦写芯片寿命的方法,包括:
在可擦写芯片中预留设定大小的读写区域;
将第一指定文件的第一数据写入所述读写区域的第一子区域,将第一子区域的读写标识设置为有效,将第一子区域之外的读写区域的读写标识设置为无效;所述第一数据为初次写入读写区域中的数据;
将第二指定文件的第二数据写入所述读写区域的第二子区域,将第二子区域的读写标识设置为有效;所述第二子区域为第二数据写入前所述读写区域中读写标识为无效的区域;
其中,若所述第二指定文件为第一指定文件,第二数据为第一数据的更新数据,在将第二数据写入第二子区域之前,将第一子区域的读写标识更新为无效。
进一步,如上所述的一种延长可擦写芯片寿命的方法,还包括:为读写区域的每个子区域设置最后写入标识last,所述最后写入标识last用于标识一个子区域是否为最后写入数据的区域;
将第一数据写入第一子区域时,将第一子区域的最后写入标识last设置为有效;
在将第二数据写入第二子区域时,将第二数据写入前的最后写入标识last为有效的子区域的最后写入标识last更新为无效,并将第二子区域的最后写入标识last设置为有效;
所述第二子区域为第二数据写入前的最后写入标识last为有效的子区域之后的区域。
进一步,如上所述的一种延长可擦写芯片寿命的方法,还包括:
在将读写区域中写入数据前,根据预设的空间大小,将所述读写区域划分为N个读写空间,一个子区域对应一个读写空间,N≥2。
进一步,如上所述的一种延长可擦写芯片寿命的方法,所述第一子区域与第二子区域连续或者不连续;所述不连续是指两个子区域之间相互不占用相同的页,所述页为可擦写芯片的最小擦除单位。
进一步,如上所述的一种延长可擦写芯片寿命的方法,将第一数据写入所述读写区域的第一子区域时,还包括:设置第一指定文件的内部文件标识FID,将第一指定文件的内部文件标识FID设置为第一子区域的ID;
所述方法还包括:
设置文件标识映射表;所述文件标识映射表用于存储所述读写区域中存储的文件的文件名称与文件的内部文件标识FID的映射关系。
进一步,如上所述的一种延长可擦写芯片寿命的方法,还包括,读取所述第一指定文件的数据,读取方式为:
根据第一指定文件的文件名称在所述文件标识映射表中查找第一指定文件的内部文件标识FID;
根据查找到的内部文件标识FID,在所述读写区域中查找ID相同且读写标识为有效的子区域;
读取查找到的子区域中的数据。
进一步,如上所述的一种延长可擦写芯片寿命的方法,还包括:
设置第一指定文件和第二指定文件的保护标记,所述保护标记为用于标识文件的数据存储于所述读写区域中。
本发明实施例中还提供了一种延长可擦写芯片寿命的装置,包括:
读写区域预留模块,用于在可擦写芯片中预留设定大小的读写区域;
数据写入模块,用于将第一指定文件的第一数据写入所述读写区域的第一子区域,将第二指定文件的第二数据写入所述读写区域的第二子区域;
标识设置更新模块,用于在将第一数据写入第一子区域时,将第一子区域的读写标识设置为有效,将第一子区域之外的读写区域的读写标识设置为无效;还用于在将第二数据写入第二子区域时,将第二子区域的读写标识last为有效;所述第二子区域为第二数据写入前所述读写区域中读写标识为无效的区域;
其中,若所述第二指定文件为第一指定文件,第二数据为第一数据的更新数据,数据写入模块在将第二数据写入第二子区域之前,标识设置更新模块还用于将第一子区域的读写标识更新为无效。
进一步,如上所述的一种延长可擦写芯片寿命的装置,所述标识设置更新模块,还用于为读写区域的每个子区域设置最后写入标识last,所述最后写入标识last用于标识一个子区域是否为最后写入数据的区域;
数据写入模块在将第一数据写入第一子区域时,标识设置更新模块还用于将第一子区域的最后写入标识last设置为有效;
数据写入模块在将第二数据写入第二子区域时,标识设置更新模块还用于将第二数据写入前的最后写入标识last为有效的子区域的最后写入标识last更新为无效,并将第二子区域的最后写入标识last设置为有效;
所述第二子区域为第二数据写入前的最后写入标识last为有效的子区域之后的区域
进一步,如上所述的一种延长可擦写芯片寿命的装置,还包括:
读写空间划分模块,用于在将读写区域中写入数据前,根据预设的空间大小,将所述读写区域划分为N个读写空间,一个子区域对应一个读写空间,N≥2。
本发明的有益效果在于:本发明实施例中所提供的延长可擦写芯片寿命的方法及装置,通过为需要进行高频读写的指定文件预留共用的读写区域,在进行指定文件中数据写入及更新时,通过使用读写区域中不同的子区域进行写入或擦除再写入操作,从而避免了在进行数据更新时,对同一个数据写入区域反复进行多次擦除后再写入时,因文件的擦写次数超过设计寿命时,导致整个芯片无法使用的问题,通过延长了高频率擦写的指定文件的擦写寿命,提升了整个芯片的寿命,采用该方法及装置,可使得普通芯片即超越工业级或车规级芯片的寿命指标,且大大降低了成本,更好的满足了实际应用的需求。
附图说明
图1为本发明的一个实施例中一种延长可擦写芯片寿命的方法的流程示意图;
图2为本发明的一个实施例中一种延长可擦写芯片寿命的装置的结构示意图;
图3为实施例中初始化状态下的读写区域的示意图;
图4为实施例中完成第一指定文件初次写入后的读写区域的示意图;
图5为实施例中完成第一指定文件的数据更新后的读写区域的示意图;
图6为实施例中完成第二指定文件的数据写入后的读写区域的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明保护的范围。
图1示出了本发明一个实施例中提供的一种延长可擦写芯片寿命的方法的流程示意图,由图中可以看出,该方法主要可以包括以下步骤:
步骤S100:在可擦写芯片中预留设定大小的读写区域;
步骤S200:进行初次数据写入,将一指定文件的第一数据写入所述读写区域的第一子区域,并将第一子区域的读写标识设置为有效;
步骤S300:将第二指定文件的第二数据写入所述读写区域的第二子区域,并将第二子区域的读写标识设置为有效,若第二数据为第一数据的更新数据,写入第二数据前,将第一子区域的读写标识更新为无效。
本实施例所述的方法,首先根据实际应用中可擦写芯片中可能需要进行高频次读写操作的某个或某几个文件在可擦写芯片中预留设定大小的读写区域,该读写区域用作文件共享空间,可在该共享空间中进行所述文件的多次读写操作,即相当于对所述某个或某几个文件进行读写保护。其中,所述某个或某个文件具体选择哪些文件,可以根据实际需要自行进行确定。所述可擦写芯片包括但不限安全芯片SE或嵌入式安全芯片eSE。
由可擦写芯片的COS完成所述读写区域的划分后,将第一指定文件的第一数据写入所述读写区域的第一子区域,并将第一子区域的读写标识设置为有效,将第一子区域之外的读写区域的读写标识设置为无效,其中,所述第一数据为初次写入读写区域中的数据。其中,所述读写标识是否有效用于标识当前子区域中的数据是否为有效数据。
再次进行数据的写入时,将第二指定文件的第二数据写入所述读写区域的第二子区域,将第二子区域的读写标识设置为有效,其中,所述第二子区域为第二数据写入前所述读写区域中读写标识为无效的区域。
其中,若所述第二指定文件为第一指定文件,第二数据为第一数据的更新数据,在将第二数据写入第二子区域之前,将第一子区域的读写标识更新为无效。即如果再次写入的数据为之前已经写入的数据的更新数据,则还需要将之前已经写入该数据的子区域的读写标识更新为无效,将再次写入的数据所在的子区域的读写标识设置为有效,标识该有效的子区域中的数据为最新有效数据,为数据的读取提供读取标识,即对于同一个指定文件,读写区域中用于存储该指定文件的子区域中只有一个子区域的读写标识为有效。
其中,所述第一子区域与第二子区域可以连续或者不连续;所述不连续是指两个子区域之间相互不占用相同的页,所述页为可擦写芯片的最小擦除单位,一般为128个字节、或者256个字节、或者512个字节等,对于非页擦页写的芯片,不同的子区域之间可以是连续的,即可以占用相同的页,如果芯片为页擦页写的读写空间,为了避免对某一读写空间进行擦除时,对其它读写空间造成影响,读写空间之间优选不连续。
本实施例中所述的延长可擦写芯片寿命的方法,通过预留读写区域,为指定文件提供了可进行数据写入的不同子区域,从而避免了在进行数据更新时,对同一个数据写入区域反复进行多次擦除后再写入(尤其对于是需要高频擦写的文件),因文件的擦写次数超过设计寿命时,导致整个芯片无法使用的问题,通过延长了高频率擦写的指定文件的擦写寿命,提升了整个芯片的寿命,且所述读写区域可作为多个指定文件的共享区间,实现多个不同指定文件的保护。
在本发明的一个实施例中,为了便于数据的写入与读写空间的管理,在将数据写入读写区域中时,还可以包括:为读写区域的每个子区域设置最后写入标识last,所述最后写入标识last用于标识一个子区域是否为最后写入数据的区域。
此时,将第一数据写入第一子区域时,将第一子区域的最后写入标识last设置为有效;在将第二数据写入第二子区域时,将第二数据写入前的最后写入标识last为有效的子区域的最后写入标识last更新为无效,并将第二子区域的最后写入标识last设置为有效(即保证读写区域中只有一个子区域的最后写入标识last为有效,其它子区域均为无效);所述第二子区域为第二数据写入前的最后写入标识last为有效的子区域之后的区域,即可以根据最后写入标识last查找可进行数据写入的空间。
在本发明的一个实施例中,还可以包括:在将读写区域中写入数据前,根据预设的空间大小,将所述读写区域划分为N个读写空间,一个子区域对应一个读写空间,N≥2。
即预先将所述读写区域划分成N个独立的读写空间,每个读写空间都可以用于装载一个指定文件,每个读写空间均可以进行多次数据擦除后再写入。其中,所述预设的空间大小根据时间需要进行设定,该空间大小不小于所要写入的指定文件中最大文件所要占用空间的大小,以保证每个指定文件的数据都能够正确写入。
其中,在本发明的一个实施例中,在将第二指定文件的第二数据写入第二子区域中时,若所述第二子区域中存在数据,此时,还包括:
擦除所述第二子区域中的数据,将所述第二数据写入到擦除后的所述第二子区域中。
即所述读写区域的所有读写空间均都完成一次数据写入后,再进行数据写入时,需要先进行读写标识无效的读写空间中的数据的擦除。
为了便于文件的读取,在本发明的一个实施例中,将第一数据写入所述读写区域的第一子区域时,还包括:设置第一指定文件的内部文件标识FID,将第一指定文件的内部文件标识FID设置为第一子区域的ID,并设置一文件标识映射表;所述文件标识映射表用于存储所述读写区域中存储的文件的文件名称与文件的内部文件标识FID的映射关系。所述内部文件标识FID为文件在所述读写区域中的文件标识ID。
此时,在本发明的一个实施例中,所述方法还包括:根据第一指定文件的文件名称读取所述读写区域中第一指定文件的数据。
其中,读取所述第一指定文件的数据的方式具体包括:
根据第一指定文件的文件名称在所述文件标识映射表中查找第一指定文件的内部文件标识FID;
根据查找到的内部文件标识FID,在所述读写区域中查找ID相同且读写标识为有效的子区域;
读取查找到的子区域中的数据,此时读取到的数据可能是所述第一数据,也可能是后续写入的第一数据的更新数据,通过读写标识和内部文件标识FID即可保证读取到的数据为第一指定文件的最新有效数据。
在实际应用中,还包括:设置第一指定文件和第二指定文件的保护标记,所述保护标记为用于标识文件的数据存储于所述读写区域中。
通过设置保护标识,可擦写芯片便可知道所要处理(写入或读取)的文件的数据是否是存储在所述读写区域中。
对应于图1中所示的方法,本发明实施例中还提供了一种延长可擦写芯片寿命的装置,如图2所示,该装置包括读写区域预留模块100、数据写入模块200和标识设置更新模块300,其中:
读写区域预留模块100,用于在可擦写芯片中预留设定大小的读写区域;
数据写入模块200,用于将第一指定文件的第一数据写入所述读写区域的第一子区域,将第二指定文件的第二数据写入所述读写区域的第二子区域;
标识设置更新模块300,用于在将第一数据写入第一子区域时,将第一子区域的读写标识设置为有效,将第一子区域之外的读写区域的读写标识设置为无效;还用于在将第二数据写入第二子区域时,将第二子区域的读写标识last为有效;所述第二子区域为第二数据写入前所述读写区域中读写标识为无效的区域;
其中,若所述第二指定文件为第一指定文件,第二数据为第一数据的更新数据,数据写入模块在将第二数据写入第二子区域之前,标识设置更新模块还用于将第一子区域的读写标识更新为无效。
在本发明的一个实施例中,所述标识设置更新模块300,还用于为读写区域的每个子区域设置最后写入标识last,所述最后写入标识last用于标识一个子区域是否为最后写入数据的区域;
此时,数据写入模块200在将第一数据写入第一子区域时,标识设置更新模块300还用于将第一子区域的最后写入标识last设置为有效;数据写入模块200在将第二数据写入第二子区域时,标识设置更新模块300还用于将第二数据写入前的最后写入标识last为有效的子区域的最后写入标识last更新为无效,并将第二子区域的最后写入标识last设置为有效;
所述第二子区域为第二数据写入前的最后写入标识last为有效的子区域之后的区域。
在本发明的一个实施例中,该装置还包括读写空间划分模块400。
读写空间划分模块400,用于在将读写区域中写入数据前,根据预设的空间大小,将所述读写区域划分为N个读写空间,一个子区域对应一个读写空间,N≥2。
为了更好的说明本发明实施例中所提供的方法及装置,下面结合具体实施例对本发明进行进一步详细说明。
实施例
本实施例中,可擦写芯片为安全芯片SE,第一指定文件为SE中3F00目录下的、名称为6F5B的文件,文件的大小为100个字节,第二指定文件为SE中3F00目录下的、名称为4F20的文件,文件大小为200个字节,在应用中,6F5B和4F20这两个文件会进行高频的读写,这两个文件中任何一个文件文件一旦达到芯片设计的写入寿命,文件将无法写入,导致整个SE都会作废。在SE中进行6F5B文件和4F20文件的写入之前,向SE发送指定,通知SE这两个需要进行保护,SE对两个文件做保护标记。
采用本发明实施例中所述的方法延长该芯片寿命的方法对该芯片进行保护的流程如下:
首先,在安全芯片SE中预留出大小为256×20=5120字节的读写区域,作为第一指定文件和第二指定文件的共享区域,并将5120字节的读写区域划分成20个大小为256k的读写空间,20个读写空间分别记为空间1-空间20,其中,每个空间的前3个字节用于对读写空间的标记定义,第一个字节为最后一次写文件的位置表识即最后写入标识last,第二个字节为映射的内部文件标识FID(即对应读写空间的ID),第三个字节为该空间是否有效N/A,即用于标识读写标识是否有效。本实施例中,有效用1标识,无效用0标识,初始化状态下的读写区域的示意图如图3所示,每个读写空间的最后写入标识last和文件有效标识均为0。
本实施例中,6F5B的内部文件标识FID为A,4F20的内部文件标识FID为B,将两个文件的文件名称与内部文件标识FID的映射关系存储到文件标识映射表中。
当进行数据的第一次写入时,本实施例中为需要往6F5B文件写数据AAAA(6F5B的初始内容)时,写入步骤如下:
1、SE找到6F5B文件,发现其有保护标识。于是通过文件标识映射表对应关系找到它的内部文件标识A;
2、将数据AAAA写入读写区域的空间1中(优选按照顺序进行数据写入,当然也可以是其它空间),将该空间的ID更新为A,读写标识更新为1,最后写入标识last更新为1,完成数据AAAA写入后的读写空间如图4所示。
当需要进行6F5B文件的数据更新时,假设更新后的数据为BBBB,将数据BBBB写入读写区域中的步骤如下:
1、SE找到6F5B文件,发现其有保护标识,从文件标识映射表中找到6F5B的内部文件标识A;
2、在读写区域的每一个空间中逐个查找ID是A、读写标识为1的空间,并将这些空间的读写标识修改为0,本实施例中,即将空间1的读写标识更新为0;
3、找到last标志为1的空间,按照约定顺序(本实施例中为由空间1-20顺次进行数据写入)在last标志为1的空间之后,找一个读写标识为0的空间,本实施例中查找到的空间为空间2。
4、在第3步中找到的空间2中,将空间2的last标记置1,FID置A,读写标识置1,并将数据BBBB写入空间2,同时将空间1的Last标记置0。
完成数据BBBB写入后的读写区域如图5所示。
当往4F20文件中写入数据CCCC时,写入步骤如下:
1、SE找到4F20文件,发现其有保护标识,从文件标识映射表中找到4F20的内部文件标识B;
2、在读写区域的每一个空间中逐个查找ID是B、读写标识为1的空间,并将这些空间的读写标识修改为0,本实施例中,不存在这样的空间,直接进入步骤3;
3、找到last标志为1的空间,按照约定顺序(本实施例中为由空间1-20顺次进行数据写入)在last标志为1的空间之后,找一个读写标识为0的空间,本实施例中查找到的空间为空间3。
4、在第3步中找到的空间3中,将空间3的last标记置1,FID置B,读写标识置1,并将数据CCCC写入空间3,同时将空间2的Last标记置0。
完成数据CCCC写入后的读写区域如图6所示。
当20个空间均完成一次数据写入后,再次进行6F5B的文件的写入时,假设需要写入的数据为DDDD,写入步骤如下:
1、SE找到6F5B文件,发现其有保护标识,从文件标识映射表中找到6F5B的内部文件标识A;
2、在读写区域的每一个空间中逐个查找ID是A、读写标识为1的空间,并将这些空间的读写标识修改为0;
3、找到last标志为1的空间,按照约定顺序(本实施例中为由空间1-20顺次进行数据写入)在last标志为1的空间之后,找一个读写标识为0的空间,本实施例中,假设last标志为1的空间为空间20,空间20之后读写标识为0的空间为空间1;
4、在第3步中找到的空间2中,首先擦除空间1中的数据AAAA,将数据DDDD写入空间1,将空间1的last标记置1,FID置A,读写标识置1,并将数据BBBB写入空间2,同时将空间20的Last标记置0。
完成上述写入后,在需要读取文件6F5B中的数据时,读取步骤如下:
1、SE找到6F5B文件,发现其有保护标识,从文件标识映射表中找到6F5B的内部文件标识A;
2、在读写区域的查找ID为A、且文件的读写标识为1的空间,此时为空间1,读取空间1中的数据DDDD。
将本发明实施例中所提供的方法及装置,应用于实际应用场景中发现,可使普通的芯片超越工业级和/或车规级的芯片的使用寿命,更好的满足用户的实际需求,而将该方法及装置,应用于工业级或车规级的芯片中,更可以进一步提高使用寿命。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。