一种SSD性能加速方法技术

技术编号:19008910 阅读:77 留言:0更新日期:2018-09-22 08:49
本发明专利技术公开了一种SSD性能加速方法在写入时,引入了”模式识别”模块,通过将全0的用户数据写入转换成映射表写入,从而极大地降低了写放大。而在读出的过程,预先在内存中格式化好全0的读缓冲区。当主机读取此前的全0写入的数据时,通过查询映射表可知其为no‑map的,故直接从格式化好的读缓冲区返回数据给主机。由于不需要从NAND上加载数据,此命令的响应延迟能够得到大大的提升。

An accelerated method of SSD performance

The invention discloses a SSD performance acceleration method which introduces a \pattern recognition\ module when writing, and greatly reduces the write amplification by converting all zero user data into mapping table writing. In the readout process, all 0 of the read buffer is formatted in memory in advance. When the host reads all the data written by previous 0, it can be known by querying the mapping table that it is no map, so it returns the data to the host directly from the formatted read buffer. Because no data is loaded from NAND, the response delay of this command can be greatly improved.

【技术实现步骤摘要】
一种SSD性能加速方法
本专利技术涉及存储
,尤其涉及一种SSD性能加速方法。
技术介绍
SSD(固态硬盘)已经被广泛应用于各种场合,随着PC的性能要求提升,对于性能影响瓶颈的存储设备的性能优化已经成为业界主要技术攻关点。在目前主流的OED/ODM厂商中,一些测试工具能够模拟客户典型应用场景,对磁盘进行性能测试。在这些测试序列中,其部分特征对于命令响应延迟以及服务时间要求很强,如何进行针对性的优化,是提升产品性能的关键措施。图1是典型SSD读响应处理流程;主机提交读命令到SSD的前端模块;SSD前端模块将命令分割成映射单元(典型如4KB),提交到读写缓冲区管理模块;读写缓冲区管理模块从缓存Memory中(典型如DRAM)分配空间,后再提交操作请求到映射表管理模块中;映射表管理模块负责把逻辑地址转换成NAND物理地址,后再提交操作请求到后端模块,后端模块根据物理地址发起对NAND读请求,并等待NAND操作请求完成,此时数据已经加载到预先分配的Memory中,控制操作请求依次返回上层模块。前端模块接收到完成的控制操作请求后,构建数据传输命令,实际发起对主机的数据传输。从上面整个流程来看,从SSD接收到主机命令,到真正发起数据传输,中间需要经过众多环节,命令的响应延迟以及服务时间很大。
技术实现思路
针对以上缺陷,本专利技术目的在于如何提高对用户数据存在大量全0情况的数据的读和写速度,降低对FLASH的写放大。为了实现上述目的,本专利技术提供了一种SSD性能加速方法,SSD控制器通过前端模块接收主机写命令,并将主机写命令分割成以LBA为单位的映射单元,多个连续的LBA组成一个LPA,提交到读写缓冲区模块,读写缓冲区管理模块从缓存中分配缓存空间,其特征在于增加模式识别模块,启动数据传输将数据写入到分配的缓存空间,模式识别模块对缓存的数据进行识别,判断同一个LPA的对应数据是否为全0,如果是则将地址映射表中该LPA表项对应的no-map特征值修改为1,并直接返回写入完成;如果为非全0,则提交操作请求到映射表管理模块,映射表管理模块负责把逻辑地址转换成NAND物理地址,提交操作请求到后端模块,后端模块根据物理地址发起对NAND写请求。所述的SSD性能加速方法,其特征在于SSD控制器通过前端模块接收主机读命令,读写缓冲区管理模块从缓存中分配缓存空间,映射表管理模块查询命令对应的LPA的映射表项,判断该LPA表项对应的no-map特征值是否为1,如果是则从读写缓冲区中预先格式化好数据全为0的缓存区传输数据给主机;否则提交操作请求到映射表管理模块,映射表管理模块负责把逻辑地址转换成NAND物理地址,提交操作请求到后端模块,后端模块根据物理地址发起对NAND读请求。本专利技术在写入时,引入了”模式识别”模块,通过将全0的用户数据写入转换成映射表写入,从而极大地降低了写放大。而在读出的过程,预先在内存中格式化好全0的读缓冲区。当主机读取此前的全0写入的数据时,通过查询映射表可知其为no-map的,故直接从格式化好的读缓冲区返回数据给主机。由于不需要从NAND上加载数据,此命令的响应延迟能够得到大大的提升。附图说明图1是典型SSD读响应处理流程;图2是SSD内部映射表构成示意图;图3是写入路径优化策略示意图;图4是写入路径优化后带来的收益说明图;图5是写入路径优化后后续主机读数据的响应流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图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索引,其值表示物理地址。其值的32bit可以分为三部分:Parity,奇偶校验bit,对此32bit提供错误检测;NoMap:用来指示此LPA数据是否无有效主机写入的数据。如果为1,后续主机读取该LPA数据时,SSD返回特定数据(如全0);PPAAddress:该笔LPA数据所存放的NAND物理地址。图3是写入路径优化策略示意,具体按如下步骤进行处理:S1:主机提交写命令到SSD的前端模块,LBA0-32767;S2:读写缓存区模块为该命令在Memory中分配读写缓冲区;S3:启动数据传输将数据写入到Memory的读写缓冲区中;S4:完成数据传输后,由”模式识别模块”对读写缓冲区中用户数据进行检查;如果对应数据为全0,则根据前述的LBA/LPA转换规则,将对应的LPA的映射表项中的no-map值修改为1;如果对应数据非全0,则走传统的写通路,将用户数据一一写入到NAND上。S5:将修改后的映射表写入到NAND上。图4是写入路径优化后带来的收益说明图;原来需要写入16MB的用户数据,而此笔数据对应的L2P表大小仅仅为16KB。从前面描述可知,只需要将此16KB数据写入NAND即可。图5是写入路径优化后后续主机读数据的响应流程图。写入路径优化后后续主机读取该数据时的响应流程也做了相应调整。S11:主机提交读命令到SSD的前端模块,LBA0-32767;S12:读写缓存区模块为该命令在Memory中分配读缓冲区;S13:映射表管理模块查询命令对应LPA的映射,根据前述的操作流程可知,对应的L2P表项的no-map字段均为1,所以不需要像传统读命令那样从NAND加载数据,而是可以直接返回全0数据。S14:从读写缓冲区中预先格式化好的缓存区(其数据全0)传输数据给主机。综合本专利技术中对于某些测试工具中,命令数据全0的处理过程可见:在写入时,引入了”模式识别”模块,通过将全0的用户数据写入转换成映射表写入,从而极大地降低了写放大。而在读出的过程,预先在内存中格式化好全0的读缓冲区。当主机读取此前的全0写入的数据时,通过查询映射表可知其为no-map的,故直接从格式化好的读缓冲区返回数据给主机。由于不需要从NAND上加载数据,此命令的响应延迟能够得到大大的提升。以上所揭露的仅为本专利技术一种实施例而已,当然不能以此来限定本专利技术之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本专利技术权利要求所作的等同变化,仍属于本专利技术所涵盖的范围。本文档来自技高网...
一种SSD性能加速方法

【技术保护点】
1.一种SSD性能加速方法,SSD控制器通过前端模块接收主机写命令,并将主机写命令分割成以LBA为单位的映射单元,多个连续的LBA组成一个LPA,提交到读写缓冲区模块,读写缓冲区管理模块从缓存中分配缓存空间,其特征在于增加模式识别模块,启动数据传输将数据写入到分配的缓存空间,模式识别模块对缓存的数据进行识别,判断同一个LPA的对应数据是否为全0,如果是则将地址映射表中该LPA表项对应的no‑map特征值修改为1,并直接返回写入完成;如果为非全0,则提交操作请求到映射表管理模块,映射表管理模块负责把逻辑地址转换成NAND物理地址,提交操作请求到后端模块,后端模块根据物理地址发起对NAND写请求。

【技术特征摘要】
1.一种SSD性能加速方法,SSD控制器通过前端模块接收主机写命令,并将主机写命令分割成以LBA为单位的映射单元,多个连续的LBA组成一个LPA,提交到读写缓冲区模块,读写缓冲区管理模块从缓存中分配缓存空间,其特征在于增加模式识别模块,启动数据传输将数据写入到分配的缓存空间,模式识别模块对缓存的数据进行识别,判断同一个LPA的对应数据是否为全0,如果是则将地址映射表中该LPA表项对应的no-map特征值修改为1,并直接返回写入完成;如果为非全0,则提交操作请求到映射表管理模块,映射表管理模块负责把逻辑地址转换成NAND...

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

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

1