一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Flash的快速检测装置及方法

2022-06-02 16:44:03 来源:中国专利 TAG:

一种flash的快速检测装置及方法
技术领域
1.本发明属于存储技术领域,更具体地,涉及一种flash的快速检测装置及方法。


背景技术:

2.随着集成电路技术的发展,flash存储模块作为一种长寿命的非易失性存储模块,具有体积小,容量大速度快得特点,flash存储模块在存储模块设备占据的份额在逐年增加。
3.随着工艺的不断进步,flash存储模块的密度和复杂程度也在不断提高,从而使得flash存储模块存在缺陷的可能也越来越大,出厂时的检测可以纠正明显的缺陷,而部分隐藏的缺陷会在频繁的擦写中出现,从而导致存储的数据出现问题。虽然多层flash具有存储容量和价格的高性价比,但是其可靠性在不断降低,主要体现在重复使用后错误率升高,寿命降低等方面。如果不进行检测,很快错误率会达到纠错上限,从而影响存储模块的正常工作,使得存储模块的性能下降。现行的检测技术大多是全面检测,这种方式在出厂后会占用大量存储模块的资源,检测效率不高。


技术实现要素:

4.针对现有技术的以上缺陷或改进需求,本发明提供了一种flash的快速检测装置及方法,其目的在于提高检测效率。
5.为实现上述目的,按照本发明的一个方面,提供了一种flash的快速检测装置,包括:
6.纠错模块,用于在数据读写期间识别传输信息的错误位置信息;
7.计时模块,用于计时并根据设定的周期间隔发出时间使能信号;
8.统计模块,用于根据纠错模块反馈的错误位置信息统计各区域的错误计数,并当时间使能信号和表示flash数据读取停止的空闲使能信号同时存在时,比较各区域的计数,并以具有最大计数的区域作为目标区域发送给错误检测模块后将时间使能信号消除以及将各区域的计数清零;
9.错误检测模块,用于当出现空闲使能信号时将目标区域的数据进行备份以及备份后对目标区域进行检测,当即将执行flash数据读取操作时,暂停检测且保留备份数据、保存检测进度并在下次出现空闲使能信号时继续对上一未检测完毕的目标区域检测,直至当前目标区域检测结束后获取新的目标区域进行检测。
10.在其中一个实施例中,所述统计模块包括地址计算模块、错误计数寄存模块和最大值检测模块,其中,
11.所述地址计算模块用于根据错误位置信息err_info计算错误发生的地址,并通过addr_num信息将地址传输给错误计数寄存模块;
12.所述错误计数寄存模块用于接收addr_num信息且每次接收到addr_num信息后,增加相应地址区域的计数;
13.最大值检测模块用于获取时间使能信号和空闲使能信号,并当时间使能信号和空闲使能信号同时存在时,比较各区域的错误计数,并以具有最大计数的区域作为目标区域发送给错误检测模块、同时将时间使能信号消除以及将所述错误计数寄存器中各区域的计数清零。
14.在其中一个实施例中,所述错误检测模块在当前目标区域检测完毕后向所述最大值检测模块返回dect_end信号,所述最大值检测模块发送上一目标区域后,判断是否接收到dect_end信号,若接收到,则选定下一目标区域并继续发送,若未接收到,则不进行工作。
15.在其中一个实施例中,所述纠错模块包括bch译码器,所述bch译码器包括校正子计算模块、错误多项式计算模块和钱搜索模块,其中,
16.所述校正子计算模块识别数据传输的错误并当出现错误时发出err_en使能信号;
17.所述钱搜索模块依次计算出错误位置并每当得到一个错误位置时发出一个相应的err_info信息,每个err_info信息包括对应错误发生的位置;
18.所述统计模块在接收到err_en使能信号后启动统计并根据err_info信息对相应区域的错误计数进行累加。
19.在其中一个实施例中,进入纠错模块的信息格式包括数据码、校验码、错误标识位和错误信息,信息格式中的错误信息与数据码长度相同;纠错模块用于当识别到数据读取存在错误时,在错误标识位生成错误标志,且使错误信息中对应位置的电平发生翻转;纠错模块还用于在纠错后截取校验码、错误标识和错误信息,当出现错误标识时发出err_en使能信号,并通过err_info信息将截取的错误信息发送给统计模块;
20.所述统计模块在接收到err_en使能信号后启动统计并根据err_info信息对相应区域的错误计数进行累加。
21.在其中一个实施例中,进入纠错模块错误信息为全0字符,错误信息中各字符的位置与数据码中对应字符的位置相同,当纠错模块所截取的错误信息中存在字符1,表示数据码在当前位置存在错误。
22.在其中一个实施例中,所述错误检测模块包括备份区,所述备份区包括备份数据区、具有外置接口的区块信息区和具有外置结构的检测进度区其中,
23.所述错误检测模块用于将接收到的目标区域的地址、对目标区域所检测到的错误计数据信息保存于所述区块信息区中,所述区块信息区通过对应的外置接口传输错误计数据信息;
24.所述检测进度区用于保存检测算法,所述检测进度区的外置接口用于修改内部的检测算法,所述错误检测模块用于将目标区域的数据备份至所述备份数据区后调取所述检测进度区的检测算法对所述目标区域进行检测,并在检测中断时在检测进度区内保存检测进度以在下次检测时根据所述检测进度恢复检测。
25.在其中一个实施例中,所述计时模块包括页区计时子模块和扇区计时子模块,所述时间使能信号包括页区使能信号和扇区使能信号,所述页区计时子模块用于根据页区周期间隔发出页区使能信号,所述扇区计时子模块用于根据扇区周期间隔发出扇区使能信号,其中,扇区周期间隔大于页区周期间隔;
26.当仅出现页区使能信号时,扇区持续进行计数,以具有最大错误计数的页区作为目标区域并清零页区的计数以及消除页区使能信号;
27.当出现扇区使能信号时,以具有最大错误计数的扇区作为目标区域并同时清零扇区和页区的计数以及消除页区使能信号和扇区使能信号。
28.按照本发明的另一方面,提供了一种flash的快速检测方法,包括:
29.设定周期间隔,计时并根据设定的周期间隔发出时间使能信号;
30.在计时期间获取数据读写时传输信息的错误位置信息;
31.根据所述错误位置信息统计各区域的错误计数,并当时间使能信号和表示flash数据读取停止的空闲使能信号同时存在时,比较各区域的计数,并以具有最大计数的区域作为目标区域后将时间使能信号消除以及将各区域的计数清零;
32.当出现空闲使能信号时将目标区域的数据进行备份以及备份后对目标区域进行检测,当即将执行flash数据读取操作时,暂停检测且保留备份数据、保存检测进度并在下次出现空闲使能信号时继续对上一未检测完毕的目标区域检测,直至当前目标区域检测结束后获取新的目标区域进行检测。
33.在其中一个实施例中,
34.设定周期间隔,计时并根据设定的周期间隔发出时间使能信号,包括:
35.设定页区周期间隔和扇区周期间隔,对页区和扇区分别计时,一旦达到页区周期间隔时发出页区使能信号,一旦达到扇区周期间隔时发出扇区使能信号;
36.当时间使能信号和表示flash数据读取停止的空闲使能信号同时存在时,比较各区域的计数,并以具有最大计数的区域作为目标区域后将时间使能信号消除以及将各区域的计数清零,包括:
37.当仅出现页区使能信号时,扇区持续进行计数,以具有最大错误计数的页区作为目标区域并清零页区的计数以及消除页区使能信号;
38.当出现扇区使能信号时,以具有最大错误计数的扇区作为目标区域并同时清零扇区和页区的计数以及消除页区使能信号和扇区使能信号。
39.总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
40.本技术利用flash内部自带的纠错模块识别读取数据中发生错误的位置信息,以对各区域的错误进行累计,通过预设周期间隔,在flash运行期间进行计时并按照该周期间隔发出时间使能信号,当接收到时间使能信号时,说明当前周期已经结束,即将进入下一周期,此时,一旦获取到flash停止读取的空闲信号时,则比较各区域的错误计数并以具有最大错误计数的区域作为目标区域进行局部检测,利用局部检测代替传统的全面检测以提高检测效率。
41.本技术可以通过设定周期间隔调节错误检测的频率,周期间隔越长,错误检测的频率越低,周期间隔越短,错误检测的频率越高。由此可以根据flash的性能和状态调节检测频率,若是flash的数据读取错误率较大,则可以增大检测频率以及时发现问题,若是flash的数据读取错误率较小,则可以减小检测频率以降低损耗。同时,本技术中,在确定当前目标区域后及时消除时间使能信号并清零错误计数,可以开始下一周期的统计,确定新的目标区域并进行检测,保证检测周期的持续进行。
42.本技术在检测过程期间,若是flash需执行数据读取而中断正在执行的错误检测过程,则保留备份且保存检测进度,当下一个空闲时根据检测进行恢复检测,避免对已检测
的部分重复检测,进一步提高检测效率。
附图说明
43.图1是本技术一实施例中的flash的快速检测装置的结构框图;
44.图2是本技术一实施例中的flash的快速检测装置的具体结构图;
45.图3是本技术一实施例中的触发比较操作的时序图;
46.图4是本技术一实施例中的flash数据读取的信息格式;
47.图5是本技术一实施例中的通过错误信息标记错误位置的示意图;
48.图6是本技术一实施例中的以设定信息格式的方式进行检测的流程图;
49.图7是本技术一实施例中的备份区的结构图;
50.图8是本技术一实施例中的flash的快速检测方法的步骤流程图。
具体实施方式
51.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
52.如图1所示,flash的快速检测装置包括纠错模块、计时模块、统计模块和错误检测模块。
53.其中,纠错模块为flash内部自带的模块,在对flash进行数据读取时,通过纠错模块识别并纠正数据读取期间传输信息的错误。当flash停止数据读取时,主控制器会发出空闲使能信号free_en。在本技术中,错误模块在工作期间将识别到的错误位置信息err_info传送给统计模块。
54.其中,计时模块用于计时,并当达到设定的周期间隔时向统计模块发送时间使能信号time,根据需要设定周期间隔为δt,每隔δt发送一次时间使能信号time。具体的,计时模块可以通过程序控制,也可以利用内置时钟电路完成。
55.其中,统计模块具有累加和比较两个功能,累加就是根据错误位置信息err_info统计各区域的错误计数,当持续接收到多个错误位置信息err_info时,对相应区域的计数进行累加。当统计模块接收到时间使能信号和空间信号时,启动比较操作,即,当时间使能信号和表示flash数据读取停止的空闲使能信号同时存在时,比较各区域的计数,并以具有最大计数的区域作为目标区域发送给错误检测模块。随后将时间使能信号消除以及将各区域的计数清零,由此可以执行下一周期的计数和目标区域的定位。
56.其中,当错误检测模块获取到新的目标区域地址后,在flash数据读取空闲阶段启动错误检测工作。具体的,当出现空闲使能信号free_en时,将目标区域的数据进行备份以及备份后对目标区域进行检测;当即将执行flash数据读取操作时,暂停检测且保留备份数据、保存检测进度,并在下次出现空闲使能信号时继续对上一未检测完毕的目标区域检测,直至当前目标区域检测结束后获取新的目标区域进行检测。
57.本技术利用flash内部自带的纠错模块识别读取数据中发生错误的位置信息,以对各区域的错误进行累计。通过预设周期间隔,在flash运行期间进行计时并按照该周期间
隔发出时间使能信号,当接收到时间使能信号时,说明当前周期已经结束,即将进入下一周期。此时,一旦获取到flash停止读取的空闲信号时,则比较各区域的错误计数并以具有最大错误计数的区域作为目标区域进行局部检测,利用局部检测代替传统的全面检测以提高检测效率。本技术可以通过设定周期间隔调节错误检测的频率,周期间隔越长,错误检测的频率越低,周期间隔越短,错误检测的频率越高。由此可以根据flash的性能和状态调节检测频率。若是flash的数据读取错误率较大,则可以增大检测频率以及时发现问题,若是flash的数据读取错误率较小,则可以减小检测频率以降低损耗。同时,本技术中,在确定当前目标区域后及时消除时间使能信号并清零错误计数,可以开始下一周期的统计,确定新的目标区域并进行检测,保证检测周期的持续进行。本技术在检测过程期间,若是flash需执行数据读取而中断正在执行的错误检测过程,则保留备份且保存检测进度,当下一个空闲时根据检测进行恢复检测,避免对已检测的部分重复检测,进一步提高检测效率。
58.在一具体的实施例中,主控制器停止对flash进行数据读取时,持续发出空闲使能信号free_en,而当即将恢复对flash的数据读取操作时,则撤销空闲使能信号free_en,因此,可以根据是否存在空闲使能信号free_en判断当前是否处于读取空闲状态。在一具体的实施例中,当达到计时周期间隔后,发出的时间使能信号time为脉冲信号,该时间使能信号time存储于统计模块内,当确定目标区域后消除时间使能信号time,则是将存储的时间使能信号time清除。
59.在一实施例中,如图2所示,统计模块包括地址计算模块、错误计数寄存模块和最大值检测模块,其中,纠错模块可以为flash自带的模块,而地址计算模块、错误计数寄存模块、最大值检测模块和错误检测模块可为外部拓展的快速检测模块。
60.其中,地址错误模块在接收到纠错模块反馈的错误位置信息err_info后,计算错误发生的地址,并通过addr_num信息将地址传输给错误计数寄存模块。需要说明的是,纠错模块所获取的传输数据中的错误位置,是在该串数据中的位置,在flash当中的数据读写是按页操作,地址计算模块会根据错误发生的位置以及读取发生的初始地址进行计算,从而确定发生错误的页区地址信息以及相应的扇区地址信息,随后把地址信息addr_num传输给错误数寄存模块。
61.所述错误计数寄存模块用于接收addr_num信息且每次接收到addr_num信息后,增加相应地址区域的计数。
62.最大值检测模块用于执行比较操作,其启动工作的条件包括既接收到空闲使能信号free_en,又接收到时间使能信号time,两种信号同时存在时,才扫描错误数寄存模块中每一个区域地址addr_all对应的错误计数并进行比较,记录下最大错误计数对应的地址作为目标区域。
63.其中,如图3所示,启动比较操作的情况有多种:
64.第一种,例如图3的检测计数段1,第一个周期间隔结束后发送时间使能信号time,随后间隔一段时间后才收到空闲使能信号free_en,此时启动比较操作。此时,虽然实际的检测计数段相较预设的周期间隔存在一定的偏差余量,但这个时间的偏差一般较小,其影响可以忽略。
65.第二种,例如图3的检测计数段2,第二个周期间隔结束后发送时间使能信号time,此时已经处于空闲状态,因此在出现时间使能信号time时即可启动比较操作。
66.第三种,当时间使能信号time和空闲使能信号free_en同时出现时,即可启动比较操作。
67.在特殊情况下,如果多个区的错误数计数同时最大则将先扫描的区作为目标区域。确定目标区域后将其地址发送给错误检测模块,随后消除时间使能信号time并对错误计数进行清零,重新开启下一周期的统计与搜索。
68.在一实施例中,如图2所示,最大值模块扫描结束后,会给错误检测模块一个dect_en信号,随即发送目标区的地址err_addr给错误检测模块,错误检测模块在结束全部检测任务之后,会把备份数据恢复至原区空间,然后发送一个dect_end信号给最大值检测模块表示检测任务已经结束。所述最大值检测模块发送上一目标区域后,判断是否接收到dect_end信号,若接收到,则选定下一目标区域并继续发送,若未接收到,则不进行工作。
69.在一实施例中,如图2所示,计时模块包括页区计时子模块和扇区计时子模块,所述时间使能信号包括页区使能信号t1和扇区使能信号t2,所述页区计时子模块用于根据页区周期间隔发出页区使能信号t1,所述扇区计时子模块用于根据扇区周期间隔发出扇区使能信号t2,其中,扇区周期间隔大于页区周期间隔,一个扇区周期间隔内存在多个页区周期间隔。在空闲使能信号出现时:
70.当仅存在页区使能信号t1时,扇区持续进行计数,以具有最大错误计数的页区作为目标区域并清零页区的计数以及消除页区使能信号;
71.当仅存在扇区使能信号t2、或同时存在扇区使能信号t2和页区使能信号t1时,以具有最大错误计数的扇区作为目标区域并同时清零扇区和页区的计数以及消除页区使能信号和扇区使能信号,即扇区检测的优先级更高。
72.在一实施例中,纠错模块包括bch译码模块和错误信息纠错子模块,bch译码模块包括校正子计算模块、错误多项式计算模块和钱搜索模块。其中,当校正子计算模块启动的时候,只要传输的数据中有错误,校正子计算结束的时候就会给错误数寄存模块一个err_en使能信号,从而启动错误数寄存模块对错误数进行记录。之后钱搜索模块会依次计算出错误位置,每得到一个错误位置,都会发送一个err_info信息给地址计算模块,err_info包括错误发生在一串数据的位置。地址计算模块会根据错误发生的位置以及读取发生的初始地址进行计算,从而确定发生错误的页区地址信息以及相应的扇区地址信息,随后把地址信息addr_num传输给错误数寄存模块。错误数寄存模块接收到目标区的地址信息,然后在相应的扇区和页区寄存模块上增加计数。
73.常见的信息包括有数据码和校验码,在一实施例中,如图4所示,信息传输方向沿着箭头方向,在原信息的基础上增加错误标志位和错误信息,这里的错误信息的初始值是一段预先设定的信息值。在对外的传输时,flash发送出去的只有数据码,其他信息(校验码,错误标志,错误信息)都会在内部进行截取。
74.在纠错过程中,如图5所示,设定错误信息为全0且与原信息等长,纠错发生时(即对应位置发生电平翻转0-》1),从而得到错误信息。地址模块只需要知道首地址以及扫描错误信息中1的位置即可解析出错误发生的区地址,只要错误信息内容中有一个1,即说明有错误发生,则设置错误标志位。
75.具体的流程如图6所示,在系统启动之后,从flash中读取数据时,纠错后的数据按照上述数据格式进行传输,检测模块会等待一个错误标志的出现,如果没有检测到,则不进
行任何操作,如果出现错误标志,则会发出一个err_en使能信号给错误寄存器。
76.接收到err_en信号后,后续的错误位置信息err_info会发送给地址计算模块。如果传输未结束,则读取数据,检测错误标志的循环过程。
77.在一实施例中,如图7所示,错误检测模块包括备份区,所述备份区包括区块信息区,检测进度区,备份数据区。其中,区块信息区和检测进度区留有外置接口。区块信息区的外置接口主要传输检测出的错误数据信息,包括错误地址和错误类型。检测进度区的外置接口用于对内置算法数据的修改。
78.首先,错误检测模块会优先把目标区域的地址信息放入备份区中的区块信息区,然后把目标区域中的数据备份至备份数据区,随后会对目标区域进行检测。
79.错误检测模块会根据检测的算法分成多个不同的检测,并在每个检测结束,在检测进度区保存检测进度,同时一部分算法检测所需要的数据也存入在该区域,实际检测中从该区域中读取检测中所需的数据。
80.错误检测模块每次检测出错误,把错误地址以及错误类型打包成错误数据信息包,写入区块信息区。
81.在错误检测模块工作时如果空闲使能信号free_en信号结束,说明flash存储器要恢复工作状态了。此时错误检测模块会停止工作,并把备份数据区中的数据恢复至原区,备份区保存的数据继续保留,直至下一次free_en信号的来临,此时会直接恢复检测的状态,然后根据检测进度区内进度数据,恢复保存的进度情况,然后继续进行检测。待该区检测全部结束,区块信息区内会存放所有的错误数据信息。
82.错误检测模块在结束全部检测任务之后,会把备份数据恢复至原区空间,然后发送一个dect_end信号给最大值检测模块表示检测任务已经结束。最大值检测模块接收到dect_end信号后,将会开启新的一轮进程。
83.相应的,本技术还涉及一种flash的快速检测方法,如图8所示,该快速检测方法包括:
84.计时:设定周期间隔,计时并根据设定的周期间隔发出时间使能信号;
85.信息获取:在计时期间获取数据读写时传输信息的错误位置信息;
86.目标定位:根据所述错误位置信息统计各区域的错误计数,并当时间使能信号和表示flash数据读取停止的空闲使能信号同时存在时,比较各区域的计数,并以具有最大计数的区域作为目标区域后将时间使能信号消除以及将各区域的计数清零。
87.错误检测:当出现空闲使能信号时将目标区域的数据进行备份以及备份后对目标区域进行检测,当即将执行flash数据读取操作时,暂停检测且保留备份数据、保存检测进度并在下次出现空闲使能信号时继续对上一未检测完毕的目标区域检测,直至当前目标区域检测结束后获取新的目标区域进行检测。
88.具体的,在计时步骤中,可以分别设定页区周期间隔和扇区周期间隔,对页区和扇区分别计时,一旦达到页区周期间隔时发出页区使能信号t1,一旦达到扇区周期间隔时发出扇区使能信号t2。对应的,在目标定位步骤中,当仅出现页区使能信号t1时,扇区持续进行计数,以具有最大错误计数的页区作为目标区域并清零页区的计数以及消除页区使能信号t1;当出现扇区使能信号t2时,以具有最大错误计数的扇区作为目标区域并同时清零扇区和页区的计数以及消除页区使能信号t1和扇区使能信号t2。
89.该flash的快速检测方法与上文flash的快速检测装置对应,其中的细节可参考上文介绍,在此不再赘述。
90.本技术利用flash内部自带的纠错模块识别读取数据中发生错误的位置信息,以对各区域的错误进行累计。通过预设周期间隔,在flash运行期间进行计时并按照该周期间隔发出时间使能信号,当接收到时间使能信号时,说明当前周期已经结束,即将进入下一周期。此时,一旦获取到flash停止读取的空闲信号时,则比较各区域的错误计数并以具有最大错误计数的区域作为目标区域进行局部检测,避免flash存储模块全面检测,通过有针对性的检测降低检测频率,提高了检测效率和控制器利用率,同时提升flash存储器的使用寿命。本技术可以通过设定周期间隔调节错误检测的频率,周期间隔越长,错误检测的频率越低,周期间隔越短,错误检测的频率越高。由此可以根据flash的性能和状态调节检测频率。若是flash的数据读取错误率较大,则可以增大检测频率以及时发现问题,若是flash的数据读取错误率较小,则可以减小检测频率以降低损耗。同时,本技术中,在确定当前目标区域后及时消除时间使能信号并清零错误计数,可以开始下一周期的统计,确定新的目标区域并进行检测,保证检测周期的持续进行。本技术在检测过程期间,若是flash需执行数据读取而中断正在执行的错误检测过程,则保留备份且保存检测进度,当下一个空闲时根据检测进行恢复检测,避免对已检测的部分重复检测,进一步提高检测效率。
91.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献