[发明专利]一种NVMe扩展的实现方法及固态硬盘有效
申请号: | 201810258978.6 | 申请日: | 2018-03-27 |
公开(公告)号: | CN108549610B | 公开(公告)日: | 2021-02-23 |
发明(设计)人: | 徐伟华;王猛;韩道静;张健 | 申请(专利权)人: | 深圳忆联信息系统有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F3/06 |
代理公司: | 广东广和律师事务所 44298 | 代理人: | 董红海 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 nvme 扩展 实现 方法 固态 硬盘 | ||
1.一种NVMe扩展的实现方法,其特征在于SSD接收到主机端读命令后,按照该命令的逻辑空间查询SSD内部的无映射管理表,判断该命令是否为无映射命令,如果是则直接将完成队列条目中用于标识是否为无映射的映射状态位设置为1,并直接结束该命令,并返回主机;否则根据该命令的逻辑空间地址读取数据,读完成后,将映射状态位设置为0,再返回主机;主机接收到完成队列条目后先判读映射状态位是否为1,如果是则直接由主机端将该命令对应的缓存置0后返回应用或直接返回应用;将NVMe标准协议的完成队列条目的状态字的bit28作为映射状态位;判断该命令是否为无映射命令,增加无映射检查模块,SSD的前端模块中的命令接收模块负责命令解析和逻辑地址空间提取,完成后将命令提交给无映射检查模块,所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间是否属于无映射no-map,如果属于则直接构建状态字Bit 28为1的条目到完成队列中,而不需要进行数据传输;包括no-map加速模块和no-map映射表,所述no-map映射表记录了当前固态硬盘中处于no-map的地址信息,所述no-map映射表维护两种颗粒度的两级映射表,所述无映射检查模块根据主机提交的读命令的逻辑地址空间查找no-map映射表,判断该读命令上的地址空间是否都为无映射状态,如果是则直接提交给no-map加速模块,no-map加速模块直接构建状态字Bit 28为1的条目到完成队列中,而不需要进行数据传输;所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间存在非无映射no-map时,将该读命令提交读写缓冲区管理模块,读写缓冲区管理模块按照LPA映射颗粒度(4KB)切分成连续的控制请求,提交到映射表管理模块;映射表管理模块,对于每个4KB的控制请求,分别查询逻辑物理映射表;如果为no-map的,则标志该4KB为no-map,后端模块获取到该命令一系列的4KB读控制请求后,查询其状态标志,如果是no-map的,则不再往后继模块提交NAND读写请求,而是直接提交到no-map加速模块,no-map加速模块的no-map数据传输模块直接构建NVMe传输命令,将预先格式化好的数据发送给主机。
2.一种固态硬盘,其特征在于主机和SSD控制器之间通过NVMe协议进行通信,SSD接收到主机端读命令后,按照该命令的逻辑空间查询SSD内部的无映射管理表,判断该命令是否为无映射命令,如果是则直接将完成队列条目中用于标识是否为无映射的映射状态位设置为1,并直接结束该命令,并返回主机;否则根据该命令的逻辑空间地址读取数据,读完成后,将映射状态位设置为0,再返回主机;主机接收到完成队列条目后先判读映射状态位是否为1,如果是则直接由主机端将该命令对应的缓存置0后返回应用或直接返回应用;将NVMe标准协议的完成队列条目的状态字的bit 28作为映射状态位;判断该命令是否为无映射命令,增加无映射检查模块,SSD的前端模块中的命令接收模块负责命令解析和逻辑地址空间提取,完成后将命令提交给无映射检查模块,所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间是否属于无映射no-map,如果属于则直接构建状态字Bit 28为1的条目到完成队列中,而不需要进行数据传输;包括no-map加速模块和no-map映射表,所述no-map映射表记录了当前固态硬盘中处于no-map的地址信息,所述no-map映射表维护两种颗粒度的两级映射表,所述无映射检查模块根据主机提交的读命令的逻辑地址空间查找no-map映射表,判断该读命令上的地址空间是否都为无映射状态,如果是则直接提交给no-map加速模块,no-map加速模块直接构建状态字Bit 28为1的条目到完成队列中,而不需要进行数据传输;所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间存在非无映射no-map时,将该读命令提交读写缓冲区管理模块,读写缓冲区管理模块按照LPA映射颗粒度(4KB)切分成连续的控制请求,提交到映射表管理模块;映射表管理模块,对于每个4KB的控制请求,分别查询逻辑物理映射表;如果为no-map的,则标志该4KB为no-map,后端模块获取到该命令一系列的4KB读控制请求后,查询其状态标志,如果是no-map的,则不再往后继模块提交NAND读写请求,而是直接提交到no-map加速模块,no-map加速模块的no-map数据传输模块直接构建NVMe传输命令,将预先格式化好的数据发送给主机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳忆联信息系统有限公司,未经深圳忆联信息系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810258978.6/1.html,转载请声明来源钻瓜专利网。