CN108170379A - 一种提升ssd稳态时写命令服务质量的方法及ssd - Google Patents
一种提升ssd稳态时写命令服务质量的方法及ssd Download PDFInfo
- Publication number
- CN108170379A CN108170379A CN201711461337.2A CN201711461337A CN108170379A CN 108170379 A CN108170379 A CN 108170379A CN 201711461337 A CN201711461337 A CN 201711461337A CN 108170379 A CN108170379 A CN 108170379A
- Authority
- CN
- China
- Prior art keywords
- write
- host
- buffer
- space
- flow control
- 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
Links
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
- 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/0656—Data buffering arrangements
-
- 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/0674—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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种提升SSD稳态时写命令服务质量的方法及SSD,固件算法模块主要分为前端,中端和后端,前端负责申请主机写空间以供接收主机端的数据,收完主机数据后的写空间Write Buffer会沉积在写缓冲Write Cache中,中端通过碎片整理任务平衡主机的写入请求和自身内部产生的数据搬移请求,其特征在于在主机写空间申请与主机数据传输的路径中,增加一个流控阀门,通过流控阀门控制写空间流控速率。通过对前端写Buffer流通速度的控制,平滑了主机写命令响应延时的曲线,大幅减低了过长响应延时的概率,提升了写命令的Qos性能。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提升SSD稳态时写命令服务质量的方法及SSD。
背景技术
在一些企业级或者Data Center的应用场景下,对稳态下SSD(Solid StateDrive)的Qos(Quality of Service)提出了更高的要求,往往需求SSD对于4KB写命令的响应时间99.9%在5ms以内,有的甚至要求99.999%都在5ms以内。稳态下SSD的内部会实现碎片整理GC(Garbage Collection)策略,来保证SSD的持续写入。传统的固件算法仅仅依靠GC的运转效率来控制Qos,存在局限性。当SSD进入稳态时,意味着SSD后台GC任务正在稳定的运行中。传统固件算法主要分为三个大模块:前端Front-End,中端Mid-End和后端Back-End。图1是传统的前端写buffer分配的贪心策略和中端GC流控策略示意图,前端主要负责申请主机写空间Host Write Buffer以供接收主机端的数据,接收完主机数据后的写空间Buffer会沉积在Write Cache(写缓冲)中从空闲主机写空间池Free Host Write BufferAllocation Pool中分配写缓存。而中端的GC任务需要负责平衡主机的的写入请求和自身内部产生的数据搬移请求,以充分利用SSD的后端nand flash的读写带宽。所以在GC内部存在一个阀门,针对写缓存Write Cache中主机写请求进行流量控制,GC需要平衡主机写HostWrite、内部读和内部写的比例,为了充分利用后端带宽,会阶段性放行主机写,但也可能存在长时间阻塞主机写请求。在某一段时间片内,GC的阀门可能开放得很小甚至关闭,由于前端的Host Write Buffer一般采取贪心的策略去分配空闲空间Buffer,这会导致大量的有主机数据的写空间Write Buffer沉积在写缓存Write Cache中,消耗了大部分的写空间Write Buffer资源,造成前端申请不到空闲空间Free Buffer,特别是当缓存buffer回收的速度赶不上分配的速度时,从而不能及时响应主机写命令数据传输的请求。从写命令的Qos(服务质量)的角度看,就是会发生间歇性的写命令响应时间过长,如图3传统固件算法的写命令响应延时效果图,假设写命令的服务质量要求99.9%写命令的延时<5ms,很明显的波动非常大,波形陡峭,Qos性能不能达标。
传统固件算法的GC更关注于后端带宽的有效利用,从而在整体宏观上体现出较为稳定的稳态写性能。这忽视了在微观层面,某些时刻的写命令的响应延时问题。
发明内容
针对以上缺陷,本发明目的是如何整体上平稳写命令响应延迟,提高写命令服务质量。
为了解决以上问题本发明提出了一种提升SSD稳态时写命令服务质量的方法,固件算法模块主要分为前端,中端和后端,前端负责申请主机写空间以供接收主机端的数据;接收完主机数据后的写空间Write Buffer会沉积在写缓冲Write Cache中,中端通过碎片整理任务平衡主机的写入请求和自身内部产生的数据搬移请求,其特征在于在主机写空间申请与主机数据传输的路径中,增加一个流控阀门,通过流控阀门控制写空间流控速率。
所述的提升SSD稳态时写命令服务质量的方法,其特征在于流控阀门根据水位线的高低调整写空间流控速率,所述水位线为主机写空间在写缓存的数量或比例。
所述的提升SSD稳态时写命令服务质量的方法,其特征在于在写缓存中增加水位线数据,前端写空间的流控阀门查询当下写缓存中的主机写空间数量;当写缓存中的主机写空间超过设定的高水位线High-Water-Mark阈值时,说明GC在做后台的流控,暂时阻塞了Host写请求,前端写Buffer的流控速率控制在Rate-base的基础上减少,来减缓前端写Buffer的流通速度;当写缓存Write Cache中的主机写空间Host Write Buffer数量低于过设定的低水位线Low-Water-Mark阈值时,将前端写Buffer的流控速率在Rate-base的基础上增加,增大前端写Buffer的流通速度。
一种SSD,包括固件算法模块,固件算法模块主要分为前端,中端和后端,前端负责申请主机写空间以供接收主机端的数据;接收完主机数据后的写空间Write Buffer会沉积在写缓冲Write Cache中,中端通过碎片整理任务平衡主机的写入请求和自身内部产生的数据搬移请求,其特征在于在主机写空间申请与主机数据传输的路径中,增加一个流控阀门,通过流控阀门控制写空间流控速率。
所述的SSD,其特征在于流控阀门根据水位线的高低调整写空间流控速率,所述水位线为主机写空间在写缓存的数量或比例。
所述的SSD,其特征在于在写缓存中增加水位线数据,前端写空间的流控阀门查询当下写缓存中的主机写空间数量;当写缓存中的主机写空间超过设定的高水位线High-Water-Mark阈值时,说明GC在做后台的流控,暂时阻塞了Host写请求,前端写Buffer的流控速率控制在Rate-base的基础上减少,来减缓前端写Buffer的流通速度;当写缓存WriteCache中的主机写空间Host WriteBuffer数量低于过设定的低水位线Low-Water-Mark阈值时,将前端写Buffer的流控速率在Rate-base的基础上增加,增大前端写Buffer的流通速度。
本发明的有益效果是:通过对前端写Buffer流通速度的控制,平滑了主机写命令响应延时的曲线,大幅减低了过长响应延时的概率,提升了写命令的Qos性能。
附图说明
图1是传统的前端写buffer分配的贪心策略和中端GC流控策略示意图;
图2是优化的前端写buffer的Rate-base流控策略结合中端GC流控策略示意图;
图3是传统固件算法的写命令响应延时效果图;
图4是优化后的固件算法的写命令响应延时效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
提升SSD稳态时写命令服务质量的方法,固件算法模块主要分为主机写命令通过前端,中端和后端,前端负责申请主机写空间以供接收主机端的数据;接收完主机数据后的写空间Write Buffer会沉积在写缓冲Write Cache中,中端通过碎片整理任务平衡主机的写入请求和自身内部产生的数据搬移请求,其特征在于在主机写空间申请与主机数据传输的路径中,增加一个流控阀门,通过流控阀门控制写空间流控速率。
图2是优化的前端写buffer的Rate-base流控策略结合中端GC流控策略示意图;在传统的GC流控算法的基础上,增加了前端写Buffer的速率基数Rate-base流控机制。速率基数Rate-base是满足GC要求的一个平均的写Buffer流控速率。在稳态SSD的实际运行过程中,前端写Buffer的流控速率是在Rate-base的基础上根据写缓存Write Cache中的残留的主机写空间Host WriteBuffer的数量来进行微调的。
主机写空间Host Write Buffer在写缓存Write Cache中的数量可以用“水位线”的概率来描述。在Write Cache中设置一些量化的“Water-Mark(水位线)”标准,以供前端写Buffer的流控阀门来查询当下Write Cache中的HostWrite Buffer数量。当Write Cache中的Host Write Buffer超过设定的高水位线High-Water-Mark阈值时,说明GC在做后台的流控,暂时阻塞了Host写请求。这时前端写Buffer的流控速率可以在Rate-base的基础上减少一点,来减缓前端写Buffer的流通速度。反之,当Write Cache中的Host Write Buffer数量低于过设定的低水位线Low-Water-Mark阈值时,可以将前端写Buffer的流控速率在Rate-base的基础上增加一点,增大前端写Buffer的流通速度。
图4是优化后的固件算法的写命令响应延时效果图所示,通过对前端写Buffer流通速度的控制,平滑了主机写命令响应延时的曲线,大幅减低了过长响应延时的概率,提升了写命令的Qos性能。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (6)
1.一种提升SSD稳态时写命令服务质量的方法,固件算法模块主要包括前端,中端和后端,前端负责申请主机写空间以供接收主机端的数据;接收完主机数据后的写空间WriteBuffer会沉积在写缓冲Write Cache中,中端通过碎片整理任务平衡主机的写入请求和自身内部产生的数据搬移请求,其特征在于在主机写空间申请与主机数据传输的路径中,增加一个流控阀门,通过流控阀门控制写空间流控速率。
2.根据权利要求1所述的提升SSD稳态时写命令服务质量的方法,其特征在于流控阀门根据水位线的高低调整写空间流控速率,所述水位线为主机写空间在写缓存的数量或比例。
3.根据权利要求2所述的提升SSD稳态时写命令服务质量的方法,其特征在于在写缓存中增加水位线数据,前端写空间的流控阀门查询当下写缓存中的主机写空间数量;当写缓存中的主机写空间超过设定的高水位线High-Water-Mark阈值时,说明GC在做后台的流控,暂时阻塞了Host写请求,前端写Buffer的流控速率控制在速率基数Rate-base的基础上减少,来减缓前端写Buffer的流通速度;当写缓存Write Cache中的主机写空间HostWriteBuffer数量低于过设定的低水位线Low-Water-Mark阈值时,将前端写Buffer的流控速率在Rate-base的基础上增加,增大前端写Buffer的流通速度。
4.一种SSD,包括固件算法模块,固件算法模块主要分为前端,中端和后端,前端负责申请主机写空间以供接收主机端的数据;接收完主机数据后的写空间Write Buffer会沉积在写缓冲Write Cache中,中端通过碎片整理任务平衡主机的写入请求和自身内部产生的数据搬移请求,其特征在于在主机写空间申请与主机数据传输的路径中,增加一个流控阀门,通过流控阀门控制写空间流控速率。
5.根据权利要求1所述的SSD,其特征在于流控阀门根据水位线的高低调整写空间流控速率,所述水位线为主机写空间在写缓存的数量或比例。
6.根据权利要求2所述的SSD,其特征在于在写缓存中增加水位线数据,前端写空间的流控阀门查询当下写缓存中的主机写空间数量;当写缓存中的主机写空间超过设定的高水位线High-Water-Mark阈值时,说明GC在做后台的流控,暂时阻塞了Host写请求,前端写Buffer的流控速率控制在Rate-base的基础上减少,来减缓前端写Buffer的流通速度;当写缓存Write Cache中的主机写空间Host Write Buffer数量低于过设定的低水位线Low-Water-Mark阈值时,将前端写Buffer的流控速率在Rate-base的基础上增加,增大前端写Buffer的流通速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461337.2A CN108170379A (zh) | 2017-12-28 | 2017-12-28 | 一种提升ssd稳态时写命令服务质量的方法及ssd |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461337.2A CN108170379A (zh) | 2017-12-28 | 2017-12-28 | 一种提升ssd稳态时写命令服务质量的方法及ssd |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108170379A true CN108170379A (zh) | 2018-06-15 |
Family
ID=62519244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711461337.2A Pending CN108170379A (zh) | 2017-12-28 | 2017-12-28 | 一种提升ssd稳态时写命令服务质量的方法及ssd |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170379A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631958A (zh) * | 2020-12-29 | 2021-04-09 | 浙江工商大学 | 基于过滤表的dram行缓冲器混合管理方法 |
CN113918094A (zh) * | 2021-09-30 | 2022-01-11 | 山东华芯半导体有限公司 | 一种ssd写带宽控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926834A (en) * | 1997-05-29 | 1999-07-20 | International Business Machines Corporation | Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space |
CN101286878A (zh) * | 2008-04-22 | 2008-10-15 | 中兴通讯股份有限公司 | 一种终端的内存池的管理方法 |
CN101517548A (zh) * | 2006-09-26 | 2009-08-26 | 国际商业机器公司 | 高速缓存盘存储器升级 |
CN103631728A (zh) * | 2012-08-27 | 2014-03-12 | 苹果公司 | 使用自适应压缩比率快速执行刷新命令 |
US20170212711A1 (en) * | 2016-01-21 | 2017-07-27 | Kabushiki Kaisha Toshiba | Disk apparatus and control method |
-
2017
- 2017-12-28 CN CN201711461337.2A patent/CN108170379A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926834A (en) * | 1997-05-29 | 1999-07-20 | International Business Machines Corporation | Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space |
CN101517548A (zh) * | 2006-09-26 | 2009-08-26 | 国际商业机器公司 | 高速缓存盘存储器升级 |
CN101286878A (zh) * | 2008-04-22 | 2008-10-15 | 中兴通讯股份有限公司 | 一种终端的内存池的管理方法 |
CN103631728A (zh) * | 2012-08-27 | 2014-03-12 | 苹果公司 | 使用自适应压缩比率快速执行刷新命令 |
US20170212711A1 (en) * | 2016-01-21 | 2017-07-27 | Kabushiki Kaisha Toshiba | Disk apparatus and control method |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631958A (zh) * | 2020-12-29 | 2021-04-09 | 浙江工商大学 | 基于过滤表的dram行缓冲器混合管理方法 |
CN113918094A (zh) * | 2021-09-30 | 2022-01-11 | 山东华芯半导体有限公司 | 一种ssd写带宽控制方法 |
CN113918094B (zh) * | 2021-09-30 | 2024-05-31 | 山东华芯半导体有限公司 | 一种ssd写带宽控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8909868B2 (en) | Quality of service control method for storage system | |
DE102009021245B4 (de) | Verfahren, System und Vorrichtung für die Energieverwaltung einer Verbindungs-Koppelstruktur | |
US9256533B2 (en) | Adjustment of destage rate based on read and write response time requirements | |
CN103729313B (zh) | Ssd缓存的输入输出流量控制方法及装置 | |
TWI739844B (zh) | 用於控制預先提取以防止記憶體階層中之介面的過飽和之方法及處理器,以及相關之電腦系統 | |
CN107943715B (zh) | 一种提升NVMe固态硬盘读缓存命中的方法 | |
TW200604827A (en) | IO-stream adaptive write caching policy adjustment | |
US9170753B2 (en) | Efficient method for memory accesses in a multi-core processor | |
US8776158B1 (en) | Asynchronous shifting windows caching for forward and backward video streaming | |
CN109343797A (zh) | 一种缓存数据的传输方法、系统及相关组件 | |
US9069489B1 (en) | Dynamic random access memory front end | |
CN108170379A (zh) | 一种提升ssd稳态时写命令服务质量的方法及ssd | |
CN101373445B (zh) | 一种内存调度方法及装置 | |
KR102110812B1 (ko) | 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법 | |
CN103257935A (zh) | 一种缓存管理方法及其应用 | |
US11188256B2 (en) | Enhanced read-ahead capability for storage devices | |
CN102685219B (zh) | San存储系统中通过动态扩容提高存储资源利用率的方法 | |
CN106844740A (zh) | 基于内存对象缓存系统的数据预读方法 | |
WO2016065902A1 (zh) | 在存储设备中配置缓存的方法、装置及控制器 | |
CN105224473A (zh) | 一种固态硬盘缓存数据的更新方法及装置 | |
US11403562B2 (en) | Determining sectors of a track to stage into cache by training a machine learning module | |
WO2015061921A1 (zh) | 用于数据存储系统的动态缓存方法和系统 | |
CN103685544A (zh) | 一种基于性能预估的客户端缓存分配方法和系统 | |
CN103425438B (zh) | 优化固态硬盘写请求的方法及其固态硬盘 | |
US8219757B2 (en) | Apparatus and method for low touch cache management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180615 |