[发明专利]一种固态硬盘缓存管理方法及固态硬盘在审
申请号: | 201711406418.2 | 申请日: | 2017-12-22 |
公开(公告)号: | CN108255420A | 公开(公告)日: | 2018-07-06 |
发明(设计)人: | 许毅;姚兰;郑春阳 | 申请(专利权)人: | 深圳忆联信息系统有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 广东广和律师事务所 44298 | 代理人: | 董红海 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 管理单元 固态硬盘 缓存管理 缓存 分配 子缓存 缓存管理模块 读写性能 拼接模块 外部模块 申请 引入 概率 记录 配合 | ||
本发明公开了一种固态硬盘缓存管理方法及固态硬盘,其特征在于将固态硬盘缓存按8KB为单位划分为多个管理单元,每个管理单元分为2个4KB单位的子缓存管理单元,并设置分配数记录每个管理单元已经被分配的数目,外部模块以4KB为单位向缓存管理模块申请缓存,按申请顺序只有管理单元的分配数为2时才从新的管理单元中分配新的子缓存管理单元。引入新的缓存管理方法,配合拼接模块能提高8KB Data FIS的形成概率,进而实现提升固态硬盘读写性能的效果。
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种固态硬盘缓存管理方法及固态硬盘。
背景技术
SATA SSD的控制器设计和固件(FW)设计需要遵循ATA接口协议,ATA协议规定原生命令队列NCQ(Native Command Queuing)读写命令数据传输的数据帧信息结构(Data FIS-Data Frame Information Structure,简称数据包)最大也建议为8KB,因为每次建立数据包的传输需要消耗一定的时间,所以单个命令形成的数据包越少,建立数据包传输造成的时间消耗越少。最理想的情况是命令的每个数据包都是8KB的,最后一笔不足8KB的数据包除外。
当前SATA SSD的固件设计中闪存转换层FTL(Flash Translation Layer) 采用4KB的映射机制,理所当然的缓存管理模块也是以4KB为单位管理且以链表形式管理,这样比较简单实用,如图1是常规的缓存管理示意图,逻辑链表上维护的是物理缓存块的索引值,缓存Buffer管理模块每次从逻辑链表头部摘下一个索引值,计算出该索引值对应的4KB物理缓存块的地址给申请者,申请者使用完归还后,缓存管理模块根据缓存块地址逆向计算出对应的索引值,把该索引值挂到链表尾部。由于固件设计中命令重排序的策略,最先申请出去的缓存块不一定优先与主机传输数据,所以也并不能保证优先申请出去的缓存块优先返还给缓存管理模块,即最后逻辑链表上相邻的索引值对应的物理块地址不一定是物理连续的,见图1中逻辑索引与物理块的对应关系,存在交错情况。
为了提高8KB Data FIS的个数,在固件中增加一个拼接模块,如图2所示, 4KB的buffer首先放入拼接模块,由拼接模块尝试拼成8KB的Data FIS后再传给SSD控制器,但是这技术依赖于连续两个从buffer模块申请出的4KB buffer 在物理上也是连续的,但是由于SSD内部存在命令重排序的策略,在SSD运行期间,buffer模块中逻辑链表上相邻的索引值不一定都是物理连续的,如果这种不连续概率很大,那么拼接模块的作用也不大。
为了保证8KB Data FIS的拼成,现有技术中存在一个拼接8KB Data FIS 的模块,图2是增加拼接模块后的数据结构图,提交至Data FISFIFO的buffer 块地址段首先送入拼接模块,由拼接模块决定是否形成Data FIS描述符,该模块维护了以下字段:
1.start_addr:缓存的buffer块起始地址。
2.end_addr:缓存的buffer块末尾地址。
3.is_valid:指示是否有有效缓存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳忆联信息系统有限公司,未经深圳忆联信息系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711406418.2/2.html,转载请声明来源钻瓜专利网。