一种固态盘系统中的读写优化调度方法技术方案

技术编号:14525187 阅读:40 留言:0更新日期:2017-02-02 03:44
本发明专利技术公开了一种提高固态盘读性能的方法,包括:设置写延时上限,创建预取队列以存放来自上层文件系统的请求,获取预取队列中各请求的信息,包括请求类型、请求产生时间、执行所需时间、还需排队等待时间以及请求的目标地址。将新到达预取队列的读请求逐步向前移动,通过优先执行读请求以获得读性能的提升。调度过程中,同时考虑到写延时上限、读写相关性以及相同类型请求之间的相对位置关系,从而保证了写请求的正常执行、数据正确性以及相同类型请求之间的公平性。与调度前相比,本发明专利技术的方法可以减少百分之七十及百分之四十的最大读延时及平均读延时,从而有效提高固态盘系统的读性能。

【技术实现步骤摘要】

本专利技术属于计算机存储领域,更具体地,涉及一种固态盘系统中的读写优化调度方法
技术介绍
基于NAND闪存(Flash)的固态盘(SolidStateDisk,简称SSD)具有非易失性,低能耗,高性能等诸多优良的特性,因此被广泛应用于数据中心、云计算、在线事务交易等场景。与传统的机械硬盘相比,基于NAND闪存的固态盘不受限于机械部件的速度,因此可以提供更高的I/O性能,并有望能够缓解在许多重要的数据密集型应用中的I/O瓶颈。目前,在采用NAND闪存的固态盘中,存在一些读写方面的问题:一旦写请求被下发到闪存介质,同一目标地址晶圆内位于其后的读请求必须等到耗时的写操作完成后才能开始执行,于是,读请求的延时急剧增加,造成读写之间不公平的资源利用率;与之相对的,如果一味的提高读请求的执行优先级,对于写请求来说也是不公平的,在一种极端情况下,由于读请求始终优先执行,写请求不断的被推后,最终造成写饥饿的现象,这同样是不可接受的;此外,读请求和写请求之间还可能存在相关性,贸然的改变读写顺序,则可能会造成读数据的过程中出现错误;与此同时,如果改变相同类型请求之间的相对顺序,则会造成相同类型请求之间不公平的现象。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种固态盘系统中的读写优化调度方法,其目的在于,通过动态调整读写请求的优先序列,有效提高固态盘系统的读性能,从而解决现有固态盘中存在的由于读操作速度远大于写操作速度导致的读请求被写请求阻塞,造成读延时较大、读性能差的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种固态盘系统中的读写优化调度方法,包括以下步骤:(1)为请求设置写延时上限U,并创建空的预取队列用于存放接收到的来自上层文件系统的请求;(2)判断是否需要处理预取队列中的请求,如果不需要则过程结束,如果需要则转入步骤(3);(3)接收来自于上层文件系统的请求,将该请求顺序放入该预取队列中,并判断该请求是读请求还是写请求,如果是读请求则转入步骤(4),如果是写请求则返回步骤(2);(4)获取执行该读请求所需时间tread及目标地址A;(5)判断预取队列中该读请求的前面是否存在有请求,如果存在则转入步骤(6),否则返回步骤(2);(6)判断预取队列中该读请求的前一个请求是读请求还是写请求,如果是写请求则转入步骤(7),如果是读请求则返回步骤(2);(7)获取该写请求的相关信息,包括写请求的产生时间tgen、执行该写请求所需的时间twrite、需排队等待执行该写请求的时间tque、以及该写请求的目标地址B,并获取系统当前时间tsys;(8)判断读请求和写请求是否具备相关性,并且twrite+tque+tsys-tgen+tread<=U是否成立,如果不具备相关性,且等式成立,则转入步骤(9),否则返回步骤(2);(9)在预取队列中将读请求移动到写请求的前面,并返回步骤(5)。优选地,步骤(8)中判断读请求和写请求是否具备相关性具体是判断二者的目标地址是否为固态盘SSD的同一个页。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)本专利技术能够有效提高固态盘系统的读性能:由于采用了步骤(5)到步骤(9),读请求被适当的移动到写请求之前执行,从而减缓了由于读请求被写请求阻塞所造成的读延时急剧增加的现象,显著减小了系统读延时的均值和最大值,从而提高了系统的读性能。(2)本专利技术能够保证写请求的正常执行:由于采用了步骤(4)到步骤(8),在调度过程中对最大写延时进行了限制,使写请求避免了因为不断被推后最终导致无法执行的现象;具体而言,一旦计算出写延时超过上限U,该写请求将获得较高的执行优先级,从而不能够被读请求推后,进而保证了写请求的正常执行。(3)本专利技术能够避免调度过程中因读写相关性而造成的读数据错误:由于采用了步骤(8),读请求和写请求之间是否存在相关性成为了能否将读请求移动到写请求之前执行的判断条件之一,因此遵循了“若存在读写相关性,则先写后读”的原则,避免了读出来的数据为执行写操作之前的数据从而产生读数据错误的问题。(4)本专利技术能够保证相同类型请求之间的公平性:由于采用了步骤(5)到步骤(6),读请求的前一个请求是否为写请求被作为能否将读请求向前移动的判断条件之一,从而保证了各读请求之间的执行公平性;此外,在调度的整体过程中,不对写请求进行移动,因此,各写请求之间的相对位置不发生改变,从而保证了各写请求之间的执行公平性。附图说明图1是本专利技术固态盘系统中的读写优化调度方法的流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术的整体思路在于,优先执行速度相对较快的读操作,推后执行速度相对较慢的写操作。所谓优先执行读操作,指的是在预取队列中,将位于写请求之后的读请求通过调度移动到该写请求之前,从而被优先于该写请求执行。读操作的优先执行,同时意味着写操作的推后执行。通过在预取队列中将读请求向前移动,达到提高读性能的目的,并且,本专利技术并不对调度范围之外的请求产生干扰。本专利技术充分考虑到读请求和写请求之间的公平性,采取为写延时设置上限的机制。在进行读写调度的过程中,向前移动读请求之前,需要对被推后的写请求的延时进行计算,延时超过上限的写请求将获得较高的执行优先级,从而不能够被读请求推后。本专利技术充分考虑读写相关性问题,所谓读写相关性,是指一个读请求和一个写请求的目标地址为同一个页。在预取队列中,如果一个读请求之前存在着与它具有相关性的写请求,那么需要遵循先写后读的原则,不能将读请求移动到该写请求之前,否则读出来的数据为执行写操作之前的数据,从而造成读数据错误。本专利技术中,通过在移动读请求之前判断读写相关性,避免了因此而产生的错误。另外,本专利技术不破坏相同类型请求之间的执行公平性,即不改变两个读请求或两个写请求之间的相对位置关系。在预取队列内,将读请求向前移动的过程中,若遇到其余读请求则终止移动的过程,避免了两个读请求之间位置关系的改变。如图1所示,本专利技术固态盘系统中的读写优化调度方法包括以下步骤:(1)为请求设置写延时上限U,并创建空的预取队列用于存放接收到的来自上层文件系统的请求;具体而言,写延时上限的取值和预取队列的深度相关,预取队列越深,则写延时上限越大。(2)判断是否需要处理预取队列中的请求,如果不需要则过程结束,如果需要则转入步骤(3);(3)接收来自于上层文件系统的请求,将该请求顺序放入该预取队列中,并判断该请求是读请求还是写请求,如果是读请求则转入步骤(4),如果是写请求则返回步骤(2);(4)获取执行该读请求所需时间tread及目标地址A;(5)判断预取队列中该读请求的前面是否存在有请求,如果存在则转入步骤(6),否则返回步骤(2);(6)判断预取队列中该读请求的前一个请求是读请求还是写请求,如果是写请求则转入步骤(7),如果是读请求则返回步骤(2);(7)获取该写请求的相关信息,包括写请求的产生时间tgen、执本文档来自技高网...

【技术保护点】
一种固态盘系统中的读写优化调度方法,其特征在于,包括以下步骤:(1)为请求设置写延时上限U,并创建空的预取队列用于存放接收到的来自上层文件系统的请求;(2)判断是否需要处理预取队列中的请求,如果不需要则过程结束,如果需要则转入步骤(3);(3)接收来自于上层文件系统的请求,将该请求顺序放入该预取队列中,并判断该请求是读请求还是写请求,如果是读请求则转入步骤(4),如果是写请求则返回步骤(2);(4)获取执行该读请求所需时间tread及目标地址A;(5)判断预取队列中该读请求的前面是否存在有请求,如果存在则转入步骤(6),否则返回步骤(2);(6)判断预取队列中该读请求的前一个请求是读请求还是写请求,如果是写请求则转入步骤(7),如果是读请求则返回步骤(2);(7)获取该写请求的相关信息,包括写请求的产生时间tgen、执行该写请求所需的时间twrite、需排队等待执行该写请求的时间tque、以及该写请求的目标地址B,并获取系统当前时间tsys;(8)判断读请求和写请求是否具备相关性,并且twrite+tque+tsys‑tgen+tread<=U是否成立,如果不具备相关性,且等式成立,则转入步骤(9),否则返回步骤(2);(9)在预取队列中将读请求移动到写请求的前面,并返回步骤(5)。...

【技术特征摘要】
1.一种固态盘系统中的读写优化调度方法,其特征在于,包括以下步骤:(1)为请求设置写延时上限U,并创建空的预取队列用于存放接收到的来自上层文件系统的请求;(2)判断是否需要处理预取队列中的请求,如果不需要则过程结束,如果需要则转入步骤(3);(3)接收来自于上层文件系统的请求,将该请求顺序放入该预取队列中,并判断该请求是读请求还是写请求,如果是读请求则转入步骤(4),如果是写请求则返回步骤(2);(4)获取执行该读请求所需时间tread及目标地址A;(5)判断预取队列中该读请求的前面是否存在有请求,如果存在则转入步骤(6),否则返回步骤(2);(6)判断预取队列中该读请求的前一个请求是读请求还是写请求,如果是写请求则转入步...

【专利技术属性】
技术研发人员:吴非谢长生朱玥熊钦
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1