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

存储芯片的坏块检测方法、检测装置及存储介质与流程

2022-12-13 19:51:52 来源:中国专利 TAG:


1.本技术涉及坏块检测技术领域,特别是涉及存储芯片的坏块检测方法、检测装置及存储介质。


背景技术:

2.受制造工艺限制,存储芯片在出厂时可能存在坏块,而数据块损坏会引起数据丢失和访问数据时的异常中止,给系统造成不良影响等。这时候就需要对存储芯片进行坏块检测,并对检测出的坏块进行标记。但是,目前市场上的坏块检测技术需要进行全盘的擦/写/读操作,时间较长。


技术实现要素:

3.本技术主要解决的技术问题是提供存储芯片的坏块检测方法、检测装置及存储介质,能够以边写边读的方式检测出存储芯片中的坏块,节约检测时间。
4.为了解决上述技术问题,本技术采用的一个技术方案是:提供一种存储芯片的坏块检测方法,该方法包括:对存储芯片的至少一个存储块执行擦操作、写操作和读操作,并确定所述至少一个存储块中的任一存储块是否为坏块,并响应于一存储块为坏块,标记所述坏块。
5.其中,所述至少一存储块中存储块的数量小于存储芯片中存储块的总数量。
6.其中,对存储芯片的至少一个存储块执行擦操作、写操作和读操作,包括:每次从存储芯片中未执行擦操作的存储块中选择至少部分存储块执行擦操作;从每次执行完擦操作的存储块中选择其中至少部分存储块执行写操作,并从执行完写操作的存储块中选择其中至少部分存储块执行读操作,直至存储芯片中的所有存储块执行完擦操作、写操作和读操作。
7.其中,不同次执行擦操作的存储块的数量相同,或者不同。
8.其中,从每次执行完擦操作的存储块中选择其中至少部分存储块执行写操作,并从执行完写操作的存储块中选择其中至少部分存储块执行读操作,包括:将每次执行完擦操作的存储块全部执行写操作,并将执行完写操作的存储块全部执行读操作。
9.其中,对同一存储块执行写操作和执行读操作之间间隔预设时间。
10.其中,对存储芯片的至少一个存储块执行擦操作、写操作和读操作,包括:每次从存储芯片中未执行擦操作的存储块中选择至少部分存储块执行擦操作,并从每次执行完擦操作的存储块中选择其中至少部分存储块执行写操作;从至少两次执行完擦操作的部分存储块中,选择其中至少部分执行完写操作的存储块执行读操作,直至所述存储芯片中的所有存储块执行完擦操作、写操作和读操作。
11.其中,对存储芯片的至少一个存储块执行擦操作、写操作和读操作,包括:对存储芯片中所有存储块执行擦操作;每次从执行完擦操作的存储块中选择至少部分存储块进行写操作,并从执行完写操作的存储块中选择至少部分存储块进行读操作,直至存储芯片中
的所有存储块执行完擦操作、写操作和读操作。
12.其中,不同次执行写操作或读操作的存储块的数量相同,或者不同。
13.其中,确定所述至少一存储块中的任一存储块是否为坏块,包括:基于任一存储块中存储单元的写数据和读数据,确定存储块中出错的存储单元的个数:响应于存储块中出错的存储单元的个数大于出错数阈值,确定存储块为所述坏块。
14.其中,存储芯片中的存储块采用tcl、qlc、slc或mlc编程方式来执行擦操作、写操作和读操作。
15.为了解决上述技术问题,本技术采用的另一技术方案是:提供一种检测装置,该装置包括存储器和处理器,所述存储器存储有程序数据,所述处理器用于执行所述程序数据以实现如上述的存储芯片的坏块检测方法。
16.为了解决上述技术问题,本技术采用的另一技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质存储有程序数据,程序数据在被处理器执行时,用于实现如上述的存储芯片的坏块检测方法。
17.本技术的有益效果是:区别于现有技术的情况,本技术通过对存储芯片的至少一个存储块执行擦操作、写操作和读操作,并确定所述至少一存储块中的任一存储块是否为坏块,响应于一存储块为坏块,标记所述坏块,由于执行擦写的所述至少一存储块中存储块的数量小于存储芯片中存储块的总数量,进而可以以边读边写的操作对存储芯片进行检测,而不是全部擦写完成之后再读,通过边读边写可以使得出错数快速地稳定,可以减少检测时间,提高检测效率。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
19.图1是本技术提供的存储芯片的结构示意图;
20.图2是本技术提供的坏块检测方法第一实施例的流程示意图;
21.图3是本技术提供的坏块检测方法第二实施例的流程示意图;
22.图4是本技术提供的坏块检测方法第三实施例的流程示意图;
23.图5是本技术提供的坏块检测方法第四实施例的流程示意图;
24.图6是本技术提供的坏块检测方法第五实施例的流程示意图;
25.图7是本技术提供的检测装置一实施例的结构示意图;
26.图8是本技术提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.参阅图1,图1是本技术提供的存储芯片的结构示意图,该存储芯片10包含存储块101、存储块102

存储块10m,其中,m表示将该存储芯片10划分成存储块的总数量,且每一存储块之间通信连接。
29.一个芯片中堆叠封装有多个晶片,每一个晶片称为一个逻辑单元(logical unit,lun),多个逻辑单元共享一套输入输出接口,但每一个逻辑单元都可以独立地进行擦、写、读操作。
30.擦操作指将存储单元中指定长度的数据擦除。
31.写操作指数据首先由gtx总线写入报文处理单元中的数据缓冲区,到达一定数据量后,mc(主控制器)向指定逻辑通道的nac(闪存控制单元)发送写入命令,数据随即由dma(数据接口)传输至nac中的页缓冲区,最后,nac处理器控制内存接口单元将数据从页缓冲区经由onfi(open nand flash interface working group)总线写入存储芯片内部的缓冲区,芯片执行编程操作将数据写入各个存储单元。
32.读操作指芯片的一个逻辑单元收到读命令后,首先进行内部读取,将数据从内部存储单元读到缓存缓冲区,随后,数据经由onfi总线从芯片内部传输至nfi(nand flash interface working group)的页缓冲区内,最后,数据由dma引擎通过gtx总线发送至扩展板的内存中。
33.参阅图2,图2是本技术提供的坏块检测方法第一实施例的流程示意图,该坏块检测方法具体步骤如下:
34.步骤21:对存储芯片的至少一个存储块执行擦操作、写操作和读操作,并确定所至少一个存储块中的任一存储块是否为坏块,其中,所述至少一个存储块中存储块的数量小于存储芯片中存储块的总数量。
35.在本技术的实施例中,存储块又称block。
36.具体地,某一存储芯片包含若干个block,对每一block实现擦操作、写操作和读操作,具体实现擦/读/写操作的方式包括三种,一种是先全盘完成擦操作,接着对已完成擦操作的block循环进行写操作和读操作,即“擦操作all

写操作

读操作

写操作

读操作
……”
的形式,且写操作和读操作是依次进行的,换句话说,是边写边读的方式;第二种是擦操作、写操作和读操作轮流进行,即“擦操作

写操作

读操作

擦操作

写操作

读操作
……”
的形式,即边擦边写边读的方式;第三种是擦操作写操作循环再执行读操作的方式,即“擦操作

写操作

擦操作

写操作

读操作

擦操作

写操作

擦操作
…”
或“擦操作

写操作

擦操作

写操作

擦操作

写操作

读操作

擦操作

写操作
…”
等,也就是说,擦操作和写操作的循环至少进行两次之后才进行读操作,该方式依然以边写边读进行。
37.值得注意的是,不管是方式一/方式二/方式三,不同次执行擦/写/读操作的block的数量可以不一致。
38.另外,检测某一block是否为坏块,看写操作和读操作的数据是否一致,不一致说明block存在错误,这时候看该block的出错数(false block count,fbc)是否超过预设值(出错数阈值),超过则表示该存储块是坏块。
39.存储芯片以block(对应存储块)为单位擦除,且block size越大,擦除时间越长。
40.具体地,block采用tlc(triple-level cell)、qlc(quad-level cell)、slc
(single-level cell)或mlc(multi-level cell)编程方式来执行擦操作、写操作和读操作。
41.当每个存储单元中只保存一个比特的信息时,这种方式称为单阶存储单元(slc);当保存两个比特信息时称为多阶存储单元(mlc),可保存三个比特信息时称为三阶存储单元(tlc)或3-bitmlc,可保存四个比特信息时称为四阶存储单元(qlc)。随着一个存储单元上表示的比特位的增多,相同的晶片面积和制程工艺下存储的信息增加了,但存储单元的擦写寿命在减小,擦操作、写操作的耗时在增加,即整个芯片的整体性能和可靠性降低了。
42.步骤22:响应于一存储块为坏块,标记所述坏块。
43.具体地,响应于存储块是坏块,标记该存储块为bad block或weak block,并不会再将数据存储到所述存储块中。
44.区别于现有技术,本技术提供的存储型芯片的坏块检测可以对坏块进行擦操作、写操作和读操作,且不是进行全盘擦/写/读操作,因为进行全盘擦写读block的fbc(出错数)偏高,而以边写边读的方式对存储芯片进行检测,可以使fbc处于稳定状态,进而达到减少检测时间的效果。
45.参阅图3,图3是本技术提供的坏块检测方法第二实施例的流程示意图,该坏块检测方法具体步骤如下:
46.步骤31:每次从存储芯片中未执行擦操作的存储块中选择至少部分存储块执行擦操作。
47.首先,从任一存储芯片种确定未执行擦操作的block;其次,确定需要进行擦操作的block的数量,该数量小于等于未执行擦操作的block的总数量;最后,对选定数量的block执行擦操作。
48.步骤32:从每次执行完擦操作的存储块中选择其中至少部分存储块执行写操作,并从执行完写操作的存储块中选择其中至少部分存储块执行读操作,直至所述存储芯片中的所有存储块执行完擦操作、写操作和读操作。
49.在一实施例中,将每次执行完擦操作的存储块全部执行写操作,并将执行完写操作的存储块全部执行读操作,即“擦n

写n

读n

擦m

写m

读m

擦l

写l

读l
…”
的模式,其中,n、m和l的取值可以相同也可以不同。
50.值得注意的是,同一存储块执行写操作和执行读操作之间间隔预设时间,且预设时间是可变的,也就是说,在完成写操作之后,可以是经过一段时间之后再执行读操作,也可以是完成写操作之后立刻执行读操作,这里不作限定。
51.步骤33:基于任一所述存储块中存储单元的写数据和读数据,确定所述存储块中出错的存储单元的个数。
52.具体地,判断某一block是否是坏块,通过判断该block中所有存储单元的写数据与对应的读数据是否一致,从而确定出错的存储单元的数量。
53.步骤34:判断所述存储块中出错的存储单元的个数是否大于出错数阈值。
54.当某一block的存储单元出错的数量超过出错数阈值时,表示该block是坏块。其中,出错数阈值与存储单元的数量有关,该出错数阈值可以是存储单元数量的某一比例,如85%、90%等。
55.若大于,则执行步骤35。
56.步骤35:确定所述存储块为所述坏块,标记所述坏块。
57.当某一block被确认为坏块时,将该block标记为bad block或weak block,且该block不再用于存储数据等。
58.如,某一存储芯片种包含256个未执行擦操作的block,第一次从这256个存储块中选择16个存储块进行擦操作,接着从这16个已完成擦操作的存储块中选择12个存储块进行写操作,然后选择10个存储块进行读操作;第二次选择16个存储块进行擦操作,此时还有20个已完成擦操作的存储块可供选择,用于执行写操作;继续进行上述操作,直到所述未执行擦操作的block全部完成擦操作、写操作和读操作。即该模式是“擦n

写m

读l”59.如,某一存储芯片包含256个未执行擦操作的block,第一次从256个存储块中选择16个存储块执行擦操作,接着从这16个存储块中选择16个存储块执行写操作,然后从这16个存储块中选择12哥个存储块进行读操作;第二次选择16个存储块进行擦操作,这时有16个存储块可以被选择用于执行写操作,若第二次选择16次执行写操作,则存在20个存储块可用于执行读操作;继续进行上述操作,直到所述未执行擦操作的block全部执行完擦操作、写操作和读操作。即该模式是“擦n

写n

读m”。
60.在其他实施例中,进行擦操作、写操作和读操作的方式还可以是“擦n

写m

读m”、“擦n

写n

读n”。且不同次执行擦/写/读操作的block的数量可以不同,如“擦n

写m

读m

擦l

写h

读h”、“擦n

写n

读n

擦m

写m

读m”等。
61.区别于现有技术,本技术提供的坏块检测方法以擦操作、写操作和读操作循环进行的方式去检测坏块,可以稳定block的出错数较为稳定,进而减少检测时间。
62.参阅图4,图4是本技术提供的坏块检测方法第三实施例的流程示意图,该坏块检测方法具体步骤如下:
63.步骤41:每次从存储芯片中未执行擦操作的存储块中选择至少部分存储块执行擦操作。
64.可以理解地,至少部分存储块的数量的取值范围在1和未执行擦操作的存储块的总数量之间。
65.步骤42:将每次执行完擦操作的存储块全部执行写操作,并将执行完写操作的存储块全部执行读操作。
66.如,某一存储芯片包含256个未执行擦操作的block,第一次从这256个block中选择16个block进行擦操作,接着对这16个已完成擦操作的block执行写操作,并对完成写操作的16个block执行读操作;第二次从240个block中选择16个存储块执行擦操作,接着对这16个存储块执行写操作和读操作;继续进行上述操作,以实现所述未执行擦操作的block全部执行完擦操作、写操作和读操作。即该模式是“擦n

写n

读n

擦n

写n

读n”。
67.如,某一存储芯片包含256个未执行擦操作的block,第一次从这256个block中选择16个block进行擦操作,接着对这16个block执行写操作,并对完成写操作的16个block执行读操作;第二次选择18个block执行擦操作,接着对已完成擦操作的18个block执行写操作和读操作;继续进行上述操作,直至所有未执行擦操作的block都完成擦操作、写操作和读操作。即该模式是“擦n

写n

读n

擦m

写m

读m”。
68.也就是说,不同次执行擦操作的block的数量可以相同,也可以不同。
69.步骤43:基于任一所述存储块中存储单元的写数据和读数据,确定所述存储块中
出错的存储单元的个数。
70.具体地,判断某一block是否是坏块,看该block中存储单元的写数据和读数据是否一致,若不一致,则表示该存储单元存在错误。
71.步骤44:判断所述存储块中出错的存储单元的个数是否大于出错数阈值。
72.若大于,则执行步骤45。
73.步骤45:确定所述存储块为所述坏块,标记所述坏块。
74.区别于现有技术,本技术提供的坏块检测方法通过定义每次执行擦操作、写操作和读操作的存储块的数量设置成一致,以实现边读边写,使得出错数处于稳定状态,进而可以减少检测时间。
75.参阅图5,图5是本技术提供的坏块检测方法第五实施例的流程示意图,该坏块检测方法具体步骤如下:
76.步骤51:每次从存储芯片中未执行擦操作的存储块中选择至少部分存储块执行擦操作,并从每次执行完擦操作的存储块中选择其中至少部分存储块执行写操作。
77.每次执行擦操作的存储块的数量是自然数,且是大于等于1、小于未执行擦操作的存储块总数量的自然数。同理,每次执行写操作的存储块的数量也是自然数,且是大于等于1、小于未执行写操作的存储块总数量的自然数。
78.如,某一存储芯片中未执行擦操作的block的数量是m,从m个block中选择n个block执行擦操作,接着从n个已完成擦操作的block中选择n个或l(1≤l<n)个block进行写操作。
79.步骤52:从至少两次执行完擦操作的部分存储块中,选择其中至少部分执行完写操作的存储块执行读操作,直至所述存储芯片中的所有存储块执行完擦操作、写操作和读操作。
80.值得注意的是,对已完成写操作的存储块执行读操作的前提是存在未执行擦操作或未执行写操作的存储块。
81.如,某一存储芯片中未执行擦操作的block的数量是m,从m个block中选择n(n<m)个block执行擦操作,接着从n个block中选择n个或l(1≤l<n)个block执行写操作,接着从m-n个未执行擦操作的block中选择n(m>2*n)个或t(t≠n,且t≤m-n)个block执行擦操作,
82.在一些实施例中,选择n个block执行写操作,则执行第二次擦操作时,可从这n个block中选择n个或h(1≤h<n)个block执行擦操作,然后再从n个block中选择n个/p个block执行写操作,或h个block中选择h个/q个block执行写操作,即“擦n

写n

擦n

写n”或“擦n

写n

擦n

写p”或“擦n

写n

擦h

写h”或“擦n

写h

擦h

写q”,接着进行第三次擦写循环或执行读操作,且若是进行擦写循环,需要满足条件是执行读操作时存在未执行擦操作或写操作的block,以实现边写边读的效果。
83.在一些实施例中,选择l个block执行写操作,则执行第二次擦操作时从这l个block中选择l个或k(1≤k<l)个block执行擦操作,然后再从l个block中选择l个/d个block执行写操作,或从k个block中选择k个/z个block执行写操作,即“擦n

写l

擦l

写l”或“擦n

写l

擦l

写d”或“擦n

写l

擦k

写k”或“擦n

写l

擦k

写z”,接着进行第三次擦写操作循环或执行读操作,若是进行擦写操作,同样需要需要满足条件——执行读操作时存在未执行擦/写操作的block。步骤53:基于任一所述存储块中存储单元的写数
据和读数据,确定所述存储块中出错的存储单元的个数。
84.具体确定存储块中出错的存储单元的数量的方式与前面所述的方法相同,这里不再赘述。
85.步骤54:判断所述存储块中出错的存储单元的个数是否大于出错数阈值。
86.具体判断存储块是坏块的方式与前面所述的方法相同,这里不再赘述。
87.步骤55:确定所述存储块为所述坏块,标记所述坏块。
88.区别于现有技术,本技术提供的坏块检测方法通过擦操作和写操作的至少两次循环进行,再执行读操作,且在执行读操作时存在未完成擦/写操作的存储块,通过上述方式可以实现边读边写,使得存储块中的存储单元的出错数处于稳定状态,进而可以减少检测时间。
89.参阅图6,图6是本技术提供的坏块检测方法第六实施例的流程示意图,该坏块检测方法具体步骤如下:
90.步骤61:对存储芯片中所有存储块执行擦操作。
91.可以理解地,对某一存储芯片中的所有block执行擦操作,即“擦all”。
92.步骤62:每次从执行完擦操作的存储块中选择至少部分存储块进行写操作,并从执行完写操作的存储块中选择至少部分存储块进行读操作,直至所述存储芯片中的所有存储块执行完擦操作、写操作和读操作。
93.如,某一存储芯片中未执行擦操作的block的数量是m,对这m个block执行擦操作,接着但从这m个已完成擦操作的block中选择m个/n(1≤n<m)个block执行写操作,然后,从m个已完成写操作的block中选择m个/h(1≤h<m)个block执行读操作,或从n个已完成写操作的block中选择n个/l(1≤n<l)个block执行读操作。即“擦m

写m

读m”或“擦m

写m

读h”或“擦m

写n

读n”或“擦m

写n

读l”。
94.接下来,可以继续按照上述方式进行第二次的写操作和读操作的循环。
95.步骤63:基于任一所述存储块中存储单元的写数据和读数据,确定所述存储块中出错的存储单元的个数。
96.具体地,设置出错数阈值,当写操作与读操作不一致时,出错数进一,当block中的存储单元的出错数总数超过出错数阈值时,表示该block为坏块。
97.步骤64:判断所述存储块中出错的存储单元的个数是否大于出错数阈值。
98.具体确定坏块的方式可以参阅前面所述的方法,这里不再赘述。
99.步骤65:确定所述存储块为所述坏块,标记所述坏块。
100.区别于现有技术,本技术提供的坏块检测方法通过全盘完成擦操作,然后实现写操作和读操作循环进行,也就是边写边读的方式,通过上述方式可以减少检测坏块的时间。
101.参阅图7,图7是本技术提供的检测装置一实施例的结构示意图,该检测装置70包括存储器701和处理器702,存储器701存储有程序数据,处理器702用于执行程序数据以实现存储芯片的坏块检测方法,具体如下:
102.对所述存储芯片的至少一个存储块执行擦操作、写操作和读操作,并确定所述至少一存储块中的任一存储块是否为坏块,其中,所述至少一存储块中存储块的数量小于所述存储芯片中存储块的总数量;
103.响应于一存储块为坏块,标记所述坏块。
104.本技术涉及的处理器702还可以称为cpu(central processing unit,中央处理单元),处理器702可能是一种集成电路芯片,具有信号的处理能力,还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
105.参阅图8,图8是本技术提供的计算机可读存储介质一实施例的结构示意图,该计算机可读存储介质80存储有程序数据801,程序数据801在被处理器执行时,用于实现如上述所述的坏块检测方法,这里不再赘述。
106.本技术涉及的计算机可读存储介质70具体可以为u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
107.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献