于记忆装置中进行数据管理的方法、记忆装置及其控制器与流程

文档序号:14910978发布日期:2018-07-10 23:24阅读:164来源:国知局
本发明是涉及闪存(Flashmemory)的存取(access),尤其是涉及一种用来于记忆装置中进行数据管理的方法以及相关的记忆装置及其控制器。
背景技术
::近年来由于存储器的技术不断地发展,各种可携式记忆装置(例如:符合SD/MMC、CF、MS、或XD标准的记忆卡)被广泛地实施于诸多应用中。因此,这些可携式记忆装置中的存储器的访问控制遂成为相当热门的议题。以常用的NAND型闪存而言,其主要可区分为单阶细胞(singlelevelcell,SLC)与多阶细胞(multiplelevelcell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆细胞(memorycell)的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的储存能力则被充分利用,是采用较高的电压来驱动,以通过不同级别的电压在一个晶体管中记录至少两组位信息(诸如00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的可携式记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保可携式记忆装置对闪存的访问控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。依据现有技术,有了这些管理机制的记忆装置还是有不足之处。举例来说,多阶细胞闪存的错误率在某些情况下会上升至令人难以置信的地步,而传统的错误更正机制却不足以应付这些状况下的丛发错误(bursterror)。因此,需要一种同时具备错误更正机制与数据存取机制的新颖的存储器存取架构。技术实现要素:本发明的一目的在于公开一种用来于一记忆装置中进行数据管理的方法以及相关的记忆装置及其控制器,以解决上述问题。本发明的另一目的在于公开一种用来于一记忆装置中进行数据管理的方法以及相关的记忆装置及其控制器,以提升记忆装置的效能。本发明的较佳实施例公开一种用来于一记忆装置中进行数据管理的方法,其中所述记忆装置包括一非挥发性存储器,而所述非挥发性存储器包括至少一非挥发性存储器芯片。所述方法可包括:从所述记忆装置以外的一主装置(hostdevice)接收一组数据;依据一预定奇偶校验矩阵(parity-checkmatrix)的一第一子矩阵,对所述组数据进行编码,以产生部分奇偶校验码(partialparity-checkcode);依据一预定后处理矩阵,对所述部分奇偶校验码进行后处理,以产生所述组数据的奇偶校验码(parity-checkcode),其中所述预定后处理矩阵不等于所述预定奇偶校验矩阵的一第二子矩阵的转置矩阵(transposematrix)的任何反矩阵(inversematrix);以及将所述组数据的一码字(codeword)写入所述非挥发性存储器,以容许所述记忆装置于从所述非挥发性存储器读取所述组数据时进行错误更正,其中所述码字包括所述组数据与所述奇偶校验码。本发明于公开上述方法的同时,也对应地公开一种记忆装置,其包括有:一非挥发性存储器,用来储存信息,其中所述非挥发性存储器包括至少一非挥发性存储器芯片;以及一控制器,耦接至所述非挥发性存储器,用来于所述记忆装置中进行数据管理。所述控制器从所述记忆装置以外的一主装置接收一组数据。所述控制器依据一预定奇偶校验矩阵的一第一子矩阵对所述组数据进行编码,以产生部分奇偶校验码。另外,所述控制器依据一预定后处理矩阵对所述部分奇偶校验码进行后处理,以产生所述组数据的奇偶校验码,其中所述预定后处理矩阵不等于所述预定奇偶校验矩阵的一第二子矩阵的转置矩阵的任何反矩阵。此外,所述控制器将所述组数据的一码字写入所述非挥发性存储器,以容许所述记忆装置于从所述非挥发性存储器读取所述组数据时进行错误更正,其中所述码字包括所述组数据与所述奇偶校验码。本发明于公开上述方法的同时,也对应地公开一种记忆装置的控制器,其中所述记忆装置包括所述控制器与一非挥发性存储器,而所述非挥发性存储器包括至少一非挥发性存储器芯片,所述控制器包括有:一处理电路,用来控制所述控制器从所述记忆装置以外的一主装置接收一组数据;以及一数据保护电路,耦接至所述处理电路,用来进行错误更正。所述数据保护电路依据一预定奇偶校验矩阵的一第一子矩阵对所述组数据进行编码,以产生部分奇偶校验码。另外,所述数据保护电路依据一预定后处理矩阵对所述部分奇偶校验码进行后处理,以产生所述组数据的奇偶校验码,其中所述预定后处理矩阵不等于所述预定奇偶校验矩阵的一第二子矩阵的转置矩阵的任何反矩阵。此外,所述处理电路控制所述控制器将所述组数据的一码字写入所述非挥发性存储器,以容许所述记忆装置于从所述非挥发性存储器读取所述组数据时进行错误更正,其中所述码字包括所述组数据与所述奇偶校验码。本发明的好处之一是,通过适当地进行数据管理,本发明能针对所述控制器所存取的数据来进行妥善的存储器存取管理,以减少错误的发生。另外,依据相关实施例来实施并不会增加许多额外的成本,甚至比现有技术更能节省成本。因此,现有技术的问题可被解决,且整体成本不会增加太多。附图说明图1为依据本发明一第一实施例的一种记忆装置与一主装置(hostdevice)的示意图。图2A绘示一闪存芯片(Flashchip)的一区块当中的一局部页地址链结表(localpageaddresslinkingtable)。图2B比较图2A所示的局部页地址链结表的一维数组示例与二维数组示例。图3为依据本发明一实施例的一种用来于一记忆装置中进行数据管理的方法的流程图。图4绘示一实施例中的相关矩阵的大小。图5为依据本发明一实施例的一编码电路。其中,附图标记说明如下:100记忆装置110存储器控制器112微处理器112C程序代码112M只读存储器114控制逻辑电路114DP数据保护电路116缓冲存储器118传输接口电路120闪存200主装置300用来于记忆装置中进行数据管理的方法310从主装置接收数据的步骤320进行编码以产生部分奇偶校验码的步骤330进行后处理以产生奇偶校验码的步骤340将码字写入非挥发性存储器的步骤500编码电路510第一子矩阵产生器512乘法电路520后处理电路c码字G预定编码转换矩阵H预定奇偶校验矩阵m一组数据p奇偶校验码ppc部分奇偶校验码(c)1xn,(m)1xk,(p)1x(n-k)一维矩阵(G)kxn,(H)(n-k)xn二维矩阵具体实施方式I.存储器系统请参考图1,图1为依据本发明一第一实施例的一种记忆装置100与一主装置(hostdevice)200的示意图。例如:记忆装置100可为一可携式记忆装置(例如:符合SD/MMC、CF、MS、或XD标准的记忆卡)或固态硬盘(solidstatedrive,SSD)。另外,主装置200的例子可包括(但不限于):多功能移动电话(multifunctionalmobilephone)、平板计算机(tablet)、可穿戴装置(wearabledevice)、以及个人计算机(personalcomputer)诸如桌面计算机与膝上型计算机。依据本实施例,记忆装置100可包括一控制器以及一非挥发性存储器,其中所述非挥发性存储器是用来储存信息,所述控制器是用来存取(access)所述非挥发性存储器,且所述非挥发性存储器可包括至少一非挥发性存储器芯片(诸如一或多个非挥发性存储器芯片)。例如:所述控制器与所述非挥发性存储器可分别为一存储器控制器110与一闪存(Flashmemory)120,闪存120可包括至少一闪存芯片(诸如一或多个闪存芯片),且存储器控制器110可用来存取闪存120。如图1所示,存储器控制器110可包括一处理电路诸如一微处理器112、一储存器诸如一只读存储器(readonlymemory,ROM)112M、一控制逻辑电路114、一缓冲存储器116、与一传输接口电路118,其中这些组件可通过一总线彼此耦接。缓冲存储器116是以一随机存取存储器(randomaccessmemory,RAM)来实施。另外,本实施例的只读存储器112M是用来储存一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存120的存取。请注意,程序代码112C也可储存在缓冲存储器116或任何形式的存储器内。此外,控制逻辑电路114中的一数据保护电路114DP可保护数据、及/或进行错误更正,而传输接口电路118可符合一特定通信标准(诸如串行高级技术附件(SerialAdvancedTechnologyAttachment,SATA)标准、或通用串行总线(UniversalSerialBus,USB)标准)且可依据所述特定通信标准进行通信。于本实施例中,主装置200可通过传送指令与对应的逻辑地址予存储器控制器110来存取记忆装置100。存储器控制器110接收所述指令与所述逻辑地址,并控制闪存120读取、写入(write/program)、或抹除(erase)闪存120当中具有实体地址的记忆单位(memoryunit),其中所述实体地址对应于所述逻辑地址。II.页地址链结表(pageaddresslinkingtable)图2A绘示一闪存芯片0的一区块当中的一局部(local)页地址链结表,其中闪存芯片0可作为上述至少一闪存芯片(诸如一或多个闪存芯片)的一例。如图2A所示,闪存芯片0包括多个区块0、1、2、…、与M。请注意,一区块是一抹除单位。换言之,当需要抹除数据时,微处理器112同时抹除储存于所述区块的全部数据。另外,一区块,诸如图2A所示的区块0,包括多个页。例如:闪存芯片0的区块0包括128页。在所述区块诸如区块0中,这些页被区分为两个分区,即用来储存数据的一数据分区以及用来储存一局部页地址链结表0的一表格分区。所述区块的数据分区内的诸页可称为所述区块的数据页,其中所述数据页中的任一者可包括一数据字节区(databyteregion)DBR与一备用字节区(sparebyteregion)SBR。依据本实施例,所述数据分区内的页数以及所述表格分区内的页数可依需要来订定。例如:页0、1、2、…、126可用来储存数据,且所述区块中剩下的页是用来储存局部页地址链结表0。依据某些实施例,所述数据分区可包括少于127页,且所述表格分区可包括两页或更多页。又例如:所述区块内的总页数、所述数据分区内的页数以及所述表格分区内的页数可分别予以变化。请注意,一页是一写入单位。换句话说,当需要写入数据时,微处理器112一次将相当于一页的数据写入一页。依据本实施例,图1所示的闪存120中的每一闪存芯片的多个区块中的每一区块可具有一局部页地址链结表。为了简明起见,只有闪存芯片0的区块0的局部页地址链结表0是绘示于图2A,是因为每一局部页地址链结表的功能与运作都彼此相似。于本实施例中,局部页地址链结表0被建立的时间点是当区块0中的全部数据页已被写入,也就是被完全写入(fullyprogrammed)的时候。然而,于区块0中的数据页被完全写入之前,微处理器112会暂时地在所述随机存取存储器中储存一暂时局部页地址链结表0;当区块0中一实体页地址与一逻辑页地址之间的任何链结关系改变时,微处理器112就更新暂时局部页地址链结表0。依据本实施例,所述暂时/非暂时局部页地址链结表(例如:所述暂时局部页地址链结表0或局部页地址链结表0)的一字段(项目)的排列顺位代表一实体页地址,而此字段中的内容代表一相关的逻辑页地址。例如:假设iP与jP分别为图2A所示的暂时/非暂时局部页地址链结表的示例表格位置(iP,jP)当中的列数与行数,并且iP=0、1、…等且jP=0、1、…等。在图2A所示的暂时/非暂时局部页地址链结表的这个二维数组示例中,对应于第(iP*4+jP)个字段的示例表格位置(iP,jP)代表一实体页地址PPN,其可描述如下:PPN=(PBN*DPC+iP*4+jP);其中参数PBN表示讨论中的实体区块的实体区块编号(例如:PBN=0、1、2、…等,分别对对应于区块0、1、2、…等),而参数DPC则表示每一区块的数据页数量(例如:于本实施例中可为127)。这只是为了说明的目的而已,并非对本发明的限制。为了便于理解,所述暂时/非暂时局部页地址链结表可绘示为单一行,如图2B右半部所示。给定iP仍为列数且iP=0、1、…等,则在图2B右半部所示的这个一维数组示例当中,针对区块PBN的暂时/非暂时局部页地址链结表而言,对应于第iP个字段的示例表格位置iP代表一实体页地址(PBN*DPC+iP)。也就是说,针对这个一维数组示例,上式可被重新改写如下:PPN=(PBN*DPC+iP)。例如:当主装置200传送一指令予微处理器112以在一逻辑页地址0x0002写入某些数据时,微处理器112可将这些数据与逻辑页地址0x0002分别写入闪存芯片0的区块0的页0的数据字节区DBR与备用字节区SBR,且将逻辑页地址0x0002写入所述暂时局部页地址链结表0的第一个字段,以藉此指出逻辑页地址0x0002链结/映像至闪存芯片0的区块0的页0,其实体页地址是0x0000。依此类推。当区块0中的全部数据页已被写入时,微处理器112可复制所述暂时局部页地址链结表0的最新版本,以建立局部页地址链结表0。请注意,逻辑页地址{0x0002,0x0001,0x0002,0x0005,0x0003,0x0007,0x0010,0x0008,…,0x0000,0x0009,0x0004}可作为所述逻辑地址的例子。依据某些实施例,所述逻辑地址可予以变化。依据某些实施例,一局部页地址链结表诸如局部页地址链结表0中的逻辑页地址的范围可大于一区块诸如区块0中的页数。依据某些实施例,微处理器112可依据分别对应于多个区块的多个局部页地址链结表,于所述随机存取存储器中建立一全局(global)页地址链结表,来记录/更新所述实体地址与所述逻辑地址之间的关系。III.错误更正存储器控制器110可于记忆装置100中进行数据管理,以在较少或没有副作用的状况下解决现有技术的问题。例如:存储器控制器110可提供一或多类型的错误更正机制予记忆装置100。依据某些实施例,存储器控制器110可采用低密度奇偶校验码(low-densityparity-check(LDPC)code)来保护数据、及/或进行错误更正。图3为依据本发明一实施例的一种用来于一记忆装置中进行数据管理的方法300的流程图,其中方法300可应用于记忆装置100,且可应用于所述控制器诸如存储器控制器110。于步骤310中,在所述处理电路诸如微处理器112的控制下,存储器控制器110可从记忆装置100以外的主装置200接收一组数据m。例如:主装置200可传送一写入指令予记忆装置100,以要求记忆装置100储存写入数据。依据所述写入指令,微处理器112可控制存储器控制器110从主装置200接收所述写入数据,其中所述写入数据包括至少一组数据(例如一或多组数据{m}),而上述至少一组数据包括所述组数据m。于步骤320中,存储器控制器110(例如数据保护电路114DP)可依据一预定奇偶校验矩阵(parity-checkmatrix)H的一第一子矩阵H1对所述组数据m进行编码,以产生部分奇偶校验码(partialparity-checkcode)ppc。例如:数据保护电路114DP可依据第一子矩阵H1对所述至少一组数据进行编码,以产生至少一个部分奇偶校验码(例如一或多个部分奇偶校验码{ppc}),其中上述至少一个部分奇偶校验码包括部分奇偶校验码ppc。于步骤330中,存储器控制器110(例如数据保护电路114DP)可依据一预定后处理矩阵J对部分奇偶校验码ppc进行后处理,以产生所述组数据m的奇偶校验码(parity-checkcode)p,其中预定后处理矩阵J不等于预定奇偶校验矩阵H的一第二子矩阵H2的转置矩阵(transposematrix)(H2)T的任何反矩阵(inversematrix)((H2)T)-1(若上述任何反矩阵((H2)T)-1存在)。例如:当反矩阵((H2)T)-1存在时,则预定后处理矩阵J不等于((H2)T)-1;或者,当反矩阵((H2)T)-1不存在时,则预定后处理矩阵J也不会是转置矩阵(H2)T的任何衍生物。例如:数据保护电路114DP可依据预定后处理矩阵J对所述至少一个部分奇偶校验码进行所述后处理,以产生所述至少一组数据的至少一个奇偶校验码(例如一或多个奇偶校验码{p}),其中上述至少一个奇偶校验码包括奇偶校验码p。于步骤340中,在所述处理电路诸如微处理器112的控制下,存储器控制器110可将所述组数据m的一码字(codeword)c写入所述非挥发性存储器(诸如闪存120),以容许记忆装置100于从所述非挥发性存储器读取所述组数据m时进行错误更正,其中码字c包括所述组数据m与奇偶校验码p。例如:微处理器112可控制存储器控制器110将所述写入数据的至少一码字(例如一或多个码字{c})写入所述非挥发性存储器,以容许记忆装置100于从所述非挥发性存储器读取所述写入数据时进行错误更正,其中上述至少一码字包括上述至少一组数据与上述至少一个奇偶校验码。依据某些实施例,码字c等于所述组数据与一预定编码转换矩阵G的相乘结果(multiplicationresult);也就是说,m·G=c。基于一种用来进行数据保护的一第一方法,所述控制器诸如存储器控制器110(例如数据保护电路114DP)可对所述组数据m与预定编码转换矩阵G进行一乘法运算(诸如m·G)以产生码字c,且可对所述组数据m与预定编码转换矩阵G的子矩阵D进行一乘法运算(诸如m·D)以产生所述奇偶校验码p。例如:G=[I|D],其中I是一对应的单位矩阵(identitymatrix)。依据某些实施例,基于一种用来进行数据保护的一第二方法,所述控制器诸如存储器控制器110(例如:数据保护电路114DP)可依据下列式子进行计算以产生奇偶校验码p:p=m·(H1)T((H2)T)-1。请注意,步骤320中的预定奇偶校验矩阵H并非预定编码转换矩阵G,且步骤330中的预定后处理矩阵J并非预定编码转换矩阵G。基于图3所示的方法300,数据保护电路114DP于产生部分奇偶校验码ppc的过程中采用了预定奇偶校验矩阵H的第一子矩阵H1(而非预定编码转换矩阵G),且于产生奇偶校验码p的过程中采用了预定后处理矩阵J(而非预定编码转换矩阵G)。于图3所示的实施例中,通过依据预定后处理矩阵J对部分奇偶校验码ppc进行所述后处理,而非通过对所述组数据m与预定编码转换矩阵G进行任一乘法运算,存储器控制器110(例如数据保护电路114DP)产生所述奇偶校验码p。于某些实施例中,预定编码转换矩阵G与预定奇偶校验矩阵H互为零空间(nullspace)。例如:所述组数据m可包括k个位且可记为一维矩阵(m)1xk,码字c可包括n个位且可记为一维矩阵(c)1xn,且奇偶校验码p可包括(n-k)个位且可记为一维矩阵(p)1x(n-k),其中k与n为正整数且n>k。另外,预定编码转换矩阵G可记为二维矩阵(G)kxn,且预定奇偶校验矩阵H可记为二维矩阵(H)(n-k)xn。此外,预定编码转换矩阵G的任一列(row)与预定奇偶校验矩阵H的任一列(row)的内积(innerproduct)等于零;为了简明起见,可记为G·HT=0。于某些实施例中,所述组数据m、码字c与奇偶校验码p可分别记为一维矩阵(m)1xk、一维矩阵(c)1xn与一维矩阵(p)1x(n-k),且预定奇偶校验矩阵H可记为二维矩阵(H)(n-k)xn。另外,码字c与预定奇偶校验矩阵H的任一列的内积等于零;为了简明起见,可记为c·HT=0。依据某些实施例,第二子矩阵H2可为一非满秩(non-fullrank)矩阵,其中第二子矩阵H2的转置矩阵(H2)T的反矩阵((H2)T)-1不存在。相较于所述第一方法与所述第二方法,图3所示的方法300可增进数据保护电路114DP的各种效能,诸如编码效能。图4绘示一实施例中的相关矩阵的大小。当符号“k”与“n”分别代表所述组数据m的位数与码字c的位数时,奇偶校验码p的位数等于码字c的位数n减掉所述组数据m的位数k所得的差值(n-k),且预定奇偶校验矩阵H的大小等于此差值(n-k)与码字c的位数n的乘积((n-k)*n)。另外,第一子矩阵H1的大小等于差值(n-k)与所述组数据m的位数k的乘积((n-k)*k),且第二子矩阵H2的大小等于差值(n-k)的平方值((n-k)*(n-k))。依据某些实施例,在所述处理电路诸如微处理器112的控制下,存储器控制器110可从所述非挥发性存储器(诸如闪存120)读取码字c,以产生码字c的读出数据。存储器控制器110(例如数据保护电路114DP)可依据预定奇偶校验矩阵H判断所述读出数据是否正确。例如:数据保护电路114DP可包括一只读存储器,以供储存预定奇偶校验矩阵H。又例如:预定奇偶校验矩阵H可储存于只读存储器112M或其它存储器。当判断所述读出数据为正确时,存储器控制器110(例如所述处理电路诸如微处理器112)可控制记忆装置100输出所述读出数据所载(carry)的所述组数据m;否则,数据保护电路114DP可依据所述读出数据进行错误更正,以重获(recover)所述组数据m。例如:因应来自主装置200的一读取指令,微处理器112可控制记忆装置100输出所述组数据m(诸如所述读出数据所载的所述组数据m、或通过错误更正所重获的所述组数据m)。图5为依据本发明一实施例的一编码电路500,其中编码电路500可设置于图1所示的数据保护电路114DP中。编码电路500可包括一第一子矩阵产生器(可简称为“H1产生器”)510、一乘法电路512与一后处理电路520。例如:第一子矩阵产生器510可包括一只读存储器,而此只读存储器储存有第一子矩阵H1。第一子矩阵产生器510可依照一预定顺序输出第一子矩阵H1的元素(element)至乘法电路512。另外,乘法电路512可接收所述组数据m与第一子矩阵H1,且可进行一乘法运算(诸如m·(H1)T)以产生部分奇偶校验码ppc。例如:ppc=m·(H1)T。此外,后处理电路520可依据预定后处理矩阵J对部分奇偶校验码ppc进行所述后处理以产生奇偶校验码p。例如:所述后处理可包括一乘法运算(诸如ppc·J)以及后续运算;为了简明起见,所述后处理可记为f(ppc·J),其中符号f()可代表所述后续运算。依据某些实施例,图5所示的架构可予以变化。依据某些实施例,图1所示的架构与图3所示的方法300可予以变化。例如:所述后处理可包括随机化(randomize)运作、类似容错式磁盘阵列(RedundantArrayofIndependentDisks,RAID)的数据保护运作与任何线性转换,其中后处理电路520可包括相关子电路诸如随机化电路(randomizercircuit)…等。另外,解碼所需的架构也可对应地变化。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1