固态储存装置及其错误更正控制方法

文档序号:9523908阅读:553来源:国知局
固态储存装置及其错误更正控制方法【
技术领域
】[0001]本发明是有关于一种固态储存装置与其控制方法,且特别是有关于一种固态储存装置及其错误更正控制方法。【
背景技术
】[0002]众所周知,现今的固态储存装置(SolidStateDrive,SSD)一般使用与非门闪存(NANDflashmemory)为主要存储组件,而此类的闪存为一种非挥发性(non-volatile)的内存组件。也就是说,当数据写入闪存后,一旦系统电源关闭,数据仍保存在闪存中。[0003]众所周知,闪存包含由多个存储单元所组成的存储单元数组,其中的每个存储单兀(memorycell)皆包括一个浮动闸晶体管(floatinggatetransistor)。[0004]于程序周期(programcycle)时,利用热载子(hotcarrier),例如电子,注入(inject)浮动闸晶体管中的浮动闸极(floatinggate),用以改变浮动闸晶体管的阈值电压(thresholdvoltage),进而产生不同的储存状态。而不同的储存状态会有不同的阈值电压分布。[0005]请参照图1,其所绘示为闪存中的储存状态与阈值电压分布的关系示意图。以单层存储单元(Single-LevelCell,简称SLC)闪存为例,一个存储单元可以有两种储存状态,例如第一储存状态(E)与第二储存状态(A)。[0006]再者,统计第一储存状态(E)的所有存储单元的阈值电压可知,第一储存状态(E)的阈值电压分布约在VTHE附近,而统计第二储存状态(A)的所有存储单元的阈值电压可知,第二储存状态(A)的阈值电压分布约在VTHA附近。因此,在读取存储单元的储存状态时,利用一切割电压(slicevoltage,Vs)即可判断出大部分存储单元的储存状态。换句话说,于读取周期时,阈值电压小于切割电压(Vs)的存储单元即被判定为第一储存状态(E),而阈值电压大于切割电压(Vs)的存储单元即被判定为第二储存状态(A)。[0007]然而,某些第一储存状态(E)的存储单元的阈值电压大于切割电压(Vs),这些存储单元会被误判为第二储存状态(A)。同理,某些第二储存状态(A)的存储单元的阈值电压小于切割电压(Vs),这些存储单元会被误判为第一储存状态(E)。[0008]当然,每个存储单元储存多位的多层存储单元(Mult1-LevelCell,简称MLC)闪存也会出现误判的情况。此时,固态储存装置就需要进行错误更正。[0009]请参照图2,其所绘示为已知的固态储存装置示意图。固态储存装置10中包括一控制单元101、缓冲单元(bufferingunit)107与一闪存105。而在固态储存装置10外部,控制单元101通过一外部总线14与主机(host)12之间进行指令与数据的传递。其中,夕卜部总线14可为USB总线、IEEE1394总线或SATA总线等等。[0010]当主机12将写入数据储存至闪存105时,主机12会发出写入指令与写入数据至固态储存装置10。此时,控制单元101中的错误更正单元103会根据写入数据产生一错误更正码(ECCcode)0之后,控制单元101会将写入数据与错误更正码一并写入闪存105。[0011]当主机12需要读取闪存105中的数据时,主机12会发出读取指令至固态储存装置10。此时,控制单元101由闪存105中取得读取数据以及对应的错误更正码并暂存于缓冲单元107中。接着,错误更正单元103会根据错误更正码来验证读取数据。当错误更正单元103确定读取数据的正确性之后,控制单元101输出读取数据至主机12。[0012]一般来说,已知的错误更正单元103是利用单一的算法则来进行数据错误更正。当错误更正单元103确定读取数据中的错误无法被更正(uncorrectable)时,控制单元101无法输出正确的读取数据。此时,控制单元101会将闪存105中储存读取数据的位置作一标记(mark),直到固态储存装置10待机(standby)时再尝试更正读取数据。[0013]因此,当错误无法被错误更正单元103更正时,控制单元101无法实时的修复读取数据,需要在待机时尝试更正读取数据。如果想要实时(realtime)的更正读取数据中的错误时,将会造成固态储存装置10的数据吞吐率(throughput)大幅下降,严重影响固态储存装置10的效能。【
发明内容】[0014]本发明提出一种固态储存装置,利用一外部总线连接至一主机,该固态储存装置包括:一控制单元,连接至该外部总线以接收该主机的一读取指令;一闪存,连接至该控制单元;以及一缓冲单元,连接至该控制单元;其中,该控制单元更包括一错误更正单元,该控制单元根据该读取指令由该闪存取出一读取数据以及对应的一错误更正码并暂储于该缓冲单元,该错误更正单元利用一预设算法并根据该错误更正码来验证该读取数据;其中,当该读取数据中的错误无法被更正时,根据一重试表来启动一重试流程,其中该重试表中定义多个算法则的使用次序。[0015]本发明提出一种固态储存装置的错误更正控制方法,该固态储存装置包括:一控制单元用以接收一主机的一读取指令;一闪存连接至该控制单元;以及,一缓冲单元连接至该控制单元,该方法包括下列步骤:于收到该读取指令时,利用一预设算法来验证由该闪存取得的一读取数据;于该读取数据中没有无法更正的错误时,控制单元输出该读取数据;以及于该读取数据中有无法更正的错误时,根据一重试表来启动一重试流程;其中,该重试表中定义多个算法则的使用次序。[0016]为了对本发明的上述及其它方面有更佳的了解,下文特举较佳实施例,并配合附图,作详细说明如下:【附图说明】[0017]图1所绘示为闪存中的储存状态与阈值电压分布的关系示意图。[0018]图2所绘示为已知的固态储存装置示意图。[0019]图3所绘示为本发明实施例的固态储存装置示意图。[0020]图4所绘示为本发明实施例的重试表示意图。[0021]图5所绘示为本发明实施例的错误更正控制方法。[0022]图6所示为根据重试表所启动的重试流程示意图。[0023]图7所绘示为本发明第二实施例的错误更正控制方法。【具体实施方式】[0024]为了在不影响固态储存装置的数据吞吐率(throughput)下进行实时数据错误更正,本发明提出一种固态储存装置,其可定义一重试流程。于读取数据中的错误无法被更正(uncorrectable)时,错误更正单元可根据重试流程来实时改变错误更正的算法则,并且更正读取数据中的错误。如此,可以实时输出读取数据,并且维持固态储存装置的高数据吞吐率。[0025]请参照图3,其所绘示为本发明实施例的固态储存装置示意图。固态储存装置20中包括一控制单元201、缓冲单元220与一闪存205。而在固态储存装置20外部,控制单元210通过一外部总线14与主机12之间进行指令与数据的传递。其中,外部总线14可为USB总线、IEEE1394总线或SATA总线等等。[0026]当主机12需要读取闪存205中的数据时,主机12会发出读取指令至固态储存装置20。此时,控制单元210由闪存205中取得读取数据以及对应的错误更正码并暂存于缓冲单元220中。接着,错误更正单元212会根据缓冲单元220中的错误更正码来验证读取数据。根据本发明的实施例,错误更正单元212可以利用多种算法来更正读取数据中的错误。[0027]当错误更正单元212确定读取数据中的错误无法被更正(uncorrectable)时,错误更正单元212会根据重试表(retrytable)214的内容规范来改变算法则,或者改变其它控制因素来试着再次进行读取数据的错误更正。再者,上述的算法可为硬式最小值总合算法(min-sumhardalgorithm)、软式最小值总合算法(min-sumsoftalgorithm)、硬式总合乘积算法(sum-producthardalgorithm)、软式总合乘积算法(sum-productsoftalgorithm)、硬式位反转算法(bitflippinghardalgorithm)、或者软式位反转算法(bitflippingsoftalgorithm)。当然本发明并未限定于特定的算法,其它算法也可以运用于本发明的错误更正单元212。[0028]请参照图4,其所绘示为本发明实施例的重试表示意图。其中,图4的重试表仅为本发明的一个示例而已,并非用来限定本发明。举例来说,当错误更正单元212利用预设的算法来验证读取数据且确认错误无法被更正(uncorrectable)时,错误更正单元212即根据重试表的内容来启动重试流程。[0029]如重试表中所示的第一步骤⑴,错误更正单元212的算法则为硬式最小值总合算法(min-sumhardalgorithm)。并且,控制单元210对闪存205发出硬式读取命令(hardreadcommand),以取得硬式位的读取数据(hardbitofreaddata)以及对应的错误更正码并更新于缓冲单元220中,并再次进行读取数据的错误更正。如果错误更正单元212可顺利更正读取数据中的错误,控制单元210即可输出正确的读取数据至主机;反之,如果读取数据中的错误无法被更正时,则继续进行第二步骤(2)。[0030]如重试表中所示的第二步骤(2),错误更正单元212的算法更改为软式最小值总合算法(min-sumsoftalgorithm)。并且,控制单元210对闪存205发出软式读取命令(softreadcommand),以取得软式位的读取数据(softbitofreaddata)以及对应的错误更正码并更新于缓冲单元220中,并再次进行读取数据的错误更正。如果错误更正单元212可顺利更正读取数据中的错误,控制单元210即可输出正确的读取数据至主机;反之,如果读取数据中的错误无法被更正时,则继续进行第三步骤(3)。[0031]如重试表中所示的第三步骤(3),错误更正单元212的算法更改为软式最小值总合算法(min-sumsoftalgorithm)。并且,控制单元210对闪存205发出硬式与软式读取命令(hardandsoftreadcommands),并同时取得软式与硬式的读取数据以及对应的错误更正码并更新于缓冲单元220中,并再次进行读取数据的错误更正。如果错误更正单元212可顺利更正读取数据中的错误,控制单元210即可输出正确的读取数据至主机;反之,如果读取数据中的错误无法被更正时,则继续进行第四步骤(4)。[0032]在此实施例中,重试表的第四步骤(4)并非提出另一种算法以进行再次的错误更正,而是提出一校正程序。由于先前变更算法的步骤皆无法输出正确的读取数据,因此重试表提出要控制单元210对闪存205进行校正程序。于校正程序中,控制当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1