CN108572797A - 一种固态硬盘读性能加速方法 - Google Patents

一种固态硬盘读性能加速方法 Download PDF

Info

Publication number
CN108572797A
CN108572797A CN201810187534.8A CN201810187534A CN108572797A CN 108572797 A CN108572797 A CN 108572797A CN 201810187534 A CN201810187534 A CN 201810187534A CN 108572797 A CN108572797 A CN 108572797A
Authority
CN
China
Prior art keywords
map
mapping
module
data
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810187534.8A
Other languages
English (en)
Inventor
王猛
徐伟华
许毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201810187534.8A priority Critical patent/CN108572797A/zh
Publication of CN108572797A publication Critical patent/CN108572797A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种固态硬盘读性能加速方法
技术领域
本发明涉及存储技术领域,尤其涉及一种固态硬盘读性能加速方法。
背景技术
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比例
HDD1 7113 2516 35%
HDD2 11007 6756 61%
HDD3 1893 1893 100%
HDD4 6355 3830 60%
HDD5 4530 4191 92%
HDD6 2061 1707 82%
HDD7 1819 1202 66%
HDD8 8651 6645 76%
发明内容
针对以上缺陷,本发明目的在于如何提高对于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;无映射单元CMD No-Map Entry:一般为512KB。
LBA->LPA的转换规则,按照线性转换原则,从0开始,连续的8个LBA对应唯一的LPA(例如LBA 0–7,对应LPA 0);连续的1024个LBA对应唯一的CMD no-map entry(例如LBA 0–1023,对应CMD No-Map Entry Index 0);“逻辑到物理映射表”,简称L2P表,其表索引由LPA索引,其值表示物理地址。
“No-Map映射管理表”,其表索引由CMD No-Map Entry Index索引;其值有两个可能性: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模块”发送格式化好的数据(例如全0)给到主机;注意到no-map数据是重复的,”No-Map Pattern模块”可以以较小的Buffer(例如对于128KB命令,可以压缩为一个4B的物理空间)进行格式化,而不需要类似DRAM中展开对应的128KB命令大小;进一步,基于其大小可压缩,可以将其放置到快速Memory中,提高访问性能。
图4是引入的方案中第二级no-map优化策略示意图,主机提交读命令到SSD的前端模块;SSD前端模块中的命令接收模块负责命令解析,提取其访问的逻辑地址空间(LBA_Start,LBA_Cnt),并提交到后继的no-map检查模块;No-map检查模块根据命令逻辑地址空间,查找no-map映射表;如果命令范围所对应的no-map映射表值存在0的值,则该命令为非no-map命令,需要继续往后继模块传输;读写缓冲区管理模块,按照LPA映射颗粒度(4KB)切分成连续的控制请求,提交到映射表管理模块;映射表管理模块,对于每个4KB的控制请求,查询”逻辑物理映射表-L2P表”。如果为no-map的,则标志该4KB为no-map。后端模块获取到该命令一系列的4KB读控制请求后,查询其状态标志,如果是no-map的,则不再往后继模块提交NAND读写请求,而是直接提交到no-map加速模块的no-map数据传输模块;no-map数据传输模块构建对应的数据传输命令,并从no-map Pattern获取格式化的数据进行传输。
综合针对命令全部no-map/部分no-map的读处理流程来看,由于减少了控制流通路径,进而能够在收到命令后较短的时间内构建NVMe数据传输指令,NVMe(Non-VolatileMemory express),是一种建立在M.2接口上的类似AHCI的一种协议,是专门为闪存类存储设计的协议。所以命令响应延迟以及服务时间大大地得到了降低;进一步的,通过对No-Map数据的特征压缩,可以将其放置快速Memory中,有效提升了带宽。
作为优化项,可以根据NVMe命令特征限制单个命令最大Size,例如128KB,如此在查询”no-map映射表”时可降低查询的次数,提高了效率。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

Claims (4)

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.根据权利要求2所述的固态硬盘读性能加速方法,其特征在于所述无映射检查模块根据主机提交的读命令的逻辑地址空间判断当前读取的空间存在非无映射no-map时,将该读命令提交读写缓冲区管理模块,读写缓冲区管理模块按照LPA映射颗粒度(4KB)切分成连续的控制请求,提交到映射表管理模块;映射表管理模块,对于每个4KB的控制请求,分别查询逻辑物理映射表;如果为no-map的,则标志该4KB为no-map,后端模块获取到该命令一系列的4KB读控制请求后,查询其状态标志,如果是no-map的,则不再往后继模块提交NAND读写请求,而是直接提交到no-map加速模块,no-map加速模块的no-map数据传输模块直接构建NVMe传输命令,将预先格式化好的数据发送给主机。
4.根据权利要求3所述的固态硬盘读性能加速方法,其特征在于预先格式化好的数据所有数据都相同,根据该数据相同的特征进行压缩,压缩后的数据直接放置在缓存中。
CN201810187534.8A 2018-03-07 2018-03-07 一种固态硬盘读性能加速方法 Pending CN108572797A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810187534.8A CN108572797A (zh) 2018-03-07 2018-03-07 一种固态硬盘读性能加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810187534.8A CN108572797A (zh) 2018-03-07 2018-03-07 一种固态硬盘读性能加速方法

Publications (1)

Publication Number Publication Date
CN108572797A true CN108572797A (zh) 2018-09-25

Family

ID=63576025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810187534.8A Pending CN108572797A (zh) 2018-03-07 2018-03-07 一种固态硬盘读性能加速方法

Country Status (1)

Country Link
CN (1) CN108572797A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710187A (zh) * 2018-12-24 2019-05-03 深圳忆联信息系统有限公司 NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质
CN109857346A (zh) * 2019-02-26 2019-06-07 深圳忆联信息系统有限公司 一种提高ssd读写性能的方法、装置、计算机设备及存储介质
CN110399312A (zh) * 2019-07-30 2019-11-01 深圳大普微电子科技有限公司 提高固态硬盘读性能的方法、固态硬盘及存储介质
CN110888602A (zh) * 2019-11-18 2020-03-17 深圳忆联信息系统有限公司 基于固态硬盘的读性能提升方法、装置及计算机设备
CN112835520A (zh) * 2021-01-29 2021-05-25 深圳忆联信息系统有限公司 基于映射表动态加载的读请求处理方法及装置
CN114327281A (zh) * 2021-12-30 2022-04-12 深圳忆联信息系统有限公司 用于ssd的tcg软硬件加速方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461387A (zh) * 2014-12-02 2015-03-25 记忆科技(深圳)有限公司 一种提高固态硬盘对未映射区域的读性能的方法
CN106502586A (zh) * 2016-10-17 2017-03-15 记忆科技(深圳)有限公司 一种提高固态硬盘顺序读性能的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461387A (zh) * 2014-12-02 2015-03-25 记忆科技(深圳)有限公司 一种提高固态硬盘对未映射区域的读性能的方法
CN106502586A (zh) * 2016-10-17 2017-03-15 记忆科技(深圳)有限公司 一种提高固态硬盘顺序读性能的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710187A (zh) * 2018-12-24 2019-05-03 深圳忆联信息系统有限公司 NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质
CN109710187B (zh) * 2018-12-24 2022-12-02 深圳忆联信息系统有限公司 NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质
CN109857346A (zh) * 2019-02-26 2019-06-07 深圳忆联信息系统有限公司 一种提高ssd读写性能的方法、装置、计算机设备及存储介质
CN110399312A (zh) * 2019-07-30 2019-11-01 深圳大普微电子科技有限公司 提高固态硬盘读性能的方法、固态硬盘及存储介质
CN110888602A (zh) * 2019-11-18 2020-03-17 深圳忆联信息系统有限公司 基于固态硬盘的读性能提升方法、装置及计算机设备
CN112835520A (zh) * 2021-01-29 2021-05-25 深圳忆联信息系统有限公司 基于映射表动态加载的读请求处理方法及装置
CN114327281A (zh) * 2021-12-30 2022-04-12 深圳忆联信息系统有限公司 用于ssd的tcg软硬件加速方法、装置、计算机设备及存储介质
CN114327281B (zh) * 2021-12-30 2023-12-05 深圳忆联信息系统有限公司 用于ssd的tcg软硬件加速方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN108572797A (zh) 一种固态硬盘读性能加速方法
CN108549610A (zh) 一种NVMe扩展的实现方法及固态硬盘
CN108563401B (zh) 一种ssd性能加速方法
US9454319B2 (en) Storage system data hardening
US20130073798A1 (en) Flash memory device and data management method
US8671259B2 (en) Storage system data hardening
CN103733183B (zh) 未对准数据结合
US20170286507A1 (en) Database search system and database search method
CN104461387B (zh) 一种提高固态硬盘对未映射区域的读性能的方法
CN104461393A (zh) 一种闪存存储器的混合映射方法
CN113791994B (zh) 一种基于AXI协议wrap访问的DDR控制器及处理方法
TWI812748B (zh) 記憶體系統及刪除重複記憶體系統
WO2021035555A1 (zh) 一种固态硬盘的数据存储方法、装置及固态硬盘ssd
US20170075600A1 (en) Method of operating data storage device and method of operating data processing system including same
TW201835769A (zh) 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元
CN107066202A (zh) 具有多个固态盘的存储设备
CN109213423B (zh) 基于地址屏障无锁处理并发io命令
CN113407120B (zh) 基于hmb的映射表管理方法、装置及计算机设备
TWI407310B (zh) 資料儲存裝置及資料存取方法
TW202234226A (zh) 儲存裝置、快閃記憶體控制器及其控制方法
US8631204B2 (en) Multi-resolution cache monitoring
CN112069088B (zh) 一种地址映射管理方法及相关装置、设备
CN103942156A (zh) 存储器输出页面零数据的方法及存储器
CN105701060A (zh) 基于fpga的高速实时数据记录系统
CN109213424B (zh) 并发io命令的无锁处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180925

RJ01 Rejection of invention patent application after publication