CN106371768A - 一种固态盘系统中的读写优化调度方法 - Google Patents
一种固态盘系统中的读写优化调度方法 Download PDFInfo
- Publication number
- CN106371768A CN106371768A CN201610802236.6A CN201610802236A CN106371768A CN 106371768 A CN106371768 A CN 106371768A CN 201610802236 A CN201610802236 A CN 201610802236A CN 106371768 A CN106371768 A CN 106371768A
- Authority
- CN
- China
- Prior art keywords
- request
- read
- write
- 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.)
- Granted
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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)
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 (2)
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)。
2.根据权利要求1所述的读写优化调度方法,其特征在于,步骤(8)中判断读请求和写请求是否具备相关性具体是判断二者的目标地址是否为固态盘SSD的同一个页。
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 true CN106371768A (zh) | 2017-02-01 |
CN106371768B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107728953A (zh) * | 2017-11-03 | 2018-02-23 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘混合读写性能的方法 |
CN114968890A (zh) * | 2022-05-27 | 2022-08-30 | 中国第一汽车股份有限公司 | 一种同步通信控制方法、装置、系统及存储介质 |
Citations (2)
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调度方法及调度器 |
-
2016
- 2016-09-05 CN CN201610802236.6A patent/CN106371768B/zh active Active
Patent Citations (2)
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)
Title |
---|
MYOUNGSOO JUNG,ET AL.: "《HIOS: A host interface I/O scheduler for Solid State Disks》", 《 2014 ACM/IEEE 41ST INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107728953A (zh) * | 2017-11-03 | 2018-02-23 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘混合读写性能的方法 |
CN114968890A (zh) * | 2022-05-27 | 2022-08-30 | 中国第一汽车股份有限公司 | 一种同步通信控制方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106371768B (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719537B2 (en) | Memory power tokens | |
KR102602694B1 (ko) | 스토리지 컨트롤러의 작동 방법과 이를 포함하는 스토리지 장치의 작동 방법 | |
KR100724557B1 (ko) | 아웃 오브 오더 dram 시퀀서 | |
KR102321221B1 (ko) | 버퍼 상에서 메모리 동작을 제어하기 위한 장치 및 방법 | |
US20150253992A1 (en) | Memory system and control method | |
CN108139994B (zh) | 内存访问方法及内存控制器 | |
CN101639763B (zh) | 一种io调度方法及调度装置 | |
KR101687762B1 (ko) | 저장 장치 및 그것의 커맨드 스케줄링 방법 | |
CN101038531A (zh) | 用于嵌入式系统中部件的共用接口 | |
US20140040518A1 (en) | Memory interface | |
CN107608625B (zh) | 一种提升固存储设备读性能的方法 | |
EP3834072B1 (en) | Controller command scheduling in a memory system to increase command bus utilization | |
JP2012128815A (ja) | メモリシステム | |
CN110716691B (zh) | 调度方法、装置、闪存设备和系统 | |
CN109697027A (zh) | 包括共享存储器区域和专用存储器区域的数据存储设备 | |
CN103838676A (zh) | 数据存储系统、数据存储方法及pcm桥 | |
US9286208B2 (en) | Controller controlling an interleave operation, solid-state drive including the controller, and control method controlling an interleave operation | |
CN106371768B (zh) | 一种固态盘系统中的读写优化调度方法 | |
CN102279825B (zh) | 一种固态硬盘控制器的智能dma控制器 | |
US8949491B1 (en) | Buffer memory reservation techniques for use with a NAND flash memory | |
US20180188976A1 (en) | Increasing read pending queue capacity to increase memory bandwidth | |
AU2015203828B2 (en) | Implementing enhanced performance with read before write to phase change memory to avoid write cancellations | |
CN107797756A (zh) | 固态硬盘系统的优先写入方法以及使用该方法的装置 | |
KR20100120518A (ko) | 데이터 저장 장치 및 그것의 읽기 커멘드 처리 방법 | |
CN107403643B (zh) | 一种通过重定向提高3d fg nand闪存可靠性的方法 |
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 |