数据写入方法及装置的制作方法

文档序号:6385551阅读:161来源:国知局
专利名称:数据写入方法及装置的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种数据写入方法及装置。
背景技术
数据卡在工作和调试时,会输出很多信息。以LTE(Long Term Evolution,长期演进)数据卡为例,LTE数据卡在工作和调试时,会有很多LOG (日志)信息输出,供研发人员进行分析调试。在多数情况下,可以通过HOST (PC/开发板),把LOG信息通过虚拟串口导出。但是某些情况下,如开发板没有可操作界面(如MIFI —类的设备),或者用于外单位仪表测试时,测试单位不提供协助提取LOG信息的服务的情况下,有必要将LOG信息以文件的形式进行保存。目前在各种系统中,FAT文件系统的兼容性比较好,无论是WINDOWS还是Linux及其它嵌入式系统如WINCE,FAT文件系统都可以被接受。因此,在以文件形式进行保存LOG信息时,可以硬件采用可反复擦写存储器如NAND存储器,并采用FAT文件系统保存LOG信
肩、O但是,硬件采用可反复擦写存储器时,以NAND存储器为例,由于电子元件工艺的问题,NAND存储器存在擦除/写操作寿命。目前使用NAND进行擦除/写操作时,以BLOCK(数据块)为单位,可反复擦写10万次。而使用FAT文件系统进行读写时,会反复操作特定的区域,对于某些区域,记录了文件长度、修改时间等信息,这些区域会随着文件长度的增力口,被反复改写,尽管FAT文件系统利用了 RAM (Random Access Memory,随机存取存储器)作为cache (缓存),但擦写的频率依然很高。以文件cache为32k为例,目前LOG信息的产生速度为I秒20条,每条平均占30byte,`那么55秒钟就会flush (刷新)一次,即改写文件长度所在的区域一次,那么10万次只能够连续工作1527小时(约63整天)。在对反复操作的区域进行了多次擦除/写操作后,由于NAND的特性,有些数据在写入后,进行ECC校验时出错,当出现这种情况后,该区域所属的BLOCK会被判定为坏块,予以弃用。这种因为反复操作一个区域,导致该区域所在的整个BLOCK被判断为坏块,将极大浪费可反复擦写存储器的存储性能,无法充分发挥可反复擦写存储器的潜在存储能力。

发明内容
本发明提供了一种数据写入方法及一种数据写入装置,以解决使用FAT文件系统进行可反复擦写存储器的数据写入时,因反复操作一个区域,导致该区域所在的整个BLOCK被判断为坏块,浪费可反复擦写存储器的存储性能,无法充分发挥可反复擦写存储器的潜在存储能力的问题。为了解决上述问题,本发明公开了一种数据写入方法,包括接收向可反复擦写存储器写入数据的数据写入指令,根据所述数据写入指令确定所述可反复擦写存储器中待写入数据的第一数据块;获取所述第一数据块的擦除/写入的次数,并当所述第一数据块的擦除/写入的次数达到设定阈值时,从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块;将所述第一数据块中的数据与所述第二数据块中的数据进行交换;根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据。优选地,根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据的步骤之后,还包括更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数。优选地,所述获取所述第一数据块的擦除/写入的次数的步骤包括读取所述第一数据块的OOB区记录的擦除/写入的次数。优选地,所述更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数的步骤之后,还包括根据更新后的所述第二数据块的擦除/写入的次数,将所述第二数据块移动到所述擦除/写入的次数小于或等于所述第二数据块的擦除/写入的次数的数据块之后,形成按照擦除/写入的次数从小到大链接的数据块链表。优选地,所述从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块的步骤包括当所述数据块链表的表头的数据块的擦除/写入的次数未达到所述设定阈值时,将所述数据块链表的表头的数据块确定为第二数据块。优选地,所述从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块的步骤包括从数据块信息表中获取所述擦除/写入的次数未达到所述设定阈值的数据块的信息,其中,所述数据块信息表中存储有所述可反复擦写存储器的每个数据块的擦除/写入的次数;从获取的所述数据块的信息对应的数据块中选择一个数据块为第二数据块。为了解决上述问题,本发明还公开了一种数据写入装置,包括确定模块,用于接收向可反复擦写存储器写入数据的数据写入指令,根据所述数据写入指令确定所述可反复擦写存储器中待写入数据的第一数据块;获取模块,用于获取所述第一数据块的擦除/写入的次数,并当所述第一数据块的擦除/写入的次数达到设定阈值时,从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块;执行模块,用于将所述第一数据块中的数据与所述第二数据块中的数据进行交换;根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据。优选地,所述数据写入装置还包括记录模块,用于在所述执行模块根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据之后,更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数。优选地,所述获取模块在获取所述第一数据块的擦除/写入的次数时,读取所述第一数据块的OOB区记录的擦除/写入的次数。优选地,所述数据写入装置还包括处理模块,用于在所述记录模块更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数之后,根据更新后的所述第二数据块的擦除/写入的次数,将所述第二数据块移动到所述擦除/写入的次数小于或等于所述第二数据块的擦除/写入的次数的数据块之后,形成按照擦除/写入的次数从小到大链接的数据块链表。优选地,所述获取模块在从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块时,当所述数据块链表的表头的数据块的擦除/写入的次数未达到所述设定阈值时,将所述数据块链表的表头的数据块确定为第二数据块。优选地,所述获取模块在从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块时,从数据块信息表中获取所述擦除/写入的次数未达到所述设定阈值的数据块的信息,其中,所述数据块信息表中存储有所述可反复擦写存储器的每个数据块的擦除/写入的次数;从获取的所述数据块的信息对应的数据块中选择一个数据块为第二数据块。与现有技术相比,本发明具有以下优点本发明为可反复擦写存储器的每个数据块设定擦除/写入的次数的阈值,在向可反复擦写存储器写入数据时,先确定待写入数据的第一数据块的擦除/写入的次数达到设定阈值,然后,选择新的第二数据块进行数据交换,在数据交换后将待写入数据写入新的第二数据块。在一个数据块“磨损”到设定阈值后,可以再找“合适”的数据块进行替换。这样换下去,就可以尽可能地利用可反复擦写存储器中的各个数据块,把“磨损”平均到各个数据块中,从而避免了单个数据块磨损过大,造成坏块。通过本发明,解决了使用FAT文件系统进行可反复擦写存储器的数据写入时,因反复操作一个区域,导致该区域所在的整个BLOCK被判断为坏块,浪费可反复擦写存储器的存储性能,无法充分发挥可反复擦写存储器的潜在存储能力的问题,达到了有效利用可反复擦写存储器存储性能的效果。


图1是根据本发明实施例一的一种数据写入方法的步骤流程图;图2是根据本发明实施例二的一种数据写入方法的步骤流程图;图3是根据本发明实施例三的一种数据写入方法的步骤流程图;图4是根据本发明实施例四的一种数据写入装置的结构框图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。实施例一参照图1,示出了根据本发明实施例一的一种数据写入方法的步骤流程图。本实施例的数据写入方法包括以下步骤步骤S102 :接收向可反复擦写存储器写入数据的数据写入指令,根据数据写入指令确定可反复擦写存储器中待写入数据的第一数据块。数据写入指令中通常包含有待写入数据的数据块地址,如待写入数据块的逻辑地址,进而根据该逻辑地址即可确定对应的数据块的物理地址。步骤S104 :获取第一数据块的擦除/写入的次数,并当第一数据块的擦除/写入的次数达到设定阈值时,从可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到设定阈值的第二数据块。可反复擦写存储器中保存有每个数据块的擦除/写入的次数,当向数据块写入数据时,先判断该数据块的擦除/写入的次数是否达到设定阈值。其中,设定阈值是为了避免某个数据块被频繁擦除/写入,而其它数据块有可能一直闲置,造成数据块利用不均匀,避免产生数据坏块而设置的阈值。在选择第二数据块时,可按照一定规则,如按照先后顺序、随机选择或者其它适当选择规则,选择擦除/写入的次数未达到设定阈值的数据块。步骤S106 :将第一数据块中的数据与第二数据块中的数据进行交换。选择出的第二数据块的擦除/写入的次数较少,将第一数据块中的数据与第二数据块中的数据交换后,再向第二数据块中写入数据,可以均衡利用可反复擦写存储器中的数据块,有效避免因对一个数据块频繁进行擦除/写入,造成坏数据块的情况发生。步骤S108 :根据数据写入指令向进行数据交换后的第二数据块写入数据。在数据写入流程结束后,将可反复擦写存储器中保存的数据块的擦除/写入的次数进行更新。如,当每块数据块中均记录有本数据块的擦除/写入的次数时,在数据写入后,即对本数据的擦除/写入次数增加计数,进行实时更新;再如,如果可反复擦写存储器的每块数据块的擦除/写入的次数采用集中式记录时,如使用文件或表格记录各个数据块的擦除/写入的次数时,可以在数据写入后,对文件或表格中该数据块对应的擦除/写入的次数进行更新。当然,不限于此,在实际应用中,本领域技术人员也可以采用其它适当方式记录和更新数据块的擦除/写入的次数。通过本实施例,为可反复擦写存储器的每个数据块设定擦除/写入的次数的阈值,在向可反复擦写存储器写入数据时,先确定待写入数据的第一数据块的擦除/写入的次数达到设定阈值,然后,选择新的第二数据块进行数据交换,在数据交换后将待写入数据写入新的第二数据块。在一个数据块“磨损”到设定阈值后,可以再找“合适”的数据块进行替换。这样换下去,就可以尽可能地利用可反复擦写存储器中的各个数据块,把“磨损”平均到各个数据块中,从而避免了单个数据块磨损过大,造成坏块。通过本实施例,解决了使用FAT文件系统进行可反复擦写存储器的数据写入时,因反复操作一个区域,导致该区域所在的整个BLOCK被判断为坏块,浪费可反复擦写存储器的存储性能,无法充分发挥可反复擦写存储器的潜在存储能力的问题,达到了有效利用可反复擦写存储器存储性能的效果。实施例二参照图2,示出了根据本发明实施例二的一种数据写入方法的步骤流程图。本实施例中,以可反复擦写的NAND存储器为例,使用链表方式链接NAND存储器的各个数据块,在每个数据块的OOB (Out Of Band,带外数据)区记录本数据块的擦除/写入的次数。按照NAND存储器的每个数据块的擦除/写入的次数,从小到大使用链表链接NAND存储器的每个数据块;当向数据块写入数据后,根据写入数据的数据块的擦除/写入的次数,将写入数据的数据块移动到擦除/写入的次数小于或等于写入数据的数据块的擦除/写入的次数的数据块之后。以下以一个简单的例子对NAND存储器的链表数据块进行示例性说明,如设定NAND存储器有A、B、C、D四个数据块,初始时,链表结构为A (0) 一 >B (0) 一 >C (0) 一 >D
(0),其中,括号()中的数据表示本数据块被擦除/写入的次数,初始时均为O。当向A数据块写入数据后,链表结构变为B (0)—〉C (0)—〉D (0)—〉A (I);再向B数据块写入数据后,链表结构变为C (0)—〉D (0)—〉A (I) - >B (I);再向A数据块写入数据后,链表结构变为C (O)—〉D (0)- >B (I) 一〉A (2);再向D数据块写入数据后,链表结构变为C
(0)- >B (I) - >D (I) - >A (2),依次类推。基于以上结构,本实施例的数据写入方法包括以下步骤步骤S202 :接收向NAND存储器写入数据的数据写入指令,根据数据写入指令确定待写入数据的第一数据块。步骤S204 :读取第一数据块的OOB区记录的擦除/写入的次数,判断第一数据块的擦除/写入的次数是否达到设定阈值,若是,则执行步骤S206 ;若否,则执行步骤S212。步骤S206 :若第一数据块的擦除/写入的次数达到设定阈值,则判断NAND存储器的数据块链表的表头的数据块的擦除/写入的次数是否达到设定阈值,若未达到,则执行步骤S208 ;若已达到,则给出提示,结束本次数据写入流程。本实施例中,因为采用链表结构按照数据块的擦除/写入的次数从小到大链接NAND存储器的数据块,因此,在需要时,直接选择链表头的数据块作为第二数据块,若该链表头数据块也已达到设定阈值,则说明该链表中已没有未达到设定阈值的数据块了,给出相应提示。但通常情况下,链表头的数据块不会达到设定阈值,因此可直接选择该链表头数据块作为新的第二数据块,与已达到设定阈值第一数据块进行数据交换,进而写入数据。需要说明的是,NAND存储器的数据块的存储结构不限于链表结构,本领域技术人员可以根据实际需求设置适当的结构。对第二数据块的选择也不限于上述使用链表头数据块的形式,本领域技术人员还可以根据实际情况选择其它形式。例如,在NAND存储器中设置数据块信息表,该数据块信息表中存储有NAND存储器的每个数据块的擦除/写入的次数,当然,还可以存储有每个数据块的地址信息,这样,当需要选择数据块时,可以从数据块信息表中获取擦除/写入的次数未达到设定阈值的数据块的信息;进而,按照适当的设定规则(如按照擦除/写入的次数从小到大的顺序选择、随机选择等等),从获取的数据块的信息对应的数据块中选择一个数据块作为第二数据块。进一步地,可以根据数据块信息表中存储的第二数据块的地址信息,直接访问该选择的第二数据块。步骤S208 :选择链表的表头的数据块作为第二数据块,将第一数据块中的数据与选择出的第二数据块中的数据进行交换。例如,擦除/写入的次数的设定阈值为500,A数据块中存储有Dl、D2、D3三个数据,当前擦除/写入的次数为200 ;B数据块中存储有D5、D6两个数据,当前擦除/写入的次数为500 ;则再向B数据块写入数据时,因B数据块的擦除/写入的次数已达到设定阈值,则选择A数据块作为新的数据块。这时,将A数据块中的数据Dl、D2、D3暂时存储到一个临时存储区,删除A数据块中的数据,并将B数据块中的D5、D6复制到A数据块中,A数据块的擦除/写入的次数变为201 ;然后,将B数据块中的数据删除,将临时存储区中的D1、D2、D3复制到B数据块中,B数据块的擦除/写入的次数变为501。可见,通过上述操作,实现了 A数据块和B数据块的数据交换,因A数据块的擦除/写入的次数还未达到设定阈值,因此可以继续对A数据块进行擦除/写入操作,将数据写入A数据块。步骤S210 :根据数据写入指令向进行数据交换后的第二数据块写入数据,执行步骤 S214。步骤S212 :若第一数据块的擦除/写入的次数未达到设定阈值,则根据数据写入指令向该第一数据块直接写入数据,执行步骤S214。
步骤S214 :更新写入数据的数据块的带外数据OOB区记录的本数据块的擦除/写入的次数。步骤S216 :根据更新后的数据块的擦除/写入的次数,将该数据块移动到擦除/写入的次数小于或等于本数据块的擦除/写入的次数的数据块之后,形成按照擦除/写入的次数从小到大链接的数据块链表。通过本实施例,有效延长了 NAND存储器+FAT文件系统的使用时间,为数据卡长时间使用或测试提供了更多可选择的LOG记录方式;并且,使得数据卡在长时间使用或测试时,节约NAND存储器的存储性能,充分发挥NAND存储器的潜在存储能力。另外,需要说明的是,本实施例中,在每个数据块的OOB区记录本数据块的擦除/写入的次数,可以有效利用数据块的OOB区,并且实现简单,不需要另外设置存储区,节约了实现成本。实施例三参照图3,示出了根据本发明实施例三的一种数据写入方法的步骤流程图。本实施例以NAND存储器中存储的文件描述扇区为例,这个扇区的512个字节会被频繁擦写,磨损会比较严重。本实施例在该扇区对应的数据块的OOB区,记录该数据块的擦除/写入的次数,当次数超过设定阈值后,将这个数据块和其它可用的数据块进行交换,使其变成“新数据块”。本实施例的数据写入方法包括以下步骤步骤S302 :LTE数据卡输出LOG信息,LTE数据卡所在设备发出数据写入指令,LTE数据卡所在设备的相应软件模块准备向NAND存储器的文件描述扇区写入数据。步骤S304 :软件模块从数据写入指令中获取文件描述扇区的逻辑地址。步骤S306 :软件模块根据文件描述扇区的逻辑地址确定文件描述扇区的物理地址。步骤S308 :软件模块判断文件描述扇区的物理地址所在的数据块的擦除/写入的次数是否达到设定阈值,若是,则执行步骤S310 ;若否,则执行步骤S316。其中,设定阈值可以依据本领域技术人员的经验或试验仿真设置,一般可以选择NAND存储器可擦除/写入操作寿命次数的90%以下,如,若NAND存储器可反复擦除/写入10万次,则设定阈值可以设置为8万次或9万次等。当然,以上仅为示例性说明,在实际应用中,本领域技术人员可以根据实际需要灵活设置。步骤S310 :软件模块从擦除/写入的次数未达到设定阈值的数据块中选择一个数据块。如,选择链表头数据块或者选择数据块信息表中擦除/写入的次数最少的数据块。步骤S312 :软件模块对文件描述扇区所在的数据块的数据与选择出的数据块中的数据进行交换。交换后,文件描述扇区的数据存储到了选择出的数据块中。步骤S314 :软件模块根据数据写入指令,向选择出的数据块中的文件描述扇区写入数据,结束本次数据写入流程。例如,软件模块根据数据写入指令,控制NAND控制器向选择出的数据块中的文件描述扇区写入数据步骤S316 :若文件描述扇区的物理地址所在的数据块的擦除/写入的次数未达到设定阈值,则软件模块根据数据写入指令向该数据块直接写入数据,结束本次数据写入流程。本实施例针对FAT文件系统对数据块利用率不均匀和NAND存储器擦写次数有限的问题,提供了一种数据写入方案,在待写入的逻辑地址和实际NAND物理地址之间,加入调度(即LTE数据卡所在设备中相应的软件模块的调度),该调度在收到逻辑地址后,会根据擦写次数重新调度,然后映射真正的物理地址后,进行读写操作,从而尽可能地减小了 FAT文件系统操作的不均匀性,充分利用了 NAND存储器的潜在储存能力。例如,本实施例中,以文件描述扇区为例,该扇区的512个字节因会被频繁擦写,磨损比较严重,本实施例的方案在该扇区对应的数据块的OOB区,记录该数据块的擦除/写入的次数,当次数超过设定阈值后,将这个数据块和其它的数据块进行交换,使其变成“新数据块”。在这个“新数据块”磨损到设定阈值后,可以再找“合适”的数据块进行替换。这样换下去,就可以尽可能地利用NAND存储器中各个数据块,把磨损平均到各个数据块中,避免单个数据块磨损过大,造成坏块。可见,通过本实施例的方案,可以有效延长NAND存储器+FAT文件系统的使用时间,使得数据卡在长时间测试时,多一个可选择的LOG记录方式,并且,节约NAND存储器的存储性能,充分发挥NAND存储器的潜在存储能力。实施例四参照图4,示出了根据本发明实施例四的一种数据写入装置的结构框图。本实施例四的数据写入装置包括确定模块402,用于接收向可反复擦写存储器写入数据的数据写入指令,根据数据写入指令确定可反复擦写存储器中待写入数据的第一数据块;获取模块404,用于获取第一数据块的擦除/写入的次数,并当第一数据块的擦除/写入的次数达到设定阈值时,从可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到设定阈值的第二数据块;;执行模块406,用于将第一数据块中的数据与第二数据块中的数据进行交换;根据数据写入指令向进行数据交换后的第二数据块写入数据。优选地,本实施例的数据写入装置还包括记录模块408,用于在执行模块406根据数据写入指令向进行数据交换后的第二数据块写入数据之后,更新第二数据块的OOB区记录的本数据块的擦除/写入的次数。优选地,获取模块404在获取第一数据块的擦除/写入的次数时,读取第一数据块的OOB区记录的擦除/写入的次数。优选地,本实施例的数据写入装置还包括处理模块410,用于在记录模块408更新第二数据块的OOB区记录的本数据块的擦除/写入的次数之后,根据更新后的第二数据块的擦除/写入的次数,将第二数据块移动到擦除/写入的次数小于或等于选择出的数据块的擦除/写入的次数的数据块之后,形成按照擦除/写入的次数从小到大链接的数据块链表。优选地,获取模块404在从可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到设定阈值的第二数据块时,当数据块链表的表头的数据块的擦除/写入的次数未达到设定阈值时,将数据块链表的表头的数据块确定为第二数据块。优选地,获取模块404在从可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到设定阈值的第二数据块时,从数据块信息表中获取擦除/写入的次数未达到设定阈值的数据块的信息,其中,数据块信息表中存储有可反复擦写存储器的每个数据块的擦除/写入的次数;按照设定规则,从获取的数据块的信息对应的数据块中选择一个数据块作为第二数据块。优选地,本实施例的可反复擦写存储器为NAND存储器。本实施例的数据写入装置用于实现前述多个方法实施例中相应的数据写入方法,并具有相应的方法实施例的有益效果,在此不再赘述。需要说明的是,本发明的多个实施例中均以NAND存储器为例,但本领域技术人员应当明了,任意与NAND存储器类似的、可反复进行擦除/写入操作、且具有擦除/写入操作寿命的存储器均可适用本发明的方案。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本发明所提供的一种数据写入方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种数据写入方法,其特征在于,包括 接收向可反复擦写存储器写入数据的数据写入指令,根据所述数据写入指令确定所述可反复擦写存储器中待写入数据的第一数据块; 获取所述第一数据块的擦除/写入的次数,并当所述第一数据块的擦除/写入的次数达到设定阈值时,从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块; 将所述第一数据块中的数据与所述第二数据块中的数据进行交换; 根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据。
2.根据权利要求1所述的方法,其特征在于,根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据的步骤之后,还包括 更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数。
3.根据权利要求2所述的方法,其特征在于,所述获取所述第一数据块的擦除/写入的次数的步骤包括 读取所述第一数据块的OOB区记录的擦除/写入的次数。
4.根据权利要求2或3所述的方法,其特征在于,所述更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数的步骤之后,还包括 根据更新后的所述第二数据块的擦除/写入的次数,将所述第二数据块移动到所述擦除/写入的次数小于或等于所述第二数据块的擦除/写入的次数的数据块之后,形成按照擦除/写入的次数从小到大链接的数据块链表。
5.根据权利要求4所述的方法,其特征在于,所述从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块的步骤包括 当所述数据块链表的表头的数据块的擦除/写入的次数未达到所述设定阈值时,将所述数据块链表的表头的数据块确定为第二数据块。
6.根据权利要求1所述的方法,其特征在于,所述从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块的步骤包括 从数据块信息表中获取所述擦除/写入的次数未达到所述设定阈值的数据块的信息,其中,所述数据块信息表中存储有所述可反复擦写存储器的每个数据块的擦除/写入的次数; 从获取的所述数据块的信息对应的数据块中选择一个数据块为第二数据块。
7.一种数据写入装置,其特征在于,包括 确定模块,用于接收向可反复擦写存储器写入数据的数据写入指令,根据所述数据写入指令确定所述可反复擦写存储器中待写入数据的第一数据块; 获取模块,用于获取所述第一数据块的擦除/写入的次数,并当所述第一数据块的擦除/写入的次数达到设定阈值时,从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块; 执行模块,用于将所述第一数据块中的数据与所述第二数据块中的数据进行交换;根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据。
8.根据权利要求7所述的装置,其特征在于,还包括 记录模块,用于在所述执行模块根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据之后,更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数。
9.根据权利要求8所述的装置,其特征在于,所述获取模块在获取所述第一数据块的擦除/写入的次数时,读取所述第一数据块的OOB区记录的擦除/写入的次数。
10.根据权利要求8或9所述的装置,其特征在于,还包括 处理模块,用于在所述记录模块更新所述第二数据块的带外数据OOB区记录的本数据块的擦除/写入的次数之后,根据更新后的所述第二数据块的擦除/写入的次数,将所述第二数据块移动到所述擦除/写入的次数小于或等于所述第二数据块的擦除/写入的次数的数据块之后,形成按照擦除/写入的次数从小到大链接的数据块链表。
11.根据权利要求10所述的装置,其特征在于,所述获取模块在从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块时,当所述数据块链表的表头的数据块的擦除/写入的次数未达到所述设定阈值时,将所述数据块链表的表头的数据块确定为第二数据块。
12.根据权利要求7所述的装置,其特征在于,所述获取模块在从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块时,从数据块信息表中获取所述擦除/写入的次数未达到所述设定阈值的数据块的信息,其中,所述数据块信息表中存储有所述可反复擦写存储器的每个数据块的擦除/写入的次数;从获取的所述数据块的信息对应的数据块中选择一个数据块为第二数据块。
全文摘要
本发明提供了一种数据写入方法及装置,其中,数据写入方法包括接收向可反复擦写存储器写入数据的数据写入指令,根据所述数据写入指令确定所述可反复擦写存储器中待写入数据的第一数据块;获取所述第一数据块的擦除/写入的次数,并当所述第一数据块的擦除/写入的次数达到设定阈值时,从所述可反复擦写存储器的其它数据块中选择擦除/写入的次数未达到所述设定阈值的第二数据块;将所述第一数据块中的数据与所述第二数据块中的数据进行交换;根据所述数据写入指令向进行数据交换后的所述第二数据块写入数据。通过本发明,达到了有效利用可反复擦写存储器存储性能的效果。
文档编号G06F12/02GK103064792SQ201210575090
公开日2013年4月24日 申请日期2012年12月26日 优先权日2012年12月26日
发明者施纯良 申请人:北京创毅讯联科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1