CN102034542B - 数据型样管理的方法以及相关的记忆装置及其控制器 - Google Patents

数据型样管理的方法以及相关的记忆装置及其控制器 Download PDF

Info

Publication number
CN102034542B
CN102034542B CN200910179749.6A CN200910179749A CN102034542B CN 102034542 B CN102034542 B CN 102034542B CN 200910179749 A CN200910179749 A CN 200910179749A CN 102034542 B CN102034542 B CN 102034542B
Authority
CN
China
Prior art keywords
controller
data
translation buffer
linear feedback
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
Application number
CN200910179749.6A
Other languages
English (en)
Other versions
CN102034542A (zh
Inventor
林璟辉
叶国良
许根富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN200910179749.6A priority Critical patent/CN102034542B/zh
Publication of CN102034542A publication Critical patent/CN102034542A/zh
Application granted granted Critical
Publication of CN102034542B publication Critical patent/CN102034542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种针对一闪存的控制器所存取的数据来进行数据型样管理的方法以及相关的记忆装置及其控制器,所述方法包括:在所述控制器接收到一写入命令时,产生一第一随机函数,其中所述写入命令用于指示所述控制器将所述数据写入所述闪存;以及依据所述第一随机函数的序列来逐位地调整所述数据的多个位以产生一虚拟乱码位序列,并将所述虚拟乱码位序列写入所述闪存以代表所述数据,由此调整所述数据的数据型样分布。本发明还提供相关的记忆装置及其控制器,其中所述控制器包括:一只读存储器;一微处理器;以及一随机函数发生器。所述控制器能进行数据型样管理。

Description

数据型样管理的方法以及相关的记忆装置及其控制器
技术领域
本发明涉及闪存(Flash Memory)的存取(Access),更具体地说,涉及一种针对一闪存的控制器所存取的数据来进行数据型样(Data Pattern)管理的方法以及相关的记忆装置及其控制器。
背景技术
近年来由于闪存的技术不断地发展,各种便携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)被广泛地实施于诸多应用中。因此,这些便携式记忆装置中的闪存的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单层单元闪存(SingleLevel Cell,SLC)与多层单元闪存(Multiple Level Cell,MLC)两大类。单层单元闪存中的每个被当作记忆单元的晶体管只有两种电荷值,分别用于表示逻辑值0与逻辑值1。另外,多层单元闪存中的每个被当作记忆单元的晶体管的储存能力则被充分利用,采用较高的电压来驱动,以通过不同级别的电压在一个晶体管中记录两组位信息(00、01、11、10);理论上,多层单元闪存的记录密度可以达到单层单元闪存的记录密度的两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
与单层单元闪存相比,由于多层单元闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多层单元闪存很快地成为市场上的便携式记忆装置竞相采用的主流。然而,多层单元闪存的不稳定性所导致的问题也一一浮现。为了确保便携式记忆装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,有了这些管理机制的便携式记忆装置还是有不足之处。举例来说,使用者可能基于其使用习惯而不断地写入具有某些特定数据型样的数据,而这些特定数据型样特别容易造成错误(例如:写入错误、读取错误等)。因此,需要一种新颖的方法针对所述控制器所存取的数据来进行数据型样管理,以减少错误的发生。
发明内容
因此,本发明的目的之一在在提供一种用于管理闪存的多个区块的方法以及相关的记忆装置及其控制器,以解决上述问题。
因此本发明的目的之一在于提供一种针对一闪存的控制器所存取的数据来进行数据型样管理的方法以及相关的记忆装置及其控制器,以解决上述问题。
本发明的较佳实施例中提供一种针对一闪存的控制器所存取的数据来进行数据型样管理的方法,所述方法包括:在所述控制器接收到一写入命令时,产生一第一随机函数,其中所述写入命令用于指示所述控制器将所述数据写入所述闪存;以及依据所述第一随机函数的序列来逐位地调整所述数据的多个位以产生一虚拟乱码位序列,并将所述虚拟乱码位序列写入所述闪存以代表所述数据,由此调整所述数据的数据型样分布。
本发明在提供上述方法的同时,还对应地提供一种记忆装置,其包括:一闪存,所述闪存包括多个区块;以及一控制器,用于存取所述闪存以及管理所述多个区块,并且还针对所述控制器本身所存取的数据来进行数据型样管理。另外,所述控制器包括一随机函数发生器,用于在所述控制器接收到一写入命令时,产生一第一随机函数,其中所述写入命令用于指示所述控制器将所述数据写入所述闪存。此外,所述控制器依据所述第一随机函数的序列来逐位地调整所述数据的多个位以产生一虚拟乱码位序列,并将所述虚拟乱码位序列写入所述闪存以代表所述数据,由此调整所述数据的数据型样分布。
本发明在提供上述方法的同时,还对应地提供一种记忆装置的控制器,所述控制器用于存取一闪存,所述闪存包括多个区块,所述控制器包括:一只读存储器,用于储存一程序代码;一微处理器,用于执行所述程序代码以控制对所述闪存的存取以及管理所述多个区块;以及一随机函数发生器,用于在所述控制器接收到一写入命令时,产生一第一随机函数,其中所述写入命令用于指示所述控制器将数据写入所述闪存。另外,所述控制器依据所述第一随机函数的序列来逐位地调整所述数据的多个位以产生一虚拟乱码位序列,并将所述虚拟乱码位序列写入所述闪存以代表所述数据,由此调整所述数据的数据型样分布。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为依据本发明一第一实施例的一种记忆装置的示意图。
图2为依据本发明一实施例的一种针对一闪存的控制器所存取的数据来进行数据型样管理的方法的流程图。
图3为图2所示的方法在一实施例中所涉及的数据型样调整的示意图。
图4A至4C为图1所示的记忆装置在数个实施例中所采用的可编程线性反馈平移缓存器的示意图,其中所述可编程线性反馈平移缓存器可应用于图1所示的随机函数发生器或解随机函数发生器。
图5为依据本发明一第二实施例的一种记忆装置的示意图。
图6为图5所示的密钥产生器在一实施例中所采用的查找表。
【主要组件符号说明】
100,200记忆装置            110,210存储器控制器   112微处理器
112C程序代码                112M只读存储器         114,214控制逻辑
1142错误更正码编码器        1143编码数据位序列     1144随机函数发生器
1145,1145’虚拟乱码位序列  1146解随机函数发生器   1147复原数据位序列
1148错误更正码译码器        116缓冲存储器          118接口逻辑
120闪存                     2140密钥产生器
400随机函数发生器或解随机函数发生器                402,408位序列
405,412-1,412-2,412-3,412-4加法器
410,420,430可编程线性反馈平移缓存器
414-0,414-1,414-2,414-3,414-4缓存器
416-1,416-2,416-3,416-4开关
SW-1,SW-2,SW-3,SW-4对应于密钥的切换信号
910针对一闪存的控制器所存取的数据来进行数据型样管理的方法
912,914,916,918步骤
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参考图1,图1为依据本发明一第一实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100尤其为便携式记忆装置,例如:符合SD/MMC、CF、MS、XD标准的记忆卡,或通用序列总线快闪碟(Universal Serial Bus FlashDrive,USB Flash Drive,亦称为USB Flash Disk),即所谓的随身碟,但不以此为限。记忆装置100包括:一闪存(Flash Memory)120;以及一控制器,用于存取闪存120,其中该控制器例如一存储器控制器110。依据本实施例,存储器控制器110包括一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。另外,控制逻辑114包括一错误更正码(Error Correction Code,ECC)编码器1142、一随机函数发生器(Randomizer)1144、一解随机函数发生器(Derandomizer)1146、与一错误更正码译码器1148。
在本实施例中,只读存储器112M用于储存一程序代码112C,而微处理器112则用于执行程序代码112C以控制对闪存120的存取(Access)。一般情况下,闪存120包括多个区块(Block),而该控制器(例如:通过微处理器112执行程序代码112C的存储器控制器110)对闪存120进行抹除数据的运作以区块为单位来进行抹除。另外,一区块可记录特定数量的页(Page),其中上述的控制器对闪存120进行写入数据的运作以页为单位来进行写入。
实际操作中,通过微处理器112执行程序代码112C的存储器控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存120的存取运作(尤其是对至少一区块或至少一页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(HostDevice)交互。依据本实施例,除了能存取闪存120,存储器控制器110还能妥善地管理该多个区块。
另外,存储器控制器110还可针对该控制器本身所存取的数据来进行数据型样(Data Pattern)管理。在本实施例中,错误更正码编码器1142对使用者数据(例如错误更正码编码器1142所输入的“使用者数据位”)进行错误更正码编码,以产生编码数据作为该数据,其中该编码数据包括上述的使用者数据、内部奇偶校验码(Parity of the Inner Code)、与外部奇偶校验码(Parity of theOuter Code),均通过编码数据位序列1143输入至随机函数发生器1144。存储器控制器110进行数据型样管理的相关细节可参考图2来进一步说明。
图2为依据本发明一实施例的一种针对一闪存的控制器所存取的数据来进行数据型样管理的方法910的流程图。该方法可应用于图1所示的记忆装置100,尤其是上述的控制器(例如:通过微处理器112执行程序代码112C的存储器控制器110)。另外,该方法可通过利用图1所示的记忆装置100来实施,尤其是通过利用上述的控制器来实施。该方法说明如下:
步骤912:在该控制器接收到一写入命令时,随机函数发生器1144产生一第一随机函数(Random Function),其中该写入命令用于指示该控制器将该数据写入闪存120。
步骤914:该控制器(在本实施例,尤其是其内的随机函数发生器1144)依据该第一随机函数的序列来逐位地调整该数据的多个位(例如编码数据位序列1143)以产生一虚拟乱码位序列1145,并将该虚拟乱码位序列写入闪存120以代表该数据,由此调整该数据的数据型样分布,其中调整后的数据型样分布比调整前的数据型样分布更为平均。然而,这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,随机函数发生器1144可设置于控制逻辑114之外,其中编码数据位序列1143与虚拟乱码位序列1145的间设置有一加法器,用于注入该第一随机函数的序列并据以调整编码数据位序列1143。
步骤916:在该控制器接收到一读取命令时,解随机函数发生器1146产生一第二随机函数,其中该读取命令用于指示该控制器从闪存120读取该数据。
步骤918:该控制器(在本实施例尤其是其内的解随机函数发生器1146)依据该第二随机函数的序列来逐位地调整从闪存120所读取的该虚拟乱码位序列(即解随机函数发生器1146从闪存120所读出的虚拟乱码位序列1145’),以重现(Reproduce)该数据(例如复原数据位序列1147),由此复原该数据的原始数据型样分布。然而,这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,解随机函数发生器1146可设置于控制逻辑114之外,其中虚拟乱码位序列1145’与复原数据位序列1147之间设置有一加法器,用于注入该第二随机函数的序列并据以调整虚拟乱码位序列1145’。
在步骤918中,解随机函数发生器1146已复原该数据的原始数据型样分布,故错误更正码译码器1148即可依据复原数据位序列1147所代表的使用者数据、内部奇偶校验码、与外部奇偶校验码进行错误更正码译码,以取得译码后的使用者数据(例如错误更正码译码器1148所输出的“使用者数据位”)。
图3为图2所示的方法在一实施例中所涉及的数据型样调整的示意图。图3左半部可代表步骤914所述调整前的数据型样分布,而图3右半部则代表步骤914所述调整后的数据型样分布,其中横轴代表数据型样类型,而纵轴代表数据型样机率。在执行步骤918之后,解随机函数发生器1146复原该数据的原始数据型样分布,如图3左半部所示。
请注意,调整后的数据型样分布比调整前的数据型样分布更为平均,其中在数据型样类型的个数较多的情况下,数据型样机率的平均值会趋近于零。另外,在步骤914的调整之前,图3左半部所示的问题数据型样(即以虚线标示的数据型样)原本具有相当大的相对机率密度;在步骤914的调整之后,这些问题数据型样的相对机率密度都降低了,如图3右半部所示。因此,与现有技术相比,在某些特定数据型样特别容易造成错误(例如:写入错误、读取错误...等)的情况下,当使用者基于其使用习惯而不断地写入具有这些特定数据型样的数据时,本发明的方法以及相关的记忆装置及其控制器能将存取数据的错误率大幅地降低。
依据本发明一实施例,尤其是该第一实施例的一特例,该控制器包括至少一线性反馈平移缓存器(Linear Feedback Shift Register,LFSR),用于产生至少一随机函数。例如:存储器控制器110包括两个线性反馈平移缓存器,分别设置于随机函数发生器1144与解随机函数发生器1146中,其中随机函数发生器1144与解随机函数发生器1146中的每一个包括一线性反馈平移缓存器。依据本实施例,这两个线性反馈平移缓存器中的每一个包括至少一开关,以构成至少一可编程(Programmable)线性反馈平移缓存器,例如图4A所示的可编程线性反馈平移缓存器410。然而,这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,随机函数发生器1144与解随机函数发生器1146也可共享同一个可编程线性反馈平移缓存器。
实际操作中,可编程线性反馈平移缓存器410包括:多个加法器412-1、412-2、412-3、与412-4,多个缓存器414-0、414-1、414-2、414-3、与414-4,以及多个开关416-1、416-2、416-3、与416-4。加法器412-1、412-2、412-3、与412-4可为模加法器(modulo 2 adder)。请注意,缓存器414-0、414-1、414-2、414-3、与414-4在初始状态下暂存一列数值{0,1,0,1,0},分别标示于各个缓存器上。然而,这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的其它变化例,缓存器414-0、414-1、414-2、414-3、与414-4在初始状态下也可暂存别的数值。
另外,可编程线性反馈平移缓存器410的每一开关设置在可编程线性反馈平移缓存器410的一线性组合路径。存储器控制器110将至少一密钥(Key)输入至可编程线性反馈平移缓存器410的开关,以利用该密钥来设定可编程线性反馈平移缓存器410的线性组合路径。依据本实施例,开关416-1、416-2、416-3、与416-4分别依据对应于该密钥的切换信号SW-1、SW-2、SW-3、与SW-4来切换。当一开关416-n(n=1、2、3、或4)所接收的切换信号SW-n对应于一开启状态时(例如切换信号SW-n为逻辑值1时,可记为“SW-n=1”,则开关416-n接通其所处的线性组合路径,也就是从缓存器414-n的输出端反馈至加法器412-n的路径;否则(即切换信号SW-n对应于一关闭状态时,例如切换信号SW-n为逻辑值0时,可记为“SW-n=0”),开关416-n断开其所处的线性组合路径。因此,通过改变输入可编程线性反馈平移缓存器410的密钥,存储器控制器110能重新设定可编程线性反馈平移缓存器410的线性组合路径,也即改变可编程线性反馈平移缓存器410的结构。
更详细地说,通过改变输入可编程线性反馈平移缓存器410的密钥,存储器控制器110能重新设定可编程线性反馈平移缓存器410用于产生随机函数的产生方程式。举例来说,如图4B的可编程线性反馈平移缓存器420,其随机函数产生方程式为G1,而其所产生的随机函数序列S1为“0000101011101100011111001101001”。若缓存器424-0、424-1、424-2、424-3、与424-4在初始状态下所暂存的列数值为{0,1,0,0,0},则可编程线性反馈平移缓存器420会自随机函数序列S1的第1个位(“0”)开始循序输出随机函数序列S1的各个位。当该随机函数序列S1已全部被输出(最后一个位“1”),则可编程线性反馈平移缓存器420会接着输出随机函数序列S1的第1个位(“0”)。如此周而复始地输出随机函数序列S1。缓存器424-0~424-4的初始状态会决定可编程线性反馈平移缓存器420从随机函数序列S1中第几个位开始输出该序列。例如,若缓存器424-0~424-4的初始状态为{1,1,0,1,0},则可编程线性反馈平移缓存器420会自随机函数序列S1的第5个位(“1”)开始循序输出随机函数序列S1的各个位。在另一实施例中,如图4C的可编程线性反馈平移缓存器430,其随机函数产生方程式为G2,而其所产生的随机函数序列S2为“0000110101001000101111101100111”。
如此一来,通过输入不同的可编程线性反馈平移缓存器410的密钥,存储器控制器110能使可编程线性反馈平移缓存器410产生不同的随机函数。从而增加虚拟乱码位序列1145的乱度(entropy),使得调整后的数据型样分布更为平均。请注意到,图4A、4B、4C中所示的缓存器、加法器、开关等相关组件个数仅为说明之用。使用者可依据其需要增加或减少缓存器与加法器个数。
在另一实施例中,为了增加虚拟乱码位序列1145的乱度,存储器控制器110可以改变密钥使可编程线性反馈平移缓存器410以多个不同的随机函数对编码数据位序列1143中的一页数据进行处理。例如,编码数据位序列1143中的一页数据有512千字节(kilobyte,即1024字节),存储器控制器110以第1密钥设定可编程线性反馈平移缓存器410,使随机函数发生器1144以随机函数序列S1处理编码数据位序列1143中的该页数据的第1~31位,接着存储器控制器110以第2密钥设定可编程线性反馈平移缓存器410,使随机函数发生器1144以随机函数序列S2处理编码数据位序列1143中的该页数据的第32~62位,依此类推。如此一来虚拟乱码位序列1145的乱度即可增加。
依据本实施例,可编程线性反馈平移缓存器410可应用于图1所示的随机函数发生器1144或解随机函数发生器1146。例如:当标号400代表随机函数发生器1144时,位序列402与408分别代表编码数据位序列1143与虚拟乱码位序列1145。又例如:当标号400代表解随机函数发生器1146时,位序列402与408分别代表虚拟乱码位序列1145’与复原数据位序列1147。然而,这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例(例如接续步骤914所述的变化例),在随机函数发生器1144设置于控制逻辑114之外的情况下,可编程线性反馈平移缓存器410代表随机函数发生器1144,其中位序列402与408分别代表编码数据位序列1143与虚拟乱码位序列1145,而加法器405则用于注入该第一随机函数的序列并据以调整编码数据位序列1143。其中,加法器405可为模加法器(modulo 2 adder)。依据本实施例的另一变化例(例如接续步骤918所述的变化例),在解随机函数发生器1146设置于控制逻辑114之外的情况下,可编程线性反馈平移缓存器410代表解随机函数发生器1146,其中位序列402与408分别代表虚拟乱码位序列1145’与复原数据位序列1147,而加法器405则用于注入该第二随机函数的序列并据以调整虚拟乱码位序列1145’。
依据本实施例的另一变化例,可编程线性反馈平移缓存器410可通过程序代码112C中的软件模块来实现,而存储器控制器110利用密钥改变由程序代码112C的软件模块所实现的可编程线性反馈平移缓存器410的随机函数产生方程式。其中加法器405仍设置于控制逻辑114之内,用于注入该第一随机函数的序列或该第二随机函数的序列,并据以调整位序列402。依据本变化例或其它变化例,随机函数发生器1144的至少一部分可通过执行程序代码112C的微处理器112来实施;类似地,解随机函数发生器1146的至少一部分也可通过执行程序代码112C的微处理器112来实施。
依据本实施例,该密钥的产生方法定义于程序代码112C,故通过微处理器112执行程序代码112C的存储器控制器110可决定该密钥。例如:存储器控制器110可决定该密钥为某一密钥值,该密钥值的二进制形式的数个位分别代表切换信号SW-n(n=1、2、3、4)的开启/关闭状态,其中该密钥值的这些位可为逻辑值1或0,分别代表开启状态与关闭状态。然而,这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,该密钥值为一预定值,其各个位分别代表预定的开启/关闭状态。请注意到,密钥的位数可依开关数而定。
依据本实施例的另一变化例,该密钥对应于可编程线性反馈平移缓存器410的输入而变化。例如:该密钥包括至少一区块地址或至少一页地址,尤其是位序列402所代表的数据的逻辑地址或其储存在闪存120中的实体地址。当存储器控制器110决定某一区块地址或页地址作为该密钥的一密钥值时,该区块地址或页地址的二进制形式的数个位就能用于实时设定可编程线性反馈平移缓存器410的线性组合路径以决定其随机函数产生方程式。
依据本实施例的另一变化例,该密钥对应于至少一区块地址或至少一页地址,尤其是位序列402所代表的数据的地址。存储器控制器110可依据一运算规则,来决定某一区块地址或页地址所对应的密钥值,其中该密钥值的数个位就能用于实时设定可编程线性反馈平移缓存器410的线性组合路径。例如,该运算规则可为,以该区块地址或页地址的奇数位(或偶数位)为所对应的密钥值,或者,以该区块地址或页地址的一部分为所对应的密钥值等。
依据本实施例的另一变化例,该密钥对应于至少一区块地址或至少一页地址,尤其是位序列402所代表的数据的逻辑地址或其储存在闪存120的实体地址。存储器控制器110可依据一查找表(Look-up Table),来查找某一区块地址或页地址所对应的密钥值,其中该密钥值的数个位就能用于实时设定可编程线性反馈平移缓存器410的线性组合路径。
图5为依据本发明一第二实施例的一种记忆装置200的示意图,其中本实施例为第一实施例的变化例。如图5所示,上述的控制逻辑114被代换为控制逻辑214,其中除了图1所示的原属控制逻辑114的各个组件之外,控制逻辑214还包括一密钥产生器2140。由于上述的架构上的改变,该控制器在本实施例中改称为存储器控制器210。
请注意,本实施例的密钥产生器2140可用于取代前述的各个实施例/变化例当中对该密钥的产生机制,尤其是用于取代程序代码112C所定义的该密钥的产生方法,其中该密钥的产生方法仍可比照前述的各个实施例/变化例。例如:密钥产生器2140可通过利用上述的查找表来产生该密钥的一列密钥值。
图6为图5所示的密钥产生器2140在一实施例中所采用的查找表,其中该查找表的左半部可代表上述的至少一区块地址或至少一页地址,而该查找表的右半部则代表该密钥的密钥值。然而,这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,密钥产生器2140可依据该查找表或另一查找表,来设定缓存器414-0、414-1、414-2、414-3、与414-4在初始状态或其它状态下所暂存的一列数值。
依据本实施例的另一变化例,在随机函数发生器1144与解随机函数发生器1146中的每一个包括一第一可编程线性反馈平移缓存器(其实施方式例如图4A所示的可编程线性反馈平移缓存器410)的情况下,存储器控制器110利用一第二可编程线性反馈平移缓存器(其实施方式例如图4A所示的可编程线性反馈平移缓存器410)作为密钥产生器2140,其中密钥产生器2140所产生的该密钥被输入至该第一可编程线性反馈平移缓存器。请注意,本变化例的密钥产生器2140内的一个或多个线性组合路径可依据预设路径安排,直接以导线导通,故不需要设置上述的开关416-n。第二可编程线性反馈平移缓存器的数个缓存器的初始状态可对应于至少一区块地址或至少一页地址,尤其是位序列402所代表的数据的逻辑地址或其储存在闪存120的实体地址,以增加其乱度。此外,第二可编程线性反馈平移缓存器也需以类似于图4A所示的可编程线性反馈平移缓存器410的形式实现。本变化例与前述的各个实施例/变化例相似之处不再重复赘述。
依据本实施例的另一变化例,在随机函数发生器1144与解随机函数发生器1146共享同一个第一可编程线性反馈平移缓存器的情况下,存储器控制器110利用该第二可编程线性反馈平移缓存器作为密钥产生器2140,其中密钥产生器2140所产生的该密钥被输入至该第一可编程线性反馈平移缓存器。本变化例与前述的各个实施例/变化例类似之处不再重复赘述。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (19)

1.一种针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,所述方法包括:
在所述控制器接收到一写入命令时,产生一第一随机函数,其中所述写入命令用于指示所述控制器将所述数据写入所述闪存;以及
依据所述第一随机函数的序列来逐位地调整所述数据的多个位以产生一虚拟乱码位序列,并将所述虚拟乱码位序列写入所述闪存以代表所述数据,由此调整所述数据的数据型样分布;其中,
在所述控制器中提供至少一线性反馈平移缓存器;以及
利用所述至少一线性反馈平移缓存器来产生至少一随机函数,其中所述至少一随机函数包括所述第一随机函数;
在至少一线性反馈平移缓存器中提供至少一开关,以构成至少一可编程线性反馈平移缓存器,其中所述可编程线性反馈平移缓存器的每一开关设置在所述可编程线性反馈平移缓存器的一线性组合路径;以及
将至少一密钥输入至所述可编程线性反馈平移缓存器的开关,以利用所述至少一密钥来设定所述可编程线性反馈平移缓存器的线性组合路径。
2.根据权利要求1所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,其中调整后的数据型样分布比调整前的数据型样分布更为平均。
3.根据权利要求2所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,还包括:
在所述控制器接收到一读取命令时,产生一第二随机函数,其中所述读取命令用于指示所述控制器从所述闪存读取所述数据;以及
依据所述第二随机函数的序列来逐位地调整从所述闪存所读取的所述虚拟乱码位序列,以重现所述数据,由此复原所述数据的原始数据型样分布。
4.根据权利要求1所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,其中所述密钥对应于所述可编程线性反馈平移缓存器的输入而变化。
5.根据权利要求1所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,其中所述密钥包括至少一区块地址或至少一页地址;或所述密钥对应于至少一区块地址或至少一页地址。
6.根据权利要求1所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,其中所述至少一可编程线性反馈平移缓存器包括一第一可编程线性反馈平移缓存器与一第二可编程线性反馈平移缓存器;以及所述方法还包括:
利用所述第二可编程线性反馈平移缓存器作为一密钥产生器;以及
将所述密钥产生器所产生的密钥输入至所述第一可编程线性反馈平移缓存器。
7.根据权利要求1所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,还包括:
进行错误更正码编码,以产生编码数据作为所述数据,其中所述编码数据包括使用者数据、内部奇偶校验码、与外部奇偶校验码。
8.根据权利要求1所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,还包括:
在所述控制器中提供至少一随机函数发生器,所述随机函数发生器包括所述至少一线性反馈平移缓存器,且所述控制器利用至少一密钥改变所述至少一线性反馈平移缓存器的结构以设定所述随机函数产生方程式,
将至少一密钥输入至所述至少一随机函数发生器中的所述至少一线性反馈平移缓存器,以改变所述至少一线性反馈平移缓存器的结构以设定所述至少一随机函数发生器的所述随机函数产生方程式,利用所述至少一随机函数发生器依据其中的所述至少一线性反馈平移缓存器产生的至少一随机函数产生方程式产生所述虚拟乱码位序列。
9.根据权利要求8所述的针对一闪存的控制器所存取的数据来进行数据型样管理的方法,其特征在于,其中所述随机函数发生器依据其中的所述至少一线性反馈平移缓存器产生的多个随机函数产生方程式对一页数据进行处理以产生所述虚拟乱码位序列。
10.一种记忆装置,其特征在于,包括:
一闪存,所述闪存包括多个区块;以及
一控制器,用于存取所述闪存以及管理所述多个区块,并且还针对所述控制器本身所存取的数据来进行数据型样管理,其中所述控制器包括:
一随机函数发生器,用于在所述控制器接收到一写入命令时,产生一第一随机函数,其中所述写入命令用于指示所述控制器将所述数据写入所述闪存;
其中所述控制器依据所述第一随机函数的序列来逐位地调整所述数据的多个位以产生一虚拟乱码位序列,并将所述虚拟乱码位序列写入所述闪存以代表所述数据,由此调整所述数据的数据型样分布;
其中所述控制器包括至少一线性反馈平移缓存器,用于产生至少一随机函数;以及所述随机函数发生器包括所述至少一线性反馈平移缓存器中的一个;
其中所述至少一线性反馈平移缓存器包括至少一开关,以构成至少一可编程线性反馈平移缓存器;所述可编程线性反馈平移缓存器的每一开关设置在所述可编程线性反馈平移缓存器的一线性组合路径;以及所述控制器将至少一密钥输入至所述可编程线性反馈平移缓存器的开关,以利用所述至少一密钥来设定所述可编程线性反馈平移缓存器的线性组合路径。
11.一种记忆装置的控制器,其特征在于,所述控制器用于存取一闪存,所述闪存包括多个区块,所述控制器包括:
一只读存储器,用于储存一程序代码;
一微处理器,用于执行所述程序代码以控制对所述闪存的存取以及管理所述多个区块;以及
一随机函数发生器,用于在所述控制器接收到一写入命令时,产生一第一随机函数,其中所述写入命令用于指示所述控制器将数据写入所述闪存;
其中所述控制器依据所述第一随机函数的序列来逐位地调整所述数据的多个位以产生一虚拟乱码位序列,并将所述虚拟乱码位序列写入所述闪存以代表所述数据,由此调整所述数据的数据型样分布;
其中所述控制器包括至少一线性反馈平移缓存器,用于产生至少一随机函数;以及所述随机函数发生器包括所述至少一线性反馈平移缓存器中的一个;
其中所述至少一线性反馈平移缓存器包括至少一开关,以构成至少一可编程线性反馈平移缓存器;所述可编程线性反馈平移缓存器的每一开关设置在所述可编程线性反馈平移缓存器的一线性组合路径;以及所述控制器将至少一密钥输入至所述可编程线性反馈平移缓存器的开关,以利用所述至少一密钥来设定所述可编程线性反馈平移缓存器的线性组合路径。
12.根据权利要求11所述的记忆装置的控制器,其特征在于,其中所述控制器调整后的数据型样分布比调整前的数据型样分布更为平均。
13.根据权利要求12所述的记忆装置的控制器,其特征在于,还包括:
一解随机函数发生器,用于在所述控制器接收到一读取命令时,产生一第二随机函数,其中所述读取命令用于指示所述控制器从所述闪存读取所述数据;
其中所述控制器依据所述第二随机函数的序列来逐位地调整从所述闪存所读取的所述虚拟乱码位序列,以重现所述数据,由此复原所述数据的原始数据型样分布。
14.根据权利要求11所述的记忆装置的控制器,其特征在于,其中所述密钥对应于所述可编程线性反馈平移缓存器的输入而变化。
15.根据权利要求14所述的记忆装置的控制器,其特征在于,其中所述密钥包括至少一区块地址或至少一页地址;或所述密钥对应于至少一区块地址或至少一页地址。
16.根据权利要求11所述的记忆装置的控制器,其特征在于,其中所述至少一可编程线性反馈平移缓存器包括一第一可编程线性反馈平移缓存器与一第二可编程线性反馈平移缓存器;以及所述控制器利用所述第二可编程线性反馈平移缓存器作为一密钥产生器,其中所述密钥产生器所产生的密钥被输入至所述第一可编程线性反馈平移缓存器。
17.根据权利要求11所述的记忆装置的控制器,其特征在于,其中所述控制器还包括:
一错误更正码编码器,用于进行错误更正码编码,以产生编码数据作为所述数据,其中所述编码数据包括使用者数据、内部奇偶校验码、与外部奇偶校验码。
18.根据权利要求11所述的记忆装置的控制器,其特征在于,其中所述随机函数发生器包括所述至少一线性反馈平移缓存器,且所述控制器利用至少一密钥输入至所述随机函数发生器以改变所述至少一线性反馈平移缓存器的结构以设定所述随机函数产生方程式,所述控制器利用所述随机函数发生器中的所述至少一线性反馈平移缓存器依据一随机函数产生方程式产生所述虚拟乱码位序列。
19.根据权利要求18所述的记忆装置的控制器,其特征在于,其中所述随机函数发生器依据其中的所述至少一线性反馈平移缓存器产生的多个随机函数产生方程式对一页数据进行处理以产生所述虚拟乱码位序列。
CN200910179749.6A 2009-09-25 2009-09-25 数据型样管理的方法以及相关的记忆装置及其控制器 Active CN102034542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910179749.6A CN102034542B (zh) 2009-09-25 2009-09-25 数据型样管理的方法以及相关的记忆装置及其控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910179749.6A CN102034542B (zh) 2009-09-25 2009-09-25 数据型样管理的方法以及相关的记忆装置及其控制器

Publications (2)

Publication Number Publication Date
CN102034542A CN102034542A (zh) 2011-04-27
CN102034542B true CN102034542B (zh) 2014-12-03

Family

ID=43887309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910179749.6A Active CN102034542B (zh) 2009-09-25 2009-09-25 数据型样管理的方法以及相关的记忆装置及其控制器

Country Status (1)

Country Link
CN (1) CN102034542B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI533305B (zh) * 2014-02-10 2016-05-11 慧榮科技股份有限公司 將資料寫入至快閃記憶體的方法及相關的記憶裝置與快閃記憶體

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867409A (en) * 1995-03-09 1999-02-02 Kabushiki Kaisha Toshiba Linear feedback shift register

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734861B2 (en) * 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
US8127200B2 (en) * 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867409A (en) * 1995-03-09 1999-02-02 Kabushiki Kaisha Toshiba Linear feedback shift register

Also Published As

Publication number Publication date
CN102034542A (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
US10592157B2 (en) Merging data from single-level cell block to multiple-level cell block using scrambler with different seeds
TWI435328B (zh) 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器
US9058296B2 (en) Data processing method, memory storage device and memory control circuit unit
US20130246732A1 (en) Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US20140325118A1 (en) Data writing method, memory controller and memory storage apparatus
CN103425597A (zh) 数据储存装置和快闪存储器的区块管理方法
US9213631B2 (en) Data processing method, and memory controller and memory storage device using the same
CN106843771A (zh) 存储器重读方法、存储器控制电路单元及存储器存储装置
US8667348B2 (en) Data writing method for non-volatile memory module and memory controller and memory storage apparatus using the same
US20170010961A1 (en) Wear leveling method, memory storage device and memory control circuit unit
CN101794256A (zh) 非易失性存储器子系统及其存储器控制器
CN106683701B (zh) 存储器管理方法、存储器储存装置及存储器控制电路单元
CN104765569A (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
US20190073298A1 (en) Memory management method, memory control circuit unit and memory storage apparatus
US20190347037A1 (en) Data storage apparatus and system information programming method therefor
CN105938419B (zh) 数据储存装置及其数据维护方法
US10871909B2 (en) Block management method, memory control circuit unit and apparatus using mapping tables and block recognition machine learning with block parameters as training data
CN102034542B (zh) 数据型样管理的方法以及相关的记忆装置及其控制器
CN104573537B (zh) 数据处理方法、存储器存储装置与存储器控制电路单元
CN106354651B (zh) 平均磨损方法、存储器控制电路单元及存储器储存装置
CN104167220A (zh) 数据读取方法、控制电路、存储器模块与存储器存储装置
US20110154162A1 (en) Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same
US10586596B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN106325764A (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