CN106371768B - 一种固态盘系统中的读写优化调度方法 - Google Patents

一种固态盘系统中的读写优化调度方法 Download PDF

Info

Publication number
CN106371768B
CN106371768B CN201610802236.6A CN201610802236A CN106371768B CN 106371768 B CN106371768 B CN 106371768B CN 201610802236 A CN201610802236 A CN 201610802236A CN 106371768 B CN106371768 B CN 106371768B
Authority
CN
China
Prior art keywords
request
write
read
queue
write request
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
Application number
CN201610802236.6A
Other languages
English (en)
Other versions
CN106371768A (zh
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201610802236.6A priority Critical patent/CN106371768B/zh
Publication of CN106371768A publication Critical patent/CN106371768A/zh
Application granted granted Critical
Publication of CN106371768B publication Critical patent/CN106371768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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)

Abstract

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

Description

一种固态盘系统中的读写优化调度方法
技术领域
本发明属于计算机存储领域,更具体地,涉及一种固态盘系统中的读写优化调度方法。
背景技术
基于NAND闪存(Flash)的固态盘(Solid State Disk,简称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、执行该写请求所需的时间twrite、需排队等待执行该写请求的时间tque、以及该写请求的目标地址B(即物理地址),并获取系统当前时间tsys
(8)判断读请求和写请求是否具备相关性(即二者的目标地址为固态盘SSD的同一个页,A=B),并且twrite+tque+tsys-tgen+tread<=U是否成立,如果不具备相关性,且等式成立,则转入步骤(9),否则返回步骤(2);
(9)在预取队列中将读请求移动到写请求的前面,并返回步骤(5)。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种固态盘系统中的读写优化调度方法,其特征在于,包括以下步骤:
(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的同一个页。
CN201610802236.6A 2016-09-05 2016-09-05 一种固态盘系统中的读写优化调度方法 Active CN106371768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610802236.6A CN106371768B (zh) 2016-09-05 2016-09-05 一种固态盘系统中的读写优化调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610802236.6A CN106371768B (zh) 2016-09-05 2016-09-05 一种固态盘系统中的读写优化调度方法

Publications (2)

Publication Number Publication Date
CN106371768A CN106371768A (zh) 2017-02-01
CN106371768B true CN106371768B (zh) 2019-04-12

Family

ID=57900164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610802236.6A Active CN106371768B (zh) 2016-09-05 2016-09-05 一种固态盘系统中的读写优化调度方法

Country Status (1)

Country Link
CN (1) CN106371768B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107728953B (zh) * 2017-11-03 2021-03-02 记忆科技(深圳)有限公司 一种提升固态硬盘混合读写性能的方法
CN114968890A (zh) * 2022-05-27 2022-08-30 中国第一汽车股份有限公司 一种同步通信控制方法、装置、系统及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135945A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 用于ssd的多通道动态读写调度方法
CN103336669A (zh) * 2013-05-21 2013-10-02 华中科技大学 一种基于固态盘内部并行性的i/o调度方法及调度器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135945A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 用于ssd的多通道动态读写调度方法
CN103336669A (zh) * 2013-05-21 2013-10-02 华中科技大学 一种基于固态盘内部并行性的i/o调度方法及调度器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《HIOS: A host interface I/O scheduler for Solid State Disks》;Myoungsoo Jung,et al.;《 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA)》;20141231;第289-300页

Also Published As

Publication number Publication date
CN106371768A (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
US8341374B2 (en) Solid state drive and related method of scheduling operations
US20190251023A1 (en) Host controlled hybrid storage device
KR102321221B1 (ko) 버퍼 상에서 메모리 동작을 제어하기 위한 장치 및 방법
US20210271424A1 (en) Quality of service control for read operations in memory systems
TWI739844B (zh) 用於控制預先提取以防止記憶體階層中之介面的過飽和之方法及處理器,以及相關之電腦系統
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
CN101038531A (zh) 用于嵌入式系统中部件的共用接口
EP3834072B1 (en) Controller command scheduling in a memory system to increase command bus utilization
CN103838676B (zh) 数据存储系统、数据存储方法及pcm桥
US9753655B2 (en) Computing system with write buffer including speculative storage write and method of operation thereof
CN102521179A (zh) 一种dma读操作的实现装置和方法
CN109799959B (zh) 一种提高开放通道固态盘写并行性的方法
CN106371768B (zh) 一种固态盘系统中的读写优化调度方法
CN102279825B (zh) 一种固态硬盘控制器的智能dma控制器
CN114816254A (zh) 一种硬盘数据访问方法、装置、设备及介质
AU2015203828B2 (en) Implementing enhanced performance with read before write to phase change memory to avoid write cancellations
KR20100120518A (ko) 데이터 저장 장치 및 그것의 읽기 커멘드 처리 방법
CN102096559A (zh) 一种提高sata接口固态硬盘数据传输效率的方法
US20210303470A1 (en) Sequential prefetching through a linking array
EP2393011A1 (en) Controller for solid state disk, which controls simultaneous switching of pads
CN102063271A (zh) 一种磁盘外置Cache基于状态机的写回方法
EP1988463B1 (en) Memory control apparatus and memory control method
US10795605B2 (en) Storage device buffer in system memory space
US20210109674A1 (en) Memory command queue management
CN105353985A (zh) 一种提高虚拟机临时文件读取速度的方法

Legal Events

Date Code Title Description
C06 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