技术领域
[0001] 本
发明专利涉及固态硬盘技术领域,具体为一种延长固态硬盘寿命的方 法。
背景技术
[0002] 固态
驱动器,俗称固态硬盘,固态硬盘是用固态
电子存储芯片阵列而制 成的硬盘,英语里把固体电容称之为Solid而得名,SSD由控制单元和存储单 元(FLASH芯片、DRAM芯片)组成,固态硬盘在
接口的规范和定义、功能及 使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘 一致,被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、 电
力、医疗、航空、导航设备等诸多领域。
[0003] SSD固态硬盘相比传统HDD机械硬盘的优点是性能强、体积小、无噪音, 固态硬盘在原理构造上基本上和我们应用普通机械硬盘有很多相似的地方, 比如模拟扇区、模拟磁道等,在固态硬盘内部,最核心的部分就算
控制器了, 是整个固态硬盘的核心,里面包括很多构架,比如读写
算法、接口定义等, 主要影响寿命的就是读写次数,在固态硬盘的算法定义中,
修改一次才算一 次真正读写,目前固态硬盘的寿命往往由于Flash磨损程度导致误码率的提 高,进而出现读取干扰、编程干扰和数据保持发生错误的情况,为此提出一 种可以通过降低磨损引起的误码率升高,延长固态硬盘使用寿命的方法来解 决此问题。
[0004] 发明专利内容
[0005] 本发明专利的目的在于提供一种延长固态硬盘寿命的方法,具备可以通 过降低磨损引起的误码率升高,延长固态硬盘使用寿命的优点,解决了目前 固态硬盘的寿命往往由于Flash磨损程度导致误码率的提高,进而出现读取 干扰、编程干扰和数据保持发生错误情况的问题。
[0006] 为实现上述目的,本发明专利提供如下技术方案:一种延长固态硬盘寿 命的方法,包括如下步骤:
[0007] (1)数据的预处理:对于主机写入的数据进行审核,随后对数据进行筛 选,最后再对数据进行排序;
[0008] (2)数据的写入:将进行预处理后的数据写入Flash存储单元,且写入 次数达到预设次数后,强制将数据仅在内存中更新,不写回至固态硬盘,由
主控制器对数据进行压缩或散列处理;
[0009] (3)数据的处理:将写入的数据自检并进行系统数据的格式化后,把所 有空闲的区域采用无效的随机数进行填充,再实时擦除该物理
块后再写入新 数据;
[0010] (4)数据的读取:在进行数据读取时,使用预处理步骤的逆算法对数据 进行处理并返回主机,用户读取数据或硬盘空闲时,由主控制器主动读取数 据;
[0011] (5)数据的误码率统计:固态硬盘的主控制器在读取数据时,对Flash 存储单元读出的原始数据误码率进行分析和统计;
[0012] (6)数据误码率的降低:通过对误码率的分析后,由主控制器对Flash 存储单元的判决
阈值进行调整,降低Flash的磨损程度。
[0013] 优选的,所述步骤(1)中,对数据预处理的可选方法有两种,包括无损 压缩算法和AES等对称加密算法。
[0014] 优选的,所述步骤(1)中,对于原始数据应主要从完整性和准确性两个 方面去审核,其次还包括适用性、及时性和一次性的审核;数据筛选包括两 方面的内容:一是将某些不符合要求的数据或有
明显错误地数据予以剔除, 二是将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔 除;对于数据的排序,根据不同的数据类型,交替使用升降序、首字母、递 增或递减等方法。
[0015] 优选的,所述步骤(2)中,Flash存储单元属于多层式存储闪速
存储器, 且闪速存储器的控制单元读取Flash存储单元的各实体存储区块的写入/抹除 次数,当写入/抹除次数超过写入/抹除上限值时,将实体存储区块由多层式 存储格式转换为
单层式存储格式。
[0016] 优选的,所述步骤(3)中,在填充随机数时,将对应的物理块标记为垃 圾块,且在完成将待回收物理块的有效数据搬移后,不对回收的物理块作擦 除操作,只是将该物理块标志为垃圾块。
[0017] 优选的,在写入新的数据时,将标志的物理垃圾块回收,把若干个Block 上面的有效数据搬移到某个Block,然后擦掉原先的Block,然后再把Host 数据写入。
[0018] 优选的,所述步骤(4)中,还可采用三种数据读取方式:①预加载数据, 此种方式只适合小数据,通常在程序中定义某固定值,如循环次数等,而很 少用来读取
训练数据;②产生数据,再把数据喂给后端,在设计Graph的时 候留占位符,在真正Run的时候向占位符中传递数据,喂给后端训练;③从 文件中直接读取,将数据的读入和计算分别放在两个线程中,读入的数据保 存为内存中的一个队列,负责计算的线程可以源源不断地从内存队列中读取 数据。
[0019] 优选的,所述步骤(5)中,在进行分析统计时,可采用普通统计分配法 和实际测量法,实际测量技术使用循环冗余检查方式(CRC)来确定一段时间 内发生的误码情况。
[0020] 优选的,所述步骤(5)中,在统计时,从步骤(1)中调用排序完成后 的数据,可以随时进行统计,而不需要写入专
门的序列。
[0021] 优选的,所述步骤(6)中,在连续的周期内激活的计数模块中,计算表 示二进制
信号的两组分别具有第二二进制数值和第一二进制数值的比特数目 之间代数差的差值,在每个周期的末尾,按照差值的符号分别是正还是负, 调整模块通过增量来增大或减小判决阈值。
[0022] 与
现有技术相比,本发明专利的有益效果如下:
[0023] 1、本发明专利所采用的方法,可以通过降低磨损引起的误码率升高,延 长固态硬盘的使用寿命,解决了目前固态硬盘的寿命往往由于Flash磨损程 度导致误码率的提高,进而出现读取干扰、编程干扰和数据保持发生错误情 况的问题,通过预处理的数据排序,可避免写入专门序列的繁琐步骤,借助 自主的误码率分析,可对判决阈值及时调整,以降低误码率。
[0024] 2、本发明专利通过系统强制将数据仅在内存中更新,而不写回固态硬盘 中,可减少对固态硬盘的擦写次数,从而有效提高固态硬盘的使用寿命,写 入新数据时,通过预先擦除垃圾物理块的方式,可以保证大部分的空闲物理 块都不会长时间处于涂抹状态,同时又克服了数据写入时才擦除操作带来的 响应延时的问题,通过将标志的物理垃圾块回收,使得在写入数据时总能找 到可用的Block来进行写入,避免了等待时间,对于同样多的HOST数据,写 入到FLASH中的数据越少,也就意味着FLASH损耗越小。
附图说明
具体实施方式
[0026] 下面将结合本发明专利
实施例中的附图,对本发明专利实施例中的技术 方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明专利一部 分实施例,而不是全部的实施例。基于本发明专利中的实施例,本领域普通 技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本 发明专利保护的范围。
[0027] 请参阅图1,一种延长固态硬盘寿命的方法,包括如下步骤:
[0028] (1)数据的预处理:对于主机写入的数据进行审核,随后对数据进行筛 选,最后再对数据进行排序;
[0029] (2)数据的写入:将进行预处理后的数据写入Flash存储单元,且写入 次数达到预设次数后,强制将数据仅在内存中更新,不写回至固态硬盘,由 主控制器对数据进行压缩或散列处理;
[0030] (3)数据的处理:将写入的数据自检并进行系统数据的格式化后,把所 有空闲的区域采用无效的随机数进行填充,再实时擦除该物理块后再写入新 数据;
[0031] (4)数据的读取:在进行数据读取时,使用预处理步骤的逆算法对数据 进行处理并返回主机,用户读取数据或硬盘空闲时,由主控制器主动读取数 据;
[0032] (5)数据的误码率统计:固态硬盘的主控制器在读取数据时,对Flash 存储单元读出的原始数据误码率进行分析和统计;
[0033] (6)数据误码率的降低:通过对误码率的分析后,由主控制器对Flash 存储单元的判决阈值进行调整,降低Flash的磨损程度。
[0034] 实施例一:
[0035] 数据的预处理:对于主机写入的数据进行审核,随后对数据进行筛选, 最后再对数据进行排序;对数据预处理的可选方法有两种,包括
无损压缩算 法和AES等对称加密算法,对于原始数据应主要从完整性和准确性两个方面 去审核,其次还包括适用性、及时性和一次性的审核;数据筛选包括两方面 的内容:一是将某些不符合要求的数据或有明显错误地数据予以剔除,二是 将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除; 对于数据的排序,根据不同的数据类型,交替使用升降序、首字母、递增或 递减等方法,数据的写入:将进行预处理后的数据写入Flash存储单元,且 写入次数达到预设次数后,强制将数据仅在内存中更新,不写回至固态硬盘, 由主控制器对数据进行压缩或散列处理;数据的处理:将写入的数据自检并 进行系统数据的格式化后,把所有空闲的区域采用无效的随机数进行填充, 再实时擦除该物理块后再写入新数据;数据的读取:在进行数据读取时,使 用预处理步骤的逆算法对数据进行处理并返回主机,用户读取数据或硬盘空 闲时,由主控制器主动读取数据;数据的误码率统计:固态硬盘的主控制器 在读取数据时,对Flash存储单元读出的原始数据误码率进行分析和统计; 数据误码率的降低:通过对误码率的分析后,由主控制器对Flash存储单元 的判决阈值进行调整,降低Flash的磨损程度。
[0036] 实施例二:
[0037] 数据的预处理:对于主机写入的数据进行审核,随后对数据进行筛选, 最后再对数据进行排序;对数据预处理的可选方法有两种,包括无损压缩算 法和AES等对称加密算法,对于原始数据应主要从完整性和准确性两个方面 去审核,其次还包括适用性、及时性和一次性的审核;数据筛选包括两方面 的内容:一是将某些不符合要求的数据或有明显错误地数据予以剔除,二是 将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除; 对于数据的排序,根据不同的数据类型,交替使用升降序、首字母、递增或 递减等方法,数据的写入:将进行预处理后的数据写入Flash存储单元,且 写入次数达到预设次数后,强制将数据仅在内存中更新,不写回至固态硬盘, 由主控制器对数据进行压缩或散列处理;Flash存储单元属于多层式存储闪速 存储器,且闪速存储器的控制单元读取Flash存储单元的各实体存储区块的 写入/抹除次数,当写入/抹除次数超过写入/抹除上限值时,将实体存储区块 由多层式存储格式转换为单层式存储格式,数据的处理:将写入的数据自检 并进行系统数据的格式化后,把所有空闲的区域采用无效的随机数进行填充, 再实时擦除该物理块后再写入新数据;数据的读取:在进行数据读取时,使 用预处理步骤的逆算法对数据进行处理并返回主机,用户读取数据或硬盘空 闲时,由主控制器主动读取数据;数据的误码率统计:固态硬盘的主控制器 在读取数据时,对Flash存储单元读出的原始数据误码率进行分析和统计; 数据误码率的降低:通过对误码率的分析后,由主控制器对Flash存储单元 的判决阈值进行调整,降低Flash的磨损程度。
[0038] 实施例三:
[0039] 数据的预处理:对于主机写入的数据进行审核,随后对数据进行筛选, 最后再对数据进行排序;对数据预处理的可选方法有两种,包括无损压缩算 法和AES等对称加密算法,对于原始数据应主要从完整性和准确性两个方面 去审核,其次还包括适用性、及时性和一次性的审核;数据筛选包括两方面 的内容:一是将某些不符合要求的数据或有明显错误地数据予以剔除,二是 将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除; 对于数据的排序,根据不同的数据类型,交替使用升降序、首字母、递增或 递减等方法,数据的写入:将进行预处理后的数据写入Flash存储单元,且 写入次数达到预设次数后,强制将数据仅在内存中更新,不写回至固态硬盘, 由主控制器对数据进行压缩或散列处理;Flash存储单元属于多层式存储闪速 存储器,且闪速存储器的控制单元读取Flash存储单元的各实体存储区块的 写入/抹除次数,当写入/抹除次数超过写入/抹除上限值时,将实体存储区块 由多层式存储格式转换为单层式存储格式,数据的处理:将写入的数据自检 并进行系统数据的格式化后,把所有空闲的区域采用无效的随机数进行填充, 再实时擦除该物理块后再写入新数据;在填充随机数时,将对应的物理块标 记为垃圾块,且在完成将待回收物理块的有效数据搬移后,不对回收的物理 块作擦除操作,只是将该物理块标志为垃圾块,在写入新的数据时,将标志 的物理垃圾块回收,把若干个Block上面的有效数据搬移到某个Block,然后 擦掉原先的Block,然后再把Host数据写入,数据的读取:在进行数据读取 时,使用预处理步骤的逆算法对数据进行处理并返回主机,用户读取数据或 硬盘空闲时,由主控制器主动读取数据;数据的误码率统计:固态硬盘的主 控制器在读取数据时,对Flash存储单元读出的原始数据误码率进行分析和 统计;数据误码率的降低:通过对误码率的分析后,由主控制器对Flash存 储单元的判决阈值进行调整,降低Flash的磨损程度。
[0040] 实施例四:
[0041] 数据的预处理:对于主机写入的数据进行审核,随后对数据进行筛选, 最后再对数据进行排序;对数据预处理的可选方法有两种,包括无损压缩算 法和AES等对称加密算法,对于原始数据应主要从完整性和准确性两个方面 去审核,其次还包括适用性、及时性和一次性的审核;数据筛选包括两方面 的内容:一是将某些不符合要求的数据或有明显错误地数据予以剔除,二是 将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除; 对于数据的排序,根据不同的数据类型,交替使用升降序、首字母、递增或 递减等方法,数据的写入:将进行预处理后的数据写入Flash存储单元,且 写入次数达到预设次数后,强制将数据仅在内存中更新,不写回至固态硬盘, 由主控制器对数据进行压缩或散列处理;Flash存储单元属于多层式存储闪速 存储器,且闪速存储器的控制单元读取Flash存储单元的各实体存储区块的 写入/抹除次数,当写入/抹除次数超过写入/抹除上限值时,将实体存储区块 由多层式存储格式转换为单层式存储格式,数据的处理:将写入的数据自检 并进行系统数据的格式化后,把所有空闲的区域采用无效的随机数进行填充, 再实时擦除该物理块后再写入新数据;在填充随机数时,将对应的物理块标 记为垃圾块,且在完成将待回收物理块的有效数据搬移后,不对回收的物理 块作擦除操作,只是将该物理块标志为垃圾块,在写入新的数据时,将标志 的物理垃圾块回收,把若干个Block上面的有效数据搬移到某个Block,然后 擦掉原先的Block,然后再把Host数据写入,数据的读取:在进行数据读取 时,使用预处理步骤的逆算法对数据进行处理并返回主机,用户读取数据或 硬盘空闲时,由主控制器主动读取数据;还可采用三种数据读取方式:①预 加载数据,此种方式只适合小数据,通常在程序中定义某固定值,如循环次 数等,而很少用来读取训练数据;②产生数据,再把数据喂给后端,在设计 Graph的时候留占位符,在真正Run的时候向占位符中传递数据,喂给后端训 练;③从文件中直接读取,将数据的读入和计算分别放在两个线程中,读入 的数据保存为内存中的一个队列,负责计算的线程可以源源不断地从内存队 列中读取数据,数据的误码率统计:固态硬盘的主控制器在读取数据时,对 Flash存储单元读出的原始数据误码率进行分析和统计;数据误码率的降低: 通过对误码率的分析后,由主控制器对Flash存储单元的判决阈值进行调整, 降低Flash的磨损程度。
[0042] 实施例五:
[0043] 数据的预处理:对于主机写入的数据进行审核,随后对数据进行筛选, 最后再对数据进行排序;对数据预处理的可选方法有两种,包括无损压缩算 法和AES等对称加密算法,对于原始数据应主要从完整性和准确性两个方面 去审核,其次还包括适用性、及时性和一次性的审核;数据筛选包括两方面 的内容:一是将某些不符合要求的数据或有明显错误地数据予以剔除,二是 将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除; 对于数据的排序,根据不同的数据类型,交替使用升降序、首字母、递增或 递减等方法,数据的写入:将进行预处理后的数据写入Flash存储单元,且 写入次数达到预设次数后,强制将数据仅在内存中更新,不写回至固态硬盘, 由主控制器对数据进行压缩或散列处理;Flash存储单元属于多层式存储闪速 存储器,且闪速存储器的控制单元读取Flash存储单元的各实体存储区块的 写入/抹除次数,当写入/抹除次数超过写入/抹除上限值时,将实体存储区块 由多层式存储格式转换为单层式存储格式,数据的处理:将写入的数据自检 并进行系统数据的格式化后,把所有空闲的区域采用无效的随机数进行填充, 再实时擦除该物理块后再写入新数据;在填充随机数时,将对应的物理块标 记为垃圾块,且在完成将待回收物理块的有效数据搬移后,不对回收的物理 块作擦除操作,只是将该物理块标志为垃圾块,在写入新的数据时,将标志 的物理垃圾块回收,把若干个Block上面的有效数据搬移到某个Block,然后 擦掉原先的Block,然后再把Host数据写入,数据的读取:在进行数据读取 时,使用预处理步骤的逆算法对数据进行处理并返回主机,用户读取数据或 硬盘空闲时,由主控制器主动读取数据;还可采用三种数据读取方式:①预 加载数据,此种方式只适合小数据,通常在程序中定义某固定值,如循环次 数等,而很少用来读取训练数据;②产生数据,再把数据喂给后端,在设计 Graph的时候留占位符,在真正Run的时候向占位符中传递数据,喂给后端训 练;③从文件中直接读取,将数据的读入和计算分别放在两个线程中,读入 的数据保存为内存中的一个队列,负责计算的线程可以源源不断地从内存队 列中读取数据,数据的误码率统计:固态硬盘的主控制器在读取数据时,对 Flash存储单元读出的原始数据误码率进行分析和统计;在进行分析统计时, 可采用普通统计分配法和实际测量法,实际测量技术使用循环冗余检查方式 (CRC)来确定一段时间内发生的误码情况,调用排序完成后的数据,可以随 时进行统计,而不需要写入专门的序列,数据误码率的降低:通过对误码率 的分析后,由主控制器对Flash存储单元的判决阈值进行调整,降低Flash 的磨损程度,在连续的周期内激活的计数模块中,计算表示二进制信号的两 组分别具有第二二进制数值和第一二进制数值的比特数目之间代数差的差 值,在每个周期的末尾,按照差值的符号分别是正还是负,调整模块通过增 量来增大或减小判决阈值。
[0044] 尽管已经示出和描述了本发明专利的实施例,对于本领域的普通技术人 员而言,可以理解在不脱离本发明专利的原理和精神的情况下可以对这些实 施例进行多种变化、修改、替换和变型,本发明专利的范围由所附
权利要求 及其等同物限定。