一种固态硬盘地址映射的方法技术

技术编号:22166533 阅读:38 留言:0更新日期:2019-09-21 10:25
本发明专利技术公开了一种固态硬盘地址映射的方法,包括以下步骤:步骤S1:在SRAM中建立CMT、GMT、CMTnum和GTD;步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;步骤S3:服务连续写请求时,将连续映射项合并成一条插入到CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;步骤S4:服务连续读请求时,若在CMT中未找到该映射记录,则查询SRAM中GMT,若仍未找到,将闪存中对应GMT加载到SRAM中。与现有技术相比,本发明专利技术中将多条连续映射记录合并成一条插入到CMT中,降低对缓存槽的占用;批量剔除CMT中映射项,降低GMT更新频率;SRAM中GMT服务文件系统的空间局部性请求,提高对连续数据的处理能力。

A Method of Address Mapping for Solid State Hard Disk

【技术实现步骤摘要】
一种固态硬盘地址映射的方法
本专利技术涉及数据存储领域,尤其涉及一种固态硬盘地址映射的方法。
技术介绍
固态硬盘(SolidStateDriver,SSD)采用半导体作为存储介质。其无需依赖任何机械装置、不需要寻道,从而降低了I/O请求访问延迟,同时以功耗低、抗震防摔、体积小等优点逐渐取代机械硬盘。SSD大多将闪存(NANDFlash)作为存储媒介,NANDFlash的存储方式依赖其物理特性,现有文件系统不能直接访问或操作SSD,为使现有文件系统无需做任何改动就能直接访问SSD,SSD使用软件的形式把对NANDFlash的操作模拟成对磁盘的操作,软件层称为闪存转换层(FlashTranslationLayer,FTL)。FTL存在于文件系统和NANDFlash之间,隐藏了现有闪存的一些物理特性,并只向文件系统暴露可操作的逻辑块地址,而逻辑块地址到物理块地址之间的转换,全由FTL来完成。SSD控制器利用FTL去管理NANDFlash阵列,使得数据的存储得到了保障。FTL算法对整个SSD来说至关重要,且FTL的优劣将直接影响到整个产品的性能。其中地址映射是整个FTL的重要组成部分,它负责将文件系统下发的所有逻辑块地址转换成NANDFlash可识别的物理块地址,同时在逻辑块地址与物理块地址之间建立某种映射关系,映射关系会存放到映射表中,供后续查询及更改。当文件系统再次需要对指定逻辑块地址进行读写操作时,FTL首先会在映射表中查询对应的映射关系,根据映射关系找到NANDFlash对应的物理块地址,从而服务文件系统相应的请求。在现有地址映射算法中,基于需求的页级映射算法(DFTL)保留了传统页级映射算法的高效性和灵活性,将所有的映射记录全部保存到NANDFlash中,文件系统需要访问某个逻辑页时,根据其需求加载相应的一部分映射表到SRAM中来服务此请求,这种基于需求的策略极大地降低了映射表对SRAM的占用。DFTL算法将物理块划分为两大类:(1)数据块,(2)全局转换块。DFTL将文件系统下发的数据写入到数据块中;将页级映射表写入到全局转换块中,页级映射表中存储的是从逻辑页LPN=0一直到逻辑页LPN=MaxLPN的连续映射信息。若NANDFlash的物理页数量较多,导致页级映射表的容量较大,一个物理块可能无法保存整张页级映射表,此时需要多个物理块作为全局转换块。但全局转换块仅占用整个NANDFlash总容量的2%左右,其余均为数据块,不会影响到用户的使用空间。全局转换块中的物理页称为全局映射表(GlobalMappingTable,GMT),同时设计了全局转换目录(GlobalTranslationDirectory,GTD)来记录所有GMT的物理地址,通过GTD来查找对应的GMT从而找到所需的映射信息。通过基于需求的地址映射,解决了页级映射表过大的问题,同时也将页级映射的灵活性保留下来。另外,DFTL根据文件系统的时间局部性,即在一段时间内可能再次访问之前所访问过的内容,设计了缓存映射表(CacheMappingTable,CMT),来缓存文件系统最近访问过的记录,减少GMT的读写次数,提高整个系统的读写性能。但DFTL仍然存在一定的缺陷从而限制了整体性能:1、文件系统的请求通常具有时间局部性和空间局部性两大特性,若是能同时考虑这两大特性,可减少系统请求之外的额外操作,提高整个系统的响应能力与性能。DFTL中设计的CMT采用LPU链式算法,合理利用了文件系统请求的时间局部性,但CMT中每一条映射项都是独立存在的,前后不存在逻辑空间上的连续,因此DFTL对于文件系统的连续请求的处理能力较差。2、CMT的剔除策略开销过大。CMT根据LRU算法将最久未访问到的映射信息进行剔除,若此映射在CMT中发生了更新,需要将对应的GMT进行更新,保证每一条映射信息都是有效的。每当CMT需要剔除一条更新后的映射信息都需要将NANDFlash中对应的某个GMT进行更新,频繁剔除此类映射信息,就需要频繁更新对应的GMT,严重影响整个系统的性能,同时也增大了写放大。因此,怎样才能让FTL能够快速处理文件系统的连续请求以及优化CMT的剔除策略,降低全局转换页的更新频率,提升整体系统的性能,是目前急需解决的关键技术。故,针对现有技术的缺陷,实有必要提出一种技术方案以解决现有技术存在的技术问题。
技术实现思路
有鉴于此,确有必要提供一种固态硬盘地址映射的方法,提高固态硬盘的连续读写能力,同时优化一级缓存CMT的剔除策略,降低全局转换页的更新频率,提升FTL的寻址效率,从而提高固态硬盘的性能。为了克服现有技术存在的技术缺陷,本专利技术的技术方案如下:一种固态硬盘地址映射的方法,其特征在于,包括以下步骤:步骤S1:在SRAM中建立CMT、GMT、CMTnum和GTD;步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;步骤S3:服务连续写请求时,将连续映射项合并成一条插入到CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;步骤S4:服务连续读请求时,若在CMT中未找到该映射记录,则查询SRAM中GMT,若仍未找到,将闪存中对应GMT加载到SRAM中。作为优选的技术方案,所述的映射表至少需要包括一级缓存CMT、二级缓存GMT、CMT记录表CMTnum和全局转换目录GTD。作为优选的技术方案,CMTnum是为了辅助优化CMT而设计,CMTnum以数组的形式来实现。数组下标表示GMT编号;数组值为计数值,表示CMT中有多少条映射记录属于当前GMT。作为优选的技术方案,每向CMT中新插入一条映射记录之前,首先判断CMT缓存槽是否已满,若缓存槽已满,取出CMTnum中最大计数值的数组下标,批量剔除CMT中所有属于该数组下标所代表GMT编号的映射记录。作为优选的技术方案,一级缓存CMT缓存最近写请求所产生的映射记录。作为优选的技术方案,一级缓存CMT最大可缓存1024条映射记录。作为优选的技术方案,当服务连续写请求时,可将多条连续映射记录合并成一条映射记录,并用LEN属性表示其映射长度。作为优选的技术方案,二级缓存GMT是缓存保存在NANDFlash中的部分连续映射记录。作为优选的技术方案,CMT中增加了LEN属性,可使多条连续映射记录合并成一条,并用长度来表示。作为优选的技术方案,CMTnum是为了辅助优化CMT而设计的,CMTnum是以数组的形式来实现,数组下标表示GMT的编号,数组值表示CMT中有多少条映射单元属于当前GMT。作为优选的技术方案,每向CMT中新插入一条映射记录后,计算该映射记录对应的GMT编号,并更新CMTnum中对应计数值。作为优选的技术方案,GTD是记录所有GMT在闪存中的物理地址。作为优选的技术方案,缓存到内存中的GMT分为WGMT和RGMT。作为优选的技术方案,当服务连续读请求且所请求的映射记录不存在于一级缓存CMT中,查询二级缓存GMT,若二级缓存GMT中存在其映射记录,即可一次性服务该连续读请求。作为优选的技术方案,若二级缓存GMT仍未找到该映射记录,则根据GTD找到对应的GMT,将该GMT加载到WGMT或RGMT中,即可一次性服务该连本文档来自技高网
...

【技术保护点】
1.一种固态硬盘地址映射的方法,其特征在于,包括以下步骤:步骤S1:在SRAM中建立映射表,所述的映射表至少包括一级缓存CMT、二级缓存GMT、CMT记录表CMTnum和全局转换目录GTD;步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;步骤S3:服务连续写请求时,将连续映射项合并成一条插入到CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;步骤S4:服务连续读请求时,若在CMT中未找到该映射记录,则查询SRAM中GMT,否则,将闪存中对应GMT加载到SRAM中;其中,CMTnum用于辅助优化CMT,CMTnum采用数组的形式来;数组下标表示GMT编号;数组值为计数值,表示CMT中有多少条映射记录属于当前GMT;在步骤S2中,若CMT缓存槽已满,取出CMTnum中最大计数值的数组下标,批量剔除CMT中所有属于该数组下标所代表GMT编号的映射记录。

【技术特征摘要】
1.一种固态硬盘地址映射的方法,其特征在于,包括以下步骤:步骤S1:在SRAM中建立映射表,所述的映射表至少包括一级缓存CMT、二级缓存GMT、CMT记录表CMTnum和全局转换目录GTD;步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;步骤S3:服务连续写请求时,将连续映射项合并成一条插入到CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;步骤S4:服务连续读请求时,若在CMT中未找到该映射记录,则查询SRAM中GMT,否则,将闪存中对应GMT加载到SRAM中;其中,CMTnum用于辅助优化CMT,CMTnum采用数组的形式来;数组下标表示GMT编号;数组值为计数值,表示CMT中有多少条映射记录属于当前GMT;在步骤S2中,若CMT缓存槽已满,取出CMTnum中最大计数值的数组下标,批量剔除CMT中所有属于该数组下标所代表GMT编号的映射记录。2.根据权利要求1所述的固态硬盘地址映射的方法,其特征在于,一级缓存CMT缓存最近写请求所产生的映射记...

【专利技术属性】
技术研发人员:樊凌雁王勇李开成
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1