应用于闪存控制器的编码器自我测试电路及相关的方法与流程

文档序号:20497948发布日期:2020-04-21 22:32阅读:169来源:国知局
应用于闪存控制器的编码器自我测试电路及相关的方法与流程

本发明关于闪存控制器,尤指一种应用在闪存控制器中的编码器自我测试电路。



背景技术:

在闪存控制器中会设计至少一个编码器以对输入数据进行编码以产生相对应的校验码后,再连同输入数据一并写入到闪存芯片中。然而,考虑到编码器在功能上的正确性,在工厂内的测试阶段时,闪存控制器会与闪存芯片链接,之后闪存控制器会被控制以持续地将数据进行编码后写入至闪存芯片中,再将数据从闪存芯片中读取出来并进行解码,以判断闪存控制器的编码及解码功能是否正常。然而,上述作法至少会遇到以下两种问题,第一个问题是当判断闪存控制器的编码及解码功能不正常时,与闪存控制器相连接的闪存芯片便浪费了,或是需要另外进行剥离(debonding)制程以使得闪存芯片可以重复使用;而第二个问题则是当判断闪存控制器的编码及解码功能不正常时,无法正确迅速地判断是编码器的问题还是解码器的问题,因而造成工程师的困扰。



技术实现要素:

因此,本发明的目的之一在于提供一种应用于闪存控制器的编码器自我测试电路,其可以在不需要闪存芯片的情形下,单独地对编码器进行测试,以解决現有技术中的问题。

在本发明的一个实施例中,公开一种应用于闪存控制器的编码器自我测试电路,其包括有一控制电路以及一编码器。在编码器自我测试电路的操作中,在不对任何闪存进行存取的情形下,所述控制电路产生一输入数据至所述编码器,所述编码器对所述输入数据进行编码以产生一校验码至所述控制电路,以供判断所述编码器的功能是否正常。

在本发明的另一个实施例中,公开了一种应用于闪存控制器的编码器自我测试方法,其包括有以下步骤:在不对任何闪存进行存取的情形下:产生一输入数据至一编码器;使用所述编码器对所述输入数据进行编码以产生一校验码;以及根据所述校验码以判断所述编码器的功能是否正常。

附图说明

图1为依据本发明一实施例的一闪存控制器的示意图。

图2为根据本发明一实施例的编码器与控制电路的示意图。

图3为根据本发明一实施例的应用于闪存控制器的编码器自我测试方法的流程图。

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

110闪存控制器

112微处理器

112c程序码

112m只读存储器

114控制逻辑

116缓冲存储器

118接口逻辑

120闪存模块

130主装置

132编码器

134控制电路

202、204接脚

210随机数据产生电路

220多任务器

230种子数据产生电路

240输出电路

300~308步骤

bist_en自我测试致能信号

bist_out判断结果

具体实施方式

图1为依据本发明一实施例的一闪存控制器110的示意图,其中闪存控制器110用以连接于一主装置130以及一闪存模块120之间,且闪存控制器110用来根据主装置130的读取/写入指令来存取闪存模块120。在本实施例中,闪存控制器110包括一微处理器112、一只读存储器(readonlymemory,rom)112m、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112m用来存储一程序码112c,而微处理器112则用来执行程序码112c以控制对闪存模块120的存取(access)。控制逻辑114包括了一编码器132以及一控制电路134,其中编码器132用来对写入到闪存模块120中的数据进行编码以产生对应的校验码(或称,错误更正码(errorcorrectioncode),ecc),而控制电路134则是用来对编码器132进行测试,特别是在闪存控制器110尚未与闪存模块120连结时对编码器132进行测试。

于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(block),而闪存控制器110对闪存模块120进行抹除数据运作以区块为单位来进行。另外,一区块可记录特定数量的数据页(page),其中闪存控制器110对闪存模块120进行写入数据的运作以数据页为单位来进行写入。在本实施例中,闪存模块120为一立体nand型闪存(3dnand-typeflash)模块。

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

在一实施例中,闪存控制器110可以是位于可携式记忆装置(例如:符合sd/mmc、cf、ms、xd标准的记忆卡)中,且主装置130为一可与可携式记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,闪存控制器110可以应用在固态硬盘或符合通用闪存存储(universalflashstorage,ufs)或嵌入式多媒体记忆卡(embeddedmultimediacard,emmc)规格的嵌入式存储装置,以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机的中,而此时主装置130可以是所述电子装置的一处理器。

图2为根据本发明一实施例的编码器132与控制电路134的示意图。如图2所示,控制电路134包括了一随机数据产生电路210、一多任务器220、一种子数据产生电路230以及一输出电路240。在本实施例中,控制电路134与编码器132作为一编码器自我测试电路,亦即通过控制电路134与编码器132的运作可以检测判断出编码器132的功能是否正常。此外,控制电路134与编码器132的自我测试操作在一晶圆级测试(waferleveltest)中的芯片针测(chipprobe,cp)阶段、或是在一封装后测试(packageleveltest)中的最后测试(finaltest,ft)阶段来进行,亦即编码器132的自我测试操作并不需要对闪存模块120进行任何的存取操作(此时闪存控制器110与闪存模块120也尚未连结)。

在图2所示的实施例的操作中,首先,在晶圆级测试中的芯片针测阶段或是在封装后测试中的最后测试阶段时,工程师会通过闪存控制器110的一接点(pad)或是一接脚(pin)202以自外部将一自我测试致能信号bist_en输入,以启动编码器132与控制电路134以进行自我测试操作。需注意的是,图2绘示了自我测试致能信号bist_en直接输入到编码器132与控制电路134,但本发明并不以此为限,在其他的实施例中闪存控制器110中可包括另一电路以接收自我测试致能信号bist_en后据以启动编码器132与控制电路134,这些设计上的变化均隶属于本发明的范畴。

接着,控制电路134会先产生第1笔输入数据至编码器132,以供编码器132进行编码操作以产生一对应的校验码。具体来说,多任务器220首先会切换至上方的通道以将一默认输入数据作为第1笔输入数据传送至编码器132中,而在本实施例中所述默认输入数据是一全为逻辑值“1”的数据(0xff),且大小为2千位组(kb),但此并非是本发明的限制。编码器132接着对所述默认输入数据进行编码,例如低密度奇偶检查码(low-densityparity-checkcode,ldpccode)的编码方式,以产生第1笔校验码,其中所述校验码的大小关连到编码器132的设计,例如可以是248位。接着,种子数据产生电路230对第1笔校验码进行循环冗余校验(cyclicredundancycheck,crc)操作、或是其他任意适合的哈希(hash)运算操作,以将第1笔校验码压缩为第1笔种子数据(例如,16位的种子数据),其中第1笔种子数据用来提供给随机数据产生电路210以产生大小为2千位组的第2笔输入数据。

上述多任务器220输出第1笔输入数据至编码器132、编码器132产生第1笔校验码至种子数据产生电路230、以及种子数据产生电路230产生第1笔种子数据至随机数据产生电路210的操作可以视为第1个循环操作(loop)。

接着在第2个循环操作中,多任务器220会切换至下方的信道以将随机数据产生电路210所产生的第2笔输入数据传送至编码器132中,编码器132接着对第2笔输入数据进行编码以产生第2笔校验码至种子数据产生电路230,种子数据产生电路230接着对将第2笔校验码压缩为第2笔种子数据,其中第2笔种子数据用来提供给随机数据产生电路210以产生大小为2千位组的第3笔输入数据。

在第3个循环操作中,多任务器220持续维持在下方的信道以将随机数据产生电路210所产生的第3笔输入数据传送至编码器132中,编码器132接着对第3笔输入数据进行编码以产生第3笔校验码至种子数据产生电路230,种子数据产生电路230接着对将第3笔校验码压缩为第3笔种子数据,其中第3笔种子数据用来提供给随机数据产生电路210以产生大小为2千位组的第4笔输入数据。

在经过一定数量的循环操作之后,例如n个循环操作之后,输出电路240会判断对种子数据产生电路230所产生的第n笔种子数据的正确性以决定编码器132的功能是否常,并将判断结果bist_out通过闪存控制器110的一接点或是一接脚204将判断结果bist_out输出至其他装置以供工程师参考。具体来说,由于工程师可以先通过仿真得知编码器132与控制电路134在进行n个循环操作之后所产生的第n笔种子数据的正确数值,而此正确数值可以被预先存储在控制电路134中或是由工程师另外输入,因此,输出电路240可以将n个循环操作之后种子数据产生电路230所产生的第n笔种子数据与此正确数值相比较,若是比较结果相符合则表示编码器132的功能正常,而若是比较结果不符则表示编码器132的功能异常。

在本发明的另一个实施例中,输出电路240可以直接将种子数据产生电路230所产生的第n笔种子数据通过接点或是接脚204传送至另一电子装置,以供工程师判断编码器132的功能是否正常。

在图2所示的实施例中,输出电路240用来将第n笔种子数据与此正确数值相比较以判断编码器132的功能是否正常,然而,在另一实施例中,输出电路240亦可以将编码器132所产生的第n笔校验码与一正确校验码将比较以判断编码器132的功能是否正常,这些设计上的变化均应隶属于本发明的范畴。

如上所述,通过上述的自我测试操作,可以快速有效地判断出编码器132的功能是否正常,且在自我测试的过程中不需要存取任何的闪存模块120,而可以独立地就闪存控制器110本身来进行测试,故可以避免現有技术中因为编码器132的功能异常而导致相链接的闪存模块120需要另外进行剥离制程的麻烦。此外,由于本实施例中的编码器自我测试不需要牵涉到解码操作(不需要使用到位于控制逻辑114中的解码器),因此可以避免現有技术中需要另外判断是编码器异常或是解码器异常的问题。

在完成自我测试操作之后,工程师停止将自我测试致能信号bist_en输入至闪存控制器110,以使得编码器132与控制电路134停止操作。

在以上的实施例中,编码器132及控制电路134在自我测试操作中所进行的循环操作次数(例如,前述的“n”)可以是任何适合的数值,然而,考虑到编码器132中有部分的电路可能会因为制程因素而需要较长时间的测试,因此编码器132及控制电路134需要较高的循环操作次数,例如n大于1000,甚至n可以是10万或是100万次,以使得编码器132中的瑕疵可以在多次循环操作中显现出来。另一方面,为了让编码器132及控制电路134可以进行较完整全面的测试,工程师可以设计这些循环操作中不会产生相同的种子数据,亦即第1笔种子数据到第n笔种子数据中不会有任何两笔相同的种子数据。

图3为根据本发明一实施例的应用于闪存控制器的编码器自我测试方法的流程图。同时参考以上图1、2的实施例所述,图3的流程如下。

步骤300:流程开始。

步骤302:通过闪存控制器的一接点/接脚接收一自我测试致能信号以开始进行自我测试操作。

步骤304:使用控制电路及编码器进行多个循环操作,其中每一个循环操作包括以下步骤304_1~304_3:

步骤304_1:随机数据产生电路产生第k笔输入数据;

步骤304_2:编码器对所述第k笔输入数据进行编码以产生第k笔校验码;

步骤304_3:种子数据产生电路根据第k笔校验码以产生第k笔种子数据至随机数据产生电路,之后回到步骤304_1以产生第(k+1)笔输入数据;

步骤306:判断第n笔种子数据是否正确,以决定编码器的功能是否正常。

步骤308:结束自我测试操作。

简要归纳本发明,在本发明的应用于闪存控制器的编码器自我测试电路,可以在不需要连结到闪存模块的情形下对闪存控制器中的编码器进行功能测试,以准确地判断出编码器的功能是否异常。通过本发明可以让闪存控制器单独地进行编码功能测试,以避免現有技术中需要让闪存控制器与闪存模块相连后才能进行测试,而造成当闪存控制器有异常时导致相连结的闪存模块需要另外进行剥离制程的麻烦。

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

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