CN107728953B - 一种提升固态硬盘混合读写性能的方法 - Google Patents
一种提升固态硬盘混合读写性能的方法 Download PDFInfo
- Publication number
- CN107728953B CN107728953B CN201711068250.9A CN201711068250A CN107728953B CN 107728953 B CN107728953 B CN 107728953B CN 201711068250 A CN201711068250 A CN 201711068250A CN 107728953 B CN107728953 B CN 107728953B
- Authority
- CN
- China
- Prior art keywords
- request
- queue
- write
- read
- page
- 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
- 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]
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)
- Memory System (AREA)
Abstract
本发明公开了一种提升固态硬盘混合读写性能的方法,其特征在于写请求直接按传入的时间顺序加入请求队列,写请求入列和写请求操作完成触发当前写入点的块页信息表更新;读请求经过两级仲裁确定能否进行高优先级响应以及该高优先级响应在请求队列中的最佳插队位置:第一级仲裁根据块页信息表来判断能否进行读请求的高优先响应,第二级仲裁索引插队位置点信息获取该请求在请求队列中的插队位置;第二级建立在第一级仲裁生效的基础上。通过引入2级仲裁可快速找到读请求的合适插入位置,提高读响应效率,整体调度过程资源消耗小,实现简单但效率高,可有效提升读写混合场景下的综合性能。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提升固态硬盘混合读写性能的方法。
背景技术
图1是Nand Flash的内部组成结构图;通道DIE可独立并发操作的单元;块Block是擦除的操作单元;页Page是读写的操作单元。DIE下的操作是串行化的,即对同一个DIE发起多个操作,必须等前面一个操作完成之后才能执行后面一个操作,同一个Block内的Page操作必须按页顺序进行写操作:0=>1=>2=>3。对于Nand Flash来说,写操作所需时间远大于读操作所需时间。
在复杂应用场景中,写操作和读操作的混合度高,在Nand Flash端一般按照请求顺序执行。突出表现在用户容忍度低的读响应延迟大,同时也会影响依赖于该读操作的其他请求的执行。
为了提升固态硬盘混合读写的性能,固件系统上都设有任务调度算法用来排除读写相关性的同时,尽可能快地响应读请求。但由于读写操作存在相关性,要求设计任务调度算法时不能盲目地优先响应读请求,因为可能存在读请求的所在Page还有未执行写操作,固件设计时需要保证同一个Page的读请求肯定位于写请求之后。
引入任务调度算法后,在一定程度上改善了读写混合场景的读响应延迟问题,但在高负载情况下,读写请求混合度比较大且请求数量比较多,慢速的Nand Flash操作会导致请求队列比较深。常用的任务调度算法此时表现不佳,其占据CPU资源过度执行,会导致请求操作延迟传达给Nand Flash端。
图2是常规任务调度算法的调度示例图,棱形代表读请求(B,m+j),其中B表示Block号;矩形代表写请求,其中m+j表示Page号。例如在现有的命令缓存队列中最新入队的读请求(B,m+j),常规的任务调度算法,接到的读请求(B,m+j)会先遍历完队列,在遍历完队列中所有的写请求后才能判断出无法优先响应读请求(B,m+j)。因此在这种场景中,常规调度算法相对于无任务调度算法,白白损耗了任务调度算法执行所占用的CPU时间资源。常规任务调度算法在这些场景下,效果不明显,甚至会拖累系统的综合性能,表现出常规的任务调度算法的缺陷。
发明内容
针对以上缺陷,本发明目的是如何存在大量混合读写的场合的性能。
为了解决以上问题本发明提出了一种提升固态硬盘混合读写性能的方法,其特征在于写请求直接按传入的时间顺序加入请求队列,写请求入列和写请求操作完成触发当前写入点的块页信息表更新;读请求经过两级仲裁确定能否进行高优先级响应以及该高优先级响应在请求队列中的最佳插队位置:第一级仲裁根据块页信息表来判断能否进行读请求的高优先响应,第二级仲裁索引插队位置点信息获取该请求在请求队列中的插队位置;第二级建立在第一级仲裁生效的基础上。
所述的提升固态硬盘混合读写性能的方法,其特征在于第一级仲裁具体为检索当前读请求所在块地址的块页信息表确认能否进行高优先级响应,具体至少包括:当前Block最近已完成写操作的页信息表Page Index和队列中当前块最新的写请求的页信息表PageIndex确定的待写入页范围;通过判断读操作的页地址信息是否落入当前Block待写入页范围内,如果不在则直接调度读请求为高优先响应级别;如果落入当前Block待写入页范围;则启动第二级仲裁判断。
所述的提升固态硬盘混合读写性能的方法,其特征在于第二级仲裁实现高优先级请求快速查找索引插队位置,具体为该第二级仲裁缓存了当前Block的写请求在请求队列中的位置,在保证缓存深度一定的前提下,根据队列中的写请求的数量,动态调整的间隔值N,并按该缓存间隔N值跳跃着缓存写请求在队列中的位置。
本发明的核心思想是将输入的任务进行分类,写请求按序执行,读请求根据检索结果判断是否进行高优先级响应以及快速确定读请求在请求队列中的插队位置。通过引入2级仲裁可快速找到读请求的合适插入位置,提高读响应效率,整体调度过程资源消耗小,实现简单但效率高,可有效提升读写混合场景下的综合性能。
附图说明
图1是Nand Flash的内部组成结构图;
图2是常规任务调度算法的调度示例图;
图3是最优的读请求插入位置示意图;
图4是第二级索引与请求队列示例图;
图5是任务调度示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3是最优的读请求插入位置示意图,为了符合NAND操作规范和满足读写相关性的设计,最新入队的读请求在已有队列中存在相同地址写指令的情况下,任务调度模块对该新入队的读请求的调度策略是将该读请求插入到对应相同地址的写指令之后;如读请求(A,n+k)插入到写请(A,n+k)之后,读请求(B,m)插入到写请(B,m)之后。后续再发生调度,读请求(A,n+k)和写请求(A,n+k)作为一个整体统一移动位置,读请求(B,m)和写请求(B,m)作为一个整体统一移动位置。
图5是任务调度示意图;某个Die下一般都存在多个写入点,即该Die下,存在多个Block响应写请求的情况。以某个Die存在两个写入点为例说明,Block A和Block B。固件中任务调度策略设计时必须能保证同一个Block内的Page的写操作顺序符合Nand Flash规范,也就是同一个Block内的Page操作必须按页顺序进行写操作:0=>1=>2=>3。
任务调度模块的调度算法由两级构成,第一级仲裁判断能否进行读请求的高优先响应,第二级仲裁提供快速索引插队位置;第二级建立在第一级仲裁生效的基础上。
第一级仲裁具体为根据当前写入点的地址所在的块和页信息,通过检索当前的正在写入的块页信息表Block Page Index,具体至少包括:当前Block最近已完成写操作的页信息表Page Index和队列中当前Block最新的写请求的页信息表Page Index确定的待写入页范围;通过判断读操作的页地址信息是否落入当前Block待写入页范围内,如果不在则直接调度读请求为高优先响应级别;如果落入当前Block待写入页范围;则启动第二级仲裁判断。更具体为以块序号为索引,以块为单位建立各个当前Block最近已完成写操作的页信息表Page Index和队列中当前Block最新的写请求的页信息表Page Index确定的当前Block待写入页范围。固件系统接收到请求后先按根据请求的任务进行分类,只有读请求才能进行高优先级响应,然后读请求分别检索对应块地址对应的块页信息表Block Page Index来判断是否落入其范围。第一级仲裁所依据的的Block Page Index信息实时更新,写请求进入请求队列以及写请求Nand Flash端执行完毕触发更新。两者能界定Block当前待响应的写请求Page Index范围。如果读请求落入此范围,需要进行高优先级响应,即执行请求队列中的插队动作。
以写入点Block A为例,Block A最后的写入Page Index为Pn,队列中Block A的最新的写入请求Page Index为Pm,由于Block的写操作Page是单调递增顺序(Nand Flash特性),所以Block A的写任务Page Index请求区间[Pn,Pm],且m>n。第一级仲裁时即根据Block A的读请求Page Index是否落入区间[Pn,Pm]来决定是否需要插队,存在二种可能性:①读请求Page Index≦Pn,说明读请求的Page Index已经被安全写入过了,可直接进行请求插队;②读请求Page Index∈(Pn,Pm],说明读请求的Page Index对应的Nand Flash端写操作还未进行,可以插队到Page Index的写请求之后。Nand Flash特性和该特性对固件的设计约束能保证不存在读请求的Page Index<Pm,因为Page m是最后的写请求。插队到队列中的具体位置需要第二级快速索引插队位置子模块配合。
第二级仲裁实现快速查找索引插队位置,具体为该第二级仲裁缓存了当前Block的写请求在请求队列中的位置,在保证缓存深度一定的前提下,根据队列中的写请求的数量,动态调整的间隔值N,并按该缓存间隔N值跳跃着缓存写请求在队列中的位置。
第二级根据缓存深度及当前请求负载实时调整缓存间隔N,缓存信息包含PageIndex及其请求队列中的位置。当轻负载时,缓存间隔N值比较小,索引效率高。当负载比较重时,缓存间隔值N比较大,同样的缓存深度能缓存更大的Page Index区间。第二级的实现原理是将请求队列中当前Block待响应的写请求Page Index范围进行切片,切片跨度为缓存间隔值N,缓存切片点的信息。如果读请求经过第一级仲裁发现可以进行插队,第二级依据读请求的Page Index信息直接快速定位切片区间,然后根据区间内的起始写请求在请求队列中的位置快速索引插队位置。图4是第二级索引与请求队列示例图;以只有一个写入点的场景为例,缓存间隔N值为4,即请求队列中当前写入点Block,按请求顺序(也即是PageIndex顺序)每隔4个请求缓存其Page Index和队列中的位置信息。当读请求落在索引信息1和索引信息2表示的Page Index范围内,读请求可通过索引信息1标示在请求队列搜索的起始点,索引信息2标示搜索结束点,大大缩小了搜索范围,如此能快速定位到读请求合适的插队位置。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (1)
1.一种提升固态硬盘混合读写性能的方法,其特征在于写请求直接按传入的时间顺序加入请求队列,写请求入列和写请求操作完成触发当前写入点的块页信息表更新;读请求经过两级仲裁确定能否进行高优先级响应以及该高优先级响应在请求队列中的最佳插队位置:第一级仲裁根据块页信息表来判断能否进行读请求的高优先响应,第二级仲裁索引插队位置点信息获取该请求在请求队列中的插队位置;第二级建立在第一级仲裁生效的基础上;第一级仲裁具体为检索当前读请求所在块地址的块页信息表确认能否进行高优先级响应,具体至少包括:当前Block最近已完成写操作的页信息表Page Index和队列中当前块最新的写请求的页信息表Page Index确定的待写入页范围;通过判断读操作的页地址信息是否落入当前Block待写入页范围内,如果不在则直接调度读请求为高优先响应级别;如果落入当前Block待写入页范围;则启动第二级仲裁判断;第二级仲裁实现高优先级请求快速查找索引插队位置,具体为该第二级仲裁缓存了当前Block的写请求在请求队列中的位置,在保证缓存深度一定的前提下,根据队列中的写请求的数量,动态调整的间隔值N,并按该缓存间隔N值跳跃着缓存写请求在队列中的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711068250.9A CN107728953B (zh) | 2017-11-03 | 2017-11-03 | 一种提升固态硬盘混合读写性能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711068250.9A CN107728953B (zh) | 2017-11-03 | 2017-11-03 | 一种提升固态硬盘混合读写性能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107728953A CN107728953A (zh) | 2018-02-23 |
CN107728953B true CN107728953B (zh) | 2021-03-02 |
Family
ID=61222313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711068250.9A Active CN107728953B (zh) | 2017-11-03 | 2017-11-03 | 一种提升固态硬盘混合读写性能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107728953B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109521964A (zh) * | 2018-11-15 | 2019-03-26 | 苏州韦科韬信息技术有限公司 | 一种固态硬盘中raid资源的管理方法 |
CN109783025B (zh) * | 2019-01-10 | 2022-03-29 | 深圳忆联信息系统有限公司 | 顺序数据页颗粒度离散分布的读方法和装置 |
CN111506256B (zh) * | 2019-01-31 | 2023-03-28 | 睿宽智能科技有限公司 | 减少写入效能变化并防止io阻塞的方法 |
CN113778317A (zh) * | 2020-06-10 | 2021-12-10 | 慧荣科技股份有限公司 | 计算机可读取存储介质、调度主机命令的方法及装置 |
CN113791892B (zh) * | 2021-07-30 | 2024-03-26 | 北京智芯微电子科技有限公司 | 数据通路仲裁方法、数据通路仲裁装置及芯片 |
CN114333948B (zh) * | 2021-12-28 | 2024-09-20 | 山东华芯半导体有限公司 | 一种提高通道内3d nand flash并行度的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226457A (zh) * | 2008-01-25 | 2008-07-23 | 中兴通讯股份有限公司 | 一种磁盘阵列的在线扩容系统及方法 |
CN101419562A (zh) * | 2008-12-04 | 2009-04-29 | 浙江大学 | 平衡负载与性能的硬件优先级队列实现方法 |
CN106547492A (zh) * | 2016-12-08 | 2017-03-29 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
CN106681660A (zh) * | 2016-12-17 | 2017-05-17 | 郑州云海信息技术有限公司 | Io调度方法及io调度装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299181A (zh) * | 2008-07-08 | 2008-11-05 | 杭州华三通信技术有限公司 | 基于磁盘进行i/o请求缓存的方法和装置以及san存储设备 |
US8566507B2 (en) * | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
CN103543954B (zh) * | 2012-07-16 | 2018-03-23 | 深圳市中兴微电子技术有限公司 | 一种数据存储管理方法和装置 |
US10162748B2 (en) * | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
CN106371768B (zh) * | 2016-09-05 | 2019-04-12 | 华中科技大学 | 一种固态盘系统中的读写优化调度方法 |
-
2017
- 2017-11-03 CN CN201711068250.9A patent/CN107728953B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226457A (zh) * | 2008-01-25 | 2008-07-23 | 中兴通讯股份有限公司 | 一种磁盘阵列的在线扩容系统及方法 |
CN101419562A (zh) * | 2008-12-04 | 2009-04-29 | 浙江大学 | 平衡负载与性能的硬件优先级队列实现方法 |
CN106547492A (zh) * | 2016-12-08 | 2017-03-29 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
CN106681660A (zh) * | 2016-12-17 | 2017-05-17 | 郑州云海信息技术有限公司 | Io调度方法及io调度装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107728953A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107728953B (zh) | 一种提升固态硬盘混合读写性能的方法 | |
CN108319654B (zh) | 计算系统、冷热数据分离方法及装置、计算机可读存储介质 | |
US10133679B2 (en) | Read cache management method and apparatus based on solid state drive | |
CN105095287A (zh) | Lsm数据合并排序方法和装置 | |
CN110727685B (zh) | 一种基于Cassandra数据库的数据压缩方法、设备以及存储介质 | |
EP3252609A1 (en) | Cache data determination method and device | |
CN108153682B (zh) | 一种利用闪存内部并行性进行闪存转换层地址映射的方法 | |
US20210117378A1 (en) | Method, device and computer program product for shrinking storage space | |
CN107025230B (zh) | 网络爬虫的处理方法及装置 | |
CN107273200B (zh) | 一种针对异构存储的任务调度方法 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN111124270A (zh) | 缓存管理的方法、设备和计算机程序产品 | |
CN112148736B (zh) | 缓存数据的方法、设备及存储介质 | |
CN116822657B (zh) | 一种模型训练加速的方法、装置、存储介质及电子设备 | |
CN109189343B (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
CN112363812B (zh) | 基于任务分类的数据库连接队列管理方法及存储介质 | |
CN106201918A (zh) | 一种基于大数据量和大规模缓存快速释放的方法和系统 | |
US20060143313A1 (en) | Method for accessing a storage device | |
CN112711564B (zh) | 合并处理方法以及相关设备 | |
CN111858393A (zh) | 内存页面管理方法、内存页面管理装置、介质与电子设备 | |
CN103279562B (zh) | 一种用于数据库二级缓存的方法、装置及数据库存储系统 | |
US9507794B2 (en) | Method and apparatus for distributed processing of file | |
CN108170380B (zh) | 一种固态硬盘提升顺序读性能的方法及固态硬盘 | |
CN112817516A (zh) | 数据读写控制方法、装置、设备和存储介质 | |
CN116185287A (zh) | 一种降低读延时的方法、装置及固态硬盘 |
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 |