闪存存取方法与应用此方法的闪存技术

技术编号:15863830 阅读:43 留言:0更新日期:2017-07-23 08:12
一种闪存存取方法与应用此方法的闪存,此方法包括下列步骤:从闪存读取第一数据,第一数据具有第一储存数据与第一错误更正数据,第一储存数据具有第一数据长度,第一错误更正数据具有第二数据长度;得到关于第一储存数据的第一错误参数;当第一错误参数大于第一门坎值时,选择性地将第一储存数据写入闪存为第二数据,第二数据具有第一储存数据与第二错误更正数据,第二错误更正数据具有第三数据长度,第三数据长度大于第二数据长度,第一错误更正数据与第二错误更正数据以第一算法,依据第一储存数据所产生。

【技术实现步骤摘要】
闪存存取方法与应用此方法的闪存
本专利技术涉及一种闪存的存取方法,尤其涉及一种用以延长闪存寿命的闪存存取方法。
技术介绍
闪存(FlashMemory)具有访问速度快的优点,从而在近年来被普遍的使用于做为各种电子装置的储存媒介。且大容量的闪存被制作为固态硬盘(solid-statedisk,SSD)或U盘(pendrive)。然而,闪存随着存取次数的增加,所储存的数据的位错误率也会上升。因此闪存通常会对每一笔数据配对一个错误更正码(error-correctioncode,ECC)。现有的作法中,闪存的单元格式是固定的。图1现有的闪存储存区块配置示意图。如图1所示,闪存1000具有多组成对的数据区块D1至D8与错误检查区块P1至P8。数据区块D1对应错误检查区块P1。且每个数据区块的逻辑大小相等,每个错误检查区块的逻辑大小也相等。举例来说,每个数据区块的逻辑大小为1024字节(1kilobyte,1kB),而每个错误检查区块的逻辑大小为80字节。换句话说,每一笔数据的长度与对应的错误更正码的长度是固定的。这是为了方便使用硬件电路进行数据的存取与错误更正。然而,当一笔数据的位错误率随着快闪记体的存取次数而增加,错误更正码因为长度固定,所以将会发生无法进行错误更正的状况。当闪存有部分的储存区块无法进行错误更正,则储存在闪存的数据就无法更正为正确的数据。最终,闪存将无法继续使用,因为所有的储存区块的位错误率都上升到无法使用错误更正的技术来修正错误。又NAND闪存芯片的储存架构大致上为数个区块,每个区块包含数个页面,每个页面包含数个字节。而数据的存取大致上有读取(Read)、写入(Program)与抹除(Erase)这三种操作指令。读取指令以最少1个Byte,最多1个Page为单位来完成一次操作。写入与抹除指令分别以1个页面与1个区块为单位来完成一次操作。倘若用户预写入一笔少量数据,则必需要将所对应区块所有页面的数据一并读出。等待更新完数据后,抹除此区块的数据,再将所有数据写入此区块。但每个区块都有其写入/抹除的次数限制,若超过此限制次数,则此区块可能会失效,进而导致数据错误率的提升。而闪存转换层(NANDFlashTranslationLayer,NFTL)就扮演了一个很重要的角色。闪存转换层主要是在有限的暂存内存下完成下列功能:逻辑地址(Logicaladdress)与物理地址(Physicaladdress)转换、坏块管理(BadBlockmanagement)、垃圾回收功能(Garbage-Collectionfunction)、均衡写入功能(Wear-levelingfunction)、断电恢复功能(Power-cyclingfunction)与数据扰乱功能(Scramblingfunction)。传统基于闪存的储存装置都是经由闪存转换层固件(Firmware)搭配错误更正硬件来实现整个储存装置的读取、写入与闪存芯片的管理,其中闪存转换层固件运行于闪存装置内(如U盘)。而一个完整的闪存转换层通常有许多系统表(Systemtable)。而由于系统表的数据记录着所有逻辑地址(Logicaladdress)与物理地址(Physicaladdress)的对映关系以及闪存的使用情况。若其中某一个位发生错误,严重者可能会让整个系统毁损而导致用户数据完全无法读取。
技术实现思路
本专利技术所要解决的技术问题在于,针对现有技术的不足提供一种闪存的存取方法,以提高闪存的使用寿命。本专利技术所要解决的技术问题是通过如下技术方案实现的:一种闪存存取方法,包括下列步骤:从一闪存读取一第一数据,该第一数据具有一第一储存数据与一第一错误更正数据,该第一储存数据具有第一数据长度,该第一错误更正数据具有一第二数据长度;得到关于该第一储存数据的一第一错误参数;当该第一错误参数大于一第一门坎值时,选择性地将该第一储存数据写入该闪存为一第二数据,该第二数据具有该第一储存数据与一第二错误更正数据,该第二错误更正数据具有一第三数据长度,该第三数据长度大于该第二数据长度,该第一错误更正数据与该第二错误更正数据以一第一算法,依据该第一储存数据所产生。更好地,选择性地将该第一储存数据写入该闪存为该第二数据的步骤中,包括下列步骤:当该第二数据长度小于一第二门坎值时,将该第一储存数据写入该闪存,并以该第一算法依据该第一储存数据产生该第二错误更正数据。当该第二数据长度等于该第二门坎值时,将该第一储存数据写入该闪存,并以一第二算法依据该第一储存数据产生一第三错误更正数据,该第三错误更正数据具有该第二数据长度。更好地,该第一算法依据BCH码所实现的错误更正算法,而该第二算法依据低密度奇偶检查码所实现的错误更正算法,然而不以此为限。更好地,该第一错误参数包含该闪存的一存取次数。更好地,该第一错误参数更包含一位错误率,该位错误率以该第一算法依据该第一错误更正数据与该第一储存数据所得到。更好地,该第一门坎值依据该第一错误更正数据的一错误更正上限而设定。更好地,该第一门坎值依据该存取次数而设定。更好地,该第一错误参数包含一位错误率,该位错误率以该第一算法依据该第一错误更正数据与该第一储存数据所得到。更好地,该第一门坎值依据该第一错误更正数据的一错误更正上限而设定。更好地,该第三数据长度为该第二数据长度的两倍。依据本专利技术一实施例的闪存,包含至少一第一储存模块。该第一储存模块包含:多个第一储存区块,每一该第一储存区块具有一第一数据区块与一第一错误检查区块,其中该第一数据区块具有第一位长度,该第一错误检查区块具有第二位长度;该第一储存模块还包含一第一系统区块,该第一系统区块具有一第二数据区块与一第二错误检查区块,其中该第二数据区块具有第三位长度,该第二错误检查区块具有第四位长度,该第三位长度不同于该第一位长度,该第四位长度大于该第二位长度。更好地,更包含至少一第二储存模块。该第二储存模块包含多个第二储存区块,每一该第二储存区块具有一第三数据区块与一第三错误检查区块,其中该第三数据区块具有第五位长度,该第三错误检查区块具有第六位长度,该第五位长度不同于该第一位长度,且该第六位长度不同于该第二位长度。更好地,该第一储存模块更包含至少一第三储存区块,每一该第三储存区块具有一第四数据区块与一第四错误检查区块,其中该第四错误检查区块具有第七位长度,该第七位长度不同于该第一位长度。更好地,该第一储存模块的部份多个所述第一错误检查区块所储存的错误更正数据对应于第一算法,而另一部份多个所述第一错误检查区块所储存的错误更正数据对应于第二算法。本专利技术还提供一种闪存存取方法,包括:执行软件,以一第一闪存转换格式从一闪存中读取一第一数据;以及依据一指令,将该第一数据以该第一闪存转换格式或一第二闪存转换格式写入该闪存。更好地,该第一数据具有一第一储存数据与一第一错误更正数据,该第一储存数据具有第一数据长度,该第一错误更正数据具有一第二数据长度,且该方法更包含:得到关于该第一储存数据的一第一错误参数;以及当该第一错误参数大于一第一门坎值时,选择性地将该第一储存数据写入该闪存为一第二数据,该第二数据具有该第一储存数据与一第二错误更正数据,该第二错误更正数据具有一第三数据长度,该第三数据长度大于该第二数本文档来自技高网
...
闪存存取方法与应用此方法的闪存

【技术保护点】
一种闪存存取方法,其特征在于,包括:从一闪存读取一第一数据,该第一数据具有一第一储存数据与一第一错误更正数据,该第一储存数据具有第一数据长度,该第一错误更正数据具有一第二数据长度;得到关于该第一储存数据的一第一错误参数;以及当该第一错误参数大于一第一门坎值时,选择性地将该第一储存数据写入该闪存为一第二数据,该第二数据具有该第一储存数据与一第二错误更正数据,该第二错误更正数据具有一第三数据长度,该第三数据长度大于该第二数据长度,该第一错误更正数据与该第二错误更正数据以一第一算法,依据该第一储存数据所产生。

【技术特征摘要】
2016.01.14 US 62/278,4621.一种闪存存取方法,其特征在于,包括:从一闪存读取一第一数据,该第一数据具有一第一储存数据与一第一错误更正数据,该第一储存数据具有第一数据长度,该第一错误更正数据具有一第二数据长度;得到关于该第一储存数据的一第一错误参数;以及当该第一错误参数大于一第一门坎值时,选择性地将该第一储存数据写入该闪存为一第二数据,该第二数据具有该第一储存数据与一第二错误更正数据,该第二错误更正数据具有一第三数据长度,该第三数据长度大于该第二数据长度,该第一错误更正数据与该第二错误更正数据以一第一算法,依据该第一储存数据所产生。2.如权利要求1所述的方法,其特征在于,选择性地将该第一储存数据写入该闪存为该第二数据的步骤中,包括:当该第二数据长度小于一第二门坎值时,将该第一储存数据写入该闪存,并以该第一算法依据该第一储存数据产生该第二错误更正数据;以及当该第二数据长度等于该第二门坎值时,将该第一储存数据写入该闪存,并以一第二算法依据该第一储存数据产生一第三错误更正数据,该第三错误更正数据具有该第二数据长度。3.如权利要求2所述的方法,其特征在于,该第一算法依据BCH码()所实现的错误检查算法,而该第二算法依据低密度奇偶检查码(,)所实现的错误检查算法。4.如权利要求1所述的方法,其特征在于,该第一错误参数包含该闪存的一覆写次数。5.如权利要求4所述的方法,其特征在于,该第一错误参数更包含一位错误率,该位错误率以该第一算法依据该第一错误更正数据与该第一储存数据所得到。6.如权利要求5所述的方法,其特征在于,该第一门坎值依据该第一错误更正数据的一错误更正上限而设定。7.如权利要求5所述的方法,其特征在于,该第一门坎值依据该覆写次数而设定。8.如权利要求1所述的方法,其特征在于,该第一错误参数包含一位错误率,该位错误率以该第一算法依据该第一错误更正数据与该第一储存数据所得到。9.如权利要求8所述的方法,其特征在于,该第一门坎值依据该第一错误更正数据的一错误更正上限而设定。10.如权利要求1所述的方法,其特征在于,该第三数据长度为该第二数据长度的两倍。11.一种闪存,其特征在于,包含:至少一第一储存模块,包含:多个第一储存区块,每一该第一储存区块具有一第一数据区块与一第一错误检查区块,其中该第一数据区块具有第一位长度,该第一错误检查区块具有第二位长度;以及一第一系统区块,该第一系统区块具有一第二数据区块与一第二错误检查区块,其中该第二数据区块具有第三位长度,该第二错误检查区块具有第四位长度,该第三位长度不同于该第一位长度,该第四位长度大于该第二位长度。12.如权利要求11所述的闪存,其特征在于,更包含:至少一第二储存模块,包含:多个第二储存区块,每一该第二储存区块具有一第三数据区块与一第三错误检查区块,其中该第三数据区块具有第五位长度,该第三错误检查区块具有第六位长度,该第五位长度不同于该第一位长度,且该第六位长度不同于该第二位长度。13.如权利要求11所述的闪存,其特征在于,该第一储存模块更包含至少一第三储存区块,每一该第三储存区块具有一第四数据区块与一第四错误检查区块,其中该第四错误检查区块具有第七位长度,该第七位长度不同于该第一位长度。14.如权利要求11所述的闪存,其特征在于,该第一储存模块的部份多个所述第一错误检查区块所储存的错误更正数据对应于第一算法,而另一部份...

【专利技术属性】
技术研发人员:林建彰曾孝闻
申请(专利权)人:钰创科技股份有限公司
类型:发明
国别省市:中国台湾,71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1