公开/公告号CN102768645A
专利类型发明专利
公开/公告日2012-11-07
原文格式PDF
申请/专利权人 国家超级计算深圳中心(深圳云计算中心);
申请/专利号CN201210195826.9
发明设计人 葛雄资;
申请日2012-06-14
分类号G06F12/06(20060101);
代理机构44287 深圳市世纪恒程知识产权代理事务所;
代理人胡海国
地址 518055 广东省深圳市南山区西丽大学城学苑大道1068号(西侧)
入库时间 2023-12-18 07:11:56
法律状态公告日
法律状态信息
法律状态
2016-01-20
授权
授权
2012-12-26
实质审查的生效 IPC(主分类):G06F12/06 申请日:20120614
实质审查的生效
2012-11-07
公开
公开
技术领域
本发明涉及到计算机数据存储技术领域,特别涉及到混合缓存的固态 硬盘预取方法和固态硬盘SSD。
背景技术
在计算机数据存储时,由于Flash本身具有读写不对称的问题,特别是 随机写速度表现不如人意,利用基于Flash的SSD来缓存和预取大量的 顺序数据流,可能会造成SSD上产生大量的写操作,甚至产生严重的交 织随机读写情况,在最坏的情况下不仅不能节能,还会引起系统性能 的下降,导致SSD寿命降低。
发明内容
本发明的主要目的为提供一种减少SSD写次数、有效延长SSD寿命的混 合缓存的固态硬盘预取方法和固态硬盘SSD。
本发明提出一种混合缓存的固态硬盘预取方法,包括步骤:
固态硬盘SSD在存储预取数据请求时,查找空闲块链表中的地址指针指 向的空闲的存储块;
将所述预取数据请求中的同一个顺序流中的顺序流数据存储至同一个 空闲的存储块的空闲页中;
将已存有数据的存储块的地址指针存储至被占块链表中。
优选地,所述固态硬盘SSD在存储预取数据请求时,查找空闲块链表中 的地址指针指向的空闲的存储块的步骤之后还包括:
将所述预取数据请求的顺序流数据中访问频率超过预设频率阈值的数 据作为热点数据,存储至同一个空闲的存储块的空闲页中。
优选地,所述将预取数据请求中的同一个顺序流中的顺序流数据存储 至同一个空闲的存储块的空闲页中的步骤之后还包括:
将所述顺序流数据的地址指针存储至所述SSD的顺序链表中。
优选地,所述将预取数据请求的顺序流数据中访问频率超过预设频率 阈值的数据作为热点数据,存储至同一个空闲的存储块的空闲页中的 步骤之后还包括:
将所述热点数据的地址指针存储至所述SSD的随机链表中。
优选地,所述混合缓存的固态硬盘预取方法,还包括步骤:
所述SSD在判定所述顺序流数据被替换后,将所述顺序流数据所在的页 置为无效页;
启动垃圾回收模式,在所有页均为无效页的存储块中,选择擦除次数 最少的存储快进行擦除回收;
将已擦除的存储块的地址指针存储至空闲块链表中。
本发明还提出一种混合缓存的固态硬盘SSD,包括:
空闲存储块查找模块,用于在存储预取数据请求时,查找空闲块链表 中的地址指针指向的空闲的存储块;
存储块数据管控模块,用于将所述预取数据请求中的同一个顺序流中 的顺序流数据存储至同一个空闲的存储块的空闲页中;
存储块指针管控模块,用于将已存有数据的存储块的地址指针存储至 被占块链表中。
优选地,所述混合缓存的固态硬盘SSD还包括:
存储块热点数据管控模块,用于将所述预取数据请求的顺序流数据中 访问频率超过预设频率阈值的数据作为热点数据,存储至同一个空闲 的存储块的空闲页中。
优选地,所述混合缓存的固态硬盘SSD还包括:
顺序链表管控模块,用于将所述顺序流数据的地址指针存储至所述SS D的顺序链表中。
优选地,所述混合缓存的固态硬盘SSD还包括:
随机链表管控模块,用于将所述热点数据的地址指针存储至所述SSD的 随机链表中。
优选地,所述混合缓存的固态硬盘SSD还包括:
无效页管控模块,用于在判定所述顺序流数据被替换后,将所述顺序 流数据所在的页置为无效页;
擦除回收模块,用于启动垃圾回收模式,在所有页均为无效页的存储 块中,选择擦除次数最少的存储快进行擦除回收;
回收块指针管控模块,用于将已擦除的存储块的地址指针存储至空闲 块链表中。
本发明在顺序流预取中,基于空间局部性原则,将同一个顺序流的数 据存储在同一个块中,从而让同一个块中的页同时或者在临近时间被 替换,减少SSD写次数,有效延长SSD寿命。
附图说明
图1为本发明第一实施例中混合缓存的固态硬盘预取方法的预取架构图 ;
图2为本发明第一实施例中混合缓存的固态硬盘预取方法的流程图;
图3为本发明第二实施例中混合缓存的固态硬盘预取方法的流程图;
图4为本发明第三实施例中混合缓存的固态硬盘预取方法的流程图;
图5为本发明第四实施例中混合缓存的固态硬盘预取方法的流程图;
图6为本发明第五实施例中混合缓存的固态硬盘SSD的结构示意图;
图7为本发明第六实施例中混合缓存的固态硬盘SSD的结构示意图;
图8为本发明第七实施例中混合缓存的固态硬盘SSD的结构示意图;
图9为本发明第八实施例中混合缓存的固态硬盘SSD的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一 步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于 限定本发明。
如图1和图2所示,图1为本发明第一实施例中混合缓存的固态硬盘预取 方法的预取架构图;图2为本发明第一实施例中混合缓存的固态硬盘预 取方法的流程图。该实施例提到的混合缓存的固态硬盘预取方法,包 括:
步骤S101,固态硬盘SSD在存储预取数据请求时,查找空闲块链表中的 地址指针指向的空闲的存储块;
在SSD后台页面管理中,SSD内部维护两个块链表:空闲块链和被占用 块链。通过FTL(Flash translaton layer,闪存转换层)中的地址 映射表对应SSD上物理块地址。空闲块链表如图1中的空闲块池中的块 ,每一个块的所有页都为空,通过垃圾回收后的块将链接到其中,在 缓存请求到来时,分配给缓存页面。
步骤S102,将预取数据请求中的同一个顺序流中的顺序流数据存储至 同一个空闲的存储块的空闲页中;
步骤S103,将已存有数据的存储块的地址指针存储至被占块链表中。
被占用的块中的页面被部分或者全部占用,这是为了将相关性较强的 页面保存在相同的SSD块中,从而减少SSD内部碎片的产生。因此,当 一个空闲块中的一个页面被占用时,其剩余的空闲页面可能会被跳过 。在顺序流预取中,基于空间局部性原则,将同一个顺序流的数据存 储在同一个块中,从而让同一个块中的页同时或者在临近时间被替换 ,减少SSD写次数,有效延长SSD寿命。
如图3所示,图3为本发明第二实施例中混合缓存的固态硬盘预取方法 的流程图。
步骤S201,固态硬盘SSD在存储预取数据请求时,查找空闲块链表中的 地址指针指向的空闲的存储块;
步骤S202,将预取数据请求中的同一个顺序流中的顺序流数据存储至 同一个空闲的存储块的空闲页中;
步骤S203,将预取数据请求的顺序流数据中访问频率超过预设频率阈 值的数据作为热点数据,存储至同一个空闲的存储块的空闲页中;
步骤S204,将已存有数据的存储块的地址指针存储至被占块链表中。
对于缓存的访问频度较高的数据,按照其热度大小分类,将热度较高 的数据存放在同一存储块中,从而使同一个块中的页同时或者在临近 时间被替换,减少SSD写次数,有效延长SSD寿命。
如图4所示,图4为本发明第三实施例中混合缓存的固态硬盘预取方法 的流程图。
步骤S301,固态硬盘SSD在存储预取数据请求时,查找空闲块链表中的 地址指针指向的空闲的存储块;
步骤S302,将预取数据请求中的同一个顺序流中的顺序流数据存储至 同一个空闲的存储块的空闲页中;
步骤S303,将顺序流数据的地址指针存储至SSD的顺序链表中;
步骤S304,将预取数据请求的顺序流数据中访问频率超过预设频率阈 值的数据作为热点数据,存储至同一个空闲的存储块的空闲页中;
步骤S305,将热点数据的地址指针存储至SSD的随机链表中;
步骤S306,将已存有数据的存储块的地址指针存储至被占块链表中。
SSD的顺序链表SSSD和随机链表RSSD通过位图的方式存储在特定的块中,位 图存储指向SSD物理页面的指针。在运行时,将链表的位图读入DRAM中 ,如果访问命中,则通过地址映射表找到相应的页面,并将对应的数 据读取出来。本实施例在SSD内部利用特定的页面管理方式,对写入缓 存和预取数据进行优化布局,将数据重新整合并分组存放,有利于使 同一个块中的页同时或者在临近时间被替换,减少SSD写次数,有效延 长SSD寿命。
如图5所示,图5为本发明第四实施例中混合缓存的固态硬盘预取方法 的流程图。
步骤S401,固态硬盘SSD在存储预取数据请求时,查找空闲块链表中的 地址指针指向的空闲的存储块;
步骤S402,将预取数据请求中的同一个顺序流中的顺序流数据存储至 同一个空闲的存储块的空闲页中;
步骤S403,将已存有数据的存储块的地址指针存储至被占块链表中;
步骤S404,SSD在判定顺序流数据被替换后,将顺序流数据所在的页置 为无效页;
步骤S405,启动垃圾回收模式,在所有页均为无效页的存储块中,选 择擦除次数最少的存储快进行擦除回收;
步骤S406,将已擦除的存储块的地址指针存储至空闲块链表中。
当一个页面被替换时,其对应的被占块的页被置为无效页。垃圾回收 模 块根据空闲块链以及空闲页面情况,自动启动并进行垃圾回收,垃圾 回收的过程同时兼顾时间和空间局部性,将热点数据和顺序数据存放 在相同的块中。耗损平衡模块,通过分析各个块的写和擦除次数,来 优先选择擦除次数较少的块进行缓存服务,避免SSD因擦除次数过多而 影响SSD的使用寿命。
如图6所示,图6为本发明第五实施例中混合缓存的固态硬盘SSD的结构 示意图。该实施例提到的混合缓存的固态硬盘SSD,包括:
空闲存储块查找模块10,用于在存储预取数据请求时,查找空闲块链 表中的地址指针指向的空闲的存储块;
存储块数据管控模块20,用于将预取数据请求中的同一个顺序流中的 顺序流数据存储至同一个空闲的存储块的空闲页中;
存储块指针管控模块30,用于将已存有数据的存储块的地址指针存储 至被占块链表中。
在SSD后台页面管理中,SSD内部维护两个块链表:空闲块链和被占用 块链。通过FTL(Flash translaton layer,闪存转换层)中的地址 映射表对应SSD上物理块地址。空闲块链表如图1中的空闲块池中的块 ,每一个块的所有页都为空,通过垃圾回收后的块将链接到其中,在 缓存请求到来时,分配给缓存页面。被占用的块中的页面被部分或者 全部占用,这是为了将相关性较强的页面保存在相同的SSD块中,从而 减少SSD内部碎片的产生。因此,当一个空闲块中的一个页面被占用时 ,其剩余的空闲页面可能会被跳过。在顺序流预取中,基于空间局部 性原则,将同一个顺序流的数据存储在同一个块中,从而让同一个块 中的页同时或者在临近时间被替换,减少SSD写次数,有效延长SSD寿 命。
如图7所示,图7为本发明第六实施例中混合缓存的固态硬盘SSD的结构 示意图。混合缓存的固态硬盘SSD还包括:
存储块热点数据管控模块40,用于将预取数据请求的顺序流数据中访 问频率超过预设频率阈值的数据作为热点数据,存储至同一个空闲的 存储块的空闲页中。
对于缓存的访问频度较高的数据,按照其热度大小分类,将热度较高 的 数据存放在同一存储块中,从而使同一个块中的页同时或者在临近时 间被替换,减少SSD写次数,有效延长SSD寿命。
如图8所示,图8为本发明第七实施例中混合缓存的固态硬盘SSD的结构 示意图。混合缓存的固态硬盘SSD还包括:
顺序链表管控模块50,用于将顺序流数据的地址指针存储至SSD的顺序 链表中。
随机链表管控模块60,用于将热点数据的地址指针存储至SSD的随机链 表中。
SSD的顺序链表SSSD和随机链表RSSD通过位图的方式存储在特定的块中,位 图存储指向SSD物理页面的指针。在运行时,将链表的位图读入DRAM中 ,如果访问命中,则通过地址映射表找到相应的页面,并将对应的数 据读取出来。本实施例在SSD内部利用特定的页面管理方式,对写入缓 存和预取数据进行优化布局,将数据重新整合并分组存放,有利于使 同一个块中的页同时或者在临近时间被替换,减少SSD写次数,有效延 长SSD寿命。
如图9所示,图9为本发明第八实施例中混合缓存的固态硬盘SSD的结构 示意图。混合缓存的固态硬盘SSD还包括:
无效页管控模块70,用于在判定顺序流数据被替换后,将顺序流数据 所在的页置为无效页;
擦除回收模块80,用于启动垃圾回收模式,在所有页均为无效页的存 储块中,选择擦除次数最少的存储快进行擦除回收;
回收块指针管控模块90,用于将已擦除的存储块的地址指针存储至空 闲块链表中。
当一个页面被替换时,其对应的被占块的页被置为无效页。垃圾回收 模块根据空闲块链以及空闲页面情况,自动启动并进行垃圾回收,垃 圾回收的过程同时兼顾时间和空间局部性,将热点数据和顺序数据存 放在相同的块中。耗损平衡模块,通过分析各个块的写和擦除次数, 来优先选择擦除次数较少的块进行缓存服务,避免SSD因擦除次数过多 而影响SSD的使用寿命。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围 ,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换 ,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的 专利保护范围内。
机译: NVMe SSD固态硬盘ID方法,用于处理非挥发性内存表达中的命令ID冲突场景基于NVMe的固态硬盘SSD控制器
机译: 通过固态硬盘之间的连接在固态硬盘(SSDS)之间传输数据
机译: 通过固态硬盘之间的连接在固态硬盘(SSD)之间传输数据