CN1282030A - 对商品盘驱动器上的命令进行优先级排序的方法和系统 - Google Patents

对商品盘驱动器上的命令进行优先级排序的方法和系统 Download PDF

Info

Publication number
CN1282030A
CN1282030A CN00120187A CN00120187A CN1282030A CN 1282030 A CN1282030 A CN 1282030A CN 00120187 A CN00120187 A CN 00120187A CN 00120187 A CN00120187 A CN 00120187A CN 1282030 A CN1282030 A CN 1282030A
Authority
CN
China
Prior art keywords
order
disk drive
priority
dish
threshold value
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
Application number
CN00120187A
Other languages
English (en)
Other versions
CN1117326C (zh
Inventor
理查德·C·克里文格
肯特·D·普劳西
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1282030A publication Critical patent/CN1282030A/zh
Application granted granted Critical
Publication of CN1117326C publication Critical patent/CN1117326C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0674Disk device

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)
  • Automatic Disk Changers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

在一个包括盘控制器和盘驱动器的计算机系统中,盘控制器通过考虑命令伴有的优先级和盘控制器的可用性二者来确定是否向盘驱动器发出一个命令。

Description

对商品盘驱动器上的命令进行优先级排序的方法和系统
本发明涉及对磁驱动器上的命令进行排序,更具体地说,涉及根据命令的优先级和盘驱动器的可用性来确定是否向该盘驱动器发出该命令。
图1是计算机系统100的方块图。它的主要部件是主机110、盘控制器115和盘驱动器125。盘驱动器125可以是市场上的现用(off-the-shelf)部件,有时称作商品盘驱动器,它遵从小型计算机系统接口(SCSI)协议。
主计算机110对存储在盘驱动器125上的数据进行操作。当主计算机110希望读数据时,它向盘控制器115发出一个标识该数据的读命令。按顺序,盘控制器115向盘驱动器125发出一个读命令。当盘驱动器125执行这个读命令时,它把数据发送给盘控制器115,盘控制器115把数据传送给主计算机110。对于主计算机110希望写数据的情况,它向盘控制器115发送一个写命令,并发送相关联的数据。然后,盘控制器115向盘驱动器125发出一个写命令。当盘驱动器125准备好执行写命令时,它通知盘控制器115,盘控制器115向盘驱动器125发送相关联的数据。
盘控制器115包括一个处理器117和相关的存储器118,用于执行和与主机110及盘驱动器125交换信息有关的过程。它还包括一个控制器命令队列120,其中含有尚待向盘驱动器125发出的命令。
盘驱动器125也包括以处理器(未画出)和相关存储器128形式存在的某些本机智能部件,它包括盘驱动器命令队列130。盘驱动器命令队列包含已发送给盘驱动器125但尚未被盘驱动器125执行的那些命令。
像计算机系统100那样的系统的性能经常利用响应时间和吞吐量来评价。响应时间,有时也称作等待时间(latency),是一命令被发出的时刻和它被执行的时刻之间的时间间隔。短的响应时间比长的响应时间更可取。吞吐量是在指定时间段内由一系统处理的命令总数。较大的吞吐量比较小的吞吐量更可取。
盘控制器115和盘驱动器125每个包括若干特性,以求减小响应时间和增大吞吐量。这些特性包括给予命令以优先级并对控制器命令队列120和盘控制器命令队列130上的命令进行组织。
盘控制器115给将发送到盘驱动器125的命令赋予一个优先级。最重要的命令被赋予最高优先级。有三个优先级与本讨论相关,它们是立即级(demand stage)、前置级(prestage)和分离级(destage)。
立即级优先级是最高优先级。它与主计算机110希望读数据的命令相关联。一般而言,当主计算机向盘控制器115发出读命令时,主计算机110对该数据有立即的需要。因此,当盘控制器115收到来自主计算机110的读命令时,它给该读命令赋予立即级优先级。
前置级优先级是次最高优先级。它被赋予由盘控制器115发起的读命令,而不是由主计算机110发起的读命令。盘控制器115评估从主计算机110收到的命令的近期历史,并试图预测主计算机将发出的下一个命令。例如,当主计算机已发出了读两个相邻数据块的读命令的情况下,盘控制器115可以预测来自主计算机110的下一个命令将是读第三个相邻数据块的读命令。在预期这一命令时,盘控制器115向盘驱动器125发出一个读这第三相邻数据块的命令。在预期一个来自主计算机110的读命令时由盘控制器做出的这样一个读命令被赋予前置级优先级。
分离级优先级低于前置级优先级。盘控制器115赋予写命令分离级优先级,它希望以此命令向盘驱动器125写数据。当主计算机110向一存储装置写数据时,通常它已结束了对数据的处理,至少对短时间是如此。主计算机110把数据传送到盘控制器115,然后转向其他任务。主计算机110不等待盘控制器115把数据实际写入盘驱动器125,所以不急于让盘驱动器125立即执行写命令。
盘控制器115按优先级顺序组织控制器命令队列120中的命令。就是说,具有最高优先级的命令放在控制器命令队列120的前面,而具有最低优先级的命令放在控制器命令队列120的末尾。具有相同优先级的命令按照它们已在队列中的时间量排序。就是说,命令按照优先级和年龄排序。在控制器命令队列120前面的命令是盘控制器115希望发给盘驱动器125的下一个命令。对控制器命令队列120中命令的这种组织是要使最高优先级的命令的响应时间达到极小。
盘控制器115能把命令从前置级优先级提升到立即级优先级。当这样的一个命令被提升为立即级时,该命令被放到立即级优先级的其他命令当中,并进一步按命令的年龄排序。当一命令被提升时,如果必要的话,盘控制器115将对控制器命令队列120重新排序。请注意,分离级优先级的命令没有资格提升。
盘控制器115还利用一个老化(aging)算法,它在一个预先确定的时间段之后使控制器命令队列120中的所有命令的优选级进级。更具体地说,在已经过了一个预先确定的时间之后,在控制器命令队列120中的所有命令都被进级到一个较高的优先级。老化算法是要防止新命令有较高优先级的情况下一个低优先级命令处于饥饿状态,即不被服务的状态。请注意,老化算法应用于所有命令,不管其优先级如何,但它不对命令队列120重新排序。
盘驱动器125把尚待执行的命令保持在盘驱动器命令队列120中。盘驱动器125能以两种方式中的任何一种操作,即“按顺序”方式和重新排序方式。在按顺序方式期间,盘驱动器125把命令放到盘驱动器命令队列130中,并按它们从盘控制器115接收的顺序来执行这些。在重新排序方式,盘驱动器125改变盘驱动器命令队列130中命令的顺序,以使执行相继命令之间的寻道时间和转动延时最小,从而改进吞吐量。
在重新排队顺序,随着盘驱动器命令队列130中命令数的增加,盘驱动器125变得更有效,因为当选择下一个要执行的命令时,它可有更多的命令从中去选择。所以吞吐量增大了。然而,随着盘驱动器命令队列130中命令数的增加。,对于给定命令的可能最大等待时间也增大了。还有,请注意,盘驱动器125不知道盘控制器115所用的优先级,结果,在重新排序方式下,它可能在一高优先级命令之前执行一个或多个低优先级命令。
另一个特性,称作队列头选项(Head of Queue Option),允许盘控制器115坚持把一个特定的命令放到盘驱动器命令队列130的头部。当盘控制器115发出一个命令并指定队列头选项时,这一指定防止盘驱动器125对盘驱动器命令队列130重新排序,而且所指定的指令将是由盘驱动器125执行的下一个指令。这一特性使所指定的命令等待时间最小,但牺牲了盘驱动器的效率和增大了盘驱动器命令队列130中其他命令的等待时间。
当几个相继命令以队列头选项方式发出,而且发出速度快于盘驱动器125能执行这些命令的速度时,问题便发生了。以队列头选项按顺序C1、C2、C3发出的3个命令将按C3、C2、C1的顺序执行。最老的命令C1将是最后执行的命令,不管它的优先级如何。还有,因为队列头选项,盘驱动器不能对命令重新排序以改进吞吐量。结果,在这种情况中,队列头选项不利地影响了命令C1的响应时间和计算机系统100的总吞吐量。
一个理想的系统将使响应时间最小而使吞吐量最大。下列专例代表了用于对付这一挑战的一些先有技术。
美国专利4,425,615号提供了具有带多盘命令队列的高速缓存/盘子系统的层次存储器系统。它描述的一个盘子系统包括多个盘驱动器,那里为每个盘驱动器提供一个命令队列。对每个命令队列赋予一个优先级值和一个序列号,从而当对应于该队列的盘驱动器变为空闲时,队列最高优先级的命令号被执行。
美国专利5,548,795号提供了在命令队列重新排序过程中确定命令执行依赖性的方法。这一发明描述的方法用于计算最小等待时间、在盘驱动器命令队列中保持依赖性信息和使用这一信息约束以时间上和计算上有效的方式对命令重新排序。
美国专利5,469,560号提供了在自动存储器库中对待决读请求赋予优先级。它描述了一种信息处理系统,该系统具有一种优先级化的方法从一自动存储器库中的盘中读取对象,以使等待时间最小。
美国专利5,729,718号提供一个系统用于确定引导时间延迟作为头切换、寻道和转动延迟的函数并利用嵌入的盘驱动器控制器进行命令队列记录。它描述一个系统用于记录由盘驱动器收到的命令。对于队列中的命令,相对于一个现正执行的命令计算出引导时间延迟。具有最小引导时间延迟的命令被选出并提升到队列前面,在那里它将在这现正执行的命令之后被执行。
美国专利5,848,226号提供了数字印刷系统中通过缓冲存储器进行的优先级化数据传送。在一盘驱动器内的一个控制装置给软件实体的命令输出赋予优先级值并执行具有最高优先级的命令。
用于减小响应时间或增大吞吐量的先有技术通常指向这样一些方法,它们积极地对命令重新赋予优先级或对队列重新排序,以改善系统效率。通常,响应时间的改善伴有对吞吐量的损害,反之亦然。还有,这些技术往往是复杂的,而且不一定与商品盘驱动器相容。
因此,本发明的一个目的是提供一种盘控制器和方法用于确定是否向盘驱动器发出一个命令,它使高优先级命令的响应时间达到极小而又使所有命令的吞吐量达到极大。
本发明的另一目的是提供这样的盘控制器和方法,它与商品盘驱动器的操作相容。
在一个包括一盘控制器和一盘驱动器的计算机系统中,盘控制器通过考虑一命令伴有的优先级和盘驱动器的可用性二者来确定是否向盘驱动器发出一个命令。
在最佳实施例中,盘控制器保持一个待完成命令计数,即这些命令已向盘驱动器发出但尚未被盘驱动器执行。当考虑是否向盘驱动器发出一个命令时,盘控制器首先确定该命令的优先级。如果该命令优先级是最高优先级,则只有当待完成命令计数小于8时才发出该命令。如果该命令优先级不是最高级,则只有当待完成命令计数小于2时才发出该命令。
通过在考虑高优先级命令时使用第一阈值值,即8个待完成命令,而在考虑较低优先级命令时使用第二阈值值,即2个待完成命令,盘控制器能容易地适应这样的需要,即对高优先级命令使其响应时间最小而又不会不利地影响盘驱动器对所有命令的吞吐量。
图1是根据先有技术的计算机系统方块图;
图2是特别适应于实现本发明的计算机系统方块图;以及
图3是根据本发明用于确定是否向盘驱动器发出命令的过程的流程图。
图2是计算机系统200的方块图。其主要部件是主计算机210、盘控制器215和盘驱动器225。这些部件的操作以及它们彼此的关系与上文图1的内容中所描述的类似。
盘驱动器225可以是市场上的现用部件,有时称作商品盘驱动器,它遵从小型计算机系统接口(SCSI)协议。然而,本发明不限于SCSI协议,而是能应用于根据执行命令效率对命令重新排序的任何盘驱动器。
盘驱动器225包括一个处理器(未画出)和相关的存储器228,它包括一个盘驱动器命令队列230。盘驱动器命令队列230包含已发送给盘驱动器225但尚未被盘驱动器225执行的那些命令。盘驱动器225能对盘驱动器命令队列230中的命令重新排序。
盘控制器215包括处理器216和相关的存储器217,用于执行和与主计算机210及盘驱动器225交换信息有关的过程。控制器命令队列220包含尚待向盘驱动器225发出的命令。盘控制器215还保持一个盘可用性值218,它指出盘驱动器225的可用性。盘可用性值218可以是任何定量指示值,它代表盘驱动器225的可用性,例如执行待完成命令的估计时间或待完成命令个数。命令发出过程219确定是否向盘驱动器225发出一个命令。
在最佳实施例中,盘可用性值218是一个待完成命令计数(OCC),即已向盘驱动器225发出但尚未被盘驱动器225执行的命令计数。换言之,盘可用性值218指出盘驱动器命令队列230中的命令数。当盘控制器215向盘驱动器225发出一个命令时,它使盘可用性值218中的待完成命令计数增1。当盘驱动器225执行一个命令时,盘控制器215使盘可用性值218中的待完成命令计数减1。
盘控制器215把一优先级赋予它将发送给盘驱动器225的每个命令。如前面在图1的内容中讨论的那样,立即级是最高优先级。在该最佳实施例中,一个命令的优先级可以是在立即级,或可在一较低优先级。较低优先级彼此不再区分。就是说,一个命令优先级或者是在立即级,或者不在立即级。然而,在一般情况下,本发明能操作于任何数量的优先级。
当考虑是否向盘驱动器225发出一个命令时,命令发出过程219首先确定该命令的优先级。如果该命令的优先级是处于立即处,则只有当待完成命令计数小于8时才发送该命令。如果该命令的优先级不是处在立即级,则只有当待完成命令计数小于2时才发送该命令。
当计算机系统足够忙以至积累了8个立即级命令时,当8个较低优先级命令已因老化而被提升到立即级时,或当这两种情况的组合时,这一算法允许多达8个命令被排队到盘驱动命令队列230中。如果计算机系统200在轻工作负担情况下操作,则一立即级命令将待待到不落后于2个以上先前发出的命令。这一方案给予立即级命令以优先的处置,从而使它们的响应时间达到极小值,而它又允许对盘驱动器命令队列230中的命令重新排序,从而使吞吐量达到极大。
图3是命令发出过程219的流程图。当盘控制器必须决定是否向盘驱动器225发出一个命令时,命令发出过程219便被调用。这将发生在从主计算机110收到一个新命令时,先前发出的一个命令已被盘驱动器125完成时,或一个命令已被提升为较高优先级时,所考虑的命令是在控制器命令队列220前面的命令。
如前面提到的那样,盘可用性218指出盘驱动器225的一种可用性,而在该最佳实施例中它保持一个待完成命令计数。如图3所示,命令发出过程219对待完成命令计数(OCC)305进行评估。
在步骤310,该过程以确定所考虑的命令是否为立即级优先级开始。如果该优先级是处在立即级,则过程前进到步骤315。如果优先级不是处在立即级,则过程前进到325。请注意,在这一实施例中,立即级是一个阈值优先级,不需要考虑优先级大于立即级的情况。因为立即级是最高可能优先级。然而,在一般情况中,阈值优先级不需要是最高优先级,于是该过程将确定该命令优先级是否大于或等于该阈值优先级。
在步骤315,该过程确定待完成命令计数305是否小于第一阈值计数8。换言之,它确定盘驱动器命令队列230包含的待完成命令数是否少于8。如果待完成命令计数小于8,则过程前进到步骤320。如果待完成命令计数不小于8,则过程前进到步骤335。
在步骤320,该过程向盘驱动器225发出所考虑的命令。然后,过程前进到步骤335。
在步骤325,该过程确定待完成命令计数305是否小于第二阈值计数2。换言之,它确定盘驱动器命令队列230包含的待完成命令数是否少于2。如果待完成命令计数小于2,则过程前进到步骤330。如果待完成命令计数不小于2,则过程前进到步骤335。
在步骤330,该过程向盘驱动器225发出所考虑的命令。然后,过程前进到步骤335。
在步骤335,该过程终止。
请注意,命令发出过程220并不使用先前讨论过的队列头选项。盘驱动器225能工作在重新排序方式并对盘驱动器命令队列230中的命令重新排序。这允许盘驱动器230使其吞吐量最优化,使其达到在重新排序方式下所能达到的程度。
尽管本发明这里所需执行的过程被指明为已经加载到盘控制器215的存储器217中,但它们可能被配置在一存储器介质上,如图2中所示数据存储器250,使其后加载到存储器217中。
应该理解,上面的描述只是对本发明的说明。本领域技术人员可以设计出各种变体或修改而不离开本发明。例如,该过程不一定必须限于两个优先级或两个盘可用性阈值。多优先级和多阈值能被考虑。其次,盘控制器不需要是图2中盘控制器215所代表的独立部件,而是可以嵌入到另一装置中,如主计算机210中。再有,本发明不限于只有一个盘驱动器的计算机系统。在具有多个盘驱动器的系统中,盘控制器215为这多个盘驱动器的每一个维持一个控制器命令队列220和一个盘可用性218。因此,本发明想要包括落入所附权利要求范围内的所有这些替换、修正和变化。

Claims (21)

1.确定是否从盘控制器向盘驱动器发出命令的方法,所述盘控制器保持一个盘可用性值定量地代表所述盘驱动器的可用性,所述命令伴有一个优先级,所述盘控制器完成如下步骤:
(A)确定所述优先级是否大于或等于一个阈值优先级;
(B)当步骤A确定所述优先级是大于或等于所述阈值优选级时,确定所述盘可用性值是否小于第一阈值值;
(C)当步骤A确定所述优先不是大于或等于所述阈值优先级时,确定所述盘可用性值是否小于第二阈值值;
(D)当或者步骤B确定所述盘可用性值小于所述第一阈值值时,或者步骤C确定所述盘可用性值小于所述第二阈值值时,向所述盘驱动器发出所述命令。
2.权利要求1中叙述的方法,其中所述盘驱动器包括一个盘队列,该盘队列包含已向所述盘驱动器发出但尚未被所述盘驱动器执行的待完成命令。
3.权利要求2中叙述的方法,其中所述盘驱动器能对所述盘队列中的所述待完成命令重新排序。
4.权利要求1中叙述的方法,其中所述盘可用性值是已向所述盘驱动器发出但尚未被所述盘驱动器执行的那些待完成命令的计数。
5.权利要求4中叙述的方法,其中当所述命令被发给所述盘驱动器时所述待完成命令计数增1,而当所述命令被所述盘驱动器执行时该计数减1。
6.权利要求1中叙述的方法,其中所述优先级是多个优先级之一。
7.权利要求1中叙述的方法,其中所述控制器包括一个含有未发出命令的队列。
8.确定是否向盘驱动器发出命令的盘控制器,所述命令伴有一个优先级,所述盘控制器包含:
(A)盘可用性指示器,用于保持一个盘可用性值,该值定量地代表所述盘驱动器的可用性;
(B)第一比较器,用于确定所述优先级是否大于或等于一阈值优先级;
(C)第二比较器,用于当所述第一比较器确定所述优先级是大于或等于所述阈值优先级时确定所述盘可用性值是否小于第一阈值值;
(D)第三比较器,用于当所述第一比较器确定所述优先级不是大于或等于所述阈值优先级时确定所述盘可用性值是否小于第二阈值值;以及
(E)命令发出器,用于当或者所述第二比较器确定所述盘可用性值小于所述第一阈值值,或者所述第三比较器确定所述盘可用性值小于所述第二阈值值时,向所述盘驱动器发出所述命令。
9.权利要求8中叙述的盘控制器,其中所述盘驱动器包括一个盘队列,该队列中含有已向所述盘驱动器发出但尚未被所述盘驱动器执行的命令。
10.权利要求9中叙述的盘控制器,其中所述盘驱动器能对所述盘队列中的所述待完成命令重新排序。
11.权利要求8中叙述的盘控制器,其中所述盘可用性值是已向所述盘驱动器发出但尚未被所述盘驱动器执行的那些待完成命令的计数。
12.权利要求11中叙述的盘控制器,其中当所述命令被发给所述盘驱动器时所述盘可用性指示器使所述待完成命令计数增1,而当所述命令被所述盘驱动器执行时该计数器减1。
13.权利要求8中叙述的盘控制器,其中所述优先级是多个优先级之一。
14.权利要求8中叙述的盘控制器,还包含一个含有未发出命令的队列。
15.一个存储器介质,它存储盘控制器所用的程序,该盘控制器确定是否向盘驱动器发出命令,所述盘控制器保持一个盘可用性值,该值定量地代表所述盘驱动器的可用性,所述命令伴有一个优先级,所述存储器介质包含:
(A)控制所述盘控制器的手段,用于确定所述优先级是否大于或等于阈值优先级;
(B)控制所述盘控制器的手段,用于在手段A确定所述优先级是大于或等于所述阈值优先级时确定所述盘可用性值是否小于第一阈值值;
(C)控制所述盘控制器的手段,用于在手段A确定所述优先级不是大于或等于所述阈值优先级时确定所述盘可用性值是否小于第二阈值值;以及
(D)控制所述盘控制器的手段,用于当或者手段B确定所述盘可用性值小于所述第一阈值值,或者手段C确定所述盘可用性值小于所述第二阈值值时,向所述盘驱动器发出所述命令。
16.权利要求15中叙述的存储器介质,其中所述盘驱动器包括一盘队列,该队列包含已向所述盘驱动器发出但尚未被所述盘驱动器执行的那些待完成命令。
17.权利要求16中叙述的存储器介质,其中所述盘驱动器能对所述盘队列中的待完成命令重新排序。
18.权利要求15中叙述的存储器介质,其中所述盘可用性值是已向所述盘驱动器发出但尚未被所述盘驱动器执行的那些待完成命令的计数。
19.权利要求18中叙述的存储器介质,还包含控制所述盘控制器的手段,用于当所述命令被发出给所述盘驱动器时使所述待完成命令计数增1,当所述命令被所述盘驱动器执行时使所述待完成命令计数减1。
20.权利要求15中叙述的存储器介质,其中所述优先级是多个优先级之一。
21.权利要求15中叙述的存储器介质,其中所述盘控制器包括一个含有未发出命令的队列。
CN00120187A 1999-07-26 2000-07-20 对商品盘驱动器上的命令进行优先级排序的方法和系统 Expired - Lifetime CN1117326C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/360,261 1999-07-26
US09/360,261 US6301639B1 (en) 1999-07-26 1999-07-26 Method and system for ordering priority commands on a commodity disk drive

Publications (2)

Publication Number Publication Date
CN1282030A true CN1282030A (zh) 2001-01-31
CN1117326C CN1117326C (zh) 2003-08-06

Family

ID=23417252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN00120187A Expired - Lifetime CN1117326C (zh) 1999-07-26 2000-07-20 对商品盘驱动器上的命令进行优先级排序的方法和系统

Country Status (12)

Country Link
US (1) US6301639B1 (zh)
EP (1) EP1072970B1 (zh)
JP (1) JP3588311B2 (zh)
KR (1) KR100415861B1 (zh)
CN (1) CN1117326C (zh)
AT (1) ATE357691T1 (zh)
DE (1) DE60033994T2 (zh)
HK (1) HK1032274A1 (zh)
ID (1) ID26676A (zh)
MY (1) MY125125A (zh)
SG (1) SG85716A1 (zh)
TW (1) TW470912B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100392627C (zh) * 2003-12-22 2008-06-04 威盛电子股份有限公司 存储器存取要求优先序列仲裁装置及方法
CN102955753A (zh) * 2011-08-30 2013-03-06 安凯(广州)微电子技术有限公司 一种迟滞型数据流控制电路
CN103605481A (zh) * 2013-10-31 2014-02-26 华为技术有限公司 磁盘控制方法、装置及设备
CN106055266A (zh) * 2015-04-08 2016-10-26 株式会社东芝 盘装置及其控制方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111472B2 (ja) 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
JP4109770B2 (ja) * 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
US6463532B1 (en) * 1999-02-23 2002-10-08 Compaq Computer Corporation System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources
US6578107B1 (en) * 2000-05-25 2003-06-10 International Business Machines Corporation Method and system for prefetching data where commands are reordered for execution
US6728792B2 (en) * 2001-01-04 2004-04-27 International Business Machines Corporation Priority queue with arbitrary queuing criteria
US6640258B2 (en) * 2001-01-10 2003-10-28 Hitachi Global Storage Technologies Netherlands B.V. Method and apparatus for command queue ordering with a sort time reduction algorithm
US20030041190A1 (en) * 2001-06-21 2003-02-27 Sony Corporation And Sony Electronics, Inc. System and method for efficiently performing a command swapping procedure
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
JP4176341B2 (ja) * 2001-10-23 2008-11-05 株式会社日立製作所 記憶制御装置
US6848020B2 (en) * 2001-11-27 2005-01-25 International Business Machines Corporation Command aging method for data storage devices
JP3683211B2 (ja) * 2001-12-10 2005-08-17 エヌイーシーコンピュータテクノ株式会社 ノード間データ転送方法及びノード間データ転送装置
US6965965B2 (en) * 2002-06-06 2005-11-15 International Business Machines Corporation Dynamic response shaping for command aging
US7093071B2 (en) * 2002-10-09 2006-08-15 Intel Corporation Queued copy command
US7073021B2 (en) 2003-03-21 2006-07-04 Seagate Technology Llc Semantically-aware, dynamic, window-based disc scheduling method and apparatus for better fulfilling application requirements
JP2005332236A (ja) * 2004-05-20 2005-12-02 Fujitsu Ltd I/oコマンド投入数の動的変換システム
US7464218B2 (en) * 2004-08-31 2008-12-09 Seagate Technology Llc Method for improving data throughput for a data storage device
JP5030387B2 (ja) * 2005-03-08 2012-09-19 エイチジーエスティーネザーランドビーブイ データ記憶装置
US7752488B2 (en) * 2006-01-06 2010-07-06 International Business Machines Corporation Method to adjust error thresholds in a data storage and retrieval system
US20080086598A1 (en) * 2006-10-10 2008-04-10 Maron William A System and method for establishing cache priority for critical data structures of an application
US20080086599A1 (en) * 2006-10-10 2008-04-10 Maron William A Method to retain critical data in a cache in order to increase application performance
JP5171602B2 (ja) * 2008-12-25 2013-03-27 京セラドキュメントソリューションズ株式会社 Raidドライバ及びこれを備えた電子機器並びにraidに対するアクセス要求調停方法
JP2010211428A (ja) * 2009-03-10 2010-09-24 Fujitsu Ltd ストレージ装置、中継装置、及びコマンド発行制御方法
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
JP5402698B2 (ja) * 2010-02-10 2014-01-29 富士通株式会社 記憶装置への情報蓄積制御方法
JP2012038330A (ja) * 2011-10-05 2012-02-23 Hitachi Global Storage Technologies Netherlands Bv ハードディスクドライブ
US8255618B1 (en) * 2011-10-06 2012-08-28 Google Inc. Performance isolation in a shared memory device
US8886872B1 (en) 2011-10-06 2014-11-11 Google Inc. Memory command dispatch in a data storage device
US10169948B2 (en) * 2014-01-31 2019-01-01 International Business Machines Corporation Prioritizing storage operation requests utilizing data attributes
US10198188B2 (en) 2017-03-09 2019-02-05 Kabushiki Kaisha Toshiba Disk drive that efficiently handles random mixed-R/W command-streams
US10303373B2 (en) 2017-06-12 2019-05-28 Seagate Technology Llc Prioritizing commands in a data storage device
CN112416826B (zh) * 2020-11-20 2023-09-22 成都海光集成电路设计有限公司 专用计算芯片、dma数据传输系统及方法
CN112735115A (zh) * 2020-12-28 2021-04-30 新天科技股份有限公司 多线程业务处理方法、装置、服务器及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
JPH0388019A (ja) 1989-08-31 1991-04-12 Toshiba Corp データ処理装置
JP2780821B2 (ja) * 1989-09-22 1998-07-30 株式会社日立製作所 オンライン中のダンプ方式およびディスクサブシステム
JPH06309200A (ja) 1991-04-10 1994-11-04 Internatl Business Mach Corp <Ibm> ボリュームからオブジェクトを読取る方法、並びに階層式記憶システム及び情報処理システム
US5522054A (en) 1993-09-13 1996-05-28 Compaq Computer Corporation Dynamic control of outstanding hard disk read requests for sequential and random operations
US5729718A (en) 1993-11-10 1998-03-17 Quantum Corporation System for determining lead time latency as function of head switch, seek, and rotational latencies and utilizing embedded disk drive controller for command queue reordering
US5557528A (en) 1993-11-23 1996-09-17 Storage Technology Corporation Task prioritization for a tape storage system
US5548795A (en) 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
JPH08171457A (ja) * 1994-12-20 1996-07-02 Matsushita Electric Ind Co Ltd データ転送制御装置
US5787482A (en) * 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
US5937205A (en) * 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
JPH09305320A (ja) * 1996-05-14 1997-11-28 Matsushita Electric Ind Co Ltd データ記憶装置
US5848226A (en) 1996-06-03 1998-12-08 Xerox Corporation Prioritized data transfer through buffer memory in a digital printing system
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
JPH1165775A (ja) * 1997-08-18 1999-03-09 Kobe Nippon Denki Software Kk 磁気ディスクコントローラの制御方法
US6145052A (en) * 1997-11-04 2000-11-07 Western Digital Corporation Disk drive with adaptive pooling for command reordering

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100392627C (zh) * 2003-12-22 2008-06-04 威盛电子股份有限公司 存储器存取要求优先序列仲裁装置及方法
CN102955753A (zh) * 2011-08-30 2013-03-06 安凯(广州)微电子技术有限公司 一种迟滞型数据流控制电路
CN103605481A (zh) * 2013-10-31 2014-02-26 华为技术有限公司 磁盘控制方法、装置及设备
CN106055266A (zh) * 2015-04-08 2016-10-26 株式会社东芝 盘装置及其控制方法

Also Published As

Publication number Publication date
US6301639B1 (en) 2001-10-09
MY125125A (en) 2006-07-31
EP1072970A1 (en) 2001-01-31
ATE357691T1 (de) 2007-04-15
HK1032274A1 (en) 2001-07-13
DE60033994T2 (de) 2007-12-06
EP1072970B1 (en) 2007-03-21
JP2001067297A (ja) 2001-03-16
TW470912B (en) 2002-01-01
JP3588311B2 (ja) 2004-11-10
KR100415861B1 (ko) 2004-01-31
DE60033994D1 (de) 2007-05-03
CN1117326C (zh) 2003-08-06
SG85716A1 (en) 2002-01-15
ID26676A (id) 2001-02-01
KR20010066933A (ko) 2001-07-11

Similar Documents

Publication Publication Date Title
CN1117326C (zh) 对商品盘驱动器上的命令进行优先级排序的方法和系统
US6170042B1 (en) Disc drive data storage system and method for dynamically scheduling queued commands
JP4808489B2 (ja) 論理ボリュームを再呼び出しするためのシステム
US6311256B2 (en) Command insertion and reordering at the same storage controller
US5740061A (en) Cartridge shifting optimization in a super library
US10831403B2 (en) Probabalistic command aging and selection
US8082388B2 (en) Optimizing operational requests of logical volumes
US7864479B2 (en) Apparatus, system, and method for optimizing fast access data storage on segmented tape media
CN1577587A (zh) 硬盘驱动器的自主数据擦洗系统及方法
CN1862475A (zh) 磁盘阵列缓存的管理方法
CN1690985A (zh) 用于高速缓存的磁盘装置和控制方法
JPH06309200A (ja) ボリュームからオブジェクトを読取る方法、並びに階層式記憶システム及び情報処理システム
US7225293B2 (en) Method, system, and program for executing input/output requests
US20090235023A1 (en) Stripe Caching and Data Read Ahead
US10310923B1 (en) Probabilistic aging command sorting
KR100268195B1 (ko) 응답시간을개선하기위해매체디스테이징및프리스테이징을갖는데이터저장라이브러리
US6640258B2 (en) Method and apparatus for command queue ordering with a sort time reduction algorithm
US6839817B2 (en) Priority management of a disk array
US20020199038A1 (en) Input/output control apparatus, input/output control method and informatiion storage system
US6725348B1 (en) Data storage device and method for reducing write misses by completing transfer to a dual-port cache before initiating a disk write of the data from the cache
US7506075B1 (en) Fair elevator scheduling algorithm for direct access storage device
US10310873B1 (en) Probabilistic aging command sorting
CN113821175B (zh) 基于存储内容优先的ssd指令调度方法及系统
US20040210732A1 (en) Read Priority caching system and method
KR19980019121A (ko) 쓰기 캐쉬 환경에서 캐쉬 플러쉬 입/출력 레이트를 제어하기 위해 피이드백 루프를 이용하는 방법 및 장치(method and apparatus for using a feedback loop to control cache flush i/o rate in a write cache environment)

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20030806

CX01 Expiry of patent term