一种固态硬盘读性能加速方法技术

技术编号:19023019 阅读:18 留言:0更新日期:2018-09-26 18:58
本发明专利技术公开了一种固态硬盘读性能加速方法,其特征在于增加无映射检查模块,SSD的前端模块中的命令接收模块负责命令解析和逻辑地址空间提取,完成后将命令提交给无映射检查模块,所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间是否属于无映射(no‑map),如果属于则直接发送预先格式化好的数据给主机。通过维护大颗粒度的两级no‑map映射表,对整个命令No‑Map的情形通过SSD前端加速模块直接处理,大大降低了读响应延迟;对于命令内部分No‑Map的情形,通过SSD后端加速模块处理,降低了读响应延迟。

【技术实现步骤摘要】
一种固态硬盘读性能加速方法
本专利技术涉及存储
,尤其涉及一种固态硬盘读性能加速方法。
技术介绍
SSD(固态硬盘)已经被广泛应用于各种场合,随着PC的性能要求提升,对于性能影响瓶颈的存储设备的性能优化已经成为业界主要技术攻关点。在目前主流的OED/ODM厂商中,一些测试工具能够模拟客户典型应用场景,对磁盘进行性能测试。在这些测试序列中,其部分特征对于命令响应延迟以及服务时间要求很强,如何进行针对性的优化,是提升产品性能的关键措施。图1是典型SSD读响应处理流程;主机提交读命令到SSD的前端模块;SSD前端模块将命令分割成映射单元(典型如4KB),提交到读写缓冲区管理模块;读写缓冲区管理模块从缓存Memory中(典型如DRAM)分配空间,后再提交操作请求到映射表管理模块中;映射表管理模块负责把逻辑地址转换成NAND物理地址,后再提交操作请求到后端模块,后端模块根据物理地址发起对NAND读请求,并等待NAND操作请求完成,此时数据已经加载到预先分配的Memory中,控制操作请求依次返回上层模块。前端模块接收到完成的控制操作请求后,构建数据传输命令,实际发起对主机的数据传输。从上面整个流程来看,从SSD接收到主机命令,到真正发起数据传输,中间需要经过众多环节,命令的响应延迟以及服务时间很大。对于磁盘数据来说,存在一种特殊的数据,其代表对应的逻辑空间实际上不存在有效数据:出厂后从来没有写入数据或者主机通过特殊的命令废弃了其中数据,我们称此种数据为no-map数据(无映射数据)。对于此类型的数据,只需返回协议规定的特定数据即可(例如全0)。如表1所示,为一个SSD跑性能测试项时的读命令统计信息,测试了HDD1~HDD8共8个固态硬盘,并统计了所有的读命令数量及读命令为no-map数据的no-map读命令数量。我们可以看到在各个分项测试中,no-map数据的命令数占比很大。因此对于此类型的命令,如果全部走正常路径,由于信息传递深度,以及DRAM效率的问题,导致性能受到制约,进而影响了整体测试项得分。表1:PCMark测试子项读命令数No-map读命令数Nomapcmd占RDcmd比例HDD17113251635%HDD211007675661%HDD318931893100%HDD46355383060%HDD54530419192%HDD62061170782%HDD71819120266%HDD88651664576%
技术实现思路
针对以上缺陷,本专利技术目的在于如何提高对于No-Map的命令的响应速度,进而整体上提高固态硬盘读性能。为了实现上述目的,本专利技术提供了一种固态硬盘读性能加速方法,其特征在于增加无映射检查模块,SSD的前端模块中的命令接收模块负责命令解析和逻辑地址空间提取,完成后将命令提交给无映射检查模块,所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间是否属于无映射no-map,如果属于则直接发送预先格式化好的数据给主机。所述的固态硬盘读性能加速方法,其特征在于还包括no-map加速模块和no-map映射表,所述no-map映射表记录了当前固态硬盘中处于no-map的地址信息,所述no-map映射表维护两种颗粒度的两级映射表,所述无映射检查模块根据主机提交的读命令的逻辑地址空间查找no-map映射表,判断该读命令上的地址空间是否都为无映射状态,如果是则直接提交给no-map加速模块,no-map加速模块的no-map数据传输模块直接构建NVMe传输命令,将预先格式化好的数据发送给主机。所述的固态硬盘读性能加速方法,其特征在于所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间存在非无映射no-map时,将该读命令提交读写缓冲区管理模块,读写缓冲区管理模块按照LPA映射颗粒度4KB切分成连续的控制请求,提交到映射表管理模块;映射表管理模块,对于每个4KB的控制请求,分别查询逻辑物理映射表;如果为no-map的,则标志该4KB为no-map,后端模块获取到该命令一系列的4KB读控制请求后,查询其状态标志,如果是no-map的,则不再往后继模块提交NAND读写请求,而是直接提交到no-map加速模块,no-map加速模块的no-map数据传输模块直接构建NVMe传输命令,将预先格式化好的数据发送给主机。所述的固态硬盘读性能加速方法,其特征在于预先格式化好的数据所有数据都相同,根据该数据相同的特征进行压缩,压缩后的数据直接放置在缓存中。本专利技术通过维护大颗粒度的两级no-map映射表,对整个命令No-Map的情形通过SSD前端加速模块直接处理,大大降低了读响应延迟;对于命令内部分No-Map的情形,通过SSD后端加速模块处理,降低了读响应延迟。附图说明图1是图1是典型SSD读响应处理流程;图2是两级no-map映射表构成示意图;图3是引入的方案中第一级no-map优化策略示意图;图4是引入的方案中第二级no-map优化策略示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图2是两级no-map映射表构成示意图,SSD内部涉及到的映射表、颗粒度以及转换规则,其中:逻辑页地址LBA:为主机端访问的最小可寻址单元,一般为512Bytes;逻辑块地址LPA:为SSD内部的逻辑映射单元,一般为4KB;无映射单元CMDNo-MapEntry:一般为512KB。LBA->LPA的转换规则,按照线性转换原则,从0开始,连续的8个LBA对应唯一的LPA(例如LBA0–7,对应LPA0);连续的1024个LBA对应唯一的CMDno-mapentry(例如LBA0–1023,对应CMDNo-MapEntryIndex0);“逻辑到物理映射表”,简称L2P表,其表索引由LPA索引,其值表示物理地址。“No-Map映射管理表”,其表索引由CMDNo-MapEntryIndex索引;其值有两个可能性:1表示对应LBA/LPA范围全部是no-map的;0表示非全no-map;要么全部有map,要么部分有map部分无map,需要结合L2P表在4KB级别做进一步查询。图3是引入的方案中第一级no-map优化策略示意图。对于no-map的command,其执行路径与传统SSD读路径差别很大:主机提交读命令到SSD的前端模块;SSD前端模块中的命令接收模块负责命令解析,提取其访问的逻辑地址空间(LBA_Start,LBA_Cnt),并提交到后继的no-map检查模块;No-map检查模块根据命令逻辑地址空间,查找no-map映射表;如果命令范围所对应的no-map映射表值均为1,则该命令为no-map命令;对于此命令,不再往后继传统的”读写缓冲区管理模块”,”映射表管理模块”等提交,而是直接提交给”No-Map加速模块”的”No-Map数据传输模块”;“No-Map数据传输模块”构建NVMe传输命令,并从”No-MapPattern模块”发送格式化好的数本文档来自技高网
...

【技术保护点】
1.一种固态硬盘读性能加速方法,其特征在于增加无映射检查模块,SSD的前端模块中的命令接收模块负责命令解析和逻辑地址空间提取,完成后将命令提交给无映射检查模块,所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间是否属于无映射no‑map,如果属于则直接发送预先格式化好的数据给主机。

【技术特征摘要】
1.一种固态硬盘读性能加速方法,其特征在于增加无映射检查模块,SSD的前端模块中的命令接收模块负责命令解析和逻辑地址空间提取,完成后将命令提交给无映射检查模块,所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间是否属于无映射no-map,如果属于则直接发送预先格式化好的数据给主机。2.根据权利要求1所述的固态硬盘读性能加速方法,其特征在于还包括no-map加速模块和no-map映射表,所述no-map映射表记录了当前固态硬盘中处于no-map的地址信息,所述no-map映射表维护两种颗粒度的两级映射表,所述无映射检查模块根据主机提交的读命令的逻辑地址空间查找no-map映射表,判断该读命令上的地址空间是否都为无映射状态,如果是则直接提交给no-map加速模块,no-map加速模块的no-map数据传输模块直接构建NVMe传输命令,将预先格式化好的数据发送给主机。3.根据权利...

【专利技术属性】
技术研发人员:王猛徐伟华许毅
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1