一种混合缓存的存储方法及装置与流程

专利查询14天前  11


1.本发明属于存储技术领域,尤其涉及一种混合缓存的存储方法及装置。


背景技术:

2.随着对数据传输、存储的性能需求不断提高,对于小数据的随机性与大数据的吞吐性能都提出了更高的要求。
[0003] 当前固态硬盘等存储设备主要以nand flash为主要的存储介质,该介质具有先擦再写,且该擦除以block为单位,其中block单位从4k * 128 到16k * 2048等大小种类繁多,而该介质还具有以page为最小写单位的特性,且page大小也有4k到 16k等大小差异,而当前普遍的操作系统的读写以512byte为逻辑单位,因此在存储设备工作过程中就必须有一套逻辑地址-物理地址的ftl映射层。
[0004]
衡量一个存储设备的性能往往包含随机并发数及数据吞吐量,但目前普遍的做法是采用一个统一大小的块来进行映射,该大小与操作系统提供的数据块通常保持一致,如4k、8k、16k、32k到128k,该映射方法下ftl架构简单,易于管理,但无法兼顾随机性和吞吐量。


技术实现要素:

[0005]
本发明旨在解决上述问题,提供一种大数据映射与小数据映射并存的混合缓存的存储方法及装置。
[0006]
第一方面,本发明提供一种混合缓存的存储方法,包括如下过程:将数据分割为预设大小的数据块;将数据块以数据链表形式关联并写入队列缓存,待设备收到命令中断后开始读取解析命令缓存;存储设备获取命令后,基于命令长度对数据链表进行命令重构;所述命令重构包括:当数据地址连续时,逻辑电路将小数据块合并为可支持的最大数据数据块,采用最大数据数据块映射,从而可成倍提升命令传输效率;当数据地址离散或为离散命令时,采用与操作系统数据块大小相同的缓存块映射;所述命令重构中设置一缓存类标志位,标明当前命令链表所用缓存类;存储设备基于该缓存类标志位为该类数据分配相应大小物理块并生成写命令写入非遗失存储颗粒,同时填写呈相应映射表;写命令实际传输并写入非遗失存储颗粒后,基于缓存类标志查找对应状态表并释放缓存。
[0007]
进一步,本发明所述混合缓存的存储方法,所述写入队列缓存的缓存方式包括嵌套式和分离式;所述嵌套式为:数据缓存区不做划分,大数据缓存与小数据缓存复用,数据缓存以前述预设大小为最小单位,各类单位数据块独立使用一个状态表;独立小数据块和复用大
数据块独立使用一个状态表,用于管理各单位数据;所述分离式为:数据缓存区多个大小不等的缓存区域,每个缓存区域各自独立使用地址空间,且状态表独立。
[0008]
进一步,本发明所述混合缓存的存储方法,所述缓存的获取采用预取机制,各单位缓存对应一张预取表;在预取表不满时逻辑电路搜索相应状态表,预取表满时停止搜索。
[0009]
进一步,本发明所述混合缓存的存储方法,所述缓存方式为分离式搜索时,各类缓存状态表独立;缓存方式为嵌套式搜索时,各类缓存状态表满足互斥关系。
[0010]
进一步,本发明所述混合缓存的存储方法,所述单位缓存状态表大小=缓存大小
÷
(数据块单位*8)。
[0011]
进一步,本发明所述混合缓存的存储方法,所述预设大小范围包括512b-128kb。
[0012]
第二方面,本发明提供一种混合缓存的存储装置,存储装置进行数据存储时可运行第一方面所述任何一项所述的混合缓存的存储方法。
[0013]
本发明所述混合缓存的存储方法及装置,基于操作系统复杂无规则的数据命令,采用本发明所述存储方法可以对系统写命令进行动态缓存和存储,能够兼顾存储设备的iops和顺序写性能;同时由于对设备缓存进行分类管理,能最大化利用缓存空间,可以最大程度减少内存碎片的产生;通过对连续小数据命令的重构变换使得命令效率得到提升,并减少设备cpu在建立ftl时进行的表项操作,提高cpu利用率;兼顾随机写的高并发数及顺序写的大数据吞吐,可显著提升存储设备的总体性能。
附图说明
[0014]
图1为本发明实施例所述嵌套式数据缓存示意图;图2为本发明实施例所述分离式数据缓存示意图;图3为本发明实施例所述数据缓存状态管理示意图;图4为本发明实施例所述命令解析重构模块示意图;图5为本发明实施例所述嵌套式缓存回收模块示意图。
具体实施方式
[0015]
下面通过附图及实施例对本发明所述混合缓存的存储方法及装置进行详细说明。
[0016]
实施例一本公开实施例公开一种混合缓存的存储方法,包括如下过程:将数据分割为预设大小的数据块;将数据块以数据链表形式关联并写入队列缓存,待设备收到命令中断后开始读取解析命令缓存;存储设备获取命令后,基于命令长度对数据链表进行命令重构;所述命令重构包括:当数据地址连续时,逻辑电路将小数据块合并为可支持的最大数据数据块,采用最大数据数据块映射,从而可成倍提升命令传输效率;当数据地址离散或为离散命令时,采用与操作系统数据块大小相同的缓存块映射;所述命令重构中设置一缓存类标志位,标明当前命令链表所用缓存类;存储设备基于该缓存类标志位为该类数据分配相应大小物理块并生成写命令写入非遗失存储颗粒,
同时填写呈相应映射表;写命令实际传输并写入非遗失存储颗粒后,基于缓存类标志查找对应状态表并释放缓存。
[0017]
在本公开实施例中,以ssd为例,前端传输协议为nvme;混合缓存存储过程包括如下:操作系统在数据命令传输过程将数据划分为4k大小的数据块,该数据块大小4k到128k不等,但大小一致,具体大小可根据实际使用情况来确定。当操作系统执行写命令后,数据被分割为4k大小的数据块,各数据块以数据链表形式关联并写入队列缓存,待设备端收到命令中断后开始读取解析命令缓存。
[0018]
设备端获取命令后,基于本次命令长度对数据链表进行重构,在具体应用中基于设备不同配置,缓存方式可分为嵌套式和分离式,其中,如图1所示嵌套式为:设备端数据缓存区不做划分,大数据缓存与小数据缓存复用,其中数据缓存以4k为最小单位,8个最小数据块组成一个32k数据块。相应的若在使用中最小单位为512byte,则8个最小数据缓存组成一个4k数据块,64个最小数据组成一个32k数据块。如图3所示,各类单位数据块独立使用一个状态表,用于管理各单位数据。
[0019]
如图2所示,分离式为设备数据缓存区划分为4k和32k,两种数据缓存区各自独立使用地址空间,状态表独立;在具体应用中基于需求可增加8k/16k数据区域;其中,单位缓存状态表大小=缓存大小
÷
(数据块单位*8)。
[0020]
在进行命令重构时,当操作系统命令的数据地址连续时,逻辑电路将小数据块合并为可支持的最大数据数据块,在本公开实施例中,如图4所示,连续8个4k地址连续命令可重构为一个32k命令,其ftl映射块采用32k映射,从而可成倍提升命令传输效率。如命令数据地址离散或离散命令,将采用与操作系统相同数据块大小的缓存块,其ftl映射表采用4k映射。
[0021]
在本公开实施例中,设备端缓存的获取采用预取机制,各单位缓存对应一张预取表,在本公开实施例中每类缓存预取表大小为32个双字,每个双字用于存储一个缓存指针;预取表采用fifo(first input first output)机制,在预取表不满时逻辑电路搜索相应状态表,预取表满时停止搜索,每条缓存指针写入fifo后,缓存状态表置为invalid。分离式搜索时,各类缓存状态表独立;如图5所示,嵌套式搜索时,各类状态表满足互斥关系。
[0022]
在命令重构过程中提供一个缓存类标志位,此标志位标明当前命令链表所用缓存类,在应用中,设备固件基于标志位为该类数据分配相应大小物理块并生成写入非遗失存储颗粒命令,同时填写成相应ftl映射表;当写命令实际传输并写入非遗失存储颗粒后,逻辑电路基于缓存类标志查找到相应状态表并释放缓存,此时相应缓存类状态标识置为valid。
[0023]
实施例二本公开实施例公开一种采用混合缓存存储方法的存储装置,所述存储装置上存储有计算机程序,该存储装置在进行数据存储操作时前述计算机程序被处理器执行,可实现实施例一所述混合缓存的存储方法。首先将数据分割为预设大小的数据块;将数据块以数据链表形式关联并写入队列缓存,待设备收到命令中断后开始读取解析命令缓存。
[0024]
存储设备获取命令后,基于命令长度对数据链表进行命令重构;所述命令重构包
括:当数据地址连续时,逻辑电路将小数据块合并为可支持的最大数据数据块,采用最大数据数据块映射,从而可成倍提升命令传输效率;当数据地址离散或为离散命令时,采用与操作系统数据块大小相同的缓存块映射。
[0025]
所述命令重构中设置一缓存类标志位,标明当前命令链表所用缓存类;存储设备基于该缓存类标志位为该类数据分配相应大小物理块并生成写命令写入非遗失存储颗粒,同时填写呈相应映射表;写命令实际传输并写入非遗失存储颗粒后,基于缓存类标志查找对应状态表并释放缓存;具体存储操作步骤与实施例一所述混合缓存的存储方法过程相同,在此不再赘述。
[0026]
本发明所述的混合缓存的存储方法及装置,通过采用将大数据映射与小数据映射并存的方式来构建映射层,提升命令传输效率,该混合映射方式能兼顾随机写的高并发数及顺序写的大数据吞吐,可显著提升设备的总体性能。

技术特征:
1.一种混合缓存的存储方法,其特征在于包括:将数据分割为预设大小的数据块;将数据块以数据链表形式关联并写入队列缓存;存储设备获取命令后,基于命令长度对数据链表进行命令重构;所述命令重构包括:当数据地址连续时,将小数据块合并为可支持的最大数据数据块,采用最大数据数据块映射;当数据地址离散或为离散命令时,采用与操作系统数据块大小相同的缓存块映射;所述命令重构中设置一缓存类标志位,标明当前命令链表所用缓存类;存储设备基于该缓存类标志位为该类数据分配相应大小物理块并生成写命令写入非遗失存储颗粒,同时填写呈相应映射表;写命令实际传输并写入非遗失存储颗粒后,基于缓存类标志查找对应状态表并释放缓存。2.根据权利要求1所述混合缓存的存储方法,其特征在于:所述写入队列缓存的缓存方式包括嵌套式和分离式;所述嵌套式为:数据缓存区不做划分,数据缓存以前述预设大小为最小单位,各类单位数据块独立使用一个状态表;所述分离式为:数据缓存区多个大小不等的缓存区域,每个缓存区域各自独立使用地址空间,且状态表独立。3.根据权利要求2所述混合缓存的存储方法,其特征在于:所述缓存的获取采用预取机制,各单位缓存对应一张预取表;在预取表不满时逻辑电路搜索相应状态表,预取表满时停止搜索。4.根据权利要求3所述混合缓存的存储方法,其特征在于:所述缓存方式为分离式搜索时,各类缓存状态表独立;缓存方式为嵌套式搜索时,各类缓存状态表满足互斥关系。5.根据权利要求4所述混合缓存的存储方法,其特征在于:所述单位缓存状态表大小=缓存大小
÷
(数据块单位*8)。6.根据权利要求5所述混合缓存的存储方法,其特征在于:所述预设大小范围包括512b-128k。7.一种混合缓存的存储装置,其特征在于:存储装置进行数据存储时可运行前述权利要求1-7任何一项所述的混合缓存的存储方法。

技术总结
一种混合缓存的存储方法,属于存储技术领域,其特征在于包括:将数据分割为预设大小的数据块;将数据块以数据链表形式关联并写入队列缓存;基于操作系统复杂无规则的数据命令,采用本发明所述存储方法可以对系统写命令进行动态缓存和存储,能够兼顾存储设备的IOPS和顺序写性能;同时由于对设备缓存进行分类管理,能最大化利用缓存空间,可以最大程度减少内存碎片的产生;通过对连续小数据命令的重构变换使得命令效率得到提升,并减少设备CPU在建立FTL时进行的表项操作,提高CPU利用率;兼顾随机写的高并发数及顺序写的大数据吞吐,可显著提升存储设备的总体性能。显著提升存储设备的总体性能。显著提升存储设备的总体性能。


技术研发人员:杨柱 高明扬 谷卫青 唐先芝 王剑立 郝晨 吴浚 潘文洁 刘艺楠 马铭振
受保护的技术使用者:尧云科技(西安)有限公司
技术研发日:2021.11.09
技术公布日:2022/3/7

最新回复(0)