一种提升Flash芯片容量的方法与流程

文档序号:25650493发布日期:2021-06-29 20:10阅读:384来源:国知局
一种提升Flash芯片容量的方法与流程
一种提升flash芯片容量的方法
技术领域
1.本申请涉及flash芯片技术领域,尤其是涉及一种提升flash芯片容量的方法。


背景技术:

2.flash芯片是应用非常广泛的、可进行快速存储及擦除数据的存储物质,例如固态硬盘。
3.目前,每个flash芯片的有效block块都有页模板,每个块的好页模板简称bpm(block page mask);统计n个块的bpm,以容量最大、同时兼顾稳定性为标准得出的n个块的公共好页模板,简称为cbpm(common block page mask)。通常bpm越趋同,cbpm越大,则flash芯片容量越大;反之,flash芯片容量越小。
4.针对上述中的相关技术,发明人认为存在flash芯片中每个块内的好页模板bpm不同、公共好页cbpm过小,导致flash芯片有效容量较低的缺陷。


技术实现要素:

5.为了解决flash芯片中每个块内的好页模板bpm不同、公共好页cbpm过小,导致flash芯片有效容量较低的问题,本申请提供一种提升flash芯片容量的方法。
6.本申请提供的一种提升flash芯片容量的方法采用如下的技术方案:
7.一种提升flash芯片容量的方法,包括:
8.通过扫描检测所有block,以容量较大、兼顾稳定性为标准获得的某一个block作为公共好页模板cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的映射关系的方式,来提升flash芯片容量。
9.通过采用以上技术方案,将通过扫描检测所有block,以容量较大、兼顾稳定性为标准获得的某一个block作为公共好页模板cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的映射关系,从而实现了即使每个block的好页模板bpm不同,也可以获得较大的公共好页模板cbpm,最终提升了nandflash的可用容量;而且本申请中将flash芯片中某一个block作为公共好页模板cbpm,只需要建立一张总的映射表即可实现在具体存储时还原每个block的状态,无需读取处理多个表格,从而节约了数据的读存时间。
10.优选的,建立映射关系时,记录当前block中的坏页相对于公共好页模板cbpm中坏页的位置以及各个block中的不在公共好页模板中的好页模板的位置。
11.通过采用以上技术方案,从而可以与当前主流闪存管理算法相适应,使得既可以提升nandflash的可用容量,而且对主流算法影响很小。目前usb 2.0的固件架构,是基于cbpm来管理的,在这个架构上,处理cbpm过小的问题,如果不采用本申请的设置方法,则改动会比较大,且需专用量产工具。另外,通过本申请的上述技术方案,减少了大量nandflash的管理开销。
12.优选的,通过扫描检测所有block,以容量较大、兼顾稳定性为标准获得的某一个block作为公共好页模板cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的
映射关系,形成一个映射表,所述映射表的字节数小于等于32个字节。从而可以在保证性能的前提下,较好的控制主控成本。当映射表的字节数大于32个字节时,意味着允许存在差异的页越多,导致存储设备的稳定性降低,另外,当映射表的字节数大于32个字节时,使用的时候,占用的ram空间会增大,导致主控成本增加。
13.优选的,所述映射表的前两个字节对应flash芯片中每个block的地址,后面每两个字节映射当前block中的坏页相对于公共好页模板cbpm中坏页的位置,以及各个block中的不在公共好页模板中的好页模板的位置。
14.通过采用以上技术方案,每个block信息中具有同时包括block地址及记录有当前bpm和cbpm差异的映射表,只需将block块地址原始的存储空间由两个字节进行扩展即可,无需建立新的表格,从而进一步节约了数据的读存时间。
15.前述的提升flash芯片容量的方法中,flash芯片容量通过以下公式进行计算:
16.valid capacity=n*m*kbyte
17.其中,valid capacity表示flash芯片真实容量,n表示flash芯片中好块个数,m表示cbpm中好页模板的个数,kbyte表示每一页的字节大小。
18.通过采用以上技术方案,从而即可计算出nandflash的真实容量。通过上述技术方案,提升了公共好页模板cbpm中好页的个数,从而最终提升了nandflash的真实容量。
19.综上所述,本申请包括以下至少一种有益技术效果:
20.1.将通过扫描检测所有block,以容量较大、兼顾稳定性为标准获得的某一个block作为公共好页模板cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的映射关系,从而实现了即使每个block的好页模板bpm不同,也可以获得较大的公共好页模板cbpm,最终提升了nandflash的可用容量;而且本申请中将flash芯片中某一个block作为公共好页模板cbpm,只需要建立一张总的映射表即可实现在具体存储时还原每个block的状态,无需读取处理多个表格,从而节约了数据的读存时间。
21.2.本申请中,映射表的字节数小于等于32个字节,从而可以在保证性能的前提下,较好的控制主控成本。当映射表的字节数大于32个字节时,意味着允许存在差异的页越多,导致存储设备的稳定性降低,另外,当映射表的字节数大于32个字节时,使用的时候,占用的ram空间会增大,导致主控成本增加。
附图说明
22.图1是本申请实施例中的cbpm到bpm映射表示意图。
23.图2是实验例中nandflash的两种情况中的block示意图。
具体实施方式
24.以下结合附图1

2对本申请作进一步详细说明。
25.本申请实施例公开一种提升flash芯片容量的方法。一种提升flash芯片容量的方法,包括:
26.通过扫描检测所有block,以容量较大、兼顾稳定性为标准获得的某一个block作为公共好页模板cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的映射关系的方式,来提升flash芯片容量。
27.可选的,建立映射关系时,记录当前block中的坏页相对于公共好页模板cbpm中坏页的位置以及各个block中的不在公共好页模板中的好页模板的位置。
28.可选的,通过扫描检测所有block,以容量较大、兼顾稳定性为标准获得的某一个block作为公共好页模板cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的映射关系,形成一个映射表,所述映射表的字节数小于等于32个字节。
29.可选的,如图1所示,所述映射表的前两个字节对应flash芯片中每个block的地址,后面每两个字节映射当前block中的坏页相对于公共好页模板cbpm中坏页的位置以及各个block中的不在公共好页模板中的好页模板的位置。
30.可选的,flash芯片容量通过以下公式进行计算:
31.valid capacity=n*m*kbyte
32.其中,valid capacity表示flash芯片真实容量,n表示flash芯片中好块个数,m表示cbpm中好页模板的个数,kbyte表示每一页的字节大小。
33.以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。
34.实验例:
35.假设nandflash存在如图2的两种情况:
36.case1:
37.block0的bpm是0,2,3,

(m

1)
38.block1的bpm是0,2,3,

(m

1)
39.blokc(n

1)的bpm也是0,2,3,

(m

1)
40.因此,cbpm为:0,2,3,

(m

1);
41.nandflash的真实容量为:
42.valid capacity=n*m*kbyte
43.其中,flash芯片中好块个数n=n,cbpm中好页模板的个数m=m

1(第一页为坏页,所以为m

1)。
44.由上述内容可知:case1中,每个block中坏的都是第1页,坏页位置相同(即bpm相同),所以最终得出的cbpm大,nandflash的有效容量大。
45.case2:
46.block0的bpm是1,2,3,

(m

1)
47.block1的bpm是0,2,3,

(m

1)
48.block2的bpm是0,1,3,

(m

1)
49.block(n

1)的bpm是0,1,2,3,

,(n/m

1)
50.因此:cbpm为0,nandflash的真实容量为0。
51.由此可知:case2中,若每个block中,虽然错的还是1个页,但是页的位置都不固定,此时,每个bpm都不同,得出来的cbpm就很小,最终导致nandflash的有效容量很小。
52.采用本申请的方法可以有效解决case2这种bpm不同、cbpm过小,导致有效容量低的问题。
53.case2中,若以block0的bpm作为cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的映射关系表。建立的映射表中各block信息如表1所示。
54.表1
[0055][0056]
根据nandflash的真实容量公式:
[0057]
valid capacity=n*m*kbyte
[0058]
此时,flash芯片中好块个数n=n,cbpm中好页模板的个数m=m

1,有效容量与case1相同,从而大大提升了nandflash的有效容量。
[0059]
假设仍然以block0的bpm作为cbpm,建立当前block好页模板bpm相对于该公共好页模板cbpm的映射关系表,此时block0的坏页为0和1,block1的坏页为2和3;那么对应的映射表中,block1对应的映射部分记录的是:2 0 3 1。以此类推。
[0060]
通常,flash芯片中每个块的块地址用2byte表示,本申请中,可将每个块用32byte表示,前2byte表示块地址,后30byte记录cbpm和bpm的映射关系,每2byte表示一个页的差异。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1