应用于固态硬盘阻变存储器缓存的纠错保护架构及方法
【技术领域】
[0001]本发明属于非易失性存储器阻变存储器设计领域,涉及一种应用于固态硬盘阻变存储器缓存的纠错保护架构及方法。
【背景技术】
[0002]固态硬盘系统中的缓存能有效减少主机对闪存的访问,对提高整个系统的性能有重要作用,传统的基于动态随机存取存储器的缓存存在大的漏电流、断电丢失信息、高的静态功耗等问题,非易失性存储器阻变存储器具有密度高、读写速度快、低功耗等优点,被认为是固态硬盘系统中动态随机存取存储器的理想替代者,但是阻变存储器存在可靠性的问题,尤其交叉阵列结构的阻变存储器存储器,随着阵列长度的增加,串扰会越来越大,可靠性问题更加突出。
[0003]随着非易失性存储器的发展,使用非易失性存储器作为外部存储设备的缓存已经变得切实可行,典型的缓存中主要存放着缓存的用户数据,映射表信息(Physical pagenumber,简称PPN)以及少量的固件等其它数据。
[0004]众所周知,存储器设备只有用户比特错误率低于10 15才能满足用户需求,虽然阻变存储器缓存原始比特错误率高,但是可以通过纠错码的保护来使其满足用户比特错误率的要求。根据纠错码编解码原理,码长越长码率越高那么纠错码冗余越小,比如,比特错误率为10 4,采用传统伽罗华域为2的BCH编解码,码长为4B时需要30bit的冗余,而同样原始比特错误率,码长为4KB冗余需要416bit,所以纠错码码长不同其冗余相差很大。
【发明内容】
[0005]本发明的目的在于克服上述现有技术的缺点,提供了一种应用于固态硬盘阻变存储器缓存的纠错保护架构及方法,该架构及方法能够高效、可靠的获取读出映射表地址信息,并且消耗的冗余空间有限。
[0006]为达到上述目的,本发明所述的应用于固态硬盘阻变存储器缓存的纠错保护架构中粗粒度管理的映射表的码长与页缓存数据的码长相同,在数据处理过程中,将粗粒度管理的映射表中访问频率大于预设值的映射表地址信息存储到细粒度管理的映射表缓存中,一个粗粒度管理的映射表的条目由1024个地址映射表拼而成,细粒度管理的映射表缓存中的各条目均包含一个映射表信息以及一个映射表信息的纠错码冗余;
[0007]细粒度管理的映射表缓存与粗粒度管理的映射表之间的交换数据以页为单位,将从粗粒度管理的映射表中读出的一页映射表信息全部放在细粒度管理的映射表缓存中,其中,一页映射表信息由1024个映射表信息拼接而成,将输入的逻辑地址请求中的后10位作为偏移位,将输入的逻辑地址中的剩余位作为索引位。
[0008]本发明所述的应用于固态硬盘阻变存储器缓存的纠错保护方法包括以下步骤:
[0009]将输入的逻辑地址请求分为索引位和偏移位,通过索引位来查找细粒度管理的映射表缓存,当输入的逻辑地址请求在细粒度管理的映射表缓存中命中时,则根据输入的偏移地址请求从包含请求映射表信息的页中读出对应的映射表地址信息;当输入的逻辑地址请求在细粒度管理的映射表缓存中没有命中时,则从粗粒度管理的映射表中找出包含请求映射表信息的页,当细粒度管理的映射表缓存有空间时,则直接将从粗粒度管理的映射表中读出包含请求映射表信息的页,并将读出的包含请求映射表信息的页按细粒度管理策略写到细粒度管理的映射表缓存中;当细粒度管理的映射表缓存中没有空间,则根据粗粒度策略将细粒度管理的映射表缓存中的最后一页写回到粗粒度管理的映射表中,然后再将包含请求映射表信息的页根据细粒度管理策略写到细粒度管理的映射表缓存中,最后根据偏移地址请求从包含请求映射表信息的页中读出对应的映射表地址信息。
[0010]细粒度管理的映射表缓存能够缓存多个页的映射表地址信息,其中,每一页的映射表地址信息均为1024个连续逻辑地址对应的闪存物理地址,每一页的映射表地址信息中的第一个闪存物理地址对应的逻辑地址为该页的逻辑地址索引;
[0011 ]当访问的逻辑地址请求在细粒度管理的映射表缓存中命中时,则根据索引位对应的索引号、阻变存储器中存放地址映射表信息的首地址、每个地址信息条目的大小、以及页内偏移得所需地址映射表信息所在位置,其中,所需地址映射表信息所在位置=阻变存储器中存放地址映射表信息的首地址+每个地址信息条目的大小X 1024X索引号+页内偏移X每个地址信息条目的大小。
[0012]每个地址信息条目的大小由一个地址映射信息和该地址映射信息的纠错码冗组成。
[0013]将索引条目存储到固态硬盘系统的静态随机存储器,高速缓存数据映射表及映射表缓存索引阵列存储到固态硬盘系统的SRAM中,地址映射表信息存储到固态硬盘系统的片外缓存阻变存储器中。
[0014]本发明具有以下有益效果:
[0015]本发明所述的应用于固态硬盘阻变存储器缓存的纠错保护架构及方法在操作时,粗粒度管理的映射表的码长与页缓存数据的码长相同,并且将访问频率较大的映射表地址信息存储到细粒度管理的映射表中,极大的减少纠错冗余损耗,同时保证映射表访问的速度。另外,一个粗粒度管理的映射表的条目由1024个地址映射表拼而成,同时在细粒度管理的映射表缓存与粗粒度管理的映射表之间的交换数据以页为单位,同时一页映射表信息由1024个映射表信息拼接而成,从而有效地提高映射表缓存的命中率。综上,本发明减少了映射表中纠错码冗余空间损耗又保证了速度,对整体固态硬盘系统性能有显著提升。
[0016]进一步,每一页的映射表地址信息中的第一个闪存物理地址对应的逻辑地址为该页的逻辑地址索引,有效的提高索引的速度,降低索引的出错率。
【附图说明】
[0017]图1为本发明的结构图;
[0018]图2为本发明的流程图;
[0019]图3为本发明中细粒度管理的映射表缓存的管理结构图;
[0020]图4为索引阵列在片上的混合纠错保护固态硬盘系统架构图。
【具体实施方式】
[0021]下面结合附图对本发明做进一步详细描述:
[0022]参考图1,本发明所述的应用于固态硬盘阻变存储器缓存的纠错保护架构中粗粒度管理的映射表的码长与页缓存数据的码长相同,在数据处理过程中,将粗粒度管理的映射表中访问频率大于预设值的映射表地址信息存储到细粒度管理的映射表缓存中,一个粗粒度管理的映射表的条目由1024个地址映射表拼而成,细粒度管理的映射表缓存中的各条目均包含一个映射表信息以及一个映射表信息的纠错码冗余;细粒度管理的