一种软件定义的固态盘融合存储方法技术

技术编号:10009483 阅读:235 留言:0更新日期:2014-05-07 16:05
本发明专利技术公开了一种软件定义的固态盘融合存储方法,在主机端增加主机端融合存储层HFSL(Host Fusion Storage Layer),直接获取固态盘的物理块特性以及使用过程中的统计信息,结合上层数据访问特点进行固态盘的复杂IO调度及管理,以及分配粒度可变的地址映射方法实现固态盘持久化的高性能。本发明专利技术在主机端实现对NAND FLASH的性能优化以及PCM与NAND FLASH融合的存储管理,利用PCM优秀的性能弥补NAND FLASH的性能缺点,可提高固态盘读写性能以及使用寿命。

【技术实现步骤摘要】
一种软件定义的固态盘融合存储方法
本专利技术属于计算机数据存储领域,具体涉及一种软件定义的固态盘融合存储方法。
技术介绍
近些年来,基于NANDFLASH的固态盘飞速发展,已经逐渐取代传统的机械硬盘。NANDFLASH芯片制程工艺不断提高,从2008年的25nm制程到现在的10nm制程,性能不断提高。然而NANDFLASH的磨损次数有限,小写性能差,不支持原地修改等缺陷仍然限制了它的性能。现有的基于NANDFLASH的固态盘,基本上都是利用固态盘中的固件程序屏蔽NANDFLASH的缺点,提供类似磁盘的块设备接口供主机端使用。主机端完全把固态盘看成一个黑盒子,不管其物理特性而直接使用。虽然这是最简单,也是最快的取代传统机械硬盘的方法,但是这存在严重的缺点。例如,在主机端针对机械磁盘设计的IO调度算法将不适用于固态盘,针对机械磁盘设计的文件系统也将不适用于固态盘;由于NANDFLASH的读写操作单位是Page(最小2KB)单位,传统以磁盘扇区大小(512B)为单位的请求发送到固态盘中,导致在固态盘中需要额外的处理请求的合并与分发,降低了存储速度;主机端无法获取固态盘的物理特性、磨损状况、使用信息,无法在文件的管理、地址空间的分配上进行性能优化。除此之外,由于固态盘的控制器需对NANDFLASH进行缺点屏蔽和性能优化,占用了大量的嵌入式系统有限的资源,这是非常不划算的,且因不知主机端数据的特点使得性能提升受限。因此需要重新考虑基于NANDFLASH的固态盘的存储结构设计,向主机暴露更多的物理特性及使用信息,使主机不能再完全把固态盘看成黑盒子,而看成一个灰盒子。Fusion-io公司提出了一种VSL(VisualStorageLayer)层,同样把固态盘看成灰盒子,把FTL(FlashTranslationLayer闪存转换层)放在主机端驱动程序下实现,获取了很大的性能提高。但VSL是驱动程序与FTL的结合,实际上到达驱动程序层的IO请求已经不具备那么多的数据属性,在驱动程序中不能有效的针对固态盘的物理特性做优化,并且文件系统层仍然是无法获得固态盘的物理特性及磨损状况等统计信息,限制了固态盘的性能提升。目前除了上述的高性能的NANDFLASH存储芯片,新型的非易失存储芯片的发展也非常快,特别是PCM(PhaseChangeMemory,相变存储器),现在美光公司已经生产有1GB大小的PCM存储芯片。PCM相对于NANDFLASH有很多优势,最特突出的就是PCM支持以字节为单位的读写操作,读写速度相对NANDFLASH要快,同时PCM写之前不需要擦除,并且具有更多的可磨损次数。目前PCM还处于研究阶段,关于PCM的研究基本都是用仿真的方法把PCM作为内存的替代或者与内存混合使用。特别是固态盘中,很多研究把PCM作为NANDFLASH的缓存使用,但是这并不能充分发挥PCM的性能优势来弥补NANDFLASH的性能缺点。
技术实现思路
鉴于此,本专利技术的目的是在主机端实现对NANDFLASH的性能优化以及PCM与NANDFLASH融合的存储管理,来提高固态盘的整体性能;同时,利用PCM优秀的性能弥补NANDFLASH的性能缺点,提高固态盘读写性能以及使用寿命。本专利技术提出一种软件定义的固态盘融合存储方法,其中,在基于NANDFLASH的固态盘中融合相变存储器(PCM),所述方法包括以下步骤:(1)开机时从固态盘PCM固定区域读取PCM地址映射表和FLASH地址映射表到主机内存中,同时在主机内存中开辟一段固态盘的缓存区,当主机有访问固态盘的请求Q(lsn,size,op,data)时,首先获取Q.lsn和Q.size,根据Q.lsn以及Q.size判断请求Q访问的数据是否在缓存区中,其中,lsn是逻辑地址,size是请求大小,op是读写标志,data是数据在主机内存中的地址,即主机端的数据目的地址或源地址,如果命中,对于读请求,把数据从缓存区中拷贝到data地址,对于写请求,把data地址数据拷贝到缓存区中,转入步骤(8);如果没命中,对于读请求,转入步骤(2),对于写请求,如果缓存区没有满,直接把data地址处的数据拷贝到缓存区中,转入步骤(8),否则进行缓存区替换更新操作,转入步骤(3);(2)获取读请求的Q.lsn和Q.size,查找PCM与FLASH地址映射表进行地址转换,转入步骤(6),其中,对于访问PCM的读请求,产生以PCM最优写粒度大小(如512B)为单位的读操作请求序列;对于访问FLASH的读请求,产生以FLASH物理页大小的读操作请求序列;(3)设从缓存区中替换出来的请求为q,判断q.size的大小,如果q.size<NANDPAGESIZE,转入步骤(4),否则转入步骤(5);(4)根据请求q.lsn的访问次数和访问时间,判断q.lsn访问数据的冷热性:如果是热数据,给q.lsn分配PCM磨损次数较少的物理地址;否则给q.lsn分配PCM磨损次数较多的物理地址;产生以PCM最优写粒度大小(如512B)为单位的写请求序列,并转入步骤(6);(5)根据请求q.lsn的访问次数和访问时间,判断q.lsn访问数据的冷热性:如果是热数据,给q.lsn分配FLASH磨损次数较少的物理地址;否则给q.lsn分配FLASH磨损次数较多的物理地址;产生以FLASH页大小单位的写请求序列,并转入步骤(6);(6)获取(2)、(4)、(5)中产生的请求序列,根据请求中的物理地址将所述请求序列分别添加到固态盘对应通道上的循环请求队列尾,当定时器到来时,把当前通道上的请求发送给固态盘处理;(7)检测是否有完成中断,如果检测到中断,表示请求已经处理完成,转入步骤(8);(8)返回完成给请求Q。本专利技术还提出一种主机融合存储层(HFSL)系统,用于对文件系统访问固态盘的请求进行管理,所述固态盘基于NANDFLASH并融合了相变存储器(PCM),所述系统包括:地址映射管理模块,在主机内存中维持PCM地址映射表和NANDFLASH地址映射表,采用分配粒度可变的地址映射方法把PCM与NANDFLASH的地址分配给所述请求中的写请求;IO调度管理模块,用于把所述请求分发到固态盘的各个物理通道,所述物理通道包括PCM和NANDFLASH的多个通道,其中,为固态盘的每个物理通道维持一个循环请求队列;缓存区管理模块,对主机内存中开辟的固态盘的缓存区进行管理,当文件系统访问固态盘的请求到来时,判断该请求的数据是否命中,如果命中就把缓存区中的数据返回给文件系统;否则,就把请求交给地址映射管理模块处理,地址映射管理模块对请求进行地址转换获取实际的物理地址,然后IO调度管理模块把请求挂到对应通道的循环请求队列尾部。相对于现有技术,本专利技术具有以下有益效果:(1)固态盘对于主机不再是透明的,主机能获取固态盘的物理特性及数据分布信息,针对其做性能优化;(2)采用PCM与NANDFLASH的融合存储方法,PCM作为NANDFLASH同级存储器,在PCM中存放小写数据,以及地址映射表等元数据信息,或需快速访问、频繁访问的热数据等,提高了固态盘的小写性能,同时也提高固态盘的启动速度。同时PCM作为固态盘中NANDFLASH的上级缓存,提升固态盘性能。相对本文档来自技高网
...
一种软件定义的固态盘融合存储方法

【技术保护点】
一种软件定义的固态盘融合存储方法,其中,在基于NAND FLASH的固态盘中融合相变存储器(PCM),所述方法包括以下步骤:(1)开机时从固态盘PCM固定区域读取PCM地址映射表和FLASH地址映射表到主机内存中,同时在主机内存中开辟一段固态盘的缓存区,当主机有访问固态盘的请求Q(lsn,size,op,data)时,首先获取Q.lsn和Q.size,根据Q.lsn以及Q.size判断请求Q访问的数据是否在缓存区中,其中,lsn是逻辑地址,size是请求大小,op是读写标志,data是数据在主机内存中的地址,即主机端的数据目的地址或源地址,如果命中,对于读请求,把数据从缓存区中拷贝到data地址,对于写请求,把data地址数据拷贝到缓存区中,转入步骤(8);如果没命中,对于读请求,转入步骤(2),对于写请求,如果缓存区没有满,直接把data地址处的数据拷贝到缓存区中,转入步骤(8),否则进行缓存区替换更新操作,转入步骤(3);(2)获取读请求的Q.lsn和Q.size,查找PCM与FLASH地址映射表进行地址转换,转入步骤(6),其中,对于访问PCM的读请求,产生以PCM最优写粒度大小(如512B)为单位的读操作请求序列;对于访问FLASH的读请求,产生以FLASH物理页大小的读操作请求序列;(3)设从缓存区中替换出来的请求为q,判断q.size的大小,如果q.size<NAND PAGE SIZE,转入步骤(4),否则转入步骤(5);(4)根据请求q.lsn的访问次数和访问时间,判断q.lsn访问数据的冷热性:如果是热数据,给q.lsn分配PCM磨损次数较少的物理地址;否则给q.lsn分配PCM磨损次数较多的物理地址;产生以PCM最优写粒度大小(如512B)为单位的写请求序列,并转入步骤(6);(5)根据请求q.lsn的访问次数和访问时间,判断q.lsn访问数据的冷热性:如果是热数据,给q.lsn分配FLASH磨损次数较少的物理地址;否则给q.lsn分配FLASH磨损次数较多的物理地址;产生以FLASH页大小单位的写请求序列,并转入步骤(6);(6)获取(2)、(4)、(5)中产生的请求序列,根据请求中的物理地址将所述请求序列分别添加到固态盘对应通道上的循环请求队列尾,当定时器到来时,把当前通道上的请求发送给固态盘处理;(7)检测是否有完成中断,如果检测到中断,表示请求已经处理完成,转入步骤(8);(8)返回完成给请求Q。...

【技术特征摘要】
1.一种软件定义的固态盘融合存储方法,其中,在基于NANDFLASH的固态盘中融合相变存储器(PCM),并在主机端驱动与文件系统之间实现了一层融合存储中间层(HFSL),其能获取PCM与NANDFLASH的物理特性及数据分布信息,并且针对PCM与NANDFLASH融合存储的物理特性,在融合存储中间层中实现地址映射、IO调度策略、垃圾回收,磨损均衡,所述方法包括以下步骤:(1)开机时从固态盘PCM固定区域读取PCM地址映射表和FLASH地址映射表到主机内存中,同时在主机内存中开辟一段固态盘的缓存区,当主机有访问固态盘的请求Q(lsn,size,op,data)时,首先获取Q.lsn和Q.size,根据Q.lsn以及Q.size判断请求Q访问的数据是否在缓存区中,其中,lsn是逻辑地址,size是请求大小,op是读写标志,data是数据在主机内存中的地址,即主机端的数据目的地址或源地址,如果命中,对于读请求,把数据从缓存区中拷贝到data地址,对于写请求,把data地址数据拷贝到缓存区中,转入步骤(8);如果没命中,对于读请求,转入步骤(2),对于写请求,如果缓存区没有满,直接把data地址处的数据拷贝到缓存区中,转入步骤(8),否则进行缓存区替换更新操作,转入步骤(3);(2)获取读请求的Q.lsn和Q.size,查找PCM与FLASH地址映射表进行地址转换,转入步骤(6),其中,对于访问PCM的读请求,产生以PCM最优写粒度大小为单位的读操作请求序列;对于访问FLASH的读请求,产生以FLASH物理页大小的读操作请求序列;(3)设从缓存区中替换出来的请求为q,判断q.size的大小,如果q.size<NANDPAGESIZE,转入步骤(4),否则转入步骤(5);(4)根据请求q.lsn的访问次数和访问时间,判断q.lsn访问数据的冷热性:如果是热数据,给q.lsn分配PCM磨损次数较少的物理地址;否则给q.lsn分配PCM磨损次数较多的物理地址;产生以PCM最优写粒度大小为单位的写请求序列,并转入步骤(6);(5)根据请求q.lsn的访问次数和访问时间,判断q.lsn访问数据的冷热性:如果是热数据,给q.lsn分配FLASH磨损次数较少的物理地址;否则给q.lsn分配FLASH磨损次数较多的物理地址;产生以FLASH页大小单位的写请求序列,并转入步骤(6);(6)获取(2)、(4)、(5)中产生的请求序列,根据请求中的物理地址将所述请求序列分别添加到固态盘对应通道上的循环请求队列尾,当定时器到来时,把当前通道上的请求发送给固态盘处理;(7)检测是否有完成中断,如果检测到中断,表示请求已经处理完成,转入步骤(8);(8)返回完成给请求Q。2.根据权利要求1所述的方法,步骤(4)中,如果PCM没有足够的物理空间,则把PCM中的数据复制到NANDFLASH中,并且修改对应的地址映射条目。3.根...

【专利技术属性】
技术研发人员:刘景宁冯丹童薇张双武雷宗浩余晨晔罗锐张建权
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1