固态储存装置及其数据处理方法与流程

文档序号:11459453阅读:165来源:国知局
本发明涉及一种固态储存装置,且特别涉及一种固态储存装置及其数据处理方法。
背景技术
::众所周知,固态储存装置(solidstatedevice,ssd)使用非挥发记忆体(non-volatilememory)为主要储存元件。也就是说,当数据写入非挥发记忆体后,一旦系统电源关闭,数据仍保存在固态储存装置中。当读取非挥发记忆体中的储存数据时,储存的数据若发生一定范围内的错误率,则可以通过错误回复(errorrecover)程序将数据回复。上述的错误状况是指储存数据是被完整的写入非挥发记忆体中,但因非挥发记忆体的储存特性,例如:储存电子的流失等,使储存的数据产生错误。此种因素所造成的数据错误大多会落在一定的错误率范围内,且由于储存数据是被完整的写入非挥发记忆体中,因此可通过错误回复程序将数据回复。然而,若在写入时因为错误的写入或抹除程序而产生无效数据时,由于此种无效数据代表储存在非挥发记忆体中的数据并不完整,因此无法通过错误回复程序来回复数据。再者,当读取非挥发记忆体中的储存数据时,一般并无法判定读取的数据是否为无效数据,因此,一旦发现读取的数据有错误时,则会直接进入错误回复程序,并试图回复数据。然而,如上所述,无效数据并无法通过错误回复程序来回复,因此错误回复程序会花费相当多的时间来处理无效数据,但最终仍无法回复数据,如此将耗费相当多的时间,造成固态储存装置整体的读写效率下降。技术实现要素:本发明的目的在于提供一种固态储存装置及其数据处理方法,通过无效数据的判断来提高固态储存装置的存取效率。根据本发明的第一方面,提出一种固态储存装置的数据处理方法,该固态储存装置包含一非挥发记忆体,该非挥发记忆体具有至少一数据区段,该数据区段包含多个记忆胞,该数据处理方法包括:依据一预定条件判断储存于该数据区段中的一数据是否为无效数据。其中,对该数据区段施加至少一电压,并读取该数据区段中对应该电压的一记忆胞导通个数,其中该电压预定对应于一预定个数值;以及依据该记忆胞导通个数与该预定个数值的关系是否满足该预定条件来判断该数据是否为无效数据。根据本发明的第二方面,提出一种固态储存装置,包括:一非挥发记忆体,具有至少一数据区段,该数据区段包含多个记忆胞;以及一控制器。控制器包括:一无效判断单元,用以依据一预定条件判断储存于该数据区段中的一数据是否为无效数据;以及一错误回复单元,用以执行一错误回复(errorrecover)程序。其中,若该无效判断单元判断该数据为无效数据,且该数据发生读取错误时,该错误回复单元不针对该数据执行该错误回复程序。根据本发明的第三方面,提出一种固态储存装置的数据处理方法,该固态储存装置包含一非挥发记忆体,该非挥发记忆体具有至少一数据区段,该数据区段包含多个记忆胞,该数据处理方法包括:依据一预定条件判断储存于该数据区段中的一数据是否为无效数据;若判断该数据为有效数据,且该数据发生读取错误时,针对该数据执行一错误回复(errorrecover)程序;以及若判断该数据为无效数据,且该数据发生读取错误时,不针对该数据执行该错误回复程序。附图以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。附图说明图1绘示对非挥发记忆体的数据区段施加不同读取电压与对应的记忆胞导通个数的分布图;图2绘示对储存有效数据的数据区段以及储存无效数据的数据区段施加不同读取电压与其对应的记忆胞导通个数的分布图;图3绘示依照本发明一实施例的固态储存装置的示意图;图4绘示依照本发明一实施例的数据处理方法的流程图;图5绘示依照本发明一实施例的判断数据是否为无效数据的流程图;图6绘示依照本发明一实施例施加一特定读取电压于数据区段,其有效数据及无效数据的记忆胞导通个数与一预定个数值的关系示意图;图7绘示依照本发明另一实施例施加多个读取电压于数据区段,其有效数据及无效数据的记忆胞导通个数与对应的预定个数值的关系示意图;图8绘示本发明设定预定条件的另一实施例示意图。其中,附图标记300:固态储存装置310:非挥发记忆体320:控制器322:读取判断单元324:无效判断单元328:错误回复单元s410、s420、s440:流程步骤s510~s550:流程步骤d:预设误差p0~p3、p0’~p2’:记忆胞导通个数t0~t3:预定个数值v0~v3:电压具体实施方式以下提出各种实施例进行详细说明,其利用对非挥发记忆体的数据区段中的多个记忆胞(cell)施加电压,并得到此数据区段中的记忆胞的导通个数,进而判断此数据区段中的数据是否为无效数据。然而,实施例仅用以作为范例说明,并不会限缩本发明欲保护的范围。此外,实施例中的附图省略部分元件,以清楚显示本发明的技术特点。请参照图1,其绘示对非挥发记忆体的数据区段施加不同读取电压与对应的记忆胞导通个数的分布图。非挥发记忆体可分为多个数据区段,例如数据区段可为非挥发记忆体的一字元线,亦可为非挥发记忆体的多条字元线,且数据区段包括了多个记忆胞,而记忆胞可以为储存1位元数据的单阶储存单元 (single-levelcell,slc)、储存2位元数据的多阶储存单元(multi-levelcell,mlc)、储存3位元数据的三阶储存单元(triple-levelcell,tlc)或其他类型的储存单元。图1绘示的分布图的纵轴表示被施加特定读取电压的记忆胞的导通个数,横轴表示施加于记忆胞的读取电压。由图1可以得知,当由小到大渐进地施加读取电压于非挥发记忆体的数据区段时,随着施加的读取电压慢慢变大,此数据区段中会有愈来愈多的记忆胞被导通,当施加的读取电压够大时,此数据区段中的所有记忆胞都会被导通。在读写或抹除非挥发记忆体的数据的过程中,若发生中断或其他因素影响,将可能产生无效数据,而使储存于数据区段的数据为无效数据。无效数据的造成原因,举例来说,可以是在对数据区段写入数据时,写入数据步骤发生中断而没有完成,造成数据写入不完整,而使数据区段所储存的数据为无效数据,或于抹除数据区段的数据时,抹除数据步骤发生中断而没有完成,造成数据抹除不完整,使数据区段所储存的数据为无效数据。因此,储存于数据区段中的数据,可能会是无效数据。在本发明实施例中,有效数据是指储存在非挥发记忆体中的数据内容是完整的,因此于读取时,有效数据的错误可通过错误回复程序来回复。无效数据是指储存在非挥发记忆体中的数据内容是不完整的,换句话说,原始数据已经遗失,因此无效数据无法通过错误回复程序来回复。为了判断储存于数据区段中的数据是否为无效数据,本发明实施例通过储存有效数据的数据区段以及储存无效数据的数据区段,彼此之间所表现出来的物理特征差异性来达成。在经过多次的测试后发现,当由小到大渐进地施加读取电压于非挥发记忆体的数据区段时,对应于储存有效数据的数据区段以及储存无效数据的数据区段所呈现出来的记忆胞导通个数的分布曲线有很大的区别。请参照图2,其绘示非挥发记忆体的数据区段分别储存有效数据及无效数据时,对储存有效数据的数据区段以及储存无效数据的数据区段施加不同读取电压与其对应的记忆胞导通个数的分布图。纵轴表示被施加特定读取电压的记忆胞的导通个数,横轴表示施加于记忆胞的读取电压,图2绘示两种不同的分布曲线,实线表示非挥发记忆体的数据区段储存有效数据时,对其施加不同读 取电压与对应的记忆胞导通个数的分布曲线,虚线则表示非挥发记忆体的数据区段储存无效数据时,对其施加不同读取电压与对应的记忆胞导通个数的分布曲线。由图2可以得知,在特定的读取电压范围中,当分别施加适当的相同读取电压于储存有效数据及无效数据的数据区段时,对应有效数据与无效数据所得到的记忆胞导通个数并不相同。换句话说,根据上述特性,可以通过施加适当的读取电压于数据区段,依据数据区段中的记忆胞导通个数来判断数据区段所储存的数据为有效数据或无效数据。请参照图3,其绘示依据本发明一实施例的固态储存装置300的示意图。固态储存装置300包括一非挥发记忆体310及一控制器320,且控制器320耦接于非挥发记忆体310,并用以控制非挥发记忆体310的数据存取及其他操作。非挥发记忆体310为固态储存装置300主要的数据储存媒体。而在固态储存装置300外部,控制器320可通过外部汇流排与主机(未绘示)之间进行指令与数据的传递。控制器320用以执行各种控制程序或计算程序。举例来说,控制器320可以是一芯片、芯片内的一电路区块、一固件电路、含有多个电子元件及导线的电路板或储存多组程序码的一储存媒体。在本实施例中,控制器320包括一读取判断单元322、一无效判断单元324及一错误回复单元328。读取判断单元322用以判断数据是否发生读取错误。无效判断单元324用以判断数据是否为无效数据。错误回复单元328用以执行一错误回复(errorrecover)程序。其中,读取判断单元322、无效判断单元324及错误回复单元328可以例如是一芯片、芯片内的一电路区块、一固件电路、含有多个电子元件及导线的电路板或储存多组程序码的一储存媒体。接着,请参照图4,其绘示依据本发明一实施例的数据处理方法的流程图。为了清楚说明上述各项元件的运作以及本发明实施例的固态储存装置的数据处理方法,以下是搭配一流程图详细说明如下。然而,本发明所属
技术领域
:中具有通常知识者均可了解,本发明实施例的数据处理方法并不局限应用于图3的固态储存装置300,也不局限于流程图的各项步骤顺序。请同时参照图3及图4。根据本发明一实施例,在步骤s410中,控制器320的读取判断单元322可读取非挥发记忆体310的数据区段,并判断数据区段所储存的数据是否发生读取错误。在本发明实施例中,读取判断单元322 可以利用例如错误校正码(error-correctingcodes,ecc)、汉明码(hammingcodes)、bch码(bchcodes)、里德索罗门码(reed-solomoncodes)或相似错误判断方法来对读取的数据进行错误校正(errorcorrection),并根据错误校正结果来判断数据是否发生读取错误。造成储存的数据发生读取错误的原因有很多。举例来说,因为温度或时间的环境因素而造成数据区段储存的数据发生偏移或流失,因此在数据读取时无法通过错误校正来回复正确数据而发生读取错误。又或者因为在读写或抹除数据区段的操作过程中,发生操作中断或操作不完全,造成储存于数据区段的数据不完整,因而在数据读取时同样会无法通过错误校正来回复正确数据而发生读取错误。在步骤s410中,当读取的数据无法通过错误校正来回复正确数据时,读取判断单元322判断数据区段所储存的数据发生读取错误。在步骤s410中,当读取的数据可通过错误校正来回复正确数据时,读取判断单元322判断数据区段所储存的数据未发生读取错误。此时,控制器320可得到正确的读取数据。若此数据读取是根据主机的读取指令,则控制器320可将读取出的正确数据传送至主机。接着,于步骤s420中,当读取判断单元322判断数据区段所储存的数据发生读取错误时,无效判断单元324进而依据一预定条件判断此数据是否为无效数据。无效数据的造成原因,例如,在对数据区段写入数据时,写入步骤发生中断而没有完成,造成数据写入不完整而使储存于数据区段的数据为无效数据,或抹除数据区段储存的数据时,抹除步骤发生中断而没有完成,造成数据抹除不完整而使储存于数据区段的数据为无效数据。经过步骤s410以及步骤s420的判断后,储存的数据会被判断出三种情况。第一种情况(步骤s410为否):数据区段所储存的数据为有效数据,且数据读取时未发生读取错误。第二种情况(步骤s410为是且步骤s420为否):数据区段所储存的数据为有效数据,但因为温度或时间的环境因素而造成数据区段储存的有效数据发生偏移或流失,因此在数据读取时无法通过错误校正来回复正确数据,进而发生读取错误。第三种情况(步骤s410为是且步骤s420为是):数据区段所储存的数据为无效数据,例如,因为在读写或抹除数据区段的操作过程中,发生操作中断或操作不完全,造成数据区段储存的数据不完整而为无效数据,因而发生数据读取错误。随后,当无效判断单元324依据预定条件判断数据为无效数据时,控制器320结束此流程。若此数据读取是根据主机的读取指令,则控制器320可传送一读取错误结果至主机,表示此数据已无法读取。而当无效判断单元324依据预定条件判断数据为有效数据时,在步骤440中,错误回复单元328则对此数据执行一错误回复(errorrecover)程序。在本发明实施例中,错误回复(errorrecover)程序不同于错误校正(errorcorrection)。错误校正(errorcorrection)例如是利用错误校正码(error-correctingcodes,ecc)、汉明码(hammingcodes)、bch码(bchcodes)、里德索罗门码(reed-solomoncodes)或相似错误更正回复方法对读取的数据进行错误校正。错误回复(errorrecover)程序则是利用不同的读取条件来重新读取数据。在本发明一实施例中,错误回复单元328可根据一重试表(retrytable),使用不同的读取条件重新读取数据,直到可正确读取数据而未发生读取错误。读取条件例如可以是不同的读取电压、不同的错误校正码或是不同的错误校正方法。错误回复单元328可使用不同的读取电压重新读取数据,或是将重新读取的数据通过不同的错误校正码或是不同的错误校正方法进行错误校正,直到可正确读取数据而未发生读取错误。在本发明另一实施例中,控制器320可事先进行无效数据的判断以决定是否进行数据读取流程。具体而言,控制器320在欲读取非挥发记忆体310的数据区段的储存数据时,无效判断单元324可先依据预定条件判断储存数据是否为无效数据。若储存数据为无效数据时,控制器320可不进行数据区段的数据读取流程。且若此数据读取是根据主机的读取指令,则控制器320可传送一读取错误结果至主机,表示此数据已无法读取。相反地,若储存数据为有效数据时,控制器320进行数据区段的数据读取流程,即进行步骤s410及步骤s440。由于控制器320已事先进行无效数据的判断(步骤s420),因此在进行数据区段的数据读取流程时,无须再进行无效数据的判断(步骤s420)。请参照图5,其绘示判断数据是否为无效数据的流程图。在图4的步骤s420中,无效判断单元324依据一预定条件判断储存于数据区段中的数据是否为无效数据。图5的步骤s510至步骤s550进一步说明图4的步骤s420判断数据是否为无效数据的流程。在步骤s510中,无效判断单元324对数据区段施加至少一读取电压,并在步骤s520中,无效判断单元324读取此数据区段中对 应读取电压的记忆胞导通个数。接着,在步骤s530中,无效判断单元324依据对应的记忆胞导通个数与其对应读取电压的一预定个数值的关系是否满足一预定条件,来判断此数据区段储存的数据为无效数据或有效数据。请参照图6。图6绘示依本发明一实施例施加一特定读取电压于非挥发记忆体的数据区段,其有效数据及无效数据的记忆胞导通个数与一预定个数值的关系示意图。纵轴表示被施加特定读取电压的记忆胞导通个数,横轴表示施加于记忆胞的读取电压。在此实施例中,在步骤s510中,无效判断单元324对数据区段施加一读取电压v0,并在步骤s520中,无效判断单元324读取此数据区段中的记忆胞导通个数。接着,在步骤s530中,无效判断单元324依据此导通个数与对应读取电压v0的一预定个数值t0的关系是否满足预定条件,来判断此数据区段储存的数据为无效数据或有效数据。在图6的例子中,在施加读取电压v0下,无效数据的记忆胞导通个数p0大于预定个数值t0,而有效数据的记忆胞导通个数p0’小于预定个数值t0。因此,在图6的例子中,预定条件可设定为导通个数大于预定个数值。在施加读取电压v0下,若导通个数与预定个数值t0的关系满足预定条件,即导通个数大于预定个数值t0,则在步骤540中,无效判断单元324判断此数据区段储存的数据为无效数据。相反地,在施加读取电压v0下,若导通个数与预定个数值t0的关系未满足预定条件,即导通个数小于预定个数值t0,则在步骤550中,无效判断单元324判断此数据区段储存的数据为有效数据。请参照图7,其依本发明另一实施例施加多个读取电压于非挥发记忆体的数据区段,其有效数据及无效数据的记忆胞导通个数与对应的预定个数值的关系示意图。纵轴表示被施加特定读取电压的记忆胞导通个数,横轴表示施加于记忆胞的读取电压。在此实施例中,无效判断单元324对非挥发记忆体的数据区段分别施加第一读取电压v1及第二读取电压v2(步骤s510),并读取其对应的第一记忆胞导通个数及第二记忆胞导通个数(步骤s520)。在此实施例中,第一读取电压v1及第二读取电压v2分别具有对应的第一预定个数值t1及第二预定个数值t2,无效判断单元324会依据对应第一读取电压v1的第一记忆胞导通个数与第一预定个数值t1的关系,以及对应第二读取电压v2的第二记忆胞导通个数与第二预定个数值t2的关系是否满足预定条件,来判断此数据区段储存的数据为无效数据或有效数据。在图7的例子中,在施加第一读取电压v1下,无效数据的记忆胞导通个数p1小于第一预定个数值t1,而有效数据的记忆胞导通个数p1’大于第一预定个数值t1;而在施加第二读取电压v2下,无效数据的记忆胞导通个数p2大于第二预定个数值t2,而有效数据的记忆胞导通个数p2’小于第二预定个数值t2。因此,在图7的例子中,预定条件可设定为对应第一读取电压v1的第一记忆胞导通个数小于第一预定个数值t1,且对应第二读取电压v2的第二记忆胞导通个数大于第二预定个数值t2。在分别施加读取电压v1及v2下,若对应的导通个数与预定个数值的关系满足上述的预定条件,则在步骤540中,无效判断单元324判断此数据区段储存的数据为无效数据。相反地,在分别施加读取电压v1及v2下,若对应的导通个数与预定个数值的关系未满足上述的预定条件,则在步骤550中,无效判断单元324判断此数据区段储存的数据为有效数据。由于无效数据的造成原因有很多种,因此在图6及图7的例子中,储存有效数据的数据区段以及储存无效数据的数据区段在施加不同读取电压下,所得出的记忆胞导通个数的分布曲线并不相同。在本发明一实施例中,可针对不同的有效数据及无效数据的记忆胞导通个数的分布曲线各自设定对应的读取电压、预定个数值及预定条件。其中,读取电压可为单一读取电压或多个读取电压,其取决于分布曲线的特性。在本发明另一实施例中,可通过分析来统合不同的有效数据及无效数据的记忆胞导通个数的分布曲线,并设定可满足多种分布曲线特性的读取电压,其取决于统合后的分布曲线特性。请参照图8,其绘示本发明设定预定条件的另一实施例示意图。纵轴表示被施加特定读取电压的记忆胞导通个数,横轴表示施加于记忆胞的读取电压。在此实施例中,无效判断单元324设定有一预设误差d,且预定条件设定为记忆胞导通个数与预定个数值的差值的绝对值大于预设误差d。在图8的例子中,当施加一读取电压v3于数据区段时,若记忆胞导通个数与预定个数值t3的差值的绝对值大于预设误差d,则判断此数据区段储存的数据是为无效数据。在此实施例中,预定个数值t3可设定为在施加特定读取电压v3且储存的数据为有效数据的情况下的记忆胞导通个数。举例来说,若非挥发记忆体的一数据区段中有1000个的记忆胞,当此数据区段储存的数据为有效数据,在施加一读取电压时,此数据区段中的记忆胞 导通个数为100,则设定预定个数值t3为100,并且设定预设误差d为30。因此,若施加同一读取电压于此数据区段,此时此数据区段中的记忆胞导通个数为200,由于此时记忆胞导通个数与预定个数值t3的差值的绝对值大于预设误差d,所以,判断此时此数据区段所储存的数据为无效数据。本发明实施例通过在非挥发记忆体的数据区段施加至少一特定读取电压,读取此数据区段中的记忆胞导通个数,并根据记忆胞导通个数与预定个数值的关系是否满足预定条件来判断此非挥发记忆体的数据区段所储存的数据是否为无效数据。通过上述实施例可以让非挥发记忆体的数据区段所储存的数据发生读取错误时,在进入错误回复程序的流程前,先判断出数据区段所储存的数据是否为无效数据,以避免无谓的错误回复程序,避免浪费运算成本,节省时间,提高数据处理的效能。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1