一种数据更新的方法和装置的制作方法

文档序号:6460167阅读:130来源:国知局
专利名称:一种数据更新的方法和装置的制作方法
技术领域
本发明涉及数据存储技术,具体涉及一种数据存储的方法和装置。
技术背景当前,与非型闪存(NAND FLASH)作为 一种长寿命的非易失性存储 器,在各种数码设备如录音笔、个人数字助理(Personal Digital Assistant, PDA)、数码相机和MP3、 MP4播放器中十分常见。由于NANDFLASH具 有体积小、数据不易丢失、且在断电情况下仍能保持所存储的数据信息的特 点,因而在数据存储领域得到了广泛的应用。NAND FLASH的基本存储单元是页面(Page),每个页面的有效容量 是512字节的整数倍。所谓的有效容量是指用于数据存储的部分,实际上还 包括16字节的校验信息,存放在剩余(spare)区中,因此通常采用(512+16 ) 字节的方式表示一个页面的页面容量。目前2Gb以下容量的NAND FLASH 大多数是(512+16)字节的页面容量,2Gb以上容量的NAND FLASH则将 页面容量扩大到(2048+64)字节,但实质上是将4个(512+16)字节的页 面进行组合形成,因此在进行数据操作时并没有本质区别。NAND FLASH以数据块(block)为单位进行擦除操作,写入操作必须 在空白块进行,如果目标数据块已经有数据,必须先擦除成空白块后再写入, 因此擦除操作是闪存的基本操作。 一般每个数据块包含32个512字节的页 面,容量16KB;而大容量闪存采用2KB页面时,则每个数据块包含64个 页面,容量128KB。由于NAND FLASH具有进行数据擦除时以数据块为单位的特点,因此 如果需要向某个数据块中的其中一个页面中写入数据时,通常要先从NANDFLASH中读取该数据块中的全部数据,将读取的全部数据中,与待更新页 面对应的数据替换为更新数据,再将更新后的该数据块的全部数据重新写入 NAND FLASH中的该数据块中。显然,NAND FLASH采用这种方式进行小数据块的操作时,速度很慢 且效率非常低,同时文件系统的更新大多数时候是对页面进行的操作,因此 也会影响文件系统的运行效率。发明内容本发明实施例提供一种数据更新的方法和装置,能够提高NANDFLASH的写入速度,提高文件系统的效率。为达到上述目的,本发明的技术方案具体是这样实现的 一种数据更新的方法,其特征在于,设置预设数量的緩冲块,该方法包括 将对应于任一数据块的更新数据写入对应于该数据块的緩沖块,建立该更新数据在緩沖块中的位置与对应数据块中待更新数据的位置的对应关系;当任一缓冲块写满时,根据所述对应关系将该緩冲块中的更新数据全部写入对应数据块。所述将对应于任一数据块的更新数据写入对应于该数据块的緩沖块之前, 该方法进一步包括判断各緩冲块中是否緩存了对应该数据块的更新数据,若存在緩冲块已緩 存了对应该数据块的更新数据,则将该緩沖块确定为对应于该数据块的緩沖块; 若所有緩沖块均未緩存对应该数据块的更新数据,则任选一个空白緩沖块确定 为对应于该数据块的緩冲块。所述任选一个空白緩沖块确定为对应于该数据块的緩冲块之前,该方法进 一步包括判断是否存在空白緩沖块,如果存在空白緩冲块,则直接执行所述任选一 个空白緩冲块确定为对应于该数据块的緩冲块;如果不存在空白緩沖块,则任 选一个緩沖块擦除为空白緩冲块,然后执行所述任选一个空白緩沖块确定为对应于该数据块的緩沖块。所述任选一个緩冲块擦除为空白緩冲块包括 选择已緩存更新数据最多的緩冲块; 读取该緩冲块对应的数据块中的所有数据;根据所述对应关系,使用该緩冲块中的更新数据替换对应的部分待更新数据;将执行所述替换后的所有数据写回至对应的数据块,并将该緩冲块擦除为 空白緩冲块。所述更新数据在緩沖块中的位置,按照緩冲块中页面编号从小到大的顺序 依次排列,并设置末位标识表示所述緩冲块中更新数据占用的最后 一个页面的 页面编号。所述将对应于任一数据块的更新数据写入对应于该数据块的緩冲块包括 从末位标识对应的页面后继续写入一个页面大小的更新数据;所述建立并保存该更新数据在緩冲块中的位置与对应数据块中待更新数据 的位置的对应关系包括在更新数据所在页面中保存和对应数据块中待更新数 据的位置,并将末位标识增加一。所述对应数据块中待更新数据的位置为所述待更新数据的数据块编号和页 面编号。根据所述对应关系将该緩冲块中的更新数据全部写入对应数据块包括 读取该緩冲块对应的数据块中的所有数据;根据所述对应关系,使用该緩冲块中的更新数据替换对应的所有待更新数据;将执行所述替换后的所有数据写回至对应的数据块,并将该緩沖块擦除为 空白緩冲块。一种数据更新的装置,该装置包括緩冲块定义模块、緩沖块操作模块和 更新模块;所述緩沖块定义模块,设置预设数量的緩冲块;所述緩冲块操作模块,将对应于任一数据块的更新数据写入对应于该数据 块的緩冲块,建立并保存该更新数据在緩沖块中的位置与对应数据块中待更新数据的位置的对应关系;所述更新模块,当任一緩冲块写满时,根据所述对应关系将该緩冲块中的 更新数据全部写入对应数据块。所述緩沖块操作模块中包括緩冲块对应关系判断单元、空白块判断单元 和擦除单元;所述緩冲块选择判断单元,判断各緩冲块中是否緩存了对应该数据块的更 新数据,若存在緩冲块已緩存了对应该数据块的更新数据,则将该緩冲块确定 为对应于该数据块的緩沖块;若所有緩沖块均未緩存对应该数据块的更新数据, 则通知空白块判断单元;所述空白块判断单元,根据緩沖块选择判断单元的通知,判断是否存在空 白緩沖块,如果存在空白緩冲块,则任选一个空白緩冲块确定为对应于该数据 块的緩冲块;如果不存在空白緩冲块,则通知擦除单元;所述擦除单元,根据空白块判断单元的通知,选择已緩存更新数据最多的 緩冲块,读取该緩沖块对应的数据块中的所有数据;根据所述对应关系,使用 该緩冲块中的更新数据替换对应的部分待更新数据;将执行所述替换后的所有 数据写回至对应的数据块,将该緩冲块擦除为空白緩沖块,并选择该緩沖块为 对应于该数据块的緩冲块。所述緩冲块操作模块,将更新数据在緩冲块中的位置,按照緩冲块中页面 编号从小到大的顺序依次排列,并设置末位标识表示所述緩沖块中更新数据占 用的最后一个页面的页面编号;所述緩沖块操作模块中进一步包括写入单元,从末位标识对应的页面后继 续写入一个页面大小的更新数据,在更新数据所在页面中保存和对应数据块中 待更新数据的位置,并将末位标识增加一;所述对应数据块中待更新数据的位 置为所述待更新数据的数据块编号和页面编号。所述更新模块模块,当任一緩冲块写满时,根据所述对应关系,使用该緩冲块中的更新数据替换对应的所有待更新数据;将执行所述替换后的所有数据 写回至对应的数据块,并将该緩冲块擦除为空白緩沖块。由上述的技术方案可见,本发明实施例的这种数据更新的方法和装置, 避免了对数据块中的页面进行数据更新时要将该数据块中的相应页面更新 后再将全部数据重新写入的重复性操作,每次对页面数据进行更新,减少了 对整块数据的频繁擦除和写入,大大提高了写入和更新数据的效率。


图1为本发明实施例中数据更新的方法的流程示意图。 图2为本发明实施例中将更新数据写入緩沖块的示意图。 图3为本发明实施例中将更新数据复制到对应数据块并擦除緩沖块的 示意图。图4为本发明实施例中数据更新的装置的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本发明进一步详细说明。本发明实施例提供一种数据更新的方法,设置预设数量的緩沖块,该方 法的流程如图l所示,其中包括步骤IOI:每个緩冲块用于存储一个数据块的更新数据,当需要对NAND FLASH中的某数据块进行更新时,判断各緩冲块中是否緩存了对应该数据 块的更新数据,如果是,则执行步骤104,否则执行步骤102。需要说明的是,所述预设的緩冲块不写入文件系统,这是为了将所述的 緩沖块专门用于进行数据更新而不会被文件系统占用。在进行数据更新时, 本次的待更新数据在NAND FLASH中唯一地对应于一个块编号和页编号, 用来表示所述待更新数据的存储位置。从预设緩沖块中选择一个作为待更新 数据所在数据块的緩沖块,用来存储更新数据。步骤102:判断各緩冲块中是否存在空白块,如果是,则执行步骤103, 否则执行步骤104。所述步骤102用来判断緩冲块中是否存在空白块,由于緩沖块的个数有 限,而每次进行数据更新时,不一定是对同一个数据块中的不同页面进行更 新,从而可能会将预留的全部緩沖块全部占用,因此需要判断是否还有剩余 的空白块可供使用。步骤103:选择已緩存更新数据最多的緩冲块,读取该緩冲块中的数据, 将与待更新页面对应的数据替换为更新数据,再将更新后的数据写入所述緩 沖块对应的数据块,继续执行步骤104。需要说明的是,将更新后的数据写入所述緩沖块对应的数据块时,是根据 更新数据在緩冲块中的位置与对应数据块中待更新数据的位置的对应关系进行 的,由于步骤103中选择的数据块中已经緩存了一定的更新数据,而所述的对 应关系在后续步骤104中会进行详细说明。如果预先定义的緩冲块都被占用,没有剩余的空白緩冲块可以使用,则 需要从所述的緩冲块中选择一个并将该緩沖块重新擦除成空白块,以存放本 次的更新数据。需要说明的是,所述步骤103中提供的是一种较佳的实施方式,这是因 为相比包含已更新数据较少的緩冲块,将包含已更新数据最多的緩沖块中的 数据复制到数据存储区域是自然的优选方式,但实际上,也可以不考虑各緩 沖块中包含的已更新数据的多少,而设置步骤103为从所述緩沖块中任意 选择一个,读取该緩冲块中的数据,将与待更新页面对应的数据替换为更新 数据,再将更新后的数据写入所述緩冲块对应的数据块,继续执行步骤104。步骤104:将本次更新的数据写入对应的緩沖块中,建立并保存该更新 数据在緩沖块中的位置与对应数据块中待更新数据的位置的对应关系,继续 执行步骤105。具体方法为从末位标识对应的页面后继续写入一个页面大小的更新数据; 在本次更新数据所在页面中建立并保存该更新数据在緩沖块中的位置与对应数据块中待更新数据的位置的对应关系,将末位标识增加一;所述该更新数据在 緩沖块中的位置为所述待更新数据的块编号和页面编号。图2示出了所述将更新数据写入緩沖块的示意图,假设需要对NAND FLASH中块编号为5,页面编号为4 (block5, page4 )的这部分数据进行更 新,假设预留的区域中包含4个緩冲块,选定其中块编号为#3的緩冲块作 为待更新数据所在数据块对应的緩冲块,设该緩冲块初始为空白块,此时将 更新数据写入#3号緩冲块的pagel中,因此,本次待更新数据的所在位置为 5号块、页面4(block5, page4),而更新数据的实际存放位置则为#3号緩 沖块、页面1 (block#3, pagel ),建立(block5, page4 )与(block#3, pagel ) 之间的对应关系。同时,末位标识用以表示写入緩沖块中的更新数据所在的最后一个页面 的编号,对于空白块,末位标识相应地为0,末位标识随每次对緩沖块的写 入操作进行相应的更新,由于更新数据是按照页面编号依次写入,因此末位 标识相应地表示了该緩冲块中保存的已更新数据的多少,末位标识越大,表 示该緩冲块中保存的已更新数据越多。在緩冲块中写入更新数据的方法为根据末位标识,按照緩冲块中页面 编号的顺序,依次写入更新数据;建立更新数据在緩沖块中的位置与对应数 据块中待更新数据的位置的对应关系。如图2所示,block5对应的緩沖块为 block#3,则第1次更新block5中的数据,更新数据存放在(block#3, pagel ) 中,第2次更新block5中的数据,更新数据存放在(block#3, page2 )中, 第3次更新block5中的数据,更新数据存放在(block#3, page3 )中,依此 类推。如果两次对block5的更新操作中,该緩沖块被擦除用于进行其他数据块的更新,末位标识则相应清O,例如,更新^:据存;^至(block#3, page5 ),然后block#3被用于其它数据块的更新,则此时block#3的末位标识即清0。当block5再次使用緩沖块block#3保存更新数据时,此时对block5的更新数据仍然从(block#3, pagel)重新开始,自然,此时所述对应关系也要相应地改变。步骤105:判断该緩冲块是否已满,如果已满,执行步骤106,否则执 行步骤107。根据末位标识,如果末位标识表示最后更新数据在緩沖块的最后一个页 面,表示该緩冲块已满,则执行步骤106,否则表示未满,继续执行步骤107。步骤106:根据所述对应关系将该緩沖块中的更新数据全部写入对应数 据块,并擦除该缓沖块中的所有数据,继续执行步骤107。根据所述对应关系将该緩冲块中的更新数据全部写入对应数据块的方法 为读取该緩冲块唯一对应的数据块中的所有数据;根据所述对应关系,使用 该緩冲块中的更新数据替换对应的所有待更新数据;将执行所述替换后的所有 数据写回至对应的数据块,并将该緩沖块擦除为空白緩沖块。步骤107:结束本次数据更新,并等待下一次更新的开始。需要说明的是,所述步骤103中,选择已緩存更新数据最多的緩沖块, 读取该緩冲块中的数据,将与待更新页面对应的数据替换为更新数据,再将 更新后的数据写入所述緩冲块对应的数据块的方法为选择已緩存更新数据最多的緩沖块;读取该緩沖块唯一对应的数据块中的 所有数据;根据所述对应关系,使用该緩沖块中的更新数据替换对应的部分待 更新数据;将执行所述替换后的所有数据写回至对应的数据块,并将该緩冲块 擦除为空白緩冲块。如图3所示,设block5对应的緩沖块为block#3, block5 包含n个页面(n为自然数),其中,(block5, page4 )的更新数据位于(block#3, pagel ) , (block5, page6 )的更新数据位于(block#3, page2 ) , (block5, page7)对应于(block#3, page3)等等,则当将该緩沖块擦除时,先将block5 的全部数据读出保存,将其中page4更新为(block#3, pagel)中的数据, 将page6更新为(block#3, page2)中的数据,以此类推,然后将更新后的 数据再整体写入block5,同时緩冲块#3重新成为空白块,以备步骤104使 用。由以上可见,本发明实施例提供的这种数据更新的方法,避免了对数据块中的页面进行数据更新时要将该数据块中的相应页面更新后再将全部数 据重新写入的重复性操作,每次对页面数据进行更新,减少了对整块数据的 频繁擦除和写入,因此大大提高了写入数据的速度,提高了数据更新的效率。 本发明实施例提供一种数据更新的装置,组成结构如图4所示,该装置包括緩沖块定义模块400、緩沖块操作模块对应关系设置模块410和更新模 块420;緩冲块定义模块400、缓冲块操作模块410和更新模块420; 所述緩沖块定义模块400,设置预设数量的緩冲块;所述緩冲块操作模块410,将对应于任一数据块的更新数据写入唯一对应 于该数据块的緩冲块,建立并保存该更新数据在緩冲块中的位置与对应数据块 中待更新数据的位置的对应关系;所述更新模块420,当任一緩冲块写满时,根据所述对应关系将该緩冲块 中的更新数据全部写入对应数据块。所述緩沖块操作模块410中包括緩冲块对应关系判断单元411、空白块 判断单元412和擦除单元413;所述緩冲块选择判断单元,判断各緩冲块中是否緩存了对应该数据块的更 新数据,若存在緩冲块已緩存了对应该数据块的更新数据,则将该緩沖块确定 为唯一对应于该数据块的緩冲块;若所有緩冲块均未緩存对应该数据块的更新 数据,则通知空白块判断单元412;所述空白块判断单元412,根据緩冲块选择判断单元的通知,判断是否存 在空白緩冲块,如果存在空白緩冲块,则任选一个空白緩沖块确定为唯一对应 于该数据块的緩冲块;如果不存在空白緩沖块,则通知擦除单元413;所述擦除单元413,根据空白块判断单元412的通知,选择已緩存更新数 据最多的緩冲块,读取该緩沖块唯一对应的数据块中的所有数据;根据所述对 应关系,使用该緩冲块中的更新数据替换对应的部分待更新数据;将执行所述 替换后的所有数据写回至对应的数据块,将该緩沖块擦除为空白緩冲块,并选 择该緩冲块为唯一对应于该数据块的緩冲块。所述緩沖块操作模块410,将更新数据在緩冲块中的位置,按照緩冲块中 页面编号从小到大的顺序依次排列,并设置末位标识表示所述緩冲块中更新数 据占用的最后一个页面的页面编号;所述緩冲块操作模块410中进一步包括写入单元414,从末位标识对应的 页面后继续写入一个页面大小的更新数据,在更新数据所在页面中保存和对应 数据块中待更新数据的位置,并将末位标识增加一,通知更新模块420;所述 对应数据块中待更新数据的位置为所述待更新数据的数据块编号和页面编号。所述更新模块420,当任一緩冲块写满时,根据所述对应关系,使用该緩 冲块中的更新数据替换对应的所有待更新数据;将执行所述替换后的所有数据 写回至对应的数据块,并将该緩冲块擦除为空白緩沖块。由以上可见,本发明实施例提供的这种数据更新的装置,避免了对数据 块中的页面进行数据更新时要将该数据块中的相应页面更新后再将全部数 据重新写入的重复性操作,每次对页面数据进行更新,减少了对整块数据的 频繁擦除和写入,因此大大提高了写入数据的速度,提高了数据更新的效率。因此,容易理解,以上所述仅为本发明的较佳实施例,并非用于限定本 发明的精神和保护范围,任何熟悉本领域的技术人员所做出的等同变化或替 换,都应视为涵盖在本发明的保护范围之内。
权利要求
1、一种数据更新的方法,其特征在于,设置预设数量的缓冲块,该方法包括将对应于任一数据块的更新数据写入对应于该数据块的缓冲块,建立该更新数据在缓冲块中的位置与对应数据块中待更新数据的位置的对应关系;当任一缓冲块写满时,根据所述对应关系将该缓冲块中的更新数据全部写入对应数据块。
2、 根据权利要求1所述的方法,其特征在于,所述将对应于任一数据块的 更新数据写入对应于该数据块的緩沖块之前,该方法进一步包括判断各緩冲块中是否緩存了对应该数据块的更新数据,若存在緩冲块已緩 存了对应该数据块的更新数据,则将该緩冲块确定为对应于该数据块的緩沖块; 若所有緩沖块均未緩存对应该数据块的更新数据,则任选一个空白緩沖块确定 为对应于该数据块的緩冲块。
3、 如权利要求2所述的方法,其特征在于,所述任选一个空白緩沖块确定 为对应于该数据块的緩冲块之前,该方法进一步包括判断是否存在空白缓沖块,如果存在空白緩冲块,则直接执行所述任选一 个空白緩沖块确定为对应于该数据块的緩冲块;如果不存在空白緩冲块,则任 选一个緩沖块擦除为空白緩冲块,然后执行所述任选一个空白緩沖块确定为对 应于该数据块的緩沖块。
4、 如权利要求3所述的方法,其特征在于,所述任选一个缓冲块擦除为空 白緩冲块包括选择已緩存更新数据最多的緩沖块; 读取该緩冲块对应的数据块中的所有数据;根据所述对应关系,使用该緩冲块中的更新数据替换对应的部分待更新数据;将执行所述替换后的所有数据写回至对应的数据块,并将该緩冲块擦除为空白緩冲块。
5、 如权利要求1至4中任一项所述的方法,其特征在于,所述更新数据在 緩冲块中的位置,按照緩冲块中页面编号从小到大的顺序依次排列,并设置末 位标识表示所述緩沖块中更新数据占用的最后一个页面的页面编号。
6、 根据权利要求5所述的方法,其特征在于,所述将对应于任一数据块的 更新数据写入对应于该数据块的緩沖块包括从末位标识对应的页面后继续写 入一个页面大小的更新数据;所述建立并保存该更新数据在緩冲块中的位置与对应数据块中待更新数据 的位置的对应关系包括在更新数据所在页面中保存和对应数据块中待更新数 据的位置,并将末位标识增加一。
7、 根据权利要求6所述的方法,其特征在于,所述对应数据块中待更新数 据的位置为所述待更新数据的数据块编号和页面编号。
8、 根据权利要求1至4中任一项所述的方法,其特征在于,根据所述对应 关系将该緩沖块中的更新数据全部写入对应数据块包括读取该緩冲块对应的数据块中的所有数据;根据所述对应关系,使用该緩沖块中的更新数据替换对应的所有待更新数据;将执行所述替换后的所有数据写回至对应的数据块,并将该緩冲块^^除为 空白緩冲块。
9、 一种数据更新的装置,其特征在于,该装置包括緩沖块定义模块、緩 沖块操作模块和更新模块;所述緩冲块定义模块,设置预设数量的緩冲块;所述緩沖块操作模块,将对应于任一数据块的更新数据写入对应于该数据 块的緩冲块,建立并保存该更新数据在緩冲块中的位置与对应数据块中待更新 数据的位置的对应关系;所述更新模块,当任一緩沖块写满时,根据所述对应关系将该緩沖块中的 更新数据全部写入对应数据块。
10、 根据权利要求9所述的装置,其特征在于,所述緩冲块操作模块中包括緩沖块对应关系判断单元、空白块判断单元和擦除单元;所述緩沖块选择判断单元,判断各緩沖块中是否緩存了对应该数据块的更新数据,若存在緩冲块已緩存了对应该数据块的更新lt悟,则将该緩冲块确定为对应于该数据块的緩冲块;若所有緩冲块均未緩存对应该数据块的更新数据,则通知空白块判断单元;所述空白块判断单元,根据緩冲块选择判断单元的通知,判断是否存在空白緩沖块,如果存在空白緩沖块,则任选一个空白緩冲块确定为对应于该数据块的緩冲块;如果不存在空白緩冲块,则通知擦除单元;所述擦除单元,根据空白块判断单元的通知,选择已緩存更新数据最多的緩冲块,读取该緩沖块对应的数据块中的所有数据;根据所述对应关系,使用该緩沖块中的更新数据替换对应的部分待更新数据;将执行所述替换后的所有数据写回至对应的数据块,将该緩冲块擦除为空白緩沖块,并选择该緩冲块为对应于该数据块的緩冲块。
11、 根据权利要求IO所述的装置,其特征在于,所述緩沖块操作模块,将 更新数据在緩沖块中的位置,按照緩冲块中页面编号从小到大的顺序依次排列, 并设置末位标识表示所述緩冲块中更新数据占用的最后一个页面的页面编号;所述緩沖块操作模块中进一步包括写入单元,从末位标识对应的页面后继 续写入一个页面大小的更新数据,在更新数据所在页面中保存和对应数据块中 待更新数据的位置,并将末位标识增加一;所述对应数据块中待更新数据的位 置为所述待更新数据的数据块编号和页面编号。
12、 根据权利要求9、 10或11所述的装置,其特征在于, 所述更新模块模块,当任一緩沖块写满时,根据所述对应关系,使用该緩沖块中的更新数据替换对应的所有待更新数据;将执行所述替换后的所有数据 写回至对应的数据块,并将该緩冲块擦除为空白緩沖块。
全文摘要
本发明公开了一种数据更新的方法,设置预设数量的缓冲块,该方法包括将对应于任一数据块的更新数据写入对应于该数据块的缓冲块,建立该更新数据在缓冲块中的位置与对应数据块中待更新数据的位置的对应关系;当任一缓冲块写满时,根据所述对应关系将该缓冲块中的更新数据全部写入对应数据块。本发明还同时公开了一种数据更新的装置,该装置包括缓冲块定义模块,缓冲块操作模块和更新模块。本发明的数据更新的方法和装置,避免了对数据块中的页面进行数据更新时要将该数据块中的相应页面更新后再将全部数据重新写入的重复性操作,提高了数据写入和更新的效率。
文档编号G06F12/12GK101216806SQ20081005637
公开日2008年7月9日 申请日期2008年1月17日 优先权日2008年1月17日
发明者菊 何 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1