CN108563401B - 一种ssd性能加速方法 - Google Patents
一种ssd性能加速方法 Download PDFInfo
- Publication number
- CN108563401B CN108563401B CN201810258229.3A CN201810258229A CN108563401B CN 108563401 B CN108563401 B CN 108563401B CN 201810258229 A CN201810258229 A CN 201810258229A CN 108563401 B CN108563401 B CN 108563401B
- Authority
- CN
- China
- Prior art keywords
- data
- mapping table
- read
- module
- write
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种SSD性能加速方法在写入时,引入了”模式识别”模块,通过将全0的用户数据写入转换成映射表写入,从而极大地降低了写放大。而在读出的过程,预先在内存中格式化好全0的读缓冲区。当主机读取此前的全0写入的数据时,通过查询映射表可知其为no‑map的,故直接从格式化好的读缓冲区返回数据给主机。由于不需要从NAND上加载数据,此命令的响应延迟能够得到大大的提升。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种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;无映射单元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索引,其值表示物理地址。其值的32bit可以分为三部分:
Parity,奇偶校验bit,对此32bit提供错误检测;
No Map:用来指示此LPA数据是否无有效主机写入的数据。如果为1,后续主机读取该LPA数据时,SSD返回特定数据(如全0);
PPA Address:该笔LPA数据所存放的NAND物理地址。
图3是写入路径优化策略示意,具体按如下步骤进行处理:
S1:主机提交写命令到SSD的前端模块,LBA 0-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的前端模块,LBA 0-32767;
S12:读写缓存区模块为该命令在Memory中分配读缓冲区;
S13:映射表管理模块查询命令对应LPA的映射,根据前述的操作流程可知,对应的L2P表项的no-map字段均为1,所以不需要像传统读命令那样从NAND加载数据,而是可以直接返回全0数据。
S14:从读写缓冲区中预先格式化好的缓存区(其数据全0)传输数据给主机。
综合本发明中对于某些测试工具中,命令数据全0的处理过程可见:在写入时,引入了”模式识别”模块,通过将全0的用户数据写入转换成映射表写入,从而极大地降低了写放大。而在读出的过程,预先在内存中格式化好全0的读缓冲区。当主机读取此前的全0写入的数据时,通过查询映射表可知其为no-map的,故直接从格式化好的读缓冲区返回数据给主机。由于不需要从NAND上加载数据,此命令的响应延迟能够得到大大的提升。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (2)
1.一种SSD性能加速方法,SSD控制器通过前端模块接收主机写命令,并将主机写命令分割成以LBA为单位的映射单元,多个连续的LBA组成一个LPA,提交到读写缓冲区模块,读写缓冲区管理模块从缓存中分配缓存空间,其特征在于增加模式识别模块,启动数据传输将数据写入到分配的缓存空间,模式识别模块对缓存的数据进行识别,判断同一个LPA的对应数据是否为全0,如果是则将地址映射表中该LPA表项对应的no-map特征值修改为1,并直接返回写入完成;如果为非全0,则提交操作请求到映射表管理模块,映射表管理模块负责把逻辑地址转换成NAND物理地址,提交操作请求到后端模块,后端模块根据物理地址发起对NAND写请求。
2.根据权利要求1所述的SSD性能加速方法,其特征在于SSD控制器通过前端模块接收主机读命令,读写缓冲区管理模块从缓存中分配缓存空间,映射表管理模块查询命令对应的LPA的映射表项,判断该LPA表项对应的no-map特征值是否为1,如果是则从读写缓冲区中预先格式化好数据全为0的缓存区传输数据给主机;否则提交操作请求到映射表管理模块,映射表管理模块负责把逻辑地址转换成NAND物理地址,提交操作请求到后端模块,后端模块根据物理地址发起对NAND读请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810258229.3A CN108563401B (zh) | 2018-03-27 | 2018-03-27 | 一种ssd性能加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810258229.3A CN108563401B (zh) | 2018-03-27 | 2018-03-27 | 一种ssd性能加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563401A CN108563401A (zh) | 2018-09-21 |
CN108563401B true CN108563401B (zh) | 2021-05-28 |
Family
ID=63533457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810258229.3A Active CN108563401B (zh) | 2018-03-27 | 2018-03-27 | 一种ssd性能加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563401B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018787A (zh) * | 2019-02-26 | 2019-07-16 | 深圳忆联信息***有限公司 | 基于ssd全***的固件读写方法、装置和计算机设备 |
CN109857346A (zh) * | 2019-02-26 | 2019-06-07 | 深圳忆联信息***有限公司 | 一种提高ssd读写性能的方法、装置、计算机设备及存储介质 |
CN110175000A (zh) * | 2019-05-24 | 2019-08-27 | 深圳忆联信息***有限公司 | 基于固态硬盘的读写性能提升方法、装置和计算机设备 |
CN110209355A (zh) * | 2019-05-28 | 2019-09-06 | 深圳忆联信息***有限公司 | 基于固态硬盘的全固件读写操作优化方法和装置 |
CN110333826A (zh) * | 2019-07-04 | 2019-10-15 | 深圳忆联信息***有限公司 | Ssd读写性能提升方法、装置、计算机设备及存储介质 |
CN113094296B (zh) * | 2021-04-29 | 2023-10-10 | 深圳忆联信息***有限公司 | Ssd读加速的实现方法、装置、计算机设备及存储介质 |
CN114327270B (zh) * | 2021-12-23 | 2023-09-15 | 郑州云海信息技术有限公司 | 一种请求处理方法、装置、设备及可读存储介质 |
CN114817093B (zh) * | 2022-06-30 | 2022-12-02 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、***、装置及存储介质 |
CN116860184B (zh) * | 2023-09-04 | 2024-01-09 | 苏州浪潮智能科技有限公司 | 磁盘读写加速方法、装置、阵列卡、服务器、设备和介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4460967B2 (ja) * | 2004-07-23 | 2010-05-12 | 株式会社東芝 | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 |
JP2009211234A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8281065B2 (en) * | 2009-09-01 | 2012-10-02 | Apple Inc. | Systems and methods for determining the status of memory locations in a non-volatile memory |
CN102195979B (zh) * | 2011-04-28 | 2013-11-20 | 深信服网络科技(深圳)有限公司 | 基于加速key进行网络加速的方法及加速key |
JP5586718B2 (ja) * | 2012-06-19 | 2014-09-10 | 株式会社東芝 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
US9645739B2 (en) * | 2014-09-26 | 2017-05-09 | Intel Corporation | Host-managed non-volatile memory |
JP6142860B2 (ja) * | 2014-11-05 | 2017-06-07 | 日本電気株式会社 | ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム |
CN104461387B (zh) * | 2014-12-02 | 2018-04-27 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘对未映射区域的读性能的方法 |
-
2018
- 2018-03-27 CN CN201810258229.3A patent/CN108563401B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108563401A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563401B (zh) | 一种ssd性能加速方法 | |
CN108549610B (zh) | 一种NVMe扩展的实现方法及固态硬盘 | |
US8010770B2 (en) | Caching device for NAND flash translation layer | |
CN106448737B (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
US20180173621A1 (en) | Unaligned data coalescing | |
CN112506814B (zh) | 一种存储器及其控制方法与存储*** | |
US11157399B2 (en) | Data storage devices and data processing methods with dynamic programming scheme | |
KR20210027563A (ko) | 저장 장치 및 그 동작 방법 | |
KR101075907B1 (ko) | 반도체 기억 장치, 데이터 전송 장치 및 반도체 기억 장치의 제어 방법 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
CN108572797A (zh) | 一种固态硬盘读性能加速方法 | |
CN113407120B (zh) | 基于hmb的映射表管理方法、装置及计算机设备 | |
US10534562B2 (en) | Solid state drive | |
CN111026678B (zh) | 基于固态硬盘的缓存设计方法、装置及计算机设备 | |
US11216381B2 (en) | Data storage devices and data processing methods | |
US20140269086A1 (en) | System and method of accessing memory of a data storage device | |
CN110309075B (zh) | 存储器控制器以及具有存储器控制器的存储器*** | |
CN110968527A (zh) | Ftl提供的缓存 | |
CN114974365A (zh) | Ssd有限窗口数据去重识别方法、装置和计算机设备 | |
CN109783024B (zh) | 数据存储处理方法及装置 | |
US10838621B2 (en) | Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection | |
US11580025B1 (en) | Cache prefetching with dynamic interleaving configuration modification | |
US20230315622A1 (en) | Method and non-transitory computer-readable storage medium and apparatus for data access in response to host discard commands | |
US20240012564A1 (en) | Memory controller and storage device including the same |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |