CN106681661B - 一种固态硬盘中读写调度方法及装置 - Google Patents

一种固态硬盘中读写调度方法及装置 Download PDF

Info

Publication number
CN106681661B
CN106681661B CN201611202274.4A CN201611202274A CN106681661B CN 106681661 B CN106681661 B CN 106681661B CN 201611202274 A CN201611202274 A CN 201611202274A CN 106681661 B CN106681661 B CN 106681661B
Authority
CN
China
Prior art keywords
read
write
message queue
messages
message
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
CN201611202274.4A
Other languages
English (en)
Other versions
CN106681661A (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201611202274.4A priority Critical patent/CN106681661B/zh
Publication of CN106681661A publication Critical patent/CN106681661A/zh
Application granted granted Critical
Publication of CN106681661B publication Critical patent/CN106681661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明涉及固态硬盘读写处理技术领域,尤其涉及一种固态硬盘中读写调度方法及装置。本发明公开了一种固态硬盘中读写调度方法,包括:读消息和写消息分别存入读消息队列和写消息队列;调整读消息队列和写消息队列的优先级;处理读消息和写消息。本发明还公开了一种固态硬盘中读写调度装置,包括,存储模块,调整模块,消息处理模块。本发明避免了在一条消息队列中因读写顺序固定,而写操作的时间明显大于读操作的时间,长时间内通道闪存控制器不能对后写入消息进行处理的问题,实现了消息队列优先级及处理读消息数量和写消息数量的实时、动态管理,缩短了读取潜伏期,提高了固态硬盘的整体性能。

Description

一种固态硬盘中读写调度方法及装置
技术领域
本发明涉及固态硬盘读写处理技术领域,尤其涉及一种固态硬盘中读写调度方法及装置。
背景技术
随着互联网、云计算、物联网等技术的发展,固态硬盘作为新的一代存储,被广泛应用。相比传统机械硬盘,固态硬盘(SSD)有明显的读写性能优势。目前,固态硬盘(SSD)在后端处理读和写操作是使用一条先入先出(FIFO)的消息队列(Message Queue)。在消息队列中,读和写是按照规定比例排列的,在闪存通道控制器(Flash Channel Controller,简称FCC)中依次获取并完成消息处理。由于写操作的时间明显大于读操作的时间,而且读写顺序固定,这导致读取潜伏期(read latency)很大,较严重影响固态硬盘(SSD)的整体性能。
发明内容
针对以上技术问题,本发明的目的是提供一种固态硬盘中读写调度方法及装置,大大缩短了读取潜伏期,提高了固态硬盘(SSD)的整体性能。
为达到上述目的,本发明通过以下技术方案实现:
本发明提供一种固态硬盘中读写调度方法,包括:
读消息和写消息分别存入读消息队列和写消息队列;
调整读消息队列和写消息队列的优先级;
处理读消息和写消息。
优选地,在处理读消息和写消息之后,还包括:判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。
优选地,调整读消息队列和写消息队列的优先级,包括:依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级。
优选地,所述处理读消息和写消息是按规定数量处理,包括:依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。
本发明还提供了一种固态硬盘中读写调度装置,包括:
存储模块,用于创建消息队列,并将读消息和写消息分别存入读消息队列和写消息队列;
调整模块,用于调整读消息队列和写消息队列的优先级,依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;
消息处理模块,用于处理读消息和写消息。
优选地,还包括:判断模块,用于判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。
优选地,上述消息处理模块,用于按规定数量处理读消息和写消息,依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。
与现有技术相比,本发明的有益效果如下:
1.现有技术中用于存储读和写消息的只有一条消息队列,本发明将一条消息队列改为不同种类的消息队列,并将读消息和写消息分别存入读消息队列和写消息队列,这样在不同时间段,闪存通道控制器处理的读消息和写消息就不会只来自同一条消息队列,不同种类的消息队列内的读消息和写消息都会得到处理,方便了闪存通道控制器处理读消息和写消息,同时也缩短了读取潜伏期。
2.本发明将现有技术中先入先出的消息队列改为具有优先级别的消息队列,通过调整读消息队列和写消息队列的优先级,根据消息队列的优先级处理读消息和写消息,实现了在不同时间段,通过消息队列优先级的动态调整,缩短了读取潜伏期,避免了在一条消息队列中因读写顺序固定,而写操作的时间明显大于读操作的时间,长时间内闪存通道控制器不能对后写入消息进行处理的问题,提高了固态硬盘的整体性能。
3.本发明依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量,通过对处理读消息和写消息的数量的控制,实现了处理读消息数量和写消息数量的实时、动态管理,提高了固态硬盘的整体性能。
4.本发明通过判断本批次处理的读消息和写消息是否完成,作为本批次处理动作的结束和下一批次读消息队列和写消息队列的优先级的调整的开始,实现了整个消息队列处理过程的动态调整。
附图说明
图1为本发明一种固态硬盘中读写调度方法的流程示意图之一;
图2为本发明一种固态硬盘中读写调度方法的流程示意图之二;
图3为本发明一种固态硬盘中读写调度装置的结构示意图之一;
图4为本发明一种固态硬盘中读写调度装置的结构示意图之二。
具体实施方式
下面对本发明中出现的名词作以下解释:
固态硬盘:英文全称Solid State Drives,简称SSD,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片或DRAM芯片)组成,控制单元主要包括特定型号固态硬盘中的固件程序,闪存转换层和闪存控制器等控制模块,存储单元主要是由半导体公司生产的闪存存储颗粒。
闪存通道控制器:英文全称Flash Channel Controller,简称FCC,每个通道对应一个闪存通道控制器,其基于闪存独特的结构特性,设计固态硬盘时采用多个FCC并行技术来实现多通道数据的并发读写操作,因此有效地提高了固体盘整体的读写性能。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和具体实施方式对本发明一种固态硬盘中读写调度方法及装置作进一步地说明:
实施例1
如图1所示,一种固态硬盘中读写调度方法,包括以下步骤:
步骤S101,创建消息队列,将读消息和写消息分别存入读消息队列和写消息队列;
步骤S102,调整读消息队列和写消息队列的优先级;
步骤S103,处理读消息和写消息。
上述步骤S102中的调整读消息队列和写消息队列的优先级,是指闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级,比值的大数值即确定为调度的高优先级,比值的小数值即确定为调度的低优先级。
上述步骤S103中的处理读消息和写消息是按规定数量处理,包括:依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量,比值的大数值即为调度的高优先级消息队列处理读消息的数量,比值的小数值即为调度的低优先级消息队列处理读消息的数量。
作为一种可实施方式,创建两个消息队列,将读消息和写消息分别存入读消息队列和写消息队列;闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,如10:1,则比值数为10的消息队列作为调度的高优先级消息队列,则比值数为1的消息队列作为调度的低优先级消息队列;依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,也即为10:1,比值数10作为调度高优先级消息队列时处理读消息的数量,比值数1作为调度低优先级消息队列时处理写消息的数量。
实施例2
如图2所示,一种固态硬盘中读写调度方法,包括以下步骤:
步骤S101,创建消息队列,将读消息和写消息分别存入读消息队列和写消息队列;
步骤S102,调整读消息队列和写消息队列的优先级;
步骤S103,处理读消息和写消息;
步骤S104,判断本批次处理的读消息和写消息是否完成,若完成,则返回步骤S102进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续步骤S103。
上述步骤S102中的调整读消息队列和写消息队列的优先级,是指闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级,比值的大数值即确定为调度的高优先级,比值的小数值即确定为调度的低优先级。
上述步骤S103中的处理读消息和写消息是按规定数量处理,包括:依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量,比值的大数值即为调度的高优先级消息队列处理读消息的数量,比值的小数值即为调度的低优先级消息队列处理读消息的数量。
作为一种可实施方式,创建两个消息队列,将读消息和写消息分别存入读消息队列和写消息队列;闪存通道控制器(FCC)根据用户或主机下发的读、写请求,得到当前读消息队列中读消息数量和写消息队列中写消息数量,进而得到上述两个消息队列中读消息数量和写消息数量之比,如9:2,则比值数为9的消息队列作为调度的高优先级消息队列,则比值数为2的消息队列作为调度的低优先级消息队列;依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,也即为9:2,比值数9作为调度高优先级消息队列时处理读消息的数量,比值数2作为调度低优先级消息队列时处理写消息的数量;判断高优先级消息队列的读消息数量和低优先级消息队列的写消息数量是否处理完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续处理。
实施例3
如图3所示,一种固态硬盘中读写调度装置,包括:
存储模块301,用于创建消息队列,并将读消息和写消息分别存入读消息队列和写消息队列;
调整模块302,用于调整读消息队列和写消息队列的优先级,依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;
消息处理模块303,用于按规定数量处理读消息和写消息,依据当前读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。
其中存储模块301依次顺序与调整模块302、消息处理模块303相连。
实施例4
如图4所示,一种固态硬盘中读写调度装置,包括:
存储模块301,用于创建消息队列,并将读消息和写消息分别存入读消息队列和写消息队列;
调整模块302,用于调整读消息队列和写消息队列的优先级,依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;
消息处理模块303,用于按规定数量处理读消息和写消息,依据当前读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。
判断模块304,用于判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。
其中存储模块301依次顺序与调整模块302、消息处理模块303、判断模块304相连。
以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围,任何本领域的技术人员在不脱离本发明构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。

Claims (4)

1.一种固态硬盘中读写调度方法,其特征在于,包括:
读消息和写消息分别存入读消息队列和写消息队列;
调整读消息队列和写消息队列的优先级;
处理读消息和写消息;
所述调整读消息队列和写消息队列的优先级,包括:依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;
所述处理读消息和写消息是按规定数量处理,包括:依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。
2.根据权利要求1所述的固态硬盘中读写调度方法,其特征在于,在处理读消息和写消息之后,还包括:判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。
3.一种固态硬盘中读写调度装置,其特征在于,包括:
存储模块,用于创建消息队列,并将读消息和写消息分别存入读消息队列和写消息队列;
调整模块,用于调整读消息队列和写消息队列的优先级,依据当前读消息队列中读消息数量和写消息队列中写消息数量,得到上述两个消息队列中读消息数量和写消息数量之比,根据上述比值调整本批次读消息队列和写消息队列的优先级;
消息处理模块,用于按规定数量处理读消息和写消息,依据当前读消息队列和写消息队列的优先级,得到读消息队列中读消息数量和写消息队列中写消息数量之比,根据上述比值确定本批次处理读消息数量或处理写消息数量。
4.根据权利要求3所述的固态硬盘中读写调度装置,其特征在于,还包括:判断模块,用于判断本批次处理的读消息和写消息是否完成,若完成,则进行下一批次读消息队列和写消息队列的优先级的调整;若未完成,则继续。
CN201611202274.4A 2016-12-23 2016-12-23 一种固态硬盘中读写调度方法及装置 Active CN106681661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611202274.4A CN106681661B (zh) 2016-12-23 2016-12-23 一种固态硬盘中读写调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611202274.4A CN106681661B (zh) 2016-12-23 2016-12-23 一种固态硬盘中读写调度方法及装置

Publications (2)

Publication Number Publication Date
CN106681661A CN106681661A (zh) 2017-05-17
CN106681661B true CN106681661B (zh) 2020-02-07

Family

ID=58871053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611202274.4A Active CN106681661B (zh) 2016-12-23 2016-12-23 一种固态硬盘中读写调度方法及装置

Country Status (1)

Country Link
CN (1) CN106681661B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368263A (zh) * 2017-07-25 2017-11-21 郑州云海信息技术有限公司 一种固态硬盘中优先权调度的方法和系统
CN107450862A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种固态硬盘读操作的仲裁方法
CN107967224A (zh) * 2017-10-12 2018-04-27 记忆科技(深圳)有限公司 一种固态硬盘提升性能一致性的方法
CN109213583B (zh) * 2018-07-25 2022-03-29 中国科学院计算技术研究所 一种通过软硬件协同支持读写性能隔离的i/o调度器
CN109766056A (zh) * 2018-11-28 2019-05-17 上海威固信息技术股份有限公司 一种存储阵列控制器io队列调度方法与装置
WO2022067686A1 (zh) * 2020-09-30 2022-04-07 华为技术有限公司 一种应用于固态硬盘ssd的数据读取方法及相关装置
CN116724287A (zh) * 2021-01-25 2023-09-08 华为技术有限公司 一种内存控制方法及内存控制装置
CN113126917A (zh) * 2021-04-01 2021-07-16 山东英信计算机技术有限公司 一种分布式存储中请求处理方法、系统、设备以及介质
US11861174B2 (en) 2021-07-15 2024-01-02 Hewlett Packard Enterprise Development Lp Prioritizing read IO queues in non-volatile memory express devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316240A (zh) * 2008-07-28 2008-12-03 华为技术有限公司 一种数据读写的方法和装置
CN105487987A (zh) * 2015-11-20 2016-04-13 深圳市迪菲特科技股份有限公司 一种处理并发顺序读io的方法及装置
CN105868033A (zh) * 2016-04-06 2016-08-17 江苏物联网研究发展中心 基于Redis实现优先级消息队列的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557419B (zh) * 2009-05-06 2012-07-11 成都市华为赛门铁克科技有限公司 一种数据读写系统和数据管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316240A (zh) * 2008-07-28 2008-12-03 华为技术有限公司 一种数据读写的方法和装置
CN105487987A (zh) * 2015-11-20 2016-04-13 深圳市迪菲特科技股份有限公司 一种处理并发顺序读io的方法及装置
CN105868033A (zh) * 2016-04-06 2016-08-17 江苏物联网研究发展中心 基于Redis实现优先级消息队列的方法及系统

Also Published As

Publication number Publication date
CN106681661A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106681661B (zh) 一种固态硬盘中读写调度方法及装置
US9639280B2 (en) Ordering memory commands in a computer system
US20230004329A1 (en) Managed fetching and execution of commands from submission queues
US20200356312A1 (en) Scheduling access commands for data storage devices
KR102380670B1 (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
US8996824B2 (en) Memory reorder queue biasing preceding high latency operations
US9146690B2 (en) Systems and methods for dynamic priority control
US9032165B1 (en) Systems and methods for scheduling write requests for a solid state storage device
US10156994B2 (en) Methods and systems to reduce SSD IO latency
JP2013541765A5 (zh)
US20190056870A1 (en) Reducing solid state Storage device read tail latency
US20120239873A1 (en) Memory access system and method for optimizing SDRAM bandwidth
EP3361388B1 (en) Distribution of master device tasks among bus queues
US10310923B1 (en) Probabilistic aging command sorting
CN110659114A (zh) 用于端到端服务质量期限感知的i/o调度的技术
US10372379B2 (en) Command processing method and storage controller using the same
CN109901785B (zh) 命令排序方法、降低读时延方法及固态硬盘ssd控制器
CN106681660A (zh) Io调度方法及io调度装置
EP3440547B1 (en) Qos class based servicing of requests for a shared resource
US20140379846A1 (en) Technique for coordinating memory access requests from clients in a mobile device
US10310873B1 (en) Probabilistic aging command sorting
US20200301732A1 (en) Information processing system and non-transitory computer readable medium storing program
CN115202842A (zh) 任务调度方法及装置
US20220138117A1 (en) System and method for dynamically adjusting priority-based allocation of storage system resources
CN113381941B (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