数据存储装置及数据存储方法

文档序号:10511828阅读:283来源:国知局
数据存储装置及数据存储方法
【专利摘要】一种数据存储装置,包括有一控制器及一连接于所述控制器的闪存单元,所述控制器包括有:写入模块,用于将数据写入所述闪存单元的一第一目标块中并记录一写入时间;读取模块,用于读取所述第一目标块中的数据并记录一读取时间;校验模块,比较所述读取时间与所述写入时间之间的时间间隔是否超过一设定期限;及更新模块:用于在所述读取时间与写入时间之间的时间间隔超过所述设定期限后读取所述第一目标块中的数据而将所述数据写入至所述闪存单元的一第二目标块中。本发明还揭示了一种数据存储方法。
【专利说明】
数据存储装置及数据存储方法
技术领域
[0001] 本发明涉及一种数据存储装置及数据存储方法。
【背景技术】
[0002] 随着智能电视和移动终端设备的飞速发展,在这些设备上存储系统数据和用户数 据的芯片大都采用Flash芯片实现,因此Flash芯片存储对整个设备的系统安全来说是极 为重要的。
[0003] 闪存(Flash memory)包括多个区块(block),每一区块包括多个页(page)以供 数据储存。此外,闪存的每一区块分别对应至不同的地址。当主机欲存取闪存的数据时,主 机会向闪存的控制器发送存取命令,该存取命令包括所欲存取的区块的地址。例如,当闪存 自控制器接收写入命令时,便依控制器的指示将数据储存至写入地址所对应的区块的某些 页。当闪存自控制器收到读取命令时,便依控制器的指示自读取地址对应的区块的某些页 读出数据而回传数据至控制器。
[0004] 当闪存的一区块的多个页皆被写入数据后,该区块便无法再次被写入数据。因此, 闪存的多个区块可以大致分为数据区与空白区两区,数据区的区块为已储存数据的区块, 而空白区的区块为未储存数据的区块。当主机欲写入数据至对应于位于所述数据区的一数 据区块的地址时,由于该数据区块已无法再被写入更新数据,控制器便只好自空白区取得 一空白区块,将该空白区块的地址改为该数据区块的地址,再将更新数据转写入至该空白 区块。此时原本的数据区块已无用,控制器便抹除该数据区块的数据,以将数据区块转换为 空白区块而置入空白区中。
[0005] 现有的存储装置中,通常利用错误更正码(Error Correcting Code,ECC)来保护 储存在存储装置里的数据。举例来说,当发现储存在一储存装置中的数据有问题时,可利用 与该数据相对应的ECC进行错误更正。然而所述存储装置在经过一段时间存放以后,由于 所述存储装置中的存储单元电子泄露的原因,会使得ECC的错误个数增大,并最终超过ECC 纠错能力,从而引起存储装置中的数据错误,进而减少所述存储装置的数据存储时间。

【发明内容】

[0006] 鉴于以上内容,有必要提供一种能够延长存储装置的数据存储时间的数据存储装 置及数据存储方法。
[0007] -种数据存储装置,包括有一控制器及一连接于所述控制器的闪存单元,所述控 制器包括有:写入模块,用于将数据写入所述闪存单元的一第一目标块中并记录一写入时 间;读取模块,用于读取所述第一目标块中的数据并记录一读取时间;校验模块,比较所述 读取时间与所述写入时间之间的时间间隔是否超过一设定期限;及更新模块:用于在所述 读取时间与写入时间之间的时间间隔超过所述设定期限后,读取所述第一目标块中的数据 而将所述数据写入至所述闪存单元的一第二目标块中。
[0008] 进一步地,所述写入模块写入所述第一目标块中并记录写入时间的数据为影响所 述数据存储装置存储时长的固件程序数据。
[0009] 进一步地,所述校验模块还用于对所述读取模块读取的数据进行ECC校验,当ECC 校验值接近一 ECC阈值时,所述校验模块用于读取所述第一目标块中的数据而让所述更新 模块将所述数据更新至所述闪存单元的第二目标块中。
[0010] 进一步地,所述控制器还包括有一擦除模块,所述擦除模块用于在读取所述第一 目标块中的数据并将所述数据更新至所述闪存单元的第二目标块中之后,擦除所述第一目 标块的数据以让所述第一目标块作为一空块待用,以让所述更新模块将所述第二目标块中 的数据存回至所述第一目标块中。
[0011] 进一步地,在所述读取时间与写入时间之间的时间间隔未超过所述设定期限但所 述ECC校验值接近ECC阈值时,所述更新模块用于读取所述第一目标块中的数据而将所述 数据写入至所述第二目标块中。
[0012] -种数据存储方法,包括有: 写入步骤:将数据写入一闪存单元的一第一目标块中并记录一写入时间; 读取步骤:读取所述第一目标块中的数据并记录一读取时间; 校验步骤:比较所述读取时间与所述写入时间之间的时间间隔是否超过一设定期限; 及 更新步骤:在所述读取时间与写入时间之间的时间间隔超过所述设定期限后,读取所 述第一目标块中的数据而将所述数据写入至所述闪存单元的一第二目标块中。
[0013] 进一步地,所述数据存储方法还包括步骤:将影响所述数据存储装置存储时长的 固件程序数据写入所述第一目标块中并记录写入时间。
[0014] 进一步地,所述方法还包括:读取所述第一目标块中的数据并进行ECC校验,当 ECC校验值接近一 ECC阈值时,读取所述第一目标块中的数据而将所述数据更新至所述闪 存单元的第二目标块中。
[0015] 进一步地,所述方法还包括:擦除步骤:在读取所述第一目标块中的数据而将所 述数据更新至所述闪存单元的第二目标块中之后,擦除所述第一目标块的数据以让所述第 一目标块作为一空块待用,以让所述更新模块将所述第二目标块中的数据存回至所述第一 目标块中。
[0016] 进一步地,所述方法还包括:在所述读取时间与写入时间之间的时间间隔未超过 所述设定期限但所述ECC校验值接近ECC阈值时,读取所述第一目标块中的数据而将所述 数据写入至所述第二目标块中。
[0017] 相较于现有技术,在上述数据存储装置及数据存储方法中,所述闪存单元的区块 (如第一目标块)中的数据在所述校验模块校验到的读取时间与写入时间的间隔超过时间 期限或者ECC校验值接近一 ECC阈值时,所述更新模块即可将对应的区块中的数据读取出 来以转换到一个新的空块中。这样,所述闪存单元的区块的损坏率就大大降低,有效地延长 了所述数据存储装置的数据存储时间。
【附图说明】
[0018] 图1是本发明数据存储装置的一较佳实施方式的一结构示意图。
[0019] 图2是图1中数据存储装置中的一结构示意图。
[0020] 图3是利用图2中的数据存储装置实施的一数据存储方法的一流程图。
[0021] 主要元件符号说明
如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0022] 请参阅图1,在本发明的一较佳实施方式中,一数据存储装置100包括有一控制器 10及一连接于所述控制器10的闪存单元20。在一实施方式中,所述数据存储装置100为 一可携式存储装置,如符合SD/MMC、CF、MS、XD标准的存储卡。所述数据存储装置100可用 来与一主机装置(Host Device) 200连接。
[0023] 请参阅图2,所述控制器10包括有一闪存控制单元11、一微处理器 (Microprogrammed Control Unit,MCU) 12、一只读存储器(Read Only Memory,ROM) 13、及 一接口控制模块15。在本实施例中,所述只读存储器13用于存储一程序代码,而所述微处 理器11则用于执行所述程序代码去控制所述闪存控制单元11对所述闪存单元20的读写。 在一实施方式中,所述闪存单元20包含多个区块(Block),如一第一目标块21及一第二目 标块23。在一实施方式中,所述第一目标块21为存有数据的数据块,所述第二目标块23为 空块。通过所述微处理器11来执行所述程序代码的控制器10对所述闪存单元20进行抹 除数据的运作时是以区块为单位来进行抹除。另外,每一区块可记录特定数量的页(Page), 而所述控制器10对闪存单元20进行写入数据的运作是以页为单位来进行写入。
[0024] 通过所述微处理器11来执行所述程序代码的控制器10还可以利用所述接口控制 模块15来与所述主机装置(Host Device) 200连接。
[0025] 具体来说,所述控制器10中的闪存控制单元11包括有一设置模块110、一写入模 块111、一读取模块112、一校验模块114、一更新模块116、及一擦除模块118。
[0026] 所述设置模块110用于设定所述数据继续有效的一设定期限。所述设定期限可根 据实际需要作相应的更改,如几个小时,一个星期或半个月等,在本实施方式中,所述设定 期限为一个星期,即7天。
[0027] 所述写入模块111用于将数据写入所述闪存单元20的区块并记录一写入时间。 所述写入时间包括有日期及与当天日期的时钟,如2014年12月1日15点(时钟为24小时 制)。在一实施方式中,所述数据可为影响所述数据存储装置100的数据存储时长的固件程 序数据,该类固件程序数据写入所述闪存单元20的区块中的次数相对其他数据写入所述 闪存单元20的区块中的次数较少,但由所述闪存单元20读取的次数相对其他数据由所述 闪存单元20读取的次数较多。
[0028] 所述读取模块112用于读取所述闪存单元20的区块中的数据并记录一读取时间。 所述读取时间包括有日期及与当天日期的时钟,如2014年12月8日9点(时钟为24小时 制)。
[0029] 所述校验模块114用于比较所述读取时间与所述写入时间之间的时间间隔是否 超过所述设定期限。如,若写入时间为2014年12月1日15点,读取时间为2014年12月8 日,则所述读取时间与所述写入时间之间的时间间隔就已经超过所述设定期限之7天。所 述校验模块114还可用于将所述读取模块112读取所述闪存单元20的区块中的数据并进 行ECC校验,并判断所述闪存单元20的区块中的数据的一ECC校验值是否接近一 ECC阈值。 例如,所述第一目标块21中包含有128页(Page),在进行ECC校验时,所述读取模块112读 取每一页(Page)中的数据而让所述校验模块114进行ECC校验以得到所述ECC校验值,所 述校验模块114即可将所述ECC校验值与所述ECC阈值进行对比,如一 ECC阈值36。
[0030] 所述更新模块116用于在所述闪存单元20中的一区块中的数据的读取时间与写 入时间之间的时间间隔超过所述设定期限后读取相应区块中的数据而将所述区块中的数 据写入至所述闪存单元20的一空块中。例如,若所述闪存单元20中的第一目标块21中的 数据的读取时间与写入时间之间的时间间隔超过所述设定期限(7天)后读取所述第一目标 块21中的数据而将所述第一目标块21中的数据写入至所述闪存单元20的第二目标块23 中。在一实施方式中,所述更新模块116用于将所述第一目标块21中的数据暂存至所述闪 存单元20的第二目标块23中,当所述第一目标块21的数据擦除时,所述更新模块116还 可读取暂存在所述第二目标块23中的数据而将第二目标块23中的数据存回至所述第一目 标块21中。所述更新模块116还用于在所述校验模块114得到的所述闪存单元20中的一 区块的ECC校验值接近所述ECC阈值时将所述区块中的数据写入至所述闪存单元20的一 空块中。例如,若所述校验模块114得到的所述闪存单元20中的第一目标块21中的数据 的ECC校验值为32而接近所述ECC阈值36时,所述更新模块116将所述第一目标块21中 的数据写入至所述闪存单元20的第二目标块23中。当然,在所述校验模块114得到的所 述第一目标块21的ECC校验值接近所述ECC阈值时但所述第一目标块21中的数据的读取 时间与写入时间之间的时间间隔并未超过所述设定期限(7天)时,所述更新模块116亦将 所述第一目标块21中的数据写入至所述闪存单元20的第二目标块23中。
[0031] 所述擦除模块118用于在所述更新模块116将数据更新至所述闪存单元20的空 块(第二目标块23)之后擦除所述闪存单元20中的ECC校验值接近所述ECC阈值的区块, 或擦除读取时间与写入时间之间的时间间隔超过所述设定期限后的区块,如所述第一目标 块21中的数据以让所述第一目标块21作为一空块待用,这样以使所述更新模块116能够 读取暂存至所述第二目标块23中的数据而将第二目标块23的数据存回所述第一目标块21 中。
[0032] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能 单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功 能单元或模块完成,即将存储装置的内部结构划分成不同的功能单元或模块,以完成以上 描述的全部或者部分功能。实施方式中的各功能单元、模块可以集成在一个处理单元中,也 可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成 的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单 元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
[0033] 请参阅图3,图3为本发明第一实施方式中通过所述数据存储装置100实现一种数 据存储方法300的一流程图,所述数据存储方法300方法包括以下步骤: 步骤301 :所述写入模块110将数据写入所述闪存单元20的区块(如第一目标块21冲 并记录一写入时间,所述写入时间例如为2014年12月1日15点(时钟为24小时制)。
[0034] 步骤302 :所述读取模块111读取所述闪存单元20区块(如第一目标块21)中的 数据并记录一读取时间,所述读取时间例如为2014年12月8日9点(时钟为24小时制)或 2014年12月4日13点(时钟为24小时制)。
[0035] 步骤303 :所述校验模块114比较所述闪存单元20区块(如第一目标块21)中数据 的读取时间与所述写入时间之间的时间间隔是否超过一设定期限;若是则进行步骤305 ; 若否则不作处理。
[0036] 步骤304 :所述校验模块114将所述读取模块112读取所述闪存单元20的区块中 的数据进行ECC校验,并判断所述闪存单元20的区块中的数据的一 ECC校验值是否接近一 ECC阈值;若是则进行步骤305 ;若否则不作处理。例如,所述ECC阈值为36,所述ECC校验 值为10或32。
[0037] 步骤305 :所述更新模块116读取所述闪存单元20的区块(如第一目标块21)中 的数据而将所述数据更新至所述闪存单元20的空块(如第二目标块23)中。例如,若所述 第一目标块21中的数据的一 ECC阈值为32时或所述第一目标块21的数据的读取时间与 所述写入时间之间的时间间隔为8天而超过所述设定期限(7天)时,所述更新模块116读 取所述第一目标块21中的数据而将所述数据更新至所述第二目标块23中。当然,当所述 所述第一目标块21中的数据的一 ECC阈值为10时或所述第一目标块21的数据的读取时 间与所述写入时间之间的时间间隔为小于7天而未超过所述设定期限(7天)时,所述更新 模块116就不作处理。
[0038] 步骤306 :所述擦除模块118擦除所述第一目标块21的数据以让所述第一目标块 21作为一空块待用,以让所述更新模块116能够将所述第二目标块23中的数据存回所述第 一目标块21中。
[0039] 综上所述,在所述闪存单元20的数据在所述校验模块114校验到的读取时间与写 入时间的间隔超过时间期限或者ECC校验值接近一 ECC阈值时,所述更新模块116即可将 对应的区块中的数据读取出来以暂存到一个新的空块中,而擦除模块118将原区块的数据 擦除以作为一待用空块,以让所述更新模块116能够读取暂存至所述第二目标块23中的数 据而将第二目标块23的数据存回所述第一目标块21中。这样,所述闪存单元20的区块的 损坏率就大大降低,有效地延长了所述数据存储装置100的寿命。
[0040] 本领域技术人员可以理解,图2中示出的组成结构并不构成对数据存储装置100 的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,而 图3中的数据存储方法300亦采用图2中所示的更多或更少的部件,或者组合某些部件,或 者不同的部件布置来实现。
[0041] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定 本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在 不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当 视为属于本发明由所提交的权利要求书确定的专利保护范围。
【主权项】
1. 一种数据存储装置,包括有一控制器及一连接于所述控制器的闪存单元,其特征在 于:所述控制器包括有: 写入模块,用于将数据写入所述闪存单元的一第一目标块中并记录一写入时间; 读取模块,用于读取所述第一目标块中的数据并记录一读取时间; 校验模块,比较所述读取时间与所述写入时间之间的时间间隔是否超过一设定期限; 及 更新模块,用于在所述读取时间与写入时间之间的时间间隔超过所述设定期限后,读 取所述第一目标块中的数据而将所述数据写入至所述闪存单元的一第二目标块中。2. 如权利要求1所述的数据存储装置,其特征在于:所述写入模块写入所述第一目标 块中并记录写入时间的数据为影响所述数据存储装置存储时长的固件程序数据。3. 如权利要求1所述的数据存储装置,其特征在于:所述校验模块还用于对所述读取 模块读取的数据进行ECC校验,当ECC校验值接近一 ECC阈值时,所述校验模块用于读取所 述第一目标块中的数据而让所述更新模块将所述数据更新至所述闪存单元的第二目标块 中。4. 如权利要求1或3所述的数据存储装置,其特征在于:所述控制器还包括有一擦除 模块,所述擦除模块用于在读取所述第一目标块中的数据并将所述数据更新至所述闪存单 元的第二目标块中之后,擦除所述第一目标块的数据以让所述第一目标块作为一空块待 用,以让所述更新模块将所述第二目标块中的数据存回至所述第一目标块中。5. 如权利要求3所述的数据存储装置,其特征在于:在所述读取时间与写入时间之间 的时间间隔未超过所述设定期限但所述ECC校验值接近ECC阈值时,所述更新模块用于读 取所述第一目标块中的数据而将所述数据写入至所述第二目标块中。6. -种数据存储方法,包括有: 写入步骤:将数据写入一闪存单元的一第一目标块中并记录一写入时间; 读取步骤:读取所述第一目标块中的数据并记录一读取时间; 校验步骤:比较所述读取时间与所述写入时间之间的时间间隔是否超过一设定期限; 及 更新步骤:在所述读取时间与写入时间之间的时间间隔超过所述设定期限后,读取所 述第一目标块中的数据而将所述数据写入至所述闪存单元的一第二目标块中。7. 如权利要求6所述的数据存储方法,其特征在于:所述数据存储方法还包括步骤:将 影响所述数据存储装置存储时长的固件程序数据写入所述第一目标块中并记录写入时间。8. 如权利要求6所述的数据存储方法,其特征在于:所述方法还包括: 读取所述第一目标块中的数据并进行ECC校验,当ECC校验值接近一 ECC阈值时,读取 所述第一目标块中的数据而将所述数据更新至所述闪存单元的第二目标块中。9. 如权利要求6或8所述的数据存储方法,其特征在于:所述方法还包括: 擦除步骤:在读取所述第一目标块中的数据而将所述数据更新至所述闪存单元的第二 目标块中之后,擦除所述第一目标块的数据以让所述第一目标块作为一空块待用,以让所 述更新模块将所述第二目标块中的数据存回至所述第一目标块中。10. 如权利要求6所述的数据存储方法,其特征在于:所述方法还包括: 在所述读取时间与写入时间之间的时间间隔未超过所述设定期限但所述ECC校验值 接近ECC阈值时,读取所述第一目标块中的数据而将所述数据写入至所述第二目标块中。
【文档编号】G06F3/06GK105867833SQ201510029219
【公开日】2016年8月17日
【申请日】2015年1月21日
【发明人】林寅, 吴大畏, 李晓强
【申请人】深圳市硅格半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1