闪存控制器及其中的编码电路与解码电路的制作方法

文档序号:20834982发布日期:2020-05-22 16:45阅读:285来源:国知局
闪存控制器及其中的编码电路与解码电路的制作方法

本发明是有关于闪存,尤指一种应用在闪存控制器中的编码电路与解码电路。



背景技术:

在目前的低密度奇偶检查码(low-densityparitycheckcode,ldpccode)编码器中,若是所采用的校验码检查矩阵为一非全秩校验码检查矩阵(non-fullrankparitycheckmatrix)时,其所产生的校验码会包括了多个不具有错误更正效果的多个位(通常被称为相依位(dependentbit)),因此造成了存储器空间上的浪费。



技术实现要素:

因此,本发明的目的之一在于提出一种编码电路,其可以利用原本相依位的地址来存储其他的辅助数据,以解决先前技术中所述的问题。

在本发明的一个实施例中,公开了一种应用在一闪存控制器中的编码电路,其包括有一辅助数据产生电路以及一编码器。在编码电路的操作中,辅助数据产生电路是用以接收多个数据组块以产生所述多个数据组块的一辅助数据,且所述编码器是根据一校验码检查矩阵来对所述多个数据组块进行编码以产生一校验码,并使用所述辅助数据来替换所述校验码中的一部分以产生一调整后校验码,其中所述多个数据组块以及所述调整后校验码是被写入至一闪存中。

在本发明的另一个实施例中,公开了一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一存储器、一微处理器以及一编码电路。所述存储器是用来存储一程序代码,且所述微处理器是用来执行所述程序代码以控制对所述闪存模块的存取,以及所述编码电路包括有一辅助数据产生电路以及一编码器。在编码电路的操作中,辅助数据产生电路是用以接收多个数据组块以产生所述多个数据组块的一辅助数据,且所述编码器是根据一校验码检查矩阵来对所述多个数据组块进行编码以产生一校验码,并使用所述辅助数据来替换所述校验码中的一部分以产生一调整后校验码,其中所述多个数据组块以及所述调整后校验码是被写入至一闪存中。

在本发明的另一个实施例中,公开了一种应用在一闪存控制器中的解码电路,其包括有一解码器以及一检查电路。在所述解码电路的操作中,所述解码器是用以对来自一闪存的一数据进行解码,以产生一解码后数据以及一解码后校验码;以及所述检查电路是用以自所述解码后校验码中取得一辅助数据,并根据所述辅助数据来判断所述解码后数据的完整性或正确性,以产生一检查结果;其中当所述检查结果指出所述解码后数据的完整性或正确性正常,则所述解码后数据是被传送给耦接于所述闪存控制器的一主装置。

在本发明的另一个实施例中,公开了一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一存储器、一微处理器以及一解码电路。所述存储器是用来存储一程序代码,且所述微处理器是用来执行所述程序代码以控制对所述闪存模块的存取,以及所述解码电路包括有一解码器以及一检查电路。在所述解码电路的操作中,所述解码器是用以对来自一闪存的一数据进行解码,以产生一解码后数据以及一解码后校验码;以及所述检查电路是用以自所述解码后校验码中取得一辅助数据,并根据所述辅助数据来判断所述解码后数据的完整性或正确性,以产生一检查结果;其中当所述检查结果指出所述解码后数据的完整性或正确性正常,则所述解码后数据是被传送给耦接于所述闪存控制器的一主装置。

附图说明

图1为依据本发明一实施例的一种记忆装置的示意图。

图2为校验码检查矩阵及校验码产生矩阵的示意图。

图3为根据本发明一实施例的编码电路的示意图。

图4绘示了写入至闪存模块中的数据组块、循环冗余校验码以及调整后校验码的示意图。

图5根据本发明一实施例的编码方法的流程图。

图6为根据本发明一实施例的解码电路的示意图。

图7根据本发明一实施例的解码方法的流程图。

其中,附图标记说明如下:

100记忆装置

110闪存控制器

112微处理器

112c程序代码

112m只读存储器

114控制逻辑

116缓冲存储器

118接口逻辑

120闪存模块

130主装置

132编码电路

134解码电路

310循环冗余校验编码器

320低密度奇偶检查码编码器

322局部校验码计算电路

324循环卷积计算电路

326补偿电路

330辅助数据产生电路

500~510、700~708步骤

610低密度奇偶检查码解码器

620检查电路

具体实施方式

图1为依据本发明一实施例的一种记忆装置100的示意图。记忆装置100包括有一闪存(flashmemory)模块120以及一闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包括一微处理器112、一只读存储器(readonlymemory,rom)112m、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112m是用来存储一程序代码112c,而微处理器112则用来执行程序代码112c以控制对闪存模块120的存取(access)。控制逻辑114包括了一编码电路132以及一解码电路134,其中编码电路132用来对写入到闪存模块120中的数据进行编码以产生对应的校验码(或称,错误更正码(errorcorrectioncode),ecc),而解码器134用来将从闪存模块120所读出的数据进行解码。

于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(block),而所述控制器(例如:通过微处理器112执行程序代码112c的闪存控制器110)对闪存模块120进行复制、抹除、合并数据等运作是以区块为单位来进行复制、抹除、合并数据。另外,一区块可记录特定数量的数据页(page),其中所述控制器(例如:通过微处理器112执行程序代码112c的存储器控制器110)对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。

实作上,通过微处理器112执行程序代码112c的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(hostdevice)130沟通。

在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合sd/mmc、cf、ms、xd标准的记忆卡),且主装置130为一可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机之中,而此时主装置130可以是所述电子装置的一处理器。

在本实施例中,编码电路132至少包括一低密度奇偶检查码(low-densityparitycheckcode,ldpccode)编码器,且可以根据来自主装置130的数据来产生对应的校验码,且所产生的校验码符合一校验码检查矩阵。具体来说,参考图2,假设所述校验码检查矩阵为一大小为c*t的矩阵(例如,c=5,t=48,或是其他任意适合的数值),而所述校验码检查矩阵可以分为左侧的矩阵m(大小为c*(t-c))以及右侧的矩阵k(大小为c*c),为了找出与所述校验码检查矩阵所对应的校验码产生矩阵,可以先找出矩阵k的反矩阵k-1(inversematrix),之后再将反矩阵(k-1)与矩阵m相乘以得到矩阵p,而矩阵p的转置矩阵(transposematrix)便可以作为校验码产生矩阵。换句话说,在找到矩阵p的转置矩阵之后,编码电路132可以将来自主装置130的数据乘以矩阵p的转置矩阵来得到对应于所述数据的校验码,而编码器之后再将数据与校验码一起乘上所述校验码检查矩阵以判断校验码是否正确。举例来说,若是相乘结果等于“0”则判断编码正确;而若是相乘结果不等于“0”则判断编码错误。在判断编码正确之后,数据与对应的校验码便会被写入至闪存模块120中的一个数据页中。

需注意的是上述所述校验码检查矩阵的每一个单元都在实作上为一区块,而所述区块可以是一个方阵(例如64*64的矩阵或是192*192的矩阵),也就是说,所述校验码检查矩阵包括了c*t个区块。

然而,当所述校验码检查矩阵为一非全秩校验码检查矩阵时,反矩阵k-1的秩(rank)会低于反矩阵k-1的行/列数,例如反矩阵k-1的秩可能是(c-x),其中x根据不同的校验码检查矩阵可以是不同的正整数,例如x=3、x=5…等等。然而,由于反矩阵k-1的秩(rank)会低于反矩阵k-1的行/列数,故编码电路132所产生的校验码会包括了一些相依位,也就是无法用来进行错误更正的位。本实施例的编码电路132是可利用原本相依位的地址来存储其他的辅助数据,以避免浪费存储器空间。

参考图3,其为根据本发明一实施例的编码电路132的示意图。如图3所示,编码电路132包括了一循环冗余校验(cyclicredundancycheck,crc)编码器310、一低密度奇偶检查码编码器320以及一辅助数据产生电路330,其中低密度奇偶检查码编码器320包括了一局部校验码计算电路322、一循环卷积(circulantconvolution)计算电路324以及一补偿电路326。在本实施例中,局部校验码计算电路322可以被比对为图2所示的矩阵m,且循环卷积计算电路324则是用来产生一个类似于图2所示的反矩阵k-1的内容,由于局部校验码计算电路322以及循环卷积计算电路324涉及许多复杂的电路架构与数学运算,其具体电路架构可参考相同发明人所提出的中国台湾地区专利申请案(申请号:106141115),再加上本发明的重点并不在于低密度奇偶检查码编码器320的电路设计,故局部校验码计算电路322以及循环卷积计算电路324的细节在此不予赘述。

在图3所示的编码电路132的操作中,首先,循环冗余校验编码器310对多个数据组块进行循环冗余校验编码,以产生一循环冗余校验码;接着,低密度奇偶检查码编码器320中的局部校验码计算电路322以及循环卷积计算电路324依序对所述多个数据组块以及所述循环冗余校验码进行编码计算以产生一校验码,其中所述校验码包括了至少一个相依位;同时,辅助数据产生电路330根据所述多个数据组块及/或所述循环冗余校验码以产生一辅助数据;接着,补偿电路326使用所述辅助数据来替换所述校验码的至少一个相依位以产生一调整后校验码;最后,编码电路132将所述数据组块、所述循环冗余校验码以及所述调整后校验码一并写入到闪存模块120中一区块的一个数据页中。

在一实施例中,辅助数据产生电路330所产生的所述辅助数据为所述多个数据组块的一识别信息(id)、哈希数据(hashdata)、服务质量(qualityofservice,qos)信息、时间戳、或是逻辑/实体地址(logicaladdress);在另一实施例中,循环冗余校验编码器310所产生的所述循环冗余校验码包括了一第一部分以及一第二部分,其中所述第一部分是接续在所述多个数据组块之后,而所述第二部分是作为所述辅助数据以取代所述校验码中的相依位;在另一实施例中,所述辅助数据也可以为所述多个数据组块中所有具有数值“1”(或是数值“0”)的位数量除以一参考值后所得的余数,但本发明并不以此为限。

图4绘示了写入至闪存模块120中的所述数据组块、所述循环冗余校验码以及所述调整后校验码的示意图。如图4所示,所述循环冗余校验码是接续在数据组块之后,所述调整后校验码接续在所述循环冗余校验码之后,斜线部分是原本校验码中相依位的地址,而辅助数据用来替换原本校验码中的相依位以产生所述调整后校验码。

在图3、4的实施例中,通过将校验码中没有更正效果的相依位替换为有实际效用的辅助数据,可以在有限的存储器空间内加入更多有用的信息,以避免存储器空间的浪费。

图5根据本发明一实施例的编码方法的流程图。参考图1~4及说明书所公开的相关内容,编码方法的流程如下所述。

步骤500:流程开始。

步骤502:对多个数据组块进行循环冗余校验编码,以产生一循环冗余校验码。

步骤504:对所述多个数据组块以及所述循环冗余校验码进行编码计算以产生一校验码。

步骤506:根据所述多个数据组块及/或所述循环冗余校验码以产生一辅助数据。

步骤508:使用所述辅助数据来替换所述校验码的至少一个相依位以产生一调整后校验码。

步骤510:将所述数据组块、所述循环冗余校验码以及所述调整后校验码一并写入到闪存模块中一区块的一个数据页中。

图6所示为根据本发明一实施例的解码电路134的示意图。如图6所示,解码电路134包括了一低密度奇偶检查码解码器610以及一检查电路620。在解码电路134的操作中,首先,因应来自主装置130的一读取请求,低密度奇偶检查码解码器610自闪存模块120中一区块的一数据页读取一数据,并对所述数据进行解码以产生一解码后数据以及一解码后校验码,其中所述解码后数据可以是第4所示的数据组块以及循环冗余校验码,而所述解码后校验码可以是图4的调整后校验码。接着,检查电路620自所述解码后校验码中取得辅助数据(如图4所示的斜线部分,地址为编码电路132以及解码电路134的已知信息),并利用辅助数据来判断所述解码后数据的完整性/正确性以产生一检查结果。在一实施例中,当所述检查结果指出所述解码后数据的完整性或正确性正常,则微处理器112会将所述解码后数据传送给主装置130。

在一实施例中,检查电路620可以是一循环冗余校验解码器,其中,检查电路620自所述解码后数据取得一第一部分循环冗余校验码,且检查电路620自所述解码后校验码中取得一第二部分循环冗余校验码(也就是辅助数据),以及检查电路620使用所述第一部分循环冗余校验码以及所述第二部分循环冗余校验码来判断所述解码后数据的完整性或正确性,以产生所述检查结果。如上所述,由于所述解码后校验码中也包括了循环冗余校验码的部分内容,因此在循环冗余校验码的位数较多的情形下,本实施例可以让完整性/正确性检查具有更高的准确性。

图7根据本发明一实施例的解码方法的流程图。参考图4、6及说明书所公开的相关内容,解码方法的流程如下所述。

步骤700:流程开始。

步骤702:自闪存模块中一区块的一数据页读取一数据。

步骤704:对所述数据进行解码以产生一解码后数据以及一解码后校验码。

步骤706:自所述解码后校验码取得一辅助数据。

步骤708:根据所述辅助数据来判断所述解码后数据的正确性/完整性。

简要归纳本发明,在本发明的闪存控制器及相关的编码电路与解码电路中,是将编码电路原本所产生的校验码中的相依位替换为具有实际功用的辅助数据,以充分利用存储器空间来避免浪费空间。另一方面,通过在校验码中加入辅助数据,可以在解码过程中的正确性/完整性检查具有更高的准确性。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1