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