当前位置: 首页 > 专利查询>深圳大学专利>正文

一种基于Ondemand算法的叠瓦式磁质存储翻译层映射表管理方法技术

技术编号:13769994 阅读:80 留言:0更新日期:2016-09-29 07:59
本发明专利技术公开了一种基于Ondemand算法的叠瓦式磁质存储翻译层映射表管理方法,当需要进行读操作时,通过LBA查询缓存表LPT_stack,若缓存表中存在相应的映射表项,则获取相应的PBA,并通过查询记录逻辑条带到物理条带的映射表获得实际物理块号后直接读取数据即可;若缓存中未找到对应的映射项,则通过查找磁盘中映射表将与该映射表项所在扇区的所有映射表项放入缓存中;查找磁盘中映射表为:计算LBA‑>PBA映射项存放的条带号band_num,在存储映射表的对应条带中查找相应的映射项,并以扇区为单位将磁盘中的一个扇区大小的映射表项以LPT_stack表节点的形式压入栈顶中;在将从磁盘中读取的映射表项压入栈顶之前,若缓存中的映射表没有足够空间容纳新的映射表项,则将LPT_stack表中的映射表项移出。

【技术实现步骤摘要】

本专利技术属于计算机领域,更具体地,涉及一种基于Ondemand算法的STL(shingled magnetic record translation layer叠瓦式磁质存储翻译层)映射表管理方法。
技术介绍
对于采用盘块映射表技术,来管理逻辑与物理空间映射关系的SMR(Shingled Magnetic Recording)磁盘,在每次操作系统向磁盘申请读写操作时,需要查询映射表,将逻辑盘块号映射成物理盘块号。现有技术直接将映射表导入内存中,导致空间、时间性能较低,具体局限性有如下两个方面:(1)内存与磁盘交换数据较慢,将映射表直接从磁盘导入内存,或将内存数据写入磁盘,延迟时间较长。(2)一方面相对于维护管理磁盘空间的映射表,内存容量较小;另一方面,磁盘上数据访问具有空间局部性和时间局部性。一次性将映射表导入内存,严重影响内存空间利用率和计算机的整体性能。
技术实现思路
针对现有技术的缺陷,本专利技术提供了一种基于Ondemand算法的STL映射表管理方法,其目的在于通过降低映射表对内存的占用率,提高对映射表的整体访问性能,来提高系统对磁盘数据的访问性能,旨在解决现有技术中一次性将映射表导入内存,严重影响内存空间利用率和计算机的整体性能的问题。本专利技术提供了一种基于Ondemand算法的STL映射表管理方法,当需要进行读操作时,通过LBA查询缓存表LPT_stack,若缓存表中存在相应的映射表项,则获取相应的PBA,并通过查询BMT表获得实际物理块号后直接读取数据即可;若缓存中未找到对应的映射项,则需要通过查找磁盘中映射表将与该映射表项所在扇区的所有映射表项放入缓存中;当需要进行写操作时,先计算LBA所在的LBN,以LBN为索引查找BMT表后获得PBN;若没有PBN,则直接分配数据条带;否则,查看对应数据条带是否有空间写入数据块,若有,则直接写入;否则,对该数据条带进行擦除操作,释放无效数据块,并将数据写入对应条带中;当写入数据后,修改相应的映射表项。更进一步地,所述查找磁盘中映射表的过程具体为:计算LBA->PBA映射项存放的条带号band_num,在存储映射表的对应条带中查找相应的映射项,并以扇区为单位将磁盘中的一个扇区大小的映射表项以LPT_stack表节点的形式压入栈顶中。更进一步地,在所述将与该映射表项所在扇区的所有映射表项放入缓存步骤之前还包括如下步骤:在将从磁盘中读取的映射表项压入栈顶之前,若缓存中的映射表没有足够空间容纳新的映射表项,则将LPT_stack表中的映射表项移出。更进一步地,采用LRU(least recently used,最近最少使用算法)算法;该算法通过“栈”形式对数据进行组织,在“栈”中,栈顶元素为最近使用的元素,栈底元素为当前最久未被使用的元素。因此,本算法将栈底元素从内存移动到磁盘中,若节点“修改标志”为“1”,则写入磁盘;否则,直接移出节点。更进一步地,在所述将与该映射表项所在扇区的所有映射表项放入缓存步骤之后还包括将映射表项写回磁盘步骤:计算LPT_stack表的节点对应的磁盘上的条带号band_num,根据条带号找到相应条带,并判断该条带是否有空间,若有空间,则直接将节点上存储的一个扇区大小的映射表项存入磁盘中;否则,先对该条带进行擦除操作,将缓存中节点存储的映射表项写回该条带。更进一步地,在完成写操作之后还包括条带擦除步骤:(1)从条带上最后一个存储映射表项的扇区开始,向前扫描条带,扫描到的映射表项存入擦除缓存中进行暂存;(2)对于每个扫描到的映射表项的LBA,若该LBA在擦除缓存中已存在,则该表项不存入擦除缓存中;否则存入擦除缓存中;(3)重复步骤(2),直到扫描完该条带的第一个扇区;(4)从该条带第一个扇区开始,将暂存在擦除缓存中的表项写回磁盘条带中。更进一步地,所述修改相应的映射表项的过程具体为:查看缓存中的LPT_stack表是否有对应表项,若有,则修改映射表项;否则,直接添加新的映射表项到对应的节点。更进一步地,所述对该数据条带进行擦除操作的过程具体为:将该数据条带对应的逻辑地址到物理地址的映射表项读入内存,然后根据映射表项读取数据条带的有效数据块到擦除缓存中;当读完有效数据后,再将数据从原数据条带的第一个扇区开始,顺次写入原数据条带,并修改相应的映射表项;再修改BMT表相应表项的tail字段。本专利技术根据数据访问的局部性特点,通过引入了映射表缓冲层,将最近经常访问的映射表项缓存,一方面提高了对常用映射表的查找速度,减少内存与磁盘数据的交换时间,另一方面,减小了映射表对内存的占用,从而提高系统的整体性能。另外,在映射表逻辑存储及其操作方面,根据逻辑块号LBA,直接计算得出存储其对应的映射表项的条带号和存储数据的逻辑数据条带号,再根据BMT表中的映射找到实际数据条带号,通过两个映射表的管理,使对映射表和数据的管理更加灵活。同时,存放映射表和数据的条带利用率均未达到100%,这样做可以有效防止因为对磁盘数据频繁修改,而导致磁盘做频繁擦除操作,减少了访问磁盘数据的响应时间。磁盘与映射表缓存之间的数据交换基本单位为扇区,一方面符合磁盘读写特性,另一方面,根据局部性特点,在下一次访问中,系统访问上次被访问映射表项所在扇区的映射表项可能性较大,加速了映射表访问速度。附图说明图1是本专利技术实施例提供的基于Ondemand算法的STL映射表管理方法中读操作实现流程图;图2是本专利技术实施例提供的基于Ondemand算法的STL映射表管理方法中磁盘查找LBA->PBA映射项实现流程图;图3是本专利技术实施例提供的基于Ondemand算法的STL映射表管理方法中换入、换出LBA->PBA映射项实现流程图;图4是本专利技术实施例提供的基于Ondemand算法的STL映射表管理方法中将LPT_stack表中的映射表项写入磁盘实现流程图;图5是本专利技术实施例提供的基于Ondemand算法的STL映射表管理方法中写操作实现流程图;图6是本专利技术实施例提供的基于Ondemand算法的STL映射表管理方法中修改映射表项实现流程图;图7是本专利技术实施例提供的基于Ondemand算法的STL映射表管理方法中擦除回收数据实现流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术主要采用了以下两个方面对映射表的管理进行了改进:(1)对物理结构进行修改,一方面减少磁盘映射表对内存空间的占用,另一方面,提高对高频访问数据对应映射表项的访问速度。(2)修改映射表逻辑存储结构,方便映射表项读写操作,加速映射表访问。本专利技术在原技术的基础上,基于ondemand算法改变了存储的物理层结构,在内存和磁盘之间加入映射表缓冲层,将最近经常访问的映射表存入缓存中,采用LRU算法,将最近使用频度最小的映射表项写回至磁盘中。另外,在映射表的逻辑存储结构及其操作上,本专利技术分别对缓存和磁盘中的映射表进行管理,两种存储介质以“扇区”为单位进行映射表项的数据交换。具体地:(1)缓存中的映射表以“栈”的逻辑形式组织,每个节点存储一个扇区大小的若干映射表项。最近访问的映射表项位本文档来自技高网...

【技术保护点】
一种基于Ondemand算法的STL映射表管理方法,其特征在于,当需要进行读操作时,通过LBA查询缓存表LPT_stack,若缓存表中存在相应的映射表项,则获取相应的PBA,并通过查询BMT表获得实际物理块号后直接读取数据即可;若缓存中未找到对应的映射项,则需要通过查找磁盘中映射表将与该映射表项所在扇区的所有映射表项放入缓存中;当需要进行写操作时,先计算LBA所在的LBN,以LBN为索引查找BMT表后获得PBN;若没有PBN,则直接分配数据条带;否则,查看对应数据条带是否有空间写入数据块,若有,则直接写入;否则,对该数据条带进行擦除操作,释放无效数据块,并将数据写入对应条带中;当写入数据后,修改相应的映射表项。

【技术特征摘要】
1.一种基于Ondemand算法的STL映射表管理方法,其特征在于,当需要进行读操作时,通过LBA查询缓存表LPT_stack,若缓存表中存在相应的映射表项,则获取相应的PBA,并通过查询BMT表获得实际物理块号后直接读取数据即可;若缓存中未找到对应的映射项,则需要通过查找磁盘中映射表将与该映射表项所在扇区的所有映射表项放入缓存中;当需要进行写操作时,先计算LBA所在的LBN,以LBN为索引查找BMT表后获得PBN;若没有PBN,则直接分配数据条带;否则,查看对应数据条带是否有空间写入数据块,若有,则直接写入;否则,对该数据条带进行擦除操作,释放无效数据块,并将数据写入对应条带中;当写入数据后,修改相应的映射表项。2.如权利要求1所述的STL映射表管理方法,其特征在于,所述查找磁盘中映射表的过程具体为:计算LBA->PBA映射项存放的条带号band_num,在存储映射表的对应条带中查找相应的映射项,并以扇区为单位将磁盘中的一个扇区大小的映射表项以LPT_stack表节点的形式压入栈顶中。3.如权利要求2所述的STL映射表管理方法,其特征在于,在所述将与该映射表项所在扇区的所有映射表项放入缓存步骤之前还包括如下步骤:在将从磁盘中读取的映射表项压入栈顶之前,若缓存中的映射表没有足够空间容纳新的映射表项,则将LPT_stack表中的映射表项移出。4.如权利要求3所述的STL映射表管理方法,其特征在于,采用LRU算法将栈底节点移出至磁盘中,若节点“修改标志”为“1”,则写入磁盘;否则,直接移出节点。5.如权利要求3所述的STL映射表管理方法,其特征在于,在所述将与该映射表项所在扇区的所有映射表项放入缓存步骤之后还包括将映射表项写回磁盘步骤:计算LPT...

【专利技术属性】
技术研发人员:王毅张明旭杨烜董丽莎毛睿李荣华廖好
申请(专利权)人:深圳大学
类型:发明
国别省市:广东;44

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

1