一种固态盘系统中纠错码的优化处理方法及其应用与流程

文档序号:11202433阅读:615来源:国知局
导航: X技术> 最新专利> 信息存储应用技术
一种固态盘系统中纠错码的优化处理方法及其应用与流程

本发明属于固态盘存储技术领域,具体涉及一种固态盘系统中纠错码的优化处理方法及其应用。



背景技术:

固态盘(solidstatedisk,ssd)是一种新兴的存储技术,在全球具有上百亿的市场。以闪存为存储介质,具有更低的延时和能耗,更快的数据处理速度,更好的抗震性能,更高的可靠性和耐用性。为了获得更大的存储容量和更高的存储密度,闪存介质分别从工艺制程、组织结构、存储比特数等3个方面进行了优化。但是,存储单元的尺寸缩小,导致单元间串扰增加;堆叠层数不断增多,也增加了层间串扰;而闪存单元存储比特数的改变,使得阈值电压变窄,从而导致每个单元存储的电荷数变少,最终导致数据存储稳定性降低,数据保存时间变低。

研究结果表明,有关固态硬盘出现非透明错误(致命的,无提示的)的比例,在读取中为20%~63%,而在写入中仅为1.5%~2.5%。另外,透明错误尽管可以进行修复,但其占用资源严重,也会导致固态盘性能下降。由此可见,闪存数据存储的可靠性问题亟待解决。而且,随着闪存的使用,p/e周期不断地累加,对存储单元造成永久伤害并累积,导致原始位比特错误率(rawbiterrorrate,rber)增高。随着数据保存时间变长,存储在闪存单元中电荷泄露,保存错误出现,造成原始位比特错误率(rber)的增加。

目前,固态盘一般使用纠错码来纠正比特错误,以保证数据存储的可靠性与有效性。但是,由于闪存的比特错误率随着存储密度的上升和擦写周期的提高而增高,为保证数据存储的高可靠性和长久性,ssd中需要采用校验码字更长的强力纠错码。在现有闪存上采用校验长的强力纠错码存在明显不足,具体表现为:一方面,强力的纠错码通常需要有更长的冗余,闪存页提供的冗余空间可能不足以存储全部的纠错码;另一方面,一个逻辑数据页通畅需要跨页存储在两个闪存页上,这将带来读放大问题,从而导致高访问开销,降低固态盘的整体性能。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种固态盘系统中纠错码的优化处理方法及其应用,该方法可以解耦数据页和过长纠错码的存储,优化读、写缓存算法,还可以通过缓存过长的纠错码(ecc)来提高缓存命中率,以及通过批量写回多个数据页的过长纠错码(ecc)来减小更新开销,进而提高系统的整体性能,延长固态盘(ssd)的寿命。

为实现上述目的,按照本发明的一个方面,提供了一种固态盘系统中纠错码的优化处理方法,所述固态盘包括闪存和缓存,其特征在于,

s1根据过长纠错码的长度,按照顺序将数据页划分为连续的数据页组;

s2针对每个数据页,提取其中数据页的过长纠错码;

s3将每个数据页组内的过长纠错码集中存储在一个单独的闪存页中,作为该数据页组对应的纠错码页;

s4根据数据页的读取频率和新近程度,将热数据的完整数据页存储在读缓存中,形成数据页缓存区;将温数据的过长纠错码和/或纠错码页存储在读缓存中,形成纠错码缓存区;

以此方式,使得在读访问操作时,可以通过直接访问数据页缓存区中的完整数据页或纠错码缓存区中的过长纠错码而命中访问请求的用户数据页或过长纠错码,从而提升缓存中的访问命中率,提高固态盘系统的读性能。

采取了过长纠错码的固态盘系统,其中的数据页对应的纠错码可能会超过闪存页内备用区的大小,从而导致一个数据页及其纠错码需要跨闪存页存放。这会给读访问过程带来高额的访问开销,即,获取一个数据页需要读取两个闪存页的内容。但是如果可以直接从缓存中命中访问请求的数据页或者是纠错码,则可以大大减少闪存的访问频率,从而减少闪存的访问开销;此外,缓存的访问时间相较于闪存要小得多,可以提高访问效率,提高固态盘的整体性能。

本发明技术方案的方法中,根据数据页的过长纠错码的长度,将一系列的连续数据页分成若干个连续的数据页组。具体来说,首先需要根据纠错码算法和纠错码码率计算出过长纠错码的长度,然后根据过长纠错码的长度来确定分组,每一个分组中包含一定数量的数据页。针对每一个数据页组,单独提取该分组内数据页的过长纠错码,集中存储在一个单独的闪存页上,该闪存页即为该数据页组对应的纠错码页。在闪存空间中,纠错码页存储在单独设立的纠错码存储区域中。经过上述分组处理后的数据页,按照访问频率和新近程度的差异,分别将其存储到缓存空间中。具体来说,对于近期频繁访问的数据,即热数据,将其完整的数据页缓存;对于近期较为频繁的数据,即温数据,针对顺序访问和随机访问,分别缓存温数据所在数据页组对应的纠错码页和温数据对应的过长纠错码单元。类似的,热数据的完整数据页、顺序访问的温数据所在数据页组对应的完整纠错码页以及随机访问的温数据所对应的过长纠错码,均分别存储在缓存中对应设立的存储区域内,即数据页缓存区域、纠错码页缓存区域和纠错码单元缓存区域。因此,通过这种存储方式,在具体的读访问请求中,可以依次访问数据页缓存区域,纠错码缓存区域(包括纠错码页缓存区域和纠错码单元缓存区域)以及闪存。如果数据页在数据页缓存区即命中,则可以直接将其读取出来;如果数据页的纠错码在纠错码缓存区域命中,则根据该纠错码和映射表可以获得访问请求的数据页在闪存中的位置,经过译码器译码后,可以获得访问请求的数据页;如果在缓存中既没有命中访问请求的数据页也没有命中访问请求的数据页的纠错码,才会直接在闪存中进行读取。在本发明技术方案的这种结构设计下,大部分的访问请求都可以在缓存区域中命中,只有极少数的数据页需要直接从闪存中读取,大大节省了访问开销。

作为本发明的一个优选技术方案,对于顺序访问,存储在读缓存中的是温数据所在数据页组对应的纠错码页,对于随机访问,存储在读缓存中的是温数据对应的单个过长纠错码。

对于温数据的存储来说,如果是顺序访问,即依次访问一系列的逻辑数据页,那么将这些逻辑数据页所在的数据页组对应的纠错码页存储在缓存中,这样的话,当访问请求的数据页是顺序访问的温数据时,一次命中即可以访问其他相关数据页。如果是随机访问,即按照不确定次序访问不同的逻辑数据页,则将逻辑数据页的纠错码存储在缓存中即可。

具体而言,在缓存温数据的过长纠错码过程中,按照访问方式的不同,有两种不同的缓存方案。对于顺序访问,缓存逻辑数据页所在的数据页组对应的完整纠错码页,在具体的访问过程中通过预取提升读缓存命中率。预取是提前将同一个逻辑数据页组对应的的纠错码页置入读缓存中,这样的话,载入完整的纠错码页时,并不会引入额外的访存开销。因为闪存是以页为单位进行读写的,对于同一个数据页组的读请求操作以及写操作更新纠错码页引起的读操作,两者读取的纠错码单元均可在读缓存中命中,系统的读性能因此得到了提升。对于随机访问,缓存逻辑数据页的单个纠错码单元;虽然命中缓存的纠错码单元后,进一步读取对应的逻辑数据页时也会带来闪存访问开销,但由于纠错码单元小于逻辑页,缓存纠错码单元还是能够显著提高缓存命中率并减小访问开销。

作为本发明的一个优选技术方案,缓存中还包括写缓存,用于存储近期写入的数据页,属于同一个数据页组的数据页聚集在一起;

以此方式,使得在写访问操作时,可以将写缓存中替换出来的数据页及其所在数据页组对应的纠错码页一起批量更新到对应的闪存页中,从而减少闪存上纠错码页的写入次数,提高固态盘系统的写性能。

作为本发明的一个优选技术方案,缓存中还包括映射表缓存,用于存储近期访问的数据页对应的映射表页。

在写缓存中,数据页的存储也是遵循一定的规律的。近期写入的数据页存储在写缓存中,并按照其所在数据页的分组聚集,属于同一个逻辑数据页组的数据页存储在一起。这样的话,如果写访问命中了写缓存中的数据页,对其进行了写操作,在不采用本发明技术方案的二级结构时,更新一次数据页的同时也需要更新一次纠错码,相当于同时需要更新两个闪存页。采用上述二级机构的写缓存方法后,该数据页及其纠错码在闪存中不会立即更新,而是等到存储在写缓存中的这个数据页组的某一个数据页发生替换的时候,将该数据页组及其对应的纠错码批量更新到闪存中。这样,只需要更新一次纠错码页就可以完成多个纠错码在闪存中的更新,避免了频繁更新同一纠错码页带来较大的闪存访问开销。

作为本发明的一个优选技术方案,读缓存中设有数据页缓存区和纠错码缓存区,所述纠错码缓存区中设有纠错码单元缓存区和纠错码页缓存区。

作为本发明的一个优选技术方案,闪存包括数据块、映射表块和纠错码块,所述数据块用于存储数据页,所述映射块中用于存放地址映射表,所述纠错码块中用于存放与数据页组相对应的纠错码页。

为了提高访问效率,本发明技术方案在读缓存中开辟了一个独立的分区用于存储过长的纠错码,即纠错码缓存区域,该区域又包括纠错码页缓存区域和纠错码单元缓存区域。数据页缓存区中缓存的是热数据的完整数据页,纠错码页缓存区中存储的是顺序访问的温数据所在的数据页组对应的纠错码页,纠错码单元缓存区中存储的是随机访问的温数据的单个纠错码单元。除了读缓存区外,缓存中还包括写缓存区和映射表缓存区。其中,写缓存存储有部分逻辑数据页,根据这些数据页的纠错码,又可以形成一定的数据页组,该数据页组与分组形成的数据页组是一致的,即在写缓存中,属于同一个数据页组的数据页在写缓存中也是属于同一分组的。映射表存储区中存储的是存放地址映射表、记录缓存数据页到闪存数据页和纠错码页的映射关系。

类似的,闪存中也设有单独的数据存储区、映射表存储区以及纠错码存储区,其中,数据存储区用于存储完整的数据页;映射表存储区用于存放地址映射表、记录缓存的数据页到闪存数据页和纠错码页的映射关系;纠错码存储区则是用于存储每个数据页组对应的纠错码页。

按照本发明技术方案的一个方面,提供了一种固态盘系统中纠错码的优化处理方法在固态盘读操作中的应用,其特征在于,包括,

s11扫描固态盘写缓存,确认访问请求的数据页是否命中,若命中,将该数据页数据页合并更新后迁移到读缓存,转到步骤s16,若未命中,进入步骤s12;

s12扫描固态盘读缓存的数据页存储区,确认访问请求的数据页是否命中,若命中,转到步骤s16,若未命中,进入步骤s13;

s13扫描固态盘读缓存的纠错码缓存区,确认访问请求的数据页的纠错码是否命中,若命中,将过长纠错码和从闪存中取出对应的数据页送入译码器译码,获得访问请求的数据页,进入步骤s15,若未命中,进入步骤s14;

s14扫描固态盘闪存的纠错码块,获取访问请求的数据页对应的纠错码,将纠错码和从闪存中取出对应的数据页送入译码器译码,获得访问请求的数据页,进入步骤s15;

s15判断读缓存是否已满,若读缓存未满,将访问请求的数据页写入缓存,若读缓存已满,将访问请求的数据页与读缓存中的数据页和/或纠错码进行替换,并将替换出来的数据页和/或纠错码丢弃,转到步骤s16;

s16返回读请求结果。

在一个具体的读访问请求过程中,先扫描固态盘的读写缓存,一般来说,如果是热数据,其完整数据页已经缓存了,可以直接读取;如果是温数据,则需要在所缓存的过长纠错码中读取其对应的纠错码,将纠错码及其对应的数据页送入译码器译码后写入缓存再进行读取。但是,缓存的容量是有限的,其所缓存的数据页和过长纠错码也是根据访问频率和新近程度而进行缓存的。因此,有可能在缓存的数据页和过长纠错码中均未能找到目标数据页,这样就需要访问闪存,以获取访问请求的数据页信息。从闪存中载入的信息需要写入缓存,具体来说,更新读缓存时,若读缓存未满,则直接进行更新,将请求的用户数据页写入缓存即可;若缓存已满,选择其中一个数据页和/或过长纠错码丢弃后,写入请求的用户数据页即可。更新写缓存时,如果写缓存未满,直接写入即可,如果写缓存已满,则选择其中一个逻辑数据页将其剔出,确定该逻辑数据页所在数据页组对应的纠错码页,将替换出来的逻辑数据页和对应的纠错码页写入闪存中,通过这种方法给写缓存清理出空间以写入数据。

在上述的读访问过程中,依次检测了缓存中的数据存储区域、纠错码缓存单元、闪存纠错码存储单元,在更加详细的读访问过程中,在进行缓存检测的时候,先检测写缓存内容,再检测读缓存内容。其原因在于,如果访问请求的用户数据页位于写缓存中,可以将该数据页从写缓存中取出存入读缓存,这样既能够实现请求数据页的快速访问,又能够给写缓存清理出更多的空间,有助于提高访问效率,以及提高缓存空间的利用率。如果在缓存中的读缓存数据页存储区或者写缓存的数据页缓存区命中请求的用户数据页,即返回读请求结果,不再执行后续扫描任务,否则顺序执行上述过程,直至命中请求的用户数据页。在读访问请求中,无论是在缓存的纠错码单元命中请求的用户数据页还是在闪存的纠错码页上命中请求的用户数据页,所得到的纠错码都需要结合映射表单元确定数据页所在位置,并将纠错码和闪存中的数据页一起送入译码器译码后才能获得相应的数据页。实质上,映射表单元存储的是逻辑地址到物理地址的映射关系,闪存中存储的数据页和纠错码页所具有的是物理地址。

按照本发明技术方案的一个方面,提供了一种固态盘系统中纠错码的优化处理方法在固态盘写操作中的应用,其特征在于,包括,

s21扫描所述固态盘的读缓存,确认访问请求的数据页是否命中,若命中,将数据页合并更新后迁移到写缓存,转到步骤s25;若未命中,则进入步骤s22;

s22扫描所述固态盘的写缓存,确认访问请求的数据页是否命中,若命中,更新缓存中对应的数据页,转到步骤s25;若未命中,进入步骤s23;

s23判断写缓存是否已满,若写缓存未满,将访问请求的数据页写入缓存,转到步骤s25;若写缓存已满,进入步骤s24;

s24将访问请求的数据页与写缓存中的数据页进行替换,对该替换页所在的数据页组进行过长纠错码编码,形成对应的纠错码页;将该数据页组及其对应的纠错码页写入闪存;进入步骤s25;

s25返回写请求结果。

在一个具体的写访问请求过程中,先扫描缓存,包括读缓存和写缓存。具体而言,先扫描读缓存,再检测写缓存。其原因在于,如果访问请求的数据页在读缓存中命中,即可以将该数据页从读缓存迁移到写缓存,避免了同一个数据页在读缓存和写缓存的数据页存储区重复存储,提高了缓存空间的利用率。若请求的用户数据页位于写缓存中,按照写访问请求更新数据页,返回写请求结果即可。若请求的用户数据页位于读缓存中,则需要将该先数据页迁移到写缓存,即对写缓存进行更新。若此时写缓存未满,则直接将用户请求的数据写入写缓存,返回写请求结果即可;若此时写缓存已满,则需要在写缓存中清理出空间以完成写操作,具体来说,需要寻找到一个被替换出来的逻辑数据页及其所在数据页组,对该数据页组内所有的逻辑数据页进行纠错码编码处理后,聚集存储形成一个纠错码页,将上述替换数据页和纠错码页写入闪存后,方可返回写请求结果。

如果写访问请求在扫描写缓存的时候命中请求的用户数据页,即返回写请求结果;若请求的用户数据页不在写缓存中且写缓存未满,则可直接进行写操作,返回写请求结果;否则顺序执行上述操作,直至完成写操作,才可返回写请求结果。

按照本发明技术方案的一个方面,提供了一种固态盘系统,所述固态盘系统中包括缓存模块和闪存模块,其特征在于,所述缓存模块包括读缓存模块和写缓存模块以及映射表缓存模块,其中,

所述读缓存模块包括,

数据页缓存模块,用于存储完整的数据页;

纠错码页缓存模块,用于存储纠错码页;

纠错码单元缓存模块,用于存储单个的纠错码单元;

所述写缓存模块包括,

数据缓存模块,用于存储完整的数据页;

映射缓存模块,用于存储地址映射表;

所述闪存模块包括,

数据模块,用于存储完整的数据页;

纠错码模块,用于集中存储过长的纠错码单元;

映射模块,用于存放地址映射表,记录逻辑数据页到闪存数据页和纠错码页的映射关系。

以此方式,使得在读和/或写访问操作时可通过访问数据页缓存区中的完整逻辑数据页、纠错码缓存区中的过长纠错码或纠错码页中的过长纠错码而命中访问请求的用户数据页或过长纠错码,以及对闪存中的纠错码页按照数据页组进行批量更新,从而提升访问命中率,降低闪存的访问开销。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:

1)本发明技术方案的纠错码优化处理方法,通过将多个连续的逻辑数据页划分为一个数据页组,在缓存中按照访问频率和新近程度存储数据页、过长的纠错码,在闪存中将一个数据页组的过长纠错码存储在一个数据页中的方式,节省了读写访问时间,避免了过长纠错码跨页存储在闪存中所带来的读放大和高访问开销问题,优化了固态盘的整体性能;

2)本发明技术方案的纠错码优化处理方法,通过在固态盘的缓存和闪存区域分别设置单独的区域,将部分纠错码存储在缓存和闪存上,改善了闪存页提供的冗余空间不足,难以存储全部纠错码的问题,增强了固态盘的系统稳定性;

3)本发明技术方案的读方法,其利用了上述纠错码优化处理方法,将热数据的完整数据页和温数据的过长纠错码分别存储在读缓存专门的区域里,在进行读操作的时候,通过直接访问缓存的完整数据页或过长纠错码,减少了闪存的访问频率和跨页访问开销,提升了读取效率和缓存的命中率;

4)本发明技术方案的写方法,其采用两级结构形式,将同属于一个数据页组的缓存页组织在一起,当写缓存未命中发生替换操作时,对同一个数据页组的所有缓存页进行纠错码编码,提取每个缓存页过长的纠错码,并批量更新到闪存上对应的ecc页上,能够提高系统的写性能;

5)本发明技术方案的固态盘系统,其利用了上述纠错码优化处理方法,解耦数据页和过长纠错码的存储,优化了读、写缓存算法,通过缓存过长的纠错码来提高缓存命中率,通过批量写回多个数据页的过长纠错码来减小更新开销,进而提高系统的整体性能,延长固态盘的寿命。

附图说明

图1是本发明实施例的nandflash芯片层次结构示意图;

图2是本发明实施例的固态盘系统中的纠错码管理和性能优化的方法设计结构图;

图3是本发明实施例的方法的读写缓存响应i/o请求的基本流程图;

图4是本发明实施例的过长纠错码的结构示意图;

图5是本发明实施例的逻辑数据页组及其对应的纠错码页示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

固态盘系统中,数据信息一般是以数据页的形式进行存储。数据页(也称为逻辑数据页),是固态盘系统中信息存储的基本单元。闪存页的物理存储空间分为数据区和备用区,备用区用于存放数据对应的纠错码和一些元数据。由于闪存的比特错误率随着存储密度的上升和擦写周期的提高而增高,为保证数据存储的高可靠性和长久性,固态盘中需要采用校验码字更长的强力纠错码。当采用校验码字长的强力纠错码时,一个逻辑数据页对应的纠错码长度大于备用区用于存放纠错码的空间大小,将过长而无法存储在备用区的纠错码部分称为一个逻辑数据页的“过长的纠错码单元”。图4即为过长纠错码结构示意图。当这些纠错码超过一定长度后,闪存页提供的冗余空间可能不足以存储全部的纠错码,从而导致一个数据页的纠错码跨页存储在两个闪存页上,带来了更大的访问开销。

本发明的固态盘系统中纠错码的优化处理方法及其应用,其对固态盘系统中纠错码的管理和存储进行了特别的设置,提升了固态盘系统的读写效率,并提高了固态盘的稳定性。下面结合本发明的实施例进行说明。

如图1所示实施例的nandflash芯片层次结构示意图。针对现有技术存在的缺陷,本发明提出了一种高效的纠错码管理机制,用来解耦数据页和过长纠错码的存储,优化读、写缓存算法,通过缓存过长的纠错码提高缓存命中率,以及通过批量写回多个数据页的过长纠错码来减小更新开销,进而提高系统的整体性能,延长固态盘(ssd)的寿命。

本发明的一个优选实施例的结构设计图如附图2所示,将多个连续的逻辑数据页划分为一个数据页组,将组内多个数据页过长的纠错码单元聚集存储在专门的闪存页,称之为纠错码页。具体的,分组是根据不同纠错码的码率,纠错码算法进行的。不同纠错码算法或者不同码率产生过长的纠错码长度不一致。例如,一个数据页8kb,如果采用码率0.8的纠错码编码,过长的纠错码就是1kb,即8个连续数据页作为一个分组,如果码率是0.84,过长的纠错码可能是2k,那么就是4个连续的数据页作为一个分组。也就是说,对连续逻辑数据页的分组是根据纠错码的长度来进行的,过长纠错码的长度又是根据不同的纠错码算法和纠错码码率等因素决定的。如图5所示,多个逻辑上连续的数据页组成一个逻辑页组,它们的过长的纠错码单元集中存储在一个单独的闪存页中,称之为“纠错码页”。纠错码块(ecc块)即纠错码页所在的闪存块。

对应附图2上的闪存模块,闪存上的块分为三种,依次为,数据块:用于存储用户数据和部分纠错码(ecc);纠错码块(ecc块):用于集中存储过长的纠错码单元(ecc单元),且每个数据页组对应其上一个闪存页,该闪存页上存储了该数据页组的全部逻辑数据页的过长纠错码;映射块:存放地址映射表,记录逻辑数据页到闪存数据页和纠错码页(ecc页)的映射关系。

固态盘系统中通常包含有大量的连续逻辑数据页,在访问的时候,通常需要去闪存中读取,这种访问方式带来了大量的访问开销。本发明技术方案中,先将逻辑数据页划分为多个连续的逻辑数据页组,每个逻辑数据页组内又包含有若干个连续的逻辑数据页。针对上述逻辑数据页组,将其中的逻辑数据页的过长纠错码集中起来,存储在一个闪存页上,作为纠错码页。

在本发明的优选实施例中提出一种读缓存管理算法,对应附图2中的读缓存模块。其中,对于近期频繁读取的热数据,缓存完整的数据页;对于近期较为频繁读取的数据,缓存其过长的纠错码。在缓存近期较为频繁读取的数据时,对于顺序访问,缓存完整的ecc页,通过预取提升读缓存命中率。预取是提前将同一个组的ecc页置入读缓存中,这样的话,载入完整的ecc页不会引入额外的访存开销,因为闪存是以页为单位进行读写的,对于同一个数据页组的读请求操作以及写操作更新ecc页引起的读操作,两者读取的ecc单元均可在读缓存中命中,从而可以提升系统的读性能。对于随机访问,缓存单个的纠错码单元。虽然命中缓存的纠错码单元也会带来闪存访问开销,但由于纠错码单元小于逻辑页,缓存纠错码单元还是能够显著提高缓存命中率。换而言之,针对热数据,缓存其完整数据页;对于温数据,缓存其过长纠错码。这种缓存方式中,对于近期访问过的数据,针对热数据和温数据采取不同的存储方式,可以有效减少读取时间;只有对于近期未读取过的数据,才会在闪存上读取对应的纠错码页,进而确定相应的纠错码。通过这种访问结构的设置,优化了纠错码在固态盘系统中的存储,并进一步优化固态盘性能。

本发明技术方案的实施例,在进行具体的读访问的时候,如果缓存中数据页缓存区的命中请求的用户数据页,可以直接在缓存中读取对应的完整的数据页,或者,缓存中纠错码缓存区的命中请求的用户数据页的纠错码,则可以读取相应的纠错码;如果缓存中未命中请求的用户数据页,则需要直接从闪存上读取对应的纠错码页,获取请求的用户数据页对应的纠错码单元,并进一步地获得请求的用户数据页。这种访问方式,不需要对大量的数据页进行访问以确定目标,只需要访问缓存和闪存内的纠错码页,节省了访问时间,一定程度上避免了跨闪存页读取数据页时所带来的读放大和高访问开销问题,优化了固态盘的整体性能。

在本发明的优选实施例中设计了一种两级结构的写缓存,对应附图2中的写缓存模块。其中,第一级结构是将连续的逻辑页划分为一个数据页组,以组为单位的逻辑节点,第二级结构由各个组下对应的逻辑页组成。当发生写请求时,首先在第一级结构中判断缓存是否命中,若命中,则更新写缓存中对应的数据页,返回写请求结果;若不命中且缓存满时,在第二级结构发生替换操作,根据替换算法选择一个逻辑数据页,将它所在数据页组的所有缓存页进行纠错码编码,并提取出每个缓存页过长的纠错码单元。最后,在向闪存写回替换逻辑数据页的同时,将提取出的纠错码单元批量更新到对应的纠错码页(ecc页)中。也就是说,如果一次写操作所请求访问的数据页位于缓存中,那么完成写操作后,该数据页仍然置于缓存中,没有写入闪存。如果每一次的写操作都立即更新闪存,那么每向闪存写入一个数据页,就需要更新一个纠错码,即需要更新一次纠错码页,这将带来极大的访问开销。而本发明技术方案的实施例中,采取两级结构,如果写访问命中的数据页位于缓存中,完成写操作后,该数据页仍然存放在写缓存中,没有立即更新到闪存中去,如果缓存中没有命中访问请求的数据页,在进行数据页替换的时候一次性将被替换出去的数据页及其所在数据页组对应的纠错码页批量更新到闪存中去。这种二级结构设计,可以保证发生写缓存命中的同组数据页更新的纠错码单元都能一次性被写入闪存上。这样一次对纠错码页(ecc页)的更新即可以保证在闪存上的纠错码页(ecc页)为最新,缓解了缓存替换在闪存引发的纠错码页(ecc页)多次更新操作的问题,而且对于整个替换操作来说,只会发生一个数据页组及其对应的纠错码页(ecc页)的写入,节省了数据页与纠错码页的替换开销。

在本发明的优选实施例中,结合图3来说明该方法在具体实施时,主要的步骤如下:

(1)下发的i/o请求被转化为以闪存页为单位的页级请求,判断请求类型,如果是读请求转(2),否则,转(8);

(2)扫描写缓存,判断访问逻辑页是否被缓存,即缓存是否命中,若命中,则从写缓存中取出对应的数据页并返回读请求结果,否则,转(3);

(3)扫描读缓存,判断访问逻辑页是否被缓存,即缓存是否命中,若命中,则从读缓存中取出对应的数据页并返回读请求结果,否则,转(4);

(4)根据映射表查找该请求对应闪存上的地址,即物理地址,从闪存上读取数据页,扫描读缓存,判断数据页对应的过长纠错码(ecc单元)是否被缓存,如果被缓存,即缓存ecc单元命中,则读取读缓存中的纠错码单元(ecc单元),转(6),否则转(5);

(5)从闪存上读取请求对应的ecc页,译码后并获取纠错码页(ecc页)中请求对应过长的纠错码单元(ecc单元)(不考虑ecc页的纠错码,假定ecc页的纠错码oob空间足够存放,无过长ecc);

(6)将数据页和纠错码单元(ecc单元)送入纠错码(ecc)译码器,进行纠错码(ecc)译码,获得请求的用户数据页;扫描读缓存数据区域和纠错码区域,判断读缓存中是否有足够多的空位去存放请求的用户数据页或者纠错码单元,即缓存是否已满,如果已满,需要进行缓存替换操作,根据缓存替换算法替换一个数据页或者纠错码单元,并丢弃替换出来的数据页或者纠错码单元,否则,转(7);

(7)将译码获得请求的用户数据页载入读缓存数据区域中,将用户数据页对应的纠错码单元载入读缓存的纠错码区域,并返回读请求结果;

(8)扫描读缓存,判断访问逻辑页是否被缓存,即缓存是否命中,若命中,则转(9),否则,转(10);

(9)判断写请求写入的数据是整页写还是部分页写,若是部分页写,从读缓存中取出命中的数据页,剔除缓存中对应的纠错码单元,将数据页从读缓存移到写缓存,与更新写入的数据页凑成完整一页,否则,从读缓存中剔除命中数据页及对应过长的纠错码单元;

(10)扫描写缓存,判断访问逻辑页是否被缓存,即缓存是否命中,若命中,则更新写缓存中对应的数据页并返回写请求结果,否则,转(11);

(11)判断写缓存中是否有足够多的空位去存放写入的逻辑页,即写缓存是否已满,如果已满,需要进行写缓存替换操作,转(12),否则,转(14);

(12)根据缓存替换算法替换一个数据页,并找到它所在的数据页组;

(13)对数据页组内所有的数据页进行纠错码编码,获得过长的纠错码单元,并聚集成一个纠错码页,向闪存上写入替换的数据页和对应的纠错码页,返回写请求结果;

(14)将写请求下发的数据页写入缓存中,返回写请求结果。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

完整全部详细技术资料下载
当前第1页 1  2 
相关技术
  • 存储器系统、存储器阵列及其读...
  • 一种基于flash存储器的微...
  • 一种歌词显示方法与流程
  • 一种音频播放的方法及终端与流...
  • 一种用于确定AR视频的识别图...
  • 一种DVD光驱功能测试方法与...
  • 双端口静态存储器的写辅助电路...
  • 一种语音输入的地理信息采集装...
  • 基于Cortex‑M3内核的...
  • 一种伪器件辅助灵敏放大器电路...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
固态硬盘优化相关技术
  • 通过追踪和利用二级映射索引重复利用固态驱动器块的制作方法
  • 用于固态光源的驱动器电路的制作方法
  • 建立降压或升压操作的固态光源驱动器的制造方法
  • 具有混合控制功率开关的固态照明驱动器的制造方法
  • 用于固态灯的驱动器的制作方法
  • 用于固态灯的驱动器的制作方法
  • 使用固态驱动器的视频点播服务方法
  • 固态发光系统和用于驱动发光半导体器件的驱动器集成电路的制作方法
  • 用于固态光源的谐振驱动器的制造方法
  • 固态照明驱动器电路以及相关软件的制作方法

深圳坪山网站建设公司网站链接优化怎么做织梦的网站能优化么海南网站优化排名厂家报价上海网站优化排名平台烟台做网站优化哪家好武汉网站如何优化流量亳州网站推广优化哪家价格便宜中山网站综合优化咨询南京网站内页优化网站的优化交错云速捷好的网站优化需要多少钱中堂五金网站制作优化湘潭企业网站优化推广网站排名优化软件找选火11星搜索引擎优化网站分析六安网站优化多少钱前端怎么优化自己网站国内网站优化系统加盟平台中山优化网站转化型网站的优化辽源网站优化费用多少邢台网站优化的价格汕尾资深的免费网站优化济南优化网站有哪些网站内部链接优化怎么设置福田网站优化价格河津网站优化哪家强网站优化有哪些坪地网站优化公司流程网站建设优化一年赚几十万香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化