CN102456400B - 使用于闪存的控制方法与控制器 - Google Patents
使用于闪存的控制方法与控制器 Download PDFInfo
- Publication number
- CN102456400B CN102456400B CN201010522184.XA CN201010522184A CN102456400B CN 102456400 B CN102456400 B CN 102456400B CN 201010522184 A CN201010522184 A CN 201010522184A CN 102456400 B CN102456400 B CN 102456400B
- Authority
- CN
- China
- Prior art keywords
- data
- correcting code
- error correcting
- compression
- flash memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种使用于闪存的控制方法与控制器,该控制方法包含:压缩自一主装置所接收的一第一数据以产生一第二数据;根据该第一数据与该第二数据来产生一记录数据,其中该记录数据至少记载有一错误更正码控制信息;依据该错误更正码控制信息,至少对该第一、第二数据两者中的一特定数据进行一错误更正保护以产生一第三数据;以及将该第三数据写入该闪存中。本发明通过对控制器所存取的数据来进行妥善的管理,尤其是针对重要的数据,例如操作系统的信息等,将减少了错误的发生。
Description
技术领域
本发明涉及一种闪存的控制机制,更具体地说,涉及一种使用于一闪存的控制方法与相关的控制器。
背景技术
近年来由于闪存的技术不断地发展,各种可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)或具备闪存的固态硬盘(Solid State Drive,SSD)被广泛地实施于诸多应用中。因此,这些记忆装置中的闪存的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单阶细胞(Single LevelCell,SLC)与多阶细胞(Multiple Level Cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆单元的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的储存能力则被充分利用,采用较高的电压来驱动,以透过不同级别的电压在一个晶体管中记录两组(或以上)位信息(00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的可携式记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保记忆装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,有了这些管理机制的记忆装置还是有不足之处。举例来说,使用者可能基于其使用习惯而不断地写入具有某些特定数据型样的数据,而这些特定数据型样特别容易造成错误(例如:写入错误、读取错误...等);虽然在记忆装置中设置有随机函数发生器(Randomizer)来调整数据以期解决这样的问题,却由于传统的低成本设计,以致调整后的数据不够随机。此外,多阶细胞的闪存的制造成本不断降低的同时,多阶细胞的闪存的特性亦不断地劣化,即,更容易发生存取错误。因此,需要一种新颖的方法针对该控制器所存取的数据来进行妥善的管理,以减少错误的发生。尤其是针对重要的数据,例如操作系统的信息等,更需要妥善管理,以减少错误的发生。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述多阶细胞的闪存易发生存取错误的缺陷,提供一种使用于闪存的控制器及其相关控制方法,以解决上述先前技术所遇到的难题,使数据存取的出错率降低。
本发明解决其技术问题所采用的技术方案之一是:构造一种使用于一闪存的控制方法。该控制方法应用于数据的写入,并包含有:压缩自一主装置所接收的一第一数据以产生一第二数据;根据第一数据与第二数据来产生一记录数据,其中记录数据至少记载有一错误更正码控制信息;依据该错误更正码控制信息,至少对第一、第二数据两者中的一特定数据进行一错误更正保护以产生一第三数据;以及将第三数据写入闪存中。
上述本发明所述的控制方法,其中根据该第一数据与该第二数据来产生该记录数据的步骤包含有:
比较该第一、第二数据,以决定使用该第一数据或该第二数据作为该特定数据;以及
参考所决定的该特定数据来相对应地产生该记录数据。
上述本发明所述的控制方法,其中该错误更正码控制信息记载有该错误更正保护所使用的一错误更正码的位数。
上述本发明所述的控制方法,其中该第一数据与该第二数据分别具有一第一数据量与一第二数据量;以及该错误更正保护为一动态错误更正保护,当该第一、第二数据量的差值小于一特定差值,该动态错误更正保护所使用的该错误更正码的位数小于一特定位数,而当该第一、第二数据量的差值大于该特定差值,则该错误更正保护所使用的该错误更正码的位数大于该特定位数。
上述本发明所述的控制方法,其中该第三数据所具有的一第三数据量相同于对该第一数据进行基本错误更正保护所产生的数据量。
上述本发明所述的控制方法,其中该记录数据另记载有一压缩指示信息;以及产生该第三数据的步骤包含有:
对该特定数据与该记录数据进行该错误更正保护以产生该第三数据。
上述本发明所述的控制方法,其中根据该第一数据与该第二数据来产生该记录数据的步骤包含有:
依据该第一、第二数据的比较结果与数据重要性,决定该错误更正码控制信息。
上述本发明所述的控制方法,其中产生该第三数据的步骤包含有:
依据该特定数据的数据重要性以及该错误更正码控制信息,对该特定数据进行该错误更正保护以产生该第三数据。
本发明解决其技术问题所采用的技术方案之二是:构造一种使用于一闪存的控制方法。该控制方法应用于数据的读出,并包含有:由闪存中读取出一第三数据,第三数据具有一记录数据,记录数据记载有一压缩指示信息与一错误更正码控制信息;依据所记载的错误更正码控制信息以及第三数据,进行一错误更正译码以产生一第二数据;以及依据所记载的压缩指示信息,解压缩第二数据以产生一第一数据至一主装置或输出第二数据至主装置。
上述本发明所述的控制方法,其中该错误更正码控制信息指示该错误更正译码所使用的一错误更正码的位数。
上述本发明所述的控制方法,其另包含有:
由该闪存中读取出一第四数据,该第四数据所具有的一记录数据记载有一错误更正码控制信息,其中该第四数据的该错误更正码控制信息与该第三数据的该错误更正码控制信息分别指示不同的错误更正码位数。
本发明解决其技术问题所采用的技术方案之三是:构造一种使用于一闪存的控制器。该控制器应用于数据的写入,并包含有一第一处理电路及一第二处理电路。第一处理电路用以压缩自一主装置所接收的一第一数据以产生一第二数据,并根据第一数据与第二数据来产生一记录数据,其中记录数据至少记载有一错误更正码控制信息。第二处理电路耦接至第一处理电路,并用以依据错误更正码控制信息,至少对第一、第二数据两者中的一特定数据进行一错误更正保护以产生一第三数据,并将第三数据写入闪存中。
上述本发明所述的控制器,其中该第一处理电路比较该第一、第二数据,以决定使用该第一数据或该第二数据作为该特定数据,以及参考所决定的该特定数据来相对应地产生该记录数据。
上述本发明所述的控制器,其中该错误更正码控制信息记载有该错误更正保护所使用的一错误更正码的位数。
上述本发明所述的控制器,其中该第一数据与该第二数据分别具有一第一数据量与一第二数据量;以及该错误更正保护为一动态错误更正保护,当该第一、第二数据量的差值小于一特定差值,该动态错误更正保护所使用的该错误更正码的位数小于一特定位数,而当该第一、第二数据量的差值大于该特定差值,则该错误更正保护所使用的该错误更正码的位数大于该特定位数。
上述本发明所述的控制器,其中该第三数据所具有的一第三数据量相同于对该第一数据进行基本错误更正保护所产生的数据量。
上述本发明所述的控制器,其中该记录数据另记载有一压缩指示信息,以及该第二处理电路对该特定数据与该记录数据进行该错误更正保护以产生该第三数据。
上述本发明所述的控制器,其中该第一处理电路依据该第一、第二数据的比较结果与数据重要性,决定该错误更正码控制信息。
上述本发明所述的控制器,其中该第二处理电路依据该特定数据的数据重要性以及该错误更正码控制信息,至少对该第一、第二数据两者中的该特定数据进行该错误更正保护以产生该第三数据。
本发明解决其技术问题所采用的技术方案之四是:构造一种使用于一闪存的控制器。该控制器应用于数据的写入,并包含有一第一处理电路及一第二处理电路。第二处理电路用以由闪存中读取出一第三数据,第三数据具有一记录数据,记录数据记载有一压缩指示信息与一错误更正码控制信息,第二处理电路并依据所记载的错误更正码控制信息以及第三数据,进行一错误更正译码以产生一第二数据。第一处理电路耦接至第二处理电路,并用以依据所记载的压缩指示信息,解压缩第二数据以产生一第一数据至一主装置或输出第二数据至主装置。
上述本发明所述的控制器,其中该错误更正码控制信息指示该错误更正译码所使用的一错误更正码的位数。
上述本发明所述的控制器,其中该第二处理电路由该闪存中读取出一第四数据,该第四数据所具有的一记录数据记载有一错误更正码控制信息,其中该第四数据的该错误更正码控制信息与该第三数据的该错误更正码控制信息分别指示不同的错误更正码位数。
本发明解决其技术问题所采用的技术方案之五是:构造一种使用于一记忆装置的存取方法,该方法包含:
接收一第一数据;
对该第一数据进行压缩以产生一第二数据;
依据该第二数据的一压缩比率选择性地将该第一数据或该第二数据选为一特定数据;以及
依据该压缩比率对该特定数据进行错误更正保护以产生一第三数据,其中该第三数据用以存入该记忆装置。
上述本发明所述的方法,其中依据该压缩比率对该特定数据进行错误更正保护以产生该第三数据的步骤更包含:
依据该压缩比率决定错误更正保护的保护程度。
实施本发明的技术方案,具有以下有益效果:通过对控制器所存取的数据来进行妥善的管理,尤其是针对重要的数据,例如操作系统的信息等,将减少了错误的发生。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为依据本发明较佳实施例的一记忆装置的示意图;
图2为于数据写入操作时图1所示的控制器对第一数据D1的数据内容进行数据处理的示意图;
图3为图1所示的记忆装置进行数据写入的操作流程图。
【主要组件符号说明】
100 | 记忆装置 |
105 | 闪存 |
110 | 控制器 |
115 | 接口逻辑 |
120 | 第一处理电路 |
125 | 第二处理电路 |
1205 | 压缩模块 |
1210 | 解压缩模块 |
1215 | 错误更正码模块 |
1220 | 随机函数发生器 |
1225 | 解随机函数发生器 |
1230 | 压缩单元 |
1235 | 缓冲单元 |
1240 | 决定单元 |
1245 | 解压缩单元 |
具体实施方式
请参考图1,图1为依据本发明较佳实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100尤其可为可携式记忆装置,例如:符合SD/MMC、CF、MS、XD标准的记忆卡,或通用序列总线快闪碟(Universal SerialBus Flash Drive,USB Flash Drive,亦称为USB Flash Disk),即所谓的随身碟,或是固态硬盘(SSD,Solid State Drive)但不以此为限。记忆装置100包含有:一闪存(Flash Memory)105;以及一控制器110,用来存取闪存105,其中该控制器例如一内存控制器110。控制器110包含有一接口逻辑115、一第一处理电路120、一第二处理电路125,接口逻辑115用以接收来自于一主装置(Host device)的第一数据D1,主装置例如是一主机(未绘示于图1),而第一数据D1可为影音数据、开机数据或一般数据等,举例来说,为了将第一数据D1储存于闪存105中,主装置先传送第一数据D1至控制器110,由控制器110将数据写入至闪存105,之后若主装置为了读取第一数据D1,则其会告知控制器110进行读取,由控制器110将所写入的数据读取出,再经由第一、第二处理电路120与125的数据处理后,由控制器110透过接口逻辑115将第一数据D1传送至主装置。第一、第二处理电路120与125的操作是基于闪存105的数据储存特性,用以避免时常写入具有某些特定数据型样的数据时所容易造成的错误(例如:写入错误、读取错误…等);例如,主装置所欲储存的第一数据D1为上述的某一特定数据型样,经由第一、第二处理电路120与125的数据处理,可将第一数据D1转换为不同的数据型样而储存于闪存105中,以避免储存错误,当主装置欲读出所储存的第一数据D1时,只要利用第一、第二处理电路120与125对所储存的数据型样进行反向的数据处理,就可将闪存105所储存的数据型样转换为第一数据D1的数据型样并将第一数据D1输出至主装置,对主装置来说读取时也不会出错。
其中,第一处理电路120包括有一压缩模块1205与一解压缩模块1210,虽然压缩模块1205与解压缩模块1210在本实施例分开进行压缩操作与解压缩操作,然而这仅是为了读者方便阅读而分,实际上在其它实施例中压缩与解压缩操作也可以实作于同一电路模块中,因此,本实施例的压缩模块1205与解压缩模块1210并非是本发明的限制。
当主装置欲写入第一数据D1时,第一数据D1被压缩模块1205所处理,反之,当主装置欲从闪存105读取数据时,所读取的数据由解压缩模块1210处理,之后再将处理后的数据送至主装置。第二处理电路125则包括一错误更正码模块1215、一随机函数发生器(Randomizer)1220与一解随机函数发生器(de-Randomizer)1225,当主装置写入第一数据D1时,第一处理电路120会输出一特定数据,而第二处理电路1205中的错误更正码模块1215从第一处理电路120接收该特定数据并对所接收的特定数据进行错误更正编码保护以产生第三数据D3,之后随机函数发生器1220对第三数据D3的位进行数据整形(Data Shaping),数据整形的目的是避免第三数据D3中出现一连串连续的位‘1’或位‘0’(或其它容易出现存取错误的数据型样)储存至闪存105中所发生的存取错误,因此,随机函数发生器1220将第三数据D3的位整形为具有随机出现且不连续的位‘1’与位‘0’的数据型样,之后整形后的数据型样被储存至闪存105的储存区块中,另外,当主装置从闪存105读取数据(例如整形后的数据型样)时,解随机函数发生器1225先将所读取的数据进行反向的数据整形(例如:将具有随机出现且不连续的位‘1’与位‘0’的数据型样反向整形为具有一连串连续的位‘1’或位‘0’的编码保护的数据位),之后错误更正码模块1215再对整形后的编码保护的数据位进行错误更正码的译码操作,译码后的数据接着被送至第一处理电路120。随机函数发生器1220与解随机函数发生器1225在本实施例虽然是分开进行数据整形与反向数据整形的操作,然而这仅是为了方便读者阅读而分,实际上在其它实施例中两电路的操作可实作于同一电路中,因此,本实施例的随机函数发生器1220与解随机函数发生器1225并非为本发明的限制。
详细而言,压缩模块1205则包含有一压缩单元1230、一缓冲单元1235与一决定单元1240,解压缩模块1210则至少包含有一解压缩单元1245;当主装置写入第一数据D1至闪存105时,首先,压缩单元1230压缩第一数据D1的数据内容来产生第二数据D2,而缓冲单元1235则先暂存另一路进来的第一数据D1,接着决定单元1240会比较第一数据D1、第二数据D2的数据量大小来判断其压缩比率,以决定使用第一数据D1或第二数据D2作为所输出的特定数据。请注意到,当第一数据D1的数据量大小固定或控制器110可得知时,决定单元1240得以一预定的标准数据量大小与第二数据D2的数据量大小来判断其压缩比率,而无需参考第一数据D1的数据量。当压缩比率过低时,甚至压缩后的第二数据D2的数据量比第一数据D1的数据量还大时,决定单元1240决定使用未经压缩的第一数据D1作为所输出的特定数据,忽略暂存于缓冲单元1235中的第二数据D2,这是因为第一数据D1可能是已经过压缩的影音数据,再经过多次压缩将无法有效提升压缩的效率,甚至可能造成第二数据D2的数据量比第一数据D1的数据量大,所以,当决定单元1240判断出压缩比率过低时,会选择输出第一数据D1作为特定数据至第二处理电路125,反之,当决定单元1240判断出压缩比率并未过低时,会选择输出压缩后的第二数据D2作为特定数据至第二处理电路125,而在输出该特定数据的同时,决定单元1240也会依据第一、第二数据D1与D2来产生一记录数据D_REC(参考从第一、第二数据D1与D2中所决定出的特定数据,相对应地产生记录数据D_REC),记录数据D_REC与该特定数据(第一、第二数据D1、D2两者其中之一)会被一同输出至第二处理电路125;其中,记录数据D_REC至少记载了压缩指示信息INFO_COM与错误更正码控制信息INFO_ECC。压缩指示信息INFO_COM至少指示出该笔特定数据是否为压缩的数据以及如果是压缩数据则其压缩比率为何,而错误更正码控制信息INFO_ECC则至少指示出对该笔特定数据而言错误更正编码保护所能够使用的错误更正码的位数(例如,指示出错误更正码的检查码(parity check code)的位数)。
错误更正码控制信息INFO_ECC所记载的错误更正码的位数可随第二数据D2的压缩比率(亦即第一、第二数据D1、D2的数据量的差值)而变,以进行动态地改变错误更正编码的保护能力;当第一、第二数据D1、D2的数据量的差值小于一特定差值(压缩比率较低)时,相对应的错误更正保护所使用的错误更正码的位数会小于一特定位数(一般的错误更正编码保护),反之,当第一、第二数据量D1、D2的差值大于该特定差值(压缩比率较高)时,则相对应的错误更正保护所使用的错误更正码的位数会大于该特定位数(增强的错误更正编码保护)。
请参照图2,图2是于写入操作时图1所示的控制器110对第一数据D1的数据内容进行数据处理的示意图。在此例中,自主装置所接收的第一数据D1具有1K字节的数据量(请注意到,此实施例中的第一数据D1数据量大小依闪存所规范的最小错误更正保护单位而定,熟悉此项记忆者当得依不同闪存的规范而改变第一数据D1的数据量大小),而压缩单元1230压缩第一数据D1所产生的第二数据D2则具有0.9K字节(压缩比率为10%),且决定单元1240选定第二数据D2作为所输出的特定数据,并产生具有1字节(1Bytes)大小(此仅为一实施例,并非本发明的限制)的记录数据D_REC至错误更正码模块1215,记录数据D_REC中的压缩指示信息INFO_COM会记载特定数据为一压缩后的数据以及具有10%的压缩比率,错误更正码控制信息INFO_ECC会记载后续错误更正码模块1215所使用的错误更正编码保护的位数,而本实施例的目的在于增强错误更正编码保护的效果,因此,数据压缩所节省出的位空间将被错误更正编码保护所使用,也就是说,由于数据被压缩,所以可增加使用较多的错误更正编码位来进行编码保护。请注意到,记录数据D_REC得附加于第二数据D2的前方,如此一来,日后进行读取运作时,即可快速判别其压缩与错误更正码信息。
在另一实施例中,自主装置所接收的第一数据D1具有1K字节的数据量,而压缩单元1230压缩第一数据D1所产生的第二数据D2则具有1.1K字节(压缩比率为0.5%)。由于第二数据D2的数据量大于第一数据D1的数据量,决定单元1240选定第一数据D1作为所输出的特定数据,并产生具有1字节(1Bytes)大小(此仅为一实施例,并非本发明的限制)的记录数据D_REC至错误更正码模块1215,记录数据D_REC中的压缩指示信息INFO_COM会记载特定数据没有进行压缩过的数据(具有0%的压缩比率),错误更正码控制信息INFO_ECC会记载后续错误更正码模块1215所使用的错误更正编码保护的位数。请注意到,记录数据D_REC得附加于第一数据D1的前方,如此一来,日后进行读取运作时,即可快速判别其压缩与错误更正码信息。
如图2所示,当该特定数据是经过压缩的第二数据D2,则错误更正码模块1215以较多位来对特定数据(亦即第二数据D2)与记录数据D_REC进行动态的错误更正编码保护,错误更正码模块1215所输出的第三数据D3中具有的错误更正编码位比第一数据D1经过错误更正编码保护所使用到的编码位更多,所以错误更正编码保护的效果也较佳;而如果特定数据是未经压缩的第一数据D1,则错误更正码模块1215以较少位数(可视为于一基本错误更正编码保护模式下的一基本使用的位数)来对特定数据进行错误更正编码保护。由于当主装置写入一连串连续的位‘1’或位‘0’(容易发生存取错误的数据型样)至闪存105时本发明的实施例的第一处理电路120可先压缩该串数据型样以产生一压缩后数据型样,所以,易发生存取错误的连续位‘1’或位‘0’的数据型样会先被压缩而转换为不具一连串连续位‘1’或位‘0’的压缩后数据型样,如此可先降低出错的机率。接着,因为数据压缩的关系,错误更正码模块1215使用较多位来进行错误更正编码保护,所以也可进一步降低发生无法更正的存取错误的机率,最后,再由随机函数发生器1220对错误更正码模块1215输出的数据型样进行数据整形,并将整形后的数据储存至闪存105,如此一来,控制器110存取闪存105时出错的机率将可大幅地降低。
此外,需注意的是,在本实施例中,分别对未经压缩的第一数据D1与记录数据D_REC及经过压缩的第二数据D2与记录数据D_REC进行错误更正编码保护并数据整形后所产生的数据,其数据量大小几乎或甚至相同,亦即,第三数据D3的数据量相同于对第一数据D1与记录数据D_REC进行错误更正保护后所产生的总数据量。然而,数据量大小相同并非是本发明的限制。由于闪存的写入以页面为最小写入单位,亦即,进行写入运作时,每次写入闪存的数据量大小与闪存的页面大小有关。例如,闪存的一个页面包含4个区段(sector),每个区段为闪存所规范的最小错误更正码保护单位。一般而言,进行错误更正保护后所产生的总数据量与其它存取控制数据的数据量总和会等于一个区段的大小。如此一来,于后续的存取写入运作中,即不会遭遇到欲写入闪存的数据量不一致的问题。
至于对数据的读出而言,首先,解随机函数发生器1225先对由闪存105中所读出的数据型样进行反向的数据整形以产生第三数据D3,由于第三数据D3中所具有的记录数据D_REC记载了错误更正码控制信息INFO_ECC,所以错误更正码模块1215可依据所记载的错误更正码控制信息INFO_ECC及第三数据D3,进行错误更正译码来产生一特定数据。其中,错误更正码控制信息INFO_ECC指示出错误更正译码所使用的一错误更正码的位数,如前所述,该位数依各笔数据的数据压缩比率而变的,例如,解随机函数发生器1225另从闪存105中读出的另一数据型样并进行反向的数据整形来产生第四数据D4,第四数据D4所具有的一记录数据也会记载有一错误更正码控制信息,其中第四数据D4的错误更正码控制信息与第三数据D3的错误更正码控制信息INFO_ECC可能会分别指示出使用到不同长度的错误更正码位数。
另外,此处的特定数据可能是经过压缩的第二数据D2或是未经压缩的第一数据D1,因为第三数据D3所具有的记录数据D_REC也记载了压缩指示信息INFO_COM,所以,接着第一处理电路120中的解压缩模块1210可根据压缩指示信息INFO_COM的指示(是否该特定数据一压缩后的数据)来决定是否对特定数据进行解压缩或是直接输出特定数据至主装置端,换言之,如果特定数据是第二数据D2,则解压缩模块1210解压缩该特定数据来产生第一数据D1至主装置,而如果特定数据是第一数据D1,则解压缩模块1210直接输出该特定数据至主装置。对主装置来说,其所知道的是第一数据D1储存于闪存105的某一逻辑地址(Logical address),而不会得知实际上是哪一数据型样储存于闪存105的实体地址(Physical address),但主装置读取一先前写入至闪存105中的数据时仍可正确无误地读出所储存的数据,且如前段说明所述,经由第一处理电路120与第二处理电路125的数据处理运作,压缩数据所得到较多的位空间可进行较多位数的错误更正编码保护,因此,数据存取的出错率将可被大幅地降低。
需注意的是,本实施例中的随机函数发生器1220与解随机函数发生器1225为非必要的(Optional)电路组件,换言之,在其它实施例中,也可不使用到随机函数发生器1220与解随机函数发生器1225,如此,控制器110读写闪存105时写入前述的第三数据D3至闪存105以及从闪存105读取出第三数据D3,而非存取经过数据整形后的数据型样。节省使用随机函数发生器1220与解随机函数发生器1225可减少电路成本的耗费,而就数据存取来说,第三数据大部分已经过压缩处理及提升错误更正编码保护。压缩后的数据中通常亦不会存在连续的位‘1’与位‘0’,故进行数据压缩亦可获得相当于数据整形的效果。故即便无数据整形的操作,其出错率也已降至可接受的水平。
此外,错误更正码模块1215也可另根据该特定数据的重要性来动态地进行不同位的错误更正码保护,例如,决定单元1240在产生记录数据D_REC中的错误更正码控制信息INFO_ECC时可根据第一、第二数据D1、D2的数据量比较结果(亦即压缩比率)以及该特定数据的重要性来决定错误更正码控制信息INFO_ECC中所记录的错误更正保护使用的位数。或者,在另一实施例中,错误更正码模块1215除了参考决定单元1240根据第一、第二数据D1、D2的数据量比较结果所决定的错误更正保护使用的位数外,也可参考该特定数据的重要性来微调错误更正保护使用的位数。举例来说,当该特定数据被分类为一重要数据(例如开机数据)时,决定单元1240可决定最后错误更正保护使用的位数或是透过错误更正码模块1215调整错误更正保护使用的位数,以使错误更正码模块1215可使用较多的位来对该笔数据进行错误更正编码保护,而当该特定数据被分类为一较不重要的数据时,错误更正码模块1215使用较少的位(基本的位数)来对该笔数据进行错误更正编码保护。一般而言,系统操作信息、开机信息等重要信息通常会有较高的压缩比率。而控制器110亦得透过其它方式分析该笔数据的重要程度,或者主装置得直接指示控制器110该笔数据的重要程度。
为了使读者更清楚明白记忆装置100中各电路组件的操作,请参照图3,图3是图1所示的记忆装置100进行数据写入的操作流程图;为了节省篇幅,数据读取的操作流程则不另赘述。倘若大体上可达到相同的结果,并不需要一定照图3所示的流程中的步骤顺序来进行,且图3所示的步骤不一定要连续进行,亦即其它步骤亦可插入其中;其详细流程步骤说明于下:
步骤305:开始;
步骤310:接口逻辑115接收来自于一主装置的第一数据D1;
步骤315:压缩单元1230压缩第一数据D1的数据内容来产生第二数据D2;
步骤320:缓冲单元1235暂存第一数据D1;
步骤325:决定单元1240比较第一数据D1、第二数据D2的数据量以决定使用第一数据D1或第二数据D2作为输出的特定数据,并产生记录数据D_REC;
步骤330:错误更正码模块1215接收特定数据与记录数据D_REC并对所接收的特定数据与记录数据D_REC进行错误更正编码保护以产生第三数据D3;
步骤335:随机函数发生器1220对第三数据D3的位进行数据整形;
步骤340:将数据整形后的数据型样储存至闪存105;以及
步骤345:结束。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (13)
1.一种使用于一闪存的控制方法,所述闪存为多层单元MLC闪存,其特征在于,其包含有:
压缩自一主装置所接收的一第一数据以产生一第二数据;
根据该第一数据与该第二数据来产生一记录数据;该步骤具体包括:比较第一数据、第二数据的数据量大小来判断其压缩比率,当压缩比率过低时,决定输出第一数据作为特定数据,当压缩比率未过低时,决定输出第二数据作为特定数据;以及参考从第一数据、第二数据中所决定出的特定数据,相对应的产生记录数据,记录数据至少记载压缩指示信息与错误更正码控制信息;所述压缩指示信息至少指示出该笔特定数据是否为压缩的数据以及如果是压缩数据则其压缩比率为何,而所述错误更正码控制信息则至少指示出对该笔特定数据而言错误更正编码保护所能够使用的错误更正码的位数;
依据该记录数据,至少对该第一、第二数据两者中的一特定数据进行一错误更正保护以产生一第三数据;其中该第一数据与该第二数据分别具有一第一数据量与一第二数据量,该错误更正保护为一动态错误更正保护,当该第一、第二数据量的差值小于一特定差值,该错误更正保护所使用的该错误更正码的位数小于一特定位数,而当该第一、第二数据量的差值大于该特定差值,则该错误更正保护所使用的该错误更正码的位数大于该特定位数;以及
将该第三数据写入该闪存中。
2.根据权利要求1所述的控制方法,其特征在于,其中该第三数据所具有的一第三数据量相同于对该第一数据进行基本错误更正保护所产生的数据量。
3.根据权利要求1所述的控制方法,其特征在于,其中参考从第一数据、第二数据中所决定出的特定数据,相对应的产生记录数据的步骤包含有:
依据该第一、第二数据的比较结果与数据重要性,决定该错误更正码控制信息。
4.根据权利要求1所述的控制方法,其特征在于,其中产生该第三数据的步骤包含有:
依据该特定数据的数据重要性以及该错误更正码控制信息,对该特定数据进行该错误更正保护以产生该第三数据。
5.一种使用于一闪存的控制方法,所述闪存为多层单元MLC闪存,其特征在于,其包含有:
由该闪存中读取出一第三数据,该第三数据具有一记录数据,该记录数据记载有一压缩指示信息与一错误更正码控制信息;
依据所记载的该错误更正码控制信息以及该第三数据,进行一错误更正译码以产生一特定数据;错误更正码控制信息指示出错误更正译码所使用的一错误更正码的位数,该位数依压缩之前的第一数据和压缩产生的第二数据的数据压缩比率而变;该第一数据与该第二数据分别具有一第一数据量与一第二数据量,当该第一、第二数据量的差值小于一特定差值,该错误更正码的位数小于一特定位数,而当该第一、第二数据量的差值大于该特定差值,则该错误更正码的位数大于该特定位数;以及
依据所记载的该压缩指示信息,解压缩该特定数据以产生一第一数据至一主装置或输出该特定数据至该主装置;其中,压缩指示信息至少指示出该笔特定数据是否为压缩的数据以及如果是压缩数据则其压缩比率为何;如果压缩指示信息指示该特定数据是压缩产生的第二数据,则解压缩该特定数据来产生第一数据至主装置,而如果压缩指示信息指示特定数据是压缩之前的第一数据,则直接输出该特定数据至主装置;该笔特定数据是否为压缩的数据是通过在该数据存入闪存时的以下判断确定的:当压缩比率过低时,决定压缩之前的第一数据作为特定数据,当压缩比率未过低时,决定压缩产生的第二数据作为特定数据。
6.根据权利要求5所述的控制方法,其特征在于,其另包含有:
由该闪存中读取出一第四数据,该第四数据所具有的一记录数据记载有一错误更正码控制信息,其中该第四数据的该错误更正码控制信息与该第三数据的该错误更正码控制信息分别指示不同的错误更正码位数。
7.一种使用于一闪存的控制器,所述闪存为多层单元MLC闪存,其特征在于,其包含有:
一第一处理电路,用以压缩自一主装置所接收的一第一数据以产生一第二数据,并根据该第一数据与该第二数据来产生一记录数据;其中该第一处理电路比较第一数据、第二数据的数据量大小来判断其压缩比率,当压缩比率过低时,决定输出第一数据作为特定数据,当压缩比率未过低时,决定输出第二数据作为特定数据;且所述第一处理电路还参考从第一数据、第二数据中所决定出的特定数据,相对应的产生记录数据,记录数据至少记载压缩指示信息与错误更正码控制信息;所述压缩指示信息至少指示出该笔特定数据是否为压缩的数据以及如果是压缩数据则其压缩比率为何,而所述错误更正码控制信息则至少指示出对该笔特定数据而言错误更正编码保护所能够使用的错误更正码的位数;以及
一第二处理电路,耦接至该第一处理电路,用以依据该记录数据,至少对该第一、第二数据两者中的一特定数据进行一错误更正保护以产生一第三数据,并将该第三数据写入该闪存中;其中该第一数据与该第二数据分别具有一第一数据量与一第二数据量,该错误更正保护为一动态错误更正保护,当该第一、第二数据量的差值小于一特定差值,该动态错误更正保护所使用的该错误更正码的位数小于一特定位数,而当该第一、第二数据量的差值大于该特定差值,则该错误更正保护所使用的该错误更正码的位数大于该特定位数。
8.根据权利要求7所述的控制器,其特征在于,其中该第三数据所具有的一第三数据量相同于对该第一数据进行基本错误更正保护所产生的数据量。
9.根据权利要求7所述的控制器,其特征在于,其中该第一处理电路依据该第一、第二数据的比较结果与数据重要性,决定该错误更正码控制信息。
10.根据权利要求7所述的控制器,其特征在于,其中该第二处理电路依据该特定数据的数据重要性以及该错误更正码控制信息,至少对该第一、 第二数据两者中的该特定数据进行该错误更正保护以产生该第三数据。
11.一种使用于一闪存的控制器,所述闪存为多层单元MLC闪存,其特征在于,其包含有:
一第二处理电路,用以由该闪存中读取出一第三数据,该第三数据具有一记录数据,该记录数据记载有一压缩指示信息与一错误更正码控制信息,并依据所记载的该错误更正码控制信息以及该第三数据,进行一错误更正译码以产生一特定数据;其中错误更正码控制信息指示出错误更正译码所使用的一错误更正码的位数,该位数依压缩之前的第一数据和压缩产生的第二数据的数据压缩比率而变;该第一数据与该第二数据分别具有一第一数据量与一第二数据量,当该第一、第二数据量的差值小于一特定差值,该错误更正码的位数小于一特定位数,而当该第一、第二数据量的差值大于该特定差值,则该错误更正码的位数大于该特定位数;以及
一第一处理电路,耦接至该第二处理电路,用以依据所记载的该压缩指示信息,解压缩该特定数据以产生一第一数据至一主装置或输出该特定数据至该主装置;其中,压缩指示信息至少指示出该笔特定数据是否为压缩的数据以及如果是压缩数据则其压缩比率为何;如果压缩指示信息指示该特定数据是压缩产生的第二数据,则解压缩该特定数据来产生第一数据至主装置,而如果压缩指示信息指示特定数据是压缩之前的第一数据,则直接输出该特定数据至主装置;该笔特定数据是否为压缩的数据是通过在该数据存入闪存时的以下判断确定的:当压缩比率过低时,决定压缩之前的第一数据作为特定数据,当压缩比率未过低时,决定压缩产生的第二数据作为特定数据。
12.根据权利要求11所述的控制器,其特征在于,其中该第二处理电路由该闪存中读取出一第四数据,该第四数据所具有的一记录数据记载有一错误更正码控制信息,其中该第四数据的该错误更正码控制信息与该第三数据的该错误更正码控制信息分别指示不同的错误更正码位数。
13.一种使用于一记忆装置的存取方法,所述记忆装置为多层单元MLC闪存,其特征在于,该方法包含:
接收一第一数据;
对该第一数据进行压缩以产生一第二数据;
依据该第二数据的一压缩比率选择性地将该第一数据或该第二数据选为一特定数据;该步骤具体包括:当压缩比率过低时,选择输出第一数据作为特定数据,当压缩比率未过低时,选择输出第二数据作为特定数据;以及
依据该压缩比率对该特定数据进行错误更正保护以产生一第三数据,其中该第三数据用以存入该记忆装置;当该第一、第二数据量的差值小于一特定差值,该错误更正保护所使用的该错误更正码的位数小于一特定位数,而当该第一、第二数据量的差值大于该特定差值,则该错误更正保护所使用的该错误更正码的位数大于该特定位数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010522184.XA CN102456400B (zh) | 2010-10-15 | 2010-10-15 | 使用于闪存的控制方法与控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010522184.XA CN102456400B (zh) | 2010-10-15 | 2010-10-15 | 使用于闪存的控制方法与控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102456400A CN102456400A (zh) | 2012-05-16 |
CN102456400B true CN102456400B (zh) | 2015-03-11 |
Family
ID=46039493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010522184.XA Active CN102456400B (zh) | 2010-10-15 | 2010-10-15 | 使用于闪存的控制方法与控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102456400B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428765B (zh) * | 2012-05-25 | 2018-05-04 | 广州市奥威亚电子科技有限公司 | 资源处理方法及装置 |
CN108334287A (zh) * | 2018-01-30 | 2018-07-27 | 江苏华存电子科技有限公司 | 一种提高闪存每单位写入的资料量的方法及装置 |
CN112540719A (zh) * | 2019-09-23 | 2021-03-23 | 深圳宏芯宇电子股份有限公司 | 数据编码方法、存储器存储装置及存储器控制器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101556560A (zh) * | 2008-04-09 | 2009-10-14 | 群联电子股份有限公司 | 储存装置、控制器及其数据存取方法 |
CN101661412A (zh) * | 2008-08-29 | 2010-03-03 | 智微科技股份有限公司 | 快闪存储器的配置方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739576B2 (en) * | 2006-08-31 | 2010-06-15 | Micron Technology, Inc. | Variable strength ECC |
-
2010
- 2010-10-15 CN CN201010522184.XA patent/CN102456400B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101556560A (zh) * | 2008-04-09 | 2009-10-14 | 群联电子股份有限公司 | 储存装置、控制器及其数据存取方法 |
CN101661412A (zh) * | 2008-08-29 | 2010-03-03 | 智微科技股份有限公司 | 快闪存储器的配置方法 |
Non-Patent Citations (1)
Title |
---|
An Adaptive-Rate Error Correction Scheme for NAND Flash Memory;Te-Hsuan Chen 等;《2009 27th IEEE VLSI Test Symposium》;20090504;53-58 * |
Also Published As
Publication number | Publication date |
---|---|
CN102456400A (zh) | 2012-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI455144B (zh) | 使用於快閃記憶體的控制方法與控制器 | |
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US8364929B2 (en) | Enabling spanning for a storage device | |
US9690490B2 (en) | Method for writing data, memory storage device and memory control circuit unit | |
US9274706B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
US9336081B2 (en) | Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access | |
US9304907B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
US10013187B2 (en) | Mapping table accessing method, memory control circuit unit and memory storage device | |
US20120131266A1 (en) | Memory controller, data storage system including the same, method of processing data | |
US8706953B2 (en) | Data storage device and method performing background operation with selected data compression | |
US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
CN104866429A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US11176033B2 (en) | Data storage devices and data processing methods | |
US10911064B1 (en) | Symbol pair encoding for data compression | |
CN102456400B (zh) | 使用于闪存的控制方法与控制器 | |
CN104881240A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN102591737B (zh) | 数据写入与读取方法、存储器控制器与存储器储存装置 | |
US20130019138A1 (en) | Data processing method, memory controller, and memory storage device | |
CN106406746A (zh) | 映射表存取方法、存储器控制电路单元及存储器存储装置 | |
CN105573662B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
US20160117244A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US11055231B2 (en) | Data storage devices and data processing methods of skipping editing of fields in H2F table when consecutive addresses are present in F2H table | |
CN110688248B (zh) | 一种可变动码率与更正能力内存控制方法 | |
US20230185667A1 (en) | Memory controller and data processing method | |
CN117270788A (zh) | 存储器控制器、实体页管理方法及存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |