[发明专利]一种NVMe扩展的实现方法及固态硬盘有效
申请号: | 201810258978.6 | 申请日: | 2018-03-27 |
公开(公告)号: | CN108549610B | 公开(公告)日: | 2021-02-23 |
发明(设计)人: | 徐伟华;王猛;韩道静;张健 | 申请(专利权)人: | 深圳忆联信息系统有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F3/06 |
代理公司: | 广东广和律师事务所 44298 | 代理人: | 董红海 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 nvme 扩展 实现 方法 固态 硬盘 | ||
本发明公开了一种NVMe扩展的实现方法及固态硬盘,其特征在于SSD接收到主机端读命令后,按照该命令的逻辑空间查询SSD内部的无映射管理表,判断该命令是否为无映射命令,如果是则直接将完成队列条目中用于标识是否为无映射的映射状态位设置为1,并直接结束该命令,并返回主机;否则根据该命令的逻辑空间地址读取数据,读完成后,将映射状态位设置为0,再返回主机;主机接收到完成队列条目后先判读映射状态位是否为1,如果是则直接由主机端将该命令对应的缓存置0后返回应用或直接返回应用。通过优化读处理流程,由于减少了SSD到Host之间的数据传输,所以命令响应延迟以及服务时间大大地得到了降低,其实测带宽可有效突破PCIe的物理限制。
技术领域
本发明涉及存储技术领域,尤其涉及一种NVMe扩展的实现方法及固态硬盘。
背景技术
SSD(固态硬盘)已经被广泛应用于各种场合,随着PC的性能要求提升,作为关键因素之一的存储设备的性能是影响全局性能的重点因素。
通过对目前一些主流的性能测试工具测试模型的分析,我们发现一种数据类型极大地影响测试结果。这种特殊的数据,称为No-Map(无映射)数据,其代表对应的逻辑空间不存在有效数据。
发生这种场景主要是因为SSD在出厂后从来没有写入数据或者主机端通过特殊的命令(TRIM,Security Erase等)废弃了其中数据。对于这种数据,主机只预期其返回特定的数据(如全0)。
图1是传统PCIe/NVMe接口协议下的主机与SSD读流程:
-S0:主机写入读命令到SQ(命令提交队列,Submission Queue);
-S1:主机触发SSD端的SQ Doorbell,通知SSD有新的命令到达;
-S2:SSD从主机端SQ获取读命令到本地;
-S3:SSD内部发起内部数据加载:将逻辑地址翻译成物理地址,从物理地址读取数据;
-S4:SSD将数据传输到主机端对应Buffer;
-S5:SSD格式化Completion Queue Entry,并提交到主机端的CQ;
-S6:SSD触发中断,通知主机新的命令已经完成;
-S7:Host获取CQ,解析其中状态字段并将数据返回应用层;
-S8:Host触发SSD端的CQ Doorbell,释放CQ Entry;
-S9:SSD完成对应命令处理,释放对应资源,并继续处理新的命令。
图2是SSD内部读通路示意图;主机提交读命令到SSD的前端模块;SSD前端模块将命令分割成映射单元(典型如4KB),提交到读写缓冲区管理模块;读写缓冲区管理模块从缓存Memory中(典型如DRAM)分配空间,后再提交操作请求到映射表管理模块中;映射表管理模块负责把逻辑地址转换成NAND物理地址,后再提交操作请求到后端模块,后端模块根据物理地址发起对NAND读请求,并等待NAND操作请求完成,此时数据已经加载到预先分配的Memory中,控制操作请求依次返回上层模块。前端模块接收到完成的控制操作请求后,构建数据传输命令,实际发起对主机的数据传输。从上面整个流程来看,从SSD接收到主机命令,到真正发起数据传输,中间需要经过众多环节,命令的响应延迟以及服务时间很大。
对于磁盘数据来说,存在一种特殊的数据,其代表对应的逻辑空间实际上不存在有效数据:出厂后从来没有写入数据或者主机通过特殊的命令废弃了其中数据,我们称此种数据为no-map数据(无映射数据)。对于此类型的数据,只需返回协议规定的特定数据即可(例如全0)。因此现有的处理流程还具有较大的改进空间。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳忆联信息系统有限公司,未经深圳忆联信息系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810258978.6/2.html,转载请声明来源钻瓜专利网。