CN103809917A - 用于存储器的工作调度方法及其存储系统 - Google Patents
用于存储器的工作调度方法及其存储系统 Download PDFInfo
- Publication number
- CN103809917A CN103809917A CN201310091661.5A CN201310091661A CN103809917A CN 103809917 A CN103809917 A CN 103809917A CN 201310091661 A CN201310091661 A CN 201310091661A CN 103809917 A CN103809917 A CN 103809917A
- Authority
- CN
- China
- Prior art keywords
- work
- queue
- job category
- order
- priority
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种工作调度方法,用于一存储系统中的多个存储器。该方法包括将该多个工作中每一工作分类至多个工作类型当中任一工作类型;根据该多个工作类型,配置多个工作队列,其中每一工作队列存储该多个工作中的一工作;指定该多个工作类型中每一工作类型的一优先权;配置至少一执行队列;以及将存储在该多个工作队列中一第一工作队列的一第一工作转换为至少一命令,以存储在该至少一执行队列中一第一执行队列。该第一执行队列中的该至少一命令是根据对应于该第一工作队列的一第一工作类型的优先权来执行。
Description
技术领域
本发明涉及一种工作调度方法及其存储系统。
背景技术
存储器控制器常用于存储系统(特别是非挥发性存储系统)中,用来进行工作管理。一般来说,当非挥发性存储系统的电源关闭时,存储在非挥发性存储系统的数据不会遗失,因此非挥发性存储系统可作为一种用来存储系统数据的重要装置。在各类非挥发性存储系统中,由于与非门闪存(NANDflash memory)具有低功耗及速度快的优点,因此,伴随近年来可移动式装置的普及化,与非门闪存已被广为采用。
然而,与非门闪存具有一些缺点。例如,与非门闪存中每一区块的存取次数存在一上限;此外,在区块被抹除以前,数据不可直接写入其中。为了克服这些缺点,用于与非门闪存的控制器必须执行一些工作,如平均读写存储区块(wear leveling)、垃圾回收(garbage collection)、故障区块管理(badblock management)等。因此,存储器控制器在与非门闪存中扮演重要角色,而许多工作都可由与非门闪存的控制装置所执行。一般来说,大多数工作可分类为以下四种主要工作类型:用户数据存取、诠释数据(metadata)管理、平均读写存储区块控制以及垃圾回收。用户数据存取是存储器的基本存取运作,如读取及写入。诠释数据管理可管理存储器中使用者存取数据的位置,例如使用一表格或目录来显示哪一区块存有资料,或哪一区块是空的而可用来存取其它用户数据。平均读写存储区块是将较常修改的数据搬移至较少使用的区块,并将较少修改的数据搬移至较常使用的区块,进而使每一区块的使用频率相等,以避免部分区块由于太常使用而提早到达存取次数的上限,导致区块损毁。垃圾回收用于清除每一区块时,先在区块中收集有用的剩余资料,再进行清除。
请参考图1,图1为公知一存储系统10的示意图。如图1所示,存储系统10包括一闪存控制器100及一闪存数组150。闪存控制器100通过一闪存接口与闪存数组150进行通信。闪存控制器100还通过一主机接口与一主机进行通信,其中该主机可为需在存储系统10存取数据的处理器或服务器。闪存控制器100包括一闪存转换层(flash translation layer,FTL)110及一实体驱动程序120。闪存转换层110可将由主机接收到的指令转换为可在闪存中执行的不同工作类型112A~112D的工作。闪存转换层110还包括一仲裁单元114,用来管理及协调这些工作。实体驱动程序120用来驱动闪存数组150中的闪存来执行这些工作。所有闪存都配置在闪存数组150中,闪存数组150的每一栏可表示为通道Ch0~Ch3,而每一通道中的闪存可由使能信号CE0~CE3来控制。因此,信道Ch0~Ch3及使能信号CE0~CE3可用来存取闪存数组150中的存储器。每当实体驱动程序120欲驱动某一特定存储器时,对应于此特定存储器的使能信号会启动,使得工作可在此特定存储器执行。
根据上述结构,当主机下指令于存储系统10时,闪存转换层110接收指令,进而指示欲执行的工作。接着,仲裁单元114会监控实体驱动程序120。一般来说,当实体驱动程序120处在空闲状态时,仲裁单元114会指示实体驱动程序120以驱动闪存数组150中一特定存储器,使工作可在此特定存储器执行。另一方面,当实体驱动程序120处在忙碌状态时,必须等到前一工作完成以后,才执行下一个工作。闪存10的效率可能会因此受到影响,而无法维持一定大小的吞吐量以提供予使用者。有鉴于此,公知技术实有改善的必要。
发明内容
因此,本发明的主要目的即在于提供一种可指定多个工作的优先权,以通过最佳化顺序来执行此多个工作,进而改善存储系统效率的工作调度方法及其存储系统。
本发明公开一种工作调度方法,用于一存储系统中的多个存储器,该方法包括有将该多个工作中每一工作分类至多个工作类型当中任一工作类型;根据该多个工作类型,配置多个工作队列,其中每一工作队列存储该多个工作中的一工作,该工作属于该多个工作类型之一且为欲执行的工作;指定该多个工作类型中每一工作类型的一优先权;配置至少一执行队列;以及将存储在该多个工作队列中一第一工作队列的一第一工作转换为至少一命令,以存储在该至少一执行队列中一第一执行队列;其中,该第一执行队列中的该至少一命令是根据对应于该第一工作队列的一第一工作类型的优先权来执行。
本发明还公开一种存储系统,包括有多个存储器;以及一存储器控制器。该存储器控制器可实现为一程序代码,用来指示一处理器执行一种用于该存储系统中该多个存储器的工作调度方法,该方法包括有将该多个工作中每一工作分类至多个工作类型当中任一工作类型;根据该多个工作类型,配置多个工作队列,其中每一工作队列存储该多个工作中的一工作,该工作属于该多个工作类型之一且为欲执行的工作;指定该多个工作类型中每一工作类型的一优先权;配置至少一执行队列;以及将存储在该多个工作队列中一第一工作队列的一第一工作转换为至少一命令,以存储在该至少一执行队列中一第一执行队列;其中,该第一执行队列中的该至少一命令是根据对应于该第一工作队列的一第一工作类型的优先权来执行。
附图说明
图1为公知一存储系统的示意图。
图2为本发明实施例一存储系统的示意图。
图3为本发明实施例存储在工作队列的工作的示意图。
图4为本发明实施例存储在执行队列的命令的示意图。
图5A为本发明实施例存储在工作队列的工作欲根据优先权转换为命令的示意图。
图5B为本发明实施例根据优先权将工作转换为命令的示意图。
图5C为本发明实施例当数个命令正在执行且数个工作及数个命令正在执行队列中等待时,一新工作到达的示意图。
图5D为本发明实施例具有较高优先权的工作转换为命令的示意图。
图6为本发明实施例一存储器控制流程的示意图。
图7为本发明实施例通过一交错方式执行命令的示意图。
其中,附图标记说明如下:
10 存储系统
100 闪存控制器
110 闪存转换层
112A~112D 工作类型
114 仲裁单元
120 实体驱动程序
150 闪存数组
Ch0~Ch3 通道
CE0~CE3 使能信号
20 存储系统
200 闪存控制器
220 实体驱动程序
230 虚拟驱动程序
232A~232D 工作队列
234A~234D 执行队列
242 工作调度单元
244 执行调度单元
250 闪存数组
252、254、256、258 存储器空间
60 存储器控制流程
600~612 步骤
具体实施方式
请参考图2,图2为本发明实施例一存储系统20的示意图。如图2所示,存储系统20包括一闪存控制器200及一闪存数组250。与存储系统10相同,闪存控制器200通过一闪存接口与闪存数组250进行通信。闪存控制器200还通过一主机接口与一主机进行通信,其中该主机可为需在存储系统20存取数据的处理器或服务器。闪存数组250与闪存数组150相似。由于闪存数组250具有四个栏以及四个列,因此通道Ch0~Ch3及使能信号CE0~CE3可用来存取闪存数组250中的闪存。在其它实施例中,闪存数组可能具有任何大小的栏数以及任何大小的列数,因此信道及使能信号的数量都可任意决定。在部分实施例中,对应于一信道及一使能信号的存储器可对应于数个存储器单元(如逻辑单元的数量)。在此情况下,必须使用特定的使能信号来存取这些存储器单元中某一特定的存储器单元。
请继续参考图2。如图2所示,存储系统20与存储系统10的主要差异在于「闪存控制器」的部分。图2中的存储系统20的闪存控制器200还包括一虚拟驱动程序230,而删除仲裁单元114。虚拟驱动程序230包括一实体驱动程序220、工作队列232A~232D、执行队列234A~234D、一工作调度单元242及一执行调度单元244。实体驱动程序220与实体驱动程序120的架构相似。工作队列232A~232D可用来存储工作,其中每一工作队列对应于一工作类型,并存储属于相对应工作类型且欲执行的工作。举例来说,请参考图3,图3为存储在工作队列232A~232D的工作的示意图。如图3所示,二个欲执行的用户数据存取112A的工作存储在工作队列232A,一欲执行的诠释数据管理112B的工作存储在工作队列232B,一欲执行的平均读写存储区块控制112C的工作存储在工作队列232C,而一欲执行的垃圾回收112D的工作存储在工作队列232D。此四种工作类型的分类仅为可用于存储系统20的其中一种可行的实施例,在其它实施例中,工作可通过任何方式分类。因此,存储系统20中可能存在任何数量的工作类型,因此可能存在任何数量的工作队列,以分别对应于不同工作类型。在一般与非门闪存(NAND flashmemory)中,多数工作都可分类为上述四种工作类型(即用户数据存取112A、诠释数据管理112B、平均读写存储区块控制112C及垃圾回收112D),因此本实施例的存储系统20可将所有工作根据工作类型112A~112D进行分类。工作调度单元242耦接至每一工作队列232A~232D,用来判断工作优先权,并将属于工作类型112A~112D的工作分别转换为可存储在执行队列234A~234D的命令。
另一方面,执行调度单元244耦接至实体驱动程序220,可用来根据工作优先权,配置带宽以提供予执行队列234A~234D中的命令。执行队列234A~234D可用来存储命令,而这些命令可在闪存数组250中的存储器执行,其中可执行的命令是由存储在工作队列232A~232D而欲执行的工作通过工作调度单元242转换而成。执行队列234A~234D中每一执行队列可对应于信道Ch0~Ch3中的一通道,而每一执行队列存储须在此信道中的存储器执行的命令。举例来说,请参考图4,图4为存储在执行队列234A~234D的命令的示意图。如图4所示,一平均读写存储区块控制112C的命令、一垃圾回收112D的命令、一诠释数据管理112B的命令及一用户数据存取112A的命令存储在执行队列234A,一垃圾回收112D的命令及一用户数据存取112A的命令存储在执行队列234B,一用户数据存取112A的命令存储在执行队列234C,以及一用户数据存取112A的命令存储在执行队列234D。此四个执行队列234A~234D的配置仅为一种可能的实施例,在其它实施例中,由于闪存数组中可能具有任何大小的栏数,其可能对应于任何数量的通道。因此,任何数量的执行队列都可能实现在虚拟驱动程序230中,以对应于闪存数组250的信道数量。
详细来说,每一工作都可被分类为工作类型112A~112D之一。当欲执行一工作时,可将此工作存储在所属的工作类型所对应的工作队列,其包括在工作队列232A~232D中。当欲执行的工作排入工作队列232A~232D以后,虚拟驱动程序230根据相对应工作类型的优先权,将此工作转换为可执行的命令。每一工作可由工作调度单元242转换为至少一可执行命令,进而通过执行调度单元244配置在执行队列234A~234D中至少一执行队列。举例来说,如图2所示,若一平均读写存储区块控制112C的工作是由一存储器空间252将数据搬移至一存储器空间254,此工作可被转换为二个命令:从存储器空间252读取数据以及将数据写入存储器空间254。因此,读取命令可配置在执行队列234A,而写入命令可配置在执行队列234C。接着,实体驱动程序220可依序执行读取命令及写入命令,进而完成此平均读写存储区块控制112C的工作。
一般来说,针对在闪存接口传送的数据,闪存系统可定义一吞吐量。举例来说,若存储系统20的吞吐量为10MB/s,则存储系统20的带宽也为10MB/s。另一方面,工作类型112A~112D中每一工作类型也具有一吞吐量,其定义为该工作类型的工作由实体驱动程序220执行时,其占据存储系统20的带宽大小。若工作类型112A~112D的吞吐量加总小于存储系统20的吞吐量时,工作队列232A~232D中所有工作都可顺利执行。若工作类型112A~112D的吞吐量加总大于存储系统20的吞吐量时,部分工作必须在工作队列232A~232D或执行队列234A~234D中等待,而无法及时被执行。因此,必须通过优先权来判断哪些工作可先执行,以通过最佳化顺序来执行所有工作,进而改善存储系统20的效率。
举例来说,假设存储系统20的带宽为10MB/s。用户数据存取112A工作的吞吐量表示为U MB/s,诠释数据管理112B工作的吞吐量表示为M MB/s,平均读写存储区块控制112C工作的吞吐量表示为W MB/s,以及垃圾回收112D工作的吞吐量表示为G MB/s。若U+M+W+G<=10时,所有工作队列232A~232D中的工作都可顺利执行。若U+M+W+G>10时,部分工作必须在工作队列232A~232D中等待,而无法及时被执行。因此,必须通过优先权来进行调度。
值得注意的是,优先权可根据存储系统20的状态进行调整。一般来说,预设的优先权顺序由高至低排列可能为诠释数据管理112B、用户数据存取112A、垃圾回收112D及平均读写存储区块控制112C。由于存储在诠释数据中的闪存数组250状态须时常更新,诠释数据管理112B通常拥有最高优先权。在部分实施例中,若闪存数组250的可用空间不足以至于无法存取用户数据,或可用空间少于一临界值时,垃圾回收112D可拥有最高优先权。实体驱动程序220可先清除数据并执行垃圾回收112D,进而回收利用这些可用空间,以利后续操作。在部分实施例中,若存储系统20的效率为主要考虑时,用户数据存取112A可拥有最高优先权,以维持一定程度的吞吐量提供予使用者。实际上,优先权可通过不同方式决定,使得工作的执行达到最佳化。如上所述,闪存中可能包括任何数量的工作类型以及任何分类方式,因此,优先权的决定可依据不同工作类型进行调整,而不限于此。
请参考图5A,图5A为本发明实施例存储在工作队列232A~232D的工作欲根据优先权转换为命令的示意图。如图5A所示,用户数据存取112A的工作U1~U3、一诠释数据管理112B的工作M1、一平均读写存储区块控制112C的工作W1以及一垃圾回收112D的工作G1分别存储在工作队列232A~232D。假设存储系统20的带宽为16MB/s,而每一命令(由工作类型112A~112D中的一工作通过工作调度单元242转换而得)占有的吞吐量为4MB/s。因此,最多四个命令可顺利执行。一般来说,存储系统20的带宽16MB/s可平均分配至四个信道Ch0~Ch3,因此每一通道分配有4MB/s,使得每一执行队列中仅有一个命令可顺利执行。根据优先权的预设顺序(即诠释数据管理112B、用户数据存取112A、垃圾回收112D及平均读写存储区块控制112C),工作调度单元242先将诠释数据管理112B的工作M1转换为命令,并存储在执行队列234A~234D中相对应的执行队列。接着,用户数据存取112A的工作U1~U3及垃圾回收112D的工作G1依序被转换为命令,并根据优先权以及欲进行工作的存储器位置,存储在执行队列234A~234D中相对应的执行队列,如图5B所示。此时,假设平均读写存储区块控制112C的工作W1欲在信道Ch0执行的存储器,而必须分配至执行队列234A,但执行队列234A的空间已完全被占据时,工作W1必须在工作队列232C中等待,直到执行队列234A的存储空间释放出来。
每当一新工作进入工作队列232A~232D时,必须将优先权套用于此新工作,以通过最佳化顺序来执行,进而改善存储系统20的效率。请参考图5C,图5C为图5B所示的状态下当数个命令正在执行且数个工作及数个命令正在执行队列234A~234D中等待时,一新工作U4到达的示意图。假设新到达的工作U4属于用户数据存取112A的工作类型,且用于信道Ch0的存储器,因此,工作U4配置在工作队列232A且欲转换至执行队列234A。此时,由于执行队列234A的空间已完全被占据,因此工作W1及U4须分别在工作队列232C及232A中等待。当每一执行队列中,部分对应于工作(如M1及U1)的命令完成以后,带宽及执行队列234A~234D的存储空间同时被释放出来,使得工作队列232A~232D中部分工作可转换为命令。此时,工作调度单元242可根据优先权选择工作队列232A~232D中欲转换为命令的工作。由于工作W1及工作U4都用于信道Ch0的存储器,工作调度单元242必须根据优先权将工作转换至执行队列234A。再者,由于用户数据存取112A的工作相较于平均读写存储区块控制112C的工作具有较高优先权,即使工作U4较晚进入工作队列,仍先被转换为命令,而工作W1须在工作队列232C等待,如图5D所示。更进一步地,根据优先权,存储在执行队列234A~234D中的命令的顺序也可能改变。因此,在执行队列234A中,工作U4转换为命令以后存储在对应于工作G1的命令以前的位置,且可在工作U2及U3对应的命令执行完成以后被执行。
一程序代码可实现在存储器控制器200中,用来指示一处理器执行上述操作。而上述操作可归纳为一存储器控制流程60,如图6所示。存储器控制流程60包括以下步骤:
步骤600:开始。
步骤602:将多个工作中每一工作分类至工作类型112A~112D当中任一工作类型。
步骤604:根据工作类型112A~112D,配置工作队列232A~232D,其中每一工作队列存储多个工作中的一工作,此工作属于工作类型112A~112D之一且为欲执行的工作。
步骤606:指定工作类型112A~112D中每一工作类型的一优先权。
步骤608:配置执行队列234A~234D。
步骤610:将存储在工作队列232A~232D中一第一工作队列的一第一工作转换为至少一命令,以存储在执行队列234A~234D中一第一执行队列,其中,第一执行队列中的至少一命令是根据对应于第一工作队列的一第一工作类型的优先权来执行。
步骤612:结束。
值得注意的是,本发明的主要精神在于可通过最佳化顺序执行存储系统中的工作,进而改善存储系统的效率。本领域普通技术人员当可据以修饰或变化,而不限于此。举例来说,在上述实施例中,工作调度的方法是用于快闪类型的存储系统20中,但在部分实施例中,只要包括有存储器控制器,任何类型的存储系统都可使用上述工作调度方法。另一方面,如图2~图5D所示,每一工作队列232A~232D中存储工作的空间以及每一执行队列234A~234D中存储命令的空间都为4个单元,但在其它实施例中,用来存储工作或命令的空间可能具有不同大小,或可根据系统需求而进行调整,而不限于此。更进一步地,在部分实施例中,执行调度单元244可根据系统需求,依照任何顺序将命令分配在执行队列中,因此,排列在执行队列的命令可依照任何顺序来执行。以下实施例中,命令是通过一交错方式执行。
请参考图7,图7为本发明实施例通过一交错方式执行命令的示意图。如图7所示,用户数据存取112A的工作U4及U5存储在工作队列232A中。工作U4可转换为命令U4A及U4B并在位于信道Ch0的一存储器空间256执行,工作U5可转换为命令U5A及U5B并在同样位于通道Ch0的另一存储器空间258执行。在此情况下,实体驱动程序220可依照U4A、U5A、U4B及U5B的顺序来执行命令。当在存储器空间256执行命令U4时,即使实体驱动程序220已完成其任务且准备好执行后续命令,存储器空间256可能仍在进行数据转传而处在忙碌状态。此时,命令U4B必须在执行队列中等待,直到存储器空间256空出以后才可执行。此时若存储器空间258处在空闲状态,实体驱动程序220可先执行命令U5A,以提升效率。如此一来,命令可通过交错方式执行,进而达到存储系统20的较高效率。在其它实施例中,工作U4及U5可先分割为较小的工作,再将较小工作转换为命令U4A、U4B、U5A及U5B,此命令也可通过交错方式执行。
一般来说,大多数闪存定义一种吞吐量的规格,如一等级四(class-4)闪存代表用户数据存取的吞吐量至少须大于4MB/s,一等级六(class-6)闪存代表用户数据存取的吞吐量至少须大于6MB/s。在此情况下,须确保用户数据存取112A的工作的吞吐量大于一目标值。举例来说,在上述实施例中,存储系统20的带宽为10MB/s,若用户数据存取112A工作的目标吞吐量设定为6MB/s,仅剩下4MB/s带宽提供予其它工作类型的工作使用。因此,在上述实施例中,可定义一种新的规则。若M+W+G<=4时,所有工作队列232A~232D中的工作都可顺利执行。若M+W+G>4时,部分工作必须在工作队列232A~232D中等待,而无法及时被执行。在此情况下,可确保用户数据存取112A工作的吞吐量大于6MB/s。然而,在少数情况下,若存储系统20的带宽被某些须紧急处理的工作占据时,使用者资料存取112A工作的吞吐量仍可能下降至低于目标吞吐量。
在公知技术中,当实体驱动程序处在忙碌状态时,必须等到现有工作完成以后,才执行下一个工作。因此,实体驱动程序必须先完成前一个工作,再开始执行后续工作。如此一来,闪存的效率可能会降低。相较之下,本发明可指定多个工作的优先权,以通过最佳化顺序执行多个工作,进而改善闪存的效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (23)
1.一种工作调度方法,用于一存储系统中的多个存储器,该方法包括有:将该多个工作中每一工作分类至多个工作类型当中任一工作类型;根据该多个工作类型,配置多个工作队列,其中每一工作队列存储该多
个工作中的一工作,该工作属于该多个工作类型之一且为欲执行的工作;
指定该多个工作类型中每一工作类型的一优先权;
配置至少一执行队列;以及
将存储在该多个工作队列中一第一工作队列的一第一工作转换为至少一命令,以存储在该至少一执行队列中一第一执行队列;
其中,该第一执行队列中的该至少一命令是根据对应于该第一工作队列的一第一工作类型的优先权来执行。
2.如权利要求1所述的方法,其特征在于,当欲执行的一第二工作到达时,该第二工作被分类至该多个工作类型中一第二工作类型并存储在对应于该第二工作类型的一第二工作队列。
3.如权利要求2所述的方法,其特征在于,该方法还包括将存储在该多个工作队列中该第二工作队列的该第二工作转换为至少一命令,以存储在该至少一执行队列中一第二执行队列。
4.如权利要求3所述的方法,其特征在于,该第二执行队列中的该至少一命令是根据对应于该第二工作队列的一第二工作类型的优先权来执行。
5.如权利要求2所述的方法,其特征在于,该方法还包括将存储在该多个工作队列中该第二工作队列的该第二工作转换为至少一命令,以存储在该至少一执行队列中该第一执行队列。
6.如权利要求5所述的方法,其特征在于,该第二工作的优先权高于该第一工作的优先权,由该第二工作转换的命令先被执行,再执行由该第一工作转换的命令。
7.如权利要求1所述的方法,其特征在于,当该多个工作队列中所有工作吞吐量的加总大于该存储系统的一带宽时,该第一工作是根据对应于该第一工作队列的该第一工作类型的优先权进行选择。
8.如权利要求1所述的方法,其特征在于,该方法还包括在该多个工作类型中一工作类型定义一目标吞吐量。
9.如权利要求1所述的方法,其特征在于,该至少一执行队列中每一执行队列对应于该多个存储器中至少一存储器。
10.如权利要求9所述的方法,其特征在于,该至少一命令是通过一交错方式在该多个存储器中执行。
11.如权利要求1所述的方法,其特征在于,该多个工作类型中每一工作类型的该优先权是根据该存储系统的一状态来指定。
12.一种存储系统,包括有:
多个存储器;以及
一存储器控制器,可实现为一程序代码,用来指示一处理器执行一种用于该存储系统中该多个存储器的工作调度方法,该方法包括有:
将该多个工作中每一工作分类至多个工作类型当中任一工作类型;
根据该多个工作类型,配置多个工作队列,其中每一工作队列存储该多个工作中的一工作,该工作属于该多个工作类型之一且为欲执行的工作;
指定该多个工作类型中每一工作类型的一优先权;
配置至少一执行队列;以及
将存储在该多个工作队列中一第一工作队列的一第一工作转换为至少一命令,以存储在该至少一执行队列中一第一执行队列;
其中,该第一执行队列中的该至少一命令是根据对应于该第一工作队列的一第一工作类型的优先权来执行。
13.如权利要求12所述的存储系统,其特征在于,当欲执行的一第二工作到达时,该第二工作被分类至该多个工作类型中一第二工作类型并存储在对应于该第二工作类型的一第二工作队列。
14.如权利要求13所述的存储系统,其特征在于,该方法还包括将存储在该多个工作队列中该第二工作队列的该第二工作转换为至少一命令,以存储在该至少一执行队列中一第二执行队列。
15.如权利要求14所述的存储系统,其特征在于,该第二执行队列中的该至少一命令是根据对应于该第二工作队列的一第二工作类型的优先权来执行。
16.如权利要求13所述的存储系统,其特征在于,该方法还包括将存储在该多个工作队列中该第二工作队列的该第二工作转换为至少一命令,以存储在该至少一执行队列中该第一执行队列。
17.如权利要求16所述的存储系统,其特征在于,该第二工作的优先权高于该第一工作的优先权,由该第二工作转换的命令先被执行,再执行由该第一工作转换的命令。
18.如权利要求12所述的存储系统,其特征在于,当该多个工作队列中所有工作吞吐量的加总大于该存储系统的一带宽时,该第一工作是根据对应于该第一工作队列的该第一工作类型的优先权进行选择。
19.如权利要求12所述的存储系统,其特征在于,该方法还包括在该多个工作类型中一工作类型定义一目标吞吐量。
20.如权利要求12所述的存储系统,其特征在于,该至少一执行队列中每一执行队列对应于该多个存储器中至少一存储器。
21.如权利要求20所述的存储系统,其特征在于,该至少一命令是通过一交错方式在该多个存储器中执行。
22.如权利要求12所述的存储系统,其特征在于,该多个工作类型中每一工作类型的该优先权是根据该存储系统的一状态来指定。
23.一种工作调度方法,用于一存储系统中的多个存储器,该方法包括有:
接收一工作;
判断该工作的一工作类型;
根据该工作的该工作类型,将该工作排列在一相对应的工作队列;
根据该工作的该工作类型,赋予该工作一优先权;
根据该工作的该优先权,将该工作转换为至少一命令;以及
根据该工作的该优先权,将由该工作转换而成的该至少一命令排入一相对应的执行队列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/674,106 | 2012-11-12 | ||
US13/674,106 US9058208B2 (en) | 2012-11-12 | 2012-11-12 | Method of scheduling tasks for memories and memory system thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103809917A true CN103809917A (zh) | 2014-05-21 |
Family
ID=50683047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310091661.5A Pending CN103809917A (zh) | 2012-11-12 | 2013-03-21 | 用于存储器的工作调度方法及其存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9058208B2 (zh) |
CN (1) | CN103809917A (zh) |
TW (1) | TWI484414B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055495A (zh) * | 2015-04-14 | 2016-10-26 | 三星电子株式会社 | 用于控制半导体装置的方法 |
CN106547492A (zh) * | 2016-12-08 | 2017-03-29 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
CN107305504A (zh) * | 2016-04-21 | 2017-10-31 | 慧荣科技股份有限公司 | 数据储存装置、其控制单元及其任务排序方法 |
CN108182158A (zh) * | 2018-01-12 | 2018-06-19 | 江苏华存电子科技有限公司 | 一种应用在存储系统中的任务调度优化方法 |
CN108932109A (zh) * | 2017-05-24 | 2018-12-04 | 西部数据技术公司 | 基于优先级的内部数据移动 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015086846A2 (fr) * | 2013-12-12 | 2015-06-18 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Systeme de gestion de l'usure d'une memoire electronique |
WO2015086847A2 (fr) * | 2013-12-12 | 2015-06-18 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Systeme et procede de gestion de l'usure d'une memoire electronique |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9536010B2 (en) * | 2014-08-11 | 2017-01-03 | Amadeus S.A.S. | Automated ticketing |
US9921870B2 (en) * | 2014-09-25 | 2018-03-20 | Oracle International Corporation | System and method for supporting a scalable thread pool in a distributed data grid |
US10073714B2 (en) | 2015-03-11 | 2018-09-11 | Western Digital Technologies, Inc. | Task queues |
US9870266B2 (en) * | 2015-07-30 | 2018-01-16 | Nasdaq, Inc. | Background job processing framework |
CN106547701B (zh) * | 2015-09-17 | 2020-01-10 | 慧荣科技股份有限公司 | 记忆装置及数据读取方法 |
TWI582684B (zh) * | 2015-11-10 | 2017-05-11 | 慧榮科技股份有限公司 | 儲存裝置及其任務執行方法、對應於儲存裝置的主機及其任務執行方法、以及應用於儲存裝置的控制單元 |
US10592107B2 (en) * | 2016-03-30 | 2020-03-17 | EMC IP Holding Company LLC | Virtual machine storage management queue |
KR102697927B1 (ko) | 2016-11-11 | 2024-08-22 | 삼성전자주식회사 | 스토리지 장치 및 그 동작 방법 |
CN108228240B (zh) * | 2016-12-14 | 2021-02-26 | 北京国双科技有限公司 | 多任务队列中任务的处理方法和装置 |
JP6677627B2 (ja) * | 2016-12-20 | 2020-04-08 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびメモリアクセス方法 |
US10359948B2 (en) * | 2017-08-28 | 2019-07-23 | International Business Machines Corporation | I/O performance in heterogeneous storage environments |
KR102680874B1 (ko) * | 2018-12-20 | 2024-07-02 | 에스케이하이닉스 주식회사 | 저장 장치, 컨트롤러 및 저장 장치의 동작 방법 |
KR20210025412A (ko) * | 2019-08-27 | 2021-03-09 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
CN111158888A (zh) * | 2019-12-31 | 2020-05-15 | 北京明略软件系统有限公司 | 多任务调度方法和装置 |
CN113985818B (zh) * | 2021-10-25 | 2023-06-27 | 西安热工研究院有限公司 | 汽轮机伺服卡任务调度方法、调度系统及汽轮机伺服卡 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061709A (en) * | 1998-07-31 | 2000-05-09 | Integrated Systems Design Center, Inc. | Integrated hardware and software task control executive |
US20010007559A1 (en) * | 2000-01-06 | 2001-07-12 | International Business Machines Corporation | Interleaved processing system for processing frames within a network router |
US20020191555A1 (en) * | 2001-03-09 | 2002-12-19 | Borst Simon C. | Dynamic rate control methods and apparatus for scheduling data transmissions in a communication network |
US20030172104A1 (en) * | 2002-03-08 | 2003-09-11 | Intel Corporation | Weighted and prioritized task scheduler |
-
2012
- 2012-11-12 US US13/674,106 patent/US9058208B2/en active Active - Reinstated
-
2013
- 2013-02-27 TW TW102107055A patent/TWI484414B/zh active
- 2013-03-21 CN CN201310091661.5A patent/CN103809917A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061709A (en) * | 1998-07-31 | 2000-05-09 | Integrated Systems Design Center, Inc. | Integrated hardware and software task control executive |
US20010007559A1 (en) * | 2000-01-06 | 2001-07-12 | International Business Machines Corporation | Interleaved processing system for processing frames within a network router |
US20020191555A1 (en) * | 2001-03-09 | 2002-12-19 | Borst Simon C. | Dynamic rate control methods and apparatus for scheduling data transmissions in a communication network |
US20030172104A1 (en) * | 2002-03-08 | 2003-09-11 | Intel Corporation | Weighted and prioritized task scheduler |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055495A (zh) * | 2015-04-14 | 2016-10-26 | 三星电子株式会社 | 用于控制半导体装置的方法 |
US10761880B2 (en) | 2016-04-21 | 2020-09-01 | Silicon Motion, Inc. | Data storage device, control unit thereof, and task sorting method for data storage device |
CN107305504A (zh) * | 2016-04-21 | 2017-10-31 | 慧荣科技股份有限公司 | 数据储存装置、其控制单元及其任务排序方法 |
CN106547492A (zh) * | 2016-12-08 | 2017-03-29 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
CN106547492B (zh) * | 2016-12-08 | 2018-03-20 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
WO2018103685A1 (zh) * | 2016-12-08 | 2018-06-14 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
US11112998B2 (en) | 2016-12-08 | 2021-09-07 | Dera Co., Ltd. | Operation instruction scheduling method and apparatus for nand flash memory device |
CN108932109A (zh) * | 2017-05-24 | 2018-12-04 | 西部数据技术公司 | 基于优先级的内部数据移动 |
US10990296B2 (en) | 2017-05-24 | 2021-04-27 | Western Digital Technologies. Inc. | Priority-based data movement |
CN108932109B (zh) * | 2017-05-24 | 2021-06-08 | 西部数据技术公司 | 基于优先级的内部数据移动 |
US11487437B2 (en) | 2017-05-24 | 2022-11-01 | Western Digital Technologies, Inc. | Priority-based data movement |
US11816338B2 (en) | 2017-05-24 | 2023-11-14 | Western Digital Technologies, Inc. | Priority-based data movement |
WO2019136967A1 (zh) * | 2018-01-12 | 2019-07-18 | 江苏华存电子科技有限公司 | 一种应用在存储系统中的任务调度优化方法 |
CN108182158A (zh) * | 2018-01-12 | 2018-06-19 | 江苏华存电子科技有限公司 | 一种应用在存储系统中的任务调度优化方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201419157A (zh) | 2014-05-16 |
US9058208B2 (en) | 2015-06-16 |
TWI484414B (zh) | 2015-05-11 |
US20140137128A1 (en) | 2014-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103809917A (zh) | 用于存储器的工作调度方法及其存储系统 | |
US11630609B2 (en) | Scheduling access commands for data storage devices | |
US11199996B2 (en) | Method of scheduling requests to banks in a flash controller | |
US10489085B2 (en) | Latency-based scheduling of command processing in data storage devices | |
CN107885456B (zh) | 减少io命令访问nvm的冲突 | |
US8935491B2 (en) | Memory architecture for dynamically allocated manycore processor | |
CN103336669B (zh) | 一种基于固态盘内部并行性的i/o调度方法及调度器 | |
US20180150242A1 (en) | Controller and storage device for efficient buffer allocation, and operating method of the storage device | |
CN103019971A (zh) | 快速响应trim命令的方法、SSD控制器及系统 | |
CN104866428B (zh) | 数据存取方法和数据存取装置 | |
KR20110004651A (ko) | 고체 상태 드라이브 장치 및 그것의 구동 방법 | |
CN104298606A (zh) | 固态存储装置中垃圾搜集动作的控制方法 | |
KR20120112965A (ko) | 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 | |
CN113924545A (zh) | 基于存储器子系统中的媒体单元的可用性的预测性数据传输 | |
CN101908368A (zh) | 电子存储装置及其操作方法 | |
US20200409874A1 (en) | Data storage system data access arbitration | |
CN102346682A (zh) | 信息处理装置及信息处理方法 | |
CN107870866B (zh) | Io命令调度方法与nvm接口控制器 | |
CN101441597B (zh) | 可调式混合密度内存储存装置的控制方法及其热门数据控管模块 | |
CN101866320B (zh) | 数据管理方法及使用此方法的闪存储存系统与控制器 | |
US10872015B2 (en) | Data storage system with strategic contention avoidance | |
US9971522B2 (en) | Memory system and method | |
KR101135313B1 (ko) | 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법 | |
CN107885667B (zh) | 降低读命令处理延迟的方法与装置 | |
CN102279815A (zh) | 以快闪存储器为基础的存储装置及其数据写入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140521 |